CULA_USE_CUDA_COMPLEX

使用cula库函数计算复数矩阵相关问题时,需要用到culaDeviceFloat(or Double)Complex类型的矩阵,可以直接共用CUDA的cuFloatComplex,只需要在#include cula*.h之前插入:

#define CULA_USE_CUDA_COMPLEX

  数组赋值方法:

//Allocate new matrix variable
cuFloatComplex* A;
cuFloatComplex* dev_A;

//Allocata memory
A = (cuFloatComplex*)malloc( sizeof( cuFloatComplex ) * N * N );
HANDLE_ERROR( cudaMalloc( (void**)&dev_A, sizeof( cuFloatComplex ) * N * N) );

//Initialize matrix
for(int i=0; i<N; i++){
    for(int j=o; j<N; j++){
        A[i + j * N] = make_cuFloatComplex(1, 1);
    }
}

  输出实数与虚数,用到cuCrealf()与cuCimagf()都是Float型(相应的:cuCreal()与cuCimag()为Double型):

	printf("the matrix A:\n");
	for(int i=0;i<N;i++){
		for(int j=0; j<N; j++){
			printf("(%f, %f)",cuCrealf(A[i+j*N]),cuCimagf(A[i+j*N]));
		}
		printf("\n");
	}

 

 

posted @ 2014-04-08 10:50  Tannins  Views(561)  Comments(0)    收藏  举报