22 double * A,
int * IA,
int * JA,
int * DESCA,
24 double * C,
int * IC,
int * JC,
int * DESCC )
26 void pdsyrk_( UPLO, TRANS, N, K, ALPHA, A, IA, JA, DESCA, BETA,
32 int * IA, * IC, * JA, * JC, * K, * N;
33 double * ALPHA, * BETA;
242 char DirA, OpC, OpR, TopC, TopR, TranOp, UploC, ctop, ctopsave,
244 int Ai, Aj, ChooseAC, Ci, Cj, ForceTop, ctxt, info, mycol,
245 myrow, nb, notran, npcol, nprow, upper;
246 double Aest, ACest, tmp1, tmp2, tmp3, tmp4;
265 if( !( info = ( ( nprow == -1 ) ? -( 901 +
CTXT_ ) : 0 ) ) )
267 if( ( !upper ) && ( UploC !=
CLOWER ) )
269 PB_Cwarn( ctxt, __LINE__,
"PDSYRK",
"Illegal UPLO = %c\n", UploC );
272 else if( ( !notran ) && ( TranOp !=
CTRAN ) && ( TranOp !=
CCOTRAN ) )
274 PB_Cwarn( ctxt, __LINE__,
"PDSYRK",
"Illegal TRANS = %c\n", TranOp );
278 PB_Cchkmat( ctxt,
"PDSYRK",
"A", *N, 3, *K, 4, Ai, Aj, Ad, 9,
281 PB_Cchkmat( ctxt,
"PDSYRK",
"A", *K, 4, *N, 3, Ai, Aj, Ad, 9,
283 PB_Cchkmat( ctxt,
"PDSYRK",
"C", *N, 3, *N, 3, Ci, Cj, Cd, 14,
286 if( info ) {
PB_Cabort( ctxt,
"PDSYRK", info );
return; }
307 ((
char *) C), Ci, Cj, Cd );
312 ((
char *) C), Ci, Cj, Cd );
332 ACest = (double)(*N) *
333 ( ( ( ( Ad[
RSRC_] == -1 ) || ( nprow == 1 ) ) ?
ZERO : tmp3 ) +
334 ( ( ( Ad[
CSRC_] == -1 ) || ( npcol == 1 ) ) ?
ZERO :
338 Aest = (double)(*K) *
339 ( ( ( ( Ad[
CSRC_] == -1 ) || ( npcol == 1 ) ) ?
ZERO : tmp1 ) +
340 ( nprow == 1 ?
ZERO : tmp2 ) +
MAX( tmp2, tmp4 ) );
345 ACest = (double)(*N) *
346 ( ( ( ( Ad[
CSRC_] == -1 ) || ( npcol == 1 ) ) ?
ZERO : tmp4 ) +
347 ( ( ( Ad[
RSRC_] == -1 ) || ( nprow == 1 ) ) ?
ZERO :
351 Aest = (double)(*K) *
352 ( ( ( ( Ad[
RSRC_] == -1 ) || ( nprow == 1 ) ) ?
ZERO : tmp2 ) +
353 ( npcol == 1 ?
ZERO : tmp1 ) +
MAX( tmp1, tmp3 ) );
358 ChooseAC = ( ( 1.3 * ACest ) <= Aest );
365 ForceTop = ( ( *N > nb ) && ( *K > nb ) );
424 *K, ((
char *)ALPHA), ((
char *)A), Ai, Aj, Ad, ((
char *)BETA),
425 ((
char *)C), Ci, Cj, Cd );
483 *K, ((
char *)ALPHA), ((
char *)A), Ai, Aj, Ad, ((
char *)BETA),
484 ((
char *)C), Ci, Cj, Cd );
491 rtopsave = *
PB_Ctop( &ctxt, &OpR,
ROW, &rtopsave );