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_zcposv_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_zposv_Tile"
11 /* See Lawn 41 page 120 */
12 #define _FMULS (FMULS_POTRF( N ) + FMULS_POTRS( N, NRHS ))
13 #define _FADDS (FADDS_POTRF( N ) + FADDS_POTRS( N, NRHS ))
14 
15 #include "./timing.c"
16 
17 static int
18 RunTest(int *iparam, double *dparam, real_Double_t *t_)
19 {
20  int iter;
21  PASTE_CODE_IPARAM_LOCALS( iparam );
22 
23  /* Allocate Data */
27 
28  PLASMA_zplghe_Tile((double)N, descA, 51 );
29  PLASMA_zplrnt_Tile(descB, 5723);
30 
31  /* Save AT and bT in lapack layout for check */
32  PASTE_TILE_TO_LAPACK( descA, A, check, PLASMA_Complex64_t, LDA, N );
33  PASTE_TILE_TO_LAPACK( descB, b, check, PLASMA_Complex64_t, LDB, NRHS );
34 
35  /* PLASMA ZCPOSV */
36  START_TIMING();
37  PLASMA_zcposv_Tile(PlasmaUpper, descA, descB, descX, &iter);
38  STOP_TIMING();
39 
40  /* Check the solution */
41  if (check)
42  {
43  PASTE_TILE_TO_LAPACK( descX, x, check, PLASMA_Complex64_t, LDB, NRHS );
44 
45  dparam[IPARAM_RES] = z_check_solution(N, N, NRHS, A, LDA, b, x, LDB,
46  &(dparam[IPARAM_ANORM]),
47  &(dparam[IPARAM_BNORM]),
48  &(dparam[IPARAM_XNORM]));
49  free(A); free(b); free(x);
50  }
51 
52  PASTE_CODE_FREE_MATRIX( descA );
53  PASTE_CODE_FREE_MATRIX( descB );
54  PASTE_CODE_FREE_MATRIX( descX );
55 
56  return 0;
57 }