%!PS-Adobe-1.0 %%Creator: anl-mcs:dongarra (Jack &,C232,7246,3129635225) %%Title: stdin (ditroff) %%CreationDate: Tue Jan 5 11:20:58 1988 %%EndComments % lib/psdit.pro -- prolog for psdit (ditroff) files % Copyright (c) 1984, 1985 Adobe Systems, Inc. All Rights Reserved. /$DITroff 140 dict def $DITroff begin /xi {0 72 11 mul translate 72 resolution div dup neg scale 0 0 moveto /fontnum 1 def /fontsize 10 def /fontheight 10 def /fontslant 0 def F /firstpage true def /pagesave save def}def /arctoobig 90 def /arctoosmall .05 def /glinewidth 1 def /SLW{glinewidth setlinewidth}def /m1 matrix def /m2 matrix def /m3 matrix def /oldmat matrix def /tan{dup sin exch cos div}def /point{resolution 72 div mul}def /dround {transform round exch round exch itransform}def /xT{/devname exch def}def /xr{/mh exch def /my exch def /resolution exch def}def /xp{}def /xs{docsave restore end}def /xt{showpage}def /xf{/fontname exch def /slotno exch def fontnames slotno get fontname eq not {fonts slotno fontname findfont put fontnames slotno fontname put}if}def /xH{/fontheight exch def}def /xS{/fontslant exch def}def /s{/fontsize exch def /fontheight fontsize def}def /f{/fontnum exch def}def /F {fontheight 0 le {/fontheight fontsize def}if fonts fontnum get fontsize point 0 0 fontheight point neg 0 0 m1 astore fontslant 0 ne{1 0 fontslant tan 1 0 0 m2 astore m3 concatmatrix}if makefont setfont .04 fontsize point mul 0 dround pop setlinewidth } def /X{exch currentpoint exch pop moveto show}def /N{3 1 roll moveto show}def /Y{exch currentpoint pop exch moveto show}def /S{show}def /MX{currentpoint exch pop moveto}def /MY{currentpoint pop exch moveto}def /MXY{moveto}def /cb{pop}def % action on unknown char -- nothing for now /n{}def /w{}def /p{pop firstpage not{showpage}if pagesave restore /pagesave save def /firstpage false def}def /abspoint{currentpoint exch pop add exch currentpoint pop add exch}def /distance{dup mul exch dup mul add sqrt}def /dstroke{currentpoint currentlinewidth SLW stroke setlinewidth moveto}def /Dt{/glinewidth exch def}def /Dl{2 copy gsave SLW 2 copy 0 eq exch 0 eq and {1 setlinecap} if rlineto stroke grestore rmoveto}def /arcellipse{/diamv exch def /diamh exch def oldmat currentmatrix pop currentpoint translate 1 diamv diamh div scale /rad diamh 2 div def currentpoint exch rad add exch rad -180 180 arc oldmat setmatrix}def /Dc{dup arcellipse dstroke}def /De{arcellipse dstroke}def /Da{/endv exch def /endh exch def /centerv exch def /centerh exch def /cradius centerv centerv mul centerh centerh mul add sqrt def /eradius endv endv mul endh endh mul add sqrt def /endang endv endh atan def /startang centerv neg centerh neg atan def /sweep startang endang sub dup 0 lt{360 add}if def sweep arctoobig gt {/midang startang sweep 2 div sub def /midrad cradius eradius add 2 div def /midh midang cos midrad mul def /midv midang sin midrad mul def midh neg midv neg endh endv centerh centerv midh midv Da currentpoint moveto Da} {sweep arctoosmall ge {/controldelt 1 sweep 2 div cos sub 3 sweep 2 div sin mul div 4 mul def centerv neg controldelt mul centerh controldelt mul endv neg controldelt mul centerh add endh add endh controldelt mul centerv add endv add centerh endh add centerv endv add rcurveto dstroke} {centerh endh add centerv endv add rlineto dstroke}ifelse}ifelse}def /Barray 200 array def % 200 values in a wiggle /D~{mark}def /D~~{counttomark Barray exch 0 exch getinterval astore /Bcontrol exch def pop /Blen Bcontrol length def Blen 4 ge Blen 2 mod 0 eq and {Bcontrol 0 get Bcontrol 1 get abspoint /Ycont exch def /Xcont exch def Bcontrol 0 2 copy get 2 mul put Bcontrol 1 2 copy get 2 mul put Bcontrol Blen 2 sub 2 copy get 2 mul put Bcontrol Blen 1 sub 2 copy get 2 mul put /Ybi /Xbi currentpoint 3 1 roll def def 0 2 Blen 4 sub {/i exch def Bcontrol i get 3 div Bcontrol i 1 add get 3 div Bcontrol i get 3 mul Bcontrol i 2 add get add 6 div Bcontrol i 1 add get 3 mul Bcontrol i 3 add get add 6 div /Xbi Xcont Bcontrol i 2 add get 2 div add def /Ybi Ycont Bcontrol i 3 add get 2 div add def /Xcont Xcont Bcontrol i 2 add get add def /Ycont Ycont Bcontrol i 3 add get add def Xbi currentpoint pop sub Ybi currentpoint exch pop sub rcurveto }for dstroke}if}def end /ditstart{$DITroff begin /nfonts 32 def /fonts[nfonts{0}repeat]def /fontnames[nfonts{()}repeat]def 1(Times-Roman)xf 2(Times-Italic)xf 3(Times-Bold)xf 4(Times-BoldItalic)xf 5(Helvetica)xf 6(Courier)xf 7(Symbol)xf /docsave save def }def % character outcalls /oc {/pswid exch def /cc exch def /name exch def /ditwid pswid fontsize mul resolution mul 72000 div def /ditsiz fontsize resolution mul 72 div def ocprocs name known{ocprocs name get exec}{name cb} ifelse}def /fractm [.65 0 0 .6 0 0] def /fraction {/fden exch def /fnum exch def gsave /cf currentfont def cf fractm makefont setfont 0 .3 dm 2 copy neg rmoveto fnum show rmoveto currentfont cf setfont(\244)show setfont fden show grestore ditwid 0 rmoveto} def /ocb {/s2 .5 dm def /s4 .25 dm def 2 setlinejoin gsave currentpoint newpath dround translate 0 0 moveto}def /oce {grestore ditwid 0 rmoveto}def /dm {ditsiz mul}def /4p {pop pop pop pop}def /ocprocs 50 dict def ocprocs begin (14) {(1)(4)fraction}def (12) {(1)(2)fraction}def (34) {(3)(4)fraction}def (sq) {gsave /len .64 dm def .08 dm 0 rmoveto currentpoint dround newpath moveto len 0 rlineto 0 len neg rlineto len neg 0 rlineto closepath stroke oce}def (bx) {gsave /len .64 dm def .08 dm 0 rmoveto currentpoint dround newpath moveto len 0 rlineto 0 len neg rlineto len neg 0 rlineto closepath fill oce}def (ci) {gsave .5 dm -.36 dm rmoveto currentpoint newpath .33 dm 0 360 arc .05 dm setlinewidth stroke oce}def (bv) {ocb s4 -.8 dm moveto 0 ditsiz rlineto stroke oce}def (br) {ocb 0 -.75 dm moveto 0 ditsiz rlineto stroke oce}def (sr) {gsave 0 .06 dm rmoveto(\326)show oce}def (rn) {gsave -.51 dm .06 dm rmoveto(\140)show oce}def (is) {gsave 0 .15 dm rmoveto(\362)show oce}def (ru) {ocb .5 dm 0 rlineto stroke oce}def (lt)% left top curly {ocb s4 .2 dm moveto 0 -.55 dm rlineto currentpoint pop -.8 dm 2 copy exch s4 add exch s4 arcto 4p stroke oce}def (lb)% left bot curly {ocb s4 -.8 dm moveto 0 .55 dm rlineto currentpoint pop .2 dm 2 copy exch s4 add exch s4 arcto 4p stroke oce}def (rt)% right top curly {ocb s4 .2 dm moveto 0 -.55 dm rlineto currentpoint pop -.8 dm 2 copy exch s4 sub exch s4 arcto 4p stroke oce}def (rb)% right bot curly {ocb s4 -.8 dm moveto 0 .55 dm rlineto currentpoint pop .2 dm 2 copy exch s4 sub exch s4 arcto 4p stroke oce}def (lk)% left mid curly {ocb /s3 -.3 dm def s4 -.8 dm moveto s4 s3 0 s3 s4 arcto pop pop ditsiz add s4 s3 4 2 roll s4 arcto 4p s4 .2 dm lineto stroke oce}def (rk)% right mid curly {ocb /s3 -.3 dm def s4 -.8 dm moveto s4 s3 s2 s3 s4 arcto pop pop ditsiz add s4 s3 4 2 roll s4 arcto 4p s4 .2 dm lineto stroke oce}def (lf)% left floor {ocb s4 -.8 dm moveto 0 ditsiz rlineto s4 0 rlineto stroke oce}def (rf)% right floor {ocb s4 -.8 dm moveto 0 ditsiz rlineto s4 neg 0 rlineto stroke oce}def (lc)% left ceil {ocb s4 .2 dm moveto 0 ditsiz neg rlineto s4 0 rlineto stroke oce}def (rc)% right ceil {ocb s4 .2 dm moveto 0 ditsiz neg rlineto s4 neg 0 rlineto stroke oce}def end ditstart (psc)xT 576 1 1 xr 1(Times-Roman)xf 2(Times-Italic)xf 3(Times-Bold)xf 4(Times-BoldItalic)xf 5(Helvetica)xf 6(Helvetica-Bold)xf 7(Courier)xf 8(Courier-Bold)xf 9(Symbol)xf 10(Courier)xf 11(Helvetica-Oblique)xf 12(Helvetica-BoldOblique)xf 13(Courier-Oblique)xf 14(Courier-BoldOblique)xf xi %%EndProlog %%Page: 21 23 21 p 11 s 0 xH 0 xS 1 f F 2332 392(-)N 2383(21)X 2493(-)X 3 f F 555 704(Appendix)N 944(C)X 1 f F 755 880(This)N 934(appendix)X 1279(contains)X 1595(the)X 1725(calling)X 1988(sequences)X 2366(for)X 2490(all)X 2601(the)X 2731(proposed)X 3075(level)X 3269(2)X 3335(BLAS.)X 8 s F 602 1136(n)N 646(ame)X 980(o)X 1022(p)X 1071(t)X 1113(i)X 1148(o)X 1190(n)X 1235(s)X 1652(d)X 1701(i)X 1727(m)X 1904(b)X 1951(-)X 1981(w)X 2037(i)X 2072(d)X 2121(t)X 2156(h)X 2243(s)X 2284(c)X 2326(a)X 2373(l)X 2410(a)X 2455(r)X 2525(ma)X 2625(t)X 2665(r)X 2709(i)X 2744(x)X 2870(x)X 2917(-)X 2954(v)X 2998(e)X 3040(c)X 3087(t)X 3122(o)X 3169(r)X 3251(s)X 3292(c)X 3334(a)X 3381(l)X 3418(a)X 3463(r)X 3542(y)X 3589(-)X 3626(v)X 3670(e)X 3712(c)X 3759(t)X 3794(o)X 3841(r)X 560 1392(_GEM)N 721(V)X 775(\()X 1102(TRANS)X 1324(,)X 1640(M,)X 1771(N)X 1828(,)X 2233(ALPHA)X 2458(,)X 2527(A)X 2584(,)X 2656(LDA)X 2794(,)X 2863(X)X 2920(,)X 3001(I)X 3031(NCX,)X 3243(BETA)X 3424(,)X 3493(Y)X 3550(,)X 3631(I)X 3661(NCY)X 3841(\))X 560 1520(_GB)N 674(M)X 721(V)X 775(\()X 1102(TRANS)X 1324(,)X 1640(M,)X 1771(N)X 1828(,)X 1897(KL)X 1996(,)X 2065(KU)X 2164(,)X 2233(ALPHA)X 2458(,)X 2527(A)X 2584(,)X 2656(LDA)X 2794(,)X 2863(X)X 2920(,)X 3001(I)X 3031(NCX,)X 3243(BETA)X 3424(,)X 3493(Y)X 3550(,)X 3631(I)X 3661(NCY)X 3841(\))X 560 1648(_HEM)N 721(V)X 775(\()X 847(UPLO)X 1030(,)X 1771(N)X 1828(,)X 2233(ALPHA)X 2458(,)X 2527(A)X 2584(,)X 2656(LDA)X 2794(,)X 2863(X)X 2920(,)X 3001(I)X 3031(NCX,)X 3243(BETA)X 3424(,)X 3493(Y)X 3550(,)X 3631(I)X 3661(NCY)X 3841(\))X 560 1776(_HB)N 674(M)X 721(V)X 775(\()X 847(UPLO)X 1030(,)X 1771(N)X 1828(,)X 2023(K)X 2080(,)X 2233(ALPHA)X 2458(,)X 2527(A)X 2584(,)X 2656(LDA)X 2794(,)X 2863(X)X 2920(,)X 3001(I)X 3031(NCX,)X 3243(BETA)X 3424(,)X 3493(Y)X 3550(,)X 3631(I)X 3661(NCY)X 3841(\))X 560 1904(_HPM)N 721(V)X 775(\()X 847(UPLO)X 1030(,)X 1771(N)X 1828(,)X 2233(ALPHA)X 2458(,)X 2527(AP)X 2626(,)X 2863(X)X 2920(,)X 3001(I)X 3031(NCX,)X 3243(BETA)X 3424(,)X 3493(Y)X 3550(,)X 3631(I)X 3661(NCY)X 3841(\))X 560 2032(_)N 600(SY)X 674(M)X 721(V)X 775(\()X 847(UPLO)X 1030(,)X 1771(N)X 1828(,)X 2233(ALPHA)X 2458(,)X 2527(A)X 2584(,)X 2656(LDA)X 2794(,)X 2863(X)X 2920(,)X 3001(I)X 3031(NCX,)X 3243(BETA)X 3424(,)X 3493(Y)X 3550(,)X 3631(I)X 3661(NCY)X 3841(\))X 560 2160(_)N 600(SBM)X 721(V)X 775(\()X 847(UPLO)X 1030(,)X 1771(N)X 1828(,)X 2023(K)X 2080(,)X 2233(ALPHA)X 2458(,)X 2527(A)X 2584(,)X 2656(LDA)X 2794(,)X 2863(X)X 2920(,)X 3001(I)X 3031(NCX,)X 3243(BETA)X 3424(,)X 3493(Y)X 3550(,)X 3631(I)X 3661(NCY)X 3841(\))X 560 2288(_)N 600(S)X 642(PM)X 721(V)X 775(\()X 847(UPLO)X 1030(,)X 1771(N)X 1828(,)X 2233(ALPHA)X 2458(,)X 2527(AP)X 2626(,)X 2863(X)X 2920(,)X 3001(I)X 3031(NCX,)X 3243(BETA)X 3424(,)X 3493(Y)X 3550(,)X 3631(I)X 3661(NCY)X 3841(\))X 560 2416(_T)N 639(R)X 674(M)X 721(V)X 775(\()X 847(UPLO)X 1030(,)X 1102(TRANS)X 1324(,)X 1393(D)X 1447(I)X 1477(AG)X 1576(,)X 1771(N)X 1828(,)X 2527(A)X 2584(,)X 2656(LDA)X 2794(,)X 2863(X)X 2920(,)X 3001(I)X 3031(NCX)X 3211(\))X 560 2544(_T)N 639(B)X 674(M)X 721(V)X 775(\()X 847(UPLO)X 1030(,)X 1102(TRANS)X 1324(,)X 1393(D)X 1447(I)X 1477(AG)X 1576(,)X 1771(N)X 1828(,)X 2023(K)X 2080(,)X 2527(A)X 2584(,)X 2656(LDA)X 2794(,)X 2863(X)X 2920(,)X 3001(I)X 3031(NCX)X 3211(\))X 560 2672(_T)N 642(PM)X 721(V)X 775(\()X 847(UPLO)X 1030(,)X 1102(TRANS)X 1324(,)X 1393(D)X 1447(I)X 1477(AG)X 1576(,)X 1771(N)X 1828(,)X 2527(AP)X 2626(,)X 2863(X)X 2920(,)X 3001(I)X 3031(NCX)X 3211(\))X 560 2928(_T)N 639(RSV)X 775(\()X 847(UPLO)X 1030(,)X 1102(TRANS)X 1324(,)X 1393(D)X 1447(I)X 1477(AG)X 1576(,)X 1771(N)X 1828(,)X 2527(A)X 2584(,)X 2656(LDA)X 2794(,)X 2863(X)X 2920(,)X 3001(I)X 3031(NCX)X 3211(\))X 560 3056(_T)N 639(BSV)X 775(\()X 847(UPLO)X 1030(,)X 1102(TRANS)X 1324(,)X 1393(D)X 1447(I)X 1477(AG)X 1576(,)X 1771(N)X 1828(,)X 2023(K)X 2080(,)X 2527(A)X 2584(,)X 2656(LDA)X 2794(,)X 2863(X)X 2920(,)X 3001(I)X 3031(NCX)X 3211(\))X 560 3184(_T)N 642(P)X 684(SV)X 775(\()X 847(UPLO)X 1030(,)X 1102(TRANS)X 1324(,)X 1393(D)X 1447(I)X 1477(AG)X 1576(,)X 1771(N)X 1828(,)X 2527(AP)X 2626(,)X 2863(X)X 2920(,)X 3001(I)X 3031(NCX)X 3211(\))X 602 3440(n)N 646(ame)X 1022(o)X 1064(p)X 1113(t)X 1155(i)X 1190(o)X 1232(n)X 1277(s)X 1694(d)X 1743(i)X 1769(m)X 1949(s)X 1990(c)X 2032(a)X 2079(l)X 2116(a)X 2161(r)X 2240(x)X 2287(-)X 2324(v)X 2368(e)X 2410(c)X 2457(t)X 2492(o)X 2539(r)X 2618(y)X 2665(-)X 2702(v)X 2746(e)X 2788(c)X 2835(t)X 2870(o)X 2917(r)X 2987(ma)X 3087(t)X 3127(r)X 3171(i)X 3206(x)X 560 3696(_GER)N 728(_)X 775(\()X 1682(M,)X 1813(N)X 1870(,)X 1939(ALPHA)X 2164(,)X 2233(X)X 2290(,)X 2371(I)X 2401(NCX,)X 2611(Y)X 2668(,)X 2749(I)X 2779(NCY,)X 2989(A)X 3046(,)X 3118(LDA)X 3295(\))X 560 3824(_HER)N 775(\()X 889(UPLO)X 1072(,)X 1813(N)X 1870(,)X 1939(ALPHA)X 2164(,)X 2233(X)X 2290(,)X 2371(I)X 2401(NCX,)X 2989(A)X 3046(,)X 3118(LDA)X 3295(\))X 560 3952(_HP)N 681(R)X 775(\()X 889(UPLO)X 1072(,)X 1813(N)X 1870(,)X 1939(ALPHA)X 2164(,)X 2233(X)X 2290(,)X 2371(I)X 2401(NCX,)X 2989(AP)X 3127(\))X 560 4080(_HER)N 728(2)X 775(\()X 889(UPLO)X 1072(,)X 1813(N)X 1870(,)X 1939(ALPHA)X 2164(,)X 2233(X)X 2290(,)X 2371(I)X 2401(NCX,)X 2611(Y)X 2668(,)X 2749(I)X 2779(NCY,)X 2989(A)X 3046(,)X 3118(LDA)X 3295(\))X 560 4208(_HP)N 681(R2)X 775(\()X 889(UPLO)X 1072(,)X 1813(N)X 1870(,)X 1939(ALPHA)X 2164(,)X 2233(X)X 2290(,)X 2371(I)X 2401(NCX,)X 2611(Y)X 2668(,)X 2749(I)X 2779(NCY,)X 2989(AP)X 3127(\))X 560 4336(_)N 600(SYR)X 775(\()X 889(UPLO)X 1072(,)X 1813(N)X 1870(,)X 1939(ALPHA)X 2164(,)X 2233(X)X 2290(,)X 2371(I)X 2401(NCX,)X 2989(A)X 3046(,)X 3118(LDA)X 3295(\))X 560 4464(_)N 600(S)X 642(PR)X 775(\()X 889(UPLO)X 1072(,)X 1813(N)X 1870(,)X 1939(ALPHA)X 2164(,)X 2233(X)X 2290(,)X 2371(I)X 2401(NCX,)X 2989(AP)X 3127(\))X 560 4592(_)N 600(SYR2)X 775(\()X 889(UPLO)X 1072(,)X 1813(N)X 1870(,)X 1939(ALPHA)X 2164(,)X 2233(X)X 2290(,)X 2371(I)X 2401(NCX,)X 2611(Y)X 2668(,)X 2749(I)X 2779(NCY,)X 2989(A)X 3046(,)X 3118(LDA)X 3295(\))X 560 4720(_)N 600(S)X 642(PR)X 728(2)X 775(\()X 889(UPLO)X 1072(,)X 1813(N)X 1870(,)X 1939(ALPHA)X 2164(,)X 2233(X)X 2290(,)X 2371(I)X 2401(NCX,)X 2611(Y)X 2668(,)X 2749(I)X 2779(NCY,)X 2989(AP)X %%Page: 20 22 20 p 11 s 0 xH 0 xS 1 f F 2332 392(-)N 2383(20)X 2493(-)X 665 704(REAL*16)N 1291(X\(*\))X 1610(\(or)X 1734(equivalent\))X 555 960(for)N 679(the)X 809(corresponding)X 1334(EZ-)X 1493(routines:)X 665 1216(COMPLEX*32)N 1415(X\(*\))X 1734(\(or)X 1858(equivalent\))X 755 1520(We)N 899(thank)X 1117(Velvel)X 1374(Kahan)X 1625(for)X 1749(insisting)X 2071(that)X 2226(we)X 2350(think)X 2554(about)X 2772(the)X 2902(extended)X 3242(precision)X 3587(issue.)X %%Page: 19 21 19 p 11 s 0 xH 0 xS 1 f F 2332 392(-)N 2383(19)X 2493(-)X 755 704(The)N 918(ES-)X 1076(set)X 1200(of)X 1299(routines)X 1609(can)X 1757(be)X 1865(called)X 2101(and)X 2253(implemented)X 2740(in)X 2834(standard)X 3157(Fortran)X 3441(77.)X 3598(The)X 3760(EC-)X 3927(set)X 4050(require)X 555 832(the)N 690(addition)X 1007(of)X 1107(a)X 1173(COMPLEX*16)X 1752(data)X 1926(type,)X 2127(as)X 2227(does)X 2415(the)X 2550(basic)X 2758(Z-)X 2868(set,)X 3014(but)X 3153(can)X 3301(be)X 3410(used)X 3597(across)X 3842(a)X 3907(wide)X 4104(range)X 555 960(of)N 654(machines.)X 1057(The)X 1220(ED-)X 1392(set)X 1516(require)X 1791(the)X 1925(addition)X 2241(of)X 2340(a)X 2405(REAL*16)X 2792(\(quadruple)X 3198(precision)X 3546(real\))X 3732(data)X 3904(type,)X 4103(while)X 555 1088(the)N 692(EC-)X 863(set)X 990(require)X 1268(a)X 1336(COMPLEX*32)X 1917(\(quadruple)X 2327(precision)X 2679(complex\))X 3040(data)X 3215(type;)X 3420(these)X 3629(data)X 3804(types)X 4018(are)X 4153(pro-)X 555 1216(vided)N 782(on)X 901(some)X 1118(systems.)X 1472(We)X 1625(strongly)X 1944(recommend)X 2390(that)X 2553(if)X 2637(implementors)X 3153(provide)X 3452(extended)X 3800(precision)X 4153(rou-)X 555 1344(tines)N 756(using)X 981(these)X 1196(data)X 1376(types,)X 1617(they)X 1802(adhere)X 2069(to)X 2171(the)X 2312(specifications)X 2830(described)X 3200(here,)X 3406(so)X 3517(that)X 3683(at)X 3780(least)X 3975(a)X 4047(limited)X 555 1472(degree)N 811(of)X 906(portability)X 1297(may)X 1471(be)X 1576(achieved.)X 555 1728(To)N 684(test)X 838(thoroughly)X 1256(that)X 1420(extended)X 1769(precision)X 2123(is)X 2213(used)X 2405(as)X 2509(specified)X 2858(in)X 2958(the)X 3097(internal)X 3397(computations)X 3903(requires)X 4216(an)X 555 1856(extra)N 758(degree)X 1019(of)X 1119(sophistication)X 1637(from)X 1835(the)X 1970(test)X 2120(program.)X 2488(For)X 2636(all)X 2751(these)X 2958(reasons,)X 3269(neither)X 3540(a)X 3605(model)X 3852(implementa-)X 555 1984(tion)N 721(of)X 822(the)X 958(extended)X 1304(precision)X 1655(routines,)X 1989(nor)X 2134(a)X 2201(test)X 2352(program)X 2678(for)X 2808(them,)X 3035(have)X 3229(been)X 3423(included)X 3754(in)X 3850([6];)X 4004(code)X 4197(for)X 555 2112(the)N 685(ES-)X 839(and)X 988(EC-)X 1152(sets)X 1306(of)X 1401(routines)X 1707(may)X 1881(be)X 1986(obtained)X 2312(from)X 2505(the)X 2635(authors.)X 555 2368(The)N 714(specifications)X 1221(of)X 1316(the)X 1446(arguments)X 1835(remain)X 2102(exactly)X 2379(as)X 2474(in)X 2565(Section)X 2852(6)X 2918(except)X 3170(the)X 3300(following:)X 555 2624(for)N 679(ESGEMV,)X 1084(ESGBMV,)X 1494(ESSYMV,)X 1894(ESSBMV,)X 2290(ESSPMV,)X 2676(ESGER,)X 2999(ESSYR2)X 3339(and)X 3488(ESSPR2.)X 665 2880(DOUBLE)N 1043(PRECISION)X 1563(Y\(*\))X 555 3136(for)N 679(the)X 809(corresponding)X 1334(EC-routines:)X 665 3392(COMPLEX*16)N 1415(Y\(*\))X 1734(\(or)X 1858(equivalent\))X 555 3648(for)N 679(the)X 809(corresponding)X 1334(ED-)X 1502(routines:)X 665 3904(REAL*16)N 1291(Y\(*\))X 1610(\(or)X 1734(equivalent\))X 555 4160(for)N 679(the)X 809(corresponding)X 1334(EZ-)X 1493(routines:)X 665 4416(COMPLEX*32)N 1415(Y\(*\))X 1734(\(or)X 1858(equivalent\))X 555 4672(for)N 685(ESTRMV,)X 1092(ESTBMV,)X 1499(ESTPMV,)X 1896(ESTRSV,)X 2274(ESTBSV,)X 2652(ESTPSV,)X 3020(ESGER,)X 3349(ESSYR,)X 3672(ESSPR,)X 3981(ESSYR2)X 555 4800(and)N 704(ESSPR2:)X 665 5056(DOUBLE)N 1043(PRECISION)X 1563(X\(*\))X 555 5312(for)N 679(the)X 809(corresponding)X 1334(EC-)X 1498(routines:)X 665 5568(COMPLEX*16)N 1415(X\(*\))X 1734(\(or)X 1858(equivalent\))X 555 5824(for)N 679(the)X 809(corresponding)X 1334(ED-)X 1502(routines:)X %%Page: 18 20 18 p 11 s 0 xH 0 xS 1 f F 2332 392(-)N 2383(18)X 2493(-)X 3 f F 555 704(Appendix)N 944(B)X 1 f F 755 880(In)N 863(this)X 1026(appendix)X 1384(we)X 1521(propose)X 1834(an)X 1952(additional)X 2341(set)X 2474(of)X 2582(real)X 2749(and)X 2911(complex)X 3250(level)X 3457(2)X 3536(routines)X 3854(which)X 4103(allow)X 555 1008(extended)N 903(precision)X 1256(matrix-vector)X 1766(operations)X 2163(to)X 2262(be)X 2375(performed.)X 2814(The)X 2980(names)X 3234(of)X 3336(these)X 3546(routines)X 3859(are)X 3995(obtained)X 555 1136(by)N 671(preceding)X 1046(the)X 1182(character)X 1532(representing)X 1995(the)X 2131(Fortran)X 2418(data)X 2593(type)X 2773(\(S)X 2879(or)X 2979(C\),)X 3116(by)X 3231(the)X 3366(character)X 3715(E.)X 3818(The)X 3982(matrix)X 4240(is)X 555 1264(always)N 824(stored)X 1064(in)X 1158(working)X 1476(precision)X 1824(\(which)X 2093(is)X 2177(single)X 2413(precision)X 2761(for)X 2887(the)X 3019(ES-)X 3175(or)X 3272(EC-)X 3438(set)X 3560(of)X 3657(routines,)X 3987(and)X 4138(dou-)X 555 1392(ble)N 690(precision)X 1040(for)X 1169(the)X 1304(ED-)X 1477(or)X 1577(EZ-)X 1740(set\).)X 1937(The)X 2100(computation)X 2568(must)X 2766(be)X 2875(performed)X 3267(in)X 3362(extended)X 3706(precision)X 4055(\(which)X 555 1520(is)N 636(at)X 722(least)X 906(double)X 1168(precision)X 1513(for)X 1637(ES-)X 1791(or)X 1886(EC-)X 2050(set,)X 2192(and)X 2341(at)X 2427(least)X 2611(quadruple)X 2985(precision)X 3330(for)X 3454(the)X 3584(ED-)X 3752(or)X 3847(EZ-)X 4006(set\).)X 755 1696(Such)N 962(routines)X 1277(are)X 1415(useful,)X 1683(for)X 1816(example,)X 2168(in)X 2267(the)X 2405(accurate)X 2728(computation)X 3200(of)X 3303(residuals)X 3646(in)X 3745(iterative)X 4065(refine-)X 555 1824(ment.)N 801(Many)X 1030(machines)X 1387(have)X 1577(extended)X 1919(precision)X 2266(registers)X 2588(in)X 2681(which)X 2920(extended)X 3262(precision)X 3609(computation)X 4075(is)X 4158(per-)X 555 1952(formed)N 833(at)X 921(little)X 1109(or)X 1206(no)X 1318(extra)X 1518(cost.)X 1728(However,)X 2095(in)X 2187(order)X 2395(to)X 2487(allow)X 2706(the)X 2837(additional)X 3214(precision)X 3560(to)X 3652(be)X 3758(carried)X 4025(through)X 555 2080(a)N 620(series)X 846(of)X 945(calls)X 1133(to)X 1228(these)X 1434(routines,)X 1765(at)X 1854(least)X 2041(one)X 2193(,)X 2240(in)X 2334(some)X 2545(cases)X 2755(both,)X 2959(of)X 3057(the)X 3190(vectors)X 2 f F 3469(x)X 1 f F 3548(and)X 2 f F 3700(y)X 1 f F 3779(must)X 3976(be)X 4084(stored)X 555 2208(in)N 646(extended)X 986(precision.)X 755 2384(These)N 987(routines)X 1293(are)X 1422(to)X 1513(perform)X 1818(the)X 1948(operations)X 2337(described)X 2696(in)X 2787(section)X 3059(2)X 3125(as)X 3220(follows.)X 755 2816(For)N 899(the)X 1029(matrix-vector)X 1531(operations)X 2 f F 862 3120(y)N 9 f F 938(\254)X 1047(a)X 2 f F 1102(Ax)X 9 f F 1232(+)X 1302(b)X 2 f F 1350(y)X 1 f F 1404(,)X 2 f F 1470(y)X 9 f F 1546(\254)X 1655(a)X 2 f F 1710(A)X 8 s F 1801 3093(T)N 11 s F 1848 3120(x)N 9 f F 1924(+)X 1994(b)X 2 f F 2042(y)X 1 f F 2096(,)X 2 f F 2162(y)X 9 f F 2238(\254)X 2347(a)X 2 f F 2402(A)X 9 f F 2419 3113 MXY (rn)96 500 oc 2421 MX (rn)96 500 oc 8 s 2 f F 2493 3093(T)N 11 s F 2540 3120(x)N 9 f F 2616(+)X 2686(b)X 2 f F 2734(y)X 9 f F 555 3296(a)N 1 f F 610(,)X 9 f F 654(b)X 1 f F 702(,)X 2 f F 746(A)X 1 f F 815(,)X 860(and)X 2 f F 1010(x)X 1 f F 1087(are)X 1217(working)X 1533(precision,)X 2 f F 1900(y)X 1 f F 1976(is)X 2057(extended)X 2397(precision)X 2742(and)X 2891(the)X 3021(computation)X 3485(of)X 2 f F 3580(y)X 1 f F 3656(is)X 3737(to)X 3828(be)X 3933(performed)X 555 3424(in)N 646(extended)X 986(precision.)X 755 3728(For)N 899(the)X 1029(triangular)X 1394(operations)X 2 f F 862 4032(x)N 9 f F 938(\254)X 2 f F 1047(Tx)X 1 f F 1150(,)X 2 f F 1216(x)X 9 f F 1292(\254)X 2 f F 1401(T)X 8 s F 1487 4005(T)N 11 s F 1534 4032(x)N 1 f F 1588(,)X 2 f F 1654(x)X 9 f F 1730(\254)X 2 f F 1839(T)X 9 f F 1855 4025 MXY (rn)96 500 oc 8 s 2 f F 1925 4005(T)N 11 s F 1972 4032(x)N 1 f F 2026(,)X 2 f F 862 4208(x)N 9 f F 938(\254)X 2 f F 1047(T)X 8 s 9 f F 1133 4181(-)N 1 f F 1168(1)X 11 s 2 f F 4208(x)Y 1 f F 1254(,)X 2 f F 1320(x)X 9 f F 1396(\254)X 2 f F 1505(T)X 8 s 9 f F 1591 4181(-)N 2 f F 1626(T)X 11 s F 1673 4208(x)N 1 f F 1727(,)X 2 f F 1793(x)X 9 f F 1869(\254)X 2 f F 1978(T)X 9 f F 1994 4201 MXY (rn)96 500 oc 8 s F 2064 4181(-)N 2 f F 2099(T)X 11 s F 2146 4208(x)N 555 4512(T)N 1 f F 645(is)X 730(working)X 1049(precision,)X 2 f F 1420(x)X 1 f F 1500(is)X 1585(extended)X 1929(precision)X 2278(and)X 2431(the)X 2565(computation)X 3033(of)X 2 f F 3131(x)X 1 f F 3210(is)X 3294(to)X 3388(be)X 3496(performed)X 3887(in)X 3981(extended)X 555 4640(precision.)N 755 4816(For)N 899(the)X 1029(rank-one)X 1363(and)X 1512(rank-two)X 1851(updates)X 2 f F 862 5120(A)N 9 f F 953(\254)X 1062(a)X 2 f F 1117(xy)X 8 s F 1232 5093(T)N 11 s 9 f F 1301 5120(+)N 2 f F 1371(A)X 1 f F 1440(,)X 2 f F 1506(A)X 9 f F 1597(\254)X 1706(a)X 2 f F 1761(xy)X 9 f F 1806 5135 MXY (rn)96 500 oc 8 s 2 f F 1876 5093(T)N 11 s 9 f F 1945 5120(+)N 2 f F 2015(A)X 1 f F 2084(,)X 2 f F 862 5296(H)N 9 f F 962(\254)X 1071(a)X 2 f F 1126(xx)X 9 f F 1171 5311 MXY (rn)96 500 oc 8 s 2 f F 1241 5269(T)N 11 s 9 f F 1310 5296(+)N 2 f F 1380(H)X 1 f F 1458(,)X 2 f F 1524(H)X 9 f F 1624(\254)X 1733(a)X 2 f F 1788(xy)X 9 f F 1833 5311 MXY (rn)96 500 oc 8 s 2 f F 1903 5269(T)N 11 s 9 f F 1972 5296(+)N 2042(a)X 2046 5289 MXY (rn)96 500 oc 2049 MX (rn)96 500 oc 2 f F 2097 5296(yx)N 9 f F 2142 5311 MXY (rn)96 500 oc 8 s 2 f F 2212 5269(T)N 11 s 9 f F 2281 5296(+)N 2 f F 2351(H)X 1 f F 2429(,)X 9 f F 555 5600(a)N 1 f F 610(,)X 2 f F 665(A)X 1 f F 734(,)X 789(and)X 2 f F 949(H)X 1 f F 1060(are)X 1200(working)X 1526(precision,)X 2 f F 1903(x)X 1 f F 1989(and)X 2 f F 2148(y)X 1 f F 2234(are)X 2373(extended)X 2723(precision)X 3078(and)X 3237(the)X 3377(computation)X 3851(is)X 3942(to)X 4043(be)X 4158(per-)X 555 5728(formed)N 831(in)X 922(extended)X 1262(precision.)X %%Page: 17 19 17 p 11 s 0 xH 0 xS 1 f F 2332 392(-)N 2383(17)X 2493(-)X 555 704(Calls)N 759(to)X 850(SSBR)X 1088(can)X 1232(be)X 1337(achieved)X 1672(by)X 621 960(KN)N 769(=)X 841(MIN\(K+1,)X 1241(N-L+1\))X 621 1088(IF)N 721(\(UPLO)X 1001(.EQ.)X 1184('U'\))X 1356(THEN)X 687 1216(CALL)N 939(SSYR\('U',)X 1353(KN,)X 1523(ALPHA,)X 1859(X,)X 1966(INCX,)X 2224(A\(K+1,)X 2517(L\),)X 2644(MAX\(1,)X 2965(LDA-1\)\))X 621 1344(ELSE)N 687 1472(CALL)N 939(SSYR\('L',)X 1344(KN,)X 1514(ALPHA,)X 1850(X,)X 1957(INCX,)X 2215(A\(1,)X 2395(L\),)X 2522(MAX\(1,)X 2843(LDA-1\)\))X 621 1600(ENDIF)N 555 1984(and)N 704(similarly)X 1041(for)X 1165(calls)X 1349(to)X 1440(SSBR2.)X %%Page: 16 18 16 p 11 s 0 xH 0 xS 1 f F 2332 392(-)N 2383(16)X 2493(-)X 3 f F 555 704(Appendix)N 944(A)X 1 f F 755 880(In)N 864(this)X 1027(appendix)X 1385(we)X 1522(illustrate)X 1867(how)X 2053(to)X 2157(use)X 2309(the)X 2452(full)X 2610(matrix)X 2876(update)X 3146(routines)X 3465(to)X 3569(obtain)X 3825(rank-one)X 4172(and)X 555 1008(rank-two)N 896(updates)X 1189(to)X 1282(band)X 1477(matrices.)X 1822(We)X 1968(assume)X 2251(that)X 2407(the)X 2538(vectors)X 2815(x)X 2882(and)X 3032(y)X 3099(are)X 3229(such)X 3413(that)X 3569(no)X 3680(fill-in)X 3905(occurs)X 4157(out-)X 555 1136(side)N 730(the)X 871(band,)X 1096(in)X 1197(which)X 1444(case)X 1627(the)X 1767(update)X 2034(affects)X 2300(only)X 2489(a)X 2560(full)X 2715(rectangle)X 3070(within)X 3328(the)X 3468(band)X 3671(matrix)X 3934(A.)X 4051(This)X 4240(is)X 555 1264(illustrated)N 942(in)X 1044(Fig.)X 1217(A.1)X 1379(for)X 1513(the)X 1653(case)X 1836(where)X 2 f F 2082(m)X 9 f F 2160(=)X 2 f F 2208(n)X 9 f F 2267(=)X 1 f F 2315(9,)X 2 f F 2413(kl)X 9 f F 2492(=)X 1 f F 2540(2,)X 2 f F 2638(ku)X 9 f F 2736(=)X 1 f F 2784(3)X 2860(and)X 3019(the)X 3159(update)X 3426(commences)X 3874(in)X 3975(row)X 4143(\(and)X 555 1392(column\))N 2 f F 871(l)X 9 f F 911(=)X 1 f F 959(3.)X 569 1648(\()N 678(*)X 852(*)X 1026(*)X 1200(*)X 2193(\))X 2425(\()X 2534(0)X 2657(\))X 2715(\()X 2824(0)X 2998(0)X 3172(*)X 3346(*)X 3520(*)X 3694(*)X 3868(0)X 4042(0)X 4216(0)X 4339(\))X 569 1776(\()N 678(*)X 852(*)X 1026(*)X 1084(_)X 1142(_)X 1200(*)X 1258(_)X 1316(_)X 1374(*)X 1432(_)X 1490(_)X 2193(\))X 2425(\()X 2534(0)X 2657(\))X 569 1904(\()N 678(*)X 852(*)X 981(|)X 1026(*)X 1200(*)X 1374(*)X 1548(*)X 1619(|)X 2193(\))X 2425(\()X 2534(*)X 2657(\))X 569 2032(\()N 852(*)X 981(|)X 1026(*)X 1200(*)X 1374(*)X 1548(*)X 1619(|)X 1722(*)X 2193(\))X 2425(\()X 2534(*)X 2657(\))X 569 2160(\()N 981(|)X 1026(*)X 1084(_)X 1142(_)X 1200(*)X 1258(_)X 1316(_)X 1374(*)X 1432(_)X 1490(_)X 1548(*)X 1619(|)X 1722(*)X 1896(*)X 2193(\))X 2299(+)X 2425(\()X 2534(*)X 2657(\))X 569 2288(\()N 1200(*)X 1374(*)X 1548(*)X 1722(*)X 1896(*)X 2070(*)X 2193(\))X 2425(\()X 2534(0)X 2657(\))X 569 2416(\()N 1374(*)X 1548(*)X 1722(*)X 1896(*)X 2070(*)X 2193(\))X 2425(\()X 2534(0)X 2657(\))X 569 2544(\()N 1548(*)X 1722(*)X 1896(*)X 2070(*)X 2193(\))X 2425(\()X 2534(0)X 2657(\))X 569 2672(\()N 1722(*)X 1896(*)X 2070(*)X 2193(\))X 2425(\()X 2534(0)X 2657(\))X 2 f F 2263 2976(A)N 9 f F 2354(+)X 2 f F 2424(xy)X 8 s F 2539 2949(T)N 11 s 1 f F 2236 3280(Figure)N 2488(A.1)X 555 3536(We)N 709(see)X 853(that)X 1018(the)X 1158(update)X 1425(affects)X 1691(only)X 1880(that)X 2045(part)X 2214(of)X 2319(A)X 2414(indicated)X 2770(by)X 2890(the)X 3030(dotted)X 3283(lines,)X 3503(that)X 3667(is,)X 3779(the)X 3918(\()X 2 f F 3947(kl)X 1 f F 4057(+1\))X 4211(by)X 555 3664(\()N 2 f F 584(ku)X 1 f F 667(+1\))X 812(part)X 971(of)X 2 f F 1066(A)X 1 f F 1157(starting)X 1444(at)X 2 f F 1530(a)X 8 s F 3679(ll)Y 11 s 1 f F 1621 3664(.)N 555 3923(The)N 718(routines)X 1028(that)X 1187(we)X 1315(could)X 1537(have)X 1729(included)X 2059(are)X 2192(_GBR,)X 2465(_SBR,)X 2724(and)X 2877(_SBR2)X 3158(\(in)X 3282(the)X 3416(complex)X 3746(case)X 3922(_HBR)X 4172(and)X 555 4051(_HBR2\).)N 897(Their)X 1110(argument)X 1465(lists)X 1630(could)X 1848(have)X 2036(been)X 621 4307(_GBR)N 868(\()X 919(M,)X 1041(N,)X 1148(KL,)X 1309(KU,)X 1479(L,)X 1577(ALPHA,)X 1913(X,)X 2020(INCX,)X 2278(Y,)X 2385(INCY,)X 2643(A,)X 2750(LDA)X 2952(\))X 621 4435(_SBR)N 854(\()X 905(UPLO,)X 1178(N,)X 1285(K,)X 1392(L,)X 1490(ALPHA,)X 1826(X,)X 1933(INCX,)X 2191(A,)X 2298(LDA)X 2500(\))X 621 4563(_SBR2)N 898(\()X 949(UPLO,)X 1222(N,)X 1329(K,)X 1436(L,)X 1534(ALPHA,)X 1870(X,)X 1977(INCX,)X 2235(Y,)X 2342(INCY,)X 2600(A,)X 2707(LDA)X 2909(\))X 555 4819(where)N 796(the)X 931(argument)X 1291(L)X 1372(denotes)X 1668(the)X 1803(starting)X 2095(row)X 2258(and)X 2412(column)X 2704(for)X 2833(the)X 2967(update)X 3228(and)X 3381(the)X 3515(elements)X 2 f F 3855(x)X 8 s F 3894 4834(l)N 11 s 1 f F 3949 4819(and)N 2 f F 4102(y)X 8 s F 4141 4834(l)N 11 s 1 f F 4170 4819(,)N 4218(of)X 555 4950(the)N 685(vectors)X 2 f F 961(x)X 1 f F 1037(and)X 2 f F 1186(y)X 1 f F 1240(,)X 1284(are)X 1413(in)X 1504(elements)X 1840(X\(1\))X 2027(and)X 2176(Y\(1\))X 2363(of)X 2458(the)X 2588(arrays)X 2824(X)X 2909(and)X 3058(Y.)X 555 5206(Calls)N 759(to)X 850(SGBR)X 1102(can)X 1246(be)X 1351(achieved)X 1686(by)X 577 5462(KM)N 740(=)X 812(MIN)X 1004(\(KL+1,)X 1288(M-L+1\))X 577 5590(KN)N 725(=)X 797(MIN)X 989(\(KU+1,)X 1282(N-L+1\))X 577 5718(CALL)N 829(SGER)X 1076(\(KM,)X 1290(KN,)X 1460(ALPHA,)X 1796(X,)X 1903(INCX,)X 2161(Y,)X 2268(INCY,)X 2526(A\(KU+1,)X 2882(L\),)X 3009(MAX\(KM,)X 3427(LDA-1\)\))X %%Page: 15 17 15 p 11 s 0 xH 0 xS 2 f F 1 f F 2332 392(-)N 2383(15)X 2493(-)X 2 f F 755 704(High-Performance)N 1441(Computers,)X 1 f F 1871(Linear)X 2123(Algebra)X 2428(and)X 2577(Its)X 2687(Applications,)X 3182(77,)X 3314(pp)X 3424(113-136,)X 3761(\(1986\).)X 555 1008([6])N 755(J.J.)X 897(Dongarra,)X 1280(J.J.)X 1422(Du)X 1558(Croz,)X 1780(S.)X 1880(Hammarling,)X 2377(R.J.)X 2543(Hanson,)X 2 f F 2862(A)X 2945(Proposal)X 3297(for)X 3429(an)X 3546(Extended)X 3903(Set)X 4040(of)X 4138(For-)X 755 1136(tran)N 924(Basic)X 1142(Linear)X 1399(Algebra)X 1705(Subprograms,)X 1 f F 2222(ACM)X 2444(SIGNUM)X 2811(Newsletter,)X 3236(vol.)X 3393(20,)X 3525(no.)X 3657(1,)X 3745(1985.)X 555 1440([7])N 755(J.J.)X 894(Dongarra,)X 1274(J.J.)X 1413(Du)X 1546(Croz,)X 1765(S.)X 1862(Hammarling,)X 2356(R.J.)X 2519(Hanson,)X 2 f F 2835(Model)X 3086(Implementation)X 3665(and)X 3823(Test)X 3996(Package)X 755 1568(for)N 880(the)X 1010(Extended)X 1360(BLAS,)X 1 f F 1605(Argonne)X 1934(National)X 2260(Laboratory)X 2673(Report,)X 2957(ANL)X 3159(MCS-TM)X 3528(81,)X 3660(August)X 3936(1986.)X 555 1872([8])N 755(B.S.)X 946(Garbow,)X 1289(J.M.)X 1484(Boyle,)X 1756(J.J.)X 1907(Dongarra,)X 2299(C.B.)X 2500(Moler,)X 2 f F 2776(Matrix)X 3054(Eigensystem)X 3532(Routines)X 3879(-)X 3946(EISPACK)X 755 2000(Guide)N 992(Extension,)X 1 f F 1384(Lecture)X 1675(Notes)X 1902(in)X 1993(Computer)X 2368(Science,)X 2686(Vol.)X 2862(51,)X 2994(Springer-Verlag,)X 3609(Berlin,)X 3874(1977.)X 555 2304([9])N 755(C.)X 863(Lawson,)X 1189(R.)X 1296(Hanson,)X 1612(D.)X 1723(Kincaid,)X 2050(and)X 2203(F.)X 2300(Krogh,)X 2572(``Basic)X 2852(Linear)X 3108(Algebra)X 3417(Subprograms)X 3912(for)X 4040(Fortran)X 755 2432(Usage,'')N 2 f F 1076(ACM)X 1284(Transactions)X 1766(on)X 1876(Mathematical)X 2388(Software)X 3 f F 2724(5)X 1 f F 2790(\(1979\),)X 3068(308-323.)X 555 2736([10])N 755(C.)X 864(Lawson,)X 1192(R.)X 1301(Hanson,)X 1619(D.)X 1732(Kincaid,)X 2061(and)X 2216(F.)X 2315(Krogh,)X 2589(``Algorithm)X 3042(539:)X 3226(Basic)X 3449(Linear)X 3706(Algebra)X 4016(Subpro-)X 755 2864(grams)N 992(for)X 1116(Fortran)X 1397(Usage,'')X 2 f F 1718(ACM)X 1926(Transactions)X 2408(on)X 2518(Mathematical)X 3030(Software)X 3 f F 3366(5)X 1 f F 3432(\(1979\),)X 3710(324-325.)X 555 3168([11])N 755(B.T.)X 936(Smith,)X 1194(J.M.)X 1374(Boyle,)X 1631(J.J.)X 1767(Dongarra,)X 2144(B.S.)X 2320(Garbow,)X 2647(Y.)X 2755(Ikebe,)X 2995(V.C.)X 3184(Klema,)X 3464(and)X 3614(C.B.)X 3799(Moler,)X 2 f F 4059(Matrix)X 755 3296(Eigensystem)N 1223(Routines)X 1560(-)X 1617(EISPACK)X 1998(Guide,)X 1 f F 2263(Lecture)X 2560(Notes)X 2793(in)X 2890(Computer)X 3271(Science,)X 3595(Vol.)X 3777(6,)X 3871(2nd)X 4031(edition,)X 755 3424(Springer-Verlag,)N 1370(Berlin,)X 1635(1976.)X 555 3728([12])N 2 f F 755(IEEE)X 981(Standard)X 1339(for)X 1477(Binary)X 1752(Floating-Point)X 2313(Arithmetic,)X 1 f F 2743(ANSI/IEEE)X 3198(Std)X 3351(754-1985,)X 3745(The)X 3917(IEEE)X 4143(Inc.,)X 755 3856(New)N 942(York,)X 1166(\(1985\).)X %%Page: 14 16 14 p 11 s 0 xH 0 xS 1 f F 2332 392(-)N 2383(14)X 2493(-)X 555 704(the)N 694(matrix)X 956(stored)X 1202(in)X 1302(rows)X 1503(of)X 1607(the)X 1746(array,)X 1979(and)X 2137(diagonals)X 2506(of)X 2610(the)X 2749(matrix)X 3011(stored)X 3257(in)X 3357(columns)X 3687(of)X 3791(the)X 3930(array.)X 4162(The)X 555 832(latter)N 772(scheme)X 1071(has)X 1223(the)X 1366(advantage)X 1758(that)X 1926(a)X 2000(band)X 2206(matrix-vector)X 2721(product)X 3025(of)X 3133(the)X 3276(form)X 2 f F 3482(y)X 9 f F 3558(\254)X 3667(a)X 2 f F 3722(Ax)X 9 f F 3852(+)X 3922(b)X 2 f F 3970(y)X 1 f F 4059(can)X 4216(be)X 555 960(computed)N 935(using)X 1158(long)X 1347(vectors)X 1633(\(the)X 1802(diagonals)X 2172(of)X 2277(the)X 2417(matrix\))X 2709(stored)X 2956(in)X 3057(contiguous)X 3476(elements,)X 3844(and)X 4003(hence)X 4240(is)X 555 1088(much)N 775(more)X 980(efficient)X 1298(on)X 1410(some)X 1620(machines)X 1977(\(e.g.)X 2157(CDC)X 2362(Cyber)X 2601(205\))X 2786(than)X 2962(the)X 3094(first)X 3260(scheme.)X 3570(However)X 3914(other)X 4118(com-)X 555 1216(putations)N 906(involving)X 1272(band)X 1469(matrices,)X 1816(such)X 2003(as)X 2 f F 2102(x)X 9 f F 2178(\254)X 2 f F 2287(Tx)X 1 f F 2390(,)X 2 f F 2438(x)X 9 f F 2514(\254)X 2 f F 2623(T)X 8 s 9 f F 2709 1189(-)N 1 f F 2744(1)X 11 s 2 f F 1216(x)Y 1 f F 2856(and)X 2 f F 3009(LU)X 1 f F 3162(and)X 2 f F 3315(U)X 8 s F 3415 1189(T)N 11 s F 3462 1216(U)N 1 f F 3566(factorization,)X 4060(cannot)X 555 1344(be)N 666(organized)X 1041(`by)X 1186(diagonals';)X 1606(instead)X 1884(the)X 2020(computation)X 2490(sweeps)X 2771(along)X 2994(the)X 3129(band,)X 3349(and)X 3503(the)X 3638(LINPACK)X 4045(storage)X 555 1472(scheme)N 851(has)X 1000(the)X 1140(advantage)X 1529(of)X 1634(reducing)X 1974(the)X 2114(number)X 2415(of)X 2519(page)X 2716(swaps)X 2961(and)X 3119(allowing)X 3459(contiguous)X 3877(vectors)X 4162(\(the)X 555 1600(columns)N 876(of)X 971(the)X 1101(matrix\))X 1383(to)X 1474(be)X 1579(used.)X 755 1776(We)N 916(considered)X 1336(the)X 1483(possibility)X 1891(of)X 2003(generalizing)X 2478(the)X 2625(rank-1)X 2893(and)X 3059(rank-2)X 3327(updates)X 3634(to)X 3741(rank-k)X 4008(updates.)X 555 1904(Rank-k)N 842(updates)X 1139(with)X 2 f F 1323(k)X 1399(>)X 1 f F 1480(1)X 1551(\(but)X 2 f F 1720(k)X 1796(<)X 1829(<)X 1910(n)X 1 f F 1969(\))X 2025(can)X 2174(achieve)X 2470(significantly)X 2939(better)X 3167(performance)X 3638(on)X 3753(some)X 3966(machines)X 555 2032(than)N 740(rank-1)X 1002([5].)X 1159(But)X 1320(to)X 1422(take)X 1602(advantage)X 1992(of)X 2098(this)X 2259(usually)X 2547(requires)X 2863(complicating)X 3358(the)X 3498(calling)X 3771(algorithm;)X 4172(and)X 555 2160(moreover)N 918(rank-k)X 1172(updates)X 1466(with)X 2 f F 1648(k)X 9 f F 1724 2143(~)N 1724 2165(~)N 2 f F 1794 2161(n)N 1 f F 1878(would)X 2123(allow)X 2344(an)X 2452(even)X 2643(higher)X 2893(level)X 3090(operation)X 3448(such)X 3634(as)X 3732(matrix)X 3988(multipli-)X 555 2288(cation)N 793(`in)X 913(by)X 1023(the)X 1153(back)X 1341(door'.)X 1597(We)X 1741(prefer)X 1972(to)X 2063(keep)X 2251(to)X 2342(a)X 2403(clean)X 2611(concept)X 2907(of)X 3002(genuine)X 3303(matrix-vector)X 3805(operations.)X 3 f F 555 2672(8.)N 665(Acknowledgements)X 1 f F 755 2848(A)N 847(draft)X 1042(proposal)X 1374(that)X 1536(led)X 1673(to)X 1771(this)X 1928(specification)X 2408(was)X 2573(discussed)X 2939(at)X 3032(the)X 3169(Parvec)X 3437(IV)X 3558(Workshop)X 3952(organized)X 555 2976(by)N 666(John)X 855(Rice)X 1040(at)X 1127(Purdue)X 1399(University)X 1794(on)X 1904(October)X 2209(29-30,)X 2458(1984)X 2656(and)X 2805(at)X 2891(various)X 3172(SIAM)X 3413(conferences.)X 3898(We)X 4042(wish)X 4230(to)X 555 3104(thank)N 779(all)X 896(the)X 1032(participants)X 1472(at)X 1564(the)X 1700(workshop)X 2074(and)X 2229(meetings)X 2575(for)X 2704(their)X 2893(comments,)X 3305(discussions,)X 3755(and)X 3909(encourage-)X 555 3232(ment,)N 776(as)X 871(well)X 1045(as)X 1140(the)X 1270(many)X 1488(people)X 1745(who)X 1918(have)X 2106(sent)X 2270(us)X 2370(comments)X 2755(separately.)X 3 f F 555 3616(13.)N 709(References)X 1 f F 555 3920([1])N 755(D.S.)X 948(Dodson)X 1258(and)X 1422(J.G.)X 1600(Lewis,)X 1874("Issues)X 2161(relating)X 2467(to)X 2572(extension)X 2946(of)X 3055(the)X 3199(Basic)X 3431(Linear)X 3697(Algebra)X 4016(Subpro-)X 755 4048(grams",)N 1050(ACM)X 1272(SIGNUM)X 1639(Newsletter,)X 2064(vol)X 2199(20,)X 2331(no)X 2441(1,)X 2529(\(1985\),)X 2807(2-18.)X 555 4352([2])N 755(J.J.)X 902(Dongarra)X 1268(and)X 1429(S.C.)X 1615(Eisenstat,)X 1990(``Squeezing)X 2449(the)X 2591(Most)X 2806(out)X 2953(of)X 3060(an)X 3177(Algorithm)X 3579(in)X 3682(CRAY)X 3960(Fortran,'')X 2 f F 755 4480(ACM)N 963(Transactions)X 1445(on)X 1555(Mathematical)X 2067(Software,)X 1 f F 2425(Vol.)X 2601(10,)X 2733(No.)X 2884(3,)X 2972(\(1984\),)X 3250(221-230.)X 555 4784([3])N 755(J.J.)X 893(Dongarra,)X 2 f F 1271(Increasing)X 1672(the)X 1805(Performance)X 2289(of)X 2383(Mathematical)X 2898(Software)X 3237(through)X 3541(High-Level)X 3962(Modular-)X 755 4912(ity.)N 1 f F 915(Proceedings)X 1372(of)X 1472(the)X 1607(Sixth)X 1821(International)X 2299(Symposium)X 2748(on)X 2862(Computing)X 3286(Methods)X 3620(in)X 3715(Engineering)X 4172(and)X 755 5040(Applied)N 1061(Sciences.)X 1435(\(Versailles,)X 1860(France\).)X 2172(North-Holland)X 2712(\(1984\),)X 2990(pp)X 3100(239-248.)X 555 5344([4])N 755(J.J.)X 893(Dongarra,)X 1272(J.R.)X 1435(Bunch,)X 1713(C.B.)X 1901(Moler,)X 2164(and)X 2317(G.W.)X 2533(Stewart,)X 2 f F 2850(LINPACK)X 3239(Users')X 3498(Guide,)X 1 f F 3761(SIAM)X 4005(Publica-)X 755 5472(tions,)N 971(Philadelphia,)X 1457(1979.)X 555 5776([5])N 755(J.J.)X 898(Dongarra,)X 1281(L.)X 1387(Kaufman,)X 1766(and)X 1923(S.)X 2024(Hammarling,)X 2 f F 2522(Squeezing)X 2909(the)X 3047(Most)X 3253(out)X 3396(of)X 3495(Eigenvalue)X 3922(Solvers)X 4211(on)X %%Page: 13 15 13 p 11 s 0 xH 0 xS 1 f F 2332 392(-)N 2383(13)X 2493(-)X 555 704(routines)N 865(implemented)X 1353(efficiently)X 1742(over)X 1924(a)X 1988(wide)X 2184(range)X 2404(of)X 2502(machines,)X 2882(because)X 3185(it)X 3260(would)X 3505(place)X 3716(too)X 3854(heavy)X 4089(a)X 4153(bur-)X 555 832(den)N 711(on)X 828(implementors.)X 1365(On)X 1501(the)X 1637(other)X 1846(hand,)X 2067(to)X 2164(restrict)X 2437(the)X 2573(scope)X 2801(further)X 3068(would)X 3316(place)X 3530(too)X 3671(narrow)X 3947(a)X 4014(limit)X 4211(on)X 555 960(the)N 685(potential)X 1017(applications)X 1466(of)X 1561(the)X 1691(level)X 1885(2)X 1951(BLAS.)X 755 1136(We)N 904(have)X 1097(adhered)X 1402(to)X 1498(the)X 1633(conventions)X 2086(of)X 2186(the)X 2321(level)X 2520(1)X 2591(BLAS)X 2843(in)X 2939(allowing)X 3274(an)X 3383(increment)X 3762(argument)X 4121(to)X 4216(be)X 555 1264(associated)N 948(with)X 1136(each)X 1328(vector,)X 1601(so)X 1710(that)X 1874(a)X 1944(vector)X 2195(could,)X 2444(for)X 2577(example,)X 2929(be)X 3043(a)X 3113(row)X 3280(of)X 3384(a)X 3454(matrix.)X 3759(This)X 3946(increment)X 555 1392(may)N 738(be)X 852(negative,)X 1204(in)X 1304(which)X 1550(case)X 1732(the)X 1871(elements)X 2216(of)X 2319(the)X 2457(vectors)X 2741(are)X 2878(taken)X 3099(in)X 3198(reverse)X 3481(order.)X 3740(This)X 3927(affects)X 4191(the)X 555 1520(definition)N 940(of)X 1054(the)X 1203(operation.)X 1621(For)X 1784(example,)X 2145(if)X 2 f F 2239(m)X 9 f F 2339(=)X 2 f F 2409(n)X 9 f F 2490(=)X 1 f F 2560(3)X 2644(and)X 2811(INCX)X 3065(and)X 3232(INCY)X 3486(are)X 3633(both)X 3830(negative,)X 4191(the)X 555 1648(_GEMV)N 879(routines)X 1185(with)X 1364(TRANS='N')X 1845(perform)X 2150(the)X 2280(operation:)X 9 f F 1557 1807 MXY (lt)139 416 oc 1557 1895 MXY (bv)136 416 oc 1557 1983 MXY (bv)136 416 oc 1557 2071 MXY (lb)140 416 oc 2 f F 1616 2018(y)N 8 s 1 f F 1670 2033(1)N 11 s 2 f F 1620 1937(y)N 8 s 1 f F 1674 1952(2)N 11 s 2 f F 1624 1856(y)N 8 s 1 f F 1678 1871(3)N 11 s 9 f F 1747 1807 MXY (rt)141 416 oc 1747 1895 MXY (bv)136 416 oc 1747 1983 MXY (bv)136 416 oc 1747 2071 MXY (rb)142 416 oc 1806 1937(\254)N 1915(a)X 2007 1763 MXY (lt)139 416 oc 2007 1851 MXY (bv)136 416 oc 2007 1939 MXY (bv)136 416 oc 2007 2027 MXY (bv)136 416 oc 2007 2115 MXY (lb)140 416 oc 2 f F 2066 2045(a)N 8 s 1 f F 2125 2060(31)N 11 s 2 f F 2070 1937(a)N 8 s 1 f F 2129 1952(21)N 11 s 2 f F 2074 1829(a)N 8 s 1 f F 2133 1844(11)N 11 s 2 f F 2241 2045(a)N 8 s 1 f F 2300 2060(32)N 11 s 2 f F 2245 1937(a)N 8 s 1 f F 2304 1952(22)N 11 s 2 f F 2249 1829(a)N 8 s 1 f F 2308 1844(12)N 11 s 2 f F 2416 2045(a)N 8 s 1 f F 2475 2060(33)N 11 s 2 f F 2420 1937(a)N 8 s 1 f F 2479 1952(23)N 11 s 2 f F 2424 1829(a)N 8 s 1 f F 2483 1844(13)N 11 s 9 f F 2584 1763 MXY (rt)141 416 oc 2584 1851 MXY (bv)136 416 oc 2584 1939 MXY (bv)136 416 oc 2584 2027 MXY (bv)136 416 oc 2584 2115 MXY (rb)142 416 oc 2680 1807 MXY (lt)139 416 oc 2680 1895 MXY (bv)136 416 oc 2680 1983 MXY (bv)136 416 oc 2680 2071 MXY (lb)140 416 oc 2 f F 2739 2018(x)N 8 s 1 f F 2793 2033(1)N 11 s 2 f F 2743 1937(x)N 8 s 1 f F 2797 1952(2)N 11 s 2 f F 2747 1856(x)N 8 s 1 f F 2801 1871(3)N 11 s 9 f F 2870 1807 MXY (rt)141 416 oc 2870 1895 MXY (bv)136 416 oc 2870 1983 MXY (bv)136 416 oc 2870 2071 MXY (rb)142 416 oc 2929 1937(+)N 2999(b)X 3062 1807 MXY (lt)139 416 oc 3062 1895 MXY (bv)136 416 oc 3062 1983 MXY (bv)136 416 oc 3062 2071 MXY (lb)140 416 oc 2 f F 3121 2018(y)N 8 s 1 f F 3175 2033(1)N 11 s 2 f F 3125 1937(y)N 8 s 1 f F 3179 1952(2)N 11 s 2 f F 3129 1856(y)N 8 s 1 f F 3183 1871(3)N 11 s 9 f F 3252 1807 MXY (rt)141 416 oc 3252 1895 MXY (bv)136 416 oc 3252 1983 MXY (bv)136 416 oc 3252 2071 MXY (rb)142 416 oc 2 f F 3289 1937(.)N 1 f F 555 2240(However,)N 922(in)X 1015(contrast)X 1318(to)X 1411(the)X 1543(level)X 1739(1)X 1807(BLAS)X 2055(we)X 2180(do)X 2291(not)X 2427(allow)X 2646(INCX)X 2883(or)X 2979(INCY)X 3216(to)X 3308(be)X 3414(zero.)X 3632(This)X 3812(feature)X 4079(would)X 555 2368(have)N 751(little)X 945(usefulness,)X 1363(would)X 1613(complicate)X 2031(implementation)X 2617(of)X 2720(the)X 2858(routines)X 3172(on)X 3290(many)X 3516(vector)X 3766(machines,)X 4150(and,)X 555 2496(when)N 767(the)X 897(associated)X 1281(vector)X 1523(is)X 1604(an)X 1709(output)X 1957(vector,)X 2221(its)X 2327(meaning)X 2653(is)X 2734(ambiguous.)X 755 2672(As)N 877(noted)X 1098(earlier,)X 1370(corresponding)X 1898(to)X 1992(the)X 2125(real)X 2282(routine)X 2557(SGER)X 2807(we)X 2934(specify)X 3213(two)X 3369(complex)X 3697(routines)X 4005(CGERC)X 555 2800(\(for)N 2 f F 719(A)X 9 f F 810(\254)X 919(a)X 2 f F 974(xy)X 9 f F 1019 2815 MXY (rn)96 500 oc 8 s 2 f F 1089 2773(T)N 11 s 9 f F 1158 2800(+)N 2 f F 1228(A)X 1 f F 1297(\))X 1359(and)X 1519(CGERU)X 1849(\(for)X 2 f F 2012(A)X 9 f F 2103(\254)X 2212(a)X 2 f F 2267(xy)X 8 s F 2382 2773(T)N 11 s 9 f F 2451 2800(+)N 2 f F 2521(A)X 1 f F 2590(\).)X 2695(Both)X 2899(are)X 3038(frequently)X 3432(required.)X 3779(An)X 3918(alternative)X 555 2928(would)N 807(be)X 922(to)X 1023(provide)X 1324(a)X 1395(single)X 1638(complex)X 1974(routine)X 2256(CGER)X 2523(with)X 2712(an)X 2827(option)X 3085(argument;)X 3474(however)X 3807(this)X 3966(argument)X 555 3056(would)N 804(have)X 999(become)X 1302(redundant)X 1683(in)X 1781(the)X 1918(real)X 2079(routine)X 2358(SGER.)X 2634(Rather)X 2898(than)X 3079(have)X 3274(redundant)X 3654(arguments,)X 4071(or)X 4172(dif-)X 555 3184(ferent)N 792(argument)X 1156(lists)X 1330(for)X 1463(the)X 1602(real)X 1765(and)X 1923(complex)X 2258(routines,)X 2595(we)X 2728(have)X 2925(chosen)X 3200(two)X 3363(distinct)X 3655(complex)X 3990(routines;)X 555 3312(they)N 729(are)X 858(analogous)X 1237(to)X 1328(the)X 1458(level)X 1652(1)X 1718(BLAS)X 1965(CDOTC)X 2285(\()X 2 f F 2314(c)X 9 f F 2390(\254)X 2 f F 2499(c)X 9 f F 2575(+)X 2 f F 2645(x)X 9 f F 2651 3327 MXY (rn)96 500 oc 8 s 2 f F 2721 3285(T)N 11 s F 2768 3312(y)N 1 f F 2822(\))X 2873(and)X 3022(CDOTU)X 3346(\()X 2 f F 3375(c)X 9 f F 3451(\254)X 2 f F 3560(c)X 9 f F 3636(+)X 2 f F 3706(x)X 8 s F 3782 3285(T)N 11 s F 3829 3312(y)N 1 f F 3883(\).)X 755 3488(Note)N 950(that)X 1107(no)X 1219(check)X 1448(has)X 1589(been)X 1779(included)X 2107(for)X 2233(singularity,)X 2657(and)X 2808(near)X 2983(singularity,)X 3406(in)X 3498(the)X 3629(triangular)X 3995(equation)X 555 3616(solving)N 846(routines.)X 1205(The)X 1373(requirements)X 1864(for)X 1997(such)X 2189(a)X 2259(test)X 2412(depend)X 2696(upon)X 2902(the)X 3040(application)X 3463(and)X 3620(so)X 3728(we)X 3860(felt)X 4008(that)X 4171(this)X 555 3744(should)N 812(not)X 947(be)X 1052(included,)X 1400(but)X 1535(should)X 1792(instead)X 2064(be)X 2169(performed)X 2557(before)X 2803(calling)X 3066(the)X 3196(triangular)X 3561(solver.)X 755 3920(On)N 892(certain)X 1162(machines,)X 1547(which)X 1792(do)X 1910(not)X 2053(use)X 2200(the)X 2338(ASCII)X 2597(sequence)X 2949(on)X 3067(all)X 3186(of)X 3289(their)X 3481(Fortran)X 3769(systems,)X 4099(lower)X 555 4048(case)N 740(characters)X 1130(may)X 1316(not)X 1463(exist,)X 1686(so)X 1798(that)X 1965(the)X 2107(innocent)X 2444(looking)X 2747(argument)X 2 f F 3113(`t')X 1 f F 3196(,)X 3251(passed)X 3518(through)X 3825(the)X 3966(argument)X 555 4176(TRANS)N 871(for)X 1001(designating)X 1436(a)X 1503(transposed)X 1906(matrix,)X 2186(is)X 2272(not)X 2412(in)X 2508(the)X 2643(Fortran)X 2929(character)X 3278(set.)X 3425(Some)X 3653(UNIVAC)X 4020(systems)X 555 4304(do)N 667(not)X 804(have)X 994(a)X 1057(lower)X 1281(case)X 1456(representation)X 1979(using)X 2194(the)X 2326(`field)X 2541(data')X 2741(character)X 3087(set.)X 3231(On)X 3362(the)X 3494(CDC)X 3699(NOS-2)X 3970(system,)X 4260(a)X 555 4432(mechanism)N 985(is)X 1072(provided)X 1413(for)X 1543(a)X 1610(full)X 1761(128)X 1921(ASCII)X 2178(character)X 2527(set)X 2652(by)X 2767(using)X 2985(pairs)X 3183(of)X 3283(6-bit)X 3477(host)X 3651(characters)X 4034(for)X 4163(cer-)X 555 4560(tain)N 716(7-bit)X 911(ASCII)X 1167(characters.)X 1572(This)X 1756(means)X 2008(that)X 2168(there)X 2371(is)X 2457(a)X 2523(`2)X 2623(for)X 2752(1')X 2852(physical)X 3173(extension)X 3538(of)X 3638(the)X 3773(logical)X 4041(records)X 555 4688(that)N 735(contain)X 1020(lower)X 1245(case)X 1421(letters.)X 1684(This)X 1866(fact)X 2022(can)X 2168(hamper)X 2456(portability)X 2849(of)X 2946(codes)X 3170(written)X 3444(on)X 3556(ASCII)X 3809(machines)X 4166(that)X 555 4816(are)N 688(later)X 871(moved)X 1137(to)X 1232(CDC)X 1439(systems.)X 1766(The)X 1929(only)X 2112(safe)X 2279(way)X 2451(to)X 2546(proceed)X 2850(is)X 2934(to)X 3028(convert)X 3317(the)X 3450(transported)X 3871(text)X 4029(entirely)X 555 4944(into)N 724(the)X 863(Fortran)X 1153(character)X 1506(set.)X 1679(On)X 1817(the)X 1956(other)X 2168(hand)X 2370(we)X 2503(believe)X 2789(that)X 2953(users)X 3163(on)X 3281(ASCII)X 3540(character)X 3892(set)X 4020(systems)X 555 5072(may)N 731(wish)X 921(to)X 1014(treat)X 1195(upper)X 1419(and)X 1570(lower)X 1794(case)X 1969(letters)X 2209(as)X 2305(equivalent)X 2696(in)X 2788(meaning.)X 3159(If)X 3240(this)X 3391(is)X 3473(done,)X 3689(it)X 3762(means)X 4010(that)X 4166(text)X 555 5200(that)N 715(will)X 880(be)X 990(transported)X 1413(to)X 1509(machines)X 1869(of)X 1969(unknown)X 2322(types)X 2534(must)X 2732(have)X 2924(the)X 3058(ASCII)X 3313(set)X 3437(mapped)X 3742(into)X 3906(the)X 4040(Fortran)X 555 5328(character)N 899(set)X 1019(before)X 1265(the)X 1395(text)X 1550(is)X 1631(moved.)X 755 5504(The)N 927(band)X 1133(storage)X 1422(scheme)X 1721(used)X 1917(by)X 2040(the)X 2183(GB,)X 2362(HB,)X 2541(SB,)X 2706(and)X 2868(TB)X 3016(routines)X 3335(has)X 3486(columns)X 3819(of)X 3926(the)X 4068(matrix)X 555 5632(stored)N 795(in)X 889(columns)X 1213(of)X 1311(the)X 1444(array,)X 1671(and)X 1822(diagonals)X 2184(of)X 2281(the)X 2413(matrix)X 2668(stored)X 2907(in)X 3000(rows)X 3194(of)X 3291(the)X 3423(array.)X 3649(This)X 3830(is)X 3913(the)X 4045(storage)X 555 5760(scheme)N 845(used)X 1032(by)X 1146(LINPACK.)X 1574(An)X 1707(alternative)X 2106(scheme)X 2396(\(used)X 2612(in)X 2707(some)X 2919(EISPACK)X 3311([8,11])X 3549(routines\))X 3888(has)X 4031(rows)X 4226(of)X %%Page: 12 14 12 p 11 s 0 xH 0 xS 1 f F 2332 392(-)N 2383(12)X 2493(-)X 643 704(for)N 767(symmetric)X 1162(or)X 1257(Hermitian)X 1637(matrix)X 1890(in)X 1981(packed)X 2252(storage:)X 643 832(_SPR)N 866(\()X 917(UPLO,)X 1190(N,)X 1297(ALPHA,)X 1633(X,)X 1740(INCX,)X 1998(AP)X 2132(\))X 643 960(_HPR)N 880(\()X 931(UPLO,)X 1204(N,)X 1311(ALPHA,)X 1647(X,)X 1754(INCX,)X 2012(AP)X 2146(\))X 643 1216(Operation:)N 2 f F 862 1392(A)N 9 f F 953(\254)X 1062(a)X 2 f F 1117(xx)X 9 f F 1162 1407 MXY (rn)96 500 oc 8 s 2 f F 1232 1365(T)N 11 s 9 f F 1301 1392(+)N 2 f F 1371(A)X 1 f F 643 1568(for)N 767(real)X 921(symmetric)X 1316(matrices)X 1637(this)X 1787(is)X 1868(simply)X 2 f F 862 1744(A)N 9 f F 953(\254)X 1062(a)X 2 f F 1117(xx)X 8 s F 1232 1717(T)N 11 s 9 f F 1301 1744(+)N 2 f F 1371(A)X 1462(.)X 1 f F 555 2048(g\))N 672(Symmetric)X 1082(or)X 1177(Hermitian)X 1557(Rank-2)X 1838(Updates:)X 643 2304(for)N 767(a)X 828(symmetric)X 1223(or)X 1318(Hermitian)X 1698(matrix:)X 643 2432(_SYR2)N 924(\()X 975(UPLO,)X 1248(N,)X 1355(ALPHA,)X 1691(X,)X 1798(INCX,)X 2056(Y,)X 2163(INCY,)X 2421(A,)X 2528(LDA)X 2730(\))X 643 2560(_HER2)N 929(\()X 980(UPLO,)X 1253(N,)X 1360(ALPHA,)X 1696(X,)X 1803(INCX,)X 2061(Y,)X 2168(INCY,)X 2426(A,)X 2533(LDA)X 2735(\))X 643 2816(for)N 767(symmetric)X 1162(or)X 1257(Hermitian)X 1637(matrix)X 1890(in)X 1981(packed)X 2252(storage:)X 643 2944(_SPR2)N 910(\()X 961(UPLO,)X 1234(N,)X 1341(ALPHA,)X 1677(X,)X 1784(INCX,)X 2042(Y,)X 2149(INCY,)X 2407(AP)X 2541(\))X 643 3072(_HPR2)N 924(\()X 975(UPLO,)X 1248(N,)X 1355(ALPHA,)X 1691(X,)X 1798(INCX,)X 2056(Y,)X 2163(INCY,)X 2421(AP)X 2555(\))X 643 3328(Operation:)N 2 f F 862 3504(A)N 9 f F 953(\254)X 1062(a)X 2 f F 1117(xy)X 9 f F 1162 3519 MXY (rn)96 500 oc 8 s 2 f F 1232 3477(T)N 11 s 9 f F 1301 3504(+)N 1371(a)X 1375 3497 MXY (rn)96 500 oc 1378 MX (rn)96 500 oc 2 f F 1426 3504(yx)N 9 f F 1471 3519 MXY (rn)96 500 oc 8 s 2 f F 1541 3477(T)N 11 s 9 f F 1610 3504(+)N 2 f F 1680(A)X 1 f F 643 3808(for)N 767(real)X 921(symmetric)X 1316(matrices)X 1637(this)X 1787(is)X 1868(simply)X 2 f F 862 3984(A)N 9 f F 953(\254)X 1062(a)X 2 f F 1117(xy)X 8 s F 1232 3957(T)N 11 s 9 f F 1301 3984(+)N 1371(a)X 2 f F 1426(yx)X 8 s F 1541 3957(T)N 11 s 9 f F 1610 3984(+)N 2 f F 1680(A)X 1771(.)X 3 f F 555 4416(7.)N 665(Rationale)X 1 f F 755 4592(The)N 921(three)X 1126(basic)X 1336(matrix-vector)X 1845(operations)X 2241(chosen)X 2513(\(Section)X 2835(2\))X 2936(were)X 3134(obvious)X 3441(candidates)X 3841(because)X 4147(they)X 555 4720(occur)N 777(in)X 873(a)X 939(wide)X 1137(range)X 1358(of)X 1457(linear)X 1684(algebra)X 1969(applications,)X 2444(and)X 2597(they)X 2775(occur)X 2996(at)X 3086(the)X 3220(innermost)X 3599(level)X 3797(of)X 3896(many)X 4118(algo-)X 555 4848(rithms.)N 834(The)X 1002(hard)X 1189(decision)X 1514(was)X 1680(to)X 1779(restrict)X 2054(the)X 2192(scope)X 2422(only)X 2609(to)X 2708(these)X 2919(operations,)X 3338(since)X 3549(there)X 3755(are)X 3892(many)X 4118(other)X 555 4976(potential)N 896(candidates,)X 1321(such)X 1513(as)X 1617(matrix)X 1879(scaling)X 2160(and)X 2318(sequences)X 2705(of)X 2809(plane)X 3031(rotations.)X 3393(Similarly,)X 3775(we)X 3907(could)X 4133(have)X 555 5104(extended)N 902(the)X 1039(scope)X 1268(by)X 1385(applying)X 1723(the)X 1860(operations)X 2255(to)X 2352(other)X 2561(types)X 2775(of)X 2876(matrices)X 3203(such)X 3392(as)X 3493(complex)X 3825(symmetric)X 4226(or)X 555 5232(augmented)N 967(band)X 1163(matrices.)X 1509(We)X 1656(have)X 1847(aimed)X 2088(at)X 2177(a)X 2241(reasonable)X 2642(compromise)X 3103(between)X 3421(a)X 3484(much)X 3704(larger)X 3933(number)X 4226(of)X 555 5360(routines)N 861(each)X 1044(performing)X 1462(one)X 1611(type)X 1785(of)X 1880(operation)X 2235(\(e.g.)X 2 f F 2413(x)X 9 f F 2489(\254)X 2 f F 2598(L)X 8 s 9 f F 2684 5333(-)N 2 f F 2719(T)X 11 s F 2766 5360(x)N 1 f F 2820(\),)X 2893(and)X 3042(a)X 3103(smaller)X 3385(number)X 3676(of)X 3771(routines)X 4077(with)X 4256(a)X 555 5488(more)N 768(complicated)X 1232(set)X 1362(of)X 1467(options.)X 1781(There)X 2018(are)X 2157(in)X 2258(fact,)X 2444(in)X 2545(each)X 2737(precision,)X 3113(16)X 3232(real)X 3395(routines)X 3710(performing)X 4137(alto-)X 555 5616(gether)N 797(43)X 907(different)X 1232(operations,)X 1643(and)X 1792(17)X 1902(complex)X 2228(routines)X 2534(performing)X 2952(58)X 3062(different)X 3387(operations.)X 755 5792(We)N 918(feel)X 1091(that)X 1265(to)X 1374(extend)X 1649(the)X 1797(scope)X 2037(further)X 2316(would)X 2576(significantly)X 3058(reduce)X 3332(the)X 3480(chances)X 3798(of)X 3911(having)X 4191(the)X %%Page: 11 13 11 p 11 s 0 xH 0 xS 2 f F 1 f F 2332 392(-)N 2383(11)X 2493(-)X 753 704(if)N 2 f F 829(TRANS)X 9 f F 1126(=)X 1 f F 1218(`C',)X 2 f F 1467(x)X 9 f F 1543(\254)X 2 f F 1652(T)X 9 f F 1668 697 MXY (rn)96 500 oc 8 s 2 f F 1738 677(T)N 11 s F 1785 704(x)N 1 f F 555 1088(d\))N 672(Triangular)X 1066(equation)X 1392(solvers)X 643 1344(for)N 767(a)X 828(triangular)X 1193(matrix:)X 643 1472(_TRSV)N 934(\()X 985(UPLO,)X 1258(TRANS,)X 1590(DIAG,)X 1852(N,)X 1959(A,)X 2066(LDA,)X 2290(X,)X 2397(INCX)X 2633(\))X 643 1728(for)N 767(a)X 828(triangular)X 1193(matrix)X 1446(in)X 1537(packed)X 1808(storage:)X 643 1856(_TPSV)N 924(\()X 975(UPLO,)X 1248(TRANS,)X 1580(DIAG,)X 1842(N,)X 1949(AP,)X 2105(X,)X 2212(INCX)X 2448(\))X 643 2112(for)N 767(a)X 828(triangular)X 1193(band)X 1386(matrix:)X 643 2240(_TBSV)N 934(\()X 985(UPLO,)X 1258(TRANS,)X 1590(DIAG,)X 1852(N,)X 1959(K,)X 2066(A,)X 2173(LDA,)X 2397(X,)X 2504(INCX)X 2740(\))X 643 2496(Operation:)N 753 2752(if)N 2 f F 829(TRANS)X 9 f F 1126(=)X 1 f F 1218(`N',)X 2 f F 1493(x)X 9 f F 1569(\254)X 2 f F 1678(T)X 8 s 9 f F 1764 2725(-)N 1 f F 1799(1)X 11 s 2 f F 2752(x)Y 1 f F 753 3008(if)N 2 f F 829(TRANS)X 9 f F 1126(=)X 1 f F 1218(`T',)X 2 f F 1484(x)X 9 f F 1560(\254)X 2 f F 1669(T)X 8 s 9 f F 1755 2981(-)N 2 f F 1790(T)X 11 s F 1837 3008(x)N 1 f F 753 3264(if)N 2 f F 829(TRANS)X 9 f F 1126(=)X 1 f F 1218(`C',)X 2 f F 1467(x)X 9 f F 1543(\254)X 2 f F 1652(T)X 9 f F 1668 3257 MXY (rn)96 500 oc 8 s F 1738 3237(-)N 2 f F 1773(T)X 11 s F 1820 3264(x)N 1 f F 1896(.)X 555 3648(e\))N 667(General)X 967(Rank-1)X 1248(Updates:)X 643 3904(for)N 767(a)X 828(general)X 1109(matrix:)X 643 4032(_GER_)N 929(\()X 980(M,)X 1102(N,)X 1209(ALPHA,)X 1545(X,)X 1652(INCX,)X 1910(Y,)X 2017(INCY,)X 2275(A,)X 2382(LDA)X 2584(\))X 643 4288(for)N 767(real)X 921(matrices:)X 643 4416(SGER)N 890(or)X 985(DGER)X 1246(performs)X 1585(the)X 1715(operation)X 2 f F 2070(A)X 9 f F 2161(\254)X 2270(a)X 2 f F 2325(xy)X 8 s F 2440 4389(T)N 11 s 9 f F 2509 4416(+)N 2 f F 2579(A)X 1 f F 2648(.)X 643 4672(for)N 767(complex)X 1093(matrices:)X 643 4800(CGERC)N 959(or)X 1054(ZGERC)X 1365(performs)X 1704(the)X 1834(operation)X 2 f F 2189(A)X 9 f F 2280(\254)X 2389(a)X 2 f F 2444(xy)X 9 f F 2489 4815 MXY (rn)96 500 oc 8 s 2 f F 2559 4773(T)N 11 s 9 f F 2628 4800(+)N 2 f F 2698(A)X 1 f F 643 4928(and)N 643 5056(CGERU)N 963(or)X 1058(ZGERU)X 1373(performs)X 1712(the)X 1842(operation)X 2 f F 2197(A)X 9 f F 2288(\254)X 2397(a)X 2 f F 2452(xy)X 8 s F 2567 5029(T)N 11 s 9 f F 2636 5056(+)N 2 f F 2706(A)X 1 f F 2775(.)X 555 5312(f\))N 657(Symmetric)X 1067(or)X 1162(Hermitian)X 1542(Rank-1)X 1823(Updates:)X 643 5568(for)N 767(a)X 828(symmetric)X 1223(or)X 1318(Hermitian)X 1698(matrix:)X 643 5696(_SYR)N 880(\()X 931(UPLO,)X 1204(N,)X 1311(ALPHA,)X 1647(X,)X 1754(INCX,)X 2012(A,)X 2119(LDA)X 2321(\))X 643 5824(_HER)N 885(\()X 936(UPLO,)X 1209(N,)X 1316(ALPHA,)X 1652(X,)X 1759(INCX,)X 2017(A,)X 2124(LDA)X 2326(\))X %%Page: 10 12 10 p 11 s 0 xH 0 xS 1 f F 2332 392(-)N 2383(10)X 2493(-)X 731 704(if)N 2 f F 807(TRANS)X 9 f F 1104(=)X 1 f F 1196(`N',)X 2 f F 1449(y)X 9 f F 1525(\254)X 1634(a)X 2 f F 1689(Ax)X 9 f F 1819(+)X 1889(b)X 2 f F 1937(y)X 1 f F 731 960(if)N 2 f F 807(TRANS)X 9 f F 1104(=)X 1 f F 1196(`T',)X 2 f F 1418(y)X 9 f F 1494(\254)X 1603(a)X 2 f F 1658(A)X 8 s F 1749 933(T)N 11 s F 1796 960(x)N 9 f F 1872(+)X 1942(b)X 2 f F 1990(y)X 1 f F 731 1216(if)N 2 f F 829(TRANS)X 9 f F 1126(=)X 1 f F 1218(`C',)X 2 f F 1445(y)X 9 f F 1521(\254)X 1630(a)X 2 f F 1685(A)X 9 f F 1702 1209 MXY (rn)96 500 oc 1704 MX (rn)96 500 oc 8 s 2 f F 1776 1189(T)N 11 s F 1823 1216(x)N 9 f F 1899(+)X 1969(b)X 2 f F 2017(y)X 1 f F 2071(.)X 555 1600(b\))N 672(Symmetric)X 1082(or)X 1177(Hermitian)X 1557(Matrix)X 1819(Vector)X 2080(Products)X 643 1856(for)N 767(a)X 828(symmetric)X 1223(or)X 1318(Hermitian)X 1698(matrix:)X 643 1984(_SYMV)N 962(\()X 1013(UPLO,)X 1286(N,)X 1393(ALPHA,)X 1729(A,)X 1836(LDA,)X 2060(X,)X 2167(INCX,)X 2425(BETA,)X 2699(Y,)X 2806(INCY)X 3042(\))X 643 2112(_HEMV)N 967(\()X 1018(UPLO,)X 1291(N,)X 1398(ALPHA,)X 1734(A,)X 1841(LDA,)X 2065(X,)X 2172(INCX,)X 2430(BETA,)X 2704(Y,)X 2811(INCY)X 3047(\))X 643 2368(for)N 767(a)X 828(symmetric)X 1223(or)X 1318(Hermitian)X 1698(matrix)X 1951(in)X 2042(packed)X 2313(storage:)X 643 2496(_SPMV)N 948(\()X 999(UPLO,)X 1272(N,)X 1379(ALPHA,)X 1715(AP,)X 1871(X,)X 1978(INCX,)X 2236(BETA,)X 2510(Y,)X 2617(INCY)X 2853(\))X 643 2624(_HPMV)N 962(\()X 1013(UPLO,)X 1286(N,)X 1393(ALPHA,)X 1729(AP,)X 1885(X,)X 1992(INCX,)X 2250(BETA,)X 2524(Y,)X 2631(INCY)X 2867(\))X 643 2880(for)N 767(a)X 828(symmetric)X 1223(or)X 1318(Hermitian)X 1698(band)X 1891(matrix:)X 643 3008(_SBMV)N 958(\()X 1009(UPLO,)X 1282(N,)X 1389(K,)X 1496(ALPHA,)X 1832(A,)X 1939(LDA,)X 2163(X,)X 2270(INCX,)X 2528(BETA,)X 2802(Y,)X 2909(INCY)X 3145(\))X 643 3136(_HBMV)N 972(\()X 1023(UPLO,)X 1296(N,)X 1403(K,)X 1510(ALPHA,)X 1846(A,)X 1953(LDA,)X 2177(X,)X 2284(INCX,)X 2542(BETA,)X 2816(Y,)X 2923(INCY)X 3159(\))X 643 3392(Operation:)N 2 f F 862 3568(y)N 9 f F 938(\254)X 1047(a)X 2 f F 1102(Ax)X 9 f F 1232(+)X 1302(b)X 2 f F 1350(y)X 1426(.)X 1 f F 555 3872(c\))N 667(Triangular)X 1061(Matrix)X 1323(Vector)X 1584(Products)X 643 4128(for)N 767(a)X 828(triangular)X 1193(matrix:)X 643 4256(_TRMV)N 963(\()X 1014(UPLO,)X 1287(TRANS,)X 1619(DIAG,)X 1881(N,)X 1988(A,)X 2095(LDA,)X 2319(X,)X 2426(INCX)X 2662(\))X 643 4512(for)N 767(a)X 828(triangular)X 1193(matrix)X 1446(in)X 1537(packed)X 1808(storage:)X 643 4640(_TPMV)N 953(\()X 1004(UPLO,)X 1277(TRANS,)X 1609(DIAG,)X 1871(N,)X 1978(AP,)X 2134(X,)X 2241(INCX)X 2477(\))X 643 4896(for)N 767(a)X 828(triangular)X 1193(band)X 1386(matrix:)X 643 5024(_TBMV)N 963(\()X 1014(UPLO,)X 1287(TRANS,)X 1619(DIAG,)X 1881(N,)X 1988(K,)X 2095(A,)X 2202(LDA,)X 2426(X,)X 2533(INCX)X 2769(\))X 643 5280(Operation:)N 753 5536(if)N 2 f F 829(TRANS)X 9 f F 1126(=)X 1 f F 1218(`N',)X 2 f F 1471(x)X 9 f F 1547(\254)X 2 f F 1656(Tx)X 1 f F 753 5792(if)N 2 f F 829(TRANS)X 9 f F 1126(=)X 1 f F 1218(`T',)X 2 f F 1462(x)X 9 f F 1538(\254)X 2 f F 1647(T)X 8 s F 1733 5765(T)N 11 s F 1780 5792(x)N %%Page: 9 11 9 p 11 s 0 xH 0 xS 1 f F 2354 392(-)N 2405(9)X 2471(-)X 775 704(DOUBLE)N 1153(PRECISION)X 1651(ALPHA,)X 1987(BETA)X 775 832(DOUBLE)N 1153(PRECISION)X 1651(X\(*\),)X 1860(Y\(*\))X 775 960(DOUBLE)N 1153(PRECISION)X 1651(A\(LDA,*\))X 775 1088(DOUBLE)N 1153(PRECISION)X 1651(AP\(*\))X 555 1344(For)N 699(routines)X 1005(whose)X 1251(first)X 1415(letter)X 1619(is)X 1700(a)X 1761(C:)X 775 1600(COMPLEX)N 1239(ALPHA)X 775 1728(COMPLEX)N 1239(BETA)X 775 1856(COMPLEX)N 1239(X\(*\),)X 1448(Y\(*\))X 775 1984(COMPLEX)N 1239(A\(LDA,*\))X 775 2112(COMPLEX)N 1239(AP\(*\))X 555 2368(except)N 807(that)X 962(for)X 1086(CHER)X 1343(and)X 1492(CHPR)X 1744(the)X 1874(scalar)X 9 f F 2101(a)X 1 f F 2178(is)X 2259(real)X 2413(so)X 2513(that)X 2668(the)X 2798(first)X 2962(declaration)X 3376(above)X 3608(is)X 3689(replaced)X 4009(by:)X 775 2624(REAL)N 1049(ALPHA)X 555 2880(For)N 699(routines)X 1005(whose)X 1251(first)X 1415(letter)X 1619(is)X 1700(Z:)X 643 3136(COMPLEX*16)N 1239(ALPHA)X 2095(DOUBLE)X 2473(COMPLEX)X 2937(ALPHA)X 643 3264(COMPLEX*16)N 1239(BETA)X 2315(DOUBLE)X 2693(COMPLEX)X 3157(BETA)X 643 3392(COMPLEX*16)N 1239(X\(*\),)X 1448(Y\(*\))X 1679(or)X 2095(DOUBLE)X 2473(COMPLEX)X 2937(X\(*\),)X 3146(Y\(*\))X 643 3520(COMPLEX*16)N 1239(A\(LDA,*\))X 2095(DOUBLE)X 2473(COMPLEX)X 2937(A\(LDA,*\))X 643 3648(COMPLEX*16)N 1239(AP\(*\))X 2315(DOUBLE)X 2693(COMPLEX)X 3157(AP\(*\))X 555 3904(except)N 807(that)X 962(for)X 1086(ZHER)X 1338(and)X 1487(ZHPR)X 1734(the)X 1864(first)X 2028(declaration)X 2442(above)X 2674(is)X 2755(replaced)X 3075(by:)X 775 4160(DOUBLE)N 1153(PRECISION)X 1651(ALPHA)X 555 4416(The)N 719(generic)X 1005(names,)X 1301(argument)X 1661(lists)X 1831(and)X 1985(specifications)X 2497(for)X 2626(the)X 2761(extended)X 3105(BLAS)X 3356(now)X 3533(follow.)X 3811(Refer)X 4032(to)X 4127(table)X 555 4544(3.1)N 687(for)X 811(the)X 941(specific)X 1237(subroutine)X 1631(names.)X 555 4800(a\))N 667(General)X 967(Matrix)X 1229(Vector)X 1490(Products)X 643 5056(for)N 767(a)X 828(general)X 1109(matrix:)X 643 5184(_GEMV)N 967(\()X 1018(TRANS,)X 1350(M,)X 1472(N,)X 1579(ALPHA,)X 1915(A,)X 2022(LDA,)X 2246(X,)X 2353(INCX,)X 2611(BETA,)X 2885(Y,)X 2992(INCY)X 3228(\))X 643 5440(for)N 767(a)X 828(general)X 1109(band)X 1302(matrix:)X 643 5568(_GBMV)N 972(\()X 1023(TRANS,)X 1355(M,)X 1477(N,)X 1584(KL,)X 1745(KU,)X 1915(ALPHA,)X 2251(A,)X 2358(LDA,)X 2582(X,)X 2689(INCX,)X 2947(BETA,)X 3221(Y,)X 3328(INCY)X 3564(\))X 643 5824(Operation:)N %%Page: 8 10 8 p 11 s 0 xH 0 xS 1 f F 2354 392(-)N 2405(8)X 2471(-)X 555 704(either)N 792(the)X 936(upper)X 1172(\(UPLO)X 1466(=)X 1552(`U'\))X 1738(or)X 1847(lower)X 2083(triangle)X 2389(\(UPLO)X 2683(=)X 2769(`L'\))X 2946(of)X 3055(a)X 3130(two)X 3298(dimensional)X 3766(array,)X 4004(or)X 4112(to)X 4216(be)X 555 832(packed)N 843(in)X 951(a)X 1029(one)X 1195(dimensional)X 1666(array.)X 1907(In)X 2019(the)X 2166(latter)X 2387(case)X 2577(the)X 2724(upper)X 2963(triangle)X 3272(may)X 3463(be)X 3585(packed)X 3872(sequentially)X 555 960(column)N 850(by)X 968(column)X 1262(\(UPLO)X 1549(=)X 1628(`U'\),)X 1829(or)X 1931(the)X 2068(lower)X 2297(triangle)X 2596(may)X 2777(be)X 2889(packed)X 3167(sequentially)X 3623(column)X 3917(by)X 4034(column)X 555 1088(\(UPLO)N 840(=)X 917(`L'\).)X 1107(Note)X 1305(that)X 1465(for)X 1594(real)X 1753(symmetric)X 2153(matrices)X 2479(packing)X 2785(the)X 2919(upper)X 3145(triangle)X 3441(by)X 3555(column)X 3846(is)X 3931(equivalent)X 555 1216(to)N 648(packing)X 950(the)X 1081(lower)X 1304(triangle)X 1597(by)X 1708(rows,)X 1923(and)X 2073(packing)X 2375(the)X 2506(lower)X 2729(triangle)X 3022(by)X 3133(columns)X 3455(is)X 3537(equivalent)X 3928(to)X 4020(packing)X 555 1344(the)N 691(upper)X 919(triangle)X 1217(by)X 1333(rows.)X 1553(\(For)X 1732(complex)X 2064(Hermitian)X 2450(matrices)X 2777(the)X 2913(only)X 3098(difference)X 3482(is)X 3569(that)X 3729(the)X 3864(off-diagonal)X 555 1472(elements)N 891(are)X 1020(conjugated.\))X 755 1648(For)N 905(triangular)X 1276(matrices)X 1603(the)X 1739(argument)X 2100(UPLO)X 2357(serves)X 2604(to)X 2701(define)X 2948(whether)X 3258(the)X 3393(matrix)X 3651(is)X 3737(upper)X 3964(\(UPLO)X 4249(=)X 555 1776(`U'\))N 727(or)X 822(lower)X 1044(\(UPLO)X 1324(=)X 1396(`L'\))X 1559(triangular.)X 1946(In)X 2041(packed)X 2312(storage)X 2588(the)X 2718(triangle)X 3010(has)X 3149(to)X 3240(be)X 3345(packed)X 3616(by)X 3726(column.)X 755 1952(The)N 917(band)X 1113(matrix)X 1369(routines)X 1678(allow)X 1899(storage)X 2178(in)X 2272(the)X 2405(same)X 2611(style)X 2803(as)X 2900(with)X 3081(LINPACK,)X 3507(so)X 3609(that)X 3766(the)X 2 f F 3905(j)X 8 s F 3945 1925(th)N 11 s 1 f F 4030 1952(column)N 555 2080(of)N 656(the)X 792(matrix)X 1051(is)X 1138(stored)X 1381(in)X 1478(the)X 2 f F 1621(j)X 8 s F 1661 2053(th)N 11 s 1 f F 1750 2080(column)N 2043(of)X 2144(the)X 2280(Fortran)X 2567(array.)X 2797(For)X 2947(a)X 3014(general)X 3300(band)X 3498(matrix)X 3756(the)X 3891(diagonal)X 4222(of)X 555 2208(the)N 687(matrix)X 942(is)X 1025(stored)X 1264(in)X 1357(the)X 2 f F 1489(ku)X 9 f F 1587(+)X 1 f F 1635(1)X 8 s 2 f F 2181(th)Y 11 s 1 f F 1764 2208(row)N 1924(of)X 2021(the)X 2153(array.)X 2401(For)X 2547(a)X 2610(Hermitian)X 2992(or)X 3089(symmetric)X 3486(matrix)X 3740(either)X 3964(the)X 4095(upper)X 555 2336(triangle)N 850(\(UPLO)X 1133(=)X 1208(`U'\))X 1383(may)X 1560(be)X 1668(stored)X 1908(in)X 2002(which)X 2242(case)X 2418(the)X 2551(leading)X 2836(diagonal)X 3165(is)X 3248(in)X 3341(the)X 2 f F 3473(k)X 9 f F 3527(+)X 1 f F 3575(1)X 8 s 2 f F 2309(th)Y 11 s 1 f F 3704 2336(row)N 3864(of)X 3961(the)X 4093(array,)X 555 2464(or)N 652(the)X 784(lower)X 1008(triangle)X 1302(\(UPLO)X 1584(=)X 1658(`L'\))X 1823(may)X 1999(be)X 2106(stored)X 2345(in)X 2438(which)X 2677(case)X 2852(the)X 2984(leading)X 3268(diagonal)X 3596(is)X 3679(in)X 3771(the)X 3902(first)X 4067(row)X 4226(of)X 555 2592(the)N 689(array.)X 938(For)X 1085(an)X 1193(upper)X 1418(triangular)X 1786(band)X 1982(matrix)X 2238(\(UPLO)X 2521(=)X 2596(`U'\))X 2771(the)X 2904(leading)X 3189(diagonal)X 3518(is)X 3602(in)X 3696(the)X 2 f F 3829(k)X 9 f F 3883(+)X 1 f F 3931(1)X 8 s 2 f F 2565(th)Y 11 s 1 f F 4061 2592(row)N 4222(of)X 555 2720(the)N 685(array)X 887(and)X 1036(for)X 1160(a)X 1221(lower)X 1443(triangular)X 1808(band)X 2001(matrix)X 2254(\(UPLO)X 2534(=)X 2606(`L'\))X 2769(the)X 2899(leading)X 3181(diagonal)X 3507(is)X 3588(in)X 3679(the)X 3809(first)X 3973(row.)X 755 2896(For)N 902(a)X 966(Hermitian)X 1349(matrix)X 1605(the)X 1738(imaginary)X 2121(parts)X 2317(of)X 2415(the)X 2547(diagonal)X 2875(elements)X 3213(are)X 3344(of)X 3441(course)X 3694(zero)X 3869(and)X 4020(thus)X 4191(the)X 555 3024(imaginary)N 940(parts)X 1138(of)X 1238(the)X 1373(corresponding)X 1903(Fortran)X 2189(array)X 2395(elements)X 2735(need)X 2927(not)X 3066(be)X 3175(set,)X 3321(but)X 3460(are)X 3593(assumed)X 3922(to)X 4017(be)X 4126(zero.)X 555 3152(In)N 654(the)X 788(R)X 873(and)X 1026(R2)X 1154(routines)X 1463(these)X 1669(imaginary)X 2052(parts)X 2248(will)X 2411(be)X 2519(set)X 2642(to)X 2736(zero)X 2912(on)X 3025(return,)X 3282(except)X 3537(when)X 9 f F 3752(a)X 3829(=)X 1 f F 3899(0,)X 3990(in)X 4084(which)X 555 3280(case)N 728(the)X 858(routines)X 1164(exit)X 1319(immediately.)X 755 3456(For)N 912(packed)X 1196(triangular)X 1574(matrices)X 1908(the)X 2051(same)X 2267(storage)X 2556(layout)X 2812(is)X 2906(used)X 3102(whether)X 3420(or)X 3528(not)X 3676(DIAG)X 3929(=)X 4014(`U',)X 4191(i.e.)X 555 3584(space)N 772(is)X 853(left)X 993(for)X 1117(the)X 1247(diagonal)X 1573(elements)X 1909(even)X 2097(if)X 2173(those)X 2381(array)X 2583(elements)X 2919(are)X 3048(not)X 3183(referenced.)X 3 f F 555 3968(6.)N 643(Specification)X 1150(of)X 1245(the)X 1384(Level)X 1612(2)X 1678(BLAS)X 1 f F 755 4144(Type)N 958(and)X 1107(dimension)X 1497(for)X 1621(variables)X 1961(occurring)X 2320(in)X 2411(the)X 2541(subroutine)X 2935(specifications)X 3442(are)X 3571(as)X 3666(follows:)X 775 4400(INTEGER)N 1261(INCX,)X 1519(INCY,)X 1777(K,)X 1884(KL,)X 2045(KU,)X 2215(LDA,)X 2439(M,)X 2561(N)X 775 4528(CHARACTER*1)N 1418(DIAG,)X 1680(TRANS,)X 2012(UPLO)X 555 4784(For)N 699(routines)X 1005(whose)X 1251(first)X 1415(letter)X 1619(is)X 1700(an)X 1805(S:)X 775 5040(REAL)N 1049(ALPHA,)X 1385(BETA)X 775 5168(REAL)N 1049(X\(*\),)X 1258(Y\(*\))X 775 5296(REAL)N 1049(A\(LDA,*\))X 775 5424(REAL)N 1049(AP\(*\))X 555 5680(For)N 699(routines)X 1005(whose)X 1251(first)X 1415(letter)X 1619(is)X 1700(a)X 1761(D)X %%Page: 7 9 7 p 11 s 0 xH 0 xS 1 f F 2354 392(-)N 2405(7)X 2471(-)X 555 704(actual)N 788(array)X 990(must)X 1184(contain)X 1466(at)X 1552(least)X 2 f F 1736(n)X 1 f F 1795(\()X 2 f F 1824(n)X 9 f F 1883(+)X 1 f F 1931(1\))X 2 f F 2004(/)X 1 f F 2029(2)X 2095(elements.)X 755 880(The)N 914(scalars)X 1175(always)X 1441(have)X 1629(the)X 1759(dummy)X 2051(argument)X 2406(names)X 2653(ALPHA)X 2967(and)X 3116(BETA.)X 755 1056(As)N 875(with)X 1055(the)X 1186(existing)X 1489(BLAS)X 1737(the)X 1868(description)X 2283(of)X 2379(a)X 2441(vector)X 2683(consists)X 2984(of)X 3079(the)X 3209(name)X 3422(of)X 3517(the)X 3647(array)X 3849(\(X)X 3963(or)X 4058(Y\))X 4172(fol-)X 555 1184(lowed)N 794(by)X 906(the)X 1038(storage)X 1316(spacing)X 1609(\(increment\))X 2044(in)X 2137(the)X 2269(array)X 2473(of)X 2570(the)X 2702(vector)X 2946(elements)X 3284(\(INCX)X 3550(or)X 3646(INCY\).)X 3934(The)X 4094(incre-)X 555 1312(ment)N 757(is)X 841(allowed)X 1145(to)X 1239(be)X 1347(positive)X 1652(or)X 1750(negative)X 2074(-)X 2128(but)X 2265(not)X 2402(zero)X 2577(\(see)X 2742(section)X 3016(7\).)X 3157(When)X 3391(the)X 3523(vector)X 2 f F 3767(x)X 1 f F 3845(consists)X 4148(of)X 2 f F 4245(k)X 1 f F 555 1440(elements,)N 915(then)X 1091(the)X 1223(corresponding)X 1750(actual)X 1985(array)X 2189(argument)X 2546(X)X 2633(must)X 2829(be)X 2936(of)X 3033(length)X 3278(at)X 3366(least)X 3552(\()X 3604(1)X 3671(+)X 3744(\()X 2 f F 3773(k)X 1 f F 3827(-1\)|)X 3970(INCX)X 4207(|)X 4248(\).)X 555 1568(For)N 710(those)X 929(routines)X 1246(that)X 1412(include)X 1705(the)X 1846(argument)X 2212(BETA,)X 2497(when)X 2720(BETA)X 2983(is)X 3075(supplied)X 3407(as)X 3513(zero)X 3697(then)X 3882(the)X 4023(array)X 4236(Y)X 555 1696(need)N 748(not)X 888(be)X 998(set)X 1123(on)X 1238(input,)X 1469(so)X 1573(that)X 1732(operations)X 2125(such)X 2312(as)X 2 f F 2411(y)X 9 f F 2487(\254)X 2596(a)X 2 f F 2651(Ax)X 1 f F 2785(may)X 2963(be)X 3072(performed)X 3464(without)X 3760(initially)X 4063(setting)X 2 f F 555 1824(y)N 1 f F 631(to)X 722(zero.)X 555 2080(The)N 714(following)X 1079(values)X 1326(of)X 1421(arguments)X 1810(are)X 1939(invalid:)X 687 2336(Any)N 860(value)X 1073(of)X 1168(the)X 1298(character)X 1642(arguments)X 2031(DIAG,)X 2293(TRANS,)X 2625(or)X 2720(UPLO)X 753 2464(whose)N 999(meaning)X 1325(is)X 1406(not)X 1541(specified.)X 687 2592(M)N 787(<)X 859(0)X 687 2720(N)N 772(<)X 844(0)X 687 2848(KL)N 826(<)X 898(0)X 687 2976(KU)N 835(<)X 907(0)X 687 3104(K)N 772(<)X 844(0)X 687 3232(LDA)N 889(<)X 961(M)X 687 3360(LDA)N 889(<)X 961(KL)X 1100(+)X 1172(KU)X 1320(+)X 1392(1)X 687 3488(LDA)N 889(<)X 961(N)X 1046(for)X 1170(the)X 1300(HE,)X 1461(SY,)X 1617(and)X 1766(TR)X 1901(routines.)X 687 3616(LDA)N 889(<)X 961(K)X 1046(+)X 1118(1)X 1184(for)X 1308(the)X 1438(HB,)X 1604(SB,)X 1756(and)X 1905(TB)X 2040(routines.)X 687 3744(INCX)N 923(=)X 995(0)X 687 3872(INCY)N 923(=)X 995(0)X 555 4128(If)N 642(a)X 710(routine)X 989(is)X 1077(called)X 1317(with)X 1503(an)X 1615(invalid)X 1890(value)X 2110(for)X 2241(any)X 2397(of)X 2499(its)X 2612(arguments,)X 3030(then)X 3210(it)X 3288(must)X 3488(report)X 3726(the)X 3862(fact)X 4022(and)X 4177(ter-)X 555 4256(minate)N 829(execution)X 1205(of)X 1311(the)X 1452(program.)X 1827(In)X 1933(the)X 2074(model)X 2328(implementation)X 2917(\(see[7]\),)X 3243(each)X 3436(routine,)X 3740(on)X 3860(detecting)X 4216(an)X 555 4384(error,)N 782(calls)X 979(a)X 1053(common)X 1397(error)X 1602(handling)X 1946(routine)X 2231(XERBLA,)X 2640(passing)X 2939(to)X 3043(it)X 3128(the)X 3271(name)X 3497(of)X 3604(the)X 3746(routine)X 4030(and)X 4191(the)X 555 4512(number)N 858(of)X 965(the)X 1107(first)X 1283(argument)X 1650(which)X 1899(is)X 1992(in)X 2095(error.)X 2342(Specialized)X 2782(implementations)X 3405(may)X 3590(call)X 3751(system-specific)X 555 4640(exception-handling)N 1261(and)X 1413(diagnostic)X 1801(facilities,)X 2153(either)X 2378(via)X 2510(an)X 2617(auxiliary)X 2955(routine)X 3229(XERBLA)X 3605(or)X 3702(directly)X 3996(from)X 4191(the)X 555 4768(routines.)N 921(One)X 1105(advantage)X 1500(of)X 1611(using)X 1840(XERBLA)X 2230(is)X 2327(that)X 2498(the)X 2644(test)X 2805(program)X 3141(can)X 3301(then)X 3491(test)X 3652(that)X 3823(all)X 3950(errors)X 4192(are)X 555 4896(detected)N 871(\(see)X 1034([7]\).)X 3 f F 555 5280(5.)N 643(Storage)X 953(Conventions)X 1 f F 755 5456(Unless)N 1029(otherwise)X 1406(stated)X 1647(it)X 1732(is)X 1826(assumed)X 2164(that)X 2332(matrices)X 2666(are)X 2808(stored)X 3058(conventionally)X 3618(in)X 3721(a)X 3794(2-dimensional)X 555 5584(array)N 757(with)X 936(matrix-element)X 2 f F 1498(a)X 8 s F 5599(i)Y 1565(j)X 11 s 1 f F 1616 5584(stored)N 1853(in)X 1944(array-element)X 2455(A\(I,J\).)X 755 5763(The)N 915(routines)X 1222(for)X 1347(real)X 1501(symmetric)X 1896(and)X 2045(complex)X 2371(Hermitian)X 2751(matrices)X 3072(allow)X 3290(for)X 3414(the)X 3544(matrix)X 3797(to)X 3888(be)X 3993(stored)X 4230(in)X %%Page: 6 8 6 p 11 s 0 xH 0 xS 1 f F 2354 392(-)N 2405(6)X 2471(-)X 1353 768(Value)N 1695(Meaning)X 1353 808(_)N 1389(________________________________________________)X 1353 936(`N')N 1695(Operate)X 1995(with)X 2174(the)X 2304(matrix.)X 1353 1064(`T')N 1695(Operate)X 1995(with)X 2174(the)X 2304(transpose)X 2658(of)X 2753(the)X 2883(matrix.)X 1353 1192(`C')N 1695(Operate)X 1995(with)X 2174(the)X 2304(conjugate)X 2669(transpose)X 3023(of)X 3118(the)X 3248(matrix.)X 555 1512(In)N 650(the)X 780(real)X 934(case)X 1107(the)X 1237(values)X 1484(`T')X 1618(and)X 1767(`C')X 1906(have)X 2094(the)X 2224(same)X 2427(meaning.)X 755 1688(UPLO)N 1015(is)X 1105(used)X 1297(by)X 1416(the)X 1555(Hermitian,)X 1965(symmetric,)X 2390(and)X 2547(triangular)X 2920(matrix)X 3181(routines)X 3495(to)X 3594(specify)X 3878(whether)X 4191(the)X 555 1816(upper)N 777(or)X 872(lower)X 1094(triangle)X 1386(is)X 1467(being)X 1685(referenced)X 2077(as)X 2172(follows:)X 1995 2008(Value)N 2337(Meaning)X 1995 2048(_)N 2022(___________________)X 1995 2176(`U')N 2337(Upper)X 2578(triangle)X 1995 2304(`L')N 2337(Lower)X 2588(triangle)X 755 2672(DIAG)N 1000(is)X 1086(used)X 1274(by)X 1388(the)X 1522(triangular)X 1891(matrix)X 2148(routines)X 2458(to)X 2553(specify)X 2833(whether)X 3142(or)X 3241(not)X 3380(the)X 3514(matrix)X 3771(is)X 3856(unit)X 4020(triangu-)X 555 2800(lar,)N 692(as)X 787(follows:)X 1914 2992(Value)N 2256(Meaning)X 1914 3032(_)N 1927(_______________________)X 1914 3160(`U')N 2256(Unit)X 2435(triangular)X 1914 3288(`N')N 2256(Non-unit)X 2596(triangular)X 555 3480(When)N 787(DIAG)X 1027(is)X 1108(supplied)X 1429(as)X 1524(`U')X 1667(the)X 1797(diagonal)X 2123(elements)X 2459(are)X 2588(not)X 2723(referenced.)X 755 3656(We)N 918(recommend)X 1375(that)X 1549(the)X 1698(equivalent)X 2107(lower)X 2348(case)X 2540(characters)X 2936(be)X 3059(accepted)X 3407(with)X 3604(the)X 3752(same)X 3973(meaning,)X 555 3784(although,)N 916(because)X 1224(they)X 1406(are)X 1543(not)X 1686(included)X 2020(in)X 2119(the)X 2257(standard)X 2585(Fortran)X 2874(character)X 3226(set,)X 3376(their)X 3567(use)X 3713(may)X 3894(not)X 4036(be)X 4148(sup-)X 555 3912(ported)N 802(on)X 912(all)X 1023(systems.)X 1368(See)X 1517(Section)X 1804(7)X 1870(for)X 1994(further)X 2255(discussion.)X 755 4088(It)N 837(is)X 924(worth)X 1157(noting)X 1411(that)X 1572(actual)X 1811(character)X 2161(arguments)X 2556(in)X 2653(Fortran)X 2940(may)X 3120(be)X 3230(longer)X 3482(than)X 3661(the)X 3796(corresponding)X 555 4216(dummy)N 847(arguments.)X 1258(So)X 1373(that,)X 1550(for)X 1674(example,)X 2017(the)X 2147(value)X 2360(`T')X 2494(for)X 2618(TRANS)X 2928(may)X 3102(be)X 3207(passed)X 3463(as)X 3558(`TRANSPOSE'.)X 755 4392(The)N 919(size)X 1083(of)X 1183(the)X 1318(matrix)X 1576(is)X 1662(determined)X 2086(by)X 2201(the)X 2336(arguments)X 2730(M)X 2835(and)X 2989(N)X 3079(for)X 3208(an)X 2 f F 3318(m)X 1 f F 3422(by)X 2 f F 3536(n)X 1 f F 3621(rectangular)X 4043(matrix;)X 555 4520(and)N 705(by)X 816(the)X 947(argument)X 1303(N)X 1389(for)X 1514(an)X 2 f F 1620(n)X 1 f F 1702(by)X 2 f F 1813(n)X 1 f F 1894(symmetric,)X 2311(Hermitian,)X 2713(or)X 2808(triangular)X 3173(matrix.)X 3470(Note)X 3663(that)X 3818(it)X 3890(is)X 3971(permissi-)X 555 4648(ble)N 689(to)X 784(call)X 938(the)X 1072(routines)X 1382(with)X 1565(M)X 1669(or)X 1768(N)X 1857(=)X 1933(0,)X 2025(in)X 2120(which)X 2360(case)X 2536(the)X 2669(routines)X 2978(exit)X 3136(immediately)X 3604(without)X 3899(referencing)X 555 4776(their)N 745(vector)X 993(or)X 1094(matrix)X 1353(arguments.)X 1792(The)X 1957(bandwidth)X 2357(is)X 2444(determined)X 2869(by)X 2985(the)X 3121(arguments)X 3516(KL)X 3661(and)X 3815(KU)X 3968(for)X 4097(a)X 4163(rec-)X 555 4904(tangular)N 874(matrix)X 1135(with)X 2 f F 1321(kl)X 1 f F 1429(sub-diagonals)X 1947(and)X 2 f F 2103(ku)X 1 f F 2230(super-diagonals;)X 2841(and)X 2997(by)X 3114(the)X 3251(argument)X 3613(K)X 3705(for)X 3836(a)X 3904(symmetric,)X 555 5032(Hermitian,)N 957(or)X 1052(triangular)X 1417(matrix)X 1670(with)X 2 f F 1849(k)X 1 f F 1925(sub-diagonals)X 2436(and/or)X 2683(super-diagonals.)X 755 5208(The)N 919(description)X 1338(of)X 1438(the)X 1573(matrix)X 1831(consists)X 2137(either)X 2365(of)X 2465(the)X 2600(array)X 2807(name)X 3025(\(A\))X 3173(followed)X 3513(by)X 3628(the)X 3763(leading)X 4049(dimen-)X 555 5336(sion)N 725(of)X 820(the)X 950(array)X 1152(as)X 1247(declared)X 1567(in)X 1658(the)X 1788(calling)X 2051(\(sub\))X 2253(program)X 2573(\(LDA\),)X 2855(when)X 3067(the)X 3197(matrix)X 3450(is)X 3531(being)X 3749(stored)X 3986(in)X 4077(a)X 4138(two-)X 555 5464(dimensional)N 1013(array;)X 1244(or)X 1343(the)X 1477(array)X 1683(name)X 1900(\(AP\))X 2096(alone)X 2313(when)X 2529(the)X 2663(matrix)X 2920(is)X 3004(being)X 3225(stored)X 3465(as)X 3563(a)X 3627(\(packed\))X 3959(vector.)X 4226(In)X 555 5592(the)N 701(former)X 978(case)X 1167(the)X 1312(actual)X 1560(array)X 1777(must)X 1986(contain)X 2283(at)X 2384(least)X 2583(\(\()X 2 f F 2641(n)X 9 f F 2700(-)X 1 f F 2748(1\))X 2 f F 2821(d)X 9 f F 2902(+)X 2 f F 2972(l)X 1 f F 3012(\))X 3078(elements,)X 3451(where)X 2 f F 3702(d)X 1 f F 3798(is)X 3894(the)X 4039(leading)X 555 5720(dimension)N 957(of)X 1064(the)X 1206(array,)X 2 f F 1442(d)X 9 f F 1523(\263)X 2 f F 1593(l)X 1 f F 1633(,)X 1689(and)X 2 f F 1850(l)X 9 f F 1912(=)X 2 f F 1982(m)X 1 f F 2094(for)X 2230(the)X 2372(GE)X 2523(routines,)X 2 f F 2863(l)X 9 f F 2925(=)X 2 f F 2995(n)X 1 f F 3088(for)X 3224(the)X 3366(SY,)X 3534(HE)X 3685(and)X 3846(TR)X 3993(routines,)X 2 f F 555 5848(l)N 9 f F 617(=)X 2 f F 687(kl)X 9 f F 788(+)X 2 f F 858(ku)X 9 f F 978(+)X 1 f F 1048(1)X 1119(for)X 1248(the)X 1383(GB)X 1532(routines,)X 1865(and)X 2 f F 2019(l)X 9 f F 2081(=)X 2 f F 2151(k)X 9 f F 2205(+)X 1 f F 2253(1)X 2324(for)X 2453(the)X 2588(SB,)X 2745(HB)X 2894(or)X 2994(TB)X 3134(routines.)X 3488(For)X 3636(packed)X 3911(storage)X 4191(the)X %%Page: 5 7 5 p 11 s 0 xH 0 xS 1 f F 2354 392(-)N 2405(5)X 2471(-)X 2260 704(Table)N 2483(3.1)X 2 f F 1588 896(complex)N 2027(real)X 1 f F 2316(MV)X 2592(R)X 2787(R2)X 3022(SV)X 1646 1152(CGE)N 2015(SGE)X 2364(*)X 2589(*)X 1644 1280(CGB)N 2013(SGB)X 2364(*)X 1646 1408(CHE)N 2018(SSY)X 2364(*)X 2600(*)X 2816(*)X 1649 1536(CHP)N 2025(SSP)X 2364(*)X 2600(*)X 2816(*)X 1644 1664(CHB)N 2020(SSB)X 2364(*)X 1648 1792(CTR)N 2017(STR)X 2364(*)X 3056(*)X 1653 1920(CTP)N 2022(STP)X 2364(*)X 3056(*)X 1648 2048(CTB)N 2017(STB)X 2364(*)X 3056(*)X 555 2368(For)N 703(the)X 836(general)X 1120(rank-1)X 1374(update)X 1634(\(GER\))X 1893(we)X 2020(specify)X 2299(two)X 2456(complex)X 2785(routines:)X 3119(CGERC)X 3438(for)X 2 f F 3565(A)X 9 f F 3656(\254)X 3765(a)X 2 f F 3820(xy)X 9 f F 3865 2383 MXY (rn)96 500 oc 8 s 2 f F 3935 2341(T)N 11 s 9 f F 4004 2368(+)N 2 f F 4074(A)X 1 f F 4168(and)X 555 2496(CGERU)N 881(for)X 2 f F 1011(A)X 9 f F 1102(\254)X 1211(a)X 2 f F 1266(xy)X 8 s F 1381 2469(T)N 11 s 9 f F 1450 2496(+)N 2 f F 1520(A)X 1 f F 1589(.)X 1661(This)X 1846(is)X 1933(the)X 2069(only)X 2254(exception)X 2625(to)X 2722(the)X 2858(one)X 3013(to)X 3110(one)X 3265(correspondence)X 3843(between)X 4163(real)X 555 2624(and)N 704(complex)X 1030(routines.)X 1380(See)X 1529(section)X 1801(7)X 1867(for)X 1991(further)X 2252(discussion.)X 755 2800(We)N 912(do)X 1035(not)X 1183(specify)X 1471(routines)X 1789(for)X 1925(rank-one)X 2271(and)X 2432(rank-two)X 2783(updates)X 3086(applied)X 3380(to)X 3483(band)X 3688(matrices)X 4021(because)X 555 2928(these)N 770(can)X 926(be)X 1043(obtained)X 1381(by)X 1503(calls)X 1699(to)X 1802(the)X 1944(rank-one)X 2290(and)X 2451(rank-two)X 2802(full)X 2958(matrix)X 3222(routines.)X 3561(This)X 3751(is)X 3843(illustrated)X 4230(in)X 555 3056(Appendix)N 924(A.)X 3 f F 555 3440(4.)N 643(Argument)X 1050(Conventions)X 1 f F 755 3616(We)N 902(follow)X 1157(a)X 1221(similar)X 1491(convention)X 1907(for)X 2033(the)X 2165(argument)X 2522(lists)X 2689(to)X 2782(that)X 2939(for)X 3065(the)X 3197(Level)X 3422(1)X 3490(BLAS,)X 3761(but)X 3898(with)X 4079(exten-)X 555 3744(sions)N 759(where)X 996(comparable)X 1430(arguments)X 1820(are)X 1950(not)X 2086(present)X 2363(in)X 2455(the)X 2586(Level)X 2810(1)X 2877(BLAS.)X 3146(The)X 3305(order)X 3512(of)X 3607(arguments)X 3996(is)X 4077(as)X 4172(fol-)X 555 3872(lows:)N 709 4128(a\))N 821(Arguments)X 1234(specifying)X 1623(options.)X 709 4256(b\))N 826(Arguments)X 1239(defining)X 1555(the)X 1685(size)X 1844(of)X 1939(the)X 2069(matrix.)X 709 4384(c\))N 821(Input)X 1029(scalar.)X 709 4512(d\))N 826(Description)X 1259(of)X 1354(the)X 1484(input)X 1688(matrix.)X 709 4640(e\))N 821(Description)X 1254(of)X 1349(input)X 1553(vector\(s\).)X 709 4768(f\))N 811(Input)X 1019(scalar)X 1246(\(associated)X 1659(with)X 1838(input-output)X 2297(vector\).)X 709 4896(g\))N 826(Description)X 1259(of)X 1354(the)X 1484(input-output)X 1943(vector.)X 709 5024(h\))N 826(Description)X 1259(of)X 1354(the)X 1484(input-output)X 1943(matrix.)X 555 5280(Note)N 748(that)X 903(not)X 1038(each)X 1221(category)X 1546(is)X 1627(present)X 1903(in)X 1994(each)X 2177(of)X 2272(the)X 2402(routines.)X 755 5456(The)N 925(arguments)X 1325(that)X 1491(specify)X 1777(options)X 2069(are)X 2208(character)X 2562(arguments)X 2961(with)X 3150(the)X 3290(names)X 3547(TRANS,)X 3889(UPLO,)X 4172(and)X 555 5584(DIAG.)N 839(TRANS)X 1149(is)X 1230(used)X 1413(by)X 1523(the)X 1653(matrix-vector)X 2155(product)X 2446(routines)X 2752(as)X 2847(follows:)X %%Page: 4 6 4 p 11 s 0 xH 0 xS 1 f F 2354 392(-)N 2405(4)X 2471(-)X 1661 768(MV)N 1934(-)X 1985(Matrix-vector)X 2496(product)X 1661 896(R)N 1934(-)X 1985(Rank-one)X 2349(update)X 1661 1024(R2)N 1934(-)X 1985(Rank-two)X 2354(update)X 1661 1152(SV)N 1934(-)X 1985(Solve)X 2208(a)X 2269(system)X 2536(of)X 2631(linear)X 2854(equations)X 555 1472(Characters)N 953(two)X 1107(and)X 1256(three)X 1454(in)X 1545(the)X 1675(name)X 1888(denote)X 2145(the)X 2275(kind)X 2454(of)X 2549(matrix)X 2802(involved,)X 3155(as)X 3250(follows:)X 1572 1792(GE)N 1848(General)X 2148(matrix)X 1572 1920(GB)N 1848(General)X 2148(band)X 2341(matrix)X 1572 2048(HE)N 1848(Hermitian)X 2228(matrix)X 1572 2176(SY)N 1848(Symmetric)X 2258(matrix)X 1572 2304(HP)N 1848(Hermitian)X 2228(matrix)X 2481(stored)X 2718(in)X 2809(packed)X 3080(form)X 1572 2432(SP)N 1848(Symmetric)X 2258(matrix)X 2511(stored)X 2748(in)X 2839(packed)X 3110(form)X 1572 2560(HB)N 1848(Hermitian)X 2228(band)X 2421(matrix)X 1572 2688(SB)N 1848(Symmetric)X 2258(band)X 2451(matrix)X 1572 2816(TR)N 1848(Triangular)X 2242(matrix)X 1572 2944(TP)N 1848(Triangular)X 2242(matrix)X 2495(in)X 2586(packed)X 2857(form)X 1572 3072(TB)N 1848(Triangular)X 2242(band)X 2435(matrix)X 555 3392(The)N 714(first)X 878(character)X 1222(in)X 1313(the)X 1443(name)X 1656(denotes)X 1947(the)X 2077(Fortran)X 2358(data)X 2527(type)X 2701(of)X 2796(the)X 2926(matrix,)X 3201(as)X 3296(follows:)X 1347 3712(S)N 1564(REAL)X 1347 3840(D)N 1564(DOUBLE)X 1942(PRECISION)X 1347 3968(C)N 1564(COMPLEX)X 1347 4096(Z)N 1564(COMPLEX*16)X 2138(or)X 2233(DOUBLE)X 2611(COMPLEX)X 3053(\(if)X 3158(available\))X 555 4416(The)N 717(available)X 1061(combinations)X 1561(are)X 1692(indicated)X 2040(in)X 2133(Table)X 2358(3.1)X 2492(below.)X 2775(In)X 2872(the)X 3004(first)X 3170(column,)X 3481(under)X 2 f F 3705(complex)X 1 f F 3998(,)X 4044(the)X 4176(ini-)X 555 4544(tial)N 697(C)X 784(may)X 964(be)X 1075(replaced)X 1401(by)X 1517(Z.)X 1621(In)X 1722(the)X 1858(second)X 2130(column,)X 2445(under)X 2 f F 2672(real)X 1 f F 2814(,)X 2863(the)X 2998(initial)X 3233(S)X 3309(may)X 3488(be)X 3598(replaced)X 3923(by)X 4038(D.)X 4172(See)X 555 4672(Appendix)N 924(C)X 1005(for)X 1129(the)X 1259(full)X 1404(subroutine)X 1798(calling)X 2061(sequences.)X 755 4848(The)N 921(collection)X 1299(of)X 1400(routines)X 1712(can)X 1862(be)X 1973(thought)X 2271(of)X 2372(as)X 2473(being)X 2697(divided)X 2990(into)X 3156(four)X 3330(separate)X 3646(parts,)X 2 f F 3867(real)X 1 f F 4009(,)X 2 f F 4059(double)X 555 4976(precision)N 1 f F 883(,)X 2 f F 932(complex)X 1 f F 1225(,)X 1274(and)X 2 f F 1428(complex*16)X 1 f F 1853(.)X 1924(The)X 2088(routines)X 2399(can)X 2548(be)X 2658(written)X 2935(in)X 3031(ANSI)X 3262(standard)X 3587(Fortran)X 3872(77,)X 4008(with)X 4191(the)X 555 5104(exception)N 921(of)X 1017(the)X 1148(routines)X 1455(that)X 1610(use)X 1749(COMPLEX*16)X 2323(variables.)X 2707(These)X 2939(routines)X 3245(are)X 3374(included)X 3700(for)X 3824(completeness)X 555 5232(and)N 710(for)X 840(their)X 1029(usefulness)X 1422(on)X 1537(those)X 1750(systems)X 2056(which)X 2298(support)X 2589(this)X 2744(data)X 2918(type;)X 3122(but)X 3262(because)X 3567(they)X 3746(do)X 3861(not)X 4001(conform)X 555 5360(to)N 646(the)X 776(Fortran)X 1057(standard,)X 1399(they)X 1573(may)X 1747(not)X 1882(be)X 1987(available)X 2328(on)X 2438(all)X 2549(machines.)X %%Page: 3 5 3 p 11 s 0 xH 0 xS 1 f F 2354 392(-)N 2405(3)X 2471(-)X 3 f F 555 704(2.)N 643(Scope)X 885(of)X 980(the)X 1119(Level)X 1347(2)X 1413(BLAS)X 1 f F 755 880(The)N 914(following)X 1279(three)X 1477(types)X 1685(of)X 1780(basic)X 1983(operation)X 2338(are)X 2467(performed)X 2855(by)X 2965(the)X 3095(Level)X 3318(2)X 3384(BLAS:)X 555 1136(a\))N 667(Matrix-vector)X 1178(products)X 1503(of)X 1598(the)X 1728(form)X 2 f F 862 1312(y)N 9 f F 938(\254)X 1047(a)X 2 f F 1102(Ax)X 9 f F 1232(+)X 1302(b)X 2 f F 1350(y)X 1 f F 1404(,)X 2 f F 1470(y)X 9 f F 1546(\254)X 1655(a)X 2 f F 1710(A)X 8 s F 1801 1285(T)N 11 s F 1848 1312(x)N 9 f F 1924(+)X 1994(b)X 2 f F 2042(y)X 1 f F 2096(,)X 2162(and)X 2 f F 2333(y)X 9 f F 2409(\254)X 2518(a)X 2 f F 2573(A)X 9 f F 2590 1305 MXY (rn)96 500 oc 2592 MX (rn)96 500 oc 8 s 2 f F 2664 1285(T)N 11 s F 2711 1312(x)N 9 f F 2787(+)X 2857(b)X 2 f F 2905(y)X 1 f F 843 1488(where)N 9 f F 1079(a)X 1 f F 1156(and)X 9 f F 1305(b)X 1 f F 1375(are)X 1504(scalars,)X 2 f F 1787(x)X 1 f F 1863(and)X 2 f F 2012(y)X 1 f F 2088(are)X 2217(vectors)X 2493(and)X 2 f F 2642(A)X 1 f F 2733(is)X 2814(a)X 2875(matrix,)X 3150(and)X 2 f F 862 1664(x)N 9 f F 938(\254)X 2 f F 1047(Tx)X 1 f F 1150(,)X 2 f F 1216(x)X 9 f F 1292(\254)X 2 f F 1401(T)X 8 s F 1487 1637(T)N 11 s F 1534 1664(x)N 1 f F 1588(,)X 1654(and)X 2 f F 1825(x)X 9 f F 1901(\254)X 2 f F 2010(T)X 9 f F 2026 1657 MXY (rn)96 500 oc 8 s 2 f F 2096 1637(T)N 11 s F 2143 1664(x)N 1 f F 2197(,)X 843 1840(where)N 2 f F 1079(x)X 1 f F 1155(is)X 1236(a)X 1297(vector)X 1539(and)X 2 f F 1688(T)X 1 f F 1774(is)X 1855(an)X 1960(upper)X 2182(or)X 2277(lower)X 2499(triangular)X 2864(matrix.)X 555 2096(b\))N 672(Rank-one)X 1036(and)X 1185(rank-two)X 1524(updates)X 1815(of)X 1910(the)X 2040(form)X 2 f F 862 2272(A)N 9 f F 953(\254)X 1062(a)X 2 f F 1117(xy)X 8 s F 1232 2245(T)N 11 s 9 f F 1301 2272(+)N 2 f F 1371(A)X 1 f F 1440(,)X 2 f F 1506(A)X 9 f F 1597(\254)X 1706(a)X 2 f F 1761(xy)X 9 f F 1806 2287 MXY (rn)96 500 oc 8 s 2 f F 1876 2245(T)N 11 s 9 f F 1945 2272(+)N 2 f F 2015(A)X 1 f F 2084(,)X 2 f F 2150(H)X 9 f F 2250(\254)X 2359(a)X 2 f F 2414(xx)X 9 f F 2459 2287 MXY (rn)96 500 oc 8 s 2 f F 2529 2245(T)N 11 s 9 f F 2598 2272(+)N 2 f F 2668(H)X 1 f F 2746(,)X 2812(and)X 2 f F 2961(H)X 9 f F 3061(\254)X 3170(a)X 2 f F 3225(xy)X 9 f F 3270 2287 MXY (rn)96 500 oc 8 s 2 f F 3340 2245(T)N 11 s 9 f F 3409 2272(+)N 3479(a)X 3483 2265 MXY (rn)96 500 oc 3486 MX (rn)96 500 oc 2 f F 3534 2272(yx)N 9 f F 3579 2287 MXY (rn)96 500 oc 8 s 2 f F 3649 2245(T)N 11 s 9 f F 3718 2272(+)N 2 f F 3788(H)X 1 f F 3866(,)X 843 2448(where)N 2 f F 1101(H)X 1 f F 1223(is)X 1304(a)X 1365(Hermitian)X 1745(matrix.)X 555 2704(c\))N 667(Solution)X 989(of)X 1084(triangular)X 1449(equations)X 1809(of)X 1904(the)X 2034(form)X 2 f F 862 2880(x)N 9 f F 938(\254)X 2 f F 1047(T)X 8 s 9 f F 1133 2853(-)N 1 f F 1168(1)X 11 s 2 f F 2880(x)Y 1 f F 1254(,)X 2 f F 1298(x)X 9 f F 1374(\254)X 2 f F 1483(T)X 8 s 9 f F 1569 2853(-)N 2 f F 1604(T)X 11 s F 1651 2880(x)N 1 f F 1705(,)X 1771(and)X 2 f F 1942(x)X 9 f F 2018(\254)X 2 f F 2127(T)X 9 f F 2143 2873 MXY (rn)96 500 oc 8 s F 2213 2853(-)N 2 f F 2248(T)X 11 s F 2295 2880(x)N 1 f F 2349(,)X 843 3056(where)N 2 f F 1079(T)X 1 f F 1165(is)X 1246(a)X 1307(non-singular)X 1774(upper)X 1996(or)X 2091(lower)X 2313(triangular)X 2678(matrix.)X 755 3232(Where)N 1015(appropriate,)X 1464(the)X 1598(operations)X 1991(are)X 2124(applied)X 2410(to)X 2505(general,)X 2812(general)X 3097(band,)X 3316(Hermitian,)X 3722(Hermitian)X 4106(band,)X 555 3360(triangular,)N 943(and)X 1093(triangular)X 1458(band)X 1651(matrices)X 1972(in)X 2063(both)X 2242(real)X 2396(and)X 2545(complex)X 2871(arithmetic,)X 3274(and)X 3423(in)X 3514(single)X 3747(and)X 3896(double)X 4158(pre-)X 555 3488(cision.)N 755 3664(In)N 854(Appendix)X 1227(B)X 1312(we)X 1440(propose)X 1744(corresponding)X 2273(sets)X 2431(of)X 2530(routines)X 2840(in)X 2935(which)X 3176(the)X 3310(internal)X 3606(computation)X 4074(is)X 4158(per-)X 555 3792(formed)N 843(in)X 946(extended)X 1297(precision,)X 1675(and)X 1835(the)X 1976(vectors)X 2 f F 2263(x)X 1 f F 2350(and/or)X 2 f F 2608(y)X 1 f F 2695(are)X 2835(stored)X 3083(in)X 3185(extended)X 3536(precision,)X 3914(so)X 4025(that)X 4191(the)X 555 3920(extra)N 755(internal)X 1049(precision)X 1396(is)X 1479(not)X 1616(all)X 1728(discarded)X 2088(on)X 2199(return)X 2432(from)X 2626(the)X 2757(routine.)X 3052(This)X 3232(proposal)X 3558(is)X 3640(aimed)X 3879(at)X 3966(machines)X 555 4048(with)N 735(extended)X 1076(precision)X 1422(arithmetic)X 1804(registers;)X 2150(for)X 2275(example)X 2597(machines)X 2953(performing)X 3371(IEEE)X 3584(arithmetic)X 3965([12].)X 4177(We)X 555 4176(propose)N 856(these)X 1059(routines)X 1365(as)X 1460(an)X 1565(optional)X 1877(extension)X 2237(to)X 2328(the)X 2458(Level)X 2681(2)X 2747(BLAS)X 2994(because)X 3294(it)X 3366(is)X 3447(not)X 3582(possible)X 3893(to)X 3984(specify)X 4260(a)X 555 4304(complete)N 912(set)X 1043(within)X 1302(the)X 1442(confines)X 1772(of)X 1877(ANSI)X 2113(Fortran)X 2404(77.)X 2568(The)X 2737(only)X 2926(case)X 3109(that)X 3274(can)X 3428(be)X 3543(realized)X 3854(is)X 3945(where)X 4191(the)X 555 4432(matrix)N 821(is)X 915(real)X 1082(single)X 1328(precision)X 1686(and)X 1848(the)X 1991(extended)X 2344(precision)X 2702(vectors)X 2991(are)X 3133(real)X 3300(double)X 3575(precision.)X 3977(Code)X 4197(for)X 555 4560(these)N 758(routines)X 1064(is)X 1145(not)X 1280(included)X 1606(in)X 1697([7].)X 3 f F 555 4816(3.)N 643(Naming)X 963(Conventions)X 1 f F 755 4992(The)N 922(name)X 1143(of)X 1245(a)X 1313(Level)X 1543(2)X 1616(BLAS)X 1870(is)X 1958(in)X 2056(the)X 2193(LINPACK)X 2602(style)X 2798(and)X 2954(consists)X 3262(of)X 3364(five)X 3530(characters,)X 3937(the)X 4074(last)X 4226(of)X 555 5120(which)N 792(may)X 966(be)X 1071(blank.)X 1311(The)X 1470(fourth)X 1707(and)X 1856(fifth)X 2030(characters)X 2408(in)X 2499(the)X 2629(name)X 2842(denote)X 3099(the)X 3229(type)X 3403(of)X 3498(operation,)X 3875(as)X 3970(follows:)X %%Page: 2 4 2 p 9 s 0 xH 0 xS 1 f F 11 s F 2354 392(-)N 2405(2)X 2471(-)X 555 704(number)N 856(of)X 961(computers,)X 1382(thus)X 1561(improving)X 1961(the)X 2101(efficiency)X 2485(of)X 2590(the)X 2730(BLAS.)X 3008(However,)X 3382(with)X 3570(some)X 3787(of)X 3891(the)X 4030(modern)X 555 832(machine)N 881(architectures,)X 1380(the)X 1515(use)X 1659(of)X 1759(the)X 1894(BLAS)X 2146(is)X 2232(not)X 2372(the)X 2507(best)X 2676(way)X 2849(to)X 2945(improve)X 3265(the)X 3399(efficiency)X 3777(of)X 3876(higher)X 4127(level)X 555 960(codes.)N 835(On)X 978(vector)X 1234(machines,)X 1625(for)X 1763(example,)X 2120(one)X 2282(needs)X 2517(to)X 2621(optimize)X 2966(at)X 3065(least)X 3262(at)X 3361(the)X 3504(level)X 3711(of)X 3819(matrix-vector)X 555 1088(operations)N 948(in)X 1043(order)X 1254(to)X 1349(approach)X 1697(the)X 1831(potential)X 2166(efficiency)X 2543(of)X 2641(the)X 2774(machine)X 3098(\(see)X 3264([2)X 3362(and)X 3514(3]\);)X 3666(and)X 3818(the)X 3951(use)X 4093(of)X 4191(the)X 555 1216(BLAS)N 813(inhibits)X 1112(this)X 1273(optimization)X 1754(because)X 2065(they)X 2250(hide)X 2435(the)X 2576(matrix-vector)X 3089(nature)X 3342(of)X 3448(the)X 3589(operations)X 3988(from)X 4191(the)X 555 1344(compiler.)N 755 1520(During)N 1038(the)X 1180(Gatlinburg)X 1596(meeting)X 1915(of)X 2022(June,)X 2239(1984)X 2449(\(Waterloo,)X 2862(Ontario\))X 3194(discussions)X 3629(among)X 3903(the)X 4044(partici-)X 555 1648(pants)N 765(encouraged)X 1193(two)X 1348(of)X 1444(us)X 1545(\(Dongarra)X 1928(and)X 2078(Hammarling\))X 2576(to)X 2668(prepare)X 2954(a)X 3016(proposed)X 3361(set)X 3482(of)X 3578(extended)X 3919(BLAS.)X 4211(At)X 555 1776(about)N 774(the)X 905(same)X 1109(time)X 1290(IFIP)X 1469(Working)X 1805(Group)X 2052(2.5)X 2185(started)X 2443(a)X 2505(project)X 2772(on)X 2882(the)X 3012(same)X 3215(subject)X 3487(at)X 3573(their)X 3757(annual)X 4014(meeting)X 555 1904(in)N 646(Pasadena,)X 1017(CA.)X 755 2080(An)N 887(initial)X 1120(proposal)X 1448(was)X 1609(drafted)X 1883(and)X 2035(presented)X 2397(at)X 2486(the)X 2619(Parvec)X 2883(IV)X 2999(workshop)X 3369(held)X 3545(at)X 3633(Purdue)X 3906(Univ.,)X 4150(Oct.)X 555 2208(29-30,)N 810(1984.)X 1058(At)X 1174(that)X 1335(time)X 1521(two)X 1681(more)X 1890(authors)X 2177(joined)X 2426(the)X 2562(project)X 2835(\(Hanson)X 3160(and)X 3315(du)X 3431(Croz\).)X 3681(A)X 3771(series)X 3998(of)X 4098(meet-)X 555 2336(ings)N 731(were)X 930(planned)X 1238(so)X 1345(that)X 1507(the)X 1643(project)X 1916(would)X 2164(reflect)X 2417(the)X 2553(best)X 2723(thinking)X 3046(of)X 3147(the)X 3283(mathematical)X 3788(software)X 4118(com-)X 555 2464(munity.)N 884(Three)X 1123(meetings)X 1475(soliciting)X 1838(input)X 2053(were)X 2256(held.)X 2485(These)X 2728(occurred)X 3068(at)X 3165(SIAM)X 3417(conferences:)X 3894(The)X 4064(Spring)X 555 2592(Meeting)N 886(of)X 996(the)X 1141(Society,)X 1465(\(Seatle,)X 1769(WA,)X 1974(July)X 2158(16-20,)X 2422(1984\);)X 2689(The)X 2863(Conference)X 3305(on)X 3430(Applied)X 3750(Linear)X 4016(Algebra)X 555 2720(\(Raleigh,)N 917(NC,)X 1097(April)X 1319(29-May)X 1633(2,)X 1735(1985\);)X 2001(The)X 2174(Fall)X 2347(Meeting)X 2676(of)X 2784(the)X 2927(Society,)X 3249(\(Tempe,)X 3580(AZ,)X 3754(October)X 4072(28-30,)X 555 2848(1985\);)N 812(The)X 976(Conference)X 1408(on)X 1523(Parallel)X 1820(Processing)X 2228(for)X 2357(Scientific)X 2722(Computing)X 3146(\(Norfolk,)X 3501(VA,)X 3675(November)X 4072(18-21,)X 555 2976(1985\).)N 755 3152(Earlier,)N 1056(a)X 1134(modified)X 1492(proposal)X 1834(was)X 2009(printed)X 2298(in)X 2406(the)X 2553(SIGNUM)X 2937(Newletter,)X 3345([6].)X 3529(In)X 3640(that)X 3811(document)X 4197(we)X 555 3280(invited)N 831(readers)X 1113(to)X 1211(send)X 1401(us)X 1508(their)X 1699(views)X 1933(and)X 2089(suggestions)X 2529(for)X 2660(changes)X 2972(to)X 3070(the)X 3207(design)X 3466(of)X 3568(the)X 3705(extended)X 4052(BLAS.)X 555 3408(Thus)N 763(we)X 897(have)X 1095(appealed)X 1440(to)X 1540(a)X 1610(wide)X 1812(audience)X 2156(within)X 2413(the)X 2552(mathematical)X 3060(software)X 3393(community.)X 3871(Our)X 4038(hope)X 4240(is)X 555 3536(that)N 715(the)X 850(proposed)X 1199(set)X 1324(of)X 1424(names)X 1676(that)X 1836(constitue)X 2182(the)X 2317(extended)X 2661(BLAS)X 2912(will)X 3076(find)X 3244(wide)X 3441(application)X 3860(in)X 3955(the)X 4089(future)X 555 3664(software)N 879(of)X 974(numerical)X 1349(linear)X 1572(algebra)X 1853(and)X 2002(provide)X 2293(a)X 2354(useful)X 2591(tool)X 2751(for)X 2875(implementors)X 3383(and)X 3532(users.)X 755 3840(We)N 908(believe)X 1194(that)X 1358(the)X 1497(time)X 1686(is)X 1776(right)X 1974(to)X 2074(specify)X 2359(an)X 2473(additional)X 2858(set)X 2986(of)X 3089(BLAS)X 3344(designed)X 3687(for)X 3819(matrix-vector)X 555 3968(operations.)N 970(It)X 1050(has)X 1193(been)X 1385(our)X 1527(experience)X 1933(that)X 2091(a)X 2155(small)X 2372(set)X 2495(of)X 2593(matrix-vector)X 3098(operations)X 3490(occur)X 3710(frequently)X 4097(in)X 4191(the)X 555 4096(implementation)N 1146(of)X 1254(many)X 1485(of)X 1593(the)X 1736(most)X 1943(common)X 2287(algorithms)X 2700(in)X 2804(linear)X 3040(algebra.)X 3378(We)X 3535(define)X 3790(here)X 3976(the)X 4118(basic)X 555 4224(operations)N 949(for)X 1078(that)X 1238(set,)X 1385(together)X 1701(with)X 1884(the)X 2018(naming)X 2309(conventions)X 2761(and)X 2914(the)X 3048(calling)X 3315(sequences.)X 3741(Routines)X 4081(at)X 4171(this)X 555 4352(level)N 753(should)X 1014(provide)X 1309(a)X 1374(reasonable)X 1776(compromise)X 2238(between)X 2557(the)X 2691(sometimes)X 3095(conflicting)X 3504(aims)X 3697(of)X 3795(efficiency)X 4172(and)X 555 4480(modularity)N 976(and)X 1136(it)X 1219(is)X 1311(our)X 1461(hope)X 1665(that)X 1830(efficient)X 2156(implementations)X 2778(will)X 2948(become)X 3254(available)X 3605(on)X 3725(a)X 3796(wide)X 3999(range)X 4226(of)X 555 4608(computer)N 910(architectures.)X 755 4784(In)N 851(this)X 1002(paper)X 1220(we)X 1345(shall)X 1535(refer)X 1723(to)X 1815(the)X 1945(existing)X 2247(BLAS)X 2494(of)X 2589(Lawson)X 2889(et)X 2975(al.)X 3105(as)X 3200(``Level)X 3481(1)X 3547(BLAS'',)X 3874(and)X 4023(the)X 4153(new)X 555 4912(extended)N 900(set)X 1025(as)X 1125(``Level)X 1410(2)X 1480(BLAS''.)X 1833(The)X 1996(Level)X 2223(2)X 2293(BLAS)X 2544(involve)X 2 f F 2835(O)X 1 f F 2913(\()X 2 f F 2942(mn)X 1 f F 3064(\))X 3119(scalar)X 3350(operations)X 3743(where)X 2 f F 3983(m)X 1 f F 4087(and)X 2 f F 4240(n)X 1 f F 555 5040(are)N 687(the)X 820(dimensions)X 1247(of)X 1345(the)X 1478(matrix)X 1733(involved.)X 2088(These)X 2322(could)X 2542(be)X 2649(programmed)X 3123(by)X 3235(a)X 3298(series)X 3522(of)X 3619(calls)X 3805(to)X 3898(the)X 4030(Level)X 4255(1)X 555 5168(BLAS,)N 825(though)X 1093(we)X 1218(do)X 1329(not)X 1465(recommend)X 1904(that)X 2060(they)X 2235(be)X 2341(implemented)X 2826(in)X 2918(that)X 3074(way.)X 3265(Hence,)X 3534(in)X 3626(a)X 3688(natural)X 3956(sense,)X 4191(the)X 555 5296(Level)N 778(2)X 844(BLAS)X 1091(are)X 1220(performing)X 1638(basic)X 1841(operations)X 2230(at)X 2316(one)X 2465(level)X 2659(higher)X 2906(than)X 3080(the)X 3210(Level)X 3433(1)X 3499(BLAS.)X 755 5472(In)N 852([7])X 977(we)X 1102(present)X 1379(a)X 1441(model)X 1685(implementation)X 2264(of)X 2360(the)X 2491(Level)X 2715(2)X 2782(BLAS)X 3030(in)X 3122(Fortran)X 3404(77)X 3515(\(extended)X 3885(to)X 3977(include)X 4260(a)X 555 5600(COMPLEX*16)N 1129(data)X 1298(type\),)X 1523(and)X 1672(also)X 1836(a)X 1897(set)X 2017(of)X 2112(rigorous)X 2427(test)X 2572(programs.)X %%Page: 1 3 1 p 10 s 0 xH 0 xS 1 f F 12 s 3 f F 1756 672(An)N 1902(Extended)X 2315(Set)X 2467(of)X 2571(Fortran)X 1597 864(Basic)N 1840(Linear)X 2142(Algebra)X 2497(Subprograms)X 11 s 2 f F 2054 1056(Jack)N 2237(J.)X 2320(Dongarra)X 7 s F 2686 1032(\262)N 10 s 1 f F 1642 1200(Mathematics)N 2076(and)X 2212(Computer)X 2552(Science)X 2822(Division)X 1892 1296(Argonne)N 2193(National)X 2489(Laboratory)X 1986 1392(Argonne,)N 2307(Illinois)X 2553(60439)X 11 s 2 f F 2082 1584(Jeremy)N 2357(Du)X 2486(Croz)X 10 s 1 f F 1820 1728(Numerical)N 2179(Algorithms)X 2563(Group)X 2788(Ltd.)X 1762 1824(NAG)N 1956(Central)X 2212(Office,)X 2458(Mayfield)X 2772(House)X 1759 1920(256)N 1899(Banbury)X 2195(Road,)X 2404(Oxford)X 2656(OX2)X 2832(7DE)X 11 s 2 f F 2051 2112(Sven)N 2239(Hammarling)X 10 s 1 f F 1820 2256(Numerical)N 2179(Algorithms)X 2563(Group)X 2788(Ltd.)X 1762 2352(NAG)N 1956(Central)X 2212(Office,)X 2458(Mayfield)X 2772(House)X 1759 2448(256)N 1899(Banbury)X 2195(Road,)X 2404(Oxford)X 2656(OX2)X 2832(7DE)X 11 s 2 f F 2038 2640(Richard)N 2344(J.)X 2427(Hanson)X 10 s 1 f F 2103 2784(Applied)N 2381(Math)X 2590(2646)X 1924 2880(Sandia)N 2162(National)X 2458(Laboratory)X 1821 2976(Albuquerque,)N 2280(New)X 2452(Mexico)X 2717(87185)X 2 f F 699 3388(Abstract)N 1 f F 1001(\320)X 1105(This)X 1271(paper)X 1474(describes)X 1797(an)X 1897(extension)X 2228(to)X 2314(the)X 2436(set)X 2549(of)X 2640(Basic)X 2842(Linear)X 3076(Algebra)X 3359(Subprograms.)X 3830(The)X 699 3484(extensions)N 1065(are)X 1192(targeted)X 1479(at)X 1565(matrix-vector)X 2030(operations)X 2392(which)X 2616(should)X 2857(provide)X 3130(for)X 3252(efficient)X 3548(and)X 3692(portable)X 699 3580(implementations)N 1252(of)X 1339(algorithms)X 1701(for)X 1815(high)X 1977(performance)X 2404(computers.)X 11 s 3 f F 555 3960(1.)N 665(Introduction)X 1 f F 755 4136(In)N 860(1973)X 1068(Hanson,)X 1390(Krogh,)X 1668(and)X 1826(Lawson)X 2135(wrote)X 2366(an)X 2480(article)X 2732(in)X 2832(the)X 2971(SIGNUM)X 3347(Newsletter)X 3759(\(Vol.)X 3995(8,)X 4092(no.)X 4233(4,)X 555 4264(page)N 746(16\))X 888(describing)X 1280(the)X 1413(advantages)X 1829(of)X 1927(adopting)X 2261(a)X 2325(set)X 2448(of)X 2546(basic)X 2752(routines)X 3061(for)X 3187(problems)X 3539(in)X 3632(linear)X 3857(algebra.)X 4162(The)X 555 4392(original)N 855(basic)X 1061(linear)X 1287(algebra)X 1571(subprograms,)X 2072(now)X 2248(commonly)X 2651(referred)X 2953(to)X 3047(as)X 3145(the)X 3278(BLAS)X 3527(and)X 3678(fully)X 3869(described)X 4230(in)X 555 4520(Lawson,)N 888(Hanson,)X 1211(Kincaid,)X 1545(and)X 1705(Krogh)X 1962([9,10],)X 2229(have)X 2428(been)X 2627(very)X 2815(successful)X 3208(and)X 3367(have)X 3565(been)X 3763(used)X 3956(in)X 4057(a)X 4128(wide)X 555 4648(range)N 779(of)X 881(software)X 1212(including)X 1575(LINPACK)X 1984([4])X 2115(and)X 2271(many)X 2496(of)X 2598(the)X 2735(algorithms)X 3141(published)X 3512(by)X 3628(the)X 3764(ACM)X 3992(Transac-)X 555 4776(tions)N 769(on)X 898(Mathematical)X 1425(Software.)X 1805(In)X 1919(particular)X 2298(they)X 2491(are)X 2639(an)X 2763(aid)X 2912(to)X 3022(clarity,)X 3311(portability,)X 3743(modularity)X 4172(and)X 555 4904(maintenance)N 1028(of)X 1128(software)X 1457(and)X 1611(they)X 1790(have)X 1983(become)X 2283(a)X 2 f F 2348(de)X 2457(facto)X 1 f F 2660(standard)X 2984(for)X 3112(the)X 3246(elementary)X 3664(vector)X 3910(operations.)X 555 5032(An)N 684(excellent)X 1025(discussion)X 1414(of)X 1509(the)X 2 f F 1639(raison)X 1886(d')X 1997(\303)X 1981(etre)X 1 f F 2140(of)X 2235(the)X 2365(BLAS)X 2612(is)X 2693(given)X 2911(in)X 3002(Dodson)X 3297(and)X 3446(Lewis)X 3683([1].)X 755 5208(Special)N 1044(versions)X 1366(of)X 1467(the)X 1603(BLAS,)X 1878(in)X 1975(some)X 2189(cases)X 2402(machine)X 2729(code)X 2923(versions,)X 3266(have)X 3460(been)X 3654(implemented)X 4144(on)X 4260(a)X 8 s 9 f F 555 5288 MXY (ru)137 500 oc (ru)137 500 oc (ru)137 500 oc (ru)137 500 oc (ru)137 500 oc (ru)137 500 oc (ru)137 500 oc (ru)137 500 oc (ru)137 500 oc (ru)137 500 oc (ru)137 500 oc (ru)137 500 oc (ru)137 500 oc (ru)137 500 oc (ru)137 500 oc (ru)137 500 oc (ru)137 500 oc (ru)137 500 oc 7 s 2 f F 555 5352(\262)N 9 s 1 f F 592 5376(Work)N 794(supported)X 1116(in)X 1210(part)X 1360(by)X 1470(the)X 1596(Applied)X 1866(Mathematical)X 2300(Sciences)X 2590(subprogram)X 2972(of)X 3069(the)X 3194(Office)X 3415(of)X 3512(Energy)X 555 5464(Research,)N 855(U.)X 943(S.)X 1019(Department)X 1377(of)X 1455(Energy,)X 1699(under)X 1881(Contract)X 2147(W-31-109-Eng-38.)X 555 5728(Typeset)N 801(on)X 891(January)X 1133(5,)X 1205(1988.)X %%Page: 0 2 0 p 10 s 0 xH 0 xS 1 f F 2427 672(.)N 11 s 3 f F 2188 1728(ABSTRACT)N 10 s 1 f F 555 2112(This)N 724(paper)X 930(describes)X 1256(an)X 1359(extension)X 1693(to)X 1782(the)X 1907(set)X 2023(of)X 2117(Basic)X 2322(Linear)X 2558(Algebra)X 2843(Subprograms.)X 3316(The)X 3467(extensions)X 3831(are)X 3956(targeted)X 4241(at)X 555 2208(matrix-vector)N 1023(operations)X 1388(which)X 1615(should)X 1859(provide)X 2135(for)X 2260(efficient)X 2559(and)X 2706(portable)X 3000(implementations)X 3564(of)X 3661(algorithms)X 4033(for)X 4157(high)X 555 2304(performance)N 982(computers.)X %%Page: 1 1 1 p 10 s 0 xH 0 xS 1 f F 10 s 0 xH 0 xS 1 f F 2427 672(.)N 1730 1728(ARGONNE)N 2142(NATIONAL)X 2577(LABORATORY)X 2023 1824(9700)N 2203(South)X 2409(Cass)X 2580(Avenue)X 2033 1920(Argonne,)N 2354(Illinois)X 2620(60439)X 12 s 3 f F 1856 2361(An)N 2002(Extended)X 2415(Set)X 2567(of)X 2671(Fortran)X 1697 2553(Basic)N 1940(Linear)X 2242(Algebra)X 2597(Subprograms)X 11 s F 946 2937(Jack)N 1144(J.)X 1232(Dongarra,)X 1642(Jeremy)X 1942(Du)X 2076(Croz,)X 2305(Sven)X 2508(Hammarling,)X 3037(and)X 3201(Richard)X 3531(J.)X 3619(Hanson)X 10 s 1 f F 1699 3321(Mathematics)N 2133(and)X 2269(Computer)X 2609(Science)X 2879(Division)X 1703 3609(Technical)N 2040(Memorandum)X 2514(No.)X 2652(41)X 2752(\(Revision)X 3083(3\))X 2155 4108(September,)N 2538(1986)X %%Trailer xt xs .