28 #include <coreblas/cblas.h> 29 #include <coreblas/lapacke.h> 30 #include <coreblas/coreblas.h> 34 #undef CBLAS_SADDR //FIXME 35 #define CBLAS_SADDR(_val) (_val) //FIXME I should not include this definition 40 MORSE_enum transA, MORSE_enum transB,
int M,
int N,
int K,
41 double alpha,
double *
A,
int LDA,
43 double beta,
double *Cmorse,
44 double *Cref,
int LDC,
45 double *Cinitnorm,
double *Cmorsenorm,
double *Clapacknorm )
47 double beta_const = -1.0;
49 double *work = (
double *)malloc(chameleon_max(K,chameleon_max(M, N))*
sizeof(double));
51 *Cinitnorm = LAPACKE_dlange_work(LAPACK_COL_MAJOR,
'I', M, N, Cref, LDC, work);
52 *Cmorsenorm = LAPACKE_dlange_work(LAPACK_COL_MAJOR,
'I', M, N, Cmorse, LDC, work);
54 cblas_dgemm(CblasColMajor, (CBLAS_TRANSPOSE)transA, (CBLAS_TRANSPOSE)transB, M, N, K,
57 *Clapacknorm = LAPACKE_dlange_work(LAPACK_COL_MAJOR,
'I', M, N, Cref, LDC, work);
59 cblas_daxpy(LDC * N,
CBLAS_SADDR(beta_const), Cmorse, 1, Cref, 1);
61 Rnorm = LAPACKE_dlange_work(LAPACK_COL_MAJOR,
'I', M, N, Cref, LDC, work);
double hicma_z_check_gemm(MORSE_enum transA, MORSE_enum transB, int M, int N, int K, double alpha, double *A, int LDA, double *B, int LDB, double beta, double *Cmorse, double *Cref, int LDC, double *Cinitnorm, double *Cmorsenorm, double *Clapacknorm)
#define CBLAS_SADDR(_val)