1 #include "openblas_utest.h"
6 #define LAPACK_ROW_MAJOR 101
7 blasint LAPACKE_dgesvd( blasint matrix_layout, char jobu, char jobvt,
8 blasint m, blasint n, double* a,
9 blasint lda, double* s, double* u, blasint ldu,
10 double* vt, blasint ldvt, double* superb );
16 double u[DATASIZE*DATASIZE];
17 double vt[DATASIZE*DATASIZE];
18 double X[DATASIZE*DATASIZE];
19 double superb[DATASIZE];
20 double tmp[DATASIZE*DATASIZE];
21 double m[DATASIZE*DATASIZE];
23 CTEST(kernel_regress,skx_avx)
28 for (i = 0; i < DATASIZE*DATASIZE; i++) {
29 m[i] = (rand()+0.0)/RAND_MAX * 10;
33 info = LAPACKE_dgesvd( LAPACK_ROW_MAJOR, 'A', 'A', DATASIZE, DATASIZE, m, DATASIZE,
34 s, u, DATASIZE, vt, DATASIZE, superb);
36 for (i = 0; i < DATASIZE; i++) {
37 for (j = 0; j < DATASIZE; j++) {
38 u[i*DATASIZE+j] = u[i*DATASIZE+j]*s[j];
41 cblas_dgemm(CblasRowMajor, CblasNoTrans, CblasNoTrans,
42 DATASIZE, DATASIZE, DATASIZE, 1, u, DATASIZE, vt, DATASIZE, 0, X, DATASIZE);
44 for (i = 0; i < DATASIZE*DATASIZE; i++) {
48 norm = cblas_dnrm2(DATASIZE*DATASIZE, X, 1);
49 ASSERT_DBL_NEAR_TOL(0.0, norm, 1e-10);