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_ssygv_tile.c
Go to the documentation of this file.
1 
6 #define _TYPE float
7 #define _PREC float
8 #define _LAMCH LAPACKE_slamch_work
9 
10 #define _NAME "PLASMA_ssygv_Tile"
11 /* See Lawn 41 page 120 */
12 /* cholesky + 2 trsm's + trd */
13 #define _FMULS ((2. / 3.) * ((float)N * (float)N * (float)N)) + (N * (1.0 / 6.0 * N + 0.5) * N) + 2 * (N * N * (float)((N + 1) / 2.0) )
14 #define _FADDS ((2. / 3.) * ((float)N * (float)N * (float)N)) + (N * (1.0 / 6.0 * N ) * N) + 2 * (N * N * (float)((N + 1) / 2.0) )
15 
16 #include "./timing.c"
17 
18 static int
19 RunTest(int *iparam, float *dparam, real_Double_t *t_)
20 {
21  PASTE_CODE_IPARAM_LOCALS( iparam );
22  PLASMA_desc *descT;
23  int itype = 1;
24  int vec = PlasmaNoVec;
25  int uplo = PlasmaUpper;
26 
27  LDA = max(LDA, N);
28 
29  /* Allocate Data */
30  PASTE_CODE_ALLOCATE_MATRIX_TILE( descA, 1, float, PlasmaRealFloat, LDA, N, N );
31  PASTE_CODE_ALLOCATE_MATRIX_TILE( descB, 1, float, PlasmaRealFloat, LDA, N, N );
32  PASTE_CODE_ALLOCATE_MATRIX_TILE( descQ, (vec == PlasmaVec), float, PlasmaRealFloat, LDA, N, N );
33  PASTE_CODE_ALLOCATE_MATRIX( W, 1, float, N, 1 );
34 
35  /* Initialization */
36  PLASMA_splgsy_Tile((float)0.0, descA, 51 );
37  PLASMA_splgsy_Tile((float)N, descB, 3753 );
38 
39  /* Save AT and bT in lapack layout for check */
40  if ( check ) {
41  }
42 
43  /* Allocate Workspace */
44  PLASMA_Alloc_Workspace_ssygv(N, N, &descT);
45 
46  START_TIMING();
47  PLASMA_ssygv_Tile( itype, vec, uplo, descA, descB, W, descT, descQ );
48  STOP_TIMING();
49 
50  /* Check the solution */
51  if ( check )
52  {
53  }
54 
55  /* DeAllocate Workspace */
57 
58  if (vec == PlasmaVec) {
59  PASTE_CODE_FREE_MATRIX( descQ );
60  }
61  PASTE_CODE_FREE_MATRIX( descA );
62  PASTE_CODE_FREE_MATRIX( descB );
63  free( W );
64 
65  return 0;
66 }