错误:在'<'标记前有预期的初始化器。

问题描述 投票:1回答:1

我想拥有 MAGMA 作为后端 本征 以同样的方式,它已经支持MKL。在这样做的时候,我碰到了上面的错误。下面的相关片段。

template <>
/*ERROR IN THIS LINE >>>>>*/ inline void assign_scalar_eig2magma<magmaDoubleComplex,dcomplex>(magmaDoubleComplex& magmaScalar, const dcomplex& eigenScalar) {
  magmaScalar.x=eigenScalar.real();
  magmaScalar.y=eigenScalar.imag();
}

以及 magmaDoubleComplex 定义为 magma_types.h:

// ========================================
// define types specific to implementation (CUDA, OpenCL, MIC)
// define macros to deal with complex numbers
#if HAVE_CUBLAS
    #include <cublas.h>

    typedef cudaStream_t   magma_queue_t;
    typedef cudaEvent_t    magma_event_t;
    typedef int            magma_device_t;

    typedef cuDoubleComplex magmaDoubleComplex;
    typedef cuFloatComplex  magmaFloatComplex;

据我所知 magmaDoubleComplex 但这似乎不是问题所在......

更新:确实是我的错误,这里的模板定义是 "mkl",应该是 "magma"。

template<typename MAGMAType, typename EigenType>
static inline void assign_scalar_eig2mkl(MAGMAType& magmaScalar, const EigenType& eigenScalar) {
  magmaScalar=eigenScalar;
}
c++ eigen
1个回答
© www.soinside.com 2019 - 2024. All rights reserved.