41 double total = PERF_POTRF(N);
43 return (total > 0.) ? total : 0.;
52 double total = PERF_POTRF(N);
54 return (total > 0.) ? total : 0.;
83 double total = PERF_SYTRF(N) + (double)N * PERF_COPY(N);
85 return (total > 0.) ? total : 0.;
94 double total = PERF_SYTRF(N) + (double)N * PERF_COPY(N);
96 return (total > 0.) ? total : 0.;
108 double total = PERF_TRSM( N, M );
109 assert( (M > 0) && (N > 0) );
110 return (total > 0.) ? total : 0.;
119 double total = PERF_TRSM( N, M );
120 assert( (M > 0) && (N > 0) );
121 return (total > 0.) ? total : 0.;
130 double total = 2. * PERF_TRSM( N, M );
131 assert( (M > 0) && (N > 0) );
132 return (total > 0.) ? total : 0.;
141 double total = 2. * PERF_TRSM( N, M );
142 assert( (M > 0) && (N > 0) );
143 return (total > 0.) ? total : 0.;
152 double total = PERF_TRSM( N, M )
153 + (double)N * (PERF_SCAL(M) + PERF_COPY(M));
154 assert( (M > 0) && (N > 0) );
155 return (total > 0.) ? total : 0.;
164 double total = PERF_TRSM( N, M )
165 + (double)N * (PERF_SCAL(M) + PERF_COPY(M));
166 assert( (M > 0) && (N > 0) );
167 return (total > 0.) ? total : 0.;
181 double total = PERF_GEMM( M, N, K ) + PERF_GEAM( M, N );
182 assert( (M > 0) && (N > 0) && (K > 0) );
183 return (total > 0.) ? total : 0.;
193 double total = PERF_GEMM( M, N, K ) + PERF_GEAM( M, N );
194 assert( (M > 0) && (N > 0) && (K > 0) );
195 return (total > 0.) ? total : 0.;
205 double total = PERF_GEMM( M, N, K ) + PERF_GEAM( M, N )
206 + PERF_GEMM( (M-N), N, K ) + PERF_GEAM( (M-N), N );
207 assert( (M > 0) && (N > 0) && (K > 0) );
208 return (total > 0.) ? total : 0.;
218 double total = PERF_GEMM( M, N, K ) + PERF_GEAM( M, N )
219 + PERF_GEMM( (M-N), N, K ) + PERF_GEAM( (M-N), N );
220 assert( (M > 0) && (N > 0) && (K > 0) );
221 return (total > 0.) ? total : 0.;
231 double total = PERF_GEMM( M, N, K ) + PERF_GEAM( M, N );
232 assert( (M > 0) && (N > 0) && (K > 0) );
233 return (total > 0.) ? total : 0.;
243 double total = PERF_GEMM( M, N, K ) + PERF_GEAM( M, N );
244 assert( (M > 0) && (N > 0) && (K > 0) );
245 return (total > 0.) ? total : 0.;
BEGIN_C_DECLS typedef int pastix_int_t
static double perfs_zpotrf_diag(pastix_int_t N)
Time model of the computation of the diagonal block.
static double perfs_zgetrf_blkupdate(pastix_int_t M, pastix_int_t N, pastix_int_t K)
Computes the theoretical number of flops of the update step per block (see sum2d())
static double perfs_zsytrf_diag(pastix_int_t N)
Time model of the computation of the diagonal block.
static double perfs_zgetrf_diag(pastix_int_t N)
Time model of the computation of the diagonal block.
static double perfs_zsytrf_trsm(pastix_int_t M, pastix_int_t N)
Time performance model of the solve step.
static double perfs_dsytrf_trsm(pastix_int_t M, pastix_int_t N)
Time performance model of the solve step.
static double perfs_dgetrf_blkupdate(pastix_int_t M, pastix_int_t N, pastix_int_t K)
Computes the theoretical number of flops of the update step per block (see sum2d())
static double perfs_zpotrf_blkupdate(pastix_int_t M, pastix_int_t N, pastix_int_t K)
Time performance model of the update step per block (see sum2d())
static double perfs_zgetrf_trsm(pastix_int_t M, pastix_int_t N)
Time performance model of the solve step.
symbol_function_t perfstable[2][5]
array of pointer to the performance functions per factorization and arithmetic
static double perfs_dpotrf_blkupdate(pastix_int_t M, pastix_int_t N, pastix_int_t K)
Computes the theoretical number of flops of the update step per block (see sum2d())
static double perfs_dgetrf_trsm(pastix_int_t M, pastix_int_t N)
Time performance model of the solve step.
static double perfs_dgetrf_diag(pastix_int_t N)
Time model of the computation of the diagonal block.
static double perfs_dpotrf_trsm(pastix_int_t M, pastix_int_t N)
Time performance model of the solve step.
static double perfs_zpotrf_trsm(pastix_int_t M, pastix_int_t N)
Time performance model of the solve step.
static double perfs_dsytrf_diag(pastix_int_t N)
Time model of the computation of the diagonal block.
static double perfs_dpotrf_diag(pastix_int_t N)
Time model of the computation of the diagonal block.
static double perfs_dsytrf_blkupdate(pastix_int_t M, pastix_int_t N, pastix_int_t K)
Computes the theoretical number of flops of the update step per block (see sum2d())
static double perfs_zsytrf_blkupdate(pastix_int_t M, pastix_int_t N, pastix_int_t K)
Computes the theoretical number of flops of the update step per block (see sum2d())
Cost functions to compute statistics on the symbolic structure.