PLASMA  2.4.5
PLASMA - Parallel Linear Algebra for Scalable Multi-core Architectures
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups
time_zgesvd_tile.c
Go to the documentation of this file.
1 
6 #define _TYPE PLASMA_Complex64_t
7 #define _PREC double
8 #define _LAMCH LAPACKE_dlamch_work
9 
10 #define _NAME "PLASMA_zheev_Tile"
11 /* See Lawn 41 page 120 */
12 #define _FMULS ((2. / 3.) * ((double)N * (double)N * (double)N))
13 #define _FADDS ((2. / 3.) * ((double)N * (double)N * (double)N))
14 
15 #include "./timing.c"
16 
17 static int
18 RunTest(int *iparam, double *dparam, real_Double_t *t_)
19 {
20  PASTE_CODE_IPARAM_LOCALS( iparam );
21  PLASMA_desc *descT;
22  int jobu = PlasmaNoVec;
23  int jobvt = PlasmaNoVec;
24 
25  /* Allocate Data */
29  PASTE_CODE_ALLOCATE_MATRIX( S, 1, double, N, 1 );
30 
31  /* Initialiaze Data */
32  PLASMA_zplrnt_Tile(descA, 51 );
33 
34  /* Save AT and bT in lapack layout for check */
35  if ( check ) {
36  }
37 
38  /* Allocate Workspace */
39  PLASMA_Alloc_Workspace_zgesvd(N, N, &descT);
40 
41  START_TIMING();
42  PLASMA_zgesvd_Tile(jobu, jobvt, descA, S, descU, descVT, descT);
43  STOP_TIMING();
44 
45  /* Check the solution */
46  if ( check )
47  {
48  }
49 
50  /* DeAllocate Workspace */
52 
53  if (jobu == PlasmaVec) {
54  PASTE_CODE_FREE_MATRIX( descU );
55  }
56  if (jobvt == PlasmaVec) {
57  PASTE_CODE_FREE_MATRIX( descVT );
58  }
59  PASTE_CODE_FREE_MATRIX( descA );
60  free( S );
61 
62  return 0;
63 }