У меня проблема с инициализацией массива arrayfire из данных хоста.
Следующий код не будет ссылаться для меня:
constexp int mNumEigenInfos = 100;
std::complex<float> mEigenVectors[mNumEigenInfos][6];
af::array mEigenVectorsArray = af::array((dim_t)6,(dim_t)(mNumEigenInfos),reinterpret_cast<float2*>(mEigenVectors));
Дает мне ошибку:
undefined reference to `af::array::array<float2>(long long, long long, float2 const*, af_source)'
Теперь, если я изменю reinterpret_cast с float2* на float*:
constexp int mNumEigenInfos = 100;
std::complex<float> mEigenVectors[mNumEigenInfos][6];
af::array mEigenVectorsArray = af::array((dim_t)6,(dim_t)(mNumEigenInfos),reinterpret_cast<float*>(mEigenVectors));
Связывается нормально. Из чтения в Интернете я подумал, что должен обрабатывать сложные данные как cuComplex (приведение которых к float2 или cuComplex дает точно такую же ошибку, поскольку это одно и то же).
Я чувствую, что делаю здесь глупую ошибку, но не могу понять, в чем дело.
Как я должен инициализировать массив arrayfire из данных хоста std::complex?
Спасибо за помощь