Я хотел бы создать 2D матрицу комплексных чисел. Матрица доступна в виде двух разных указателей, содержащих действительные и мнимые части (исходит от MATLAB — MEX). Я использую интерфейс C ++.
Самая близкая вещь, которую я вижу в API, это интерфейс C, af_cplx2 ().
// C Interface for creating complex array from two input arrays.
AFAPI af_err af_cplx2 ( af_array * out,
const af_array lhs,
const af_array rhs,
const bool batch
)
Интерфейс C ++ получает только один массив и создает комплекс из реального массива:
// C++ Interface for creating complex array from real array.
AFAPI array af::complex ( const array & in )
Как можно создать сложный массив из двух массивов, действительной и мнимой частей?
af :: complex может использоваться для создания сложного массива с использованием двух массивов, например:
af::array c = af::complex(r, i); // r,i are of af::array
Например, чтобы создать сложный массив из указателей на действительные и мнимые части в MEX-файле:
double *p_real = mxGetPr(mex_array);
double *p_imag = mxGetPi(mex_array);
af::array c = af::complex(af::array(rows,cols,p_real),
af::array(rows,cols,p_imag));