From 999830f22593fd24d4cc9c437fd8d1689e65754f Mon Sep 17 00:00:00 2001 From: sfilippone Date: Tue, 19 Nov 2024 12:11:26 +0100 Subject: [PATCH] Update description of clean_zeros --- docs/doxypsb | 2 +- docs/html/userhtml0x.png | Bin 1499 -> 1556 bytes docs/html/userhtml10x.png | Bin 1966 -> 1955 bytes docs/html/userhtml11x.png | Bin 1172 -> 1172 bytes docs/html/userhtml12x.png | Bin 1771 -> 1742 bytes docs/html/userhtml15x.png | Bin 1420 -> 1447 bytes docs/html/userhtml22x.png | Bin 1390 -> 1405 bytes docs/html/userhtml23x.png | Bin 1236 -> 1222 bytes docs/html/userhtml24x.png | Bin 978 -> 985 bytes docs/html/userhtml27x.png | Bin 1848 -> 1848 bytes docs/html/userhtml28x.png | Bin 2035 -> 2012 bytes docs/html/userhtml30x.png | Bin 2273 -> 2274 bytes docs/html/userhtml33x.png | Bin 1731 -> 1743 bytes docs/html/userhtml34x.png | Bin 2273 -> 2274 bytes docs/html/userhtml4x.png | Bin 1756 -> 1754 bytes docs/html/userhtml6x.png | Bin 2326 -> 2320 bytes docs/html/userhtml7x.png | Bin 1966 -> 1955 bytes docs/html/userhtml9x.png | Bin 1798 -> 1795 bytes docs/html/userhtmlse3.html | 515 +++++++++++++++++++------------------ docs/psblas-3.9.pdf | 92 +++---- docs/src/datastruct.tex | 4 +- 21 files changed, 308 insertions(+), 305 deletions(-) diff --git a/docs/doxypsb b/docs/doxypsb index 51b8c033..1e7456a9 100644 --- a/docs/doxypsb +++ b/docs/doxypsb @@ -52,7 +52,7 @@ PROJECT_LOGO = # If a relative path is entered, it will be relative to the location # where doxygen was started. If left blank the current directory will be used. -OUTPUT_DIRECTORY = ../../psblas-3.4-doxygen +OUTPUT_DIRECTORY = ../../psblas-3.9-doxygen # If the CREATE_SUBDIRS tag is set to YES, then doxygen will create # 4096 sub-directories (in 2 levels) under the output directory of each output diff --git a/docs/html/userhtml0x.png b/docs/html/userhtml0x.png index 3e324fc864b1e0d36888ad4e96e38b1bffd729c7..7b06aa113839f0741d4ef2040d6bdadf8d98d282 100644 GIT binary patch delta 1517 zcmV847Rz=V6(T}uag}p^dsM++DNeCs?AY;5fIR`(fX|DR(oIT3w*N1s z^okY5f3(l7_Td@&asATzrIc85X?xX^XV0{bx@R#RIXeh%Cr7Uj?R(&WI!;EiVo4C%z*LACm@x?G;K;KK4Kb4el!V%f(UfOOEIn$rEV5+H@#Y*-gYm?z#W*|@=hEaTM~lW< z!l#pKiD|-->SIZ^X}c!!Vs6!6CN|pGtz#T~;ut=2>QV)JmZgcri9v26oAO$U)!NjV zMnf&L$G%DknSvF?e=Iu{rHxMHC^yREda3RH*?&%8pkI+VbR2V(QAfvT;h0)}6^X)+ z-#TAw&xXKg@@cxYI8r_=Fq*b&(ksTS1&fW_JI2lT7o-JzP!bWw`S+>>4)+&)k?ytOuc}J~y0Dy54*3sd5~#gKZoWO+V0#bf2%iylug0gf89v#`TAaY1 zh<_%Z8_=_zd5)a%wZT6d#+n2M(HSvLAn&qqI9}Q1oPW+a6C`|jh0OMjGyqNBXta#m~Ca>_PT zlQK&6DfBiuno*drs6RRtOSL^?M_rjl8{PfFcDv89RVJt%bSg?wO)!OBj?eg(3|qFA zQj6x&?1^QYmMMjvu5Xu5*VjtNf(O@brBu^)tq|CJ+om6GCZ)W|?HwN>(Sb;VFn>0H zD9nbF)gk_@gVKpMmMI+LcQUzVbPtPMWLosr*>+5Yp?#R(f+j*AK@<*HBgFxiCjAY+C zaFfU@vZ!VWf(FMVI_XDbavifU?QC`}f+zBNQ9IYJfs6cVma*r;_=TP>n`1-#6xm5R zf}5`G>ex}9T^DanR4&1aZrC%tFfjeK9d7M;jzcC4_qbp1?`71^*UY8rfq&znA7i2G z8!vYapG!GXzglGb%=qYu->qIbhM$CJWFq9wf5M@e!?H%iC$fLMxucGU%BA}6M_s{& zsz8%HE2>pK?1=|oTEbH-rOp8ip?s)9L@o{}6CN5KDwn*BA&F9&M!Xjh?$KsRw#(Dm z10&~bzr@{fARaK6?601%a%RlzFL-l0es!>fr$=)eoCD`*$BsJ#zu*=TUJiT|kw5g6 zJ{xgf46#xaFEo~bHHOU{n`8rTJ@!A=?6`Lj5&W1yARyR~li>NHk>9+nO7{N)Y6Ro% Tyo33M00000NkvXXu0mjf)ZhYY delta 1460 zcmV;l1xxyr4BHEkIe(2wL_t(&1?`)Sbrm-dg{4$LD8Y0PD8Y0V!H9!YWDhSYl zQv#*~QUcI{INzSRVx-k-waYW{JM2AYkM>6z&D@#M-?L*%DV!29#_JHm3zPXcrS$QX z@(&#N8TjoEI(ZdBcxrMV-huqHL5%S##`x)M6z(9#co}1S(0{423-^_ylP5+>>1zn# z!!DK%+-KZ`5T4&>1y6~SC&q#ANGZKZDLwlB=0J`6%n^G6HX2;dLYPK|FChe$09Wim z{AG1+LzwE&hI%}|P`wZWQ!d}G*5s*8ue3djbfo-)`qr=B-_|m$e{`b`VI2*@Uv$7MI{&654;?IA3}I-9MT_sUsT^~|Gabh&HUrruHCQs(!Pt| zR=JB$Y#iYzgl)E)PvH<b-XL zlo-61Jd&i4r}`tM3uNyM2!;T3r~^s?jveSKJ$-wULw^Z^9O(<8km+p_M_t>o#bhE^ z92UCCUN>k+M}i&!Q{tPf+CS7m7x9_vO72Lx!Iz#RY}fOwU-u0g*7%g1MUEP=xoEpf zHr0{86(3(lcu^fs{uC7YK zaYUU_+s&TBw+!kvm+E(|tUI3th95ayRw@e_SzAumjM0_1rd<8qf++`$mI94>%ofwK z#B^4v(WzM4m?MjzYsl2}-?iPh>p9)@D+UhQx_>rVM;9DLVA_%@4-~%dwfj+DO3seN z=<@00GIL<~ERLu%YP$`3MJ!mdd{SRq%6jw7iBgUKj6?);|GOzcp!`kZ#29a5j6B!q z%G-gr1dcm4d>KOcry&PjSZ=T!@)yfG&^ku${@${~_BEg*eAdvr7N7bieAdlY+<`qc zx_^A`z?$t0gv17eAIHEX9QX41Ce(@1az=Kbb;h#luawfCDJ7DGQx}v*u^P-AHL|>| zu%loI*RdhN|Gpsyecq>(;=)yv3`n3w?67?e=z#NTJh2xo9Z!ZIwTHne#>k3c30*$# z0RNiI>lh&PQ7;ZRZUmL^yf|`rhh$wWgng9Y2Mls?D@T${<`wEOl_)bqX0=b zZIJcemrn25^z084)MjLvFlxJGQo3bPOAjsUif=Z+6m~g2>r*m{Edb=f7 z?PE^Oa$mOjFZ6UWkXtPK^sO#?98q`FcE7A%T9(y)_nzy{(WE{_${TVQ95@8WGJoO` zpk!xW-#KHt@_LFbeRHx&j(loV*SC!qdQSTsb2yu^>`c>NYutR|Qp@6b)OM?jOfCgK z9PwNy0lX1#)MNI;COXSHn7w@CJtt9<43kG&{8h+p>0iIwVvpH`Zt#gN*faI*<(f{T ze6Dh|#ddd4H1SMZuiMsp8LiE-et&ns2{^6DdUFiHg)<zGZ zZ$VH0-GH!wqu-gH=0x7Nu3}`S-%;D0gIaQnQxlU*Lc$^Tz*S+B3t-8clD(mK!N0g# zDo5>6dka$eaw#dKV_g<}j&iiccC)AMmuGa%Go9>ND_Mh2>qQgrG^M1q+JAuqX950> z%LbK~?0==S9SAXdFmN-w4evMV&G&%==LiP&k3J~?CvP^;Gb`&4TZiz!Cq|6%hEs&j zMaCZ(z%R@ttDFn|<-tzdCNN{z@hyqLtfBX-F&C`?n?Hdp`)PmpW`^j9vc~6>QtLSO zKm)%rm-gEh3E*QHaJ>J@Z!HlFhWx1f)qearaNsOqN%HVV;`kd?UCGrNQOK_V O0000t#Q24F`3WWd=G02x4C1QcX& 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 diff --git a/docs/html/userhtml15x.png b/docs/html/userhtml15x.png index 7e4a6663fded9e1764626b3948c2da591b5e330f..3a2dbe010b49d0ab3868f6fc4338d863fd04b959 100644 GIT binary patch delta 1407 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 JPDHLkV1g6(TucA} diff --git a/docs/html/userhtml24x.png b/docs/html/userhtml24x.png index 52e4a38d9bae32ce08ed2adc2e3b062f67d58618..3ade441e5a63d6dab666061464c542555510d920 100644 GIT binary patch delta 942 zcmV;f15y0a2iXUZIe&{uL_t(&1?^aiaT75R-DM~MOa-Kb02L5A2v9+i4(t*#p#z5! zk`59&2z20-kkG+0@BHMEeOi5-Gqz{^X6(DstyWsC_N!(l2MhyMJuRP|Iu-kI5L zYA;wzRi9xw_-wPf<@IIo_BfPmA_DL7 z+gk_YA_7J9XfTHP*}2|F9t5~&8F=$IHBRMpmxhOIt!oV_8~1bGx(CoxansyfC1DS$ zidzas7rl=apnv&3nAx8S^0lCoT*q@mLEmUqs%!VI-wJnk`g} ztRzWO8m}?m5|7e%5rKl5ET|+~uu8_>ZV$9LxKzaB#lCPkQm!jOgSjX1czEYIxfbXp z3GkWsH7R2X48V`>t=KMH*_c@&?jnefk-aj5#YKQ8Sbt4OzL2&D&b<GxPP%GsCMRzVhzIFs5Zsz7!$9a7yvD@JwTR1k~5;bIeZh5%M1ZJ4{jr1NkNPq zBQv|sFigVCCaPW0h^+5(bc1#RYsiL+=HBcYurS5pcZI2gtddt<9Bx>%assH>GrGB5 zL$z#l)j+9r1NY?Ke#AQb6|B&8lfXhj)HWFA%zv>6Ze~iCw-Z=HHe_BNQwHTWFymZs>Xl*F;M~jj(CtZf}gvdUCR%ctuZ*#qVWQV*EsM;WRgq zdVh)+TERyV8S%2>Jq08YOT|3tXWg1e=V+#QIS%RFOP@?MlIiRKypj5%UcsL6Lw$l; zrGK~oTG==sd=@+?1Jd$jAxRfF^W=&4l}ytyk2Fi?!~(c02LchYuRCv{eI7@_xk=f0 zzze0eoE6=ptKd$7-QT<`yrjjJg?5>C)3VhxJiYU&X|w|H<7ha#jP~{0|B{XFwyAGP z>nVCIx0`)HJwm_E%>16(3RD#_^dd?|k|#JQXdo~xh9~+_V#$o~wxk^3AJ{5mp`lV? Q{Qv*}07*qoM6N<$f?CtT>i_@% delta 935 zcmV;Y16cgo2hsA-2h zbP%W@M+Z;>aR(bc>y5p(clICtwv6N_S$y`Idv<0mrGyi9hnZahxJfB}Z#vD)#sD5t zN-s@oK?Bu(0PX>t*Veq%xuImEegORJq6e;Tqt~i(0bB$4*MEiZA=gU5&wXePDVvmi z8S&w?fYlm)w=wD&S5`0q@U=33a4?ma+0@LQ0eq97eK3e@W=1ETH>4{X<0W6C@41=X zRGF_>orm&*I;!*rU zzpSnvsWdY?=TDCCSBlQ@0l=?(z@fdoBfrSNuRgZ{?tlNZF}6a`|%@)38Ta=?so-MUa`%!(LNL z^rB8Mvnv2k0Pc=4dYWW&p1s0SmB@QI$^?wA;#{`py&^IK_p=}?;$2~sfKP0-y_FLsMQ(J^ku^B!$v?@{RTVTyVx;rjXNjV_`nBsNnVJ*=~F95U>k(%iA3wQNe&1XFem z^nMy30`D;Dr51(UAHK;g4J2#xz@1(W#0)$A&VOlgU+5tlD=!)}H&zK$Y%R^*di1Co zEP?yC(wul+^+7{5Z(fbCB=zro{q>%u>HIdbX$^Z8_9b3{v65p&%ED=@SK%1fNAy(< zb3dImsvNiaAgw3u@j`hDQw|K)`PZ0=1Zq1jWwKu(&-}3wq@Y{;x0Ox%dCu|-$-uJw zzJJ7AAeb@G*|b%l9T*Nx^OPAOlx3jTGEP@St|wKBn}~)dNw`@HC23T@DjYK=QCRB zgxw%VU=+n~Y8x;!-l4Zm{o=CBKA}IPT#bf{g diff --git a/docs/html/userhtml27x.png b/docs/html/userhtml27x.png index 8aee367e720bcb13296db128141f7d28bb02c946..f94ad5e31f2620febb11e37ecd4920b12dc97119 100644 GIT binary patch delta 1804 zcmV+n2lM#24!91GL4TT$aTPZZ##c-VaFPlF9gw5~paXC!06MTI6)?~NP(cD6m{dSa z2X+U+?m(HJ_;k_f>EAm)9(H`+%$vJ+l2)tL?rL}MocG>Vtk^Z2b9cS>=ewr+El^s^ zou!O8=MJ2651n(bx1|9i&bh~obbpTZwrCGvZe`( z497W#P<}VF6Epi|qBf2LGrMbM&&=#>eAw+qOYW_i z=N$U_1%zr#e`ZFU_j1X2Gkd7<9O;XBxQ%05a&NU=RaRz(*FCAxF$)gyw9&p;Uurb> z`P|G-StD~UI)8BhM{l?>`>5--2uJzfr(k@H9Vs%LsDFQLz71%MPYVnxJe;M^2Jzg? zzG@W+fvX^bT;TD)m{}N*T~+Q%$cuXdBpV7c%)em(9sWXuU}k>@Vi}a%wB*;~dt}`` z{+igKuCT_#nc>6=nfLy=_x@)o5(>>G6W^ua#Mls`bM76Ty!TJM_unh--Pj}*2R=%{ zAL)oE{D0%V3spIwi}4+4(;3hFc;n%s1Jyy+>b<}0PP`COthZX{Pi98)9K+p!LD?1M zE>zoOr0gpW;sH6Pc#3nA)ED`atZ4%{R19y%yY?+O!U|fvb#-P$el_e;SEO%`Q1I|G zGXytF?DUL;?tbhSuTspT_@ArdzghCAgp$UPRDY=--X|oADQ(ewozkq`M|v_qXrcVX zpwm3HvFURu@09eVZM(V`Z)Yhzoeq!Vvn^zYLzu}up;2tpK2Gy%Ze$krb&x-ld$zZ6 zUam@z`;xwB96B(go9oO7f9YKLebkAo>WcU!N;sV+k*A(j$W$)&IU^zvlr^?V z0e^WmDMK<5&!_5HVvsXIo7qK8DdIe(tHz=H8wOtLAD>BqwjLM9k6xuzGuftNx0KyX z?irn8TdK5)qnP;V@y8s!KAK~;_dVW5*WH^tou_v{qAO7^O0=ZA7vFIwa0=uxD&g8x zkB?Aj1JY0}<|g@ZeUFY=F2u1-ES@Kl9Do0%q_+q7fZp&}g@}|_3D3yKdUMopoW8Tj zp`;qwzR24W49Tt{_kdcP3LfN`=L%WakEc;qgZzQs8h(&0H&EkECkd$P%ohBOVnkP1 zOU_dSHgb>}4i5;|j_DzWse}*@=LklYgS3yWakd2OG~%!>`bb-Z#B$)-jD4?`#3 zQ#1Q(c+mC;2A!R_IYwnyl6yq0jeipcC-=T!G+>0kV0@i5u=jbvAfm?G$ht@P8^Tp| zB>`*vJQ)r`Q6-IJjri_WMbLoIBCnJoIIM9(WHb%QRE=TsDJ<0KMh^698axgRE}oK0 zj0Xqs)xVj`t58Y!0)}K)k$XgGPXLNH+ZQ02Pw4PR$Q~RexkW131D7%i_@s71U!9X!gSYz+W0JF#fl1uGAJ_LWYqF8fH8%Tn;eHfAM&_W7Dt>H z-ova|(SveDiU%=|y?;?qj!)Rj`=eQLKx?9a72Z8!I8+I03ndBs<3_E1#kU5beg694 zrT|+&=gD>RaFaDnrzx+?u`CilLNjt4-sSL&PQ-H?UkF78kz3U$Np=;9qMMj!;(SPI>?U002ovP6b4+LSTaY?ti@i delta 1804 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 LNkvXXu0mjfXGg`5 delta 2000 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 O0000)c#Ek1iND5 z{wQ&Bl%u}G(s*S${KYx<**xRb@#aT~y&1Uoo~>{ct@Vx>Yw9@GcL?EY2*DaO^Kz5; zq>MW0c^8b0WmlB?-;0538)WNi!I|p+Coz$WIhe{H^I{Et5p19*xTWjn2JXFo5Wt;P^S+#bF6PfGQV8Dm_`!7ltM9tR)h$gW`vJwee{$f9iZ(W(4q zNS<>JL%vl<+ve#|+hZzg;bM+HyYT0nJO5@U%h|-%dcv8t6|WbYzoKLKo-Uk8=(^Qu;#( z;bV)ewSg|Xa4`pC{K**cf{Qtkedr02u3ZeyA%K@D4)fk$dGB9XB8iJ3LG`Y)vQz4N z?{8F|wjNNzj5>EZvnu83H(Cd^ie>fD4o> z=Nvmm$D=UB1w61QxNvF0uKXDrU>+~hyynn*#(#$c>dmigfcMt%RrLf~_|3Xb&=YjF z5)W=nj3$CZ9v>zsl|^GuhaTr55k&L%6~hxcoTYNTdy+kqTkX9|sfqCZ7FCZk$iIQ}oP6 z4u_kfmltT?^BhBvSNY31_t?l-9I0~_OU#8Q=OB7(u?#^ZVZ6B)uzzSK zjPn2oR+0YDtp2qDKh3+$QdpY55in2I4%o54pZdER8ubLxR$>-KUK+fO|Mn3>7i}k2 zsR)HE7}R?mGE=C-UkkR3A@3VACnKJZ_Qf!#1nnY^or_`0>M%UwEQT<~#T+coUkPcx z(>%zrv7kQ|oXEcP1kqMfnh{!0(g`dCG6)uI8AG0p%uDp%h5iy4 z2mLfd3x*vfd6_jq9GZT1I%MR7To`V9z?cTOS%tp>k}Z&JV?Oy{OeN1}Cb^j2QfjeFHQGMR7-(Nit(iK-{`3Cw zXJs~Kwaxpo&(ay)W6G2=$$x^A8mD;oA{V99nMupOu(IuU!~ZJ$6=cOU;ZW+fVa|Ig z(WUg%955&6y@6XL*7&YT=nP?s40(y7QB3LQQ0h+MLU$A_n5yxP>9rPr%5^`g$=_N} z#$k0GC8jp;Iq$XFdlv+){U{G#^oXr}98$e0TuicDCP-u1o0o!+hISf3*DdaT~DmA7yq?_CW|T6A8DKO2T2SBqwJN8UXDdwv zwUF3aMLMT!lC7s9Wg?H@U8}2%AH)Z6lA; zJFMDr`&}MvlE=604=(-t6fWlIvLt`z@Jupb)N|YMuB|7sO1l0F{6Y99mVjW^00000 LNkvXXu0mjfUsqUf delta 1719 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 P00000NkvXXu0mjfRE}`L diff --git a/docs/html/userhtml7x.png b/docs/html/userhtml7x.png index 11f5ee764c82014298361322fd41af7ea52846eb..d95c1025b5cbb5033bd5d8465770262faba4b8d8 100644 GIT binary patch delta 1919 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 DuZ3Nd diff --git a/docs/html/userhtmlse3.html b/docs/html/userhtmlse3.html index 9e86a90b..a47b797b 100644 --- a/docs/html/userhtmlse3.html +++ b/docs/html/userhtmlse3.html @@ -1712,154 +1712,155 @@ class="description">

call a%clean_zeros(info)

Eliminates zero coefficients in the input matrix. Note that depending on the internal storage format, there may still be some amount of zero padding in the -output. -

+output. Even after a call to this method, any explicit zeros on the main diagonal are +always kept in the data structure. +

-

+

Type:

-

Asynchronous. +

Asynchronous.

-

+

On Entry

-

+

-

+

a

-

the sparse matrix.

the sparse matrix.
A variable of type psb_Tspmat_type.
Scope: local.

-

+

-

+

On Return

-

+

-

+

a

-

The matrix a without zero coefficients.

The matrix a without zero coefficients.
A variable of type psb_Tspmat_type.

-

+

info

-

Return code.

-

+

Return code. +

3.2.13 get_diag — Get main diagonal
-

call a%get_diag(d,info) -

Returns a copy of the main diagonal. +

call a%get_diag(d,info) +

Returns a copy of the main diagonal.

-

+

Type:

-

Asynchronous. +

Asynchronous.

-

+

On Entry

-

+

-

+

a

-

the sparse matrix.

the sparse matrix.
A variable of type psb_Tspmat_type.
Scope: local.

-

+

-

+

On Return

-

+

-

+

d

-

A copy of the main diagonal.

A copy of the main diagonal.
A one-dimensional array of the appropriate type.

-

+

info

-

Return code.

-

+

Return code. +

3.2.14 clip_diag — Cut out main diagonal
-

call a%clip_diag(b,info) -

Returns a copy of a without the main diagonal. +

call a%clip_diag(b,info) +

Returns a copy of a without the main diagonal.

-

+

Type:

-

Asynchronous. +

Asynchronous.

-

+

On Entry

-

+

-

+

a

-

the sparse matrix.

the sparse matrix.
A variable of type psb_Tspmat_type.
Scope: local.

-

+

-

+

On Return

-

+

-

+

b

-

A copy of a without the main diagonal.

A copy of a without the main diagonal.
A variable of type psb_Tspmat_type.

-

+

info

-

Return code.

+

Return code. -

+

3.2.15 tril — Return the lower triangle
@@ -1869,83 +1870,83 @@ class="description">     call a%tril(l,info[,&        & diag,imin,imax,jmin,jmax,rscale,cscale,u]) -

-

Returns the lower triangular part of submatrix A(imin:imax,jmin:jmax), +

+

Returns the lower triangular part of submatrix A(imin:imax,jmin:jmax), optionally rescaling row/col indices to the range 1:imax-imin+1,1:jmax-jmin+1 and returing the complementary upper triangle.

-

+

Type:

-

Asynchronous. +

Asynchronous.

-

+

On Entry

-

+

-

+

a

-

the sparse matrix.

the sparse matrix.
A variable of type psb_Tspmat_type.
Scope: local.

-

+

diag

-

Include diagonals up to this one; diag=1 means the first superdiagonal, +

Include diagonals up to this one; diag=1 means the first superdiagonal, diag=-1 means the first subdiagonal. Default 0.

-

+

imin,imax,jmin,jmax

-

Minimum and maximum row and column indices.

Minimum and maximum row and column indices.
Type: optional.

-

+

rscale,cscale

-

Whether to rescale row/column indices. Type: optional.

-

+

Whether to rescale row/column indices. Type: optional. +

-

+

On Return

-

+

-

+

l

-

A copy of the lower triangle of a.

A copy of the lower triangle of a.
A variable of type psb_Tspmat_type.

-

+

u

-

(optional) A copy of the upper triangle of a.

(optional) A copy of the upper triangle of a.
A variable of type psb_Tspmat_type.

-

+

info

-

Return code.

-

+

Return code. +

3.2.16 triu — Return the upper triangle
@@ -1955,221 +1956,221 @@ class="description">     call a%triu(u,info[,&        & diag,imin,imax,jmin,jmax,rscale,cscale,l]) -

-

Returns the upper triangular part of submatrix A(imin:imax,jmin:jmax), +

+

Returns the upper triangular part of submatrix A(imin:imax,jmin:jmax), optionally rescaling row/col indices to the range 1:imax-imin+1,1:jmax-jmin+1, and returing the complementary lower triangle.

-

+

Type:

-

Asynchronous. +

Asynchronous.

-

+

On Entry

-

+

-

+

a

-

the sparse matrix.

the sparse matrix.
A variable of type psb_Tspmat_type.
Scope: local.

-

+

diag

-

Include diagonals up to this one; diag=1 means the first superdiagonal, +

Include diagonals up to this one; diag=1 means the first superdiagonal, diag=-1 means the first subdiagonal. Default 0.

-

+

imin,imax,jmin,jmax

-

Minimum and maximum row and column indices.

Minimum and maximum row and column indices.
Type: optional.

-

+

rscale,cscale

-

Whether to rescale row/column indices. Type: optional.

-

+

Whether to rescale row/column indices. Type: optional. +

-

+

On Return

-

+

-

+

u

-

A copy of the upper triangle of a.

A copy of the upper triangle of a.
A variable of type psb_Tspmat_type.

-

+

l

-

(optional) A copy of the lower triangle of a.

(optional) A copy of the lower triangle of a.
A variable of type psb_Tspmat_type.

-

+

info

-

Return code.

-

+

Return code. +

3.2.17 psb_set_mat_default — Set default storage format
-

call psb_set_mat_default(a) -

+

call psb_set_mat_default(a) +

-

+

Type:

-

Asynchronous. +

Asynchronous.

-

+

On Entry

-

+

-

+

a

-

a variable of class(psb_T_base_sparse_mat) requesting a new default +

a variable of class(psb_T_base_sparse_mat) requesting a new default storage format.
Type: required.

-

+

3.2.18 clone — Clone current object
-

call a%clone(b,info) -

+

call a%clone(b,info) +

-

+

Type:

-

Asynchronous. +

Asynchronous.

-

+

On Entry

-

+

-

+

a

-

the sparse matrix.

the sparse matrix.
Scope: local.

-

+

-

+

On Return

-

+

-

+

b

-

A copy of the input object. +

A copy of the input object.

-

+

info

-

Return code.

-

+

Return code. +

3.2.19 Named Constants
-

+

-

+

psb_dupl_ovwrt_

-

Duplicate coefficients should be overwritten (i.e. ignore duplications) +

Duplicate coefficients should be overwritten (i.e. ignore duplications)

-

+

psb_dupl_add_

-

Duplicate coefficients should be added; +

Duplicate coefficients should be added;

-

+

psb_dupl_err_

-

Duplicate coefficients should trigger an error conditino +

Duplicate coefficients should trigger an error conditino

-

+

psb_upd_dflt_

-

Default update strategy for matrix coefficients; +

Default update strategy for matrix coefficients;

-

+

psb_upd_srch_

-

Update strategy based on search into the data structure; +

Update strategy based on search into the data structure;

-

+

psb_upd_perm_

-

Update strategy based on additional permutation data (see tools routine +

Update strategy based on additional permutation data (see tools routine description).

-

+

3.3 Dense Vector Data Structure

-

The

The psb_T6. Among other simple things, we define here an extraction method that can be used to get a full copy of the part of the vector stored on the local process. -

The type declaration is shown in figure 

The type declaration is shown in figure 3 where T is a placeholder for the data type and precision variants

-

+

I

-

Integer; +

Integer;

-

+

S

-

Single precision real; +

Single precision real;

-

+

D

-

Double precision real; +

Double precision real;

-

+

C

-

Single precision complex; +

Single precision complex;

-

+

Z

-

Double precision complex.

-

The actual data is contained in the polymorphic component v%v; the separation between +

Double precision complex. +

The actual data is contained in the polymorphic component v%v; the separation between the application and the actual data is essential for cases where it is necessary to link to data storage made available elsewhere outside the direct control of the compiler/application, e.g. data stored in a graphics accelerator’s private memory. -


@@ -2236,7 +2237,7 @@ memory.
-

+

   type psb_T_base_vect_type
     TYPE(KIND_), allocatable :: v(:)
@@ -2247,7 +2248,7 @@ memory.
   end type  psb_T_vect_type
 
 
-

+


Listing 3: The PSBLAS defined data type that contains a dense vector.
@@ -2257,88 +2258,88 @@ class="content"> The PSBLAS defined data type that contains a dense vector.
3.3.1 Vector Methods
-

+

3.3.2 get_nrows — Get number of rows in a dense vector
-

nr = v%get_nrows() -

+

nr = v%get_nrows() +

-

+

Type:

-

Asynchronous. +

Asynchronous.

-

+

On Entry

-

+

-

+

v

-

the dense vector

the dense vector
Scope: local

-

+

-

+

On Return

-

+

-

+

Function value

-

The number of rows of dense vector v.

-

+

The number of rows of dense vector v. +

3.3.3 sizeof — Get memory occupation in bytes of a dense vector
-

memory_size = v%sizeof() -

+

memory_size = v%sizeof() +

-

+

Type:

-

Asynchronous. +

Asynchronous.

-

+

On Entry

-

+

-

+

v

-

the dense vector

the dense vector
Scope: local

-

+

-

+

On Return

-

+

-

+

Function value

-

The memory occupation in bytes.

-

+

The memory occupation in bytes. +

3.3.4 set — Set contents of the vector
@@ -2349,35 +2350,35 @@ class="description">  call  v%set(vect[,first,last])  call  v%zero() -

-

+

+

-

+

Type:

-

Asynchronous. +

Asynchronous.

-

+

On Entry

-

+

-

+

v

-

the dense vector

the dense vector
Scope: local

-

+

alpha

-

A scalar value.

A scalar value.
Scope: local
Type: in.
Specified as: a number of the data type indicated in Table 1.

-

+

first,last

-

Boundaries for setting in the vector.

Boundaries for setting in the vector.
Scope: local
Type: Intent: in.
Specified as: integers.

-

+

vect

-

An array

An array
Scope: local
Type: Intent: in.
Specified as: a number of the data type indicated in Table 1.

-

Note that a call to v%zero() is provided as a shorthand, but is equivalent to a call +

Note that a call to v%zero() is provided as a shorthand, but is equivalent to a call to v%set(zero) with the zero constant having the appropriate type and kind. -

+

-

+

On Return

-

+

-

+

v

-

the dense vector, with updated entries

the dense vector, with updated entries
Scope: local

-

+

3.3.5 get_vect — Get a copy of the vector contents
@@ -2444,54 +2445,54 @@ class="newline" />
 extv = v%get_vect([n])
 
-

-

+

+

-

+

Type:

-

Asynchronous. +

Asynchronous.

-

+

On Entry

-

+

-

+

v

-

the dense vector

the dense vector
Scope: local

-

+

n

-

Size to be returned

Size to be returned
Scope: local.
Type: optional; default: entire vector.

-

+

-

+

On Return

-

+

-

+

Function value

-

An allocatable array holding a copy of the dense vector contents. If +

An allocatable array holding a copy of the dense vector contents. If the argument n is specified, the size of the returned array equals the minimum between n is -

+

3.3.6 clone — Clone current object
@@ -2511,57 +2512,57 @@ class="zplmr7m-">n is
 call  x%clone(y,info)
 
-

-

+

+

-

+

Type:

-

Asynchronous. +

Asynchronous.

-

+

On Entry

-

+

-

+

x

-

the dense vector.

the dense vector.
Scope: local.

-

+

-

+

On Return

-

+

-

+

y

-

A copy of the input object. +

A copy of the input object.

-

+

info

-

Return code.

+

Return code.

-

+

3.4 Preconditioner data structure

-

Our base library offers support for simple well known preconditioners like Diagonal +

Our base library offers support for simple well known preconditioners like Diagonal Scaling or Block Jacobi with incomplete factorization ILU(0). -

A preconditioner is held in the

A preconditioner is held in the psb_Tprec


@@ -2582,7 +2583,7 @@ preconditioner.
-

+

 
   type psb_Tprec_type
@@ -2590,7 +2591,7 @@ preconditioner.
   end type psb_Tprec_type
 
 
-

+


Listing 4: The PSBLAS defined data type that contains a preconditioner.
@@ -2600,70 +2601,70 @@ class="content">The PSBLAS defined data type that contains a preconditioner.

3.5 Heap data structure

-

Among the tools routines of sec. 

Among the tools routines of sec. 6, we have a number of sorting utilities; the heap sort is implemented in terms of heaps having the following signatures:

-

+

psb_T_heap

-

: a heap containing elements of type T, where T can be i,s,c,d,z for +

: a heap containing elements of type T, where T can be i,s,c,d,z for integer, real and complex data;

-

+

psb_T_idx_heap

-

: a heap containing elements of type T, as above, together with an integer +

: a heap containing elements of type T, as above, together with an integer index.

-

Given a heap object, the following methods are defined on it: +

Given a heap object, the following methods are defined on it:

-

+

init

-

Initialize memory; also choose ascending or descending order; +

Initialize memory; also choose ascending or descending order;

-

+

howmany

-

Current heap occupancy; +

Current heap occupancy;

-

+

insert

-

Add an item (or an item and its index); +

Add an item (or an item and its index);

-

+

get_first

-

Remove and return the first element; +

Remove and return the first element;

-

+

dump

-

Print on file; +

Print on file;

-

+

free

-

Release memory.

-

These objects are used to implement the factorization and approximate inversion +

Release memory. +

These objects are used to implement the factorization and approximate inversion algorithms. diff --git a/docs/psblas-3.9.pdf b/docs/psblas-3.9.pdf index f92e8230..e17bd863 100644 --- a/docs/psblas-3.9.pdf +++ b/docs/psblas-3.9.pdf @@ -8316,7 +8316,7 @@ endstream endobj 1079 0 obj << -/Length 4707 +/Length 4973 >> stream 0 g 0 G @@ -8326,7 +8326,7 @@ BT 0.73 0.73 0.73 rg 0.73 0.73 0.73 RG 0 g 0 G 0.00 0.44 0.13 rg 0.00 0.44 0.13 RG -/F131 9.9626 Tf 20.922 -20.279 Td [(call)]TJ +/F131 9.9626 Tf 20.922 -19.941 Td [(call)]TJ 0 g 0 G [-525(a%csclip\050b,info[,&)]TJ 0.73 0.73 0.73 rg 0.73 0.73 0.73 RG @@ -8334,7 +8334,7 @@ BT 15.691 -11.955 Td [(&)]TJ 0.73 0.73 0.73 rg 0.73 0.73 0.73 RG 0 g 0 G - [-525(imin,imax,jmin,jmax,rscale,cscale]\051)]TJ/F84 9.9626 Tf 0.98 0 0 1 114.839 649.264 Tm [(Returns)-212(the)-213(submatrix)]TJ/F131 9.9626 Tf 1 0 0 1 212.397 649.264 Tm [(A\050imin:imax,jmin:jmax\051)]TJ/F84 9.9626 Tf 0.98 0 0 1 327.465 649.264 Tm [(,)-221(optionally)-212(r)18(escaling)-212(r)18(ow/-)]TJ 1 0 0 1 99.895 637.309 Tm [(col)-250(indices)-250(to)-250(the)-250(range)]TJ + [-525(imin,imax,jmin,jmax,rscale,cscale]\051)]TJ/F84 9.9626 Tf 0.98 0 0 1 114.839 650.299 Tm [(Returns)-212(the)-213(submatrix)]TJ/F131 9.9626 Tf 1 0 0 1 212.397 650.299 Tm [(A\050imin:imax,jmin:jmax\051)]TJ/F84 9.9626 Tf 0.98 0 0 1 327.465 650.299 Tm [(,)-221(optionally)-212(r)18(escaling)-212(r)18(ow/-)]TJ 1 0 0 1 99.895 638.344 Tm [(col)-250(indices)-250(to)-250(the)-250(range)]TJ 0.25 0.63 0.44 rg 0.25 0.63 0.44 RG /F131 9.9626 Tf 103.85 0 Td [(1)]TJ 0 g 0 G @@ -8366,66 +8366,66 @@ BT 0 g 0 G /F84 9.9626 Tf 141.219 0 Td [(.)]TJ 0 g 0 G -/F75 9.9626 Tf -245.069 -21.961 Td [(T)90(ype:)]TJ +/F75 9.9626 Tf -245.069 -21.437 Td [(T)90(ype:)]TJ 0 g 0 G /F84 9.9626 Tf 29.44 0 Td [(Asynchr)18(onous.)]TJ 0 g 0 G -/F75 9.9626 Tf -29.44 -22.638 Td [(On)-250(Entry)]TJ +/F75 9.9626 Tf -29.44 -21.942 Td [(On)-250(Entry)]TJ 0 g 0 G 0 g 0 G - 0 -22.639 Td [(a)]TJ + 0 -21.941 Td [(a)]TJ 0 g 0 G -/F84 9.9626 Tf 9.963 0 Td [(the)-250(sparse)-250(matrix.)]TJ 14.555 -11.955 Td [(A)-250(variable)-250(of)-250(type)]TJ/F131 9.9626 Tf 81.623 0 Td [(psb_Tspmat_type)]TJ/F84 9.9626 Tf 78.455 0 Td [(.)]TJ -159.689 -11.956 Td [(Scope:)]TJ/F75 9.9626 Tf 31.432 0 Td [(local)]TJ/F84 9.9626 Tf 21.579 0 Td [(.)]TJ +/F84 9.9626 Tf 9.963 0 Td [(the)-250(sparse)-250(matrix.)]TJ 14.555 -11.955 Td [(A)-250(variable)-250(of)-250(type)]TJ/F131 9.9626 Tf 81.623 0 Td [(psb_Tspmat_type)]TJ/F84 9.9626 Tf 78.455 0 Td [(.)]TJ -159.689 -11.955 Td [(Scope:)]TJ/F75 9.9626 Tf 31.432 0 Td [(local)]TJ/F84 9.9626 Tf 21.579 0 Td [(.)]TJ 0 g 0 G -/F75 9.9626 Tf -77.918 -34.593 Td [(imin,imax,jmin,jmax)]TJ +/F75 9.9626 Tf -77.918 -33.897 Td [(imin,imax,jmin,jmax)]TJ 0 g 0 G -/F84 9.9626 Tf 99.885 0 Td [(Minimum)-250(and)-250(maximum)-250(r)18(ow)-250(and)-250(column)-250(indices.)]TJ -75.287 -11.956 Td [(T)90(ype:)-310(optional.)]TJ +/F84 9.9626 Tf 99.885 0 Td [(Minimum)-250(and)-250(maximum)-250(r)18(ow)-250(and)-250(column)-250(indices.)]TJ -75.287 -11.955 Td [(T)90(ype:)-310(optional.)]TJ 0 g 0 G -/F75 9.9626 Tf -24.598 -22.638 Td [(rscale,cscale)]TJ +/F75 9.9626 Tf -24.598 -21.941 Td [(rscale,cscale)]TJ 0 g 0 G /F84 9.9626 Tf 59.527 0 Td [(Whether)-250(to)-250(r)18(escale)-250(r)18(ow/column)-250(indices.)-310(T)90(ype:)-310(optional.)]TJ 0 g 0 G -/F75 9.9626 Tf -59.527 -24.632 Td [(On)-250(Return)]TJ +/F75 9.9626 Tf -59.527 -23.934 Td [(On)-250(Return)]TJ 0 g 0 G 0 g 0 G - 0 -22.639 Td [(b)]TJ + 0 -21.941 Td [(b)]TJ 0 g 0 G -/F84 9.9626 Tf 10.68 0 Td [(A)-250(copy)-250(of)-250(a)-250(submatrix)-250(of)]TJ/F131 9.9626 Tf 111.322 0 Td [(a)]TJ/F84 9.9626 Tf 5.23 0 Td [(.)]TJ -102.714 -11.955 Td [(A)-250(variable)-250(of)-250(type)]TJ/F131 9.9626 Tf 81.623 0 Td [(psb_Tspmat_type)]TJ/F84 9.9626 Tf 78.455 0 Td [(.)]TJ +/F84 9.9626 Tf 10.68 0 Td [(A)-250(copy)-250(of)-250(a)-250(submatrix)-250(of)]TJ/F131 9.9626 Tf 111.322 0 Td [(a)]TJ/F84 9.9626 Tf 5.23 0 Td [(.)]TJ -102.714 -11.956 Td [(A)-250(variable)-250(of)-250(type)]TJ/F131 9.9626 Tf 81.623 0 Td [(psb_Tspmat_type)]TJ/F84 9.9626 Tf 78.455 0 Td [(.)]TJ 0 g 0 G -/F75 9.9626 Tf -184.596 -22.639 Td [(info)]TJ +/F75 9.9626 Tf -184.596 -21.941 Td [(info)]TJ 0 g 0 G -/F84 9.9626 Tf 23.801 0 Td [(Return)-250(code.)]TJ/F75 9.9626 Tf -23.801 -31 Td [(3.2.12)-1000(clean)]TJ +/F84 9.9626 Tf 23.801 0 Td [(Return)-250(code.)]TJ/F75 9.9626 Tf -23.801 -30.008 Td [(3.2.12)-1000(clean)]TJ ET q -1 0 0 1 159.153 364.307 cm +1 0 0 1 159.153 371.74 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F75 9.9626 Tf 162.142 364.108 Td [(zeros)-250(\227)-250(Eliminate)-250(zero)-250(coef)18(\002cients)]TJ +/F75 9.9626 Tf 162.142 371.541 Td [(zeros)-250(\227)-250(Eliminate)-250(zero)-250(coef)18(\002cients)]TJ 0.00 0.44 0.13 rg 0.00 0.44 0.13 RG -/F131 9.9626 Tf -62.247 -20.278 Td [(call)]TJ +/F131 9.9626 Tf -62.247 -19.941 Td [(call)]TJ 0 g 0 G - [-525(a%clean_zeros\050info\051)]TJ/F84 9.9626 Tf 0.988 0 0 1 114.839 331.196 Tm [(Eliminates)-253(zer)19(o)-253(coef)18(\002cients)-252(in)-253(the)-253(input)-252(matrix.)-314(Note)-252(that)-253(depending)-252(on)-253(the)]TJ 0.998 0 0 1 99.895 319.241 Tm [(internal)-251(storage)-251(format,)-251(ther)18(e)-251(may)-251(still)-251(be)-251(some)-251(amount)-251(of)-251(ze)1(r)18(o)-251(padding)-251(in)-251(the)]TJ 1 0 0 1 99.895 307.286 Tm [(output.)]TJ + [-525(a%clean_zeros\050info\051)]TJ/F84 9.9626 Tf 0.988 0 0 1 114.839 339.141 Tm [(Eliminates)-253(zer)19(o)-253(coef)18(\002cients)-252(in)-253(the)-253(input)-252(matrix.)-314(Note)-252(that)-253(depending)-252(on)-253(the)]TJ 0.998 0 0 1 99.895 327.186 Tm [(internal)-251(storage)-251(format,)-251(ther)18(e)-251(may)-251(still)-251(be)-251(some)-251(amount)-251(of)-251(ze)1(r)18(o)-251(padding)-251(in)-251(the)]TJ 0.98 0 0 1 99.895 315.231 Tm [(output.)-316(Even)-255(after)-255(a)-255(call)-255(to)-255(this)-255(method,)-255(any)-255(explicit)-255(zer)19(os)-255(on)-255(the)-255(main)-255(diagonal)]TJ 1 0 0 1 99.895 303.275 Tm [(ar)18(e)-250(always)-250(kept)-250(in)-250(the)-250(data)-250(str)8(uctur)18(e.)]TJ 0 g 0 G -/F75 9.9626 Tf 0 -24.632 Td [(T)90(ype:)]TJ +/F75 9.9626 Tf 0 -23.933 Td [(T)90(ype:)]TJ 0 g 0 G /F84 9.9626 Tf 29.44 0 Td [(Asynchr)18(onous.)]TJ 0 g 0 G -/F75 9.9626 Tf -29.44 -22.638 Td [(On)-250(Entry)]TJ +/F75 9.9626 Tf -29.44 -21.942 Td [(On)-250(Entry)]TJ 0 g 0 G 0 g 0 G - 0 -22.639 Td [(a)]TJ + 0 -21.941 Td [(a)]TJ 0 g 0 G /F84 9.9626 Tf 9.963 0 Td [(the)-250(sparse)-250(matrix.)]TJ 14.555 -11.955 Td [(A)-250(variable)-250(of)-250(type)]TJ/F131 9.9626 Tf 81.623 0 Td [(psb_Tspmat_type)]TJ/F84 9.9626 Tf 78.455 0 Td [(.)]TJ -159.689 -11.956 Td [(Scope:)]TJ/F75 9.9626 Tf 31.432 0 Td [(local)]TJ/F84 9.9626 Tf 21.579 0 Td [(.)]TJ 0 g 0 G -/F75 9.9626 Tf -77.918 -35.908 Td [(On)-250(Return)]TJ +/F75 9.9626 Tf -77.918 -35.385 Td [(On)-250(Return)]TJ 0 g 0 G 0 g 0 G - 0 -22.638 Td [(a)]TJ + 0 -21.941 Td [(a)]TJ 0 g 0 G -/F84 9.9626 Tf 9.654 0 Td [(The)-250(matrix)]TJ/F131 9.9626 Tf 50.66 0 Td [(a)]TJ/F84 9.9626 Tf 7.721 0 Td [(without)-250(zer)18(o)-250(coef)18(\002cients.)]TJ -43.517 -11.956 Td [(A)-250(variable)-250(of)-250(type)]TJ/F131 9.9626 Tf 81.623 0 Td [(psb_Tspmat_type)]TJ/F84 9.9626 Tf 78.455 0 Td [(.)]TJ +/F84 9.9626 Tf 9.654 0 Td [(The)-250(matrix)]TJ/F131 9.9626 Tf 50.66 0 Td [(a)]TJ/F84 9.9626 Tf 7.721 0 Td [(without)-250(zer)18(o)-250(coef)18(\002cients.)]TJ -43.517 -11.955 Td [(A)-250(variable)-250(of)-250(type)]TJ/F131 9.9626 Tf 81.623 0 Td [(psb_Tspmat_type)]TJ/F84 9.9626 Tf 78.455 0 Td [(.)]TJ 0 g 0 G -/F75 9.9626 Tf -184.596 -22.638 Td [(info)]TJ +/F75 9.9626 Tf -184.596 -21.941 Td [(info)]TJ 0 g 0 G /F84 9.9626 Tf 23.801 0 Td [(Return)-250(code.)]TJ 0 g 0 G @@ -10179,7 +10179,7 @@ stream >> % 151 0 obj << -/D [1078 0 R /XYZ 99.895 376.562 null] +/D [1078 0 R /XYZ 99.895 383.821 null] >> % 1077 0 obj << @@ -37958,8 +37958,8 @@ endobj 2431 0 obj << /Title (Parallel Sparse BLAS V. 3.9.0) /Subject (Parallel Sparse Basic Linear Algebra Subroutines) /Keywords (Computer Science Linear Algebra Fluid Dynamics Parallel Linux MPI PSBLAS Iterative Solvers Preconditioners) /Creator (pdfLaTeX) /Producer ($Id$) /Author()/Title()/Subject()/Creator(LaTeX with hyperref)/Keywords() -/CreationDate (D:20241118155812+01'00') -/ModDate (D:20241118155812+01'00') +/CreationDate (D:20241119121026+01'00') +/ModDate (D:20241119121026+01'00') /Trapped /False /PTEX.Fullbanner (This is pdfTeX, Version 3.141592653-2.6-1.40.25 (TeX Live 2023/Fedora 40) kpathsea version 6.3.5) >> @@ -38298,7 +38298,7 @@ endobj /W [1 3 1] /Root 2430 0 R /Info 2431 0 R -/ID [<06FD2D470EA243DFD84ACE1514D01F23> <06FD2D470EA243DFD84ACE1514D01F23>] +/ID [<6636EFB050A1E0237E3C2577A823D658> <6636EFB050A1E0237E3C2577A823D658>] /Length 12165 >> stream @@ -38313,23 +38313,23 @@ stream u,M] ] u-L] ]u.K]]u/J]]u0I]]u1H]]u5G]]u6F]]u7E]]u8D]]]] ]$]!]"Ҕ]']%2]&])]*]+],]-].]/]0]1]2]3]4]5]6]7]8]9]:];]=]?]@]A]B]C]D]E]F]G]I]K]L]M]N]O]P]Q]R]S]T]U]V][]Y](]W]X]<]>]H]J]\]]]^]_]`]a]b]c      !"#$%)']Z"&*+,-./0123456789:;<=>?@ABCDEFGHIJKLMOPRTV[Y(7XNQSUW]_`abckkkkkkkkkk k k k k kkkkkkkkkkkkkZk\^kkkk k!k"k#k$k%k&k(kuPuGuTuRuOuDuEuNuAuBk.k/k0/Wk5k3k)k2k*k+k,k-4 uCk6k7k<k4?k8k:k;uMkAkBy,kFk=dtkCkDk>k?k@u@u?kHkIkKkGkJkYkWkLkMkOkPkQkRkSkTkUkVkXkZk[k\k]k^k_k`kakbkc&  -  /%Q| !"#$'(3&j)*+,-./01256<4x7B=> JCDGPKxLRSTYQ؝UXuL\`Z6[]+ab+t+ +J+!++ -\+ ++t+++`++++++ +'++!+&+*+.+(+)"+0+1+4+/b+2+P+6+>+<+52+7+;+@+B+= -/+?+F+C+D+H+I+J+K+L+M+S+Q+GZ+N+T+U+W+R:x+V#+Y+Z+[+\+]+a+XD7+^+`+c+bc(   - b$ $!#&'(,%)+0-&z./23481257;9P:=>?C<Sg@B%LDnEFGHIJKNOPTMQSVW[UXZ]^b\_a  -ce   5&* !"#%J$'(*&h),-./0126+zp35978;<=>?EFC:N@B'HDGJKLMNRIOQTWSUYZ[g_X\^gg`ggabcggpgH{g -g#g (g g ggg Hggg2gggg1ggggg'gggg(gg&g g!g"g#g$g% =?g*g+g,g0g)jg-g/g3g1g2)g5g;g9g4g6g8g<g=g?g:g>gDg@gAgFgIgE)gGgHgKgNgJgLgMgVgO#gPgQgRgSgTgU*gXg[gW/~gYg]gbg\Kg^g_g`gagcX"X    b+z"ӎ!(#$%&'.,)Y*/07-123456@8#9:;<=>?,BCDGA7EQHS?IJKLMNOPSTWRa UYZ^Xm[]`aD_|b]DD+DD-DDD -DEDDD ND D DDDDDDDDDDDDDDD"DD D$D'D#zD%.D,D(,D)D*D+D.D1D-/D/D3D7D2FD4D6D9D=D8SD:D<D?DCD>hD@DBDEDIDDuDFDH/DKDPDJ'DLDNDODRDWDQ DSDUDVDYD\DX`DZDbD]]D^D_D`DaDcZ!U  q0 - H    < =r%  TM!#$,& f')*+0- x.141 =285 6<9 :@= }>DA BJE FGHI2NK "LTO PQRSXU EV^Y!~Z[\]b_!(`#c!@####3"u##!{#### !# -# # # ##!###!######!$##$#!?### #!#"##4#)#%"#&#(#.#*"/#+#-#0#1#4#/"5h#2#7#8#9#5"P#6#?#:"yc#;#=#>#E#@"#A#C#D5#K#F"(#G#I#J#Q#L"#M#O#P#U#R"#S#W#\#V"H#X#Z#[#^#c#]"#_#a#b"S$!6 "   # -:#'#E "#G $%&*##M')76,-./42+#a073#rM5u>9:;<?8#=B@#ADEFGJC#ʒHLOK#M8SP#QUVYT#W]Z#[_`^$Pac% -$M>   $i 9${$!$ #%&'()-"$l*$uUuV/0%1%CHI;7.$݋256uQ=KA8%<>?@:9:%$TVB%%JLMNOPQRSUCD%MEFG%NH%O%P%oy%^_`uW%xabcXYZ[\%]%:%0%u -u 'J&(uuu&u u u uuuuu&3 u&4&5&N&uuu&Yuuuu& uuu&u&&&uu&uu u&u;u'u!&lu"u%u2u(&u)u9u3' -u4uIu:'u;u<u=uFuHuXuJ'2uKuSuWuYuZu[u\u]u^u_u`uaubuc*O)'{'''ھ'(!(s( (͞ -( ( )Lm )*.*Z* ***"4*(x*.*4*8*=*C *I"<=>?@ABC**!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc B*\ B B B B B B B B B  B - B  B  B  B B B B B B B B B B B B B B B B B B B  B! B" B# B$ B% B& B' B( B) B* B+ B, B- B. B/ B0 B1 B2 B3 B4 B5 B6 B7 B8 B9 B: B; B<*1+$ +  /%Q| !"#$'(3&j)*+,-./01256<4x7B=> JCDGPKxLRSTYQ؝UXuL\`Z6[]+ab+u+ +J+!++ +\+ ++t+++j++++++ +'++!+&+*+.+(+)"+0+1+4+/l+2+P+6+>+<+5<+7+;+@+B+= 9+?+F+C+D+H+I+J+K+L+M+S+Q+Gd+N+T+U+W+R;+V#+Y+Z+[+\+]+a+XEA+^+`+c+bd2   + l$ $&!#&'(,% )+0-'./23481457;9Q:=>?C<Tq@B%LDo EFGHIJKNOPTMQSVW[UXZ]^b\ _a  +co   ?&+ !"#%K$'(*&i"),-./0126+{z35978;<=>?EFC:X@B'HDGJKLMNRI"OQTWSUYZ[g_X\^gg`ggabcggqgI&|g +g-g (g g ggg Rggg<gggg;ggggg'gggg(gg&g g!g"g#g$g% +>Ig*g+g,g0g)kg-g/g3g1g2)g5g;g9g4g6g8g<g=g?g:g>gDg@gAgFgIgE3gGgHgKgNgJgLgMgVgO$gPgQgRgSgTgU*gXg[gW0gYg]gbg\Lg^g_g`gagcY,b    l&+̈́"Ԙ!(# +$%&'.,)c*/07-123456@8$)9:;<=>?,BCDGA9EQHTIIJKLMNOPSTWRb*UYZ^Xn[]`aD_}bgDD5DD-DDD +DODDD XD D DDDDDDDDDDDDDDD"DD D$D'D#D%.D,D(-D)D*D+D.D1D-0D/D3D7D2GD4D6D9D=D8TD:D<D?DCD>iD@DBDEDIDDvDFDH/DKDPDJ1DLDNDODRDWDQ*DSDUDVDYD\DXjDZDbD]gD^D_D`DaDcd!V  {0 + R    = >|%  UW!#$,& h')*+0- y.141 G285 6<9 :@= >DA BJE FGHI2NK ,LTO PQRSXU OV^Y!Z[\]b_!)`#c!A####3"##!|-### !# +# # # ##!###!######!.##$#!I### #!#"##4#)#%" +#&#(#.#*" 9#+#-#0#1#4#/"6r#2#7#8#9#5"Q#6#?#:"zm#;#=#>#E#@"#A#C#D5#K#F"2#G#I#J#Q#L"#M#O#P#U#R"#S#W#\#V"R#X#Z#[#^#c#]"#_#a#b"]$"6 "   # D#(#F"#H $%&*##N ')76,-./42+#b073#sW5u>9:;<?8#=B@#ADEFGJC#˜HLOK#M8SP#QUVYT#W]Z#[_`^$Zac% +$NH   $j 9$|$)!$ #%&'()-"$v*$uUuV/0%1%DRI;7.$ޕ256uQ=KA8%<>?@:9:%%TVB%&JLMNOPQRSUCD%NEFG%OH%P%Q%p%^_`uW%yabcXYZ[\%#]%D%:%u +u 'K&) uuu&u u u uuuuu&4u&5&6"&O&uuu&Zuuuu&*uuu&u&&&uu&uu u&u;u'u!&vu"u%u2u(&u)u9u3' u4uIu:'u;u<u=uFuHuXuJ'3uKuSuWuYuZu[u\u]u^u_u`uaubuc*P3'|''''("(t( (Ψ +( ( )Mw )*8*d* ***#>*)*/*6*9*>(*D**J,<=>?@ABC**!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc B*f B B B B B B B B B  B + B  B  B  B B B B B B B B B B B B B B B B B B B  B! B" B# B$ B% B& B' B( B) B* B+ B, B- B. B/ B0 B1 B2 B3 B4 B5 B6 B7 B8 B9 B: B; B<*;+% endstream endobj startxref -2827448 +2827714 %%EOF diff --git a/docs/src/datastruct.tex b/docs/src/datastruct.tex index c9a4867b..c490eb43 100644 --- a/docs/src/datastruct.tex +++ b/docs/src/datastruct.tex @@ -900,7 +900,9 @@ A variable of type \fortinline|psb_Tspmat_type|. Eliminates zero coefficients in the input matrix. Note that depending on the internal storage format, there may still be some amount of -zero padding in the output. +zero padding in the output. Even after a call to this method, any +explicit zeros on the main diagonal are always kept in the data +structure. \begin{description} \item[Type:] Asynchronous.