[Math-atlas-commits] CVS: AtlasBase/Clint atlas-lvl1.base, 1.1.1.1, 1.2 atlas-lvl2.base, 1.110, 1.1
Brought to you by:
rwhaley,
tonyc040457
From: R. C. W. <rw...@us...> - 2010-03-08 17:59:57
|
Update of /cvsroot/math-atlas/AtlasBase/Clint In directory sfp-cvsdas-1.v30.ch3.sourceforge.com:/tmp/cvs-serv9684/Clint Modified Files: atlas-lvl1.base atlas-lvl2.base Log Message: Index: atlas-lvl1.base =================================================================== RCS file: /cvsroot/math-atlas/AtlasBase/Clint/atlas-lvl1.base,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -C2 -d -r1.1.1.1 -r1.2 *** atlas-lvl1.base 30 Aug 2001 21:53:44 -0000 1.1.1.1 --- atlas-lvl1.base 8 Mar 2010 17:59:10 -0000 1.2 *************** *** 88,92 **** #ifdef TREAL ! void Mjoin(PATL,rotg)(TYPE *a, TYPE *b, TYPE *c, TYPE *s) { TYPE roe, scal, r, z, aa, ab, t0, t1; --- 88,126 ---- #ifdef TREAL ! void Mjoin(PATL,rotg) ! ( ! TYPE *a, /* INPUT : first rotational elimination parameter */ ! /* OUTPUT: r (see below) */ ! TYPE *b, /* INPUT: second rotational elimination parameter */ ! /* OUTPUT: z (see below) */ ! TYPE *c, /* OUTPUT: cosine */ ! TYPE *s /* OUTPUT: sine */ ! ) ! /* ! * | c s|*|a| = |r| ! * |-s c| |b| |0| ! * This routine returns: ! * r = sigma * sqrt(a^2 + b^2), where ! * sigma = sign(a) if abs(a) > abs(b) ! * sigma = sign(b) if abs(a) <= abs(b) ! * r is returned in *a ! * ! * z = s if (abs(a) > abs(b)) ! * z = 1/c if (abs(a) <= abs(b) && c != 0 && r != 0) ! * z = 1 if (abs(a) <= abs(b) && c == 0 && r != 0) ! * z = 0 if (r == 0) ! * z is returned in *b ! * ! * c : cosign of the angle of (Givens) rotation ! * c = a/r if (r != 0) ! * c = 1 if (r == 0) ! * ! * s : sine of the angle of (Givens) rotation ! * s = b/r if (r != 0) ! * s = 0 if (r == 0) ! * FURTHER DETAILS: ! * http://publib.boulder.ibm.com/infocenter/clresctr/vxrx/index.jsp?topic=/com.ibm.cluster.essl43.guideref.doc/am501_hsrotg.html ! * ! */ { TYPE roe, scal, r, z, aa, ab, t0, t1; *************** *** 97,106 **** else roe = *b; scal = aa + ab; ! if (scal == ATL_rzero) ! { ! *c = ATL_rone; ! *s = *a = *b = ATL_rzero; ! } ! else { t0 = aa / scal; t1 = ab / scal; --- 131,135 ---- else roe = *b; scal = aa + ab; ! if (scal != ATL_rzero) { t0 = aa / scal; t1 = ab / scal; *************** *** 115,118 **** --- 144,152 ---- *b = z; } + else + { + *c = ATL_rone; + *s = *a = *b = ATL_rzero; + } } #else Index: atlas-lvl2.base =================================================================== RCS file: /cvsroot/math-atlas/AtlasBase/Clint/atlas-lvl2.base,v retrieving revision 1.110 retrieving revision 1.111 diff -C2 -d -r1.110 -r1.111 *** atlas-lvl2.base 7 Mar 2010 05:38:34 -0000 1.110 --- atlas-lvl2.base 8 Mar 2010 17:59:28 -0000 1.111 *************** *** 12741,12745 **** if (Ml2 < 480) { ! r1s = Clone@up@(rt)Queue(r1b); /* get dup Q */ r1s = SortQByNU(r1s); /* sort from greatest to least */ Ml2 = 0.8*L2CacheElts; --- 12741,12745 ---- if (Ml2 < 480) { ! r1s = Clone@up@(ru)Queue(r1b); /* get dup Q */ r1s = SortQByNU(r1s); /* sort from greatest to least */ Ml2 = 0.8*L2CacheElts; *************** *** 12751,12755 **** Nl2 = i; } ! KillAll@up@(rt)Nodes(r1s); Ml2 /= Nl2; Ml2 = (Ml2/lcmM)*lcmM; --- 12751,12755 ---- Nl2 = i; } ! KillAll@up@(ru)Nodes(r1s); Ml2 /= Nl2; Ml2 = (Ml2/lcmM)*lcmM; *************** *** 12765,12769 **** if (Ml1 < 120) { ! r1s = Clone@up@(rt)Queue(r1b); /* get dup Q */ r1s = SortQByNU(r1s); /* sort from greatest to least */ Ml1 = 0.9*L2CacheElts; --- 12765,12769 ---- if (Ml1 < 120) { ! r1s = Clone@up@(ru)Queue(r1b); /* get dup Q */ r1s = SortQByNU(r1s); /* sort from greatest to least */ Ml1 = 0.9*L2CacheElts; *************** *** 12775,12779 **** Nl1 = i; } ! KillAll@up@(rt)Nodes(r1s); Ml1 /= Nl1; Ml1 = (Ml1/lcmM)*lcmM; --- 12775,12779 ---- Nl1 = i; } ! KillAll@up@(ru)Nodes(r1s); Ml1 /= Nl1; Ml1 = (Ml1/lcmM)*lcmM; *************** *** 12803,12807 **** if (lvl & 8) /* time L1-blocked OOC? */ { ! r1L1b = Clone@up@(rt)Queue(r1b); /* get dup Q */ for (r1p=r1L1b, r1s=r1b; r1p; r1p = r1p->next, r1s=r1s->next) { --- 12803,12807 ---- if (lvl & 8) /* time L1-blocked OOC? */ { ! r1L1b = Clone@up@(ru)Queue(r1b); /* get dup Q */ for (r1p=r1L1b, r1s=r1b; r1p; r1p = r1p->next, r1s=r1s->next) { *************** *** 12816,12820 **** if (lvl & 4) /* time L2-blocked OOC? */ { ! r1L2b = Clone@up@(rt)Queue(r1b); /* get dup Q */ for (r1p=r1L2b, r1s=r1b; r1p; r1p = r1p->next, r1s = r1s->next) { --- 12816,12820 ---- if (lvl & 4) /* time L2-blocked OOC? */ { ! r1L2b = Clone@up@(ru)Queue(r1b); /* get dup Q */ for (r1p=r1L2b, r1s=r1b; r1p; r1p = r1p->next, r1s = r1s->next) { *************** *** 12989,12993 **** fprintf(fpout, "# Performance of all kernels\n"); fprintf(fpout, "# ==========================\n"); ! Print@up@(rt)Nodes(fpout, r1b); fprintf(fpout, "################################### -- CUT HERE -- ############################\n"); fprintf(fpout, "###############################################################################\n#\n"); --- 12989,12993 ---- fprintf(fpout, "# Performance of all kernels\n"); fprintf(fpout, "# ==========================\n"); ! Print@up@(ru)Nodes(fpout, r1b); fprintf(fpout, "################################### -- CUT HERE -- ############################\n"); fprintf(fpout, "###############################################################################\n#\n"); *************** *** 12998,13002 **** fprintf(fpout, "# Following kernel is best in-L1 performer\n"); fprintf(fpout, "# ----------------------------------------\n"); ! Print@up@(rt)Line(fpout, r1L1); } if (lvl & 32) --- 12998,13002 ---- fprintf(fpout, "# Following kernel is best in-L1 performer\n"); fprintf(fpout, "# ----------------------------------------\n"); ! Print@up@(ru)Line(fpout, r1L1); } if (lvl & 32) *************** *** 13005,13009 **** fprintf(fpout, "# Following kernel is best in-L2 performer\n"); fprintf(fpout, "# ----------------------------------------\n"); ! Print@up@(rt)Line(fpout, r1L2); } if (lvl & 2) --- 13005,13009 ---- fprintf(fpout, "# Following kernel is best in-L2 performer\n"); fprintf(fpout, "# ----------------------------------------\n"); ! Print@up@(ru)Line(fpout, r1L2); } if (lvl & 2) *************** *** 13013,13017 **** blkstr); fprintf(fpout, "# ---------------------------------------------------\n"); ! Print@up@(rt)Line(fpout, r1OOC); } WriteMflopExp(fpout); --- 13013,13017 ---- blkstr); fprintf(fpout, "# ---------------------------------------------------\n"); ! Print@up@(ru)Line(fpout, r1OOC); } WriteMflopExp(fpout); |