%!PS-Adobe-1.0 %%Creator: dasher2:dongarra (Jack &,) %%Title: stdin %%CreationDate: Mon Apr 18 14:38:55 1988 %%DocumentFonts: Times-Roman Times-Italic Times-Bold Symbol Times-Roman %%Pages: (atend) %%EndComments % lib/pscat.pro -- prolog for pscat (troff) files % Copyright (C) 1985 Adobe Systems, Inc. % Added defs for Manual Feed save /pscatsave exch def /$pscat 50 dict def $pscat begin /fm [1 0 0 1 0 0] def /xo 0 def /yo 0 def /M /moveto load def /R /show load def /S {exch currentpoint exch pop moveto show}def /T {exch currentpoint pop exch moveto show}def /U {3 1 roll moveto show}def /siz 0 def /font 0 def /Z {/siz exch def SF}def /F {/font exch def SF}def /SF{font 0 ne {catfonts font 1 sub get fm 0 siz put fm 3 siz neg put fm makefont setfont}if}def /BP{save/catsv exch def 0 792 translate 72 432 div dup neg scale xo yo translate 0 0 moveto}def /BPL{save/catsv exch def 72 8.25 mul 792 translate -90 rotate 72 432 div dup neg scale xo yo translate 0 0 moveto}def /EP{catsv restore showpage}def /SetStTime{statusdict /manualfeedtimeout 120 put} def /SetStatus{statusdict /manualfeed true put statusdict /product get (LaserWriter) eq {version (23.0) eq % Don't redefine EP if printer is not "Classic LW" {/EP {catsv restore {statusdict /printerstatus get exec 16#22000000 and 0 eq{exit}if}loop showpage}def}if }if}def % definitions for PPROC callback functions % each PPROC is called with the following number on the stack: % pointsize charcode railmag pswidth pschar x y wid /$pprocs 50 dict def /fractm [.65 0 0 .6 0 0] def % fractions /PS1{gsave $pprocs begin /wid exch def pop pop pop pop pop /ch exch def /size exch def /pair $pprocs ch get def /cf currentfont def cf fractm makefont setfont 0 .3 size mul 6 mul 2 copy neg rmoveto pair 0 get show rmoveto currentfont cf setfont (\244) show setfont pair 1 get show grestore wid .06 div 0 rmoveto end}def $pprocs begin 8#34 [(1)(4)] def 8#36 [(1)(2)] def 8#46 [(3)(4)] def end % boxes /PS2{gsave /wid exch def pop pop /char exch def pop pop pop /size exch def /len size 3.5 mul def % length of a side len 0 rlineto 0 len neg rlineto len neg 0 rlineto closepath char 3 eq {fill}{size 5 mul .07 mul setlinewidth stroke}ifelse grestore wid .06 div 0 rmoveto}def /PS3/PS2 load def % boxes are the same... % circle /PS4{gsave /wid exch def pop pop pop pop pop pop /size exch def wid .8333 mul size 2.5 mul neg rmoveto currentpoint % center newpath size 1.8 mul 0 360 arc size .2 mul setlinewidth stroke grestore wid .06 div 0 rmoveto}def /bb{$pprocs begin /wid exch def pop pop pop pop pop pop /size exch 6 mul def /s2 size 2 div def /s4 size 4 div def gsave currentpoint newpath transform round exch round exch itransform translate size 16 div setlinewidth 2 setlinejoin 0 setgray}def $pprocs begin /mrr{moveto rlineto rlineto}def /be{stroke grestore wid .06 div 0 rmoveto end}def end % leftfloor /PS6 {bb s4 0 0 size s4 size -.8 mul mrr be}def % rightfloor /PS7 {bb s4 neg 0 0 size s4 size -.8 mul mrr be}def % leftceil /PS8 {bb s4 0 0 size neg s4 size .2 mul mrr be}def % rightceil /PS9 {bb s4 neg 0 0 size neg s4 size .2 mul mrr be}def % boldvert /PS5 {bb 0 0 0 size neg s4 size .2 mul mrr be}def % box rule /PS32 {bb /sw size 24 div def sw 2 div size 4.5 div moveto 0 size neg rlineto sw setlinewidth be}def % rule (roman, bold and italic) /PS16 {gsave $pprocs begin /wid exch def pop pop pop pop pop pop /size exch 6 mul def /sw size 14 div def currentpoint exch sw 2 div sub exch newpath transform round exch round exch itransform translate 0 0 moveto size 2 div 0 rlineto sw setlinewidth be}def % lefttopcurl /PS20 {bb s4 size .2 mul moveto 0 size -.55 mul rlineto currentpoint pop size -.8 mul 2 copy exch s4 add exch s4 arcto pop pop pop pop be}def % leftbotcurl /PS21 {bb s4 size -.8 mul moveto 0 size .55 mul rlineto currentpoint pop size .2 mul 2 copy exch s4 add exch s4 arcto pop pop pop pop be}def % righttopcurl /PS22 {bb s4 size .2 mul moveto 0 size -.55 mul rlineto currentpoint pop size -.8 mul 2 copy exch s4 sub exch s4 arcto pop pop pop pop be}def % rightbotcurl /PS23 {bb s4 size -.8 mul moveto 0 size .55 mul rlineto currentpoint pop size .2 mul 2 copy exch s4 sub exch s4 arcto pop pop pop pop be}def % rightmidcurl /PS25 {bb /s3 size -.3 mul def s4 size -.8 mul moveto s4 s3 s2 s3 s4 arcto pop pop size add s4 s3 4 2 roll s4 arcto pop pop pop pop s4 size .2 mul lineto be}def % leftmidcurl /PS24 {bb /s3 size -.3 mul def s4 size -.8 mul moveto s4 s3 0 s3 s4 arcto pop pop size add s4 s3 4 2 roll s4 arcto pop pop pop pop s4 size .2 mul lineto be}def /catfonts [ /Times-Roman findfont /Times-Italic findfont /Times-Bold findfont /Symbol findfont /Times-Roman findfont ] def %%EndProlog %%Page: ? 1 BP 1 F 60 Z 1838 597(.)U 2318 1389(Y)U 1311(ARGONNE)S 1623(NATIONAL)S 1952(LABORATOR)S 1526 1461(9700)U 1666(South)S 1826(Cass)S 1959(Avenue)S 3 F 72 Z 1396 1863(A)U 1 F 60 Z 1533 1533(Argonne,)U 1778(Illinois)S 1989(60439)S 3 F 72 Z 1448 1863(n)U 1512(Extended)S 1828(Set)S 1948(of)S 2032(Fortran)S 2364 2007(s)U 66 Z 693 2295(J)U 72 Z 1280 2007(Basic)U 1468(Linear)S 1700(Algebra)S 1972(Subprogram)S 66 Z 726 2295(ack)U 847(J.)S 919(Dongarra,)S 1233(Jeremy)S 1463(Du)S 1570(Croz,)S 1748(Sven)S 1906(Hammarling,)S 2307(and)S 2436(Richard)S 2689(J.)S 2761(Hanson)S 1 F 60 Z 1278 2583(Mathemati)U 1540(cs)S 1610(and)S 1717(Computer)S 1978(Science)S 2186(Division)S 1280 2799(Technica)U 1502(l)S 1539(Memorandum)S 1900(No.)S 2008(41)S 2088(\(Revision)S 2342(3\))S 1631 3174(November,)U 1920(1986)S EP %%Page: ? 2 BP 1 F 60 Z 1838 597(.)U 3 F 66 Z 1972 1389(T)U 1 F 60 Z 432 1677(T)U 3 F 66 Z 1655 1389(ABSTRAC)U 1 F 60 Z 469 1677(his)U 563(paper)S 721(describes)S 969(an)S 1050(extension)S 1305(to)S 1376(the)S 1474(set)S 1565(of)S 1639(Basic)S 1797(Linear)S 1979(Algebra)S 2196(Subprograms.)S 2554(The)S 2671(extensions)S 2948(are)S 3045(targeted)S 3220 1749(r)U 432 1821(h)U 432 1749(at)U 504(matrix-vec)S 766(tor)S 861(operations)S 1140(which)S 1315(should)S 1503(provide)S 1715(for)S 1813(ef\256cient)S 2039(and)S 2153(portable)S 2378(impleme)S 2590(ntations)S 2808(of)S 2885(algorithms)S 3170(fo)S 462 1821(igh-performance)U 884(computers.)S EP %%Page: ? 3 BP 3 F 72 Z 1320 597(An)U 1436(Extended)S 1752(Set)S 1872(of)S 1956(Fortran)S 2288 741(s)U 1204(Basic)S 1392(Linear)S 1624(Algebra)S 1896(Subprogram)S 2 F 42 Z 2036 861(\262)U 1 F 60 Z 1235 993(M)U 2 F 66 Z 1550 885(Jack)U 1692(J.)S 1760(Dongarra)S 1 F 60 Z 1288 993(athemat)U 1480(ics)S 1567(and)S 1674(Computer)S 1935(Science)S 2143(Division)S 1430 1065(Argonne)U 1660(National)S 1888(Laboratory)S 1500 1137(Argonne,)U 1745(Illinois)S 1936(60439)S 1372 1389(N)U 2 F 66 Z 1571 1281(Jeremy)U 1783(Du)S 1886(Croz)S 1 F 60 Z 1415 1389(umerical)U 1647(Algorithms)S 1941(Group)S 2114(Ltd.)S 2227 1461(e)U 1324 1533(2)U 1332 1461(NAG)U 1481(Central)S 1679(Of\256ce,)S 1864(May\256eld)S 2101(Hous)S 1354 1533(56)U 1434(Banbury)S 1661(Road,)S 1823(Oxford)S 2016(OX2)S 2152(7DE)S 1372 1785(N)U 2 F 66 Z 1551 1677(Sven)U 1697(Hammarling)S 1 F 60 Z 1415 1785(umerical)U 1647(Algorithms)S 1941(Group)S 2114(Ltd.)S 2227 1857(e)U 1324 1929(2)U 1332 1857(NAG)U 1481(Central)S 1679(Of\256ce,)S 1864(May\256eld)S 2101(Hous)S 1354 1929(56)U 1434(Banbury)S 1661(Road,)S 1823(Oxford)S 2016(OX2)S 2152(7DE)S 1389 2181(A)U 2 F 66 Z 1534 2073(Richard)U 1768(J.)S 1836(Hanson)S 5 F 42 Z 2053 2049(\263)U 1 F 60 Z 1432 2181(pplied)U 1603(Mathemati)S 1865(cs)S 1935(Division)S 2162(2646)S 1375 2325(A)U 1453 2253(Sandia)U 1637(National)S 1865(Laboratory)S 1418 2325(lbuquerque,)U 1724(New)S 1857(Mexico)S 2061(87185)S 3105 2613(e)U 540 2685(e)U 2 F 540 2613(Abstract)U 1 F 782(\320)S 870(This)S 1005(paper)S 1167(describes)S 1419(an)S 1504(extension)S 1763(to)S 1837(the)S 1938(set)S 2032(of)S 2109(Basic)S 2270(Linear)S 2455(Algebra)S 2676(Subprograms.)S 3038(Th)S 567 2685(xtensions)U 828(are)S 936(targeted)S 1165(at)S 1243(matrix-vec)S 1505(tor)S 1606(operations)S 1890(which)S 2070(should)S 2263(provide)S 2480(for)S 2583(ef\256cient)S 2814(and)S 2934(portable)S 3 F 66 Z 432 3021(1)U 1 F 60 Z 540 2757(impleme)U 752(ntations)S 963(of)S 1033(algorithms)S 1311(for)S 1401(high-performance)S 1853(computers.)S 3 F 66 Z 465 3021(.)U 526(Introduction)S 1 F 582 3153(I)U (n)R 661(1973)S 817(Hanson,)S 1060(Krogh,)S 1270(and)S 1389(Lawson)S 1622([9])S 1722(described)S 1997(the)S 2100(advantages)S 2415(of)S 2493(adopting)S 2746(a)S 2798(set)S 2894(of)S 2972(basic)S 3130(rou-)S 432 3345(r)U 432 3249(tines)U 588(for)S 697(problems)S 974(in)S 1057(linear)S 1238(algebra.)S 1480(The)S 1614(original)S 1850(basic)S 2017(linear)S 2198(algebra)S 2423(subprograms,)S 2813(now)S 2959(commonly)S 454 3345(eferred)U 671(to)S 753(as)S 839(the)S 950(BLAS)S 1150(and)S 1275(fully)S 1429(described)S 1711(in)S 1792(Lawson,)S 2048(Hanson,)S 2297(Kincaid,)S 2552(and)S 2677(Krogh)S 2876([10,11],)S 3116(have)S 432 3537(m)U 432 3441(been)U 587(very)S 735(successful)S 1037(and)S 1163(have)S 1318(been)S 1473(used)S 1625(in)S 1707(a)S 1767(wide)S 1925(range)S 2101(of)S 2186(software)S 2443(including)S 2721(LINPACK)S 3038([4])S 3145(and)S 483 3537(any)U 607(of)S 691(the)S 800(algorithms)S 1110(published)S 1395(by)S 1490(the)S 1598(ACM)S 1777(Transactions)S 2141(on)S 2235(Mathematic)S 2548(al)S 2623(Software.)S 2906(In)S 2989(particular)S 2 F 432 3729(d)U 1 F 432 3633(they)U 570(are)S 675(an)S 762(aid)S 866(to)S 941(clarity,)S 1149(portability,)S 1463(modularity)S 1775(and)S 1894(maintenanc)S 2196(e)S 2249(of)S 2328(software)S 2579(and)S 2698(they)S 2835(have)S 2983(become)S 3211(a)S 2 F 465 3729(e)U 517(facto)S 1 F 671(standard)S 917(for)S 1017(the)S 1120(elementa)S 1356(ry)S 1434(vector)S 1621(operations.)S 1956(An)S 2059(excellent)S 2317(discussion)S 2614(of)S 2691(the)S 2 F 2793(raison)S 2984(d')S 5 F 3061(\303)S 2 F 3061(etre)S 1 F 3185(of)S 0 F 48 Z 432 3945 M 8 22 0 0 16 0 0 18 PS16 1 F 66 Z 432 3825(the)U 534(BLAS)S 725(is)S 791(given)S 959(in)S 1032(Dodson)S 1260(and)S 1377(Lewis)S 1560([1].)S 0 F 48 Z 456 3945 M 8 22 0 0 16 0 0 18 PS16 480 3945 M 8 22 0 0 16 0 0 18 PS16 504 3945 M 8 22 0 0 16 0 0 18 PS16 528 3945 M 8 22 0 0 16 0 0 18 PS16 552 3945 M 8 22 0 0 16 0 0 18 PS16 576 3945 M 8 22 0 0 16 0 0 18 PS16 600 3945 M 8 22 0 0 16 0 0 18 PS16 624 3945 M 8 22 0 0 16 0 0 18 PS16 648 3945 M 8 22 0 0 16 0 0 18 PS16 672 3945 M 8 22 0 0 16 0 0 18 PS16 696 3945 M 8 22 0 0 16 0 0 18 PS16 720 3945 M 8 22 0 0 16 0 0 18 PS16 744 3945 M 8 22 0 0 16 0 0 18 PS16 768 3945 M 8 22 0 0 16 0 0 18 PS16 792 3945 M 8 22 0 0 16 0 0 18 PS16 816 3945 M 8 22 0 0 16 0 0 18 PS16 840 3945 M 8 22 0 0 16 0 0 18 PS16 1 F 54 Z 462 4011(W)U (ork)R 614(supported)S 856(in)S 927(part)S 1040(by)S 1123(the)S 1218(Applied)S 1421(Mathematical)S 1746(Sciences)S 1963(subprogram)S 2249(of)S 2322(the)S 2416(Of\256ce)S 2579(of)S 2652(Energy)S 432 4077(R)U 2 F 42 Z 432 3987(\262)U 1 F 54 Z 468 4077(esearch,)U 662(U.)S 733(S.)S 795(Department)S 1068(of)S 1131(Energy,)S 1319(under)S 1460(Contract)S 1664(W-31-109-Eng-38.)S 432 4341(T)U 5 F 42 Z 432 4185(\263)U 1 F 54 Z 462 4209(Work)U 603(supported)S 834(by)S 906(the)S 990(U.S.)S 1105(Department)S 1378(of)S 1441(Energy.)S 465 4341(ypeset)U 621(on)S 693(April)S 825(18,)S 911(1988.)S EP %%Page: ? 4 BP 1 F 66 Z 1775 405(-)U 1819(2)S 1874(-)S 582 621(S)U (pecial)R 801(versions)S 1047(of)S 1128(the)S 1234(BLAS,)S 1446(in)S 1523(some)S 1687(cases)S 1851(machine)S 2098(code)S 2247(versions,)S 2509(have)S 2658(been)S 2807(implement)S 3087(ed)S 3174(on)S 3211 717(e)U 432 813(m)U 432 717(a)U 497(number)S 734(of)S 825(computers,)S 1152(thus)S 1298(improving)S 1608(the)S 1724(ef\256ciency)S 2019(of)S 2110(the)S 2226(BLAS.)S 2448(However,)S 2743(with)S 2896(some)S 3070(of)S 3160(th)S 483 813(odern)U 661(machine)S 911(architect)S 1136(ures,)S 1291(the)S 1399(use)S 1515(of)S 1598(the)S 1706(BLAS)S 1903(is)S 1975(not)S 2087(the)S 2195(best)S 2329(way)S 2467(to)S 2546(improve)S 2792(the)S 2899(ef\256ciency)S 3185(of)S 3218 909(f)U 432 1005(m)U 432 909(higher)U 630(level)S 787(codes.)S 1006(On)S 1117(vector)S 1310(machines,)S 1604(for)S 1710(example,)S 1978(one)S 2102(needs)S 2281(to)S 2361(optimize)S 2619(at)S 2695(least)S 2844(at)S 2920(the)S 3029(level)S 3185(o)S 483 1005(atrix-vector)U 819(operations)S 1123(in)S 1204(order)S 1373(to)S 1454(approach)S 1725(the)S 1835(potential)S 2094(ef\256ciency)S 2383(of)S 2468(the)S 2578(machine)S 2829(\(see)S 2964([2,3]\);)S 3160(the)S 3214 1101(s)U 432 1197(f)U 432 1101(use)U 544(of)S 623(the)S 727(BLAS)S 920(inhibits)S 1140(this)S 1258(optimizat)S 1505(ion)S 1612(because)S 1843(they)S 1979(hide)S 2115(the)S 2218(matrix-vect)S 2520(or)S 2598(nature)S 2785(of)S 2863(the)S 2966(operation)S 454 1197(rom)U 582(the)S 684(compiler.)S 582 1329(W)U (e)R 698(believe)S 912(that)S 1034(the)S 1138(time)S 1278(is)S 1346(right)S 1494(to)S 1569(specify)S 1783(an)S 1869(additional)S 2155(set)S 2252(of)S 2331(BLAS)S 2524(designed)S 2782(for)S 2883(matrix-vect)S 3185(or)S 432 1521(t)U 432 1425(operations.)U 750(It)S 817(has)S 932(been)S 1083(our)S 1198(experience)S 1509(that)S 1634(a)S 1690(small)S 1858(set)S 1957(of)S 2038(matrix-vect)S 2340(or)S 2421(operations)S 2721(occur)S 2893(frequently)S 3189(in)S 450 1521(he)U 543(implement)S 823(ation)S 985(of)S 1071(many)S 1248(of)S 1334(the)S 1445(most)S 1604(common)S 1865(algorithms)S 2177(in)S 2259(linear)S 2439(algebra.)S 2702(We)S 2824(de\256ne)S 3016(here)S 3160(the)S 3214 1617(s)U 432 1713(a)U 432 1617(basic)U 590(operations)S 887(for)S 987(that)S 1108(set,)S 1221(together)S 1459(with)S 1598(the)S 1700(naming)S 1919(conventions)S 2259(and)S 2376(the)S 2478(calling)S 2678(sequences.)S 3006(Routine)S 461 1713(t)U 517(this)S 650(level)S 815(should)S 1029(provide)S 1268(a)S 1335(reasonable)S 1653(compromise)S 2015(between)S 2271(the)S 2388(sometimes)S 2706(con\257icting)S 3024(aims)S 3185(of)S 432 1905(w)U 432 1809(ef\256ciency)U 717(and)S 838(modularity)S 1152(and)S 1273(it)S 1335(is)S 1405(our)S 1519(hope)S 1673(that)S 1797(ef\256cient)S 2038(implement)S 2318(ations)S 2501(will)S 2629(become)S 2859(available)S 3120(on)S 3211(a)S 480 1905(ide)U 582(range)S 750(of)S 827(computer)S 1097(architect)S 1322(ures.)S 582 2037(D)U (uring)R 796(the)S 903(Gatlinburg)S 1215(meeting)S 1452(of)S 1533(June,)S 1697(1984)S 1855(\(Waterloo,)S 2164(Ontario\))S 2413(discussions)S 2740(among)S 2945(the)S 3051(partici-)S 3218 2133(-)U 432 2229(i)U 432 2133(pants)U 596(encouraged)S 924(us)S 1008(to)S 1084(prepare)S 1306(a)S 1359(proposed)S 1625(set)S 1722(of)S 1801(Level)S 1974(2)S 2031(BLAS.)S 2263(At)S 2353(about)S 2523(the)S 2627(same)S 2786(time)S 2926(IFIP)S 3068(Work)S 450 2229(ng)U 538(Group)S 729(2.5)S 834(started)S 1031(a)S 1082(project)S 1286(on)S 1374(the)S 1476(same)S 1633(subject)S 1841(at)S 1910(their)S 2052(annual)S 2249(meeting)S 2482(in)S 2555(Pasadena,)S 2839(CA.)S 3218 2361(-)U 432 2457(s)U 582 2361(An)U 688(initial)S 865(proposal)S 1117(was)S 1245(drafted)S 1456(and)S 1576(presented)S 1853(at)S 1925(the)S 2030(Parvec)S 2234(IV)S 2329(workshop)S 2615(held)S 2753(at)S 2824(Purdue)S 3035(Univer)S 458 2457(ity,)U 576(Oct.)S 720(29-30,)S 922(1984.)S 1102(A)S 1181(series)S 1362(of)S 1448(meetings)S 1716(was)S 1850(planned)S 2089(so)S 2179(that)S 2308(the)S 2419(project)S 2632(would)S 2828(re\257ect)S 3023(the)S 3134(best)S 432 2649(o)U 432 2553(thinking)U 681(of)S 766(the)S 876(mathemat)S 1134(ical)S 1258(software)S 1515(community.)S 1883(Four)S 2038(meetings)S 2305(soliciting)S 2579(input)S 2744(were)S 2902(held.)S 3083(These)S 465 2649(ccurred)U 690(at)S 765(SIAM)S 959(conferences:)S 1319(The)S 1449(Spring)S 1653(Meeting)S 1900(of)S 1983(the)S 2091(Society,)S 2333(\(Seattle,)S 2578(WA,)S 2733(July)S 2870(16-20,)S 3068(1984\);)S 432 2841(t)U 432 2745(The)U 557(Conference)S 883(on)S 972(Applied)S 1207(Linear)S 1401(Algebra)S 1636(\(Raleigh,)S 1902(NC,)S 2034(April)S 2196(29-May)S 2428(2,)S 2501(1985\);)S 2696(The)S 2820(Fall)S 2944(Meeting)S 3185(of)S 450 2841(he)U 539(Society,)S 780(\(Tempe,)S 1028(AZ,)S 1160(October)S 1399(28-30,)S 1597(1985\);)S 1796(The)S 1925(Conference)S 2255(on)S 2348(Parallel)S 2575(Processing)S 2888(for)S 2992(Scienti\256c)S 432 3033(S)U 432 2937(Computing)U 761(\(Norfolk,)S 1042(VA,)S 1188(November)S 1499(18-21,)S 1703(1985\).)S 1907(In)S 1995(addition,)S 2259(we)S 2368(had)S 2495(discussions)S 2828(with)S 2977(the)S 3089(ACM)S 469 3033(IGNUM)U 716(Board)S 899(at)S 968(the)S 1070(board)S 1242(meeting)S 1475(in)S 1548(Seattle,)S 1765(WA)S 1897(in)S 1970(July)S 2102(1984.)S 3211 3165(e)U 432 3261(i)U 582 3165(Earlier,)U 807(a)S 866(modi\256ed)S 1130(proposal)S 1387(was)S 1519(printed)S 1734(in)S 1814(the)S 1923(SIGNUM)S 2214(Newletter,)S 2519([6].)S 2664(In)S 2748(that)S 2875(document)S 3163(w)S 450 3261(nvited)U 637(readers)S 850(to)S 924(send)S 1068(us)S 1149(their)S 1291(views)S 1467(and)S 1584(suggestions)S 1914(for)S 2013(changes)S 2247(to)S 2320(the)S 2422(design)S 2616(of)S 2693(the)S 2795(extended)S 3054(BLAS.)S 432 3453(t)U 432 3357(Thus)U 589(we)S 690(have)S 838(appealed)S 1095(to)S 1170(a)S 1223(wide)S 1375(audience)S 1632(within)S 1824(the)S 1928(mathemat)S 2186(ical)S 2304(software)S 2555(community.)S 2917(Our)S 3044(hope)S 3196(is)S 450 3453(hat)U 554(the)S 658(proposed)S 924(set)S 1021(of)S 1100(routines)S 1336(that)S 1458(constitute)S 1737(the)S 1841(extended)S 2101(BLAS)S 2293(will)S 2418(\256nd)S 2544(wide)S 2695(applicati)S 2920(on)S 3009(in)S 3083(future)S 432 3549(software)U 681(for)S 780(numerical)S 1064(linear)S 1235(algebra)S 1450(and)S 1567(provide)S 1790(a)S 1841(useful)S 2024(tool)S 2148(for)S 2247(implement)S 2527(ors)S 2630(and)S 2747(users.)S 582 3681(In)U 661(this)S 780(paper)S 950(we)S 1051(shall)S 1199(refer)S 1346(to)S 1420(the)S 1523(existing)S 1754(BLAS)S 1946(of)S 2024(Lawson)S 2 F 2256(et)S 2326(al.)S 1 F 2439(as)S 2517(``Level)S 2733(1)S 2789(BLAS'',)S 3042(and)S 3160(the)S 432 3873(a)U 432 3777(new)U 565(extended)S 825(set)S 921(as)S 999(``Level)S 1215(2)S 1271(BLAS''.)S 1546(The)S 1671(Level)S 1843(2)S 1899(BLAS)S 2091(involve)S 2 F 2310(O)S 1 F 2369(\()S 2 F (mn)R 1 F 2483(\))S 2527(scalar)S 2702(operations)S 2998(where)S 2 F 3181(m)S 1 F 461 3873(nd)U 2 F 554(n)S 1 F 625(are)S 732(the)S 839(dimensions)S 1166(of)S 1248(the)S 1355(matrix)S 1553(involved.)S 1827(These)S 2011(could)S 2184(be)S 2273(programmed)S 2636(by)S 2729(a)S 2785(series)S 2962(of)S 3043(calls)S 3189(to)S 3211 3969(a)U 432 4065(n)U 432 3969(the)U 539(Level)S 715(1)S 775(BLAS,)S 988(though)S 1198(we)S 1302(do)S 1395(not)S 1506(recommend)S 1843(that)S 1968(they)S 2108(be)S 2197(implement)S 2477(ed)S 2566(in)S 2644(that)S 2769(way.)S 2923(Hence,)S 3134(in)S 465 4065(atural)U 640(sense,)S 826(the)S 932(Level)S 1107(2)S 1166(BLAS)S 1361(are)S 1467(performing)S 1789(basic)S 1950(operations)S 2250(at)S 2323(one)S 2444(level)S 2597(higher)S 2790(than)S 2928(the)S 3033(Level)S 3207(1)S 432 4161(BLAS.)U 582 4293(In)U 672([7])S 784(we)S 896(present)S 1121(a)S 1184(model)S 1382(implement)S 1662(ation)S 1827(of)S 1916(the)S 2030(Level)S 2213(2)S 2280(BLAS)S 2483(in)S 2568(Fortran)S 2796(77)S 2896(\(extended)S 3189(to)S 432 4389(include)U 647(a)S 698(COMPLEX*16)S 1135(data)S 1266(type\),)S 1440(and)S 1557(also)S 1685(a)S 1736(set)S 1831(of)S 1908(rigorous)S 2150(test)S 2263(programs.)S EP %%Page: ? 5 BP 1 F 66 Z 1775 405(-)U 1819(3)S 1874(-)S 3 F 432 621(2.)U 504(Scope)S 691(of)S 768(the)S 878(Level)S 1053(2)S 1108(BLAS)S 1 F 582 753(The)U 706(following)S 984(three)S 1137(types)S 1298(of)S 1375(basic)S 1532(operation)S 1802(are)S 1904(performed)S 2200(by)S 2288(the)S 2390(Level)S 2561(2)S 2616(BLAS:)S 432 945(a\))U 527(Matrix-vector)S 914(products)S 1163(of)S 1240(the)S 1342(form)S 2 F 687 1077(y)U 4 F 749(\254)S 837(a)S 2 F (Ax)R 4 F 981(+)S 1040(b)S 2 F (y)R 1 F 1117(,)S 2 F 1178(y)S 4 F 1240(\254)S 1328(a)S 2 F (A)R 1481(x)S 4 F 1543(+)S 1602(b)S 2 F (y)R 1 F 1679(,)S 1740(and)S 2 F 1879(y)S 4 F 1941(\254)S 2029(a)S 2 F (A)R 4 F 2048 1083(`)U 2049(`)S 2 F 2182 1077(x)U 4 F 2244(+)S 2303(b)S 2 F (y)R 1 F 648 1209(w)U 2 F 48 Z 1443 1050(T)U 2144(T)S 1 F 66 Z 696 1209(here)U 4 F 831(a)S 1 F 895(and)S 4 F 1012(b)S 1 F 1071(are)S 1173(scalars,)S 2 F 1391(x)S 1 F 1453(and)S 2 F 1570(y)S 1 F 1632(are)S 1734(vectors)S 1946(and)S 2 F 2063(A)S 1 F 2136(is)S 2202(a)S 2253(matrix,)S 2463(and)S 2 F 687 1341(x)U 4 F 749(\254)S 2 F 837(Tx)S 1 F 914(,)S 2 F 975(x)S 4 F 1037(\254)S 2 F 1125(T)S 1233(x)S 1 F 1273(,)S 1334(and)S 2 F 1473(x)S 4 F 1535(\254)S 2 F 1623(T)S 4 F 1599 1347(`)U 2 F 1731 1341(x)U 1 F 1771(,)S 2 F 48 Z 1195 1314(T)U 1693(T)S 1 F 66 Z 2402 1473(.)U 432 1665(b)U 648 1473(where)U 2 F 831(x)S 1 F 893(is)S 959(a)S 1010(vector)S 1196(and)S 2 F 1313(T)S 1 F 1383(is)S 1449(an)S 1533(upper)S 1705(or)S 1782(lower)S 1954(triangular)S 2231(matrix)S 465 1665(\))U 531(Rank-one)S 809(and)S 926(rank-two)S 1186(updates)S 1409(of)S 1486(the)S 1588(form)S 2 F 687 1797(A)U 4 F 760(\254)S 848(a)S 2 F (xy)R 4 F 1041(+)S 2 F 1100(A)S 1 F 1151(,)S 2 F 1212(A)S 4 F 1285(\254)S 1373(a)S 2 F (xy)R 4 F 1413 1818(`)U 1566 1797(+)U 2 F 1625(A)S 1 F 1676(,)S 2 F 1737(H)S 4 F 1818(\254)S 1906(a)S 2 F (xx)R 4 F 1946 1818(`)U 2099 1797(+)U 2 F 2158(H)S 1 F 2217(,)S 2278(and)S 2 F 2395(H)S 4 F 2476(\254)S 2564(a)S 2 F (xy)R 4 F 2604 1818(`)U 2757 1797(+)U 2816(a)S 2784 1818(`)U 2787(`)S 2 F 2858 1797(yx)U 4 F 2856 1818(`)U 3009 1797(+)U 2 F 3068(H)S 1 F 3127(,)S 648 1929(w)U 2 F 48 Z 981 1770(T)U 1506(T)S 2039(T)S 2697(T)S 2949(T)S 1 F 66 Z 696 1929(here)U 2 F 853(H)S 1 F 956(is)S 1022(a)S 1073(Hermitian)S 1361(matrix.)S 1656 2121(m)U 432(c\))S 527(Solution)S 772(of)S 849(triangular)S 1126(equations)S 1400(of)S 1477(the)S 1579(for)S 2 F 687 2253(x)U 4 F 749(\254)S 2 F 837(T)S 958(x)S 1 F 998(,)S 2 F 1037(x)S 4 F 1099(\254)S 2 F 1187(T)S 1322(x)S 1 F 1362(,)S 1423(and)S 2 F 1562(x)S 4 F 1624(\254)S 2 F 1712(T)S 4 F 1688 2259(`)U 2 F 1847 2253(x)U 1 F 1887(,)S 648 2385(w)U 4 F 48 Z 907 2226(-)U 1 F (1)R 4 F 1257(-)S 2 F (T)R 4 F 1782(-)S 2 F (T)R 1 F 66 Z 696 2385(here)U 2 F 831(T)S 1 F 901(is)S 967(a)S 1018(non-singular)S 1373(upper)S 1545(or)S 1622(lower)S 1794(triangular)S 2071(matrix.)S 3207 2517(n)U 432 2613(b)U 582 2517(Where)U 793(appropriate,)S 1145(the)S 1261(operations)S 1571(are)S 1687(applied)S 1916(to)S 2003(general,)S 2248(general)S 2476(band,)S 2656(Hermitian,)S 2974(Hermitia)S 465 2613(and,)U 606(triangular,)S 907(and)S 1031(triangular)S 1315(band)S 1471(matrices)S 1721(in)S 1800(both)S 1945(real)S 2071(and)S 2194(complex)S 2448(arithmeti)S 2684(c,)S 2758(and)S 2881(in)S 2960(single)S 3145(and)S 432 2709(double)U 633(precision.)S 582 2841(In)U 666(Appendix)S 955(B)S 1028(we)S 1134(propose)S 1372(corresponding)S 1778(sets)S 1906(of)S 1990(routines)S 2231(in)S 2311(which)S 2501(the)S 2610(internal)S 2839(computation)S 3196(is)S 3222 2937(t)U 432 3033(t)U 432 2937(performed)U 733(in)S 811(extended)S 1075(precision,)S 1360(and)S 1482(the)S 1589(vectors)S 2 F 1806(x)S 1 F 1873(and/or)S 2 F 2068(y)S 1 F 2135(are)S 2242(stored)S 2430(in)S 2508(extended)S 2772(precision,)S 3057(so)S 3142(tha)S 450 3033(he)U 541(extra)S 701(internal)S 930(precision)S 1200(is)S 1273(not)S 1386(all)S 1479(discarded)S 1759(on)S 1853(return)S 2038(from)S 2194(the)S 2302(routine.)S 2533(This)S 2678(proposal)S 2933(is)S 3005(aimed)S 3193(at)S 432 3225(m)U 432 3129(environments)U 815(that)S 938(support)S 1161(extended)S 1422(precision)S 1687(arithmeti)S 1923(c,)S 1993(for)S 2094(example)S 2340(machines)S 2612(performing)S 2932(IEEE)S 3098(arith-)S 483 3225(etic)U 601([12].)S 774(We)S 889(propose)S 1122(these)S 1281(routines)S 1517(as)S 1596(an)S 1682(optional)S 1921(extension)S 2197(to)S 2272(the)S 2376(Level)S 2549(2)S 2606(BLAS)S 2799(because)S 3030(it)S 3089(is)S 3156(not)S 432 3417(r)U 432 3321(possible)U 673(to)S 749(specify)S 964(a)S 1018(complete)S 1283(set)S 1381(within)S 1574(the)S 1679(con\256nes)S 1924(of)S 2004(ANSI)S 2184(Fortran)S 2403(77.)S 2533(The)S 2660(only)S 2802(case)S 2940(that)S 3063(can)S 3178(be)S 454 3417(ealized)U 662(within)S 853(the)S 956(standard)S 1202(is)S 1269(where)S 1453(the)S 1556(matrix)S 1750(is)S 1817(real)S 1938(single)S 2118(precision)S 2382(and)S 2500(the)S 2603(extended)S 2863(precision)S 3127(vec-)S 3 F 432 3705(3)U 1 F 432 3513(tors)U 553(are)S 655(real)S 775(double)S 976(precision.)S 1278(Code)S 1439(for)S 1538(these)S 1695(routines)S 1929(is)S 1995(not)S 2101(included)S 2349(in)S 2422([7].)S 3 F 465 3705(.)U 504(Naming)S 750(Conventions)S 1 F 582 3837(T)U (he)R 707(name)S 872(of)S 950(a)S 1002(Level)S 1174(2)S 1230(BLAS)S 1422(is)S 1489(in)S 1562(the)S 1664(LINPACK)S 1973(style)S 2119(and)S 2236(consists)S 2467(of)S 2544(\256ve)S 2665(characters,)S 2970(the)S 3072(last)S 3185(of)S 3218 3933(-)U 432 4029(l)U 432 3933(which)U 616(may)S 752(be)S 837(blank.)S 1022(The)S 1146(\256rst)S 1271(character)S 1533(in)S 1606(the)S 1708(name)S 1872(denotes)S 2095(the)S 2197(Fortran)S 2413(data)S 2544(type)S 2679(of)S 2756(the)S 2858(matrix,)S 3068(as)S 3145(fol)S 450 4029(ows:)U EP %%Page: ? 6 BP 1 F 66 Z 1775 405(-)U 1819(4)S 1874(-)S 1009 765(D)U 1009 669(S)U 1178(REAL)S 1178 765(DOUBLE)U 1468(PRECISION)S 1009 861(C)U 1178(COMPLEX)S 1009 957(Z)U 1178(COMPLEX*16)S 1615(or)S 1692(DOUBLE)S 1982(COMPLEX)S 2320(\(if)S 2404(available)S 2640(\))S 2717 1185(:)U 432(Characters)S 735(two)S 856(and)S 973(three)S 1126(in)S 1199(the)S 1301(name)S 1465(denote)S 1662(the)S 1764(kind)S 1903(of)S 1980(matrix)S 2173(involved,)S 2442(as)S 2519(follows)S 1182 1425(GE)U 1395(General)S 1625(matrix)S 1182 1521(G)U (B)R 1395(General)S 1625(band)S 1775(matrix)S 1182 1713(S)U 1182 1617(HE)U 1395(Hermitian)S 1683(matrix)S 1219 1713(Y)U 1395(Symmetric)S 1705(matrix)S 2417 1809(m)U 1182 1905(S)U 1182 1809(HP)U 1395(Hermitian)S 1683(matrix)S 1876(stored)S 2059(in)S 2132(packed)S 2340(for)S 1219 1905(P)U 1395(Symmetric)S 1705(matrix)S 1898(stored)S 2081(in)S 2154(packed)S 2362(form)S 1182 2097(S)U 1182 2001(HB)U 1395(Hermitian)S 1683(band)S 1833(matrix)S 1219 2097(B)U 1395(Symmetric)S 1705(band)S 1855(matrix)S 1182 2289(T)U 1182 2193(TR)U 1395(Triangular)S 1694(matrix)S 1222 2289(P)U 1395(Triangular)S 1694(matrix)S 1887(stored)S 2070(in)S 2143(packed)S 2351(form)S 432 2613(T)U 1182 2385(TB)U 1395(Triangular)S 1694(band)S 1844(matrix)S 472 2613(he)U 556(fourth)S 739(and)S 856(\256fth)S 988(characters)S 1276(in)S 1349(the)S 1451(name)S 1615(denote)S 1812(the)S 1914(type)S 2049(of)S 2126(operation,)S 2413(as)S 2490(follows:)S 1247 2949(R)U 1247 2853(MV)U 1453(-)S 1497(Matrix-vector)S 1884(product)S 1453 2949(-)U 1497(Rank-one)S 1775(update)S 1925 3045(e)U 1247 3141(S)U 1247 3045(R2)U 1453(-)S 1497(Rank-two)S 1779(updat)S 1284 3141(V)U 1453(-)S 1497(Solve)S 1669(a)S 1720(system)S 1925(of)S 2002(linear)S 2173(equations)S 3211 3465(e)U 432 3561(i)U 432 3465(The)U 561(available)S 824(combinations)S 1205(are)S 1312(indicated)S 1579(in)S 1656(Table)S 1831(3.1)S 1940(below.)S 2166(In)S 2247(the)S 2353(\256rst)S 2482(column,)S 2722(under)S 2 F 2898(complex)S 1 F (,)R 3160(th)S 450 3561(nitial)U 609(C)S 678(may)S 816(be)S 903(replaced)S 1150(by)S 1241(Z.)S 1323(In)S 1403(the)S 1508(second)S 1716(column,)S 1954(under)S 2 F 2128(real)S 1 F (,)R 2275(the)S 2379(initial)S 2555(S)S 2616(may)S 2753(be)S 2839(replaced)S 3085(by)S 3175(D.)S 432 3657(See)U 549(Appendix)S 831(C)S 897(for)S 996(the)S 1098(full)S 1211(subroutine)S 1511(calling)S 1711(sequences.)S 582 3789(The)U 710(collecti)S 902(on)S 994(of)S 1075(routines)S 1313(can)S 1430(be)S 1518(thought)S 1745(of)S 1826(as)S 1906(being)S 2077(divided)S 2299(into)S 2426(four)S 2561(separate)S 2801(parts,)S 2 F 2971(real)S 1 F (,)R 2 F 3119(dou-)S 1 F 3223 3885(,)U 432 3981(w)U 2 F 432 3885(ble)U 542(precision)S 1 F (,)R 2 F 834(complex)S 1 F (,)R 1100(and)S 2 F 1225(complex*16)S 1 F (.)R 1612(The)S 1744(routines)S 1986(can)S 2107(be)S 2199(written)S 2415(in)S 2496(ANSI)S 2681(standard)S 2934(Fortran)S 3157(77)S 480 3981(ith)U 577(the)S 685(exception)S 967(of)S 1049(the)S 1156(routines)S 1395(that)S 1520(use)S 1635(COMPLEX*16)S 2077(variables.)S 2380(These)S 2564(routines)S 2803(are)S 2910(included)S 3163(for)S 432 4173(d)U 432 4077(completene)U 734(ss)S 811(and)S 931(for)S 1033(their)S 1178(usefulness)S 1478(on)S 1569(those)S 1733(systems)S 1967(which)S 2153(support)S 2376(this)S 2496(data)S 2630(type,)S 2785(but)S 2894(because)S 3127(they)S 465 4173(o)U 520(not)S 626(conform)S 871(to)S 944(the)S 1046(Fortran)S 1262(standard,)S 1524(they)S 1659(may)S 1794(not)S 1900(be)S 1984(available)S 2242(on)S 2330(all)S 2417(machines.)S EP %%Page: ? 7 BP 1 F 66 Z 1709 621(T)U 1775 405(-)U 1819(5)S 1874(-)S 1749 621(able)U 1880(3.1)S 2322 765(V)U 2 F 1203(complex)S 1532(real)S 1 F 1749(MV)S 1960(R)S 2109(R2)S 2285(S)S 1246 957(CGE)U 1523(SGE)S 1786(*)S 1955(*)S 1244 1053(CGB)U 1521(SGB)S 1786(*)S 1246 1149(CHE)U 1524(SSY)S 1786(*)S 1966(*)S 2131(*)S 2131 1245(*)U 1244 1341(C)U 1248 1245(CHP)U 1530(SSP)S 1786(*)S 1966(*)S 1288 1341(HB)U 1526(SSB)S 1786(*)S 1248 1437(C)U (TR)R 1525(STR)S 1786(*)S 2311(*)S 2311 1533(*)U 1248 1629(C)U 1252 1533(CTP)U 1528(STP)S 1786(*)S 1292 1629(TB)U 1525(STB)S 1786(*)S 2311(*)S 2 F 3189 1857(A)U 1 F 432(For)S 550(the)S 656(general)S 875(rank-1)S 1073(update)S 1274(\(GER\))S 1476(we)S 1579(specify)S 1795(two)S 1920(complex)S 2172(routines:)S 2428(CGERC)S 2674(for)S 2 F 2776(A)S 4 F 2849(\254)S 2937(a)S 2 F (xy)R 4 F 2977 1878(`)U 3130 1857(+)U 2 F 48 Z 3070 1830(T)U 1 F 66 Z 432 1953(a)U 2 F 48 Z 1233 1926(T)U 1 F 66 Z 461 1953(nd)U 564(CGERU)S 825(for)S 2 F 939(A)S 4 F 1012(\254)S 1100(a)S 2 F (xy)R 4 F 1293(+)S 2 F 1352(A)S 1 F 1403(.)S 1479(This)S 1633(is)S 1714(the)S 1831(only)S 1984(exception)S 2275(to)S 2362(the)S 2478(one)S 2609(to)S 2696(one)S 2827(correspondence)S 432 2049(between)U 673(real)S 793(and)S 910(complex)S 1158(routines.)S 1431(See)S 1548(section)S 1756(7)S 1811(for)S 1910(further)S 2111(discussion.)S 582 2181(We)U 700(do)S 793(not)S 904(specify)S 1121(routines)S 1359(for)S 1462(rank-one)S 1722(and)S 1843(rank-two)S 2107(updates)S 2334(applied)S 2553(to)S 2630(band)S 2784(matrices)S 3032(because)S 432 2373(A)U 432 2277(these)U 594(can)S 712(be)S 801(obtained)S 1053(by)S 1145(calls)S 1291(to)S 1368(the)S 1474(rank-one)S 1734(and)S 1855(rank-two)S 2119(full)S 2236(matrix)S 2433(routines.)S 2688(This)S 2831(is)S 2901(illustrated)S 3189(in)S 480 2373(ppendix)U 714(A.)S 3 F 432 2661(4)U (.)R 504(Argument)S 816(Conventions)S 1 F 582 2793(W)U (e)R 703(follow)S 905(a)S 964(convention)S 1286(for)S 1393(the)S 1503(argument)S 1781(lists)S 1917(similar)S 2129(to)S 2210(that)S 2338(for)S 2445(the)S 2555(Level)S 2733(1)S 2795(BLAS,)S 3010(but)S 3123(with)S 3214 2889(s)U 432 2985(i)U 432 2889(extensions)U 735(where)S 921(comparable)S 1252(arguments)S 1551(are)S 1656(not)S 1765(present)S 1979(in)S 2054(the)S 2158(Level)S 2331(1)S 2388(BLAS.)S 2598(The)S 2724(order)S 2887(of)S 2966(argument)S 450 2985(s)U 498(as)S 575(follows:)S 586 3177(a)U (\))R 681(Arguments)S 996(specifying)S 1292(options.)S 1814 3273(.)U 586 3369(c)U 586 3273(b\))U 685(Arguments)S 1000(de\256ning)S 1238(the)S 1340(size)S 1464(of)S 1541(the)S 1643(matrix)S 615 3369(\))U 681(Input)S 842(scalar.)S 586 3465(d)U (\))R 685(Description)S 1014(of)S 1091(the)S 1193(input)S 1350(matrix.)S 586 3657(f)U 586 3561(e\))U 681(Description)S 1010(of)S 1087(input)S 1244(vector\(s\).)S 608 3657(\))U 674(Input)S 835(scalar)S 1010(\(associated)S 1324(with)S 1463(input-output)S 1810(vector\).)S 586 3849(h)U 586 3753(g\))U 685(Description)S 1014(of)S 1091(the)S 1193(input-output)S 1540(vector.)S 619 3849(\))U 685(Description)S 1014(of)S 1091(the)S 1193(input-output)S 1540(matrix.)S 2082 4041(.)U 432(Note)S 582(that)S 702(not)S 808(each)S 950(category)S 1198(is)S 1264(present)S 1476(in)S 1549(each)S 1691(of)S 1768(the)S 1870(routines)S 582 4173(The)U 709(arguments)S 1008(that)S 1131(specify)S 1346(options)S 1565(are)S 1670(character)S 1935(arguments)S 2234(with)S 2376(the)S 2481(names)S 2673(TRANS,)S 2931(UPLO,)S 3145(and)S 432 4269(DIAG.)U 659(TRANS)S 898(is)S 964(used)S 1107(by)S 1195(the)S 1297(matrix-vect)S 1599(or)S 1676(product)S 1899(routines)S 2133(as)S 2210(follows:)S EP %%Page: ? 8 BP 1 F 66 Z 1775 405(-)U 1819(6)S 1874(-)S 5 F 1015 699(_)U 1 F 1015 669(Value)U 1271(Meaning)S 5 F 1040 699(_________________________________________________)U 1 F 1015 891(`)U 1015 795(`N')U 1271(Operate)S 1501(with)S 1640(the)S 1742(matrix.)S 1037 891(T')U 1271(Operate)S 1501(with)S 1640(the)S 1742(transpose)S 2013(of)S 2090(the)S 2192(matrix.)S 2640 987(.)U 432 1215(I)U 1015 987(`C')U 1271(Operate)S 1501(with)S 1640(the)S 1742(conjugate)S 2019(transpose)S 2290(of)S 2367(the)S 2469(matrix)S 454 1215(n)U 509(the)S 611(real)S 731(case)S 866(the)S 968(values)S 1158(`T')S 1264(and)S 1381(`C')S 1491(have)S 1637(the)S 1739(same)S 1896(meaning.)S 3211 1347(e)U 432 1443(u)U 582 1347(UPLO)U 779(is)S 847(used)S 992(by)S 1082(the)S 1186(Hermitian,)S 1493(symmetric,)S 1811(and)S 1930(triangular)S 2209(matrix)S 2403(routines)S 2638(to)S 2712(specify)S 2925(whether)S 3160(th)S 465 1443(pper)U 604(or)S 681(lower)S 853(triangle)S 1075(is)S 1141(being)S 1309(referenced)S 1608(as)S 1685(follows:)S 1968 1587(g)U 5 F 1511 1617(_)U 1 F 1511 1587(Value)U 1767(Meanin)S 5 F 1534 1617(___________________)U 1 F 1511 1809(`)U 1511 1713(`U')U 1767(Upper)S 1954(triangle)S 1533 1809(L')U 1767(Lower)S 1961(triangle)S 3218 2073(-)U 432 2169(a)U 582 2073(DIAG)U 776(is)S 848(used)S 997(by)S 1091(the)S 1199(triangular)S 1482(matrix)S 1681(routines)S 1921(to)S 2000(specify)S 2218(whether)S 2458(or)S 2541(not)S 2653(the)S 2761(matrix)S 2960(is)S 3031(unit)S 3160(tri)S 461 2169(ngular,)U 668(as)S 745(follows:)S 1450 2313(Value)U 1706(Meaning)S 5 F 2188 2343(_)U 1 F 1450 2439(`)U 5 F 1450 2343(_)U 1462(______________________)S 1 F 1472 2439(U')U 1706(Unit)S 1845(triangular)S 2199 2535(r)U 1450(`N')S 1706(Non-unit)S 1966(triangula)S 2391 2667(.)U 432(When)S 611(DIAG)S 799(is)S 865(supplied)S 1110(as)S 1187(`U')S 1301(the)S 1403(diagonal)S 1651(elements)S 1906(are)S 2008(not)S 2114(referenced)S 582 2799(We)U 697(recommend)S 1031(that)S 1153(the)S 1257(corresponding)S 1658(lower)S 1832(case)S 1969(characters)S 2259(be)S 2344(accepted)S 2596(with)S 2736(the)S 2839(same)S 2997(meaning,)S 432 2991(p)U 432 2895(although,)U 702(because)S 933(they)S 1069(are)S 1172(not)S 1279(included)S 1528(in)S 1602(the)S 1705(standard)S 1951(Fortran)S 2168(character)S 2431(set,)S 2544(their)S 2687(use)S 2798(may)S 2934(not)S 3041(be)S 3126(sup-)S 465 2991(orted)U 622(on)S 710(all)S 797(systems.)S 1067(See)S 1184(Section)S 1403(7)S 1458(for)S 1557(further)S 1758(discussion.)S 3218 3123(-)U 432 3219(i)U 582 3123(It)U 648(is)S 718(worth)S 898(noting)S 1092(that)S 1216(actual)S 1398(character)S 1664(arguments)S 1964(in)S 2041(Fortran)S 2261(may)S 2400(be)S 2488(longer)S 2682(than)S 2820(the)S 2925(correspond)S 450 3219(ng)U 544(dummy)S 773(arguments.)S 1092(Therefore,)S 1396(for)S 1501(example,)S 1767(the)S 1874(value)S 2043(`T')S 2154(for)S 2258(TRANS)S 2502(may)S 2642(be)S 2731(passed)S 2934(as)S 3016(`TRAN-)S 432 3315(SPOSE'.)U 582 3447(The)U 717(size)S 852(of)S 940(the)S 1053(matrix)S 1257(is)S 1334(determined)S 1662(by)S 1761(the)S 1873(arguments)S 2179(M)S 2270(and)S 2397(N)S 2477(for)S 2586(an)S 2 F 2680(m)S 1 F 2771(by)S 2 F 2869(n)S 1 F 2945(rectangular)S 3222 3543(t)U 432 3639(i)U 432 3543(matrix,)U 644(and)S 763(by)S 853(the)S 957(argument)S 1229(N)S 1301(for)S 1402(an)S 2 F 1488(n)S 1 F 1556(by)S 2 F 1646(n)S 1 F 1714(symmetric,)S 2032(Hermitian,)S 2339(or)S 2418(triangular)S 2697(matrix.)S 2931(Note)S 3083(that)S 3204(i)S 450 3639(s)U 511(permissible)S 849(to)S 935(call)S 1064(the)S 1178(routines)S 1424(with)S 1575(M)S 1668(or)S 1757(N)S 1839(=)S 1910(0,)S 1994(in)S 2079(which)S 2274(case)S 2421(the)S 2535(routines)S 2781(exit)S 2913(immediat)S 3160(ely)S 3214 3735(s)U 432 3831(K)U 432 3735(without)U 660(referencing)S 986(their)S 1133(vector)S 1324(or)S 1406(matrix)S 1604(arguments.)S 1944(The)S 2073(bandwidth)S 2377(is)S 2447(determined)S 2768(by)S 2860(the)S 2966(argument)S 480 3831(L)U 548(and)S 670(KU)S 793(for)S 897(a)S 953(rectangular)S 1275(matrix)S 1473(with)S 2 F 1617(kl)S 1 F 1702(sub-diagonals)S 2095(and)S 2 F 2217(ku)S 1 F 2317(super-diagonals;)S 2779(and)S 2901(by)S 2994(the)S 3101(argu-)S 432 3927(ment)U 585(K)S 655(for)S 754(a)S 805(symmetric,)S 1121(Hermitian,)S 1426(or)S 1503(triangular)S 1780(matrix)S 1973(with)S 2 F 2112(k)S 1 F 2174(sub-diagonals)S 2562(and/or)S 2752(super-diagonals.)S 582 4059(The)U 719(description)S 1046(of)S 1136(the)S 1251(matrix)S 1457(consists)S 1701(of)S 1791(either)S 1975(the)S 2090(array)S 2260(name)S 2437(\(A\))S 2564(followed)S 2833(by)S 2933(the)S 3047(leading)S 3207 4155(d)U 432 4251(i)U 432 4155(dimension)U 729(of)S 807(the)S 910(array)S 1067(\(LDA\))S 1269(as)S 1346(declared)S 1590(in)S 1663(the)S 1765(calling)S 1965(\(sub\))S 2123(program,)S 2385(when)S 2550(the)S 2652(matrix)S 2845(is)S 2911(being)S 3079(store)S 450 4251(n)U 511(a)S 568(two-dimensional)S 1038(array;)S 1219(or)S 1302(the)S 1410(array)S 1573(name)S 1743(\(AP\))S 1900(alone)S 2069(when)S 2239(the)S 2346(matrix)S 2544(is)S 2615(being)S 2788(stored)S 2976(in)S 3054(packed)S 3222 4347(t)U 432 4443(\()U 432 4347(form)U 607(in)S 705(a)S 781(one-dimensional)S 1266(array.)S 1487(In)S 1589(the)S 1716(former)S 1942(case)S 2102(the)S 2229(actual)S 2432(array)S 2614(must)S 2788(contain)S 3027(at)S 3120(leas)S 454 4443(\()U 2 F (n)R 4 F 520(-)S 1 F (1\))R 2 F (d)R 4 F 678(+)S 2 F 737(l)S 1 F 766(\))S 816(elements,)S 1094(where)S 2 F 1283(d)S 1 F 1355(is)S 1427(the)S 1535(leading)S 1756(dimension)S 2057(of)S 2139(the)S 2246(array,)S 2 F 2425(d)S 4 F 2491(\263)S 2 F 2550(l)S 1 F 2579(,)S 2623(and)S 2 F 2745(l)S 4 F 2796(=)S 2 F 2855(m)S 1 F 2941(for)S 3045(the)S 3152(GE)S EP %%Page: ? 9 BP 1 F 66 Z 432 621(r)U 1775 405(-)U 1819(7)S 1874(-)S 454 621(outines,)U 2 F 684(l)S 4 F 735(=)S 2 F 794(n)S 1 F 861(for)S 961(the)S 1064(SY,)S 1189(HE)S 1300(and)S 1418(TR)S 1525(routines,)S 2 F 1777(l)S 4 F 1828(=)S 2 F 1887(kl)S 4 F 1967(+)S 2 F 2026(ku)S 4 F 2121(+)S 1 F 2180(1)S 2236(for)S 2336(the)S 2439(GB)S 2553(routines,)S 2804(and)S 2 F 2921(l)S 4 F 2972(=)S 2 F 3031(k)S 4 F 3071(+)S 1 F (1)R 3163(for)S 3218 717(-)U 432 813(m)U 432 717(the)U 540(SB,)S 666(HB)S 786(or)S 869(TB)S 981(routines.)S 1260(For)S 1380(packed)S 1594(storage)S 1812(the)S 1920(actual)S 2104(array)S 2266(must)S 2421(contain)S 2641(at)S 2715(least)S 2 F 2862(n)S 1 F 2906(\()S 2 F (n)R 4 F 2972(+)S 1 F (1\))R 4 F (/)R 1 F (2)R 3142(ele)S 483 813(ents.)U 582 945(T)U (he)R 706(scalars)S 907(always)S 1112(have)S 1258(the)S 1360(dummy)S 1583(argument)S 1853(names)S 2043(ALPHA)S 2286(and)S 2403(BETA.)S 3218 1077(\))U 432 1173(f)U 582 1077(As)U 680(with)S 821(the)S 924(existing)S 1155(BLAS)S 1347(the)S 1450(description)S 1765(of)S 1843(a)S 1895(vector)S 2082(consists)S 2314(of)S 2392(the)S 2495(name)S 2660(of)S 2738(the)S 2841(array)S 2999(\(X)S 3092(or)S 3170(Y)S 454 1173(ollowed)U 691(by)S 782(the)S 887(storage)S 1102(spacing)S 1328(\(increment\))S 1659(in)S 1735(the)S 1839(array)S 1998(of)S 2077(the)S 2181(vector)S 2369(elements)S 2626(\(INCX)S 2834(or)S 2913(INCY\).)S 3138(The)S 3218 1269(-)U 432 1365(s)U 432 1269(increment)U 720(is)S 790(allowed)S 1024(to)S 1101(be)S 1188(positive)S 1421(or)S 1501(negative,)S 1765(but)S 1874(not)S 1983(zero)S 2121(\(see)S 2252(section)S 2463(7\).)S 2582(When)S 2764(the)S 2869(vector)S 2 F 3058(x)S 1 F 3123(con)S 458 1365(ists)U 585(of)S 2 F 679(k)S 1 F 758(elements,)S 1047(then)S 1199(the)S 1318(corresponding)S 1734(actual)S 1929(array)S 2102(argument)S 2388(X)S 2474(must)S 2640(be)S 2740(of)S 2833(length)S 3035(at)S 3120(least)S 432 1557(a)U 432 1461(\(1)U 4 F 509(+)S 1 F 568(\()S 2 F (k)R 4 F 630(-)S 1 F (1\))R 733(|)S 2 F 779(INCX)S 1 F 973(|)S 1024(\).)S 1112(For)S 1231(those)S 1397(routines)S 1636(that)S 1761(include)S 1981(the)S 2088(argument)S 2363(BETA,)S 2579(when)S 2749(BETA)S 2947(is)S 3017(supplied)S 461 1557(s)U 515(zero)S 656(then)S 797(the)S 904(array)S 1066(Y)S 1141(need)S 1292(not)S 1403(be)S 1492(set)S 1592(on)S 1685(input,)S 1864(so)S 1950(that)S 2075(operations)S 2376(such)S 2524(as)S 2 F 2606(y)S 4 F 2668(\254)S 2756(a)S 2 F (Ax)R 1 F 2905(may)S 3045(be)S 3134(per-)S 432 1653(formed)U 644(without)S 867(initiall)S 1037(y)S 1092(setting)S 2 F 1289(y)S 1 F 1351(to)S 1424(zero.)S 582 1785(Note)U 740(that)S 868(the)S 978(MV)S 1115(routines)S 1357(must)S 1515(not)S 1628(be)S 1719(called)S 1904(with)S 2050(the)S 2159(dummy)S 2389(arguments)S 2692(X)S 2769(and)S 2893(Y)S 2970(associated)S 3207 1881(d)U 432 1977(w)U 432 1881(with)U 576(the)S 683(same)S 844(actual)S 1026(argument.)S 1339(\(Such)S 1519(association)S 1837(is)S 1907(not)S 2017(supported)S 2303(by)S 2395(the)S 2501(model)S 2691(implement)S 2971(ation,)S 3145(an)S 480 1977(ould)U 619(also)S 747(contravene)S 1057(the)S 1159(Fortran)S 1375(standard.\))S 1681 2169(:)U 432(The)S 556(following)S 834(values)S 1024(of)S 1101(arguments)S 1397(are)S 1499(invalid)S 564 2361(Any)U 700(value)S 864(of)S 941(the)S 1043(character)S 1305(arguments)S 1601(DIAG,)S 1806(TRANS,)S 2062(or)S 2139(UPLO)S 564 2553(M)U 630 2457(whose)U 821(meaning)S 1069(is)S 1135(not)S 1241(speci\256ed.)S 4 F 645 2553(<)U 1 F 704(0)S 564 2745(K)U 564 2649(N)U 4 F 634(<)S 1 F 693(0)S 612 2745(L)U 4 F 674(<)S 1 F 733(0)S 741 2841(0)U 564 2937(K)U 564 2841(KU)U 4 F 682(<)S 634 2937(<)U 1 F 693(0)S 564 3033(L)U (DA)R 4 F 722(<)S 1 F 781(max\()S 938(1,)S 1010(M)S 1091(\))S 1135(for)S 1234(the)S 1336(GE)S 1446(routines.)S 1731 3129(.)U 564 3225(L)U 564 3129(LDA)U 4 F 722(<)S 1 F 781(KL)S 891(+)S 950(KU)S 1068(+)S 1127(1)S 1204(for)S 1303(the)S 1405(GB)S 1519(routines)S 604 3225(DA)U 4 F 722(<)S 1 F 781(N)S 851(for)S 950(the)S 1052(HE,)S 1179(SY,)S 1303(and)S 1420(TR)S 1526(routines.)S 1852 3321(.)U 564 3417(I)U 564 3321(LDA)U 4 F 722(<)S 1 F 781(K)S 851(+)S 910(1)S 965(for)S 1064(the)S 1166(HB,)S 1297(SB,)S 1417(and)S 1534(TB)S 1640(routines)S 586 3417(NCX)U 748(=)S 807(0)S 807 3513(0)U 432 3705(I)U 564 3513(INCY)U 748(=)S 454 3705(f)U 499(a)S 551(routine)S 760(is)S 827(called)S 1006(with)S 1146(an)S 1230(invalid)S 1434(value)S 1598(for)S 1697(any)S 1814(of)S 1891(its)S 1975(arguments,)S 2288(then)S 2423(it)S 2481(must)S 2631(report)S 2810(the)S 2912(fact)S 3032(and)S 3149(ter-)S 432 3897(e)U 432 3801(minate)U 636(execution)S 917(of)S 998(the)S 1104(program.)S 1392(In)S 1472(the)S 1577(model)S 1766(implement)S 2046(ation)S 2202(\(see[7]\),)S 2449(each)S 2594(routine,)S 2822(on)S 2913(detecting)S 3178(an)S 461 3897(rror,)U 604(calls)S 751(a)S 807(common)S 1064(error)S 1219(handling)S 1476(routine)S 1689(XERBLA,)S 1997(passing)S 2222(to)S 2300(it)S 2363(the)S 2470(name)S 2639(of)S 2721(the)S 2827(routine)S 3039(and)S 3160(the)S 3211 3993(c)U 432 4089(e)U 432 3993(number)U 660(of)S 742(the)S 849(\256rst)S 979(argument)S 1254(which)S 1442(is)S 1513(in)S 1591(error.)S 1784(Specialize)S 2053(d)S 2112(implement)S 2392(ations)S 2575(may)S 2714(call)S 2834(system-speci\256)S 461 4089(xception-handli)U 873(ng)S 968(and)S 1091(diagnostic)S 1389(faciliti)S 1559(es,)S 1659(either)S 1836(via)S 1944(an)S 2034(auxiliary)S 2295(routine)S 2509(XERBLA)S 2801(or)S 2884(directly)S 3112(from)S 3211 4185(e)U 432 4281(d)U 432 4185(the)U 535(routines.)S 809(One)S 942(advantage)S 1231(of)S 1309(using)S 1475(XERBLA)S 1762(is)S 1829(that)S 1950(the)S 2053(test)S 2167(program)S 2413(can)S 2527(then)S 2663(test)S 2777(that)S 2897(all)S 2984(errors)S 3160(ar)S 465 4281(etected)U 672(\(see)S 800([7]\).)S EP %%Page: ? 10 BP 1 F 66 Z 1775 405(-)U 1819(8)S 1874(-)S 3 F 432 621(5.)U 504(Storage)S 742(Conventions)S 1 F 582 753(Unless)U 790(otherwise)S 1074(stated)S 1255(it)S 1319(is)S 1390(assumed)S 1644(that)S 1769(matrices)S 2018(are)S 2125(stored)S 2313(conventionall)S 2670(y)S 2730(in)S 2808(a)S 2864(2-dimensional)S 432 849(array)U 589(with)S 728(matrix-ele)S 997(ment)S 2 F 1150(a)S 1 F 1246(stored)S 1429(in)S 1502(array-eleme)S 1815(nt)S 1888(A\(I,J\).)S 2 F 48 Z 1183 864(i)U 1200(j)S 1 F 66 Z 582 984(T)U (he)R 708(routines)S 944(for)S 1044(real)S 1165(symmetric)S 1465(and)S 1583(complex)S 1832(Hermitian)S 2121(matrices)S 2366(allow)S 2535(for)S 2635(the)S 2738(matrix)S 2932(either)S 3104(to)S 3178(be)S 3211 1080(e)U 432 1176(p)U 432 1080(stored)U 616(in)S 690(the)S 793(upper)S 966(\(UPLO)S 1184(=)S 1244(`U'\))S 1381(or)S 1459(lower)S 1632(triangle)S 1855(\(UPLO)S 2073(=)S 2133(`L'\))S 2262(of)S 2339(a)S 2390(two)S 2511(dimensional)S 2854(array,)S 3028(or)S 3105(to)S 3178(b)S 465 1176(acked)U 649(in)S 731(a)S 791(one)S 917(dimensional)S 1268(array.)S 1450(In)S 1535(the)S 1645(latter)S 1809(case)S 1952(the)S 2062(upper)S 2242(triangle)S 2472(may)S 2615(be)S 2707(packed)S 2923(sequentially)S 3207 1272(n)U 432 1368(\()U 432 1272(column)U 652(by)S 741(column)S 961(\(UPLO)S 1179(=)S 1239(`U'\),)S 1393(or)S 1471(the)S 1574(lower)S 1747(triangle)S 1970(may)S 2105(be)S 2189(packed)S 2397(sequentially)S 2736(column)S 2955(by)S 3043(colum)S 454 1368(UPLO)U 666(=)S 742(`L'\).)S 904(Note)S 1071(that)S 1208(for)S 1324(real)S 1461(symmetric)S 1777(matrices)S 2038(packing)S 2285(the)S 2404(upper)S 2593(triangle)S 2831(by)S 2935(columns)S 3196(is)S 3214 1464(s)U 432 1560(e)U 432 1464(equivalent)U 743(to)S 832(packing)S 1078(the)S 1196(lower)S 1384(triangle)S 1622(by)S 1726(rows,)S 1910(and)S 2043(packing)S 2289(the)S 2407(lower)S 2595(triangle)S 2833(by)S 2936(columns)S 3196(i)S 461 1560(quivalent)U 730(to)S 806(packing)S 1039(the)S 1144(upper)S 1319(triangle)S 1544(by)S 1635(rows.)S 1805(\(For)S 1943(complex)S 2193(Hermitian)S 2483(matrices)S 2729(the)S 2833(only)S 2974(difference)S 432 1656(is)U 498(that)S 618(the)S 720(off-diagonal)S 1067(elements)S 1322(are)S 1424(conjugated.\))S 582 1788(For)U 700(triangular)S 981(matrices)S 1229(the)S 1335(argument)S 1609(UPLO)S 1808(serves)S 1999(to)S 2076(de\256ne)S 2263(whether)S 2500(the)S 2605(matrix)S 2801(is)S 2870(upper)S 3045(\(UPLO)S 432 1884(=)U 491(`U'\))S 627(or)S 704(lower)S 876(\(UPLO)S 1093(=)S 1152(`L'\))S 1280(triangular.)S 1574(In)S 1651(packed)S 1859(storage)S 2071(the)S 2173(triangle)S 2395(has)S 2505(to)S 2578(be)S 2662(packed)S 2870(by)S 2958(column.)S 582 2016(The)U 717(band)S 878(matrix)S 1082(routines)S 1327(allow)S 1506(storage)S 1729(in)S 1813(the)S 1926(same)S 2094(style)S 2251(as)S 2339(with)S 2489(LINPACK,)S 2826(so)S 2918(that)S 3048(the)S 2 F 3166(j)S 48 Z 3205 1989(h)U 1 F 66 Z 432 2112(c)U 2 F 48 Z 1524 2085(th)U 3192 1989(t)U 1 F 66 Z 461 2112(olumn)U 657(of)S 740(the)S 848(matrix)S 1047(is)S 1119(stored)S 1307(in)S 1385(the)S 2 F 1498(j)S 1 F 1599(column)S 1823(of)S 1905(the)S 2012(Fortran)S 2233(array.)S 2412(For)S 2531(a)S 2587(general)S 2807(band)S 2962(matrix)S 3160(the)S 3218 2208(r)U 432 2304(t)U 432 2208(diagonal)U 682(of)S 761(the)S 865(matrix)S 1060(is)S 1128(stored)S 1313(in)S 1388(row)S 2 F 1515(ku)S 4 F 1588(+)S 1 F (1)R 1682(of)S 1761(the)S 1865(array.)S 2063(For)S 2178(a)S 2230(Hermitian)S 2519(or)S 2597(symmetric)S 2897(matrix)S 3091(eithe)S 450 2304(he)U 539(upper)S 716(triangle)S 943(\(UPLO)S 1165(=)S 1229(`U'\))S 1370(may)S 1510(be)S 1599(stored)S 1787(in)S 1865(which)S 2053(case)S 2193(the)S 2300(leading)S 2520(diagonal)S 2773(is)S 2843(in)S 2920(row)S 2 F 3049(k)S 4 F 3089(+)S 1 F (1)R 3185(of)S 432 2496(t)U 432 2400(the)U 539(array,)S 718(or)S 800(the)S 907(lower)S 1083(triangle)S 1309(\(UPLO)S 1530(=)S 1593(`L'\))S 1725(may)S 1864(be)S 1952(stored)S 2139(in)S 2216(which)S 2403(case)S 2542(the)S 2648(leading)S 2867(diagonal)S 3119(is)S 3189(in)S 450 2496(he)U 538(\256rst)S 667(row)S 796(of)S 877(the)S 983(array.)S 1183(For)S 1301(an)S 1389(upper)S 1565(triangular)S 1846(band)S 2000(matrix)S 2197(\(UPLO)S 2418(=)S 2481(`U'\))S 2621(the)S 2727(leading)S 2945(diagonal)S 3196(is)S 3214 2592(s)U 432 2688(i)U 432 2592(in)U 509(row)S 2 F 638(k)S 4 F 678(+)S 1 F (1)R 774(of)S 855(the)S 961(array)S 1122(and)S 1243(for)S 1346(a)S 1401(lower)S 1577(triangular)S 1858(band)S 2012(matrix)S 2209(\(UPLO)S 2429(=)S 2491(`L'\))S 2622(the)S 2727(leading)S 2945(diagonal)S 3196(i)S 450 2688(n)U 505(the)S 607(\256rst)S 732(row.)S 582 2820(F)U (or)R 700(a)S 755(Hermitian)S 1047(matrix)S 1244(the)S 1350(imaginary)S 1642(parts)S 1796(of)S 1876(the)S 1981(diagonal)S 2232(elements)S 2490(are)S 2595(of)S 2675(course)S 2872(zero)S 3010(and)S 3130(thus)S 432 3012(z)U 432 2916(the)U 536(imaginary)S 826(parts)S 978(of)S 1057(the)S 1161(corresponding)S 1561(Fortran)S 1778(array)S 1936(elements)S 2192(need)S 2339(not)S 2446(be)S 2531(set,)S 2644(but)S 2751(are)S 2854(assumed)S 3104(to)S 3178(be)S 461 3012(ero.)U 587(In)S 667(the)S 771(R)S 839(and)S 958(R2)S 1059(routines)S 1295(these)S 1454(imaginary)S 1744(parts)S 1896(will)S 2022(be)S 2108(set)S 2205(to)S 2280(zero)S 2417(on)S 2507(return,)S 2705(except)S 2900(when)S 4 F 3067(a)S 3131(=)S 1 F 3190(0,)S 432 3108(in)U 505(which)S 688(case)S 823(the)S 925(routines)S 1159(exit)S 1279(immediat)S 1526(ely.)S 582 3240(For)U 701(packed)S 914(triangular)S 1196(matrices)S 1445(the)S 1552(same)S 1714(storage)S 1931(layout)S 2122(is)S 2193(used)S 2340(whether)S 2578(or)S 2659(not)S 2769(DIAG)S 2961(=)S 3024(`U',)S 3159(i.e.)S 3 F 432 3624(6)U 1 F 432 3336(space)U 600(is)S 666(left)S 775(for)S 874(the)S 976(diagonal)S 1224(elements)S 1479(even)S 1625(if)S 1687(those)S 1848(array)S 2005(elements)S 2260(are)S 2362(not)S 2468(referenced.)S 3 F 465 3624(.)U 504(Speci\256cation)S 885(of)S 962(the)S 1072(Level)S 1247(2)S 1302(BLAS)S 1 F 582 3756(T)U (ype)R 739(and)S 856(dimension)S 1152(for)S 1251(variables)S 1510(occurring)S 1784(in)S 1857(the)S 1959(subroutine)S 2259(speci\256cations)S 2639(are)S 2741(as)S 2818(follows:)S 652 4044(C)U 652 3948(INTEGER)U 1044(INCX,)S 1245(INCY,)S 1446(K,)S 1533(KL,)S 1660(KU,)S 1795(LDA,)S 1970(M,)S 2068(N)S 696 4044(HARACTER*1)U 1140(DIAG,)S 1345(TRANS,)S 1601(UPLO)S 432 4236(For)U 546(routines)S 780(whose)S 971(\256rst)S 1096(letter)S 1252(is)S 1318(an)S 1402(S:)S 652 4428(REAL)U 868(ALPHA,)S 1128(BETA)S EP %%Page: ? 11 BP 1 F 66 Z 1775 405(-)U 1819(9)S 1874(-)S 652 717(R)U 652 621(REAL)U 868(X\(*\),)S 1032(Y\(*\))S 696 717(EAL)U 868(A\(LDA,*\))S 432 1005(F)U 652 813(REAL)U 868(AP\(*\))S 469 1005(or)U 546(routines)S 780(whose)S 971(\256rst)S 1096(letter)S 1252(is)S 1318(a)S 1369(D)S 1712 1197(A)U 652 1293(D)U 652 1197(DOUBLE)U 942(PRECISION)S 1328(ALPHA,)S 1588(BET)S 700 1293(OUBLE)U 942(PRECISION)S 1328(X\(*\),)S 1492(Y\(*\))S 652 1485(D)U 652 1389(DOUBLE)U 942(PRECISION)S 1328(A\(LDA,*\))S 700 1485(OUBLE)U 942(PRECISION)S 1328(AP\(*\))S 432 1677(For)U 546(routines)S 780(whose)S 971(\256rst)S 1096(letter)S 1252(is)S 1318(a)S 1369(C:)S 652 1869(COMPLEX)U 1012(ALPHA)S 652 2061(C)U 652 1965(COMPLEX)U 1012(BETA)S 696 2061(OMPLEX)U 1012(X\(*\),)S 1176(Y\(*\))S 652 2253(C)U 652 2157(COMPLEX)U 1012(A\(LDA,*\))S 696 2253(OMPLEX)U 1012(AP\(*\))S 432 2445(e)U (xcept)R 625(that)S 745(for)S 844(CHER)S 1042(and)S 1159(CHPR)S 1354(the)S 1456(scalar)S 4 F 1631(a)S 1 F 1695(is)S 1761(real)S 1881(so)S 1962(that)S 2082(the)S 2184(\256rst)S 2309(declarati)S 2534(on)S 2622(above)S 2801(is)S 2867(replaced)S 3111(by:)S 432 2829(F)U 652 2637(REAL)U 868(ALPHA)S 469 2829(or)U 546(routines)S 780(whose)S 971(\256rst)S 1096(letter)S 1252(is)S 1318(Z)S 1380(one)S 1497(of)S 1574(the)S 1676(alternati)S 1890(ve)S 1974(\(non-standard\))S 2384(speci\256cations:)S 520 3117(C)U 520 3021(COMPLEX*16)U 979(ALPHA)S 1587(DOUBLE)S 1877(COMPLEX)S 2237(ALPHA)S 564 3117(OMPLEX*16)U 979(BETA)S 1587(DOUBLE)S 1877(COMPLEX)S 2237(BETA)S 2504 3213(\))U 520 3309(C)U 520 3213(COMPLEX*16)U 979(X\(*\),)S 1143(Y\(*\))S 1587(DOUBLE)S 1877(COMPLEX)S 2237(X\(*\),)S 2401(Y\(*)S 564 3309(OMPLEX*16)U 979(A\(LDA,*\))S 1587(DOUBLE)S 1877(COMPLEX)S 2237(A\(LDA,*\))S 432 3597(e)U 520 3405(COMPLEX*16)U 979(AP\(*\))S 1587(DOUBLE)S 1877(COMPLEX)S 2237(AP\(*\))S 461 3597(xcept)U 625(that)S 745(for)S 844(ZHER)S 1038(and)S 1155(ZHPR)S 1346(the)S 1448(\256rst)S 1573(declarati)S 1798(on)S 1886(above)S 2065(is)S 2131(replaced)S 2375(by:)S 432 3981(T)U 652 3789(DOUBLE)U 942(PRECISION)S 1328(ALPHA)S 472 3981(he)U 557(generic)S 772(names,)S 979(argument)S 1249(lists)S 1377(and)S 1494(speci\256cations)S 1874(for)S 1973(the)S 2075(extended)S 2334(BLAS)S 2525(now)S 2661(follow.)S 2872(Refer)S 3040(to)S 3113(table)S 432 4077(3.1)U 537(for)S 636(the)S 738(speci\256c)S 961(subroutine)S 1261(names.)S 582 4209(In)U 665(the)S 773(following)S 1057(argument)S 1333(lists)S 1467(the)S 1575(array)S 1738(name)S 1908(AP)S 2021(is)S 2093(used)S 2242(for)S 2347(the)S 2455(cases)S 2622(where)S 2811(the)S 2919(matrix)S 2 F 3118(A)S 1 F 3196(is)S 432 4497(a)U 432 4305(supplied)U 677(in)S 750(packed)S 958(form;)S 1126(in)S 1199(all)S 1286(other)S 1443(cases)S 1604(the)S 1706(array)S 1863(name)S 2027(A)S 2097(is)S 2163(used.)S 461 4497(\))U 527(General)S 757(Matrix)S 958(Vector)S 1159(Products)S EP %%Page: ? 12 BP 1 F 66 Z 1759 405(-)U 1803(10)S 1891(-)S 5 F 520 717(_)U 1 F 520 621(for)U 619(a)S 670(general)S 885(matrix:)S 553 717(GEMV)U 770(\()S 814(TRANS,)S 1070(M,)S 1168(N,)S 1255(ALPHA,)S 1515(A,)S 1602(LDA,)S 1777(X,)S 1864(INCX,)S 2065(BETA,)S 2276(Y,)S 2363(INCY)S 2547(\))S 5 F 520 1005(_)U 1 F 520 909(for)U 619(a)S 670(general)S 885(band)S 1035(matrix:)S 553 1005(GBMV)U 774(\()S 818(TRANS,)S 1074(M,)S 1172(N,)S 1259(KL,)S 1386(KU,)S 1521(ALPHA,)S 1781(A,)S 1868(LDA,)S 2043(X,)S 2130(INCX,)S 2331(BETA,)S 2542(Y,)S 2629(INCY)S 2813(\))S 520 1197(Operation:)U 608 1389(if)U 670(TRANS)S 4 F 909(=)S 1 F 990(`N',)S 2 F 1209(y)S 4 F 1271(\254)S 1359(a)S 2 F (Ax)R 4 F 1503(+)S 1562(b)S 2 F (y)R 1640 1581(y)U 1 F 608(if)S 670(TRANS)S 4 F 909(=)S 1 F 990(`T',)S 2 F 1179(y)S 4 F 1241(\254)S 1329(a)S 2 F (A)R 1482(x)S 4 F 1544(+)S 1603(b)S 2 F 48 Z 1444 1554(T)U 1448 1746(T)U 1 F 66 Z 1684 1773(.)U 432 2061(b)U 608 1773(if)U 670(TRANS)S 4 F 909(=)S 1 F 990(`C',)S 2 F 1183(y)S 4 F 1245(\254)S 1333(a)S 2 F (A)R 4 F 1352 1779(`)U 1353(`)S 2 F 1486 1773(x)U 4 F 1548(+)S 1607(b)S 2 F (y)R 1 F 465 2061(\))U 531(Symmetric)S 841(or)S 918(Hermitian)S 1206(Matrix)S 1407(Vector)S 1608(Products)S 5 F 520 2349(_)U 1 F 520 2253(for)U 619(a)S 670(symmetric)S 969(or)S 1046(Hermitian)S 1334(matrix:)S 553 2349(SYMV)U 767(\()S 811(UPLO,)S 1023(N,)S 1110(ALPHA,)S 1370(A,)S 1457(LDA,)S 1632(X,)S 1719(INCX,)S 1920(BETA,)S 2131(Y,)S 2218(INCY)S 2402(\))S 2405 2445(\))U 520 2637(f)U 5 F 520 2445(_)U 1 F (HEMV)R 770(\()S 814(UPLO,)S 1026(N,)S 1113(ALPHA,)S 1373(A,)S 1460(LDA,)S 1635(X,)S 1722(INCX,)S 1923(BETA,)S 2134(Y,)S 2221(INCY)S 542 2637(or)U 619(a)S 670(symmetric)S 969(or)S 1046(Hermitian)S 1334(matrix)S 1527(in)S 1600(packed)S 1808(storage:)S 2253 2733(\))U 5 F 520 2829(_)U 520 2733(_)U 1 F (SPMV)R 756(\()S 800(UPLO,)S 1012(N,)S 1099(ALPHA,)S 1359(AP,)S 1483(X,)S 1570(INCX,)S 1771(BETA,)S 1982(Y,)S 2069(INCY)S 553 2829(HPMV)U 767(\()S 811(UPLO,)S 1023(N,)S 1110(ALPHA,)S 1370(AP,)S 1494(X,)S 1581(INCX,)S 1782(BETA,)S 1993(Y,)S 2080(INCY)S 2264(\))S 5 F 520 3117(_)U 1 F 520 3021(for)U 619(a)S 670(symmetric)S 969(or)S 1046(Hermitian)S 1334(band)S 1484(matrix:)S 553 3117(SBMV)U 763(\()S 807(UPLO,)S 1019(N,)S 1106(K,)S 1193(ALPHA,)S 1453(A,)S 1540(LDA,)S 1715(X,)S 1802(INCX,)S 2003(BETA,)S 2214(Y,)S 2301(INCY)S 2485(\))S 2496 3213(\))U 520 3405(O)U 5 F 520 3213(_)U 1 F (HBMV)R 774(\()S 818(UPLO,)S 1030(N,)S 1117(K,)S 1204(ALPHA,)S 1464(A,)S 1551(LDA,)S 1726(X,)S 1813(INCX,)S 2014(BETA,)S 2225(Y,)S 2312(INCY)S 568 3405(peration:)U 2 F 687 3537(y)U 4 F 749(\254)S 837(a)S 2 F (Ax)R 4 F 981(+)S 1040(b)S 2 F (y)R 1139(.)S 1 F 1433 3765(s)U 432(c\))S 527(Triangular)S 826(Matrix)S 1027(Vector)S 1228(Product)S 520 3957(for)U 619(a)S 670(triangular)S 947(matrix:)S 5 F 520 4053(_)U 1 F (TRMV)R 766(\()S 810(UPLO,)S 1022(TRANS,)S 1278(DIAG,)S 1483(N,)S 1570(A,)S 1657(LDA,)S 1832(X,)S 1919(INCX)S 2103(\))S 5 F 520 4341(_)U 1 F 520 4245(for)U 619(a)S 670(triangular)S 947(matrix)S 1140(in)S 1213(packed)S 1421(storage:)S 553 4341(TPMV)U 759(\()S 803(UPLO,)S 1015(TRANS,)S 1271(DIAG,)S 1476(N,)S 1563(AP,)S 1687(X,)S 1774(INCX)S 1958(\))S EP %%Page: ? 13 BP 5 F 66 Z 520 717(_)U 1 F 520 621(for)U 619(a)S 670(triangular)S 947(band)S 1097(matrix:)S 1759 405(-)U 1803(11)S 1891(-)S 553 717(TBMV)U 766(\()S 810(UPLO,)S 1022(TRANS,)S 1278(DIAG,)S 1483(N,)S 1570(K,)S 1657(A,)S 1744(LDA,)S 1919(X,)S 2006(INCX)S 2190(\))S 520 909(Operation:)U 630 1101(if)U 692(TRANS)S 4 F 931(=)S 1 F 1012(`N',)S 2 F 1231(x)S 4 F 1293(\254)S 2 F 1381(Ax)S 1484 1293(x)U 1 F 630(if)S 692(TRANS)S 4 F 931(=)S 1 F 1012(`T',)S 2 F 1223(x)S 4 F 1285(\254)S 2 F 1373(A)S 48 Z 1446 1266(T)U 1450 1458(T)U 66 Z 1488 1485(x)U 1 F 432 1773(d)U 630 1485(if)U 692(TRANS)S 4 F 931(=)S 1 F 1012(`C',)S 2 F 1227(x)S 4 F 1289(\254)S 2 F 1377(A)S 4 F 1354 1491(`)U 1355(`)S 1 F 465 1773(\))U 531(Triangular)S 830(equation)S 1078(solvers)S 5 F 520 2061(_)U 1 F 520 1965(for)U 619(a)S 670(triangular)S 947(matrix:)S 553 2061(TRSV)U 744(\()S 788(UPLO,)S 1000(TRANS,)S 1256(DIAG,)S 1461(N,)S 1548(A,)S 1635(LDA,)S 1810(X,)S 1897(INCX)S 2081(\))S 5 F 520 2349(_)U 1 F 520 2253(for)U 619(a)S 670(triangular)S 947(matrix)S 1140(in)S 1213(packed)S 1421(storage:)S 553 2349(TPSV)U 737(\()S 781(UPLO,)S 993(TRANS,)S 1249(DIAG,)S 1454(N,)S 1541(AP,)S 1665(X,)S 1752(INCX)S 1936(\))S 5 F 520 2637(_)U 1 F 520 2541(for)U 619(a)S 670(triangular)S 947(band)S 1097(matrix:)S 553 2637(TBSV)U 744(\()S 788(UPLO,)S 1000(TRANS,)S 1256(DIAG,)S 1461(N,)S 1548(K,)S 1635(A,)S 1722(LDA,)S 1897(X,)S 1984(INCX)S 2168(\))S 520 2829(Operation:)U 630 3021(if)U 692(TRANS)S 4 F 931(=)S 1 F 1012(`N',)S 2 F 1253(x)S 4 F 1315(\254)S 2 F 1403(A)S 1527(x)S 4 F 48 Z 1476 2994(-)U 1 F (1)R 2 F 1495 3186(T)U 4 F 1468(-)S 2 F 66 Z 1533 3213(x)U 1 F 630 3405(i)U 630 3213(if)U 692(TRANS)S 4 F 931(=)S 1 F 1012(`T',)S 2 F 1245(x)S 4 F 1307(\254)S 2 F 1395(A)S 1 F 648 3405(f)U 692(TRANS)S 4 F 931(=)S 1 F 1012(`C',)S 2 F 1227(x)S 4 F 1289(\254)S 2 F 1377(A)S 4 F 1354 3411(`)U 1355(`)S 2 F 1515 3405(x)U 1 F 1577(.)S 432 3693(e\))U 527(General)S 757(Rank-1)S 973(Updates:)S 4 F 48 Z 1450 3378(-)U 2 F (T)R 1 F 66 Z 520 3885(for)U 619(a)S 670(general)S 885(matrix:)S 5 F 520 3981(_)U 1 F (GER)R 5 F (_)R 1 F 740(\()S 784(M,)S 882(N,)S 969(ALPHA,)S 1229(X,)S 1316(INCX,)S 1517(Y,)S 1604(INCY,)S 1805(A,)S 1892(LDA)S 2050(\))S 520 4269(S)U 520 4173(for)U 619(real)S 739(matrices:)S 557 4269(GER)U 711(or)S 788(DGER)S 990(performs)S 1250(the)S 1352(operation)S 2 F 1622(A)S 4 F 1695(\254)S 1783(a)S 2 F (xy)R 4 F 1976(+)S 2 F 2035(A)S 1 F 2086(.)S 520 4461(for)U 619(complex)S 867(matrices:)S 2 F 48 Z 1916 4242(T)U EP %%Page: ? 14 BP 1 F 66 Z 1759 405(-)U 1803(12)S 1891(-)S 2 F 2122 621(A)U 1 F 520(CGERC)S 762(or)S 839(ZGERC)S 1077(performs)S 1337(the)S 1439(operation)S 2 F 1709(A)S 4 F 1782(\254)S 1870(a)S 2 F (xy)R 4 F 1910 642(`)U 2063 621(+)U 2 F 48 Z 2003 594(T)U 1 F 66 Z 520 813(C)U 520 717(and)U 564 813(GERU)U 766(or)S 843(ZGERU)S 1085(performs)S 1345(the)S 1447(operation)S 2 F 1717(A)S 4 F 1790(\254)S 1878(a)S 2 F (xy)R 4 F 2071(+)S 2 F 2130(A)S 1 F 2181(.)S 432 1005(f\))U 520(Symmetric)S 830(or)S 907(Hermitian)S 1195(Rank-1)S 1411(Updates:)S 2 F 48 Z 2011 786(T)U 1 F 66 Z 520 1197(for)U 619(a)S 670(symmetric)S 969(or)S 1046(Hermitian)S 1334(matrix:)S 1840 1293(\))U 5 F 520 1389(_)U 520 1293(_)U 1 F (SYR)R 704(\()S 748(UPLO,)S 960(N,)S 1047(ALPHA,)S 1307(X,)S 1394(INCX,)S 1595(A,)S 1682(LDA)S 553 1389(HER)U 707(\()S 751(UPLO,)S 963(N,)S 1050(ALPHA,)S 1310(X,)S 1397(INCX,)S 1598(A,)S 1685(LDA)S 1843(\))S 1947 1581(:)U 5 F 520 1677(_)U 1 F 520 1581(for)U 619(symmetric)S 918(or)S 995(Hermitian)S 1283(matrix)S 1476(in)S 1549(packed)S 1757(storage)S 553 1677(SPR)U 693(\()S 737(UPLO,)S 949(N,)S 1036(ALPHA,)S 1296(X,)S 1383(INCX,)S 1584(AP)S 1691(\))S 1702 1773(\))U 520 1965(O)U 5 F 520 1773(_)U 1 F (HPR)R 704(\()S 748(UPLO,)S 960(N,)S 1047(ALPHA,)S 1307(X,)S 1394(INCX,)S 1595(AP)S 568 1965(peration:)U 2 F 687 2097(A)U 4 F 760(\254)S 848(a)S 2 F (xx)R 4 F 888 2118(`)U 1041 2097(+)U 2 F 1100(A)S 1 F 520 2229(f)U 2 F 48 Z 981 2070(T)U 1 F 66 Z 542 2229(or)U 619(real)S 739(symmetric)S 1038(matrices)S 1282(this)S 1399(is)S 1465(simply)S 2 F 687 2361(A)U 4 F 760(\254)S 848(a)S 2 F (xx)R 4 F 1041(+)S 2 F 1100(A)S 1173(.)S 48 Z 981 2334(T)U 1 F 66 Z 432 2589(g)U (\))R 531(Symmetric)S 841(or)S 918(Hermitian)S 1206(Rank-2)S 1422(Updates:)S 5 F 520 2877(_)U 1 F 520 2781(for)U 619(a)S 670(symmetric)S 969(or)S 1046(Hermitian)S 1334(matrix:)S 553 2877(SYR2)U 737(\()S 781(UPLO,)S 993(N,)S 1080(ALPHA,)S 1340(X,)S 1427(INCX,)S 1628(Y,)S 1715(INCY,)S 1916(A,)S 2003(LDA)S 2161(\))S 2164 2973(\))U 520 3165(f)U 5 F 520 2973(_)U 1 F (HER2)R 740(\()S 784(UPLO,)S 996(N,)S 1083(ALPHA,)S 1343(X,)S 1430(INCX,)S 1631(Y,)S 1718(INCY,)S 1919(A,)S 2006(LDA)S 542 3165(or)U 619(symmetric)S 918(or)S 995(Hermitian)S 1283(matrix)S 1476(in)S 1549(packed)S 1757(storage:)S 2012 3261(\))U 5 F 520 3357(_)U 520 3261(_)U 1 F (SPR2)R 726(\()S 770(UPLO,)S 982(N,)S 1069(ALPHA,)S 1329(X,)S 1416(INCX,)S 1617(Y,)S 1704(INCY,)S 1905(AP)S 553 3357(HPR2)U 737(\()S 781(UPLO,)S 993(N,)S 1080(ALPHA,)S 1340(X,)S 1427(INCX,)S 1628(Y,)S 1715(INCY,)S 1916(AP)S 2023(\))S 520 3549(Operation:)U 2 F 687 3681(A)U 4 F 760(\254)S 848(a)S 2 F (xy)R 4 F 888 3702(`)U 1041 3681(+)U 1100(a)S 1068 3702(`)U 1071(`)S 2 F 1142 3681(yx)U 4 F 1140 3702(`)U 1293 3681(+)U 2 F 1352(A)S 1 F 520 3909(f)U 2 F 48 Z 981 3654(T)U 1233(T)S 1 F 66 Z 542 3909(or)U 619(real)S 739(symmetric)S 1038(matrices)S 1282(this)S 1399(is)S 1465(simply)S 2 F 687 4041(A)U 4 F 760(\254)S 848(a)S 2 F (xy)R 4 F 1041(+)S 1100(a)S 2 F (yx)R 4 F 1293(+)S 2 F 1352(A)S 1425(.)S 48 Z 981 4014(T)U 1233(T)S EP %%Page: ? 15 BP 1 F 66 Z 1759 405(-)U 1803(13)S 1891(-)S 3 F 432 621(7.)U 526(Rationale)S 1 F 582 753(The)U 707(three)S 861(basic)S 1019(matrix-vect)S 1321(or)S 1398(operations)S 1694(chosen)S 1899(\(Section)S 2140(2\))S 2217(were)S 2367(obvious)S 2598(candidates)S 2897(because)S 3127(they)S 3207 849(y)U 432 945(a)U 432 849(occur)U 608(in)S 689(a)S 748(wide)S 906(range)S 1082(of)S 1167(linear)S 1346(algebra)S 1569(applicati)S 1794(ons,)S 1933(and)S 2058(they)S 2201(occur)S 2377(at)S 2453(the)S 2562(innermost)S 2854(level)S 3010(of)S 3094(man)S 461 945(lgorithms.)U 757(The)S 886(hard)S 1030(decision)S 1276(was)S 1405(to)S 1482(restrict)S 1690(the)S 1796(scope)S 1972(only)S 2115(to)S 2192(these)S 2353(operations,)S 2670(since)S 2831(there)S 2988(are)S 3094(many)S 3207 1041(d)U 432 1137(h)U 432 1041(other)U 591(potential)S 844(candidates,)S 1162(such)S 1307(as)S 1386(matrix)S 1580(scaling)S 1789(and)S 1907(sequences)S 2197(of)S 2275(plane)S 2440(rotations.)S 2710(Similarly,)S 2994(we)S 3094(coul)S 465 1137(ave)U 583(extended)S 847(the)S 954(scope)S 1131(by)S 1224(applying)S 1481(the)S 1588(operations)S 1889(to)S 1967(other)S 2129(types)S 2295(of)S 2377(matrices)S 2626(such)S 2774(as)S 2856(complex)S 3108(sym-)S 432 1329(l)U 432 1233(metric)U 634(or)S 724(augmented)S 1047(band)S 1210(matrices.)S 1483(We)S 1608(have)S 1766(aimed)S 1960(at)S 2041(a)S 2104(reasonable)S 2419(compromise)S 2778(between)S 3031(a)S 3094(much)S 450 1329(arger)U 618(number)S 852(of)S 940(routines)S 1185(each)S 1338(performing)S 1667(one)S 1795(type)S 1941(of)S 2029(operation)S 2310(\(e.g.)S 2 F 2461(x)S 4 F 2523(\254)S 2 F 2611(L)S 2746(x)S 1 F 2786(\),)S 2858(and)S 2986(a)S 3047(smaller)S 4 F 48 Z 2681 1302(-)U 2 F (T)R 1 F 66 Z 3222 1425(l)U 432 1521(r)U 432 1425(number)U 656(of)S 734(routines)S 969(with)S 1109(a)S 1161(more)S 1319(complicat)S 1577(ed)S 1662(set)S 1758(of)S 1836(options.)S 2070(There)S 2246(are)S 2349(in)S 2422(fact,)S 2559(in)S 2632(each)S 2774(precision,)S 3054(16)S 3142(rea)S 454 1521(outines)U 667(performing)S 986(altogether)S 1271(43)S 1360(different)S 1608(operations,)S 1921(and)S 2038(17)S 2126(complex)S 2374(routines)S 2608(performing)S 2926(58)S 3014(different)S 432 1617(operations.)U 582 1749(We)U 696(feel)S 817(that)S 938(to)S 1012(extend)S 1210(the)S 1313(scope)S 1486(further)S 1687(would)S 1874(signi\256cantly)S 2221(reduce)S 2418(the)S 2520(chances)S 2750(of)S 2827(having)S 3028(the)S 3130(rou-)S 3218 1845(-)U 432 1941(d)U 432 1845(tines)U 582(implement)S 862(ed)S 950(ef\256ciently)S 1242(over)S 1385(a)S 1440(wide)S 1594(range)S 1766(of)S 1847(machines,)S 2138(because)S 2371(it)S 2432(would)S 2622(place)S 2785(too)S 2894(heavy)S 3076(a)S 3130(bur)S 465 1941(en)U 555(on)S 648(implement)S 928(ors.)S 1053(On)S 1161(the)S 1268(other)S 1430(hand,)S 1602(to)S 1680(restrict)S 1889(the)S 1996(scope)S 2173(further)S 2379(would)S 2571(place)S 2736(too)S 2847(narrow)S 3061(a)S 3117(limit)S 432 2037(on)U 520(the)S 622(potential)S 873(applicati)S 1098(ons)S 1212(of)S 1289(the)S 1391(Level)S 1562(2)S 1617(BLAS.)S 582 2169(We)U 698(have)S 847(adhered)S 1080(to)S 1156(the)S 1261(conventions)S 1604(of)S 1684(the)S 1789(Level)S 1963(1)S 2021(BLAS)S 2215(in)S 2291(allowing)S 2545(an)S 2631(increment)S 2917(argument)S 3189(to)S 3218 2265(-)U 432 2361(m)U 432 2265(be)U 519(associated)S 814(with)S 956(each)S 1101(vector,)S 1307(so)S 1391(that)S 1514(a)S 1568(vector)S 1757(could,)S 1945(for)S 2047(example,)S 2311(be)S 2398(a)S 2452(row)S 2580(of)S 2659(a)S 2712(matrix.)S 2946(This)S 3087(incre)S 483 2361(ent)U 595(may)S 740(be)S 834(negative,)S 1105(in)S 1188(which)S 1381(case)S 1526(the)S 1638(elements)S 1903(of)S 1990(the)S 2102(vectors)S 2324(are)S 2436(taken)S 2610(in)S 2693(reverse)S 2914(order.)S 3123(This)S 3218 2457(-)U 432 2553(t)U 432 2457(affects)U 630(the)S 732(de\256nition)S 1006(of)S 1083(the)S 1185(operation.)S 1494(For)S 1608(example,)S 1869(if)S 2 F 1931(m)S 4 F 2012(=)S 2 F 2071(n)S 4 F 2137(=)S 1 F 2196(3)S 2251(and)S 2368(INCX)S 2552(and)S 2669(INCY)S 2853(are)S 2955(both)S 3094(nega)S 450 2553(ive,)U 569(the)S 5 F 671(_)S 1 F (GEMV)R 921(routines)S 1155(with)S 1294(TRANS='N')S 1662(perform)S 1896(the)S 1998(operation:)S 2 F 2508 2799(.)U 0 F 1157 2703 M 11 73 3 0 20 0 0 15 PS20 1157 2769 M 11 74 3 0 5 0 0 15 PS5 1157 2835 M 11 74 3 0 5 0 0 15 PS5 1157 2901 M 11 76 3 0 21 0 0 15 PS21 2 F 1207 2880(y)U 1207 2799(y)U 1207 2718(y)U 0 F 1301 2703 M 11 77 3 0 22 0 0 15 PS22 1301 2769 M 11 74 3 0 5 0 0 15 PS5 1301 2835 M 11 74 3 0 5 0 0 15 PS5 1301 2901 M 11 79 3 0 23 0 0 15 PS23 4 F 1351 2799(\254)U 1439(a)S 0 F 1514 2670 M 11 73 3 0 20 0 0 15 PS20 1514 2736 M 11 74 3 0 5 0 0 15 PS5 1514 2802 M 11 74 3 0 5 0 0 15 PS5 1514 2868 M 11 74 3 0 5 0 0 15 PS5 1514 2934 M 11 76 3 0 21 0 0 15 PS21 2 F 1564 2907(a)U 1564 2799(a)U 1564 2691(a)U 1697 2907(a)U 1697 2799(a)U 1697 2691(a)U 1830 2907(a)U 1830 2799(a)U 1830 2691(a)U 0 F 1952 2670 M 11 77 3 0 22 0 0 15 PS22 1952 2736 M 11 74 3 0 5 0 0 15 PS5 1952 2802 M 11 74 3 0 5 0 0 15 PS5 1952 2868 M 11 74 3 0 5 0 0 15 PS5 1952 2934 M 11 79 3 0 23 0 0 15 PS23 2035 2703 M 11 73 3 0 20 0 0 15 PS20 2035 2769 M 11 74 3 0 5 0 0 15 PS5 2035 2835 M 11 74 3 0 5 0 0 15 PS5 2035 2901 M 11 76 3 0 21 0 0 15 PS21 2 F 2085 2880(x)U 2085 2799(x)U 2085 2718(x)U 0 F 2179 2703 M 11 77 3 0 22 0 0 15 PS22 2179 2769 M 11 74 3 0 5 0 0 15 PS5 2179 2835 M 11 74 3 0 5 0 0 15 PS5 2179 2901 M 11 79 3 0 23 0 0 15 PS23 4 F 2229 2799(+)U 2288(b)S 0 F 2336 2703 M 11 73 3 0 20 0 0 15 PS20 2336 2769 M 11 74 3 0 5 0 0 15 PS5 2336 2835 M 11 74 3 0 5 0 0 15 PS5 2336 2901 M 11 76 3 0 21 0 0 15 PS21 2 F 2386 2880(y)U 2386 2799(y)U 2386 2718(y)U 0 F 2480 2703 M 11 77 3 0 22 0 0 15 PS22 2480 2769 M 11 74 3 0 5 0 0 15 PS5 2480 2835 M 11 74 3 0 5 0 0 15 PS5 2480 2901 M 11 79 3 0 23 0 0 15 PS23 1 F 48 Z 1244 2895(1)U 1244 2814(2)U 1244 2733(3)U 1605 2922(31)U 1605 2814(2)U (1)R 1605 2706(1)U (1)R 1738 2922(32)U 1738 2814(2)U (2)R 1738 2706(1)U (2)R 1871 2922(33)U 1871 2814(2)U (3)R 1871 2706(1)U (3)R 2122 2895(1)U 2122 2814(2)U 2122 2733(3)U 2423 2895(1)U 2423 2814(2)U 2423 2733(3)U 66 Z 3211 3057(e)U 432 3153(w)U 432 3057(However,)U 717(in)S 794(contrast)S 1028(to)S 1105(the)S 1211(Level)S 1386(1)S 1445(BLAS)S 1640(we)S 1743(do)S 1835(not)S 1945(allow)S 2117(INCX)S 2305(or)S 2386(INCY)S 2574(to)S 2651(be)S 2739(zero.)S 2916(This)S 3058(featur)S 480 3153(ould)U 641(have)S 809(little)S 972(usefulness,)S 1308(would)S 1517(complicat)S 1775(e)S 1848(implement)S 2128(ation)S 2302(of)S 2400(the)S 2523(routines)S 2778(on)S 2887(many)S 3076(vector)S 432 3249(machines,)U 719(and,)S 853(when)S 1018(the)S 1120(associated)S 1412(vector)S 1598(is)S 1664(an)S 1748(output)S 1938(vector,)S 2141(its)S 2225(meaning)S 2473(is)S 2539(ambiguous.)S 582 3381(As)U 694(noted)S 878(earlier,)S 1100(corresponding)S 1515(to)S 1604(the)S 1722(real)S 1858(routine)S 2082(SGER)S 2288(we)S 2402(specify)S 2629(two)S 2765(complex)S 3028(routines)S 432 3477(CGERC)U 677(\(for)S 2 F 800(A)S 4 F 873(\254)S 961(a)S 2 F (xy)R 4 F 1001 3498(`)U 1154 3477(+)U 2 F 1213(A)S 1 F 1264(\))S 1310(and)S 1429(CGERU)S 1677(\(for)S 2 F 1800(A)S 4 F 1873(\254)S 1961(a)S 2 F (xy)R 4 F 2154(+)S 2 F 2213(A)S 1 F 2264(\).)S 2349(Both)S 2501(are)S 2605(frequently)S 2899(required.)S 3159(An)S 2 F 48 Z 1094 3450(T)U 2094(T)S 1 F 66 Z 3214 3573(s)U 432 3669(a)U 432 3573(alternati)U 646(ve)S 731(would)S 919(be)S 1004(to)S 1078(provide)S 1302(a)S 1354(single)S 1534(complex)S 1783(routine)S 1992(CGER)S 2191(with)S 2331(an)S 2416(option)S 2607(argument;)S 2896(however)S 3145(thi)S 461 3669(rgument)U 708(would)S 901(have)S 1053(become)S 1285(redundant)S 1576(in)S 1655(the)S 1763(real)S 1889(routine)S 2103(SGER.)S 2317(Rather)S 2520(than)S 2660(have)S 2811(redundant)S 3101(argu-)S 3218 3765(-)U 432 3861(p)U 432 3765(ments,)U 630(or)S 709(different)S 959(argument)S 1231(lists)S 1361(for)S 1462(the)S 1566(real)S 1688(and)S 1807(complex)S 2057(routines,)S 2310(we)S 2411(have)S 2559(chosen)S 2766(two)S 2889(distinct)S 3105(com)S 465 3861(lex)U 595(routines;)S 875(they)S 1038(are)S 1168(analogous)S 1485(to)S 1585(the)S 1714(Level)S 1912(1)S 1994(BLAS)S 2212(CDOTC)S 2485(\()S 2 F (c)R 4 F 2569(\254)S 2 F 2657(x)S 4 F 2626 3882(`)U 2 F 2757 3861(y)U 1 F 2797(\))S 2868(and)S 3012(CDOTU)S 2 F 48 Z 666 3930(T)U 2719 3834(T)U 1 F 66 Z 766 3957(.)U 432(\()S 2 F (c)R 4 F 516(\254)S 2 F 604(x)S 704(y)S 1 F 744(\))S 582 4089(Note)U 737(that)S 862(no)S 955(check)S 1135(has)S 1250(been)S 1401(included)S 1654(for)S 1758(singularity,)S 2083(or)S 2165(near)S 2305(singularity,)S 2630(in)S 2707(the)S 2813(triangular)S 3094(equa-)S 3222 4185(t)U 432 4281(t)U 432 4185(tion)U 557(solving)S 774(routines.)S 1048(The)S 1173(requirements)S 1539(for)S 1639(such)S 1783(a)S 1835(test)S 1949(depend)S 2162(upon)S 2317(the)S 2420(applicati)S 2645(on)S 2734(and)S 2852(so)S 2934(we)S 3033(felt)S 3142(tha)S 450 4281(his)U 549(should)S 747(not)S 853(be)S 937(included,)S 1202(but)S 1308(should)S 1506(instead)S 1714(be)S 1798(performed)S 2094(before)S 2284(calling)S 2484(the)S 2586(triangular)S 2863(solver.)S EP %%Page: ? 16 BP 1 F 66 Z 582 621(O)U 1759 405(-)U 1803(14)S 1891(-)S 630 621(n)U 686(certain)S 887(machines,)S 1175(which)S 1359(do)S 1448(not)S 1555(use)S 1666(the)S 1769(ASCII)S 1965(sequence)S 2229(on)S 2318(all)S 2406(of)S 2484(their)S 2626(Fortran)S 2842(systems,)S 3090(lower)S 3222 717(t)U 432 813(T)U 432 717(case)U 572(characters)S 864(may)S 1003(not)S 1113(exist,)S 1280(so)S 1365(that)S 1489(the)S 1595(innocent)S 1847(looking)S 2074(argument)S 2 F 2348(`t')S 1 F (,)R 2453(passed)S 2655(through)S 2886(the)S 2992(argumen)S 472 813(RANS)U 677(for)S 782(designating)S 1113(a)S 1170(transposed)S 1480(matrix,)S 1696(is)S 1768(not)S 1880(in)S 1959(the)S 2066(Fortran)S 2287(character)S 2554(set.)S 2671(Some)S 2848(UNIVAC)S 3133(sys-)S 432 1005(s)U 432 909(tems)U 582(do)S 674(not)S 784(have)S 934(a)S 989(lower)S 1165(case)S 1304(representation)S 1702(using)S 1871(the)S 1977(`\256eld)S 2142(data')S 2299(character)S 2565(set.)S 2680(On)S 2786(the)S 2891(CDC)S 3052(NOS-2)S 458 1005(ystem,)U 655(a)S 707(mechanism)S 1029(is)S 1096(provided)S 1353(for)S 1452(a)S 1503(full)S 1616(128)S 1737(ASCII)S 1932(character)S 2194(set)S 2289(by)S 2377(using)S 2542(pairs)S 2692(of)S 2769(6-bit)S 2915(host)S 3047(charac-)S 432 1197(l)U 432 1101(ters)U 555(for)S 660(certain)S 866(7-bit)S 1018(ASCII)S 1219(characters.)S 1530(This)S 1675(means)S 1871(that)S 1997(there)S 2156(is)S 2228(a)S 2285(`2)S 2367(for)S 2471(1')S 2553(physical)S 2799(extension)S 3078(of)S 3160(the)S 450 1197(ogical)U 640(records)S 864(that)S 1014(contain)S 1237(lower)S 1417(case)S 1560(letters.)S 1767(This)S 1914(fact)S 2042(can)S 2163(hamper)S 2390(portability)S 2693(of)S 2778(codes)S 2958(written)S 3174(on)S 3211 1293(e)U 432 1389(t)U 432 1293(ASCII)U 630(machines)S 903(that)S 1026(are)S 1130(later)S 1270(moved)S 1473(to)S 1548(CDC)S 1708(systems.)S 1958(The)S 2084(only)S 2225(safe)S 2355(way)S 2489(to)S 2564(proceed)S 2796(is)S 2864(to)S 2939(convert)S 3160(th)S 450 1389(ransported)U 759(text)S 888(entirely)S 1119(into)S 1252(the)S 1363(Fortran)S 1588(character)S 1859(set.)S 2002(On)S 2114(the)S 2225(other)S 2391(hand)S 2550(we)S 2658(believe)S 2878(that)S 3007(users)S 3174(on)S 3223 1485(.)U 432 1581(I)U 432 1485(ASCII)U 632(character)S 899(set)S 998(systems)S 1233(may)S 1372(wish)S 1523(to)S 1600(treat)S 1742(upper)S 1918(and)S 2039(lower)S 2215(case)S 2354(letters)S 2540(as)S 2621(equivalent)S 2920(in)S 2997(meaning)S 454 1581(f)U 500(this)S 619(is)S 687(done,)S 856(it)S 916(means)S 1108(that)S 1230(text)S 1352(that)S 1474(will)S 1600(be)S 1686(transported)S 2006(to)S 2081(machines)S 2353(of)S 2431(unknown)S 2700(types)S 2862(must)S 3013(have)S 3160(the)S 432 1677(ASCII)U 627(set)S 722(mapped)S 952(into)S 1076(the)S 1178(Fortran)S 1394(character)S 1656(set)S 1751(before)S 1941(the)S 2043(text)S 2163(is)S 2229(moved.)S 582 1809(The)U 711(band)S 866(storage)S 1083(scheme)S 1307(used)S 1455(by)S 1548(the)S 1655(GB,)S 1791(HB,)S 1926(SB,)S 2050(and)S 2171(TB)S 2281(routines)S 2519(has)S 2633(columns)S 2882(of)S 2963(the)S 3069(matrix)S 3211 1905(e)U 432 2001(s)U 432 1905(stored)U 623(in)S 704(columns)S 957(of)S 1042(the)S 1152(array,)S 1334(and)S 1459(diagonals)S 1741(of)S 1826(the)S 1936(matrix)S 2137(stored)S 2328(in)S 2409(rows)S 2567(of)S 2651(the)S 2760(array.)S 2941(This)S 3087(is)S 3160(th)S 458 2001(torage)U 651(scheme)S 877(used)S 1027(by)S 1122(LINPACK.)S 1455(An)S 1565(alternati)S 1779(ve)S 1870(scheme)S 2096(\(used)S 2268(in)S 2347(some)S 2514(EISPACK)S 2818([8,11])S 3006(routines\))S 3218 2097(f)U 432 2193(t)U 432 2097(has)U 548(rows)S 704(of)S 786(the)S 893(matrix)S 1091(stored)S 1279(in)S 1357(rows)S 1513(of)S 1595(the)S 1702(array,)S 1881(and)S 2003(diagonals)S 2282(of)S 2364(the)S 2471(matrix)S 2669(stored)S 2857(in)S 2935(columns)S 3185(o)S 450 2193(he)U 555(array.)S 750(The)S 895(latter)S 1071(scheme)S 1310(has)S 1440(the)S 1562(advantage)S 1870(that)S 2010(a)S 2081(band)S 2251(matrix-vect)S 2553(or)S 2650(product)S 2893(of)S 2990(the)S 3112(form)S 3214 2289(s)U 432 2385(e)U 2 F 432 2289(y)U 4 F 494(\254)S 582(a)S 2 F (Ax)R 4 F 726(+)S 785(b)S 2 F (y)R 1 F 886(can)S 1001(be)S 1087(computed)S 1370(using)S 1537(long)S 1678(vectors)S 1892(\(the)S 2018(diagonals)S 2294(of)S 2373(the)S 2477(matrix\))S 2693(stored)S 2877(in)S 2951(contiguou)S 461 2385(lements,)U 713(and)S 839(hence)S 1023(is)S 1098(much)S 1275(more)S 1440(ef\256cient)S 1685(on)S 1781(some)S 1950(machines)S 2228(\(e.g.)S 2376(CDC)S 2542(Cyber)S 2733(205\))S 2884(than)S 3027(the)S 3137(\256rst)S 432 2481(scheme.)U 673(However)S 942(other)S 1104(computations)S 1485(involving)S 1764(band)S 1919(matrices,)S 2185(such)S 2333(as)S 2 F 2415(x)S 4 F 2477(\254)S 2 F 2565(Tx)S 1 F 2642(,)S 2 F 2686(x)S 4 F 2748(\254)S 2 F 2836(T)S 2957(x)S 1 F 3023(and)S 2 F 3144(LU)S 4 F 48 Z 2906 2454(-)U 1 F (1)R 66 Z 432 2577(a)U 2 F 48 Z 632 2550(T)U 1 F 66 Z 461 2577(nd)U 2 F 551(U)S 670(U)S 1 F 752(factorizat)S 999(ion,)S 1123(cannot)S 1321(be)S 1406(organized)S 1688(`by)S 1799(diagonals';)S 2114(instead)S 2323(the)S 2426(computation)S 2777(sweeps)S 2991(along)S 3160(the)S 432 2769(a)U 432 2673(band,)U 601(and)S 720(the)S 824(LINPACK)S 1135(storage)S 1349(scheme)S 1570(has)S 1682(the)S 1786(advantage)S 2076(of)S 2155(reducing)S 2408(the)S 2511(number)S 2735(of)S 2813(page)S 2960(swaps)S 3145(and)S 461 2769(llowing)U 684(contiguous)S 995(vectors)S 1207(\(the)S 1331(columns)S 1576(of)S 1653(the)S 1755(matrix\))S 1970(to)S 2043(be)S 2127(used.)S 3223 2901(.)U 432 2997(R)U 582 2901(We)U 703(considered)S 1018(the)S 1128(possibility)S 1432(of)S 1517(generalizi)S 1775(ng)S 1871(the)S 1981(rank-1)S 2183(and)S 2308(rank-2)S 2510(updates)S 2741(to)S 2821(rank-k)S 3022(updates)S 476 2997(ank-k)U 671(updates)S 916(with)S 2 F 1077(k)S 4 F 1139(>)S 1 F 1198(1)S 1275(\(but)S 2 F 1425(k)S 4 F 1487(<)S 1505(<)S 2 F 1564(n)S 1 F 1608(\))S 1674(can)S 1809(achieve)S 2053(signi\256cantly)S 2422(better)S 2615(performance)S 2991(on)S 3101(some)S 3218 3093(-)U 432 3189(r)U 432 3093(machines)U 705(than)S 843(rank-1)S 1040([5].)S 1159(But)S 1279(to)S 1355(take)S 1489(advantage)S 1780(of)S 1860(this)S 1980(usually)S 2195(requires)S 2432(complicat)S 2690(ing)S 2799(the)S 2903(calling)S 3105(algo)S 454 3189(ithm;)U 621(and)S 745(moreover)S 1026(rank-k)S 1227(updates)S 1457(with)S 2 F 1603(k)S 4 F 1665 3177(~)U 1665 3192(~)U 2 F 1724 3189(n)U 1 F 1797(would)S 1991(allow)S 2166(an)S 2257(even)S 2409(higher)S 2605(level)S 2760(operation)S 3036(such)S 3185(as)S 3218 3285(-)U 432 3381(v)U 432 3285(matrix)U 630(multiplic)S 866(ation)S 1024(`in)S 1123(by)S 1215(the)S 1321(back)S 1471(door'.)S 1679(We)S 1796(prefer)S 1979(to)S 2056(keep)S 2206(to)S 2283(a)S 2338(clean)S 2502(concept)S 2732(of)S 2813(genuine)S 3047(matrix)S 465 3381(ector)U 618(operations.)S 3 F 1047 3669(s)U 432(8.)S 526(Acknowledgement)S 1 F 582 3801(A)U 653(draft)S 800(proposal)S 1050(that)S 1171(led)S 1274(to)S 1348(this)S 1466(speci\256cation)S 1820(was)S 1945(discussed)S 2220(at)S 2289(the)S 2391(Parvec)S 2592(IV)S 2684(Workshop)S 2981(organized)S 3211 3897(e)U 432 3993(w)U 432 3897(by)U 529(John)S 685(Rice)S 836(at)S 914(Purdue)S 1132(University)S 1441(on)S 1538(October)S 1781(29-30,)S 1982(1984)S 2144(and)S 2269(at)S 2346(various)S 2570(SIAM)S 2766(conferences.)S 3149(W)S 480 3993(ish)U 585(to)S 664(thank)S 838(all)S 931(the)S 1039(participant)S 1319(s)S 1373(at)S 1448(the)S 1556(workshop)S 1845(and)S 1968(meetings)S 2233(for)S 2338(their)S 2486(comments,)S 2800(discussions,)S 3145(and)S 3207 4089(y)U 432 4185(t)U 432 4089(encouragement)U 833(,)S 880(as)S 965(well)S 1108(as)S 1193(the)S 1303(many)S 1479(people)S 1684(who)S 1827(have)S 1980(sent)S 2115(us)S 2203(comments)S 2502(separately.)S 2836(We)S 2956(particular)S 450 4185(hank)U 600(Ingrid)S 783(Bucher)S 995(and)S 1112(Tom)S 1258(Jordan)S 1456(who)S 1592(proposed)S 1856(the)S 1958(use)S 2068(of)S 2145(the)S 4 F 2247(b)S 1 F 2306(parameter.)S EP %%Page: ? 17 BP 1 F 66 Z 432 849([)U 3 F 432 621(13.)U 559(References)S 1 F 1759 405(-)U 1803(15)S 1891(-)S 454 849(1])U 582(D.S.)S 729(Dodson)S 963(and)S 1086(J.G.)S 1222(Lewis,)S 5 F 1427(")S 1 F (Issues)R 1644(relating)S 1871(to)S 1949(extension)S 2228(of)S 2310(the)S 2417(Basic)S 2590(Linear)S 2788(Algebra)S 3027(Subpro-)S 432 1173([)U 582 945(grams)U 5 F (")R 1 F (,)R 810(ACM)S 983(SIGNUM)S 1267(Newsletter,)S 1591(vol)S 1697(20,)S 1802(no)S 1890(1,)S 1962(\(1985\),)S 2177(19-22.)S 454 1173(2])U 582(J.J.)S 694(Dongarra)S 969(and)S 1090(S.C.)S 1231(Eisenstat,)S 1511(``Squeezing)S 1855(the)S 1961(Most)S 2123(out)S 2233(of)S 2314(an)S 2401(Algorithm)S 2700(in)S 2776(CRAY)S 2985(Fortran,'')S 432 1497([)U 2 F 582 1269(ACM)U 743(Transactions)S 1110(on)S 1198(Mathematical)S 1585(Software,)S 1 F 1858(Vol.)S 1996(10,)S 2101(No.)S 2221(3,)S 2293(\(1984\),)S 2508(221-230.)S 454 1497(3])U 582(J.J.)S 695(Dongarra,)S 2 F 988(Increasing)S 1297(the)S 1404(Performance)S 1775(of)S 1853(Mathematical)S 2245(Software)S 2506(through)S 2742(High-Level)S 3064(Modu-)S 1 F 582 1689(a)U 2 F 582 1593(larity.)U 1 F 788(Proceedings)S 1135(of)S 1214(the)S 1318(Sixth)S 1481(International)S 1840(Symposium)S 2179(on)S 2269(Computing)S 2589(Methods)S 2844(in)S 2919(Engineering)S 611 1689(nd)U 699(Applied)S 933(Sciences.)S 1224(\(Versailles,)S 1548(France\).)S 1788(North-Holland)S 2198(\(1984\),)S 2413(pp)S 2501(239-248.)S 3218 1917(-)U 432([4])S 582(J.J.)S 692(Dongarra,)S 982(J.R.)S 1110(Bunch,)S 1323(C.B.)S 1468(Moler,)S 1669(and)S 1787(G.W.)S 1954(Stewart,)S 2 F 2195(LINPACK)S 2489(Users')S 2689(Guide,)S 1 F 2890(SIAM)S 3079(Publi)S 582 2013(cations,)U 807(Philadelphia,)S 1174(1979.)S 432 2241([)U (5])R 582(J.J.)S 691(Dongarra,)S 980(L.)S 1060(Kaufman,)S 1345(and)S 1463(S.)S 1540(Hammarling,)S 2 F 1912(Squeezing)S 2202(the)S 2305(Most)S 2460(out)S 2567(of)S 2641(Eigenvalue)S 2958(Solvers)S 3174(on)S 1 F 432 2565([)U 2 F 582 2337(High-Performance)U 1102(Computers,)S 1 F 1431(Linear)S 1624(Algebra)S 1858(and)S 1975(Its)S 2063(Applications,)S 2438(77,)S 2543(pp)S 2631(113-136,)S 2890(\(1986\).)S 454 2565(6])U 582(J.J.)S 700(Dongarra,)S 998(J.J.)S 1116(Du)S 1228(Croz,)S 1404(S.)S 1489(Hammarling,)S 1869(R.J.)S 2004(Hanson,)S 2 F 2254(A)S 2325(Proposal)S 2598(for)S 2706(an)S 2803(Extended)S 3078(Set)S 3189(of)S 1 F 432 2889([)U 2 F 582 2661(Fortran)U 813(Basic)S 981(Linear)S 1179(Algebra)S 1413(Subprograms,)S 1 F 1809(ACM)S 1982(SIGNUM)S 2266(Newsletter,)S 2590(vol.)S 2713(20,)S 2818(no.)S 2923(1,)S 2995(1985.)S 454 2889(7])U 582(J.J.)S 692(Dongarra,)S 982(J.J.)S 1092(Du)S 1197(Croz,)S 1366(S.)S 1444(Hammarling,)S 1817(R.J.)S 1945(Hanson,)S 2 F 2188(An)S 2285(Extended)S 2553(Set)S 2656(of)S 2730(Basic)S 2899(Linear)S 3098(Alge-)S 1 F 582 3081(R)U 2 F 582 2985(bra)U 715(Subprograms:)S 1135(Model)S 1344(Implementation)S 1798(and)S 1938(Test)S 2089(Programs,)S 1 F 2411(Argonne)S 2682(National)S 2948(Laboratory)S 626 3081(eport,)U 800(ANL)S 958(MCS-TM)S 1241(81,)S 1346(January)S 1573(1987.)S 432 3309([)U (8])R 582(B.S.)S 726(Garbow,)S 985(J.M.)S 1133(Boyle,)S 1336(J.J.)S 1451(Dongarra,)S 1746(C.B.)S 1897(Moler,)S 2 F 2104(Matrix)S 2312(Eigensystem)S 2669(Routines)S 2927(-)S 2977(EISPACK)S 1 F 432 3633([)U 2 F 582 3405(Guide)U 765(Extension,)S 1 F 1063(Lecture)S 1285(Notes)S 1461(in)S 1534(Computer)S 1819(Science,)S 2062(Vol.)S 2200(51,)S 2305(Springer-Verlag,)S 2772(Berlin,)S 2975(1977.)S 454 3633(9])U 582(R.)S 674(Hanson,)S 924(F.)S 1009(Krogh,)S 1225(and)S 1350(C.)S 1441(Lawson,)S 2 F 1697(A)S 1767(Proposal)S 2039(for)S 2146(Standard)S 2418(Linear)S 2624(Algebra)S 2866(Subprograms,)S 1 F 432 3957([)U 582 3729(SIGNUM)U 866(Newsletter,)S 1190(8,)S 1262(\(1973\),)S 1477(16.)S 454 3957(10])U 582(C.)S 668(Lawson,)S 919(R.)S 1005(Hanson,)S 1249(D.)S 1339(Kincaid,)S 1589(and)S 1709(F.)S 1788(Krogh,)S 1999(``Basic)S 2214(Linear)S 2410(Algebra)S 2647(Subprograms)S 3024(for)S 3126(For-)S 432 4281([)U 582 4053(tran)U 706(Usage,'')S 2 F 954(ACM)S 1115(Transactions)S 1482(on)S 1570(Mathematical)S 1957(Software)S 3 F 2213(5)S 1 F 2268(\(1979\),)S 2483(308-323.)S 454 4281(11])U 582(C.)S 670(Lawson,)S 923(R.)S 1011(Hanson,)S 1257(D.)S 1349(Kincaid,)S 1601(and)S 1723(F.)S 1804(Krogh,)S 2017(``Algorithm)S 2362(539:)S 2506(Basic)S 2679(Linear)S 2877(Algebra)S 3115(Sub-)S 582 4377(programs)U 853(for)S 952(Fortran)S 1168(Usage,'')S 2 F 1416(ACM)S 1577(Transactions)S 1944(on)S 2032(Mathematical)S 2419(Software)S 3 F 2675(5)S 1 F 2730(\(1979\),)S 2945(324-325.)S EP %%Page: ? 18 BP 1 F 66 Z 1759 405(-)U 1803(16)S 1891(-)S 3223 621(,)U 432([12])S 2 F 582(IEEE)S 752(Standard)S 1022(for)S 1126(Binary)S 1332(Floating-Point)S 1749(Arithmetic,)S 1 F 2070(ANSI/IEEE)S 2412(Std)S 2527(754-1985,)S 2824(The)S 2953(IEEE)S 3122(Inc.)S 582 717(New)U 729(York,)S 904(\(1985\).)S EP %%Page: ? 19 BP 1 F 66 Z 1759 405(-)U 1803(17)S 1891(-)S 3 F 432 621(Appendix)U 730(A)S 1 F 582 753(In)U 665(this)S 788(appendix)S 1057(we)S 1161(illustrate)S 1417(how)S 1558(to)S 1636(use)S 1751(the)S 1858(full)S 1976(matrix)S 2174(update)S 2376(routines)S 2615(to)S 2693(obtain)S 2884(rank-one)S 3145(and)S 3214 849(s)U 432 945(o)U 432 849(rank-two)U 695(updates)S 921(to)S 997(band)S 1150(matrices.)S 1414(We)S 1530(assume)S 1749(that)S 1872(the)S 1976(vectors)S 2 F 2190(x)S 1 F 2254(and)S 2 F 2373(y)S 1 F 2437(are)S 2541(such)S 2686(that)S 2808(no)S 2898(\256ll-in)S 3068(occur)S 465 945(utside)U 646(the)S 750(band,)S 919(in)S 994(which)S 1179(case)S 1316(the)S 1420(update)S 1619(affects)S 1818(only)S 1959(a)S 2012(full)S 2127(rectangle)S 2391(within)S 2583(the)S 2687(band)S 2838(matrix)S 2 F 3032(A)S 1 F 3083(.)S 3123(This)S 432 1137(\()U 432 1041(is)U 505(illustrated)S 796(in)S 876(Fig.)S 1010(A.1)S 1137(for)S 1243(the)S 1352(case)S 1494(where)S 2 F 1684(m)S 4 F 1743(=)S 2 F (n)R 4 F 1824(=)S 1 F (9,)R 2 F 1940(kl)S 4 F 1998(=)S 1 F (2,)R 2 F 2114(ku)S 4 F 2187(=)S 1 F (3)R 2286(and)S 2409(the)S 2517(update)S 2720(commences)S 3058(in)S 3137(row)S 454 1137(and)U 571(column\))S 2 F 812(l)S 4 F 841(=)S 1 F (3.)R 443 1329(\()U 525(*)S 657(*)S 789(*)S 921(*)S 1675(\))S 1851(\()S 1933(0)S 2027(\))S 2071(\()S 2153(0)S 2285(0)S 2417(*)S 2549(*)S 2681(*)S 2813(*)S 2945(0)S 3077(0)S 3209(0)S 3303(\))S 443 1521(\()U 443 1425(\()U 525(*)S 657(*)S 789(*)S 5 F 833(_)S 877(_)S 1 F 921(*)S 5 F 965(_)S 1009(_)S 1 F 1053(*)S 5 F 1097(_)S 1141(_)S 1 F 1675(\))S 1851(\()S 1933(0)S 2027(\))S 525 1521(*)U 657(*)S 755(|)S 789(*)S 921(*)S 1053(*)S 1185(*)S 1239(|)S 1675(\))S 1851(\()S 1933(*)S 2027(\))S 2027 1617(\))U 443 1713(\()U 443 1617(\()U 657(*)S 755(|)S 789(*)S 921(*)S 1053(*)S 1185(*)S 1239(|)S 1317(*)S 1675(\))S 1851(\()S 1933(*)S 755 1713(|)U 789(*)S 5 F 833(_)S 877(_)S 1 F 921(*)S 5 F 965(_)S 1009(_)S 1 F 1053(*)S 5 F 1097(_)S 1141(_)S 1 F 1185(*)S 1239(|)S 1317(*)S 1449(*)S 1675(\))S 1755(+)S 1851(\()S 1933(*)S 2027(\))S 2027 1809(\))U 443 1905(\()U 443 1809(\()U 921(*)S 1053(*)S 1185(*)S 1317(*)S 1449(*)S 1581(*)S 1675(\))S 1851(\()S 1933(0)S 1053 1905(*)U 1185(*)S 1317(*)S 1449(*)S 1581(*)S 1675(\))S 1851(\()S 1933(0)S 2027(\))S 2027 2001(\))U 443 2097(\()U 443 2001(\()U 1185(*)S 1317(*)S 1449(*)S 1581(*)S 1675(\))S 1851(\()S 1933(0)S 1317 2097(*)U 1449(*)S 1581(*)S 1675(\))S 1851(\()S 1933(0)S 2027(\))S 2 F 1705 2325(A)U 4 F 1778(+)S 2 F 1837(xy)S 48 Z 1928 2298(T)U 1 F 66 Z 1949 2553(1)U 432 2745(W)U 1690 2553(Figure)U 1884(A.)S 494 2745(e)U 548(see)S 657(that)S 780(the)S 885(update)S 1085(affects)S 1285(only)S 1427(that)S 1550(part)S 1677(of)S 2 F 1757(A)S 1 F 1832(indicated)S 2096(by)S 2186(the)S 2290(dotted)S 2478(lines,)S 2643(that)S 2765(is,)S 2850(the)S 2954(\()S 2 F (kl)R 1 F 3058(+1\))S 3174(by)S 432 2841(\()U 2 F (ku)R 1 F (+1\))R 630(part)S 754(of)S 2 F 831(A)S 1 F 904(starting)S 1123(at)S 2 F 1192(a)S 1 F 1262(.)S 2 F 48 Z 1225 2856(ll)U 1 F 66 Z 432 3036(T)U (he)R 562(routines)S 802(that)S 928(we)S 1032(could)S 1205(have)S 1356(included)S 1609(are)S 5 F 1716(_)S 1 F (GBR,)R 5 F 1929(_)S 1 F (SBR,)R 2131(and)S 5 F 2253(_)S 1 F (SBR2)R 2471(\(in)S 2571(the)S 2678(complex)S 2931(case)S 5 F 3071(_)S 1 F (HBR)R 432 3132(and)U 5 F 549(_)S 1 F (HBR2\).)R 812(Their)S 976(argument)S 1246(lists)S 1374(could)S 1542(have)S 1688(been)S 5 F 498 3324(_)U 1 F (GBR)R 689(\()S 733(M,)S 831(N,)S 918(KL,)S 1045(KU,)S 1180(L,)S 1259(ALPHA,)S 1519(X,)S 1606(INCX,)S 1807(Y,)S 1894(INCY,)S 2095(A,)S 2182(LDA)S 2340(\))S 5 F 498 3516(_)U 498 3420(_)U 1 F (SBR)R 678(\()S 722(UPLO,)S 934(N,)S 1021(K,)S 1108(L,)S 1187(ALPHA,)S 1447(X,)S 1534(INCX,)S 1735(A,)S 1822(LDA)S 1980(\))S 531 3516(SBR2)U 711(\()S 755(UPLO,)S 967(N,)S 1054(K,)S 1141(L,)S 1220(ALPHA,)S 1480(X,)S 1567(INCX,)S 1768(Y,)S 1855(INCY,)S 2056(A,)S 2143(LDA)S 2301(\))S 3223 3708(,)U 432(where)S 618(the)S 723(argument)S 996(L)S 1061(denotes)S 1287(the)S 1392(starting)S 1614(row)S 1742(and)S 1862(column)S 2084(for)S 2186(the)S 2291(update)S 2491(and)S 2611(the)S 2716(elements)S 2 F 2974(x)S 1 F 3051(and)S 2 F 3170(y)S 48 Z 3003 3723(l)U 3199(l)S 1 F 66 Z 432 3999(C)U 432 3807(of)U 509(the)S 611(vectors)S 2 F 823(x)S 1 F 885(and)S 2 F 1002(y)S 1 F 1042(,)S 1081(are)S 1183(in)S 1256(elements)S 1511(X\(1\))S 1658(and)S 1775(Y\(1\))S 1922(of)S 1999(the)S 2101(arrays)S 2284(X)S 2354(and)S 2471(Y.)S 476 3999(alls)U 589(to)S 662(SGBR)S 857(can)S 970(be)S 1054(achieved)S 1309(by)S 454 4287(K)U 454 4191(KM)U 583(=)S 642(MIN)S 793(\(KL+1,)S 1012(M-L+1\))S 502 4287(N)U 572(=)S 631(MIN)S 782(\(KU+1,)S 1009(N-L+1\))S 454 4383(C)U (ALL)R 648(SGER)S 839(\(KM,)S 1007(KN,)S 1142(ALPHA,)S 1402(X,)S 1489(INCX,)S 1690(Y,)S 1777(INCY,)S 1978(A\(KU+1,)S 2253(L\),)S 2354(MAX\(KM,)S 2677(LDA-1\)\))S EP %%Page: ? 20 BP 1 F 66 Z 432 621(Calls)U 589(to)S 662(SSBR)S 846(can)S 959(be)S 1043(achieved)S 1298(by)S 1759 405(-)U 1803(18)S 1891(-)S 498 813(KN)U 616(=)S 675(MIN\(K+1,)S 983(N-L+1\))S 1204 909(N)U 498(IF)S 579(\(UPLO)S 796(.EQ.)S 940('U'\))S 1076(THE)S 564 1005(CALL)U 758(SSYR\('U',)S 1077(KN,)S 1212(ALPHA,)S 1472(X,)S 1559(INCX,)S 1760(A\(K+1,)S 1987(L\),)S 2088(MAX\(1,)S 2337(LDA-1\)\))S 498 1101(ELSE)U 564 1197(CALL)U 758(SSYR\('L',)S 1069(KN,)S 1204(ALPHA,)S 1464(X,)S 1551(INCX,)S 1752(A\(1,)S 1894(L\),)S 1995(MAX\(1,)S 2244(LDA-1\)\))S 432 1581(a)U 498 1293(ENDIF)U 461 1581(nd)U 549(similarly)S 804(for)S 903(calls)S 1045(to)S 1118(SSBR2.)S EP %%Page: ? 21 BP 1 F 66 Z 1759 405(-)U 1803(19)S 1891(-)S 3 F 432 621(Appendix)U 730(B)S 1 F 582 753(In)U 663(this)S 784(appendix)S 1051(we)S 1154(propose)S 1389(an)S 1477(additional)S 1765(set)S 1864(of)S 1945(real)S 2068(and)S 2188(complex)S 2439(Level)S 2613(2)S 2671(routines)S 2908(which)S 3094(allow)S 3207 849(d)U 432 945(b)U 432 849(extended)U 692(precision)S 956(matrix-vect)S 1258(or)S 1336(operations)S 1633(to)S 1707(be)S 1792(performed.)S 2128(The)S 2253(names)S 2444(of)S 2521(these)S 2678(routines)S 2912(are)S 3014(obtaine)S 465 945(y)U 524(preceding)S 809(the)S 915(character)S 1181(representing)S 1531(the)S 1636(Fortran)S 1855(data)S 1989(type)S 2127(\(S)S 2211(or)S 2291(C\),)S 2399(by)S 2490(the)S 2595(character)S 2860(E.)S 2942(The)S 3069(matrix)S 3223 1041(,)U 432 1137(a)U 432 1041(is)U 504(always)S 715(stored)S 904(in)S 983(working)S 1231(precision)S 1500(\(which)S 1711(is)S 1783(single)S 1968(precision)S 2237(for)S 2341(the)S 2448(ES-)S 2574(and)S 2696(EC-)S 2829(set)S 2929(of)S 3011(routines)S 461 1137(nd)U 550(double)S 752(precision)S 1016(for)S 1116(the)S 1219(ED-)S 1352(and)S 1470(EZ-)S 1595(set\).)S 1751(The)S 1875(computation)S 2225(must)S 2375(be)S 2459(performed)S 2755(in)S 2828(extended)S 3087(preci-)S 432 1233(sion)U 564(\(which)S 769(is)S 835(more)S 992(accurate)S 1232(than)S 1367(the)S 1469(working)S 1711(precision\).)S 582 1365(Such)U 754(routines)S 1006(are)S 1125(useful,)S 1342(for)S 1458(example,)S 1736(in)S 1826(the)S 1945(accurate)S 2202(computation)S 2569(of)S 2663(residuals)S 2936(in)S 3026(iterative)S 432 1557(i)U 432 1461(re\256nement.)U 775(Many)S 951(machines)S 1221(have)S 1367(extended)S 1626(precision)S 1889(registers)S 2134(in)S 2207(which)S 2390(extended)S 2649(precision)S 2912(computation)S 450 1557(s)U 499(performed)S 796(at)S 866(little)S 1008(or)S 1086(no)S 1175(extra)S 1329(cost.)S 1496(However,)S 1777(in)S 1850(order)S 2011(to)S 2084(allow)S 2252(the)S 2354(additional)S 2638(precision)S 2901(to)S 2974(be)S 3058(carried)S 432 1749(m)U 432 1653(through)U 666(a)S 724(series)S 903(of)S 987(calls)S 1135(to)S 1214(these)S 1377(routines,)S 1634(at)S 1709(least)S 1857(one)S 1980(,)S 2025(in)S 2104(some)S 2271(cases)S 2438(both,)S 2600(of)S 2683(the)S 2791(vectors)S 2 F 3009(x)S 1 F 3077(and)S 2 F 3200(y)S 1 F 483 1749(ust)U 582(be)S 666(stored)S 849(in)S 922(extended)S 1181(precision.)S 582 1881(T)U (hese)R 761(routines)S 995(are)S 1097(to)S 1170(perform)S 1404(the)S 1506(operations)S 1802(described)S 2076(in)S 2149(section)S 2357(2)S 2412(as)S 2489(follows.)S 582 2205(For)U 696(the)S 798(matrix-vect)S 1100(or)S 1177(operations)S 2 F 687 2433(y)U 4 F 749(\254)S 837(a)S 2 F (Ax)R 4 F 981(+)S 1040(b)S 2 F (y)R 1 F 1117(,)S 2 F 1178(y)S 4 F 1240(\254)S 1328(a)S 2 F (A)R 1481(x)S 4 F 1543(+)S 1602(b)S 2 F (y)R 1 F 1679(,)S 2 F 1740(y)S 4 F 1802(\254)S 1890(a)S 2 F (A)R 4 F 1909 2439(`)U 1910(`)S 2 F 2043 2433(x)U 4 F 2105(+)S 2164(b)S 2 F (y)R 4 F 432 2565(a)U 2 F 48 Z 1443 2406(T)U 2005(T)S 1 F 66 Z 474 2565(,)U 4 F 513(b)S 1 F (,)R 2 F 589(A)S 1 F 640(,)S 683(and)S 2 F 804(x)S 1 F 870(are)S 976(working)S 1222(precision,)S 2 F 1506(y)S 1 F 1572(is)S 1642(extended)S 1905(precision)S 2172(and)S 2293(the)S 2399(computation)S 2753(of)S 2 F 2834(y)S 1 F 2900(is)S 2970(to)S 3047(be)S 3134(per-)S 432 2661(formed)U 644(in)S 717(extended)S 976(precision.)S 582 2889(For)U 696(the)S 798(triangular)S 1075(operations)S 1632 3117(,)U 2 F 687(x)S 4 F 749(\254)S 2 F 837(Tx)S 1 F 914(,)S 2 F 975(x)S 4 F 1037(\254)S 2 F 1125(T)S 1233(x)S 1 F 1273(,)S 2 F 1334(x)S 4 F 1396(\254)S 2 F 1484(T)S 4 F 1460 3123(`)U 2 F 1592 3117(x)U 48 Z 1195 3090(T)U 1554(T)S 1692 3222(T)U 66 Z 687 3249(x)U 4 F 48 Z 907 3222(-)U 1 F (1)R 4 F 1279(-)S 2 F (T)R 4 F 1665(-)S 66 Z 749 3249(\254)U 2 F 837(T)S 958(x)S 1 F 998(,)S 2 F 1059(x)S 4 F 1121(\254)S 2 F 1209(T)S 1344(x)S 1 F 1384(,)S 2 F 1445(x)S 4 F 1507(\254)S 2 F 1595(T)S 4 F 1571 3255(`)U 2 F 1730 3249(x)U 432 3477(T)U 1 F 516(is)S 595(working)S 850(precision,)S 2 F 1143(x)S 1 F 1218(is)S 1297(extended)S 1569(precision)S 1845(and)S 1975(the)S 2090(computation)S 2453(of)S 2 F 2543(x)S 1 F 2618(is)S 2697(to)S 2783(be)S 2880(performed)S 3189(in)S 432 3573(extended)U 691(precision.)S 582 3705(For)U 696(the)S 798(rank-one)S 1054(and)S 1171(rank-two)S 1431(updates)S 1676 3933(,)U 2 F 687(A)S 4 F 760(\254)S 848(a)S 2 F (xy)R 4 F 1041(+)S 2 F 1100(A)S 1 F 1151(,)S 2 F 1212(A)S 4 F 1285(\254)S 1373(a)S 2 F (xy)R 4 F 1413 3954(`)U 1566 3933(+)U 2 F 1625(A)S 48 Z 981 3906(T)U 1506(T)S 1782 4038(T)U 66 Z 687 4065(H)U 48 Z 989 4038(T)U 1530(T)S 4 F 66 Z 768 4065(\254)U 856(a)S 2 F (xx)R 4 F 896 4086(`)U 1049 4065(+)U 2 F 1108(H)S 1 F 1167(,)S 2 F 1228(H)S 4 F 1309(\254)S 1397(a)S 2 F (xy)R 4 F 1437 4086(`)U 1590 4065(+)U 1649(a)S 1617 4086(`)U 1620(`)S 2 F 1691 4065(yx)U 4 F 1689 4086(`)U 1842 4065(+)U 2 F 1901(H)S 1 F 1960(,)S 3218 4293(-)U 432 4389(f)U 4 F 432 4293(a)U 1 F (,)R 2 F 516(A)S 1 F 567(,)S 609(and)S 2 F 729(H)S 1 F 813(are)S 918(working)S 1163(precision,)S 2 F 1446(x)S 1 F 1511(and)S 2 F 1631(y)S 1 F 1696(are)S 1801(extended)S 2063(precision)S 2329(and)S 2449(the)S 2553(computation)S 2905(is)S 2973(to)S 3048(be)S 3134(per)S 454 4389(ormed)U 644(in)S 717(extended)S 976(precision.)S EP %%Page: ? 22 BP 1 F 66 Z 1759 405(-)U 1803(20)S 1891(-)S 582 621(T)U (he)R 713(precise)S 928(nature)S 1121(of)S 1205(the)S 1314(extended)S 1580(precision)S 1850(data)S 1988(type)S 2130(cannot)S 2334(be)S 2425(specifed)S 2672(here.)S 2830(The)S 2960(amount)S 3185(of)S 432 813(i)U 432 717(extra)U 588(precision)S 854(available)S 1115(will)S 1241(depend)S 1455(on)S 1545(the)S 1649(architect)S 1874(ure)S 1982(of)S 2061(the)S 2165(machine)S 2411(and)S 2530(the)S 2634(compiler;)S 2909(whether)S 3145(this)S 450 813(s)U 505(suf\256cient,)S 796(will)S 927(depend)S 1146(upon)S 1307(the)S 1416(applicati)S 1641(on.)S 1775(For)S 1896(the)S 2005(rest)S 2129(of)S 2213(this)S 2337(appendix)S 2607(we)S 2713(assume)S 2935(that)S 3061(double)S 432 1005(i)U 432 909(precision)U 699(is)S 769(used)S 916(to)S 992(implement)S 1297(extended)S 1559(precision)S 1825(in)S 1901(the)S 2006(ES)S 2108(and)S 2228(EC)S 2337(routines,)S 2591(and)S 2711(quadruple)S 2999(precision)S 450 1005(n)U 507(the)S 611(ED)S 723(and)S 842(EZ)S 946(routines)S 1182(\(note)S 1341(however)S 1592(that)S 1714(quadruple)S 2001(precision)S 2266(is)S 2333(not)S 2440(speci\256ed)S 2697(in)S 2771(IEEE)S 2936(arithmeti)S 3172(c\).)S 432 1197(r)U 432 1101(Then)U 600(the)S 713(ES-)S 845(set)S 951(of)S 1039(routines)S 1284(can)S 1408(be)S 1503(called)S 1692(and)S 1820(implement)S 2100(ed)S 2194(in)S 2277(standard)S 2532(Fortran)S 2758(77.)S 2895(The)S 3029(EC-)S 3167(set)S 454 1197(equire)U 644(the)S 750(addition)S 991(of)S 1072(a)S 1127(COMPLEX*16)S 1568(data)S 1703(type,)S 1859(as)S 1940(does)S 2087(the)S 2193(basic)S 2354(Z-)S 2442(set,)S 2558(but)S 2668(can)S 2785(be)S 2873(used)S 3020(across)S 3211(a)S 3218 1293(\))U 432 1389(d)U 432 1293(wide)U 589(range)S 764(of)S 848(machines.)S 1164(The)S 1295(ED-)S 1433(set)S 1534(require)S 1748(the)S 1856(addition)S 2099(of)S 2182(a)S 2239(REAL*16)S 2538(\(quadruple)S 2851(precision)S 3120(real)S 465 1389(ata)U 569(type,)S 727(while)S 901(the)S 1009(EC-)S 1143(set)S 1244(require)S 1458(a)S 1514(COMPLEX*32)S 1956(\(quadruple)S 2268(precision)S 2536(complex\))S 2811(data)S 2947(type;)S 3105(these)S 3211 1485(e)U 432 1581(e)U 432 1485(data)U 578(types)S 754(are)S 871(provided)S 1142(on)S 1245(some)S 1421(systems.)S 1706(We)S 1834(strongly)S 2086(recommend)S 2432(that)S 2566(if)S 2642(implement)S 2922(ors)S 3039(provid)S 461 1581(xtended)U 695(precision)S 962(routines)S 1200(using)S 1369(these)S 1530(data)S 1665(types,)S 1847(they)S 1985(adhere)S 2185(to)S 2261(the)S 2366(speci\256cations)S 2749(described)S 3026(here,)S 3181(so)S 432 1677(that)U 552(at)S 621(least)S 763(a)S 814(limited)S 1021(degree)S 1218(of)S 1295(portability)S 1590(may)S 1725(be)S 1809(achieved.)S 582 1809(To)U 693(test)S 822(thoroughly)S 1149(that)S 1285(extended)S 1560(precision)S 1839(is)S 1921(used)S 2080(as)S 2173(speci\256ed)S 2444(in)S 2532(the)S 2649(internal)S 2886(computations)S 3222 1905(l)U 432 2001(i)U 432 1905(requires)U 667(an)S 752(extra)S 906(degree)S 1104(of)S 1182(sophistication)S 1570(from)S 1721(the)S 1824(test)S 1938(program.)S 2223(For)S 2338(all)S 2426(these)S 2584(reasons,)S 2821(neither)S 3025(a)S 3076(mode)S 450 2001(mplementa)U 741(tion)S 868(of)S 948(the)S 1053(extended)S 1315(precision)S 1581(routines,)S 1835(nor)S 1948(a)S 2002(test)S 2118(program)S 2366(for)S 2468(them,)S 2641(have)S 2790(been)S 2939(included)S 3189(in)S 432 2289(T)U 432 2097([7];)U 549(code)S 695(for)S 794(the)S 896(ES-)S 1017(and)S 1134(EC-)S 1262(sets)S 1383(of)S 1460(routines)S 1694(may)S 1829(be)S 1913(obtained)S 2161(from)S 2311(the)S 2413(authors.)S 472 2289(he)U 556(speci\256cations)S 936(of)S 1013(the)S 1115(arguments)S 1411(remain)S 1615(exactly)S 1826(as)S 1903(in)S 1976(Section)S 2195(6)S 2250(except)S 2443(the)S 2545(following:)S 2920 2481(.)U 432(for)S 531(ESGEMV,)S 842(ESGBMV,)S 1157(ESSYMV,)S 1465(ESSBMV,)S 1769(ESSPMV,)S 2066(ESGER,)S 2314(ESSYR2)S 2575(and)S 2692(ESSPR2)S 542 2673(DOUBLE)U 832(PRECISION)S 1240(Y\(*\))S 1350 2865(:)U 432(for)S 531(the)S 633(corresponding)S 1032(EC-routines)S 542 3057(COMPLEX*16)U 1155(Y\(*\))S 1434(\(or)S 1533(equivalent\))S 432 3249(for)U 531(the)S 633(corresponding)S 1032(ED-)S 1164(routines:)S 542 3441(REAL*16)U 1077(Y\(*\))S 1356(\(or)S 1455(equivalent\))S 432 3633(for)U 531(the)S 633(corresponding)S 1032(EZ-)S 1156(routines:)S 542 3825(COMPLEX*32)U 1155(Y\(*\))S 1434(\(or)S 1533(equivalent\))S 432 4017(f)U (or)R 558(ESTRMV,)S 892(ESTBMV,)S 1226(ESTPMV,)S 1553(ESTRSV,)S 1865(ESTBSV,)S 2177(ESTPSV,)S 2482(ESGER,)S 2757(ESSYR,)S 3028(ESSPR,)S 432 4113(ESSYR2)U 693(and)S 810(ESSPR2:)S 542 4305(DOUBLE)U 832(PRECISION)S 1240(X\(*\))S 1372 4497(:)U 432(for)S 531(the)S 633(corresponding)S 1032(EC-)S 1160(routines)S EP %%Page: ? 23 BP 1 F 66 Z 1759 405(-)U 1803(21)S 1891(-)S 432 813(f)U 542 621(COMPLEX*16)U 1155(X\(*\))S 1434(\(or)S 1533(equivalent\))S 454 813(or)U 531(the)S 633(corresponding)S 1032(ED-)S 1164(routines:)S 1728 1005(\))U 432 1197(f)U 542 1005(REAL*16)U 1077(X\(*\))S 1356(\(or)S 1455(equivalent)S 454 1197(or)U 531(the)S 633(corresponding)S 1032(EZ-)S 1156(routines:)S 1806 1389(\))U 542(COMPLEX*32)S 1155(X\(*\))S 1434(\(or)S 1533(equivalent)S 582 1617(We)U 695(thank)S 863(Velvel)S 1060(Kahan)S 1254(for)S 1353(insisting)S 1598(that)S 1718(we)S 1817(think)S 1974(about)S 2142(the)S 2244(extended)S 2503(precision)S 2766(issue.)S EP %%Page: ? 24 BP 3 F 66 Z 432 621(Appendix)U 730(C)S 1 F 1759 405(-)U 1803(22)S 1891(-)S 582 753(This)U 721(appendix)S 984(contains)S 1225(the)S 1327(calling)S 1527(sequences)S 1816(for)S 1915(all)S 2002(the)S 2104(Level)S 2275(2)S 2330(BLAS.)S 48 Z 2936 945(r)U 5 F 436 1137(_)U 1 F 468 945(n)U 501(a)S 526(me)S 756(o)S 788(p)S 825(t)S 857(i)S 884(o)S 916(n)S 950(s)S 1268(d)S 1305(i)S 1326(m)S 1460(b)S 1496(-)S 1519(w)S 1561(i)S 1588(d)S 1625(t)S 1652(h)S 1718(s)S 1749(c)S 1781(a)S 1817(l)S 1845(a)S 1880(r)S 1934(ma)S 2009(t)S 2040(r)S 2073(i)S 2100(x)S 2196(x)S 2232(-)S 2260(v)S 2293(e)S 2325(c)S 2361(t)S 2388(o)S 2424(r)S 2486(s)S 2517(c)S 2549(a)S 2585(l)S 2613(a)S 2648(r)S 2708(y)S 2744(-)S 2772(v)S 2805(e)S 2837(c)S 2873(t)S 2900(o)S 463 1137(GE)U 523(M)S 559(V)S 600(\()S 849(TRA)S 943(NS)S 1018(,)S 1259(M)S 1306(,)S 1359(N)S 1402(,)S 1711(AL)S 1778(P)S 1807(H)S 1839(A)S 1882(,)S 1935(A)S 1978(,)S 2033(LD)S 2095(A)S 2138(,)S 2191(X)S 2234(,)S 2296(I)S 2319(NC)S 2383(X)S 2426(,)S 2480(BE)S 2545(TA)S 2618(,)S 2671(Y)S 2714(,)S 2776(I)S 2799(NC)S 2863(Y)S 2936(\))S 2936 1233(\))U 5 F 436 1329(_)U 436 1233(_)U 1 F 463(GB)S 523(M)S 559(V)S 600(\()S 849(TRA)S 943(NS)S 1018(,)S 1259(M)S 1306(,)S 1359(N)S 1402(,)S 1455(KL)S 1530(,)S 1583(K)S 1615(U)S 1658(,)S 1711(AL)S 1778(P)S 1807(H)S 1839(A)S 1882(,)S 1935(A)S 1978(,)S 2033(LD)S 2095(A)S 2138(,)S 2191(X)S 2234(,)S 2296(I)S 2319(NC)S 2383(X)S 2426(,)S 2480(BE)S 2545(TA)S 2618(,)S 2671(Y)S 2714(,)S 2776(I)S 2799(NC)S 2863(Y)S 463 1329(HE)U 523(M)S 559(V)S 600(\()S 655(UP)S 721(LO)S 794(,)S 1359(N)S 1402(,)S 1711(AL)S 1778(P)S 1807(H)S 1839(A)S 1882(,)S 1935(A)S 1978(,)S 2033(LD)S 2095(A)S 2138(,)S 2191(X)S 2234(,)S 2296(I)S 2319(NC)S 2383(X)S 2426(,)S 2480(BE)S 2545(TA)S 2618(,)S 2671(Y)S 2714(,)S 2776(I)S 2799(NC)S 2863(Y)S 2936(\))S 2936 1425(\))U 5 F 436 1521(_)U 436 1425(_)U 1 F 463(HB)S 523(M)S 559(V)S 600(\()S 655(UP)S 721(LO)S 794(,)S 1359(N)S 1402(,)S 1551(K)S 1594(,)S 1711(AL)S 1778(P)S 1807(H)S 1839(A)S 1882(,)S 1935(A)S 1978(,)S 2033(LD)S 2095(A)S 2138(,)S 2191(X)S 2234(,)S 2296(I)S 2319(NC)S 2383(X)S 2426(,)S 2480(BE)S 2545(TA)S 2618(,)S 2671(Y)S 2714(,)S 2776(I)S 2799(NC)S 2863(Y)S 463 1521(HPM)U 559(V)S 600(\()S 655(UP)S 721(LO)S 794(,)S 1359(N)S 1402(,)S 1711(AL)S 1778(P)S 1807(H)S 1839(A)S 1882(,)S 1935(AP)S 2010(,)S 2191(X)S 2234(,)S 2296(I)S 2319(NC)S 2383(X)S 2426(,)S 2480(BE)S 2545(TA)S 2618(,)S 2671(Y)S 2714(,)S 2776(I)S 2799(NC)S 2863(Y)S 2936(\))S 2936 1617(\))U 5 F 436 1713(_)U 436 1617(_)U 1 F 466(S)S 495(Y)S 523(M)S 559(V)S 600(\()S 655(UP)S 721(LO)S 794(,)S 1359(N)S 1402(,)S 1711(AL)S 1778(P)S 1807(H)S 1839(A)S 1882(,)S 1935(A)S 1978(,)S 2033(LD)S 2095(A)S 2138(,)S 2191(X)S 2234(,)S 2296(I)S 2319(NC)S 2383(X)S 2426(,)S 2480(BE)S 2545(TA)S 2618(,)S 2671(Y)S 2714(,)S 2776(I)S 2799(NC)S 2863(Y)S 466 1713(S)U 496(B)S 523(M)S 559(V)S 600(\()S 655(UP)S 721(LO)S 794(,)S 1359(N)S 1402(,)S 1551(K)S 1594(,)S 1711(AL)S 1778(P)S 1807(H)S 1839(A)S 1882(,)S 1935(A)S 1978(,)S 2033(LD)S 2095(A)S 2138(,)S 2191(X)S 2234(,)S 2296(I)S 2319(NC)S 2383(X)S 2426(,)S 2480(BE)S 2545(TA)S 2618(,)S 2671(Y)S 2714(,)S 2776(I)S 2799(NC)S 2863(Y)S 2936(\))S 2936 1809(\))U 5 F 436 1905(_)U 436 1809(_)U 1 F 466(S)S 498(PM)S 559(V)S 600(\()S 655(UP)S 721(LO)S 794(,)S 1359(N)S 1402(,)S 1711(AL)S 1778(P)S 1807(H)S 1839(A)S 1882(,)S 1935(AP)S 2010(,)S 2191(X)S 2234(,)S 2296(I)S 2319(NC)S 2383(X)S 2426(,)S 2480(BE)S 2545(TA)S 2618(,)S 2671(Y)S 2714(,)S 2776(I)S 2799(NC)S 2863(Y)S 465 1905(TR)U 523(M)S 559(V)S 600(\()S 655(UP)S 721(LO)S 794(,)S 849(TRA)S 943(NS)S 1018(,)S 1071(D)S 1112(I)S 1135(A)S 1167(G)S 1210(,)S 1359(N)S 1402(,)S 1935(A)S 1978(,)S 2033(LD)S 2095(A)S 2138(,)S 2191(X)S 2234(,)S 2296(I)S 2319(NC)S 2383(X)S 2456(\))S 2456 2001(\))U 5 F 436 2097(_)U 436 2001(_)U 1 F 465(TB)S 523(M)S 559(V)S 600(\()S 655(UP)S 721(LO)S 794(,)S 849(TRA)S 943(NS)S 1018(,)S 1071(D)S 1112(I)S 1135(A)S 1167(G)S 1210(,)S 1359(N)S 1402(,)S 1551(K)S 1594(,)S 1935(A)S 1978(,)S 2033(LD)S 2095(A)S 2138(,)S 2191(X)S 2234(,)S 2296(I)S 2319(NC)S 2383(X)S 465 2097(T)U 498(PM)S 559(V)S 600(\()S 655(UP)S 721(LO)S 794(,)S 849(TRA)S 943(NS)S 1018(,)S 1071(D)S 1112(I)S 1135(A)S 1167(G)S 1210(,)S 1359(N)S 1402(,)S 1935(AP)S 2010(,)S 2191(X)S 2234(,)S 2296(I)S 2319(NC)S 2383(X)S 2456(\))S 2456 2289(\))U 5 F 436 2385(_)U 436 2289(_)U 1 F 465(TR)S 530(S)S 559(V)S 600(\()S 655(UP)S 721(LO)S 794(,)S 849(TRA)S 943(NS)S 1018(,)S 1071(D)S 1112(I)S 1135(A)S 1167(G)S 1210(,)S 1359(N)S 1402(,)S 1935(A)S 1978(,)S 2033(LD)S 2095(A)S 2138(,)S 2191(X)S 2234(,)S 2296(I)S 2319(NC)S 2383(X)S 465 2385(TB)U 530(S)S 559(V)S 600(\()S 655(UP)S 721(LO)S 794(,)S 849(TRA)S 943(NS)S 1018(,)S 1071(D)S 1112(I)S 1135(A)S 1167(G)S 1210(,)S 1359(N)S 1402(,)S 1551(K)S 1594(,)S 1935(A)S 1978(,)S 2033(LD)S 2095(A)S 2138(,)S 2191(X)S 2234(,)S 2296(I)S 2319(NC)S 2383(X)S 2456(\))S 2456 2481(\))U 5 F 436(_)S 1 F 465(T)S 498(P)S 530(S)S 559(V)S 600(\()S 655(UP)S 721(LO)S 794(,)S 849(TRA)S 943(NS)S 1018(,)S 1071(D)S 1112(I)S 1135(A)S 1167(G)S 1210(,)S 1359(N)S 1402(,)S 1935(AP)S 2010(,)S 2191(X)S 2234(,)S 2296(I)S 2319(NC)S 2383(X)S 468 2673(n)U 501(a)S 526(me)S 788(o)S 820(p)S 857(t)S 889(i)S 916(o)S 948(n)S 982(s)S 1300(d)S 1337(i)S 1358(m)S 1494(s)S 1525(c)S 1557(a)S 1593(l)S 1621(a)S 1656(r)S 1716(x)S 1752(-)S 1780(v)S 1813(e)S 1845(c)S 1881(t)S 1908(o)S 1944(r)S 2004(y)S 2040(-)S 2068(v)S 2101(e)S 2133(c)S 2169(t)S 2196(o)S 2232(r)S 2286(ma)S 2361(t)S 2392(r)S 2425(i)S 2452(x)S 2520 2865(\))U 5 F 436 2961(_)U 436 2865(_)U 1 F 463(GER)S 5 F 564(_)S 1 F 600(\()S 1291(M)S 1338(,)S 1391(N)S 1434(,)S 1487(AL)S 1554(P)S 1583(H)S 1615(A)S 1658(,)S 1711(X)S 1754(,)S 1816(I)S 1839(NC)S 1903(X)S 1946(,)S 1999(Y)S 2042(,)S 2104(I)S 2127(NC)S 2191(Y)S 2234(,)S 2287(A)S 2330(,)S 2385(LD)S 2447(A)S 463 2961(HER)U 600(\()S 687(UP)S 753(LO)S 826(,)S 1391(N)S 1434(,)S 1487(AL)S 1554(P)S 1583(H)S 1615(A)S 1658(,)S 1711(X)S 1754(,)S 1816(I)S 1839(NC)S 1903(X)S 1946(,)S 2287(A)S 2330(,)S 2385(LD)S 2447(A)S 2520(\))S 5 F 436 3153(_)U 436 3057(_)U 1 F 463(HP)S 528(R)S 600(\()S 687(UP)S 753(LO)S 826(,)S 1391(N)S 1434(,)S 1487(AL)S 1554(P)S 1583(H)S 1615(A)S 1658(,)S 1711(X)S 1754(,)S 1816(I)S 1839(NC)S 1903(X)S 1946(,)S 2287(AP)S 2392(\))S 463 3153(HER)U 564(2)S 600(\()S 687(UP)S 753(LO)S 826(,)S 1391(N)S 1434(,)S 1487(AL)S 1554(P)S 1583(H)S 1615(A)S 1658(,)S 1711(X)S 1754(,)S 1816(I)S 1839(NC)S 1903(X)S 1946(,)S 1999(Y)S 2042(,)S 2104(I)S 2127(NC)S 2191(Y)S 2234(,)S 2287(A)S 2330(,)S 2385(LD)S 2447(A)S 2520(\))S 5 F 436 3345(_)U 436 3249(_)U 1 F 463(HP)S 528(R)S 564(2)S 600(\()S 687(UP)S 753(LO)S 826(,)S 1391(N)S 1434(,)S 1487(AL)S 1554(P)S 1583(H)S 1615(A)S 1658(,)S 1711(X)S 1754(,)S 1816(I)S 1839(NC)S 1903(X)S 1946(,)S 1999(Y)S 2042(,)S 2104(I)S 2127(NC)S 2191(Y)S 2234(,)S 2287(AP)S 2392(\))S 466 3345(S)U 495(YR)S 600(\()S 687(UP)S 753(LO)S 826(,)S 1391(N)S 1434(,)S 1487(AL)S 1554(P)S 1583(H)S 1615(A)S 1658(,)S 1711(X)S 1754(,)S 1816(I)S 1839(NC)S 1903(X)S 1946(,)S 2287(A)S 2330(,)S 2385(LD)S 2447(A)S 2520(\))S 5 F 436 3537(_)U 436 3441(_)U 1 F 466(S)S 498(P)S 528(R)S 600(\()S 687(UP)S 753(LO)S 826(,)S 1391(N)S 1434(,)S 1487(AL)S 1554(P)S 1583(H)S 1615(A)S 1658(,)S 1711(X)S 1754(,)S 1816(I)S 1839(NC)S 1903(X)S 1946(,)S 2287(AP)S 2392(\))S 466 3537(S)U 495(YR)S 564(2)S 600(\()S 687(UP)S 753(LO)S 826(,)S 1391(N)S 1434(,)S 1487(AL)S 1554(P)S 1583(H)S 1615(A)S 1658(,)S 1711(X)S 1754(,)S 1816(I)S 1839(NC)S 1903(X)S 1946(,)S 1999(Y)S 2042(,)S 2104(I)S 2127(NC)S 2191(Y)S 2234(,)S 2287(A)S 2330(,)S 2385(LD)S 2447(A)S 2520(\))S 5 F 436 3633(_)U 1 F 466(S)S 498(P)S 528(R)S 564(2)S 600(\()S 687(UP)S 753(LO)S 826(,)S 1391(N)S 1434(,)S 1487(AL)S 1554(P)S 1583(H)S 1615(A)S 1658(,)S 1711(X)S 1754(,)S 1816(I)S 1839(NC)S 1903(X)S 1946(,)S 1999(Y)S 2042(,)S 2104(I)S 2127(NC)S 2191(Y)S 2234(,)S 2287(AP)S 2392(\))S EP %%Trailer pscatsave end restore %%Pages: 24 .