From 844a9429475febb80ea39a4f105dbfd0c04a77a2 Mon Sep 17 00:00:00 2001 From: Salvatore Filippone Date: Fri, 16 Dec 2011 16:45:25 +0000 Subject: [PATCH] psblas3: Documentation changes. We have barely begun..... --- docs/html/footnode.html | 6 +- docs/html/img100.png | Bin 385 -> 233 bytes docs/html/img101.png | Bin 233 -> 358 bytes docs/html/img102.png | Bin 358 -> 277 bytes docs/html/img103.png | Bin 277 -> 200 bytes docs/html/img104.png | Bin 200 -> 150 bytes docs/html/img105.png | Bin 150 -> 273 bytes docs/html/img106.png | Bin 273 -> 390 bytes docs/html/img107.png | Bin 390 -> 266 bytes docs/html/img108.png | Bin 266 -> 273 bytes docs/html/img109.png | Bin 273 -> 284 bytes docs/html/img110.png | Bin 284 -> 419 bytes docs/html/img111.png | Bin 419 -> 222 bytes docs/html/img112.png | Bin 222 -> 258 bytes docs/html/img113.png | Bin 258 -> 868 bytes docs/html/img114.png | Bin 868 -> 425 bytes docs/html/img115.png | Bin 425 -> 420 bytes docs/html/img116.png | Bin 420 -> 359 bytes docs/html/img117.png | Bin 359 -> 332 bytes docs/html/img118.png | Bin 332 -> 895 bytes docs/html/img119.png | Bin 895 -> 337 bytes docs/html/img120.png | Bin 337 -> 535 bytes docs/html/img121.png | Bin 535 -> 418 bytes docs/html/img122.png | Bin 418 -> 272 bytes docs/html/img123.png | Bin 272 -> 571 bytes docs/html/img124.png | Bin 571 -> 595 bytes docs/html/img125.png | Bin 595 -> 369 bytes docs/html/img126.png | Bin 369 -> 239 bytes docs/html/img127.png | Bin 239 -> 565 bytes docs/html/img128.png | Bin 565 -> 625 bytes docs/html/img129.png | Bin 625 -> 593 bytes docs/html/img130.png | Bin 593 -> 217 bytes docs/html/img131.png | Bin 217 -> 629 bytes docs/html/img132.png | Bin 629 -> 743 bytes docs/html/img133.png | Bin 743 -> 273 bytes docs/html/img134.png | Bin 273 -> 542 bytes docs/html/img135.png | Bin 542 -> 274 bytes docs/html/img136.png | Bin 274 -> 585 bytes docs/html/img137.png | Bin 585 -> 251 bytes docs/html/img138.png | Bin 251 -> 0 bytes docs/html/img140.png | Bin 0 -> 372 bytes docs/html/img141.png | Bin 372 -> 445 bytes docs/html/img142.png | Bin 445 -> 999 bytes docs/html/img143.png | Bin 999 -> 728 bytes docs/html/img144.png | Bin 728 -> 238 bytes docs/html/img145.png | Bin 238 -> 444 bytes docs/html/img146.png | Bin 444 -> 505 bytes docs/html/img147.png | Bin 505 -> 451 bytes docs/html/img148.png | Bin 451 -> 369 bytes docs/html/img149.png | Bin 369 -> 407 bytes docs/html/img26.png | Bin 0 -> 506 bytes docs/html/img27.png | Bin 506 -> 193 bytes docs/html/img28.png | Bin 193 -> 224 bytes docs/html/img29.png | Bin 224 -> 203 bytes docs/html/img30.png | Bin 203 -> 224 bytes docs/html/img31.png | Bin 224 -> 467 bytes docs/html/img32.png | Bin 467 -> 477 bytes docs/html/img33.png | Bin 477 -> 275 bytes docs/html/img34.png | Bin 275 -> 710 bytes docs/html/img35.png | Bin 710 -> 257 bytes docs/html/img36.png | Bin 257 -> 613 bytes docs/html/img37.png | Bin 613 -> 1042 bytes docs/html/img38.png | Bin 1042 -> 322 bytes docs/html/img39.png | Bin 322 -> 803 bytes docs/html/img40.png | Bin 803 -> 488 bytes docs/html/img41.png | Bin 488 -> 866 bytes docs/html/img42.png | Bin 866 -> 329 bytes docs/html/img43.png | Bin 329 -> 527 bytes docs/html/img44.png | Bin 527 -> 923 bytes docs/html/img45.png | Bin 923 -> 566 bytes docs/html/img46.png | Bin 566 -> 577 bytes docs/html/img47.png | Bin 577 -> 340 bytes docs/html/img48.png | Bin 340 -> 654 bytes docs/html/img49.png | Bin 654 -> 517 bytes docs/html/img50.png | Bin 517 -> 706 bytes docs/html/img51.png | Bin 706 -> 747 bytes docs/html/img52.png | Bin 747 -> 761 bytes docs/html/img53.png | Bin 761 -> 241 bytes docs/html/img54.png | Bin 241 -> 266 bytes docs/html/img55.png | Bin 266 -> 308 bytes docs/html/img56.png | Bin 308 -> 426 bytes docs/html/img57.png | Bin 426 -> 3433 bytes docs/html/img58.png | Bin 3433 -> 207 bytes docs/html/img59.png | Bin 207 -> 225 bytes docs/html/img60.png | Bin 225 -> 444 bytes docs/html/img61.png | Bin 444 -> 821 bytes docs/html/img62.png | Bin 821 -> 297 bytes docs/html/img63.png | Bin 297 -> 423 bytes docs/html/img64.png | Bin 423 -> 97 bytes docs/html/img65.png | Bin 97 -> 3291 bytes docs/html/img66.png | Bin 3291 -> 361 bytes docs/html/img67.png | Bin 361 -> 264 bytes docs/html/img68.png | Bin 264 -> 253 bytes docs/html/img69.png | Bin 253 -> 263 bytes docs/html/img70.png | Bin 263 -> 266 bytes docs/html/img71.png | Bin 266 -> 338 bytes docs/html/img72.png | Bin 338 -> 775 bytes docs/html/img73.png | Bin 775 -> 117 bytes docs/html/img74.png | Bin 117 -> 5341 bytes docs/html/img75.png | Bin 5341 -> 785 bytes docs/html/img76.png | Bin 785 -> 393 bytes docs/html/img77.png | Bin 393 -> 522 bytes docs/html/img78.png | Bin 522 -> 345 bytes docs/html/img79.png | Bin 345 -> 363 bytes docs/html/img80.png | Bin 363 -> 321 bytes docs/html/img81.png | Bin 321 -> 378 bytes docs/html/img82.png | Bin 378 -> 560 bytes docs/html/img83.png | Bin 560 -> 195 bytes docs/html/img84.png | Bin 195 -> 843 bytes docs/html/img85.png | Bin 843 -> 374 bytes docs/html/img86.png | Bin 374 -> 511 bytes docs/html/img87.png | Bin 511 -> 370 bytes docs/html/img88.png | Bin 370 -> 273 bytes docs/html/img89.png | Bin 273 -> 273 bytes docs/html/img90.png | Bin 273 -> 203 bytes docs/html/img91.png | Bin 203 -> 442 bytes docs/html/img92.png | Bin 442 -> 604 bytes docs/html/img93.png | Bin 604 -> 341 bytes docs/html/img94.png | Bin 341 -> 481 bytes docs/html/img95.png | Bin 481 -> 397 bytes docs/html/img96.png | Bin 397 -> 300 bytes docs/html/img97.png | Bin 300 -> 424 bytes docs/html/img98.png | Bin 424 -> 184 bytes docs/html/img99.png | Bin 184 -> 385 bytes docs/html/index.html | 320 +- docs/html/node1.html | 62 +- docs/html/node10.html | 16 +- docs/html/node100.html | 122 +- docs/html/node101.html | 145 +- docs/html/node102.html | 123 +- docs/html/node103.html | 88 +- docs/html/node104.html | 107 +- docs/html/node105.html | 87 +- docs/html/node106.html | 380 +- docs/html/node107.html | 464 +- docs/html/node108.html | 161 +- docs/html/node11.html | 45 +- docs/html/node12.html | 16 +- docs/html/node13.html | 207 +- docs/html/node14.html | 94 +- docs/html/node15.html | 84 +- docs/html/node16.html | 98 +- docs/html/node17.html | 59 +- docs/html/node18.html | 48 +- docs/html/node19.html | 45 +- docs/html/node2.html | 65 +- docs/html/node20.html | 66 +- docs/html/node21.html | 87 +- docs/html/node22.html | 55 +- docs/html/node23.html | 61 +- docs/html/node24.html | 38 +- docs/html/node25.html | 50 +- docs/html/node26.html | 115 +- docs/html/node27.html | 290 +- docs/html/node28.html | 217 +- docs/html/node29.html | 174 +- docs/html/node3.html | 70 +- docs/html/node30.html | 210 +- docs/html/node31.html | 142 +- docs/html/node32.html | 137 +- docs/html/node33.html | 141 +- docs/html/node34.html | 160 +- docs/html/node35.html | 147 +- docs/html/node36.html | 162 +- docs/html/node37.html | 342 +- docs/html/node38.html | 357 +- docs/html/node39.html | 474 +- docs/html/node4.html | 36 +- docs/html/node40.html | 651 +- docs/html/node41.html | 430 +- docs/html/node42.html | 710 +- docs/html/node43.html | 142 +- docs/html/node44.html | 310 +- docs/html/node45.html | 469 +- docs/html/node46.html | 373 +- docs/html/node47.html | 119 +- docs/html/node48.html | 57 +- docs/html/node49.html | 57 +- docs/html/node5.html | 34 +- docs/html/node50.html | 138 +- docs/html/node51.html | 139 +- docs/html/node52.html | 173 +- docs/html/node53.html | 167 +- docs/html/node54.html | 140 +- docs/html/node55.html | 57 +- docs/html/node56.html | 104 +- docs/html/node57.html | 161 +- docs/html/node58.html | 147 +- docs/html/node59.html | 65 +- docs/html/node6.html | 32 +- docs/html/node60.html | 82 +- docs/html/node61.html | 172 +- docs/html/node62.html | 100 +- docs/html/node63.html | 141 +- docs/html/node64.html | 80 +- docs/html/node65.html | 80 +- docs/html/node66.html | 82 +- docs/html/node67.html | 84 +- docs/html/node68.html | 49 +- docs/html/node69.html | 198 +- docs/html/node7.html | 34 +- docs/html/node70.html | 217 +- docs/html/node71.html | 271 +- docs/html/node72.html | 314 +- docs/html/node73.html | 197 +- docs/html/node74.html | 152 +- docs/html/node75.html | 132 +- docs/html/node76.html | 110 +- docs/html/node77.html | 66 +- docs/html/node78.html | 92 +- docs/html/node79.html | 58 +- docs/html/node8.html | 73 +- docs/html/node80.html | 42 +- docs/html/node81.html | 114 +- docs/html/node82.html | 97 +- docs/html/node83.html | 89 +- docs/html/node84.html | 82 +- docs/html/node85.html | 78 +- docs/html/node86.html | 74 +- docs/html/node87.html | 144 +- docs/html/node88.html | 123 +- docs/html/node89.html | 256 +- docs/html/node9.html | 144 +- docs/html/node90.html | 219 +- docs/html/node91.html | 75 +- docs/html/node92.html | 46 +- docs/html/node93.html | 53 +- docs/html/node94.html | 95 +- docs/html/node95.html | 159 +- docs/html/node96.html | 119 +- docs/html/node97.html | 108 +- docs/html/node98.html | 47 +- docs/html/node99.html | 67 +- docs/html/userhtml.html | 320 +- docs/psblas-3.0.pdf | 11768 ++++++++++++++++------------------ docs/src/datastruct.tex | 247 +- docs/src/figures/psblas.eps | 89 +- docs/src/figures/psblas.fig | 41 + docs/src/figures/psblas.pdf | Bin 2066 -> 7196 bytes docs/src/figures/try8x8.fig | 353 + docs/src/intro.tex | 41 +- docs/src/userguide.tex | 2 +- docs/src/userhtml.tex | 2 +- 243 files changed, 14302 insertions(+), 14624 deletions(-) create mode 100644 docs/src/figures/psblas.fig create mode 100644 docs/src/figures/try8x8.fig diff --git a/docs/html/footnode.html b/docs/html/footnode.html index 1fad8e9a..0bb3989c 100644 --- a/docs/html/footnode.html +++ b/docs/html/footnode.html @@ -18,7 +18,7 @@ original version by: Nikos Drakos, CBLU, University of Leeds - + @@ -104,8 +104,8 @@ sample scatter/gather routines. . -
... follows3
+
... follows3
The string is case-insensitive
.
diff --git a/docs/html/img100.png b/docs/html/img100.png
index e4114dd3bb2ab759c8d582696d624eb0114d90f9..fd2f3222776f1baffd7226b99aad8c2bfd0d769e 100644
GIT binary patch
delta 166
zcmZoERLtq{V=kkA<0mfpMM0!HkKDJ~io{E{-7_Gm{e-
znmBnl4rotgNH4Z$5aO14@W*-e%qE9Zl9rZ|1q|<*-}v(I_=t-cX9K#fB#8D
zK~yM_V_*OQZU%-03=9VtkO3nD4+?)Zm`q^cwqJAlN6
z1in`cVj$rIxb@)z%n3*wkbZsxsN=Z#fDFb$2AE?nNbxC*v$@7_IN_)ypY)N+6q77804NrP#|4C=d@
zcEIET12eV+!1Vx38H6w}W7Ec}03w+g*bR0tFr7UBWS;>61qLpe2&NAV>lh%?j9CT@
z46l$ivJ3DWU3d(WsNK
zEq!nR&f#PbNCYcmV{BmHWnAzGdaRSP7v}CWM0=4QU>y+KDnQs=4lEPk5v
zG;#899MGP~kX~%hAjB>8;E(g_nN1F-BrPo^3mD!rzwzba@evm@$YJ7m*=Mf0Ic>
zK~xBtV_<**CMeA-z{J6T0NigEOkiMG{UQNL?9ghKJq)S}3=9((`Pl^~OkltVybl~&
z%}}Ahz;s~&Hy;BxP~=151V)AhK*okg7o>Px@#@A2xMU)jJ}f-ipwGZ?V$KGT2)h8!
z0fs_`GYkxz3&2WD7*v^=9hd?PDL4-@9smglFmN<5GB9*7G%x_&3;;9OAJXQ~bYB1f
N002ovPDHLkV1kb;MSTDO

delta 292
zcmV+<0o(qS0_FlCiBL{Q4GJ0x0000DNk~Le0000l0000U1Oos70XZmY0g)k0f83d(WsNK
zEq!nR&f#PbNCYcmV{BmHWnAzGdaRSP7v}CWM0=4QU>y+KDnQs=4lEPk5+O9}6=B1LM3Y7d$5_`b4{Vx;Tb#%uG&5
zNJvabxWRCQCx%<%L4&l{`LcwBB!L76#^n+cKV~-0sAXb4eTkLl24gzQb#?{QwT7m*=Mf0Ic>
zK~xBtV_<**CMeA-z{J6T0NigEOkiMG{UQNL?9ghKJq)S}3=9((`Pl^~OkltVybl~&
z%}}Ahz;s~&Hy;BxP~=151V)AhK*okg7o>Px@#@A2xMU)jJ}f-ipwGZ?V$KGT2)h8!
z0fs_`GYkxz3&2WD7*v^=9hd?PDL4-@9smglFmN<5GB9*7G%x_&3;;9OAJXQ~bYB1f
N002ovPDHLkV1jj@MP2{^

diff --git a/docs/html/img104.png b/docs/html/img104.png
index c1d8fa3f34b3ca7d910534250866f9241268ccc6..605df8a037d1a0ae5097d316df2af8e87bc7d7b4 100644
GIT binary patch
delta 134
zcmX@XIE`_Fcs(x*GXn#o1jC}|3=9m?0X`wF2M!!aPfu4@SMTlZ<>lqwvSmw2Nl8>x
zl!=Ln(D}DNfXWz4g8YIR9G=}s19CJyT^vI=W+o>%Fg#-tILYVc;~=Kp!hTHQ0NW9n
lj2$YB3-51Wb_##6fMHTTi`D{3KMSBH22WQ%mvv4FO#mRuD$)P|

delta 185
zcmbQnc!F_)cs(BrGXn$TyeStv85kH00(?ST4;(nKeEIU;-rn@|bYEXzb#-;13@u}b3E
zo1%maW=_pHi2;x9A9!=1fbGcRKL-*PoIjvk0Q(?X-e4flm5Fff>VN^OtW
S`A!DtGzL#sKbLh*2~7aO9$Xjz

literal 150
zcmeAS@N?(olHy`uVBq!ia0vp^JRmj;GXn#o1jC}|K#p{PPl)S*0|(O6)7910dwY9%
zd3m>N*-}zc5)~C?Vqzk6{_PK-GRBf1zhDN3XE)M-98FIb#}JO0$q5b&&zJ;G^11mq
wh-tU5A5%EMc0?v)hYI7u`x}^@!XGSPn3T_=wLsF(0;q|>)78&qol`;+0Coc_H2?qr

diff --git a/docs/html/img106.png b/docs/html/img106.png
index 48478479e6bc8f0606e1aaf0505a3d6b836772ad..f0a8e0d93f3a9508a4d170d56c27097f982b2fdd 100644
GIT binary patch
delta 374
zcmV-+0g3*R0)_)SiBL{Q4GJ0x0000DNk~Le0000l0000W1Oos70S8zN+yDRoEl^BU
zMZmzojg5_GXJ<`KO(!QOr>CcpJ{x~L$RkYv0004WQchCY5Pf@bliiy;*;0_eVi_A-yZZ?TmLjCFmHP?v6H-`&*rYV3Sp-3`u@kJ$!ou!;
zin|*UBPMWIm
zE(uP&c1YXsTaQUV@P+NCl@WEAU??FO4rLHC3*)AoRjC(T
zLJBCLT2=e`e{|a!#%nw^(0slj=`onzVqJHRP6sdP9FwF`H9WynxEJKin_s{)F5$=p
zg2PyGtyBZ3COJ{89dyAsj)5|Jn@zp@oV?!x1?UL)`2F}ERLtq$PovpM{x$fpLnzrvs2<5a1Kydf>o;<;$1%
z_V%Wyr~CT)s;jF5WhPon*XP_>6ANTAmIV0)GdMiEkp|@Sd%8G=aLi0j0D_+kDiX`|
z5*V26812|J9wY}a1WukI8NeVcApR!jh5*A7O9?d&6N3cifX7S{Gvp%53~dq;1QH&z
z&N_bN$npK08g`8f8yy)|y9rG2c6jzthC%2~wZtlkXK#uUGMG6vE$1W#Ji342&4B{8
zBaiAt?c>gwu1nTgiY^*MLe!~&U&B|(0{3=Yq3qyae{o-U3d5>t~C5)vLH9$*ql
z;904~*2cofCdb}#CofmvCcpJ{x~L$RkYv0004WQchCY5Pf@bliiy;*;0_eVi_A-yZZ?TmLjCFmHP?v6H-`&*rYV3Sp-3`u@kJ$!ou!;
zin|*UBPMWIm
zE(uP&c1YXsTaQUV@P+NCl@WEAU??FO4rLHC3*)AoRjC(T
zLJBCLT2=e`e{|a!#%nw^(0slj=`onzVqJHRP6sdP9FwF`H9WynxEJKin_s{)F5$=p
zg2PyGtyBZ3COJ{89dyAsj)5|Jn@zp@oV?!x1?UL)`2F}ERLtq-B9vj)j?lfiYCif(6LY4e$wZJ#gT_^5x5W
zdwbK<(|vt?)z#I3G7}vo>Ydxg-UFG8B|(0{3=Yq3qyagTJY5_^B&H@OI4}zbREQ_^
zm?$)CjFfT^;&c!@&dO%O5HhXd$XdonY-R?Z8Jd|oHZpYF6uq!jkWE-dLc)ykC5xNF
zMlKIy#>{2B3A4B}Ua&4W?0C#*VqS?9%Y$I0tpYx}Ek!?BW-uM-$+A&5SbFTh1eU3f
zcC{XQZWYR)a#TX%vg4j4{|=4grIL)7?s{r^I5ToG%ym-O88(IaCD3^cp00i_>zopr
E0Q<>Npa1{>

delta 252
zcmbQp)Wzi38Q|y6%O%Cdz`(%k>ERLtq@{pZgoT-bfl(}zK^n+02=EDUJ#gT_^5x5W
zdwbK<(|vt?)z#HOT6lRU+DX*s+*uO~OiZMtq)huJ-v%mTED7=p
zW^j0RBMr!z;_2cTA~AJt;Ax@53LG)I+qwe2{;%KWFw3m{OvxLb>pV3w&{Nw$~HFpgny6I6A-S@(u%P--g8IH>&Ics
zoyp%c!=L@_ombN2Beb6FPX5g0`l4&!iJF?7?SHnf;zV|}M}yal6EmOXlw5spdggqt5EnBwCnl-DTp`oOtBq}P(!NI}A#6(I;%DG+aJy4plB*-tA!Qt7BG$3b^
zr;B5V#MI;j2WH`b3h{&<6NQG2kx~vqoDO2gS=me&LZ&qwS_+rp>e!alJU}APfZVJMoxygP6|82
TrZB$*x{krq)z4*}Q$iB};bT}F

diff --git a/docs/html/img110.png b/docs/html/img110.png
index bc3978ffbfef6d64b52a934932b03e5e7f8ca4a9..9a0f8c4d8128467db938ff0639031425ef242230 100644
GIT binary patch
literal 419
zcmV;U0bKrxP)BjLjb~?PO-)TFCno>^01XWdw6wIEnwo%sfOK?pT3T8_KtMD!G#VNjY}~9}00001
zbW%=J06^y0W&i*IAxT6*R5*=eV1R%L3XBX`fPfAYLj$_t0w~R_z_28MiNOe~PF#TX
z&(0MNU?>zo
zm<5*MT)+up-)4|o)Wee6z+=q7yMghQ0zwr?hU0)+1TNQ;l!1l^0067`K13}wws`;m
N002ovPDHLkV1m~nn*aa+

literal 284
zcmeAS@N?(olHy`uVBq!ia0vp^@<7bT!OXzGIQ=jCVj#yXz$e7@z<~qHmoM+_?JX=U
zOixeu_4QR(R|o0h<=wJn%dAOiZMtq)huJ-v%mTED7=p
zW^j0RBMr!z;_2cTA~AJt;Ax@53LG)I+qwe2{;%KWFw3m{OvxLb>pV3w&{Nw$~HFpgny6I6A-S@(u%P--g8IH>&Ics
zoyp%c!=L@_ombN2Beb6FPX5g0`l4&!iJF?7?SHnf;zV|}M}yal6EmOXlw5spdg(S-=SN%dBBuWOKLyksRuE245us(%-~I1afP#>T{bC!f#Go;?^@f)qEkR?89ZJ6T-G@y
GGywn(`7s{=

delta 355
zcmV-p0i6Ec0iy#UiBL{Q4GJ0x0000DNk~Le0000=0000T1Oos70f=(fn~@<)e*qy$
zL_t(IjbmVdfC&nW3|N4G4iiHIy5IsR&8)z%B!G#*2&+z9fc4ML6+kMUhk=3TG=l+<
zIgu3Y_<#bO#mK|3fSsY>0E3c|B8W2qC?>$sFoBZ+4X

diff --git a/docs/html/img112.png b/docs/html/img112.png
index b00a8cd8e30966f7b4be07de0eef8daa2abf7a4d..d5fd8d1b3674a74ebe0c5e98ad2218e3bb704899 100644
GIT binary patch
delta 192
zcmV;x06+iU0fGV{iBL{Q4GJ0x0000DNk~Le0000R0000E1Oos70bAxu*pVSje}G9u
zK~xBtV_-lA1qmRM70%~mU|?ndit)3cC^KM~H33MmGcedRFkk{^1`dM*5cw<+pPzxj
z5JYn`aI!ERLtq=kT(kA<0mfpPigM4^d_K7}!!E{-7_Gm{g5
zAgzHxnvKnmqno*dRYF3~;DCcz$Agq~2j(0eVTVWB2j{Q|9IRn-vD&am^NHQ_BQMH@
z&ZPW2V9KZ^wV(0SgP1yoQx*qi@TRS}!dcKRo0P!7@Hmfmt!-q{DWI(kp00i_>zopr
E0P-#{{Qv*}

diff --git a/docs/html/img113.png b/docs/html/img113.png
index d5fd8d1b3674a74ebe0c5e98ad2218e3bb704899..8b8bbce788f2241e8eaf8425df45691cb70fa22c 100644
GIT binary patch
literal 868
zcmV-q1DpJbP)BjLjd5{tXJ=MthEt5z&)qbBc9MHfN-JoU#kE8Uak>`Ng_iAqWjbt8b
zt<>h|!NrizqnLG)+1RHk)utz{sAd>d|5GNg1jt
z9JrX64hO?Ky6ICX26EGd{N-+-r{!o#kKrX`{9hS68umfWY*k(c#J|T<7LJqwq+nrV
zq)*1tZ5D}>fWpRBF%_^{Vvl%I9QHnBPNd(%}9O|f%kBTr(Ju9=pOa-P%vN~MJ
zmX%ztxc#ANlxUOnYbvjuZ{eke1~VpxE(KVg;^wc5etB(kLqM0(0iug@mv_b%ihe1e
zeLbDv+B2+)PHJ0MSMt@?%&teu;{?l==yA2$3d8!aU%uC4Ma(XOkwWzW)M?>AoTziZpw?{0jarsnp5N}Cu07oV$}
u8~N}_v#vGAaE2UTPPgEun{K-4|D`|9A{gH7Q+ZJU00003|!py+H82!xa29RSA;1l9{;J|_9%a`}|_NJ$&
z`}+E-tE+>w@bYfivSrq+Sq%*hB_$Xf-NNAM>gTe~DWM4f
De`HvJ

diff --git a/docs/html/img114.png b/docs/html/img114.png
index 8b8bbce788f2241e8eaf8425df45691cb70fa22c..cc0a9a34402dd8d6272433407993669f38c60a59 100644
GIT binary patch
literal 425
zcmV;a0apHrP)BjLjb~?PO-)TFCno>^01XWdw6wIEnwo%sfOK?pT3T8_KtMD!G#VNjY}~9}00001
zbW%=J06^y0W&i*ICrLy>R49?vQcX(4Fckip&N!XUn;Q2bvloUg1ra=gc#=7Qi@^g(
z@Bmr_7h;j(Qa8b$ouG&d#Z8Xj5zI>?r0vG8#1Hyj-uLBuc_{%xBw>+pP*|dc6;{^U
zYztANlD5{ouwmIze}N%;V^bI0X%2G?7)%lEeUT;J3q59n5DQGaE&uWBz6bU};d9I(
z<=f3YGpo}o$P)$-Dt{&>DwKzA!bJkAcZ|qcZr&(kVurym=h2l^1K%Ox9%1wTKl3kf
zQKxHrkt*aP9ag05XBx&M7jJd4{c$Bv;PuIi4G)`T1uE=HkbMOEz!L($m{zHQa0i@^
zk(vl)sN)o)HN;N8&v!0gxA?h<#{)YcEiCzojWc92oOZW!vAae^vL(kI!~erK!M`~g
Tylah!00000NkvXXu0mjfF?+8l

literal 868
zcmV-q1DpJbP)BjLjd5{tXJ=MthEt5z&)qbBc9MHfN-JoU#kE8Uak>`Ng_iAqWjbt8b
zt<>h|!NrizqnLG)+1RHk)utz{sAd>d|5GNg1jt
z9JrX64hO?Ky6ICX26EGd{N-+-r{!o#kKrX`{9hS68umfWY*k(c#J|T<7LJqwq+nrV
zq)*1tZ5D}>fWpRBF%_^{Vvl%I9QHnBPNd(%}9O|f%kBTr(Ju9=pOa-P%vN~MJ
zmX%ztxc#ANlxUOnYbvjuZ{eke1~VpxE(KVg;^wc5etB(kLqM0(0iug@mv_b%ihe1e
zeLbDv+B2+)PHJ0MSMt@?%&teu;{?l==yA2$3d8!aU%uC4Ma(XOkwWzW)M?>AoTziZpw?{0jarsnp5N}Cu07oV$}
u8~N}_v#vGAaE2UTPPgEun{K-4|D`|9A{gH7Q+ZJU0000{X=Bl@MRhPw6K_Vq>Vh!ho_cR6+@%MNICV~C6IobJ_E^yo;
z(VgLDe*c9BU}_;t=6)tJWlgn$i4?GckQRcefp&mn=omwTXX@k=@E9XxIZBkZ1~F8>
zAAZa)3x0*m9O-`3m%A?@xMIIJbZbfJ;h})z$2Z;FGd}y<#2f$s002ovPDHLkV1gY@
BoYw#V

delta 360
zcmV-u0hj)y1E~WciBL{Q4GJ0x0000DNk~Le0000!0000W1Oos70naq%3Xvg9eZui?R}9Y-U~fue}WJTOuQ}s@$0?^_Ceuu%pv95%{?=#(<;al1`sNL
zCMGJBhi<|}0;+e6$XRaQC}U!V!7%61l~e=YA>kfj^Zq~cFL6<)YkQF@PRb+Y|&B~Re>$%_pSn`H$m>`IV*1pB}f0>7A6sey0@oR5*32xX|_J`|%h#7@7@
zcP?MI__>M413MrsEcuCzGh{NHcDHk}yGBK_CC44Z|HC)Izd0JbYmJBi00000onef1Lp!EiBL{Q4GJ0x0000DNk~Le0000b0000W1Oos70T6ne6_FuJe*oo4
zL_t(2kz-&0g9lKI1SX*H*cccT7_b3GW;l!CKmm|yK+}l@umbS`h6Nx4^%x#ZV$ftT
z05WeZIKaukz2E>;kpa*^O27gz$pvy3D-T47ABY7Qm?jvU=K)#_w5WiCfd}Mn28LZ%
zc=#A@Fl+$&TVMhU0|N)t6a@wze2QE_3RnrDHUV8dK?X&J2OOjv55Sz=2RN*6t`nHY
zz`(tSf#DQLh=~UnbU_RZXMhd{VjZx$rJM|04;UHN0F4Wnz+eLwJ8WRP`jQ1G0(guW
s7#UJm25s2K)MYPpJ^`Omo9MJ
zBGH}UW`6&L2ViO;OXhwiGG$G*f{7Hcf{+%1seyKYW9S$|gJEWS(
zWE@>WF@Y1ImPF4Vk8QvPmI{V09<9%PYH*Mrxjvf)g>Rj`jd9PJ|7)oV?m{0RQO~ji
QY5)KL07*qoM6N<$f(R~cQ~&?~

delta 293
zcmV+=0owk|0_OrDiBL{Q4GJ0x0000DNk~Le0000b0000W1Oos70T6ne6_FuKf8|L;
zK~yM_V_*P-2T+UzCZO=x7#I{7umMJ9IE�g!4y(}@MJ0`UQc1t0_U7#>Vw&}1+G
zGH)z6z{$Y9-~d#S0nk87zydJI1#%ZF4@8I`hy@s!CK#OO0a^^SsDOik2jp%BhFw>9
z_!w?5YykROU;+yR0|(R;1qL39dt5;ZSP7vv0bM;o21SMk9Hbl%z?|I&IIM536PU-q
zz`cio;S@-Si3b>TK@1FMfDQ&?9k9BkoD5tK7#Y?8jSHB-U;`FAY+$?kk_9LNc#Ihs
r9wOVp=m54!0o7sw1_p5C3={wW!5%5DFUoKc00000NkvXXu0mjfCV*b}

diff --git a/docs/html/img118.png b/docs/html/img118.png
index 195c0224f865d1458c1e406d13197a7caa4a010c..f8ecccb644a0532da84c8bb380b52ef265e115f7 100644
GIT binary patch
delta 867
zcmV-p1DyQK0{;djiBL{Q4GJ0x0000DNk~Le0002F0000U2m=5B0WfWUt^fc4Gm#}L
ze?me+KtMn=G&C9-8f0brc;ZE2*OjMOPYurQ6?tm3gs9X%(`~Z*CW49Ip8lrJqnFXZ2Z?SyoSq$0!#|wmYbM#_L@9#@cV$DZi7vc>0d)
zIb%GRcE`^wzgf8RaRehzvjKNdF(YaFr%(@8keG6e?P)13X+9vZn?2YP2E634e~);d
z1qFGNZKCXG97k>0r2E7MFeVxdwid}Fq9Wrcv8Yi2(XrR}!37WfQYzV8Y}`f{g&?1#
z2ujS0F8fI;eN^5y`-S*$_{dt`7|hIR-vL%giM%qUW!UA!D1@R|vPSYi9uXz2ml>ep
z%8DGCrJ7!R*!Z?c_S%4z$-<;1f62&e4T!QRN${+q;P-5AD{Dgd87q3L_7osmP3n#b
zC}%AhnNnLcN#SnLAwD15coh|;aaM^9TTn5o)zme72u5L8?X>J8p{3=rqD|GBKo*z+
zt~??Nj?+rwQfUHk_T~vb1UAx_=~8spVSglmKlIQy(i=JRqbNJ6L#ci)e|bT}{pm_+
z2Mqp8XAR#GAl@8Y$2aty(LGQ$+Tr4xE-HN4#bwnOeW0Xk6vXh{CtawmEt*^bOu#lE
zo(vvJgS<9TqQce^X5~v5L~sl~Xo0NRtdMuk@^04?jp
zEmQ8eiNbspCUGL;W-4$DBTU^aTX?$aio1FD;TYDd+H6Idn=QERE$^0My=vVJHCW6s;Y0m1IBA^N
tR&sDx^}?3RVEhC9AFU5P^w2|Z&|l%P7vubrFns_3002ovPDHLkV1ltal`jAQ

delta 299
zcmV+`0o4Bg2FwB_iBL{Q4GJ0x0000DNk~Le0000V0000W1Oos70dK30BHm3xU8^ZU>rv4a(zSFC5wHm$dV%Ql_EUSu3yLNS38p_W9?ACGOo29^qj
xE*`DVeQI!!AGto828C~(y^V3tng4643hqK5AW_e<18M*O002ovPDHLkV1ly)b!z|s

diff --git a/docs/html/img119.png b/docs/html/img119.png
index f8ecccb644a0532da84c8bb380b52ef265e115f7..2c463039e856f2886efdcd120548abca06ef300e 100644
GIT binary patch
delta 305
zcmey*c9BW7Gr-TCmrII^fq{Y7)59eQNGk)e0t+((1EXxp8<2p(L{;s22L}fe6B8*Z
zshm4&Vu6B;B|(0{3=Yq3qyahSJzX3_G$tk|G%&fbr5F@5O*wexz=3lO+zwwqFcuzW
zRI`wlf57yJna5$Pk1)?UW5XPVS?4#r=HgdxX5tTNWo%|(G%jdnO)z43vx!+ivCg3V
zC8NAL|6$e%vP?NV4qP1-^}8z?&eZ0F#n}1LLyk*BZE`PR(wJU~_F_S2_HV
z;mDJFhcE0YzvkRl$-`4EDdE>BThW%tw3>rc;ZE2*OjMOPYurQ6?tm3gs9X%(`~Z*CW49Ip8lrJqnFXZ2Z?SyoSq$0!#|wmYbM#_L@9#@cV$DZi7vc>0d)
zIb%GRcE`^wzgf8RaRehzvjKNdF(YaFr%(@8keG6e?P)13X+9vZn?2YP2E634e~);d
z1qFGNZKCXG97k>0r2E7MFeVxdwid}Fq9Wrcv8Yi2(XrR}!37WfQYzV8Y}`f{g&?1#
z2ujS0F8fI;eN^5y`-S*$_{dt`7|hIR-vL%giM%qUW!UA!D1@R|vPSYi9uXz2ml>ep
z%8DGCrJ7!R*!Z?c_S%4z$-<;1f62&e4T!QRN${+q;P-5AD{Dgd87q3L_7osmP3n#b
zC}%AhnNnLcN#SnLAwD15coh|;aaM^9TTn5o)zme72u5L8?X>J8p{3=rqD|GBKo*z+
zt~??Nj?+rwQfUHk_T~vb1UAx_=~8spVSglmKlIQy(i=JRqbNJ6L#ci)e|bT}{pm_+
z2Mqp8XAR#GAl@8Y$2aty(LGQ$+Tr4xE-HN4#bwnOeW0Xk6vXh{CtawmEt*^bOu#lE
zo(vvJgS<9TqQce^X5~v5L~sl~Xo0NRtdMuk@^04?jp
zEmQ8eiNbspCUGL;W-4$DBTU^aTX?$aio1FD;TYDd+H6Idn=QERE$^0My=vVJHCW6s;Y0m1IBA^N
tR&sDx^}?3RVEhC9AFU5P^w2|Z&|l%P7vubrFns_3002ovPDHLkV1mLal{5eV

diff --git a/docs/html/img120.png b/docs/html/img120.png
index 2c463039e856f2886efdcd120548abca06ef300e..017eea044bf934f25bded7f4bc5886f7c3ede020 100644
GIT binary patch
delta 472
zcmV;}0Vn>^0+$3KiBL{Q4GJ0x0000DNk~Le0000=0000W1Oos70Wg-s=#e2ye*u+A
zL_t(Ijonf`O9Md=eS2pwH6jLn0A8@6WiiOo7
zr*;-{LW+=Bq&603CstQmIeQ=GLqtiL2fMTTc6R2??f?T&Xox`qCVZ1j7TrF_!dV5<
zx>whAmwEUb)^`p)vXSAqq^t}!e=rME|3{!7$cr;Bt)C>IQ3bbhEer3WvItfQNGv?f
zwo%?AE)Y-^a3pm|WN&2^<~Rbz0Yh$-nnF#cSCYNdQ-vQSoIv#S9%>$yq!`RF;51|%
ziUr?;>CxLZb!2#0Ti1Y3WhxnVO2Jd5ybL5zW-^k=vo8Irh*HHlr{_eRe|IvVb&A`-
zUA$ZIM~(~OoUc$Xmbe|0%BWX1Bz9@&{y8=5)MS#(^WE$<%EbZtFT
zxA$-(y&i$jw3Vjiw40+qOEMODDaUX~Uw|W%yf%Rob$yMFE|8f4Hl!DC6`p_;{ff&z
zEG*Zx7spoj4?LiU`77Y9F0YZ5ha{7h`*_K%0iF-HcVi)0m417{$-);G#Z(U7>jljK
O0000k1Dig8~m!g#m*A0W)xe1z<7&?6Lz8A$~B2=>Z=n55onJ9Rh3&KnjR>yLf=kJ-`i8
z)xf|4A|OBkrkB=$3mVFsfLI1aW`+kO!|?#bX9K#e;`Rj
zK~yM_#Zo&?#4r$j$wo=+3|SvwiwLn4XpvTkk^@kt+!`d#KtZwM1U>=E5kQonm8k)V
zBZQ6$ZA-_D9Uxk0_((h{FK=e-neo_w#~BDE`dIMiG*+Qgw?M@r`V|;ozce34ELwZV824{eEcT&}
z5xHQgCr~9KI$(OnuyddDoji(4W#I`X(4$$r^uax$P2N?uxC1gnA=yNTHy)r~{Sq0L%
zSJ!oydH5UFcMd(Wk>R+ctPD0Ve+yIpN1z|bi!&~*pCq7B1-Ei73-6+`2v!M5EIiG&
zQQjji5Kt9xBy~t+Z)FwcI0D82LvECsLQSSulD*VZg&!oGK=kw;Y95uO7|bx>G-Mr$
z1>b||(c3n4WO!Ix*MLuDDj9Z4!BeHY3?xuyGLp%&F8!*AQpGu^=R}-$e=?wTirc_l
zyj$@{jtk+OuTU?RxE+(qs8=>5c4_GTIW_FoLq~eCwj;Ei*HxfdbX=eRnB$Jl=c*(5+o)5QoV#q{Aaq(<8eEL^&jtntz6T5p+z3r+X$cHyfRTrt1xN{S
zFbbec5dpYPD9C}d7aU*&xyB*bU<25lgX9K!e*qv#
zL_t(2k;PIwPQ)+}eaS{i>`rlnD^NXfumAu607*qoM6N<$g8X8a
AQvd(}

diff --git a/docs/html/img123.png b/docs/html/img123.png
index 69253a7820421c3cbae5e138bba5fcf6c740d07c..90d8d9a96d33b371d46ef059caa5bf8dd1adbaa1 100644
GIT binary patch
delta 508
zcmVBdIJgBT5uric?9jnQ
zafqNGSfry^hx`SaRb0Hg#QuxXnFIJ!eh*e=2*0&wAA1$ckJ3fUG9!)JSBBvQzy!+;Z)1ViBHt1eHakE^tO@LaANBqVP<-|v9=kUQ
zFI5aF8lw~EDfKMWSePnQ8au8jB#j;7FLVc377q%0lLJlFX*fsKVYGQIe>R8vd2q~p
zU&RqbzEIVAym3&1qFfhMBfU4va=Pn5c9Xz#TJn!iP;4gBl9QqPq*M39NS1nTDa6oX
z#u(WdOOz*DWZEU@-3hM88|U+FPE6j0GR8FZ)r;kxPWDCPKk4Kcv&H^MXO(iZRKsg*
z3}<|^gZpmZhi>GiO11p}Qkza41y}c+*rw`G2WWt;j7=#w+liB^V&!zr?O+uBBk_ai
yVEDNFcxGpI3N%^_X_C9+ycZ?)4+Q`CBX|cTdu*GPWx7)U0000#q{Aaq(<8eEL^&jtntz6T5p+z3r+X$cHyfRTrt1xN{S
zFbbec5dpYPD9C}d7aU*&xyB*bU<25lg}1k(f|iBL{Q4GJ0x0000DNk~Le0001h0000T1Oos70q5^Y^N}G;f6+-q
zK~y-6?Nd!l96=C$(|+vEWM^j-5xmII;K^tf^9Lp(;&HrsnxCL|52Hs<4LJpZ21zbv
zg#q!9HHQ`y1oz@iP+{;FtpC93?sd1tl?bvRlE=_p{pxjfRdo;0ft->Elrai0^hAmv
z!m_d=`U2bK#gLvdLcOe^`a=JYN)V}&X&g==w-nx@1a2@*1A-7P0+7203lbkFh!0V4sU*%|h!fi2V3e+pJ(mveKR
zD0B{&)!?9;PV&NTVqFa3IrxH8{3|GKY;nKPq4nXczJIr^FX
zBS6$dkPpPs6@DQQ-2lwbX}y95+C=Y+>jz;1I4Q=nZV6r@KA|+>wy=VxYn8Br(uf+Y
zS7ZWUd*i~c>oW%T4)^?=CAh6wjw?*=;^y~Kmtm*tRp+Vg2(7{D<
zh@c=?q@!4e`~{j-T)eyFN|G8BL_zS;=DY8G@B8}ht}T#2fOQc~_R^36UD@^V##h7?
z(j;b}!{tSh<)R+A%{@*%XHESoe|+geJo^PjKo1QRK&UM#Kzo^^&~v6#K@nD!F_gdS
z;fvrOdlk!%(nZTMBaPZuhT#Rk1j`L?V}aKq-x3ryJ3vRQ3G9I%_5KS`eD)w7yEh3h
zRSYQ_qZ8*T^(@p_m?~5nJFY1tjUD1IbO%@#4+?ve15MRwI7iiCw0SKye~0^daLjyP
z#SuilP}O?8aZrMyTo+X%y*JBpy6Zu9lfZOZ@{dnYY$no@lcD>hQ}@G2mU?a}#L!~K
z7}*(1lqXwc+9l}S39iQ*=ksk&Ox}hv#x(WSi{+k9_C@1A>Esx*#r{ZVm2$IG!)t5|
zXMD4R`)=QdZsev)wfz8_QBEBNSNELQrs_}!Xn?JZO({3qiIb{g<#f&MU=;l$@q_4K
x__+LdW@mN^G+GR4lDp%)7bW!%1poLWcn2kWY@3y3x>EoE002ovPDHLkV1oT7=hOfI

diff --git a/docs/html/img125.png b/docs/html/img125.png
index 798e786430d3d0a926eebe4c49268ae7d27a51d9..fcdbb64f9442c2698bad89a265890048a5232213 100644
GIT binary patch
delta 305
zcmV-10nYx@1n~kPiBL{Q4GJ0x0000DNk~Le0000<0000T1Oos70b@mMn2{k%e*o`E
zL_t(IjbmT{1I|@E4A{V|rZZT@85k587`WdvaN>|f2V7A40fR!rAqJiU3=9VtxVYUu
zfW!_EX$Els?2m$k3+y~lw@p$~0E3h{O_e=!(za85wd2=tYJ0MU^!_yE@gywcr78FCIxa_?c_
zJiUa0$7$E;$!l?{QaHo#o56%Z;Wook27YAACn*5|Ochtaqz?>*6F5IGL@}HJhA!_r
zAb5pt7LPH5*XpPRyc?JT7#h5*7#gz!MAd<(>UH$5Hbyal_(1Dzi2$V4jF!V%<
zAi}b;BKiW`<;9SmGD5wqq54A+e~T?52J+tFUJj|pf({KKysaofSdBG7_!B`u&b1Zb
zn&d*|*e|3GaBQu=+s>*IFfAy#S-vU-@R7JsIzBj$w4mK#7a~MvYzNs||5EM?Vk*s%
z80rwR>tlr~FNJGykD8{$9tjdMXWcC)X%*UE-*nIN2LU4iquCkusevuif7J?BW0!Mt
zoG5e-m(}2)oPE=~28U`z(aC4?;k=A)O&GI`kw=AaE;{xoT@m2F`q92WI7gwq^u%+*
zCn%e4-eJlFS_pgV#=blgpi-!jr5KKAy3RED;V=Dqjkq%3IRCn@h?z5^KAEoPI63;6
z{UbosM34`}(G`9n5ZwUGYR|ob2HHgLjOzzs0yrtgvu+7qB0ixs;kK}XrfZe3gVKl^
ztXE_LV0+`juIn=f_YU{`oF%xeS&l1A?&9Y6QkP+;>sGXSlhC74p5kSDL3#bhTf{x0
WFLcLoEun}20000DdQR4yw1qOWq<8u$#3@s%k0~p1b?Psu^GV-0Vk>P}v#|{RSa@!xg
zD(VFbG}9wEOgtk4mwoCBM(UTd*2
Zq;&}Qln80P06K%g)78&q9kWwH6958>H+292

delta 304
zcmV-00nh&L0r3JMiBL{Q4GJ0x0000DNk~Le0000<0000T1Oos70b@mMn2{k&fA2{|
zK~y-6V_*OS&Q&}N*ubo&Gg!qL7!(*7xZg8y;*doLTu}M}gF?e02A%^93^xAnO;S<-i%sBQVBnytRm6Y*RIVMS3O)t~rUwBZMEUs`c+Q+r
zfC@24Hf&(z;fE+uQc?g4@pdvXe;9OdPC(KK^p$`B(UCCt0M`V((%nQEat=&#?_uCP
zy@Y|sY1iq=YjLVlIK%Lp!GuBKHp5Z|eq_rhDFFdY6<5Hd4-AD9I6p8%F`NO0F7G=a
zc!h2jk1>PS>Zk?08<+wZ9vNU*s1tsgDCdt50001zG_(8xdIkUh002ov22Mn-LSTZ5
Cq;I4E

diff --git a/docs/html/img127.png b/docs/html/img127.png
index 1fe14d4673902b406e48c274d44fb7e44cf3e24b..5032beaf50de614cad74a71024d28df374a3cfe8 100644
GIT binary patch
delta 502
zcmVe
zL_t(IjqOyyO2a@9eVYb#leCTEQ7|Y9m5Tj@_yIya>ZyA2*#1HAB!W-{J$Z-+#e-l3
zK@krT5f6saqu7Jd4-h}Wo!v;IwH~CN^g%LjXEO74W|IK#=yNV%1;ip)=mOSs$%F`b
z+AH%@jtYa%;pVH|>U;}RT)v$we>^xO=MTWtT~fB8Llm|#TBRjz7dQ%kr1U-PGB7Ne
z5S~p1XgnG!C=$KLxeW)MXGsZ00Z~#zaBp$+8O$f0Jc7?7I1$
z$v2cj$+(a<%lrqWd@J8lBZ|}mmLjh`n!}%f;p%n8MnbwTii@iWvgqrS@fT@!fF-iK
zSM5-i4unVcS80TXydMC|;0m1e)qSJ0A0
z63rU@1ZtRr_y7gknYp?VOsD#6t@BuW4cdKXT&-Nn#Ae)~iB%`vg81EWkEI-fuc3di
sYtM`}Qcrt^grksf?J?+<_>W(}8!9GUZH-cR2LJ#707*qoM6N<$g3W#8Gynhq

delta 174
zcmdnW@}5z#Gr-TCmrII^fq{Y7)59eQNDBcmKMOMh17ptmP1`3bde<}Ldb&7An6Y`az=?!MmIwAX-egqSHYIp|W312-tDFOyvR-Sk
aF{E_}_ml`}y#Ts{!PC{xg=L*nLK6Vu?l(IC

diff --git a/docs/html/img128.png b/docs/html/img128.png
index 5032beaf50de614cad74a71024d28df374a3cfe8..47913ee15572d4e4cc5dd5595002d7b130ce17db 100644
GIT binary patch
delta 562
zcmV-20?qxk1n~qRiBL{Q4GJ0x0000DNk~Le0001)0000U1Oos70lL7Ee~}?ffA2{|
zK~zYI?Nl*H96=O)JD%?C-fTQUQXR)~U?nC?D$z#4LbM5_NtdZon=X(PYRWWAsw+Ya
zNo%p7l{TX&h%AY=F~yQnLUQR-_-DpF_q@wx;L;rA-F=w(^ZuK+e|8oqLaHdk0z#ew
zwSyR0o;m9z_zSm7?$G}|qk-p*e}Mxdp-J|{({6~qhQ`~Y2nb`I@}Ey0LvlI#J283M
zvVkkzcXE_N!SK<{Tr}OLOC`%@?r^sR)@T@>>ME*c
zrHtzX)cV!3Q?>Us99W3|O1VdG8ANAOB}J{1Mt%2*#;ZuvL)4?D*Yv3Be=T^LhW<%d
zFXc2ww7m5Y6;YA!BQsxqk+Nt6?)YM5pG_FV?ym
z>(8v3z*<(cAwiGZG|&aJgtPxoE=SoM>@Q4RCtmfWv4=T7>ZistO%@mn)nIb5u(UFN
zhT2XfZ97)MieK8-*A2Ax!XHg?7%2WNtS|{ERrC=q@z~
zVOz}+xT~02F8D#XBo4ih_rad4xb)g``7*ZPP7vosmp8oII5+dcqXyJc{@_%{w^@@b
zKI#SPAA&Et1;6b0Wr6{)HAwM)3=Ql)HFgkJu*R<_7ES)D000002uVdwM6N<$g6EJ4
A)Bpeg

delta 501
zcmV8#3ESe0@ifNga~=s
zEAvy13WLw#=BwT6d<#=tzMU*Qe>f!P55Ux2QnsN(6t*#1r6p|_I0}EH^gZk{Ff5r6
zo=pX4JQ^w}63=IVd$Df%(-yYI95uWrwf}2<-{0F6cE8kKhiqr#^BCkD~!=HfR>UG6NLb@-Ci>nE;=(2_+G
z%^Lj#YM6ug00r8axw;XjOZsfB^H_Tg+I?nRtz62)X568PRVUqo_}y`jr5u8d*$

diff --git a/docs/html/img129.png b/docs/html/img129.png
index 47913ee15572d4e4cc5dd5595002d7b130ce17db..2a4a67cc73782264f15976410e1d0dc3911393b7 100644
GIT binary patch
literal 593
zcmV-X0BjLjb~?PU0q#GO-&~!CjbBd4Gj&nw6vObaYx;T0lTRG&D3C8XDEr
z3?={o00DGTPE!Ct=GbNc00GHKL_t(oh3!|{a)clZ4NzU75aa*EfbDwz+7)Ik~soxTyUT=|&wSk2m+xf%z*4gkljFW}vL}ja|Be3xS=Wa5pmH%=RCS6w?vqzE
zL?TBTGW;w^alD%aMtD?YAKhZ~bxsh+dnqzSe=1((JK+U*Q6D-cOM{F&%v%~ZwTyZs
za1Jg&hHIU64YK5+sDo{nJaaX$n<_60ve*B|b5b^5jT?U&#~X^j@laj|eQl$04qavN
zd*GY;;IvW9W5n}6P7F;uO(9gD(Qdl)(J=|eUMv_^+ua#>pBi^DDz7&_j`Eb
f#*GWwtPAi30D>6B2c|Cn00000NkvXXu0mjffxr5y

literal 625
zcmV-%0*?KOP)BjLjb~?PO-)TFCno>^01XWdw6wIEnwo%sfOK?pT3T8_KtMD!G#VNjY}~9}00001
zbW%=J06^y0W&i*I?@2^KR7i>KR53^#K@@#Ep6>15Y&=0y9mjHDB_>NM(MG{SvlE|3&z$}~%=D?$uOYq6k}HlrwrEQz);#gbA&a_Lj}XU0AEyvt?a(j4U7eVF<4
z{+qXdb`~f?swl$(LY@M(gBV$!IqM|&3%5(|(EmN7f#;2Z10$hH_Qca}h`xr#+oK2w
zW1jM#PaZ>ZIr=*>dD^msB!Q#0&AJsTef2F2+7}D*;K-XfR}pt|ltaPr(ac;l-KI+=
z%VzFyw*=N`7@q1Xs%E8(>jTvK)v{By_ca_?i2q8tM{gNKXHz9bt&>K5_ld@`!{+ceMxvxKw%PcBE<9PBSlT_;}kq_KxNKkBE(
zGffs43)Nt9v9PovlL^1dI>$*xgONB=`n%++M>fZ97)MieK8-*A2Ax!XHg?7%2
zWNtS|{ERrC=q@z~VOz}+xT~02F8D#XBo4ih_rad4xb)g``7*ZPP7vosmp8oII5+dc
zqXyJc{@_%{w^@@bKI#SPAA&Et1;6b0Wr6{)HAwM)3=Ql)HFgkJu*R<_7ES)D00000
LNkvXXu0mjfE1w>i

diff --git a/docs/html/img130.png b/docs/html/img130.png
index 2a4a67cc73782264f15976410e1d0dc3911393b7..f63e861ee297c16410e9dda1714b049003bef807 100644
GIT binary patch
literal 217
zcmeAS@N?(olHy`uVBq!ia0vp^LO{&N!py+HxcqY>h+`1o6XJT{z=7qRi14oS;8M!~$?POT-?GTfn!f)pTj0!sy
z9~hdoYBYGOHN6x+tSm4&w&6L$b9RB#EeqE+)~lTmV`Sr7(96Tn$}M=0OJV&XpcM?B
Lu6{1-oD!MBjLjb~?PU0q#GO-&~!CjbBd4Gj&nw6vObaYx;T0lTRG&D3C8XDEr
z3?={o00DGTPE!Ct=GbNc00GHKL_t(oh3!|{a)clZ4NzU75aa*EfbDwz+7)Ik~soxTyUT=|&wSk2m+xf%z*4gkljFW}vL}ja|Be3xS=Wa5pmH%=RCS6w?vqzE
zL?TBTGW;w^alD%aMtD?YAKhZ~bxsh+dnqzSe=1((JK+U*Q6D-cOM{F&%v%~ZwTyZs
za1Jg&hHIU64YK5+sDo{nJaaX$n<_60ve*B|b5b^5jT?U&#~X^j@laj|eQl$04qavN
zd*GY;;IvW9W5n}6P7F;uO(9gD(Qdl)(J=|eUMv_^+ua#>pBi^DDz7&_j`Eb
f#*GWwtPAi30D>6B2c|Cn00000NkvXXu0mjffxr5y

diff --git a/docs/html/img131.png b/docs/html/img131.png
index f63e861ee297c16410e9dda1714b049003bef807..c07a1bcd994852d18f6b0a26b243f1fbd100fb1f 100644
GIT binary patch
delta 567
zcmV-70?7T@0rdnSiBL{Q4GJ0x0000DNk~Le0001y0000U1Oos70jU?!i;*Eqe*yDJ
zL_t(YiS1RtOB_)U{_fpI@Aj7~h$M25ZsJuv+ax7THpgBCB>5%l-itnfLb2-HUP@9twgV?9BV#3^Vg)-tGc1I)Eb%
zwTc!{gs#AWS)_ehc^?+Q4vS*Tf@fag
zr47gQ@%mF+8SfA49f^WmrhylvGXHt_R55087BNlf8nnTj8Z(D=uzX&6;hYYqSYls2
zVuef6J<`kTGk(a0{`CP*@)$UXm%Vp7Q1iMNZkniw$;-|rp^NKGH=-D^e{cHub-i(T
z>-^eHIMo{+7Id1F!6ji{MKiIQx202xV+aTWAK{m3xCfe)5d;;43ni@{DZ7OFFs9z0
zR0c^;N>;u29aYiqG&^_L%=nClg<4cfckORU+0tm(gfCPXn3Fu^Hbnd*gziKn_p@mz
zT}Ijg=1FB;acf-xo7jvRf8tE@I=FDzI2PW*bV6sy&9HFglpo%TG$13XZ+J3EnHyDX
zf8eel-^UsX=(MQP1x!=EJi)$+WR_H^nQO(~n;6m7N(%oNy$eIfiAba9Pp5s&zf}_!
z?HW%xv2C3`*{>46lU!`Fkl~%(iL~v2{cY(l_lzfke_*m~#MBKH4PF2M002ovPDHLk
FV1jB11+xGE

delta 151
zcmey$a+6W9Gr-TCmrII^fq{Y7)59eQNDBcm9}6=B1LN|~i9!<l7DJzX3_IA$g%
zI56(vG7u}bVP+QYDbCocJ7La&qsEPl+#l?AGOYM^h{;dkxAOr;g`J8I49!|K8obq-
zUWy-97ML8{@SNc}yTIv|g=-t@)lP^pvhgkGKIxMg~t;KbLh*2~7aK
CpD%s@

diff --git a/docs/html/img132.png b/docs/html/img132.png
index c07a1bcd994852d18f6b0a26b243f1fbd100fb1f..6b244fdf3d5ba34e7d34cbfe1ddac3dfe7b57ccf 100644
GIT binary patch
delta 681
zcmV;a0#^O?1m^`IiBL{Q4GJ0x0000DNk~Le000220000W1Oos70Saoq-jN|oe*$Gm
zL_t(YiS1OsixWW<{<3T0PV(|YIPHX0un|2{Sg2LB5V1-rSFL}*!CBZ@?8Qd#(B*7S
z1R2mnM1@5w@0#^QF(jaNf+FjcS4ga5;d`^$TynW^NU*r$zMXmV=IzY4@6Eioz#zyp
z#!nz)8lW&1-l!=UzuF+*8*|WRe-!B{3$wEk;%JA>6QW|`NumNe1ti~dtH8k~Smx*9
zr9N0j`ss$6&#Lo({o5Y8w!J+of?X?{X2)`Io&^F4BPCC0vQT$9Dt(P}e+jiQrC=(6
z(n^_@L{m~pG_anw?EMV6F+xeUd!UNB*TZF=8$E*aDxim1a#8QpJHiHAa@fP=gdszm
zBt1P_pMzd>BjvyGL&Gb{9>l=g#QWPSNcFke3XxBNvbad^5XjtdLtaHm%&M;|1b*Pi
zP~k^7OFJEzoeb8{>Fr~ee<8E_kC*qXuN7PtN3RXMb3$Yyqy5H-p6%8co^f_GMc6fw
zR^3=A2JV`>Ai@B){;}mcsSyxfBTES7#qB;gBi3<
z;Tii6v9l8e|DL<7ptNFdkY~R;xW33e*ie01TWIlU{>wO_~W
z;`PZY_&l#XpV89S&*DP>>;26TrAg~|YG_vIjcXIKrvI^F*b}qvWAETEU*@0eWRl^|
P00000NkvXXu0mjfjdxaA

delta 567
zcmV-70?7U61@#0WiBL{Q4GJ0x0000DNk~Le0001y0000U1Oos70jU?!i;*Eqe*yDJ
zL_t(YiS1RtOB_)U{_fpI@Aj7~h$M25ZsJuv+ax7THpgBCB>5%l-itnfLb2-HUP@9twgV?9BV#3^Vg)-tGc1I)Eb%
zwTc!{gs#AWS)_ehc^?+Q4vS*Tf@fag
zr47gQ@%mF+8SfA49f^WmrhylvGXHt_R55087BNlf8nnTj8Z(D=uzX&6;hYYqSYls2
zVuef6J<`kTGk(a0{`CP*@)$UXm%Vp7Q1iMNZkniw$;-|rp^NKGH=-D^e{cHub-i(T
z>-^eHIMo{+7Id1F!6ji{MKiIQx202xV+aTWAK{m3xCfe)5d;;43ni@{DZ7OFFs9z0
zR0c^;N>;u29aYiqG&^_L%=nClg<4cfckORU+0tm(gfCPXn3Fu^Hbnd*gziKn_p@mz
zT}Ijg=1FB;acf-xo7jvRf8tE@I=FDzI2PW*bV6sy&9HFglpo%TG$13XZ+J3EnHyDX
zf8eel-^UsX=(MQP1x!=EJi)$+WR_H^nQO(~n;6m7N(%oNy$eIfiAba9Pp5s&zf}_!
z?HW%xv2C3`*{>46lU!`Fkl~%(iL~v2{cY(l_lzfke_*m~#MBKH4PF2M002ovPDHLk
FV1kk31;qdW

diff --git a/docs/html/img133.png b/docs/html/img133.png
index 6b244fdf3d5ba34e7d34cbfe1ddac3dfe7b57ccf..850dcba0e0715780348d23a8549238be7f098311 100644
GIT binary patch
delta 208
zcmV;>05AXN1(5?#Ce
z2d?vX8h}pR!0Z6R45}b0eFk<(CJ<(L#R=rGtlGK?gc%-LFaQ8F2q5BoaayYY0000<
KMNUMnLSTZnyGp?T

delta 681
zcmV;a0#^Nz0_O!GiBL{Q4GJ0x0000DNk~Le000220000W1Oos70Saoq-jN|oe*$Gm
zL_t(YiS1OsixWW<{<3T0PV(|YIPHX0un|2{Sg2LB5V1-rSFL}*!CBZ@?8Qd#(B*7S
z1R2mnM1@5w@0#^QF(jaNf+FjcS4ga5;d`^$TynW^NU*r$zMXmV=IzY4@6Eioz#zyp
z#!nz)8lW&1-l!=UzuF+*8*|WRe-!B{3$wEk;%JA>6QW|`NumNe1ti~dtH8k~Smx*9
zr9N0j`ss$6&#Lo({o5Y8w!J+of?X?{X2)`Io&^F4BPCC0vQT$9Dt(P}e+jiQrC=(6
z(n^_@L{m~pG_anw?EMV6F+xeUd!UNB*TZF=8$E*aDxim1a#8QpJHiHAa@fP=gdszm
zBt1P_pMzd>BjvyGL&Gb{9>l=g#QWPSNcFke3XxBNvbad^5XjtdLtaHm%&M;|1b*Pi
zP~k^7OFJEzoeb8{>Fr~ee<8E_kC*qXuN7PtN3RXMb3$Yyqy5H-p6%8co^f_GMc6fw
zR^3=A2JV`>Ai@B){;}mcsSyxfBTES7#qB;gBi3<
z;Tii6v9l8e|DL<7ptNFdkY~R;xW33e*ie01TWIlU{>wO_~W
z;`PZY_&l#XpV89S&*DP>>;26TrAg~|YG_vIjcXIKrvI^F*b}qvWAETEU*@0eWRl^|
P00000NkvXXu0mjfeiT*n

diff --git a/docs/html/img134.png b/docs/html/img134.png
index 850dcba0e0715780348d23a8549238be7f098311..a733cc99945723936223f0ae01c2bc3245f0b6bd 100644
GIT binary patch
delta 479
zcmV<50U-X70-gjRiBL{Q4GJ0x0000DNk~Le0000}0000W1Oos70qZSk%8?;Ue*v6H
zL_t(Ijpb84OT<7BeV6+%A8V3QK_Mt=BPwboBB`yeJFz+i3p@P>TYCztm3oI92nwf#
zoG5x&gsVhF#Ln*g2fh8(64E4T
z<;=AJh2U${_rYu+4S1P5;u_VWf9DW@2Ky&j38u;pgvuMBjDTJhte9q=v4m`xm&dY;
z1;54^XTo+)H53?FG>!<#Xp_+&X7HOZKMPrDTsbS*-UNcTqY$lRNwC#xy18xW!8(Gp
zLp^h;%HDRkYhV_^x|L~_zETab!dKlqZwSwJj^UAN;iYQ>zLAjevLt`2f2Kv7h)Vu-
zn4(Fmv^r05AWZ1d#$EiBL{Q4GJ0x0000DNk~Le0000Q0000F1Oos70e^V%Ly;j%e*lk3
zL_t&tnPXsJVBr4%Bp5=0cmjyQz{UUt{6NgXFliD461c#?z{9}6*|4)=!vT;Efe8W(
z*uV!Uy@7!NsE)IXvx^}CXf!VyFNn{_zmI=IH&D6(2q$3C&Ug*QSQ9YG6aXUU>?#Ce
z2d?vX8h}pR!0Z6R45}b0eFk<(CJ<(L#R=rGtlGK?gc%-LFaQ8F2q5BoaayYY0000<
KMNUMnLSTY=oJw~9

diff --git a/docs/html/img135.png b/docs/html/img135.png
index a733cc99945723936223f0ae01c2bc3245f0b6bd..9ffee9ad89b4e125e6ed30c94bcaf456b9a13ea1 100644
GIT binary patch
delta 209
zcmV;?051QY1d;+FiBL{Q4GJ0x0000DNk~Le0000P0000F1Oos70hCWkK#?I!e*ln4
zL_t&tnPXsJVBo(1Bp6~77#Jpi7@QppC}7eAZX_O1?E#>gh7HRafHcDd0Rf0ERPX_e
z7&d?ub9OOwGc+);@iK(+Ffj1(Z)afxN;P29#=yXMO#qo|0wz_#Qu+++lH3jbCklKEK!&oc+PaEI$%=tbxq$%yuaF^6s}uEx00000
LNkvXXu0mjfmp4b-

delta 479
zcmV<50U-X80-gjRiBL{Q4GJ0x0000DNk~Le0000}0000W1Oos70qZSk%8?;Ue*v6H
zL_t(Ijpb84OT<7BeV6+%A8V3QK_Mt=BPwboBB`yeJFz+i3p@P>TYCztm3oI92nwf#
zoG5x&gsVhF#Ln*g2fh8(64E4T
z<;=AJh2U${_rYu+4S1P5;u_VWf9DW@2Ky&j38u;pgvuMBjDTJhte9q=v4m`xm&dY;
z1;54^XTo+)H53?FG>!<#Xp_+&X7HOZKMPrDTsbS*-UNcTqY$lRNwC#xy18xW!8(Gp
zLp^h;%HDRkYhV_^x|L~_zETab!dKlqZwSwJj^UAN;iYQ>zLAjevLt`2f2Kv7h)Vu-
zn4(Fmv^rip0?7m+iBL{Q4GJ0x0000DNk~Le0001!0000U1Oos70j=Tzwvi!Ae*woy
zL_t(YiS1OoOT$1M{w_Y!)Jq#d9VG@_M4_`T)k&NR4z8KRQU8PZ*c2?zq6J+%~%@cKWhH2X;yjsX|k4r6T
zG8?j|=qZp#LD~}59(p-G#c~8@e~kYj=;F=us(Sx~Jip*$zCZ&hTh6C-weL*lHzS+xVCbof
zshhO6ElwWlN3JBfxQ1%=0*T^iCRcZvjp6kEcGD%1Yu;sjIi^_f8RK#9%=g_g!@GA+SktMP+H7_fGAr2(no_I9*Kp%rL1H?XE1LJnS~ZYUhA
z-y%E=_Rq#_NjURXY$L~d)`y&?24~JZ(TByqJY5)KL
M07*qoM6N<$f`GL8AOHXW

delta 209
zcmV;?051Q@1d;+FiBL{Q4GJ0x0000DNk~Le0000P0000F1Oos70hCWkK#?I!e*ln4
zL_t&tnPXsJVBo(1Bp6~77#Jpi7@QppC}7eAZX_O1?E#>gh7HRafHcDd0Rf0ERPX_e
z7&d?ub9OOwGc+);@iK(+Ffj1(Z)afxN;P29#=yXMO#qo|0wz_#Qu+++lH3jbCklKEK!&oc+PaEI$%=tbxq$%yuaF^6s}uEx00000
LNkvXXu0mjfx>866

diff --git a/docs/html/img137.png b/docs/html/img137.png
index 6928567c99f107cf02428584db43c69f79ef08c5..df82028c96a2151cbb9ced6dc9cbc34adf886de6 100644
GIT binary patch
delta 186
zcmV;r07d`F1p5IYiBL{Q4GJ0x0000DNk~Le0000Q0000E1Oos70kk9`=8+*we*k$&
zL_t&tnPXsJVBlZ?f!_=ezyySFz{K#7f%(E=gh1Dt)eNVBbcZGbKLZ|cn8lWH7mz-v
z%fQXZz`)JV&!7P0@@R20FfYKT5fj|tz9sX(j$vxUIS_AYY6H6f17`+UYWf701``Gb
o&JPSdAg&|>g8;}s6Brl(6kZkN5L;p>tpET307*qoM6N<$f_EoEN&o-=

delta 522
zcmV+l0`>j-0m%d*iBL{Q4GJ0x0000DNk~Le0001!0000U1Oos70j=Tzwvi!Ae*woy
zL_t(YiS1OoOT$1M{w_Y!)Jq#d9VG@_M4_`T)k&NR4z8KRQU8PZ*c2?zq6J+%~%@cKWhH2X;yjsX|k4r6T
zG8?j|=qZp#LD~}59(p-G#c~8@e~kYj=;F=us(Sx~Jip*$zCZ&hTh6C-weL*lHzS+xVCbof
zshhO6ElwWlN3JBfxQ1%=0*T^iCRcZvjp6kEcGD%1Yu;sjIi^_f8RK#9%=g_g!@GA+SktMP+H7_fGAr2(no_I9*Kp%rL1H?XE1LJnS~ZYUhA
z-y%E=_Rq#_NjURXY$L~d)`y&?24~JZ(TByqJY5)KL
M07*qoM6N<$f>hM{hyVZp

diff --git a/docs/html/img138.png b/docs/html/img138.png
index df82028c96a2151cbb9ced6dc9cbc34adf886de6..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644
GIT binary patch
literal 0
HcmV?d00001

literal 251
zcmeAS@N?(olHy`uVBq!ia0vp^Qb5ed!py+HxJ5w@bYfivSrq+Sq%*hB_$L#H2yr4*y3<~)>WS6jV0}B%=XN31v8FL
zD-@q#x8n4HvnLK5ID7v50){7_G760i^baf-6u$FdpX%oWeTi9zEd}y3vzT`?FsHLc
xWc^~9#wN_hc8;INR$-kAb2GyUdtnI)29Y??C(%h7Yk`hn@O1TaS?83{1OS}VSZDwM

diff --git a/docs/html/img140.png b/docs/html/img140.png
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..43dfe1694cd692b528443bef04386f50f733b299 100644
GIT binary patch
literal 372
zcmV-)0gL{LP)BjLjb~?PO-)TFCno>^01XWdw6wIEnwo%sfOK?pT3T8_KtMD!G#VNjY}~9}00001
zbW%=J06^y0W&i*H@<~KNR49>SU;qIg2L=Wv1~?FS*TC?>fB_jWZ$sv#fj|O`#}6X-
zJQM^b0BIfT3;10PUyLo_g;0UkJuk@oorc{9I1d1s4V35htyOr8UrAJFY&XlfwC?bHEj*Z=^FHB4hx
Sbytl50000e*rs5
zL_t(2k;RfRPQx%1hQByfTQ_c!0d)bSh=GYAN2u6Ay+K1K*m{JV0Ck~r#0g;U;DQ*C
zD#QhlGBPmq2t2116sS5-A^zw++xhLh|9=itFj|u0E9SAJW4^<~B<9E4RkS1;4GeV%
z{0KJ+a`JrRxmEb`khO?w+7*jve-NOtMI8$%scFlk)FC&Yhs42VWxs~!YKp5$h7uWF
zwG(3sBTwPDx<{tWWKPFt;!JWl$x8B>-C4Z~-
b{0H6vY63MM|4Re300000NkvXXu0mjf1ACORyAa5o&Mv?(0bMyo-~f!ld16C?CeNI1R*>xl4hQ(z
z*jXll?0xW{n~#T&uK^@32(-O}e^Gz~$mHF?z|eT$HpLD|gM$PzbTb8@iyYa#r0e{h
zhTR7^4*;1BoTn{8%6K>MJWyp|;yJ*#2*mu&c@m^{J_GxPSDZjf6~x>Gb->-#9t@8x
z82Yq-ftj1NKrzkyaT#e*$8H8~8wLc6
zZD}~K){&(F=28Tx#X2Mr7lRXH^1GNWIq|4ki)ngls=bp9l}Z_)UbohwCW=$@f;P^^
z_k%W{mLa>fnVMp$%*1^RMNA`MlpQmJKE&!Yo{d3siI)vQ8bT6-05c^5f6`^koIVH#
zd-0=CyuG?zqw5~1WfROmpVshZYoLi&%I_{-gy;4kz+qVR@~zJ5Z1P1bh#dn_mPN&`
z`-vs`g3Ccg4$4j7rcVJSxcTG6P-sOe@eB|iyI9q&?0&5Ekd0(H&Iu~cmP=f6@MP{zJwq6y!L$~
z&Q2B3jSYO#h3B3VpsVe;~|q{we8?>R`Gdl>v@bi
zZ*4hG26yb^6Wfyq+LJBjsmXlHbmtjbifWA0Kp!rvKD)5UyhB;&cR2UwrR!VE-b+|9
zYj7v$09*!fHRZx4f2D}nnNi^*a6JXH=RLR%I#pdfVBLOa5t3m(A@15Y{ktX21GvG?
zL~(`1bb?jauZs0=)`Cb9puzklltWUVCwF
z@@0ds9)=%yHtjQ#M<4t2-0s9k?<`vgzc
z(I{6AC*?^8Joxvv8Mie478tkN=Q9GkZLSe*rs5
zL_t(2k;RfRPQx%1hQByfTQ_c!0d)bSh=GYAN2u6Ay+K1K*m{JV0Ck~r#0g;U;DQ*C
zD#QhlGBPmq2t2116sS5-A^zw++xhLh|9=itFj|u0E9SAJW4^<~B<9E4RkS1;4GeV%
z{0KJ+a`JrRxmEb`khO?w+7*jve-NOtMI8$%scFlk)FC&Yhs42VWxs~!YKp5$h7uWF
zwG(3sBTwPDx<{tWWKPFt;!JWl$x8B>-C4Z~-
b{0H6vY63MM|4Re300000NkvXXu0mjf_kX1S

diff --git a/docs/html/img143.png b/docs/html/img143.png
index 9eaf8c6191ab4121f82565bc6c709e2d2b9021fd..a80d3c32d5d5665436e20a48728617edf3698281 100644
GIT binary patch
delta 666
zcmV;L0%iT@2iOH6iBL{Q4GJ0x0000DNk~Le0001a0000i1Oos70mP6xsF5K{e*#uX
zL_t(YiPcp-h}2LJ{<6urKY7VU5J3?{9^O8+=^Rk=0%Yoo5d6_rgd^5B2egaGi8@;t3
zay%6ZpoLpf|E-T80adu7SkmQse;`%85_0hW!Wl4P{2Biq6#ooI(
zvw)Q-%6*vGk#GA~GPNMvkqMW>L=j&LQ8dnjVq9LQN?}E>A?HelE;557q2jU~G
z@(%s5y*-)p47pGl@4K`!1{h?CD0iwI0nS-3*y%!025ygMUA1zi!B%aPu)%DYGmkbq
zv|x|#nlfw?dv@Cx0=s-Ne^fSG|Aj7
z9l$>=@s@Yjt-(HvqmIn&uzlwz
zHe2OMyaT#e*$8H8~8wLc6
zZD}~K){&(F=28Tx#X2Mr7lRXH^1GNWIq|4ki)ngls=bp9l}Z_)UbohwCW=$@f;P^^
z_k%W{mLa>fnVMp$%*1^RMNA`MlpQmJKE&!Yo{d3siI)vQ8bT6-05c^5f6`^koIVH#
zd-0=CyuG?zqw5~1WfROmpVshZYoLi&%I_{-gy;4kz+qVR@~zJ5Z1P1bh#dn_mPN&`
z`-vs`g3Ccg4$4j7rcVJSxcTG6P-sOe@eB|iyI9q&?0&5Ekd0(H&Iu~cmP=f6@MP{zJwq6y!L$~
z&Q2B3jSYO#h3B3VpsVe;~|q{we8?>R`Gdl>v@bi
zZ*4hG26yb^6Wfyq+LJBjsmXlHbmtjbifWA0Kp!rvKD)5UyhB;&cR2UwrR!VE-b+|9
zYj7v$09*!fHRZx4f2D}nnNi^*a6JXH=RLR%I#pdfVBLOa5t3m(A@15Y{ktX21GvG?
zL~(`1bb?jauZs0=)`Cb9puzklltWUVCwF
z@@0ds9)=%yHtjQ#M<4t2-0s9k?<`vgzc
z(I{6AC*?^8Joxvv8Mie478tkN=Q9GkZLSZh%jS>wyCYmM>r4
z+uNI-p6=`GtFEpNl$q!#QSaO?_8!P&ED7=pW^j0RBMr#O_jGX#k(ipCkdW{ot$~@@
zqPtz#Y57uBg(dTi4L0PYIxuQ{QaHe;#wukY>A|>1#>Zh2?~x}@(ll6tSb63h$@KL;
zT)^tBN_qeQ

delta 718
zcmV;<0x|vW0oVmWiBL{Q4GJ0x0000DNk~Le0001a0000i1Oos70mP6xr~m)}Fi=cX
zMZmzor>Ccljg4n#XH88_CnqNW000dQ4Us+=e{9^WT>t<80d!JMQvg8b*k%9#0#->x
zK~zYI)m1%+)KC!qvdOtWdC5i)K@bUNrHG{1%0dF$*jR{-jKZSJ=6a@cmpoLpf|E-T80adu7SkmQsAXUBOoF?Il!OaZj#ztoK(Yp|3Nqr>-r3k0R-n%%n
zfR!l9eVEyiZ~Ip=wIJJ(375k}5nl^YG|q!!TwbS2K8MLqc-6Q^XcZ1bDeh$^bH#+I
z`fbv)^C{-L0rV(FJTm*p_Ke}+wYL?Ve=O1jmhwF{O@s!{7OdGgHJG(a)%+vz^I@up
ze5eI?xTs{`fLjIox>K3EU0s?HC2+o-nb(i|vErxsz|&{%g3og88!Fo1G`tN5;v=o{
z4*jsbJ(=?ixlkGJyRvPSrPB}6AXgWGo4AOV*8hJDi{1D+C>u+;FTbj_Tq(Qj8g$R`mUq{!!9I(lj?C?_edi}O
zTjfdR?R}Gzt|94~c6-^I<6M$BWn1;SwkP=u(Qc{Z{Vp)000000NkvXX1g=70g0Ff~
AXaE2J

diff --git a/docs/html/img145.png b/docs/html/img145.png
index 0cc86fe7ac880844c73059882e1d909a55d2188a..554b59b21951976bc6fb8c9307a231d289435905 100644
GIT binary patch
delta 431
zcmV;g0Z{(#0lWi2iBL{Q4GJ0x0000DNk~Le000150000U1Oos70Vzl%-2eapFi=cX
zMZmzor>Ccljg4n#XH88_CnqNW000dQ4Us+=e{9^WT>t<80d!JMQvg8b*k%9#0Xj)U
zK~y-6V_<*)UIs1(h6M~*fddc=Gk_F8*qDHyk@p>w0Eoqm-3aV}ABfqZnpi=Y7ifk7
z-zx?n#ly#lWE&SL#^SdS1g1eKrV9)T5C#u}l9B=gk1Eg^OhEnyPN=m9z_JN^hu0cR
zf1r*NC<1$-bSIiP6O>*Ap?Fq9`I|3*DQ+H)oew~a4N!$295|JffZo&NWCDc%Cj$=y
z!@GA67#<{mr4O(%ED$&VN))^h^@qVE%YkjWn;O7IVu_ChV+j4H}41>}%
zFm?|q`7tnX!0cmoVBl&+_J|zA86=)11H&?gwJZmCAc}yQkilyKvf(o@z0$ymu4ojH
Z1pppVHxsu#J;DG0002ovPDHLkV1l!pnyvr<

delta 224
zcmdnP{EpGCGr-TCmrII^fq{Y7)59eQNDBk891Al81EcqIj_p8>Zh%jS>wyCYmM>r4
z+uNI-p6=`GtFEpNl$q!#QSaO?_8!P&ED7=pW^j0RBMr#O_jGX#k(ipCkdW{ot$~@@
zqPtz#Y57uBg(dTi4L0PYIxuQ{QaHe;#wukY>A|>1#>Zh2?~x}@(ll6tSb63h$@KL;
zT)@z8N?ZT{

diff --git a/docs/html/img146.png b/docs/html/img146.png
index 554b59b21951976bc6fb8c9307a231d289435905..a2e86fc073c618c5d637d552a81aafe19ffff1f9 100644
GIT binary patch
delta 441
zcmV;q0Y?731Nj3XiBL{Q4GJ0x0000DNk~Le0001F0000H1Oos70j?w@gOMRje|Jel
zK~yM_ol-qW!$25)No-Bhw8^Nr9Cgty>Fm^1U5b--iVmf#qg!Tm$RvtTBRC0apt?B(
zL8MS6YwZ$o5+r1G^Dapv9<+$>@#S*gyYDBL4;UjTBuhJimAhS_*v`DU6S`>ESLyUMNfYGkP`
zk&*VOI&sq{0zx2)LZ-|y@;&_x3b!v|At6QKw^D)8WCXnD!&)!U+=FhWh}faDAo>Je
zGmh&H;S_9z3fz9YrwS-Xk&B9eZAz-t-^(J%T5GhF#yoj%2IG{b+mrCWe>*@6`ZRel
z0xqzcTZ+NdlrK;$6z4OeA0sY@=-~X(Hr)zQHq}_dr|!@nJD_+-LsWXSmKmX*Swr)I
zU0Ui4M|RnRZ1Gh@dbFAu3mNSfZBJ^*9eka1VV16De2oji2d;BNG6D_+z-Dj9Fa(<)
j3Obn8ADevr6Y&iRvW*W84=AFn00000NkvXXu0mjfc4@ok

delta 379
zcmV->0fhef1H1zviBL{Q4GJ0x0000DNk~Le000150000U1Oos70Vzl%-H{zD-
zK~y-6V_<*)UIs1(h6M~*fddc=Gk_F8*qDHyk@p>w0Eoqm-3aV}ABfqZnpi=Y7ifk7
z-zx?n#ly#lWE&SL#^SdS1g1eKrV9)T5C#u}l9B=gk1Eg^OhEnyPN=m9z_JN^hu0cR
zppFwL0(+r!Cz?1DlwJg(cveICf159WDQ+H)oew~a4N!$295|JffZo&NWCDc%Cj$=y
z!@GA67#<{mr4O(%ED$&VN))^h^@qVE%YkjWn;O7IVu_ChE41>}%
zFm?|q`7tnX!0cmoVBl&+_J|zA86=)11H&?gwJZmCAc}yQkilyKvf(o@z0$ymu4ojH
Z1pppVHxsu#J;DG0002ovPDHLkV1g5jiiZFI

diff --git a/docs/html/img147.png b/docs/html/img147.png
index a2e86fc073c618c5d637d552a81aafe19ffff1f9..ee9568425999fcd6b4f91eaeafc8c6581b4214f9 100644
GIT binary patch
delta 386
zcmV-|0e$}Y1H%I$iBL{Q4GJ0x0000DNk~Le0000>0000T1Oos70cWthrI8^_e?dt^
zK~y-6V_<-QxOEVki2(&n_{j-jD4>cnF)%YQa3^rg`*i?K2M)mX0Yn-w@Bxi#WZ(d@
z4*;25%ncJZKtv%xNCB4tgaHqN$-RLAY-Yg$27v<~5-u<#AjBpxFaik#fe_(JPD8LU7422UIxE?TqEnR?YDUUJ3BMXMxKqL8-8N60UEwEjE$pXoZOh;=rFyIDj
g&Hw@aFc^*i07JY_=0wWlwEzGB07*qoM6N<$g1sG!@c;k-

delta 441
zcmV;q0Y?7A1Nj3XiBL{Q4GJ0x0000DNk~Le0001F0000H1Oos70j?w@gOMRje|Jel
zK~yM_ol-qW!$25)No-Bhw8^Nr9Cgty>Fm^1U5b--iVmf#qg!Tm$RvtTBRC0apt?B(
zL8MS6YwZ$o5+r1G^Dapv9<+$>@#S*gyYDBL4;UjTBuhJimAhS_*v`DU6S`>ESLyUMNfYGkP`
zk&*VOI&sq{0zx2)LZ-|y@;&_x3b!v|At6QKw^D)8WCXnD!&)!U+=FhWh}faDAo>Je
zGmh&H;S_9z3fz9YrwS-Xk&B9eZAz-t-^(J%T5GhF#yoj%2IG{b+mrCWe>*@6`ZRel
z0xqzcTZ+NdlrK;$6z4OeA0sY@=-~X(Hr)zQHq}_dr|!@nJD_+-LsWXSmKmX*Swr)I
zU0Ui4M|RnRZ1Gh@dbFAu3mNSfZBJ^*9eka1VV16De2oji2d;BNG6D_+z-Dj9Fa(<)
j3Obn8ADevr6Y&iRvW*W84=AFn00000NkvXXu0mjff_S^`

diff --git a/docs/html/img148.png b/docs/html/img148.png
index ee9568425999fcd6b4f91eaeafc8c6581b4214f9..75d19edba522ce4f33d1c3481048636086f988e4 100644
GIT binary patch
delta 305
zcmV-10nYxz1MvbOiBL{Q4GJ0x0000DNk~Le0000k0000H1Oos70Vlk(>X9K!e*o`E
zL_t&-m1AH4f!iAx($dnvOa>MK1e<|@hhxJk0|gk50m9-5VqoAuz`(4)uwk_UNOf9T
z0s{jV0}|M?{($p^*$&bR4g)z0xF&pHVi00rW55eIQFyFK>oWUZ-r1^j$
zgJI!0<_DY+Tpu_icpgk`-~man3-BCZU?^l@nAX6%VOj$NXOa?F!|g7%h7HUP3=H!a
z^ttCVaGXeB=z)5C0s|w6HG@Hbp_74uV*;w9kpTcA>O-%2+)qjX0000<2SrXqu0mjf
D&|!9;

delta 387
zcmV-}0et@P0>c9#iBL{Q4GJ0x0000DNk~Le0000>0000T1Oos70cWthrI8^^e*r;B
zL_t(IjbmVdfVg!Knu!4gO!&zOVJM)AGchnTFmNYu%=>i!O$QFZ^#Md0Fz^A5YGmL5
zvJU{6T+9sW$0S18s9}+GwBp}2lFfalM4zL^O2?7vI
zULajc0G_HIBZQ#iw*%D}|Cfh&OFC&Oc>}r#5U@;O;5H~pU|`^UfJGJ#xEL5dfEfx88X6cF7Jx+<
z`0!~V40sqgE&wfN0NP%_$iNzK04T=Gzy#t?5CDoZFmQvEHBn{@RuF(-a2X9K!e*o`E
zL_t&-m1AH4f!iAx($dnvOa>MK1e<|@hhxJk0|gk50m9-5VqoAuz`(4)uwk_UNOf9T
z0s{jV0}|M?{($p^*$&bR4g)z0xF&pHVi00rW55eIQFyFK>oWUZ-r1^j$
zgJI!0<_DY+Tpu_icpgk`-~man3-BCZU?^l@nAX6%VOj$NXOa?F!|g7%h7HUP3=H!a
z^ttCVaGXeB=z)5C0s|w6HG@Hbp_74uV*;w9kpTcA>O-%2+)qjX0000<2SrXqu0mjf
DoAq{c

diff --git a/docs/html/img26.png b/docs/html/img26.png
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..cf98cfe0687e5d392c1b37a6ee07289e80dc5365 100644
GIT binary patch
literal 506
zcmVBjLjb~?PO-)TFCno>^01XWdw6wIEnwo%sfOK?pT3T8_KtMD!G#VNjY}~9}00001
zbW%=J06^y0W&i*Icu7P-R5*?0Q@ct8F%&&B`(Vb&j#G(tF(UY85j(Nj+QQy1u=5k5
zHdZp7B7%z_AXDn05LlZWD!YVvn7osqS%~B;B5cat^OFY3rD@pgk5+=BS&L~*0`-k6dp<6pk6E8`F=QB8wY*2Skd}9KJ8P-T0kEciQ02dbSDBVQ
z38(CGgd8_PaB4mtifw^&HLo9Nqq=+7(Yu2eFE~-Y00{$3#GDY3
zdBba$sjv*c;Vx-|a?9RrfIaBo(0*&{Pex7bW0VTHKWj@ZY7@s#5i+;c5!umK4(htELEn4~(Dv%(blkM-0hjde=+3W=gjQL;F}RR91007*qoM6N<$f-9TV2mk;8

literal 0
HcmV?d00001

diff --git a/docs/html/img27.png b/docs/html/img27.png
index cf98cfe0687e5d392c1b37a6ee07289e80dc5365..09de5cc5345774f75eb8025e08c631aa0bea759e 100644
GIT binary patch
delta 178
zcmeyxe2~$uGr-TCmrII^fq{Y7)59eQL<2D&3o`=)V`13tav(=Hz$e7@z<~qHmoM+_
z?M+Wl_x1HvS62thOmvjUc5WAY4`ecy1o;IsI6S+N2IM$-x;Tb#%uG&jVDMwsXr9`5
zkWDSaSkU8x(E_G#qT&)3Ga7n0nRslvxg-jh(%Np<@FvJ|Cj66`#(PI$*2V^A4Ccljg4n#XH88_CnqNW000dQ4Us+=e{9^WT>t<80d!JMQvg8b*k%9#0eDG7
zK~y-6SA!M
zbP;Pitwb%hl&!o;c3pKAS$tF;NOCzjIXCx)03W~;x5z_C9cS`o_8}?|#Nk7f!z%wlkEYe(3h~6~po8Bq--AE1uW}`n3CWJtq%Ju*;I}BtINno=j
zjU}SkoJino|JJSk7_tjTz0HJOcts;eV}{vYu|7+STwN4JoccXc~!f2qs?u%>=c<-deinU*~Xr|fcs95+F5YCax{
zZGm$&uODcmx_j5ryMq@mI8nX=uj7%31z|wZGT0^QW8){poDh+D!)uqRunfQ9E@^{u
z%ie8(J?P-jerxMbMosKvlnS{&YfCL^6UR>xGPl(c+0j=H>cG}y6Bvl=U)JlGB&0f(
kv%(blkM-0hjde=+3W=gjQL;F}RR91007*qoM6N<$f`4()5&!@I

diff --git a/docs/html/img28.png b/docs/html/img28.png
index 09de5cc5345774f75eb8025e08c631aa0bea759e..7dac43e21487bad105e15e4088398514bd063893 100644
GIT binary patch
delta 209
zcmV;?051Q*0pJ0U7k?fE0{{R4a)7z)0000gP)t-sz`($#r>BjLjb~?PCnqNW000dQ
z4Yahhnwpw`fPi##bXrX
z#RgVw-~c&>iF*Uj1Q5TMK?N*cqjeMPmCrJ

delta 178
zcmaFBc#v^|cs(BrGXn!-Vc70+1_lP*0G|-o0|yQ)U%tGzw>LdK-PhMwU0oe0vt`Sc
zS+iy}G&Gcylte{EIXF0&n3zaONjbNRy$4D&mIV0)GdMiEkp|>AdAc};aLi0jaA5Fb
z)@YvEc#usk!&uPcgV6$}Z=&K77Bd=pIGK2Cy166@w3*V{ZrAW8$Z{t9lbObQM`6~+
d24)W?hN)Z}&cT{-K+_l)JYD@<);T3K0RUMbH}C)e

diff --git a/docs/html/img29.png b/docs/html/img29.png
index 7dac43e21487bad105e15e4088398514bd063893..9430fcbe698aca4ff4a39e0554606de01496e7f5 100644
GIT binary patch
delta 187
zcmaFBc$!hMGr-TCmrII^fq{Y7)59eQNb`X(3o`=)xl!JqViHV7nl+=%DD?R}gGnNGT1v5B2yO9Ru_v93CDW1Od1nKPdtcX
jYl}_jEMeQm!p5*bjYm){X@YDS&};@zS3j3^P6Unv2w`|!mYu2oW
zhK7=olBlRC6B83DDXD{Z1LT2<8B2ovf*Bm1-ADs+QaoK8LpWw8Cp0j#w($zE3D4l;
zZSDHpu=9*T>Ow{ykA{h|9v&(N0!%)<4#9d1TjdxoyfuUIIK9X`YCWQFo<&rd+na}q7P^xgQu&X%Q~lo
FCIH?TK)e6|

diff --git a/docs/html/img30.png b/docs/html/img30.png
index 9430fcbe698aca4ff4a39e0554606de01496e7f5..aa48fceccb3ff00fee354ec871a7f73ea2af0aad 100644
GIT binary patch
delta 209
zcmV;?051Q_0pJ0U7k?fE0{{R4nYRM(0000gP)t-sz`($bjg4n#XH88_CnqPTr>C^E
zw3?clfPjE>baYx;T0lTRG&D3C8X9ZCy*2;<00DGTPE!Ct=GbNc003l3L_t&tnPXsJ
z;9`J*01z>afsp|T2r#f-U|_hwfC)H(auD4!7GRNv1Ga7u!Ab%o#LR%i1Rjv796+KG
zsErYyPAp~>fGH*h9+2G(6BtS$E@4;+rL94<1_P4;Seg;)P;vkOspbknw?dVD00000
LNkvXXu0mjfNmxjs

delta 188
zcmaFBc$#s7cs(BrGXn$TtVD(q1_lPL0G|-o0|yQ)U%tGzw>LdKU0q!rD7fw&D{|nz1CvFPOpM*^M+H$KTV%F@$4gazes`q=bYS
z3`cm*u<`_4IB>v_@zfL+qZty@3=i&r*k#g~
oD0<>S6kA(tLT3rvHWoI91!_EENfTttfMzpzy85}Sb4q9e0Lw8y8UO$Q

diff --git a/docs/html/img31.png b/docs/html/img31.png
index aa48fceccb3ff00fee354ec871a7f73ea2af0aad..8b03134963d0c35fcfe54bb9e87e19535f911b84 100644
GIT binary patch
literal 467
zcmV;^0WAKBP)BjLjb~?PO-)TFCno>^01XWdw6wIEnwo%sfOK?pT3T8_KtMD!G#VNjY}~9}00001
zbW%=J06^y0W&i*IQAtEWR5*=eV1NN06bb>jftZtlVFH*VfG!IKlO}M3X}$wE6u_VBrtF?
za=>&jG=K<>1~ToX0C4bPgg65OKb+!+i*ds#goZOjxgoE!`c8-Pq^o(~KROb-q)
zBwR?~KES}Eq@)D(n?M7@gWn$>BtX>hIvfD10~&+~0R~18i*Y)pYj_MO@E_g4ZtYFG
z2`b`hU>D$maTu@RO3n->7;IH6stVz(IlBrOWHuYD`FjG$VTOrvSl?U+v4VRK!yE?w
z4a^RF8yMa&1%MP?QUU=5P@)Zjs#iF}@QOj7fn8FcfvJLT0Vv^WA)Nkz5yIg705pJQ
z)z(!!MyD9~lpBy;WV`y31=Q|G`xoHy9Ri3=I73(w1BV6!0{}TgK?MiO5HkP(002ov
JPDHLkV1mNer^EmN

delta 210
zcmcc2{D9HAGr-TCmrII^fq{Y7)59eQNb>=)91Al81LMr?Oz(jltpJ}8*8>L*^!E0q
zr>Fb+`l_p|FJHcVqN7B8_QAboKoyK7L4Lsu4$p3+0XZq2E{-7_Gm{e%9waq1G6)#<
zHcn*Z!MSv;;}$mN$&3-R1YZRdF)*xr#^t!(iEnBx&_V`JS3j3^
HP60000R1Oos70kP>{xRD`De_KgJ
zK~y-6V_<-T4GcH|Cj)~5m~jAyf=Ls&!88*t1yFDRVi*XV1>*Rx2|)5C10PVFyMcj$
z3q?CKezR}`Hf=D)%fP?`7dtZzM9$!z!44F2Qc_Z2U;_y-axid$FjQ3oh>$EG*J26)
z4=<(|mp+){2O}sr010SrB)>5xf1CkPGZxI?V^`v3!vl9CeC
zZyypE9{m3BAOWI|*Wmz=d~kpP5dsX1U=~LMhHE%vDDoiv0O#2QD&9n>d&R&m0An*=
z6TqR0DM-l$!7~Aqs+h|77BCdT*mHIjGRSN;So8M;15zsHu)ettYRT>ca-0Vk_%|>+
z@NHmt!xR8gbx8>X6hPS{2xc?S0idb+4D6En3``Y#3nl=?wBQzUJz#{g=7ZeBvTExp
z9-~tXe98^T&az#7$pXsk)Bc6Si^za6lji^t${3n})&Kw!*+zfaKtW>w00001JeT`iBL{Q4GJ0x0000DNk~Le0000=0000R1Oos70bVOKhLIsme^E(9
zK~y-6V_<**9ux`zxPh3HfnfreBY-Xo1(POlgK544I26DDCxp7dz!3j60myjCpa8U@
zfq{VwS!WLcQwW&Oi|h?Eu*+v~&tM0NIVmYAFtC9HJ|r-3GIGFlFf@P&js`OAr2ug7
zVuUyY13#SNhl_E;DTIbIU~xez@wz31ofLh
z1H*&gA08w?)bTnT0ICBTga`o!Mi7f}I;LxQ3@Gp)-N0_`O}hyy;%Z+CRV=Cs;jB5k3K?WJ8?5!qTnDj&dk@1L2L27q4tyIJXx=adfD~O)
z0s#e3q78zoS2)A)ib0=&T~eQcse*3-DB)@$oc@3j!r=S>G=OE*)>S-4rx^H@8<1UO
wyZVv^)b2<77vS<80*FmGLs$_5hXw-!069ZJ1qaFyGXMYp07*qoM6N<$g4>yrY5)KL

diff --git a/docs/html/img33.png b/docs/html/img33.png
index aa4a804d31eb48b9f2a1fee76605997593d383cf..1a3431668deb0d8671a9ce090e5c918f44dfccd5 100644
GIT binary patch
delta 210
zcmV;@04@LB1Cs(FiBL{Q4GJ0x0000DNk~Le0000P0000F1Oos70hCWkK#?I!e*lq5
zL_t&tnPXsJVBik`5)APP3=9)M42B&HC}7eAZY16X28II+44e%+8w!9l!vui_s4f)n
z0gMu{wFuY*`yIr4wT~eQcD5-*P0mx96Ra;l_7@cC^Q*K}Y0Md#fi1=Zw=l}o!
M07*qoM6N<$f|?aY@&Et;

delta 413
zcmV;O0b>4>0^I{4iBL{Q4GJ0x0000DNk~Le0000>0000R1Oos70kP>{xRD`Ce*s%b
zL_t(IjbmVdgAEKg0Ve~40+?|Chk{8HxWP0NE(K6<0Ad&joCV_euL(f%B?BK&oV$U6
zfeS@DGk&vh12%0i#mm6J0~b3p4Mfi1p1}?jb5c@LU|<6YFmf<(f-qE71Bj3;AlG6F
z01q#w7?(bn;s+xrH~shuf%^ahkCKuS
z)NdaW7#{ro@E`%Aj@RJ;kbH1}0TBWWj9?Z=1BPojWGM0={Q&3L11jD`sC&i0E&yXQ
zUK7BfiYZ9R1;H}`ld71?_!ck}!q{_m6*9%X)iBL{Q4GJ0x0000DNk~Le0001%0000S1Oos70R{tW`H>+@e*#2F
zL_t(YiS1QQYZE~jesZ2N4e%BB8wqZE;*du!OQl(aYAOr{FK}o!QSMi-OgQ_=G(B_p1OvC@U9HW#nK`03M+<>2{msxTo0KJI>!_X
zDfHH4&C8kK5t2lmrxr82Al=k&&L!=KrE#Gx+`?9)c(b5xGR382{Jf~RW3?yA527Jl}bM_7uUe~?+4Do7&Ht;^c
z%FO-I`n7ZBd;4O8J=
isfwc5=bG(*20s7-n3XDZWsCm+0000u{wFuY*`yIr4wT~eQcD5-*P0mx96Ra;l_7@cC^Q*K}Y0Md#fi1=Zw=l}o!
M07*qoM6N<$f{58g-2eap

diff --git a/docs/html/img35.png b/docs/html/img35.png
index a0f61030094fac14194363e8acec086f01bb2749..a758b5013a71f66f2be374de26dc2f685f054369 100644
GIT binary patch
delta 192
zcmX@c+Q_8X8Q|y6%O%Cdz`(%k>ERLtq@{qEkA<0mfpLq9;
z7@9a09(`kEGkB1emejz^>gUGBwl0{1@j3Tqbs4rx@-rlM{FE$Uns=3_-7<_(Qu;^b
z4^s&V3&|T27PBNIDkOJIoyk-1`Y@B&yyUtAk_QVKwkPU$M4vcd;Op7gsI9|vBC#wX
sAtU*LMdZl`j86=ko>(`UToAKoC=wQ3zu=Gs&}9q^p00i_>zopr0Q?L-yZ`_I

delta 648
zcmV;30(bp^0>%X)iBL{Q4GJ0x0000DNk~Le0001%0000S1Oos70R{tW`H>+@e*#2F
zL_t(YiS1QQYZE~jesZ2N4e%BB8wqZE;*du!OQl(aYAOr{FK}o!QSMi-OgQ_=G(B_p1OvC@U9HW#nK`03M+<>2{msxTo0KJI>!_X
zDfHH4&C8kK5t2lmrxr82Al=k&&L!=KrE#Gx+`?9)c(b5xGR382{Jf~RW3?yA527Jl}bM_7uUe~?+4Do7&Ht;^c
z%FO-I`n7ZBd;4O8J=
isfwc5=bG(*20s7-n3XDZWsCm+0000pambFGvL(+jIqlb}QUg+3
zcerREsgl*vMRlmzsw$Mqn6)wK(=9quX{!YpWrXFc%B3N@9(V3>6XamPdmt(_f7+JR
z8n@Zbu%P(zPzx6gKhsW%}Kr*X{K?I4&FvxpCzN*_dnHbAfm!A2QDuH2|3YYR43
zn{N!gA7vWS(o)^}dSD`MaEYrIe~ki?lyEnog*V-J8bF)}rYWe$$H-YmN6!VIa293q-;&e0eb0a+r3q$hcw
z3>t}la@p?|nR?jO4aJejtFaBDxATgyc;h|s^#x?)zr4q_rF%Qt(tYq17JmW2AP!hB
Sga+aO0000ERLtq@{qEkA<0mfpLq9;xiz}V4|vCy@`p5l$2D?
zoi(vQ5yp}rzhDN3XE)M-oO(|e#}JO0$q5WioC=S=F|rvvNJ~p+a>uK5<7lM7BJ1b%F}Kc#waQMqw_aA
S$O7mT1_n=8KbLh*2~7ZZDn=Cm

diff --git a/docs/html/img37.png b/docs/html/img37.png
index 5ed5aee4f3b0f5b91c7750d6c3f35d7110d74578..71286e309f4309a27dc3cb4ec486e795cc2ec467 100644
GIT binary patch
delta 980
zcmV;_11tRH1d<3LiBL{Q4GJ0x0000DNk~Le0002#0000a2m=5B0W6r^Es-Hke*=w4
zL_t(&f$dp|wxb{n4FM~JIQaixJ0XBYi+w$Bn>RDw(k*1MSM_sJycNd|(KwPKcO
z6^aNqZE&biV#AN9>WH
zY!>1ju#%);%|%ez5>)inf2Qp;m|tR&OQco^vt%G;F!q~B4T|X0Oetjt>-Qrr!<%4@
z7QB?kA&ZMEsor~9NH>^~J!#I`^&E`FV>Zz9PCN{6Bw^iP4Pv1sw>Oo3n{^i==MSEX32f}A5L+*xrRH^&puAje@m72r$_x0K`&gm
zaN)vVhFA)ilZHLaV`0}r^)x6n9$j^w%$d7S28R}L*l>VP2R5EoByYItJQXo;q+D$|
zjKncmS~{(_aS4>Ry5`|bfNLUR_K{K!h8A6f=n{fkN?IYc9NCe$E6#1G4aW#lTt4q<
zj9IZyckHV3l*Ls_e_ZRNVq0RZg``w%+FVFZ_jzF#?9jR@ANj{l&e5nEgn64{+-6Y;
z0qQ)+O(+fb2-TzZtoAO4vHBa6fz1nR!M;m(?5gu5q9!^U8R0BUq*h_minr9AyYR6<
z!_@WE&mmuU@a)>HpzV1HT|N>lC2H*2w^F$I{TjV
zlx?=%r#p7lc}m}Mt}qT@xR#WL1{qxC;gQ`ZdA1^rTy>uK9jE^{fJ2vj_QwG~40T=d
zp6)W^mZPiAD$^JI-)0|E|3}fDwSOP=S-WuIJMbH%<{Wbu3maGf0000pambFGvL(+jIqlb}QUg+3cerREsgl*vMRlmzsw$Mqn6)wK(=9quX{!YpWrXFc
z%B3N@9(V3>6XamPdmt(_+LqKBx7p6Hp!o7o3l|MP)oZUW>hyXa=on(Df2mnMK38j5
z|I0l87<^~zI%fQ|G(Py?S7Kk|@2L7aVMzj8r4|EAAj1(>sW%}Kr*X{K?I4&FvxpCz
zN*_dnHbAfm!A2QDuH2|3YYR43n{N!gA7vWS(o)^}dSD`MaEYrIjRKOCa5tcZH{E#S
zrkY8!S|&Y^72>p&iSA89d8&@m=1hhAR)=X5)-P24cs*L%ul>8bF)}rYWe$$H-YmN6
z!VIa293q-;&e0eb0a+r3q$hcw3>t}la@p?|nR?jO4aJejtFaBDxATgyc;h|s^#x?)
lzr4q_rF%Qt(tYq1e*wTC4p=XQ2I2q!002ovPDHLkV1ktk{R{vA

diff --git a/docs/html/img38.png b/docs/html/img38.png
index 71286e309f4309a27dc3cb4ec486e795cc2ec467..4ae3794e55443bc7cdbf1a8d3d87fb998d7d6127 100644
GIT binary patch
delta 286
zcmV+(0pb3V2*Ls-iBL{Q4GJ0x0000DNk~Le0000i0000E1Oos70ny3RnE(I)Fp(uL
ze>5~S8X6jG+^k&y0004WQchC8GN2Q0A)T&oNi
z&;WP*XI2IVt_4i4wrDau3l6QeWjMuPyAWth2{;1RPLcWLO};aKNy7!G?gxT)TKTH4teiK`^ypJ(o-b(=Ucc
zASN&j-tbRgVBpMPxXr*Wz;l4}1DMIckpNQ6`GD!e1`~$12L72dLCm!*2YA5Z4U7x|
k3>*v$6TnQy22KVB02lHzS#6=V)c^nh07*qoM6N<$g4~2=LjV8(

delta 1012
zcmVRDw(k*1MSM_sJycNd|(KwPKcO6^aNqZE&biV#-Qrr!<%4@7QB?kA&ZMEsor~9NH>^~J!#I`
z^&E`FV>Zz9PCN{6Bw^iP4Pv1sw>Oo}JV*`X5elySaut($79l&`Xu}r$_x0K`&gmaN)vVhFA)ilZHLaV`0}r^)x6n
z9$j^w%$d7S28R}L*l>VP2R5EoByYItJQXo;q+D$|jKncmS~{(_aS4>Ry5`|bfNLUR
z_K{K!h8A6f=n{fkN?IYce;nD7xGTN>lC2H*2w^F$I{TjVlx?=%r#p7lc}m}Mt}qT@xR#WL
z1{qxC;gQ`ZdA1^rMqG8C_#LPJH-JNzeD=oyKMZwU@}BN8
zLy>?ecqd2EMG@qA3Z6%ma*G@;Q5W5c;3nexz9iSQSFah0p!h3EzVE%?dwK8meP2Fc
zBtkuEi!Z2El6f0&Ml-Wu)~y99f61ZE7eO0ugJ$v+awsSM<-nJ&W-pWk0*m}C+s)xI
z7fA090iL`&=j#QiJOg}1ASa%{v`{h~WvY^zq(NvS;<4J3iZ3thEhTXgmwzz0$`Fg>
zElM;~xapLd1Y3uw)oPrr6SbP0EbRc5SEWN$E(0e2vc62^%ZI6HvU0<3e@Woy$)vg`
z59=RAd0S~AdD;kRE6Y}EGbEABdl)o05fAq
zlyb#FB2hMj{U-u>H=;bQm}|^$%GgFg9B*{ddK?&QM{oyt#>6$LO!sa5=VIr^a)A2Y
zwsqP$#cDDd8_PCx1ubccelS>?*Of=|Bjid2H-NR!--=&Fju
zHvIAA&!KhbE>`Lxc;|S@iG9pgMt@JQ*Ps6|KG)wizT@l*b~U%OepqrZ=_hP)F|`>i
zyXL8aI(f<-bJf`-JhmCyL4=LpoGOZa|CHgTaEF^=8|*A^Q@S
YUykaSTJ=_rp#T5?07*qoM6N<$f*=1^p8x;=

delta 257
zcmV+c0sj7@2Eqa%iBL{Q4GJ0x0000DNk~Le0000i0000E1Oos70ny3RnUNt&e*nNq
zL_t&-m1AH40%isX_`m=MEU^k)s|*;>0C)UnRt5&H1x&8CXfiwt4z0FjIK^PQ5NJ&0
z1TLQW>=XFVwc`M@9lTF2;M~Ho^8o|H2B!-PIJsFknHU(D7z92998h3nSRlZ_uzJCU
zfX7_BcsDf=X(&N3wP8J%Oa#*}SB6I*CNK=%@K0c1;LKpS&A=|ebAa;$n90DA08-5P
zfa${q6Na`1{+TmD%(W~Bc);Qfj0^${91IK-z)Z#lP6h@57xFV%ZK1Z+00000NkvXX
Hu0mjfh#g-S

diff --git a/docs/html/img40.png b/docs/html/img40.png
index c00b10d4e9d950bf8f4d533aefd8b622cfc2fd40..fc90801217f55222fc19f6d75b0b8dfc3df08658 100644
GIT binary patch
delta 424
zcmV;Z0ayN`2IvDJiBL{Q4GJ0x0000DNk~Le000170000S1Oos70coD~k&z)we*tDm
zL_t(IjqQ`MOT$1E#=j&@lS{5?R>2{rI0@<~1tB$tPUijn;N+iWQKM(i}IyR
z6ks^?5$+|MIABA#(OQ43o6vbufA)B&y)2Prv*!Nlun~%q;0*B@YPz&EzY>ZzE)Nr0QcLJ+>V+MnW+~0_0R}d6RfR$uE48@dZ
z?^}))6^i9-K1`$7=DrF7qC)*X-^1zz{rqb{M$b=V<0qEK>z5ApPXhf4e$%*}YhG02
zq_WtH@3xMfGQ1p04nAf)tBqH&6lyNscwyO2mEpc@0d|TnK$+6L1B-M-*F1(C(1
zG3aaN6sB~Y;)TX}gW6T7&u4eu17=}V^1Vy3ss`GGB_(
SFMk~X0000
zLy>?ecqd2EMG@qA3Z6%ma*G@;Q5W5c;3nexz9iSQSFah0p!h3EzVE%?dwK8meP2Fc
zBtkuEi!Z2El6f0&Ml-Wu)~y99f61ZE7eO0ugJ$v+awsSM<-nJ&W-pWk0*m}C+s)xI
z7fA090iL`&=j#QiJOg}1ASa%{v`{h~WvY^zq(NvS;<4J3iZ3thEhTXgmwzz0$`Fg>
zElM;~xapLd1Y3uw)oPrr6SbP0EbRc5SEWN$E(0e2vc62^%ZI6HvU0<3e@Woy$)vg`
z59=RAd0S~AdD;kRE6Y}EGbEABdl)o05fAq
zlyb#FB2hMj{U-u>H=;bQm}|^$%GgFg9B*{ddK?&QM{oyt#>6$LO!sa5=VIr^a)A2Y
zwsqP$#cDDd8_PCx1ubccelS>?*Of=|Bjid2H-NR!--=&Fju
zHvIAA&!KhbE>`Lxc;|S@iG9pgMt@JQ*Ps6|KG)wizT@l*b~U%OepqrZ=_hP)F|`>i
zyXL8aI(f<-bJf`-JhmCyL4=LpoGOZa|CHgTaEF^=8|*A^Q@S
YUykaSTJ=_rp#T5?07*qoM6N<$f{_SU#sB~S

diff --git a/docs/html/img41.png b/docs/html/img41.png
index fc90801217f55222fc19f6d75b0b8dfc3df08658..227f4a45eda40082c3e0805fb7981688608a2799 100644
GIT binary patch
delta 805
zcmV+=1KRxP1L6iDiBL{Q4GJ0x0000DNk~Le0002Z0000S1Oos70Y~>1Mv);)e*)l1
zL_t(YiS1UuYZO5keY;7_?cUtp7Fq}vn+<79&;y$o4II~6cv#waSfw+6LP(_`x@Z$2
zn1g5&PdWTi7$b}^O-#@rHWGxU*PGsnvAY}`|Tr3Cu$-I*&;|1rZDVe(<+n`t=5&GOC1*CR@xMZH
z;{sjiPN`ztX|nUJ(qw}U<)vd4M>MJ9Q(1S+vf#@G7Q-;0Bn#ImQbFL+f3gvl0?Hik
z6;4b-(p(NzI2jA%nncNmgJMQ2*{MekY&Ot|FHvRd)&P-(U>YsyVh
z?OMa|b&cK9(Im&Gs+s4JtW8#f*bB;)s=SE8C#sNcQe&$Vd3wm0RD
zkSFQVGv<0G5cv^L>NVHH*3~4}bl!tP+rG8PPWyI*BODeyn
znU4>hb+QW(rTLZnPhn)HI{A865nFweLV9&OS9ipJHMkebl&<31E@5$`M-Cza-7G}^>6_R$@uA1waA)-RtPgmwD
zdIMjK*K?+AJ#IO2dm6ZkRmaHWdYg2*=U&Z;a0GV-M~AVF0eJm8?$0{)FHRTetv&kW
z^DywevyM22T-`3?hnbn`><7~a$K#IwnRwqWztclM)iKb@2{rI0@<~1tB$tPUijn;N+iWQKM(i}IyR
z6ks^?5$+|MIABA#(OQ43o6vbufA)B&y)2Prv*!Nlun~%q;0*B@YPz&EzY>ZzE)Nr0QcLJ+>V+MnW+~0_0R}d6RfR$uE48@dZ
z?^}))6^i9-K1`$7=DrF7qC)*X-^1zz{rqb{M$b=V<0qEK>z5ApPXhf4e$%*}YhG02
zq_WtH@3xMfGQ1p04nAf)tBqH&6lyNscwyO2mEpc@0d|TnK$+6L1B-M-*F1(C(1
zG3aaN6sB~Y;)TX}gW6T7&u4eu17=}V^1Vy3ss`GGB_(
SFMk~X00001Mv);)e*)l1
zL_t(YiS1UuYZO5keY;7_?cUtp7Fq}vn+<79&;y$o4II~6cv#waSfw+6LP(_`x@Z$2
zn1g5&PdWTi7$b}^O-#@rHWGxU*PGsnvAY}`|Tr3Cu$-I*&;|1rZDVe(<+n`t=5&GOC1*CR@xMZH
z;{sjiPN`ztX|nUJ(qw}U<)vd4M>MJ9Q(1S+vf#@G7Q-;0Bn#ImQbFL+f3gvl0?Hik
z6;4b-(p(NzI2jA%nncNmgJMQ2*{MekY&Ot|FHvRd)&P-(U>YsyVh
z?OMa|b&cK9(Im&Gs+s4JtW8#f*bB;)s=SE8C#sNcQe&$Vd3wm0RD
zkSFQVGv<0G5cv^L>NVHH*3~4}bl!tP+rG8PPWyI*BODeyn
znU4>hb+QW(rTLZnPhn)HI{A865nFweLV9&OS9ipJHMkebl&<31E@5$`M-Cza-7G}^>6_R$@uA1waA)-RtPgmwD
zdIMjK*K?+AJ#IO2dm6ZkRmaHWdYg2*=U&Z;a0GV-M~AVF0eJm8?$0{)FHRTetv&kW
z^DywevyM22T-`3?hnbn`><7~a$K#IwnRwqWztclM)iKb@0Wbc^0*?eCiBL{Q4GJ0x0000DNk~Le000190000S1Oos70c~p~tdSv0e*uk2
zL_t(IjqOy+O2a@DJ$aNSW}0T{NPyWr9XbnVIy=%V-ye!ze$HxgWl6d4c&MWpCP
zkiuATBO+PrCjLS33!E9_G-;zk7p^>EhI{Whb7$_IBtQww%=#Fi8htUS7`&40Xp3$q
zREq6~ZxU5PWhFp{=MFWAbk>B^e^5=9a@@BOGJ8>=aL*NOAEf+OITgD^?OMg7j;@GaMeuRyckOPa%ZJi#O!
zrp&h_jf
zU=9L;c!ZExC?qgB(j*2sQbp5jO0AA`qJ?i}cK3FZ7%ier{F0lS`R0A^&6{~M9B>R?
zGx=phzgtT=?KnY-C7>!h`y>W9f1t}D`<>8j7sqxgx_3WrNhTCcET+uoC7y)&E1vG*O8X$?3cO
zE>yM3vN3Wbcv)3+divtnc{M+sIP!}3GtP@-bk+5;NIhXC$@4*zcegQ0_30>4yZQ{C
z!Fntw8f`yl(H)JWK$4o}f8*6-O3FjW_dQu>(~xCW6>pF~HcTR|LYJ6hN-U4az{E!M
z2s=b2kxG~fqrnDucBJtlSq0A<2%Iaj3Nc-DJ4#1OvK77#e_H|@vYq*LAY}kE
z&a*nt0%c%H#F@UH-J0lHAFjjP9JgXPE5x*b>?u=*>+`FaU5?1WocOfhV)N)gq+Y+=
zem~yDOW@(^i#_2hwe)s@@74xtowJO?+fqVf+ZXUuAboHVwZ++p3@qFx?uwMJ#3GDe
zzv&OFK;9Nv+D&`|f4Paup7fPkT0Q7fWcSY8w>j))1VgM~q>#}ZaEZEP06V5fWKyzv
zd>|uI&!OC6JQ6>r7U-QacxFk9#qvmiPQ8UD*j4iE9y%k++8LV%8QgfYeGS+;z_z4kr&7JoPNxc97002ovPDHLkV1g~okthHF

delta 464
zcmV;>0WbcW2ag0HiBL{Q4GJ0x0000DNk~Le000190000S1Oos70c~p~tdSv0e*uk2
zL_t(IjqOy+O2a@DJ$aNSW}0T{NPyWr9XbnVIy=%V-ye!ze$HxgWl6d4c&MWpCP
zkiuATBO+PrCjLS33!E9_G-;zk7p^>EhI{Whb7$_IBtQww%=#Fi8htUS7`&40Xp3$q
zREq6~ZxU5PWhFp{=MFWAbk>B^e^5=9a@@BOGJ8>=aL*NOAEf+OITgD^?OMg7j;@GaMeuRyckOPa%ZJi#O!
zrp&hmz?e*v^f
zL_t(Ijnz}XOT$1E{?b(2G?#jd`;p?H1?k{W6hQq1EX75;R9wWxtZu$bYE5di;2`*sd+*-Qd+*%^=z{eMq?s1d8MJnnT-a`_
z+g;)^uph(D9x(-TC`bAB#1vehe`axjYS>U62be)#6S55B7x}h}9tshrBz*=8Y6`;V
zsz-H?CKy)19haoIX`19jb$QNy3I!+yQYf0Q{woxJ?C)F9D48D84BJ5|*b=l{JAI0-
z2dI1d!2#u|ylDy8{-6@HTKmh$-O>;kc!C}g8EU2}pp16Lg`7|k?;j{le>?2~7hpNW
z?&v0XQVEyMeTj$4`QNzuO%M~3>L=B#9qkai;a`sQ|fD_jf
zU=9L;c!ZExC?qgB(j*2sQbp5jO0AA`qJ?i}cK3FZ7%ier{F0lS`R0A^&6{~M9B>R?
zGx=phzgtT=?KnY-C7>!h`y>W9f1t}D`<>8j7sqxgx_3WrNhTCcET+uoC7y)&E1vG*O8X$?3cO
zE>yM3vN3Wbcv)3+divtnc{M+sIP!}3GtP@-bk+5;NIhXC$@4*zcegQ0_30>4yZQ{C
z!Fntw8f`yl(H)JWK$4o}f8*6-O3FjW_dQu>(~xCW6>pF~HcTR|LYJ6hN-U4az{E!M
z2s=b2kxG~fqrnDucBJtlSq0A<2%Iaj3Nc-DJ4#1OvK77#e_H|@vYq*LAY}kE
z&a*nt0%c%H#F@UH-J0lHAFjjP9JgXPE5x*b>?u=*>+`FaU5?1WocOfhV)N)gq+Y+=
zem~yDOW@(^i#_2hwe)s@@74xtowJO?+fqVf+ZXUuAboHVwZ++p3@qFx?uwMJ#3GDe
zzv&OFK;9Nv+D&`|f4Paup7fPkT0Q7fWcSY8w>j))1VgM~q>#}ZaEZEP06V5fWKyzv
zd>|uI&!OC6JQ6>r7U-QacxFk9#qvmiPQ8UD*j4iE9y%k++8LV%8QgfYeGS+;z_z4kr&7JoPNxc97002ovPDHLkV1ltlkxu{s

diff --git a/docs/html/img46.png b/docs/html/img46.png
index 74259acf5eddbd9d5ff8254a60615b5779b7ae92..daed562ba8a5f804397083964e8c152dd10fe58d 100644
GIT binary patch
delta 513
zcmV+c0{;EB1i=I$iBL{Q4GJ0x0000DNk~Le0001N0000O1Oos70h;_ZzmXwKf4@mY
zK~y-6-Bi6x!$1`OU1LAeUSbya5Oq*NIyi_T6wyT##6LiaLr1ZTb5Rfkhu|oJ*)27z
ziV%w+qF{0JW2m@@i(Lf=-{lOZHGb65AKdTd-Mjbhy?1v3THrhbdZKwwqp>mHfcx6I
z+Q+FBF+oFE-z32>9l7*Z$YGDTf9e>33Y3&%uG^Tzuxg52D4BBGA=e5L5vCLku7zjv
zrj&}$UPf?|V+n@WAf>~yELudF2}44LV1OM8!BoMew)6Ze3g6fF6-3#xz5so0SX&5d
zYBn!F(sV-PR}a+`y;6_CI}RZu
zH$$)0lMD7AKR5@U8m*lSl=nw!bnAULC2&b!0*Aor(bhelkffsliALEPbGEhU
zdoneOcZ*)=-E6tA*ixBJM&;(HyCl`I-K*i~zWj_gF=S!lPgXhB00000NkvXXu0mjf
D$0zB&

delta 502
zcmVmz@f3!(N
zK~y-6)la2Q>EKWlK?E035dQ$_RB#bpoJBzp9Exr(W)v(X
zxM>kW5kwR$#YMYRT*Sq!ZoW%uO=`5@Ao!7c@7~XQ@7)FHg7pfdnHJI+w04(V*lw%a
zUE(sZAH&WbF$HrdNBQ=|6kMQYe{q0n*ian@m_c3>vJB%F`L>H53K6CxeFh6^3c}~A
zM|F=T7*@d@m!!C9n&d=vdCqC)KPS?GU@+UzIhF9$^huWKi-s^zZu6h0oQg&f(K%
z*I=^~^^0uzbi7V)!;4Zs>?ykODzJ5a@Q4JJk({`%aEK-
zS~@jT>T92;VNp^SYn%uUOwngCr=;64X&m{iZ@wyN1?_%QEqXGBt-J_>vNbV;bVgY(
su5@*kCZqarp4srE$>T;oaw5I)4s2jvmP1X2oB#j-07*qoM6N<$f_)g_RR910

diff --git a/docs/html/img47.png b/docs/html/img47.png
index daed562ba8a5f804397083964e8c152dd10fe58d..507614678dd02efd209ced9ccc386fef7a04d357 100644
GIT binary patch
delta 275
zcmV+u0qp+41k?f{iBL{Q4GJ0x0000DNk~Le0000h0000E1Oos70W%fI;E^Fqe*n@+
zL_t&-m1AH40xkv!xWoVl+z)sa*cgz(8wLgiUha5iAXA%xsSHWxAP{>WV6i>4+Ln_C
z$o^2s&oF_DXTk;stbpkNg5AN+z`&!m;nW82lM5JtY=#XFxS1|2;A8-*;bah)!0;j9
z05=l@125x(3k(|q9*gB+HxnB;X~bELMU*p{K@CJNJldeou<#u7E13wUUks0cBEP}%
zg$!pv1OvMO&jHR43=F%$qRb9V0S3$t3=Ad=Z4LZ0CrnY&0SPk#eE=dD1Q<9N7$!h$
Z006HhE{y%1kiGx_002ovPDHLkV1jzK0!iBL{Q4GJ0x0000DNk~Le0001N0000O1Oos70h;_ZzmXwJe*wQq
zL_t(IjonneOT$1E|6OB0(q3W~_YieZK{_~yA{5a@6vRJ3ibF@Si*r#B1c%@#g4r!K
ztBMedAfjM#^JA#Eh>KkX2jArkrZs-l(I4FJ<=wmY?!9++0b1ZZ1A3x)PNT6g-+=qt
zy4uI76fr?VSl=YUFdez{SIA+Hf4J%xfC`k9W3Jnn#IS0LTqv1x+acEq5)q~p4X%Y}
z@}`uE&t67wl4A*m*C3_CvMgFenF&KehG2jl3c*ytrMC0@D+=G&_Z39hvc3R)Zdh9g
zYic$xKhktU_FZhkjb0JEFg{OKrO+J|qrFm(!8;Bi
zBR4~@)sqYMA3rz;pBk;543zgrYIN&;HzjaMUjm1~>e1Fco{*%Y8@;X=FmF*26w}=F
zEM6#1R(M@m0%8|l&rm&fSp0oQdiisL8z>q?*g@Rko}F?1zfAu}iZh3TD+p>%*Xi|KM=pbs_Mxm*aGXSHKILJw!U)S_Nw+upPREHvEp<@&4ZG@!){gH?Gx~
zzc$g{RXhRSQsh16Ctd&Tf5qc{wk~*{yyHe|{IhSsdNnue%QN@{rOE#y(VMwoWV6i>4+Ln_C
z$o^2s&oF_DXTk;stbpkNg5AN+z`&!m;nW82lM5JtY=#XFxS1|2;A8-*;bah)!0;j9
z05=l@125x(3k(|q9*gB+HxnB;X~bELMU*p{K@CJNJldeou<#u7E13wUUks0cBEP}%
zg$!pv1OvMO&jHR43=F%$qRb9V0S3$t3=Ad=Z4LZ0CrnY&0SPk#eE=dD1Q<9N7$!h$
Z006HhE{y%1kiGx_002ovPDHLkV1h+7U!wp3

diff --git a/docs/html/img49.png b/docs/html/img49.png
index a6a250ad4697b7295cbce257f9fe39a3d9e47920..c6870ddb4f86d303b73ae4e8d33265db13d899c1 100644
GIT binary patch
delta 454
zcmV;%0XhDT1%(75iBL{Q4GJ0x0000DNk~Le0001G0000S1Oos70sVMfW04_Ce*uF@
zL_t(IjqOxDOT%Cgev+misc+MOxQ9q5K{ARUh@f+Sf%FGB=syT9;vzxa8x#d;kUA(>
zQ9>JVaOvKqvmkVJ^WJ@G~@L*#sK;JDA*
zEuc4xDuFtgD>CxkMHNGyc|6-Tf7WD^X9e~;?smcEJpX&J*kw^Hq>2nGRCgqR>AKGA
zr>l{wBtY9d?96S`VhLWYBA`6+Ns-rlEwr)WV8FLsg0xQz`
zWb8xYtD|CfGhhr&f>fwlo#?b2Y+_n8NQv@Nyi_H+%*>b|bpMzSH>pgaf8P}0$cmyF
z5Om7dT2jNdI&bhUpW&@IkL!Ir`HYd)+~wV*MjPN(th7N^uH#c=oY~NQL>hKc8zwdK
z2nTADf+q4dbFC}>*@<@Q9{QVT_|f@?b=EUcX$$Xk7cf8#$})QKSdm8Daq+UJagBxt
w^XFBJC*o1dvF<%|KM=pbs_Mxm*aGXSHKILJw!U)S_Nw+upPREHvEp<@&4ZG@!){gH?Gx~
zzc$g{RXhRSQsh16Ctd&Tf5qc{wk~*{yyHe|{IhSsdNnue%QN@{rOE#y(VMwoB
zL_t(IjqO!UXw*Oy{*vrZVrGAO5riJnY(>!`z57Gx(Tl~aqN}%phhDu6dJ!xVD2Nn`
zi@kZ!fG2T_;}%6~lpZ{&AgnzU(LLlW9(*s!nnt#XS-fW$Kr^i%_CxgN+lwZF>0+NsW-l
z$g~F-aO^5pDC9=s-^}f{G5uT73y=>ae_9Rdq_U0qaxzr(u-T|UxUP!|RDz7A{LtWH8xEpUHmB!Zs+a{Qe~jypt_I9<
zM1V7ia$QzJNgkdND$1{)5cGTnszHfsbV~%Be#`C0rD{WOxm0v7YQs^ft{Ppu2Tcp@
zDzMm5aUcU;U;QYP$;CB>8qGwDP4g0K#fLV>cbT34_?zesLcTZz^D7HJIPJ(cC
zb?M_al8J>=^0BfMoDiRBeB6ye))|O(i4Q~0b@v?UO1r3Ec9_C#&A1cbhAuXRs&`;T
zI)7JsXQ(uS_ylc^lJTmm_|JmQv6n?HbbZ`Unq;CxchKnE!G3bxT6{9xpJ46Kqc3C6
zzLE1XFnI~~R&V_LQ##TtjQ6W8nUUD{rW9@*{>nkZos#=5KRnsWT6JvkiL^OEgyzAW
eICh6CB<(vAL5df@UO~qI0000
zQ9>JVaOvKqvmkVJ^WJ@G~@L*#sK;JDA*
zEuc4xDuFtgD>CxkMHNGyc|6-Tf7WD^X9e~;?smcEJpX&J*kw^Hq>2nGRCgqR>AKGA
zr>l{wBtY9d?96S`VhLWYBA`6+Ns-rlEwr)WV8FLsg0xQz`
zWb8xYtD|CfGhhr&f>fwlo#?b2Y+_n8NQv@Nyi_H+%*>b|bpMzSH>pgaf8P}0$cmyF
z5Om7dT2jNdI&bhUpW&@IkL!Ir`HYd)+~wV*MjPN(th7N^uH#c=oY~NQL>hKc8zwdK
z2nTADf+q4dbFC}>*@<@Q9{QVT_|f@?b=EUcX$$Xk7cf8#$})QKSdm8Daq+UJagBxt
w^XFBJC*o1dvF<%Ec`-t-psuH?3*`lCct{R
zN;hH4R#FJ~3NoE(4S6D;wo-N7e=0nvv~LYN4yXsmH!n_gQz(653(~=Y+W6JYDaYt6
zi0kx=A28EV=n1q!tZ@)CxWylpSq
zL=;7Epo%=UT!UFIG3-i2Y3%gsz~vMaOEYU!u!7jILb&p;F6m#8`l&!if5{u$rEGQR
z5mGT0QR@$f>%GjrsQob|yqh`rnzdIL=5#?ii6kec97-trp1}yat6;gv@jhM?E#4n5
zVhUG<14R2uT*iS!sLbc$Je`w!frmPE=HVSMdx&bzCTrWg@pAd3_IEqf2RGy+W?cnV
zCT2!dC%XJsD*yhY-J2@6e~G${3uylC%k8yK~4@$T|VBD)Bx8uSTb`FgvD=r$gpM+Mmxq`bN`!|>=4DKhPWReXAq;6T@Sx*efo`@Zvd6^@INi<
z@$ILd&RSK(u>EX
Td9zCZ0000)DNd@sqGMz*n_hzCE&=FQBT?|t*$c`&1?w3iR1A7)f5|A|EpiX)lS*J^>X*BVP@-ppjT69adif7YjgZI4
zv?&3$^MCpz|33Wu(BNVl4x&;vr{`U&m<1<{f9sI02F!9q
zfHR45T~k#WjW+%|we$^Ac;thc?G|nVtXmo9GTgzBmN)GF9?*7`_Ekw%iG@@0v9c7L5T9v$+>Jrj8Hja>4@1s%_Z;a;yQp7wn8Iz%xD()pE;fa#cVI<2
ze^+{Es5FB31Z|Fz@v5u%&w|demqjgfecVr)WTHfO(CFO3esbM>Su)(8VC~SOFJsTX
zk@GSzc?tGbZ~XjII?^nR_p2?Lk=Xa96mA^;%0a@NlKU<{JlV=xb!_p8v^hb9=E0pf
dc84n@?K=`diWk3LLB{|9002ovPDHLkV1hpqHBbNm

diff --git a/docs/html/img52.png b/docs/html/img52.png
index 6577cec8d9f181100e232ae77b825838e54033a3..e3ca633abdbe7dd6d8ddf3fb46a3e6b6a4c8834d 100644
GIT binary patch
delta 699
zcmV;s0!01m1^ERbiBL{Q4GJ0x0000DNk~Le0001!0000R1Oos70sSwK1(6|4e|Jel
zK~y-6?NvQ!6hRdJZufq6b8|mw0z!(-T!NB_1Y4UWSczb;RrItASj5t9&_*!GLLf*u
z@ra#;E?S8f9WN*$t|DTgqHtazqA9Kx3*YSA-yV0#MN(M!!OpyW^X8lPw>v-&-iD(C
zLy9CAiK5q{1=gH}tg##(LiXtUf1!aS{8MOB!#;`S{p_j((uiFaAhatvDSzvM6U-~%4KnkNh~I`M$)6iToQ54
zIptF3l)mb!aaMEiIR}0wW&zimL>_6oqN$DAn#;g}#r=!t9|40ugjI4TfBNo4UrqHH
zm=2@nXv8~eBWjhxJdH9~(Y0zC_=@WYqt+rMvLYD>GIAAbASwHvrm1=oRHQ2B4sNlq
z+iYH=F|242MuAgHx{V?nskyuih4vtC)1o>X%Vim!Xu_?@b}22@1D$FcqzJ8u!V=in
zH8a-ut|tG{h0k6LmF++^8o{~(Oz}yVYW^k&Hv8D#So^RORmP?N
zPAIKj1b!f;{*CW}mt8i745zffX)RPxLU-fEULB)OT*>2L_-&>0XIm@w1sLQauC1?r
z?V_4kIwhV+TfzzGOqlPufrq+*OM(8U1j
h&>*J0;3~QK2O#N{5vJNC50L->002ovPDHLkV1iA{N-+Qc

delta 685
zcmV;e0#g0?1?vSNiBL{Q4GJ0x0000DNk~Le0001z0000R1Oos70TS)|JCPwwe`!fX
zK~y-6?Ulca6G0Tmzq^;)+jS?&+8hWLn@vDbkzirr4+xev9=3``JHg^C?FMWFQ*3q0
zp%AnY3k_O{IUMg$Ec`-t-psuH?3*`lCct{R
zN;hH4R#FJ~3NoE(4S6D;wo-N7e=0nvv~LYN4yXsmH!n_gQz(653(~=Y+W6JYDaYt6
zi0kx=A28EV=n1q!tZ@)CxWylpSq
zL=;7Epo%=UT!UFIG3-i2Y3%gsz~vMaOEYU!u!7jILb&p;F6m#8`l&!if5{u$rEGQR
z5mGT0QR@$f>%GjrsQob|yqh`rnzdIL=5#?ii6kec97-trp1}yat6;gv@jhM?E#4n5
zVhUG<14R2uT*iS!sLbc$Je`w!frmPE=HVSMdx&bzCTrWg@pAd3_IEqf2RGy+W?cnV
zCT2!dC%XJsD*yhY-J2@6e~G${3uylC%k8yK~4@$T|VBD)Bx8uSTb`FgvD=r$gpM+Mmxq`bN`!|>=4DKhPWReXAq;6T@Sx*efo`@Zvd6^@INi<
z@$ILd&RSK(u>EX
Td9zCZ0000wyCYmM>r4
z+uNI-p6=`GtFEpNl$q!#QSaO?_8!P&ED7=pW^j0RBMrzY@^o?%iBL{Q4GJ0x0000DNk~Le0001!0000R1Oos70sSwK1poj5Fi=cX
zMZmzor>Ccljg4n#XH88_CnqNW000dQ4Us+=e{9^WT>t<80d!JMQvg8b*k%9#0(VJ7
zK~y-6?NvQ!6hRdJZufq6b8|mw0z!(-T!NB_1Y4UWSczb;RrItASj5t9&_*!GLLf*u
z@ra#;E?S8f9WN*$t|DTgqHtazqA9Kx3*YSA-yV0#MN(M!!OpyW^X8lPw>v-&-iD(C
ze?y8S7>T0Sq6OBRg{-k09zyo$`=Nm({8MOB!#;`S{p_j((uiFaAhatvDSzvM6U-~%4KnkNh~I`M$)6iToQ54
zIptF3l)mb!aaMEiIR}0wW&zimL>_6of1;_4+M3J2fyMoc=N|!sKZI3sCi?D0UrqHH
zm=2@nXv8~eBWjhxJdH9~(Y0zC_=@WYqt+rMvLYD>GIAAbASwHvrm1=oRHQ2B4sNlq
z+iYH=F|242MuAgHx{V?nskyuih4vtC)1o>X%Vim!Xu_?@b}22@1D$FcqzJ8uf5H;j
z*flfO_^u}Z(S_1yk6LmF++^8o{~(Oz}yVYW^k&Hv8D#So^RORmP?N
zPAIKj1b!f;{*CW}mt8i745zffX)RPxLU-fEULB)OT*>2L_-&>0XIm@w1sLQauC1?r
z?V_4kIwhV+TfzzGOqlPufrC8T1EEzrdP
h>(C&kz2GXj`3E5Bm8RMx50L->002ovPDHLkV1h}+T4(?O

diff --git a/docs/html/img54.png b/docs/html/img54.png
index 6e6a2fab38cb76b843d796c89cd9faeee119ba24..6daecc86f4de7c16e1a3fbf61bb09295fe534892 100644
GIT binary patch
delta 218
zcmV<0044wN0g3{UBponNOjJd{z`&=cr;Uw`XJ=Pp2bhv95NK#Xmm>_ACO~ZYkN~D091!3FQXCD9K=*LSz*KP%FeMEPh_`k30nP((
z7w{b5TL71t&!Eb1ih+R#EYdQk{R=L^n8|a1;WDoSuK|eH)Bq$n6^OSH4@g4-09Cdh
UUZ46zjsO4v07*qoM6N<$f{-UpS^xk5

delta 193
zcmeBT`p7szMM^ioC&cx@fdk8zFYoQ`O;1nv_4QR(S7%^gnCK``@7yl-9>`=Y3GxeO
zaCmkj4ah0-ba4!kn3|k$fZam!U`SMyR7}VA#>PamSw<<98VSt-tUOFitN~)24Ksf;
zPEwO==VhA1!_y&6N$VJT4j&X~Q8`-KI5AP3nfW`5!tJzc
tip3$l?UH>TBoub|%DCL_;9sK1$Z#oGqGO%Qwi2NA44$rjF6*2UngH@^LQ4Pu

diff --git a/docs/html/img55.png b/docs/html/img55.png
index 6daecc86f4de7c16e1a3fbf61bb09295fe534892..984ac7b2b8ac78876aabb3e73e8557cb29264564 100644
GIT binary patch
delta 242
zcmV=>s4Vc(Xhg@J*MVG;vp1CX7-fCTtq3qoc$FkApK0Q(U`U#34jFaQ7m07*qo
IM6N<$f{js$QUCw|

delta 243
zcmVk!#ux%%-J3Za=15pr;_Rt<11!FK1grfY|V&vptB^FsZmqO&{@!O5aXu_eSXwBp3)uH65B5Kb6VD*oNgCrT~+H&zB+Hrvdl!?KdbbWX2)DimDfnhsZ
zTXh~CGMb957pu(}%F#1ke;bT090gWoLWOU>y?F2PixduqggZY{?z+9eS_*E
z`4+7W4DQ>)eFbW}dWZ`aCp!el{w%TyzwV!9^vkez(u{Bs#2-*3utK-#~WUtEJR1o&6#Hjv(2~n@+>L#8zN+q#gE#-9z$H4iqqFM>qojQ(B?!*rP
zRshbm0G7*Dx4%Dw7SvbZ198D;=h?zx><28sIs7y~;F(Aa5{kzV7b_unFe`oqysEjU
zm8e%-2pjcV*y?x{e@86oRfmpAP9k0*7I5Oc=s?6Pqltr1$V_bWMW)qXk9$RTkVrKv
zZ&>sWl6PB8WLDq~Qa_+EBZWTJs{)AOr3{Hb&5XsW(~o#11>T!}ruFLo5>Dt>FVSue
z$0wip^h>bFlNwI5fp3UF#fV2_uLzyERu@-{#YzV;=iMkOpfI3G>#ohD
z?@bHhVnqndwk9t#NobU(Cg|BJ!-*Co#wyG!T}&Kia;&1f8o@$ltU|mZSg?*_6&`h!
z1gk)-N)Mvze`0OLwQxZiq{fP8FI`Z#wlK)UQCF0v#tQ0utWp~$RIL0xT5T9M1KWnu
zX}iZeV%y%S$}#%XL-bNk;_#_McTSE$w8rDgpB%obxOER%H$p2j)39!UMTPE!oT&M6
zzsavKt7N^2#rhV^cpW}-HL2PJ>$L~PYUkd!fOw@}e|$3-ti)I?dc4w_+vxaT>9N`b
z-r|QxSZU5>#wyG!_h`Mu>VW~gYFlo(2o$8n%6O{_kE=b{bvO_x$cPock_Ikw0|l9}
zx(cNFRXN9cIy44bTLrfy4$wL>eGDRqTL%wuJyCyPVd@Y+260v4x-*M|wyKCLpg&qj
z3P4anf6JSB^CVfyv)SD$1bb^fJD*qkI-FNjAdwU+$twc!3WJv(t4;6|7U0#v9tJNf
zR-smRyJ_~?#A*ZAICAe!cnB{%lM@-7!aHC&9s3MkF%nz;G$XW~#4B`gs)~uaP-d~I
z59~06nZVQPV5is|A(UwJIX${UhvPjaO2sV6AgAkJ}nJn1G$iOjM
z>B~KCO#0P6<6c!u;K(+@D;JGg4CD)O>D6BnLlD9MD)ad)*CTYN@Fn3Ztazga@&Wl&
zsh16V;BcA|Q0Pka_$z3=fqd%UsPiR=F56)sx9-Pz)rJx0lc*YyW+h|9uNdgt$T)^q
ze+!aN93$a>Yqtr58c*5Bcr|JupWuMo=|ynv=rG7F@#lrVBV6vYJuEw*Ya
zE8s2aCG=ZkuP7rkI*YMQ+_?aorEjgPz7K!urv1^Ar@bULVMoRx+
zzFuwO$G^zn)g`DLeqC%bDEFaWojq-3@+z!XKCT;H0UKu95PV)883ng$6G#OCUKvQN
zp_ns#Qb8K8ZbD+o&0U{VkijdOYBe=TD#+lKyB+M43etH6A7}7H?YI>ne-&i%Dk@e`
zh$-uaRC%|_d^lsTv&A4Z5AN#(H`M?G9Rq(J#2@`dp;;g@CO(K$=RpE#7H#pOv2s>t
zEOQ>@nl&RcCIeVMVIDM=z3skDD2{dEmDxaACd`8xxbq-tR@=-qg5zvNTe=d4SKj&j(Pp{NghwD|~Nk9^>xL(m-ev|7}S)}4-GOt{{
zBG9Hd5-p2YVZFk?ZU(R53=8O$O+-uQ)g|aDzFuiyT-lS!tI#BHG;n-v@@fMcxZcrU
z>jqS3RjboiY@3!UyX<@Im7dpvTO2{<#2r@QCf){k11B95uDG(zfBPVcJ;-;<{|GZ?
z#KUFqpQlCN@}B?QpaR-AL4BB;c7x~K;_tum%s>4W)SFL#2q&4wd_&WA-*m$U&b0`h
z4>JR>pNE>O)Q!Mp;1&0{&#l(oElPs1lPfBwA^m_WBh`Dl0=I>`fK$VY1vg>rm)^q(
z^Y@{XR9rdp7Qjp5e@#BohZewPcn)p}7*;O4)`tWbcfD}vxAWilGtK;<*xw1h*2#;1
zj{Sc3l`WRv!igj3%1^gn4!L4OHfr(jy_JuA$~)%ysY=~Z9^@~3dwob;)J%>?tktjc
z+C??nWJ>HG?J&T)Clp-cAZH>D0G%hRqG&V44(LQtOa>5?0g
zN#toQbV=g6m#6+(H*l5nrR9sZzv6XKSeMfBB^vWz^^7OfrL=qro<#Ehdpcc8&zGn#
z%0tuXQo0~1e<;0A^`_IMR6$Z+zhdvTrq`t$f+Vq_OIHymw;w;brVUiBx#ntSV==k}
zchg6#AORda@=nnv#&rq4O&=&oM%On}nQ+Jw!`t_8QeEPL^vRx|D#;c$FMY)dRXVXQ
z0sKRJ2}x30TXwhT)z<+SPO#F+bqU8Tek?6}k|g?|f11$fhbo;^mq?H>Ra@{=CDDTZ
zo7-8q(y4R_;7ePY-Z4MgJXYzN=+YXB-8BdO_{r@#UNfHp&*RYUC!c;Se@*uQyln9=
z)DL(ER=hW}I`Z_}L32s2HeATv!gq0GIQ;8=THz`WxbigDl&9|xSiADX#|oi!2z>7T
zGF-Lxe>J#p5K1Eyj1H9cOC>EkAtSfEU1$Fdw1DCI61YA}_)`2XG$XH54cu(tiLcPxpq6s2t_#nc-gX
zSWon!)WCQi34Cr{!W)2-h^a
zlpsj(ANehXYjRym5+t1-I8(mFg{wNHE~N>Q#FV;}Uyvj=bm?k9`zza8_+^J;_(0|v
zfAJ`wNCM-!r0#2d5dy*_F@YipjO$Xp&y~p&CfP3IUwUwqz*M^A3R4L#HhK`JNCK1V
zk|#`+F2pL5?ApY-AI8UAu6Q*g`alSkyBus_Y
zas3ZJkswd+mu^c+mm7IOJ?DOHf<;f5}4U;`Vt7e??u
X1_)mUI)Bq#00000NkvXXu0mjfp=ooF

delta 362
zcmV-w0hRvg8ma>!iBL{Q4GJ0x0000DNk~Le0000_0000F1Oos70U$-cPmv)@e*q{-
zL_t(2kz-(hg1={AEI!r?2N>Xhg@J*MVG;vp1CX7-fCTtq3qoc$FkApK0Q(U`U#34jFaQ7m07*qo
IM6N<$g8CbYp8x;=

diff --git a/docs/html/img58.png b/docs/html/img58.png
index 919319cce4b55359537d121277b9b1ba501cf31b..f759dd46a7f4be1379c038814a460819f8be7366 100644
GIT binary patch
delta 141
zcmaDUb)HeNGr-TCmrII^fq{Y7)59eQNDBZl9}6=B1LI=0jrtQ6y^|SyJzX3_IA$g%
zBs@rFV7$l7bE1LuoEJlq8>`64Hg-Oqm>w?a1*dK}u*i3DvE4SVOF!oeR2q`-EDbBk@E#Q7=n*n${ZpYSX?UvK*qXb*#@tDnm{r-UW|+>|bC

delta 3393
zcmV-H4ZiZv0qGhciBL{Q4GJ0x0000DNk~Le0002O0002*1Oos70VVn-e32nbe+=hI
zL_t(|ob6mqj2y)ke%&*>J3Za=15pr;_Rt<11!FK1grfY|V&vptB^FsZmqO&{@!O5aXu_eSXwBp3)uH65B5Kb6VD*oNgCrT~+H&zB+Hrvdl!?KdbbWX2)DimDfnhsZ
zTXh~CGMb957pu(}%F#1ke;bT090gWoLWOU>y?F2PixduqggZY{?z+9eS_*E
z`4+7W4DQ>)eFbW}dWZ`aCp!el{w%TyzwV!9^vkez(u{Bs#2-*3utK-#~WUtEJR1o&6#Hjv(2~n@+>L#8zN+q#gE#-9z$H4iqqFM>qojQ(B?!*rP
zRshbm0G7*Dx4%Dw7SvbZ198D;=h?zx><28sIs7y~;F(Aa5{kzV7b_unFe`oqysEjU
zm8e%-2pjcV*y?x{e@86oRfmpAP9k0*7I5Oc=s?6Pqltr1$V_bWMW)qXk9$RTkVrKv
zZ&>sWl6PB8WLDq~Qa_+EBZWTJs{)AOr3{Hb&5XsW(~o#11>T!}ruFLo5>Dt>FVSue
z$0wip^h>bFlNwI5fp3UF#fV2_uLzyERu@-{#YzV;=iMkOpfI3G>#ohD
z?@bHhVnqndwk9t#NobU(Cg|BJ!-*Co#wyG!T}&Kia;&1f8o@$ltU|mZSg?*_6&`h!
z1gk)-N)Mvze`0OLwQxZiq{fP8FI`Z#wlK)UQCF0v#tQ0utWp~$RIL0xT5T9M1KWnu
zX}iZeV%y%S$}#%XL-bNk;_#_McTSE$w8rDgpB%obxOER%H$p2j)39!UMTPE!oT&M6
zzsavKt7N^2#rhV^cpW}-HL2PJ>$L~PYUkd!fOw@}e|$3-ti)I?dc4w_+vxaT>9N`b
z-r|QxSZU5>#wyG!_h`Mu>VW~gYFlo(2o$8n%6O{_kE=b{bvO_x$cPock_Ikw0|l9}
zx(cNFRXN9cIy44bTLrfy4$wL>eGDRqTL%wuJyCyPVd@Y+260v4x-*M|wyKCLpg&qj
z3P4anf6JSB^CVfyv)SD$1bb^fJD*qkI-FNjAdwU+$twc!3WJv(t4;6|7U0#v9tJNf
zR-smRyJ_~?#A*ZAICAe!cnB{%lM@-7!aHC&9s3MkF%nz;G$XW~#4B`gs)~uaP-d~I
z59~06nZVQPV5is|A(UwJIX${UhvPjaO2sV6AgAkJ}nJn1G$iOjM
z>B~KCO#0P6<6c!u;K(+@D;JGg4CD)O>D6BnLlD9MD)ad)*CTYN@Fn3Ztazga@&Wl&
zsh16V;BcA|Q0Pka_$z3=fqd%UsPiR=F56)sx9-Pz)rJx0lc*YyW+h|9uNdgt$T)^q
ze+!aN93$a>Yqtr58c*5Bcr|JupWuMo=|ynv=rG7F@#lrVBV6vYJuEw*Ya
zE8s2aCG=ZkuP7rkI*YMQ+_?aorEjgPz7K!urv1^Ar@bULVMoRx+
zzFuwO$G^zn)g`DLeqC%bDEFaWojq-3@+z!XKCT;H0UKu95PV)883ng$6G#OCUKvQN
zp_ns#Qb8K8ZbD+o&0U{VkijdOYBe=TD#+lKyB+M43etH6A7}7H?YI>ne-&i%Dk@e`
zh$-uaRC%|_d^lsTv&A4Z5AN#(H`M?G9Rq(J#2@`dp;;g@CO(K$=RpE#7H#pOv2s>t
zEOQ>@nl&RcCIeVMVIDM=z3skDD2{dEmDxaACd`8xxbq-tR@=-qg5zvNTe=d4SKj&j(Pp{NghwD|~Nk9^>xL(m-ev|7}S)}4-GOt{{
zBG9Hd5-p2YVZFk?ZU(R53=8O$O+-uQ)g|aDzFuiyT-lS!tI#BHG;n-v@@fMcxZcrU
z>jqS3RjboiY@3!UyX<@Im7dpvTO2{<#2r@QCf){k11B95uDG(zfBPVcJ;-;<{|GZ?
z#KUFqpQlCN@}B?QpaR-AL4BB;c7x~K;_tum%s>4W)SFL#2q&4wd_&WA-*m$U&b0`h
z4>JR>pNE>O)Q!Mp;1&0{&#l(oElPs1lPfBwA^m_WBh`Dl0=I>`fK$VY1vg>rm)^q(
z^Y@{XR9rdp7Qjp5e@#BohZewPcn)p}7*;O4)`tWbcfD}vxAWilGtK;<*xw1h*2#;1
zj{Sc3l`WRv!igj3%1^gn4!L4OHfr(jy_JuA$~)%ysY=~Z9^@~3dwob;)J%>?tktjc
z+C??nWJ>HG?J&T)Clp-cAZH>D0G%hRqG&V44(LQtOa>5?0g
zN#toQbV=g6m#6+(H*l5nrR9sZzv6XKSeMfBB^vWz^^7OfrL=qro<#Ehdpcc8&zGn#
z%0tuXQo0~1e<;0A^`_IMR6$Z+zhdvTrq`t$f+Vq_OIHymw;w;brVUiBx#ntSV==k}
zchg6#AORda@=nnv#&rq4O&=&oM%On}nQ+Jw!`t_8QeEPL^vRx|D#;c$FMY)dRXVXQ
z0sKRJ2}x30TXwhT)z<+SPO#F+bqU8Tek?6}k|g?|f11$fhbo;^mq?H>Ra@{=CDDTZ
zo7-8q(y4R_;7ePY-Z4MgJXYzN=+YXB-8BdO_{r@#UNfHp&*RYUC!c;Se@*uQyln9=
z)DL(ER=hW}I`Z_}L32s2HeATv!gq0GIQ;8=THz`WxbigDl&9|xSiADX#|oi!2z>7T
zGF-Lxe>J#p5K1Eyj1H9cOC>EkAtSfEU1$Fdw1DCI61YA}_)`2XG$XH54cu(tiLcPxpq6s2t_#nc-gX
zSWon!)WCQi34Cr{!W)2-h^a
zlpsj(ANehXYjRym5+t1-I8(mFg{wNHE~N>Q#FV;}Uyvj=bm?k9`zza8_+^J;_(0|v
zfAJ`wNCM-!r0#2d5dy*_F@YipjO$Xp&y~p&CfP3IUwUwqz*M^A3R4L#HhK`JNCK1V
zk|#`+F2pL5?ApY-AI8UAu6Q*g`alSkyBus_Y
zas3ZJkswd+mu^c+mm7IOJ?DOHf<;f5}4U;`Vt7e??u
X1_)mUI)Bq#00000NkvXXu0mjfacpz5

diff --git a/docs/html/img59.png b/docs/html/img59.png
index f759dd46a7f4be1379c038814a460819f8be7366..6b825d668c5b33e7a8ad7a290ef61dcfbcc39f46 100644
GIT binary patch
delta 158
zcmX@l_>fVtGr-TCmrII^fq{Y7)59eQNDBfn9}6=B1EbH8TY?i6eM;gzT^vI=W+o>%
zFytvbV%a>yQsPIXgoH?f(HowcgrCejCmQA}GH7KS_|VAM(Qt?VkA|1Tj`MRZij
zJV<6>yvNLQqJj0C7ekU8tH{YVc0Qh%9xmwxr*1f~$aitE-8QaEKj#Zn8j|qi@Bv=2
qM}7^bJ|13ki*2FA`6=_*f*4w#@GLrCZ~GKz4TGnvpUXO@geCyO!7fVx

diff --git a/docs/html/img60.png b/docs/html/img60.png
index 6b825d668c5b33e7a8ad7a290ef61dcfbcc39f46..6cdf6149cd70c3c37231dd182e5ecd2a13c2cc34 100644
GIT binary patch
delta 380
zcmV-?0fYYG0lWhtiBL{Q4GJ0x0000DNk~Le0000?0000F1Oos70n2g(Opzf=e*rp4
zL_t(2k(H7$OT;i7#b0{o*|h1ki=z;P1MwC?hg$@3RFKX$RX@S`4GK;oNJeq7gWw=&
zClPfB=XgawfQJ;v8}xP;b4jtK4&ob=Z~jEZMk43f!Tl
zn__NfOZFMd;3(e=lh1nYml$R|f71XUWS(IlTb|jJY8TXo4FSZaX8nn*D^v{QBIl>6qddzoLxfdS`u2-I-Cg;

delta 159
zcmdnP{E$(xGr-TCmrII^fq{Y7)59eQNDBfn9}6=B1EbH8TY?i6y-OM5JzX3_IA$g%
zI56ZXJYv~A!&2f$q=bY>g3%kEnuMRsJSQ6FD>7(h9Qe@4*wJu@|Br^3#E$cGEsL2B
z?KyPdKo&z%ftr!Q2U~`X6|xc%N5mQ;l9+hrOjT&}`7={lftSJL7XN*}O_m)%n;AS^
L{an^LB{Ts5itsao

diff --git a/docs/html/img61.png b/docs/html/img61.png
index 6cdf6149cd70c3c37231dd182e5ecd2a13c2cc34..f73e47fab7dcc9fe6bf09665471e7ba87d2aaa36 100644
GIT binary patch
delta 760
zcmVee*&{f
zL_t(YiS1O+Yt%p#{*vvsNj96L(1L=Lh$nwwgL<(-S^NtYJa}Di9_>N!&_nPb=oT4o
z6%>Qu!CE9JT3Hpwu7b9U?nw#-2?!okB=p*g^D^0OHoF#u9*XqKX6DVj_q};}@67@k
zl)I7x1@IG5$F_)*@itjit}~@ie{b~dXiF@WOlX(E#9`puAM%gLpBZy;geB!_GBVUZ
zan5OXmKAGtS7{|5atoC-NLo1XwH*!YFTj%E6&&y6WSa8Rfg$5J#arEAMcXQxNS;>9
z72m=auOhD2^*NzYqj8}YUUU@=<{EWN*p;Lk3(-*VG?s>Jjk#{w_k+v2y9f>nUAe!VJsRS)2-B1(0X51tu!SJmq#^9?MN-JvbyF)kQ@^1`^MO&K
zB6?I!VX0!=*8RKXqBS1`hmH5HQ4*02m*LdfZN`PAoBA}Nn8RpXoJXx)9l<5uX2P{)
zzxJcecFd?TQcE44Yg@N9e`ZFTUrRydTsx*}`bopbbcv%*aLmyl?z1KyUni5;>ZqEO
zqOII`xg0gK9lM8J4CS+9uwekBJsa#Q^d*;NjM)LpznV`5@kpz|9__8A-(e
zw0c&OcBe5@dPP$Ob7!XXNV+tGoJ*lF&o)+p15Z6|WeUn_gE(3Ze=j-S9$gHHEopXG
zsJN|UD#f^9a_Lg#IhR7=uH!MR5I^nZefWV<;+R|&zjA0q#Fn&4jO;h6j3z56RE*SR
zf#xs21On+&DD)UJ&Lq?;FSHFcmegws9_YA-kx^nx+R(zY1@mMwDeKQ2`sY7(eic^s
za;fiTL!l^#%6Hd1PO*aJLjjscJmO3|LDR!JChjL}D|aU!QLe|NyxdoZvBBl(W#?(?
qK^ouCQ0QZ%ia&$cgJ^sB-|-s>9K!;j(y?y<0000=Z~jEZMk43f!Tl
zn__NfOZFMd;3(e=lh1nYml$R|f71XUWS(IlTb|jJY8TXo4FSZaX8nn*D^v{QBIl>6qddzoLxfdS`u2-I-CL*EMLC7
zx3@PvJ>A#WS6y8lC^OMfqTab(>^+dlSQ6wH%;50sMjDW_%G1R$L}OxdLIZOj+dXa$
zxx=h&4Qy;B2GTBb?ldU&iHbOA_yl{faPsi@d3kZkuCcljg4n#XH88_CnqNW000dQ4Us+=e{9^WT>t<80d!JMQvg8b*k%9#0<%d(
zK~zYI?NrZe)Ib#elI^xhHk+i-f`XKYCx2jrda*)T{0kO5cwKKE?LqL+L+~Kz78!39
z6ocTwS|li1Srx{vg0_q9NeTrC2p&`<^xBK_GTCi5yB38WiuB87=FPnKy?J@>%>o&e
zf4hz@{h=$8FO)jCFN=|GSokD
z&S`g+6>D`@X(b?q<9Pi|0n)1_uA>%j2Tiswq+bWt!o>t2h
z-@+HKBCgi;IiXRbaiJDobQKNe8g)z9f0d*g3(-*VG?s>Jjk#{w_kQH!(i55!50P;8B;nu1{JC(KhAl{F_%^so|NyPxP
zdRCHlr!iA{MNx-^5Fe@me-&o)+p15Z6|WeUn_gE(3ZFFD>GT?~mWX?9qs
zxUFO=#kgQ{=~Cr6mqOvL<1wrdKkemx_<>R4m|PXVa%e=vmb6KX>^G{6CMzgZjMQa;
z<}bel0_jpH^cXYFB-AS}v<)?u)N2YJ=(vZGQDRHl(899?^JFq9>(3qfVdp<~eic^s
za;fiTL!l^#%6Hd1v4Z780h&iV;!He2)5AI@?k8+3cPAfFuE(Uj+*gOO!R6^?=V|Ie
p8sE@R=wqacKZDqVXnXkI@f!&o!vdhvv2OqX002ovPDHLkV1n^icWeLv

diff --git a/docs/html/img63.png b/docs/html/img63.png
index 1ec88bf6664deefdf26bd479ad9107a0486aaa16..8e1ae26a8f170becd7f1842f72d13bbd3333ef6b 100644
GIT binary patch
delta 410
zcmV;L0cHNF0;dB(iBL{Q4GJ0x0000DNk~Le0000;0000U1Oos70SXg!2mk;8Fi=cX
zMZmzor>Ccljg4n#XH88_CnqNW000dQ4Us+=e{9^WT>t<80d!JMQvg8b*k%9#0VPR9
zK~y-6V_*OSmIGkw0|OeEw(0=75FeZ+FyR!#gm(+j6<`4cAYuapH^UA`E+FdxgF*v0
z!*||yKo(^H=sGqOmu+x3z|Ggd&CiSwTD@??Er)``EK4CSJ-&fLJBa{{2@DKp;JgNy
ze^VRaLO>3~DGmm2htn50x4?z?nR%El97wpp&4LhOpC<63;6RW9BLm;NcVHowrRx-K
zH!v7*?E))eiUCucwDZjXfprin2t$I&?g5+)k>z@Tp@@M8EXEnZ^?~aFr_2j(2i5~T
z2N*acWFP^<%zoEZ$aF-@AspwF$x%wWf`kKq%;?QYHo
zOdmF2C}NnwAiyEOP$&q@9iS-TY+%IYJ>B29y*|tV04#b>A!^8oNdN!<07*qoM6N<$
Ef(o{lL*EMLC7
zx3@PvJ>A#WS6y8lC^OMfqTab(>^+dlSQ6wH%;50sMjDW_%G1R$L}OxdLIZOj+dXa$
zxx=h&4Qy;B2GTBb?ldU&iHbOA_yl{faPsi@d3kZku&jv*W~lM@mWfIJok#>HHskAW-(Pgg&ebxsLQ0AtYBjLjb~?PO-)TFCno>^01XWdw6wIEnwo%sfOK?pT3T8_KtMD!G#VNjY}~9}00001
zbW%=J06^y0W&i*IB}qgHxYBADksH;S|G!cMH%JU;zan
zVgmy=!wyF-AnO5xLIXF$ciwkE7G(hFIyMxSZE!fi&DX%q&x{aSy>P=Vhl0Z_OCc^j
zzJWqJi2#fV3=C)Byat$48{k4f4#O!925*Pc7dW@Th4`6ym@XVhxWLVV5MrMu@S)&9
zkOCtE-@A8UA(o}<6mB;#7;xaRQ5Gn{mg30ayoDGrXdVrybfd?$c
z8Nu~|>j9_C3vLJ213U*9rZ%hxik<-h1-PPV4ZIsz6&TnBST3vslAIX~w=qqc$Dq%x
z$IM{Iu#e#r!|iU)2TUI}U?^gk!63jPz)&a%%pIU8;cQ^U9KYsl9h8stK_hyA@*Z)+k~{sisxcKDDV>kJZrF
zp*C$=yGCsKdY%vO`+j)e59eIhIrka=`*;7Zb6qFd+*BXL#KS~IMFldrt7}O`Mg8!i
z-2~8H^n(k$Sr-9Wb7Si}?d|P2940MWscagi%oe9Sn4}t;32ooQbKT2Amm~)$}*3H@@lt
zx??${!jLP$Q?XTdSsUf~^=yA#>r<1uByy%d)_Hv?ZS6x#CvQRpr;HlQ2v}Pk*i=JU
zY8;eZbw2*kC<5eHPkHXZsX3q8mzRlAw^83Nttp>7nLEIL{+yK7H?Yd3!<+0Yl+mr5
z7C#9F>q4^ew7I6g?&Z``rr8W4>Tc(%PdumN5M;LStqjTR>)M@GWA*VjI~5miWep@+
ziByWbJZKK)77@*yin-6PJa(t|?Vp{YwXY$R#MRj2s*3T9uepA+9BMiPV{a|js~w+K
znhq%YhenU@u%?!TFqj9k;YnSso6UFJngfN+vZ7XeBibZT22n0f{I5Qej;m51<3e;J
zz)#y2k$D`Z36u|Ok4{m}FCI(d)~bE1eScc5SADf!CUuBd1pkU3k31UfCfcrC%7K*!
zb6!sxqvDeB>aSKf4rfWt_2X?9dM1h%O`+1+ey%k|KbtYl;Na!jbctT6xj0K`nCBag
zI^O%BzrjkLI|2a@cw9h2i?lYzXQ7A7#JS)@-LOEHI;GMxmf2^9`JO6<3rbfZP=w`=
z1RZ~>-At~qyi2w>P}g*P5rtNbv!mTG>*C#2t2v`_GJ#3G+Fq}he`7B*!Uk)KO&TAA
zJFF<$1nw0f_SZj0BZF$SofzK`Vr-X8qL;n{Ajsp_TU`|*NeTvT6H~dZle5E-j-5VmVGl;
zK0>Ty6Li7
z%-D*cQ#arXnEe>T4U2j8-76{NTBR~g@-3rP>d?Lfej&{9`s))F&dcnZGati>!~t|V
zKLPvuB%j{aO9!=*kw6xg)3_`)CE-Rcf#u6%@i|m?&P3kA-`awvTLRSP$`Bk2Zo$h^
z*8WP+Yh_2BHm}`xV^v3pOPfmDdqN9ehyRf91}2Afbx;nu6(|^s>>4p%MN(Iptl4b=
zBtEP@n@al4N_VlYH1ei}rL2}L9f+-ASs0>Vz=!x@p6VR}D*Q;MSDY=?E
z10mT2M7{FFm&TMU+x!CU8ozm%_dImx?9uqwWA-XX)|>*bH~Bc_13PJ?*sl(Maq*jqX`2kh)>oKEqlv_L|^Ko<6}3JWLz%`kX3+_
z2Z}IP^0!qd9YvWrYQg={vDRKr;yf`g+=RTv61`=K67&Y6G$?K9*(>=gJOfDO;`~803}hntwp`u}v#2jdrr7U3Bmq-@alSJ4<}rZj
zs;FyR&f)ihS2mE*QbJ`q8S-R&qJgZjk96(T7jPEVIQNvTGG9vpq-#s%V-%1ujkbX-
zPijB8SZa5~7giPVC-wp336>G|IAff8^}BO7{ZoB3BkYQo>m15c9~Izpxa4h*)|Ama
z?2s~_)Q&lDQk*IBQz=!(;XKG_%(54H=T9UhBp;5`yYIDF
z?SO9j7IytW+WJP{^ieII-i@?x(X;Pz0Fqi^@Ikffs;EPJ0zzEQXrH`xfM7R7sk5agb#
z%l&Cy_}Js_GoD*qu`d%{HxJX6z24SSIpp7rU{9AHh35b8Q@z^#xXn;1nM)YP;5A)Z
zlJz%4ROLYI>=}*=I4tNIA6xy^6A$0%e-;heA2Y8XY``F9hO0CER@%-rN!3>4`JVIL
z@?U)Liy=m~lsk@zjuwcN#DN(d?15Ga)DTBxm_Ky_G{p_U(wX0@H>-Xxl42y|T-Hg*qf0o#
ztk8ApogIm|_n0*1|1)q+W|e5p-JtE^TT!*#k*^_F=X@HdYLfgzM!|d2u%9qc(DLu;
zbEwf$mXF&Fm-}
z(fGa-HHrwY#bOFDiIBzBgD`p;E=7lhIx{p_l}-?h!LZOS3FvI_`|-K_-U1$x!k^5k
z7vXPclu!)%3F|Mz|LiXa$AsgDpJ(M^prIAt9>NBlCBiWdNIOFp*hCeh`iRZ~^P%7n
zpMtOzd)+8=9MD>#LH0p}QF{#X{3VT0`2<6>WTIQNTlyLY3|(4b#g2i$39rdW=UEpx
zd2vHnc7Oof(_Te|CTb+DT_1tj@ndVq8SWqd9|<0&0dKPBL|tDO=3Do#zi5QABbJ-<
zcj5j&sJ?h~CecjJolb9Ie;SJk7)#><{MR^WVBpCnO3Lqm+K-`sVHHE(ZPv|3qK~mE
z&rQh7AHVzEokDLg8w;Qw6Hf}F;V-&O*k#+R_m-QQv?jliXUoBbDjM)X2jt|)f3lwW
zFBo-;D=C!twfzr!#z1CnC<6dJ2fbqZoRS-S7KwvB3Eo=7qi?#ptE(Iq%{#JYXdX|E
zt7}hvgS_9w=q9quK9sbNAj>~`;J*|_3Gr%(6E{IY48io=6OGtHCf*sHM{*TT@hVD=
z9U}@&xAoC4*ySePpP{5JqL@()V?@A5t<>Q!M6NZ>e>4vLAB}$(?96+vJ)BQGGlOdp
zS&y!O%ip2>!jL-o=8^4M4!u(^#kHKehh2aV$q*7R_Y{=O?c_ZFOZ6V*(T6oi2wz)y
zYRP*MwkU;{)4`&DCNCo=ilB+o#aVerX-n|M@rm060MGRWy=qK+ObKb@n+b1@OU)Z=c
zka}dR2>Tg0#Z+fYlvCnym0CEM+2YA<@&WP$HnOdCC@~;-fQq?DC8VoM>UAC23*_rYtw0u(er%8|9W1hWTlH1*yS-l+b#Zk{+;wX{&(BB
c)QKke$?|vG=yC6h9|x7e9aG(E9oLwD0dZVa=>Px#

literal 97
zcmeAS@N?(olHy`uVBq!ia0vp^j6lr9$P8p$@euh0&jv*W~lM@mWfIJok#>HHskAW-(Pgg&ebxsLQ0AtY2e*ou6
zL_t(2kz-(h1I`U#ii-gWJYYD^fCaEKFsxzNz`(KrnB~e%IjugTMr+W}zlVPGqAKsqc2WfH|A?PQWF%wSj@*
zF@(useRG`vkT!tHv4E1sJBTnRLl8*FRtXG%EHwpSDouh4b3Fhh4W0000mafwvSiI(8q#3wP1Z7BW8cdXGqw?FN>X=rGQw?Z
zXzW9FYRaBv?DV+r^PK1Rob&tr{rORK9Kpio>
za$%^&;PIG>8(j6u!bbMLE_Q3losl>;9&WodpSt|MsZA)pj88#}a}c7h4Q{9+&DZxS
zF5NkJUoQa`)=qxr#HTxx(w&=u)3(#zD6T4KhCbYPG11yiErJK2e$hH#Y
z5-)Zeg9RicGsdIu3abxa?|SoRTWIwwC@oiiS{}iv5LGSPzo0UrEC*>Bs
z>H(oqBb!_)MIkI!!Q4bjd-GZ&aNVsjNZc|LSoDi%kwKdPt}enaKTr-TQXUaP3?m><
zTINu>ycY4a_sb8C(086ck|!)z`rh*UX}ePK_0|HVRl+*>SKLVC{!j7govpG!1ky9`Q62>&(Oe&wi5V!7=J)LHKm@tgs1+Y`PCYfndTE%>s-1_zkTyT!
z4Fc%4GWf%C&)8o^Uo`MT=G)d!4Rs)H6>crrPMeKTNo?Acjz(R=tJ@h7c6bYX;>fV4
z)1sR~mY@51_;6m36$Giv@j2#Ts4n2lZDVi`{boeg|KwJ!m9Ipi>O{?tZbp#Qaf-
zzTZQMu<7x+w7i+y#3Qlw$NQD(G4G#T3gBd98}Jb74L6E8$5jDb%AFo9eVMzi)}HCu
zh*yq~Dq6j6{I-8JyWhe~gOT~}Q(5Soh?Ln4VHnN}Sux0H|G5#PP1zn;%?2aOkiHK2
zDI+gkJNxVck)>Sxx@7L3IELHXKY^N3=iJ}TNOSay+for6dwO=b9Cf?poJLac{EbBC
zCaqG-F8DsFK?hii2Zc8XGWg{aUU57$8>U1T*x!5l8vj)9u1D^dccLO%W9}bG!#GXE
zupN@MgRwPGDG9|upxMQ;4(965-(zJZOA5o~#&)t6>LM}p644uxkzs*==+dgs!fy`4
zDeSSiEyj1*(Htbtuc>Wpi_Lx=_(R4AoD|mHO4}1qq2a8vs-%QeDeWbS
zme)j3L?Em-i%$OaVn?B&JnD+IjiR0+>&GC2YpV79#y7~zol;#=jMgdb>yg1~VA>9B
zgX|TeS(95aRJJ?8>1=$l=*7U&V3YX*?X1juHqjWJ8Zlp@ruW(HkE%S9aBlUO#sOto
zLvgK*-p2EXNX;`FG1V5(BUk-KWJG)cM}7lL4RA=y2*KqCv6KfT%XG#DxQXakzwI(E
zACq0mnS@g80)dxa#Ny~ub-Q02TjsCt=ROPFJbp0p^?;|snJYWb`!$xJzUv^5lKRye
zAWdBqsxzhCT6)A%jwRl?V!bQb$H}uEX{h8`m4;2LD=I&n*>H}(mts!Uqo@)MNJ)(<
z07{<$3GoEQ#ly3_`{vYn`^~Z1s#>nB3XvnWQYN+FF$n-yC~R;
zQZG!MAC|fS@>A1moq98Bm?_O;r^gDwTBovxydJPn$<%8~xs&XYemI3f|GUt5T;O(4k^dc^Vb^cx1GWsAT$zfugnJMs&chV)~{z>#>H2uFfBLA&zpiJS3}F@_a!&Ko`rpuLRIfxdh5
zK8_e&1>Lr&S|qI6=Nsq4nr%B-2&wXln29*3I0v(@u1?&p{$JT
z{SjvO?Iznzjw^oo?Z6L|yTt-(fyxa3#g-FY
zN~P@x)@!Ci`HL@cF2n^^8=Sn49=CjG#$s$Nxs_5LWZ5*`)kDqsl+ajqqFN^4E#OA!
z=z|vd0FSR0?#oa*p4|C|Lr8)yWZTt3nTTMui2?$HS7{keqGUE~6>!+mSRg
zg*zo}q+F)>ecU2bo6+&UgnQ@Bdh9<3coLUPW6mmL=Y>U0n@!~^YGwAv-iii5_74RW
zpEc7SQg2?O^@^A^zxuxAOW(Iy$r`Z}y3`CPj6oSKXGR}(_tP1;I
zaQ(dw-lv2=p4J8mh?jMWXeK?Rl^5ZE_T+`*!ifXVGIMdT(6Vp$5q)=L!f{S02UAzX
zXa%eGpusHro@oCC6>(dhnj!XB@GY4-#d{HEpQ2GGFBrs1M_Hm|6WpTQ(w2D9
z9-Qav@T&AQ!4;9i=azb#uOJICIB@25I0l%*{dcgX;zO&){*k8hf&mnjlZ+G=N9{3$?mS!2kdN

diff --git a/docs/html/img67.png b/docs/html/img67.png
index b36bd89cfc7fd0e1396da662fba79cb72b538b3f..e85b77f0e363bbe91c4a3ab586b535d08cb35b23 100644
GIT binary patch
delta 198
zcmaFK)WM|K8Q|y6%O%Cdz`(%k>ERLtqy>Ojj)j?lfpNiw&08ia`qa01x;TbNOifN;
zV6qc9D8Q~JS!QHVYIK0{Ih(*q!^Xyk49rqD4t{88^lVfF@~(8Um3XQgSj?@$B*7yQ
zA<L^{jY)C|%I_at?BblkazNxeFWWgTg|jnQRPHevN}pIGr4SaJkdRQx
yu<2Uj;dAp7j`nz&&royNBBRf(a?(tNf#FD~n6SLI?_!_>89ZJ6T-G@yGywp6(m=uh

delta 295
zcmV+?0oeYC0_g%FiBL{Q4GJ0x0000DNk~Le0000t0000R1Oos70bQIru8|>3f9FX=
zK~yM_V_<*-&JAFSivbBdU^vcz1+X(PtYO%|z_J0GBm(flSuepP_pbvGZUBCL$bb=r
zmjHATnBq}VQet3IV0ggBz`y~MWx6n-fq0WC0SYL*9h}J4GAe)_X>gu_6T}5N@G#E@
zkRw?@Zf0X(VF0SW!UIvv!!VQAec=Fuzyzpfp(aL7WTO+Q?{>O?Ih*!Qz$Le}fq~&M
zgvnujbDaQ?Hh{^ofRe^Lh%hHZ5J<>Y2@HTNH3eWQO@az@Jpd&QrUfvaYzj>c(ERLtq{V<(j)j?lfpP7*!=Hg1-HED7^(7@GQBhG2
z4h|+JCQ?#Tg*$(U1Em;Cg8YIR9G=}s19Iv-T^vIsrY0u<0ZS4y8%IJ?L*s28k3#|n
zwl+65PM+M@*vqVOu33wnoi9gW68oW>>IY7B#!6Z}xVM*a5x>tyLlK3UN+%ESZ0Rwa
zm3WA;L)l*-UCr^ppN7Wc=8UJ(;tw3CVmxJbdv7(n&)MXbBE1QV^NJ4Jp4-yMFBo@)
ag&}yMU~%ZVTW&z7FnGH9xvXERLtqy>Ojj)j?lfpNiw&0ByRgNdq2^$iUTB_$7jxP2i+qW8*^xW~mzoKQuIYHYx&nS322BJXH=X=2l^n;E{-sXt25=VIeAUW5$if
zB)J6T_m3`ian4{lAo88piR~Ph!r2)tD)$%-rBAGpQV0u9NJyw;*mN!N@VWU3M|-@?
kXQ(-B(dSkzopr03?A-x&QzG

diff --git a/docs/html/img69.png b/docs/html/img69.png
index 4f8dbfd9c895a8f5c464ad6b7f6704c530925850..11b3c242b52f6a9c702792ec59b5db10dc5c7743 100644
GIT binary patch
delta 239
zcmey%*v_Qd8Q|y6%O%Cdz`(%k>ERLtq@{pZgoT-bfl(}zK^n+0n5e2$-_X!dQc@BX
z73JXIU}9n-B_)+}XH6_nma!zrFPOpM*^M+Hr`6NNF+^f&a)JZX8lDJ-a8YLKW(H>C
zNf+{R6%L*$Xk<+_3Z{}u}6yY6P6^mqg6ei6-c#uKo)Q1HOF1P12uK2|e
z8rzU%EB0AnLHk3q!;BjepF5tLV|nlZr}1Mh=EH_;aVxqlge7Na&Fr7s@}WXsL0Z9#
lu~S*NUSPMWLAV1W!!uhYgNe?w)&gC`;OXk;vd$@?2>{pCOh*6!

delta 229
zcmZo?`pc-=8Q|y6%O%Cdz`(%k>ERLtq{V<(j)j?lfpP7*!=Hg1-HED7^(7@GQBhG2
z4h|+JCQ?#Tg*$(U1Em;Cg8YIR9G=}s19Iv-T^vIsrY0u<0ZS4y8%IJ?L*s28k3#|n
zwl+65PM+M@*vqVOu33wnoi9gW68oW>>IY7B#!6Z}xVM*a5x>tyLlK3UN+%ESZ0Rwa
zm3WA;L)l*-UCr^ppN7Wc=8UJ(;tw3CVmxJbdv7(n&)MXbBE1QV^NJ4Jp4-yMFBo@)
ag&}yMU~%ZVTW&z7FnGH9xvXS9vt4DfU3<&xrJU|`_&^l%9R($YXI!otkJ!1!}@w(3MhpZX3@7sn8ZsmTcm
z2@ld7n0sF^@$l5J^6>o8P?}xVe1c!+j6&DXGmIM)tX=eYnF6l7zs43E^Cm{&E01`D
z!YgJ8N0Zw#**54HhkRrUxvh9iHNlFT$Aa%e-h)Pi?|UqnO)~9#+O9V?sy99~>#_E2
zaI9_eJ;$Q)U9U^CXQsxU#d7s51rhAu<*tM>O#i7kUAN(lJzopr08W-f
A!~g&Q

delta 197
zcmV;$06PDQ0*3-2iBL{Q4GJ0x0000DNk~Le0000Q0000K1Oos70TyWh8<8PQe}zdz
zK~xx(V_-l6tPEHHR}}+0g8&0FlF)8#Ai>OVfd#~2JJSFb+yIeF1A_!)6S%b@avY2x
zlApoB04&Pzpa4YMoPntN099RpYCRV75TJ+QHp2n1Vdu`AIl;gQGvf*a!!ZV4sEarg
z8JH@WkDY|@crPFuAT|MsBNKlR8@n|yS3m&(<~<@XkwcoT00000NkvXXu0mjfPJ%!1

diff --git a/docs/html/img71.png b/docs/html/img71.png
index 30dbd771877180fddde8e701a246f2ec13d3cea7..2a8221eca08df88294a3de62e1d37ef031ea6f48 100644
GIT binary patch
delta 272
zcmV+r0q_2b0@4B@iBL{Q4GJ0x0000DNk~Le0000i0000Z1Oos70c!ijagiZRf6z%p
zK~yM_V_*OQULd~1fC6|JHZVjApo;Y#0Ff6M@B?0uW{8jK=K)zO$-r#DI02@L=>|!L5)Te+022GoG%#?#Il&1MU|~pLU~pgq`(`53
z1O`q4O*4=)K%oHjB2Y!M0UOl$W*->>CY*H7(q1KnFg>dGgR>gRNEoOC15%W3^)$(Zs371_q;g+G-*CehS!0CCxPKM
zj5|$$L4ATv&IBm;E{Z9PnJB!Y9)ARISO@nW)KvhN`5~7rfb2g20000?{;TycWnYe2pdx=nk?9b2x&bcXctmlp-0NtCEcPZhBTWd
z1`9nU0Y$+rM9c+YL$1&m<;su~T}T%pE;bfvoSECzC3i>g2U3_1-peZ9wO8MY~1-D~@{eQK*BSTLYp0-~cCEoqqL4}>;Z@57vSAa~i9;>rx>)
z^a8K}f9j^g2@-_Vh@8mDnY>Euvj+UHak=>6nyJ9dlE9A2f{3noG@6NK^aVZ$&76jp
zfU&p7Yi89nRG4`$a;l@kfAq`N_GoFMG(qMD)XI)gD=yIi8ML^>&M>EPb-B8Wrd5$#
z`u6k&X3{l(v3h$2cesTeHsTmZj|Z*h=P8@r3=@nU9w+Bjs~$&^wsn*uf<7;Mpo(qO!TgcCPZ9HW|x->AH$e_FVXOABt%7s9h!
zIAzBPo0jTIWs6C`87yCOdywNZNvFI;@iEyv45Ci6Ar0?ihzh|Zy^Vs%Q+548K7&xk
zObo%?^%S>H?v8XCZVwUG|WATH*`HzS>+9OJ*h4{LwAv1~yk!2kdN07*qoM6N<$f{39~>Hq)$

delta 273
zcmV+s0q*{X2GRl{iBL{Q4GJ0x0000DNk~Le0000i0000Z1Oos70c!ijagiZQe*n-)
zL_t(2kz-&00bU@!!+-*K7&b6O3ZRPh9srRS81MsLkYis=SPh7u1BYycAb&NMJ^zd6AP5@2CSU|?`y1N&wo
z(*y=i0ZlWIGeDsL^&(J3vjH2_XZar)0w$b?hudWX8o859z`bd=_6AJh6%2(83&1RU
z28JsL2D1ZHK{W$I9D>0P^&fN28DK~uGr)k~0G$B_+ku#G!eIyl73eU0P$0uMgAM=y
X%MdG}-3KGJ00000NkvXXu0mjf7pq;X

diff --git a/docs/html/img73.png b/docs/html/img73.png
index 5b3493320e4656ae8b9259fbbd0311e7d732cd97..2f029ed72ab26bcb1fdc2265df236041f88ec808 100644
GIT binary patch
literal 117
zcmeAS@N?(olHy`uVBq!ia0vp^K0wUG$jrdNxSwanBOr$@z$e7@z<~n{{S4F3s44+P
z7)yfuf*Bm1-ADs+WIbIRLpWw8udqLG;rxLQ=2?u*g)h(E%$AUnNMK;7Rbl75uIKj$
PsF1BjLjb~?PO-)TFCno>^01XWdw6wIEnwo%sfOK?pT3T8_KtMD!G#VNjY}~9}00001
zbW%=J06^y0W&i*Jg-Jv~R7i>KRXu1FK@|ROZg1~)XKr_G0zn8HQz@D(*o6pbJtAlq
zQeB}(%Gf2{q9}$mn)kP}@<7a=Y-7HOQB+tnp^NAL$y
zm=E60%=dog&ClBb(pY_cukN9w`6-T~D|~3I?kTqvZlfh6YctEF`ev)qY(hkX?=W`F
zY1_(pJKg8`Ei~FGR=+qiHiv!qd|_1A;csk+T&Ao(8&7P4Paz8ZB<-TU6<_Zk<@6`W
za=FZf98^T<0i)*_Rj5L+;vt9NQ6pH9S(8Ta&9wvgqm20S1a6!!zS3)Y&2Wa*3b`|c
zraRmU(sT##Oszbv>eZ9wO8MY~1-D~@{eQK*BSTLYp0-~cCEoqqL4}>;Z@
z57vSAa~i9;>rx>)^a8K}f9j^g2@-_Vh@8mDnY>Euvj+UHak=>6nyJ9dlE9A2f{3no
zG@6NK^aVZ$&76jpfU&p7Yi89nRG4`$a;l@k^vl-vXlbG}LFNY3%8pShF3|xQw7A61
zFsE{Lxw?y{Rgql!_Vfm3(lvjvdV2+TxP=`y;uuGd2d(DkDVyC46O0`mvnjtUNXDCo
z*k{U}d2%{r!TbmJg*L87LZG_ZIAq+(lu|I80yZERY|)0&V7!8a6E{>GqneA~sJx|G
zxQPlscNx&H_Uvqnq<1K{Xss1P{vFQ!QAx}w@>blbQ}|YN;9~pVM!33Wc?i4$3a(#Wy3Jqa5SEzz=JGy0L6QB*6dx002ovPDHLk
FV1n>yXJh~X

diff --git a/docs/html/img74.png b/docs/html/img74.png
index 2f029ed72ab26bcb1fdc2265df236041f88ec808..e617c4da63283bbe380ebf117d4a0aaf666cfb97 100644
GIT binary patch
literal 5341
zcmcImcT`hfx(zBKy$d46A1Z;M@I#Q^iy$3B4F(X!7$6{!P^E|hQi32T5C|wGF(5@c
zp-4wMNGAlOh9W2;y-k=kZ`PW5@2#0xZ@u%!S$Cat?{~g$e|zt9qfCu;nHl&P0002<
zT|I4c0N@Na06^1r;VgB29#Y*#-9VcfTIe)1G~n@gOeF?gitbWZN2Afm0%Q*m*o?s#
zWgEd@Fd3{2FcoNIWW=1v40r_q0)b5*KJ+m&w}ysx8X29&XJ#%dE5j4Wg@%Sga1bOCIRF5tzf*@mAiaEid~f+$(C7{bL|t87Mnm>53YzfxkpyoU3@=jRkFHw15
zoAl}>I
zAsIVQ&P9(@EW4FVpXojm9PKDM;DMdakU@l2szr%#MdGk~9$-@;
z7Ljqs#eQiYvVv>M*R_7k?)DC>n&(3KV54>r7X%#UY6)y|Nk+Ym?#1kCXX^Q-t5dx4
z>PbqIARB;jhiGYH$0ugaa?x$qBahe!IO#IOBwA%}d5vGQ+^Os9
z60xW=;?`(u!Td^gNBJwR$kgAogf7=x)vPe5ual6|Z9)8?k7P-B4}k)ZZbsf0ZpDez
zRo%MX)3K;7yBl7Ocwx%jC^j{tPlMpR`rDM+1M2X6>E-dIU+0Li0i&anKqw6D4)RJtA
zDTIvTSa{xk)h6!@QvRDN)osuGx>s?cuZ*-tNMwW@)OvVrv=3z%_HBN;g1Kj?=F1sR
zj}O%E*dcuXabMsY@`QUUqxXz)@SN(Kw)3aJ0dSGSDho+GSoR-a+sS6dhUH_%9fD8A
zjDDQ#f@W`?QVp*rONEI#?2OE*Nzg1
zt8{s##d++&ylTvPybR(P&M`IS1-)EglorzzkH0oR5x)DIBtweTap~~n#8}KnOmvX~
zM&{w;E58RfTy{KA{EYa~hL%WiFB
zVB+oauDc7uZmsr97w#6aLdFF7W@N0yFmb=FVgxJBXIHFx4ghd(TuvijdTMvL8?oqE
z3S6z5nAl%^QYm##>;j#a*MgLJu}uZPCi
z{VKN^g5`V{>j756e*Gq0wN#!6Fni
z{Qs=R@sjv~b|C`Rr_gj0Sed3_xY~^Jh*U_VC8d4-sg(8qj)_q`!{F~CDq@z}*U%*nn2pt4p;
zDQd-9M~Pnd>v*>f*xc<1H4z12y509t`t}~j$l{qTY49%!A?V3W5G|o9%)+Lz17V?K
zVaNK{jQ+axUx_k^|Brp$j#q2WsThA}xXA%AyB?2GT3+GU1v
zv$??r1Ip{f!{4T35fB7wbF}o^)UPp7QV>~Hdr<9hM%)v+zQQ0;w?>Jsi>=PXA9oZ-
zUdWIFe4mPb?+(He;AzTK_60oRTd>V%O!pC9*Z9v^_s@O*=|1H+|FHCW;O1Z}PJ3MR
z8`qDaYF-+#6v6k@KJRLdCBz}zS!8+KeQ_cJA!&^189{gaGgi*vv7%c|b}#>l(|?Oj
z`h0M7Y)d$TH7l~GQ67R9gz^rz{Z9^i%FN3a6~^NTqFr^KHqN!wXN$dcgFOMlV|ZTH
z-ZP62-k|!m%!KHWu99W-p-SHfl(1}H$3Mtv(t|OHQTn6sc9~Jn^Z77vN_v-u{5YF`
z#W&lT3-@&uE2bv>tIe=~tsh01&Ajg{DWrv5Ixe}>@S)NJ6a#UxGQ%ThbV
z-tG^#Qj(gDE>|&H^{H-j4*^ckRe;OJ>8W@;ia_|2ZmG(idTxIf*1ARhptDzoKJtDZ
z$6V6w2>1^pBGhRN$5`I$hzYt5r`n|%ugDcC=O+ZY+!e>-aLiBbG=^-_8-oAyoy2DM<7Axt_N{$kJA|%9-
z7r9pgDGEYbdOkt?Gb^HhP>>s_+Y>Du=*cTjX_E+axAHCSuv9b;@6hcAn9ukl?z+A`!Pg&1Iy=DG~r`VjxeUY
z8PxE*sA%14J8I7(zeY9)EQ}ntY|jE!WK=5fKxdJ`bxU5l!}-^Iw@0%J4p4&dEd=W+
z{GrmLJEG9fhUbY5#BLLwXWhl;1h9oQD=nx2kEsy>f}-7fE+|(7g5-Y|Y9nxvSNy;W
zn`>I^z6%89@Ei0egdIaFBsk0q2b@>Fhu0Hr9$x)yyIh#BC6_B9Tpy?2uEj$qHlU>&
zm9+FeTU-BkznSp$fF;oc4i#jQUX-AsevUS)z;*Mi$T*Jw^flqtI>lA~@cKEi_gAk<
z-_W2Gt`_RQi_!S(Z|5s$1QX90(YZfXftBkIAO2Lt(C3*jq^K~b6NGA3Gy7w~CM=Fi
z>}n8tp3PIWBA65R7QHn|KDI}-Fpz$n|ZO;jv|_LYn^k>@VztxJyL2(
z&SSMVd)X~~h$zZLs@OcQXg6b+*W`UKhfAO>b?Q#1)CGa-PQ6L}3Bn5#!4Pa+JcK94
zZNBofZ-J}nFNTOOclT+ajsnSH^1>pn{p|m;Wt;DB7+4BAU`BuaR@{y(`Cgc6TQp97
z^r#MZBuiPtuY4ph1!G2)5rZWl<@~#yQZ!IHDoFEG0uWi`t<~kuS<;Z%rpXBU&87Eg
z=cq&&rBS(n)H3DnXO8lNN{!2dU9j1vp%Nq2!qPWXN(yU0*3g{1(>hs@K2(Ml^|EML
z&Ud-gS?NGWB^iTAK2z#2aVA_oD3^tF82|a`LCR`$K;R+4!>-%U%mLf)iQ5w{hzmCx
z@;Kqop(DhFR~X6|y*hDbT6&DC(Y|eICTE%8K6R|3ZpqaXC5*7YSQLU8xa6}=#DOYS
z7aOL=5yfZMHDVP5|1g1OAd~0nV&0$+Wx?1)(z={vrz22{C7|7By?Os%xIPhFu?xFh+KP?{3$W?|VL*76(
z2dbd3=c(vwpUR85sxZ|3LIB&+cXdnUDhcJ;wiw0Lk^^L%rVBZtc$7Q!e$<=7(mbuH
z#X=>{-^8rx+5)Bi)?wOZeRqpi_)CKR2#S0OC;#uLIIx6?9Rk
zh@f-iTmEFU&lnWpo;WkzGWq=6z&K;-a+?n{vj2x4?CNLs<@6V&qt4CK-=j9-c9yn!
zW06j6F#)fnTL-0=0}0+cE&Yx<>lrfJ-^`f?km9_@8;esS-0X#4r@K~HL=n2#-|*Kz=5Vz)YL+(
z8K~k5r?_6CZq5eU25*puj;5%-J!;kJL2*#KZ8>oKS%@l0So01=?YW!ofA?@u$=$Y8
zO}WAc8-$)XRu-1~wW6F*ru`lg@vHzV_3l8Es?TBz{w$GTFfS1>h5?hZVw!&k(h~!b
zo@|^dTdB6u5*(@b#p-+QF9?WvxO4lz!awCF&)@dE)9Kf_AqjXU!BJoT|8$dtfAmbr
zA;y~HpQ2{yZ}kpck2kCVU|&g`KUzePseno_G`Foyrq;Mu@qwXSIp1@aQ9hb3P<~vW
zED}?0$}On5Q
zM4vaOPPGjeFN%Kd?F!86)P3`DRdL6~efg^R3NhH$?*glT{q`?uKEh~lUS&qX+Ea@?
z;VnY6au2M38tf(`}LZ!{J}n(v%MZO?OVYoBIw(nAuwnlx#mPQjxlO=ri~=
zAL9eRd2-K8hVGqi$*bMmp3fi_!SShj86}tHLCDNt2*2+$2Ob5+ih7Fk%C=V@%h%*<
bj)5n1mAg6tboyxh(|qsh7;6`5I)?oPK_Ng;

literal 117
zcmeAS@N?(olHy`uVBq!ia0vp^K0wUG$jrdNxSwanBOr$@z$e7@z<~n{{S4F3s44+P
z7)yfuf*Bm1-ADs+WIbIRLpWw8udqLG;rxLQ=2?u*g)h(E%$AUnNMK;7Rbl75uIKj$
PsF1BjLjb~?PO-)TFCno>^01XWdw6wIEnwo%sfOK?pT3T8_KtMD!G#VNjY}~9}00001
zbW%=J06^y0W&i*Jk4Z#9R7i>KR845qKotIx{W00ZB!Wj-#)=9exYUz%1@S072>Dzdb+pimrlL26rY&w7c9VyS5GF8C&!-FD0FT5JUoA7tje
zH{bW(n|U(<1_}4!UUEIR0<^kLH3%($2k|{yG&&GAFz{xWk{)E+VG$uuexKJr`#0f#
z<1J%Yh#iaUYB3OG>c{oGs-g}HC@e!+Q}C&VS^ukQkr#qhl=Gf&OCuQtfWUpBO
zwx3UE>QVU!yDkH+Zx*pgXbv<+Mi?TSUt!^07D2gSkrP3m0$kd)L2cwP?2K%a5pauU
zkw;+Dj6mci|1^L0LrcnV?6SqVuP#_((l6|_V+wJ)HqM!*H?yUmMO0K05+7ph?MYrLJ3p_P0P
zPM{!FJBy9io;Ql<7G6SlXYdrNPoB}s2XdS6oE5SG3f6pNB_J#%{1F`7dTDYvQa
z%?tl8e~TEO(&>5Y7oc*q#dcUm>qV(dSxZNs4NbfTw}Zz~;8lm#D|hI-eRj->V62|T
z!k8}e#?tgVy;kWaUVVl`^A!S30yFc1?8iTr?HCzNuW!;^2`9k>W#53OzGIwxqL3DQ
zZX^}bHgLeJ;|qb-;MZpa*=DFK&S+$JXeNWH;K|(iNyAKV{CaFm=wMIMe~T%zB54Vy
zU|yXxtSC6vwmm6I3K=bF<20=rAg5rwT@1=|Xr7cyaPGd$9GYpLHjuTdl7*b{hYae&Rxq-S^>PM>nE&T
P00000NkvXXu0mjfExTYy

literal 5341
zcmcImcT`hfx(zBKy$d46A1Z;M@I#Q^iy$3B4F(X!7$6{!P^E|hQi32T5C|wGF(5@c
zp-4wMNGAlOh9W2;y-k=kZ`PW5@2#0xZ@u%!S$Cat?{~g$e|zt9qfCu;nHl&P0002<
zT|I4c0N@Na06^1r;VgB29#Y*#-9VcfTIe)1G~n@gOeF?gitbWZN2Afm0%Q*m*o?s#
zWgEd@Fd3{2FcoNIWW=1v40r_q0)b5*KJ+m&w}ysx8X29&XJ#%dE5j4Wg@%Sga1bOCIRF5tzf*@mAiaEid~f+$(C7{bL|t87Mnm>53YzfxkpyoU3@=jRkFHw15
zoAl}>I
zAsIVQ&P9(@EW4FVpXojm9PKDM;DMdakU@l2szr%#MdGk~9$-@;
z7Ljqs#eQiYvVv>M*R_7k?)DC>n&(3KV54>r7X%#UY6)y|Nk+Ym?#1kCXX^Q-t5dx4
z>PbqIARB;jhiGYH$0ugaa?x$qBahe!IO#IOBwA%}d5vGQ+^Os9
z60xW=;?`(u!Td^gNBJwR$kgAogf7=x)vPe5ual6|Z9)8?k7P-B4}k)ZZbsf0ZpDez
zRo%MX)3K;7yBl7Ocwx%jC^j{tPlMpR`rDM+1M2X6>E-dIU+0Li0i&anKqw6D4)RJtA
zDTIvTSa{xk)h6!@QvRDN)osuGx>s?cuZ*-tNMwW@)OvVrv=3z%_HBN;g1Kj?=F1sR
zj}O%E*dcuXabMsY@`QUUqxXz)@SN(Kw)3aJ0dSGSDho+GSoR-a+sS6dhUH_%9fD8A
zjDDQ#f@W`?QVp*rONEI#?2OE*Nzg1
zt8{s##d++&ylTvPybR(P&M`IS1-)EglorzzkH0oR5x)DIBtweTap~~n#8}KnOmvX~
zM&{w;E58RfTy{KA{EYa~hL%WiFB
zVB+oauDc7uZmsr97w#6aLdFF7W@N0yFmb=FVgxJBXIHFx4ghd(TuvijdTMvL8?oqE
z3S6z5nAl%^QYm##>;j#a*MgLJu}uZPCi
z{VKN^g5`V{>j756e*Gq0wN#!6Fni
z{Qs=R@sjv~b|C`Rr_gj0Sed3_xY~^Jh*U_VC8d4-sg(8qj)_q`!{F~CDq@z}*U%*nn2pt4p;
zDQd-9M~Pnd>v*>f*xc<1H4z12y509t`t}~j$l{qTY49%!A?V3W5G|o9%)+Lz17V?K
zVaNK{jQ+axUx_k^|Brp$j#q2WsThA}xXA%AyB?2GT3+GU1v
zv$??r1Ip{f!{4T35fB7wbF}o^)UPp7QV>~Hdr<9hM%)v+zQQ0;w?>Jsi>=PXA9oZ-
zUdWIFe4mPb?+(He;AzTK_60oRTd>V%O!pC9*Z9v^_s@O*=|1H+|FHCW;O1Z}PJ3MR
z8`qDaYF-+#6v6k@KJRLdCBz}zS!8+KeQ_cJA!&^189{gaGgi*vv7%c|b}#>l(|?Oj
z`h0M7Y)d$TH7l~GQ67R9gz^rz{Z9^i%FN3a6~^NTqFr^KHqN!wXN$dcgFOMlV|ZTH
z-ZP62-k|!m%!KHWu99W-p-SHfl(1}H$3Mtv(t|OHQTn6sc9~Jn^Z77vN_v-u{5YF`
z#W&lT3-@&uE2bv>tIe=~tsh01&Ajg{DWrv5Ixe}>@S)NJ6a#UxGQ%ThbV
z-tG^#Qj(gDE>|&H^{H-j4*^ckRe;OJ>8W@;ia_|2ZmG(idTxIf*1ARhptDzoKJtDZ
z$6V6w2>1^pBGhRN$5`I$hzYt5r`n|%ugDcC=O+ZY+!e>-aLiBbG=^-_8-oAyoy2DM<7Axt_N{$kJA|%9-
z7r9pgDGEYbdOkt?Gb^HhP>>s_+Y>Du=*cTjX_E+axAHCSuv9b;@6hcAn9ukl?z+A`!Pg&1Iy=DG~r`VjxeUY
z8PxE*sA%14J8I7(zeY9)EQ}ntY|jE!WK=5fKxdJ`bxU5l!}-^Iw@0%J4p4&dEd=W+
z{GrmLJEG9fhUbY5#BLLwXWhl;1h9oQD=nx2kEsy>f}-7fE+|(7g5-Y|Y9nxvSNy;W
zn`>I^z6%89@Ei0egdIaFBsk0q2b@>Fhu0Hr9$x)yyIh#BC6_B9Tpy?2uEj$qHlU>&
zm9+FeTU-BkznSp$fF;oc4i#jQUX-AsevUS)z;*Mi$T*Jw^flqtI>lA~@cKEi_gAk<
z-_W2Gt`_RQi_!S(Z|5s$1QX90(YZfXftBkIAO2Lt(C3*jq^K~b6NGA3Gy7w~CM=Fi
z>}n8tp3PIWBA65R7QHn|KDI}-Fpz$n|ZO;jv|_LYn^k>@VztxJyL2(
z&SSMVd)X~~h$zZLs@OcQXg6b+*W`UKhfAO>b?Q#1)CGa-PQ6L}3Bn5#!4Pa+JcK94
zZNBofZ-J}nFNTOOclT+ajsnSH^1>pn{p|m;Wt;DB7+4BAU`BuaR@{y(`Cgc6TQp97
z^r#MZBuiPtuY4ph1!G2)5rZWl<@~#yQZ!IHDoFEG0uWi`t<~kuS<;Z%rpXBU&87Eg
z=cq&&rBS(n)H3DnXO8lNN{!2dU9j1vp%Nq2!qPWXN(yU0*3g{1(>hs@K2(Ml^|EML
z&Ud-gS?NGWB^iTAK2z#2aVA_oD3^tF82|a`LCR`$K;R+4!>-%U%mLf)iQ5w{hzmCx
z@;Kqop(DhFR~X6|y*hDbT6&DC(Y|eICTE%8K6R|3ZpqaXC5*7YSQLU8xa6}=#DOYS
z7aOL=5yfZMHDVP5|1g1OAd~0nV&0$+Wx?1)(z={vrz22{C7|7By?Os%xIPhFu?xFh+KP?{3$W?|VL*76(
z2dbd3=c(vwpUR85sxZ|3LIB&+cXdnUDhcJ;wiw0Lk^^L%rVBZtc$7Q!e$<=7(mbuH
z#X=>{-^8rx+5)Bi)?wOZeRqpi_)CKR2#S0OC;#uLIIx6?9Rk
zh@f-iTmEFU&lnWpo;WkzGWq=6z&K;-a+?n{vj2x4?CNLs<@6V&qt4CK-=j9-c9yn!
zW06j6F#)fnTL-0=0}0+cE&Yx<>lrfJ-^`f?km9_@8;esS-0X#4r@K~HL=n2#-|*Kz=5Vz)YL+(
z8K~k5r?_6CZq5eU25*puj;5%-J!;kJL2*#KZ8>oKS%@l0So01=?YW!ofA?@u$=$Y8
zO}WAc8-$)XRu-1~wW6F*ru`lg@vHzV_3l8Es?TBz{w$GTFfS1>h5?hZVw!&k(h~!b
zo@|^dTdB6u5*(@b#p-+QF9?WvxO4lz!awCF&)@dE)9Kf_AqjXU!BJoT|8$dtfAmbr
zA;y~HpQ2{yZ}kpck2kCVU|&g`KUzePseno_G`Foyrq;Mu@qwXSIp1@aQ9hb3P<~vW
zED}?0$}On5Q
zM4vaOPPGjeFN%Kd?F!86)P3`DRdL6~efg^R3NhH$?*glT{q`?uKEh~lUS&qX+Ea@?
z;VnY6au2M38tf(`}LZ!{J}n(v%MZO?OVYoBIw(nAuwnlx#mPQjxlO=ri~=
zAL9eRd2-K8hVGqi$*bMmp3fi_!SShj86}tHLCDNt2*2+$2Ob5+ih7Fk%C=V@%h%*<
bj)5n1mAg6tboyxh(|qsh7;6`5I)?oPK_Ng;

diff --git a/docs/html/img76.png b/docs/html/img76.png
index 19eb28999a678470660dbab7fb2fe8e551ec696a..2111312c7c47f658f72c52e4609418b068965b25 100644
GIT binary patch
delta 329
zcmV-P0k-~;28jb9iBL{Q4GJ0x0000DNk~Le0000l0000U1Oos70XZmY0g)j~e*p(c
zL_t(2kz-&00&WIg1|9|k;Mm2;umQ$l1e1Jb3W^L57_b92h7UlJXMu14^8%m-c19fP
zZ~>s*{7~iw#sl1ZOhADEAV)gk5%U4A18G^8fgD8=4aEW;FfitFhQBk1_?X{
zn=deQ&jWHkBpi6a^TB~(f&!4Uf53y`gT{jd1}>17ZVPTWwBRsX+HDO61}^0AVo;#m
zZIlD92VlwvLxNQSL^39z2=Xmp-LQ^<^9MsD%LN_-1_ow^H~bSo5_cHpGXybAYhb7r
zV_-c16yShryv6aG>4Cv~2EGk)3}=A+wJZmqfx!8Jp^<^16UdqYwyA*=A1us!!iJju
bqb&dcD7rV6IkR_F00000NkvXXu0mjfU=(&H

delta 724
zcmV;_0xSKA1Ca(HiBL{Q4GJ0x0000DNk~Le0001^0000S1Oos70f^Zmg^?jke*%w5
zL_t(YiS1NPXw*Oy{*wJM*~BD*M_I;-3L?1FlXV60C_UutDfO^tk9r#vih{`CK}xAO
zAf76+w6vg59Ctx#TX4^MiHc&WXz(uhCY#-M%kEli1rZ-)=Dj!H_uiX%GXVw(_u*c0
zJ+}h1x=u9+Er18{JzF$75H>LIe`c7H9%S2L5g|{0pVvS8H{pNdEn`@S9gFO0F%V?x
z$Mw9bq7DlvEJImS@TrDb|Ep?|7lKuk^PX_yybiu6W$apHuUP=LpHFD&QTYhFE(5M_
z7O_ZZ4m3ta7$TcrVc}gCLAhX&6G5K>T-vokZR9ZQjBJw;aEoS^L0LrcnV?6
zSqVuP#_((l6|_V+wJ)HqM!*H?yUmMO0K05+7ph?MYrLJ3p_P0PPM{!FJBy9io;Ql<
z7G6SlXYdrNPoB}s2Xe|le1;SiR-85E0>ay@f;)iIhw4k@>(?#&DTFMo>|pVH}h
z>ldJMw8eHyRe|v5u71B0vz^mg6
zf!5&HX9U@1s4LEBWOryLgQ?)j-1$kvOmO^qY)t52Ptt#jDYGJJ38!FQoiwZ{IM%j3
zDM|_%EotL4tr{SwV7y%n%5!L*lvt^vR;#^PI>LKSr+K2{j;^3QXKXNM^r5yrf`rIu
zWOr!yDO-TqzK6U6DmmE4cTu82`#Ai25rG%|oVk9^UCU2e0lcW|C#+on0000w%xLjW-qe;PZs2wBHDU?9ga-bmyp{eJ^jV#D?ekiPtF9W&+zP^|UP3TEL^gCGqx
zB53&1gv=y%Ih}n|9`zPmHYLjz>w2vjD`;fO7baVte~NG$EKTi{OcC=qf488#`99P0
zdhZw##vPa8nIglf*TZvq2<0<2Ws0hucGl2jzNwK9!0l4VKW2_dLE4bEk-aKmtIbr{
z!_zKxp-b%^c?CfV@WN4*4KDku>=rR~P0l)ZprKmU-90sGSB0oUWdFTnx7|FPuy!7c
z*h$TCHdAx9U{39`;KRWmAe-<8hkGH8A|4BT0q7lH?F0tH!2kdN07*qoM6N<$f~~a2
A$^ZZW

delta 328
zcmV-O0k{5&1c?J7iBL{Q4GJ0x0000DNk~Le0000l0000U1Oos70XZmY0g)k0e+NlK
zK~yM_V_*ORZU$Zk9tH&9*u}`O0mfkjlYC|hiVP1Jumd)R4?vP^pV^8u~{X<3(n97Pfh#R48MFzkhM4lpni-TGA5u1@-1N9u#SQA2SX&w1s($i24;pg{1ZSDcNpd~1Tjo&V5k;j
zU_Ag7;DBnp#qpczfx&zRz728=XMp^*EC-;0!1;lpk%6HT$eIDRseuzL9?W~fhMNAP
aEdT&0x;K_Nvv*Yh0000
zL_t(2kz-&0g9|{+#Q+1{8wB8NMhL~Gpuq3|A&LUnptP_Q^8%m-b_ND!hyV+A^{9Xc
ziG6^Zj~i%V0D}Sp!z1Pc%nQ=8E^`uN2p;eN*?c5+0*?XD28Ql=VDSe$K+jE3U}9k4
zVECZ%0T>vJKzA{2IJDr9S=wz4ZeApPTnqySxE^2?W>vr{ypDnM2SX%h1kVFdguLOO
zzyVel#4xRap&E!mfFl8_nCXGRd4Ci5d+xa(+`Ir01VxIi&od-YDcZ61XgM8L
zgV(WT>-`CMT_VO|GI;>}Z$khve-#=#wg_3rIpljZ+P-)vAKR1GXR
zM%YEo_~sP8!S!jluQxxe>k_Gy!k%U
z^LpCcljg4n#XOTD|e`wS{0RR910d!JMQvg8b*k%9#0PIObK~xx(V_*OR-dCcljg4n#XH88_ku@QIY}~9}00001bW%=J06^y0W&i*H*GWV{R49>SU;u*)
zK+MGe1Kk@0;A}<+#ipRZ@Bkr-0@$FmuoUwGpaymZ24;u=3wHIWfCq_vfSZpSXkh?@
z0t3S%<^#+N(y}gd5@QG+@BrC-Bz6Li0nY}8?s;JG2RuN}O;BKBVBlbX_@MCt7#NH|
zcQI}_wBV3g+HDP9Bz;^A0|vMrU=?Onz$(0sf%6ALBxeNA15kv#;h(?(Ru{xDt%0E$
zh(UlO0jikkfx&zRz76vkI1Vr{tYtaC!_^9o?M4QMP6h~OU~B-!h1UYAc!j0_00k#1
VEG&SxQUCw|07*qoM6N;tV1hywbff?P

diff --git a/docs/html/img80.png b/docs/html/img80.png
index 337d43ee38ecc038533d98fdc5612abab0714e68..af302e8bd5ef41883df942f6e64bca019c050045 100644
GIT binary patch
delta 298
zcmV+_0oDHN0>J_}iBL{Q4GJ0x0000DNk~Le0000Y0000U1Oos70nFCnu>b%7Fi=cX
zMZmzor>Ccljg4n#XH88_ku@QIY}~9}00001bW%=J06^y0W&i*Hzez+vR49>SU;qLh
zCLqDV00RafAvlkLmkYs81A+twB=Cb_4gm2(*cdhoO;&LE!+9+rZ$(#2{G!QOd+{m@F%4(x4!LY)3Zl
zo%ImH;@$%cJ0O_As=&aY1Y#+iVR!|WTE`&3d=SLo{J<0dq?m8*Rc_$Cz;J8=1IMHN
w3t(oktYYA1U=W*d2F(r*4YHj_6i7n{09sEf-)>FlWdHyG07*qoM6N<$f|h}8>;M1&

delta 341
zcmV-b0jmDN0_y@biBL{Q4GJ0x0000DNk~Le0000m0000F1Oos70VfAxS^xk5El^BU
zMZmzor>Ccljg4n#XOTD|e`wS{0RR910d!JMQvg8b*k%9#0PIObK~xx(V_*OR-dBjLjb~?PU0q#GO-&~!CjbBd4Gj&nw6vObaYx;T0lTRG&D3C8XDEr
z3?={o00DGTPE!Ct=GbNc008nyL_t(YiS1O;4uc>NtH*T0@I3ziXLpFYF^RHedvZ-o
z3BplI0eFIR4vZRbu$FbG>s0^|wS8;+NQtvcMl~a25qN#C|0RnVS6(cRe2)|Hrvd^?p?0
Y4jV!Xllgp7DF6Tf07*qoM6N<$f-G~JC;$Ke

literal 321
zcmV-H0lxl;P)BjLjb~?PO-)TFCno>^01XWdw6wIEnwo%sfOK?pT3T8_KtMD!G#VNjY}~9}00001
zbW%=J06^y0W&i*Hzez+vR49>SU;qLhCLqDV00RafAvlkLmkYs81A+twB=Cb_4gm2(*cdhoO;&LE!+9
z+rZ$(#2{G!QOd+{m@F&Opdf*4M>g-B^$^11-UAFfAeg|az`&pcVkw+qcmZs5GYaBKnt$D{oVU}mwbV&GBjLjb~?PO-)TFCno>^01XWdw6wIEnwo%sfOK?pT3T8_KtMD!G#VNjY}~9}00001
zbW%=J06^y0W&i*Iu1Q2eR7i>KRKH8ZKoowLR%6u5W(5X}0)Jk<$hvHa7^C$T3aw(Ujk%$fz{KC6;_rCY*(w73n(YR&G
z0H|q@g%Zj_=^}-D0*W$;rmf7RhbfHq>w}8xG%r$Ng(g7#IM~O=oGvgL
zYpX@@JoGBOa}!84rc3}Yvx^*k+4*B>-812!_z4o)ra^TbKn7QKWpt2Gj(oXDIo`Q|
zDSRS0ME}M`#un>z@dbmLB*WkNItq^jDhm
zv;7HLzZBWydUhk>CN(mMWTbdnykSb+S$l-JOABT7;l&Y%%}y88-OhG8Pun!T5aNgDBJ0`CyF@g*X
y?di(NiVRV@NBAjof;b=H@Q=TR9RCS9V1EKuSet3zPjJBi0000BjLjb~?PU0q#GO-&~!CjbBd4Gj&nw6vObaYx;T0lTRG&D3C8XDEr
z3?={o00DGTPE!Ct=GbNc008nyL_t(YiS1O;4uc>NtH*T0@I3ziXLpFYF^RHedvZ-o
z3BplI0eFIR4vZRbu$FbG>s0^|wS8;+NQtvcMl~a25qN#C|0RnVS6(cRe2)|Hrvd^?p?0
Y4jV!Xllgp7DF6Tf07*qoM6N<$f-G~JC;$Ke

diff --git a/docs/html/img83.png b/docs/html/img83.png
index ffe4cf524189bc57d269a657af61599198922289..7dee1cf4319233e5a6786ed5f91e59b0b2d099c8 100644
GIT binary patch
literal 195
zcmeAS@N?(olHy`uVBq!ia0vp^5Eak7F*P~i0H??U
z9dU7Sjci7tv;#`~Y%vZx8X5;$Z)dD&5X^ePVsTVYqvMFOBjLjb~?PO-)TFCno>^01XWdw6wIEnwo%sfOK?pT3T8_KtMD!G#VNjY}~9}00001
zbW%=J06^y0W&i*Iu1Q2eR7i>KRKH8ZKoowLR%6u5W(5X}0)Jk<$hvHa7^C$T3aw(Ujk%$fz{KC6;_rCY*(w73n(YR&G
z0H|q@g%Zj_=^}-D0*W$;rmf7RhbfHq>w}8xG%r$Ng(g7#IM~O=oGvgL
zYpX@@JoGBOa}!84rc3}Yvx^*k+4*B>-812!_z4o)ra^TbKn7QKWpt2Gj(oXDIo`Q|
zDSRS0ME}M`#un>z@dbmLB*WkNItq^jDhm
zv;7HLzZBWydUhk>CN(mMWTbdnykSb+S$l-JOABT7;l&Y%%}y88-OhG8Pun!T5aNgDBJ0`CyF@g*X
y?di(NiVRV@NBAjof;b=H@Q=TR9RCS9V1EKuSet3zPjJBi0000BjLjb~?PWo2beO-&~!CjbBd4Gj&nw6vODW`K~z|U?N|$Q+aL@UFzlc)1pNOWJAFJHJ8|2j
z>u%j$bQiDzy^&;v=ott>honEIK#r)MoXJm7?7)LOMPegF%gGtRU_L?o4(g7Q^vTY>
z(Dj2zrRw7v92E+7E`I}vkM3J4OspCfp8BPw1X`hH(d9)4-}d3lQq}%44Ri5on-tbT
zGr=H&eR-d|4WHBMKZZ9PqBcFf$Zvtr&bA}6I{yCF7x-1Zl7?q!&SD!htc3$MGAJs|
z)pjC{Lsfj;zN~{d@NL^h6!u7j5B-f=+?T_4h`V5Zdz{;2EKlhEf*0)IoizW(E}9$vm)3<^J@XINJ;TEOgXna
z((nm~5xP8b?3QZ%7W;8U%GLv^M>}Kn(zMLVdudYs7}f|~pW;-g#C)9Vy_bZ@OfazBmk~(*!<>W!UEfgQGY3#B^hDcQ#+OfraYKGknGWqr##FbZ6@y
zRI?Yn;06C2Oj$oZ^u>^NMd83d)w34I^h_duDWTY94!0nDc-!-@r*$o$AoUM>Bgwfw
zr*6p|Yf?6(LH^@(V*~Yp5*Zqmm>p1I;DH8;wO5AT2I#Hr?@;
zI20;qzO?&bVWXJ-^UV^=8jALo_&dFv~d*3u@Sq;?=)HYp=@+c9l7X~{oA@?(}ix!(kjsFzj
zC-|*b7Y_cAK<_ecwm1vxVvg$E72tAA**bXc-6mc;4S0T_`WVv^^}PVK4V3!UFz9Gw
zOioE<>inkwdWoRL4S%BYSf}sfN8RvqV0`O!9}i=B=F{;@LGO~a5C0!>`tkE!;Wz8}
V7Eak7F*P~i0H??U
z9dU7Sjci7tv;#`~Y%vZx8X5;$Z)dD&5X^ePVsTVYqvMFOBjLjb~?PO-)TFCno>^01XWdw6wIEnwo%sfOK?pT3T8_KtMD!G#VNjY}~9}00001
zbW%=J06^y0W&i*H^hrcPR2Y?GU;qIQ22BPC_`tvfrddG*6B9S{g9QvIAOIx(aEk)>
zTm}Z_!>b+`b2DIot_7z#xA5FJ+qsj)7Rc?;XHa0|V|bvzz>ldG3t(bUfG`d-?&4Xn
z{?s2HgHszA7!GnXelTEV2>5USXeBql0>g(&t_dp>7$z_<@MtkF@QPw;(AZ>ffha5B
zz6Bwyfad@RA%Pp*7p69xBjLjb~?PWo2beO-&~!CjbBd4Gj&nw6vODW`K~z|U?N|$Q+aL@UFzlc)1pNOWJAFJHJ8|2j
z>u%j$bQiDzy^&;v=ott>honEIK#r)MoXJm7?7)LOMPegF%gGtRU_L?o4(g7Q^vTY>
z(Dj2zrRw7v92E+7E`I}vkM3J4OspCfp8BPw1X`hH(d9)4-}d3lQq}%44Ri5on-tbT
zGr=H&eR-d|4WHBMKZZ9PqBcFf$Zvtr&bA}6I{yCF7x-1Zl7?q!&SD!htc3$MGAJs|
z)pjC{Lsfj;zN~{d@NL^h6!u7j5B-f=+?T_4h`V5Zdz{;2EKlhEf*0)IoizW(E}9$vm)3<^J@XINJ;TEOgXna
z((nm~5xP8b?3QZ%7W;8U%GLv^M>}Kn(zMLVdudYs7}f|~pW;-g#C)9Vy_bZ@OfazBmk~(*!<>W!UEfgQGY3#B^hDcQ#+OfraYKGknGWqr##FbZ6@y
zRI?Yn;06C2Oj$oZ^u>^NMd83d)w34I^h_duDWTY94!0nDc-!-@r*$o$AoUM>Bgwfw
zr*6p|Yf?6(LH^@(V*~Yp5*Zqmm>p1I;DH8;wO5AT2I#Hr?@;
zI20;qzO?&bVWXJ-^UV^=8jALo_&dFv~d*3u@Sq;?=)HYp=@+c9l7X~{oA@?(}ix!(kjsFzj
zC-|*b7Y_cAK<_ecwm1vxVvg$E72tAA**bXc-6mc;4S0T_`WVv^^}PVK4V3!UFz9Gw
zOioE<>inkwdWoRL4S%BYSf}sfN8RvqV0`O!9}i=B=F{;@LGO~a5C0!>`tkE!;Wz8}
V73BTyR2
z#6+&GuR7tGFe(}wp?E)w^IH&qd$ZNXH?_-T$K{0$p%^yLkWj1YGiKdsArijydLW*Q
zlNnQE4yWi#ZwQVon%XrN{t-QObRKzK?ouO58x)RFs%55Ue)$&uQJfpTe?87ls{$>P
zY9@*L%2+I)v{IsIiCblO@HIClVV&XY@fFbD+0G?In~vvsQbiwwlEj^004KDk*hk|-
z|11Vn4%a!)MM*-Z*h4~Fk+lmeE9^mCH#!N5!pPHs0P6wI(1r`r#k*gd+_Z~c7WKCP
q7f34TB&v{*4S57fRlt8N7QrXoKv*0|&PWsh0000r%V0{2`72Ij-79vE{oV1TX#
zr#ZLq+&J60lf@Ru?a*gXVB}+XpuoV7sTK=hVo-oE4m0lJS+M@pA0C5K8yFZ4ax;D~
zU}XsSZ~$l}H@^bIhf1yqD-#$de=socXfZGFiehTe*ko{lC@bK;1tF|}=Ku&Hfg9Wx
zrZ$}8jNtmfz}5gnoDmEM7M^2%0Fqmp+L^(?Fs*@i1H%~xAeyEG^g$t5+w=)6ogWx_
z<}v7VGh~2J8w1AyW(SCwlE9z`I)4U(00Soj2z4?rFoGlifl59BF^{Y_3;+NC07*qo
IM6N<$g1e(|3;+NC

diff --git a/docs/html/img87.png b/docs/html/img87.png
index e7a86242bfe1f513763e2194865c91f641a55eec..4b39f077c786934afb9ec9eb2a0ed7d7288758c2 100644
GIT binary patch
delta 306
zcmV-20nPsZ1M&hPiBL{Q4GJ0x0000DNk~Le0000c0000W1Oos70sBoS7Lg%Ke*o}F
zL_t(2k;RccP6IIzg}?O{!C7yz1qTRpbgrSq1}Bz_u1K|=}yRixY?
zjccksK#Gj5{DDFhMLcQ7<9W|BqcLnT+J&uH%^o__WyV2t*JqWy=S&~g{YJ&mgKFw9
z^ePz1gzDiXl%pcD3BTyR2
z#6+&GuR7tGFe(}wp?E)w^IH&qd$ZNXH?_-T$K{0$p%^yLkWj1YGiKdsArijydLW*Q
zlNnQE4yWi#ZwQVon%XrN{t-QObRKzK?ouO58x)RFs%55Ue)$&uQJfpTe?87ls{$>P
zY9@*L%2+I)v{IsIiCblO@HIClVV&XY@fFbD+0G?In~vvsQbiwwlEj^004KDk*hk|-
z|11Vn4%a!)MM*-Z*h4~Fk+lmeE9^mCH#!N5!pPHs0P6wI(1r`r#k*gd+_Z~c7WKCP
q7f34TB&v{*4S57fRlt8N7QrXoKv*0|&PWsh0000?F@R1=*e~(E-
zK~xx(V_-l93JeT9a1N912QZzMmIfE&v)TY*Fe5ajr6r&l!@$UJVFHliWMKG!E=2$^
zO>lS+z`#(j;Q&zQ1A!Gl>o`E>Ffj1;5Yn5LhU`@QVD|y`1ssPrF92D|bAU-sl~K001piAuB-6>+b*n002ov
JPDHLkV1hjtOu_&F

delta 305
zcmV-10nYxB0`dYOiBL{Q4GJ0x0000DNk~Le0000c0000W1Oos70sBoS7Lg%LfAC2}
zK~yM_#gRQu12GVVzx5WuS#Poh2MBa@uA$i@Gl{ei}qULka^`q}(8l
zYpOj!ij1xNfkG8UJZZ+`dCxPWF>Eo~g{@f49y-%y#zAz~XO+C?Odr<$M#a#BYU(ib
zDj3Ox>ft4nqaw297!|7>g^YX?e|p?tM+9jctb64O8%HU%p@RsND*Kwk#l{VN8XdJ@
ztO);Dz{yd_V2_#qk((udpXe!fjBl=WfOn5^k{isqELv`jM@5T|b&Kt}yza_nqRCUi
z?e_&u>
zV?Y827?{8`%LG0K2F^D;P~o(+v;>$E1qOx%3^)L?ItEUL1dxG16CpH16G$)dfQyBJ
zf%yT*fdUK+U|Io%=Hp@l(?IS7n2n@>G%!fOl#t#Cp}WB(zW`GJm~jqFsxdGm;pU1l
zFlHceIbX;M@MJPD=!Bn!o4$c097mD`(vU#{0Ic*ORsD-&i2wiq07*qoM6N<$f^Pjn
AR{#J2

delta 198
zcmV;%06G7W0+9kCiBL{Q4GJ0x0000DNk~Le0000L0000U1Oos70Y>?F@R1=^e?SEa
z3=BMQ4wLQ&FrAi`1{dSA+5llNBQ&L@C7>C@z{qf60+8ZlVEBM8MF22OaCi{Fz)-N^
z08r-xffYdOI6&qwF!1&e(wmls>{R?<_W||=9EUeA09na%fJtFL1DgOyd_K@;uNX|g
zYWP+yV36IN2-Cu~f#(2Rzmfp496rM9S};fe04-D@D?rZc?*IS*07*qoM6N<$g0a|1
AKmY&$

diff --git a/docs/html/img90.png b/docs/html/img90.png
index 97c77ca2b50aaad1aa3277592344288f41f40964..f89a8e47a1be3125f20255c0d7ec705fab8e8ddc 100644
GIT binary patch
literal 203
zcmeAS@N?(olHy`uVBq!ia0vp^JV4CH!py+HIB&`YPasD$nNa*QQGe!&b5&u*jvIYFK-jv*W~
zlM@)48QA1l*}k#z1S~jkfKA1cwL!?oL5EFnDoYY0JDb{qEP*tZq_$oro`MT!68KbZ
yGD}1>Hpw`6H8wVKIvM7qzhKi$3{Fa5VCZ_pzHiZ!_A5Zs89ZJ6T-G@yGywqnPdj=5

literal 273
zcmeAS@N?(olHy`uVBq!ia0vp^(m*W7!py+H7-8Vy4CELD_=LC~IB;P3^5wm~z3J)c
zzP`Td>gpgZyu4esY?(D{RzpKWNl8gmRFs2*gNccWl$2D?oi(vQ6^tc8e!&b5&u*jv
zIsKk4jv*3LlM{d-*@1~&V#WcJ(=2vuZ0F2v0v-ZQVwoYt%GSopW5KY=ip{T$WkREa
zu%d~xu!sJ~hVItJ#-EHQ8ku-_5~3JepFK`uy6o_dWk&Ck1``9115+m4<5;-+pvr!R
zV1^lmd_JoT4OAXJ>oPP*Qz*2IKf(1O#mL}A%lx+4`x;f;C$V0d;K;BjLjb~?PO-)TFCno>^01XWdw6wIEnwo%sfOK?pT3T8_KtMD!G#VNjY}~9}00001
zbW%=J06^y0W&i*II7vi7R5*>*Qn5+{K@fer5^}j)*Hf^Qu-Iy`wTRp&2>yVdkXkHa
zV|`zs!BSEjS6eKiAaX@|n-#&rDxcu&-d%DzL$EM~uh^OQcINFY46q6vK!SnET3}V|
z=EeoSvU>*Y4(siF!XAMDDdktcGiYKYa8hO=6pfH3R?(E0V0TOUr|b@SlVYHif+>qP
zW(KV7_{Rua+{WCNnG`;#X+0E23~rBz8bkD`
ke-vtg#Xl?blCJ-ZZ*Lbua(JC2&;S4c07*qoM6N<$f&u%zJOBUy

literal 203
zcmeAS@N?(olHy`uVBq!ia0vp^JV4CH!py+HIB&`YPasD$nNa*QQGe!&b5&u*jvIYFK-jv*W~
zlM@)48QA1l*}k#z1S~jkfKA1cwL!?oL5EFnDoYY0JDb{qEP*tZq_$oro`MT!68KbZ
yGD}1>Hpw`6H8wVKIvM7qzhKi$3{Fa5VCZ_pzHiZ!_A5Zs89ZJ6T-G@yGywqnPdj=5

diff --git a/docs/html/img92.png b/docs/html/img92.png
index 0802142aadd634ce6e2dee53466cc5f51770142e..7ae3977fe3b3fe5fc462b11bef3f78a7d13504ec 100644
GIT binary patch
delta 540
zcmV+%0^|L<1Kb25iBL{Q4GJ0x0000DNk~Le0001M0000W1Oos70gwr+29Y65f7(ez
zK~y-6?Nq%=#6S@Kc60tDmy4&UScohK7UEwX;RK5V8^IUIBb;ERP1I75Jb>sSTKH3>
zu<|V8PoW^9op=hVt;lq%OOnHsQ
zq!XsnK?PvZc^Rl_V#H;rAQ)BQ-%(+$>(sK
zliJ!C%b1v=D4hZadRR!Du%dXDWibnn@PP@y7Fsr<_7wzb>KORQIsKb;|2AZ!lPG%B
zkU&jM7(D6H;iyi;uw;lA8wUC2NsnZvG{HTMTzMGRVrxU*p#x4lmSfbpe=_APQDiyj
z%8>FxwV&+^;o(&Fj9On@uw?eNDEA`mtizKl^2S^iKg&YF%tAAinai@P^TdKHEgUQF60kuBTYsK_?~V&#p4fxzkei49j{5R0Eh5wc0-;<<ta#`i%b+kdwH$oC-C~I>t=zbQd*RevwHYk2yho%k}^LEhH
zD}^tO?bU}w&AF!&7q5qqFZt4j6`xmCS;NRKUXDtM@Z(#8${3?x$%}LY^?G_G1^Khl
ezKQuqyLbn2+-2`DYAMzL0000h1*
zK~y-6)l#ua13?gdyApD_Th~*tld#xov9*ZYCkXz4pO9KCVq<+@putj799LT`q9Afb
zdYcu&!YZHO?A~2+IYY28g|FC|_jcy(EDW#;9YBJC$y#7l?B>P=zOs7;?GEehe8L`q
z04e2HzcXlJBydt@Ary^}CRWjuf0$r*OZunm4tbMepp}9ti#KKltnK*62wU97+?JUX
zKB#Fu6h{nhkBAyX2w&95-NYR)5C-Oy63(TzE&|Ef2QnZHkW}u&VNiS35Nr6iFqwv?Sut
zvECH=nql0mz%9DlB;we!uY2@!x5fPVl13E+(%#U&BN6Y-$&)326l#IRKP&W-uK$d0
XZx=#xc%3BB00000NkvXXu0mjf4Tq<&

diff --git a/docs/html/img93.png b/docs/html/img93.png
index 7ae3977fe3b3fe5fc462b11bef3f78a7d13504ec..4a2647496cb7ce6b695239766742029a9b7c6605 100644
GIT binary patch
delta 276
zcmV+v0qg$U1l0l|iBL{Q4GJ0x0000DNk~Le0000p0000U1Oos70R*}WXOSUGe*n`-
zL_t(2kz-&00VakG3~1mG0}rYI9|HqR00TF&a2gmSpsG_~U|7NFzzt^G32>vEiwv;p
zhXNj;ISdDYxZnUg$PgU}kD&nwneZ7(0bqUrWA%avAdfNNgB~;3?;sw7zyU^(#04;q
znTbI`0U{1k$of!R9)>C)o8yQAvXsJY
zhII@IXBdUx%g+7xQ+|
z)hmTBjqTNkM9sOU6BnNk7ylMbT;>
zb_*+^V&ZXY?YWEZM)#o0ruzli)Ls8c+<`nsO(HJ`5r(l8Gwe3$nFOv4ce?@Yqr=O^
z=e;avClALJJsWBEwxXxKJdk{XcR<~IZ2owyr)EPLNFUpSvi}h7mOsUL#osadw%XF=
zr^=iG8;g

delta 276
zcmV+v0qg$Z1Jwc{iBL{Q4GJ0x0000DNk~Le0000p0000U1Oos70R*}WXOSUGe*n`-
zL_t(2kz-&00VakG3~1mG0}rYI9|HqR00TF&a2gmSpsG_~U|7NFzzt^G32>vEiwv;p
zhXNj;ISdDYxZnUg$PgU}kD&nwneZ7(0bqUrWA%avAdfNNgB~;3?;sw7zyU^(#04;q
znTbI`0U{1k$of!R9)>C)o8yQAvXsJY
zhII@IXBdOVEl^BU
zMZmzojg5_GXJ<`KO(!QOr>CcpJ{x~L$RkYv0004WQchC;bXmE
zpaA5;1X#Hl0uBf;aDW6hfYd1nFmZvL-vHAdz|Ix`^1lMYL^%eM19e~lmjDC%0_;+(
zkf_=L473Z_RWQ_o2#yOFD!2_-?qcA!T4~O}JpshsfT2R*6vJE)v6q1nWDO^#3XTU1
zsR2MDi-8I35C;avE!jY)ZUZ^0OaN0n3s`Ro@SI#+z`z>-QW1>Zk$oUyBZR#bhesgE
bWjFx<%G5JnxhwJC00000NkvXXu0mjfkL-Zq

delta 466
zcmV;@0WJQG1K|TciBL{Q4GJ0x0000DNk~Le000190000W1Oos70Up!hdH?_bFi=cX
zMZmzor>Ccljg4n#XH88_CnqNW005CY8-HxvtX%*A00DGTPE!Ct=GbNc00Cb~L_t(I
zjpb9jPQx%1J$BmWQ8x+;BeEhfF@VI5G9t0?3H=0i7z!VN@&&YF&JZCcSS$o8146LU
z#h=iQY}l^ThBQ*7ste)_Hz)TVpX+NUfJIc00X)=#mPGi?88|@3NzCh)Hltq<8GkKa
zVn_ks^djr}R=|Q*HFX4`BJb!C6v*lKYi?Mm#sbnXFyje_LP}fcs^}~&dU?UbhW5EO
zf|{J!Y1Hy7X)4Xg)3j4vARu)d*+ONk7ylMbT;>b_*+^
zV&ZXY?YWEZM)#o0ruzli)Ls8c+<$>QMol6w2N8y`6f^8L>6rws4Z8vDqr=O^=e;av
zClALJJsWBEwxXxKJdk{XcR<~IZ2owyr)EPLNFUpSvi}h7mOsUL#osadw%XF=r^=iG
zCcljg4n#XH88_CnqNW005CY8-HxvtX%*A00DGTPE!Ct=GbNc0062kDE~7!yOjU{002ovPDHLkV1i|EX~O^j

delta 381
zcmV-@0fPRl0*wPZiBL{Q4GJ0x0000DNk~Le0000%0000W1Oos70mybZ9{>OVEl^BU
zMZmzojg5_GXJ<`KO(!QOr>CcpJ{x~L$RkYv0004WQchC;bXmE
zpaA5;1X#Hl0uBf;aDW6hfYd1nFmZvL-vHAdz|Ix`^1lMYL^%eM19e~lmjDC%0_;+(
zkf_=L473Z_RWQ_o2#yOFD!2_-?qcA!T4~O}JpshsfT2R*6vJE)v6q1nWDO^#3XTU1
zsR2MDi-8I35C;avE!jY)ZUZ^0OaN0n3s`Ro@SI#+z`z>-QW1>Zk$oUyBZR#bhesgE
bWjFx<%G5JnxhwJC00000NkvXXu0mjfKaYT`

diff --git a/docs/html/img97.png b/docs/html/img97.png
index ac788493fc6c2fbe0816c9e3818c65ea088cf852..894602207da61f75c4da97b0c8a4dea6fd8c22f5 100644
GIT binary patch
delta 360
zcmV-u0hj))0;mHaiBL{Q4GJ0x0000DNk~Le0000+0000W1Oos70V=8^W|1LFe*q>*
zL_t(IjbmUy0}Uv=e_+x9T@e`Y@PVoGSS67F7lw!cgsPdqZ~(&MV3Ei8yxq_B}5rxMLcCH?Zm;#94
zK@oZYaw$wml%J1b!3G168ki6xe-A$|CrBeFNaz4atw9IpTz;^J;2|mil;#Hqivg0^
zJO-#v8hU_Rfq`QKE=k4%VCp2$qYrSJ&<7$oA7H5AaoTly@>&Ll9&0NGo&_L*0~l%)
zZZj-p;Ge+#fgzEB31k@;rW(!<3{ebcIQbSZJ1{VV9TdR8bhHNO=;J`OJ_TTkcLP%Z
z!y^O6+uH;f_`n%M1ebGHGn`>yI0RuI#G!^s5t_P&DF6Uhbv$lJSM$RF0000kDE~7!yOjU{002ovPDHLkV1k26S=9gl

diff --git a/docs/html/img98.png b/docs/html/img98.png
index 894602207da61f75c4da97b0c8a4dea6fd8c22f5..781edc194ca7b436c47b746c704d691f568f9cf5 100644
GIT binary patch
literal 184
zcmeAS@N?(olHy`uVBq!ia0vp@K+MO&%)r1{7`D3{$k7V$32{Ae;K1_b%X@o!)6>&^
zeSOu{)j>*md1uXzC6&2;+;9z26A|)lY?bEIWKsm;eAirP+hi5m^fE*i77sn8e
znaK$ajZ7BZjWZh?#m^ZsB$ctTi9~K-@ZeMrVPraE#rm)~zv07e7KJZj97iW|ESoXy
d9#a=H!}CXMv%7qF=K;-O@O1TaS?83{1OO>sH}U`g

literal 424
zcmV;Z0ayNsP)BjLjb~?PO-)TFCno>^01XWdw6wIEnwo%sfOK?pT3T8_KtMD!G#VNjY}~9}00001
zbW%=J06^y0W&i*ICP_p=R5*=eU_b*6D7=4Q(g9r&81V3csqqj2a5rc**pfQP8xcETY-UN11?F%17PYT(4!AwFO{`cLP%Z!y^O6+uH;f_`n%M1ebGHGn`>yI0RuI#G!^s5t_P&DF6Uhbv$lJ
SSM$RF0000BjLjb~?PO-)TFCno>^01XWdw6wIEnwo%sfOK?pT3T8_KtMD!G#VNjY}~9}00001
zbW%=J06^y0W&i*H|4BqaR49>SU;qJb28IO;3&^
zeSOu{)j>*md1uXzC6&2;+;9z26A|)lY?bEIWKsm;eAirP+hi5m^fE*i77sn8e
znaK$ajZ7BZjWZh?#m^ZsB$ctTi9~K-@ZeMrVPraE#rm)~zv07e7KJZj97iW|ESoXy
d9#a=H!}CXMv%7qF=K;-O@O1TaS?83{1OO>sH}U`g

diff --git a/docs/html/index.html b/docs/html/index.html
index 21e6f6b1..fc0b17cf 100644
--- a/docs/html/index.html
+++ b/docs/html/index.html
@@ -23,18 +23,18 @@ original version by:  Nikos Drakos, CBLU, University of Leeds
 
 
 
-
 next 
 up 
 previous 
-
 contents  
 
- Next: Next: Contents -   Contents

@@ -58,296 +58,292 @@ University of Rome ``Tor Vergata'', Italy
Software version: 3.0-beta
-May 15th, 2010 +December 15th, 2011

desc_a
-
the problem communication descriptor. +
the problem communication descriptor. Scope: local
Type: required
-Intent: in, target. +Intent: in. +
+Specified as: a communication data structure descdatapsb_desc_type. +
+
trans
+
Scope: +
+Type: optional +
+Intent: in. +
+Specified as: a character. +
+
work
+
an optional work space +Scope: local +
+Type: optional
-Specified as: a communication descriptor data structure descdatapsb_desc_type. +Intent: inout. +
+Specified as: a double precision array.
@@ -106,17 +125,16 @@ Specified as: a communication descriptor data structure descdatapsb_desc_typ
On Return
-
prec
-
the preconditioner. -
+
y
+
the destination vector. Scope: local
Type: required
Intent: inout.
-Specified as: a precondtioner data structure precdatapsb_prec_type -
+Specified as: a double precision array. +
info
Error code.
diff --git a/docs/html/node104.html b/docs/html/node104.html index 62561612..021b52e1 100644 --- a/docs/html/node104.html +++ b/docs/html/node104.html @@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds Jens Lippmann, Marek Rouchal, Martin Wilck and others --> -psb_precaply -- Preconditioner application routine - +psb_precdescr -- Prints a description of current preconditioner + @@ -18,53 +18,53 @@ original version by: Nikos Drakos, CBLU, University of Leeds - - + - next - + up - previous - contents
- Next: psb_precdescr Prints - Up: Preconditioner routines - Previous: psb_precbld Builds -   Next: Iterative Methods + Up: Preconditioner routines + Previous: psb_precaply Preconditioner +   Contents

-

-psb_precaply -- Preconditioner application routine +

+psb_precdescr -- Prints a description of current + preconditioner

-call psb_precaply(prec,x,y,desc_a,info,trans,work)
-call psb_precaply(prec,x,desc_a,info,trans)
+call psb_precdescr(prec)
+call psb_precdescr(prec, iout)
 

Type:
-
Synchronous. +
Asynchronous.
On Entry
@@ -79,72 +79,15 @@ Intent: in.
Specified as: a preconditioner data structure precdatapsb_prec_type.
-
x
-
the source vector. -Scope: local -
-Type: required -
-Intent: inout. -
-Specified as: a double precision array. -
-
desc_a
-
the problem communication descriptor. +
iout
+
output unit. Scope: local
-Type: required +Type: optiona
Intent: in.
-Specified as: a communication data structure descdatapsb_desc_type. -
-
trans
-
Scope: -
-Type: optional -
-Intent: in. -
-Specified as: a character. -
-
work
-
an optional work space -Scope: local -
-Type: optional -
-Intent: inout. -
-Specified as: a double precision array. -
-
- -

-

-
On Return
-
-
-
y
-
the destination vector. -Scope: local -
-Type: required -
-Intent: inout. -
-Specified as: a double precision array. -
-
info
-
Error code. -
-Scope: local -
-Type: required -
-Intent: out. -
-An integer value; 0 means no error has been detected. +Specified as: an integer number.
diff --git a/docs/html/node105.html b/docs/html/node105.html index 763bda29..3ba7a91c 100644 --- a/docs/html/node105.html +++ b/docs/html/node105.html @@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds Jens Lippmann, Marek Rouchal, Martin Wilck and others --> -psb_precdescr -- Prints a description of current preconditioner - +Iterative Methods + @@ -18,80 +18,61 @@ original version by: Nikos Drakos, CBLU, University of Leeds - - + + + - next - + up - previous - contents
- Next: Iterative Methods - Up: Preconditioner routines - Previous: psb_precaply Preconditioner -   Next: psb_krylov Krylov + Up: userhtml + Previous: psb_precdescr Prints +   Contents

-

-psb_precdescr -- Prints a description of current - preconditioner -

+

+ +
+Iterative Methods +

-

-call psb_precdescr(prec)
-call psb_precdescr(prec, iout)
-
+In this chapter we provide routines for preconditioners and iterative +methods. The interfaces for Krylov subspace methods are available in +the module psb_krylov_mod.

-

-
Type:
-
Asynchronous. -
-
On Entry
-
-
-
prec
-
the preconditioner. -Scope: local -
-Type: required -
-Intent: in. -
-Specified as: a preconditioner data structure precdatapsb_prec_type. -
-
iout
-
output unit. -Scope: local -
-Type: optiona -
-Intent: in. -
-Specified as: an integer number. -
-
+

+ +Subsections -

+

+

diff --git a/docs/html/node106.html b/docs/html/node106.html index 0904e909..12954c0f 100644 --- a/docs/html/node106.html +++ b/docs/html/node106.html @@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds Jens Lippmann, Marek Rouchal, Martin Wilck and others --> -Iterative Methods - +psb_krylov -- Krylov Methods Driver Routine + @@ -18,62 +18,372 @@ original version by: Nikos Drakos, CBLU, University of Leeds - - - + + - next - + up - previous - contents
- Next: psb_krylov Krylov - Up: userhtml - Previous: psb_precdescr Prints -   Next: Bibliography + Up: Iterative Methods + Previous: Iterative Methods +   Contents

-

- +


-Iterative Methods -

+psb_krylov -- Krylov Methods Driver + Routine + + +

+This subroutine is a driver that provides a general interface for all +the Krylov-Subspace family methods implemented in PSBLAS version 2. + +

+The stopping criterion is the normwise backward error, in the infinity +norm, i.e. the iteration is stopped when +

+
+ + +\begin{displaymath}err = \frac{\Vert r_i\Vert}{(\Vert A\Vert\Vert x_i\Vert+\Vert b\Vert)} < eps \end{displaymath} +
+
+

+or the 2-norm residual reduction +

+
+ + +\begin{displaymath}err = \frac{\Vert r_i\Vert}{\Vert b\Vert _2} < eps \end{displaymath} +
+
+

+according to the value passed through the istop argument (see +later). In the above formulae, $x_i$ is the tentative solution and +$r_i=b-Ax_i$ the corresponding residual at the $i$-th iteration. + +

+

+call psb_krylov(method,a,prec,b,x,eps,desc_a,info,&
+     & itmax,iter,err,itrace,irst,istop,cond)
+

-In this chapter we provide routines for preconditioners and iterative -methods. The interfaces for Krylov subspace methods are available in -the module psb_krylov_mod. +

+
Type:
+
Synchronous. +
+
On Entry
+
+
+
method
+
a string that defines the iterative method to be + used. Supported values are: +
+
CG:
+
the Conjugate Gradient method; + +
+
CGS:
+
the Conjugate Gradient Stabilized method;

-


- -Subsections - - - -

+
+
BICG:
+
the Bi-Conjugate Gradient method; + +
+
BICGSTAB:
+
the Bi-Conjugate Gradient Stabilized method; + +
+
BICGSTABL:
+
the Bi-Conjugate Gradient Stabilized method with restarting; + +
+
RGMRES:
+
the Generalized Minimal Residual method with restarting. + +
+
+
+
a
+
the local portion of global sparse matrix +$A$. +
+Scope: local +
+Type: required +
+Intent: in. +
+Specified as: a structured data of type spdatapsb_spmat_type. +
+
prec
+
The data structure containing the preconditioner. +
+Scope: local +
+Type: required +
+Intent: in. +
+Specified as: a structured data of type precdatapsb_prec_type. +
+
b
+
The RHS vector. +
+Scope: local +
+Type: required +
+Intent: in. +
+Specified as: a rank one array. +
+
x
+
The initial guess. +
+Scope: local +
+Type: required +
+Intent: inout. +
+Specified as: a rank one array. +
+
eps
+
The stopping tolerance. +
+Scope: global +
+Type: required +
+Intent: in. +
+Specified as: a real number. +
+
desc_a
+
contains data structures for communications. +
+Scope: local +
+Type: required +
+Intent: in. +
+Specified as: a structured data of type descdatapsb_desc_type. +
+
itmax
+
The maximum number of iterations to perform. +
+Scope: global +
+Type: optional +
+Intent: in. +
+Default: $itmax = 1000$. +
+Specified as: an integer variable $itmax \ge 1$. +
+
itrace
+
If $>0$ print out an informational message about + convergence every $itrace$ iterations. +
+Scope: global +
+Type: optional +
+Intent: in. +
+
irst
+
An integer specifying the restart parameter. +
+Scope: global +
+Type: optional. +
+Intent: in. +
+Values: $irst>0$. This is employed for the BiCGSTABL or RGMRES +methods, otherwise it is ignored. + +

+

+
istop
+
An integer specifying the stopping criterion. +
+Scope: global +
+Type: optional. +
+Intent: in. +
+Values: 1: use the normwise backward error, 2: use the scaled 2-norm +of the residual. Default: 2. +
+
On Return
+
+
+
x
+
The computed solution. +
+Scope: local +
+Type: required +
+Intent: inout. +
+Specified as: a rank one array. +
+
iter
+
The number of iterations performed. +
+Scope: global +
+Type: optional +
+Intent: out. +
+Returned as: an integer variable. +
+
err
+
The convergence estimate on exit. +
+Scope: global +
+Type: optional +
+Intent: out. +
+Returned as: a real number. +
+
cond
+
An estimate of the condition number of matrix $A$; only + available with the $CG$ method. +
+Scope: global +
+Type: optional +
+Intent: out. +
+Returned as: a real number. +
+
info
+
Error code. +
+Scope: local +
+Type: required +
+Intent: out. +
+An integer value; 0 means no error has been detected. +
+
+ +

+ +

+ +

+ +

+


+ + +next + +up + +previous + +contents +
+ Next: Bibliography + Up: Iterative Methods + Previous: Iterative Methods +   Contents + diff --git a/docs/html/node107.html b/docs/html/node107.html index a5d00464..d9949883 100644 --- a/docs/html/node107.html +++ b/docs/html/node107.html @@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds Jens Lippmann, Marek Rouchal, Martin Wilck and others --> -psb_krylov -- Krylov Methods Driver Routine - +Bibliography + @@ -18,372 +18,158 @@ original version by: Nikos Drakos, CBLU, University of Leeds - - + + + - next - + up - previous - contents
- Next: Bibliography - Up: Iterative Methods - Previous: Iterative Methods -   Next: About this document ... + Up: userhtml + Previous: psb_krylov Krylov +   Contents -
-
+

- -

-
-psb_krylov -- Krylov Methods Driver - Routine -

- -

-This subroutine is a driver that provides a general interface for all -the Krylov-Subspace family methods implemented in PSBLAS version 2. - -

-The stopping criterion is the normwise backward error, in the infinity -norm, i.e. the iteration is stopped when -

-
- - -\begin{displaymath}err = \frac{\Vert r_i\Vert}{(\Vert A\Vert\Vert x_i\Vert+\Vert b\Vert)} < eps \end{displaymath} -
-
-

-or the 2-norm residual reduction -

-
- - -\begin{displaymath}err = \frac{\Vert r_i\Vert}{\Vert b\Vert _2} < eps \end{displaymath} -
-
-

-according to the value passed through the istop argument (see -later). In the above formulae, $x_i$ is the tentative solution and -$r_i=b-Ax_i$ the corresponding residual at the $i$-th iteration. - -

-

-call psb_krylov(method,a,prec,b,x,eps,desc_a,info,&
-     & itmax,iter,err,itrace,irst,istop,cond)
-
- -

-

-
Type:
-
Synchronous. -
-
On Entry
+ +

+Bibliography +

1
-
-
method
-
a string that defines the iterative method to be - used. Supported values are: -
-
CG:
-
the Conjugate Gradient method; - -
-
CGS:
-
the Conjugate Gradient Stabilized method; + D. Barbieri, V. Cardellini, S. Filippone and D. Rouson +Design Patterns for Scientific Computations on Sparse Matrices, + HPSS 2011, Algorithms and Programming Tools for Next-Generation High-Performance Scientific Software, Bordeaux, Sep. 2011

-

-
BICG:
-
the Bi-Conjugate Gradient method; - -
-
BICGSTAB:
-
the Bi-Conjugate Gradient Stabilized method; - -
-
BICGSTABL:
-
the Bi-Conjugate Gradient Stabilized method with restarting; - -
-
RGMRES:
-
the Generalized Minimal Residual method with restarting. - -
-
-
-
a
-
the local portion of global sparse matrix -$A$. -
-Scope: local -
-Type: required -
-Intent: in. -
-Specified as: a structured data of type spdatapsb_spmat_type. -
-
prec
-
The data structure containing the preconditioner. -
-Scope: local -
-Type: required -
-Intent: in. -
-Specified as: a structured data of type precdatapsb_prec_type. -
-
b
-
The RHS vector. -
-Scope: local -
-Type: required -
-Intent: in. -
-Specified as: a rank one array. -
-
x
-
The initial guess. -
-Scope: local -
-Type: required -
-Intent: inout. -
-Specified as: a rank one array. -
-
eps
-
The stopping tolerance. -
-Scope: global -
-Type: required -
-Intent: in. -
-Specified as: a real number. -
-
desc_a
-
contains data structures for communications. -
-Scope: local -
-Type: required -
-Intent: in. -
-Specified as: a structured data of type descdatapsb_desc_type. -
-
itmax
-
The maximum number of iterations to perform. -
-Scope: global -
-Type: optional -
-Intent: in. -
-Default: $itmax = 1000$. -
-Specified as: an integer variable $itmax \ge 1$. -
-
itrace
-
If $>0$ print out an informational message about - convergence every $itrace$ iterations. -
-Scope: global -
-Type: optional -
-Intent: in. -
-
irst
-
An integer specifying the restart parameter. -
-Scope: global -
-Type: optional. -
-Intent: in. -
-Values: $irst>0$. This is employed for the BiCGSTABL or RGMRES -methods, otherwise it is ignored. +

2 +
+G. Bella, S. Filippone, A. De Maio and M. Testa, +A Simulation Model for Forest Fires, +in J. Dongarra, K. Madsen, J. Wasniewski, editors, +Proceedings of PARA 04 Workshop on State of the Art +in Scientific Computing, pp. 546-553, Lecture Notes in Computer Science, +Springer, 2005. +

3 +
A. Buttari, D. di Serafino, P. D'Ambra, S. Filippone,
+2LEV-D2P4: a package of high-performance preconditioners,
+Applicable Algebra in Engineering, Communications and Computing, +Volume 18, Number 3, May, 2007, pp. 223-239 +

4 +
P. D'Ambra, S. Filippone, D. Di Serafino
+On the Development of PSBLAS-based Parallel Two-level Schwarz Preconditioners +
+Applied Numerical Mathematics, Elsevier Science, +Volume 57, Issues 11-12, November-December 2007, Pages 1181-1196.

-

-
istop
-
An integer specifying the stopping criterion. -
-Scope: global -
-Type: optional. -
-Intent: in. -
-Values: 1: use the normwise backward error, 2: use the scaled 2-norm -of the residual. Default: 2. -
-
On Return
+

5
-
-
x
-
The computed solution. -
-Scope: local -
-Type: required -
-Intent: inout. -
-Specified as: a rank one array. -
-
iter
-
The number of iterations performed. -
-Scope: global -
-Type: optional -
-Intent: out. -
-Returned as: an integer variable. -
-
err
-
The convergence estimate on exit. -
-Scope: global -
-Type: optional -
-Intent: out. -
-Returned as: a real number. -
-
cond
-
An estimate of the condition number of matrix $A$; only - available with the $CG$ method. -
-Scope: global -
-Type: optional -
-Intent: out. -
-Returned as: a real number. -
-
info
-
Error code. -
-Scope: local -
-Type: required + Dongarra, J. J., DuCroz, J., Hammarling, S. and Hanson, R., +An Extended Set of Fortran Basic Linear Algebra Subprograms, +ACM Trans. Math. Softw. vol. 14, 1-17, 1988. +

6 +
+ Dongarra, J., DuCroz, J., Hammarling, S. and Duff, I., +A Set of level 3 Basic Linear Algebra Subprograms, +ACM Trans. Math. Softw. vol. 16, 1-17, 1990. +

7 +
+J. J. Dongarra and R. C. Whaley, +A User's Guide to the BLACS v. 1.1, +Lapack Working Note 94, Tech. Rep. UT-CS-95-281, University of +Tennessee, March 1995 (updated May 1997). +

8 +
+I. Duff, M. Marrone, G. Radicati and C. Vittoli, +Level 3 Basic Linear Algebra Subprograms for Sparse Matrices: +a User Level Interface, +ACM Transactions on Mathematical Software, 23(3), pp. 379-401, 1997. +

9 +
+I. Duff, M. Heroux and R. Pozo, +An Overview of the Sparse Basic Linear +Algebra Subprograms: the New Standard from the BLAS Technical Forum, +ACM Transactions on Mathematical Software, 28(2), pp. 239-267, 2002. +

10 +
+S. Filippone and M. Colajanni, +PSBLAS: A Library for Parallel Linear Algebra +Computation on Sparse Matrices,
-Intent: out. +ACM Transactions on Mathematical Software, 26(4), pp. 527-550, 2000. +

11 +
+S. Filippone and A. Buttari, +Object-Oriented Techniques for Sparse Matrix Computations in Fortran 2003,
-An integer value; 0 means no error has been detected. -
-
- -

+ACM Transactions on Mathematical Software, to appear. +

12 +
+S. Filippone, P. D'Ambra, M. Colajanni, +Using a Parallel Library of Sparse Linear Algebra in a Fluid Dynamics +Applications Code on Linux Clusters, +in G. Joubert, A. Murli, F. Peters, M. Vanneschi, editors, +Parallel Computing - Advances & Current Issues, +pp. 441-448, Imperial College Press, 2002. +

13 +
+Karypis, G. and Kumar, V., +METIS: Unstructured Graph Partitioning and Sparse Matrix + Ordering System. +Minneapolis, MN 55455: University of Minnesota, Department of + Computer Science, 1995. +Internet Address: http://www.cs.umn.edu/~karypis. +

14 +
+Lawson, C., Hanson, R., Kincaid, D. and Krogh, F., + Basic Linear Algebra Subprograms for Fortran usage, +ACM Trans. Math. Softw. vol. 5, 38-329, 1979.

+

15 +
+Machiels, L. and Deville, M. +Fortran 90: An entry to object-oriented programming for the solution + of partial differential equations. +ACM Trans. Math. Softw. vol. 23, 32-49. +

16 +
+Metcalf, M., Reid, J. and Cohen, M. +Fortran 95/2003 explained. +Oxford University Press, 2004. +

17 +
+Rouson, D.W.I., Xia, J., Xu, X.: Scientific Software Design: The + Object-Oriented Way. Cambridge University Press (2011)

+

18 +
+M. Snir, S. Otto, S. Huss-Lederman, D. Walker and J. Dongarra, +MPI: The Complete Reference. Volume 1 - The MPI Core, second edition, +MIT Press, 1998. +

-


- - -next - -up - -previous - -contents -
- Next: Bibliography - Up: Iterative Methods - Previous: Iterative Methods -   Contents - +

diff --git a/docs/html/node108.html b/docs/html/node108.html index 777b58bc..1789a129 100644 --- a/docs/html/node108.html +++ b/docs/html/node108.html @@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds Jens Lippmann, Marek Rouchal, Martin Wilck and others --> -Bibliography - +About this document ... + @@ -18,157 +18,52 @@ original version by: Nikos Drakos, CBLU, University of Leeds - - + - - -next - + up - previous - contents
- Next: About this document ... - Up: Up: userhtml - Previous: psb_krylov Krylov -   Previous: Bibliography +   Contents -

- - -

-Bibliography -

1 -
- D. Barbieri, V. Cardellini, S. Filippone and D. Rouson -Design Patterns for Scientific Computations on Sparse Matrices, - HPSS 2011, Algorithms and Programming Tools for Next-Generation High-Performance Scientific Software, Bordeaux, Sep. 2011 - -

-

2 -
-G. Bella, S. Filippone, A. De Maio and M. Testa, -A Simulation Model for Forest Fires, -in J. Dongarra, K. Madsen, J. Wasniewski, editors, -Proceedings of PARA 04 Workshop on State of the Art -in Scientific Computing, pp. 546-553, Lecture Notes in Computer Science, -Springer, 2005. -

3 -
A. Buttari, D. di Serafino, P. D'Ambra, S. Filippone,
-2LEV-D2P4: a package of high-performance preconditioners,
-Applicable Algebra in Engineering, Communications and Computing, -Volume 18, Number 3, May, 2007, pp. 223-239 -

4 -
P. D'Ambra, S. Filippone, D. Di Serafino
-On the Development of PSBLAS-based Parallel Two-level Schwarz Preconditioners -
-Applied Numerical Mathematics, Elsevier Science, -Volume 57, Issues 11-12, November-December 2007, Pages 1181-1196. - -

-

5 -
- Dongarra, J. J., DuCroz, J., Hammarling, S. and Hanson, R., -An Extended Set of Fortran Basic Linear Algebra Subprograms, -ACM Trans. Math. Softw. vol. 14, 1-17, 1988. -

6 -
- Dongarra, J., DuCroz, J., Hammarling, S. and Duff, I., -A Set of level 3 Basic Linear Algebra Subprograms, -ACM Trans. Math. Softw. vol. 16, 1-17, 1990. -

7 -
-J. J. Dongarra and R. C. Whaley, -A User's Guide to the BLACS v. 1.1, -Lapack Working Note 94, Tech. Rep. UT-CS-95-281, University of -Tennessee, March 1995 (updated May 1997). -

8 -
-I. Duff, M. Marrone, G. Radicati and C. Vittoli, -Level 3 Basic Linear Algebra Subprograms for Sparse Matrices: -a User Level Interface, -ACM Transactions on Mathematical Software, 23(3), pp. 379-401, 1997. -

9 -
-I. Duff, M. Heroux and R. Pozo, -An Overview of the Sparse Basic Linear -Algebra Subprograms: the New Standard from the BLAS Technical Forum, -ACM Transactions on Mathematical Software, 28(2), pp. 239-267, 2002. -

10 -
-S. Filippone and M. Colajanni, -PSBLAS: A Library for Parallel Linear Algebra -Computation on Sparse Matrices,
-ACM Transactions on Mathematical Software, 26(4), pp. 527-550, 2000. -

11 -
-S. Filippone and A. Buttari, -Object-Oriented Techniques for Sparse Matrix Computations in Fortran 2003,
-ACM Transactions on Mathematical Software, to appear. -

12 -
-S. Filippone, P. D'Ambra, M. Colajanni, -Using a Parallel Library of Sparse Linear Algebra in a Fluid Dynamics -Applications Code on Linux Clusters, -in G. Joubert, A. Murli, F. Peters, M. Vanneschi, editors, -Parallel Computing - Advances & Current Issues, -pp. 441-448, Imperial College Press, 2002. -

13 -
-Karypis, G. and Kumar, V., -METIS: Unstructured Graph Partitioning and Sparse Matrix - Ordering System. -Minneapolis, MN 55455: University of Minnesota, Department of - Computer Science, 1995. -Internet Address: http://www.cs.umn.edu/~karypis. -

14 -
-Lawson, C., Hanson, R., Kincaid, D. and Krogh, F., - Basic Linear Algebra Subprograms for Fortran usage, -ACM Trans. Math. Softw. vol. 5, 38-329, 1979. + +

+About this document ... +

+

+This document was generated using the +LaTeX2HTML translator Version 2008 (1.71)

-

15 -
-Machiels, L. and Deville, M. -Fortran 90: An entry to object-oriented programming for the solution - of partial differential equations. -ACM Trans. Math. Softw. vol. 23, 32-49. -

16 -
-Metcalf, M., Reid, J. and Cohen, M. -Fortran 95/2003 explained. -Oxford University Press, 2004. -

17 -
-Rouson, D.W.I., Xia, J., Xu, X.: Scientific Software Design: The - Object-Oriented Way. Cambridge University Press (2011) - +Copyright © 1993, 1994, 1995, 1996, +Nikos Drakos, +Computer Based Learning Unit, University of Leeds. +
+Copyright © 1997, 1998, 1999, +Ross Moore, +Mathematics Department, Macquarie University, Sydney.

-

18 -
-M. Snir, S. Otto, S. Huss-Lederman, D. Walker and J. Dongarra, -MPI: The Complete Reference. Volume 1 - The MPI Core, second edition, -MIT Press, 1998. -
- +The command line arguments were:
+ latex2html -local_icons -noaddress -dir ../../html userhtml.tex

+The translation was initiated by Salvatore Filippone on 2011-12-16


diff --git a/docs/html/node11.html b/docs/html/node11.html index e7a95356..555c4e71 100644 --- a/docs/html/node11.html +++ b/docs/html/node11.html @@ -26,26 +26,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds - next - up - previous - contents
- Next: Next: Named Constants - Up: Up: Data Structures - Previous: Previous: Named Constants -   Contents

@@ -57,11 +57,14 @@ original version by: Nikos Drakos, CBLU, University of Leeds Sparse Matrix data structure The spdatapsb_spmat_type data structure -contains all information about local portion of the sparse matrix and +contains all information about the local portion of the sparse matrix and its storage mode. Most of these fields are set by the tools routines when inserting a new sparse matrix; the user needs only choose, if he/she so whishes, a specific matrix storage mode. -
+ +

+The +

aspk
Contains values of the local distributed sparse matrix. @@ -125,11 +128,11 @@ Specified as: integer variable.
The Fortran 95 interface for distributed sparse matrices containing double precision real entries is defined as shown in -figure 5. The definitions for single precision and +figure 4. The definitions for single precision and complex data are identical except for the real declaration and for the kind type parameter. -
+
Figure 4: The PSBLAS defined data type that @@ -223,32 +226,32 @@ values: Subsections
- next - up - previous - contents
- Next: Next: Named Constants - Up: Up: Data Structures - Previous: Previous: Named Constants -   Contents diff --git a/docs/html/node12.html b/docs/html/node12.html index 5783c3b9..8825b9cc 100644 --- a/docs/html/node12.html +++ b/docs/html/node12.html @@ -25,26 +25,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds - next - up - previous - contents
- Next: Next: Dense Vector Data Structure - Up: Up: Sparse Matrix data structure - Previous: Previous: Sparse Matrix data structure -   Contents

diff --git a/docs/html/node13.html b/docs/html/node13.html index 4fa95e39..b854d547 100644 --- a/docs/html/node13.html +++ b/docs/html/node13.html @@ -18,7 +18,7 @@ original version by: Nikos Drakos, CBLU, University of Leeds - + @@ -26,26 +26,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds - next - up - previous - contents
- Next: Named Constants - Up: Next: Preconditioner data structure + Up: Data Structures - Previous: Previous: Named Constants -   Contents

@@ -61,196 +61,9 @@ contains all information about local portion of the sparse matrix and its storage mode. Most of these fields are set by the tools routines when inserting a new sparse matrix; the user needs only choose, if he/she so whishes, a specific matrix storage mode. -
-
aspk
-
Contains values of the local distributed sparse -matrix. -
-Specified as: an allocatable array of rank one of type corresponding -to matrix entries type. -
-
ia1
-
Holds integer information on distributed sparse -matrix. Actual information will depend on data format used. -
-Specified as: an allocatable integer array of rank one. -
-
ia2
-
Holds integer information on distributed sparse -matrix. Actual information will depend on data format used. -
-Specified as: an allocatable integer array of rank one. -
-
infoa
-
On entry can hold auxiliary information on distributed sparse -matrix. Actual information will depend on data format used. -
-Specified as: an integer array of length psb_ifasize_. -
-
fida
-
Defines the format of the distributed sparse matrix. -
-Specified as: a string of length 5 -
-
descra
-
Describe the characteristic of the distributed sparse matrix. -
-Specified as: array of character of length 9. -
-
pl
-
Specifies the local row permutation of distributed sparse -matrix. If pl(1) is equal to 0, then there isn't row permutation.
-Specified as: an allocatable integer array of dimension equal to number of local row (matrix_data[psb_n_row_]) -
-
pr
-
Specifies the local column permutation of distributed sparse -matrix. If PR(1) is equal to 0, then there isn't columnm permutation. -
-Specified as: an allocatable integer array of dimension equal to number of -local row (matrix_data[psb_n_col_]) -
-
m
-
Number of rows; if row indices are stored explicitly, -as in Coordinate Storage, should be greater than or equal to the -maximum row index actually present in the sparse matrix. -Specified as: integer variable. -
-
k
-
Number of columns; if column indices are stored explicitly, -as in Coordinate Storage or Compressed Sparse Rows, should be greater -than or equal to the maximum column index actually present in the sparse matrix. -Specified as: integer variable. -
-
-The Fortran 95 interface for distributed sparse matrices containing -double precision real entries is defined as shown in -figure 5. The definitions for single precision and -complex data are identical except for the real declaration and -for the kind type parameter. - -
- - - -
Figure 5: - The PSBLAS defined data type that - contains a sparse matrix.
-
- -
- -\fbox{\TheSbox} -
-
-

-The following two cases are among the most commonly used: -

-
fida=``CSR''
-
Compressed storage by rows. In this case the -following should hold: - -
    -
  1. ia2(i) contains the index of the first element of row -i; the last element of the sparse matrix is thus stored at -index $ia2(m+1)-1$. It should contain m+1 entries in -nondecreasing order (strictly increasing, if there are no empty rows). -
  2. -
  3. ia1(j) contains the column index and aspk(j) -contains the corresponding coefficient value, for all -$ia2(1) \le j
-\le ia2(m+1)-1$. -
  4. -
-
-
fida=``COO''
-
Coordinate storage. In this case the following -should hold: - -
    -
  1. infoa(1) contains the number of nonzero elements in the -matrix; -
  2. -
  3. For all -$1 \le j \le infoa(1)$, the coefficient, row index and -column index are stored into apsk(j), ia1(j) and -ia2(j) respectively. -
  4. -
-
-
-A sparse matrix has an associated state, which can take the following -values: -
-
Build:
-
State entered after the first allocation, and before the - first assembly; in this state it is possible to add nonzero entries. -
-
Assembled:
-
State entered after the assembly; computations using - the sparse matrix, such as matrix-vector products, are only possible - in this state; -
-
Update:
-
State entered after a reinitalization; this is used to - handle applications in which the same sparsity pattern is used - multiple times with different coefficients. In this state it is only - possible to enter coefficients for already existing nonzero entries. -
-


- -Subsections - - - -
- - -next - -up - -previous - -contents -
- Next: Named Constants - Up: Data Structures - Previous: Named Constants -   Contents - diff --git a/docs/html/node14.html b/docs/html/node14.html index d5714c05..f01a0035 100644 --- a/docs/html/node14.html +++ b/docs/html/node14.html @@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds Jens Lippmann, Marek Rouchal, Martin Wilck and others --> -Named Constants - +Preconditioner data structure + @@ -18,65 +18,79 @@ original version by: Nikos Drakos, CBLU, University of Leeds + - + - next - + up - previous - contents
- Next: Preconditioner data structure - Up: Next: Data structure query routines + Up: Data Structures + Previous: Dense Vector Data Structure - Previous: Dense Vector Data Structure -   Contents

-

- +

+ +
+Preconditioner data structure +

+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 precdata psb_prec_type data structure reported in +figure 5. The psb_prec_type +data type may contain a simple preconditioning matrix with the +associated communication descriptor.The values contained in +the iprcparm and rprcparm define tha type of +preconditioner along with all the parameters related to it; thus, +iprcparm and rprcparm define how the other records have +to be interpreted. This data structure is the basis of more complex +preconditioning strategies, which are the subject of further +research. + +

+ + + +
Figure 5: +The PSBLAS defined data type that contains a preconditioner.

+
-Named Constants - -
-
psb_dupl_ovwrt_
-
Duplicate coefficients should be overwritten - (i.e. ignore duplications) -
-
psb_dupl_add_
-
Duplicate coefficients should be added; -
-
psb_dupl_err_
-
Duplicate coefficients should trigger an error conditino -
-
psb_upd_dflt_
-
Default update strategy for matrix coefficients; -
-
psb_upd_srch_
-
Update strategy based on search into the data structure; -
-
psb_upd_perm_
-
Update strategy based on additional - permutation data (see tools routine description). -
-
+ +
+
+\fbox{\TheSbox}
+
+



diff --git a/docs/html/node15.html b/docs/html/node15.html index 7ef6ed8a..719ee509 100644 --- a/docs/html/node15.html +++ b/docs/html/node15.html @@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds Jens Lippmann, Marek Rouchal, Martin Wilck and others --> -Preconditioner data structure - +Data structure query routines + @@ -18,81 +18,59 @@ original version by: Nikos Drakos, CBLU, University of Leeds - - + + - next - up - previous - contents
- Next: Data structure query routines - Up: Next: get_local_rows Get + Up: Data Structures - Previous: Named Constants -   Previous: Preconditioner data structure +   Contents

-

- +

+
-Preconditioner data structure +Data structure query routines

-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 precdata psb_prec_type data structure reported in -figure 6. The psb_prec_type -data type may contain a simple preconditioning matrix with the -associated communication descriptor.The values contained in -the iprcparm and rprcparm define tha type of -preconditioner along with all the parameters related to it; thus, -iprcparm and rprcparm define how the other records have -to be interpreted. This data structure is the basis of more complex -preconditioning strategies, which are the subject of further -research. - -

- - - -
Figure 6: -The PSBLAS defined data type that contains a preconditioner.

- -
- -
-
-\fbox{\TheSbox}
-
-
+

+ +Subsections -

+

+

diff --git a/docs/html/node16.html b/docs/html/node16.html index a1d03c01..cbf0d441 100644 --- a/docs/html/node16.html +++ b/docs/html/node16.html @@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds Jens Lippmann, Marek Rouchal, Martin Wilck and others --> -Data structure query routines - +get_local_rows -- Get number of local rows + @@ -18,59 +18,89 @@ original version by: Nikos Drakos, CBLU, University of Leeds - + - + - next - + up - previous - contents
- Next: get_local_rows Get - Up: Data Structures - Previous: Preconditioner data structure -   Next: get_local_cols Get + Up: Data structure query routines + Previous: Data structure query routines +   Contents

-

- +

+get_local_rows -- Get number of local rows +

+ +

+

+nr = desc%get_local_rows()
+
+ +

+

+
Type:
+
Asynchronous. +
+
On Entry
+
+
+
desc
+
the communication descriptor.
-Data structure query routines - -

- -Subsections +Scope: local. +
+Type: required. +
+Intent: in. +
+Specified as: a structured data of type descdatapsb_desc_type. +
+
+ +

+

+
On Return
+
+
+
Function value
+
The number of local rows, i.e. the number of + rows owned by the current process; as explained in 1, + it is equal to +$\vert{\cal I}_i\vert + \vert{\cal B}_i\vert$. The returned value is + specific to the calling process. +
+
- - +



diff --git a/docs/html/node17.html b/docs/html/node17.html index 1f8b780d..4f29c33d 100644 --- a/docs/html/node17.html +++ b/docs/html/node17.html @@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds Jens Lippmann, Marek Rouchal, Martin Wilck and others --> -get_local_rows -- Get number of local rows - +get_local_cols -- Get number of local cols + @@ -20,54 +20,54 @@ original version by: Nikos Drakos, CBLU, University of Leeds - + - next - + up - previous - contents
- Next: get_local_cols Get - Up: Data structure query routines - Previous: Data structure query routines -   Next: get_global_rows Get + Up: Data structure query routines + Previous: get_local_rows Get +   Contents

-

-get_local_rows -- Get number of local rows +

+get_local_cols -- Get number of local cols

-nr = desc%get_local_rows()
+nc = desc%get_local_cols()
 

-
Type:
-
Asynchronous. -
On Entry
+
Type:
+
Asynchronous. +
desc
the communication descriptor.
@@ -87,16 +87,17 @@ Specified as: a structured data of type descdatapsb_desc_type.
Function value
-
The number of local rows, i.e. the number of - rows owned by the current process; as explained in 1, - it is equal to $\vert{\cal I}_i\vert + \vert{\cal B}_i\vert$. The returned value is - specific to the calling process. + WIDTH="118" HEIGHT="32" ALIGN="MIDDLE" BORDER="0" + SRC="img11.png" + ALT="$\vert{\cal I}_i\vert + \vert{\cal B}_i\vert +\vert{\cal H}_i\vert$">. The + returned value is specific to the calling process.
diff --git a/docs/html/node18.html b/docs/html/node18.html index 6088ff7e..a642776c 100644 --- a/docs/html/node18.html +++ b/docs/html/node18.html @@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds Jens Lippmann, Marek Rouchal, Martin Wilck and others --> -get_local_cols -- Get number of local cols - +get_global_rows -- Get number of global rows + @@ -20,44 +20,44 @@ original version by: Nikos Drakos, CBLU, University of Leeds - + - next - + up - previous - contents
- Next: get_global_rows Get - Up: Data structure query routines - Previous: get_local_rows Get -   Next: get_global_cols Get + Up: Data structure query routines + Previous: get_local_cols Get +   Contents

-

-get_local_cols -- Get number of local cols +

+get_global_rows -- Get number of global rows

-nc = desc%get_local_cols()
+nr = desc%get_global_rows()
 

@@ -87,17 +87,7 @@ Specified as: a structured data of type descdatapsb_desc_type.

Function value
-
The number of local cols, i.e. the number of - indices used by the current process, including both local and halo - indices; as explained in 1, - it is equal to -$\vert{\cal I}_i\vert + \vert{\cal B}_i\vert +\vert{\cal H}_i\vert$. The - returned value is specific to the calling process. +
The number of global rows in the mesh
diff --git a/docs/html/node19.html b/docs/html/node19.html index ad0ed183..bb56ea20 100644 --- a/docs/html/node19.html +++ b/docs/html/node19.html @@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds Jens Lippmann, Marek Rouchal, Martin Wilck and others --> -get_global_rows -- Get number of global rows - +get_global_cols -- Get number of global cols + @@ -18,56 +18,55 @@ original version by: Nikos Drakos, CBLU, University of Leeds - - + - next - + up - previous - contents
- Next: get_global_cols Get - Up: Data structure query routines - Previous: get_local_cols Get -   Next: get_context Get communication context + Up: Data structure query routines + Previous: get_global_rows Get +   Contents

-

-get_global_rows -- Get number of global rows +

+get_global_cols -- Get number of global cols

-nr = desc%get_global_rows()
+nr = desc%get_global_cols()
 

-
On Entry
-
-
Type:
Asynchronous.
+
On Entry
+
+
desc
the communication descriptor.
@@ -87,7 +86,7 @@ Specified as: a structured data of type descdatapsb_desc_type.
Function value
-
The number of global rows in the mesh +
The number of global cols in the mesh
diff --git a/docs/html/node2.html b/docs/html/node2.html index 15cf7b33..b3003ade 100644 --- a/docs/html/node2.html +++ b/docs/html/node2.html @@ -26,26 +26,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds - next - up - previous - contents
- Next: Next: General overview - Up: Up: userhtml - Previous: Previous: Contents -   Contents

@@ -71,7 +71,7 @@ passing.

The PSBLAS library version 3 is internally implemented in the Fortran 2003 [16] programming language, with reuse and/or + HREF="node107.html#metcalf">16] programming language, with reuse and/or adaptation of some existing Fortran 77 software, and a handful of C routines. @@ -81,37 +81,36 @@ mostly in the handling of requirements for evolution and adaptation of the library to new computing architectures and integration of new algorithms. For a detailed discussion of our design see [11]; other -works tackling advanced programming in Fortran 2003 include [1,17] + HREF="node107.html#Sparse03">11]; other +works discussing advanced programming in Fortran 2003 +include [1,17]; sufficient support for +Fortran 2003 is now available from many compilers, including the GNU +Fortran compiler from the Free Software Foundation (as of version 4.6).

Previous approaches have been based on mixing Fortran 95, with its support for object-based design, with other languages; these have been advocated by a number of authors, e.g. [15]. Moreover, the Fortran 95 facilities for dynamic + HREF="node107.html#machiels">15]. Moreover, the Fortran 95 facilities for dynamic memory management and interface overloading greatly enhance the usability of the PSBLAS subroutines. In this way, the library can take care of runtime memory requirements that are quite difficult or even impossible to predict at implementation or compilation time. -In the current release we rely on the availability of the so-called -allocatable extensions, specified in TR 15581. Strictly speaking they -are outside the Fortran 95 standard; however they have been included -in the Fortran 2003 language standard, and are available in -practically all Fortran 95 compilers on the market, including the GNU -Fortran compiler from the Free Software Foundation (as of version 4.2). + +

The presentation of the PSBLAS library follows the general structure of the proposal for serial Sparse BLAS [8,9], which in its turn is based on the + HREF="node107.html#sblas97">8,9], which in its turn is based on the proposal for BLAS on dense matrices [14,5,6]. + HREF="node107.html#BLAS1">14,5,6].

The applicability of sparse iterative solvers to many different areas @@ -145,26 +144,26 @@ computational fluid dynamics applications.


- next - up - previous - contents
- Next: Next: General overview - Up: Up: userhtml - Previous: Previous: Contents -   Contents diff --git a/docs/html/node20.html b/docs/html/node20.html index 16428cb3..f8312f99 100644 --- a/docs/html/node20.html +++ b/docs/html/node20.html @@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds Jens Lippmann, Marek Rouchal, Martin Wilck and others --> -get_global_cols -- Get number of global cols - +get_context--Get communication context + @@ -18,45 +18,45 @@ original version by: Nikos Drakos, CBLU, University of Leeds - - + + - next - -up +up + previous - contents
- Next: get_context Get communication context - Up: Data structure query routines - Previous: get_global_rows Get -   Next: psb_cd_get_large_threshold Get + Up: Data Structures + Previous: get_global_cols Get +   Contents

-

-get_global_cols -- Get number of global cols -

- -

+

+
+get_context--Get communication context +
+

-nr = desc%get_global_cols()
+ictxt = desc%get_context()
 

@@ -86,12 +86,32 @@ Specified as: a structured data of type descdatapsb_desc_type.

Function value
-
The number of global cols in the mesh +
The communication context.



+ +Subsections + + + +

diff --git a/docs/html/node21.html b/docs/html/node21.html index f67e2fea..42155ebc 100644 --- a/docs/html/node21.html +++ b/docs/html/node21.html @@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds Jens Lippmann, Marek Rouchal, Martin Wilck and others --> -get_context--Get communication context - +psb_cd_get_large_threshold -- Get threshold for index mapping switch + @@ -18,45 +18,46 @@ original version by: Nikos Drakos, CBLU, University of Leeds - - + + + - next - + up - previous - contents
- Next: psb_cd_get_large_threshold Get - Up: Data Structures - Previous: get_global_cols Get -   Next: psb_cd_set_large_threshold Set + Up: get_context Get communication context + Previous: get_context Get communication context +   Contents

-

-
-get_context--Get communication context -
-

+

+psb_cd_get_large_threshold -- Get threshold for + index mapping switch +

+
-ictxt = desc%get_context()
+ith = psb_cd_get_large_threshold()
 

@@ -64,54 +65,18 @@ ictxt = desc%get_context()

Type:
Asynchronous.
-
On Entry
-
-
-
desc
-
the communication descriptor. -
-Scope: local. -
-Type: required. -
-Intent: in. -
-Specified as: a structured data of type descdatapsb_desc_type. -
- - -

-

On Return
Function value
-
The communication context. +
The current value for the size threshold. + +



- -Subsections - - - -

diff --git a/docs/html/node22.html b/docs/html/node22.html index 1773ed2d..0ad007a6 100644 --- a/docs/html/node22.html +++ b/docs/html/node22.html @@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds Jens Lippmann, Marek Rouchal, Martin Wilck and others --> -psb_cd_get_large_threshold -- Get threshold for index mapping switch - +psb_cd_set_large_threshold -- Set threshold for index mapping switch + @@ -20,44 +20,44 @@ original version by: Nikos Drakos, CBLU, University of Leeds - + - next - + up - previous - contents
- Next: psb_cd_set_large_threshold Set - Up: get_context Get communication context - Previous: get_context Get communication context -   Next: get_nrows Get + Up: get_context Get communication context + Previous: psb_cd_get_large_threshold Get +   Contents

-

-psb_cd_get_large_threshold -- Get threshold for +

+psb_cd_set_large_threshold -- Set threshold for index mapping switch

-ith = psb_cd_get_large_threshold()
+call psb_cd_set_large_threshold(ith)
 

@@ -65,15 +65,24 @@ ith = psb_cd_get_large_threshold()

Type:
Asynchronous.
-
On Return
+
On Entry
-
Function value
-
The current value for the size threshold. - -

+

ith
+
the new threshold for communication descriptors. +
+Scope: global. +
+Type: required. +
+Intent: in. +
+Specified as: an integer value greater than zero.
+Note: the threshold value is only queried by the library at the time a +call to psb_cdall is executed, therefore changing the threshold +has no effect on communication descriptors that have already been initialized.



diff --git a/docs/html/node23.html b/docs/html/node23.html index d663d445..15da1733 100644 --- a/docs/html/node23.html +++ b/docs/html/node23.html @@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds Jens Lippmann, Marek Rouchal, Martin Wilck and others --> -psb_cd_set_large_threshold -- Set threshold for index mapping switch - +get_nrows -- Get number of rows in a sparse matrix + @@ -20,44 +20,44 @@ original version by: Nikos Drakos, CBLU, University of Leeds - + - next - + up - previous - contents
- Next: get_nrows Get - Up: get_context Get communication context - Previous: psb_cd_get_large_threshold Get -   Next: get_ncols Get + Up: get_context Get communication context + Previous: psb_cd_set_large_threshold Set +   Contents

-

-psb_cd_set_large_threshold -- Set threshold for - index mapping switch +

+get_nrows -- Get number of rows in a sparse matrix

+

-call psb_cd_set_large_threshold(ith)
+nr = a%get_nrows()
 

@@ -68,21 +68,28 @@ call psb_cd_set_large_threshold(ith)

On Entry
-
ith
-
the new threshold for communication descriptors. +
a
+
the sparse matrix
-Scope: global. +Scope: local
-Type: required. +Type: required
Intent: in.
-Specified as: an integer value greater than zero. +Specified as: a structured data of type spdatapsb_spmat_type. +
+ + +

+

+
On Return
+
+
+
Function value
+
The number of rows of sparse matrix a.
-Note: the threshold value is only queried by the library at the time a -call to psb_cdall is executed, therefore changing the threshold -has no effect on communication descriptors that have already been initialized.



diff --git a/docs/html/node24.html b/docs/html/node24.html index f7c660bb..91915427 100644 --- a/docs/html/node24.html +++ b/docs/html/node24.html @@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds Jens Lippmann, Marek Rouchal, Martin Wilck and others --> -get_nrows -- Get number of rows in a sparse matrix - +get_ncols -- Get number of columns in a sparse matrix + @@ -20,44 +20,44 @@ original version by: Nikos Drakos, CBLU, University of Leeds - + - next - + up - previous - contents
- Next: get_ncols Get - Up: get_context Get communication context - Previous: psb_cd_set_large_threshold Set -   Next: get_nnzeros Get + Up: get_context Get communication context + Previous: get_nrows Get +   Contents

-

-get_nrows -- Get number of rows in a sparse matrix +

+get_ncols -- Get number of columns in a sparse matrix

-nr = a%get_nrows()
+nr = a%get_ncols()
 

@@ -87,7 +87,7 @@ Specified as: a structured data of type spdatapsb_spmat_type.

Function value
-
The number of rows of sparse matrix a. +
The number of columns of sparse matrix a.
diff --git a/docs/html/node25.html b/docs/html/node25.html index 5316f32b..9ea89d12 100644 --- a/docs/html/node25.html +++ b/docs/html/node25.html @@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds Jens Lippmann, Marek Rouchal, Martin Wilck and others --> -get_ncols -- Get number of columns in a sparse matrix - +get_nnzeros -- Get number of nonzero elements in a sparse matrix + @@ -18,46 +18,46 @@ original version by: Nikos Drakos, CBLU, University of Leeds - - + - next - + up - previous - contents
- Next: get_nnzeros Get - Up: get_context Get communication context - Previous: get_nrows Get -   Next: Computational routines + Up: get_context Get communication context + Previous: get_ncols Get +   Contents

-

-get_ncols -- Get number of columns in a sparse matrix +

+get_nnzeros -- Get number of nonzero elements + in a sparse matrix

-nr = a%get_ncols()
+nr = a%get_nnzeros()
 

@@ -87,10 +87,20 @@ Specified as: a structured data of type spdatapsb_spmat_type.

Function value
-
The number of columns of sparse matrix a. +
The number of nonzero elements stored in sparse matrix a.
+

+Notes + +

    +
  1. The function value is specific to the storage format of matrix + a; some storage formats employ padding, thus the returned + value for the same matrix may be different for different storage choices. +
  2. +
+



diff --git a/docs/html/node26.html b/docs/html/node26.html index 82c9a030..7c467b4c 100644 --- a/docs/html/node26.html +++ b/docs/html/node26.html @@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds Jens Lippmann, Marek Rouchal, Martin Wilck and others --> -get_nnzeros -- Get number of nonzero elements in a sparse matrix - +Computational routines + @@ -18,90 +18,75 @@ original version by: Nikos Drakos, CBLU, University of Leeds - - + + + - next - + up - previous - contents
- Next: Computational routines - Up: get_context Get communication context - Previous: get_ncols Get -   Next: psb_geaxpby General + Up: userhtml + Previous: get_nnzeros Get +   Contents

-

-get_nnzeros -- Get number of nonzero elements - in a sparse matrix -

+

+Computational routines +

-

-nr = a%get_nnzeros()
-
- -

-

-
Type:
-
Asynchronous. -
-
On Entry
-
-
-
a
-
the sparse matrix -
-Scope: local -
-Type: required -
-Intent: in. -
-Specified as: a structured data of type spdatapsb_spmat_type. -
-
- -

-

-
On Return
-
-
-
Function value
-
The number of nonzero elements stored in sparse matrix a. -
-
- -

-Notes - -

    -
  1. The function value is specific to the storage format of matrix - a; some storage formats employ padding, thus the returned - value for the same matrix may be different for different storage choices. -
  2. -
+

+ +Subsections -

+

+

diff --git a/docs/html/node27.html b/docs/html/node27.html index 262ee489..f8c7c410 100644 --- a/docs/html/node27.html +++ b/docs/html/node27.html @@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds Jens Lippmann, Marek Rouchal, Martin Wilck and others --> -Computational routines - +psb_geaxpby -- General Dense Matrix Sum + @@ -18,76 +18,264 @@ original version by: Nikos Drakos, CBLU, University of Leeds - - - + + + - next - + up - previous - contents
- Next: psb_geaxpby General - Up: userhtml - Previous: get_nnzeros Get -   Next: psb_gedot Dot + Up: Computational routines + Previous: Computational routines +   Contents

-

-Computational routines -

+

+psb_geaxpby -- General Dense Matrix Sum +

+ +

+This subroutine is an interface to the computational kernel for +dense matrix sum: +

+
+ + +\begin{displaymath}y \leftarrow \alpha\> x+ \beta y \end{displaymath} +
+
+

+ +

+

+call psb_geaxpby(alpha, x, beta, y, desc_a, info)
+
+ +

+

+
+ + + +
Table 1: +Data types
+
+ + + + + + + + + + + + + + + + +
$x$, $y$, $\alpha$, $\beta$Subroutine
Short Precision Realpsb_geaxpby
Long Precision Realpsb_geaxpby
Short Precision Complexpsb_geaxpby
Long Precision Complexpsb_geaxpby
+
+
+

+
+ +

+

+
Type:
+
Synchronous. +
+
On Entry
+
+
+
alpha
+
the scalar $\alpha$. +
+Scope: global +
+Type: required +
+Intent: in. +
+Specified as: a number of the data type indicated in Table 1. +
+
x
+
the local portion of global dense matrix +$x$. +
+Scope: local +
+Type: required +
+Intent: in. +
+Specified as: a rank one or two array +containing numbers of type +specified in Table 1. The rank of $x$ must be the same of $y$. +
+
beta
+
the scalar $\beta$. +
+Scope: global +
+Type: required +
+Intent: in. +
+Specified as: a number of the data type indicated in Table 1. +
+
y
+
the local portion of the global dense matrix +$y$. +
+Scope: local +
+Type: required +
+Intent: inout. +
+Specified as: a rank one or two array containing numbers of the type +indicated in Table 1. The rank of $y$ must be the same of $x$. +
+
desc_a
+
contains data structures for communications. +
+Scope: local +
+Type: required +
+Intent: in. +
+Specified as: a structured data of type descdatapsb_desc_type. + +

+

+

-


- -Subsections +
+
On Return
+
+
+
y
+
the local portion of result submatrix $y$. +
+Scope: local +
+Type: required +
+Intent: inout. +
+Specified as: a rank one or two array containing numbers of the type +indicated in Table 1. +
+
info
+
Error code. +
+Scope: local +
+Type: required +
+Intent: out. +
+An integer value; 0 means no error has been detected. +
+
- - -

+

+


+ + +next + +up + +previous + +contents +
+ Next: psb_gedot Dot + Up: Computational routines + Previous: Computational routines +   Contents + diff --git a/docs/html/node28.html b/docs/html/node28.html index c4211b2c..2152c782 100644 --- a/docs/html/node28.html +++ b/docs/html/node28.html @@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds Jens Lippmann, Marek Rouchal, Martin Wilck and others --> -psb_geaxpby -- General Dense Matrix Sum - +psb_gedot -- Dot Product + @@ -20,100 +20,132 @@ original version by: Nikos Drakos, CBLU, University of Leeds - + - next - + up - previous - contents
- Next: psb_gedot Dot - Up: Computational routines - Previous: Computational routines -   Next: psb_gedots Generalized + Up: Computational routines + Previous: psb_geaxpby General +   Contents

-

-psb_geaxpby -- General Dense Matrix Sum +

+psb_gedot -- Dot Product

-This subroutine is an interface to the computational kernel for -dense matrix sum: +This function computes dot product between two vectors $x$ and +$y$. +
+If $x$ and $y$ are real vectors +it computes dot-product as:

\begin{displaymath}dot \leftarrow x^T y\end{displaymath} +
+
+

+Else if \begin{displaymath}y \leftarrow \alpha\> x+ \beta y \end{displaymath} + ALT="$x$"> and $y$ are complex vectors then it computes dot-product as: +

+
+ + +\begin{displaymath}dot \leftarrow x^H y\end{displaymath}

-

+

-call psb_geaxpby(alpha, x, beta, y, desc_a, info)
+psb_gedot(x, y, desc_a, info)
 
- -


-
+
-
Table 1: +Table 2: Data types
- + SRC="img28.png" + ALT="$y$"> + - + - + - + - +
$dot$, $x$, $y$, $\alpha$, $\beta$SubroutineFunction
Short Precision Realpsb_geaxpbypsb_gedot
Long Precision Realpsb_geaxpbypsb_gedot
Short Precision Complexpsb_geaxpbypsb_gedot
Long Precision Complexpsb_geaxpbypsb_gedot
@@ -130,25 +162,11 @@ Data types
On Entry
-
alpha
-
the scalar $\alpha$. -
-Scope: global -
-Type: required -
-Intent: in. -
-Specified as: a number of the data type indicated in Table 1. -
x
the local portion of global dense matrix $x$.
Scope: local @@ -157,50 +175,37 @@ Type: required
Intent: in.
-Specified as: a rank one or two array -containing numbers of type -specified in Table 1. The rank of 2. The rank of $x$ must be the same of $y$.
-
beta
-
the scalar $\beta$. -
-Scope: global -
-Type: required -
-Intent: in. -
-Specified as: a number of the data type indicated in Table 1. -
y
-
the local portion of the global dense matrix +
the local portion of global dense matrix $y$.
Scope: local
Type: required
-Intent: inout. +Intent: in.
-Specified as: a rank one or two array containing numbers of the type -indicated in Table 1. The rank of 2. The rank of $y$ must be the same of $x$.
desc_a
@@ -216,27 +221,21 @@ Specified as: a structured data of type descdatapsb_desc_type.

- - -

-

On Return
-
y
-
the local portion of result submatrix Function value +
is the dot product of subvectors $x$ and $y$.
-Scope: local -
-Type: required -
-Intent: inout. +Scope: global
-Specified as: a rank one or two array containing numbers of the type -indicated in Table 1. +Specified as: a number of the data type indicated in Table 2.
info
Error code. @@ -254,26 +253,26 @@ An integer value; 0 means no error has been detected.


- next - + up - previous - contents
- Next: psb_gedot Dot - Up: Computational routines - Previous: Computational routines -   Next: psb_gedots Generalized + Up: Computational routines + Previous: psb_geaxpby General +   Contents diff --git a/docs/html/node29.html b/docs/html/node29.html index 668bf2ff..970d2717 100644 --- a/docs/html/node29.html +++ b/docs/html/node29.html @@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds Jens Lippmann, Marek Rouchal, Martin Wilck and others --> -psb_gedot -- Dot Product - +psb_gedots -- Generalized Dot Product + @@ -20,132 +20,117 @@ original version by: Nikos Drakos, CBLU, University of Leeds - + - next - + up - previous - contents
- Next: psb_gedots Generalized - Up: Computational routines - Previous: psb_geaxpby General -   Next: psb_geamax Infinity-Norm + Up: Computational routines + Previous: psb_gedot Dot +   Contents

-

-psb_gedot -- Dot Product +

+psb_gedots -- Generalized Dot Product

-This function computes dot product between two vectors $x$ and -$y$. -
-If $x$ and $y$ are real vectors -it computes dot-product as: + SRC="img28.png" + ALT="$y$">:

\begin{displaymath}dot \leftarrow x^T y\end{displaymath} + WIDTH="150" HEIGHT="28" BORDER="0" + SRC="img34.png" + ALT="\begin{displaymath}res(i) \leftarrow x(:,i)^T y(:,i)\end{displaymath}">

-Else if $x$ is +used. If $x$ and $y$ are complex vectors then it computes dot-product as: -

-
- - -\begin{displaymath}dot \leftarrow x^H y\end{displaymath} -
-
-

+ SRC="img28.png" + ALT="$y$"> are of rank one, then $res$ is a scalar, else it +is a rank one array.

-psb_gedot(x, y, desc_a, info)
+call psb_gedots(res, x, y, desc_a, info)
 

-
+
-
Table 2: +Table 3: Data types
- + - + - + - + - +
$dot$, $res$, $x$, $y$FunctionSubroutine
Short Precision Realpsb_gedotpsb_gedots
Long Precision Realpsb_gedotpsb_gedots
Short Precision Complexpsb_gedotpsb_gedots
Long Precision Complexpsb_gedotpsb_gedots
@@ -166,8 +151,8 @@ Data types
the local portion of global dense matrix $x$. + SRC="img27.png" + ALT="$x$">.
Scope: local
@@ -177,19 +162,19 @@ Intent: in.
Specified as: an array of rank one or two containing numbers of type specified in -Table 2. The rank of 3. The rank of $x$ must be the same of $y$.
y
the local portion of global dense matrix $y$.
Scope: local @@ -200,12 +185,12 @@ Intent: in.
Specified as: an array of rank one or two containing numbers of type specified in -Table 2. The rank of 3. The rank of $y$ must be the same of $x$.
desc_a
@@ -218,24 +203,25 @@ Type: required Intent: in.
Specified as: a structured data of type descdatapsb_desc_type. - -

On Return
-
Function value
+
res
is the dot product of subvectors $x$ and $y$.
Scope: global
-Specified as: a number of the data type indicated in Table 2. +Intent: out. +
+Specified as: a number or a rank-one array of the data type indicated +in Table 2.
info
Error code. @@ -253,26 +239,26 @@ An integer value; 0 means no error has been detected.


- next - + up - previous - contents
- Next: psb_gedots Generalized - Up: Computational routines - Previous: psb_geaxpby General -   Next: psb_geamax Infinity-Norm + Up: Computational routines + Previous: psb_gedot Dot +   Contents diff --git a/docs/html/node3.html b/docs/html/node3.html index 5a58dc55..0e7a9c7a 100644 --- a/docs/html/node3.html +++ b/docs/html/node3.html @@ -26,26 +26,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds - next - up - previous - contents
- Next: Next: Basic Nomenclature - Up: Up: userhtml - Previous: Previous: Introduction -   Contents

@@ -71,22 +71,17 @@ influenced by the structure of the ScaLAPACK parallel library. The layered structure of the PSBLAS library is shown in figure 1; lower layers of the library indicate an encapsulation relationship with upper layers. The ongoing -discussion focuses on the Fortran 95 layer immediately below the +discussion focuses on the Fortran 2003 layer immediately below the application layer. The serial parts of the computation on each process are executed through -calls to the serial sparse BLAS subroutines. In a similar way, the -inter-process message exchanges are implemented through the Basic +calls to the serial sparse BLAS subroutines. +In a similar way, the inter-process message exchanges are encapsulated +in an applicaiton layer that has been strongly inspired by the Basic Linear Algebra Communication Subroutines (BLACS) library [7] -that guarantees a portable and efficient communication layer. The -Message Passing Interface code is encapsulated within the BLACS -layer. However, in some cases, MPI routines are directly used either -to improve efficiency or to implement communication patterns for which -the BLACS package doesn't provide any method. - -

-In any case we provide wrappers around the BLACS routines so that the -user does not need to delve into their details (see Sec. 7). + HREF="node107.html#BLACS">7]. +Usually there is no need to deal directly with MPI; however, in some +cases, MPI routines are used directly to improve efficiency. For +further details on our communication layer see Sec. 7.

@@ -135,13 +130,14 @@ is equivalent to a partition of the discretization mesh into sub-domainsCYCLIC(N) and BLOCK, +This choice is consistent with simple data distributions +such as CYCLIC(N) and BLOCK, as well as completely arbitrary assignments of -equation indices to processes. In particular it is consistent with the +equation indices to processes. +In particular it is consistent with the usage of graph partitioning tools commonly available in the literature, e.g. METIS [13]. + HREF="node107.html#METIS">13]. Dense vectors conform to sparse matrices, that is, the entries of a vector follow the same distribution of the matrix rows. @@ -161,38 +157,38 @@ bottleneck would make this option unattractive in most cases. Subsections


- next - up - previous - contents
- Next: Next: Basic Nomenclature - Up: Up: userhtml - Previous: Previous: Introduction -   Contents diff --git a/docs/html/node30.html b/docs/html/node30.html index 979cd3bd..f69ad8e2 100644 --- a/docs/html/node30.html +++ b/docs/html/node30.html @@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds Jens Lippmann, Marek Rouchal, Martin Wilck and others --> -psb_gedots -- Generalized Dot Product - +psb_geamax -- Infinity-Norm of Vector + @@ -20,117 +20,127 @@ original version by: Nikos Drakos, CBLU, University of Leeds - + - next - + up - previous - contents
- Next: psb_geamax Infinity-Norm - Up: Computational routines - Previous: psb_gedot Dot -   Next: psb_geamaxs Generalized + Up: Computational routines + Previous: psb_gedots Generalized +   Contents

-

-psb_gedots -- Generalized Dot Product +

+psb_geamax -- Infinity-Norm of Vector

-This subroutine computes a series of dot products among the columns of -two dense matrices $x$. +
+If $x$ and $y$: + SRC="img27.png" + ALT="$x$"> is a real vector +it computes infinity norm as:

\begin{displaymath}res(i) \leftarrow x(:,i)^T y(:,i)\end{displaymath} + WIDTH="118" HEIGHT="36" BORDER="0" + SRC="img36.png" + ALT="\begin{displaymath}amax \leftarrow \max_i \vert x_i\vert\end{displaymath}">

-If the matrices are complex, then the -usual convention applies, i.e. the conjugate transpose of $x$ is -used. If $x$ and $y$ are of rank one, then $res$ is a scalar, else it -is a rank one array. + SRC="img27.png" + ALT="$x$"> is a complex vector then it computes infinity-norm as: +

+
+ + +\begin{displaymath}amax \leftarrow \max_i {(\vert re(x_i)\vert + \vert im(x_i)\vert)}\end{displaymath} +
+
+

-call psb_gedots(res, x, y, desc_a, info)
+psb_geamax(x, desc_a, info)
 
+ +


-
+
-
Table 3: +Table 4: Data types
+ - + SRC="img27.png" + ALT="$x$"> + - + + - + + - - + + + - - + + +
$res$, $amax$$x$, $y$SubroutineFunction
Short Precision Realpsb_gedotsShort Precision Realpsb_geamax
Long Precision Realpsb_gedotsLong Precision Realpsb_geamax
Short Precision Complexpsb_gedots
Short Precision RealShort Precision Complexpsb_geamax
Long Precision Complexpsb_gedots
Long Precision RealLong Precision Complexpsb_geamax
@@ -151,8 +161,9 @@ Data types
the local portion of global dense matrix $x$. +
Scope: local
@@ -160,38 +171,9 @@ Type: required
Intent: in.
-Specified as: an array of rank one or two -containing numbers of type specified in -Table 3. The rank of $x$ must be the same of $y$. -
-
y
-
the local portion of global dense matrix -$y$. -
-Scope: local -
-Type: required -
-Intent: in. -
-Specified as: an array of rank one or two +Specified as: a rank one or two array containing numbers of type specified in -Table 3. The rank of $y$ must be the same of $x$. +Table 4.
desc_a
contains data structures for communications. @@ -203,25 +185,21 @@ Type: required Intent: in.
Specified as: a structured data of type descdatapsb_desc_type. + +

On Return
-
res
-
is the dot product of subvectors Function value +
is the infinity norm of subvector $x$ and $y$. + SRC="img27.png" + ALT="$x$">.
Scope: global
-Intent: out. -
-Specified as: a number or a rank-one array of the data type indicated -in Table 2. +Specified as: a long precision real number.
info
Error code. @@ -239,26 +217,26 @@ An integer value; 0 means no error has been detected.


- next - + up - previous - contents
- Next: psb_geamax Infinity-Norm - Up: Computational routines - Previous: psb_gedot Dot -   Next: psb_geamaxs Generalized + Up: Computational routines + Previous: psb_gedots Generalized +   Contents diff --git a/docs/html/node31.html b/docs/html/node31.html index 6ac743e5..900ffaec 100644 --- a/docs/html/node31.html +++ b/docs/html/node31.html @@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds Jens Lippmann, Marek Rouchal, Martin Wilck and others --> -psb_geamax -- Infinity-Norm of Vector - +psb_geamaxs -- Generalized Infinity Norm + @@ -20,127 +20,102 @@ original version by: Nikos Drakos, CBLU, University of Leeds - + - next - + up - previous - contents
- Next: psb_geamaxs Generalized - Up: Computational routines - Previous: psb_gedots Generalized -   Next: psb_geasum 1-Norm + Up: Computational routines + Previous: psb_geamax Infinity-Norm +   Contents

-

-psb_geamax -- Infinity-Norm of Vector +

+psb_geamaxs -- Generalized Infinity Norm

-This function computes - the infinity-norm of a vector $x$. -
-If $x$ is a real vector -it computes infinity norm as: -

-
- - -\begin{displaymath}amax \leftarrow \max_i \vert x_i\vert\end{displaymath} -
-
-

-else if $x$ is a complex vector then it computes infinity-norm as: + SRC="img27.png" + ALT="$x$">:

\begin{displaymath}amax \leftarrow \max_i {(\vert re(x_i)\vert + \vert im(x_i)\vert)}\end{displaymath} + WIDTH="148" HEIGHT="36" BORDER="0" + SRC="img39.png" + ALT="\begin{displaymath}res(i) \leftarrow \max_k \vert x(k,i)\vert \end{displaymath}">

-psb_geamax(x, desc_a, info)
+call psb_geamaxs(res, x, desc_a, info)
 


-
+
-
Table 4: +Table 5: Data types
+ WIDTH="26" HEIGHT="14" ALIGN="BOTTOM" BORDER="0" + SRC="img35.png" + ALT="$res$"> - + - + - + - + - +
$amax$ $x$FunctionSubroutine
Short Precision Real Short Precision Realpsb_geamaxpsb_geamaxs
Long Precision Real Long Precision Realpsb_geamaxpsb_geamaxs
Short Precision Real Short Precision Complexpsb_geamaxpsb_geamaxs
Long Precision Real Long Precision Complexpsb_geamaxpsb_geamaxs
@@ -161,9 +136,8 @@ Data types
the local portion of global dense matrix $x$. -
Scope: local
@@ -171,9 +145,9 @@ Type: required
Intent: in.
-Specified as: a rank one or two array +Specified as: a rank one or two array containing numbers of type specified in -Table 4. +Table 5.
desc_a
contains data structures for communications. @@ -185,21 +159,21 @@ Type: required Intent: in.
Specified as: a structured data of type descdatapsb_desc_type. - -

On Return
-
Function value
-
is the infinity norm of subvector res +
is the infinity norm of the columns of $x$.
Scope: global
-Specified as: a long precision real number. +Intent: out. +
+Specified as: a number or a rank-one array of long precision real numbers.
info
Error code. @@ -217,26 +191,26 @@ An integer value; 0 means no error has been detected.


- next - + up - previous - contents
- Next: psb_geamaxs Generalized - Up: Computational routines - Previous: psb_gedots Generalized -   Next: psb_geasum 1-Norm + Up: Computational routines + Previous: psb_geamax Infinity-Norm +   Contents diff --git a/docs/html/node32.html b/docs/html/node32.html index 93d76a3b..dfa141d0 100644 --- a/docs/html/node32.html +++ b/docs/html/node32.html @@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds Jens Lippmann, Marek Rouchal, Martin Wilck and others --> -psb_geamaxs -- Generalized Infinity Norm - +psb_geasum -- 1-Norm of Vector + @@ -20,102 +20,126 @@ original version by: Nikos Drakos, CBLU, University of Leeds - + - next - + up - previous - contents
- Next: psb_geasum 1-Norm - Up: Computational routines - Previous: psb_geamax Infinity-Norm -   Next: psb_geasums Generalized + Up: Computational routines + Previous: psb_geamaxs Generalized +   Contents

-

-psb_geamaxs -- Generalized Infinity Norm +

+psb_geasum -- 1-Norm of Vector

-This subroutine computes a series of infinity norms on the columns of -a dense matrix $x$. +
+If $x$: + SRC="img27.png" + ALT="$x$"> is a real vector +it computes 1-norm as:

\begin{displaymath}res(i) \leftarrow \max_k \vert x(k,i)\vert \end{displaymath} + ALT="\begin{displaymath}asum \leftarrow \Vert x_i\Vert\end{displaymath}"> +
+
+

+else if $x$ is a vector then it computes 1-norm as: +

+
+ + +\begin{displaymath}asum \leftarrow \Vert re(x)\Vert _1 + \Vert im(x)\Vert _1\end{displaymath}

-call psb_geamaxs(res, x, desc_a, info)
+psb_geasum(x, desc_a, info)
 


-
+
-
Table 5: +Table 6: Data types
+ WIDTH="43" HEIGHT="14" ALIGN="BOTTOM" BORDER="0" + SRC="img42.png" + ALT="$asum$"> - + - + - + - + - +
$res$ $x$SubroutineFunction
Short Precision Real Short Precision Realpsb_geamaxspsb_geasum
Long Precision Real Long Precision Realpsb_geamaxspsb_geasum
Short Precision Real Short Precision Complexpsb_geamaxspsb_geasum
Long Precision Real Long Precision Complexpsb_geamaxspsb_geasum
@@ -136,8 +160,9 @@ Data types
the local portion of global dense matrix $x$. +
Scope: local
@@ -147,7 +172,7 @@ Intent: in.
Specified as: a rank one or two array containing numbers of type specified in -Table 5. +Table 6.
desc_a
contains data structures for communications. @@ -159,21 +184,21 @@ Type: required Intent: in.
Specified as: a structured data of type descdatapsb_desc_type. + +

On Return
-
res
-
is the infinity norm of the columns of Function value +
is the 1-norm of vector $x$.
Scope: global
-Intent: out. -
-Specified as: a number or a rank-one array of long precision real numbers. +Specified as: a long precision real number.
info
Error code. @@ -191,26 +216,26 @@ An integer value; 0 means no error has been detected.


- next - + up - previous - contents
- Next: psb_geasum 1-Norm - Up: Computational routines - Previous: psb_geamax Infinity-Norm -   Next: psb_geasums Generalized + Up: Computational routines + Previous: psb_geamaxs Generalized +   Contents diff --git a/docs/html/node33.html b/docs/html/node33.html index acc2859a..dab9733c 100644 --- a/docs/html/node33.html +++ b/docs/html/node33.html @@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds Jens Lippmann, Marek Rouchal, Martin Wilck and others --> -psb_geasum -- 1-Norm of Vector - +psb_geasums -- Generalized 1-Norm of Vector + @@ -20,126 +20,146 @@ original version by: Nikos Drakos, CBLU, University of Leeds - + - next - + up - previous - contents
- Next: psb_geasums Generalized - Up: Computational routines - Previous: psb_geamaxs Generalized -   Next: psb_genrm2 2-Norm + Up: Computational routines + Previous: psb_geasum 1-Norm +   Contents

-

-psb_geasum -- 1-Norm of Vector +

+psb_geasums -- Generalized 1-Norm of Vector

+This subroutine computes a series of 1-norms on the columns of +a dense matrix $x$: +

+
+ + +\begin{displaymath}res(i) \leftarrow \max_k \vert x(k,i)\vert \end{displaymath} +
+
+

This function computes the 1-norm of a vector $x$.
If $x$ is a real vector + SRC="img27.png" + ALT="$x$"> is a real vector it computes 1-norm as:

\begin{displaymath}asum \leftarrow \Vert x_i\Vert\end{displaymath} + WIDTH="94" HEIGHT="28" BORDER="0" + SRC="img43.png" + ALT="\begin{displaymath}res(i) \leftarrow \Vert x_i\Vert\end{displaymath}">

else if $x$ is a vector then it computes 1-norm as: + SRC="img27.png" + ALT="$x$"> is a complex vector then it computes 1-norm as:

\begin{displaymath}asum \leftarrow \Vert re(x)\Vert _1 + \Vert im(x)\Vert _1\end{displaymath} + WIDTH="207" HEIGHT="28" BORDER="0" + SRC="img44.png" + ALT="\begin{displaymath}res(i) \leftarrow \Vert re(x)\Vert _1 + \Vert im(x)\Vert _1\end{displaymath}">

-psb_geasum(x, desc_a, info)
+call psb_geasums(res, x, desc_a, info)
 


-
+
-
Table 6: +Table 7: Data types
+ WIDTH="26" HEIGHT="14" ALIGN="BOTTOM" BORDER="0" + SRC="img35.png" + ALT="$res$"> - + - + - + - + - +
$asum$ $x$FunctionSubroutine
Short Precision Real Short Precision Realpsb_geasumpsb_geasums
Long Precision Real Long Precision Realpsb_geasumpsb_geasums
Short Precision Real Short Precision Complexpsb_geasumpsb_geasums
Long Precision Real Long Precision Complexpsb_geasumpsb_geasums
@@ -160,7 +180,7 @@ Data types
the local portion of global dense matrix $x$.
@@ -172,7 +192,7 @@ Intent: in.
Specified as: a rank one or two array containing numbers of type specified in -Table 6. +Table 7.
desc_a
contains data structures for communications. @@ -190,14 +210,17 @@ Specified as: a structured data of type descdatapsb_desc_type.
On Return
-
Function value
-
is the 1-norm of vector res +
contains the 1-norm of (the columns of) $x$.
Scope: global
+Intent: out. +
+Short as: a long precision real number. Specified as: a long precision real number.
info
@@ -216,26 +239,26 @@ An integer value; 0 means no error has been detected.


- next - + up - previous - contents
- Next: psb_geasums Generalized - Up: Computational routines - Previous: psb_geamaxs Generalized -   Next: psb_genrm2 2-Norm + Up: Computational routines + Previous: psb_geasum 1-Norm +   Contents diff --git a/docs/html/node34.html b/docs/html/node34.html index 3ac45e78..29ca2461 100644 --- a/docs/html/node34.html +++ b/docs/html/node34.html @@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds Jens Lippmann, Marek Rouchal, Martin Wilck and others --> -psb_geasums -- Generalized 1-Norm of Vector - +psb_genrm2 -- 2-Norm of Vector + @@ -20,146 +20,121 @@ original version by: Nikos Drakos, CBLU, University of Leeds - + - next - + up - previous - contents
- Next: psb_genrm2 2-Norm - Up: Computational routines - Previous: psb_geasum 1-Norm -   Next: psb_genrm2s Generalized + Up: Computational routines + Previous: psb_geasums Generalized +   Contents

-

-psb_geasums -- Generalized 1-Norm of Vector +

+psb_genrm2 -- 2-Norm of Vector

-This subroutine computes a series of 1-norms on the columns of -a dense matrix $x$: -

-
- - -\begin{displaymath}res(i) \leftarrow \max_k \vert x(k,i)\vert \end{displaymath} -
-
-

-This function computes the 1-norm of a vector $x$.
If $x$ is a real vector -it computes 1-norm as: + SRC="img27.png" + ALT="$x$"> is a double precision real vector +it computes 2-norm as:

\begin{displaymath}res(i) \leftarrow \Vert x_i\Vert\end{displaymath} + WIDTH="106" HEIGHT="24" BORDER="0" + SRC="img45.png" + ALT="\begin{displaymath}nrm2 \leftarrow \sqrt{x^T x}\end{displaymath}">

else if $x$ is a complex vector then it computes 1-norm as: + SRC="img27.png" + ALT="$x$"> is double precision complex vector then it computes 2-norm as:

\begin{displaymath}res(i) \leftarrow \Vert re(x)\Vert _1 + \Vert im(x)\Vert _1\end{displaymath} + WIDTH="108" HEIGHT="24" BORDER="0" + SRC="img46.png" + ALT="\begin{displaymath}nrm2 \leftarrow \sqrt{x^H x}\end{displaymath}">

-

-

-call psb_geasums(res, x, desc_a, info)
-
-


-
+
-
Table 7: +Table 8: Data types
+ WIDTH="43" HEIGHT="14" ALIGN="BOTTOM" BORDER="0" + SRC="img47.png" + ALT="$nrm2$"> - + - + - + - + - +
$res$ $x$SubroutineFunction
Short Precision Real Short Precision Realpsb_geasumspsb_genrm2
Long Precision Real Long Precision Realpsb_geasumspsb_genrm2
Short Precision Real Short Precision Complexpsb_geasumspsb_genrm2
Long Precision Real Long Precision Complexpsb_geasumspsb_genrm2
@@ -168,6 +143,11 @@ Data types


+

+

+psb_genrm2(x, desc_a, info)
+
+

Type:
@@ -180,9 +160,8 @@ Data types
the local portion of global dense matrix $x$. - + SRC="img27.png" + ALT="$x$">.
Scope: local
@@ -190,9 +169,9 @@ Type: required
Intent: in.
-Specified as: a rank one or two array +Specified as: a rank one or two array containing numbers of type specified in -Table 7. +Table 8.
desc_a
contains data structures for communications. @@ -210,18 +189,17 @@ Specified as: a structured data of type descdatapsb_desc_type.
On Return
-
res
-
contains the 1-norm of (the columns of) Function Value +
is the 2-norm of subvector $x$.
Scope: global
-Intent: out. +Type: required
-Short as: a long precision real number. -Specified as: a long precision real number. +Specified as: a long precision real number.
info
Error code. @@ -239,26 +217,26 @@ An integer value; 0 means no error has been detected.


- next - + up - previous - contents
- Next: psb_genrm2 2-Norm - Up: Computational routines - Previous: psb_geasum 1-Norm -   Next: psb_genrm2s Generalized + Up: Computational routines + Previous: psb_geasums Generalized +   Contents diff --git a/docs/html/node35.html b/docs/html/node35.html index a13f9c78..07de357b 100644 --- a/docs/html/node35.html +++ b/docs/html/node35.html @@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds Jens Lippmann, Marek Rouchal, Martin Wilck and others --> -psb_genrm2 -- 2-Norm of Vector - +psb_genrm2s -- Generalized 2-Norm of Vector + @@ -20,121 +20,102 @@ original version by: Nikos Drakos, CBLU, University of Leeds - + - next - + up - previous - contents
- Next: psb_genrm2s Generalized - Up: Computational routines - Previous: psb_geasums Generalized -   Next: psb_spnrmi Infinity + Up: Computational routines + Previous: psb_genrm2 2-Norm +   Contents

-

-psb_genrm2 -- 2-Norm of Vector +

+psb_genrm2s -- Generalized 2-Norm of Vector

-This function computes the 2-norm of a vector $x$. -
-If $x$ is a double precision real vector -it computes 2-norm as: + SRC="img27.png" + ALT="$x$">:

\begin{displaymath}nrm2 \leftarrow \sqrt{x^T x}\end{displaymath} + WIDTH="126" HEIGHT="28" BORDER="0" + SRC="img48.png" + ALT="\begin{displaymath}res(i) \leftarrow \Vert x(:,i)\Vert _2 \end{displaymath}">

-else if $x$ is double precision complex vector then it computes 2-norm as: -

-
- -\begin{displaymath}nrm2 \leftarrow \sqrt{x^H x}\end{displaymath} -
-
-

+

+

+call psb_genrm2s(res, x, desc_a, info)
+


-
+
-
Table 8: +Table 9: Data types
+ WIDTH="26" HEIGHT="14" ALIGN="BOTTOM" BORDER="0" + SRC="img35.png" + ALT="$res$"> - + - + - + - + - +
$nrm2$ $x$FunctionSubroutine
Short Precision Real Short Precision Realpsb_genrm2psb_genrm2s
Long Precision Real Long Precision Realpsb_genrm2psb_genrm2s
Short Precision Real Short Precision Complexpsb_genrm2psb_genrm2s
Long Precision Real Long Precision Complexpsb_genrm2psb_genrm2s
@@ -143,11 +124,6 @@ Data types


-

-

-psb_genrm2(x, desc_a, info)
-
-

Type:
@@ -160,8 +136,9 @@ psb_genrm2(x, desc_a, info)
the local portion of global dense matrix $x$. + SRC="img27.png" + ALT="$x$">. +
Scope: local
@@ -169,9 +146,9 @@ Type: required
Intent: in.
-Specified as: a rank one or two array +Specified as: a rank one or two array containing numbers of type specified in -Table 8. +Table 9.
desc_a
contains data structures for communications. @@ -189,17 +166,17 @@ Specified as: a structured data of type descdatapsb_desc_type.
On Return
-
Function Value
-
is the 2-norm of subvector res +
contains the 1-norm of (the columns of) $x$.
Scope: global
-Type: required +Intent: out.
-Specified as: a long precision real number. +Specified as: a long precision real number.
info
Error code. @@ -217,26 +194,26 @@ An integer value; 0 means no error has been detected.


- next - + up - previous - contents
- Next: psb_genrm2s Generalized - Up: Computational routines - Previous: psb_geasums Generalized -   Next: psb_spnrmi Infinity + Up: Computational routines + Previous: psb_genrm2 2-Norm +   Contents diff --git a/docs/html/node36.html b/docs/html/node36.html index 8f060a67..540a458c 100644 --- a/docs/html/node36.html +++ b/docs/html/node36.html @@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds Jens Lippmann, Marek Rouchal, Martin Wilck and others --> -psb_genrm2s -- Generalized 2-Norm of Vector - +psb_spnrmi -- Infinity Norm of Sparse Matrix + @@ -20,102 +20,102 @@ original version by: Nikos Drakos, CBLU, University of Leeds - + - next - + up - previous - contents
- Next: psb_spnrmi Infinity - Up: Computational routines - Previous: psb_genrm2 2-Norm -   Next: psb_spmm Sparse + Up: Computational routines + Previous: psb_genrm2s Generalized +   Contents

-

-psb_genrm2s -- Generalized 2-Norm of Vector +

+psb_spnrmi -- Infinity Norm of Sparse Matrix

-This subroutine computes a series of 2-norms on the columns of -a dense matrix $x$: +This function computes the infinity-norm of a matrix $A$: +
+


\begin{displaymath}res(i) \leftarrow \Vert x(:,i)\Vert _2 \end{displaymath} + ALT="\begin{displaymath}nrmi \leftarrow \Vert A\Vert _\infty \end{displaymath}">

- -

-

-call psb_genrm2s(res, x, desc_a, info)
-
+where: +
+
$A$
+
represents the global matrix $A$ +
+


-
+
- + +
Table 9: +Table 10: Data types
- - + WIDTH="16" HEIGHT="14" ALIGN="BOTTOM" BORDER="0" + SRC="img1.png" + ALT="$A$"> + - - + - - + - - - + + - - - + +
$res$$x$SubroutineFunction
Short Precision RealShort Precision Realpsb_genrm2spsb_spnrmi
Long Precision RealLong Precision Realpsb_genrm2spsb_spnrmi
Short Precision RealShort Precision Complexpsb_genrm2s
Short Precision Complexpsb_spnrmi
Long Precision RealLong Precision Complexpsb_genrm2s
Long Precision Complexpsb_spnrmi
@@ -124,6 +124,11 @@ Data types


+

+

+psb_spnrmi(A, desc_a, info)
+
+

Type:
@@ -132,23 +137,20 @@ Data types
On Entry
-
x
-
the local portion of global dense matrix +
a
+
the local portion of the global sparse matrix $x$. - + WIDTH="16" HEIGHT="14" ALIGN="BOTTOM" BORDER="0" + SRC="img1.png" + ALT="$A$">.
Scope: local
-Type: required +Type: required
Intent: in.
-Specified as: a rank one or two array -containing numbers of type specified in -Table 9. +Specified as: a structured data of type spdatapsb_spmat_type.
desc_a
contains data structures for communications. @@ -160,23 +162,19 @@ Type: required Intent: in.
Specified as: a structured data of type descdatapsb_desc_type. - -

On Return
-
res
-
contains the 1-norm of (the columns of) $x$. +
Function value
+
is the infinity-norm of sparse submatrix $A$.
Scope: global
-Intent: out. -
-Specified as: a long precision real number. +Specified as: a long precision real number.
info
Error code. @@ -194,26 +192,26 @@ An integer value; 0 means no error has been detected.


- next - + up - previous - contents
- Next: psb_spnrmi Infinity - Up: Computational routines - Previous: psb_genrm2 2-Norm -   Next: psb_spmm Sparse + Up: Computational routines + Previous: psb_genrm2s Generalized +   Contents diff --git a/docs/html/node37.html b/docs/html/node37.html index 170572dd..2c436ced 100644 --- a/docs/html/node37.html +++ b/docs/html/node37.html @@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds Jens Lippmann, Marek Rouchal, Martin Wilck and others --> -psb_spnrmi -- Infinity Norm of Sparse Matrix - +psb_spmm -- Sparse Matrix by Dense Matrix Product + @@ -20,81 +20,146 @@ original version by: Nikos Drakos, CBLU, University of Leeds - + - next - + up - previous - contents
- Next: psb_spmm Sparse - Up: Computational routines - Previous: psb_genrm2s Generalized -   Next: psb_spsm Triangular + Up: Computational routines + Previous: psb_spnrmi Infinity +   Contents

-

-psb_spnrmi -- Infinity Norm of Sparse Matrix +

+psb_spmm -- Sparse Matrix by Dense Matrix Product

-This function computes the infinity-norm of a matrix $A$: -
+This subroutine computes the Sparse Matrix by Dense Matrix Product: +

-

-
+
+
+ - - +
\begin{displaymath}nrmi \leftarrow \Vert A\Vert _\infty \end{displaymath} - -
-

+ ALT="\begin{displaymath} +y \leftarrow \alpha P_r A P_c x + \beta y +\end{displaymath}">
+(1)
+

+
+
+ + + + + +
\begin{displaymath}
+y \leftarrow \alpha P_r A^T P_c x + \beta y
+\end{displaymath} +(2)
+

+
+
+ + + + + +
\begin{displaymath}
+y \leftarrow \alpha P_r A^H P_c x + \beta y
+\end{displaymath} +(3)
+

+ +

where:

+
$x$
+
is the global dense submatrix $x_{:, :}$ +
+
$y$
+
is the global dense submatrix $y_{:, :}$ +
$A$
-
represents the global matrix is the global sparse submatrix $A$
+
$P_r, P_c$
+
are the permutation matrices. +


-
+
- - + ALT="$A$">, $x$, $y$, $\alpha$, $\beta$ + - + - + - + - +
Table 10: +Table 11: Data types
@@ -102,20 +167,32 @@ Data types
$A$FunctionSubroutine
Short Precision Realpsb_spnrmipsb_spmm
Long Precision Realpsb_spnrmipsb_spmm
Short Precision Complexpsb_spnrmipsb_spmm
Long Precision Complexpsb_spnrmipsb_spmm
@@ -126,8 +203,10 @@ Data types

-psb_spnrmi(A, desc_a, info)
-
+call psb_spmm(alpha, a, x, beta, y, desc_a, info) +call psb_spmm(alpha, a, x, beta, y,desc_a, info, & + & trans, work) +

@@ -137,8 +216,23 @@ psb_spnrmi(A, desc_a, info)
On Entry
+
alpha
+
the scalar $\alpha$. +
+Scope: global +
+Type: required +
+Intent: in. +
+Specified as: a number of the data type indicated in +Table 11. +
a
-
the local portion of the global sparse matrix +
the local portion of the sparse matrix in.
Specified as: a structured data of type spdatapsb_spmat_type.
+
x
+
the local portion of global dense matrix +$x$. + +
+Scope: local +
+Type: required +
+Intent: in. +
+Specified as: a rank one or two array +containing numbers of type specified in +Table 11. The rank of $x$ must be the same of $y$. +
+
beta
+
the scalar $\beta$. +
+Scope: global +
+Type: required +
+Intent: in. +
+Specified as: a number of the data type indicated in Table 11. +
+
y
+
the local portion of global dense matrix +$y$. + +
+Scope: local +
+Type: required +
+Intent: inout. +
+Specified as: a rank one or two array +containing numbers of type specified in +Table 11. The rank of $y$ must be the same of $x$. +
desc_a
contains data structures for communications.
@@ -163,18 +319,74 @@ Intent: in.
Specified as: a structured data of type descdatapsb_desc_type.
+
trans
+
indicate what kind of operation to perform. +
+
trans = N
+
the operation is specified by equation 1 +
+
trans = T
+
the operation is specified by equation +2 +
+
trans = C
+
the operation is specified by equation +3 +
+
+Scope: global +
+Type: optional +
+Intent: in. +
+Default: $trans = N$ +
+Specified as: a character variable. + +

+

+
work
+
work array. +
+Scope: local +
+Type: optional +
+Intent: inout. +
+Specified as: a rank one array of the same type of $x$ and $y$ with +the TARGET attribute. + +

+

On Return
-
Function value
-
is the infinity-norm of sparse submatrix $A$. +
y
+
the local portion of result submatrix $y$.
-Scope: global +Scope: local +
+Type: required +
+Intent: inout.
-Specified as: a long precision real number. +Specified as: an array of rank one or two +containing numbers of type specified in +Table 11.
info
Error code. @@ -192,26 +404,26 @@ An integer value; 0 means no error has been detected.


- next - + up - previous - contents
- Next: psb_spmm Sparse - Up: Computational routines - Previous: psb_genrm2s Generalized -   Next: psb_spsm Triangular + Up: Computational routines + Previous: psb_spnrmi Infinity +   Contents diff --git a/docs/html/node38.html b/docs/html/node38.html index e5499645..5acca937 100644 --- a/docs/html/node38.html +++ b/docs/html/node38.html @@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds Jens Lippmann, Marek Rouchal, Martin Wilck and others --> -psb_spmm -- Sparse Matrix by Dense Matrix Product - +psb_spsm -- Triangular System Solve + @@ -18,181 +18,164 @@ original version by: Nikos Drakos, CBLU, University of Leeds - - + - next - + up - previous - contents
- Next: psb_spsm Triangular - Up: Computational routines - Previous: psb_spnrmi Infinity -   Next: Communication routines + Up: Computational routines + Previous: psb_spmm Sparse +   Contents

-

-psb_spmm -- Sparse Matrix by Dense Matrix Product +

+psb_spsm -- Triangular System Solve

-This subroutine computes the Sparse Matrix by Dense Matrix Product: +This subroutine computes the Triangular System Solve:

-
-

- - - - - -
\begin{displaymath}
-y \leftarrow \alpha P_r A P_c x + \beta y
-\end{displaymath} -(1)
-

-
-
- - - - - -
\begin{displaymath}
-y \leftarrow \alpha P_r A^T P_c x + \beta y
-\end{displaymath} -(2)
-

-
-
- +

+
- - - -
\begin{displaymath}
-y \leftarrow \alpha P_r A^H P_c x + \beta y
-\end{displaymath} -(3)
-

+\begin{eqnarray*}
+y &\leftarrow& \alpha P_r T^{-1} P_c x + \beta y\\
+y &\leftar...
+...\beta y\\
+y &\leftarrow& \alpha P_r T^{-H} P_c D x + \beta y\\
+\end{eqnarray*}
+

where:

$x$
is the global dense submatrix $x_{:, :}$
$y$
is the global dense submatrix $y_{:, :}$
$A$
-
is the global sparse submatrix $T$ +
is the global sparse block triangular submatrix $A$ + SRC="img58.png" + ALT="$T$"> +
+
$D$
+
is the scaling diagonal matrix.
$P_r, P_c$
are the permutation matrices.
+

+

+call psb_spsm(alpha, t, x, beta, y, desc_a, info)
+call psb_spsm(alpha, t, x, beta, y, desc_a, info,&
+             & trans, unit, choice, diag, work)
+
+


-
+
-
Table 11: +Table 12: Data types
- + - + - + - +
$A$, $T$, $x$, $y$, $D$, $\alpha$, $\beta$ Subroutine
Short Precision Realpsb_spmmpsb_spsm
Long Precision Realpsb_spmmpsb_spsm
Short Precision Complexpsb_spmmpsb_spsm
Long Precision Complexpsb_spmmpsb_spsm
@@ -201,13 +184,6 @@ Data types


-

-

-call psb_spmm(alpha, a, x, beta, y, desc_a, info)
-call psb_spmm(alpha, a, x, beta, y,desc_a, info, &
-             & trans, work)
-
-

Type:
@@ -219,7 +195,7 @@ call psb_spmm(alpha, a, x, beta, y,desc_a, info, &
alpha
the scalar $\alpha$.
Scope: global @@ -229,14 +205,14 @@ Type: required Intent: in.
Specified as: a number of the data type indicated in -Table 11. +Table 12.
-
a
-
the local portion of the sparse matrix +
t
+
the global portion of the sparse matrix $A$. + SRC="img58.png" + ALT="$T$">.
Scope: local
@@ -244,13 +220,14 @@ Type: required
Intent: in.
-Specified as: a structured data of type spdatapsb_spmat_type. +Specified as: a structured data type specified in +§ 3.
x
the local portion of global dense matrix $x$.
@@ -260,20 +237,20 @@ Type: required
Intent: in.
-Specified as: a rank one or two array +Specified as: a rank one or two array containing numbers of type specified in -Table 11. The rank of 12. The rank of $x$ must be the same of $y$.
beta
the scalar $\beta$.
Scope: global @@ -282,13 +259,13 @@ Type: required
Intent: in.
-Specified as: a number of the data type indicated in Table 11. +Specified as: a number of the data type indicated in Table 12.
y
the local portion of global dense matrix $y$.
@@ -300,12 +277,12 @@ Intent: inout.
Specified as: a rank one or two array containing numbers of type specified in -Table 11. The rank of 12. The rank of $y$ must be the same of $x$.
desc_a
@@ -320,18 +297,16 @@ Intent: in. Specified as: a structured data of type descdatapsb_desc_type.
trans
-
indicate what kind of operation to perform. +
specify with unitd the operation to perform.
-
trans = N
-
the operation is specified by equation 1 +
trans = 'N'
+
the operation is with no transposed matrix
-
trans = T
-
the operation is specified by equation -2 +
trans = 'T'
+
the operation is with transposed matrix.
-
trans = C
-
the operation is specified by equation -3 +
trans = 'C'
+
the operation is with conjugate transposed matrix.
Scope: global @@ -342,15 +317,86 @@ Intent: in.
Default: $trans = N$
Specified as: a character variable. - -

+

+
unitd
+
specify with trans the operation to perform. +
+
unitd = 'U'
+
the operation is with no scaling +
+
unitd = 'L'
+
the operation is with left scaling +
+
unitd = 'R'
+
the operation is with right scaling. +
+
+Scope: global +
+Type: optional +
+Intent: in. +
+Default: $unitd = U$ +
+Specified as: a character variable. +
+
choice
+
specifies the update of overlap elements to be performed + on exit: +
+
+
psb_none_ +
+
+
psb_sum_ +
+
+
psb_avg_ +
+
+
psb_square_root_ +
+
+Scope: global +
+Type: optional +
+Intent: in. +
+Default: psb_avg_ +
+Specified as: an integer variable. +
+
diag
+
the diagonal scaling matrix. +
+Scope: local +
+Type: optional +
+Intent: in. +
+Default: +$diag(1) = 1 (no scaling)$ +
+Specified as: a rank one array containing numbers of the type +indicated in Table 12.
work
-
work array. +
a work array.
Scope: local
@@ -360,12 +406,9 @@ Intent: inout.
Specified as: a rank one array of the same type of $x$ and $y$ with -the TARGET attribute. + SRC="img27.png" + ALT="$x$"> with the +TARGET attribute.

@@ -373,10 +416,12 @@ the TARGET attribute.
y
-
the local portion of result submatrix the local portion of global dense matrix +$y$. + SRC="img28.png" + ALT="$y$">. +
Scope: local
@@ -386,7 +431,7 @@ Intent: inout.
Specified as: an array of rank one or two containing numbers of type specified in -Table 11. +Table 12.
info
Error code. @@ -404,26 +449,26 @@ An integer value; 0 means no error has been detected.


- next - + up - previous - contents
- Next: psb_spsm Triangular - Up: Computational routines - Previous: psb_spnrmi Infinity -   Next: Communication routines + Up: Computational routines + Previous: psb_spmm Sparse +   Contents diff --git a/docs/html/node39.html b/docs/html/node39.html index a2259d8d..4f878be8 100644 --- a/docs/html/node39.html +++ b/docs/html/node39.html @@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds Jens Lippmann, Marek Rouchal, Martin Wilck and others --> -psb_spsm -- Triangular System Solve - +Communication routines + @@ -18,459 +18,63 @@ original version by: Nikos Drakos, CBLU, University of Leeds - - + + + - next - + up - previous - contents
- Next: Communication routines - Up: Computational routines - Previous: psb_spmm Sparse -   Next: psb_halo Halo + Up: userhtml + Previous: psb_spsm Triangular +   Contents

-

-psb_spsm -- Triangular System Solve -

- -

-This subroutine computes the Triangular System Solve: - -

-

-
- -\begin{eqnarray*}
-y &\leftarrow& \alpha P_r T^{-1} P_c x + \beta y\\
-y &\leftar...
-...\beta y\\
-y &\leftarrow& \alpha P_r T^{-H} P_c D x + \beta y\\
-\end{eqnarray*}
-

- -

-where: -

-
$x$
-
is the global dense submatrix $x_{:, :}$ -
-
$y$
-
is the global dense submatrix $y_{:, :}$ -
-
$T$
-
is the global sparse block triangular submatrix $T$ -
-
$D$
-
is the scaling diagonal matrix. -
-
$P_r, P_c$
-
are the permutation matrices. -
-
- -

-

-call psb_spsm(alpha, t, x, beta, y, desc_a, info)
-call psb_spsm(alpha, t, x, beta, y, desc_a, info,&
-             & trans, unit, choice, diag, work)
-
- -

-

-
- - - -
Table 12: -Data types
-
- - - - - - - - - - - - - - - - -
$T$, $x$, $y$, $D$, $\alpha$, $\beta$Subroutine
Short Precision Realpsb_spsm
Long Precision Realpsb_spsm
Short Precision Complexpsb_spsm
Long Precision Complexpsb_spsm
-
-
-

-
- -

-

-
Type:
-
Synchronous. -
-
On Entry
-
-
-
alpha
-
the scalar $\alpha$. -
-Scope: global -
-Type: required -
-Intent: in. -
-Specified as: a number of the data type indicated in -Table 12. -
-
t
-
the global portion of the sparse matrix -$T$. -
-Scope: local -
-Type: required -
-Intent: in. -
-Specified as: a structured data type specified in -§ 3. -
-
x
-
the local portion of global dense matrix -$x$. - -
-Scope: local -
-Type: required -
-Intent: in. -
-Specified as: a rank one or two array -containing numbers of type specified in -Table 12. The rank of $x$ must be the same of $y$. -
-
beta
-
the scalar $\beta$. -
-Scope: global -
-Type: required -
-Intent: in. -
-Specified as: a number of the data type indicated in Table 12. -
-
y
-
the local portion of global dense matrix -$y$. - -
-Scope: local -
-Type: required -
-Intent: inout. -
-Specified as: a rank one or two array -containing numbers of type specified in -Table 12. The rank of $y$ must be the same of $x$. -
-
desc_a
-
contains data structures for communications. -
-Scope: local -
-Type: required -
-Intent: in. -
-Specified as: a structured data of type descdatapsb_desc_type. -
-
trans
-
specify with unitd the operation to perform. -
-
trans = 'N'
-
the operation is with no transposed matrix -
-
trans = 'T'
-
the operation is with transposed matrix. -
-
trans = 'C'
-
the operation is with conjugate transposed matrix. -
-
-Scope: global -
-Type: optional -
-Intent: in. -
-Default: $trans = N$ -
-Specified as: a character variable. -
-
unitd
-
specify with trans the operation to perform. -
-
unitd = 'U'
-
the operation is with no scaling -
-
unitd = 'L'
-
the operation is with left scaling -
-
unitd = 'R'
-
the operation is with right scaling. -
-
-Scope: global -
-Type: optional -
-Intent: in. -
-Default: $unitd = U$ -
-Specified as: a character variable. -
-
choice
-
specifies the update of overlap elements to be performed - on exit: -
-
-
psb_none_ -
-
-
psb_sum_ -
-
-
psb_avg_ -
-
-
psb_square_root_ -
-
-Scope: global -
-Type: optional -
-Intent: in. -
-Default: psb_avg_ -
-Specified as: an integer variable. -
-
diag
-
the diagonal scaling matrix. -
-Scope: local -
-Type: optional -
-Intent: in. -
-Default: -$diag(1) = 1 (no scaling)$ -
-Specified as: a rank one array containing numbers of the type -indicated in Table 12. -
-
work
-
a work array. -
-Scope: local -
-Type: optional -
-Intent: inout. -
-Specified as: a rank one array of the same type of $x$ with the -TARGET attribute. - -

-

-
On Return
-
-
-
y
-
the local portion of global dense matrix -$y$. - -
-Scope: local -
-Type: required -
-Intent: inout. -
-Specified as: an array of rank one or two -containing numbers of type specified in -Table 12. -
-
info
-
Error code. -
-Scope: local -
-Type: required -
-Intent: out. -
-An integer value; 0 means no error has been detected. -
-
+

+Communication routines +

+The routines in this chapter implement various global communication operators +on vectors associated with a discretization mesh. For auxiliary communication +routines not tied to a discretization space see 6.

-


- - -next - -up - -previous - -contents -
- Next: Communication routines - Up: Computational routines - Previous: psb_spmm Sparse -   Contents - +

+ +Subsections + + + +

diff --git a/docs/html/node4.html b/docs/html/node4.html index 24148455..7920add7 100644 --- a/docs/html/node4.html +++ b/docs/html/node4.html @@ -26,26 +26,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds - next - up - previous - contents
- Next: Next: Library contents - Up: Up: General overview - Previous: Previous: General overview -   Contents

@@ -126,8 +126,8 @@ Overlap points do not usually exist in the basic data distributions; however they are a feature of Domain Decomposition Schwarz preconditioners which are the subject of related research work [4,3]. + HREF="node107.html#2007c">4,3].

We denote the sets of internal, boundary and halo points for a given @@ -197,26 +197,26 @@ points in the literature.


- next - up - previous - contents
- Next: Next: Library contents - Up: Up: General overview - Previous: Previous: General overview -   Contents diff --git a/docs/html/node40.html b/docs/html/node40.html index fbf7720a..ef06fc8a 100644 --- a/docs/html/node40.html +++ b/docs/html/node40.html @@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds Jens Lippmann, Marek Rouchal, Martin Wilck and others --> -Communication routines - +psb_halo -- Halo Data Communication + @@ -18,63 +18,636 @@ original version by: Nikos Drakos, CBLU, University of Leeds - - - + + + - next - + up - previous - contents
- Next: psb_halo Halo - Up: userhtml - Previous: psb_spsm Triangular -   Next: psb_ovrl Overlap + Up: Communication routines + Previous: Communication routines +   Contents

-

-Communication routines -

-The routines in this chapter implement various global communication operators -on vectors associated with a discretization mesh. For auxiliary communication -routines not tied to a discretization space see 6. +

+psb_halo -- Halo Data Communication +

+ +

+These subroutines gathers the values of the halo +elements, and (optionally) scale the result: + +

+

+
+ + +\begin{displaymath}x \leftarrow \alpha x \end{displaymath} +
+
+

+where: +
+
$x$
+
is a global dense submatrix. +
+
+ +

+

+
+ + + +
Table 13: +Data types
+
+ + + + + + + + + + + + + + + + + + + +
$\alpha$, $x$Subroutine
Integerpsb_halo
Short Precision Realpsb_halo
Long Precision Realpsb_halo
Short Precision Complexpsb_halo
Long Precision Complexpsb_halo
+
+
+

+

-


- -Subsections - - - -

+
+call psb_halo(x, desc_a, info)
+call psb_halo(x, desc_a, info, alpha, work, data)
+
+ +

+

+
Type:
+
Synchronous. +
+
On Entry
+
+
+
x
+
global dense matrix $x$. +
+Scope: local +
+Type: required +
+Intent: inout. +
+Specified as: a rank one or two array with the TARGET attribute +containing numbers of type specified in +Table 13. +
+
desc_a
+
contains data structures for communications. +
+Scope: local +
+Type: required +
+Intent: in. +
+Specified as: a structured data of type descdatapsb_desc_type. +
+
alpha
+
the scalar $\alpha$. +
+Scope: global +
+Type: optional +
+Intent: in. +
+Default: $alpha = 1 $ +
+Specified as: a number of the data type indicated in Table 13. +
+
work
+
the work array. +
+Scope: local +
+Type: optional +
+Intent: inout. +
+Specified as: a rank one array of the same type of $x$ with the +POINTER attribute. +
+
data
+
index list selector. +
+Scope: global +
+Type: optional +
+Specified as: an integer. Values:psb_comm_halo_,psb_comm_mov_, +psb_comm_ext_, default: psb_comm_halo_. Chooses the +index list on which to base the data exchange. + +

+

+
On Return
+
+
+
x
+
global dense result matrix $x$. +
+Scope: local +
+Type: required +
+Intent: inout. +
+Returned as: a rank one or two array +containing numbers of type specified in +Table 13. +
+
info
+
the local portion of result submatrix $y$. +
+Scope: local +
+Type: required +
+Intent: out. +
+An integer value that contains an error code. +
+
+ +
+ + + +
Figure 6: +Sample discretization mesh.
+
+\includegraphics[scale=0.45]{figures/try8x8.eps} + + +\rotatebox{-90}{\includegraphics[scale=0.45]{figures/try8x8}} + +
+
+ +

+Usage Example +Consider the discretization mesh depicted in fig. 6, +partitioned among two processes as shown by the dashed line; the data +distribution is such that each process will own 32 entries in the +index space, with a halo made of 8 entries placed at local indices 33 +through 40. If process 0 assigns an initial value of 1 to its entries +in the $x$ vector, and process 1 assigns a value of 2, then after a +call to psb_halo the contents of the local vectors will be the +following: +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Process 0  +Process 1
+ I GLOB(I) X(I)   I GLOB(I) X(I)
+ 1 1 1.0   1 33 2.0
+ 2 2 1.0   2 34 2.0
+ 3 3 1.0   3 35 2.0
+ 4 4 1.0   4 36 2.0
+ 5 5 1.0   5 37 2.0
+ 6 6 1.0   6 38 2.0
+ 7 7 1.0   7 39 2.0
+ 8 8 1.0   8 40 2.0
+ 9 9 1.0   9 41 2.0
+ 10 10 1.0   10 42 2.0
+ 11 11 1.0   11 43 2.0
+ 12 12 1.0   12 44 2.0
+ 13 13 1.0   13 45 2.0
+ 14 14 1.0   14 46 2.0
+ 15 15 1.0   15 47 2.0
+ 16 16 1.0   16 48 2.0
+ 17 17 1.0   17 49 2.0
+ 18 18 1.0   18 50 2.0
+ 19 19 1.0   19 51 2.0
+ 20 20 1.0   20 52 2.0
+21 21 1.0   21 53 2.0
+22 22 1.0   22 54 2.0
+23 23 1.0   23 55 2.0
+24 24 1.0   24 56 2.0
+25 25 1.0   25 57 2.0
+26 26 1.0   26 58 2.0
+27 27 1.0   27 59 2.0
+28 28 1.0   28 60 2.0
+29 29 1.0   29 61 2.0
+30 30 1.0   30 62 2.0
+31 31 1.0   31 63 2.0
+32 32 1.0   32 64 2.0
+33 33 2.0   33 25 1.0
+34 34 2.0   34 26 1.0
+35 35 2.0   35 27 1.0
+36 36 2.0   36 28 1.0
+37 37 2.0   37 29 1.0
+38 38 2.0   38 30 1.0
+39 39 2.0   39 31 1.0
+40 40 2.0   40 32 1.0
+
+ +

+


+ + +next + +up + +previous + +contents +
+ Next: psb_ovrl Overlap + Up: Communication routines + Previous: Communication routines +   Contents + diff --git a/docs/html/node41.html b/docs/html/node41.html index 86003dab..adae6ae8 100644 --- a/docs/html/node41.html +++ b/docs/html/node41.html @@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds Jens Lippmann, Marek Rouchal, Martin Wilck and others --> -psb_halo -- Halo Data Communication - +psb_ovrl -- Overlap Update + @@ -20,58 +20,57 @@ original version by: Nikos Drakos, CBLU, University of Leeds - + - next - + up - previous - contents
- Next: psb_ovrl Overlap - Up: Communication routines - Previous: Communication routines -   Next: psb_gather Gather + Up: Communication routines + Previous: psb_halo Halo +   Contents

-

-psb_halo -- Halo Data Communication +

+psb_ovrl -- Overlap Update

-These subroutines gathers the values of the halo -elements, and (optionally) scale the result: +These subroutines applies an overlap operator to the input vector:


\begin{displaymath}x \leftarrow \alpha x \end{displaymath} + WIDTH="55" HEIGHT="27" BORDER="0" + SRC="img66.png" + ALT="\begin{displaymath}x \leftarrow Q x \end{displaymath}">

@@ -79,44 +78,54 @@ where:
$x$
-
is a global dense submatrix. +
is the global dense submatrix $x$ +
+
$Q$
+
is the overlap operator; it is the composition of two +operators $ P_a$ and $ P^{T}$.


-
+
-


- next - + up - previous - contents
- Next:psb_ovrl Overlap - Up:Communication routines - Previous:Communication routines -   Next:psb_gather Gather + Up:Communication routines + Previous:psb_halo Halo +   Contents diff --git a/docs/html/node42.html b/docs/html/node42.html index 269eda31..98e1b3e5 100644 --- a/docs/html/node42.html +++ b/docs/html/node42.html @@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds Jens Lippmann, Marek Rouchal, Martin Wilck and others --> -psb_ovrl -- Overlap Update - +psb_gather -- Gather Global Dense Matrix + @@ -20,112 +20,123 @@ original version by: Nikos Drakos, CBLU, University of Leeds - + - next - + up - previous - contents
- Next:psb_gather Gather - Up:Communication routines - Previous:psb_halo Halo -   Next:psb_scatter Scatter + Up:Communication routines + Previous:psb_ovrl Overlap +   Contents

-

-psb_ovrl -- Overlap Update +

+psb_gather -- Gather Global Dense Matrix

-These subroutines applies an overlap operator to the input vector: +These subroutines collect the portions of global dense matrix +distributed over all process into one single array stored on one +process.


\begin{displaymath}x \leftarrow Q x \end{displaymath} + WIDTH="163" HEIGHT="28" BORDER="0" + SRC="img75.png" + ALT="\begin{displaymath}glob\_x \leftarrow collect(loc\_x_i) \end{displaymath}">

where:
$x$
-
is the global dense submatrix $x$ + WIDTH="47" HEIGHT="30" ALIGN="MIDDLE" BORDER="0" + SRC="img76.png" + ALT="$glob\_x$"> +
is the global submatrix +$glob\_x_{1:m,1:n}$
$Q$
-
is the overlap operator; it is the composition of two -operators $ P_a$ and $ P^{T}$. + WIDTH="44" HEIGHT="30" ALIGN="MIDDLE" BORDER="0" + SRC="img78.png" + ALT="$loc\_x_i$"> +
is the local portion of global dense matrix on +process $i$. +
+
$collect$
+
is the collect function.


-
+
Table 13: +Table 14: Data types
- - - - + - + - + - +
$\alpha$, $x$ Subroutine
Integerpsb_halo
Short Precision Realpsb_halopsb_ovrl
Long Precision Realpsb_halopsb_ovrl
Short Precision Complexpsb_halopsb_ovrl
Long Precision Complexpsb_halopsb_ovrl
@@ -127,9 +136,9 @@ Data types

-call psb_halo(x, desc_a, info)
-call psb_halo(x, desc_a, info, alpha, work, data)
-
+call psb_ovrl(x, desc_a, info) +call psb_ovrl(x, desc_a, info, update=update_type, work=work) +

@@ -142,7 +151,7 @@ call psb_halo(x, desc_a, info, alpha, work, data)
x
global dense matrix $x$.
Scope: local @@ -151,9 +160,9 @@ Type: required
Intent: inout.
-Specified as: a rank one or two array with the TARGET attribute +Specified as: a rank one or two array containing numbers of type specified in -Table 13. +Table 14.
desc_a
contains data structures for communications. @@ -166,24 +175,40 @@ Intent: in.
Specified as: a structured data of type descdatapsb_desc_type.
-
alpha
-
the scalar $\alpha$. -
+
update
+
Update operator. +
+
update = psb_none_
+
Do nothing; +
+
update = psb_add_
+
Sum overlap entries, i.e. apply $P^T$; +
+
update = psb_avg_
+
Average overlap entries, i.e. apply $P_aP^T$; +
+
Scope: global
-Type: optional -
Intent: in.
-Default: $alpha = 1 $ +Default: +$update\_type = psb\_avg\_ $ +
+Scope: global
-Specified as: a number of the data type indicated in Table 13. +Specified as: a integer variable.
work
the work array. @@ -194,22 +219,10 @@ Type: optional
Intent: inout.
-Specified as: a rank one array of the same type of $x$ with the -POINTER attribute. -
-
data
-
index list selector. -
-Scope: global -
-Type: optional -
-Specified as: an integer. Values:psb_comm_halo_,psb_comm_mov_, -psb_comm_ext_, default: psb_comm_halo_. Chooses the -index list on which to base the data exchange. + SRC="img27.png" + ALT="$x$">.

@@ -219,7 +232,7 @@ index list on which to base the data exchange.
x
global dense result matrix $x$.
Scope: local @@ -228,15 +241,12 @@ Type: required
Intent: inout.
-Returned as: a rank one or two array +Specified as: an array of rank one or two containing numbers of type specified in -Table 13. +Table 14.
info
-
the local portion of result submatrix $y$. +
Error code.
Scope: local
@@ -244,46 +254,80 @@ Type: required
Intent: out.
-An integer value that contains an error code. +An integer value; 0 means no error has been detected.
-
+

+Notes + +

    +
  1. If there is no overlap in the data distribution associated with + the descriptor, no operations are performed; +
  2. +
  3. The operator $ P^{T}$ performs the reduction sum of overlap +elements; it is a ``prolongation'' operator $P^T$ that +replicates overlap elements, accounting for the physical replication +of data; +
  4. +
  5. The operator $ P_a$ performs a scaling on the overlap elements by +the amount of replication; thus, when combined with the reduction +operator, it implements the average of replicated elements over all of +their instances. +
  6. +
+ +

+ +

Figure 7: Sample discretization mesh.
\includegraphics[scale=0.45]{figures/try8x8.eps} + WIDTH="533" HEIGHT="454" ALIGN="BOTTOM" BORDER="0" + SRC="img74.png" + ALT="\includegraphics[scale=0.65]{figures/try8x8_ov.eps}"> \rotatebox{-90}{\includegraphics[scale=0.45]{figures/try8x8}} + WIDTH="76" HEIGHT="2" ALIGN="BOTTOM" BORDER="0" + SRC="img73.png" + ALT="\rotatebox{-90}{\includegraphics[scale=0.65]{figures/try8x8_ov}}">
-

-Usage Example -Consider the discretization mesh depicted in fig. 7, -partitioned among two processes as shown by the dashed line; the data -distribution is such that each process will own 32 entries in the -index space, with a halo made of 8 entries placed at local indices 33 -through 40. If process 0 assigns an initial value of 1 to its entries +Example of use +Consider the discretization mesh depicted in fig. 7, +partitioned among two processes as shown by the dashed lines, with an +overlap of 1 extra layer with respect to the partition of +fig. 6; the data +distribution is such that each process will own 40 entries in the +index space, with an overlap of 16 entries placed at local indices 25 +through 40; the halo will run from local index 41 through local index 48.. If process 0 assigns an initial value of 1 to its entries in the $x$ vector, and process 1 assigns a value of 2, then after a -call to psb_halo the contents of the local vectors will be the -following: +call to psb_ovrl with psb_avg_ and a call to +psb_halo_ the contents of the local vectors will be the +following (showing a transition among the two subdomains) + +


@@ -306,7 +350,7 @@ Process 1 - + @@ -314,7 +358,7 @@ Process 1 - + @@ -322,7 +366,7 @@ Process 1 - + @@ -330,7 +374,7 @@ Process 1 - + @@ -338,7 +382,7 @@ Process 1 - + @@ -346,7 +390,7 @@ Process 1 - + @@ -354,7 +398,7 @@ Process 1 - + @@ -362,7 +406,7 @@ Process 1 - + @@ -461,7 +505,7 @@ Process 1 + 21 @@ -469,7 +513,7 @@ Process 1 + 22 @@ -477,7 +521,7 @@ Process 1 + 23 @@ -485,7 +529,7 @@ Process 1 + 24 @@ -493,131 +537,195 @@ Process 1 + 25 - + + 26 - + + 27 - + + 28 - + + 29 - + + 30 - + + 31 - + + 32 - + + 33 - + - + + 34 - + - + + 35 - + - + + 36 - + - + + 37 - + - + + 38 - + - + + 39 - + - + + 40 - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
1.0   1 33 2.0 1.5
2 1.0   2 34 2.0 1.5
3 1.0   3 35 2.0 1.5
4 1.0   4 36 2.0 1.5
5 1.0   5 37 2.0 1.5
6 1.0   6 38 2.0 1.5
7 1.0   7 39 2.0 1.5
8 1.0   8 40 2.0 1.5
9 2.0
-21 21 1.0   21 2.0
-22 22 1.0   22 2.0
-23 23 1.0   23 2.0
-24 24 1.0   24 2.0
-25 25 1.0 1.5   25 57 2.0
-26 26 1.0 1.5   26 58 2.0
-27 27 1.0 1.5   27 59 2.0
-28 28 1.0 1.5   28 60 2.0
-29 29 1.0 1.5   29 61 2.0
-30 30 1.0 1.5   30 62 2.0
-31 31 1.0 1.5   31 63 2.0
-32 32 1.0 1.5   32 64 2.0
-33 33 2.0 1.5   33 25 1.0 1.5
-34 34 2.0 1.5   34 26 1.0 1.5
-35 35 2.0 1.5   35 27 1.0 1.5
-36 36 2.0 1.5   36 28 1.0 1.5
-37 37 2.0 1.5   37 29 1.0 1.5
-38 38 2.0 1.5   38 30 1.0 1.5
-39 39 2.0 1.5   39 31 1.0 1.5
-40 40 2.0 1.5   40 32 1.5
+ 41 41 2.0   41 17 1.0
+ 42 42 2.0   42 18 1.0
+ 43 43 2.0   43 19 1.0
+ 44 44 2.0   44 20 1.0
+ 45 45 2.0   45 21 1.0
+ 46 46 2.0   46 22 1.0
+ 47 47 2.0   47 23 1.0
+ 48 48 2.0   48 24 1.0
@@ -626,26 +734,26 @@ Process 1
-
Table 14: +Table 15: Data types
+ WIDTH="34" HEIGHT="30" ALIGN="MIDDLE" BORDER="0" + SRC="img80.png" + ALT="$x_i, y$"> + + + - + - + - + - +
$x$ Subroutine
Integerpsb_gather
Short Precision Realpsb_ovrlpsb_gather
Long Precision Realpsb_ovrlpsb_gather
Short Precision Complexpsb_ovrlpsb_gather
Long Precision Complexpsb_ovrlpsb_gather
@@ -136,9 +147,9 @@ Data types

-call psb_ovrl(x, desc_a, info)
-call psb_ovrl(x, desc_a, info, update=update_type, work=work)
-
+call psb_gather(glob_x, loc_x, desc_a, info, root) +call psb_gather(glob_x, loc_x, desc_a, info, root) +

@@ -148,21 +159,21 @@ call psb_ovrl(x, desc_a, info, update=update_type, work=work)
On Entry
-
x
-
global dense matrix $x$. +
loc_x
+
the local portion of global dense matrix +$glob\_x$.
Scope: local
-Type: required +Type: required
-Intent: inout. +Intent: in.
-Specified as: a rank one or two array -containing numbers of type specified in -Table 14. +Specified as: a rank one or two array containing numbers of the type +indicated in Table 15.
desc_a
contains data structures for communications. @@ -175,75 +186,43 @@ Intent: in.
Specified as: a structured data of type descdatapsb_desc_type.
-
update
-
Update operator. -
-
update = psb_none_
-
Do nothing; -
-
update = psb_add_
-
Sum overlap entries, i.e. apply $P^T$; -
-
update = psb_avg_
-
Average overlap entries, i.e. apply $P_aP^T$; -
-
-Scope: global -
-Intent: in. -
-Default: -$update\_type = psb\_avg\_ $ +
root
+
The process that holds the global copy. If $root=-1$ all + the processes will have a copy of the global vector.
Scope: global
-Specified as: a integer variable. -
-
work
-
the work array. -
-Scope: local -
Type: optional
-Intent: inout. +Intent: in.
-Specified as: a one dimensional array of the same type of $x$. - -

+Specified as: an integer variable +$-1\le root\le np-1$, default $-1$.

On Return
-
x
-
global dense result matrix $x$. +
glob_x
+
The array where the local parts must be gathered.
-Scope: local +Scope: global
-Type: required +Type: required
-Intent: inout. +Intent: out.
-Specified as: an array of rank one or two -containing numbers of type specified in -Table 14. +Specified as: a rank one or two array.
info
Error code. @@ -258,502 +237,29 @@ An integer value; 0 means no error has been detected.
-

-Notes - -

    -
  1. If there is no overlap in the data distribution associated with - the descriptor, no operations are performed; -
  2. -
  3. The operator $ P^{T}$ performs the reduction sum of overlap -elements; it is a ``prolongation'' operator $P^T$ that -replicates overlap elements, accounting for the physical replication -of data; -
  4. -
  5. The operator $ P_a$ performs a scaling on the overlap elements by -the amount of replication; thus, when combined with the reduction -operator, it implements the average of replicated elements over all of -their instances. -
  6. -
- -

- -

- - - -
Figure 8: -Sample discretization mesh.
-
-\includegraphics[scale=0.65]{figures/try8x8_ov.eps} - - -\rotatebox{-90}{\includegraphics[scale=0.65]{figures/try8x8_ov}} - -
-
- -Example of use -Consider the discretization mesh depicted in fig. 8, -partitioned among two processes as shown by the dashed lines, with an -overlap of 1 extra layer with respect to the partition of -fig. 7; the data -distribution is such that each process will own 40 entries in the -index space, with an overlap of 16 entries placed at local indices 25 -through 40; the halo will run from local index 41 through local index 48.. If process 0 assigns an initial value of 1 to its entries -in the $x$ vector, and process 1 assigns a value of 2, then after a -call to psb_ovrl with psb_avg_ and a call to -psb_halo_ the contents of the local vectors will be the -following (showing a transition among the two subdomains) - -

-
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Process 0  -Process 1
- I GLOB(I) X(I)   I GLOB(I) X(I)
- 1 1 1.0   1 33 1.5
- 2 2 1.0   2 34 1.5
- 3 3 1.0   3 35 1.5
- 4 4 1.0   4 36 1.5
- 5 5 1.0   5 37 1.5
- 6 6 1.0   6 38 1.5
- 7 7 1.0   7 39 1.5
- 8 8 1.0   8 40 1.5
- 9 9 1.0   9 41 2.0
- 10 10 1.0   10 42 2.0
- 11 11 1.0   11 43 2.0
- 12 12 1.0   12 44 2.0
- 13 13 1.0   13 45 2.0
- 14 14 1.0   14 46 2.0
- 15 15 1.0   15 47 2.0
- 16 16 1.0   16 48 2.0
- 17 17 1.0   17 49 2.0
- 18 18 1.0   18 50 2.0
- 19 19 1.0   19 51 2.0
- 20 20 1.0   20 52 2.0
- 21 21 1.0   21 53 2.0
- 22 22 1.0   22 54 2.0
- 23 23 1.0   23 55 2.0
- 24 24 1.0   24 56 2.0
- 25 25 1.5   25 57 2.0
- 26 26 1.5   26 58 2.0
- 27 27 1.5   27 59 2.0
- 28 28 1.5   28 60 2.0
- 29 29 1.5   29 61 2.0
- 30 30 1.5   30 62 2.0
- 31 31 1.5   31 63 2.0
- 32 32 1.5   32 64 2.0
- 33 33 1.5   33 25 1.5
- 34 34 1.5   34 26 1.5
- 35 35 1.5   35 27 1.5
- 36 36 1.5   36 28 1.5
- 37 37 1.5   37 29 1.5
- 38 38 1.5   38 30 1.5
- 39 39 1.5   39 31 1.5
- 40 40 1.5   40 32 1.5
- 41 41 2.0   41 17 1.0
- 42 42 2.0   42 18 1.0
- 43 43 2.0   43 19 1.0
- 44 44 2.0   44 20 1.0
- 45 45 2.0   45 21 1.0
- 46 46 2.0   46 22 1.0
- 47 47 2.0   47 23 1.0
- 48 48 2.0   48 24 1.0
-
-


- next - + up - previous - contents
- Next: psb_gather Gather - Up: Communication routines - Previous: psb_halo Halo -   Next: psb_scatter Scatter + Up: Communication routines + Previous: psb_ovrl Overlap +   Contents diff --git a/docs/html/node43.html b/docs/html/node43.html index a5bb9e66..3ab5b145 100644 --- a/docs/html/node43.html +++ b/docs/html/node43.html @@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds Jens Lippmann, Marek Rouchal, Martin Wilck and others --> -psb_gather -- Gather Global Dense Matrix - +psb_scatter -- Scatter Global Dense Matrix + @@ -18,61 +18,59 @@ original version by: Nikos Drakos, CBLU, University of Leeds - - + - next - + up - previous - contents
- Next: psb_scatter Scatter - Up: Communication routines - Previous: psb_ovrl Overlap -   Next: Data management routines + Up: Communication routines + Previous: psb_gather Gather +   Contents

-

-psb_gather -- Gather Global Dense Matrix +

+psb_scatter -- Scatter Global Dense Matrix

-These subroutines collect the portions of global dense matrix -distributed over all process into one single array stored on one -process. +These subroutines scatters the portions of global dense matrix owned +by a process to all the processes in the processes grid.


\begin{displaymath}glob\_x \leftarrow collect(loc\_x_i) \end{displaymath} + WIDTH="168" HEIGHT="28" BORDER="0" + SRC="img84.png" + ALT="\begin{displaymath}loc\_x_i \leftarrow scatter(glob\_x) \end{displaymath}">

@@ -80,19 +78,19 @@ where:
$glob\_x$
-
is the global submatrix $glob\_x_{1:m,1:n}$
$loc\_x_i$
is the local portion of global dense matrix on process $i$.
$collect$
-
is the collect function. + WIDTH="53" HEIGHT="14" ALIGN="BOTTOM" BORDER="0" + SRC="img85.png" + ALT="$scatter$"> +
is the scatter function.


-
+
- +
Table 15: +Table 16: Data types
- + - + - + - + - +
$x_i, y$ Subroutine
Integerpsb_gatherpsb_scatter
Short Precision Realpsb_gatherpsb_scatter
Long Precision Realpsb_gatherpsb_scatter
Short Precision Complexpsb_gatherpsb_scatter
Long Precision Complexpsb_gatherpsb_scatter
@@ -147,8 +145,8 @@ Data types

-call psb_gather(glob_x, loc_x, desc_a, info, root)
-call psb_gather(glob_x, loc_x, desc_a, info, root)
+call psb_scatter(glob_x, loc_x, desc_a, info, root)
+call psb_scatter(glob_x, loc_x, desc_a, info, root)
 

@@ -159,21 +157,16 @@ call psb_gather(glob_x, loc_x, desc_a, info, root)

On Entry
-
loc_x
-
the local portion of global dense matrix -$glob\_x$. +
glob_x
+
The array that must be scattered into local pieces.
-Scope: local +Scope: global
Type: required
Intent: in.
-Specified as: a rank one or two array containing numbers of the type -indicated in Table 15. +Specified as: a rank one or two array.
desc_a
contains data structures for communications. @@ -189,9 +182,9 @@ Specified as: a structured data of type descdatapsb_desc_type.
root
The process that holds the global copy. If $root=-1$ all - the processes will have a copy of the global vector. + the processes have a copy of the global vector.
Scope: global
@@ -204,25 +197,30 @@ Specified as: an integer variable $-1\le root\le np-1$, default $-1$.
On Return
-
glob_x
-
The array where the local parts must be gathered. +
loc_x
+
the local portion of global dense matrix +$glob\_x$.
-Scope: global +Scope: local
Type: required
Intent: out.
-Specified as: a rank one or two array. +Specified as: a rank one or two array containing numbers of the type +indicated in Table 16.
info
Error code. @@ -240,26 +238,26 @@ An integer value; 0 means no error has been detected.


- next - + up - previous - contents
- Next: psb_scatter Scatter - Up: Communication routines - Previous: psb_ovrl Overlap -   Next: Data management routines + Up: Communication routines + Previous: psb_gather Gather +   Contents diff --git a/docs/html/node44.html b/docs/html/node44.html index bd7b3f66..de4b64e3 100644 --- a/docs/html/node44.html +++ b/docs/html/node44.html @@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds Jens Lippmann, Marek Rouchal, Martin Wilck and others --> -psb_scatter -- Scatter Global Dense Matrix - +Data management routines + @@ -18,248 +18,114 @@ original version by: Nikos Drakos, CBLU, University of Leeds - - + + + - next - + up - previous - contents
- Next: Data management routines - Up: Communication routines - Previous: psb_gather Gather -   Next: psb_cdall Allocates + Up: userhtml + Previous: psb_scatter Scatter +   Contents

-

-psb_scatter -- Scatter Global Dense Matrix -

- -

-These subroutines scatters the portions of global dense matrix owned -by a process to all the processes in the processes grid. - -

-

-
- - -\begin{displaymath}loc\_x_i \leftarrow scatter(glob\_x) \end{displaymath} -
-
-

-where: -
-
$glob\_x$
-
is the global matrix -$glob\_x_{1:m,1:n}$ -
-
$loc\_x_i$
-
is the local portion of global dense matrix on -process $i$. -
-
$scatter$
-
is the scatter function. -
-
- -

-

-
- - - -
Table 16: -Data types
-
- - - - - - - - - - - - - - - - - - - -
$x_i, y$Subroutine
Integerpsb_scatter
Short Precision Realpsb_scatter
Long Precision Realpsb_scatter
Short Precision Complexpsb_scatter
Long Precision Complexpsb_scatter
-
-
-

+

+
+Data management routines +

-

-call psb_scatter(glob_x, loc_x, desc_a, info, root)
-call psb_scatter(glob_x, loc_x, desc_a, info, root)
-
+

+ +Subsections -

-

-
Type:
-
Synchronous. -
-
On Entry
-
-
-
glob_x
-
The array that must be scattered into local pieces. -
-Scope: global -
-Type: required -
-Intent: in. -
-Specified as: a rank one or two array. -
-
desc_a
-
contains data structures for communications. -
-Scope: local -
-Type: required -
-Intent: in. -
-Specified as: a structured data of type descdatapsb_desc_type. -
-
root
-
The process that holds the global copy. If $root=-1$ all - the processes have a copy of the global vector. -
-Scope: global -
-Type: optional -
-Intent: in. -
-Specified as: an integer variable -$-1\le root\le np-1$, default $-1$. -
-
On Return
-
-
-
loc_x
-
the local portion of global dense matrix -$glob\_x$. -
-Scope: local -
-Type: required -
-Intent: out. -
-Specified as: a rank one or two array containing numbers of the type -indicated in Table 16. -
-
info
-
Error code. -
-Scope: local -
-Type: required -
-Intent: out. -
-An integer value; 0 means no error has been detected. -
-
- -

-


- - -next - -up - -previous - -contents -
- Next: Data management routines - Up: Communication routines - Previous: psb_gather Gather -   Contents - + + +

diff --git a/docs/html/node45.html b/docs/html/node45.html index 424b886c..6fdf28b2 100644 --- a/docs/html/node45.html +++ b/docs/html/node45.html @@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds Jens Lippmann, Marek Rouchal, Martin Wilck and others --> -Data management routines - +psb_cdall -- Allocates a communication descriptor + @@ -18,114 +18,407 @@ original version by: Nikos Drakos, CBLU, University of Leeds - - - + + + - next - + up - previous - contents
- Next: psb_cdall Allocates - Up: userhtml - Previous: psb_scatter Scatter -   Next: psb_cdins Communication + Up: Data management routines + Previous: Data management routines +   Contents

-

- +

+psb_cdall -- Allocates a communication descriptor +

+ +

+

+call psb_cdall(icontxt, desc_a, info,mg=mg,parts=parts)
+call psb_cdall(icontxt, desc_a, info,vg=vg,[mg=mg,flag=flag])
+call psb_cdall(icontxt, desc_a, info,vl=vl,[nl=nl,globalcheck=.true.])
+call psb_cdall(icontxt, desc_a, info,nl=nl)
+call psb_cdall(icontxt, desc_a, info,mg=mg,repl=.true.)
+
+ +

+This subroutine initializes the communication descriptor associated +with an index space. One of the optional arguments +parts, vg, vl, nl or repl +must be specified, thereby choosing +the specific initialization strategy. +

+
On Entry
+
+
+
Type:
+
Synchronous. +
+
icontxt
+
the communication context. +
+Scope:global. +
+Type:required. +
+Intent: in. +
+Specified as: an integer value. +
+
vg
+
Data allocation: each index +$i\in \{1\dots mg\}$ is allocated + to process $vg(i)$. +
+Scope:global. +
+Type:optional. +
+Intent: in. +
+Specified as: an integer array. +
+
flag
+
Specifies whether entries in $vg$ are zero- or one-based. +
+Scope:global. +
+Type:optional. +
+Intent: in. +
+Specified as: an integer value $0,1$, default $0$. + +

+

+
mg
+
the (global) number of rows of the problem. +
+Scope:global. +
+Type:optional. +
+Intent: in. +
+Specified as: an integer value. It is required if parts or +repl is specified, it is optional if vg is specified. +
+
parts
+
the subroutine that defines the partitioning scheme. +
+Scope:global. +
+Type:required. +
+Specified as: a subroutine. +
+
vl
+
Data allocation: the set of global indices + $vl(1:nl)$ belonging to the calling process. +
+Scope:local. +
+Type:optional. +
+Intent: in. +
+Specified as: an integer array. +
+
nl
+
Data allocation: in a generalized block-row distribution the + number of indices belonging to the current process. +
+Scope:local. +
+Type:optional. +
+Intent: in. +
+Specified as: an integer value. May be specified together with +vl. +
+
repl
+
Data allocation: build a replicated index space (i.e. all + processes own all indices). +
+Scope:global. +
+Type:optional. +
+Intent: in. +
+Specified as: the logical value .true. +
+
globalcheck
+
Data allocation: do global checks on the local + index lists vl +
+Scope:global. +
+Type:optional. +
+Intent: in. +
+Specified as: a logical value, default: .true. +
+
+ +

+

+
On Return
+
+
+
desc_a
+
the communication descriptor. +
+Scope:local. +
+Type:required. +
+Intent: out. +
+Specified as: a structured data of type descdatapsb_desc_type. +
+
info
+
Error code. +
+Scope: local
-Data management routines - +Type: required +
+Intent: out. +
+An integer value; 0 means no error has been detected. +
+

-


- -Subsections +Notes - - -

+
    +
  1. One of the optional arguments parts, vg, + vl, nl or repl must be specified, thereby choosing the + initialization strategy as follows: +
    +
    parts
    +
    In this case we have a subroutine specifying the mapping + between global indices and process/local index pairs. If this + optional argument is specified, then it is mandatory to + specify the argument mg as well. + The subroutine must conform to the following interface: +
    +  interface 
    +     subroutine psb_parts(glob_index,mg,np,pv,nv)
    +       integer, intent (in)  :: glob_index,np,mg
    +       integer, intent (out) :: nv, pv(*)
    +     end subroutine psb_parts
    +  end interface
    +
    + The input arguments are: +
    +
    glob_index
    +
    The global index to be mapped; + +
    +
    np
    +
    The number of processes in the mapping; + +
    +
    mg
    +
    The total number of global rows in the mapping; + +
    +
    + The output arguments are: +
    +
    nv
    +
    The number of entries in pv; + +
    +
    pv
    +
    A vector containing the indices of the processes to + which the global index should be assigend; each entry must satisfy + +$0\le pv(i) < np$; if $nv>1$ we have an index assigned to multiple + processes, i.e. we have an overlap among the subdomains. + +
    +
    +
    +
    vg
    +
    In this case the association between an index and a process + is specified via an integer vector vg(1:mg); + each index +$i\in \{1\dots mg\}$ is assigned to process $vg(i)$. + The vector vg must be identical on all + calling processes; its entries may have the ranges $(0\dots np-1)$ + or $(1\dots np)$ according to the value of flag. + The size $mg$ may be specified via the optional argument mg; + the default is to use the entire vector vg, thus having + mg=size(vg). +
    +
    vl
    +
    In this case we are specifying the list of indices + vl(1:nl) assigned to the current process; thus, the global + problem size $mg$ is given by + the range of the aggregate of the individual vectors vl specified + in the calling processes. The size may be specified via the optional + argument nl; the default is to use the entire vector vl, thus having + nl=size(vl). + If globalcheck=.true. the subroutine will check how many + times each entry in the global index space $(1\dots mg)$ is + specified in the input lists vl, thus allowing for the + presence of overlap in the input, and checking for ``orphan'' + indices. If globalcheck=.false., the subroutine will not + check for overlap, and may be significantly faster, but the user + is implicitly guaranteeing that there are neither orphan nor + overlap indices. +
    +
    nl
    +
    If this argument is specified alone (i.e. without vl) + the result is a generalized row-block distribution in which each + process $I$ gets assigned a consecutive chunk of $N_I=nl$ global + indices. +
    +
    repl
    +
    This arguments specifies to replicate all indices on + all processes. This is a special purpose data allocation that is + useful in the construction of some multilevel preconditioners. +
    +
    +
  2. +
  3. On exit from this routine the descriptor is in the build + state. +
  4. +
  5. Calling the routine with vg or parts implies that + every process will scan the entire index space to figure out the + local indices. +
  6. +
  7. Overlapped indices are possible with both parts and + vl invocations. +
  8. +
  9. When the subroutine is invoked with vl in + conjunction with globalcheck=.true., it will perform a scan + of the index space to search for overlap or orphan indices. +
  10. +
  11. When the subroutine is invoked with vl in + conjunction with globalcheck=.false., no index space scan + will take place. Thus it is the responsibility of the user to make + sure that the indices specified in vl have neither orphans nor + overlaps; if this assumption fails, results will be + unpredictable. +
  12. +
  13. Orphan and overlap indices are + impossible by construction when the subroutine is invoked with + nl (alone), or vg. +
  14. +
+ +

+


+ + +next + +up + +previous + +contents +
+ Next: psb_cdins Communication + Up: Data management routines + Previous: Data management routines +   Contents + diff --git a/docs/html/node46.html b/docs/html/node46.html index 8a693160..3bc5a73c 100644 --- a/docs/html/node46.html +++ b/docs/html/node46.html @@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds Jens Lippmann, Marek Rouchal, Martin Wilck and others --> -psb_cdall -- Allocates a communication descriptor - +psb_cdins -- Communication descriptor insert routine + @@ -20,189 +20,98 @@ original version by: Nikos Drakos, CBLU, University of Leeds - + - next - + up - previous - contents
- Next: psb_cdins Communication - Up: Data management routines - Previous: Data management routines -   Next: psb_cdasb Communication + Up: Data management routines + Previous: psb_cdall Allocates +   Contents

-

-psb_cdall -- Allocates a communication descriptor +

+psb_cdins -- Communication descriptor insert routine

-call psb_cdall(icontxt, desc_a, info,mg=mg,parts=parts)
-call psb_cdall(icontxt, desc_a, info,vg=vg,[mg=mg,flag=flag])
-call psb_cdall(icontxt, desc_a, info,vl=vl,[nl=nl,globalcheck=.true.])
-call psb_cdall(icontxt, desc_a, info,nl=nl)
-call psb_cdall(icontxt, desc_a, info,mg=mg,repl=.true.)
+call psb_cdins(nz, ia, ja, desc_a, info)
 

-This subroutine initializes the communication descriptor associated -with an index space. One of the optional arguments -parts, vg, vl, nl or repl -must be specified, thereby choosing -the specific initialization strategy. -

-
On Entry
-
-
-
Type:
-
Synchronous. -
-
icontxt
-
the communication context. -
-Scope:global. -
-Type:required. -
-Intent: in. -
-Specified as: an integer value. -
-
vg
-
Data allocation: each index -$i\in \{1\dots mg\}$ is allocated - to process $vg(i)$. -
-Scope:global. -
-Type:optional. -
-Intent: in. -
-Specified as: an integer array. -
-
flag
-
Specifies whether entries in $vg$ are zero- or one-based. -
-Scope:global. -
-Type:optional. -
-Intent: in. -
-Specified as: an integer value $0,1$, default $0$. +This subroutine examines the edges of the graph associated with the +discretization mesh (and isomorphic to the sparsity pattern of a +linear system coefficient matrix), storing them as necessary into the +communication descriptor.

+

+
Type:
+
Asynchronous.
-
mg
-
the (global) number of rows of the problem. -
-Scope:global. -
-Type:optional. -
-Intent: in. -
-Specified as: an integer value. It is required if parts or -repl is specified, it is optional if vg is specified. -
-
parts
-
the subroutine that defines the partitioning scheme. -
-Scope:global. -
-Type:required. -
-Specified as: a subroutine. -
-
vl
-
Data allocation: the set of global indices - $vl(1:nl)$ belonging to the calling process. -
-Scope:local. -
-Type:optional. -
-Intent: in. -
-Specified as: an integer array. +
On Entry
+
-
nl
-
Data allocation: in a generalized block-row distribution the - number of indices belonging to the current process. +
nz
+
the number of points being inserted.
-Scope:local. +Scope: local.
-Type:optional. +Type: required.
Intent: in.
-Specified as: an integer value. May be specified together with -vl. +Specified as: an integer value.
-
repl
-
Data allocation: build a replicated index space (i.e. all - processes own all indices). +
ia
+
the indices of the starting vertex of the edges being inserted.
-Scope:global. +Scope: local.
-Type:optional. +Type: required.
Intent: in.
-Specified as: the logical value .true. +Specified as: an integer array of length $nz$.
-
globalcheck
-
Data allocation: do global checks on the local - index lists vl +
ja
+
the indices of the end vertex of the edges being inserted.
-Scope:global. +Scope: local.
-Type:optional. +Type: required.
Intent: in.
-Specified as: a logical value, default: .true. +Specified as: an integer array of length $nz$.
@@ -212,13 +121,13 @@ Specified as: a logical value, default: .true.
desc_a
-
the communication descriptor. +
the updated communication descriptor.
Scope:local.
Type:required.
-Intent: out. +Intent: inout.
Specified as: a structured data of type descdatapsb_desc_type.
@@ -234,189 +143,41 @@ Intent: out. An integer value; 0 means no error has been detected.
- -

Notes

    -
  1. One of the optional arguments parts, vg, - vl, nl or repl must be specified, thereby choosing the - initialization strategy as follows: -
    -
    parts
    -
    In this case we have a subroutine specifying the mapping - between global indices and process/local index pairs. If this - optional argument is specified, then it is mandatory to - specify the argument mg as well. - The subroutine must conform to the following interface: -
    -  interface 
    -     subroutine psb_parts(glob_index,mg,np,pv,nv)
    -       integer, intent (in)  :: glob_index,np,mg
    -       integer, intent (out) :: nv, pv(*)
    -     end subroutine psb_parts
    -  end interface
    -
    - The input arguments are: -
    -
    glob_index
    -
    The global index to be mapped; - -
    -
    np
    -
    The number of processes in the mapping; - -
    -
    mg
    -
    The total number of global rows in the mapping; - -
    -
    - The output arguments are: -
    -
    nv
    -
    The number of entries in pv; - -
    -
    pv
    -
    A vector containing the indices of the processes to - which the global index should be assigend; each entry must satisfy - -$0\le pv(i) < np$; if $nv>1$ we have an index assigned to multiple - processes, i.e. we have an overlap among the subdomains. - -
    -
    -
    -
    vg
    -
    In this case the association between an index and a process - is specified via an integer vector vg(1:mg); - each index -$i\in \{1\dots mg\}$ is assigned to process $vg(i)$. - The vector vg must be identical on all - calling processes; its entries may have the ranges $(0\dots np-1)$ - or $(1\dots np)$ according to the value of flag. - The size $mg$ may be specified via the optional argument mg; - the default is to use the entire vector vg, thus having - mg=size(vg). -
    -
    vl
    -
    In this case we are specifying the list of indices - vl(1:nl) assigned to the current process; thus, the global - problem size $mg$ is given by - the range of the aggregate of the individual vectors vl specified - in the calling processes. The size may be specified via the optional - argument nl; the default is to use the entire vector vl, thus having - nl=size(vl). - If globalcheck=.true. the subroutine will check how many - times each entry in the global index space $(1\dots mg)$ is - specified in the input lists vl, thus allowing for the - presence of overlap in the input, and checking for ``orphan'' - indices. If globalcheck=.false., the subroutine will not - check for overlap, and may be significantly faster, but the user - is implicitly guaranteeing that there are neither orphan nor - overlap indices. -
    -
    nl
    -
    If this argument is specified alone (i.e. without vl) - the result is a generalized row-block distribution in which each - process $I$ gets assigned a consecutive chunk of $N_I=nl$ global - indices. -
    -
    repl
    -
    This arguments specifies to replicate all indices on - all processes. This is a special purpose data allocation that is - useful in the construction of some multilevel preconditioners. -
    -
    +
  2. This routine may only be called if the descriptor is in the + build state;
  3. -
  4. On exit from this routine the descriptor is in the build - state. -
  5. -
  6. Calling the routine with vg or parts implies that - every process will scan the entire index space to figure out the - local indices. -
  7. -
  8. Overlapped indices are possible with both parts and - vl invocations. -
  9. -
  10. When the subroutine is invoked with vl in - conjunction with globalcheck=.true., it will perform a scan - of the index space to search for overlap or orphan indices. -
  11. -
  12. When the subroutine is invoked with vl in - conjunction with globalcheck=.false., no index space scan - will take place. Thus it is the responsibility of the user to make - sure that the indices specified in vl have neither orphans nor - overlaps; if this assumption fails, results will be - unpredictable. -
  13. -
  14. Orphan and overlap indices are - impossible by construction when the subroutine is invoked with - nl (alone), or vg. +
  15. This routine automatically ignores edges that do not +insist on the current process, i.e. edges for which neither the starting +nor the end vertex belong to the current process.


- next - + up - previous - contents
- Next: psb_cdins Communication - Up: Data management routines - Previous: Data management routines -   Next: psb_cdasb Communication + Up: Data management routines + Previous: psb_cdall Allocates +   Contents diff --git a/docs/html/node47.html b/docs/html/node47.html index da6cde42..f59a2e29 100644 --- a/docs/html/node47.html +++ b/docs/html/node47.html @@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds Jens Lippmann, Marek Rouchal, Martin Wilck and others --> -psb_cdins -- Communication descriptor insert routine - +psb_cdasb -- Communication descriptor assembly routine + @@ -20,98 +20,64 @@ original version by: Nikos Drakos, CBLU, University of Leeds - + - next - + up - previous - contents
- Next: psb_cdasb Communication - Up: Data management routines - Previous: psb_cdall Allocates -   Next: psb_cdcpy Copies + Up: Data management routines + Previous: psb_cdins Communication +   Contents

-

-psb_cdins -- Communication descriptor insert routine +

+psb_cdasb -- Communication descriptor assembly routine

-call psb_cdins(nz, ia, ja, desc_a, info)
+call psb_cdasb(desc_a, info)
 
-

-This subroutine examines the edges of the graph associated with the -discretization mesh (and isomorphic to the sparsity pattern of a -linear system coefficient matrix), storing them as necessary into the -communication descriptor. -

Type:
-
Asynchronous. +
Synchronous.
On Entry
-
nz
-
the number of points being inserted. -
-Scope: local. -
-Type: required. -
-Intent: in. -
-Specified as: an integer value. -
-
ia
-
the indices of the starting vertex of the edges being inserted. -
-Scope: local. -
-Type: required. -
-Intent: in. -
-Specified as: an integer array of length $nz$. -
-
ja
-
the indices of the end vertex of the edges being inserted. +
desc_a
+
the communication descriptor.
-Scope: local. +Scope:local.
-Type: required. +Type:required.
-Intent: in. +Intent: inout.
-Specified as: an integer array of length $nz$. +Specified as: a structured data of type descdatapsb_desc_type.
@@ -121,7 +87,7 @@ Specified as: an integer array of length
desc_a
-
the updated communication descriptor. +
the communication descriptor.
Scope:local.
@@ -146,40 +112,13 @@ An integer value; 0 means no error has been detected. Notes
    -
  1. This routine may only be called if the descriptor is in the - build state; -
  2. -
  3. This routine automatically ignores edges that do not -insist on the current process, i.e. edges for which neither the starting -nor the end vertex belong to the current process. +
  4. On exit from this routine the descriptor is in the assembled + state.

-


- - -next - -up - -previous - -contents -
- Next: psb_cdasb Communication - Up: Data management routines - Previous: psb_cdall Allocates -   Contents - +

diff --git a/docs/html/node48.html b/docs/html/node48.html index c37ecea8..494fb301 100644 --- a/docs/html/node48.html +++ b/docs/html/node48.html @@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds Jens Lippmann, Marek Rouchal, Martin Wilck and others --> -psb_cdasb -- Communication descriptor assembly routine - +psb_cdcpy -- Copies a communication descriptor + @@ -20,64 +20,66 @@ original version by: Nikos Drakos, CBLU, University of Leeds - + - next - + up - previous - contents
- Next: psb_cdcpy Copies - Up: Data management routines - Previous: psb_cdins Communication -   Next: psb_cdfree Frees + Up: Data management routines + Previous: psb_cdasb Communication +   Contents

-

-psb_cdasb -- Communication descriptor assembly routine +

+psb_cdcpy -- Copies a communication descriptor

-call psb_cdasb(desc_a, info)
+call psb_cdcpy(desc_in, desc_out, info)
 

Type:
-
Synchronous. +
Asynchronous.
On Entry
-
desc_a
+
desc_in
the communication descriptor.
Scope:local.
Type:required.
-Intent: inout. +Intent: in.
Specified as: a structured data of type descdatapsb_desc_type. + +

@@ -86,14 +88,14 @@ Specified as: a structured data of type descdatapsb_desc_type.
On Return
-
desc_a
-
the communication descriptor. +
desc_out
+
the communication descriptor copy.
Scope:local.
Type:required.
-Intent: inout. +Intent: out.
Specified as: a structured data of type descdatapsb_desc_type.
@@ -109,13 +111,6 @@ Intent: out. An integer value; 0 means no error has been detected. -Notes - -
    -
  1. On exit from this routine the descriptor is in the assembled - state. -
  2. -



diff --git a/docs/html/node49.html b/docs/html/node49.html index d228b272..00fa09f8 100644 --- a/docs/html/node49.html +++ b/docs/html/node49.html @@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds Jens Lippmann, Marek Rouchal, Martin Wilck and others --> -psb_cdcpy -- Copies a communication descriptor - +psb_cdfree -- Frees a communication descriptor + @@ -20,66 +20,64 @@ original version by: Nikos Drakos, CBLU, University of Leeds - + - next - + up - previous - contents
- Next: psb_cdfree Frees - Up: Data management routines - Previous: psb_cdasb Communication -   Next: psb_cdbldext Build + Up: Data management routines + Previous: psb_cdcpy Copies +   Contents

-

-psb_cdcpy -- Copies a communication descriptor +

+psb_cdfree -- Frees a communication descriptor

-call psb_cdcpy(desc_in, desc_out, info)
+call psb_cdfree(desc_a, info)
 

Type:
-
Asynchronous. +
Synchronous.
On Entry
-
desc_in
-
the communication descriptor. +
desc_a
+
the communication descriptor to be freed.
Scope:local.
Type:required.
-Intent: in. +Intent: inout.
Specified as: a structured data of type descdatapsb_desc_type. - -

@@ -88,17 +86,6 @@ Specified as: a structured data of type descdatapsb_desc_type.
On Return
-
desc_out
-
the communication descriptor copy. -
-Scope:local. -
-Type:required. -
-Intent: out. -
-Specified as: a structured data of type descdatapsb_desc_type. -
info
Error code.
diff --git a/docs/html/node5.html b/docs/html/node5.html index 3712399f..08ddb656 100644 --- a/docs/html/node5.html +++ b/docs/html/node5.html @@ -26,26 +26,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds - next - up - previous - contents
- Next: Next: Application structure - Up: Up: General overview - Previous: Previous: Basic Nomenclature -   Contents

@@ -128,7 +128,7 @@ internally defined in the PSBLAS software package: For example the psb_geins, psb_spins and - psb_cdins perform the same action (see 6) on + psb_cdins perform the same action (see 6) on dense matrices, sparse matrices and communication descriptors respectively. Interface overloading allows the usage of the same subroutine @@ -169,26 +169,26 @@ whose current value is 3.0.0


- next - up - previous - contents
- Next: Next: Application structure - Up: Up: General overview - Previous: Previous: Basic Nomenclature -   Contents diff --git a/docs/html/node50.html b/docs/html/node50.html index fde48e79..95eb82ff 100644 --- a/docs/html/node50.html +++ b/docs/html/node50.html @@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds Jens Lippmann, Marek Rouchal, Martin Wilck and others --> -psb_cdfree -- Frees a communication descriptor - +psb_cdbldext -- Build an extended communication descriptor + @@ -20,47 +20,51 @@ original version by: Nikos Drakos, CBLU, University of Leeds - + - next - + up - previous - contents
- Next: psb_cdbldext Build - Up: Data management routines - Previous: psb_cdcpy Copies -   Next: psb_spall Allocates + Up: Data management routines + Previous: psb_cdfree Frees +   Contents

-

-psb_cdfree -- Frees a communication descriptor +

+psb_cdbldext -- Build an extended communication + descriptor

-call psb_cdfree(desc_a, info)
+call psb_cdbldext(a,desc_a,nl,desc_out, info, extype)
 

+This subroutine builds an extended communication descriptor, based on +the input descriptor desc_a and on the stencil specified +through the input sparse matrix a.

Type:
Synchronous. @@ -68,16 +72,54 @@ call psb_cdfree(desc_a, info)
On Entry
+
a
+
A sparse matrix +Scope:local. +
+Type:required. +
+Intent: in. +
+Specified as: a structured data type. +
desc_a
-
the communication descriptor to be freed. +
the communication descriptor.
Scope:local.
Type:required.
-Intent: inout. +Intent: in.
-Specified as: a structured data of type descdatapsb_desc_type. +Specified as: a structured data of type spdatapsb_spmat_type. +
+
nl
+
the number of additional layers desired. +
+Scope:global. +
+Type:required. +
+Intent: in. +
+Specified as: an integer value $nl\ge 0$. +
+
extype
+
the kind of estension required. +
+Scope:global. +
+Type:optional . +
+Intent: in. +
+Specified as: an integer value +psb_ovt_xhal_, psb_ovt_asov_, default: psb_ovt_xhal_ + +

@@ -86,6 +128,17 @@ Specified as: a structured data of type descdatapsb_desc_type.
On Return
+
desc_out
+
the extended communication descriptor. +
+Scope:local. +
+Type:required. +
+Intent: inout. +
+Specified as: a structured data of type descdatapsb_desc_type. +
info
Error code.
@@ -100,7 +153,48 @@ An integer value; 0 means no error has been detected.

-


+Notes + +
    +
  1. Specifying psb_ovt_xhal_ for the extype argument + the user will obtain a descriptor for a domain partition in which + the additional layers are fetched as part of an (extended) halo; + however the index-to-process mapping is identical to that of the + base descriptor; +
  2. +
  3. Specifying psb_ovt_asov_ for the extype argument + the user will obtain a descriptor with an overlapped decomposition: + the additional layer is aggregated to the local subdomain (and thus + is an overlap), and a new halo extending beyond the last additional + layer is formed. +
  4. +
+ +

+


+ + +next + +up + +previous + +contents +
+ Next: psb_spall Allocates + Up: Data management routines + Previous: psb_cdfree Frees +   Contents + diff --git a/docs/html/node51.html b/docs/html/node51.html index 061c50d7..9560d5ad 100644 --- a/docs/html/node51.html +++ b/docs/html/node51.html @@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds Jens Lippmann, Marek Rouchal, Martin Wilck and others --> -psb_cdbldext -- Build an extended communication descriptor - +psb_spall -- Allocates a sparse matrix + @@ -20,51 +20,47 @@ original version by: Nikos Drakos, CBLU, University of Leeds - + - next - + up - previous - contents
- Next: psb_spall Allocates - Up: Data management routines - Previous: psb_cdfree Frees -   Next: psb_spins Insert + Up: Data management routines + Previous: psb_cdbldext Build +   Contents

-

-psb_cdbldext -- Build an extended communication - descriptor +

+psb_spall -- Allocates a sparse matrix

-call psb_cdbldext(a,desc_a,nl,desc_out, info, extype)
+call psb_spall(a, desc_a, info, nnz)
 

-This subroutine builds an extended communication descriptor, based on -the input descriptor desc_a and on the stencil specified -through the input sparse matrix a.

Type:
Synchronous. @@ -72,16 +68,6 @@ through the input sparse matrix a.
On Entry
-
a
-
A sparse matrix -Scope:local. -
-Type:required. -
-Intent: in. -
-Specified as: a structured data type. -
desc_a
the communication descriptor.
@@ -91,35 +77,19 @@ Type:required.
Intent: in.
-Specified as: a structured data of type spdatapsb_spmat_type. -
-
nl
-
the number of additional layers desired. -
-Scope:global. -
-Type:required. -
-Intent: in. -
-Specified as: an integer value $nl\ge 0$. +Specified as: a structured data of type descdatapsb_desc_type.
-
extype
-
the kind of estension required. +
nnz
+
An estimate of the number of nonzeroes in the local + part of the assembled matrix.
-Scope:global. +Scope: global.
-Type:optional . +Type: optional.
Intent: in.
-Specified as: an integer value -psb_ovt_xhal_, psb_ovt_asov_, default: psb_ovt_xhal_ - -

+Specified as: an integer value.

@@ -128,16 +98,16 @@ Specified as: an integer value
On Return
-
desc_out
-
the extended communication descriptor. +
a
+
the matrix to be allocated.
-Scope:local. +Scope:local
-Type:required. +Type:required
-Intent: inout. +Intent: out.
-Specified as: a structured data of type descdatapsb_desc_type. +Specified as: a structured data of type spdatapsb_spmat_type.
info
Error code. @@ -151,48 +121,47 @@ Intent: out. An integer value; 0 means no error has been detected.
- -

Notes

    -
  1. Specifying psb_ovt_xhal_ for the extype argument - the user will obtain a descriptor for a domain partition in which - the additional layers are fetched as part of an (extended) halo; - however the index-to-process mapping is identical to that of the - base descriptor; +
  2. On exit from this routine the sparse matrix is in the build + state.
  3. -
  4. Specifying psb_ovt_asov_ for the extype argument - the user will obtain a descriptor with an overlapped decomposition: - the additional layer is aggregated to the local subdomain (and thus - is an overlap), and a new halo extending beyond the last additional - layer is formed. +
  5. The descriptor may be in either the build or assembled state. +
  6. +
  7. Providing a good estimate for the number of nonzeroes $nnz$ in + the assembled matrix may substantially improve performance in the + matrix build phase, as it will reduce or eliminate the need for + (potentially multiple) data reallocations.


- next - + up - previous - contents
- Next: psb_spall Allocates - Up: Data management routines - Previous: psb_cdfree Frees -   Next: psb_spins Insert + Up: Data management routines + Previous: psb_cdbldext Build +   Contents diff --git a/docs/html/node52.html b/docs/html/node52.html index f3150cba..d654ec48 100644 --- a/docs/html/node52.html +++ b/docs/html/node52.html @@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds Jens Lippmann, Marek Rouchal, Martin Wilck and others --> -psb_spall -- Allocates a sparse matrix - +psb_spins -- Insert a cloud of elements into a sparse matrix + @@ -20,56 +20,57 @@ original version by: Nikos Drakos, CBLU, University of Leeds - + - next - + up - previous - contents
- Next: psb_spins Insert - Up: Data management routines - Previous: psb_cdbldext Build -   Next: psb_spasb Sparse + Up: Data management routines + Previous: psb_spall Allocates +   Contents

-

-psb_spall -- Allocates a sparse matrix +

+psb_spins -- Insert a cloud of elements into a sparse + matrix

-call psb_spall(a, desc_a, info, nnz)
+call psb_spins(nz, ia, ja, val, a, desc_a, info)
 

Type:
-
Synchronous. +
Asynchronous.
On Entry
-
desc_a
-
the communication descriptor. +
nz
+
the number of elements to be inserted.
Scope:local.
@@ -77,20 +78,65 @@ Type:required.
Intent: in.
-Specified as: a structured data of type descdatapsb_desc_type. +Specified as: an integer scalar.
-
nnz
-
An estimate of the number of nonzeroes in the local - part of the assembled matrix. +
ia
+
the row indices of the elements to be inserted.
-Scope: global. +Scope:local.
-Type: optional. +Type:required.
Intent: in.
-Specified as: an integer value. +Specified as: an integer array of size $nz$.
+
ja
+
the column indices of the elements to be inserted. +
+Scope:local. +
+Type:required. +
+Intent: in. +
+Specified as: an integer array of size $nz$. +
+
val
+
the elements to be inserted. +
+Scope:local. +
+Type:required. +
+Intent: in. +
+Specified as: an array of size $nz$. Must be of the same type and kind +of the aspk component of the sparse matrix $a$. +
+
desc_a
+
The communication descriptor. +
+Scope: local. +
+Type: required. +
+Intent: inout. +
+Specified as: a variable of type descdatapsb_desc_type. +

@@ -99,16 +145,27 @@ Specified as: an integer value.

a
-
the matrix to be allocated. +
the matrix into which elements will be inserted.
Scope:local
Type:required
-Intent: out. +Intent: inout.
Specified as: a structured data of type spdatapsb_spmat_type.
+
desc_a
+
The communication descriptor. +
+Scope: local. +
+Type: required. +
+Intent: inout. +
+Specified as: a variable of type descdatapsb_desc_type. +
info
Error code.
@@ -121,47 +178,59 @@ Intent: out. An integer value; 0 means no error has been detected.
+ +

Notes

    -
  1. On exit from this routine the sparse matrix is in the build - state. +
  2. On entry to this routine the descriptor may be in either the + build or assembled state.
  3. -
  4. The descriptor may be in either the build or assembled state. +
  5. On entry to this routine the sparse matrix may be in either the + build or update state.
  6. -
  7. Providing a good estimate for the number of nonzeroes $nnz$ in - the assembled matrix may substantially improve performance in the - matrix build phase, as it will reduce or eliminate the need for - (potentially multiple) data reallocations. +
  8. If the descriptor is in the build state, then the sparse matrix + must also be in the build state; the action of the routine is to + (implicitly) call psb_cdins to add entries to the sparsity + pattern; each sparse matrix entry implicitly defines a graph edge, + that is passed to the descriptor routine for the appropriate + processing. +
  9. +
  10. Any coefficients from matrix rows not assigned to the calling + process are silently ignored; +
  11. +
  12. If the descriptor is in the assembled state, then any entries in + the sparse matrix that would generate additional communication + requirements will be ignored; +
  13. +
  14. If the matrix is in the update state, any entries in positions + that were not present in the original matrix will be ignored.


- next - + up - previous - contents
- Next: psb_spins Insert - Up: Data management routines - Previous: psb_cdbldext Build -   Next: psb_spasb Sparse + Up: Data management routines + Previous: psb_spall Allocates +   Contents diff --git a/docs/html/node53.html b/docs/html/node53.html index 0f314239..645f2d12 100644 --- a/docs/html/node53.html +++ b/docs/html/node53.html @@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds Jens Lippmann, Marek Rouchal, Martin Wilck and others --> -psb_spins -- Insert a cloud of elements into a sparse matrix - +psb_spasb -- Sparse matrix assembly routine + @@ -20,57 +20,56 @@ original version by: Nikos Drakos, CBLU, University of Leeds - + - next - + up - previous - contents
- Next: psb_spasb Sparse - Up: Data management routines - Previous: psb_spall Allocates -   Next: psb_spfree Frees + Up: Data management routines + Previous: psb_spins Insert +   Contents

-

-psb_spins -- Insert a cloud of elements into a sparse - matrix +

+psb_spasb -- Sparse matrix assembly routine

-call psb_spins(nz, ia, ja, val, a, desc_a, info)
+call psb_spasb(a, desc_a, info, afmt, upd, dupl)
 

Type:
-
Asynchronous. +
Synchronous.
On Entry
-
nz
-
the number of elements to be inserted. +
desc_a
+
the communication descriptor.
Scope:local.
@@ -78,65 +77,42 @@ Type:required.
Intent: in.
-Specified as: an integer scalar. +Specified as: a structured data of type descdatapsb_desc_type.
-
ia
-
the row indices of the elements to be inserted. +
afmt
+
the storage format for the sparse matrix.
-Scope:local. +Scope: global.
-Type:required. +Type: optional.
Intent: in.
-Specified as: an integer array of size $nz$. +Specified as: an array of characters. Defalt: 'CSR'.
-
ja
-
the column indices of the elements to be inserted. +
upd
+
Provide for updates to the matrix coefficients.
-Scope:local. +Scope: global.
-Type:required. +Type: optional.
Intent: in.
-Specified as: an integer array of size $nz$. +Specified as: integer, possible values: psb_upd_srch_, psb_upd_perm_
-
val
-
the elements to be inserted. +
dupl
+
How to handle duplicate coefficients.
-Scope:local. +Scope: global.
-Type:required. +Type: optional.
Intent: in.
-Specified as: an array of size $nz$. Must be of the same type and kind -of the aspk component of the sparse matrix $a$. +Specified as: integer, possible values: psb_dupl_ovwrt_, +psb_dupl_add_, psb_dupl_err_.
-
desc_a
-
The communication descriptor. -
-Scope: local. -
-Type: required. -
-Intent: inout. -
-Specified as: a variable of type descdatapsb_desc_type. -

@@ -145,7 +121,7 @@ Specified as: a variable of type descdatapsb_desc_type.

a
-
the matrix into which elements will be inserted. +
the matrix to be assembled.
Scope:local
@@ -155,17 +131,6 @@ Intent: inout.
Specified as: a structured data of type spdatapsb_spmat_type.
-
desc_a
-
The communication descriptor. -
-Scope: local. -
-Type: required. -
-Intent: inout. -
-Specified as: a variable of type descdatapsb_desc_type. -
info
Error code.
@@ -183,54 +148,48 @@ An integer value; 0 means no error has been detected. Notes
    -
  1. On entry to this routine the descriptor may be in either the - build or assembled state. +
  2. On entry to this routine the descriptor must be in the + assembled state, i.e. psb_cdasb must already have been called.
  3. -
  4. On entry to this routine the sparse matrix may be in either the - build or update state. +
  5. The sparse matrix may be in either the build or update state;
  6. -
  7. If the descriptor is in the build state, then the sparse matrix - must also be in the build state; the action of the routine is to - (implicitly) call psb_cdins to add entries to the sparsity - pattern; each sparse matrix entry implicitly defines a graph edge, - that is passed to the descriptor routine for the appropriate - processing. +
  8. Duplicate entries are detected and handled in both build and + update state, with the exception of the error action that is only + taken in the build state, i.e. on the first assembly;
  9. -
  10. Any coefficients from matrix rows not assigned to the calling - process are silently ignored; +
  11. If the update choice is psb_upd_perm_, then subsequent + calls to psb_spins to update the matrix must be arranged in + such a way as to produce exactly the same sequence of coefficient + values as encountered at the first assembly;
  12. -
  13. If the descriptor is in the assembled state, then any entries in - the sparse matrix that would generate additional communication - requirements will be ignored; -
  14. -
  15. If the matrix is in the update state, any entries in positions - that were not present in the original matrix will be ignored. +
  16. On exit from this routine the matrix is in the assembled state, + and thus is suitable for the computational routines.


- next - + up - previous - contents
- Next: psb_spasb Sparse - Up: Data management routines - Previous: psb_spall Allocates -   Next: psb_spfree Frees + Up: Data management routines + Previous: psb_spins Insert +   Contents diff --git a/docs/html/node54.html b/docs/html/node54.html index a5029e33..b20062ac 100644 --- a/docs/html/node54.html +++ b/docs/html/node54.html @@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds Jens Lippmann, Marek Rouchal, Martin Wilck and others --> -psb_spasb -- Sparse matrix assembly routine - +psb_spfree -- Frees a sparse matrix + @@ -20,44 +20,44 @@ original version by: Nikos Drakos, CBLU, University of Leeds - + - next - + up - previous - contents
- Next: psb_spfree Frees - Up: Data management routines - Previous: psb_spins Insert -   Next: psb_sprn Reinit + Up: Data management routines + Previous: psb_spasb Sparse +   Contents

-

-psb_spasb -- Sparse matrix assembly routine +

+psb_spfree -- Frees a sparse matrix

-call psb_spasb(a, desc_a, info, afmt, upd, dupl)
+call psb_spfree(a, desc_a, info)
 

@@ -68,50 +68,27 @@ call psb_spasb(a, desc_a, info, afmt, upd, dupl)

On Entry
-
desc_a
-
the communication descriptor. -
-Scope:local. -
-Type:required. -
-Intent: in. -
-Specified as: a structured data of type descdatapsb_desc_type. -
-
afmt
-
the storage format for the sparse matrix. -
-Scope: global. -
-Type: optional. -
-Intent: in. -
-Specified as: an array of characters. Defalt: 'CSR'. -
-
upd
-
Provide for updates to the matrix coefficients. +
a
+
the matrix to be freed.
-Scope: global. +Scope:local
-Type: optional. +Type:required
-Intent: in. +Intent: inout.
-Specified as: integer, possible values: psb_upd_srch_, psb_upd_perm_ +Specified as: a structured data of type spdatapsb_spmat_type.
-
dupl
-
How to handle duplicate coefficients. +
desc_a
+
the communication descriptor.
-Scope: global. +Scope:local.
-Type: optional. +Type:required.
Intent: in.
-Specified as: integer, possible values: psb_dupl_ovwrt_, -psb_dupl_add_, psb_dupl_err_. +Specified as: a structured data of type descdatapsb_desc_type.
@@ -120,17 +97,6 @@ Specified as: integer, possible values: psb_dupl_ovwrt_,
On Return
-
a
-
the matrix to be assembled. -
-Scope:local -
-Type:required -
-Intent: inout. -
-Specified as: a structured data of type spdatapsb_spmat_type. -
info
Error code.
@@ -145,53 +111,7 @@ An integer value; 0 means no error has been detected.

-Notes - -

    -
  1. On entry to this routine the descriptor must be in the - assembled state, i.e. psb_cdasb must already have been called. -
  2. -
  3. The sparse matrix may be in either the build or update state; -
  4. -
  5. Duplicate entries are detected and handled in both build and - update state, with the exception of the error action that is only - taken in the build state, i.e. on the first assembly; -
  6. -
  7. If the update choice is psb_upd_perm_, then subsequent - calls to psb_spins to update the matrix must be arranged in - such a way as to produce exactly the same sequence of coefficient - values as encountered at the first assembly; -
  8. -
  9. On exit from this routine the matrix is in the assembled state, - and thus is suitable for the computational routines. -
  10. -
- -

-


- - -next - -up - -previous - -contents -
- Next: psb_spfree Frees - Up: Data management routines - Previous: psb_spins Insert -   Contents - +

diff --git a/docs/html/node55.html b/docs/html/node55.html index b84fe625..27c4e778 100644 --- a/docs/html/node55.html +++ b/docs/html/node55.html @@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds Jens Lippmann, Marek Rouchal, Martin Wilck and others --> -psb_spfree -- Frees a sparse matrix - +psb_sprn -- Reinit sparse matrix structure for psblas routines. + @@ -20,44 +20,45 @@ original version by: Nikos Drakos, CBLU, University of Leeds - + - next - + up - previous - contents
- Next: psb_sprn Reinit - Up: Data management routines - Previous: psb_spasb Sparse -   Next: psb_geall Allocates + Up: Data management routines + Previous: psb_spfree Frees +   Contents

-

-psb_spfree -- Frees a sparse matrix +

+psb_sprn -- Reinit sparse matrix structure for psblas + routines.

-call psb_spfree(a, desc_a, info)
+call psb_sprn(a, decsc_a, info, clear)
 

@@ -69,7 +70,7 @@ call psb_spfree(a, desc_a, info)

a
-
the matrix to be freed. +
the matrix to be reinitialized.
Scope:local
@@ -90,6 +91,17 @@ Intent: in.
Specified as: a structured data of type descdatapsb_desc_type.
+
clear
+
Choose whether to zero out matrix coefficients +
+Scope:local. +
+Type:optional. +
+Intent: in. +
+Default: true. +

@@ -109,6 +121,13 @@ Intent: out. An integer value; 0 means no error has been detected. +Notes + +

    +
  1. On exit from this routine the sparse matrix is in the update + state. +
  2. +



diff --git a/docs/html/node56.html b/docs/html/node56.html index e4064a1e..3c7cfdd7 100644 --- a/docs/html/node56.html +++ b/docs/html/node56.html @@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds Jens Lippmann, Marek Rouchal, Martin Wilck and others --> -psb_sprn -- Reinit sparse matrix structure for psblas routines. - +psb_geall -- Allocates a dense matrix + @@ -20,45 +20,44 @@ original version by: Nikos Drakos, CBLU, University of Leeds - + - next - + up - previous - contents
- Next: psb_geall Allocates - Up: Data management routines - Previous: psb_spfree Frees -   Next: psb_geins Dense + Up: Data management routines + Previous: psb_sprn Reinit +   Contents

-

-psb_sprn -- Reinit sparse matrix structure for psblas - routines. +

+psb_geall -- Allocates a dense matrix

-call psb_sprn(a, decsc_a, info, clear)
+call psb_geall(x, desc_a, info, n, lb)
 

@@ -69,38 +68,52 @@ call psb_sprn(a, decsc_a, info, clear)

On Entry
-
a
-
the matrix to be reinitialized. +
desc_a
+
The communication descriptor.
-Scope:local +Scope: local
-Type:required +Type: required
-Intent: inout. +Intent: in.
-Specified as: a structured data of type spdatapsb_spmat_type. -
-
desc_a
-
the communication descriptor. +Specified as: a variable of type descdatapsb_desc_type. +
+
n
+
The number of columns of the dense matrix to be allocated.
-Scope:local. +Scope: local
-Type:required. +Type: optional
Intent: in.
-Specified as: a structured data of type descdatapsb_desc_type. +Specified as: Integer scalar, default $1$. It is not a valid argument if $x$ is a +rank-1 array.
-
clear
-
Choose whether to zero out matrix coefficients +
lb
+
The lower bound for the column index range of the dense matrix to be allocated.
-Scope:local. +Scope: local
-Type:optional. +Type: optional
Intent: in.
-Default: true. +Specified as: Integer scalar, default $1$. It is not a valid argument if $x$ is a +rank-1 array.
@@ -109,6 +122,18 @@ Default: true.
On Return
+
x
+
The dense matrix to be allocated. +
+Scope: local +
+Type: required +
+Intent: out. +
+Specified as: a rank one or two array with the ALLOCATABLE +attribute, of type real, complex or integer. +
info
Error code.
@@ -121,13 +146,6 @@ Intent: out. An integer value; 0 means no error has been detected.
-Notes - -
    -
  1. On exit from this routine the sparse matrix is in the update - state. -
  2. -



diff --git a/docs/html/node57.html b/docs/html/node57.html index dc8458b0..f8a07e95 100644 --- a/docs/html/node57.html +++ b/docs/html/node57.html @@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds Jens Lippmann, Marek Rouchal, Martin Wilck and others --> -psb_geall -- Allocates a dense matrix - +psb_geins -- Dense matrix insertion routine + @@ -20,100 +20,123 @@ original version by: Nikos Drakos, CBLU, University of Leeds - + - next - + up - previous - contents
- Next: psb_geins Dense - Up: Data management routines - Previous: psb_sprn Reinit -   Next: psb_geasb Assembly + Up: Data management routines + Previous: psb_geall Allocates +   Contents

-

-psb_geall -- Allocates a dense matrix +

+psb_geins -- Dense matrix insertion routine

-call psb_geall(x, desc_a, info, n, lb)
+call psb_geins(m, irw, val, x, desc_a, info,dupl)
 

Type:
-
Synchronous. +
Asynchronous.
On Entry
-
desc_a
-
The communication descriptor. +
m
+
Number of rows in $val$ to be inserted.
-Scope: local +Scope:local.
-Type: required +Type:required.
Intent: in.
-Specified as: a variable of type descdatapsb_desc_type. -
-
n
-
The number of columns of the dense matrix to be allocated. +Specified as: an integer value. +
+
irw
+
Indices of the rows to be inserted. Specifically, row $i$ + of $val$ will be inserted into the local row corresponding to the + global row index $irw(i)$. +Scope:local.
-Scope: local +Type:required. +
+Intent: in. +
+Specified as: an integer array. +
+
val
+
the dense submatrix to be inserted. +
+Scope:local.
-Type: optional +Type:required.
Intent: in.
-Specified as: Integer scalar, default $1$. It is not a valid argument if $x$ is a -rank-1 array. +Specified as: a rank 1 or 2 array. +Specified as: an integer value.
-
lb
-
The lower bound for the column index range of the dense matrix to be allocated. +
desc_a
+
the communication descriptor.
-Scope: local +Scope:local.
-Type: optional +Type:required.
Intent: in.
-Specified as: Integer scalar, default $1$. It is not a valid argument if $x$ is a -rank-1 array. +Specified as: a structured data of type descdatapsb_desc_type. +
+
dupl
+
How to handle duplicate coefficients. +
+Scope: global. +
+Type: optional. +
+Intent: in. +
+Specified as: integer, possible values: psb_dupl_ovwrt_, +psb_dupl_add_.
@@ -123,13 +146,13 @@ rank-1 array.
x
-
The dense matrix to be allocated. +
the output dense matrix.
Scope: local
Type: required
-Intent: out. +Intent: inout.
Specified as: a rank one or two array with the ALLOCATABLE attribute, of type real, complex or integer. @@ -148,7 +171,41 @@ An integer value; 0 means no error has been detected.

-


+Notes + +
    +
  1. Dense vectors/matrices do not have an associated state; +
  2. +
  3. Duplicate entries are either overwritten or added, there is no + provision for raising an error condition. +
  4. +
+ +

+


+ + +next + +up + +previous + +contents +
+ Next: psb_geasb Assembly + Up: Data management routines + Previous: psb_geall Allocates +   Contents + diff --git a/docs/html/node58.html b/docs/html/node58.html index 63efe820..70d5c058 100644 --- a/docs/html/node58.html +++ b/docs/html/node58.html @@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds Jens Lippmann, Marek Rouchal, Martin Wilck and others --> -psb_geins -- Dense matrix insertion routine - +psb_geasb -- Assembly a dense matrix + @@ -20,124 +20,65 @@ original version by: Nikos Drakos, CBLU, University of Leeds - + - next - + up - previous - contents
- Next: psb_geasb Assembly - Up: Data management routines - Previous: psb_geall Allocates -   Next: psb_gefree Frees + Up: Data management routines + Previous: psb_geins Dense +   Contents

-

-psb_geins -- Dense matrix insertion routine +

+psb_geasb -- Assembly a dense matrix

-call psb_geins(m, irw, val, x, desc_a, info,dupl)
+call psb_geasb(x, desc_a, info)
 

Type:
-
Asynchronous. +
Synchronous.
On Entry
-
m
-
Number of rows in $val$ to be inserted. -
-Scope:local. -
-Type:required. -
-Intent: in. -
-Specified as: an integer value. -
-
irw
-
Indices of the rows to be inserted. Specifically, row $i$ - of $val$ will be inserted into the local row corresponding to the - global row index $irw(i)$. -Scope:local. -
-Type:required. -
-Intent: in. -
-Specified as: an integer array. -
-
val
-
the dense submatrix to be inserted. -
-Scope:local. -
-Type:required. -
-Intent: in. -
-Specified as: a rank 1 or 2 array. -Specified as: an integer value. -
desc_a
-
the communication descriptor. -
-Scope:local. -
-Type:required. -
-Intent: in. +
The communication descriptor.
-Specified as: a structured data of type descdatapsb_desc_type. -
-
dupl
-
How to handle duplicate coefficients. -
-Scope: global. +Scope: local
-Type: optional. +Type: required
Intent: in.
-Specified as: integer, possible values: psb_dupl_ovwrt_, -psb_dupl_add_. -
+Specified as: a variable of type descdatapsb_desc_type. +

@@ -146,7 +87,7 @@ Specified as: integer, possible values: psb_dupl_ovwrt_,

x
-
the output dense matrix. +
The dense matrix to be assembled.
Scope: local
@@ -169,43 +110,7 @@ Intent: out. An integer value; 0 means no error has been detected.
- -

-Notes - -

    -
  1. Dense vectors/matrices do not have an associated state; -
  2. -
  3. Duplicate entries are either overwritten or added, there is no - provision for raising an error condition. -
  4. -
- -

-


- - -next - -up - -previous - -contents -
- Next: psb_geasb Assembly - Up: Data management routines - Previous: psb_geall Allocates -   Contents - +

diff --git a/docs/html/node59.html b/docs/html/node59.html index ee570e06..5be73a71 100644 --- a/docs/html/node59.html +++ b/docs/html/node59.html @@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds Jens Lippmann, Marek Rouchal, Martin Wilck and others --> -psb_geasb -- Assembly a dense matrix - +psb_gefree -- Frees a dense matrix + @@ -20,44 +20,44 @@ original version by: Nikos Drakos, CBLU, University of Leeds - + - next - + up - previous - contents
- Next: psb_gefree Frees - Up: Data management routines - Previous: psb_geins Dense -   Next: psb_gelp Applies + Up: Data management routines + Previous: psb_geasb Assembly +   Contents

-

-psb_geasb -- Assembly a dense matrix +

+psb_gefree -- Frees a dense matrix

-call psb_geasb(x, desc_a, info)
+call psb_gefree(x, desc_a, info)
 

@@ -68,6 +68,21 @@ call psb_geasb(x, desc_a, info)

On Entry
+
x
+
The dense matrix to + be freed. +
+Scope: local +
+Type: required +
+Intent: inout. +
+Specified as: a rank one or two array with the ALLOCATABLE +attribute, of type real, complex or integer. +
+

+

desc_a
The communication descriptor.
@@ -86,18 +101,6 @@ Specified as: a variable of type descdatapsb_desc_type.
On Return
-
x
-
The dense matrix to be assembled. -
-Scope: local -
-Type: required -
-Intent: inout. -
-Specified as: a rank one or two array with the ALLOCATABLE -attribute, of type real, complex or integer. -
info
Error code.
@@ -110,6 +113,8 @@ Intent: out. An integer value; 0 means no error has been detected.
+ +



diff --git a/docs/html/node6.html b/docs/html/node6.html index dc134fd9..dc86daf7 100644 --- a/docs/html/node6.html +++ b/docs/html/node6.html @@ -26,26 +26,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds - next - up - previous - contents
- Next: Next: Programming model - Up: Up: General overview - Previous: Previous: Library contents -   Contents

@@ -244,26 +244,26 @@ from optimal.


- next - up - previous - contents
- Next: Next: Programming model - Up: Up: General overview - Previous: Previous: Library contents -   Contents diff --git a/docs/html/node60.html b/docs/html/node60.html index 8b978d17..5438798f 100644 --- a/docs/html/node60.html +++ b/docs/html/node60.html @@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds Jens Lippmann, Marek Rouchal, Martin Wilck and others --> -psb_gefree -- Frees a dense matrix - +psb_gelp -- Applies a left permutation to a dense matrix + @@ -20,71 +20,80 @@ original version by: Nikos Drakos, CBLU, University of Leeds - + - next - + up - previous - contents
- Next: psb_gelp Applies - Up: Data management routines - Previous: psb_geasb Assembly -   Next: psb_glob_to_loc Global + Up: Data management routines + Previous: psb_gefree Frees +   Contents

-

-psb_gefree -- Frees a dense matrix +

+psb_gelp -- Applies a left permutation to a dense + matrix

-call psb_gefree(x, desc_a, info)
+call psb_gelp(trans, iperm, x, info)
 

Type:
-
Synchronous. +
Asynchronous.
On Entry
-
x
-
The dense matrix to - be freed. +
trans
+
A character that specifies whether to permute $A$ or $A^T$.
Scope: local
Type: required
-Intent: inout. -
-Specified as: a rank one or two array with the ALLOCATABLE -attribute, of type real, complex or integer. +Intent: in.
-

-

-
desc_a
-
The communication descriptor. +Specified as: a single character with value 'N' for $A$ or 'T' for $A^T$. +
+
iperm
+
An integer array containing permutation information.
Scope: local
@@ -92,7 +101,18 @@ Type: required
Intent: in.
-Specified as: a variable of type descdatapsb_desc_type. +Specified as: an integer one-dimensional array. +
+
x
+
The dense matrix to be permuted. +
+Scope: local +
+Type: required +
+Intent: inout. +
+Specified as: a one or two dimensional array.
diff --git a/docs/html/node61.html b/docs/html/node61.html index 36ee0116..14ebdb5a 100644 --- a/docs/html/node61.html +++ b/docs/html/node61.html @@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds Jens Lippmann, Marek Rouchal, Martin Wilck and others --> -psb_gelp -- Applies a left permutation to a dense matrix - +psb_glob_to_loc -- Global to local indices convertion + @@ -20,45 +20,46 @@ original version by: Nikos Drakos, CBLU, University of Leeds - + - next - + up - previous - contents
- Next: psb_glob_to_loc Global - Up: Data management routines - Previous: psb_gefree Frees -   Next: psb_loc_to_glob Local + Up: Data management routines + Previous: psb_gelp Applies +   Contents

-

-psb_gelp -- Applies a left permutation to a dense - matrix +

+psb_glob_to_loc -- Global to local indices + convertion

-call psb_gelp(trans, iperm, x, info)
+call psb_glob_to_loc(x, y, desc_a, info, iact,owned)
+call psb_glob_to_loc(x, desc_a, info, iact,owned)
 

@@ -69,51 +70,51 @@ call psb_gelp(trans, iperm, x, info)

On Entry
-
trans
-
A character that specifies whether to permute $A$ or $A^T$. +
x
+
An integer vector of indices to be converted.
Scope: local
Type: required
-Intent: in. +Intent: in, inout.
-Specified as: a single character with value 'N' for $A$ or 'T' for $A^T$. +Specified as: a rank one integer array.
-
iperm
-
An integer array containing permutation information. +
desc_a
+
the communication descriptor.
-Scope: local +Scope:local.
-Type: required +Type:required.
Intent: in.
-Specified as: an integer one-dimensional array. -
-
x
-
The dense matrix to be permuted. +Specified as: a structured data of type descdatapsb_desc_type. +
+
iact
+
specifies action to be taken in case of range errors. +Scope: global
-Scope: local +Type: optional
-Type: required +Intent: in.
-Intent: inout. +Specified as: a character variable Ignore, Warning or +Abort, default Ignore. +
+
owned
+
Specfies valid range of input +Scope: global
-Specified as: a one or two dimensional array. -
+Type: optional +
+Intent: in. +
+If true, then only indices strictly owned by the current process are +considered valid, if false then halo indices are also +accepted. Default: false. +

@@ -121,6 +122,44 @@ Specified as: a one or two dimensional array.

On Return
+
x
+
If $y$ is not present, + then $x$ is overwritten with the translated integer indices. +Scope: global +
+Type: required +
+Intent: inout. +
+Specified as: a rank one integer array. +
+
y
+
If $y$ is present, + then $y$ is overwritten with the translated integer indices, and $x$ + is left unchanged. +Scope: global +
+Type: optional +
+Intent: out. +
+Specified as: a rank one integer array. +
info
Error code.
@@ -135,7 +174,42 @@ An integer value; 0 means no error has been detected.

-


+Notes + +
    +
  1. If an input index is out of range, then the corresponding output + index is set to a negative number; +
  2. +
  3. The default Ignore means that the negative output is the + only action taken on an out-of-range input. +
  4. +
+ +

+


+ + +next + +up + +previous + +contents +
+ Next: psb_loc_to_glob Local + Up: Data management routines + Previous: psb_gelp Applies +   Contents + diff --git a/docs/html/node62.html b/docs/html/node62.html index 3ec5cbd7..2023f791 100644 --- a/docs/html/node62.html +++ b/docs/html/node62.html @@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds Jens Lippmann, Marek Rouchal, Martin Wilck and others --> -psb_glob_to_loc -- Global to local indices convertion - +psb_loc_to_glob -- Local to global indices conversion + @@ -20,46 +20,46 @@ original version by: Nikos Drakos, CBLU, University of Leeds - + - next - + up - previous - contents
- Next: psb_loc_to_glob Local - Up: Data management routines - Previous: psb_gelp Applies -   Next: psb_is_owned + Up: Data management routines + Previous: psb_glob_to_loc Global +   Contents

-

-psb_glob_to_loc -- Global to local indices - convertion +

+psb_loc_to_glob -- Local to global indices + conversion

-call psb_glob_to_loc(x, y, desc_a, info, iact,owned)
-call psb_glob_to_loc(x, desc_a, info, iact,owned)
+call psb_loc_to_glob(x, y, desc_a, info, iact)
+call psb_loc_to_glob(x, desc_a, info, iact)
 

@@ -103,18 +103,6 @@ Intent: in. Specified as: a character variable Ignore, Warning or Abort, default Ignore.

-
owned
-
Specfies valid range of input -Scope: global -
-Type: optional -
-Intent: in. -
-If true, then only indices strictly owned by the current process are -considered valid, if false then halo indices are also -accepted. Default: false. -

@@ -125,11 +113,11 @@ accepted. Default: false.

x
If $y$ is not present, then $x$ is overwritten with the translated integer indices. Scope: global
@@ -142,14 +130,14 @@ Specified as: a rank one integer array.
y
If $y$ is present, + SRC="img28.png" + ALT="$y$"> is not present, then $y$ is overwritten with the translated integer indices, and $x$ is left unchanged. Scope: global @@ -173,41 +161,29 @@ An integer value; 0 means no error has been detected.
-

-Notes - -

    -
  1. If an input index is out of range, then the corresponding output - index is set to a negative number; -
  2. -
  3. The default Ignore means that the negative output is the - only action taken on an out-of-range input. -
  4. -
-


- next - + up - previous - contents
- Next: psb_loc_to_glob Local - Up: Data management routines - Previous: psb_gelp Applies -   Next: psb_is_owned + Up: Data management routines + Previous: psb_glob_to_loc Global +   Contents diff --git a/docs/html/node63.html b/docs/html/node63.html index 02adc208..8d314d3f 100644 --- a/docs/html/node63.html +++ b/docs/html/node63.html @@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds Jens Lippmann, Marek Rouchal, Martin Wilck and others --> -psb_loc_to_glob -- Local to global indices conversion - +psb_is_owned + @@ -20,46 +20,44 @@ original version by: Nikos Drakos, CBLU, University of Leeds - + - next - + up - previous - contents
- Next: psb_is_owned - Up: Data management routines - Previous: psb_glob_to_loc Global -   Next: psb_owned_index + Up: Data management routines + Previous: psb_loc_to_glob Local +   Contents

-

-psb_loc_to_glob -- Local to global indices - conversion +

+psb_is_owned

-call psb_loc_to_glob(x, y, desc_a, info, iact)
-call psb_loc_to_glob(x, desc_a, info, iact)
+call psb_is_owned(x, desc_a)
 

@@ -71,15 +69,15 @@ call psb_loc_to_glob(x, desc_a, info, iact)

x
-
An integer vector of indices to be converted. +
Integer index.
Scope: local
Type: required
-Intent: in, inout. +Intent: in.
-Specified as: a rank one integer array. +Specified as: a scalar integer.
desc_a
the communication descriptor. @@ -92,17 +90,6 @@ Intent: in.
Specified as: a structured data of type descdatapsb_desc_type.
-
iact
-
specifies action to be taken in case of range errors. -Scope: global -
-Type: optional -
-Intent: in. -
-Specified as: a character variable Ignore, Warning or -Abort, default Ignore. -

@@ -110,82 +97,32 @@ Specified as: a character variable Ignore, Warning or

On Return
-
x
-
If $y$ is not present, - then $x$ is overwritten with the translated integer indices. -Scope: global -
-Type: required -
-Intent: inout. -
-Specified as: a rank one integer array. -
-
y
-
If $y$ is not present, - then $y$ is overwritten with the translated integer indices, and Function value +
A logical mask which is true if + $x$ - is left unchanged. -Scope: global -
-Type: optional -
-Intent: out. -
-Specified as: a rank one integer array. -
-
info
-
Error code. -
+ SRC="img27.png" + ALT="$x$"> is owned by the current process Scope: local
-Type: required +Type: required
Intent: out. -
-An integer value; 0 means no error has been detected. -
+

-


- - -next - -up - -previous - -contents -
- Next: psb_is_owned - Up: Data management routines - Previous: psb_glob_to_loc Global -   Contents - +Notes + +
    +
  1. This routine returns a .true. value for an index + that is strictly owned by the current process, excluding the halo + indices +
  2. +
+ +

+


diff --git a/docs/html/node64.html b/docs/html/node64.html index edf09ef0..effa9e8e 100644 --- a/docs/html/node64.html +++ b/docs/html/node64.html @@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds Jens Lippmann, Marek Rouchal, Martin Wilck and others --> -psb_is_owned - +psb_owned_index + @@ -20,44 +20,44 @@ original version by: Nikos Drakos, CBLU, University of Leeds - + - next - + up - previous - contents
- Next: psb_owned_index - Up: Data management routines - Previous: psb_loc_to_glob Local -   Next: psb_is_local + Up: Data management routines + Previous: psb_is_owned +   Contents

-

-psb_is_owned +

+psb_owned_index

-call psb_is_owned(x, desc_a)
+call psb_owned_index(y, x, desc_a, info)
 

@@ -69,15 +69,15 @@ call psb_is_owned(x, desc_a)

x
-
Integer index. +
Integer indices.
Scope: local
Type: required
-Intent: in. +Intent: in, inout.
-Specified as: a scalar integer. +Specified as: a scalar or a rank one integer array.
desc_a
the communication descriptor. @@ -90,6 +90,17 @@ Intent: in.
Specified as: a structured data of type descdatapsb_desc_type.
+
iact
+
specifies action to be taken in case of range errors. +Scope: global +
+Type: optional +
+Intent: in. +
+Specified as: a character variable Ignore, Warning or +Abort, default Ignore. +

@@ -97,26 +108,39 @@ Specified as: a structured data of type descdatapsb_desc_type.

On Return
-
Function value
-
A logical mask which is true if +
y
+
A logical mask which is true for all corresponding entries of $x$ is owned by the current process + SRC="img27.png" + ALT="$x$"> that are owned by the current process Scope: local
Type: required
Intent: out. -
+
+Specified as: a scalar or rank one logical array. + +
info
+
Error code. +
+Scope: local +
+Type: required +
+Intent: out. +
+An integer value; 0 means no error has been detected. +

Notes

    -
  1. This routine returns a .true. value for an index - that is strictly owned by the current process, excluding the halo +
  2. This routine returns a .true. value for those indices + that are strictly owned by the current process, excluding the halo indices
diff --git a/docs/html/node65.html b/docs/html/node65.html index cbabc713..dc100621 100644 --- a/docs/html/node65.html +++ b/docs/html/node65.html @@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds Jens Lippmann, Marek Rouchal, Martin Wilck and others --> -psb_owned_index - +psb_is_local + @@ -20,44 +20,44 @@ original version by: Nikos Drakos, CBLU, University of Leeds - + - next - + up - previous - contents
- Next: psb_is_local - Up: Data management routines - Previous: psb_is_owned -   Next: psb_local_index + Up: Data management routines + Previous: psb_owned_index +   Contents

-

-psb_owned_index +

+psb_is_local

-call psb_owned_index(y, x, desc_a, info)
+call psb_is_local(x, desc_a)
 

@@ -69,15 +69,15 @@ call psb_owned_index(y, x, desc_a, info)

x
-
Integer indices. +
Integer index.
Scope: local
Type: required
-Intent: in, inout. +Intent: in.
-Specified as: a scalar or a rank one integer array. +Specified as: a scalar integer.
desc_a
the communication descriptor. @@ -90,17 +90,6 @@ Intent: in.
Specified as: a structured data of type descdatapsb_desc_type.
-
iact
-
specifies action to be taken in case of range errors. -Scope: global -
-Type: optional -
-Intent: in. -
-Specified as: a character variable Ignore, Warning or -Abort, default Ignore. -

@@ -108,39 +97,26 @@ Specified as: a character variable Ignore, Warning or

On Return
-
y
-
A logical mask which is true for all corresponding entries of +
Function value
+
A logical mask which is true if $x$ that are owned by the current process + SRC="img27.png" + ALT="$x$"> is local to the current process Scope: local
Type: required
Intent: out. -
-Specified as: a scalar or rank one logical array. -
-
info
-
Error code. -
-Scope: local -
-Type: required -
-Intent: out. -
-An integer value; 0 means no error has been detected. -
+

Notes

    -
  1. This routine returns a .true. value for those indices - that are strictly owned by the current process, excluding the halo +
  2. This routine returns a .true. value for an index + that is local to the current process, including the halo indices
diff --git a/docs/html/node66.html b/docs/html/node66.html index 7e4a7d06..ece8a0cd 100644 --- a/docs/html/node66.html +++ b/docs/html/node66.html @@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds Jens Lippmann, Marek Rouchal, Martin Wilck and others --> -psb_is_local - +psb_local_index + @@ -20,44 +20,44 @@ original version by: Nikos Drakos, CBLU, University of Leeds - + - next - + up - previous - contents
- Next: psb_local_index - Up: Data management routines - Previous: psb_owned_index -   Next: psb_get_boundary Extract + Up: Data management routines + Previous: psb_is_local +   Contents

-

-psb_is_local +

+psb_local_index

-call psb_is_local(x, desc_a)
+call psb_local_index(y, x, desc_a, info)
 

@@ -69,15 +69,15 @@ call psb_is_local(x, desc_a)

x
-
Integer index. +
Integer indices.
Scope: local
Type: required
-Intent: in. +Intent: in, inout.
-Specified as: a scalar integer. +Specified as: a scalar or a rank one integer array.
desc_a
the communication descriptor. @@ -90,6 +90,17 @@ Intent: in.
Specified as: a structured data of type descdatapsb_desc_type.
+
iact
+
specifies action to be taken in case of range errors. +Scope: global +
+Type: optional +
+Intent: in. +
+Specified as: a character variable Ignore, Warning or +Abort, default Ignore. +

@@ -97,27 +108,40 @@ Specified as: a structured data of type descdatapsb_desc_type.

On Return
-
Function value
-
A logical mask which is true if +
y
+
A logical mask which is true for all corresponding entries of $x$ is local to the current process + SRC="img27.png" + ALT="$x$"> that are local to the current process Scope: local
Type: required
Intent: out. -
+
+Specified as: a scalar or rank one logical array. + +
info
+
Error code. +
+Scope: local +
+Type: required +
+Intent: out. +
+An integer value; 0 means no error has been detected. +

Notes

    -
  1. This routine returns a .true. value for an index - that is local to the current process, including the halo - indices +
  2. This routine returns a .true. value for those indices + that are local to the current process, including the halo + indices.
diff --git a/docs/html/node67.html b/docs/html/node67.html index 51d15938..7c971837 100644 --- a/docs/html/node67.html +++ b/docs/html/node67.html @@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds Jens Lippmann, Marek Rouchal, Martin Wilck and others --> -psb_local_index - +psb_get_boundary -- Extract list of boundary elements + @@ -20,44 +20,44 @@ original version by: Nikos Drakos, CBLU, University of Leeds - + - next - + up - previous - contents
- Next: psb_get_boundary Extract - Up: Data management routines - Previous: psb_is_local -   Next: psb_get_overlap Extract + Up: Data management routines + Previous: psb_local_index +   Contents

-

-psb_local_index +

+psb_get_boundary -- Extract list of boundary elements

-call psb_local_index(y, x, desc_a, info)
+call psb_get_boundary(bndel, desc, info)
 

@@ -68,18 +68,7 @@ call psb_local_index(y, x, desc_a, info)

On Entry
-
x
-
Integer indices. -
-Scope: local -
-Type: required -
-Intent: in, inout. -
-Specified as: a scalar or a rank one integer array. -
-
desc_a
+
desc
the communication descriptor.
Scope:local. @@ -90,17 +79,6 @@ Intent: in.
Specified as: a structured data of type descdatapsb_desc_type.
-
iact
-
specifies action to be taken in case of range errors. -Scope: global -
-Type: optional -
-Intent: in. -
-Specified as: a character variable Ignore, Warning or -Abort, default Ignore. -

@@ -108,20 +86,19 @@ Specified as: a character variable Ignore, Warning or

On Return
-
y
-
A logical mask which is true for all corresponding entries of - $x$ that are local to the current process +
bndel
+
The list of boundary elements on the calling process, in + local numbering. +
Scope: local
Type: required
Intent: out.
-Specified as: a scalar or rank one logical array. -
+Specified as: a rank one array with the ALLOCATABLE +attribute, of type integer. +
info
Error code.
@@ -139,9 +116,12 @@ An integer value; 0 means no error has been detected. Notes
    -
  1. This routine returns a .true. value for those indices - that are local to the current process, including the halo - indices. +
  2. If there are no boundary elements (i.e., if the local part of + the connectivity graph is self-contained) the output vector is set + to the ``not allocated'' state. +
  3. +
  4. Otherwise the size of bndel will be exactly equal to the + number of boundary elements.
diff --git a/docs/html/node68.html b/docs/html/node68.html index f7683aa0..541a261b 100644 --- a/docs/html/node68.html +++ b/docs/html/node68.html @@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds Jens Lippmann, Marek Rouchal, Martin Wilck and others --> -psb_get_boundary -- Extract list of boundary elements - +psb_get_overlap -- Extract list of overlap elements + @@ -20,44 +20,44 @@ original version by: Nikos Drakos, CBLU, University of Leeds - + - next - + up - previous - contents
- Next: psb_get_overlap Extract - Up: Data management routines - Previous: psb_local_index -   Next: psb_sp_getrow Extract + Up: Data management routines + Previous: psb_get_boundary Extract +   Contents

-

-psb_get_boundary -- Extract list of boundary elements +

+psb_get_overlap -- Extract list of overlap elements

-call psb_get_boundary(bndel, desc, info)
+call psb_get_overlap(ovrel, desc, info)
 

@@ -86,8 +86,8 @@ Specified as: a structured data of type descdatapsb_desc_type.

On Return
-
bndel
-
The list of boundary elements on the calling process, in +
ovrel
+
The list of overlap elements on the calling process, in local numbering.
Scope: local @@ -116,12 +116,11 @@ An integer value; 0 means no error has been detected. Notes
    -
  1. If there are no boundary elements (i.e., if the local part of - the connectivity graph is self-contained) the output vector is set - to the ``not allocated'' state. +
  2. If there are no overlap elements the output vector is set + to the ``not allocated'' state.
  3. -
  4. Otherwise the size of bndel will be exactly equal to the - number of boundary elements. +
  5. Otherwise the size of ovrel will be exactly equal to the + number of overlap elements.
diff --git a/docs/html/node69.html b/docs/html/node69.html index c63d8c80..8e12aee7 100644 --- a/docs/html/node69.html +++ b/docs/html/node69.html @@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds Jens Lippmann, Marek Rouchal, Martin Wilck and others --> -psb_get_overlap -- Extract list of overlap elements - +psb_sp_getrow -- Extract row(s) from a sparse matrix + @@ -20,44 +20,45 @@ original version by: Nikos Drakos, CBLU, University of Leeds - + - next - + up - previous - contents
- Next: psb_sp_getrow Extract - Up: Data management routines - Previous: psb_get_boundary Extract -   Next: psb_sizeof Memory + Up: Data management routines + Previous: psb_get_overlap Extract +   Contents

-

-psb_get_overlap -- Extract list of overlap elements +

+psb_sp_getrow -- Extract row(s) from a sparse matrix

-call psb_get_overlap(ovrel, desc, info)
+call psb_sp_getrow(row, a, nz, ia, ja, val, info, &
+              & append, nzin, lrw)
 

@@ -68,16 +69,75 @@ call psb_get_overlap(ovrel, desc, info)

On Entry
-
desc
-
the communication descriptor. +
row
+
The (first) row to be extracted.
-Scope:local. +Scope:local
-Type:required. +Type:required +
+Intent: in. +
+Specified as: an integer $>0$. +
+
a
+
the matrix from which to get rows. +
+Scope:local +
+Type:required +
+Intent: in. +
+Specified as: a structured data of type spdatapsb_spmat_type. +
+
append
+
Whether to append or overwrite existing output. +
+Scope:local +
+Type:optional
Intent: in.
-Specified as: a structured data of type descdatapsb_desc_type. +Specified as: a logical value default: false (overwrite). +
+
nzin
+
Input size to be appended to. +
+Scope:local +
+Type:optional +
+Intent: in. +
+Specified as: an integer $>0$. When append is true, specifies how many +entries in the output vectors are already filled. +
+
lrw
+
The last row to be extracted. +
+Scope:local +
+Type:optional +
+Intent: in. +
+Specified as: an integer $>0$, default: $row$. + +

@@ -86,19 +146,50 @@ Specified as: a structured data of type descdatapsb_desc_type.
On Return
-
ovrel
-
The list of overlap elements on the calling process, in - local numbering. +
nz
+
the number of elements returned by this call.
-Scope: local +Scope:local.
-Type: required +Type:required.
Intent: out.
-Specified as: a rank one array with the ALLOCATABLE -attribute, of type integer. -
+Returned as: an integer scalar. + +
ia
+
the row indices. +
+Scope:local. +
+Type:required. +
+Intent: inout. +
+Specified as: an integer array with the ALLOCATABLE attribute. +
+
ja
+
the column indices of the elements to be inserted. +
+Scope:local. +
+Type:required. +
+Intent: inout. +
+Specified as: an integer array with the ALLOCATABLE attribute. +
+
val
+
the elements to be inserted. +
+Scope:local. +
+Type:required. +
+Intent: inout. +
+Specified as: a real array with the ALLOCATABLE attribute. +
info
Error code.
@@ -116,16 +207,51 @@ An integer value; 0 means no error has been detected. Notes
    -
  1. If there are no overlap elements the output vector is set - to the ``not allocated'' state. +
  2. The output $nz$ is always the size of the output generated by + the current call; thus, if append=.true., the total output + size will be $nzin+nz$, with the newly extracted coefficients stored in + entries nzin+1:nzin+nz of the array arguments;
  3. -
  4. Otherwise the size of ovrel will be exactly equal to the - number of overlap elements. +
  5. When append=.true. the output arrays are reallocated as + necessary; +
  6. +
  7. The row and column indices are returned in the local numbering + scheme; if the global numbering is desired, the user may employ the + psb_loc_to_glob routine on the output.

-


+
+ + +next + +up + +previous + +contents +
+ Next: psb_sizeof Memory + Up: Data management routines + Previous: psb_get_overlap Extract +   Contents + diff --git a/docs/html/node7.html b/docs/html/node7.html index 182e2bd3..1733c683 100644 --- a/docs/html/node7.html +++ b/docs/html/node7.html @@ -25,26 +25,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds - next - up - previous - contents
- Next: Next: Data Structures - Up: Up: General overview - Previous: Previous: Application structure -   Contents

@@ -72,7 +72,7 @@ the tools routines.

However there are many cases where no synchronization, and indeed no communication among processes, is implied; for instance, all the routines in -sec. 3.5 are only acting on the local data structures, +sec. 3.5 are only acting on the local data structures, and thus may be called independently. The most important case is that of the coefficient insertion routines: since the number of coefficients in the sparse and dense matrices varies among the @@ -96,26 +96,26 @@ as:


- next - up - previous - contents
- Next: Next: Data Structures - Up: Up: General overview - Previous: Previous: Application structure -   Contents diff --git a/docs/html/node70.html b/docs/html/node70.html index 71cb73cb..311730e3 100644 --- a/docs/html/node70.html +++ b/docs/html/node70.html @@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds Jens Lippmann, Marek Rouchal, Martin Wilck and others --> -psb_sp_getrow -- Extract row(s) from a sparse matrix - +psb_sizeof -- Memory occupation + @@ -20,45 +20,49 @@ original version by: Nikos Drakos, CBLU, University of Leeds - + - next - + up - previous - contents
- Next: psb_sizeof Memory - Up: Data management routines - Previous: psb_get_overlap Extract -   Next: Sorting utilities + Up: Data management routines + Previous: psb_sp_getrow Extract +   Contents

-

-psb_sp_getrow -- Extract row(s) from a sparse matrix +

+psb_sizeof -- Memory occupation

+

+This function computes the memory occupation of a PSBLAS object. +

-call psb_sp_getrow(row, a, nz, ia, ja, val, info, &
-              & append, nzin, lrw)
+isz = psb_sizeof(a)
+isz = psb_sizeof(desc_a)
+isz = psb_sizeof(prec)
 

@@ -69,189 +73,56 @@ call psb_sp_getrow(row, a, nz, ia, ja, val, info, &

On Entry
-
row
-
The (first) row to be extracted. -
-Scope:local -
-Type:required -
-Intent: in. -
-Specified as: an integer $>0$. -
a
-
the matrix from which to get rows. +
A sparse matrix +$A$.
-Scope:local +Scope: local
-Type:required +Type: required
Intent: in.
Specified as: a structured data of type spdatapsb_spmat_type.
-
append
-
Whether to append or overwrite existing output. -
-Scope:local -
-Type:optional -
-Intent: in. +
desc_a
+
Communication descriptor.
-Specified as: a logical value default: false (overwrite). -
-
nzin
-
Input size to be appended to. -
-Scope:local +Scope: local
-Type:optional +Type: required
Intent: in.
-Specified as: an integer $>0$. When append is true, specifies how many -entries in the output vectors are already filled. +Specified as: a structured data of type descdatapsb_desc_type.
-
lrw
-
The last row to be extracted. -
-Scope:local +
prec
+
Scope: local
-Type:optional +Type: required
Intent: in.
-Specified as: an integer $>0$, default: $row$. - -

+Specified as: a preconditioner data structure precdatapsb_prec_type.

- - -

-

On Return
-
nz
-
the number of elements returned by this call. -
-Scope:local. -
-Type:required. -
-Intent: out. -
-Returned as: an integer scalar. -
-
ia
-
the row indices. -
-Scope:local. -
-Type:required. -
-Intent: inout. -
-Specified as: an integer array with the ALLOCATABLE attribute. -
-
ja
-
the column indices of the elements to be inserted. -
-Scope:local. -
-Type:required. -
-Intent: inout. -
-Specified as: an integer array with the ALLOCATABLE attribute. -
-
val
-
the elements to be inserted. -
-Scope:local. -
-Type:required. -
-Intent: inout. -
-Specified as: a real array with the ALLOCATABLE attribute. -
-
info
-
Error code. +
Function value
+
The memory occupation of the object specified in + the calling sequence, in bytes.
Scope: local
-Type: required -
-Intent: out. -
-An integer value; 0 means no error has been detected. +Returned as: an integer(psb_long_int_k_) number.

-Notes - -

    -
  1. The output $nz$ is always the size of the output generated by - the current call; thus, if append=.true., the total output - size will be $nzin+nz$, with the newly extracted coefficients stored in - entries nzin+1:nzin+nz of the array arguments; -
  2. -
  3. When append=.true. the output arrays are reallocated as - necessary; -
  4. -
  5. The row and column indices are returned in the local numbering - scheme; if the global numbering is desired, the user may employ the - psb_loc_to_glob routine on the output. -
  6. -
- -

-


- - -next - -up - -previous - -contents -
- Next: psb_sizeof Memory - Up: Data management routines - Previous: psb_get_overlap Extract -   Contents - +

diff --git a/docs/html/node71.html b/docs/html/node71.html index 1c34bc51..ffb6d548 100644 --- a/docs/html/node71.html +++ b/docs/html/node71.html @@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds Jens Lippmann, Marek Rouchal, Martin Wilck and others --> -psb_sizeof -- Memory occupation - +Sorting utilities + @@ -18,111 +18,276 @@ original version by: Nikos Drakos, CBLU, University of Leeds - - + - next - + up - previous - contents
- Next: Sorting utilities - Up: Data management routines - Previous: psb_sp_getrow Extract -   Next: Parallel environment routines + Up: Data management routines + Previous: psb_sizeof Memory +   Contents

-

-psb_sizeof -- Memory occupation +

+Sorting utilities

-This function computes the memory occupation of a PSBLAS object. +psb_msort -- Sorting by the Merge-sort + algorithm

+psb_qsort -- Sorting by the Quicksort + algorithm + +

+psb_hsort -- Sorting by the Heapsort algorithm

-isz = psb_sizeof(a)
-isz = psb_sizeof(desc_a)
-isz = psb_sizeof(prec)
+call psb_msort(x,ix,dir,flag)
+call psb_qsort(x,ix,dir,flag)
+call psb_hsort(x,ix,dir,flag)
 

+These serial routines sort a sequence $X$ into ascending or +descending order. The argument meaning is identical for the three +calls; the only difference is the algorithm used to accomplish the +task (see Usage Notes below).

Type:
Asynchronous.
-
On Entry
+
On Entry
-
a
-
A sparse matrix -$A$. +
x
+
The sequence to be sorted.
-Scope: local +Type:required.
-Type: required -
-Intent: in. -
-Specified as: a structured data of type spdatapsb_spmat_type. +Specified as: an integer, real or complex array of rank 1.
-
desc_a
-
Communication descriptor. +
ix
+
A vector of indices.
-Scope: local +Type:optional.
-Type: required +Specified as: an integer array of (at least) the same size as $X$. +
+
dir
+
The desired ordering.
-Intent: in. +Type:optional.
-Specified as: a structured data of type descdatapsb_desc_type. +Specified as: an integer value:
+
Integer and real data:
+
psb_sort_up_, +psb_sort_down_, psb_asort_up_, psb_asort_down_; +default psb_sort_up_.
-
prec
-
Scope: local -
-Type: required +
Complex data:
+
psb_lsort_up_, +psb_lsort_down_, psb_asort_up_, psb_asort_down_; +default psb_lsort_up_. +
+
+
+
flag
+
Whether to keep the original values in $IX$.
-Intent: in. +Type:optional.
-Specified as: a preconditioner data structure precdatapsb_prec_type. +Specified as: an integer value psb_sort_ovw_idx_ or +psb_sort_keep_idx_; default psb_sort_ovw_idx_. + +

+
+ +

+

On Return
-
Function value
-
The memory occupation of the object specified in - the calling sequence, in bytes. +
x
+
The sequence of values, in the chosen ordering.
-Scope: local +Type:required.
-Returned as: an integer(psb_long_int_k_) number. +Specified as: an integer, real or complex array of rank 1. +
+
ix
+
A vector of indices. +
+Type: Optional +
+An integer array of rank 1, whose entries are moved to the same +position as the corresponding entries in $x$.

-


+ +

+Notes + +

    +
  1. For integer or real data the sorting can be performed in the up/down direction, on the + natural or absolute values; +
  2. +
  3. For complex data the sorting can be done in a lexicographic + order (i.e.: sort on the real part with ties broken according to + the imaginary part) or on the absolute values; +
  4. +
  5. The routines return the items in the chosen ordering; the + output difference is the handling of ties (i.e. items with an + equal value) in the original input. With the merge-sort algorithm + ties are preserved in the same relative order as they had in the + original sequence, while this is not guaranteed for quicksort or + heapsort; +
  6. +
  7. If +$flag = psb\_sort\_ovw\_idx\_$ then the entries in $ix(1:n)$ + where $n$ is the size of $x$ are initialized to +$ix(i) \leftarrow
+i$; thus, upon return from the subroutine, for each + index $i$ we have in $ix(i)$ the position that the item $x(i)$ + occupied in the original data sequence; +
  8. +
  9. If +$flag = psb\_sort\_keep\_idx\_$ the routine will assume that + the entries in $ix(:)$ have already been initialized by the user; +
  10. +
  11. The three sorting algorithms have a similar $O(n \log n)$ expected + running time; in the average case quicksort will be the + fastest and merge-sort the slowest. However note that: + +
      +
    1. The worst case running time for quicksort is $O(n^2)$; the algorithm + implemented here follows the well-known median-of-three heuristics, + but the worst case may still apply; +
    2. +
    3. The worst case running time for merge-sort and heap-sort is + $O(n \log n)$ as the average case; +
    4. +
    5. The merge-sort algorithm is implemented to take advantage of + subsequences that may be already in the desired ordering prior to + the subroutine call; this situation is relatively common when + dealing with groups of indices of sparse matrix entries, thus + merge-sort is often the preferred choice when a sorting is needed + by other routines in the library. +
    6. +
    +
  12. +
+ +

+ +

+


+ + +next + +up + +previous + +contents +
+ Next: Parallel environment routines + Up: Data management routines + Previous: psb_sizeof Memory +   Contents + diff --git a/docs/html/node72.html b/docs/html/node72.html index dd9331c4..1eb18f5b 100644 --- a/docs/html/node72.html +++ b/docs/html/node72.html @@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds Jens Lippmann, Marek Rouchal, Martin Wilck and others --> -Sorting utilities - +Parallel environment routines + @@ -18,276 +18,88 @@ original version by: Nikos Drakos, CBLU, University of Leeds - - + + + - next - + up - previous - contents
- Next: Parallel environment routines - Up: Data management routines - Previous: psb_sizeof Memory -   Next: psb_init Initializes + Up: userhtml + Previous: Sorting utilities +   Contents

-

-Sorting utilities -

- -

-psb_msort -- Sorting by the Merge-sort - algorithm - -

-psb_qsort -- Sorting by the Quicksort - algorithm - -

-psb_hsort -- Sorting by the Heapsort algorithm -

-call psb_msort(x,ix,dir,flag)
-call psb_qsort(x,ix,dir,flag)
-call psb_hsort(x,ix,dir,flag)
-
- -

-These serial routines sort a sequence $X$ into ascending or -descending order. The argument meaning is identical for the three -calls; the only difference is the algorithm used to accomplish the -task (see Usage Notes below). -

-
Type:
-
Asynchronous. -
-
On Entry
-
-
-
x
-
The sequence to be sorted. -
-Type:required. -
-Specified as: an integer, real or complex array of rank 1. -
-
ix
-
A vector of indices. -
-Type:optional. -
-Specified as: an integer array of (at least) the same size as $X$. -
-
dir
-
The desired ordering. -
-Type:optional. -
-Specified as: an integer value:
-
Integer and real data:
-
psb_sort_up_, -psb_sort_down_, psb_asort_up_, psb_asort_down_; -default psb_sort_up_. -
-
Complex data:
-
psb_lsort_up_, -psb_lsort_down_, psb_asort_up_, psb_asort_down_; -default psb_lsort_up_. -
-
-
-
flag
-
Whether to keep the original values in $IX$. -
-Type:optional. -
-Specified as: an integer value psb_sort_ovw_idx_ or -psb_sort_keep_idx_; default psb_sort_ovw_idx_. - -

-

-
- -

-

-
On Return
-
-
-
x
-
The sequence of values, in the chosen ordering. +

+
-Type:required. -
-Specified as: an integer, real or complex array of rank 1. -

-
ix
-
A vector of indices. -
-Type: Optional -
-An integer array of rank 1, whose entries are moved to the same -position as the corresponding entries in $x$. -
-
- -

- -

-Notes - -

    -
  1. For integer or real data the sorting can be performed in the up/down direction, on the - natural or absolute values; -
  2. -
  3. For complex data the sorting can be done in a lexicographic - order (i.e.: sort on the real part with ties broken according to - the imaginary part) or on the absolute values; -
  4. -
  5. The routines return the items in the chosen ordering; the - output difference is the handling of ties (i.e. items with an - equal value) in the original input. With the merge-sort algorithm - ties are preserved in the same relative order as they had in the - original sequence, while this is not guaranteed for quicksort or - heapsort; -
  6. -
  7. If -$flag = psb\_sort\_ovw\_idx\_$ then the entries in $ix(1:n)$ - where $n$ is the size of $x$ are initialized to -$ix(i) \leftarrow
-i$; thus, upon return from the subroutine, for each - index $i$ we have in $ix(i)$ the position that the item $x(i)$ - occupied in the original data sequence; -
  8. -
  9. If -$flag = psb\_sort\_keep\_idx\_$ the routine will assume that - the entries in $ix(:)$ have already been initialized by the user; -
  10. -
  11. The three sorting algorithms have a similar $O(n \log n)$ expected - running time; in the average case quicksort will be the - fastest and merge-sort the slowest. However note that: - -
      -
    1. The worst case running time for quicksort is $O(n^2)$; the algorithm - implemented here follows the well-known median-of-three heuristics, - but the worst case may still apply; -
    2. -
    3. The worst case running time for merge-sort and heap-sort is - $O(n \log n)$ as the average case; -
    4. -
    5. The merge-sort algorithm is implemented to take advantage of - subsequences that may be already in the desired ordering prior to - the subroutine call; this situation is relatively common when - dealing with groups of indices of sparse matrix entries, thus - merge-sort is often the preferred choice when a sorting is needed - by other routines in the library. -
    6. -
    -
  12. -
+Parallel environment routines +

- -

-


- - -next - -up - -previous - -contents -
- Next: Parallel environment routines - Up: Data management routines - Previous: psb_sizeof Memory -   Contents - +

+ +Subsections + + + +

diff --git a/docs/html/node73.html b/docs/html/node73.html index 1a5b7433..3d0cfa8a 100644 --- a/docs/html/node73.html +++ b/docs/html/node73.html @@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds Jens Lippmann, Marek Rouchal, Martin Wilck and others --> -Parallel environment routines - +psb_init -- Initializes PSBLAS parallel environment + @@ -18,88 +18,161 @@ original version by: Nikos Drakos, CBLU, University of Leeds - - - + + + - next - + up - previous - contents
- Next: psb_init Initializes - Up: userhtml - Previous: Sorting utilities -   Next: psb_info Return + Up: Parallel environment routines + Previous: Parallel environment routines +   Contents

-

- +

+psb_init -- Initializes PSBLAS parallel environment +

+ +

+

+call psb_init(icontxt, np, basectxt, ids)
+
+ +

+This subroutine initializes the PSBLAS parallel environment, defining +a virtual parallel machine. +

+
Type:
+
Synchronous. +
+
On Entry
+
+
+
np
+
Number of processes in the PSBLAS virtual parallel machine. +
+Scope: global. +
+Type: optional. +
+Intent: in. +
+Specified as: an integer value. Default: use all available processes. +
+
basectxt
+
the initial communication context. The new context + will be defined from the processes participating in the initial one.
-Parallel environment routines - +Scope: global. +
+Type: optional. +
+Intent: in. +
+Specified as: an integer value. Default: use MPI_COMM_WORLD. +
+
ids
+
Identities of the processes to use for the new context; the + argument is ignored when np is not specified. This allows the + processes in the new environment to be in an order different from the + original one. +
+Scope: global. +
+Type: optional. +
+Intent: in. +
+Specified as: an integer array. Default: use the indices $(0\dots np-1)$. +
+

-


- -Subsections +
+
On Return
+
+
+
icontxt
+
the communication context identifying the virtual + parallel machine. Note that this is always a duplicate of + basectxt, so that library communications are completely + separated from other communication operations. +
+Scope: global. +
+Type: required. +
+Intent: out. +
+Specified as: an integer variable. +
+
+ +

+Notes + +

    +
  1. A call to this routine must precede any other PSBLAS call. +
  2. +
  3. It is an error to specify a value for $np$ greater than the + number of processes available in the underlying base parallel + environment. +
  4. +
- - -

+

+


+ + +next + +up + +previous + +contents +
+ Next: psb_info Return + Up: Parallel environment routines + Previous: Parallel environment routines +   Contents + diff --git a/docs/html/node74.html b/docs/html/node74.html index a5490e31..0661fe90 100644 --- a/docs/html/node74.html +++ b/docs/html/node74.html @@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds Jens Lippmann, Marek Rouchal, Martin Wilck and others --> -psb_init -- Initializes PSBLAS parallel environment - +psb_info -- Return information about PSBLAS parallel environment + @@ -20,95 +20,68 @@ original version by: Nikos Drakos, CBLU, University of Leeds - + - next - + up - previous - contents
- Next: psb_info Return - Up: Parallel environment routines - Previous: Parallel environment routines -   Next: psb_exit Exit + Up: Parallel environment routines + Previous: psb_init Initializes +   Contents

-

-psb_init -- Initializes PSBLAS parallel environment +

+psb_info -- Return information about PSBLAS parallel + environment

-call psb_init(icontxt, np, basectxt, ids)
+call psb_info(icontxt, iam, np)
 

-This subroutine initializes the PSBLAS parallel environment, defining +This subroutine returns information about the PSBLAS parallel environment, defining a virtual parallel machine.

Type:
-
Synchronous. +
Asynchronous.
On Entry
-
np
-
Number of processes in the PSBLAS virtual parallel machine. -
-Scope: global. -
-Type: optional. -
-Intent: in. -
-Specified as: an integer value. Default: use all available processes. -
-
basectxt
-
the initial communication context. The new context - will be defined from the processes participating in the initial one. -
-Scope: global. -
-Type: optional. -
-Intent: in. -
-Specified as: an integer value. Default: use MPI_COMM_WORLD. -
-
ids
-
Identities of the processes to use for the new context; the - argument is ignored when np is not specified. This allows the - processes in the new environment to be in an order different from the - original one. +
icontxt
+
the communication context identifying the virtual + parallel machine.
Scope: global.
-Type: optional. +Type: required.
Intent: in.
-Specified as: an integer array. Default: use the indices $(0\dots np-1)$. +Specified as: an integer variable.
@@ -117,11 +90,24 @@ Specified as: an integer array. Default: use the indices On Return
-
icontxt
-
the communication context identifying the virtual - parallel machine. Note that this is always a duplicate of - basectxt, so that library communications are completely - separated from other communication operations. +
iam
+
Identifier of current process in the PSBLAS virtual parallel machine. +
+Scope: local. +
+Type: required. +
+Intent: out. +
+Specified as: an integer value. +$-1 \le iam \le np-1$
+
np
+
Number of processes in the PSBLAS virtual parallel machine.
Scope: global.
@@ -129,48 +115,56 @@ Type: required.
Intent: out.
-Specified as: an integer variable. -
+Specified as: an integer variable.

Notes

    -
  1. A call to this routine must precede any other PSBLAS call. +
  2. For processes in the virtual parallel machine the identifier + will satisfy +$0 \le iam \le np-1$;
  3. -
  4. It is an error to specify a value for $np$ greater than the - number of processes available in the underlying base parallel - environment. +
  5. If the user has requested on psb_init a number of + processes less than the total available in the parallel execution + environment, the remaining processes will have on return $iam=-1$; + the only call involving icontxt that any such process may + execute is to psb_exit.


- next - + up - previous - contents
- Next: psb_info Return - Up: Parallel environment routines - Previous: Parallel environment routines -   Next: psb_exit Exit + Up: Parallel environment routines + Previous: psb_init Initializes +   Contents diff --git a/docs/html/node75.html b/docs/html/node75.html index 6284718f..c6a54eac 100644 --- a/docs/html/node75.html +++ b/docs/html/node75.html @@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds Jens Lippmann, Marek Rouchal, Martin Wilck and others --> -psb_info -- Return information about PSBLAS parallel environment - +psb_exit -- Exit from PSBLAS parallel environment + @@ -20,53 +20,52 @@ original version by: Nikos Drakos, CBLU, University of Leeds - + - next - + up - previous - contents
- Next: psb_exit Exit - Up: Parallel environment routines - Previous: psb_init Initializes -   Next: psb_get_mpicomm Get + Up: Parallel environment routines + Previous: psb_info Return +   Contents

-

-psb_info -- Return information about PSBLAS parallel - environment +

+psb_exit -- Exit from PSBLAS parallel environment

-call psb_info(icontxt, iam, np)
+call psb_exit(icontxt)
+call psb_exit(icontxt,close)
 

-This subroutine returns information about the PSBLAS parallel environment, defining -a virtual parallel machine. +This subroutine exits from the PSBLAS parallel virtual machine.

Type:
-
Asynchronous. +
Synchronous.
On Entry
@@ -83,88 +82,67 @@ Intent: in.
Specified as: an integer variable.
-
- -

-

-
On Return
-
-
-
iam
-
Identifier of current process in the PSBLAS virtual parallel machine. -
-Scope: local. -
-Type: required. -
-Intent: out. -
-Specified as: an integer value. -$-1 \le iam \le np-1$
-
np
-
Number of processes in the PSBLAS virtual parallel machine. +
close
+
Whether to close all data structures related to the + virtual parallel machine, besides those associated with icontxt.
Scope: global.
-Type: required. +Type: optional.
-Intent: out. +Intent: in.
-Specified as: an integer variable.
+Specified as: a logical variable, default value: true. +

Notes

    -
  1. For processes in the virtual parallel machine the identifier - will satisfy -This routine may be called even if a previous call to + psb_info has returned with $0 \le iam \le np-1$; + ALT="$iam=-1$">; indeed, it it is the only + routine that may be called with argument icontxt in this + situation.
  2. -
  3. If the user has requested on psb_init a number of - processes less than the total available in the parallel execution - environment, the remaining processes will have on return $iam=-1$; - the only call involving icontxt that any such process may - execute is to psb_exit. +
  4. A call to this routine with close=.true. implies a call + to MPI_Finalize, after which no parallel routine may be called. +
  5. +
  6. If the user whishes to use multiple communication contexts in the + same program, or to enter and exit multiple times into the parallel + environment, this routine may be called to + selectively close the contexts with close=.false., while on + the last call it should be called with close=.true. to + shutdown in a clean way the entire parallel environment.


- next - + up - previous - contents
- Next: psb_exit Exit - Up: Parallel environment routines - Previous: psb_init Initializes -   Next: psb_get_mpicomm Get + Up: Parallel environment routines + Previous: psb_info Return +   Contents diff --git a/docs/html/node76.html b/docs/html/node76.html index ca8b3727..590d57fe 100644 --- a/docs/html/node76.html +++ b/docs/html/node76.html @@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds Jens Lippmann, Marek Rouchal, Martin Wilck and others --> -psb_exit -- Exit from PSBLAS parallel environment - +psb_get_mpicomm -- Get the MPI communicator + @@ -20,52 +20,51 @@ original version by: Nikos Drakos, CBLU, University of Leeds - + - next - + up - previous - contents
- Next: psb_get_mpicomm Get - Up: Parallel environment routines - Previous: psb_info Return -   Next: psb_get_rank Get + Up: Parallel environment routines + Previous: psb_exit Exit +   Contents

-

-psb_exit -- Exit from PSBLAS parallel environment +

+psb_get_mpicomm -- Get the MPI communicator

-call psb_exit(icontxt)
-call psb_exit(icontxt,close)
+call psb_get_mpicomm(icontxt, icomm)
 

-This subroutine exits from the PSBLAS parallel virtual machine. +This subroutine returns the MPI communicator associated with a PSBLAS context

Type:
-
Synchronous. +
Asynchronous.
On Entry
@@ -82,69 +81,26 @@ Intent: in.
Specified as: an integer variable.
-
close
-
Whether to close all data structures related to the - virtual parallel machine, besides those associated with icontxt. +
+ +

+

+
On Return
+
+
+
icomm
+
The MPI communicator associated with the PSBLAS virtual parallel machine.
Scope: global.
-Type: optional. -
-Intent: in. +Type: required.
-Specified as: a logical variable, default value: true. -
+Intent: out. +

-Notes - -

    -
  1. This routine may be called even if a previous call to - psb_info has returned with $iam=-1$; indeed, it it is the only - routine that may be called with argument icontxt in this - situation. -
  2. -
  3. A call to this routine with close=.true. implies a call - to MPI_Finalize, after which no parallel routine may be called. -
  4. -
  5. If the user whishes to use multiple communication contexts in the - same program, or to enter and exit multiple times into the parallel - environment, this routine may be called to - selectively close the contexts with close=.false., while on - the last call it should be called with close=.true. to - shutdown in a clean way the entire parallel environment. -
  6. -
- -

-


- - -next - -up - -previous - -contents -
- Next: psb_get_mpicomm Get - Up: Parallel environment routines - Previous: psb_info Return -   Contents - +

diff --git a/docs/html/node77.html b/docs/html/node77.html index 65f59e21..1522930a 100644 --- a/docs/html/node77.html +++ b/docs/html/node77.html @@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds Jens Lippmann, Marek Rouchal, Martin Wilck and others --> -psb_get_mpicomm -- Get the MPI communicator - +psb_get_rank -- Get the MPI rank + @@ -20,48 +20,51 @@ original version by: Nikos Drakos, CBLU, University of Leeds - + - next - + up - previous - contents
- Next: psb_get_rank Get - Up: Parallel environment routines - Previous: psb_exit Exit -   Next: psb_wtime Wall + Up: Parallel environment routines + Previous: psb_get_mpicomm Get +   Contents

-

-psb_get_mpicomm -- Get the MPI communicator +

+psb_get_rank -- Get the MPI rank

-call psb_get_mpicomm(icontxt, icomm)
+call psb_get_rank(rank, icontxt, id)
 

-This subroutine returns the MPI communicator associated with a PSBLAS context +This subroutine returns the MPI rank of the PSBLAS process $id$

Type:
Asynchronous. @@ -81,6 +84,22 @@ Intent: in.
Specified as: an integer variable.
+
id
+
Identifier of a process in the PSBLAS virtual parallel machine. +
+Scope: local. +
+Type: required. +
+Intent: in. +
+Specified as: an integer value. +$0 \le id \le np-1$

@@ -88,10 +107,13 @@ Specified as: an integer variable.

On Return
-
icomm
-
The MPI communicator associated with the PSBLAS virtual parallel machine. +
rank
+
The MPI rank associated with the PSBLAS process $id$.
-Scope: global. +Scope: local.
Type: required.
diff --git a/docs/html/node78.html b/docs/html/node78.html index d90565bf..39783067 100644 --- a/docs/html/node78.html +++ b/docs/html/node78.html @@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds Jens Lippmann, Marek Rouchal, Martin Wilck and others --> -psb_get_rank -- Get the MPI rank - +psb_wtime -- Wall clock timing + @@ -20,105 +20,61 @@ original version by: Nikos Drakos, CBLU, University of Leeds - + - next - + up - previous - contents
- Next: psb_wtime Wall - Up: Parallel environment routines - Previous: psb_get_mpicomm Get -   Next: psb_barrier Sinchronization + Up: Parallel environment routines + Previous: psb_get_rank Get +   Contents

-

-psb_get_rank -- Get the MPI rank +

+psb_wtime -- Wall clock timing

-call psb_get_rank(rank, icontxt, id)
+time = psb_wtime()
 

-This subroutine returns the MPI rank of the PSBLAS process $id$ +This function returns a wall clock timer. The resolution of the timer +is dependent on the underlying parallel environment implementation.

Type:
Asynchronous.
-
On Entry
+
On Exit
-
icontxt
-
the communication context identifying the virtual - parallel machine. -
-Scope: global. -
-Type: required. -
-Intent: in. -
-Specified as: an integer variable. -
-
id
-
Identifier of a process in the PSBLAS virtual parallel machine. -
-Scope: local. +
Function value
+
the elapsed time in seconds.
-Type: required. -
-Intent: in. -
-Specified as: an integer value. -$0 \le id \le np-1$
-
- -

-

-
On Return
-
+Returned as: a real(psb_dpk_) variable.
-
rank
-
The MPI rank associated with the PSBLAS process $id$. -
-Scope: local. -
-Type: required. -
-Intent: out. -

diff --git a/docs/html/node79.html b/docs/html/node79.html index d577720f..60e904d8 100644 --- a/docs/html/node79.html +++ b/docs/html/node79.html @@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds Jens Lippmann, Marek Rouchal, Martin Wilck and others --> -psb_wtime -- Wall clock timing - +psb_barrier -- Sinchronization point parallel environment + @@ -20,60 +20,68 @@ original version by: Nikos Drakos, CBLU, University of Leeds - + - next - + up - previous - contents
- Next: psb_barrier Sinchronization - Up: Parallel environment routines - Previous: psb_get_rank Get -   Next: psb_abort Abort + Up: Parallel environment routines + Previous: psb_wtime Wall +   Contents

-

-psb_wtime -- Wall clock timing +

+psb_barrier -- Sinchronization point parallel + environment

-time = psb_wtime()
+call psb_barrier(icontxt)
 

-This function returns a wall clock timer. The resolution of the timer -is dependent on the underlying parallel environment implementation. +This subroutine acts as an explicit synchronization point for the PSBLAS +parallel virtual machine.

Type:
-
Asynchronous. +
Synchronous.
-
On Exit
+
On Entry
-
Function value
-
the elapsed time in seconds. +
icontxt
+
the communication context identifying the virtual + parallel machine. +
+Scope: global. +
+Type: required. +
+Intent: in.
-Returned as: a real(psb_dpk_) variable. +Specified as: an integer variable.
diff --git a/docs/html/node8.html b/docs/html/node8.html index c3ff2fa1..69c0646a 100644 --- a/docs/html/node8.html +++ b/docs/html/node8.html @@ -18,7 +18,7 @@ original version by: Nikos Drakos, CBLU, University of Leeds - + @@ -26,26 +26,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds - next - up - previous - contents
- Next: Next: Descriptor data structure - Up: Up: userhtml - Previous: Previous: Programming model -   Contents

@@ -91,60 +91,55 @@ it is only used for the psb_sizeof utility. Subsections diff --git a/docs/html/node80.html b/docs/html/node80.html index 1f08bafc..be179d4d 100644 --- a/docs/html/node80.html +++ b/docs/html/node80.html @@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds Jens Lippmann, Marek Rouchal, Martin Wilck and others --> -psb_barrier -- Sinchronization point parallel environment - +psb_abort -- Abort a computation + @@ -20,53 +20,51 @@ original version by: Nikos Drakos, CBLU, University of Leeds - + - next - + up - previous - contents
- Next: psb_abort Abort - Up: Parallel environment routines - Previous: psb_wtime Wall -   Next: psb_bcast Broadcast + Up: Parallel environment routines + Previous: psb_barrier Sinchronization +   Contents

-

-psb_barrier -- Sinchronization point parallel - environment +

+psb_abort -- Abort a computation

-call psb_barrier(icontxt)
+call psb_abort(icontxt)
 

-This subroutine acts as an explicit synchronization point for the PSBLAS -parallel virtual machine. +This subroutine aborts computation on the parallel virtual machine.

Type:
-
Synchronous. +
Asynchronous.
On Entry
diff --git a/docs/html/node81.html b/docs/html/node81.html index d3e85383..8e69eaca 100644 --- a/docs/html/node81.html +++ b/docs/html/node81.html @@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds Jens Lippmann, Marek Rouchal, Martin Wilck and others --> -psb_abort -- Abort a computation - +psb_bcast -- Broadcast data + @@ -20,51 +20,52 @@ original version by: Nikos Drakos, CBLU, University of Leeds - + - next - + up - previous - contents
- Next: psb_bcast Broadcast - Up: Parallel environment routines - Previous: psb_barrier Sinchronization -   Next: psb_sum Global + Up: Parallel environment routines + Previous: psb_abort Abort +   Contents

-

-psb_abort -- Abort a computation +

+psb_bcast -- Broadcast data

-call psb_abort(icontxt)
+call psb_bcast(icontxt, dat, root)
 

-This subroutine aborts computation on the parallel virtual machine. +This subroutine implements a broadcast operation based on the +underlying communication library.

Type:
-
Asynchronous. +
Synchronous.
On Entry
@@ -81,10 +82,81 @@ Intent: in.
Specified as: an integer variable.
+
dat
+
On the root process, the data to be broadcast. +
+Scope: global. +
+Type: required. +
+Intent: inout. +
+Specified as: an integer, real or complex variable, which may be a +scalar, or a rank 1 or 2 array, or a character or logical variable, +which may be a scalar or rank 1 array. Type, kind, rank and size must agree on all processes. +
+
root
+
Root process holding data to be broadcast. +
+Scope: global. +
+Type: optional. +
+Intent: in. +
+Specified as: an integer value +$0<= root <= np-1$, default 0

-


+
+
On Return
+
+
+
dat
+
On processes other than root, the data to be broadcast. +
+Scope: global. +
+Type: required. +
+Intent: inout. +
+Specified as: an integer, real or complex variable, which may be a +scalar, or a rank 1 or 2 array, or a character or logical scalar. Type, kind, rank and size must agree on all processes. +
+
+ +

+


+ + +next + +up + +previous + +contents +
+ Next: psb_sum Global + Up: Parallel environment routines + Previous: psb_abort Abort +   Contents + diff --git a/docs/html/node82.html b/docs/html/node82.html index f27df5a7..892f3389 100644 --- a/docs/html/node82.html +++ b/docs/html/node82.html @@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds Jens Lippmann, Marek Rouchal, Martin Wilck and others --> -psb_bcast -- Broadcast data - +psb_sum -- Global sum + @@ -20,48 +20,48 @@ original version by: Nikos Drakos, CBLU, University of Leeds - + - next - + up - previous - contents
- Next: psb_sum Global - Up: Parallel environment routines - Previous: psb_abort Abort -   Next: psb_max Global + Up: Parallel environment routines + Previous: psb_bcast Broadcast +   Contents

-

-psb_bcast -- Broadcast data +

+psb_sum -- Global sum

-call psb_bcast(icontxt, dat, root)
+call psb_sum(icontxt, dat, root)
 

-This subroutine implements a broadcast operation based on the +This subroutine implements a sum reduction operation based on the underlying communication library.

Type:
@@ -83,7 +83,7 @@ Intent: in. Specified as: an integer variable.
dat
-
On the root process, the data to be broadcast. +
The local contribution to the global sum.
Scope: global.
@@ -92,11 +92,14 @@ Type: required. Intent: inout.
Specified as: an integer, real or complex variable, which may be a -scalar, or a rank 1 or 2 array, or a character or logical variable, -which may be a scalar or rank 1 array. Type, kind, rank and size must agree on all processes. +scalar, or a rank 1 or 2 array. Type, kind, rank and size must agree on all processes.
root
-
Root process holding data to be broadcast. +
Process to hold the final sum, or $-1$ to make it available + on all processes.
Scope: global.
@@ -105,12 +108,12 @@ Type: optional. Intent: in.
Specified as: an integer value $0<= root <= np-1$, default 0
+ ALT="$-1<= root <= np-1$">, default -1.

@@ -119,7 +122,7 @@ Specified as: an integer value - next - + up - previous - contents
- Next: psb_sum Global - Up: Parallel environment routines - Previous: psb_abort Abort -   Next: psb_max Global + Up: Parallel environment routines + Previous: psb_bcast Broadcast +   Contents diff --git a/docs/html/node83.html b/docs/html/node83.html index d817218b..9addeac9 100644 --- a/docs/html/node83.html +++ b/docs/html/node83.html @@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds Jens Lippmann, Marek Rouchal, Martin Wilck and others --> -psb_sum -- Global sum - +psb_max -- Global maximum + @@ -20,49 +20,49 @@ original version by: Nikos Drakos, CBLU, University of Leeds - + - next - + up - previous - contents
- Next: psb_max Global - Up: Parallel environment routines - Previous: psb_bcast Broadcast -   Next: psb_min Global + Up: Parallel environment routines + Previous: psb_sum Global +   Contents

-

-psb_sum -- Global sum +

+psb_max -- Global maximum

-call psb_sum(icontxt, dat, root)
+call psb_max(icontxt, dat, root)
 

-This subroutine implements a sum reduction operation based on the -underlying communication library. +This subroutine implements a maximum valuereduction +operation based on the underlying communication library.

Type:
Synchronous. @@ -83,21 +83,21 @@ Intent: in. Specified as: an integer variable.
dat
-
The local contribution to the global sum. +
The local contribution to the global maximum.
-Scope: global. +Scope: local.
Type: required.
Intent: inout.
-Specified as: an integer, real or complex variable, which may be a +Specified as: an integer or real variable, which may be a scalar, or a rank 1 or 2 array. Type, kind, rank and size must agree on all processes.
root
-
Process to hold the final sum, or Process to hold the final maximum, or $-1$ to make it available on all processes.
@@ -112,8 +112,9 @@ Specified as: an integer value $-1<= root <= np-1$, default -1.
+ SRC="img129.png" + ALT="$-1<= root <= np-1$">, default -1. +

@@ -122,18 +123,16 @@ Specified as: an integer value - next - + up - previous - contents
- Next: psb_max Global - Up: Parallel environment routines - Previous: psb_bcast Broadcast -   Next: psb_min Global + Up: Parallel environment routines + Previous: psb_sum Global +   Contents diff --git a/docs/html/node84.html b/docs/html/node84.html index 0b27f94e..578c01e7 100644 --- a/docs/html/node84.html +++ b/docs/html/node84.html @@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds Jens Lippmann, Marek Rouchal, Martin Wilck and others --> -psb_max -- Global maximum - +psb_min -- Global minimum + @@ -20,48 +20,48 @@ original version by: Nikos Drakos, CBLU, University of Leeds - + - next - + up - previous - contents
- Next: psb_min Global - Up: Parallel environment routines - Previous: psb_sum Global -   Next: psb_amx Global + Up: Parallel environment routines + Previous: psb_max Global +   Contents

-

-psb_max -- Global maximum +

+psb_min -- Global minimum

-call psb_max(icontxt, dat, root)
+call psb_min(icontxt, dat, root)
 

-This subroutine implements a maximum valuereduction +This subroutine implements a minimum value reduction operation based on the underlying communication library.

Type:
@@ -83,7 +83,7 @@ Intent: in. Specified as: an integer variable.
dat
-
The local contribution to the global maximum. +
The local contribution to the global minimum.
Scope: local.
@@ -91,13 +91,13 @@ Type: required.
Intent: inout.
-Specified as: an integer or real variable, which may be a +Specified as: an integer or real variable, which may be a scalar, or a rank 1 or 2 array. Type, kind, rank and size must agree on all processes.
root
-
Process to hold the final maximum, or Process to hold the final value, or $-1$ to make it available on all processes.
@@ -112,7 +112,7 @@ Specified as: an integer value $-1<= root <= np-1$, default -1.
@@ -123,16 +123,18 @@ Specified as: an integer value - next - + up - previous - contents
- Next: psb_min Global - Up: Parallel environment routines - Previous: psb_sum Global -   Next: psb_amx Global + Up: Parallel environment routines + Previous: psb_max Global +   Contents diff --git a/docs/html/node85.html b/docs/html/node85.html index a7ab4668..77bc82f6 100644 --- a/docs/html/node85.html +++ b/docs/html/node85.html @@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds Jens Lippmann, Marek Rouchal, Martin Wilck and others --> -psb_min -- Global minimum - +psb_amx -- Global maximum absolute value + @@ -20,48 +20,48 @@ original version by: Nikos Drakos, CBLU, University of Leeds - + - next - + up - previous - contents
- Next: psb_amx Global - Up: Parallel environment routines - Previous: psb_max Global -   Next: psb_amn Global + Up: Parallel environment routines + Previous: psb_min Global +   Contents

-

-psb_min -- Global minimum +

+psb_amx -- Global maximum absolute value

-call psb_min(icontxt, dat, root)
+call psb_amx(icontxt, dat, root)
 

-This subroutine implements a minimum value reduction +This subroutine implements a maximum absolute value reduction operation based on the underlying communication library.

Type:
@@ -83,7 +83,7 @@ Intent: in. Specified as: an integer variable.
dat
-
The local contribution to the global minimum. +
The local contribution to the global maximum.
Scope: local.
@@ -91,13 +91,13 @@ Type: required.
Intent: inout.
-Specified as: an integer or real variable, which may be a +Specified as: an integer, real or complex variable, which may be a scalar, or a rank 1 or 2 array. Type, kind, rank and size must agree on all processes.
root
Process to hold the final value, or $-1$ to make it available on all processes.
@@ -112,7 +112,7 @@ Specified as: an integer value $-1<= root <= np-1$, default -1.
@@ -123,7 +123,7 @@ Specified as: an integer value - next - + up - previous - contents
- Next: psb_amx Global - Up: Parallel environment routines - Previous: psb_max Global -   Next: psb_amn Global + Up: Parallel environment routines + Previous: psb_min Global +   Contents diff --git a/docs/html/node86.html b/docs/html/node86.html index 95c34f13..6286cdd8 100644 --- a/docs/html/node86.html +++ b/docs/html/node86.html @@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds Jens Lippmann, Marek Rouchal, Martin Wilck and others --> -psb_amx -- Global maximum absolute value - +psb_amn -- Global minimum absolute value + @@ -20,48 +20,48 @@ original version by: Nikos Drakos, CBLU, University of Leeds - + - next - + up - previous - contents
- Next: psb_amn Global - Up: Parallel environment routines - Previous: psb_min Global -   Next: psb_snd Send + Up: Parallel environment routines + Previous: psb_amx Global +   Contents

-

-psb_amx -- Global maximum absolute value +

+psb_amn -- Global minimum absolute value

-call psb_amx(icontxt, dat, root)
+call psb_amn(icontxt, dat, root)
 

-This subroutine implements a maximum absolute value reduction +This subroutine implements a minimum absolute value reduction operation based on the underlying communication library.

Type:
@@ -83,7 +83,7 @@ Intent: in. Specified as: an integer variable.
dat
-
The local contribution to the global maximum. +
The local contribution to the global minimum.
Scope: local.
@@ -97,7 +97,7 @@ scalar, or a rank 1 or 2 array. Type, kind, rank and size must agree on all pro
root
Process to hold the final value, or $-1$ to make it available on all processes.
@@ -112,7 +112,7 @@ Specified as: an integer value $-1<= root <= np-1$, default -1.
@@ -123,7 +123,7 @@ Specified as: an integer value - next - + up - previous - contents
- Next: psb_amn Global - Up: Parallel environment routines - Previous: psb_min Global -   Next: psb_snd Send + Up: Parallel environment routines + Previous: psb_amx Global +   Contents diff --git a/docs/html/node87.html b/docs/html/node87.html index 776b3c95..4da69119 100644 --- a/docs/html/node87.html +++ b/docs/html/node87.html @@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds Jens Lippmann, Marek Rouchal, Martin Wilck and others --> -psb_amn -- Global minimum absolute value - +psb_snd -- Send data + @@ -20,52 +20,51 @@ original version by: Nikos Drakos, CBLU, University of Leeds - + - next - + up - previous - contents
- Next: psb_snd Send - Up: Parallel environment routines - Previous: psb_amx Global -   Next: psb_rcv Receive + Up: Parallel environment routines + Previous: psb_amn Global +   Contents

-

-psb_amn -- Global minimum absolute value +

+psb_snd -- Send data

-call psb_amn(icontxt, dat, root)
+call psb_snd(icontxt, dat, dst, m)
 

-This subroutine implements a minimum absolute value reduction -operation based on the underlying communication library. +This subroutine sends a packet of data to a destination.

Type:
-
Synchronous. +
Synchronous: see usage notes.
On Entry
@@ -83,38 +82,65 @@ Intent: in. Specified as: an integer variable.
dat
-
The local contribution to the global minimum. +
The data to be sent.
Scope: local.
Type: required.
-Intent: inout. +Intent: in.
Specified as: an integer, real or complex variable, which may be a -scalar, or a rank 1 or 2 array. Type, kind, rank and size must agree on all processes. +scalar, or a rank 1 or 2 array, or a character or logical scalar. Type, kind and rank must agree on sender and receiver process; if $m$ is +not specified, size must agree as well.
-
root
-
Process to hold the final value, or $-1$ to make it available - on all processes. +
dst
+
Destination process.
Scope: global.
-Type: optional. +Type: required.
Intent: in.
Specified as: an integer value $-1<= root <= np-1$, default -1. + WIDTH="145" HEIGHT="30" ALIGN="MIDDLE" BORDER="0" + SRC="img131.png" + ALT="$0<= dst <= np-1$">.
+
m
+
Number of rows. +
+Scope: global. +
+Type: Optional. +
+Intent: in. +
+Specified as: an integer value +$0<= m <= size(dat,1)$. +
+When $dat$ is a rank 2 array, specifies the number of rows to be sent +independently of the leading dimension $size(dat,1)$; must have the +same value on sending and receiving processes. +

@@ -122,57 +148,43 @@ Specified as: an integer value - next - + up - previous - contents
- Next: psb_snd Send - Up: Parallel environment routines - Previous: psb_amx Global -   Next: psb_rcv Receive + Up: Parallel environment routines + Previous: psb_amn Global +   Contents diff --git a/docs/html/node88.html b/docs/html/node88.html index 824aeb55..171b803a 100644 --- a/docs/html/node88.html +++ b/docs/html/node88.html @@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds Jens Lippmann, Marek Rouchal, Martin Wilck and others --> -psb_snd -- Send data - +psb_rcv -- Receive data + @@ -18,53 +18,52 @@ original version by: Nikos Drakos, CBLU, University of Leeds - - + - next - + up - previous - contents
- Next: psb_rcv Receive - Up: Parallel environment routines - Previous: psb_amn Global -   Next: Error handling + Up: Parallel environment routines + Previous: psb_snd Send +   Contents

-

-psb_snd -- Send data +

+psb_rcv -- Receive data

-call psb_snd(icontxt, dat, dst, m)
+call psb_rcv(icontxt, dat, src, m)
 

-This subroutine sends a packet of data to a destination. +This subroutine receives a packet of data to a destination.

Type:
-
Synchronous: see usage notes. +
Synchronous: see usage notes.
On Entry
@@ -81,24 +80,8 @@ Intent: in.
Specified as: an integer variable.
-
dat
-
The data to be sent. -
-Scope: local. -
-Type: required. -
-Intent: in. -
-Specified as: an integer, real or complex variable, which may be a -scalar, or a rank 1 or 2 array, or a character or logical scalar. Type, kind and rank must agree on sender and receiver process; if $m$ is -not specified, size must agree as well. -
-
dst
-
Destination process. +
src
+
Source process.
Scope: global.
@@ -107,12 +90,12 @@ Type: required. Intent: in.
Specified as: an integer value $0<= dst <= np-1$. + WIDTH="147" HEIGHT="30" ALIGN="MIDDLE" BORDER="0" + SRC="img136.png" + ALT="$0<= src <= np-1$">.
m
Number of rows. @@ -128,16 +111,16 @@ Specified as: an integer value $0<= m <= size(dat,1)$.
When $dat$ is a rank 2 array, specifies the number of rows to be sent independently of the leading dimension $size(dat,1)$; must have the same value on sending and receiving processes.
@@ -148,6 +131,22 @@ same value on sending and receiving processes.
On Return
+
dat
+
The data to be received. +
+Scope: local. +
+Type: required. +
+Intent: inout. +
+Specified as: an integer, real or complex variable, which may be a +scalar, or a rank 1 or 2 array, or a character or logical scalar. Type, kind and rank must agree on sender and receiver process; if $m$ is +not specified, size must agree as well. +

@@ -155,36 +154,36 @@ same value on sending and receiving processes.

  1. This subroutine implies a synchronization, but only between the - calling process and the destination process $dst$. + calling process and the source process $src$.


- next - + up - previous - contents
- Next: psb_rcv Receive - Up: Parallel environment routines - Previous: psb_amn Global -   Next: Error handling + Up: Parallel environment routines + Previous: psb_snd Send +   Contents diff --git a/docs/html/node89.html b/docs/html/node89.html index 117fc806..139e8115 100644 --- a/docs/html/node89.html +++ b/docs/html/node89.html @@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds Jens Lippmann, Marek Rouchal, Martin Wilck and others --> -psb_rcv -- Receive data - +Error handling + @@ -18,172 +18,174 @@ original version by: Nikos Drakos, CBLU, University of Leeds - - + + + - next - + up - previous - contents
- Next: Error handling - Up: Parallel environment routines - Previous: psb_snd Send -   Next: psb_errpush Pushes + Up: userhtml + Previous: psb_rcv Receive +   Contents

-

-psb_rcv -- Receive data -

+

+Error handling +

-

-call psb_rcv(icontxt, dat, src, m)
-
+The PSBLAS library error handling policy has been completely rewritten +in version 2.0. The idea behind the design of this new error handling +strategy is to keep error messages on a stack allowing the user to +trace back up to the point where the first error message has been +generated. Every routine in the PSBLAS-2.0 library has, as last +non-optional argument, an integer info variable; whenever, +inside the routine, an error is detected, this variable is set to a +value corresponding to a specific error code. Then this error code is +also pushed on the error stack and then either control is returned to +the caller routine or the execution is aborted, depending on the users +choice. At the time when the execution is aborted, an error message is +printed on standard output with a level of verbosity than can be +chosen by the user. If the execution is not aborted, then, the caller +routine checks the value returned in the info variable and, if +not zero, an error condition is raised. This process continues on all the +levels of nested calls until the level where the user decides to abort +the program execution.

-This subroutine receives a packet of data to a destination. -

-
Type:
-
Synchronous: see usage notes. -
-
On Entry
-
-
-
icontxt
-
the communication context identifying the virtual - parallel machine. -
-Scope: global. -
-Type: required. -
-Intent: in. -
-Specified as: an integer variable. -
-
src
-
Source process. -
-Scope: global. -
-Type: required. -
-Intent: in. -
-Specified as: an integer value -$0<= src <= np-1$. -
-
m
-
Number of rows. -
-Scope: global. -
-Type: Optional. -
-Intent: in. -
-Specified as: an integer value $0<= m <= size(dat,1)$. -
-When $dat$ is a rank 2 array, specifies the number of rows to be sent -independently of the leading dimension $size(dat,1)$; must have the -same value on sending and receiving processes. -
-
+ WIDTH="535" HEIGHT="218" ALIGN="MIDDLE" BORDER="0" + SRC="img20.png" + ALT="\fbox{\TheSbox}"> +
+

-

-
On Return
-
-
-
dat
-
The data to be received. -
-Scope: local. -
-Type: required. -
-Intent: inout. -
-Specified as: an integer, real or complex variable, which may be a -scalar, or a rank 1 or 2 array, or a character or logical scalar. Type, kind and rank must agree on sender and receiver process; if $m$ is -not specified, size must agree as well. -
-
+Figure 9 reports a sample error message generated by +the PSBLAS-2.0 library. This error has been generated by the fact that +the user has chosen the invalid ``FOO'' storage format to represent +the sparse matrix. From this error message it is possible to see that +the error has been detected inside the psb_cest subroutine +called by psb_spasb ... by process 0 (i.e. the root process).

-Notes -

    -
  1. This subroutine implies a synchronization, but only between the - calling process and the source process $src$. -
  2. -
+
+ + + +
Figure 9: +A sample PSBLAS-2.0 error + message. Process 0 detected an error condition inside the psb_cest subroutine
+
+ +
+ +\fbox{\TheSbox} +
+

+


+ +Subsections + + +
- next - + up - previous - contents
- Next: Error handling - Up: Parallel environment routines - Previous: psb_snd Send -   Next: psb_errpush Pushes + Up: userhtml + Previous: psb_rcv Receive +   Contents diff --git a/docs/html/node9.html b/docs/html/node9.html index 6ae20844..c6f17983 100644 --- a/docs/html/node9.html +++ b/docs/html/node9.html @@ -26,26 +26,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds - next - up - previous - contents
- Next: Next: Named Constants - Up: Up: Data Structures - Previous: Previous: Data Structures -   Contents

@@ -59,25 +59,73 @@ Descriptor data structure All the general matrix informations and elements to be exchanged among processes are stored within a data structure of the type descdatapsb_desc_type. -Every structure of this type is associated to a sparse matrix, it -contains data about general matrix informations and elements to be -exchanged among processes. +Every structure of this type is associated with a discretization +pattern and enables data communications and other operations that are +necessary for implementing the various algorithms of interest to us.

-It is not necessary for the user to know the internal structure of -psb_desc_type, it is set in a transparent mode by the tools -routines of Sec. 6, and its fields may be accessed -if necessary via the routines of sec. 3.5; -nevertheless we include a description for the curious -reader: +The data structure itself psb_desc_type can be treated as an +opaque object handled via the tools routines of +Sec. 6 and 3.5; +nevertheless we include here a description for the curious +reader. + +

+First we describe the psb_indx_map type. This is a data +structure that keeps track of a certain number of basic issues such +as: + +

    +
  • The value of the communication/MPI context; +
  • +
  • The number of indices in the index space, i.e. global number of + rows and columns of a sparse matrix; +
  • +
  • The local set of indices, including: + +
      +
    • The number of local indices (and local rows); +
    • +
    • The number of halo indices (and therefore local columns); +
    • +
    • The global indices corresponding to the local ones. +
    • +
    +
  • +
+There are many different schemes for storing these data; therefore +there are a number of types extending the base one, and the descriptor +structure holds a polymorphic object whose dynamic type can be any of +the extended types. +The methods associated with this data type answer the following +queries: + +
    +
  • For a given set of local indices, find the corresponding indices + in the global numbering; +
  • +
  • For a given set of global indices, find the corresponding + indices in the local numbering, if any, or return an invalid +
  • +
  • Add a global index to the set of halo indices; +
  • +
  • Find the process owner of each member of a set of global + indices. +
  • +
+All methods but the last are purely local; the last method potentially +requires communication among processes, and thus is a synchronous +method. The choice of a specific dynamic type for the index map is +made at the time the descriptor is initially allocated, according to +the mode of initialization (see also 6). + +

+The descriptor contents are as follows:

-
matrix_data
-
includes general information about matrix and -process grid, such as the communication context, the size of the -global matrix, the size of the portion of matrix stored on the current -process, and so on. -Specified as: an allocatable integer array of dimension psb_mdata_size_. -
+
indxmap
+
A polymorphic variable of a type that is any + extension of the indx_map type described above. +
halo_index
A list of the halo and boundary elements for the current process to be exchanged with other processes; for each @@ -146,27 +194,15 @@ ecurrent process: Specified as: an allocatable integer array of rank two.
-
loc_to_glob
-
each element $i$ of this array contains -global identifier of the local variable $i$. -
-Specified as: an allocatable integer array of rank one. -
-
glob_to_loc, glb_lc, hashv
-
Contain a mapping from - global to local indices. +
bnd_elem
+
A list of all boundary points, i.e. points + that have a connection with other processes.
-The Fortran 95 definition for psb_desc_type structures is +The Fortran 2003 declaration for psb_desc_type structures is as follows: -
+
Figure 3: The PSBLAS defined data type that @@ -201,14 +237,6 @@ state, which can take the following values: only possible in this state. -The global to local index mapping may be stored in two different -formats: the first is simpler but more expensive, as it requires on -each process an amount of memory proportional to the global size of -the index space; the second is more complex, but only requires memory -proportional to the local index space size. The choice is made at the -time of the initialization according to a threshold; this threshold -may be queried and set using the functions in -sec. 3.5.



@@ -216,32 +244,32 @@ sec. 3.5. Subsections
- next - up - previous - contents
- Next: Next: Named Constants - Up: Up: Data Structures - Previous: Previous: Data Structures -   Contents diff --git a/docs/html/node90.html b/docs/html/node90.html index 54dbf34f..b60cc623 100644 --- a/docs/html/node90.html +++ b/docs/html/node90.html @@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds Jens Lippmann, Marek Rouchal, Martin Wilck and others --> -Error handling - +psb_errpush -- Pushes an error code onto the error stack + @@ -18,176 +18,101 @@ original version by: Nikos Drakos, CBLU, University of Leeds - - - + + + - next - + up - previous - contents
- Next: psb_errpush Pushes - Up: userhtml - Previous: psb_rcv Receive -   Next: psb_error Prints + Up: Error handling + Previous: Error handling +   Contents

-

-Error handling -

- -

-The PSBLAS library error handling policy has been completely rewritten -in version 2.0. The idea behind the design of this new error handling -strategy is to keep error messages on a stack allowing the user to -trace back up to the point where the first error message has been -generated. Every routine in the PSBLAS-2.0 library has, as last -non-optional argument, an integer info variable; whenever, -inside the routine, an error is detected, this variable is set to a -value corresponding to a specific error code. Then this error code is -also pushed on the error stack and then either control is returned to -the caller routine or the execution is aborted, depending on the users -choice. At the time when the execution is aborted, an error message is -printed on standard output with a level of verbosity than can be -chosen by the user. If the execution is not aborted, then, the caller -routine checks the value returned in the info variable and, if -not zero, an error condition is raised. This process continues on all the -levels of nested calls until the level where the user decides to abort -the program execution. - -

-Figure 9 shows the layout of a generic psb_foo -routine with respect to the PSBLAS-2.0 error handling policy. It is -possible to see how, whenever an error condition is detected, the -info variable is set to the corresponding error code which is, -then, pushed on top of the stack by means of the -psb_errpush. An error condition may be directly detected inside -a routine or indirectly checking the error code returned returned by a -called routine. Whenever an error is encountered, after it has been -pushed on stack, the program execution skips to a point where the -error condition is handled; the error condition is handled either by -returning control to the caller routine or by calling the -psb\_error routine which prints the content of the error stack -and aborts the program execution, according to the choice made by the -user with psb_set_erraction. The default is to print the error -and terminate the program, but the user may choose to handle the error -explicitly. - -

- -

- - - -
Figure 9: -The layout of a generic psb_foo - routine with respect to PSBLAS-2.0 error handling policy.
-
- -
- -\fbox{\TheSbox} -
-
+

+psb_errpush -- Pushes an error code onto the error + stack +

-Figure 10 reports a sample error message generated by -the PSBLAS-2.0 library. This error has been generated by the fact that -the user has chosen the invalid ``FOO'' storage format to represent -the sparse matrix. From this error message it is possible to see that -the error has been detected inside the psb_cest subroutine -called by psb_spasb ... by process 0 (i.e. the root process). +

+call psb_errpush(err_c, r_name, i_err, a_err)
+

- -

- - - -
Figure 10: -A sample PSBLAS-2.0 error - message. Process 0 detected an error condition inside the psb_cest subroutine
-
- -
- -\fbox{\TheSbox} -
-
+
+
Type:
+
Asynchronous. +
+
On Entry
+
+
+
err_c
+
the error code +
+Scope: local +
+Type: required +
+Intent: in. +
+Specified as: an integer. +
+
r_name
+
the soutine where the error has been caught. +
+Scope: local +
+Type: required +
+Intent: in. +
+Specified as: a string. +
+
i_err
+
addional info for error code +
+Scope: local +
+Type: optional +
+Specified as: an integer array +
+
a_err
+
addional info for error code +
+Scope: local +
+Type: optional +
+Specified as: a string. +
+



- -Subsections - - - -
- - -next - -up - -previous - -contents -
- Next: psb_errpush Pushes - Up: userhtml - Previous: psb_rcv Receive -   Contents - diff --git a/docs/html/node91.html b/docs/html/node91.html index 6b1ccd27..0b109c6b 100644 --- a/docs/html/node91.html +++ b/docs/html/node91.html @@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds Jens Lippmann, Marek Rouchal, Martin Wilck and others --> -psb_errpush -- Pushes an error code onto the error stack - +psb_error -- Prints the error stack content and aborts execution + @@ -20,45 +20,45 @@ original version by: Nikos Drakos, CBLU, University of Leeds - + - next - + up - previous - contents
- Next: psb_error Prints - Up: Error handling - Previous: Error handling -   Next: psb_set_errverbosity Sets + Up: Error handling + Previous: psb_errpush Pushes +   Contents

-

-psb_errpush -- Pushes an error code onto the error - stack +

+psb_error -- Prints the error stack content and aborts + execution

-call psb_errpush(err_c, r_name, i_err, a_err)
+call psb_error(icontxt)
 

@@ -69,46 +69,17 @@ call psb_errpush(err_c, r_name, i_err, a_err)

On Entry
-
err_c
-
the error code +
icontxt
+
the communication context.
-Scope: local +Scope: global
-Type: required +Type: optional
Intent: in.
Specified as: an integer.
-
r_name
-
the soutine where the error has been caught. -
-Scope: local -
-Type: required -
-Intent: in. -
-Specified as: a string. -
-
i_err
-
addional info for error code -
-Scope: local -
-Type: optional -
-Specified as: an integer array -
-
a_err
-
addional info for error code -
-Scope: local -
-Type: optional -
-Specified as: a string. -

diff --git a/docs/html/node92.html b/docs/html/node92.html index 4b91bd99..5e0e1523 100644 --- a/docs/html/node92.html +++ b/docs/html/node92.html @@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds Jens Lippmann, Marek Rouchal, Martin Wilck and others --> -psb_error -- Prints the error stack content and aborts execution - +psb_set_errverbosity -- Sets the verbosity of error messages. + @@ -20,45 +20,45 @@ original version by: Nikos Drakos, CBLU, University of Leeds - + - next - + up - previous - contents
- Next: psb_set_errverbosity Sets - Up: Error handling - Previous: psb_errpush Pushes -   Next: psb_set_erraction Set + Up: Error handling + Previous: psb_error Prints +   Contents

-

-psb_error -- Prints the error stack content and aborts - execution +

+psb_set_errverbosity -- Sets the verbosity of error + messages.

-call psb_error(icontxt)
+call psb_set_errverbosity(v)
 

@@ -69,12 +69,12 @@ call psb_error(icontxt)

On Entry
-
icontxt
-
the communication context. +
v
+
the verbosity level
-Scope: global +Scope: global
-Type: optional +Type: required
Intent: in.
diff --git a/docs/html/node93.html b/docs/html/node93.html index bcdc4d0f..8b4f5052 100644 --- a/docs/html/node93.html +++ b/docs/html/node93.html @@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds Jens Lippmann, Marek Rouchal, Martin Wilck and others --> -psb_set_errverbosity -- Sets the verbosity of error messages. - +psb_set_erraction -- Set the type of action to be taken upon error condition. + @@ -18,47 +18,46 @@ original version by: Nikos Drakos, CBLU, University of Leeds - - + - next - + up - previous - contents
- Next: psb_set_erraction Set - Up: Error handling - Previous: psb_error Prints -   Next: Utilities + Up: Error handling + Previous: psb_set_errverbosity Sets +   Contents

-

-psb_set_errverbosity -- Sets the verbosity of error - messages. +

+psb_set_erraction -- Set the type of action to be + taken upon error condition.

-call psb_set_errverbosity(v)
+call psb_set_erraction(err_act)
 

@@ -69,19 +68,25 @@ call psb_set_errverbosity(v)

On Entry
-
v
-
the verbosity level +
err_act
+
the type of action.
-Scope: global +Scope: global
Type: required
Intent: in.
-Specified as: an integer. +Specified as: an integer. Possible values: psb_act_ret, +psb_act_abort.
+

+

+call psb_errcomm(icontxt, err)
+
+



diff --git a/docs/html/node94.html b/docs/html/node94.html index 10d98ab1..d7a71f94 100644 --- a/docs/html/node94.html +++ b/docs/html/node94.html @@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds Jens Lippmann, Marek Rouchal, Martin Wilck and others --> -psb_set_erraction -- Set the type of action to be taken upon error condition. - +Utilities + @@ -18,77 +18,74 @@ original version by: Nikos Drakos, CBLU, University of Leeds - - + + + - next - + up - previous - contents
- Next: Utilities - Up: Error handling - Previous: psb_set_errverbosity Sets -   Next: hb_read Read + Up: userhtml + Previous: psb_set_erraction Set +   Contents

-

-psb_set_erraction -- Set the type of action to be - taken upon error condition. -

- -

-

-call psb_set_erraction(err_act)
-
- -

-

-
Type:
-
Asynchronous. -
-
On Entry
-
-
-
err_act
-
the type of action. -
-Scope: global -
-Type: required +

+
-Intent: in. -
-Specified as: an integer. Possible values: psb_act_ret, -psb_act_abort. -

-
+Utilities +

-

-call psb_errcomm(icontxt, err)
-
+We have some utitlities available for input and output of +sparsematrices; the interfaces to these routines are available in the +module psb_util_mod.



+ +Subsections + + + +

diff --git a/docs/html/node95.html b/docs/html/node95.html index a948e534..cc868f5b 100644 --- a/docs/html/node95.html +++ b/docs/html/node95.html @@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds Jens Lippmann, Marek Rouchal, Martin Wilck and others --> -Utilities - +hb_read -- Read a sparse matrix from a file in the Harwell-Boeing format + @@ -18,74 +18,139 @@ original version by: Nikos Drakos, CBLU, University of Leeds - - - + + + - next - + up - previous - contents
- Next: hb_read Read - Up: userhtml - Previous: psb_set_erraction Set -   Next: hb_write Write + Up: Utilities + Previous: Utilities +   Contents

-

- -
-Utilities -

+

+hb_read -- Read a sparse matrix from a file in the + Harwell-Boeing format +

-We have some utitlities available for input and output of -sparsematrices; the interfaces to these routines are available in the -module psb_util_mod. +

+call hb_read(a, iret, iunit, filename, b, mtitle)
+

-


- -Subsections +
+
Type:
+
Asynchronous. +
+
On Entry
+
+
+
filename
+
The name of the file to be read. +
+Type:optional. +
+Specified as: a character variable containing a valid file name, or +-, in which case the default input unit 5 (i.e. standard input +in Unix jargon) is used. Default: -. +
+
iunit
+
The Fortran file unit number. +
+Type:optional. +
+Specified as: an integer value. Only meaningful if filename is not -. +
+
- - -

+

+

+
On Return
+
+
+
a
+
the sparse matrix read from file. +
+Type:required. +
+Specified as: a structured data of type spdatapsb_spmat_type. +
+
b
+
Rigth hand side(s). +
+Type: Optional +
+An array of type real or complex, rank 2 and having the ALLOCATABLE +attribute; will be allocated and filled in if the input file contains +a right hand side, otherwise will be left in the UNALLOCATED state. +
+
mtitle
+
Matrix title. +
+Type: Optional +
+A charachter variable of length 72 holding a copy of the +matrix title as specified by the Harwell-Boeing format and contained +in the input file. +
+
iret
+
Error code. +
+Type: required +
+An integer value; 0 means no error has been detected. +
+
+ +

+


+ + +next + +up + +previous + +contents +
+ Next: hb_write Write + Up: Utilities + Previous: Utilities +   Contents + diff --git a/docs/html/node96.html b/docs/html/node96.html index badca7bd..2ad99819 100644 --- a/docs/html/node96.html +++ b/docs/html/node96.html @@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds Jens Lippmann, Marek Rouchal, Martin Wilck and others --> -hb_read -- Read a sparse matrix from a file in the Harwell-Boeing format - +hb_write -- Write a sparse matrix to a file in the Harwell-Boeing format + @@ -20,45 +20,45 @@ original version by: Nikos Drakos, CBLU, University of Leeds - + - next - + up - previous - contents
- Next: hb_write Write - Up: Utilities - Previous: Utilities -   Next: mm_mat_read Read + Up: Utilities + Previous: hb_read Read +   Contents

-

-hb_read -- Read a sparse matrix from a file in the - Harwell-Boeing format +

+hb_write -- Write a sparse matrix to a file + in the Harwell-Boeing format

-call hb_read(a, iret, iunit, filename, b, mtitle)
+call hb_write(a, iret, iunit, filename, key, rhs, mtitle)
 

@@ -69,13 +69,29 @@ call hb_read(a, iret, iunit, filename, b, mtitle)

On Entry
+
a
+
the sparse matrix to be written. +
+Type:required. +
+Specified as: a structured data of type spdatapsb_spmat_type. +
+
b
+
Rigth hand side. +
+Type: Optional +
+An array of type real or complex, rank 1 and having the ALLOCATABLE +attribute; will be allocated and filled in if the input file contains +a right hand side. +
filename
-
The name of the file to be read. +
The name of the file to be written to.
Type:optional.
Specified as: a character variable containing a valid file name, or --, in which case the default input unit 5 (i.e. standard input +-, in which case the default output unit 6 (i.e. standard output in Unix jargon) is used. Default: -.
iunit
@@ -85,37 +101,30 @@ Type:optional.
Specified as: an integer value. Only meaningful if filename is not -. - - -

-

-
On Return
-
-
-
a
-
the sparse matrix read from file. -
-Type:required. -
-Specified as: a structured data of type spdatapsb_spmat_type. -
-
b
-
Rigth hand side(s). +
key
+
Matrix key.
Type: Optional
-An array of type real or complex, rank 2 and having the ALLOCATABLE -attribute; will be allocated and filled in if the input file contains -a right hand side, otherwise will be left in the UNALLOCATED state. +A charachter variable of length 8 holding the +matrix key as specified by the Harwell-Boeing format and to be +written to file.
mtitle
Matrix title.
Type: Optional
-A charachter variable of length 72 holding a copy of the -matrix title as specified by the Harwell-Boeing format and contained -in the input file. +A charachter variable of length 72 holding the +matrix title as specified by the Harwell-Boeing format and to be +written to file. +
+
+ +

+

+
On Return
+
iret
Error code. @@ -129,26 +138,26 @@ An integer value; 0 means no error has been detected.


- next - + up - previous - contents
- Next: hb_write Write - Up: Utilities - Previous: Utilities -   Next: mm_mat_read Read + Up: Utilities + Previous: hb_read Read +   Contents diff --git a/docs/html/node97.html b/docs/html/node97.html index 16fe819d..b29dd9c9 100644 --- a/docs/html/node97.html +++ b/docs/html/node97.html @@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds Jens Lippmann, Marek Rouchal, Martin Wilck and others --> -hb_write -- Write a sparse matrix to a file in the Harwell-Boeing format - +mm_mat_read -- Read a sparse matrix from a file in the MatrixMarket format + @@ -20,45 +20,45 @@ original version by: Nikos Drakos, CBLU, University of Leeds - + - next - + up - previous - contents
- Next: mm_mat_read Read - Up: Utilities - Previous: hb_read Read -   Next: mm_vet_read Read + Up: Utilities + Previous: hb_write Write +   Contents

-

-hb_write -- Write a sparse matrix to a file - in the Harwell-Boeing format +

+mm_mat_read -- Read a sparse matrix from a + file in the MatrixMarket format

-call hb_write(a, iret, iunit, filename, key, rhs, mtitle)
+call mm_mat_read(a, iret, iunit, filename)
 

@@ -69,29 +69,13 @@ call hb_write(a, iret, iunit, filename, key, rhs, mtitle)

On Entry
-
a
-
the sparse matrix to be written. -
-Type:required. -
-Specified as: a structured data of type spdatapsb_spmat_type. -
-
b
-
Rigth hand side. -
-Type: Optional -
-An array of type real or complex, rank 1 and having the ALLOCATABLE -attribute; will be allocated and filled in if the input file contains -a right hand side. -
filename
-
The name of the file to be written to. +
The name of the file to be read.
Type:optional.
Specified as: a character variable containing a valid file name, or --, in which case the default output unit 6 (i.e. standard output +-, in which case the default input unit 5 (i.e. standard input in Unix jargon) is used. Default: -.
iunit
@@ -101,24 +85,6 @@ Type:optional.
Specified as: an integer value. Only meaningful if filename is not -. -
key
-
Matrix key. -
-Type: Optional -
-A charachter variable of length 8 holding the -matrix key as specified by the Harwell-Boeing format and to be -written to file. -
-
mtitle
-
Matrix title. -
-Type: Optional -
-A charachter variable of length 72 holding the -matrix title as specified by the Harwell-Boeing format and to be -written to file. -

@@ -126,6 +92,13 @@ written to file.

On Return
+
a
+
the sparse matrix read from file. +
+Type:required. +
+Specified as: a structured data of type spdatapsb_spmat_type. +
iret
Error code.
@@ -136,30 +109,7 @@ An integer value; 0 means no error has been detected.

-


- - -next - -up - -previous - -contents -
- Next: mm_mat_read Read - Up: Utilities - Previous: hb_read Read -   Contents - +

diff --git a/docs/html/node98.html b/docs/html/node98.html index e8def902..e9bf7fbf 100644 --- a/docs/html/node98.html +++ b/docs/html/node98.html @@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds Jens Lippmann, Marek Rouchal, Martin Wilck and others --> -mm_mat_read -- Read a sparse matrix from a file in the MatrixMarket format - +mm_vet_read -- Read a dense vector from a file in the MatrixMarket format + @@ -20,45 +20,44 @@ original version by: Nikos Drakos, CBLU, University of Leeds - + - next - + up - previous - contents
- Next: mm_vet_read Read - Up: Utilities - Previous: hb_write Write -   Next: mm_mat_write Write + Up: Utilities + Previous: mm_mat_read Read +   Contents

-

-mm_mat_read -- Read a sparse matrix from a +

+mm_vet_read -- Read a dense vector from a file in the MatrixMarket format

-

-call mm_mat_read(a, iret, iunit, filename)
+call mm_vet_read(b, iret, iunit, filename)
 

@@ -92,12 +91,14 @@ Specified as: an integer value. Only meaningful if filename is not -On Return

-
a
-
the sparse matrix read from file. +
b
+
Rigth hand side(s).
-Type:required. +Type: required
-Specified as: a structured data of type spdatapsb_spmat_type. +An array of type real or complex, rank 2 and having the ALLOCATABLE +attribute; will be allocated and filled in if the input file contains +a right hand side, otherwise will be left in the UNALLOCATED state.
iret
Error code. diff --git a/docs/html/node99.html b/docs/html/node99.html index e4c7d672..16644100 100644 --- a/docs/html/node99.html +++ b/docs/html/node99.html @@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds Jens Lippmann, Marek Rouchal, Martin Wilck and others --> -mm_vet_read -- Read a dense vector from a file in the MatrixMarket format - +mm_mat_write -- Write a sparse matrix to a file in the MatrixMarket format + @@ -18,49 +18,46 @@ original version by: Nikos Drakos, CBLU, University of Leeds - - + - next - + up - previous - contents
- Next: mm_mat_write Write - Up: Utilities - Previous: mm_mat_read Read -   Next: Preconditioner routines + Up: Utilities + Previous: mm_vet_read Read +   Contents

-

-mm_vet_read -- Read a dense vector from a +

+mm_mat_write -- Write a sparse matrix to a file in the MatrixMarket format

-call mm_vet_read(b, iret, iunit, filename)
+call mm_mat_write(a, mtitle, iret, iunit, filename)
 
- -

Type:
Asynchronous. @@ -68,13 +65,28 @@ call mm_vet_read(b, iret, iunit, filename)
On Entry
+
a
+
the sparse matrix to be written. +
+Type:required. +
+Specified as: a structured data of type spdatapsb_spmat_type. +
+
mtitle
+
Matrix title. +
+Type: required +
+A charachter variable holding a descriptive title for the matrix to be + written to file. +
filename
-
The name of the file to be read. +
The name of the file to be written to.
Type:optional.
Specified as: a character variable containing a valid file name, or --, in which case the default input unit 5 (i.e. standard input +-, in which case the default output unit 6 (i.e. standard output in Unix jargon) is used. Default: -.
iunit
@@ -91,15 +103,6 @@ Specified as: an integer value. Only meaningful if filename is not -On Return
-
b
-
Rigth hand side(s). -
-Type: required -
-An array of type real or complex, rank 2 and having the ALLOCATABLE -attribute; will be allocated and filled in if the input file contains -a right hand side, otherwise will be left in the UNALLOCATED state. -
iret
Error code.
diff --git a/docs/html/userhtml.html b/docs/html/userhtml.html index 21e6f6b1..fc0b17cf 100644 --- a/docs/html/userhtml.html +++ b/docs/html/userhtml.html @@ -23,18 +23,18 @@ original version by: Nikos Drakos, CBLU, University of Leeds - next up previous - contents
- Next: Next: Contents -   Contents

@@ -58,296 +58,292 @@ University of Rome ``Tor Vergata'', Italy
Software version: 3.0-beta
-May 15th, 2010 +December 15th, 2011

    -
  • Contents -
  • Introduction -
  • General overview
    -
  • Data Structures

    diff --git a/docs/psblas-3.0.pdf b/docs/psblas-3.0.pdf index c00eda67..25d4ad33 100644 --- a/docs/psblas-3.0.pdf +++ b/docs/psblas-3.0.pdf @@ -79,574 +79,568 @@ endobj (3.3 Dense Vector Data Structure) endobj 57 0 obj -<< /S /GoTo /D (subsubsection.3.3.1) >> +<< /S /GoTo /D (subsection.3.4) >> endobj 60 0 obj -(3.3.1 Named Constants) +(3.4 Preconditioner data structure) endobj 61 0 obj -<< /S /GoTo /D (subsection.3.4) >> +<< /S /GoTo /D (subsection.3.5) >> endobj 64 0 obj -(3.4 Preconditioner data structure) +(3.5 Data structure query routines) endobj 65 0 obj -<< /S /GoTo /D (subsection.3.5) >> +<< /S /GoTo /D (section*.2) >> endobj 68 0 obj -(3.5 Data structure query routines) +(get\137local\137rows ) endobj 69 0 obj -<< /S /GoTo /D (section*.2) >> +<< /S /GoTo /D (section*.3) >> endobj 72 0 obj -(get\137local\137rows ) +(get\137local\137cols ) endobj 73 0 obj -<< /S /GoTo /D (section*.3) >> +<< /S /GoTo /D (section*.4) >> endobj 76 0 obj -(get\137local\137cols ) +(get\137global\137rows ) endobj 77 0 obj -<< /S /GoTo /D (section*.4) >> +<< /S /GoTo /D (section*.5) >> endobj 80 0 obj -(get\137global\137rows ) +(get\137global\137cols ) endobj 81 0 obj -<< /S /GoTo /D (section*.5) >> +<< /S /GoTo /D (section*.6) >> endobj 84 0 obj -(get\137global\137cols ) +(get\137context) endobj 85 0 obj -<< /S /GoTo /D (section*.6) >> +<< /S /GoTo /D (section*.7) >> endobj 88 0 obj -(get\137context) +(psb\137cd\137get\137large\137threshold) endobj 89 0 obj -<< /S /GoTo /D (section*.7) >> +<< /S /GoTo /D (section*.8) >> endobj 92 0 obj -(psb\137cd\137get\137large\137threshold) +(psb\137cd\137set\137large\137threshold) endobj 93 0 obj -<< /S /GoTo /D (section*.8) >> +<< /S /GoTo /D (section*.9) >> endobj 96 0 obj -(psb\137cd\137set\137large\137threshold) +(get\137nrows) endobj 97 0 obj -<< /S /GoTo /D (section*.9) >> +<< /S /GoTo /D (section*.10) >> endobj 100 0 obj -(get\137nrows) +(get\137ncols) endobj 101 0 obj -<< /S /GoTo /D (section*.10) >> +<< /S /GoTo /D (section*.11) >> endobj 104 0 obj -(get\137ncols) +(get\137nnzeros) endobj 105 0 obj -<< /S /GoTo /D (section*.11) >> +<< /S /GoTo /D (section.4) >> endobj 108 0 obj -(get\137nnzeros) +(4 Computational routines) endobj 109 0 obj -<< /S /GoTo /D (section.4) >> +<< /S /GoTo /D (section*.12) >> endobj 112 0 obj -(4 Computational routines) +(psb\137geaxpby) endobj 113 0 obj -<< /S /GoTo /D (section*.12) >> +<< /S /GoTo /D (section*.13) >> endobj 116 0 obj -(psb\137geaxpby) +(psb\137gedot) endobj 117 0 obj -<< /S /GoTo /D (section*.13) >> +<< /S /GoTo /D (section*.14) >> endobj 120 0 obj -(psb\137gedot) +(psb\137gedots) endobj 121 0 obj -<< /S /GoTo /D (section*.14) >> +<< /S /GoTo /D (section*.15) >> endobj 124 0 obj -(psb\137gedots) +(psb\137geamax) endobj 125 0 obj -<< /S /GoTo /D (section*.15) >> +<< /S /GoTo /D (section*.16) >> endobj 128 0 obj -(psb\137geamax) +(psb\137geamaxs) endobj 129 0 obj -<< /S /GoTo /D (section*.16) >> +<< /S /GoTo /D (section*.17) >> endobj 132 0 obj -(psb\137geamaxs) +(psb\137geasum) endobj 133 0 obj -<< /S /GoTo /D (section*.17) >> +<< /S /GoTo /D (section*.18) >> endobj 136 0 obj -(psb\137geasum) +(psb\137geasums) endobj 137 0 obj -<< /S /GoTo /D (section*.18) >> +<< /S /GoTo /D (section*.19) >> endobj 140 0 obj (psb\137geasums) endobj 141 0 obj -<< /S /GoTo /D (section*.19) >> +<< /S /GoTo /D (section*.20) >> endobj 144 0 obj -(psb\137geasums) +(psb\137genrm2s) endobj 145 0 obj -<< /S /GoTo /D (section*.20) >> +<< /S /GoTo /D (section*.21) >> endobj 148 0 obj -(psb\137genrm2s) +(psb\137spnrmi) endobj 149 0 obj -<< /S /GoTo /D (section*.21) >> +<< /S /GoTo /D (section*.22) >> endobj 152 0 obj -(psb\137spnrmi) +(psb\137spmm) endobj 153 0 obj -<< /S /GoTo /D (section*.22) >> +<< /S /GoTo /D (section*.23) >> endobj 156 0 obj -(psb\137spmm) +(psb\137spsm) endobj 157 0 obj -<< /S /GoTo /D (section*.23) >> +<< /S /GoTo /D (section.5) >> endobj 160 0 obj -(psb\137spsm) +(5 Communication routines) endobj 161 0 obj -<< /S /GoTo /D (section.5) >> +<< /S /GoTo /D (section*.24) >> endobj 164 0 obj -(5 Communication routines) +(psb\137halo) endobj 165 0 obj -<< /S /GoTo /D (section*.24) >> +<< /S /GoTo /D (section*.25) >> endobj 168 0 obj -(psb\137halo) +(psb\137ovrl) endobj 169 0 obj -<< /S /GoTo /D (section*.25) >> +<< /S /GoTo /D (section*.26) >> endobj 172 0 obj -(psb\137ovrl) +(psb\137gather) endobj 173 0 obj -<< /S /GoTo /D (section*.26) >> +<< /S /GoTo /D (section*.27) >> endobj 176 0 obj -(psb\137gather) +(psb\137scatter) endobj 177 0 obj -<< /S /GoTo /D (section*.27) >> +<< /S /GoTo /D (section.6) >> endobj 180 0 obj -(psb\137scatter) +(6 Data management routines) endobj 181 0 obj -<< /S /GoTo /D (section.6) >> +<< /S /GoTo /D (section*.28) >> endobj 184 0 obj -(6 Data management routines) +(psb\137cdall) endobj 185 0 obj -<< /S /GoTo /D (section*.28) >> +<< /S /GoTo /D (section*.29) >> endobj 188 0 obj -(psb\137cdall) +(psb\137cdins) endobj 189 0 obj -<< /S /GoTo /D (section*.29) >> +<< /S /GoTo /D (section*.30) >> endobj 192 0 obj -(psb\137cdins) +(psb\137cdasb) endobj 193 0 obj -<< /S /GoTo /D (section*.30) >> +<< /S /GoTo /D (section*.31) >> endobj 196 0 obj -(psb\137cdasb) +(psb\137cdcpy) endobj 197 0 obj -<< /S /GoTo /D (section*.31) >> +<< /S /GoTo /D (section*.32) >> endobj 200 0 obj -(psb\137cdcpy) +(psb\137cdfree) endobj 201 0 obj -<< /S /GoTo /D (section*.32) >> +<< /S /GoTo /D (section*.33) >> endobj 204 0 obj -(psb\137cdfree) +(psb\137cdbldext) endobj 205 0 obj -<< /S /GoTo /D (section*.33) >> +<< /S /GoTo /D (section*.34) >> endobj 208 0 obj -(psb\137cdbldext) +(psb\137spall) endobj 209 0 obj -<< /S /GoTo /D (section*.34) >> +<< /S /GoTo /D (section*.35) >> endobj 212 0 obj -(psb\137spall) +(psb\137spins) endobj 213 0 obj -<< /S /GoTo /D (section*.35) >> +<< /S /GoTo /D (section*.36) >> endobj 216 0 obj -(psb\137spins) +(psb\137spasb) endobj 217 0 obj -<< /S /GoTo /D (section*.36) >> +<< /S /GoTo /D (section*.37) >> endobj 220 0 obj -(psb\137spasb) +(psb\137spfree) endobj 221 0 obj -<< /S /GoTo /D (section*.37) >> +<< /S /GoTo /D (section*.38) >> endobj 224 0 obj -(psb\137spfree) +(psb\137sprn) endobj 225 0 obj -<< /S /GoTo /D (section*.38) >> +<< /S /GoTo /D (section*.39) >> endobj 228 0 obj -(psb\137sprn) +(psb\137geall) endobj 229 0 obj -<< /S /GoTo /D (section*.39) >> +<< /S /GoTo /D (section*.40) >> endobj 232 0 obj -(psb\137geall) +(psb\137geins) endobj 233 0 obj -<< /S /GoTo /D (section*.40) >> +<< /S /GoTo /D (section*.41) >> endobj 236 0 obj -(psb\137geins) +(psb\137geasb) endobj 237 0 obj -<< /S /GoTo /D (section*.41) >> +<< /S /GoTo /D (section*.42) >> endobj 240 0 obj -(psb\137geasb) +(psb\137gefree) endobj 241 0 obj -<< /S /GoTo /D (section*.42) >> +<< /S /GoTo /D (section*.43) >> endobj 244 0 obj -(psb\137gefree) +(psb\137gelp) endobj 245 0 obj -<< /S /GoTo /D (section*.43) >> +<< /S /GoTo /D (section*.44) >> endobj 248 0 obj -(psb\137gelp) +(psb\137glob\137to\137loc) endobj 249 0 obj -<< /S /GoTo /D (section*.44) >> +<< /S /GoTo /D (section*.45) >> endobj 252 0 obj -(psb\137glob\137to\137loc) +(psb\137loc\137to\137glob) endobj 253 0 obj -<< /S /GoTo /D (section*.45) >> +<< /S /GoTo /D (section*.46) >> endobj 256 0 obj -(psb\137loc\137to\137glob) +(psb\137is\137owned) endobj 257 0 obj -<< /S /GoTo /D (section*.46) >> +<< /S /GoTo /D (section*.47) >> endobj 260 0 obj -(psb\137is\137owned) +(psb\137owned\137index) endobj 261 0 obj -<< /S /GoTo /D (section*.47) >> +<< /S /GoTo /D (section*.48) >> endobj 264 0 obj -(psb\137owned\137index) +(psb\137is\137local) endobj 265 0 obj -<< /S /GoTo /D (section*.48) >> +<< /S /GoTo /D (section*.49) >> endobj 268 0 obj -(psb\137is\137local) +(psb\137local\137index) endobj 269 0 obj -<< /S /GoTo /D (section*.49) >> +<< /S /GoTo /D (section*.50) >> endobj 272 0 obj -(psb\137local\137index) +(psb\137get\137boundary) endobj 273 0 obj -<< /S /GoTo /D (section*.50) >> +<< /S /GoTo /D (section*.51) >> endobj 276 0 obj -(psb\137get\137boundary) +(psb\137get\137overlap) endobj 277 0 obj -<< /S /GoTo /D (section*.51) >> +<< /S /GoTo /D (section*.52) >> endobj 280 0 obj -(psb\137get\137overlap) +(psb\137sp\137getrow) endobj 281 0 obj -<< /S /GoTo /D (section*.52) >> +<< /S /GoTo /D (section*.53) >> endobj 284 0 obj -(psb\137sp\137getrow) +(psb\137sizeof) endobj 285 0 obj -<< /S /GoTo /D (section*.53) >> +<< /S /GoTo /D (section*.54) >> endobj 288 0 obj -(psb\137sizeof) +(Sorting utilities) endobj 289 0 obj -<< /S /GoTo /D (section*.54) >> +<< /S /GoTo /D (section.7) >> endobj 292 0 obj -(Sorting utilities) +(7 Parallel environment routines) endobj 293 0 obj -<< /S /GoTo /D (section.7) >> +<< /S /GoTo /D (section*.55) >> endobj 296 0 obj -(7 Parallel environment routines) +(psb\137init) endobj 297 0 obj -<< /S /GoTo /D (section*.55) >> +<< /S /GoTo /D (section*.56) >> endobj 300 0 obj -(psb\137init) +(psb\137info) endobj 301 0 obj -<< /S /GoTo /D (section*.56) >> +<< /S /GoTo /D (section*.57) >> endobj 304 0 obj -(psb\137info) +(psb\137exit) endobj 305 0 obj -<< /S /GoTo /D (section*.57) >> +<< /S /GoTo /D (section*.58) >> endobj 308 0 obj -(psb\137exit) +(psb\137get\137mpicomm) endobj 309 0 obj -<< /S /GoTo /D (section*.58) >> +<< /S /GoTo /D (section*.59) >> endobj 312 0 obj -(psb\137get\137mpicomm) +(psb\137get\137rank) endobj 313 0 obj -<< /S /GoTo /D (section*.59) >> +<< /S /GoTo /D (section*.60) >> endobj 316 0 obj -(psb\137get\137rank) +(psb\137wtime) endobj 317 0 obj -<< /S /GoTo /D (section*.60) >> -endobj -320 0 obj -(psb\137wtime) -endobj -321 0 obj << /S /GoTo /D (section*.61) >> endobj -324 0 obj +320 0 obj (psb\137barrier) endobj -325 0 obj +321 0 obj << /S /GoTo /D (section*.62) >> endobj -328 0 obj +324 0 obj (psb\137abort) endobj -329 0 obj +325 0 obj << /S /GoTo /D (section*.63) >> endobj -332 0 obj +328 0 obj (psb\137bcast) endobj -333 0 obj +329 0 obj << /S /GoTo /D (section*.64) >> endobj -336 0 obj +332 0 obj (psb\137sum) endobj -337 0 obj +333 0 obj << /S /GoTo /D (section*.65) >> endobj -340 0 obj +336 0 obj (psb\137max) endobj -341 0 obj +337 0 obj << /S /GoTo /D (section*.66) >> endobj -344 0 obj +340 0 obj (psb\137min) endobj -345 0 obj +341 0 obj << /S /GoTo /D (section*.67) >> endobj -348 0 obj +344 0 obj (psb\137amx) endobj -349 0 obj +345 0 obj << /S /GoTo /D (section*.68) >> endobj -352 0 obj +348 0 obj (psb\137amn) endobj -353 0 obj +349 0 obj << /S /GoTo /D (section*.69) >> endobj -356 0 obj +352 0 obj (psb\137snd) endobj -357 0 obj +353 0 obj << /S /GoTo /D (section*.70) >> endobj -360 0 obj +356 0 obj (psb\137rcv) endobj -361 0 obj +357 0 obj << /S /GoTo /D (section.8) >> endobj -364 0 obj +360 0 obj (8 Error handling) endobj -365 0 obj +361 0 obj << /S /GoTo /D (section*.71) >> endobj -368 0 obj +364 0 obj (psb\137errpush) endobj -369 0 obj +365 0 obj << /S /GoTo /D (section*.72) >> endobj -372 0 obj +368 0 obj (psb\137error) endobj -373 0 obj +369 0 obj << /S /GoTo /D (section*.73) >> endobj -376 0 obj +372 0 obj (psb\137set\137errverbosity) endobj -377 0 obj +373 0 obj << /S /GoTo /D (section*.74) >> endobj -380 0 obj +376 0 obj (psb\137set\137erraction) endobj -381 0 obj +377 0 obj << /S /GoTo /D (section.9) >> endobj -384 0 obj +380 0 obj (9 Utilities) endobj -385 0 obj +381 0 obj << /S /GoTo /D (section*.75) >> endobj -388 0 obj +384 0 obj (hb\137read) endobj -389 0 obj +385 0 obj << /S /GoTo /D (section*.76) >> endobj -392 0 obj +388 0 obj (hb\137write) endobj -393 0 obj +389 0 obj << /S /GoTo /D (section*.77) >> endobj -396 0 obj +392 0 obj (mm\137mat\137read) endobj -397 0 obj +393 0 obj << /S /GoTo /D (section*.78) >> endobj -400 0 obj +396 0 obj (mm\137vet\137read ) endobj -401 0 obj +397 0 obj << /S /GoTo /D (section*.79) >> endobj -404 0 obj +400 0 obj (mm\137mat\137write) endobj -405 0 obj +401 0 obj << /S /GoTo /D (section.10) >> endobj -408 0 obj +404 0 obj (10 Preconditioner routines) endobj -409 0 obj +405 0 obj << /S /GoTo /D (section*.80) >> endobj -412 0 obj +408 0 obj (psb\137precinit) endobj -413 0 obj +409 0 obj << /S /GoTo /D (section*.81) >> endobj -416 0 obj +412 0 obj (psb\137precbld) endobj -417 0 obj +413 0 obj << /S /GoTo /D (section*.82) >> endobj -420 0 obj +416 0 obj (psb\137precaply) endobj -421 0 obj +417 0 obj << /S /GoTo /D (section*.83) >> endobj -424 0 obj +420 0 obj (psb\137precdescr) endobj -425 0 obj +421 0 obj << /S /GoTo /D (section.11) >> endobj -428 0 obj +424 0 obj (11 Iterative Methods) endobj -429 0 obj +425 0 obj << /S /GoTo /D (section*.84) >> endobj -432 0 obj +428 0 obj (krylov) endobj -433 0 obj -<< /S /GoTo /D [434 0 R /Fit ] >> +429 0 obj +<< /S /GoTo /D [430 0 R /Fit ] >> endobj -436 0 obj << -/Length 715 +432 0 obj << +/Length 725 >> stream 0 g 0 G @@ -665,33 +659,33 @@ BT /F18 14.3462 Tf 132.314 519.262 Td [(A)-350(r)50(efer)50(enc)50(e)-350(guide)-350(for)-350(the)-350(Par)50(al)-50(lel)-350(Sp)50(arse)-350(BLAS)-350(libr)50(ary)]TJ 0 g 0 G 0 g 0 G -/F27 9.9626 Tf 223.567 -123.224 Td [(b)32(y)-383(Salv)63(atore)-383(Filipp)-32(one)]TJ 12.889 -11.956 Td [(and)-383(Alfredo)-384(Buttari)]TJ/F8 9.9626 Tf -52.52 -11.955 Td [(Univ)28(ersit)28(y)-334(of)-333(Rome)-333(\134T)83(or)-333(V)83(ergata".)]TJ 82.192 -24.823 Td [(Ma)28(y)-334(15th,)-333(2010.)]TJ +/F27 9.9626 Tf 223.567 -123.224 Td [(b)32(y)-383(Salv)63(atore)-383(Filipp)-32(one)]TJ 12.889 -11.956 Td [(and)-383(Alfredo)-384(Buttari)]TJ/F8 9.9626 Tf -52.52 -11.955 Td [(Univ)28(ersit)28(y)-334(of)-333(Rome)-333(\134T)83(or)-333(V)83(ergata".)]TJ 58.227 -24.823 Td [(Decem)28(b)-28(er)-333(15th,)-334(2011.)]TJ 0 g 0 G 0 g 0 G ET endstream endobj -434 0 obj << +430 0 obj << /Type /Page -/Contents 436 0 R -/Resources 435 0 R +/Contents 432 0 R +/Resources 431 0 R /MediaBox [0 0 595.276 841.89] -/Parent 443 0 R +/Parent 439 0 R >> endobj -437 0 obj << -/D [434 0 R /XYZ 99.895 740.998 null] +433 0 obj << +/D [430 0 R /XYZ 99.895 740.998 null] >> endobj -438 0 obj << -/D [434 0 R /XYZ 99.895 716.092 null] +434 0 obj << +/D [430 0 R /XYZ 99.895 716.092 null] >> endobj 6 0 obj << -/D [434 0 R /XYZ 99.895 716.092 null] +/D [430 0 R /XYZ 99.895 716.092 null] >> endobj -435 0 obj << -/Font << /F16 439 0 R /F18 440 0 R /F27 441 0 R /F8 442 0 R >> +431 0 obj << +/Font << /F16 435 0 R /F18 436 0 R /F27 437 0 R /F8 438 0 R >> /ProcSet [ /PDF /Text ] >> endobj -446 0 obj << +442 0 obj << /Length 77 >> stream @@ -704,22 +698,22 @@ BT ET endstream endobj -445 0 obj << +441 0 obj << /Type /Page -/Contents 446 0 R -/Resources 444 0 R +/Contents 442 0 R +/Resources 440 0 R /MediaBox [0 0 595.276 841.89] -/Parent 443 0 R +/Parent 439 0 R >> endobj -447 0 obj << -/D [445 0 R /XYZ 150.705 740.998 null] +443 0 obj << +/D [441 0 R /XYZ 150.705 740.998 null] >> endobj -444 0 obj << -/Font << /F8 442 0 R >> +440 0 obj << +/Font << /F8 438 0 R >> /ProcSet [ /PDF /Text ] >> endobj -494 0 obj << -/Length 16611 +490 0 obj << +/Length 16320 >> stream 0 g 0 G @@ -727,531 +721,524 @@ stream BT /F16 14.3462 Tf 99.895 706.129 Td [(Con)31(ten)31(ts)]TJ 0 0 1 rg 0 0 1 RG -/F27 9.9626 Tf 0 -22.706 Td [(1)-925(In)32(tro)-32(duction)]TJ +/F27 9.9626 Tf 0 -23.163 Td [(1)-925(In)32(tro)-32(duction)]TJ 0 g 0 G [-26085(1)]TJ 0 0 1 rg 0 0 1 RG - 0 -22.707 Td [(2)-925(General)-383(o)32(v)31(erview)]TJ + 0 -23.163 Td [(2)-925(General)-383(o)32(v)31(erview)]TJ 0 g 0 G [-23689(2)]TJ 0 0 1 rg 0 0 1 RG -/F8 9.9626 Tf 14.944 -12.428 Td [(2.1)-1022(Basic)-334(Nomenclature)]TJ +/F8 9.9626 Tf 14.944 -12.703 Td [(2.1)-1022(Basic)-334(Nomenclature)]TJ 0 g 0 G [-927(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G [-1583(3)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG - 0 -12.428 Td [(2.2)-1022(Library)-333(con)27(ten)28(ts)]TJ + 0 -12.702 Td [(2.2)-1022(Library)-333(con)27(ten)28(ts)]TJ 0 g 0 G [-897(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G [-1584(4)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG - 0 -12.428 Td [(2.3)-1022(Application)-333(structure)]TJ + 0 -12.703 Td [(2.3)-1022(Application)-333(structure)]TJ 0 g 0 G [-300(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)]TJ 0 g 0 G - [-1584(6)]TJ + [-1584(5)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG - 0 -12.428 Td [(2.4)-1022(Programming)-334(mo)-27(del)]TJ + 0 -12.702 Td [(2.4)-1022(Programming)-334(mo)-27(del)]TJ 0 g 0 G [-736(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)]TJ 0 g 0 G - [-1584(8)]TJ + [-1584(7)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG -/F27 9.9626 Tf -14.944 -22.707 Td [(3)-925(Data)-383(Struct)-1(ure)1(s)]TJ +/F27 9.9626 Tf -14.944 -23.163 Td [(3)-925(Data)-383(Struct)-1(ure)1(s)]TJ 0 g 0 G [-24345(9)]TJ 0 0 1 rg 0 0 1 RG -/F8 9.9626 Tf 14.944 -12.428 Td [(3.1)-1022(Descriptor)-334(data)-333(structure)]TJ +/F8 9.9626 Tf 14.944 -12.702 Td [(3.1)-1022(Descriptor)-334(data)-333(structure)]TJ 0 g 0 G [-886(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G [-1584(9)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG - 22.914 -12.428 Td [(3.1.1)-1144(Nam)-1(ed)-333(Constan)28(ts)]TJ + 22.914 -12.703 Td [(3.1.1)-1144(Nam)-1(ed)-333(Constan)28(ts)]TJ 0 g 0 G [-1016(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G [-1084(11)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG - -22.914 -12.428 Td [(3.2)-1022(Sparse)-334(Matr)1(ix)-334(data)-333(structure)]TJ + -22.914 -12.702 Td [(3.2)-1022(Sparse)-334(Matr)1(ix)-334(data)-333(structure)]TJ 0 g 0 G [-816(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G - [-1084(11)]TJ + [-1084(12)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG - 22.914 -12.429 Td [(3.2.1)-1144(Nam)-1(ed)-333(Constan)28(ts)]TJ + 22.914 -12.703 Td [(3.2.1)-1144(Nam)-1(ed)-333(Constan)28(ts)]TJ 0 g 0 G [-1016(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G [-1084(14)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG - -22.914 -12.428 Td [(3.3)-1022(Dense)-334(V)84(ector)-334(Data)-333(Structure)]TJ + -22.914 -12.702 Td [(3.3)-1022(Dense)-334(V)84(ector)-334(Data)-333(Structure)]TJ 0 g 0 G [-852(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G [-1084(14)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG - 22.914 -12.428 Td [(3.3.1)-1144(Name)-1(d)-333(Constan)28(ts)]TJ -0 g 0 G - [-1016(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ -0 g 0 G - [-1084(16)]TJ -0 g 0 G -0 0 1 rg 0 0 1 RG - -22.914 -12.428 Td [(3.4)-1022(Preconditioner)-333(data)-334(structure)]TJ + 0 -12.702 Td [(3.4)-1022(Preconditioner)-333(data)-334(structure)]TJ 0 g 0 G [-586(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G - [-1084(17)]TJ + [-1084(15)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG - 0 -12.428 Td [(3.5)-1022(Data)-334(structure)-333(query)-333(routines)]TJ + 0 -12.703 Td [(3.5)-1022(Data)-334(structure)-333(query)-333(routines)]TJ 0 g 0 G [-497(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)]TJ 0 g 0 G - [-1084(17)]TJ + [-1084(15)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG - 22.914 -12.429 Td [(get)]TJ + 22.914 -12.702 Td [(get)]TJ ET q -1 0 0 1 151.635 476.643 cm +1 0 0 1 151.635 484.41 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 154.624 476.443 Td [(lo)-28(cal)]TJ +/F8 9.9626 Tf 154.624 484.211 Td [(lo)-28(cal)]TJ ET q -1 0 0 1 175.423 476.643 cm +1 0 0 1 175.423 484.41 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 178.412 476.443 Td [(ro)28(ws)]TJ +/F8 9.9626 Tf 178.412 484.211 Td [(ro)28(ws)]TJ 0 g 0 G [-1277(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G - [-1083(17)]TJ + [-1083(15)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG - -40.659 -12.428 Td [(get)]TJ + -40.659 -12.702 Td [(get)]TJ ET q -1 0 0 1 151.635 464.214 cm +1 0 0 1 151.635 471.708 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 154.624 464.015 Td [(lo)-28(cal)]TJ +/F8 9.9626 Tf 154.624 471.509 Td [(lo)-28(cal)]TJ ET q -1 0 0 1 175.423 464.214 cm +1 0 0 1 175.423 471.708 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 178.412 464.015 Td [(cols)]TJ +/F8 9.9626 Tf 178.412 471.509 Td [(cols)]TJ 0 g 0 G [-863(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G - [-1084(17)]TJ + [-1084(15)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG - -40.659 -12.428 Td [(get)]TJ + -40.659 -12.703 Td [(get)]TJ ET q -1 0 0 1 151.635 451.786 cm +1 0 0 1 151.635 459.006 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 154.624 451.587 Td [(global)]TJ +/F8 9.9626 Tf 154.624 458.806 Td [(global)]TJ ET q -1 0 0 1 181.235 451.786 cm +1 0 0 1 181.235 459.006 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 184.224 451.587 Td [(ro)28(ws)]TJ +/F8 9.9626 Tf 184.224 458.806 Td [(ro)28(ws)]TJ 0 g 0 G [-694(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G - [-1084(19)]TJ + [-1084(16)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG - -46.47 -12.428 Td [(get)]TJ + -46.47 -12.702 Td [(get)]TJ ET q -1 0 0 1 151.635 439.358 cm +1 0 0 1 151.635 446.303 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 154.624 439.159 Td [(global)]TJ +/F8 9.9626 Tf 154.624 446.104 Td [(global)]TJ ET q -1 0 0 1 181.235 439.358 cm +1 0 0 1 181.235 446.303 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 184.224 439.159 Td [(cols)]TJ +/F8 9.9626 Tf 184.224 446.104 Td [(cols)]TJ 0 g 0 G [-1058(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G - [-1084(19)]TJ + [-1084(17)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG - -46.47 -12.428 Td [(get)]TJ + -46.47 -12.702 Td [(get)]TJ ET q -1 0 0 1 151.635 426.93 cm +1 0 0 1 151.635 433.601 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 154.624 426.731 Td [(con)28(text)]TJ +/F8 9.9626 Tf 154.624 433.402 Td [(con)28(text)]TJ 0 g 0 G [-868(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G - [-1084(19)]TJ + [-1084(17)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG - -16.87 -12.429 Td [(psb)]TJ + -16.87 -12.703 Td [(psb)]TJ ET q -1 0 0 1 153.351 414.502 cm +1 0 0 1 153.351 420.898 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 156.339 414.302 Td [(cd)]TJ +/F8 9.9626 Tf 156.339 420.699 Td [(cd)]TJ ET q -1 0 0 1 166.9 414.502 cm +1 0 0 1 166.9 420.898 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 169.889 414.302 Td [(get)]TJ +/F8 9.9626 Tf 169.889 420.699 Td [(get)]TJ ET q -1 0 0 1 183.77 414.502 cm +1 0 0 1 183.77 420.898 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 186.759 414.302 Td [(large)]TJ +/F8 9.9626 Tf 186.759 420.699 Td [(large)]TJ ET q -1 0 0 1 208.416 414.502 cm +1 0 0 1 208.416 420.898 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 211.405 414.302 Td [(threshold)]TJ +/F8 9.9626 Tf 211.405 420.699 Td [(threshold)]TJ 0 g 0 G [-549(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G - [-1084(20)]TJ + [-1084(17)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG - -73.652 -12.428 Td [(psb)]TJ + -73.652 -12.702 Td [(psb)]TJ ET q -1 0 0 1 153.351 402.073 cm +1 0 0 1 153.351 408.196 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 156.339 401.874 Td [(cd)]TJ +/F8 9.9626 Tf 156.339 407.997 Td [(cd)]TJ ET q -1 0 0 1 166.9 402.073 cm +1 0 0 1 166.9 408.196 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 169.889 401.874 Td [(set)]TJ +/F8 9.9626 Tf 169.889 407.997 Td [(set)]TJ ET q -1 0 0 1 182.718 402.073 cm +1 0 0 1 182.718 408.196 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 185.707 401.874 Td [(large)]TJ +/F8 9.9626 Tf 185.707 407.997 Td [(large)]TJ ET q -1 0 0 1 207.365 402.073 cm +1 0 0 1 207.365 408.196 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 210.354 401.874 Td [(threshold)]TJ +/F8 9.9626 Tf 210.354 407.997 Td [(threshold)]TJ 0 g 0 G [-654(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)]TJ 0 g 0 G - [-1084(20)]TJ + [-1084(18)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG - -72.601 -12.428 Td [(get)]TJ + -72.601 -12.702 Td [(get)]TJ ET q -1 0 0 1 151.635 389.645 cm +1 0 0 1 151.635 395.494 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 154.624 389.446 Td [(nro)28(ws)]TJ +/F8 9.9626 Tf 154.624 395.295 Td [(nro)28(ws)]TJ 0 g 0 G [-776(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G - [-1084(20)]TJ + [-1084(18)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG - -16.87 -12.428 Td [(get)]TJ + -16.87 -12.703 Td [(get)]TJ ET q -1 0 0 1 151.635 377.217 cm +1 0 0 1 151.635 382.791 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 154.624 377.018 Td [(ncols)]TJ +/F8 9.9626 Tf 154.624 382.592 Td [(ncols)]TJ 0 g 0 G [-362(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G - [-1084(21)]TJ + [-1084(18)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG - -16.87 -12.428 Td [(get)]TJ + -16.87 -12.702 Td [(get)]TJ ET q -1 0 0 1 151.635 364.789 cm +1 0 0 1 151.635 370.089 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 154.624 364.59 Td [(nnzeros)]TJ +/F8 9.9626 Tf 154.624 369.89 Td [(nnzeros)]TJ 0 g 0 G [-804(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G - [-1084(21)]TJ + [-1084(19)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG -/F27 9.9626 Tf -54.729 -22.707 Td [(4)-925(Computational)-383(r)-1(ou)1(t)-1(ines)]TJ +/F27 9.9626 Tf -54.729 -23.163 Td [(4)-925(Computational)-383(r)-1(ou)1(t)-1(ines)]TJ 0 g 0 G - [-19886(22)]TJ + [-19886(20)]TJ 0 0 1 rg 0 0 1 RG -/F8 9.9626 Tf 14.944 -12.428 Td [(psb)]TJ +/F8 9.9626 Tf 14.944 -12.703 Td [(psb)]TJ ET q -1 0 0 1 130.436 329.654 cm +1 0 0 1 130.436 334.224 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 133.425 329.455 Td [(geaxpb)28(y)]TJ +/F8 9.9626 Tf 133.425 334.024 Td [(geaxpb)28(y)]TJ 0 g 0 G [-301(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G - [-1084(23)]TJ + [-1084(21)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG - -18.586 -12.428 Td [(psb)]TJ + -18.586 -12.702 Td [(psb)]TJ ET q -1 0 0 1 130.436 317.226 cm +1 0 0 1 130.436 321.521 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 133.425 317.027 Td [(gedot)]TJ +/F8 9.9626 Tf 133.425 321.322 Td [(gedot)]TJ 0 g 0 G [-718(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G - [-1083(25)]TJ + [-1083(23)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG - -18.586 -12.428 Td [(psb)]TJ + -18.586 -12.702 Td [(psb)]TJ ET q -1 0 0 1 130.436 304.798 cm +1 0 0 1 130.436 308.819 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 133.425 304.599 Td [(gedots)]TJ +/F8 9.9626 Tf 133.425 308.62 Td [(gedots)]TJ 0 g 0 G [-323(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G - [-1084(27)]TJ + [-1084(25)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG - -18.586 -12.429 Td [(psb)]TJ + -18.586 -12.703 Td [(psb)]TJ ET q -1 0 0 1 130.436 292.37 cm +1 0 0 1 130.436 296.116 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 133.425 292.17 Td [(geamax)]TJ +/F8 9.9626 Tf 133.425 295.917 Td [(geamax)]TJ 0 g 0 G [-579(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G - [-1084(29)]TJ + [-1084(27)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG - -18.586 -12.428 Td [(psb)]TJ + -18.586 -12.702 Td [(psb)]TJ ET q -1 0 0 1 130.436 279.941 cm +1 0 0 1 130.436 283.414 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 133.425 279.742 Td [(geamaxs)]TJ +/F8 9.9626 Tf 133.425 283.215 Td [(geamaxs)]TJ 0 g 0 G [-962(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G - [-1084(30)]TJ + [-1084(28)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG - -18.586 -12.428 Td [(psb)]TJ + -18.586 -12.703 Td [(psb)]TJ ET q -1 0 0 1 130.436 267.513 cm +1 0 0 1 130.436 270.712 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 133.425 267.314 Td [(geasum)]TJ +/F8 9.9626 Tf 133.425 270.512 Td [(geasum)]TJ 0 g 0 G [-657(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G - [-1083(31)]TJ + [-1083(29)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG - -18.586 -12.428 Td [(psb)]TJ + -18.586 -12.702 Td [(psb)]TJ ET q -1 0 0 1 130.436 255.085 cm +1 0 0 1 130.436 258.009 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 133.425 254.886 Td [(geasums)]TJ +/F8 9.9626 Tf 133.425 257.81 Td [(geasums)]TJ 0 g 0 G [-262(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G - [-1084(32)]TJ + [-1084(30)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG - -18.586 -12.428 Td [(psb)]TJ + -18.586 -12.702 Td [(psb)]TJ ET q -1 0 0 1 130.436 242.657 cm +1 0 0 1 130.436 245.307 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 133.425 242.458 Td [(geasums)]TJ +/F8 9.9626 Tf 133.425 245.108 Td [(geasums)]TJ 0 g 0 G [-262(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G - [-1084(34)]TJ + [-1084(32)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG - -18.586 -12.429 Td [(psb)]TJ + -18.586 -12.703 Td [(psb)]TJ ET q -1 0 0 1 130.436 230.229 cm +1 0 0 1 130.436 232.605 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 133.425 230.029 Td [(genrm2s)]TJ +/F8 9.9626 Tf 133.425 232.405 Td [(genrm2s)]TJ 0 g 0 G [-265(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G - [-1084(35)]TJ + [-1084(33)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG - -18.586 -12.428 Td [(psb)]TJ + -18.586 -12.702 Td [(psb)]TJ ET q -1 0 0 1 130.436 217.8 cm +1 0 0 1 130.436 219.902 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 133.425 217.601 Td [(spnrmi)]TJ +/F8 9.9626 Tf 133.425 219.703 Td [(spnrmi)]TJ 0 g 0 G [-876(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G - [-1084(36)]TJ + [-1084(34)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG - -18.586 -12.428 Td [(psb)]TJ + -18.586 -12.702 Td [(psb)]TJ ET q -1 0 0 1 130.436 205.372 cm +1 0 0 1 130.436 207.2 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 133.425 205.173 Td [(spmm)]TJ +/F8 9.9626 Tf 133.425 207.001 Td [(spmm)]TJ 0 g 0 G [-490(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G - [-1084(37)]TJ + [-1084(35)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG - -18.586 -12.428 Td [(psb)]TJ + -18.586 -12.703 Td [(psb)]TJ ET q -1 0 0 1 130.436 192.944 cm +1 0 0 1 130.436 194.498 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 133.425 192.745 Td [(spsm)]TJ +/F8 9.9626 Tf 133.425 194.298 Td [(spsm)]TJ 0 g 0 G [-929(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G - [-1084(39)]TJ + [-1084(37)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG -/F27 9.9626 Tf -33.53 -22.707 Td [(5)-925(Comm)32(unication)-384(routines)]TJ +/F27 9.9626 Tf -33.53 -23.163 Td [(5)-925(Comm)32(unication)-384(routines)]TJ 0 g 0 G - [-19454(42)]TJ + [-19454(40)]TJ 0 0 1 rg 0 0 1 RG -/F8 9.9626 Tf 14.944 -12.428 Td [(psb)]TJ +/F8 9.9626 Tf 14.944 -12.702 Td [(psb)]TJ ET q -1 0 0 1 130.436 157.81 cm +1 0 0 1 130.436 158.632 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 133.425 157.61 Td [(halo)]TJ +/F8 9.9626 Tf 133.425 158.433 Td [(halo)]TJ 0 g 0 G [-495(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G - [-1084(43)]TJ + [-1084(41)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG - -18.586 -12.428 Td [(psb)]TJ + -18.586 -12.703 Td [(psb)]TJ ET q -1 0 0 1 130.436 145.381 cm +1 0 0 1 130.436 145.93 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 133.425 145.182 Td [(o)28(vrl)]TJ +/F8 9.9626 Tf 133.425 145.73 Td [(o)28(vrl)]TJ 0 g 0 G [-660(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)]TJ 0 g 0 G - [-1084(46)]TJ + [-1084(44)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG - -18.586 -12.428 Td [(psb)]TJ + -18.586 -12.702 Td [(psb)]TJ ET q -1 0 0 1 130.436 132.953 cm +1 0 0 1 130.436 133.227 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 133.425 132.754 Td [(gather)]TJ +/F8 9.9626 Tf 133.425 133.028 Td [(gather)]TJ 0 g 0 G [-326(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G - [-1084(50)]TJ + [-1084(48)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG - -18.586 -12.428 Td [(psb)]TJ + -18.586 -12.702 Td [(psb)]TJ ET q 1 0 0 1 130.436 120.525 cm @@ -1262,7 +1249,7 @@ BT 0 g 0 G [-932(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G - [-1083(52)]TJ + [-1083(50)]TJ 0 g 0 G 0 g 0 G 136.942 -29.888 Td [(i)]TJ @@ -1270,326 +1257,319 @@ BT ET endstream endobj -493 0 obj << +489 0 obj << /Type /Page -/Contents 494 0 R -/Resources 492 0 R +/Contents 490 0 R +/Resources 488 0 R /MediaBox [0 0 595.276 841.89] -/Parent 443 0 R -/Annots [ 448 0 R 449 0 R 450 0 R 451 0 R 452 0 R 453 0 R 454 0 R 455 0 R 456 0 R 457 0 R 458 0 R 459 0 R 460 0 R 461 0 R 462 0 R 463 0 R 464 0 R 465 0 R 466 0 R 467 0 R 468 0 R 469 0 R 470 0 R 471 0 R 472 0 R 473 0 R 474 0 R 475 0 R 476 0 R 477 0 R 478 0 R 479 0 R 480 0 R 481 0 R 482 0 R 483 0 R 484 0 R 485 0 R 486 0 R 487 0 R 488 0 R 489 0 R 490 0 R ] +/Parent 439 0 R +/Annots [ 444 0 R 445 0 R 446 0 R 447 0 R 448 0 R 449 0 R 450 0 R 451 0 R 452 0 R 453 0 R 454 0 R 455 0 R 456 0 R 457 0 R 458 0 R 459 0 R 460 0 R 461 0 R 462 0 R 463 0 R 464 0 R 465 0 R 466 0 R 467 0 R 468 0 R 469 0 R 470 0 R 471 0 R 472 0 R 473 0 R 474 0 R 475 0 R 476 0 R 477 0 R 478 0 R 479 0 R 480 0 R 481 0 R 482 0 R 483 0 R 484 0 R 485 0 R ] >> endobj -448 0 obj << +444 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [98.899 682.426 179.001 691.337] +/Rect [98.899 681.969 179.001 690.88] /Subtype /Link /A << /S /GoTo /D (section.1) >> >> endobj -449 0 obj << +445 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [98.899 659.72 202.863 668.631] +/Rect [98.899 658.806 202.863 667.717] /Subtype /Link /A << /S /GoTo /D (section.2) >> >> endobj -450 0 obj << +446 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [113.843 647.292 225.868 656.203] +/Rect [113.843 646.104 225.868 655.015] /Subtype /Link /A << /S /GoTo /D (subsection.2.1) >> >> endobj -451 0 obj << +447 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [113.843 632.927 210.675 643.775] +/Rect [113.843 631.464 210.675 642.313] /Subtype /Link /A << /S /GoTo /D (subsection.2.2) >> >> endobj -452 0 obj << +448 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [113.843 620.498 232.122 631.347] +/Rect [113.843 618.762 232.122 629.61] /Subtype /Link /A << /S /GoTo /D (subsection.2.3) >> >> endobj -453 0 obj << +449 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [113.843 608.07 227.777 618.918] +/Rect [113.843 606.06 227.777 616.908] /Subtype /Link /A << /S /GoTo /D (subsection.2.4) >> >> endobj -454 0 obj << +450 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [98.899 587.301 196.34 596.129] +/Rect [98.899 584.834 196.34 593.662] /Subtype /Link /A << /S /GoTo /D (section.3) >> >> endobj -455 0 obj << +451 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [113.843 572.936 249.529 583.784] +/Rect [113.843 570.194 249.529 581.042] /Subtype /Link /A << /S /GoTo /D (subsection.3.1) >> >> endobj -456 0 obj << +452 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [136.757 562.445 248.228 571.356] +/Rect [136.757 559.429 248.228 568.34] /Subtype /Link /A << /S /GoTo /D (subsubsection.3.1.1) >> >> endobj -457 0 obj << +453 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [113.843 548.079 265.718 558.927] +/Rect [113.843 544.789 265.718 555.638] /Subtype /Link /A << /S /GoTo /D (subsection.3.2) >> >> endobj -458 0 obj << +454 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [136.757 537.588 248.228 546.499] +/Rect [136.757 534.024 248.228 542.935] /Subtype /Link /A << /S /GoTo /D (subsubsection.3.2.1) >> >> endobj -459 0 obj << +455 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [113.843 525.16 265.358 533.96] +/Rect [113.843 521.322 265.358 530.122] /Subtype /Link /A << /S /GoTo /D (subsection.3.3) >> >> endobj -460 0 obj << -/Type /Annot -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [136.757 512.732 248.228 521.643] -/Subtype /Link -/A << /S /GoTo /D (subsubsection.3.3.1) >> ->> endobj -461 0 obj << +456 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [113.843 500.304 268.015 509.215] +/Rect [113.843 508.62 268.015 517.531] /Subtype /Link /A << /S /GoTo /D (subsection.3.4) >> >> endobj -462 0 obj << +457 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [113.843 485.938 268.901 496.676] +/Rect [113.843 493.98 268.901 504.717] /Subtype /Link /A << /S /GoTo /D (subsection.3.5) >> >> endobj -463 0 obj << +458 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [136.757 473.51 202.461 484.358] +/Rect [136.757 481.278 202.461 492.126] /Subtype /Link /A << /S /GoTo /D (section*.2) >> >> endobj -464 0 obj << +459 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [136.757 461.082 198.836 471.93] +/Rect [136.757 468.575 198.836 479.423] /Subtype /Link /A << /S /GoTo /D (section*.3) >> >> endobj -465 0 obj << +460 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [136.757 448.654 208.273 459.502] +/Rect [136.757 455.873 208.273 466.721] /Subtype /Link /A << /S /GoTo /D (section*.4) >> >> endobj -466 0 obj << +461 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [136.757 436.225 204.647 447.074] +/Rect [136.757 443.171 204.647 454.019] /Subtype /Link /A << /S /GoTo /D (section*.5) >> >> endobj -467 0 obj << +462 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [136.757 423.797 187.722 434.147] +/Rect [136.757 430.468 187.722 440.818] /Subtype /Link /A << /S /GoTo /D (section*.6) >> >> endobj -468 0 obj << +463 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [136.757 411.369 252.889 422.217] +/Rect [136.757 417.766 252.889 428.614] /Subtype /Link /A << /S /GoTo /D (section*.7) >> >> endobj -469 0 obj << +464 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [136.757 398.941 251.837 409.789] +/Rect [136.757 405.063 251.837 415.912] /Subtype /Link /A << /S /GoTo /D (section*.8) >> >> endobj -470 0 obj << +465 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [136.757 386.512 180.886 396.863] +/Rect [136.757 392.361 180.886 402.711] /Subtype /Link /A << /S /GoTo /D (section*.9) >> >> endobj -471 0 obj << +466 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [136.757 374.084 177.261 384.932] +/Rect [136.757 379.659 177.261 390.507] /Subtype /Link /A << /S /GoTo /D (section*.10) >> >> endobj -472 0 obj << +467 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [136.757 361.656 188.358 372.006] +/Rect [136.757 366.956 188.358 377.306] /Subtype /Link /A << /S /GoTo /D (section*.11) >> >> endobj -473 0 obj << +468 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [98.899 338.95 235.028 349.798] +/Rect [98.899 343.793 235.028 354.641] /Subtype /Link /A << /S /GoTo /D (section.4) >> >> endobj -474 0 obj << +469 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [113.843 326.522 170.121 337.37] +/Rect [113.843 331.091 170.121 341.939] /Subtype /Link /A << /S /GoTo /D (section*.12) >> >> endobj -475 0 obj << +470 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [113.843 314.093 158.221 324.942] +/Rect [113.843 318.388 158.221 329.237] /Subtype /Link /A << /S /GoTo /D (section*.13) >> >> endobj -476 0 obj << +471 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [113.843 301.665 162.151 312.513] +/Rect [113.843 305.686 162.151 316.534] /Subtype /Link /A << /S /GoTo /D (section*.14) >> >> endobj -477 0 obj << +472 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [113.843 289.237 167.354 300.085] +/Rect [113.843 292.984 167.354 303.832] /Subtype /Link /A << /S /GoTo /D (section*.15) >> >> endobj -478 0 obj << +473 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [113.843 276.809 171.283 287.657] +/Rect [113.843 280.281 171.283 291.13] /Subtype /Link /A << /S /GoTo /D (section*.16) >> >> endobj -479 0 obj << +474 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [113.843 264.381 166.579 275.229] +/Rect [113.843 267.579 166.579 278.427] /Subtype /Link /A << /S /GoTo /D (section*.17) >> >> endobj -480 0 obj << +475 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [113.843 251.952 170.508 262.801] +/Rect [113.843 254.877 170.508 265.725] /Subtype /Link /A << /S /GoTo /D (section*.18) >> >> endobj -481 0 obj << +476 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [113.843 239.524 170.508 250.372] +/Rect [113.843 242.174 170.508 253.022] /Subtype /Link /A << /S /GoTo /D (section*.19) >> >> endobj -482 0 obj << +477 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [113.843 227.096 170.481 237.944] +/Rect [113.843 229.472 170.481 240.32] /Subtype /Link /A << /S /GoTo /D (section*.20) >> >> endobj -483 0 obj << +478 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [113.843 214.668 164.393 225.516] +/Rect [113.843 216.77 164.393 227.618] /Subtype /Link /A << /S /GoTo /D (section*.21) >> >> endobj -484 0 obj << +479 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [113.843 202.239 160.49 213.088] +/Rect [113.843 204.067 160.49 214.915] /Subtype /Link /A << /S /GoTo /D (section*.22) >> >> endobj -485 0 obj << +480 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [113.843 189.811 156.118 200.659] +/Rect [113.843 191.365 156.118 202.213] /Subtype /Link /A << /S /GoTo /D (section*.23) >> >> endobj -486 0 obj << +481 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [98.899 169.042 239.325 177.953] +/Rect [98.899 170.139 239.325 179.05] /Subtype /Link /A << /S /GoTo /D (section.5) >> >> endobj -487 0 obj << +482 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [113.843 154.677 152.686 165.525] +/Rect [113.843 155.499 152.686 166.347] /Subtype /Link /A << /S /GoTo /D (section*.24) >> >> endobj -488 0 obj << +483 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [113.843 142.249 151.054 153.097] +/Rect [113.843 142.797 151.054 153.645] /Subtype /Link /A << /S /GoTo /D (section*.25) >> >> endobj -489 0 obj << +484 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [113.843 129.82 162.123 140.669] +/Rect [113.843 130.095 162.123 140.943] /Subtype /Link /A << /S /GoTo /D (section*.26) >> >> endobj -490 0 obj << +485 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [113.843 117.392 163.839 128.24] /Subtype /Link /A << /S /GoTo /D (section*.27) >> >> endobj -495 0 obj << -/D [493 0 R /XYZ 99.895 740.998 null] ->> endobj -496 0 obj << -/D [493 0 R /XYZ 99.895 695.924 null] +491 0 obj << +/D [489 0 R /XYZ 99.895 740.998 null] >> endobj 492 0 obj << -/Font << /F16 439 0 R /F27 441 0 R /F8 442 0 R >> +/D [489 0 R /XYZ 99.895 695.727 null] +>> endobj +488 0 obj << +/Font << /F16 435 0 R /F27 437 0 R /F8 438 0 R >> /ProcSet [ /PDF /Text ] >> endobj -547 0 obj << +542 0 obj << /Length 20922 >> stream @@ -1599,7 +1579,7 @@ stream BT /F27 9.9626 Tf 150.705 706.129 Td [(6)-925(Data)-383(managem)-1(e)1(n)31(t)-383(routines)]TJ 0 g 0 G - [-18205(54)]TJ + [-18205(52)]TJ 0 0 1 rg 0 0 1 RG /F8 9.9626 Tf 14.944 -13.071 Td [(psb)]TJ ET @@ -1612,7 +1592,7 @@ BT 0 g 0 G [-273(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G - [-1084(54)]TJ + [-1084(52)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG -18.586 -13.07 Td [(psb)]TJ @@ -1626,7 +1606,7 @@ BT 0 g 0 G [-879(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G - [-1084(58)]TJ + [-1084(56)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG -18.586 -13.07 Td [(psb)]TJ @@ -1640,7 +1620,7 @@ BT 0 g 0 G [-657(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G - [-1083(59)]TJ + [-1083(57)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG -18.586 -13.071 Td [(psb)]TJ @@ -1654,7 +1634,7 @@ BT 0 g 0 G [-607(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G - [-1084(60)]TJ + [-1084(58)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG -18.586 -13.07 Td [(psb)]TJ @@ -1668,7 +1648,7 @@ BT 0 g 0 G [-520(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)]TJ 0 g 0 G - [-1084(61)]TJ + [-1084(59)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG -18.586 -13.07 Td [(psb)]TJ @@ -1682,7 +1662,7 @@ BT 0 g 0 G [-912(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G - [-1084(62)]TJ + [-1084(60)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG -18.586 -13.071 Td [(psb)]TJ @@ -1696,7 +1676,7 @@ BT 0 g 0 G [-323(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G - [-1084(64)]TJ + [-1084(62)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG -18.586 -13.07 Td [(psb)]TJ @@ -1710,7 +1690,7 @@ BT 0 g 0 G [-929(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G - [-1084(65)]TJ + [-1084(63)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG -18.586 -13.071 Td [(psb)]TJ @@ -1724,7 +1704,7 @@ BT 0 g 0 G [-707(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G - [-1083(67)]TJ + [-1083(65)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG -18.586 -13.07 Td [(psb)]TJ @@ -1738,7 +1718,7 @@ BT 0 g 0 G [-570(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)]TJ 0 g 0 G - [-1084(69)]TJ + [-1084(67)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG -18.586 -13.07 Td [(psb)]TJ @@ -1752,7 +1732,7 @@ BT 0 g 0 G [-431(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)]TJ 0 g 0 G - [-1084(70)]TJ + [-1084(68)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG -18.586 -13.071 Td [(psb)]TJ @@ -1766,7 +1746,7 @@ BT 0 g 0 G [-329(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G - [-1084(71)]TJ + [-1084(69)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG -18.586 -13.07 Td [(psb)]TJ @@ -1780,7 +1760,7 @@ BT 0 g 0 G [-934(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G - [-1084(72)]TJ + [-1084(70)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG -18.586 -13.071 Td [(psb)]TJ @@ -1794,7 +1774,7 @@ BT 0 g 0 G [-712(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G - [-1084(74)]TJ + [-1084(72)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG -18.586 -13.07 Td [(psb)]TJ @@ -1808,7 +1788,7 @@ BT 0 g 0 G [-576(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G - [-1084(75)]TJ + [-1084(73)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG -18.586 -13.07 Td [(psb)]TJ @@ -1822,7 +1802,7 @@ BT 0 g 0 G [-551(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G - [-1084(76)]TJ + [-1084(74)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG -18.586 -13.071 Td [(psb)]TJ @@ -1850,7 +1830,7 @@ BT 0 g 0 G [-747(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G - [-1083(77)]TJ + [-1083(75)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG -52.879 -13.07 Td [(psb)]TJ @@ -1878,7 +1858,7 @@ BT 0 g 0 G [-748(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G - [-1083(79)]TJ + [-1083(77)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG -47.068 -13.071 Td [(psb)]TJ @@ -1899,7 +1879,7 @@ BT 0 g 0 G [-880(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G - [-1084(80)]TJ + [-1084(78)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG -28.869 -13.07 Td [(psb)]TJ @@ -1920,7 +1900,7 @@ BT 0 g 0 G [-746(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G - [-1083(81)]TJ + [-1083(79)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG -49.57 -13.07 Td [(psb)]TJ @@ -1941,7 +1921,7 @@ BT 0 g 0 G [-824(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G - [-1084(82)]TJ + [-1084(80)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG -28.869 -13.071 Td [(psb)]TJ @@ -1962,7 +1942,7 @@ BT 0 g 0 G [-691(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G - [-1084(83)]TJ + [-1084(81)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG -42.374 -13.07 Td [(psb)]TJ @@ -1983,7 +1963,7 @@ BT 0 g 0 G [-354(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G - [-1083(84)]TJ + [-1083(82)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG -35.456 -13.07 Td [(psb)]TJ @@ -2004,7 +1984,7 @@ BT 0 g 0 G [-605(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G - [-1084(85)]TJ + [-1084(83)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG -35.456 -13.071 Td [(psb)]TJ @@ -2025,7 +2005,7 @@ BT 0 g 0 G [-433(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G - [-1084(86)]TJ + [-1084(84)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG -31.637 -13.07 Td [(psb)]TJ @@ -2039,19 +2019,19 @@ BT 0 g 0 G [-740(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G - [-1084(88)]TJ + [-1084(86)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG -18.586 -13.071 Td [(Sorting)-333(utilities)]TJ 0 g 0 G [-519(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G - [-1083(89)]TJ + [-1083(87)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG /F27 9.9626 Tf -14.944 -23.776 Td [(7)-925(P)32(arallel)-384(en)32(vironmen)32(t)-383(routines)]TJ 0 g 0 G - [-16891(91)]TJ + [-16891(89)]TJ 0 0 1 rg 0 0 1 RG /F8 9.9626 Tf 14.944 -13.071 Td [(psb)]TJ ET @@ -2064,7 +2044,7 @@ BT 0 g 0 G [-829(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G - [-1083(92)]TJ + [-1083(90)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG -18.586 -13.07 Td [(psb)]TJ @@ -2078,7 +2058,7 @@ BT 0 g 0 G [-690(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G - [-1084(93)]TJ + [-1084(91)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG -18.586 -13.07 Td [(psb)]TJ @@ -2092,7 +2072,7 @@ BT 0 g 0 G [-690(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G - [-1084(94)]TJ + [-1084(92)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG -18.586 -13.071 Td [(psb)]TJ @@ -2113,7 +2093,7 @@ BT 0 g 0 G [-1024(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G - [-1083(95)]TJ + [-1083(93)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG -35.456 -13.07 Td [(psb)]TJ @@ -2134,7 +2114,7 @@ BT 0 g 0 G [-994(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G - [-1083(96)]TJ + [-1083(94)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG -35.456 -13.07 Td [(psb)]TJ @@ -2148,7 +2128,7 @@ BT 0 g 0 G [-440(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G - [-1084(97)]TJ + [-1084(95)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG -18.586 -13.071 Td [(psb)]TJ @@ -2162,7 +2142,7 @@ BT 0 g 0 G [-931(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)]TJ 0 g 0 G - [-1084(98)]TJ + [-1084(96)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG -18.586 -13.07 Td [(psb)]TJ @@ -2176,7 +2156,7 @@ BT 0 g 0 G [-742(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G - [-1084(99)]TJ + [-1084(97)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG -18.586 -13.071 Td [(psb)]TJ @@ -2190,7 +2170,7 @@ BT 0 g 0 G [-795(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G - [-584(100)]TJ + [-1084(98)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG -18.586 -13.07 Td [(psb)]TJ @@ -2204,7 +2184,7 @@ BT 0 g 0 G [-545(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)]TJ 0 g 0 G - [-584(101)]TJ + [-1084(99)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG -18.586 -13.07 Td [(psb)]TJ @@ -2218,7 +2198,7 @@ BT 0 g 0 G [-468(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G - [-583(102)]TJ + [-583(100)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG -18.586 -13.071 Td [(psb)]TJ @@ -2232,7 +2212,7 @@ BT 0 g 0 G [-662(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G - [-584(103)]TJ + [-584(101)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG -18.586 -13.07 Td [(psb)]TJ @@ -2246,7 +2226,7 @@ BT 0 g 0 G [-468(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G - [-583(104)]TJ + [-583(102)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG -18.586 -13.071 Td [(psb)]TJ @@ -2260,7 +2240,7 @@ BT 0 g 0 G [-440(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G - [-584(105)]TJ + [-584(103)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG -18.586 -13.07 Td [(psb)]TJ @@ -2274,7 +2254,7 @@ BT 0 g 0 G [-823(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G - [-584(106)]TJ + [-584(104)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG -18.586 -13.07 Td [(psb)]TJ @@ -2288,7 +2268,7 @@ BT 0 g 0 G [-965(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G - [-584(107)]TJ + [-584(105)]TJ 0 g 0 G 0 g 0 G 135.558 -29.888 Td [(ii)]TJ @@ -2296,337 +2276,337 @@ BT ET endstream endobj -546 0 obj << +541 0 obj << /Type /Page -/Contents 547 0 R -/Resources 545 0 R +/Contents 542 0 R +/Resources 540 0 R /MediaBox [0 0 595.276 841.89] -/Parent 443 0 R -/Annots [ 491 0 R 497 0 R 498 0 R 499 0 R 500 0 R 501 0 R 502 0 R 503 0 R 504 0 R 505 0 R 506 0 R 507 0 R 508 0 R 509 0 R 510 0 R 511 0 R 512 0 R 513 0 R 514 0 R 515 0 R 516 0 R 517 0 R 518 0 R 519 0 R 520 0 R 521 0 R 522 0 R 523 0 R 524 0 R 525 0 R 526 0 R 527 0 R 528 0 R 529 0 R 530 0 R 531 0 R 532 0 R 533 0 R 534 0 R 535 0 R 536 0 R 537 0 R 538 0 R 539 0 R 540 0 R ] +/Parent 439 0 R +/Annots [ 486 0 R 487 0 R 493 0 R 494 0 R 495 0 R 496 0 R 497 0 R 498 0 R 499 0 R 500 0 R 501 0 R 502 0 R 503 0 R 504 0 R 505 0 R 506 0 R 507 0 R 508 0 R 509 0 R 510 0 R 511 0 R 512 0 R 513 0 R 514 0 R 515 0 R 516 0 R 517 0 R 518 0 R 519 0 R 520 0 R 521 0 R 522 0 R 523 0 R 524 0 R 525 0 R 526 0 R 527 0 R 528 0 R 529 0 R 530 0 R 531 0 R 532 0 R 533 0 R 534 0 R 535 0 R ] >> endobj -491 0 obj << +486 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [149.709 703.195 302.58 714.044] /Subtype /Link /A << /S /GoTo /D (section.6) >> >> endobj -497 0 obj << +487 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [164.653 690.125 205.71 700.973] /Subtype /Link /A << /S /GoTo /D (section*.28) >> >> endobj -498 0 obj << +493 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [164.653 677.055 207.426 687.903] /Subtype /Link /A << /S /GoTo /D (section*.29) >> >> endobj -499 0 obj << +494 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [164.653 663.984 209.639 674.832] /Subtype /Link /A << /S /GoTo /D (section*.30) >> >> endobj -500 0 obj << +495 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [164.653 650.914 210.138 661.762] /Subtype /Link /A << /S /GoTo /D (section*.31) >> >> endobj -501 0 obj << +496 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [164.653 637.843 210.996 648.692] /Subtype /Link /A << /S /GoTo /D (section*.32) >> >> endobj -502 0 obj << +497 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [164.653 624.773 222.591 635.621] /Subtype /Link /A << /S /GoTo /D (section*.33) >> >> endobj -503 0 obj << +498 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [164.653 611.703 205.212 622.551] /Subtype /Link /A << /S /GoTo /D (section*.34) >> >> endobj -504 0 obj << +499 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [164.653 598.632 206.927 609.481] /Subtype /Link /A << /S /GoTo /D (section*.35) >> >> endobj -505 0 obj << +500 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [164.653 585.562 209.141 596.41] /Subtype /Link /A << /S /GoTo /D (section*.36) >> >> endobj -506 0 obj << +501 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [164.653 572.492 210.497 583.34] /Subtype /Link /A << /S /GoTo /D (section*.37) >> >> endobj -507 0 obj << +502 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [164.653 559.421 204.132 570.269] /Subtype /Link /A << /S /GoTo /D (section*.38) >> >> endobj -508 0 obj << +503 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [164.653 546.351 205.156 557.199] /Subtype /Link /A << /S /GoTo /D (section*.39) >> >> endobj -509 0 obj << +504 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [164.653 533.28 206.872 544.129] /Subtype /Link /A << /S /GoTo /D (section*.40) >> >> endobj -510 0 obj << +505 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [164.653 520.21 209.086 531.058] /Subtype /Link /A << /S /GoTo /D (section*.41) >> >> endobj -511 0 obj << +506 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [164.653 507.14 210.442 517.988] /Subtype /Link /A << /S /GoTo /D (section*.42) >> >> endobj -512 0 obj << +507 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [164.653 494.069 202.942 504.917] /Subtype /Link /A << /S /GoTo /D (section*.43) >> >> endobj -513 0 obj << +508 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [164.653 480.999 231.978 491.847] /Subtype /Link /A << /S /GoTo /D (section*.44) >> >> endobj -514 0 obj << +509 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [164.653 467.928 231.978 478.777] /Subtype /Link /A << /S /GoTo /D (section*.45) >> >> endobj -515 0 obj << +510 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [164.653 454.858 222.912 465.706] /Subtype /Link /A << /S /GoTo /D (section*.46) >> >> endobj -516 0 obj << +511 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [164.653 441.788 239.738 452.636] /Subtype /Link /A << /S /GoTo /D (section*.47) >> >> endobj -517 0 obj << +512 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [164.653 428.717 215.717 439.565] /Subtype /Link /A << /S /GoTo /D (section*.48) >> >> endobj -518 0 obj << +513 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [164.653 415.647 232.543 426.495] /Subtype /Link /A << /S /GoTo /D (section*.49) >> >> endobj -519 0 obj << +514 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [164.653 402.576 243.64 413.425] /Subtype /Link /A << /S /GoTo /D (section*.50) >> >> endobj -520 0 obj << +515 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [164.653 389.506 233.4 400.354] /Subtype /Link /A << /S /GoTo /D (section*.51) >> >> endobj -521 0 obj << +516 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [164.653 376.436 227.367 387.284] /Subtype /Link /A << /S /GoTo /D (section*.52) >> >> endobj -522 0 obj << +517 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [164.653 363.365 208.809 374.214] /Subtype /Link /A << /S /GoTo /D (section*.53) >> >> endobj -523 0 obj << +518 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [164.653 350.295 234.253 361.143] /Subtype /Link /A << /S /GoTo /D (section*.54) >> >> endobj -524 0 obj << +519 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [149.709 328.456 315.677 337.367] /Subtype /Link /A << /S /GoTo /D (section.7) >> >> endobj -525 0 obj << +520 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [164.653 313.448 200.175 324.296] /Subtype /Link /A << /S /GoTo /D (section*.55) >> >> endobj -526 0 obj << +521 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [164.653 300.378 201.559 311.226] /Subtype /Link /A << /S /GoTo /D (section*.56) >> >> endobj -527 0 obj << +522 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [164.653 287.307 201.559 298.155] /Subtype /Link /A << /S /GoTo /D (section*.57) >> >> endobj -528 0 obj << +523 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [164.653 274.237 244.719 285.085] /Subtype /Link /A << /S /GoTo /D (section*.58) >> >> endobj -529 0 obj << +524 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [164.653 261.166 221.777 272.015] /Subtype /Link /A << /S /GoTo /D (section*.59) >> >> endobj -530 0 obj << +525 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [164.653 248.096 211.798 258.944] /Subtype /Link /A << /S /GoTo /D (section*.60) >> >> endobj -531 0 obj << +526 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [164.653 235.026 214.648 245.874] /Subtype /Link /A << /S /GoTo /D (section*.61) >> >> endobj -532 0 obj << +527 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [164.653 221.955 208.782 232.804] /Subtype /Link /A << /S /GoTo /D (section*.62) >> >> endobj -533 0 obj << +528 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [164.653 208.885 208.256 219.733] /Subtype /Link /A << /S /GoTo /D (section*.63) >> >> endobj -534 0 obj << +529 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [164.653 195.815 202.998 206.663] /Subtype /Link /A << /S /GoTo /D (section*.64) >> >> endobj -535 0 obj << +530 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [164.653 182.744 203.773 193.592] /Subtype /Link /A << /S /GoTo /D (section*.65) >> >> endobj -536 0 obj << +531 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [164.653 169.674 201.835 180.522] /Subtype /Link /A << /S /GoTo /D (section*.66) >> >> endobj -537 0 obj << +532 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [164.653 156.603 203.773 167.452] /Subtype /Link /A << /S /GoTo /D (section*.67) >> >> endobj -538 0 obj << +533 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [164.653 143.533 204.049 154.381] /Subtype /Link /A << /S /GoTo /D (section*.68) >> >> endobj -539 0 obj << +534 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [164.653 130.463 200.23 141.311] /Subtype /Link /A << /S /GoTo /D (section*.69) >> >> endobj -540 0 obj << +535 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [164.653 117.392 198.819 128.24] /Subtype /Link /A << /S /GoTo /D (section*.70) >> >> endobj -548 0 obj << -/D [546 0 R /XYZ 150.705 740.998 null] +543 0 obj << +/D [541 0 R /XYZ 150.705 740.998 null] >> endobj -545 0 obj << -/Font << /F27 441 0 R /F8 442 0 R >> +540 0 obj << +/Font << /F27 437 0 R /F8 438 0 R >> /ProcSet [ /PDF /Text ] >> endobj -565 0 obj << +560 0 obj << /Length 7118 >> stream @@ -2636,7 +2616,7 @@ stream BT /F27 9.9626 Tf 99.895 706.129 Td [(8)-925(Error)-383(handling)]TJ 0 g 0 G - [-23812(108)]TJ + [-23812(106)]TJ 0 0 1 rg 0 0 1 RG /F8 9.9626 Tf 14.944 -11.955 Td [(psb)]TJ ET @@ -2649,7 +2629,7 @@ BT 0 g 0 G [-595(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G - [-584(110)]TJ + [-584(108)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG -18.586 -11.955 Td [(psb)]TJ @@ -2663,7 +2643,7 @@ BT 0 g 0 G [-987(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G - [-584(111)]TJ + [-584(109)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG -18.586 -11.956 Td [(psb)]TJ @@ -2684,7 +2664,7 @@ BT 0 g 0 G [-977(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G - [-584(112)]TJ + [-584(110)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG -34.405 -11.955 Td [(psb)]TJ @@ -2705,12 +2685,12 @@ BT 0 g 0 G [-735(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)]TJ 0 g 0 G - [-584(113)]TJ + [-584(111)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG /F27 9.9626 Tf -49.349 -21.918 Td [(9)-925(Utilities)]TJ 0 g 0 G - [-27238(114)]TJ + [-27238(112)]TJ 0 0 1 rg 0 0 1 RG /F8 9.9626 Tf 37.859 -11.955 Td [(h)28(b)]TJ ET @@ -2723,7 +2703,7 @@ BT 0 g 0 G [-893(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G - [-583(115)]TJ + [-583(113)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG -14.38 -11.955 Td [(h)28(b)]TJ @@ -2737,7 +2717,7 @@ BT 0 g 0 G [-559(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G - [-584(116)]TJ + [-584(114)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG -14.38 -11.955 Td [(mm)]TJ @@ -2758,7 +2738,7 @@ BT 0 g 0 G [-560(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G - [-583(117)]TJ + [-583(115)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG -40.935 -11.955 Td [(mm)]TJ @@ -2779,7 +2759,7 @@ BT 0 g 0 G [-949(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G - [-584(118)]TJ + [-584(116)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG -37.062 -11.955 Td [(mm)]TJ @@ -2800,12 +2780,12 @@ BT 0 g 0 G [-1005(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G - [-584(119)]TJ + [-584(117)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG /F27 9.9626 Tf -78.794 -21.918 Td [(10)-350(Preconditioner)-383(routi)-1(ne)1(s)]TJ 0 g 0 G - [-19367(120)]TJ + [-19367(118)]TJ 0 0 1 rg 0 0 1 RG /F8 9.9626 Tf 14.944 -11.955 Td [(psb)]TJ ET @@ -2818,7 +2798,7 @@ BT 0 g 0 G [-548(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G - [-584(121)]TJ + [-584(119)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG -18.586 -11.956 Td [(psb)]TJ @@ -2832,7 +2812,7 @@ BT 0 g 0 G [-659(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G - [-584(122)]TJ + [-584(120)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG -18.586 -11.955 Td [(psb)]TJ @@ -2846,7 +2826,7 @@ BT 0 g 0 G [-965(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G - [-584(123)]TJ + [-584(121)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG -18.586 -11.955 Td [(psb)]TJ @@ -2860,18 +2840,18 @@ BT 0 g 0 G [-596(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G - [-583(124)]TJ + [-583(122)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG /F27 9.9626 Tf -33.53 -21.918 Td [(11)-350(Iterativ)32(e)-384(Metho)-31(ds)]TJ 0 g 0 G - [-22176(125)]TJ + [-22176(123)]TJ 0 0 1 rg 0 0 1 RG /F8 9.9626 Tf 14.944 -11.955 Td [(krylo)28(v)]TJ 0 g 0 G [-692(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G - [-583(126)]TJ + [-583(124)]TJ 0 g 0 G 0 g 0 G 152.761 -382.565 Td [(iii)]TJ @@ -2879,148 +2859,148 @@ BT ET endstream endobj -564 0 obj << +559 0 obj << /Type /Page -/Contents 565 0 R -/Resources 563 0 R +/Contents 560 0 R +/Resources 558 0 R /MediaBox [0 0 595.276 841.89] -/Parent 443 0 R -/Annots [ 541 0 R 542 0 R 543 0 R 544 0 R 549 0 R 550 0 R 551 0 R 552 0 R 553 0 R 554 0 R 555 0 R 556 0 R 557 0 R 558 0 R 559 0 R 560 0 R 561 0 R 562 0 R ] +/Parent 439 0 R +/Annots [ 536 0 R 537 0 R 538 0 R 539 0 R 544 0 R 545 0 R 546 0 R 547 0 R 548 0 R 549 0 R 550 0 R 551 0 R 552 0 R 553 0 R 554 0 R 555 0 R 556 0 R 557 0 R ] >> endobj -541 0 obj << +536 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [98.899 703.195 190.188 714.044] /Subtype /Link /A << /S /GoTo /D (section.8) >> >> endobj -542 0 obj << +537 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [113.843 691.24 167.188 702.088] /Subtype /Link /A << /S /GoTo /D (section*.71) >> >> endobj -543 0 obj << +538 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [113.843 679.285 155.537 690.133] /Subtype /Link /A << /S /GoTo /D (section*.72) >> >> endobj -544 0 obj << +539 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [113.843 667.33 202.129 678.178] /Subtype /Link /A << /S /GoTo /D (section*.73) >> >> endobj -549 0 obj << +544 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [113.843 655.375 189.039 666.223] /Subtype /Link /A << /S /GoTo /D (section*.74) >> >> endobj -550 0 obj << +545 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [98.899 635.394 156.061 644.305] /Subtype /Link /A << /S /GoTo /D (section.9) >> >> endobj -551 0 obj << +546 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [136.757 623.439 171.975 632.35] /Subtype /Link /A << /S /GoTo /D (section*.75) >> >> endobj -552 0 obj << +547 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [136.757 611.484 175.296 620.395] /Subtype /Link /A << /S /GoTo /D (section*.76) >> >> endobj -553 0 obj << +548 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [136.757 599.529 198.531 608.44] /Subtype /Link /A << /S /GoTo /D (section*.77) >> >> endobj -554 0 obj << +549 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [136.757 587.573 197.978 596.484] /Subtype /Link /A << /S /GoTo /D (section*.78) >> >> endobj -555 0 obj << +550 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [136.757 575.618 201.852 584.264] /Subtype /Link /A << /S /GoTo /D (section*.79) >> >> endobj -556 0 obj << +551 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [98.899 553.7 234.475 562.611] /Subtype /Link /A << /S /GoTo /D (section.10) >> >> endobj -557 0 obj << +552 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [113.843 539.808 167.658 550.656] /Subtype /Link /A << /S /GoTo /D (section*.80) >> >> endobj -558 0 obj << +553 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [113.843 527.853 166.551 538.701] /Subtype /Link /A << /S /GoTo /D (section*.81) >> >> endobj -559 0 obj << +554 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [113.843 515.898 171.256 526.746] /Subtype /Link /A << /S /GoTo /D (section*.82) >> >> endobj -560 0 obj << +555 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [113.843 503.943 174.936 514.791] /Subtype /Link /A << /S /GoTo /D (section*.83) >> >> endobj -561 0 obj << +556 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [98.899 483.962 206.49 492.873] /Subtype /Link /A << /S /GoTo /D (section.11) >> >> endobj -562 0 obj << +557 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [113.843 470.07 142.984 480.918] /Subtype /Link /A << /S /GoTo /D (section*.84) >> >> endobj -566 0 obj << -/D [564 0 R /XYZ 99.895 740.998 null] +561 0 obj << +/D [559 0 R /XYZ 99.895 740.998 null] >> endobj -563 0 obj << -/Font << /F27 441 0 R /F8 442 0 R >> +558 0 obj << +/Font << /F27 437 0 R /F8 438 0 R >> /ProcSet [ /PDF /Text ] >> endobj -569 0 obj << +564 0 obj << /Length 79 >> stream @@ -3033,184 +3013,184 @@ BT ET endstream endobj -568 0 obj << +563 0 obj << /Type /Page -/Contents 569 0 R -/Resources 567 0 R +/Contents 564 0 R +/Resources 562 0 R /MediaBox [0 0 595.276 841.89] -/Parent 443 0 R +/Parent 439 0 R >> endobj -570 0 obj << -/D [568 0 R /XYZ 150.705 740.998 null] +565 0 obj << +/D [563 0 R /XYZ 150.705 740.998 null] >> endobj -567 0 obj << -/Font << /F8 442 0 R >> +562 0 obj << +/Font << /F8 438 0 R >> /ProcSet [ /PDF /Text ] >> endobj -583 0 obj << -/Length 8514 +578 0 obj << +/Length 8510 >> stream 0 g 0 G 0 g 0 G BT -/F16 14.3462 Tf 99.895 706.129 Td [(1)-1125(In)31(tro)-31(duction)]TJ/F8 9.9626 Tf 0 -22.388 Td [(The)-316(PSBLAS)-316(library)84(,)-319(dev)27(elop)-27(e)-1(d)-315(with)-316(the)-316(aim)-316(to)-316(facilitate)-315(the)-316(parallelization)-316(of)]TJ 0 -11.955 Td [(computationally)-324(in)28(tensiv)28(e)-324(s)-1(cien)28(ti\014c)-324(applications,)-326(is)-324(designed)-324(to)-324(address)-324(parallel)]TJ 0 -11.955 Td [(implemen)28(tation)-427(of)-428(iterativ)28(e)-427(solv)28(ers)-428(for)-427(sparse)-427(linear)-427(systems)-428(thr)1(ough)-428(the)-427(dis-)]TJ 0 -11.955 Td [(tributed)-284(memory)-285(paradigm.)-428(It)-284(includes)-284(routines)-285(f)1(o)-1(r)-284(m)28(ultiplying)-284(sparse)-285(matrices)]TJ 0 -11.955 Td [(b)28(y)-343(dense)-343(matrices,)-345(solving)-343(blo)-28(c)28(k)-343(diagonal)-342(syste)-1(ms)-342(with)-343(triangular)-343(diagonal)-343(en-)]TJ 0 -11.956 Td [(tries,)-350(prepro)-28(cessing)-346(sparse)-347(matrices,)-350(an)1(d)-347(con)28(tains)-347(addition)1(al)-347(routines)-346(for)-347(dense)]TJ 0 -11.955 Td [(matrix)-439(op)-28(erations.)-763(The)-439(curren)28(t)-440(implemen)28(tation)-439(of)-440(PSBLAS)-439(addresses)-439(a)-440(dis-)]TJ 0 -11.955 Td [(tributed)-333(memory)-334(execution)-333(mo)-28(del)-333(op)-28(erating)-333(with)-333(me)-1(ssage)-333(passing.)]TJ 14.944 -12.26 Td [(The)-222(PSBLAS)-222(library)-222(v)27(ersion)-222(3)-222(is)-222(in)28(ternally)-223(implemen)28(ted)-222(in)-222(the)-222(F)83(ortran)-222(2003)-222([)]TJ +/F16 14.3462 Tf 99.895 706.129 Td [(1)-1125(In)31(tro)-31(duction)]TJ/F8 9.9626 Tf 0 -22.316 Td [(The)-316(PSBLAS)-316(library)84(,)-319(dev)27(elop)-27(e)-1(d)-315(with)-316(the)-316(aim)-316(to)-316(facilitate)-315(the)-316(parallelization)-316(of)]TJ 0 -11.955 Td [(computationally)-324(in)28(tensiv)28(e)-324(s)-1(cien)28(ti\014c)-324(applications,)-326(is)-324(designed)-324(to)-324(address)-324(parallel)]TJ 0 -11.955 Td [(implemen)28(tation)-427(of)-428(iterativ)28(e)-427(solv)28(ers)-428(for)-427(sparse)-427(linear)-427(systems)-428(thr)1(ough)-428(the)-427(dis-)]TJ 0 -11.955 Td [(tributed)-284(memory)-285(paradigm.)-428(It)-284(includes)-284(routines)-285(f)1(o)-1(r)-284(m)28(ultiplying)-284(sparse)-285(matrices)]TJ 0 -11.955 Td [(b)28(y)-343(dense)-343(matrices,)-345(solving)-343(blo)-28(c)28(k)-343(diagonal)-342(syste)-1(ms)-342(with)-343(triangular)-343(diagonal)-343(en-)]TJ 0 -11.956 Td [(tries,)-350(prepro)-28(cessing)-346(sparse)-347(matrices,)-350(an)1(d)-347(con)28(tains)-347(addition)1(al)-347(routines)-346(for)-347(dense)]TJ 0 -11.955 Td [(matrix)-439(op)-28(erations.)-763(The)-439(curren)28(t)-440(implemen)28(tation)-439(of)-440(PSBLAS)-439(addresses)-439(a)-440(dis-)]TJ 0 -11.955 Td [(tributed)-333(memory)-334(execution)-333(mo)-28(del)-333(op)-28(erating)-333(with)-333(me)-1(ssage)-333(passing.)]TJ 14.944 -12.221 Td [(The)-222(PSBLAS)-222(library)-222(v)27(ersion)-222(3)-222(is)-222(in)28(ternally)-223(implemen)28(ted)-222(in)-222(the)-222(F)83(ortran)-222(2003)-222([)]TJ 1 0 0 rg 1 0 0 RG [(16)]TJ 0 g 0 G - [(])]TJ -14.944 -11.955 Td [(programming)-497(language,)-537(with)-497(reuse)-497(an)1(d/or)-497(adaptation)-497(of)-496(some)-497(existing)-497(F)84(or-)]TJ 0 -11.955 Td [(tran)-333(77)-334(soft)28(w)28(are,)-333(and)-334(a)-333(handful)-333(of)-333(C)-334(routines.)]TJ 14.944 -12.26 Td [(The)-474(use)-474(of)-474(F)84(ortran)-474(2003)-474(o\013ers)-474(a)-474(n)28(um)28(b)-28(er)-474(of)-473(adv)55(an)28(tages)-474(o)28(v)28(er)-474(F)83(ortran)-474(95,)]TJ -14.944 -11.955 Td [(mostly)-378(in)-378(the)-378(handling)-378(of)-378(requiremen)28(ts)-378(for)-378(ev)28(olution)-378(and)-378(adaptation)-378(of)-378(the)-378(li-)]TJ 0 -11.955 Td [(brary)-385(to)-385(new)-385(c)-1(ompu)1(ting)-386(arc)28(hitectures)-385(and)-385(in)28(tegration)-385(of)-386(new)-385(algorithms.)-600(F)84(or)]TJ 0 -11.955 Td [(a)-339(detailed)-338(discussion)-339(of)-339(our)-338(design)-339(see)-339([)]TJ + [(])]TJ -14.944 -11.955 Td [(programming)-497(language,)-537(with)-497(reuse)-497(an)1(d/or)-497(adaptation)-497(of)-496(some)-497(existing)-497(F)84(or-)]TJ 0 -11.955 Td [(tran)-333(77)-334(soft)28(w)28(are,)-333(and)-334(a)-333(handful)-333(of)-333(C)-334(routines.)]TJ 14.944 -12.221 Td [(The)-474(use)-474(of)-474(F)84(ortran)-474(2003)-474(o\013ers)-474(a)-474(n)28(um)28(b)-28(er)-474(of)-473(adv)55(an)28(tages)-474(o)28(v)28(er)-474(F)83(ortran)-474(95,)]TJ -14.944 -11.955 Td [(mostly)-493(in)-493(the)-494(han)1(dling)-494(of)-493(requiremen)28(ts)-493(for)-493(ev)28(olution)-494(an)1(d)-494(adaptation)-493(of)-493(the)]TJ 0 -11.956 Td [(library)-339(to)-339(new)-339(computin)1(g)-339(arc)27(hitectures)-339(and)-338(in)27(t)1(e)-1(grati)1(on)-339(of)-339(new)-339(algorithms.)-461(F)83(or)]TJ 0 -11.955 Td [(a)-444(detailed)-444(discussion)-445(of)-444(our)-444(design)-444(see)-444([)]TJ 1 0 0 rg 1 0 0 RG [(11)]TJ 0 g 0 G - [(];)-341(other)-339(w)28(orks)-338(tac)27(kling)-338(adv)55(anced)-338(pro-)]TJ 0 -11.955 Td [(gramming)-333(in)-334(F)84(ortran)-334(2003)-333(include)-333([)]TJ + [(];)-500(other)-444(w)28(orks)-445(discussing)-444(adv)56(anced)]TJ 0 -11.955 Td [(programming)-278(in)-278(F)83(ortran)-278(2003)-278(include)-278([)]TJ 1 0 0 rg 1 0 0 RG [(1)]TJ 0 g 0 G [(,)]TJ 1 0 0 rg 1 0 0 RG - [-333(17)]TJ + [-278(17)]TJ 0 g 0 G - [(])]TJ 14.944 -12.26 Td [(Previous)-270(approac)28(hes)-271(ha)28(v)28(e)-271(b)-27(een)-271(based)-270(on)-270(mixing)-271(F)84(ortran)-270(95,)-283(with)-271(its)-270(supp)-28(ort)]TJ -14.944 -11.955 Td [(for)-352(ob)-56(ject-based)-352(design,)-357(with)-352(other)-352(languages;)-362(these)-352(ha)27(v)28(e)-352(b)-28(een)-352(adv)28(o)-28(cated)-352(b)27(y)-352(a)]TJ 0 -11.955 Td [(n)28(um)28(b)-28(er)-423(of)-422(authors,)-445(e.g.)-423([)]TJ + [(];)-297(su\016cien)28(t)-278(supp)-28(ort)-278(for)-278(F)84(ortran)-278(2003)]TJ 0 -11.955 Td [(is)-249(no)28(w)-249(a)27(v)56(ailable)-249(from)-249(man)28(y)-250(compilers,)-266(in)1(c)-1(lu)1(ding)-249(the)-250(GNU)-249(F)84(ortran)-249(compiler)-249(from)]TJ 0 -11.955 Td [(the)-333(F)83(ree)-333(Soft)27(w)28(are)-333(F)83(oundation)-333(\050as)-333(of)-334(v)28(ersion)-333(4.6\051.)]TJ 14.944 -12.221 Td [(Previous)-270(approac)28(hes)-271(ha)28(v)28(e)-271(b)-27(een)-271(based)-270(on)-270(mixing)-271(F)84(ortran)-270(95,)-283(with)-271(its)-270(supp)-28(ort)]TJ -14.944 -11.955 Td [(for)-352(ob)-56(ject-based)-352(design,)-357(with)-352(other)-352(languages;)-362(these)-352(ha)27(v)28(e)-352(b)-28(een)-352(adv)28(o)-28(cated)-352(b)27(y)-352(a)]TJ 0 -11.956 Td [(n)28(um)28(b)-28(er)-423(of)-422(authors,)-445(e.g.)-423([)]TJ 1 0 0 rg 1 0 0 RG [(15)]TJ 0 g 0 G - [(].)-712(Moreo)28(v)27(er,)-445(the)-422(F)83(ortran)-422(95)-423(facilities)-423(for)-422(dynamic)]TJ 0 -11.956 Td [(memory)-436(managemen)28(t)-435(and)-436(in)28(terface)-435(o)28(v)27(erloading)-435(greatly)-435(enhance)-436(the)-435(usabilit)28(y)]TJ 0 -11.955 Td [(of)-374(the)-374(PSBLAS)-374(subroutines.)-567(In)-374(this)-374(w)28(a)27(y)84(,)-385(the)-374(library)-374(can)-374(tak)28(e)-374(care)-375(of)-374(run)28(time)]TJ 0 -11.955 Td [(memory)-404(requiremen)28(ts)-403(that)-404(are)-403(quite)-404(di\016cult)-403(or)-404(ev)28(en)-404(imp)-27(os)-1(sibl)1(e)-404(to)-404(predi)1(c)-1(t)-403(at)]TJ 0 -11.955 Td [(implemen)28(tation)-285(or)-285(compilation)-285(time.)-429(In)-285(the)-285(curren)28(t)-285(release)-285(w)28(e)-285(rely)-285(on)-285(the)-286(a)28(v)56(ail-)]TJ 0 -11.955 Td [(abilit)28(y)-405(of)-405(the)-405(so-called)-405(allo)-28(catable)-405(extensions,)-423(sp)-28(eci\014ed)-405(in)-405(TR)-405(15581.)-659(Strictly)]TJ 0 -11.956 Td [(sp)-28(eaking)-329(they)-330(are)-329(outside)-330(the)-329(F)83(ortran)-329(95)-330(standard;)-331(ho)28(w)28(ev)28(er)-330(they)-329(ha)27(v)28(e)-329(b)-28(een)-330(in-)]TJ 0 -11.955 Td [(cluded)-367(in)-368(the)-367(F)83(ortran)-367(2003)-367(language)-368(standard,)-376(and)-367(are)-367(a)27(v)56(ailable)-367(in)-368(practically)]TJ 0 -11.955 Td [(all)-412(F)83(ortran)-411(9)-1(5)-411(c)-1(ompil)1(e)-1(rs)-412(on)-411(the)-412(mark)27(et,)-431(including)-412(the)-412(GNU)-412(F)83(ortran)-412(compiler)]TJ 0 -11.955 Td [(from)-335(the)-335(F)83(ree)-335(Soft)28(w)28(are)-336(F)84(oundation)-335(\050as)-335(of)-335(v)27(ersion)-335(4.2\051.)-449(The)-336(presen)28(tation)-335(of)-335(the)]TJ 0 -11.955 Td [(PSBLAS)-370(library)-370(follo)28(ws)-371(the)-370(general)-370(structure)-370(of)-370(the)-371(p)1(rop)-28(osal)-370(for)-371(serial)-370(Sparse)]TJ 0 -11.955 Td [(BLAS)-457([)]TJ + [(].)-712(Moreo)28(v)27(er,)-445(the)-422(F)83(ortran)-422(95)-423(facilities)-423(for)-422(dynamic)]TJ 0 -11.955 Td [(memory)-436(managemen)28(t)-435(and)-436(in)28(terface)-435(o)28(v)27(erloading)-435(greatly)-435(enhance)-436(the)-435(usabilit)28(y)]TJ 0 -11.955 Td [(of)-374(the)-374(PSBLAS)-374(subroutines.)-567(In)-374(this)-374(w)28(a)27(y)84(,)-385(the)-374(library)-374(can)-374(tak)28(e)-374(care)-375(of)-374(run)28(time)]TJ 0 -11.955 Td [(memory)-404(requiremen)28(ts)-403(that)-404(are)-403(quite)-404(di\016cult)-403(or)-404(ev)28(en)-404(imp)-27(os)-1(sibl)1(e)-404(to)-404(predi)1(c)-1(t)-403(at)]TJ 0 -11.955 Td [(implemen)28(tation)-334(or)-333(compilation)-333(time.)]TJ 14.944 -12.221 Td [(The)-301(presen)27(tation)-301(of)-301(the)-301(PSBLAS)-301(library)-301(follo)27(ws)-301(the)-301(general)-301(s)-1(tru)1(c)-1(t)1(ure)-302(of)-301(the)]TJ -14.944 -11.955 Td [(prop)-28(osal)-275(for)-275(serial)-275(Sparse)-275(BLAS)-275([)]TJ 1 0 0 rg 1 0 0 RG [(8)]TJ 0 g 0 G [(,)]TJ 1 0 0 rg 1 0 0 RG - [-456(9)]TJ + [-276(9)]TJ 0 g 0 G - [(],)-488(whic)28(h)-457(in)-456(its)-457(turn)-456(is)-457(based)-457(on)-456(the)-457(prop)-28(osal)-456(for)-457(BLAS)-456(on)-457(dense)]TJ 0 -11.956 Td [(matrices)-333([)]TJ + [(])1(,)-287(whic)28(h)-276(in)-275(its)-275(turn)-275(is)-275(based)-275(on)-275(the)-275(prop)-28(osal)]TJ 0 -11.956 Td [(for)-333(BLAS)-334(on)-333(dense)-333(matrices)-334([)]TJ 1 0 0 rg 1 0 0 RG [(14)]TJ 0 g 0 G [(,)]TJ 1 0 0 rg 1 0 0 RG - [-334(5)]TJ + [-333(5)]TJ 0 g 0 G [(,)]TJ 1 0 0 rg 1 0 0 RG [-333(6)]TJ 0 g 0 G - [(].)]TJ 14.944 -12.259 Td [(The)-403(applicabilit)28(y)-403(of)-403(sparse)-403(iterativ)28(e)-404(solv)28(ers)-403(to)-403(man)28(y)-403(di\013eren)28(t)-403(area)-1(s)-403(causes)]TJ -14.944 -11.955 Td [(some)-317(terminology)-316(problems)-316(b)-28(ecause)-317(th)1(e)-317(same)-316(conce)-1(p)1(t)-317(ma)28(y)-316(b)-28(e)-317(denoted)-316(through)]TJ 0 -11.956 Td [(di\013eren)28(t)-342(names)-342(dep)-28(ending)-342(on)-342(th)1(e)-342(application)-342(area.)-470(The)-342(PSBLAS)-342(features)-342(pre-)]TJ 0 -11.955 Td [(sen)28(ted)-450(in)-450(this)-450(do)-28(cumen)28(t)-450(will)-450(b)-28(e)-450(discussed)-450(referring)-450(to)-450(a)-450(\014nite)-450(di\013erence)-450(dis-)]TJ 0 -11.955 Td [(cretization)-329(of)-329(a)-330(P)28(artial)-329(Di\013eren)28(tial)-329(Equation)-329(\050PDE\051.)-330(Ho)28(w)28(ev)28(er,)-330(the)-330(scop)-27(e)-330(of)-329(the)]TJ 0 -11.955 Td [(library)-345(i)1(s)-345(wider)-345(than)-344(that:)-467(for)-345(example,)-347(it)-345(can)-345(b)-27(e)-345(applied)-344(to)-345(\014nite)-345(elemen)28(t)-345(di)1(s)-1(-)]TJ 0 -11.955 Td [(cretizations)-278(of)-278(PDEs,)-289(and)-278(ev)28(en)-278(to)-278(di\013eren)28(t)-278(c)-1(lasses)-278(of)-278(problems)-278(suc)28(h)-278(as)-278(nonlinear)]TJ 0 -11.955 Td [(optimization,)-333(for)-334(example)-333(in)-333(optimal)-334(con)28(trol)-333(problems.)]TJ 14.944 -12.26 Td [(The)-489(design)-489(of)-489(a)-489(solv)27(er)-489(for)-489(sparse)-489(linear)-489(systems)-489(is)-489(driv)27(en)-489(b)28(y)-489(man)28(y)-489(con-)]TJ -14.944 -11.955 Td [(\015icting)-384(ob)-56(jectiv)28(es,)-398(suc)28(h)-384(as)-385(limiting)-384(o)-28(ccupation)-384(of)-385(storage)-384(res)-1(ou)1(rc)-1(es,)-397(exploiting)]TJ 0 -11.956 Td [(regularities)-433(in)-433(th)1(e)-433(input)-433(data,)-458(expl)1(oiting)-433(hardw)28(are)-433(c)28(haracteristics)-433(of)-433(the)-433(par-)]TJ 0 -11.955 Td [(allel)-370(platform.)-554(T)83(o)-370(ac)28(hiev)28(e)-370(an)-370(optimal)-370(comm)28(unication)-370(to)-370(computation)-370(rati)1(o)-370(on)]TJ 0 -11.955 Td [(distributed)-443(memory)-443(mac)28(hines)-443(it)-443(is)-443(essen)28(tial)-443(to)-443(k)28(eep)-443(the)]TJ/F17 9.9626 Tf 253.961 0 Td [(data)-459(lo)52(c)51(ality)]TJ/F8 9.9626 Tf 57.609 0 Td [(as)-443(high)]TJ -311.57 -11.955 Td [(as)-381(p)-27(os)-1(sibl)1(e)-1(;)-404(this)-381(can)-380(b)-28(e)-381(done)-380(through)-381(an)-380(appropriate)-381(data)-381(allo)-27(cation)-381(strategy)83(.)]TJ 0 -11.955 Td [(The)-389(c)28(hoice)-389(of)-389(the)-389(preconditioner)-389(is)-389(an)1(other)-389(v)27(ery)-388(imp)-28(ortan)28(t)-389(factor)-389(that)-389(a\013ects)]TJ 0 -11.955 Td [(e\016ciency)-415(of)-416(the)-415(implemen)28(ted)-415(application.)-691(Optimal)-415(data)-415(distribution)-415(require-)]TJ 0 -11.956 Td [(men)28(ts)-441(for)-441(a)-440(giv)27(en)-440(preconditioner)-441(ma)28(y)-441(con\015ict)-441(with)-440(distribution)-441(requiremen)28(ts)]TJ + [(].)]TJ 14.944 -12.221 Td [(The)-403(applicabilit)28(y)-403(of)-403(sparse)-403(iterativ)28(e)-404(solv)28(ers)-403(to)-403(man)28(y)-403(di\013eren)28(t)-403(areas)-404(causes)]TJ -14.944 -11.955 Td [(some)-317(terminology)-316(problems)-316(b)-28(ecause)-317(th)1(e)-317(same)-316(conce)-1(p)1(t)-317(ma)28(y)-316(b)-28(e)-317(denoted)-316(through)]TJ 0 -11.955 Td [(di\013eren)28(t)-342(names)-342(dep)-28(ending)-342(on)-342(th)1(e)-342(application)-342(area.)-470(The)-342(PSBLAS)-342(features)-342(pre-)]TJ 0 -11.955 Td [(sen)28(ted)-450(in)-450(this)-450(do)-28(cumen)28(t)-450(will)-450(b)-28(e)-450(discussed)-450(referring)-450(to)-450(a)-450(\014nite)-450(di\013erence)-450(dis-)]TJ 0 -11.955 Td [(cretization)-329(of)-329(a)-330(P)28(artial)-329(Di\013eren)28(tial)-329(Equation)-329(\050PDE\051.)-330(Ho)28(w)28(ev)28(er,)-330(the)-330(scop)-27(e)-330(of)-329(the)]TJ 0 -11.955 Td [(library)-344(is)-345(wider)-345(than)-344(that:)-467(for)-345(example,)-347(it)-345(can)-344(b)-28(e)-345(applied)-344(to)-345(\014nite)-345(elemen)28(t)-345(di)1(s)-1(-)]TJ 0 -11.956 Td [(cretizations)-278(of)-278(PDEs,)-289(and)-278(ev)28(en)-278(to)-278(di\013eren)28(t)-278(c)-1(lasses)-278(of)-278(problems)-278(suc)28(h)-278(as)-278(nonlinear)]TJ 0 -11.955 Td [(optimization,)-333(for)-334(example)-333(in)-333(optimal)-333(c)-1(on)28(trol)-333(problems.)]TJ 14.944 -12.221 Td [(The)-489(design)-489(of)-489(a)-489(solv)27(er)-489(for)-489(sparse)-489(linear)-489(systems)-489(is)-489(driv)27(en)-489(b)28(y)-489(man)28(y)-489(con-)]TJ -14.944 -11.955 Td [(\015icting)-384(ob)-56(jectiv)28(es,)-398(suc)28(h)-384(as)-385(limiting)-384(o)-28(ccupation)-384(of)-385(storage)-384(res)-1(ou)1(rc)-1(es,)-397(exploiting)]TJ 0 -11.955 Td [(regularities)-433(in)-433(th)1(e)-433(input)-433(data,)-458(expl)1(oiting)-433(hardw)28(are)-433(c)28(haracteristics)-433(of)-433(the)-433(par-)]TJ 0 -11.955 Td [(allel)-370(platform.)-554(T)83(o)-370(ac)28(hiev)28(e)-370(an)-370(optimal)-370(comm)28(unication)-370(to)-370(computation)-370(rati)1(o)-370(on)]TJ 0 -11.955 Td [(distributed)-443(memory)-443(mac)28(hines)-443(it)-443(is)-443(essen)28(tial)-443(to)-443(k)28(eep)-443(the)]TJ/F17 9.9626 Tf 253.961 0 Td [(data)-459(lo)52(c)51(ality)]TJ/F8 9.9626 Tf 57.609 0 Td [(as)-443(high)]TJ -311.57 -11.956 Td [(as)-381(p)-27(os)-1(sibl)1(e)-1(;)-404(this)-381(can)-380(b)-28(e)-381(done)-380(through)-381(an)-380(appropriate)-381(data)-381(allo)-27(cation)-381(strategy)83(.)]TJ 0 -11.955 Td [(The)-389(c)28(hoice)-389(of)-389(the)-389(preconditioner)-389(is)-389(an)1(other)-389(v)27(ery)-388(imp)-28(ortan)28(t)-389(factor)-389(that)-389(a\013ects)]TJ 0 -11.955 Td [(e\016ciency)-415(of)-416(the)-415(implemen)28(ted)-415(application.)-691(Opti)1(m)-1(al)-415(data)-415(distribution)-415(require-)]TJ 0 -11.955 Td [(men)28(ts)-441(for)-441(a)-440(giv)27(en)-440(preconditioner)-441(ma)28(y)-441(con\015ict)-441(with)-440(distribution)-441(requiremen)28(ts)]TJ 0 -11.955 Td [(of)-427(the)-427(rest)-428(of)-427(the)-427(solv)28(er.)-726(Finding)-427(the)-428(optimal)-427(trade-o\013)-427(ma)28(y)-428(b)-27(e)-428(v)28(ery)-427(di\016cult)]TJ 0 -11.955 Td [(b)-28(ecause)-393(it)-393(is)-393(application)-393(dep)-28(enden)28(t.)-623(P)27(ossible)-393(solutions)-393(to)-393(these)-393(problems)-393(and)]TJ 0 -11.956 Td [(other)-430(imp)-28(ortan)28(t)-430(inputs)-430(to)-430(the)-430(dev)28(elopmen)28(t)-430(of)-430(the)-430(PSBLAS)-430(soft)28(w)27(are)-430(pac)28(k)56(age)]TJ 0 g 0 G - 169.365 -29.887 Td [(1)]TJ + 169.365 -29.888 Td [(1)]TJ 0 g 0 G ET endstream endobj -582 0 obj << +577 0 obj << /Type /Page -/Contents 583 0 R -/Resources 581 0 R +/Contents 578 0 R +/Resources 576 0 R /MediaBox [0 0 595.276 841.89] -/Parent 585 0 R -/Annots [ 571 0 R 572 0 R 573 0 R 574 0 R 575 0 R 576 0 R 577 0 R 578 0 R 579 0 R 580 0 R ] +/Parent 580 0 R +/Annots [ 566 0 R 567 0 R 568 0 R 569 0 R 570 0 R 571 0 R 572 0 R 573 0 R 574 0 R 575 0 R ] >> endobj -571 0 obj << +566 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 0] -/Rect [442.333 586.799 454.288 595.212] +/Rect [442.333 586.91 454.288 595.323] /Subtype /Link /A << /S /GoTo /D (cite.metcalf) >> >> endobj -572 0 obj << +567 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 0] -/Rect [270.324 514.764 282.279 523.176] +/Rect [277.684 514.913 289.639 523.326] /Subtype /Link /A << /S /GoTo /D (cite.Sparse03) >> >> endobj -573 0 obj << +568 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 0] -/Rect [254.095 502.808 261.069 511.221] +/Rect [265.763 502.958 272.737 511.371] /Subtype /Link /A << /S /GoTo /D (cite.DesPat:11) >> >> endobj -574 0 obj << +569 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 0] -/Rect [265.165 502.808 277.12 511.221] +/Rect [276.283 502.958 288.238 511.371] /Subtype /Link /A << /S /GoTo /D (cite.RouXiaXu:11) >> >> endobj -575 0 obj << +570 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 0] -/Rect [210.166 466.638 222.121 475.051] +/Rect [210.166 442.916 222.121 451.329] /Subtype /Link /A << /S /GoTo /D (cite.machiels) >> >> endobj -576 0 obj << +571 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 0] -/Rect [132.506 335.131 139.48 343.544] +/Rect [241.566 370.919 248.54 379.332] /Subtype /Link /A << /S /GoTo /D (cite.sblas97) >> >> endobj -577 0 obj << +572 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 0] -/Rect [144.805 335.131 151.778 343.544] +/Rect [252.056 370.919 259.03 379.332] /Subtype /Link /A << /S /GoTo /D (cite.sblas02) >> >> endobj -578 0 obj << +573 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 0] -/Rect [141.6 323.176 153.555 331.589] +/Rect [227.473 358.964 239.428 367.377] /Subtype /Link /A << /S /GoTo /D (cite.BLAS1) >> >> endobj -579 0 obj << +574 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 0] -/Rect [157.651 323.176 164.625 331.589] +/Rect [243.524 358.964 250.498 367.377] /Subtype /Link /A << /S /GoTo /D (cite.BLAS2) >> >> endobj -580 0 obj << +575 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 0] -/Rect [168.721 323.176 175.695 331.589] +/Rect [254.593 358.964 261.567 367.377] /Subtype /Link /A << /S /GoTo /D (cite.BLAS3) >> >> endobj 10 0 obj << -/D [582 0 R /XYZ 99.895 716.092 null] +/D [577 0 R /XYZ 99.895 716.092 null] >> endobj -581 0 obj << -/Font << /F16 439 0 R /F8 442 0 R /F17 584 0 R >> +576 0 obj << +/Font << /F16 435 0 R /F8 438 0 R /F17 579 0 R >> /ProcSet [ /PDF /Text ] >> endobj -602 0 obj << -/Length 5013 +598 0 obj << +/Length 5794 >> stream 0 g 0 G 0 g 0 G BT -/F8 9.9626 Tf 150.705 706.129 Td [(of)-427(the)-427(rest)-428(of)-427(the)-427(solv)28(er.)-726(Finding)-427(the)-428(optimal)-427(trade-o\013)-427(ma)28(y)-428(b)-27(e)-428(v)28(ery)-427(di\016cult)]TJ 0 -11.955 Td [(b)-28(ecause)-393(it)-393(is)-393(application)-393(dep)-28(enden)28(t.)-623(P)27(ossible)-393(solutions)-393(to)-393(these)-393(problems)-393(and)]TJ 0 -11.955 Td [(other)-430(imp)-28(ortan)28(t)-430(inputs)-430(to)-430(the)-430(dev)28(elopmen)28(t)-430(of)-430(the)-430(PSBLAS)-430(soft)28(w)28(are)-431(p)1(ac)27(k)56(age)]TJ 0 -11.956 Td [(ha)28(v)28(e)-385(come)-385(from)-385(an)-385(established)-385(exp)-28(eri)1(e)-1(nce)-384(in)-385(applying)-385(the)-385(PSBLAS)-384(s)-1(olv)28(ers)-385(to)]TJ 0 -11.955 Td [(computational)-333(\015uid)-333(dynamics)-334(applications.)]TJ/F16 14.3462 Tf 0 -41.265 Td [(2)-1125(General)-375(o)31(v)32(erv)-1(iew)]TJ/F8 9.9626 Tf 0 -24.739 Td [(The)-519(PSBLAS)-519(lib)1(rary)-519(is)-519(designed)-519(to)-519(handle)-519(the)-519(implemen)28(tation)-519(of)-519(iterativ)28(e)]TJ 0 -11.955 Td [(solv)28(ers)-502(f)1(or)-502(sparse)-501(linear)-501(systems)-502(on)-501(distributed)-501(memory)-501(parallel)-501(computers.)]TJ 0 -11.955 Td [(The)-430(system)-429(co)-28(e\016cien)27(t)-429(matrix)]TJ/F11 9.9626 Tf 136.257 0 Td [(A)]TJ/F8 9.9626 Tf 11.753 0 Td [(m)28(ust)-430(b)-28(e)-429(square;)-478(it)-430(ma)28(y)-429(b)-28(e)-430(real)-430(or)-429(complex,)]TJ -148.01 -11.956 Td [(nonsymmetric,)-373(and)-365(its)-365(sparsit)28(y)-365(pattern)-365(needs)-365(not)-365(to)-365(b)-28(e)-365(symmetric.)-539(The)-365(serial)]TJ 0 -11.955 Td [(computation)-357(parts)-357(are)-357(based)-357(on)-357(the)-357(serial)-356(s)-1(p)1(ars)-1(e)-356(B)-1(LAS)1(,)-357(so)-357(that)-357(an)28(y)-357(extension)]TJ 0 -11.955 Td [(made)-473(to)-474(the)-473(data)-473(structures)-473(of)-474(the)-473(serial)-473(k)28(e)-1(rn)1(e)-1(l)1(s)-474(is)-473(a)28(v)55(ailable)-473(to)-473(the)-474(parall)1(e)-1(l)]TJ 0 -11.955 Td [(v)28(ersion.)-725(The)-427(o)28(v)28(erall)-427(design)-427(and)-426(parallelization)-427(strategy)-427(ha)28(v)28(e)-427(b)-28(een)-427(i)1(n\015uenced)]TJ 0 -11.955 Td [(b)28(y)-374(the)-373(structure)-374(of)-373(the)-374(ScaLAP)84(A)28(CK)-374(parallel)-373(library)83(.)-565(The)-373(la)27(y)28(ered)-373(structure)-374(of)]TJ 0 -11.955 Td [(the)-424(PSBLAS)-424(library)-425(i)1(s)-425(sho)28(wn)-424(in)-425(\014)1(gure)]TJ +/F8 9.9626 Tf 150.705 706.129 Td [(ha)28(v)28(e)-385(come)-385(from)-385(an)-385(established)-385(exp)-28(eri)1(e)-1(nce)-384(in)-385(applying)-385(the)-385(PSBLAS)-384(s)-1(olv)28(ers)-385(to)]TJ 0 -11.955 Td [(computational)-333(\015uid)-333(dynamics)-334(applications.)]TJ/F16 14.3462 Tf 0 -34.08 Td [(2)-1125(General)-375(o)31(v)32(erv)-1(iew)]TJ/F8 9.9626 Tf 0 -22.219 Td [(The)-519(PSBLAS)-519(lib)1(rary)-519(is)-519(designed)-519(to)-519(handle)-519(the)-519(implemen)28(tation)-519(of)-519(iterativ)28(e)]TJ 0 -11.955 Td [(solv)28(ers)-502(f)1(or)-502(sparse)-501(linear)-501(systems)-502(on)-501(distributed)-501(memory)-501(parallel)-501(computers.)]TJ 0 -11.955 Td [(The)-430(system)-429(co)-28(e\016cien)27(t)-429(matrix)]TJ/F11 9.9626 Tf 136.257 0 Td [(A)]TJ/F8 9.9626 Tf 11.753 0 Td [(m)28(ust)-430(b)-28(e)-429(square;)-478(it)-430(ma)28(y)-429(b)-28(e)-430(real)-430(or)-429(complex,)]TJ -148.01 -11.955 Td [(nonsymmetric,)-373(and)-365(its)-365(sparsit)28(y)-365(pattern)-365(needs)-365(not)-365(to)-365(b)-28(e)-365(symmetric.)-539(The)-365(serial)]TJ 0 -11.956 Td [(computation)-357(parts)-357(are)-357(based)-357(on)-357(the)-357(serial)-356(s)-1(p)1(ars)-1(e)-356(B)-1(LAS)1(,)-357(so)-357(that)-357(an)28(y)-357(extension)]TJ 0 -11.955 Td [(made)-320(to)-320(the)-321(data)-320(structures)-320(of)-320(the)-321(serial)-320(k)28(ernels)-320(is)-321(a)28(v)56(ailable)-320(to)-321(the)-320(parallel)-320(v)28(er-)]TJ 0 -11.955 Td [(sion.)-688(The)-415(o)28(v)28(erall)-415(design)-414(and)-415(parallelization)-414(strategy)-415(ha)28(v)28(e)-415(b)-28(een)-414(in\015uenced)-415(b)28(y)]TJ 0 -11.955 Td [(the)-348(structure)-348(of)-348(t)1(he)-348(ScaLAP)83(A)28(CK)-348(parallel)-348(library)84(.)-488(The)-348(la)28(y)27(ered)-348(structur)1(e)-348(of)-348(the)]TJ 0 -11.955 Td [(PSBLAS)-449(library)-449(is)-449(sho)28(wn)-449(in)-449(\014gure)]TJ 0 0 1 rg 0 0 1 RG - [-425(1)]TJ + [-449(1)]TJ 0 g 0 G - [(;)-469(lo)27(w)28(er)-424(la)28(y)27(ers)-424(of)-424(the)-425(li)1(brary)-425(indicate)]TJ 0 -11.956 Td [(an)-463(encapsulation)-464(relationship)-463(with)-463(upp)-28(er)-463(la)28(y)27(ers.)-834(The)-464(ongoing)-463(discussion)-463(fo-)]TJ 0 -11.955 Td [(cuses)-448(on)-448(the)-448(F)83(ortran)-448(95)-448(la)28(y)28(er)-448(im)-1(mediately)-448(b)-27(elo)27(w)-448(the)-448(application)-448(la)28(y)28(er.)-789(The)]TJ 0 -11.955 Td [(serial)-399(parts)-400(of)-399(the)-399(computation)-399(on)-400(eac)28(h)-399(pro)-28(cess)-399(are)-400(executed)-399(through)-399(calls)-400(to)]TJ 0 -11.955 Td [(the)-310(serial)-310(spar)1(s)-1(e)-309(BLAS)-310(subroutines.)-437(In)-309(a)-310(similar)-310(w)28(a)28(y)83(,)-314(the)-310(in)28(ter-pro)-28(cess)-310(message)]TJ 0 -11.955 Td [(exc)28(hanges)-369(are)-369(implemen)28(ted)-369(through)-368(the)-369(Basic)-369(Linear)-369(Algebra)-368(Comm)27(unication)]TJ 0 -11.956 Td [(Subroutines)-353(\050BLA)28(CS\051)-353(library)-353([)]TJ + [(;)-506(lo)27(w)28(er)-449(la)28(y)28(ers)-449(of)-449(the)-449(library)-449(indicate)-449(an)]TJ 0 -11.955 Td [(encapsulation)-422(relationship)-423(with)-422(upp)-28(er)-422(la)27(y)28(ers.)-712(The)-422(ongoing)-423(discussion)-422(fo)-28(cuses)]TJ 0 -11.956 Td [(on)-367(the)-367(F)83(ortran)-367(2003)-367(la)28(y)28(er)-367(immediately)-368(b)-27(elo)28(w)-368(the)-367(application)-367(la)28(y)28(er.)-546(The)-367(serial)]TJ 0 -11.955 Td [(parts)-262(of)-261(the)-262(computation)-262(on)-262(eac)28(h)-262(pro)-27(cess)-262(are)-262(executed)-262(through)-261(calls)-262(to)-262(the)-262(serial)]TJ 0 -11.955 Td [(sparse)-271(BLAS)-271(subroutines.)-424(In)-270(a)-271(s)-1(i)1(m)-1(il)1(a)-1(r)-270(w)27(a)28(y)83(,)-283(the)-271(in)28(ter-pro)-28(cess)-271(message)-271(exc)27(han)1(ge)-1(s)]TJ 0 -11.955 Td [(are)-333(encapsulated)-333(in)-333(an)-332(applicaiton)-333(la)28(y)27(er)-332(that)-333(has)-333(b)-28(een)-333(strongly)-333(in)1(s)-1(p)1(ired)-333(b)28(y)-333(the)]TJ 0 -11.955 Td [(Basic)-257(Linear)-257(Algebra)-258(Comm)28(unication)-257(Subroutines)-257(\050BLA)28(CS\051)-257(library)-257([)]TJ 1 0 0 rg 1 0 0 RG [(7)]TJ 0 g 0 G - [(])-353(that)-353(guaran)28(tees)-353(a)-353(p)-28(ortable)-353(and)-353(e\016cien)28(t)-353(c)-1(om-)]TJ 0 -11.955 Td [(m)28(unication)-399(la)27(y)28(er.)-642(The)-399(Message)-400(P)28(assing)-399(In)28(terface)-400(co)-27(de)-400(is)-399(encapsulated)-399(within)]TJ 0 -11.955 Td [(the)-385(BLA)28(CS)-385(la)27(y)28(er.)-599(Ho)27(w)28(ev)28(er,)-398(in)-385(some)-385(cases,)-398(MPI)-385(routines)-385(are)-385(directly)-385(use)-1(d)-385(ei-)]TJ 0 -11.955 Td [(ther)-404(to)-403(impro)28(v)27(e)-403(e\016ciency)-404(or)-404(to)-403(implemen)28(t)-404(comm)28(unication)-404(patterns)-403(for)-404(whic)28(h)]TJ 0 -11.955 Td [(the)-333(BLA)27(CS)-333(pac)28(k)55(age)-333(do)-28(esn't)-333(pro)28(vide)-333(an)27(y)-333(metho)-28(d.)]TJ 14.944 -13.523 Td [(In)-416(an)28(y)-416(case)-416(w)28(e)-416(pro)27(vide)-416(wrapp)-27(ers)-416(around)-416(the)-416(BLA)28(CS)-416(routines)-416(so)-416(that)-416(the)]TJ -14.944 -11.956 Td [(user)-333(do)-28(es)-334(n)1(ot)-334(need)-333(to)-333(delv)27(e)-333(in)28(to)-334(th)1(e)-1(i)1(r)-334(details)-333(\050see)-334(Sec.)]TJ + [(].)-419(Usually)]TJ 0 -11.955 Td [(there)-261(is)-261(no)-261(need)-261(to)-261(deal)-261(directly)-261(with)-261(MPI;)-261(ho)28(w)27(ev)28(er,)-275(in)-261(some)-261(case)-1(s,)-275(MPI)-261(routines)]TJ 0 -11.956 Td [(are)-248(used)-249(directly)-248(to)-248(im)-1(p)1(ro)27(v)28(e)-248(e\016ciency)83(.)-416(F)83(or)-248(further)-248(details)-249(on)-248(our)-248(c)-1(omm)28(unication)]TJ 0 -11.955 Td [(la)28(y)28(er)-334(see)-333(Sec.)]TJ 0 0 1 rg 0 0 1 RG - [-333(7)]TJ + [-334(7)]TJ 0 g 0 G - [(\051.)]TJ + [(.)]TJ 0 g 0 G 0 g 0 G 0 g 0 G ET -1 0 0 1 236.761 334.051 cm +1 0 0 1 252.686 420.317 cm q 0 -1 1 0 0 0 cm q @@ -3222,198 +3202,263 @@ Q Q Q 0 g 0 G -1 0 0 1 -236.761 -334.051 cm +1 0 0 1 -252.686 -420.317 cm BT -/F8 9.9626 Tf 215.088 122.263 Td [(Figure)-333(1:)-445(PSBLAS)-333(library)-333(comp)-28(onen)28(ts)-334(hi)1(e)-1(r)1(arc)27(h)28(y)83(.)]TJ +/F8 9.9626 Tf 215.088 264.429 Td [(Figure)-333(1:)-445(PSBLAS)-333(library)-333(comp)-28(onen)28(ts)-334(hi)1(e)-1(r)1(arc)27(h)28(y)83(.)]TJ 0 g 0 G 0 g 0 G + -49.439 -24.338 Td [(The)-438(t)27(yp)-27(e)-439(of)-438(linear)-439(system)-438(matrices)-439(that)-438(w)28(e)-439(address)-438(t)28(ypically)-439(arise)-438(in)-439(the)]TJ -14.944 -11.955 Td [(n)28(umerical)-428(solution)-428(of)-428(PDEs;)-476(in)-428(suc)28(h)-428(a)-428(con)28(text,)-452(it)-428(is)-428(necessary)-428(to)-429(p)1(a)27(y)-428(sp)-28(ecial)]TJ 0 -11.955 Td [(atten)28(tion)-296(to)-296(th)1(e)-296(structure)-296(of)-296(the)-295(problem)-296(from)-296(whic)28(h)-295(the)-296(application)-296(originates.)]TJ 0 -11.955 Td [(The)-322(nonzero)-322(pattern)-322(of)-322(a)-322(matrix)-322(arising)-322(from)-322(the)-322(discretization)-322(of)-322(a)-322(PDE)-322(is)-322(in-)]TJ 0 -11.956 Td [(\015uenced)-332(b)28(y)-332(v)55(arious)-332(factors,)-332(suc)27(h)-332(as)-332(the)-332(shap)-28(e)-332(of)-332(the)-332(domain,)-332(the)-333(d)1(is)-1(cretization)]TJ 0 -11.955 Td [(strategy)83(,)-396(and)-383(the)-383(equation/unkno)28(wn)-384(ordering.)-595(The)-383(matrix)-383(itself)-384(can)-383(b)-28(e)-384(i)1(n)27(ter-)]TJ 0 -11.955 Td [(preted)-358(as)-358(the)-358(adjacency)-358(matrix)-358(of)-358(the)-358(graph)-358(ass)-1(o)-27(ciated)-358(with)-358(the)-358(disc)-1(r)1(e)-1(tization)]TJ 0 -11.955 Td [(mesh.)]TJ 14.944 -12.169 Td [(The)-241(distrib)1(ution)-241(of)-241(th)1(e)-241(co)-28(e\016cien)28(t)-241(matrix)-240(for)-241(the)-241(lin)1(e)-1(ar)-240(system)-241(is)-240(based)-241(on)-241(the)]TJ -14.944 -11.955 Td [(\134o)28(wner)-353(computes")-352(rule:)-483(the)-353(v)56(ariable)-353(asso)-28(ciated)-352(to)-353(eac)28(h)-352(me)-1(sh)-352(p)-28(oin)28(t)-352(is)-353(assigned)]TJ 0 -11.955 Td [(to)-359(a)-358(pro)-28(cess)-359(that)-359(will)-359(o)28(wn)-359(th)1(e)-359(corresp)-28(onding)-359(ro)28(w)-359(in)-358(the)-359(co)-28(e\016cien)28(t)-359(matrix)-359(and)]TJ 0 g 0 G - 104.982 -31.825 Td [(2)]TJ + 169.365 -29.888 Td [(2)]TJ 0 g 0 G ET endstream endobj -601 0 obj << +597 0 obj << /Type /Page -/Contents 602 0 R -/Resources 600 0 R +/Contents 598 0 R +/Resources 596 0 R /MediaBox [0 0 595.276 841.89] -/Parent 585 0 R -/Annots [ 596 0 R 597 0 R 598 0 R ] +/Parent 580 0 R +/Annots [ 591 0 R 592 0 R 593 0 R ] >> endobj -599 0 obj << +594 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (./figures/psblas.pdf) /PTEX.PageNumber 1 -/PTEX.InfoDict 605 0 R -/BBox [0 0 283 264] +/PTEX.InfoDict 601 0 R +/BBox [0 0 197 215] /Resources << /ProcSet [ /PDF /Text ] /ExtGState << -/R7 606 0 R ->>/Font << /R8 607 0 R>> +/R7 602 0 R +>>/Font << /R8 603 0 R>> >> -/Length 608 0 R +/Length 604 0 R /Filter /FlateDecode >> stream -xœµVËn[7Ýó+¸LˆåðÍeR´…p"Y]7²ãBWq$ýýžáë^Û€Û ¼çÜ™3Ãá<øUjERó_ûfñãû(o/â£4IY/ÿúI8— ’w¢èË÷¿Šà½Ê&Hcµr9Èy ‚QåQl›úùV|Tÿo?Ó,ßîà.I"•ü»h“Üp,!)gb”ñ1E¹›Å«_¾œÎûSöòêôp8ßì§Ã»?ÅÏ;ñN×A9+s*Dƒ`:B!> óm1·ÊE|‹VYíK W§ÓáüØÿ†)¨6ÖÃa„â'ñj{8ßír{¿?_ŠE¥IP;ä¦*½ýíÍvácK¶Q6”l[• ç“Ã/áD+9pr›ì›4 Ž*êà5ê&÷sw¶E®þjyb`e…aA:{žó3ä¸B|Pì0z­xÐhT(‹)cŽvqFcñ(«*È(;`È»F7Äêö H„\ó&ûˆ+—ƒ-•‹—Ã]“‘ÚÑ‚ð8ä±¼ò@ aE‘)œÖ†!÷88C Iõÿ8dŒrÁËÎÉ·Žº‘Ýk——$udIRGúÙ:ç8}óúmÎð~âúsž{}®·lzkW/S@ËûG*~5Ø :]­P£ÉÖ†<×Ï/²ˆÐ¬é…VÃì;°?šb¦t1/~OܽsCâ@Ž+ ùqQ–8:+tù* ‚°ÖT²U„i̦ôEQMhÓM«Ø6 ]—ê0 °Y¶xiÈ᪊°ï¡Tö=ÐfÐÏÚù†\¶îÌ0Z -zîÀ˜:ÿ¾4É p[Ë&ÈØ;ØñA·F Z,¹Õ&:Owo mY½åžlÞ§æóK.ž¶Þ±ÿÕçÿþ$æ×KòØxA•©ÆÏÑ7÷÷Ç»iÿp÷åTŸ¢ -7ï“Ü$¼}ñð-¯Ìë-¿3%+`fy Ž &Nà‘Ó^¡?m«y}šnºýýp¹ìoòz¹ÜnYã+$Ía¡Ê0«ÞõÕxʾkzÔ +xœµVM7 ½ëWèÖ4€Y‘ú>&@[HMl ‡¢câu·;{þý’#QvvÝKÐÂÏ{#=RüÐð«u€ÖɯÿOóÓÇl÷g³°öã¯ýá´7_ ¶çþ7ìÛ // ¢Ãl7÷¦É E„ŒŽ,E(%’ÝÌ«õîô°íúq{:ï~Üüe0ƒsµØÀíæ³yõöý›µ¼ûyc>Ÿ(Ú¿M, +¯ ¼”ìá3›"dQžÙ7_Û³ËXm2‚0— +¼î(:HhU3vܪÅ“Aª f6è=A΃AŸÄ!9`³Ç +PwæAt_UOÏ¡OæO³æl8f¢ãPHÄY¥æ«‡åÕÌ+k(*«¦XÁI䓉uyQ¥ +Åá ¢ï¹Éø*Þcv ( ñÌÿôÚÇJÊBt«FpÍ©vvË×VþÕ‘” +„rÓ‘û×&@^ +éÿ2!)Õš\‘Œ÷¼ža®8Î7L¤ÂõŸÇ )]aôà¥`;¡vç ãp½ªba=WY³¨Hj.8‰µ2Rt%ùÁ` R=EÝ 4¢{4_póXÕFwt{Š[Íf.óÈv¾†Ê‘yÎÌÆGÞ§Áxq€Èúš‹ú‚c—++SJëgÅ¡Br5XUäÛFZYMv8™\øH”˜M!‚¢%rl9ª§¸Ù›Œbõh¾0ÝgÔ3©EÅ-:º‹¼i¾>9ÎßÑò…/aëUËv±Òu‹ß`ú®›Lk„¡ÀtÕ—ßö¼E÷õ¶Ž¿áæsù—¼0ȽýßI +~·œíÕÏãÎh§ÀP‰ó+‰I‰Ë`ä8Äwsâ~L¥¼–U9‰–2ó¢ß”ÇM®F‘ +ÁóÕÞ²þ-ÃÉu1 ƒéuÄóŠ +}¦öqëXË|Vb´A—Ó6QƒŠY¡8Õ†% +Ûæ“Ž=…åËE²A5) +í}óiV<\îrãDÝ âÖß7x¤U +«Ͻ'ƒÇ›ÇÇùaÚ>=|9Êh±Büuæ¹£$îËLËàq·–ÑÃÊŸ5×k^Þ½;>íN÷Ûi™ZŠ\V+9D£­8îNËLÓG™÷×»~0+¾’”àŠ'¢ˆ±íúmw>o÷;{·=ŸŽûEý—»a¥ÃѲîîÝâ8SË4Â%ÕÇ¥_¾œžNÛ#OαéƒùüÐ endstream endobj -605 0 obj +601 0 obj << -/Producer (ESP Ghostscript 815.04) -/CreationDate (D:20071019142653) -/ModDate (D:20071019142653) +/Producer (GPL Ghostscript 9.04) +/CreationDate (D:20111215145523+01'00') +/ModDate (D:20111215145523+01'00') +/Title (psblas.fig) +/Creator (fig2dev Version 3.2 Patchlevel 5d) +/Author (sfilippo@donald \(Salvatore Filippone\)) >> endobj -606 0 obj +602 0 obj << /Type /ExtGState /OPM 1 >> endobj -607 0 obj +603 0 obj << -/BaseFont /Times-Roman +/BaseFont /JEJNJE#2BTimes-Roman +/FontDescriptor 605 0 R /Type /Font +/FirstChar 32 +/LastChar 116 +/Widths [ 250 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 500 0 500 500 0 0 0 0 0 0 0 0 0 0 0 0 0 722 667 0 0 0 556 0 0 333 0 0 611 889 0 0 556 0 0 556 0 0 0 0 0 0 0 0 0 0 0 0 0 444 0 444 0 444 333 500 0 278 0 0 278 0 500 500 500 0 333 389 278] +/Encoding /WinAnsiEncoding /Subtype /Type1 >> endobj -608 0 obj -1086 +604 0 obj +898 endobj -596 0 obj << -/Type /Annot -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [327.131 493.729 334.105 504.577] -/Subtype /Link -/A << /S /GoTo /D (figure.1) >> ->> endobj -597 0 obj << -/Type /Annot -/Border[0 0 0]/H/I/C[0 1 0] -/Rect [284.655 423.935 291.629 432.348] -/Subtype /Link +605 0 obj +<< +/Type /FontDescriptor +/FontName /JEJNJE#2BTimes-Roman +/FontBBox [ 0 -218 863 683] +/Flags 32 +/Ascent 683 +/CapHeight 676 +/Descent -218 +/ItalicAngle 0 +/StemV 129 +/MissingWidth 500 +/XHeight 460 +/CharSet (/A/B/F/I/L/M/P/S/a/c/e/f/g/i/l/n/o/p/r/s/space/t/three/two/zero) +/FontFile3 606 0 R +>> +endobj +606 0 obj +<< +/Filter /FlateDecode +/Subtype /Type1C +/Length 2887 +>> +stream +xœe–iXSWÇo É=Z¤-iʦ µ­m]‘Ö*ÕVYÔZQU (! KBI ,A8,!, Ö„M‚T¥*(¶ÖQ¬ ÖœÇn:Jg9—¹|˜‹vž~˜/÷¹÷žåyß÷ÿ?¿÷Ð0‡%Fs ¤ðÓ׋SbE‹ßë±b ±’IÑü?æw0VbôåБšV82ÑÔ«Èò2*x£Óhr}›¿X’•&HHÌð|÷ppø{k×®ûóÏ&ÏãYÿñ ৠDž«©_(–¤ðEÛ<ý©ÙB¡à„g‚0K’˜îÇ[\+ä'{î‰Xæù®ÿ{žÞ^^›ÖSÍ)Ç¥éžÏ#÷< öñ ô æ'H…±iÿ?‚a˜›¯ÈO,IÛž±76ðÄ~~|P‚ Dèéåý>†­ÂbobAØ!,{ Åck0?l=€mÀvc{°MاØgØØ~Œ†½Š±°×0wªx˜ÆÇîѲiW—ì]ÒA~Êá‡}¿2ü&&ÎŒg^Æ·g YúêÒK-=½ ,Ó'æã¡E oXhóafö±rMMⲌ¸îšÉ$ãrö‘«s²£‹Ýä(ÊŒGgm†ò:‘{-e sp­A¢O…*7˜¦È+rT…/¨Q áȆic8'¡‰p¿DûvÌÐë‰UìÊòšÒZlÕÊ(.YŠÃà\UDP¢DQ¡4@;@§ðÏGš =œkîå’|ª‘‹“âLx”.ÇÏ”…ÿ»ì{T¨Ø·‡ó/(‹Êä†f»9Ío„fy1Û'7;#ÆÒÎ}„pVRÃü6Ë$Çg´†\è ‚pè«Vo= XIrôW|N5õ²w[Fàçp8k@Ø‘b•>«36Õ´6–°­ÙÔ7莼'H_Žù˜ý7xVkWRËÇÓ­'ÝáaY܉Œä¬ãù{!ˆRUwsÑ e“¾ÚÄf²„ŸŒöþ8Œ·žKUEc#¼m´ŽPÝtTNÄ°É×½Ö’ÒãçÕÈ9?ýâ —OÈ׸j1{æÊZr%É8¶gg\|뀌+˾§À“ÑkSj/2¥Aј…R4Ý„ÓUç»3HúÈ…¥­&V²«Kõ°‚SzÍîB"Ãssƒ +kµiqÖ±F|g©º~ Ð&¼7©U3Zör@o£Wv=^ÂK;ÌãÞÇ ËËÕ¡ +7´f'»ó²ýìs;H@Ò£vú ¶wrœÐ#Jã-´{3t=áή+¯.5@ÐVÍã’å8Œ,(Ø—CiW`Â÷”+Lp )Þ}æ¼µ²Z«©åÔ«j ´šl=2‹ V”Åý ×–…IÔAr7'â hF“ƒ¨ºŸRôïs.¬D"e³‘2ÏÙ–¥Üù6JcÚt•VZÁD جlØÚ˜'Ñ›Œ“u_Žß)4ªà.°° ‡[sÕ;´”U{Ìø'ª:x z”†€á¦iα,êfç ×Ï-Ö:ôtƒ]„V0r™ÅÅy%%EЭjÊru€ÕP%•V¤zlŽðé>1ÍHêÍlH‡B7^²8B 46Ë9²¶¼õ8È&½ŒL}MEUV`5¬+n¡Äh(´Y‹=î5që|zÏA;—ľ×+Û Õm Ëvv¼SàÝBÕ¸K3F8v;‘–Ü?ãšEUD›us5Ìš’òBNA^a^†]X³¹…Zwx²´¸¼°n~A^dn錹r®¿u¬‡£®•¥)4R说~ÉE§qÖì3梌æy3 ástêÓØp§:gËIªTç͸OyvüÔ©ù¦Î8SÌäy9>ûâ,9Ašñà µÕùò÷è݇.¬âÀ×l…*G«„ £ n˜‹Âq8¦íP¶Jí1æ ÖûFfX2[Z›,Í%º=·¸º¤ +êµ»yàœUt˜s'7ìWäÇð¥™*L¬ˆÀaÞäð`ÓØ$‡e ×5Ê=NÁ&Co?5Dnüž …ÚÕ7 'a«Øøx‡wºQ¬öû ]£\K¾L™vÂÜÕßT§5rêS šZÌ-v^ûÁýa’£©ÜT^~BÉ6à“üyƒ ýrsüño4QFÌ­…wºœðhh@çaÿÛÊF4 +´ÇÐ0»½¸¡¤NË5gZ¯vÛ'á×pHÕ/é81üm=…Œ&«Ò7¿FýŸsaK¾fGÁ‹ân/W.š%$dV½ÞŠ<®ykMP$‰gªJË2ž3W4ŽÞ· —6”tZg£Ùn¡ìûVH"\Ù§?Á3¡²G»‡þšÜÝ‹ºhLø^]~Í"KÎ""Œ-ÉÈ‹›3l-ͶŒÕô¾PÙ¥‚Xœ§!Õ3Ö +"d~+[Æ,ÊÈÍU@ TT(ª«§.>¾*Ù#òI¢DaV, ‡Û†CCÐmþØñ6~µZ'ƒéàÓÈ£~Þ—S$'ƒÙI&2š™¬@s©¡ÎäQ ŠÌÔNÊþü„?~ðûw¡×I×)Øax\ê¿62$Oèåt%×¥ÖQíâyú´_gèæy:»’Y[j(­‚ »FEõÎTV©µT®¹&<°"§^Ä/xQY¸‚¯Ù­psBå”+TíóÎí´Ö§Èø”ŽôTj¡0VŸx(„Oâ\ +IZ¹t4¤w!}^€gì½—ú€h9@±^è Ò…s2•=3B2H>ÉçynÞÌû7ŠC‰#ˆþhñÚï-whèÇGtBŒV²Õºø`uÞ1èFæ3ÑvðøçÓ÷à´ÛoÝ34\z"ž“,P&+š´®¿Ú»oB03¼å㣶xsÉÝä!FáŽ/†m'~¼êŒn?àßvaÝDëÑ÷ì+°¥¸5ïšôt0Ü ¶æ+ÉÔ·ÆsRz…t¥J–xFzëþƒöÁQîè`û¼/dŠº2›åž™j@7GÛú.º?Üwyc$O‘œÀI‘(S¥ME®ƒßŒô| Áõ^`‚2!-›’"VîIN™"Ì‚B-ÌÎe³/uV9:Î6:.Ç°ÿMɪH +endstream +endobj +591 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [310.543 539.3 317.517 550.149] +/Subtype /Link +/A << /S /GoTo /D (figure.1) >> +>> endobj +592 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 0] +/Rect [446.018 469.506 452.992 477.919] +/Subtype /Link /A << /S /GoTo /D (cite.BLACS) >> >> endobj -598 0 obj << +593 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [387.982 348.146 394.956 360.101] +/Rect [210.398 431.704 217.372 442.552] /Subtype /Link /A << /S /GoTo /D (section.7) >> >> endobj 14 0 obj << -/D [601 0 R /XYZ 150.705 634.607 null] ->> endobj -604 0 obj << -/D [601 0 R /XYZ 258.703 134.218 null] +/D [597 0 R /XYZ 150.705 676.303 null] >> endobj 600 0 obj << -/Font << /F8 442 0 R /F16 439 0 R /F11 603 0 R >> -/XObject << /Im1 599 0 R >> +/D [597 0 R /XYZ 258.703 276.384 null] +>> endobj +596 0 obj << +/Font << /F8 438 0 R /F16 435 0 R /F11 599 0 R >> +/XObject << /Im1 594 0 R >> /ProcSet [ /PDF /Text ] >> endobj -615 0 obj << -/Length 8820 +614 0 obj << +/Length 9171 >> stream 0 g 0 G 0 g 0 G BT -/F8 9.9626 Tf 114.839 706.129 Td [(The)-438(t)27(yp)-27(e)-439(of)-438(linear)-439(system)-438(matrices)-439(that)-438(w)28(e)-439(address)-438(t)28(ypically)-439(arise)-438(in)-439(the)]TJ -14.944 -11.955 Td [(n)28(umerical)-428(solution)-428(of)-428(PDEs;)-476(in)-428(suc)28(h)-428(a)-428(con)28(text,)-452(it)-428(is)-428(necessary)-428(to)-429(pa)28(y)-428(sp)-28(ecial)]TJ 0 -11.955 Td [(atten)28(tion)-296(to)-296(the)-295(structure)-296(of)-296(the)-295(problem)-296(from)-296(whic)28(h)-296(the)-295(application)-296(originates.)]TJ 0 -11.956 Td [(The)-322(nonzero)-322(pattern)-322(of)-322(a)-322(matrix)-322(arising)-322(from)-322(the)-322(discretization)-322(of)-322(a)-322(PDE)-322(is)-322(in-)]TJ 0 -11.955 Td [(\015uenced)-332(b)28(y)-332(v)55(arious)-332(factors,)-332(suc)27(h)-332(as)-332(the)-332(shap)-28(e)-332(of)-332(the)-332(domain,)-332(the)-333(discretization)]TJ 0 -11.955 Td [(strategy)83(,)-396(and)-383(the)-383(e)-1(qu)1(ation/unkno)27(wn)-383(ordering.)-595(The)-383(matrix)-383(itse)-1(l)1(f)-384(can)-383(b)-28(e)-384(in)28(ter-)]TJ 0 -11.955 Td [(preted)-358(as)-358(the)-358(adjacency)-358(matrix)-358(of)-358(the)-359(gr)1(aph)-358(as)-1(so)-27(ciated)-358(with)-358(the)-359(di)1(s)-1(cretization)]TJ 0 -11.955 Td [(mesh.)]TJ 14.944 -11.956 Td [(The)-241(distribut)1(ion)-241(of)-241(the)-240(co)-28(e\016cien)28(t)-241(matrix)-240(for)-241(the)-241(linear)-240(system)-241(is)-240(base)-1(d)-240(on)-241(the)]TJ -14.944 -11.955 Td [(\134o)28(wner)-247(computes")-248(ru)1(le:)-402(the)-247(v)56(ariable)-247(asso)-28(ciated)-247(to)-247(eac)27(h)-247(mesh)-247(p)-28(oin)28(t)-247(is)-247(assigned)-247(to)]TJ 0 -11.955 Td [(a)-308(p)1(ro)-28(cess)-308(that)-307(will)-308(o)28(wn)-307(the)-308(corresp)-28(onding)-307(ro)28(w)-308(in)-307(the)-308(co)-27(e\016)-1(cien)28(t)-307(matrix)-308(and)-307(will)]TJ 0 -11.955 Td [(carry)-378(out)-378(al)1(l)-378(related)-378(computations.)-578(This)-378(all)1(o)-28(cation)-378(strategy)-378(is)-378(equiv)56(alen)28(t)-378(to)-378(a)]TJ 0 -11.955 Td [(partition)-293(of)-293(the)-293(discretization)-293(mesh)-293(in)27(to)]TJ/F17 9.9626 Tf 174.875 0 Td [(sub-domains)]TJ/F8 9.9626 Tf 53.72 0 Td [(.)-431(Our)-293(library)-293(supp)-28(orts)-293(an)28(y)]TJ -228.595 -11.955 Td [(distribution)-278(that)-278(k)28(eeps)-278(together)-278(the)-279(co)-27(e\016cie)-1(n)28(ts)-278(of)-278(eac)28(h)-278(matrix)-278(ro)28(w)-1(;)-296(there)-278(are)-278(no)]TJ 0 -11.956 Td [(other)-261(constrain)28(ts)-261(on)-261(the)-261(v)55(ariable)-261(assignmen)28(t.)-420(This)-261(c)27(h)1(oic)-1(e)-261(is)-261(consisten)28(t)-261(with)-261(data)]TJ 0 -11.955 Td [(distributions)-308(c)-1(ommonly)-308(used)-309(in)-308(ScaLAP)83(A)28(CK)-309(suc)28(h)-309(as)]TJ/F30 9.9626 Tf 233.534 0 Td [(CYCLIC\050N\051)]TJ/F8 9.9626 Tf 50.147 0 Td [(and)]TJ/F30 9.9626 Tf 19.126 0 Td [(BLOCK)]TJ/F8 9.9626 Tf 26.151 0 Td [(,)-309(as)]TJ -328.958 -11.955 Td [(w)28(ell)-422(as)-421(completely)-421(arbitrary)-421(assignme)-1(n)28(ts)-421(of)-421(equation)-422(i)1(ndices)-422(to)-421(pro)-28(cesses.)-708(In)]TJ 0 -11.955 Td [(particular)-345(it)-345(is)-345(consisten)28(t)-345(with)-345(the)-345(usage)-345(of)-345(graph)-345(par)1(titioning)-345(to)-28(ols)-345(commonly)]TJ 0 -11.955 Td [(a)28(v)55(ailable)-394(in)-395(the)-395(literature,)-410(e.g.)-628(METIS)-395([)]TJ +/F8 9.9626 Tf 99.895 706.129 Td [(will)-287(carry)-287(out)-287(all)-287(related)-287(computations.)-429(This)-287(allo)-28(cation)-287(strategy)-287(is)-287(e)-1(qu)1(iv)55(alen)28(t)-287(to)]TJ 0 -11.955 Td [(a)-390(partition)-390(of)-390(the)-390(discretization)-390(mesh)-390(in)28(to)]TJ/F17 9.9626 Tf 189.534 0 Td [(sub-domains)]TJ/F8 9.9626 Tf 53.721 0 Td [(.)-614(Our)-390(library)-390(supp)-28(orts)]TJ -243.255 -11.955 Td [(an)28(y)-379(distribution)-379(that)-379(k)28(eeps)-379(together)-379(the)-379(co)-28(e\016cien)28(ts)-379(of)-379(eac)27(h)-379(matri)1(x)-379(ro)27(w;)-401(there)]TJ 0 -11.956 Td [(are)-391(no)-391(other)-391(constrain)28(ts)-391(on)-391(the)-391(v)55(ariable)-391(assignmen)28(t.)-617(This)-392(c)28(hoice)-391(is)-391(consisten)28(t)]TJ 0 -11.955 Td [(with)-389(simple)-388(data)-389(distributions)-388(s)-1(u)1(c)27(h)-388(as)]TJ/F30 9.9626 Tf 172.701 0 Td [(CYCLIC\050N\051)]TJ/F8 9.9626 Tf 50.944 0 Td [(and)]TJ/F30 9.9626 Tf 19.923 0 Td [(BLOCK)]TJ/F8 9.9626 Tf 26.152 0 Td [(,)-389(as)-388(w)27(ell)-388(as)-389(com-)]TJ -269.72 -11.955 Td [(pletely)-373(arbitrary)-372(assignmen)27(ts)-372(of)-373(equation)-372(indices)-373(to)-373(pro)-28(cesses.)-562(In)-373(particular)-372(it)]TJ 0 -11.955 Td [(is)-376(consisten)28(t)-376(with)-376(the)-375(usage)-376(of)-376(graph)-375(partitioning)-376(to)-28(ols)-376(commonly)-375(a)27(v)56(ailable)-376(in)]TJ 0 -11.955 Td [(the)-308(literatur)1(e)-1(,)-312(e.g.)-436(METIS)-308([)]TJ 1 0 0 rg 1 0 0 RG [(13)]TJ 0 g 0 G - [(].)-628(De)-1(n)1(s)-1(e)-394(v)28(e)-1(ctors)-394(conform)-395(to)-395(sparse)]TJ 0 -11.955 Td [(matrices,)-497(that)-464(is,)-497(the)-464(en)27(tr)1(ies)-465(of)-464(a)-464(v)28(ector)-465(fol)1(lo)27(w)-464(the)-464(same)-464(distribution)-464(of)-465(the)]TJ 0 -11.956 Td [(matrix)-333(ro)27(ws.)]TJ 14.944 -11.955 Td [(W)83(e)-413(assume)-413(that)-413(the)-412(s)-1(par)1(s)-1(e)-412(m)-1(atr)1(ix)-413(is)-413(built)-413(in)-413(parallel,)-433(where)-413(eac)28(h)-413(pro)-28(cess)]TJ -14.944 -11.955 Td [(generates)-321(its)-321(o)28(wn)-321(p)-28(ortion.)-440(W)84(e)-321(nev)28(e)-1(r)-320(require)-321(that)-321(the)-321(en)28(tire)-321(matrix)-321(b)-27(e)-321(a)28(v)55(ailable)]TJ 0 -11.955 Td [(on)-279(a)-279(single)-279(no)-28(de.)-426(Ho)27(w)28(ev)28(er,)-290(it)-279(is)-279(p)-28(ossible)-279(to)-279(hold)-279(the)-279(en)28(tire)-279(m)-1(atr)1(ix)-280(in)-279(one)-279(pro)-27(ces)-1(s)]TJ 0 -11.955 Td [(and)-369(distribute)-369(it)-370(expl)1(ic)-1(i)1(tly)]TJ + [(].)-435(Dense)-308(v)28(ectors)-308(conform)-307(to)-308(sparse)-308(matri)1(c)-1(es,)-312(that)]TJ 0 -11.956 Td [(is,)-333(the)-334(en)28(tries)-333(of)-334(a)-333(v)28(ector)-334(f)1(ollo)27(w)-333(the)-333(same)-334(distribution)-333(of)-333(the)-334(matrix)-333(ro)28(ws.)]TJ 14.944 -11.955 Td [(W)83(e)-413(assume)-413(that)-413(the)-412(s)-1(par)1(s)-1(e)-412(m)-1(atr)1(ix)-413(is)-413(built)-413(in)-413(parallel,)-433(where)-413(eac)28(h)-413(pro)-28(cess)]TJ -14.944 -11.955 Td [(generates)-321(its)-321(o)28(wn)-321(p)-28(ortion.)-440(W)84(e)-321(nev)28(e)-1(r)-320(require)-321(that)-321(the)-321(en)28(tire)-321(matrix)-321(b)-27(e)-321(a)28(v)55(ailable)]TJ 0 -11.955 Td [(on)-279(a)-279(single)-279(no)-28(de.)-426(Ho)27(w)28(ev)28(er,)-290(it)-279(is)-279(p)-28(ossible)-279(to)-279(hold)-279(the)-279(en)28(tire)-279(m)-1(atr)1(ix)-280(in)-279(one)-279(pro)-27(ces)-1(s)]TJ 0 -11.955 Td [(and)-369(distribute)-369(it)-370(expl)1(ic)-1(i)1(tly)]TJ 0 0 1 rg 0 0 1 RG /F7 6.9738 Tf 115.727 3.615 Td [(1)]TJ 0 g 0 G -/F8 9.9626 Tf 4.469 -3.615 Td [(,)-378(ev)28(e)-1(n)-369(though)-369(the)-369(resulting)-369(b)-28(ottlenec)28(k)-369(w)27(ould)-369(mak)28(e)]TJ -120.196 -11.955 Td [(this)-333(option)-334(un)1(a)-1(t)1(trac)-1(t)1(iv)27(e)-333(in)-333(most)-334(cases.)]TJ/F16 11.9552 Tf 0 -27.566 Td [(2.1)-1125(Basic)-375(Nomenclature)]TJ/F8 9.9626 Tf 0 -18.39 Td [(Our)-377(computational)-377(mo)-28(del)-377(implies)-378(that)-377(the)-377(data)-377(allo)-28(cation)-377(on)-378(the)-377(parallel)-377(dis-)]TJ 0 -11.955 Td [(tributed)-303(memory)-302(mac)27(hine)-302(is)-303(guided)-303(b)28(y)-303(the)-302(structure)-303(of)-303(the)-303(p)1(h)27(ysical)-302(mo)-28(del,)-309(and)]TJ 0 -11.955 Td [(sp)-28(eci\014cally)-333(b)28(y)-334(the)-333(discretization)-333(mesh)-334(of)-333(the)-333(PDE.)]TJ 14.944 -11.955 Td [(Eac)28(h)-471(p)-28(oin)28(t)-471(of)-470(the)-471(discretization)-471(mesh)-470(will)-471(ha)28(v)28(e)-471(\050at)-471(least\051)-471(one)-470(asso)-28(ciated)]TJ -14.944 -11.955 Td [(equation/v)56(ariable,)-467(an)1(d)-440(therefore)-440(one)-439(index.)-764(W)84(e)-440(sa)28(y)-440(that)-439(p)-28(oin)28(t)]TJ/F11 9.9626 Tf 286.579 0 Td [(i)]TJ/F17 9.9626 Tf 7.812 0 Td [(dep)51(ends)]TJ/F8 9.9626 Tf 38.804 0 Td [(on)]TJ -333.195 -11.955 Td [(p)-28(oin)28(t)]TJ/F11 9.9626 Tf 26.99 0 Td [(j)]TJ/F8 9.9626 Tf 8.971 0 Td [(if)-431(the)-432(equation)-431(for)-431(a)-431(v)55(ariable)-431(asso)-28(ciated)-431(with)]TJ/F11 9.9626 Tf 205.846 0 Td [(i)]TJ/F8 9.9626 Tf 7.73 0 Td [(con)28(tains)-432(a)-431(term)-431(in)]TJ/F11 9.9626 Tf 86.734 0 Td [(j)]TJ/F8 9.9626 Tf 4.673 0 Td [(,)]TJ -340.944 -11.956 Td [(or)-408(equiv)56(alen)28(tly)-408(if)]TJ/F11 9.9626 Tf 78.912 0 Td [(a)]TJ/F10 6.9738 Tf 5.266 -1.494 Td [(ij)]TJ/F14 9.9626 Tf 11.021 1.494 Td [(6)]TJ/F8 9.9626 Tf 0 0 Td [(=)-402(0.)-668(After)-408(the)-408(partition)-407(of)-408(the)-408(discretization)-408(mesh)-408(in)28(to)]TJ/F17 9.9626 Tf -95.199 -11.955 Td [(sub-domains)]TJ/F8 9.9626 Tf 57.628 0 Td [(assigned)-310(to)-310(the)-310(parallel)-310(pro)-28(cesses,)-315(w)28(e)-310(classify)-310(the)-311(p)-27(oin)28(ts)-311(of)-310(a)-310(giv)28(en)]TJ -57.628 -11.955 Td [(sub-domain)-333(as)-334(follo)28(wing.)]TJ +/F8 9.9626 Tf 4.469 -3.615 Td [(,)-378(ev)28(e)-1(n)-369(though)-369(the)-369(resulting)-369(b)-28(ottlenec)28(k)-369(w)27(ould)-369(mak)28(e)]TJ -120.196 -11.955 Td [(this)-333(option)-334(un)1(a)-1(t)1(trac)-1(t)1(iv)27(e)-333(in)-333(most)-334(cases.)]TJ/F16 11.9552 Tf 0 -27.747 Td [(2.1)-1125(Basic)-375(Nomenclature)]TJ/F8 9.9626 Tf 0 -18.389 Td [(Our)-377(computational)-377(mo)-28(del)-377(implies)-378(that)-377(the)-377(data)-377(allo)-28(cation)-377(on)-378(the)-377(parallel)-377(dis-)]TJ 0 -11.956 Td [(tributed)-303(memory)-302(mac)27(hine)-302(is)-303(guided)-303(b)28(y)-303(the)-302(structure)-303(of)-303(the)-303(p)1(h)27(ysical)-302(mo)-28(del,)-309(and)]TJ 0 -11.955 Td [(sp)-28(eci\014cally)-333(b)28(y)-334(the)-333(discretization)-333(mesh)-334(of)-333(the)-333(PDE.)]TJ 14.944 -11.955 Td [(Eac)28(h)-471(p)-28(oin)28(t)-471(of)-470(the)-471(discretization)-471(mesh)-470(will)-471(ha)28(v)28(e)-471(\050at)-471(least\051)-471(one)-470(asso)-28(ciated)]TJ -14.944 -11.955 Td [(equation/v)56(ariable,)-467(an)1(d)-440(therefore)-440(one)-439(index.)-764(W)84(e)-440(sa)28(y)-440(that)-439(p)-28(oin)28(t)]TJ/F11 9.9626 Tf 286.579 0 Td [(i)]TJ/F17 9.9626 Tf 7.812 0 Td [(dep)51(ends)]TJ/F8 9.9626 Tf 38.804 0 Td [(on)]TJ -333.195 -11.955 Td [(p)-28(oin)28(t)]TJ/F11 9.9626 Tf 26.99 0 Td [(j)]TJ/F8 9.9626 Tf 8.971 0 Td [(if)-431(the)-432(equation)-431(for)-431(a)-431(v)55(ariable)-431(asso)-28(ciated)-431(with)]TJ/F11 9.9626 Tf 205.846 0 Td [(i)]TJ/F8 9.9626 Tf 7.73 0 Td [(con)28(tains)-432(a)-431(term)-431(in)]TJ/F11 9.9626 Tf 86.734 0 Td [(j)]TJ/F8 9.9626 Tf 4.673 0 Td [(,)]TJ -340.944 -11.955 Td [(or)-408(equiv)56(alen)28(tly)-408(if)]TJ/F11 9.9626 Tf 78.912 0 Td [(a)]TJ/F10 6.9738 Tf 5.266 -1.495 Td [(ij)]TJ/F14 9.9626 Tf 11.021 1.495 Td [(6)]TJ/F8 9.9626 Tf 0 0 Td [(=)-402(0.)-668(After)-408(the)-408(partition)-407(of)-408(the)-408(discretization)-408(mesh)-408(in)28(to)]TJ/F17 9.9626 Tf -95.199 -11.956 Td [(sub-domains)]TJ/F8 9.9626 Tf 57.628 0 Td [(assigned)-310(to)-310(the)-310(parallel)-310(pro)-28(cesses,)-315(w)28(e)-310(classify)-310(the)-311(p)-27(oin)28(ts)-311(of)-310(a)-310(giv)28(en)]TJ -57.628 -11.955 Td [(sub-domain)-333(as)-334(follo)28(wing.)]TJ 0 g 0 G -/F27 9.9626 Tf 0 -18.426 Td [(In)32(ternal.)]TJ +/F27 9.9626 Tf 0 -19.266 Td [(In)32(ternal.)]TJ 0 g 0 G -/F8 9.9626 Tf 48.097 0 Td [(An)-397(in)28(ternal)-397(p)-28(oin)28(t)-397(of)-397(a)-396(giv)27(en)-397(domain)]TJ/F17 9.9626 Tf 164.694 0 Td [(dep)51(ends)]TJ/F8 9.9626 Tf 37.561 0 Td [(only)-397(on)-397(p)-27(oin)27(ts)-397(of)-396(the)]TJ -225.445 -11.955 Td [(same)-288(domain.)-429(If)-289(al)1(l)-289(p)-27(oin)28(ts)-289(of)-288(a)-288(domain)-288(are)-288(assigned)-288(to)-288(one)-288(pro)-28(cess,)-297(then)-288(a)]TJ 0 -11.955 Td [(computational)-342(step)-342(\050e.g.,)-344(a)-342(matrix-v)28(ec)-1(tor)-342(pr)1(o)-28(duct\051)-342(of)-342(the)-342(equations)-342(asso-)]TJ 0 -11.956 Td [(ciated)-302(with)-303(t)1(he)-303(in)28(ternal)-302(p)-28(oin)28(ts)-302(requires)-303(no)-302(data)-302(items)-302(from)-303(other)-302(domains)]TJ 0 -11.955 Td [(and)-333(no)-334(comm)28(unications.)]TJ +/F8 9.9626 Tf 48.097 0 Td [(An)-397(in)28(ternal)-397(p)-28(oin)28(t)-397(of)-397(a)-396(giv)27(en)-397(domain)]TJ/F17 9.9626 Tf 164.694 0 Td [(dep)51(ends)]TJ/F8 9.9626 Tf 37.561 0 Td [(only)-397(on)-397(p)-27(oin)27(ts)-397(of)-396(the)]TJ -225.445 -11.956 Td [(same)-288(domain.)-429(If)-289(al)1(l)-289(p)-27(oin)28(ts)-289(of)-288(a)-288(domain)-288(are)-288(assigned)-288(to)-288(one)-288(pro)-28(cess,)-297(then)-288(a)]TJ 0 -11.955 Td [(computational)-342(step)-342(\050e.g.,)-344(a)-342(matrix-v)28(ec)-1(tor)-342(pr)1(o)-28(duct\051)-342(of)-342(the)-342(equations)-342(asso-)]TJ 0 -11.955 Td [(ciated)-302(with)-303(t)1(he)-303(in)28(ternal)-302(p)-28(oin)28(ts)-302(requires)-303(no)-302(data)-302(items)-302(from)-303(other)-302(domains)]TJ 0 -11.955 Td [(and)-333(no)-334(comm)28(unications.)]TJ 0 g 0 G -/F27 9.9626 Tf -24.907 -19.176 Td [(Boundary)96(.)]TJ +/F27 9.9626 Tf -24.907 -19.596 Td [(Boundary)96(.)]TJ 0 g 0 G /F8 9.9626 Tf 56.517 0 Td [(A)-438(p)-28(oin)28(t)-438(of)-438(a)-438(giv)28(en)-439(domain)-438(is)-438(a)-438(b)-28(oundar)1(y)-439(p)-27(oin)28(t)-439(if)-438(it)]TJ/F17 9.9626 Tf 238.706 0 Td [(dep)51(ends)]TJ/F8 9.9626 Tf 37.972 0 Td [(on)]TJ -308.288 -11.955 Td [(p)-28(oin)28(ts)-333(b)-28(elonging)-333(to)-334(other)-333(domains.)]TJ 0 g 0 G -/F27 9.9626 Tf -24.907 -19.175 Td [(Halo.)]TJ +/F27 9.9626 Tf -24.907 -19.596 Td [(Halo.)]TJ +0 g 0 G +/F8 9.9626 Tf 31.611 0 Td [(A)-462(halo)-462(p)-28(oin)28(t)-463(for)-462(a)-462(giv)27(en)-462(domain)-462(is)-463(a)-462(p)-28(oin)28(t)-462(b)-28(elonging)-462(to)-463(an)1(other)-463(do-)]TJ -6.704 -11.955 Td [(main)-313(s)-1(u)1(c)27(h)-313(that)-314(there)-313(is)-314(a)-313(b)-28(oundary)-313(p)-28(oin)28(t)-314(whic)28(h)]TJ/F17 9.9626 Tf 210.37 0 Td [(dep)51(ends)]TJ/F8 9.9626 Tf 37.548 0 Td [(on)-313(it.)-438(Whenev)28(er)]TJ -247.918 -11.955 Td [(p)-28(erforming)-444(a)-444(computational)-444(step,)-472(suc)28(h)-444(as)-444(a)-445(matrix-v)28(ector)-444(pro)-28(duct,)-472(th)1(e)]TJ 0 -11.956 Td [(v)56(alues)-383(asso)-28(ciated)-383(with)-383(halo)-383(p)-27(oin)27(ts)-383(ar)1(e)-383(requested)-383(from)-383(other)-383(domains.)-593(A)]TJ 0 -11.955 Td [(b)-28(oundary)-363(p)-28(oin)28(t)-363(of)-364(a)-363(giv)28(en)-364(domain)-363(is)-364(usually)-363(a)-364(halo)-363(p)-28(oin)28(t)-363(for)-364(some)-363(other)]TJ 0 -11.955 Td [(domain)]TJ +0 0 1 rg 0 0 1 RG +/F7 6.9738 Tf 32.102 3.615 Td [(2)]TJ +0 g 0 G +/F8 9.9626 Tf 4.469 -3.615 Td [(;)-323(therefore)-319(the)-319(card)1(inalit)27(y)-318(of)-319(the)-318(b)-28(oundary)-318(p)-28(oin)28(ts)-319(set)-318(denotes)-319(the)]TJ -36.571 -11.955 Td [(amoun)28(t)-334(of)-333(data)-333(sen)28(t)-334(to)-333(other)-333(domains.)]TJ +0 g 0 G +/F27 9.9626 Tf -24.907 -19.596 Td [(Ov)32(erlap.)]TJ 0 g 0 G -/F8 9.9626 Tf 31.611 0 Td [(A)-462(halo)-462(p)-28(oin)28(t)-463(for)-462(a)-462(giv)27(en)-462(domain)-462(is)-463(a)-462(p)-28(oin)28(t)-462(b)-28(elonging)-462(to)-463(an)1(other)-463(do-)]TJ -6.704 -11.956 Td [(main)-313(s)-1(u)1(c)27(h)-313(that)-314(there)-313(is)-314(a)-313(b)-28(oundary)-313(p)-28(oin)28(t)-314(whic)28(h)]TJ/F17 9.9626 Tf 210.37 0 Td [(dep)51(ends)]TJ/F8 9.9626 Tf 37.548 0 Td [(on)-313(it.)-438(Whenev)28(er)]TJ +/F8 9.9626 Tf 47.586 0 Td [(An)-339(o)28(v)28(erlap)-339(p)-28(oin)28(t)-339(is)-339(a)-339(b)-28(oundary)-339(p)-28(oin)28(t)-339(assigned)-339(to)-339(m)28(ultiple)-339(domains.)]TJ -22.679 -11.955 Td [(An)28(y)-297(op)-28(eration)-296(that)-297(in)28(v)28(olv)27(es)-296(an)-297(o)28(v)27(erlap)-296(p)-28(oin)28(t)-297(has)-297(to)-296(b)-28(e)-297(replicated)-297(for)-296(eac)27(h)]TJ 0 -11.955 Td [(assignmen)28(t.)]TJ 0 g 0 G ET q -1 0 0 1 99.895 129.78 cm +1 0 0 1 99.895 167.678 cm []0 d 0 J 0.398 w 0 0 m 137.482 0 l S Q BT -/F32 5.9776 Tf 110.987 123.138 Td [(1)]TJ/F31 7.9701 Tf 4.151 -2.812 Td [(In)-354(our)-354(protot)29(yp)-29(e)-354(imple)-1(men)30(tation)-354(w)29(e)-354(pro)30(vide)-354(sample)-355(scatter/ga)1(the)-1(r)-354(routines.)]TJ +/F32 5.9776 Tf 110.987 161.036 Td [(1)]TJ/F31 7.9701 Tf 4.151 -2.812 Td [(In)-354(our)-354(protot)29(yp)-29(e)-354(imple)-1(men)30(tation)-354(w)29(e)-354(pro)30(vide)-354(sample)-355(scatter/ga)1(the)-1(r)-354(routines.)]TJ/F32 5.9776 Tf -4.151 -6.692 Td [(2)]TJ/F31 7.9701 Tf 4.151 -2.813 Td [(This)-320(is)-319(the)-320(nor)1(m)-1(a)1(l)-320(situation)-319(when)-320(the)-319(pattern)-320(of)-319(the)-320(sparse)-319(matrix)-320(is)-319(symmetric,)-327(whic)30(h)-320(is)]TJ -15.243 -9.464 Td [(equiv)59(alen)29(t)-266(to)-267(sa)30(y)-267(tha)1(t)-267(the)-267(in)30(teraction)-267(b)-29(et)29(w)30(een)-267(t)30(w)29(o)-266(v)59(ariables)-267(is)-266(recipro)-30(cal.)-443(If)-266(the)-267(matrix)-266(pattern)]TJ 0 -9.465 Td [(is)-256(non-symmetric)-255(w)29(e)-255(ma)29(y)-255(ha)29(v)30(e)-256(one-w)30(a)29(y)-255(in)29(teractions,)-275(and)-256(th)1(e)-1(se)-255(could)-256(cause)-255(a)-256(situation)-255(in)-256(whic)30(h)]TJ 0 -9.464 Td [(a)-354(b)-30(oundary)-354(p)-29(oin)29(t)-354(is)-354(not)-354(a)-354(halo)-354(p)-30(oin)30(t)-355(f)1(or)-355(its)-354(neigh)30(b)-30(our.)]TJ 0 g 0 G 0 g 0 G -/F8 9.9626 Tf 154.122 -29.888 Td [(3)]TJ +/F8 9.9626 Tf 169.365 -29.888 Td [(3)]TJ 0 g 0 G ET endstream endobj -614 0 obj << +613 0 obj << /Type /Page -/Contents 615 0 R -/Resources 613 0 R +/Contents 614 0 R +/Resources 612 0 R /MediaBox [0 0 595.276 841.89] -/Parent 585 0 R -/Annots [ 610 0 R 611 0 R ] +/Parent 580 0 R +/Annots [ 595 0 R 608 0 R 609 0 R ] >> endobj -610 0 obj << +595 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 0] -/Rect [277.931 489.94 289.886 498.352] +/Rect [219.5 621.446 231.455 629.859] /Subtype /Link /A << /S /GoTo /D (cite.METIS) >> >> endobj -611 0 obj << +608 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [214.626 416.271 221.088 428.311] +/Rect [214.626 559.733 221.088 571.773] /Subtype /Link /A << /S /GoTo /D (Hfootnote.1) >> >> endobj -616 0 obj << -/D [614 0 R /XYZ 99.895 740.998 null] +609 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [155.908 227.991 162.37 240.03] +/Subtype /Link +/A << /S /GoTo /D (Hfootnote.2) >> +>> endobj +615 0 obj << +/D [613 0 R /XYZ 99.895 740.998 null] >> endobj 18 0 obj << -/D [614 0 R /XYZ 99.895 391.694 null] +/D [613 0 R /XYZ 99.895 534.976 null] >> endobj -622 0 obj << -/D [614 0 R /XYZ 115.138 129.79 null] +621 0 obj << +/D [613 0 R /XYZ 115.138 167.688 null] >> endobj -613 0 obj << -/Font << /F8 442 0 R /F17 584 0 R /F30 617 0 R /F7 618 0 R /F16 439 0 R /F11 603 0 R /F10 619 0 R /F14 620 0 R /F27 441 0 R /F32 621 0 R /F31 623 0 R >> +623 0 obj << +/D [613 0 R /XYZ 115.138 158.184 null] +>> endobj +612 0 obj << +/Font << /F8 438 0 R /F17 579 0 R /F30 616 0 R /F7 617 0 R /F16 435 0 R /F11 599 0 R /F10 618 0 R /F14 619 0 R /F27 437 0 R /F32 620 0 R /F31 622 0 R >> /ProcSet [ /PDF /Text ] >> endobj -630 0 obj << -/Length 6144 +628 0 obj << +/Length 5188 >> stream 0 g 0 G 0 g 0 G BT -/F8 9.9626 Tf 175.611 706.129 Td [(p)-28(erforming)-444(a)-444(computational)-444(step,)-472(suc)28(h)-444(as)-445(a)-444(matrix-v)28(ector)-444(pro)-28(duct,)-472(the)]TJ 0 -11.955 Td [(v)56(alues)-383(asso)-28(ciated)-383(with)-383(halo)-383(p)-28(oi)1(n)27(ts)-383(are)-382(reques)-1(t)1(e)-1(d)-382(from)-383(other)-383(domains.)-593(A)]TJ 0 -11.955 Td [(b)-28(oundary)-363(p)-28(oin)28(t)-363(of)-364(a)-363(giv)27(en)-363(domain)-363(is)-364(usually)-363(a)-364(halo)-363(p)-28(oin)28(t)-363(for)-364(some)-363(other)]TJ 0 -11.956 Td [(domain)]TJ -0 0 1 rg 0 0 1 RG -/F7 6.9738 Tf 32.102 3.616 Td [(2)]TJ -0 g 0 G -/F8 9.9626 Tf 4.47 -3.616 Td [(;)-323(therefore)-319(the)-318(c)-1(ar)1(dinalit)27(y)-318(of)-319(the)-318(b)-28(oundary)-318(p)-28(oin)28(ts)-319(set)-318(denotes)-319(the)]TJ -36.572 -11.955 Td [(amoun)28(t)-334(of)-333(data)-333(sen)28(t)-334(to)-333(other)-333(domains.)]TJ -0 g 0 G -/F27 9.9626 Tf -24.906 -21.088 Td [(Ov)32(erlap.)]TJ -0 g 0 G -/F8 9.9626 Tf 47.585 0 Td [(An)-339(o)28(v)28(erlap)-339(p)-28(oin)28(t)-339(is)-339(a)-339(b)-28(oundary)-339(p)-28(oin)28(t)-339(assigned)-339(to)-339(m)28(ultiple)-339(domains.)]TJ -22.679 -11.955 Td [(An)28(y)-297(op)-28(eration)-296(that)-297(in)28(v)28(olv)27(es)-297(an)-296(o)28(v)27(erlap)-296(p)-28(oin)28(t)-297(has)-297(to)-297(b)-27(e)-297(replicated)-297(for)-296(e)-1(ac)28(h)]TJ 0 -11.955 Td [(assignmen)28(t.)]TJ -24.906 -20.798 Td [(Ov)28(erlap)-266(p)-27(oin)27(t)1(s)-266(do)-265(not)-266(usually)-265(exist)-266(in)-265(the)-266(basic)-265(data)-266(distrib)1(utions;)-288(ho)27(w)28(ev)28(er)-266(they)]TJ 0 -11.955 Td [(are)-347(a)-347(feature)-348(of)-347(Domain)-347(Decomp)-28(osition)-347(Sc)28(h)28(w)27(arz)-347(preconditioners)-347(whic)28(h)-347(are)-348(the)]TJ 0 -11.955 Td [(sub)-56(j)1(e)-1(ct)-333(of)-333(related)-333(re)-1(searc)28(h)-333(w)28(ork)-334([)]TJ +/F8 9.9626 Tf 150.705 706.129 Td [(Ov)28(erlap)-266(p)-27(oin)27(t)1(s)-266(do)-265(not)-266(usually)-265(exist)-266(in)-265(the)-266(basic)-265(data)-266(distrib)1(utions;)-288(ho)27(w)28(ev)28(er)-266(they)]TJ 0 -11.955 Td [(are)-347(a)-347(feature)-348(of)-347(Domain)-347(Decomp)-28(osition)-347(Sc)28(h)28(w)27(arz)-347(preconditioners)-347(whic)28(h)-347(are)-348(the)]TJ 0 -11.955 Td [(sub)-56(j)1(e)-1(ct)-333(of)-333(related)-334(r)1(e)-1(searc)28(h)-333(w)28(ork)-334([)]TJ 1 0 0 rg 1 0 0 RG [(4)]TJ 0 g 0 G @@ -3421,12 +3466,12 @@ BT 1 0 0 rg 1 0 0 RG [-333(3)]TJ 0 g 0 G - [(].)]TJ 14.944 -12.246 Td [(W)83(e)-313(denote)-314(the)-313(se)-1(t)1(s)-314(of)-314(in)28(ternal,)-317(b)-28(oundary)-313(and)-314(halo)-313(p)-28(oin)28(ts)-314(for)-314(a)-313(giv)28(en)-314(sub)-28(do-)]TJ -14.944 -11.955 Td [(main)-338(b)28(y)]TJ/F14 9.9626 Tf 38.841 0 Td [(I)]TJ/F8 9.9626 Tf 6.16 0 Td [(,)]TJ/F14 9.9626 Tf 6.149 0 Td [(B)]TJ/F8 9.9626 Tf 10.216 0 Td [(and)]TJ/F14 9.9626 Tf 19.421 0 Td [(H)]TJ/F8 9.9626 Tf 8.51 0 Td [(.)-459(Eac)28(h)-338(s)-1(u)1(b)-28(domain)-338(is)-339(assigned)-338(to)-338(one)-338(pro)-28(cess;)-341(eac)28(h)-338(pro)-28(cess)]TJ -89.297 -11.955 Td [(usually)-280(o)28(wns)-280(one)-281(sub)-27(domain,)-291(although)-280(the)-280(user)-280(ma)28(y)-281(c)28(ho)-28(ose)-280(to)-280(assign)-280(more)-280(than)]TJ 0 -11.955 Td [(one)-294(sub)-28(domain)-294(to)-294(a)-294(pro)-28(cess.)-432(If)-294(eac)28(h)-294(pro)-28(cess)]TJ/F11 9.9626 Tf 192.296 0 Td [(i)]TJ/F8 9.9626 Tf 6.363 0 Td [(o)28(wns)-294(one)-295(sub)-27(domain,)-302(the)-294(n)27(um)28(b)-28(er)]TJ -198.659 -11.955 Td [(of)-296(ro)27(ws)-296(in)-297(the)-296(lo)-28(cal)-296(sparse)-297(matrix)-296(is)]TJ/F14 9.9626 Tf 156.215 0 Td [(jI)]TJ/F10 6.9738 Tf 8.193 -1.495 Td [(i)]TJ/F14 9.9626 Tf 3.316 1.495 Td [(j)]TJ/F8 9.9626 Tf 4.247 0 Td [(+)]TJ/F14 9.9626 Tf 9.228 0 Td [(jB)]TJ/F10 6.9738 Tf 9.311 -1.495 Td [(i)]TJ/F14 9.9626 Tf 3.317 1.495 Td [(j)]TJ/F8 9.9626 Tf 2.768 0 Td [(,)-304(and)-296(the)-297(n)28(um)28(b)-28(er)-296(of)-297(lo)-27(c)-1(al)-296(columns)]TJ -196.595 -11.956 Td [(\050i.e.)-515(those)-357(f)1(or)-357(whic)28(h)-357(there)-357(exists)-357(at)-357(least)-356(one)-357(non-zero)-357(en)28(try)-357(in)-357(the)-356(lo)-28(cal)-357(ro)28(ws\051)]TJ 0 -11.955 Td [(is)]TJ/F14 9.9626 Tf 10.018 0 Td [(jI)]TJ/F10 6.9738 Tf 8.192 -1.494 Td [(i)]TJ/F14 9.9626 Tf 3.317 1.494 Td [(j)]TJ/F8 9.9626 Tf 4.981 0 Td [(+)]TJ/F14 9.9626 Tf 9.963 0 Td [(jB)]TJ/F10 6.9738 Tf 9.311 -1.494 Td [(i)]TJ/F14 9.9626 Tf 3.317 1.494 Td [(j)]TJ/F8 9.9626 Tf 4.981 0 Td [(+)]TJ/F14 9.9626 Tf 9.962 0 Td [(jH)]TJ/F10 6.9738 Tf 11.181 -1.494 Td [(i)]TJ/F14 9.9626 Tf 3.317 1.494 Td [(j)]TJ/F8 9.9626 Tf 2.768 0 Td [(.)]TJ + [(].)]TJ 14.944 -11.978 Td [(W)83(e)-313(denote)-314(the)-313(se)-1(t)1(s)-314(of)-314(in)28(ternal,)-317(b)-28(oundary)-313(and)-314(halo)-313(p)-28(oin)28(ts)-314(for)-314(a)-313(giv)28(en)-314(sub)-28(do-)]TJ -14.944 -11.956 Td [(main)-338(b)28(y)]TJ/F14 9.9626 Tf 38.841 0 Td [(I)]TJ/F8 9.9626 Tf 6.16 0 Td [(,)]TJ/F14 9.9626 Tf 6.149 0 Td [(B)]TJ/F8 9.9626 Tf 10.216 0 Td [(and)]TJ/F14 9.9626 Tf 19.421 0 Td [(H)]TJ/F8 9.9626 Tf 8.51 0 Td [(.)-459(Eac)28(h)-338(s)-1(u)1(b)-28(domain)-338(is)-339(assigned)-338(to)-338(one)-338(pro)-28(cess;)-341(eac)28(h)-338(pro)-28(cess)]TJ -89.297 -11.955 Td [(usually)-280(o)28(wns)-280(one)-281(sub)-27(domain,)-291(although)-280(the)-280(user)-280(ma)28(y)-281(c)28(ho)-28(ose)-280(to)-280(assign)-280(more)-280(than)]TJ 0 -11.955 Td [(one)-294(sub)-28(domain)-294(to)-294(a)-294(pro)-28(cess.)-432(If)-294(eac)28(h)-294(pro)-28(cess)]TJ/F11 9.9626 Tf 192.296 0 Td [(i)]TJ/F8 9.9626 Tf 6.363 0 Td [(o)28(wns)-294(one)-295(sub)-27(domain,)-302(the)-294(n)27(um)28(b)-28(er)]TJ -198.659 -11.955 Td [(of)-296(ro)27(ws)-296(in)-297(the)-296(lo)-28(cal)-296(sparse)-297(matrix)-296(is)]TJ/F14 9.9626 Tf 156.215 0 Td [(jI)]TJ/F10 6.9738 Tf 8.193 -1.494 Td [(i)]TJ/F14 9.9626 Tf 3.316 1.494 Td [(j)]TJ/F8 9.9626 Tf 4.247 0 Td [(+)]TJ/F14 9.9626 Tf 9.228 0 Td [(jB)]TJ/F10 6.9738 Tf 9.311 -1.494 Td [(i)]TJ/F14 9.9626 Tf 3.317 1.494 Td [(j)]TJ/F8 9.9626 Tf 2.768 0 Td [(,)-304(and)-296(the)-297(n)28(um)28(b)-28(er)-296(of)-297(lo)-27(c)-1(al)-296(columns)]TJ -196.595 -11.955 Td [(\050i.e.)-515(those)-357(f)1(or)-357(whic)28(h)-357(there)-357(exists)-357(at)-357(least)-356(one)-357(non-zero)-357(en)28(try)-357(in)-357(the)-356(lo)-28(cal)-357(ro)28(ws\051)]TJ 0 -11.955 Td [(is)]TJ/F14 9.9626 Tf 10.018 0 Td [(jI)]TJ/F10 6.9738 Tf 8.192 -1.495 Td [(i)]TJ/F14 9.9626 Tf 3.317 1.495 Td [(j)]TJ/F8 9.9626 Tf 4.981 0 Td [(+)]TJ/F14 9.9626 Tf 9.963 0 Td [(jB)]TJ/F10 6.9738 Tf 9.311 -1.495 Td [(i)]TJ/F14 9.9626 Tf 3.317 1.495 Td [(j)]TJ/F8 9.9626 Tf 4.981 0 Td [(+)]TJ/F14 9.9626 Tf 9.962 0 Td [(jH)]TJ/F10 6.9738 Tf 11.182 -1.495 Td [(i)]TJ/F14 9.9626 Tf 3.316 1.495 Td [(j)]TJ/F8 9.9626 Tf 2.768 0 Td [(.)]TJ 0 g 0 G 0 g 0 G 0 g 0 G ET -1 0 0 1 222.462 469.598 cm +1 0 0 1 222.462 584.018 cm q 0 -1 1 0 0 0 cm q @@ -3438,50 +3483,77 @@ Q Q Q 0 g 0 G -1 0 0 1 -222.462 -469.598 cm +1 0 0 1 -222.462 -584.018 cm BT -/F8 9.9626 Tf 259.948 263.66 Td [(Figure)-333(2:)-445(P)28(oin)28(t)-333(class\014cation.)]TJ +/F8 9.9626 Tf 259.948 378.08 Td [(Figure)-333(2:)-445(P)28(oin)28(t)-333(class\014cation.)]TJ 0 g 0 G 0 g 0 G - -94.299 -23.938 Td [(This)-267(classi\014cation)-266(of)-267(mesh)-267(p)-27(oin)27(ts)-266(guides)-267(the)-267(naming)-266(sc)27(heme)-266(that)-267(w)28(e)-267(adopted)]TJ -14.944 -11.955 Td [(in)-474(the)-474(library)-474(in)28(ternals)-474(and)-474(in)-474(the)-474(data)-474(structures.)-866(W)83(e)-474(explicitly)-474(note)-474(that)]TJ 0 -11.955 Td [(\134Halo")-333(p)-28(oin)28(ts)-334(are)-333(also)-333(often)-334(called)-333(\134ghost")-333(p)-28(oin)28(ts)-334(in)-333(the)-333(literature.)]TJ/F16 11.9552 Tf 0 -29.431 Td [(2.2)-1125(Library)-375(con)31(ten)31(ts)]TJ/F8 9.9626 Tf 0 -18.931 Td [(The)-333(PSBLAS)-334(libr)1(a)-1(r)1(y)-334(consists)-333(of)-334(v)56(arious)-333(classes)-334(of)-333(subroutines:)]TJ + -94.299 -23.402 Td [(This)-267(classi\014cation)-266(of)-267(mesh)-267(p)-27(oin)27(ts)-266(guides)-267(the)-267(naming)-266(sc)27(heme)-266(that)-267(w)28(e)-267(adopted)]TJ -14.944 -11.955 Td [(in)-474(the)-474(library)-474(in)28(ternals)-474(and)-474(in)-474(the)-474(data)-474(structures.)-866(W)83(e)-474(explicitly)-474(note)-474(that)]TJ 0 -11.955 Td [(\134Halo")-333(p)-28(oin)28(ts)-334(are)-333(also)-333(often)-334(called)-333(\134ghost")-333(p)-28(oin)28(ts)-334(in)-333(the)-333(literature.)]TJ/F16 11.9552 Tf 0 -28.009 Td [(2.2)-1125(Library)-375(con)31(ten)31(ts)]TJ/F8 9.9626 Tf 0 -18.432 Td [(The)-333(PSBLAS)-334(libr)1(a)-1(r)1(y)-334(consists)-333(of)-334(v)56(arious)-333(classes)-334(of)-333(subroutines:)]TJ 0 g 0 G -ET -q -1 0 0 1 150.705 158.174 cm -[]0 d 0 J 0.398 w 0 0 m 137.482 0 l S -Q -BT -/F32 5.9776 Tf 161.797 151.532 Td [(2)]TJ/F31 7.9701 Tf 4.151 -2.813 Td [(This)-319(i)-1(s)-319(the)-320(no)1(rmal)-320(situation)-319(when)-320(the)-319(pattern)-320(of)-319(the)-320(sparse)-319(matrix)-320(is)-319(symmetric,)-327(whic)30(h)-320(is)]TJ -15.243 -9.464 Td [(equiv)59(alen)30(t)-267(to)-267(sa)30(y)-266(that)-267(the)-267(in)30(teraction)-267(b)-29(et)29(w)30(een)-267(t)30(w)29(o)-266(v)59(ariables)-267(is)-266(recipro)-30(cal.)-443(If)-266(the)-267(matrix)-266(pattern)]TJ 0 -9.465 Td [(is)-256(non-sy)1(m)-1(metric)-255(w)29(e)-255(ma)29(y)-255(ha)29(v)30(e)-256(one-w)30(a)29(y)-255(in)29(teractions,)-275(and)-255(these)-256(could)-256(cause)-255(a)-256(situation)-255(in)-256(whic)30(h)]TJ 0 -9.464 Td [(a)-354(b)-30(ounda)1(ry)-355(p)-29(oin)29(t)-354(is)-354(not)-354(a)-354(halo)-354(p)-30(oin)30(t)-354(for)-355(its)-354(neigh)30(b)-30(our.)]TJ +/F27 9.9626 Tf 0 -19.994 Td [(Computational)-383(routines)]TJ +0 g 0 G +/F8 9.9626 Tf 124.174 0 Td [(comprising:)]TJ +0 g 0 G +/F14 9.9626 Tf -87.312 -20.016 Td [(\017)]TJ +0 g 0 G +/F8 9.9626 Tf 9.962 0 Td [(Sparse)-333(matrix)-334(b)28(y)-333(dense)-334(matrix)-333(pro)-28(du)1(c)-1(t;)]TJ +0 g 0 G +/F14 9.9626 Tf -9.962 -15.986 Td [(\017)]TJ +0 g 0 G +/F8 9.9626 Tf 9.962 0 Td [(Sparse)-333(triangular)-334(systems)-333(solution)-333(for)-334(bl)1(o)-28(c)27(k)-333(diagonal)-333(matrices;)]TJ +0 g 0 G +/F14 9.9626 Tf -9.962 -15.985 Td [(\017)]TJ +0 g 0 G +/F8 9.9626 Tf 9.962 0 Td [(V)83(ector)-333(and)-333(matrix)-334(norms;)]TJ +0 g 0 G +/F14 9.9626 Tf -9.962 -15.986 Td [(\017)]TJ +0 g 0 G +/F8 9.9626 Tf 9.962 0 Td [(Dense)-333(matrix)-334(sums;)]TJ +0 g 0 G +/F14 9.9626 Tf -9.962 -15.986 Td [(\017)]TJ +0 g 0 G +/F8 9.9626 Tf 9.962 0 Td [(Dot)-333(pro)-28(ducts.)]TJ +0 g 0 G +/F27 9.9626 Tf -46.824 -20.016 Td [(Comm)32(unication)-383(r)-1(ou)1(t)-1(ines)]TJ +0 g 0 G +/F8 9.9626 Tf 128.47 0 Td [(handling)-333(halo)-333(and)-334(o)28(v)28(erlap)-333(com)-1(m)28(unications;)]TJ 0 g 0 G +/F27 9.9626 Tf -128.47 -20.016 Td [(Data)-383(managem)-1(e)1(n)31(t)-383(and)-383(auxiliary)-384(routines)]TJ 0 g 0 G -/F8 9.9626 Tf 169.365 -29.888 Td [(4)]TJ +/F8 9.9626 Tf 210.717 0 Td [(including:)]TJ +0 g 0 G +/F14 9.9626 Tf -173.855 -20.016 Td [(\017)]TJ +0 g 0 G +/F8 9.9626 Tf 9.962 0 Td [(P)28(arallel)-334(en)28(vironmen)28(t)-333(managemen)27(t)]TJ +0 g 0 G + 122.541 -29.888 Td [(4)]TJ 0 g 0 G ET endstream endobj -629 0 obj << +627 0 obj << /Type /Page -/Contents 630 0 R -/Resources 628 0 R +/Contents 628 0 R +/Resources 626 0 R /MediaBox [0 0 595.276 841.89] -/Parent 585 0 R -/Annots [ 612 0 R 625 0 R 626 0 R ] +/Parent 580 0 R +/Annots [ 610 0 R 611 0 R ] >> endobj -627 0 obj << +625 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (./figures/points.pdf) /PTEX.PageNumber 1 -/PTEX.InfoDict 634 0 R +/PTEX.InfoDict 631 0 R /BBox [0 0 274 308] /Resources << /ProcSet [ /PDF /Text ] /ExtGState << -/R7 635 0 R ->>/Font << /R8 636 0 R>> +/R7 632 0 R +>>/Font << /R8 633 0 R>> >> -/Length 637 0 R +/Length 634 0 R /Filter /FlateDecode >> stream @@ -3489,360 +3561,320 @@ x – 󣄠¹3ÊBü=®§«æ±bA‡HŒ}Ï©c·í²»?­é”ׄÿäïÍeùö]_?ü¾¤Ó©d êwßGüðaù´d"®òçæ²¾¾ä}ÍíëÕûe4­ß ,äýÔ×sÿ»º,_ýx÷Ç/w×·¯®~[¾»ZÞ.ø›Œ1¸ð™âuóâ¯ïÿ¼ûùúáoO*žþx/þÃõí½Î22Tø<ᜇd†&Âoî/×ïV˜âÿõèCê1V^õd¨æõãR ¬Û9ŸÎç¶^–ºµÓ¾ÍšÚýÝz¦zõ¯7‹!€S®ûj짔êJÚR¿–ðWZSöN•m˜´ ide«3çûfyÿõROÛú×|J_F¿~]~z2ò–}×òVÐÕämë¦Î€sQ<I<³¦uiüd¸r͵9.Ö¤¢ÆR’ÉÑãY~ОÐCÑÝ¥Ÿ}öçÙ^â<3LA ‰c‹YÒ¶®ôçY¯qž&mCÙØâÌû懣ç—Ñ#|H–_rƧšÇÒ³,wš0s>}yüÇ5ÒNóË p%U¤ –ðW@E’§$§•|¡pxõE`&ÆøåU ™¤ó«›%AÝIUÍ0Gš]ý‘&ûÖM’ î Jšx÷¬…T.ù)~¼C²8˜}~‚­ÛÍWÛ¢íÁvKÑö¶K,8ÛÍ—&†`[C*—ü¨ONÔÇs­ƒ ½m‚ê ò9؆Áu¶!×`{P9¦m‚êKI7oÛB*—ü¨O샹~ñ̳·Ç'­¡Á^ÝIaÏvRy!œzw'ó¤`Íx"0.Ѥb'…iÄù|ùÌs¼žP:-%X/[´^º“#Àa°há…dÞPÓY/)Z‡Ýqˆ&-VŠÖ½ON¬Çtnƒ®G±À¹ÍY–& é›Ë’וB¿Ìœ¤¡¹M…ÁnngäŽ%¤Ò#ØœÃÉÙÇ‚"d;’Àô)ùÃ(˜\X‹³Ž¥²£0}Z¡pø#`Ó†Sò‹%Hvt§Ð̧f£`ú`-Î+”ÐŽQ4ó9ƒ…Ç,x›O/,îf,z»âißn«ªÝìv«$½úæ-ÜŒå`?›“禩™|,ˆ7cïó™;Ìñº@!osõé]Š¦?ݲta0€yýÒ¥¤Zdy›«OïRÜ<%9­äƒ€[}拇ú6m8uõIPžþhǃf>m))…YÞæê“ Ò<%9­äƒ€[}ækçÿÜæ“WO’rõ= A} £ Ñ0'Ë 9‘S,irêÕ÷+\_ã­uâÝ¿›ÑÆE?æóé{¦ƒÙÇá'È‹ÎB#4_²$&†`[–’qq‘‘&/> Mõ5^_'†`[Bý˜OõºÖÁ–%©¡ ª/]07o[šqq ’&/M Íõ5^_'nÞ¶†4.ú1Ÿ6ØsýÜ¥%]Š!ƒCÞgVe@Ù–‹’…$)š5-ƒÃØ5}‡ä²?ÖLg+‡ |>{é>hO‘jøX5~,ê>–0àxÕ},1’š¬ác ”ø±ŠûX€5‹ûXb$3òø³ Ú…t¡í¡=Å>tpº8Õ‡’Ô$iÎ>´-ö¡Ç%ÀšTÔXJR#ÞgL¼í“-J/0®jãȶw.Þâªick£Z,”Ô¤š^”Ñk·ì«éUÝ ‹¯WjÇ‚µÛçƒ.ÁºUE³zÉgýãPˆ,é"›Ñe±ûÌ‹:t˜!*%~ Ö *«QÊÒ@emPMÓ1:¾Þ’àX¼÷(˜®4æ ¤Nƒ¾]þÎJ¦' endstream endobj -634 0 obj +631 0 obj << /Producer (ESP Ghostscript 815.03) /CreationDate (D:20070123225315) /ModDate (D:20070123225315) >> endobj -635 0 obj +632 0 obj << /Type /ExtGState /OPM 1 >> endobj -636 0 obj +633 0 obj << /BaseFont /Times-Roman /Type /Font /Subtype /Type1 >> endobj -637 0 obj +634 0 obj 1397 endobj -612 0 obj << -/Type /Annot -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [206.717 667.33 213.179 679.369] -/Subtype /Link -/A << /S /GoTo /D (Hfootnote.2) >> ->> endobj -625 0 obj << +610 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 0] -/Rect [294.665 567.606 301.639 576.019] +/Rect [294.665 681.222 301.639 689.635] /Subtype /Link /A << /S /GoTo /D (cite.2007c) >> >> endobj -626 0 obj << +611 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 0] -/Rect [305.735 567.606 312.709 576.019] +/Rect [305.735 681.222 312.709 689.635] /Subtype /Link /A << /S /GoTo /D (cite.2007d) >> >> endobj -631 0 obj << -/D [629 0 R /XYZ 150.705 740.998 null] +629 0 obj << +/D [627 0 R /XYZ 150.705 740.998 null] >> endobj -632 0 obj << -/D [629 0 R /XYZ 303.562 275.615 null] +630 0 obj << +/D [627 0 R /XYZ 303.562 390.036 null] >> endobj 22 0 obj << -/D [629 0 R /XYZ 150.705 198.682 null] ->> endobj -633 0 obj << -/D [629 0 R /XYZ 165.948 158.184 null] +/D [627 0 R /XYZ 150.705 314.792 null] >> endobj -628 0 obj << -/Font << /F8 442 0 R /F7 618 0 R /F27 441 0 R /F14 620 0 R /F11 603 0 R /F10 619 0 R /F16 439 0 R /F32 621 0 R /F31 623 0 R >> -/XObject << /Im2 627 0 R >> +626 0 obj << +/Font << /F8 438 0 R /F14 619 0 R /F11 599 0 R /F10 618 0 R /F16 435 0 R /F27 437 0 R >> +/XObject << /Im2 625 0 R >> /ProcSet [ /PDF /Text ] >> endobj -644 0 obj << -/Length 6553 +641 0 obj << +/Length 6324 >> stream 0 g 0 G 0 g 0 G 0 g 0 G BT -/F27 9.9626 Tf 99.895 706.129 Td [(Computational)-383(rout)-1(ines)]TJ -0 g 0 G -/F8 9.9626 Tf 124.174 0 Td [(comprising:)]TJ -0 g 0 G -/F14 9.9626 Tf -87.312 -18.525 Td [(\017)]TJ -0 g 0 G -/F8 9.9626 Tf 9.963 0 Td [(Sparse)-333(matrix)-334(b)28(y)-333(dense)-333(m)-1(atr)1(ix)-334(pro)-27(duct;)]TJ -0 g 0 G -/F14 9.9626 Tf -9.963 -14.54 Td [(\017)]TJ -0 g 0 G -/F8 9.9626 Tf 9.963 0 Td [(Sparse)-333(triangular)-333(sys)-1(tems)-333(solution)-333(for)-333(blo)-28(c)28(k)-334(diagonal)-333(matrices;)]TJ -0 g 0 G -/F14 9.9626 Tf -9.963 -14.54 Td [(\017)]TJ -0 g 0 G -/F8 9.9626 Tf 9.963 0 Td [(V)83(ector)-333(and)-333(matrix)-334(norms;)]TJ -0 g 0 G -/F14 9.9626 Tf -9.963 -14.54 Td [(\017)]TJ -0 g 0 G -/F8 9.9626 Tf 9.963 0 Td [(Dense)-333(matrix)-334(sums;)]TJ -0 g 0 G -/F14 9.9626 Tf -9.963 -14.541 Td [(\017)]TJ -0 g 0 G -/F8 9.9626 Tf 9.963 0 Td [(Dot)-333(pro)-28(ducts.)]TJ -0 g 0 G -/F27 9.9626 Tf -46.825 -18.525 Td [(Comm)32(unication)-384(routines)]TJ -0 g 0 G -/F8 9.9626 Tf 128.471 0 Td [(handling)-333(halo)-333(and)-334(o)28(v)28(erlap)-333(comm)27(unications;)]TJ -0 g 0 G -/F27 9.9626 Tf -128.471 -18.525 Td [(Data)-383(m)-1(anagemen)32(t)-383(and)-383(auxiliary)-384(routines)]TJ -0 g 0 G -/F8 9.9626 Tf 210.717 0 Td [(including:)]TJ -0 g 0 G -/F14 9.9626 Tf -173.855 -18.525 Td [(\017)]TJ -0 g 0 G -/F8 9.9626 Tf 9.963 0 Td [(P)28(arallel)-333(en)27(vironmen)28(t)-333(managemen)28(t)]TJ -0 g 0 G -/F14 9.9626 Tf -9.963 -14.54 Td [(\017)]TJ +/F14 9.9626 Tf 136.757 706.129 Td [(\017)]TJ 0 g 0 G /F8 9.9626 Tf 9.963 0 Td [(Comm)28(unication)-334(d)1(e)-1(scriptor)1(s)-334(allo)-28(cation;)]TJ 0 g 0 G -/F14 9.9626 Tf -9.963 -14.54 Td [(\017)]TJ +/F14 9.9626 Tf -9.963 -15.986 Td [(\017)]TJ 0 g 0 G /F8 9.9626 Tf 9.963 0 Td [(Dense)-333(and)-334(sparse)-333(matrix)-333(allo)-28(cation;)]TJ 0 g 0 G -/F14 9.9626 Tf -9.963 -14.54 Td [(\017)]TJ +/F14 9.9626 Tf -9.963 -15.985 Td [(\017)]TJ 0 g 0 G /F8 9.9626 Tf 9.963 0 Td [(Dense)-333(and)-334(sparse)-333(matrix)-333(build)-334(an)1(d)-334(up)-27(date;)]TJ 0 g 0 G -/F14 9.9626 Tf -9.963 -14.54 Td [(\017)]TJ +/F14 9.9626 Tf -9.963 -15.986 Td [(\017)]TJ 0 g 0 G /F8 9.9626 Tf 9.963 0 Td [(Sparse)-333(matrix)-334(and)-333(data)-333(distribution)-333(prepro)-28(cessing.)]TJ 0 g 0 G -/F27 9.9626 Tf -46.825 -18.525 Td [(Preconditioner)-383(routi)-1(n)1(es)]TJ +/F27 9.9626 Tf -46.825 -20.015 Td [(Preconditioner)-383(routi)-1(n)1(es)]TJ 0 g 0 G 0 g 0 G - 0 -18.525 Td [(Iterativ)32(e)-384(metho)-32(ds)]TJ + 0 -20.016 Td [(Iterativ)32(e)-384(metho)-32(ds)]TJ 0 g 0 G -/F8 9.9626 Tf 94.307 0 Td [(a)-333(subset)-334(of)-333(Krylo)28(v)-333(s)-1(ub)1(s)-1(p)1(ac)-1(e)-333(iterativ)28(e)-333(me)-1(th)1(o)-28(ds)]TJ -94.307 -17.125 Td [(The)-391(follo)27(wing)-391(naming)-391(sc)27(heme)-391(has)-392(b)-27(een)-392(adopted)-391(for)-391(all)-392(the)-391(sym)27(b)-27(ols)-392(in)28(ternally)]TJ 0 -11.956 Td [(de\014ned)-333(in)-334(the)-333(PSBLAS)-333(soft)28(w)27(are)-333(pac)28(k)55(age:)]TJ +/F8 9.9626 Tf 94.307 0 Td [(a)-333(subset)-334(of)-333(Krylo)28(v)-334(sub)1(s)-1(p)1(ac)-1(e)-333(iterativ)28(e)-333(me)-1(th)1(o)-28(ds)]TJ -94.307 -19.993 Td [(The)-391(follo)27(wing)-391(naming)-391(sc)27(heme)-391(has)-392(b)-27(een)-392(adopted)-391(for)-391(all)-392(the)-391(sym)27(b)-27(ols)-392(in)28(ternally)]TJ 0 -11.956 Td [(de\014ned)-333(in)-334(the)-333(PSBLAS)-333(soft)28(w)27(are)-333(pac)28(k)55(age:)]TJ 0 g 0 G -/F14 9.9626 Tf 14.944 -17.125 Td [(\017)]TJ +/F14 9.9626 Tf 14.944 -19.993 Td [(\017)]TJ 0 g 0 G /F8 9.9626 Tf 9.963 0 Td [(all)-275(the)-275(sym)28(b)-28(ols)-275(\050i.e.)-425(subroutine)-275(names,)-286(data)-275(t)28(yp)-28(es...\051)-425(are)-275(pre\014xed)-275(b)28(y)]TJ/F30 9.9626 Tf 297.883 0 Td [(psb_)]TJ 0 g 0 G -/F14 9.9626 Tf -307.846 -18.525 Td [(\017)]TJ +/F14 9.9626 Tf -307.846 -20.016 Td [(\017)]TJ 0 g 0 G /F8 9.9626 Tf 9.963 0 Td [(all)-333(the)-334(data)-333(t)28(yp)-28(e)-333(names)-334(are)-333(su\016xed)-333(b)27(y)]TJ/F30 9.9626 Tf 173.378 0 Td [(_type)]TJ 0 g 0 G -/F14 9.9626 Tf -183.341 -18.525 Td [(\017)]TJ +/F14 9.9626 Tf -183.341 -20.015 Td [(\017)]TJ 0 g 0 G /F8 9.9626 Tf 9.963 0 Td [(all)-333(the)-334(constan)28(t)-333(v)55(alues)-333(are)-333(su\016xed)-334(b)28(y)]TJ/F30 9.9626 Tf 167.622 0 Td [(_)]TJ 0 g 0 G -/F14 9.9626 Tf -177.585 -18.525 Td [(\017)]TJ +/F14 9.9626 Tf -177.585 -20.016 Td [(\017)]TJ 0 g 0 G /F8 9.9626 Tf 9.963 0 Td [(all)-473(the)-474(subroutine)-473(names)-474(follo)28(w)-474(th)1(e)-474(rule)]TJ/F30 9.9626 Tf 186.5 0 Td [(psb_xxname)]TJ/F8 9.9626 Tf 57.021 0 Td [(where)]TJ/F30 9.9626 Tf 30.205 0 Td [(xx)]TJ/F8 9.9626 Tf 15.178 0 Td [(can)-473(b)-28(e)]TJ -288.904 -11.955 Td [(either:)]TJ 0 g 0 G -/F27 9.9626 Tf 11.208 -18.525 Td [({)]TJ +/F27 9.9626 Tf 11.208 -20.016 Td [({)]TJ 0 g 0 G /F30 9.9626 Tf 10.71 0 Td [(ge)]TJ/F8 9.9626 Tf 10.46 0 Td [(:)-444(the)-334(routine)-333(is)-333(related)-334(to)-333(dense)-333(data,)]TJ 0 g 0 G -/F27 9.9626 Tf -21.17 -14.54 Td [({)]TJ +/F27 9.9626 Tf -21.17 -15.986 Td [({)]TJ 0 g 0 G /F30 9.9626 Tf 10.71 0 Td [(sp)]TJ/F8 9.9626 Tf 10.46 0 Td [(:)-444(the)-334(routine)-333(is)-333(related)-334(to)-333(sparse)-333(data,)]TJ 0 g 0 G -/F27 9.9626 Tf -21.17 -14.54 Td [({)]TJ +/F27 9.9626 Tf -21.17 -15.985 Td [({)]TJ 0 g 0 G /F30 9.9626 Tf 10.71 0 Td [(cd)]TJ/F8 9.9626 Tf 10.46 0 Td [(:)-444(the)-334(routine)-333(is)-333(related)-334(to)-333(comm)28(unication)-334(descriptor)-333(\050see)]TJ 0 0 1 rg 0 0 1 RG [-333(3)]TJ 0 g 0 G - [(\051.)]TJ -32.378 -18.525 Td [(F)83(or)-275(example)-276(the)]TJ/F30 9.9626 Tf 72.33 0 Td [(psb_geins)]TJ/F8 9.9626 Tf 47.073 0 Td [(,)]TJ/F30 9.9626 Tf 5.628 0 Td [(psb_spins)]TJ/F8 9.9626 Tf 49.818 0 Td [(and)]TJ/F30 9.9626 Tf 18.797 0 Td [(psb_cdins)]TJ/F8 9.9626 Tf 49.818 0 Td [(p)-28(erform)-275(the)-276(same)]TJ -243.464 -11.956 Td [(action)-343(\050see)]TJ + [(\051.)]TJ -32.378 -20.016 Td [(F)83(or)-275(example)-276(the)]TJ/F30 9.9626 Tf 72.33 0 Td [(psb_geins)]TJ/F8 9.9626 Tf 47.073 0 Td [(,)]TJ/F30 9.9626 Tf 5.628 0 Td [(psb_spins)]TJ/F8 9.9626 Tf 49.818 0 Td [(and)]TJ/F30 9.9626 Tf 18.797 0 Td [(psb_cdins)]TJ/F8 9.9626 Tf 49.818 0 Td [(p)-28(erform)-275(the)-276(same)]TJ -243.464 -11.955 Td [(action)-343(\050see)]TJ 0 0 1 rg 0 0 1 RG [-343(6)]TJ 0 g 0 G - [(\051)-343(on)-342(dense)-343(matrices,)-345(s)-1(p)1(arse)-343(matrices)-343(and)-343(comm)28(unication)-343(de-)]TJ 0 -11.955 Td [(scriptors)-357(resp)-28(ectiv)28(ely)83(.)-514(In)27(terface)-356(o)27(v)28(erloading)-357(allo)28(ws)-357(the)-357(u)1(s)-1(age)-356(of)-357(the)-357(same)]TJ 0 -11.955 Td [(subroutine)-333(in)28(terfaces)-334(for)-333(b)-28(oth)-333(real)-333(and)-334(complex)-333(data.)]TJ -24.907 -17.125 Td [(In)-320(the)-320(desc)-1(r)1(iption)-321(of)-320(the)-320(subroutines,)-323(argumen)28(ts)-320(or)-320(argumen)27(t)-320(en)28(tries)-320(are)-320(clas)-1(si-)]TJ 0 -11.955 Td [(\014ed)-333(as:)]TJ + [(\051)-343(on)-342(dense)-343(matrices,)-345(s)-1(p)1(arse)-343(matrices)-343(and)-343(comm)28(unication)-343(de-)]TJ 0 -11.955 Td [(scriptors)-357(resp)-28(ectiv)28(ely)83(.)-514(In)27(terface)-356(o)27(v)28(erloading)-357(allo)28(ws)-357(the)-357(u)1(s)-1(age)-356(of)-357(the)-357(same)]TJ 0 -11.956 Td [(subroutine)-333(in)28(terfaces)-334(for)-333(b)-28(oth)-333(real)-333(and)-334(complex)-333(data.)]TJ -24.907 -19.993 Td [(In)-320(the)-320(desc)-1(r)1(iption)-321(of)-320(the)-320(subroutines,)-323(argumen)28(ts)-320(or)-320(argumen)27(t)-320(en)28(tries)-320(are)-320(clas)-1(si-)]TJ 0 -11.955 Td [(\014ed)-333(as:)]TJ 0 g 0 G -/F27 9.9626 Tf 0 -17.125 Td [(global)]TJ +/F27 9.9626 Tf 0 -19.993 Td [(global)]TJ 0 g 0 G -/F8 9.9626 Tf 34.738 0 Td [(F)83(or)-228(input)-228(argumen)28(ts,)-250(th)1(e)-229(v)56(alue)-229(m)28(ust)-228(b)-28(e)-228(the)-228(same)-229(on)-228(all)-228(pro)-28(cesses)-229(par)1(tic)-1(i)1(-)]TJ -9.831 -11.955 Td [(pating)-252(in)-253(the)-253(subrouti)1(ne)-253(call;)-280(for)-252(output)-253(argumen)28(ts)-252(the)-253(v)56(alue)-253(is)-253(guaran)28(teed)]TJ 0 -11.955 Td [(to)-333(b)-28(e)-333(the)-334(same.)]TJ +/F8 9.9626 Tf 34.738 0 Td [(F)83(or)-228(input)-228(argumen)28(ts,)-250(th)1(e)-229(v)56(alue)-229(m)28(ust)-228(b)-28(e)-228(the)-228(same)-229(on)-228(all)-228(pro)-28(cesses)-229(par)1(tic)-1(i)1(-)]TJ -9.831 -11.955 Td [(pating)-252(in)-253(the)-253(subroutin)1(e)-253(call;)-280(for)-252(output)-253(argumen)28(ts)-252(the)-253(v)56(alue)-253(is)-253(guaran)28(teed)]TJ 0 -11.955 Td [(to)-333(b)-28(e)-333(the)-334(same.)]TJ 0 g 0 G -/F27 9.9626 Tf -24.907 -18.526 Td [(lo)-32(cal)]TJ +/F27 9.9626 Tf -24.907 -20.016 Td [(lo)-32(cal)]TJ 0 g 0 G -/F8 9.9626 Tf 28.055 0 Td [(Eac)28(h)-333(pro)-28(cess)-334(has)-333(its)-333(o)27(wn)-333(v)56(alue\050s\051)-334(indep)-27(enden)27(tly)84(.)]TJ -28.055 -17.125 Td [(T)83(o)-333(\014nish)-333(our)-334(general)-333(description,)-333(w)28(e)-334(de\014ne)-333(a)-333(v)27(ersion)-333(string)-333(with)-334(th)1(e)-334(constan)28(t)]TJ/F30 9.9626 Tf 122.168 -18.417 Td [(psb_version_string_)]TJ/F8 9.9626 Tf -122.168 -18.417 Td [(whose)-333(curren)27(t)-333(v)56(alue)-334(is)]TJ/F30 9.9626 Tf 99.793 0 Td [(3.0.0)]TJ +/F8 9.9626 Tf 28.055 0 Td [(Eac)28(h)-333(pro)-28(cess)-334(has)-333(its)-333(o)27(wn)-333(v)56(alue\050s\051)-334(indep)-27(enden)27(tly)84(.)]TJ -28.055 -19.993 Td [(T)83(o)-333(\014nish)-333(our)-334(general)-333(description,)-333(w)28(e)-334(de\014ne)-333(a)-333(v)27(ersion)-333(string)-333(with)-334(th)1(e)-334(constan)28(t)]TJ/F30 9.9626 Tf 122.168 -21.963 Td [(psb_version_string_)]TJ/F8 9.9626 Tf -122.168 -21.964 Td [(whose)-333(curren)27(t)-333(v)56(alue)-334(is)]TJ/F30 9.9626 Tf 99.793 0 Td [(3.0.0)]TJ/F16 11.9552 Tf -99.793 -28.008 Td [(2.3)-1125(Application)-375(structure)]TJ/F8 9.9626 Tf 0 -18.432 Td [(The)-274(main)-275(underlyi)1(ng)-275(principle)-274(of)-274(the)-275(P)1(SBLAS)-275(library)-274(is)-274(that)-274(the)-275(library)-274(ob)-55(jects)]TJ 0 -11.955 Td [(are)-311(created)-311(and)-311(exist)-312(with)-311(reference)-311(to)-311(a)-311(discretized)-311(space)-311(to)-311(whic)27(h)-311(there)-311(corre-)]TJ 0 -11.955 Td [(sp)-28(onds)-339(an)-340(index)-339(space)-340(and)-340(a)-339(matrix)-340(sparsit)28(y)-339(pattern.)-463(As)-340(an)-340(example,)-341(consider)]TJ 0 -11.955 Td [(a)-355(cell-cen)27(tered)-355(\014nite-v)28(olume)-355(discretization)-356(of)-355(the)-355(Na)28(vier-Stok)28(es)-356(equations)-355(on)-355(a)]TJ 0 -11.955 Td [(sim)28(ulation)-371(domain;)-390(the)-371(index)-371(space)-371(1)]TJ/F11 9.9626 Tf 166.004 0 Td [(:)-167(:)-166(:)-167(n)]TJ/F8 9.9626 Tf 22.959 0 Td [(is)-371(isomorphic)-371(to)-371(the)-371(set)-371(of)-371(cell)-371(cen-)]TJ -188.963 -11.955 Td [(ters,)-388(whereas)-378(the)-377(pattern)-377(of)-377(the)-378(asso)-28(ciated)-377(linear)-377(system)-378(matrix)-377(is)-377(isomorphic)]TJ 0 g 0 G -/F8 9.9626 Tf 69.572 -29.888 Td [(5)]TJ + 169.365 -29.888 Td [(5)]TJ 0 g 0 G ET endstream endobj -643 0 obj << +640 0 obj << /Type /Page -/Contents 644 0 R -/Resources 642 0 R +/Contents 641 0 R +/Resources 639 0 R /MediaBox [0 0 595.276 841.89] -/Parent 585 0 R -/Annots [ 640 0 R 641 0 R ] +/Parent 580 0 R +/Annots [ 637 0 R 638 0 R ] >> endobj -640 0 obj << +637 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [406.358 313.83 413.331 325.785] +/Rect [406.358 438.723 413.331 450.678] /Subtype /Link /A << /S /GoTo /D (section.3) >> >> endobj -641 0 obj << +638 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [173.863 283.349 180.837 295.305] +/Rect [173.863 406.752 180.837 418.707] /Subtype /Link /A << /S /GoTo /D (section.6) >> >> endobj -645 0 obj << -/D [643 0 R /XYZ 99.895 740.998 null] ->> endobj 642 0 obj << -/Font << /F27 441 0 R /F8 442 0 R /F14 620 0 R /F30 617 0 R >> +/D [640 0 R /XYZ 99.895 740.998 null] +>> endobj +26 0 obj << +/D [640 0 R /XYZ 99.895 212.503 null] +>> endobj +639 0 obj << +/Font << /F14 619 0 R /F8 438 0 R /F27 437 0 R /F30 616 0 R /F16 435 0 R /F11 599 0 R >> /ProcSet [ /PDF /Text ] >> endobj -648 0 obj << -/Length 8657 +645 0 obj << +/Length 8533 >> stream 0 g 0 G 0 g 0 G BT -/F16 11.9552 Tf 150.705 706.129 Td [(2.3)-1125(Application)-375(structure)]TJ/F8 9.9626 Tf 0 -18.787 Td [(The)-274(main)-275(und)1(e)-1(r)1(lying)-275(principle)-274(of)-274(the)-274(PSBLAS)-275(librar)1(y)-275(is)-274(that)-274(the)-275(library)-274(ob)-55(jects)]TJ 0 -11.955 Td [(are)-311(created)-311(and)-311(exist)-311(with)-312(r)1(e)-1(f)1(e)-1(rence)-311(to)-311(a)-311(discretized)-311(space)-311(to)-311(whic)27(h)-311(there)-311(corre-)]TJ 0 -11.955 Td [(sp)-28(onds)-339(an)-340(index)-339(space)-340(and)-339(a)-340(matrix)-340(sparsit)28(y)-339(pattern.)-463(As)-340(an)-340(example,)-341(consider)]TJ 0 -11.955 Td [(a)-355(cell-cen)27(tered)-355(\014nite-v)28(olume)-355(discretization)-356(of)-355(the)-355(Na)28(vier-Stok)28(es)-356(equations)-355(on)-355(a)]TJ 0 -11.955 Td [(sim)28(ulation)-371(domain;)-390(the)-371(index)-371(space)-371(1)]TJ/F11 9.9626 Tf 166.003 0 Td [(:)-167(:)-166(:)-167(n)]TJ/F8 9.9626 Tf 22.959 0 Td [(is)-371(isomorphic)-371(to)-371(the)-371(set)-371(of)-371(cell)-371(cen-)]TJ -188.962 -11.956 Td [(ters,)-388(whereas)-378(the)-377(pattern)-377(of)-377(the)-378(asso)-28(ciated)-377(linear)-377(system)-377(m)-1(atr)1(ix)-378(is)-377(isomorphic)]TJ 0 -11.955 Td [(to)-277(the)-278(adjacency)-278(grap)1(h)-278(imp)-28(osed)-277(on)-278(the)-277(discretization)-278(mesh)-277(b)27(y)-277(the)-278(discretization)]TJ 0 -11.955 Td [(stencil.)]TJ 14.944 -12.169 Td [(Th)28(us)-409(the)-408(\014rst)-408(order)-409(of)-408(business)-408(is)-409(to)-408(establish)-409(an)-408(index)-408(space,)-427(and)-409(this)-408(is)]TJ -14.944 -11.955 Td [(done)-371(with)-371(a)-371(call)-371(to)]TJ/F30 9.9626 Tf 87.109 0 Td [(psb_cdall)]TJ/F8 9.9626 Tf 50.768 0 Td [(in)-371(whic)28(h)-371(w)28(e)-371(sp)-28(ecify)-371(the)-371(size)-371(of)-371(the)-371(index)-371(space)]TJ/F11 9.9626 Tf -137.877 -11.955 Td [(n)]TJ/F8 9.9626 Tf 9.142 0 Td [(and)-317(the)-318(allo)-28(cation)-317(of)-317(the)-318(elemen)28(ts)-318(of)-317(the)-317(index)-318(space)-317(to)-318(the)-317(v)55(arious)-317(pro)-28(cesses)]TJ -9.142 -11.955 Td [(making)-333(up)-334(th)1(e)-334(MPI)-333(\050virtual\051)-333(parallel)-334(mac)28(hine.)]TJ 14.944 -12.169 Td [(The)-308(index)-309(space)-308(is)-309(parti)1(tioned)-309(among)-308(pro)-28(cesses,)-314(an)1(d)-309(this)-308(creates)-309(a)-308(mapping)]TJ -14.944 -11.955 Td [(from)-249(the)-249(\134global")-249(n)28(um)28(b)-28(ering)-249(1)]TJ/F11 9.9626 Tf 132.852 0 Td [(:)-167(:)-166(:)-167(n)]TJ/F8 9.9626 Tf 21.744 0 Td [(to)-249(a)-249(n)28(um)28(b)-28(ering)-249(\134lo)-28(cal")-249(to)-249(eac)28(h)-249(pro)-28(cess;)-277(eac)27(h)]TJ -154.596 -11.955 Td [(pro)-28(cess)]TJ/F11 9.9626 Tf 33.771 0 Td [(i)]TJ/F8 9.9626 Tf 5.794 0 Td [(will)-237(o)28(wn)-237(a)-237(certain)-237(subset)-237(1)]TJ/F11 9.9626 Tf 113.508 0 Td [(:)-167(:)-166(:)-167(n)]TJ/F8 9.9626 Tf 19.264 -1.495 Td [(ro)28(w)]TJ/F9 4.9813 Tf 15.801 -0.996 Td [(i)]TJ/F8 9.9626 Tf 3.655 2.491 Td [(,)-256(eac)27(h)-237(elemen)28(t)-237(of)-237(whic)28(h)-237(corresp)-28(onds)]TJ -191.793 -11.955 Td [(to)-390(a)-389(certain)-390(elemen)28(t)-390(of)-389(1)]TJ/F11 9.9626 Tf 111.313 0 Td [(:)-167(:)-166(:)-167(n)]TJ/F8 9.9626 Tf 19.264 0 Td [(.)-613(The)-390(user)-389(do)-28(es)-390(not)-389(s)-1(et)-389(explicitly)-390(this)-389(mapping;)]TJ -130.577 -11.956 Td [(when)-392(the)-393(appl)1(ic)-1(ati)1(on)-393(needs)-392(to)-392(indicate)-393(to)-392(whic)28(h)-392(e)-1(lemen)28(t)-392(of)-392(the)-393(index)-392(space)-392(a)]TJ 0 -11.955 Td [(certain)-273(item)-273(is)-273(related,)-285(suc)28(h)-273(as)-273(the)-273(ro)28(w)-273(and)-273(column)-273(index)-273(of)-273(a)-273(matrix)-273(co)-27(e\016c)-1(ien)28(t,)]TJ 0 -11.955 Td [(it)-449(do)-27(es)-449(so)-449(in)-448(the)-449(\134global")-449(n)28(um)28(b)-28(ering,)-477(and)-449(the)-448(library)-449(will)-448(translate)-449(in)28(to)-449(the)]TJ 0 -11.955 Td [(appropriate)-333(\134lo)-28(cal")-333(n)28(um)27(b)-27(ering.)]TJ 14.944 -12.169 Td [(F)83(or)-273(a)-274(giv)28(en)-274(index)-274(space)-273(1)]TJ/F11 9.9626 Tf 109.331 0 Td [(:)-167(:)-166(:)-167(n)]TJ/F8 9.9626 Tf 21.99 0 Td [(there)-274(are)-273(m)-1(an)28(y)-273(p)-28(ossible)-274(asso)-28(ciated)-274(top)-27(ologies,)]TJ -146.265 -11.955 Td [(i.e.)-418(man)28(y)-254(di\013eren)27(t)-254(discretization)-254(stencils;)-281(th)28(us)-254(the)-254(description)-254(of)-254(the)-254(index)-255(space)]TJ 0 -11.955 Td [(is)-355(not)-355(completed)-355(un)28(til)-356(th)1(e)-356(user)-355(has)-355(de\014ned)-355(a)-355(sparsit)28(y)-355(pattern,)-361(either)-355(explicitly)]TJ 0 -11.955 Td [(through)]TJ/F30 9.9626 Tf 36.93 0 Td [(psb_cdins)]TJ/F8 9.9626 Tf 49.66 0 Td [(or)-260(implicitly)-259(through)]TJ/F30 9.9626 Tf 92.223 0 Td [(psb_spins)]TJ/F8 9.9626 Tf 47.073 0 Td [(.)-420(The)-260(descriptor)-259(is)-260(\014nalized)]TJ -225.886 -11.955 Td [(with)-354(a)-355(call)-354(to)]TJ/F30 9.9626 Tf 62.274 0 Td [(psb_cdasb)]TJ/F8 9.9626 Tf 50.603 0 Td [(and)-354(a)-355(sparse)-354(matrix)-354(with)-355(a)-354(call)-354(to)]TJ/F30 9.9626 Tf 153.217 0 Td [(psb_spasb)]TJ/F8 9.9626 Tf 47.073 0 Td [(.)-507(After)]TJ/F30 9.9626 Tf -313.167 -11.956 Td [(psb_cdasb)]TJ/F8 9.9626 Tf 50.443 0 Td [(eac)28(h)-338(pro)-28(cess)]TJ/F11 9.9626 Tf 57.244 0 Td [(i)]TJ/F8 9.9626 Tf 6.802 0 Td [(will)-338(ha)28(v)27(e)-338(de\014ned)-338(a)-338(set)-339(of)-338(\134halo")-338(\050or)-338(\134ghost"\051)-339(i)1(ndices)]TJ/F11 9.9626 Tf -114.489 -11.955 Td [(n)]TJ/F8 9.9626 Tf 5.98 -1.494 Td [(ro)28(w)]TJ/F9 4.9813 Tf 15.802 -0.996 Td [(i)]TJ/F8 9.9626 Tf 5.985 2.49 Td [(+)-234(1)]TJ/F11 9.9626 Tf 16.722 0 Td [(:)-167(:)-166(:)-167(n)]TJ/F8 9.9626 Tf 19.263 -3.487 Td [(col)]TJ/F9 4.9813 Tf 12.176 -0.996 Td [(i)]TJ/F8 9.9626 Tf 3.655 4.483 Td [(,)-355(denoting)-351(elemen)27(ts)-351(of)-351(th)1(e)-351(index)-351(space)-351(that)-351(are)]TJ/F17 9.9626 Tf 209.596 0 Td [(not)]TJ/F8 9.9626 Tf 18.445 0 Td [(assigned)]TJ -307.624 -11.955 Td [(to)-284(pro)-28(cess)]TJ/F11 9.9626 Tf 45.92 0 Td [(i)]TJ/F8 9.9626 Tf 3.433 0 Td [(;)-300(ho)28(w)27(ev)28(er)-284(the)-284(v)56(ariables)-284(asso)-28(ciated)-283(with)-284(them)-284(are)-284(needed)-284(to)-283(c)-1(omplete)]TJ -49.353 -11.955 Td [(computations)-409(a)-1(sso)-27(ciated)-410(with)-409(the)-410(sparse)-409(m)-1(atr)1(ix)]TJ/F11 9.9626 Tf 216.316 0 Td [(A)]TJ/F8 9.9626 Tf 7.472 0 Td [(,)-429(an)1(d)-410(th)28(us)-410(they)-409(ha)28(v)27(e)-409(to)-410(b)-27(e)]TJ -223.788 -11.955 Td [(fetc)28(hed)-464(from)-464(\050)1(neigh)27(b)-27(ouring\051)-464(pro)-28(cesses.)-835(The)-464(descriptor)-464(of)-463(the)-464(index)-463(space)-464(is)]TJ 0 -11.955 Td [(built)-394(exactly)-394(for)-393(the)-394(purp)-28(ose)-394(of)-394(prop)-27(e)-1(r)1(ly)-394(sequencing)-394(the)-394(comm)28(unication)-394(steps)]TJ 0 -11.956 Td [(required)-333(to)-334(ac)28(hiev)28(e)-333(this)-334(ob)-55(jectiv)28(e)-1(.)]TJ 14.944 -12.168 Td [(A)-306(simple)-306(application)-305(structure)-306(will)-306(w)28(alk)-306(through)-306(the)-306(in)1(dex)-306(space)-306(allo)-28(cation,)]TJ -14.944 -11.955 Td [(matrix/v)28(ector)-334(creation)-333(and)-333(linear)-333(syste)-1(m)-333(solution)-333(as)-334(f)1(o)-1(l)1(lo)27(ws:)]TJ +/F8 9.9626 Tf 150.705 706.129 Td [(to)-278(t)1(he)-278(adjacency)-278(grap)1(h)-278(imp)-28(osed)-277(on)-278(the)-277(discretization)-278(mesh)-277(b)27(y)-277(the)-278(discretization)]TJ 0 -11.955 Td [(stencil.)]TJ 14.944 -12.048 Td [(Th)28(us)-409(the)-408(\014rst)-408(order)-409(of)-408(business)-408(is)-409(to)-408(establish)-409(an)-408(index)-408(space,)-427(and)-409(this)-408(is)]TJ -14.944 -11.955 Td [(done)-371(with)-371(a)-371(call)-371(to)]TJ/F30 9.9626 Tf 87.109 0 Td [(psb_cdall)]TJ/F8 9.9626 Tf 50.768 0 Td [(in)-371(whic)28(h)-371(w)28(e)-371(sp)-28(ecify)-371(the)-371(size)-371(of)-371(the)-371(index)-371(space)]TJ/F11 9.9626 Tf -137.877 -11.955 Td [(n)]TJ/F8 9.9626 Tf 9.142 0 Td [(and)-317(the)-318(allo)-28(cation)-317(of)-317(the)-318(elemen)28(ts)-318(of)-317(the)-317(index)-318(space)-317(to)-318(the)-317(v)55(arious)-317(pro)-28(cesses)]TJ -9.142 -11.956 Td [(making)-333(up)-334(th)1(e)-334(MPI)-333(\050virtual\051)-333(parallel)-334(mac)28(hine.)]TJ 14.944 -12.047 Td [(The)-308(index)-309(space)-308(is)-309(parti)1(tioned)-309(among)-308(pro)-28(cesses,)-314(an)1(d)-309(this)-308(creates)-309(a)-308(mapping)]TJ -14.944 -11.956 Td [(from)-249(the)-249(\134global")-249(n)28(um)28(b)-28(ering)-249(1)]TJ/F11 9.9626 Tf 132.852 0 Td [(:)-167(:)-166(:)-167(n)]TJ/F8 9.9626 Tf 21.744 0 Td [(to)-249(a)-249(n)28(um)28(b)-28(ering)-249(\134lo)-28(cal")-249(to)-249(eac)28(h)-249(pro)-28(cess;)-277(eac)27(h)]TJ -154.596 -11.955 Td [(pro)-28(cess)]TJ/F11 9.9626 Tf 33.771 0 Td [(i)]TJ/F8 9.9626 Tf 5.794 0 Td [(will)-237(o)28(wn)-237(a)-237(certain)-237(subset)-237(1)]TJ/F11 9.9626 Tf 113.508 0 Td [(:)-167(:)-166(:)-167(n)]TJ/F8 9.9626 Tf 19.264 -1.494 Td [(ro)28(w)]TJ/F9 4.9813 Tf 15.801 -0.996 Td [(i)]TJ/F8 9.9626 Tf 3.655 2.49 Td [(,)-256(eac)27(h)-237(elemen)28(t)-237(of)-237(whic)28(h)-237(corresp)-28(onds)]TJ -191.793 -11.955 Td [(to)-390(a)-389(certain)-390(elemen)28(t)-390(of)-389(1)]TJ/F11 9.9626 Tf 111.313 0 Td [(:)-167(:)-166(:)-167(n)]TJ/F8 9.9626 Tf 19.264 0 Td [(.)-613(The)-390(user)-389(do)-28(es)-390(not)-389(s)-1(et)-389(explicitly)-390(this)-389(mapping;)]TJ -130.577 -11.955 Td [(when)-392(the)-393(appl)1(ic)-1(ati)1(on)-393(needs)-392(to)-392(indicate)-393(to)-392(whic)28(h)-392(e)-1(lemen)28(t)-392(of)-392(the)-393(index)-392(space)-392(a)]TJ 0 -11.955 Td [(certain)-273(item)-273(is)-273(related,)-285(suc)28(h)-273(as)-273(the)-273(ro)28(w)-273(and)-273(column)-273(index)-273(of)-273(a)-273(matrix)-273(co)-27(e\016c)-1(ien)28(t,)]TJ 0 -11.956 Td [(it)-449(do)-27(es)-449(so)-449(in)-448(the)-449(\134global")-449(n)28(um)28(b)-28(ering,)-477(and)-449(the)-448(library)-449(will)-448(translate)-449(in)28(to)-449(the)]TJ 0 -11.955 Td [(appropriate)-333(\134lo)-28(cal")-333(n)28(um)27(b)-27(ering.)]TJ 14.944 -12.048 Td [(F)83(or)-273(a)-274(giv)28(en)-274(index)-274(space)-273(1)]TJ/F11 9.9626 Tf 109.331 0 Td [(:)-167(:)-166(:)-167(n)]TJ/F8 9.9626 Tf 21.99 0 Td [(there)-274(are)-273(m)-1(an)28(y)-273(p)-28(ossible)-274(asso)-28(ciated)-274(top)-27(ologies,)]TJ -146.265 -11.955 Td [(i.e.)-418(man)28(y)-254(di\013eren)27(t)-254(discretization)-254(stencils;)-281(th)28(us)-254(the)-254(description)-254(of)-254(the)-254(index)-255(space)]TJ 0 -11.955 Td [(is)-355(not)-355(completed)-355(un)28(til)-356(th)1(e)-356(user)-355(has)-355(de\014ned)-355(a)-355(sparsit)28(y)-355(pattern,)-361(either)-355(explicitly)]TJ 0 -11.955 Td [(through)]TJ/F30 9.9626 Tf 36.93 0 Td [(psb_cdins)]TJ/F8 9.9626 Tf 49.661 0 Td [(or)-260(implicitly)-259(through)]TJ/F30 9.9626 Tf 92.222 0 Td [(psb_spins)]TJ/F8 9.9626 Tf 47.073 0 Td [(.)-420(The)-260(descriptor)-259(is)-260(\014nalized)]TJ -225.886 -11.955 Td [(with)-354(a)-355(call)-354(to)]TJ/F30 9.9626 Tf 62.274 0 Td [(psb_cdasb)]TJ/F8 9.9626 Tf 50.603 0 Td [(and)-354(a)-355(sparse)-354(matrix)-354(with)-355(a)-354(call)-354(to)]TJ/F30 9.9626 Tf 153.217 0 Td [(psb_spasb)]TJ/F8 9.9626 Tf 47.073 0 Td [(.)-508(Af)1(te)-1(r)]TJ/F30 9.9626 Tf -313.167 -11.955 Td [(psb_cdasb)]TJ/F8 9.9626 Tf 50.443 0 Td [(eac)28(h)-338(pro)-28(cess)]TJ/F11 9.9626 Tf 57.244 0 Td [(i)]TJ/F8 9.9626 Tf 6.803 0 Td [(will)-338(ha)28(v)27(e)-338(de\014ned)-338(a)-338(set)-339(of)-338(\134halo")-338(\050or)-338(\134ghost"\051)-338(indices)]TJ/F11 9.9626 Tf -114.49 -11.956 Td [(n)]TJ/F8 9.9626 Tf 5.98 -1.494 Td [(ro)28(w)]TJ/F9 4.9813 Tf 15.802 -0.996 Td [(i)]TJ/F8 9.9626 Tf 5.985 2.49 Td [(+)-234(1)]TJ/F11 9.9626 Tf 16.722 0 Td [(:)-167(:)-166(:)-167(n)]TJ/F8 9.9626 Tf 19.263 -3.487 Td [(col)]TJ/F9 4.9813 Tf 12.177 -0.996 Td [(i)]TJ/F8 9.9626 Tf 3.654 4.483 Td [(,)-355(denoting)-351(elemen)27(ts)-351(of)-351(th)1(e)-351(index)-351(space)-351(that)-351(are)]TJ/F17 9.9626 Tf 209.596 0 Td [(not)]TJ/F8 9.9626 Tf 18.445 0 Td [(assigned)]TJ -307.624 -11.955 Td [(to)-284(pro)-28(cess)]TJ/F11 9.9626 Tf 45.921 0 Td [(i)]TJ/F8 9.9626 Tf 3.432 0 Td [(;)-300(ho)28(w)27(ev)28(er)-284(the)-284(v)56(ariables)-284(asso)-28(ciated)-283(with)-284(them)-284(are)-284(needed)-284(to)-283(c)-1(omplete)]TJ -49.353 -11.955 Td [(computations)-410(asso)-27(ciated)-410(with)-409(the)-410(sparse)-409(m)-1(atri)1(x)]TJ/F11 9.9626 Tf 216.316 0 Td [(A)]TJ/F8 9.9626 Tf 7.472 0 Td [(,)-429(an)1(d)-410(th)28(us)-410(they)-409(ha)28(v)27(e)-409(to)-410(b)-27(e)]TJ -223.788 -11.955 Td [(fetc)28(hed)-464(from)-464(\050)1(ne)-1(i)1(gh)27(b)-27(ouring\051)-464(pro)-28(cesses.)-835(The)-464(descriptor)-464(of)-463(the)-464(index)-463(space)-464(is)]TJ 0 -11.955 Td [(built)-394(exactly)-394(for)-393(the)-394(purp)-28(ose)-394(of)-394(prop)-27(e)-1(r)1(ly)-394(sequencing)-394(the)-394(comm)28(unication)-394(steps)]TJ 0 -11.956 Td [(required)-333(to)-334(ac)28(hiev)28(e)-333(this)-334(ob)-55(jectiv)28(e)-1(.)]TJ 14.944 -12.047 Td [(A)-306(simple)-306(application)-305(structure)-306(will)-306(w)28(alk)-306(through)-306(the)-306(in)1(dex)-306(space)-306(allo)-28(cation,)]TJ -14.944 -11.956 Td [(matrix/v)28(ector)-334(creation)-333(and)-333(linear)-333(syste)-1(m)-333(solution)-333(as)-334(f)1(o)-1(l)1(lo)27(ws:)]TJ 0 g 0 G - 12.177 -20.566 Td [(1.)]TJ + 12.177 -20.203 Td [(1.)]TJ 0 g 0 G [-500(Initialize)-333(parallel)-334(en)28(vironmen)28(t)-333(with)]TJ/F30 9.9626 Tf 169.42 0 Td [(psb_init)]TJ 0 g 0 G -/F8 9.9626 Tf -169.42 -20.779 Td [(2.)]TJ +/F8 9.9626 Tf -169.42 -20.296 Td [(2.)]TJ 0 g 0 G [-500(Initialize)-333(index)-334(space)-333(with)]TJ/F30 9.9626 Tf 130.123 0 Td [(psb_cdall)]TJ 0 g 0 G -/F8 9.9626 Tf -130.123 -20.78 Td [(3.)]TJ +/F8 9.9626 Tf -130.123 -20.296 Td [(3.)]TJ 0 g 0 G [-500(Allo)-28(cate)-301(sparse)-302(matrix)-301(and)-302(dense)-302(v)28(ectors)-301(with)]TJ/F30 9.9626 Tf 215.329 0 Td [(psb_spall)]TJ/F8 9.9626 Tf 50.077 0 Td [(and)]TJ/F30 9.9626 Tf 19.055 0 Td [(psb_geall)]TJ 0 g 0 G -/F8 9.9626 Tf -284.461 -20.779 Td [(4.)]TJ +/F8 9.9626 Tf -284.461 -20.296 Td [(4.)]TJ 0 g 0 G [-500(Lo)-28(op)-411(o)28(v)28(er)-411(all)-411(lo)-28(cal)-411(ro)27(ws,)-430(generate)-411(matrix)-411(and)-411(v)27(ector)-411(en)28(tries,)-431(an)1(d)-412(in)1(s)-1(ert)]TJ 12.73 -11.955 Td [(them)-333(with)]TJ/F30 9.9626 Tf 48.153 0 Td [(psb_spins)]TJ/F8 9.9626 Tf 50.393 0 Td [(and)]TJ/F30 9.9626 Tf 19.372 0 Td [(psb_geins)]TJ 0 g 0 G -/F8 9.9626 Tf -130.648 -20.779 Td [(5.)]TJ +/F8 9.9626 Tf -130.648 -20.296 Td [(5.)]TJ 0 g 0 G [-500(Assem)28(ble)-334(the)-333(v)56(arious)-334(en)28(tities:)]TJ 0 g 0 G - 16.936 -20.779 Td [(\050a\051)]TJ + 16.936 -20.296 Td [(\050a\051)]TJ 0 g 0 G /F30 9.9626 Tf 17.711 0 Td [(psb_cdasb)]TJ 0 g 0 G -/F8 9.9626 Tf -18.264 -16.368 Td [(\050b\051)]TJ +/F8 9.9626 Tf -18.264 -16.126 Td [(\050b\051)]TJ 0 g 0 G /F30 9.9626 Tf 18.264 0 Td [(psb_spasb)]TJ 0 g 0 G -/F8 9.9626 Tf -17.157 -16.367 Td [(\050c\051)]TJ +/F8 9.9626 Tf -17.157 -16.125 Td [(\050c\051)]TJ 0 g 0 G /F30 9.9626 Tf 17.157 0 Td [(psb_geasb)]TJ 0 g 0 G -/F8 9.9626 Tf 122.541 -32.378 Td [(6)]TJ +/F8 9.9626 Tf -34.647 -20.296 Td [(6.)]TJ +0 g 0 G + [-500(Cho)-28(ose)-286(the)-287(preconditioner)-287(to)-286(b)-28(e)-287(u)1(s)-1(ed)-286(with)]TJ/F30 9.9626 Tf 198.375 0 Td [(psb_precset)]TJ/F8 9.9626 Tf 60.389 0 Td [(and)-287(b)1(uild)-287(it)-287(with)]TJ/F30 9.9626 Tf -246.034 -11.955 Td [(psb_precbld)]TJ +0 g 0 G +/F8 9.9626 Tf -12.73 -20.296 Td [(7.)]TJ +0 g 0 G + [-500(Call)-333(the)-334(iterativ)28(e)-333(metho)-28(d)-333(of)-334(c)28(hoice,)-333(e.g.)]TJ/F30 9.9626 Tf 189.595 0 Td [(psb_bicgstab)]TJ/F8 9.9626 Tf -201.772 -20.204 Td [(This)-333(is)-334(the)-333(structure)-333(of)-334(the)-333(sample)-333(program)]TJ/F30 9.9626 Tf 194.327 0 Td [(test/pargen/ppde90.f90)]TJ/F8 9.9626 Tf 115.068 0 Td [(.)]TJ -294.451 -12.047 Td [(F)83(or)-291(a)-292(sim)28(ulation)-292(in)-291(whic)27(h)-291(the)-292(same)-292(discretization)-291(mesh)-292(is)-292(used)-291(o)27(v)28(er)-292(m)28(ultiple)]TJ -14.944 -11.956 Td [(time)-333(steps,)-334(the)-333(follo)28(wing)-334(structure)-333(ma)28(y)-333(b)-28(e)-334(more)-333(appropriate:)]TJ +0 g 0 G + 169.365 -29.888 Td [(6)]TJ 0 g 0 G ET endstream endobj -647 0 obj << +644 0 obj << /Type /Page -/Contents 648 0 R -/Resources 646 0 R +/Contents 645 0 R +/Resources 643 0 R /MediaBox [0 0 595.276 841.89] -/Parent 585 0 R +/Parent 580 0 R +>> endobj +646 0 obj << +/D [644 0 R /XYZ 150.705 740.998 null] +>> endobj +648 0 obj << +/D [644 0 R /XYZ 150.705 376.4 null] >> endobj 649 0 obj << -/D [647 0 R /XYZ 150.705 740.998 null] +/D [644 0 R /XYZ 150.705 356.381 null] >> endobj -26 0 obj << -/D [647 0 R /XYZ 150.705 716.092 null] +650 0 obj << +/D [644 0 R /XYZ 150.705 336.085 null] >> endobj 651 0 obj << -/D [647 0 R /XYZ 150.705 285.279 null] +/D [644 0 R /XYZ 150.705 315.789 null] >> endobj 652 0 obj << -/D [647 0 R /XYZ 150.705 264.776 null] +/D [644 0 R /XYZ 150.705 283.538 null] >> endobj 653 0 obj << -/D [647 0 R /XYZ 150.705 243.997 null] +/D [644 0 R /XYZ 150.705 263.371 null] >> endobj 654 0 obj << -/D [647 0 R /XYZ 150.705 223.218 null] +/D [644 0 R /XYZ 150.705 244.754 null] >> endobj 655 0 obj << -/D [647 0 R /XYZ 150.705 190.483 null] +/D [644 0 R /XYZ 150.705 228.629 null] >> endobj 656 0 obj << -/D [647 0 R /XYZ 150.705 169.712 null] +/D [644 0 R /XYZ 150.705 210.418 null] >> endobj 657 0 obj << -/D [647 0 R /XYZ 150.705 150.854 null] ->> endobj -658 0 obj << -/D [647 0 R /XYZ 150.705 134.487 null] +/D [644 0 R /XYZ 150.705 178.444 null] >> endobj -646 0 obj << -/Font << /F16 439 0 R /F8 442 0 R /F11 603 0 R /F30 617 0 R /F9 650 0 R /F17 584 0 R >> +643 0 obj << +/Font << /F8 438 0 R /F30 616 0 R /F11 599 0 R /F9 647 0 R /F17 579 0 R >> /ProcSet [ /PDF /Text ] >> endobj 661 0 obj << -/Length 6896 +/Length 7629 >> stream 0 g 0 G 0 g 0 G 0 g 0 G BT -/F8 9.9626 Tf 112.072 706.129 Td [(6.)]TJ -0 g 0 G - [-500(Cho)-28(ose)-286(the)-287(preconditioner)-287(to)-286(b)-28(e)-287(used)-286(with)]TJ/F30 9.9626 Tf 198.375 0 Td [(psb_precset)]TJ/F8 9.9626 Tf 60.389 0 Td [(and)-287(bu)1(ild)-287(it)-287(with)]TJ/F30 9.9626 Tf -246.034 -11.955 Td [(psb_precbld)]TJ -0 g 0 G -/F8 9.9626 Tf -12.73 -24.805 Td [(7.)]TJ -0 g 0 G - [-500(Call)-333(the)-334(iterativ)28(e)-333(metho)-28(d)-333(of)-334(c)28(hoice,)-333(e.g.)]TJ/F30 9.9626 Tf 189.595 0 Td [(psb_bicgstab)]TJ/F8 9.9626 Tf -201.772 -23.585 Td [(This)-333(is)-334(the)-333(structure)-333(of)-334(the)-333(sample)-333(program)]TJ/F30 9.9626 Tf 194.328 0 Td [(test/pargen/ppde90.f90)]TJ/F8 9.9626 Tf 115.067 0 Td [(.)]TJ -294.451 -13.175 Td [(F)83(or)-291(a)-292(sim)28(ulation)-292(in)-291(whic)27(h)-291(the)-292(same)-292(discretization)-291(mes)-1(h)-291(is)-292(used)-291(o)27(v)28(er)-292(m)28(ultiple)]TJ -14.944 -11.955 Td [(time)-333(ste)-1(p)1(s)-1(,)-333(the)-333(follo)28(wing)-334(structure)-333(ma)28(y)-333(b)-28(e)-334(more)-333(appropriate:)]TJ -0 g 0 G - 12.177 -23.586 Td [(1.)]TJ +/F8 9.9626 Tf 112.072 706.129 Td [(1.)]TJ 0 g 0 G [-500(Initialize)-333(parallel)-334(en)28(vironmen)28(t)-333(with)]TJ/F30 9.9626 Tf 169.421 0 Td [(psb_init)]TJ 0 g 0 G -/F8 9.9626 Tf -169.421 -24.804 Td [(2.)]TJ +/F8 9.9626 Tf -169.421 -20.056 Td [(2.)]TJ 0 g 0 G [-500(Initialize)-333(index)-334(space)-333(with)]TJ/F30 9.9626 Tf 130.123 0 Td [(psb_cdall)]TJ 0 g 0 G -/F8 9.9626 Tf -130.123 -24.805 Td [(3.)]TJ +/F8 9.9626 Tf -130.123 -20.056 Td [(3.)]TJ 0 g 0 G [-500(Lo)-28(op)-271(o)28(v)27(er)-271(the)-272(top)-27(ology)-272(of)-271(the)-272(discretization)-271(mesh)-272(and)-271(build)-271(the)-272(descriptor)]TJ 12.73 -11.956 Td [(with)]TJ/F30 9.9626 Tf 22.693 0 Td [(psb_cdins)]TJ 0 g 0 G -/F8 9.9626 Tf -35.423 -24.805 Td [(4.)]TJ +/F8 9.9626 Tf -35.423 -20.056 Td [(4.)]TJ 0 g 0 G [-500(Assem)28(ble)-334(the)-333(descriptor)-333(with)]TJ/F30 9.9626 Tf 143.019 0 Td [(psb_cdasb)]TJ 0 g 0 G -/F8 9.9626 Tf -143.019 -24.804 Td [(5.)]TJ +/F8 9.9626 Tf -143.019 -20.056 Td [(5.)]TJ 0 g 0 G [-500(Allo)-28(cate)-222(the)-222(sparse)-223(matrices)-222(and)-222(dense)-222(v)27(ectors)-222(with)]TJ/F30 9.9626 Tf 233.375 0 Td [(psb_spall)]TJ/F8 9.9626 Tf 49.287 0 Td [(and)]TJ/F30 9.9626 Tf 18.265 0 Td [(psb_geall)]TJ 0 g 0 G -/F8 9.9626 Tf -300.927 -24.805 Td [(6.)]TJ +/F8 9.9626 Tf -300.927 -20.056 Td [(6.)]TJ 0 g 0 G [-500(Lo)-28(op)-333(o)28(v)28(e)-1(r)-333(the)-333(time)-334(steps:)]TJ 0 g 0 G - 16.936 -24.805 Td [(\050a\051)]TJ + 16.936 -20.056 Td [(\050a\051)]TJ 0 g 0 G - [-500(If)-340(after)-339(\014rst)-340(time)-339(step,)-341(reinitialize)-340(the)-339(s)-1(p)1(a)-1(r)1(s)-1(e)-339(matrix)-340(with)]TJ/F30 9.9626 Tf 269.988 0 Td [(psb_sprn)]TJ/F8 9.9626 Tf 41.843 0 Td [(;)]TJ -294.119 -11.956 Td [(also)-333(zero)-334(out)-333(the)-333(dense)-334(v)28(ectors;)]TJ + [-500(If)-340(after)-339(\014rst)-340(time)-339(step,)-341(reinitialize)-340(the)-339(s)-1(p)1(a)-1(r)1(s)-1(e)-339(matrix)-340(with)]TJ/F30 9.9626 Tf 269.988 0 Td [(psb_sprn)]TJ/F8 9.9626 Tf 41.843 0 Td [(;)]TJ -294.119 -11.955 Td [(also)-333(zero)-334(out)-333(the)-333(dense)-334(v)28(ectors;)]TJ 0 g 0 G - -18.265 -18.38 Td [(\050b\051)]TJ + -18.265 -16.006 Td [(\050b\051)]TJ 0 g 0 G [-500(Lo)-28(op)-252(o)28(v)27(er)-252(the)-253(mesh,)-268(generate)-253(the)-253(co)-27(e\016cie)-1(n)28(ts)-252(and)-253(insert/up)-27(date)-253(them)]TJ 18.265 -11.955 Td [(with)]TJ/F30 9.9626 Tf 22.693 0 Td [(psb_spins)]TJ/F8 9.9626 Tf 50.394 0 Td [(and)]TJ/F30 9.9626 Tf 19.371 0 Td [(psb_geins)]TJ 0 g 0 G -/F8 9.9626 Tf -109.616 -18.38 Td [(\050c\051)]TJ +/F8 9.9626 Tf -109.616 -16.006 Td [(\050c\051)]TJ 0 g 0 G [-500(Assem)28(ble)-334(with)]TJ/F30 9.9626 Tf 83.686 0 Td [(psb_spasb)]TJ/F8 9.9626 Tf 50.394 0 Td [(and)]TJ/F30 9.9626 Tf 19.372 0 Td [(psb_geasb)]TJ 0 g 0 G -/F8 9.9626 Tf -154.559 -18.38 Td [(\050d\051)]TJ +/F8 9.9626 Tf -154.559 -16.005 Td [(\050d\051)]TJ 0 g 0 G [-500(Cho)-28(ose)-222(and)-222(build)-222(preconditioner)-222(with)]TJ/F30 9.9626 Tf 180.822 0 Td [(psb_precset)]TJ/F8 9.9626 Tf 59.748 0 Td [(and)]TJ/F30 9.9626 Tf 18.265 0 Td [(psb_precbld)]TJ 0 g 0 G -/F8 9.9626 Tf -257.728 -18.38 Td [(\050e\051)]TJ +/F8 9.9626 Tf -257.728 -16.006 Td [(\050e\051)]TJ 0 g 0 G - [-500(Call)-333(the)-334(iterativ)28(e)-333(metho)-28(d)-333(of)-334(c)28(hoice,)-333(e.g.)]TJ/F30 9.9626 Tf 194.023 0 Td [(psb_bicgstab)]TJ/F8 9.9626 Tf -223.69 -24.805 Td [(The)-370(insertion)-370(routines)-370(will)-370(b)-27(e)-370(c)-1(all)1(e)-1(d)-369(as)-370(man)27(y)-370(times)-370(as)-370(needed;)-388(they)-370(only)-370(need)]TJ 0 -11.955 Td [(to)-404(b)-27(e)-404(called)-404(on)-404(the)-403(data)-404(that)-404(is)-403(actually)-404(allo)-28(cated)-403(to)-404(the)-404(curren)28(t)-404(pro)-27(ce)-1(ss,)-421(i.e.)]TJ 0 -11.955 Td [(eac)28(h)-334(pro)-27(cess)-334(generates)-333(its)-334(o)28(wn)-333(data.)]TJ 14.944 -13.175 Td [(In)-326(principle)-326(there)-327(is)-326(no)-326(sp)-28(eci\014c)-326(order)-327(in)-326(the)-326(calls)-327(to)]TJ/F30 9.9626 Tf 225.879 0 Td [(psb_spins)]TJ/F8 9.9626 Tf 47.073 0 Td [(,)-328(nor)-326(is)-326(there)]TJ -287.896 -11.955 Td [(a)-393(requiremen)27(t)-393(to)-393(build)-394(a)-393(matrix)-393(ro)28(w)-394(in)-393(its)-394(en)28(tiret)28(y)-393(b)-28(efore)-393(c)-1(alli)1(ng)-394(the)-393(routine;)]TJ 0 -11.956 Td [(this)-288(allo)28(ws)-288(the)-288(application)-288(programmer)-288(to)-288(w)27(alk)-288(through)-288(the)-288(discretization)-288(mesh)]TJ 0 -11.955 Td [(elemen)28(t)-402(b)28(y)-401(elemen)28(t,)-419(generating)-401(the)-401(main)-401(part)-401(of)-402(a)-401(giv)28(en)-401(matrix)-402(ro)28(w)-401(but)-401(also)]TJ 0 -11.955 Td [(con)28(tributions)-333(to)-334(the)-333(ro)28(ws)-334(corresp)-28(on)1(ding)-334(to)-333(neigh)28(b)-28(ouring)-333(elemen)28(ts)-1(.)]TJ 14.944 -13.175 Td [(F)83(rom)-410(a)-410(functional)-410(p)-28(oin)28(t)-410(of)-410(view)-410(it)-410(is)-410(ev)27(en)-410(p)-27(os)-1(sibl)1(e)-411(to)-410(execute)-410(one)-410(call)-410(for)]TJ -14.944 -11.955 Td [(eac)28(h)-372(nonzero)-372(co)-28(e\016cien)28(t;)-391(ho)27(w)28(ev)28(er)-372(this)-372(w)28(ould)-372(ha)28(v)28(e)-372(a)-372(substan)27(tial)-371(com)-1(p)1(utational)]TJ 0 -11.955 Td [(o)28(v)28(e)-1(r)1(head.)-412(It)-236(is)-236(therefore)-236(advisable)-236(to)-235(pac)27(k)-236(a)-235(certain)-236(amoun)28(t)-236(of)-236(data)-236(in)28(to)-236(eac)28(h)-236(call)]TJ 0 -11.956 Td [(to)-308(the)-307(insertion)-308(routin)1(e)-1(,)-312(sa)28(y)-308(touc)28(hing)-308(on)-307(a)-308(few)-307(tens)-308(of)-307(ro)27(ws;)-316(the)-307(b)-28(est)-308(p)-27(erformng)]TJ 0 -11.955 Td [(v)56(alue)-386(w)28(ould)-385(dep)-28(end)-386(on)-385(b)-28(oth)-385(the)-385(arc)27(hitecture)-385(of)-385(the)-386(computer)-385(b)-28(eing)-385(used)-386(and)]TJ 0 -11.955 Td [(on)-450(the)-450(problem)-450(structure.)-794(A)28(t)-450(the)-450(opp)-27(os)-1(it)1(e)-450(extrem)-1(e,)-479(it)-449(w)27(ould)-449(b)-28(e)-450(p)-28(ossible)-450(to)]TJ 0 -11.955 Td [(generate)-310(the)-311(en)28(tire)-310(part)-310(of)-311(a)-310(co)-28(e\016cien)28(t)-311(matrix)-310(residing)-310(on)-310(a)-311(pro)-27(ces)-1(s)-310(and)-310(pass)-310(it)]TJ 0 -11.955 Td [(in)-309(a)-309(single)-309(call)-309(to)]TJ/F30 9.9626 Tf 76.89 0 Td [(psb_spins)]TJ/F8 9.9626 Tf 47.073 0 Td [(;)-317(this,)-314(ho)28(w)28(e)-1(v)28(er,)-314(w)28(ould)-309(en)28(tail)-309(a)-309(doubling)-309(of)-309(memory)]TJ -123.963 -11.955 Td [(o)-28(ccupation,)-333(and)-333(th)27(u)1(s)-334(w)28(ould)-333(b)-28(e)-333(almos)-1(t)-333(alw)28(a)28(ys)-334(far)-333(from)-333(optimal.)]TJ + [-500(Call)-333(the)-334(iterativ)28(e)-333(metho)-28(d)-333(of)-334(c)28(hoice,)-333(e.g.)]TJ/F30 9.9626 Tf 194.023 0 Td [(psb_bicgstab)]TJ/F8 9.9626 Tf -223.69 -20.056 Td [(The)-370(insertion)-370(routines)-370(will)-370(b)-27(e)-370(c)-1(all)1(e)-1(d)-369(as)-370(man)27(y)-370(times)-370(as)-370(needed;)-388(they)-370(only)-370(need)]TJ 0 -11.955 Td [(to)-404(b)-27(e)-404(called)-404(on)-404(the)-403(data)-404(that)-404(is)-403(actually)-404(allo)-28(cated)-403(to)-404(the)-404(curren)28(t)-404(pro)-27(ce)-1(ss,)-421(i.e.)]TJ 0 -11.955 Td [(eac)28(h)-334(pro)-27(cess)-334(generates)-333(its)-334(o)28(wn)-333(data.)]TJ 14.944 -11.988 Td [(In)-326(principle)-326(there)-327(is)-326(no)-326(sp)-28(eci\014c)-326(order)-327(in)-326(the)-326(calls)-327(to)]TJ/F30 9.9626 Tf 225.879 0 Td [(psb_spins)]TJ/F8 9.9626 Tf 47.073 0 Td [(,)-328(nor)-326(is)-326(there)]TJ -287.896 -11.956 Td [(a)-393(requiremen)27(t)-393(to)-393(build)-394(a)-393(matrix)-393(ro)28(w)-394(in)-393(its)-394(en)28(tiret)28(y)-393(b)-28(efore)-393(c)-1(alli)1(ng)-394(the)-393(routine;)]TJ 0 -11.955 Td [(this)-288(allo)28(ws)-288(the)-288(application)-288(programmer)-288(to)-288(w)27(alk)-288(through)-288(the)-288(discretization)-288(mesh)]TJ 0 -11.955 Td [(elemen)28(t)-402(b)28(y)-401(elemen)28(t,)-419(generating)-401(the)-401(main)-401(part)-401(of)-402(a)-401(giv)28(en)-401(matrix)-402(ro)28(w)-401(but)-401(also)]TJ 0 -11.955 Td [(con)28(tributions)-333(to)-334(the)-333(ro)28(ws)-334(corresp)-28(on)1(ding)-334(to)-333(neigh)28(b)-28(ouring)-333(elemen)28(ts)-1(.)]TJ 14.944 -11.988 Td [(F)83(rom)-410(a)-410(functional)-410(p)-28(oin)28(t)-410(of)-410(view)-410(it)-410(is)-410(ev)27(en)-410(p)-27(os)-1(sibl)1(e)-411(to)-410(execute)-410(one)-410(call)-410(for)]TJ -14.944 -11.955 Td [(eac)28(h)-372(nonzero)-372(co)-28(e\016cien)28(t;)-391(ho)27(w)28(ev)28(er)-372(this)-372(w)28(ould)-372(ha)28(v)28(e)-372(a)-372(substan)27(tial)-371(com)-1(p)1(utational)]TJ 0 -11.955 Td [(o)28(v)28(e)-1(r)1(head.)-412(It)-236(is)-236(therefore)-236(advisable)-236(to)-235(pac)27(k)-236(a)-235(certain)-236(amoun)28(t)-236(of)-236(data)-236(in)28(to)-236(eac)28(h)-236(call)]TJ 0 -11.955 Td [(to)-308(the)-307(insertion)-308(routin)1(e)-1(,)-312(sa)28(y)-308(touc)28(hing)-308(on)-307(a)-308(few)-307(tens)-308(of)-307(ro)27(ws;)-316(the)-307(b)-28(est)-308(p)-27(erformng)]TJ 0 -11.956 Td [(v)56(alue)-386(w)28(ould)-385(dep)-28(end)-386(on)-385(b)-28(oth)-385(the)-385(arc)27(hitecture)-385(of)-385(the)-386(computer)-385(b)-28(eing)-385(used)-386(and)]TJ 0 -11.955 Td [(on)-450(the)-450(problem)-450(structure.)-794(A)28(t)-450(the)-450(opp)-27(os)-1(it)1(e)-450(extrem)-1(e,)-479(it)-449(w)27(ould)-449(b)-28(e)-450(p)-28(ossible)-450(to)]TJ 0 -11.955 Td [(generate)-310(the)-311(en)28(tire)-310(part)-310(of)-311(a)-310(co)-28(e\016cien)28(t)-311(matrix)-310(residing)-310(on)-310(a)-311(pro)-27(ces)-1(s)-310(and)-310(pass)-310(it)]TJ 0 -11.955 Td [(in)-309(a)-309(single)-309(call)-309(to)]TJ/F30 9.9626 Tf 76.89 0 Td [(psb_spins)]TJ/F8 9.9626 Tf 47.073 0 Td [(;)-317(this,)-314(ho)28(w)28(e)-1(v)28(er,)-314(w)28(ould)-309(en)28(tail)-309(a)-309(doubling)-309(of)-309(memory)]TJ -123.963 -11.955 Td [(o)-28(ccupation,)-333(and)-333(th)27(u)1(s)-334(w)28(ould)-333(b)-28(e)-333(almos)-1(t)-333(alw)28(a)28(ys)-334(far)-333(from)-333(optimal.)]TJ/F16 11.9552 Tf 0 -28.062 Td [(2.4)-1125(Programming)-375(mo)-31(del)]TJ/F8 9.9626 Tf 0 -18.451 Td [(The)-325(PSBLAS)-324(librarary)-325(is)-325(based)-325(on)-324(the)-325(Single)-325(Program)-324(Multiple)-325(Data)-325(\050SPMD\051)]TJ 0 -11.955 Td [(programming)-413(mo)-28(del:)-603(eac)27(h)-413(pro)-27(cess)-413(participating)-413(in)-413(the)-413(computation)-413(p)-28(erforms)]TJ 0 -11.955 Td [(the)-333(same)-334(actions)-333(on)-333(a)-334(c)28(h)28(unk)-334(of)-333(data.)-444(P)28(arallelism)-334(is)-333(th)28(us)-334(data-driv)28(en.)]TJ 14.944 -11.988 Td [(Because)-389(of)-389(this)-389(structure,)-403(man)28(y)-389(subrouti)1(nes)-389(co)-28(ordinate)-389(their)-389(action)-389(across)]TJ -14.944 -11.955 Td [(the)-478(v)56(arious)-478(pro)-28(cesses,)-514(th)28(us)-478(pro)28(viding)-478(an)-477(implicit)-478(sync)28(hronization)-478(p)-28(oin)28(t,)-514(and)]TJ 0 -11.955 Td [(therefore)]TJ/F17 9.9626 Tf 43.026 0 Td [(must)]TJ/F8 9.9626 Tf 26.326 0 Td [(b)-28(e)-452(called)-452(sim)28(ultaneously)-452(b)28(y)-452(all)-452(pro)-28(cesses)-453(p)1(articipating)-452(in)-452(the)]TJ -69.352 -11.955 Td [(computation.)-597(This)-384(is)-384(certainly)-384(true)-385(for)-384(the)-384(data)-384(allo)-28(cation)-384(and)-384(assem)28(bly)-385(rou-)]TJ 0 -11.955 Td [(tines,)-333(for)-334(all)-333(the)-333(computational)-334(r)1(outines)-334(and)-333(for)-333(some)-334(of)-333(the)-333(to)-28(ols)-334(rou)1(tines)-1(.)]TJ 14.944 -11.988 Td [(Ho)28(w)27(ev)28(er)-490(there)-490(are)-491(man)28(y)-490(cases)-490(where)-491(no)-490(sync)28(hronization,)-529(and)-491(ind)1(e)-1(ed)-490(no)]TJ -14.944 -11.956 Td [(comm)28(unication)-459(among)-458(pro)-28(cesses,)-489(is)-459(implied;)-521(for)-458(instance,)-489(all)-459(the)-458(routines)-458(in)]TJ 0 g 0 G - 169.365 -29.888 Td [(7)]TJ + 169.365 -29.887 Td [(7)]TJ 0 g 0 G ET endstream @@ -3852,7 +3884,7 @@ endobj /Contents 661 0 R /Resources 659 0 R /MediaBox [0 0 595.276 841.89] -/Parent 676 0 R +/Parent 674 0 R >> endobj 662 0 obj << /D [660 0 R /XYZ 99.895 740.998 null] @@ -3861,98 +3893,92 @@ endobj /D [660 0 R /XYZ 99.895 716.092 null] >> endobj 664 0 obj << -/D [660 0 R /XYZ 99.895 685.535 null] +/D [660 0 R /XYZ 99.895 699.864 null] >> endobj 665 0 obj << -/D [660 0 R /XYZ 99.895 613.511 null] +/D [660 0 R /XYZ 99.895 679.808 null] >> endobj 666 0 obj << -/D [660 0 R /XYZ 99.895 588.43 null] +/D [660 0 R /XYZ 99.895 647.797 null] >> endobj 667 0 obj << -/D [660 0 R /XYZ 99.895 563.625 null] +/D [660 0 R /XYZ 99.895 627.741 null] >> endobj 668 0 obj << -/D [660 0 R /XYZ 99.895 526.865 null] +/D [660 0 R /XYZ 99.895 607.685 null] >> endobj 669 0 obj << -/D [660 0 R /XYZ 99.895 502.06 null] +/D [660 0 R /XYZ 99.895 585.88 null] >> endobj 670 0 obj << -/D [660 0 R /XYZ 99.895 477.255 null] +/D [660 0 R /XYZ 99.895 557.919 null] >> endobj 671 0 obj << -/D [660 0 R /XYZ 99.895 449.514 null] +/D [660 0 R /XYZ 99.895 529.682 null] >> endobj 672 0 obj << -/D [660 0 R /XYZ 99.895 419.179 null] +/D [660 0 R /XYZ 99.895 513.399 null] >> endobj 673 0 obj << -/D [660 0 R /XYZ 99.895 388.567 null] ->> endobj -674 0 obj << -/D [660 0 R /XYZ 99.895 369.91 null] +/D [660 0 R /XYZ 99.895 497.394 null] >> endobj -675 0 obj << -/D [660 0 R /XYZ 99.895 351.53 null] +30 0 obj << +/D [660 0 R /XYZ 99.895 258.481 null] >> endobj 659 0 obj << -/Font << /F8 442 0 R /F30 617 0 R >> +/Font << /F8 438 0 R /F30 616 0 R /F16 435 0 R /F17 579 0 R >> /ProcSet [ /PDF /Text ] >> endobj -680 0 obj << -/Length 3504 +677 0 obj << +/Length 1716 >> stream 0 g 0 G 0 g 0 G BT -/F16 11.9552 Tf 150.705 706.129 Td [(2.4)-1125(Programming)-375(mo)-31(del)]TJ/F8 9.9626 Tf 0 -18.389 Td [(The)-325(PSBLAS)-324(librarary)-325(is)-325(based)-324(o)-1(n)-324(the)-325(Single)-325(Program)-324(Multiple)-325(Data)-325(\050SPMD\051)]TJ 0 -11.956 Td [(programming)-413(mo)-28(del:)-603(eac)27(h)-413(pro)-27(cess)-413(participating)-413(in)-413(the)-413(computation)-413(p)-28(erforms)]TJ 0 -11.955 Td [(the)-333(same)-334(actions)-333(on)-333(a)-334(c)28(h)28(unk)-333(of)-334(data.)-444(P)28(arallelism)-334(is)-333(th)28(us)-334(data-d)1(riv)27(en.)]TJ 14.944 -11.955 Td [(Because)-389(of)-389(this)-389(structure,)-402(m)-1(an)28(y)-389(subrou)1(tines)-389(co)-28(ordinate)-389(their)-389(action)-389(across)]TJ -14.944 -11.955 Td [(the)-478(v)56(arious)-478(pro)-28(cesses,)-514(th)28(us)-478(pro)28(viding)-477(a)-1(n)-477(implicit)-478(sync)28(hronization)-478(p)-28(oin)28(t,)-514(and)]TJ 0 -11.955 Td [(therefore)]TJ/F17 9.9626 Tf 43.026 0 Td [(must)]TJ/F8 9.9626 Tf 26.326 0 Td [(b)-28(e)-452(called)-452(sim)28(ultaneously)-452(b)28(y)-452(all)-452(pro)-28(cesses)-452(participating)-452(in)-452(the)]TJ -69.352 -11.956 Td [(computation.)-597(This)-384(is)-384(certainly)-384(true)-385(for)-384(the)-384(data)-384(allo)-28(cation)-384(and)-384(assem)28(bly)-385(rou)1(-)]TJ 0 -11.955 Td [(tines,)-333(for)-334(all)-333(the)-333(computational)-333(routines)-334(and)-333(for)-333(some)-334(of)-333(the)-333(to)-28(ols)-334(r)1(outines.)]TJ 14.944 -11.955 Td [(Ho)28(w)28(e)-1(v)28(er)-490(there)-490(are)-490(m)-1(an)28(y)-490(cases)-490(where)-491(no)-490(sync)28(hronization,)-529(and)-491(in)1(dee)-1(d)-490(no)]TJ -14.944 -11.955 Td [(comm)28(unication)-459(among)-458(pro)-28(cesses,)-489(is)-459(implied;)-521(f)1(or)-459(instance,)-489(all)-459(the)-458(routines)-458(in)]TJ 0 -11.955 Td [(sec.)]TJ +/F8 9.9626 Tf 150.705 706.129 Td [(sec.)]TJ 0 0 1 rg 0 0 1 RG [-421(3.5)]TJ 0 g 0 G - [-421(are)-421(only)-420(acting)-421(on)-421(the)-421(lo)-28(cal)-421(data)-420(structures,)-443(and)-421(th)28(us)-421(ma)28(y)-421(b)-28(e)-421(called)]TJ 0 -11.955 Td [(indep)-28(enden)28(tly)84(.)-917(The)-491(most)-491(imp)-27(ortan)27(t)-490(case)-491(is)-491(that)-491(of)-490(the)-491(co)-28(e\016cien)28(t)-491(insertion)]TJ 0 -11.956 Td [(routines:)-409(since)-263(the)-263(n)27(um)28(b)-28(er)-263(of)-263(co)-27(e\016c)-1(i)1(e)-1(n)28(ts)-263(in)-263(the)-263(sparse)-263(and)-263(dense)-263(matrices)-263(v)55(aries)]TJ 0 -11.955 Td [(among)-323(the)-322(pro)-28(cessors,)-325(and)-323(since)-322(the)-323(user)-323(is)-322(free)-323(to)-323(c)28(ho)-28(ose)-322(an)-323(arbitrary)-323(ord)1(e)-1(r)-322(in)]TJ 0 -11.955 Td [(builiding)-333(the)-333(matrix)-334(en)28(tries,)-333(these)-334(routines)-333(cannot)-333(imply)-334(a)-333(sync)28(hronization.)]TJ 14.944 -11.955 Td [(Throughout)-333(this)-333(use)-1(r)1('s)-334(guide)-333(eac)28(h)-334(subroutine)-333(will)-333(b)-28(e)-333(clearly)-334(indicated)-333(as:)]TJ + [-421(are)-421(only)-420(acting)-421(on)-421(the)-421(lo)-28(cal)-421(data)-420(structures,)-443(and)-421(th)28(us)-421(ma)28(y)-421(b)-28(e)-421(called)]TJ 0 -11.955 Td [(indep)-28(enden)28(tly)84(.)-917(The)-491(most)-491(imp)-27(ortan)27(t)-490(case)-491(is)-491(that)-491(of)-490(the)-491(co)-28(e\016cien)28(t)-491(insertion)]TJ 0 -11.955 Td [(routines:)-409(since)-263(the)-263(n)27(um)28(b)-28(er)-263(of)-263(co)-27(e\016c)-1(i)1(e)-1(n)28(ts)-263(in)-263(the)-263(sparse)-263(and)-263(dense)-263(matrices)-263(v)55(aries)]TJ 0 -11.956 Td [(among)-323(the)-322(pro)-28(cessors,)-325(and)-323(since)-322(the)-323(user)-323(is)-322(free)-323(to)-323(c)28(ho)-28(ose)-322(an)-323(arbitrary)-323(ord)1(e)-1(r)-322(in)]TJ 0 -11.955 Td [(builiding)-333(the)-333(matrix)-334(en)28(tries,)-333(these)-334(routines)-333(cannot)-333(imply)-334(a)-333(sync)28(hronization.)]TJ 14.944 -11.955 Td [(Throughout)-333(this)-333(use)-1(r)1('s)-334(guide)-333(eac)28(h)-334(subroutine)-333(will)-333(b)-28(e)-333(clearly)-334(indicated)-333(as:)]TJ 0 g 0 G /F27 9.9626 Tf -14.944 -19.925 Td [(Sync)32(hronous:)]TJ 0 g 0 G -/F8 9.9626 Tf 71.504 0 Td [(m)28(ust)-359(b)-28(e)-359(called)-359(sim)28(ultaneously)-359(b)28(y)-359(all)-359(the)-359(pro)-28(cesses)-359(in)-359(the)-359(rele-)]TJ -46.597 -11.956 Td [(v)56(an)27(t)-333(comm)28(unication)-333(c)-1(on)28(text;)]TJ +/F8 9.9626 Tf 71.504 0 Td [(m)28(ust)-359(b)-28(e)-359(called)-359(sim)28(ultaneously)-359(b)28(y)-359(all)-359(the)-359(pro)-28(cesses)-359(in)-359(the)-359(rele-)]TJ -46.597 -11.955 Td [(v)56(an)27(t)-333(comm)28(unication)-333(con)27(text;)]TJ 0 g 0 G -/F27 9.9626 Tf -24.907 -19.925 Td [(Async)32(hronous:)]TJ +/F27 9.9626 Tf -24.907 -19.926 Td [(Async)32(hronous:)]TJ 0 g 0 G /F8 9.9626 Tf 78.32 0 Td [(ma)28(y)-334(b)-27(e)-334(called)-333(in)-333(a)-334(totally)-333(indep)-28(enden)28(t)-333(manner.)]TJ 0 g 0 G - 91.045 -366.168 Td [(8)]TJ + 91.045 -504.109 Td [(8)]TJ 0 g 0 G ET endstream endobj -679 0 obj << +676 0 obj << /Type /Page -/Contents 680 0 R -/Resources 678 0 R +/Contents 677 0 R +/Resources 675 0 R /MediaBox [0 0 595.276 841.89] -/Parent 676 0 R -/Annots [ 677 0 R ] +/Parent 674 0 R +/Annots [ 658 0 R ] >> endobj -677 0 obj << +658 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [169.454 565.254 184.177 576.103] +/Rect [169.454 703.195 184.177 714.044] /Subtype /Link /A << /S /GoTo /D (subsection.3.5) >> >> endobj -681 0 obj << -/D [679 0 R /XYZ 150.705 740.998 null] ->> endobj -30 0 obj << -/D [679 0 R /XYZ 150.705 716.092 null] ->> endobj 678 0 obj << -/Font << /F16 439 0 R /F8 442 0 R /F17 584 0 R /F27 441 0 R >> +/D [676 0 R /XYZ 150.705 740.998 null] +>> endobj +675 0 obj << +/Font << /F8 438 0 R /F27 437 0 R >> /ProcSet [ /PDF /Text ] >> endobj -686 0 obj << -/Length 7780 +683 0 obj << +/Length 7759 >> stream 0 g 0 G @@ -3960,1243 +3986,768 @@ stream BT /F16 14.3462 Tf 99.895 706.129 Td [(3)-1125(Data)-375(Structures)]TJ/F8 9.9626 Tf 0 -21.821 Td [(In)-369(th)1(is)-369(c)28(hapter)-369(w)28(e)-369(il)1(lustrate)-369(the)-369(d)1(ata)-369(structures)-369(u)1(s)-1(ed)-368(for)-368(de\014nition)-369(of)-368(routines)]TJ 0 -11.955 Td [(in)28(terfaces.)-796(They)-450(include)-451(data)-450(structures)-450(for)-451(sparse)-450(matrices,)-480(comm)28(unication)]TJ 0 -11.955 Td [(descriptors)-333(and)-334(precondition)1(e)-1(rs.)]TJ 14.944 -11.956 Td [(All)-456(the)-456(data)-455(t)27(yp)-27(es)-456(and)-456(the)-456(basic)-455(subroutine)-456(in)28(terfaces)-456(are)-456(de\014ned)-456(in)-455(the)]TJ -14.944 -11.955 Td [(mo)-28(dule)]TJ/F30 9.9626 Tf 35.635 0 Td [(psb_base_mod)]TJ/F8 9.9626 Tf 62.764 0 Td [(;)-407(this)-382(will)-383(ha)28(v)28(e)-382(to)-383(b)-27(e)-383(included)-382(b)28(y)-383(ev)28(ery)-382(user)-383(subroutin)1(e)]TJ -98.399 -11.955 Td [(that)-333(mak)27(es)-333(use)-333(of)-334(the)-333(library)83(.)]TJ 14.944 -11.955 Td [(Real)-359(and)-359(complex)-358(data)-359(t)28(yp)-28(es)-359(are)-359(parametrized)-359(with)-358(a)-359(kind)-359(t)28(yp)-28(e)-359(de\014ned)-358(in)]TJ -14.944 -11.955 Td [(the)-333(library)-334(as)-333(follo)28(ws:)]TJ 0 g 0 G -/F27 9.9626 Tf 0 -19.363 Td [(psb)]TJ +/F27 9.9626 Tf 0 -18.427 Td [(psb)]TJ ET q -1 0 0 1 117.832 581.458 cm +1 0 0 1 117.832 582.394 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 121.269 581.259 Td [(spk)]TJ +/F27 9.9626 Tf 121.269 582.195 Td [(spk)]TJ ET q -1 0 0 1 138.887 581.458 cm +1 0 0 1 138.887 582.394 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q 0 g 0 G BT -/F8 9.9626 Tf 147.306 581.259 Td [(Kind)-472(parameter)-472(for)-472(short)-472(precision)-473(real)-472(and)-472(complex)-472(data;)-542(corre-)]TJ -22.504 -11.955 Td [(sp)-28(onds)-333(to)-333(a)]TJ/F30 9.9626 Tf 53.522 0 Td [(REAL)]TJ/F8 9.9626 Tf 24.242 0 Td [(declaration)-333(and)-334(i)1(s)-334(normally)-333(4)-333(b)27(ytes.)]TJ +/F8 9.9626 Tf 147.306 582.195 Td [(Kind)-472(parameter)-472(for)-472(short)-472(precision)-473(real)-472(and)-472(complex)-472(data;)-542(corre-)]TJ -22.504 -11.955 Td [(sp)-28(onds)-333(to)-333(a)]TJ/F30 9.9626 Tf 53.522 0 Td [(REAL)]TJ/F8 9.9626 Tf 24.242 0 Td [(declaration)-333(and)-334(i)1(s)-334(normally)-333(4)-333(b)27(ytes.)]TJ 0 g 0 G -/F27 9.9626 Tf -102.671 -19.645 Td [(psb)]TJ +/F27 9.9626 Tf -102.671 -19.177 Td [(psb)]TJ ET q -1 0 0 1 117.832 549.859 cm +1 0 0 1 117.832 551.263 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 121.269 549.659 Td [(dpk)]TJ +/F27 9.9626 Tf 121.269 551.063 Td [(dpk)]TJ ET q -1 0 0 1 140.733 549.859 cm +1 0 0 1 140.733 551.263 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q 0 g 0 G BT -/F8 9.9626 Tf 149.152 549.659 Td [(Kind)-494(parameter)-495(for)-494(long)-495(precision)-494(real)-495(and)-494(complex)-495(d)1(ata;)-576(corr)1(e)-1(-)]TJ -24.35 -11.955 Td [(sp)-28(onds)-333(to)-333(a)]TJ/F30 9.9626 Tf 53.522 0 Td [(DOUBLE)-525(PRECISION)]TJ/F8 9.9626 Tf 87.006 0 Td [(declaration)-333(and)-334(is)-333(normally)-333(8)-333(b)27(ytes.)]TJ -165.435 -19.363 Td [(Moreo)28(v)28(e)-1(r)1(,)-353(the)-349(library)-349(d)1(e)-1(\014)1(nes)-349(a)-349(long)-349(in)28(teger)-349(kind)]TJ/F30 9.9626 Tf 215.384 0 Td [(psb_long_int_k_)]TJ/F8 9.9626 Tf 81.93 0 Td [(whic)28(h)-349(nor-)]TJ -297.314 -11.955 Td [(mally)-332(corresp)-28(onds)-333(to)-332(64-bit)-332(in)28(tege)-1(rs;)-332(it)-333(is)-332(only)-332(used)-333(for)-332(the)]TJ/F30 9.9626 Tf 259.592 0 Td [(psb_sizeof)]TJ/F8 9.9626 Tf 55.615 0 Td [(utilit)28(y)83(.)]TJ/F16 11.9552 Tf -315.207 -27.767 Td [(3.1)-1125(Descriptor)-375(data)-375(structure)]TJ/F8 9.9626 Tf 0 -18.39 Td [(All)-349(the)-349(general)-349(matrix)-349(informations)-349(and)-349(elemen)28(ts)-349(to)-349(b)-28(e)-349(exc)28(hanged)-349(among)-349(pro-)]TJ 0 -11.955 Td [(cesses)-453(are)-453(stored)-453(within)-452(a)-453(data)-453(structure)-452(of)-453(the)-453(t)28(yp)-28(e)]TJ/F30 9.9626 Tf 242.532 0 Td [(psb)]TJ +/F8 9.9626 Tf 149.152 551.063 Td [(Kind)-494(parameter)-495(for)-494(long)-495(precision)-494(real)-495(and)-494(complex)-495(d)1(ata;)-576(corr)1(e)-1(-)]TJ -24.35 -11.955 Td [(sp)-28(onds)-333(to)-333(a)]TJ/F30 9.9626 Tf 53.522 0 Td [(DOUBLE)-525(PRECISION)]TJ/F8 9.9626 Tf 87.006 0 Td [(declaration)-333(and)-334(is)-333(normally)-333(8)-333(b)27(ytes.)]TJ -165.435 -18.427 Td [(Moreo)28(v)28(e)-1(r)1(,)-353(the)-349(library)-349(d)1(e)-1(\014)1(nes)-349(a)-349(long)-349(in)28(teger)-349(kind)]TJ/F30 9.9626 Tf 215.384 0 Td [(psb_long_int_k_)]TJ/F8 9.9626 Tf 81.93 0 Td [(whic)28(h)-349(nor-)]TJ -297.314 -11.955 Td [(mally)-332(corresp)-28(onds)-333(to)-332(64-bit)-332(in)28(tege)-1(rs;)-332(it)-333(is)-332(only)-332(used)-333(for)-332(the)]TJ/F30 9.9626 Tf 259.592 0 Td [(psb_sizeof)]TJ/F8 9.9626 Tf 55.615 0 Td [(utilit)28(y)83(.)]TJ/F16 11.9552 Tf -315.207 -27.566 Td [(3.1)-1125(Descriptor)-375(data)-375(structure)]TJ/F8 9.9626 Tf 0 -18.389 Td [(All)-349(the)-349(general)-349(matrix)-349(informations)-349(and)-349(elemen)28(ts)-349(to)-349(b)-28(e)-349(exc)28(hanged)-349(among)-349(pro-)]TJ 0 -11.956 Td [(cesses)-453(are)-453(stored)-453(within)-452(a)-453(data)-453(structure)-452(of)-453(the)-453(t)28(yp)-28(e)]TJ/F30 9.9626 Tf 242.532 0 Td [(psb)]TJ ET q -1 0 0 1 358.746 448.473 cm +1 0 0 1 358.746 451.015 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 361.884 448.274 Td [(desc)]TJ +/F30 9.9626 Tf 361.884 450.815 Td [(desc)]TJ ET q -1 0 0 1 383.433 448.473 cm +1 0 0 1 383.433 451.015 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 386.571 448.274 Td [(type)]TJ/F8 9.9626 Tf 20.922 0 Td [(.)-803(Ev)28(ery)]TJ -307.598 -11.955 Td [(structure)-392(of)-392(this)-392(t)28(yp)-28(e)-392(is)-392(asso)-28(ciated)-392(to)-392(a)-392(sparse)-392(matrix,)-407(it)-392(con)28(tains)-392(data)-392(ab)-28(out)]TJ 0 -11.955 Td [(general)-333(matrix)-334(informations)-333(and)-333(elemen)28(ts)-334(to)-333(b)-28(e)-333(exc)27(hanged)-333(among)-333(pro)-28(cesses.)]TJ 14.944 -11.955 Td [(It)-222(is)-223(n)1(ot)-223(necessary)-222(for)-222(the)-222(user)-223(to)-222(kno)28(w)-222(the)-223(i)1(n)27(ternal)-222(structure)-222(of)]TJ/F30 9.9626 Tf 268.051 0 Td [(psb_desc_type)]TJ/F8 9.9626 Tf 67.994 0 Td [(,)]TJ -350.989 -11.956 Td [(it)-301(is)-301(set)-300(in)-301(a)-301(transparen)28(t)-301(mo)-28(de)-300(b)28(y)-301(the)-301(to)-28(ols)-301(rou)1(tines)-301(of)-301(Sec.)]TJ +/F30 9.9626 Tf 386.571 450.815 Td [(type)]TJ/F8 9.9626 Tf 20.922 0 Td [(.)-803(Ev)28(ery)]TJ -307.598 -11.955 Td [(structure)-437(of)-438(this)-437(t)28(yp)-28(e)-437(is)-438(asso)-28(ciated)-437(with)-437(a)-438(discretization)-437(pattern)-437(and)-438(enables)]TJ 0 -11.955 Td [(data)-302(comm)28(unications)-301(and)-302(other)-301(op)-28(erations)-302(that)-301(are)-302(necessary)-301(for)-302(implemen)28(ting)]TJ 0 -11.955 Td [(the)-333(v)55(arious)-333(algorithms)-333(of)-334(in)28(terest)-333(to)-334(us.)]TJ 14.944 -11.955 Td [(The)-281(data)-282(structure)-281(itself)]TJ/F30 9.9626 Tf 107.959 0 Td [(psb_desc_type)]TJ/F8 9.9626 Tf 70.797 0 Td [(can)-281(b)-28(e)-281(treate)-1(d)-281(as)-281(an)-281(opaque)-282(ob)-55(ject)]TJ -193.7 -11.955 Td [(handled)-339(via)-339(the)-339(to)-27(ols)-339(routines)-339(of)-339(Sec.)]TJ 0 0 1 rg 0 0 1 RG - [-301(6)]TJ + [-339(6)]TJ 0 g 0 G - [(,)-307(and)-301(its)-300(\014elds)-301(ma)28(y)]TJ 0 -11.955 Td [(b)-28(e)-387(accessed)-387(if)-387(necessary)-387(via)-387(the)-387(routines)-387(of)-387(sec.)]TJ + [-339(and)]TJ 0 0 1 rg 0 0 1 RG - [-387(3.5)]TJ + [-339(3.)1(5)]TJ 0 g 0 G - [(;)-414(nev)28(e)-1(r)1(thele)-1(ss)-387(w)28(e)-387(include)-387(a)]TJ 0 -11.955 Td [(description)-333(for)-334(the)-333(curious)-333(reader:)]TJ + [(;)-342(nev)28(ertheless)-339(w)27(e)-339(in)1(c)-1(l)1(ude)-339(here)-339(a)]TJ 0 -11.956 Td [(description)-333(for)-334(the)-333(curious)-333(reader.)]TJ 14.944 -11.955 Td [(First)-248(w)28(e)-248(describ)-28(e)-248(t)1(he)]TJ/F30 9.9626 Tf 91.264 0 Td [(psb_indx_map)]TJ/F8 9.9626 Tf 65.233 0 Td [(t)28(yp)-28(e.)-416(This)-248(is)-248(a)-247(data)-248(structure)-248(that)-248(k)28(eeps)]TJ -171.441 -11.955 Td [(trac)28(k)-334(of)-333(a)-333(certain)-334(n)28(um)28(b)-28(er)-333(of)-333(basic)-334(issues)-333(suc)28(h)-334(as:)]TJ 0 g 0 G -/F27 9.9626 Tf 0 -19.363 Td [(matrix)]TJ -ET -q -1 0 0 1 134.103 357.379 cm -[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S -Q -BT -/F27 9.9626 Tf 137.54 357.18 Td [(data)]TJ +/F14 9.9626 Tf 14.944 -18.427 Td [(\017)]TJ 0 g 0 G -/F8 9.9626 Tf 26.94 0 Td [(includes)-270(general)-271(information)-270(ab)-28(out)-270(matrix)-270(and)-271(pro)-27(ces)-1(s)-270(grid,)-283(suc)28(h)]TJ -39.678 -11.955 Td [(as)-403(the)-403(comm)28(unication)-403(con)28(text,)-420(the)-403(size)-403(of)-403(the)-403(global)-403(matrix,)-420(the)-403(size)-403(of)]TJ 0 -11.955 Td [(the)-346(p)-28(ortion)-346(of)-346(matrix)-346(stored)-347(on)-346(the)-346(curren)28(t)-346(pro)-28(cess,)-350(and)-346(so)-346(on.)-483(Sp)-28(eci\014ed)]TJ 0 -11.955 Td [(as:)-444(an)-334(allo)-28(catabl)1(e)-334(in)28(teger)-333(arra)27(y)-333(of)-333(dimension)]TJ/F30 9.9626 Tf 197.51 0 Td [(psb_mdata_size_)]TJ/F8 9.9626 Tf 78.455 0 Td [(.)]TJ +/F8 9.9626 Tf 9.963 0 Td [(The)-333(v)55(alue)-333(of)-333(the)-334(comm)28(unication/MPI)-333(con)28(te)-1(x)1(t;)]TJ 0 g 0 G -/F27 9.9626 Tf -300.872 -19.645 Td [(halo)]TJ -ET -q -1 0 0 1 121.428 301.87 cm -[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S -Q -BT -/F27 9.9626 Tf 124.865 301.67 Td [(index)]TJ +/F14 9.9626 Tf -9.963 -19.176 Td [(\017)]TJ 0 g 0 G -/F8 9.9626 Tf 32.192 0 Td [(A)-384(list)-384(of)-385(th)1(e)-385(halo)-384(and)-384(b)-28(oundary)-384(elemen)28(ts)-384(for)-385(th)1(e)-385(curren)28(t)-384(pro)-28(cess)]TJ -32.255 -11.955 Td [(to)-347(b)-28(e)-347(exc)28(hanged)-347(with)-347(other)-347(pro)-28(cesses;)-354(for)-347(ea)-1(c)28(h)-347(pro)-28(cesses)-347(with)-347(whic)28(h)-347(it)-347(is)]TJ 0 -11.955 Td [(necessary)-333(to)-334(comm)28(unicate:)]TJ +/F8 9.9626 Tf 9.963 0 Td [(The)-331(n)28(um)27(b)-27(er)-332(of)-331(indices)-331(in)-331(the)-332(index)-331(space,)-332(i.e.)-443(global)-332(n)28(um)28(b)-28(er)-331(of)-331(ro)28(ws)-332(and)]TJ 0 -11.955 Td [(columns)-333(of)-334(a)-333(sparse)-333(matrix;)]TJ 0 g 0 G - 9.188 -19.644 Td [(1.)]TJ +/F14 9.9626 Tf -9.963 -19.177 Td [(\017)]TJ 0 g 0 G - [-500(Pro)-28(cess)-333(iden)28(ti\014er;)]TJ +/F8 9.9626 Tf 9.963 0 Td [(The)-333(lo)-28(cal)-333(s)-1(et)-333(of)-333(indices,)-334(i)1(ncluding:)]TJ 0 g 0 G - 0 -15.659 Td [(2.)]TJ +/F27 9.9626 Tf 11.208 -19.176 Td [({)]TJ 0 g 0 G - [-500(Num)28(b)-28(er)-333(of)-334(p)-27(oin)28(ts)-334(to)-333(b)-28(e)-333(receiv)27(ed;)]TJ +/F8 9.9626 Tf 10.71 0 Td [(The)-333(n)27(u)1(m)27(b)-27(e)-1(r)-333(of)-333(lo)-28(cal)-333(indices)-334(\050and)-333(lo)-28(cal)-333(ro)28(ws\051;)]TJ 0 g 0 G - 0 -15.659 Td [(3.)]TJ +/F27 9.9626 Tf -10.71 -15.191 Td [({)]TJ 0 g 0 G - [-500(Indices)-333(of)-334(p)-27(oin)27(ts)-333(to)-333(b)-28(e)-333(receiv)27(ed;)]TJ +/F8 9.9626 Tf 10.71 0 Td [(The)-333(n)27(u)1(m)27(b)-27(e)-1(r)-333(of)-333(halo)-333(indices)-334(\050and)-333(therefore)-333(lo)-28(cal)-333(columns\051;)]TJ 0 g 0 G - 0 -15.659 Td [(4.)]TJ +/F27 9.9626 Tf -10.71 -15.191 Td [({)]TJ 0 g 0 G - [-500(Num)28(b)-28(er)-333(of)-334(p)-27(oin)28(ts)-334(to)-333(b)-28(e)-333(sen)27(t;)]TJ +/F8 9.9626 Tf 10.71 0 Td [(The)-333(global)-334(indi)1(c)-1(es)-333(corresp)-28(onding)-333(to)-333(the)-334(lo)-27(cal)-334(ones.)]TJ -46.825 -19.176 Td [(There)-376(are)-377(man)28(y)-376(di\013eren)28(t)-376(sc)27(hemes)-376(for)-376(storing)-376(these)-377(data;)-397(therefore)-376(there)-377(are)-376(a)]TJ 0 -11.955 Td [(n)28(um)28(b)-28(er)-389(of)-389(t)28(yp)-28(es)-389(extending)-389(the)-389(b)1(as)-1(e)-388(one,)-403(and)-389(the)-389(descriptor)-389(structure)-389(holds)-388(a)]TJ 0 -11.956 Td [(p)-28(olymorphic)-290(ob)-56(ject)-290(whose)-291(dynamic)-290(t)28(yp)-28(e)-290(c)-1(an)-290(b)-28(e)-290(an)28(y)-291(of)-290(the)-291(extended)-290(t)28(yp)-28(es.)-430(The)]TJ 0 -11.955 Td [(metho)-28(ds)-333(asso)-28(ciated)-333(with)-334(this)-333(data)-333(t)27(yp)-27(e)-334(answ)28(er)-333(the)-334(foll)1(o)27(wing)-333(queries:)]TJ 0 g 0 G - 0 -15.66 Td [(5.)]TJ +/F14 9.9626 Tf 14.944 -18.427 Td [(\017)]TJ 0 g 0 G - [-500(Indices)-333(of)-334(p)-27(oin)27(ts)-333(to)-333(b)-28(e)-333(sen)27(t;)]TJ -9.188 -19.644 Td [(The)-313(list)-312(ma)27(y)-312(con)27(tain)-312(an)-313(arbitrary)-313(n)28(um)28(b)-28(er)-312(of)-313(groups;)-320(its)-312(end)-313(is)-313(mark)28(ed)-313(b)28(y)]TJ 0 -11.955 Td [(a)-333(-1.)]TJ 0 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(allo)-28(catable)-333(in)28(teger)-333(arra)27(y)-333(of)-333(rank)-334(on)1(e)-1(.)]TJ +/F8 9.9626 Tf 9.963 0 Td [(F)83(or)-271(a)-271(giv)28(en)-272(set)-271(of)-271(lo)-28(cal)-271(indices,)-284(\014nd)-271(the)-271(corresp)-28(onding)-271(indices)-272(i)1(n)-272(the)-271(global)]TJ 0 -11.955 Td [(n)28(um)28(b)-28(ering;)]TJ 0 g 0 G -/F27 9.9626 Tf -24.907 -19.644 Td [(ext)]TJ -ET -q -1 0 0 1 116.336 132.48 cm -[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S -Q -BT -/F27 9.9626 Tf 119.773 132.281 Td [(index)]TJ +/F14 9.9626 Tf -9.963 -19.176 Td [(\017)]TJ 0 g 0 G -/F8 9.9626 Tf 32.192 0 Td [(A)-274(list)-274(of)-273(e)-1(l)1(e)-1(men)28(t)-274(indices)-274(to)-273(b)-28(e)-274(exc)28(hanged)-274(to)-274(implemen)28(t)-274(the)-274(mapping)]TJ -27.163 -11.955 Td [(b)-28(et)28(w)28(een)-334(a)-333(base)-333(descriptor)-334(and)-333(a)-333(descriptor)-334(with)-333(o)28(v)28(erlap.)]TJ +/F8 9.9626 Tf 9.963 0 Td [(F)83(or)-271(a)-271(giv)28(en)-272(set)-271(of)-271(global)-271(indices,)-284(\014nd)-271(the)-271(corres)-1(p)-27(onding)-271(indices)-272(in)-271(the)-271(lo)-28(cal)]TJ 0 -11.955 Td [(n)28(um)28(b)-28(ering,)-333(if)-334(an)28(y)83(,)-333(or)-333(return)-333(an)-334(in)28(v)56(alid)]TJ 0 g 0 G 144.458 -29.888 Td [(9)]TJ 0 g 0 G ET endstream endobj -685 0 obj << +682 0 obj << /Type /Page -/Contents 686 0 R -/Resources 684 0 R +/Contents 683 0 R +/Resources 681 0 R /MediaBox [0 0 595.276 841.89] -/Parent 676 0 R -/Annots [ 682 0 R 683 0 R ] +/Parent 674 0 R +/Annots [ 679 0 R 680 0 R ] >> endobj -682 0 obj << +679 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [355.729 397.52 362.703 408.368] +/Rect [264.639 388.106 271.613 398.954] /Subtype /Link /A << /S /GoTo /D (section.6) >> >> endobj -683 0 obj << +680 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [311.934 385.565 326.656 396.413] +/Rect [292.423 388.106 307.146 398.954] /Subtype /Link /A << /S /GoTo /D (subsection.3.5) >> >> endobj -687 0 obj << -/D [685 0 R /XYZ 99.895 740.998 null] +684 0 obj << +/D [682 0 R /XYZ 99.895 740.998 null] >> endobj 34 0 obj << -/D [685 0 R /XYZ 99.895 716.092 null] +/D [682 0 R /XYZ 99.895 716.092 null] >> endobj 38 0 obj << -/D [685 0 R /XYZ 99.895 490.352 null] ->> endobj -688 0 obj << -/D [685 0 R /XYZ 342.427 448.274 null] ->> endobj -689 0 obj << -/D [685 0 R /XYZ 99.895 269.986 null] +/D [682 0 R /XYZ 99.895 492.894 null] >> endobj -690 0 obj << -/D [685 0 R /XYZ 99.895 254.327 null] ->> endobj -691 0 obj << -/D [685 0 R /XYZ 99.895 238.668 null] ->> endobj -692 0 obj << -/D [685 0 R /XYZ 99.895 223.009 null] ->> endobj -693 0 obj << -/D [685 0 R /XYZ 99.895 207.349 null] +685 0 obj << +/D [682 0 R /XYZ 342.427 450.815 null] >> endobj -684 0 obj << -/Font << /F16 439 0 R /F8 442 0 R /F30 617 0 R /F27 441 0 R >> +681 0 obj << +/Font << /F16 435 0 R /F8 438 0 R /F30 616 0 R /F27 437 0 R /F14 619 0 R >> /ProcSet [ /PDF /Text ] >> endobj -696 0 obj << -/Length 6169 +689 0 obj << +/Length 6608 >> stream 0 g 0 G 0 g 0 G 0 g 0 G BT -/F27 9.9626 Tf 150.705 706.129 Td [(o)32(vrlap)]TJ +/F14 9.9626 Tf 165.649 706.129 Td [(\017)]TJ +0 g 0 G +/F8 9.9626 Tf 9.962 0 Td [(Add)-333(a)-334(global)-333(index)-333(to)-333(the)-334(set)-333(of)-334(h)1(a)-1(l)1(o)-334(indices;)]TJ +0 g 0 G +/F14 9.9626 Tf -9.962 -19.593 Td [(\017)]TJ +0 g 0 G +/F8 9.9626 Tf 9.962 0 Td [(Find)-333(the)-334(pro)-27(cess)-334(o)28(wner)-333(of)-334(eac)28(h)-333(mem)27(b)-27(er)-334(of)-333(a)-333(set)-334(of)-333(global)-333(indices.)]TJ -24.906 -19.261 Td [(All)-355(metho)-28(ds)-355(but)-355(the)-355(last)-355(are)-355(purely)-355(lo)-28(cal;)-366(the)-355(last)-355(metho)-28(d)-355(p)-28(oten)28(tially)-355(requires)]TJ 0 -11.956 Td [(comm)28(unication)-259(among)-258(pro)-28(cesses,)-274(and)-258(th)28(us)-259(is)-258(a)-259(sync)28(hronous)-259(metho)-27(d.)-420(The)-258(c)27(hoice)]TJ 0 -11.955 Td [(of)-309(a)-310(sp)-28(eci\014c)-309(dynamic)-310(t)28(yp)-27(e)-310(for)-309(the)-310(index)-309(map)-310(is)-309(made)-310(at)-309(the)-309(time)-310(the)-309(descriptor)]TJ 0 -11.955 Td [(is)-333(initially)-334(all)1(o)-28(cated,)-334(according)-333(to)-333(the)-334(mo)-27(de)-334(of)-333(initialization)-333(\050see)-334(also)]TJ +0 0 1 rg 0 0 1 RG + [-333(6)]TJ +0 g 0 G + [(\051.)]TJ 14.944 -11.955 Td [(The)-333(descriptor)-334(con)28(ten)28(ts)-333(are)-334(as)-333(follo)28(ws:)]TJ +0 g 0 G +/F27 9.9626 Tf -14.944 -19.261 Td [(indxmap)]TJ +0 g 0 G +/F8 9.9626 Tf 48.422 0 Td [(A)-222(p)-28(olymorphic)-222(v)56(ariable)-223(of)-222(a)-222(t)28(yp)-28(e)-222(that)-222(is)-223(an)28(y)-222(extension)-222(of)-222(the)-223(indx)]TJ +ET +q +1 0 0 1 476.354 600.392 cm +[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +Q +BT +/F8 9.9626 Tf 479.343 600.193 Td [(map)]TJ -303.732 -11.955 Td [(t)28(yp)-28(e)-333(describ)-28(ed)-333(ab)-28(o)28(v)27(e.)]TJ +0 g 0 G +/F27 9.9626 Tf -24.906 -31.549 Td [(halo)]TJ ET q -1 0 0 1 182.684 706.328 cm +1 0 0 1 172.238 556.889 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 186.122 706.129 Td [(index)]TJ +/F27 9.9626 Tf 175.675 556.689 Td [(index)]TJ 0 g 0 G -/F8 9.9626 Tf 32.191 0 Td [(A)-320(list)-320(of)-320(the)-320(o)28(v)28(erlap)-320(eleme)-1(n)28(ts)-320(for)-320(the)-320(curren)28(t)-320(pro)-28(cess,)-322(organized)]TJ -42.702 -11.955 Td [(in)-333(groups)-334(lik)28(e)-333(the)-333(previous)-334(v)28(ector:)]TJ +/F8 9.9626 Tf 32.191 0 Td [(A)-384(list)-384(of)-385(the)-384(halo)-384(and)-384(b)-28(oundary)-384(elemen)28(ts)-384(for)-385(the)-384(curren)28(t)-384(pro)-28(cess)]TJ -32.255 -11.955 Td [(to)-347(b)-28(e)-347(exc)28(hanged)-347(with)-347(other)-348(p)1(ro)-28(cesses;)-354(for)-348(eac)28(h)-347(pro)-28(cesses)-347(with)-347(whic)28(h)-347(it)-347(is)]TJ 0 -11.955 Td [(necessary)-334(to)-333(comm)28(unicate:)]TJ 0 g 0 G - 9.188 -20.46 Td [(1.)]TJ + 9.188 -19.593 Td [(1.)]TJ 0 g 0 G [-500(Pro)-28(cess)-333(iden)28(ti\014er;)]TJ 0 g 0 G - 0 -16.208 Td [(2.)]TJ + 0 -15.608 Td [(2.)]TJ 0 g 0 G [-500(Num)28(b)-28(er)-333(of)-334(p)-27(oin)27(ts)-333(to)-333(b)-28(e)-333(receiv)27(ed;)]TJ 0 g 0 G - 0 -16.208 Td [(3.)]TJ + 0 -15.609 Td [(3.)]TJ 0 g 0 G [-500(Indices)-333(of)-334(p)-27(oin)27(ts)-333(to)-333(b)-28(e)-333(rece)-1(i)1(v)27(ed;)]TJ 0 g 0 G - 0 -16.207 Td [(4.)]TJ + 0 -15.608 Td [(4.)]TJ 0 g 0 G [-500(Num)28(b)-28(er)-333(of)-334(p)-27(oin)27(ts)-333(to)-333(b)-28(e)-333(sen)27(t;)]TJ 0 g 0 G - 0 -16.208 Td [(5.)]TJ + 0 -15.608 Td [(5.)]TJ 0 g 0 G - [-500(Indices)-333(of)-334(p)-27(oin)27(ts)-333(to)-333(b)-28(e)-333(sen)27(t;)]TJ -9.188 -20.46 Td [(The)-313(list)-313(ma)28(y)-312(c)-1(on)28(tain)-312(an)-313(arbitrary)-313(n)28(um)28(b)-28(er)-312(of)-313(groups;)-320(its)-312(end)-313(is)-313(mark)28(ed)-313(b)28(y)]TJ 0 -11.955 Td [(a)-333(-1.)]TJ 0 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(allo)-28(catable)-333(in)28(teger)-334(arr)1(a)27(y)-333(of)-333(rank)-334(one.)]TJ + [-500(Indices)-333(of)-334(p)-27(oin)27(ts)-333(to)-333(b)-28(e)-333(sen)27(t;)]TJ -9.188 -19.593 Td [(The)-313(list)-313(ma)28(y)-312(c)-1(on)28(tain)-312(an)-313(arbitrary)-313(n)28(um)28(b)-28(er)-312(of)-313(groups;)-320(its)-312(end)-313(is)-313(mark)28(ed)-313(b)28(y)]TJ 0 -11.955 Td [(a)-333(-1.)]TJ 0 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(allo)-28(catable)-333(in)28(teger)-334(arr)1(a)27(y)-333(of)-333(rank)-334(one.)]TJ 0 g 0 G -/F27 9.9626 Tf -24.906 -20.46 Td [(o)32(vr)]TJ -ET -q -1 0 0 1 167.568 544.252 cm -[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S -Q -BT -/F27 9.9626 Tf 171.005 544.053 Td [(mst)]TJ +/F27 9.9626 Tf -24.906 -19.594 Td [(ext)]TJ ET q -1 0 0 1 190.214 544.252 cm +1 0 0 1 167.146 387.856 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 193.651 544.053 Td [(idx)]TJ +/F27 9.9626 Tf 170.583 387.656 Td [(index)]TJ 0 g 0 G -/F8 9.9626 Tf 20.576 0 Td [(A)-367(list)-368(to)-367(retriev)27(e)-367(the)-368(v)56(alue)-368(of)-367(eac)28(h)-368(o)28(v)28(erlap)-368(elemen)28(t)-368(from)-367(the)-368(re-)]TJ -38.616 -11.955 Td [(sp)-28(ectiv)28(e)-333(m)-1(aster)-333(pro)-28(cess.)]TJ 0 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(allo)-28(catable)-333(in)28(teger)-334(arr)1(a)27(y)-333(of)-333(rank)-334(one.)]TJ +/F8 9.9626 Tf 32.191 0 Td [(A)-274(list)-274(of)-274(elemen)28(t)-274(indices)-274(to)-273(b)-28(e)-274(exc)28(hanged)-274(to)-274(implemen)28(t)-274(the)-274(mapping)]TJ -27.163 -11.955 Td [(b)-28(et)28(w)28(een)-334(a)-333(base)-333(descriptor)-334(and)-333(a)-333(descriptor)-334(with)-333(o)28(v)28(erlap.)]TJ 0 g 0 G -/F27 9.9626 Tf -24.906 -20.46 Td [(o)32(vrlap)]TJ +/F27 9.9626 Tf -24.906 -19.593 Td [(o)32(vrlap)]TJ ET q -1 0 0 1 182.684 499.882 cm +1 0 0 1 182.684 356.307 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 186.122 499.683 Td [(elem)]TJ +/F27 9.9626 Tf 186.122 356.108 Td [(index)]TJ 0 g 0 G -/F8 9.9626 Tf 28.213 0 Td [(F)83(or)-333(all)-333(o)28(v)27(erlap)-333(p)-28(oin)28(ts)-333(b)-28(elonging)-333(to)-334(th)-333(ecurren)28(t)-333(pro)-28(cess:)]TJ +/F8 9.9626 Tf 32.191 0 Td [(A)-320(list)-320(of)-320(the)-320(o)28(v)28(erlap)-320(eleme)-1(n)28(ts)-320(for)-320(the)-320(curren)28(t)-320(pro)-28(cess,)-322(organized)]TJ -42.702 -11.955 Td [(in)-333(groups)-334(lik)28(e)-333(the)-333(previous)-334(v)28(ector:)]TJ 0 g 0 G - -29.536 -20.46 Td [(1.)]TJ + 9.188 -19.593 Td [(1.)]TJ 0 g 0 G - [-500(Ov)28(erlap)-333(p)-28(oin)28(t)-334(index;)]TJ + [-500(Pro)-28(cess)-333(iden)28(ti\014er;)]TJ 0 g 0 G - 0 -16.208 Td [(2.)]TJ + 0 -15.608 Td [(2.)]TJ 0 g 0 G - [-500(Num)28(b)-28(er)-333(of)-334(pro)-27(cess)-1(es)-333(sharing)-333(that)-333(o)27(v)28(erlap)-333(p)-28(oin)28(ts;)]TJ + [-500(Num)28(b)-28(er)-333(of)-334(p)-27(oin)27(ts)-333(to)-333(b)-28(e)-333(receiv)27(ed;)]TJ +0 g 0 G + 0 -15.608 Td [(3.)]TJ 0 g 0 G - 0 -16.208 Td [(3.)]TJ + [-500(Indices)-333(of)-334(p)-27(oin)27(ts)-333(to)-333(b)-28(e)-333(rece)-1(i)1(v)27(ed;)]TJ +0 g 0 G + 0 -15.609 Td [(4.)]TJ +0 g 0 G + [-500(Num)28(b)-28(er)-333(of)-334(p)-27(oin)27(ts)-333(to)-333(b)-28(e)-333(sen)27(t;)]TJ 0 g 0 G - [-500(Index)-333(of)-334(a)-333(\134master")-333(pro)-28(cess:)]TJ -9.188 -20.46 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(allo)-28(catable)-333(in)28(teger)-334(arr)1(a)27(y)-333(of)-333(rank)-334(t)28(w)28(o.)]TJ + 0 -15.608 Td [(5.)]TJ 0 g 0 G -/F27 9.9626 Tf -24.906 -20.46 Td [(lo)-32(c)]TJ + [-500(Indices)-333(of)-334(p)-27(oin)27(ts)-333(to)-333(b)-28(e)-333(sen)27(t;)]TJ -9.188 -19.593 Td [(The)-313(list)-313(ma)28(y)-312(c)-1(on)28(tain)-312(an)-313(arbitrary)-313(n)28(um)28(b)-28(er)-312(of)-313(groups;)-320(its)-312(end)-313(is)-313(mark)28(ed)-313(b)28(y)]TJ 0 -11.955 Td [(a)-333(-1.)]TJ 0 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(allo)-28(catable)-333(in)28(teger)-334(arr)1(a)27(y)-333(of)-333(rank)-334(one.)]TJ +0 g 0 G +/F27 9.9626 Tf -24.906 -19.594 Td [(o)32(vr)]TJ ET q -1 0 0 1 165.713 406.087 cm +1 0 0 1 167.568 199.23 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 169.151 405.887 Td [(to)]TJ +/F27 9.9626 Tf 171.005 199.03 Td [(mst)]TJ ET q -1 0 0 1 180.022 406.087 cm +1 0 0 1 190.214 199.23 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 183.459 405.887 Td [(glob)]TJ +/F27 9.9626 Tf 193.651 199.03 Td [(idx)]TJ 0 g 0 G -/F8 9.9626 Tf 25.986 0 Td [(eac)28(h)-363(elemen)28(t)]TJ/F11 9.9626 Tf 59.808 0 Td [(i)]TJ/F8 9.9626 Tf 7.046 0 Td [(of)-363(this)-362(arra)27(y)-362(con)28(tains)-363(global)-363(iden)28(ti\014er)-363(of)-362(the)-363(lo)-28(cal)]TJ -100.688 -11.955 Td [(v)56(ariable)]TJ/F11 9.9626 Tf 37.388 0 Td [(i)]TJ/F8 9.9626 Tf 3.432 0 Td [(.)]TJ -40.82 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(allo)-28(catable)-333(in)28(teger)-334(arr)1(a)27(y)-333(of)-333(rank)-334(one.)]TJ +/F8 9.9626 Tf 20.576 0 Td [(A)-367(list)-368(to)-367(retriev)27(e)-367(the)-368(v)56(alue)-368(of)-367(eac)28(h)-368(o)28(v)28(erlap)-368(elemen)28(t)-368(from)-367(the)-368(re-)]TJ -38.616 -11.955 Td [(sp)-28(ectiv)28(e)-333(m)-1(aster)-333(pro)-28(cess.)]TJ 0 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(allo)-28(catable)-333(in)28(teger)-334(arr)1(a)27(y)-333(of)-333(rank)-334(one.)]TJ 0 g 0 G -/F27 9.9626 Tf -24.906 -20.46 Td [(glob)]TJ +/F27 9.9626 Tf -24.906 -19.593 Td [(o)32(vrlap)]TJ ET q -1 0 0 1 172.397 361.716 cm +1 0 0 1 182.684 155.726 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 175.834 361.517 Td [(to)]TJ -ET -q -1 0 0 1 186.705 361.716 cm -[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S -Q -BT -/F27 9.9626 Tf 190.142 361.517 Td [(lo)-32(c,)-383(glb)]TJ -ET -q -1 0 0 1 227.428 361.716 cm -[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S -Q -BT -/F27 9.9626 Tf 230.865 361.517 Td [(lc,)-383(hash)31(v)]TJ -0 g 0 G -/F8 9.9626 Tf 48.805 0 Td [(Con)28(tain)-333(a)-334(mapping)-333(from)-333(global)-334(to)-333(lo)-28(cal)-333(indices.)]TJ -128.965 -20.326 Td [(The)-333(F)83(ortran)-333(95)-334(de\014n)1(ition)-334(for)]TJ/F30 9.9626 Tf 129.459 0 Td [(psb_desc_type)]TJ/F8 9.9626 Tf 71.315 0 Td [(structures)-333(is)-334(as)-333(follo)28(ws:)]TJ -0 g 0 G +/F27 9.9626 Tf 186.122 155.527 Td [(elem)]TJ 0 g 0 G +/F8 9.9626 Tf 28.213 0 Td [(F)83(or)-333(all)-333(o)28(v)27(erlap)-333(p)-28(oin)28(ts)-333(b)-28(elonging)-333(to)-334(th)-333(ecurren)28(t)-333(pro)-28(cess:)]TJ 0 g 0 G -ET -q -1 0 0 1 157.862 316.592 cm -[]0 d 0 J 0.398 w 0 0 m 329.396 0 l S -Q -q -1 0 0 1 158.062 196.509 cm -[]0 d 0 J 0.398 w 0 0 m 0 119.884 l S -Q + -29.536 -19.593 Td [(1.)]TJ 0 g 0 G + [-500(Ov)28(erlap)-333(p)-28(oin)28(t)-334(index;)]TJ 0 g 0 G -BT -/F30 9.9626 Tf 166.231 302.335 Td [(type)-525(psb_desc_type)]TJ 15.691 -11.956 Td [(integer,)-525(allocatable)-525(::)-525(matrix_data\050:\051,)-525(halo_index\050:\051)]TJ 0 -11.955 Td [(integer,)-525(allocatable)-525(::)-525(ext_index\050:\051)]TJ 0 -11.955 Td [(integer,)-525(allocatable)-525(::)-525(ovrlap_elem\050:,:\051)]TJ 0 -11.955 Td [(integer,)-525(allocatable)-525(::)-525(ovrlap_index\050:\051)]TJ 0 -11.955 Td [(integer,)-525(allocatable)-525(::)-525(ovr_mst_idx\050:\051)]TJ 0 -11.956 Td [(integer,)-525(allocatable)-525(::)-525(loc_to_glob\050:\051,)-525(glob_to_loc\050:\051)]TJ 0 -11.955 Td [(integer,)-525(allocatable)-525(::)-525(hashv\050:\051,)-525(glb_lc\050:,:\051)]TJ -15.691 -11.955 Td [(end)-525(type)-525(psb_desc_type)]TJ -ET -q -1 0 0 1 487.059 196.509 cm -[]0 d 0 J 0.398 w 0 0 m 0 119.884 l S -Q -q -1 0 0 1 157.862 196.31 cm -[]0 d 0 J 0.398 w 0 0 m 329.396 0 l S -Q -BT -/F8 9.9626 Tf 150.705 168.271 Td [(Figure)-464(3:)-705(The)-464(PSBLAS)-464(de\014ned)-464(data)-464(t)28(yp)-28(e)-464(th)1(at)-464(con)27(tains)-463(the)-464(comm)27(unication)]TJ 0 -11.956 Td [(descriptor.)]TJ + 0 -15.608 Td [(2.)]TJ 0 g 0 G - 14.944 -24.034 Td [(A)-445(comm)28(unication)-445(descriptor)-445(asso)-28(ciated)-445(with)-445(a)-445(sparse)-445(matrix)-445(has)-445(a)-445(state,)]TJ -14.944 -11.955 Td [(whic)28(h)-334(can)-333(tak)28(e)-333(the)-334(follo)28(wing)-333(v)55(alues:)]TJ + [-500(Num)28(b)-28(er)-333(of)-334(pro)-27(cess)-1(es)-333(sharing)-333(that)-333(o)27(v)28(erlap)-333(p)-28(oin)28(ts;)]TJ 0 g 0 G - 166.874 -29.888 Td [(10)]TJ + 132.78 -29.888 Td [(10)]TJ 0 g 0 G ET endstream endobj -695 0 obj << +688 0 obj << /Type /Page -/Contents 696 0 R -/Resources 694 0 R +/Contents 689 0 R +/Resources 687 0 R /MediaBox [0 0 595.276 841.89] -/Parent 676 0 R +/Parent 674 0 R +/Annots [ 686 0 R ] +>> endobj +686 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [452.103 627.922 459.077 639.877] +/Subtype /Link +/A << /S /GoTo /D (section.6) >> +>> endobj +690 0 obj << +/D [688 0 R /XYZ 150.705 740.998 null] +>> endobj +691 0 obj << +/D [688 0 R /XYZ 150.705 525.03 null] +>> endobj +692 0 obj << +/D [688 0 R /XYZ 150.705 509.422 null] +>> endobj +693 0 obj << +/D [688 0 R /XYZ 150.705 493.814 null] +>> endobj +694 0 obj << +/D [688 0 R /XYZ 150.705 478.206 null] +>> endobj +695 0 obj << +/D [688 0 R /XYZ 150.705 462.598 null] +>> endobj +696 0 obj << +/D [688 0 R /XYZ 150.705 336.404 null] >> endobj 697 0 obj << -/D [695 0 R /XYZ 150.705 740.998 null] +/D [688 0 R /XYZ 150.705 320.796 null] >> endobj 698 0 obj << -/D [695 0 R /XYZ 150.705 685.858 null] +/D [688 0 R /XYZ 150.705 305.188 null] >> endobj 699 0 obj << -/D [695 0 R /XYZ 150.705 669.65 null] +/D [688 0 R /XYZ 150.705 289.58 null] >> endobj 700 0 obj << -/D [695 0 R /XYZ 150.705 653.443 null] +/D [688 0 R /XYZ 150.705 273.972 null] >> endobj 701 0 obj << -/D [695 0 R /XYZ 150.705 637.235 null] +/D [688 0 R /XYZ 150.705 147.778 null] >> endobj 702 0 obj << -/D [695 0 R /XYZ 150.705 621.027 null] ->> endobj -703 0 obj << -/D [695 0 R /XYZ 150.705 491.367 null] ->> endobj -704 0 obj << -/D [695 0 R /XYZ 150.705 475.159 null] +/D [688 0 R /XYZ 150.705 132.17 null] >> endobj -705 0 obj << -/D [695 0 R /XYZ 150.705 458.952 null] ->> endobj -706 0 obj << -/D [695 0 R /XYZ 198.221 180.226 null] ->> endobj -694 0 obj << -/Font << /F27 441 0 R /F8 442 0 R /F11 603 0 R /F30 617 0 R >> +687 0 obj << +/Font << /F14 619 0 R /F8 438 0 R /F27 437 0 R >> /ProcSet [ /PDF /Text ] >> endobj -710 0 obj << -/Length 8374 +705 0 obj << +/Length 7328 >> stream 0 g 0 G 0 g 0 G 0 g 0 G BT -/F27 9.9626 Tf 99.895 706.129 Td [(Build:)]TJ -0 g 0 G -/F8 9.9626 Tf 35.409 0 Td [(State)-306(en)28(tered)-306(after)-307(the)-306(\014rst)-306(allo)-28(cation,)-311(and)-306(b)-28(efore)-306(the)-306(\014rst)-306(assem)27(bly;)-315(in)]TJ -10.502 -11.955 Td [(this)-224(state)-223(it)-224(is)-223(p)-28(ossible)-224(to)-223(add)-224(comm)28(unication)-224(requiremen)28(ts)-224(among)-223(di\013eren)27(t)]TJ 0 -11.955 Td [(pro)-28(cesses.)]TJ +/F8 9.9626 Tf 133.99 706.129 Td [(3.)]TJ 0 g 0 G -/F27 9.9626 Tf -24.907 -20.489 Td [(Assem)32(bled:)]TJ + [-500(Index)-333(of)-334(a)-333(\134master")-333(pro)-28(cess:)]TJ -9.188 -19.963 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(allo)-28(catable)-333(in)28(teger)-333(arra)27(y)-333(of)-333(rank)-334(t)28(w)28(o.)]TJ 0 g 0 G -/F8 9.9626 Tf 61.508 0 Td [(State)-351(en)28(tered)-351(after)-351(the)-350(assem)27(bly;)-359(computations)-351(using)-351(the)-350(ass)-1(o)-27(ci-)]TJ -36.601 -11.955 Td [(ated)-392(sparse)-391(matrix,)-406(suc)28(h)-392(as)-391(m)-1(atr)1(ix-v)27(ector)-391(pro)-28(ducts,)-406(are)-392(only)-391(p)-28(ossible)-391(in)]TJ 0 -11.956 Td [(this)-333(state.)]TJ -24.907 -20.348 Td [(The)-344(global)-344(to)-344(lo)-27(cal)-344(index)-344(mapping)-344(ma)28(y)-344(b)-28(e)-343(stored)-344(in)-344(t)28(w)27(o)-343(di\013eren)27(t)-343(formats:)-466(the)]TJ 0 -11.955 Td [(\014rst)-323(is)-323(simpler)-323(but)-322(more)-323(exp)-28(ensiv)28(e,)-325(as)-323(it)-323(requires)-323(on)-323(eac)28(h)-323(pro)-28(cess)-323(an)-322(amoun)27(t)-322(of)]TJ 0 -11.955 Td [(memory)-368(prop)-28(ortional)-367(to)-368(the)-368(global)-368(size)-368(of)-368(the)-368(index)-368(space;)-385(the)-368(second)-368(is)-368(more)]TJ 0 -11.955 Td [(complex,)-376(but)-368(only)-367(requires)-368(memory)-368(prop)-27(ortional)-368(to)-368(the)-367(lo)-28(cal)-368(index)-367(space)-368(size.)]TJ 0 -11.955 Td [(The)-409(c)28(hoice)-409(is)-409(made)-409(at)-409(the)-409(time)-409(of)-409(the)-409(initialization)-409(according)-409(to)-409(a)-409(threshold;)]TJ 0 -11.955 Td [(this)-333(threshold)-334(ma)28(y)-333(b)-28(e)-333(queried)-334(and)-333(set)-333(using)-334(th)1(e)-334(functions)-333(in)-333(sec.)]TJ -0 0 1 rg 0 0 1 RG - [-334(3.5)]TJ -0 g 0 G - [(.)]TJ/F27 9.9626 Tf 0 -26.644 Td [(3.1.1)-1150(Named)-383(Constan)31(ts)]TJ -0 g 0 G - 0 -18.651 Td [(psb)]TJ +/F27 9.9626 Tf -24.907 -19.962 Td [(bnd)]TJ ET q -1 0 0 1 117.832 512.6 cm +1 0 0 1 119.678 666.403 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 121.269 512.401 Td [(none)]TJ -ET -q -1 0 0 1 145.666 512.6 cm -[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S -Q +/F27 9.9626 Tf 123.115 666.204 Td [(elem)]TJ 0 g 0 G -BT -/F8 9.9626 Tf 154.084 512.401 Td [(Generic)-333(no-op;)]TJ +/F8 9.9626 Tf 28.213 0 Td [(A)-270(list)-269(of)-270(all)-269(b)-28(oundary)-269(p)-28(oin)28(ts,)-283(i.e.)-423(p)-28(oin)28(ts)-269(that)-270(ha)28(v)28(e)-270(a)-269(connection)-270(with)]TJ -26.526 -11.955 Td [(other)-333(pro)-28(cesses.)]TJ -24.907 -19.954 Td [(The)-333(F)83(ortran)-333(2003)-334(declaration)-333(for)]TJ/F30 9.9626 Tf 146.645 0 Td [(psb_desc_type)]TJ/F8 9.9626 Tf 71.315 0 Td [(structures)-333(is)-334(as)-333(follo)28(ws:)]TJ 0 g 0 G -/F27 9.9626 Tf -54.189 -20.489 Td [(psb)]TJ -ET -q -1 0 0 1 117.832 492.111 cm -[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S -Q -BT -/F27 9.9626 Tf 121.269 491.912 Td [(nohalo)]TJ -ET -q -1 0 0 1 154.895 492.111 cm -[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S -Q 0 g 0 G -BT -/F8 9.9626 Tf 163.314 491.912 Td [(Do)-333(not)-334(fetc)28(h)-333(halo)-333(elem)-1(en)28(ts;)]TJ 0 g 0 G -/F27 9.9626 Tf -63.419 -20.489 Td [(psb)]TJ ET q -1 0 0 1 117.832 471.622 cm -[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S +1 0 0 1 107.053 609.946 cm +[]0 d 0 J 0.398 w 0 0 m 329.396 0 l S Q -BT -/F27 9.9626 Tf 121.269 471.423 Td [(halo)]TJ -ET q -1 0 0 1 142.802 471.622 cm -[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S +1 0 0 1 107.252 489.863 cm +[]0 d 0 J 0.398 w 0 0 m 0 119.884 l S Q 0 g 0 G -BT -/F8 9.9626 Tf 151.22 471.423 Td [(F)83(etc)28(h)-333(halo)-334(elemen)28(ts)-333(from)-334(neigh)28(b)-27(ouring)-334(pro)-27(ces)-1(ses;)]TJ 0 g 0 G -/F27 9.9626 Tf -51.325 -20.489 Td [(psb)]TJ -ET -q -1 0 0 1 117.832 451.134 cm -[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S -Q BT -/F27 9.9626 Tf 121.269 450.934 Td [(sum)]TJ +/F30 9.9626 Tf 115.422 595.688 Td [(type)-525(psb_desc_type)]TJ 20.921 -11.955 Td [(class\050psb_indx_map\051,)-525(allocatable)-525(::)-525(indxmap)]TJ 0 -11.955 Td [(integer,)-525(allocatable)-1050(::)-525(halo_index\050:\051)]TJ 0 -11.956 Td [(integer,)-525(allocatable)-1050(::)-525(ext_index\050:\051)]TJ 0 -11.955 Td [(integer,)-525(allocatable)-1050(::)-525(ovrlap_index\050:\051)]TJ 0 -11.955 Td [(integer,)-525(allocatable)-1050(::)-525(ovrlap_elem\050:,:\051)]TJ 0 -11.955 Td [(integer,)-525(allocatable)-1050(::)-525(ovr_mst_idx\050:\051)]TJ 0 -11.955 Td [(integer,)-525(allocatable)-1050(::)-525(bnd_elem\050:\051)]TJ -20.921 -11.955 Td [(end)-525(type)-525(psb_desc_type)]TJ ET q -1 0 0 1 142.388 451.134 cm -[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S +1 0 0 1 436.25 489.863 cm +[]0 d 0 J 0.398 w 0 0 m 0 119.884 l S Q -0 g 0 G -BT -/F8 9.9626 Tf 150.806 450.934 Td [(Sum)-333(o)27(v)28(erlapp)-27(e)-1(d)-333(elemen)28(ts)]TJ -0 g 0 G -/F27 9.9626 Tf -50.911 -20.489 Td [(psb)]TJ -ET q -1 0 0 1 117.832 430.645 cm -[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S +1 0 0 1 107.053 489.663 cm +[]0 d 0 J 0.398 w 0 0 m 329.396 0 l S Q BT -/F27 9.9626 Tf 121.269 430.446 Td [(a)32(vg)]TJ -ET -q -1 0 0 1 138.983 430.645 cm -[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S -Q +/F8 9.9626 Tf 99.895 461.624 Td [(Figure)-464(3:)-705(The)-464(PSBLAS)-464(de\014ned)-464(data)-464(t)28(yp)-28(e)-464(that)-463(con)27(tains)-464(th)1(e)-464(com)-1(m)28(unication)]TJ 0 -11.955 Td [(descriptor.)]TJ 0 g 0 G -BT -/F8 9.9626 Tf 147.401 430.446 Td [(Av)28(erage)-334(o)28(v)28(erlapp)-28(ed)-333(elemen)28(ts)]TJ + 14.944 -23.662 Td [(A)-445(comm)28(unication)-445(descriptor)-445(asso)-28(ciated)-445(with)-445(a)-445(sparse)-445(matrix)-445(has)-445(a)-445(state,)]TJ -14.944 -11.955 Td [(whic)28(h)-334(can)-333(tak)28(e)-333(the)-334(follo)28(wing)-333(v)55(alues:)]TJ 0 g 0 G -/F27 9.9626 Tf -47.506 -20.489 Td [(psb)]TJ -ET -q -1 0 0 1 117.832 410.156 cm -[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S -Q -BT -/F27 9.9626 Tf 121.269 409.957 Td [(comm)]TJ -ET -q -1 0 0 1 151.872 410.156 cm -[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S -Q -BT -/F27 9.9626 Tf 155.309 409.957 Td [(halo)]TJ -ET -q -1 0 0 1 176.842 410.156 cm -[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S -Q +/F27 9.9626 Tf 0 -19.953 Td [(Build:)]TJ 0 g 0 G -BT -/F8 9.9626 Tf 185.26 409.957 Td [(Exc)28(hange)-334(d)1(ata)-334(based)-333(on)-333(the)]TJ/F30 9.9626 Tf 126.387 0 Td [(halo_index)]TJ/F8 9.9626 Tf 55.625 0 Td [(list;)]TJ +/F8 9.9626 Tf 35.409 0 Td [(State)-306(en)28(tered)-306(after)-307(the)-306(\014rst)-306(allo)-28(cation,)-311(and)-306(b)-28(efore)-306(the)-306(\014rst)-306(assem)27(bly;)-315(in)]TJ -10.502 -11.955 Td [(this)-224(state)-223(it)-224(is)-223(p)-28(ossible)-224(to)-223(add)-224(comm)28(unication)-224(requiremen)28(ts)-224(among)-223(di\013eren)27(t)]TJ 0 -11.955 Td [(pro)-28(cesses.)]TJ 0 g 0 G -/F27 9.9626 Tf -267.377 -20.489 Td [(psb)]TJ -ET -q -1 0 0 1 117.832 389.667 cm -[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S -Q -BT -/F27 9.9626 Tf 121.269 389.468 Td [(comm)]TJ -ET -q -1 0 0 1 151.872 389.667 cm -[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S -Q -BT -/F27 9.9626 Tf 155.309 389.468 Td [(ext)]TJ -ET -q -1 0 0 1 171.75 389.667 cm -[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S -Q +/F27 9.9626 Tf -24.907 -19.963 Td [(Assem)32(bled:)]TJ 0 g 0 G -BT -/F8 9.9626 Tf 180.168 389.468 Td [(Exc)28(hange)-334(d)1(ata)-334(based)-333(on)-333(the)]TJ/F30 9.9626 Tf 126.387 0 Td [(ext_index)]TJ/F8 9.9626 Tf 50.394 0 Td [(list;)]TJ +/F8 9.9626 Tf 61.508 0 Td [(State)-351(en)28(tered)-351(after)-351(the)-350(assem)27(bly;)-359(computations)-351(using)-351(the)-350(ass)-1(o)-27(ci-)]TJ -36.601 -11.955 Td [(ated)-392(sparse)-391(matrix,)-406(suc)28(h)-392(as)-391(m)-1(atr)1(ix-v)27(ector)-391(pro)-28(ducts,)-406(are)-392(only)-391(p)-28(ossible)-391(in)]TJ 0 -11.955 Td [(this)-333(state.)]TJ/F27 9.9626 Tf -24.907 -25.946 Td [(3.1.1)-1150(Named)-383(Constan)31(ts)]TJ 0 g 0 G -/F27 9.9626 Tf -257.054 -20.489 Td [(psb)]TJ -ET -q -1 0 0 1 117.832 369.178 cm -[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S -Q -BT -/F27 9.9626 Tf 121.269 368.979 Td [(comm)]TJ + 0 -18.406 Td [(psb)]TJ ET q -1 0 0 1 151.872 369.178 cm +1 0 0 1 117.832 282.163 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 155.309 368.979 Td [(o)32(vr)]TJ +/F27 9.9626 Tf 121.269 281.964 Td [(none)]TJ ET q -1 0 0 1 172.172 369.178 cm +1 0 0 1 145.666 282.163 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q 0 g 0 G BT -/F8 9.9626 Tf 180.59 368.979 Td [(Exc)28(hange)-334(d)1(ata)-334(based)-333(on)-333(the)]TJ/F30 9.9626 Tf 126.387 0 Td [(ovrlap_index)]TJ/F8 9.9626 Tf 66.085 0 Td [(list;)]TJ +/F8 9.9626 Tf 154.084 281.964 Td [(Generic)-333(no-op;)]TJ 0 g 0 G -/F27 9.9626 Tf -273.167 -20.489 Td [(psb)]TJ +/F27 9.9626 Tf -54.189 -19.963 Td [(psb)]TJ ET q -1 0 0 1 117.832 348.69 cm +1 0 0 1 117.832 262.2 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 121.269 348.49 Td [(comm)]TJ +/F27 9.9626 Tf 121.269 262.001 Td [(nohalo)]TJ ET q -1 0 0 1 151.872 348.69 cm +1 0 0 1 154.895 262.2 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q -BT -/F27 9.9626 Tf 155.309 348.49 Td [(mo)32(v)]TJ -ET -q -1 0 0 1 177.001 348.69 cm -[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S -Q -0 g 0 G -BT -/F8 9.9626 Tf 185.419 348.49 Td [(Exc)28(hange)-334(d)1(ata)-334(based)-333(on)-333(the)]TJ/F30 9.9626 Tf 126.388 0 Td [(ovr_mst_idx)]TJ/F8 9.9626 Tf 60.854 0 Td [(list;)]TJ/F16 11.9552 Tf -272.766 -28.636 Td [(3.2)-1125(Sparse)-375(Matrix)-375(data)-375(structure)]TJ/F8 9.9626 Tf 0 -18.651 Td [(The)]TJ/F30 9.9626 Tf 19.747 0 Td [(psb)]TJ -ET -q -1 0 0 1 135.96 301.402 cm -[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S -Q -BT -/F30 9.9626 Tf 139.099 301.203 Td [(spmat)]TJ -ET -q -1 0 0 1 165.878 301.402 cm -[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S -Q -BT -/F30 9.9626 Tf 169.016 301.203 Td [(type)]TJ/F8 9.9626 Tf 23.51 0 Td [(data)-260(structure)-260(con)28(tains)-260(all)-259(information)-260(ab)-28(out)-260(lo)-27(cal)-260(p)-28(ortion)]TJ -92.631 -11.955 Td [(of)-374(the)-374(sparse)-375(matrix)-374(and)-374(its)-374(storage)-374(mo)-28(de.)-567(Most)-374(of)-374(these)-375(\014elds)-374(are)-374(set)-374(b)28(y)-375(the)]TJ 0 -11.955 Td [(to)-28(ols)-349(r)1(outines)-349(when)-349(inserting)-348(a)-349(new)-349(sparse)-348(matrix;)-357(the)-348(user)-349(needs)-349(only)-348(c)27(ho)-27(ose,)]TJ 0 -11.956 Td [(if)-333(he/she)-334(so)-333(whishes,)-333(a)-334(sp)-28(eci\014c)-333(matrix)-333(storage)-334(mo)-27(de.)]TJ -0 g 0 G -/F27 9.9626 Tf 0 -32.303 Td [(aspk)]TJ -0 g 0 G -/F8 9.9626 Tf 27.482 0 Td [(Con)28(tains)-334(v)56(alues)-333(of)-334(the)-333(lo)-28(cal)-333(distributed)-333(sparse)-334(matrix.)]TJ -2.575 -11.955 Td [(Sp)-28(eci\014ed)-431(as:)-639(an)-431(allo)-27(catable)-431(arra)28(y)-431(of)-431(rank)-431(one)-430(of)-431(t)28(yp)-28(e)-431(corresp)-28(onding)-430(to)]TJ 0 -11.955 Td [(matrix)-333(en)27(tr)1(ie)-1(s)-333(t)28(yp)-28(e.)]TJ -0 g 0 G -/F27 9.9626 Tf -24.907 -20.489 Td [(ia1)]TJ -0 g 0 G -/F8 9.9626 Tf 19.462 0 Td [(Holds)-266(in)28(teger)-267(inf)1(ormation)-267(on)-266(distributed)-266(sparse)-266(matrix.)-422(Actual)-266(information)]TJ 5.445 -11.955 Td [(will)-333(dep)-28(end)-333(on)-334(data)-333(format)-333(used.)]TJ 0 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(allo)-28(catable)-333(in)28(teger)-333(arra)27(y)-333(of)-333(rank)-334(on)1(e)-1(.)]TJ -0 g 0 G -/F27 9.9626 Tf -24.907 -20.489 Td [(ia2)]TJ -0 g 0 G -/F8 9.9626 Tf 19.462 0 Td [(Holds)-266(in)28(teger)-267(inf)1(ormation)-267(on)-266(distributed)-266(sparse)-266(matrix.)-422(Actual)-266(information)]TJ 5.445 -11.955 Td [(will)-333(dep)-28(end)-333(on)-334(data)-333(format)-333(used.)]TJ 0 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(allo)-28(catable)-333(in)28(teger)-333(arra)27(y)-333(of)-333(rank)-334(on)1(e)-1(.)]TJ -0 g 0 G - 141.968 -29.888 Td [(11)]TJ -0 g 0 G -ET -endstream -endobj -709 0 obj << -/Type /Page -/Contents 710 0 R -/Resources 708 0 R -/MediaBox [0 0 595.276 841.89] -/Parent 676 0 R -/Annots [ 707 0 R ] ->> endobj -707 0 obj << -/Type /Annot -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [384.052 554.762 398.775 565.61] -/Subtype /Link -/A << /S /GoTo /D (subsection.3.5) >> ->> endobj -711 0 obj << -/D [709 0 R /XYZ 99.895 740.998 null] ->> endobj -42 0 obj << -/D [709 0 R /XYZ 99.895 541.211 null] ->> endobj -46 0 obj << -/D [709 0 R /XYZ 99.895 332.006 null] ->> endobj -712 0 obj << -/D [709 0 R /XYZ 119.642 301.203 null] ->> endobj -708 0 obj << -/Font << /F27 441 0 R /F8 442 0 R /F30 617 0 R /F16 439 0 R >> -/ProcSet [ /PDF /Text ] ->> endobj -716 0 obj << -/Length 8741 ->> -stream -0 g 0 G -0 g 0 G 0 g 0 G BT -/F27 9.9626 Tf 150.705 706.129 Td [(infoa)]TJ +/F8 9.9626 Tf 163.314 262.001 Td [(Do)-333(not)-334(fetc)28(h)-333(halo)-333(elem)-1(en)28(ts;)]TJ 0 g 0 G -/F8 9.9626 Tf 29.327 0 Td [(On)-435(en)28(try)-434(can)-435(hold)-435(auxili)1(ary)-435(information)-435(on)-434(distributed)-435(sparse)-434(matrix.)]TJ -4.421 -11.955 Td [(Actual)-333(information)-334(will)-333(dep)-28(end)-333(on)-333(data)-333(format)-334(used.)]TJ 0 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(in)28(teger)-333(arra)27(y)-333(of)-333(length)]TJ/F30 9.9626 Tf 172.548 0 Td [(psb_ifasize_)]TJ/F8 9.9626 Tf 62.764 0 Td [(.)]TJ -0 g 0 G -/F27 9.9626 Tf -260.218 -21.176 Td [(\014da)]TJ -0 g 0 G -/F8 9.9626 Tf 23.28 0 Td [(De\014nes)-333(the)-334(format)-333(of)-333(the)-334(distributed)-333(sparse)-333(matrix.)]TJ 1.626 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(string)-333(of)-333(le)-1(n)1(gth)-334(5)]TJ -0 g 0 G -/F27 9.9626 Tf -24.906 -21.176 Td [(descra)]TJ -0 g 0 G -/F8 9.9626 Tf 36.496 0 Td [(Describ)-28(e)-333(the)-334(c)28(haracteristic)-333(of)-333(the)-334(distributed)-333(sparse)-333(matrix.)]TJ -11.59 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(arra)28(y)-333(of)-333(c)27(haracter)-333(of)-333(length)-334(9.)]TJ -0 g 0 G -/F27 9.9626 Tf -24.906 -21.175 Td [(pl)]TJ -0 g 0 G -/F8 9.9626 Tf 14.529 0 Td [(Sp)-28(eci\014es)-352(the)-353(lo)-28(cal)-352(ro)28(w)-353(p)-28(erm)28(utation)-352(of)-353(distributed)-352(sparse)-353(matrix.)-502(If)-353(pl\0501\051)-352(is)]TJ 10.377 -11.955 Td [(equal)-333(to)-334(0,)-333(then)-333(there)-334(isn't)-333(ro)28(w)-333(p)-28(erm)28(utation.)]TJ 0 -11.956 Td [(Sp)-28(eci\014ed)-302(as:)-429(an)-302(allo)-28(catable)-302(in)28(teger)-302(arra)28(y)-302(of)-302(dimension)-302(equal)-303(to)-302(n)28(um)28(b)-28(er)-302(of)]TJ 0 -11.955 Td [(lo)-28(cal)-333(ro)28(w)-334(\050matrix)]TJ -ET -q -1 0 0 1 251.815 559.115 cm -[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S -Q -BT -/F8 9.9626 Tf 254.804 558.916 Td [(data[psb)]TJ +/F27 9.9626 Tf -63.419 -19.963 Td [(psb)]TJ ET q -1 0 0 1 292.54 559.115 cm -[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S -Q -BT -/F8 9.9626 Tf 295.529 558.916 Td [(n)]TJ -ET -q -1 0 0 1 301.661 559.115 cm -[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +1 0 0 1 117.832 242.238 cm +[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F8 9.9626 Tf 304.65 558.916 Td [(ro)28(w)]TJ +/F27 9.9626 Tf 121.269 242.038 Td [(halo)]TJ ET q -1 0 0 1 321.05 559.115 cm -[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +1 0 0 1 142.802 242.238 cm +[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q -BT -/F8 9.9626 Tf 324.039 558.916 Td [(]\051)]TJ 0 g 0 G -/F27 9.9626 Tf -173.334 -21.175 Td [(pr)]TJ -0 g 0 G -/F8 9.9626 Tf 16.065 0 Td [(Sp)-28(eci\014es)-512(the)-512(lo)-28(cal)-512(column)-512(p)-27(erm)27(u)1(tation)-512(of)-512(distributed)-512(sparse)-512(matrix.)-981(If)]TJ 8.842 -11.955 Td [(PR\0501\051)-333(is)-334(equal)-333(to)-333(0,)-334(then)-333(there)-333(isn't)-333(c)-1(olu)1(m)-1(n)1(m)-334(p)-28(erm)28(utation.)]TJ 0 -11.956 Td [(Sp)-28(eci\014ed)-302(as:)-429(an)-302(allo)-27(c)-1(atab)1(le)-303(in)28(teger)-302(arra)28(y)-302(of)-302(dimension)-302(equal)-302(to)-303(n)28(um)28(b)-28(er)-302(of)]TJ 0 -11.955 Td [(lo)-28(cal)-333(ro)28(w)-334(\050matrix)]TJ -ET -q -1 0 0 1 251.815 502.074 cm -[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S -Q -BT -/F8 9.9626 Tf 254.804 501.875 Td [(data[psb)]TJ -ET -q -1 0 0 1 292.54 502.074 cm -[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S -Q BT -/F8 9.9626 Tf 295.529 501.875 Td [(n)]TJ -ET -q -1 0 0 1 301.661 502.074 cm -[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S -Q -BT -/F8 9.9626 Tf 304.65 501.875 Td [(col)]TJ -ET -q -1 0 0 1 317.424 502.074 cm -[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S -Q -BT -/F8 9.9626 Tf 320.413 501.875 Td [(]\051)]TJ -0 g 0 G -/F27 9.9626 Tf -169.708 -21.175 Td [(m)]TJ -0 g 0 G -/F8 9.9626 Tf 14.529 0 Td [(Num)28(b)-28(er)-244(of)-243(ro)28(w)-1(s;)-273(if)-244(ro)28(w)-244(indices)-243(are)-244(stored)-244(explicitly)84(,)-262(as)-244(in)-243(Co)-28(ordinate)-244(Storage,)]TJ 10.377 -11.955 Td [(should)-225(b)-27(e)-225(greater)-225(than)-225(or)-224(e)-1(q)1(ual)-225(to)-225(the)-225(maxim)28(um)-225(ro)28(w)-225(index)-224(actually)-225(presen)28(t)]TJ 0 -11.956 Td [(in)-333(the)-334(sparse)-333(matrix.)-444(Sp)-28(eci\014ed)-334(as:)-444(in)28(teger)-334(v)56(ariable.)]TJ -0 g 0 G -/F27 9.9626 Tf -24.906 -21.175 Td [(k)]TJ -0 g 0 G -/F8 9.9626 Tf 11.028 0 Td [(Num)28(b)-28(er)-338(of)-338(columns;)-340(if)-338(column)-338(indices)-338(are)-338(stored)-338(explicitly)84(,)-339(as)-338(in)-338(Co)-28(ordinate)]TJ 13.878 -11.955 Td [(Storage)-227(or)-227(Compressed)-227(Sparse)-227(Ro)28(ws,)-248(should)-227(b)-28(e)-227(greater)-227(than)-227(or)-227(equal)-226(to)-227(the)]TJ 0 -11.955 Td [(maxim)28(um)-374(column)-374(index)-374(actually)-374(presen)28(t)-374(in)-374(the)-374(sparse)-374(matrix.)-567(Sp)-27(eci\014ed)]TJ 0 -11.956 Td [(as:)-445(i)1(n)27(teger)-333(v)56(ariable.)]TJ -24.906 -20.863 Td [(The)-328(F)84(ortran)-328(95)-327(in)28(terface)-328(for)-327(distributed)-328(sparse)-327(matrices)-328(con)28(taining)-327(double)-328(pre-)]TJ 0 -11.955 Td [(cision)-454(real)-454(en)28(tries)-454(is)-455(de\014n)1(e)-1(d)-454(as)-454(sho)28(wn)-454(in)-454(\014gure)]TJ -0 0 1 rg 0 0 1 RG - [-454(5)]TJ -0 g 0 G - [(.)-807(The)-454(de\014nitions)-454(for)-454(single)]TJ 0 -11.955 Td [(precision)-279(and)-280(complex)-279(data)-279(are)-280(iden)28(tical)-279(e)-1(x)1(c)-1(ept)-279(for)-279(the)]TJ/F30 9.9626 Tf 238.28 0 Td [(real)]TJ/F8 9.9626 Tf 23.705 0 Td [(declaration)-279(and)-280(for)]TJ -261.985 -11.955 Td [(the)-333(kind)-334(t)28(yp)-27(e)-334(parameter.)]TJ 14.944 -12.268 Td [(The)-333(follo)28(w)-1(i)1(ng)-334(t)28(w)28(o)-334(cases)-333(are)-333(among)-334(the)-333(most)-334(commonly)-333(used:)]TJ -0 g 0 G -/F27 9.9626 Tf -14.944 -20.863 Td [(\014da=\134CSR")]TJ -0 g 0 G -/F8 9.9626 Tf 67.434 0 Td [(Compressed)-381(storage)-380(b)28(y)-380(ro)27(ws.)-585(In)-381(this)-380(case)-380(the)-381(follo)28(wing)-380(should)]TJ -42.528 -11.955 Td [(hold:)]TJ -0 g 0 G - 9.188 -21.175 Td [(1.)]TJ -0 g 0 G -/F30 9.9626 Tf 12.73 0 Td [(ia2\050i\051)]TJ/F8 9.9626 Tf 36.202 0 Td [(con)28(tains)-484(the)-484(index)-483(of)-484(the)-484(\014rst)-484(elemen)28(t)-484(of)-484(ro)28(w)]TJ/F30 9.9626 Tf 212.909 0 Td [(i)]TJ/F8 9.9626 Tf 5.23 0 Td [(;)-559(the)-484(last)]TJ -254.341 -11.956 Td [(elemen)28(t)-274(of)-273(the)-274(sparse)-273(matrix)-273(is)-274(th)28(us)-273(s)-1(tored)-273(at)-273(index)]TJ/F11 9.9626 Tf 222.702 0 Td [(ia)]TJ/F8 9.9626 Tf 8.698 0 Td [(2\050)]TJ/F11 9.9626 Tf 8.856 0 Td [(m)]TJ/F8 9.9626 Tf 9.768 0 Td [(+)-102(1\051)]TJ/F14 9.9626 Tf 18.644 0 Td [(\000)]TJ/F8 9.9626 Tf 8.769 0 Td [(1.)-424(It)]TJ -277.437 -11.955 Td [(should)-248(con)28(tain)]TJ/F30 9.9626 Tf 65.055 0 Td [(m+1)]TJ/F8 9.9626 Tf 18.164 0 Td [(en)28(tries)-249(in)-248(nondecreasing)-248(order)-248(\050strictly)-248(increasing,)]TJ -83.219 -11.955 Td [(if)-333(there)-334(are)-333(no)-333(empt)27(y)-333(ro)28(ws\051.)]TJ -0 g 0 G - -12.73 -16.565 Td [(2.)]TJ -0 g 0 G -/F30 9.9626 Tf 12.73 0 Td [(ia1\050j\051)]TJ/F8 9.9626 Tf 35.118 0 Td [(con)28(tains)-375(the)-375(column)-375(index)-375(and)]TJ/F30 9.9626 Tf 139.395 0 Td [(aspk\050j\051)]TJ/F8 9.9626 Tf 40.348 0 Td [(con)28(tains)-375(the)-375(corre-)]TJ -214.861 -11.956 Td [(sp)-28(onding)-333(co)-28(e\016cien)28(t)-333(v)55(alue,)-333(for)-333(all)]TJ/F11 9.9626 Tf 146.479 0 Td [(ia)]TJ/F8 9.9626 Tf 8.698 0 Td [(2\0501\051)]TJ/F14 9.9626 Tf 20.479 0 Td [(\024)]TJ/F11 9.9626 Tf 10.516 0 Td [(j)]TJ/F14 9.9626 Tf 7.441 0 Td [(\024)]TJ/F11 9.9626 Tf 10.516 0 Td [(ia)]TJ/F8 9.9626 Tf 8.698 0 Td [(2\050)]TJ/F11 9.9626 Tf 8.856 0 Td [(m)]TJ/F8 9.9626 Tf 10.961 0 Td [(+)-222(1\051)]TJ/F14 9.9626 Tf 21.032 0 Td [(\000)]TJ/F8 9.9626 Tf 9.963 0 Td [(1.)]TJ -0 g 0 G -/F27 9.9626 Tf -310.463 -21.175 Td [(\014da=\134COO")]TJ -0 g 0 G -/F8 9.9626 Tf 69.69 0 Td [(Co)-28(ordinate)-333(storage.)-444(I)-1(n)-333(this)-333(case)-334(the)-333(follo)28(wing)-333(should)-334(hold:)]TJ -0 g 0 G - -35.596 -21.175 Td [(1.)]TJ -0 g 0 G -/F30 9.9626 Tf 12.73 0 Td [(infoa\0501\051)]TJ/F8 9.9626 Tf 45.164 0 Td [(con)28(tains)-334(th)1(e)-334(n)28(um)28(b)-28(er)-333(of)-334(nonzero)-333(elemen)28(ts)-334(in)-333(the)-333(matrix;)]TJ -0 g 0 G - -57.894 -16.566 Td [(2.)]TJ -0 g 0 G - [-500(F)83(or)-269(all)-269(1)]TJ/F14 9.9626 Tf 50.921 0 Td [(\024)]TJ/F11 9.9626 Tf 10.516 0 Td [(j)]TJ/F14 9.9626 Tf 7.44 0 Td [(\024)]TJ/F11 9.9626 Tf 10.516 0 Td [(inf)-108(oa)]TJ/F8 9.9626 Tf 25.457 0 Td [(\0501\051,)-282(the)-270(co)-28(e\016cien)28(t,)-282(ro)28(w)-270(index)-269(and)-269(c)-1(olu)1(m)-1(n)-269(index)]TJ -92.12 -11.955 Td [(are)-333(stored)-334(in)28(to)]TJ/F30 9.9626 Tf 66.805 0 Td [(apsk\050j\051)]TJ/F8 9.9626 Tf 36.613 0 Td [(,)]TJ/F30 9.9626 Tf 6.088 0 Td [(ia1\050j\051)]TJ/F8 9.9626 Tf 34.703 0 Td [(and)]TJ/F30 9.9626 Tf 19.372 0 Td [(ia2\050j\051)]TJ/F8 9.9626 Tf 34.703 0 Td [(resp)-28(ectiv)28(ely)83(.)]TJ -245.108 -21.175 Td [(A)-333(sparse)-334(matrix)-333(has)-333(an)-334(asso)-28(ciated)-333(state,)-333(whic)27(h)-333(can)-333(tak)28(e)-334(the)-333(follo)28(wing)-334(v)56(alues:)]TJ -0 g 0 G - 166.874 -29.888 Td [(12)]TJ +/F8 9.9626 Tf 151.22 242.038 Td [(F)83(etc)28(h)-333(halo)-334(elemen)28(ts)-333(from)-334(neigh)28(b)-27(ouring)-334(pro)-27(ces)-1(ses;)]TJ 0 g 0 G +/F27 9.9626 Tf -51.325 -19.962 Td [(psb)]TJ ET -endstream -endobj -715 0 obj << -/Type /Page -/Contents 716 0 R -/Resources 714 0 R -/MediaBox [0 0 595.276 841.89] -/Parent 676 0 R -/Annots [ 713 0 R ] ->> endobj -713 0 obj << -/Type /Annot -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [365.682 363.997 372.656 374.845] -/Subtype /Link -/A << /S /GoTo /D (figure.5) >> ->> endobj -717 0 obj << -/D [715 0 R /XYZ 150.705 740.998 null] ->> endobj -718 0 obj << -/D [715 0 R /XYZ 150.705 291.019 null] ->> endobj -719 0 obj << -/D [715 0 R /XYZ 150.705 236.097 null] ->> endobj -720 0 obj << -/D [715 0 R /XYZ 150.705 182.345 null] ->> endobj -721 0 obj << -/D [715 0 R /XYZ 150.705 165.779 null] ->> endobj -714 0 obj << -/Font << /F27 441 0 R /F8 442 0 R /F30 617 0 R /F11 603 0 R /F14 620 0 R >> -/ProcSet [ /PDF /Text ] ->> endobj -725 0 obj << -/Length 3645 ->> -stream -0 g 0 G -0 g 0 G -0 g 0 G -0 g 0 G -0 g 0 G -q -1 0 0 1 115.644 705.93 cm -[]0 d 0 J 0.398 w 0 0 m 312.215 0 l S -Q q -1 0 0 1 115.843 217.45 cm -[]0 d 0 J 0.398 w 0 0 m 0 488.28 l S +1 0 0 1 117.832 222.275 cm +[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q -0 g 0 G -0 g 0 G BT -/F30 9.9626 Tf 124.012 691.672 Td [(type)-525(psb_sspmat_type)]TJ 15.691 -11.955 Td [(integer)-2625(::)-525(m,)-525(k)]TJ 0 -11.955 Td [(character)-1575(::)-525(fida\0505\051)]TJ 0 -11.956 Td [(character)-1575(::)-525(descra\05010\051)]TJ 0 -11.955 Td [(integer)-2625(::)-525(infoa\050psb_ifa_size_\051)]TJ 0 -11.955 Td [(real\050psb_spk_\051,)-525(allocatable)-525(::)-525(aspk\050:\051)]TJ 0 -11.955 Td [(integer,)-525(allocatable)-525(::)-525(ia1\050:\051,)-525(ia2\050:\051)]TJ 0 -11.955 Td [(integer,)-525(allocatable)-525(::)-525(pr\050:\051,)-525(pl\050:\051)]TJ -15.691 -11.955 Td [(end)-525(type)-525(psb_sspmat_type)]TJ 0 -23.911 Td [(type)-525(psb_dspmat_type)]TJ 15.691 -11.955 Td [(integer)-2625(::)-525(m,)-525(k)]TJ 0 -11.955 Td [(character)-1575(::)-525(fida\0505\051)]TJ 0 -11.955 Td [(character)-1575(::)-525(descra\05010\051)]TJ 0 -11.955 Td [(integer)-2625(::)-525(infoa\050psb_ifa_size_\051)]TJ 0 -11.956 Td [(real\050psb_dpk_\051,)-525(allocatable)-525(::)-525(aspk\050:\051)]TJ 0 -11.955 Td [(integer,)-525(allocatable)-525(::)-525(ia1\050:\051,)-525(ia2\050:\051)]TJ 0 -11.955 Td [(integer,)-525(allocatable)-525(::)-525(pr\050:\051,)-525(pl\050:\051)]TJ -15.691 -11.955 Td [(end)-525(type)-525(psb_dspmat_type)]TJ 0 -23.91 Td [(type)-525(psb_cspmat_type)]TJ 15.691 -11.956 Td [(integer)-2625(::)-525(m,)-525(k)]TJ 0 -11.955 Td [(character)-1575(::)-525(fida\0505\051)]TJ 0 -11.955 Td [(character)-1575(::)-525(descra\05010\051)]TJ 0 -11.955 Td [(integer)-2625(::)-525(infoa\050psb_ifa_size_\051)]TJ 0 -11.955 Td [(complex\050psb_spk_\051,)-525(allocatable)-525(::)-525(aspk\050:\051)]TJ 0 -11.956 Td [(integer,)-525(allocatable)-525(::)-525(ia1\050:\051,)-525(ia2\050:\051)]TJ 0 -11.955 Td [(integer,)-525(allocatable)-525(::)-525(pr\050:\051,)-525(pl\050:\051)]TJ -15.691 -11.955 Td [(end)-525(type)-525(psb_cspmat_type)]TJ 0 -23.91 Td [(type)-525(psb_zspmat_type)]TJ 15.691 -11.955 Td [(integer)-2625(::)-525(m,)-525(k)]TJ 0 -11.956 Td [(character)-1575(::)-525(fida\0505\051)]TJ 0 -11.955 Td [(character)-1575(::)-525(descra\05010\051)]TJ 0 -11.955 Td [(integer)-2625(::)-525(infoa\050psb_ifa_size_\051)]TJ 0 -11.955 Td [(complex\050psb_dpk_\051,)-525(allocatable)-525(::)-525(aspk\050:\051)]TJ 0 -11.955 Td [(integer,)-525(allocatable)-525(::)-525(ia1\050:\051,)-525(ia2\050:\051)]TJ 0 -11.955 Td [(integer,)-525(allocatable)-525(::)-525(pr\050:\051,)-525(pl\050:\051)]TJ -15.691 -11.956 Td [(end)-525(type)-525(psb_zspmat_type)]TJ +/F27 9.9626 Tf 121.269 222.076 Td [(sum)]TJ ET q -1 0 0 1 427.659 217.45 cm -[]0 d 0 J 0.398 w 0 0 m 0 488.28 l S -Q -q -1 0 0 1 115.644 217.251 cm -[]0 d 0 J 0.398 w 0 0 m 312.215 0 l S +1 0 0 1 142.388 222.275 cm +[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q 0 g 0 G BT -/F8 9.9626 Tf 111.947 189.212 Td [(Figure)-333(4:)-778(The)-333(PSBLAS)-334(de\014ned)-333(data)-333(t)28(yp)-28(e)-334(th)1(at)-334(con)28(tains)-333(a)-334(sparse)-333(matrix.)]TJ -0 g 0 G -0 g 0 G -0 g 0 G -/F27 9.9626 Tf -12.052 -33.552 Td [(Build:)]TJ -0 g 0 G -/F8 9.9626 Tf 35.409 0 Td [(State)-306(en)28(tered)-306(after)-307(the)-306(\014rst)-306(allo)-28(cation,)-311(and)-306(b)-28(efore)-306(the)-306(\014rst)-306(assem)27(bly;)-315(in)]TJ -10.502 -11.955 Td [(this)-333(state)-334(it)-333(is)-333(p)-28(ossible)-334(to)-333(add)-333(nonzero)-333(en)27(tries.)]TJ -0 g 0 G -/F27 9.9626 Tf -24.907 -23.379 Td [(Assem)32(bled:)]TJ -0 g 0 G -/F8 9.9626 Tf 61.508 0 Td [(State)-373(en)27(tered)-373(after)-373(the)-374(assem)28(bly;)-393(computations)-373(us)-1(i)1(ng)-374(the)-373(sparse)]TJ -0 g 0 G - 105.367 -29.888 Td [(13)]TJ +/F8 9.9626 Tf 150.806 222.076 Td [(Sum)-333(o)27(v)28(erlapp)-27(e)-1(d)-333(elemen)28(ts)]TJ 0 g 0 G -ET -endstream -endobj -724 0 obj << -/Type /Page -/Contents 725 0 R -/Resources 723 0 R -/MediaBox [0 0 595.276 841.89] -/Parent 728 0 R ->> endobj -726 0 obj << -/D [724 0 R /XYZ 99.895 740.998 null] ->> endobj -727 0 obj << -/D [724 0 R /XYZ 155.561 201.167 null] ->> endobj -723 0 obj << -/Font << /F30 617 0 R /F8 442 0 R /F27 441 0 R >> -/ProcSet [ /PDF /Text ] ->> endobj -731 0 obj << -/Length 7685 ->> -stream -0 g 0 G -0 g 0 G -BT -/F8 9.9626 Tf 175.611 706.129 Td [(matrix,)-333(suc)27(h)-333(as)-333(matrix-v)28(e)-1(ctor)-333(pro)-28(du)1(c)-1(ts,)-333(are)-333(only)-334(p)-27(ossible)-334(in)-333(this)-333(state;)]TJ -0 g 0 G -/F27 9.9626 Tf -24.906 -21.816 Td [(Up)-32(date:)]TJ -0 g 0 G -/F8 9.9626 Tf 45.302 0 Td [(State)-233(en)27(tered)-233(after)-233(a)-234(r)1(e)-1(in)1(italization;)-267(this)-233(is)-234(used)-233(to)-233(handle)-234(appli)1(c)-1(ation)1(s)]TJ -20.396 -11.955 Td [(in)-395(whic)28(h)-396(the)-395(same)-395(sparsit)28(y)-395(pattern)-396(is)-395(used)-395(m)28(ultiple)-395(times)-396(with)-395(di\013eren)28(t)]TJ 0 -11.955 Td [(co)-28(e\016cien)28(ts.)-427(In)-280(this)-280(state)-280(it)-281(i)1(s)-281(only)-280(p)-27(os)-1(sibl)1(e)-281(to)-280(en)28(ter)-280(co)-28(e\016cien)28(ts)-281(f)1(or)-281(already)]TJ 0 -11.955 Td [(existing)-333(nonzero)-334(en)28(tries.)]TJ/F27 9.9626 Tf -24.906 -28.404 Td [(3.2.1)-1150(Named)-383(Constan)32(ts)]TJ -0 g 0 G - 0 -19.269 Td [(psb)]TJ +/F27 9.9626 Tf -50.911 -19.963 Td [(psb)]TJ ET q -1 0 0 1 168.641 600.974 cm +1 0 0 1 117.832 202.312 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 172.078 600.775 Td [(dupl)]TJ +/F27 9.9626 Tf 121.269 202.113 Td [(a)32(vg)]TJ ET q -1 0 0 1 195.043 600.974 cm -[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S -Q -BT -/F27 9.9626 Tf 198.48 600.775 Td [(o)32(vwrt)]TJ -ET -q -1 0 0 1 228.073 600.974 cm +1 0 0 1 138.983 202.312 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q 0 g 0 G BT -/F8 9.9626 Tf 236.492 600.775 Td [(Duplicate)-315(co)-28(e\016cien)28(ts)-315(should)-315(b)-28(e)-315(o)28(v)28(erwritten)-315(\050i.e.)-438(ignore)-315(du-)]TJ -60.881 -11.955 Td [(plications\051)]TJ +/F8 9.9626 Tf 147.401 202.113 Td [(Av)28(erage)-334(o)28(v)28(erlapp)-28(ed)-333(elemen)28(ts)]TJ 0 g 0 G -/F27 9.9626 Tf -24.906 -21.816 Td [(psb)]TJ +/F27 9.9626 Tf -47.506 -19.962 Td [(psb)]TJ ET q -1 0 0 1 168.641 567.203 cm +1 0 0 1 117.832 182.35 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 172.078 567.004 Td [(dupl)]TJ +/F27 9.9626 Tf 121.269 182.151 Td [(comm)]TJ ET q -1 0 0 1 195.043 567.203 cm +1 0 0 1 151.872 182.35 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 198.48 567.004 Td [(add)]TJ +/F27 9.9626 Tf 155.309 182.151 Td [(halo)]TJ ET q -1 0 0 1 217.467 567.203 cm +1 0 0 1 176.842 182.35 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q 0 g 0 G BT -/F8 9.9626 Tf 225.886 567.004 Td [(Duplicate)-333(co)-28(e\016cien)28(ts)-334(should)-333(b)-28(e)-333(added;)]TJ +/F8 9.9626 Tf 185.26 182.151 Td [(Exc)28(hange)-334(d)1(ata)-334(based)-333(on)-333(the)]TJ/F30 9.9626 Tf 126.387 0 Td [(halo_index)]TJ/F8 9.9626 Tf 55.625 0 Td [(list;)]TJ 0 g 0 G -/F27 9.9626 Tf -75.181 -21.816 Td [(psb)]TJ +/F27 9.9626 Tf -267.377 -19.963 Td [(psb)]TJ ET q -1 0 0 1 168.641 545.387 cm +1 0 0 1 117.832 162.387 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 172.078 545.188 Td [(dupl)]TJ +/F27 9.9626 Tf 121.269 162.188 Td [(comm)]TJ ET q -1 0 0 1 195.043 545.387 cm +1 0 0 1 151.872 162.387 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 198.48 545.188 Td [(err)]TJ +/F27 9.9626 Tf 155.309 162.188 Td [(ext)]TJ ET q -1 0 0 1 213.856 545.387 cm +1 0 0 1 171.75 162.387 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q 0 g 0 G BT -/F8 9.9626 Tf 222.274 545.188 Td [(Duplicate)-333(co)-28(e\016cien)28(ts)-334(should)-333(trigger)-333(an)-334(error)-333(conditino)]TJ +/F8 9.9626 Tf 180.168 162.188 Td [(Exc)28(hange)-334(d)1(ata)-334(based)-333(on)-333(the)]TJ/F30 9.9626 Tf 126.387 0 Td [(ext_index)]TJ/F8 9.9626 Tf 50.394 0 Td [(list;)]TJ 0 g 0 G -/F27 9.9626 Tf -71.569 -21.816 Td [(psb)]TJ +/F27 9.9626 Tf -257.054 -19.963 Td [(psb)]TJ ET q -1 0 0 1 168.641 523.572 cm +1 0 0 1 117.832 142.425 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 172.078 523.372 Td [(up)-32(d)]TJ +/F27 9.9626 Tf 121.269 142.225 Td [(comm)]TJ ET q -1 0 0 1 192.179 523.572 cm +1 0 0 1 151.872 142.425 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 195.616 523.372 Td [(d\015t)]TJ +/F27 9.9626 Tf 155.309 142.225 Td [(o)32(vr)]TJ ET q -1 0 0 1 213.489 523.572 cm +1 0 0 1 172.172 142.425 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q 0 g 0 G BT -/F8 9.9626 Tf 221.907 523.372 Td [(Default)-333(up)-28(date)-333(strategy)-334(for)-333(matrix)-333(co)-28(e\016cien)28(ts;)]TJ +/F8 9.9626 Tf 180.59 142.225 Td [(Exc)28(hange)-334(d)1(ata)-334(based)-333(on)-333(the)]TJ/F30 9.9626 Tf 126.387 0 Td [(ovrlap_index)]TJ/F8 9.9626 Tf 66.085 0 Td [(list;)]TJ 0 g 0 G -/F27 9.9626 Tf -71.202 -21.816 Td [(psb)]TJ +/F27 9.9626 Tf -273.167 -19.962 Td [(psb)]TJ ET q -1 0 0 1 168.641 501.756 cm +1 0 0 1 117.832 122.462 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 172.078 501.556 Td [(up)-32(d)]TJ +/F27 9.9626 Tf 121.269 122.263 Td [(comm)]TJ ET q -1 0 0 1 192.179 501.756 cm +1 0 0 1 151.872 122.462 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 195.616 501.556 Td [(src)32(h)]TJ +/F27 9.9626 Tf 155.309 122.263 Td [(mo)32(v)]TJ ET q -1 0 0 1 216.68 501.756 cm +1 0 0 1 177.001 122.462 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q 0 g 0 G BT -/F8 9.9626 Tf 225.098 501.556 Td [(Up)-28(date)-333(strategy)-333(base)-1(d)-333(on)-333(searc)28(h)-334(in)28(to)-333(the)-334(data)-333(structure;)]TJ +/F8 9.9626 Tf 185.419 122.263 Td [(Exc)28(hange)-334(d)1(ata)-334(based)-333(on)-333(the)]TJ/F30 9.9626 Tf 126.388 0 Td [(ovr_mst_idx)]TJ/F8 9.9626 Tf 60.854 0 Td [(list;)]TJ +0 g 0 G + -105.891 -31.825 Td [(11)]TJ 0 g 0 G -/F27 9.9626 Tf -74.393 -21.815 Td [(psb)]TJ -ET -q -1 0 0 1 168.641 479.94 cm -[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S -Q -BT -/F27 9.9626 Tf 172.078 479.741 Td [(up)-32(d)]TJ -ET -q -1 0 0 1 192.179 479.94 cm -[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S -Q -BT -/F27 9.9626 Tf 195.616 479.741 Td [(p)-32(erm)]TJ ET -q -1 0 0 1 222.504 479.94 cm -[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S -Q +endstream +endobj +704 0 obj << +/Type /Page +/Contents 705 0 R +/Resources 703 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 674 0 R +>> endobj +706 0 obj << +/D [704 0 R /XYZ 99.895 740.998 null] +>> endobj +707 0 obj << +/D [704 0 R /XYZ 99.895 716.092 null] +>> endobj +708 0 obj << +/D [704 0 R /XYZ 147.412 473.579 null] +>> endobj +42 0 obj << +/D [704 0 R /XYZ 99.895 312.335 null] +>> endobj +703 0 obj << +/Font << /F8 438 0 R /F27 437 0 R /F30 616 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +712 0 obj << +/Length 7793 +>> +stream +0 g 0 G 0 g 0 G BT -/F8 9.9626 Tf 230.922 479.741 Td [(Up)-28(date)-398(strategy)-398(based)-398(on)-398(additional)-398(p)-28(erm)28(utation)-398(data)-398(\050s)-1(ee)]TJ -55.311 -11.956 Td [(to)-28(ols)-333(routine)-333(desc)-1(r)1(iption\051.)]TJ/F16 11.9552 Tf -24.906 -30.396 Td [(3.3)-1125(Dense)-375(V)94(ector)-375(Data)-375(Structure)]TJ/F8 9.9626 Tf 0 -19.269 Td [(The)]TJ/F30 9.9626 Tf 20.327 0 Td [(psb)]TJ +/F16 11.9552 Tf 150.705 706.129 Td [(3.2)-1125(Sparse)-375(Matrix)-375(data)-375(structure)]TJ/F8 9.9626 Tf 0 -18.452 Td [(The)]TJ/F30 9.9626 Tf 21.748 0 Td [(psb)]TJ ET q -1 0 0 1 187.351 418.32 cm +1 0 0 1 188.772 687.876 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 190.489 418.12 Td [(vect)]TJ +/F30 9.9626 Tf 191.91 687.677 Td [(spmat)]TJ ET q -1 0 0 1 212.038 418.32 cm +1 0 0 1 218.689 687.876 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 215.177 418.12 Td [(type)]TJ/F8 9.9626 Tf 24.091 0 Td [(data)-318(structure)-318(con)28(tains)-319(all)-318(information)-318(ab)-27(out)-319(lo)-27(cal)-319(p)-27(ortion)]TJ -88.563 -11.955 Td [(of)-374(the)-374(sparse)-375(matrix)-374(and)-374(its)-374(storage)-374(mo)-28(de.)-567(Most)-374(of)-374(these)-375(\014elds)-374(are)-374(set)-374(b)28(y)-375(the)]TJ 0 -11.955 Td [(to)-28(ols)-348(routines)-349(when)-349(inserting)-348(a)-349(new)-349(sparse)-348(matrix;)-357(the)-348(user)-349(needs)-349(only)-348(c)27(ho)-27(ose,)]TJ 0 -11.955 Td [(if)-333(he/she)-334(so)-333(whishes,)-333(a)-334(sp)-28(eci\014c)-333(matrix)-333(storage)-334(mo)-27(de.)]TJ -0 g 0 G -/F27 9.9626 Tf 0 -33.298 Td [(aspk)]TJ +/F30 9.9626 Tf 221.827 687.677 Td [(type)]TJ/F8 9.9626 Tf 25.512 0 Td [(data)-461(structure)-460(c)-1(on)28(tains)-460(all)-461(information)-461(ab)-27(out)-461(the)-461(lo)-28(cal)]TJ -96.634 -11.955 Td [(p)-28(ortion)-350(of)-351(the)-350(sparse)-351(matrix)-350(and)-351(its)-350(storage)-351(mo)-28(de.)-496(Most)-350(of)-351(these)-350(\014elds)-351(are)-350(set)]TJ 0 -11.955 Td [(b)28(y)-373(the)-372(to)-28(ols)-373(routines)-372(when)-373(inserting)-373(a)-372(new)-373(sparse)-373(matrix;)-392(the)-372(user)-373(needs)-373(only)]TJ 0 -11.955 Td [(c)28(ho)-28(ose,)-333(if)-334(he/she)-333(so)-333(whishes,)-334(a)-333(sp)-28(eci\014c)-333(matrix)-334(storage)-333(mo)-28(de.)]TJ 14.944 -11.989 Td [(The)]TJ 0 g 0 G -/F8 9.9626 Tf 27.481 0 Td [(Con)28(tains)-334(v)56(alues)-333(of)-334(the)-333(lo)-28(cal)-333(distributed)-333(sparse)-334(matrix.)]TJ -2.574 -11.956 Td [(Sp)-28(eci\014ed)-430(as)-1(:)-639(an)-431(allo)-27(catable)-431(arra)28(y)-431(of)-431(rank)-431(on)1(e)-431(of)-431(t)28(yp)-28(e)-431(corresp)-28(ondin)1(g)-431(to)]TJ 0 -11.955 Td [(matrix)-333(en)28(tries)-334(t)28(yp)-28(e.)]TJ +/F27 9.9626 Tf -14.944 -20.026 Td [(aspk)]TJ 0 g 0 G -/F27 9.9626 Tf -24.907 -21.816 Td [(ia1)]TJ +/F8 9.9626 Tf 27.481 0 Td [(Con)28(tains)-334(v)56(alues)-333(of)-334(the)-333(lo)-28(cal)-333(distributed)-333(sparse)-334(matrix.)]TJ -2.575 -11.955 Td [(Sp)-28(eci\014ed)-431(as:)-639(an)-431(allo)-27(catable)-431(arra)28(y)-431(of)-431(rank)-431(one)-430(of)-431(t)28(yp)-28(e)-431(corresp)-28(onding)-430(to)]TJ 0 -11.955 Td [(matrix)-333(en)27(tries)-333(t)28(yp)-28(e.)]TJ 0 g 0 G -/F8 9.9626 Tf 19.462 0 Td [(Holds)-266(in)28(teger)-267(in)1(formation)-267(on)-266(distributed)-266(sparse)-266(matrix.)-422(Actual)-266(information)]TJ 5.445 -11.955 Td [(will)-333(dep)-28(end)-333(on)-334(data)-333(format)-333(used.)]TJ 0 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-444(an)-334(allo)-28(catable)-333(in)28(teger)-333(arra)27(y)-333(of)-333(rank)-333(one.)]TJ +/F27 9.9626 Tf -24.906 -20.059 Td [(ia1)]TJ 0 g 0 G -/F27 9.9626 Tf -24.907 -21.816 Td [(ia2)]TJ +/F8 9.9626 Tf 19.461 0 Td [(Holds)-266(in)28(teger)-267(infor)1(m)-1(ation)-266(on)-266(distributed)-266(sparse)-266(matrix.)-422(Actual)-266(information)]TJ 5.445 -11.956 Td [(will)-333(dep)-28(end)-333(on)-334(data)-333(format)-333(used.)]TJ 0 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(allo)-28(catable)-333(in)28(teger)-334(arr)1(a)27(y)-333(of)-333(rank)-334(one.)]TJ 0 g 0 G -/F8 9.9626 Tf 19.462 0 Td [(Holds)-266(in)28(teger)-267(in)1(formation)-267(on)-266(distributed)-266(sparse)-266(matrix.)-422(Actual)-266(information)]TJ 5.445 -11.955 Td [(will)-333(dep)-28(end)-333(on)-334(data)-333(format)-333(used.)]TJ 0 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-444(an)-334(allo)-28(catable)-333(in)28(teger)-333(arra)27(y)-333(of)-333(rank)-333(one.)]TJ +/F27 9.9626 Tf -24.906 -20.059 Td [(ia2)]TJ 0 g 0 G -/F27 9.9626 Tf -24.907 -21.816 Td [(infoa)]TJ +/F8 9.9626 Tf 19.461 0 Td [(Holds)-266(in)28(teger)-267(infor)1(m)-1(ation)-266(on)-266(distributed)-266(sparse)-266(matrix.)-422(Actual)-266(information)]TJ 5.445 -11.955 Td [(will)-333(dep)-28(end)-333(on)-334(data)-333(format)-333(used.)]TJ 0 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(allo)-28(catable)-333(in)28(teger)-334(arr)1(a)27(y)-333(of)-333(rank)-334(one.)]TJ 0 g 0 G -/F8 9.9626 Tf 29.327 0 Td [(On)-435(en)28(try)-434(can)-435(hold)-435(auxiliar)1(y)-435(information)-435(on)-434(distributed)-435(sparse)-434(matrix.)]TJ -4.42 -11.955 Td [(Actual)-333(information)-333(will)-334(dep)-27(e)-1(nd)-333(on)-333(data)-333(format)-334(used.)]TJ 0 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-444(a)-1(n)-333(in)28(teger)-333(arra)27(y)-333(of)-333(length)]TJ/F30 9.9626 Tf 172.547 0 Td [(psb_ifasize_)]TJ/F8 9.9626 Tf 62.764 0 Td [(.)]TJ +/F27 9.9626 Tf -24.906 -20.06 Td [(infoa)]TJ 0 g 0 G -/F27 9.9626 Tf -260.218 -21.816 Td [(\014da)]TJ -0 g 0 G -/F8 9.9626 Tf 23.281 0 Td [(De\014nes)-333(the)-334(format)-333(of)-333(the)-334(distrib)1(uted)-334(sparse)-333(matrix.)]TJ 1.626 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-444(a)-334(string)-333(of)-333(length)-334(5)]TJ -0 g 0 G -/F27 9.9626 Tf -24.907 -21.816 Td [(descra)]TJ -0 g 0 G -/F8 9.9626 Tf 36.496 0 Td [(Describ)-28(e)-333(the)-334(c)28(haracteristic)-333(of)-333(the)-334(distributed)-333(sparse)-333(matrix.)]TJ -11.589 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-444(a)-1(r)1(ra)27(y)-333(of)-333(c)27(har)1(ac)-1(ter)-333(of)-333(length)-333(9.)]TJ +/F8 9.9626 Tf 29.327 0 Td [(On)-435(en)28(try)-434(can)-435(hold)-435(auxili)1(ary)-435(information)-435(on)-434(distributed)-435(sparse)-434(matrix.)]TJ -4.421 -11.955 Td [(Actual)-333(information)-334(will)-333(dep)-28(end)-333(on)-333(data)-333(format)-334(used.)]TJ 0 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(in)28(teger)-333(arra)27(y)-333(of)-333(length)]TJ/F30 9.9626 Tf 172.548 0 Td [(psb_ifasize_)]TJ/F8 9.9626 Tf 62.764 0 Td [(.)]TJ 0 g 0 G - 141.967 -29.888 Td [(14)]TJ +/F27 9.9626 Tf -260.218 -20.059 Td [(\014da)]TJ 0 g 0 G -ET -endstream -endobj -730 0 obj << -/Type /Page -/Contents 731 0 R -/Resources 729 0 R -/MediaBox [0 0 595.276 841.89] -/Parent 728 0 R ->> endobj -732 0 obj << -/D [730 0 R /XYZ 150.705 740.998 null] ->> endobj -50 0 obj << -/D [730 0 R /XYZ 150.705 630.535 null] ->> endobj -54 0 obj << -/D [730 0 R /XYZ 150.705 449.319 null] ->> endobj -733 0 obj << -/D [730 0 R /XYZ 171.032 418.12 null] ->> endobj -729 0 obj << -/Font << /F8 442 0 R /F27 441 0 R /F16 439 0 R /F30 617 0 R >> -/ProcSet [ /PDF /Text ] ->> endobj -737 0 obj << -/Length 9027 ->> -stream +/F8 9.9626 Tf 23.28 0 Td [(De\014nes)-333(the)-334(format)-333(of)-333(the)-334(distributed)-333(sparse)-333(matrix.)]TJ 1.626 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(string)-333(of)-333(le)-1(n)1(gth)-334(5)]TJ 0 g 0 G +/F27 9.9626 Tf -24.906 -20.06 Td [(descra)]TJ 0 g 0 G +/F8 9.9626 Tf 36.496 0 Td [(Describ)-28(e)-333(the)-334(c)28(haracteristic)-333(of)-333(the)-334(distributed)-333(sparse)-333(matrix.)]TJ -11.59 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(arra)28(y)-333(of)-333(c)27(haracter)-333(of)-333(length)-334(9.)]TJ 0 g 0 G -BT -/F27 9.9626 Tf 99.895 706.129 Td [(pl)]TJ +/F27 9.9626 Tf -24.906 -20.059 Td [(pl)]TJ 0 g 0 G -/F8 9.9626 Tf 14.529 0 Td [(Sp)-28(eci\014es)-352(the)-353(lo)-28(cal)-352(ro)28(w)-353(p)-28(erm)28(utation)-353(of)-352(distributed)-352(s)-1(p)1(arse)-353(matrix.)-502(If)-353(pl\0501\051)-352(is)]TJ 10.378 -11.955 Td [(equal)-333(to)-334(0,)-333(then)-333(there)-334(isn't)-333(ro)28(w)-333(p)-28(erm)28(utation.)]TJ 0 -11.955 Td [(Sp)-28(eci\014ed)-302(as:)-429(an)-302(allo)-28(catable)-302(in)28(teger)-302(arra)28(y)-302(of)-302(dimension)-302(equal)-302(to)-303(n)28(um)28(b)-28(er)-302(of)]TJ 0 -11.956 Td [(lo)-28(cal)-333(ro)28(w)-334(\050matrix)]TJ +/F8 9.9626 Tf 14.529 0 Td [(Sp)-28(eci\014es)-352(the)-353(lo)-28(cal)-352(ro)28(w)-353(p)-28(erm)28(utation)-352(of)-353(distributed)-352(sparse)-353(matrix.)-502(If)-353(pl\0501\051)-352(is)]TJ 10.377 -11.955 Td [(equal)-333(to)-334(0,)-333(then)-333(there)-334(isn't)-333(ro)28(w)-333(p)-28(erm)28(utation.)]TJ 0 -11.955 Td [(Sp)-28(eci\014ed)-302(as:)-429(an)-302(allo)-28(catable)-302(in)28(teger)-302(arra)28(y)-302(of)-302(dimension)-302(equal)-303(to)-302(n)28(um)28(b)-28(er)-302(of)]TJ 0 -11.955 Td [(lo)-28(cal)-333(ro)28(w)-334(\050matrix)]TJ ET q -1 0 0 1 201.005 670.463 cm +1 0 0 1 251.815 344.224 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 203.994 670.263 Td [(data[psb)]TJ +/F8 9.9626 Tf 254.804 344.025 Td [(data[psb)]TJ ET q -1 0 0 1 241.73 670.463 cm +1 0 0 1 292.54 344.224 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 244.719 670.263 Td [(n)]TJ +/F8 9.9626 Tf 295.529 344.025 Td [(n)]TJ ET q -1 0 0 1 250.852 670.463 cm +1 0 0 1 301.661 344.224 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 253.841 670.263 Td [(ro)28(w)]TJ +/F8 9.9626 Tf 304.65 344.025 Td [(ro)28(w)]TJ ET q -1 0 0 1 270.24 670.463 cm +1 0 0 1 321.05 344.224 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 273.229 670.263 Td [(]\051)]TJ +/F8 9.9626 Tf 324.039 344.025 Td [(]\051)]TJ 0 g 0 G -/F27 9.9626 Tf -173.334 -20.089 Td [(pr)]TJ +/F27 9.9626 Tf -173.334 -20.06 Td [(pr)]TJ 0 g 0 G -/F8 9.9626 Tf 16.065 0 Td [(Sp)-28(eci\014es)-512(the)-512(lo)-28(cal)-512(column)-512(p)-27(erm)27(utation)-511(of)-512(distributed)-512(sparse)-512(matrix.)-981(If)]TJ 8.842 -11.955 Td [(PR\0501\051)-333(is)-334(equal)-333(to)-333(0,)-334(then)-333(there)-333(isn't)-334(columnm)-333(p)-28(erm)28(utation.)]TJ 0 -11.955 Td [(Sp)-28(eci\014ed)-302(as:)-429(an)-302(allo)-28(catable)-302(in)28(teger)-302(arra)28(y)-302(of)-302(dimension)-302(equal)-302(to)-303(n)28(um)28(b)-28(er)-302(of)]TJ 0 -11.955 Td [(lo)-28(cal)-333(ro)28(w)-334(\050matrix)]TJ +/F8 9.9626 Tf 16.065 0 Td [(Sp)-28(eci\014es)-512(the)-512(lo)-28(cal)-512(column)-512(p)-27(erm)27(u)1(tation)-512(of)-512(distributed)-512(sparse)-512(matrix.)-981(If)]TJ 8.842 -11.955 Td [(PR\0501\051)-333(is)-334(equal)-333(to)-333(0,)-334(then)-333(there)-333(isn't)-333(c)-1(olu)1(m)-1(n)1(m)-334(p)-28(erm)28(utation.)]TJ 0 -11.955 Td [(Sp)-28(eci\014ed)-302(as:)-429(an)-302(allo)-27(c)-1(atab)1(le)-303(in)28(teger)-302(arra)28(y)-302(of)-302(dimension)-302(equal)-302(to)-303(n)28(um)28(b)-28(er)-302(of)]TJ 0 -11.955 Td [(lo)-28(cal)-333(ro)28(w)-334(\050matrix)]TJ ET q -1 0 0 1 201.005 614.508 cm +1 0 0 1 251.815 288.299 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 203.994 614.309 Td [(data[psb)]TJ +/F8 9.9626 Tf 254.804 288.1 Td [(data[psb)]TJ ET q -1 0 0 1 241.73 614.508 cm +1 0 0 1 292.54 288.299 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 244.719 614.309 Td [(n)]TJ +/F8 9.9626 Tf 295.529 288.1 Td [(n)]TJ ET q -1 0 0 1 250.852 614.508 cm +1 0 0 1 301.661 288.299 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 253.841 614.309 Td [(col)]TJ +/F8 9.9626 Tf 304.65 288.1 Td [(col)]TJ ET q -1 0 0 1 266.615 614.508 cm +1 0 0 1 317.424 288.299 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 269.604 614.309 Td [(]\051)]TJ -0 g 0 G -/F27 9.9626 Tf -169.709 -20.089 Td [(m)]TJ -0 g 0 G -/F8 9.9626 Tf 14.529 0 Td [(Num)28(b)-28(er)-244(of)-243(ro)27(ws;)-273(if)-244(ro)28(w)-244(indices)-243(are)-244(stored)-244(explicitly)84(,)-262(as)-244(in)-243(Co)-28(ordinate)-244(Storage,)]TJ 10.378 -11.956 Td [(should)-225(b)-27(e)-225(greater)-225(than)-225(or)-224(equal)-225(to)-225(the)-225(maxim)28(um)-225(ro)28(w)-225(index)-224(actually)-225(presen)28(t)]TJ 0 -11.955 Td [(in)-333(the)-334(sparse)-333(matrix.)-444(Sp)-28(eci\014ed)-333(as)-1(:)-444(in)28(teger)-333(v)55(ariable.)]TJ -0 g 0 G -/F27 9.9626 Tf -24.907 -20.089 Td [(k)]TJ -0 g 0 G -/F8 9.9626 Tf 11.028 0 Td [(Num)28(b)-28(er)-338(of)-338(columns;)-340(if)-338(column)-338(indices)-338(are)-338(stored)-338(explicitly)84(,)-339(as)-338(in)-338(Co)-28(ordinate)]TJ 13.879 -11.955 Td [(Storage)-227(or)-227(Compressed)-227(Sparse)-227(Ro)28(ws,)-248(should)-227(b)-28(e)-227(greater)-227(than)-227(or)-226(e)-1(qu)1(al)-227(to)-227(the)]TJ 0 -11.955 Td [(maxim)28(um)-374(column)-374(index)-374(actually)-374(presen)28(t)-374(in)-374(the)-374(sparse)-374(matrix.)-567(Sp)-27(eci\014ed)]TJ 0 -11.955 Td [(as:)-444(in)27(teger)-333(v)56(ariable.)]TJ -24.907 -20.048 Td [(The)-328(F)84(ortran)-328(95)-327(in)28(terface)-328(for)-327(distributed)-328(sparse)-327(matrices)-328(con)28(taining)-327(double)-328(pre-)]TJ 0 -11.956 Td [(cision)-454(real)-454(en)28(tries)-455(i)1(s)-455(de\014ned)-454(as)-454(sho)28(wn)-454(in)-454(\014gure)]TJ -0 0 1 rg 0 0 1 RG - [-454(5)]TJ -0 g 0 G - [(.)-807(The)-454(de\014nitions)-454(for)-454(single)]TJ 0 -11.955 Td [(precision)-279(and)-280(complex)-279(data)-280(are)-279(iden)28(tical)-280(except)-279(for)-279(the)]TJ/F30 9.9626 Tf 238.281 0 Td [(real)]TJ/F8 9.9626 Tf 23.704 0 Td [(declaration)-279(and)-280(for)]TJ -261.985 -11.955 Td [(the)-333(kind)-334(t)28(yp)-28(e)-333(parameter.)]TJ 14.944 -11.996 Td [(The)-333(follo)27(wing)-333(t)28(w)28(o)-334(cases)-333(are)-334(among)-333(the)-333(most)-334(commonly)-333(used:)]TJ -0 g 0 G -/F27 9.9626 Tf -14.944 -20.048 Td [(\014da=\134CSR")]TJ -0 g 0 G -/F8 9.9626 Tf 67.435 0 Td [(Compressed)-380(s)-1(t)1(o)-1(r)1(age)-381(b)28(y)-380(ro)27(ws.)-585(In)-381(th)1(is)-381(case)-380(the)-381(follo)28(wing)-380(should)]TJ -42.528 -11.955 Td [(hold:)]TJ -0 g 0 G - 9.188 -20.09 Td [(1.)]TJ -0 g 0 G -/F30 9.9626 Tf 12.73 0 Td [(ia2\050i\051)]TJ/F8 9.9626 Tf 36.202 0 Td [(con)28(tains)-484(the)-484(index)-483(of)-484(the)-484(\014rst)-484(elemen)28(t)-484(of)-484(r)1(o)27(w)]TJ/F30 9.9626 Tf 212.908 0 Td [(i)]TJ/F8 9.9626 Tf 5.23 0 Td [(;)-559(the)-484(last)]TJ -254.34 -11.955 Td [(elemen)28(t)-274(of)-273(the)-274(sparse)-273(matrix)-273(is)-274(th)28(us)-273(store)-1(d)-273(at)-273(index)]TJ/F11 9.9626 Tf 222.702 0 Td [(ia)]TJ/F8 9.9626 Tf 8.698 0 Td [(2\050)]TJ/F11 9.9626 Tf 8.856 0 Td [(m)]TJ/F8 9.9626 Tf 9.767 0 Td [(+)-102(1\051)]TJ/F14 9.9626 Tf 18.645 0 Td [(\000)]TJ/F8 9.9626 Tf 8.769 0 Td [(1.)-424(It)]TJ -277.437 -11.955 Td [(should)-248(con)28(tain)]TJ/F30 9.9626 Tf 65.055 0 Td [(m+1)]TJ/F8 9.9626 Tf 18.164 0 Td [(en)28(tries)-249(i)1(n)-249(nondecreasing)-248(order)-248(\050strictly)-248(increasing,)]TJ -83.219 -11.955 Td [(if)-333(there)-334(are)-333(no)-333(empt)27(y)-333(ro)28(ws\051.)]TJ -0 g 0 G - -12.73 -16.022 Td [(2.)]TJ -0 g 0 G -/F30 9.9626 Tf 12.73 0 Td [(ia1\050j\051)]TJ/F8 9.9626 Tf 35.118 0 Td [(con)28(tains)-375(the)-375(column)-375(index)-375(and)]TJ/F30 9.9626 Tf 139.394 0 Td [(aspk\050j\051)]TJ/F8 9.9626 Tf 40.349 0 Td [(con)28(tains)-375(the)-375(corre-)]TJ -214.861 -11.955 Td [(sp)-28(onding)-333(co)-28(e\016cien)28(t)-333(v)55(alue,)-333(for)-333(all)]TJ/F11 9.9626 Tf 146.479 0 Td [(ia)]TJ/F8 9.9626 Tf 8.698 0 Td [(2\0501\051)]TJ/F14 9.9626 Tf 20.479 0 Td [(\024)]TJ/F11 9.9626 Tf 10.516 0 Td [(j)]TJ/F14 9.9626 Tf 7.44 0 Td [(\024)]TJ/F11 9.9626 Tf 10.516 0 Td [(ia)]TJ/F8 9.9626 Tf 8.699 0 Td [(2\050)]TJ/F11 9.9626 Tf 8.855 0 Td [(m)]TJ/F8 9.9626 Tf 10.962 0 Td [(+)-222(1\051)]TJ/F14 9.9626 Tf 21.032 0 Td [(\000)]TJ/F8 9.9626 Tf 9.962 0 Td [(1.)]TJ -0 g 0 G -/F27 9.9626 Tf -310.462 -20.09 Td [(\014da=\134COO")]TJ -0 g 0 G -/F8 9.9626 Tf 69.689 0 Td [(Co)-28(ordinate)-333(storage.)-445(In)-333(this)-333(case)-334(the)-333(follo)28(wing)-333(should)-334(hold:)]TJ -0 g 0 G - -35.595 -20.089 Td [(1.)]TJ -0 g 0 G -/F30 9.9626 Tf 12.73 0 Td [(infoa\0501\051)]TJ/F8 9.9626 Tf 45.164 0 Td [(con)28(tains)-333(the)-334(n)28(um)28(b)-28(er)-333(of)-334(nonzero)-333(elemen)28(ts)-334(in)-333(the)-333(matrix;)]TJ -0 g 0 G - -57.894 -16.022 Td [(2.)]TJ -0 g 0 G - [-500(F)83(or)-269(all)-269(1)]TJ/F14 9.9626 Tf 50.92 0 Td [(\024)]TJ/F11 9.9626 Tf 10.516 0 Td [(j)]TJ/F14 9.9626 Tf 7.441 0 Td [(\024)]TJ/F11 9.9626 Tf 10.516 0 Td [(inf)-108(oa)]TJ/F8 9.9626 Tf 25.457 0 Td [(\0501\051,)-282(the)-270(co)-27(e)-1(\016cien)28(t,)-282(ro)28(w)-270(index)-269(and)-269(c)-1(ol)1(umn)-270(index)]TJ -92.12 -11.955 Td [(are)-333(stored)-334(in)28(to)]TJ/F30 9.9626 Tf 66.805 0 Td [(apsk\050j\051)]TJ/F8 9.9626 Tf 36.612 0 Td [(,)]TJ/F30 9.9626 Tf 6.089 0 Td [(ia1\050j\051)]TJ/F8 9.9626 Tf 34.703 0 Td [(and)]TJ/F30 9.9626 Tf 19.372 0 Td [(ia2\050j\051)]TJ/F8 9.9626 Tf 34.702 0 Td [(resp)-28(ectiv)28(ely)83(.)]TJ -245.107 -20.089 Td [(A)-333(sparse)-334(matrix)-333(has)-333(an)-334(asso)-28(ciated)-333(state,)-333(whic)28(h)-334(can)-333(tak)28(e)-334(the)-333(follo)28(wing)-333(v)55(alues:)]TJ -0 g 0 G -/F27 9.9626 Tf 0 -20.048 Td [(Build:)]TJ +/F8 9.9626 Tf 320.413 288.1 Td [(]\051)]TJ 0 g 0 G -/F8 9.9626 Tf 35.408 0 Td [(State)-306(en)28(tered)-307(af)1(te)-1(r)-306(the)-306(\014rst)-306(allo)-28(cation,)-311(and)-306(b)-28(efore)-306(the)-306(\014rst)-306(assem)27(bly;)-315(in)]TJ -10.502 -11.955 Td [(this)-333(state)-334(it)-333(is)-333(p)-28(ossible)-334(to)-333(add)-333(nonzero)-333(en)27(tries.)]TJ +/F27 9.9626 Tf -169.708 -20.059 Td [(m)]TJ 0 g 0 G -/F27 9.9626 Tf -24.906 -20.09 Td [(Assem)32(bled:)]TJ +/F8 9.9626 Tf 14.529 0 Td [(Num)28(b)-28(er)-244(of)-243(ro)28(w)-1(s;)-273(if)-244(ro)28(w)-244(indices)-243(are)-244(stored)-244(explicitly)84(,)-262(as)-244(in)-243(Co)-28(ordinate)-244(Storage,)]TJ 10.377 -11.956 Td [(should)-225(b)-27(e)-225(greater)-225(than)-225(or)-224(e)-1(q)1(ual)-225(to)-225(the)-225(maxim)28(um)-225(ro)28(w)-225(index)-224(actually)-225(presen)28(t)]TJ 0 -11.955 Td [(in)-333(the)-334(sparse)-333(matrix.)-444(Sp)-28(eci\014ed)-334(as:)-444(in)28(teger)-334(v)56(ariable.)]TJ 0 g 0 G -/F8 9.9626 Tf 61.507 0 Td [(State)-373(en)27(tered)-373(after)-373(the)-374(assem)28(bly;)-393(computations)-374(u)1(s)-1(i)1(ng)-374(the)-373(sparse)]TJ -36.601 -11.955 Td [(matrix,)-333(suc)27(h)-333(as)-333(matrix-v)28(ec)-1(tor)-333(pro)-28(du)1(c)-1(ts,)-333(are)-333(only)-333(p)-28(ossible)-334(in)-333(this)-333(state;)]TJ +/F27 9.9626 Tf -24.906 -20.059 Td [(k)]TJ 0 g 0 G -/F27 9.9626 Tf -24.906 -20.089 Td [(Up)-32(date:)]TJ +/F8 9.9626 Tf 11.028 0 Td [(Num)28(b)-28(er)-338(of)-338(columns;)-340(if)-338(column)-338(indices)-338(are)-338(stored)-338(explicitly)84(,)-339(as)-338(in)-338(Co)-28(ordinate)]TJ 13.878 -11.955 Td [(Storage)-227(or)-227(Compressed)-227(Sparse)-227(Ro)28(ws,)-248(should)-227(b)-28(e)-227(greater)-227(than)-227(or)-227(equal)-226(to)-227(the)]TJ 0 -11.955 Td [(maxim)28(um)-374(column)-374(index)-374(actually)-374(presen)28(t)-374(in)-374(the)-374(sparse)-374(matrix.)-567(Sp)-27(eci\014ed)]TJ 0 -11.955 Td [(as:)-445(i)1(n)27(teger)-333(v)56(ariable.)]TJ -24.906 -20.026 Td [(The)-328(F)84(ortran)-328(95)-327(in)28(terface)-328(for)-327(distributed)-328(sparse)-327(matrices)-328(con)28(taining)-327(double)-328(pre-)]TJ 0 -11.955 Td [(cision)-454(real)-454(en)28(tries)-454(is)-455(de\014n)1(e)-1(d)-454(as)-454(sho)28(wn)-454(in)-454(\014gure)]TJ +0 0 1 rg 0 0 1 RG + [-454(4)]TJ 0 g 0 G -/F8 9.9626 Tf 45.302 0 Td [(State)-233(en)27(tered)-233(after)-233(a)-233(reinitalization;)-267(this)-233(is)-234(used)-233(to)-233(handle)-234(app)1(lications)]TJ -20.396 -11.955 Td [(in)-395(whic)28(h)-396(th)1(e)-396(same)-395(sparsit)28(y)-395(pattern)-396(is)-395(used)-395(m)28(ultiple)-395(times)-396(with)-395(di\013eren)28(t)]TJ 0 -11.955 Td [(co)-28(e\016cien)28(ts.)-427(In)-280(this)-280(state)-280(it)-280(is)-281(only)-280(p)-27(oss)-1(ib)1(le)-281(to)-280(en)28(ter)-280(co)-28(e\016cien)28(ts)-280(for)-281(already)]TJ 0 -11.955 Td [(existing)-333(nonzero)-334(en)28(tries.)]TJ + [(.)-807(The)-454(de\014nitions)-454(for)-454(single)]TJ 0 -11.956 Td [(precision)-279(and)-280(complex)-279(data)-279(are)-280(iden)28(tical)-279(e)-1(x)1(c)-1(ept)-279(for)-279(the)]TJ/F30 9.9626 Tf 238.28 0 Td [(real)]TJ/F8 9.9626 Tf 23.705 0 Td [(declaration)-279(and)-280(for)]TJ -261.985 -11.955 Td [(the)-333(kind)-334(t)28(yp)-27(e)-334(parameter.)]TJ 14.944 -11.988 Td [(The)-333(follo)28(w)-1(i)1(ng)-334(t)28(w)28(o)-334(cases)-333(are)-333(among)-334(the)-333(most)-334(commonly)-333(used:)]TJ 0 g 0 G - 141.968 -31.825 Td [(15)]TJ + 151.93 -29.888 Td [(12)]TJ 0 g 0 G ET endstream endobj -736 0 obj << +711 0 obj << /Type /Page -/Contents 737 0 R -/Resources 735 0 R +/Contents 712 0 R +/Resources 710 0 R /MediaBox [0 0 595.276 841.89] -/Parent 728 0 R -/Annots [ 734 0 R ] +/Parent 674 0 R +/Annots [ 709 0 R ] >> endobj -734 0 obj << +709 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [314.873 479.418 321.846 490.266] +/Rect [365.682 153.291 372.656 164.139] /Subtype /Link -/A << /S /GoTo /D (figure.5) >> ->> endobj -738 0 obj << -/D [736 0 R /XYZ 99.895 740.998 null] +/A << /S /GoTo /D (figure.4) >> >> endobj -739 0 obj << -/D [736 0 R /XYZ 99.895 408.341 null] ->> endobj -740 0 obj << -/D [736 0 R /XYZ 99.895 353.963 null] +713 0 obj << +/D [711 0 R /XYZ 150.705 740.998 null] >> endobj -741 0 obj << -/D [736 0 R /XYZ 99.895 302.383 null] +46 0 obj << +/D [711 0 R /XYZ 150.705 716.092 null] >> endobj -742 0 obj << -/D [736 0 R /XYZ 99.895 286.361 null] +714 0 obj << +/D [711 0 R /XYZ 172.453 687.677 null] >> endobj -735 0 obj << -/Font << /F27 441 0 R /F8 442 0 R /F30 617 0 R /F11 603 0 R /F14 620 0 R >> +710 0 obj << +/Font << /F16 435 0 R /F8 438 0 R /F30 616 0 R /F27 437 0 R >> /ProcSet [ /PDF /Text ] >> endobj -745 0 obj << -/Length 3677 +718 0 obj << +/Length 3623 >> stream 0 g 0 G @@ -5205,367 +4756,510 @@ stream 0 g 0 G 0 g 0 G q -1 0 0 1 166.453 705.93 cm +1 0 0 1 115.644 705.93 cm []0 d 0 J 0.398 w 0 0 m 312.215 0 l S Q q -1 0 0 1 166.652 217.45 cm +1 0 0 1 115.843 217.45 cm []0 d 0 J 0.398 w 0 0 m 0 488.28 l S Q 0 g 0 G 0 g 0 G BT -/F30 9.9626 Tf 174.822 691.672 Td [(type)-525(psb_sspmat_type)]TJ 15.691 -11.955 Td [(integer)-2625(::)-525(m,)-525(k)]TJ 0 -11.955 Td [(character)-1575(::)-525(fida\0505\051)]TJ 0 -11.956 Td [(character)-1575(::)-525(descra\05010\051)]TJ 0 -11.955 Td [(integer)-2625(::)-525(infoa\050psb_ifa_size_\051)]TJ 0 -11.955 Td [(real\050psb_spk_\051,)-525(allocatable)-525(::)-525(aspk\050:\051)]TJ 0 -11.955 Td [(integer,)-525(allocatable)-525(::)-525(ia1\050:\051,)-525(ia2\050:\051)]TJ 0 -11.955 Td [(integer,)-525(allocatable)-525(::)-525(pr\050:\051,)-525(pl\050:\051)]TJ -15.691 -11.955 Td [(end)-525(type)-525(psb_sspmat_type)]TJ 0 -23.911 Td [(type)-525(psb_dspmat_type)]TJ 15.691 -11.955 Td [(integer)-2625(::)-525(m,)-525(k)]TJ 0 -11.955 Td [(character)-1575(::)-525(fida\0505\051)]TJ 0 -11.955 Td [(character)-1575(::)-525(descra\05010\051)]TJ 0 -11.955 Td [(integer)-2625(::)-525(infoa\050psb_ifa_size_\051)]TJ 0 -11.956 Td [(real\050psb_dpk_\051,)-525(allocatable)-525(::)-525(aspk\050:\051)]TJ 0 -11.955 Td [(integer,)-525(allocatable)-525(::)-525(ia1\050:\051,)-525(ia2\050:\051)]TJ 0 -11.955 Td [(integer,)-525(allocatable)-525(::)-525(pr\050:\051,)-525(pl\050:\051)]TJ -15.691 -11.955 Td [(end)-525(type)-525(psb_dspmat_type)]TJ 0 -23.91 Td [(type)-525(psb_cspmat_type)]TJ 15.691 -11.956 Td [(integer)-2625(::)-525(m,)-525(k)]TJ 0 -11.955 Td [(character)-1575(::)-525(fida\0505\051)]TJ 0 -11.955 Td [(character)-1575(::)-525(descra\05010\051)]TJ 0 -11.955 Td [(integer)-2625(::)-525(infoa\050psb_ifa_size_\051)]TJ 0 -11.955 Td [(complex\050psb_spk_\051,)-525(allocatable)-525(::)-525(aspk\050:\051)]TJ 0 -11.956 Td [(integer,)-525(allocatable)-525(::)-525(ia1\050:\051,)-525(ia2\050:\051)]TJ 0 -11.955 Td [(integer,)-525(allocatable)-525(::)-525(pr\050:\051,)-525(pl\050:\051)]TJ -15.691 -11.955 Td [(end)-525(type)-525(psb_cspmat_type)]TJ 0 -23.91 Td [(type)-525(psb_zspmat_type)]TJ 15.691 -11.955 Td [(integer)-2625(::)-525(m,)-525(k)]TJ 0 -11.956 Td [(character)-1575(::)-525(fida\0505\051)]TJ 0 -11.955 Td [(character)-1575(::)-525(descra\05010\051)]TJ 0 -11.955 Td [(integer)-2625(::)-525(infoa\050psb_ifa_size_\051)]TJ 0 -11.955 Td [(complex\050psb_dpk_\051,)-525(allocatable)-525(::)-525(aspk\050:\051)]TJ 0 -11.955 Td [(integer,)-525(allocatable)-525(::)-525(ia1\050:\051,)-525(ia2\050:\051)]TJ 0 -11.955 Td [(integer,)-525(allocatable)-525(::)-525(pr\050:\051,)-525(pl\050:\051)]TJ -15.691 -11.956 Td [(end)-525(type)-525(psb_zspmat_type)]TJ +/F30 9.9626 Tf 124.012 691.672 Td [(type)-525(psb_sspmat_type)]TJ 15.691 -11.955 Td [(integer)-2625(::)-525(m,)-525(k)]TJ 0 -11.955 Td [(character)-1575(::)-525(fida\0505\051)]TJ 0 -11.956 Td [(character)-1575(::)-525(descra\05010\051)]TJ 0 -11.955 Td [(integer)-2625(::)-525(infoa\050psb_ifa_size_\051)]TJ 0 -11.955 Td [(real\050psb_spk_\051,)-525(allocatable)-525(::)-525(aspk\050:\051)]TJ 0 -11.955 Td [(integer,)-525(allocatable)-525(::)-525(ia1\050:\051,)-525(ia2\050:\051)]TJ 0 -11.955 Td [(integer,)-525(allocatable)-525(::)-525(pr\050:\051,)-525(pl\050:\051)]TJ -15.691 -11.955 Td [(end)-525(type)-525(psb_sspmat_type)]TJ 0 -23.911 Td [(type)-525(psb_dspmat_type)]TJ 15.691 -11.955 Td [(integer)-2625(::)-525(m,)-525(k)]TJ 0 -11.955 Td [(character)-1575(::)-525(fida\0505\051)]TJ 0 -11.955 Td [(character)-1575(::)-525(descra\05010\051)]TJ 0 -11.955 Td [(integer)-2625(::)-525(infoa\050psb_ifa_size_\051)]TJ 0 -11.956 Td [(real\050psb_dpk_\051,)-525(allocatable)-525(::)-525(aspk\050:\051)]TJ 0 -11.955 Td [(integer,)-525(allocatable)-525(::)-525(ia1\050:\051,)-525(ia2\050:\051)]TJ 0 -11.955 Td [(integer,)-525(allocatable)-525(::)-525(pr\050:\051,)-525(pl\050:\051)]TJ -15.691 -11.955 Td [(end)-525(type)-525(psb_dspmat_type)]TJ 0 -23.91 Td [(type)-525(psb_cspmat_type)]TJ 15.691 -11.956 Td [(integer)-2625(::)-525(m,)-525(k)]TJ 0 -11.955 Td [(character)-1575(::)-525(fida\0505\051)]TJ 0 -11.955 Td [(character)-1575(::)-525(descra\05010\051)]TJ 0 -11.955 Td [(integer)-2625(::)-525(infoa\050psb_ifa_size_\051)]TJ 0 -11.955 Td [(complex\050psb_spk_\051,)-525(allocatable)-525(::)-525(aspk\050:\051)]TJ 0 -11.956 Td [(integer,)-525(allocatable)-525(::)-525(ia1\050:\051,)-525(ia2\050:\051)]TJ 0 -11.955 Td [(integer,)-525(allocatable)-525(::)-525(pr\050:\051,)-525(pl\050:\051)]TJ -15.691 -11.955 Td [(end)-525(type)-525(psb_cspmat_type)]TJ 0 -23.91 Td [(type)-525(psb_zspmat_type)]TJ 15.691 -11.955 Td [(integer)-2625(::)-525(m,)-525(k)]TJ 0 -11.956 Td [(character)-1575(::)-525(fida\0505\051)]TJ 0 -11.955 Td [(character)-1575(::)-525(descra\05010\051)]TJ 0 -11.955 Td [(integer)-2625(::)-525(infoa\050psb_ifa_size_\051)]TJ 0 -11.955 Td [(complex\050psb_dpk_\051,)-525(allocatable)-525(::)-525(aspk\050:\051)]TJ 0 -11.955 Td [(integer,)-525(allocatable)-525(::)-525(ia1\050:\051,)-525(ia2\050:\051)]TJ 0 -11.955 Td [(integer,)-525(allocatable)-525(::)-525(pr\050:\051,)-525(pl\050:\051)]TJ -15.691 -11.956 Td [(end)-525(type)-525(psb_zspmat_type)]TJ ET q -1 0 0 1 478.468 217.45 cm +1 0 0 1 427.659 217.45 cm []0 d 0 J 0.398 w 0 0 m 0 488.28 l S Q q -1 0 0 1 166.453 217.251 cm +1 0 0 1 115.644 217.251 cm []0 d 0 J 0.398 w 0 0 m 312.215 0 l S Q 0 g 0 G BT -/F8 9.9626 Tf 162.757 189.212 Td [(Figure)-333(5:)-778(The)-333(PSBLAS)-334(de\014ned)-333(data)-333(t)28(yp)-28(e)-333(that)-334(con)28(tains)-333(a)-334(sparse)-333(matrix.)]TJ +/F8 9.9626 Tf 111.947 189.212 Td [(Figure)-333(4:)-778(The)-333(PSBLAS)-334(de\014ned)-333(data)-333(t)28(yp)-28(e)-334(th)1(at)-334(con)28(tains)-333(a)-334(sparse)-333(matrix.)]TJ 0 g 0 G 0 g 0 G -/F27 9.9626 Tf -12.052 -35.304 Td [(3.3.1)-1150(Named)-383(Constan)32(ts)]TJ 0 g 0 G - 0 -21.627 Td [(psb)]TJ -ET -q -1 0 0 1 168.641 132.48 cm -[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S -Q -BT -/F27 9.9626 Tf 172.078 132.281 Td [(dupl)]TJ -ET -q -1 0 0 1 195.043 132.48 cm -[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S -Q -BT -/F27 9.9626 Tf 198.48 132.281 Td [(o)32(vwrt)]TJ -ET -q -1 0 0 1 228.073 132.48 cm -[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S -Q +/F27 9.9626 Tf -12.052 -33.552 Td [(\014da=\134CSR")]TJ 0 g 0 G -BT -/F8 9.9626 Tf 236.492 132.281 Td [(Duplicate)-315(co)-28(e\016cien)28(ts)-315(should)-315(b)-28(e)-315(o)28(v)28(erwritten)-315(\050i.e.)-438(ignore)-315(du-)]TJ -60.881 -11.955 Td [(plications\051)]TJ +/F8 9.9626 Tf 67.435 0 Td [(Compressed)-380(s)-1(tor)1(age)-381(b)28(y)-380(ro)27(ws.)-585(In)-381(th)1(is)-381(case)-380(the)-381(follo)28(wing)-380(should)]TJ -42.528 -11.955 Td [(hold:)]TJ +0 g 0 G + 9.188 -23.379 Td [(1.)]TJ 0 g 0 G - 141.968 -29.888 Td [(16)]TJ +/F30 9.9626 Tf 12.73 0 Td [(ia2\050i\051)]TJ/F8 9.9626 Tf 36.202 0 Td [(con)28(tains)-484(the)-484(index)-483(of)-484(the)-484(\014rst)-484(elemen)28(t)-484(of)-484(r)1(o)27(w)]TJ/F30 9.9626 Tf 212.908 0 Td [(i)]TJ/F8 9.9626 Tf 5.23 0 Td [(;)-559(the)-484(last)]TJ +0 g 0 G + -134.29 -29.888 Td [(13)]TJ 0 g 0 G ET endstream endobj -744 0 obj << +717 0 obj << /Type /Page -/Contents 745 0 R -/Resources 743 0 R +/Contents 718 0 R +/Resources 716 0 R /MediaBox [0 0 595.276 841.89] -/Parent 728 0 R +/Parent 721 0 R >> endobj -746 0 obj << -/D [744 0 R /XYZ 150.705 740.998 null] +719 0 obj << +/D [717 0 R /XYZ 99.895 740.998 null] >> endobj -722 0 obj << -/D [744 0 R /XYZ 206.371 201.167 null] +715 0 obj << +/D [717 0 R /XYZ 155.561 201.167 null] >> endobj -58 0 obj << -/D [744 0 R /XYZ 150.705 163.87 null] +720 0 obj << +/D [717 0 R /XYZ 99.895 135.137 null] >> endobj -743 0 obj << -/Font << /F30 617 0 R /F8 442 0 R /F27 441 0 R >> +716 0 obj << +/Font << /F30 616 0 R /F8 438 0 R /F27 437 0 R >> /ProcSet [ /PDF /Text ] >> endobj -753 0 obj << -/Length 8040 +725 0 obj << +/Length 8610 >> stream 0 g 0 G 0 g 0 G +BT +/F8 9.9626 Tf 197.529 706.129 Td [(elemen)28(t)-274(of)-273(the)-274(sparse)-273(matrix)-273(is)-274(th)28(us)-273(s)-1(tored)-273(at)-273(index)]TJ/F11 9.9626 Tf 222.702 0 Td [(ia)]TJ/F8 9.9626 Tf 8.698 0 Td [(2\050)]TJ/F11 9.9626 Tf 8.856 0 Td [(m)]TJ/F8 9.9626 Tf 9.768 0 Td [(+)-102(1\051)]TJ/F14 9.9626 Tf 18.644 0 Td [(\000)]TJ/F8 9.9626 Tf 8.769 0 Td [(1.)-424(It)]TJ -277.437 -11.955 Td [(should)-248(con)28(tain)]TJ/F30 9.9626 Tf 65.055 0 Td [(m+1)]TJ/F8 9.9626 Tf 18.164 0 Td [(en)28(tries)-249(in)-248(nondecreasing)-248(order)-248(\050strictly)-248(increasing,)]TJ -83.219 -11.955 Td [(if)-333(there)-334(are)-333(no)-333(empt)27(y)-333(ro)28(ws\051.)]TJ +0 g 0 G + -12.73 -18.055 Td [(2.)]TJ +0 g 0 G +/F30 9.9626 Tf 12.73 0 Td [(ia1\050j\051)]TJ/F8 9.9626 Tf 35.118 0 Td [(con)28(tains)-375(the)-375(column)-375(index)-375(and)]TJ/F30 9.9626 Tf 139.395 0 Td [(aspk\050j\051)]TJ/F8 9.9626 Tf 40.348 0 Td [(con)28(tains)-375(the)-375(corre-)]TJ -214.861 -11.956 Td [(sp)-28(onding)-333(co)-28(e\016cien)28(t)-333(v)55(alue,)-333(for)-333(all)]TJ/F11 9.9626 Tf 146.479 0 Td [(ia)]TJ/F8 9.9626 Tf 8.698 0 Td [(2\0501\051)]TJ/F14 9.9626 Tf 20.479 0 Td [(\024)]TJ/F11 9.9626 Tf 10.516 0 Td [(j)]TJ/F14 9.9626 Tf 7.441 0 Td [(\024)]TJ/F11 9.9626 Tf 10.516 0 Td [(ia)]TJ/F8 9.9626 Tf 8.698 0 Td [(2\050)]TJ/F11 9.9626 Tf 8.856 0 Td [(m)]TJ/F8 9.9626 Tf 10.961 0 Td [(+)-222(1\051)]TJ/F14 9.9626 Tf 21.032 0 Td [(\000)]TJ/F8 9.9626 Tf 9.963 0 Td [(1.)]TJ +0 g 0 G +/F27 9.9626 Tf -310.463 -24.155 Td [(\014da=\134COO")]TJ +0 g 0 G +/F8 9.9626 Tf 69.69 0 Td [(Co)-28(ordinate)-333(storage.)-444(I)-1(n)-333(this)-333(case)-334(the)-333(follo)28(wing)-333(should)-334(hold:)]TJ +0 g 0 G + -35.596 -24.154 Td [(1.)]TJ +0 g 0 G +/F30 9.9626 Tf 12.73 0 Td [(infoa\0501\051)]TJ/F8 9.9626 Tf 45.164 0 Td [(con)28(tains)-334(th)1(e)-334(n)28(um)28(b)-28(er)-333(of)-334(nonzero)-333(elemen)28(ts)-334(in)-333(the)-333(matrix;)]TJ +0 g 0 G + -57.894 -18.056 Td [(2.)]TJ +0 g 0 G + [-500(F)83(or)-269(all)-269(1)]TJ/F14 9.9626 Tf 50.921 0 Td [(\024)]TJ/F11 9.9626 Tf 10.516 0 Td [(j)]TJ/F14 9.9626 Tf 7.44 0 Td [(\024)]TJ/F11 9.9626 Tf 10.516 0 Td [(inf)-108(oa)]TJ/F8 9.9626 Tf 25.457 0 Td [(\0501\051,)-282(the)-270(co)-28(e\016cien)28(t,)-282(ro)28(w)-270(index)-269(and)-269(c)-1(olu)1(m)-1(n)-269(index)]TJ -92.12 -11.955 Td [(are)-333(stored)-334(in)28(to)]TJ/F30 9.9626 Tf 66.805 0 Td [(apsk\050j\051)]TJ/F8 9.9626 Tf 36.613 0 Td [(,)]TJ/F30 9.9626 Tf 6.088 0 Td [(ia1\050j\051)]TJ/F8 9.9626 Tf 34.703 0 Td [(and)]TJ/F30 9.9626 Tf 19.372 0 Td [(ia2\050j\051)]TJ/F8 9.9626 Tf 34.703 0 Td [(resp)-28(ectiv)28(ely)83(.)]TJ -245.108 -24.155 Td [(A)-333(sparse)-334(matrix)-333(has)-333(an)-334(asso)-28(ciated)-333(state,)-333(whic)27(h)-333(can)-333(tak)28(e)-334(the)-333(follo)28(wing)-334(v)56(alues:)]TJ +0 g 0 G +/F27 9.9626 Tf 0 -23.097 Td [(Build:)]TJ +0 g 0 G +/F8 9.9626 Tf 35.409 0 Td [(State)-306(en)28(tered)-306(after)-307(th)1(e)-307(\014rst)-306(allo)-27(c)-1(ation)1(,)-312(and)-306(b)-28(efore)-306(the)-306(\014rst)-306(assem)27(bly;)-315(in)]TJ -10.503 -11.955 Td [(this)-333(state)-334(it)-333(is)-333(p)-28(ossible)-334(to)-333(add)-333(nonzero)-333(e)-1(n)28(tries.)]TJ +0 g 0 G +/F27 9.9626 Tf -24.906 -24.155 Td [(Assem)32(bled:)]TJ +0 g 0 G +/F8 9.9626 Tf 61.508 0 Td [(State)-373(en)27(tered)-373(after)-373(the)-373(a)-1(ssem)28(bly;)-393(computations)-373(using)-374(the)-373(sparse)]TJ -36.602 -11.955 Td [(matrix,)-333(suc)27(h)-333(as)-333(matrix-v)28(e)-1(ctor)-333(pro)-28(du)1(c)-1(ts,)-333(are)-333(only)-334(p)-27(ossible)-334(in)-333(this)-333(state;)]TJ +0 g 0 G +/F27 9.9626 Tf -24.906 -24.155 Td [(Up)-32(date:)]TJ +0 g 0 G +/F8 9.9626 Tf 45.302 0 Td [(State)-233(en)27(tered)-233(after)-233(a)-234(r)1(e)-1(in)1(italization;)-267(this)-233(is)-234(used)-233(to)-233(handle)-234(appli)1(c)-1(ation)1(s)]TJ -20.396 -11.955 Td [(in)-395(whic)28(h)-396(the)-395(same)-395(sparsit)28(y)-395(pattern)-396(is)-395(used)-395(m)28(ultiple)-395(times)-396(with)-395(di\013eren)28(t)]TJ 0 -11.956 Td [(co)-28(e\016cien)28(ts.)-427(In)-280(this)-280(state)-280(it)-281(i)1(s)-281(only)-280(p)-27(os)-1(sibl)1(e)-281(to)-280(en)28(ter)-280(co)-28(e\016cien)28(ts)-281(f)1(or)-281(already)]TJ 0 -11.955 Td [(existing)-333(nonzero)-334(en)28(tries.)]TJ/F27 9.9626 Tf -24.906 -31.506 Td [(3.2.1)-1150(Named)-383(Constan)32(ts)]TJ +0 g 0 G + 0 -20.357 Td [(psb)]TJ +ET +q +1 0 0 1 168.641 366.886 cm +[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S +Q +BT +/F27 9.9626 Tf 172.078 366.687 Td [(dupl)]TJ +ET +q +1 0 0 1 195.043 366.886 cm +[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S +Q +BT +/F27 9.9626 Tf 198.48 366.687 Td [(o)32(vwrt)]TJ +ET +q +1 0 0 1 228.073 366.886 cm +[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S +Q 0 g 0 G BT -/F27 9.9626 Tf 99.895 706.129 Td [(psb)]TJ +/F8 9.9626 Tf 236.492 366.687 Td [(Duplicate)-315(co)-28(e\016cien)28(ts)-315(should)-315(b)-28(e)-315(o)28(v)28(erwritten)-315(\050i.e.)-438(ignore)-315(du-)]TJ -60.881 -11.955 Td [(plications\051)]TJ +0 g 0 G +/F27 9.9626 Tf -24.906 -24.155 Td [(psb)]TJ ET q -1 0 0 1 117.832 706.328 cm +1 0 0 1 168.641 330.776 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 121.269 706.129 Td [(dupl)]TJ +/F27 9.9626 Tf 172.078 330.577 Td [(dupl)]TJ ET q -1 0 0 1 144.234 706.328 cm +1 0 0 1 195.043 330.776 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 147.671 706.129 Td [(add)]TJ +/F27 9.9626 Tf 198.48 330.577 Td [(add)]TJ ET q -1 0 0 1 166.658 706.328 cm +1 0 0 1 217.467 330.776 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q 0 g 0 G BT -/F8 9.9626 Tf 175.076 706.129 Td [(Duplicate)-333(co)-28(e\016cien)28(ts)-334(should)-333(b)-28(e)-333(added;)]TJ +/F8 9.9626 Tf 225.886 330.577 Td [(Duplicate)-333(co)-28(e\016cien)28(ts)-334(should)-333(b)-28(e)-333(added;)]TJ 0 g 0 G -/F27 9.9626 Tf -75.181 -21.522 Td [(psb)]TJ +/F27 9.9626 Tf -75.181 -24.155 Td [(psb)]TJ ET q -1 0 0 1 117.832 684.806 cm +1 0 0 1 168.641 306.621 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 121.269 684.607 Td [(dupl)]TJ +/F27 9.9626 Tf 172.078 306.422 Td [(dupl)]TJ ET q -1 0 0 1 144.234 684.806 cm +1 0 0 1 195.043 306.621 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 147.671 684.607 Td [(err)]TJ +/F27 9.9626 Tf 198.48 306.422 Td [(err)]TJ ET q -1 0 0 1 163.046 684.806 cm +1 0 0 1 213.856 306.621 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q 0 g 0 G BT -/F8 9.9626 Tf 171.465 684.607 Td [(Duplicate)-333(co)-28(e\016cien)28(ts)-334(should)-333(trigger)-333(an)-334(error)-333(conditino)]TJ +/F8 9.9626 Tf 222.274 306.422 Td [(Duplicate)-333(co)-28(e\016cien)28(ts)-334(should)-333(trigger)-333(an)-334(error)-333(conditino)]TJ 0 g 0 G -/F27 9.9626 Tf -71.57 -21.522 Td [(psb)]TJ +/F27 9.9626 Tf -71.569 -24.155 Td [(psb)]TJ ET q -1 0 0 1 117.832 663.284 cm +1 0 0 1 168.641 282.466 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 121.269 663.085 Td [(up)-32(d)]TJ +/F27 9.9626 Tf 172.078 282.267 Td [(up)-32(d)]TJ ET q -1 0 0 1 141.37 663.284 cm +1 0 0 1 192.179 282.466 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 144.807 663.085 Td [(d\015t)]TJ +/F27 9.9626 Tf 195.616 282.267 Td [(d\015t)]TJ ET q -1 0 0 1 162.68 663.284 cm +1 0 0 1 213.489 282.466 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q 0 g 0 G BT -/F8 9.9626 Tf 171.098 663.085 Td [(Default)-333(up)-28(date)-333(strategy)-334(for)-333(matrix)-333(co)-28(e\016cien)28(ts;)]TJ +/F8 9.9626 Tf 221.907 282.267 Td [(Default)-333(up)-28(date)-333(strategy)-334(for)-333(matrix)-333(co)-28(e\016cien)28(ts;)]TJ 0 g 0 G -/F27 9.9626 Tf -71.203 -21.522 Td [(psb)]TJ +/F27 9.9626 Tf -71.202 -24.155 Td [(psb)]TJ ET q -1 0 0 1 117.832 641.762 cm +1 0 0 1 168.641 258.311 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 121.269 641.563 Td [(up)-32(d)]TJ +/F27 9.9626 Tf 172.078 258.112 Td [(up)-32(d)]TJ ET q -1 0 0 1 141.37 641.762 cm +1 0 0 1 192.179 258.311 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 144.807 641.563 Td [(src)32(h)]TJ +/F27 9.9626 Tf 195.616 258.112 Td [(src)32(h)]TJ ET q -1 0 0 1 165.87 641.762 cm +1 0 0 1 216.68 258.311 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q 0 g 0 G BT -/F8 9.9626 Tf 174.289 641.563 Td [(Up)-28(date)-333(strategy)-333(based)-334(on)-333(searc)28(h)-334(in)28(to)-333(the)-334(d)1(ata)-334(structure;)]TJ +/F8 9.9626 Tf 225.098 258.112 Td [(Up)-28(date)-333(strategy)-333(base)-1(d)-333(on)-333(searc)28(h)-334(in)28(to)-333(the)-334(data)-333(structure;)]TJ 0 g 0 G -/F27 9.9626 Tf -74.394 -21.522 Td [(psb)]TJ +/F27 9.9626 Tf -74.393 -24.155 Td [(psb)]TJ ET q -1 0 0 1 117.832 620.24 cm +1 0 0 1 168.641 234.157 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 121.269 620.041 Td [(up)-32(d)]TJ +/F27 9.9626 Tf 172.078 233.957 Td [(up)-32(d)]TJ ET q -1 0 0 1 141.37 620.24 cm +1 0 0 1 192.179 234.157 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 144.807 620.041 Td [(p)-32(erm)]TJ +/F27 9.9626 Tf 195.616 233.957 Td [(p)-32(erm)]TJ ET q -1 0 0 1 171.694 620.24 cm +1 0 0 1 222.504 234.157 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q 0 g 0 G BT -/F8 9.9626 Tf 180.113 620.041 Td [(Up)-28(date)-398(strategy)-398(based)-398(on)-398(additional)-398(p)-28(erm)28(utation)-398(data)-398(\050se)-1(e)]TJ -55.311 -11.955 Td [(to)-28(ols)-333(routine)-333(description\051.)]TJ/F16 11.9552 Tf -24.907 -30.006 Td [(3.4)-1125(Preconditioner)-375(data)-375(structure)]TJ/F8 9.9626 Tf 0 -19.133 Td [(Our)-383(base)-383(library)-383(o\013ers)-383(supp)-28(ort)-383(for)-383(simple)-383(w)28(ell)-383(kno)27(wn)-383(preconditioners)-383(lik)28(e)-383(Di-)]TJ 0 -11.955 Td [(agonal)-333(Scaling)-334(or)-333(Blo)-28(c)28(k)-333(Jacobi)-334(with)-333(incomplete)-333(factorization)-334(ILU\0500\051.)]TJ 14.944 -12.354 Td [(A)-427(preconditioner)-428(is)-427(held)-428(in)-427(the)]TJ/F30 9.9626 Tf 142.723 0 Td [(psb)]TJ +/F8 9.9626 Tf 230.922 233.957 Td [(Up)-28(date)-398(strategy)-398(based)-398(on)-398(additional)-398(p)-28(erm)28(utation)-398(data)-398(\050s)-1(ee)]TJ -55.311 -11.955 Td [(to)-28(ols)-333(routine)-333(desc)-1(r)1(iption\051.)]TJ/F16 11.9552 Tf -24.906 -33.498 Td [(3.3)-1125(Dense)-375(V)94(ector)-375(Data)-375(Structure)]TJ/F8 9.9626 Tf 0 -20.358 Td [(The)]TJ/F30 9.9626 Tf 20.327 0 Td [(psb)]TJ +ET +q +1 0 0 1 187.351 168.346 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +Q +BT +/F30 9.9626 Tf 190.489 168.146 Td [(vect)]TJ +ET +q +1 0 0 1 212.038 168.346 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +Q +BT +/F30 9.9626 Tf 215.177 168.146 Td [(type)]TJ/F8 9.9626 Tf 24.091 0 Td [(data)-318(structure)-318(con)28(tains)-319(all)-318(information)-318(ab)-27(out)-319(lo)-27(cal)-319(p)-27(ortion)]TJ -88.563 -11.955 Td [(of)-374(the)-374(sparse)-375(matrix)-374(and)-374(its)-374(storage)-374(mo)-28(de.)-567(Most)-374(of)-374(these)-375(\014elds)-374(are)-374(set)-374(b)28(y)-375(the)]TJ 0 -11.955 Td [(to)-28(ols)-348(routines)-349(when)-349(inserting)-348(a)-349(new)-349(sparse)-348(matrix;)-357(the)-348(user)-349(needs)-349(only)-348(c)27(ho)-27(ose,)]TJ 0 -11.955 Td [(if)-333(he/she)-334(so)-333(whishes,)-333(a)-334(sp)-28(eci\014c)-333(matrix)-333(storage)-334(mo)-27(de.)]TJ +0 g 0 G + 166.874 -41.843 Td [(14)]TJ +0 g 0 G +ET +endstream +endobj +724 0 obj << +/Type /Page +/Contents 725 0 R +/Resources 723 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 721 0 R +>> endobj +726 0 obj << +/D [724 0 R /XYZ 150.705 740.998 null] +>> endobj +727 0 obj << +/D [724 0 R /XYZ 150.705 676.678 null] +>> endobj +728 0 obj << +/D [724 0 R /XYZ 150.705 616.966 null] +>> endobj +729 0 obj << +/D [724 0 R /XYZ 150.705 598.911 null] +>> endobj +50 0 obj << +/D [724 0 R /XYZ 150.705 398.12 null] +>> endobj +54 0 obj << +/D [724 0 R /XYZ 150.705 201.018 null] +>> endobj +730 0 obj << +/D [724 0 R /XYZ 171.032 168.146 null] +>> endobj +723 0 obj << +/Font << /F8 438 0 R /F11 599 0 R /F14 619 0 R /F30 616 0 R /F27 437 0 R /F16 435 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +737 0 obj << +/Length 7516 +>> +stream +0 g 0 G +0 g 0 G +BT +/F16 11.9552 Tf 99.895 706.129 Td [(3.4)-1125(Preconditioner)-375(data)-375(structure)]TJ/F8 9.9626 Tf 0 -18.389 Td [(Our)-383(base)-383(library)-383(o\013ers)-383(supp)-28(ort)-383(for)-383(simple)-383(w)28(ell)-383(kno)27(wn)-383(preconditioners)-383(lik)28(e)-383(Di-)]TJ 0 -11.956 Td [(agonal)-333(Scaling)-334(or)-333(Blo)-28(c)28(k)-333(Jacobi)-334(with)-333(incomplete)-333(factorization)-334(ILU\0500\051.)]TJ 14.944 -11.955 Td [(A)-427(preconditioner)-428(is)-427(held)-428(in)-427(the)]TJ/F30 9.9626 Tf 142.724 0 Td [(psb)]TJ ET q -1 0 0 1 273.881 534.837 cm +1 0 0 1 273.881 664.028 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 277.019 534.638 Td [(prec)]TJ +/F30 9.9626 Tf 277.019 663.829 Td [(prec)]TJ ET q -1 0 0 1 298.568 534.837 cm +1 0 0 1 298.568 664.028 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 301.707 534.638 Td [(type)]TJ/F8 9.9626 Tf 25.18 0 Td [(data)-427(structure)-428(rep)-28(orted)-427(in)]TJ -226.992 -11.955 Td [(\014gure)]TJ +/F30 9.9626 Tf 301.707 663.829 Td [(type)]TJ/F8 9.9626 Tf 25.18 0 Td [(data)-427(structure)-428(rep)-28(orted)-427(in)]TJ -226.992 -11.955 Td [(\014gure)]TJ 0 0 1 rg 0 0 1 RG - [-361(6)]TJ + [-361(5)]TJ 0 g 0 G - [(.)-527(The)]TJ/F30 9.9626 Tf 61.73 0 Td [(psb_prec_type)]TJ/F8 9.9626 Tf 71.589 0 Td [(data)-361(t)28(yp)-28(e)-361(ma)28(y)-361(con)28(tain)-361(a)-361(simple)-361(preconditioning)]TJ -133.319 -11.955 Td [(matrix)-395(w)-1(i)1(th)-396(the)-395(asso)-28(ciated)-396(comm)28(unication)-395(des)-1(crip)1(tor.The)-396(v)56(alues)-396(con)28(tained)-396(in)]TJ 0 -11.956 Td [(the)]TJ/F30 9.9626 Tf 16.637 0 Td [(iprcparm)]TJ/F8 9.9626 Tf 44.643 0 Td [(and)]TJ/F30 9.9626 Tf 18.85 0 Td [(rprcparm)]TJ/F8 9.9626 Tf 44.643 0 Td [(de\014ne)-281(tha)-281(t)28(yp)-28(e)-281(of)-281(preconditioner)-281(along)-281(with)-281(all)-281(the)]TJ -124.773 -11.955 Td [(parameters)-420(related)-421(to)-420(it;)-464(th)28(us,)]TJ/F30 9.9626 Tf 139.397 0 Td [(iprcparm)]TJ/F8 9.9626 Tf 46.03 0 Td [(and)]TJ/F30 9.9626 Tf 20.239 0 Td [(rprcparm)]TJ/F8 9.9626 Tf 46.03 0 Td [(de\014ne)-420(ho)27(w)-420(the)-420(other)]TJ -251.696 -11.955 Td [(records)-282(ha)28(v)28(e)-282(to)-282(b)-27(e)-282(in)28(terpreted.)-428(This)-281(data)-282(structure)-282(is)-282(the)-281(basis)-282(of)-282(more)-282(complex)]TJ 0 -11.955 Td [(preconditioning)-333(strategies,)-334(whic)28(h)-333(are)-333(the)-334(sub)-55(ject)-334(of)-333(further)-333(researc)27(h)1(.)]TJ/F16 11.9552 Tf 0 -30.006 Td [(3.5)-1125(Data)-375(structure)-375(query)-375(routines)]TJ/F27 9.9626 Tf 0 -19.133 Td [(get)]TJ + [(.)-527(The)]TJ/F30 9.9626 Tf 61.73 0 Td [(psb_prec_type)]TJ/F8 9.9626 Tf 71.589 0 Td [(data)-361(t)28(yp)-28(e)-361(ma)28(y)-361(con)28(tain)-361(a)-361(simple)-361(preconditioning)]TJ -133.319 -11.955 Td [(matrix)-395(w)-1(i)1(th)-396(the)-395(asso)-28(ciated)-396(comm)28(unication)-395(des)-1(crip)1(tor.The)-396(v)56(alues)-396(con)28(tained)-396(in)]TJ 0 -11.955 Td [(the)]TJ/F30 9.9626 Tf 16.637 0 Td [(iprcparm)]TJ/F8 9.9626 Tf 44.643 0 Td [(and)]TJ/F30 9.9626 Tf 18.85 0 Td [(rprcparm)]TJ/F8 9.9626 Tf 44.643 0 Td [(de\014ne)-281(tha)-281(t)28(yp)-28(e)-281(of)-281(preconditioner)-281(along)-281(with)-281(all)-281(the)]TJ -124.773 -11.956 Td [(parameters)-420(related)-421(to)-420(it;)-464(th)28(us,)]TJ/F30 9.9626 Tf 139.397 0 Td [(iprcparm)]TJ/F8 9.9626 Tf 46.03 0 Td [(and)]TJ/F30 9.9626 Tf 20.239 0 Td [(rprcparm)]TJ/F8 9.9626 Tf 46.03 0 Td [(de\014ne)-420(ho)27(w)-420(the)-420(other)]TJ -251.696 -11.955 Td [(records)-282(ha)28(v)28(e)-282(to)-282(b)-27(e)-282(in)28(terpreted.)-428(This)-281(data)-282(structure)-282(is)-282(the)-281(basis)-282(of)-282(more)-282(complex)]TJ 0 -11.955 Td [(preconditioning)-333(strategies,)-334(whic)28(h)-333(are)-333(the)-334(sub)-55(ject)-334(of)-333(further)-333(researc)27(h)1(.)]TJ/F16 11.9552 Tf 0 -27.843 Td [(3.5)-1125(Data)-375(structure)-375(query)-375(routines)]TJ/F27 9.9626 Tf 0 -18.39 Td [(get)]TJ ET q -1 0 0 1 116.018 413.968 cm +1 0 0 1 116.018 546.065 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 119.455 413.768 Td [(lo)-32(cal)]TJ +/F27 9.9626 Tf 119.455 545.865 Td [(lo)-32(cal)]TJ ET q -1 0 0 1 143.215 413.968 cm +1 0 0 1 143.215 546.065 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 146.653 413.768 Td [(ro)32(ws)-383(|)-384(Get)-383(n)32(um)32(b)-32(er)-383(of)-384(lo)-32(cal)-383(ro)32(ws)]TJ +/F27 9.9626 Tf 146.653 545.865 Td [(ro)32(ws)-383(|)-384(Get)-383(n)32(um)32(b)-32(er)-383(of)-384(lo)-32(cal)-383(ro)32(ws)]TJ 0 g 0 G 0 g 0 G -/F30 9.9626 Tf -46.758 -19.132 Td [(nr)-525(=)-525(desc%get_local_rows\050\051)]TJ +/F30 9.9626 Tf -46.758 -18.389 Td [(nr)-525(=)-525(desc%get_local_rows\050\051)]TJ 0 g 0 G -/F27 9.9626 Tf 0 -23.115 Td [(T)32(yp)-32(e:)]TJ +/F27 9.9626 Tf 0 -21.657 Td [(T)32(yp)-32(e:)]TJ 0 g 0 G /F8 9.9626 Tf 33.797 0 Td [(Async)28(hronous.)]TJ 0 g 0 G -/F27 9.9626 Tf -33.797 -21.522 Td [(On)-383(En)32(try)]TJ +/F27 9.9626 Tf -33.797 -19.821 Td [(On)-383(En)32(try)]TJ 0 g 0 G 0 g 0 G - 0 -21.522 Td [(desc)]TJ + 0 -19.821 Td [(desc)]TJ 0 g 0 G -/F8 9.9626 Tf 26.209 0 Td [(the)-333(comm)27(unication)-333(descriptor.)]TJ -1.302 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf 23.073 0 Td [(.)]TJ -55.452 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf 41.898 0 Td [(.)]TJ -71.509 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.956 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(structured)-333(data)-333(of)-334(t)28(yp)-28(e)]TJ +/F8 9.9626 Tf 26.209 0 Td [(the)-333(comm)27(unication)-333(descriptor.)]TJ -1.302 -11.956 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf 23.073 0 Td [(.)]TJ -55.452 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf 41.898 0 Td [(.)]TJ -71.509 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(structured)-333(data)-333(of)-334(t)28(yp)-28(e)]TJ 0 0 1 rg 0 0 1 RG /F30 9.9626 Tf 170.915 0 Td [(psb)]TJ ET q -1 0 0 1 312.036 280.856 cm +1 0 0 1 312.036 418.555 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 315.174 280.656 Td [(desc)]TJ +/F30 9.9626 Tf 315.174 418.356 Td [(desc)]TJ ET q -1 0 0 1 336.723 280.856 cm +1 0 0 1 336.723 418.555 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 339.861 280.656 Td [(type)]TJ +/F30 9.9626 Tf 339.861 418.356 Td [(type)]TJ 0 g 0 G /F8 9.9626 Tf 20.921 0 Td [(.)]TJ 0 g 0 G -/F27 9.9626 Tf -260.887 -23.115 Td [(On)-383(Return)]TJ +/F27 9.9626 Tf -260.887 -21.657 Td [(On)-383(Return)]TJ 0 g 0 G 0 g 0 G - 0 -21.522 Td [(F)96(unction)-384(v)64(alue)]TJ + 0 -19.821 Td [(F)96(unction)-384(v)64(alue)]TJ 0 g 0 G -/F8 9.9626 Tf 78.387 0 Td [(The)-460(n)28(um)27(b)-27(er)-461(of)-460(lo)-27(c)-1(al)-460(ro)28(ws,)-492(i.e.)-825(the)-460(n)28(um)27(b)-27(er)-460(of)-461(ro)28(ws)-460(o)28(wned)]TJ -53.48 -11.955 Td [(b)28(y)-401(the)-401(curren)27(t)-401(pro)-27(cess)-1(;)-435(as)-401(explained)-401(in)]TJ +/F8 9.9626 Tf 78.387 0 Td [(The)-460(n)28(um)27(b)-27(er)-461(of)-460(lo)-27(c)-1(al)-460(ro)28(ws,)-492(i.e.)-825(the)-460(n)28(um)27(b)-27(er)-460(of)-461(ro)28(ws)-460(o)28(wned)]TJ -53.48 -11.956 Td [(b)28(y)-401(the)-401(curren)27(t)-401(pro)-27(cess)-1(;)-435(as)-401(explained)-401(in)]TJ 0 0 1 rg 0 0 1 RG [-401(1)]TJ 0 g 0 G - [(,)-418(it)-401(is)-401(equal)-401(to)]TJ/F14 9.9626 Tf 249.677 0 Td [(jI)]TJ/F10 6.9738 Tf 8.193 -1.494 Td [(i)]TJ/F14 9.9626 Tf 3.316 1.494 Td [(j)]TJ/F8 9.9626 Tf 5.432 0 Td [(+)]TJ/F14 9.9626 Tf 10.413 0 Td [(jB)]TJ/F10 6.9738 Tf 9.31 -1.494 Td [(i)]TJ/F14 9.9626 Tf 3.317 1.494 Td [(j)]TJ/F8 9.9626 Tf 2.768 0 Td [(.)-648(The)]TJ -292.426 -11.955 Td [(returned)-333(v)55(alue)-333(is)-333(sp)-28(eci\014c)-334(to)-333(the)-333(calling)-333(pro)-28(cess.)]TJ/F27 9.9626 Tf -24.907 -28.014 Td [(get)]TJ + [(,)-418(it)-401(is)-401(equal)-401(to)]TJ/F14 9.9626 Tf 249.677 0 Td [(jI)]TJ/F10 6.9738 Tf 8.193 -1.494 Td [(i)]TJ/F14 9.9626 Tf 3.316 1.494 Td [(j)]TJ/F8 9.9626 Tf 5.432 0 Td [(+)]TJ/F14 9.9626 Tf 10.413 0 Td [(jB)]TJ/F10 6.9738 Tf 9.31 -1.494 Td [(i)]TJ/F14 9.9626 Tf 3.317 1.494 Td [(j)]TJ/F8 9.9626 Tf 2.768 0 Td [(.)-648(The)]TJ -292.426 -11.955 Td [(returned)-333(v)55(alue)-333(is)-333(sp)-28(eci\014c)-334(to)-333(the)-333(calling)-333(pro)-28(cess.)]TJ/F27 9.9626 Tf -24.907 -25.851 Td [(get)]TJ ET q -1 0 0 1 116.018 184.294 cm +1 0 0 1 116.018 327.315 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 119.455 184.095 Td [(lo)-32(cal)]TJ +/F27 9.9626 Tf 119.455 327.116 Td [(lo)-32(cal)]TJ ET q -1 0 0 1 143.215 184.294 cm +1 0 0 1 143.215 327.315 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 146.653 184.095 Td [(cols)-383(|)-384(Get)-383(n)32(um)32(b)-32(er)-383(of)-384(lo)-32(cal)-383(cols)]TJ +/F27 9.9626 Tf 146.653 327.116 Td [(cols)-383(|)-384(Get)-383(n)32(um)32(b)-32(er)-383(of)-384(lo)-32(cal)-383(cols)]TJ 0 g 0 G 0 g 0 G -/F30 9.9626 Tf -46.758 -19.132 Td [(nc)-525(=)-525(desc%get_local_cols\050\051)]TJ +/F30 9.9626 Tf -46.758 -18.389 Td [(nc)-525(=)-525(desc%get_local_cols\050\051)]TJ 0 g 0 G -/F27 9.9626 Tf 0 -23.115 Td [(On)-383(En)32(try)]TJ +/F27 9.9626 Tf 0 -21.658 Td [(On)-383(En)32(try)]TJ 0 g 0 G 0 g 0 G - 0 -21.522 Td [(T)32(yp)-32(e:)]TJ + 0 -19.821 Td [(T)32(yp)-32(e:)]TJ 0 g 0 G /F8 9.9626 Tf 33.797 0 Td [(Async)28(hronous.)]TJ 0 g 0 G - 133.078 -29.888 Td [(17)]TJ +/F27 9.9626 Tf -33.797 -19.821 Td [(desc)]TJ +0 g 0 G +/F8 9.9626 Tf 26.209 0 Td [(the)-333(comm)27(unication)-333(descriptor.)]TJ -1.302 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf 23.073 0 Td [(.)]TJ -55.452 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf 41.898 0 Td [(.)]TJ -71.509 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(structured)-333(data)-333(of)-334(t)28(yp)-28(e)]TJ +0 0 1 rg 0 0 1 RG +/F30 9.9626 Tf 170.915 0 Td [(psb)]TJ +ET +q +1 0 0 1 312.036 199.806 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +Q +BT +/F30 9.9626 Tf 315.174 199.607 Td [(desc)]TJ +ET +q +1 0 0 1 336.723 199.806 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +Q +BT +/F30 9.9626 Tf 339.861 199.607 Td [(type)]TJ +0 g 0 G +/F8 9.9626 Tf 20.921 0 Td [(.)]TJ +0 g 0 G +/F27 9.9626 Tf -260.887 -21.658 Td [(On)-383(Return)]TJ +0 g 0 G +0 g 0 G + 0 -19.821 Td [(F)96(unction)-384(v)64(alue)]TJ +0 g 0 G +/F8 9.9626 Tf 78.387 0 Td [(The)-360(n)27(um)28(b)-28(er)-360(of)-361(lo)-27(cal)-361(cols,)-367(i.e.)-526(the)-361(n)28(um)28(b)-28(er)-360(of)-361(ind)1(ic)-1(es)-360(used)-361(b)28(y)]TJ -53.48 -11.955 Td [(the)-421(curren)28(t)-421(pro)-28(cess,)-443(including)-420(b)-28(oth)-421(lo)-28(cal)-421(and)-421(halo)-421(i)1(ndices)-1(;)-464(as)-421(explained)]TJ 0 -11.955 Td [(in)]TJ +0 0 1 rg 0 0 1 RG + [-343(1)]TJ +0 g 0 G + [(,)-347(it)-343(is)-344(equal)-343(to)]TJ/F14 9.9626 Tf 81.777 0 Td [(jI)]TJ/F10 6.9738 Tf 8.192 -1.494 Td [(i)]TJ/F14 9.9626 Tf 3.317 1.494 Td [(j)]TJ/F8 9.9626 Tf 5.049 0 Td [(+)]TJ/F14 9.9626 Tf 10.03 0 Td [(jB)]TJ/F10 6.9738 Tf 9.311 -1.494 Td [(i)]TJ/F14 9.9626 Tf 3.317 1.494 Td [(j)]TJ/F8 9.9626 Tf 5.049 0 Td [(+)]TJ/F14 9.9626 Tf 10.031 0 Td [(jH)]TJ/F10 6.9738 Tf 11.181 -1.494 Td [(i)]TJ/F14 9.9626 Tf 3.317 1.494 Td [(j)]TJ/F8 9.9626 Tf 2.767 0 Td [(.)-475(The)-344(returned)-343(v)55(alue)-343(is)-344(sp)-27(e)-1(ci\014c)-343(to)-344(the)]TJ -153.338 -11.955 Td [(calling)-333(pro)-28(cess.)]TJ +0 g 0 G + 141.968 -31.825 Td [(15)]TJ 0 g 0 G ET endstream endobj -752 0 obj << +736 0 obj << /Type /Page -/Contents 753 0 R -/Resources 751 0 R +/Contents 737 0 R +/Resources 735 0 R /MediaBox [0 0 595.276 841.89] -/Parent 728 0 R -/Annots [ 747 0 R 748 0 R 749 0 R ] +/Parent 721 0 R +/Annots [ 722 0 R 731 0 R 732 0 R 733 0 R 734 0 R ] >> endobj -747 0 obj << +722 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [126.875 519.473 133.849 530.598] +/Rect [126.875 648.664 133.849 659.789] /Subtype /Link -/A << /S /GoTo /D (figure.6) >> +/A << /S /GoTo /D (figure.5) >> >> endobj -748 0 obj << +731 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [294.721 277.446 361.779 288.571] +/Rect [294.721 415.146 361.779 426.271] /Subtype /Link /A << /S /GoTo /D (descdata) >> >> endobj -749 0 obj << +732 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [300.421 220.577 307.395 232.532] +/Rect [300.421 361.435 307.395 373.391] /Subtype /Link /A << /S /GoTo /D (section.1) >> >> endobj -754 0 obj << -/D [752 0 R /XYZ 99.895 740.998 null] +733 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [294.721 196.396 361.779 207.521] +/Subtype /Link +/A << /S /GoTo /D (descdata) >> >> endobj -62 0 obj << -/D [752 0 R /XYZ 99.895 589.936 null] +734 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [135.531 130.731 142.505 142.686] +/Subtype /Link +/A << /S /GoTo /D (section.1) >> >> endobj -755 0 obj << -/D [752 0 R /XYZ 257.563 534.638 null] +738 0 obj << +/D [736 0 R /XYZ 99.895 740.998 null] +>> endobj +58 0 obj << +/D [736 0 R /XYZ 99.895 716.092 null] +>> endobj +739 0 obj << +/D [736 0 R /XYZ 257.563 663.829 null] +>> endobj +62 0 obj << +/D [736 0 R /XYZ 99.895 576.265 null] >> endobj 66 0 obj << -/D [752 0 R /XYZ 99.895 445.31 null] +/D [736 0 R /XYZ 99.895 537.494 null] >> endobj 70 0 obj << -/D [752 0 R /XYZ 99.895 405.053 null] ->> endobj -74 0 obj << -/D [752 0 R /XYZ 99.895 175.38 null] +/D [736 0 R /XYZ 99.895 318.745 null] >> endobj -751 0 obj << -/Font << /F27 441 0 R /F8 442 0 R /F16 439 0 R /F30 617 0 R /F14 620 0 R /F10 619 0 R >> +735 0 obj << +/Font << /F16 435 0 R /F8 438 0 R /F30 616 0 R /F27 437 0 R /F14 619 0 R /F10 618 0 R >> /ProcSet [ /PDF /Text ] >> endobj -760 0 obj << -/Length 4322 +744 0 obj << +/Length 3952 >> stream 0 g 0 G @@ -5596,469 +5290,479 @@ q Q 0 g 0 G BT -/F8 9.9626 Tf 162.674 223.195 Td [(Figure)-333(6:)-445(The)-333(PSBLAS)-333(de\014ned)-334(d)1(a)-1(t)1(a)-334(t)28(yp)-28(e)-333(that)-333(con)27(tains)-333(a)-333(preconditioner.)]TJ -0 g 0 G +/F8 9.9626 Tf 162.674 223.195 Td [(Figure)-333(5:)-445(The)-333(PSBLAS)-333(de\014ned)-334(d)1(a)-1(t)1(a)-334(t)28(yp)-28(e)-333(that)-333(con)27(tains)-333(a)-333(preconditioner.)]TJ 0 g 0 G 0 g 0 G -/F27 9.9626 Tf -11.969 -32.347 Td [(desc)]TJ -0 g 0 G -/F8 9.9626 Tf 26.208 0 Td [(the)-333(comm)27(unication)-333(descriptor.)]TJ -1.302 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf 23.073 0 Td [(.)]TJ -55.452 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.612 0 Td [(required)]TJ/F8 9.9626 Tf 41.898 0 Td [(.)]TJ -71.51 -11.956 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(structured)-333(data)-333(of)-334(t)28(yp)-28(e)]TJ -0 0 1 rg 0 0 1 RG -/F30 9.9626 Tf 170.915 0 Td [(psb)]TJ +/F27 9.9626 Tf -11.969 -33.816 Td [(get)]TJ ET q -1 0 0 1 362.845 143.226 cm -[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +1 0 0 1 166.827 189.579 cm +[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F30 9.9626 Tf 365.983 143.027 Td [(desc)]TJ +/F27 9.9626 Tf 170.264 189.379 Td [(global)]TJ ET q -1 0 0 1 387.532 143.226 cm -[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +1 0 0 1 200.708 189.579 cm +[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F30 9.9626 Tf 390.67 143.027 Td [(type)]TJ -0 g 0 G -/F8 9.9626 Tf 20.922 0 Td [(.)]TJ -0 g 0 G -/F27 9.9626 Tf -260.887 -22.701 Td [(On)-383(Return)]TJ -0 g 0 G -0 g 0 G -/F8 9.9626 Tf 166.874 -29.888 Td [(18)]TJ -0 g 0 G -ET -endstream -endobj -759 0 obj << -/Type /Page -/Contents 760 0 R -/Resources 758 0 R -/MediaBox [0 0 595.276 841.89] -/Parent 728 0 R -/Annots [ 750 0 R ] ->> endobj -750 0 obj << -/Type /Annot -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [345.53 139.817 412.588 150.942] -/Subtype /Link -/A << /S /GoTo /D (descdata) >> ->> endobj -761 0 obj << -/D [759 0 R /XYZ 150.705 740.998 null] ->> endobj -756 0 obj << -/D [759 0 R /XYZ 206.288 235.151 null] ->> endobj -758 0 obj << -/Font << /F46 762 0 R /F8 442 0 R /F27 441 0 R /F30 617 0 R >> -/ProcSet [ /PDF /Text ] ->> endobj -768 0 obj << -/Length 6214 ->> -stream +/F27 9.9626 Tf 204.145 189.379 Td [(ro)32(ws)-383(|)-384(Get)-383(n)32(um)32(b)-32(er)-383(of)-384(global)-383(ro)32(ws)]TJ 0 g 0 G 0 g 0 G +/F30 9.9626 Tf -53.44 -20.242 Td [(nr)-525(=)-525(desc%get_global_rows\050\051)]TJ 0 g 0 G -BT -/F27 9.9626 Tf 99.895 706.129 Td [(F)96(unction)-384(v)64(alue)]TJ -0 g 0 G -/F8 9.9626 Tf 78.387 0 Td [(The)-360(n)27(um)28(b)-28(er)-360(of)-361(lo)-27(cal)-361(cols,)-367(i.e.)-526(the)-361(n)28(um)28(b)-28(er)-360(of)-361(ind)1(ic)-1(es)-360(used)-361(b)28(y)]TJ -53.48 -11.955 Td [(the)-421(curren)28(t)-421(pro)-28(cess,)-443(including)-420(b)-28(oth)-421(lo)-28(cal)-421(and)-421(halo)-421(i)1(ndices)-1(;)-464(as)-421(explained)]TJ 0 -11.955 Td [(in)]TJ -0 0 1 rg 0 0 1 RG - [-343(1)]TJ -0 g 0 G - [(,)-347(it)-343(is)-344(equal)-343(to)]TJ/F14 9.9626 Tf 81.777 0 Td [(jI)]TJ/F10 6.9738 Tf 8.192 -1.495 Td [(i)]TJ/F14 9.9626 Tf 3.317 1.495 Td [(j)]TJ/F8 9.9626 Tf 5.049 0 Td [(+)]TJ/F14 9.9626 Tf 10.03 0 Td [(jB)]TJ/F10 6.9738 Tf 9.311 -1.495 Td [(i)]TJ/F14 9.9626 Tf 3.317 1.495 Td [(j)]TJ/F8 9.9626 Tf 5.049 0 Td [(+)]TJ/F14 9.9626 Tf 10.031 0 Td [(jH)]TJ/F10 6.9738 Tf 11.181 -1.495 Td [(i)]TJ/F14 9.9626 Tf 3.317 1.495 Td [(j)]TJ/F8 9.9626 Tf 2.767 0 Td [(.)-475(The)-344(returned)-343(v)55(alue)-343(is)-344(sp)-27(e)-1(ci\014c)-343(to)-344(the)]TJ -153.338 -11.956 Td [(calling)-333(pro)-28(cess.)]TJ/F27 9.9626 Tf -24.907 -25.441 Td [(get)]TJ -ET -q -1 0 0 1 116.018 645.022 cm -[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S -Q -BT -/F27 9.9626 Tf 119.455 644.822 Td [(global)]TJ -ET -q -1 0 0 1 149.899 645.022 cm -[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S -Q -BT -/F27 9.9626 Tf 153.336 644.822 Td [(ro)32(ws)-383(|)-384(Get)-383(n)32(um)32(b)-32(er)-383(of)-384(global)-383(ro)32(ws)]TJ +/F27 9.9626 Tf 0 -24.904 Td [(On)-383(En)32(try)]TJ 0 g 0 G 0 g 0 G -/F30 9.9626 Tf -53.441 -18.389 Td [(nr)-525(=)-525(desc%get_global_rows\050\051)]TJ + 0 -23.907 Td [(T)32(yp)-32(e:)]TJ 0 g 0 G -/F27 9.9626 Tf 0 -19.276 Td [(On)-383(En)32(try)]TJ +/F8 9.9626 Tf 33.797 0 Td [(Async)28(hronous.)]TJ +0 g 0 G + 133.077 -29.888 Td [(16)]TJ 0 g 0 G +ET +endstream +endobj +743 0 obj << +/Type /Page +/Contents 744 0 R +/Resources 742 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 721 0 R +>> endobj +745 0 obj << +/D [743 0 R /XYZ 150.705 740.998 null] +>> endobj +740 0 obj << +/D [743 0 R /XYZ 206.288 235.151 null] +>> endobj +74 0 obj << +/D [743 0 R /XYZ 150.705 180.151 null] +>> endobj +742 0 obj << +/Font << /F46 746 0 R /F8 438 0 R /F27 437 0 R /F30 616 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +751 0 obj << +/Length 5741 +>> +stream 0 g 0 G - 0 -18.869 Td [(T)32(yp)-32(e:)]TJ 0 g 0 G -/F8 9.9626 Tf 33.797 0 Td [(Async)28(hronous.)]TJ 0 g 0 G -/F27 9.9626 Tf -33.797 -18.869 Td [(desc)]TJ +BT +/F27 9.9626 Tf 99.895 706.129 Td [(desc)]TJ 0 g 0 G -/F8 9.9626 Tf 26.209 0 Td [(the)-333(comm)27(unication)-333(descriptor.)]TJ -1.302 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf 23.073 0 Td [(.)]TJ -55.452 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf 41.898 0 Td [(.)]TJ -71.509 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(structured)-333(data)-333(of)-334(t)28(yp)-28(e)]TJ +/F8 9.9626 Tf 26.209 0 Td [(the)-333(comm)27(unication)-333(descriptor.)]TJ -1.302 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf 23.073 0 Td [(.)]TJ -55.452 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf 41.898 0 Td [(.)]TJ -71.509 -11.956 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(structured)-333(data)-333(of)-334(t)28(yp)-28(e)]TJ 0 0 1 rg 0 0 1 RG /F30 9.9626 Tf 170.915 0 Td [(psb)]TJ ET q -1 0 0 1 312.036 521.798 cm +1 0 0 1 312.036 658.507 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 315.174 521.599 Td [(desc)]TJ +/F30 9.9626 Tf 315.174 658.308 Td [(desc)]TJ ET q -1 0 0 1 336.723 521.798 cm +1 0 0 1 336.723 658.507 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 339.861 521.599 Td [(type)]TJ +/F30 9.9626 Tf 339.861 658.308 Td [(type)]TJ 0 g 0 G /F8 9.9626 Tf 20.921 0 Td [(.)]TJ 0 g 0 G -/F27 9.9626 Tf -260.887 -19.277 Td [(On)-383(Return)]TJ +/F27 9.9626 Tf -260.887 -19.082 Td [(On)-383(Return)]TJ 0 g 0 G 0 g 0 G - 0 -18.868 Td [(F)96(unction)-384(v)64(alue)]TJ + 0 -18.79 Td [(F)96(unction)-384(v)64(alue)]TJ 0 g 0 G -/F8 9.9626 Tf 78.387 0 Td [(The)-333(n)27(u)1(m)27(b)-27(e)-1(r)-333(of)-333(global)-333(ro)27(ws)-333(in)-333(the)-334(mesh)]TJ/F27 9.9626 Tf -78.387 -25.441 Td [(get)]TJ +/F8 9.9626 Tf 78.387 0 Td [(The)-333(n)27(u)1(m)27(b)-27(e)-1(r)-333(of)-333(global)-333(ro)27(ws)-333(in)-333(the)-334(mesh)]TJ/F27 9.9626 Tf -78.387 -25.408 Td [(get)]TJ ET q -1 0 0 1 116.018 458.212 cm +1 0 0 1 116.018 595.227 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 119.455 458.013 Td [(global)]TJ +/F27 9.9626 Tf 119.455 595.028 Td [(global)]TJ ET q -1 0 0 1 149.899 458.212 cm +1 0 0 1 149.899 595.227 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 153.336 458.013 Td [(cols)-383(|)-384(Get)-383(n)32(um)32(b)-32(er)-383(of)-384(global)-383(cols)]TJ +/F27 9.9626 Tf 153.336 595.028 Td [(cols)-383(|)-384(Get)-383(n)32(um)32(b)-32(er)-383(of)-384(global)-383(cols)]TJ 0 g 0 G 0 g 0 G -/F30 9.9626 Tf -53.441 -18.39 Td [(nr)-525(=)-525(desc%get_global_cols\050\051)]TJ +/F30 9.9626 Tf -53.441 -18.389 Td [(nr)-525(=)-525(desc%get_global_cols\050\051)]TJ 0 g 0 G -/F27 9.9626 Tf 0 -19.276 Td [(T)32(yp)-32(e:)]TJ +/F27 9.9626 Tf 0 -19.082 Td [(T)32(yp)-32(e:)]TJ 0 g 0 G /F8 9.9626 Tf 33.797 0 Td [(Async)28(hronous.)]TJ 0 g 0 G -/F27 9.9626 Tf -33.797 -18.868 Td [(On)-383(En)32(try)]TJ +/F27 9.9626 Tf -33.797 -18.791 Td [(On)-383(En)32(try)]TJ 0 g 0 G 0 g 0 G - 0 -18.869 Td [(desc)]TJ + 0 -18.791 Td [(desc)]TJ 0 g 0 G -/F8 9.9626 Tf 26.209 0 Td [(the)-333(comm)27(unication)-333(descriptor.)]TJ -1.302 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf 23.073 0 Td [(.)]TJ -55.452 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf 41.898 0 Td [(.)]TJ -71.509 -11.956 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(structured)-333(data)-333(of)-334(t)28(yp)-28(e)]TJ +/F8 9.9626 Tf 26.209 0 Td [(the)-333(comm)27(unication)-333(descriptor.)]TJ -1.302 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf 23.073 0 Td [(.)]TJ -55.452 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf 41.898 0 Td [(.)]TJ -71.509 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(structured)-333(data)-333(of)-334(t)28(yp)-28(e)]TJ 0 0 1 rg 0 0 1 RG /F30 9.9626 Tf 170.915 0 Td [(psb)]TJ ET q -1 0 0 1 312.036 334.988 cm +1 0 0 1 312.036 472.354 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 315.174 334.789 Td [(desc)]TJ +/F30 9.9626 Tf 315.174 472.155 Td [(desc)]TJ ET q -1 0 0 1 336.723 334.988 cm +1 0 0 1 336.723 472.354 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 339.861 334.789 Td [(type)]TJ +/F30 9.9626 Tf 339.861 472.155 Td [(type)]TJ 0 g 0 G /F8 9.9626 Tf 20.921 0 Td [(.)]TJ 0 g 0 G -/F27 9.9626 Tf -260.887 -19.276 Td [(On)-383(Return)]TJ +/F27 9.9626 Tf -260.887 -19.082 Td [(On)-383(Return)]TJ 0 g 0 G 0 g 0 G - 0 -18.869 Td [(F)96(unction)-384(v)64(alue)]TJ + 0 -18.791 Td [(F)96(unction)-384(v)64(alue)]TJ 0 g 0 G /F8 9.9626 Tf 78.387 0 Td [(The)-333(n)27(u)1(m)27(b)-27(e)-1(r)-333(of)-333(global)-333(cols)-334(in)-333(the)-333(mes)-1(h)]TJ 0 g 0 G 0 g 0 G -/F16 11.9552 Tf -78.387 -47.238 Td [(get)]TJ +/F16 11.9552 Tf -78.387 -47.049 Td [(get)]TJ ET q -1 0 0 1 118.794 249.605 cm +1 0 0 1 118.794 387.432 cm []0 d 0 J 0.398 w 0 0 m 4.035 0 l S Q BT -/F16 11.9552 Tf 122.829 249.406 Td [(con)31(text|Get)-375(comm)31(unica)1(tion)-375(con)31(text)]TJ +/F16 11.9552 Tf 122.829 387.233 Td [(con)31(text|Get)-375(comm)31(unica)1(tion)-375(con)31(text)]TJ 0 g 0 G 0 g 0 G -/F30 9.9626 Tf -22.934 -24.246 Td [(ictxt)-525(=)-525(desc%get_context\050\051)]TJ +/F30 9.9626 Tf -22.934 -24.09 Td [(ictxt)-525(=)-525(desc%get_context\050\051)]TJ 0 g 0 G -/F27 9.9626 Tf 0 -19.276 Td [(T)32(yp)-32(e:)]TJ +/F27 9.9626 Tf 0 -19.082 Td [(T)32(yp)-32(e:)]TJ 0 g 0 G /F8 9.9626 Tf 33.797 0 Td [(Async)28(hronous.)]TJ 0 g 0 G -/F27 9.9626 Tf -33.797 -18.869 Td [(On)-383(En)32(try)]TJ +/F27 9.9626 Tf -33.797 -18.791 Td [(On)-383(En)32(try)]TJ 0 g 0 G 0 g 0 G - 0 -18.869 Td [(desc)]TJ + 0 -18.791 Td [(desc)]TJ 0 g 0 G -/F8 9.9626 Tf 26.209 0 Td [(the)-333(comm)27(unication)-333(descriptor.)]TJ -1.302 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf 23.073 0 Td [(.)]TJ -55.452 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf 41.898 0 Td [(.)]TJ -71.509 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(structured)-333(data)-333(of)-334(t)28(yp)-28(e)]TJ +/F8 9.9626 Tf 26.209 0 Td [(the)-333(comm)27(unication)-333(descriptor.)]TJ -1.302 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf 23.073 0 Td [(.)]TJ -55.452 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf 41.898 0 Td [(.)]TJ -71.509 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.956 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(structured)-333(data)-333(of)-334(t)28(yp)-28(e)]TJ 0 0 1 rg 0 0 1 RG /F30 9.9626 Tf 170.915 0 Td [(psb)]TJ ET q -1 0 0 1 312.036 120.525 cm +1 0 0 1 312.036 258.858 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 315.174 120.326 Td [(desc)]TJ +/F30 9.9626 Tf 315.174 258.658 Td [(desc)]TJ ET q -1 0 0 1 336.723 120.525 cm +1 0 0 1 336.723 258.858 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 339.861 120.326 Td [(type)]TJ +/F30 9.9626 Tf 339.861 258.658 Td [(type)]TJ 0 g 0 G /F8 9.9626 Tf 20.921 0 Td [(.)]TJ 0 g 0 G - -94.012 -29.888 Td [(19)]TJ +/F27 9.9626 Tf -260.887 -19.081 Td [(On)-383(Return)]TJ +0 g 0 G +0 g 0 G + 0 -18.791 Td [(F)96(unction)-384(v)64(alue)]TJ +0 g 0 G +/F8 9.9626 Tf 78.387 0 Td [(The)-333(comm)27(unication)-333(con)28(text.)]TJ/F27 9.9626 Tf -78.387 -25.408 Td [(psb)]TJ +ET +q +1 0 0 1 117.832 195.578 cm +[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S +Q +BT +/F27 9.9626 Tf 121.269 195.378 Td [(cd)]TJ +ET +q +1 0 0 1 133.413 195.578 cm +[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S +Q +BT +/F27 9.9626 Tf 136.85 195.378 Td [(get)]TJ +ET +q +1 0 0 1 152.973 195.578 cm +[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S +Q +BT +/F27 9.9626 Tf 156.41 195.378 Td [(large)]TJ +ET +q +1 0 0 1 181.547 195.578 cm +[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S +Q +BT +/F27 9.9626 Tf 184.984 195.378 Td [(threshold)-268(|)-268(Get)-268(threshold)-269(for)-268(index)-268(mapping)-268(switc)32(h)]TJ +0 g 0 G +0 g 0 G +/F30 9.9626 Tf -85.089 -18.389 Td [(ith)-525(=)-525(psb_cd_get_large_threshold\050\051)]TJ +0 g 0 G +/F27 9.9626 Tf 0 -19.082 Td [(T)32(yp)-32(e:)]TJ +0 g 0 G +/F8 9.9626 Tf 33.797 0 Td [(Async)28(hronous.)]TJ +0 g 0 G +/F27 9.9626 Tf -33.797 -18.791 Td [(On)-383(Return)]TJ +0 g 0 G +0 g 0 G + 0 -18.79 Td [(F)96(unction)-384(v)64(alue)]TJ +0 g 0 G +/F8 9.9626 Tf 78.387 0 Td [(The)-333(curren)28(t)-334(v)56(alue)-334(for)-333(the)-333(size)-334(threshold.)]TJ +0 g 0 G + 88.488 -29.888 Td [(17)]TJ 0 g 0 G ET endstream endobj -767 0 obj << +750 0 obj << /Type /Page -/Contents 768 0 R -/Resources 766 0 R +/Contents 751 0 R +/Resources 749 0 R /MediaBox [0 0 595.276 841.89] -/Parent 770 0 R -/Annots [ 757 0 R 763 0 R 764 0 R 765 0 R ] ->> endobj -757 0 obj << -/Type /Annot -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [135.531 678.732 142.505 690.687] -/Subtype /Link -/A << /S /GoTo /D (section.1) >> +/Parent 721 0 R +/Annots [ 741 0 R 747 0 R 748 0 R ] >> endobj -763 0 obj << +741 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [294.721 518.389 361.779 529.514] +/Rect [294.721 655.098 361.779 666.223] /Subtype /Link /A << /S /GoTo /D (descdata) >> >> endobj -764 0 obj << +747 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [294.721 331.579 361.779 342.704] +/Rect [294.721 468.945 361.779 480.069] /Subtype /Link /A << /S /GoTo /D (descdata) >> >> endobj -765 0 obj << +748 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [294.721 117.115 361.779 128.24] +/Rect [294.721 255.448 361.779 266.573] /Subtype /Link /A << /S /GoTo /D (descdata) >> >> endobj -769 0 obj << -/D [767 0 R /XYZ 99.895 740.998 null] +752 0 obj << +/D [750 0 R /XYZ 99.895 740.998 null] >> endobj 78 0 obj << -/D [767 0 R /XYZ 99.895 636.451 null] +/D [750 0 R /XYZ 99.895 586.657 null] >> endobj 82 0 obj << -/D [767 0 R /XYZ 99.895 449.641 null] +/D [750 0 R /XYZ 99.895 372.773 null] >> endobj 86 0 obj << -/D [767 0 R /XYZ 99.895 234.79 null] +/D [750 0 R /XYZ 99.895 187.007 null] >> endobj -766 0 obj << -/Font << /F27 441 0 R /F8 442 0 R /F14 620 0 R /F10 619 0 R /F30 617 0 R /F16 439 0 R >> +749 0 obj << +/Font << /F27 437 0 R /F8 438 0 R /F30 616 0 R /F16 435 0 R >> /ProcSet [ /PDF /Text ] >> endobj -775 0 obj << -/Length 5070 +757 0 obj << +/Length 5496 >> stream 0 g 0 G 0 g 0 G -0 g 0 G BT -/F27 9.9626 Tf 150.705 706.129 Td [(On)-383(Return)]TJ -0 g 0 G -0 g 0 G - 0 -23.521 Td [(F)96(unction)-384(v)64(alue)]TJ -0 g 0 G -/F8 9.9626 Tf 78.386 0 Td [(The)-333(comm)27(unication)-333(con)28(text.)]TJ/F27 9.9626 Tf -78.386 -30.664 Td [(psb)]TJ +/F27 9.9626 Tf 150.705 706.129 Td [(psb)]TJ ET q -1 0 0 1 168.641 652.143 cm +1 0 0 1 168.641 706.328 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 172.078 651.944 Td [(cd)]TJ +/F27 9.9626 Tf 172.078 706.129 Td [(cd)]TJ ET q -1 0 0 1 184.223 652.143 cm +1 0 0 1 184.223 706.328 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 187.66 651.944 Td [(get)]TJ +/F27 9.9626 Tf 187.66 706.129 Td [(set)]TJ ET q -1 0 0 1 203.782 652.143 cm +1 0 0 1 202.573 706.328 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 207.22 651.944 Td [(large)]TJ +/F27 9.9626 Tf 206.01 706.129 Td [(large)]TJ ET q -1 0 0 1 232.357 652.143 cm +1 0 0 1 231.147 706.328 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 235.794 651.944 Td [(threshold)-268(|)-268(Get)-268(threshold)-269(for)-268(index)-268(mapping)-268(switc)32(h)]TJ +/F27 9.9626 Tf 234.585 706.129 Td [(threshold)-323(|)-324(Set)-323(threshold)-323(for)-324(index)-323(mapping)-324(switc)32(h)]TJ 0 g 0 G 0 g 0 G -/F30 9.9626 Tf -85.089 -20.062 Td [(ith)-525(=)-525(psb_cd_get_large_threshold\050\051)]TJ +/F30 9.9626 Tf -83.88 -18.905 Td [(call)-525(psb_cd_set_large_threshold\050ith\051)]TJ 0 g 0 G -/F27 9.9626 Tf 0 -24.615 Td [(T)32(yp)-32(e:)]TJ +/F27 9.9626 Tf 0 -22.75 Td [(T)32(yp)-32(e:)]TJ 0 g 0 G /F8 9.9626 Tf 33.797 0 Td [(Async)28(hronous.)]TJ 0 g 0 G -/F27 9.9626 Tf -33.797 -23.52 Td [(On)-383(Return)]TJ +/F27 9.9626 Tf -33.797 -21.034 Td [(On)-383(En)32(try)]TJ 0 g 0 G 0 g 0 G - 0 -23.521 Td [(F)96(unction)-384(v)64(alue)]TJ + 0 -21.034 Td [(ith)]TJ 0 g 0 G -/F8 9.9626 Tf 78.386 0 Td [(The)-333(curren)27(t)-333(v)56(alue)-334(for)-333(the)-333(size)-334(threshold.)]TJ/F27 9.9626 Tf -78.386 -30.664 Td [(psb)]TJ -ET -q -1 0 0 1 168.641 529.761 cm -[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S -Q -BT -/F27 9.9626 Tf 172.078 529.562 Td [(cd)]TJ +/F8 9.9626 Tf 18.984 0 Td [(the)-333(new)-334(threshold)-333(for)-333(comm)27(un)1(ic)-1(ati)1(on)-334(descriptors.)]TJ 5.923 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.378 0 Td [(global)]TJ/F8 9.9626 Tf 29.756 0 Td [(.)]TJ -62.135 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.612 0 Td [(required)]TJ/F8 9.9626 Tf 41.898 0 Td [(.)]TJ -71.51 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.548 0 Td [(.)]TJ -43.034 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(in)28(teger)-333(v)55(alue)-333(greater)-334(th)1(an)-334(zero.)]TJ -24.906 -23.027 Td [(Note:)-756(the)-490(thr)1(e)-1(shold)-489(v)56(alue)-489(is)-490(only)-489(queried)-489(b)28(y)-489(the)-490(library)-489(at)-489(the)-489(time)-490(a)-489(call)]TJ 0 -11.955 Td [(to)]TJ/F30 9.9626 Tf 13.431 0 Td [(psb_cdall)]TJ/F8 9.9626 Tf 51.648 0 Td [(is)-459(executed,)-491(therefore)-459(c)27(hanging)-459(the)-459(threshold)-459(has)-459(no)-460(e\013ect)-459(on)]TJ -65.079 -11.955 Td [(comm)28(unication)-334(descriptors)-333(that)-333(ha)28(v)27(e)-333(already)-333(b)-28(een)-333(initialized.)]TJ/F27 9.9626 Tf 0 -27.367 Td [(get)]TJ ET q -1 0 0 1 184.223 529.761 cm +1 0 0 1 166.827 500.482 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 187.66 529.562 Td [(set)]TJ +/F27 9.9626 Tf 170.264 500.282 Td [(nro)32(ws)-383(|)-384(Get)-383(n)32(um)32(b)-32(er)-383(of)-384(ro)32(ws)-383(in)-383(a)-384(sparse)-383(matrix)]TJ +0 g 0 G +0 g 0 G +/F30 9.9626 Tf -19.559 -18.905 Td [(nr)-525(=)-525(a%get_nrows\050\051)]TJ +0 g 0 G +/F27 9.9626 Tf 0 -22.749 Td [(T)32(yp)-32(e:)]TJ +0 g 0 G +/F8 9.9626 Tf 33.797 0 Td [(Async)28(hronous.)]TJ +0 g 0 G +/F27 9.9626 Tf -33.797 -21.034 Td [(On)-383(En)32(try)]TJ +0 g 0 G +0 g 0 G + 0 -21.034 Td [(a)]TJ +0 g 0 G +/F8 9.9626 Tf 10.551 0 Td [(the)-333(sparse)-334(matrix)]TJ 14.355 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.956 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.612 0 Td [(required)]TJ/F8 9.9626 Tf -29.612 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.548 0 Td [(.)]TJ -43.034 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(structured)-333(data)-333(of)-334(t)28(yp)-28(e)]TJ +0 0 1 rg 0 0 1 RG +/F30 9.9626 Tf 170.915 0 Td [(psb)]TJ ET q -1 0 0 1 202.573 529.761 cm -[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S +1 0 0 1 362.845 368.938 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F27 9.9626 Tf 206.01 529.562 Td [(large)]TJ +/F30 9.9626 Tf 365.983 368.739 Td [(spmat)]TJ ET q -1 0 0 1 231.147 529.761 cm -[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S +1 0 0 1 392.763 368.938 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F27 9.9626 Tf 234.585 529.562 Td [(threshold)-323(|)-324(Set)-323(threshold)-323(for)-324(index)-323(mapping)-324(switc)32(h)]TJ -0 g 0 G -0 g 0 G -/F30 9.9626 Tf -83.88 -20.062 Td [(call)-525(psb_cd_set_large_threshold\050ith\051)]TJ +/F30 9.9626 Tf 395.901 368.739 Td [(type)]TJ 0 g 0 G -/F27 9.9626 Tf 0 -24.615 Td [(T)32(yp)-32(e:)]TJ -0 g 0 G -/F8 9.9626 Tf 33.797 0 Td [(Async)28(hronous.)]TJ +/F8 9.9626 Tf 20.921 0 Td [(.)]TJ 0 g 0 G -/F27 9.9626 Tf -33.797 -23.52 Td [(On)-383(En)32(try)]TJ +/F27 9.9626 Tf -266.117 -22.749 Td [(On)-383(Return)]TJ 0 g 0 G 0 g 0 G - 0 -23.521 Td [(ith)]TJ + 0 -21.034 Td [(F)96(unction)-384(v)64(alue)]TJ 0 g 0 G -/F8 9.9626 Tf 18.984 0 Td [(the)-333(new)-334(threshold)-333(for)-333(comm)27(un)1(ic)-1(ati)1(on)-334(descriptors.)]TJ 5.923 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.378 0 Td [(global)]TJ/F8 9.9626 Tf 29.756 0 Td [(.)]TJ -62.135 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.612 0 Td [(required)]TJ/F8 9.9626 Tf 41.898 0 Td [(.)]TJ -71.51 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.548 0 Td [(.)]TJ -43.034 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(in)28(teger)-333(v)55(alue)-333(greater)-334(th)1(an)-334(zero.)]TJ -24.906 -25.513 Td [(Note:)-756(the)-490(thr)1(e)-1(shold)-489(v)56(alue)-489(is)-490(only)-489(queried)-489(b)28(y)-489(the)-490(library)-489(at)-489(the)-489(time)-490(a)-489(call)]TJ 0 -11.956 Td [(to)]TJ/F30 9.9626 Tf 13.431 0 Td [(psb_cdall)]TJ/F8 9.9626 Tf 51.648 0 Td [(is)-459(executed,)-491(therefore)-459(c)27(hanging)-459(the)-459(threshold)-459(has)-459(no)-460(e\013ect)-459(on)]TJ -65.079 -11.955 Td [(comm)28(unication)-334(descriptors)-333(that)-333(ha)28(v)27(e)-333(already)-333(b)-28(een)-333(initialized.)]TJ/F27 9.9626 Tf 0 -30.664 Td [(get)]TJ +/F8 9.9626 Tf 78.386 0 Td [(The)-333(n)27(um)28(b)-28(er)-333(of)-333(ro)28(ws)-334(of)-333(sparse)-333(matrix)]TJ/F30 9.9626 Tf 164.937 0 Td [(a)]TJ/F8 9.9626 Tf 5.231 0 Td [(.)]TJ/F27 9.9626 Tf -248.554 -27.367 Td [(get)]TJ ET q -1 0 0 1 166.827 310.135 cm +1 0 0 1 166.827 297.789 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 170.264 309.936 Td [(nro)32(ws)-383(|)-384(Get)-383(n)32(um)32(b)-32(er)-383(of)-384(ro)32(ws)-383(in)-383(a)-384(sparse)-383(matrix)]TJ +/F27 9.9626 Tf 170.264 297.589 Td [(ncols)-383(|)-384(Get)-383(n)32(um)32(b)-32(er)-383(of)-384(columns)-383(in)-384(a)-383(sparse)-383(matrix)]TJ 0 g 0 G 0 g 0 G -/F30 9.9626 Tf -19.559 -20.062 Td [(nr)-525(=)-525(a%get_nrows\050\051)]TJ +/F30 9.9626 Tf -19.559 -18.905 Td [(nr)-525(=)-525(a%get_ncols\050\051)]TJ 0 g 0 G -/F27 9.9626 Tf 0 -24.615 Td [(T)32(yp)-32(e:)]TJ +/F27 9.9626 Tf 0 -22.749 Td [(T)32(yp)-32(e:)]TJ 0 g 0 G /F8 9.9626 Tf 33.797 0 Td [(Async)28(hronous.)]TJ 0 g 0 G -/F27 9.9626 Tf -33.797 -23.52 Td [(On)-383(En)32(try)]TJ +/F27 9.9626 Tf -33.797 -21.034 Td [(On)-383(En)32(try)]TJ 0 g 0 G 0 g 0 G - 0 -23.521 Td [(a)]TJ + 0 -21.034 Td [(a)]TJ 0 g 0 G -/F8 9.9626 Tf 10.551 0 Td [(the)-333(sparse)-334(matrix)]TJ 14.355 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.612 0 Td [(required)]TJ/F8 9.9626 Tf -29.612 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.548 0 Td [(.)]TJ -43.034 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(structured)-333(data)-333(of)-334(t)28(yp)-28(e)]TJ +/F8 9.9626 Tf 10.551 0 Td [(the)-333(sparse)-334(matrix)]TJ 14.355 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.956 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.612 0 Td [(required)]TJ/F8 9.9626 Tf -29.612 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.548 0 Td [(.)]TJ -43.034 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(structured)-333(data)-333(of)-334(t)28(yp)-28(e)]TJ 0 0 1 rg 0 0 1 RG /F30 9.9626 Tf 170.915 0 Td [(psb)]TJ ET q -1 0 0 1 362.845 170.597 cm +1 0 0 1 362.845 166.245 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 365.983 170.398 Td [(spmat)]TJ +/F30 9.9626 Tf 365.983 166.046 Td [(spmat)]TJ ET q -1 0 0 1 392.763 170.597 cm +1 0 0 1 392.763 166.245 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 395.901 170.398 Td [(type)]TJ +/F30 9.9626 Tf 395.901 166.046 Td [(type)]TJ 0 g 0 G /F8 9.9626 Tf 20.921 0 Td [(.)]TJ 0 g 0 G -/F27 9.9626 Tf -266.117 -24.615 Td [(On)-383(Return)]TJ +/F27 9.9626 Tf -266.117 -22.749 Td [(On)-383(Return)]TJ 0 g 0 G 0 g 0 G - 0 -23.52 Td [(F)96(unction)-384(v)64(alue)]TJ + 0 -21.034 Td [(F)96(unction)-384(v)64(alue)]TJ 0 g 0 G -/F8 9.9626 Tf 78.386 0 Td [(The)-333(n)27(um)28(b)-28(er)-333(of)-333(ro)28(ws)-334(of)-333(sparse)-333(matrix)]TJ/F30 9.9626 Tf 164.937 0 Td [(a)]TJ/F8 9.9626 Tf 5.231 0 Td [(.)]TJ +/F8 9.9626 Tf 78.386 0 Td [(The)-333(n)27(um)28(b)-28(er)-333(of)-333(columns)-334(of)-333(sparse)-333(matrix)]TJ/F30 9.9626 Tf 180.684 0 Td [(a)]TJ/F8 9.9626 Tf 5.23 0 Td [(.)]TJ 0 g 0 G - -81.68 -31.825 Td [(20)]TJ + -97.426 -31.825 Td [(18)]TJ 0 g 0 G ET endstream endobj -774 0 obj << +756 0 obj << /Type /Page -/Contents 775 0 R -/Resources 773 0 R +/Contents 757 0 R +/Resources 755 0 R /MediaBox [0 0 595.276 841.89] -/Parent 770 0 R -/Annots [ 771 0 R ] +/Parent 721 0 R +/Annots [ 753 0 R 754 0 R ] >> endobj -771 0 obj << +753 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [345.53 167.187 417.818 178.312] +/Rect [345.53 365.529 417.818 376.654] /Subtype /Link /A << /S /GoTo /D (spdata) >> >> endobj -776 0 obj << -/D [774 0 R /XYZ 150.705 740.998 null] +754 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [345.53 162.836 417.818 173.961] +/Subtype /Link +/A << /S /GoTo /D (spdata) >> +>> endobj +758 0 obj << +/D [756 0 R /XYZ 150.705 740.998 null] >> endobj 90 0 obj << -/D [774 0 R /XYZ 150.705 642.798 null] +/D [756 0 R /XYZ 150.705 697.519 null] >> endobj 94 0 obj << -/D [774 0 R /XYZ 150.705 520.416 null] +/D [756 0 R /XYZ 150.705 491.672 null] >> endobj 98 0 obj << -/D [774 0 R /XYZ 150.705 300.79 null] +/D [756 0 R /XYZ 150.705 288.979 null] >> endobj -773 0 obj << -/Font << /F27 441 0 R /F8 442 0 R /F30 617 0 R >> +755 0 obj << +/Font << /F27 437 0 R /F30 616 0 R /F8 438 0 R >> /ProcSet [ /PDF /Text ] >> endobj -780 0 obj << -/Length 4141 +762 0 obj << +/Length 2436 >> stream 0 g 0 G @@ -6071,10 +5775,10 @@ q []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 119.455 706.129 Td [(ncols)-383(|)-384(Get)-383(n)32(um)32(b)-32(er)-383(of)-384(columns)-383(in)-383(a)-384(sparse)-383(matrix)]TJ +/F27 9.9626 Tf 119.455 706.129 Td [(nnzeros)-383(|)-384(Get)-383(n)32(um)32(b)-32(er)-383(of)-384(nonzero)-383(elemen)32(ts)-383(in)-384(a)-383(sparse)-383(ma)-1(trix)]TJ 0 g 0 G 0 g 0 G -/F30 9.9626 Tf -19.56 -18.389 Td [(nr)-525(=)-525(a%get_ncols\050\051)]TJ +/F30 9.9626 Tf -19.56 -18.389 Td [(nr)-525(=)-525(a%get_nnzeros\050\051)]TJ 0 g 0 G /F27 9.9626 Tf 0 -21.918 Td [(T)32(yp)-32(e:)]TJ 0 g 0 G @@ -6110,102 +5814,46 @@ BT 0 g 0 G 0 -19.926 Td [(F)96(unction)-384(v)64(alue)]TJ 0 g 0 G -/F8 9.9626 Tf 78.387 0 Td [(The)-333(n)27(u)1(m)27(b)-27(e)-1(r)-333(of)-333(columns)-333(of)-334(sparse)-333(matrix)]TJ/F30 9.9626 Tf 180.683 0 Td [(a)]TJ/F8 9.9626 Tf 5.231 0 Td [(.)]TJ/F27 9.9626 Tf -264.301 -25.896 Td [(get)]TJ -ET -q -1 0 0 1 116.018 510.611 cm -[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S -Q -BT -/F27 9.9626 Tf 119.455 510.411 Td [(nnzeros)-383(|)-384(Get)-383(n)32(um)32(b)-32(er)-383(of)-384(nonzero)-383(elemen)32(ts)-383(in)-384(a)-383(sparse)-383(ma)-1(trix)]TJ -0 g 0 G -0 g 0 G -/F30 9.9626 Tf -19.56 -18.389 Td [(nr)-525(=)-525(a%get_nnzeros\050\051)]TJ -0 g 0 G -/F27 9.9626 Tf 0 -21.918 Td [(T)32(yp)-32(e:)]TJ -0 g 0 G -/F8 9.9626 Tf 33.797 0 Td [(Async)28(hronous.)]TJ -0 g 0 G -/F27 9.9626 Tf -33.797 -19.925 Td [(On)-383(En)32(try)]TJ -0 g 0 G -0 g 0 G - 0 -19.925 Td [(a)]TJ -0 g 0 G -/F8 9.9626 Tf 10.551 0 Td [(the)-333(sparse)-334(matrix)]TJ 14.356 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.956 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(structured)-333(data)-333(of)-334(t)28(yp)-28(e)]TJ -0 0 1 rg 0 0 1 RG -/F30 9.9626 Tf 170.915 0 Td [(psb)]TJ -ET -q -1 0 0 1 312.036 382.632 cm -[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S -Q -BT -/F30 9.9626 Tf 315.174 382.433 Td [(spmat)]TJ -ET -q -1 0 0 1 341.953 382.632 cm -[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S -Q -BT -/F30 9.9626 Tf 345.091 382.433 Td [(type)]TJ -0 g 0 G -/F8 9.9626 Tf 20.922 0 Td [(.)]TJ -0 g 0 G -/F27 9.9626 Tf -266.118 -21.918 Td [(On)-383(Return)]TJ -0 g 0 G -0 g 0 G - 0 -19.925 Td [(F)96(unction)-384(v)64(alue)]TJ -0 g 0 G -/F8 9.9626 Tf 78.387 0 Td [(The)-333(n)27(u)1(m)27(b)-27(e)-1(r)-333(of)-333(nonzero)-333(elem)-1(en)28(ts)-333(stored)-333(in)-334(sparse)-333(matrix)]TJ/F30 9.9626 Tf 249.979 0 Td [(a)]TJ/F8 9.9626 Tf 5.231 0 Td [(.)]TJ/F27 9.9626 Tf -333.597 -21.918 Td [(Notes)]TJ +/F8 9.9626 Tf 78.387 0 Td [(The)-333(n)27(u)1(m)27(b)-27(e)-1(r)-333(of)-333(nonzero)-333(elem)-1(en)28(ts)-333(stored)-333(in)-334(sparse)-333(matrix)]TJ/F30 9.9626 Tf 249.979 0 Td [(a)]TJ/F8 9.9626 Tf 5.231 0 Td [(.)]TJ/F27 9.9626 Tf -333.597 -21.917 Td [(Notes)]TJ 0 g 0 G -/F8 9.9626 Tf 12.177 -19.925 Td [(1.)]TJ +/F8 9.9626 Tf 12.177 -19.926 Td [(1.)]TJ 0 g 0 G [-500(The)-462(function)-462(v)55(alue)-462(is)-462(sp)-28(eci\014c)-462(to)-462(the)-463(storage)-462(format)-462(of)-462(matrix)]TJ/F30 9.9626 Tf 296.649 0 Td [(a)]TJ/F8 9.9626 Tf 5.23 0 Td [(;)-527(some)]TJ -289.149 -11.955 Td [(storage)-465(formats)-466(emplo)28(y)-465(padding,)-498(th)27(u)1(s)-466(the)-465(returned)-465(v)55(alue)-465(for)-465(the)-466(same)]TJ 0 -11.955 Td [(matrix)-333(ma)27(y)-333(b)-28(e)-333(di\013eren)28(t)-334(for)-333(di\013eren)28(t)-333(storage)-334(c)28(hoices.)]TJ 0 g 0 G - 141.968 -184.399 Td [(21)]TJ + 141.968 -380.116 Td [(19)]TJ 0 g 0 G ET endstream endobj -779 0 obj << +761 0 obj << /Type /Page -/Contents 780 0 R -/Resources 778 0 R +/Contents 762 0 R +/Resources 760 0 R /MediaBox [0 0 595.276 841.89] -/Parent 770 0 R -/Annots [ 772 0 R 777 0 R ] +/Parent 765 0 R +/Annots [ 759 0 R ] >> endobj -772 0 obj << +759 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [294.721 574.94 367.009 586.065] /Subtype /Link /A << /S /GoTo /D (spdata) >> >> endobj -777 0 obj << -/Type /Annot -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [294.721 379.223 367.009 390.348] -/Subtype /Link -/A << /S /GoTo /D (spdata) >> ->> endobj -781 0 obj << -/D [779 0 R /XYZ 99.895 740.998 null] +763 0 obj << +/D [761 0 R /XYZ 99.895 740.998 null] >> endobj 102 0 obj << -/D [779 0 R /XYZ 99.895 697.758 null] ->> endobj -106 0 obj << -/D [779 0 R /XYZ 99.895 502.04 null] +/D [761 0 R /XYZ 99.895 697.758 null] >> endobj -782 0 obj << -/D [779 0 R /XYZ 99.895 314.687 null] +764 0 obj << +/D [761 0 R /XYZ 99.895 510.405 null] >> endobj -778 0 obj << -/Font << /F27 441 0 R /F30 617 0 R /F8 442 0 R >> +760 0 obj << +/Font << /F27 437 0 R /F30 616 0 R /F8 438 0 R >> /ProcSet [ /PDF /Text ] >> endobj -785 0 obj << +768 0 obj << /Length 158 >> stream @@ -6214,29 +5862,29 @@ stream BT /F16 14.3462 Tf 150.705 706.129 Td [(4)-1125(Computational)-375(routines)]TJ 0 g 0 G -/F8 9.9626 Tf 166.874 -615.691 Td [(22)]TJ +/F8 9.9626 Tf 166.874 -615.691 Td [(20)]TJ 0 g 0 G ET endstream endobj -784 0 obj << +767 0 obj << /Type /Page -/Contents 785 0 R -/Resources 783 0 R +/Contents 768 0 R +/Resources 766 0 R /MediaBox [0 0 595.276 841.89] -/Parent 770 0 R +/Parent 765 0 R >> endobj -786 0 obj << -/D [784 0 R /XYZ 150.705 740.998 null] +769 0 obj << +/D [767 0 R /XYZ 150.705 740.998 null] >> endobj -110 0 obj << -/D [784 0 R /XYZ 150.705 716.092 null] +106 0 obj << +/D [767 0 R /XYZ 150.705 716.092 null] >> endobj -783 0 obj << -/Font << /F16 439 0 R /F8 442 0 R >> +766 0 obj << +/Font << /F16 435 0 R /F8 438 0 R >> /ProcSet [ /PDF /Text ] >> endobj -795 0 obj << +778 0 obj << /Length 6970 >> stream @@ -6378,68 +6026,68 @@ BT 0 g 0 G /F8 9.9626 Tf 20.921 0 Td [(.)]TJ 0 g 0 G - -94.012 -29.888 Td [(23)]TJ + -94.012 -29.888 Td [(21)]TJ 0 g 0 G ET endstream endobj -794 0 obj << +777 0 obj << /Type /Page -/Contents 795 0 R -/Resources 793 0 R +/Contents 778 0 R +/Resources 776 0 R /MediaBox [0 0 595.276 841.89] -/Parent 770 0 R -/Annots [ 787 0 R 788 0 R 789 0 R 790 0 R 791 0 R ] +/Parent 765 0 R +/Annots [ 770 0 R 771 0 R 772 0 R 773 0 R 774 0 R ] >> endobj -787 0 obj << +770 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [382.088 410.346 389.062 421.194] /Subtype /Link /A << /S /GoTo /D (table.1) >> >> endobj -788 0 obj << +771 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [162.826 331.13 169.8 341.978] /Subtype /Link /A << /S /GoTo /D (table.1) >> >> endobj -789 0 obj << +772 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [382.088 263.869 389.062 274.717] /Subtype /Link /A << /S /GoTo /D (table.1) >> >> endobj -790 0 obj << +773 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [205.998 184.653 212.972 195.501] /Subtype /Link /A << /S /GoTo /D (table.1) >> >> endobj -791 0 obj << +774 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [294.721 117.115 361.779 128.24] /Subtype /Link /A << /S /GoTo /D (descdata) >> >> endobj -796 0 obj << -/D [794 0 R /XYZ 99.895 740.998 null] +779 0 obj << +/D [777 0 R /XYZ 99.895 740.998 null] >> endobj -114 0 obj << -/D [794 0 R /XYZ 99.895 697.37 null] +110 0 obj << +/D [777 0 R /XYZ 99.895 697.37 null] >> endobj -797 0 obj << -/D [794 0 R /XYZ 267.641 543.834 null] +780 0 obj << +/D [777 0 R /XYZ 267.641 543.834 null] >> endobj -793 0 obj << -/Font << /F16 439 0 R /F8 442 0 R /F11 603 0 R /F14 620 0 R /F30 617 0 R /F27 441 0 R >> +776 0 obj << +/Font << /F16 435 0 R /F8 438 0 R /F11 599 0 R /F14 619 0 R /F30 616 0 R /F27 437 0 R >> /ProcSet [ /PDF /Text ] >> endobj -800 0 obj << +783 0 obj << /Length 1495 >> stream @@ -6462,34 +6110,34 @@ BT 0 g 0 G /F8 9.9626 Tf 23.758 0 Td [(Error)-333(co)-28(de.)]TJ 1.149 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.378 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.378 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.485 0 Td [(out)]TJ/F8 9.9626 Tf 16.549 0 Td [(.)]TJ -50.034 -11.955 Td [(An)-333(in)28(teger)-334(v)56(alue;)-334(0)-333(means)-333(no)-334(error)-333(has)-333(b)-28(een)-333(detected.)]TJ 0 g 0 G - 141.967 -468.244 Td [(24)]TJ + 141.967 -468.244 Td [(22)]TJ 0 g 0 G ET endstream endobj -799 0 obj << +782 0 obj << /Type /Page -/Contents 800 0 R -/Resources 798 0 R +/Contents 783 0 R +/Resources 781 0 R /MediaBox [0 0 595.276 841.89] -/Parent 770 0 R -/Annots [ 792 0 R ] +/Parent 765 0 R +/Annots [ 775 0 R ] >> endobj -792 0 obj << +775 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [256.807 625.431 263.781 634.343] /Subtype /Link /A << /S /GoTo /D (table.1) >> >> endobj -801 0 obj << -/D [799 0 R /XYZ 150.705 740.998 null] +784 0 obj << +/D [782 0 R /XYZ 150.705 740.998 null] >> endobj -798 0 obj << -/Font << /F27 441 0 R /F8 442 0 R /F11 603 0 R >> +781 0 obj << +/Font << /F27 437 0 R /F8 438 0 R /F11 599 0 R >> /ProcSet [ /PDF /Text ] >> endobj -808 0 obj << +791 0 obj << /Length 6909 >> stream @@ -6626,61 +6274,61 @@ BT 0 g 0 G [(.)]TJ 0 g 0 G - 141.968 -29.888 Td [(25)]TJ + 141.968 -29.888 Td [(23)]TJ 0 g 0 G ET endstream endobj -807 0 obj << +790 0 obj << /Type /Page -/Contents 808 0 R -/Resources 806 0 R +/Contents 791 0 R +/Resources 789 0 R /MediaBox [0 0 595.276 841.89] -/Parent 811 0 R -/Annots [ 802 0 R 803 0 R 804 0 R 805 0 R ] +/Parent 765 0 R +/Annots [ 785 0 R 786 0 R 787 0 R 788 0 R ] >> endobj -802 0 obj << +785 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [203.009 332.314 209.983 343.163] /Subtype /Link /A << /S /GoTo /D (table.2) >> >> endobj -803 0 obj << +786 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [203.009 251.685 209.983 262.533] /Subtype /Link /A << /S /GoTo /D (table.2) >> >> endobj -804 0 obj << +787 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [294.721 182.733 361.779 193.858] /Subtype /Link /A << /S /GoTo /D (descdata) >> >> endobj -805 0 obj << +788 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [382.088 117.392 389.062 128.24] /Subtype /Link /A << /S /GoTo /D (table.2) >> >> endobj -809 0 obj << -/D [807 0 R /XYZ 99.895 740.998 null] +792 0 obj << +/D [790 0 R /XYZ 99.895 740.998 null] >> endobj -118 0 obj << -/D [807 0 R /XYZ 99.895 697.17 null] +114 0 obj << +/D [790 0 R /XYZ 99.895 697.17 null] >> endobj -810 0 obj << -/D [807 0 R /XYZ 267.641 483.443 null] +793 0 obj << +/D [790 0 R /XYZ 267.641 483.443 null] >> endobj -806 0 obj << -/Font << /F16 439 0 R /F8 442 0 R /F11 603 0 R /F14 620 0 R /F10 619 0 R /F30 617 0 R /F27 441 0 R >> +789 0 obj << +/Font << /F16 435 0 R /F8 438 0 R /F11 599 0 R /F14 619 0 R /F10 618 0 R /F30 616 0 R /F27 437 0 R >> /ProcSet [ /PDF /Text ] >> endobj -814 0 obj << +796 0 obj << /Length 625 >> stream @@ -6692,26 +6340,26 @@ BT 0 g 0 G /F8 9.9626 Tf 23.758 0 Td [(Error)-333(co)-28(de.)]TJ 1.148 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.612 0 Td [(required)]TJ/F8 9.9626 Tf -29.612 -11.956 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(out)]TJ/F8 9.9626 Tf 16.549 0 Td [(.)]TJ -50.035 -11.955 Td [(An)-333(in)27(t)1(e)-1(ger)-333(v)56(alue;)-334(0)-333(means)-333(no)-334(error)-333(has)-333(b)-28(een)-333(detec)-1(ted.)]TJ 0 g 0 G - 141.968 -567.87 Td [(26)]TJ + 141.968 -567.87 Td [(24)]TJ 0 g 0 G ET endstream endobj -813 0 obj << +795 0 obj << /Type /Page -/Contents 814 0 R -/Resources 812 0 R +/Contents 796 0 R +/Resources 794 0 R /MediaBox [0 0 595.276 841.89] -/Parent 811 0 R +/Parent 765 0 R >> endobj -815 0 obj << -/D [813 0 R /XYZ 150.705 740.998 null] +797 0 obj << +/D [795 0 R /XYZ 150.705 740.998 null] >> endobj -812 0 obj << -/Font << /F27 441 0 R /F8 442 0 R >> +794 0 obj << +/Font << /F27 437 0 R /F8 438 0 R >> /ProcSet [ /PDF /Text ] >> endobj -822 0 obj << +804 0 obj << /Length 7473 >> stream @@ -6848,61 +6496,61 @@ BT 0 g 0 G [(.)]TJ 0 g 0 G - 141.968 -29.888 Td [(27)]TJ + 141.968 -29.888 Td [(25)]TJ 0 g 0 G ET endstream endobj -821 0 obj << +803 0 obj << /Type /Page -/Contents 822 0 R -/Resources 820 0 R +/Contents 804 0 R +/Resources 802 0 R /MediaBox [0 0 595.276 841.89] -/Parent 811 0 R -/Annots [ 816 0 R 817 0 R 818 0 R 819 0 R ] +/Parent 807 0 R +/Annots [ 798 0 R 799 0 R 800 0 R 801 0 R ] >> endobj -816 0 obj << +798 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [203.009 352.148 209.983 362.996] /Subtype /Link /A << /S /GoTo /D (table.3) >> >> endobj -817 0 obj << +799 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [203.009 272.537 209.983 283.386] /Subtype /Link /A << /S /GoTo /D (table.3) >> >> endobj -818 0 obj << +800 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [294.721 204.605 361.779 215.73] /Subtype /Link /A << /S /GoTo /D (descdata) >> >> endobj -819 0 obj << +801 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [151.203 119.329 158.177 128.24] /Subtype /Link /A << /S /GoTo /D (table.2) >> >> endobj -823 0 obj << -/D [821 0 R /XYZ 99.895 740.998 null] +805 0 obj << +/D [803 0 R /XYZ 99.895 740.998 null] >> endobj -122 0 obj << -/D [821 0 R /XYZ 99.895 697.37 null] +118 0 obj << +/D [803 0 R /XYZ 99.895 697.37 null] >> endobj -824 0 obj << -/D [821 0 R /XYZ 267.641 499.76 null] +806 0 obj << +/D [803 0 R /XYZ 267.641 499.76 null] >> endobj -820 0 obj << -/Font << /F16 439 0 R /F8 442 0 R /F11 603 0 R /F14 620 0 R /F10 619 0 R /F30 617 0 R /F27 441 0 R >> +802 0 obj << +/Font << /F16 435 0 R /F8 438 0 R /F11 599 0 R /F14 619 0 R /F10 618 0 R /F30 616 0 R /F27 437 0 R >> /ProcSet [ /PDF /Text ] >> endobj -827 0 obj << +810 0 obj << /Length 625 >> stream @@ -6914,26 +6562,26 @@ BT 0 g 0 G /F8 9.9626 Tf 23.758 0 Td [(Error)-333(co)-28(de.)]TJ 1.148 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.612 0 Td [(required)]TJ/F8 9.9626 Tf -29.612 -11.956 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(out)]TJ/F8 9.9626 Tf 16.549 0 Td [(.)]TJ -50.035 -11.955 Td [(An)-333(in)27(t)1(e)-1(ger)-333(v)56(alue;)-334(0)-333(means)-333(no)-334(error)-333(has)-333(b)-28(een)-333(detec)-1(ted.)]TJ 0 g 0 G - 141.968 -567.87 Td [(28)]TJ + 141.968 -567.87 Td [(26)]TJ 0 g 0 G ET endstream endobj -826 0 obj << +809 0 obj << /Type /Page -/Contents 827 0 R -/Resources 825 0 R +/Contents 810 0 R +/Resources 808 0 R /MediaBox [0 0 595.276 841.89] -/Parent 811 0 R +/Parent 807 0 R >> endobj -828 0 obj << -/D [826 0 R /XYZ 150.705 740.998 null] +811 0 obj << +/D [809 0 R /XYZ 150.705 740.998 null] >> endobj -825 0 obj << -/Font << /F27 441 0 R /F8 442 0 R >> +808 0 obj << +/Font << /F27 437 0 R /F8 438 0 R >> /ProcSet [ /PDF /Text ] >> endobj -833 0 obj << +816 0 obj << /Length 6532 >> stream @@ -7062,47 +6710,47 @@ BT 0 g 0 G /F8 9.9626 Tf 23.758 0 Td [(Error)-333(co)-28(de.)]TJ 1.149 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(out)]TJ/F8 9.9626 Tf 16.549 0 Td [(.)]TJ -50.035 -11.955 Td [(An)-333(in)28(tege)-1(r)-333(v)56(alue;)-334(0)-333(means)-333(no)-334(error)-333(has)-333(b)-28(een)-333(detecte)-1(d)1(.)]TJ 0 g 0 G - 141.968 -45.795 Td [(29)]TJ + 141.968 -45.795 Td [(27)]TJ 0 g 0 G ET endstream endobj -832 0 obj << +815 0 obj << /Type /Page -/Contents 833 0 R -/Resources 831 0 R +/Contents 816 0 R +/Resources 814 0 R /MediaBox [0 0 595.276 841.89] -/Parent 811 0 R -/Annots [ 829 0 R 830 0 R ] +/Parent 807 0 R +/Annots [ 812 0 R 813 0 R ] >> endobj -829 0 obj << +812 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [162.826 334.489 169.8 343.4] /Subtype /Link /A << /S /GoTo /D (table.4) >> >> endobj -830 0 obj << +813 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [294.721 264.529 361.779 275.654] /Subtype /Link /A << /S /GoTo /D (descdata) >> >> endobj -834 0 obj << -/D [832 0 R /XYZ 99.895 740.998 null] +817 0 obj << +/D [815 0 R /XYZ 99.895 740.998 null] >> endobj -126 0 obj << -/D [832 0 R /XYZ 99.895 697.37 null] +122 0 obj << +/D [815 0 R /XYZ 99.895 697.37 null] >> endobj -835 0 obj << -/D [832 0 R /XYZ 267.641 480.663 null] +818 0 obj << +/D [815 0 R /XYZ 267.641 480.663 null] >> endobj -831 0 obj << -/Font << /F16 439 0 R /F8 442 0 R /F11 603 0 R /F14 620 0 R /F10 619 0 R /F30 617 0 R /F27 441 0 R >> +814 0 obj << +/Font << /F16 435 0 R /F8 438 0 R /F11 599 0 R /F14 619 0 R /F10 618 0 R /F30 616 0 R /F27 437 0 R >> /ProcSet [ /PDF /Text ] >> endobj -840 0 obj << +823 0 obj << /Length 5812 >> stream @@ -7231,47 +6879,47 @@ BT 0 g 0 G /F8 9.9626 Tf 23.758 0 Td [(Error)-333(co)-28(de.)]TJ 1.148 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.612 0 Td [(required)]TJ/F8 9.9626 Tf -29.612 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(out)]TJ/F8 9.9626 Tf 16.549 0 Td [(.)]TJ -50.035 -11.956 Td [(An)-333(in)27(t)1(e)-1(ger)-333(v)56(alue;)-334(0)-333(means)-333(no)-334(error)-333(has)-333(b)-28(een)-333(detec)-1(ted.)]TJ 0 g 0 G - 141.968 -90.64 Td [(30)]TJ + 141.968 -90.64 Td [(28)]TJ 0 g 0 G ET endstream endobj -839 0 obj << +822 0 obj << /Type /Page -/Contents 840 0 R -/Resources 838 0 R +/Contents 823 0 R +/Resources 821 0 R /MediaBox [0 0 595.276 841.89] -/Parent 811 0 R -/Annots [ 836 0 R 837 0 R ] +/Parent 807 0 R +/Annots [ 819 0 R 820 0 R ] >> endobj -836 0 obj << +819 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [213.636 391.29 220.609 400.201] /Subtype /Link /A << /S /GoTo /D (table.5) >> >> endobj -837 0 obj << +820 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [345.53 321.33 412.588 332.455] /Subtype /Link /A << /S /GoTo /D (descdata) >> >> endobj -841 0 obj << -/D [839 0 R /XYZ 150.705 740.998 null] +824 0 obj << +/D [822 0 R /XYZ 150.705 740.998 null] >> endobj -130 0 obj << -/D [839 0 R /XYZ 150.705 697.37 null] +126 0 obj << +/D [822 0 R /XYZ 150.705 697.37 null] >> endobj -842 0 obj << -/D [839 0 R /XYZ 318.451 537.464 null] +825 0 obj << +/D [822 0 R /XYZ 318.451 537.464 null] >> endobj -838 0 obj << -/Font << /F16 439 0 R /F8 442 0 R /F11 603 0 R /F14 620 0 R /F10 619 0 R /F30 617 0 R /F27 441 0 R >> +821 0 obj << +/Font << /F16 435 0 R /F8 438 0 R /F11 599 0 R /F14 619 0 R /F10 618 0 R /F30 616 0 R /F27 437 0 R >> /ProcSet [ /PDF /Text ] >> endobj -847 0 obj << +830 0 obj << /Length 6175 >> stream @@ -7400,47 +7048,47 @@ BT 0 g 0 G /F8 9.9626 Tf 23.758 0 Td [(Error)-333(co)-28(de.)]TJ 1.149 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(out)]TJ/F8 9.9626 Tf 16.549 0 Td [(.)]TJ -50.035 -11.955 Td [(An)-333(in)28(tege)-1(r)-333(v)56(alue;)-334(0)-333(means)-333(no)-334(error)-333(has)-333(b)-28(een)-333(detecte)-1(d)1(.)]TJ 0 g 0 G - 141.968 -52.257 Td [(31)]TJ + 141.968 -52.257 Td [(29)]TJ 0 g 0 G ET endstream endobj -846 0 obj << +829 0 obj << /Type /Page -/Contents 847 0 R -/Resources 845 0 R +/Contents 830 0 R +/Resources 828 0 R /MediaBox [0 0 595.276 841.89] -/Parent 850 0 R -/Annots [ 843 0 R 844 0 R ] +/Parent 807 0 R +/Annots [ 826 0 R 827 0 R ] >> endobj -843 0 obj << +826 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [162.826 340.951 169.8 349.862] /Subtype /Link /A << /S /GoTo /D (table.6) >> >> endobj -844 0 obj << +827 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [294.721 270.991 361.779 282.116] /Subtype /Link /A << /S /GoTo /D (descdata) >> >> endobj -848 0 obj << -/D [846 0 R /XYZ 99.895 740.998 null] +831 0 obj << +/D [829 0 R /XYZ 99.895 740.998 null] >> endobj -134 0 obj << -/D [846 0 R /XYZ 99.895 697.37 null] +130 0 obj << +/D [829 0 R /XYZ 99.895 697.37 null] >> endobj -849 0 obj << -/D [846 0 R /XYZ 267.641 487.125 null] +832 0 obj << +/D [829 0 R /XYZ 267.641 487.125 null] >> endobj -845 0 obj << -/Font << /F16 439 0 R /F8 442 0 R /F11 603 0 R /F14 620 0 R /F10 619 0 R /F7 618 0 R /F30 617 0 R /F27 441 0 R >> +828 0 obj << +/Font << /F16 435 0 R /F8 438 0 R /F11 599 0 R /F14 619 0 R /F10 618 0 R /F7 617 0 R /F30 616 0 R /F27 437 0 R >> /ProcSet [ /PDF /Text ] >> endobj -855 0 obj << +837 0 obj << /Length 6862 >> stream @@ -7565,47 +7213,47 @@ BT 0 g 0 G /F8 9.9626 Tf 19.47 0 Td [(con)28(tains)-334(th)1(e)-334(1-norm)-333(of)-333(\050the)-334(columns)-333(of)-78(\051)]TJ/F11 9.9626 Tf 177.75 0 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(.)]TJ -178.008 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(global)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(out)]TJ/F8 9.9626 Tf 16.549 0 Td [(.)]TJ -50.035 -11.955 Td [(Short)-324(as:)-440(a)-324(long)-324(precision)-325(r)1(e)-1(al)-324(n)28(um)28(b)-28(er.)-441(Sp)-28(eci\014ed)-324(as:)-440(a)-324(long)-324(precision)-325(real)]TJ 0 -11.955 Td [(n)28(um)28(b)-28(er.)]TJ 0 g 0 G - 141.968 -29.888 Td [(32)]TJ + 141.968 -29.888 Td [(30)]TJ 0 g 0 G ET endstream endobj -854 0 obj << +836 0 obj << /Type /Page -/Contents 855 0 R -/Resources 853 0 R +/Contents 837 0 R +/Resources 835 0 R /MediaBox [0 0 595.276 841.89] -/Parent 850 0 R -/Annots [ 851 0 R 852 0 R ] +/Parent 807 0 R +/Annots [ 833 0 R 834 0 R ] >> endobj -851 0 obj << +833 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [213.636 280.099 220.609 289.01] /Subtype /Link /A << /S /GoTo /D (table.7) >> >> endobj -852 0 obj << +834 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [345.53 208.355 412.588 219.48] /Subtype /Link /A << /S /GoTo /D (descdata) >> >> endobj -856 0 obj << -/D [854 0 R /XYZ 150.705 740.998 null] +838 0 obj << +/D [836 0 R /XYZ 150.705 740.998 null] >> endobj -138 0 obj << -/D [854 0 R /XYZ 150.705 696.986 null] +134 0 obj << +/D [836 0 R /XYZ 150.705 696.986 null] >> endobj -857 0 obj << -/D [854 0 R /XYZ 318.451 432.072 null] +839 0 obj << +/D [836 0 R /XYZ 318.451 432.072 null] >> endobj -853 0 obj << -/Font << /F16 439 0 R /F8 442 0 R /F11 603 0 R /F14 620 0 R /F10 619 0 R /F7 618 0 R /F30 617 0 R /F27 441 0 R >> +835 0 obj << +/Font << /F16 435 0 R /F8 438 0 R /F11 599 0 R /F14 619 0 R /F10 618 0 R /F7 617 0 R /F30 616 0 R /F27 437 0 R >> /ProcSet [ /PDF /Text ] >> endobj -860 0 obj << +842 0 obj << /Length 624 >> stream @@ -7617,26 +7265,26 @@ BT 0 g 0 G /F8 9.9626 Tf 23.758 0 Td [(Error)-333(co)-28(de.)]TJ 1.149 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.956 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(out)]TJ/F8 9.9626 Tf 16.549 0 Td [(.)]TJ -50.035 -11.955 Td [(An)-333(in)28(tege)-1(r)-333(v)56(alue;)-334(0)-333(means)-333(no)-334(error)-333(has)-333(b)-28(een)-333(detecte)-1(d)1(.)]TJ 0 g 0 G - 141.968 -567.87 Td [(33)]TJ + 141.968 -567.87 Td [(31)]TJ 0 g 0 G ET endstream endobj -859 0 obj << +841 0 obj << /Type /Page -/Contents 860 0 R -/Resources 858 0 R +/Contents 842 0 R +/Resources 840 0 R /MediaBox [0 0 595.276 841.89] -/Parent 850 0 R +/Parent 844 0 R >> endobj -861 0 obj << -/D [859 0 R /XYZ 99.895 740.998 null] +843 0 obj << +/D [841 0 R /XYZ 99.895 740.998 null] >> endobj -858 0 obj << -/Font << /F27 441 0 R /F8 442 0 R >> +840 0 obj << +/Font << /F27 437 0 R /F8 438 0 R >> /ProcSet [ /PDF /Text ] >> endobj -866 0 obj << +849 0 obj << /Length 6259 >> stream @@ -7779,47 +7427,47 @@ BT 0 g 0 G /F8 9.9626 Tf 23.758 0 Td [(Error)-333(co)-28(de.)]TJ 1.149 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.378 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.378 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.956 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.485 0 Td [(out)]TJ/F8 9.9626 Tf 16.549 0 Td [(.)]TJ -50.034 -11.955 Td [(An)-333(in)28(teger)-334(v)56(alue;)-334(0)-333(means)-333(no)-334(error)-333(has)-333(b)-28(een)-333(detected.)]TJ 0 g 0 G - 141.967 -41.423 Td [(34)]TJ + 141.967 -41.423 Td [(32)]TJ 0 g 0 G ET endstream endobj -865 0 obj << +848 0 obj << /Type /Page -/Contents 866 0 R -/Resources 864 0 R +/Contents 849 0 R +/Resources 847 0 R /MediaBox [0 0 595.276 841.89] -/Parent 850 0 R -/Annots [ 862 0 R 863 0 R ] +/Parent 844 0 R +/Annots [ 845 0 R 846 0 R ] >> endobj -862 0 obj << +845 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [213.636 341.49 220.609 350.401] /Subtype /Link /A << /S /GoTo /D (table.8) >> >> endobj -863 0 obj << +846 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [345.53 271.676 412.588 282.801] /Subtype /Link /A << /S /GoTo /D (descdata) >> >> endobj -867 0 obj << -/D [865 0 R /XYZ 150.705 740.998 null] +850 0 obj << +/D [848 0 R /XYZ 150.705 740.998 null] >> endobj -142 0 obj << -/D [865 0 R /XYZ 150.705 697.37 null] +138 0 obj << +/D [848 0 R /XYZ 150.705 697.37 null] >> endobj -868 0 obj << -/D [865 0 R /XYZ 318.451 510.406 null] +851 0 obj << +/D [848 0 R /XYZ 318.451 510.406 null] >> endobj -864 0 obj << -/Font << /F16 439 0 R /F8 442 0 R /F11 603 0 R /F14 620 0 R /F10 619 0 R /F27 441 0 R /F30 617 0 R >> +847 0 obj << +/Font << /F16 435 0 R /F8 438 0 R /F11 599 0 R /F14 619 0 R /F10 618 0 R /F27 437 0 R /F30 616 0 R >> /ProcSet [ /PDF /Text ] >> endobj -873 0 obj << +856 0 obj << /Length 5648 >> stream @@ -7948,47 +7596,47 @@ BT 0 g 0 G /F8 9.9626 Tf 23.758 0 Td [(Error)-333(co)-28(de.)]TJ 1.149 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(out)]TJ/F8 9.9626 Tf 16.549 0 Td [(.)]TJ -50.035 -11.955 Td [(An)-333(in)28(tege)-1(r)-333(v)56(alue;)-334(0)-333(means)-333(no)-334(error)-333(has)-333(b)-28(een)-333(detecte)-1(d)1(.)]TJ 0 g 0 G - 141.968 -94.1 Td [(35)]TJ + 141.968 -94.1 Td [(33)]TJ 0 g 0 G ET endstream endobj -872 0 obj << +855 0 obj << /Type /Page -/Contents 873 0 R -/Resources 871 0 R +/Contents 856 0 R +/Resources 854 0 R /MediaBox [0 0 595.276 841.89] -/Parent 850 0 R -/Annots [ 869 0 R 870 0 R ] +/Parent 844 0 R +/Annots [ 852 0 R 853 0 R ] >> endobj -869 0 obj << +852 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [162.826 394.749 169.8 403.66] /Subtype /Link /A << /S /GoTo /D (table.9) >> >> endobj -870 0 obj << +853 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [294.721 324.789 361.779 335.914] /Subtype /Link /A << /S /GoTo /D (descdata) >> >> endobj -874 0 obj << -/D [872 0 R /XYZ 99.895 740.998 null] +857 0 obj << +/D [855 0 R /XYZ 99.895 740.998 null] >> endobj -146 0 obj << -/D [872 0 R /XYZ 99.895 697.37 null] +142 0 obj << +/D [855 0 R /XYZ 99.895 697.37 null] >> endobj -875 0 obj << -/D [872 0 R /XYZ 267.641 540.923 null] +858 0 obj << +/D [855 0 R /XYZ 267.641 540.923 null] >> endobj -871 0 obj << -/Font << /F16 439 0 R /F8 442 0 R /F11 603 0 R /F14 620 0 R /F7 618 0 R /F30 617 0 R /F27 441 0 R >> +854 0 obj << +/Font << /F16 435 0 R /F8 438 0 R /F11 599 0 R /F14 619 0 R /F7 617 0 R /F30 616 0 R /F27 437 0 R >> /ProcSet [ /PDF /Text ] >> endobj -880 0 obj << +863 0 obj << /Length 5477 >> stream @@ -8135,47 +7783,47 @@ BT 0 g 0 G /F8 9.9626 Tf 23.758 0 Td [(Error)-333(co)-28(de.)]TJ 1.148 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.612 0 Td [(required)]TJ/F8 9.9626 Tf -29.612 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(out)]TJ/F8 9.9626 Tf 16.549 0 Td [(.)]TJ -50.035 -11.955 Td [(An)-333(in)28(te)-1(ger)-333(v)56(alue;)-334(0)-333(means)-333(no)-334(error)-333(has)-333(b)-28(een)-333(detec)-1(ted.)]TJ 0 g 0 G - 141.968 -68.197 Td [(36)]TJ + 141.968 -68.197 Td [(34)]TJ 0 g 0 G ET endstream endobj -879 0 obj << +862 0 obj << /Type /Page -/Contents 880 0 R -/Resources 878 0 R +/Contents 863 0 R +/Resources 861 0 R /MediaBox [0 0 595.276 841.89] -/Parent 850 0 R -/Annots [ 876 0 R 877 0 R ] +/Parent 844 0 R +/Annots [ 859 0 R 860 0 R ] >> endobj -876 0 obj << +859 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [345.53 354.677 417.818 365.802] /Subtype /Link /A << /S /GoTo /D (spdata) >> >> endobj -877 0 obj << +860 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [345.53 286.931 412.588 298.056] /Subtype /Link /A << /S /GoTo /D (descdata) >> >> endobj -881 0 obj << -/D [879 0 R /XYZ 150.705 740.998 null] +864 0 obj << +/D [862 0 R /XYZ 150.705 740.998 null] >> endobj -150 0 obj << -/D [879 0 R /XYZ 150.705 697.37 null] +146 0 obj << +/D [862 0 R /XYZ 150.705 697.37 null] >> endobj -883 0 obj << -/D [879 0 R /XYZ 320.941 513.305 null] +866 0 obj << +/D [862 0 R /XYZ 320.941 513.305 null] >> endobj -878 0 obj << -/Font << /F16 439 0 R /F8 442 0 R /F11 603 0 R /F14 620 0 R /F13 882 0 R /F27 441 0 R /F30 617 0 R >> +861 0 obj << +/Font << /F16 435 0 R /F8 438 0 R /F11 599 0 R /F14 619 0 R /F13 865 0 R /F27 437 0 R /F30 616 0 R >> /ProcSet [ /PDF /Text ] >> endobj -890 0 obj << +873 0 obj << /Length 7526 >> stream @@ -8322,63 +7970,63 @@ BT 0 g 0 G [(.)-445(The)-333(rank)-333(of)]TJ/F11 9.9626 Tf 111.001 0 Td [(x)]TJ/F8 9.9626 Tf 9.014 0 Td [(m)28(ust)-334(b)-27(e)-334(the)-333(same)-334(of)]TJ/F11 9.9626 Tf 91.712 0 Td [(y)]TJ/F8 9.9626 Tf 5.242 0 Td [(.)]TJ 0 g 0 G - -75.001 -29.888 Td [(37)]TJ + -75.001 -29.888 Td [(35)]TJ 0 g 0 G ET endstream endobj -889 0 obj << +872 0 obj << /Type /Page -/Contents 890 0 R -/Resources 888 0 R +/Contents 873 0 R +/Resources 871 0 R /MediaBox [0 0 595.276 841.89] -/Parent 896 0 R -/Annots [ 884 0 R 885 0 R 886 0 R ] +/Parent 844 0 R +/Annots [ 867 0 R 868 0 R 869 0 R ] >> endobj -884 0 obj << +867 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [382.088 263.462 394.043 274.311] /Subtype /Link /A << /S /GoTo /D (table.11) >> >> endobj -885 0 obj << +868 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [294.721 196.128 367.009 207.253] /Subtype /Link /A << /S /GoTo /D (spdata) >> >> endobj -886 0 obj << +869 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [162.826 117.392 174.781 128.24] /Subtype /Link /A << /S /GoTo /D (table.11) >> >> endobj -891 0 obj << -/D [889 0 R /XYZ 99.895 740.998 null] +874 0 obj << +/D [872 0 R /XYZ 99.895 740.998 null] >> endobj -154 0 obj << -/D [889 0 R /XYZ 99.895 697.37 null] +150 0 obj << +/D [872 0 R /XYZ 99.895 697.37 null] >> endobj -892 0 obj << -/D [889 0 R /XYZ 229.172 675.784 null] +875 0 obj << +/D [872 0 R /XYZ 229.172 675.784 null] >> endobj -893 0 obj << -/D [889 0 R /XYZ 226.034 658.884 null] +876 0 obj << +/D [872 0 R /XYZ 226.034 658.884 null] >> endobj -894 0 obj << -/D [889 0 R /XYZ 225.394 641.984 null] +877 0 obj << +/D [872 0 R /XYZ 225.394 641.984 null] >> endobj -895 0 obj << -/D [889 0 R /XYZ 270.132 440.216 null] +878 0 obj << +/D [872 0 R /XYZ 270.132 440.216 null] >> endobj -888 0 obj << -/Font << /F16 439 0 R /F8 442 0 R /F11 603 0 R /F14 620 0 R /F10 619 0 R /F7 618 0 R /F27 441 0 R /F30 617 0 R >> +871 0 obj << +/Font << /F16 435 0 R /F8 438 0 R /F11 599 0 R /F14 619 0 R /F10 618 0 R /F7 617 0 R /F27 437 0 R /F30 616 0 R >> /ProcSet [ /PDF /Text ] >> endobj -905 0 obj << +887 0 obj << /Length 6469 >> stream @@ -8476,76 +8124,76 @@ BT 0 g 0 G /F8 9.9626 Tf 23.758 0 Td [(Error)-333(co)-28(de.)]TJ 1.148 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.612 0 Td [(required)]TJ/F8 9.9626 Tf -29.612 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(out)]TJ/F8 9.9626 Tf 16.549 0 Td [(.)]TJ -50.035 -11.955 Td [(An)-333(in)28(te)-1(ger)-333(v)56(alue;)-334(0)-333(means)-333(no)-334(error)-333(has)-333(b)-28(een)-333(detec)-1(t)1(e)-1(d.)]TJ 0 g 0 G - 141.968 -40.322 Td [(38)]TJ + 141.968 -40.322 Td [(36)]TJ 0 g 0 G ET endstream endobj -904 0 obj << +886 0 obj << /Type /Page -/Contents 905 0 R -/Resources 903 0 R +/Contents 887 0 R +/Resources 885 0 R /MediaBox [0 0 595.276 841.89] -/Parent 896 0 R -/Annots [ 887 0 R 897 0 R 898 0 R 899 0 R 900 0 R 901 0 R 902 0 R ] +/Parent 844 0 R +/Annots [ 870 0 R 879 0 R 880 0 R 881 0 R 882 0 R 883 0 R 884 0 R ] >> endobj -887 0 obj << +870 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [432.897 655.375 444.852 666.223] /Subtype /Link /A << /S /GoTo /D (table.11) >> >> endobj -897 0 obj << +879 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [213.636 576.26 225.591 587.108] /Subtype /Link /A << /S /GoTo /D (table.11) >> >> endobj -898 0 obj << +880 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [345.53 508.823 412.588 519.948] /Subtype /Link /A << /S /GoTo /D (descdata) >> >> endobj -899 0 obj << +881 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [397.199 470.422 404.172 481.27] /Subtype /Link /A << /S /GoTo /D (equation.1) >> >> endobj -900 0 obj << +882 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [396.202 455.068 403.176 465.916] /Subtype /Link /A << /S /GoTo /D (equation.2) >> >> endobj -901 0 obj << +883 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [396.507 439.714 403.481 450.563] /Subtype /Link /A << /S /GoTo /D (equation.3) >> >> endobj -902 0 obj << +884 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [253.818 194.986 265.774 205.834] /Subtype /Link /A << /S /GoTo /D (table.11) >> >> endobj -906 0 obj << -/D [904 0 R /XYZ 150.705 740.998 null] +888 0 obj << +/D [886 0 R /XYZ 150.705 740.998 null] >> endobj -903 0 obj << -/Font << /F27 441 0 R /F8 442 0 R /F11 603 0 R /F30 617 0 R >> +885 0 obj << +/Font << /F27 437 0 R /F8 438 0 R /F11 599 0 R /F30 616 0 R >> /ProcSet [ /PDF /Text ] >> endobj -911 0 obj << +893 0 obj << /Length 8409 >> stream @@ -8654,40 +8302,40 @@ BT 0 g 0 G [(.)]TJ 0 g 0 G - 141.968 -29.888 Td [(39)]TJ + 141.968 -29.888 Td [(37)]TJ 0 g 0 G ET endstream endobj -910 0 obj << +892 0 obj << /Type /Page -/Contents 911 0 R -/Resources 909 0 R +/Contents 893 0 R +/Resources 891 0 R /MediaBox [0 0 595.276 841.89] /Parent 896 0 R -/Annots [ 907 0 R ] +/Annots [ 889 0 R ] >> endobj -907 0 obj << +889 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [382.088 117.392 394.043 128.24] /Subtype /Link /A << /S /GoTo /D (table.12) >> >> endobj -912 0 obj << -/D [910 0 R /XYZ 99.895 740.998 null] +894 0 obj << +/D [892 0 R /XYZ 99.895 740.998 null] >> endobj -158 0 obj << -/D [910 0 R /XYZ 99.895 697.37 null] +154 0 obj << +/D [892 0 R /XYZ 99.895 697.37 null] >> endobj -913 0 obj << -/D [910 0 R /XYZ 270.132 252.928 null] +895 0 obj << +/D [892 0 R /XYZ 270.132 252.928 null] >> endobj -909 0 obj << -/Font << /F16 439 0 R /F8 442 0 R /F11 603 0 R /F14 620 0 R /F10 619 0 R /F13 882 0 R /F7 618 0 R /F30 617 0 R /F27 441 0 R >> +891 0 obj << +/Font << /F16 435 0 R /F8 438 0 R /F11 599 0 R /F14 619 0 R /F10 618 0 R /F13 865 0 R /F7 617 0 R /F30 616 0 R /F27 437 0 R >> /ProcSet [ /PDF /Text ] >> endobj -920 0 obj << +903 0 obj << /Length 6773 >> stream @@ -8788,62 +8436,62 @@ BT 0 g 0 G /F8 9.9626 Tf 63.221 0 Td [(the)-333(op)-28(eration)-333(is)-334(with)-333(righ)28(t)-333(sc)-1(al)1(ing.)]TJ 0 g 0 G - 78.746 -29.888 Td [(40)]TJ + 78.746 -29.888 Td [(38)]TJ 0 g 0 G ET endstream endobj -919 0 obj << +902 0 obj << /Type /Page -/Contents 920 0 R -/Resources 918 0 R +/Contents 903 0 R +/Resources 901 0 R /MediaBox [0 0 595.276 841.89] /Parent 896 0 R -/Annots [ 908 0 R 914 0 R 915 0 R 916 0 R 917 0 R ] +/Annots [ 890 0 R 897 0 R 898 0 R 899 0 R 900 0 R ] >> endobj -908 0 obj << +890 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [393.738 655.375 400.712 666.223] /Subtype /Link /A << /S /GoTo /D (section.3) >> >> endobj -914 0 obj << +897 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [213.636 572.775 225.591 583.624] /Subtype /Link /A << /S /GoTo /D (table.12) >> >> endobj -915 0 obj << +898 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [432.897 502.131 444.852 512.979] /Subtype /Link /A << /S /GoTo /D (table.12) >> >> endobj -916 0 obj << +899 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [213.636 419.532 225.591 430.38] /Subtype /Link /A << /S /GoTo /D (table.12) >> >> endobj -917 0 obj << +900 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [345.53 348.611 412.588 359.736] /Subtype /Link /A << /S /GoTo /D (descdata) >> >> endobj -921 0 obj << -/D [919 0 R /XYZ 150.705 740.998 null] +904 0 obj << +/D [902 0 R /XYZ 150.705 740.998 null] >> endobj -918 0 obj << -/Font << /F27 441 0 R /F8 442 0 R /F11 603 0 R /F14 620 0 R /F30 617 0 R /F17 584 0 R >> +901 0 obj << +/Font << /F27 437 0 R /F8 438 0 R /F11 599 0 R /F14 619 0 R /F30 616 0 R /F17 579 0 R >> /ProcSet [ /PDF /Text ] >> endobj -926 0 obj << +909 0 obj << /Length 4663 >> stream @@ -8895,41 +8543,41 @@ BT 0 g 0 G /F8 9.9626 Tf 23.758 0 Td [(Error)-333(co)-28(de.)]TJ 1.149 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.956 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(out)]TJ/F8 9.9626 Tf 16.549 0 Td [(.)]TJ -50.035 -11.955 Td [(An)-333(in)28(tege)-1(r)-333(v)56(alue;)-334(0)-333(means)-333(no)-334(error)-333(has)-333(b)-28(een)-333(detecte)-1(d)1(.)]TJ 0 g 0 G - 141.968 -73.723 Td [(41)]TJ + 141.968 -73.723 Td [(39)]TJ 0 g 0 G ET endstream endobj -925 0 obj << +908 0 obj << /Type /Page -/Contents 926 0 R -/Resources 924 0 R +/Contents 909 0 R +/Resources 907 0 R /MediaBox [0 0 595.276 841.89] /Parent 896 0 R -/Annots [ 922 0 R 923 0 R ] +/Annots [ 905 0 R 906 0 R ] >> endobj -922 0 obj << +905 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [162.826 410.238 174.781 419.149] /Subtype /Link /A << /S /GoTo /D (table.12) >> >> endobj -923 0 obj << +906 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [203.009 228.974 214.964 239.822] /Subtype /Link /A << /S /GoTo /D (table.12) >> >> endobj -927 0 obj << -/D [925 0 R /XYZ 99.895 740.998 null] +910 0 obj << +/D [908 0 R /XYZ 99.895 740.998 null] >> endobj -924 0 obj << -/Font << /F8 442 0 R /F27 441 0 R /F11 603 0 R /F30 617 0 R >> +907 0 obj << +/Font << /F8 438 0 R /F27 437 0 R /F11 599 0 R /F30 616 0 R >> /ProcSet [ /PDF /Text ] >> endobj -931 0 obj << +914 0 obj << /Length 651 >> stream @@ -8942,37 +8590,37 @@ BT 0 g 0 G [(.)]TJ 0 g 0 G - 166.874 -569.96 Td [(42)]TJ + 166.874 -569.96 Td [(40)]TJ 0 g 0 G ET endstream endobj -930 0 obj << +913 0 obj << /Type /Page -/Contents 931 0 R -/Resources 929 0 R +/Contents 914 0 R +/Resources 912 0 R /MediaBox [0 0 595.276 841.89] /Parent 896 0 R -/Annots [ 928 0 R ] +/Annots [ 911 0 R ] >> endobj -928 0 obj << +911 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [350.345 657.464 357.319 668.312] /Subtype /Link /A << /S /GoTo /D (section.6) >> >> endobj -932 0 obj << -/D [930 0 R /XYZ 150.705 740.998 null] +915 0 obj << +/D [913 0 R /XYZ 150.705 740.998 null] >> endobj -162 0 obj << -/D [930 0 R /XYZ 150.705 716.092 null] +158 0 obj << +/D [913 0 R /XYZ 150.705 716.092 null] >> endobj -929 0 obj << -/Font << /F16 439 0 R /F8 442 0 R >> +912 0 obj << +/Font << /F16 435 0 R /F8 438 0 R >> /ProcSet [ /PDF /Text ] >> endobj -938 0 obj << +921 0 obj << /Length 6023 >> stream @@ -9113,54 +8761,54 @@ BT 0 g 0 G /F8 9.9626 Tf 29.432 0 Td [(the)-333(w)27(ork)-333(arra)28(y)83(.)]TJ -4.525 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(optional)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(inout)]TJ/F8 9.9626 Tf 26.096 0 Td [(.)]TJ -59.582 -11.955 Td [(Sp)-28(eci\014ed)-348(as:)-475(a)-349(rank)-348(one)-349(arra)28(y)-349(of)-348(the)-349(same)-348(t)27(yp)-27(e)-349(of)]TJ/F11 9.9626 Tf 222.576 0 Td [(x)]TJ/F8 9.9626 Tf 9.167 0 Td [(with)-349(th)1(e)-349(POINTER)]TJ -231.743 -11.955 Td [(attribute.)]TJ 0 g 0 G - 141.968 -29.888 Td [(43)]TJ + 141.968 -29.888 Td [(41)]TJ 0 g 0 G ET endstream endobj -937 0 obj << +920 0 obj << /Type /Page -/Contents 938 0 R -/Resources 936 0 R +/Contents 921 0 R +/Resources 919 0 R /MediaBox [0 0 595.276 841.89] -/Parent 941 0 R -/Annots [ 933 0 R 934 0 R 935 0 R ] +/Parent 896 0 R +/Annots [ 916 0 R 917 0 R 918 0 R ] >> endobj -933 0 obj << +916 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [310.744 340.904 322.699 351.753] /Subtype /Link /A << /S /GoTo /D (table.13) >> >> endobj -934 0 obj << +917 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [294.721 274.094 361.779 285.219] /Subtype /Link /A << /S /GoTo /D (descdata) >> >> endobj -935 0 obj << +918 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [382.088 195.881 394.043 206.73] /Subtype /Link /A << /S /GoTo /D (table.13) >> >> endobj -939 0 obj << -/D [937 0 R /XYZ 99.895 740.998 null] +922 0 obj << +/D [920 0 R /XYZ 99.895 740.998 null] >> endobj -166 0 obj << -/D [937 0 R /XYZ 99.895 697.37 null] +162 0 obj << +/D [920 0 R /XYZ 99.895 697.37 null] >> endobj -940 0 obj << -/D [937 0 R /XYZ 270.132 513.469 null] +923 0 obj << +/D [920 0 R /XYZ 270.132 513.469 null] >> endobj -936 0 obj << -/Font << /F16 439 0 R /F8 442 0 R /F11 603 0 R /F14 620 0 R /F27 441 0 R /F30 617 0 R >> +919 0 obj << +/Font << /F16 435 0 R /F8 438 0 R /F11 599 0 R /F14 619 0 R /F27 437 0 R /F30 616 0 R >> /ProcSet [ /PDF /Text ] >> endobj -947 0 obj << +929 0 obj << /Length 4119 >> stream @@ -9204,43 +8852,43 @@ Q 0 g 0 G 1 0 0 1 -210.961 -455.126 cm BT -/F8 9.9626 Tf 240.078 231.087 Td [(Figure)-333(7:)-445(Sample)-333(discretization)-333(mesh.)]TJ +/F8 9.9626 Tf 240.078 231.087 Td [(Figure)-333(6:)-445(Sample)-333(discretization)-333(mesh.)]TJ 0 g 0 G 0 g 0 G /F16 11.9552 Tf -89.373 -23.91 Td [(Usage)-381(Example)]TJ/F8 9.9626 Tf 93.98 0 Td [(Consider)-338(the)-339(discretization)-338(mesh)-339(depicted)-338(in)-338(\014g.)]TJ 0 0 1 rg 0 0 1 RG - [-339(7)]TJ + [-339(6)]TJ 0 g 0 G [(,)-339(parti-)]TJ -93.98 -11.955 Td [(tioned)-334(among)-334(t)27(w)28(o)-334(pro)-28(cesses)-334(as)-335(sho)28(wn)-334(b)28(y)-334(the)-335(dashed)-334(line;)-334(the)-335(data)-334(distribution)]TJ 0 -11.955 Td [(is)-422(suc)28(h)-422(that)-422(eac)28(h)-422(pro)-28(cess)-422(will)-421(o)27(wn)-422(32)-421(en)27(tries)-421(in)-422(the)-422(index)-422(space,)-444(with)-422(a)-422(halo)]TJ 0 -11.955 Td [(made)-340(of)-341(8)-340(en)28(tries)-341(placed)-340(at)-340(lo)-28(cal)-341(in)1(dices)-341(33)-340(through)-340(40.)-466(If)-340(pro)-28(cess)-341(0)-340(assigns)-340(an)]TJ 0 -11.956 Td [(initial)-423(v)55(alue)-423(of)-424(1)-423(to)-424(its)-423(en)28(tries)-424(in)-423(the)]TJ/F11 9.9626 Tf 169.005 0 Td [(x)]TJ/F8 9.9626 Tf 9.913 0 Td [(v)28(ector,)-446(and)-424(pro)-27(cess)-424(1)-423(ass)-1(i)1(g)-1(n)1(s)-424(a)-423(v)55(alue)]TJ -178.918 -11.955 Td [(of)-349(2,)-353(then)-349(after)-349(a)-349(call)-349(to)]TJ/F30 9.9626 Tf 108.539 0 Td [(psb_halo)]TJ/F8 9.9626 Tf 45.32 0 Td [(the)-349(con)28(ten)27(t)1(s)-350(of)-349(the)-349(lo)-27(cal)-350(v)28(ectors)-349(will)-349(b)-28(e)-349(the)]TJ -153.859 -11.955 Td [(follo)28(wing:)]TJ 0 g 0 G - 166.874 -45.008 Td [(44)]TJ + 166.874 -45.008 Td [(42)]TJ 0 g 0 G ET endstream endobj -946 0 obj << +928 0 obj << /Type /Page -/Contents 947 0 R -/Resources 945 0 R +/Contents 929 0 R +/Resources 927 0 R /MediaBox [0 0 595.276 841.89] -/Parent 941 0 R -/Annots [ 942 0 R 944 0 R ] +/Parent 896 0 R +/Annots [ 924 0 R 926 0 R ] >> endobj -943 0 obj << +925 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (./figures/try8x8.pdf) /PTEX.PageNumber 1 -/PTEX.InfoDict 950 0 R +/PTEX.InfoDict 932 0 R /BBox [0 0 436 496] /Resources << /ProcSet [ /PDF /Text ] /ExtGState << -/R7 951 0 R ->>/Font << /R8 952 0 R/R9 953 0 R>> +/R7 933 0 R +>>/Font << /R8 934 0 R/R9 935 0 R>> >> -/Length 954 0 R +/Length 936 0 R /Filter /FlateDecode >> stream @@ -9256,62 +8904,62 @@ QI* d)eI%}QÉ'?+ä°~I*écÂ\‚?XO#~Ã[!©äX‚?fJÇüÁaî‹J8ù9â÷%©¤ s‰ù`=ø Ÿ× ,ªƒ1Œ|?ª$6ŠázžAª@}¡J¢¿R©’#‡z|]ñd•9ÔãýL G„z8¯—÷¬’Ï€äcD¾P%ùàgÌcå‘#<¾®x²J2³jˆÏÕpD„ó¢¼g•mø»ãoÇßþžŸúö§Ç6Úë¸w¶W~ûùñéØ?ûçãK߯åÌÞ>Øíƒ]?Øeµûü`ŸìqÛ{éÏ/m;±ù"×~¢WëÖëj¾Z…3lï²ÛÂ?|Ïz¼Ú½m[{힦„iÿb¬m»¦øóe•Ï¿{üáÛã¯×¿ÿ-3‡à endstream endobj -950 0 obj +932 0 obj << /Producer (ESP Ghostscript 815.03) /CreationDate (D:20070118112257) /ModDate (D:20070118112257) >> endobj -951 0 obj +933 0 obj << /Type /ExtGState /OPM 1 >> endobj -952 0 obj +934 0 obj << /BaseFont /Times-Roman /Type /Font /Subtype /Type1 >> endobj -953 0 obj +935 0 obj << /BaseFont /Times-Bold /Type /Font /Subtype /Type1 >> endobj -954 0 obj +936 0 obj 3571 endobj -942 0 obj << +924 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [213.636 545.73 225.591 554.641] /Subtype /Link /A << /S /GoTo /D (table.13) >> >> endobj -944 0 obj << +926 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [457.906 203.856 464.88 216.476] /Subtype /Link -/A << /S /GoTo /D (figure.7) >> +/A << /S /GoTo /D (figure.6) >> >> endobj -948 0 obj << -/D [946 0 R /XYZ 150.705 740.998 null] +930 0 obj << +/D [928 0 R /XYZ 150.705 740.998 null] >> endobj -949 0 obj << -/D [946 0 R /XYZ 283.692 243.043 null] +931 0 obj << +/D [928 0 R /XYZ 283.692 243.043 null] >> endobj -945 0 obj << -/Font << /F27 441 0 R /F8 442 0 R /F30 617 0 R /F11 603 0 R /F16 439 0 R >> -/XObject << /Im3 943 0 R >> +927 0 obj << +/Font << /F27 437 0 R /F8 438 0 R /F30 616 0 R /F11 599 0 R /F16 435 0 R >> +/XObject << /Im3 925 0 R >> /ProcSet [ /PDF /Text ] >> endobj -957 0 obj << +939 0 obj << /Length 3050 >> stream @@ -9324,26 +8972,26 @@ BT /F45 8.9664 Tf 205.966 645.656 Td [(Pro)-29(cess)-342(0)-8224(Pro)-28(cess)-343(1)]TJ -33.967 -10.959 Td [(I)-1333(GLOB\050I\051)-1334(X\050I\051)-4656(I)-1334(GLOB\050I\051)-1333(X\050I\051)]TJ -1.281 -10.959 Td [(1)-4966(1)-1961(1.0)-4514(1)-4452(33)-1961(2.0)]TJ 0 -10.959 Td [(2)-4966(2)-1961(1.0)-4514(2)-4452(34)-1961(2.0)]TJ 0 -10.959 Td [(3)-4966(3)-1961(1.0)-4514(3)-4452(35)-1961(2.0)]TJ 0 -10.959 Td [(4)-4966(4)-1961(1.0)-4514(4)-4452(36)-1961(2.0)]TJ 0 -10.959 Td [(5)-4966(5)-1961(1.0)-4514(5)-4452(37)-1961(2.0)]TJ 0 -10.959 Td [(6)-4966(6)-1961(1.0)-4514(6)-4452(38)-1961(2.0)]TJ 0 -10.959 Td [(7)-4966(7)-1961(1.0)-4514(7)-4452(39)-1961(2.0)]TJ 0 -10.958 Td [(8)-4966(8)-1961(1.0)-4514(8)-4452(40)-1961(2.0)]TJ 0 -10.959 Td [(9)-4966(9)-1961(1.0)-4514(9)-4452(41)-1961(2.0)]TJ -4.608 -10.959 Td [(10)-4452(10)-1961(1.0)-4000(10)-4452(42)-1961(2.0)]TJ 0 -10.959 Td [(11)-4452(11)-1961(1.0)-4000(11)-4452(43)-1961(2.0)]TJ 0 -10.959 Td [(12)-4452(12)-1961(1.0)-4000(12)-4452(44)-1961(2.0)]TJ 0 -10.959 Td [(13)-4452(13)-1961(1.0)-4000(13)-4452(45)-1961(2.0)]TJ 0 -10.959 Td [(14)-4452(14)-1961(1.0)-4000(14)-4452(46)-1961(2.0)]TJ 0 -10.959 Td [(15)-4452(15)-1961(1.0)-4000(15)-4452(47)-1961(2.0)]TJ 0 -10.959 Td [(16)-4452(16)-1961(1.0)-4000(16)-4452(48)-1961(2.0)]TJ 0 -10.959 Td [(17)-4452(17)-1961(1.0)-4000(17)-4452(49)-1961(2.0)]TJ 0 -10.958 Td [(18)-4452(18)-1961(1.0)-4000(18)-4452(50)-1961(2.0)]TJ 0 -10.959 Td [(19)-4452(19)-1961(1.0)-4000(19)-4452(51)-1961(2.0)]TJ 0 -10.959 Td [(20)-4452(20)-1961(1.0)-4000(20)-4452(52)-1961(2.0)]TJ 0 -10.959 Td [(21)-4452(21)-1961(1.0)-4000(21)-4452(53)-1961(2.0)]TJ 0 -10.959 Td [(22)-4452(22)-1961(1.0)-4000(22)-4452(54)-1961(2.0)]TJ 0 -10.959 Td [(23)-4452(23)-1961(1.0)-4000(23)-4452(55)-1961(2.0)]TJ 0 -10.959 Td [(24)-4452(24)-1961(1.0)-4000(24)-4452(56)-1961(2.0)]TJ 0 -10.959 Td [(25)-4452(25)-1961(1.0)-4000(25)-4452(57)-1961(2.0)]TJ 0 -10.959 Td [(26)-4452(26)-1961(1.0)-4000(26)-4452(58)-1961(2.0)]TJ 0 -10.959 Td [(27)-4452(27)-1961(1.0)-4000(27)-4452(59)-1961(2.0)]TJ 0 -10.958 Td [(28)-4452(28)-1961(1.0)-4000(28)-4452(60)-1961(2.0)]TJ 0 -10.959 Td [(29)-4452(29)-1961(1.0)-4000(29)-4452(61)-1961(2.0)]TJ 0 -10.959 Td [(30)-4452(30)-1961(1.0)-4000(30)-4452(62)-1961(2.0)]TJ 0 -10.959 Td [(31)-4452(31)-1961(1.0)-4000(31)-4452(63)-1961(2.0)]TJ 0 -10.959 Td [(32)-4452(32)-1961(1.0)-4000(32)-4452(64)-1961(2.0)]TJ 0 -10.959 Td [(33)-4452(33)-1961(2.0)-4000(33)-4452(25)-1961(1.0)]TJ 0 -10.959 Td [(34)-4452(34)-1961(2.0)-4000(34)-4452(26)-1961(1.0)]TJ 0 -10.959 Td [(35)-4452(35)-1961(2.0)-4000(35)-4452(27)-1961(1.0)]TJ 0 -10.959 Td [(36)-4452(36)-1961(2.0)-4000(36)-4452(28)-1961(1.0)]TJ 0 -10.959 Td [(37)-4452(37)-1961(2.0)-4000(37)-4452(29)-1961(1.0)]TJ 0 -10.958 Td [(38)-4452(38)-1961(2.0)-4000(38)-4452(30)-1961(1.0)]TJ 0 -10.959 Td [(39)-4452(39)-1961(2.0)-4000(39)-4452(31)-1961(1.0)]TJ 0 -10.959 Td [(40)-4452(40)-1961(2.0)-4000(40)-4452(32)-1961(1.0)]TJ 0 g 0 G 0 g 0 G -/F8 9.9626 Tf 100.66 -105.903 Td [(45)]TJ +/F8 9.9626 Tf 100.66 -105.903 Td [(43)]TJ 0 g 0 G ET endstream endobj -956 0 obj << +938 0 obj << /Type /Page -/Contents 957 0 R -/Resources 955 0 R +/Contents 939 0 R +/Resources 937 0 R /MediaBox [0 0 595.276 841.89] -/Parent 941 0 R +/Parent 942 0 R >> endobj -958 0 obj << -/D [956 0 R /XYZ 99.895 740.998 null] +940 0 obj << +/D [938 0 R /XYZ 99.895 740.998 null] >> endobj -955 0 obj << -/Font << /F45 959 0 R /F8 442 0 R >> +937 0 obj << +/Font << /F45 941 0 R /F8 438 0 R >> /ProcSet [ /PDF /Text ] >> endobj -964 0 obj << +947 0 obj << /Length 6993 >> stream @@ -9545,47 +9193,47 @@ Q BT /F8 9.9626 Tf 175.611 132.281 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(global)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(in)28(teger)-333(v)55(ariable.)]TJ 0 g 0 G - 141.968 -29.888 Td [(46)]TJ + 141.968 -29.888 Td [(44)]TJ 0 g 0 G ET endstream endobj -963 0 obj << +946 0 obj << /Type /Page -/Contents 964 0 R -/Resources 962 0 R +/Contents 947 0 R +/Resources 945 0 R /MediaBox [0 0 595.276 841.89] -/Parent 941 0 R -/Annots [ 960 0 R 961 0 R ] +/Parent 942 0 R +/Annots [ 943 0 R 944 0 R ] >> endobj -960 0 obj << +943 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [213.636 334.803 225.591 343.714] /Subtype /Link /A << /S /GoTo /D (table.14) >> >> endobj -961 0 obj << +944 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [345.53 265.461 412.588 276.586] /Subtype /Link /A << /S /GoTo /D (descdata) >> >> endobj -965 0 obj << -/D [963 0 R /XYZ 150.705 740.998 null] +948 0 obj << +/D [946 0 R /XYZ 150.705 740.998 null] >> endobj -170 0 obj << -/D [963 0 R /XYZ 150.705 697.37 null] +166 0 obj << +/D [946 0 R /XYZ 150.705 697.37 null] >> endobj -966 0 obj << -/D [963 0 R /XYZ 320.941 510.188 null] +949 0 obj << +/D [946 0 R /XYZ 320.941 510.188 null] >> endobj -962 0 obj << -/Font << /F16 439 0 R /F8 442 0 R /F11 603 0 R /F14 620 0 R /F10 619 0 R /F27 441 0 R /F30 617 0 R >> +945 0 obj << +/Font << /F16 435 0 R /F8 438 0 R /F11 599 0 R /F14 619 0 R /F10 618 0 R /F27 437 0 R /F30 616 0 R >> /ProcSet [ /PDF /Text ] >> endobj -973 0 obj << +956 0 obj << /Length 5866 >> stream @@ -9624,65 +9272,65 @@ BT 0 g 0 G [-500(The)-255(op)-28(erator)]TJ/F11 9.9626 Tf 71.84 0 Td [(P)]TJ/F10 6.9738 Tf 6.397 -1.495 Td [(a)]TJ/F8 9.9626 Tf 7.364 1.495 Td [(p)-28(erforms)-255(a)-256(scaling)-255(on)-256(the)-255(o)28(v)27(erlap)-255(elemen)28(ts)-256(b)28(y)-256(the)-255(amoun)28(t)]TJ -72.871 -11.956 Td [(of)-290(r)1(e)-1(pl)1(ic)-1(ati)1(on;)-305(th)28(us,)-298(when)-290(com)28(bined)-289(with)-290(the)-289(reduction)-290(op)-28(erator,)-298(it)-289(im)-1(p)1(le-)]TJ 0 -11.955 Td [(men)28(ts)-334(the)-333(a)28(v)28(erage)-334(of)-333(replicated)-333(elem)-1(en)28(ts)-333(o)28(v)27(er)-333(all)-333(of)-333(their)-334(instances.)]TJ/F16 11.9552 Tf -24.907 -19.925 Td [(Example)-388(of)-388(use)]TJ/F8 9.9626 Tf 93.469 0 Td [(Consider)-345(the)-344(discretization)-345(mesh)-345(d)1(e)-1(p)1(icte)-1(d)-344(in)-345(\014g.)]TJ 0 0 1 rg 0 0 1 RG - [-344(8)]TJ + [-344(7)]TJ 0 g 0 G [(,)-348(parti-)]TJ -93.469 -11.955 Td [(tioned)-330(among)-330(t)28(w)27(o)-330(pro)-27(c)-1(esses)-330(as)-330(sho)28(wn)-330(b)27(y)-330(the)-330(dashed)-330(lines,)-331(with)-330(an)-330(o)28(v)28(erlap)-330(of)-330(1)]TJ 0 -11.955 Td [(extra)-360(la)28(y)28(er)-360(with)-359(resp)-28(ect)-360(to)-359(the)-360(partition)-359(of)-360(\014g.)]TJ 0 0 1 rg 0 0 1 RG - [-359(7)]TJ + [-359(6)]TJ 0 g 0 G [(;)-373(the)-359(data)-360(distribution)-359(is)-360(suc)28(h)]TJ 0 -11.956 Td [(that)-351(eac)27(h)-351(pro)-28(cess)-351(will)-352(o)28(wn)-351(40)-352(en)28(tries)-351(in)-351(the)-352(index)-351(space,)-356(with)-351(an)-352(o)28(v)28(erlap)-351(of)-352(16)]TJ 0 -11.955 Td [(en)28(tries)-326(placed)-325(a)-1(t)-325(lo)-28(cal)-325(indices)-326(25)-326(through)-325(40;)-328(the)-326(halo)-325(w)-1(il)1(l)-326(run)-326(fr)1(om)-326(lo)-28(cal)-326(in)1(dex)]TJ 0 -11.955 Td [(41)-290(through)-291(lo)-27(cal)-291(index)-290(48..)-430(If)-291(pro)-27(cess)-291(0)-290(assigns)-291(an)-290(initial)-290(v)55(alue)-290(of)-291(1)-290(to)-290(its)-291(en)28(tries)]TJ 0 -11.955 Td [(in)-298(the)]TJ/F11 9.9626 Tf 28.079 0 Td [(x)]TJ/F8 9.9626 Tf 8.663 0 Td [(v)28(ector,)-305(and)-298(pro)-28(cess)-298(1)-298(assigns)-299(a)-298(v)56(alue)-298(of)-298(2,)-305(then)-298(after)-298(a)-298(call)-298(to)]TJ/F30 9.9626 Tf 265.127 0 Td [(psb_ovrl)]TJ/F8 9.9626 Tf -301.869 -11.955 Td [(with)]TJ/F30 9.9626 Tf 22.401 0 Td [(psb_avg_)]TJ/F8 9.9626 Tf 44.871 0 Td [(and)-304(a)-304(call)-304(to)]TJ/F30 9.9626 Tf 56.945 0 Td [(psb_halo_)]TJ/F8 9.9626 Tf 50.101 0 Td [(the)-304(con)28(ten)28(ts)-304(of)-304(the)-304(lo)-28(cal)-304(v)28(ectors)-304(will)-304(b)-28(e)]TJ -174.318 -11.955 Td [(the)-333(follo)27(win)1(g)-334(\050sho)28(wing)-333(a)-334(transition)-333(among)-333(the)-334(t)28(w)28(o)-333(sub)-28(domains\051)]TJ 0 g 0 G - 166.875 -143.462 Td [(47)]TJ + 166.875 -143.462 Td [(45)]TJ 0 g 0 G ET endstream endobj -972 0 obj << +955 0 obj << /Type /Page -/Contents 973 0 R -/Resources 971 0 R +/Contents 956 0 R +/Resources 954 0 R /MediaBox [0 0 595.276 841.89] -/Parent 941 0 R -/Annots [ 967 0 R 969 0 R 970 0 R ] +/Parent 942 0 R +/Annots [ 950 0 R 952 0 R 953 0 R ] >> endobj -967 0 obj << +950 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [203.009 555.748 214.964 566.597] /Subtype /Link /A << /S /GoTo /D (table.14) >> >> endobj -969 0 obj << +952 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [407.019 326.22 413.993 338.84] /Subtype /Link -/A << /S /GoTo /D (figure.8) >> +/A << /S /GoTo /D (figure.7) >> >> endobj -970 0 obj << +953 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [306.759 302.697 313.733 313.546] /Subtype /Link -/A << /S /GoTo /D (figure.7) >> +/A << /S /GoTo /D (figure.6) >> >> endobj -974 0 obj << -/D [972 0 R /XYZ 99.895 740.998 null] +957 0 obj << +/D [955 0 R /XYZ 99.895 740.998 null] >> endobj -975 0 obj << -/D [972 0 R /XYZ 99.895 465.033 null] +958 0 obj << +/D [955 0 R /XYZ 99.895 465.033 null] >> endobj -976 0 obj << -/D [972 0 R /XYZ 99.895 431.215 null] +959 0 obj << +/D [955 0 R /XYZ 99.895 431.215 null] >> endobj -977 0 obj << -/D [972 0 R /XYZ 99.895 387.38 null] +960 0 obj << +/D [955 0 R /XYZ 99.895 387.38 null] >> endobj -971 0 obj << -/Font << /F27 441 0 R /F8 442 0 R /F11 603 0 R /F16 439 0 R /F10 619 0 R /F30 617 0 R >> +954 0 obj << +/Font << /F27 437 0 R /F8 438 0 R /F11 599 0 R /F16 435 0 R /F10 618 0 R /F30 616 0 R >> /ProcSet [ /PDF /Text ] >> endobj -981 0 obj << +964 0 obj << /Length 3619 >> stream @@ -9695,26 +9343,26 @@ BT /F31 7.9701 Tf 260.921 653.177 Td [(Pro)-29(ce)-1(ss)-354(0)-8986(Pro)-30(cess)-354(1)]TJ -33.381 -9.464 Td [(I)-1500(GLOB\050I\051)-1500(X\050I\051)-5180(I)-1500(GLOB\050I\051)-1500(X\050I\051)]TJ -1.185 -9.465 Td [(1)-5253(1)-2148(1)1(.)-1(0)-5031(1)-4722(33)-2147(1.5)]TJ 0 -9.464 Td [(2)-5253(2)-2148(1)1(.)-1(0)-5031(2)-4722(34)-2147(1.5)]TJ 0 -9.465 Td [(3)-5253(3)-2148(1)1(.)-1(0)-5031(3)-4722(35)-2147(1.5)]TJ 0 -9.464 Td [(4)-5253(4)-2148(1)1(.)-1(0)-5031(4)-4722(36)-2147(1.5)]TJ 0 -9.465 Td [(5)-5253(5)-2148(1)1(.)-1(0)-5031(5)-4722(37)-2147(1.5)]TJ 0 -9.464 Td [(6)-5253(6)-2148(1)1(.)-1(0)-5031(6)-4722(38)-2147(1.5)]TJ 0 -9.465 Td [(7)-5253(7)-2148(1)1(.)-1(0)-5031(7)-4722(39)-2147(1.5)]TJ 0 -9.464 Td [(8)-5253(8)-2148(1)1(.)-1(0)-5031(8)-4722(40)-2147(1.5)]TJ 0 -9.465 Td [(9)-5253(9)-2148(1)1(.)-1(0)-5031(9)-4722(41)-2147(2.0)]TJ -4.234 -9.464 Td [(10)-4722(10)-2147(1.0)-4500(10)-4722(42)-2147(2.0)]TJ 0 -9.465 Td [(11)-4722(11)-2147(1.0)-4500(11)-4722(43)-2147(2.0)]TJ 0 -9.464 Td [(12)-4722(12)-2147(1.0)-4500(12)-4722(44)-2147(2.0)]TJ 0 -9.465 Td [(13)-4722(13)-2147(1.0)-4500(13)-4722(45)-2147(2.0)]TJ 0 -9.464 Td [(14)-4722(14)-2147(1.0)-4500(14)-4722(46)-2147(2.0)]TJ 0 -9.465 Td [(15)-4722(15)-2147(1.0)-4500(15)-4722(47)-2147(2.0)]TJ 0 -9.464 Td [(16)-4722(16)-2147(1.0)-4500(16)-4722(48)-2147(2.0)]TJ 0 -9.465 Td [(17)-4722(17)-2147(1.0)-4500(17)-4722(49)-2147(2.0)]TJ 0 -9.464 Td [(18)-4722(18)-2147(1.0)-4500(18)-4722(50)-2147(2.0)]TJ 0 -9.465 Td [(19)-4722(19)-2147(1.0)-4500(19)-4722(51)-2147(2.0)]TJ 0 -9.464 Td [(20)-4722(20)-2147(1.0)-4500(20)-4722(52)-2147(2.0)]TJ 0 -9.465 Td [(21)-4722(21)-2147(1.0)-4500(21)-4722(53)-2147(2.0)]TJ 0 -9.464 Td [(22)-4722(22)-2147(1.0)-4500(22)-4722(54)-2147(2.0)]TJ 0 -9.465 Td [(23)-4722(23)-2147(1.0)-4500(23)-4722(55)-2147(2.0)]TJ 0 -9.464 Td [(24)-4722(24)-2147(1.0)-4500(24)-4722(56)-2147(2.0)]TJ 0 -9.465 Td [(25)-4722(25)-2147(1.5)-4500(25)-4722(57)-2147(2.0)]TJ 0 -9.464 Td [(26)-4722(26)-2147(1.5)-4500(26)-4722(58)-2147(2.0)]TJ 0 -9.465 Td [(27)-4722(27)-2147(1.5)-4500(27)-4722(59)-2147(2.0)]TJ 0 -9.464 Td [(28)-4722(28)-2147(1.5)-4500(28)-4722(60)-2147(2.0)]TJ 0 -9.465 Td [(29)-4722(29)-2147(1.5)-4500(29)-4722(61)-2147(2.0)]TJ 0 -9.464 Td [(30)-4722(30)-2147(1.5)-4500(30)-4722(62)-2147(2.0)]TJ 0 -9.465 Td [(31)-4722(31)-2147(1.5)-4500(31)-4722(63)-2147(2.0)]TJ 0 -9.464 Td [(32)-4722(32)-2147(1.5)-4500(32)-4722(64)-2147(2.0)]TJ 0 -9.465 Td [(33)-4722(33)-2147(1.5)-4500(33)-4722(25)-2147(1.5)]TJ 0 -9.464 Td [(34)-4722(34)-2147(1.5)-4500(34)-4722(26)-2147(1.5)]TJ 0 -9.465 Td [(35)-4722(35)-2147(1.5)-4500(35)-4722(27)-2147(1.5)]TJ 0 -9.464 Td [(36)-4722(36)-2147(1.5)-4500(36)-4722(28)-2147(1.5)]TJ 0 -9.465 Td [(37)-4722(37)-2147(1.5)-4500(37)-4722(29)-2147(1.5)]TJ 0 -9.464 Td [(38)-4722(38)-2147(1.5)-4500(38)-4722(30)-2147(1.5)]TJ 0 -9.465 Td [(39)-4722(39)-2147(1.5)-4500(39)-4722(31)-2147(1.5)]TJ 0 -9.464 Td [(40)-4722(40)-2147(1.5)-4500(40)-4722(32)-2147(1.5)]TJ 0 -9.465 Td [(41)-4722(41)-2147(2.0)-4500(41)-4722(17)-2147(1.0)]TJ 0 -9.464 Td [(42)-4722(42)-2147(2.0)-4500(42)-4722(18)-2147(1.0)]TJ 0 -9.465 Td [(43)-4722(43)-2147(2.0)-4500(43)-4722(19)-2147(1.0)]TJ 0 -9.464 Td [(44)-4722(44)-2147(2.0)-4500(44)-4722(20)-2147(1.0)]TJ 0 -9.465 Td [(45)-4722(45)-2147(2.0)-4500(45)-4722(21)-2147(1.0)]TJ 0 -9.464 Td [(46)-4722(46)-2147(2.0)-4500(46)-4722(22)-2147(1.0)]TJ 0 -9.465 Td [(47)-4722(47)-2147(2.0)-4500(47)-4722(23)-2147(1.0)]TJ 0 -9.464 Td [(48)-4722(48)-2147(2.0)-4500(48)-4722(24)-2147(1.0)]TJ 0 g 0 G 0 g 0 G -/F8 9.9626 Tf 95.458 -98.979 Td [(48)]TJ +/F8 9.9626 Tf 95.458 -98.979 Td [(46)]TJ 0 g 0 G ET endstream endobj -980 0 obj << +963 0 obj << /Type /Page -/Contents 981 0 R -/Resources 979 0 R +/Contents 964 0 R +/Resources 962 0 R /MediaBox [0 0 595.276 841.89] -/Parent 941 0 R +/Parent 942 0 R >> endobj -982 0 obj << -/D [980 0 R /XYZ 150.705 740.998 null] +965 0 obj << +/D [963 0 R /XYZ 150.705 740.998 null] >> endobj -979 0 obj << -/Font << /F31 623 0 R /F8 442 0 R >> +962 0 obj << +/Font << /F31 622 0 R /F8 438 0 R >> /ProcSet [ /PDF /Text ] >> endobj -985 0 obj << +968 0 obj << /Length 347 >> stream @@ -9737,37 +9385,37 @@ Q 0 g 0 G 1 0 0 1 -104.703 -574.795 cm BT -/F8 9.9626 Tf 189.268 263.559 Td [(Figure)-333(8:)-445(Sample)-333(discretization)-333(mes)-1(h)1(.)]TJ +/F8 9.9626 Tf 189.268 263.559 Td [(Figure)-333(7:)-445(Sample)-333(discretization)-333(mes)-1(h)1(.)]TJ 0 g 0 G 0 g 0 G 0 g 0 G - 77.502 -173.121 Td [(49)]TJ + 77.502 -173.121 Td [(47)]TJ 0 g 0 G ET endstream endobj -984 0 obj << +967 0 obj << /Type /Page -/Contents 985 0 R -/Resources 983 0 R +/Contents 968 0 R +/Resources 966 0 R /MediaBox [0 0 595.276 841.89] -/Parent 987 0 R +/Parent 942 0 R >> endobj -968 0 obj << +951 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (./figures/try8x8_ov.pdf) /PTEX.PageNumber 1 -/PTEX.InfoDict 988 0 R +/PTEX.InfoDict 970 0 R /BBox [0 0 436 514] /Resources << /ProcSet [ /PDF /Text ] /ExtGState << -/R7 989 0 R ->>/Font << /R8 990 0 R/R9 991 0 R>> +/R7 971 0 R +>>/Font << /R8 972 0 R/R9 973 0 R>> >> -/Length 992 0 R +/Length 974 0 R /Filter /FlateDecode >> stream @@ -9781,48 +9429,48 @@ V óá!Zäÿ/L)ÇÇ8ú:ß=þ êë¼® endstream endobj -988 0 obj +970 0 obj << /Producer (ESP Ghostscript 815.03) /CreationDate (D:20070118114343) /ModDate (D:20070118114343) >> endobj -989 0 obj +971 0 obj << /Type /ExtGState /OPM 1 >> endobj -990 0 obj +972 0 obj << /BaseFont /Times-Roman /Type /Font /Subtype /Type1 >> endobj -991 0 obj +973 0 obj << /BaseFont /Times-Bold /Type /Font /Subtype /Type1 >> endobj -992 0 obj +974 0 obj 3652 endobj -986 0 obj << -/D [984 0 R /XYZ 99.895 740.998 null] +969 0 obj << +/D [967 0 R /XYZ 99.895 740.998 null] >> endobj -978 0 obj << -/D [984 0 R /XYZ 232.883 275.514 null] +961 0 obj << +/D [967 0 R /XYZ 232.883 275.514 null] >> endobj -983 0 obj << -/Font << /F8 442 0 R >> -/XObject << /Im4 968 0 R >> +966 0 obj << +/Font << /F8 438 0 R >> +/XObject << /Im4 951 0 R >> /ProcSet [ /PDF /Text ] >> endobj -997 0 obj << +979 0 obj << /Length 7588 >> stream @@ -10015,47 +9663,47 @@ BT /F27 9.9626 Tf -299.782 -19.6 Td [(On)-383(Return)]TJ 0 g 0 G 0 g 0 G -/F8 9.9626 Tf 166.874 -29.888 Td [(50)]TJ +/F8 9.9626 Tf 166.874 -29.888 Td [(48)]TJ 0 g 0 G ET endstream endobj -996 0 obj << +978 0 obj << /Type /Page -/Contents 997 0 R -/Resources 995 0 R +/Contents 979 0 R +/Resources 977 0 R /MediaBox [0 0 595.276 841.89] -/Parent 987 0 R -/Annots [ 993 0 R 994 0 R ] +/Parent 942 0 R +/Annots [ 975 0 R 976 0 R ] >> endobj -993 0 obj << +975 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [256.807 285.728 268.762 294.639] /Subtype /Link /A << /S /GoTo /D (table.15) >> >> endobj -994 0 obj << +976 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [345.53 216.093 412.588 227.218] /Subtype /Link /A << /S /GoTo /D (descdata) >> >> endobj -998 0 obj << -/D [996 0 R /XYZ 150.705 740.998 null] +980 0 obj << +/D [978 0 R /XYZ 150.705 740.998 null] >> endobj -174 0 obj << -/D [996 0 R /XYZ 150.705 697.37 null] +170 0 obj << +/D [978 0 R /XYZ 150.705 697.37 null] >> endobj -999 0 obj << -/D [996 0 R /XYZ 320.941 465.393 null] +981 0 obj << +/D [978 0 R /XYZ 320.941 465.393 null] >> endobj -995 0 obj << -/Font << /F16 439 0 R /F8 442 0 R /F11 603 0 R /F14 620 0 R /F10 619 0 R /F7 618 0 R /F27 441 0 R /F30 617 0 R >> +977 0 obj << +/Font << /F16 435 0 R /F8 438 0 R /F11 599 0 R /F14 619 0 R /F10 618 0 R /F7 617 0 R /F27 437 0 R /F30 616 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1002 0 obj << +984 0 obj << /Length 1355 >> stream @@ -10078,26 +9726,26 @@ BT 0 g 0 G /F8 9.9626 Tf 23.758 0 Td [(Error)-333(co)-28(de.)]TJ 1.149 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.956 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(out)]TJ/F8 9.9626 Tf 16.549 0 Td [(.)]TJ -50.035 -11.955 Td [(An)-333(in)28(tege)-1(r)-333(v)56(alue;)-334(0)-333(means)-333(no)-334(error)-333(has)-333(b)-28(een)-333(detecte)-1(d)1(.)]TJ 0 g 0 G - 141.968 -500.124 Td [(51)]TJ + 141.968 -500.124 Td [(49)]TJ 0 g 0 G ET endstream endobj -1001 0 obj << +983 0 obj << /Type /Page -/Contents 1002 0 R -/Resources 1000 0 R +/Contents 984 0 R +/Resources 982 0 R /MediaBox [0 0 595.276 841.89] -/Parent 987 0 R +/Parent 986 0 R >> endobj -1003 0 obj << -/D [1001 0 R /XYZ 99.895 740.998 null] +985 0 obj << +/D [983 0 R /XYZ 99.895 740.998 null] >> endobj -1000 0 obj << -/Font << /F27 441 0 R /F8 442 0 R >> +982 0 obj << +/Font << /F27 437 0 R /F8 438 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1008 0 obj << +991 0 obj << /Length 7211 >> stream @@ -10279,40 +9927,40 @@ BT /F27 9.9626 Tf -299.782 -20.278 Td [(On)-383(Return)]TJ 0 g 0 G 0 g 0 G -/F8 9.9626 Tf 166.874 -29.888 Td [(52)]TJ +/F8 9.9626 Tf 166.874 -29.888 Td [(50)]TJ 0 g 0 G ET endstream endobj -1007 0 obj << +990 0 obj << /Type /Page -/Contents 1008 0 R -/Resources 1006 0 R +/Contents 991 0 R +/Resources 989 0 R /MediaBox [0 0 595.276 841.89] -/Parent 987 0 R -/Annots [ 1004 0 R ] +/Parent 986 0 R +/Annots [ 987 0 R ] >> endobj -1004 0 obj << +987 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [345.53 217.448 412.588 228.573] /Subtype /Link /A << /S /GoTo /D (descdata) >> >> endobj -1009 0 obj << -/D [1007 0 R /XYZ 150.705 740.998 null] +992 0 obj << +/D [990 0 R /XYZ 150.705 740.998 null] >> endobj -178 0 obj << -/D [1007 0 R /XYZ 150.705 697.294 null] +174 0 obj << +/D [990 0 R /XYZ 150.705 697.294 null] >> endobj -1010 0 obj << -/D [1007 0 R /XYZ 320.941 459.569 null] +993 0 obj << +/D [990 0 R /XYZ 320.941 459.569 null] >> endobj -1006 0 obj << -/Font << /F16 439 0 R /F8 442 0 R /F11 603 0 R /F10 619 0 R /F14 620 0 R /F7 618 0 R /F27 441 0 R /F30 617 0 R >> +989 0 obj << +/Font << /F16 435 0 R /F8 438 0 R /F11 599 0 R /F10 618 0 R /F14 619 0 R /F7 617 0 R /F27 437 0 R /F30 616 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1013 0 obj << +996 0 obj << /Length 1718 >> stream @@ -10346,34 +9994,34 @@ BT 0 g 0 G /F8 9.9626 Tf 23.758 0 Td [(Error)-333(co)-28(de.)]TJ 1.149 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.956 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(out)]TJ/F8 9.9626 Tf 16.549 0 Td [(.)]TJ -50.035 -11.955 Td [(An)-333(in)28(tege)-1(r)-333(v)56(alue;)-334(0)-333(means)-333(no)-334(error)-333(has)-333(b)-28(een)-333(detecte)-1(d)1(.)]TJ 0 g 0 G - 141.968 -488.169 Td [(53)]TJ + 141.968 -488.169 Td [(51)]TJ 0 g 0 G ET endstream endobj -1012 0 obj << +995 0 obj << /Type /Page -/Contents 1013 0 R -/Resources 1011 0 R +/Contents 996 0 R +/Resources 994 0 R /MediaBox [0 0 595.276 841.89] -/Parent 987 0 R -/Annots [ 1005 0 R ] +/Parent 986 0 R +/Annots [ 988 0 R ] >> endobj -1005 0 obj << +988 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [205.998 645.357 217.953 654.268] /Subtype /Link /A << /S /GoTo /D (table.16) >> >> endobj -1014 0 obj << -/D [1012 0 R /XYZ 99.895 740.998 null] +997 0 obj << +/D [995 0 R /XYZ 99.895 740.998 null] >> endobj -1011 0 obj << -/Font << /F27 441 0 R /F8 442 0 R /F11 603 0 R >> +994 0 obj << +/Font << /F27 437 0 R /F8 438 0 R /F11 599 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1017 0 obj << +1000 0 obj << /Length 6529 >> stream @@ -10423,32 +10071,32 @@ BT 0 g 0 G /F8 9.9626 Tf 14.211 0 Td [(Data)-363(allo)-28(cation:)-504(the)-363(set)-364(of)-363(global)-363(indices)]TJ/F11 9.9626 Tf 182.789 0 Td [(v)-36(l)]TJ/F8 9.9626 Tf 8.355 0 Td [(\0501)-328(:)]TJ/F11 9.9626 Tf 18.15 0 Td [(nl)]TJ/F8 9.9626 Tf 9.149 0 Td [(\051)-363(b)-28(elonging)-363(to)-363(the)-364(callin)1(g)]TJ -207.747 -11.955 Td [(pro)-28(cess.)]TJ 0 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 27.95 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf 23.074 0 Td [(.)]TJ -51.024 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.183 0 Td [(optional)]TJ/F8 9.9626 Tf 40.577 0 Td [(.)]TJ -65.76 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.485 0 Td [(in)]TJ/F8 9.9626 Tf 9.548 0 Td [(.)]TJ -43.033 -11.956 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(in)28(teger)-333(arra)27(y)84(.)]TJ 0 g 0 G - 141.967 -29.888 Td [(54)]TJ + 141.967 -29.888 Td [(52)]TJ 0 g 0 G ET endstream endobj -1016 0 obj << +999 0 obj << /Type /Page -/Contents 1017 0 R -/Resources 1015 0 R +/Contents 1000 0 R +/Resources 998 0 R /MediaBox [0 0 595.276 841.89] -/Parent 987 0 R +/Parent 986 0 R >> endobj -1018 0 obj << -/D [1016 0 R /XYZ 150.705 740.998 null] +1001 0 obj << +/D [999 0 R /XYZ 150.705 740.998 null] >> endobj -182 0 obj << -/D [1016 0 R /XYZ 150.705 716.092 null] +178 0 obj << +/D [999 0 R /XYZ 150.705 716.092 null] >> endobj -186 0 obj << -/D [1016 0 R /XYZ 150.705 673.557 null] +182 0 obj << +/D [999 0 R /XYZ 150.705 673.557 null] >> endobj -1015 0 obj << -/Font << /F16 439 0 R /F30 617 0 R /F8 442 0 R /F27 441 0 R /F11 603 0 R /F14 620 0 R >> +998 0 obj << +/Font << /F16 435 0 R /F30 616 0 R /F8 438 0 R /F27 437 0 R /F11 599 0 R /F14 619 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1022 0 obj << +1005 0 obj << /Length 6340 >> stream @@ -10526,37 +10174,37 @@ BT 0 g 0 G /F8 9.9626 Tf 32.191 0 Td [(The)-333(global)-334(index)-333(to)-333(b)-28(e)-333(mapp)-28(ed;)]TJ 0 g 0 G - 62.73 -29.888 Td [(55)]TJ + 62.73 -29.888 Td [(53)]TJ 0 g 0 G ET endstream endobj -1021 0 obj << +1004 0 obj << /Type /Page -/Contents 1022 0 R -/Resources 1020 0 R +/Contents 1005 0 R +/Resources 1003 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1025 0 R -/Annots [ 1019 0 R ] +/Parent 986 0 R +/Annots [ 1002 0 R ] >> endobj -1019 0 obj << +1002 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [294.721 406.032 361.779 417.157] /Subtype /Link /A << /S /GoTo /D (descdata) >> >> endobj -1023 0 obj << -/D [1021 0 R /XYZ 99.895 740.998 null] +1006 0 obj << +/D [1004 0 R /XYZ 99.895 740.998 null] >> endobj -1024 0 obj << -/D [1021 0 R /XYZ 99.895 315.593 null] +1007 0 obj << +/D [1004 0 R /XYZ 99.895 315.593 null] >> endobj -1020 0 obj << -/Font << /F27 441 0 R /F8 442 0 R /F30 617 0 R /F16 439 0 R >> +1003 0 obj << +/Font << /F27 437 0 R /F8 438 0 R /F30 616 0 R /F16 435 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1028 0 obj << +1010 0 obj << /Length 10027 >> stream @@ -10616,41 +10264,41 @@ BT 0 g 0 G [-500(When)-222(the)-222(subroutine)-222(is)-223(in)28(v)28(ok)28(ed)-223(with)]TJ/F30 9.9626 Tf 170.611 0 Td [(vl)]TJ/F8 9.9626 Tf 12.674 0 Td [(in)-222(conjunction)-222(with)]TJ/F30 9.9626 Tf 84.959 0 Td [(globalcheck=.false.)]TJ/F8 9.9626 Tf 99.377 0 Td [(,)]TJ -354.891 -11.955 Td [(no)-405(index)-405(space)-405(scan)-405(will)-405(tak)28(e)-405(place.)-660(Th)28(us)-405(it)-405(is)-405(the)-405(resp)-28(onsibilit)28(y)-405(of)-405(the)]TJ 0 -11.955 Td [(user)-419(to)-418(mak)28(e)-419(sure)-418(that)-419(the)-418(indices)-419(sp)-28(eci\014ed)-418(in)]TJ/F30 9.9626 Tf 211.319 0 Td [(vl)]TJ/F8 9.9626 Tf 14.63 0 Td [(ha)28(v)28(e)-419(neither)-418(orphans)]TJ -225.949 -11.956 Td [(nor)-333(o)27(v)28(erlaps;)-333(if)-333(this)-334(assumption)-333(fails,)-333(results)-334(will)-333(b)-28(e)-333(unpredictable.)]TJ 0 g 0 G - 141.968 -29.887 Td [(56)]TJ + 141.968 -29.887 Td [(54)]TJ 0 g 0 G ET endstream endobj -1027 0 obj << +1009 0 obj << /Type /Page -/Contents 1028 0 R -/Resources 1026 0 R +/Contents 1010 0 R +/Resources 1008 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1025 0 R +/Parent 986 0 R >> endobj -1029 0 obj << -/D [1027 0 R /XYZ 150.705 740.998 null] +1011 0 obj << +/D [1009 0 R /XYZ 150.705 740.998 null] >> endobj -1030 0 obj << -/D [1027 0 R /XYZ 150.705 287.871 null] +1012 0 obj << +/D [1009 0 R /XYZ 150.705 287.871 null] >> endobj -1031 0 obj << -/D [1027 0 R /XYZ 150.705 267.476 null] +1013 0 obj << +/D [1009 0 R /XYZ 150.705 267.476 null] >> endobj -1032 0 obj << -/D [1027 0 R /XYZ 150.705 235.127 null] +1014 0 obj << +/D [1009 0 R /XYZ 150.705 235.127 null] >> endobj -1033 0 obj << -/D [1027 0 R /XYZ 150.705 214.456 null] +1015 0 obj << +/D [1009 0 R /XYZ 150.705 214.456 null] >> endobj -1034 0 obj << -/D [1027 0 R /XYZ 150.705 172.366 null] +1016 0 obj << +/D [1009 0 R /XYZ 150.705 172.366 null] >> endobj -1026 0 obj << -/Font << /F27 441 0 R /F8 442 0 R /F30 617 0 R /F14 620 0 R /F11 603 0 R /F10 619 0 R >> +1008 0 obj << +/Font << /F27 437 0 R /F8 438 0 R /F30 616 0 R /F14 619 0 R /F11 599 0 R /F10 618 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1037 0 obj << +1019 0 obj << /Length 507 >> stream @@ -10662,29 +10310,29 @@ BT 0 g 0 G [-500(Orphan)-313(and)-312(o)27(v)28(erlap)-312(indices)-313(are)-313(imp)-28(ossible)-313(b)28(y)-313(construction)-312(when)-313(the)-313(sub-)]TJ 12.73 -11.955 Td [(routine)-333(is)-334(in)28(v)28(ok)28(ed)-334(with)]TJ/F30 9.9626 Tf 103.307 0 Td [(nl)]TJ/F8 9.9626 Tf 13.782 0 Td [(\050alone\051,)-333(or)]TJ/F30 9.9626 Tf 48.734 0 Td [(vg)]TJ/F8 9.9626 Tf 10.46 0 Td [(.)]TJ 0 g 0 G - -34.315 -603.736 Td [(57)]TJ + -34.315 -603.736 Td [(55)]TJ 0 g 0 G ET endstream endobj -1036 0 obj << +1018 0 obj << /Type /Page -/Contents 1037 0 R -/Resources 1035 0 R +/Contents 1019 0 R +/Resources 1017 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1025 0 R +/Parent 1022 0 R >> endobj -1038 0 obj << -/D [1036 0 R /XYZ 99.895 740.998 null] +1020 0 obj << +/D [1018 0 R /XYZ 99.895 740.998 null] >> endobj -1039 0 obj << -/D [1036 0 R /XYZ 99.895 716.092 null] +1021 0 obj << +/D [1018 0 R /XYZ 99.895 716.092 null] >> endobj -1035 0 obj << -/Font << /F8 442 0 R /F30 617 0 R >> +1017 0 obj << +/Font << /F8 438 0 R /F30 616 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1043 0 obj << +1026 0 obj << /Length 5575 >> stream @@ -10766,43 +10414,43 @@ BT 0 g 0 G [-500(This)-305(rout)1(ine)-305(automatically)-305(ign)1(ores)-305(edges)-305(that)-304(do)-305(not)-304(insist)-305(on)-304(the)-305(curren)28(t)]TJ 12.73 -11.955 Td [(pro)-28(cess,)-285(i.e.)-424(edges)-272(for)-273(whic)28(h)-272(neither)-273(the)-272(starting)-272(nor)-273(the)-272(end)-273(v)28(ertex)-272(b)-28(elong)]TJ 0 -11.955 Td [(to)-333(the)-334(curren)28(t)-333(pro)-28(cess.)]TJ 0 g 0 G - 141.968 -51.349 Td [(58)]TJ + 141.968 -51.349 Td [(56)]TJ 0 g 0 G ET endstream endobj -1042 0 obj << +1025 0 obj << /Type /Page -/Contents 1043 0 R -/Resources 1041 0 R +/Contents 1026 0 R +/Resources 1024 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1025 0 R -/Annots [ 1040 0 R ] +/Parent 1022 0 R +/Annots [ 1023 0 R ] >> endobj -1040 0 obj << +1023 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [345.53 292.001 412.588 303.126] /Subtype /Link /A << /S /GoTo /D (descdata) >> >> endobj -1044 0 obj << -/D [1042 0 R /XYZ 150.705 740.998 null] +1027 0 obj << +/D [1025 0 R /XYZ 150.705 740.998 null] >> endobj -190 0 obj << -/D [1042 0 R /XYZ 150.705 697.37 null] +186 0 obj << +/D [1025 0 R /XYZ 150.705 697.37 null] >> endobj -1045 0 obj << -/D [1042 0 R /XYZ 150.705 201.563 null] +1028 0 obj << +/D [1025 0 R /XYZ 150.705 201.563 null] >> endobj -1046 0 obj << -/D [1042 0 R /XYZ 150.705 179.7 null] +1029 0 obj << +/D [1025 0 R /XYZ 150.705 179.7 null] >> endobj -1041 0 obj << -/Font << /F16 439 0 R /F30 617 0 R /F8 442 0 R /F27 441 0 R /F11 603 0 R >> +1024 0 obj << +/Font << /F16 435 0 R /F30 616 0 R /F8 438 0 R /F27 437 0 R /F11 599 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1051 0 obj << +1034 0 obj << /Length 3494 >> stream @@ -10897,47 +10545,47 @@ BT 0 g 0 G [-500(On)-333(exit)-334(from)-333(this)-333(routine)-333(the)-334(descriptor)-333(is)-333(in)-334(the)-333(assem)28(bled)-334(state.)]TJ 0 g 0 G - 154.698 -288.46 Td [(59)]TJ + 154.698 -288.46 Td [(57)]TJ 0 g 0 G ET endstream endobj -1050 0 obj << +1033 0 obj << /Type /Page -/Contents 1051 0 R -/Resources 1049 0 R +/Contents 1034 0 R +/Resources 1032 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1025 0 R -/Annots [ 1047 0 R 1048 0 R ] +/Parent 1022 0 R +/Annots [ 1030 0 R 1031 0 R ] >> endobj -1047 0 obj << +1030 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [294.721 574.94 361.779 586.065] /Subtype /Link /A << /S /GoTo /D (descdata) >> >> endobj -1048 0 obj << +1031 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [294.721 485.277 361.779 496.401] /Subtype /Link /A << /S /GoTo /D (descdata) >> >> endobj -1052 0 obj << -/D [1050 0 R /XYZ 99.895 740.998 null] +1035 0 obj << +/D [1033 0 R /XYZ 99.895 740.998 null] >> endobj -194 0 obj << -/D [1050 0 R /XYZ 99.895 697.37 null] +190 0 obj << +/D [1033 0 R /XYZ 99.895 697.37 null] >> endobj -1053 0 obj << -/D [1050 0 R /XYZ 99.895 394.838 null] +1036 0 obj << +/D [1033 0 R /XYZ 99.895 394.838 null] >> endobj -1049 0 obj << -/Font << /F16 439 0 R /F30 617 0 R /F27 441 0 R /F8 442 0 R >> +1032 0 obj << +/Font << /F16 435 0 R /F30 616 0 R /F27 437 0 R /F8 438 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1058 0 obj << +1041 0 obj << /Length 3278 >> stream @@ -11028,44 +10676,44 @@ BT 0 g 0 G /F8 9.9626 Tf 23.758 0 Td [(Error)-333(co)-28(de.)]TJ 1.148 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.612 0 Td [(required)]TJ/F8 9.9626 Tf -29.612 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(out)]TJ/F8 9.9626 Tf 16.549 0 Td [(.)]TJ -50.035 -11.955 Td [(An)-333(in)27(t)1(e)-1(ger)-333(v)56(alue;)-334(0)-333(means)-333(no)-334(error)-333(has)-333(b)-28(een)-333(detec)-1(ted.)]TJ 0 g 0 G - 141.968 -330.303 Td [(60)]TJ + 141.968 -330.303 Td [(58)]TJ 0 g 0 G ET endstream endobj -1057 0 obj << +1040 0 obj << /Type /Page -/Contents 1058 0 R -/Resources 1056 0 R +/Contents 1041 0 R +/Resources 1039 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1025 0 R -/Annots [ 1054 0 R 1055 0 R ] +/Parent 1022 0 R +/Annots [ 1037 0 R 1038 0 R ] >> endobj -1054 0 obj << +1037 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [345.53 574.94 412.588 586.065] /Subtype /Link /A << /S /GoTo /D (descdata) >> >> endobj -1055 0 obj << +1038 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [345.53 485.277 412.588 496.401] /Subtype /Link /A << /S /GoTo /D (descdata) >> >> endobj -1059 0 obj << -/D [1057 0 R /XYZ 150.705 740.998 null] +1042 0 obj << +/D [1040 0 R /XYZ 150.705 740.998 null] >> endobj -198 0 obj << -/D [1057 0 R /XYZ 150.705 697.37 null] +194 0 obj << +/D [1040 0 R /XYZ 150.705 697.37 null] >> endobj -1056 0 obj << -/Font << /F16 439 0 R /F30 617 0 R /F27 441 0 R /F8 442 0 R >> +1039 0 obj << +/Font << /F16 435 0 R /F30 616 0 R /F27 437 0 R /F8 438 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1063 0 obj << +1046 0 obj << /Length 2243 >> stream @@ -11127,37 +10775,37 @@ BT 0 g 0 G /F8 9.9626 Tf 23.758 0 Td [(Error)-333(co)-28(de.)]TJ 1.149 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(out)]TJ/F8 9.9626 Tf 16.549 0 Td [(.)]TJ -50.035 -11.955 Td [(An)-333(in)28(tege)-1(r)-333(v)56(alue;)-334(0)-333(means)-333(no)-334(error)-333(has)-333(b)-28(een)-333(detecte)-1(d)1(.)]TJ 0 g 0 G - 141.968 -398.049 Td [(61)]TJ + 141.968 -398.049 Td [(59)]TJ 0 g 0 G ET endstream endobj -1062 0 obj << +1045 0 obj << /Type /Page -/Contents 1063 0 R -/Resources 1061 0 R +/Contents 1046 0 R +/Resources 1044 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1065 0 R -/Annots [ 1060 0 R ] +/Parent 1022 0 R +/Annots [ 1043 0 R ] >> endobj -1060 0 obj << +1043 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [294.721 574.94 361.779 586.065] /Subtype /Link /A << /S /GoTo /D (descdata) >> >> endobj -1064 0 obj << -/D [1062 0 R /XYZ 99.895 740.998 null] +1047 0 obj << +/D [1045 0 R /XYZ 99.895 740.998 null] >> endobj -202 0 obj << -/D [1062 0 R /XYZ 99.895 697.37 null] +198 0 obj << +/D [1045 0 R /XYZ 99.895 697.37 null] >> endobj -1061 0 obj << -/Font << /F16 439 0 R /F30 617 0 R /F27 441 0 R /F8 442 0 R >> +1044 0 obj << +/Font << /F16 435 0 R /F30 616 0 R /F27 437 0 R /F8 438 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1070 0 obj << +1052 0 obj << /Length 5915 >> stream @@ -11260,44 +10908,44 @@ BT 0 g 0 G /F8 9.9626 Tf 23.758 0 Td [(Error)-333(co)-28(de.)]TJ 1.148 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.612 0 Td [(required)]TJ/F8 9.9626 Tf -29.612 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(out)]TJ/F8 9.9626 Tf 16.549 0 Td [(.)]TJ -50.035 -11.955 Td [(An)-333(in)27(t)1(e)-1(ger)-333(v)56(alue;)-334(0)-333(means)-333(no)-334(error)-333(has)-333(b)-28(een)-333(detec)-1(ted.)]TJ/F16 11.9552 Tf -24.906 -23.476 Td [(Notes)]TJ 0 g 0 G -/F8 9.9626 Tf 166.874 -29.888 Td [(62)]TJ +/F8 9.9626 Tf 166.874 -29.888 Td [(60)]TJ 0 g 0 G ET endstream endobj -1069 0 obj << +1051 0 obj << /Type /Page -/Contents 1070 0 R -/Resources 1068 0 R +/Contents 1052 0 R +/Resources 1050 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1065 0 R -/Annots [ 1066 0 R 1067 0 R ] +/Parent 1022 0 R +/Annots [ 1048 0 R 1049 0 R ] >> endobj -1066 0 obj << +1048 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [345.53 453.24 417.818 464.364] /Subtype /Link /A << /S /GoTo /D (spdata) >> >> endobj -1067 0 obj << +1049 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [345.53 209.896 412.588 221.021] /Subtype /Link /A << /S /GoTo /D (descdata) >> >> endobj -1071 0 obj << -/D [1069 0 R /XYZ 150.705 740.998 null] +1053 0 obj << +/D [1051 0 R /XYZ 150.705 740.998 null] >> endobj -206 0 obj << -/D [1069 0 R /XYZ 150.705 685.412 null] +202 0 obj << +/D [1051 0 R /XYZ 150.705 685.412 null] >> endobj -1068 0 obj << -/Font << /F16 439 0 R /F30 617 0 R /F8 442 0 R /F27 441 0 R /F11 603 0 R /F14 620 0 R >> +1050 0 obj << +/Font << /F16 435 0 R /F30 616 0 R /F8 438 0 R /F27 437 0 R /F11 599 0 R /F14 619 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1074 0 obj << +1056 0 obj << /Length 1591 >> stream @@ -11313,32 +10961,32 @@ BT 0 g 0 G [-500(Sp)-28(ecifying)]TJ/F30 9.9626 Tf 60.957 0 Td [(psb_ovt_asov_)]TJ/F8 9.9626 Tf 71.666 0 Td [(for)-368(the)]TJ/F30 9.9626 Tf 33.107 0 Td [(extype)]TJ/F8 9.9626 Tf 35.054 0 Td [(argumen)28(t)-369(the)-368(user)-369(will)-368(obtain)]TJ -188.054 -11.955 Td [(a)-458(descriptor)-459(with)-458(an)-458(o)28(v)27(erlapp)-27(ed)-459(decomp)-27(os)-1(iti)1(on:)-695(the)-458(additional)-458(la)27(y)28(er)-458(is)]TJ 0 -11.955 Td [(aggregated)-413(to)-413(the)-413(lo)-28(cal)-413(sub)-28(domain)-413(\050and)-413(th)28(us)-414(is)-413(an)-413(o)28(v)28(erlap\051,)-433(and)-413(a)-414(new)]TJ 0 -11.955 Td [(halo)-333(extending)-334(b)-27(ey)27(on)1(d)-334(the)-333(last)-333(additional)-334(la)28(y)28(er)-333(is)-334(formed.)]TJ 0 g 0 G - 141.968 -524.035 Td [(63)]TJ + 141.968 -524.035 Td [(61)]TJ 0 g 0 G ET endstream endobj -1073 0 obj << +1055 0 obj << /Type /Page -/Contents 1074 0 R -/Resources 1072 0 R +/Contents 1056 0 R +/Resources 1054 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1065 0 R +/Parent 1060 0 R >> endobj -1075 0 obj << -/D [1073 0 R /XYZ 99.895 740.998 null] +1057 0 obj << +/D [1055 0 R /XYZ 99.895 740.998 null] >> endobj -1076 0 obj << -/D [1073 0 R /XYZ 99.895 716.092 null] +1058 0 obj << +/D [1055 0 R /XYZ 99.895 716.092 null] >> endobj -1077 0 obj << -/D [1073 0 R /XYZ 99.895 664.341 null] +1059 0 obj << +/D [1055 0 R /XYZ 99.895 664.341 null] >> endobj -1072 0 obj << -/Font << /F8 442 0 R /F30 617 0 R >> +1054 0 obj << +/Font << /F8 438 0 R /F30 616 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1082 0 obj << +1065 0 obj << /Length 4886 >> stream @@ -11438,53 +11086,53 @@ BT 0 g 0 G [-500(Pro)28(viding)-307(a)-308(go)-27(o)-28(d)-307(e)-1(stimate)-307(for)-307(the)-307(n)27(um)28(b)-28(er)-307(of)-307(nonzero)-28(es)]TJ/F11 9.9626 Tf 254.288 0 Td [(nnz)]TJ/F8 9.9626 Tf 20.093 0 Td [(in)-307(the)-308(assem-)]TJ -261.651 -11.955 Td [(bled)-402(matrix)-401(ma)28(y)-402(substan)28(tially)-401(impro)27(v)28(e)-401(p)-28(erformance)-402(in)-401(the)-402(matrix)-401(build)]TJ 0 -11.955 Td [(phase,)-458(as)-433(it)-432(will)-433(reduce)-433(or)-433(eliminate)-433(the)-433(need)-432(for)-433(\050p)-28(oten)28(tially)-433(m)28(ultiple\051)]TJ 0 -11.956 Td [(data)-333(reallo)-28(cations.)]TJ 0 g 0 G - 141.968 -133.042 Td [(64)]TJ + 141.968 -133.042 Td [(62)]TJ 0 g 0 G ET endstream endobj -1081 0 obj << +1064 0 obj << /Type /Page -/Contents 1082 0 R -/Resources 1080 0 R +/Contents 1065 0 R +/Resources 1063 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1065 0 R -/Annots [ 1078 0 R 1079 0 R ] +/Parent 1060 0 R +/Annots [ 1061 0 R 1062 0 R ] >> endobj -1078 0 obj << +1061 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [345.53 574.94 412.588 586.065] /Subtype /Link /A << /S /GoTo /D (descdata) >> >> endobj -1079 0 obj << +1062 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [345.53 405.575 417.818 416.7] /Subtype /Link /A << /S /GoTo /D (spdata) >> >> endobj -1083 0 obj << -/D [1081 0 R /XYZ 150.705 740.998 null] +1066 0 obj << +/D [1064 0 R /XYZ 150.705 740.998 null] >> endobj -210 0 obj << -/D [1081 0 R /XYZ 150.705 697.37 null] +206 0 obj << +/D [1064 0 R /XYZ 150.705 697.37 null] >> endobj -1084 0 obj << -/D [1081 0 R /XYZ 150.705 315.137 null] +1067 0 obj << +/D [1064 0 R /XYZ 150.705 315.137 null] >> endobj -1085 0 obj << -/D [1081 0 R /XYZ 150.705 293.274 null] +1068 0 obj << +/D [1064 0 R /XYZ 150.705 293.274 null] >> endobj -1086 0 obj << -/D [1081 0 R /XYZ 150.705 273.349 null] +1069 0 obj << +/D [1064 0 R /XYZ 150.705 273.349 null] >> endobj -1080 0 obj << -/Font << /F16 439 0 R /F30 617 0 R /F27 441 0 R /F8 442 0 R /F11 603 0 R >> +1063 0 obj << +/Font << /F16 435 0 R /F30 616 0 R /F27 437 0 R /F8 438 0 R /F11 599 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1092 0 obj << +1075 0 obj << /Length 6672 >> stream @@ -11609,51 +11257,51 @@ BT 0 g 0 G /F8 9.9626 Tf 20.922 0 Td [(.)]TJ 0 g 0 G - -60.444 -41.843 Td [(65)]TJ + -60.444 -41.843 Td [(63)]TJ 0 g 0 G ET endstream endobj -1091 0 obj << +1074 0 obj << /Type /Page -/Contents 1092 0 R -/Resources 1090 0 R +/Contents 1075 0 R +/Resources 1073 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1065 0 R -/Annots [ 1087 0 R 1088 0 R 1089 0 R ] +/Parent 1060 0 R +/Annots [ 1070 0 R 1071 0 R 1072 0 R ] >> endobj -1087 0 obj << +1070 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [261.152 296.208 328.21 307.333] /Subtype /Link /A << /S /GoTo /D (descdata) >> >> endobj -1088 0 obj << +1071 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [294.721 196.322 367.009 207.447] /Subtype /Link /A << /S /GoTo /D (spdata) >> >> endobj -1089 0 obj << +1072 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [261.152 129.071 328.21 140.196] /Subtype /Link /A << /S /GoTo /D (descdata) >> >> endobj -1093 0 obj << -/D [1091 0 R /XYZ 99.895 740.998 null] +1076 0 obj << +/D [1074 0 R /XYZ 99.895 740.998 null] >> endobj -214 0 obj << -/D [1091 0 R /XYZ 99.895 697.37 null] +210 0 obj << +/D [1074 0 R /XYZ 99.895 697.37 null] >> endobj -1090 0 obj << -/Font << /F16 439 0 R /F30 617 0 R /F27 441 0 R /F8 442 0 R /F11 603 0 R >> +1073 0 obj << +/Font << /F16 435 0 R /F30 616 0 R /F27 437 0 R /F8 438 0 R /F11 599 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1096 0 obj << +1079 0 obj << /Length 3014 >> stream @@ -11689,44 +11337,44 @@ BT 0 g 0 G [-500(If)-309(the)-308(matrix)-309(is)-308(in)-309(the)-308(up)-28(date)-309(state,)-313(an)28(y)-309(en)28(tries)-309(in)-308(p)-28(ositions)-309(that)-308(w)28(ere)-309(not)]TJ 12.73 -11.955 Td [(presen)28(t)-334(in)-333(the)-333(original)-333(matrix)-334(will)-333(b)-28(e)-333(ignored.)]TJ 0 g 0 G - 141.968 -306.849 Td [(66)]TJ + 141.968 -306.849 Td [(64)]TJ 0 g 0 G ET endstream endobj -1095 0 obj << +1078 0 obj << /Type /Page -/Contents 1096 0 R -/Resources 1094 0 R +/Contents 1079 0 R +/Resources 1077 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1065 0 R +/Parent 1060 0 R >> endobj -1097 0 obj << -/D [1095 0 R /XYZ 150.705 740.998 null] +1080 0 obj << +/D [1078 0 R /XYZ 150.705 740.998 null] >> endobj -1098 0 obj << -/D [1095 0 R /XYZ 150.705 632.405 null] +1081 0 obj << +/D [1078 0 R /XYZ 150.705 632.405 null] >> endobj -1099 0 obj << -/D [1095 0 R /XYZ 150.705 600.525 null] +1082 0 obj << +/D [1078 0 R /XYZ 150.705 600.525 null] >> endobj -1100 0 obj << -/D [1095 0 R /XYZ 150.705 566.707 null] +1083 0 obj << +/D [1078 0 R /XYZ 150.705 566.707 null] >> endobj -1101 0 obj << -/D [1095 0 R /XYZ 150.705 498.961 null] +1084 0 obj << +/D [1078 0 R /XYZ 150.705 498.961 null] >> endobj -1102 0 obj << -/D [1095 0 R /XYZ 150.705 467.081 null] +1085 0 obj << +/D [1078 0 R /XYZ 150.705 467.081 null] >> endobj -1103 0 obj << -/D [1095 0 R /XYZ 150.705 423.245 null] +1086 0 obj << +/D [1078 0 R /XYZ 150.705 423.245 null] >> endobj -1094 0 obj << -/Font << /F27 441 0 R /F8 442 0 R /F16 439 0 R /F30 617 0 R >> +1077 0 obj << +/Font << /F27 437 0 R /F8 438 0 R /F16 435 0 R /F30 616 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1108 0 obj << +1091 0 obj << /Length 5985 >> stream @@ -11830,50 +11478,50 @@ BT 0 g 0 G [-500(The)-333(sparse)-334(matrix)-333(ma)28(y)-334(b)-27(e)-334(in)-333(either)-333(the)-334(build)-333(or)-333(up)-28(date)-333(state;)]TJ 0 g 0 G - 154.698 -29.888 Td [(67)]TJ + 154.698 -29.888 Td [(65)]TJ 0 g 0 G ET endstream endobj -1107 0 obj << +1090 0 obj << /Type /Page -/Contents 1108 0 R -/Resources 1106 0 R +/Contents 1091 0 R +/Resources 1089 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1112 0 R -/Annots [ 1104 0 R 1105 0 R ] +/Parent 1060 0 R +/Annots [ 1087 0 R 1088 0 R ] >> endobj -1104 0 obj << +1087 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [294.721 571.784 361.779 582.909] /Subtype /Link /A << /S /GoTo /D (descdata) >> >> endobj -1105 0 obj << +1088 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [294.721 262.266 367.009 273.391] /Subtype /Link /A << /S /GoTo /D (spdata) >> >> endobj -1109 0 obj << -/D [1107 0 R /XYZ 99.895 740.998 null] +1092 0 obj << +/D [1090 0 R /XYZ 99.895 740.998 null] >> endobj -218 0 obj << -/D [1107 0 R /XYZ 99.895 697.159 null] +214 0 obj << +/D [1090 0 R /XYZ 99.895 697.159 null] >> endobj -1110 0 obj << -/D [1107 0 R /XYZ 99.895 169.619 null] +1093 0 obj << +/D [1090 0 R /XYZ 99.895 169.619 null] >> endobj -1111 0 obj << -/D [1107 0 R /XYZ 99.895 134.543 null] +1094 0 obj << +/D [1090 0 R /XYZ 99.895 134.543 null] >> endobj -1106 0 obj << -/Font << /F16 439 0 R /F30 617 0 R /F27 441 0 R /F8 442 0 R >> +1089 0 obj << +/Font << /F16 435 0 R /F30 616 0 R /F27 437 0 R /F8 438 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1115 0 obj << +1097 0 obj << /Length 1520 >> stream @@ -11893,35 +11541,35 @@ BT 0 g 0 G [-500(On)-370(exit)-370(from)-370(this)-370(routine)-370(the)-370(matrix)-370(is)-370(in)-370(the)-370(assem)28(bled)-370(state,)-380(an)1(d)-370(th)27(us)]TJ 12.73 -11.956 Td [(is)-333(suitable)-334(for)-333(the)-333(computational)-334(rou)1(tines)-1(.)]TJ 0 g 0 G - 141.968 -516.064 Td [(68)]TJ + 141.968 -516.064 Td [(66)]TJ 0 g 0 G ET endstream endobj -1114 0 obj << +1096 0 obj << /Type /Page -/Contents 1115 0 R -/Resources 1113 0 R +/Contents 1097 0 R +/Resources 1095 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1112 0 R +/Parent 1060 0 R >> endobj -1116 0 obj << -/D [1114 0 R /XYZ 150.705 740.998 null] +1098 0 obj << +/D [1096 0 R /XYZ 150.705 740.998 null] >> endobj -1117 0 obj << -/D [1114 0 R /XYZ 150.705 716.092 null] +1099 0 obj << +/D [1096 0 R /XYZ 150.705 716.092 null] >> endobj -1118 0 obj << -/D [1114 0 R /XYZ 150.705 676.296 null] +1100 0 obj << +/D [1096 0 R /XYZ 150.705 676.296 null] >> endobj -1119 0 obj << -/D [1114 0 R /XYZ 150.705 632.461 null] +1101 0 obj << +/D [1096 0 R /XYZ 150.705 632.461 null] >> endobj -1113 0 obj << -/Font << /F8 442 0 R /F30 617 0 R >> +1095 0 obj << +/Font << /F8 438 0 R /F30 616 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1124 0 obj << +1106 0 obj << /Length 3085 >> stream @@ -12005,44 +11653,44 @@ BT 0 g 0 G /F8 9.9626 Tf 23.758 0 Td [(Error)-333(co)-28(de.)]TJ 1.149 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(out)]TJ/F8 9.9626 Tf 16.549 0 Td [(.)]TJ -50.035 -11.955 Td [(An)-333(in)28(tege)-1(r)-333(v)56(alue;)-334(0)-333(means)-333(no)-334(error)-333(has)-333(b)-28(een)-333(detecte)-1(d)1(.)]TJ 0 g 0 G - 141.968 -330.303 Td [(69)]TJ + 141.968 -330.303 Td [(67)]TJ 0 g 0 G ET endstream endobj -1123 0 obj << +1105 0 obj << /Type /Page -/Contents 1124 0 R -/Resources 1122 0 R +/Contents 1106 0 R +/Resources 1104 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1112 0 R -/Annots [ 1120 0 R 1121 0 R ] +/Parent 1108 0 R +/Annots [ 1102 0 R 1103 0 R ] >> endobj -1120 0 obj << +1102 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [294.721 574.94 367.009 586.065] /Subtype /Link /A << /S /GoTo /D (spdata) >> >> endobj -1121 0 obj << +1103 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [294.721 507.194 361.779 518.319] /Subtype /Link /A << /S /GoTo /D (descdata) >> >> endobj -1125 0 obj << -/D [1123 0 R /XYZ 99.895 740.998 null] +1107 0 obj << +/D [1105 0 R /XYZ 99.895 740.998 null] >> endobj -222 0 obj << -/D [1123 0 R /XYZ 99.895 697.37 null] +218 0 obj << +/D [1105 0 R /XYZ 99.895 697.37 null] >> endobj -1122 0 obj << -/Font << /F16 439 0 R /F30 617 0 R /F27 441 0 R /F8 442 0 R >> +1104 0 obj << +/Font << /F16 435 0 R /F30 616 0 R /F27 437 0 R /F8 438 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1130 0 obj << +1113 0 obj << /Length 3975 >> stream @@ -12134,47 +11782,47 @@ BT 0 g 0 G [-500(On)-333(exit)-334(from)-333(this)-333(routine)-334(t)1(he)-334(sparse)-333(matrix)-334(is)-333(in)-333(the)-333(up)-28(date)-334(state.)]TJ 0 g 0 G - 154.698 -206.766 Td [(70)]TJ + 154.698 -206.766 Td [(68)]TJ 0 g 0 G ET endstream endobj -1129 0 obj << +1112 0 obj << /Type /Page -/Contents 1130 0 R -/Resources 1128 0 R +/Contents 1113 0 R +/Resources 1111 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1112 0 R -/Annots [ 1126 0 R 1127 0 R ] +/Parent 1108 0 R +/Annots [ 1109 0 R 1110 0 R ] >> endobj -1126 0 obj << +1109 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [345.53 560.993 417.818 572.118] /Subtype /Link /A << /S /GoTo /D (spdata) >> >> endobj -1127 0 obj << +1110 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [345.53 493.247 412.588 504.372] /Subtype /Link /A << /S /GoTo /D (descdata) >> >> endobj -1131 0 obj << -/D [1129 0 R /XYZ 150.705 740.998 null] +1114 0 obj << +/D [1112 0 R /XYZ 150.705 740.998 null] >> endobj -226 0 obj << -/D [1129 0 R /XYZ 150.705 685.747 null] +222 0 obj << +/D [1112 0 R /XYZ 150.705 685.747 null] >> endobj -1132 0 obj << -/D [1129 0 R /XYZ 150.705 313.144 null] +1115 0 obj << +/D [1112 0 R /XYZ 150.705 313.144 null] >> endobj -1128 0 obj << -/Font << /F16 439 0 R /F30 617 0 R /F27 441 0 R /F8 442 0 R >> +1111 0 obj << +/Font << /F16 435 0 R /F30 616 0 R /F27 437 0 R /F8 438 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1136 0 obj << +1119 0 obj << /Length 4603 >> stream @@ -12248,37 +11896,37 @@ BT 0 g 0 G /F8 9.9626 Tf 23.758 0 Td [(Error)-333(co)-28(de.)]TJ 1.149 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(out)]TJ/F8 9.9626 Tf 16.549 0 Td [(.)]TJ -50.035 -11.955 Td [(An)-333(in)28(tege)-1(r)-333(v)56(alue;)-334(0)-333(means)-333(no)-334(error)-333(has)-333(b)-28(een)-333(detecte)-1(d)1(.)]TJ 0 g 0 G - 141.968 -123.08 Td [(71)]TJ + 141.968 -123.08 Td [(69)]TJ 0 g 0 G ET endstream endobj -1135 0 obj << +1118 0 obj << /Type /Page -/Contents 1136 0 R -/Resources 1134 0 R +/Contents 1119 0 R +/Resources 1117 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1112 0 R -/Annots [ 1133 0 R ] +/Parent 1108 0 R +/Annots [ 1116 0 R ] >> endobj -1133 0 obj << +1116 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [261.152 574.94 328.21 586.065] /Subtype /Link /A << /S /GoTo /D (descdata) >> >> endobj -1137 0 obj << -/D [1135 0 R /XYZ 99.895 740.998 null] +1120 0 obj << +/D [1118 0 R /XYZ 99.895 740.998 null] >> endobj -230 0 obj << -/D [1135 0 R /XYZ 99.895 697.37 null] +226 0 obj << +/D [1118 0 R /XYZ 99.895 697.37 null] >> endobj -1134 0 obj << -/Font << /F16 439 0 R /F30 617 0 R /F27 441 0 R /F8 442 0 R /F11 603 0 R >> +1117 0 obj << +/Font << /F16 435 0 R /F30 616 0 R /F27 437 0 R /F8 438 0 R /F11 599 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1141 0 obj << +1124 0 obj << /Length 6176 >> stream @@ -12360,37 +12008,37 @@ BT 0 g 0 G /F8 9.9626 Tf 23.758 0 Td [(Error)-333(co)-28(de.)]TJ 1.149 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.378 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.378 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.485 0 Td [(out)]TJ/F8 9.9626 Tf 16.549 0 Td [(.)]TJ -50.034 -11.955 Td [(An)-333(in)28(teger)-334(v)56(alue;)-334(0)-333(means)-333(no)-334(error)-333(has)-333(b)-28(een)-333(detected.)]TJ 0 g 0 G - 141.967 -29.888 Td [(72)]TJ + 141.967 -29.888 Td [(70)]TJ 0 g 0 G ET endstream endobj -1140 0 obj << +1123 0 obj << /Type /Page -/Contents 1141 0 R -/Resources 1139 0 R +/Contents 1124 0 R +/Resources 1122 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1112 0 R -/Annots [ 1138 0 R ] +/Parent 1108 0 R +/Annots [ 1121 0 R ] >> endobj -1138 0 obj << +1121 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [345.53 363.459 412.588 374.584] /Subtype /Link /A << /S /GoTo /D (descdata) >> >> endobj -1142 0 obj << -/D [1140 0 R /XYZ 150.705 740.998 null] +1125 0 obj << +/D [1123 0 R /XYZ 150.705 740.998 null] >> endobj -234 0 obj << -/D [1140 0 R /XYZ 150.705 697.37 null] +230 0 obj << +/D [1123 0 R /XYZ 150.705 697.37 null] >> endobj -1139 0 obj << -/Font << /F16 439 0 R /F30 617 0 R /F27 441 0 R /F8 442 0 R /F11 603 0 R >> +1122 0 obj << +/Font << /F16 435 0 R /F30 616 0 R /F27 437 0 R /F8 438 0 R /F11 599 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1145 0 obj << +1128 0 obj << /Length 554 >> stream @@ -12407,32 +12055,32 @@ BT 0 g 0 G [-500(Duplicate)-292(en)28(tries)-293(are)-292(either)-292(o)28(v)28(erwritten)-292(or)-293(added,)-300(there)-292(is)-292(no)-292(pro)27(vision)-292(for)]TJ 12.73 -11.955 Td [(raising)-333(an)-334(error)-333(condition.)]TJ 0 g 0 G - 141.968 -563.885 Td [(73)]TJ + 141.968 -563.885 Td [(71)]TJ 0 g 0 G ET endstream endobj -1144 0 obj << +1127 0 obj << /Type /Page -/Contents 1145 0 R -/Resources 1143 0 R +/Contents 1128 0 R +/Resources 1126 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1149 0 R +/Parent 1108 0 R >> endobj -1146 0 obj << -/D [1144 0 R /XYZ 99.895 740.998 null] +1129 0 obj << +/D [1127 0 R /XYZ 99.895 740.998 null] >> endobj -1147 0 obj << -/D [1144 0 R /XYZ 99.895 702.144 null] +1130 0 obj << +/D [1127 0 R /XYZ 99.895 702.144 null] >> endobj -1148 0 obj << -/D [1144 0 R /XYZ 99.895 679.728 null] +1131 0 obj << +/D [1127 0 R /XYZ 99.895 679.728 null] >> endobj -1143 0 obj << -/Font << /F16 439 0 R /F8 442 0 R >> +1126 0 obj << +/Font << /F16 435 0 R /F8 438 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1153 0 obj << +1135 0 obj << /Length 2877 >> stream @@ -12498,37 +12146,37 @@ BT 0 g 0 G /F8 9.9626 Tf 23.758 0 Td [(Error)-333(co)-28(de.)]TJ 1.148 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.612 0 Td [(required)]TJ/F8 9.9626 Tf -29.612 -11.956 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(out)]TJ/F8 9.9626 Tf 16.549 0 Td [(.)]TJ -50.035 -11.955 Td [(An)-333(in)28(te)-1(ger)-333(v)56(alue;)-334(0)-333(means)-333(no)-334(error)-333(has)-333(b)-28(een)-333(detec)-1(ted.)]TJ 0 g 0 G - 141.968 -294.437 Td [(74)]TJ + 141.968 -294.437 Td [(72)]TJ 0 g 0 G ET endstream endobj -1152 0 obj << +1134 0 obj << /Type /Page -/Contents 1153 0 R -/Resources 1151 0 R +/Contents 1135 0 R +/Resources 1133 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1149 0 R -/Annots [ 1150 0 R ] +/Parent 1108 0 R +/Annots [ 1132 0 R ] >> endobj -1150 0 obj << +1132 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [311.962 574.94 379.019 586.065] /Subtype /Link /A << /S /GoTo /D (descdata) >> >> endobj -1154 0 obj << -/D [1152 0 R /XYZ 150.705 740.998 null] +1136 0 obj << +/D [1134 0 R /XYZ 150.705 740.998 null] >> endobj -238 0 obj << -/D [1152 0 R /XYZ 150.705 697.37 null] +234 0 obj << +/D [1134 0 R /XYZ 150.705 697.37 null] >> endobj -1151 0 obj << -/Font << /F16 439 0 R /F30 617 0 R /F27 441 0 R /F8 442 0 R >> +1133 0 obj << +/Font << /F16 435 0 R /F30 616 0 R /F27 437 0 R /F8 438 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1158 0 obj << +1140 0 obj << /Length 2881 >> stream @@ -12594,37 +12242,37 @@ BT 0 g 0 G /F8 9.9626 Tf 23.758 0 Td [(Error)-333(co)-28(de.)]TJ 1.149 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.956 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(out)]TJ/F8 9.9626 Tf 16.549 0 Td [(.)]TJ -50.035 -11.955 Td [(An)-333(in)28(tege)-1(r)-333(v)56(alue;)-334(0)-333(means)-333(no)-334(error)-333(has)-333(b)-28(een)-333(detecte)-1(d)1(.)]TJ 0 g 0 G - 141.968 -294.437 Td [(75)]TJ + 141.968 -294.437 Td [(73)]TJ 0 g 0 G ET endstream endobj -1157 0 obj << +1139 0 obj << /Type /Page -/Contents 1158 0 R -/Resources 1156 0 R +/Contents 1140 0 R +/Resources 1138 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1149 0 R -/Annots [ 1155 0 R ] +/Parent 1142 0 R +/Annots [ 1137 0 R ] >> endobj -1155 0 obj << +1137 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [261.152 483.284 328.21 494.409] /Subtype /Link /A << /S /GoTo /D (descdata) >> >> endobj -1159 0 obj << -/D [1157 0 R /XYZ 99.895 740.998 null] +1141 0 obj << +/D [1139 0 R /XYZ 99.895 740.998 null] >> endobj -242 0 obj << -/D [1157 0 R /XYZ 99.895 697.37 null] +238 0 obj << +/D [1139 0 R /XYZ 99.895 697.37 null] >> endobj -1156 0 obj << -/Font << /F16 439 0 R /F30 617 0 R /F27 441 0 R /F8 442 0 R >> +1138 0 obj << +/Font << /F16 435 0 R /F30 616 0 R /F27 437 0 R /F8 438 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1162 0 obj << +1145 0 obj << /Length 3438 >> stream @@ -12669,29 +12317,29 @@ BT 0 g 0 G /F8 9.9626 Tf 23.758 0 Td [(Error)-333(co)-28(de.)]TJ 1.149 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.378 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.378 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.956 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.485 0 Td [(out)]TJ/F8 9.9626 Tf 16.549 0 Td [(.)]TJ -50.034 -11.955 Td [(An)-333(in)28(tege)-1(r)-333(v)56(alue;)-334(0)-333(means)-333(no)-334(error)-333(has)-333(b)-28(een)-333(detected.)]TJ 0 g 0 G - 141.967 -226.691 Td [(76)]TJ + 141.967 -226.691 Td [(74)]TJ 0 g 0 G ET endstream endobj -1161 0 obj << +1144 0 obj << /Type /Page -/Contents 1162 0 R -/Resources 1160 0 R +/Contents 1145 0 R +/Resources 1143 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1149 0 R +/Parent 1142 0 R >> endobj -1163 0 obj << -/D [1161 0 R /XYZ 150.705 740.998 null] +1146 0 obj << +/D [1144 0 R /XYZ 150.705 740.998 null] >> endobj -246 0 obj << -/D [1161 0 R /XYZ 150.705 697.37 null] +242 0 obj << +/D [1144 0 R /XYZ 150.705 697.37 null] >> endobj -1160 0 obj << -/Font << /F16 439 0 R /F30 617 0 R /F27 441 0 R /F8 442 0 R /F11 603 0 R /F10 619 0 R >> +1143 0 obj << +/Font << /F16 435 0 R /F30 616 0 R /F27 437 0 R /F8 438 0 R /F11 599 0 R /F10 618 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1167 0 obj << +1150 0 obj << /Length 6540 >> stream @@ -12787,37 +12435,37 @@ BT 0 g 0 G /F8 9.9626 Tf 23.758 0 Td [(Error)-333(co)-28(de.)]TJ 1.149 -11.956 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(out)]TJ/F8 9.9626 Tf 16.549 0 Td [(.)]TJ -50.035 -11.955 Td [(An)-333(in)28(tege)-1(r)-333(v)56(alue;)-334(0)-333(means)-333(no)-334(error)-333(has)-333(b)-28(een)-333(detecte)-1(d)1(.)]TJ/F16 11.9552 Tf -24.907 -21.202 Td [(Notes)]TJ 0 g 0 G -/F8 9.9626 Tf 166.875 -29.887 Td [(77)]TJ +/F8 9.9626 Tf 166.875 -29.887 Td [(75)]TJ 0 g 0 G ET endstream endobj -1166 0 obj << +1149 0 obj << /Type /Page -/Contents 1167 0 R -/Resources 1165 0 R +/Contents 1150 0 R +/Resources 1148 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1149 0 R -/Annots [ 1164 0 R ] +/Parent 1142 0 R +/Annots [ 1147 0 R ] >> endobj -1164 0 obj << +1147 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [294.721 484.86 361.779 495.985] /Subtype /Link /A << /S /GoTo /D (descdata) >> >> endobj -1168 0 obj << -/D [1166 0 R /XYZ 99.895 740.998 null] +1151 0 obj << +/D [1149 0 R /XYZ 99.895 740.998 null] >> endobj -250 0 obj << -/D [1166 0 R /XYZ 99.895 697.37 null] +246 0 obj << +/D [1149 0 R /XYZ 99.895 697.37 null] >> endobj -1165 0 obj << -/Font << /F16 439 0 R /F30 617 0 R /F27 441 0 R /F8 442 0 R /F11 603 0 R >> +1148 0 obj << +/Font << /F16 435 0 R /F30 616 0 R /F27 437 0 R /F8 438 0 R /F11 599 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1171 0 obj << +1154 0 obj << /Length 705 >> stream @@ -12833,32 +12481,32 @@ BT 0 g 0 G [-500(The)-476(default)]TJ/F30 9.9626 Tf 69.543 0 Td [(I)]TJ/F8 9.9626 Tf 5.23 0 Td [(gnore)-476(means)-477(that)-476(the)-476(negativ)28(e)-477(out)1(put)-477(is)-476(the)-476(only)-476(action)]TJ -62.043 -11.955 Td [(tak)28(en)-334(on)-333(an)-333(out-of-range)-333(input.)]TJ 0 g 0 G - 141.968 -571.855 Td [(78)]TJ + 141.968 -571.855 Td [(76)]TJ 0 g 0 G ET endstream endobj -1170 0 obj << +1153 0 obj << /Type /Page -/Contents 1171 0 R -/Resources 1169 0 R +/Contents 1154 0 R +/Resources 1152 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1149 0 R +/Parent 1142 0 R >> endobj -1172 0 obj << -/D [1170 0 R /XYZ 150.705 740.998 null] +1155 0 obj << +/D [1153 0 R /XYZ 150.705 740.998 null] >> endobj -1173 0 obj << -/D [1170 0 R /XYZ 150.705 716.092 null] +1156 0 obj << +/D [1153 0 R /XYZ 150.705 716.092 null] >> endobj -1174 0 obj << -/D [1170 0 R /XYZ 150.705 688.251 null] +1157 0 obj << +/D [1153 0 R /XYZ 150.705 688.251 null] >> endobj -1169 0 obj << -/Font << /F8 442 0 R /F30 617 0 R >> +1152 0 obj << +/Font << /F8 438 0 R /F30 616 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1178 0 obj << +1161 0 obj << /Length 5721 >> stream @@ -12950,37 +12598,37 @@ BT 0 g 0 G /F8 9.9626 Tf 23.758 0 Td [(Error)-333(co)-28(de.)]TJ 1.149 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(out)]TJ/F8 9.9626 Tf 16.549 0 Td [(.)]TJ -50.035 -11.955 Td [(An)-333(in)28(tege)-1(r)-333(v)56(alue;)-334(0)-333(means)-333(no)-334(error)-333(has)-333(b)-28(een)-333(detecte)-1(d)1(.)]TJ 0 g 0 G - 141.968 -115.11 Td [(79)]TJ + 141.968 -115.11 Td [(77)]TJ 0 g 0 G ET endstream endobj -1177 0 obj << +1160 0 obj << /Type /Page -/Contents 1178 0 R -/Resources 1176 0 R +/Contents 1161 0 R +/Resources 1159 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1180 0 R -/Annots [ 1175 0 R ] +/Parent 1142 0 R +/Annots [ 1158 0 R ] >> endobj -1175 0 obj << +1158 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [294.721 483.284 361.779 494.409] /Subtype /Link /A << /S /GoTo /D (descdata) >> >> endobj -1179 0 obj << -/D [1177 0 R /XYZ 99.895 740.998 null] +1162 0 obj << +/D [1160 0 R /XYZ 99.895 740.998 null] >> endobj -254 0 obj << -/D [1177 0 R /XYZ 99.895 697.37 null] +250 0 obj << +/D [1160 0 R /XYZ 99.895 697.37 null] >> endobj -1176 0 obj << -/Font << /F16 439 0 R /F30 617 0 R /F27 441 0 R /F8 442 0 R /F11 603 0 R >> +1159 0 obj << +/Font << /F16 435 0 R /F30 616 0 R /F27 437 0 R /F8 438 0 R /F11 599 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1184 0 obj << +1166 0 obj << /Length 3272 >> stream @@ -13057,40 +12705,40 @@ BT 0 g 0 G [-500(This)-300(routine)-300(r)1(e)-1(tu)1(rns)-300(a)]TJ/F30 9.9626 Tf 111.214 0 Td [(.true.)]TJ/F8 9.9626 Tf 34.368 0 Td [(v)56(alue)-300(for)-300(an)-300(index)-299(that)-300(is)-300(strictly)-300(o)28(wned)-300(b)28(y)]TJ -132.852 -11.955 Td [(the)-333(curren)27(t)-333(pro)-28(cess,)-333(excluding)-333(the)-334(halo)-333(indices)]TJ 0 g 0 G - 141.968 -264.549 Td [(80)]TJ + 141.968 -264.549 Td [(78)]TJ 0 g 0 G ET endstream endobj -1183 0 obj << +1165 0 obj << /Type /Page -/Contents 1184 0 R -/Resources 1182 0 R +/Contents 1166 0 R +/Resources 1164 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1180 0 R -/Annots [ 1181 0 R ] +/Parent 1142 0 R +/Annots [ 1163 0 R ] >> endobj -1181 0 obj << +1163 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [345.53 495.239 412.588 506.364] /Subtype /Link /A << /S /GoTo /D (descdata) >> >> endobj -1185 0 obj << -/D [1183 0 R /XYZ 150.705 740.998 null] +1167 0 obj << +/D [1165 0 R /XYZ 150.705 740.998 null] >> endobj -258 0 obj << -/D [1183 0 R /XYZ 150.705 697.37 null] +254 0 obj << +/D [1165 0 R /XYZ 150.705 697.37 null] >> endobj -1186 0 obj << -/D [1183 0 R /XYZ 150.705 382.883 null] +1168 0 obj << +/D [1165 0 R /XYZ 150.705 382.883 null] >> endobj -1182 0 obj << -/Font << /F16 439 0 R /F30 617 0 R /F27 441 0 R /F8 442 0 R /F11 603 0 R >> +1164 0 obj << +/Font << /F16 435 0 R /F30 616 0 R /F27 437 0 R /F8 438 0 R /F11 599 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1190 0 obj << +1172 0 obj << /Length 4972 >> stream @@ -13175,40 +12823,40 @@ BT 0 g 0 G [-500(This)-475(routine)-474(returns)-475(a)]TJ/F30 9.9626 Tf 118.186 0 Td [(.true.)]TJ/F8 9.9626 Tf 36.111 0 Td [(v)56(alue)-475(for)-475(those)-475(indices)-474(that)-475(are)-475(strictly)]TJ -141.567 -11.955 Td [(o)28(wned)-334(b)28(y)-333(the)-333(curren)27(t)-333(pro)-28(cess,)-333(excluding)-333(the)-334(halo)-333(indices)]TJ 0 g 0 G - 141.968 -141.013 Td [(81)]TJ + 141.968 -141.013 Td [(79)]TJ 0 g 0 G ET endstream endobj -1189 0 obj << +1171 0 obj << /Type /Page -/Contents 1190 0 R -/Resources 1188 0 R +/Contents 1172 0 R +/Resources 1170 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1180 0 R -/Annots [ 1187 0 R ] +/Parent 1175 0 R +/Annots [ 1169 0 R ] >> endobj -1187 0 obj << +1169 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [294.721 495.239 361.779 506.364] /Subtype /Link /A << /S /GoTo /D (descdata) >> >> endobj -1191 0 obj << -/D [1189 0 R /XYZ 99.895 740.998 null] +1173 0 obj << +/D [1171 0 R /XYZ 99.895 740.998 null] >> endobj -262 0 obj << -/D [1189 0 R /XYZ 99.895 697.37 null] +258 0 obj << +/D [1171 0 R /XYZ 99.895 697.37 null] >> endobj -1192 0 obj << -/D [1189 0 R /XYZ 99.895 259.346 null] +1174 0 obj << +/D [1171 0 R /XYZ 99.895 259.346 null] >> endobj -1188 0 obj << -/Font << /F16 439 0 R /F30 617 0 R /F27 441 0 R /F8 442 0 R /F11 603 0 R >> +1170 0 obj << +/Font << /F16 435 0 R /F30 616 0 R /F27 437 0 R /F8 438 0 R /F11 599 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1196 0 obj << +1179 0 obj << /Length 3240 >> stream @@ -13285,40 +12933,40 @@ BT 0 g 0 G [-500(This)-239(routine)-239(returns)-239(a)]TJ/F30 9.9626 Tf 108.787 0 Td [(.true.)]TJ/F8 9.9626 Tf 33.762 0 Td [(v)56(alue)-239(for)-239(an)-239(index)-239(that)-239(is)-239(lo)-27(cal)-239(to)-239(the)-239(curren)28(t)]TJ -129.819 -11.955 Td [(pro)-28(cess,)-333(including)-333(the)-334(halo)-333(indices)]TJ 0 g 0 G - 141.968 -264.549 Td [(82)]TJ + 141.968 -264.549 Td [(80)]TJ 0 g 0 G ET endstream endobj -1195 0 obj << +1178 0 obj << /Type /Page -/Contents 1196 0 R -/Resources 1194 0 R +/Contents 1179 0 R +/Resources 1177 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1180 0 R -/Annots [ 1193 0 R ] +/Parent 1175 0 R +/Annots [ 1176 0 R ] >> endobj -1193 0 obj << +1176 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [345.53 495.239 412.588 506.364] /Subtype /Link /A << /S /GoTo /D (descdata) >> >> endobj -1197 0 obj << -/D [1195 0 R /XYZ 150.705 740.998 null] +1180 0 obj << +/D [1178 0 R /XYZ 150.705 740.998 null] >> endobj -266 0 obj << -/D [1195 0 R /XYZ 150.705 697.37 null] +262 0 obj << +/D [1178 0 R /XYZ 150.705 697.37 null] >> endobj -1198 0 obj << -/D [1195 0 R /XYZ 150.705 382.883 null] +1181 0 obj << +/D [1178 0 R /XYZ 150.705 382.883 null] >> endobj -1194 0 obj << -/Font << /F16 439 0 R /F30 617 0 R /F27 441 0 R /F8 442 0 R /F11 603 0 R >> +1177 0 obj << +/Font << /F16 435 0 R /F30 616 0 R /F27 437 0 R /F8 438 0 R /F11 599 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1202 0 obj << +1185 0 obj << /Length 4956 >> stream @@ -13403,40 +13051,40 @@ BT 0 g 0 G [-500(This)-308(routine)-309(retur)1(ns)-309(a)]TJ/F30 9.9626 Tf 111.554 0 Td [(.true.)]TJ/F8 9.9626 Tf 34.454 0 Td [(v)56(alue)-309(for)-308(those)-308(indices)-309(that)-308(are)-308(lo)-28(cal)-308(to)-309(the)]TJ -133.278 -11.955 Td [(curren)28(t)-333(pro)-28(cess,)-334(including)-333(the)-333(halo)-333(indices.)]TJ 0 g 0 G - 141.968 -141.013 Td [(83)]TJ + 141.968 -141.013 Td [(81)]TJ 0 g 0 G ET endstream endobj -1201 0 obj << +1184 0 obj << /Type /Page -/Contents 1202 0 R -/Resources 1200 0 R +/Contents 1185 0 R +/Resources 1183 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1180 0 R -/Annots [ 1199 0 R ] +/Parent 1175 0 R +/Annots [ 1182 0 R ] >> endobj -1199 0 obj << +1182 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [294.721 495.239 361.779 506.364] /Subtype /Link /A << /S /GoTo /D (descdata) >> >> endobj -1203 0 obj << -/D [1201 0 R /XYZ 99.895 740.998 null] +1186 0 obj << +/D [1184 0 R /XYZ 99.895 740.998 null] >> endobj -270 0 obj << -/D [1201 0 R /XYZ 99.895 697.37 null] +266 0 obj << +/D [1184 0 R /XYZ 99.895 697.37 null] >> endobj -1204 0 obj << -/D [1201 0 R /XYZ 99.895 259.346 null] +1187 0 obj << +/D [1184 0 R /XYZ 99.895 259.346 null] >> endobj -1200 0 obj << -/Font << /F16 439 0 R /F30 617 0 R /F27 441 0 R /F8 442 0 R /F11 603 0 R >> +1183 0 obj << +/Font << /F16 435 0 R /F30 616 0 R /F27 437 0 R /F8 438 0 R /F11 599 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1208 0 obj << +1191 0 obj << /Length 3804 >> stream @@ -13510,43 +13158,43 @@ BT 0 g 0 G [-500(Otherwise)-288(the)-289(size)-288(of)]TJ/F30 9.9626 Tf 105.44 0 Td [(bndel)]TJ/F8 9.9626 Tf 29.024 0 Td [(will)-288(b)-28(e)-288(exactly)-288(e)-1(qu)1(al)-289(to)-288(the)-288(n)28(um)27(b)-27(er)-289(of)-288(b)-28(oun)1(d-)]TJ -121.734 -11.956 Td [(ary)-333(elemen)27(ts.)]TJ 0 g 0 G - 141.968 -208.758 Td [(84)]TJ + 141.968 -208.758 Td [(82)]TJ 0 g 0 G ET endstream endobj -1207 0 obj << +1190 0 obj << /Type /Page -/Contents 1208 0 R -/Resources 1206 0 R +/Contents 1191 0 R +/Resources 1189 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1180 0 R -/Annots [ 1205 0 R ] +/Parent 1175 0 R +/Annots [ 1188 0 R ] >> endobj -1205 0 obj << +1188 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [345.53 574.94 412.588 586.065] /Subtype /Link /A << /S /GoTo /D (descdata) >> >> endobj -1209 0 obj << -/D [1207 0 R /XYZ 150.705 740.998 null] +1192 0 obj << +/D [1190 0 R /XYZ 150.705 740.998 null] >> endobj -274 0 obj << -/D [1207 0 R /XYZ 150.705 697.37 null] +270 0 obj << +/D [1190 0 R /XYZ 150.705 697.37 null] >> endobj -1210 0 obj << -/D [1207 0 R /XYZ 150.705 370.928 null] +1193 0 obj << +/D [1190 0 R /XYZ 150.705 370.928 null] >> endobj -1211 0 obj << -/D [1207 0 R /XYZ 150.705 327.092 null] +1194 0 obj << +/D [1190 0 R /XYZ 150.705 327.092 null] >> endobj -1206 0 obj << -/Font << /F16 439 0 R /F30 617 0 R /F27 441 0 R /F8 442 0 R >> +1189 0 obj << +/Font << /F16 435 0 R /F30 616 0 R /F27 437 0 R /F8 438 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1215 0 obj << +1198 0 obj << /Length 3654 >> stream @@ -13620,43 +13268,43 @@ BT 0 g 0 G [-500(Otherwise)-284(the)-284(size)-283(of)]TJ/F30 9.9626 Tf 105.261 0 Td [(ovrel)]TJ/F8 9.9626 Tf 28.979 0 Td [(will)-284(b)-27(e)-284(exactly)-284(equal)-284(to)-284(th)1(e)-284(n)28(um)27(b)-27(er)-284(of)-284(o)28(v)28(erlap)]TJ -121.51 -11.955 Td [(elemen)28(ts.)]TJ 0 g 0 G - 141.968 -220.714 Td [(85)]TJ + 141.968 -220.714 Td [(83)]TJ 0 g 0 G ET endstream endobj -1214 0 obj << +1197 0 obj << /Type /Page -/Contents 1215 0 R -/Resources 1213 0 R +/Contents 1198 0 R +/Resources 1196 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1219 0 R -/Annots [ 1212 0 R ] +/Parent 1175 0 R +/Annots [ 1195 0 R ] >> endobj -1212 0 obj << +1195 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [294.721 574.94 361.779 586.065] /Subtype /Link /A << /S /GoTo /D (descdata) >> >> endobj -1216 0 obj << -/D [1214 0 R /XYZ 99.895 740.998 null] +1199 0 obj << +/D [1197 0 R /XYZ 99.895 740.998 null] >> endobj -278 0 obj << -/D [1214 0 R /XYZ 99.895 697.37 null] +274 0 obj << +/D [1197 0 R /XYZ 99.895 697.37 null] >> endobj -1217 0 obj << -/D [1214 0 R /XYZ 99.895 370.928 null] +1200 0 obj << +/D [1197 0 R /XYZ 99.895 370.928 null] >> endobj -1218 0 obj << -/D [1214 0 R /XYZ 99.895 339.047 null] +1201 0 obj << +/D [1197 0 R /XYZ 99.895 339.047 null] >> endobj -1213 0 obj << -/Font << /F16 439 0 R /F30 617 0 R /F27 441 0 R /F8 442 0 R >> +1196 0 obj << +/Font << /F16 435 0 R /F30 616 0 R /F27 437 0 R /F8 438 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1223 0 obj << +1205 0 obj << /Length 5790 >> stream @@ -13738,37 +13386,37 @@ BT 0 g 0 G /F8 9.9626 Tf 13.733 0 Td [(the)-333(ro)27(w)-333(indices.)]TJ 11.173 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 27.951 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf 23.073 0 Td [(.)]TJ -51.024 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.184 0 Td [(required)]TJ/F8 9.9626 Tf 41.898 0 Td [(.)]TJ -67.082 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(inout)]TJ/F8 9.9626 Tf 26.096 0 Td [(.)]TJ -59.582 -11.956 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(in)28(teger)-333(arra)27(y)-333(with)-333(the)]TJ/F30 9.9626 Tf 170.611 0 Td [(ALLOCATABLE)]TJ/F8 9.9626 Tf 60.854 0 Td [(attribute.)]TJ 0 g 0 G - -89.497 -29.887 Td [(86)]TJ + -89.497 -29.887 Td [(84)]TJ 0 g 0 G ET endstream endobj -1222 0 obj << +1204 0 obj << /Type /Page -/Contents 1223 0 R -/Resources 1221 0 R +/Contents 1205 0 R +/Resources 1203 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1219 0 R -/Annots [ 1220 0 R ] +/Parent 1175 0 R +/Annots [ 1202 0 R ] >> endobj -1220 0 obj << +1202 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [345.53 492.904 417.818 504.029] /Subtype /Link /A << /S /GoTo /D (spdata) >> >> endobj -1224 0 obj << -/D [1222 0 R /XYZ 150.705 740.998 null] +1206 0 obj << +/D [1204 0 R /XYZ 150.705 740.998 null] >> endobj -282 0 obj << -/D [1222 0 R /XYZ 150.705 696.587 null] +278 0 obj << +/D [1204 0 R /XYZ 150.705 696.587 null] >> endobj -1221 0 obj << -/Font << /F16 439 0 R /F30 617 0 R /F27 441 0 R /F8 442 0 R /F11 603 0 R >> +1203 0 obj << +/Font << /F16 435 0 R /F30 616 0 R /F27 437 0 R /F8 438 0 R /F11 599 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1227 0 obj << +1209 0 obj << /Length 3701 >> stream @@ -13800,35 +13448,35 @@ BT 0 g 0 G [-500(The)-253(ro)28(w)-252(and)-253(column)-253(ind)1(ic)-1(es)-252(are)-253(returned)-252(in)-253(the)-253(lo)-27(cal)-253(n)28(um)28(b)-28(ering)-253(sc)28(heme;)-280(if)]TJ 12.73 -11.955 Td [(the)-222(global)-222(n)27(um)28(b)-28(erin)1(g)-223(is)-222(desired,)-244(the)-223(user)-222(ma)28(y)-222(emplo)27(y)-222(the)]TJ/F30 9.9626 Tf 243.172 0 Td [(psb_loc_to_glob)]TJ/F8 9.9626 Tf -243.172 -11.955 Td [(routine)-333(on)-334(th)1(e)-334(output.)]TJ 0 g 0 G - 141.968 -290.909 Td [(87)]TJ + 141.968 -290.909 Td [(85)]TJ 0 g 0 G ET endstream endobj -1226 0 obj << +1208 0 obj << /Type /Page -/Contents 1227 0 R -/Resources 1225 0 R +/Contents 1209 0 R +/Resources 1207 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1219 0 R +/Parent 1214 0 R >> endobj -1228 0 obj << -/D [1226 0 R /XYZ 99.895 740.998 null] +1210 0 obj << +/D [1208 0 R /XYZ 99.895 740.998 null] >> endobj -1229 0 obj << -/D [1226 0 R /XYZ 99.895 496.913 null] +1211 0 obj << +/D [1208 0 R /XYZ 99.895 496.913 null] >> endobj -1230 0 obj << -/D [1226 0 R /XYZ 99.895 439.185 null] +1212 0 obj << +/D [1208 0 R /XYZ 99.895 439.185 null] >> endobj -1231 0 obj << -/D [1226 0 R /XYZ 99.895 418.983 null] +1213 0 obj << +/D [1208 0 R /XYZ 99.895 418.983 null] >> endobj -1225 0 obj << -/Font << /F27 441 0 R /F8 442 0 R /F30 617 0 R /F16 439 0 R /F11 603 0 R >> +1207 0 obj << +/Font << /F27 437 0 R /F8 438 0 R /F30 616 0 R /F16 435 0 R /F11 599 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1237 0 obj << +1220 0 obj << /Length 4125 >> stream @@ -13934,51 +13582,51 @@ BT 0 g 0 G /F8 9.9626 Tf 78.386 0 Td [(The)-332(memory)-331(o)-28(ccupation)-332(of)-331(the)-332(ob)-55(jec)-1(t)-331(sp)-28(eci\014ed)-332(in)-331(the)-332(calling)]TJ -53.48 -11.955 Td [(sequence,)-333(in)-334(b)28(ytes.)]TJ 0 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(Returned)-333(as:)-445(an)]TJ/F30 9.9626 Tf 73.835 0 Td [(integer\050psb_long_int_k_\051)]TJ/F8 9.9626 Tf 128.849 0 Td [(n)28(um)28(b)-28(er.)]TJ 0 g 0 G - -60.716 -242.632 Td [(88)]TJ + -60.716 -242.632 Td [(86)]TJ 0 g 0 G ET endstream endobj -1236 0 obj << +1219 0 obj << /Type /Page -/Contents 1237 0 R -/Resources 1235 0 R +/Contents 1220 0 R +/Resources 1218 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1219 0 R -/Annots [ 1232 0 R 1233 0 R 1234 0 R ] +/Parent 1214 0 R +/Annots [ 1215 0 R 1216 0 R 1217 0 R ] >> endobj -1232 0 obj << +1215 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [345.53 529.112 417.818 540.237] /Subtype /Link /A << /S /GoTo /D (spdata) >> >> endobj -1233 0 obj << +1216 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [345.53 461.366 412.588 472.491] /Subtype /Link /A << /S /GoTo /D (descdata) >> >> endobj -1234 0 obj << +1217 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [372.153 405.575 439.211 416.7] /Subtype /Link /A << /S /GoTo /D (precdata) >> >> endobj -1238 0 obj << -/D [1236 0 R /XYZ 150.705 740.998 null] +1221 0 obj << +/D [1219 0 R /XYZ 150.705 740.998 null] >> endobj -286 0 obj << -/D [1236 0 R /XYZ 150.705 697.37 null] +282 0 obj << +/D [1219 0 R /XYZ 150.705 697.37 null] >> endobj -1235 0 obj << -/Font << /F16 439 0 R /F8 442 0 R /F30 617 0 R /F27 441 0 R /F11 603 0 R >> +1218 0 obj << +/Font << /F16 435 0 R /F8 438 0 R /F30 616 0 R /F27 437 0 R /F11 599 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1241 0 obj << +1224 0 obj << /Length 5754 >> stream @@ -14053,29 +13701,29 @@ BT 0 g 0 G /F8 9.9626 Tf 14.211 0 Td [(A)-333(v)27(ector)-333(of)-333(indices.)]TJ 10.696 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(Optional)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(An)-332(in)27(teger)-332(arra)28(y)-333(of)-332(rank)-333(1,)-332(whose)-333(en)28(tries)-332(are)-333(mo)28(v)28(ed)-333(to)-332(the)-333(same)-332(p)-28(osition)]TJ 0 -11.955 Td [(as)-333(the)-334(corresp)-28(on)1(ding)-334(en)28(tries)-333(in)]TJ/F11 9.9626 Tf 136.959 0 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(.)]TJ 0 g 0 G - -0.685 -43.727 Td [(89)]TJ + -0.685 -43.727 Td [(87)]TJ 0 g 0 G ET endstream endobj -1240 0 obj << +1223 0 obj << /Type /Page -/Contents 1241 0 R -/Resources 1239 0 R +/Contents 1224 0 R +/Resources 1222 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1219 0 R +/Parent 1214 0 R >> endobj -1242 0 obj << -/D [1240 0 R /XYZ 99.895 740.998 null] +1225 0 obj << +/D [1223 0 R /XYZ 99.895 740.998 null] >> endobj -290 0 obj << -/D [1240 0 R /XYZ 99.895 696.813 null] +286 0 obj << +/D [1223 0 R /XYZ 99.895 696.813 null] >> endobj -1239 0 obj << -/Font << /F16 439 0 R /F30 617 0 R /F8 442 0 R /F11 603 0 R /F27 441 0 R >> +1222 0 obj << +/Font << /F16 435 0 R /F30 616 0 R /F8 438 0 R /F11 599 0 R /F27 437 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1245 0 obj << +1228 0 obj << /Length 7020 >> stream @@ -14176,53 +13824,53 @@ BT 0 g 0 G [-500(The)-358(merge-sort)-358(algorithm)-357(is)-358(implemen)28(ted)-358(to)-358(tak)28(e)-358(adv)56(an)28(tage)-358(of)-358(sub-)]TJ 17.158 -11.955 Td [(sequences)-401(that)-400(ma)28(y)-401(b)-28(e)-400(already)-401(in)-400(the)-401(desired)-400(ordering)-400(prior)-401(to)-400(the)]TJ 0 -11.956 Td [(subroutine)-246(call;)-275(this)-246(situation)-246(is)-247(relativ)28(ely)-246(common)-246(when)-246(dealing)-246(with)]TJ 0 -11.955 Td [(groups)-258(of)-257(indices)-258(of)-258(sparse)-258(matrix)-257(en)28(tries,)-273(th)28(us)-258(merge-sort)-258(is)-258(often)-257(the)]TJ 0 -11.955 Td [(preferred)-318(c)27(hoice)-318(when)-319(a)-318(sorting)-319(is)-318(needed)-319(b)28(y)-319(oth)1(e)-1(r)-318(routines)-318(in)-319(the)-318(li-)]TJ 0 -11.955 Td [(brary)83(.)]TJ 0 g 0 G - 120.05 -193.275 Td [(90)]TJ + 120.05 -193.275 Td [(88)]TJ 0 g 0 G ET endstream endobj -1244 0 obj << +1227 0 obj << /Type /Page -/Contents 1245 0 R -/Resources 1243 0 R +/Contents 1228 0 R +/Resources 1226 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1219 0 R +/Parent 1214 0 R >> endobj -1246 0 obj << -/D [1244 0 R /XYZ 150.705 740.998 null] +1229 0 obj << +/D [1227 0 R /XYZ 150.705 740.998 null] >> endobj -1247 0 obj << -/D [1244 0 R /XYZ 150.705 702.144 null] +1230 0 obj << +/D [1227 0 R /XYZ 150.705 702.144 null] >> endobj -1248 0 obj << -/D [1244 0 R /XYZ 150.705 668.326 null] +1231 0 obj << +/D [1227 0 R /XYZ 150.705 668.326 null] >> endobj -1249 0 obj << -/D [1244 0 R /XYZ 150.705 624.491 null] +1232 0 obj << +/D [1227 0 R /XYZ 150.705 624.491 null] >> endobj -1250 0 obj << -/D [1244 0 R /XYZ 150.705 556.745 null] +1233 0 obj << +/D [1227 0 R /XYZ 150.705 556.745 null] >> endobj -1251 0 obj << -/D [1244 0 R /XYZ 150.705 500.954 null] +1234 0 obj << +/D [1227 0 R /XYZ 150.705 500.954 null] >> endobj -1252 0 obj << -/D [1244 0 R /XYZ 150.705 468.52 null] +1235 0 obj << +/D [1227 0 R /XYZ 150.705 468.52 null] >> endobj -1253 0 obj << -/D [1244 0 R /XYZ 150.705 425.182 null] +1236 0 obj << +/D [1227 0 R /XYZ 150.705 425.182 null] >> endobj -1254 0 obj << -/D [1244 0 R /XYZ 150.705 383.395 null] +1237 0 obj << +/D [1227 0 R /XYZ 150.705 383.395 null] >> endobj -1255 0 obj << -/D [1244 0 R /XYZ 150.705 355.499 null] +1238 0 obj << +/D [1227 0 R /XYZ 150.705 355.499 null] >> endobj -1243 0 obj << -/Font << /F16 439 0 R /F8 442 0 R /F11 603 0 R /F14 620 0 R /F7 618 0 R >> +1226 0 obj << +/Font << /F16 435 0 R /F8 438 0 R /F11 599 0 R /F14 619 0 R /F7 617 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1258 0 obj << +1241 0 obj << /Length 181 >> stream @@ -14231,29 +13879,29 @@ stream BT /F16 14.3462 Tf 99.895 706.129 Td [(7)-1125(P)31(arallel)-375(en)31(vironmen)32(t)-375(routines)]TJ 0 g 0 G -/F8 9.9626 Tf 166.875 -615.691 Td [(91)]TJ +/F8 9.9626 Tf 166.875 -615.691 Td [(89)]TJ 0 g 0 G ET endstream endobj -1257 0 obj << +1240 0 obj << /Type /Page -/Contents 1258 0 R -/Resources 1256 0 R +/Contents 1241 0 R +/Resources 1239 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1260 0 R +/Parent 1214 0 R >> endobj -1259 0 obj << -/D [1257 0 R /XYZ 99.895 740.998 null] +1242 0 obj << +/D [1240 0 R /XYZ 99.895 740.998 null] >> endobj -294 0 obj << -/D [1257 0 R /XYZ 99.895 716.092 null] +290 0 obj << +/D [1240 0 R /XYZ 99.895 716.092 null] >> endobj -1256 0 obj << -/Font << /F16 439 0 R /F8 442 0 R >> +1239 0 obj << +/Font << /F16 435 0 R /F8 438 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1263 0 obj << +1245 0 obj << /Length 5573 >> stream @@ -14320,35 +13968,35 @@ BT 0 g 0 G [-500(It)-262(is)-262(an)-262(error)-262(to)-262(sp)-28(ecify)-262(a)-262(v)56(alue)-262(for)]TJ/F11 9.9626 Tf 159.87 0 Td [(np)]TJ/F8 9.9626 Tf 13.602 0 Td [(greater)-262(than)-262(the)-262(n)28(um)28(b)-28(er)-262(of)-262(pro)-28(cesses)]TJ -160.742 -11.955 Td [(a)28(v)55(ailable)-333(in)-333(the)-334(und)1(e)-1(r)1(lying)-334(base)-333(parallel)-333(en)27(viron)1(m)-1(en)28(t.)]TJ 0 g 0 G - 141.968 -97.177 Td [(92)]TJ + 141.968 -97.177 Td [(90)]TJ 0 g 0 G ET endstream endobj -1262 0 obj << +1244 0 obj << /Type /Page -/Contents 1263 0 R -/Resources 1261 0 R +/Contents 1245 0 R +/Resources 1243 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1260 0 R +/Parent 1214 0 R >> endobj -1264 0 obj << -/D [1262 0 R /XYZ 150.705 740.998 null] +1246 0 obj << +/D [1244 0 R /XYZ 150.705 740.998 null] >> endobj -298 0 obj << -/D [1262 0 R /XYZ 150.705 697.37 null] +294 0 obj << +/D [1244 0 R /XYZ 150.705 697.37 null] >> endobj -1265 0 obj << -/D [1262 0 R /XYZ 150.705 235.436 null] +1247 0 obj << +/D [1244 0 R /XYZ 150.705 235.436 null] >> endobj -1266 0 obj << -/D [1262 0 R /XYZ 150.705 213.573 null] +1248 0 obj << +/D [1244 0 R /XYZ 150.705 213.573 null] >> endobj -1261 0 obj << -/Font << /F16 439 0 R /F30 617 0 R /F8 442 0 R /F27 441 0 R /F11 603 0 R /F14 620 0 R >> +1243 0 obj << +/Font << /F16 435 0 R /F30 616 0 R /F8 438 0 R /F27 437 0 R /F11 599 0 R /F14 619 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1269 0 obj << +1251 0 obj << /Length 4646 >> stream @@ -14397,35 +14045,35 @@ BT 0 g 0 G [-500(If)-432(the)-433(user)-432(has)-433(requested)-432(on)]TJ/F30 9.9626 Tf 143.13 0 Td [(psb_init)]TJ/F8 9.9626 Tf 46.151 0 Td [(a)-432(n)27(um)28(b)-28(er)-432(of)-432(pro)-28(cesses)-433(less)-432(than)]TJ -176.551 -11.955 Td [(the)-417(total)-416(a)28(v)55(ailable)-416(in)-417(the)-416(parallel)-417(execution)-416(en)28(vironmen)28(t,)-438(the)-416(remaining)]TJ 0 -11.955 Td [(pro)-28(cesses)-359(will)-359(ha)28(v)28(e)-359(on)-359(return)]TJ/F11 9.9626 Tf 130.486 0 Td [(iam)]TJ/F8 9.9626 Tf 20.639 0 Td [(=)]TJ/F14 9.9626 Tf 10.941 0 Td [(\000)]TJ/F8 9.9626 Tf 7.749 0 Td [(1;)-372(the)-359(only)-359(call)-359(in)28(v)28(olving)]TJ/F30 9.9626 Tf 112.377 0 Td [(icontxt)]TJ/F8 9.9626 Tf -282.192 -11.956 Td [(that)-333(an)28(y)-334(suc)28(h)-333(pro)-28(cess)-334(ma)28(y)-333(execute)-334(is)-333(to)]TJ/F30 9.9626 Tf 177.086 0 Td [(psb_exit)]TJ/F8 9.9626 Tf 41.843 0 Td [(.)]TJ 0 g 0 G - -76.961 -174.885 Td [(93)]TJ + -76.961 -174.885 Td [(91)]TJ 0 g 0 G ET endstream endobj -1268 0 obj << +1250 0 obj << /Type /Page -/Contents 1269 0 R -/Resources 1267 0 R +/Contents 1251 0 R +/Resources 1249 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1260 0 R +/Parent 1255 0 R >> endobj -1270 0 obj << -/D [1268 0 R /XYZ 99.895 740.998 null] +1252 0 obj << +/D [1250 0 R /XYZ 99.895 740.998 null] >> endobj -302 0 obj << -/D [1268 0 R /XYZ 99.895 685.747 null] +298 0 obj << +/D [1250 0 R /XYZ 99.895 685.747 null] >> endobj -1271 0 obj << -/D [1268 0 R /XYZ 99.895 349.01 null] +1253 0 obj << +/D [1250 0 R /XYZ 99.895 349.01 null] >> endobj -1272 0 obj << -/D [1268 0 R /XYZ 99.895 315.192 null] +1254 0 obj << +/D [1250 0 R /XYZ 99.895 315.192 null] >> endobj -1267 0 obj << -/Font << /F16 439 0 R /F30 617 0 R /F8 442 0 R /F27 441 0 R /F14 620 0 R /F11 603 0 R >> +1249 0 obj << +/Font << /F16 435 0 R /F30 616 0 R /F8 438 0 R /F27 437 0 R /F14 619 0 R /F11 599 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1275 0 obj << +1258 0 obj << /Length 4354 >> stream @@ -14471,38 +14119,38 @@ BT 0 g 0 G [-500(If)-391(the)-390(user)-391(whishes)-391(to)-390(use)-391(m)28(ultiple)-391(comm)28(unication)-391(con)28(texts)-391(in)-390(the)-391(same)]TJ 12.73 -11.955 Td [(program,)-485(or)-455(to)-455(en)28(ter)-455(and)-454(exit)-455(m)27(u)1(ltiple)-455(times)-455(in)28(to)-455(the)-455(parallel)-455(en)28(viron-)]TJ 0 -11.955 Td [(men)28(t,)-494(this)-462(routine)-462(ma)28(y)-462(b)-28(e)-462(called)-462(to)-462(selectiv)28(ely)-462(close)-462(the)-462(con)27(texts)-462(with)]TJ/F30 9.9626 Tf 0 -11.955 Td [(close=.false.)]TJ/F8 9.9626 Tf 67.994 0 Td [(,)-244(while)-223(on)-222(the)-222(last)-222(call)-223(it)-222(should)-222(b)-28(e)-222(called)-222(with)]TJ/F30 9.9626 Tf 194.327 0 Td [(close=.true.)]TJ/F8 9.9626 Tf -262.321 -11.955 Td [(to)-333(sh)27(u)1(tdo)27(wn)-333(in)-333(a)-334(clean)-333(w)28(a)28(y)-334(the)-333(en)28(tire)-334(parallel)-333(en)28(vironmen)28(t.)]TJ 0 g 0 G - 141.967 -212.744 Td [(94)]TJ + 141.967 -212.744 Td [(92)]TJ 0 g 0 G ET endstream endobj -1274 0 obj << +1257 0 obj << /Type /Page -/Contents 1275 0 R -/Resources 1273 0 R +/Contents 1258 0 R +/Resources 1256 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1260 0 R +/Parent 1255 0 R >> endobj -1276 0 obj << -/D [1274 0 R /XYZ 150.705 740.998 null] +1259 0 obj << +/D [1257 0 R /XYZ 150.705 740.998 null] >> endobj -306 0 obj << -/D [1274 0 R /XYZ 150.705 697.37 null] +302 0 obj << +/D [1257 0 R /XYZ 150.705 697.37 null] >> endobj -1277 0 obj << -/D [1274 0 R /XYZ 150.705 442.659 null] +1260 0 obj << +/D [1257 0 R /XYZ 150.705 442.659 null] >> endobj -1278 0 obj << -/D [1274 0 R /XYZ 150.705 396.886 null] +1261 0 obj << +/D [1257 0 R /XYZ 150.705 396.886 null] >> endobj -1279 0 obj << -/D [1274 0 R /XYZ 150.705 365.005 null] +1262 0 obj << +/D [1257 0 R /XYZ 150.705 365.005 null] >> endobj -1273 0 obj << -/Font << /F16 439 0 R /F30 617 0 R /F8 442 0 R /F27 441 0 R /F11 603 0 R /F14 620 0 R >> +1256 0 obj << +/Font << /F16 435 0 R /F30 616 0 R /F8 438 0 R /F27 437 0 R /F11 599 0 R /F14 619 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1282 0 obj << +1265 0 obj << /Length 2160 >> stream @@ -14546,29 +14194,29 @@ BT 0 g 0 G /F8 9.9626 Tf 38.08 0 Td [(The)-377(MPI)-378(comm)28(unicator)-377(as)-1(so)-27(ciated)-378(with)-377(the)-378(PSBLAS)-377(virtual)-377(parallel)]TJ -13.173 -11.955 Td [(mac)28(hine.)]TJ 0 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(global)]TJ/F8 9.9626 Tf 29.756 0 Td [(.)]TJ -62.135 -11.956 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf 41.898 0 Td [(.)]TJ -71.509 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(out)]TJ/F8 9.9626 Tf 16.549 0 Td [(.)]TJ 0 g 0 G - 91.933 -366.168 Td [(95)]TJ + 91.933 -366.168 Td [(93)]TJ 0 g 0 G ET endstream endobj -1281 0 obj << +1264 0 obj << /Type /Page -/Contents 1282 0 R -/Resources 1280 0 R +/Contents 1265 0 R +/Resources 1263 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1260 0 R +/Parent 1255 0 R >> endobj -1283 0 obj << -/D [1281 0 R /XYZ 99.895 740.998 null] +1266 0 obj << +/D [1264 0 R /XYZ 99.895 740.998 null] >> endobj -310 0 obj << -/D [1281 0 R /XYZ 99.895 697.37 null] +306 0 obj << +/D [1264 0 R /XYZ 99.895 697.37 null] >> endobj -1280 0 obj << -/Font << /F16 439 0 R /F30 617 0 R /F8 442 0 R /F27 441 0 R >> +1263 0 obj << +/Font << /F16 435 0 R /F30 616 0 R /F8 438 0 R /F27 437 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1286 0 obj << +1269 0 obj << /Length 3024 >> stream @@ -14616,29 +14264,29 @@ BT 0 g 0 G /F8 9.9626 Tf 27.681 0 Td [(The)-333(MPI)-334(rank)-333(asso)-28(ciated)-333(with)-333(the)-334(PSBLAS)-333(pro)-28(cess)]TJ/F11 9.9626 Tf 230.248 0 Td [(id)]TJ/F8 9.9626 Tf 8.617 0 Td [(.)]TJ -241.639 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.378 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf 23.073 0 Td [(.)]TJ -55.451 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf 41.898 0 Td [(.)]TJ -71.509 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.485 0 Td [(out)]TJ/F8 9.9626 Tf 16.549 0 Td [(.)]TJ 0 g 0 G - 91.933 -322.333 Td [(96)]TJ + 91.933 -322.333 Td [(94)]TJ 0 g 0 G ET endstream endobj -1285 0 obj << +1268 0 obj << /Type /Page -/Contents 1286 0 R -/Resources 1284 0 R +/Contents 1269 0 R +/Resources 1267 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1260 0 R +/Parent 1255 0 R >> endobj -1287 0 obj << -/D [1285 0 R /XYZ 150.705 740.998 null] +1270 0 obj << +/D [1268 0 R /XYZ 150.705 740.998 null] >> endobj -314 0 obj << -/D [1285 0 R /XYZ 150.705 697.37 null] +310 0 obj << +/D [1268 0 R /XYZ 150.705 697.37 null] >> endobj -1284 0 obj << -/Font << /F16 439 0 R /F30 617 0 R /F8 442 0 R /F11 603 0 R /F27 441 0 R /F14 620 0 R >> +1267 0 obj << +/Font << /F16 435 0 R /F30 616 0 R /F8 438 0 R /F11 599 0 R /F27 437 0 R /F14 619 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1290 0 obj << +1273 0 obj << /Length 1180 >> stream @@ -14668,29 +14316,29 @@ BT 0 g 0 G /F8 9.9626 Tf 78.387 0 Td [(the)-333(elapsed)-334(time)-333(in)-333(seconds.)]TJ -53.48 -11.955 Td [(Returned)-333(as:)-445(a)]TJ/F30 9.9626 Tf 68.3 0 Td [(real\050psb_dpk_\051)]TJ/F8 9.9626 Tf 76.545 0 Td [(v)56(ariable.)]TJ 0 g 0 G - -2.877 -491.698 Td [(97)]TJ + -2.877 -491.698 Td [(95)]TJ 0 g 0 G ET endstream endobj -1289 0 obj << +1272 0 obj << /Type /Page -/Contents 1290 0 R -/Resources 1288 0 R +/Contents 1273 0 R +/Resources 1271 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1292 0 R +/Parent 1255 0 R >> endobj -1291 0 obj << -/D [1289 0 R /XYZ 99.895 740.998 null] +1274 0 obj << +/D [1272 0 R /XYZ 99.895 740.998 null] >> endobj -318 0 obj << -/D [1289 0 R /XYZ 99.895 697.37 null] +314 0 obj << +/D [1272 0 R /XYZ 99.895 697.37 null] >> endobj -1288 0 obj << -/Font << /F16 439 0 R /F30 617 0 R /F8 442 0 R /F27 441 0 R >> +1271 0 obj << +/Font << /F16 435 0 R /F30 616 0 R /F8 438 0 R /F27 437 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1295 0 obj << +1277 0 obj << /Length 1473 >> stream @@ -14720,29 +14368,29 @@ BT 0 g 0 G /F8 9.9626 Tf 39.989 0 Td [(the)-333(comm)27(unication)-333(con)28(text)-333(iden)27(tifyi)1(ng)-334(the)-333(virtual)-333(parallel)-334(mac)28(hine.)]TJ -15.082 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.378 0 Td [(global)]TJ/F8 9.9626 Tf 29.756 0 Td [(.)]TJ -62.134 -11.956 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf 41.898 0 Td [(.)]TJ -71.509 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.485 0 Td [(in)]TJ/F8 9.9626 Tf 9.548 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-444(an)-334(in)28(teger)-333(v)55(ariable.)]TJ 0 g 0 G - 141.967 -455.832 Td [(98)]TJ + 141.967 -455.832 Td [(96)]TJ 0 g 0 G ET endstream endobj -1294 0 obj << +1276 0 obj << /Type /Page -/Contents 1295 0 R -/Resources 1293 0 R +/Contents 1277 0 R +/Resources 1275 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1292 0 R +/Parent 1255 0 R >> endobj -1296 0 obj << -/D [1294 0 R /XYZ 150.705 740.998 null] +1278 0 obj << +/D [1276 0 R /XYZ 150.705 740.998 null] >> endobj -322 0 obj << -/D [1294 0 R /XYZ 150.705 697.37 null] +318 0 obj << +/D [1276 0 R /XYZ 150.705 697.37 null] >> endobj -1293 0 obj << -/Font << /F16 439 0 R /F30 617 0 R /F8 442 0 R /F27 441 0 R >> +1275 0 obj << +/Font << /F16 435 0 R /F30 616 0 R /F8 438 0 R /F27 437 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1299 0 obj << +1281 0 obj << /Length 1359 >> stream @@ -14772,30 +14420,30 @@ BT 0 g 0 G /F8 9.9626 Tf 39.989 0 Td [(the)-333(comm)27(unication)-333(con)28(text)-333(iden)27(tifyin)1(g)-334(the)-333(virtual)-333(parallel)-334(mac)28(hine.)]TJ -15.082 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(global)]TJ/F8 9.9626 Tf 29.756 0 Td [(.)]TJ -62.135 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf 41.898 0 Td [(.)]TJ -71.509 -11.956 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(in)28(teger)-333(v)55(ariable.)]TJ 0 g 0 G - 141.968 -467.787 Td [(99)]TJ + 141.968 -467.787 Td [(97)]TJ 0 g 0 G ET endstream endobj -1298 0 obj << +1280 0 obj << /Type /Page -/Contents 1299 0 R -/Resources 1297 0 R +/Contents 1281 0 R +/Resources 1279 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1292 0 R +/Parent 1283 0 R >> endobj -1300 0 obj << -/D [1298 0 R /XYZ 99.895 740.998 null] +1282 0 obj << +/D [1280 0 R /XYZ 99.895 740.998 null] >> endobj -326 0 obj << -/D [1298 0 R /XYZ 99.895 697.37 null] +322 0 obj << +/D [1280 0 R /XYZ 99.895 697.37 null] >> endobj -1297 0 obj << -/Font << /F16 439 0 R /F30 617 0 R /F8 442 0 R /F27 441 0 R >> +1279 0 obj << +/Font << /F16 435 0 R /F30 616 0 R /F8 438 0 R /F27 437 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1303 0 obj << -/Length 4533 +1286 0 obj << +/Length 4532 >> stream 0 g 0 G @@ -14839,29 +14487,29 @@ BT 0 g 0 G /F8 9.9626 Tf 21.371 0 Td [(On)-333(pro)-28(cesses)-334(other)-333(than)-333(ro)-28(ot,)-333(the)-334(dat)1(a)-334(to)-333(b)-28(e)-333(broadcast.)]TJ 3.536 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.378 0 Td [(global)]TJ/F8 9.9626 Tf 29.757 0 Td [(.)]TJ -62.135 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf 41.898 0 Td [(.)]TJ -71.509 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.485 0 Td [(inout)]TJ/F8 9.9626 Tf 26.097 0 Td [(.)]TJ -59.582 -11.955 Td [(Sp)-28(eci\014ed)-339(as:)-458(an)-339(in)28(tege)-1(r,)-341(real)-339(or)-340(complex)-340(v)56(ariable,)-342(whic)28(h)-339(m)-1(a)28(y)-339(b)-28(e)-340(a)-340(scalar,)]TJ 0 -11.955 Td [(or)-346(a)-346(rank)-347(1)-346(or)-346(2)-346(arra)28(y)83(,)-349(or)-347(a)-346(c)28(haracter)-346(or)-346(logical)-347(scalar.)-829(T)28(yp)-28(e,)-349(kind,)-350(rank)]TJ 0 -11.956 Td [(and)-333(size)-334(m)28(ust)-333(agree)-334(on)-333(all)-333(pro)-28(cesses.)]TJ 0 g 0 G - 139.477 -170.9 Td [(100)]TJ + 141.967 -170.9 Td [(98)]TJ 0 g 0 G ET endstream endobj -1302 0 obj << +1285 0 obj << /Type /Page -/Contents 1303 0 R -/Resources 1301 0 R +/Contents 1286 0 R +/Resources 1284 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1292 0 R +/Parent 1283 0 R >> endobj -1304 0 obj << -/D [1302 0 R /XYZ 150.705 740.998 null] +1287 0 obj << +/D [1285 0 R /XYZ 150.705 740.998 null] >> endobj -330 0 obj << -/D [1302 0 R /XYZ 150.705 697.37 null] +326 0 obj << +/D [1285 0 R /XYZ 150.705 697.37 null] >> endobj -1301 0 obj << -/Font << /F16 439 0 R /F30 617 0 R /F8 442 0 R /F27 441 0 R /F11 603 0 R /F14 620 0 R >> +1284 0 obj << +/Font << /F16 435 0 R /F30 616 0 R /F8 438 0 R /F27 437 0 R /F11 599 0 R /F14 619 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1307 0 obj << +1290 0 obj << /Length 5146 >> stream @@ -14914,35 +14562,35 @@ BT 0 g 0 G [-500(The)]TJ/F30 9.9626 Tf 33.209 0 Td [(dat)]TJ/F8 9.9626 Tf 19.012 0 Td [(argumen)28(t)-333(m)-1(a)28(y)-333(also)-333(b)-28(e)-334(a)-333(long)-333(in)28(teger)-334(scalar.)]TJ 0 g 0 G - 99.986 -109.132 Td [(101)]TJ + 102.477 -109.132 Td [(99)]TJ 0 g 0 G ET endstream endobj -1306 0 obj << +1289 0 obj << /Type /Page -/Contents 1307 0 R -/Resources 1305 0 R +/Contents 1290 0 R +/Resources 1288 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1292 0 R +/Parent 1283 0 R >> endobj -1308 0 obj << -/D [1306 0 R /XYZ 99.895 740.998 null] +1291 0 obj << +/D [1289 0 R /XYZ 99.895 740.998 null] >> endobj -334 0 obj << -/D [1306 0 R /XYZ 99.895 697.37 null] +330 0 obj << +/D [1289 0 R /XYZ 99.895 697.37 null] >> endobj -1309 0 obj << -/D [1306 0 R /XYZ 99.895 247.391 null] +1292 0 obj << +/D [1289 0 R /XYZ 99.895 247.391 null] >> endobj -1310 0 obj << -/D [1306 0 R /XYZ 99.895 213.573 null] +1293 0 obj << +/D [1289 0 R /XYZ 99.895 213.573 null] >> endobj -1305 0 obj << -/Font << /F16 439 0 R /F30 617 0 R /F8 442 0 R /F27 441 0 R /F14 620 0 R /F11 603 0 R >> +1288 0 obj << +/Font << /F16 435 0 R /F30 616 0 R /F8 438 0 R /F27 437 0 R /F14 619 0 R /F11 599 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1313 0 obj << +1296 0 obj << /Length 5185 >> stream @@ -14995,35 +14643,35 @@ BT 0 g 0 G [-500(The)]TJ/F30 9.9626 Tf 33.208 0 Td [(dat)]TJ/F8 9.9626 Tf 19.012 0 Td [(argumen)28(t)-334(ma)28(y)-333(also)-334(b)-27(e)-334(a)-333(long)-333(in)28(teger)-334(scalar.)]TJ 0 g 0 G - 99.987 -109.132 Td [(102)]TJ + 99.987 -109.132 Td [(100)]TJ 0 g 0 G ET endstream endobj -1312 0 obj << +1295 0 obj << /Type /Page -/Contents 1313 0 R -/Resources 1311 0 R +/Contents 1296 0 R +/Resources 1294 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1292 0 R +/Parent 1283 0 R >> endobj -1314 0 obj << -/D [1312 0 R /XYZ 150.705 740.998 null] +1297 0 obj << +/D [1295 0 R /XYZ 150.705 740.998 null] >> endobj -338 0 obj << -/D [1312 0 R /XYZ 150.705 697.37 null] +334 0 obj << +/D [1295 0 R /XYZ 150.705 697.37 null] >> endobj -1315 0 obj << -/D [1312 0 R /XYZ 150.705 247.391 null] +1298 0 obj << +/D [1295 0 R /XYZ 150.705 247.391 null] >> endobj -1316 0 obj << -/D [1312 0 R /XYZ 150.705 213.573 null] +1299 0 obj << +/D [1295 0 R /XYZ 150.705 213.573 null] >> endobj -1311 0 obj << -/Font << /F16 439 0 R /F30 617 0 R /F8 442 0 R /F27 441 0 R /F14 620 0 R /F11 603 0 R >> +1294 0 obj << +/Font << /F16 435 0 R /F30 616 0 R /F8 438 0 R /F27 437 0 R /F14 619 0 R /F11 599 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1319 0 obj << +1302 0 obj << /Length 5160 >> stream @@ -15076,35 +14724,35 @@ BT 0 g 0 G [-500(The)]TJ/F30 9.9626 Tf 33.209 0 Td [(dat)]TJ/F8 9.9626 Tf 19.012 0 Td [(argumen)28(t)-333(m)-1(a)28(y)-333(also)-333(b)-28(e)-334(a)-333(long)-333(in)28(teger)-334(scalar.)]TJ 0 g 0 G - 99.986 -109.132 Td [(103)]TJ + 99.986 -109.132 Td [(101)]TJ 0 g 0 G ET endstream endobj -1318 0 obj << +1301 0 obj << /Type /Page -/Contents 1319 0 R -/Resources 1317 0 R +/Contents 1302 0 R +/Resources 1300 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1323 0 R +/Parent 1283 0 R >> endobj -1320 0 obj << -/D [1318 0 R /XYZ 99.895 740.998 null] +1303 0 obj << +/D [1301 0 R /XYZ 99.895 740.998 null] >> endobj -342 0 obj << -/D [1318 0 R /XYZ 99.895 697.37 null] +338 0 obj << +/D [1301 0 R /XYZ 99.895 697.37 null] >> endobj -1321 0 obj << -/D [1318 0 R /XYZ 99.895 247.391 null] +1304 0 obj << +/D [1301 0 R /XYZ 99.895 247.391 null] >> endobj -1322 0 obj << -/D [1318 0 R /XYZ 99.895 213.573 null] +1305 0 obj << +/D [1301 0 R /XYZ 99.895 213.573 null] >> endobj -1317 0 obj << -/Font << /F16 439 0 R /F30 617 0 R /F8 442 0 R /F27 441 0 R /F14 620 0 R /F11 603 0 R >> +1300 0 obj << +/Font << /F16 435 0 R /F30 616 0 R /F8 438 0 R /F27 437 0 R /F14 619 0 R /F11 599 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1326 0 obj << +1308 0 obj << /Length 5277 >> stream @@ -15157,35 +14805,35 @@ BT 0 g 0 G [-500(The)]TJ/F30 9.9626 Tf 33.208 0 Td [(dat)]TJ/F8 9.9626 Tf 19.012 0 Td [(argumen)28(t)-334(ma)28(y)-333(also)-334(b)-27(e)-334(a)-333(long)-333(in)28(teger)-334(scalar.)]TJ 0 g 0 G - 99.987 -97.177 Td [(104)]TJ + 99.987 -97.177 Td [(102)]TJ 0 g 0 G ET endstream endobj -1325 0 obj << +1307 0 obj << /Type /Page -/Contents 1326 0 R -/Resources 1324 0 R +/Contents 1308 0 R +/Resources 1306 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1323 0 R +/Parent 1283 0 R >> endobj -1327 0 obj << -/D [1325 0 R /XYZ 150.705 740.998 null] +1309 0 obj << +/D [1307 0 R /XYZ 150.705 740.998 null] >> endobj -346 0 obj << -/D [1325 0 R /XYZ 150.705 697.37 null] +342 0 obj << +/D [1307 0 R /XYZ 150.705 697.37 null] >> endobj -1328 0 obj << -/D [1325 0 R /XYZ 150.705 235.436 null] +1310 0 obj << +/D [1307 0 R /XYZ 150.705 235.436 null] >> endobj -1329 0 obj << -/D [1325 0 R /XYZ 150.705 201.618 null] +1311 0 obj << +/D [1307 0 R /XYZ 150.705 201.618 null] >> endobj -1324 0 obj << -/Font << /F16 439 0 R /F30 617 0 R /F8 442 0 R /F27 441 0 R /F14 620 0 R /F11 603 0 R >> +1306 0 obj << +/Font << /F16 435 0 R /F30 616 0 R /F8 438 0 R /F27 437 0 R /F14 619 0 R /F11 599 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1332 0 obj << +1314 0 obj << /Length 5248 >> stream @@ -15238,35 +14886,35 @@ BT 0 g 0 G [-500(The)]TJ/F30 9.9626 Tf 33.209 0 Td [(dat)]TJ/F8 9.9626 Tf 19.012 0 Td [(argumen)28(t)-333(m)-1(a)28(y)-333(also)-333(b)-28(e)-334(a)-333(long)-333(in)28(teger)-334(scalar.)]TJ 0 g 0 G - 99.986 -97.177 Td [(105)]TJ + 99.986 -97.177 Td [(103)]TJ 0 g 0 G ET endstream endobj -1331 0 obj << +1313 0 obj << /Type /Page -/Contents 1332 0 R -/Resources 1330 0 R +/Contents 1314 0 R +/Resources 1312 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1323 0 R +/Parent 1318 0 R >> endobj -1333 0 obj << -/D [1331 0 R /XYZ 99.895 740.998 null] +1315 0 obj << +/D [1313 0 R /XYZ 99.895 740.998 null] >> endobj -350 0 obj << -/D [1331 0 R /XYZ 99.895 697.37 null] +346 0 obj << +/D [1313 0 R /XYZ 99.895 697.37 null] >> endobj -1334 0 obj << -/D [1331 0 R /XYZ 99.895 235.436 null] +1316 0 obj << +/D [1313 0 R /XYZ 99.895 235.436 null] >> endobj -1335 0 obj << -/D [1331 0 R /XYZ 99.895 201.618 null] +1317 0 obj << +/D [1313 0 R /XYZ 99.895 201.618 null] >> endobj -1330 0 obj << -/Font << /F16 439 0 R /F30 617 0 R /F8 442 0 R /F27 441 0 R /F14 620 0 R /F11 603 0 R >> +1312 0 obj << +/Font << /F16 435 0 R /F30 616 0 R /F8 438 0 R /F27 437 0 R /F14 619 0 R /F11 599 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1338 0 obj << +1321 0 obj << /Length 5369 >> stream @@ -15316,32 +14964,32 @@ BT 0 g 0 G [-500(This)-402(subroutine)-403(implies)-402(a)-402(sync)27(hronization,)-419(but)-403(on)1(ly)-403(b)-28(et)28(w)28(een)-403(th)1(e)-403(calling)]TJ 12.73 -11.955 Td [(pro)-28(cess)-333(and)-333(the)-334(destination)-333(pro)-28(cess)]TJ/F11 9.9626 Tf 157.52 0 Td [(dst)]TJ/F8 9.9626 Tf 13.453 0 Td [(.)]TJ 0 g 0 G - -31.496 -105.147 Td [(106)]TJ + -31.496 -105.147 Td [(104)]TJ 0 g 0 G ET endstream endobj -1337 0 obj << +1320 0 obj << /Type /Page -/Contents 1338 0 R -/Resources 1336 0 R +/Contents 1321 0 R +/Resources 1319 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1323 0 R +/Parent 1318 0 R >> endobj -1339 0 obj << -/D [1337 0 R /XYZ 150.705 740.998 null] +1322 0 obj << +/D [1320 0 R /XYZ 150.705 740.998 null] >> endobj -354 0 obj << -/D [1337 0 R /XYZ 150.705 697.37 null] +350 0 obj << +/D [1320 0 R /XYZ 150.705 697.37 null] >> endobj -1340 0 obj << -/D [1337 0 R /XYZ 150.705 223.48 null] +1323 0 obj << +/D [1320 0 R /XYZ 150.705 223.48 null] >> endobj -1336 0 obj << -/Font << /F16 439 0 R /F30 617 0 R /F8 442 0 R /F27 441 0 R /F11 603 0 R /F14 620 0 R >> +1319 0 obj << +/Font << /F16 435 0 R /F30 616 0 R /F8 438 0 R /F27 437 0 R /F11 599 0 R /F14 619 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1343 0 obj << +1326 0 obj << /Length 5352 >> stream @@ -15390,33 +15038,33 @@ BT 0 g 0 G [-500(This)-402(subroutine)-403(implies)-402(a)-402(s)-1(yn)1(c)27(hronization,)-419(but)-403(onl)1(y)-403(b)-28(et)28(w)28(een)-403(the)-402(calling)]TJ 12.73 -11.955 Td [(pro)-28(cess)-333(and)-333(the)-334(source)-333(pro)-28(cess)]TJ/F11 9.9626 Tf 136.516 0 Td [(sr)-28(c)]TJ/F8 9.9626 Tf 13.753 0 Td [(.)]TJ 0 g 0 G - -10.792 -105.147 Td [(107)]TJ + -10.792 -105.147 Td [(105)]TJ 0 g 0 G ET endstream endobj -1342 0 obj << +1325 0 obj << /Type /Page -/Contents 1343 0 R -/Resources 1341 0 R +/Contents 1326 0 R +/Resources 1324 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1323 0 R +/Parent 1318 0 R >> endobj -1344 0 obj << -/D [1342 0 R /XYZ 99.895 740.998 null] +1327 0 obj << +/D [1325 0 R /XYZ 99.895 740.998 null] >> endobj -358 0 obj << -/D [1342 0 R /XYZ 99.895 697.37 null] +354 0 obj << +/D [1325 0 R /XYZ 99.895 697.37 null] >> endobj -1345 0 obj << -/D [1342 0 R /XYZ 99.895 223.48 null] +1328 0 obj << +/D [1325 0 R /XYZ 99.895 223.48 null] >> endobj -1341 0 obj << -/Font << /F16 439 0 R /F30 617 0 R /F8 442 0 R /F27 441 0 R /F11 603 0 R /F14 620 0 R >> +1324 0 obj << +/Font << /F16 435 0 R /F30 616 0 R /F8 438 0 R /F27 437 0 R /F11 599 0 R /F14 619 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1350 0 obj << -/Length 6407 +1333 0 obj << +/Length 6406 >> stream 0 g 0 G @@ -15424,53 +15072,53 @@ stream BT /F16 14.3462 Tf 150.705 706.129 Td [(8)-1125(Error)-375(handling)]TJ/F8 9.9626 Tf 0 -21.821 Td [(The)-446(PSBLAS)-446(library)-446(error)-446(handling)-446(p)-28(olicy)-446(has)-446(b)-28(een)-446(completely)-446(rewritten)-446(in)]TJ 0 -11.955 Td [(v)28(ersion)-448(2.0.)-788(The)-448(idea)-448(b)-27(ehind)-448(the)-448(design)-448(of)-447(this)-448(new)-448(error)-448(handling)-447(strategy)]TJ 0 -11.955 Td [(is)-491(to)-492(k)28(eep)-491(error)-491(mes)-1(sages)-491(on)-491(a)-492(stac)28(k)-491(allo)28(wing)-492(th)1(e)-492(user)-491(to)-491(trace)-492(bac)28(k)-491(up)-492(t)1(o)]TJ 0 -11.956 Td [(the)-401(p)-27(oin)28(t)-401(where)-401(the)-400(\014rst)-401(error)-400(mes)-1(sage)-400(has)-401(b)-28(een)-400(generated.)-646(Ev)27(ery)-400(routine)-401(in)]TJ 0 -11.955 Td [(the)-442(P)1(SBLAS-2.0)-442(library)-441(has,)-469(as)-442(l)1(as)-1(t)-441(non-optional)-441(argumen)27(t,)-468(an)-442(in)28(teger)]TJ/F30 9.9626 Tf 322.79 0 Td [(info)]TJ/F8 9.9626 Tf -322.79 -11.955 Td [(v)56(ariable;)-385(whenev)28(er,)-376(inside)-368(the)-367(routine,)-376(an)-368(error)-367(is)-368(detected,)-376(this)-367(v)55(ariab)1(le)-368(is)-368(set)]TJ 0 -11.955 Td [(to)-381(a)-380(v)55(alu)1(e)-381(corresp)-28(onding)-380(to)-381(a)-380(sp)-28(eci\014c)-381(error)-380(co)-28(de.)-586(Then)-381(this)-380(error)-381(co)-28(de)-380(is)-381(also)]TJ 0 -11.955 Td [(pushed)-245(on)-245(the)-245(error)-245(stac)28(k)-245(and)-245(then)-245(either)-245(con)27(tr)1(ol)-245(is)-246(retur)1(ned)-245(to)-246(th)1(e)-246(caller)-245(routin)1(e)]TJ 0 -11.955 Td [(or)-372(the)-371(e)-1(xecution)-371(is)-372(ab)-28(orted,)-381(dep)-28(ending)-372(on)-371(the)-372(users)-372(c)28(hoice.)-560(A)28(t)-372(the)-372(time)-371(when)]TJ 0 -11.956 Td [(the)-364(execution)-363(is)-364(ab)-28(orted,)-371(an)-364(error)-364(message)-363(is)-364(prin)28(ted)-364(on)-364(standard)-363(output)-364(with)]TJ 0 -11.955 Td [(a)-448(lev)28(el)-448(of)-447(v)27(erb)-27(osit)27(y)-447(than)-448(can)-448(b)-27(e)-448(c)28(hosen)-448(b)28(y)-448(the)-448(user.)-787(If)-448(the)-448(execution)-447(is)-448(not)]TJ 0 -11.955 Td [(ab)-28(orted,)-328(then,)-329(the)-328(caller)-327(routine)-328(c)28(hec)28(ks)-328(the)-327(v)55(alue)-327(returned)-328(in)-327(the)]TJ/F30 9.9626 Tf 285.459 0 Td [(info)]TJ/F8 9.9626 Tf 24.185 0 Td [(v)56(ariable)]TJ -309.644 -11.955 Td [(and,)-359(if)-354(not)-354(zero,)-359(an)-353(error)-354(condition)-354(is)-354(raised.)-506(This)-354(pro)-28(cess)-354(con)28(tin)28(ues)-354(on)-354(all)-354(th)1(e)]TJ 0 -11.955 Td [(lev)28(els)-297(of)-296(nes)-1(ted)-296(calls)-297(un)28(til)-297(the)-296(lev)28(el)-297(where)-297(the)-296(user)-297(decides)-297(to)-296(ab)-28(ort)-297(the)-296(program)]TJ 0 -11.955 Td [(execution.)]TJ 14.944 -11.956 Td [(Figure)]TJ 0 0 1 rg 0 0 1 RG - [-353(9)]TJ + [-353(8)]TJ 0 g 0 G [-353(sho)28(ws)-353(the)-353(la)28(y)27(out)-353(of)-352(a)-353(ge)-1(n)1(e)-1(ri)1(c)]TJ/F30 9.9626 Tf 170.683 0 Td [(psb_foo)]TJ/F8 9.9626 Tf 40.129 0 Td [(routine)-353(with)-353(resp)-28(ect)-353(to)-353(the)]TJ -225.756 -11.955 Td [(PSBLAS-2.0)-326(error)-326(hand)1(ling)-326(p)-28(olicy)83(.)-442(It)-325(is)-326(p)-28(ossible)-326(to)-326(see)-326(ho)28(w,)-327(whenev)28(e)-1(r)-325(an)-326(error)]TJ 0 -11.955 Td [(condition)-379(is)-378(detected,)-390(the)]TJ/F30 9.9626 Tf 115.439 0 Td [(info)]TJ/F8 9.9626 Tf 24.694 0 Td [(v)56(ariable)-379(is)-379(set)-379(to)-378(the)-379(corresp)-28(onding)-378(error)-379(co)-28(de)]TJ -140.133 -11.955 Td [(whic)28(h)-376(is,)-387(then,)-386(pushed)-376(on)-376(top)-376(of)-376(the)-376(stac)28(k)-376(b)28(y)-376(means)-376(of)-376(the)]TJ/F30 9.9626 Tf 264.702 0 Td [(psb_errpush)]TJ/F8 9.9626 Tf 57.534 0 Td [(.)-572(An)]TJ -322.236 -11.955 Td [(error)-331(condition)-331(ma)28(y)-331(b)-28(e)-331(directly)-331(detected)-331(inside)-331(a)-331(routine)-331(or)-331(indirectly)-331(c)27(h)1(e)-1(c)28(king)]TJ 0 -11.956 Td [(the)-461(e)-1(rr)1(or)-462(co)-28(de)-461(returned)-462(returned)-461(b)28(y)-462(a)-461(called)-462(routine.)-829(Whenev)28(er)-461(an)-462(error)-461(is)]TJ 0 -11.955 Td [(encoun)28(tered,)-459(after)-434(it)-434(has)-433(b)-28(een)-434(pushed)-434(on)-434(stac)28(k,)-459(the)-434(program)-433(execution)-434(skips)]TJ 0 -11.955 Td [(to)-356(a)-356(p)-27(oin)28(t)-356(where)-356(the)-356(error)-355(condition)-356(is)-356(handled;)-367(the)-355(error)-356(condition)-356(is)-356(han)1(dled)]TJ 0 -11.955 Td [(either)-392(b)28(y)-392(returning)-392(con)28(trol)-392(to)-392(the)-392(caller)-391(routine)-392(or)-392(b)28(y)-392(calling)-392(the)]TJ/F30 9.9626 Tf 291.408 0 Td [(psb\134_error)]TJ/F8 9.9626 Tf -291.408 -11.955 Td [(routine)-478(whic)28(h)-479(pr)1(in)27(ts)-478(the)-478(con)28(ten)27(t)-478(of)-478(the)-478(error)-478(s)-1(tac)28(k)-478(and)-478(ab)-28(orts)-478(the)-478(program)]TJ 0 -11.955 Td [(execution,)-329(ac)-1(cord)1(ing)-329(to)-328(the)-329(c)28(hoice)-329(made)-328(b)27(y)-328(the)-329(user)-328(with)]TJ/F30 9.9626 Tf 252.028 0 Td [(psb_set_erraction)]TJ/F8 9.9626 Tf 88.916 0 Td [(.)]TJ -340.944 -11.956 Td [(The)-347(default)-346(is)-347(to)-346(prin)28(t)-347(the)-347(error)-346(and)-347(terminate)-346(the)-347(program,)-350(but)-346(the)-347(user)-346(ma)27(y)]TJ 0 -11.955 Td [(c)28(ho)-28(ose)-333(to)-334(handle)-333(the)-333(error)-334(explicitly)84(.)]TJ 14.944 -11.955 Td [(Figure)]TJ 0 0 1 rg 0 0 1 RG - [-479(10)]TJ + [-400(9)]TJ 0 g 0 G - [-479(rep)-28(orts)-479(a)-479(sample)-480(error)-479(message)-479(generated)-479(b)28(y)-480(the)-479(PSBLAS-2.0)]TJ -14.944 -11.955 Td [(library)83(.)-451(This)-335(error)-336(has)-335(b)-28(een)-336(generated)-335(b)27(y)-335(the)-336(fact)-335(that)-336(the)-335(use)-1(r)-335(has)-336(c)28(hosen)-336(th)1(e)]TJ 0 -11.955 Td [(in)28(v)55(alid)-367(\134F)28(OO")-368(storage)-367(format)-368(to)-367(represen)27(t)-367(the)-368(sparse)-367(matrix.)-547(F)83(rom)-367(this)-368(error)]TJ 0 -11.955 Td [(message)-248(it)-248(is)-248(p)-27(oss)-1(i)1(ble)-248(to)-248(see)-248(that)-248(the)-248(error)-247(has)-248(b)-28(een)-248(detected)-248(inside)-248(th)1(e)]TJ/F30 9.9626 Tf 301.868 0 Td [(psb_cest)]TJ/F8 9.9626 Tf -301.868 -11.956 Td [(subroutine)-333(called)-334(b)28(y)]TJ/F30 9.9626 Tf 91.407 0 Td [(psb_spasb)]TJ/F8 9.9626 Tf 50.394 0 Td [(...)-444(b)27(y)-333(pro)-28(cess)-333(0)-333(\050i.e.)-445(the)-333(ro)-28(ot)-333(pro)-28(cess\051.)]TJ + [-400(rep)-28(orts)-400(a)-401(sample)-400(error)-400(message)-401(generated)-400(b)28(y)-400(the)-401(PSBLAS-2.0)-400(li-)]TJ -14.944 -11.955 Td [(brary)83(.)-555(This)-370(error)-370(has)-371(b)-28(een)-370(generated)-370(b)28(y)-371(the)-370(fact)-370(that)-371(the)-370(user)-370(has)-371(c)28(hosen)-370(the)]TJ 0 -11.955 Td [(in)28(v)55(alid)-367(\134F)28(OO")-368(storage)-367(format)-368(to)-367(represen)27(t)-367(the)-368(sparse)-367(matrix.)-547(F)83(rom)-367(this)-368(error)]TJ 0 -11.955 Td [(message)-248(it)-248(is)-248(p)-27(oss)-1(i)1(ble)-248(to)-248(see)-248(that)-248(the)-248(error)-247(has)-248(b)-28(een)-248(detected)-248(inside)-248(th)1(e)]TJ/F30 9.9626 Tf 301.868 0 Td [(psb_cest)]TJ/F8 9.9626 Tf -301.868 -11.956 Td [(subroutine)-333(called)-334(b)28(y)]TJ/F30 9.9626 Tf 91.407 0 Td [(psb_spasb)]TJ/F8 9.9626 Tf 50.394 0 Td [(...)-444(b)27(y)-333(pro)-28(cess)-333(0)-333(\050i.e.)-445(the)-333(ro)-28(ot)-333(pro)-28(cess\051.)]TJ 0 g 0 G - 22.583 -211.304 Td [(108)]TJ + 22.583 -211.304 Td [(106)]TJ 0 g 0 G ET endstream endobj -1349 0 obj << +1332 0 obj << /Type /Page -/Contents 1350 0 R -/Resources 1348 0 R +/Contents 1333 0 R +/Resources 1331 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1323 0 R -/Annots [ 1346 0 R 1347 0 R ] +/Parent 1318 0 R +/Annots [ 1329 0 R 1330 0 R ] >> endobj -1346 0 obj << +1329 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [196.286 501.77 203.26 512.895] /Subtype /Link -/A << /S /GoTo /D (figure.9) >> +/A << /S /GoTo /D (figure.8) >> >> endobj -1347 0 obj << +1330 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [197.543 346.63 209.498 357.478] +/Rect [196.757 346.63 203.731 357.478] /Subtype /Link -/A << /S /GoTo /D (figure.10) >> +/A << /S /GoTo /D (figure.9) >> >> endobj -1351 0 obj << -/D [1349 0 R /XYZ 150.705 740.998 null] +1334 0 obj << +/D [1332 0 R /XYZ 150.705 740.998 null] >> endobj -362 0 obj << -/D [1349 0 R /XYZ 150.705 716.092 null] +358 0 obj << +/D [1332 0 R /XYZ 150.705 716.092 null] >> endobj -1348 0 obj << -/Font << /F16 439 0 R /F8 442 0 R /F30 617 0 R >> +1331 0 obj << +/Font << /F16 435 0 R /F8 438 0 R /F30 616 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1356 0 obj << -/Length 3853 +1339 0 obj << +/Length 3859 >> stream 0 g 0 G @@ -15500,7 +15148,7 @@ q []0 d 0 J 0.398 w 0 0 m 346.583 0 l S Q BT -/F8 9.9626 Tf 99.895 400.281 Td [(Figure)-329(9:)-443(The)-329(la)27(y)28(out)-329(of)-330(a)-329(generic)]TJ/F30 9.9626 Tf 147.445 0 Td [(psb)]TJ +/F8 9.9626 Tf 99.895 400.281 Td [(Figure)-329(8:)-443(The)-329(la)27(y)28(out)-329(of)-330(a)-329(generic)]TJ/F30 9.9626 Tf 147.445 0 Td [(psb)]TJ ET q 1 0 0 1 263.659 400.481 cm @@ -15535,7 +15183,7 @@ q []0 d 0 J 0.398 w 0 0 m 346.583 0 l S Q BT -/F8 9.9626 Tf 99.895 159.118 Td [(Figure)-386(10:)-551(A)-386(sample)-386(PSBLAS-2.0)-387(error)-386(message.)-603(Pro)-28(cess)-387(0)-386(detected)-386(an)-387(error)]TJ 0 -11.955 Td [(condition)-333(inside)-334(the)-333(psb)]TJ +/F8 9.9626 Tf 99.895 159.118 Td [(Figure)-422(9:)-622(A)-422(sample)-422(PSBLAS-2.0)-422(error)-422(message.)-711(Pr)1(o)-28(cess)-422(0)-422(dete)-1(cted)-422(an)-422(error)]TJ 0 -11.955 Td [(condition)-333(inside)-334(the)-333(psb)]TJ ET q 1 0 0 1 204.658 147.362 cm @@ -15545,32 +15193,32 @@ BT /F8 9.9626 Tf 207.647 147.163 Td [(cest)-333(s)-1(u)1(broutine)]TJ 0 g 0 G 0 g 0 G - 56.632 -56.725 Td [(109)]TJ + 56.632 -56.725 Td [(107)]TJ 0 g 0 G ET endstream endobj -1355 0 obj << +1338 0 obj << /Type /Page -/Contents 1356 0 R -/Resources 1354 0 R +/Contents 1339 0 R +/Resources 1337 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1358 0 R +/Parent 1318 0 R >> endobj -1357 0 obj << -/D [1355 0 R /XYZ 99.895 740.998 null] +1340 0 obj << +/D [1338 0 R /XYZ 99.895 740.998 null] >> endobj -1352 0 obj << -/D [1355 0 R /XYZ 143.452 412.237 null] +1335 0 obj << +/D [1338 0 R /XYZ 143.452 412.237 null] >> endobj -1353 0 obj << -/D [1355 0 R /XYZ 150.074 171.074 null] +1336 0 obj << +/D [1338 0 R /XYZ 146.161 171.074 null] >> endobj -1354 0 obj << -/Font << /F46 762 0 R /F8 442 0 R /F30 617 0 R >> +1337 0 obj << +/Font << /F46 746 0 R /F8 438 0 R /F30 616 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1361 0 obj << +1343 0 obj << /Length 2958 >> stream @@ -15640,29 +15288,29 @@ BT 0 g 0 G /F8 9.9626 Tf 19.669 0 Td [(addional)-333(info)-333(for)-334(error)-333(co)-28(de)]TJ -4.457 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.612 0 Td [(optional)]TJ/F8 9.9626 Tf -29.612 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(string.)]TJ 0 g 0 G - 139.477 -284.475 Td [(110)]TJ + 139.477 -284.475 Td [(108)]TJ 0 g 0 G ET endstream endobj -1360 0 obj << +1342 0 obj << /Type /Page -/Contents 1361 0 R -/Resources 1359 0 R +/Contents 1343 0 R +/Resources 1341 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1358 0 R +/Parent 1318 0 R >> endobj -1362 0 obj << -/D [1360 0 R /XYZ 150.705 740.998 null] +1344 0 obj << +/D [1342 0 R /XYZ 150.705 740.998 null] >> endobj -366 0 obj << -/D [1360 0 R /XYZ 150.705 697.37 null] +362 0 obj << +/D [1342 0 R /XYZ 150.705 697.37 null] >> endobj -1359 0 obj << -/Font << /F16 439 0 R /F30 617 0 R /F27 441 0 R /F8 442 0 R >> +1341 0 obj << +/Font << /F16 435 0 R /F30 616 0 R /F27 437 0 R /F8 438 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1365 0 obj << +1347 0 obj << /Length 1151 >> stream @@ -15692,29 +15340,29 @@ BT 0 g 0 G /F8 9.9626 Tf 39.989 0 Td [(the)-333(comm)27(unication)-333(con)28(text.)]TJ -15.082 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(global)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(optional)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(in)28(teger.)]TJ 0 g 0 G - 139.477 -473.765 Td [(111)]TJ + 139.477 -473.765 Td [(109)]TJ 0 g 0 G ET endstream endobj -1364 0 obj << +1346 0 obj << /Type /Page -/Contents 1365 0 R -/Resources 1363 0 R +/Contents 1347 0 R +/Resources 1345 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1358 0 R +/Parent 1349 0 R >> endobj -1366 0 obj << -/D [1364 0 R /XYZ 99.895 740.998 null] +1348 0 obj << +/D [1346 0 R /XYZ 99.895 740.998 null] >> endobj -370 0 obj << -/D [1364 0 R /XYZ 99.895 685.747 null] +366 0 obj << +/D [1346 0 R /XYZ 99.895 685.747 null] >> endobj -1363 0 obj << -/Font << /F16 439 0 R /F30 617 0 R /F27 441 0 R /F8 442 0 R >> +1345 0 obj << +/Font << /F16 435 0 R /F30 616 0 R /F27 437 0 R /F8 438 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1369 0 obj << +1352 0 obj << /Length 1249 >> stream @@ -15751,29 +15399,29 @@ BT 0 g 0 G /F8 9.9626 Tf 11.028 0 Td [(the)-333(v)27(erb)-27(osit)27(y)-333(lev)28(el)]TJ 13.878 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(global)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.612 0 Td [(required)]TJ/F8 9.9626 Tf -29.612 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.548 0 Td [(.)]TJ -43.034 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(in)28(teger.)]TJ 0 g 0 G - 139.477 -473.765 Td [(112)]TJ + 139.477 -473.765 Td [(110)]TJ 0 g 0 G ET endstream endobj -1368 0 obj << +1351 0 obj << /Type /Page -/Contents 1369 0 R -/Resources 1367 0 R +/Contents 1352 0 R +/Resources 1350 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1358 0 R +/Parent 1349 0 R >> endobj -1370 0 obj << -/D [1368 0 R /XYZ 150.705 740.998 null] +1353 0 obj << +/D [1351 0 R /XYZ 150.705 740.998 null] >> endobj -374 0 obj << -/D [1368 0 R /XYZ 150.705 683.422 null] +370 0 obj << +/D [1351 0 R /XYZ 150.705 683.422 null] >> endobj -1367 0 obj << -/Font << /F16 439 0 R /F30 617 0 R /F27 441 0 R /F8 442 0 R >> +1350 0 obj << +/Font << /F16 435 0 R /F30 616 0 R /F27 437 0 R /F8 438 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1373 0 obj << +1356 0 obj << /Length 1710 >> stream @@ -15820,29 +15468,29 @@ BT 0 g 0 G /F30 9.9626 Tf -336.792 -21.918 Td [(call)-525(psb_errcomm\050icontxt,)-525(err\051)]TJ 0 g 0 G -/F8 9.9626 Tf 164.384 -451.847 Td [(113)]TJ +/F8 9.9626 Tf 164.384 -451.847 Td [(111)]TJ 0 g 0 G ET endstream endobj -1372 0 obj << +1355 0 obj << /Type /Page -/Contents 1373 0 R -/Resources 1371 0 R +/Contents 1356 0 R +/Resources 1354 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1358 0 R +/Parent 1349 0 R >> endobj -1374 0 obj << -/D [1372 0 R /XYZ 99.895 740.998 null] +1357 0 obj << +/D [1355 0 R /XYZ 99.895 740.998 null] >> endobj -378 0 obj << -/D [1372 0 R /XYZ 99.895 685.747 null] +374 0 obj << +/D [1355 0 R /XYZ 99.895 685.747 null] >> endobj -1371 0 obj << -/Font << /F16 439 0 R /F30 617 0 R /F27 441 0 R /F8 442 0 R >> +1354 0 obj << +/Font << /F16 435 0 R /F30 616 0 R /F27 437 0 R /F8 438 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1377 0 obj << +1360 0 obj << /Length 526 >> stream @@ -15851,29 +15499,29 @@ stream BT /F16 14.3462 Tf 150.705 706.129 Td [(9)-1125(Utilities)]TJ/F8 9.9626 Tf 0 -21.821 Td [(W)83(e)-414(ha)27(v)28(e)-415(some)-414(utitlities)-415(a)28(v)55(ailable)-414(for)-415(input)-415(and)-414(output)-415(of)-415(sparsematrices;)-455(the)]TJ 0 -11.955 Td [(in)28(terfaces)-334(to)-333(these)-333(routines)-334(are)-333(a)28(v)55(ailable)-333(in)-333(the)-334(mo)-27(dule)]TJ/F30 9.9626 Tf 241.843 0 Td [(psb_util_mod)]TJ/F8 9.9626 Tf 62.764 0 Td [(.)]TJ 0 g 0 G - -140.224 -581.915 Td [(114)]TJ + -140.224 -581.915 Td [(112)]TJ 0 g 0 G ET endstream endobj -1376 0 obj << +1359 0 obj << /Type /Page -/Contents 1377 0 R -/Resources 1375 0 R +/Contents 1360 0 R +/Resources 1358 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1358 0 R +/Parent 1349 0 R >> endobj -1378 0 obj << -/D [1376 0 R /XYZ 150.705 740.998 null] +1361 0 obj << +/D [1359 0 R /XYZ 150.705 740.998 null] >> endobj -382 0 obj << -/D [1376 0 R /XYZ 150.705 716.092 null] +378 0 obj << +/D [1359 0 R /XYZ 150.705 716.092 null] >> endobj -1375 0 obj << -/Font << /F16 439 0 R /F8 442 0 R /F30 617 0 R >> +1358 0 obj << +/Font << /F16 435 0 R /F8 438 0 R /F30 616 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1382 0 obj << +1365 0 obj << /Length 4442 >> stream @@ -15944,37 +15592,37 @@ BT 0 g 0 G /F8 9.9626 Tf 22.589 0 Td [(Error)-333(co)-28(de.)]TJ 2.318 -11.956 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(An)-333(in)28(tege)-1(r)-333(v)56(alue;)-334(0)-333(means)-333(no)-334(error)-333(has)-333(b)-28(een)-333(detecte)-1(d)1(.)]TJ 0 g 0 G - 139.477 -196.803 Td [(115)]TJ + 139.477 -196.803 Td [(113)]TJ 0 g 0 G ET endstream endobj -1381 0 obj << +1364 0 obj << /Type /Page -/Contents 1382 0 R -/Resources 1380 0 R +/Contents 1365 0 R +/Resources 1363 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1384 0 R -/Annots [ 1379 0 R ] +/Parent 1349 0 R +/Annots [ 1362 0 R ] >> endobj -1379 0 obj << +1362 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [294.721 451.404 367.009 462.529] /Subtype /Link /A << /S /GoTo /D (spdata) >> >> endobj -1383 0 obj << -/D [1381 0 R /XYZ 99.895 740.998 null] +1366 0 obj << +/D [1364 0 R /XYZ 99.895 740.998 null] >> endobj -386 0 obj << -/D [1381 0 R /XYZ 99.895 683.422 null] +382 0 obj << +/D [1364 0 R /XYZ 99.895 683.422 null] >> endobj -1380 0 obj << -/Font << /F16 439 0 R /F30 617 0 R /F27 441 0 R /F8 442 0 R >> +1363 0 obj << +/Font << /F16 435 0 R /F30 616 0 R /F27 437 0 R /F8 438 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1388 0 obj << +1370 0 obj << /Length 4868 >> stream @@ -16049,37 +15697,37 @@ BT 0 g 0 G /F8 9.9626 Tf 22.589 0 Td [(Error)-333(co)-28(de.)]TJ 2.318 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.956 Td [(An)-333(in)28(tege)-1(r)-333(v)56(alue;)-334(0)-333(means)-333(no)-334(error)-333(has)-333(b)-28(een)-333(detected.)]TJ 0 g 0 G - 139.477 -141.012 Td [(116)]TJ + 139.477 -141.012 Td [(114)]TJ 0 g 0 G ET endstream endobj -1387 0 obj << +1369 0 obj << /Type /Page -/Contents 1388 0 R -/Resources 1386 0 R +/Contents 1370 0 R +/Resources 1368 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1384 0 R -/Annots [ 1385 0 R ] +/Parent 1349 0 R +/Annots [ 1367 0 R ] >> endobj -1385 0 obj << +1367 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [345.53 584.903 417.818 596.028] /Subtype /Link /A << /S /GoTo /D (spdata) >> >> endobj -1389 0 obj << -/D [1387 0 R /XYZ 150.705 740.998 null] +1371 0 obj << +/D [1369 0 R /XYZ 150.705 740.998 null] >> endobj -390 0 obj << -/D [1387 0 R /XYZ 150.705 683.422 null] +386 0 obj << +/D [1369 0 R /XYZ 150.705 683.422 null] >> endobj -1386 0 obj << -/Font << /F16 439 0 R /F30 617 0 R /F27 441 0 R /F8 442 0 R >> +1368 0 obj << +/Font << /F16 435 0 R /F30 616 0 R /F27 437 0 R /F8 438 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1393 0 obj << +1375 0 obj << /Length 3234 >> stream @@ -16149,37 +15797,37 @@ BT 0 g 0 G /F8 9.9626 Tf 22.589 0 Td [(Error)-333(co)-28(de.)]TJ 2.318 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(An)-333(in)28(tege)-1(r)-333(v)56(alue;)-334(0)-333(means)-333(no)-334(error)-333(has)-333(b)-28(een)-333(detecte)-1(d)1(.)]TJ 0 g 0 G - 139.477 -320.34 Td [(117)]TJ + 139.477 -320.34 Td [(115)]TJ 0 g 0 G ET endstream endobj -1392 0 obj << +1374 0 obj << /Type /Page -/Contents 1393 0 R -/Resources 1391 0 R +/Contents 1375 0 R +/Resources 1373 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1384 0 R -/Annots [ 1390 0 R ] +/Parent 1377 0 R +/Annots [ 1372 0 R ] >> endobj -1390 0 obj << +1372 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [294.721 451.404 367.009 462.529] /Subtype /Link /A << /S /GoTo /D (spdata) >> >> endobj -1394 0 obj << -/D [1392 0 R /XYZ 99.895 740.998 null] +1376 0 obj << +/D [1374 0 R /XYZ 99.895 740.998 null] >> endobj -394 0 obj << -/D [1392 0 R /XYZ 99.895 685.747 null] +390 0 obj << +/D [1374 0 R /XYZ 99.895 685.747 null] >> endobj -1391 0 obj << -/Font << /F16 439 0 R /F30 617 0 R /F27 441 0 R /F8 442 0 R >> +1373 0 obj << +/Font << /F16 435 0 R /F30 616 0 R /F27 437 0 R /F8 438 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1397 0 obj << +1380 0 obj << /Length 3263 >> stream @@ -16231,29 +15879,29 @@ BT 0 g 0 G /F8 9.9626 Tf 22.589 0 Td [(Error)-333(co)-28(de.)]TJ 2.318 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(An)-333(in)28(tege)-1(r)-333(v)56(alue;)-334(0)-333(means)-333(no)-334(error)-333(has)-333(b)-28(een)-333(detected.)]TJ 0 g 0 G - 139.477 -296.43 Td [(118)]TJ + 139.477 -296.43 Td [(116)]TJ 0 g 0 G ET endstream endobj -1396 0 obj << +1379 0 obj << /Type /Page -/Contents 1397 0 R -/Resources 1395 0 R +/Contents 1380 0 R +/Resources 1378 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1384 0 R +/Parent 1377 0 R >> endobj -1398 0 obj << -/D [1396 0 R /XYZ 150.705 740.998 null] +1381 0 obj << +/D [1379 0 R /XYZ 150.705 740.998 null] >> endobj -398 0 obj << -/D [1396 0 R /XYZ 150.705 685.747 null] +394 0 obj << +/D [1379 0 R /XYZ 150.705 685.747 null] >> endobj -1395 0 obj << -/Font << /F16 439 0 R /F30 617 0 R /F27 441 0 R /F8 442 0 R >> +1378 0 obj << +/Font << /F16 435 0 R /F30 616 0 R /F27 437 0 R /F8 438 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1402 0 obj << +1385 0 obj << /Length 3710 >> stream @@ -16327,37 +15975,37 @@ BT 0 g 0 G /F8 9.9626 Tf 22.589 0 Td [(Error)-333(co)-28(de.)]TJ 2.318 -11.956 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(An)-333(in)28(tege)-1(r)-333(v)56(alue;)-334(0)-333(means)-333(no)-334(error)-333(has)-333(b)-28(een)-333(detected.)]TJ 0 g 0 G - 139.477 -264.549 Td [(119)]TJ + 139.477 -264.549 Td [(117)]TJ 0 g 0 G ET endstream endobj -1401 0 obj << +1384 0 obj << /Type /Page -/Contents 1402 0 R -/Resources 1400 0 R +/Contents 1385 0 R +/Resources 1383 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1384 0 R -/Annots [ 1399 0 R ] +/Parent 1377 0 R +/Annots [ 1382 0 R ] >> endobj -1399 0 obj << +1382 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [294.721 584.903 367.009 596.028] /Subtype /Link /A << /S /GoTo /D (spdata) >> >> endobj -1403 0 obj << -/D [1401 0 R /XYZ 99.895 740.998 null] +1386 0 obj << +/D [1384 0 R /XYZ 99.895 740.998 null] >> endobj -402 0 obj << -/D [1401 0 R /XYZ 99.895 685.747 null] +398 0 obj << +/D [1384 0 R /XYZ 99.895 685.747 null] >> endobj -1400 0 obj << -/Font << /F16 439 0 R /F30 617 0 R /F27 441 0 R /F8 442 0 R >> +1383 0 obj << +/Font << /F16 435 0 R /F30 616 0 R /F27 437 0 R /F8 438 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1406 0 obj << +1389 0 obj << /Length 912 >> stream @@ -16374,29 +16022,29 @@ BT 0 g 0 G /F8 9.9626 Tf 9.962 0 Td [(Blo)-28(c)28(k)-333(Jacobi)-334(with)-333(ILU\0500\051)-333(factorization)]TJ -24.906 -19.925 Td [(The)-364(supp)-27(orting)-364(data)-363(t)27(yp)-27(e)-364(and)-364(subroutin)1(e)-364(in)28(terfaces)-364(are)-364(de\014ned)-363(in)-364(the)-363(mo)-28(dule)]TJ/F30 9.9626 Tf 0 -11.955 Td [(psb_prec_mod)]TJ/F8 9.9626 Tf 62.764 0 Td [(.)]TJ 0 g 0 G - 101.619 -510.184 Td [(120)]TJ + 101.619 -510.184 Td [(118)]TJ 0 g 0 G ET endstream endobj -1405 0 obj << +1388 0 obj << /Type /Page -/Contents 1406 0 R -/Resources 1404 0 R +/Contents 1389 0 R +/Resources 1387 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1384 0 R +/Parent 1377 0 R >> endobj -1407 0 obj << -/D [1405 0 R /XYZ 150.705 740.998 null] +1390 0 obj << +/D [1388 0 R /XYZ 150.705 740.998 null] >> endobj -406 0 obj << -/D [1405 0 R /XYZ 150.705 716.092 null] +402 0 obj << +/D [1388 0 R /XYZ 150.705 716.092 null] >> endobj -1404 0 obj << -/Font << /F16 439 0 R /F8 442 0 R /F14 620 0 R /F30 617 0 R >> +1387 0 obj << +/Font << /F16 435 0 R /F8 438 0 R /F14 619 0 R /F30 616 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1412 0 obj << +1395 0 obj << /Length 4642 >> stream @@ -16480,47 +16128,47 @@ BT /F32 5.9776 Tf 110.987 123.138 Td [(3)]TJ/F31 7.9701 Tf 4.151 -2.812 Td [(The)-354(string)-354(is)-355(case-insensitiv)30(e)]TJ 0 g 0 G 0 g 0 G -/F8 9.9626 Tf 149.141 -29.888 Td [(121)]TJ +/F8 9.9626 Tf 149.141 -29.888 Td [(119)]TJ 0 g 0 G ET endstream endobj -1411 0 obj << +1394 0 obj << /Type /Page -/Contents 1412 0 R -/Resources 1410 0 R +/Contents 1395 0 R +/Resources 1393 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1415 0 R -/Annots [ 1408 0 R 1409 0 R ] +/Parent 1377 0 R +/Annots [ 1391 0 R 1392 0 R ] >> endobj -1408 0 obj << +1391 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [321.343 511.179 388.401 522.304] /Subtype /Link /A << /S /GoTo /D (precdata) >> >> endobj -1409 0 obj << +1392 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [168.831 421.792 175.293 433.832] /Subtype /Link /A << /S /GoTo /D (Hfootnote.3) >> >> endobj -1413 0 obj << -/D [1411 0 R /XYZ 99.895 740.998 null] +1396 0 obj << +/D [1394 0 R /XYZ 99.895 740.998 null] >> endobj -410 0 obj << -/D [1411 0 R /XYZ 99.895 697.37 null] +406 0 obj << +/D [1394 0 R /XYZ 99.895 697.37 null] >> endobj -1414 0 obj << -/D [1411 0 R /XYZ 115.138 129.79 null] +1397 0 obj << +/D [1394 0 R /XYZ 115.138 129.79 null] >> endobj -1410 0 obj << -/Font << /F16 439 0 R /F30 617 0 R /F27 441 0 R /F8 442 0 R /F11 603 0 R /F7 618 0 R /F32 621 0 R /F31 623 0 R >> +1393 0 obj << +/Font << /F16 435 0 R /F30 616 0 R /F27 437 0 R /F8 438 0 R /F11 599 0 R /F7 617 0 R /F32 620 0 R /F31 622 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1422 0 obj << +1404 0 obj << /Length 4723 >> stream @@ -16646,58 +16294,58 @@ BT 0 g 0 G /F8 9.9626 Tf 23.758 0 Td [(Error)-333(co)-28(de.)]TJ 1.148 -11.956 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.612 0 Td [(required)]TJ/F8 9.9626 Tf -29.612 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(out)]TJ/F8 9.9626 Tf 16.549 0 Td [(.)]TJ -50.035 -11.955 Td [(An)-333(in)27(t)1(e)-1(ger)-333(v)56(alue;)-334(0)-333(means)-333(no)-334(error)-333(has)-333(b)-28(een)-333(detec)-1(ted.)]TJ 0 g 0 G - 139.477 -194.811 Td [(122)]TJ + 139.477 -194.811 Td [(120)]TJ 0 g 0 G ET endstream endobj -1421 0 obj << +1403 0 obj << /Type /Page -/Contents 1422 0 R -/Resources 1420 0 R +/Contents 1404 0 R +/Resources 1402 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1415 0 R -/Annots [ 1416 0 R 1417 0 R 1418 0 R 1419 0 R ] +/Parent 1377 0 R +/Annots [ 1398 0 R 1399 0 R 1400 0 R 1401 0 R ] >> endobj -1416 0 obj << +1398 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [368.666 586.895 440.954 598.02] /Subtype /Link /A << /S /GoTo /D (spdata) >> >> endobj -1417 0 obj << +1399 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [447.73 519.15 514.788 530.274] /Subtype /Link /A << /S /GoTo /D (precdata) >> >> endobj -1418 0 obj << +1400 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [422.298 451.404 489.356 462.529] /Subtype /Link /A << /S /GoTo /D (descdata) >> >> endobj -1419 0 obj << +1401 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [369.385 361.74 436.443 372.865] /Subtype /Link /A << /S /GoTo /D (precdata) >> >> endobj -1423 0 obj << -/D [1421 0 R /XYZ 150.705 740.998 null] +1405 0 obj << +/D [1403 0 R /XYZ 150.705 740.998 null] >> endobj -414 0 obj << -/D [1421 0 R /XYZ 150.705 697.37 null] +410 0 obj << +/D [1403 0 R /XYZ 150.705 697.37 null] >> endobj -1420 0 obj << -/Font << /F16 439 0 R /F30 617 0 R /F27 441 0 R /F8 442 0 R >> +1402 0 obj << +/Font << /F16 435 0 R /F30 616 0 R /F27 437 0 R /F8 438 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1428 0 obj << +1410 0 obj << /Length 5001 >> stream @@ -16797,44 +16445,44 @@ BT 0 g 0 G /F8 9.9626 Tf 23.758 0 Td [(Error)-333(co)-28(de.)]TJ 1.149 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(out)]TJ/F8 9.9626 Tf 16.549 0 Td [(.)]TJ -50.035 -11.955 Td [(An)-333(in)28(tege)-1(r)-333(v)56(alue;)-334(0)-333(means)-333(no)-334(error)-333(has)-333(b)-28(een)-333(detecte)-1(d)1(.)]TJ 0 g 0 G - 139.477 -119.095 Td [(123)]TJ + 139.477 -119.095 Td [(121)]TJ 0 g 0 G ET endstream endobj -1427 0 obj << +1409 0 obj << /Type /Page -/Contents 1428 0 R -/Resources 1426 0 R +/Contents 1410 0 R +/Resources 1408 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1415 0 R -/Annots [ 1424 0 R 1425 0 R ] +/Parent 1412 0 R +/Annots [ 1406 0 R 1407 0 R ] >> endobj -1424 0 obj << +1406 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [321.343 574.94 388.401 586.065] /Subtype /Link /A << /S /GoTo /D (precdata) >> >> endobj -1425 0 obj << +1407 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [324.885 463.359 391.943 474.484] /Subtype /Link /A << /S /GoTo /D (descdata) >> >> endobj -1429 0 obj << -/D [1427 0 R /XYZ 99.895 740.998 null] +1411 0 obj << +/D [1409 0 R /XYZ 99.895 740.998 null] >> endobj -418 0 obj << -/D [1427 0 R /XYZ 99.895 697.37 null] +414 0 obj << +/D [1409 0 R /XYZ 99.895 697.37 null] >> endobj -1426 0 obj << -/Font << /F16 439 0 R /F30 617 0 R /F27 441 0 R /F8 442 0 R >> +1408 0 obj << +/Font << /F16 435 0 R /F30 616 0 R /F27 437 0 R /F8 438 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1433 0 obj << +1416 0 obj << /Length 1996 >> stream @@ -16886,37 +16534,37 @@ BT 0 g 0 G /F8 9.9626 Tf 24.713 0 Td [(output)-333(unit.)-444(Scop)-28(e:)]TJ/F27 9.9626 Tf 89.94 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -89.747 -11.956 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.612 0 Td [(optiona)]TJ/F8 9.9626 Tf -29.612 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.548 0 Td [(.)]TJ -43.034 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(in)28(teger)-333(n)27(um)28(b)-28(er.)]TJ 0 g 0 G - 139.477 -417.974 Td [(124)]TJ + 139.477 -417.974 Td [(122)]TJ 0 g 0 G ET endstream endobj -1432 0 obj << +1415 0 obj << /Type /Page -/Contents 1433 0 R -/Resources 1431 0 R +/Contents 1416 0 R +/Resources 1414 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1415 0 R -/Annots [ 1430 0 R ] +/Parent 1412 0 R +/Annots [ 1413 0 R ] >> endobj -1430 0 obj << +1413 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [372.153 560.993 439.211 572.118] /Subtype /Link /A << /S /GoTo /D (precdata) >> >> endobj -1434 0 obj << -/D [1432 0 R /XYZ 150.705 740.998 null] +1417 0 obj << +/D [1415 0 R /XYZ 150.705 740.998 null] >> endobj -422 0 obj << -/D [1432 0 R /XYZ 150.705 685.747 null] +418 0 obj << +/D [1415 0 R /XYZ 150.705 685.747 null] >> endobj -1431 0 obj << -/Font << /F16 439 0 R /F30 617 0 R /F27 441 0 R /F8 442 0 R >> +1414 0 obj << +/Font << /F16 435 0 R /F30 616 0 R /F27 437 0 R /F8 438 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1437 0 obj << +1420 0 obj << /Length 598 >> stream @@ -16925,29 +16573,29 @@ stream BT /F16 14.3462 Tf 99.895 706.129 Td [(11)-1125(Iterativ)31(e)-375(Metho)-31(ds)]TJ/F8 9.9626 Tf 0 -21.821 Td [(In)-519(this)-518(c)28(hapter)-519(w)28(e)-519(pro)28(vide)-519(routin)1(e)-1(s)-518(for)-519(preconditioners)-518(and)-519(iterativ)28(e)-519(meth-)]TJ 0 -11.955 Td [(o)-28(ds.)-647(The)-401(in)28(terfaces)-401(for)-401(Kryl)1(o)27(v)-401(subspace)-400(m)-1(etho)-27(ds)-401(are)-401(a)28(v)55(ailable)-400(in)-401(the)-401(mo)-28(dule)]TJ/F30 9.9626 Tf 0 -11.955 Td [(psb_krylov_mod)]TJ/F8 9.9626 Tf 73.225 0 Td [(.)]TJ 0 g 0 G - 91.159 -569.96 Td [(125)]TJ + 91.159 -569.96 Td [(123)]TJ 0 g 0 G ET endstream endobj -1436 0 obj << +1419 0 obj << /Type /Page -/Contents 1437 0 R -/Resources 1435 0 R +/Contents 1420 0 R +/Resources 1418 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1415 0 R +/Parent 1412 0 R >> endobj -1438 0 obj << -/D [1436 0 R /XYZ 99.895 740.998 null] +1421 0 obj << +/D [1419 0 R /XYZ 99.895 740.998 null] >> endobj -426 0 obj << -/D [1436 0 R /XYZ 99.895 716.092 null] +422 0 obj << +/D [1419 0 R /XYZ 99.895 716.092 null] >> endobj -1435 0 obj << -/Font << /F16 439 0 R /F8 442 0 R /F30 617 0 R >> +1418 0 obj << +/Font << /F16 435 0 R /F8 438 0 R /F30 616 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1443 0 obj << +1426 0 obj << /Length 7212 >> stream @@ -17063,44 +16711,44 @@ BT 0 g 0 G /F8 9.9626 Tf 11.346 0 Td [(The)-333(RHS)-334(v)28(ector.)]TJ 13.56 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.612 0 Td [(required)]TJ/F8 9.9626 Tf -29.612 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.548 0 Td [(.)]TJ -43.034 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(rank)-333(one)-334(ar)1(ra)27(y)84(.)]TJ 0 g 0 G - 139.477 -29.888 Td [(126)]TJ + 139.477 -29.888 Td [(124)]TJ 0 g 0 G ET endstream endobj -1442 0 obj << +1425 0 obj << /Type /Page -/Contents 1443 0 R -/Resources 1441 0 R +/Contents 1426 0 R +/Resources 1424 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1415 0 R -/Annots [ 1439 0 R 1440 0 R ] +/Parent 1412 0 R +/Annots [ 1422 0 R 1423 0 R ] >> endobj -1439 0 obj << +1422 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [345.53 250.914 417.818 262.039] /Subtype /Link /A << /S /GoTo /D (spdata) >> >> endobj -1440 0 obj << +1423 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [345.53 184.015 412.588 195.14] /Subtype /Link /A << /S /GoTo /D (precdata) >> >> endobj -1444 0 obj << -/D [1442 0 R /XYZ 150.705 740.998 null] +1427 0 obj << +/D [1425 0 R /XYZ 150.705 740.998 null] >> endobj -430 0 obj << -/D [1442 0 R /XYZ 150.705 697.37 null] +426 0 obj << +/D [1425 0 R /XYZ 150.705 697.37 null] >> endobj -1441 0 obj << -/Font << /F16 439 0 R /F8 442 0 R /F11 603 0 R /F14 620 0 R /F10 619 0 R /F7 618 0 R /F30 617 0 R /F27 441 0 R >> +1424 0 obj << +/Font << /F16 435 0 R /F8 438 0 R /F11 599 0 R /F14 619 0 R /F10 618 0 R /F7 617 0 R /F30 616 0 R /F27 437 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1448 0 obj << +1431 0 obj << /Length 5689 >> stream @@ -17168,34 +16816,34 @@ BT 0 g 0 G /F8 9.9626 Tf 11.028 0 Td [(The)-333(computed)-334(solution.)]TJ 13.879 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(inout)]TJ/F8 9.9626 Tf 26.096 0 Td [(.)]TJ -59.582 -11.956 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(rank)-333(one)-333(arra)27(y)84(.)]TJ 0 g 0 G - 139.477 -29.887 Td [(127)]TJ + 139.477 -29.887 Td [(125)]TJ 0 g 0 G ET endstream endobj -1447 0 obj << +1430 0 obj << /Type /Page -/Contents 1448 0 R -/Resources 1446 0 R +/Contents 1431 0 R +/Resources 1429 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1450 0 R -/Annots [ 1445 0 R ] +/Parent 1412 0 R +/Annots [ 1428 0 R ] >> endobj -1445 0 obj << +1428 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [294.721 520.602 361.779 531.727] /Subtype /Link /A << /S /GoTo /D (descdata) >> >> endobj -1449 0 obj << -/D [1447 0 R /XYZ 99.895 740.998 null] +1432 0 obj << +/D [1430 0 R /XYZ 99.895 740.998 null] >> endobj -1446 0 obj << -/Font << /F27 441 0 R /F8 442 0 R /F30 617 0 R /F11 603 0 R /F14 620 0 R >> +1429 0 obj << +/Font << /F27 437 0 R /F8 438 0 R /F30 616 0 R /F11 599 0 R /F14 619 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1453 0 obj << +1435 0 obj << /Length 2484 >> stream @@ -17219,26 +16867,26 @@ BT 0 g 0 G /F8 9.9626 Tf 23.758 0 Td [(Error)-333(co)-28(de.)]TJ 1.148 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.956 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.612 0 Td [(required)]TJ/F8 9.9626 Tf -29.612 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(out)]TJ/F8 9.9626 Tf 16.549 0 Td [(.)]TJ -50.035 -11.955 Td [(An)-333(in)28(te)-1(ger)-333(v)56(alue;)-334(0)-333(means)-333(no)-334(error)-333(has)-333(b)-28(een)-333(detec)-1(ted.)]TJ 0 g 0 G - 139.477 -352.677 Td [(128)]TJ + 139.477 -352.677 Td [(126)]TJ 0 g 0 G ET endstream endobj -1452 0 obj << +1434 0 obj << /Type /Page -/Contents 1453 0 R -/Resources 1451 0 R +/Contents 1435 0 R +/Resources 1433 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1450 0 R +/Parent 1412 0 R >> endobj -1454 0 obj << -/D [1452 0 R /XYZ 150.705 740.998 null] +1436 0 obj << +/D [1434 0 R /XYZ 150.705 740.998 null] >> endobj -1451 0 obj << -/Font << /F27 441 0 R /F8 442 0 R /F11 603 0 R >> +1433 0 obj << +/Font << /F27 437 0 R /F8 438 0 R /F11 599 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1457 0 obj << +1439 0 obj << /Length 7011 >> stream @@ -17295,65 +16943,65 @@ BT 0 g 0 G [-500(S.)-267(Filipp)-27(one,)-280(P)83(.)-267(D'Am)28(bra,)-280(M.)-267(Cola)-55(janni,)]TJ/F17 9.9626 Tf 197.776 0 Td [(Using)-297(a)-296(Par)51(al)-51(lel)-297(Libr)52(ary)-297(of)-296(Sp)51(arse)]TJ -177.297 -11.955 Td [(Line)51(ar)-352(A)26(lgebr)51(a)-352(in)-352(a)-352(Fluid)-352(Dynami)1(cs)-352(Applic)51(ations)-352(Co)51(de)-352(on)-352(Linux)-352(Clusters)]TJ/F8 9.9626 Tf 320.465 0 Td [(,)]TJ -320.465 -11.955 Td [(in)-398(G.)-399(Jou)1(b)-28(ert,)-415(A.)-398(Murli,)-414(F.)-399(P)28(eters,)-414(M.)-399(V)84(annesc)27(hi,)-414(editors,)-415(P)28(arallel)-398(Com-)]TJ 0 -11.955 Td [(puting)-354(-)-354(Adv)55(ances)-354(&)-354(Curren)28(t)-355(Issues,)-359(pp.)-354(441{448,)-360(Imp)-28(erial)-354(College)-354(Press,)]TJ 0 -11.955 Td [(2002.)]TJ 0 g 0 G - 143.905 -29.888 Td [(129)]TJ + 143.905 -29.888 Td [(127)]TJ 0 g 0 G ET endstream endobj -1456 0 obj << +1438 0 obj << /Type /Page -/Contents 1457 0 R -/Resources 1455 0 R +/Contents 1439 0 R +/Resources 1437 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1450 0 R +/Parent 1445 0 R >> endobj -1458 0 obj << -/D [1456 0 R /XYZ 99.895 740.998 null] +1440 0 obj << +/D [1438 0 R /XYZ 99.895 740.998 null] >> endobj -1459 0 obj << -/D [1456 0 R /XYZ 99.895 696.263 null] +1441 0 obj << +/D [1438 0 R /XYZ 99.895 696.263 null] >> endobj -588 0 obj << -/D [1456 0 R /XYZ 99.895 699.619 null] +583 0 obj << +/D [1438 0 R /XYZ 99.895 699.619 null] >> endobj -1460 0 obj << -/D [1456 0 R /XYZ 99.895 643.15 null] +1442 0 obj << +/D [1438 0 R /XYZ 99.895 643.15 null] >> endobj -639 0 obj << -/D [1456 0 R /XYZ 99.895 588.618 null] +636 0 obj << +/D [1438 0 R /XYZ 99.895 588.618 null] >> endobj -638 0 obj << -/D [1456 0 R /XYZ 99.895 534.087 null] +635 0 obj << +/D [1438 0 R /XYZ 99.895 534.087 null] >> endobj -594 0 obj << -/D [1456 0 R /XYZ 99.895 479.555 null] +589 0 obj << +/D [1438 0 R /XYZ 99.895 479.555 null] >> endobj -595 0 obj << -/D [1456 0 R /XYZ 99.895 436.978 null] +590 0 obj << +/D [1438 0 R /XYZ 99.895 436.978 null] >> endobj -609 0 obj << -/D [1456 0 R /XYZ 99.895 394.402 null] +607 0 obj << +/D [1438 0 R /XYZ 99.895 394.402 null] >> endobj -591 0 obj << -/D [1456 0 R /XYZ 99.895 351.272 null] +586 0 obj << +/D [1438 0 R /XYZ 99.895 351.272 null] >> endobj -592 0 obj << -/D [1456 0 R /XYZ 99.895 308.696 null] +587 0 obj << +/D [1438 0 R /XYZ 99.895 308.696 null] >> endobj -1461 0 obj << -/D [1456 0 R /XYZ 99.895 266.119 null] +1443 0 obj << +/D [1438 0 R /XYZ 99.895 266.119 null] >> endobj -587 0 obj << -/D [1456 0 R /XYZ 99.895 223.543 null] +582 0 obj << +/D [1438 0 R /XYZ 99.895 223.543 null] >> endobj -1462 0 obj << -/D [1456 0 R /XYZ 99.895 181.52 null] +1444 0 obj << +/D [1438 0 R /XYZ 99.895 181.52 null] >> endobj -1455 0 obj << -/Font << /F16 439 0 R /F8 442 0 R /F17 584 0 R >> +1437 0 obj << +/Font << /F16 435 0 R /F8 438 0 R /F17 579 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1465 0 obj << +1448 0 obj << /Length 2747 >> stream @@ -17385,92 +17033,92 @@ BT 0 g 0 G [-500(M.)-443(Snir,)-471(S.)-443(Otto,)-471(S.)-443(Huss-Lederman,)-471(D.)-443(W)84(alk)27(er)-443(and)-443(J.)-443(Dongarra,)]TJ/F17 9.9626 Tf 321.124 0 Td [(MPI:)]TJ -300.645 -11.955 Td [(The)-365(Complete)-365(R)51(efer)51(enc)51(e.)-365(V)76(ol)1(ume)-366(1)-365(-)-365(The)-365(MPI)-365(Cor)51(e)]TJ/F8 9.9626 Tf 228.803 0 Td [(,)-343(sec)-1(on)1(d)-342(edition,)-343(MIT)]TJ -228.803 -11.955 Td [(Press,)-333(1998.)]TJ 0 g 0 G - 143.905 -384.558 Td [(130)]TJ + 143.905 -384.558 Td [(128)]TJ 0 g 0 G ET endstream endobj -1464 0 obj << +1447 0 obj << /Type /Page -/Contents 1465 0 R -/Resources 1463 0 R +/Contents 1448 0 R +/Resources 1446 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1450 0 R +/Parent 1445 0 R >> endobj -1466 0 obj << -/D [1464 0 R /XYZ 150.705 740.998 null] +1449 0 obj << +/D [1447 0 R /XYZ 150.705 740.998 null] >> endobj 624 0 obj << -/D [1464 0 R /XYZ 150.705 716.092 null] +/D [1447 0 R /XYZ 150.705 716.092 null] >> endobj -593 0 obj << -/D [1464 0 R /XYZ 150.705 664.064 null] +588 0 obj << +/D [1447 0 R /XYZ 150.705 664.064 null] >> endobj -590 0 obj << -/D [1464 0 R /XYZ 150.705 622.443 null] +585 0 obj << +/D [1447 0 R /XYZ 150.705 622.443 null] >> endobj -586 0 obj << -/D [1464 0 R /XYZ 150.705 576.67 null] +581 0 obj << +/D [1447 0 R /XYZ 150.705 576.67 null] >> endobj -589 0 obj << -/D [1464 0 R /XYZ 150.705 544.789 null] +584 0 obj << +/D [1447 0 R /XYZ 150.705 544.789 null] >> endobj -1467 0 obj << -/D [1464 0 R /XYZ 150.705 512.356 null] +1450 0 obj << +/D [1447 0 R /XYZ 150.705 512.356 null] >> endobj -1463 0 obj << -/Font << /F8 442 0 R /F17 584 0 R /F30 617 0 R >> +1446 0 obj << +/Font << /F8 438 0 R /F17 579 0 R /F30 616 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1468 0 obj +1451 0 obj [399.7 399.7 513.9 799.4 285.5 342.6 285.5 513.9 513.9 513.9 513.9 513.9 513.9 513.9 513.9 513.9 513.9 513.9 285.5 285.5 285.5 799.4 485.3 485.3 799.4 770.7 727.9 742.3 785 699.4 670.8 806.5 770.7 371 528.1 799.2 642.3 942 770.7 799.4 699.4 799.4 756.5 571 742.3 770.7 770.7 1056.2 770.7 770.7 628.1 285.5 513.9 285.5 513.9 285.5 285.5 513.9 571 456.8 571 457.2 314 513.9 571 285.5 314 542.4 285.5 856.5 571 513.9 571 542.4 402 405.4] endobj -1469 0 obj +1452 0 obj [892.9 339.3 892.9 585.3 892.9 585.3 892.9 892.9 892.9 892.9 892.9 892.9 892.9 1138.9 585.3 585.3 892.9 892.9 892.9 892.9 892.9 892.9 892.9 892.9 892.9 892.9 892.9 892.9 1138.9 1138.9 892.9 892.9 1138.9 1138.9 585.3 585.3 1138.9 1138.9 1138.9 892.9 1138.9 1138.9 708.3 708.3 1138.9 1138.9 1138.9 892.9 329.4 1138.9] endobj -1470 0 obj +1453 0 obj [525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525] endobj -1471 0 obj +1454 0 obj [533.6] endobj -1472 0 obj +1455 0 obj [413.2 413.2 531.3 826.4 295.1 354.2 295.1 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 295.1 295.1 295.1 826.4 501.7 501.7 826.4 795.8 752.1 767.4 811.1 722.6 693.1 833.5 795.8 382.6 545.5 825.4 663.6 972.9 795.8 826.4 722.6 826.4 781.6 590.3 767.4 795.8 795.8 1091 795.8 795.8 649.3 295.1 531.3 295.1 531.3 295.1 295.1 531.3 590.3 472.2 590.3 472.2 324.7 531.3 590.3 295.1 324.7 560.8 295.1 885.4 590.3 531.3 590.3 560.8 414.1 419.1 413.2 590.3 560.8 767.4 560.8 560.8] endobj -1473 0 obj +1456 0 obj [611.1 611.1 611.1] endobj -1474 0 obj +1457 0 obj [777.8 277.8 777.8 500 777.8 500 777.8 777.8 777.8 777.8 777.8 777.8 777.8 1000 500 500 777.8 777.8 777.8 777.8 777.8 777.8 777.8 777.8 777.8 777.8 777.8 777.8 1000 1000 777.8 777.8 1000 1000 500 500 1000 1000 1000 777.8 1000 1000 611.1 611.1 1000 1000 1000 777.8 275 1000 666.7 666.7 888.9 888.9 0 0 555.6 555.6 666.7 500 722.2 722.2 777.8 777.8 611.1 798.5 656.8 526.5 771.4 527.8 718.7 594.9 844.5 544.5 677.8 762 689.7 1200.9 820.5 796.1 695.6 816.7 847.5 605.6 544.6 625.8 612.8 987.8 713.3 668.3 724.7 666.7 666.7 666.7 666.7 666.7 611.1 611.1 444.4 444.4 444.4 444.4 500 500 388.9 388.9 277.8 500 500 611.1 500 277.8 833.3 750 833.3 416.7 666.7 666.7 777.8 777.8 444.4] endobj -1475 0 obj +1458 0 obj [339.3 892.9 585.3 892.9 585.3 610.1 859.1 863.2 819.4 934.1 838.7 724.5 889.4 935.6 506.3 632 959.9 783.7 1089.4 904.9 868.9 727.3 899.7 860.6 701.5 674.8 778.2 674.6 1074.4 936.9 671.5 778.4 462.3 462.3 462.3 1138.9 1138.9 478.2 619.7 502.4 510.5 594.7 542 557.1 557.3 668.8 404.2 472.7 607.3 361.3 1013.7 706.2 563.9 588.9 523.6 530.4] endobj -1476 0 obj +1459 0 obj [569.5 569.5 569.5 569.5 569.5 569.5 569.5 569.5 569.5 323.4] endobj -1477 0 obj +1460 0 obj [525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525] endobj -1478 0 obj +1461 0 obj [639.7 565.6 517.7 444.4 405.9 437.5 496.5 469.4 353.9 576.2 583.3 602.6 494 437.5 570 517 571.4 437.2 540.3 595.8 625.7 651.4 622.5 466.3 591.4 828.1 517 362.8 654.2 1000 1000 1000 1000 277.8 277.8 500 500 500 500 500 500 500 500 500 500 500 500 277.8 277.8 777.8 500 777.8 500 530.9 750 758.5 714.7 827.9 738.2 643.1 786.3 831.3 439.6 554.5 849.3 680.6 970.1 803.5 762.8 642 790.6 759.3 613.2 584.4 682.8 583.3 944.4 828.5 580.6 682.6 388.9 388.9 388.9 1000 1000 416.7 528.6 429.2 432.8 520.5 465.6 489.6 477 576.2 344.5 411.8 520.6 298.4 878 600.2 484.7 503.1 446.4 451.2 468.8 361.1 572.5 484.7 715.9 571.5 490.3 465.1] endobj -1479 0 obj +1462 0 obj [613.3 562.2 587.8 881.7 894.4 306.7 332.2 511.1 511.1 511.1 511.1 511.1 831.3 460 536.7 715.6 715.6 511.1 882.8 985 766.7 255.6 306.7 514.4 817.8 769.1 817.8 766.7 306.7 408.9 408.9 511.1 766.7 306.7 357.8 306.7 511.1 511.1 511.1 511.1 511.1 511.1 511.1 511.1 511.1 511.1 511.1 306.7 306.7 306.7 766.7 511.1 511.1 766.7 743.3 703.9 715.6 755 678.3 652.8 773.6 743.3 385.6 525 768.9 627.2 896.7 743.3 766.7 678.3 766.7 729.4 562.2 715.6 743.3 743.3 998.9 743.3 743.3 613.3 306.7 514.4 306.7 511.1 306.7 306.7 511.1 460 460 511.1 460 306.7 460 511.1 306.7 306.7 460 255.6 817.8 562.2 511.1 511.1 460 421.7 408.9 332.2 536.7 460 664.4 463.9 485.6] endobj -1480 0 obj +1463 0 obj [583.3 555.6 555.6 833.3 833.3 277.8 305.6 500 500 500 500 500 750 444.4 500 722.2 777.8 500 902.8 1013.9 777.8 277.8 277.8 500 833.3 500 833.3 777.8 277.8 388.9 388.9 500 777.8 277.8 333.3 277.8 500 500 500 500 500 500 500 500 500 500 500 277.8 277.8 277.8 777.8 472.2 472.2 777.8 750 708.3 722.2 763.9 680.6 652.8 784.7 750 361.1 513.9 777.8 625 916.7 750 777.8 680.6 777.8 736.1 555.6 722.2 750 750 1027.8 750 750 611.1 277.8 500 277.8 500 277.8 277.8 500 555.6 444.4 555.6 444.4 305.6 500 555.6 277.8 305.6 527.8 277.8 833.3 555.6 500 555.6 527.8 391.7 394.4 388.9 555.6 527.8 722.2 527.8 527.8 444.4 500] endobj -1481 0 obj +1464 0 obj [638.9 638.9 958.3 958.3 319.4 351.4 575 575 575 575 575 869.4 511.1 597.2 830.6 894.4 575 1041.7 1169.4 894.4 319.4 350 602.8 958.3 575 958.3 894.4 319.4 447.2 447.2 575 894.4 319.4 383.3 319.4 575 575 575 575 575 575 575 575 575 575 575 319.4 319.4 350 894.4 543.1 543.1 894.4 869.4 818.1 830.6 881.9 755.6 723.6 904.2 900 436.1 594.4 901.4 691.7 1091.7 900 863.9 786.1 863.9 862.5 638.9 800 884.7 869.4 1188.9 869.4 869.4 702.8 319.4 602.8 319.4 575 319.4 319.4 559 638.9 511.1 638.9 527.1 351.4 575 638.9 319.4 351.4 606.9 319.4 958.3 638.9 575 638.9 606.9 473.6 453.6 447.2 638.9 606.9 830.6 606.9 606.9 511.1 575 1150] endobj -1482 0 obj +1465 0 obj [726.9 688.4 700 738.4 663.4 638.4 756.7 726.9 376.9 513.4 751.9 613.4 876.9 726.9 750 663.4 750 713.4 550 700 726.9 726.9 976.9 726.9 726.9 600 300 500 300 500 300 300 500 450 450 500 450 300 450 500 300 300 450 250 800 550 500 500 450 412.5 400 325 525 450 650 450 475] endobj -1483 0 obj +1466 0 obj [625 625 937.5 937.5 312.5 343.7 562.5 562.5 562.5 562.5 562.5 849.5 500 574.1 812.5 875 562.5 1018.5 1143.5 875 312.5 342.6 581 937.5 562.5 937.5 875 312.5 437.5 437.5 562.5 875 312.5 375 312.5 562.5 562.5 562.5 562.5 562.5 562.5 562.5 562.5 562.5 562.5 562.5 312.5 312.5 342.6 875 531.2 531.2 875 849.5 799.8 812.5 862.3 738.4 707.2 884.3 879.6 419 581 880.8 675.9 1067.1 879.6 844.9 768.5 844.9 839.1 625 782.4 864.6 849.5 1162 849.5 849.5 687.5 312.5 581 312.5 562.5 312.5 312.5 546.9 625 500 625 513.3 343.7 562.5 625 312.5 343.7 593.7 312.5 937.5 625 562.5 625 593.7 459.5 443.8 437.5 625 593.7 812.5 593.7 593.7 500 562.5 1125] endobj -1484 0 obj << +1467 0 obj << /Length1 1782 /Length2 12254 /Length3 0 @@ -17630,7 +17278,7 @@ a ϲÏØÔrÒð†¼“Ò,óîõSû'ÐDz)…ìSªÞ!x°¯°£ÊœõÁíÿåq8DËå´ËQ¦ƒiåáÈ>öŒéš?駙+™ã«lÊÝmªJðoôù}܃¹Œb6 endstream endobj -1485 0 obj << +1468 0 obj << /Type /FontDescriptor /FontName /GPIGCD+CMBX10 /Flags 4 @@ -17642,9 +17290,9 @@ endobj /StemV 114 /XHeight 444 /CharSet (/A/B/C/D/E/F/G/H/I/J/L/M/N/O/P/R/S/T/U/V/a/b/c/colon/comma/d/e/eight/emdash/endash/equal/f/fi/five/fl/four/g/h/i/j/k/l/m/n/nine/o/one/p/period/q/quotedblleft/quotedblright/quoteright/r/s/seven/six/t/three/two/u/v/w/x/y/z/zero) -/FontFile 1484 0 R +/FontFile 1467 0 R >> endobj -1486 0 obj << +1469 0 obj << /Length1 1734 /Length2 10564 /Length3 0 @@ -17774,7 +17422,7 @@ BO ­Œ$*Jü1õ‘J{Y^>y†ˆKÃ=ÿb>'¿M¾9Ì|6ðÊN¤ã®ýµì%ÍíWœýÀSù5´öL6Œ_<ûTgÊM3€ìuÆÍ,€\\Co #Ž§Ñ£Gû&òä!=D×*…0DWÙÇÙÏ)@4[ÃZIz1°‹Ö˜y©‹ÄþeRaµi=˜£( Ÿ~7aÙ„¬Üæ<¢ÞÓfë@ÇJ†,˜ì^3Ç«\`D•¦€Úþ²-@ÎÒ‡)e]R³•YÖË&–½ÐÞIÆŒ½OW,aëh俯Ԯb:âôºá÷b€ðHU65uC(½"ÂmÙKxz·˜²›èMtì¯xpÙ§èlª‘¹\€7”S9žcŠ¬juðÀXlØ\‰|f6ƒxD6WYèKr±c]ûŒþ‘)êò Ž÷@Ojñß?цnšiªûJÑ:ˆ{{ž5{b° endstream endobj -1487 0 obj << +1470 0 obj << /Type /FontDescriptor /FontName /GBHFLB+CMBX12 /Flags 4 @@ -17786,9 +17434,9 @@ endobj /StemV 109 /XHeight 444 /CharSet (/A/B/C/D/E/F/G/H/I/K/L/M/N/O/P/Q/R/S/T/U/V/W/a/b/c/d/e/eight/emdash/endash/f/fi/five/four/g/h/hyphen/i/k/l/m/n/nine/o/one/p/parenleft/parenright/period/q/quoteright/r/s/seven/six/t/three/two/u/v/w/x/y/z/zero) -/FontFile 1486 0 R +/FontFile 1469 0 R >> endobj -1488 0 obj << +1471 0 obj << /Length1 1397 /Length2 9610 /Length3 0 @@ -17895,7 +17543,7 @@ gR ~Š š¹Çüž±×\xÑò<Êýo’[-¯$›LÁ]0. óäájÍÃ0˜KF‚^ú[@] /ßÛÁs9,@\ªf8š3(ŠöˆÊQ•œzQ{§X Ò– Œ{ý3GŽIñòSv»ëL…¬ ^«yR6P^1Xu3ÜBl}#›¶8¦®Gw-cd½üœö8™§´6˜‰!ã´Ýh²¶èÃòêãþ 4 ¶nÖßNu»[šÑc­#•{sTÈ\kð»~¤IÊ×®7-òOhW»¥ @Ò[Ê*$Pã7T1 endstream endobj -1489 0 obj << +1472 0 obj << /Type /FontDescriptor /FontName /XOPWSZ+CMMI10 /Flags 4 @@ -17907,9 +17555,9 @@ endobj /StemV 72 /XHeight 431 /CharSet (/A/C/D/G/I/L/N/O/P/Q/T/U/X/a/alpha/b/beta/c/comma/d/e/f/g/greater/h/i/j/k/l/less/m/n/o/p/period/r/s/t/u/v/w/x/y/z) -/FontFile 1488 0 R +/FontFile 1471 0 R >> endobj -1490 0 obj << +1473 0 obj << /Length1 745 /Length2 1242 /Length3 0 @@ -17947,7 +17595,7 @@ currentfile eexec ñPŠ?–_ %œD3´)‚/Å‘ˆdL£sw(wÞ&Mʺ™E¿Ât æ7â8k¬aò;BFåŸD¦(ÐéJø endstream endobj -1491 0 obj << +1474 0 obj << /Type /FontDescriptor /FontName /RVPZIX+CMMI5 /Flags 4 @@ -17959,9 +17607,9 @@ endobj /StemV 90 /XHeight 431 /CharSet (/i) -/FontFile 1490 0 R +/FontFile 1473 0 R >> endobj -1492 0 obj << +1475 0 obj << /Length1 907 /Length2 3553 /Length3 0 @@ -18020,7 +17668,7 @@ NØ• 7ñl‚Þµ`é–ùŸ«â¬\²Uñ‰ó·(:F'ñ½NÛ¿*Î,#Ã|T»÷ëZN÷ò`Ί‚¾³lxer3«¼bÓ­{Íã©…Î$=ü„f}mi•é‘\i}H¶ibš{‚=£ª¬3l¹#/ΊŸŠ›0¾Pé>§ãò©­Ùú.Hg½‚`É\wi³µ‚¿SNå„*¦1~œ^6#4Þ¯q[“( ÉDh”ªÈ^<ò(£À»“ÈSäEÛKÔÕ’|‚s²#qéýÑ€%Éü æ:`…Xz$RN#;Ùüm|˜Ï’°àòR•bÒ'n@¯]Z³cƒB£S7rÏéNÚ‡½óñá ÑóÙ2¸Ü\ˆ‰¤û endstream endobj -1493 0 obj << +1476 0 obj << /Type /FontDescriptor /FontName /LUIBYK+CMMI7 /Flags 4 @@ -18032,9 +17680,9 @@ endobj /StemV 81 /XHeight 431 /CharSet (/H/I/T/a/c/comma/i/j/k/m/n/r) -/FontFile 1492 0 R +/FontFile 1475 0 R >> endobj -1494 0 obj << +1477 0 obj << /Length1 2026 /Length2 14861 /Length3 0 @@ -18214,7 +17862,7 @@ z ›àã™üÿÀPŒáà•Ï€$y_É°¾a9›3“P_*Uþý“‹Ë3ï\(Ó‰Å)_0)ÄbÂãP*Qv¾×%–ޑ祫Ûù>ÍTAO˸UL`¯£'jìò¤Þ=ˆØ eðS)•Æ®¿îu*ïÎ-ô£ì•]2—æk0[] endstream endobj -1495 0 obj << +1478 0 obj << /Type /FontDescriptor /FontName /KYXPCE+CMR10 /Flags 4 @@ -18226,9 +17874,9 @@ endobj /StemV 69 /XHeight 431 /CharSet (/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/R/S/T/U/V/W/X/a/ampersand/b/bracketleft/bracketright/c/colon/comma/d/e/eight/endash/equal/f/ff/ffi/fi/five/fl/four/g/h/hyphen/i/j/k/l/m/n/nine/o/one/p/parenleft/parenright/period/plus/q/quotedblleft/quotedblright/quoteright/r/s/semicolon/seven/six/slash/t/three/two/u/v/w/x/y/z/zero) -/FontFile 1494 0 R +/FontFile 1477 0 R >> endobj -1496 0 obj << +1479 0 obj << /Length1 769 /Length2 1408 /Length3 0 @@ -18270,7 +17918,7 @@ currentfile eexec µ)&ï¹ó)/@^Ð⵸PY.¾ê—(û½#´±SáRdíúmBq-‡_'ÈI-tñø‚¡ „/÷OþL»™Kô÷6§C€w\³v#ܶ>ì"L‹“+†ò¿ÜÓüà•Â½”þa+‹YEoÎ endstream endobj -1497 0 obj << +1480 0 obj << /Type /FontDescriptor /FontName /YPSQTS+CMR6 /Flags 4 @@ -18282,9 +17930,9 @@ endobj /StemV 83 /XHeight 431 /CharSet (/one/three/two) -/FontFile 1496 0 R +/FontFile 1479 0 R >> endobj -1498 0 obj << +1481 0 obj << /Length1 787 /Length2 1497 /Length3 0 @@ -18328,7 +17976,7 @@ _2 ¡b›x}‰èË÷…¹Òºz’™­ºs7'þõ¸­)Æãõ8-X“ûTåG`û‡9?óPíe•úã“:– “^­‘3¶›‚~§ÍhécîxbkÜå1!o^ëå™KÙWk«ìi7ݱ‚=3OÿÕá£ßø äô¼|ó endstream endobj -1499 0 obj << +1482 0 obj << /Type /FontDescriptor /FontName /EWABFK+CMR7 /Flags 4 @@ -18340,9 +17988,9 @@ endobj /StemV 79 /XHeight 431 /CharSet (/colon/one/three/two) -/FontFile 1498 0 R +/FontFile 1481 0 R >> endobj -1500 0 obj << +1483 0 obj << /Length1 1462 /Length2 8120 /Length3 0 @@ -18451,7 +18099,7 @@ j ë4×éùïwš4“n½]{­ŽÂô§–sú,r/Lˤ/ÝS.$Vܤ˜¶i¼+±WJv契Ž´*ö9Ã6\éu>£ÀtGÁ”Ûý¿Ò'3 (ªh[æ‚ð˜ÅWÿžu º×:=»´bA¦‡àB涌ÂMÄða§Ýw’rº“ºÏÛ–¥,Ë¿OÝS2 ?3w·;§Â/nÊJ0Rã}CpÒSé^™:Ò¶Õzâê3Ì|8¦Võg¾Ã¡µ`Æ~ä17Æ[|~9dy_*z€UIJ@ö®{t”¤åØVKƒÒ;S¯ˆÿ±’m¤£¥‰Hçî³¼ –$úX`ÝWçªÂúôÔ>Œ—:þ8ùæ÷¿³ÁE4•¾Ÿ¼3 w¼>0—Mñoƒ›vºÒL–xy÷rbQ¡ƒUˆ0_tœ¹ºu™'Iá^mÇÉ]*äÉÊ—:¬Ý\ ÛÝxK»gD÷«Ù³Õ=I8­ŠºÒ-œvx`%QÓ¢8ê™ÍEºïê+@eXnž"V¶¼ðæÅ"Ƀe‚¿Sñ:®wS%d›9Ñž#Ä`ž˜íÔ’Õ²ˆð¬ËmûMBeäPnpbÜ“^mäïbÅÃK0¾m1÷R\&òÄe{b"ŒŒW{u“ˆ)W2x cšµ9è¡|課#ᎹºJš¾ì—H1ÒTÚ³v®n-F `¢Çî5*…¨¸G™1–¯}YûŠª¹ª•ÛÚωà?ñõ‚dUfÒ o.nÔIƒ”fDg¬ðŒ/'@Tîø|Ú>1ÐØø£éU.Byþ.‘Ʀ¸25mª¹<Ês Ò—OËÇP œ®Ì÷·bM×v¬mšö¿ý²e…ö;ã{'½ì>Œ;×sáyâlµ’ØÀf9k Ƕz<È#Ž ý¤ËSðž>"zµQµ’N<)W”°ni}À;žá½!“@æe¬Þâ± šÃW&è‚=ù»ä÷óFÝÎXËÙå²Í1.8.†ˆvi˜äƒ. &×SÓ¬Ú74ÀÕRP¹ú´QC‹îNjÁ8Òq½ïàákYDå¢X4Ö±Htç7€ Azd5ZŒ†ã¿¾¹çÓ)05—ØN$HÑé=R§K+‚²h`Pèù†T¿3Œ®'/(#ž+UŠ5¤A³Î-¢ŒT endstream endobj -1501 0 obj << +1484 0 obj << /Type /FontDescriptor /FontName /TDRORS+CMR8 /Flags 4 @@ -18463,9 +18111,9 @@ endobj /StemV 76 /XHeight 431 /CharSet (/B/G/I/L/O/P/T/X/a/b/c/comma/d/e/eight/f/five/four/g/h/hyphen/i/l/m/n/nine/o/one/p/parenleft/parenright/period/q/r/s/seven/six/slash/t/three/two/u/v/w/x/y/zero) -/FontFile 1500 0 R +/FontFile 1483 0 R >> endobj -1502 0 obj << +1485 0 obj << /Length1 1125 /Length2 4765 /Length3 0 @@ -18554,7 +18202,7 @@ _ Ð*B¾ŠF™šcpB¬„©žò D…ÆýÄÃøÁ> endobj -1504 0 obj << +1487 0 obj << /Length1 1050 /Length2 2900 /Length3 0 @@ -18635,7 +18283,7 @@ R c’$”݈9`l¶|‰2*2Nú´u4œýÕâôv=¤rl³MÌp+§’…¶5ô†ÔÀµ‡™iu1Y@ãœ1[;îLE›êGÓa]:œ”Ó³öã_‰Uš¨–‘Îo#¿ÞÅÌ!|NWüÚè endstream endobj -1505 0 obj << +1488 0 obj << /Type /FontDescriptor /FontName /IMOIOS+CMSY10 /Flags 4 @@ -18647,9 +18295,9 @@ endobj /StemV 85 /XHeight 431 /CharSet (/B/H/I/arrowleft/bar/bardbl/braceleft/braceright/bullet/element/greaterequal/lessequal/minus/negationslash/radical/section) -/FontFile 1504 0 R +/FontFile 1487 0 R >> endobj -1506 0 obj << +1489 0 obj << /Length1 766 /Length2 759 /Length3 0 @@ -18687,7 +18335,7 @@ h aaT'/D…/¦v2_ÅIô÷*’XÆé¼VMäGoÆéjeÃï÷‚x"¡‘<Õ©O=}µL¾8QWÃYΞ^L„רFHyü˜ÈB9Ê2Îo¯G¥¾bv0„òÆ… 4…Fv1wz MrÀs1§‡zå; r‘*)!´î Ý·Š´ÿÝÔÕVåÕG•8 z±» Ó(O»û+¸iruþdtîOª=eb®|˜Œ‘Ô¤c<…=>òƒ?†!ÒêuóÿG\ïD3/dÈZ2)#Yboµ£˜B§cn“d¿lXë0 ]Ò%ÉMEÚmu`ò©bNßʾ”ËL›ìsë7§F„“qò¿'Z¿TÇ©c9$À ÑPâü<”»ÏÚ endstream endobj -1507 0 obj << +1490 0 obj << /Type /FontDescriptor /FontName /XNLILI+CMSY7 /Flags 4 @@ -18699,9 +18347,9 @@ endobj /StemV 93 /XHeight 431 /CharSet (/infinity/minus) -/FontFile 1506 0 R +/FontFile 1489 0 R >> endobj -1508 0 obj << +1491 0 obj << /Length1 1572 /Length2 12132 /Length3 0 @@ -18848,7 +18496,7 @@ fi ƒ­Öc@^ÕÝË´rF_¯ŒX"1ÁÖbvßÁŠÀšûòÅ5þŽÎ˜Ž×þpŒÚš5ã0²'ºÞ” ÛJ§­¦ i÷ïI•€LU·+K¹ïø,xæ㤱„‰2Dwé†îÆ®7d-ÿ΀Ðê¡­Î/»€È­ÎÍËIÄÌÃ5|Ÿr¥JÍã3ú‰Ï& endstream endobj -1509 0 obj << +1492 0 obj << /Type /FontDescriptor /FontName /HBJLDT+CMTI10 /Flags 4 @@ -18860,9 +18508,9 @@ endobj /StemV 68 /XHeight 431 /CharSet (/A/B/C/D/E/F/G/I/L/M/N/O/P/R/S/T/U/V/a/b/c/colon/d/e/f/ff/fi/five/g/h/hyphen/i/j/l/m/n/nine/o/one/p/period/q/quoteright/r/s/slash/t/three/two/u/v/w/x/y/zero) -/FontFile 1508 0 R +/FontFile 1491 0 R >> endobj -1510 0 obj << +1493 0 obj << /Length1 1067 /Length2 5106 /Length3 0 @@ -18937,7 +18585,7 @@ Hn4*/ éÆ 'dŠÿDZ@Oëÿ{Ll§æR%M…]> endobj -1512 0 obj << +1495 0 obj << /Length1 1866 /Length2 11720 /Length3 0 @@ -19099,7 +18747,7 @@ u) âÇ9îÎh¾•·õàû&ô•ýÒ‡Û5KÉÈ·híûqº!þÓ¦!Y’ìÂJ”É+m¨4êJù9ðɬ>|%¶©D(åìBè%Q¼]21jl7þ’ÑN¥‚ž5§Ö£lE¯ f_бieè¨2“„#«©!Ÿo<ã3‚™Üà3 =¯ërôEgMÓÕ‡^-Ì&p¢%ßѵùLæ„7@³¾~¤Üá _Õ`Ylk´S"7’Á½e vR-¬ñ#-èt’þâ[»Hš,'½Y#ÑçX³ÌoÇÿñF6&ùSPu~dÃkĵ\;žÏèpðb¸3^æwÍ.øÊ•¿oEUí²PöQiýò‡oš;MˆzØItÔ%7ºÇïK±Ã¥Q‰{„ñÀªÑ½±]]0¼ñ͈®ß;ÇÐÛ }MlÈ0gÙd€ŽWË™ƒ Åâ6“=$'ÿ:T·nP« C›Iu…ë ôãk/°ÚÁmñ¿€Vû+U6 äF‡Zïxþ 6 endstream endobj -1513 0 obj << +1496 0 obj << /Type /FontDescriptor /FontName /ATJOAU+CMTT10 /Flags 4 @@ -19111,9 +18759,9 @@ endobj /StemV 69 /XHeight 431 /CharSet (/A/B/C/D/E/F/I/K/L/M/N/O/P/R/S/T/U/W/Y/a/ampersand/asciitilde/asterisk/b/backslash/bracketleft/bracketright/c/colon/comma/d/e/equal/f/five/four/g/h/hyphen/i/j/k/l/m/n/nine/o/one/p/parenleft/parenright/percent/period/plus/q/r/s/six/slash/t/three/two/u/underscore/v/w/x/y/z/zero) -/FontFile 1512 0 R +/FontFile 1495 0 R >> endobj -1514 0 obj << +1497 0 obj << /Length1 1289 /Length2 5599 /Length3 0 @@ -19203,7 +18851,7 @@ z(# uÆÏOWX*ðBR¦Á{ endstream endobj -1515 0 obj << +1498 0 obj << /Type /FontDescriptor /FontName /LEILHS+CMTT9 /Flags 4 @@ -19215,998 +18863,990 @@ endobj /StemV 74 /XHeight 431 /CharSet (/a/b/c/colon/comma/d/e/equal/f/g/h/i/k/l/m/n/nine/o/one/p/parenleft/parenright/period/q/quoteright/r/s/t/two/u/underscore/v/x/y/z) -/FontFile 1514 0 R +/FontFile 1497 0 R >> endobj -441 0 obj << +437 0 obj << /Type /Font /Subtype /Type1 /BaseFont /GPIGCD+CMBX10 -/FontDescriptor 1485 0 R +/FontDescriptor 1468 0 R /FirstChar 12 /LastChar 124 -/Widths 1481 0 R +/Widths 1464 0 R >> endobj -439 0 obj << +435 0 obj << /Type /Font /Subtype /Type1 /BaseFont /GBHFLB+CMBX12 -/FontDescriptor 1487 0 R +/FontDescriptor 1470 0 R /FirstChar 12 /LastChar 124 -/Widths 1483 0 R +/Widths 1466 0 R >> endobj -603 0 obj << +599 0 obj << /Type /Font /Subtype /Type1 /BaseFont /XOPWSZ+CMMI10 -/FontDescriptor 1489 0 R +/FontDescriptor 1472 0 R /FirstChar 11 /LastChar 122 -/Widths 1478 0 R +/Widths 1461 0 R >> endobj -650 0 obj << +647 0 obj << /Type /Font /Subtype /Type1 /BaseFont /RVPZIX+CMMI5 -/FontDescriptor 1491 0 R +/FontDescriptor 1474 0 R /FirstChar 105 /LastChar 105 -/Widths 1471 0 R +/Widths 1454 0 R >> endobj -619 0 obj << +618 0 obj << /Type /Font /Subtype /Type1 /BaseFont /LUIBYK+CMMI7 -/FontDescriptor 1493 0 R +/FontDescriptor 1476 0 R /FirstChar 59 /LastChar 114 -/Widths 1475 0 R +/Widths 1458 0 R >> endobj -442 0 obj << +438 0 obj << /Type /Font /Subtype /Type1 /BaseFont /KYXPCE+CMR10 -/FontDescriptor 1495 0 R +/FontDescriptor 1478 0 R /FirstChar 11 /LastChar 123 -/Widths 1480 0 R +/Widths 1463 0 R >> endobj -621 0 obj << +620 0 obj << /Type /Font /Subtype /Type1 /BaseFont /YPSQTS+CMR6 -/FontDescriptor 1497 0 R +/FontDescriptor 1480 0 R /FirstChar 49 /LastChar 51 -/Widths 1473 0 R +/Widths 1456 0 R >> endobj -618 0 obj << +617 0 obj << /Type /Font /Subtype /Type1 /BaseFont /EWABFK+CMR7 -/FontDescriptor 1499 0 R +/FontDescriptor 1482 0 R /FirstChar 49 /LastChar 58 -/Widths 1476 0 R +/Widths 1459 0 R >> endobj -623 0 obj << +622 0 obj << /Type /Font /Subtype /Type1 /BaseFont /TDRORS+CMR8 -/FontDescriptor 1501 0 R +/FontDescriptor 1484 0 R /FirstChar 40 /LastChar 121 -/Widths 1472 0 R +/Widths 1455 0 R >> endobj -959 0 obj << +941 0 obj << /Type /Font /Subtype /Type1 /BaseFont /HLSVSX+CMR9 -/FontDescriptor 1503 0 R +/FontDescriptor 1486 0 R /FirstChar 40 /LastChar 115 -/Widths 1468 0 R +/Widths 1451 0 R >> endobj -620 0 obj << +619 0 obj << /Type /Font /Subtype /Type1 /BaseFont /IMOIOS+CMSY10 -/FontDescriptor 1505 0 R +/FontDescriptor 1488 0 R /FirstChar 0 /LastChar 120 -/Widths 1474 0 R +/Widths 1457 0 R >> endobj -882 0 obj << +865 0 obj << /Type /Font /Subtype /Type1 /BaseFont /XNLILI+CMSY7 -/FontDescriptor 1507 0 R +/FontDescriptor 1490 0 R /FirstChar 0 /LastChar 49 -/Widths 1469 0 R +/Widths 1452 0 R >> endobj -584 0 obj << +579 0 obj << /Type /Font /Subtype /Type1 /BaseFont /HBJLDT+CMTI10 -/FontDescriptor 1509 0 R +/FontDescriptor 1492 0 R /FirstChar 11 /LastChar 121 -/Widths 1479 0 R +/Widths 1462 0 R >> endobj -440 0 obj << +436 0 obj << /Type /Font /Subtype /Type1 /BaseFont /OZJPZO+CMTI12 -/FontDescriptor 1511 0 R +/FontDescriptor 1494 0 R /FirstChar 65 /LastChar 121 -/Widths 1482 0 R +/Widths 1465 0 R >> endobj -617 0 obj << +616 0 obj << /Type /Font /Subtype /Type1 /BaseFont /ATJOAU+CMTT10 -/FontDescriptor 1513 0 R +/FontDescriptor 1496 0 R /FirstChar 37 /LastChar 126 -/Widths 1477 0 R +/Widths 1460 0 R >> endobj -762 0 obj << +746 0 obj << /Type /Font /Subtype /Type1 /BaseFont /LEILHS+CMTT9 -/FontDescriptor 1515 0 R +/FontDescriptor 1498 0 R /FirstChar 39 /LastChar 122 -/Widths 1470 0 R +/Widths 1453 0 R >> endobj -443 0 obj << +439 0 obj << /Type /Pages /Count 6 -/Parent 1516 0 R -/Kids [434 0 R 445 0 R 493 0 R 546 0 R 564 0 R 568 0 R] +/Parent 1499 0 R +/Kids [430 0 R 441 0 R 489 0 R 541 0 R 559 0 R 563 0 R] >> endobj -585 0 obj << +580 0 obj << /Type /Pages /Count 6 -/Parent 1516 0 R -/Kids [582 0 R 601 0 R 614 0 R 629 0 R 643 0 R 647 0 R] +/Parent 1499 0 R +/Kids [577 0 R 597 0 R 613 0 R 627 0 R 640 0 R 644 0 R] >> endobj -676 0 obj << +674 0 obj << /Type /Pages /Count 6 -/Parent 1516 0 R -/Kids [660 0 R 679 0 R 685 0 R 695 0 R 709 0 R 715 0 R] +/Parent 1499 0 R +/Kids [660 0 R 676 0 R 682 0 R 688 0 R 704 0 R 711 0 R] >> endobj -728 0 obj << +721 0 obj << /Type /Pages /Count 6 -/Parent 1516 0 R -/Kids [724 0 R 730 0 R 736 0 R 744 0 R 752 0 R 759 0 R] +/Parent 1499 0 R +/Kids [717 0 R 724 0 R 736 0 R 743 0 R 750 0 R 756 0 R] >> endobj -770 0 obj << +765 0 obj << /Type /Pages /Count 6 -/Parent 1516 0 R -/Kids [767 0 R 774 0 R 779 0 R 784 0 R 794 0 R 799 0 R] +/Parent 1499 0 R +/Kids [761 0 R 767 0 R 777 0 R 782 0 R 790 0 R 795 0 R] >> endobj -811 0 obj << +807 0 obj << /Type /Pages /Count 6 -/Parent 1516 0 R -/Kids [807 0 R 813 0 R 821 0 R 826 0 R 832 0 R 839 0 R] +/Parent 1499 0 R +/Kids [803 0 R 809 0 R 815 0 R 822 0 R 829 0 R 836 0 R] >> endobj -850 0 obj << +844 0 obj << /Type /Pages /Count 6 -/Parent 1517 0 R -/Kids [846 0 R 854 0 R 859 0 R 865 0 R 872 0 R 879 0 R] +/Parent 1500 0 R +/Kids [841 0 R 848 0 R 855 0 R 862 0 R 872 0 R 886 0 R] >> endobj 896 0 obj << /Type /Pages /Count 6 -/Parent 1517 0 R -/Kids [889 0 R 904 0 R 910 0 R 919 0 R 925 0 R 930 0 R] +/Parent 1500 0 R +/Kids [892 0 R 902 0 R 908 0 R 913 0 R 920 0 R 928 0 R] >> endobj -941 0 obj << +942 0 obj << /Type /Pages /Count 6 -/Parent 1517 0 R -/Kids [937 0 R 946 0 R 956 0 R 963 0 R 972 0 R 980 0 R] +/Parent 1500 0 R +/Kids [938 0 R 946 0 R 955 0 R 963 0 R 967 0 R 978 0 R] >> endobj -987 0 obj << +986 0 obj << /Type /Pages /Count 6 -/Parent 1517 0 R -/Kids [984 0 R 996 0 R 1001 0 R 1007 0 R 1012 0 R 1016 0 R] +/Parent 1500 0 R +/Kids [983 0 R 990 0 R 995 0 R 999 0 R 1004 0 R 1009 0 R] >> endobj -1025 0 obj << +1022 0 obj << /Type /Pages /Count 6 -/Parent 1517 0 R -/Kids [1021 0 R 1027 0 R 1036 0 R 1042 0 R 1050 0 R 1057 0 R] +/Parent 1500 0 R +/Kids [1018 0 R 1025 0 R 1033 0 R 1040 0 R 1045 0 R 1051 0 R] >> endobj -1065 0 obj << +1060 0 obj << /Type /Pages /Count 6 -/Parent 1517 0 R -/Kids [1062 0 R 1069 0 R 1073 0 R 1081 0 R 1091 0 R 1095 0 R] +/Parent 1500 0 R +/Kids [1055 0 R 1064 0 R 1074 0 R 1078 0 R 1090 0 R 1096 0 R] >> endobj -1112 0 obj << +1108 0 obj << /Type /Pages /Count 6 -/Parent 1518 0 R -/Kids [1107 0 R 1114 0 R 1123 0 R 1129 0 R 1135 0 R 1140 0 R] +/Parent 1501 0 R +/Kids [1105 0 R 1112 0 R 1118 0 R 1123 0 R 1127 0 R 1134 0 R] >> endobj -1149 0 obj << +1142 0 obj << /Type /Pages /Count 6 -/Parent 1518 0 R -/Kids [1144 0 R 1152 0 R 1157 0 R 1161 0 R 1166 0 R 1170 0 R] +/Parent 1501 0 R +/Kids [1139 0 R 1144 0 R 1149 0 R 1153 0 R 1160 0 R 1165 0 R] >> endobj -1180 0 obj << +1175 0 obj << /Type /Pages /Count 6 -/Parent 1518 0 R -/Kids [1177 0 R 1183 0 R 1189 0 R 1195 0 R 1201 0 R 1207 0 R] +/Parent 1501 0 R +/Kids [1171 0 R 1178 0 R 1184 0 R 1190 0 R 1197 0 R 1204 0 R] >> endobj -1219 0 obj << +1214 0 obj << /Type /Pages /Count 6 -/Parent 1518 0 R -/Kids [1214 0 R 1222 0 R 1226 0 R 1236 0 R 1240 0 R 1244 0 R] +/Parent 1501 0 R +/Kids [1208 0 R 1219 0 R 1223 0 R 1227 0 R 1240 0 R 1244 0 R] >> endobj -1260 0 obj << +1255 0 obj << /Type /Pages /Count 6 -/Parent 1518 0 R -/Kids [1257 0 R 1262 0 R 1268 0 R 1274 0 R 1281 0 R 1285 0 R] +/Parent 1501 0 R +/Kids [1250 0 R 1257 0 R 1264 0 R 1268 0 R 1272 0 R 1276 0 R] >> endobj -1292 0 obj << +1283 0 obj << /Type /Pages /Count 6 -/Parent 1518 0 R -/Kids [1289 0 R 1294 0 R 1298 0 R 1302 0 R 1306 0 R 1312 0 R] +/Parent 1501 0 R +/Kids [1280 0 R 1285 0 R 1289 0 R 1295 0 R 1301 0 R 1307 0 R] >> endobj -1323 0 obj << +1318 0 obj << /Type /Pages /Count 6 -/Parent 1519 0 R -/Kids [1318 0 R 1325 0 R 1331 0 R 1337 0 R 1342 0 R 1349 0 R] +/Parent 1502 0 R +/Kids [1313 0 R 1320 0 R 1325 0 R 1332 0 R 1338 0 R 1342 0 R] >> endobj -1358 0 obj << +1349 0 obj << /Type /Pages /Count 6 -/Parent 1519 0 R -/Kids [1355 0 R 1360 0 R 1364 0 R 1368 0 R 1372 0 R 1376 0 R] +/Parent 1502 0 R +/Kids [1346 0 R 1351 0 R 1355 0 R 1359 0 R 1364 0 R 1369 0 R] >> endobj -1384 0 obj << +1377 0 obj << /Type /Pages /Count 6 -/Parent 1519 0 R -/Kids [1381 0 R 1387 0 R 1392 0 R 1396 0 R 1401 0 R 1405 0 R] +/Parent 1502 0 R +/Kids [1374 0 R 1379 0 R 1384 0 R 1388 0 R 1394 0 R 1403 0 R] >> endobj -1415 0 obj << +1412 0 obj << /Type /Pages /Count 6 -/Parent 1519 0 R -/Kids [1411 0 R 1421 0 R 1427 0 R 1432 0 R 1436 0 R 1442 0 R] +/Parent 1502 0 R +/Kids [1409 0 R 1415 0 R 1419 0 R 1425 0 R 1430 0 R 1434 0 R] >> endobj -1450 0 obj << +1445 0 obj << /Type /Pages -/Count 4 -/Parent 1519 0 R -/Kids [1447 0 R 1452 0 R 1456 0 R 1464 0 R] +/Count 2 +/Parent 1502 0 R +/Kids [1438 0 R 1447 0 R] >> endobj -1516 0 obj << +1499 0 obj << /Type /Pages /Count 36 -/Parent 1520 0 R -/Kids [443 0 R 585 0 R 676 0 R 728 0 R 770 0 R 811 0 R] +/Parent 1503 0 R +/Kids [439 0 R 580 0 R 674 0 R 721 0 R 765 0 R 807 0 R] >> endobj -1517 0 obj << +1500 0 obj << /Type /Pages /Count 36 -/Parent 1520 0 R -/Kids [850 0 R 896 0 R 941 0 R 987 0 R 1025 0 R 1065 0 R] +/Parent 1503 0 R +/Kids [844 0 R 896 0 R 942 0 R 986 0 R 1022 0 R 1060 0 R] >> endobj -1518 0 obj << +1501 0 obj << /Type /Pages /Count 36 -/Parent 1520 0 R -/Kids [1112 0 R 1149 0 R 1180 0 R 1219 0 R 1260 0 R 1292 0 R] +/Parent 1503 0 R +/Kids [1108 0 R 1142 0 R 1175 0 R 1214 0 R 1255 0 R 1283 0 R] >> endobj -1519 0 obj << +1502 0 obj << /Type /Pages -/Count 28 -/Parent 1520 0 R -/Kids [1323 0 R 1358 0 R 1384 0 R 1415 0 R 1450 0 R] +/Count 26 +/Parent 1503 0 R +/Kids [1318 0 R 1349 0 R 1377 0 R 1412 0 R 1445 0 R] >> endobj -1520 0 obj << +1503 0 obj << /Type /Pages -/Count 136 -/Kids [1516 0 R 1517 0 R 1518 0 R 1519 0 R] +/Count 134 +/Kids [1499 0 R 1500 0 R 1501 0 R 1502 0 R] >> endobj -1521 0 obj << +1504 0 obj << /Type /Outlines /First 7 0 R /Last 7 0 R /Count 1 >> endobj -431 0 obj << -/Title 432 0 R -/A 429 0 R -/Parent 427 0 R ->> endobj 427 0 obj << /Title 428 0 R /A 425 0 R -/Parent 7 0 R -/Prev 407 0 R -/First 431 0 R -/Last 431 0 R -/Count -1 +/Parent 423 0 R >> endobj 423 0 obj << /Title 424 0 R /A 421 0 R -/Parent 407 0 R -/Prev 419 0 R +/Parent 7 0 R +/Prev 403 0 R +/First 427 0 R +/Last 427 0 R +/Count -1 >> endobj 419 0 obj << /Title 420 0 R /A 417 0 R -/Parent 407 0 R +/Parent 403 0 R /Prev 415 0 R -/Next 423 0 R >> endobj 415 0 obj << /Title 416 0 R /A 413 0 R -/Parent 407 0 R +/Parent 403 0 R /Prev 411 0 R /Next 419 0 R >> endobj 411 0 obj << /Title 412 0 R /A 409 0 R -/Parent 407 0 R +/Parent 403 0 R +/Prev 407 0 R /Next 415 0 R >> endobj 407 0 obj << /Title 408 0 R /A 405 0 R -/Parent 7 0 R -/Prev 383 0 R -/Next 427 0 R -/First 411 0 R -/Last 423 0 R -/Count -4 +/Parent 403 0 R +/Next 411 0 R >> endobj 403 0 obj << /Title 404 0 R /A 401 0 R -/Parent 387 0 R -/Prev 399 0 R +/Parent 7 0 R +/Prev 379 0 R +/Next 423 0 R +/First 407 0 R +/Last 419 0 R +/Count -4 >> endobj 399 0 obj << /Title 400 0 R /A 397 0 R -/Parent 387 0 R +/Parent 383 0 R /Prev 395 0 R -/Next 403 0 R >> endobj 395 0 obj << /Title 396 0 R /A 393 0 R -/Parent 387 0 R +/Parent 383 0 R /Prev 391 0 R /Next 399 0 R >> endobj 391 0 obj << /Title 392 0 R /A 389 0 R -/Parent 387 0 R +/Parent 383 0 R +/Prev 387 0 R /Next 395 0 R >> endobj 387 0 obj << /Title 388 0 R /A 385 0 R /Parent 383 0 R -/First 391 0 R -/Last 403 0 R -/Count -4 +/Next 391 0 R >> endobj 383 0 obj << /Title 384 0 R /A 381 0 R -/Parent 7 0 R -/Prev 363 0 R -/Next 407 0 R +/Parent 379 0 R /First 387 0 R -/Last 387 0 R -/Count -1 +/Last 399 0 R +/Count -4 >> endobj 379 0 obj << /Title 380 0 R /A 377 0 R -/Parent 363 0 R -/Prev 375 0 R +/Parent 7 0 R +/Prev 359 0 R +/Next 403 0 R +/First 383 0 R +/Last 383 0 R +/Count -1 >> endobj 375 0 obj << /Title 376 0 R /A 373 0 R -/Parent 363 0 R +/Parent 359 0 R /Prev 371 0 R -/Next 379 0 R >> endobj 371 0 obj << /Title 372 0 R /A 369 0 R -/Parent 363 0 R +/Parent 359 0 R /Prev 367 0 R /Next 375 0 R >> endobj 367 0 obj << /Title 368 0 R /A 365 0 R -/Parent 363 0 R +/Parent 359 0 R +/Prev 363 0 R /Next 371 0 R >> endobj 363 0 obj << /Title 364 0 R /A 361 0 R -/Parent 7 0 R -/Prev 295 0 R -/Next 383 0 R -/First 367 0 R -/Last 379 0 R -/Count -4 +/Parent 359 0 R +/Next 367 0 R >> endobj 359 0 obj << /Title 360 0 R /A 357 0 R -/Parent 295 0 R -/Prev 355 0 R +/Parent 7 0 R +/Prev 291 0 R +/Next 379 0 R +/First 363 0 R +/Last 375 0 R +/Count -4 >> endobj 355 0 obj << /Title 356 0 R /A 353 0 R -/Parent 295 0 R +/Parent 291 0 R /Prev 351 0 R -/Next 359 0 R >> endobj 351 0 obj << /Title 352 0 R /A 349 0 R -/Parent 295 0 R +/Parent 291 0 R /Prev 347 0 R /Next 355 0 R >> endobj 347 0 obj << /Title 348 0 R /A 345 0 R -/Parent 295 0 R +/Parent 291 0 R /Prev 343 0 R /Next 351 0 R >> endobj 343 0 obj << /Title 344 0 R /A 341 0 R -/Parent 295 0 R +/Parent 291 0 R /Prev 339 0 R /Next 347 0 R >> endobj 339 0 obj << /Title 340 0 R /A 337 0 R -/Parent 295 0 R +/Parent 291 0 R /Prev 335 0 R /Next 343 0 R >> endobj 335 0 obj << /Title 336 0 R /A 333 0 R -/Parent 295 0 R +/Parent 291 0 R /Prev 331 0 R /Next 339 0 R >> endobj 331 0 obj << /Title 332 0 R /A 329 0 R -/Parent 295 0 R +/Parent 291 0 R /Prev 327 0 R /Next 335 0 R >> endobj 327 0 obj << /Title 328 0 R /A 325 0 R -/Parent 295 0 R +/Parent 291 0 R /Prev 323 0 R /Next 331 0 R >> endobj 323 0 obj << /Title 324 0 R /A 321 0 R -/Parent 295 0 R +/Parent 291 0 R /Prev 319 0 R /Next 327 0 R >> endobj 319 0 obj << /Title 320 0 R /A 317 0 R -/Parent 295 0 R +/Parent 291 0 R /Prev 315 0 R /Next 323 0 R >> endobj 315 0 obj << /Title 316 0 R /A 313 0 R -/Parent 295 0 R +/Parent 291 0 R /Prev 311 0 R /Next 319 0 R >> endobj 311 0 obj << /Title 312 0 R /A 309 0 R -/Parent 295 0 R +/Parent 291 0 R /Prev 307 0 R /Next 315 0 R >> endobj 307 0 obj << /Title 308 0 R /A 305 0 R -/Parent 295 0 R +/Parent 291 0 R /Prev 303 0 R /Next 311 0 R >> endobj 303 0 obj << /Title 304 0 R /A 301 0 R -/Parent 295 0 R +/Parent 291 0 R /Prev 299 0 R /Next 307 0 R >> endobj 299 0 obj << /Title 300 0 R /A 297 0 R -/Parent 295 0 R +/Parent 291 0 R +/Prev 295 0 R /Next 303 0 R >> endobj 295 0 obj << /Title 296 0 R /A 293 0 R -/Parent 7 0 R -/Prev 183 0 R -/Next 363 0 R -/First 299 0 R -/Last 359 0 R -/Count -16 +/Parent 291 0 R +/Next 299 0 R >> endobj 291 0 obj << /Title 292 0 R /A 289 0 R -/Parent 183 0 R -/Prev 287 0 R +/Parent 7 0 R +/Prev 179 0 R +/Next 359 0 R +/First 295 0 R +/Last 355 0 R +/Count -16 >> endobj 287 0 obj << /Title 288 0 R /A 285 0 R -/Parent 183 0 R +/Parent 179 0 R /Prev 283 0 R -/Next 291 0 R >> endobj 283 0 obj << /Title 284 0 R /A 281 0 R -/Parent 183 0 R +/Parent 179 0 R /Prev 279 0 R /Next 287 0 R >> endobj 279 0 obj << /Title 280 0 R /A 277 0 R -/Parent 183 0 R +/Parent 179 0 R /Prev 275 0 R /Next 283 0 R >> endobj 275 0 obj << /Title 276 0 R /A 273 0 R -/Parent 183 0 R +/Parent 179 0 R /Prev 271 0 R /Next 279 0 R >> endobj 271 0 obj << /Title 272 0 R /A 269 0 R -/Parent 183 0 R +/Parent 179 0 R /Prev 267 0 R /Next 275 0 R >> endobj 267 0 obj << /Title 268 0 R /A 265 0 R -/Parent 183 0 R +/Parent 179 0 R /Prev 263 0 R /Next 271 0 R >> endobj 263 0 obj << /Title 264 0 R /A 261 0 R -/Parent 183 0 R +/Parent 179 0 R /Prev 259 0 R /Next 267 0 R >> endobj 259 0 obj << /Title 260 0 R /A 257 0 R -/Parent 183 0 R +/Parent 179 0 R /Prev 255 0 R /Next 263 0 R >> endobj 255 0 obj << /Title 256 0 R /A 253 0 R -/Parent 183 0 R +/Parent 179 0 R /Prev 251 0 R /Next 259 0 R >> endobj 251 0 obj << /Title 252 0 R /A 249 0 R -/Parent 183 0 R +/Parent 179 0 R /Prev 247 0 R /Next 255 0 R >> endobj 247 0 obj << /Title 248 0 R /A 245 0 R -/Parent 183 0 R +/Parent 179 0 R /Prev 243 0 R /Next 251 0 R >> endobj 243 0 obj << /Title 244 0 R /A 241 0 R -/Parent 183 0 R +/Parent 179 0 R /Prev 239 0 R /Next 247 0 R >> endobj 239 0 obj << /Title 240 0 R /A 237 0 R -/Parent 183 0 R +/Parent 179 0 R /Prev 235 0 R /Next 243 0 R >> endobj 235 0 obj << /Title 236 0 R /A 233 0 R -/Parent 183 0 R +/Parent 179 0 R /Prev 231 0 R /Next 239 0 R >> endobj 231 0 obj << /Title 232 0 R /A 229 0 R -/Parent 183 0 R +/Parent 179 0 R /Prev 227 0 R /Next 235 0 R >> endobj 227 0 obj << /Title 228 0 R /A 225 0 R -/Parent 183 0 R +/Parent 179 0 R /Prev 223 0 R /Next 231 0 R >> endobj 223 0 obj << /Title 224 0 R /A 221 0 R -/Parent 183 0 R +/Parent 179 0 R /Prev 219 0 R /Next 227 0 R >> endobj 219 0 obj << /Title 220 0 R /A 217 0 R -/Parent 183 0 R +/Parent 179 0 R /Prev 215 0 R /Next 223 0 R >> endobj 215 0 obj << /Title 216 0 R /A 213 0 R -/Parent 183 0 R +/Parent 179 0 R /Prev 211 0 R /Next 219 0 R >> endobj 211 0 obj << /Title 212 0 R /A 209 0 R -/Parent 183 0 R +/Parent 179 0 R /Prev 207 0 R /Next 215 0 R >> endobj 207 0 obj << /Title 208 0 R /A 205 0 R -/Parent 183 0 R +/Parent 179 0 R /Prev 203 0 R /Next 211 0 R >> endobj 203 0 obj << /Title 204 0 R /A 201 0 R -/Parent 183 0 R +/Parent 179 0 R /Prev 199 0 R /Next 207 0 R >> endobj 199 0 obj << /Title 200 0 R /A 197 0 R -/Parent 183 0 R +/Parent 179 0 R /Prev 195 0 R /Next 203 0 R >> endobj 195 0 obj << /Title 196 0 R /A 193 0 R -/Parent 183 0 R +/Parent 179 0 R /Prev 191 0 R /Next 199 0 R >> endobj 191 0 obj << /Title 192 0 R /A 189 0 R -/Parent 183 0 R +/Parent 179 0 R /Prev 187 0 R /Next 195 0 R >> endobj 187 0 obj << /Title 188 0 R /A 185 0 R -/Parent 183 0 R +/Parent 179 0 R +/Prev 183 0 R /Next 191 0 R >> endobj 183 0 obj << /Title 184 0 R /A 181 0 R -/Parent 7 0 R -/Prev 163 0 R -/Next 295 0 R -/First 187 0 R -/Last 291 0 R -/Count -27 +/Parent 179 0 R +/Next 187 0 R >> endobj 179 0 obj << /Title 180 0 R /A 177 0 R -/Parent 163 0 R -/Prev 175 0 R +/Parent 7 0 R +/Prev 159 0 R +/Next 291 0 R +/First 183 0 R +/Last 287 0 R +/Count -27 >> endobj 175 0 obj << /Title 176 0 R /A 173 0 R -/Parent 163 0 R +/Parent 159 0 R /Prev 171 0 R -/Next 179 0 R >> endobj 171 0 obj << /Title 172 0 R /A 169 0 R -/Parent 163 0 R +/Parent 159 0 R /Prev 167 0 R /Next 175 0 R >> endobj 167 0 obj << /Title 168 0 R /A 165 0 R -/Parent 163 0 R +/Parent 159 0 R +/Prev 163 0 R /Next 171 0 R >> endobj 163 0 obj << /Title 164 0 R /A 161 0 R -/Parent 7 0 R -/Prev 111 0 R -/Next 183 0 R -/First 167 0 R -/Last 179 0 R -/Count -4 +/Parent 159 0 R +/Next 167 0 R >> endobj 159 0 obj << /Title 160 0 R /A 157 0 R -/Parent 111 0 R -/Prev 155 0 R +/Parent 7 0 R +/Prev 107 0 R +/Next 179 0 R +/First 163 0 R +/Last 175 0 R +/Count -4 >> endobj 155 0 obj << /Title 156 0 R /A 153 0 R -/Parent 111 0 R +/Parent 107 0 R /Prev 151 0 R -/Next 159 0 R >> endobj 151 0 obj << /Title 152 0 R /A 149 0 R -/Parent 111 0 R +/Parent 107 0 R /Prev 147 0 R /Next 155 0 R >> endobj 147 0 obj << /Title 148 0 R /A 145 0 R -/Parent 111 0 R +/Parent 107 0 R /Prev 143 0 R /Next 151 0 R >> endobj 143 0 obj << /Title 144 0 R /A 141 0 R -/Parent 111 0 R +/Parent 107 0 R /Prev 139 0 R /Next 147 0 R >> endobj 139 0 obj << /Title 140 0 R /A 137 0 R -/Parent 111 0 R +/Parent 107 0 R /Prev 135 0 R /Next 143 0 R >> endobj 135 0 obj << /Title 136 0 R /A 133 0 R -/Parent 111 0 R +/Parent 107 0 R /Prev 131 0 R /Next 139 0 R >> endobj 131 0 obj << /Title 132 0 R /A 129 0 R -/Parent 111 0 R +/Parent 107 0 R /Prev 127 0 R /Next 135 0 R >> endobj 127 0 obj << /Title 128 0 R /A 125 0 R -/Parent 111 0 R +/Parent 107 0 R /Prev 123 0 R /Next 131 0 R >> endobj 123 0 obj << /Title 124 0 R /A 121 0 R -/Parent 111 0 R +/Parent 107 0 R /Prev 119 0 R /Next 127 0 R >> endobj 119 0 obj << /Title 120 0 R /A 117 0 R -/Parent 111 0 R +/Parent 107 0 R /Prev 115 0 R /Next 123 0 R >> endobj 115 0 obj << /Title 116 0 R /A 113 0 R -/Parent 111 0 R +/Parent 107 0 R +/Prev 111 0 R /Next 119 0 R >> endobj 111 0 obj << /Title 112 0 R /A 109 0 R -/Parent 7 0 R -/Prev 35 0 R -/Next 163 0 R -/First 115 0 R -/Last 159 0 R -/Count -12 +/Parent 107 0 R +/Next 115 0 R >> endobj 107 0 obj << /Title 108 0 R /A 105 0 R -/Parent 67 0 R -/Prev 103 0 R +/Parent 7 0 R +/Prev 35 0 R +/Next 159 0 R +/First 111 0 R +/Last 155 0 R +/Count -12 >> endobj 103 0 obj << /Title 104 0 R /A 101 0 R -/Parent 67 0 R +/Parent 63 0 R /Prev 99 0 R -/Next 107 0 R >> endobj 99 0 obj << /Title 100 0 R /A 97 0 R -/Parent 67 0 R +/Parent 63 0 R /Prev 95 0 R /Next 103 0 R >> endobj 95 0 obj << /Title 96 0 R /A 93 0 R -/Parent 67 0 R +/Parent 63 0 R /Prev 91 0 R /Next 99 0 R >> endobj 91 0 obj << /Title 92 0 R /A 89 0 R -/Parent 67 0 R +/Parent 63 0 R /Prev 87 0 R /Next 95 0 R >> endobj 87 0 obj << /Title 88 0 R /A 85 0 R -/Parent 67 0 R +/Parent 63 0 R /Prev 83 0 R /Next 91 0 R >> endobj 83 0 obj << /Title 84 0 R /A 81 0 R -/Parent 67 0 R +/Parent 63 0 R /Prev 79 0 R /Next 87 0 R >> endobj 79 0 obj << /Title 80 0 R /A 77 0 R -/Parent 67 0 R +/Parent 63 0 R /Prev 75 0 R /Next 83 0 R >> endobj 75 0 obj << /Title 76 0 R /A 73 0 R -/Parent 67 0 R +/Parent 63 0 R /Prev 71 0 R /Next 79 0 R >> endobj 71 0 obj << /Title 72 0 R /A 69 0 R -/Parent 67 0 R +/Parent 63 0 R +/Prev 67 0 R /Next 75 0 R >> endobj 67 0 obj << /Title 68 0 R /A 65 0 R -/Parent 35 0 R -/Prev 63 0 R -/First 71 0 R -/Last 107 0 R -/Count -10 +/Parent 63 0 R +/Next 71 0 R >> endobj 63 0 obj << /Title 64 0 R /A 61 0 R /Parent 35 0 R -/Prev 55 0 R -/Next 67 0 R +/Prev 59 0 R +/First 67 0 R +/Last 103 0 R +/Count -10 >> endobj 59 0 obj << /Title 60 0 R /A 57 0 R -/Parent 55 0 R +/Parent 35 0 R +/Prev 55 0 R +/Next 63 0 R >> endobj 55 0 obj << /Title 56 0 R /A 53 0 R /Parent 35 0 R /Prev 47 0 R -/Next 63 0 R -/First 59 0 R -/Last 59 0 R -/Count -1 +/Next 59 0 R >> endobj 51 0 obj << /Title 52 0 R @@ -20242,9 +19882,9 @@ endobj /A 33 0 R /Parent 7 0 R /Prev 15 0 R -/Next 111 0 R +/Next 107 0 R /First 39 0 R -/Last 67 0 R +/Last 63 0 R /Count -5 >> endobj 31 0 obj << @@ -20292,1981 +19932,1959 @@ endobj 7 0 obj << /Title 8 0 R /A 5 0 R -/Parent 1521 0 R +/Parent 1504 0 R /First 11 0 R -/Last 427 0 R +/Last 423 0 R /Count -11 >> endobj -1522 0 obj << -/Names [(Doc-Start) 438 0 R (Hfootnote.1) 622 0 R (Hfootnote.2) 633 0 R (Hfootnote.3) 1414 0 R (Item.1) 651 0 R (Item.10) 664 0 R] +1505 0 obj << +/Names [(Doc-Start) 434 0 R (Hfootnote.1) 621 0 R (Hfootnote.2) 623 0 R (Hfootnote.3) 1397 0 R (Item.1) 648 0 R (Item.10) 657 0 R] /Limits [(Doc-Start) (Item.10)] >> endobj -1523 0 obj << -/Names [(Item.100) 1271 0 R (Item.101) 1272 0 R (Item.102) 1277 0 R (Item.103) 1278 0 R (Item.104) 1279 0 R (Item.105) 1309 0 R] +1506 0 obj << +/Names [(Item.100) 1262 0 R (Item.101) 1292 0 R (Item.102) 1293 0 R (Item.103) 1298 0 R (Item.104) 1299 0 R (Item.105) 1304 0 R] /Limits [(Item.100) (Item.105)] >> endobj -1524 0 obj << -/Names [(Item.106) 1310 0 R (Item.107) 1315 0 R (Item.108) 1316 0 R (Item.109) 1321 0 R (Item.11) 665 0 R (Item.110) 1322 0 R] +1507 0 obj << +/Names [(Item.106) 1305 0 R (Item.107) 1310 0 R (Item.108) 1311 0 R (Item.109) 1316 0 R (Item.11) 663 0 R (Item.110) 1317 0 R] /Limits [(Item.106) (Item.110)] >> endobj +1508 0 obj << +/Names [(Item.111) 1323 0 R (Item.112) 1328 0 R (Item.12) 664 0 R (Item.13) 665 0 R (Item.14) 666 0 R (Item.15) 667 0 R] +/Limits [(Item.111) (Item.15)] +>> endobj +1509 0 obj << +/Names [(Item.16) 668 0 R (Item.17) 669 0 R (Item.18) 670 0 R (Item.19) 671 0 R (Item.2) 649 0 R (Item.20) 672 0 R] +/Limits [(Item.16) (Item.20)] +>> endobj +1510 0 obj << +/Names [(Item.21) 673 0 R (Item.22) 691 0 R (Item.23) 692 0 R (Item.24) 693 0 R (Item.25) 694 0 R (Item.26) 695 0 R] +/Limits [(Item.21) (Item.26)] +>> endobj +1511 0 obj << +/Names [(Item.27) 696 0 R (Item.28) 697 0 R (Item.29) 698 0 R (Item.3) 650 0 R (Item.30) 699 0 R (Item.31) 700 0 R] +/Limits [(Item.27) (Item.31)] +>> endobj +1512 0 obj << +/Names [(Item.32) 701 0 R (Item.33) 702 0 R (Item.34) 707 0 R (Item.35) 720 0 R (Item.36) 727 0 R (Item.37) 728 0 R] +/Limits [(Item.32) (Item.37)] +>> endobj +1513 0 obj << +/Names [(Item.38) 729 0 R (Item.39) 764 0 R (Item.4) 651 0 R (Item.40) 958 0 R (Item.41) 959 0 R (Item.42) 960 0 R] +/Limits [(Item.38) (Item.42)] +>> endobj +1514 0 obj << +/Names [(Item.43) 1007 0 R (Item.44) 1012 0 R (Item.45) 1013 0 R (Item.46) 1014 0 R (Item.47) 1015 0 R (Item.48) 1016 0 R] +/Limits [(Item.43) (Item.48)] +>> endobj +1515 0 obj << +/Names [(Item.49) 1021 0 R (Item.5) 652 0 R (Item.50) 1028 0 R (Item.51) 1029 0 R (Item.52) 1036 0 R (Item.53) 1058 0 R] +/Limits [(Item.49) (Item.53)] +>> endobj +1516 0 obj << +/Names [(Item.54) 1059 0 R (Item.55) 1067 0 R (Item.56) 1068 0 R (Item.57) 1069 0 R (Item.58) 1081 0 R (Item.59) 1082 0 R] +/Limits [(Item.54) (Item.59)] +>> endobj +1517 0 obj << +/Names [(Item.6) 653 0 R (Item.60) 1083 0 R (Item.61) 1084 0 R (Item.62) 1085 0 R (Item.63) 1086 0 R (Item.64) 1093 0 R] +/Limits [(Item.6) (Item.64)] +>> endobj +1518 0 obj << +/Names [(Item.65) 1094 0 R (Item.66) 1099 0 R (Item.67) 1100 0 R (Item.68) 1101 0 R (Item.69) 1115 0 R (Item.7) 654 0 R] +/Limits [(Item.65) (Item.7)] +>> endobj +1519 0 obj << +/Names [(Item.70) 1130 0 R (Item.71) 1131 0 R (Item.72) 1156 0 R (Item.73) 1157 0 R (Item.74) 1168 0 R (Item.75) 1174 0 R] +/Limits [(Item.70) (Item.75)] +>> endobj +1520 0 obj << +/Names [(Item.76) 1181 0 R (Item.77) 1187 0 R (Item.78) 1193 0 R (Item.79) 1194 0 R (Item.8) 655 0 R (Item.80) 1200 0 R] +/Limits [(Item.76) (Item.80)] +>> endobj +1521 0 obj << +/Names [(Item.81) 1201 0 R (Item.82) 1211 0 R (Item.83) 1212 0 R (Item.84) 1213 0 R (Item.85) 1230 0 R (Item.86) 1231 0 R] +/Limits [(Item.81) (Item.86)] +>> endobj +1522 0 obj << +/Names [(Item.87) 1232 0 R (Item.88) 1233 0 R (Item.89) 1234 0 R (Item.9) 656 0 R (Item.90) 1235 0 R (Item.91) 1236 0 R] +/Limits [(Item.87) (Item.91)] +>> endobj +1523 0 obj << +/Names [(Item.92) 1237 0 R (Item.93) 1238 0 R (Item.94) 1247 0 R (Item.95) 1248 0 R (Item.96) 1253 0 R (Item.97) 1254 0 R] +/Limits [(Item.92) (Item.97)] +>> endobj +1524 0 obj << +/Names [(Item.98) 1260 0 R (Item.99) 1261 0 R (cite.2007c) 635 0 R (cite.2007d) 636 0 R (cite.BLACS) 607 0 R (cite.BLAS1) 588 0 R] +/Limits [(Item.98) (cite.BLAS1)] +>> endobj 1525 0 obj << -/Names [(Item.111) 1328 0 R (Item.112) 1329 0 R (Item.113) 1334 0 R (Item.114) 1335 0 R (Item.115) 1340 0 R (Item.116) 1345 0 R] -/Limits [(Item.111) (Item.116)] +/Names [(cite.BLAS2) 589 0 R (cite.BLAS3) 590 0 R (cite.DesPat:11) 583 0 R (cite.KIVA3PSBLAS) 1444 0 R (cite.METIS) 624 0 R (cite.MPI1) 1450 0 R] +/Limits [(cite.BLAS2) (cite.MPI1)] >> endobj 1526 0 obj << -/Names [(Item.12) 666 0 R (Item.13) 667 0 R (Item.14) 668 0 R (Item.15) 669 0 R (Item.16) 670 0 R (Item.17) 671 0 R] -/Limits [(Item.12) (Item.17)] +/Names [(cite.PARA04FOREST) 1442 0 R (cite.PSBLAS) 1443 0 R (cite.RouXiaXu:11) 584 0 R (cite.Sparse03) 582 0 R (cite.machiels) 585 0 R (cite.metcalf) 581 0 R] +/Limits [(cite.PARA04FOREST) (cite.metcalf)] >> endobj 1527 0 obj << -/Names [(Item.18) 672 0 R (Item.19) 673 0 R (Item.2) 652 0 R (Item.20) 674 0 R (Item.21) 675 0 R (Item.22) 689 0 R] -/Limits [(Item.18) (Item.22)] +/Names [(cite.sblas02) 587 0 R (cite.sblas97) 586 0 R (descdata) 685 0 R (equation.1) 875 0 R (equation.2) 876 0 R (equation.3) 877 0 R] +/Limits [(cite.sblas02) (equation.3)] >> endobj 1528 0 obj << -/Names [(Item.23) 690 0 R (Item.24) 691 0 R (Item.25) 692 0 R (Item.26) 693 0 R (Item.27) 698 0 R (Item.28) 699 0 R] -/Limits [(Item.23) (Item.28)] +/Names [(figure.1) 600 0 R (figure.2) 630 0 R (figure.3) 708 0 R (figure.4) 715 0 R (figure.5) 740 0 R (figure.6) 931 0 R] +/Limits [(figure.1) (figure.6)] >> endobj 1529 0 obj << -/Names [(Item.29) 700 0 R (Item.3) 653 0 R (Item.30) 701 0 R (Item.31) 702 0 R (Item.32) 703 0 R (Item.33) 704 0 R] -/Limits [(Item.29) (Item.33)] +/Names [(figure.7) 961 0 R (figure.8) 1335 0 R (figure.9) 1336 0 R (page.1) 433 0 R (page.10) 690 0 R (page.100) 1297 0 R] +/Limits [(figure.7) (page.100)] >> endobj 1530 0 obj << -/Names [(Item.34) 705 0 R (Item.35) 718 0 R (Item.36) 719 0 R (Item.37) 720 0 R (Item.38) 721 0 R (Item.39) 739 0 R] -/Limits [(Item.34) (Item.39)] +/Names [(page.101) 1303 0 R (page.102) 1309 0 R (page.103) 1315 0 R (page.104) 1322 0 R (page.105) 1327 0 R (page.106) 1334 0 R] +/Limits [(page.101) (page.106)] >> endobj 1531 0 obj << -/Names [(Item.4) 654 0 R (Item.40) 740 0 R (Item.41) 741 0 R (Item.42) 742 0 R (Item.43) 782 0 R (Item.44) 975 0 R] -/Limits [(Item.4) (Item.44)] +/Names [(page.107) 1340 0 R (page.108) 1344 0 R (page.109) 1348 0 R (page.11) 706 0 R (page.110) 1353 0 R (page.111) 1357 0 R] +/Limits [(page.107) (page.111)] >> endobj 1532 0 obj << -/Names [(Item.45) 976 0 R (Item.46) 977 0 R (Item.47) 1024 0 R (Item.48) 1030 0 R (Item.49) 1031 0 R (Item.5) 655 0 R] -/Limits [(Item.45) (Item.5)] +/Names [(page.112) 1361 0 R (page.113) 1366 0 R (page.114) 1371 0 R (page.115) 1376 0 R (page.116) 1381 0 R (page.117) 1386 0 R] +/Limits [(page.112) (page.117)] >> endobj 1533 0 obj << -/Names [(Item.50) 1032 0 R (Item.51) 1033 0 R (Item.52) 1034 0 R (Item.53) 1039 0 R (Item.54) 1045 0 R (Item.55) 1046 0 R] -/Limits [(Item.50) (Item.55)] +/Names [(page.118) 1390 0 R (page.119) 1396 0 R (page.12) 713 0 R (page.120) 1405 0 R (page.121) 1411 0 R (page.122) 1417 0 R] +/Limits [(page.118) (page.122)] >> endobj 1534 0 obj << -/Names [(Item.56) 1053 0 R (Item.57) 1076 0 R (Item.58) 1077 0 R (Item.59) 1084 0 R (Item.6) 656 0 R (Item.60) 1085 0 R] -/Limits [(Item.56) (Item.60)] +/Names [(page.123) 1421 0 R (page.124) 1427 0 R (page.125) 1432 0 R (page.126) 1436 0 R (page.127) 1440 0 R (page.128) 1449 0 R] +/Limits [(page.123) (page.128)] >> endobj 1535 0 obj << -/Names [(Item.61) 1086 0 R (Item.62) 1098 0 R (Item.63) 1099 0 R (Item.64) 1100 0 R (Item.65) 1101 0 R (Item.66) 1102 0 R] -/Limits [(Item.61) (Item.66)] +/Names [(page.13) 719 0 R (page.14) 726 0 R (page.15) 738 0 R (page.16) 745 0 R (page.17) 752 0 R (page.18) 758 0 R] +/Limits [(page.13) (page.18)] >> endobj 1536 0 obj << -/Names [(Item.67) 1103 0 R (Item.68) 1110 0 R (Item.69) 1111 0 R (Item.7) 657 0 R (Item.70) 1117 0 R (Item.71) 1118 0 R] -/Limits [(Item.67) (Item.71)] +/Names [(page.19) 763 0 R (page.2) 443 0 R (page.20) 769 0 R (page.21) 779 0 R (page.22) 784 0 R (page.23) 792 0 R] +/Limits [(page.19) (page.23)] >> endobj 1537 0 obj << -/Names [(Item.72) 1119 0 R (Item.73) 1132 0 R (Item.74) 1147 0 R (Item.75) 1148 0 R (Item.76) 1173 0 R (Item.77) 1174 0 R] -/Limits [(Item.72) (Item.77)] +/Names [(page.24) 797 0 R (page.25) 805 0 R (page.26) 811 0 R (page.27) 817 0 R (page.28) 824 0 R (page.29) 831 0 R] +/Limits [(page.24) (page.29)] >> endobj 1538 0 obj << -/Names [(Item.78) 1186 0 R (Item.79) 1192 0 R (Item.8) 658 0 R (Item.80) 1198 0 R (Item.81) 1204 0 R (Item.82) 1210 0 R] -/Limits [(Item.78) (Item.82)] +/Names [(page.3) 615 0 R (page.30) 838 0 R (page.31) 843 0 R (page.32) 850 0 R (page.33) 857 0 R (page.34) 864 0 R] +/Limits [(page.3) (page.34)] >> endobj 1539 0 obj << -/Names [(Item.83) 1211 0 R (Item.84) 1217 0 R (Item.85) 1218 0 R (Item.86) 1229 0 R (Item.87) 1230 0 R (Item.88) 1231 0 R] -/Limits [(Item.83) (Item.88)] +/Names [(page.35) 874 0 R (page.36) 888 0 R (page.37) 894 0 R (page.38) 904 0 R (page.39) 910 0 R (page.4) 629 0 R] +/Limits [(page.35) (page.4)] >> endobj 1540 0 obj << -/Names [(Item.89) 1247 0 R (Item.9) 663 0 R (Item.90) 1248 0 R (Item.91) 1249 0 R (Item.92) 1250 0 R (Item.93) 1251 0 R] -/Limits [(Item.89) (Item.93)] +/Names [(page.40) 915 0 R (page.41) 922 0 R (page.42) 930 0 R (page.43) 940 0 R (page.44) 948 0 R (page.45) 957 0 R] +/Limits [(page.40) (page.45)] >> endobj 1541 0 obj << -/Names [(Item.94) 1252 0 R (Item.95) 1253 0 R (Item.96) 1254 0 R (Item.97) 1255 0 R (Item.98) 1265 0 R (Item.99) 1266 0 R] -/Limits [(Item.94) (Item.99)] +/Names [(page.46) 965 0 R (page.47) 969 0 R (page.48) 980 0 R (page.49) 985 0 R (page.5) 642 0 R (page.50) 992 0 R] +/Limits [(page.46) (page.50)] >> endobj 1542 0 obj << -/Names [(cite.2007c) 638 0 R (cite.2007d) 639 0 R (cite.BLACS) 609 0 R (cite.BLAS1) 593 0 R (cite.BLAS2) 594 0 R (cite.BLAS3) 595 0 R] -/Limits [(cite.2007c) (cite.BLAS3)] +/Names [(page.51) 997 0 R (page.52) 1001 0 R (page.53) 1006 0 R (page.54) 1011 0 R (page.55) 1020 0 R (page.56) 1027 0 R] +/Limits [(page.51) (page.56)] >> endobj 1543 0 obj << -/Names [(cite.DesPat:11) 588 0 R (cite.KIVA3PSBLAS) 1462 0 R (cite.METIS) 624 0 R (cite.MPI1) 1467 0 R (cite.PARA04FOREST) 1460 0 R (cite.PSBLAS) 1461 0 R] -/Limits [(cite.DesPat:11) (cite.PSBLAS)] +/Names [(page.57) 1035 0 R (page.58) 1042 0 R (page.59) 1047 0 R (page.6) 646 0 R (page.60) 1053 0 R (page.61) 1057 0 R] +/Limits [(page.57) (page.61)] >> endobj 1544 0 obj << -/Names [(cite.RouXiaXu:11) 589 0 R (cite.Sparse03) 587 0 R (cite.machiels) 590 0 R (cite.metcalf) 586 0 R (cite.sblas02) 592 0 R (cite.sblas97) 591 0 R] -/Limits [(cite.RouXiaXu:11) (cite.sblas97)] +/Names [(page.62) 1066 0 R (page.63) 1076 0 R (page.64) 1080 0 R (page.65) 1092 0 R (page.66) 1098 0 R (page.67) 1107 0 R] +/Limits [(page.62) (page.67)] >> endobj 1545 0 obj << -/Names [(descdata) 688 0 R (equation.1) 892 0 R (equation.2) 893 0 R (equation.3) 894 0 R (figure.1) 604 0 R (figure.10) 1353 0 R] -/Limits [(descdata) (figure.10)] +/Names [(page.68) 1114 0 R (page.69) 1120 0 R (page.7) 662 0 R (page.70) 1125 0 R (page.71) 1129 0 R (page.72) 1136 0 R] +/Limits [(page.68) (page.72)] >> endobj 1546 0 obj << -/Names [(figure.2) 632 0 R (figure.3) 706 0 R (figure.4) 727 0 R (figure.5) 722 0 R (figure.6) 756 0 R (figure.7) 949 0 R] -/Limits [(figure.2) (figure.7)] +/Names [(page.73) 1141 0 R (page.74) 1146 0 R (page.75) 1151 0 R (page.76) 1155 0 R (page.77) 1162 0 R (page.78) 1167 0 R] +/Limits [(page.73) (page.78)] >> endobj 1547 0 obj << -/Names [(figure.8) 978 0 R (figure.9) 1352 0 R (page.1) 437 0 R (page.10) 697 0 R (page.100) 1304 0 R (page.101) 1308 0 R] -/Limits [(figure.8) (page.101)] +/Names [(page.79) 1173 0 R (page.8) 678 0 R (page.80) 1180 0 R (page.81) 1186 0 R (page.82) 1192 0 R (page.83) 1199 0 R] +/Limits [(page.79) (page.83)] >> endobj 1548 0 obj << -/Names [(page.102) 1314 0 R (page.103) 1320 0 R (page.104) 1327 0 R (page.105) 1333 0 R (page.106) 1339 0 R (page.107) 1344 0 R] -/Limits [(page.102) (page.107)] +/Names [(page.84) 1206 0 R (page.85) 1210 0 R (page.86) 1221 0 R (page.87) 1225 0 R (page.88) 1229 0 R (page.89) 1242 0 R] +/Limits [(page.84) (page.89)] >> endobj 1549 0 obj << -/Names [(page.108) 1351 0 R (page.109) 1357 0 R (page.11) 711 0 R (page.110) 1362 0 R (page.111) 1366 0 R (page.112) 1370 0 R] -/Limits [(page.108) (page.112)] +/Names [(page.9) 684 0 R (page.90) 1246 0 R (page.91) 1252 0 R (page.92) 1259 0 R (page.93) 1266 0 R (page.94) 1270 0 R] +/Limits [(page.9) (page.94)] >> endobj 1550 0 obj << -/Names [(page.113) 1374 0 R (page.114) 1378 0 R (page.115) 1383 0 R (page.116) 1389 0 R (page.117) 1394 0 R (page.118) 1398 0 R] -/Limits [(page.113) (page.118)] +/Names [(page.95) 1274 0 R (page.96) 1278 0 R (page.97) 1282 0 R (page.98) 1287 0 R (page.99) 1291 0 R (page.i) 491 0 R] +/Limits [(page.95) (page.i)] >> endobj 1551 0 obj << -/Names [(page.119) 1403 0 R (page.12) 717 0 R (page.120) 1407 0 R (page.121) 1413 0 R (page.122) 1423 0 R (page.123) 1429 0 R] -/Limits [(page.119) (page.123)] +/Names [(page.ii) 543 0 R (page.iii) 561 0 R (page.iv) 565 0 R (precdata) 739 0 R (section*.1) 492 0 R (section*.10) 98 0 R] +/Limits [(page.ii) (section*.10)] >> endobj 1552 0 obj << -/Names [(page.124) 1434 0 R (page.125) 1438 0 R (page.126) 1444 0 R (page.127) 1449 0 R (page.128) 1454 0 R (page.129) 1458 0 R] -/Limits [(page.124) (page.129)] +/Names [(section*.11) 102 0 R (section*.12) 110 0 R (section*.13) 114 0 R (section*.14) 118 0 R (section*.15) 122 0 R (section*.16) 126 0 R] +/Limits [(section*.11) (section*.16)] >> endobj 1553 0 obj << -/Names [(page.13) 726 0 R (page.130) 1466 0 R (page.14) 732 0 R (page.15) 738 0 R (page.16) 746 0 R (page.17) 754 0 R] -/Limits [(page.13) (page.17)] +/Names [(section*.17) 130 0 R (section*.18) 134 0 R (section*.19) 138 0 R (section*.2) 66 0 R (section*.20) 142 0 R (section*.21) 146 0 R] +/Limits [(section*.17) (section*.21)] >> endobj 1554 0 obj << -/Names [(page.18) 761 0 R (page.19) 769 0 R (page.2) 447 0 R (page.20) 776 0 R (page.21) 781 0 R (page.22) 786 0 R] -/Limits [(page.18) (page.22)] +/Names [(section*.22) 150 0 R (section*.23) 154 0 R (section*.24) 162 0 R (section*.25) 166 0 R (section*.26) 170 0 R (section*.27) 174 0 R] +/Limits [(section*.22) (section*.27)] >> endobj 1555 0 obj << -/Names [(page.23) 796 0 R (page.24) 801 0 R (page.25) 809 0 R (page.26) 815 0 R (page.27) 823 0 R (page.28) 828 0 R] -/Limits [(page.23) (page.28)] +/Names [(section*.28) 182 0 R (section*.29) 186 0 R (section*.3) 70 0 R (section*.30) 190 0 R (section*.31) 194 0 R (section*.32) 198 0 R] +/Limits [(section*.28) (section*.32)] >> endobj 1556 0 obj << -/Names [(page.29) 834 0 R (page.3) 616 0 R (page.30) 841 0 R (page.31) 848 0 R (page.32) 856 0 R (page.33) 861 0 R] -/Limits [(page.29) (page.33)] +/Names [(section*.33) 202 0 R (section*.34) 206 0 R (section*.35) 210 0 R (section*.36) 214 0 R (section*.37) 218 0 R (section*.38) 222 0 R] +/Limits [(section*.33) (section*.38)] >> endobj 1557 0 obj << -/Names [(page.34) 867 0 R (page.35) 874 0 R (page.36) 881 0 R (page.37) 891 0 R (page.38) 906 0 R (page.39) 912 0 R] -/Limits [(page.34) (page.39)] +/Names [(section*.39) 226 0 R (section*.4) 74 0 R (section*.40) 230 0 R (section*.41) 234 0 R (section*.42) 238 0 R (section*.43) 242 0 R] +/Limits [(section*.39) (section*.43)] >> endobj 1558 0 obj << -/Names [(page.4) 631 0 R (page.40) 921 0 R (page.41) 927 0 R (page.42) 932 0 R (page.43) 939 0 R (page.44) 948 0 R] -/Limits [(page.4) (page.44)] +/Names [(section*.44) 246 0 R (section*.45) 250 0 R (section*.46) 254 0 R (section*.47) 258 0 R (section*.48) 262 0 R (section*.49) 266 0 R] +/Limits [(section*.44) (section*.49)] >> endobj 1559 0 obj << -/Names [(page.45) 958 0 R (page.46) 965 0 R (page.47) 974 0 R (page.48) 982 0 R (page.49) 986 0 R (page.5) 645 0 R] -/Limits [(page.45) (page.5)] +/Names [(section*.5) 78 0 R (section*.50) 270 0 R (section*.51) 274 0 R (section*.52) 278 0 R (section*.53) 282 0 R (section*.54) 286 0 R] +/Limits [(section*.5) (section*.54)] >> endobj 1560 0 obj << -/Names [(page.50) 998 0 R (page.51) 1003 0 R (page.52) 1009 0 R (page.53) 1014 0 R (page.54) 1018 0 R (page.55) 1023 0 R] -/Limits [(page.50) (page.55)] +/Names [(section*.55) 294 0 R (section*.56) 298 0 R (section*.57) 302 0 R (section*.58) 306 0 R (section*.59) 310 0 R (section*.6) 82 0 R] +/Limits [(section*.55) (section*.6)] >> endobj 1561 0 obj << -/Names [(page.56) 1029 0 R (page.57) 1038 0 R (page.58) 1044 0 R (page.59) 1052 0 R (page.6) 649 0 R (page.60) 1059 0 R] -/Limits [(page.56) (page.60)] +/Names [(section*.60) 314 0 R (section*.61) 318 0 R (section*.62) 322 0 R (section*.63) 326 0 R (section*.64) 330 0 R (section*.65) 334 0 R] +/Limits [(section*.60) (section*.65)] >> endobj 1562 0 obj << -/Names [(page.61) 1064 0 R (page.62) 1071 0 R (page.63) 1075 0 R (page.64) 1083 0 R (page.65) 1093 0 R (page.66) 1097 0 R] -/Limits [(page.61) (page.66)] +/Names [(section*.66) 338 0 R (section*.67) 342 0 R (section*.68) 346 0 R (section*.69) 350 0 R (section*.7) 86 0 R (section*.70) 354 0 R] +/Limits [(section*.66) (section*.70)] >> endobj 1563 0 obj << -/Names [(page.67) 1109 0 R (page.68) 1116 0 R (page.69) 1125 0 R (page.7) 662 0 R (page.70) 1131 0 R (page.71) 1137 0 R] -/Limits [(page.67) (page.71)] +/Names [(section*.71) 362 0 R (section*.72) 366 0 R (section*.73) 370 0 R (section*.74) 374 0 R (section*.75) 382 0 R (section*.76) 386 0 R] +/Limits [(section*.71) (section*.76)] >> endobj 1564 0 obj << -/Names [(page.72) 1142 0 R (page.73) 1146 0 R (page.74) 1154 0 R (page.75) 1159 0 R (page.76) 1163 0 R (page.77) 1168 0 R] -/Limits [(page.72) (page.77)] +/Names [(section*.77) 390 0 R (section*.78) 394 0 R (section*.79) 398 0 R (section*.8) 90 0 R (section*.80) 406 0 R (section*.81) 410 0 R] +/Limits [(section*.77) (section*.81)] >> endobj 1565 0 obj << -/Names [(page.78) 1172 0 R (page.79) 1179 0 R (page.8) 681 0 R (page.80) 1185 0 R (page.81) 1191 0 R (page.82) 1197 0 R] -/Limits [(page.78) (page.82)] +/Names [(section*.82) 414 0 R (section*.83) 418 0 R (section*.84) 426 0 R (section*.85) 1441 0 R (section*.9) 94 0 R (section.1) 10 0 R] +/Limits [(section*.82) (section.1)] >> endobj 1566 0 obj << -/Names [(page.83) 1203 0 R (page.84) 1209 0 R (page.85) 1216 0 R (page.86) 1224 0 R (page.87) 1228 0 R (page.88) 1238 0 R] -/Limits [(page.83) (page.88)] +/Names [(section.10) 402 0 R (section.11) 422 0 R (section.2) 14 0 R (section.3) 34 0 R (section.4) 106 0 R (section.5) 158 0 R] +/Limits [(section.10) (section.5)] >> endobj 1567 0 obj << -/Names [(page.89) 1242 0 R (page.9) 687 0 R (page.90) 1246 0 R (page.91) 1259 0 R (page.92) 1264 0 R (page.93) 1270 0 R] -/Limits [(page.89) (page.93)] +/Names [(section.6) 178 0 R (section.7) 290 0 R (section.8) 358 0 R (section.9) 378 0 R (spdata) 714 0 R (subsection.2.1) 18 0 R] +/Limits [(section.6) (subsection.2.1)] >> endobj 1568 0 obj << -/Names [(page.94) 1276 0 R (page.95) 1283 0 R (page.96) 1287 0 R (page.97) 1291 0 R (page.98) 1296 0 R (page.99) 1300 0 R] -/Limits [(page.94) (page.99)] +/Names [(subsection.2.2) 22 0 R (subsection.2.3) 26 0 R (subsection.2.4) 30 0 R (subsection.3.1) 38 0 R (subsection.3.2) 46 0 R (subsection.3.3) 54 0 R] +/Limits [(subsection.2.2) (subsection.3.3)] >> endobj 1569 0 obj << -/Names [(page.i) 495 0 R (page.ii) 548 0 R (page.iii) 566 0 R (page.iv) 570 0 R (precdata) 755 0 R (section*.1) 496 0 R] -/Limits [(page.i) (section*.1)] +/Names [(subsection.3.4) 58 0 R (subsection.3.5) 62 0 R (subsubsection.3.1.1) 42 0 R (subsubsection.3.2.1) 50 0 R (table.1) 780 0 R (table.10) 866 0 R] +/Limits [(subsection.3.4) (table.10)] >> endobj 1570 0 obj << -/Names [(section*.10) 102 0 R (section*.11) 106 0 R (section*.12) 114 0 R (section*.13) 118 0 R (section*.14) 122 0 R (section*.15) 126 0 R] -/Limits [(section*.10) (section*.15)] +/Names [(table.11) 878 0 R (table.12) 895 0 R (table.13) 923 0 R (table.14) 949 0 R (table.15) 981 0 R (table.16) 993 0 R] +/Limits [(table.11) (table.16)] >> endobj 1571 0 obj << -/Names [(section*.16) 130 0 R (section*.17) 134 0 R (section*.18) 138 0 R (section*.19) 142 0 R (section*.2) 70 0 R (section*.20) 146 0 R] -/Limits [(section*.16) (section*.20)] +/Names [(table.2) 793 0 R (table.3) 806 0 R (table.4) 818 0 R (table.5) 825 0 R (table.6) 832 0 R (table.7) 839 0 R] +/Limits [(table.2) (table.7)] >> endobj 1572 0 obj << -/Names [(section*.21) 150 0 R (section*.22) 154 0 R (section*.23) 158 0 R (section*.24) 166 0 R (section*.25) 170 0 R (section*.26) 174 0 R] -/Limits [(section*.21) (section*.26)] +/Names [(table.8) 851 0 R (table.9) 858 0 R (title.0) 6 0 R (vdata) 730 0 R] +/Limits [(table.8) (vdata)] >> endobj 1573 0 obj << -/Names [(section*.27) 178 0 R (section*.28) 186 0 R (section*.29) 190 0 R (section*.3) 74 0 R (section*.30) 194 0 R (section*.31) 198 0 R] -/Limits [(section*.27) (section*.31)] +/Kids [1505 0 R 1506 0 R 1507 0 R 1508 0 R 1509 0 R 1510 0 R] +/Limits [(Doc-Start) (Item.26)] >> endobj 1574 0 obj << -/Names [(section*.32) 202 0 R (section*.33) 206 0 R (section*.34) 210 0 R (section*.35) 214 0 R (section*.36) 218 0 R (section*.37) 222 0 R] -/Limits [(section*.32) (section*.37)] +/Kids [1511 0 R 1512 0 R 1513 0 R 1514 0 R 1515 0 R 1516 0 R] +/Limits [(Item.27) (Item.59)] >> endobj 1575 0 obj << -/Names [(section*.38) 226 0 R (section*.39) 230 0 R (section*.4) 78 0 R (section*.40) 234 0 R (section*.41) 238 0 R (section*.42) 242 0 R] -/Limits [(section*.38) (section*.42)] +/Kids [1517 0 R 1518 0 R 1519 0 R 1520 0 R 1521 0 R 1522 0 R] +/Limits [(Item.6) (Item.91)] >> endobj 1576 0 obj << -/Names [(section*.43) 246 0 R (section*.44) 250 0 R (section*.45) 254 0 R (section*.46) 258 0 R (section*.47) 262 0 R (section*.48) 266 0 R] -/Limits [(section*.43) (section*.48)] +/Kids [1523 0 R 1524 0 R 1525 0 R 1526 0 R 1527 0 R 1528 0 R] +/Limits [(Item.92) (figure.6)] >> endobj 1577 0 obj << -/Names [(section*.49) 270 0 R (section*.5) 82 0 R (section*.50) 274 0 R (section*.51) 278 0 R (section*.52) 282 0 R (section*.53) 286 0 R] -/Limits [(section*.49) (section*.53)] +/Kids [1529 0 R 1530 0 R 1531 0 R 1532 0 R 1533 0 R 1534 0 R] +/Limits [(figure.7) (page.128)] >> endobj 1578 0 obj << -/Names [(section*.54) 290 0 R (section*.55) 298 0 R (section*.56) 302 0 R (section*.57) 306 0 R (section*.58) 310 0 R (section*.59) 314 0 R] -/Limits [(section*.54) (section*.59)] +/Kids [1535 0 R 1536 0 R 1537 0 R 1538 0 R 1539 0 R 1540 0 R] +/Limits [(page.13) (page.45)] >> endobj 1579 0 obj << -/Names [(section*.6) 86 0 R (section*.60) 318 0 R (section*.61) 322 0 R (section*.62) 326 0 R (section*.63) 330 0 R (section*.64) 334 0 R] -/Limits [(section*.6) (section*.64)] +/Kids [1541 0 R 1542 0 R 1543 0 R 1544 0 R 1545 0 R 1546 0 R] +/Limits [(page.46) (page.78)] >> endobj 1580 0 obj << -/Names [(section*.65) 338 0 R (section*.66) 342 0 R (section*.67) 346 0 R (section*.68) 350 0 R (section*.69) 354 0 R (section*.7) 90 0 R] -/Limits [(section*.65) (section*.7)] +/Kids [1547 0 R 1548 0 R 1549 0 R 1550 0 R 1551 0 R 1552 0 R] +/Limits [(page.79) (section*.16)] >> endobj 1581 0 obj << -/Names [(section*.70) 358 0 R (section*.71) 366 0 R (section*.72) 370 0 R (section*.73) 374 0 R (section*.74) 378 0 R (section*.75) 386 0 R] -/Limits [(section*.70) (section*.75)] +/Kids [1553 0 R 1554 0 R 1555 0 R 1556 0 R 1557 0 R 1558 0 R] +/Limits [(section*.17) (section*.49)] >> endobj 1582 0 obj << -/Names [(section*.76) 390 0 R (section*.77) 394 0 R (section*.78) 398 0 R (section*.79) 402 0 R (section*.8) 94 0 R (section*.80) 410 0 R] -/Limits [(section*.76) (section*.80)] +/Kids [1559 0 R 1560 0 R 1561 0 R 1562 0 R 1563 0 R 1564 0 R] +/Limits [(section*.5) (section*.81)] >> endobj 1583 0 obj << -/Names [(section*.81) 414 0 R (section*.82) 418 0 R (section*.83) 422 0 R (section*.84) 430 0 R (section*.85) 1459 0 R (section*.9) 98 0 R] -/Limits [(section*.81) (section*.9)] +/Kids [1565 0 R 1566 0 R 1567 0 R 1568 0 R 1569 0 R 1570 0 R] +/Limits [(section*.82) (table.16)] >> endobj 1584 0 obj << -/Names [(section.1) 10 0 R (section.10) 406 0 R (section.11) 426 0 R (section.2) 14 0 R (section.3) 34 0 R (section.4) 110 0 R] -/Limits [(section.1) (section.4)] +/Kids [1571 0 R 1572 0 R] +/Limits [(table.2) (vdata)] >> endobj 1585 0 obj << -/Names [(section.5) 162 0 R (section.6) 182 0 R (section.7) 294 0 R (section.8) 362 0 R (section.9) 382 0 R (spdata) 712 0 R] -/Limits [(section.5) (spdata)] +/Kids [1573 0 R 1574 0 R 1575 0 R 1576 0 R 1577 0 R 1578 0 R] +/Limits [(Doc-Start) (page.45)] >> endobj 1586 0 obj << -/Names [(subsection.2.1) 18 0 R (subsection.2.2) 22 0 R (subsection.2.3) 26 0 R (subsection.2.4) 30 0 R (subsection.3.1) 38 0 R (subsection.3.2) 46 0 R] -/Limits [(subsection.2.1) (subsection.3.2)] +/Kids [1579 0 R 1580 0 R 1581 0 R 1582 0 R 1583 0 R 1584 0 R] +/Limits [(page.46) (vdata)] >> endobj 1587 0 obj << -/Names [(subsection.3.3) 54 0 R (subsection.3.4) 62 0 R (subsection.3.5) 66 0 R (subsubsection.3.1.1) 42 0 R (subsubsection.3.2.1) 50 0 R (subsubsection.3.3.1) 58 0 R] -/Limits [(subsection.3.3) (subsubsection.3.3.1)] +/Kids [1585 0 R 1586 0 R] +/Limits [(Doc-Start) (vdata)] >> endobj 1588 0 obj << -/Names [(table.1) 797 0 R (table.10) 883 0 R (table.11) 895 0 R (table.12) 913 0 R (table.13) 940 0 R (table.14) 966 0 R] -/Limits [(table.1) (table.14)] +/Dests 1587 0 R >> endobj 1589 0 obj << -/Names [(table.15) 999 0 R (table.16) 1010 0 R (table.2) 810 0 R (table.3) 824 0 R (table.4) 835 0 R (table.5) 842 0 R] -/Limits [(table.15) (table.5)] ->> endobj -1590 0 obj << -/Names [(table.6) 849 0 R (table.7) 857 0 R (table.8) 868 0 R (table.9) 875 0 R (title.0) 6 0 R (vdata) 733 0 R] -/Limits [(table.6) (vdata)] ->> endobj -1591 0 obj << -/Kids [1522 0 R 1523 0 R 1524 0 R 1525 0 R 1526 0 R 1527 0 R] -/Limits [(Doc-Start) (Item.22)] ->> endobj -1592 0 obj << -/Kids [1528 0 R 1529 0 R 1530 0 R 1531 0 R 1532 0 R 1533 0 R] -/Limits [(Item.23) (Item.55)] ->> endobj -1593 0 obj << -/Kids [1534 0 R 1535 0 R 1536 0 R 1537 0 R 1538 0 R 1539 0 R] -/Limits [(Item.56) (Item.88)] ->> endobj -1594 0 obj << -/Kids [1540 0 R 1541 0 R 1542 0 R 1543 0 R 1544 0 R 1545 0 R] -/Limits [(Item.89) (figure.10)] ->> endobj -1595 0 obj << -/Kids [1546 0 R 1547 0 R 1548 0 R 1549 0 R 1550 0 R 1551 0 R] -/Limits [(figure.2) (page.123)] ->> endobj -1596 0 obj << -/Kids [1552 0 R 1553 0 R 1554 0 R 1555 0 R 1556 0 R 1557 0 R] -/Limits [(page.124) (page.39)] ->> endobj -1597 0 obj << -/Kids [1558 0 R 1559 0 R 1560 0 R 1561 0 R 1562 0 R 1563 0 R] -/Limits [(page.4) (page.71)] ->> endobj -1598 0 obj << -/Kids [1564 0 R 1565 0 R 1566 0 R 1567 0 R 1568 0 R 1569 0 R] -/Limits [(page.72) (section*.1)] ->> endobj -1599 0 obj << -/Kids [1570 0 R 1571 0 R 1572 0 R 1573 0 R 1574 0 R 1575 0 R] -/Limits [(section*.10) (section*.42)] ->> endobj -1600 0 obj << -/Kids [1576 0 R 1577 0 R 1578 0 R 1579 0 R 1580 0 R 1581 0 R] -/Limits [(section*.43) (section*.75)] ->> endobj -1601 0 obj << -/Kids [1582 0 R 1583 0 R 1584 0 R 1585 0 R 1586 0 R 1587 0 R] -/Limits [(section*.76) (subsubsection.3.3.1)] ->> endobj -1602 0 obj << -/Kids [1588 0 R 1589 0 R 1590 0 R] -/Limits [(table.1) (vdata)] ->> endobj -1603 0 obj << -/Kids [1591 0 R 1592 0 R 1593 0 R 1594 0 R 1595 0 R 1596 0 R] -/Limits [(Doc-Start) (page.39)] ->> endobj -1604 0 obj << -/Kids [1597 0 R 1598 0 R 1599 0 R 1600 0 R 1601 0 R 1602 0 R] -/Limits [(page.4) (vdata)] ->> endobj -1605 0 obj << -/Kids [1603 0 R 1604 0 R] -/Limits [(Doc-Start) (vdata)] ->> endobj -1606 0 obj << -/Dests 1605 0 R ->> endobj -1607 0 obj << /Type /Catalog -/Pages 1520 0 R -/Outlines 1521 0 R -/Names 1606 0 R +/Pages 1503 0 R +/Outlines 1504 0 R +/Names 1588 0 R /URI (http://ce.uniroma2.it/psblas) /PageMode/UseOutlines/PageLabels << /Nums [0 << /S /D >> 2 << /S /r >> 6 << /S /D >> ] >> -/OpenAction 433 0 R +/OpenAction 429 0 R >> endobj -1608 0 obj << - /Title (Parallel Sparse BLAS V. 3.0-beta) /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: userguide.tex 4222 2010-05-13 12:08:31Z sfilippo $) /Author()/Title()/Subject()/Creator(LaTeX with hyperref package)/Producer(pdfTeX-1.40.3)/Keywords() -/CreationDate (D:20111215104735+01'00') -/ModDate (D:20111215104735+01'00') +1590 0 obj << + /Title (Parallel Sparse BLAS V. 3.0-beta) /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: userguide.tex 5433 2011-12-15 09:48:22Z sfilippo $) /Author()/Title()/Subject()/Creator(LaTeX with hyperref package)/Producer(pdfTeX-1.40.3)/Keywords() +/CreationDate (D:20111216174527+01'00') +/ModDate (D:20111216174527+01'00') /Trapped /False /PTEX.Fullbanner (This is pdfTeX using libpoppler, Version 3.141592-1.40.3-2.2 (Web2C 7.5.6) kpathsea version 3.5.6) >> endobj xref -0 1609 +0 1591 0000000001 65535 f 0000000002 00000 f 0000000003 00000 f 0000000004 00000 f 0000000000 00000 f 0000000015 00000 n -0000010239 00000 n -0000922595 00000 n +0000010151 00000 n +0000906879 00000 n 0000000058 00000 n 0000000105 00000 n -0000084403 00000 n -0000922523 00000 n +0000083850 00000 n +0000906807 00000 n 0000000150 00000 n 0000000183 00000 n -0000091903 00000 n -0000922400 00000 n +0000095672 00000 n +0000906684 00000 n 0000000229 00000 n 0000000266 00000 n -0000101544 00000 n -0000922326 00000 n +0000105823 00000 n +0000906610 00000 n 0000000317 00000 n 0000000358 00000 n -0000110777 00000 n -0000922239 00000 n +0000114002 00000 n +0000906523 00000 n 0000000409 00000 n 0000000448 00000 n -0000127232 00000 n -0000922152 00000 n +0000121122 00000 n +0000906436 00000 n 0000000499 00000 n 0000000543 00000 n -0000139853 00000 n -0000922078 00000 n +0000139369 00000 n +0000906362 00000 n 0000000594 00000 n 0000000634 00000 n -0000148379 00000 n -0000921954 00000 n +0000150091 00000 n +0000906238 00000 n 0000000680 00000 n 0000000716 00000 n -0000148439 00000 n -0000921843 00000 n +0000150151 00000 n +0000906127 00000 n 0000000767 00000 n 0000000815 00000 n -0000164841 00000 n -0000921782 00000 n +0000165944 00000 n +0000906066 00000 n 0000000871 00000 n 0000000911 00000 n -0000164901 00000 n -0000921658 00000 n +0000174305 00000 n +0000905942 00000 n 0000000962 00000 n 0000001013 00000 n -0000186624 00000 n -0000921597 00000 n +0000187656 00000 n +0000905881 00000 n 0000001069 00000 n 0000001109 00000 n -0000186685 00000 n -0000921473 00000 n +0000187716 00000 n +0000905794 00000 n 0000001160 00000 n 0000001210 00000 n -0000200700 00000 n -0000921412 00000 n -0000001266 00000 n -0000001306 00000 n -0000209626 00000 n -0000921325 00000 n -0000001357 00000 n -0000001409 00000 n -0000209748 00000 n -0000921212 00000 n -0000001460 00000 n -0000001512 00000 n -0000209807 00000 n -0000921138 00000 n -0000001559 00000 n -0000001599 00000 n -0000209867 00000 n -0000921051 00000 n -0000001646 00000 n -0000001686 00000 n -0000222067 00000 n -0000920964 00000 n -0000001733 00000 n -0000001774 00000 n -0000222127 00000 n -0000920877 00000 n -0000001821 00000 n -0000001862 00000 n -0000222187 00000 n -0000920790 00000 n -0000001909 00000 n -0000001942 00000 n -0000227860 00000 n -0000920703 00000 n -0000001989 00000 n -0000002046 00000 n -0000227921 00000 n -0000920616 00000 n -0000002093 00000 n -0000002150 00000 n -0000227982 00000 n -0000920527 00000 n -0000002197 00000 n -0000002229 00000 n -0000232844 00000 n -0000920436 00000 n -0000002278 00000 n -0000002310 00000 n -0000232905 00000 n -0000920358 00000 n -0000002359 00000 n -0000002393 00000 n -0000233521 00000 n -0000920228 00000 n -0000002440 00000 n -0000002484 00000 n -0000241675 00000 n -0000920149 00000 n -0000002533 00000 n -0000002567 00000 n -0000251727 00000 n -0000920056 00000 n -0000002616 00000 n -0000002648 00000 n -0000261302 00000 n -0000919963 00000 n -0000002697 00000 n -0000002730 00000 n -0000269617 00000 n -0000919870 00000 n -0000002779 00000 n -0000002812 00000 n -0000276266 00000 n -0000919777 00000 n -0000002861 00000 n -0000002895 00000 n -0000283279 00000 n -0000919684 00000 n -0000002944 00000 n -0000002977 00000 n -0000290990 00000 n -0000919591 00000 n -0000003026 00000 n -0000003060 00000 n -0000299048 00000 n -0000919498 00000 n -0000003109 00000 n -0000003143 00000 n -0000305533 00000 n -0000919405 00000 n -0000003192 00000 n -0000003226 00000 n -0000311846 00000 n -0000919312 00000 n -0000003275 00000 n -0000003308 00000 n -0000320369 00000 n -0000919219 00000 n -0000003357 00000 n -0000003388 00000 n -0000337603 00000 n -0000919140 00000 n -0000003437 00000 n -0000003468 00000 n -0000352259 00000 n -0000919010 00000 n -0000003515 00000 n -0000003559 00000 n -0000359155 00000 n -0000918931 00000 n -0000003608 00000 n -0000003639 00000 n -0000379477 00000 n -0000918838 00000 n -0000003688 00000 n -0000003719 00000 n -0000403819 00000 n -0000918745 00000 n -0000003768 00000 n -0000003801 00000 n -0000413417 00000 n -0000918666 00000 n -0000003850 00000 n -0000003884 00000 n -0000422715 00000 n -0000918535 00000 n -0000003931 00000 n -0000003977 00000 n -0000422778 00000 n -0000918456 00000 n -0000004026 00000 n -0000004058 00000 n -0000447537 00000 n -0000918363 00000 n -0000004107 00000 n -0000004139 00000 n -0000451922 00000 n -0000918270 00000 n -0000004188 00000 n -0000004220 00000 n -0000456013 00000 n -0000918177 00000 n -0000004269 00000 n -0000004301 00000 n -0000458847 00000 n -0000918084 00000 n -0000004350 00000 n -0000004383 00000 n -0000465510 00000 n -0000917991 00000 n -0000004432 00000 n -0000004467 00000 n -0000473218 00000 n -0000917898 00000 n -0000004516 00000 n -0000004548 00000 n -0000481005 00000 n -0000917805 00000 n -0000004597 00000 n -0000004629 00000 n -0000491509 00000 n -0000917712 00000 n -0000004678 00000 n -0000004710 00000 n -0000497514 00000 n -0000917619 00000 n -0000004759 00000 n -0000004792 00000 n -0000502238 00000 n -0000917526 00000 n -0000004841 00000 n -0000004872 00000 n -0000507496 00000 n -0000917433 00000 n -0000004921 00000 n -0000004953 00000 n -0000514276 00000 n -0000917340 00000 n -0000005002 00000 n -0000005034 00000 n -0000518769 00000 n -0000917247 00000 n -0000005083 00000 n -0000005115 00000 n -0000522241 00000 n -0000917154 00000 n -0000005164 00000 n -0000005197 00000 n -0000526098 00000 n -0000917061 00000 n -0000005246 00000 n -0000005277 00000 n -0000533255 00000 n -0000916968 00000 n -0000005326 00000 n -0000005370 00000 n -0000540745 00000 n -0000916875 00000 n -0000005419 00000 n -0000005463 00000 n -0000544621 00000 n -0000916782 00000 n -0000005512 00000 n -0000005550 00000 n -0000550262 00000 n -0000916689 00000 n -0000005599 00000 n -0000005640 00000 n -0000554169 00000 n -0000916596 00000 n -0000005689 00000 n -0000005727 00000 n -0000559794 00000 n -0000916503 00000 n -0000005776 00000 n -0000005817 00000 n -0000564264 00000 n -0000916410 00000 n -0000005866 00000 n -0000005908 00000 n -0000568637 00000 n -0000916317 00000 n -0000005957 00000 n -0000005998 00000 n -0000575142 00000 n -0000916224 00000 n -0000006047 00000 n -0000006086 00000 n -0000584450 00000 n -0000916131 00000 n -0000006135 00000 n -0000006168 00000 n -0000590636 00000 n -0000916052 00000 n -0000006217 00000 n -0000006254 00000 n -0000599214 00000 n -0000915921 00000 n -0000006301 00000 n -0000006352 00000 n -0000605181 00000 n -0000915842 00000 n -0000006401 00000 n -0000006432 00000 n -0000610400 00000 n -0000915749 00000 n -0000006481 00000 n -0000006512 00000 n -0000615325 00000 n -0000915656 00000 n -0000006561 00000 n -0000006592 00000 n -0000618122 00000 n -0000915563 00000 n -0000006641 00000 n -0000006682 00000 n -0000621565 00000 n -0000915470 00000 n -0000006731 00000 n -0000006769 00000 n -0000623190 00000 n -0000915377 00000 n -0000006818 00000 n -0000006850 00000 n -0000625082 00000 n -0000915284 00000 n -0000006899 00000 n -0000006933 00000 n -0000626860 00000 n -0000915191 00000 n -0000006982 00000 n -0000007014 00000 n -0000631812 00000 n -0000915098 00000 n -0000007063 00000 n -0000007095 00000 n -0000637403 00000 n -0000915005 00000 n -0000007144 00000 n -0000007174 00000 n -0000643159 00000 n -0000914912 00000 n -0000007223 00000 n -0000007253 00000 n -0000648892 00000 n -0000914819 00000 n -0000007302 00000 n -0000007332 00000 n -0000654740 00000 n -0000914726 00000 n -0000007381 00000 n -0000007411 00000 n -0000660561 00000 n -0000914633 00000 n -0000007460 00000 n -0000007490 00000 n -0000666501 00000 n -0000914540 00000 n -0000007539 00000 n -0000007569 00000 n -0000672361 00000 n -0000914461 00000 n -0000007618 00000 n -0000007648 00000 n -0000679607 00000 n -0000914331 00000 n -0000007695 00000 n -0000007731 00000 n -0000687298 00000 n -0000914252 00000 n -0000007780 00000 n -0000007814 00000 n -0000688868 00000 n -0000914159 00000 n -0000007863 00000 n -0000007895 00000 n -0000690537 00000 n -0000914066 00000 n -0000007944 00000 n -0000007990 00000 n -0000692667 00000 n -0000913987 00000 n -0000008039 00000 n -0000008082 00000 n -0000693613 00000 n -0000913857 00000 n -0000008129 00000 n -0000008160 00000 n -0000698633 00000 n -0000913753 00000 n -0000008209 00000 n -0000008239 00000 n -0000704091 00000 n -0000913674 00000 n -0000008288 00000 n -0000008319 00000 n -0000707916 00000 n -0000913581 00000 n -0000008368 00000 n -0000008405 00000 n -0000711599 00000 n -0000913488 00000 n -0000008454 00000 n -0000008492 00000 n -0000715900 00000 n -0000913409 00000 n -0000008541 00000 n -0000008579 00000 n -0000717232 00000 n -0000913279 00000 n -0000008627 00000 n -0000008673 00000 n -0000722631 00000 n -0000913200 00000 n -0000008722 00000 n -0000008757 00000 n -0000728537 00000 n -0000913107 00000 n -0000008806 00000 n -0000008840 00000 n -0000734290 00000 n -0000913014 00000 n -0000008889 00000 n -0000008924 00000 n -0000736878 00000 n -0000912935 00000 n -0000008973 00000 n -0000009009 00000 n -0000737896 00000 n -0000912819 00000 n -0000009057 00000 n -0000009097 00000 n -0000745844 00000 n -0000912754 00000 n -0000009146 00000 n -0000009172 00000 n -0000009998 00000 n -0000010298 00000 n -0000009224 00000 n -0000010117 00000 n -0000010178 00000 n -0000907139 00000 n -0000908875 00000 n -0000906993 00000 n -0000907722 00000 n -0000909312 00000 n -0000010725 00000 n -0000010544 00000 n -0000010408 00000 n -0000010663 00000 n -0000027941 00000 n -0000028092 00000 n -0000028242 00000 n -0000028399 00000 n -0000028556 00000 n -0000028713 00000 n -0000028869 00000 n -0000029019 00000 n -0000029176 00000 n -0000029338 00000 n -0000029495 00000 n -0000029657 00000 n -0000029812 00000 n -0000029974 00000 n -0000030131 00000 n -0000030288 00000 n -0000030440 00000 n -0000030592 00000 n -0000030745 00000 n -0000030898 00000 n -0000031051 00000 n -0000031204 00000 n -0000031357 00000 n -0000031510 00000 n -0000031664 00000 n -0000031818 00000 n -0000031968 00000 n -0000032121 00000 n -0000032275 00000 n -0000032429 00000 n -0000032583 00000 n -0000032737 00000 n -0000032891 00000 n -0000033045 00000 n -0000033199 00000 n -0000033353 00000 n -0000033507 00000 n -0000033660 00000 n -0000033814 00000 n -0000033965 00000 n -0000034119 00000 n -0000034273 00000 n -0000034426 00000 n -0000056270 00000 n -0000034701 00000 n -0000027466 00000 n -0000010796 00000 n -0000034579 00000 n -0000034640 00000 n -0000056421 00000 n -0000056574 00000 n -0000056728 00000 n -0000056882 00000 n -0000057036 00000 n -0000057190 00000 n -0000057344 00000 n -0000057498 00000 n -0000057652 00000 n -0000057805 00000 n -0000057958 00000 n -0000058112 00000 n -0000058266 00000 n -0000058419 00000 n -0000058572 00000 n -0000058725 00000 n -0000058879 00000 n -0000059033 00000 n -0000059187 00000 n -0000059341 00000 n -0000059495 00000 n -0000059649 00000 n -0000059803 00000 n -0000059956 00000 n -0000060108 00000 n -0000060262 00000 n -0000060416 00000 n -0000060570 00000 n -0000060722 00000 n -0000060876 00000 n -0000061030 00000 n -0000061184 00000 n -0000061338 00000 n -0000061492 00000 n -0000061646 00000 n -0000061800 00000 n -0000061954 00000 n -0000062108 00000 n -0000062262 00000 n -0000062416 00000 n -0000062570 00000 n -0000062724 00000 n -0000062878 00000 n -0000063031 00000 n -0000070782 00000 n -0000070933 00000 n -0000071086 00000 n -0000071240 00000 n -0000063246 00000 n -0000055779 00000 n -0000034798 00000 n -0000063184 00000 n -0000071393 00000 n -0000071547 00000 n -0000071698 00000 n -0000071851 00000 n -0000072005 00000 n -0000072158 00000 n -0000072312 00000 n -0000072466 00000 n -0000072616 00000 n -0000072770 00000 n -0000072924 00000 n -0000073078 00000 n -0000073232 00000 n -0000073383 00000 n -0000073597 00000 n -0000070507 00000 n -0000063330 00000 n -0000073536 00000 n -0000074000 00000 n -0000073819 00000 n -0000073681 00000 n -0000073938 00000 n -0000082855 00000 n -0000083010 00000 n -0000083166 00000 n -0000083323 00000 n -0000083481 00000 n -0000083637 00000 n -0000083791 00000 n -0000083946 00000 n -0000084097 00000 n -0000084250 00000 n -0000084463 00000 n -0000082644 00000 n -0000074071 00000 n -0000908729 00000 n -0000909430 00000 n -0000766475 00000 n -0000763070 00000 n -0000762449 00000 n -0000766537 00000 n -0000766412 00000 n -0000762883 00000 n -0000762945 00000 n -0000766349 00000 n -0000762697 00000 n -0000762759 00000 n -0000091447 00000 n -0000091598 00000 n -0000091751 00000 n -0000089787 00000 n -0000092026 00000 n -0000089632 00000 n -0000084560 00000 n -0000907285 00000 n -0000091964 00000 n -0000091185 00000 n -0000091304 00000 n -0000091351 00000 n -0000091425 00000 n -0000762821 00000 n -0000101177 00000 n -0000101329 00000 n -0000110194 00000 n -0000101665 00000 n -0000101030 00000 n -0000092151 00000 n -0000101483 00000 n -0000909021 00000 n -0000908010 00000 n -0000907577 00000 n -0000908441 00000 n -0000907867 00000 n -0000101604 00000 n -0000908153 00000 n -0000766286 00000 n -0000110347 00000 n -0000110500 00000 n -0000108223 00000 n -0000110900 00000 n -0000108068 00000 n -0000101865 00000 n -0000110653 00000 n -0000110715 00000 n -0000110838 00000 n -0000109932 00000 n -0000110051 00000 n -0000110098 00000 n -0000110172 00000 n -0000762635 00000 n -0000762573 00000 n -0000117861 00000 n -0000118012 00000 n -0000118225 00000 n -0000117714 00000 n -0000111102 00000 n -0000118164 00000 n -0000127789 00000 n -0000127051 00000 n -0000118335 00000 n -0000127170 00000 n -0000907431 00000 n -0000127293 00000 n -0000127355 00000 n -0000127417 00000 n -0000127479 00000 n -0000127541 00000 n -0000127603 00000 n -0000127665 00000 n -0000127727 00000 n -0000135848 00000 n -0000134879 00000 n -0000127924 00000 n -0000134998 00000 n -0000135059 00000 n -0000135120 00000 n -0000135181 00000 n -0000135242 00000 n -0000135302 00000 n -0000135363 00000 n -0000135424 00000 n -0000135484 00000 n -0000135545 00000 n -0000135606 00000 n -0000135667 00000 n -0000135728 00000 n -0000135788 00000 n -0000909548 00000 n -0000139634 00000 n -0000139914 00000 n -0000139495 00000 n -0000135932 00000 n -0000139791 00000 n -0000148010 00000 n -0000148161 00000 n -0000148866 00000 n -0000147863 00000 n -0000140024 00000 n -0000148318 00000 n -0000148499 00000 n -0000148561 00000 n -0000148622 00000 n -0000148683 00000 n -0000148744 00000 n -0000148805 00000 n -0000155942 00000 n -0000155204 00000 n -0000148976 00000 n -0000155323 00000 n -0000155385 00000 n -0000155447 00000 n -0000155508 00000 n -0000155570 00000 n -0000155632 00000 n -0000155694 00000 n -0000155756 00000 n -0000155818 00000 n -0000155880 00000 n -0000164624 00000 n -0000165023 00000 n -0000164485 00000 n -0000156052 00000 n -0000164780 00000 n -0000164961 00000 n -0000174072 00000 n -0000174533 00000 n -0000173933 00000 n -0000165133 00000 n -0000174223 00000 n -0000174285 00000 n -0000174347 00000 n -0000174409 00000 n -0000174471 00000 n -0000200638 00000 n -0000178602 00000 n -0000178360 00000 n -0000174656 00000 n -0000178479 00000 n -0000178540 00000 n -0000909666 00000 n -0000186807 00000 n -0000186443 00000 n -0000178699 00000 n -0000186562 00000 n -0000186746 00000 n -0000196142 00000 n -0000196598 00000 n -0000196003 00000 n -0000186917 00000 n -0000196293 00000 n -0000196354 00000 n -0000196415 00000 n -0000196476 00000 n -0000196537 00000 n -0000200760 00000 n -0000200457 00000 n +0000196539 00000 n +0000905707 00000 n +0000001261 00000 n +0000001313 00000 n +0000196661 00000 n +0000905594 00000 n +0000001364 00000 n +0000001416 00000 n 0000196721 00000 n -0000200576 00000 n -0000209111 00000 n -0000209262 00000 n -0000209413 00000 n -0000214582 00000 n -0000209926 00000 n -0000208956 00000 n -0000200857 00000 n -0000209565 00000 n -0000209686 00000 n -0000214794 00000 n -0000221402 00000 n -0000214856 00000 n -0000214443 00000 n -0000210062 00000 n -0000214732 00000 n -0000909167 00000 n -0000221554 00000 n -0000221705 00000 n -0000221856 00000 n -0000222246 00000 n -0000221239 00000 n -0000214966 00000 n -0000222006 00000 n -0000909784 00000 n -0000227650 00000 n -0000232486 00000 n -0000228042 00000 n -0000227511 00000 n -0000222382 00000 n -0000227798 00000 n -0000232634 00000 n -0000233026 00000 n -0000232339 00000 n -0000228139 00000 n -0000232783 00000 n -0000232965 00000 n -0000233583 00000 n -0000233340 00000 n -0000233123 00000 n -0000233459 00000 n -0000240867 00000 n -0000241017 00000 n -0000241164 00000 n -0000241314 00000 n -0000241464 00000 n -0000243626 00000 n -0000241797 00000 n -0000240696 00000 n -0000233667 00000 n -0000241614 00000 n -0000241735 00000 n -0000243838 00000 n -0000243487 00000 n -0000241933 00000 n -0000243776 00000 n -0000251066 00000 n -0000251216 00000 n -0000251366 00000 n -0000251517 00000 n -0000251849 00000 n -0000250903 00000 n -0000243935 00000 n -0000251666 00000 n -0000251787 00000 n -0000909902 00000 n -0000252863 00000 n -0000252682 00000 n -0000251998 00000 n -0000252801 00000 n -0000260642 00000 n -0000260792 00000 n -0000260942 00000 n -0000261092 00000 n -0000261423 00000 n -0000260479 00000 n -0000252947 00000 n -0000261241 00000 n -0000261362 00000 n -0000262437 00000 n -0000262256 00000 n -0000261572 00000 n -0000262375 00000 n -0000269259 00000 n -0000269405 00000 n -0000269739 00000 n -0000269112 00000 n -0000262521 00000 n -0000269556 00000 n -0000269677 00000 n -0000275906 00000 n -0000276055 00000 n -0000276389 00000 n -0000275759 00000 n -0000269888 00000 n -0000276204 00000 n -0000276327 00000 n -0000282919 00000 n -0000283067 00000 n -0000283401 00000 n -0000282772 00000 n -0000276538 00000 n -0000283218 00000 n -0000283339 00000 n -0000910020 00000 n -0000290630 00000 n -0000290779 00000 n -0000291114 00000 n -0000290483 00000 n -0000283562 00000 n -0000290928 00000 n -0000291052 00000 n -0000292138 00000 n -0000291958 00000 n -0000291275 00000 n -0000292077 00000 n -0000298687 00000 n -0000298836 00000 n -0000299171 00000 n -0000298540 00000 n -0000292222 00000 n -0000298986 00000 n -0000299109 00000 n -0000305174 00000 n -0000305321 00000 n -0000305655 00000 n -0000305027 00000 n -0000299320 00000 n -0000305472 00000 n -0000305593 00000 n -0000311486 00000 n -0000311634 00000 n -0000311969 00000 n -0000311339 00000 n -0000305803 00000 n -0000311784 00000 n -0000908586 00000 n -0000311907 00000 n -0000319858 00000 n -0000320009 00000 n -0000320158 00000 n -0000327553 00000 n -0000320677 00000 n -0000319703 00000 n -0000312118 00000 n -0000320308 00000 n -0000320429 00000 n -0000320491 00000 n -0000320553 00000 n -0000320615 00000 n -0000910138 00000 n -0000327704 00000 n -0000327854 00000 n -0000328004 00000 n -0000328156 00000 n -0000328309 00000 n -0000328462 00000 n -0000328675 00000 n -0000327366 00000 n -0000320838 00000 n -0000328613 00000 n -0000337392 00000 n -0000344902 00000 n -0000337725 00000 n -0000337253 00000 n -0000328785 00000 n -0000337542 00000 n -0000337663 00000 n -0000345054 00000 n -0000345205 00000 n -0000345356 00000 n -0000345506 00000 n -0000345718 00000 n -0000344731 00000 n -0000337899 00000 n -0000345656 00000 n -0000350723 00000 n -0000350874 00000 n -0000351086 00000 n -0000350576 00000 n -0000345854 00000 n -0000351025 00000 n -0000352045 00000 n -0000352321 00000 n -0000351906 00000 n -0000351196 00000 n -0000352197 00000 n -0000358642 00000 n -0000358793 00000 n -0000358944 00000 n -0000359277 00000 n -0000358487 00000 n -0000352405 00000 n -0000359094 00000 n -0000359215 00000 n -0000910256 00000 n -0000367967 00000 n -0000363738 00000 n -0000368117 00000 n -0000368391 00000 n -0000363591 00000 n -0000359413 00000 n -0000368267 00000 n -0000368329 00000 n -0000367632 00000 n -0000367751 00000 n -0000367798 00000 n -0000367872 00000 n -0000367945 00000 n -0000371831 00000 n -0000371651 00000 n -0000368542 00000 n -0000371770 00000 n -0000908297 00000 n -0000379114 00000 n -0000379265 00000 n -0000379600 00000 n -0000378967 00000 n -0000371915 00000 n -0000379415 00000 n -0000379538 00000 n -0000385829 00000 n -0000391127 00000 n -0000385980 00000 n -0000386129 00000 n -0000386523 00000 n -0000385674 00000 n -0000379749 00000 n -0000386280 00000 n -0000386341 00000 n -0000386402 00000 n -0000386463 00000 n -0000395501 00000 n -0000390518 00000 n -0000390337 00000 n -0000386659 00000 n -0000390456 00000 n -0000395563 00000 n -0000391008 00000 n -0000390602 00000 n -0000395440 00000 n -0000910374 00000 n -0000395105 00000 n -0000395224 00000 n -0000395271 00000 n -0000395345 00000 n -0000395418 00000 n -0000403456 00000 n -0000403607 00000 n -0000403942 00000 n -0000403309 00000 n -0000395662 00000 n -0000403757 00000 n -0000403880 00000 n -0000405703 00000 n -0000405518 00000 n -0000404103 00000 n -0000405640 00000 n -0000413202 00000 n -0000415627 00000 n -0000413544 00000 n -0000413059 00000 n -0000405788 00000 n -0000413353 00000 n -0000413480 00000 n -0000415842 00000 n -0000415484 00000 n -0000413706 00000 n -0000415779 00000 n -0000422841 00000 n -0000422529 00000 n -0000415940 00000 n -0000422651 00000 n -0000429522 00000 n -0000429800 00000 n -0000429378 00000 n -0000422978 00000 n -0000429674 00000 n -0000429737 00000 n -0000910496 00000 n -0000440505 00000 n -0000439998 00000 n -0000429911 00000 n -0000440121 00000 n -0000440185 00000 n -0000440249 00000 n -0000440313 00000 n -0000440377 00000 n -0000440441 00000 n -0000441458 00000 n -0000441209 00000 n -0000440642 00000 n -0000441332 00000 n -0000441395 00000 n -0000447322 00000 n -0000447725 00000 n -0000447178 00000 n -0000441543 00000 n -0000447473 00000 n -0000447599 00000 n -0000447663 00000 n -0000451556 00000 n -0000451707 00000 n -0000452046 00000 n -0000451403 00000 n -0000447849 00000 n -0000451859 00000 n -0000451983 00000 n -0000455648 00000 n -0000455798 00000 n -0000456075 00000 n -0000455495 00000 n -0000452157 00000 n -0000455949 00000 n -0000458633 00000 n -0000458908 00000 n -0000458489 00000 n -0000456186 00000 n -0000458784 00000 n -0000910621 00000 n -0000465147 00000 n -0000465295 00000 n -0000465573 00000 n -0000464994 00000 n -0000459019 00000 n -0000465446 00000 n -0000467673 00000 n -0000467361 00000 n -0000465710 00000 n -0000467484 00000 n -0000467547 00000 n -0000467610 00000 n -0000472857 00000 n -0000473007 00000 n -0000473472 00000 n -0000472704 00000 n -0000467758 00000 n -0000473154 00000 n -0000473280 00000 n -0000473344 00000 n -0000473408 00000 n -0000480490 00000 n -0000480641 00000 n -0000480791 00000 n -0000481066 00000 n -0000480328 00000 n -0000473596 00000 n -0000480942 00000 n -0000484835 00000 n -0000484264 00000 n -0000481190 00000 n -0000484387 00000 n -0000484451 00000 n -0000484515 00000 n -0000484579 00000 n -0000484643 00000 n -0000484707 00000 n -0000484771 00000 n -0000491144 00000 n -0000491296 00000 n -0000491697 00000 n -0000490991 00000 n -0000484946 00000 n -0000491446 00000 n -0000491571 00000 n -0000491634 00000 n -0000910746 00000 n -0000493767 00000 n -0000493388 00000 n -0000491808 00000 n -0000493511 00000 n -0000493575 00000 n -0000493639 00000 n -0000493703 00000 n -0000497150 00000 n -0000497299 00000 n -0000497575 00000 n -0000496997 00000 n -0000493852 00000 n -0000497451 00000 n -0000501874 00000 n -0000502023 00000 n -0000502365 00000 n -0000501721 00000 n -0000497686 00000 n -0000502174 00000 n -0000502301 00000 n -0000507283 00000 n -0000507557 00000 n -0000507139 00000 n -0000502476 00000 n -0000507433 00000 n -0000514061 00000 n -0000514338 00000 n -0000513917 00000 n -0000507681 00000 n -0000514212 00000 n -0000515388 00000 n -0000515076 00000 n -0000514462 00000 n -0000515199 00000 n -0000515262 00000 n -0000515325 00000 n -0000910871 00000 n -0000518554 00000 n -0000518831 00000 n -0000518410 00000 n -0000515473 00000 n -0000518705 00000 n -0000522027 00000 n -0000522302 00000 n -0000521883 00000 n -0000518942 00000 n -0000522178 00000 n -0000526160 00000 n -0000525911 00000 n -0000522413 00000 n -0000526034 00000 n -0000533041 00000 n -0000533316 00000 n -0000532897 00000 n -0000526297 00000 n -0000533192 00000 n -0000534520 00000 n -0000534205 00000 n -0000533440 00000 n -0000534328 00000 n -0000534392 00000 n -0000534456 00000 n -0000540530 00000 n -0000540806 00000 n -0000540386 00000 n -0000534605 00000 n -0000540682 00000 n -0000910996 00000 n -0000544406 00000 n -0000544747 00000 n -0000544262 00000 n -0000540930 00000 n -0000544557 00000 n -0000544683 00000 n -0000550047 00000 n -0000550386 00000 n -0000549903 00000 n -0000544871 00000 n -0000550199 00000 n -0000550323 00000 n -0000553954 00000 n -0000554295 00000 n -0000553810 00000 n -0000550510 00000 n -0000554105 00000 n -0000554231 00000 n -0000559579 00000 n -0000559918 00000 n -0000559435 00000 n -0000554419 00000 n -0000559731 00000 n -0000559855 00000 n -0000564050 00000 n -0000564454 00000 n -0000563906 00000 n -0000560042 00000 n -0000564200 00000 n -0000564326 00000 n -0000564390 00000 n -0000568423 00000 n -0000568824 00000 n -0000568279 00000 n -0000564565 00000 n -0000568574 00000 n -0000568698 00000 n -0000568761 00000 n -0000911121 00000 n -0000574929 00000 n -0000575205 00000 n -0000574785 00000 n -0000568935 00000 n -0000575078 00000 n -0000579465 00000 n -0000579090 00000 n -0000575329 00000 n -0000579213 00000 n -0000579276 00000 n -0000579339 00000 n -0000579402 00000 n -0000583936 00000 n -0000584085 00000 n -0000584236 00000 n -0000584512 00000 n -0000583774 00000 n -0000579589 00000 n -0000584386 00000 n -0000590698 00000 n -0000590450 00000 n -0000584636 00000 n -0000590573 00000 n -0000598664 00000 n -0000597902 00000 n -0000590822 00000 n -0000598025 00000 n -0000598089 00000 n -0000598153 00000 n -0000598217 00000 n -0000598281 00000 n -0000598345 00000 n -0000598409 00000 n -0000598472 00000 n -0000598536 00000 n -0000598600 00000 n -0000599276 00000 n -0000599028 00000 n -0000598787 00000 n -0000599151 00000 n -0000911246 00000 n -0000605371 00000 n -0000604994 00000 n -0000599361 00000 n -0000605117 00000 n -0000605243 00000 n -0000605307 00000 n -0000610587 00000 n -0000610214 00000 n -0000605508 00000 n -0000610337 00000 n -0000610462 00000 n -0000610524 00000 n -0000615579 00000 n -0000615138 00000 n -0000610724 00000 n -0000615261 00000 n -0000615387 00000 n -0000615451 00000 n -0000615515 00000 n -0000618183 00000 n -0000617936 00000 n -0000615716 00000 n -0000618059 00000 n -0000621627 00000 n -0000621378 00000 n -0000618294 00000 n -0000621501 00000 n -0000623251 00000 n -0000623004 00000 n -0000621764 00000 n -0000623127 00000 n -0000911371 00000 n -0000625144 00000 n -0000624895 00000 n -0000623362 00000 n -0000625018 00000 n -0000626921 00000 n -0000626674 00000 n -0000625255 00000 n -0000626797 00000 n -0000631874 00000 n -0000631625 00000 n -0000627032 00000 n -0000631748 00000 n -0000637590 00000 n -0000637217 00000 n -0000632011 00000 n -0000637340 00000 n -0000637464 00000 n -0000637527 00000 n -0000643349 00000 n -0000642972 00000 n -0000637727 00000 n -0000643095 00000 n -0000643221 00000 n -0000643285 00000 n -0000649079 00000 n -0000648706 00000 n -0000643486 00000 n -0000648829 00000 n -0000648953 00000 n -0000649016 00000 n -0000911496 00000 n -0000654930 00000 n -0000654553 00000 n -0000649216 00000 n -0000654676 00000 n -0000654802 00000 n -0000654866 00000 n -0000660748 00000 n -0000660375 00000 n -0000655067 00000 n -0000660498 00000 n -0000660622 00000 n -0000660685 00000 n -0000666626 00000 n -0000666314 00000 n -0000660885 00000 n -0000666437 00000 n -0000666563 00000 n -0000672484 00000 n -0000672175 00000 n -0000666763 00000 n -0000672298 00000 n -0000672422 00000 n -0000679241 00000 n -0000679391 00000 n -0000679670 00000 n -0000679088 00000 n -0000672621 00000 n -0000679543 00000 n -0000683867 00000 n -0000683931 00000 n -0000683995 00000 n -0000683681 00000 n -0000679768 00000 n -0000683804 00000 n -0000911621 00000 n -0000687360 00000 n -0000687111 00000 n -0000684093 00000 n -0000687234 00000 n -0000688930 00000 n -0000688682 00000 n -0000687471 00000 n -0000688805 00000 n -0000690600 00000 n -0000690350 00000 n -0000689041 00000 n -0000690473 00000 n -0000692729 00000 n -0000692481 00000 n -0000690711 00000 n -0000692604 00000 n -0000693676 00000 n -0000693426 00000 n -0000692840 00000 n -0000693549 00000 n -0000698420 00000 n -0000698695 00000 n -0000698276 00000 n -0000693774 00000 n -0000698570 00000 n -0000911746 00000 n -0000703878 00000 n -0000704154 00000 n -0000703734 00000 n -0000698806 00000 n -0000704027 00000 n -0000707703 00000 n -0000707978 00000 n -0000707559 00000 n -0000704265 00000 n -0000707853 00000 n -0000711662 00000 n -0000711412 00000 n -0000708089 00000 n -0000711535 00000 n -0000715687 00000 n -0000715962 00000 n -0000715543 00000 n -0000711773 00000 n -0000715837 00000 n -0000717295 00000 n -0000717045 00000 n -0000716073 00000 n -0000717168 00000 n -0000722261 00000 n -0000722413 00000 n -0000722755 00000 n -0000722108 00000 n -0000717406 00000 n -0000722568 00000 n -0000722692 00000 n -0000911871 00000 n -0000727871 00000 n -0000728020 00000 n -0000728170 00000 n -0000728322 00000 n -0000728599 00000 n -0000727700 00000 n -0000722917 00000 n -0000728473 00000 n -0000733924 00000 n -0000734075 00000 n -0000734351 00000 n -0000733771 00000 n -0000728710 00000 n -0000734227 00000 n -0000736662 00000 n -0000736941 00000 n -0000736518 00000 n -0000734462 00000 n -0000736814 00000 n -0000737958 00000 n -0000737710 00000 n -0000737052 00000 n -0000737833 00000 n -0000745481 00000 n -0000745630 00000 n -0000745906 00000 n -0000745328 00000 n -0000738056 00000 n -0000745780 00000 n -0000751961 00000 n -0000752176 00000 n -0000751817 00000 n -0000746068 00000 n -0000752113 00000 n -0000911996 00000 n -0000755031 00000 n -0000754844 00000 n -0000752300 00000 n -0000754967 00000 n -0000763194 00000 n -0000762200 00000 n -0000755129 00000 n -0000762323 00000 n -0000762386 00000 n -0000762511 00000 n -0000763007 00000 n -0000763132 00000 n -0000766664 00000 n -0000766099 00000 n -0000763292 00000 n -0000766222 00000 n -0000766600 00000 n -0000766762 00000 n -0000767215 00000 n -0000767549 00000 n -0000767905 00000 n -0000767931 00000 n -0000768442 00000 n -0000768480 00000 n -0000769175 00000 n -0000769532 00000 n -0000769612 00000 n -0000769992 00000 n -0000770634 00000 n -0000771298 00000 n -0000771926 00000 n -0000772569 00000 n -0000772859 00000 n -0000773512 00000 n -0000787649 00000 n -0000788096 00000 n -0000800495 00000 n -0000800923 00000 n -0000812030 00000 n -0000812365 00000 n -0000814451 00000 n -0000814673 00000 n -0000819232 00000 n -0000819479 00000 n -0000836467 00000 n -0000837002 00000 n -0000839278 00000 n -0000839510 00000 n -0000841893 00000 n -0000842131 00000 n -0000851813 00000 n -0000852190 00000 n -0000858180 00000 n -0000858500 00000 n -0000862550 00000 n -0000862894 00000 n -0000864517 00000 n -0000864753 00000 n -0000878558 00000 n -0000878937 00000 n -0000885210 00000 n -0000885478 00000 n -0000899165 00000 n -0000899659 00000 n -0000906647 00000 n -0000912103 00000 n -0000912223 00000 n -0000912345 00000 n -0000912471 00000 n -0000912588 00000 n -0000912680 00000 n -0000922694 00000 n -0000922881 00000 n -0000923066 00000 n -0000923249 00000 n -0000923434 00000 n -0000923605 00000 n -0000923775 00000 n -0000923946 00000 n -0000924116 00000 n -0000924287 00000 n -0000924456 00000 n -0000924628 00000 n -0000924805 00000 n -0000924980 00000 n -0000925157 00000 n -0000925332 00000 n -0000925509 00000 n -0000925684 00000 n -0000925861 00000 n -0000926036 00000 n -0000926213 00000 n -0000926408 00000 n -0000926629 00000 n -0000926850 00000 n -0000927038 00000 n -0000927217 00000 n -0000927396 00000 n -0000927581 00000 n -0000927764 00000 n -0000927949 00000 n -0000928132 00000 n -0000928317 00000 n -0000928490 00000 n -0000928660 00000 n -0000928831 00000 n -0000929001 00000 n -0000929172 00000 n -0000929341 00000 n -0000929510 00000 n -0000929686 00000 n -0000929861 00000 n -0000930038 00000 n -0000930213 00000 n -0000930390 00000 n -0000930565 00000 n -0000930742 00000 n -0000930917 00000 n -0000931094 00000 n -0000931271 00000 n -0000931474 00000 n -0000931675 00000 n -0000931878 00000 n -0000932079 00000 n -0000932282 00000 n -0000932483 00000 n -0000932686 00000 n -0000932887 00000 n -0000933090 00000 n -0000933290 00000 n -0000933490 00000 n -0000933693 00000 n -0000933894 00000 n -0000934095 00000 n -0000934281 00000 n -0000934462 00000 n -0000934683 00000 n -0000934924 00000 n -0000935101 00000 n -0000935276 00000 n -0000935441 00000 n -0000935559 00000 n -0000935675 00000 n -0000935791 00000 n -0000935909 00000 n -0000936027 00000 n -0000936144 00000 n -0000936259 00000 n -0000936378 00000 n -0000936502 00000 n -0000936626 00000 n -0000936758 00000 n -0000936845 00000 n -0000936963 00000 n -0000937076 00000 n -0000937156 00000 n -0000937196 00000 n -0000937433 00000 n +0000905520 00000 n +0000001463 00000 n +0000001503 00000 n +0000196781 00000 n +0000905433 00000 n +0000001550 00000 n +0000001590 00000 n +0000201231 00000 n +0000905346 00000 n +0000001637 00000 n +0000001678 00000 n +0000207871 00000 n +0000905259 00000 n +0000001725 00000 n +0000001766 00000 n +0000207931 00000 n +0000905172 00000 n +0000001813 00000 n +0000001846 00000 n +0000207991 00000 n +0000905085 00000 n +0000001893 00000 n +0000001950 00000 n +0000214221 00000 n +0000904998 00000 n +0000001997 00000 n +0000002054 00000 n +0000214282 00000 n +0000904911 00000 n +0000002101 00000 n +0000002132 00000 n +0000214343 00000 n +0000904822 00000 n +0000002180 00000 n +0000002212 00000 n +0000217344 00000 n +0000904745 00000 n +0000002261 00000 n +0000002295 00000 n +0000217961 00000 n +0000904615 00000 n +0000002342 00000 n +0000002386 00000 n +0000226115 00000 n +0000904536 00000 n +0000002435 00000 n +0000002469 00000 n +0000236167 00000 n +0000904443 00000 n +0000002518 00000 n +0000002550 00000 n +0000245742 00000 n +0000904350 00000 n +0000002599 00000 n +0000002632 00000 n +0000254057 00000 n +0000904257 00000 n +0000002681 00000 n +0000002714 00000 n +0000260706 00000 n +0000904164 00000 n +0000002763 00000 n +0000002797 00000 n +0000267719 00000 n +0000904071 00000 n +0000002846 00000 n +0000002879 00000 n +0000275430 00000 n +0000903978 00000 n +0000002928 00000 n +0000002962 00000 n +0000283488 00000 n +0000903885 00000 n +0000003011 00000 n +0000003045 00000 n +0000289973 00000 n +0000903792 00000 n +0000003094 00000 n +0000003128 00000 n +0000296286 00000 n +0000903699 00000 n +0000003177 00000 n +0000003210 00000 n +0000304809 00000 n +0000903606 00000 n +0000003259 00000 n +0000003290 00000 n +0000322043 00000 n +0000903527 00000 n +0000003339 00000 n +0000003370 00000 n +0000336699 00000 n +0000903397 00000 n +0000003417 00000 n +0000003461 00000 n +0000343595 00000 n +0000903318 00000 n +0000003510 00000 n +0000003541 00000 n +0000363917 00000 n +0000903225 00000 n +0000003590 00000 n +0000003621 00000 n +0000388259 00000 n +0000903132 00000 n +0000003670 00000 n +0000003703 00000 n +0000397842 00000 n +0000903053 00000 n +0000003752 00000 n +0000003786 00000 n +0000407124 00000 n +0000902922 00000 n +0000003833 00000 n +0000003879 00000 n +0000407186 00000 n +0000902843 00000 n +0000003928 00000 n +0000003960 00000 n +0000431941 00000 n +0000902750 00000 n +0000004009 00000 n +0000004041 00000 n +0000436326 00000 n +0000902657 00000 n +0000004090 00000 n +0000004122 00000 n +0000440417 00000 n +0000902564 00000 n +0000004171 00000 n +0000004203 00000 n +0000443251 00000 n +0000902471 00000 n +0000004252 00000 n +0000004285 00000 n +0000449914 00000 n +0000902378 00000 n +0000004334 00000 n +0000004369 00000 n +0000457622 00000 n +0000902285 00000 n +0000004418 00000 n +0000004450 00000 n +0000465409 00000 n +0000902192 00000 n +0000004499 00000 n +0000004531 00000 n +0000475913 00000 n +0000902099 00000 n +0000004580 00000 n +0000004612 00000 n +0000481918 00000 n +0000902006 00000 n +0000004661 00000 n +0000004694 00000 n +0000486642 00000 n +0000901913 00000 n +0000004743 00000 n +0000004774 00000 n +0000491900 00000 n +0000901820 00000 n +0000004823 00000 n +0000004855 00000 n +0000498680 00000 n +0000901727 00000 n +0000004904 00000 n +0000004936 00000 n +0000503173 00000 n +0000901634 00000 n +0000004985 00000 n +0000005017 00000 n +0000506645 00000 n +0000901541 00000 n +0000005066 00000 n +0000005099 00000 n +0000510502 00000 n +0000901448 00000 n +0000005148 00000 n +0000005179 00000 n +0000517659 00000 n +0000901355 00000 n +0000005228 00000 n +0000005272 00000 n +0000525149 00000 n +0000901262 00000 n +0000005321 00000 n +0000005365 00000 n +0000529025 00000 n +0000901169 00000 n +0000005414 00000 n +0000005452 00000 n +0000534666 00000 n +0000901076 00000 n +0000005501 00000 n +0000005542 00000 n +0000538573 00000 n +0000900983 00000 n +0000005591 00000 n +0000005629 00000 n +0000544198 00000 n +0000900890 00000 n +0000005678 00000 n +0000005719 00000 n +0000548668 00000 n +0000900797 00000 n +0000005768 00000 n +0000005810 00000 n +0000553041 00000 n +0000900704 00000 n +0000005859 00000 n +0000005900 00000 n +0000559546 00000 n +0000900611 00000 n +0000005949 00000 n +0000005988 00000 n +0000568854 00000 n +0000900518 00000 n +0000006037 00000 n +0000006070 00000 n +0000575040 00000 n +0000900439 00000 n +0000006119 00000 n +0000006156 00000 n +0000583618 00000 n +0000900308 00000 n +0000006203 00000 n +0000006254 00000 n +0000589585 00000 n +0000900229 00000 n +0000006303 00000 n +0000006334 00000 n +0000594804 00000 n +0000900136 00000 n +0000006383 00000 n +0000006414 00000 n +0000599729 00000 n +0000900043 00000 n +0000006463 00000 n +0000006494 00000 n +0000602526 00000 n +0000899950 00000 n +0000006543 00000 n +0000006584 00000 n +0000605969 00000 n +0000899857 00000 n +0000006633 00000 n +0000006671 00000 n +0000607594 00000 n +0000899764 00000 n +0000006720 00000 n +0000006752 00000 n +0000609486 00000 n +0000899671 00000 n +0000006801 00000 n +0000006835 00000 n +0000611264 00000 n +0000899578 00000 n +0000006884 00000 n +0000006916 00000 n +0000616215 00000 n +0000899485 00000 n +0000006965 00000 n +0000006997 00000 n +0000621806 00000 n +0000899392 00000 n +0000007046 00000 n +0000007076 00000 n +0000627562 00000 n +0000899299 00000 n +0000007125 00000 n +0000007155 00000 n +0000633295 00000 n +0000899206 00000 n +0000007204 00000 n +0000007234 00000 n +0000639143 00000 n +0000899113 00000 n +0000007283 00000 n +0000007313 00000 n +0000644964 00000 n +0000899020 00000 n +0000007362 00000 n +0000007392 00000 n +0000650904 00000 n +0000898927 00000 n +0000007441 00000 n +0000007471 00000 n +0000656764 00000 n +0000898848 00000 n +0000007520 00000 n +0000007550 00000 n +0000664008 00000 n +0000898718 00000 n +0000007597 00000 n +0000007633 00000 n +0000671705 00000 n +0000898639 00000 n +0000007682 00000 n +0000007716 00000 n +0000673275 00000 n +0000898546 00000 n +0000007765 00000 n +0000007797 00000 n +0000674944 00000 n +0000898453 00000 n +0000007846 00000 n +0000007892 00000 n +0000677074 00000 n +0000898374 00000 n +0000007941 00000 n +0000007984 00000 n +0000678020 00000 n +0000898244 00000 n +0000008031 00000 n +0000008062 00000 n +0000683040 00000 n +0000898140 00000 n +0000008111 00000 n +0000008141 00000 n +0000688498 00000 n +0000898061 00000 n +0000008190 00000 n +0000008221 00000 n +0000692323 00000 n +0000897968 00000 n +0000008270 00000 n +0000008307 00000 n +0000696006 00000 n +0000897875 00000 n +0000008356 00000 n +0000008394 00000 n +0000700307 00000 n +0000897796 00000 n +0000008443 00000 n +0000008481 00000 n +0000701639 00000 n +0000897666 00000 n +0000008529 00000 n +0000008575 00000 n +0000707038 00000 n +0000897587 00000 n +0000008624 00000 n +0000008659 00000 n +0000712944 00000 n +0000897494 00000 n +0000008708 00000 n +0000008742 00000 n +0000718697 00000 n +0000897401 00000 n +0000008791 00000 n +0000008826 00000 n +0000721285 00000 n +0000897322 00000 n +0000008875 00000 n +0000008911 00000 n +0000722303 00000 n +0000897206 00000 n +0000008959 00000 n +0000008999 00000 n +0000730251 00000 n +0000897141 00000 n +0000009048 00000 n +0000009074 00000 n +0000009910 00000 n +0000010210 00000 n +0000009126 00000 n +0000010029 00000 n +0000010090 00000 n +0000891546 00000 n +0000893282 00000 n +0000891400 00000 n +0000892129 00000 n +0000893719 00000 n +0000010637 00000 n +0000010456 00000 n +0000010320 00000 n +0000010575 00000 n +0000027554 00000 n +0000027704 00000 n +0000027855 00000 n +0000028012 00000 n +0000028169 00000 n +0000028325 00000 n +0000028481 00000 n +0000028631 00000 n +0000028788 00000 n +0000028949 00000 n +0000029106 00000 n +0000029268 00000 n +0000029425 00000 n +0000029581 00000 n +0000029737 00000 n +0000029890 00000 n +0000030043 00000 n +0000030196 00000 n +0000030349 00000 n +0000030502 00000 n +0000030655 00000 n +0000030808 00000 n +0000030961 00000 n +0000031115 00000 n +0000031269 00000 n +0000031420 00000 n +0000031574 00000 n +0000031728 00000 n +0000031882 00000 n +0000032036 00000 n +0000032189 00000 n +0000032343 00000 n +0000032497 00000 n +0000032651 00000 n +0000032804 00000 n +0000032957 00000 n +0000033110 00000 n +0000033264 00000 n +0000033414 00000 n +0000033568 00000 n +0000033722 00000 n +0000033876 00000 n +0000055720 00000 n +0000055871 00000 n +0000034151 00000 n +0000027087 00000 n +0000010708 00000 n +0000034029 00000 n +0000034090 00000 n +0000056024 00000 n +0000056178 00000 n +0000056332 00000 n +0000056486 00000 n +0000056640 00000 n +0000056794 00000 n +0000056948 00000 n +0000057102 00000 n +0000057255 00000 n +0000057408 00000 n +0000057562 00000 n +0000057716 00000 n +0000057869 00000 n +0000058022 00000 n +0000058175 00000 n +0000058329 00000 n +0000058483 00000 n +0000058637 00000 n +0000058791 00000 n +0000058945 00000 n +0000059099 00000 n +0000059253 00000 n +0000059406 00000 n +0000059558 00000 n +0000059712 00000 n +0000059866 00000 n +0000060020 00000 n +0000060172 00000 n +0000060326 00000 n +0000060480 00000 n +0000060634 00000 n +0000060788 00000 n +0000060942 00000 n +0000061096 00000 n +0000061250 00000 n +0000061404 00000 n +0000061558 00000 n +0000061712 00000 n +0000061866 00000 n +0000062020 00000 n +0000062174 00000 n +0000062328 00000 n +0000062481 00000 n +0000070232 00000 n +0000070383 00000 n +0000070536 00000 n +0000070690 00000 n +0000062696 00000 n +0000055229 00000 n +0000034248 00000 n +0000062634 00000 n +0000070843 00000 n +0000070997 00000 n +0000071148 00000 n +0000071301 00000 n +0000071455 00000 n +0000071608 00000 n +0000071762 00000 n +0000071916 00000 n +0000072066 00000 n +0000072220 00000 n +0000072374 00000 n +0000072528 00000 n +0000072682 00000 n +0000072833 00000 n +0000073047 00000 n +0000069957 00000 n +0000062780 00000 n +0000072986 00000 n +0000073450 00000 n +0000073269 00000 n +0000073131 00000 n +0000073388 00000 n +0000082301 00000 n +0000082455 00000 n +0000082611 00000 n +0000082768 00000 n +0000082927 00000 n +0000083083 00000 n +0000083237 00000 n +0000083391 00000 n +0000083544 00000 n +0000083697 00000 n +0000083910 00000 n +0000082090 00000 n +0000073521 00000 n +0000893136 00000 n +0000893837 00000 n +0000750882 00000 n +0000747477 00000 n +0000746856 00000 n +0000750944 00000 n +0000750819 00000 n +0000747290 00000 n +0000747352 00000 n +0000750756 00000 n +0000747104 00000 n +0000747166 00000 n +0000095218 00000 n +0000095367 00000 n +0000095520 00000 n +0000090015 00000 n +0000105305 00000 n +0000095795 00000 n +0000089860 00000 n +0000084007 00000 n +0000891692 00000 n +0000095733 00000 n +0000091225 00000 n +0000091471 00000 n +0000091518 00000 n +0000091911 00000 n +0000091932 00000 n +0000092239 00000 n +0000747228 00000 n +0000105456 00000 n +0000105610 00000 n +0000113572 00000 n +0000113725 00000 n +0000106007 00000 n +0000105150 00000 n +0000095920 00000 n +0000105762 00000 n +0000893428 00000 n +0000892417 00000 n +0000891984 00000 n +0000892848 00000 n +0000892274 00000 n +0000105883 00000 n +0000892560 00000 n +0000105945 00000 n +0000750693 00000 n +0000111601 00000 n +0000114063 00000 n +0000111454 00000 n +0000106207 00000 n +0000113878 00000 n +0000113940 00000 n +0000113310 00000 n +0000113429 00000 n +0000113476 00000 n +0000113550 00000 n +0000747042 00000 n +0000746980 00000 n +0000120757 00000 n +0000120909 00000 n +0000121182 00000 n +0000120610 00000 n +0000114227 00000 n +0000121061 00000 n +0000130709 00000 n +0000129910 00000 n +0000121318 00000 n +0000130029 00000 n +0000891838 00000 n +0000130091 00000 n +0000130151 00000 n +0000130213 00000 n +0000130275 00000 n +0000130337 00000 n +0000130399 00000 n +0000130461 00000 n +0000130523 00000 n +0000130585 00000 n +0000130647 00000 n +0000141453 00000 n +0000139429 00000 n +0000138519 00000 n +0000130831 00000 n +0000138638 00000 n +0000138699 00000 n +0000138760 00000 n +0000138821 00000 n +0000138882 00000 n +0000138943 00000 n +0000139004 00000 n +0000139065 00000 n +0000139125 00000 n +0000139186 00000 n +0000139247 00000 n +0000139308 00000 n +0000893955 00000 n +0000141672 00000 n +0000141314 00000 n +0000139539 00000 n +0000141610 00000 n +0000149721 00000 n +0000149873 00000 n +0000150273 00000 n +0000149574 00000 n +0000141756 00000 n +0000150030 00000 n +0000150211 00000 n +0000157202 00000 n +0000158157 00000 n +0000157063 00000 n +0000150396 00000 n +0000157354 00000 n +0000157416 00000 n +0000157477 00000 n +0000157539 00000 n +0000157601 00000 n +0000157663 00000 n +0000157725 00000 n +0000157787 00000 n +0000157849 00000 n +0000157911 00000 n +0000157972 00000 n +0000158034 00000 n +0000158096 00000 n +0000166004 00000 n +0000165641 00000 n +0000158254 00000 n +0000165760 00000 n +0000165821 00000 n +0000165882 00000 n +0000174092 00000 n +0000174428 00000 n +0000173953 00000 n +0000166101 00000 n +0000174243 00000 n +0000174366 00000 n +0000178400 00000 n +0000178523 00000 n +0000178220 00000 n +0000174538 00000 n +0000178339 00000 n +0000178462 00000 n +0000894073 00000 n +0000195721 00000 n +0000187839 00000 n +0000187289 00000 n +0000178620 00000 n +0000187408 00000 n +0000187470 00000 n +0000187532 00000 n +0000187594 00000 n +0000187777 00000 n +0000195872 00000 n +0000196023 00000 n +0000196175 00000 n +0000196326 00000 n +0000196841 00000 n +0000195550 00000 n +0000187975 00000 n +0000196478 00000 n +0000196599 00000 n +0000201169 00000 n +0000207357 00000 n +0000201292 00000 n +0000200988 00000 n +0000196977 00000 n +0000201107 00000 n +0000893574 00000 n +0000207508 00000 n +0000207659 00000 n +0000208051 00000 n +0000207202 00000 n +0000201402 00000 n +0000207810 00000 n +0000213863 00000 n +0000214011 00000 n +0000214404 00000 n +0000213716 00000 n +0000208161 00000 n +0000214159 00000 n +0000217135 00000 n +0000217466 00000 n +0000216996 00000 n +0000214501 00000 n +0000217283 00000 n +0000217405 00000 n +0000894191 00000 n +0000218023 00000 n +0000217780 00000 n +0000217563 00000 n +0000217899 00000 n +0000225307 00000 n +0000225457 00000 n +0000225604 00000 n +0000225754 00000 n +0000225904 00000 n +0000228066 00000 n +0000226237 00000 n +0000225136 00000 n +0000218107 00000 n +0000226054 00000 n +0000226175 00000 n +0000228278 00000 n +0000227927 00000 n +0000226373 00000 n +0000228216 00000 n +0000235506 00000 n +0000235656 00000 n +0000235806 00000 n +0000235957 00000 n +0000236289 00000 n +0000235343 00000 n +0000228375 00000 n +0000236106 00000 n +0000236227 00000 n +0000237303 00000 n +0000237122 00000 n +0000236438 00000 n +0000237241 00000 n +0000245082 00000 n +0000245232 00000 n +0000245382 00000 n +0000245532 00000 n +0000245863 00000 n +0000244919 00000 n +0000237387 00000 n +0000245681 00000 n +0000245802 00000 n +0000894309 00000 n +0000246877 00000 n +0000246696 00000 n +0000246012 00000 n +0000246815 00000 n +0000253699 00000 n +0000253845 00000 n +0000254179 00000 n +0000253552 00000 n +0000246961 00000 n +0000253996 00000 n +0000254117 00000 n +0000260346 00000 n +0000260495 00000 n +0000260829 00000 n +0000260199 00000 n +0000254328 00000 n +0000260644 00000 n +0000260767 00000 n +0000267359 00000 n +0000267507 00000 n +0000267841 00000 n +0000267212 00000 n +0000260978 00000 n +0000267658 00000 n +0000267779 00000 n +0000275070 00000 n +0000275219 00000 n +0000275554 00000 n +0000274923 00000 n +0000268002 00000 n +0000275368 00000 n +0000275492 00000 n +0000276578 00000 n +0000276398 00000 n +0000275715 00000 n +0000276517 00000 n +0000894427 00000 n +0000283127 00000 n +0000283276 00000 n +0000283611 00000 n +0000282980 00000 n +0000276662 00000 n +0000283426 00000 n +0000283549 00000 n +0000289614 00000 n +0000289761 00000 n +0000290095 00000 n +0000289467 00000 n +0000283760 00000 n +0000289912 00000 n +0000290033 00000 n +0000295926 00000 n +0000296074 00000 n +0000296409 00000 n +0000295779 00000 n +0000290243 00000 n +0000296224 00000 n +0000892993 00000 n +0000296347 00000 n +0000304298 00000 n +0000304449 00000 n +0000304598 00000 n +0000311993 00000 n +0000305117 00000 n +0000304143 00000 n +0000296558 00000 n +0000304748 00000 n +0000304869 00000 n +0000304931 00000 n +0000304993 00000 n +0000305055 00000 n +0000312144 00000 n +0000312294 00000 n +0000312444 00000 n +0000312596 00000 n +0000312749 00000 n +0000312902 00000 n +0000313115 00000 n +0000311806 00000 n +0000305278 00000 n +0000313053 00000 n +0000321832 00000 n +0000329342 00000 n +0000322165 00000 n +0000321693 00000 n +0000313225 00000 n +0000321982 00000 n +0000322103 00000 n +0000894545 00000 n +0000329494 00000 n +0000329645 00000 n +0000329796 00000 n +0000329946 00000 n +0000330158 00000 n +0000329171 00000 n +0000322339 00000 n +0000330096 00000 n +0000335163 00000 n +0000335314 00000 n +0000335526 00000 n +0000335016 00000 n +0000330294 00000 n +0000335465 00000 n +0000336485 00000 n +0000336761 00000 n +0000336346 00000 n +0000335636 00000 n +0000336637 00000 n +0000343082 00000 n +0000343233 00000 n +0000343384 00000 n +0000343717 00000 n +0000342927 00000 n +0000336845 00000 n +0000343534 00000 n +0000343655 00000 n +0000352407 00000 n +0000348178 00000 n +0000352557 00000 n +0000352831 00000 n +0000348031 00000 n +0000343853 00000 n +0000352707 00000 n +0000352769 00000 n +0000352072 00000 n +0000352191 00000 n +0000352238 00000 n +0000352312 00000 n +0000352385 00000 n +0000356271 00000 n +0000356091 00000 n +0000352982 00000 n +0000356210 00000 n +0000892704 00000 n +0000894663 00000 n +0000363554 00000 n +0000363705 00000 n +0000364040 00000 n +0000363407 00000 n +0000356355 00000 n +0000363855 00000 n +0000363978 00000 n +0000370269 00000 n +0000375567 00000 n +0000370420 00000 n +0000370569 00000 n +0000370963 00000 n +0000370114 00000 n +0000364189 00000 n +0000370720 00000 n +0000370781 00000 n +0000370842 00000 n +0000370903 00000 n +0000379941 00000 n +0000374958 00000 n +0000374777 00000 n +0000371099 00000 n +0000374896 00000 n +0000380003 00000 n +0000375448 00000 n +0000375042 00000 n +0000379880 00000 n +0000379545 00000 n +0000379664 00000 n +0000379711 00000 n +0000379785 00000 n +0000379858 00000 n +0000387896 00000 n +0000388047 00000 n +0000388382 00000 n +0000387749 00000 n +0000380102 00000 n +0000388197 00000 n +0000388320 00000 n +0000390137 00000 n +0000389957 00000 n +0000388543 00000 n +0000390076 00000 n +0000894781 00000 n +0000397630 00000 n +0000400043 00000 n +0000397966 00000 n +0000397491 00000 n +0000390221 00000 n +0000397780 00000 n +0000397904 00000 n +0000400255 00000 n +0000399904 00000 n +0000398127 00000 n +0000400194 00000 n +0000407248 00000 n +0000406941 00000 n +0000400352 00000 n +0000407061 00000 n +0000413927 00000 n +0000414205 00000 n +0000413784 00000 n +0000407384 00000 n +0000414079 00000 n +0000414142 00000 n +0000424909 00000 n +0000424403 00000 n +0000414316 00000 n +0000424525 00000 n +0000424589 00000 n +0000424653 00000 n +0000424717 00000 n +0000424781 00000 n +0000424845 00000 n +0000425862 00000 n +0000425613 00000 n +0000425046 00000 n +0000425736 00000 n +0000425799 00000 n +0000894901 00000 n +0000431726 00000 n +0000432129 00000 n +0000431582 00000 n +0000425947 00000 n +0000431877 00000 n +0000432003 00000 n +0000432067 00000 n +0000435960 00000 n +0000436111 00000 n +0000436450 00000 n +0000435807 00000 n +0000432253 00000 n +0000436263 00000 n +0000436387 00000 n +0000440052 00000 n +0000440202 00000 n +0000440479 00000 n +0000439899 00000 n +0000436561 00000 n +0000440353 00000 n +0000443037 00000 n +0000443312 00000 n +0000442893 00000 n +0000440590 00000 n +0000443188 00000 n +0000449551 00000 n +0000449699 00000 n +0000449977 00000 n +0000449398 00000 n +0000443423 00000 n +0000449850 00000 n +0000452077 00000 n +0000451765 00000 n +0000450114 00000 n +0000451888 00000 n +0000451951 00000 n +0000452014 00000 n +0000895026 00000 n +0000457261 00000 n +0000457411 00000 n +0000457876 00000 n +0000457108 00000 n +0000452162 00000 n +0000457558 00000 n +0000457684 00000 n +0000457748 00000 n +0000457812 00000 n +0000464894 00000 n +0000465045 00000 n +0000465195 00000 n +0000465470 00000 n +0000464732 00000 n +0000458000 00000 n +0000465346 00000 n +0000469239 00000 n +0000468668 00000 n +0000465594 00000 n +0000468791 00000 n +0000468855 00000 n +0000468919 00000 n +0000468983 00000 n +0000469047 00000 n +0000469111 00000 n +0000469175 00000 n +0000475548 00000 n +0000475700 00000 n +0000476101 00000 n +0000475395 00000 n +0000469350 00000 n +0000475850 00000 n +0000475975 00000 n +0000476038 00000 n +0000478171 00000 n +0000477792 00000 n +0000476212 00000 n +0000477915 00000 n +0000477979 00000 n +0000478043 00000 n +0000478107 00000 n +0000481554 00000 n +0000481703 00000 n +0000481979 00000 n +0000481401 00000 n +0000478256 00000 n +0000481855 00000 n +0000895151 00000 n +0000486278 00000 n +0000486427 00000 n +0000486769 00000 n +0000486125 00000 n +0000482090 00000 n +0000486578 00000 n +0000486705 00000 n +0000491687 00000 n +0000491961 00000 n +0000491543 00000 n +0000486880 00000 n +0000491837 00000 n +0000498465 00000 n +0000498742 00000 n +0000498321 00000 n +0000492085 00000 n +0000498616 00000 n +0000499792 00000 n +0000499480 00000 n +0000498866 00000 n +0000499603 00000 n +0000499666 00000 n +0000499729 00000 n +0000502958 00000 n +0000503235 00000 n +0000502814 00000 n +0000499877 00000 n +0000503109 00000 n +0000506431 00000 n +0000506706 00000 n +0000506287 00000 n +0000503346 00000 n +0000506582 00000 n +0000895276 00000 n +0000510564 00000 n +0000510315 00000 n +0000506817 00000 n +0000510438 00000 n +0000517445 00000 n +0000517720 00000 n +0000517301 00000 n +0000510701 00000 n +0000517596 00000 n +0000518924 00000 n +0000518609 00000 n +0000517844 00000 n +0000518732 00000 n +0000518796 00000 n +0000518860 00000 n +0000524934 00000 n +0000525210 00000 n +0000524790 00000 n +0000519009 00000 n +0000525086 00000 n +0000528810 00000 n +0000529151 00000 n +0000528666 00000 n +0000525334 00000 n +0000528961 00000 n +0000529087 00000 n +0000534451 00000 n +0000534790 00000 n +0000534307 00000 n +0000529275 00000 n +0000534603 00000 n +0000534727 00000 n +0000895401 00000 n +0000538358 00000 n +0000538699 00000 n +0000538214 00000 n +0000534914 00000 n +0000538509 00000 n +0000538635 00000 n +0000543983 00000 n +0000544322 00000 n +0000543839 00000 n +0000538823 00000 n +0000544135 00000 n +0000544259 00000 n +0000548454 00000 n +0000548858 00000 n +0000548310 00000 n +0000544446 00000 n +0000548604 00000 n +0000548730 00000 n +0000548794 00000 n +0000552827 00000 n +0000553228 00000 n +0000552683 00000 n +0000548969 00000 n +0000552978 00000 n +0000553102 00000 n +0000553165 00000 n +0000559333 00000 n +0000559609 00000 n +0000559189 00000 n +0000553339 00000 n +0000559482 00000 n +0000563869 00000 n +0000563494 00000 n +0000559733 00000 n +0000563617 00000 n +0000563680 00000 n +0000563743 00000 n +0000563806 00000 n +0000895526 00000 n +0000568340 00000 n +0000568489 00000 n +0000568640 00000 n +0000568916 00000 n +0000568178 00000 n +0000563993 00000 n +0000568790 00000 n +0000575102 00000 n +0000574854 00000 n +0000569040 00000 n +0000574977 00000 n +0000583068 00000 n +0000582306 00000 n +0000575226 00000 n +0000582429 00000 n +0000582493 00000 n +0000582557 00000 n +0000582621 00000 n +0000582685 00000 n +0000582749 00000 n +0000582813 00000 n +0000582876 00000 n +0000582940 00000 n +0000583004 00000 n +0000583680 00000 n +0000583432 00000 n +0000583191 00000 n +0000583555 00000 n +0000589775 00000 n +0000589398 00000 n +0000583765 00000 n +0000589521 00000 n +0000589647 00000 n +0000589711 00000 n +0000594991 00000 n +0000594618 00000 n +0000589912 00000 n +0000594741 00000 n +0000594866 00000 n +0000594928 00000 n +0000895651 00000 n +0000599983 00000 n +0000599542 00000 n +0000595128 00000 n +0000599665 00000 n +0000599791 00000 n +0000599855 00000 n +0000599919 00000 n +0000602587 00000 n +0000602340 00000 n +0000600120 00000 n +0000602463 00000 n +0000606031 00000 n +0000605782 00000 n +0000602698 00000 n +0000605905 00000 n +0000607655 00000 n +0000607408 00000 n +0000606168 00000 n +0000607531 00000 n +0000609548 00000 n +0000609299 00000 n +0000607766 00000 n +0000609422 00000 n +0000611325 00000 n +0000611078 00000 n +0000609659 00000 n +0000611201 00000 n +0000895776 00000 n +0000616277 00000 n +0000616028 00000 n +0000611436 00000 n +0000616151 00000 n +0000621993 00000 n +0000621620 00000 n +0000616414 00000 n +0000621743 00000 n +0000621867 00000 n +0000621930 00000 n +0000627752 00000 n +0000627375 00000 n +0000622130 00000 n +0000627498 00000 n +0000627624 00000 n +0000627688 00000 n +0000633482 00000 n +0000633109 00000 n +0000627889 00000 n +0000633232 00000 n +0000633356 00000 n +0000633419 00000 n +0000639333 00000 n +0000638956 00000 n +0000633619 00000 n +0000639079 00000 n +0000639205 00000 n +0000639269 00000 n +0000645151 00000 n +0000644778 00000 n +0000639470 00000 n +0000644901 00000 n +0000645025 00000 n +0000645088 00000 n +0000895901 00000 n +0000651029 00000 n +0000650717 00000 n +0000645288 00000 n +0000650840 00000 n +0000650966 00000 n +0000656887 00000 n +0000656578 00000 n +0000651166 00000 n +0000656701 00000 n +0000656825 00000 n +0000663643 00000 n +0000663793 00000 n +0000664071 00000 n +0000663490 00000 n +0000657024 00000 n +0000663944 00000 n +0000668274 00000 n +0000668338 00000 n +0000668402 00000 n +0000668088 00000 n +0000664169 00000 n +0000668211 00000 n +0000671767 00000 n +0000671518 00000 n +0000668500 00000 n +0000671641 00000 n +0000673337 00000 n +0000673089 00000 n +0000671878 00000 n +0000673212 00000 n +0000896026 00000 n +0000675007 00000 n +0000674757 00000 n +0000673448 00000 n +0000674880 00000 n +0000677136 00000 n +0000676888 00000 n +0000675118 00000 n +0000677011 00000 n +0000678083 00000 n +0000677833 00000 n +0000677247 00000 n +0000677956 00000 n +0000682827 00000 n +0000683102 00000 n +0000682683 00000 n +0000678181 00000 n +0000682977 00000 n +0000688285 00000 n +0000688561 00000 n +0000688141 00000 n +0000683213 00000 n +0000688434 00000 n +0000692110 00000 n +0000692385 00000 n +0000691966 00000 n +0000688672 00000 n +0000692260 00000 n +0000896151 00000 n +0000696069 00000 n +0000695819 00000 n +0000692496 00000 n +0000695942 00000 n +0000700094 00000 n +0000700369 00000 n +0000699950 00000 n +0000696180 00000 n +0000700244 00000 n +0000701702 00000 n +0000701452 00000 n +0000700480 00000 n +0000701575 00000 n +0000706668 00000 n +0000706820 00000 n +0000707162 00000 n +0000706515 00000 n +0000701813 00000 n +0000706975 00000 n +0000707099 00000 n +0000712278 00000 n +0000712427 00000 n +0000712577 00000 n +0000712729 00000 n +0000713006 00000 n +0000712107 00000 n +0000707324 00000 n +0000712880 00000 n +0000718331 00000 n +0000718482 00000 n +0000718758 00000 n +0000718178 00000 n +0000713117 00000 n +0000718634 00000 n +0000896276 00000 n +0000721069 00000 n +0000721348 00000 n +0000720925 00000 n +0000718869 00000 n +0000721221 00000 n +0000722365 00000 n +0000722117 00000 n +0000721459 00000 n +0000722240 00000 n +0000729888 00000 n +0000730037 00000 n +0000730313 00000 n +0000729735 00000 n +0000722463 00000 n +0000730187 00000 n +0000736368 00000 n +0000736583 00000 n +0000736224 00000 n +0000730475 00000 n +0000736520 00000 n +0000739438 00000 n +0000739251 00000 n +0000736707 00000 n +0000739374 00000 n +0000747601 00000 n +0000746607 00000 n +0000739536 00000 n +0000746730 00000 n +0000746793 00000 n +0000746918 00000 n +0000747414 00000 n +0000747539 00000 n +0000896401 00000 n +0000751071 00000 n +0000750506 00000 n +0000747699 00000 n +0000750629 00000 n +0000751007 00000 n +0000751169 00000 n +0000751622 00000 n +0000751956 00000 n +0000752312 00000 n +0000752338 00000 n +0000752849 00000 n +0000752887 00000 n +0000753582 00000 n +0000753939 00000 n +0000754019 00000 n +0000754399 00000 n +0000755041 00000 n +0000755705 00000 n +0000756333 00000 n +0000756976 00000 n +0000757266 00000 n +0000757919 00000 n +0000772056 00000 n +0000772503 00000 n +0000784902 00000 n +0000785330 00000 n +0000796437 00000 n +0000796772 00000 n +0000798858 00000 n +0000799080 00000 n +0000803639 00000 n +0000803886 00000 n +0000820874 00000 n +0000821409 00000 n +0000823685 00000 n +0000823917 00000 n +0000826300 00000 n +0000826538 00000 n +0000836220 00000 n +0000836597 00000 n +0000842587 00000 n +0000842907 00000 n +0000846957 00000 n +0000847301 00000 n +0000848924 00000 n +0000849160 00000 n +0000862965 00000 n +0000863344 00000 n +0000869617 00000 n +0000869885 00000 n +0000883572 00000 n +0000884066 00000 n +0000891054 00000 n +0000896490 00000 n +0000896610 00000 n +0000896732 00000 n +0000896858 00000 n +0000896975 00000 n +0000897067 00000 n +0000906978 00000 n +0000907165 00000 n +0000907350 00000 n +0000907533 00000 n +0000907709 00000 n +0000907879 00000 n +0000908050 00000 n +0000908220 00000 n +0000908391 00000 n +0000908561 00000 n +0000908738 00000 n +0000908913 00000 n +0000909090 00000 n +0000909264 00000 n +0000909438 00000 n +0000909615 00000 n +0000909790 00000 n +0000909967 00000 n +0000910142 00000 n +0000910319 00000 n +0000910507 00000 n +0000910712 00000 n +0000910940 00000 n +0000911139 00000 n +0000911318 00000 n +0000911497 00000 n +0000911682 00000 n +0000911865 00000 n +0000912050 00000 n +0000912233 00000 n +0000912418 00000 n +0000912589 00000 n +0000912759 00000 n +0000912930 00000 n +0000913099 00000 n +0000913268 00000 n +0000913439 00000 n +0000913609 00000 n +0000913785 00000 n +0000913960 00000 n +0000914137 00000 n +0000914312 00000 n +0000914489 00000 n +0000914664 00000 n +0000914841 00000 n +0000915015 00000 n +0000915189 00000 n +0000915372 00000 n +0000915575 00000 n +0000915776 00000 n +0000915979 00000 n +0000916180 00000 n +0000916383 00000 n +0000916584 00000 n +0000916787 00000 n +0000916987 00000 n +0000917187 00000 n +0000917390 00000 n +0000917591 00000 n +0000917794 00000 n +0000917995 00000 n +0000918192 00000 n +0000918380 00000 n +0000918573 00000 n +0000918794 00000 n +0000919008 00000 n +0000919187 00000 n +0000919358 00000 n +0000919487 00000 n +0000919605 00000 n +0000919721 00000 n +0000919836 00000 n +0000919953 00000 n +0000920071 00000 n +0000920187 00000 n +0000920303 00000 n +0000920423 00000 n +0000920547 00000 n +0000920670 00000 n +0000920791 00000 n +0000920869 00000 n +0000920987 00000 n +0000921101 00000 n +0000921181 00000 n +0000921221 00000 n +0000921458 00000 n trailer -<< /Size 1609 -/Root 1607 0 R -/Info 1608 0 R -/ID [ ] >> +<< /Size 1591 +/Root 1589 0 R +/Info 1590 0 R +/ID [<873D15B7399DBC9824362D3D17D2E286> <873D15B7399DBC9824362D3D17D2E286>] >> startxref -938075 +922100 %%EOF diff --git a/docs/src/datastruct.tex b/docs/src/datastruct.tex index fa49e64d..6ebd74c8 100644 --- a/docs/src/datastruct.tex +++ b/docs/src/datastruct.tex @@ -33,22 +33,55 @@ it is only used for the \verb|psb_sizeof| utility. All the general matrix informations and elements to be exchanged among processes are stored within a data structure of the type \hypertarget{descdata}{{\tt psb\_desc\_type}}. -Every structure of this type is associated to a sparse matrix, it -contains data about general matrix informations and elements to be -exchanged among processes. - -It is not necessary for the user to know the internal structure of -\verb|psb_desc_type|, it is set in a transparent mode by the tools -routines of Sec.~\ref{sec:toolsrout}, and its fields may be accessed -if necessary via the routines of sec.~\ref{sec:dataquery}; -nevertheless we include a description for the curious -reader: +Every structure of this type is associated with a discretization +pattern and enables data communications and other operations that are +necessary for implementing the various algorithms of interest to us. + +The data structure itself \verb|psb_desc_type| can be treated as an +opaque object handled via the tools routines of +Sec.~\ref{sec:toolsrout} and~\ref{sec:dataquery}; +nevertheless we include here a description for the curious +reader. + +First we describe the \verb|psb_indx_map| type. This is a data +structure that keeps track of a certain number of basic issues such +as: +\begin{itemize} +\item The value of the communication/MPI context; +\item The number of indices in the index space, i.e. global number of + rows and columns of a sparse matrix; +\item The local set of indices, including: +\begin{itemize} +\item The number of local indices (and local rows); +\item The number of halo indices (and therefore local columns); +\item The global indices corresponding to the local ones. +\end{itemize} +\end{itemize} +There are many different schemes for storing these data; therefore +there are a number of types extending the base one, and the descriptor +structure holds a polymorphic object whose dynamic type can be any of +the extended types. +The methods associated with this data type answer the following +queries: +\begin{itemize} +\item For a given set of local indices, find the corresponding indices + in the global numbering; +\item For a given set of global indices, find the corresponding + indices in the local numbering, if any, or return an invalid +\item Add a global index to the set of halo indices; +\item Find the process owner of each member of a set of global + indices. +\end{itemize} +All methods but the last are purely local; the last method potentially +requires communication among processes, and thus is a synchronous +method. The choice of a specific dynamic type for the index map is +made at the time the descriptor is initially allocated, according to +the mode of initialization (see also~\ref{sec:toolsrout}). + +The descriptor contents are as follows: \begin{description} -\item[{\bf matrix\_data}] includes general information about matrix and -process grid, such as the communication context, the size of the -global matrix, the size of the portion of matrix stored on the current -process, and so on. -Specified as: an allocatable integer array of dimension \verb|psb_mdata_size_|. +\item[{\bf indxmap}] A polymorphic variable of a type that is any + extension of the indx\_map type described above. \\ \item[{\bf halo\_index}] A list of the halo and boundary elements for the current process to be exchanged with other processes; for each processes with which it is necessary to communicate: @@ -88,26 +121,23 @@ ecurrent process: \item Index of a ``master'' process: \end{enumerate} Specified as: an allocatable integer array of rank two. -\item[{\bf loc\_to\_glob}] each element $i$ of this array contains -global identifier of the local variable $i$.\\ -Specified as: an allocatable integer array of rank one. -\item[{\bf glob\_to\_loc, glb\_lc, hashv}] Contain a mapping from - global to local indices. +\item [{\bf bnd\_elem}] A list of all boundary points, i.e. points + that have a connection with other processes. \end{description} -The Fortran~95 definition for \verb|psb_desc_type| structures is +The Fortran~2003 declaration for \verb|psb_desc_type| structures is as follows: \begin{figure}[h!] \begin{Sbox} \begin{minipage}[tl]{0.9\textwidth} \begin{verbatim} type psb_desc_type - integer, allocatable :: matrix_data(:), halo_index(:) - integer, allocatable :: ext_index(:) - integer, allocatable :: ovrlap_elem(:,:) - integer, allocatable :: ovrlap_index(:) - integer, allocatable :: ovr_mst_idx(:) - integer, allocatable :: loc_to_glob(:), glob_to_loc(:) - integer, allocatable :: hashv(:), glb_lc(:,:) + class(psb_indx_map), allocatable :: indxmap + integer, allocatable :: halo_index(:) + integer, allocatable :: ext_index(:) + integer, allocatable :: ovrlap_index(:) + integer, allocatable :: ovrlap_elem(:,:) + integer, allocatable :: ovr_mst_idx(:) + integer, allocatable :: bnd_elem(:) end type psb_desc_type \end{verbatim} \end{minipage} @@ -130,14 +160,7 @@ state, which can take the following values: the associated sparse matrix, such as matrix-vector products, are only possible in this state. \end{description} -The global to local index mapping may be stored in two different -formats: the first is simpler but more expensive, as it requires on -each process an amount of memory proportional to the global size of -the index space; the second is more complex, but only requires memory -proportional to the local index space size. The choice is made at the -time of the initialization according to a threshold; this threshold -may be queried and set using the functions in -sec.~\ref{sec:dataquery}. + \subsubsection{Named Constants} \label{sec:cd_constants} @@ -176,10 +199,12 @@ sec.~\ref{sec:dataquery}. \subsection{Sparse Matrix data structure} \label{sec:spmat} The \hypertarget{spdata}{{\tt psb\_spmat\_type}} data structure -contains all information about local portion of the sparse matrix and +contains all information about the local portion of the sparse matrix and its storage mode. Most of these fields are set by the tools routines when inserting a new sparse matrix; the user needs only -choose, if he/she so whishes, a specific matrix storage mode. \\ +choose, if he/she so whishes, a specific matrix storage mode. + +The \begin{description} \item[{\bf aspk}] Contains values of the local distributed sparse matrix.\\ @@ -335,153 +360,7 @@ contains all information about local portion of the sparse matrix and its storage mode. Most of these fields are set by the tools routines when inserting a new sparse matrix; the user needs only choose, if he/she so whishes, a specific matrix storage mode. \\ -\begin{description} -\item[{\bf aspk}] Contains values of the local distributed sparse -matrix.\\ -Specified as: an allocatable array of rank one of type corresponding -to matrix entries type. -\item[{\bf ia1}] Holds integer information on distributed sparse -matrix. Actual information will depend on data format used.\\ -Specified as: an allocatable integer array of rank one. -\item[{\bf ia2}] Holds integer information on distributed sparse -matrix. Actual information will depend on data format used.\\ -Specified as: an allocatable integer array of rank one. -\item[{\bf infoa}] On entry can hold auxiliary information on distributed sparse -matrix. Actual information will depend on data format used.\\ -Specified as: an integer array of length \verb|psb_ifasize_|. -\item[{\bf fida}] Defines the format of the distributed sparse matrix.\\ -Specified as: a string of length 5 -\item[{\bf descra}] Describe the characteristic of the distributed sparse matrix.\\ -Specified as: array of character of length 9. -\item[{\bf pl}] Specifies the local row permutation of distributed sparse -matrix. If pl(1) is equal to 0, then there isn't row permutation.\\ -Specified as: an allocatable integer array of dimension equal to number of local row (matrix\_data[psb\_n\_row\_\hbox{]}) -\item[{\bf pr}] Specifies the local column permutation of distributed sparse -matrix. If PR(1) is equal to 0, then there isn't columnm permutation.\\ -Specified as: an allocatable integer array of dimension equal to number of -local row (matrix\_data[psb\_n\_col\_\hbox{]}) -\item[{\bf m}] Number of rows; if row indices are stored explicitly, -as in Coordinate Storage, should be greater than or equal to the -maximum row index actually present in the sparse matrix. -Specified as: integer variable. -\item[{\bf k}] Number of columns; if column indices are stored explicitly, -as in Coordinate Storage or Compressed Sparse Rows, should be greater -than or equal to the maximum column index actually present in the sparse matrix. -Specified as: integer variable. -\end{description} -The Fortran~95 interface for distributed sparse matrices containing -double precision real entries is defined as shown in -figure~\ref{fig:spmattype}. The definitions for single precision and -complex data are identical except for the \verb|real| declaration and -for the kind type parameter. -\begin{figure}[h!] - \begin{Sbox} - \begin{minipage}[tl]{0.85\textwidth} -\begin{verbatim} -type psb_sspmat_type - integer :: m, k - character :: fida(5) - character :: descra(10) - integer :: infoa(psb_ifa_size_) - real(psb_spk_), allocatable :: aspk(:) - integer, allocatable :: ia1(:), ia2(:) - integer, allocatable :: pr(:), pl(:) -end type psb_sspmat_type -type psb_dspmat_type - integer :: m, k - character :: fida(5) - character :: descra(10) - integer :: infoa(psb_ifa_size_) - real(psb_dpk_), allocatable :: aspk(:) - integer, allocatable :: ia1(:), ia2(:) - integer, allocatable :: pr(:), pl(:) -end type psb_dspmat_type - -type psb_cspmat_type - integer :: m, k - character :: fida(5) - character :: descra(10) - integer :: infoa(psb_ifa_size_) - complex(psb_spk_), allocatable :: aspk(:) - integer, allocatable :: ia1(:), ia2(:) - integer, allocatable :: pr(:), pl(:) -end type psb_cspmat_type - -type psb_zspmat_type - integer :: m, k - character :: fida(5) - character :: descra(10) - integer :: infoa(psb_ifa_size_) - complex(psb_dpk_), allocatable :: aspk(:) - integer, allocatable :: ia1(:), ia2(:) - integer, allocatable :: pr(:), pl(:) -end type psb_zspmat_type - -\end{verbatim} - \end{minipage} - \end{Sbox} - \setlength{\fboxsep}{8pt} - \begin{center} - \fbox{\TheSbox} - \end{center} - \caption{\label{fig:spmattype} - The PSBLAS defined data type that - contains a sparse matrix.} -\end{figure} - -The following two cases are among the most commonly used: -\begin{description} -\item[fida=``CSR''] Compressed storage by rows. In this case the -following should hold: -\begin{enumerate} -\item \verb|ia2(i)| contains the index of the first element of row -\verb|i|; the last element of the sparse matrix is thus stored at -index $ia2(m+1)-1$. It should contain \verb|m+1| entries in -nondecreasing order (strictly increasing, if there are no empty rows). -\item \verb|ia1(j)| contains the column index and \verb|aspk(j)| -contains the corresponding coefficient value, for all $ia2(1) \le j -\le ia2(m+1)-1$. -\end{enumerate} -\item[fida=``COO''] Coordinate storage. In this case the following -should hold: -\begin{enumerate} -\item \verb|infoa(1)| contains the number of nonzero elements in the -matrix; -\item For all $1 \le j \le infoa(1)$, the coefficient, row index and -column index are stored into \verb|apsk(j)|, \verb|ia1(j)| and -\verb|ia2(j)| respectively. -\end{enumerate} -\end{description} -A sparse matrix has an associated state, which can take the following -values: -\begin{description} -\item[Build:] State entered after the first allocation, and before the - first assembly; in this state it is possible to add nonzero entries. -\item[Assembled:] State entered after the assembly; computations using - the sparse matrix, such as matrix-vector products, are only possible - in this state; -\item[Update:] State entered after a reinitalization; this is used to - handle applications in which the same sparsity pattern is used - multiple times with different coefficients. In this state it is only - possible to enter coefficients for already existing nonzero entries. -\end{description} -\subsubsection{Named Constants} -\label{sec:sp_constants} -\begin{description} -%% \item[psb\_nztotreq\_] Request to fetch the total number of nonzeroes -%% stored in a sparse matrix -%% \item[psb\_nzrowreq\_] Request to fetch the number of nonzeroes in a -%% given row in a sparse matrix -\item[psb\_dupl\_ovwrt\_] Duplicate coefficients should be overwritten - (i.e. ignore duplications) -\item[psb\_dupl\_add\_] Duplicate coefficients should be added; -\item[psb\_dupl\_err\_] Duplicate coefficients should trigger an error conditino -\item[psb\_upd\_dflt\_] Default update strategy for matrix coefficients; -\item[psb\_upd\_srch\_] Update strategy based on search into the data structure; -\item[psb\_upd\_perm\_] Update strategy based on additional - permutation data (see tools routine description). -\end{description} diff --git a/docs/src/figures/psblas.eps b/docs/src/figures/psblas.eps index ee078456..2690fc0b 100644 --- a/docs/src/figures/psblas.eps +++ b/docs/src/figures/psblas.eps @@ -1,11 +1,12 @@ -%!PS-Adobe-2.0 EPSF-2.0 +%!PS-Adobe-3.0 EPSF-3.0 %%Title: psblas.fig -%%Creator: fig2dev Version 3.2 Patchlevel 5 -%%CreationDate: Thu Jul 31 17:37:06 2008 +%%Creator: fig2dev Version 3.2 Patchlevel 5d +%%CreationDate: Thu Dec 15 14:55:15 2011 %%For: sfilippo@donald (Salvatore Filippone) -%%BoundingBox: 0 0 206 283 +%%BoundingBox: 0 0 197 215 %Magnification: 0.5000 %%EndComments +%%BeginProlog /$F2psDict 200 dict def $F2psDict begin $F2psDict /mtrx matrix put @@ -44,10 +45,6 @@ $F2psDict /mtrx matrix put /col31 {1.000 0.840 0.000 srgb} bind def end -save -newpath 0 283 moveto 0 0 lineto 206 0 lineto 206 283 lineto closepath clip newpath --5.3 289.5 translate -1 -1 scale /cp {closepath} bind def /ef {eofill} bind def @@ -83,10 +80,22 @@ newpath 0 283 moveto 0 0 lineto 206 0 lineto 206 283 lineto closepath clip newpa /$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def /$F2psEnd {$F2psEnteredState restore end} def +/pageheader { +save +newpath 0 215 moveto 0 0 lineto 197 0 lineto 197 215 lineto closepath clip newpath +-5.3 221.5 translate +1 -1 scale $F2psBegin 10 setmiterlimit 0 slj 0 slc 0.03150 0.03150 sc +} bind def +/pagefooter { +$F2psEnd +restore +} bind def +%%EndProlog +pageheader % % Fig objects follow % @@ -126,36 +135,12 @@ n 2100 2925 m 1845 2925 1845 4020 255 arcto 4 {pop} repeat 4680 2925 2100 2925 255 arcto 4 {pop} repeat cp gs col0 s gr % Polyline -n 3645 5670 m 3420 5670 3420 6795 225 arcto 4 {pop} repeat - 3420 7020 5940 7020 225 arcto 4 {pop} repeat - 6165 7020 6165 5895 225 arcto 4 {pop} repeat - 6165 5670 3645 5670 225 arcto 4 {pop} repeat - cp gs col0 s gr -% Polyline n 405 5670 m 180 5670 180 6750 225 arcto 4 {pop} repeat 180 6975 2655 6975 225 arcto 4 {pop} repeat 2880 6975 2880 5895 225 arcto 4 {pop} repeat 2880 5670 405 5670 225 arcto 4 {pop} repeat cp gs col0 s gr % Polyline -gs clippath -4800 7255 m 4800 7050 l 4740 7050 l 4740 7255 l 4740 7255 l 4770 7105 l 4800 7255 l cp -eoclip -n 4770 7740 m - 4770 7065 l gs col0 s gr gr - -% arrowhead -15.000 slw -n 4800 7255 m 4770 7105 l 4740 7255 l 4770 7225 l 4800 7255 l - cp gs 0.00 setgray ef gr col0 s -% Polyline -7.500 slw -n 3825 7785 m 3600 7785 3600 8955 225 arcto 4 {pop} repeat - 3600 9180 6075 9180 225 arcto 4 {pop} repeat - 6300 9180 6300 8010 225 arcto 4 {pop} repeat - 6300 7785 3825 7785 225 arcto 4 {pop} repeat - cp gs col0 s gr -% Polyline n 2880 6300 m 3420 6300 l gs col0 s gr % Polyline @@ -168,15 +153,6 @@ n 3150 6300 m % arrowhead n 3180 4456 m 3150 4336 l 3120 4456 l 3180 4456 l cp gs 0.00 setgray ef gr col0 s % Polyline -gs clippath -3180 6436 m 3180 6285 l 3120 6285 l 3120 6436 l 3120 6436 l 3150 6316 l 3180 6436 l cp -eoclip -n 3600 8460 m 3150 8460 l - 3150 6300 l gs col0 s gr gr - -% arrowhead -n 3180 6436 m 3150 6316 l 3120 6436 l 3180 6436 l cp gs 0.00 setgray ef gr col0 s -% Polyline 15.000 slw [90] 0 sd n 900 2295 m @@ -185,6 +161,13 @@ n 900 2295 m [90] 0 sd n 945 4995 m 5490 4995 l gs col0 s gr [] 0 sd +% Polyline +7.500 slw +n 3645 5625 m 3420 5625 3420 6795 225 arcto 4 {pop} repeat + 3420 7020 5895 7020 225 arcto 4 {pop} repeat + 6120 7020 6120 5850 225 arcto 4 {pop} repeat + 6120 5625 3645 5625 225 arcto 4 {pop} repeat + cp gs col0 s gr /Times-Roman ff 396.88 scf sf 2295 990 m gs 1 -1 sc (Application) col0 sh gr @@ -192,18 +175,6 @@ gs 1 -1 sc (Application) col0 sh gr 2250 3735 m gs 1 -1 sc (PSBLAS ) col0 sh gr /Times-Roman ff 396.88 scf sf -4140 6390 m -gs 1 -1 sc (BLACS) col0 sh gr -/Times-Roman ff 396.88 scf sf -3690 8280 m -gs 1 -1 sc (Message Passing) col0 sh gr -/Times-Roman ff 396.88 scf sf -4410 8820 m -gs 1 -1 sc (MPI) col0 sh gr -/Times-Roman ff 396.88 scf sf -4050 2160 m -gs 1 -1 sc (Fortran95) col0 sh gr -/Times-Roman ff 396.88 scf sf 4050 2565 m gs 1 -1 sc (Interface) col0 sh gr /Times-Roman ff 396.88 scf sf @@ -212,9 +183,17 @@ gs 1 -1 sc (Inner) col0 sh gr /Times-Roman ff 396.88 scf sf 4140 5310 m gs 1 -1 sc (Interface) col0 sh gr +/Times-Roman ff 396.88 scf sf +3420 6120 m +gs 1 -1 sc (Message Passing) col0 sh gr +/Times-Roman ff 396.88 scf sf +4275 6660 m +gs 1 -1 sc (MPI) col0 sh gr +/Times-Roman ff 396.88 scf sf +4050 2160 m +gs 1 -1 sc (Fortran 2003) col0 sh gr % here ends figure; -$F2psEnd -rs +pagefooter showpage %%Trailer %EOF diff --git a/docs/src/figures/psblas.fig b/docs/src/figures/psblas.fig new file mode 100644 index 00000000..10f2b0ef --- /dev/null +++ b/docs/src/figures/psblas.fig @@ -0,0 +1,41 @@ +#FIG 3.2 Produced by xfig version 3.2.5b +Landscape +Center +Metric +Letter +50.00 +Single +-2 +1200 2 +6 540 5940 2430 6660 +4 0 0 50 -1 0 25 0.0000 4 375 2250 540 6210 Serial Sparse\001 +4 0 0 50 -1 0 25 0.0000 4 285 1080 1080 6660 BLAS\001 +-6 +2 4 0 1 0 7 50 -1 -1 0.000 0 0 15 0 0 5 + 4500 1575 1800 1575 1800 225 4500 225 4500 1575 +2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2 + 2 1 2.00 60.00 120.00 + 3150 2970 3150 1575 +2 4 0 1 0 7 50 -1 -1 0.000 0 0 17 0 0 5 + 4680 4275 1845 4275 1845 2925 4680 2925 4680 4275 +2 4 0 1 0 7 50 -1 -1 0.000 0 0 15 0 0 5 + 2880 6975 180 6975 180 5670 2880 5670 2880 6975 +2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2 + 2880 6300 3420 6300 +2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2 + 1 1 1.00 60.00 120.00 + 3150 6300 3150 4320 +2 1 1 2 0 7 50 -1 -1 6.000 0 0 -1 0 0 2 + 900 2295 5445 2295 +2 1 1 2 0 7 50 -1 -1 6.000 0 0 -1 0 0 2 + 945 4995 5490 4995 +2 4 0 1 0 7 50 -1 -1 0.000 0 0 15 0 0 5 + 6120 7020 3420 7020 3420 5625 6120 5625 6120 7020 +4 0 0 50 -1 0 25 0.0000 4 375 2010 2295 990 Application\001 +4 0 0 50 -1 0 25 0.0000 4 285 1665 2250 3735 PSBLAS \001 +4 0 0 50 -1 0 25 0.0000 4 285 1515 4050 2565 Interface\001 +4 0 0 50 -1 0 25 0.0000 4 285 885 4140 4860 Inner\001 +4 0 0 50 -1 0 25 0.0000 4 285 1515 4140 5310 Interface\001 +4 0 0 50 -1 0 25 0.0000 4 375 2910 3420 6120 Message Passing\001 +4 0 0 50 -1 0 25 0.0000 4 285 750 4275 6660 MPI\001 +4 0 0 50 -1 0 25 0.0000 4 285 2190 4050 2160 Fortran 2003\001 diff --git a/docs/src/figures/psblas.pdf b/docs/src/figures/psblas.pdf index 5d0d1820a2d638301570ea6555bc73513bc72778..0657a7a5518c70fecac8dbff4d5947d26339200e 100644 GIT binary patch literal 7196 zcmb_B2{=@3+fi8tNrkfHq!?v6vzjG?u`Bz&rN$UzGG?ZkF-D}2yrPA)DT^W4jGKlk>W`=;Y!Wn+jo!Xb2OhIZv5 z@Bj+n2CYY!n1Bup4pSHk7(**=pbd*HWbgsdhD{SPtQd4|FvHXoArSHzv~Yy@@HsEX zUFrn+%P+hK+i_cb(>|N(n)}bPi*sZHNx9PW-iQkeSE@(HeH~9<>M9a-ufA0+-4eZ& z;`Zg%tD=Z4?R96qIZMB7tznNc&lZ2^J2U>cjIdVW{L`-l&7m#@5LA)Pz0M|#o~S!& zy)|{Gfwi7adbdVn(fg5i#aY9jH$;n)P6+e<`F%zU8v_w ztcvJCq4Lc=)WXH{6he##Db(f!>JiBsOGxX^)*yDcL=I4eYdxJ?a#WO^2b|9iu!$kL zeJ*x4eDem1lAg3R>WAs=UQu+y=bC-L)Sl#sDAzp1&BqG4FE7=7T=9@DlGT%Y-MD+< zw|Dm!*Q}~nwpbu7EVAJ>6^KNe8#+|IzP6=hAhz;b)5bb<%>xn7zG0RuU(}Wvkd``H zshLeXO>8DeX*e9Oet%?Pjr{U8w0Avu>sIE7p33z}@-7z!(G)4(zGwfmTW>^6K8JA= z>PUXNwhox(MzQW*EQiaD#;xVO^=Y$-6h?3NZwfJbt5GW@s@hhc7S-JNm#xgh{A=P3 zTWUXN#-)6Yr%UXgsju(8>IL&=js+j@k}PGg*w*TttHL(v{mPF%R4%q2eLw&F&MS`x1fTZLsYKOY9)BcbkBGf+SV?PGOQWr& zuQ@dTs!Q@){bc*(84c_Di8mqzy|E4wd6oM-Ny+;#Z*w1I)HueSwn;-=d)xM~^sC|Z zx(IZfT*9*mr5kUzBQ~A*u;GPILyT8Y8FhcFv1`J1-yEW1o8mSdMAyKcos`5U4c4Vp z{Bp$brnf9FlYkL^pH=tK-gd=D1o81%o(Q#~nJt%*2{ngmYCh5Kn^Iy(^`RveGG8JF zE*)Do(%{h0v*E(N+t=$Q=gd8Vm*@x!e0X`K>9Esi7we#(%=TRYUizdgt7E5#BTfwt zt+oe8J1SyP`c;zY89m#Pxqp-le-4i{<&Lh5zCbymwR6lmYkYqNE${m6(vgwwUZQ&g zu3D$9CU0%k;cTa_rOxx4ca=O#_#_>-;L9xrCwM9rp%EOvaMZ$YB8iBYTEhJZZI37( z19YJ=8K5I0m_@VTiUEHV1V)nx00xa;gMfg121f{B;owJrZVUl8f=_1%ptRt^=hEF7 zLVplS902IS5DOu6Yq8MQT?nNH01fkjNNl(eIT}4NfieYX3C$sn0szi1ZU|^;N-TJb z$&3SWgX97x1QP(@YF4lS@JGO6yCK#95QhkuD+#>nKu9VhHGb7Ej3K10(t_8u<2O3LyO>K&pTa#|N|uxi*bw$6zr-p(()_0m4RvVK6BIw1+&BMW=F@ zYzCw*&|Sy~_X5xu5(0E&2?Wr2Caec*0|EL>vB4Qb6WG*Hoaup7&;qmp?Li075p)6F zK^jO08DI#=1X&;(Y zYhTgk<$Kr9RcW`Uf}Vur64})jGWLK0m1wZUKvrU2`&LIu$#{>v6?*5}T~Erjs~oQ3 zkh4}XN&7Fw97qvm#~uJjFO6nDiF!2p&FsqPEmV@u!W}jOdFA7;T05ju+=HxB9=(uJ zR4WORElHnafBTEsKqSg5C~n8QC%4k(XliD95iwb}?-td*!K@I^KGqt_-*o7TPx@Y6 zJG;hLF{3=*$LO$*(_?R2bhWg!TKasyslS%*$(NgFm0eVzx@fK5zT>Z~7j>D87u>VR z>DkJRN3BjjFtSKpwPu%pfQpKKKQekmMP~NAWS@agr@uvKKMV{!)b75kNqW}un!IP( zElWpDfDfHy6y7zlHv|jWTE)L%)e?z zZkMvW_YbYPL*1MeTmM)&Y15o5m@f-;b(>R}fqz|)U;@6MpWm6eTG5blS>B*k37Iv} zmowX1eje8+^ervqLkZu}u~)M+_2Nio-LgIv{)e<8LFuuS?tZ=cR9mK6__jCXth8tq zLk2Kkz&l0FbxvGCIB=p?QD1`ZkqG|js-XV3cH0aVov4J&N#kA= zP39dx8FpK}o{{hN>pcOUR!T0pR`VCT=HSd%n&-c2vCUMV%sm{YJn|$xMnkGlIW1*R zuY)+lsAfisL`LGb>WZOgk3TyvB)y#h>ZR1r>)#eqL2BY|4T;i1cOeNYm;R-3r+L#> zo~oDI^)G714a;hnW!nM<(S8z^?rPvI^uaIGa%;0mQ?-44OO%AukN`W=B}|G z#N<(LA4qh=b#HC;d|H9E`&^rtcS_f*v}pDFVzqepjZI1;7TR;J3j_%WiLi5$tPSlY zHZjbCa+O%wTe_8m0#EEL3BM2X`R3eX-Xcoi{OZ*!8~YyC$TiGqnAetrAe4n5E8dol z4`m5f+L_-uCi<);dp?qX_}0=@eY*_HqOn5CUXx4g2N`qG~eQw{Vw_gk{O z*Hw>Z=sWNW_rnQCkbCI#@yP?~#lT()ChqW%24R6YUO zD;H|BC*jZXBW~|r3XD!#X=^ghreS8b+}oG;KuY41@hbX#;a;yfe%GwzJ5RDZXWc)5 zynQHjw)&okwL2dz#})P%6&K4T`3u@smSuQGH-1Da7m~&5fYL_w%`)m4+jec4|M&!} zxn!=o!Sj%(avi%{3{~67?^J~eYqol!_y=#^jGC>ZV}0w?-1YVRh%Id{I(xm2Z)7X( ze5Lrz6s_KrW%s;^ZI@(02rMO90660YQtA0hmG{J2-OH&Cn;fkdd1`vC!=KdW2v4y&F|Bb479r|5I+rp1Fh(wj{J>3><7gu9#h@zG1Y5N|S^;KtD zds;0#6d}M%HfE;3v2daW(gNeQX{pW6S~JV%?4{X>v;88)rDYc@7Z!73se!?qXQ`L? zr>{huOgeUYZ{Bj8+n~ysve-K7{0;3x*n!;CfhcLL!efE(`Ha?1UOt)GU|;C*wCSRA zlt}Z7)ZDuTpH4Ir-6b0Pqe!M>y#^#DYUb-6+3Is`pWciPb|)E~RO-Fj!A@LZTeKB8 zc9e4*ni{-}=&*RQjMD-l@6dn-F zKoW+$`)gk19b6&dAbIkStF(vxuhzA8E=yv_ci`)#C{EXOExBfRE6$f}g~a7bKIsrG`U4p_G^8{>jS}f2gL;>s5I}*Z){3pQjC#oniX3j$p>`?!6qK zJv+%gA_5Ab_{*C=>&h^n^%(8F<1FVx<>#t?)A)o|X{~ZZkwe2rpWRr|e{<);iiFo4HY&QtgM4|HJ;kMxe?tXGOzl&Zf5Q- z`MZ(#NbO!{&%H(PKDWFv%Q&hqe}~}RC&gs{p+vj-a?C0NR z;z8(Phc$Xj&n9D}7U?i!^YH`bX2r!)N!)^df4PDPQp!H>va8H3Vrg4txnrs1fuMPW zv_I7!i_}Wygfnbk{-HFSa1C|B5|`b!_LjSe?5${3+(K1czL;}d)9HE&p6Pc+)P;Q9!Lw@v zpApet;=(D3sZzQ{ad!w;Y-Wxh5ztmwh1gz8>E(dlMwwYU%Yx^4U4FRT>ej)Xv|AJ%T7DsUcT8iY)+|(J9vt}_pY6=U@rUB z`%y&Mn=4Me^=C^LB;H?^MxGyHac~I}g#`lAXZ2A#aWCt-pMA(dJ8ky1Bn%~W?3Dks zZ_m)Gj^fg?^*-1FEMLBjhg(?y!7%iTn;bw*Ay7+q*(LFT3?XC=tot$U7Masw-?4n8 zFu9W^Rtivie#IEG%z5yMP^TlWUD|cHH|lfQTIS$D6uBbZ*MGg2;kV7hW$pR3A2W8o^H`sQ@=`h? z*4ygbyE_13@27Z4h&#S3a>*viz%5L*q0964e^%NON-{4A98|cID8THcU@b6qrgcxF zI1d}g2-_`_m;UiJ^!5E2FO>`00-Z00=P32qBV##TO0 z<(Tz664AP?UfdoX(l5@th<};+PKbJ-aDLY20sXqW7yc5ssVQ%qohZy(wNGrb@x|AK z57%5r2G@=w!M5wOQMuWJ$SC?U=d{CD?bGz!^Q0ZEPbWM| zeHSBp?Y&aqx_HbI!ySjxwY^5{rJW9{Xg9`N7&bOD&VmtMByzJc*{G)Yo1|l1p&eYb z{93?I)T%$%FVj`*kI!-+M~CTeax@N$|Nc#GVkU-4fiQ*;2x2f<918Mf#T6vL3Z@{v z@s21*o+TrcWw(*faNp?ULEjigCj}$TOc5q#G^lgHFci~xh9MK(J^=t#G8An~HwPPS z7(q-Hhx5XrVj2*KvpE8?n1Y-jAwy$$8AJjTD8eub(#O#S5OTTfFqRO&7?F(7hG?t- z5Wcjtf2mk zDF%gxY=JRE<2}$gG9FLHVD(XGG74n^{)Pz|93r)ZI=oQF_y0ip6Xs8(T)qe72Bsk_ zCMK960=yV}0jz(l5e9If3F)D1hKRui@WGSYPwic60OhYEUoD+)3qf)z~uKRArpzi8xO`gc)z5q$PUNCZPI05$`bN&wjz4apiz zCx>wP;WWshX*?d(a-azzJ%f-tB27&oppYeGGfXD}j>;BJ4%jR>fXHkbhe<(-4TBjW zvv1tM$$Yzr^V6#jo2NRUw4{p$i4*Lg}KgrOYv0<9CsQ^kMEFO<*9?a#? z*uj9FJB=-ZQ5gW#Yk(mf#`53zPte2szjOTuADCEzk_O}s;P;ediU9tl=ig)WBM(E_ zoq~*nv+UpU{7)^I>9nEuPg!F*)DePJ4H*>?TZ_iw@e@IeM4^xn8WimR z1;YdO1-&0up61Qv>;2a_g>b16!cYkHcLN9flZ6A8FaO>|74sP(P%{vXL%{iU@&SzT zcq|?W0jAcV13?;rAAmExW{k%`O~PN-&}cl=jQnj4h58#U3WbIm&cEWJNW{O>VhB*X z^H)4H7H&@dwnq4eeX&rF@OL~c?r&=t6x;^=l^-63hMKF>YeGH^YSi(e|GojBJ8L7< zO~(PC80>#3h+0vrW#X?ZJ^s9MWCXn#+HyrSff!?D=G$U hX>CO`HvR7yYv7K$KuF^YCkzDjFtG@zc6PQw{13_b_X+?2 delta 1610 zcmZvYdo+}39LHIg7%XYr*Lt<%I+=N2b9;@+C1zwLhKW^)!C=J9n3;7eO_8>vOf*fp zk%-z=D!Z#(tCiNRXlXxRjM)0`j- zu0YE})WO+8GI*>&U)!Lze{AXwE9keJJ;uD%s$uHkTBPccb)m^9wZ+Baq37Ek?S6#R zYsep$9mh2fQQmG!pav--7K&o!BMbIi>~I<0Hw>#(nfHZ_@(M-Thf_O;aP-cOB(Jm9bkkm;NP_aO zwo`W=2nl=PryF{%XXstOa^F`Dht3mwo0)ru?c@nN;3qE*@poKzkH|Hrmit-+x{g+e z92*y3+)4RnDB7=vPCSyhMOrd0X~qtDqg{CXlamyV-S@EmLoeG(=c@09|Jqt&9q`Be z*@LNSs$Syur!BXSUx0OTdN5HsOhZd+$wh=FQte9bdDED3RO?L#Y-Jb5KdWq-n5tsU z>wloP$gl7WDSw)1c)G(fft}T}UMpfqL_Zc2syq_l6HgvF;??x4pW~?R>pj5eF_&zN zjg-zp-=eq0)`Xdv^pf*_s&#KTYF7|gHqaATdP-_3x*E>-TOoR@g4=M;D5+oumf}o5Ljq4-M~SO|67SDf!7~Z`ZcAjE~47wcbAK zbR=oqOOaX>msc3{$$r3?M$`Cpoe$*4<2Ly4+={L=Onc}usRa(FdiPn+!myW~ujy+o zC7d5~kbkq|ZrfFHUBTn+g@vdeV|;^r<{yy9;Y`JRlG@#=UBmN&;vJ&Ql|@xo6Z12+ zhpJ$Mi%dN_7JM9c5&Ct>CYs?F1IyZa_fh)3HS5AwAKKr2;h!9pkmgC(%kC$lDufVr zSAeWh;5FC zPN;w-mo-;})ugdoheW^RUVe3kq4H*JcWigp!?}H1Eo)wOf}0T;FK-+pE1U3bB}Tk0 z9k%AJ{jU9TPmQZI-OX!i@7tP_15&v+>j?l8}^gC>;&ukWX|H?0z>Z8ypI zo5hI{2>C2#5@PAbjY>ce0TB3bLLf|(46C76IKw!=nTVGl)hS=QEXg1Qmd51>0SJ^t zsAo$Q>Nr&wiM@uUDk!08fW{1V5=-C|#7$yyu#9vb>*HgD!h<02Q3IU+AVh@l%NPz1En`b@Bwgkx5d@KzOFSN4 zwm|p-!^2B0ewfb!5TMU?g?uJEk;O+)C;&E?oxxiA5r7Tia+fOqP(Of`R9P6f+0UTu qB7+%e@~)IJaVTbYjKgvgj&O5B2!u?&@MAX+$(ew#v7rXg5dQ+nx}$vn diff --git a/docs/src/figures/try8x8.fig b/docs/src/figures/try8x8.fig new file mode 100644 index 00000000..57f5ff4d --- /dev/null +++ b/docs/src/figures/try8x8.fig @@ -0,0 +1,353 @@ +#FIG 3.2 +Landscape +Center +Inches +Letter +100.00 +Single +-2 +1200 2 +6 1350 900 1425 6900 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 1350 6300 1350 6900 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 1350 5400 1350 6000 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 1350 4500 1350 5100 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 1350 3600 1350 4200 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 1350 2700 1350 3300 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 1350 1800 1350 2400 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 1350 900 1350 1500 +-6 +6 2250 900 2325 6900 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 2250 6300 2250 6900 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 2250 5400 2250 6000 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 2250 4500 2250 5100 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 2250 3600 2250 4200 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 2250 2700 2250 3300 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 2250 1800 2250 2400 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 2250 900 2250 1500 +-6 +6 3150 900 3225 6900 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 3150 6300 3150 6900 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 3150 5400 3150 6000 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 3150 4500 3150 5100 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 3150 3600 3150 4200 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 3150 2700 3150 3300 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 3150 1800 3150 2400 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 3150 900 3150 1500 +-6 +6 4050 900 4125 6900 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 4050 6300 4050 6900 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 4050 5400 4050 6000 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 4050 4500 4050 5100 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 4050 3600 4050 4200 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 4050 2700 4050 3300 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 4050 1800 4050 2400 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 4050 900 4050 1500 +-6 +6 4950 900 5025 6900 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 4950 6300 4950 6900 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 4950 5400 4950 6000 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 4950 4500 4950 5100 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 4950 3600 4950 4200 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 4950 2700 4950 3300 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 4950 1800 4950 2400 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 4950 900 4950 1500 +-6 +6 5850 900 5925 6900 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 5850 6300 5850 6900 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 5850 5400 5850 6000 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 5850 4500 5850 5100 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 5850 3600 5850 4200 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 5850 2700 5850 3300 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 5850 1800 5850 2400 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 5850 900 5850 1500 +-6 +6 6750 900 6825 6900 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 6750 6300 6750 6900 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 6750 5400 6750 6000 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 6750 4500 6750 5100 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 6750 3600 6750 4200 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 6750 2700 6750 3300 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 6750 1800 6750 2400 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 6750 900 6750 1500 +-6 +6 7650 900 7725 6900 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 7650 6300 7650 6900 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 7650 5400 7650 6000 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 7650 4500 7650 5100 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 7650 3600 7650 4200 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 7650 2700 7650 3300 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 7650 1800 7650 2400 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 7650 900 7650 1500 +-6 +6 1500 750 7500 750 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 6900 750 7500 750 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 6000 750 6600 750 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 5100 750 5700 750 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 4200 750 4800 750 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 3300 750 3900 750 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 2400 750 3000 750 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 1500 750 2100 750 +-6 +6 1500 1650 7500 1650 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 6900 1650 7500 1650 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 6000 1650 6600 1650 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 5100 1650 5700 1650 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 4200 1650 4800 1650 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 3300 1650 3900 1650 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 2400 1650 3000 1650 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 1500 1650 2100 1650 +-6 +6 1500 2550 7500 2550 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 6900 2550 7500 2550 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 6000 2550 6600 2550 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 5100 2550 5700 2550 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 4200 2550 4800 2550 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 3300 2550 3900 2550 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 2400 2550 3000 2550 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 1500 2550 2100 2550 +-6 +6 1500 3450 7500 3450 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 6900 3450 7500 3450 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 6000 3450 6600 3450 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 5100 3450 5700 3450 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 4200 3450 4800 3450 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 3300 3450 3900 3450 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 2400 3450 3000 3450 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 1500 3450 2100 3450 +-6 +6 1500 4350 7500 4350 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 6900 4350 7500 4350 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 6000 4350 6600 4350 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 5100 4350 5700 4350 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 4200 4350 4800 4350 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 3300 4350 3900 4350 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 2400 4350 3000 4350 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 1500 4350 2100 4350 +-6 +6 1500 5250 7500 5250 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 6900 5250 7500 5250 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 6000 5250 6600 5250 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 5100 5250 5700 5250 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 4200 5250 4800 5250 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 3300 5250 3900 5250 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 2400 5250 3000 5250 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 1500 5250 2100 5250 +-6 +6 1500 6150 7500 6150 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 6900 6150 7500 6150 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 6000 6150 6600 6150 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 5100 6150 5700 6150 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 4200 6150 4800 6150 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 3300 6150 3900 6150 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 2400 6150 3000 6150 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 1500 6150 2100 6150 +-6 +6 1500 7050 7500 7050 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 6900 7050 7500 7050 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 6000 7050 6600 7050 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 5100 7050 5700 7050 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 4200 7050 4800 7050 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 3300 7050 3900 7050 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 2400 7050 3000 7050 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 1500 7050 2100 7050 +-6 +1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 1350 750 150 150 1350 750 1350 900 +1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 1350 1650 150 150 1350 1650 1350 1800 +1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 1350 2550 150 150 1350 2550 1350 2700 +1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 1350 3450 150 150 1350 3450 1350 3600 +1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 1350 4350 150 150 1350 4350 1350 4500 +1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 1350 5250 150 150 1350 5250 1350 5400 +1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 1350 6150 150 150 1350 6150 1350 6300 +1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 1350 7050 150 150 1350 7050 1350 7200 +1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 2250 750 150 150 2250 750 2250 900 +1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 2250 1650 150 150 2250 1650 2250 1800 +1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 2250 2550 150 150 2250 2550 2250 2700 +1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 2250 3450 150 150 2250 3450 2250 3600 +1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 2250 4350 150 150 2250 4350 2250 4500 +1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 2250 5250 150 150 2250 5250 2250 5400 +1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 2250 6150 150 150 2250 6150 2250 6300 +1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 2250 7050 150 150 2250 7050 2250 7200 +1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 3150 750 150 150 3150 750 3150 900 +1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 3150 1650 150 150 3150 1650 3150 1800 +1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 3150 2550 150 150 3150 2550 3150 2700 +1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 3150 3450 150 150 3150 3450 3150 3600 +1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 3150 4350 150 150 3150 4350 3150 4500 +1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 3150 5250 150 150 3150 5250 3150 5400 +1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 3150 6150 150 150 3150 6150 3150 6300 +1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 3150 7050 150 150 3150 7050 3150 7200 +1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 4050 750 150 150 4050 750 4050 900 +1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 4050 1650 150 150 4050 1650 4050 1800 +1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 4050 2550 150 150 4050 2550 4050 2700 +1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 4050 3450 150 150 4050 3450 4050 3600 +1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 4050 4350 150 150 4050 4350 4050 4500 +1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 4050 5250 150 150 4050 5250 4050 5400 +1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 4050 6150 150 150 4050 6150 4050 6300 +1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 4050 7050 150 150 4050 7050 4050 7200 +1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 4950 750 150 150 4950 750 4950 900 +1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 4950 1650 150 150 4950 1650 4950 1800 +1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 4950 2550 150 150 4950 2550 4950 2700 +1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 4950 3450 150 150 4950 3450 4950 3600 +1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 4950 4350 150 150 4950 4350 4950 4500 +1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 4950 5250 150 150 4950 5250 4950 5400 +1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 4950 6150 150 150 4950 6150 4950 6300 +1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 4950 7050 150 150 4950 7050 4950 7200 +1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 5850 750 150 150 5850 750 5850 900 +1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 5850 1650 150 150 5850 1650 5850 1800 +1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 5850 2550 150 150 5850 2550 5850 2700 +1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 5850 3450 150 150 5850 3450 5850 3600 +1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 5850 4350 150 150 5850 4350 5850 4500 +1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 5850 5250 150 150 5850 5250 5850 5400 +1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 5850 6150 150 150 5850 6150 5850 6300 +1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 5850 7050 150 150 5850 7050 5850 7200 +1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 6750 750 150 150 6750 750 6750 900 +1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 6750 1650 150 150 6750 1650 6750 1800 +1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 6750 2550 150 150 6750 2550 6750 2700 +1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 6750 3450 150 150 6750 3450 6750 3600 +1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 6750 4350 150 150 6750 4350 6750 4500 +1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 6750 5250 150 150 6750 5250 6750 5400 +1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 6750 6150 150 150 6750 6150 6750 6300 +1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 6750 7050 150 150 6750 7050 6750 7200 +1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 7650 750 150 150 7650 750 7650 900 +1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 7650 1650 150 150 7650 1650 7650 1800 +1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 7650 2550 150 150 7650 2550 7650 2700 +1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 7650 3450 150 150 7650 3450 7650 3600 +1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 7650 4350 150 150 7650 4350 7650 4500 +1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 7650 5250 150 150 7650 5250 7650 5400 +1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 7650 6150 150 150 7650 6150 7650 6300 +1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 7650 7050 150 150 7650 7050 7650 7200 +2 1 1 1 0 7 50 -1 -1 4.000 0 0 -1 0 0 2 + 600 3900 8175 3900 +4 0 0 50 -1 0 12 0.0000 4 135 90 1350 7575 1\001 +4 1 0 50 -1 0 12 0.0000 4 135 90 2250 7575 2\001 +4 1 0 50 -1 0 12 0.0000 4 135 90 3150 7575 3\001 +4 1 0 50 -1 0 12 0.0000 4 135 90 4050 7575 4\001 +4 1 0 50 -1 0 12 0.0000 4 135 90 4950 7575 5\001 +4 1 0 50 -1 0 12 0.0000 4 135 90 5850 7575 6\001 +4 1 0 50 -1 0 12 0.0000 4 135 90 6750 7575 7\001 +4 1 0 50 -1 0 12 0.0000 4 135 90 7650 7575 8\001 +4 1 0 50 -1 0 12 0.0000 4 135 180 7650 450 64\001 +4 1 0 50 -1 0 12 0.0000 4 135 180 6750 450 63\001 +4 1 0 50 -1 0 12 0.0000 4 135 180 5850 450 62\001 +4 1 0 50 -1 0 12 0.0000 4 135 180 4950 450 61\001 +4 1 0 50 -1 0 12 0.0000 4 135 180 4050 450 60\001 +4 1 0 50 -1 0 12 0.0000 4 135 180 3150 450 59\001 +4 1 0 50 -1 0 12 0.0000 4 135 180 2250 450 58\001 +4 1 0 50 -1 0 12 0.0000 4 135 180 1350 450 57\001 +4 1 0 50 -1 0 12 0.0000 4 135 180 8100 4425 32\001 +4 1 0 50 -1 0 12 0.0000 4 135 180 900 4425 25\001 +4 1 0 50 -1 0 12 0.0000 4 135 180 975 3525 27\001 +4 1 0 50 -1 0 12 0.0000 4 135 180 8100 3525 40\001 +4 1 0 50 -1 2 18 0.0000 4 195 300 8700 1950 P1\001 +4 1 0 50 -1 2 18 0.0000 4 195 300 8700 5850 P0\001 diff --git a/docs/src/intro.tex b/docs/src/intro.tex index b44c8d51..4c99429d 100644 --- a/docs/src/intro.tex +++ b/docs/src/intro.tex @@ -21,7 +21,11 @@ mostly in the handling of requirements for evolution and adaptation of the library to new computing architectures and integration of new algorithms. For a detailed discussion of our design see~\cite{Sparse03}; other -works tackling advanced programming in Fortran~2003 include~\cite{DesPat:11,RouXiaXu:11} +works discussing advanced programming in Fortran~2003 +include~\cite{DesPat:11,RouXiaXu:11}; sufficient support for +Fortran~2003 is now available from many compilers, including the GNU +Fortran compiler from the Free Software Foundation (as of version 4.6). + Previous approaches have been based on mixing Fortran~95, with its support for object-based design, with other languages; these have @@ -32,12 +36,7 @@ usability of the PSBLAS subroutines. In this way, the library can take care of runtime memory requirements that are quite difficult or even impossible to predict at implementation or compilation time. -In the current release we rely on the availability of the so-called -allocatable extensions, specified in TR~15581. Strictly speaking they -are outside the Fortran~95 standard; however they have been included -in the Fortran~2003 language standard, and are available in -practically all Fortran~95 compilers on the market, including the GNU -Fortran compiler from the Free Software Foundation (as of version 4.2). + The presentation of the PSBLAS library follows the general structure of the proposal for serial Sparse BLAS~\cite{sblas97,sblas02}, which in its turn is based on the @@ -84,20 +83,16 @@ influenced by the structure of the ScaLAPACK parallel library. The layered structure of the PSBLAS library is shown in figure~\ref{fig:psblas}; lower layers of the library indicate an encapsulation relationship with upper layers. The ongoing -discussion focuses on the Fortran~95 layer immediately below the +discussion focuses on the Fortran~2003 layer immediately below the application layer. The serial parts of the computation on each process are executed through -calls to the serial sparse BLAS subroutines. In a similar way, the -inter-process message exchanges are implemented through the Basic -Linear Algebra Communication Subroutines (BLACS) library~\cite{BLACS} -that guarantees a portable and efficient communication layer. The -Message Passing Interface code is encapsulated within the BLACS -layer. However, in some cases, MPI routines are directly used either -to improve efficiency or to implement communication patterns for which -the BLACS package doesn't provide any method. - -In any case we provide wrappers around the BLACS routines so that the -user does not need to delve into their details (see Sec.~\ref{sec:parenv}). +calls to the serial sparse BLAS subroutines. +In a similar way, the inter-process message exchanges are encapsulated +in an applicaiton layer that has been strongly inspired by the Basic +Linear Algebra Communication Subroutines (BLACS) library~\cite{BLACS}. +Usually there is no need to deal directly with MPI; however, in some +cases, MPI routines are used directly to improve efficiency. For +further details on our communication layer see Sec.~\ref{sec:parenv}. %% We assume that the user program has initialized a BLACS process grid %% with one column and as many rows as there are processes; the PSBLAS %% initialization routines will take the communication context for this @@ -136,10 +131,12 @@ sub-domains}. Our library supports any distribution that keeps together the coefficients of each matrix row; there are no other constraints on the variable assignment. -This choice is consistent with data distributions commonly used in -ScaLAPACK such as \verb|CYCLIC(N)| and \verb|BLOCK|, +This choice is consistent with simple data distributions +%commonly used in ScaLAPACK +such as \verb|CYCLIC(N)| and \verb|BLOCK|, as well as completely arbitrary assignments of -equation indices to processes. In particular it is consistent with the +equation indices to processes. +In particular it is consistent with the usage of graph partitioning tools commonly available in the literature, e.g. METIS~\cite{METIS}. Dense vectors conform to sparse diff --git a/docs/src/userguide.tex b/docs/src/userguide.tex index b561e217..8f1a9ded 100644 --- a/docs/src/userguide.tex +++ b/docs/src/userguide.tex @@ -100,7 +100,7 @@ by Salvatore Filippone\\ and Alfredo Buttari}\\ University of Rome ``Tor Vergata''.\\[3ex] -May 15th, 2010. +December 15th, 2011. \end{minipage}} %\addtolength{\textwidth}{\centeroffset} diff --git a/docs/src/userhtml.tex b/docs/src/userhtml.tex index 4c20cd12..5992afbb 100644 --- a/docs/src/userhtml.tex +++ b/docs/src/userhtml.tex @@ -85,7 +85,7 @@ %\today Software version: 3.0-beta\\ %\today -May 15th, 2010 +December 15th, 2011 \cleardoublepage \begingroup \renewcommand*{\thepage}{toc}