diff --git a/Changelog b/Changelog index 0e538069..7cfc2997 100644 --- a/Changelog +++ b/Changelog @@ -1,5 +1,21 @@ Changelog. A lot less detailed than usual, at least for past history. +2019/12/18: New internals and algorithms for FND_OWNER, faster and less + memory hungry. +2019/07/20: New SCAN collective; improve handling of SYMmetric +2019/07/08: Fix memory usage in conversions to/from coo +2019/07/01: Timer facility +2019/06/25: Fix memory footprint in spspmm and other borderline cases +2019/06/17: Make ADD default assembly action. +2019/05/30: new insertion routines in CSR mode +2019/05/27: Fix matrix generation. +2019/05/26: New timer facility (undocumented). +2019/05/20: Change checks on vectors +2019/05/05: Reworked linmap internals +2019/04/15: Improved sphalo and test programs printout +2019/04/09: bump version to 3.6.1 +2019/04/09: new fnd_owner_halo method +2019/03/31: New RENUM_BLK descriptor method 2019/01/16: In bldext, implement ALL_TO_ALLV by hand for certain compilers. 2018/10/10: New ICTXT argument in prec%init diff --git a/README.md b/README.md index cc1a77e6..07eb378e 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -PSBLAS library, version 3.6 +PSBLAS library, version 3.7 =========================== The architecture of the Fortran 2003 sparse BLAS is described in: @@ -110,6 +110,25 @@ Fix all reamining bugs. Bugs? We dont' have any ! ;-) The PSBLAS team. +--------------- +Project lead: +Salvatore Filippone + +Contributors (roughly reverse cronological order): + +Soren Rasmussen +Zaak Beekman +Ambra Abdullahi Hassan +Pasqua D'Ambra +Alfredo Buttari +Daniela di Serafino +Michele Martone +Michele Colajanni +Fabio Cerioni +Stefano Maiolatesi +Dario Pascucci + + RELATED SOFTWARE ---------------- diff --git a/ReleaseNews b/ReleaseNews index 7b1829da..0b1937e3 100644 --- a/ReleaseNews +++ b/ReleaseNews @@ -1,5 +1,21 @@ WHAT'S NEW +Version 3.7.0 + 1. Major change at API level: integer kinds reorganization. + Local indices are now of kind PSB_IPK_, whereas global indices + are of kind PSB_LPK_; at configure time it is possible to + choose them independently to be PSB_MPK_ (4 bytes) or PSB_EPK_ + (8 bytes), with the constraint that LPK is always at least as + large as IPK. + 2. The internals have also been reorganized heavily, with a much + more coherent design and split of functionalities into source + files. + + +Version 3.6.1 + 1. Multiple improvements to CDASB. + 2. Some additional methods required by the latest versions of MLD + Version 3.5. 1. New Krylov methods methods FCG and GCR are now available. @@ -86,29 +102,9 @@ The solution: either take out the -g option, or, if you really need to debug, edit Make.inc to force -DMPI_H in place of -DMPI_MOD. - -The PSBLAS team. - RELATED SOFTWARE If you are looking for more sophisticated preconditioners, you may be interested in the package MLD2P4 from http://github.com/sfilippone/mld2p4-2 -Contact: https://github.com/sfilippone/psblas3 - -Contributors -Salvatore Filippone -Alfredo Buttari -Soren Rasmussen -Ambra Abdullahi Hassan -Pasqua D'Ambra -Daniela di Serafino -Michele Martone -Michele Colajanni -Fabio Cerioni -Stefano Maiolatesi -Dario Pascucci - - - diff --git a/base/comm/internals/psi_covrl_restr.f90 b/base/comm/internals/psi_covrl_restr.f90 index 98ecdd8b..996e85ad 100644 --- a/base/comm/internals/psi_covrl_restr.f90 +++ b/base/comm/internals/psi_covrl_restr.f90 @@ -28,8 +28,13 @@ ! ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE ! POSSIBILITY OF SUCH DAMAGE. ! +! +! Subroutine: psi_covrl_restr +! These subroutines restore the overlap region of a vector; they are used +! for the transpose matrix-vector product when there is a nonempty overlap. +! +! ! - subroutine psi_covrl_restr_vect(x,xs,desc_a,info) use psi_mod, psi_protect_name => psi_covrl_restr_vect use psb_c_base_vect_mod diff --git a/base/comm/internals/psi_covrl_restr_a.f90 b/base/comm/internals/psi_covrl_restr_a.f90 index 46eb0563..3c814a81 100644 --- a/base/comm/internals/psi_covrl_restr_a.f90 +++ b/base/comm/internals/psi_covrl_restr_a.f90 @@ -28,6 +28,11 @@ ! ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE ! POSSIBILITY OF SUCH DAMAGE. ! +! +! Subroutine: psi_covrl_restr +! These subroutines restore the overlap region of a vector; they are used +! for the transpose matrix-vector product when there is a nonempty overlap. +! ! subroutine psi_covrl_restrr1(x,xs,desc_a,info) use psi_mod, psi_protect_name => psi_covrl_restrr1 diff --git a/base/comm/internals/psi_covrl_save.f90 b/base/comm/internals/psi_covrl_save.f90 index 41e65943..c48d2ade 100644 --- a/base/comm/internals/psi_covrl_save.f90 +++ b/base/comm/internals/psi_covrl_save.f90 @@ -28,6 +28,11 @@ ! ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE ! POSSIBILITY OF SUCH DAMAGE. ! +! +! Subroutine: psi_covrl_save +! These subroutines save the overlap region of a vector; they are used +! for the transpose matrix-vector product when there is a nonempty overlap. +! ! subroutine psi_covrl_save_vect(x,xs,desc_a,info) use psi_mod, psi_protect_name => psi_covrl_save_vect diff --git a/base/comm/internals/psi_covrl_save_a.f90 b/base/comm/internals/psi_covrl_save_a.f90 index d853db8d..d017d921 100644 --- a/base/comm/internals/psi_covrl_save_a.f90 +++ b/base/comm/internals/psi_covrl_save_a.f90 @@ -28,8 +28,12 @@ ! ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE ! POSSIBILITY OF SUCH DAMAGE. ! -! - +! +! +! Subroutine: psi_covrl_save +! These subroutines save the overlap region of a vector; they are used +! for the transpose matrix-vector product when there is a nonempty overlap. +! subroutine psi_covrl_saver1(x,xs,desc_a,info) use psi_mod, psi_protect_name => psi_covrl_saver1 diff --git a/base/comm/internals/psi_covrl_upd.f90 b/base/comm/internals/psi_covrl_upd.f90 index f99cbb66..ce33845e 100644 --- a/base/comm/internals/psi_covrl_upd.f90 +++ b/base/comm/internals/psi_covrl_upd.f90 @@ -28,8 +28,14 @@ ! ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE ! POSSIBILITY OF SUCH DAMAGE. ! +! +! Subroutine: psi_covrl_update +! These subroutines update the overlap region of a vector; they are used +! for the transpose matrix-vector product when there is a nonempty overlap, +! or for the application of Additive Schwarz preconditioners. +! +! ! - subroutine psi_covrl_upd_vect(x,desc_a,update,info) use psi_mod, psi_protect_name => psi_covrl_upd_vect use psb_realloc_mod diff --git a/base/comm/internals/psi_covrl_upd_a.f90 b/base/comm/internals/psi_covrl_upd_a.f90 index 633747e5..33297731 100644 --- a/base/comm/internals/psi_covrl_upd_a.f90 +++ b/base/comm/internals/psi_covrl_upd_a.f90 @@ -28,6 +28,12 @@ ! ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE ! POSSIBILITY OF SUCH DAMAGE. ! +! +! Subroutine: psi_covrl_update +! These subroutines update the overlap region of a vector; they are used +! for the transpose matrix-vector product when there is a nonempty overlap, +! or for the application of Additive Schwarz preconditioners. +! ! subroutine psi_covrl_updr1(x,desc_a,update,info) use psi_mod, psi_protect_name => psi_covrl_updr1 diff --git a/base/comm/internals/psi_cswapdata.F90 b/base/comm/internals/psi_cswapdata.F90 index 9d350044..fed8afbf 100644 --- a/base/comm/internals/psi_cswapdata.F90 +++ b/base/comm/internals/psi_cswapdata.F90 @@ -32,8 +32,10 @@ ! ! File: psi_cswapdata.F90 ! -! Subroutine: psi_cswapdatam -! Does the data exchange among processes. Essentially this is doing +! +! +! Subroutine: psi_cswapdata_vect +! Implements the data exchange among processes. Essentially this is doing ! a variable all-to-all data exchange (ALLTOALLV in MPI parlance), but ! it is capable of pruning empty exchanges, which are very likely in out ! application environment. All the variants have the same structure @@ -43,12 +45,15 @@ ! C complex(psb_spk_) ! Z complex(psb_dpk_) ! Basically the operation is as follows: on each process, we identify -! sections SND(Y) and RCV(Y); then we do a send on (PACK(SND(Y))); -! then we receive, and we do an update with Y = UNPACK(RCV(Y)) + BETA * Y -! but only on the elements involved in the UNPACK operation. +! sections SND(Y) and RCV(Y); then we do a SEND(PACK(GTH(SND(Y)))); +! then we receive, and we do an update with Y = SCT(RCV(Y)) + BETA * Y +! but only on the elements involved in the SCT operation. ! Thus: for halo data exchange, the receive section is confined in the ! halo indices, and BETA=0, whereas for overlap exchange the receive section ! is scattered in the owned indices, and BETA=1. +! The first routine picks the desired exchange index list and passes it to the second. +! This version works on encapsulated vectors, and uses their methods to do GTH and SCT, +! so that special versions (i.e. GPU vectors can override them ! ! Arguments: ! flag - integer Choose the algorithm for data exchange: @@ -69,10 +74,10 @@ ! ! ! n - integer Number of columns in Y -! beta - X Choose overwrite or sum. -! y(:,:) - X The data area +! beta - complex Choose overwrite or sum. +! y - type(psb_@x@_vect_type) The data area ! desc_a - type(psb_desc_type). The communication descriptor. -! work(:) - X Buffer space. If not sufficient, will do +! work(:) - complex Buffer space. If not sufficient, will do ! our own internal allocation. ! info - integer. return code. ! data - integer which list is to be used to exchange data @@ -83,14 +88,6 @@ ! psb_comm_mov_ use ovr_mst_idx ! ! -! -! -! Subroutine: psi_cswapdata_vect -! Data exchange among processes. -! -! Takes care of Y an exanspulated vector. -! -! ! subroutine psi_cswapdata_vect(flag,beta,y,desc_a,work,info,data) @@ -263,7 +260,7 @@ subroutine psi_cswap_vidx_vect(iictxt,iicomm,flag,beta,y,idx, & nesd = idx%v(pnti+nerv+psb_n_elem_send_) rcv_pt = 1+pnti+psb_n_elem_recv_ - prcid(i) = psb_get_rank(ictxt,proc_to_comm) + prcid(i) = psb_get_mpi_rank(ictxt,proc_to_comm) if ((nerv>0).and.(proc_to_comm /= me)) then if (debug) write(*,*) me,'Posting receive from',prcid(i),rcv_pt p2ptag = psb_complex_swap_tag @@ -426,7 +423,7 @@ end subroutine psi_cswap_vidx_vect ! Subroutine: psi_cswapdata_multivect ! Data exchange among processes. ! -! Takes care of Y an encaspulated vector. +! Takes care of Y an encaspulated multivector. ! ! subroutine psi_cswapdata_multivect(flag,beta,y,desc_a,work,info,data) @@ -602,7 +599,7 @@ subroutine psi_cswap_vidx_multivect(iictxt,iicomm,flag,beta,y,idx, & proc_to_comm = idx%v(pnti+psb_proc_id_) nerv = idx%v(pnti+psb_n_elem_recv_) nesd = idx%v(pnti+nerv+psb_n_elem_send_) - prcid(i) = psb_get_rank(ictxt,proc_to_comm) + prcid(i) = psb_get_mpi_rank(ictxt,proc_to_comm) if ((nerv>0).and.(proc_to_comm /= me)) then if (debug) write(*,*) me,'Posting receive from',prcid(i),rcv_pt p2ptag = psb_complex_swap_tag diff --git a/base/comm/internals/psi_cswapdata_a.F90 b/base/comm/internals/psi_cswapdata_a.F90 index ebf5b2f2..2a113b17 100644 --- a/base/comm/internals/psi_cswapdata_a.F90 +++ b/base/comm/internals/psi_cswapdata_a.F90 @@ -33,9 +33,9 @@ ! File: psi_cswapdata.F90 ! ! Subroutine: psi_cswapdatam -! Does the data exchange among processes. Essentially this is doing +! Implements the data exchange among processes. Essentially this is doing ! a variable all-to-all data exchange (ALLTOALLV in MPI parlance), but -! it is capable of pruning empty exchanges, which are very likely in out +! it is capable of pruning empty exchanges, which are very likely in our ! application environment. All the variants have the same structure ! In all these subroutines X may be: I Integer ! S real(psb_spk_) @@ -49,6 +49,7 @@ ! Thus: for halo data exchange, the receive section is confined in the ! halo indices, and BETA=0, whereas for overlap exchange the receive section ! is scattered in the owned indices, and BETA=1. +! The first routine picks the desired exchange index list and passes it to the second. ! ! Arguments: ! flag - integer Choose the algorithm for data exchange: @@ -69,10 +70,10 @@ ! ! ! n - integer Number of columns in Y -! beta - X Choose overwrite or sum. -! y(:,:) - X The data area +! beta - complex Choose overwrite or sum. +! y(:,:) - complex The data area ! desc_a - type(psb_desc_type). The communication descriptor. -! work(:) - X Buffer space. If not sufficient, will do +! work(:) - complex Buffer space. If not sufficient, will do ! our own internal allocation. ! info - integer. return code. ! data - integer which list is to be used to exchange data @@ -236,7 +237,7 @@ subroutine psi_cswapidxm(iictxt,iicomm,flag,n,beta,y,idx, & proc_to_comm = idx(pnti+psb_proc_id_) nerv = idx(pnti+psb_n_elem_recv_) nesd = idx(pnti+nerv+psb_n_elem_send_) - prcid(proc_to_comm) = psb_get_rank(ictxt,proc_to_comm) + prcid(proc_to_comm) = psb_get_mpi_rank(ictxt,proc_to_comm) brvidx(proc_to_comm) = rcv_pt rvsz(proc_to_comm) = n*nerv @@ -349,7 +350,7 @@ subroutine psi_cswapidxm(iictxt,iicomm,flag,n,beta,y,idx, & proc_to_comm = idx(pnti+psb_proc_id_) nerv = idx(pnti+psb_n_elem_recv_) nesd = idx(pnti+nerv+psb_n_elem_send_) - prcid(i) = psb_get_rank(ictxt,proc_to_comm) + prcid(i) = psb_get_mpi_rank(ictxt,proc_to_comm) if ((nerv>0).and.(proc_to_comm /= me)) then p2ptag = psb_complex_swap_tag call mpi_irecv(rcvbuf(rcv_pt),n*nerv,& @@ -507,7 +508,7 @@ end subroutine psi_cswapidxm ! ! ! Subroutine: psi_cswapdatav -! Does the data exchange among processes. Essentially this is doing +! Implements the data exchange among processes. Essentially this is doing ! a variable all-to-all data exchange (ALLTOALLV in MPI parlance), but ! it is capable of pruning empty exchanges, which are very likely in out ! application environment. All the variants have the same structure @@ -523,6 +524,7 @@ end subroutine psi_cswapidxm ! Thus: for halo data exchange, the receive section is confined in the ! halo indices, and BETA=0, whereas for overlap exchange the receive section ! is scattered in the owned indices, and BETA=1. +! The first routine picks the desired exchange index list and passes it to the second. ! ! Arguments: ! flag - integer Choose the algorithm for data exchange: @@ -543,10 +545,10 @@ end subroutine psi_cswapidxm ! ! ! n - integer Number of columns in Y -! beta - X Choose overwrite or sum. -! y(:) - X The data area +! beta - complex Choose overwrite or sum. +! y(:) - complex The data area ! desc_a - type(psb_desc_type). The communication descriptor. -! work(:) - X Buffer space. If not sufficient, will do +! work(:) - complex Buffer space. If not sufficient, will do ! our own internal allocation. ! info - integer. return code. ! data - integer which list is to be used to exchange data @@ -721,7 +723,7 @@ subroutine psi_cswapidxv(iictxt,iicomm,flag,beta,y,idx, & proc_to_comm = idx(pnti+psb_proc_id_) nerv = idx(pnti+psb_n_elem_recv_) nesd = idx(pnti+nerv+psb_n_elem_send_) - prcid(proc_to_comm) = psb_get_rank(ictxt,proc_to_comm) + prcid(proc_to_comm) = psb_get_mpi_rank(ictxt,proc_to_comm) brvidx(proc_to_comm) = rcv_pt rvsz(proc_to_comm) = nerv @@ -835,7 +837,7 @@ subroutine psi_cswapidxv(iictxt,iicomm,flag,beta,y,idx, & nerv = idx(pnti+psb_n_elem_recv_) nesd = idx(pnti+nerv+psb_n_elem_send_) - prcid(i) = psb_get_rank(ictxt,proc_to_comm) + prcid(i) = psb_get_mpi_rank(ictxt,proc_to_comm) if ((nerv>0).and.(proc_to_comm /= me)) then p2ptag = psb_complex_swap_tag call mpi_irecv(rcvbuf(rcv_pt),nerv,& diff --git a/base/comm/internals/psi_cswaptran.F90 b/base/comm/internals/psi_cswaptran.F90 index 93910dd8..152cb045 100644 --- a/base/comm/internals/psi_cswaptran.F90 +++ b/base/comm/internals/psi_cswaptran.F90 @@ -32,8 +32,8 @@ ! ! File: psi_cswaptran.F90 ! -! Subroutine: psi_cswaptranm -! Does the data exchange among processes. This is similar to Xswapdata, but +! Subroutine: psi_cswaptran_vect +! Implements the data exchange among processes. This is similar to Xswapdata, but ! the list is read "in reverse", i.e. indices that are normally SENT are used ! for the RECEIVE part and vice-versa. This is the basic data exchange operation ! for doing the product of a sparse matrix by a vector. @@ -47,12 +47,16 @@ ! C complex(psb_spk_) ! Z complex(psb_dpk_) ! Basically the operation is as follows: on each process, we identify -! sections SND(Y) and RCV(Y); then we do a SEND(PACK(SND(Y))); -! then we receive, and we do an update with Y = UNPACK(RCV(Y)) + BETA * Y -! but only on the elements involved in the UNPACK operation. +! sections SND(Y) and RCV(Y); then we do a SEND(PACK(GTH(SND(Y)))); +! then we receive, and we do an update with Y = SCT(RCV(Y)) + BETA * Y +! but only on the elements involved in the SCT operation. ! Thus: for halo data exchange, the receive section is confined in the ! halo indices, and BETA=0, whereas for overlap exchange the receive section ! is scattered in the owned indices, and BETA=1. +! The first routine picks the desired exchange index list and passes it to the second. +! This version works on encapsulated vectors, and uses their methods to do GTH and SCT, +! so that special versions (i.e. GPU vectors can override them +! ! ! Arguments: ! flag - integer Choose the algorithm for data exchange: @@ -73,10 +77,10 @@ ! ! ! n - integer Number of columns in Y -! beta - X Choose overwrite or sum. -! y(:,:) - X The data area -! desc_a - type(psb_desc_type). The communication descriptor. -! work(:) - X Buffer space. If not sufficient, will do +! beta - complex Choose overwrite or sum. +! y - type(psb_c_vect_type) The data area +! desc_a - type(psb_desc_type). The communication descriptor. +! work(:) - complex Buffer space. If not sufficient, will do ! our own internal allocation. ! info - integer. return code. ! data - integer which list is to be used to exchange data @@ -86,13 +90,6 @@ ! psb_comm_ovrl_ use ovrl_index ! psb_comm_mov_ use ovr_mst_idx ! -! -! -! Subroutine: psi_cswaptran_vect -! Data exchange among processes. -! -! Takes care of Y an exanspulated vector. -! ! subroutine psi_cswaptran_vect(flag,beta,y,desc_a,work,info,data) @@ -171,7 +168,7 @@ end subroutine psi_cswaptran_vect ! Subroutine: psi_ctran_vidx_vect ! Data exchange among processes. ! -! Takes care of Y an exanspulated vector. Relies on the gather/scatter methods +! Takes care of Y an encapsulated vector. Relies on the gather/scatter methods ! of vectors. ! ! The real workhorse: the outer routine will only choose the index list @@ -269,7 +266,7 @@ subroutine psi_ctran_vidx_vect(iictxt,iicomm,flag,beta,y,idx,& snd_pt = 1+pnti+nerv+psb_n_elem_send_ rcv_pt = 1+pnti+psb_n_elem_recv_ - prcid(i) = psb_get_rank(ictxt,proc_to_comm) + prcid(i) = psb_get_mpi_rank(ictxt,proc_to_comm) if ((nesd>0).and.(proc_to_comm /= me)) then if (debug) write(*,*) me,'Posting receive from',prcid(i),rcv_pt call mpi_irecv(y%combuf(snd_pt),nesd,& @@ -436,10 +433,10 @@ end subroutine psi_ctran_vidx_vect ! ! ! -! Subroutine: psi_cswaptran_vect +! Subroutine: psi_cswaptran_multivect ! Data exchange among processes. ! -! Takes care of Y an encaspulated vector. +! Takes care of Y an encaspulated multivector. ! ! subroutine psi_cswaptran_multivect(flag,beta,y,desc_a,work,info,data) @@ -616,7 +613,7 @@ subroutine psi_ctran_vidx_multivect(iictxt,iicomm,flag,beta,y,idx,& proc_to_comm = idx%v(pnti+psb_proc_id_) nerv = idx%v(pnti+psb_n_elem_recv_) nesd = idx%v(pnti+nerv+psb_n_elem_send_) - prcid(i) = psb_get_rank(ictxt,proc_to_comm) + prcid(i) = psb_get_mpi_rank(ictxt,proc_to_comm) if ((nesd>0).and.(proc_to_comm /= me)) then if (debug) write(*,*) me,'Posting receive from',prcid(i),snd_pt call mpi_irecv(y%combuf(snd_pt),n*nesd,& diff --git a/base/comm/internals/psi_cswaptran_a.F90 b/base/comm/internals/psi_cswaptran_a.F90 index 63f98df4..ed061be6 100644 --- a/base/comm/internals/psi_cswaptran_a.F90 +++ b/base/comm/internals/psi_cswaptran_a.F90 @@ -33,7 +33,7 @@ ! File: psi_cswaptran.F90 ! ! Subroutine: psi_cswaptranm -! Does the data exchange among processes. This is similar to Xswapdata, but +! Implements the data exchange among processes. This is similar to Xswapdata, but ! the list is read "in reverse", i.e. indices that are normally SENT are used ! for the RECEIVE part and vice-versa. This is the basic data exchange operation ! for doing the product of a sparse matrix by a vector. @@ -53,6 +53,7 @@ ! Thus: for halo data exchange, the receive section is confined in the ! halo indices, and BETA=0, whereas for overlap exchange the receive section ! is scattered in the owned indices, and BETA=1. +! The first routine picks the desired exchange index list and passes it to the second. ! ! Arguments: ! flag - integer Choose the algorithm for data exchange: @@ -73,10 +74,10 @@ ! ! ! n - integer Number of columns in Y -! beta - X Choose overwrite or sum. -! y(:,:) - X The data area +! beta - complex Choose overwrite or sum. +! y(:,:) - complex The data area ! desc_a - type(psb_desc_type). The communication descriptor. -! work(:) - X Buffer space. If not sufficient, will do +! work(:) - complex Buffer space. If not sufficient, will do ! our own internal allocation. ! info - integer. return code. ! data - integer which list is to be used to exchange data @@ -241,7 +242,7 @@ subroutine psi_ctranidxm(iictxt,iicomm,flag,n,beta,y,idx,& proc_to_comm = idx(pnti+psb_proc_id_) nerv = idx(pnti+psb_n_elem_recv_) nesd = idx(pnti+nerv+psb_n_elem_send_) - prcid(proc_to_comm) = psb_get_rank(ictxt,proc_to_comm) + prcid(proc_to_comm) = psb_get_mpi_rank(ictxt,proc_to_comm) brvidx(proc_to_comm) = rcv_pt rvsz(proc_to_comm) = n*nerv @@ -359,7 +360,7 @@ subroutine psi_ctranidxm(iictxt,iicomm,flag,n,beta,y,idx,& proc_to_comm = idx(pnti+psb_proc_id_) nerv = idx(pnti+psb_n_elem_recv_) nesd = idx(pnti+nerv+psb_n_elem_send_) - prcid(i) = psb_get_rank(ictxt,proc_to_comm) + prcid(i) = psb_get_mpi_rank(ictxt,proc_to_comm) if ((nesd>0).and.(proc_to_comm /= me)) then p2ptag = psb_complex_swap_tag call mpi_irecv(sndbuf(snd_pt),n*nesd,& @@ -516,7 +517,7 @@ end subroutine psi_ctranidxm ! ! ! Subroutine: psi_cswaptranv -! Does the data exchange among processes. This is similar to Xswapdata, but +! Implements the data exchange among processes. This is similar to Xswapdata, but ! the list is read "in reverse", i.e. indices that are normally SENT are used ! for the RECEIVE part and vice-versa. This is the basic data exchange operation ! for doing the product of a sparse matrix by a vector. @@ -536,6 +537,7 @@ end subroutine psi_ctranidxm ! Thus: for halo data exchange, the receive section is confined in the ! halo indices, and BETA=0, whereas for overlap exchange the receive section ! is scattered in the owned indices, and BETA=1. +! The first routine picks the desired exchange index list and passes it to the second. ! ! Arguments: ! flag - integer Choose the algorithm for data exchange: @@ -556,10 +558,10 @@ end subroutine psi_ctranidxm ! ! ! n - integer Number of columns in Y -! beta - X Choose overwrite or sum. -! y(:) - X The data area +! beta - complex Choose overwrite or sum. +! y(:) - complex The data area ! desc_a - type(psb_desc_type). The communication descriptor. -! work(:) - X Buffer space. If not sufficient, will do +! work(:) - complex Buffer space. If not sufficient, will do ! our own internal allocation. ! info - integer. return code. ! data - integer which list is to be used to exchange data @@ -734,7 +736,7 @@ subroutine psi_ctranidxv(iictxt,iicomm,flag,beta,y,idx,& proc_to_comm = idx(pnti+psb_proc_id_) nerv = idx(pnti+psb_n_elem_recv_) nesd = idx(pnti+nerv+psb_n_elem_send_) - prcid(proc_to_comm) = psb_get_rank(ictxt,proc_to_comm) + prcid(proc_to_comm) = psb_get_mpi_rank(ictxt,proc_to_comm) brvidx(proc_to_comm) = rcv_pt rvsz(proc_to_comm) = nerv @@ -852,7 +854,7 @@ subroutine psi_ctranidxv(iictxt,iicomm,flag,beta,y,idx,& proc_to_comm = idx(pnti+psb_proc_id_) nerv = idx(pnti+psb_n_elem_recv_) nesd = idx(pnti+nerv+psb_n_elem_send_) - prcid(i) = psb_get_rank(ictxt,proc_to_comm) + prcid(i) = psb_get_mpi_rank(ictxt,proc_to_comm) if ((nesd>0).and.(proc_to_comm /= me)) then p2ptag = psb_complex_swap_tag call mpi_irecv(sndbuf(snd_pt),nesd,& diff --git a/base/comm/internals/psi_dovrl_restr.f90 b/base/comm/internals/psi_dovrl_restr.f90 index 326f32df..1d6695cc 100644 --- a/base/comm/internals/psi_dovrl_restr.f90 +++ b/base/comm/internals/psi_dovrl_restr.f90 @@ -28,8 +28,13 @@ ! ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE ! POSSIBILITY OF SUCH DAMAGE. ! +! +! Subroutine: psi_dovrl_restr +! These subroutines restore the overlap region of a vector; they are used +! for the transpose matrix-vector product when there is a nonempty overlap. +! +! ! - subroutine psi_dovrl_restr_vect(x,xs,desc_a,info) use psi_mod, psi_protect_name => psi_dovrl_restr_vect use psb_d_base_vect_mod diff --git a/base/comm/internals/psi_dovrl_restr_a.f90 b/base/comm/internals/psi_dovrl_restr_a.f90 index 2d83c416..df47403b 100644 --- a/base/comm/internals/psi_dovrl_restr_a.f90 +++ b/base/comm/internals/psi_dovrl_restr_a.f90 @@ -28,6 +28,11 @@ ! ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE ! POSSIBILITY OF SUCH DAMAGE. ! +! +! Subroutine: psi_dovrl_restr +! These subroutines restore the overlap region of a vector; they are used +! for the transpose matrix-vector product when there is a nonempty overlap. +! ! subroutine psi_dovrl_restrr1(x,xs,desc_a,info) use psi_mod, psi_protect_name => psi_dovrl_restrr1 diff --git a/base/comm/internals/psi_dovrl_save.f90 b/base/comm/internals/psi_dovrl_save.f90 index 3f8a923b..0689ee1b 100644 --- a/base/comm/internals/psi_dovrl_save.f90 +++ b/base/comm/internals/psi_dovrl_save.f90 @@ -28,6 +28,11 @@ ! ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE ! POSSIBILITY OF SUCH DAMAGE. ! +! +! Subroutine: psi_dovrl_save +! These subroutines save the overlap region of a vector; they are used +! for the transpose matrix-vector product when there is a nonempty overlap. +! ! subroutine psi_dovrl_save_vect(x,xs,desc_a,info) use psi_mod, psi_protect_name => psi_dovrl_save_vect diff --git a/base/comm/internals/psi_dovrl_save_a.f90 b/base/comm/internals/psi_dovrl_save_a.f90 index 6bf57d87..fcc19e08 100644 --- a/base/comm/internals/psi_dovrl_save_a.f90 +++ b/base/comm/internals/psi_dovrl_save_a.f90 @@ -28,8 +28,12 @@ ! ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE ! POSSIBILITY OF SUCH DAMAGE. ! -! - +! +! +! Subroutine: psi_dovrl_save +! These subroutines save the overlap region of a vector; they are used +! for the transpose matrix-vector product when there is a nonempty overlap. +! subroutine psi_dovrl_saver1(x,xs,desc_a,info) use psi_mod, psi_protect_name => psi_dovrl_saver1 diff --git a/base/comm/internals/psi_dovrl_upd.f90 b/base/comm/internals/psi_dovrl_upd.f90 index 867281ff..efbb2495 100644 --- a/base/comm/internals/psi_dovrl_upd.f90 +++ b/base/comm/internals/psi_dovrl_upd.f90 @@ -28,8 +28,14 @@ ! ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE ! POSSIBILITY OF SUCH DAMAGE. ! +! +! Subroutine: psi_dovrl_update +! These subroutines update the overlap region of a vector; they are used +! for the transpose matrix-vector product when there is a nonempty overlap, +! or for the application of Additive Schwarz preconditioners. +! +! ! - subroutine psi_dovrl_upd_vect(x,desc_a,update,info) use psi_mod, psi_protect_name => psi_dovrl_upd_vect use psb_realloc_mod diff --git a/base/comm/internals/psi_dovrl_upd_a.f90 b/base/comm/internals/psi_dovrl_upd_a.f90 index ccdfba89..8ad3db6b 100644 --- a/base/comm/internals/psi_dovrl_upd_a.f90 +++ b/base/comm/internals/psi_dovrl_upd_a.f90 @@ -28,6 +28,12 @@ ! ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE ! POSSIBILITY OF SUCH DAMAGE. ! +! +! Subroutine: psi_dovrl_update +! These subroutines update the overlap region of a vector; they are used +! for the transpose matrix-vector product when there is a nonempty overlap, +! or for the application of Additive Schwarz preconditioners. +! ! subroutine psi_dovrl_updr1(x,desc_a,update,info) use psi_mod, psi_protect_name => psi_dovrl_updr1 diff --git a/base/comm/internals/psi_dswapdata.F90 b/base/comm/internals/psi_dswapdata.F90 index 929db361..a59b9b79 100644 --- a/base/comm/internals/psi_dswapdata.F90 +++ b/base/comm/internals/psi_dswapdata.F90 @@ -32,8 +32,10 @@ ! ! File: psi_dswapdata.F90 ! -! Subroutine: psi_dswapdatam -! Does the data exchange among processes. Essentially this is doing +! +! +! Subroutine: psi_dswapdata_vect +! Implements the data exchange among processes. Essentially this is doing ! a variable all-to-all data exchange (ALLTOALLV in MPI parlance), but ! it is capable of pruning empty exchanges, which are very likely in out ! application environment. All the variants have the same structure @@ -43,12 +45,15 @@ ! C complex(psb_spk_) ! Z complex(psb_dpk_) ! Basically the operation is as follows: on each process, we identify -! sections SND(Y) and RCV(Y); then we do a send on (PACK(SND(Y))); -! then we receive, and we do an update with Y = UNPACK(RCV(Y)) + BETA * Y -! but only on the elements involved in the UNPACK operation. +! sections SND(Y) and RCV(Y); then we do a SEND(PACK(GTH(SND(Y)))); +! then we receive, and we do an update with Y = SCT(RCV(Y)) + BETA * Y +! but only on the elements involved in the SCT operation. ! Thus: for halo data exchange, the receive section is confined in the ! halo indices, and BETA=0, whereas for overlap exchange the receive section ! is scattered in the owned indices, and BETA=1. +! The first routine picks the desired exchange index list and passes it to the second. +! This version works on encapsulated vectors, and uses their methods to do GTH and SCT, +! so that special versions (i.e. GPU vectors can override them ! ! Arguments: ! flag - integer Choose the algorithm for data exchange: @@ -69,10 +74,10 @@ ! ! ! n - integer Number of columns in Y -! beta - X Choose overwrite or sum. -! y(:,:) - X The data area +! beta - real Choose overwrite or sum. +! y - type(psb_@x@_vect_type) The data area ! desc_a - type(psb_desc_type). The communication descriptor. -! work(:) - X Buffer space. If not sufficient, will do +! work(:) - real Buffer space. If not sufficient, will do ! our own internal allocation. ! info - integer. return code. ! data - integer which list is to be used to exchange data @@ -83,14 +88,6 @@ ! psb_comm_mov_ use ovr_mst_idx ! ! -! -! -! Subroutine: psi_dswapdata_vect -! Data exchange among processes. -! -! Takes care of Y an exanspulated vector. -! -! ! subroutine psi_dswapdata_vect(flag,beta,y,desc_a,work,info,data) @@ -263,7 +260,7 @@ subroutine psi_dswap_vidx_vect(iictxt,iicomm,flag,beta,y,idx, & nesd = idx%v(pnti+nerv+psb_n_elem_send_) rcv_pt = 1+pnti+psb_n_elem_recv_ - prcid(i) = psb_get_rank(ictxt,proc_to_comm) + prcid(i) = psb_get_mpi_rank(ictxt,proc_to_comm) if ((nerv>0).and.(proc_to_comm /= me)) then if (debug) write(*,*) me,'Posting receive from',prcid(i),rcv_pt p2ptag = psb_double_swap_tag @@ -426,7 +423,7 @@ end subroutine psi_dswap_vidx_vect ! Subroutine: psi_dswapdata_multivect ! Data exchange among processes. ! -! Takes care of Y an encaspulated vector. +! Takes care of Y an encaspulated multivector. ! ! subroutine psi_dswapdata_multivect(flag,beta,y,desc_a,work,info,data) @@ -602,7 +599,7 @@ subroutine psi_dswap_vidx_multivect(iictxt,iicomm,flag,beta,y,idx, & proc_to_comm = idx%v(pnti+psb_proc_id_) nerv = idx%v(pnti+psb_n_elem_recv_) nesd = idx%v(pnti+nerv+psb_n_elem_send_) - prcid(i) = psb_get_rank(ictxt,proc_to_comm) + prcid(i) = psb_get_mpi_rank(ictxt,proc_to_comm) if ((nerv>0).and.(proc_to_comm /= me)) then if (debug) write(*,*) me,'Posting receive from',prcid(i),rcv_pt p2ptag = psb_double_swap_tag diff --git a/base/comm/internals/psi_dswapdata_a.F90 b/base/comm/internals/psi_dswapdata_a.F90 index c6c52fbc..b9d0aaae 100644 --- a/base/comm/internals/psi_dswapdata_a.F90 +++ b/base/comm/internals/psi_dswapdata_a.F90 @@ -33,9 +33,9 @@ ! File: psi_dswapdata.F90 ! ! Subroutine: psi_dswapdatam -! Does the data exchange among processes. Essentially this is doing +! Implements the data exchange among processes. Essentially this is doing ! a variable all-to-all data exchange (ALLTOALLV in MPI parlance), but -! it is capable of pruning empty exchanges, which are very likely in out +! it is capable of pruning empty exchanges, which are very likely in our ! application environment. All the variants have the same structure ! In all these subroutines X may be: I Integer ! S real(psb_spk_) @@ -49,6 +49,7 @@ ! Thus: for halo data exchange, the receive section is confined in the ! halo indices, and BETA=0, whereas for overlap exchange the receive section ! is scattered in the owned indices, and BETA=1. +! The first routine picks the desired exchange index list and passes it to the second. ! ! Arguments: ! flag - integer Choose the algorithm for data exchange: @@ -69,10 +70,10 @@ ! ! ! n - integer Number of columns in Y -! beta - X Choose overwrite or sum. -! y(:,:) - X The data area +! beta - real Choose overwrite or sum. +! y(:,:) - real The data area ! desc_a - type(psb_desc_type). The communication descriptor. -! work(:) - X Buffer space. If not sufficient, will do +! work(:) - real Buffer space. If not sufficient, will do ! our own internal allocation. ! info - integer. return code. ! data - integer which list is to be used to exchange data @@ -236,7 +237,7 @@ subroutine psi_dswapidxm(iictxt,iicomm,flag,n,beta,y,idx, & proc_to_comm = idx(pnti+psb_proc_id_) nerv = idx(pnti+psb_n_elem_recv_) nesd = idx(pnti+nerv+psb_n_elem_send_) - prcid(proc_to_comm) = psb_get_rank(ictxt,proc_to_comm) + prcid(proc_to_comm) = psb_get_mpi_rank(ictxt,proc_to_comm) brvidx(proc_to_comm) = rcv_pt rvsz(proc_to_comm) = n*nerv @@ -349,7 +350,7 @@ subroutine psi_dswapidxm(iictxt,iicomm,flag,n,beta,y,idx, & proc_to_comm = idx(pnti+psb_proc_id_) nerv = idx(pnti+psb_n_elem_recv_) nesd = idx(pnti+nerv+psb_n_elem_send_) - prcid(i) = psb_get_rank(ictxt,proc_to_comm) + prcid(i) = psb_get_mpi_rank(ictxt,proc_to_comm) if ((nerv>0).and.(proc_to_comm /= me)) then p2ptag = psb_double_swap_tag call mpi_irecv(rcvbuf(rcv_pt),n*nerv,& @@ -507,7 +508,7 @@ end subroutine psi_dswapidxm ! ! ! Subroutine: psi_dswapdatav -! Does the data exchange among processes. Essentially this is doing +! Implements the data exchange among processes. Essentially this is doing ! a variable all-to-all data exchange (ALLTOALLV in MPI parlance), but ! it is capable of pruning empty exchanges, which are very likely in out ! application environment. All the variants have the same structure @@ -523,6 +524,7 @@ end subroutine psi_dswapidxm ! Thus: for halo data exchange, the receive section is confined in the ! halo indices, and BETA=0, whereas for overlap exchange the receive section ! is scattered in the owned indices, and BETA=1. +! The first routine picks the desired exchange index list and passes it to the second. ! ! Arguments: ! flag - integer Choose the algorithm for data exchange: @@ -543,10 +545,10 @@ end subroutine psi_dswapidxm ! ! ! n - integer Number of columns in Y -! beta - X Choose overwrite or sum. -! y(:) - X The data area +! beta - real Choose overwrite or sum. +! y(:) - real The data area ! desc_a - type(psb_desc_type). The communication descriptor. -! work(:) - X Buffer space. If not sufficient, will do +! work(:) - real Buffer space. If not sufficient, will do ! our own internal allocation. ! info - integer. return code. ! data - integer which list is to be used to exchange data @@ -721,7 +723,7 @@ subroutine psi_dswapidxv(iictxt,iicomm,flag,beta,y,idx, & proc_to_comm = idx(pnti+psb_proc_id_) nerv = idx(pnti+psb_n_elem_recv_) nesd = idx(pnti+nerv+psb_n_elem_send_) - prcid(proc_to_comm) = psb_get_rank(ictxt,proc_to_comm) + prcid(proc_to_comm) = psb_get_mpi_rank(ictxt,proc_to_comm) brvidx(proc_to_comm) = rcv_pt rvsz(proc_to_comm) = nerv @@ -835,7 +837,7 @@ subroutine psi_dswapidxv(iictxt,iicomm,flag,beta,y,idx, & nerv = idx(pnti+psb_n_elem_recv_) nesd = idx(pnti+nerv+psb_n_elem_send_) - prcid(i) = psb_get_rank(ictxt,proc_to_comm) + prcid(i) = psb_get_mpi_rank(ictxt,proc_to_comm) if ((nerv>0).and.(proc_to_comm /= me)) then p2ptag = psb_double_swap_tag call mpi_irecv(rcvbuf(rcv_pt),nerv,& diff --git a/base/comm/internals/psi_dswaptran.F90 b/base/comm/internals/psi_dswaptran.F90 index 1ac09bfb..1feee33c 100644 --- a/base/comm/internals/psi_dswaptran.F90 +++ b/base/comm/internals/psi_dswaptran.F90 @@ -32,8 +32,8 @@ ! ! File: psi_dswaptran.F90 ! -! Subroutine: psi_dswaptranm -! Does the data exchange among processes. This is similar to Xswapdata, but +! Subroutine: psi_dswaptran_vect +! Implements the data exchange among processes. This is similar to Xswapdata, but ! the list is read "in reverse", i.e. indices that are normally SENT are used ! for the RECEIVE part and vice-versa. This is the basic data exchange operation ! for doing the product of a sparse matrix by a vector. @@ -47,12 +47,16 @@ ! C complex(psb_spk_) ! Z complex(psb_dpk_) ! Basically the operation is as follows: on each process, we identify -! sections SND(Y) and RCV(Y); then we do a SEND(PACK(SND(Y))); -! then we receive, and we do an update with Y = UNPACK(RCV(Y)) + BETA * Y -! but only on the elements involved in the UNPACK operation. +! sections SND(Y) and RCV(Y); then we do a SEND(PACK(GTH(SND(Y)))); +! then we receive, and we do an update with Y = SCT(RCV(Y)) + BETA * Y +! but only on the elements involved in the SCT operation. ! Thus: for halo data exchange, the receive section is confined in the ! halo indices, and BETA=0, whereas for overlap exchange the receive section ! is scattered in the owned indices, and BETA=1. +! The first routine picks the desired exchange index list and passes it to the second. +! This version works on encapsulated vectors, and uses their methods to do GTH and SCT, +! so that special versions (i.e. GPU vectors can override them +! ! ! Arguments: ! flag - integer Choose the algorithm for data exchange: @@ -73,10 +77,10 @@ ! ! ! n - integer Number of columns in Y -! beta - X Choose overwrite or sum. -! y(:,:) - X The data area -! desc_a - type(psb_desc_type). The communication descriptor. -! work(:) - X Buffer space. If not sufficient, will do +! beta - real Choose overwrite or sum. +! y - type(psb_d_vect_type) The data area +! desc_a - type(psb_desc_type). The communication descriptor. +! work(:) - real Buffer space. If not sufficient, will do ! our own internal allocation. ! info - integer. return code. ! data - integer which list is to be used to exchange data @@ -86,13 +90,6 @@ ! psb_comm_ovrl_ use ovrl_index ! psb_comm_mov_ use ovr_mst_idx ! -! -! -! Subroutine: psi_dswaptran_vect -! Data exchange among processes. -! -! Takes care of Y an exanspulated vector. -! ! subroutine psi_dswaptran_vect(flag,beta,y,desc_a,work,info,data) @@ -171,7 +168,7 @@ end subroutine psi_dswaptran_vect ! Subroutine: psi_dtran_vidx_vect ! Data exchange among processes. ! -! Takes care of Y an exanspulated vector. Relies on the gather/scatter methods +! Takes care of Y an encapsulated vector. Relies on the gather/scatter methods ! of vectors. ! ! The real workhorse: the outer routine will only choose the index list @@ -269,7 +266,7 @@ subroutine psi_dtran_vidx_vect(iictxt,iicomm,flag,beta,y,idx,& snd_pt = 1+pnti+nerv+psb_n_elem_send_ rcv_pt = 1+pnti+psb_n_elem_recv_ - prcid(i) = psb_get_rank(ictxt,proc_to_comm) + prcid(i) = psb_get_mpi_rank(ictxt,proc_to_comm) if ((nesd>0).and.(proc_to_comm /= me)) then if (debug) write(*,*) me,'Posting receive from',prcid(i),rcv_pt call mpi_irecv(y%combuf(snd_pt),nesd,& @@ -436,10 +433,10 @@ end subroutine psi_dtran_vidx_vect ! ! ! -! Subroutine: psi_dswaptran_vect +! Subroutine: psi_dswaptran_multivect ! Data exchange among processes. ! -! Takes care of Y an encaspulated vector. +! Takes care of Y an encaspulated multivector. ! ! subroutine psi_dswaptran_multivect(flag,beta,y,desc_a,work,info,data) @@ -616,7 +613,7 @@ subroutine psi_dtran_vidx_multivect(iictxt,iicomm,flag,beta,y,idx,& proc_to_comm = idx%v(pnti+psb_proc_id_) nerv = idx%v(pnti+psb_n_elem_recv_) nesd = idx%v(pnti+nerv+psb_n_elem_send_) - prcid(i) = psb_get_rank(ictxt,proc_to_comm) + prcid(i) = psb_get_mpi_rank(ictxt,proc_to_comm) if ((nesd>0).and.(proc_to_comm /= me)) then if (debug) write(*,*) me,'Posting receive from',prcid(i),snd_pt call mpi_irecv(y%combuf(snd_pt),n*nesd,& diff --git a/base/comm/internals/psi_dswaptran_a.F90 b/base/comm/internals/psi_dswaptran_a.F90 index ffc4be1b..aad6348e 100644 --- a/base/comm/internals/psi_dswaptran_a.F90 +++ b/base/comm/internals/psi_dswaptran_a.F90 @@ -33,7 +33,7 @@ ! File: psi_dswaptran.F90 ! ! Subroutine: psi_dswaptranm -! Does the data exchange among processes. This is similar to Xswapdata, but +! Implements the data exchange among processes. This is similar to Xswapdata, but ! the list is read "in reverse", i.e. indices that are normally SENT are used ! for the RECEIVE part and vice-versa. This is the basic data exchange operation ! for doing the product of a sparse matrix by a vector. @@ -53,6 +53,7 @@ ! Thus: for halo data exchange, the receive section is confined in the ! halo indices, and BETA=0, whereas for overlap exchange the receive section ! is scattered in the owned indices, and BETA=1. +! The first routine picks the desired exchange index list and passes it to the second. ! ! Arguments: ! flag - integer Choose the algorithm for data exchange: @@ -73,10 +74,10 @@ ! ! ! n - integer Number of columns in Y -! beta - X Choose overwrite or sum. -! y(:,:) - X The data area +! beta - real Choose overwrite or sum. +! y(:,:) - real The data area ! desc_a - type(psb_desc_type). The communication descriptor. -! work(:) - X Buffer space. If not sufficient, will do +! work(:) - real Buffer space. If not sufficient, will do ! our own internal allocation. ! info - integer. return code. ! data - integer which list is to be used to exchange data @@ -241,7 +242,7 @@ subroutine psi_dtranidxm(iictxt,iicomm,flag,n,beta,y,idx,& proc_to_comm = idx(pnti+psb_proc_id_) nerv = idx(pnti+psb_n_elem_recv_) nesd = idx(pnti+nerv+psb_n_elem_send_) - prcid(proc_to_comm) = psb_get_rank(ictxt,proc_to_comm) + prcid(proc_to_comm) = psb_get_mpi_rank(ictxt,proc_to_comm) brvidx(proc_to_comm) = rcv_pt rvsz(proc_to_comm) = n*nerv @@ -359,7 +360,7 @@ subroutine psi_dtranidxm(iictxt,iicomm,flag,n,beta,y,idx,& proc_to_comm = idx(pnti+psb_proc_id_) nerv = idx(pnti+psb_n_elem_recv_) nesd = idx(pnti+nerv+psb_n_elem_send_) - prcid(i) = psb_get_rank(ictxt,proc_to_comm) + prcid(i) = psb_get_mpi_rank(ictxt,proc_to_comm) if ((nesd>0).and.(proc_to_comm /= me)) then p2ptag = psb_double_swap_tag call mpi_irecv(sndbuf(snd_pt),n*nesd,& @@ -516,7 +517,7 @@ end subroutine psi_dtranidxm ! ! ! Subroutine: psi_dswaptranv -! Does the data exchange among processes. This is similar to Xswapdata, but +! Implements the data exchange among processes. This is similar to Xswapdata, but ! the list is read "in reverse", i.e. indices that are normally SENT are used ! for the RECEIVE part and vice-versa. This is the basic data exchange operation ! for doing the product of a sparse matrix by a vector. @@ -536,6 +537,7 @@ end subroutine psi_dtranidxm ! Thus: for halo data exchange, the receive section is confined in the ! halo indices, and BETA=0, whereas for overlap exchange the receive section ! is scattered in the owned indices, and BETA=1. +! The first routine picks the desired exchange index list and passes it to the second. ! ! Arguments: ! flag - integer Choose the algorithm for data exchange: @@ -556,10 +558,10 @@ end subroutine psi_dtranidxm ! ! ! n - integer Number of columns in Y -! beta - X Choose overwrite or sum. -! y(:) - X The data area +! beta - real Choose overwrite or sum. +! y(:) - real The data area ! desc_a - type(psb_desc_type). The communication descriptor. -! work(:) - X Buffer space. If not sufficient, will do +! work(:) - real Buffer space. If not sufficient, will do ! our own internal allocation. ! info - integer. return code. ! data - integer which list is to be used to exchange data @@ -734,7 +736,7 @@ subroutine psi_dtranidxv(iictxt,iicomm,flag,beta,y,idx,& proc_to_comm = idx(pnti+psb_proc_id_) nerv = idx(pnti+psb_n_elem_recv_) nesd = idx(pnti+nerv+psb_n_elem_send_) - prcid(proc_to_comm) = psb_get_rank(ictxt,proc_to_comm) + prcid(proc_to_comm) = psb_get_mpi_rank(ictxt,proc_to_comm) brvidx(proc_to_comm) = rcv_pt rvsz(proc_to_comm) = nerv @@ -852,7 +854,7 @@ subroutine psi_dtranidxv(iictxt,iicomm,flag,beta,y,idx,& proc_to_comm = idx(pnti+psb_proc_id_) nerv = idx(pnti+psb_n_elem_recv_) nesd = idx(pnti+nerv+psb_n_elem_send_) - prcid(i) = psb_get_rank(ictxt,proc_to_comm) + prcid(i) = psb_get_mpi_rank(ictxt,proc_to_comm) if ((nesd>0).and.(proc_to_comm /= me)) then p2ptag = psb_double_swap_tag call mpi_irecv(sndbuf(snd_pt),nesd,& diff --git a/base/comm/internals/psi_eovrl_restr_a.f90 b/base/comm/internals/psi_eovrl_restr_a.f90 index fe981855..3dbb2ac4 100644 --- a/base/comm/internals/psi_eovrl_restr_a.f90 +++ b/base/comm/internals/psi_eovrl_restr_a.f90 @@ -28,6 +28,11 @@ ! ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE ! POSSIBILITY OF SUCH DAMAGE. ! +! +! Subroutine: psi_eovrl_restr +! These subroutines restore the overlap region of a vector; they are used +! for the transpose matrix-vector product when there is a nonempty overlap. +! ! subroutine psi_eovrl_restrr1(x,xs,desc_a,info) use psi_mod, psi_protect_name => psi_eovrl_restrr1 diff --git a/base/comm/internals/psi_eovrl_save_a.f90 b/base/comm/internals/psi_eovrl_save_a.f90 index de6878f0..4f0b7d30 100644 --- a/base/comm/internals/psi_eovrl_save_a.f90 +++ b/base/comm/internals/psi_eovrl_save_a.f90 @@ -28,8 +28,12 @@ ! ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE ! POSSIBILITY OF SUCH DAMAGE. ! -! - +! +! +! Subroutine: psi_eovrl_save +! These subroutines save the overlap region of a vector; they are used +! for the transpose matrix-vector product when there is a nonempty overlap. +! subroutine psi_eovrl_saver1(x,xs,desc_a,info) use psi_mod, psi_protect_name => psi_eovrl_saver1 diff --git a/base/comm/internals/psi_eovrl_upd_a.f90 b/base/comm/internals/psi_eovrl_upd_a.f90 index f8589e41..e8e40738 100644 --- a/base/comm/internals/psi_eovrl_upd_a.f90 +++ b/base/comm/internals/psi_eovrl_upd_a.f90 @@ -28,6 +28,12 @@ ! ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE ! POSSIBILITY OF SUCH DAMAGE. ! +! +! Subroutine: psi_eovrl_update +! These subroutines update the overlap region of a vector; they are used +! for the transpose matrix-vector product when there is a nonempty overlap, +! or for the application of Additive Schwarz preconditioners. +! ! subroutine psi_eovrl_updr1(x,desc_a,update,info) use psi_mod, psi_protect_name => psi_eovrl_updr1 diff --git a/base/comm/internals/psi_eswapdata_a.F90 b/base/comm/internals/psi_eswapdata_a.F90 index 0c0f7220..f7c67ac3 100644 --- a/base/comm/internals/psi_eswapdata_a.F90 +++ b/base/comm/internals/psi_eswapdata_a.F90 @@ -33,9 +33,9 @@ ! File: psi_eswapdata.F90 ! ! Subroutine: psi_eswapdatam -! Does the data exchange among processes. Essentially this is doing +! Implements the data exchange among processes. Essentially this is doing ! a variable all-to-all data exchange (ALLTOALLV in MPI parlance), but -! it is capable of pruning empty exchanges, which are very likely in out +! it is capable of pruning empty exchanges, which are very likely in our ! application environment. All the variants have the same structure ! In all these subroutines X may be: I Integer ! S real(psb_spk_) @@ -49,6 +49,7 @@ ! Thus: for halo data exchange, the receive section is confined in the ! halo indices, and BETA=0, whereas for overlap exchange the receive section ! is scattered in the owned indices, and BETA=1. +! The first routine picks the desired exchange index list and passes it to the second. ! ! Arguments: ! flag - integer Choose the algorithm for data exchange: @@ -69,10 +70,10 @@ ! ! ! n - integer Number of columns in Y -! beta - X Choose overwrite or sum. -! y(:,:) - X The data area +! beta - integer Choose overwrite or sum. +! y(:,:) - integer The data area ! desc_a - type(psb_desc_type). The communication descriptor. -! work(:) - X Buffer space. If not sufficient, will do +! work(:) - integer Buffer space. If not sufficient, will do ! our own internal allocation. ! info - integer. return code. ! data - integer which list is to be used to exchange data @@ -236,7 +237,7 @@ subroutine psi_eswapidxm(iictxt,iicomm,flag,n,beta,y,idx, & proc_to_comm = idx(pnti+psb_proc_id_) nerv = idx(pnti+psb_n_elem_recv_) nesd = idx(pnti+nerv+psb_n_elem_send_) - prcid(proc_to_comm) = psb_get_rank(ictxt,proc_to_comm) + prcid(proc_to_comm) = psb_get_mpi_rank(ictxt,proc_to_comm) brvidx(proc_to_comm) = rcv_pt rvsz(proc_to_comm) = n*nerv @@ -349,7 +350,7 @@ subroutine psi_eswapidxm(iictxt,iicomm,flag,n,beta,y,idx, & proc_to_comm = idx(pnti+psb_proc_id_) nerv = idx(pnti+psb_n_elem_recv_) nesd = idx(pnti+nerv+psb_n_elem_send_) - prcid(i) = psb_get_rank(ictxt,proc_to_comm) + prcid(i) = psb_get_mpi_rank(ictxt,proc_to_comm) if ((nerv>0).and.(proc_to_comm /= me)) then p2ptag = psb_int8_swap_tag call mpi_irecv(rcvbuf(rcv_pt),n*nerv,& @@ -507,7 +508,7 @@ end subroutine psi_eswapidxm ! ! ! Subroutine: psi_eswapdatav -! Does the data exchange among processes. Essentially this is doing +! Implements the data exchange among processes. Essentially this is doing ! a variable all-to-all data exchange (ALLTOALLV in MPI parlance), but ! it is capable of pruning empty exchanges, which are very likely in out ! application environment. All the variants have the same structure @@ -523,6 +524,7 @@ end subroutine psi_eswapidxm ! Thus: for halo data exchange, the receive section is confined in the ! halo indices, and BETA=0, whereas for overlap exchange the receive section ! is scattered in the owned indices, and BETA=1. +! The first routine picks the desired exchange index list and passes it to the second. ! ! Arguments: ! flag - integer Choose the algorithm for data exchange: @@ -543,10 +545,10 @@ end subroutine psi_eswapidxm ! ! ! n - integer Number of columns in Y -! beta - X Choose overwrite or sum. -! y(:) - X The data area +! beta - integer Choose overwrite or sum. +! y(:) - integer The data area ! desc_a - type(psb_desc_type). The communication descriptor. -! work(:) - X Buffer space. If not sufficient, will do +! work(:) - integer Buffer space. If not sufficient, will do ! our own internal allocation. ! info - integer. return code. ! data - integer which list is to be used to exchange data @@ -721,7 +723,7 @@ subroutine psi_eswapidxv(iictxt,iicomm,flag,beta,y,idx, & proc_to_comm = idx(pnti+psb_proc_id_) nerv = idx(pnti+psb_n_elem_recv_) nesd = idx(pnti+nerv+psb_n_elem_send_) - prcid(proc_to_comm) = psb_get_rank(ictxt,proc_to_comm) + prcid(proc_to_comm) = psb_get_mpi_rank(ictxt,proc_to_comm) brvidx(proc_to_comm) = rcv_pt rvsz(proc_to_comm) = nerv @@ -835,7 +837,7 @@ subroutine psi_eswapidxv(iictxt,iicomm,flag,beta,y,idx, & nerv = idx(pnti+psb_n_elem_recv_) nesd = idx(pnti+nerv+psb_n_elem_send_) - prcid(i) = psb_get_rank(ictxt,proc_to_comm) + prcid(i) = psb_get_mpi_rank(ictxt,proc_to_comm) if ((nerv>0).and.(proc_to_comm /= me)) then p2ptag = psb_int8_swap_tag call mpi_irecv(rcvbuf(rcv_pt),nerv,& diff --git a/base/comm/internals/psi_eswaptran_a.F90 b/base/comm/internals/psi_eswaptran_a.F90 index 2a78e47d..42954369 100644 --- a/base/comm/internals/psi_eswaptran_a.F90 +++ b/base/comm/internals/psi_eswaptran_a.F90 @@ -33,7 +33,7 @@ ! File: psi_eswaptran.F90 ! ! Subroutine: psi_eswaptranm -! Does the data exchange among processes. This is similar to Xswapdata, but +! Implements the data exchange among processes. This is similar to Xswapdata, but ! the list is read "in reverse", i.e. indices that are normally SENT are used ! for the RECEIVE part and vice-versa. This is the basic data exchange operation ! for doing the product of a sparse matrix by a vector. @@ -53,6 +53,7 @@ ! Thus: for halo data exchange, the receive section is confined in the ! halo indices, and BETA=0, whereas for overlap exchange the receive section ! is scattered in the owned indices, and BETA=1. +! The first routine picks the desired exchange index list and passes it to the second. ! ! Arguments: ! flag - integer Choose the algorithm for data exchange: @@ -73,10 +74,10 @@ ! ! ! n - integer Number of columns in Y -! beta - X Choose overwrite or sum. -! y(:,:) - X The data area +! beta - integer Choose overwrite or sum. +! y(:,:) - integer The data area ! desc_a - type(psb_desc_type). The communication descriptor. -! work(:) - X Buffer space. If not sufficient, will do +! work(:) - integer Buffer space. If not sufficient, will do ! our own internal allocation. ! info - integer. return code. ! data - integer which list is to be used to exchange data @@ -241,7 +242,7 @@ subroutine psi_etranidxm(iictxt,iicomm,flag,n,beta,y,idx,& proc_to_comm = idx(pnti+psb_proc_id_) nerv = idx(pnti+psb_n_elem_recv_) nesd = idx(pnti+nerv+psb_n_elem_send_) - prcid(proc_to_comm) = psb_get_rank(ictxt,proc_to_comm) + prcid(proc_to_comm) = psb_get_mpi_rank(ictxt,proc_to_comm) brvidx(proc_to_comm) = rcv_pt rvsz(proc_to_comm) = n*nerv @@ -359,7 +360,7 @@ subroutine psi_etranidxm(iictxt,iicomm,flag,n,beta,y,idx,& proc_to_comm = idx(pnti+psb_proc_id_) nerv = idx(pnti+psb_n_elem_recv_) nesd = idx(pnti+nerv+psb_n_elem_send_) - prcid(i) = psb_get_rank(ictxt,proc_to_comm) + prcid(i) = psb_get_mpi_rank(ictxt,proc_to_comm) if ((nesd>0).and.(proc_to_comm /= me)) then p2ptag = psb_int8_swap_tag call mpi_irecv(sndbuf(snd_pt),n*nesd,& @@ -516,7 +517,7 @@ end subroutine psi_etranidxm ! ! ! Subroutine: psi_eswaptranv -! Does the data exchange among processes. This is similar to Xswapdata, but +! Implements the data exchange among processes. This is similar to Xswapdata, but ! the list is read "in reverse", i.e. indices that are normally SENT are used ! for the RECEIVE part and vice-versa. This is the basic data exchange operation ! for doing the product of a sparse matrix by a vector. @@ -536,6 +537,7 @@ end subroutine psi_etranidxm ! Thus: for halo data exchange, the receive section is confined in the ! halo indices, and BETA=0, whereas for overlap exchange the receive section ! is scattered in the owned indices, and BETA=1. +! The first routine picks the desired exchange index list and passes it to the second. ! ! Arguments: ! flag - integer Choose the algorithm for data exchange: @@ -556,10 +558,10 @@ end subroutine psi_etranidxm ! ! ! n - integer Number of columns in Y -! beta - X Choose overwrite or sum. -! y(:) - X The data area +! beta - integer Choose overwrite or sum. +! y(:) - integer The data area ! desc_a - type(psb_desc_type). The communication descriptor. -! work(:) - X Buffer space. If not sufficient, will do +! work(:) - integer Buffer space. If not sufficient, will do ! our own internal allocation. ! info - integer. return code. ! data - integer which list is to be used to exchange data @@ -734,7 +736,7 @@ subroutine psi_etranidxv(iictxt,iicomm,flag,beta,y,idx,& proc_to_comm = idx(pnti+psb_proc_id_) nerv = idx(pnti+psb_n_elem_recv_) nesd = idx(pnti+nerv+psb_n_elem_send_) - prcid(proc_to_comm) = psb_get_rank(ictxt,proc_to_comm) + prcid(proc_to_comm) = psb_get_mpi_rank(ictxt,proc_to_comm) brvidx(proc_to_comm) = rcv_pt rvsz(proc_to_comm) = nerv @@ -852,7 +854,7 @@ subroutine psi_etranidxv(iictxt,iicomm,flag,beta,y,idx,& proc_to_comm = idx(pnti+psb_proc_id_) nerv = idx(pnti+psb_n_elem_recv_) nesd = idx(pnti+nerv+psb_n_elem_send_) - prcid(i) = psb_get_rank(ictxt,proc_to_comm) + prcid(i) = psb_get_mpi_rank(ictxt,proc_to_comm) if ((nesd>0).and.(proc_to_comm /= me)) then p2ptag = psb_int8_swap_tag call mpi_irecv(sndbuf(snd_pt),nesd,& diff --git a/base/comm/internals/psi_iovrl_restr.f90 b/base/comm/internals/psi_iovrl_restr.f90 index 89ff5ee0..b0efa2ee 100644 --- a/base/comm/internals/psi_iovrl_restr.f90 +++ b/base/comm/internals/psi_iovrl_restr.f90 @@ -28,8 +28,13 @@ ! ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE ! POSSIBILITY OF SUCH DAMAGE. ! +! +! Subroutine: psi_iovrl_restr +! These subroutines restore the overlap region of a vector; they are used +! for the transpose matrix-vector product when there is a nonempty overlap. +! +! ! - subroutine psi_iovrl_restr_vect(x,xs,desc_a,info) use psi_mod, psi_protect_name => psi_iovrl_restr_vect use psb_i_base_vect_mod diff --git a/base/comm/internals/psi_iovrl_save.f90 b/base/comm/internals/psi_iovrl_save.f90 index b48a7dbc..cc7619f9 100644 --- a/base/comm/internals/psi_iovrl_save.f90 +++ b/base/comm/internals/psi_iovrl_save.f90 @@ -28,6 +28,11 @@ ! ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE ! POSSIBILITY OF SUCH DAMAGE. ! +! +! Subroutine: psi_iovrl_save +! These subroutines save the overlap region of a vector; they are used +! for the transpose matrix-vector product when there is a nonempty overlap. +! ! subroutine psi_iovrl_save_vect(x,xs,desc_a,info) use psi_mod, psi_protect_name => psi_iovrl_save_vect diff --git a/base/comm/internals/psi_iovrl_upd.f90 b/base/comm/internals/psi_iovrl_upd.f90 index a84a1cc0..988bf006 100644 --- a/base/comm/internals/psi_iovrl_upd.f90 +++ b/base/comm/internals/psi_iovrl_upd.f90 @@ -28,8 +28,14 @@ ! ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE ! POSSIBILITY OF SUCH DAMAGE. ! +! +! Subroutine: psi_iovrl_update +! These subroutines update the overlap region of a vector; they are used +! for the transpose matrix-vector product when there is a nonempty overlap, +! or for the application of Additive Schwarz preconditioners. +! +! ! - subroutine psi_iovrl_upd_vect(x,desc_a,update,info) use psi_mod, psi_protect_name => psi_iovrl_upd_vect use psb_realloc_mod diff --git a/base/comm/internals/psi_iswapdata.F90 b/base/comm/internals/psi_iswapdata.F90 index 4774da99..d05ab8ac 100644 --- a/base/comm/internals/psi_iswapdata.F90 +++ b/base/comm/internals/psi_iswapdata.F90 @@ -32,8 +32,10 @@ ! ! File: psi_iswapdata.F90 ! -! Subroutine: psi_iswapdatam -! Does the data exchange among processes. Essentially this is doing +! +! +! Subroutine: psi_iswapdata_vect +! Implements the data exchange among processes. Essentially this is doing ! a variable all-to-all data exchange (ALLTOALLV in MPI parlance), but ! it is capable of pruning empty exchanges, which are very likely in out ! application environment. All the variants have the same structure @@ -43,12 +45,15 @@ ! C complex(psb_spk_) ! Z complex(psb_dpk_) ! Basically the operation is as follows: on each process, we identify -! sections SND(Y) and RCV(Y); then we do a send on (PACK(SND(Y))); -! then we receive, and we do an update with Y = UNPACK(RCV(Y)) + BETA * Y -! but only on the elements involved in the UNPACK operation. +! sections SND(Y) and RCV(Y); then we do a SEND(PACK(GTH(SND(Y)))); +! then we receive, and we do an update with Y = SCT(RCV(Y)) + BETA * Y +! but only on the elements involved in the SCT operation. ! Thus: for halo data exchange, the receive section is confined in the ! halo indices, and BETA=0, whereas for overlap exchange the receive section ! is scattered in the owned indices, and BETA=1. +! The first routine picks the desired exchange index list and passes it to the second. +! This version works on encapsulated vectors, and uses their methods to do GTH and SCT, +! so that special versions (i.e. GPU vectors can override them ! ! Arguments: ! flag - integer Choose the algorithm for data exchange: @@ -69,10 +74,10 @@ ! ! ! n - integer Number of columns in Y -! beta - X Choose overwrite or sum. -! y(:,:) - X The data area +! beta - integer Choose overwrite or sum. +! y - type(psb_@x@_vect_type) The data area ! desc_a - type(psb_desc_type). The communication descriptor. -! work(:) - X Buffer space. If not sufficient, will do +! work(:) - integer Buffer space. If not sufficient, will do ! our own internal allocation. ! info - integer. return code. ! data - integer which list is to be used to exchange data @@ -83,14 +88,6 @@ ! psb_comm_mov_ use ovr_mst_idx ! ! -! -! -! Subroutine: psi_iswapdata_vect -! Data exchange among processes. -! -! Takes care of Y an exanspulated vector. -! -! ! subroutine psi_iswapdata_vect(flag,beta,y,desc_a,work,info,data) @@ -263,7 +260,7 @@ subroutine psi_iswap_vidx_vect(iictxt,iicomm,flag,beta,y,idx, & nesd = idx%v(pnti+nerv+psb_n_elem_send_) rcv_pt = 1+pnti+psb_n_elem_recv_ - prcid(i) = psb_get_rank(ictxt,proc_to_comm) + prcid(i) = psb_get_mpi_rank(ictxt,proc_to_comm) if ((nerv>0).and.(proc_to_comm /= me)) then if (debug) write(*,*) me,'Posting receive from',prcid(i),rcv_pt p2ptag = psb_int_swap_tag @@ -426,7 +423,7 @@ end subroutine psi_iswap_vidx_vect ! Subroutine: psi_iswapdata_multivect ! Data exchange among processes. ! -! Takes care of Y an encaspulated vector. +! Takes care of Y an encaspulated multivector. ! ! subroutine psi_iswapdata_multivect(flag,beta,y,desc_a,work,info,data) @@ -602,7 +599,7 @@ subroutine psi_iswap_vidx_multivect(iictxt,iicomm,flag,beta,y,idx, & proc_to_comm = idx%v(pnti+psb_proc_id_) nerv = idx%v(pnti+psb_n_elem_recv_) nesd = idx%v(pnti+nerv+psb_n_elem_send_) - prcid(i) = psb_get_rank(ictxt,proc_to_comm) + prcid(i) = psb_get_mpi_rank(ictxt,proc_to_comm) if ((nerv>0).and.(proc_to_comm /= me)) then if (debug) write(*,*) me,'Posting receive from',prcid(i),rcv_pt p2ptag = psb_int_swap_tag diff --git a/base/comm/internals/psi_iswaptran.F90 b/base/comm/internals/psi_iswaptran.F90 index 2fb590e5..e5719735 100644 --- a/base/comm/internals/psi_iswaptran.F90 +++ b/base/comm/internals/psi_iswaptran.F90 @@ -32,8 +32,8 @@ ! ! File: psi_iswaptran.F90 ! -! Subroutine: psi_iswaptranm -! Does the data exchange among processes. This is similar to Xswapdata, but +! Subroutine: psi_iswaptran_vect +! Implements the data exchange among processes. This is similar to Xswapdata, but ! the list is read "in reverse", i.e. indices that are normally SENT are used ! for the RECEIVE part and vice-versa. This is the basic data exchange operation ! for doing the product of a sparse matrix by a vector. @@ -47,12 +47,16 @@ ! C complex(psb_spk_) ! Z complex(psb_dpk_) ! Basically the operation is as follows: on each process, we identify -! sections SND(Y) and RCV(Y); then we do a SEND(PACK(SND(Y))); -! then we receive, and we do an update with Y = UNPACK(RCV(Y)) + BETA * Y -! but only on the elements involved in the UNPACK operation. +! sections SND(Y) and RCV(Y); then we do a SEND(PACK(GTH(SND(Y)))); +! then we receive, and we do an update with Y = SCT(RCV(Y)) + BETA * Y +! but only on the elements involved in the SCT operation. ! Thus: for halo data exchange, the receive section is confined in the ! halo indices, and BETA=0, whereas for overlap exchange the receive section ! is scattered in the owned indices, and BETA=1. +! The first routine picks the desired exchange index list and passes it to the second. +! This version works on encapsulated vectors, and uses their methods to do GTH and SCT, +! so that special versions (i.e. GPU vectors can override them +! ! ! Arguments: ! flag - integer Choose the algorithm for data exchange: @@ -73,10 +77,10 @@ ! ! ! n - integer Number of columns in Y -! beta - X Choose overwrite or sum. -! y(:,:) - X The data area -! desc_a - type(psb_desc_type). The communication descriptor. -! work(:) - X Buffer space. If not sufficient, will do +! beta - integer Choose overwrite or sum. +! y - type(psb_i_vect_type) The data area +! desc_a - type(psb_desc_type). The communication descriptor. +! work(:) - integer Buffer space. If not sufficient, will do ! our own internal allocation. ! info - integer. return code. ! data - integer which list is to be used to exchange data @@ -86,13 +90,6 @@ ! psb_comm_ovrl_ use ovrl_index ! psb_comm_mov_ use ovr_mst_idx ! -! -! -! Subroutine: psi_iswaptran_vect -! Data exchange among processes. -! -! Takes care of Y an exanspulated vector. -! ! subroutine psi_iswaptran_vect(flag,beta,y,desc_a,work,info,data) @@ -171,7 +168,7 @@ end subroutine psi_iswaptran_vect ! Subroutine: psi_itran_vidx_vect ! Data exchange among processes. ! -! Takes care of Y an exanspulated vector. Relies on the gather/scatter methods +! Takes care of Y an encapsulated vector. Relies on the gather/scatter methods ! of vectors. ! ! The real workhorse: the outer routine will only choose the index list @@ -269,7 +266,7 @@ subroutine psi_itran_vidx_vect(iictxt,iicomm,flag,beta,y,idx,& snd_pt = 1+pnti+nerv+psb_n_elem_send_ rcv_pt = 1+pnti+psb_n_elem_recv_ - prcid(i) = psb_get_rank(ictxt,proc_to_comm) + prcid(i) = psb_get_mpi_rank(ictxt,proc_to_comm) if ((nesd>0).and.(proc_to_comm /= me)) then if (debug) write(*,*) me,'Posting receive from',prcid(i),rcv_pt call mpi_irecv(y%combuf(snd_pt),nesd,& @@ -436,10 +433,10 @@ end subroutine psi_itran_vidx_vect ! ! ! -! Subroutine: psi_iswaptran_vect +! Subroutine: psi_iswaptran_multivect ! Data exchange among processes. ! -! Takes care of Y an encaspulated vector. +! Takes care of Y an encaspulated multivector. ! ! subroutine psi_iswaptran_multivect(flag,beta,y,desc_a,work,info,data) @@ -616,7 +613,7 @@ subroutine psi_itran_vidx_multivect(iictxt,iicomm,flag,beta,y,idx,& proc_to_comm = idx%v(pnti+psb_proc_id_) nerv = idx%v(pnti+psb_n_elem_recv_) nesd = idx%v(pnti+nerv+psb_n_elem_send_) - prcid(i) = psb_get_rank(ictxt,proc_to_comm) + prcid(i) = psb_get_mpi_rank(ictxt,proc_to_comm) if ((nesd>0).and.(proc_to_comm /= me)) then if (debug) write(*,*) me,'Posting receive from',prcid(i),snd_pt call mpi_irecv(y%combuf(snd_pt),n*nesd,& diff --git a/base/comm/internals/psi_lovrl_restr.f90 b/base/comm/internals/psi_lovrl_restr.f90 index ba96e9c0..dc33bbb1 100644 --- a/base/comm/internals/psi_lovrl_restr.f90 +++ b/base/comm/internals/psi_lovrl_restr.f90 @@ -28,8 +28,13 @@ ! ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE ! POSSIBILITY OF SUCH DAMAGE. ! +! +! Subroutine: psi_lovrl_restr +! These subroutines restore the overlap region of a vector; they are used +! for the transpose matrix-vector product when there is a nonempty overlap. +! +! ! - subroutine psi_lovrl_restr_vect(x,xs,desc_a,info) use psi_mod, psi_protect_name => psi_lovrl_restr_vect use psb_l_base_vect_mod diff --git a/base/comm/internals/psi_lovrl_save.f90 b/base/comm/internals/psi_lovrl_save.f90 index 5a06c697..496eec90 100644 --- a/base/comm/internals/psi_lovrl_save.f90 +++ b/base/comm/internals/psi_lovrl_save.f90 @@ -28,6 +28,11 @@ ! ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE ! POSSIBILITY OF SUCH DAMAGE. ! +! +! Subroutine: psi_lovrl_save +! These subroutines save the overlap region of a vector; they are used +! for the transpose matrix-vector product when there is a nonempty overlap. +! ! subroutine psi_lovrl_save_vect(x,xs,desc_a,info) use psi_mod, psi_protect_name => psi_lovrl_save_vect diff --git a/base/comm/internals/psi_lovrl_upd.f90 b/base/comm/internals/psi_lovrl_upd.f90 index 4364ac6f..d20d80cc 100644 --- a/base/comm/internals/psi_lovrl_upd.f90 +++ b/base/comm/internals/psi_lovrl_upd.f90 @@ -28,8 +28,14 @@ ! ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE ! POSSIBILITY OF SUCH DAMAGE. ! +! +! Subroutine: psi_lovrl_update +! These subroutines update the overlap region of a vector; they are used +! for the transpose matrix-vector product when there is a nonempty overlap, +! or for the application of Additive Schwarz preconditioners. +! +! ! - subroutine psi_lovrl_upd_vect(x,desc_a,update,info) use psi_mod, psi_protect_name => psi_lovrl_upd_vect use psb_realloc_mod diff --git a/base/comm/internals/psi_lswapdata.F90 b/base/comm/internals/psi_lswapdata.F90 index f1f8de5c..939f9596 100644 --- a/base/comm/internals/psi_lswapdata.F90 +++ b/base/comm/internals/psi_lswapdata.F90 @@ -32,8 +32,10 @@ ! ! File: psi_lswapdata.F90 ! -! Subroutine: psi_lswapdatam -! Does the data exchange among processes. Essentially this is doing +! +! +! Subroutine: psi_lswapdata_vect +! Implements the data exchange among processes. Essentially this is doing ! a variable all-to-all data exchange (ALLTOALLV in MPI parlance), but ! it is capable of pruning empty exchanges, which are very likely in out ! application environment. All the variants have the same structure @@ -43,12 +45,15 @@ ! C complex(psb_spk_) ! Z complex(psb_dpk_) ! Basically the operation is as follows: on each process, we identify -! sections SND(Y) and RCV(Y); then we do a send on (PACK(SND(Y))); -! then we receive, and we do an update with Y = UNPACK(RCV(Y)) + BETA * Y -! but only on the elements involved in the UNPACK operation. +! sections SND(Y) and RCV(Y); then we do a SEND(PACK(GTH(SND(Y)))); +! then we receive, and we do an update with Y = SCT(RCV(Y)) + BETA * Y +! but only on the elements involved in the SCT operation. ! Thus: for halo data exchange, the receive section is confined in the ! halo indices, and BETA=0, whereas for overlap exchange the receive section ! is scattered in the owned indices, and BETA=1. +! The first routine picks the desired exchange index list and passes it to the second. +! This version works on encapsulated vectors, and uses their methods to do GTH and SCT, +! so that special versions (i.e. GPU vectors can override them ! ! Arguments: ! flag - integer Choose the algorithm for data exchange: @@ -69,10 +74,10 @@ ! ! ! n - integer Number of columns in Y -! beta - X Choose overwrite or sum. -! y(:,:) - X The data area +! beta - integer Choose overwrite or sum. +! y - type(psb_@x@_vect_type) The data area ! desc_a - type(psb_desc_type). The communication descriptor. -! work(:) - X Buffer space. If not sufficient, will do +! work(:) - integer Buffer space. If not sufficient, will do ! our own internal allocation. ! info - integer. return code. ! data - integer which list is to be used to exchange data @@ -83,14 +88,6 @@ ! psb_comm_mov_ use ovr_mst_idx ! ! -! -! -! Subroutine: psi_lswapdata_vect -! Data exchange among processes. -! -! Takes care of Y an exanspulated vector. -! -! ! subroutine psi_lswapdata_vect(flag,beta,y,desc_a,work,info,data) @@ -263,7 +260,7 @@ subroutine psi_lswap_vidx_vect(iictxt,iicomm,flag,beta,y,idx, & nesd = idx%v(pnti+nerv+psb_n_elem_send_) rcv_pt = 1+pnti+psb_n_elem_recv_ - prcid(i) = psb_get_rank(ictxt,proc_to_comm) + prcid(i) = psb_get_mpi_rank(ictxt,proc_to_comm) if ((nerv>0).and.(proc_to_comm /= me)) then if (debug) write(*,*) me,'Posting receive from',prcid(i),rcv_pt p2ptag = psb_long_swap_tag @@ -426,7 +423,7 @@ end subroutine psi_lswap_vidx_vect ! Subroutine: psi_lswapdata_multivect ! Data exchange among processes. ! -! Takes care of Y an encaspulated vector. +! Takes care of Y an encaspulated multivector. ! ! subroutine psi_lswapdata_multivect(flag,beta,y,desc_a,work,info,data) @@ -602,7 +599,7 @@ subroutine psi_lswap_vidx_multivect(iictxt,iicomm,flag,beta,y,idx, & proc_to_comm = idx%v(pnti+psb_proc_id_) nerv = idx%v(pnti+psb_n_elem_recv_) nesd = idx%v(pnti+nerv+psb_n_elem_send_) - prcid(i) = psb_get_rank(ictxt,proc_to_comm) + prcid(i) = psb_get_mpi_rank(ictxt,proc_to_comm) if ((nerv>0).and.(proc_to_comm /= me)) then if (debug) write(*,*) me,'Posting receive from',prcid(i),rcv_pt p2ptag = psb_long_swap_tag diff --git a/base/comm/internals/psi_lswaptran.F90 b/base/comm/internals/psi_lswaptran.F90 index d960e0f9..ccc1b6e3 100644 --- a/base/comm/internals/psi_lswaptran.F90 +++ b/base/comm/internals/psi_lswaptran.F90 @@ -32,8 +32,8 @@ ! ! File: psi_lswaptran.F90 ! -! Subroutine: psi_lswaptranm -! Does the data exchange among processes. This is similar to Xswapdata, but +! Subroutine: psi_lswaptran_vect +! Implements the data exchange among processes. This is similar to Xswapdata, but ! the list is read "in reverse", i.e. indices that are normally SENT are used ! for the RECEIVE part and vice-versa. This is the basic data exchange operation ! for doing the product of a sparse matrix by a vector. @@ -47,12 +47,16 @@ ! C complex(psb_spk_) ! Z complex(psb_dpk_) ! Basically the operation is as follows: on each process, we identify -! sections SND(Y) and RCV(Y); then we do a SEND(PACK(SND(Y))); -! then we receive, and we do an update with Y = UNPACK(RCV(Y)) + BETA * Y -! but only on the elements involved in the UNPACK operation. +! sections SND(Y) and RCV(Y); then we do a SEND(PACK(GTH(SND(Y)))); +! then we receive, and we do an update with Y = SCT(RCV(Y)) + BETA * Y +! but only on the elements involved in the SCT operation. ! Thus: for halo data exchange, the receive section is confined in the ! halo indices, and BETA=0, whereas for overlap exchange the receive section ! is scattered in the owned indices, and BETA=1. +! The first routine picks the desired exchange index list and passes it to the second. +! This version works on encapsulated vectors, and uses their methods to do GTH and SCT, +! so that special versions (i.e. GPU vectors can override them +! ! ! Arguments: ! flag - integer Choose the algorithm for data exchange: @@ -73,10 +77,10 @@ ! ! ! n - integer Number of columns in Y -! beta - X Choose overwrite or sum. -! y(:,:) - X The data area -! desc_a - type(psb_desc_type). The communication descriptor. -! work(:) - X Buffer space. If not sufficient, will do +! beta - integer Choose overwrite or sum. +! y - type(psb_l_vect_type) The data area +! desc_a - type(psb_desc_type). The communication descriptor. +! work(:) - integer Buffer space. If not sufficient, will do ! our own internal allocation. ! info - integer. return code. ! data - integer which list is to be used to exchange data @@ -86,13 +90,6 @@ ! psb_comm_ovrl_ use ovrl_index ! psb_comm_mov_ use ovr_mst_idx ! -! -! -! Subroutine: psi_lswaptran_vect -! Data exchange among processes. -! -! Takes care of Y an exanspulated vector. -! ! subroutine psi_lswaptran_vect(flag,beta,y,desc_a,work,info,data) @@ -171,7 +168,7 @@ end subroutine psi_lswaptran_vect ! Subroutine: psi_ltran_vidx_vect ! Data exchange among processes. ! -! Takes care of Y an exanspulated vector. Relies on the gather/scatter methods +! Takes care of Y an encapsulated vector. Relies on the gather/scatter methods ! of vectors. ! ! The real workhorse: the outer routine will only choose the index list @@ -269,7 +266,7 @@ subroutine psi_ltran_vidx_vect(iictxt,iicomm,flag,beta,y,idx,& snd_pt = 1+pnti+nerv+psb_n_elem_send_ rcv_pt = 1+pnti+psb_n_elem_recv_ - prcid(i) = psb_get_rank(ictxt,proc_to_comm) + prcid(i) = psb_get_mpi_rank(ictxt,proc_to_comm) if ((nesd>0).and.(proc_to_comm /= me)) then if (debug) write(*,*) me,'Posting receive from',prcid(i),rcv_pt call mpi_irecv(y%combuf(snd_pt),nesd,& @@ -436,10 +433,10 @@ end subroutine psi_ltran_vidx_vect ! ! ! -! Subroutine: psi_lswaptran_vect +! Subroutine: psi_lswaptran_multivect ! Data exchange among processes. ! -! Takes care of Y an encaspulated vector. +! Takes care of Y an encaspulated multivector. ! ! subroutine psi_lswaptran_multivect(flag,beta,y,desc_a,work,info,data) @@ -616,7 +613,7 @@ subroutine psi_ltran_vidx_multivect(iictxt,iicomm,flag,beta,y,idx,& proc_to_comm = idx%v(pnti+psb_proc_id_) nerv = idx%v(pnti+psb_n_elem_recv_) nesd = idx%v(pnti+nerv+psb_n_elem_send_) - prcid(i) = psb_get_rank(ictxt,proc_to_comm) + prcid(i) = psb_get_mpi_rank(ictxt,proc_to_comm) if ((nesd>0).and.(proc_to_comm /= me)) then if (debug) write(*,*) me,'Posting receive from',prcid(i),snd_pt call mpi_irecv(y%combuf(snd_pt),n*nesd,& diff --git a/base/comm/internals/psi_movrl_restr_a.f90 b/base/comm/internals/psi_movrl_restr_a.f90 index a5759f98..92e06793 100644 --- a/base/comm/internals/psi_movrl_restr_a.f90 +++ b/base/comm/internals/psi_movrl_restr_a.f90 @@ -28,6 +28,11 @@ ! ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE ! POSSIBILITY OF SUCH DAMAGE. ! +! +! Subroutine: psi_movrl_restr +! These subroutines restore the overlap region of a vector; they are used +! for the transpose matrix-vector product when there is a nonempty overlap. +! ! subroutine psi_movrl_restrr1(x,xs,desc_a,info) use psi_mod, psi_protect_name => psi_movrl_restrr1 diff --git a/base/comm/internals/psi_movrl_save_a.f90 b/base/comm/internals/psi_movrl_save_a.f90 index 7935333f..fbc021cf 100644 --- a/base/comm/internals/psi_movrl_save_a.f90 +++ b/base/comm/internals/psi_movrl_save_a.f90 @@ -28,8 +28,12 @@ ! ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE ! POSSIBILITY OF SUCH DAMAGE. ! -! - +! +! +! Subroutine: psi_movrl_save +! These subroutines save the overlap region of a vector; they are used +! for the transpose matrix-vector product when there is a nonempty overlap. +! subroutine psi_movrl_saver1(x,xs,desc_a,info) use psi_mod, psi_protect_name => psi_movrl_saver1 diff --git a/base/comm/internals/psi_movrl_upd_a.f90 b/base/comm/internals/psi_movrl_upd_a.f90 index 92bfccce..03670659 100644 --- a/base/comm/internals/psi_movrl_upd_a.f90 +++ b/base/comm/internals/psi_movrl_upd_a.f90 @@ -28,6 +28,12 @@ ! ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE ! POSSIBILITY OF SUCH DAMAGE. ! +! +! Subroutine: psi_movrl_update +! These subroutines update the overlap region of a vector; they are used +! for the transpose matrix-vector product when there is a nonempty overlap, +! or for the application of Additive Schwarz preconditioners. +! ! subroutine psi_movrl_updr1(x,desc_a,update,info) use psi_mod, psi_protect_name => psi_movrl_updr1 diff --git a/base/comm/internals/psi_mswapdata_a.F90 b/base/comm/internals/psi_mswapdata_a.F90 index bdeb28e2..b71e61ef 100644 --- a/base/comm/internals/psi_mswapdata_a.F90 +++ b/base/comm/internals/psi_mswapdata_a.F90 @@ -33,9 +33,9 @@ ! File: psi_mswapdata.F90 ! ! Subroutine: psi_mswapdatam -! Does the data exchange among processes. Essentially this is doing +! Implements the data exchange among processes. Essentially this is doing ! a variable all-to-all data exchange (ALLTOALLV in MPI parlance), but -! it is capable of pruning empty exchanges, which are very likely in out +! it is capable of pruning empty exchanges, which are very likely in our ! application environment. All the variants have the same structure ! In all these subroutines X may be: I Integer ! S real(psb_spk_) @@ -49,6 +49,7 @@ ! Thus: for halo data exchange, the receive section is confined in the ! halo indices, and BETA=0, whereas for overlap exchange the receive section ! is scattered in the owned indices, and BETA=1. +! The first routine picks the desired exchange index list and passes it to the second. ! ! Arguments: ! flag - integer Choose the algorithm for data exchange: @@ -69,10 +70,10 @@ ! ! ! n - integer Number of columns in Y -! beta - X Choose overwrite or sum. -! y(:,:) - X The data area +! beta - integer Choose overwrite or sum. +! y(:,:) - integer The data area ! desc_a - type(psb_desc_type). The communication descriptor. -! work(:) - X Buffer space. If not sufficient, will do +! work(:) - integer Buffer space. If not sufficient, will do ! our own internal allocation. ! info - integer. return code. ! data - integer which list is to be used to exchange data @@ -236,7 +237,7 @@ subroutine psi_mswapidxm(iictxt,iicomm,flag,n,beta,y,idx, & proc_to_comm = idx(pnti+psb_proc_id_) nerv = idx(pnti+psb_n_elem_recv_) nesd = idx(pnti+nerv+psb_n_elem_send_) - prcid(proc_to_comm) = psb_get_rank(ictxt,proc_to_comm) + prcid(proc_to_comm) = psb_get_mpi_rank(ictxt,proc_to_comm) brvidx(proc_to_comm) = rcv_pt rvsz(proc_to_comm) = n*nerv @@ -349,7 +350,7 @@ subroutine psi_mswapidxm(iictxt,iicomm,flag,n,beta,y,idx, & proc_to_comm = idx(pnti+psb_proc_id_) nerv = idx(pnti+psb_n_elem_recv_) nesd = idx(pnti+nerv+psb_n_elem_send_) - prcid(i) = psb_get_rank(ictxt,proc_to_comm) + prcid(i) = psb_get_mpi_rank(ictxt,proc_to_comm) if ((nerv>0).and.(proc_to_comm /= me)) then p2ptag = psb_int4_swap_tag call mpi_irecv(rcvbuf(rcv_pt),n*nerv,& @@ -507,7 +508,7 @@ end subroutine psi_mswapidxm ! ! ! Subroutine: psi_mswapdatav -! Does the data exchange among processes. Essentially this is doing +! Implements the data exchange among processes. Essentially this is doing ! a variable all-to-all data exchange (ALLTOALLV in MPI parlance), but ! it is capable of pruning empty exchanges, which are very likely in out ! application environment. All the variants have the same structure @@ -523,6 +524,7 @@ end subroutine psi_mswapidxm ! Thus: for halo data exchange, the receive section is confined in the ! halo indices, and BETA=0, whereas for overlap exchange the receive section ! is scattered in the owned indices, and BETA=1. +! The first routine picks the desired exchange index list and passes it to the second. ! ! Arguments: ! flag - integer Choose the algorithm for data exchange: @@ -543,10 +545,10 @@ end subroutine psi_mswapidxm ! ! ! n - integer Number of columns in Y -! beta - X Choose overwrite or sum. -! y(:) - X The data area +! beta - integer Choose overwrite or sum. +! y(:) - integer The data area ! desc_a - type(psb_desc_type). The communication descriptor. -! work(:) - X Buffer space. If not sufficient, will do +! work(:) - integer Buffer space. If not sufficient, will do ! our own internal allocation. ! info - integer. return code. ! data - integer which list is to be used to exchange data @@ -721,7 +723,7 @@ subroutine psi_mswapidxv(iictxt,iicomm,flag,beta,y,idx, & proc_to_comm = idx(pnti+psb_proc_id_) nerv = idx(pnti+psb_n_elem_recv_) nesd = idx(pnti+nerv+psb_n_elem_send_) - prcid(proc_to_comm) = psb_get_rank(ictxt,proc_to_comm) + prcid(proc_to_comm) = psb_get_mpi_rank(ictxt,proc_to_comm) brvidx(proc_to_comm) = rcv_pt rvsz(proc_to_comm) = nerv @@ -835,7 +837,7 @@ subroutine psi_mswapidxv(iictxt,iicomm,flag,beta,y,idx, & nerv = idx(pnti+psb_n_elem_recv_) nesd = idx(pnti+nerv+psb_n_elem_send_) - prcid(i) = psb_get_rank(ictxt,proc_to_comm) + prcid(i) = psb_get_mpi_rank(ictxt,proc_to_comm) if ((nerv>0).and.(proc_to_comm /= me)) then p2ptag = psb_int4_swap_tag call mpi_irecv(rcvbuf(rcv_pt),nerv,& diff --git a/base/comm/internals/psi_mswaptran_a.F90 b/base/comm/internals/psi_mswaptran_a.F90 index 013e21b6..add5a608 100644 --- a/base/comm/internals/psi_mswaptran_a.F90 +++ b/base/comm/internals/psi_mswaptran_a.F90 @@ -33,7 +33,7 @@ ! File: psi_mswaptran.F90 ! ! Subroutine: psi_mswaptranm -! Does the data exchange among processes. This is similar to Xswapdata, but +! Implements the data exchange among processes. This is similar to Xswapdata, but ! the list is read "in reverse", i.e. indices that are normally SENT are used ! for the RECEIVE part and vice-versa. This is the basic data exchange operation ! for doing the product of a sparse matrix by a vector. @@ -53,6 +53,7 @@ ! Thus: for halo data exchange, the receive section is confined in the ! halo indices, and BETA=0, whereas for overlap exchange the receive section ! is scattered in the owned indices, and BETA=1. +! The first routine picks the desired exchange index list and passes it to the second. ! ! Arguments: ! flag - integer Choose the algorithm for data exchange: @@ -73,10 +74,10 @@ ! ! ! n - integer Number of columns in Y -! beta - X Choose overwrite or sum. -! y(:,:) - X The data area +! beta - integer Choose overwrite or sum. +! y(:,:) - integer The data area ! desc_a - type(psb_desc_type). The communication descriptor. -! work(:) - X Buffer space. If not sufficient, will do +! work(:) - integer Buffer space. If not sufficient, will do ! our own internal allocation. ! info - integer. return code. ! data - integer which list is to be used to exchange data @@ -241,7 +242,7 @@ subroutine psi_mtranidxm(iictxt,iicomm,flag,n,beta,y,idx,& proc_to_comm = idx(pnti+psb_proc_id_) nerv = idx(pnti+psb_n_elem_recv_) nesd = idx(pnti+nerv+psb_n_elem_send_) - prcid(proc_to_comm) = psb_get_rank(ictxt,proc_to_comm) + prcid(proc_to_comm) = psb_get_mpi_rank(ictxt,proc_to_comm) brvidx(proc_to_comm) = rcv_pt rvsz(proc_to_comm) = n*nerv @@ -359,7 +360,7 @@ subroutine psi_mtranidxm(iictxt,iicomm,flag,n,beta,y,idx,& proc_to_comm = idx(pnti+psb_proc_id_) nerv = idx(pnti+psb_n_elem_recv_) nesd = idx(pnti+nerv+psb_n_elem_send_) - prcid(i) = psb_get_rank(ictxt,proc_to_comm) + prcid(i) = psb_get_mpi_rank(ictxt,proc_to_comm) if ((nesd>0).and.(proc_to_comm /= me)) then p2ptag = psb_int4_swap_tag call mpi_irecv(sndbuf(snd_pt),n*nesd,& @@ -516,7 +517,7 @@ end subroutine psi_mtranidxm ! ! ! Subroutine: psi_mswaptranv -! Does the data exchange among processes. This is similar to Xswapdata, but +! Implements the data exchange among processes. This is similar to Xswapdata, but ! the list is read "in reverse", i.e. indices that are normally SENT are used ! for the RECEIVE part and vice-versa. This is the basic data exchange operation ! for doing the product of a sparse matrix by a vector. @@ -536,6 +537,7 @@ end subroutine psi_mtranidxm ! Thus: for halo data exchange, the receive section is confined in the ! halo indices, and BETA=0, whereas for overlap exchange the receive section ! is scattered in the owned indices, and BETA=1. +! The first routine picks the desired exchange index list and passes it to the second. ! ! Arguments: ! flag - integer Choose the algorithm for data exchange: @@ -556,10 +558,10 @@ end subroutine psi_mtranidxm ! ! ! n - integer Number of columns in Y -! beta - X Choose overwrite or sum. -! y(:) - X The data area +! beta - integer Choose overwrite or sum. +! y(:) - integer The data area ! desc_a - type(psb_desc_type). The communication descriptor. -! work(:) - X Buffer space. If not sufficient, will do +! work(:) - integer Buffer space. If not sufficient, will do ! our own internal allocation. ! info - integer. return code. ! data - integer which list is to be used to exchange data @@ -734,7 +736,7 @@ subroutine psi_mtranidxv(iictxt,iicomm,flag,beta,y,idx,& proc_to_comm = idx(pnti+psb_proc_id_) nerv = idx(pnti+psb_n_elem_recv_) nesd = idx(pnti+nerv+psb_n_elem_send_) - prcid(proc_to_comm) = psb_get_rank(ictxt,proc_to_comm) + prcid(proc_to_comm) = psb_get_mpi_rank(ictxt,proc_to_comm) brvidx(proc_to_comm) = rcv_pt rvsz(proc_to_comm) = nerv @@ -852,7 +854,7 @@ subroutine psi_mtranidxv(iictxt,iicomm,flag,beta,y,idx,& proc_to_comm = idx(pnti+psb_proc_id_) nerv = idx(pnti+psb_n_elem_recv_) nesd = idx(pnti+nerv+psb_n_elem_send_) - prcid(i) = psb_get_rank(ictxt,proc_to_comm) + prcid(i) = psb_get_mpi_rank(ictxt,proc_to_comm) if ((nesd>0).and.(proc_to_comm /= me)) then p2ptag = psb_int4_swap_tag call mpi_irecv(sndbuf(snd_pt),nesd,& diff --git a/base/comm/internals/psi_sovrl_restr.f90 b/base/comm/internals/psi_sovrl_restr.f90 index b74c4335..3854040c 100644 --- a/base/comm/internals/psi_sovrl_restr.f90 +++ b/base/comm/internals/psi_sovrl_restr.f90 @@ -28,8 +28,13 @@ ! ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE ! POSSIBILITY OF SUCH DAMAGE. ! +! +! Subroutine: psi_sovrl_restr +! These subroutines restore the overlap region of a vector; they are used +! for the transpose matrix-vector product when there is a nonempty overlap. +! +! ! - subroutine psi_sovrl_restr_vect(x,xs,desc_a,info) use psi_mod, psi_protect_name => psi_sovrl_restr_vect use psb_s_base_vect_mod diff --git a/base/comm/internals/psi_sovrl_restr_a.f90 b/base/comm/internals/psi_sovrl_restr_a.f90 index 5ff1a9f7..e66297d5 100644 --- a/base/comm/internals/psi_sovrl_restr_a.f90 +++ b/base/comm/internals/psi_sovrl_restr_a.f90 @@ -28,6 +28,11 @@ ! ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE ! POSSIBILITY OF SUCH DAMAGE. ! +! +! Subroutine: psi_sovrl_restr +! These subroutines restore the overlap region of a vector; they are used +! for the transpose matrix-vector product when there is a nonempty overlap. +! ! subroutine psi_sovrl_restrr1(x,xs,desc_a,info) use psi_mod, psi_protect_name => psi_sovrl_restrr1 diff --git a/base/comm/internals/psi_sovrl_save.f90 b/base/comm/internals/psi_sovrl_save.f90 index a10ae218..9b06fef7 100644 --- a/base/comm/internals/psi_sovrl_save.f90 +++ b/base/comm/internals/psi_sovrl_save.f90 @@ -28,6 +28,11 @@ ! ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE ! POSSIBILITY OF SUCH DAMAGE. ! +! +! Subroutine: psi_sovrl_save +! These subroutines save the overlap region of a vector; they are used +! for the transpose matrix-vector product when there is a nonempty overlap. +! ! subroutine psi_sovrl_save_vect(x,xs,desc_a,info) use psi_mod, psi_protect_name => psi_sovrl_save_vect diff --git a/base/comm/internals/psi_sovrl_save_a.f90 b/base/comm/internals/psi_sovrl_save_a.f90 index 5766dede..cf400127 100644 --- a/base/comm/internals/psi_sovrl_save_a.f90 +++ b/base/comm/internals/psi_sovrl_save_a.f90 @@ -28,8 +28,12 @@ ! ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE ! POSSIBILITY OF SUCH DAMAGE. ! -! - +! +! +! Subroutine: psi_sovrl_save +! These subroutines save the overlap region of a vector; they are used +! for the transpose matrix-vector product when there is a nonempty overlap. +! subroutine psi_sovrl_saver1(x,xs,desc_a,info) use psi_mod, psi_protect_name => psi_sovrl_saver1 diff --git a/base/comm/internals/psi_sovrl_upd.f90 b/base/comm/internals/psi_sovrl_upd.f90 index b95a49ba..636261b1 100644 --- a/base/comm/internals/psi_sovrl_upd.f90 +++ b/base/comm/internals/psi_sovrl_upd.f90 @@ -28,8 +28,14 @@ ! ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE ! POSSIBILITY OF SUCH DAMAGE. ! +! +! Subroutine: psi_sovrl_update +! These subroutines update the overlap region of a vector; they are used +! for the transpose matrix-vector product when there is a nonempty overlap, +! or for the application of Additive Schwarz preconditioners. +! +! ! - subroutine psi_sovrl_upd_vect(x,desc_a,update,info) use psi_mod, psi_protect_name => psi_sovrl_upd_vect use psb_realloc_mod diff --git a/base/comm/internals/psi_sovrl_upd_a.f90 b/base/comm/internals/psi_sovrl_upd_a.f90 index d553b5f7..82211657 100644 --- a/base/comm/internals/psi_sovrl_upd_a.f90 +++ b/base/comm/internals/psi_sovrl_upd_a.f90 @@ -28,6 +28,12 @@ ! ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE ! POSSIBILITY OF SUCH DAMAGE. ! +! +! Subroutine: psi_sovrl_update +! These subroutines update the overlap region of a vector; they are used +! for the transpose matrix-vector product when there is a nonempty overlap, +! or for the application of Additive Schwarz preconditioners. +! ! subroutine psi_sovrl_updr1(x,desc_a,update,info) use psi_mod, psi_protect_name => psi_sovrl_updr1 diff --git a/base/comm/internals/psi_sswapdata.F90 b/base/comm/internals/psi_sswapdata.F90 index e05ff5e9..b5185198 100644 --- a/base/comm/internals/psi_sswapdata.F90 +++ b/base/comm/internals/psi_sswapdata.F90 @@ -32,8 +32,10 @@ ! ! File: psi_sswapdata.F90 ! -! Subroutine: psi_sswapdatam -! Does the data exchange among processes. Essentially this is doing +! +! +! Subroutine: psi_sswapdata_vect +! Implements the data exchange among processes. Essentially this is doing ! a variable all-to-all data exchange (ALLTOALLV in MPI parlance), but ! it is capable of pruning empty exchanges, which are very likely in out ! application environment. All the variants have the same structure @@ -43,12 +45,15 @@ ! C complex(psb_spk_) ! Z complex(psb_dpk_) ! Basically the operation is as follows: on each process, we identify -! sections SND(Y) and RCV(Y); then we do a send on (PACK(SND(Y))); -! then we receive, and we do an update with Y = UNPACK(RCV(Y)) + BETA * Y -! but only on the elements involved in the UNPACK operation. +! sections SND(Y) and RCV(Y); then we do a SEND(PACK(GTH(SND(Y)))); +! then we receive, and we do an update with Y = SCT(RCV(Y)) + BETA * Y +! but only on the elements involved in the SCT operation. ! Thus: for halo data exchange, the receive section is confined in the ! halo indices, and BETA=0, whereas for overlap exchange the receive section ! is scattered in the owned indices, and BETA=1. +! The first routine picks the desired exchange index list and passes it to the second. +! This version works on encapsulated vectors, and uses their methods to do GTH and SCT, +! so that special versions (i.e. GPU vectors can override them ! ! Arguments: ! flag - integer Choose the algorithm for data exchange: @@ -69,10 +74,10 @@ ! ! ! n - integer Number of columns in Y -! beta - X Choose overwrite or sum. -! y(:,:) - X The data area +! beta - real Choose overwrite or sum. +! y - type(psb_@x@_vect_type) The data area ! desc_a - type(psb_desc_type). The communication descriptor. -! work(:) - X Buffer space. If not sufficient, will do +! work(:) - real Buffer space. If not sufficient, will do ! our own internal allocation. ! info - integer. return code. ! data - integer which list is to be used to exchange data @@ -83,14 +88,6 @@ ! psb_comm_mov_ use ovr_mst_idx ! ! -! -! -! Subroutine: psi_sswapdata_vect -! Data exchange among processes. -! -! Takes care of Y an exanspulated vector. -! -! ! subroutine psi_sswapdata_vect(flag,beta,y,desc_a,work,info,data) @@ -263,7 +260,7 @@ subroutine psi_sswap_vidx_vect(iictxt,iicomm,flag,beta,y,idx, & nesd = idx%v(pnti+nerv+psb_n_elem_send_) rcv_pt = 1+pnti+psb_n_elem_recv_ - prcid(i) = psb_get_rank(ictxt,proc_to_comm) + prcid(i) = psb_get_mpi_rank(ictxt,proc_to_comm) if ((nerv>0).and.(proc_to_comm /= me)) then if (debug) write(*,*) me,'Posting receive from',prcid(i),rcv_pt p2ptag = psb_real_swap_tag @@ -426,7 +423,7 @@ end subroutine psi_sswap_vidx_vect ! Subroutine: psi_sswapdata_multivect ! Data exchange among processes. ! -! Takes care of Y an encaspulated vector. +! Takes care of Y an encaspulated multivector. ! ! subroutine psi_sswapdata_multivect(flag,beta,y,desc_a,work,info,data) @@ -602,7 +599,7 @@ subroutine psi_sswap_vidx_multivect(iictxt,iicomm,flag,beta,y,idx, & proc_to_comm = idx%v(pnti+psb_proc_id_) nerv = idx%v(pnti+psb_n_elem_recv_) nesd = idx%v(pnti+nerv+psb_n_elem_send_) - prcid(i) = psb_get_rank(ictxt,proc_to_comm) + prcid(i) = psb_get_mpi_rank(ictxt,proc_to_comm) if ((nerv>0).and.(proc_to_comm /= me)) then if (debug) write(*,*) me,'Posting receive from',prcid(i),rcv_pt p2ptag = psb_real_swap_tag diff --git a/base/comm/internals/psi_sswapdata_a.F90 b/base/comm/internals/psi_sswapdata_a.F90 index 81d11859..de8587c1 100644 --- a/base/comm/internals/psi_sswapdata_a.F90 +++ b/base/comm/internals/psi_sswapdata_a.F90 @@ -33,9 +33,9 @@ ! File: psi_sswapdata.F90 ! ! Subroutine: psi_sswapdatam -! Does the data exchange among processes. Essentially this is doing +! Implements the data exchange among processes. Essentially this is doing ! a variable all-to-all data exchange (ALLTOALLV in MPI parlance), but -! it is capable of pruning empty exchanges, which are very likely in out +! it is capable of pruning empty exchanges, which are very likely in our ! application environment. All the variants have the same structure ! In all these subroutines X may be: I Integer ! S real(psb_spk_) @@ -49,6 +49,7 @@ ! Thus: for halo data exchange, the receive section is confined in the ! halo indices, and BETA=0, whereas for overlap exchange the receive section ! is scattered in the owned indices, and BETA=1. +! The first routine picks the desired exchange index list and passes it to the second. ! ! Arguments: ! flag - integer Choose the algorithm for data exchange: @@ -69,10 +70,10 @@ ! ! ! n - integer Number of columns in Y -! beta - X Choose overwrite or sum. -! y(:,:) - X The data area +! beta - real Choose overwrite or sum. +! y(:,:) - real The data area ! desc_a - type(psb_desc_type). The communication descriptor. -! work(:) - X Buffer space. If not sufficient, will do +! work(:) - real Buffer space. If not sufficient, will do ! our own internal allocation. ! info - integer. return code. ! data - integer which list is to be used to exchange data @@ -236,7 +237,7 @@ subroutine psi_sswapidxm(iictxt,iicomm,flag,n,beta,y,idx, & proc_to_comm = idx(pnti+psb_proc_id_) nerv = idx(pnti+psb_n_elem_recv_) nesd = idx(pnti+nerv+psb_n_elem_send_) - prcid(proc_to_comm) = psb_get_rank(ictxt,proc_to_comm) + prcid(proc_to_comm) = psb_get_mpi_rank(ictxt,proc_to_comm) brvidx(proc_to_comm) = rcv_pt rvsz(proc_to_comm) = n*nerv @@ -349,7 +350,7 @@ subroutine psi_sswapidxm(iictxt,iicomm,flag,n,beta,y,idx, & proc_to_comm = idx(pnti+psb_proc_id_) nerv = idx(pnti+psb_n_elem_recv_) nesd = idx(pnti+nerv+psb_n_elem_send_) - prcid(i) = psb_get_rank(ictxt,proc_to_comm) + prcid(i) = psb_get_mpi_rank(ictxt,proc_to_comm) if ((nerv>0).and.(proc_to_comm /= me)) then p2ptag = psb_real_swap_tag call mpi_irecv(rcvbuf(rcv_pt),n*nerv,& @@ -507,7 +508,7 @@ end subroutine psi_sswapidxm ! ! ! Subroutine: psi_sswapdatav -! Does the data exchange among processes. Essentially this is doing +! Implements the data exchange among processes. Essentially this is doing ! a variable all-to-all data exchange (ALLTOALLV in MPI parlance), but ! it is capable of pruning empty exchanges, which are very likely in out ! application environment. All the variants have the same structure @@ -523,6 +524,7 @@ end subroutine psi_sswapidxm ! Thus: for halo data exchange, the receive section is confined in the ! halo indices, and BETA=0, whereas for overlap exchange the receive section ! is scattered in the owned indices, and BETA=1. +! The first routine picks the desired exchange index list and passes it to the second. ! ! Arguments: ! flag - integer Choose the algorithm for data exchange: @@ -543,10 +545,10 @@ end subroutine psi_sswapidxm ! ! ! n - integer Number of columns in Y -! beta - X Choose overwrite or sum. -! y(:) - X The data area +! beta - real Choose overwrite or sum. +! y(:) - real The data area ! desc_a - type(psb_desc_type). The communication descriptor. -! work(:) - X Buffer space. If not sufficient, will do +! work(:) - real Buffer space. If not sufficient, will do ! our own internal allocation. ! info - integer. return code. ! data - integer which list is to be used to exchange data @@ -721,7 +723,7 @@ subroutine psi_sswapidxv(iictxt,iicomm,flag,beta,y,idx, & proc_to_comm = idx(pnti+psb_proc_id_) nerv = idx(pnti+psb_n_elem_recv_) nesd = idx(pnti+nerv+psb_n_elem_send_) - prcid(proc_to_comm) = psb_get_rank(ictxt,proc_to_comm) + prcid(proc_to_comm) = psb_get_mpi_rank(ictxt,proc_to_comm) brvidx(proc_to_comm) = rcv_pt rvsz(proc_to_comm) = nerv @@ -835,7 +837,7 @@ subroutine psi_sswapidxv(iictxt,iicomm,flag,beta,y,idx, & nerv = idx(pnti+psb_n_elem_recv_) nesd = idx(pnti+nerv+psb_n_elem_send_) - prcid(i) = psb_get_rank(ictxt,proc_to_comm) + prcid(i) = psb_get_mpi_rank(ictxt,proc_to_comm) if ((nerv>0).and.(proc_to_comm /= me)) then p2ptag = psb_real_swap_tag call mpi_irecv(rcvbuf(rcv_pt),nerv,& diff --git a/base/comm/internals/psi_sswaptran.F90 b/base/comm/internals/psi_sswaptran.F90 index 0616ee6c..cb3ccc75 100644 --- a/base/comm/internals/psi_sswaptran.F90 +++ b/base/comm/internals/psi_sswaptran.F90 @@ -32,8 +32,8 @@ ! ! File: psi_sswaptran.F90 ! -! Subroutine: psi_sswaptranm -! Does the data exchange among processes. This is similar to Xswapdata, but +! Subroutine: psi_sswaptran_vect +! Implements the data exchange among processes. This is similar to Xswapdata, but ! the list is read "in reverse", i.e. indices that are normally SENT are used ! for the RECEIVE part and vice-versa. This is the basic data exchange operation ! for doing the product of a sparse matrix by a vector. @@ -47,12 +47,16 @@ ! C complex(psb_spk_) ! Z complex(psb_dpk_) ! Basically the operation is as follows: on each process, we identify -! sections SND(Y) and RCV(Y); then we do a SEND(PACK(SND(Y))); -! then we receive, and we do an update with Y = UNPACK(RCV(Y)) + BETA * Y -! but only on the elements involved in the UNPACK operation. +! sections SND(Y) and RCV(Y); then we do a SEND(PACK(GTH(SND(Y)))); +! then we receive, and we do an update with Y = SCT(RCV(Y)) + BETA * Y +! but only on the elements involved in the SCT operation. ! Thus: for halo data exchange, the receive section is confined in the ! halo indices, and BETA=0, whereas for overlap exchange the receive section ! is scattered in the owned indices, and BETA=1. +! The first routine picks the desired exchange index list and passes it to the second. +! This version works on encapsulated vectors, and uses their methods to do GTH and SCT, +! so that special versions (i.e. GPU vectors can override them +! ! ! Arguments: ! flag - integer Choose the algorithm for data exchange: @@ -73,10 +77,10 @@ ! ! ! n - integer Number of columns in Y -! beta - X Choose overwrite or sum. -! y(:,:) - X The data area -! desc_a - type(psb_desc_type). The communication descriptor. -! work(:) - X Buffer space. If not sufficient, will do +! beta - real Choose overwrite or sum. +! y - type(psb_s_vect_type) The data area +! desc_a - type(psb_desc_type). The communication descriptor. +! work(:) - real Buffer space. If not sufficient, will do ! our own internal allocation. ! info - integer. return code. ! data - integer which list is to be used to exchange data @@ -86,13 +90,6 @@ ! psb_comm_ovrl_ use ovrl_index ! psb_comm_mov_ use ovr_mst_idx ! -! -! -! Subroutine: psi_sswaptran_vect -! Data exchange among processes. -! -! Takes care of Y an exanspulated vector. -! ! subroutine psi_sswaptran_vect(flag,beta,y,desc_a,work,info,data) @@ -171,7 +168,7 @@ end subroutine psi_sswaptran_vect ! Subroutine: psi_stran_vidx_vect ! Data exchange among processes. ! -! Takes care of Y an exanspulated vector. Relies on the gather/scatter methods +! Takes care of Y an encapsulated vector. Relies on the gather/scatter methods ! of vectors. ! ! The real workhorse: the outer routine will only choose the index list @@ -269,7 +266,7 @@ subroutine psi_stran_vidx_vect(iictxt,iicomm,flag,beta,y,idx,& snd_pt = 1+pnti+nerv+psb_n_elem_send_ rcv_pt = 1+pnti+psb_n_elem_recv_ - prcid(i) = psb_get_rank(ictxt,proc_to_comm) + prcid(i) = psb_get_mpi_rank(ictxt,proc_to_comm) if ((nesd>0).and.(proc_to_comm /= me)) then if (debug) write(*,*) me,'Posting receive from',prcid(i),rcv_pt call mpi_irecv(y%combuf(snd_pt),nesd,& @@ -436,10 +433,10 @@ end subroutine psi_stran_vidx_vect ! ! ! -! Subroutine: psi_sswaptran_vect +! Subroutine: psi_sswaptran_multivect ! Data exchange among processes. ! -! Takes care of Y an encaspulated vector. +! Takes care of Y an encaspulated multivector. ! ! subroutine psi_sswaptran_multivect(flag,beta,y,desc_a,work,info,data) @@ -616,7 +613,7 @@ subroutine psi_stran_vidx_multivect(iictxt,iicomm,flag,beta,y,idx,& proc_to_comm = idx%v(pnti+psb_proc_id_) nerv = idx%v(pnti+psb_n_elem_recv_) nesd = idx%v(pnti+nerv+psb_n_elem_send_) - prcid(i) = psb_get_rank(ictxt,proc_to_comm) + prcid(i) = psb_get_mpi_rank(ictxt,proc_to_comm) if ((nesd>0).and.(proc_to_comm /= me)) then if (debug) write(*,*) me,'Posting receive from',prcid(i),snd_pt call mpi_irecv(y%combuf(snd_pt),n*nesd,& diff --git a/base/comm/internals/psi_sswaptran_a.F90 b/base/comm/internals/psi_sswaptran_a.F90 index 983a8457..f0f82965 100644 --- a/base/comm/internals/psi_sswaptran_a.F90 +++ b/base/comm/internals/psi_sswaptran_a.F90 @@ -33,7 +33,7 @@ ! File: psi_sswaptran.F90 ! ! Subroutine: psi_sswaptranm -! Does the data exchange among processes. This is similar to Xswapdata, but +! Implements the data exchange among processes. This is similar to Xswapdata, but ! the list is read "in reverse", i.e. indices that are normally SENT are used ! for the RECEIVE part and vice-versa. This is the basic data exchange operation ! for doing the product of a sparse matrix by a vector. @@ -53,6 +53,7 @@ ! Thus: for halo data exchange, the receive section is confined in the ! halo indices, and BETA=0, whereas for overlap exchange the receive section ! is scattered in the owned indices, and BETA=1. +! The first routine picks the desired exchange index list and passes it to the second. ! ! Arguments: ! flag - integer Choose the algorithm for data exchange: @@ -73,10 +74,10 @@ ! ! ! n - integer Number of columns in Y -! beta - X Choose overwrite or sum. -! y(:,:) - X The data area +! beta - real Choose overwrite or sum. +! y(:,:) - real The data area ! desc_a - type(psb_desc_type). The communication descriptor. -! work(:) - X Buffer space. If not sufficient, will do +! work(:) - real Buffer space. If not sufficient, will do ! our own internal allocation. ! info - integer. return code. ! data - integer which list is to be used to exchange data @@ -241,7 +242,7 @@ subroutine psi_stranidxm(iictxt,iicomm,flag,n,beta,y,idx,& proc_to_comm = idx(pnti+psb_proc_id_) nerv = idx(pnti+psb_n_elem_recv_) nesd = idx(pnti+nerv+psb_n_elem_send_) - prcid(proc_to_comm) = psb_get_rank(ictxt,proc_to_comm) + prcid(proc_to_comm) = psb_get_mpi_rank(ictxt,proc_to_comm) brvidx(proc_to_comm) = rcv_pt rvsz(proc_to_comm) = n*nerv @@ -359,7 +360,7 @@ subroutine psi_stranidxm(iictxt,iicomm,flag,n,beta,y,idx,& proc_to_comm = idx(pnti+psb_proc_id_) nerv = idx(pnti+psb_n_elem_recv_) nesd = idx(pnti+nerv+psb_n_elem_send_) - prcid(i) = psb_get_rank(ictxt,proc_to_comm) + prcid(i) = psb_get_mpi_rank(ictxt,proc_to_comm) if ((nesd>0).and.(proc_to_comm /= me)) then p2ptag = psb_real_swap_tag call mpi_irecv(sndbuf(snd_pt),n*nesd,& @@ -516,7 +517,7 @@ end subroutine psi_stranidxm ! ! ! Subroutine: psi_sswaptranv -! Does the data exchange among processes. This is similar to Xswapdata, but +! Implements the data exchange among processes. This is similar to Xswapdata, but ! the list is read "in reverse", i.e. indices that are normally SENT are used ! for the RECEIVE part and vice-versa. This is the basic data exchange operation ! for doing the product of a sparse matrix by a vector. @@ -536,6 +537,7 @@ end subroutine psi_stranidxm ! Thus: for halo data exchange, the receive section is confined in the ! halo indices, and BETA=0, whereas for overlap exchange the receive section ! is scattered in the owned indices, and BETA=1. +! The first routine picks the desired exchange index list and passes it to the second. ! ! Arguments: ! flag - integer Choose the algorithm for data exchange: @@ -556,10 +558,10 @@ end subroutine psi_stranidxm ! ! ! n - integer Number of columns in Y -! beta - X Choose overwrite or sum. -! y(:) - X The data area +! beta - real Choose overwrite or sum. +! y(:) - real The data area ! desc_a - type(psb_desc_type). The communication descriptor. -! work(:) - X Buffer space. If not sufficient, will do +! work(:) - real Buffer space. If not sufficient, will do ! our own internal allocation. ! info - integer. return code. ! data - integer which list is to be used to exchange data @@ -734,7 +736,7 @@ subroutine psi_stranidxv(iictxt,iicomm,flag,beta,y,idx,& proc_to_comm = idx(pnti+psb_proc_id_) nerv = idx(pnti+psb_n_elem_recv_) nesd = idx(pnti+nerv+psb_n_elem_send_) - prcid(proc_to_comm) = psb_get_rank(ictxt,proc_to_comm) + prcid(proc_to_comm) = psb_get_mpi_rank(ictxt,proc_to_comm) brvidx(proc_to_comm) = rcv_pt rvsz(proc_to_comm) = nerv @@ -852,7 +854,7 @@ subroutine psi_stranidxv(iictxt,iicomm,flag,beta,y,idx,& proc_to_comm = idx(pnti+psb_proc_id_) nerv = idx(pnti+psb_n_elem_recv_) nesd = idx(pnti+nerv+psb_n_elem_send_) - prcid(i) = psb_get_rank(ictxt,proc_to_comm) + prcid(i) = psb_get_mpi_rank(ictxt,proc_to_comm) if ((nesd>0).and.(proc_to_comm /= me)) then p2ptag = psb_real_swap_tag call mpi_irecv(sndbuf(snd_pt),nesd,& diff --git a/base/comm/internals/psi_zovrl_restr.f90 b/base/comm/internals/psi_zovrl_restr.f90 index bd83e618..e52232e7 100644 --- a/base/comm/internals/psi_zovrl_restr.f90 +++ b/base/comm/internals/psi_zovrl_restr.f90 @@ -28,8 +28,13 @@ ! ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE ! POSSIBILITY OF SUCH DAMAGE. ! +! +! Subroutine: psi_zovrl_restr +! These subroutines restore the overlap region of a vector; they are used +! for the transpose matrix-vector product when there is a nonempty overlap. +! +! ! - subroutine psi_zovrl_restr_vect(x,xs,desc_a,info) use psi_mod, psi_protect_name => psi_zovrl_restr_vect use psb_z_base_vect_mod diff --git a/base/comm/internals/psi_zovrl_restr_a.f90 b/base/comm/internals/psi_zovrl_restr_a.f90 index a0a22a31..379efdcb 100644 --- a/base/comm/internals/psi_zovrl_restr_a.f90 +++ b/base/comm/internals/psi_zovrl_restr_a.f90 @@ -28,6 +28,11 @@ ! ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE ! POSSIBILITY OF SUCH DAMAGE. ! +! +! Subroutine: psi_zovrl_restr +! These subroutines restore the overlap region of a vector; they are used +! for the transpose matrix-vector product when there is a nonempty overlap. +! ! subroutine psi_zovrl_restrr1(x,xs,desc_a,info) use psi_mod, psi_protect_name => psi_zovrl_restrr1 diff --git a/base/comm/internals/psi_zovrl_save.f90 b/base/comm/internals/psi_zovrl_save.f90 index 16238573..acf65181 100644 --- a/base/comm/internals/psi_zovrl_save.f90 +++ b/base/comm/internals/psi_zovrl_save.f90 @@ -28,6 +28,11 @@ ! ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE ! POSSIBILITY OF SUCH DAMAGE. ! +! +! Subroutine: psi_zovrl_save +! These subroutines save the overlap region of a vector; they are used +! for the transpose matrix-vector product when there is a nonempty overlap. +! ! subroutine psi_zovrl_save_vect(x,xs,desc_a,info) use psi_mod, psi_protect_name => psi_zovrl_save_vect diff --git a/base/comm/internals/psi_zovrl_save_a.f90 b/base/comm/internals/psi_zovrl_save_a.f90 index 32d5d212..1e8fdb89 100644 --- a/base/comm/internals/psi_zovrl_save_a.f90 +++ b/base/comm/internals/psi_zovrl_save_a.f90 @@ -28,8 +28,12 @@ ! ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE ! POSSIBILITY OF SUCH DAMAGE. ! -! - +! +! +! Subroutine: psi_zovrl_save +! These subroutines save the overlap region of a vector; they are used +! for the transpose matrix-vector product when there is a nonempty overlap. +! subroutine psi_zovrl_saver1(x,xs,desc_a,info) use psi_mod, psi_protect_name => psi_zovrl_saver1 diff --git a/base/comm/internals/psi_zovrl_upd.f90 b/base/comm/internals/psi_zovrl_upd.f90 index 83fcf702..cd7ea0de 100644 --- a/base/comm/internals/psi_zovrl_upd.f90 +++ b/base/comm/internals/psi_zovrl_upd.f90 @@ -28,8 +28,14 @@ ! ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE ! POSSIBILITY OF SUCH DAMAGE. ! +! +! Subroutine: psi_zovrl_update +! These subroutines update the overlap region of a vector; they are used +! for the transpose matrix-vector product when there is a nonempty overlap, +! or for the application of Additive Schwarz preconditioners. +! +! ! - subroutine psi_zovrl_upd_vect(x,desc_a,update,info) use psi_mod, psi_protect_name => psi_zovrl_upd_vect use psb_realloc_mod diff --git a/base/comm/internals/psi_zovrl_upd_a.f90 b/base/comm/internals/psi_zovrl_upd_a.f90 index b149addb..9ea2fbae 100644 --- a/base/comm/internals/psi_zovrl_upd_a.f90 +++ b/base/comm/internals/psi_zovrl_upd_a.f90 @@ -28,6 +28,12 @@ ! ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE ! POSSIBILITY OF SUCH DAMAGE. ! +! +! Subroutine: psi_zovrl_update +! These subroutines update the overlap region of a vector; they are used +! for the transpose matrix-vector product when there is a nonempty overlap, +! or for the application of Additive Schwarz preconditioners. +! ! subroutine psi_zovrl_updr1(x,desc_a,update,info) use psi_mod, psi_protect_name => psi_zovrl_updr1 diff --git a/base/comm/internals/psi_zswapdata.F90 b/base/comm/internals/psi_zswapdata.F90 index 7f8c3357..7d34012e 100644 --- a/base/comm/internals/psi_zswapdata.F90 +++ b/base/comm/internals/psi_zswapdata.F90 @@ -32,8 +32,10 @@ ! ! File: psi_zswapdata.F90 ! -! Subroutine: psi_zswapdatam -! Does the data exchange among processes. Essentially this is doing +! +! +! Subroutine: psi_zswapdata_vect +! Implements the data exchange among processes. Essentially this is doing ! a variable all-to-all data exchange (ALLTOALLV in MPI parlance), but ! it is capable of pruning empty exchanges, which are very likely in out ! application environment. All the variants have the same structure @@ -43,12 +45,15 @@ ! C complex(psb_spk_) ! Z complex(psb_dpk_) ! Basically the operation is as follows: on each process, we identify -! sections SND(Y) and RCV(Y); then we do a send on (PACK(SND(Y))); -! then we receive, and we do an update with Y = UNPACK(RCV(Y)) + BETA * Y -! but only on the elements involved in the UNPACK operation. +! sections SND(Y) and RCV(Y); then we do a SEND(PACK(GTH(SND(Y)))); +! then we receive, and we do an update with Y = SCT(RCV(Y)) + BETA * Y +! but only on the elements involved in the SCT operation. ! Thus: for halo data exchange, the receive section is confined in the ! halo indices, and BETA=0, whereas for overlap exchange the receive section ! is scattered in the owned indices, and BETA=1. +! The first routine picks the desired exchange index list and passes it to the second. +! This version works on encapsulated vectors, and uses their methods to do GTH and SCT, +! so that special versions (i.e. GPU vectors can override them ! ! Arguments: ! flag - integer Choose the algorithm for data exchange: @@ -69,10 +74,10 @@ ! ! ! n - integer Number of columns in Y -! beta - X Choose overwrite or sum. -! y(:,:) - X The data area +! beta - complex Choose overwrite or sum. +! y - type(psb_@x@_vect_type) The data area ! desc_a - type(psb_desc_type). The communication descriptor. -! work(:) - X Buffer space. If not sufficient, will do +! work(:) - complex Buffer space. If not sufficient, will do ! our own internal allocation. ! info - integer. return code. ! data - integer which list is to be used to exchange data @@ -83,14 +88,6 @@ ! psb_comm_mov_ use ovr_mst_idx ! ! -! -! -! Subroutine: psi_zswapdata_vect -! Data exchange among processes. -! -! Takes care of Y an exanspulated vector. -! -! ! subroutine psi_zswapdata_vect(flag,beta,y,desc_a,work,info,data) @@ -263,7 +260,7 @@ subroutine psi_zswap_vidx_vect(iictxt,iicomm,flag,beta,y,idx, & nesd = idx%v(pnti+nerv+psb_n_elem_send_) rcv_pt = 1+pnti+psb_n_elem_recv_ - prcid(i) = psb_get_rank(ictxt,proc_to_comm) + prcid(i) = psb_get_mpi_rank(ictxt,proc_to_comm) if ((nerv>0).and.(proc_to_comm /= me)) then if (debug) write(*,*) me,'Posting receive from',prcid(i),rcv_pt p2ptag = psb_dcomplex_swap_tag @@ -426,7 +423,7 @@ end subroutine psi_zswap_vidx_vect ! Subroutine: psi_zswapdata_multivect ! Data exchange among processes. ! -! Takes care of Y an encaspulated vector. +! Takes care of Y an encaspulated multivector. ! ! subroutine psi_zswapdata_multivect(flag,beta,y,desc_a,work,info,data) @@ -602,7 +599,7 @@ subroutine psi_zswap_vidx_multivect(iictxt,iicomm,flag,beta,y,idx, & proc_to_comm = idx%v(pnti+psb_proc_id_) nerv = idx%v(pnti+psb_n_elem_recv_) nesd = idx%v(pnti+nerv+psb_n_elem_send_) - prcid(i) = psb_get_rank(ictxt,proc_to_comm) + prcid(i) = psb_get_mpi_rank(ictxt,proc_to_comm) if ((nerv>0).and.(proc_to_comm /= me)) then if (debug) write(*,*) me,'Posting receive from',prcid(i),rcv_pt p2ptag = psb_dcomplex_swap_tag diff --git a/base/comm/internals/psi_zswapdata_a.F90 b/base/comm/internals/psi_zswapdata_a.F90 index 3a1ab111..6e821f4f 100644 --- a/base/comm/internals/psi_zswapdata_a.F90 +++ b/base/comm/internals/psi_zswapdata_a.F90 @@ -33,9 +33,9 @@ ! File: psi_zswapdata.F90 ! ! Subroutine: psi_zswapdatam -! Does the data exchange among processes. Essentially this is doing +! Implements the data exchange among processes. Essentially this is doing ! a variable all-to-all data exchange (ALLTOALLV in MPI parlance), but -! it is capable of pruning empty exchanges, which are very likely in out +! it is capable of pruning empty exchanges, which are very likely in our ! application environment. All the variants have the same structure ! In all these subroutines X may be: I Integer ! S real(psb_spk_) @@ -49,6 +49,7 @@ ! Thus: for halo data exchange, the receive section is confined in the ! halo indices, and BETA=0, whereas for overlap exchange the receive section ! is scattered in the owned indices, and BETA=1. +! The first routine picks the desired exchange index list and passes it to the second. ! ! Arguments: ! flag - integer Choose the algorithm for data exchange: @@ -69,10 +70,10 @@ ! ! ! n - integer Number of columns in Y -! beta - X Choose overwrite or sum. -! y(:,:) - X The data area +! beta - complex Choose overwrite or sum. +! y(:,:) - complex The data area ! desc_a - type(psb_desc_type). The communication descriptor. -! work(:) - X Buffer space. If not sufficient, will do +! work(:) - complex Buffer space. If not sufficient, will do ! our own internal allocation. ! info - integer. return code. ! data - integer which list is to be used to exchange data @@ -236,7 +237,7 @@ subroutine psi_zswapidxm(iictxt,iicomm,flag,n,beta,y,idx, & proc_to_comm = idx(pnti+psb_proc_id_) nerv = idx(pnti+psb_n_elem_recv_) nesd = idx(pnti+nerv+psb_n_elem_send_) - prcid(proc_to_comm) = psb_get_rank(ictxt,proc_to_comm) + prcid(proc_to_comm) = psb_get_mpi_rank(ictxt,proc_to_comm) brvidx(proc_to_comm) = rcv_pt rvsz(proc_to_comm) = n*nerv @@ -349,7 +350,7 @@ subroutine psi_zswapidxm(iictxt,iicomm,flag,n,beta,y,idx, & proc_to_comm = idx(pnti+psb_proc_id_) nerv = idx(pnti+psb_n_elem_recv_) nesd = idx(pnti+nerv+psb_n_elem_send_) - prcid(i) = psb_get_rank(ictxt,proc_to_comm) + prcid(i) = psb_get_mpi_rank(ictxt,proc_to_comm) if ((nerv>0).and.(proc_to_comm /= me)) then p2ptag = psb_dcomplex_swap_tag call mpi_irecv(rcvbuf(rcv_pt),n*nerv,& @@ -507,7 +508,7 @@ end subroutine psi_zswapidxm ! ! ! Subroutine: psi_zswapdatav -! Does the data exchange among processes. Essentially this is doing +! Implements the data exchange among processes. Essentially this is doing ! a variable all-to-all data exchange (ALLTOALLV in MPI parlance), but ! it is capable of pruning empty exchanges, which are very likely in out ! application environment. All the variants have the same structure @@ -523,6 +524,7 @@ end subroutine psi_zswapidxm ! Thus: for halo data exchange, the receive section is confined in the ! halo indices, and BETA=0, whereas for overlap exchange the receive section ! is scattered in the owned indices, and BETA=1. +! The first routine picks the desired exchange index list and passes it to the second. ! ! Arguments: ! flag - integer Choose the algorithm for data exchange: @@ -543,10 +545,10 @@ end subroutine psi_zswapidxm ! ! ! n - integer Number of columns in Y -! beta - X Choose overwrite or sum. -! y(:) - X The data area +! beta - complex Choose overwrite or sum. +! y(:) - complex The data area ! desc_a - type(psb_desc_type). The communication descriptor. -! work(:) - X Buffer space. If not sufficient, will do +! work(:) - complex Buffer space. If not sufficient, will do ! our own internal allocation. ! info - integer. return code. ! data - integer which list is to be used to exchange data @@ -721,7 +723,7 @@ subroutine psi_zswapidxv(iictxt,iicomm,flag,beta,y,idx, & proc_to_comm = idx(pnti+psb_proc_id_) nerv = idx(pnti+psb_n_elem_recv_) nesd = idx(pnti+nerv+psb_n_elem_send_) - prcid(proc_to_comm) = psb_get_rank(ictxt,proc_to_comm) + prcid(proc_to_comm) = psb_get_mpi_rank(ictxt,proc_to_comm) brvidx(proc_to_comm) = rcv_pt rvsz(proc_to_comm) = nerv @@ -835,7 +837,7 @@ subroutine psi_zswapidxv(iictxt,iicomm,flag,beta,y,idx, & nerv = idx(pnti+psb_n_elem_recv_) nesd = idx(pnti+nerv+psb_n_elem_send_) - prcid(i) = psb_get_rank(ictxt,proc_to_comm) + prcid(i) = psb_get_mpi_rank(ictxt,proc_to_comm) if ((nerv>0).and.(proc_to_comm /= me)) then p2ptag = psb_dcomplex_swap_tag call mpi_irecv(rcvbuf(rcv_pt),nerv,& diff --git a/base/comm/internals/psi_zswaptran.F90 b/base/comm/internals/psi_zswaptran.F90 index 2f7b93e4..c78a5e1a 100644 --- a/base/comm/internals/psi_zswaptran.F90 +++ b/base/comm/internals/psi_zswaptran.F90 @@ -32,8 +32,8 @@ ! ! File: psi_zswaptran.F90 ! -! Subroutine: psi_zswaptranm -! Does the data exchange among processes. This is similar to Xswapdata, but +! Subroutine: psi_zswaptran_vect +! Implements the data exchange among processes. This is similar to Xswapdata, but ! the list is read "in reverse", i.e. indices that are normally SENT are used ! for the RECEIVE part and vice-versa. This is the basic data exchange operation ! for doing the product of a sparse matrix by a vector. @@ -47,12 +47,16 @@ ! C complex(psb_spk_) ! Z complex(psb_dpk_) ! Basically the operation is as follows: on each process, we identify -! sections SND(Y) and RCV(Y); then we do a SEND(PACK(SND(Y))); -! then we receive, and we do an update with Y = UNPACK(RCV(Y)) + BETA * Y -! but only on the elements involved in the UNPACK operation. +! sections SND(Y) and RCV(Y); then we do a SEND(PACK(GTH(SND(Y)))); +! then we receive, and we do an update with Y = SCT(RCV(Y)) + BETA * Y +! but only on the elements involved in the SCT operation. ! Thus: for halo data exchange, the receive section is confined in the ! halo indices, and BETA=0, whereas for overlap exchange the receive section ! is scattered in the owned indices, and BETA=1. +! The first routine picks the desired exchange index list and passes it to the second. +! This version works on encapsulated vectors, and uses their methods to do GTH and SCT, +! so that special versions (i.e. GPU vectors can override them +! ! ! Arguments: ! flag - integer Choose the algorithm for data exchange: @@ -73,10 +77,10 @@ ! ! ! n - integer Number of columns in Y -! beta - X Choose overwrite or sum. -! y(:,:) - X The data area -! desc_a - type(psb_desc_type). The communication descriptor. -! work(:) - X Buffer space. If not sufficient, will do +! beta - complex Choose overwrite or sum. +! y - type(psb_z_vect_type) The data area +! desc_a - type(psb_desc_type). The communication descriptor. +! work(:) - complex Buffer space. If not sufficient, will do ! our own internal allocation. ! info - integer. return code. ! data - integer which list is to be used to exchange data @@ -86,13 +90,6 @@ ! psb_comm_ovrl_ use ovrl_index ! psb_comm_mov_ use ovr_mst_idx ! -! -! -! Subroutine: psi_zswaptran_vect -! Data exchange among processes. -! -! Takes care of Y an exanspulated vector. -! ! subroutine psi_zswaptran_vect(flag,beta,y,desc_a,work,info,data) @@ -171,7 +168,7 @@ end subroutine psi_zswaptran_vect ! Subroutine: psi_ztran_vidx_vect ! Data exchange among processes. ! -! Takes care of Y an exanspulated vector. Relies on the gather/scatter methods +! Takes care of Y an encapsulated vector. Relies on the gather/scatter methods ! of vectors. ! ! The real workhorse: the outer routine will only choose the index list @@ -269,7 +266,7 @@ subroutine psi_ztran_vidx_vect(iictxt,iicomm,flag,beta,y,idx,& snd_pt = 1+pnti+nerv+psb_n_elem_send_ rcv_pt = 1+pnti+psb_n_elem_recv_ - prcid(i) = psb_get_rank(ictxt,proc_to_comm) + prcid(i) = psb_get_mpi_rank(ictxt,proc_to_comm) if ((nesd>0).and.(proc_to_comm /= me)) then if (debug) write(*,*) me,'Posting receive from',prcid(i),rcv_pt call mpi_irecv(y%combuf(snd_pt),nesd,& @@ -436,10 +433,10 @@ end subroutine psi_ztran_vidx_vect ! ! ! -! Subroutine: psi_zswaptran_vect +! Subroutine: psi_zswaptran_multivect ! Data exchange among processes. ! -! Takes care of Y an encaspulated vector. +! Takes care of Y an encaspulated multivector. ! ! subroutine psi_zswaptran_multivect(flag,beta,y,desc_a,work,info,data) @@ -616,7 +613,7 @@ subroutine psi_ztran_vidx_multivect(iictxt,iicomm,flag,beta,y,idx,& proc_to_comm = idx%v(pnti+psb_proc_id_) nerv = idx%v(pnti+psb_n_elem_recv_) nesd = idx%v(pnti+nerv+psb_n_elem_send_) - prcid(i) = psb_get_rank(ictxt,proc_to_comm) + prcid(i) = psb_get_mpi_rank(ictxt,proc_to_comm) if ((nesd>0).and.(proc_to_comm /= me)) then if (debug) write(*,*) me,'Posting receive from',prcid(i),snd_pt call mpi_irecv(y%combuf(snd_pt),n*nesd,& diff --git a/base/comm/internals/psi_zswaptran_a.F90 b/base/comm/internals/psi_zswaptran_a.F90 index fa694378..aaf305ac 100644 --- a/base/comm/internals/psi_zswaptran_a.F90 +++ b/base/comm/internals/psi_zswaptran_a.F90 @@ -33,7 +33,7 @@ ! File: psi_zswaptran.F90 ! ! Subroutine: psi_zswaptranm -! Does the data exchange among processes. This is similar to Xswapdata, but +! Implements the data exchange among processes. This is similar to Xswapdata, but ! the list is read "in reverse", i.e. indices that are normally SENT are used ! for the RECEIVE part and vice-versa. This is the basic data exchange operation ! for doing the product of a sparse matrix by a vector. @@ -53,6 +53,7 @@ ! Thus: for halo data exchange, the receive section is confined in the ! halo indices, and BETA=0, whereas for overlap exchange the receive section ! is scattered in the owned indices, and BETA=1. +! The first routine picks the desired exchange index list and passes it to the second. ! ! Arguments: ! flag - integer Choose the algorithm for data exchange: @@ -73,10 +74,10 @@ ! ! ! n - integer Number of columns in Y -! beta - X Choose overwrite or sum. -! y(:,:) - X The data area +! beta - complex Choose overwrite or sum. +! y(:,:) - complex The data area ! desc_a - type(psb_desc_type). The communication descriptor. -! work(:) - X Buffer space. If not sufficient, will do +! work(:) - complex Buffer space. If not sufficient, will do ! our own internal allocation. ! info - integer. return code. ! data - integer which list is to be used to exchange data @@ -241,7 +242,7 @@ subroutine psi_ztranidxm(iictxt,iicomm,flag,n,beta,y,idx,& proc_to_comm = idx(pnti+psb_proc_id_) nerv = idx(pnti+psb_n_elem_recv_) nesd = idx(pnti+nerv+psb_n_elem_send_) - prcid(proc_to_comm) = psb_get_rank(ictxt,proc_to_comm) + prcid(proc_to_comm) = psb_get_mpi_rank(ictxt,proc_to_comm) brvidx(proc_to_comm) = rcv_pt rvsz(proc_to_comm) = n*nerv @@ -359,7 +360,7 @@ subroutine psi_ztranidxm(iictxt,iicomm,flag,n,beta,y,idx,& proc_to_comm = idx(pnti+psb_proc_id_) nerv = idx(pnti+psb_n_elem_recv_) nesd = idx(pnti+nerv+psb_n_elem_send_) - prcid(i) = psb_get_rank(ictxt,proc_to_comm) + prcid(i) = psb_get_mpi_rank(ictxt,proc_to_comm) if ((nesd>0).and.(proc_to_comm /= me)) then p2ptag = psb_dcomplex_swap_tag call mpi_irecv(sndbuf(snd_pt),n*nesd,& @@ -516,7 +517,7 @@ end subroutine psi_ztranidxm ! ! ! Subroutine: psi_zswaptranv -! Does the data exchange among processes. This is similar to Xswapdata, but +! Implements the data exchange among processes. This is similar to Xswapdata, but ! the list is read "in reverse", i.e. indices that are normally SENT are used ! for the RECEIVE part and vice-versa. This is the basic data exchange operation ! for doing the product of a sparse matrix by a vector. @@ -536,6 +537,7 @@ end subroutine psi_ztranidxm ! Thus: for halo data exchange, the receive section is confined in the ! halo indices, and BETA=0, whereas for overlap exchange the receive section ! is scattered in the owned indices, and BETA=1. +! The first routine picks the desired exchange index list and passes it to the second. ! ! Arguments: ! flag - integer Choose the algorithm for data exchange: @@ -556,10 +558,10 @@ end subroutine psi_ztranidxm ! ! ! n - integer Number of columns in Y -! beta - X Choose overwrite or sum. -! y(:) - X The data area +! beta - complex Choose overwrite or sum. +! y(:) - complex The data area ! desc_a - type(psb_desc_type). The communication descriptor. -! work(:) - X Buffer space. If not sufficient, will do +! work(:) - complex Buffer space. If not sufficient, will do ! our own internal allocation. ! info - integer. return code. ! data - integer which list is to be used to exchange data @@ -734,7 +736,7 @@ subroutine psi_ztranidxv(iictxt,iicomm,flag,beta,y,idx,& proc_to_comm = idx(pnti+psb_proc_id_) nerv = idx(pnti+psb_n_elem_recv_) nesd = idx(pnti+nerv+psb_n_elem_send_) - prcid(proc_to_comm) = psb_get_rank(ictxt,proc_to_comm) + prcid(proc_to_comm) = psb_get_mpi_rank(ictxt,proc_to_comm) brvidx(proc_to_comm) = rcv_pt rvsz(proc_to_comm) = nerv @@ -852,7 +854,7 @@ subroutine psi_ztranidxv(iictxt,iicomm,flag,beta,y,idx,& proc_to_comm = idx(pnti+psb_proc_id_) nerv = idx(pnti+psb_n_elem_recv_) nesd = idx(pnti+nerv+psb_n_elem_send_) - prcid(i) = psb_get_rank(ictxt,proc_to_comm) + prcid(i) = psb_get_mpi_rank(ictxt,proc_to_comm) if ((nesd>0).and.(proc_to_comm /= me)) then p2ptag = psb_dcomplex_swap_tag call mpi_irecv(sndbuf(snd_pt),nesd,& diff --git a/base/comm/psb_cgather.f90 b/base/comm/psb_cgather.f90 index d4e675c2..f4ed3f4a 100644 --- a/base/comm/psb_cgather.f90 +++ b/base/comm/psb_cgather.f90 @@ -31,14 +31,14 @@ ! ! File: psb_cgather.f90 ! -! Subroutine: psb_cgatherm -! This subroutine gathers pieces of a distributed dense matrix into a local one. +! Subroutine: psb_cgather_vect +! This subroutine gathers pieces of a distributed vector into a local one. ! ! Arguments: -! globx - complex,dimension(:,:). The local matrix into which gather +! globx - complex,dimension(:). The local matrix into which gather ! the distributed pieces. -! locx - complex,dimension(:,:). The local piece of the distributed -! matrix to be gathered. +! locx - type(psb_c_vect_type@ The local piece of the distributed +! vector to be gathered. ! desc_a - type(psb_desc_type). The communication descriptor. ! info - integer. Error code. ! iroot - integer. The process that has to own the @@ -159,6 +159,8 @@ subroutine psb_cgather_vect(globx, locx, desc_a, info, iroot) end subroutine psb_cgather_vect +! Subroutine: psb_cgather_multivect +! This subroutine gathers pieces of a distributed multivector into a local one. subroutine psb_cgather_multivect(globx, locx, desc_a, info, iroot) use psb_base_mod, psb_protect_name => psb_cgather_multivect diff --git a/base/comm/psb_cgather_a.f90 b/base/comm/psb_cgather_a.f90 index 09e35678..5f75abd6 100644 --- a/base/comm/psb_cgather_a.f90 +++ b/base/comm/psb_cgather_a.f90 @@ -31,7 +31,7 @@ ! ! File: psb_cgather.f90 ! -! Subroutine: psb_cgatherm +! Subroutine: psb_cgather ! This subroutine gathers pieces of a distributed dense matrix into a local one. ! ! Arguments: diff --git a/base/comm/psb_chalo.f90 b/base/comm/psb_chalo.f90 index e34168c6..ad483a51 100644 --- a/base/comm/psb_chalo.f90 +++ b/base/comm/psb_chalo.f90 @@ -31,17 +31,17 @@ ! ! File: psb_chalo.f90 ! -! Subroutine: psb_chalom +! Subroutine: psb_chalo_vect ! This subroutine performs the exchange of the halo elements in a -! distributed dense matrix between all the processes. +! distributed vector between all the processes. ! ! Arguments: -! x - complex,dimension(:,:). The local part of the dense matrix. +! x - type(psb_c_vect_type) The local part of the vector ! desc_a - type(psb_desc_type). The communication descriptor. ! info - integer. Return code ! jx - integer(optional). The starting column of the global matrix. ! ik - integer(optional). The number of columns to gather. -! work - complex(optional). Work area. +! work - complex(optional). Work area. ! tran - character(optional). Transpose exchange. ! mode - integer(optional). Communication mode (see Swapdata) ! data - integer Which index list in desc_a should be used @@ -52,7 +52,6 @@ ! psb_comm_mov_ use ovr_mst_idx ! ! - subroutine psb_chalo_vect(x,desc_a,info,work,tran,mode,data) use psb_base_mod, psb_protect_name => psb_chalo_vect use psi_mod @@ -185,7 +184,28 @@ subroutine psb_chalo_vect(x,desc_a,info,work,tran,mode,data) return end subroutine psb_chalo_vect - +! +! Subroutine: psb_chalo_multivect +! This subroutine performs the exchange of the halo elements in a +! distributed multivector between all the processes. +! +! Arguments: +! x - type(psb_c_multivect_type) The local part of the multivector +! desc_a - type(psb_desc_type). The communication descriptor. +! info - integer. Return code +! jx - integer(optional). The starting column of the global matrix. +! ik - integer(optional). The number of columns to gather. +! work - complex(optional). Work area. +! tran - character(optional). Transpose exchange. +! mode - integer(optional). Communication mode (see Swapdata) +! data - integer Which index list in desc_a should be used +! to retrieve rows, default psb_comm_halo_ +! psb_comm_halo_ use halo_index +! psb_comm_ext_ use ext_index +! psb_comm_ovrl_ use ovrl_index +! psb_comm_mov_ use ovr_mst_idx +! +! subroutine psb_chalo_multivect(x,desc_a,info,work,tran,mode,data) use psb_base_mod, psb_protect_name => psb_chalo_multivect use psi_mod diff --git a/base/comm/psb_covrl.f90 b/base/comm/psb_covrl.f90 index f6155ffe..7ac851b6 100644 --- a/base/comm/psb_covrl.f90 +++ b/base/comm/psb_covrl.f90 @@ -32,12 +32,12 @@ ! ! File: psb_covrl.f90 ! -! Subroutine: psb_covrlm +! Subroutine: psb_covrl_vect ! This subroutine performs the exchange of the overlap elements in a -! distributed dense matrix between all the processes. +! distributed dense vector between all the processes. ! ! Arguments: -! x(:,:) - complex The local part of the dense matrix. +! x - type(psb_c_vect_type) The local part of the vector ! desc_a - type(psb_desc_type). The communication descriptor. ! info - integer. Return code. ! jx - integer(optional). The starting column of the global matrix @@ -180,7 +180,38 @@ subroutine psb_covrl_vect(x,desc_a,info,work,update,mode) return end subroutine psb_covrl_vect - +! +! Subroutine: psb_covrl_multivect +! This subroutine performs the exchange of the overlap elements in a +! distributed multivector between all the processes. +! +! Arguments: +! x - type(psb_c_vect_type) The local part of the multivector +! desc_a - type(psb_desc_type). The communication descriptor. +! info - integer. Return code. +! jx - integer(optional). The starting column of the global matrix +! ik - integer(optional). The number of columns to gather. +! work - complex(optional). A work area. +! update - integer(optional). Type of update: +! psb_none_ do nothing +! psb_sum_ sum of overlaps +! psb_avg_ average of overlaps +! mode - integer(optional). Choose the algorithm for data exchange: +! this is chosen through bit fields. +! - swap_mpi = iand(flag,psb_swap_mpi_) /= 0 +! - swap_sync = iand(flag,psb_swap_sync_) /= 0 +! - swap_send = iand(flag,psb_swap_send_) /= 0 +! - swap_recv = iand(flag,psb_swap_recv_) /= 0 +! - if (swap_mpi): use underlying MPI_ALLTOALLV. +! - if (swap_sync): use PSB_SND and PSB_RCV in +! synchronized pairs +! - if (swap_send .and. swap_recv): use mpi_irecv +! and mpi_send +! - if (swap_send): use psb_snd (but need another +! call with swap_recv to complete) +! - if (swap_recv): use psb_rcv (completing a +! previous call with swap_send) +! subroutine psb_covrl_multivect(x,desc_a,info,work,update,mode) use psb_base_mod, psb_protect_name => psb_covrl_multivect use psi_mod diff --git a/base/comm/psb_cscatter.F90 b/base/comm/psb_cscatter.F90 index 77036d04..7ac22a68 100644 --- a/base/comm/psb_cscatter.F90 +++ b/base/comm/psb_cscatter.F90 @@ -31,13 +31,13 @@ ! ! File: psb_cscatter.f90 ! -! Subroutine: psb_cscatterm -! This subroutine scatters a global matrix locally owned by one process -! into pieces that are local to alle the processes. +! Subroutine: psb_cscatter_vect +! This subroutine scatters a global vector locally owned by one process +! into pieces that are local to all the processes. ! ! Arguments: -! globx - complex,dimension(:,:). The global matrix to scatter. -! locx - complex,dimension(:,:). The local piece of the distributed matrix. +! globx - complex,dimension(:) The global matrix to scatter. +! locx - type(psb_c_vect_type) The local piece of the distributed matrix. ! desc_a - type(psb_desc_type). The communication descriptor. ! info - integer. Error code. ! iroot - integer(optional). The process that owns the global matrix. diff --git a/base/comm/psb_cscatter_a.F90 b/base/comm/psb_cscatter_a.F90 index 81e69be4..d16ae980 100644 --- a/base/comm/psb_cscatter_a.F90 +++ b/base/comm/psb_cscatter_a.F90 @@ -33,7 +33,7 @@ ! ! Subroutine: psb_cscatterm ! This subroutine scatters a global matrix locally owned by one process -! into pieces that are local to alle the processes. +! into pieces that are local to all the processes. ! ! Arguments: ! globx - complex,dimension(:,:). The global matrix to scatter. @@ -107,8 +107,8 @@ subroutine psb_cscatterm(globx, locx, desc_a, info, root) m = desc_a%get_global_rows() n = desc_a%get_global_cols() - icomm = psb_get_mpicomm(ictxt) - myrank = psb_get_rank(ictxt,me) + icomm = psb_get_mpi_comm(ictxt) + myrank = psb_get_mpi_rank(ictxt,me) if (iroot==-1) then lda_globx = size(globx, 1) @@ -159,7 +159,7 @@ subroutine psb_cscatterm(globx, locx, desc_a, info, root) end do else - rootrank = psb_get_rank(ictxt,iroot) + rootrank = psb_get_mpi_rank(ictxt,iroot) ! ! This is potentially unsafe when IPK=8 ! But then, IPK=8 is highly experimental anyway. @@ -278,7 +278,7 @@ end subroutine psb_cscatterm ! Subroutine: psb_cscatterv ! This subroutine scatters a global vector locally owned by one process -! into pieces that are local to alle the processes. +! into pieces that are local to all the processes. ! ! Arguments: ! globx - complex,dimension(:). The global vector to scatter. @@ -347,8 +347,8 @@ subroutine psb_cscatterv(globx, locx, desc_a, info, root) iroot = psb_root_ end if - icomm = psb_get_mpicomm(ictxt) - myrank = psb_get_rank(ictxt,iam) + icomm = psb_get_mpi_comm(ictxt) + myrank = psb_get_mpi_rank(ictxt,iam) iglobx = 1 jglobx = 1 @@ -394,7 +394,7 @@ subroutine psb_cscatterv(globx, locx, desc_a, info, root) locx(i)=globx(ltg(i)) end do else - rootrank = psb_get_rank(ictxt,iroot) + rootrank = psb_get_mpi_rank(ictxt,iroot) ! ! This is potentially unsafe when IPK=8 ! But then, IPK=8 is highly experimental anyway. diff --git a/base/comm/psb_cspgather.F90 b/base/comm/psb_cspgather.F90 index b9401061..45dcc667 100644 --- a/base/comm/psb_cspgather.F90 +++ b/base/comm/psb_cspgather.F90 @@ -30,6 +30,17 @@ ! ! ! File: psb_cspgather.f90 +! +! Gathers a sparse matrix onto a single process. +! Two variants: +! 1. Gathers to PSB_c_SPARSE_MAT (i.e. to matrix with IPK_ indices) +! 2. Gathers to PSB_lc_SPARSE_MAT (i.e. to matrix with LPK_ indices) +! +! Note: this function uses MPI_ALLGATHERV. At this time, the size of the +! resulting matrix must be within the range of 4 bytes because of the +! restriction on MPI displacements to be 4 bytes. +! +! subroutine psb_csp_allgather(globa, loca, desc_a, info, root, dupl,keepnum,keeploc) #if defined(HAVE_ISO_FORTRAN_ENV) use iso_fortran_env diff --git a/base/comm/psb_dgather.f90 b/base/comm/psb_dgather.f90 index 3659b487..c767c8ec 100644 --- a/base/comm/psb_dgather.f90 +++ b/base/comm/psb_dgather.f90 @@ -31,14 +31,14 @@ ! ! File: psb_dgather.f90 ! -! Subroutine: psb_dgatherm -! This subroutine gathers pieces of a distributed dense matrix into a local one. +! Subroutine: psb_dgather_vect +! This subroutine gathers pieces of a distributed vector into a local one. ! ! Arguments: -! globx - real,dimension(:,:). The local matrix into which gather +! globx - real,dimension(:). The local matrix into which gather ! the distributed pieces. -! locx - real,dimension(:,:). The local piece of the distributed -! matrix to be gathered. +! locx - type(psb_d_vect_type@ The local piece of the distributed +! vector to be gathered. ! desc_a - type(psb_desc_type). The communication descriptor. ! info - integer. Error code. ! iroot - integer. The process that has to own the @@ -159,6 +159,8 @@ subroutine psb_dgather_vect(globx, locx, desc_a, info, iroot) end subroutine psb_dgather_vect +! Subroutine: psb_dgather_multivect +! This subroutine gathers pieces of a distributed multivector into a local one. subroutine psb_dgather_multivect(globx, locx, desc_a, info, iroot) use psb_base_mod, psb_protect_name => psb_dgather_multivect diff --git a/base/comm/psb_dgather_a.f90 b/base/comm/psb_dgather_a.f90 index 277eb3d0..5ae9ed50 100644 --- a/base/comm/psb_dgather_a.f90 +++ b/base/comm/psb_dgather_a.f90 @@ -31,7 +31,7 @@ ! ! File: psb_dgather.f90 ! -! Subroutine: psb_dgatherm +! Subroutine: psb_dgather ! This subroutine gathers pieces of a distributed dense matrix into a local one. ! ! Arguments: diff --git a/base/comm/psb_dhalo.f90 b/base/comm/psb_dhalo.f90 index 85caa81f..b5f584dc 100644 --- a/base/comm/psb_dhalo.f90 +++ b/base/comm/psb_dhalo.f90 @@ -31,17 +31,17 @@ ! ! File: psb_dhalo.f90 ! -! Subroutine: psb_dhalom +! Subroutine: psb_dhalo_vect ! This subroutine performs the exchange of the halo elements in a -! distributed dense matrix between all the processes. +! distributed vector between all the processes. ! ! Arguments: -! x - real,dimension(:,:). The local part of the dense matrix. +! x - type(psb_d_vect_type) The local part of the vector ! desc_a - type(psb_desc_type). The communication descriptor. ! info - integer. Return code ! jx - integer(optional). The starting column of the global matrix. ! ik - integer(optional). The number of columns to gather. -! work - real(optional). Work area. +! work - real(optional). Work area. ! tran - character(optional). Transpose exchange. ! mode - integer(optional). Communication mode (see Swapdata) ! data - integer Which index list in desc_a should be used @@ -52,7 +52,6 @@ ! psb_comm_mov_ use ovr_mst_idx ! ! - subroutine psb_dhalo_vect(x,desc_a,info,work,tran,mode,data) use psb_base_mod, psb_protect_name => psb_dhalo_vect use psi_mod @@ -185,7 +184,28 @@ subroutine psb_dhalo_vect(x,desc_a,info,work,tran,mode,data) return end subroutine psb_dhalo_vect - +! +! Subroutine: psb_dhalo_multivect +! This subroutine performs the exchange of the halo elements in a +! distributed multivector between all the processes. +! +! Arguments: +! x - type(psb_d_multivect_type) The local part of the multivector +! desc_a - type(psb_desc_type). The communication descriptor. +! info - integer. Return code +! jx - integer(optional). The starting column of the global matrix. +! ik - integer(optional). The number of columns to gather. +! work - real(optional). Work area. +! tran - character(optional). Transpose exchange. +! mode - integer(optional). Communication mode (see Swapdata) +! data - integer Which index list in desc_a should be used +! to retrieve rows, default psb_comm_halo_ +! psb_comm_halo_ use halo_index +! psb_comm_ext_ use ext_index +! psb_comm_ovrl_ use ovrl_index +! psb_comm_mov_ use ovr_mst_idx +! +! subroutine psb_dhalo_multivect(x,desc_a,info,work,tran,mode,data) use psb_base_mod, psb_protect_name => psb_dhalo_multivect use psi_mod diff --git a/base/comm/psb_dovrl.f90 b/base/comm/psb_dovrl.f90 index 28b2cd24..1177be29 100644 --- a/base/comm/psb_dovrl.f90 +++ b/base/comm/psb_dovrl.f90 @@ -32,12 +32,12 @@ ! ! File: psb_dovrl.f90 ! -! Subroutine: psb_dovrlm +! Subroutine: psb_dovrl_vect ! This subroutine performs the exchange of the overlap elements in a -! distributed dense matrix between all the processes. +! distributed dense vector between all the processes. ! ! Arguments: -! x(:,:) - real The local part of the dense matrix. +! x - type(psb_d_vect_type) The local part of the vector ! desc_a - type(psb_desc_type). The communication descriptor. ! info - integer. Return code. ! jx - integer(optional). The starting column of the global matrix @@ -180,7 +180,38 @@ subroutine psb_dovrl_vect(x,desc_a,info,work,update,mode) return end subroutine psb_dovrl_vect - +! +! Subroutine: psb_dovrl_multivect +! This subroutine performs the exchange of the overlap elements in a +! distributed multivector between all the processes. +! +! Arguments: +! x - type(psb_d_vect_type) The local part of the multivector +! desc_a - type(psb_desc_type). The communication descriptor. +! info - integer. Return code. +! jx - integer(optional). The starting column of the global matrix +! ik - integer(optional). The number of columns to gather. +! work - real(optional). A work area. +! update - integer(optional). Type of update: +! psb_none_ do nothing +! psb_sum_ sum of overlaps +! psb_avg_ average of overlaps +! mode - integer(optional). Choose the algorithm for data exchange: +! this is chosen through bit fields. +! - swap_mpi = iand(flag,psb_swap_mpi_) /= 0 +! - swap_sync = iand(flag,psb_swap_sync_) /= 0 +! - swap_send = iand(flag,psb_swap_send_) /= 0 +! - swap_recv = iand(flag,psb_swap_recv_) /= 0 +! - if (swap_mpi): use underlying MPI_ALLTOALLV. +! - if (swap_sync): use PSB_SND and PSB_RCV in +! synchronized pairs +! - if (swap_send .and. swap_recv): use mpi_irecv +! and mpi_send +! - if (swap_send): use psb_snd (but need another +! call with swap_recv to complete) +! - if (swap_recv): use psb_rcv (completing a +! previous call with swap_send) +! subroutine psb_dovrl_multivect(x,desc_a,info,work,update,mode) use psb_base_mod, psb_protect_name => psb_dovrl_multivect use psi_mod diff --git a/base/comm/psb_dscatter.F90 b/base/comm/psb_dscatter.F90 index d559fa12..157af3c6 100644 --- a/base/comm/psb_dscatter.F90 +++ b/base/comm/psb_dscatter.F90 @@ -31,13 +31,13 @@ ! ! File: psb_dscatter.f90 ! -! Subroutine: psb_dscatterm -! This subroutine scatters a global matrix locally owned by one process -! into pieces that are local to alle the processes. +! Subroutine: psb_dscatter_vect +! This subroutine scatters a global vector locally owned by one process +! into pieces that are local to all the processes. ! ! Arguments: -! globx - real,dimension(:,:). The global matrix to scatter. -! locx - real,dimension(:,:). The local piece of the distributed matrix. +! globx - real,dimension(:) The global matrix to scatter. +! locx - type(psb_d_vect_type) The local piece of the distributed matrix. ! desc_a - type(psb_desc_type). The communication descriptor. ! info - integer. Error code. ! iroot - integer(optional). The process that owns the global matrix. diff --git a/base/comm/psb_dscatter_a.F90 b/base/comm/psb_dscatter_a.F90 index 998028b3..e0b39f57 100644 --- a/base/comm/psb_dscatter_a.F90 +++ b/base/comm/psb_dscatter_a.F90 @@ -33,7 +33,7 @@ ! ! Subroutine: psb_dscatterm ! This subroutine scatters a global matrix locally owned by one process -! into pieces that are local to alle the processes. +! into pieces that are local to all the processes. ! ! Arguments: ! globx - real,dimension(:,:). The global matrix to scatter. @@ -107,8 +107,8 @@ subroutine psb_dscatterm(globx, locx, desc_a, info, root) m = desc_a%get_global_rows() n = desc_a%get_global_cols() - icomm = psb_get_mpicomm(ictxt) - myrank = psb_get_rank(ictxt,me) + icomm = psb_get_mpi_comm(ictxt) + myrank = psb_get_mpi_rank(ictxt,me) if (iroot==-1) then lda_globx = size(globx, 1) @@ -159,7 +159,7 @@ subroutine psb_dscatterm(globx, locx, desc_a, info, root) end do else - rootrank = psb_get_rank(ictxt,iroot) + rootrank = psb_get_mpi_rank(ictxt,iroot) ! ! This is potentially unsafe when IPK=8 ! But then, IPK=8 is highly experimental anyway. @@ -278,7 +278,7 @@ end subroutine psb_dscatterm ! Subroutine: psb_dscatterv ! This subroutine scatters a global vector locally owned by one process -! into pieces that are local to alle the processes. +! into pieces that are local to all the processes. ! ! Arguments: ! globx - real,dimension(:). The global vector to scatter. @@ -347,8 +347,8 @@ subroutine psb_dscatterv(globx, locx, desc_a, info, root) iroot = psb_root_ end if - icomm = psb_get_mpicomm(ictxt) - myrank = psb_get_rank(ictxt,iam) + icomm = psb_get_mpi_comm(ictxt) + myrank = psb_get_mpi_rank(ictxt,iam) iglobx = 1 jglobx = 1 @@ -394,7 +394,7 @@ subroutine psb_dscatterv(globx, locx, desc_a, info, root) locx(i)=globx(ltg(i)) end do else - rootrank = psb_get_rank(ictxt,iroot) + rootrank = psb_get_mpi_rank(ictxt,iroot) ! ! This is potentially unsafe when IPK=8 ! But then, IPK=8 is highly experimental anyway. diff --git a/base/comm/psb_dspgather.F90 b/base/comm/psb_dspgather.F90 index d5593504..62084d48 100644 --- a/base/comm/psb_dspgather.F90 +++ b/base/comm/psb_dspgather.F90 @@ -30,6 +30,17 @@ ! ! ! File: psb_dspgather.f90 +! +! Gathers a sparse matrix onto a single process. +! Two variants: +! 1. Gathers to PSB_d_SPARSE_MAT (i.e. to matrix with IPK_ indices) +! 2. Gathers to PSB_ld_SPARSE_MAT (i.e. to matrix with LPK_ indices) +! +! Note: this function uses MPI_ALLGATHERV. At this time, the size of the +! resulting matrix must be within the range of 4 bytes because of the +! restriction on MPI displacements to be 4 bytes. +! +! subroutine psb_dsp_allgather(globa, loca, desc_a, info, root, dupl,keepnum,keeploc) #if defined(HAVE_ISO_FORTRAN_ENV) use iso_fortran_env diff --git a/base/comm/psb_egather_a.f90 b/base/comm/psb_egather_a.f90 index 54b77bc9..b910a4f7 100644 --- a/base/comm/psb_egather_a.f90 +++ b/base/comm/psb_egather_a.f90 @@ -31,7 +31,7 @@ ! ! File: psb_egather.f90 ! -! Subroutine: psb_egatherm +! Subroutine: psb_egather ! This subroutine gathers pieces of a distributed dense matrix into a local one. ! ! Arguments: diff --git a/base/comm/psb_escatter_a.F90 b/base/comm/psb_escatter_a.F90 index 0095636d..dbb2026f 100644 --- a/base/comm/psb_escatter_a.F90 +++ b/base/comm/psb_escatter_a.F90 @@ -33,7 +33,7 @@ ! ! Subroutine: psb_escatterm ! This subroutine scatters a global matrix locally owned by one process -! into pieces that are local to alle the processes. +! into pieces that are local to all the processes. ! ! Arguments: ! globx - integer,dimension(:,:). The global matrix to scatter. @@ -107,8 +107,8 @@ subroutine psb_escatterm(globx, locx, desc_a, info, root) m = desc_a%get_global_rows() n = desc_a%get_global_cols() - icomm = psb_get_mpicomm(ictxt) - myrank = psb_get_rank(ictxt,me) + icomm = psb_get_mpi_comm(ictxt) + myrank = psb_get_mpi_rank(ictxt,me) if (iroot==-1) then lda_globx = size(globx, 1) @@ -159,7 +159,7 @@ subroutine psb_escatterm(globx, locx, desc_a, info, root) end do else - rootrank = psb_get_rank(ictxt,iroot) + rootrank = psb_get_mpi_rank(ictxt,iroot) ! ! This is potentially unsafe when IPK=8 ! But then, IPK=8 is highly experimental anyway. @@ -278,7 +278,7 @@ end subroutine psb_escatterm ! Subroutine: psb_escatterv ! This subroutine scatters a global vector locally owned by one process -! into pieces that are local to alle the processes. +! into pieces that are local to all the processes. ! ! Arguments: ! globx - integer,dimension(:). The global vector to scatter. @@ -347,8 +347,8 @@ subroutine psb_escatterv(globx, locx, desc_a, info, root) iroot = psb_root_ end if - icomm = psb_get_mpicomm(ictxt) - myrank = psb_get_rank(ictxt,iam) + icomm = psb_get_mpi_comm(ictxt) + myrank = psb_get_mpi_rank(ictxt,iam) iglobx = 1 jglobx = 1 @@ -394,7 +394,7 @@ subroutine psb_escatterv(globx, locx, desc_a, info, root) locx(i)=globx(ltg(i)) end do else - rootrank = psb_get_rank(ictxt,iroot) + rootrank = psb_get_mpi_rank(ictxt,iroot) ! ! This is potentially unsafe when IPK=8 ! But then, IPK=8 is highly experimental anyway. diff --git a/base/comm/psb_igather.f90 b/base/comm/psb_igather.f90 index a6e59497..48a4f2fe 100644 --- a/base/comm/psb_igather.f90 +++ b/base/comm/psb_igather.f90 @@ -31,14 +31,14 @@ ! ! File: psb_igather.f90 ! -! Subroutine: psb_igatherm -! This subroutine gathers pieces of a distributed dense matrix into a local one. +! Subroutine: psb_igather_vect +! This subroutine gathers pieces of a distributed vector into a local one. ! ! Arguments: -! globx - integer,dimension(:,:). The local matrix into which gather +! globx - integer,dimension(:). The local matrix into which gather ! the distributed pieces. -! locx - integer,dimension(:,:). The local piece of the distributed -! matrix to be gathered. +! locx - type(psb_i_vect_type@ The local piece of the distributed +! vector to be gathered. ! desc_a - type(psb_desc_type). The communication descriptor. ! info - integer. Error code. ! iroot - integer. The process that has to own the @@ -159,6 +159,8 @@ subroutine psb_igather_vect(globx, locx, desc_a, info, iroot) end subroutine psb_igather_vect +! Subroutine: psb_igather_multivect +! This subroutine gathers pieces of a distributed multivector into a local one. subroutine psb_igather_multivect(globx, locx, desc_a, info, iroot) use psb_base_mod, psb_protect_name => psb_igather_multivect diff --git a/base/comm/psb_ihalo.f90 b/base/comm/psb_ihalo.f90 index ed4d2c10..4bccfc10 100644 --- a/base/comm/psb_ihalo.f90 +++ b/base/comm/psb_ihalo.f90 @@ -31,17 +31,17 @@ ! ! File: psb_ihalo.f90 ! -! Subroutine: psb_ihalom +! Subroutine: psb_ihalo_vect ! This subroutine performs the exchange of the halo elements in a -! distributed dense matrix between all the processes. +! distributed vector between all the processes. ! ! Arguments: -! x - integer,dimension(:,:). The local part of the dense matrix. +! x - type(psb_i_vect_type) The local part of the vector ! desc_a - type(psb_desc_type). The communication descriptor. ! info - integer. Return code ! jx - integer(optional). The starting column of the global matrix. ! ik - integer(optional). The number of columns to gather. -! work - integer(optional). Work area. +! work - integer(optional). Work area. ! tran - character(optional). Transpose exchange. ! mode - integer(optional). Communication mode (see Swapdata) ! data - integer Which index list in desc_a should be used @@ -52,7 +52,6 @@ ! psb_comm_mov_ use ovr_mst_idx ! ! - subroutine psb_ihalo_vect(x,desc_a,info,work,tran,mode,data) use psb_base_mod, psb_protect_name => psb_ihalo_vect use psi_mod @@ -185,7 +184,28 @@ subroutine psb_ihalo_vect(x,desc_a,info,work,tran,mode,data) return end subroutine psb_ihalo_vect - +! +! Subroutine: psb_ihalo_multivect +! This subroutine performs the exchange of the halo elements in a +! distributed multivector between all the processes. +! +! Arguments: +! x - type(psb_i_multivect_type) The local part of the multivector +! desc_a - type(psb_desc_type). The communication descriptor. +! info - integer. Return code +! jx - integer(optional). The starting column of the global matrix. +! ik - integer(optional). The number of columns to gather. +! work - integer(optional). Work area. +! tran - character(optional). Transpose exchange. +! mode - integer(optional). Communication mode (see Swapdata) +! data - integer Which index list in desc_a should be used +! to retrieve rows, default psb_comm_halo_ +! psb_comm_halo_ use halo_index +! psb_comm_ext_ use ext_index +! psb_comm_ovrl_ use ovrl_index +! psb_comm_mov_ use ovr_mst_idx +! +! subroutine psb_ihalo_multivect(x,desc_a,info,work,tran,mode,data) use psb_base_mod, psb_protect_name => psb_ihalo_multivect use psi_mod diff --git a/base/comm/psb_iovrl.f90 b/base/comm/psb_iovrl.f90 index 1e3ca4f3..06f720b0 100644 --- a/base/comm/psb_iovrl.f90 +++ b/base/comm/psb_iovrl.f90 @@ -32,12 +32,12 @@ ! ! File: psb_iovrl.f90 ! -! Subroutine: psb_iovrlm +! Subroutine: psb_iovrl_vect ! This subroutine performs the exchange of the overlap elements in a -! distributed dense matrix between all the processes. +! distributed dense vector between all the processes. ! ! Arguments: -! x(:,:) - integer The local part of the dense matrix. +! x - type(psb_i_vect_type) The local part of the vector ! desc_a - type(psb_desc_type). The communication descriptor. ! info - integer. Return code. ! jx - integer(optional). The starting column of the global matrix @@ -180,7 +180,38 @@ subroutine psb_iovrl_vect(x,desc_a,info,work,update,mode) return end subroutine psb_iovrl_vect - +! +! Subroutine: psb_iovrl_multivect +! This subroutine performs the exchange of the overlap elements in a +! distributed multivector between all the processes. +! +! Arguments: +! x - type(psb_i_vect_type) The local part of the multivector +! desc_a - type(psb_desc_type). The communication descriptor. +! info - integer. Return code. +! jx - integer(optional). The starting column of the global matrix +! ik - integer(optional). The number of columns to gather. +! work - integer(optional). A work area. +! update - integer(optional). Type of update: +! psb_none_ do nothing +! psb_sum_ sum of overlaps +! psb_avg_ average of overlaps +! mode - integer(optional). Choose the algorithm for data exchange: +! this is chosen through bit fields. +! - swap_mpi = iand(flag,psb_swap_mpi_) /= 0 +! - swap_sync = iand(flag,psb_swap_sync_) /= 0 +! - swap_send = iand(flag,psb_swap_send_) /= 0 +! - swap_recv = iand(flag,psb_swap_recv_) /= 0 +! - if (swap_mpi): use underlying MPI_ALLTOALLV. +! - if (swap_sync): use PSB_SND and PSB_RCV in +! synchronized pairs +! - if (swap_send .and. swap_recv): use mpi_irecv +! and mpi_send +! - if (swap_send): use psb_snd (but need another +! call with swap_recv to complete) +! - if (swap_recv): use psb_rcv (completing a +! previous call with swap_send) +! subroutine psb_iovrl_multivect(x,desc_a,info,work,update,mode) use psb_base_mod, psb_protect_name => psb_iovrl_multivect use psi_mod diff --git a/base/comm/psb_iscatter.F90 b/base/comm/psb_iscatter.F90 index 1a545e9b..f159d5b4 100644 --- a/base/comm/psb_iscatter.F90 +++ b/base/comm/psb_iscatter.F90 @@ -31,13 +31,13 @@ ! ! File: psb_iscatter.f90 ! -! Subroutine: psb_iscatterm -! This subroutine scatters a global matrix locally owned by one process -! into pieces that are local to alle the processes. +! Subroutine: psb_iscatter_vect +! This subroutine scatters a global vector locally owned by one process +! into pieces that are local to all the processes. ! ! Arguments: -! globx - integer,dimension(:,:). The global matrix to scatter. -! locx - integer,dimension(:,:). The local piece of the distributed matrix. +! globx - integer,dimension(:) The global matrix to scatter. +! locx - type(psb_i_vect_type) The local piece of the distributed matrix. ! desc_a - type(psb_desc_type). The communication descriptor. ! info - integer. Error code. ! iroot - integer(optional). The process that owns the global matrix. diff --git a/base/comm/psb_ispgather.F90 b/base/comm/psb_ispgather.F90 index a19d24d9..d13c2e7c 100644 --- a/base/comm/psb_ispgather.F90 +++ b/base/comm/psb_ispgather.F90 @@ -30,6 +30,17 @@ ! ! ! File: psb_ispgather.f90 +! +! Gathers a sparse matrix onto a single process. +! Two variants: +! 1. Gathers to PSB_i_SPARSE_MAT (i.e. to matrix with IPK_ indices) +! 2. Gathers to PSB_@LX@_SPARSE_MAT (i.e. to matrix with LPK_ indices) +! +! Note: this function uses MPI_ALLGATHERV. At this time, the size of the +! resulting matrix must be within the range of 4 bytes because of the +! restriction on MPI displacements to be 4 bytes. +! +! subroutine psb_isp_allgather(globa, loca, desc_a, info, root, dupl,keepnum,keeploc) #if defined(HAVE_ISO_FORTRAN_ENV) use iso_fortran_env diff --git a/base/comm/psb_lgather.f90 b/base/comm/psb_lgather.f90 index 45ea0d94..1f6f448f 100644 --- a/base/comm/psb_lgather.f90 +++ b/base/comm/psb_lgather.f90 @@ -31,14 +31,14 @@ ! ! File: psb_lgather.f90 ! -! Subroutine: psb_lgatherm -! This subroutine gathers pieces of a distributed dense matrix into a local one. +! Subroutine: psb_lgather_vect +! This subroutine gathers pieces of a distributed vector into a local one. ! ! Arguments: -! globx - integer,dimension(:,:). The local matrix into which gather +! globx - integer,dimension(:). The local matrix into which gather ! the distributed pieces. -! locx - integer,dimension(:,:). The local piece of the distributed -! matrix to be gathered. +! locx - type(psb_l_vect_type@ The local piece of the distributed +! vector to be gathered. ! desc_a - type(psb_desc_type). The communication descriptor. ! info - integer. Error code. ! iroot - integer. The process that has to own the @@ -159,6 +159,8 @@ subroutine psb_lgather_vect(globx, locx, desc_a, info, iroot) end subroutine psb_lgather_vect +! Subroutine: psb_lgather_multivect +! This subroutine gathers pieces of a distributed multivector into a local one. subroutine psb_lgather_multivect(globx, locx, desc_a, info, iroot) use psb_base_mod, psb_protect_name => psb_lgather_multivect diff --git a/base/comm/psb_lhalo.f90 b/base/comm/psb_lhalo.f90 index 49b4d13d..b35613a1 100644 --- a/base/comm/psb_lhalo.f90 +++ b/base/comm/psb_lhalo.f90 @@ -31,17 +31,17 @@ ! ! File: psb_lhalo.f90 ! -! Subroutine: psb_lhalom +! Subroutine: psb_lhalo_vect ! This subroutine performs the exchange of the halo elements in a -! distributed dense matrix between all the processes. +! distributed vector between all the processes. ! ! Arguments: -! x - integer,dimension(:,:). The local part of the dense matrix. +! x - type(psb_l_vect_type) The local part of the vector ! desc_a - type(psb_desc_type). The communication descriptor. ! info - integer. Return code ! jx - integer(optional). The starting column of the global matrix. ! ik - integer(optional). The number of columns to gather. -! work - integer(optional). Work area. +! work - integer(optional). Work area. ! tran - character(optional). Transpose exchange. ! mode - integer(optional). Communication mode (see Swapdata) ! data - integer Which index list in desc_a should be used @@ -52,7 +52,6 @@ ! psb_comm_mov_ use ovr_mst_idx ! ! - subroutine psb_lhalo_vect(x,desc_a,info,work,tran,mode,data) use psb_base_mod, psb_protect_name => psb_lhalo_vect use psi_mod @@ -185,7 +184,28 @@ subroutine psb_lhalo_vect(x,desc_a,info,work,tran,mode,data) return end subroutine psb_lhalo_vect - +! +! Subroutine: psb_lhalo_multivect +! This subroutine performs the exchange of the halo elements in a +! distributed multivector between all the processes. +! +! Arguments: +! x - type(psb_l_multivect_type) The local part of the multivector +! desc_a - type(psb_desc_type). The communication descriptor. +! info - integer. Return code +! jx - integer(optional). The starting column of the global matrix. +! ik - integer(optional). The number of columns to gather. +! work - integer(optional). Work area. +! tran - character(optional). Transpose exchange. +! mode - integer(optional). Communication mode (see Swapdata) +! data - integer Which index list in desc_a should be used +! to retrieve rows, default psb_comm_halo_ +! psb_comm_halo_ use halo_index +! psb_comm_ext_ use ext_index +! psb_comm_ovrl_ use ovrl_index +! psb_comm_mov_ use ovr_mst_idx +! +! subroutine psb_lhalo_multivect(x,desc_a,info,work,tran,mode,data) use psb_base_mod, psb_protect_name => psb_lhalo_multivect use psi_mod diff --git a/base/comm/psb_lovrl.f90 b/base/comm/psb_lovrl.f90 index 75b816b8..bb3ece65 100644 --- a/base/comm/psb_lovrl.f90 +++ b/base/comm/psb_lovrl.f90 @@ -32,12 +32,12 @@ ! ! File: psb_lovrl.f90 ! -! Subroutine: psb_lovrlm +! Subroutine: psb_lovrl_vect ! This subroutine performs the exchange of the overlap elements in a -! distributed dense matrix between all the processes. +! distributed dense vector between all the processes. ! ! Arguments: -! x(:,:) - integer The local part of the dense matrix. +! x - type(psb_l_vect_type) The local part of the vector ! desc_a - type(psb_desc_type). The communication descriptor. ! info - integer. Return code. ! jx - integer(optional). The starting column of the global matrix @@ -180,7 +180,38 @@ subroutine psb_lovrl_vect(x,desc_a,info,work,update,mode) return end subroutine psb_lovrl_vect - +! +! Subroutine: psb_lovrl_multivect +! This subroutine performs the exchange of the overlap elements in a +! distributed multivector between all the processes. +! +! Arguments: +! x - type(psb_l_vect_type) The local part of the multivector +! desc_a - type(psb_desc_type). The communication descriptor. +! info - integer. Return code. +! jx - integer(optional). The starting column of the global matrix +! ik - integer(optional). The number of columns to gather. +! work - integer(optional). A work area. +! update - integer(optional). Type of update: +! psb_none_ do nothing +! psb_sum_ sum of overlaps +! psb_avg_ average of overlaps +! mode - integer(optional). Choose the algorithm for data exchange: +! this is chosen through bit fields. +! - swap_mpi = iand(flag,psb_swap_mpi_) /= 0 +! - swap_sync = iand(flag,psb_swap_sync_) /= 0 +! - swap_send = iand(flag,psb_swap_send_) /= 0 +! - swap_recv = iand(flag,psb_swap_recv_) /= 0 +! - if (swap_mpi): use underlying MPI_ALLTOALLV. +! - if (swap_sync): use PSB_SND and PSB_RCV in +! synchronized pairs +! - if (swap_send .and. swap_recv): use mpi_irecv +! and mpi_send +! - if (swap_send): use psb_snd (but need another +! call with swap_recv to complete) +! - if (swap_recv): use psb_rcv (completing a +! previous call with swap_send) +! subroutine psb_lovrl_multivect(x,desc_a,info,work,update,mode) use psb_base_mod, psb_protect_name => psb_lovrl_multivect use psi_mod diff --git a/base/comm/psb_lscatter.F90 b/base/comm/psb_lscatter.F90 index ed4051fa..ceb60e4f 100644 --- a/base/comm/psb_lscatter.F90 +++ b/base/comm/psb_lscatter.F90 @@ -31,13 +31,13 @@ ! ! File: psb_lscatter.f90 ! -! Subroutine: psb_lscatterm -! This subroutine scatters a global matrix locally owned by one process -! into pieces that are local to alle the processes. +! Subroutine: psb_lscatter_vect +! This subroutine scatters a global vector locally owned by one process +! into pieces that are local to all the processes. ! ! Arguments: -! globx - integer,dimension(:,:). The global matrix to scatter. -! locx - integer,dimension(:,:). The local piece of the distributed matrix. +! globx - integer,dimension(:) The global matrix to scatter. +! locx - type(psb_l_vect_type) The local piece of the distributed matrix. ! desc_a - type(psb_desc_type). The communication descriptor. ! info - integer. Error code. ! iroot - integer(optional). The process that owns the global matrix. diff --git a/base/comm/psb_lspgather.F90 b/base/comm/psb_lspgather.F90 index 81c9c67c..2f588116 100644 --- a/base/comm/psb_lspgather.F90 +++ b/base/comm/psb_lspgather.F90 @@ -30,6 +30,17 @@ ! ! ! File: psb_lspgather.f90 +! +! Gathers a sparse matrix onto a single process. +! Two variants: +! 1. Gathers to PSB_l_SPARSE_MAT (i.e. to matrix with IPK_ indices) +! 2. Gathers to PSB_@LX@_SPARSE_MAT (i.e. to matrix with LPK_ indices) +! +! Note: this function uses MPI_ALLGATHERV. At this time, the size of the +! resulting matrix must be within the range of 4 bytes because of the +! restriction on MPI displacements to be 4 bytes. +! +! subroutine psb_lsp_allgather(globa, loca, desc_a, info, root, dupl,keepnum,keeploc) #if defined(HAVE_ISO_FORTRAN_ENV) use iso_fortran_env diff --git a/base/comm/psb_mgather_a.f90 b/base/comm/psb_mgather_a.f90 index 1ee8e7f4..251e06c9 100644 --- a/base/comm/psb_mgather_a.f90 +++ b/base/comm/psb_mgather_a.f90 @@ -31,7 +31,7 @@ ! ! File: psb_mgather.f90 ! -! Subroutine: psb_mgatherm +! Subroutine: psb_mgather ! This subroutine gathers pieces of a distributed dense matrix into a local one. ! ! Arguments: diff --git a/base/comm/psb_mscatter_a.F90 b/base/comm/psb_mscatter_a.F90 index 6a5a2552..f85a3849 100644 --- a/base/comm/psb_mscatter_a.F90 +++ b/base/comm/psb_mscatter_a.F90 @@ -33,7 +33,7 @@ ! ! Subroutine: psb_mscatterm ! This subroutine scatters a global matrix locally owned by one process -! into pieces that are local to alle the processes. +! into pieces that are local to all the processes. ! ! Arguments: ! globx - integer,dimension(:,:). The global matrix to scatter. @@ -107,8 +107,8 @@ subroutine psb_mscatterm(globx, locx, desc_a, info, root) m = desc_a%get_global_rows() n = desc_a%get_global_cols() - icomm = psb_get_mpicomm(ictxt) - myrank = psb_get_rank(ictxt,me) + icomm = psb_get_mpi_comm(ictxt) + myrank = psb_get_mpi_rank(ictxt,me) if (iroot==-1) then lda_globx = size(globx, 1) @@ -159,7 +159,7 @@ subroutine psb_mscatterm(globx, locx, desc_a, info, root) end do else - rootrank = psb_get_rank(ictxt,iroot) + rootrank = psb_get_mpi_rank(ictxt,iroot) ! ! This is potentially unsafe when IPK=8 ! But then, IPK=8 is highly experimental anyway. @@ -278,7 +278,7 @@ end subroutine psb_mscatterm ! Subroutine: psb_mscatterv ! This subroutine scatters a global vector locally owned by one process -! into pieces that are local to alle the processes. +! into pieces that are local to all the processes. ! ! Arguments: ! globx - integer,dimension(:). The global vector to scatter. @@ -347,8 +347,8 @@ subroutine psb_mscatterv(globx, locx, desc_a, info, root) iroot = psb_root_ end if - icomm = psb_get_mpicomm(ictxt) - myrank = psb_get_rank(ictxt,iam) + icomm = psb_get_mpi_comm(ictxt) + myrank = psb_get_mpi_rank(ictxt,iam) iglobx = 1 jglobx = 1 @@ -394,7 +394,7 @@ subroutine psb_mscatterv(globx, locx, desc_a, info, root) locx(i)=globx(ltg(i)) end do else - rootrank = psb_get_rank(ictxt,iroot) + rootrank = psb_get_mpi_rank(ictxt,iroot) ! ! This is potentially unsafe when IPK=8 ! But then, IPK=8 is highly experimental anyway. diff --git a/base/comm/psb_sgather.f90 b/base/comm/psb_sgather.f90 index 10c6b7c2..538d1c43 100644 --- a/base/comm/psb_sgather.f90 +++ b/base/comm/psb_sgather.f90 @@ -31,14 +31,14 @@ ! ! File: psb_sgather.f90 ! -! Subroutine: psb_sgatherm -! This subroutine gathers pieces of a distributed dense matrix into a local one. +! Subroutine: psb_sgather_vect +! This subroutine gathers pieces of a distributed vector into a local one. ! ! Arguments: -! globx - real,dimension(:,:). The local matrix into which gather +! globx - real,dimension(:). The local matrix into which gather ! the distributed pieces. -! locx - real,dimension(:,:). The local piece of the distributed -! matrix to be gathered. +! locx - type(psb_s_vect_type@ The local piece of the distributed +! vector to be gathered. ! desc_a - type(psb_desc_type). The communication descriptor. ! info - integer. Error code. ! iroot - integer. The process that has to own the @@ -159,6 +159,8 @@ subroutine psb_sgather_vect(globx, locx, desc_a, info, iroot) end subroutine psb_sgather_vect +! Subroutine: psb_sgather_multivect +! This subroutine gathers pieces of a distributed multivector into a local one. subroutine psb_sgather_multivect(globx, locx, desc_a, info, iroot) use psb_base_mod, psb_protect_name => psb_sgather_multivect diff --git a/base/comm/psb_sgather_a.f90 b/base/comm/psb_sgather_a.f90 index 68076959..47a8c79a 100644 --- a/base/comm/psb_sgather_a.f90 +++ b/base/comm/psb_sgather_a.f90 @@ -31,7 +31,7 @@ ! ! File: psb_sgather.f90 ! -! Subroutine: psb_sgatherm +! Subroutine: psb_sgather ! This subroutine gathers pieces of a distributed dense matrix into a local one. ! ! Arguments: diff --git a/base/comm/psb_shalo.f90 b/base/comm/psb_shalo.f90 index 2948624c..78ab39e3 100644 --- a/base/comm/psb_shalo.f90 +++ b/base/comm/psb_shalo.f90 @@ -31,17 +31,17 @@ ! ! File: psb_shalo.f90 ! -! Subroutine: psb_shalom +! Subroutine: psb_shalo_vect ! This subroutine performs the exchange of the halo elements in a -! distributed dense matrix between all the processes. +! distributed vector between all the processes. ! ! Arguments: -! x - real,dimension(:,:). The local part of the dense matrix. +! x - type(psb_s_vect_type) The local part of the vector ! desc_a - type(psb_desc_type). The communication descriptor. ! info - integer. Return code ! jx - integer(optional). The starting column of the global matrix. ! ik - integer(optional). The number of columns to gather. -! work - real(optional). Work area. +! work - real(optional). Work area. ! tran - character(optional). Transpose exchange. ! mode - integer(optional). Communication mode (see Swapdata) ! data - integer Which index list in desc_a should be used @@ -52,7 +52,6 @@ ! psb_comm_mov_ use ovr_mst_idx ! ! - subroutine psb_shalo_vect(x,desc_a,info,work,tran,mode,data) use psb_base_mod, psb_protect_name => psb_shalo_vect use psi_mod @@ -185,7 +184,28 @@ subroutine psb_shalo_vect(x,desc_a,info,work,tran,mode,data) return end subroutine psb_shalo_vect - +! +! Subroutine: psb_shalo_multivect +! This subroutine performs the exchange of the halo elements in a +! distributed multivector between all the processes. +! +! Arguments: +! x - type(psb_s_multivect_type) The local part of the multivector +! desc_a - type(psb_desc_type). The communication descriptor. +! info - integer. Return code +! jx - integer(optional). The starting column of the global matrix. +! ik - integer(optional). The number of columns to gather. +! work - real(optional). Work area. +! tran - character(optional). Transpose exchange. +! mode - integer(optional). Communication mode (see Swapdata) +! data - integer Which index list in desc_a should be used +! to retrieve rows, default psb_comm_halo_ +! psb_comm_halo_ use halo_index +! psb_comm_ext_ use ext_index +! psb_comm_ovrl_ use ovrl_index +! psb_comm_mov_ use ovr_mst_idx +! +! subroutine psb_shalo_multivect(x,desc_a,info,work,tran,mode,data) use psb_base_mod, psb_protect_name => psb_shalo_multivect use psi_mod diff --git a/base/comm/psb_sovrl.f90 b/base/comm/psb_sovrl.f90 index 25af2d48..3930645a 100644 --- a/base/comm/psb_sovrl.f90 +++ b/base/comm/psb_sovrl.f90 @@ -32,12 +32,12 @@ ! ! File: psb_sovrl.f90 ! -! Subroutine: psb_sovrlm +! Subroutine: psb_sovrl_vect ! This subroutine performs the exchange of the overlap elements in a -! distributed dense matrix between all the processes. +! distributed dense vector between all the processes. ! ! Arguments: -! x(:,:) - real The local part of the dense matrix. +! x - type(psb_s_vect_type) The local part of the vector ! desc_a - type(psb_desc_type). The communication descriptor. ! info - integer. Return code. ! jx - integer(optional). The starting column of the global matrix @@ -180,7 +180,38 @@ subroutine psb_sovrl_vect(x,desc_a,info,work,update,mode) return end subroutine psb_sovrl_vect - +! +! Subroutine: psb_sovrl_multivect +! This subroutine performs the exchange of the overlap elements in a +! distributed multivector between all the processes. +! +! Arguments: +! x - type(psb_s_vect_type) The local part of the multivector +! desc_a - type(psb_desc_type). The communication descriptor. +! info - integer. Return code. +! jx - integer(optional). The starting column of the global matrix +! ik - integer(optional). The number of columns to gather. +! work - real(optional). A work area. +! update - integer(optional). Type of update: +! psb_none_ do nothing +! psb_sum_ sum of overlaps +! psb_avg_ average of overlaps +! mode - integer(optional). Choose the algorithm for data exchange: +! this is chosen through bit fields. +! - swap_mpi = iand(flag,psb_swap_mpi_) /= 0 +! - swap_sync = iand(flag,psb_swap_sync_) /= 0 +! - swap_send = iand(flag,psb_swap_send_) /= 0 +! - swap_recv = iand(flag,psb_swap_recv_) /= 0 +! - if (swap_mpi): use underlying MPI_ALLTOALLV. +! - if (swap_sync): use PSB_SND and PSB_RCV in +! synchronized pairs +! - if (swap_send .and. swap_recv): use mpi_irecv +! and mpi_send +! - if (swap_send): use psb_snd (but need another +! call with swap_recv to complete) +! - if (swap_recv): use psb_rcv (completing a +! previous call with swap_send) +! subroutine psb_sovrl_multivect(x,desc_a,info,work,update,mode) use psb_base_mod, psb_protect_name => psb_sovrl_multivect use psi_mod diff --git a/base/comm/psb_sscatter.F90 b/base/comm/psb_sscatter.F90 index 60bdd342..960c5bac 100644 --- a/base/comm/psb_sscatter.F90 +++ b/base/comm/psb_sscatter.F90 @@ -31,13 +31,13 @@ ! ! File: psb_sscatter.f90 ! -! Subroutine: psb_sscatterm -! This subroutine scatters a global matrix locally owned by one process -! into pieces that are local to alle the processes. +! Subroutine: psb_sscatter_vect +! This subroutine scatters a global vector locally owned by one process +! into pieces that are local to all the processes. ! ! Arguments: -! globx - real,dimension(:,:). The global matrix to scatter. -! locx - real,dimension(:,:). The local piece of the distributed matrix. +! globx - real,dimension(:) The global matrix to scatter. +! locx - type(psb_s_vect_type) The local piece of the distributed matrix. ! desc_a - type(psb_desc_type). The communication descriptor. ! info - integer. Error code. ! iroot - integer(optional). The process that owns the global matrix. diff --git a/base/comm/psb_sscatter_a.F90 b/base/comm/psb_sscatter_a.F90 index 51627072..d756b712 100644 --- a/base/comm/psb_sscatter_a.F90 +++ b/base/comm/psb_sscatter_a.F90 @@ -33,7 +33,7 @@ ! ! Subroutine: psb_sscatterm ! This subroutine scatters a global matrix locally owned by one process -! into pieces that are local to alle the processes. +! into pieces that are local to all the processes. ! ! Arguments: ! globx - real,dimension(:,:). The global matrix to scatter. @@ -107,8 +107,8 @@ subroutine psb_sscatterm(globx, locx, desc_a, info, root) m = desc_a%get_global_rows() n = desc_a%get_global_cols() - icomm = psb_get_mpicomm(ictxt) - myrank = psb_get_rank(ictxt,me) + icomm = psb_get_mpi_comm(ictxt) + myrank = psb_get_mpi_rank(ictxt,me) if (iroot==-1) then lda_globx = size(globx, 1) @@ -159,7 +159,7 @@ subroutine psb_sscatterm(globx, locx, desc_a, info, root) end do else - rootrank = psb_get_rank(ictxt,iroot) + rootrank = psb_get_mpi_rank(ictxt,iroot) ! ! This is potentially unsafe when IPK=8 ! But then, IPK=8 is highly experimental anyway. @@ -278,7 +278,7 @@ end subroutine psb_sscatterm ! Subroutine: psb_sscatterv ! This subroutine scatters a global vector locally owned by one process -! into pieces that are local to alle the processes. +! into pieces that are local to all the processes. ! ! Arguments: ! globx - real,dimension(:). The global vector to scatter. @@ -347,8 +347,8 @@ subroutine psb_sscatterv(globx, locx, desc_a, info, root) iroot = psb_root_ end if - icomm = psb_get_mpicomm(ictxt) - myrank = psb_get_rank(ictxt,iam) + icomm = psb_get_mpi_comm(ictxt) + myrank = psb_get_mpi_rank(ictxt,iam) iglobx = 1 jglobx = 1 @@ -394,7 +394,7 @@ subroutine psb_sscatterv(globx, locx, desc_a, info, root) locx(i)=globx(ltg(i)) end do else - rootrank = psb_get_rank(ictxt,iroot) + rootrank = psb_get_mpi_rank(ictxt,iroot) ! ! This is potentially unsafe when IPK=8 ! But then, IPK=8 is highly experimental anyway. diff --git a/base/comm/psb_sspgather.F90 b/base/comm/psb_sspgather.F90 index 27444ecd..7123a988 100644 --- a/base/comm/psb_sspgather.F90 +++ b/base/comm/psb_sspgather.F90 @@ -30,6 +30,17 @@ ! ! ! File: psb_sspgather.f90 +! +! Gathers a sparse matrix onto a single process. +! Two variants: +! 1. Gathers to PSB_s_SPARSE_MAT (i.e. to matrix with IPK_ indices) +! 2. Gathers to PSB_ls_SPARSE_MAT (i.e. to matrix with LPK_ indices) +! +! Note: this function uses MPI_ALLGATHERV. At this time, the size of the +! resulting matrix must be within the range of 4 bytes because of the +! restriction on MPI displacements to be 4 bytes. +! +! subroutine psb_ssp_allgather(globa, loca, desc_a, info, root, dupl,keepnum,keeploc) #if defined(HAVE_ISO_FORTRAN_ENV) use iso_fortran_env diff --git a/base/comm/psb_zgather.f90 b/base/comm/psb_zgather.f90 index d22e6644..b8b9a6c8 100644 --- a/base/comm/psb_zgather.f90 +++ b/base/comm/psb_zgather.f90 @@ -31,14 +31,14 @@ ! ! File: psb_zgather.f90 ! -! Subroutine: psb_zgatherm -! This subroutine gathers pieces of a distributed dense matrix into a local one. +! Subroutine: psb_zgather_vect +! This subroutine gathers pieces of a distributed vector into a local one. ! ! Arguments: -! globx - complex,dimension(:,:). The local matrix into which gather +! globx - complex,dimension(:). The local matrix into which gather ! the distributed pieces. -! locx - complex,dimension(:,:). The local piece of the distributed -! matrix to be gathered. +! locx - type(psb_z_vect_type@ The local piece of the distributed +! vector to be gathered. ! desc_a - type(psb_desc_type). The communication descriptor. ! info - integer. Error code. ! iroot - integer. The process that has to own the @@ -159,6 +159,8 @@ subroutine psb_zgather_vect(globx, locx, desc_a, info, iroot) end subroutine psb_zgather_vect +! Subroutine: psb_zgather_multivect +! This subroutine gathers pieces of a distributed multivector into a local one. subroutine psb_zgather_multivect(globx, locx, desc_a, info, iroot) use psb_base_mod, psb_protect_name => psb_zgather_multivect diff --git a/base/comm/psb_zgather_a.f90 b/base/comm/psb_zgather_a.f90 index d2c9bd91..1c3838cb 100644 --- a/base/comm/psb_zgather_a.f90 +++ b/base/comm/psb_zgather_a.f90 @@ -31,7 +31,7 @@ ! ! File: psb_zgather.f90 ! -! Subroutine: psb_zgatherm +! Subroutine: psb_zgather ! This subroutine gathers pieces of a distributed dense matrix into a local one. ! ! Arguments: diff --git a/base/comm/psb_zhalo.f90 b/base/comm/psb_zhalo.f90 index 57fe43ee..595cbc03 100644 --- a/base/comm/psb_zhalo.f90 +++ b/base/comm/psb_zhalo.f90 @@ -31,17 +31,17 @@ ! ! File: psb_zhalo.f90 ! -! Subroutine: psb_zhalom +! Subroutine: psb_zhalo_vect ! This subroutine performs the exchange of the halo elements in a -! distributed dense matrix between all the processes. +! distributed vector between all the processes. ! ! Arguments: -! x - complex,dimension(:,:). The local part of the dense matrix. +! x - type(psb_z_vect_type) The local part of the vector ! desc_a - type(psb_desc_type). The communication descriptor. ! info - integer. Return code ! jx - integer(optional). The starting column of the global matrix. ! ik - integer(optional). The number of columns to gather. -! work - complex(optional). Work area. +! work - complex(optional). Work area. ! tran - character(optional). Transpose exchange. ! mode - integer(optional). Communication mode (see Swapdata) ! data - integer Which index list in desc_a should be used @@ -52,7 +52,6 @@ ! psb_comm_mov_ use ovr_mst_idx ! ! - subroutine psb_zhalo_vect(x,desc_a,info,work,tran,mode,data) use psb_base_mod, psb_protect_name => psb_zhalo_vect use psi_mod @@ -185,7 +184,28 @@ subroutine psb_zhalo_vect(x,desc_a,info,work,tran,mode,data) return end subroutine psb_zhalo_vect - +! +! Subroutine: psb_zhalo_multivect +! This subroutine performs the exchange of the halo elements in a +! distributed multivector between all the processes. +! +! Arguments: +! x - type(psb_z_multivect_type) The local part of the multivector +! desc_a - type(psb_desc_type). The communication descriptor. +! info - integer. Return code +! jx - integer(optional). The starting column of the global matrix. +! ik - integer(optional). The number of columns to gather. +! work - complex(optional). Work area. +! tran - character(optional). Transpose exchange. +! mode - integer(optional). Communication mode (see Swapdata) +! data - integer Which index list in desc_a should be used +! to retrieve rows, default psb_comm_halo_ +! psb_comm_halo_ use halo_index +! psb_comm_ext_ use ext_index +! psb_comm_ovrl_ use ovrl_index +! psb_comm_mov_ use ovr_mst_idx +! +! subroutine psb_zhalo_multivect(x,desc_a,info,work,tran,mode,data) use psb_base_mod, psb_protect_name => psb_zhalo_multivect use psi_mod diff --git a/base/comm/psb_zovrl.f90 b/base/comm/psb_zovrl.f90 index 66b42303..c7463e19 100644 --- a/base/comm/psb_zovrl.f90 +++ b/base/comm/psb_zovrl.f90 @@ -32,12 +32,12 @@ ! ! File: psb_zovrl.f90 ! -! Subroutine: psb_zovrlm +! Subroutine: psb_zovrl_vect ! This subroutine performs the exchange of the overlap elements in a -! distributed dense matrix between all the processes. +! distributed dense vector between all the processes. ! ! Arguments: -! x(:,:) - complex The local part of the dense matrix. +! x - type(psb_z_vect_type) The local part of the vector ! desc_a - type(psb_desc_type). The communication descriptor. ! info - integer. Return code. ! jx - integer(optional). The starting column of the global matrix @@ -180,7 +180,38 @@ subroutine psb_zovrl_vect(x,desc_a,info,work,update,mode) return end subroutine psb_zovrl_vect - +! +! Subroutine: psb_zovrl_multivect +! This subroutine performs the exchange of the overlap elements in a +! distributed multivector between all the processes. +! +! Arguments: +! x - type(psb_z_vect_type) The local part of the multivector +! desc_a - type(psb_desc_type). The communication descriptor. +! info - integer. Return code. +! jx - integer(optional). The starting column of the global matrix +! ik - integer(optional). The number of columns to gather. +! work - complex(optional). A work area. +! update - integer(optional). Type of update: +! psb_none_ do nothing +! psb_sum_ sum of overlaps +! psb_avg_ average of overlaps +! mode - integer(optional). Choose the algorithm for data exchange: +! this is chosen through bit fields. +! - swap_mpi = iand(flag,psb_swap_mpi_) /= 0 +! - swap_sync = iand(flag,psb_swap_sync_) /= 0 +! - swap_send = iand(flag,psb_swap_send_) /= 0 +! - swap_recv = iand(flag,psb_swap_recv_) /= 0 +! - if (swap_mpi): use underlying MPI_ALLTOALLV. +! - if (swap_sync): use PSB_SND and PSB_RCV in +! synchronized pairs +! - if (swap_send .and. swap_recv): use mpi_irecv +! and mpi_send +! - if (swap_send): use psb_snd (but need another +! call with swap_recv to complete) +! - if (swap_recv): use psb_rcv (completing a +! previous call with swap_send) +! subroutine psb_zovrl_multivect(x,desc_a,info,work,update,mode) use psb_base_mod, psb_protect_name => psb_zovrl_multivect use psi_mod diff --git a/base/comm/psb_zscatter.F90 b/base/comm/psb_zscatter.F90 index 008f8084..10c2c78d 100644 --- a/base/comm/psb_zscatter.F90 +++ b/base/comm/psb_zscatter.F90 @@ -31,13 +31,13 @@ ! ! File: psb_zscatter.f90 ! -! Subroutine: psb_zscatterm -! This subroutine scatters a global matrix locally owned by one process -! into pieces that are local to alle the processes. +! Subroutine: psb_zscatter_vect +! This subroutine scatters a global vector locally owned by one process +! into pieces that are local to all the processes. ! ! Arguments: -! globx - complex,dimension(:,:). The global matrix to scatter. -! locx - complex,dimension(:,:). The local piece of the distributed matrix. +! globx - complex,dimension(:) The global matrix to scatter. +! locx - type(psb_z_vect_type) The local piece of the distributed matrix. ! desc_a - type(psb_desc_type). The communication descriptor. ! info - integer. Error code. ! iroot - integer(optional). The process that owns the global matrix. diff --git a/base/comm/psb_zscatter_a.F90 b/base/comm/psb_zscatter_a.F90 index 6b7f7d7d..b206d8d3 100644 --- a/base/comm/psb_zscatter_a.F90 +++ b/base/comm/psb_zscatter_a.F90 @@ -33,7 +33,7 @@ ! ! Subroutine: psb_zscatterm ! This subroutine scatters a global matrix locally owned by one process -! into pieces that are local to alle the processes. +! into pieces that are local to all the processes. ! ! Arguments: ! globx - complex,dimension(:,:). The global matrix to scatter. @@ -107,8 +107,8 @@ subroutine psb_zscatterm(globx, locx, desc_a, info, root) m = desc_a%get_global_rows() n = desc_a%get_global_cols() - icomm = psb_get_mpicomm(ictxt) - myrank = psb_get_rank(ictxt,me) + icomm = psb_get_mpi_comm(ictxt) + myrank = psb_get_mpi_rank(ictxt,me) if (iroot==-1) then lda_globx = size(globx, 1) @@ -159,7 +159,7 @@ subroutine psb_zscatterm(globx, locx, desc_a, info, root) end do else - rootrank = psb_get_rank(ictxt,iroot) + rootrank = psb_get_mpi_rank(ictxt,iroot) ! ! This is potentially unsafe when IPK=8 ! But then, IPK=8 is highly experimental anyway. @@ -278,7 +278,7 @@ end subroutine psb_zscatterm ! Subroutine: psb_zscatterv ! This subroutine scatters a global vector locally owned by one process -! into pieces that are local to alle the processes. +! into pieces that are local to all the processes. ! ! Arguments: ! globx - complex,dimension(:). The global vector to scatter. @@ -347,8 +347,8 @@ subroutine psb_zscatterv(globx, locx, desc_a, info, root) iroot = psb_root_ end if - icomm = psb_get_mpicomm(ictxt) - myrank = psb_get_rank(ictxt,iam) + icomm = psb_get_mpi_comm(ictxt) + myrank = psb_get_mpi_rank(ictxt,iam) iglobx = 1 jglobx = 1 @@ -394,7 +394,7 @@ subroutine psb_zscatterv(globx, locx, desc_a, info, root) locx(i)=globx(ltg(i)) end do else - rootrank = psb_get_rank(ictxt,iroot) + rootrank = psb_get_mpi_rank(ictxt,iroot) ! ! This is potentially unsafe when IPK=8 ! But then, IPK=8 is highly experimental anyway. diff --git a/base/comm/psb_zspgather.F90 b/base/comm/psb_zspgather.F90 index fbcae1f3..f4a27681 100644 --- a/base/comm/psb_zspgather.F90 +++ b/base/comm/psb_zspgather.F90 @@ -30,6 +30,17 @@ ! ! ! File: psb_zspgather.f90 +! +! Gathers a sparse matrix onto a single process. +! Two variants: +! 1. Gathers to PSB_z_SPARSE_MAT (i.e. to matrix with IPK_ indices) +! 2. Gathers to PSB_lz_SPARSE_MAT (i.e. to matrix with LPK_ indices) +! +! Note: this function uses MPI_ALLGATHERV. At this time, the size of the +! resulting matrix must be within the range of 4 bytes because of the +! restriction on MPI displacements to be 4 bytes. +! +! subroutine psb_zsp_allgather(globa, loca, desc_a, info, root, dupl,keepnum,keeploc) #if defined(HAVE_ISO_FORTRAN_ENV) use iso_fortran_env diff --git a/base/internals/psi_a2a_fnd_owner.F90 b/base/internals/psi_a2a_fnd_owner.F90 index 3ee6ef9a..52e8b0ae 100644 --- a/base/internals/psi_a2a_fnd_owner.F90 +++ b/base/internals/psi_a2a_fnd_owner.F90 @@ -30,20 +30,22 @@ ! ! ! -! File: psi_fnd_owner.f90 +! File: psi_a2a_fnd_owner.f90 ! -! Subroutine: psi_fnd_owner +! Subroutine: psi_a2a_fnd_owner ! Figure out who owns global indices. ! ! Arguments: -! nv - integer Number of indices required on the calling -! process ! idx(:) - integer Required indices on the calling process. ! Note: the indices should be unique! ! iprc(:) - integer(psb_ipk_), allocatable Output: process identifiers for the corresponding ! indices -! desc_a - type(psb_desc_type). The communication descriptor. +! idxmap - class(psb_indx_map). The index map ! info - integer. return code. +! +! This version does not assume any prior knowledge about the process topology, +! so it goes for an all-to-all by building an auxiliary neighbours list and +! reusing the neighbour version. ! subroutine psi_a2a_fnd_owner(idx,iprc,idxmap,info) use psb_serial_mod @@ -99,7 +101,7 @@ subroutine psi_a2a_fnd_owner(idx,iprc,idxmap,info) end if ! - ! Reuse the other version by tricking it with an adjcncy list + ! Reuse the adjcncy version by tricking it with an adjcncy list ! that contains everybody but ME. ! nv = size(idx) diff --git a/base/internals/psi_adjcncy_fnd_owner.F90 b/base/internals/psi_adjcncy_fnd_owner.F90 index fd1422f1..f26bb38f 100644 --- a/base/internals/psi_adjcncy_fnd_owner.F90 +++ b/base/internals/psi_adjcncy_fnd_owner.F90 @@ -29,13 +29,29 @@ ! POSSIBILITY OF SUCH DAMAGE. ! ! +! ! -! File: psi_fnd_owner.f90 +! File: psi_adjcncy_fnd_owner.f90 ! -! Subroutine: psi_fnd_owner +! Subroutine: psi_adjcncy_fnd_owner ! Figure out who owns global indices. ! ! Arguments: +! idx(:) - integer Required indices on the calling process. +! Note: the indices should be unique! +! iprc(:) - integer(psb_ipk_), allocatable Output: process identifiers for the corresponding +! indices +! adj(:) - integer(psb_ipk_) Input: list of topological neighbours for current process. +! +! idxmap - class(psb_indx_map). The index map +! info - integer. return code. +! +! This version takes on input a list of processes that are assumed to +! be topological neighbours of the current one. Each process will send to all +! of its neighbours the list of indices for which it is trying to find the +! owner, prepare its own answers, and collect answers from others. +! There are three possibile implementations: using mpi_alltoallv, using mpi_isend/irecv, +! using psb_snd/psb_rcv. The default is mpi_alltoallv. ! subroutine psi_adjcncy_fnd_owner(idx,iprc,adj,idxmap,info) use psb_serial_mod @@ -43,6 +59,7 @@ subroutine psi_adjcncy_fnd_owner(idx,iprc,adj,idxmap,info) use psb_error_mod use psb_penv_mod use psb_realloc_mod + use psb_timers_mod use psb_indx_map_mod, psb_protect_name => psi_adjcncy_fnd_owner #ifdef MPI_MOD use mpi @@ -69,8 +86,11 @@ subroutine psi_adjcncy_fnd_owner(idx,iprc,adj,idxmap,info) & last_ih, last_j, nidx, nrecv, nadj integer(psb_lpk_) :: mglob, ih integer(psb_ipk_) :: ictxt,np,me - logical, parameter :: gettime=.false., new_impl=.true. - logical, parameter :: a2av_impl=.true., debug=.false. + logical, parameter :: gettime=.true., debug=.false. + integer(psb_mpk_) :: xchg_alg + logical, parameter :: do_timings=.false. + integer(psb_ipk_), save :: idx_phase1=-1, idx_phase2=-1, idx_phase3=-1 + integer(psb_ipk_), save :: idx_phase11=-1, idx_phase12=-1, idx_phase13=-1 real(psb_dpk_) :: t0, t1, t2, t3, t4, tamx, tidx character(len=20) :: name @@ -84,6 +104,19 @@ subroutine psi_adjcncy_fnd_owner(idx,iprc,adj,idxmap,info) n_row = idxmap%get_lr() n_col = idxmap%get_lc() iictxt = ictxt + if ((do_timings).and.(idx_phase1==-1)) & + & idx_phase1 = psb_get_timer_idx("ADJ_FND_OWN: phase1 ") + if ((do_timings).and.(idx_phase2==-1)) & + & idx_phase2 = psb_get_timer_idx("ADJ_FND_OWN: phase2") + if ((do_timings).and.(idx_phase3==-1)) & + & idx_phase3 = psb_get_timer_idx("ADJ_FND_OWN: phase3") + if ((do_timings).and.(idx_phase11==-1)) & + & idx_phase11 = psb_get_timer_idx("ADJ_FND_OWN: phase11 ") + if ((do_timings).and.(idx_phase12==-1)) & + & idx_phase12 = psb_get_timer_idx("ADJ_FND_OWN: phase12") + if ((do_timings).and.(idx_phase13==-1)) & + & idx_phase13 = psb_get_timer_idx("ADJ_FND_OWN: phase13") + call psb_info(ictxt, me, np) @@ -111,8 +144,11 @@ subroutine psi_adjcncy_fnd_owner(idx,iprc,adj,idxmap,info) end if iprc = -1 ! write(0,*) me,name,' Going through ',nidx,nadj + xchg_alg = psi_get_adj_alg() + select case(xchg_alg) + case(psi_adj_fnd_a2av_) + if (do_timings) call psb_tic(idx_phase1) - if (a2av_impl) then ! ! First simple minded version with auxiliary arrays ! dimensioned on NP. @@ -128,6 +164,7 @@ subroutine psi_adjcncy_fnd_owner(idx,iprc,adj,idxmap,info) ! ! First, send sizes according to adjcncy list ! + if (do_timings) call psb_tic(idx_phase11) sdsz = 0 do j=1, nadj sdsz(adj(j)) = nidx @@ -136,15 +173,20 @@ subroutine psi_adjcncy_fnd_owner(idx,iprc,adj,idxmap,info) call mpi_alltoall(sdsz,1,psb_mpi_mpk_,& & rvsz,1,psb_mpi_mpk_,icomm,minfo) + if (do_timings) call psb_toc(idx_phase11) + if (do_timings) call psb_tic(idx_phase12) rvidx(0) = 0 do i=0, np-1 rvidx(i+1) = rvidx(i) + rvsz(i) end do hsize = rvidx(np) + ! write(0,*)me,' Check on sizes from a2a:',hsize,rvsz(:) ! ! Second, allocate buffers and exchange data ! + if (do_timings) call psb_toc(idx_phase12) + if (do_timings) call psb_tic(idx_phase13) Allocate(rmtidx(hsize),lclidx(max(hsize,nidx*nadj)),& & tproc(max(hsize,nidx)),stat=info) @@ -155,7 +197,9 @@ subroutine psi_adjcncy_fnd_owner(idx,iprc,adj,idxmap,info) call mpi_alltoallv(idx,sdsz,sdidx,psb_mpi_lpk_,& & rmtidx,rvsz,rvidx,psb_mpi_lpk_,icomm,iret) - + if (do_timings) call psb_toc(idx_phase13) + if (do_timings) call psb_toc(idx_phase1) + if (do_timings) call psb_tic(idx_phase2) ! ! Third, compute local answers ! @@ -164,6 +208,8 @@ subroutine psi_adjcncy_fnd_owner(idx,iprc,adj,idxmap,info) tproc(i) = -1 if ((0 < lclidx(i)).and. (lclidx(i) <= n_row)) tproc(i) = me end do + if (do_timings) call psb_toc(idx_phase2) + if (do_timings) call psb_tic(idx_phase3) ! ! Fourth, exchange the answers @@ -175,194 +221,215 @@ subroutine psi_adjcncy_fnd_owner(idx,iprc,adj,idxmap,info) call mpi_alltoallv(tproc,rvsz,rvidx,psb_mpi_ipk_,& & lclidx,sdsz,sdidx,psb_mpi_ipk_,icomm,iret) + ! + ! Because IPRC has been initialized to -1, the MAX operation selects + ! the answers. + ! do i=0, np-1 if (sdsz(i)>0) then ! Must be nidx == sdsz(i) iprc(1:nidx) = max(iprc(1:nidx), lclidx(sdidx(i)+1:sdidx(i)+sdsz(i))) end if end do + if (do_timings) call psb_toc(idx_phase3) if (debug) write(0,*) me,' End of adjcncy_fnd ',iprc(1:nidx) - else - if (new_impl) then - ! - ! First simple minded version with auxiliary arrays - ! dimensioned on NP. - ! Could it be improved with a loop based on the maximum length - ! of adj(:) ??? - ! - Allocate(hidx(0:np),hsz(np),sdsz(0:np-1),rvsz(0:np-1),& - & sdhd(0:np-1), rvhd(0:np-1), p2pstat(mpi_status_size,0:np-1),& - & stat=info) - sdhd(:) = mpi_request_null - rvhd(:) = mpi_request_null - ! - ! First, send sizes according to adjcncy list - ! - sdsz = 0 - do j=1, nadj - sdsz(adj(j)) = nidx - end do - !write(0,*)me,' Check on sizes into a2a:',adj(:),nadj,':',sdsz(:) - - call mpi_alltoall(sdsz,1,psb_mpi_mpk_,& - & rvsz,1,psb_mpi_mpk_,icomm,minfo) - hidx(0) = 0 - do i=0, np-1 - hidx(i+1) = hidx(i) + rvsz(i) - end do - hsize = hidx(np) - ! write(0,*)me,' Check on sizes from a2a:',hsize,rvsz(:) - ! - ! Second, allocate buffers and exchange data - ! - Allocate(rmtidx(hsize),lclidx(max(hsize,nidx*nadj)),tproc(max(hsize,nidx)),stat=info) - - if (info /= psb_success_) then - call psb_errpush(psb_err_from_subroutine_,name,a_err='Allocate') - goto 9999 + + case(psi_adj_fnd_irecv_) + + if (do_timings) call psb_tic(idx_phase1) + ! + ! First simple minded version with auxiliary arrays + ! dimensioned on NP. + ! Could it be improved with a loop based on the maximum length + ! of adj(:) ??? + ! + Allocate(hidx(0:np),hsz(np),sdsz(0:np-1),rvsz(0:np-1),& + & sdhd(0:np-1), rvhd(0:np-1), p2pstat(mpi_status_size,0:np-1),& + & stat=info) + if (do_timings) call psb_tic(idx_phase11) + sdhd(:) = mpi_request_null + rvhd(:) = mpi_request_null + ! + ! First, send sizes according to adjcncy list + ! + sdsz = 0 + do j=1, nadj + sdsz(adj(j)) = nidx + end do + !write(0,*)me,' Check on sizes into a2a:',adj(:),nadj,':',sdsz(:) + + call mpi_alltoall(sdsz,1,psb_mpi_mpk_,& + & rvsz,1,psb_mpi_mpk_,icomm,minfo) + hidx(0) = 0 + do i=0, np-1 + hidx(i+1) = hidx(i) + rvsz(i) + end do + hsize = hidx(np) + ! write(0,*)me,' Check on sizes from a2a:',hsize,rvsz(:) + ! + ! Second, allocate buffers and exchange data + ! + Allocate(rmtidx(hsize),lclidx(max(hsize,nidx*nadj)),tproc(max(hsize,nidx)),stat=info) + + if (info /= psb_success_) then + call psb_errpush(psb_err_from_subroutine_,name,a_err='Allocate') + goto 9999 + end if + do i = 0, np-1 + if (rvsz(i)>0) then + ! write(0,*) me, ' First receive from ',i,rvsz(i) + prc = psb_get_mpi_rank(ictxt,i) + p2ptag = psb_long_swap_tag + !write(0,*) me, ' Posting first receive from ',i,rvsz(i),prc + call mpi_irecv(rmtidx(hidx(i)+1),rvsz(i),& + & psb_mpi_lpk_,prc,& + & p2ptag, icomm,rvhd(i),iret) + end if + end do + if (do_timings) call psb_toc(idx_phase11) + if (do_timings) call psb_tic(idx_phase12) + do j=1, nadj + if (nidx > 0) then + prc = psb_get_mpi_rank(ictxt,adj(j)) + p2ptag = psb_long_swap_tag + !write(0,*) me, ' First send to ',adj(j),nidx, prc + call mpi_send(idx,nidx,& + & psb_mpi_lpk_,prc,& + & p2ptag, icomm,iret) + end if + end do + if (do_timings) call psb_toc(idx_phase12) + if (do_timings) call psb_tic(idx_phase13) + call mpi_waitall(np,rvhd,p2pstat,iret) + if (do_timings) call psb_toc(idx_phase13) + if (do_timings) call psb_toc(idx_phase1) + if (do_timings) call psb_tic(idx_phase2) + + ! + ! Third, compute local answers + ! + call idxmap%g2l(rmtidx(1:hsize),lclidx(1:hsize),info,owned=.true.) + do i=1, hsize + tproc(i) = -1 + if ((0 < lclidx(i)).and. (lclidx(i) <= n_row)) tproc(i) = me + end do + if (do_timings) call psb_toc(idx_phase2) + if (do_timings) call psb_tic(idx_phase3) + ! + ! At this point we can reuse lclidx to receive messages + ! + rvhd(:) = mpi_request_null + do j=1, nadj + !write(0,*) me, ' First send to ',adj(j),nidx + if (nidx > 0) then + prc = psb_get_mpi_rank(ictxt,adj(j)) + p2ptag = psb_int_swap_tag + !write(0,*) me, ' Posting second receive from ',adj(j),nidx, prc + call mpi_irecv(lclidx((j-1)*nidx+1),nidx, & + & psb_mpi_ipk_,prc,& + & p2ptag, icomm,rvhd(j),iret) end if - do i = 0, np-1 - if (rvsz(i)>0) then - ! write(0,*) me, ' First receive from ',i,rvsz(i) - prc = psb_get_rank(ictxt,i) - p2ptag = psb_long_swap_tag - !write(0,*) me, ' Posting first receive from ',i,rvsz(i),prc - call mpi_irecv(rmtidx(hidx(i)+1),rvsz(i),& - & psb_mpi_lpk_,prc,& - & p2ptag, icomm,rvhd(i),iret) - end if - end do - do j=1, nadj - if (nidx > 0) then - prc = psb_get_rank(ictxt,adj(j)) - p2ptag = psb_long_swap_tag - !write(0,*) me, ' First send to ',adj(j),nidx, prc - call mpi_send(idx,nidx,& - & psb_mpi_lpk_,prc,& - & p2ptag, icomm,iret) - end if - end do - call mpi_waitall(np,rvhd,p2pstat,iret) - - ! - ! Third, compute local answers - ! - call idxmap%g2l(rmtidx(1:hsize),lclidx(1:hsize),info,owned=.true.) - do i=1, hsize - tproc(i) = -1 - if ((0 < lclidx(i)).and. (lclidx(i) <= n_row)) tproc(i) = me - end do - ! - ! At this point we can reuse lclidx to receive messages - ! - rvhd(:) = mpi_request_null - do j=1, nadj - !write(0,*) me, ' First send to ',adj(j),nidx - if (nidx > 0) then - prc = psb_get_rank(ictxt,adj(j)) - p2ptag = psb_int_swap_tag - !write(0,*) me, ' Posting second receive from ',adj(j),nidx, prc - call mpi_irecv(lclidx((j-1)*nidx+1),nidx, & - & psb_mpi_ipk_,prc,& - & p2ptag, icomm,rvhd(j),iret) - end if - end do - - ! - ! Fourth, send data back; - ! - do i = 0, np-1 - if (rvsz(i)>0) then - prc = psb_get_rank(ictxt,i) - p2ptag = psb_int_swap_tag - !write(0,*) me, ' Second send to ',i,rvsz(i), prc - call mpi_send(tproc(hidx(i)+1),rvsz(i),& - & psb_mpi_ipk_,prc,& - & p2ptag, icomm,iret) - end if - end do - ! - ! Fifth: receive and combine. MAX works because default - ! answer is -1. - ! - call mpi_waitall(np,rvhd,p2pstat,iret) - do j = 1, nadj - iprc(1:nidx) = max(iprc(1:nidx), lclidx((j-1)*nidx+1:(j-1)*nidx+nidx)) - end do - if (debug) write(0,*) me,' End of adjcncy_fnd ',iprc(1:nidx) - - else - - Allocate(hidx(0:np),hsz(np),& - & sdsz(0:np-1),rvsz(0:np-1),stat=info) - ! - ! First, send sizes according to adjcncy list - ! - sdsz = 0 - do j=1, nadj - sdsz(adj(j)) = nidx - end do - !write(0,*)me,' Check on sizes into a2a:',adj(:),nadj,':',sdsz(:) - - call mpi_alltoall(sdsz,1,psb_mpi_mpk_,& - & rvsz,1,psb_mpi_mpk_,icomm,minfo) - hidx(0) = 0 - do i=0, np-1 - hidx(i+1) = hidx(i) + rvsz(i) - end do - hsize = hidx(np) - ! write(0,*)me,' Check on sizes from a2a:',hsize,rvsz(:) - ! - ! Second, allocate buffers and exchange data - ! - Allocate(rmtidx(hsize),lclidx(hsize),tproc(max(hsize,nidx)),stat=info) - - if (info /= psb_success_) then - call psb_errpush(psb_err_from_subroutine_,name,a_err='Allocate') - goto 9999 + end do + + ! + ! Fourth, send data back; + ! + do i = 0, np-1 + if (rvsz(i)>0) then + prc = psb_get_mpi_rank(ictxt,i) + p2ptag = psb_int_swap_tag + !write(0,*) me, ' Second send to ',i,rvsz(i), prc + call mpi_send(tproc(hidx(i)+1),rvsz(i),& + & psb_mpi_ipk_,prc,& + & p2ptag, icomm,iret) end if - do j=1, nadj - !write(0,*) me, ' First send to ',adj(j),nidx - if (nidx > 0) call psb_snd(ictxt,idx(1:nidx),adj(j)) - end do - do i = 0, np-1 - if (rvsz(i)>0) then - ! write(0,*) me, ' First receive from ',i,rvsz(i) - call psb_rcv(ictxt,rmtidx(hidx(i)+1:hidx(i)+rvsz(i)),i) - end if - end do - - ! - ! Third, compute local answers - ! - call idxmap%g2l(rmtidx(1:hsize),lclidx(1:hsize),info,owned=.true.) - do i=1, hsize - tproc(i) = -1 - if ((0 < lclidx(i)).and. (lclidx(i) <= n_row)) tproc(i) = me - end do - - ! - ! Fourth, send data back; - ! - do i = 0, np-1 - if (rvsz(i)>0) then - !write(0,*) me, ' Second send to ',i,rvsz(i) - call psb_snd(ictxt,tproc(hidx(i)+1:hidx(i)+rvsz(i)),i) - end if - end do - ! - ! Fifth: receive and combine. MAX works because default - ! answer is -1. Reuse tproc - ! - do j = 1, nadj - !write(0,*) me, ' Second receive from ',adj(j), nidx - if (nidx > 0) call psb_rcv(ictxt,tproc(1:nidx),adj(j)) - iprc(1:nidx) = max(iprc(1:nidx), tproc(1:nidx)) - end do + end do + ! + ! Fifth: receive and combine. MAX works because default + ! answer is -1. + ! + call mpi_waitall(np,rvhd,p2pstat,iret) + do j = 1, nadj + iprc(1:nidx) = max(iprc(1:nidx), lclidx((j-1)*nidx+1:(j-1)*nidx+nidx)) + end do + if (do_timings) call psb_toc(idx_phase3) + if (debug) write(0,*) me,' End of adjcncy_fnd ',iprc(1:nidx) + + case(psi_adj_fnd_pbrcv_) + + Allocate(hidx(0:np),hsz(np),& + & sdsz(0:np-1),rvsz(0:np-1),stat=info) + ! + ! First, send sizes according to adjcncy list + ! + sdsz = 0 + do j=1, nadj + sdsz(adj(j)) = nidx + end do + !write(0,*)me,' Check on sizes into a2a:',adj(:),nadj,':',sdsz(:) + + call mpi_alltoall(sdsz,1,psb_mpi_mpk_,& + & rvsz,1,psb_mpi_mpk_,icomm,minfo) + hidx(0) = 0 + do i=0, np-1 + hidx(i+1) = hidx(i) + rvsz(i) + end do + hsize = hidx(np) + ! write(0,*)me,' Check on sizes from a2a:',hsize,rvsz(:) + ! + ! Second, allocate buffers and exchange data + ! + Allocate(rmtidx(hsize),lclidx(hsize),tproc(max(hsize,nidx)),stat=info) + + if (info /= psb_success_) then + call psb_errpush(psb_err_from_subroutine_,name,a_err='Allocate') + goto 9999 end if - end if - + do j=1, nadj + !write(0,*) me, ' First send to ',adj(j),nidx + if (nidx > 0) call psb_snd(ictxt,idx(1:nidx),adj(j)) + end do + do i = 0, np-1 + if (rvsz(i)>0) then + ! write(0,*) me, ' First receive from ',i,rvsz(i) + call psb_rcv(ictxt,rmtidx(hidx(i)+1:hidx(i)+rvsz(i)),i) + end if + end do + + ! + ! Third, compute local answers + ! + call idxmap%g2l(rmtidx(1:hsize),lclidx(1:hsize),info,owned=.true.) + do i=1, hsize + tproc(i) = -1 + if ((0 < lclidx(i)).and. (lclidx(i) <= n_row)) tproc(i) = me + end do + + ! + ! Fourth, send data back; + ! + do i = 0, np-1 + if (rvsz(i)>0) then + !write(0,*) me, ' Second send to ',i,rvsz(i) + call psb_snd(ictxt,tproc(hidx(i)+1:hidx(i)+rvsz(i)),i) + end if + end do + ! + ! Fifth: receive and combine. MAX works because default + ! answer is -1. Reuse tproc + ! + do j = 1, nadj + !write(0,*) me, ' Second receive from ',adj(j), nidx + if (nidx > 0) call psb_rcv(ictxt,tproc(1:nidx),adj(j)) + iprc(1:nidx) = max(iprc(1:nidx), tproc(1:nidx)) + end do + case default + info = psb_err_internal_error_ + call psb_errpush(info,name,a_err='invalid exchange alg choice') + goto 9999 + end select + call psb_erractionrestore(err_act) return diff --git a/base/internals/psi_crea_index.f90 b/base/internals/psi_crea_index.f90 index ec783899..126d54e2 100644 --- a/base/internals/psi_crea_index.f90 +++ b/base/internals/psi_crea_index.f90 @@ -54,6 +54,7 @@ subroutine psi_i_crea_index(desc_a,index_in,index_out,nxch,nsnd,nrcv,info) use psb_desc_mod use psb_error_mod use psb_penv_mod + use psb_timers_mod use psi_mod, psb_protect_name => psi_i_crea_index implicit none @@ -69,6 +70,9 @@ subroutine psi_i_crea_index(desc_a,index_in,index_out,nxch,nsnd,nrcv,info) integer(psb_ipk_),parameter :: root=psb_root_,no_comm=-1 integer(psb_ipk_) :: debug_level, debug_unit character(len=20) :: name + logical, parameter :: do_timings=.false. + integer(psb_ipk_), save :: idx_phase1=-1, idx_phase2=-1, idx_phase3=-1 + integer(psb_ipk_), save :: idx_phase11=-1, idx_phase12=-1, idx_phase13=-1 info = psb_success_ name='psi_crea_index' @@ -84,12 +88,26 @@ subroutine psi_i_crea_index(desc_a,index_in,index_out,nxch,nsnd,nrcv,info) call psb_errpush(info,name) goto 9999 endif + if ((do_timings).and.(idx_phase1==-1)) & + & idx_phase1 = psb_get_timer_idx("PSI_CREA_INDEX: phase1 ") + if ((do_timings).and.(idx_phase2==-1)) & + & idx_phase2 = psb_get_timer_idx("PSI_CREA_INDEX: phase2") + if ((do_timings).and.(idx_phase3==-1)) & + & idx_phase3 = psb_get_timer_idx("PSI_CREA_INDEX: phase3") +!!$ if ((do_timings).and.(idx_phase11==-1)) & +!!$ & idx_phase11 = psb_get_timer_idx("PSI_CREA_INDEX: phase11 ") +!!$ if ((do_timings).and.(idx_phase12==-1)) & +!!$ & idx_phase12 = psb_get_timer_idx("PSI_CREA_INDEX: phase12") +!!$ if ((do_timings).and.(idx_phase13==-1)) & +!!$ & idx_phase13 = psb_get_timer_idx("PSI_CREA_INDEX: phase13") + ! ...extract dependence list (ordered list of identifer process ! which every process must communcate with... if (debug_level >= psb_debug_inner_) & & write(debug_unit,*) me,' ',trim(name),': calling extract_dep_list' mode = 1 + if (do_timings) call psb_tic(idx_phase1) call psi_extract_dep_list(ictxt,& & desc_a%is_bld(), desc_a%is_upd(),& @@ -105,6 +123,8 @@ subroutine psi_i_crea_index(desc_a,index_in,index_out,nxch,nsnd,nrcv,info) ! ...now process root contains dependence list of all processes... if (debug_level >= psb_debug_inner_) & & write(debug_unit,*) me,' ',trim(name),': root sorting dep list' + if (do_timings) call psb_toc(idx_phase1) + if (do_timings) call psb_tic(idx_phase2) call psi_dl_check(dep_list,dl_lda,np,length_dl) @@ -114,6 +134,8 @@ subroutine psi_i_crea_index(desc_a,index_in,index_out,nxch,nsnd,nrcv,info) call psb_errpush(psb_err_from_subroutine_,name,a_err='psi_sort_dl') goto 9999 end if + if (do_timings) call psb_toc(idx_phase2) + if (do_timings) call psb_tic(idx_phase3) if(debug_level >= psb_debug_inner_)& & write(debug_unit,*) me,' ',trim(name),': calling psi_desc_index' @@ -128,6 +150,7 @@ subroutine psi_i_crea_index(desc_a,index_in,index_out,nxch,nsnd,nrcv,info) call psb_errpush(psb_err_from_subroutine_,name,a_err='psi_desc_index') goto 9999 end if + if (do_timings) call psb_toc(idx_phase3) deallocate(dep_list,length_dl) if(debug_level >= psb_debug_inner_) & diff --git a/base/internals/psi_desc_impl.f90 b/base/internals/psi_desc_impl.f90 index b552a8ad..43eae7bb 100644 --- a/base/internals/psi_desc_impl.f90 +++ b/base/internals/psi_desc_impl.f90 @@ -63,6 +63,7 @@ end subroutine psi_renum_index subroutine psi_i_cnv_dsc(halo_in,ovrlap_in,ext_in,cdesc, info, mold) use psi_mod, psi_protect_name => psi_i_cnv_dsc + use psb_timers_mod use psb_realloc_mod implicit none @@ -82,6 +83,9 @@ subroutine psi_i_cnv_dsc(halo_in,ovrlap_in,ext_in,cdesc, info, mold) integer(psb_ipk_) :: debug_level, debug_unit logical, parameter :: debug=.false. character(len=20) :: name + logical, parameter :: do_timings=.false. + integer(psb_ipk_), save :: idx_phase1=-1, idx_phase2=-1, idx_phase3=-1 + integer(psb_ipk_), save :: idx_phase11=-1, idx_phase12=-1, idx_phase13=-1 name='psi_cnv_desc' call psb_get_erraction(err_act) @@ -97,7 +101,22 @@ subroutine psi_i_cnv_dsc(halo_in,ovrlap_in,ext_in,cdesc, info, mold) call psb_errpush(info,name) goto 9999 endif - + if ((do_timings).and.(idx_phase1==-1)) & + & idx_phase1 = psb_get_timer_idx("PSI_CNV_DSC: phase1 ") + if ((do_timings).and.(idx_phase2==-1)) & + & idx_phase2 = psb_get_timer_idx("PSI_CNV_DSC: phase2") + if ((do_timings).and.(idx_phase3==-1)) & + & idx_phase3 = psb_get_timer_idx("PSI_CNV_DSC: phase3") + if ((do_timings).and.(idx_phase11==-1)) & + & idx_phase11 = psb_get_timer_idx("PSI_CNV_DSC: phase11 ") + if ((do_timings).and.(idx_phase12==-1)) & + & idx_phase12 = psb_get_timer_idx("PSI_CNV_DSC: phase12") + if ((do_timings).and.(idx_phase13==-1)) & + & idx_phase13 = psb_get_timer_idx("PSI_CNV_DSC: phase13") + + + if (do_timings) call psb_tic(idx_phase1) + if (do_timings) call psb_tic(idx_phase11) ! first the halo index if (debug_level>0) write(debug_unit,*) me,'Calling crea_index on halo',& @@ -111,6 +130,8 @@ subroutine psi_i_cnv_dsc(halo_in,ovrlap_in,ext_in,cdesc, info, mold) if (debug_level>0) write(debug_unit,*) me,'Done crea_index on halo' if (debug_level>0) write(debug_unit,*) me,'Calling crea_index on ext' + if (do_timings) call psb_toc(idx_phase11) + if (do_timings) call psb_tic(idx_phase12) ! then ext index @@ -124,6 +145,8 @@ subroutine psi_i_cnv_dsc(halo_in,ovrlap_in,ext_in,cdesc, info, mold) if (debug_level>0) write(debug_unit,*) me,'Done crea_index on ext' if (debug_level>0) write(debug_unit,*) me,'Calling crea_index on ovrlap' + if (do_timings) call psb_toc(idx_phase12) + if (do_timings) call psb_tic(idx_phase13) ! then the overlap index call psi_crea_index(cdesc,ovrlap_in, idx_out,nxch,nsnd,nrcv,info) @@ -136,6 +159,9 @@ subroutine psi_i_cnv_dsc(halo_in,ovrlap_in,ext_in,cdesc, info, mold) call psb_errpush(psb_err_from_subroutine_,name,a_err='psb_move_alloc') goto 9999 end if + if (do_timings) call psb_toc(idx_phase13) + if (do_timings) call psb_toc(idx_phase1) + if (do_timings) call psb_tic(idx_phase2) ! next ovrlap_elem @@ -161,6 +187,8 @@ subroutine psi_i_cnv_dsc(halo_in,ovrlap_in,ext_in,cdesc, info, mold) call psb_errpush(psb_err_from_subroutine_,name,a_err='psb_move_alloc') goto 9999 end if + if (do_timings) call psb_toc(idx_phase2) + if (do_timings) call psb_tic(idx_phase3) ! finally bnd_elem call psi_crea_bnd_elem(idx_out,cdesc,info) @@ -177,7 +205,8 @@ subroutine psi_i_cnv_dsc(halo_in,ovrlap_in,ext_in,cdesc, info, mold) goto 9999 end if if (debug_level>0) write(debug_unit,*) me,'Done crea_bnd_elem' - + if (do_timings) call psb_toc(idx_phase3) + call psb_erractionrestore(err_act) return diff --git a/base/internals/psi_desc_index.F90 b/base/internals/psi_desc_index.F90 index 7f36c6ea..f23662f1 100644 --- a/base/internals/psi_desc_index.F90 +++ b/base/internals/psi_desc_index.F90 @@ -128,11 +128,15 @@ subroutine psi_i_desc_index(desc,index_in,dep_list,& integer(psb_mpk_),allocatable :: brvindx(:),rvsz(:),& & bsdindx(:),sdsz(:) + integer(psb_mpk_) :: proc_to_comm, p2ptag, p2pstat(mpi_status_size),& + & iret, sz + integer(psb_mpk_), allocatable :: prcid(:), rvhd(:) + integer(psb_ipk_) :: ihinsz,ntot,k,err_act,nidx,& - & idxr, idxs, iszs, iszr, nesd, nerv + & idxr, idxs, iszs, iszr, nesd, nerv, ixp, idx integer(psb_mpk_) :: icomm, minfo - logical,parameter :: usempi=.true. + logical, parameter :: usempi=.false. integer(psb_ipk_) :: debug_level, debug_unit character(len=20) :: name @@ -255,12 +259,12 @@ subroutine psi_i_desc_index(desc,index_in,dep_list,& call desc%indxmap%l2g(index_in(i+1:i+nerv),& & sndbuf(bsdindx(proc+1)+1:bsdindx(proc+1)+nerv),& & info) - + if (info /= psb_success_) then call psb_errpush(psb_err_from_subroutine_,name,a_err='l2g') goto 9999 end if - + bsdindx(proc+1) = bsdindx(proc+1) + nerv i = i + nerv + 1 end do @@ -282,11 +286,76 @@ subroutine psi_i_desc_index(desc,index_in,dep_list,& idxr = idxr + rvsz(proc+1) end do - call mpi_alltoallv(sndbuf,sdsz,bsdindx,psb_mpi_lpk_,& - & rcvbuf,rvsz,brvindx,psb_mpi_lpk_,icomm,minfo) - if (minfo /= psb_success_) then - call psb_errpush(psb_err_from_subroutine_,name,a_err='mpi_alltoallv') - goto 9999 + if (usempi) then + call mpi_alltoallv(sndbuf,sdsz,bsdindx,psb_mpi_lpk_,& + & rcvbuf,rvsz,brvindx,psb_mpi_lpk_,icomm,minfo) + if (minfo /= psb_success_) then + call psb_errpush(psb_err_from_subroutine_,name,a_err='mpi_alltoallv') + goto 9999 + end if + else + if (.true.) then + allocate(prcid(length_dl),rvhd(length_dl)) + prcid = -1 + ixp = 1 + do i=1, length_dl + proc = dep_list(i) + prcid(ixp) = psb_get_mpi_rank(ictxt,proc) + sz = rvsz(proc+1) + if (sz > 0) then + p2ptag = psb_long_tag + idx = brvindx(proc+1) + call mpi_irecv(rcvbuf(idx+1:idx+sz),sz,& + & psb_mpi_lpk_, prcid(ixp), p2ptag, icomm,& + & rvhd(ixp),iret) + end if + ixp = ixp + 1 + end do + ixp = 1 + do i=1, length_dl + proc = dep_list(i) + prcid(ixp) = psb_get_mpi_rank(ictxt,proc) + sz = sdsz(proc+1) + if (sz > 0) then + p2ptag = psb_long_tag + idx = bsdindx(proc+1) + call mpi_send(sndbuf(idx+1:idx+sz),sz,& + & psb_mpi_lpk_, prcid(ixp), p2ptag, & + & icomm,iret) + end if + ixp = ixp + 1 + end do + ixp = 1 + do i=1, length_dl + proc = dep_list(i) + prcid(ixp) = psb_get_mpi_rank(ictxt,proc) + sz = rvsz(proc+1) + if (sz > 0) then + call mpi_wait(rvhd(ixp),p2pstat,iret) + end if + ixp = ixp + 1 + end do + else + + do i=1, length_dl + proc = dep_list(i) + sz = sdsz(proc+1) + idx = bsdindx(proc+1) + if (sz > 0) then + call psb_snd(ictxt,sndbuf(idx+1:idx+sz), proc) + end if + end do + + do i=1, length_dl + proc = dep_list(i) + sz = rvsz(proc+1) + idx = brvindx(proc+1) + if (sz > 0) then + call psb_rcv(ictxt,rcvbuf(idx+1:idx+sz),proc) + end if + end do + + end if end if ! @@ -327,7 +396,7 @@ subroutine psi_i_desc_index(desc,index_in,dep_list,& return 9999 call psb_error_handler(ictxt,err_act) - + return end subroutine psi_i_desc_index diff --git a/base/internals/psi_extrct_dl.F90 b/base/internals/psi_extrct_dl.F90 index f5fe3c58..95086408 100644 --- a/base/internals/psi_extrct_dl.F90 +++ b/base/internals/psi_extrct_dl.F90 @@ -266,7 +266,7 @@ subroutine psi_i_extract_dep_list(ictxt,is_bld,is_upd,desc_str,dep_list,& end if call psb_sum(iictxt,length_dl(0:np)) - icomm = psb_get_mpicomm(iictxt) + icomm = psb_get_mpi_comm(iictxt) call mpi_allgather(itmp,dl_lda,psb_mpi_ipk_,& & dep_list,dl_lda,psb_mpi_ipk_,icomm,minfo) info = minfo @@ -288,7 +288,7 @@ subroutine psi_i_extract_dep_list(ictxt,is_bld,is_upd,desc_str,dep_list,& goto 9999 end if call psb_sum(iictxt,length_dl(0:np)) - icomm = psb_get_mpicomm(iictxt) + icomm = psb_get_mpi_comm(iictxt) call mpi_allgather(itmp,dl_lda,psb_mpi_ipk_,& & dep_list,dl_lda,psb_mpi_ipk_,icomm,minfo) info = minfo diff --git a/base/internals/psi_graph_fnd_owner.F90 b/base/internals/psi_graph_fnd_owner.F90 index fa7fe47b..f87a5942 100644 --- a/base/internals/psi_graph_fnd_owner.F90 +++ b/base/internals/psi_graph_fnd_owner.F90 @@ -30,20 +30,50 @@ ! ! ! -! File: psi_fnd_owner.f90 ! -! Subroutine: psi_fnd_owner +! File: psi_graph_fnd_owner.f90 +! +! Subroutine: psi_graph_fnd_owner ! Figure out who owns global indices. ! ! Arguments: -! nv - integer Number of indices required on the calling -! process ! idx(:) - integer Required indices on the calling process. -! Note: the indices should be unique! +! ! iprc(:) - integer(psb_ipk_), allocatable Output: process identifiers for the corresponding ! indices -! desc_a - type(psb_desc_type). The communication descriptor. +! idxmap - class(psb_indx_map). The index map ! info - integer. return code. +! +! This is the method to find out who owns a set of indices. +! In principle we could do the following: +! 1. Do an allgatherv of IDX +! 2. For each of the collected indices figure if current proces owns it +! 3. Scatter the results +! 4. Loop through the answers +! This method is guaranteed to find the owner, unless an input index has +! an invalid value, however it could easily require too much additional space +! because each block of indices is replicated to all processes. +! Therefore the current routine takes a different approach: +! -1. Figure out a maximum size for a buffer to collect the IDX; the buffer +! should allow for at least one index from each process (i.e. min size NP); also +! check if we have an adjacency list of processes on input; +! 0. If the initial adjacency list is not empty, use psi_adj_fnd_sweep to go +! through all indices and use multiple calls to psi_adjcncy_fnd_owner +! (up to the buffer size) to see if the owning processes are in the +! initial neighbours list; +! 1. Extract a sample from IDX, up to the buffer size, and do a call +! to psi_a2a_fnd_owner. This is guaranteed to find the owners of all indices +! in the sample; +! 2. Build the list of processes that own the sample indices; these are +! (a subset of) the topological neighbours, and store the list in IDXMAP +! 3. Use psi_adj_fnd_sweep to go through all remaining indices and use +! multiple calls to psi_adjcncy_fnd_owner (up to the buffer size) +! to see if the owning processes are in the current neighbours list; +! 4. If the input indices IDX have not been exhausted, cycle to 1. +! +! Thus, we are alternating between asking all processes for a subset of indices, and +! asking a subset of processes for all the indices, thereby limiting the memory footprint to +! a predefined maximum (that the user can force with psb_cd_set_maxspace()). ! subroutine psi_graph_fnd_owner(idx,iprc,idxmap,info) use psb_serial_mod @@ -51,6 +81,7 @@ subroutine psi_graph_fnd_owner(idx,iprc,idxmap,info) use psb_error_mod use psb_penv_mod use psb_realloc_mod + use psb_timers_mod use psb_desc_mod, psb_protect_name => psi_graph_fnd_owner #ifdef MPI_MOD use mpi @@ -75,8 +106,9 @@ subroutine psi_graph_fnd_owner(idx,iprc,idxmap,info) integer(psb_lpk_) :: mglob, ih integer(psb_ipk_) :: ictxt,np,me, nresp integer(psb_ipk_), parameter :: nt=4 - integer(psb_ipk_) :: tmpv(2) - logical, parameter :: gettime=.false., trace=.false. + integer(psb_ipk_) :: tmpv(4) + logical, parameter :: do_timings=.false., trace=.false. + integer(psb_ipk_), save :: idx_sweep0=-1, idx_loop_a2a=-1, idx_loop_neigh=-1 real(psb_dpk_) :: t0, t1, t2, t3, t4 character(len=20) :: name @@ -90,6 +122,13 @@ subroutine psi_graph_fnd_owner(idx,iprc,idxmap,info) n_row = idxmap%get_lr() n_col = idxmap%get_lc() iictxt = ictxt + if ((do_timings).and.(idx_sweep0==-1)) & + & idx_sweep0 = psb_get_timer_idx("GRPH_FND_OWN: Outer sweep") + if ((do_timings).and.(idx_loop_a2a==-1)) & + & idx_loop_a2a = psb_get_timer_idx("GRPH_FND_OWN: Loop a2a") + if ((do_timings).and.(idx_loop_neigh==-1)) & + & idx_loop_neigh = psb_get_timer_idx("GRPH_FND_OWN: Loop neigh") + call psb_info(ictxt, me, np) @@ -104,17 +143,6 @@ subroutine psi_graph_fnd_owner(idx,iprc,idxmap,info) goto 9999 end if - ! - ! Choice of maxspace should be adjusted to account for a default - ! "sensible" size and/or a user-specified value - ! - tmpv(1) = n_row - tmpv(2) = psb_cd_get_maxspace() - call psb_max(ictxt,tmpv) - locr_max = tmpv(1) - maxspace = min(nt*locr_max,tmpv(2)) - maxspace = max(maxspace,np) - if (trace.and.(me == 0)) write(0,*) ' Through graph_fnd_owner with maxspace:',maxspace ! ! ! @@ -139,9 +167,21 @@ subroutine psi_graph_fnd_owner(idx,iprc,idxmap,info) n_rest = nv - n_answers nrest_max = n_rest + ! + ! Choice of maxspace should be adjusted to account for a default + ! "sensible" size and/or a user-specified value + ! tmpv(1) = nadj tmpv(2) = nrest_max + tmpv(3) = n_row + tmpv(4) = psb_cd_get_maxspace() call psb_max(ictxt,tmpv) + locr_max = tmpv(3) + maxspace = nt*locr_max + if (tmpv(4) > 0) maxspace = min(maxspace,tmpv(4)) + maxspace = max(maxspace,np) + if (trace.and.(me == 0)) write(0,*) ' Through graph_fnd_owner with maxspace:',maxspace + if (do_timings) call psb_tic(idx_sweep0) if ((tmpv(1) > 0).and.(tmpv(2) >0)) then ! ! Do a preliminary run on the user-defined adjacency lists @@ -155,9 +195,10 @@ subroutine psi_graph_fnd_owner(idx,iprc,idxmap,info) call psb_max(ictxt,nrest_max) if (trace.and.(me == 0)) write(0,*) ' After initial sweep:',nrest_max end if - + if (do_timings) call psb_toc(idx_sweep0) fnd_owner_loop: do while (nrest_max>0) + if (do_timings) call psb_tic(idx_loop_a2a) ! ! The basic idea of this loop is to alternate between ! searching through all processes and searching @@ -168,6 +209,7 @@ subroutine psi_graph_fnd_owner(idx,iprc,idxmap,info) ! ! if (trace.and.(me == 0)) write(0,*) 'Looping in graph_fnd_owner: ', nrest_max nsampl_in = min(n_rest,max(1,(maxspace+np-1)/np)) + !nsampl_in = min(n_rest,32) ! ! Choose a sample, should it be done in this simplistic way? ! Note: nsampl_in is a hint, not an absolute, hence nsampl_out @@ -195,7 +237,8 @@ subroutine psi_graph_fnd_owner(idx,iprc,idxmap,info) ladj = tprc(1:nsampl_in) call psb_msort_unique(ladj,nadj) call psb_realloc(nadj,ladj,info) - + if (do_timings) call psb_toc(idx_loop_a2a) + if (do_timings) call psb_tic(idx_loop_neigh) ! ! 4. Extract again a sample and do a neighbourhood search ! so that the total size is <= maxspace @@ -215,6 +258,7 @@ subroutine psi_graph_fnd_owner(idx,iprc,idxmap,info) nrest_max = n_rest call psb_max(ictxt,nrest_max) if (trace.and.(me == 0)) write(0,*) ' fnd_owner_loop remaining:',nrest_max + if (do_timings) call psb_toc(idx_loop_neigh) end do fnd_owner_loop call psb_erractionrestore(err_act) diff --git a/base/internals/psi_indx_map_fnd_owner.F90 b/base/internals/psi_indx_map_fnd_owner.F90 index 014306ff..0aee0806 100644 --- a/base/internals/psi_indx_map_fnd_owner.F90 +++ b/base/internals/psi_indx_map_fnd_owner.F90 @@ -30,20 +30,26 @@ ! ! ! -! File: psi_fnd_owner.f90 +! File: psi_indx_map_fnd_owner.f90 ! -! Subroutine: psi_fnd_owner +! Subroutine: psi_indx_map_fnd_owner ! Figure out who owns global indices. ! ! Arguments: -! nv - integer Number of indices required on the calling -! process ! idx(:) - integer Required indices on the calling process. ! Note: the indices should be unique! ! iprc(:) - integer(psb_ipk_), allocatable Output: process identifiers for the corresponding ! indices -! desc_a - type(psb_desc_type). The communication descriptor. +! idxmap - class(psb_indx_map). The index map ! info - integer. return code. +! +! This is the default implementation of the FND_OWNER method. +! If a particular index map class has additional information, it can override it +! (see e.g. the GEN_BLOCK_MAP class). +! +! 1. Check if IDXM%PARTS is available, and use it; or +! 2. Check if TEMPVG(:) is allocated, and use it; or +! 3. Call the general method PSI_GRAPH_FND_OWNER. ! subroutine psi_indx_map_fnd_owner(idx,iprc,idxmap,info) use psb_serial_mod diff --git a/base/internals/psi_symm_dep_list.F90 b/base/internals/psi_symm_dep_list.F90 index c3c4db84..cd2894c1 100644 --- a/base/internals/psi_symm_dep_list.F90 +++ b/base/internals/psi_symm_dep_list.F90 @@ -70,7 +70,7 @@ subroutine psi_symm_dep_list_inrv(rvsz,adj,ictxt,info) name = 'psi_symm_dep_list' call psb_erractionsave(err_act) - icomm = psb_get_mpicomm(ictxt) + icomm = psb_get_mpi_comm(ictxt) call psb_info(ictxt, me, np) @@ -151,7 +151,7 @@ subroutine psi_symm_dep_list_norv(adj,ictxt,info) name = 'psi_symm_dep_list' call psb_erractionsave(err_act) - icomm = psb_get_mpicomm(ictxt) + icomm = psb_get_mpi_comm(ictxt) call psb_info(ictxt, me, np) diff --git a/base/modules/desc/psb_desc_mod.F90 b/base/modules/desc/psb_desc_mod.F90 index 9728e970..fbc64c8c 100644 --- a/base/modules/desc/psb_desc_mod.F90 +++ b/base/modules/desc/psb_desc_mod.F90 @@ -310,7 +310,7 @@ module psb_desc_mod integer(psb_lpk_), private, save :: cd_large_threshold = psb_default_large_threshold - integer(psb_ipk_), private, save :: cd_maxspace = 1000*1000 + integer(psb_ipk_), private, save :: cd_maxspace = -1 contains diff --git a/base/modules/desc/psb_gen_block_map_mod.F90 b/base/modules/desc/psb_gen_block_map_mod.F90 index 258a69a6..255b05d1 100644 --- a/base/modules/desc/psb_gen_block_map_mod.F90 +++ b/base/modules/desc/psb_gen_block_map_mod.F90 @@ -2005,7 +2005,7 @@ contains idxmap%local_cols = nl idxmap%ictxt = ictxt idxmap%state = psb_desc_bld_ - idxmap%mpic = psb_get_mpicomm(ictxt) + idxmap%mpic = psb_get_mpi_comm(ictxt) idxmap%min_glob_row = vnl(iam)+1 idxmap%max_glob_row = vnl(iam+1) call move_alloc(vnl,idxmap%vnl) diff --git a/base/modules/desc/psb_glist_map_mod.f90 b/base/modules/desc/psb_glist_map_mod.f90 index e894d898..3298291a 100644 --- a/base/modules/desc/psb_glist_map_mod.f90 +++ b/base/modules/desc/psb_glist_map_mod.f90 @@ -126,7 +126,7 @@ contains idxmap%ictxt = ictxt idxmap%state = psb_desc_bld_ - idxmap%mpic = psb_get_mpicomm(ictxt) + idxmap%mpic = psb_get_mpi_comm(ictxt) nl = 0 do i=1, n diff --git a/base/modules/desc/psb_hash_map_mod.f90 b/base/modules/desc/psb_hash_map_mod.f90 index d6769fd5..02eff7a4 100644 --- a/base/modules/desc/psb_hash_map_mod.f90 +++ b/base/modules/desc/psb_hash_map_mod.f90 @@ -961,7 +961,7 @@ contains idxmap%local_cols = nl idxmap%ictxt = ictxt idxmap%state = psb_desc_bld_ - idxmap%mpic = psb_get_mpicomm(ictxt) + idxmap%mpic = psb_get_mpi_comm(ictxt) lc2 = int(1.5*nl) call psb_realloc(lc2,idxmap%loc_to_glob,info) diff --git a/base/modules/desc/psb_indx_map_mod.f90 b/base/modules/desc/psb_indx_map_mod.f90 index 378b38af..0f9d15c6 100644 --- a/base/modules/desc/psb_indx_map_mod.f90 +++ b/base/modules/desc/psb_indx_map_mod.f90 @@ -331,9 +331,40 @@ module psb_indx_map_mod end subroutine psi_symm_dep_list_norv end interface psi_symm_dep_list + integer(psb_mpk_), parameter :: psi_adj_fnd_irecv_ = 0 + integer(psb_mpk_), parameter :: psi_adj_fnd_a2av_ = 1 + integer(psb_mpk_), parameter :: psi_adj_fnd_pbrcv_ = 2 + integer(psb_mpk_), parameter :: psi_adj_alg_max_ = psi_adj_fnd_pbrcv_ + integer(psb_mpk_), save :: psi_adj_alg = psi_adj_fnd_irecv_ + contains + subroutine psi_set_adj_alg(ialg) + integer(psb_mpk_), intent(in) :: ialg + if ((ialg >=0) .and. (ialg <= psi_adj_alg_max_))& + & psi_adj_alg = ialg + end subroutine psi_set_adj_alg + function psi_get_adj_alg() result(val) + integer(psb_mpk_) :: val + val = psi_adj_alg + end function psi_get_adj_alg + + function psi_get_adj_alg_fmt() result(val) + character(len=20) :: val + select case(psi_adj_alg) + case(psi_adj_fnd_a2av_) + val = 'MPI_A2AV' + case(psi_adj_fnd_irecv_) + val = 'MPI_ISEND/IRECV' + case(psi_adj_fnd_pbrcv_) + val = 'PSB_SND/RCV' + case default + val = 'Unknown ?' + end select + end function psi_get_adj_alg_fmt + + !> !! \memberof psb_indx_map !! \brief Print a descriptive name diff --git a/base/modules/desc/psb_list_map_mod.f90 b/base/modules/desc/psb_list_map_mod.f90 index c3dd4154..68223682 100644 --- a/base/modules/desc/psb_list_map_mod.f90 +++ b/base/modules/desc/psb_list_map_mod.f90 @@ -1119,7 +1119,7 @@ contains idxmap%ictxt = ictxt idxmap%state = psb_desc_bld_ - idxmap%mpic = psb_get_mpicomm(ictxt) + idxmap%mpic = psb_get_mpi_comm(ictxt) do i=1, n idxmap%glob_to_loc(i) = -1 end do diff --git a/base/modules/desc/psb_repl_map_mod.f90 b/base/modules/desc/psb_repl_map_mod.f90 index 29a1eb4d..f262c8f5 100644 --- a/base/modules/desc/psb_repl_map_mod.f90 +++ b/base/modules/desc/psb_repl_map_mod.f90 @@ -746,7 +746,7 @@ contains idxmap%local_cols = nl idxmap%ictxt = ictxt idxmap%state = psb_desc_bld_ - idxmap%mpic = psb_get_mpicomm(ictxt) + idxmap%mpic = psb_get_mpi_comm(ictxt) call idxmap%set_state(psb_desc_bld_) end subroutine repl_init diff --git a/base/modules/penv/psi_penv_mod.F90 b/base/modules/penv/psi_penv_mod.F90 index f3f808bb..4d7be808 100644 --- a/base/modules/penv/psi_penv_mod.F90 +++ b/base/modules/penv/psi_penv_mod.F90 @@ -563,17 +563,30 @@ contains end subroutine psb_info_mpik - function psb_get_mpicomm(ictxt) result(comm) + function psb_get_mpi_comm(ictxt) result(comm) integer(psb_mpk_) :: ictxt, comm comm = ictxt - end function psb_get_mpicomm + end function psb_get_mpi_comm - function psb_get_rank(ictxt,id) result(rank) + function psb_get_mpi_rank(ictxt,id) result(rank) integer(psb_mpk_) :: rank,ictxt,id rank = id - end function psb_get_rank + end function psb_get_mpi_rank + + + subroutine psb_get_mpicomm(ictxt,comm) + integer(psb_mpk_) :: ictxt, comm + + comm = psb_get_mpi_comm(ictxt) + end subroutine psb_get_mpicomm + + subroutine psb_get_rank(rank,ictxt,id) + integer(psb_mpk_) :: rank,ictxt,id + + rank = psb_get_mpi_rank(ictxt,id) + end subroutine psb_get_rank ! !!!!!!!!!!!!!!!!!!!!!! diff --git a/base/modules/psb_const_mod.F90 b/base/modules/psb_const_mod.F90 index b0503e4e..92def010 100644 --- a/base/modules/psb_const_mod.F90 +++ b/base/modules/psb_const_mod.F90 @@ -309,5 +309,8 @@ module psb_const_mod integer(psb_ipk_), parameter, public :: psb_err_alloc_request_=4025 integer(psb_ipk_), parameter, public :: psb_err_from_subroutine_non_=4011 integer(psb_ipk_), parameter, public :: psb_err_invalid_istop_=5001 + integer(psb_ipk_), parameter, public :: psb_err_invalid_irst_ =5002 + integer(psb_ipk_), parameter, public :: psb_err_invalid_preci_=5003 + integer(psb_ipk_), parameter, public :: psb_err_invalid_preca_=5004 end module psb_const_mod diff --git a/base/modules/psb_error_mod.F90 b/base/modules/psb_error_mod.F90 index a2e37e84..05e42d35 100644 --- a/base/modules/psb_error_mod.F90 +++ b/base/modules/psb_error_mod.F90 @@ -1043,12 +1043,17 @@ contains achmsg(1) = tmpmsg write(achmsg(2),'("Invalid ISTOP: ",i0)')e_e_d(1) - case(5002) + case(psb_err_invalid_irst_) + allocate(achmsg(2)) + achmsg(1) = tmpmsg + write(achmsg(2),'("Invalid IRST: ",i0)')e_e_d(1) + + case(psb_err_invalid_preci_) allocate(achmsg(2)) achmsg(1) = tmpmsg write(achmsg(2),'("Invalid PREC: ",i0)')e_e_d(1) - case(5003) + case(psb_err_invalid_preca_) allocate(achmsg(2)) achmsg(1) = tmpmsg write(achmsg(2),'("Invalid PREC: ",a3)')a_e_d(1:3) diff --git a/base/modules/psi_i_mod.F90 b/base/modules/psi_i_mod.F90 index e8222753..ac2fcf06 100644 --- a/base/modules/psi_i_mod.F90 +++ b/base/modules/psi_i_mod.F90 @@ -118,11 +118,11 @@ module psi_i_mod & length_dl,dl_lda,mode,info) import implicit none - logical, intent(in) :: is_bld, is_upd - integer(psb_ipk_), intent(in) :: ictxt,mode + logical, intent(in) :: is_bld, is_upd + integer(psb_ipk_), intent(in) :: ictxt, mode integer(psb_ipk_), intent(out) :: dl_lda integer(psb_ipk_), intent(in) :: desc_str(*) - integer(psb_ipk_), allocatable, intent(out) :: dep_list(:,:),length_dl(:) + integer(psb_ipk_), allocatable, intent(out) :: dep_list(:,:), length_dl(:) integer(psb_ipk_), intent(out) :: info end subroutine psi_i_extract_dep_list end interface @@ -131,11 +131,11 @@ module psi_i_mod subroutine psi_i_fnd_owner(nv,idx,iprc,desc,info) import implicit none - integer(psb_ipk_), intent(in) :: nv - integer(psb_ipk_), intent(in) :: idx(:) + integer(psb_ipk_), intent(in) :: nv + integer(psb_ipk_), intent(in) :: idx(:) integer(psb_ipk_), allocatable, intent(out) :: iprc(:) - type(psb_desc_type), intent(inout) :: desc - integer(psb_ipk_), intent(out) :: info + type(psb_desc_type), intent(in) :: desc + integer(psb_ipk_), intent(out) :: info end subroutine psi_i_fnd_owner end interface psi_fnd_owner diff --git a/base/modules/tools/psb_c_tools_mod.f90 b/base/modules/tools/psb_c_tools_mod.f90 index cf838af4..bf02bdc5 100644 --- a/base/modules/tools/psb_c_tools_mod.f90 +++ b/base/modules/tools/psb_c_tools_mod.f90 @@ -37,13 +37,12 @@ Module psb_c_tools_mod use psb_c_multivect_mod, only : psb_c_base_multivect_type, psb_c_multivect_type interface psb_geall - subroutine psb_calloc_vect(x, desc_a,info,n) + subroutine psb_calloc_vect(x, desc_a,info) import implicit none type(psb_c_vect_type), intent(out) :: x type(psb_desc_type), intent(in) :: desc_a integer(psb_ipk_),intent(out) :: info - integer(psb_ipk_), optional, intent(in) :: n end subroutine psb_calloc_vect subroutine psb_calloc_vect_r2(x, desc_a,info,n,lb) import diff --git a/base/modules/tools/psb_d_tools_mod.f90 b/base/modules/tools/psb_d_tools_mod.f90 index c88795b6..faf91045 100644 --- a/base/modules/tools/psb_d_tools_mod.f90 +++ b/base/modules/tools/psb_d_tools_mod.f90 @@ -37,13 +37,12 @@ Module psb_d_tools_mod use psb_d_multivect_mod, only : psb_d_base_multivect_type, psb_d_multivect_type interface psb_geall - subroutine psb_dalloc_vect(x, desc_a,info,n) + subroutine psb_dalloc_vect(x, desc_a,info) import implicit none type(psb_d_vect_type), intent(out) :: x type(psb_desc_type), intent(in) :: desc_a integer(psb_ipk_),intent(out) :: info - integer(psb_ipk_), optional, intent(in) :: n end subroutine psb_dalloc_vect subroutine psb_dalloc_vect_r2(x, desc_a,info,n,lb) import diff --git a/base/modules/tools/psb_i_tools_mod.f90 b/base/modules/tools/psb_i_tools_mod.f90 index 8378dcfb..1faffd66 100644 --- a/base/modules/tools/psb_i_tools_mod.f90 +++ b/base/modules/tools/psb_i_tools_mod.f90 @@ -36,13 +36,12 @@ Module psb_i_tools_mod use psb_i_multivect_mod, only : psb_i_base_multivect_type, psb_i_multivect_type interface psb_geall - subroutine psb_ialloc_vect(x, desc_a,info,n) + subroutine psb_ialloc_vect(x, desc_a,info) import implicit none type(psb_i_vect_type), intent(out) :: x type(psb_desc_type), intent(in) :: desc_a integer(psb_ipk_),intent(out) :: info - integer(psb_ipk_), optional, intent(in) :: n end subroutine psb_ialloc_vect subroutine psb_ialloc_vect_r2(x, desc_a,info,n,lb) import diff --git a/base/modules/tools/psb_l_tools_mod.f90 b/base/modules/tools/psb_l_tools_mod.f90 index 4eca54f3..96f44fd7 100644 --- a/base/modules/tools/psb_l_tools_mod.f90 +++ b/base/modules/tools/psb_l_tools_mod.f90 @@ -36,13 +36,12 @@ Module psb_l_tools_mod use psb_l_multivect_mod, only : psb_l_base_multivect_type, psb_l_multivect_type interface psb_geall - subroutine psb_lalloc_vect(x, desc_a,info,n) + subroutine psb_lalloc_vect(x, desc_a,info) import implicit none type(psb_l_vect_type), intent(out) :: x type(psb_desc_type), intent(in) :: desc_a integer(psb_ipk_),intent(out) :: info - integer(psb_ipk_), optional, intent(in) :: n end subroutine psb_lalloc_vect subroutine psb_lalloc_vect_r2(x, desc_a,info,n,lb) import diff --git a/base/modules/tools/psb_s_tools_mod.f90 b/base/modules/tools/psb_s_tools_mod.f90 index 8a67ed5f..59c576a0 100644 --- a/base/modules/tools/psb_s_tools_mod.f90 +++ b/base/modules/tools/psb_s_tools_mod.f90 @@ -37,13 +37,12 @@ Module psb_s_tools_mod use psb_s_multivect_mod, only : psb_s_base_multivect_type, psb_s_multivect_type interface psb_geall - subroutine psb_salloc_vect(x, desc_a,info,n) + subroutine psb_salloc_vect(x, desc_a,info) import implicit none type(psb_s_vect_type), intent(out) :: x type(psb_desc_type), intent(in) :: desc_a integer(psb_ipk_),intent(out) :: info - integer(psb_ipk_), optional, intent(in) :: n end subroutine psb_salloc_vect subroutine psb_salloc_vect_r2(x, desc_a,info,n,lb) import diff --git a/base/modules/tools/psb_z_tools_mod.f90 b/base/modules/tools/psb_z_tools_mod.f90 index 476dfd02..185aba04 100644 --- a/base/modules/tools/psb_z_tools_mod.f90 +++ b/base/modules/tools/psb_z_tools_mod.f90 @@ -37,13 +37,12 @@ Module psb_z_tools_mod use psb_z_multivect_mod, only : psb_z_base_multivect_type, psb_z_multivect_type interface psb_geall - subroutine psb_zalloc_vect(x, desc_a,info,n) + subroutine psb_zalloc_vect(x, desc_a,info) import implicit none type(psb_z_vect_type), intent(out) :: x type(psb_desc_type), intent(in) :: desc_a integer(psb_ipk_),intent(out) :: info - integer(psb_ipk_), optional, intent(in) :: n end subroutine psb_zalloc_vect subroutine psb_zalloc_vect_r2(x, desc_a,info,n,lb) import diff --git a/base/psblas/psb_camax.f90 b/base/psblas/psb_camax.f90 index 526c5e40..0de31a0c 100644 --- a/base/psblas/psb_camax.f90 +++ b/base/psblas/psb_camax.f90 @@ -32,7 +32,7 @@ ! File: psb_camax.f90 ! ! Function: psb_camax -! Searches the absolute max of X. +! Computes the maximum absolute value of X ! ! normi := max(abs(sub(X)(i)) ! @@ -164,7 +164,7 @@ end function psb_camax !!$ ! ! Function: psb_camaxv -! Searches the absolute max of X. +! Computes the maximum absolute value of X. ! ! normi := max(abs(X(i)) ! @@ -252,6 +252,17 @@ function psb_camaxv (x,desc_a, info,global) result(res) return end function psb_camaxv +! +! Function: psb_camax_vect +! Computes the maximum absolute value of X. +! +! normi := max(abs(X(i)) +! +! Arguments: +! x - type(psb_c_vect_type) The input vector. +! desc_a - type(psb_desc_type). The communication descriptor. +! info - integer. Return code +! function psb_camax_vect(x, desc_a, info,global) result(res) use psb_penv_mod @@ -374,17 +385,16 @@ end function psb_camax_vect !!$ ! ! Subroutine: psb_camaxvs -! Searches the absolute max of X. +! Computes the maximum absolute value of X, subroutine version ! ! normi := max(abs(sub(X)(i)) ! -! where sub( X ) denotes X(1:N,JX:). +! where sub( X ) denotes X(1:N). ! ! Arguments: ! res - real The result. -! x(:,:) - complex The input vector. +! x(:) - complex The input vector. ! desc_a - type(psb_desc_type). The communication descriptor. -! info - integer. Return code ! jx - integer(optional). The column offset. ! subroutine psb_camaxvs(res,x,desc_a, info,global) diff --git a/base/psblas/psb_casum.f90 b/base/psblas/psb_casum.f90 index 2b0beda5..a0bf5262 100644 --- a/base/psblas/psb_casum.f90 +++ b/base/psblas/psb_casum.f90 @@ -135,6 +135,19 @@ function psb_casum (x,desc_a, info, jx,global) result(res) return end function psb_casum +! Function: psb_casum_vect +! Computes norm1 of X +! +! norm1 := sum(sub( X )(i)) +! +! where sub( X ) denotes X(1:N,JX:). +! +! Arguments: +! x - type(psb_c_vect_type) The input vector. +! desc_a - type(psb_desc_type). The communication descriptor. +! info - integer. Return code +! jx - integer(optional). The column offset. +! function psb_casum_vect(x, desc_a, info,global) result(res) use psb_base_mod, psb_protect_name => psb_casum_vect diff --git a/base/psblas/psb_caxpby.f90 b/base/psblas/psb_caxpby.f90 index ab00bd60..daa47829 100644 --- a/base/psblas/psb_caxpby.f90 +++ b/base/psblas/psb_caxpby.f90 @@ -31,6 +31,23 @@ ! ! File: psb_caxpby.f90 +! +! Subroutine: psb_caxpby_vect +! Adds one distributed vector to another, +! +! Y := beta * Y + alpha * X +! +! Arguments: +! alpha - complex,input The scalar used to multiply each component of X +! x - type(psb_c_vect_type) The input vector containing the entries of X +! beta - complex,input The scalar used to multiply each component of Y +! y - type(psb_c_vect_type) The input/output vector Y +! desc_a - type(psb_desc_type) The communication descriptor. +! info - integer Return code +! +! Note: from a functional point of view, X is input, but here +! it's declared INOUT because of the sync() methods. +! subroutine psb_caxpby_vect(alpha, x, beta, y,& & desc_a, info) use psb_base_mod, psb_protect_name => psb_caxpby_vect @@ -269,7 +286,7 @@ end subroutine psb_caxpby !!$ ! ! Subroutine: psb_caxpbyv -! Adds one distributed matrix to another, +! Adds one distributed vector to another, ! ! Y := beta * Y + alpha * X ! diff --git a/base/psblas/psb_cdot.f90 b/base/psblas/psb_cdot.f90 index 39cda431..5432eb32 100644 --- a/base/psblas/psb_cdot.f90 +++ b/base/psblas/psb_cdot.f90 @@ -31,22 +31,22 @@ ! ! File: psb_cdot.f90 ! -! Function: psb_cdot -! psb_cdot forms the dot product of two distributed vectors, +! Function: psb_cdot_vect +! psb_cdot computes the dot product of two distributed vectors, ! -! dot := sub( X )**C * sub( Y ) +! dot := ( X )**C * ( Y ) ! -! where sub( X ) denotes X(:,JX) -! -! sub( Y ) denotes Y(:,JY). ! ! Arguments: -! x(:,:) - complex The input vector containing the entries of sub( X ). -! y(:,:) - complex The input vector containing the entries of sub( Y ). +! x - type(psb_c_vect_type) The input vector containing the entries of sub( X ). +! y - type(psb_c_vect_type) The input vector containing the entries of sub( Y ). ! desc_a - type(psb_desc_type). The communication descriptor. ! info - integer. Return code -! jx - integer(optional). The column offset for sub( X ). -! jy - integer(optional). The column offset for sub( Y ). +! global - logical(optional) Whether to perform the global sum, default: .true. +! +! Note: from a functional point of view, X and Y are input, but here +! they are declared INOUT because of the sync() methods. +! ! function psb_cdot_vect(x, y, desc_a,info,global) result(res) use psb_desc_mod @@ -156,7 +156,25 @@ function psb_cdot_vect(x, y, desc_a,info,global) result(res) return end function psb_cdot_vect - +! +! Function: psb_cdot +! psb_cdot computes the dot product of two distributed vectors, +! +! dot := sub( X )**C * sub( Y ) +! +! where sub( X ) denotes X(:,JX) +! +! sub( Y ) denotes Y(:,JY). +! +! Arguments: +! x(:,:) - complex The input vector containing the entries of sub( X ). +! y(:,:) - complex The input vector containing the entries of sub( Y ). +! desc_a - type(psb_desc_type). The communication descriptor. +! info - integer. Return code +! jx - integer(optional). The column offset for sub( X ). +! jy - integer(optional). The column offset for sub( Y ). +! global - logical(optional) Whether to perform the global sum, default: .true. +! function psb_cdot(x, y,desc_a, info, jx, jy,global) result(res) use psb_base_mod, psb_protect_name => psb_cdot implicit none @@ -298,7 +316,7 @@ end function psb_cdot !!$ ! ! Function: psb_cdotv -! psb_cdotv forms the dot product of two distributed vectors, +! psb_cdotv computes the dot product of two distributed vectors, ! ! dot := X**C * Y ! @@ -307,6 +325,7 @@ end function psb_cdot ! y(:) - complex The input vector containing the entries of Y. ! desc_a - type(psb_desc_type). The communication descriptor. ! info - integer. Return code +! global - logical(optional) Whether to perform the global sum, default: .true. ! function psb_cdotv(x, y,desc_a, info,global) result(res) use psb_base_mod, psb_protect_name => psb_cdotv @@ -432,7 +451,7 @@ end function psb_cdotv !!$ ! ! Subroutine: psb_cdotvs -! psb_cdotvs forms the dot product of two distributed vectors, +! psb_cdotvs computes the dot product of two distributed vectors, ! ! res := X**C * Y ! @@ -442,6 +461,7 @@ end function psb_cdotv ! y(:) - complex The input vector containing the entries of Y. ! desc_a - type(psb_desc_type). The communication descriptor. ! info - integer. Return code +! global - logical(optional) Whether to perform the global sum, default: .true. ! subroutine psb_cdotvs(res, x, y,desc_a, info,global) use psb_base_mod, psb_protect_name => psb_cdotvs @@ -565,7 +585,7 @@ end subroutine psb_cdotvs !!$ ! ! Subroutine: psb_cmdots -! psb_cmdots forms the dot product of multiple distributed vectors, +! psb_cmdots computes the dot product of multiple distributed vectors, ! ! res(i) := ( X(:,i) )**C * ( Y(:,i) ) ! @@ -575,6 +595,7 @@ end subroutine psb_cdotvs ! y(:) - complex The input vector containing the entries of sub( Y ). ! desc_a - type(psb_desc_type). The communication descriptor. ! info - integer. Return code +! global - logical(optional) Whether to perform the global sum, default: .true. ! subroutine psb_cmdots(res, x, y, desc_a, info,global) use psb_base_mod, psb_protect_name => psb_cmdots diff --git a/base/psblas/psb_cnrm2.f90 b/base/psblas/psb_cnrm2.f90 index 43ab876c..1db5773a 100644 --- a/base/psblas/psb_cnrm2.f90 +++ b/base/psblas/psb_cnrm2.f90 @@ -32,9 +32,9 @@ ! File: psb_cnrm2.f90 ! ! Function: psb_cnrm2 -! Forms the norm2 of a distributed vector, +! Computes the norm2 of a distributed vector, ! -! norm2 := sqrt ( sub( X )**T * sub( X ) ) +! norm2 := sqrt ( sub( X )**C * sub( X ) ) ! ! where sub( X ) denotes X(:,JX). ! @@ -43,6 +43,7 @@ ! desc_a - type(psb_desc_type). The communication descriptor. ! info - integer. Return code ! jx - integer(optional). The column offset for sub( X ). +! global - logical(optional) Whether to perform the global reduction, default: .true. ! function psb_cnrm2(x, desc_a, info, jx,global) result(res) use psb_desc_mod @@ -170,14 +171,15 @@ end function psb_cnrm2 !!$ ! ! Function: psb_cnrm2 -! Forms the norm2 of a distributed vector, +! Computes the norm2 of a distributed vector, ! -! norm2 := sqrt ( X**T * X) +! norm2 := sqrt ( X**C * X) ! ! Arguments: ! x(:) - complex The input vector containing the entries of X. ! desc_a - type(psb_desc_type). The communication descriptor. ! info - integer. Return code +! global - logical(optional) Whether to perform the global reduction, default: .true. ! function psb_cnrm2v(x, desc_a, info,global) result(res) use psb_desc_mod @@ -263,7 +265,17 @@ function psb_cnrm2v(x, desc_a, info,global) result(res) end function psb_cnrm2v - +! Function: psb_cnrm2_vect +! Computes the norm2 of a distributed vector, +! +! norm2 := sqrt ( X**C * X) +! +! Arguments: +! x - type(psb_c_vect_type) The input vector containing the entries of X. +! desc_a - type(psb_desc_type). The communication descriptor. +! info - integer. Return code +! global - logical(optional) Whether to perform the global reduction, default: .true. +! function psb_cnrm2_vect(x, desc_a, info,global) result(res) use psb_desc_mod use psb_check_mod @@ -344,7 +356,7 @@ function psb_cnrm2_vect(x, desc_a, info,global) result(res) res = res - sqrt(cone - dd*(abs(x%v%v(idx))/res)**2) end do end if - else + else res = szero end if @@ -392,15 +404,16 @@ end function psb_cnrm2_vect !!$ ! ! Subroutine: psb_cnrm2vs -! Forms the norm2 of a distributed vector, +! Computes the norm2 of a distributed vector, subroutine version ! -! norm2 := sqrt ( X**T * X) +! norm2 := sqrt ( X**C * X) ! ! Arguments: ! res - real The result. ! x(:) - complex The input vector containing the entries of X. ! desc_a - type(psb_desc_type). The communication descriptor. ! info - integer. Return code +! global - logical(optional) Whether to perform the global reduction, default: .true. ! subroutine psb_cnrm2vs(res, x, desc_a, info,global) use psb_desc_mod diff --git a/base/psblas/psb_cnrmi.f90 b/base/psblas/psb_cnrmi.f90 index 0ac0a04b..0abece53 100644 --- a/base/psblas/psb_cnrmi.f90 +++ b/base/psblas/psb_cnrmi.f90 @@ -32,14 +32,15 @@ ! File: psb_cnrmi.f90 ! ! Function: psb_cnrmi -! Forms the infinity norm of a sparse matrix, +! Computes the infinity norm of a sparse matrix, ! -! nrmi := max_i(abs(sum(A(i,:)))) +! nrmi := max_i(sum(abs(A(i,:)))) ! ! Arguments: ! a - type(psb_cspmat_type). The sparse matrix containing A. ! desc_a - type(psb_desc_type). The communication descriptor. ! info - integer. Return code +! global - logical(optional) Whether to perform the global reduction, default: .true. ! function psb_cnrmi(a,desc_a,info,global) result(res) use psb_base_mod, psb_protect_name => psb_cnrmi diff --git a/base/psblas/psb_cspmm.f90 b/base/psblas/psb_cspmm.f90 index 3d1d3b7d..5a059647 100644 --- a/base/psblas/psb_cspmm.f90 +++ b/base/psblas/psb_cspmm.f90 @@ -31,6 +31,235 @@ ! ! File: psb_cspmm.f90 ! +! +! Subroutine: psb_cspm_vect +! Performs one of the distributed matrix-vector operations +! +! Y := alpha * Pr * A * Pc * X + beta * Y, or +! +! Y := alpha * Pr * A' * Pr * X + beta * Y, +! +! alpha and beta are scalars, X and Y are distributed +! vectors and A is a M-by-N distributed matrix. +! +! Arguments: +! alpha - complex The scalar alpha. +! a - type(psb_cspmat_type). The sparse matrix containing A. +! x - type(psb_c_vect_type) The input vector containing the entries of ( X ). +! beta - complex The scalar beta. +! y - type(psb_c_vect_type) The input vector containing the entries of ( Y ). +! desc_a - type(psb_desc_type). The communication descriptor. +! info - integer. Return code +! trans - character(optional). Whether A or A'. Default: 'N' +! work(:) - complex,(optional). Working area. +! doswap - logical(optional). Whether to performe halo updates. +! +subroutine psb_cspmv_vect(alpha,a,x,beta,y,desc_a,info,& + & trans, work, doswap) + use psb_base_mod, psb_protect_name => psb_cspmv_vect + use psi_mod + implicit none + + complex(psb_spk_), intent(in) :: alpha, beta + type(psb_c_vect_type), intent(inout) :: x + type(psb_c_vect_type), intent(inout) :: y + type(psb_cspmat_type), intent(in) :: a + type(psb_desc_type), intent(in) :: desc_a + integer(psb_ipk_), intent(out) :: info + complex(psb_spk_), optional, target, intent(inout) :: work(:) + character, intent(in), optional :: trans + logical, intent(in), optional :: doswap + + ! locals + integer(psb_ipk_) :: ictxt, np, me,& + & err_act, iix, jjx, iia, jja, nrow, ncol, lldx, lldy, & + & liwork, iiy, jjy, ib, ip, idx + integer(psb_lpk_) :: ix, ijx, iy, ijy, m, n, ia, ja + integer(psb_ipk_), parameter :: nb=4 + complex(psb_spk_), pointer :: iwork(:), xp(:), yp(:) + complex(psb_spk_), allocatable :: xvsave(:) + character :: trans_ + character(len=20) :: name, ch_err + logical :: aliw, doswap_ + integer(psb_ipk_) :: debug_level, debug_unit + + name='psb_cspmv' + info=psb_success_ + call psb_erractionsave(err_act) + if (psb_errstatus_fatal()) then + info = psb_err_internal_error_ ; goto 9999 + end if + debug_unit = psb_get_debug_unit() + debug_level = psb_get_debug_level() + + ictxt=desc_a%get_context() + call psb_info(ictxt, me, np) + if (np == -1) then + info = psb_err_context_error_ + call psb_errpush(info,name) + goto 9999 + endif + + if (.not.allocated(x%v)) then + info = psb_err_invalid_vect_state_ + call psb_errpush(info,name) + goto 9999 + endif + if (.not.allocated(y%v)) then + info = psb_err_invalid_vect_state_ + call psb_errpush(info,name) + goto 9999 + endif + + if (present(doswap)) then + doswap_ = doswap + else + doswap_ = .true. + endif + + if (present(trans)) then + trans_ = psb_toupper(trans) + else + trans_ = 'N' + endif + if ( (trans_ == 'N').or.(trans_ == 'T')& + & .or.(trans_ == 'C')) then + else + info = psb_err_iarg_invalid_value_ + call psb_errpush(info,name) + goto 9999 + end if + + m = desc_a%get_global_rows() + n = desc_a%get_global_cols() + nrow = desc_a%get_local_rows() + ncol = desc_a%get_local_cols() + lldx = x%get_nrows() + lldy = y%get_nrows() + if ((info == 0).and.(lldx null() + ! check for presence/size of a work area + liwork= 2*ncol + + if (present(work)) then + if (size(work) >= liwork) then + aliw =.false. + else + aliw=.true. + endif + else + aliw=.true. + end if + + if (aliw) then + allocate(iwork(liwork),stat=info) + if(info /= psb_success_) then + info=psb_err_from_subroutine_ + ch_err='Allocate' + call psb_errpush(info,name,a_err=ch_err) + goto 9999 + end if + else + iwork => work + endif + + if (debug_level >= psb_debug_comp_) & + & write(debug_unit,*) me,' ',trim(name),' Allocated work ', info + + if (trans_ == 'N') then + ! Matrix is not transposed + + if (doswap_) then + call psi_swapdata(ior(psb_swap_send_,psb_swap_recv_),& + & czero,x%v,desc_a,iwork,info,data=psb_comm_halo_) + end if + + call psb_csmm(alpha,a,x,beta,y,info) + + if(info /= psb_success_) then + info = psb_err_from_subroutine_non_ + call psb_errpush(info,name) + goto 9999 + end if + + else + ! Matrix is transposed + + ! + ! Non-empty overlap, need a buffer to hold + ! the entries updated with average operator. + ! Why the average? because in this way they will contribute + ! with a proper scale factor (1/np) to the overall product. + ! + call psi_ovrl_save(x%v,xvsave,desc_a,info) + if (info == psb_success_) call psi_ovrl_upd(x%v,desc_a,psb_avg_,info) + + if (beta /= czero) call y%set(czero,nrow+1,ncol) + ! local Matrix-vector product + if (info == psb_success_) call psb_csmm(alpha,a,x,beta,y,info,trans=trans_) + + if (debug_level >= psb_debug_comp_) & + & write(debug_unit,*) me,' ',trim(name),' csmm ', info + + if (info == psb_success_) call psi_ovrl_restore(x%v,xvsave,desc_a,info) + if (info /= psb_success_) then + info = psb_err_from_subroutine_ + ch_err='psb_csmm' + call psb_errpush(info,name,a_err=ch_err) + goto 9999 + end if + + if (doswap_) then + call psi_swaptran(ior(psb_swap_send_,psb_swap_recv_),& + & cone,y%v,desc_a,iwork,info) + if (info == psb_success_) call psi_swapdata(ior(psb_swap_send_,psb_swap_recv_),& + & cone,y%v,desc_a,iwork,info,data=psb_comm_ovr_) + + if (debug_level >= psb_debug_comp_) & + & write(debug_unit,*) me,' ',trim(name),' swaptran ', info + if(info /= psb_success_) then + info = psb_err_from_subroutine_ + ch_err='PSI_SwapTran' + call psb_errpush(info,name,a_err=ch_err) + goto 9999 + end if + end if + + end if + + if (aliw) deallocate(iwork,stat=info) + if (debug_level >= psb_debug_comp_) & + & write(debug_unit,*) me,' ',trim(name),' deallocat ',aliw, info + if(info /= psb_success_) then + info = psb_err_from_subroutine_ + ch_err='Deallocate iwork' + call psb_errpush(info,name,a_err=ch_err) + goto 9999 + end if + + nullify(iwork) + + call psb_erractionrestore(err_act) + if (debug_level >= psb_debug_comp_) then + call psb_barrier(ictxt) + write(debug_unit,*) me,' ',trim(name),' Returning ' + endif + return + +9999 call psb_error_handler(ictxt,err_act) + + return +end subroutine psb_cspmv_vect +! ! Subroutine: psb_cspmm ! Performs one of the distributed matrix-vector operations ! @@ -356,10 +585,6 @@ subroutine psb_cspmm(alpha,a,x,beta,y,desc_a,info,& return end subroutine psb_cspmm - - - - !!$ !!$ Parallel Sparse BLAS version 3.5 !!$ (C) Copyright 2006-2018 @@ -670,211 +895,3 @@ subroutine psb_cspmv(alpha,a,x,beta,y,desc_a,info,& return end subroutine psb_cspmv - - - -subroutine psb_cspmv_vect(alpha,a,x,beta,y,desc_a,info,& - & trans, work, doswap) - use psb_base_mod, psb_protect_name => psb_cspmv_vect - use psi_mod - implicit none - - complex(psb_spk_), intent(in) :: alpha, beta - type(psb_c_vect_type), intent(inout) :: x - type(psb_c_vect_type), intent(inout) :: y - type(psb_cspmat_type), intent(in) :: a - type(psb_desc_type), intent(in) :: desc_a - integer(psb_ipk_), intent(out) :: info - complex(psb_spk_), optional, target, intent(inout) :: work(:) - character, intent(in), optional :: trans - logical, intent(in), optional :: doswap - - ! locals - integer(psb_ipk_) :: ictxt, np, me,& - & err_act, iix, jjx, iia, jja, nrow, ncol, lldx, lldy, & - & liwork, iiy, jjy, ib, ip, idx - integer(psb_lpk_) :: ix, ijx, iy, ijy, m, n, ia, ja - integer(psb_ipk_), parameter :: nb=4 - complex(psb_spk_), pointer :: iwork(:), xp(:), yp(:) - complex(psb_spk_), allocatable :: xvsave(:) - character :: trans_ - character(len=20) :: name, ch_err - logical :: aliw, doswap_ - integer(psb_ipk_) :: debug_level, debug_unit - - name='psb_cspmv' - info=psb_success_ - call psb_erractionsave(err_act) - if (psb_errstatus_fatal()) then - info = psb_err_internal_error_ ; goto 9999 - end if - debug_unit = psb_get_debug_unit() - debug_level = psb_get_debug_level() - - ictxt=desc_a%get_context() - call psb_info(ictxt, me, np) - if (np == -1) then - info = psb_err_context_error_ - call psb_errpush(info,name) - goto 9999 - endif - - if (.not.allocated(x%v)) then - info = psb_err_invalid_vect_state_ - call psb_errpush(info,name) - goto 9999 - endif - if (.not.allocated(y%v)) then - info = psb_err_invalid_vect_state_ - call psb_errpush(info,name) - goto 9999 - endif - - if (present(doswap)) then - doswap_ = doswap - else - doswap_ = .true. - endif - - if (present(trans)) then - trans_ = psb_toupper(trans) - else - trans_ = 'N' - endif - if ( (trans_ == 'N').or.(trans_ == 'T')& - & .or.(trans_ == 'C')) then - else - info = psb_err_iarg_invalid_value_ - call psb_errpush(info,name) - goto 9999 - end if - - m = desc_a%get_global_rows() - n = desc_a%get_global_cols() - nrow = desc_a%get_local_rows() - ncol = desc_a%get_local_cols() - lldx = x%get_nrows() - lldy = y%get_nrows() - if ((info == 0).and.(lldx null() - ! check for presence/size of a work area - liwork= 2*ncol - - if (present(work)) then - if (size(work) >= liwork) then - aliw =.false. - else - aliw=.true. - endif - else - aliw=.true. - end if - - if (aliw) then - allocate(iwork(liwork),stat=info) - if(info /= psb_success_) then - info=psb_err_from_subroutine_ - ch_err='Allocate' - call psb_errpush(info,name,a_err=ch_err) - goto 9999 - end if - else - iwork => work - endif - - if (debug_level >= psb_debug_comp_) & - & write(debug_unit,*) me,' ',trim(name),' Allocated work ', info - - if (trans_ == 'N') then - ! Matrix is not transposed - - if (doswap_) then - call psi_swapdata(ior(psb_swap_send_,psb_swap_recv_),& - & czero,x%v,desc_a,iwork,info,data=psb_comm_halo_) - end if - - call psb_csmm(alpha,a,x,beta,y,info) - - if(info /= psb_success_) then - info = psb_err_from_subroutine_non_ - call psb_errpush(info,name) - goto 9999 - end if - - else - ! Matrix is transposed - - ! - ! Non-empty overlap, need a buffer to hold - ! the entries updated with average operator. - ! Why the average? because in this way they will contribute - ! with a proper scale factor (1/np) to the overall product. - ! - call psi_ovrl_save(x%v,xvsave,desc_a,info) - if (info == psb_success_) call psi_ovrl_upd(x%v,desc_a,psb_avg_,info) - - if (beta /= czero) call y%set(czero,nrow+1,ncol) - ! local Matrix-vector product - if (info == psb_success_) call psb_csmm(alpha,a,x,beta,y,info,trans=trans_) - - if (debug_level >= psb_debug_comp_) & - & write(debug_unit,*) me,' ',trim(name),' csmm ', info - - if (info == psb_success_) call psi_ovrl_restore(x%v,xvsave,desc_a,info) - if (info /= psb_success_) then - info = psb_err_from_subroutine_ - ch_err='psb_csmm' - call psb_errpush(info,name,a_err=ch_err) - goto 9999 - end if - - if (doswap_) then - call psi_swaptran(ior(psb_swap_send_,psb_swap_recv_),& - & cone,y%v,desc_a,iwork,info) - if (info == psb_success_) call psi_swapdata(ior(psb_swap_send_,psb_swap_recv_),& - & cone,y%v,desc_a,iwork,info,data=psb_comm_ovr_) - - if (debug_level >= psb_debug_comp_) & - & write(debug_unit,*) me,' ',trim(name),' swaptran ', info - if(info /= psb_success_) then - info = psb_err_from_subroutine_ - ch_err='PSI_SwapTran' - call psb_errpush(info,name,a_err=ch_err) - goto 9999 - end if - end if - - end if - - if (aliw) deallocate(iwork,stat=info) - if (debug_level >= psb_debug_comp_) & - & write(debug_unit,*) me,' ',trim(name),' deallocat ',aliw, info - if(info /= psb_success_) then - info = psb_err_from_subroutine_ - ch_err='Deallocate iwork' - call psb_errpush(info,name,a_err=ch_err) - goto 9999 - end if - - nullify(iwork) - - call psb_erractionrestore(err_act) - if (debug_level >= psb_debug_comp_) then - call psb_barrier(ictxt) - write(debug_unit,*) me,' ',trim(name),' Returning ' - endif - return - -9999 call psb_error_handler(ictxt,err_act) - - return -end subroutine psb_cspmv_vect diff --git a/base/psblas/psb_cspnrm1.f90 b/base/psblas/psb_cspnrm1.f90 index a5076a0a..c49fdcc1 100644 --- a/base/psblas/psb_cspnrm1.f90 +++ b/base/psblas/psb_cspnrm1.f90 @@ -40,6 +40,7 @@ ! a - type(psb_cspmat_type). The sparse matrix containing A. ! desc_a - type(psb_desc_type). The communication descriptor. ! info - integer. Return code +! global - logical(optional) Whether to perform the global reduction, default: .true. ! function psb_cspnrm1(a,desc_a,info,global) result(res) use psb_base_mod, psb_protect_name => psb_cspnrm1 diff --git a/base/psblas/psb_cspsm.f90 b/base/psblas/psb_cspsm.f90 index a8e0c570..3fc8138c 100644 --- a/base/psblas/psb_cspsm.f90 +++ b/base/psblas/psb_cspsm.f90 @@ -31,6 +31,203 @@ ! ! File: psb_cspsm.f90 ! +! +! Subroutine: psb_csps_vect +! Performs one of the distributed matrix-vector operations +! +! Y := alpha * Pr * A-1 * Pc * X + beta * Y, or +! +! Y := alpha * D * Pr * A-1 * Pc * X + beta * Y, or +! +! Y := alpha * Pr * A-1 * Pc * D * X + beta * Y, or +! +! Y := alpha * Pr * A-T * Pc * X + beta * Y, or +! +! Y := alpha * D * Pr * A-T * Pc * X + beta * Y, or +! +! Y := alpha * Pr * A-T * Pc * D * X + beta * Y, or +! +! X is a distributed +! vector and T is a M-by-M distributed triangular matrix. +! +! +! Arguments: +! alpha - complex. The scalar alpha. +! a - type(psb_cspmat_type). The sparse matrix containing A. +! x - type(psb_c_vect_type) The input vector containing the entries of ( X ). +! beta - complex The scalar beta. +! y - type(psb_c_vect_type) The input vector containing the entries of ( Y ). +! desc_a - type(psb_desc_type). The communication descriptor. +! info - integer. Return code +! trans - character(optional). Whether A or A'. If not present 'N' is assumed. +! scale - character(optional). Specify some type of operation with +! the diagonal matrix D. +! choice - integer(optional). The kind of update to perform on overlap elements. +! d(:) - complex, optional Matrix for diagonal scaling. +! work(:) - complex, optional Working area. +! +subroutine psb_cspsv_vect(alpha,a,x,beta,y,desc_a,info,& + & trans, scale, choice, diag, work) + use psb_base_mod, psb_protect_name => psb_cspsv_vect + use psi_mod + implicit none + + complex(psb_spk_), intent(in) :: alpha, beta + type(psb_c_vect_type), intent(inout) :: x + type(psb_c_vect_type), intent(inout) :: y + type(psb_cspmat_type), intent(inout) :: a + type(psb_desc_type), intent(in) :: desc_a + integer(psb_ipk_), intent(out) :: info + type(psb_c_vect_type), intent(inout), optional :: diag + complex(psb_spk_), optional, target, intent(inout) :: work(:) + character, intent(in), optional :: trans, scale + integer(psb_ipk_), intent(in), optional :: choice + + ! locals + integer(psb_ipk_) :: ictxt, np, me, & + & err_act, iix, jjx, ia, ja, iia, jja, lldx,lldy, choice_,& + & ix, iy, ik, jx, jy, i, lld,& + & m, nrow, ncol, liwork, llwork, iiy, jjy, idx, ndm + + character :: lscale + integer(psb_ipk_), parameter :: nb=4 + complex(psb_spk_),pointer :: iwork(:), xp(:), yp(:) + character :: itrans + character(len=20) :: name, ch_err + logical :: aliw + + name='psb_cspsv_vect' + info=psb_success_ + call psb_erractionsave(err_act) + if (psb_errstatus_fatal()) then + info = psb_err_internal_error_ ; goto 9999 + end if + + ictxt=desc_a%get_context() + + call psb_info(ictxt, me, np) + if (np == -1) then + info = psb_err_context_error_ + call psb_errpush(info,name) + goto 9999 + endif + + if (.not.allocated(x%v)) then + info = psb_err_invalid_vect_state_ + call psb_errpush(info,name) + goto 9999 + endif + if (.not.allocated(y%v)) then + info = psb_err_invalid_vect_state_ + call psb_errpush(info,name) + goto 9999 + endif + + + if (present(choice)) then + choice_ = choice + else + choice_ = psb_avg_ + endif + + if (present(scale)) then + lscale = psb_toupper(scale) + else + lscale = 'U' + endif + + if (present(trans)) then + itrans = psb_toupper(trans) + if((itrans == 'N').or.(itrans == 'T').or.(itrans == 'C')) then + ! Ok + else + info = psb_err_iarg_invalid_value_ + call psb_errpush(info,name) + goto 9999 + end if + else + itrans = 'N' + endif + + m = desc_a%get_global_rows() + nrow = desc_a%get_local_rows() + ncol = desc_a%get_local_cols() + lldx = x%get_nrows() + lldy = y%get_nrows() + if ((info == 0).and.(lldx null() + ! check for presence/size of a work area + liwork= 2*ncol + + if (present(work)) then + if (size(work) >= liwork) then + aliw =.false. + else + aliw=.true. + endif + else + aliw=.true. + end if + + if (aliw) then + allocate(iwork(liwork),stat=info) + if(info /= psb_success_) then + info=psb_err_from_subroutine_ + ch_err='psb_realloc' + call psb_errpush(info,name,a_err=ch_err) + goto 9999 + end if + else + iwork => work + endif + + iwork(1)=0.d0 + + ! Perform local triangular system solve + if (present(diag)) then + call a%spsm(alpha,x,beta,y,info,scale=scale,d=diag,trans=trans) + else + call a%spsm(alpha,x,beta,y,info,scale=scale,trans=trans) + end if + if(info /= psb_success_) then + info = psb_err_from_subroutine_ + ch_err='dcssm' + call psb_errpush(info,name,a_err=ch_err) + goto 9999 + end if + + ! update overlap elements + if (choice_ > 0) then + call psi_swapdata(ior(psb_swap_send_,psb_swap_recv_),& + & cone,y%v,desc_a,iwork,info,data=psb_comm_ovr_) + + + if (info == psb_success_) call psi_ovrl_upd(y%v,desc_a,choice_,info) + if (info /= psb_success_) then + call psb_errpush(psb_err_from_subroutine_,name,a_err='Inner updates') + goto 9999 + end if + end if + + if (aliw) deallocate(iwork) + + call psb_erractionrestore(err_act) + return + +9999 call psb_error_handler(ictxt,err_act) + + return +end subroutine psb_cspsv_vect +! ! Subroutine: psb_cspsm ! Performs one of the distributed matrix-vector operations ! @@ -283,38 +480,6 @@ subroutine psb_cspsm(alpha,a,x,beta,y,desc_a,info,& return end subroutine psb_cspsm - -!!$ -!!$ Parallel Sparse BLAS version 3.5 -!!$ (C) Copyright 2006-2018 -!!$ Salvatore Filippone University of Rome Tor Vergata -!!$ Alfredo Buttari -!!$ -!!$ Redistribution and use in source and binary forms, with or without -!!$ modification, are permitted provided that the following conditions -!!$ are met: -!!$ 1. Redistributions of source code must retain the above copyright -!!$ notice, this list of conditions and the following disclaimer. -!!$ 2. Redistributions in binary form must reproduce the above copyright -!!$ notice, this list of conditions, and the following disclaimer in the -!!$ documentation and/or other materials provided with the distribution. -!!$ 3. The name of the PSBLAS group or the names of its contributors may -!!$ not be used to endorse or promote products derived from this -!!$ software without specific written permission. -!!$ -!!$ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -!!$ ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED -!!$ TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -!!$ PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE PSBLAS GROUP OR ITS CONTRIBUTORS -!!$ BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -!!$ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -!!$ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -!!$ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -!!$ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -!!$ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -!!$ POSSIBILITY OF SUCH DAMAGE. -!!$ -!!$ ! ! Subroutine: psb_cspsv ! Performs one of the distributed matrix-vector operations @@ -545,166 +710,3 @@ subroutine psb_cspsv(alpha,a,x,beta,y,desc_a,info,& return end subroutine psb_cspsv - -subroutine psb_cspsv_vect(alpha,a,x,beta,y,desc_a,info,& - & trans, scale, choice, diag, work) - use psb_base_mod, psb_protect_name => psb_cspsv_vect - use psi_mod - implicit none - - complex(psb_spk_), intent(in) :: alpha, beta - type(psb_c_vect_type), intent(inout) :: x - type(psb_c_vect_type), intent(inout) :: y - type(psb_cspmat_type), intent(inout) :: a - type(psb_desc_type), intent(in) :: desc_a - integer(psb_ipk_), intent(out) :: info - type(psb_c_vect_type), intent(inout), optional :: diag - complex(psb_spk_), optional, target, intent(inout) :: work(:) - character, intent(in), optional :: trans, scale - integer(psb_ipk_), intent(in), optional :: choice - - ! locals - integer(psb_ipk_) :: ictxt, np, me, & - & err_act, iix, jjx, ia, ja, iia, jja, lldx,lldy, choice_,& - & ix, iy, ik, jx, jy, i, lld,& - & m, nrow, ncol, liwork, llwork, iiy, jjy, idx, ndm - - character :: lscale - integer(psb_ipk_), parameter :: nb=4 - complex(psb_spk_),pointer :: iwork(:), xp(:), yp(:) - character :: itrans - character(len=20) :: name, ch_err - logical :: aliw - - name='psb_sspsv' - info=psb_success_ - call psb_erractionsave(err_act) - if (psb_errstatus_fatal()) then - info = psb_err_internal_error_ ; goto 9999 - end if - - ictxt=desc_a%get_context() - - call psb_info(ictxt, me, np) - if (np == -1) then - info = psb_err_context_error_ - call psb_errpush(info,name) - goto 9999 - endif - - if (.not.allocated(x%v)) then - info = psb_err_invalid_vect_state_ - call psb_errpush(info,name) - goto 9999 - endif - if (.not.allocated(y%v)) then - info = psb_err_invalid_vect_state_ - call psb_errpush(info,name) - goto 9999 - endif - - - if (present(choice)) then - choice_ = choice - else - choice_ = psb_avg_ - endif - - if (present(scale)) then - lscale = psb_toupper(scale) - else - lscale = 'U' - endif - - if (present(trans)) then - itrans = psb_toupper(trans) - if((itrans == 'N').or.(itrans == 'T').or.(itrans == 'C')) then - ! Ok - else - info = psb_err_iarg_invalid_value_ - call psb_errpush(info,name) - goto 9999 - end if - else - itrans = 'N' - endif - - m = desc_a%get_global_rows() - nrow = desc_a%get_local_rows() - ncol = desc_a%get_local_cols() - lldx = x%get_nrows() - lldy = y%get_nrows() - if ((info == 0).and.(lldx null() - ! check for presence/size of a work area - liwork= 2*ncol - - if (present(work)) then - if (size(work) >= liwork) then - aliw =.false. - else - aliw=.true. - endif - else - aliw=.true. - end if - - if (aliw) then - allocate(iwork(liwork),stat=info) - if(info /= psb_success_) then - info=psb_err_from_subroutine_ - ch_err='psb_realloc' - call psb_errpush(info,name,a_err=ch_err) - goto 9999 - end if - else - iwork => work - endif - - iwork(1)=0.d0 - - ! Perform local triangular system solve - if (present(diag)) then - call a%spsm(alpha,x,beta,y,info,scale=scale,d=diag,trans=trans) - else - call a%spsm(alpha,x,beta,y,info,scale=scale,trans=trans) - end if - if(info /= psb_success_) then - info = psb_err_from_subroutine_ - ch_err='dcssm' - call psb_errpush(info,name,a_err=ch_err) - goto 9999 - end if - - ! update overlap elements - if (choice_ > 0) then - call psi_swapdata(ior(psb_swap_send_,psb_swap_recv_),& - & cone,y%v,desc_a,iwork,info,data=psb_comm_ovr_) - - - if (info == psb_success_) call psi_ovrl_upd(y%v,desc_a,choice_,info) - if (info /= psb_success_) then - call psb_errpush(psb_err_from_subroutine_,name,a_err='Inner updates') - goto 9999 - end if - end if - - if (aliw) deallocate(iwork) - - call psb_erractionrestore(err_act) - return - -9999 call psb_error_handler(ictxt,err_act) - - return -end subroutine psb_cspsv_vect - diff --git a/base/psblas/psb_damax.f90 b/base/psblas/psb_damax.f90 index 33dd2dc9..0f3ea0b6 100644 --- a/base/psblas/psb_damax.f90 +++ b/base/psblas/psb_damax.f90 @@ -32,7 +32,7 @@ ! File: psb_damax.f90 ! ! Function: psb_damax -! Searches the absolute max of X. +! Computes the maximum absolute value of X ! ! normi := max(abs(sub(X)(i)) ! @@ -164,7 +164,7 @@ end function psb_damax !!$ ! ! Function: psb_damaxv -! Searches the absolute max of X. +! Computes the maximum absolute value of X. ! ! normi := max(abs(X(i)) ! @@ -252,6 +252,17 @@ function psb_damaxv (x,desc_a, info,global) result(res) return end function psb_damaxv +! +! Function: psb_damax_vect +! Computes the maximum absolute value of X. +! +! normi := max(abs(X(i)) +! +! Arguments: +! x - type(psb_d_vect_type) The input vector. +! desc_a - type(psb_desc_type). The communication descriptor. +! info - integer. Return code +! function psb_damax_vect(x, desc_a, info,global) result(res) use psb_penv_mod @@ -374,17 +385,16 @@ end function psb_damax_vect !!$ ! ! Subroutine: psb_damaxvs -! Searches the absolute max of X. +! Computes the maximum absolute value of X, subroutine version ! ! normi := max(abs(sub(X)(i)) ! -! where sub( X ) denotes X(1:N,JX:). +! where sub( X ) denotes X(1:N). ! ! Arguments: ! res - real The result. -! x(:,:) - real The input vector. +! x(:) - real The input vector. ! desc_a - type(psb_desc_type). The communication descriptor. -! info - integer. Return code ! jx - integer(optional). The column offset. ! subroutine psb_damaxvs(res,x,desc_a, info,global) diff --git a/base/psblas/psb_dasum.f90 b/base/psblas/psb_dasum.f90 index cf2d8fe3..5de367f7 100644 --- a/base/psblas/psb_dasum.f90 +++ b/base/psblas/psb_dasum.f90 @@ -135,6 +135,19 @@ function psb_dasum (x,desc_a, info, jx,global) result(res) return end function psb_dasum +! Function: psb_dasum_vect +! Computes norm1 of X +! +! norm1 := sum(sub( X )(i)) +! +! where sub( X ) denotes X(1:N,JX:). +! +! Arguments: +! x - type(psb_d_vect_type) The input vector. +! desc_a - type(psb_desc_type). The communication descriptor. +! info - integer. Return code +! jx - integer(optional). The column offset. +! function psb_dasum_vect(x, desc_a, info,global) result(res) use psb_base_mod, psb_protect_name => psb_dasum_vect diff --git a/base/psblas/psb_daxpby.f90 b/base/psblas/psb_daxpby.f90 index b1c83d3a..73f62881 100644 --- a/base/psblas/psb_daxpby.f90 +++ b/base/psblas/psb_daxpby.f90 @@ -31,6 +31,23 @@ ! ! File: psb_daxpby.f90 +! +! Subroutine: psb_daxpby_vect +! Adds one distributed vector to another, +! +! Y := beta * Y + alpha * X +! +! Arguments: +! alpha - real,input The scalar used to multiply each component of X +! x - type(psb_d_vect_type) The input vector containing the entries of X +! beta - real,input The scalar used to multiply each component of Y +! y - type(psb_d_vect_type) The input/output vector Y +! desc_a - type(psb_desc_type) The communication descriptor. +! info - integer Return code +! +! Note: from a functional point of view, X is input, but here +! it's declared INOUT because of the sync() methods. +! subroutine psb_daxpby_vect(alpha, x, beta, y,& & desc_a, info) use psb_base_mod, psb_protect_name => psb_daxpby_vect @@ -269,7 +286,7 @@ end subroutine psb_daxpby !!$ ! ! Subroutine: psb_daxpbyv -! Adds one distributed matrix to another, +! Adds one distributed vector to another, ! ! Y := beta * Y + alpha * X ! diff --git a/base/psblas/psb_ddot.f90 b/base/psblas/psb_ddot.f90 index c2231d8a..ba1d9619 100644 --- a/base/psblas/psb_ddot.f90 +++ b/base/psblas/psb_ddot.f90 @@ -31,22 +31,22 @@ ! ! File: psb_ddot.f90 ! -! Function: psb_ddot -! psb_ddot forms the dot product of two distributed vectors, +! Function: psb_ddot_vect +! psb_ddot computes the dot product of two distributed vectors, ! -! dot := sub( X )**C * sub( Y ) +! dot := ( X )**C * ( Y ) ! -! where sub( X ) denotes X(:,JX) -! -! sub( Y ) denotes Y(:,JY). ! ! Arguments: -! x(:,:) - complex The input vector containing the entries of sub( X ). -! y(:,:) - complex The input vector containing the entries of sub( Y ). +! x - type(psb_d_vect_type) The input vector containing the entries of sub( X ). +! y - type(psb_d_vect_type) The input vector containing the entries of sub( Y ). ! desc_a - type(psb_desc_type). The communication descriptor. ! info - integer. Return code -! jx - integer(optional). The column offset for sub( X ). -! jy - integer(optional). The column offset for sub( Y ). +! global - logical(optional) Whether to perform the global sum, default: .true. +! +! Note: from a functional point of view, X and Y are input, but here +! they are declared INOUT because of the sync() methods. +! ! function psb_ddot_vect(x, y, desc_a,info,global) result(res) use psb_desc_mod @@ -156,7 +156,25 @@ function psb_ddot_vect(x, y, desc_a,info,global) result(res) return end function psb_ddot_vect - +! +! Function: psb_ddot +! psb_ddot computes the dot product of two distributed vectors, +! +! dot := sub( X )**C * sub( Y ) +! +! where sub( X ) denotes X(:,JX) +! +! sub( Y ) denotes Y(:,JY). +! +! Arguments: +! x(:,:) - real The input vector containing the entries of sub( X ). +! y(:,:) - real The input vector containing the entries of sub( Y ). +! desc_a - type(psb_desc_type). The communication descriptor. +! info - integer. Return code +! jx - integer(optional). The column offset for sub( X ). +! jy - integer(optional). The column offset for sub( Y ). +! global - logical(optional) Whether to perform the global sum, default: .true. +! function psb_ddot(x, y,desc_a, info, jx, jy,global) result(res) use psb_base_mod, psb_protect_name => psb_ddot implicit none @@ -298,7 +316,7 @@ end function psb_ddot !!$ ! ! Function: psb_ddotv -! psb_ddotv forms the dot product of two distributed vectors, +! psb_ddotv computes the dot product of two distributed vectors, ! ! dot := X**C * Y ! @@ -307,6 +325,7 @@ end function psb_ddot ! y(:) - real The input vector containing the entries of Y. ! desc_a - type(psb_desc_type). The communication descriptor. ! info - integer. Return code +! global - logical(optional) Whether to perform the global sum, default: .true. ! function psb_ddotv(x, y,desc_a, info,global) result(res) use psb_base_mod, psb_protect_name => psb_ddotv @@ -432,7 +451,7 @@ end function psb_ddotv !!$ ! ! Subroutine: psb_ddotvs -! psb_ddotvs forms the dot product of two distributed vectors, +! psb_ddotvs computes the dot product of two distributed vectors, ! ! res := X**C * Y ! @@ -442,6 +461,7 @@ end function psb_ddotv ! y(:) - real The input vector containing the entries of Y. ! desc_a - type(psb_desc_type). The communication descriptor. ! info - integer. Return code +! global - logical(optional) Whether to perform the global sum, default: .true. ! subroutine psb_ddotvs(res, x, y,desc_a, info,global) use psb_base_mod, psb_protect_name => psb_ddotvs @@ -565,7 +585,7 @@ end subroutine psb_ddotvs !!$ ! ! Subroutine: psb_dmdots -! psb_dmdots forms the dot product of multiple distributed vectors, +! psb_dmdots computes the dot product of multiple distributed vectors, ! ! res(i) := ( X(:,i) )**C * ( Y(:,i) ) ! @@ -575,6 +595,7 @@ end subroutine psb_ddotvs ! y(:) - real The input vector containing the entries of sub( Y ). ! desc_a - type(psb_desc_type). The communication descriptor. ! info - integer. Return code +! global - logical(optional) Whether to perform the global sum, default: .true. ! subroutine psb_dmdots(res, x, y, desc_a, info,global) use psb_base_mod, psb_protect_name => psb_dmdots diff --git a/base/psblas/psb_dnrm2.f90 b/base/psblas/psb_dnrm2.f90 index b72a72ee..0845aac4 100644 --- a/base/psblas/psb_dnrm2.f90 +++ b/base/psblas/psb_dnrm2.f90 @@ -32,9 +32,9 @@ ! File: psb_dnrm2.f90 ! ! Function: psb_dnrm2 -! Forms the norm2 of a distributed vector, +! Computes the norm2 of a distributed vector, ! -! norm2 := sqrt ( sub( X )**T * sub( X ) ) +! norm2 := sqrt ( sub( X )**C * sub( X ) ) ! ! where sub( X ) denotes X(:,JX). ! @@ -43,6 +43,7 @@ ! desc_a - type(psb_desc_type). The communication descriptor. ! info - integer. Return code ! jx - integer(optional). The column offset for sub( X ). +! global - logical(optional) Whether to perform the global reduction, default: .true. ! function psb_dnrm2(x, desc_a, info, jx,global) result(res) use psb_desc_mod @@ -170,14 +171,15 @@ end function psb_dnrm2 !!$ ! ! Function: psb_dnrm2 -! Forms the norm2 of a distributed vector, +! Computes the norm2 of a distributed vector, ! -! norm2 := sqrt ( X**T * X) +! norm2 := sqrt ( X**C * X) ! ! Arguments: ! x(:) - real The input vector containing the entries of X. ! desc_a - type(psb_desc_type). The communication descriptor. ! info - integer. Return code +! global - logical(optional) Whether to perform the global reduction, default: .true. ! function psb_dnrm2v(x, desc_a, info,global) result(res) use psb_desc_mod @@ -263,7 +265,17 @@ function psb_dnrm2v(x, desc_a, info,global) result(res) end function psb_dnrm2v - +! Function: psb_dnrm2_vect +! Computes the norm2 of a distributed vector, +! +! norm2 := sqrt ( X**C * X) +! +! Arguments: +! x - type(psb_d_vect_type) The input vector containing the entries of X. +! desc_a - type(psb_desc_type). The communication descriptor. +! info - integer. Return code +! global - logical(optional) Whether to perform the global reduction, default: .true. +! function psb_dnrm2_vect(x, desc_a, info,global) result(res) use psb_desc_mod use psb_check_mod @@ -344,7 +356,7 @@ function psb_dnrm2_vect(x, desc_a, info,global) result(res) res = res - sqrt(done - dd*(abs(x%v%v(idx))/res)**2) end do end if - else + else res = dzero end if @@ -392,15 +404,16 @@ end function psb_dnrm2_vect !!$ ! ! Subroutine: psb_dnrm2vs -! Forms the norm2 of a distributed vector, +! Computes the norm2 of a distributed vector, subroutine version ! -! norm2 := sqrt ( X**T * X) +! norm2 := sqrt ( X**C * X) ! ! Arguments: ! res - real The result. ! x(:) - real The input vector containing the entries of X. ! desc_a - type(psb_desc_type). The communication descriptor. ! info - integer. Return code +! global - logical(optional) Whether to perform the global reduction, default: .true. ! subroutine psb_dnrm2vs(res, x, desc_a, info,global) use psb_desc_mod diff --git a/base/psblas/psb_dnrmi.f90 b/base/psblas/psb_dnrmi.f90 index 6d585981..a6a97751 100644 --- a/base/psblas/psb_dnrmi.f90 +++ b/base/psblas/psb_dnrmi.f90 @@ -32,14 +32,15 @@ ! File: psb_dnrmi.f90 ! ! Function: psb_dnrmi -! Forms the infinity norm of a sparse matrix, +! Computes the infinity norm of a sparse matrix, ! -! nrmi := max_i(abs(sum(A(i,:)))) +! nrmi := max_i(sum(abs(A(i,:)))) ! ! Arguments: ! a - type(psb_dspmat_type). The sparse matrix containing A. ! desc_a - type(psb_desc_type). The communication descriptor. ! info - integer. Return code +! global - logical(optional) Whether to perform the global reduction, default: .true. ! function psb_dnrmi(a,desc_a,info,global) result(res) use psb_base_mod, psb_protect_name => psb_dnrmi diff --git a/base/psblas/psb_dspmm.f90 b/base/psblas/psb_dspmm.f90 index bf262541..1fdf6171 100644 --- a/base/psblas/psb_dspmm.f90 +++ b/base/psblas/psb_dspmm.f90 @@ -31,6 +31,235 @@ ! ! File: psb_dspmm.f90 ! +! +! Subroutine: psb_dspm_vect +! Performs one of the distributed matrix-vector operations +! +! Y := alpha * Pr * A * Pc * X + beta * Y, or +! +! Y := alpha * Pr * A' * Pr * X + beta * Y, +! +! alpha and beta are scalars, X and Y are distributed +! vectors and A is a M-by-N distributed matrix. +! +! Arguments: +! alpha - real The scalar alpha. +! a - type(psb_dspmat_type). The sparse matrix containing A. +! x - type(psb_d_vect_type) The input vector containing the entries of ( X ). +! beta - real The scalar beta. +! y - type(psb_d_vect_type) The input vector containing the entries of ( Y ). +! desc_a - type(psb_desc_type). The communication descriptor. +! info - integer. Return code +! trans - character(optional). Whether A or A'. Default: 'N' +! work(:) - real,(optional). Working area. +! doswap - logical(optional). Whether to performe halo updates. +! +subroutine psb_dspmv_vect(alpha,a,x,beta,y,desc_a,info,& + & trans, work, doswap) + use psb_base_mod, psb_protect_name => psb_dspmv_vect + use psi_mod + implicit none + + real(psb_dpk_), intent(in) :: alpha, beta + type(psb_d_vect_type), intent(inout) :: x + type(psb_d_vect_type), intent(inout) :: y + type(psb_dspmat_type), intent(in) :: a + type(psb_desc_type), intent(in) :: desc_a + integer(psb_ipk_), intent(out) :: info + real(psb_dpk_), optional, target, intent(inout) :: work(:) + character, intent(in), optional :: trans + logical, intent(in), optional :: doswap + + ! locals + integer(psb_ipk_) :: ictxt, np, me,& + & err_act, iix, jjx, iia, jja, nrow, ncol, lldx, lldy, & + & liwork, iiy, jjy, ib, ip, idx + integer(psb_lpk_) :: ix, ijx, iy, ijy, m, n, ia, ja + integer(psb_ipk_), parameter :: nb=4 + real(psb_dpk_), pointer :: iwork(:), xp(:), yp(:) + real(psb_dpk_), allocatable :: xvsave(:) + character :: trans_ + character(len=20) :: name, ch_err + logical :: aliw, doswap_ + integer(psb_ipk_) :: debug_level, debug_unit + + name='psb_dspmv' + info=psb_success_ + call psb_erractionsave(err_act) + if (psb_errstatus_fatal()) then + info = psb_err_internal_error_ ; goto 9999 + end if + debug_unit = psb_get_debug_unit() + debug_level = psb_get_debug_level() + + ictxt=desc_a%get_context() + call psb_info(ictxt, me, np) + if (np == -1) then + info = psb_err_context_error_ + call psb_errpush(info,name) + goto 9999 + endif + + if (.not.allocated(x%v)) then + info = psb_err_invalid_vect_state_ + call psb_errpush(info,name) + goto 9999 + endif + if (.not.allocated(y%v)) then + info = psb_err_invalid_vect_state_ + call psb_errpush(info,name) + goto 9999 + endif + + if (present(doswap)) then + doswap_ = doswap + else + doswap_ = .true. + endif + + if (present(trans)) then + trans_ = psb_toupper(trans) + else + trans_ = 'N' + endif + if ( (trans_ == 'N').or.(trans_ == 'T')& + & .or.(trans_ == 'C')) then + else + info = psb_err_iarg_invalid_value_ + call psb_errpush(info,name) + goto 9999 + end if + + m = desc_a%get_global_rows() + n = desc_a%get_global_cols() + nrow = desc_a%get_local_rows() + ncol = desc_a%get_local_cols() + lldx = x%get_nrows() + lldy = y%get_nrows() + if ((info == 0).and.(lldx null() + ! check for presence/size of a work area + liwork= 2*ncol + + if (present(work)) then + if (size(work) >= liwork) then + aliw =.false. + else + aliw=.true. + endif + else + aliw=.true. + end if + + if (aliw) then + allocate(iwork(liwork),stat=info) + if(info /= psb_success_) then + info=psb_err_from_subroutine_ + ch_err='Allocate' + call psb_errpush(info,name,a_err=ch_err) + goto 9999 + end if + else + iwork => work + endif + + if (debug_level >= psb_debug_comp_) & + & write(debug_unit,*) me,' ',trim(name),' Allocated work ', info + + if (trans_ == 'N') then + ! Matrix is not transposed + + if (doswap_) then + call psi_swapdata(ior(psb_swap_send_,psb_swap_recv_),& + & dzero,x%v,desc_a,iwork,info,data=psb_comm_halo_) + end if + + call psb_csmm(alpha,a,x,beta,y,info) + + if(info /= psb_success_) then + info = psb_err_from_subroutine_non_ + call psb_errpush(info,name) + goto 9999 + end if + + else + ! Matrix is transposed + + ! + ! Non-empty overlap, need a buffer to hold + ! the entries updated with average operator. + ! Why the average? because in this way they will contribute + ! with a proper scale factor (1/np) to the overall product. + ! + call psi_ovrl_save(x%v,xvsave,desc_a,info) + if (info == psb_success_) call psi_ovrl_upd(x%v,desc_a,psb_avg_,info) + + if (beta /= dzero) call y%set(dzero,nrow+1,ncol) + ! local Matrix-vector product + if (info == psb_success_) call psb_csmm(alpha,a,x,beta,y,info,trans=trans_) + + if (debug_level >= psb_debug_comp_) & + & write(debug_unit,*) me,' ',trim(name),' csmm ', info + + if (info == psb_success_) call psi_ovrl_restore(x%v,xvsave,desc_a,info) + if (info /= psb_success_) then + info = psb_err_from_subroutine_ + ch_err='psb_csmm' + call psb_errpush(info,name,a_err=ch_err) + goto 9999 + end if + + if (doswap_) then + call psi_swaptran(ior(psb_swap_send_,psb_swap_recv_),& + & done,y%v,desc_a,iwork,info) + if (info == psb_success_) call psi_swapdata(ior(psb_swap_send_,psb_swap_recv_),& + & done,y%v,desc_a,iwork,info,data=psb_comm_ovr_) + + if (debug_level >= psb_debug_comp_) & + & write(debug_unit,*) me,' ',trim(name),' swaptran ', info + if(info /= psb_success_) then + info = psb_err_from_subroutine_ + ch_err='PSI_SwapTran' + call psb_errpush(info,name,a_err=ch_err) + goto 9999 + end if + end if + + end if + + if (aliw) deallocate(iwork,stat=info) + if (debug_level >= psb_debug_comp_) & + & write(debug_unit,*) me,' ',trim(name),' deallocat ',aliw, info + if(info /= psb_success_) then + info = psb_err_from_subroutine_ + ch_err='Deallocate iwork' + call psb_errpush(info,name,a_err=ch_err) + goto 9999 + end if + + nullify(iwork) + + call psb_erractionrestore(err_act) + if (debug_level >= psb_debug_comp_) then + call psb_barrier(ictxt) + write(debug_unit,*) me,' ',trim(name),' Returning ' + endif + return + +9999 call psb_error_handler(ictxt,err_act) + + return +end subroutine psb_dspmv_vect +! ! Subroutine: psb_dspmm ! Performs one of the distributed matrix-vector operations ! @@ -356,10 +585,6 @@ subroutine psb_dspmm(alpha,a,x,beta,y,desc_a,info,& return end subroutine psb_dspmm - - - - !!$ !!$ Parallel Sparse BLAS version 3.5 !!$ (C) Copyright 2006-2018 @@ -670,211 +895,3 @@ subroutine psb_dspmv(alpha,a,x,beta,y,desc_a,info,& return end subroutine psb_dspmv - - - -subroutine psb_dspmv_vect(alpha,a,x,beta,y,desc_a,info,& - & trans, work, doswap) - use psb_base_mod, psb_protect_name => psb_dspmv_vect - use psi_mod - implicit none - - real(psb_dpk_), intent(in) :: alpha, beta - type(psb_d_vect_type), intent(inout) :: x - type(psb_d_vect_type), intent(inout) :: y - type(psb_dspmat_type), intent(in) :: a - type(psb_desc_type), intent(in) :: desc_a - integer(psb_ipk_), intent(out) :: info - real(psb_dpk_), optional, target, intent(inout) :: work(:) - character, intent(in), optional :: trans - logical, intent(in), optional :: doswap - - ! locals - integer(psb_ipk_) :: ictxt, np, me,& - & err_act, iix, jjx, iia, jja, nrow, ncol, lldx, lldy, & - & liwork, iiy, jjy, ib, ip, idx - integer(psb_lpk_) :: ix, ijx, iy, ijy, m, n, ia, ja - integer(psb_ipk_), parameter :: nb=4 - real(psb_dpk_), pointer :: iwork(:), xp(:), yp(:) - real(psb_dpk_), allocatable :: xvsave(:) - character :: trans_ - character(len=20) :: name, ch_err - logical :: aliw, doswap_ - integer(psb_ipk_) :: debug_level, debug_unit - - name='psb_dspmv' - info=psb_success_ - call psb_erractionsave(err_act) - if (psb_errstatus_fatal()) then - info = psb_err_internal_error_ ; goto 9999 - end if - debug_unit = psb_get_debug_unit() - debug_level = psb_get_debug_level() - - ictxt=desc_a%get_context() - call psb_info(ictxt, me, np) - if (np == -1) then - info = psb_err_context_error_ - call psb_errpush(info,name) - goto 9999 - endif - - if (.not.allocated(x%v)) then - info = psb_err_invalid_vect_state_ - call psb_errpush(info,name) - goto 9999 - endif - if (.not.allocated(y%v)) then - info = psb_err_invalid_vect_state_ - call psb_errpush(info,name) - goto 9999 - endif - - if (present(doswap)) then - doswap_ = doswap - else - doswap_ = .true. - endif - - if (present(trans)) then - trans_ = psb_toupper(trans) - else - trans_ = 'N' - endif - if ( (trans_ == 'N').or.(trans_ == 'T')& - & .or.(trans_ == 'C')) then - else - info = psb_err_iarg_invalid_value_ - call psb_errpush(info,name) - goto 9999 - end if - - m = desc_a%get_global_rows() - n = desc_a%get_global_cols() - nrow = desc_a%get_local_rows() - ncol = desc_a%get_local_cols() - lldx = x%get_nrows() - lldy = y%get_nrows() - if ((info == 0).and.(lldx null() - ! check for presence/size of a work area - liwork= 2*ncol - - if (present(work)) then - if (size(work) >= liwork) then - aliw =.false. - else - aliw=.true. - endif - else - aliw=.true. - end if - - if (aliw) then - allocate(iwork(liwork),stat=info) - if(info /= psb_success_) then - info=psb_err_from_subroutine_ - ch_err='Allocate' - call psb_errpush(info,name,a_err=ch_err) - goto 9999 - end if - else - iwork => work - endif - - if (debug_level >= psb_debug_comp_) & - & write(debug_unit,*) me,' ',trim(name),' Allocated work ', info - - if (trans_ == 'N') then - ! Matrix is not transposed - - if (doswap_) then - call psi_swapdata(ior(psb_swap_send_,psb_swap_recv_),& - & dzero,x%v,desc_a,iwork,info,data=psb_comm_halo_) - end if - - call psb_csmm(alpha,a,x,beta,y,info) - - if(info /= psb_success_) then - info = psb_err_from_subroutine_non_ - call psb_errpush(info,name) - goto 9999 - end if - - else - ! Matrix is transposed - - ! - ! Non-empty overlap, need a buffer to hold - ! the entries updated with average operator. - ! Why the average? because in this way they will contribute - ! with a proper scale factor (1/np) to the overall product. - ! - call psi_ovrl_save(x%v,xvsave,desc_a,info) - if (info == psb_success_) call psi_ovrl_upd(x%v,desc_a,psb_avg_,info) - - if (beta /= dzero) call y%set(dzero,nrow+1,ncol) - ! local Matrix-vector product - if (info == psb_success_) call psb_csmm(alpha,a,x,beta,y,info,trans=trans_) - - if (debug_level >= psb_debug_comp_) & - & write(debug_unit,*) me,' ',trim(name),' csmm ', info - - if (info == psb_success_) call psi_ovrl_restore(x%v,xvsave,desc_a,info) - if (info /= psb_success_) then - info = psb_err_from_subroutine_ - ch_err='psb_csmm' - call psb_errpush(info,name,a_err=ch_err) - goto 9999 - end if - - if (doswap_) then - call psi_swaptran(ior(psb_swap_send_,psb_swap_recv_),& - & done,y%v,desc_a,iwork,info) - if (info == psb_success_) call psi_swapdata(ior(psb_swap_send_,psb_swap_recv_),& - & done,y%v,desc_a,iwork,info,data=psb_comm_ovr_) - - if (debug_level >= psb_debug_comp_) & - & write(debug_unit,*) me,' ',trim(name),' swaptran ', info - if(info /= psb_success_) then - info = psb_err_from_subroutine_ - ch_err='PSI_SwapTran' - call psb_errpush(info,name,a_err=ch_err) - goto 9999 - end if - end if - - end if - - if (aliw) deallocate(iwork,stat=info) - if (debug_level >= psb_debug_comp_) & - & write(debug_unit,*) me,' ',trim(name),' deallocat ',aliw, info - if(info /= psb_success_) then - info = psb_err_from_subroutine_ - ch_err='Deallocate iwork' - call psb_errpush(info,name,a_err=ch_err) - goto 9999 - end if - - nullify(iwork) - - call psb_erractionrestore(err_act) - if (debug_level >= psb_debug_comp_) then - call psb_barrier(ictxt) - write(debug_unit,*) me,' ',trim(name),' Returning ' - endif - return - -9999 call psb_error_handler(ictxt,err_act) - - return -end subroutine psb_dspmv_vect diff --git a/base/psblas/psb_dspnrm1.f90 b/base/psblas/psb_dspnrm1.f90 index 01a7de96..9d367615 100644 --- a/base/psblas/psb_dspnrm1.f90 +++ b/base/psblas/psb_dspnrm1.f90 @@ -40,6 +40,7 @@ ! a - type(psb_dspmat_type). The sparse matrix containing A. ! desc_a - type(psb_desc_type). The communication descriptor. ! info - integer. Return code +! global - logical(optional) Whether to perform the global reduction, default: .true. ! function psb_dspnrm1(a,desc_a,info,global) result(res) use psb_base_mod, psb_protect_name => psb_dspnrm1 diff --git a/base/psblas/psb_dspsm.f90 b/base/psblas/psb_dspsm.f90 index 4efad6b7..f1a019ad 100644 --- a/base/psblas/psb_dspsm.f90 +++ b/base/psblas/psb_dspsm.f90 @@ -31,6 +31,203 @@ ! ! File: psb_dspsm.f90 ! +! +! Subroutine: psb_dsps_vect +! Performs one of the distributed matrix-vector operations +! +! Y := alpha * Pr * A-1 * Pc * X + beta * Y, or +! +! Y := alpha * D * Pr * A-1 * Pc * X + beta * Y, or +! +! Y := alpha * Pr * A-1 * Pc * D * X + beta * Y, or +! +! Y := alpha * Pr * A-T * Pc * X + beta * Y, or +! +! Y := alpha * D * Pr * A-T * Pc * X + beta * Y, or +! +! Y := alpha * Pr * A-T * Pc * D * X + beta * Y, or +! +! X is a distributed +! vector and T is a M-by-M distributed triangular matrix. +! +! +! Arguments: +! alpha - real. The scalar alpha. +! a - type(psb_dspmat_type). The sparse matrix containing A. +! x - type(psb_d_vect_type) The input vector containing the entries of ( X ). +! beta - real The scalar beta. +! y - type(psb_d_vect_type) The input vector containing the entries of ( Y ). +! desc_a - type(psb_desc_type). The communication descriptor. +! info - integer. Return code +! trans - character(optional). Whether A or A'. If not present 'N' is assumed. +! scale - character(optional). Specify some type of operation with +! the diagonal matrix D. +! choice - integer(optional). The kind of update to perform on overlap elements. +! d(:) - real, optional Matrix for diagonal scaling. +! work(:) - real, optional Working area. +! +subroutine psb_dspsv_vect(alpha,a,x,beta,y,desc_a,info,& + & trans, scale, choice, diag, work) + use psb_base_mod, psb_protect_name => psb_dspsv_vect + use psi_mod + implicit none + + real(psb_dpk_), intent(in) :: alpha, beta + type(psb_d_vect_type), intent(inout) :: x + type(psb_d_vect_type), intent(inout) :: y + type(psb_dspmat_type), intent(inout) :: a + type(psb_desc_type), intent(in) :: desc_a + integer(psb_ipk_), intent(out) :: info + type(psb_d_vect_type), intent(inout), optional :: diag + real(psb_dpk_), optional, target, intent(inout) :: work(:) + character, intent(in), optional :: trans, scale + integer(psb_ipk_), intent(in), optional :: choice + + ! locals + integer(psb_ipk_) :: ictxt, np, me, & + & err_act, iix, jjx, ia, ja, iia, jja, lldx,lldy, choice_,& + & ix, iy, ik, jx, jy, i, lld,& + & m, nrow, ncol, liwork, llwork, iiy, jjy, idx, ndm + + character :: lscale + integer(psb_ipk_), parameter :: nb=4 + real(psb_dpk_),pointer :: iwork(:), xp(:), yp(:) + character :: itrans + character(len=20) :: name, ch_err + logical :: aliw + + name='psb_dspsv_vect' + info=psb_success_ + call psb_erractionsave(err_act) + if (psb_errstatus_fatal()) then + info = psb_err_internal_error_ ; goto 9999 + end if + + ictxt=desc_a%get_context() + + call psb_info(ictxt, me, np) + if (np == -1) then + info = psb_err_context_error_ + call psb_errpush(info,name) + goto 9999 + endif + + if (.not.allocated(x%v)) then + info = psb_err_invalid_vect_state_ + call psb_errpush(info,name) + goto 9999 + endif + if (.not.allocated(y%v)) then + info = psb_err_invalid_vect_state_ + call psb_errpush(info,name) + goto 9999 + endif + + + if (present(choice)) then + choice_ = choice + else + choice_ = psb_avg_ + endif + + if (present(scale)) then + lscale = psb_toupper(scale) + else + lscale = 'U' + endif + + if (present(trans)) then + itrans = psb_toupper(trans) + if((itrans == 'N').or.(itrans == 'T').or.(itrans == 'C')) then + ! Ok + else + info = psb_err_iarg_invalid_value_ + call psb_errpush(info,name) + goto 9999 + end if + else + itrans = 'N' + endif + + m = desc_a%get_global_rows() + nrow = desc_a%get_local_rows() + ncol = desc_a%get_local_cols() + lldx = x%get_nrows() + lldy = y%get_nrows() + if ((info == 0).and.(lldx null() + ! check for presence/size of a work area + liwork= 2*ncol + + if (present(work)) then + if (size(work) >= liwork) then + aliw =.false. + else + aliw=.true. + endif + else + aliw=.true. + end if + + if (aliw) then + allocate(iwork(liwork),stat=info) + if(info /= psb_success_) then + info=psb_err_from_subroutine_ + ch_err='psb_realloc' + call psb_errpush(info,name,a_err=ch_err) + goto 9999 + end if + else + iwork => work + endif + + iwork(1)=0.d0 + + ! Perform local triangular system solve + if (present(diag)) then + call a%spsm(alpha,x,beta,y,info,scale=scale,d=diag,trans=trans) + else + call a%spsm(alpha,x,beta,y,info,scale=scale,trans=trans) + end if + if(info /= psb_success_) then + info = psb_err_from_subroutine_ + ch_err='dcssm' + call psb_errpush(info,name,a_err=ch_err) + goto 9999 + end if + + ! update overlap elements + if (choice_ > 0) then + call psi_swapdata(ior(psb_swap_send_,psb_swap_recv_),& + & done,y%v,desc_a,iwork,info,data=psb_comm_ovr_) + + + if (info == psb_success_) call psi_ovrl_upd(y%v,desc_a,choice_,info) + if (info /= psb_success_) then + call psb_errpush(psb_err_from_subroutine_,name,a_err='Inner updates') + goto 9999 + end if + end if + + if (aliw) deallocate(iwork) + + call psb_erractionrestore(err_act) + return + +9999 call psb_error_handler(ictxt,err_act) + + return +end subroutine psb_dspsv_vect +! ! Subroutine: psb_dspsm ! Performs one of the distributed matrix-vector operations ! @@ -283,38 +480,6 @@ subroutine psb_dspsm(alpha,a,x,beta,y,desc_a,info,& return end subroutine psb_dspsm - -!!$ -!!$ Parallel Sparse BLAS version 3.5 -!!$ (C) Copyright 2006-2018 -!!$ Salvatore Filippone University of Rome Tor Vergata -!!$ Alfredo Buttari -!!$ -!!$ Redistribution and use in source and binary forms, with or without -!!$ modification, are permitted provided that the following conditions -!!$ are met: -!!$ 1. Redistributions of source code must retain the above copyright -!!$ notice, this list of conditions and the following disclaimer. -!!$ 2. Redistributions in binary form must reproduce the above copyright -!!$ notice, this list of conditions, and the following disclaimer in the -!!$ documentation and/or other materials provided with the distribution. -!!$ 3. The name of the PSBLAS group or the names of its contributors may -!!$ not be used to endorse or promote products derived from this -!!$ software without specific written permission. -!!$ -!!$ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -!!$ ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED -!!$ TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -!!$ PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE PSBLAS GROUP OR ITS CONTRIBUTORS -!!$ BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -!!$ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -!!$ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -!!$ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -!!$ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -!!$ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -!!$ POSSIBILITY OF SUCH DAMAGE. -!!$ -!!$ ! ! Subroutine: psb_dspsv ! Performs one of the distributed matrix-vector operations @@ -545,166 +710,3 @@ subroutine psb_dspsv(alpha,a,x,beta,y,desc_a,info,& return end subroutine psb_dspsv - -subroutine psb_dspsv_vect(alpha,a,x,beta,y,desc_a,info,& - & trans, scale, choice, diag, work) - use psb_base_mod, psb_protect_name => psb_dspsv_vect - use psi_mod - implicit none - - real(psb_dpk_), intent(in) :: alpha, beta - type(psb_d_vect_type), intent(inout) :: x - type(psb_d_vect_type), intent(inout) :: y - type(psb_dspmat_type), intent(inout) :: a - type(psb_desc_type), intent(in) :: desc_a - integer(psb_ipk_), intent(out) :: info - type(psb_d_vect_type), intent(inout), optional :: diag - real(psb_dpk_), optional, target, intent(inout) :: work(:) - character, intent(in), optional :: trans, scale - integer(psb_ipk_), intent(in), optional :: choice - - ! locals - integer(psb_ipk_) :: ictxt, np, me, & - & err_act, iix, jjx, ia, ja, iia, jja, lldx,lldy, choice_,& - & ix, iy, ik, jx, jy, i, lld,& - & m, nrow, ncol, liwork, llwork, iiy, jjy, idx, ndm - - character :: lscale - integer(psb_ipk_), parameter :: nb=4 - real(psb_dpk_),pointer :: iwork(:), xp(:), yp(:) - character :: itrans - character(len=20) :: name, ch_err - logical :: aliw - - name='psb_sspsv' - info=psb_success_ - call psb_erractionsave(err_act) - if (psb_errstatus_fatal()) then - info = psb_err_internal_error_ ; goto 9999 - end if - - ictxt=desc_a%get_context() - - call psb_info(ictxt, me, np) - if (np == -1) then - info = psb_err_context_error_ - call psb_errpush(info,name) - goto 9999 - endif - - if (.not.allocated(x%v)) then - info = psb_err_invalid_vect_state_ - call psb_errpush(info,name) - goto 9999 - endif - if (.not.allocated(y%v)) then - info = psb_err_invalid_vect_state_ - call psb_errpush(info,name) - goto 9999 - endif - - - if (present(choice)) then - choice_ = choice - else - choice_ = psb_avg_ - endif - - if (present(scale)) then - lscale = psb_toupper(scale) - else - lscale = 'U' - endif - - if (present(trans)) then - itrans = psb_toupper(trans) - if((itrans == 'N').or.(itrans == 'T').or.(itrans == 'C')) then - ! Ok - else - info = psb_err_iarg_invalid_value_ - call psb_errpush(info,name) - goto 9999 - end if - else - itrans = 'N' - endif - - m = desc_a%get_global_rows() - nrow = desc_a%get_local_rows() - ncol = desc_a%get_local_cols() - lldx = x%get_nrows() - lldy = y%get_nrows() - if ((info == 0).and.(lldx null() - ! check for presence/size of a work area - liwork= 2*ncol - - if (present(work)) then - if (size(work) >= liwork) then - aliw =.false. - else - aliw=.true. - endif - else - aliw=.true. - end if - - if (aliw) then - allocate(iwork(liwork),stat=info) - if(info /= psb_success_) then - info=psb_err_from_subroutine_ - ch_err='psb_realloc' - call psb_errpush(info,name,a_err=ch_err) - goto 9999 - end if - else - iwork => work - endif - - iwork(1)=0.d0 - - ! Perform local triangular system solve - if (present(diag)) then - call a%spsm(alpha,x,beta,y,info,scale=scale,d=diag,trans=trans) - else - call a%spsm(alpha,x,beta,y,info,scale=scale,trans=trans) - end if - if(info /= psb_success_) then - info = psb_err_from_subroutine_ - ch_err='dcssm' - call psb_errpush(info,name,a_err=ch_err) - goto 9999 - end if - - ! update overlap elements - if (choice_ > 0) then - call psi_swapdata(ior(psb_swap_send_,psb_swap_recv_),& - & done,y%v,desc_a,iwork,info,data=psb_comm_ovr_) - - - if (info == psb_success_) call psi_ovrl_upd(y%v,desc_a,choice_,info) - if (info /= psb_success_) then - call psb_errpush(psb_err_from_subroutine_,name,a_err='Inner updates') - goto 9999 - end if - end if - - if (aliw) deallocate(iwork) - - call psb_erractionrestore(err_act) - return - -9999 call psb_error_handler(ictxt,err_act) - - return -end subroutine psb_dspsv_vect - diff --git a/base/psblas/psb_samax.f90 b/base/psblas/psb_samax.f90 index ee70314f..174c7a28 100644 --- a/base/psblas/psb_samax.f90 +++ b/base/psblas/psb_samax.f90 @@ -32,7 +32,7 @@ ! File: psb_samax.f90 ! ! Function: psb_samax -! Searches the absolute max of X. +! Computes the maximum absolute value of X ! ! normi := max(abs(sub(X)(i)) ! @@ -164,7 +164,7 @@ end function psb_samax !!$ ! ! Function: psb_samaxv -! Searches the absolute max of X. +! Computes the maximum absolute value of X. ! ! normi := max(abs(X(i)) ! @@ -252,6 +252,17 @@ function psb_samaxv (x,desc_a, info,global) result(res) return end function psb_samaxv +! +! Function: psb_samax_vect +! Computes the maximum absolute value of X. +! +! normi := max(abs(X(i)) +! +! Arguments: +! x - type(psb_s_vect_type) The input vector. +! desc_a - type(psb_desc_type). The communication descriptor. +! info - integer. Return code +! function psb_samax_vect(x, desc_a, info,global) result(res) use psb_penv_mod @@ -374,17 +385,16 @@ end function psb_samax_vect !!$ ! ! Subroutine: psb_samaxvs -! Searches the absolute max of X. +! Computes the maximum absolute value of X, subroutine version ! ! normi := max(abs(sub(X)(i)) ! -! where sub( X ) denotes X(1:N,JX:). +! where sub( X ) denotes X(1:N). ! ! Arguments: ! res - real The result. -! x(:,:) - real The input vector. +! x(:) - real The input vector. ! desc_a - type(psb_desc_type). The communication descriptor. -! info - integer. Return code ! jx - integer(optional). The column offset. ! subroutine psb_samaxvs(res,x,desc_a, info,global) diff --git a/base/psblas/psb_sasum.f90 b/base/psblas/psb_sasum.f90 index 2abf254d..a61f1851 100644 --- a/base/psblas/psb_sasum.f90 +++ b/base/psblas/psb_sasum.f90 @@ -135,6 +135,19 @@ function psb_sasum (x,desc_a, info, jx,global) result(res) return end function psb_sasum +! Function: psb_sasum_vect +! Computes norm1 of X +! +! norm1 := sum(sub( X )(i)) +! +! where sub( X ) denotes X(1:N,JX:). +! +! Arguments: +! x - type(psb_s_vect_type) The input vector. +! desc_a - type(psb_desc_type). The communication descriptor. +! info - integer. Return code +! jx - integer(optional). The column offset. +! function psb_sasum_vect(x, desc_a, info,global) result(res) use psb_base_mod, psb_protect_name => psb_sasum_vect diff --git a/base/psblas/psb_saxpby.f90 b/base/psblas/psb_saxpby.f90 index 26cecd30..d3f573dc 100644 --- a/base/psblas/psb_saxpby.f90 +++ b/base/psblas/psb_saxpby.f90 @@ -31,6 +31,23 @@ ! ! File: psb_saxpby.f90 +! +! Subroutine: psb_saxpby_vect +! Adds one distributed vector to another, +! +! Y := beta * Y + alpha * X +! +! Arguments: +! alpha - real,input The scalar used to multiply each component of X +! x - type(psb_s_vect_type) The input vector containing the entries of X +! beta - real,input The scalar used to multiply each component of Y +! y - type(psb_s_vect_type) The input/output vector Y +! desc_a - type(psb_desc_type) The communication descriptor. +! info - integer Return code +! +! Note: from a functional point of view, X is input, but here +! it's declared INOUT because of the sync() methods. +! subroutine psb_saxpby_vect(alpha, x, beta, y,& & desc_a, info) use psb_base_mod, psb_protect_name => psb_saxpby_vect @@ -269,7 +286,7 @@ end subroutine psb_saxpby !!$ ! ! Subroutine: psb_saxpbyv -! Adds one distributed matrix to another, +! Adds one distributed vector to another, ! ! Y := beta * Y + alpha * X ! diff --git a/base/psblas/psb_sdot.f90 b/base/psblas/psb_sdot.f90 index 2c8bea51..cce9e15c 100644 --- a/base/psblas/psb_sdot.f90 +++ b/base/psblas/psb_sdot.f90 @@ -31,22 +31,22 @@ ! ! File: psb_sdot.f90 ! -! Function: psb_sdot -! psb_sdot forms the dot product of two distributed vectors, +! Function: psb_sdot_vect +! psb_sdot computes the dot product of two distributed vectors, ! -! dot := sub( X )**C * sub( Y ) +! dot := ( X )**C * ( Y ) ! -! where sub( X ) denotes X(:,JX) -! -! sub( Y ) denotes Y(:,JY). ! ! Arguments: -! x(:,:) - complex The input vector containing the entries of sub( X ). -! y(:,:) - complex The input vector containing the entries of sub( Y ). +! x - type(psb_s_vect_type) The input vector containing the entries of sub( X ). +! y - type(psb_s_vect_type) The input vector containing the entries of sub( Y ). ! desc_a - type(psb_desc_type). The communication descriptor. ! info - integer. Return code -! jx - integer(optional). The column offset for sub( X ). -! jy - integer(optional). The column offset for sub( Y ). +! global - logical(optional) Whether to perform the global sum, default: .true. +! +! Note: from a functional point of view, X and Y are input, but here +! they are declared INOUT because of the sync() methods. +! ! function psb_sdot_vect(x, y, desc_a,info,global) result(res) use psb_desc_mod @@ -156,7 +156,25 @@ function psb_sdot_vect(x, y, desc_a,info,global) result(res) return end function psb_sdot_vect - +! +! Function: psb_sdot +! psb_sdot computes the dot product of two distributed vectors, +! +! dot := sub( X )**C * sub( Y ) +! +! where sub( X ) denotes X(:,JX) +! +! sub( Y ) denotes Y(:,JY). +! +! Arguments: +! x(:,:) - real The input vector containing the entries of sub( X ). +! y(:,:) - real The input vector containing the entries of sub( Y ). +! desc_a - type(psb_desc_type). The communication descriptor. +! info - integer. Return code +! jx - integer(optional). The column offset for sub( X ). +! jy - integer(optional). The column offset for sub( Y ). +! global - logical(optional) Whether to perform the global sum, default: .true. +! function psb_sdot(x, y,desc_a, info, jx, jy,global) result(res) use psb_base_mod, psb_protect_name => psb_sdot implicit none @@ -298,7 +316,7 @@ end function psb_sdot !!$ ! ! Function: psb_sdotv -! psb_sdotv forms the dot product of two distributed vectors, +! psb_sdotv computes the dot product of two distributed vectors, ! ! dot := X**C * Y ! @@ -307,6 +325,7 @@ end function psb_sdot ! y(:) - real The input vector containing the entries of Y. ! desc_a - type(psb_desc_type). The communication descriptor. ! info - integer. Return code +! global - logical(optional) Whether to perform the global sum, default: .true. ! function psb_sdotv(x, y,desc_a, info,global) result(res) use psb_base_mod, psb_protect_name => psb_sdotv @@ -432,7 +451,7 @@ end function psb_sdotv !!$ ! ! Subroutine: psb_sdotvs -! psb_sdotvs forms the dot product of two distributed vectors, +! psb_sdotvs computes the dot product of two distributed vectors, ! ! res := X**C * Y ! @@ -442,6 +461,7 @@ end function psb_sdotv ! y(:) - real The input vector containing the entries of Y. ! desc_a - type(psb_desc_type). The communication descriptor. ! info - integer. Return code +! global - logical(optional) Whether to perform the global sum, default: .true. ! subroutine psb_sdotvs(res, x, y,desc_a, info,global) use psb_base_mod, psb_protect_name => psb_sdotvs @@ -565,7 +585,7 @@ end subroutine psb_sdotvs !!$ ! ! Subroutine: psb_smdots -! psb_smdots forms the dot product of multiple distributed vectors, +! psb_smdots computes the dot product of multiple distributed vectors, ! ! res(i) := ( X(:,i) )**C * ( Y(:,i) ) ! @@ -575,6 +595,7 @@ end subroutine psb_sdotvs ! y(:) - real The input vector containing the entries of sub( Y ). ! desc_a - type(psb_desc_type). The communication descriptor. ! info - integer. Return code +! global - logical(optional) Whether to perform the global sum, default: .true. ! subroutine psb_smdots(res, x, y, desc_a, info,global) use psb_base_mod, psb_protect_name => psb_smdots diff --git a/base/psblas/psb_snrm2.f90 b/base/psblas/psb_snrm2.f90 index d182a2cd..35260ef7 100644 --- a/base/psblas/psb_snrm2.f90 +++ b/base/psblas/psb_snrm2.f90 @@ -32,9 +32,9 @@ ! File: psb_snrm2.f90 ! ! Function: psb_snrm2 -! Forms the norm2 of a distributed vector, +! Computes the norm2 of a distributed vector, ! -! norm2 := sqrt ( sub( X )**T * sub( X ) ) +! norm2 := sqrt ( sub( X )**C * sub( X ) ) ! ! where sub( X ) denotes X(:,JX). ! @@ -43,6 +43,7 @@ ! desc_a - type(psb_desc_type). The communication descriptor. ! info - integer. Return code ! jx - integer(optional). The column offset for sub( X ). +! global - logical(optional) Whether to perform the global reduction, default: .true. ! function psb_snrm2(x, desc_a, info, jx,global) result(res) use psb_desc_mod @@ -170,14 +171,15 @@ end function psb_snrm2 !!$ ! ! Function: psb_snrm2 -! Forms the norm2 of a distributed vector, +! Computes the norm2 of a distributed vector, ! -! norm2 := sqrt ( X**T * X) +! norm2 := sqrt ( X**C * X) ! ! Arguments: ! x(:) - real The input vector containing the entries of X. ! desc_a - type(psb_desc_type). The communication descriptor. ! info - integer. Return code +! global - logical(optional) Whether to perform the global reduction, default: .true. ! function psb_snrm2v(x, desc_a, info,global) result(res) use psb_desc_mod @@ -263,7 +265,17 @@ function psb_snrm2v(x, desc_a, info,global) result(res) end function psb_snrm2v - +! Function: psb_snrm2_vect +! Computes the norm2 of a distributed vector, +! +! norm2 := sqrt ( X**C * X) +! +! Arguments: +! x - type(psb_s_vect_type) The input vector containing the entries of X. +! desc_a - type(psb_desc_type). The communication descriptor. +! info - integer. Return code +! global - logical(optional) Whether to perform the global reduction, default: .true. +! function psb_snrm2_vect(x, desc_a, info,global) result(res) use psb_desc_mod use psb_check_mod @@ -344,7 +356,7 @@ function psb_snrm2_vect(x, desc_a, info,global) result(res) res = res - sqrt(sone - dd*(abs(x%v%v(idx))/res)**2) end do end if - else + else res = szero end if @@ -392,15 +404,16 @@ end function psb_snrm2_vect !!$ ! ! Subroutine: psb_snrm2vs -! Forms the norm2 of a distributed vector, +! Computes the norm2 of a distributed vector, subroutine version ! -! norm2 := sqrt ( X**T * X) +! norm2 := sqrt ( X**C * X) ! ! Arguments: ! res - real The result. ! x(:) - real The input vector containing the entries of X. ! desc_a - type(psb_desc_type). The communication descriptor. ! info - integer. Return code +! global - logical(optional) Whether to perform the global reduction, default: .true. ! subroutine psb_snrm2vs(res, x, desc_a, info,global) use psb_desc_mod diff --git a/base/psblas/psb_snrmi.f90 b/base/psblas/psb_snrmi.f90 index 07b88de2..9fc41073 100644 --- a/base/psblas/psb_snrmi.f90 +++ b/base/psblas/psb_snrmi.f90 @@ -32,14 +32,15 @@ ! File: psb_snrmi.f90 ! ! Function: psb_snrmi -! Forms the infinity norm of a sparse matrix, +! Computes the infinity norm of a sparse matrix, ! -! nrmi := max_i(abs(sum(A(i,:)))) +! nrmi := max_i(sum(abs(A(i,:)))) ! ! Arguments: ! a - type(psb_sspmat_type). The sparse matrix containing A. ! desc_a - type(psb_desc_type). The communication descriptor. ! info - integer. Return code +! global - logical(optional) Whether to perform the global reduction, default: .true. ! function psb_snrmi(a,desc_a,info,global) result(res) use psb_base_mod, psb_protect_name => psb_snrmi diff --git a/base/psblas/psb_sspmm.f90 b/base/psblas/psb_sspmm.f90 index a84962dc..56b881b8 100644 --- a/base/psblas/psb_sspmm.f90 +++ b/base/psblas/psb_sspmm.f90 @@ -31,6 +31,235 @@ ! ! File: psb_sspmm.f90 ! +! +! Subroutine: psb_sspm_vect +! Performs one of the distributed matrix-vector operations +! +! Y := alpha * Pr * A * Pc * X + beta * Y, or +! +! Y := alpha * Pr * A' * Pr * X + beta * Y, +! +! alpha and beta are scalars, X and Y are distributed +! vectors and A is a M-by-N distributed matrix. +! +! Arguments: +! alpha - real The scalar alpha. +! a - type(psb_sspmat_type). The sparse matrix containing A. +! x - type(psb_s_vect_type) The input vector containing the entries of ( X ). +! beta - real The scalar beta. +! y - type(psb_s_vect_type) The input vector containing the entries of ( Y ). +! desc_a - type(psb_desc_type). The communication descriptor. +! info - integer. Return code +! trans - character(optional). Whether A or A'. Default: 'N' +! work(:) - real,(optional). Working area. +! doswap - logical(optional). Whether to performe halo updates. +! +subroutine psb_sspmv_vect(alpha,a,x,beta,y,desc_a,info,& + & trans, work, doswap) + use psb_base_mod, psb_protect_name => psb_sspmv_vect + use psi_mod + implicit none + + real(psb_spk_), intent(in) :: alpha, beta + type(psb_s_vect_type), intent(inout) :: x + type(psb_s_vect_type), intent(inout) :: y + type(psb_sspmat_type), intent(in) :: a + type(psb_desc_type), intent(in) :: desc_a + integer(psb_ipk_), intent(out) :: info + real(psb_spk_), optional, target, intent(inout) :: work(:) + character, intent(in), optional :: trans + logical, intent(in), optional :: doswap + + ! locals + integer(psb_ipk_) :: ictxt, np, me,& + & err_act, iix, jjx, iia, jja, nrow, ncol, lldx, lldy, & + & liwork, iiy, jjy, ib, ip, idx + integer(psb_lpk_) :: ix, ijx, iy, ijy, m, n, ia, ja + integer(psb_ipk_), parameter :: nb=4 + real(psb_spk_), pointer :: iwork(:), xp(:), yp(:) + real(psb_spk_), allocatable :: xvsave(:) + character :: trans_ + character(len=20) :: name, ch_err + logical :: aliw, doswap_ + integer(psb_ipk_) :: debug_level, debug_unit + + name='psb_sspmv' + info=psb_success_ + call psb_erractionsave(err_act) + if (psb_errstatus_fatal()) then + info = psb_err_internal_error_ ; goto 9999 + end if + debug_unit = psb_get_debug_unit() + debug_level = psb_get_debug_level() + + ictxt=desc_a%get_context() + call psb_info(ictxt, me, np) + if (np == -1) then + info = psb_err_context_error_ + call psb_errpush(info,name) + goto 9999 + endif + + if (.not.allocated(x%v)) then + info = psb_err_invalid_vect_state_ + call psb_errpush(info,name) + goto 9999 + endif + if (.not.allocated(y%v)) then + info = psb_err_invalid_vect_state_ + call psb_errpush(info,name) + goto 9999 + endif + + if (present(doswap)) then + doswap_ = doswap + else + doswap_ = .true. + endif + + if (present(trans)) then + trans_ = psb_toupper(trans) + else + trans_ = 'N' + endif + if ( (trans_ == 'N').or.(trans_ == 'T')& + & .or.(trans_ == 'C')) then + else + info = psb_err_iarg_invalid_value_ + call psb_errpush(info,name) + goto 9999 + end if + + m = desc_a%get_global_rows() + n = desc_a%get_global_cols() + nrow = desc_a%get_local_rows() + ncol = desc_a%get_local_cols() + lldx = x%get_nrows() + lldy = y%get_nrows() + if ((info == 0).and.(lldx null() + ! check for presence/size of a work area + liwork= 2*ncol + + if (present(work)) then + if (size(work) >= liwork) then + aliw =.false. + else + aliw=.true. + endif + else + aliw=.true. + end if + + if (aliw) then + allocate(iwork(liwork),stat=info) + if(info /= psb_success_) then + info=psb_err_from_subroutine_ + ch_err='Allocate' + call psb_errpush(info,name,a_err=ch_err) + goto 9999 + end if + else + iwork => work + endif + + if (debug_level >= psb_debug_comp_) & + & write(debug_unit,*) me,' ',trim(name),' Allocated work ', info + + if (trans_ == 'N') then + ! Matrix is not transposed + + if (doswap_) then + call psi_swapdata(ior(psb_swap_send_,psb_swap_recv_),& + & szero,x%v,desc_a,iwork,info,data=psb_comm_halo_) + end if + + call psb_csmm(alpha,a,x,beta,y,info) + + if(info /= psb_success_) then + info = psb_err_from_subroutine_non_ + call psb_errpush(info,name) + goto 9999 + end if + + else + ! Matrix is transposed + + ! + ! Non-empty overlap, need a buffer to hold + ! the entries updated with average operator. + ! Why the average? because in this way they will contribute + ! with a proper scale factor (1/np) to the overall product. + ! + call psi_ovrl_save(x%v,xvsave,desc_a,info) + if (info == psb_success_) call psi_ovrl_upd(x%v,desc_a,psb_avg_,info) + + if (beta /= szero) call y%set(szero,nrow+1,ncol) + ! local Matrix-vector product + if (info == psb_success_) call psb_csmm(alpha,a,x,beta,y,info,trans=trans_) + + if (debug_level >= psb_debug_comp_) & + & write(debug_unit,*) me,' ',trim(name),' csmm ', info + + if (info == psb_success_) call psi_ovrl_restore(x%v,xvsave,desc_a,info) + if (info /= psb_success_) then + info = psb_err_from_subroutine_ + ch_err='psb_csmm' + call psb_errpush(info,name,a_err=ch_err) + goto 9999 + end if + + if (doswap_) then + call psi_swaptran(ior(psb_swap_send_,psb_swap_recv_),& + & sone,y%v,desc_a,iwork,info) + if (info == psb_success_) call psi_swapdata(ior(psb_swap_send_,psb_swap_recv_),& + & sone,y%v,desc_a,iwork,info,data=psb_comm_ovr_) + + if (debug_level >= psb_debug_comp_) & + & write(debug_unit,*) me,' ',trim(name),' swaptran ', info + if(info /= psb_success_) then + info = psb_err_from_subroutine_ + ch_err='PSI_SwapTran' + call psb_errpush(info,name,a_err=ch_err) + goto 9999 + end if + end if + + end if + + if (aliw) deallocate(iwork,stat=info) + if (debug_level >= psb_debug_comp_) & + & write(debug_unit,*) me,' ',trim(name),' deallocat ',aliw, info + if(info /= psb_success_) then + info = psb_err_from_subroutine_ + ch_err='Deallocate iwork' + call psb_errpush(info,name,a_err=ch_err) + goto 9999 + end if + + nullify(iwork) + + call psb_erractionrestore(err_act) + if (debug_level >= psb_debug_comp_) then + call psb_barrier(ictxt) + write(debug_unit,*) me,' ',trim(name),' Returning ' + endif + return + +9999 call psb_error_handler(ictxt,err_act) + + return +end subroutine psb_sspmv_vect +! ! Subroutine: psb_sspmm ! Performs one of the distributed matrix-vector operations ! @@ -356,10 +585,6 @@ subroutine psb_sspmm(alpha,a,x,beta,y,desc_a,info,& return end subroutine psb_sspmm - - - - !!$ !!$ Parallel Sparse BLAS version 3.5 !!$ (C) Copyright 2006-2018 @@ -670,211 +895,3 @@ subroutine psb_sspmv(alpha,a,x,beta,y,desc_a,info,& return end subroutine psb_sspmv - - - -subroutine psb_sspmv_vect(alpha,a,x,beta,y,desc_a,info,& - & trans, work, doswap) - use psb_base_mod, psb_protect_name => psb_sspmv_vect - use psi_mod - implicit none - - real(psb_spk_), intent(in) :: alpha, beta - type(psb_s_vect_type), intent(inout) :: x - type(psb_s_vect_type), intent(inout) :: y - type(psb_sspmat_type), intent(in) :: a - type(psb_desc_type), intent(in) :: desc_a - integer(psb_ipk_), intent(out) :: info - real(psb_spk_), optional, target, intent(inout) :: work(:) - character, intent(in), optional :: trans - logical, intent(in), optional :: doswap - - ! locals - integer(psb_ipk_) :: ictxt, np, me,& - & err_act, iix, jjx, iia, jja, nrow, ncol, lldx, lldy, & - & liwork, iiy, jjy, ib, ip, idx - integer(psb_lpk_) :: ix, ijx, iy, ijy, m, n, ia, ja - integer(psb_ipk_), parameter :: nb=4 - real(psb_spk_), pointer :: iwork(:), xp(:), yp(:) - real(psb_spk_), allocatable :: xvsave(:) - character :: trans_ - character(len=20) :: name, ch_err - logical :: aliw, doswap_ - integer(psb_ipk_) :: debug_level, debug_unit - - name='psb_sspmv' - info=psb_success_ - call psb_erractionsave(err_act) - if (psb_errstatus_fatal()) then - info = psb_err_internal_error_ ; goto 9999 - end if - debug_unit = psb_get_debug_unit() - debug_level = psb_get_debug_level() - - ictxt=desc_a%get_context() - call psb_info(ictxt, me, np) - if (np == -1) then - info = psb_err_context_error_ - call psb_errpush(info,name) - goto 9999 - endif - - if (.not.allocated(x%v)) then - info = psb_err_invalid_vect_state_ - call psb_errpush(info,name) - goto 9999 - endif - if (.not.allocated(y%v)) then - info = psb_err_invalid_vect_state_ - call psb_errpush(info,name) - goto 9999 - endif - - if (present(doswap)) then - doswap_ = doswap - else - doswap_ = .true. - endif - - if (present(trans)) then - trans_ = psb_toupper(trans) - else - trans_ = 'N' - endif - if ( (trans_ == 'N').or.(trans_ == 'T')& - & .or.(trans_ == 'C')) then - else - info = psb_err_iarg_invalid_value_ - call psb_errpush(info,name) - goto 9999 - end if - - m = desc_a%get_global_rows() - n = desc_a%get_global_cols() - nrow = desc_a%get_local_rows() - ncol = desc_a%get_local_cols() - lldx = x%get_nrows() - lldy = y%get_nrows() - if ((info == 0).and.(lldx null() - ! check for presence/size of a work area - liwork= 2*ncol - - if (present(work)) then - if (size(work) >= liwork) then - aliw =.false. - else - aliw=.true. - endif - else - aliw=.true. - end if - - if (aliw) then - allocate(iwork(liwork),stat=info) - if(info /= psb_success_) then - info=psb_err_from_subroutine_ - ch_err='Allocate' - call psb_errpush(info,name,a_err=ch_err) - goto 9999 - end if - else - iwork => work - endif - - if (debug_level >= psb_debug_comp_) & - & write(debug_unit,*) me,' ',trim(name),' Allocated work ', info - - if (trans_ == 'N') then - ! Matrix is not transposed - - if (doswap_) then - call psi_swapdata(ior(psb_swap_send_,psb_swap_recv_),& - & szero,x%v,desc_a,iwork,info,data=psb_comm_halo_) - end if - - call psb_csmm(alpha,a,x,beta,y,info) - - if(info /= psb_success_) then - info = psb_err_from_subroutine_non_ - call psb_errpush(info,name) - goto 9999 - end if - - else - ! Matrix is transposed - - ! - ! Non-empty overlap, need a buffer to hold - ! the entries updated with average operator. - ! Why the average? because in this way they will contribute - ! with a proper scale factor (1/np) to the overall product. - ! - call psi_ovrl_save(x%v,xvsave,desc_a,info) - if (info == psb_success_) call psi_ovrl_upd(x%v,desc_a,psb_avg_,info) - - if (beta /= szero) call y%set(szero,nrow+1,ncol) - ! local Matrix-vector product - if (info == psb_success_) call psb_csmm(alpha,a,x,beta,y,info,trans=trans_) - - if (debug_level >= psb_debug_comp_) & - & write(debug_unit,*) me,' ',trim(name),' csmm ', info - - if (info == psb_success_) call psi_ovrl_restore(x%v,xvsave,desc_a,info) - if (info /= psb_success_) then - info = psb_err_from_subroutine_ - ch_err='psb_csmm' - call psb_errpush(info,name,a_err=ch_err) - goto 9999 - end if - - if (doswap_) then - call psi_swaptran(ior(psb_swap_send_,psb_swap_recv_),& - & sone,y%v,desc_a,iwork,info) - if (info == psb_success_) call psi_swapdata(ior(psb_swap_send_,psb_swap_recv_),& - & sone,y%v,desc_a,iwork,info,data=psb_comm_ovr_) - - if (debug_level >= psb_debug_comp_) & - & write(debug_unit,*) me,' ',trim(name),' swaptran ', info - if(info /= psb_success_) then - info = psb_err_from_subroutine_ - ch_err='PSI_SwapTran' - call psb_errpush(info,name,a_err=ch_err) - goto 9999 - end if - end if - - end if - - if (aliw) deallocate(iwork,stat=info) - if (debug_level >= psb_debug_comp_) & - & write(debug_unit,*) me,' ',trim(name),' deallocat ',aliw, info - if(info /= psb_success_) then - info = psb_err_from_subroutine_ - ch_err='Deallocate iwork' - call psb_errpush(info,name,a_err=ch_err) - goto 9999 - end if - - nullify(iwork) - - call psb_erractionrestore(err_act) - if (debug_level >= psb_debug_comp_) then - call psb_barrier(ictxt) - write(debug_unit,*) me,' ',trim(name),' Returning ' - endif - return - -9999 call psb_error_handler(ictxt,err_act) - - return -end subroutine psb_sspmv_vect diff --git a/base/psblas/psb_sspnrm1.f90 b/base/psblas/psb_sspnrm1.f90 index 391d60ee..9d2afeb8 100644 --- a/base/psblas/psb_sspnrm1.f90 +++ b/base/psblas/psb_sspnrm1.f90 @@ -40,6 +40,7 @@ ! a - type(psb_sspmat_type). The sparse matrix containing A. ! desc_a - type(psb_desc_type). The communication descriptor. ! info - integer. Return code +! global - logical(optional) Whether to perform the global reduction, default: .true. ! function psb_sspnrm1(a,desc_a,info,global) result(res) use psb_base_mod, psb_protect_name => psb_sspnrm1 diff --git a/base/psblas/psb_sspsm.f90 b/base/psblas/psb_sspsm.f90 index 8bcfdcad..1cbbd6d2 100644 --- a/base/psblas/psb_sspsm.f90 +++ b/base/psblas/psb_sspsm.f90 @@ -31,6 +31,203 @@ ! ! File: psb_sspsm.f90 ! +! +! Subroutine: psb_ssps_vect +! Performs one of the distributed matrix-vector operations +! +! Y := alpha * Pr * A-1 * Pc * X + beta * Y, or +! +! Y := alpha * D * Pr * A-1 * Pc * X + beta * Y, or +! +! Y := alpha * Pr * A-1 * Pc * D * X + beta * Y, or +! +! Y := alpha * Pr * A-T * Pc * X + beta * Y, or +! +! Y := alpha * D * Pr * A-T * Pc * X + beta * Y, or +! +! Y := alpha * Pr * A-T * Pc * D * X + beta * Y, or +! +! X is a distributed +! vector and T is a M-by-M distributed triangular matrix. +! +! +! Arguments: +! alpha - real. The scalar alpha. +! a - type(psb_sspmat_type). The sparse matrix containing A. +! x - type(psb_s_vect_type) The input vector containing the entries of ( X ). +! beta - real The scalar beta. +! y - type(psb_s_vect_type) The input vector containing the entries of ( Y ). +! desc_a - type(psb_desc_type). The communication descriptor. +! info - integer. Return code +! trans - character(optional). Whether A or A'. If not present 'N' is assumed. +! scale - character(optional). Specify some type of operation with +! the diagonal matrix D. +! choice - integer(optional). The kind of update to perform on overlap elements. +! d(:) - real, optional Matrix for diagonal scaling. +! work(:) - real, optional Working area. +! +subroutine psb_sspsv_vect(alpha,a,x,beta,y,desc_a,info,& + & trans, scale, choice, diag, work) + use psb_base_mod, psb_protect_name => psb_sspsv_vect + use psi_mod + implicit none + + real(psb_spk_), intent(in) :: alpha, beta + type(psb_s_vect_type), intent(inout) :: x + type(psb_s_vect_type), intent(inout) :: y + type(psb_sspmat_type), intent(inout) :: a + type(psb_desc_type), intent(in) :: desc_a + integer(psb_ipk_), intent(out) :: info + type(psb_s_vect_type), intent(inout), optional :: diag + real(psb_spk_), optional, target, intent(inout) :: work(:) + character, intent(in), optional :: trans, scale + integer(psb_ipk_), intent(in), optional :: choice + + ! locals + integer(psb_ipk_) :: ictxt, np, me, & + & err_act, iix, jjx, ia, ja, iia, jja, lldx,lldy, choice_,& + & ix, iy, ik, jx, jy, i, lld,& + & m, nrow, ncol, liwork, llwork, iiy, jjy, idx, ndm + + character :: lscale + integer(psb_ipk_), parameter :: nb=4 + real(psb_spk_),pointer :: iwork(:), xp(:), yp(:) + character :: itrans + character(len=20) :: name, ch_err + logical :: aliw + + name='psb_sspsv_vect' + info=psb_success_ + call psb_erractionsave(err_act) + if (psb_errstatus_fatal()) then + info = psb_err_internal_error_ ; goto 9999 + end if + + ictxt=desc_a%get_context() + + call psb_info(ictxt, me, np) + if (np == -1) then + info = psb_err_context_error_ + call psb_errpush(info,name) + goto 9999 + endif + + if (.not.allocated(x%v)) then + info = psb_err_invalid_vect_state_ + call psb_errpush(info,name) + goto 9999 + endif + if (.not.allocated(y%v)) then + info = psb_err_invalid_vect_state_ + call psb_errpush(info,name) + goto 9999 + endif + + + if (present(choice)) then + choice_ = choice + else + choice_ = psb_avg_ + endif + + if (present(scale)) then + lscale = psb_toupper(scale) + else + lscale = 'U' + endif + + if (present(trans)) then + itrans = psb_toupper(trans) + if((itrans == 'N').or.(itrans == 'T').or.(itrans == 'C')) then + ! Ok + else + info = psb_err_iarg_invalid_value_ + call psb_errpush(info,name) + goto 9999 + end if + else + itrans = 'N' + endif + + m = desc_a%get_global_rows() + nrow = desc_a%get_local_rows() + ncol = desc_a%get_local_cols() + lldx = x%get_nrows() + lldy = y%get_nrows() + if ((info == 0).and.(lldx null() + ! check for presence/size of a work area + liwork= 2*ncol + + if (present(work)) then + if (size(work) >= liwork) then + aliw =.false. + else + aliw=.true. + endif + else + aliw=.true. + end if + + if (aliw) then + allocate(iwork(liwork),stat=info) + if(info /= psb_success_) then + info=psb_err_from_subroutine_ + ch_err='psb_realloc' + call psb_errpush(info,name,a_err=ch_err) + goto 9999 + end if + else + iwork => work + endif + + iwork(1)=0.d0 + + ! Perform local triangular system solve + if (present(diag)) then + call a%spsm(alpha,x,beta,y,info,scale=scale,d=diag,trans=trans) + else + call a%spsm(alpha,x,beta,y,info,scale=scale,trans=trans) + end if + if(info /= psb_success_) then + info = psb_err_from_subroutine_ + ch_err='dcssm' + call psb_errpush(info,name,a_err=ch_err) + goto 9999 + end if + + ! update overlap elements + if (choice_ > 0) then + call psi_swapdata(ior(psb_swap_send_,psb_swap_recv_),& + & sone,y%v,desc_a,iwork,info,data=psb_comm_ovr_) + + + if (info == psb_success_) call psi_ovrl_upd(y%v,desc_a,choice_,info) + if (info /= psb_success_) then + call psb_errpush(psb_err_from_subroutine_,name,a_err='Inner updates') + goto 9999 + end if + end if + + if (aliw) deallocate(iwork) + + call psb_erractionrestore(err_act) + return + +9999 call psb_error_handler(ictxt,err_act) + + return +end subroutine psb_sspsv_vect +! ! Subroutine: psb_sspsm ! Performs one of the distributed matrix-vector operations ! @@ -283,38 +480,6 @@ subroutine psb_sspsm(alpha,a,x,beta,y,desc_a,info,& return end subroutine psb_sspsm - -!!$ -!!$ Parallel Sparse BLAS version 3.5 -!!$ (C) Copyright 2006-2018 -!!$ Salvatore Filippone University of Rome Tor Vergata -!!$ Alfredo Buttari -!!$ -!!$ Redistribution and use in source and binary forms, with or without -!!$ modification, are permitted provided that the following conditions -!!$ are met: -!!$ 1. Redistributions of source code must retain the above copyright -!!$ notice, this list of conditions and the following disclaimer. -!!$ 2. Redistributions in binary form must reproduce the above copyright -!!$ notice, this list of conditions, and the following disclaimer in the -!!$ documentation and/or other materials provided with the distribution. -!!$ 3. The name of the PSBLAS group or the names of its contributors may -!!$ not be used to endorse or promote products derived from this -!!$ software without specific written permission. -!!$ -!!$ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -!!$ ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED -!!$ TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -!!$ PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE PSBLAS GROUP OR ITS CONTRIBUTORS -!!$ BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -!!$ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -!!$ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -!!$ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -!!$ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -!!$ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -!!$ POSSIBILITY OF SUCH DAMAGE. -!!$ -!!$ ! ! Subroutine: psb_sspsv ! Performs one of the distributed matrix-vector operations @@ -545,166 +710,3 @@ subroutine psb_sspsv(alpha,a,x,beta,y,desc_a,info,& return end subroutine psb_sspsv - -subroutine psb_sspsv_vect(alpha,a,x,beta,y,desc_a,info,& - & trans, scale, choice, diag, work) - use psb_base_mod, psb_protect_name => psb_sspsv_vect - use psi_mod - implicit none - - real(psb_spk_), intent(in) :: alpha, beta - type(psb_s_vect_type), intent(inout) :: x - type(psb_s_vect_type), intent(inout) :: y - type(psb_sspmat_type), intent(inout) :: a - type(psb_desc_type), intent(in) :: desc_a - integer(psb_ipk_), intent(out) :: info - type(psb_s_vect_type), intent(inout), optional :: diag - real(psb_spk_), optional, target, intent(inout) :: work(:) - character, intent(in), optional :: trans, scale - integer(psb_ipk_), intent(in), optional :: choice - - ! locals - integer(psb_ipk_) :: ictxt, np, me, & - & err_act, iix, jjx, ia, ja, iia, jja, lldx,lldy, choice_,& - & ix, iy, ik, jx, jy, i, lld,& - & m, nrow, ncol, liwork, llwork, iiy, jjy, idx, ndm - - character :: lscale - integer(psb_ipk_), parameter :: nb=4 - real(psb_spk_),pointer :: iwork(:), xp(:), yp(:) - character :: itrans - character(len=20) :: name, ch_err - logical :: aliw - - name='psb_sspsv' - info=psb_success_ - call psb_erractionsave(err_act) - if (psb_errstatus_fatal()) then - info = psb_err_internal_error_ ; goto 9999 - end if - - ictxt=desc_a%get_context() - - call psb_info(ictxt, me, np) - if (np == -1) then - info = psb_err_context_error_ - call psb_errpush(info,name) - goto 9999 - endif - - if (.not.allocated(x%v)) then - info = psb_err_invalid_vect_state_ - call psb_errpush(info,name) - goto 9999 - endif - if (.not.allocated(y%v)) then - info = psb_err_invalid_vect_state_ - call psb_errpush(info,name) - goto 9999 - endif - - - if (present(choice)) then - choice_ = choice - else - choice_ = psb_avg_ - endif - - if (present(scale)) then - lscale = psb_toupper(scale) - else - lscale = 'U' - endif - - if (present(trans)) then - itrans = psb_toupper(trans) - if((itrans == 'N').or.(itrans == 'T').or.(itrans == 'C')) then - ! Ok - else - info = psb_err_iarg_invalid_value_ - call psb_errpush(info,name) - goto 9999 - end if - else - itrans = 'N' - endif - - m = desc_a%get_global_rows() - nrow = desc_a%get_local_rows() - ncol = desc_a%get_local_cols() - lldx = x%get_nrows() - lldy = y%get_nrows() - if ((info == 0).and.(lldx null() - ! check for presence/size of a work area - liwork= 2*ncol - - if (present(work)) then - if (size(work) >= liwork) then - aliw =.false. - else - aliw=.true. - endif - else - aliw=.true. - end if - - if (aliw) then - allocate(iwork(liwork),stat=info) - if(info /= psb_success_) then - info=psb_err_from_subroutine_ - ch_err='psb_realloc' - call psb_errpush(info,name,a_err=ch_err) - goto 9999 - end if - else - iwork => work - endif - - iwork(1)=0.d0 - - ! Perform local triangular system solve - if (present(diag)) then - call a%spsm(alpha,x,beta,y,info,scale=scale,d=diag,trans=trans) - else - call a%spsm(alpha,x,beta,y,info,scale=scale,trans=trans) - end if - if(info /= psb_success_) then - info = psb_err_from_subroutine_ - ch_err='dcssm' - call psb_errpush(info,name,a_err=ch_err) - goto 9999 - end if - - ! update overlap elements - if (choice_ > 0) then - call psi_swapdata(ior(psb_swap_send_,psb_swap_recv_),& - & sone,y%v,desc_a,iwork,info,data=psb_comm_ovr_) - - - if (info == psb_success_) call psi_ovrl_upd(y%v,desc_a,choice_,info) - if (info /= psb_success_) then - call psb_errpush(psb_err_from_subroutine_,name,a_err='Inner updates') - goto 9999 - end if - end if - - if (aliw) deallocate(iwork) - - call psb_erractionrestore(err_act) - return - -9999 call psb_error_handler(ictxt,err_act) - - return -end subroutine psb_sspsv_vect - diff --git a/base/psblas/psb_zamax.f90 b/base/psblas/psb_zamax.f90 index 21a82b39..5e768023 100644 --- a/base/psblas/psb_zamax.f90 +++ b/base/psblas/psb_zamax.f90 @@ -32,7 +32,7 @@ ! File: psb_zamax.f90 ! ! Function: psb_zamax -! Searches the absolute max of X. +! Computes the maximum absolute value of X ! ! normi := max(abs(sub(X)(i)) ! @@ -164,7 +164,7 @@ end function psb_zamax !!$ ! ! Function: psb_zamaxv -! Searches the absolute max of X. +! Computes the maximum absolute value of X. ! ! normi := max(abs(X(i)) ! @@ -252,6 +252,17 @@ function psb_zamaxv (x,desc_a, info,global) result(res) return end function psb_zamaxv +! +! Function: psb_zamax_vect +! Computes the maximum absolute value of X. +! +! normi := max(abs(X(i)) +! +! Arguments: +! x - type(psb_z_vect_type) The input vector. +! desc_a - type(psb_desc_type). The communication descriptor. +! info - integer. Return code +! function psb_zamax_vect(x, desc_a, info,global) result(res) use psb_penv_mod @@ -374,17 +385,16 @@ end function psb_zamax_vect !!$ ! ! Subroutine: psb_zamaxvs -! Searches the absolute max of X. +! Computes the maximum absolute value of X, subroutine version ! ! normi := max(abs(sub(X)(i)) ! -! where sub( X ) denotes X(1:N,JX:). +! where sub( X ) denotes X(1:N). ! ! Arguments: ! res - real The result. -! x(:,:) - complex The input vector. +! x(:) - complex The input vector. ! desc_a - type(psb_desc_type). The communication descriptor. -! info - integer. Return code ! jx - integer(optional). The column offset. ! subroutine psb_zamaxvs(res,x,desc_a, info,global) diff --git a/base/psblas/psb_zasum.f90 b/base/psblas/psb_zasum.f90 index 6bfd01ca..9b6fddd7 100644 --- a/base/psblas/psb_zasum.f90 +++ b/base/psblas/psb_zasum.f90 @@ -135,6 +135,19 @@ function psb_zasum (x,desc_a, info, jx,global) result(res) return end function psb_zasum +! Function: psb_zasum_vect +! Computes norm1 of X +! +! norm1 := sum(sub( X )(i)) +! +! where sub( X ) denotes X(1:N,JX:). +! +! Arguments: +! x - type(psb_z_vect_type) The input vector. +! desc_a - type(psb_desc_type). The communication descriptor. +! info - integer. Return code +! jx - integer(optional). The column offset. +! function psb_zasum_vect(x, desc_a, info,global) result(res) use psb_base_mod, psb_protect_name => psb_zasum_vect diff --git a/base/psblas/psb_zaxpby.f90 b/base/psblas/psb_zaxpby.f90 index 273aa882..b48bb5ff 100644 --- a/base/psblas/psb_zaxpby.f90 +++ b/base/psblas/psb_zaxpby.f90 @@ -31,6 +31,23 @@ ! ! File: psb_zaxpby.f90 +! +! Subroutine: psb_zaxpby_vect +! Adds one distributed vector to another, +! +! Y := beta * Y + alpha * X +! +! Arguments: +! alpha - complex,input The scalar used to multiply each component of X +! x - type(psb_z_vect_type) The input vector containing the entries of X +! beta - complex,input The scalar used to multiply each component of Y +! y - type(psb_z_vect_type) The input/output vector Y +! desc_a - type(psb_desc_type) The communication descriptor. +! info - integer Return code +! +! Note: from a functional point of view, X is input, but here +! it's declared INOUT because of the sync() methods. +! subroutine psb_zaxpby_vect(alpha, x, beta, y,& & desc_a, info) use psb_base_mod, psb_protect_name => psb_zaxpby_vect @@ -269,7 +286,7 @@ end subroutine psb_zaxpby !!$ ! ! Subroutine: psb_zaxpbyv -! Adds one distributed matrix to another, +! Adds one distributed vector to another, ! ! Y := beta * Y + alpha * X ! diff --git a/base/psblas/psb_zdot.f90 b/base/psblas/psb_zdot.f90 index 8f673c02..ad21b1d8 100644 --- a/base/psblas/psb_zdot.f90 +++ b/base/psblas/psb_zdot.f90 @@ -31,22 +31,22 @@ ! ! File: psb_zdot.f90 ! -! Function: psb_zdot -! psb_zdot forms the dot product of two distributed vectors, +! Function: psb_zdot_vect +! psb_zdot computes the dot product of two distributed vectors, ! -! dot := sub( X )**C * sub( Y ) +! dot := ( X )**C * ( Y ) ! -! where sub( X ) denotes X(:,JX) -! -! sub( Y ) denotes Y(:,JY). ! ! Arguments: -! x(:,:) - complex The input vector containing the entries of sub( X ). -! y(:,:) - complex The input vector containing the entries of sub( Y ). +! x - type(psb_z_vect_type) The input vector containing the entries of sub( X ). +! y - type(psb_z_vect_type) The input vector containing the entries of sub( Y ). ! desc_a - type(psb_desc_type). The communication descriptor. ! info - integer. Return code -! jx - integer(optional). The column offset for sub( X ). -! jy - integer(optional). The column offset for sub( Y ). +! global - logical(optional) Whether to perform the global sum, default: .true. +! +! Note: from a functional point of view, X and Y are input, but here +! they are declared INOUT because of the sync() methods. +! ! function psb_zdot_vect(x, y, desc_a,info,global) result(res) use psb_desc_mod @@ -156,7 +156,25 @@ function psb_zdot_vect(x, y, desc_a,info,global) result(res) return end function psb_zdot_vect - +! +! Function: psb_zdot +! psb_zdot computes the dot product of two distributed vectors, +! +! dot := sub( X )**C * sub( Y ) +! +! where sub( X ) denotes X(:,JX) +! +! sub( Y ) denotes Y(:,JY). +! +! Arguments: +! x(:,:) - complex The input vector containing the entries of sub( X ). +! y(:,:) - complex The input vector containing the entries of sub( Y ). +! desc_a - type(psb_desc_type). The communication descriptor. +! info - integer. Return code +! jx - integer(optional). The column offset for sub( X ). +! jy - integer(optional). The column offset for sub( Y ). +! global - logical(optional) Whether to perform the global sum, default: .true. +! function psb_zdot(x, y,desc_a, info, jx, jy,global) result(res) use psb_base_mod, psb_protect_name => psb_zdot implicit none @@ -298,7 +316,7 @@ end function psb_zdot !!$ ! ! Function: psb_zdotv -! psb_zdotv forms the dot product of two distributed vectors, +! psb_zdotv computes the dot product of two distributed vectors, ! ! dot := X**C * Y ! @@ -307,6 +325,7 @@ end function psb_zdot ! y(:) - complex The input vector containing the entries of Y. ! desc_a - type(psb_desc_type). The communication descriptor. ! info - integer. Return code +! global - logical(optional) Whether to perform the global sum, default: .true. ! function psb_zdotv(x, y,desc_a, info,global) result(res) use psb_base_mod, psb_protect_name => psb_zdotv @@ -432,7 +451,7 @@ end function psb_zdotv !!$ ! ! Subroutine: psb_zdotvs -! psb_zdotvs forms the dot product of two distributed vectors, +! psb_zdotvs computes the dot product of two distributed vectors, ! ! res := X**C * Y ! @@ -442,6 +461,7 @@ end function psb_zdotv ! y(:) - complex The input vector containing the entries of Y. ! desc_a - type(psb_desc_type). The communication descriptor. ! info - integer. Return code +! global - logical(optional) Whether to perform the global sum, default: .true. ! subroutine psb_zdotvs(res, x, y,desc_a, info,global) use psb_base_mod, psb_protect_name => psb_zdotvs @@ -565,7 +585,7 @@ end subroutine psb_zdotvs !!$ ! ! Subroutine: psb_zmdots -! psb_zmdots forms the dot product of multiple distributed vectors, +! psb_zmdots computes the dot product of multiple distributed vectors, ! ! res(i) := ( X(:,i) )**C * ( Y(:,i) ) ! @@ -575,6 +595,7 @@ end subroutine psb_zdotvs ! y(:) - complex The input vector containing the entries of sub( Y ). ! desc_a - type(psb_desc_type). The communication descriptor. ! info - integer. Return code +! global - logical(optional) Whether to perform the global sum, default: .true. ! subroutine psb_zmdots(res, x, y, desc_a, info,global) use psb_base_mod, psb_protect_name => psb_zmdots diff --git a/base/psblas/psb_znrm2.f90 b/base/psblas/psb_znrm2.f90 index 1e1cac26..9f327773 100644 --- a/base/psblas/psb_znrm2.f90 +++ b/base/psblas/psb_znrm2.f90 @@ -32,9 +32,9 @@ ! File: psb_znrm2.f90 ! ! Function: psb_znrm2 -! Forms the norm2 of a distributed vector, +! Computes the norm2 of a distributed vector, ! -! norm2 := sqrt ( sub( X )**T * sub( X ) ) +! norm2 := sqrt ( sub( X )**C * sub( X ) ) ! ! where sub( X ) denotes X(:,JX). ! @@ -43,6 +43,7 @@ ! desc_a - type(psb_desc_type). The communication descriptor. ! info - integer. Return code ! jx - integer(optional). The column offset for sub( X ). +! global - logical(optional) Whether to perform the global reduction, default: .true. ! function psb_znrm2(x, desc_a, info, jx,global) result(res) use psb_desc_mod @@ -170,14 +171,15 @@ end function psb_znrm2 !!$ ! ! Function: psb_znrm2 -! Forms the norm2 of a distributed vector, +! Computes the norm2 of a distributed vector, ! -! norm2 := sqrt ( X**T * X) +! norm2 := sqrt ( X**C * X) ! ! Arguments: ! x(:) - complex The input vector containing the entries of X. ! desc_a - type(psb_desc_type). The communication descriptor. ! info - integer. Return code +! global - logical(optional) Whether to perform the global reduction, default: .true. ! function psb_znrm2v(x, desc_a, info,global) result(res) use psb_desc_mod @@ -263,7 +265,17 @@ function psb_znrm2v(x, desc_a, info,global) result(res) end function psb_znrm2v - +! Function: psb_znrm2_vect +! Computes the norm2 of a distributed vector, +! +! norm2 := sqrt ( X**C * X) +! +! Arguments: +! x - type(psb_z_vect_type) The input vector containing the entries of X. +! desc_a - type(psb_desc_type). The communication descriptor. +! info - integer. Return code +! global - logical(optional) Whether to perform the global reduction, default: .true. +! function psb_znrm2_vect(x, desc_a, info,global) result(res) use psb_desc_mod use psb_check_mod @@ -344,7 +356,7 @@ function psb_znrm2_vect(x, desc_a, info,global) result(res) res = res - sqrt(zone - dd*(abs(x%v%v(idx))/res)**2) end do end if - else + else res = dzero end if @@ -392,15 +404,16 @@ end function psb_znrm2_vect !!$ ! ! Subroutine: psb_znrm2vs -! Forms the norm2 of a distributed vector, +! Computes the norm2 of a distributed vector, subroutine version ! -! norm2 := sqrt ( X**T * X) +! norm2 := sqrt ( X**C * X) ! ! Arguments: ! res - real The result. ! x(:) - complex The input vector containing the entries of X. ! desc_a - type(psb_desc_type). The communication descriptor. ! info - integer. Return code +! global - logical(optional) Whether to perform the global reduction, default: .true. ! subroutine psb_znrm2vs(res, x, desc_a, info,global) use psb_desc_mod diff --git a/base/psblas/psb_znrmi.f90 b/base/psblas/psb_znrmi.f90 index 9e0440ff..19b071e4 100644 --- a/base/psblas/psb_znrmi.f90 +++ b/base/psblas/psb_znrmi.f90 @@ -32,14 +32,15 @@ ! File: psb_znrmi.f90 ! ! Function: psb_znrmi -! Forms the infinity norm of a sparse matrix, +! Computes the infinity norm of a sparse matrix, ! -! nrmi := max_i(abs(sum(A(i,:)))) +! nrmi := max_i(sum(abs(A(i,:)))) ! ! Arguments: ! a - type(psb_zspmat_type). The sparse matrix containing A. ! desc_a - type(psb_desc_type). The communication descriptor. ! info - integer. Return code +! global - logical(optional) Whether to perform the global reduction, default: .true. ! function psb_znrmi(a,desc_a,info,global) result(res) use psb_base_mod, psb_protect_name => psb_znrmi diff --git a/base/psblas/psb_zspmm.f90 b/base/psblas/psb_zspmm.f90 index 83c42bc0..add3205b 100644 --- a/base/psblas/psb_zspmm.f90 +++ b/base/psblas/psb_zspmm.f90 @@ -31,6 +31,235 @@ ! ! File: psb_zspmm.f90 ! +! +! Subroutine: psb_zspm_vect +! Performs one of the distributed matrix-vector operations +! +! Y := alpha * Pr * A * Pc * X + beta * Y, or +! +! Y := alpha * Pr * A' * Pr * X + beta * Y, +! +! alpha and beta are scalars, X and Y are distributed +! vectors and A is a M-by-N distributed matrix. +! +! Arguments: +! alpha - complex The scalar alpha. +! a - type(psb_zspmat_type). The sparse matrix containing A. +! x - type(psb_z_vect_type) The input vector containing the entries of ( X ). +! beta - complex The scalar beta. +! y - type(psb_z_vect_type) The input vector containing the entries of ( Y ). +! desc_a - type(psb_desc_type). The communication descriptor. +! info - integer. Return code +! trans - character(optional). Whether A or A'. Default: 'N' +! work(:) - complex,(optional). Working area. +! doswap - logical(optional). Whether to performe halo updates. +! +subroutine psb_zspmv_vect(alpha,a,x,beta,y,desc_a,info,& + & trans, work, doswap) + use psb_base_mod, psb_protect_name => psb_zspmv_vect + use psi_mod + implicit none + + complex(psb_dpk_), intent(in) :: alpha, beta + type(psb_z_vect_type), intent(inout) :: x + type(psb_z_vect_type), intent(inout) :: y + type(psb_zspmat_type), intent(in) :: a + type(psb_desc_type), intent(in) :: desc_a + integer(psb_ipk_), intent(out) :: info + complex(psb_dpk_), optional, target, intent(inout) :: work(:) + character, intent(in), optional :: trans + logical, intent(in), optional :: doswap + + ! locals + integer(psb_ipk_) :: ictxt, np, me,& + & err_act, iix, jjx, iia, jja, nrow, ncol, lldx, lldy, & + & liwork, iiy, jjy, ib, ip, idx + integer(psb_lpk_) :: ix, ijx, iy, ijy, m, n, ia, ja + integer(psb_ipk_), parameter :: nb=4 + complex(psb_dpk_), pointer :: iwork(:), xp(:), yp(:) + complex(psb_dpk_), allocatable :: xvsave(:) + character :: trans_ + character(len=20) :: name, ch_err + logical :: aliw, doswap_ + integer(psb_ipk_) :: debug_level, debug_unit + + name='psb_zspmv' + info=psb_success_ + call psb_erractionsave(err_act) + if (psb_errstatus_fatal()) then + info = psb_err_internal_error_ ; goto 9999 + end if + debug_unit = psb_get_debug_unit() + debug_level = psb_get_debug_level() + + ictxt=desc_a%get_context() + call psb_info(ictxt, me, np) + if (np == -1) then + info = psb_err_context_error_ + call psb_errpush(info,name) + goto 9999 + endif + + if (.not.allocated(x%v)) then + info = psb_err_invalid_vect_state_ + call psb_errpush(info,name) + goto 9999 + endif + if (.not.allocated(y%v)) then + info = psb_err_invalid_vect_state_ + call psb_errpush(info,name) + goto 9999 + endif + + if (present(doswap)) then + doswap_ = doswap + else + doswap_ = .true. + endif + + if (present(trans)) then + trans_ = psb_toupper(trans) + else + trans_ = 'N' + endif + if ( (trans_ == 'N').or.(trans_ == 'T')& + & .or.(trans_ == 'C')) then + else + info = psb_err_iarg_invalid_value_ + call psb_errpush(info,name) + goto 9999 + end if + + m = desc_a%get_global_rows() + n = desc_a%get_global_cols() + nrow = desc_a%get_local_rows() + ncol = desc_a%get_local_cols() + lldx = x%get_nrows() + lldy = y%get_nrows() + if ((info == 0).and.(lldx null() + ! check for presence/size of a work area + liwork= 2*ncol + + if (present(work)) then + if (size(work) >= liwork) then + aliw =.false. + else + aliw=.true. + endif + else + aliw=.true. + end if + + if (aliw) then + allocate(iwork(liwork),stat=info) + if(info /= psb_success_) then + info=psb_err_from_subroutine_ + ch_err='Allocate' + call psb_errpush(info,name,a_err=ch_err) + goto 9999 + end if + else + iwork => work + endif + + if (debug_level >= psb_debug_comp_) & + & write(debug_unit,*) me,' ',trim(name),' Allocated work ', info + + if (trans_ == 'N') then + ! Matrix is not transposed + + if (doswap_) then + call psi_swapdata(ior(psb_swap_send_,psb_swap_recv_),& + & zzero,x%v,desc_a,iwork,info,data=psb_comm_halo_) + end if + + call psb_csmm(alpha,a,x,beta,y,info) + + if(info /= psb_success_) then + info = psb_err_from_subroutine_non_ + call psb_errpush(info,name) + goto 9999 + end if + + else + ! Matrix is transposed + + ! + ! Non-empty overlap, need a buffer to hold + ! the entries updated with average operator. + ! Why the average? because in this way they will contribute + ! with a proper scale factor (1/np) to the overall product. + ! + call psi_ovrl_save(x%v,xvsave,desc_a,info) + if (info == psb_success_) call psi_ovrl_upd(x%v,desc_a,psb_avg_,info) + + if (beta /= zzero) call y%set(zzero,nrow+1,ncol) + ! local Matrix-vector product + if (info == psb_success_) call psb_csmm(alpha,a,x,beta,y,info,trans=trans_) + + if (debug_level >= psb_debug_comp_) & + & write(debug_unit,*) me,' ',trim(name),' csmm ', info + + if (info == psb_success_) call psi_ovrl_restore(x%v,xvsave,desc_a,info) + if (info /= psb_success_) then + info = psb_err_from_subroutine_ + ch_err='psb_csmm' + call psb_errpush(info,name,a_err=ch_err) + goto 9999 + end if + + if (doswap_) then + call psi_swaptran(ior(psb_swap_send_,psb_swap_recv_),& + & zone,y%v,desc_a,iwork,info) + if (info == psb_success_) call psi_swapdata(ior(psb_swap_send_,psb_swap_recv_),& + & zone,y%v,desc_a,iwork,info,data=psb_comm_ovr_) + + if (debug_level >= psb_debug_comp_) & + & write(debug_unit,*) me,' ',trim(name),' swaptran ', info + if(info /= psb_success_) then + info = psb_err_from_subroutine_ + ch_err='PSI_SwapTran' + call psb_errpush(info,name,a_err=ch_err) + goto 9999 + end if + end if + + end if + + if (aliw) deallocate(iwork,stat=info) + if (debug_level >= psb_debug_comp_) & + & write(debug_unit,*) me,' ',trim(name),' deallocat ',aliw, info + if(info /= psb_success_) then + info = psb_err_from_subroutine_ + ch_err='Deallocate iwork' + call psb_errpush(info,name,a_err=ch_err) + goto 9999 + end if + + nullify(iwork) + + call psb_erractionrestore(err_act) + if (debug_level >= psb_debug_comp_) then + call psb_barrier(ictxt) + write(debug_unit,*) me,' ',trim(name),' Returning ' + endif + return + +9999 call psb_error_handler(ictxt,err_act) + + return +end subroutine psb_zspmv_vect +! ! Subroutine: psb_zspmm ! Performs one of the distributed matrix-vector operations ! @@ -356,10 +585,6 @@ subroutine psb_zspmm(alpha,a,x,beta,y,desc_a,info,& return end subroutine psb_zspmm - - - - !!$ !!$ Parallel Sparse BLAS version 3.5 !!$ (C) Copyright 2006-2018 @@ -670,211 +895,3 @@ subroutine psb_zspmv(alpha,a,x,beta,y,desc_a,info,& return end subroutine psb_zspmv - - - -subroutine psb_zspmv_vect(alpha,a,x,beta,y,desc_a,info,& - & trans, work, doswap) - use psb_base_mod, psb_protect_name => psb_zspmv_vect - use psi_mod - implicit none - - complex(psb_dpk_), intent(in) :: alpha, beta - type(psb_z_vect_type), intent(inout) :: x - type(psb_z_vect_type), intent(inout) :: y - type(psb_zspmat_type), intent(in) :: a - type(psb_desc_type), intent(in) :: desc_a - integer(psb_ipk_), intent(out) :: info - complex(psb_dpk_), optional, target, intent(inout) :: work(:) - character, intent(in), optional :: trans - logical, intent(in), optional :: doswap - - ! locals - integer(psb_ipk_) :: ictxt, np, me,& - & err_act, iix, jjx, iia, jja, nrow, ncol, lldx, lldy, & - & liwork, iiy, jjy, ib, ip, idx - integer(psb_lpk_) :: ix, ijx, iy, ijy, m, n, ia, ja - integer(psb_ipk_), parameter :: nb=4 - complex(psb_dpk_), pointer :: iwork(:), xp(:), yp(:) - complex(psb_dpk_), allocatable :: xvsave(:) - character :: trans_ - character(len=20) :: name, ch_err - logical :: aliw, doswap_ - integer(psb_ipk_) :: debug_level, debug_unit - - name='psb_zspmv' - info=psb_success_ - call psb_erractionsave(err_act) - if (psb_errstatus_fatal()) then - info = psb_err_internal_error_ ; goto 9999 - end if - debug_unit = psb_get_debug_unit() - debug_level = psb_get_debug_level() - - ictxt=desc_a%get_context() - call psb_info(ictxt, me, np) - if (np == -1) then - info = psb_err_context_error_ - call psb_errpush(info,name) - goto 9999 - endif - - if (.not.allocated(x%v)) then - info = psb_err_invalid_vect_state_ - call psb_errpush(info,name) - goto 9999 - endif - if (.not.allocated(y%v)) then - info = psb_err_invalid_vect_state_ - call psb_errpush(info,name) - goto 9999 - endif - - if (present(doswap)) then - doswap_ = doswap - else - doswap_ = .true. - endif - - if (present(trans)) then - trans_ = psb_toupper(trans) - else - trans_ = 'N' - endif - if ( (trans_ == 'N').or.(trans_ == 'T')& - & .or.(trans_ == 'C')) then - else - info = psb_err_iarg_invalid_value_ - call psb_errpush(info,name) - goto 9999 - end if - - m = desc_a%get_global_rows() - n = desc_a%get_global_cols() - nrow = desc_a%get_local_rows() - ncol = desc_a%get_local_cols() - lldx = x%get_nrows() - lldy = y%get_nrows() - if ((info == 0).and.(lldx null() - ! check for presence/size of a work area - liwork= 2*ncol - - if (present(work)) then - if (size(work) >= liwork) then - aliw =.false. - else - aliw=.true. - endif - else - aliw=.true. - end if - - if (aliw) then - allocate(iwork(liwork),stat=info) - if(info /= psb_success_) then - info=psb_err_from_subroutine_ - ch_err='Allocate' - call psb_errpush(info,name,a_err=ch_err) - goto 9999 - end if - else - iwork => work - endif - - if (debug_level >= psb_debug_comp_) & - & write(debug_unit,*) me,' ',trim(name),' Allocated work ', info - - if (trans_ == 'N') then - ! Matrix is not transposed - - if (doswap_) then - call psi_swapdata(ior(psb_swap_send_,psb_swap_recv_),& - & zzero,x%v,desc_a,iwork,info,data=psb_comm_halo_) - end if - - call psb_csmm(alpha,a,x,beta,y,info) - - if(info /= psb_success_) then - info = psb_err_from_subroutine_non_ - call psb_errpush(info,name) - goto 9999 - end if - - else - ! Matrix is transposed - - ! - ! Non-empty overlap, need a buffer to hold - ! the entries updated with average operator. - ! Why the average? because in this way they will contribute - ! with a proper scale factor (1/np) to the overall product. - ! - call psi_ovrl_save(x%v,xvsave,desc_a,info) - if (info == psb_success_) call psi_ovrl_upd(x%v,desc_a,psb_avg_,info) - - if (beta /= zzero) call y%set(zzero,nrow+1,ncol) - ! local Matrix-vector product - if (info == psb_success_) call psb_csmm(alpha,a,x,beta,y,info,trans=trans_) - - if (debug_level >= psb_debug_comp_) & - & write(debug_unit,*) me,' ',trim(name),' csmm ', info - - if (info == psb_success_) call psi_ovrl_restore(x%v,xvsave,desc_a,info) - if (info /= psb_success_) then - info = psb_err_from_subroutine_ - ch_err='psb_csmm' - call psb_errpush(info,name,a_err=ch_err) - goto 9999 - end if - - if (doswap_) then - call psi_swaptran(ior(psb_swap_send_,psb_swap_recv_),& - & zone,y%v,desc_a,iwork,info) - if (info == psb_success_) call psi_swapdata(ior(psb_swap_send_,psb_swap_recv_),& - & zone,y%v,desc_a,iwork,info,data=psb_comm_ovr_) - - if (debug_level >= psb_debug_comp_) & - & write(debug_unit,*) me,' ',trim(name),' swaptran ', info - if(info /= psb_success_) then - info = psb_err_from_subroutine_ - ch_err='PSI_SwapTran' - call psb_errpush(info,name,a_err=ch_err) - goto 9999 - end if - end if - - end if - - if (aliw) deallocate(iwork,stat=info) - if (debug_level >= psb_debug_comp_) & - & write(debug_unit,*) me,' ',trim(name),' deallocat ',aliw, info - if(info /= psb_success_) then - info = psb_err_from_subroutine_ - ch_err='Deallocate iwork' - call psb_errpush(info,name,a_err=ch_err) - goto 9999 - end if - - nullify(iwork) - - call psb_erractionrestore(err_act) - if (debug_level >= psb_debug_comp_) then - call psb_barrier(ictxt) - write(debug_unit,*) me,' ',trim(name),' Returning ' - endif - return - -9999 call psb_error_handler(ictxt,err_act) - - return -end subroutine psb_zspmv_vect diff --git a/base/psblas/psb_zspnrm1.f90 b/base/psblas/psb_zspnrm1.f90 index 3c292a74..7bc5fa15 100644 --- a/base/psblas/psb_zspnrm1.f90 +++ b/base/psblas/psb_zspnrm1.f90 @@ -40,6 +40,7 @@ ! a - type(psb_zspmat_type). The sparse matrix containing A. ! desc_a - type(psb_desc_type). The communication descriptor. ! info - integer. Return code +! global - logical(optional) Whether to perform the global reduction, default: .true. ! function psb_zspnrm1(a,desc_a,info,global) result(res) use psb_base_mod, psb_protect_name => psb_zspnrm1 diff --git a/base/psblas/psb_zspsm.f90 b/base/psblas/psb_zspsm.f90 index 13e00d3f..63cbe783 100644 --- a/base/psblas/psb_zspsm.f90 +++ b/base/psblas/psb_zspsm.f90 @@ -31,6 +31,203 @@ ! ! File: psb_zspsm.f90 ! +! +! Subroutine: psb_zsps_vect +! Performs one of the distributed matrix-vector operations +! +! Y := alpha * Pr * A-1 * Pc * X + beta * Y, or +! +! Y := alpha * D * Pr * A-1 * Pc * X + beta * Y, or +! +! Y := alpha * Pr * A-1 * Pc * D * X + beta * Y, or +! +! Y := alpha * Pr * A-T * Pc * X + beta * Y, or +! +! Y := alpha * D * Pr * A-T * Pc * X + beta * Y, or +! +! Y := alpha * Pr * A-T * Pc * D * X + beta * Y, or +! +! X is a distributed +! vector and T is a M-by-M distributed triangular matrix. +! +! +! Arguments: +! alpha - complex. The scalar alpha. +! a - type(psb_zspmat_type). The sparse matrix containing A. +! x - type(psb_z_vect_type) The input vector containing the entries of ( X ). +! beta - complex The scalar beta. +! y - type(psb_z_vect_type) The input vector containing the entries of ( Y ). +! desc_a - type(psb_desc_type). The communication descriptor. +! info - integer. Return code +! trans - character(optional). Whether A or A'. If not present 'N' is assumed. +! scale - character(optional). Specify some type of operation with +! the diagonal matrix D. +! choice - integer(optional). The kind of update to perform on overlap elements. +! d(:) - complex, optional Matrix for diagonal scaling. +! work(:) - complex, optional Working area. +! +subroutine psb_zspsv_vect(alpha,a,x,beta,y,desc_a,info,& + & trans, scale, choice, diag, work) + use psb_base_mod, psb_protect_name => psb_zspsv_vect + use psi_mod + implicit none + + complex(psb_dpk_), intent(in) :: alpha, beta + type(psb_z_vect_type), intent(inout) :: x + type(psb_z_vect_type), intent(inout) :: y + type(psb_zspmat_type), intent(inout) :: a + type(psb_desc_type), intent(in) :: desc_a + integer(psb_ipk_), intent(out) :: info + type(psb_z_vect_type), intent(inout), optional :: diag + complex(psb_dpk_), optional, target, intent(inout) :: work(:) + character, intent(in), optional :: trans, scale + integer(psb_ipk_), intent(in), optional :: choice + + ! locals + integer(psb_ipk_) :: ictxt, np, me, & + & err_act, iix, jjx, ia, ja, iia, jja, lldx,lldy, choice_,& + & ix, iy, ik, jx, jy, i, lld,& + & m, nrow, ncol, liwork, llwork, iiy, jjy, idx, ndm + + character :: lscale + integer(psb_ipk_), parameter :: nb=4 + complex(psb_dpk_),pointer :: iwork(:), xp(:), yp(:) + character :: itrans + character(len=20) :: name, ch_err + logical :: aliw + + name='psb_zspsv_vect' + info=psb_success_ + call psb_erractionsave(err_act) + if (psb_errstatus_fatal()) then + info = psb_err_internal_error_ ; goto 9999 + end if + + ictxt=desc_a%get_context() + + call psb_info(ictxt, me, np) + if (np == -1) then + info = psb_err_context_error_ + call psb_errpush(info,name) + goto 9999 + endif + + if (.not.allocated(x%v)) then + info = psb_err_invalid_vect_state_ + call psb_errpush(info,name) + goto 9999 + endif + if (.not.allocated(y%v)) then + info = psb_err_invalid_vect_state_ + call psb_errpush(info,name) + goto 9999 + endif + + + if (present(choice)) then + choice_ = choice + else + choice_ = psb_avg_ + endif + + if (present(scale)) then + lscale = psb_toupper(scale) + else + lscale = 'U' + endif + + if (present(trans)) then + itrans = psb_toupper(trans) + if((itrans == 'N').or.(itrans == 'T').or.(itrans == 'C')) then + ! Ok + else + info = psb_err_iarg_invalid_value_ + call psb_errpush(info,name) + goto 9999 + end if + else + itrans = 'N' + endif + + m = desc_a%get_global_rows() + nrow = desc_a%get_local_rows() + ncol = desc_a%get_local_cols() + lldx = x%get_nrows() + lldy = y%get_nrows() + if ((info == 0).and.(lldx null() + ! check for presence/size of a work area + liwork= 2*ncol + + if (present(work)) then + if (size(work) >= liwork) then + aliw =.false. + else + aliw=.true. + endif + else + aliw=.true. + end if + + if (aliw) then + allocate(iwork(liwork),stat=info) + if(info /= psb_success_) then + info=psb_err_from_subroutine_ + ch_err='psb_realloc' + call psb_errpush(info,name,a_err=ch_err) + goto 9999 + end if + else + iwork => work + endif + + iwork(1)=0.d0 + + ! Perform local triangular system solve + if (present(diag)) then + call a%spsm(alpha,x,beta,y,info,scale=scale,d=diag,trans=trans) + else + call a%spsm(alpha,x,beta,y,info,scale=scale,trans=trans) + end if + if(info /= psb_success_) then + info = psb_err_from_subroutine_ + ch_err='dcssm' + call psb_errpush(info,name,a_err=ch_err) + goto 9999 + end if + + ! update overlap elements + if (choice_ > 0) then + call psi_swapdata(ior(psb_swap_send_,psb_swap_recv_),& + & zone,y%v,desc_a,iwork,info,data=psb_comm_ovr_) + + + if (info == psb_success_) call psi_ovrl_upd(y%v,desc_a,choice_,info) + if (info /= psb_success_) then + call psb_errpush(psb_err_from_subroutine_,name,a_err='Inner updates') + goto 9999 + end if + end if + + if (aliw) deallocate(iwork) + + call psb_erractionrestore(err_act) + return + +9999 call psb_error_handler(ictxt,err_act) + + return +end subroutine psb_zspsv_vect +! ! Subroutine: psb_zspsm ! Performs one of the distributed matrix-vector operations ! @@ -283,38 +480,6 @@ subroutine psb_zspsm(alpha,a,x,beta,y,desc_a,info,& return end subroutine psb_zspsm - -!!$ -!!$ Parallel Sparse BLAS version 3.5 -!!$ (C) Copyright 2006-2018 -!!$ Salvatore Filippone University of Rome Tor Vergata -!!$ Alfredo Buttari -!!$ -!!$ Redistribution and use in source and binary forms, with or without -!!$ modification, are permitted provided that the following conditions -!!$ are met: -!!$ 1. Redistributions of source code must retain the above copyright -!!$ notice, this list of conditions and the following disclaimer. -!!$ 2. Redistributions in binary form must reproduce the above copyright -!!$ notice, this list of conditions, and the following disclaimer in the -!!$ documentation and/or other materials provided with the distribution. -!!$ 3. The name of the PSBLAS group or the names of its contributors may -!!$ not be used to endorse or promote products derived from this -!!$ software without specific written permission. -!!$ -!!$ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -!!$ ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED -!!$ TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -!!$ PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE PSBLAS GROUP OR ITS CONTRIBUTORS -!!$ BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -!!$ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -!!$ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -!!$ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -!!$ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -!!$ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -!!$ POSSIBILITY OF SUCH DAMAGE. -!!$ -!!$ ! ! Subroutine: psb_zspsv ! Performs one of the distributed matrix-vector operations @@ -545,166 +710,3 @@ subroutine psb_zspsv(alpha,a,x,beta,y,desc_a,info,& return end subroutine psb_zspsv - -subroutine psb_zspsv_vect(alpha,a,x,beta,y,desc_a,info,& - & trans, scale, choice, diag, work) - use psb_base_mod, psb_protect_name => psb_zspsv_vect - use psi_mod - implicit none - - complex(psb_dpk_), intent(in) :: alpha, beta - type(psb_z_vect_type), intent(inout) :: x - type(psb_z_vect_type), intent(inout) :: y - type(psb_zspmat_type), intent(inout) :: a - type(psb_desc_type), intent(in) :: desc_a - integer(psb_ipk_), intent(out) :: info - type(psb_z_vect_type), intent(inout), optional :: diag - complex(psb_dpk_), optional, target, intent(inout) :: work(:) - character, intent(in), optional :: trans, scale - integer(psb_ipk_), intent(in), optional :: choice - - ! locals - integer(psb_ipk_) :: ictxt, np, me, & - & err_act, iix, jjx, ia, ja, iia, jja, lldx,lldy, choice_,& - & ix, iy, ik, jx, jy, i, lld,& - & m, nrow, ncol, liwork, llwork, iiy, jjy, idx, ndm - - character :: lscale - integer(psb_ipk_), parameter :: nb=4 - complex(psb_dpk_),pointer :: iwork(:), xp(:), yp(:) - character :: itrans - character(len=20) :: name, ch_err - logical :: aliw - - name='psb_sspsv' - info=psb_success_ - call psb_erractionsave(err_act) - if (psb_errstatus_fatal()) then - info = psb_err_internal_error_ ; goto 9999 - end if - - ictxt=desc_a%get_context() - - call psb_info(ictxt, me, np) - if (np == -1) then - info = psb_err_context_error_ - call psb_errpush(info,name) - goto 9999 - endif - - if (.not.allocated(x%v)) then - info = psb_err_invalid_vect_state_ - call psb_errpush(info,name) - goto 9999 - endif - if (.not.allocated(y%v)) then - info = psb_err_invalid_vect_state_ - call psb_errpush(info,name) - goto 9999 - endif - - - if (present(choice)) then - choice_ = choice - else - choice_ = psb_avg_ - endif - - if (present(scale)) then - lscale = psb_toupper(scale) - else - lscale = 'U' - endif - - if (present(trans)) then - itrans = psb_toupper(trans) - if((itrans == 'N').or.(itrans == 'T').or.(itrans == 'C')) then - ! Ok - else - info = psb_err_iarg_invalid_value_ - call psb_errpush(info,name) - goto 9999 - end if - else - itrans = 'N' - endif - - m = desc_a%get_global_rows() - nrow = desc_a%get_local_rows() - ncol = desc_a%get_local_cols() - lldx = x%get_nrows() - lldy = y%get_nrows() - if ((info == 0).and.(lldx null() - ! check for presence/size of a work area - liwork= 2*ncol - - if (present(work)) then - if (size(work) >= liwork) then - aliw =.false. - else - aliw=.true. - endif - else - aliw=.true. - end if - - if (aliw) then - allocate(iwork(liwork),stat=info) - if(info /= psb_success_) then - info=psb_err_from_subroutine_ - ch_err='psb_realloc' - call psb_errpush(info,name,a_err=ch_err) - goto 9999 - end if - else - iwork => work - endif - - iwork(1)=0.d0 - - ! Perform local triangular system solve - if (present(diag)) then - call a%spsm(alpha,x,beta,y,info,scale=scale,d=diag,trans=trans) - else - call a%spsm(alpha,x,beta,y,info,scale=scale,trans=trans) - end if - if(info /= psb_success_) then - info = psb_err_from_subroutine_ - ch_err='dcssm' - call psb_errpush(info,name,a_err=ch_err) - goto 9999 - end if - - ! update overlap elements - if (choice_ > 0) then - call psi_swapdata(ior(psb_swap_send_,psb_swap_recv_),& - & zone,y%v,desc_a,iwork,info,data=psb_comm_ovr_) - - - if (info == psb_success_) call psi_ovrl_upd(y%v,desc_a,choice_,info) - if (info /= psb_success_) then - call psb_errpush(psb_err_from_subroutine_,name,a_err='Inner updates') - goto 9999 - end if - end if - - if (aliw) deallocate(iwork) - - call psb_erractionrestore(err_act) - return - -9999 call psb_error_handler(ictxt,err_act) - - return -end subroutine psb_zspsv_vect - diff --git a/base/serial/psb_camax_s.f90 b/base/serial/psb_camax_s.f90 index 7e608c8e..d9073d0f 100644 --- a/base/serial/psb_camax_s.f90 +++ b/base/serial/psb_camax_s.f90 @@ -31,7 +31,7 @@ ! ! ! Function: psb_camax_s -! Searches the absolute max of X. +! Computes the max absolute value of X. ! ! normi := max(abs(X(i)) ! diff --git a/base/serial/psb_casum_s.f90 b/base/serial/psb_casum_s.f90 index cf799cdc..1c357cc8 100644 --- a/base/serial/psb_casum_s.f90 +++ b/base/serial/psb_casum_s.f90 @@ -31,9 +31,9 @@ ! ! ! Function: psb_casum_s -! Searches the absolute max of X. +! Computes the sum of absolute values of X. ! -! normi := max(abs(X(i)) +! asum := sum(abs(X(:)) ! ! Arguments: ! n - integer size of X diff --git a/base/serial/psb_damax_s.f90 b/base/serial/psb_damax_s.f90 index f376f0ba..66aef288 100644 --- a/base/serial/psb_damax_s.f90 +++ b/base/serial/psb_damax_s.f90 @@ -31,7 +31,7 @@ ! ! ! Function: psb_damax_s -! Searches the absolute max of X. +! Computes the max absolute value of X. ! ! normi := max(abs(X(i)) ! diff --git a/base/serial/psb_dasum_s.f90 b/base/serial/psb_dasum_s.f90 index 6fb6e4f6..1ab42614 100644 --- a/base/serial/psb_dasum_s.f90 +++ b/base/serial/psb_dasum_s.f90 @@ -31,9 +31,9 @@ ! ! ! Function: psb_dasum_s -! Searches the absolute max of X. +! Computes the sum of absolute values of X. ! -! normi := max(abs(X(i)) +! asum := sum(abs(X(:)) ! ! Arguments: ! n - integer size of X diff --git a/base/serial/psb_samax_s.f90 b/base/serial/psb_samax_s.f90 index da7fc93e..f2b1fee2 100644 --- a/base/serial/psb_samax_s.f90 +++ b/base/serial/psb_samax_s.f90 @@ -31,7 +31,7 @@ ! ! ! Function: psb_samax_s -! Searches the absolute max of X. +! Computes the max absolute value of X. ! ! normi := max(abs(X(i)) ! diff --git a/base/serial/psb_sasum_s.f90 b/base/serial/psb_sasum_s.f90 index 7a3b44e2..c692cbd4 100644 --- a/base/serial/psb_sasum_s.f90 +++ b/base/serial/psb_sasum_s.f90 @@ -31,9 +31,9 @@ ! ! ! Function: psb_sasum_s -! Searches the absolute max of X. +! Computes the sum of absolute values of X. ! -! normi := max(abs(X(i)) +! asum := sum(abs(X(:)) ! ! Arguments: ! n - integer size of X diff --git a/base/serial/psb_zamax_s.f90 b/base/serial/psb_zamax_s.f90 index 8cac2e2e..4a408566 100644 --- a/base/serial/psb_zamax_s.f90 +++ b/base/serial/psb_zamax_s.f90 @@ -31,7 +31,7 @@ ! ! ! Function: psb_zamax_s -! Searches the absolute max of X. +! Computes the max absolute value of X. ! ! normi := max(abs(X(i)) ! diff --git a/base/serial/psb_zasum_s.f90 b/base/serial/psb_zasum_s.f90 index f00e4347..35a043ed 100644 --- a/base/serial/psb_zasum_s.f90 +++ b/base/serial/psb_zasum_s.f90 @@ -31,9 +31,9 @@ ! ! ! Function: psb_zasum_s -! Searches the absolute max of X. +! Computes the sum of absolute values of X. ! -! normi := max(abs(X(i)) +! asum := sum(abs(X(:)) ! ! Arguments: ! n - integer size of X diff --git a/base/tools/psb_callc.f90 b/base/tools/psb_callc.f90 index 6464ab3b..19924fbe 100644 --- a/base/tools/psb_callc.f90 +++ b/base/tools/psb_callc.f90 @@ -32,17 +32,15 @@ ! ! File: psb_callc.f90 ! -! Function: psb_calloc -! Allocates dense matrix for PSBLAS routines. +! Function: psb_calloc_vect +! Allocates dense vector for PSBLAS routines. ! The descriptor may be in either the build or assembled state. ! ! Arguments: -! x - the matrix to be allocated. +! x - the vector to be allocated. ! desc_a - the communication descriptor. ! info - Return code -! n - optional number of columns. -! lb - optional lower bound on column indices -subroutine psb_calloc_vect(x, desc_a,info,n) +subroutine psb_calloc_vect(x, desc_a,info) use psb_base_mod, psb_protect_name => psb_calloc_vect use psi_mod implicit none @@ -51,7 +49,6 @@ subroutine psb_calloc_vect(x, desc_a,info,n) type(psb_c_vect_type), intent(out) :: x type(psb_desc_type), intent(in) :: desc_a integer(psb_ipk_),intent(out) :: info - integer(psb_ipk_), optional, intent(in) :: n !locals integer(psb_ipk_) :: np,me,nr,i,err_act @@ -113,6 +110,16 @@ subroutine psb_calloc_vect(x, desc_a,info,n) return end subroutine psb_calloc_vect +! Function: psb_calloc_vect_r2 +! Allocates a vector of dense vectors for PSBLAS routines. +! The descriptor may be in either the build or assembled state. +! +! Arguments: +! x - the vector to be allocated. +! desc_a - the communication descriptor. +! info - Return code +! n - optional number of columns. +! lb - optional lower bound on column indices subroutine psb_calloc_vect_r2(x, desc_a,info,n,lb) use psb_base_mod, psb_protect_name => psb_calloc_vect_r2 diff --git a/base/tools/psb_casb.f90 b/base/tools/psb_casb.f90 index 5c6b7dc2..b7e57549 100644 --- a/base/tools/psb_casb.f90 +++ b/base/tools/psb_casb.f90 @@ -31,17 +31,26 @@ ! ! File: psb_casb.f90 ! -! Subroutine: psb_casb -! Assembles a dense matrix for PSBLAS routines +! Subroutine: psb_casb_vect, _vect_r2 and _multivect +! Assembles a dense vector, an array of vectors or a multivector +! for PSBLAS routines. ! Since the allocation may have been called with the desciptor ! in the build state we make sure that X has a number of rows ! allowing for the halo indices, reallocating if necessary. ! We also call the halo routine for good measure. +! However, sometimes we need to create temporary vectors whose contents +! will be initialized through some subsequent call to geaxpby or similar; +! for this situation we provide the SCRATCH flag. +! ! ! Arguments: -! x(:,:) - complex, allocatable The matrix to be assembled. -! desc_a - type(psb_desc_type). The communication descriptor. +! x - type(psb_c_vect_type) The matrix to be assembled. +! desc_a - type(psb_desc_type). The communication descriptor. ! info - integer. return code +! mold - type(psb_c_base_vect_type), optional A mold for the inner storage format +! scratch - logical, optional If true, allocate without checking/zeroing contents. +! default: .false. +! subroutine psb_casb_vect(x, desc_a, info, mold, scratch) use psb_base_mod, psb_protect_name => psb_casb_vect implicit none diff --git a/base/tools/psb_cins.f90 b/base/tools/psb_cins.f90 index a069c33b..cfb82b88 100644 --- a/base/tools/psb_cins.f90 +++ b/base/tools/psb_cins.f90 @@ -29,17 +29,17 @@ ! POSSIBILITY OF SUCH DAMAGE. ! ! -! Subroutine: psb_cinsvi -! Insert dense submatrix to dense matrix. Note: the row indices in IRW +! Subroutine: psb_cins_vect +! Insert entries into a dense vector. Note: the row indices in IRW ! are assumed to be in global numbering and are converted on the fly. ! Row indices not belonging to the current process are silently discarded. ! ! Arguments: ! m - integer. Number of rows of submatrix belonging to ! val to be inserted. -! irw(:) - integer Row indices of rows of val (global numbering) -! val(:) - complex The source dense submatrix. -! x(:) - complex The destination dense matrix. +! irw(:) - integer(psb_lpk_) Row indices of rows of val (global numbering) +! val(:) - complex The source vector +! x - type(psb_c_vect_type) The destination vector ! desc_a - type(psb_desc_type). The communication descriptor. ! info - integer. return code ! dupl - integer What to do with duplicates: @@ -50,10 +50,6 @@ subroutine psb_cins_vect(m, irw, val, x, desc_a, info, dupl,local) use psi_mod implicit none - ! m rows number of submatrix belonging to val to be inserted - ! ix x global-row corresponding to position at which val submatrix - ! must be inserted - !....parameters... integer(psb_ipk_), intent(in) :: m integer(psb_lpk_), intent(in) :: irw(:) @@ -155,6 +151,23 @@ subroutine psb_cins_vect(m, irw, val, x, desc_a, info, dupl,local) end subroutine psb_cins_vect +! Subroutine: psb_cins_vect_v +! Insert entries into a vector from another encapsulated vector. +! Note: the row indices in IRW +! are assumed to be in global numbering and are converted on the fly. +! Row indices not belonging to the current process are silently discarded. +! +! Arguments: +! m - integer. Number of rows of submatrix belonging to +! val to be inserted. +! irw - type(psb_l_vect_type) Row indices of rows of val (global numbering) +! val - type(psb_c_vect_type) The source vector +! x - type(psb_c_vect_type) The destination vector +! desc_a - type(psb_desc_type). The communication descriptor. +! info - integer. return code +! dupl - integer What to do with duplicates: +! psb_dupl_ovwrt_ overwrite +! psb_dupl_add_ add subroutine psb_cins_vect_v(m, irw, val, x, desc_a, info, dupl,local) use psb_base_mod, psb_protect_name => psb_cins_vect_v use psi_mod @@ -329,7 +342,6 @@ subroutine psb_cins_vect_r2(m, irw, val, x, desc_a, info, dupl,local) mglob = desc_a%get_global_rows() - n = min(size(x),size(val,2)) allocate(irl(m),stat=info) if (info /= psb_success_) then @@ -375,8 +387,6 @@ subroutine psb_cins_vect_r2(m, irw, val, x, desc_a, info, dupl,local) end subroutine psb_cins_vect_r2 - - subroutine psb_cins_multivect(m, irw, val, x, desc_a, info, dupl,local) use psb_base_mod, psb_protect_name => psb_cins_multivect use psi_mod diff --git a/base/tools/psb_csphalo.F90 b/base/tools/psb_csphalo.F90 index 2393bed6..f0432cc6 100644 --- a/base/tools/psb_csphalo.F90 +++ b/base/tools/psb_csphalo.F90 @@ -1208,7 +1208,7 @@ contains n_el_recv = ipdxv(counter+psb_n_elem_recv_) counter = counter+n_el_recv n_el_send = ipdxv(counter+psb_n_elem_send_) - prcid(ip+1) = psb_get_rank(ictxt,ip) + prcid(ip+1) = psb_get_mpi_rank(ictxt,ip) sz = rvsz(ip+1) if (sz > 0) then idx = brvindx(ip+1) @@ -1235,7 +1235,7 @@ contains n_el_recv = ipdxv(counter+psb_n_elem_recv_) counter = counter+n_el_recv n_el_send = ipdxv(counter+psb_n_elem_send_) - if (prcid(ip+1)<0) prcid(ip+1) = psb_get_rank(ictxt,ip) + if (prcid(ip+1)<0) prcid(ip+1) = psb_get_mpi_rank(ictxt,ip) sz = sdsz(ip+1) if (sz > 0) then idx = bsdindx(ip+1) diff --git a/base/tools/psb_dallc.f90 b/base/tools/psb_dallc.f90 index ac812ca7..73611ad7 100644 --- a/base/tools/psb_dallc.f90 +++ b/base/tools/psb_dallc.f90 @@ -32,17 +32,15 @@ ! ! File: psb_dallc.f90 ! -! Function: psb_dalloc -! Allocates dense matrix for PSBLAS routines. +! Function: psb_dalloc_vect +! Allocates dense vector for PSBLAS routines. ! The descriptor may be in either the build or assembled state. ! ! Arguments: -! x - the matrix to be allocated. +! x - the vector to be allocated. ! desc_a - the communication descriptor. ! info - Return code -! n - optional number of columns. -! lb - optional lower bound on column indices -subroutine psb_dalloc_vect(x, desc_a,info,n) +subroutine psb_dalloc_vect(x, desc_a,info) use psb_base_mod, psb_protect_name => psb_dalloc_vect use psi_mod implicit none @@ -51,7 +49,6 @@ subroutine psb_dalloc_vect(x, desc_a,info,n) type(psb_d_vect_type), intent(out) :: x type(psb_desc_type), intent(in) :: desc_a integer(psb_ipk_),intent(out) :: info - integer(psb_ipk_), optional, intent(in) :: n !locals integer(psb_ipk_) :: np,me,nr,i,err_act @@ -113,6 +110,16 @@ subroutine psb_dalloc_vect(x, desc_a,info,n) return end subroutine psb_dalloc_vect +! Function: psb_dalloc_vect_r2 +! Allocates a vector of dense vectors for PSBLAS routines. +! The descriptor may be in either the build or assembled state. +! +! Arguments: +! x - the vector to be allocated. +! desc_a - the communication descriptor. +! info - Return code +! n - optional number of columns. +! lb - optional lower bound on column indices subroutine psb_dalloc_vect_r2(x, desc_a,info,n,lb) use psb_base_mod, psb_protect_name => psb_dalloc_vect_r2 diff --git a/base/tools/psb_dasb.f90 b/base/tools/psb_dasb.f90 index 3a022b1c..1d141cdf 100644 --- a/base/tools/psb_dasb.f90 +++ b/base/tools/psb_dasb.f90 @@ -31,17 +31,26 @@ ! ! File: psb_dasb.f90 ! -! Subroutine: psb_dasb -! Assembles a dense matrix for PSBLAS routines +! Subroutine: psb_dasb_vect, _vect_r2 and _multivect +! Assembles a dense vector, an array of vectors or a multivector +! for PSBLAS routines. ! Since the allocation may have been called with the desciptor ! in the build state we make sure that X has a number of rows ! allowing for the halo indices, reallocating if necessary. ! We also call the halo routine for good measure. +! However, sometimes we need to create temporary vectors whose contents +! will be initialized through some subsequent call to geaxpby or similar; +! for this situation we provide the SCRATCH flag. +! ! ! Arguments: -! x(:,:) - real, allocatable The matrix to be assembled. -! desc_a - type(psb_desc_type). The communication descriptor. +! x - type(psb_d_vect_type) The matrix to be assembled. +! desc_a - type(psb_desc_type). The communication descriptor. ! info - integer. return code +! mold - type(psb_d_base_vect_type), optional A mold for the inner storage format +! scratch - logical, optional If true, allocate without checking/zeroing contents. +! default: .false. +! subroutine psb_dasb_vect(x, desc_a, info, mold, scratch) use psb_base_mod, psb_protect_name => psb_dasb_vect implicit none diff --git a/base/tools/psb_dins.f90 b/base/tools/psb_dins.f90 index 84d5a015..ad7f8d90 100644 --- a/base/tools/psb_dins.f90 +++ b/base/tools/psb_dins.f90 @@ -29,17 +29,17 @@ ! POSSIBILITY OF SUCH DAMAGE. ! ! -! Subroutine: psb_dinsvi -! Insert dense submatrix to dense matrix. Note: the row indices in IRW +! Subroutine: psb_dins_vect +! Insert entries into a dense vector. Note: the row indices in IRW ! are assumed to be in global numbering and are converted on the fly. ! Row indices not belonging to the current process are silently discarded. ! ! Arguments: ! m - integer. Number of rows of submatrix belonging to ! val to be inserted. -! irw(:) - integer Row indices of rows of val (global numbering) -! val(:) - real The source dense submatrix. -! x(:) - real The destination dense matrix. +! irw(:) - integer(psb_lpk_) Row indices of rows of val (global numbering) +! val(:) - real The source vector +! x - type(psb_d_vect_type) The destination vector ! desc_a - type(psb_desc_type). The communication descriptor. ! info - integer. return code ! dupl - integer What to do with duplicates: @@ -50,10 +50,6 @@ subroutine psb_dins_vect(m, irw, val, x, desc_a, info, dupl,local) use psi_mod implicit none - ! m rows number of submatrix belonging to val to be inserted - ! ix x global-row corresponding to position at which val submatrix - ! must be inserted - !....parameters... integer(psb_ipk_), intent(in) :: m integer(psb_lpk_), intent(in) :: irw(:) @@ -155,6 +151,23 @@ subroutine psb_dins_vect(m, irw, val, x, desc_a, info, dupl,local) end subroutine psb_dins_vect +! Subroutine: psb_dins_vect_v +! Insert entries into a vector from another encapsulated vector. +! Note: the row indices in IRW +! are assumed to be in global numbering and are converted on the fly. +! Row indices not belonging to the current process are silently discarded. +! +! Arguments: +! m - integer. Number of rows of submatrix belonging to +! val to be inserted. +! irw - type(psb_l_vect_type) Row indices of rows of val (global numbering) +! val - type(psb_d_vect_type) The source vector +! x - type(psb_d_vect_type) The destination vector +! desc_a - type(psb_desc_type). The communication descriptor. +! info - integer. return code +! dupl - integer What to do with duplicates: +! psb_dupl_ovwrt_ overwrite +! psb_dupl_add_ add subroutine psb_dins_vect_v(m, irw, val, x, desc_a, info, dupl,local) use psb_base_mod, psb_protect_name => psb_dins_vect_v use psi_mod @@ -329,7 +342,6 @@ subroutine psb_dins_vect_r2(m, irw, val, x, desc_a, info, dupl,local) mglob = desc_a%get_global_rows() - n = min(size(x),size(val,2)) allocate(irl(m),stat=info) if (info /= psb_success_) then @@ -375,8 +387,6 @@ subroutine psb_dins_vect_r2(m, irw, val, x, desc_a, info, dupl,local) end subroutine psb_dins_vect_r2 - - subroutine psb_dins_multivect(m, irw, val, x, desc_a, info, dupl,local) use psb_base_mod, psb_protect_name => psb_dins_multivect use psi_mod diff --git a/base/tools/psb_dsphalo.F90 b/base/tools/psb_dsphalo.F90 index 4da40e96..032a139c 100644 --- a/base/tools/psb_dsphalo.F90 +++ b/base/tools/psb_dsphalo.F90 @@ -1208,7 +1208,7 @@ contains n_el_recv = ipdxv(counter+psb_n_elem_recv_) counter = counter+n_el_recv n_el_send = ipdxv(counter+psb_n_elem_send_) - prcid(ip+1) = psb_get_rank(ictxt,ip) + prcid(ip+1) = psb_get_mpi_rank(ictxt,ip) sz = rvsz(ip+1) if (sz > 0) then idx = brvindx(ip+1) @@ -1235,7 +1235,7 @@ contains n_el_recv = ipdxv(counter+psb_n_elem_recv_) counter = counter+n_el_recv n_el_send = ipdxv(counter+psb_n_elem_send_) - if (prcid(ip+1)<0) prcid(ip+1) = psb_get_rank(ictxt,ip) + if (prcid(ip+1)<0) prcid(ip+1) = psb_get_mpi_rank(ictxt,ip) sz = sdsz(ip+1) if (sz > 0) then idx = bsdindx(ip+1) diff --git a/base/tools/psb_iallc.f90 b/base/tools/psb_iallc.f90 index 8f0ab312..65f5f1da 100644 --- a/base/tools/psb_iallc.f90 +++ b/base/tools/psb_iallc.f90 @@ -32,17 +32,15 @@ ! ! File: psb_iallc.f90 ! -! Function: psb_ialloc -! Allocates dense matrix for PSBLAS routines. +! Function: psb_ialloc_vect +! Allocates dense vector for PSBLAS routines. ! The descriptor may be in either the build or assembled state. ! ! Arguments: -! x - the matrix to be allocated. +! x - the vector to be allocated. ! desc_a - the communication descriptor. ! info - Return code -! n - optional number of columns. -! lb - optional lower bound on column indices -subroutine psb_ialloc_vect(x, desc_a,info,n) +subroutine psb_ialloc_vect(x, desc_a,info) use psb_base_mod, psb_protect_name => psb_ialloc_vect use psi_mod implicit none @@ -51,7 +49,6 @@ subroutine psb_ialloc_vect(x, desc_a,info,n) type(psb_i_vect_type), intent(out) :: x type(psb_desc_type), intent(in) :: desc_a integer(psb_ipk_),intent(out) :: info - integer(psb_ipk_), optional, intent(in) :: n !locals integer(psb_ipk_) :: np,me,nr,i,err_act @@ -113,6 +110,16 @@ subroutine psb_ialloc_vect(x, desc_a,info,n) return end subroutine psb_ialloc_vect +! Function: psb_ialloc_vect_r2 +! Allocates a vector of dense vectors for PSBLAS routines. +! The descriptor may be in either the build or assembled state. +! +! Arguments: +! x - the vector to be allocated. +! desc_a - the communication descriptor. +! info - Return code +! n - optional number of columns. +! lb - optional lower bound on column indices subroutine psb_ialloc_vect_r2(x, desc_a,info,n,lb) use psb_base_mod, psb_protect_name => psb_ialloc_vect_r2 diff --git a/base/tools/psb_iasb.f90 b/base/tools/psb_iasb.f90 index 11bf80d7..52fbe165 100644 --- a/base/tools/psb_iasb.f90 +++ b/base/tools/psb_iasb.f90 @@ -31,17 +31,26 @@ ! ! File: psb_iasb.f90 ! -! Subroutine: psb_iasb -! Assembles a dense matrix for PSBLAS routines +! Subroutine: psb_iasb_vect, _vect_r2 and _multivect +! Assembles a dense vector, an array of vectors or a multivector +! for PSBLAS routines. ! Since the allocation may have been called with the desciptor ! in the build state we make sure that X has a number of rows ! allowing for the halo indices, reallocating if necessary. ! We also call the halo routine for good measure. +! However, sometimes we need to create temporary vectors whose contents +! will be initialized through some subsequent call to geaxpby or similar; +! for this situation we provide the SCRATCH flag. +! ! ! Arguments: -! x(:,:) - integer, allocatable The matrix to be assembled. -! desc_a - type(psb_desc_type). The communication descriptor. +! x - type(psb_i_vect_type) The matrix to be assembled. +! desc_a - type(psb_desc_type). The communication descriptor. ! info - integer. return code +! mold - type(psb_i_base_vect_type), optional A mold for the inner storage format +! scratch - logical, optional If true, allocate without checking/zeroing contents. +! default: .false. +! subroutine psb_iasb_vect(x, desc_a, info, mold, scratch) use psb_base_mod, psb_protect_name => psb_iasb_vect implicit none diff --git a/base/tools/psb_icdasb.F90 b/base/tools/psb_icdasb.F90 index 7176d185..6b2ba199 100644 --- a/base/tools/psb_icdasb.F90 +++ b/base/tools/psb_icdasb.F90 @@ -65,6 +65,10 @@ subroutine psb_icdasb(desc,info,ext_hv,mold) integer(psb_ipk_) :: i, n_col, dectype, err_act, n_row integer(psb_mpk_) :: np,me, icomm, ictxt logical :: ext_hv_ + logical, parameter :: do_timings=.false. + integer(psb_ipk_), save :: idx_phase1=-1, idx_phase2=-1, idx_phase3=-1 + integer(psb_ipk_), save :: idx_phase11=-1, idx_phase12=-1, idx_phase13=-1 + integer(psb_ipk_), save :: idx_total=-1 integer(psb_ipk_) :: debug_level, debug_unit character(len=20) :: name @@ -81,7 +85,22 @@ subroutine psb_icdasb(desc,info,ext_hv,mold) n_row = desc%get_local_rows() n_col = desc%get_local_cols() icomm = desc%get_mpic() - + if ((do_timings).and.(idx_total==-1)) & + & idx_total = psb_get_timer_idx("ICDASB: total ") + if ((do_timings).and.(idx_phase1==-1)) & + & idx_phase1 = psb_get_timer_idx("ICDASB: phase1 ") + if ((do_timings).and.(idx_phase2==-1)) & + & idx_phase2 = psb_get_timer_idx("ICDASB: phase2") + if ((do_timings).and.(idx_phase3==-1)) & + & idx_phase3 = psb_get_timer_idx("ICDASB: phase3") +!!$ if ((do_timings).and.(idx_phase11==-1)) & +!!$ & idx_phase11 = psb_get_timer_idx("ICDASB: phase11 ") +!!$ if ((do_timings).and.(idx_phase12==-1)) & +!!$ & idx_phase12 = psb_get_timer_idx("ICDASB: phase12") +!!$ if ((do_timings).and.(idx_phase13==-1)) & +!!$ & idx_phase13 = psb_get_timer_idx("ICDASB: phase13") + + call psb_tic(idx_total) ! check on blacs grid call psb_info(ictxt, me, np) if (np == -1) then @@ -115,6 +134,7 @@ subroutine psb_icdasb(desc,info,ext_hv,mold) & write(debug_unit, *) me,' ',trim(name),': start' if (allocated(desc%indxmap)) then + if (do_timings) call psb_tic(idx_phase1) if (.not.ext_hv_) then call psi_bld_tmphalo(desc,info) if (info /= psb_success_) then @@ -122,7 +142,8 @@ subroutine psb_icdasb(desc,info,ext_hv,mold) goto 9999 end if end if - + if (do_timings) call psb_toc(idx_phase1) + if (do_timings) call psb_tic(idx_phase2) ! Take out the lists for ovrlap, halo and ext... call psb_move_alloc(desc%ovrlap_index,ovrlap_index,info) call psb_move_alloc(desc%halo_index,halo_index,info) @@ -144,6 +165,8 @@ subroutine psb_icdasb(desc,info,ext_hv,mold) call psb_errpush(info,name) goto 9999 end if + if (do_timings) call psb_toc(idx_phase2) + if (do_timings) call psb_tic(idx_phase3) call desc%indxmap%asb(info) if (info == psb_success_) then @@ -154,14 +177,14 @@ subroutine psb_icdasb(desc,info,ext_hv,mold) write(0,*) 'Error from internal indxmap asb ',info info = psb_success_ end if - + if (do_timings) call psb_toc(idx_phase3) else info = psb_err_invalid_cd_state_ call psb_errpush(info,name) goto 9999 endif - + call psb_toc(idx_total) if (debug_level >= psb_debug_ext_) & & write(debug_unit,*) me,' ',trim(name),': Done' diff --git a/base/tools/psb_iins.f90 b/base/tools/psb_iins.f90 index 8b8eea7e..48aa97fb 100644 --- a/base/tools/psb_iins.f90 +++ b/base/tools/psb_iins.f90 @@ -29,17 +29,17 @@ ! POSSIBILITY OF SUCH DAMAGE. ! ! -! Subroutine: psb_iinsvi -! Insert dense submatrix to dense matrix. Note: the row indices in IRW +! Subroutine: psb_iins_vect +! Insert entries into a dense vector. Note: the row indices in IRW ! are assumed to be in global numbering and are converted on the fly. ! Row indices not belonging to the current process are silently discarded. ! ! Arguments: ! m - integer. Number of rows of submatrix belonging to ! val to be inserted. -! irw(:) - integer Row indices of rows of val (global numbering) -! val(:) - integer The source dense submatrix. -! x(:) - integer The destination dense matrix. +! irw(:) - integer(psb_lpk_) Row indices of rows of val (global numbering) +! val(:) - integer The source vector +! x - type(psb_i_vect_type) The destination vector ! desc_a - type(psb_desc_type). The communication descriptor. ! info - integer. return code ! dupl - integer What to do with duplicates: @@ -50,10 +50,6 @@ subroutine psb_iins_vect(m, irw, val, x, desc_a, info, dupl,local) use psi_mod implicit none - ! m rows number of submatrix belonging to val to be inserted - ! ix x global-row corresponding to position at which val submatrix - ! must be inserted - !....parameters... integer(psb_ipk_), intent(in) :: m integer(psb_lpk_), intent(in) :: irw(:) @@ -155,6 +151,23 @@ subroutine psb_iins_vect(m, irw, val, x, desc_a, info, dupl,local) end subroutine psb_iins_vect +! Subroutine: psb_iins_vect_v +! Insert entries into a vector from another encapsulated vector. +! Note: the row indices in IRW +! are assumed to be in global numbering and are converted on the fly. +! Row indices not belonging to the current process are silently discarded. +! +! Arguments: +! m - integer. Number of rows of submatrix belonging to +! val to be inserted. +! irw - type(psb_l_vect_type) Row indices of rows of val (global numbering) +! val - type(psb_i_vect_type) The source vector +! x - type(psb_i_vect_type) The destination vector +! desc_a - type(psb_desc_type). The communication descriptor. +! info - integer. return code +! dupl - integer What to do with duplicates: +! psb_dupl_ovwrt_ overwrite +! psb_dupl_add_ add subroutine psb_iins_vect_v(m, irw, val, x, desc_a, info, dupl,local) use psb_base_mod, psb_protect_name => psb_iins_vect_v use psi_mod @@ -329,7 +342,6 @@ subroutine psb_iins_vect_r2(m, irw, val, x, desc_a, info, dupl,local) mglob = desc_a%get_global_rows() - n = min(size(x),size(val,2)) allocate(irl(m),stat=info) if (info /= psb_success_) then @@ -375,8 +387,6 @@ subroutine psb_iins_vect_r2(m, irw, val, x, desc_a, info, dupl,local) end subroutine psb_iins_vect_r2 - - subroutine psb_iins_multivect(m, irw, val, x, desc_a, info, dupl,local) use psb_base_mod, psb_protect_name => psb_iins_multivect use psi_mod diff --git a/base/tools/psb_lallc.f90 b/base/tools/psb_lallc.f90 index 66731177..e397f7cb 100644 --- a/base/tools/psb_lallc.f90 +++ b/base/tools/psb_lallc.f90 @@ -32,17 +32,15 @@ ! ! File: psb_lallc.f90 ! -! Function: psb_lalloc -! Allocates dense matrix for PSBLAS routines. +! Function: psb_lalloc_vect +! Allocates dense vector for PSBLAS routines. ! The descriptor may be in either the build or assembled state. ! ! Arguments: -! x - the matrix to be allocated. +! x - the vector to be allocated. ! desc_a - the communication descriptor. ! info - Return code -! n - optional number of columns. -! lb - optional lower bound on column indices -subroutine psb_lalloc_vect(x, desc_a,info,n) +subroutine psb_lalloc_vect(x, desc_a,info) use psb_base_mod, psb_protect_name => psb_lalloc_vect use psi_mod implicit none @@ -51,7 +49,6 @@ subroutine psb_lalloc_vect(x, desc_a,info,n) type(psb_l_vect_type), intent(out) :: x type(psb_desc_type), intent(in) :: desc_a integer(psb_ipk_),intent(out) :: info - integer(psb_ipk_), optional, intent(in) :: n !locals integer(psb_ipk_) :: np,me,nr,i,err_act @@ -113,6 +110,16 @@ subroutine psb_lalloc_vect(x, desc_a,info,n) return end subroutine psb_lalloc_vect +! Function: psb_lalloc_vect_r2 +! Allocates a vector of dense vectors for PSBLAS routines. +! The descriptor may be in either the build or assembled state. +! +! Arguments: +! x - the vector to be allocated. +! desc_a - the communication descriptor. +! info - Return code +! n - optional number of columns. +! lb - optional lower bound on column indices subroutine psb_lalloc_vect_r2(x, desc_a,info,n,lb) use psb_base_mod, psb_protect_name => psb_lalloc_vect_r2 diff --git a/base/tools/psb_lasb.f90 b/base/tools/psb_lasb.f90 index 8d3c7a97..c1835b05 100644 --- a/base/tools/psb_lasb.f90 +++ b/base/tools/psb_lasb.f90 @@ -31,17 +31,26 @@ ! ! File: psb_lasb.f90 ! -! Subroutine: psb_lasb -! Assembles a dense matrix for PSBLAS routines +! Subroutine: psb_lasb_vect, _vect_r2 and _multivect +! Assembles a dense vector, an array of vectors or a multivector +! for PSBLAS routines. ! Since the allocation may have been called with the desciptor ! in the build state we make sure that X has a number of rows ! allowing for the halo indices, reallocating if necessary. ! We also call the halo routine for good measure. +! However, sometimes we need to create temporary vectors whose contents +! will be initialized through some subsequent call to geaxpby or similar; +! for this situation we provide the SCRATCH flag. +! ! ! Arguments: -! x(:,:) - integer, allocatable The matrix to be assembled. -! desc_a - type(psb_desc_type). The communication descriptor. +! x - type(psb_l_vect_type) The matrix to be assembled. +! desc_a - type(psb_desc_type). The communication descriptor. ! info - integer. return code +! mold - type(psb_l_base_vect_type), optional A mold for the inner storage format +! scratch - logical, optional If true, allocate without checking/zeroing contents. +! default: .false. +! subroutine psb_lasb_vect(x, desc_a, info, mold, scratch) use psb_base_mod, psb_protect_name => psb_lasb_vect implicit none diff --git a/base/tools/psb_lins.f90 b/base/tools/psb_lins.f90 index b0d02018..d7c044d1 100644 --- a/base/tools/psb_lins.f90 +++ b/base/tools/psb_lins.f90 @@ -29,17 +29,17 @@ ! POSSIBILITY OF SUCH DAMAGE. ! ! -! Subroutine: psb_linsvi -! Insert dense submatrix to dense matrix. Note: the row indices in IRW +! Subroutine: psb_lins_vect +! Insert entries into a dense vector. Note: the row indices in IRW ! are assumed to be in global numbering and are converted on the fly. ! Row indices not belonging to the current process are silently discarded. ! ! Arguments: ! m - integer. Number of rows of submatrix belonging to ! val to be inserted. -! irw(:) - integer Row indices of rows of val (global numbering) -! val(:) - integer The source dense submatrix. -! x(:) - integer The destination dense matrix. +! irw(:) - integer(psb_lpk_) Row indices of rows of val (global numbering) +! val(:) - integer The source vector +! x - type(psb_l_vect_type) The destination vector ! desc_a - type(psb_desc_type). The communication descriptor. ! info - integer. return code ! dupl - integer What to do with duplicates: @@ -50,10 +50,6 @@ subroutine psb_lins_vect(m, irw, val, x, desc_a, info, dupl,local) use psi_mod implicit none - ! m rows number of submatrix belonging to val to be inserted - ! ix x global-row corresponding to position at which val submatrix - ! must be inserted - !....parameters... integer(psb_ipk_), intent(in) :: m integer(psb_lpk_), intent(in) :: irw(:) @@ -155,6 +151,23 @@ subroutine psb_lins_vect(m, irw, val, x, desc_a, info, dupl,local) end subroutine psb_lins_vect +! Subroutine: psb_lins_vect_v +! Insert entries into a vector from another encapsulated vector. +! Note: the row indices in IRW +! are assumed to be in global numbering and are converted on the fly. +! Row indices not belonging to the current process are silently discarded. +! +! Arguments: +! m - integer. Number of rows of submatrix belonging to +! val to be inserted. +! irw - type(psb_l_vect_type) Row indices of rows of val (global numbering) +! val - type(psb_l_vect_type) The source vector +! x - type(psb_l_vect_type) The destination vector +! desc_a - type(psb_desc_type). The communication descriptor. +! info - integer. return code +! dupl - integer What to do with duplicates: +! psb_dupl_ovwrt_ overwrite +! psb_dupl_add_ add subroutine psb_lins_vect_v(m, irw, val, x, desc_a, info, dupl,local) use psb_base_mod, psb_protect_name => psb_lins_vect_v use psi_mod @@ -329,7 +342,6 @@ subroutine psb_lins_vect_r2(m, irw, val, x, desc_a, info, dupl,local) mglob = desc_a%get_global_rows() - n = min(size(x),size(val,2)) allocate(irl(m),stat=info) if (info /= psb_success_) then @@ -375,8 +387,6 @@ subroutine psb_lins_vect_r2(m, irw, val, x, desc_a, info, dupl,local) end subroutine psb_lins_vect_r2 - - subroutine psb_lins_multivect(m, irw, val, x, desc_a, info, dupl,local) use psb_base_mod, psb_protect_name => psb_lins_multivect use psi_mod diff --git a/base/tools/psb_sallc.f90 b/base/tools/psb_sallc.f90 index 9cbb6f8f..6e20f82e 100644 --- a/base/tools/psb_sallc.f90 +++ b/base/tools/psb_sallc.f90 @@ -32,17 +32,15 @@ ! ! File: psb_sallc.f90 ! -! Function: psb_salloc -! Allocates dense matrix for PSBLAS routines. +! Function: psb_salloc_vect +! Allocates dense vector for PSBLAS routines. ! The descriptor may be in either the build or assembled state. ! ! Arguments: -! x - the matrix to be allocated. +! x - the vector to be allocated. ! desc_a - the communication descriptor. ! info - Return code -! n - optional number of columns. -! lb - optional lower bound on column indices -subroutine psb_salloc_vect(x, desc_a,info,n) +subroutine psb_salloc_vect(x, desc_a,info) use psb_base_mod, psb_protect_name => psb_salloc_vect use psi_mod implicit none @@ -51,7 +49,6 @@ subroutine psb_salloc_vect(x, desc_a,info,n) type(psb_s_vect_type), intent(out) :: x type(psb_desc_type), intent(in) :: desc_a integer(psb_ipk_),intent(out) :: info - integer(psb_ipk_), optional, intent(in) :: n !locals integer(psb_ipk_) :: np,me,nr,i,err_act @@ -113,6 +110,16 @@ subroutine psb_salloc_vect(x, desc_a,info,n) return end subroutine psb_salloc_vect +! Function: psb_salloc_vect_r2 +! Allocates a vector of dense vectors for PSBLAS routines. +! The descriptor may be in either the build or assembled state. +! +! Arguments: +! x - the vector to be allocated. +! desc_a - the communication descriptor. +! info - Return code +! n - optional number of columns. +! lb - optional lower bound on column indices subroutine psb_salloc_vect_r2(x, desc_a,info,n,lb) use psb_base_mod, psb_protect_name => psb_salloc_vect_r2 diff --git a/base/tools/psb_sasb.f90 b/base/tools/psb_sasb.f90 index b0aa03a5..67d4ac92 100644 --- a/base/tools/psb_sasb.f90 +++ b/base/tools/psb_sasb.f90 @@ -31,17 +31,26 @@ ! ! File: psb_sasb.f90 ! -! Subroutine: psb_sasb -! Assembles a dense matrix for PSBLAS routines +! Subroutine: psb_sasb_vect, _vect_r2 and _multivect +! Assembles a dense vector, an array of vectors or a multivector +! for PSBLAS routines. ! Since the allocation may have been called with the desciptor ! in the build state we make sure that X has a number of rows ! allowing for the halo indices, reallocating if necessary. ! We also call the halo routine for good measure. +! However, sometimes we need to create temporary vectors whose contents +! will be initialized through some subsequent call to geaxpby or similar; +! for this situation we provide the SCRATCH flag. +! ! ! Arguments: -! x(:,:) - real, allocatable The matrix to be assembled. -! desc_a - type(psb_desc_type). The communication descriptor. +! x - type(psb_s_vect_type) The matrix to be assembled. +! desc_a - type(psb_desc_type). The communication descriptor. ! info - integer. return code +! mold - type(psb_s_base_vect_type), optional A mold for the inner storage format +! scratch - logical, optional If true, allocate without checking/zeroing contents. +! default: .false. +! subroutine psb_sasb_vect(x, desc_a, info, mold, scratch) use psb_base_mod, psb_protect_name => psb_sasb_vect implicit none diff --git a/base/tools/psb_sins.f90 b/base/tools/psb_sins.f90 index 95803319..85b68322 100644 --- a/base/tools/psb_sins.f90 +++ b/base/tools/psb_sins.f90 @@ -29,17 +29,17 @@ ! POSSIBILITY OF SUCH DAMAGE. ! ! -! Subroutine: psb_sinsvi -! Insert dense submatrix to dense matrix. Note: the row indices in IRW +! Subroutine: psb_sins_vect +! Insert entries into a dense vector. Note: the row indices in IRW ! are assumed to be in global numbering and are converted on the fly. ! Row indices not belonging to the current process are silently discarded. ! ! Arguments: ! m - integer. Number of rows of submatrix belonging to ! val to be inserted. -! irw(:) - integer Row indices of rows of val (global numbering) -! val(:) - real The source dense submatrix. -! x(:) - real The destination dense matrix. +! irw(:) - integer(psb_lpk_) Row indices of rows of val (global numbering) +! val(:) - real The source vector +! x - type(psb_s_vect_type) The destination vector ! desc_a - type(psb_desc_type). The communication descriptor. ! info - integer. return code ! dupl - integer What to do with duplicates: @@ -50,10 +50,6 @@ subroutine psb_sins_vect(m, irw, val, x, desc_a, info, dupl,local) use psi_mod implicit none - ! m rows number of submatrix belonging to val to be inserted - ! ix x global-row corresponding to position at which val submatrix - ! must be inserted - !....parameters... integer(psb_ipk_), intent(in) :: m integer(psb_lpk_), intent(in) :: irw(:) @@ -155,6 +151,23 @@ subroutine psb_sins_vect(m, irw, val, x, desc_a, info, dupl,local) end subroutine psb_sins_vect +! Subroutine: psb_sins_vect_v +! Insert entries into a vector from another encapsulated vector. +! Note: the row indices in IRW +! are assumed to be in global numbering and are converted on the fly. +! Row indices not belonging to the current process are silently discarded. +! +! Arguments: +! m - integer. Number of rows of submatrix belonging to +! val to be inserted. +! irw - type(psb_l_vect_type) Row indices of rows of val (global numbering) +! val - type(psb_s_vect_type) The source vector +! x - type(psb_s_vect_type) The destination vector +! desc_a - type(psb_desc_type). The communication descriptor. +! info - integer. return code +! dupl - integer What to do with duplicates: +! psb_dupl_ovwrt_ overwrite +! psb_dupl_add_ add subroutine psb_sins_vect_v(m, irw, val, x, desc_a, info, dupl,local) use psb_base_mod, psb_protect_name => psb_sins_vect_v use psi_mod @@ -329,7 +342,6 @@ subroutine psb_sins_vect_r2(m, irw, val, x, desc_a, info, dupl,local) mglob = desc_a%get_global_rows() - n = min(size(x),size(val,2)) allocate(irl(m),stat=info) if (info /= psb_success_) then @@ -375,8 +387,6 @@ subroutine psb_sins_vect_r2(m, irw, val, x, desc_a, info, dupl,local) end subroutine psb_sins_vect_r2 - - subroutine psb_sins_multivect(m, irw, val, x, desc_a, info, dupl,local) use psb_base_mod, psb_protect_name => psb_sins_multivect use psi_mod diff --git a/base/tools/psb_ssphalo.F90 b/base/tools/psb_ssphalo.F90 index 51e3a973..1cd942f1 100644 --- a/base/tools/psb_ssphalo.F90 +++ b/base/tools/psb_ssphalo.F90 @@ -1208,7 +1208,7 @@ contains n_el_recv = ipdxv(counter+psb_n_elem_recv_) counter = counter+n_el_recv n_el_send = ipdxv(counter+psb_n_elem_send_) - prcid(ip+1) = psb_get_rank(ictxt,ip) + prcid(ip+1) = psb_get_mpi_rank(ictxt,ip) sz = rvsz(ip+1) if (sz > 0) then idx = brvindx(ip+1) @@ -1235,7 +1235,7 @@ contains n_el_recv = ipdxv(counter+psb_n_elem_recv_) counter = counter+n_el_recv n_el_send = ipdxv(counter+psb_n_elem_send_) - if (prcid(ip+1)<0) prcid(ip+1) = psb_get_rank(ictxt,ip) + if (prcid(ip+1)<0) prcid(ip+1) = psb_get_mpi_rank(ictxt,ip) sz = sdsz(ip+1) if (sz > 0) then idx = bsdindx(ip+1) diff --git a/base/tools/psb_zallc.f90 b/base/tools/psb_zallc.f90 index e01f0af2..1bf67e74 100644 --- a/base/tools/psb_zallc.f90 +++ b/base/tools/psb_zallc.f90 @@ -32,17 +32,15 @@ ! ! File: psb_zallc.f90 ! -! Function: psb_zalloc -! Allocates dense matrix for PSBLAS routines. +! Function: psb_zalloc_vect +! Allocates dense vector for PSBLAS routines. ! The descriptor may be in either the build or assembled state. ! ! Arguments: -! x - the matrix to be allocated. +! x - the vector to be allocated. ! desc_a - the communication descriptor. ! info - Return code -! n - optional number of columns. -! lb - optional lower bound on column indices -subroutine psb_zalloc_vect(x, desc_a,info,n) +subroutine psb_zalloc_vect(x, desc_a,info) use psb_base_mod, psb_protect_name => psb_zalloc_vect use psi_mod implicit none @@ -51,7 +49,6 @@ subroutine psb_zalloc_vect(x, desc_a,info,n) type(psb_z_vect_type), intent(out) :: x type(psb_desc_type), intent(in) :: desc_a integer(psb_ipk_),intent(out) :: info - integer(psb_ipk_), optional, intent(in) :: n !locals integer(psb_ipk_) :: np,me,nr,i,err_act @@ -113,6 +110,16 @@ subroutine psb_zalloc_vect(x, desc_a,info,n) return end subroutine psb_zalloc_vect +! Function: psb_zalloc_vect_r2 +! Allocates a vector of dense vectors for PSBLAS routines. +! The descriptor may be in either the build or assembled state. +! +! Arguments: +! x - the vector to be allocated. +! desc_a - the communication descriptor. +! info - Return code +! n - optional number of columns. +! lb - optional lower bound on column indices subroutine psb_zalloc_vect_r2(x, desc_a,info,n,lb) use psb_base_mod, psb_protect_name => psb_zalloc_vect_r2 diff --git a/base/tools/psb_zasb.f90 b/base/tools/psb_zasb.f90 index 5d6127c9..6ebf4281 100644 --- a/base/tools/psb_zasb.f90 +++ b/base/tools/psb_zasb.f90 @@ -31,17 +31,26 @@ ! ! File: psb_zasb.f90 ! -! Subroutine: psb_zasb -! Assembles a dense matrix for PSBLAS routines +! Subroutine: psb_zasb_vect, _vect_r2 and _multivect +! Assembles a dense vector, an array of vectors or a multivector +! for PSBLAS routines. ! Since the allocation may have been called with the desciptor ! in the build state we make sure that X has a number of rows ! allowing for the halo indices, reallocating if necessary. ! We also call the halo routine for good measure. +! However, sometimes we need to create temporary vectors whose contents +! will be initialized through some subsequent call to geaxpby or similar; +! for this situation we provide the SCRATCH flag. +! ! ! Arguments: -! x(:,:) - complex, allocatable The matrix to be assembled. -! desc_a - type(psb_desc_type). The communication descriptor. +! x - type(psb_z_vect_type) The matrix to be assembled. +! desc_a - type(psb_desc_type). The communication descriptor. ! info - integer. return code +! mold - type(psb_z_base_vect_type), optional A mold for the inner storage format +! scratch - logical, optional If true, allocate without checking/zeroing contents. +! default: .false. +! subroutine psb_zasb_vect(x, desc_a, info, mold, scratch) use psb_base_mod, psb_protect_name => psb_zasb_vect implicit none diff --git a/base/tools/psb_zins.f90 b/base/tools/psb_zins.f90 index e87f3a11..8307434b 100644 --- a/base/tools/psb_zins.f90 +++ b/base/tools/psb_zins.f90 @@ -29,17 +29,17 @@ ! POSSIBILITY OF SUCH DAMAGE. ! ! -! Subroutine: psb_zinsvi -! Insert dense submatrix to dense matrix. Note: the row indices in IRW +! Subroutine: psb_zins_vect +! Insert entries into a dense vector. Note: the row indices in IRW ! are assumed to be in global numbering and are converted on the fly. ! Row indices not belonging to the current process are silently discarded. ! ! Arguments: ! m - integer. Number of rows of submatrix belonging to ! val to be inserted. -! irw(:) - integer Row indices of rows of val (global numbering) -! val(:) - complex The source dense submatrix. -! x(:) - complex The destination dense matrix. +! irw(:) - integer(psb_lpk_) Row indices of rows of val (global numbering) +! val(:) - complex The source vector +! x - type(psb_z_vect_type) The destination vector ! desc_a - type(psb_desc_type). The communication descriptor. ! info - integer. return code ! dupl - integer What to do with duplicates: @@ -50,10 +50,6 @@ subroutine psb_zins_vect(m, irw, val, x, desc_a, info, dupl,local) use psi_mod implicit none - ! m rows number of submatrix belonging to val to be inserted - ! ix x global-row corresponding to position at which val submatrix - ! must be inserted - !....parameters... integer(psb_ipk_), intent(in) :: m integer(psb_lpk_), intent(in) :: irw(:) @@ -155,6 +151,23 @@ subroutine psb_zins_vect(m, irw, val, x, desc_a, info, dupl,local) end subroutine psb_zins_vect +! Subroutine: psb_zins_vect_v +! Insert entries into a vector from another encapsulated vector. +! Note: the row indices in IRW +! are assumed to be in global numbering and are converted on the fly. +! Row indices not belonging to the current process are silently discarded. +! +! Arguments: +! m - integer. Number of rows of submatrix belonging to +! val to be inserted. +! irw - type(psb_l_vect_type) Row indices of rows of val (global numbering) +! val - type(psb_z_vect_type) The source vector +! x - type(psb_z_vect_type) The destination vector +! desc_a - type(psb_desc_type). The communication descriptor. +! info - integer. return code +! dupl - integer What to do with duplicates: +! psb_dupl_ovwrt_ overwrite +! psb_dupl_add_ add subroutine psb_zins_vect_v(m, irw, val, x, desc_a, info, dupl,local) use psb_base_mod, psb_protect_name => psb_zins_vect_v use psi_mod @@ -329,7 +342,6 @@ subroutine psb_zins_vect_r2(m, irw, val, x, desc_a, info, dupl,local) mglob = desc_a%get_global_rows() - n = min(size(x),size(val,2)) allocate(irl(m),stat=info) if (info /= psb_success_) then @@ -375,8 +387,6 @@ subroutine psb_zins_vect_r2(m, irw, val, x, desc_a, info, dupl,local) end subroutine psb_zins_vect_r2 - - subroutine psb_zins_multivect(m, irw, val, x, desc_a, info, dupl,local) use psb_base_mod, psb_protect_name => psb_zins_multivect use psi_mod diff --git a/base/tools/psb_zsphalo.F90 b/base/tools/psb_zsphalo.F90 index 16ee45b4..6dc1d82b 100644 --- a/base/tools/psb_zsphalo.F90 +++ b/base/tools/psb_zsphalo.F90 @@ -1208,7 +1208,7 @@ contains n_el_recv = ipdxv(counter+psb_n_elem_recv_) counter = counter+n_el_recv n_el_send = ipdxv(counter+psb_n_elem_send_) - prcid(ip+1) = psb_get_rank(ictxt,ip) + prcid(ip+1) = psb_get_mpi_rank(ictxt,ip) sz = rvsz(ip+1) if (sz > 0) then idx = brvindx(ip+1) @@ -1235,7 +1235,7 @@ contains n_el_recv = ipdxv(counter+psb_n_elem_recv_) counter = counter+n_el_recv n_el_send = ipdxv(counter+psb_n_elem_send_) - if (prcid(ip+1)<0) prcid(ip+1) = psb_get_rank(ictxt,ip) + if (prcid(ip+1)<0) prcid(ip+1) = psb_get_mpi_rank(ictxt,ip) sz = sdsz(ip+1) if (sz > 0) then idx = bsdindx(ip+1) diff --git a/docs/html/cmsy10-42.png b/docs/html/cmsy10-42.png new file mode 100644 index 00000000..3e3ff34f Binary files /dev/null and b/docs/html/cmsy10-42.png differ diff --git a/docs/html/cmsy10-48.png b/docs/html/cmsy10-48.png new file mode 100644 index 00000000..b5d0fbf1 Binary files /dev/null and b/docs/html/cmsy10-48.png differ diff --git a/docs/html/cmsy10-49.png b/docs/html/cmsy10-49.png new file mode 100644 index 00000000..b44b91b4 Binary files /dev/null and b/docs/html/cmsy10-49.png differ diff --git a/docs/html/contents.png b/docs/html/contents.png deleted file mode 100644 index 0c752c66..00000000 Binary files a/docs/html/contents.png and /dev/null differ diff --git a/docs/html/footnode.html b/docs/html/footnode.html deleted file mode 100644 index 9b6f0db5..00000000 --- a/docs/html/footnode.html +++ /dev/null @@ -1,218 +0,0 @@ - - - - - -Footnotes - - - - - - - - - - - - - - - - -
-
... -explicitly1
-
In our prototype implementation we provide -sample scatter/gather routines. - -
.
-.
-.
-.
-.
-.
-.
-.
-.
-.
-.
-.
-.
-.
-.
-.
-.
-.
-.
-.
-.
-.
-.
-.
-.
-.
-.
-.
-.
-.
-
-
-
... domain2
-
This is - the normal situation when the pattern of the sparse matrix is - symmetric, which is equivalent to say that the interaction between - two variables is reciprocal. If the matrix pattern is non-symmetric - we may have one-way interactions, and these could cause a situation - in which a boundary point is not a halo point for its neighbour. - -
.
-.
-.
-.
-.
-.
-.
-.
-.
-.
-.
-.
-.
-.
-.
-.
-.
-.
-.
-.
-.
-.
-.
-.
-.
-.
-.
-.
-.
-.
-
-
-
... prec%build3
-
The subroutine style psb_precinit and psb_precbl are still supported for - backward compatibility - -
.
-.
-.
-.
-.
-.
-.
-.
-.
-.
-.
-.
-.
-.
-.
-.
-.
-.
-.
-.
-.
-.
-.
-.
-.
-.
-.
-.
-.
-.
-
-
-
... follows4
-
The string is case-insensitive - -
.
-.
-.
-.
-.
-.
-.
-.
-.
-.
-.
-.
-.
-.
-.
-.
-.
-.
-.
-.
-.
-.
-.
-.
-.
-.
-.
-.
-.
-.
-
-
-
... method5
-
Note: - the implementation is for $FCG(1)$. - -
.
-.
-.
-.
-.
-.
-.
-.
-.
-.
-.
-.
-.
-.
-.
-.
-.
-.
-.
-.
-.
-.
-.
-.
-.
-.
-.
-.
-.
-.
-
-
-
- - diff --git a/docs/html/img1.png b/docs/html/img1.png deleted file mode 100644 index 2ac27f96..00000000 Binary files a/docs/html/img1.png and /dev/null differ diff --git a/docs/html/img10.png b/docs/html/img10.png deleted file mode 100644 index 41dbbad6..00000000 Binary files a/docs/html/img10.png and /dev/null differ diff --git a/docs/html/img100.png b/docs/html/img100.png deleted file mode 100644 index 89a17445..00000000 Binary files a/docs/html/img100.png and /dev/null differ diff --git a/docs/html/img101.png b/docs/html/img101.png deleted file mode 100644 index f539ffeb..00000000 Binary files a/docs/html/img101.png and /dev/null differ diff --git a/docs/html/img102.png b/docs/html/img102.png deleted file mode 100644 index bbb0a1c0..00000000 Binary files a/docs/html/img102.png and /dev/null differ diff --git a/docs/html/img103.png b/docs/html/img103.png deleted file mode 100644 index b6226f3c..00000000 Binary files a/docs/html/img103.png and /dev/null differ diff --git a/docs/html/img104.png b/docs/html/img104.png deleted file mode 100644 index 2f140eb1..00000000 Binary files a/docs/html/img104.png and /dev/null differ diff --git a/docs/html/img105.png b/docs/html/img105.png deleted file mode 100644 index 66bf5520..00000000 Binary files a/docs/html/img105.png and /dev/null differ diff --git a/docs/html/img106.png b/docs/html/img106.png deleted file mode 100644 index bd84d15a..00000000 Binary files a/docs/html/img106.png and /dev/null differ diff --git a/docs/html/img107.png b/docs/html/img107.png deleted file mode 100644 index 6c716f7e..00000000 Binary files a/docs/html/img107.png and /dev/null differ diff --git a/docs/html/img109.png b/docs/html/img109.png deleted file mode 100644 index 660cca8c..00000000 Binary files a/docs/html/img109.png and /dev/null differ diff --git a/docs/html/img11.png b/docs/html/img11.png deleted file mode 100644 index 31bd2fc6..00000000 Binary files a/docs/html/img11.png and /dev/null differ diff --git a/docs/html/img110.png b/docs/html/img110.png deleted file mode 100644 index 1aaed1e9..00000000 Binary files a/docs/html/img110.png and /dev/null differ diff --git a/docs/html/img111.png b/docs/html/img111.png deleted file mode 100644 index 583cb484..00000000 Binary files a/docs/html/img111.png and /dev/null differ diff --git a/docs/html/img116.png b/docs/html/img116.png deleted file mode 100644 index ea78705b..00000000 Binary files a/docs/html/img116.png and /dev/null differ diff --git a/docs/html/img117.png b/docs/html/img117.png deleted file mode 100644 index 74f211e1..00000000 Binary files a/docs/html/img117.png and /dev/null differ diff --git a/docs/html/img118.png b/docs/html/img118.png deleted file mode 100644 index 5e9904d5..00000000 Binary files a/docs/html/img118.png and /dev/null differ diff --git a/docs/html/img119.png b/docs/html/img119.png deleted file mode 100644 index fdfd3db7..00000000 Binary files a/docs/html/img119.png and /dev/null differ diff --git a/docs/html/img12.png b/docs/html/img12.png deleted file mode 100644 index ca3ebaf2..00000000 Binary files a/docs/html/img12.png and /dev/null differ diff --git a/docs/html/img120.png b/docs/html/img120.png deleted file mode 100644 index 76e4d307..00000000 Binary files a/docs/html/img120.png and /dev/null differ diff --git a/docs/html/img121.png b/docs/html/img121.png deleted file mode 100644 index 4c559110..00000000 Binary files a/docs/html/img121.png and /dev/null differ diff --git a/docs/html/img122.png b/docs/html/img122.png deleted file mode 100644 index 8e8e8c7b..00000000 Binary files a/docs/html/img122.png and /dev/null differ diff --git a/docs/html/img123.png b/docs/html/img123.png deleted file mode 100644 index 56826b8b..00000000 Binary files a/docs/html/img123.png and /dev/null differ diff --git a/docs/html/img124.png b/docs/html/img124.png deleted file mode 100644 index e205726f..00000000 Binary files a/docs/html/img124.png and /dev/null differ diff --git a/docs/html/img125.png b/docs/html/img125.png deleted file mode 100644 index 0df61bc1..00000000 Binary files a/docs/html/img125.png and /dev/null differ diff --git a/docs/html/img126.png b/docs/html/img126.png deleted file mode 100644 index dabbe84d..00000000 Binary files a/docs/html/img126.png and /dev/null differ diff --git a/docs/html/img127.png b/docs/html/img127.png deleted file mode 100644 index 8164fce6..00000000 Binary files a/docs/html/img127.png and /dev/null differ diff --git a/docs/html/img128.png b/docs/html/img128.png deleted file mode 100644 index 8ae7e6e5..00000000 Binary files a/docs/html/img128.png and /dev/null differ diff --git a/docs/html/img129.png b/docs/html/img129.png deleted file mode 100644 index 03e5d035..00000000 Binary files a/docs/html/img129.png and /dev/null differ diff --git a/docs/html/img13.png b/docs/html/img13.png deleted file mode 100644 index e5506884..00000000 Binary files a/docs/html/img13.png and /dev/null differ diff --git a/docs/html/img130.png b/docs/html/img130.png deleted file mode 100644 index 84c60af3..00000000 Binary files a/docs/html/img130.png and /dev/null differ diff --git a/docs/html/img131.png b/docs/html/img131.png deleted file mode 100644 index 8aa2fd47..00000000 Binary files a/docs/html/img131.png and /dev/null differ diff --git a/docs/html/img132.png b/docs/html/img132.png deleted file mode 100644 index 8c725ced..00000000 Binary files a/docs/html/img132.png and /dev/null differ diff --git a/docs/html/img133.png b/docs/html/img133.png deleted file mode 100644 index 31abeeb7..00000000 Binary files a/docs/html/img133.png and /dev/null differ diff --git a/docs/html/img134.png b/docs/html/img134.png deleted file mode 100644 index 8fbf5a93..00000000 Binary files a/docs/html/img134.png and /dev/null differ diff --git a/docs/html/img135.png b/docs/html/img135.png deleted file mode 100644 index ae2386e3..00000000 Binary files a/docs/html/img135.png and /dev/null differ diff --git a/docs/html/img136.png b/docs/html/img136.png deleted file mode 100644 index af2771c5..00000000 Binary files a/docs/html/img136.png and /dev/null differ diff --git a/docs/html/img137.png b/docs/html/img137.png deleted file mode 100644 index c6cc0692..00000000 Binary files a/docs/html/img137.png and /dev/null differ diff --git a/docs/html/img138.png b/docs/html/img138.png deleted file mode 100644 index 28bf892d..00000000 Binary files a/docs/html/img138.png and /dev/null differ diff --git a/docs/html/img139.png b/docs/html/img139.png deleted file mode 100644 index 69fa8cc7..00000000 Binary files a/docs/html/img139.png and /dev/null differ diff --git a/docs/html/img14.png b/docs/html/img14.png deleted file mode 100644 index c2806ce0..00000000 Binary files a/docs/html/img14.png and /dev/null differ diff --git a/docs/html/img140.png b/docs/html/img140.png deleted file mode 100644 index 0d2507d5..00000000 Binary files a/docs/html/img140.png and /dev/null differ diff --git a/docs/html/img141.png b/docs/html/img141.png deleted file mode 100644 index f659c90c..00000000 Binary files a/docs/html/img141.png and /dev/null differ diff --git a/docs/html/img142.png b/docs/html/img142.png deleted file mode 100644 index eb9a94fb..00000000 Binary files a/docs/html/img142.png and /dev/null differ diff --git a/docs/html/img143.png b/docs/html/img143.png deleted file mode 100644 index 3df4bd77..00000000 Binary files a/docs/html/img143.png and /dev/null differ diff --git a/docs/html/img144.png b/docs/html/img144.png deleted file mode 100644 index 6eaa0e93..00000000 Binary files a/docs/html/img144.png and /dev/null differ diff --git a/docs/html/img145.png b/docs/html/img145.png deleted file mode 100644 index d3d1573f..00000000 Binary files a/docs/html/img145.png and /dev/null differ diff --git a/docs/html/img146.png b/docs/html/img146.png deleted file mode 100644 index 7ecedb71..00000000 Binary files a/docs/html/img146.png and /dev/null differ diff --git a/docs/html/img147.png b/docs/html/img147.png deleted file mode 100644 index abb3da9f..00000000 Binary files a/docs/html/img147.png and /dev/null differ diff --git a/docs/html/img148.png b/docs/html/img148.png deleted file mode 100644 index 151cb99d..00000000 Binary files a/docs/html/img148.png and /dev/null differ diff --git a/docs/html/img149.png b/docs/html/img149.png deleted file mode 100644 index 18cdc957..00000000 Binary files a/docs/html/img149.png and /dev/null differ diff --git a/docs/html/img15.png b/docs/html/img15.png deleted file mode 100644 index d9af05b2..00000000 Binary files a/docs/html/img15.png and /dev/null differ diff --git a/docs/html/img150.png b/docs/html/img150.png deleted file mode 100644 index a83c2523..00000000 Binary files a/docs/html/img150.png and /dev/null differ diff --git a/docs/html/img151.png b/docs/html/img151.png deleted file mode 100644 index 1c151bf2..00000000 Binary files a/docs/html/img151.png and /dev/null differ diff --git a/docs/html/img152.png b/docs/html/img152.png deleted file mode 100644 index e69de29b..00000000 diff --git a/docs/html/img153.png b/docs/html/img153.png deleted file mode 100644 index 2c8c4c59..00000000 Binary files a/docs/html/img153.png and /dev/null differ diff --git a/docs/html/img154.png b/docs/html/img154.png deleted file mode 100644 index e69de29b..00000000 diff --git a/docs/html/img155.png b/docs/html/img155.png deleted file mode 100644 index 1b52ccb2..00000000 Binary files a/docs/html/img155.png and /dev/null differ diff --git a/docs/html/img156.png b/docs/html/img156.png deleted file mode 100644 index 4ebd6836..00000000 Binary files a/docs/html/img156.png and /dev/null differ diff --git a/docs/html/img157.png b/docs/html/img157.png deleted file mode 100644 index f241006d..00000000 Binary files a/docs/html/img157.png and /dev/null differ diff --git a/docs/html/img158.png b/docs/html/img158.png deleted file mode 100644 index 55f17c1a..00000000 Binary files a/docs/html/img158.png and /dev/null differ diff --git a/docs/html/img159.png b/docs/html/img159.png deleted file mode 100644 index 4aecd5d2..00000000 Binary files a/docs/html/img159.png and /dev/null differ diff --git a/docs/html/img16.png b/docs/html/img16.png deleted file mode 100644 index 91546233..00000000 Binary files a/docs/html/img16.png and /dev/null differ diff --git a/docs/html/img160.png b/docs/html/img160.png deleted file mode 100644 index bf808fd4..00000000 Binary files a/docs/html/img160.png and /dev/null differ diff --git a/docs/html/img161.png b/docs/html/img161.png deleted file mode 100644 index 3b42a110..00000000 Binary files a/docs/html/img161.png and /dev/null differ diff --git a/docs/html/img162.png b/docs/html/img162.png deleted file mode 100644 index 28c31822..00000000 Binary files a/docs/html/img162.png and /dev/null differ diff --git a/docs/html/img163.png b/docs/html/img163.png deleted file mode 100644 index 24fb58dc..00000000 Binary files a/docs/html/img163.png and /dev/null differ diff --git a/docs/html/img164.png b/docs/html/img164.png deleted file mode 100644 index 73fe83b6..00000000 Binary files a/docs/html/img164.png and /dev/null differ diff --git a/docs/html/img165.png b/docs/html/img165.png deleted file mode 100644 index 4258bbd4..00000000 Binary files a/docs/html/img165.png and /dev/null differ diff --git a/docs/html/img166.png b/docs/html/img166.png deleted file mode 100644 index e3a508d5..00000000 Binary files a/docs/html/img166.png and /dev/null differ diff --git a/docs/html/img167.png b/docs/html/img167.png deleted file mode 100644 index 0c441a44..00000000 Binary files a/docs/html/img167.png and /dev/null differ diff --git a/docs/html/img168.png b/docs/html/img168.png deleted file mode 100644 index 2d35de54..00000000 Binary files a/docs/html/img168.png and /dev/null differ diff --git a/docs/html/img169.png b/docs/html/img169.png deleted file mode 100644 index 86ab1590..00000000 Binary files a/docs/html/img169.png and /dev/null differ diff --git a/docs/html/img17.png b/docs/html/img17.png deleted file mode 100644 index a16d6eb6..00000000 Binary files a/docs/html/img17.png and /dev/null differ diff --git a/docs/html/img170.png b/docs/html/img170.png deleted file mode 100644 index deb37281..00000000 Binary files a/docs/html/img170.png and /dev/null differ diff --git a/docs/html/img171.png b/docs/html/img171.png deleted file mode 100644 index cbcd1726..00000000 Binary files a/docs/html/img171.png and /dev/null differ diff --git a/docs/html/img172.png b/docs/html/img172.png deleted file mode 100644 index 881b68af..00000000 Binary files a/docs/html/img172.png and /dev/null differ diff --git a/docs/html/img173.png b/docs/html/img173.png deleted file mode 100644 index e803c834..00000000 Binary files a/docs/html/img173.png and /dev/null differ diff --git a/docs/html/img174.png b/docs/html/img174.png deleted file mode 100644 index 62a4ace0..00000000 Binary files a/docs/html/img174.png and /dev/null differ diff --git a/docs/html/img175.png b/docs/html/img175.png deleted file mode 100644 index 7fdc87ea..00000000 Binary files a/docs/html/img175.png and /dev/null differ diff --git a/docs/html/img176.png b/docs/html/img176.png deleted file mode 100644 index 432e9540..00000000 Binary files a/docs/html/img176.png and /dev/null differ diff --git a/docs/html/img177.png b/docs/html/img177.png deleted file mode 100644 index c8ef97d9..00000000 Binary files a/docs/html/img177.png and /dev/null differ diff --git a/docs/html/img178.png b/docs/html/img178.png deleted file mode 100644 index d50fc6ea..00000000 Binary files a/docs/html/img178.png and /dev/null differ diff --git a/docs/html/img179.png b/docs/html/img179.png deleted file mode 100644 index 4a8ca50b..00000000 Binary files a/docs/html/img179.png and /dev/null differ diff --git a/docs/html/img18.png b/docs/html/img18.png deleted file mode 100644 index a1c96ad5..00000000 Binary files a/docs/html/img18.png and /dev/null differ diff --git a/docs/html/img180.png b/docs/html/img180.png deleted file mode 100644 index 3f134112..00000000 Binary files a/docs/html/img180.png and /dev/null differ diff --git a/docs/html/img181.png b/docs/html/img181.png deleted file mode 100644 index 16fe2160..00000000 Binary files a/docs/html/img181.png and /dev/null differ diff --git a/docs/html/img19.png b/docs/html/img19.png deleted file mode 100644 index d0e22d1f..00000000 Binary files a/docs/html/img19.png and /dev/null differ diff --git a/docs/html/img2.png b/docs/html/img2.png deleted file mode 100644 index ce374483..00000000 Binary files a/docs/html/img2.png and /dev/null differ diff --git a/docs/html/img20.png b/docs/html/img20.png deleted file mode 100644 index ba7446cb..00000000 Binary files a/docs/html/img20.png and /dev/null differ diff --git a/docs/html/img21.png b/docs/html/img21.png deleted file mode 100644 index 5211fce1..00000000 Binary files a/docs/html/img21.png and /dev/null differ diff --git a/docs/html/img22.png b/docs/html/img22.png deleted file mode 100644 index 6a7336dd..00000000 Binary files a/docs/html/img22.png and /dev/null differ diff --git a/docs/html/img23.png b/docs/html/img23.png deleted file mode 100644 index 8820cdde..00000000 Binary files a/docs/html/img23.png and /dev/null differ diff --git a/docs/html/img24.png b/docs/html/img24.png deleted file mode 100644 index 87dfb361..00000000 Binary files a/docs/html/img24.png and /dev/null differ diff --git a/docs/html/img25.png b/docs/html/img25.png deleted file mode 100644 index 455f551f..00000000 Binary files a/docs/html/img25.png and /dev/null differ diff --git a/docs/html/img26.png b/docs/html/img26.png deleted file mode 100644 index 7bb6f1e1..00000000 Binary files a/docs/html/img26.png and /dev/null differ diff --git a/docs/html/img27.png b/docs/html/img27.png deleted file mode 100644 index e3b06a48..00000000 Binary files a/docs/html/img27.png and /dev/null differ diff --git a/docs/html/img28.png b/docs/html/img28.png deleted file mode 100644 index 5b4542aa..00000000 Binary files a/docs/html/img28.png and /dev/null differ diff --git a/docs/html/img29.png b/docs/html/img29.png deleted file mode 100644 index a39cee90..00000000 Binary files a/docs/html/img29.png and /dev/null differ diff --git a/docs/html/img3.png b/docs/html/img3.png deleted file mode 100644 index 869e09eb..00000000 Binary files a/docs/html/img3.png and /dev/null differ diff --git a/docs/html/img30.png b/docs/html/img30.png deleted file mode 100644 index b005f107..00000000 Binary files a/docs/html/img30.png and /dev/null differ diff --git a/docs/html/img31.png b/docs/html/img31.png deleted file mode 100644 index b0759f28..00000000 Binary files a/docs/html/img31.png and /dev/null differ diff --git a/docs/html/img32.png b/docs/html/img32.png deleted file mode 100644 index ed749deb..00000000 Binary files a/docs/html/img32.png and /dev/null differ diff --git a/docs/html/img33.png b/docs/html/img33.png deleted file mode 100644 index 050f3cdd..00000000 Binary files a/docs/html/img33.png and /dev/null differ diff --git a/docs/html/img34.png b/docs/html/img34.png deleted file mode 100644 index 75e66a30..00000000 Binary files a/docs/html/img34.png and /dev/null differ diff --git a/docs/html/img35.png b/docs/html/img35.png deleted file mode 100644 index 9fb422bb..00000000 Binary files a/docs/html/img35.png and /dev/null differ diff --git a/docs/html/img36.png b/docs/html/img36.png deleted file mode 100644 index 8300ccd3..00000000 Binary files a/docs/html/img36.png and /dev/null differ diff --git a/docs/html/img37.png b/docs/html/img37.png deleted file mode 100644 index 8dc1fd2c..00000000 Binary files a/docs/html/img37.png and /dev/null differ diff --git a/docs/html/img38.png b/docs/html/img38.png deleted file mode 100644 index 2a6bc064..00000000 Binary files a/docs/html/img38.png and /dev/null differ diff --git a/docs/html/img39.png b/docs/html/img39.png deleted file mode 100644 index 753930a8..00000000 Binary files a/docs/html/img39.png and /dev/null differ diff --git a/docs/html/img4.png b/docs/html/img4.png deleted file mode 100644 index 587ad0cb..00000000 Binary files a/docs/html/img4.png and /dev/null differ diff --git a/docs/html/img40.png b/docs/html/img40.png deleted file mode 100644 index e7b8816a..00000000 Binary files a/docs/html/img40.png and /dev/null differ diff --git a/docs/html/img41.png b/docs/html/img41.png deleted file mode 100644 index ef745239..00000000 Binary files a/docs/html/img41.png and /dev/null differ diff --git a/docs/html/img42.png b/docs/html/img42.png deleted file mode 100644 index 90788f0b..00000000 Binary files a/docs/html/img42.png and /dev/null differ diff --git a/docs/html/img43.png b/docs/html/img43.png deleted file mode 100644 index a6a14a3f..00000000 Binary files a/docs/html/img43.png and /dev/null differ diff --git a/docs/html/img44.png b/docs/html/img44.png deleted file mode 100644 index f806e0d8..00000000 Binary files a/docs/html/img44.png and /dev/null differ diff --git a/docs/html/img45.png b/docs/html/img45.png deleted file mode 100644 index 0d8a92b1..00000000 Binary files a/docs/html/img45.png and /dev/null differ diff --git a/docs/html/img46.png b/docs/html/img46.png deleted file mode 100644 index dfafa7c9..00000000 Binary files a/docs/html/img46.png and /dev/null differ diff --git a/docs/html/img47.png b/docs/html/img47.png deleted file mode 100644 index 571e8fe6..00000000 Binary files a/docs/html/img47.png and /dev/null differ diff --git a/docs/html/img48.png b/docs/html/img48.png deleted file mode 100644 index ffc91461..00000000 Binary files a/docs/html/img48.png and /dev/null differ diff --git a/docs/html/img49.png b/docs/html/img49.png deleted file mode 100644 index 92a76423..00000000 Binary files a/docs/html/img49.png and /dev/null differ diff --git a/docs/html/img5.png b/docs/html/img5.png deleted file mode 100644 index 89608988..00000000 Binary files a/docs/html/img5.png and /dev/null differ diff --git a/docs/html/img50.png b/docs/html/img50.png deleted file mode 100644 index 5dcfb65a..00000000 Binary files a/docs/html/img50.png and /dev/null differ diff --git a/docs/html/img51.png b/docs/html/img51.png deleted file mode 100644 index f6335409..00000000 Binary files a/docs/html/img51.png and /dev/null differ diff --git a/docs/html/img52.png b/docs/html/img52.png deleted file mode 100644 index 5c562331..00000000 Binary files a/docs/html/img52.png and /dev/null differ diff --git a/docs/html/img53.png b/docs/html/img53.png deleted file mode 100644 index be2cba0e..00000000 Binary files a/docs/html/img53.png and /dev/null differ diff --git a/docs/html/img54.png b/docs/html/img54.png deleted file mode 100644 index d8ade475..00000000 Binary files a/docs/html/img54.png and /dev/null differ diff --git a/docs/html/img55.png b/docs/html/img55.png deleted file mode 100644 index 0b94ce1b..00000000 Binary files a/docs/html/img55.png and /dev/null differ diff --git a/docs/html/img56.png b/docs/html/img56.png deleted file mode 100644 index 38055651..00000000 Binary files a/docs/html/img56.png and /dev/null differ diff --git a/docs/html/img57.png b/docs/html/img57.png deleted file mode 100644 index bbdf4b88..00000000 Binary files a/docs/html/img57.png and /dev/null differ diff --git a/docs/html/img58.png b/docs/html/img58.png deleted file mode 100644 index 2cb46436..00000000 Binary files a/docs/html/img58.png and /dev/null differ diff --git a/docs/html/img59.png b/docs/html/img59.png deleted file mode 100644 index 0896a6f5..00000000 Binary files a/docs/html/img59.png and /dev/null differ diff --git a/docs/html/img6.png b/docs/html/img6.png deleted file mode 100644 index d96fe963..00000000 Binary files a/docs/html/img6.png and /dev/null differ diff --git a/docs/html/img60.png b/docs/html/img60.png deleted file mode 100644 index 31482d5d..00000000 Binary files a/docs/html/img60.png and /dev/null differ diff --git a/docs/html/img61.png b/docs/html/img61.png deleted file mode 100644 index add7a3da..00000000 Binary files a/docs/html/img61.png and /dev/null differ diff --git a/docs/html/img62.png b/docs/html/img62.png deleted file mode 100644 index 9c888139..00000000 Binary files a/docs/html/img62.png and /dev/null differ diff --git a/docs/html/img63.png b/docs/html/img63.png deleted file mode 100644 index 4626cda8..00000000 Binary files a/docs/html/img63.png and /dev/null differ diff --git a/docs/html/img64.png b/docs/html/img64.png deleted file mode 100644 index 63497b06..00000000 Binary files a/docs/html/img64.png and /dev/null differ diff --git a/docs/html/img65.png b/docs/html/img65.png deleted file mode 100644 index 0f08edcc..00000000 Binary files a/docs/html/img65.png and /dev/null differ diff --git a/docs/html/img66.png b/docs/html/img66.png deleted file mode 100644 index 5fc28604..00000000 Binary files a/docs/html/img66.png and /dev/null differ diff --git a/docs/html/img67.png b/docs/html/img67.png deleted file mode 100644 index 0fe6d6fe..00000000 Binary files a/docs/html/img67.png and /dev/null differ diff --git a/docs/html/img68.png b/docs/html/img68.png deleted file mode 100644 index 5fc28604..00000000 Binary files a/docs/html/img68.png and /dev/null differ diff --git a/docs/html/img69.png b/docs/html/img69.png deleted file mode 100644 index 624c6cca..00000000 Binary files a/docs/html/img69.png and /dev/null differ diff --git a/docs/html/img7.png b/docs/html/img7.png deleted file mode 100644 index a26eabf7..00000000 Binary files a/docs/html/img7.png and /dev/null differ diff --git a/docs/html/img70.png b/docs/html/img70.png deleted file mode 100644 index 2539460a..00000000 Binary files a/docs/html/img70.png and /dev/null differ diff --git a/docs/html/img71.png b/docs/html/img71.png deleted file mode 100644 index 36fe0d5b..00000000 Binary files a/docs/html/img71.png and /dev/null differ diff --git a/docs/html/img72.png b/docs/html/img72.png deleted file mode 100644 index f75a7319..00000000 Binary files a/docs/html/img72.png and /dev/null differ diff --git a/docs/html/img73.png b/docs/html/img73.png deleted file mode 100644 index 6cc3ae5c..00000000 Binary files a/docs/html/img73.png and /dev/null differ diff --git a/docs/html/img74.png b/docs/html/img74.png deleted file mode 100644 index 90e36a4d..00000000 Binary files a/docs/html/img74.png and /dev/null differ diff --git a/docs/html/img75.png b/docs/html/img75.png deleted file mode 100644 index fed43124..00000000 Binary files a/docs/html/img75.png and /dev/null differ diff --git a/docs/html/img76.png b/docs/html/img76.png deleted file mode 100644 index 334a44a7..00000000 Binary files a/docs/html/img76.png and /dev/null differ diff --git a/docs/html/img77.png b/docs/html/img77.png deleted file mode 100644 index 650cef03..00000000 Binary files a/docs/html/img77.png and /dev/null differ diff --git a/docs/html/img78.png b/docs/html/img78.png deleted file mode 100644 index c3fd2d55..00000000 Binary files a/docs/html/img78.png and /dev/null differ diff --git a/docs/html/img79.png b/docs/html/img79.png deleted file mode 100644 index 9057bcf5..00000000 Binary files a/docs/html/img79.png and /dev/null differ diff --git a/docs/html/img8.png b/docs/html/img8.png deleted file mode 100644 index d7424dc1..00000000 Binary files a/docs/html/img8.png and /dev/null differ diff --git a/docs/html/img80.png b/docs/html/img80.png deleted file mode 100644 index 5a0d1ca4..00000000 Binary files a/docs/html/img80.png and /dev/null differ diff --git a/docs/html/img81.png b/docs/html/img81.png deleted file mode 100644 index 6619889a..00000000 Binary files a/docs/html/img81.png and /dev/null differ diff --git a/docs/html/img82.png b/docs/html/img82.png deleted file mode 100644 index 44cbaea8..00000000 Binary files a/docs/html/img82.png and /dev/null differ diff --git a/docs/html/img83.png b/docs/html/img83.png deleted file mode 100644 index 2f1e81d3..00000000 Binary files a/docs/html/img83.png and /dev/null differ diff --git a/docs/html/img84.png b/docs/html/img84.png deleted file mode 100644 index 5246c0b8..00000000 Binary files a/docs/html/img84.png and /dev/null differ diff --git a/docs/html/img85.png b/docs/html/img85.png deleted file mode 100644 index 615372d4..00000000 Binary files a/docs/html/img85.png and /dev/null differ diff --git a/docs/html/img86.png b/docs/html/img86.png deleted file mode 100644 index 04513fb5..00000000 Binary files a/docs/html/img86.png and /dev/null differ diff --git a/docs/html/img87.png b/docs/html/img87.png deleted file mode 100644 index d280160a..00000000 Binary files a/docs/html/img87.png and /dev/null differ diff --git a/docs/html/img88.png b/docs/html/img88.png deleted file mode 100644 index 89a30141..00000000 Binary files a/docs/html/img88.png and /dev/null differ diff --git a/docs/html/img89.png b/docs/html/img89.png deleted file mode 100644 index 168fcb95..00000000 Binary files a/docs/html/img89.png and /dev/null differ diff --git a/docs/html/img9.png b/docs/html/img9.png deleted file mode 100644 index 2a67babe..00000000 Binary files a/docs/html/img9.png and /dev/null differ diff --git a/docs/html/img90.png b/docs/html/img90.png deleted file mode 100644 index ec5fdcea..00000000 Binary files a/docs/html/img90.png and /dev/null differ diff --git a/docs/html/img91.png b/docs/html/img91.png deleted file mode 100644 index 79d7ada7..00000000 Binary files a/docs/html/img91.png and /dev/null differ diff --git a/docs/html/img92.png b/docs/html/img92.png deleted file mode 100644 index 7a1571be..00000000 Binary files a/docs/html/img92.png and /dev/null differ diff --git a/docs/html/img93.png b/docs/html/img93.png deleted file mode 100644 index 79cf58a6..00000000 Binary files a/docs/html/img93.png and /dev/null differ diff --git a/docs/html/img94.png b/docs/html/img94.png deleted file mode 100644 index 6d9db303..00000000 Binary files a/docs/html/img94.png and /dev/null differ diff --git a/docs/html/img95.png b/docs/html/img95.png deleted file mode 100644 index 48aa78e3..00000000 Binary files a/docs/html/img95.png and /dev/null differ diff --git a/docs/html/img96.png b/docs/html/img96.png deleted file mode 100644 index 8c52c838..00000000 Binary files a/docs/html/img96.png and /dev/null differ diff --git a/docs/html/img97.png b/docs/html/img97.png deleted file mode 100644 index c4a1e7ad..00000000 Binary files a/docs/html/img97.png and /dev/null differ diff --git a/docs/html/img98.png b/docs/html/img98.png deleted file mode 100644 index df9999c4..00000000 Binary files a/docs/html/img98.png and /dev/null differ diff --git a/docs/html/img99.png b/docs/html/img99.png deleted file mode 100644 index 33d40e54..00000000 Binary files a/docs/html/img99.png and /dev/null differ diff --git a/docs/html/index.html b/docs/html/index.html index e3200a83..0cca7b4c 100644 --- a/docs/html/index.html +++ b/docs/html/index.html @@ -1,408 +1,261 @@ - + + + + + + + + + + +

PSBLAS
User’s and Reference Guide
A reference guide for the Parallel Sparse BLAS library
Salvatore Filippone
Alfredo Buttari
Software version: 3.7.0
Jan 7th, 2020 + - - - -userhtml - - - - + + - - + +

+ Contents +
1 Introduction +
2 General overview +
 2.1 Basic Nomenclature +
 2.2 Library contents +
 2.3 Application structure +
 2.4 Programming model +
3 Data Structures and Classes +
 3.1 Descriptor data structure +
 3.2 Sparse Matrix class +
 3.3 Dense Vector Data Structure +
 3.4 Preconditioner data structure +
 3.5 Heap data structure +
4 Computational routines +
 4.1 psb_geaxpby — General Dense Matrix Sum +
 4.2 psb_gedot — Dot Product +
 4.3 psb_gedots — Generalized Dot Product +
 4.4 psb_normi — Infinity-Norm of Vector +
 4.5 psb_geamaxs — Generalized Infinity Norm +
 4.6 psb_norm1 — 1-Norm of Vector +
 4.7 psb_geasums — Generalized 1-Norm of Vector +
 4.8 psb_norm2 — 2-Norm of Vector +
 4.9 psb_genrm2s — Generalized 2-Norm of Vector +
 4.10 psb_norm1 — 1-Norm of Sparse Matrix +
 4.11 psb_normi — Infinity Norm of Sparse Matrix +
 4.12 psb_spmm — Sparse Matrix by Dense Matrix Product +
 4.13 psb_spsm — Triangular System Solve +
 4.14 psb_gemlt — Entrywise Product +
 4.15 psb_gediv — Entrywise Division +
 4.16 psb_geinv — Entrywise Inversion +
5 Communication routines +
 5.1 psb_halo — Halo Data Communication +
 5.2 psb_ovrl — Overlap Update +
 5.3 psb_gather — Gather Global Dense Matrix +
 5.4 psb_scatter — Scatter Global Dense Matrix +
6 Data management routines +
 6.1 psb_cdall — Allocates a communication descriptor +
 6.2 psb_cdins — Communication descriptor insert routine +
 6.3 psb_cdasb — Communication descriptor assembly routine +
 6.4 psb_cdcpy — Copies a communication descriptor +
 6.5 psb_cdfree — Frees a communication descriptor +
 6.6 psb_cdbldext — Build an extended communication descriptor +
 6.7 psb_spall — Allocates a sparse matrix +
 6.8 psb_spins — Insert a set of coefficients into a sparse matrix +
 6.9 psb_spasb — Sparse matrix assembly routine +
 6.10 psb_spfree — Frees a sparse matrix +
 6.11 psb_sprn — Reinit sparse matrix structure for psblas routines. +
 6.12 psb_geall — Allocates a dense matrix + - + +
 6.13 psb_geins — Dense matrix insertion routine +
 6.14 psb_geasb — Assembly a dense matrix +
 6.15 psb_gefree — Frees a dense matrix +
 6.16 psb_gelp — Applies a left permutation to a dense matrix +
 6.17 psb_glob_to_loc — Global to local indices convertion +
 6.18 psb_loc_to_glob — Local to global indices conversion +
 6.19 psb_is_owned — +
 6.20 psb_owned_index — +
 6.21 psb_is_local — +
 6.22 psb_local_index — +
 6.23 psb_get_boundary — Extract list of boundary elements +
 6.24 psb_get_overlap — Extract list of overlap elements +
 6.25 psb_sp_getrow — Extract row(s) from a sparse matrix +
 6.26 psb_sizeof — Memory occupation +
 6.27 Sorting utilities — +
7 Parallel environment routines +
 7.1 psb_init — Initializes PSBLAS parallel environment +
 7.2 psb_info — Return information about PSBLAS parallel environment +
 7.3 psb_exit — Exit from PSBLAS parallel environment +
 7.4 psb_get_mpi_comm — Get the MPI communicator +
 7.5 psb_get_mpi_rank — Get the MPI rank +
 7.6 psb_wtime — Wall clock timing +
 7.7 psb_barrier — Sinchronization point parallel environment +
 7.8 psb_abort — Abort a computation +
 7.9 psb_bcast — Broadcast data +
 7.10 psb_sum — Global sum +
 7.11 psb_max — Global maximum +
 7.12 psb_min — Global minimum +
 7.13 psb_amx — Global maximum absolute value +
 7.14 psb_amn — Global minimum absolute value +
 7.15 psb_nrm2 — Global 2-norm reduction +
 7.16 psb_snd — Send data +
 7.17 psb_rcv — Receive data +
8 Error handling +
 8.1 psb_errpush — Pushes an error code onto the error stack +
 8.2 psb_error — Prints the error stack content and aborts execution +
 8.3 psb_set_errverbosity — Sets the verbosity of error messages +
 8.4 psb_set_erraction — Set the type of action to be taken upon error condition +
9 Utilities +
 9.1 hb_read — Read a sparse matrix from a file in the Harwell–Boeing format +
 9.2 hb_write — Write a sparse matrix to a file in the Harwell–Boeing format +
 9.3 mm_mat_read — Read a sparse matrix from a file in the MatrixMarket format +
 9.4 mm_array_read — Read a dense array from a file in the MatrixMarket format +
 9.5 mm_mat_write — Write a sparse matrix to a file in the MatrixMarket format +
 9.6 mm_array_write — Write a dense array from a file in the MatrixMarket format +
10 Preconditioner routines +
 10.1 init — Initialize a preconditioner +
 10.2 build — Builds a preconditioner +
 10.3 apply — Preconditioner application routine +
 10.4 descr — Prints a description of current preconditioner + - - + +
 10.5 clone — clone current preconditioner +
 10.6 free — Free a preconditioner +
11 Iterative Methods +
 11.1 psb_krylov — Krylov Methods Driver Routine +
References +
- - - -language=Fortran -

-PSBLAS -
-
-User's and Reference - Guide
-
A reference guide for the Parallel Sparse BLAS library -
-
-
-
Salvatore Filippone -
-Alfredo Buttari
-
-Software version: 3.6.0 -
-Dec 1st, 2018 -


- - - - -

- - + + + + + + + + + + + diff --git a/docs/html/next.png b/docs/html/next.png deleted file mode 100644 index 1628652a..00000000 Binary files a/docs/html/next.png and /dev/null differ diff --git a/docs/html/next_g.png b/docs/html/next_g.png deleted file mode 100644 index 9d3f5912..00000000 Binary files a/docs/html/next_g.png and /dev/null differ diff --git a/docs/html/node1.html b/docs/html/node1.html deleted file mode 100644 index 5acc7f7d..00000000 --- a/docs/html/node1.html +++ /dev/null @@ -1,111 +0,0 @@ - - - - - -Contents - - - - - - - - - - - - - - - - - - - - -
- -

-Contents -

- - - - -

- -

- -

-


- - - diff --git a/docs/html/node10.html b/docs/html/node10.html deleted file mode 100644 index ce622a01..00000000 --- a/docs/html/node10.html +++ /dev/null @@ -1,298 +0,0 @@ - - - - - -Descriptor data structure - - - - - - - - - - - - - - - - - - - - - -

- -
-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 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 psb_desc_type can be treated as an -opaque object handled via the tools routines of -Sec. 6 or the query routines detailed below; -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: -

-
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 -processes with which it is necessary to communicate: - -
    -
  1. Process identifier; -
  2. -
  3. Number of points to be received; -
  4. -
  5. Indices of points to be received; -
  6. -
  7. Number of points to be sent; -
  8. -
  9. Indices of points to be sent; -
  10. -
-Specified as: a vector of integer type, see 3.3. -
-
ext_index
-
A list of element indices to be exchanged to - implement the mapping between a base descriptor and a descriptor - with overlap. -
-Specified as: a vector of integer type, see 3.3. -
-
ovrlap_index
-
A list of the overlap elements for the -current process, organized in groups like the previous vector: - -
    -
  1. Process identifier; -
  2. -
  3. Number of points to be received; -
  4. -
  5. Indices of points to be received; -
  6. -
  7. Number of points to be sent; -
  8. -
  9. Indices of points to be sent; -
  10. -
-Specified as: a vector of integer type, see 3.3. -
-
ovr_mst_idx
-
A list to retrieve the value of each - overlap element from the respective master process. -
-Specified as: a vector of integer type, see 3.3. -
-
ovrlap_elem
-
For all overlap points belonging to th -ecurrent process: - -
    -
  1. Overlap point index; -
  2. -
  3. Number of processes sharing that overlap points; -
  4. -
  5. Index of a “master” process: -
  6. -
-Specified as: an allocatable integer array of rank two. -
-
bnd_elem
-
A list of all boundary points, i.e. points - that have a connection with other processes. -
-
-The Fortran 2003 declaration for psb_desc_type structures is -as follows: - -
- - - -
Figure 3: -The PSBLAS defined data type that - contains the communication descriptor.
-
- -
-
 
-type psb_desc_type 
-    class(psb_indx_map), allocatable :: indxmap
-    type(psb_i_vect_type) :: v_halo_index
-    type(psb_i_vect_type) :: v_ext_index
-    type(psb_i_vect_type) :: v_ovrlap_index
-    type(psb_i_vect_type) :: v_ovr_mst_idx 
-    integer, allocatable  :: ovrlap_elem(:,:)
-    integer, allocatable  :: bnd_elem(:)
-end type psb_desc_type
-
-
-
-
-A communication descriptor associated with a sparse matrix has a -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 communication - requirements among different processes. -
-
Assembled:
-
State entered after the assembly; computations using - the associated sparse matrix, such as matrix-vector products, are - only possible in this state. -
-
- -

-


- -Subsections - - - - - - - - - diff --git a/docs/html/node100.html b/docs/html/node100.html deleted file mode 100644 index 1f5586b7..00000000 --- a/docs/html/node100.html +++ /dev/null @@ -1,177 +0,0 @@ - - - - - -psb_init -- Initializes PSBLAS parallel environment - - - - - - - - - - - - - - - - - - - - - -

-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. -
-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)$. -
-
- -

-

-
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. -
- -

- -

- - - - diff --git a/docs/html/node101.html b/docs/html/node101.html deleted file mode 100644 index 81e42059..00000000 --- a/docs/html/node101.html +++ /dev/null @@ -1,146 +0,0 @@ - - - - - -psb_info -- Return information about PSBLAS parallel environment - - - - - - - - - - - - - - - - - - - - - -

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

- -

-

-call psb_info(icontxt, iam, np)
-
- -

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

-
Type:
-
Asynchronous. -
-
On Entry
-
-
-
icontxt
-
the communication context identifying the virtual - parallel machine. -
-Scope: global. -
-Type: required. -
-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. -
-Scope: global. -
-Type: required. -
-Intent: out. -
-Specified as: an integer variable.
-
- -

-Notes - -

    -
  1. For processes in the virtual parallel machine the identifier - will satisfy -$0 \le iam \le np-1$; -
  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. -
- -

-


- - - diff --git a/docs/html/node102.html b/docs/html/node102.html deleted file mode 100644 index ef55917c..00000000 --- a/docs/html/node102.html +++ /dev/null @@ -1,149 +0,0 @@ - - - - - -psb_exit -- Exit from PSBLAS parallel environment - - - - - - - - - - - - - - - - - - - - - -

-psb_exit -- Exit from PSBLAS parallel - environment -

- -

-

-call psb_exit(icontxt)
-call psb_exit(icontxt,close)
-
- -

-This subroutine exits from the PSBLAS parallel virtual machine. -

-
Type:
-
Synchronous. -
-
On Entry
-
-
-
icontxt
-
the communication context identifying the virtual - parallel machine. -
-Scope: global. -
-Type: required. -
-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. -
-Scope: global. -
-Type: optional. -
-Intent: in. -
-Specified as: a logical variable, default value: true. -
-
- -

-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. -
- -

- -

- - - - diff --git a/docs/html/node103.html b/docs/html/node103.html deleted file mode 100644 index 561d6988..00000000 --- a/docs/html/node103.html +++ /dev/null @@ -1,103 +0,0 @@ - - - - - -psb_get_mpicomm -- Get the MPI communicator - - - - - - - - - - - - - - - - - - - - - -

-psb_get_mpicomm -- Get the MPI communicator -

- -

-

-icomm = psb_get_mpicomm(icontxt)
-
- -

-This subroutine returns the MPI communicator associated with a PSBLAS context -

-
Type:
-
Asynchronous. -
-
On Entry
-
-
-
icontxt
-
the communication context identifying the virtual - parallel machine. -
-Scope: global. -
-Type: required. -
-Intent: in. -
-Specified as: an integer variable. -
-
- -

-

-
On Return
-
-
-
Function value
-
The MPI communicator associated with the PSBLAS virtual parallel machine. -
-Scope: global. -
-Type: required. -
-Intent: out. -
-
- -

-


- - - diff --git a/docs/html/node104.html b/docs/html/node104.html deleted file mode 100644 index 99879bc0..00000000 --- a/docs/html/node104.html +++ /dev/null @@ -1,125 +0,0 @@ - - - - - -psb_get_rank -- Get the MPI rank - - - - - - - - - - - - - - - - - - - - - -

-psb_get_rank -- Get the MPI rank -

- -

-

-rank = psb_get_rank(icontxt, id)
-
- -

-This subroutine returns the MPI rank of the PSBLAS process $id$ -

-
Type:
-
Asynchronous. -
-
On Entry
-
-
-
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. -
-Type: required. -
-Intent: in. -
-Specified as: an integer value. -$0 \le id \le np-1$
-
- -

-

-
On Return
-
-
-
Funciton value
-
The MPI rank associated with the PSBLAS process $id$. -
-Scope: local. -
-Type: required. -
-Intent: out. -
-
- -

-


- - - diff --git a/docs/html/node105.html b/docs/html/node105.html deleted file mode 100644 index a93ed542..00000000 --- a/docs/html/node105.html +++ /dev/null @@ -1,81 +0,0 @@ - - - - - -psb_wtime -- Wall clock timing - - - - - - - - - - - - - - - - - - - - - -

-psb_wtime -- Wall clock timing -

- -

-

-time = psb_wtime()
-
- -

-This function returns a wall clock timer. The resolution of the timer -is dependent on the underlying parallel environment implementation. -

-
Type:
-
Asynchronous. -
-
On Exit
-
-
-
Function value
-
the elapsed time in seconds. -
-Returned as: a real(psb_dpk_) variable. -
-
- -

-


- - - diff --git a/docs/html/node106.html b/docs/html/node106.html deleted file mode 100644 index 74bd3f51..00000000 --- a/docs/html/node106.html +++ /dev/null @@ -1,89 +0,0 @@ - - - - - -psb_barrier -- Sinchronization point parallel environment - - - - - - - - - - - - - - - - - - - - - -

-psb_barrier -- Sinchronization point parallel - environment -

- -

-

-call psb_barrier(icontxt)
-
- -

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

-
Type:
-
Synchronous. -
-
On Entry
-
-
-
icontxt
-
the communication context identifying the virtual - parallel machine. -
-Scope: global. -
-Type: required. -
-Intent: in. -
-Specified as: an integer variable. -
-
- -

-


- - - diff --git a/docs/html/node107.html b/docs/html/node107.html deleted file mode 100644 index 0f37acf3..00000000 --- a/docs/html/node107.html +++ /dev/null @@ -1,87 +0,0 @@ - - - - - -psb_abort -- Abort a computation - - - - - - - - - - - - - - - - - - - - - -

-psb_abort -- Abort a computation -

- -

-

-call psb_abort(icontxt)
-
- -

-This subroutine aborts computation on the parallel virtual machine. -

-
Type:
-
Asynchronous. -
-
On Entry
-
-
-
icontxt
-
the communication context identifying the virtual - parallel machine. -
-Scope: global. -
-Type: required. -
-Intent: in. -
-Specified as: an integer variable. -
-
- -

-


- - - diff --git a/docs/html/node108.html b/docs/html/node108.html deleted file mode 100644 index cada5b11..00000000 --- a/docs/html/node108.html +++ /dev/null @@ -1,136 +0,0 @@ - - - - - -psb_bcast -- Broadcast data - - - - - - - - - - - - - - - - - - - - - -

-psb_bcast -- Broadcast data -

- -

-

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

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

-
Type:
-
Synchronous. -
-
On Entry
-
-
-
icontxt
-
the communication context identifying the virtual - parallel machine. -
-Scope: global. -
-Type: required. -
-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. -
-
- -

-


- - - diff --git a/docs/html/node109.html b/docs/html/node109.html deleted file mode 100644 index c023b27a..00000000 --- a/docs/html/node109.html +++ /dev/null @@ -1,177 +0,0 @@ - - - - - -psb_sum -- Global sum - - - - - - - - - - - - - - - - - - - - - -

-psb_sum -- Global sum -

- -

-

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

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

-
Type:
-
Synchronous. -
-
On Entry
-
-
-
icontxt
-
the communication context identifying the virtual - parallel machine. -
-Scope: global. -
-Type: required. -
-Intent: in. -
-Specified as: an integer variable. -
-
dat
-
The local contribution to the global sum. -
-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. Type, kind, rank and size must agree on all processes. -
-
root
-
Process to hold the final sum, or $-1$ to make it available - on all processes. -
-Scope: global. -
-Type: optional. -
-Intent: in. -
-Specified as: an integer value -$-1<= root <= np-1$, default -1.
-
- -

-

-
On Return
-
-
-
dat
-
On destination process(es), the result of the sum operation. -
-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. -
-Type, kind, rank and size must agree on all processes. -
-
- -

-Notes - -

    -
  1. The dat argument is both input and output, and its - value may be changed even on processes different from the final - result destination. -
  2. -
  3. The dat argument may also be a long integer scalar. -
  4. -
- -

- -

- - - - diff --git a/docs/html/node11.html b/docs/html/node11.html deleted file mode 100644 index c3adba33..00000000 --- a/docs/html/node11.html +++ /dev/null @@ -1,59 +0,0 @@ - - - - - -Descriptor Methods - - - - - - - - - - - - - - - - - - - - - -

-Descriptor Methods -

- -

-


- - - diff --git a/docs/html/node110.html b/docs/html/node110.html deleted file mode 100644 index 06883b02..00000000 --- a/docs/html/node110.html +++ /dev/null @@ -1,176 +0,0 @@ - - - - - -psb_max -- Global maximum - - - - - - - - - - - - - - - - - - - - - -

-psb_max -- Global maximum -

- -

-

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

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

-
Type:
-
Synchronous. -
-
On Entry
-
-
-
icontxt
-
the communication context identifying the virtual - parallel machine. -
-Scope: global. -
-Type: required. -
-Intent: in. -
-Specified as: an integer variable. -
-
dat
-
The local contribution to the global maximum. -
-Scope: local. -
-Type: required. -
-Intent: inout. -
-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 $-1$ to make it available - on all processes. -
-Scope: global. -
-Type: optional. -
-Intent: in. -
-Specified as: an integer value -$-1<= root <= np-1$, default -1. -
-
- -

-

-
On Return
-
-
-
dat
-
On destination process(es), the result of the maximum operation. -
-Scope: global. -
-Type: required. -
-Intent: in. -
-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. -
-
- -

-Notes - -

    -
  1. The dat argument is both input and output, and its - value may be changed even on processes different from the final - result destination. -
  2. -
  3. The dat argument may also be a long integer scalar. -
  4. -
- -

- -

- - - - diff --git a/docs/html/node111.html b/docs/html/node111.html deleted file mode 100644 index 76e40bd5..00000000 --- a/docs/html/node111.html +++ /dev/null @@ -1,178 +0,0 @@ - - - - - -psb_min -- Global minimum - - - - - - - - - - - - - - - - - - - - - -

-psb_min -- Global minimum -

- -

-

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

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

-
Type:
-
Synchronous. -
-
On Entry
-
-
-
icontxt
-
the communication context identifying the virtual - parallel machine. -
-Scope: global. -
-Type: required. -
-Intent: in. -
-Specified as: an integer variable. -
-
dat
-
The local contribution to the global minimum. -
-Scope: local. -
-Type: required. -
-Intent: inout. -
-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 value, or $-1$ to make it available - on all processes. -
-Scope: global. -
-Type: optional. -
-Intent: in. -
-Specified as: an integer value -$-1<= root <= np-1$, default -1. -
-
- -

-

-
On Return
-
-
-
dat
-
On destination process(es), the result of the minimum operation. -
-Scope: global. -
-Type: required. -
-Intent: inout. -
-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. -
-
- -

-Notes - -

    -
  1. The dat argument is both input and output, and its - value may be changed even on processes different from the final - result destination. -
  2. -
  3. The dat argument may also be a long integer scalar. -
  4. -
- -

- -

- - - - diff --git a/docs/html/node112.html b/docs/html/node112.html deleted file mode 100644 index 36e57ef8..00000000 --- a/docs/html/node112.html +++ /dev/null @@ -1,176 +0,0 @@ - - - - - -psb_amx -- Global maximum absolute value - - - - - - - - - - - - - - - - - - - - - -

-psb_amx -- Global maximum absolute value -

- -

-

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

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

-
Type:
-
Synchronous. -
-
On Entry
-
-
-
icontxt
-
the communication context identifying the virtual - parallel machine. -
-Scope: global. -
-Type: required. -
-Intent: in. -
-Specified as: an integer variable. -
-
dat
-
The local contribution to the global maximum. -
-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. 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. -
-Scope: global. -
-Type: optional. -
-Intent: in. -
-Specified as: an integer value -$-1<= root <= np-1$, default -1. -
-
- -

-

-
On Return
-
-
-
dat
-
On destination process(es), the result of the maximum operation. -
-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. Type, kind, rank and size must agree on all processes. -
-
- -

-Notes - -

    -
  1. The dat argument is both input and output, and its - value may be changed even on processes different from the final - result destination. -
  2. -
  3. The dat argument may also be a long integer scalar. -
  4. -
- -

- -

- - - - diff --git a/docs/html/node113.html b/docs/html/node113.html deleted file mode 100644 index 587b7431..00000000 --- a/docs/html/node113.html +++ /dev/null @@ -1,178 +0,0 @@ - - - - - -psb_amn -- Global minimum absolute value - - - - - - - - - - - - - - - - - - - - - -

-psb_amn -- Global minimum absolute value -

- -

-

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

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

-
Type:
-
Synchronous. -
-
On Entry
-
-
-
icontxt
-
the communication context identifying the virtual - parallel machine. -
-Scope: global. -
-Type: required. -
-Intent: in. -
-Specified as: an integer variable. -
-
dat
-
The local contribution to the global minimum. -
-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. 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. -
-Scope: global. -
-Type: optional. -
-Intent: in. -
-Specified as: an integer value -$-1<= root <= np-1$, default -1. -
-
- -

-

-
On Return
-
-
-
dat
-
On destination process(es), the result of the minimum operation. -
-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. -
-Type, kind, rank and size must agree on all processes. -
-
- -

-Notes - -

    -
  1. The dat argument is both input and output, and its - value may be changed even on processes different from the final - result destination. -
  2. -
  3. The dat argument may also be a long integer scalar. -
  4. -
- -

- -

- - - - diff --git a/docs/html/node114.html b/docs/html/node114.html deleted file mode 100644 index 0f1bd184..00000000 --- a/docs/html/node114.html +++ /dev/null @@ -1,210 +0,0 @@ - - - - - -psb_nrm2 -- Global 2-norm reduction - - - - - - - - - - - - - - - - - - - - - -

-psb_nrm2 -- Global 2-norm reduction -

- -

-

-call psb_nrm2(icontxt, dat, root)
-
- -

-This subroutine implements a 2-norm value reduction -operation based on the underlying communication library. -

-
Type:
-
Synchronous. -
-
On Entry
-
-
-
icontxt
-
the communication context identifying the virtual - parallel machine. -
-Scope: global. -
-Type: required. -
-Intent: in. -
-Specified as: an integer variable. -
-
dat
-
The local contribution to the global minimum. -
-Scope: local. -
-Type: required. -
-Intent: inout. -
-Specified as: a real variable, which may be a -scalar, or a rank 1 array. 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. -
-Scope: global. -
-Type: optional. -
-Intent: in. -
-Specified as: an integer value -$-1<= root <= np-1$, default -1. -
-
- -

-

-
On Return
-
-
-
dat
-
On destination process(es), the result of the 2-norm reduction. -
-Scope: global. -
-Type: required. -
-Intent: inout. -
-Specified as: a real variable, which may be a -scalar, or a rank 1 array. -
-Kind, rank and size must agree on all processes. -
-
- -

-Notes - -

    -
  1. This reduction is appropriate to compute the results of multiple - (local) NRM2 operations at the same time. -
  2. -
  3. Denoting by $dat_i$ the value of the variable $dat$ on process - $i$, the output $res$ is equivalent to the computation of -

    -
    - - -\begin{displaymath}res = \sqrt{\sum_i dat_i^2},\end{displaymath} -
    -
    -

    -with care taken to avoid unnecessary overflow. -
  4. -
  5. The dat argument is both input and output, and its - value may be changed even on processes different from the final - result destination. -
  6. -
- -

- -

- - - - diff --git a/docs/html/node115.html b/docs/html/node115.html deleted file mode 100644 index 2da350d6..00000000 --- a/docs/html/node115.html +++ /dev/null @@ -1,190 +0,0 @@ - - - - - -psb_snd -- Send data - - - - - - - - - - - - - - - - - - - - - -

-psb_snd -- Send data -

- -

-

-call psb_snd(icontxt, dat, dst, m)
-
- -

-This subroutine sends 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. -
-
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. -
-Scope: global. -
-Type: required. -
-Intent: in. -
-Specified as: an integer value -$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. -
-
- -

-

-
On Return
-
-
-
- -

-Notes - -

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

- -

- - - - diff --git a/docs/html/node116.html b/docs/html/node116.html deleted file mode 100644 index 6f0eaa1e..00000000 --- a/docs/html/node116.html +++ /dev/null @@ -1,189 +0,0 @@ - - - - - -psb_rcv -- Receive data - - - - - - - - - - - - - - - - - - - - -

-psb_rcv -- Receive data -

- -

-

-call psb_rcv(icontxt, dat, src, m)
-
- -

-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. -
-
- -

-

-
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. -
-
- -

-Notes - -

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

- -

- - - - diff --git a/docs/html/node117.html b/docs/html/node117.html deleted file mode 100644 index 3f350078..00000000 --- a/docs/html/node117.html +++ /dev/null @@ -1,342 +0,0 @@ - - - - - -Error handling - - - - - - - - - - - - - - - - - - - - - -

-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} -
-
- -

-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). - -

- -

- - - -
Figure 10: -A sample PSBLAS-2.0 error - message. Process 0 detected an error condition inside the psb_cest subroutine
-
- -
- -\fbox{\TheSbox} -
-
- -

-ifstarsubroutinesubroutinepsb_errpushPushes an error code onto the error - stack - -

-
-\begin{lstlisting}
-call psb_errpush(err_c, r_name, i_err, a_err)
-\end{lstlisting} -
- -

-

-
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. -
-
- -

-ifstarsubroutinesubroutinepsb_errorPrints the error stack content and aborts - execution - -

-
-\begin{lstlisting}
-call psb_error(icontxt)
-\end{lstlisting} -
- -

-

-
Type:
-
Asynchronous. -
-
On Entry
-
-
-
icontxt
-
the communication context. -
-Scope: global -
-Type: optional -
-Intent: in. -
-Specified as: an integer. -
-
- -

-ifstarsubroutinesubroutinepsb_set_errverbositySets the verbosity of error - messages. - -

-
-\begin{lstlisting}
-call psb_set_errverbosity(v)
-\end{lstlisting} -
- -

-

-
Type:
-
Asynchronous. -
-
On Entry
-
-
-
v
-
the verbosity level -
-Scope: global -
-Type: required -
-Intent: in. -
-Specified as: an integer. -
-
- -

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

-
-\begin{lstlisting}
-call psb_set_erraction(err_act)
-\end{lstlisting} -
- -

-

-
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. -
-
- -

- -

- - - - diff --git a/docs/html/node118.html b/docs/html/node118.html deleted file mode 100644 index 9e19b009..00000000 --- a/docs/html/node118.html +++ /dev/null @@ -1,91 +0,0 @@ - - - - - -Utilities - - - - - - - - - - - - - - - - - - - - - -

- -
-Utilities -

- -

-We have some utilities available for input and output of -sparse matrices; the interfaces to these routines are available in the -module psb_util_mod. - -

-


- -Subsections - - - -

- - - diff --git a/docs/html/node119.html b/docs/html/node119.html deleted file mode 100644 index 31f1fbaf..00000000 --- a/docs/html/node119.html +++ /dev/null @@ -1,159 +0,0 @@ - - - - - -hb_read -- Read a sparse matrix from a file in the Harwell-Boeing format - - - - - - - - - - - - - - - - - - - - - -

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

- -

-
-\begin{lstlisting}
-call hb_read(a, iret, iunit, filename, b, mtitle)
-\end{lstlisting} -
- -

-

-
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_Tspmat_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. -
-
- -

- -

- - - - diff --git a/docs/html/node12.html b/docs/html/node12.html deleted file mode 100644 index 165f326d..00000000 --- a/docs/html/node12.html +++ /dev/null @@ -1,98 +0,0 @@ - - - - - -get_local_rows -- Get number of local rows - - - - - - - - - - - - - - - - - - - - - -

-get_local_rows -- Get number of local rows -

- -

-

-nr = desc%get_local_rows()
-
- -

-

-
Type:
-
Asynchronous. -
-
On Entry
-
-
-
desc
-
the communication descriptor. -
-Scope: local. -
-
- -

-

-
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/node120.html b/docs/html/node120.html deleted file mode 100644 index 11e1a5b6..00000000 --- a/docs/html/node120.html +++ /dev/null @@ -1,168 +0,0 @@ - - - - - -hb_write -- Write a sparse matrix to a file in the Harwell-Boeing format - - - - - - - - - - - - - - - - - - - - - -

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

- -

-
-\begin{lstlisting}
-call hb_write(a, iret, iunit, filename, key, rhs, mtitle)
-\end{lstlisting} -
- -

-

-
Type:
-
Asynchronous. -
-
On Entry
-
-
-
a
-
the sparse matrix to be written. -
-Type:required. -
-Specified as: a structured data of type spdatapsb_Tspmat_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. -
-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 Unix jargon) is used. Default: -. -
-
iunit
-
The Fortran file unit number. -
-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. -
-
- -

-

-
On Return
-
-
-
iret
-
Error code. -
-Type: required -
-An integer value; 0 means no error has been detected. -
-
- -

- -

- - - - diff --git a/docs/html/node121.html b/docs/html/node121.html deleted file mode 100644 index 2854dbbe..00000000 --- a/docs/html/node121.html +++ /dev/null @@ -1,117 +0,0 @@ - - - - - -mm_mat_read -- Read a sparse matrix from a file in the MatrixMarket format - - - - - - - - - - - - - - - - - - - - - -

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

- -

-
-\begin{lstlisting}
-call mm_mat_read(a, iret, iunit, filename)
-\end{lstlisting} -
- -

-

-
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_Tspmat_type. -
-
iret
-
Error code. -
-Type: required -
-An integer value; 0 means no error has been detected. -
-
- -

-


- - - diff --git a/docs/html/node122.html b/docs/html/node122.html deleted file mode 100644 index 5a57cd34..00000000 --- a/docs/html/node122.html +++ /dev/null @@ -1,119 +0,0 @@ - - - - - -mm_array_read -- Read a dense array from a file in the MatrixMarket format - - - - - - - - - - - - - - - - - - - - - -

-mm_array_read -- Read a dense array from a - file in the MatrixMarket format -

- -

-
-\begin{lstlisting}
-call mm_array_read(b, iret, iunit, filename)
-\end{lstlisting} -
- -

-

-
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
-
-
-
b
-
Rigth hand side(s). -
-Type: required -
-An array of type real or complex, rank 1 or 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. -
-Type: required -
-An integer value; 0 means no error has been detected. -
-
- -

-


- - - diff --git a/docs/html/node123.html b/docs/html/node123.html deleted file mode 100644 index 4dd5f34e..00000000 --- a/docs/html/node123.html +++ /dev/null @@ -1,123 +0,0 @@ - - - - - -mm_mat_write -- Write a sparse matrix to a file in the MatrixMarket format - - - - - - - - - - - - - - - - - - - - - -

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

- -

-
-\begin{lstlisting}
-call mm_mat_write(a, mtitle, iret, iunit, filename)
-\end{lstlisting} -
-

-
Type:
-
Asynchronous. -
-
On Entry
-
-
-
a
-
the sparse matrix to be written. -
-Type:required. -
-Specified as: a structured data of type spdatapsb_Tspmat_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 written to. -
-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 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
-
-
-
iret
-
Error code. -
-Type: required -
-An integer value; 0 means no error has been detected. -
-
- -

-


- - - diff --git a/docs/html/node124.html b/docs/html/node124.html deleted file mode 100644 index e7e3f85f..00000000 --- a/docs/html/node124.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -mm_array_write -- Write a dense array from a file in the MatrixMarket format - - - - - - - - - - - - - - - - - - - - -

-mm_array_write -- Write a dense array from a - file in the MatrixMarket format -

- -

-
-\begin{lstlisting}
-call mm_array_write(b, iret, iunit, filename)
-\end{lstlisting} -
- -

-

-
Type:
-
Asynchronous. -
-
On Entry
-
-
-
b
-
Rigth hand side(s). -
-Type: required -
-An array of type real or complex, rank 1 or 2; will be written..
-
filename
-
The name of the file to be written. -
-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
-
-
-
iret
-
Error code. -
-Type: required -
-An integer value; 0 means no error has been detected. -
-
- -

-


- - - diff --git a/docs/html/node125.html b/docs/html/node125.html deleted file mode 100644 index 0b67b710..00000000 --- a/docs/html/node125.html +++ /dev/null @@ -1,98 +0,0 @@ - - - - - -Preconditioner routines - - - - - - - - - - - - - - - - - - - - - -

- -
-Preconditioner routines -

- -

-The base PSBLAS library contains the implementation of two simple -preconditioning techniques: - -

    -
  • Diagonal Scaling -
  • -
  • Block Jacobi with ILU(0) factorization -
  • -
-The supporting data type and subroutine interfaces are defined in the -module psb_prec_mod. -The old interfaces psb_precinit and psb_precbld are still supported for -backward compatibility - -

-


- -Subsections - - - -

- - - diff --git a/docs/html/node126.html b/docs/html/node126.html deleted file mode 100644 index aa0d47e7..00000000 --- a/docs/html/node126.html +++ /dev/null @@ -1,150 +0,0 @@ - - - - - -init -- Initialize a preconditioner - - - - - - - - - - - - - - - - - - - - - -

-init -- Initialize a preconditioner -

- -

-

-call prec%init(icontxt,ptype, info)
-
- -

-

-
Type:
-
Asynchronous. -
-
On Entry
-
-
-
icontxt
-
the communication context. -
-Scope:global. -
-Type:required. -
-Intent: in. -
-Specified as: an integer value. -
-
ptype
-
the type of preconditioner. -Scope: global -
-Type: required -
-Intent: in. -
-Specified as: a character string, see usage notes. -
-
On Exit
-

-

-
prec
-
Scope: local -
-Type: required -
-Intent: inout. -
-Specified as: a preconditioner data structure precdatapsb_prec_type. -
-
info
-
Scope: global -
-Type: required -
-Intent: out. -
-Error code: if no error, 0 is returned. -
-
-Notes -Legal inputs to this subroutine are interpreted depending on the -$ptype$ string as follows4: -
-
NONE
-
No preconditioning, i.e. the preconditioner is just a copy - operator. -
-
DIAG
-
Diagonal scaling; each entry of the input vector is - multiplied by the reciprocal of the sum of the absolute values of - the coefficients in the corresponding row of matrix $A$; -
-
BJAC
-
Precondition by a factorization of the - block-diagonal of matrix $A$, where block boundaries are determined - by the data allocation boundaries for each process; requires no - communication. Only the incomplete factorization $ILU(0)$ is - currently implemented. -
-
- -

-


- - - diff --git a/docs/html/node127.html b/docs/html/node127.html deleted file mode 100644 index e6a55901..00000000 --- a/docs/html/node127.html +++ /dev/null @@ -1,194 +0,0 @@ - - - - - -build -- Builds a preconditioner - - - - - - - - - - - - - - - - - - - - - -

-build -- Builds a preconditioner -

- -

-

-call prec%build(a, desc_a, info[,amold,vmold,imold])
-
- -

-

-
Type:
-
Synchronous. -
-
On Entry
-
-
-
a
-
the system sparse matrix. -Scope: local -
-Type: required -
-Intent: in, target. -
-Specified as: a sparse matrix data structure spdatapsb_Tspmat_type. -
-
prec
-
the preconditioner. -
-Scope: local -
-Type: required -
-Intent: inout. -
-Specified as: an already initialized precondtioner data structure precdatapsb_prec_type -
-
desc_a
-
the problem communication descriptor. -Scope: local -
-Type: required -
-Intent: in, target. -
-Specified as: a communication descriptor data structure descdatapsb_desc_type. -
-
amold
-
The desired dynamic type for the internal matrix storage. -
-Scope: local. -
-Type: optional. -
-Intent: in. -
-Specified as: an object of a class derived from spbasedatapsb_T_base_sparse_mat. -
-
vmold
-
The desired dynamic type for the internal vector storage. -
-Scope: local. -
-Type: optional. -
-Intent: in. -
-Specified as: an object of a class derived from vbasedatapsb_T_base_vect_type. -
-
imold
-
The desired dynamic type for the internal integer vector storage. -
-Scope: local. -
-Type: optional. -
-Intent: in. -
-Specified as: an object of a class derived from (integer) vbasedatapsb_T_base_vect_type. -
-
- -

-

-
On Return
-
-
-
prec
-
the preconditioner. -
-Scope: local -
-Type: required -
-Intent: inout. -
-Specified as: a precondtioner data structure precdatapsb_prec_type -
-
info
-
Error code. -
-Scope: local -
-Type: required -
-Intent: out. -
-An integer value; 0 means no error has been detected. -
-
-The amold, vmold and imold arguments may be -employed to interface with special devices, such as GPUs and other -accelerators. - -

- -

- - - - diff --git a/docs/html/node128.html b/docs/html/node128.html deleted file mode 100644 index d6071c08..00000000 --- a/docs/html/node128.html +++ /dev/null @@ -1,153 +0,0 @@ - - - - - -apply -- Preconditioner application routine - - - - - - - - - - - - - - - - - - - - - -

-apply -- Preconditioner application - routine -

- -

-

-call prec%apply(x,y,desc_a,info,trans,work)
-call prec%apply(x,desc_a,info,trans)
-
- -

-

-
Type:
-
Synchronous. -
-
On Entry
-
-
-
prec
-
the preconditioner. -Scope: local -
-Type: required -
-Intent: in. -
-Specified as: a preconditioner data structure precdatapsb_prec_type. -
-
x
-
the source vector. -Scope: local -
-Type: required -
-Intent: inout. -
-Specified as: a rank one array or an object of type vdatapsb_T_vect_type. -
-
desc_a
-
the problem communication descriptor. -Scope: local -
-Type: required -
-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 rank one array or an object of type vdatapsb_T_vect_type. -
-
info
-
Error code. -
-Scope: local -
-Type: required -
-Intent: out. -
-An integer value; 0 means no error has been detected. -
-
- -

-


- - - diff --git a/docs/html/node129.html b/docs/html/node129.html deleted file mode 100644 index de6f38ea..00000000 --- a/docs/html/node129.html +++ /dev/null @@ -1,114 +0,0 @@ - - - - - -descr -- Prints a description of current preconditioner - - - - - - - - - - - - - - - - - - - - - -

-descr -- Prints a description of current - preconditioner -

- -

-

-call prec%descr()
-call prec%descr(iout, root)
-
- -

-

-
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: optional -
-Intent: in. -
-Specified as: an integer number. Default: default output unit. -
-
root
-
Process from which to print -Scope: local -
-Type: optional -
-Intent: in. -
-Specified as: an integer number between 0 and $np-1$, in which case -the specified process will print the description, or $-1$, in which case -all processes will print. Default: 0. -
-
- -

-


- - - diff --git a/docs/html/node13.html b/docs/html/node13.html deleted file mode 100644 index 0fdc4242..00000000 --- a/docs/html/node13.html +++ /dev/null @@ -1,99 +0,0 @@ - - - - - -get_local_cols -- Get number of local cols - - - - - - - - - - - - - - - - - - - - - -

-get_local_cols -- Get number of local cols -

- -

-

-nc = desc%get_local_cols()
-
- -

-

-
Type:
-
Asynchronous. -
-
On Entry
-
-
-
desc
-
the communication descriptor. -
-Scope: local. -
-
- -

-

-
On Return
-
-
-
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. -
-
- -

-


- - - diff --git a/docs/html/node130.html b/docs/html/node130.html deleted file mode 100644 index 8cad168c..00000000 --- a/docs/html/node130.html +++ /dev/null @@ -1,92 +0,0 @@ - - - - - -clone -- clone current preconditioner - - - - - - - - - - - - - - - - - - - - - -

-clone -- clone current - preconditioner -

- -
-call  prec%clone(precout,info)
-
- -

-

-
Type:
-
Asynchronous. -
-
On Entry
-
-
-
prec
-
the preconditioner. -
-Scope: local. -
-
- -

-

-
On Return
-
-
-
precout
-
A copy of the input object. -
-
info
-
Return code. -
-
- -

-


- - - diff --git a/docs/html/node131.html b/docs/html/node131.html deleted file mode 100644 index 2c00d6de..00000000 --- a/docs/html/node131.html +++ /dev/null @@ -1,107 +0,0 @@ - - - - - -free -- Free a preconditioner - - - - - - - - - - - - - - - - - - - - -

-free -- Free a preconditioner -

- -

-

-call prec%free(info)
-
- -

-

-
Type:
-
Asynchronous. -
-
On Entry
-
-
-
prec
-
the preconditioner. -
-Scope: local. -
-Type: required -
-Intent: inout. -
-Specified as: a preconditioner data structure precdatapsb_prec_type. -
-
On Exit
-

-

-
prec
-
Scope: local -
-Type: required -
-Intent: inout. -
-Specified as: a preconditioner data structure precdatapsb_prec_type. -
-
info
-
Scope: global -
-Type: required -
-Intent: out. -
-Error code: if no error, 0 is returned. -
-
-Notes -Releases all internal storage. - -

-


- - - diff --git a/docs/html/node132.html b/docs/html/node132.html deleted file mode 100644 index 9c42bbe2..00000000 --- a/docs/html/node132.html +++ /dev/null @@ -1,76 +0,0 @@ - - - - - -Iterative Methods - - - - - - - - - - - - - - - - - - - - - -

- -
-Iterative Methods -

- -

-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. - -

-


- -Subsections - - - -

- - - diff --git a/docs/html/node133.html b/docs/html/node133.html deleted file mode 100644 index ba43c36f..00000000 --- a/docs/html/node133.html +++ /dev/null @@ -1,440 +0,0 @@ - - - - - -psb_krylov -- Krylov Methods Driver Routine - - - - - - - - - - - - - - - - - - - - -

-
-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 can take the following values: -

-
1
-
normwise backward error in the infinity -norm; 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} -
-
-

-
-
2
-
Relative residual in the 2-norm; the iteration is stopped -when -

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

-
-
3
-
Relative residual reduction in the 2-norm; the iteration is stopped -when -

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

-
-
-The behaviour is controlled by 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. - -

-
-\begin{lstlisting}
-call psb_krylov(method,a,prec,b,x,eps,desc_a,info,&
-& itmax,iter,err,itrace,irst,istop,cond)
-\end{lstlisting} -
- -

-

-
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; - -

-

-
GCR:
-
the Generalized Conjugate Residual method; - -
-
FCG:
-
the Flexible Conjugate Gradient method5; - -

-

-
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_Tspmat_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 or an object of type vdatapsb_T_vect_type. -
-
x
-
The initial guess. -
-Scope: local -
-Type: required -
-Intent: inout. -
-Specified as: a rank one array or an object of type vdatapsb_T_vect_type. -
-
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. If $=0$ print a message in - case of convergence failure. -
-Scope: global -
-Type: optional -
-Intent: in. -
-Default: $itrace = -1$. -
-
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, 3: use the residual reduction in the 2-norm. Default: 2. -
-
On Return
-
-
-
x
-
The computed solution. -
-Scope: local -
-Type: required -
-Intent: inout. -
-Specified as: a rank one array or an object of type vdatapsb_T_vect_type. -
-
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 on real data. -
-Scope: global -
-Type: optional -
-Intent: out. -
-Returned as: a real number. A correct result will be greater than or -equal to one; if specified for non-real data, or an error occurred, -zero is returned. -
-
info
-
Error code. -
-Scope: local -
-Type: required -
-Intent: out. -
-An integer value; 0 means no error has been detected. -
-
- -

- -

- -

- -

- -

- - - - diff --git a/docs/html/node134.html b/docs/html/node134.html deleted file mode 100644 index fa6197a5..00000000 --- a/docs/html/node134.html +++ /dev/null @@ -1,180 +0,0 @@ - - - - - -Bibliography - - - - - - - - - - - - - - - - - - - - - -

-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, 38(4), 2012. -

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 -
- Gamma, E., Helm, R., Johnson, R., and Vlissides, - J. 1995. - Design Patterns: Elements of Reusable Object-Oriented Software. - Addison-Wesley. - -

-

14 -
-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. -

15 -
-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. - -

-

16 -
-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. -

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

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

-

19 -
-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. -
- -

-


- - - diff --git a/docs/html/node135.html b/docs/html/node135.html deleted file mode 100644 index 003af8ea..00000000 --- a/docs/html/node135.html +++ /dev/null @@ -1,67 +0,0 @@ - - - - - -About this document ... - - - - - - - - - - - - - - - - - - - -

-About this document ... -

-

-This document was generated using the -LaTeX2HTML translator Version 2018 (Released Feb 1, 2018) -

-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. -

-The command line arguments were:
- latex2html -local_icons -noaddress -dir ../../html userhtml.tex -

-The translation was initiated on 2019-11-20 -


- - - diff --git a/docs/html/node14.html b/docs/html/node14.html deleted file mode 100644 index df52c1c4..00000000 --- a/docs/html/node14.html +++ /dev/null @@ -1,90 +0,0 @@ - - - - - -get_global_rows -- Get number of global rows - - - - - - - - - - - - - - - - - - - - - -

-get_global_rows -- Get number of global rows -

- -

-

-nr = desc%get_global_rows()
-
- -

-

-
Type:
-
Asynchronous. -
-
On Entry
-
-
-
desc
-
the communication descriptor. -
-Scope: local. -
-
- -

-

-
On Return
-
-
-
Function value
-
The number of global rows, i.e. the size of the - global index space. -
-
- -

-


- - - diff --git a/docs/html/node15.html b/docs/html/node15.html deleted file mode 100644 index 32983a8e..00000000 --- a/docs/html/node15.html +++ /dev/null @@ -1,90 +0,0 @@ - - - - - -get_global_cols -- Get number of global cols - - - - - - - - - - - - - - - - - - - - - -

-get_global_cols -- Get number of global cols -

- -

-

-nr = desc%get_global_cols()
-
- -

-

-
Type:
-
Asynchronous. -
-
On Entry
-
-
-
desc
-
the communication descriptor. -
-Scope: local. -
-
- -

-

-
On Return
-
-
-
Function value
-
The number of global cols; usually this is equal - to the number of global rows. -
-
- -

-


- - - diff --git a/docs/html/node16.html b/docs/html/node16.html deleted file mode 100644 index d7a1001d..00000000 --- a/docs/html/node16.html +++ /dev/null @@ -1,99 +0,0 @@ - - - - - -get_global_indices -- Get vector of global indices - - - - - - - - - - - - - - - - - - - - - -

-get_global_indices -- Get vector of global indices -

- -

-

-myidx = desc%get_global_indices([owned])
-
- -

-

-
Type:
-
Asynchronous. -
-
On Entry
-
-
-
desc
-
the communication descriptor. -
-Scope: local. -
-Type: required. -
-
owned
-
Choose if you only want owned indices - (owned=.true.) or also halo indices (owned=.false.). -Scope: local. -
-Type: optional; default: .true.. -
-
- -

-

-
On Return
-
-
-
Function value
-
The global indices, returned as an allocatable - integer array of rank 1. -
-
- -

-


- - - diff --git a/docs/html/node17.html b/docs/html/node17.html deleted file mode 100644 index c432cd85..00000000 --- a/docs/html/node17.html +++ /dev/null @@ -1,89 +0,0 @@ - - - - - -get_context -- Get communication context - - - - - - - - - - - - - - - - - - - - - -

-get_context -- Get communication context -

- -

-

-ictxt = desc%get_context()
-
- -

-

-
Type:
-
Asynchronous. -
-
On Entry
-
-
-
desc
-
the communication descriptor. -
-Scope: local. -
-
- -

-

-
On Return
-
-
-
Function value
-
The communication context. -
-
- -

-


- - - diff --git a/docs/html/node18.html b/docs/html/node18.html deleted file mode 100644 index 42ebe881..00000000 --- a/docs/html/node18.html +++ /dev/null @@ -1,92 +0,0 @@ - - - - - -Clone -- clone current object - - - - - - - - - - - - - - - - - - - - - -

-Clone -- clone current object -

- -

-

-call  desc%clone(descout,info)
-
- -

-

-
Type:
-
Asynchronous. -
-
On Entry
-
-
-
desc
-
the communication descriptor. -
-Scope: local. -
-
- -

-

-
On Return
-
-
-
descout
-
A copy of the input object. -
-
info
-
Return code. -
-
- -

-


- - - diff --git a/docs/html/node19.html b/docs/html/node19.html deleted file mode 100644 index 35a0d5cb..00000000 --- a/docs/html/node19.html +++ /dev/null @@ -1,89 +0,0 @@ - - - - - -CNV -- convert internal storage format - - - - - - - - - - - - - - - - - - - - - -

-CNV -- convert internal storage format -

- -

-

-call  desc%cnv(mold)
-
- -

-

-
Type:
-
Asynchronous. -
-
On Entry
-
-
-
desc
-
the communication descriptor. -
-Scope: local. -
-
mold
-
the desred integer storage format. -
-Scope: local. -
-Specified as: a object of type derived from (integer) vbasedatapsb_T_base_vect_type. -
-
-The mold arguments may be -employed to interface with special devices, such as GPUs and other -accelerators. - -

-


- - - diff --git a/docs/html/node2.html b/docs/html/node2.html deleted file mode 100644 index 3f09ef74..00000000 --- a/docs/html/node2.html +++ /dev/null @@ -1,169 +0,0 @@ - - - - - -Introduction - - - - - - - - - - - - - - - - - - - - - -

-
-Introduction -

- -

-The PSBLAS library, developed with the aim to facilitate the -parallelization of computationally intensive scientific applications, -is designed to address parallel implementation of iterative solvers -for sparse linear systems through the distributed memory paradigm. It -includes routines for multiplying sparse matrices by dense matrices, -solving block diagonal systems with triangular diagonal entries, -preprocessing sparse matrices, and contains additional routines for -dense matrix operations. The current implementation of PSBLAS -addresses a distributed memory execution model operating with message -passing. - -

-The PSBLAS library version 3 is implemented in - the Fortran 2003 [17] programming language, with reuse and/or - adaptation of existing Fortran 77 and Fortran 95 software, plus a - handful of C routines. - -

-The use of Fortran 2003 offers a number of advantages over Fortran 95, -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 discussing advanced programming in Fortran 2003 -include [1,18]; 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.8). - -

-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. [16]. 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. - -

-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 -proposal for BLAS on dense matrices [15,5,6]. - -

-The applicability of sparse iterative solvers to many different areas -causes some terminology problems because the same concept may be -denoted through different names depending on the application area. The -PSBLAS features presented in this document will be discussed referring -to a finite difference discretization of a Partial Differential -Equation (PDE). However, the scope of the library is wider than -that: for example, it can be applied to finite element discretizations -of PDEs, and even to different classes of problems such as nonlinear -optimization, for example in optimal control problems. - -

-The design of a solver for sparse linear systems is driven by many -conflicting objectives, such as limiting occupation of storage -resources, exploiting regularities in the input data, exploiting -hardware characteristics of the parallel platform. To achieve an -optimal communication to computation ratio on distributed memory -machines it is essential to keep the data locality as high as -possible; this can be done through an appropriate data allocation -strategy. The choice of the preconditioner is another very important -factor that affects efficiency of the implemented application. Optimal -data distribution requirements for a given preconditioner may conflict -with distribution requirements of the rest of the solver. Finding the -optimal trade-off may be very difficult because it is application -dependent. Possible solutions to these problems and other important -inputs to the development of the PSBLAS software package have come from -an established experience in applying the PSBLAS solvers to -computational fluid dynamics applications. - -

- -

- - - - diff --git a/docs/html/node20.html b/docs/html/node20.html deleted file mode 100644 index 905f54a5..00000000 --- a/docs/html/node20.html +++ /dev/null @@ -1,80 +0,0 @@ - - - - - -psb_cd_get_large_threshold -- Get threshold for index mapping switch - - - - - - - - - - - - - - - - - - - - - -

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

- -

-

-ith = psb_cd_get_large_threshold()
-
- -

-

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

-

-
- -

-


- - - diff --git a/docs/html/node21.html b/docs/html/node21.html deleted file mode 100644 index 3478b03a..00000000 --- a/docs/html/node21.html +++ /dev/null @@ -1,91 +0,0 @@ - - - - - -psb_cd_set_large_threshold -- Set threshold for index mapping switch - - - - - - - - - - - - - - - - - - - - - -

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

- -

-

-call psb_cd_set_large_threshold(ith)
-
- -

-

-
Type:
-
Synchronous. -
-
On Entry
-
-
-
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. Moreover the threshold must have the same value on all -processes. - -

-


- - - diff --git a/docs/html/node22.html b/docs/html/node22.html deleted file mode 100644 index b733e044..00000000 --- a/docs/html/node22.html +++ /dev/null @@ -1,98 +0,0 @@ - - - - - -Named Constants - - - - - - - - - - - - - - - - - - - - -

- -
-Named Constants -

-
-
psb_none_
-
Generic no-op; -
-
psb_root_
-
Default root process for broadcast and scatter operations; -
-
psb_nohalo_
-
Do not fetch halo elements; -
-
psb_halo_
-
Fetch halo elements from neighbouring processes; -
-
psb_sum_
-
Sum overlapped elements -
-
psb_avg_
-
Average overlapped elements -
-
psb_comm_halo_
-
Exchange data based on the halo_index - list; -
-
psb_comm_ext_
-
Exchange data based on the ext_index - list; -
-
psb_comm_ovr_
-
Exchange data based on the ovrlap_index - list; -
-
psb_comm_mov_
-
Exchange data based on the ovr_mst_idx - list; - -

-

-
- -

-


- - - diff --git a/docs/html/node23.html b/docs/html/node23.html deleted file mode 100644 index ecc0e565..00000000 --- a/docs/html/node23.html +++ /dev/null @@ -1,216 +0,0 @@ - - - - - -Sparse Matrix class - - - - - - - - - - - - - - - - - - - - - -

- -
-Sparse Matrix class -

-The spdatapsb_Tspmat_type class -contains all information about the local portion of the sparse matrix and -its storage mode. Its design is -based on the STATE design pattern [13] as detailed -in [11]; the type declaration is shown in -figure 4 where T is a placeholder for the -data type and precision variants -
-
S
-
Single precision real; -
-
D
-
Double precision real; -
-
C
-
Single precision complex; -
-
Z
-
Double precision complex. -
-
-The actual data is contained in the polymorphic component a%a -of type spbasedatapsb_T_base_sparse_mat; its -specific layout can be chosen dynamically among the predefined types, -or an entirely new storage layout can be implemented and passed to the -library at runtime via the psb_spasb routine. - -
- - - -
Figure 4: - The PSBLAS defined data type that - contains a sparse matrix.
-
- -
-
-  type :: psb_Tspmat_type
-    class(psb_T_base_sparse_mat), allocatable  :: a 
-  end type  psb_Tspmat_type
-
-
-
-
-The following very common formats are precompiled in PSBLAS and thus -are always available: -
-
psb_T_coo_sparse_mat
-
Coordinate storage; -
-
psb_T_csr_sparse_mat
-
Compressed storage by rows; -
-
psb_T_csc_sparse_mat
-
Compressed storage by columns; -
-
-The inner 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. -
-
-The only storage variant supporting the build state is COO; all other -variants are obtained by conversion to/from it. - -

-


- -Subsections - - - - - - - - - diff --git a/docs/html/node24.html b/docs/html/node24.html deleted file mode 100644 index 660dda42..00000000 --- a/docs/html/node24.html +++ /dev/null @@ -1,59 +0,0 @@ - - - - - -Sparse Matrix Methods - - - - - - - - - - - - - - - - - - - - - -

-Sparse Matrix Methods -

- -

-


- - - diff --git a/docs/html/node25.html b/docs/html/node25.html deleted file mode 100644 index 4e11b66d..00000000 --- a/docs/html/node25.html +++ /dev/null @@ -1,89 +0,0 @@ - - - - - -get_nrows -- Get number of rows in a sparse matrix - - - - - - - - - - - - - - - - - - - - - -

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

- -

-

-nr = a%get_nrows()
-
- -

-

-
Type:
-
Asynchronous. -
-
On Entry
-
-
-
a
-
the sparse matrix -
-Scope: local -
-
- -

-

-
On Return
-
-
-
Function value
-
The number of rows of sparse matrix a. -
-
- -

-


- - - diff --git a/docs/html/node26.html b/docs/html/node26.html deleted file mode 100644 index c22ddd4c..00000000 --- a/docs/html/node26.html +++ /dev/null @@ -1,90 +0,0 @@ - - - - - -get_ncols -- Get number of columns in a sparse matrix - - - - - - - - - - - - - - - - - - - - - -

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

- -

-

-nc = a%get_ncols()
-
- -

-

-
Type:
-
Asynchronous. -
-
On Entry
-
-
-
a
-
the sparse matrix -
-Scope: local -
-
- -

-

-
On Return
-
-
-
Function value
-
The number of columns of sparse matrix a. -
-
- -

-


- - - diff --git a/docs/html/node27.html b/docs/html/node27.html deleted file mode 100644 index a7b464d0..00000000 --- a/docs/html/node27.html +++ /dev/null @@ -1,100 +0,0 @@ - - - - - -get_nnzeros -- Get number of nonzero elements in a sparse matrix - - - - - - - - - - - - - - - - - - - - - -

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

- -

-

-nz = a%get_nnzeros()
-
- -

-

-
Type:
-
Asynchronous. -
-
On Entry
-
-
-
a
-
the sparse matrix -
-Scope: local -
-
- -

-

-
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. -
- -

-


- - - diff --git a/docs/html/node28.html b/docs/html/node28.html deleted file mode 100644 index c7f4130f..00000000 --- a/docs/html/node28.html +++ /dev/null @@ -1,91 +0,0 @@ - - - - - -get_size -- Get maximum number of nonzero elements in a sparse matrix - - - - - - - - - - - - - - - - - - - - - -

-get_size -- Get maximum number of nonzero elements - in a sparse matrix -

- -

-

-maxnz = a%get_size()
-
- -

-

-
Type:
-
Asynchronous. -
-
On Entry
-
-
-
a
-
the sparse matrix -
-Scope: local -
-
- -

-

-
On Return
-
-
-
Function value
-
The maximum number of nonzero elements that can - be stored in sparse matrix a using its current memory allocation. -
-
- -

-


- - - diff --git a/docs/html/node29.html b/docs/html/node29.html deleted file mode 100644 index bd2a7410..00000000 --- a/docs/html/node29.html +++ /dev/null @@ -1,92 +0,0 @@ - - - - - -sizeof -- Get memory occupation in bytes -of a sparse matrix - - - - - - - - - - - - - - - - - - - - - -

-sizeof -- Get memory occupation in bytes -of a sparse matrix -

- -

-

-memory_size = a%sizeof()
-
- -

-

-
Type:
-
Asynchronous. -
-
On Entry
-
-
-
a
-
the sparse matrix -
-Scope: local -
-
- -

-

-
On Return
-
-
-
Function value
-
The memory occupation in bytes. -
-
- -

-


- - - diff --git a/docs/html/node3.html b/docs/html/node3.html deleted file mode 100644 index 9d55ff44..00000000 --- a/docs/html/node3.html +++ /dev/null @@ -1,196 +0,0 @@ - - - - - -General overview - - - - - - - - - - - - - - - - - - - - - -

- -
-General overview -

-The PSBLAS library is designed to handle the implementation of -iterative solvers for sparse linear systems on distributed memory -parallel computers. The system coefficient matrix $A$ must be square; -it may be real or complex, nonsymmetric, and its sparsity pattern -needs not to be symmetric. The serial computation parts are based on -the serial sparse BLAS, so that any extension made to the data -structures of the serial kernels is available to the parallel -version. The overall design and parallelization strategy have been -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 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 encapsulated -in an applicaiton layer that has been strongly inspired by the Basic -Linear Algebra Communication Subroutines (BLACS) library [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. - -

- -

- - - -
Figure 1: -PSBLAS library components hierarchy.
-
-\includegraphics[scale=0.65]{figures/psblas.eps} - -\includegraphics[scale=0.65]{figures/psblas} - -
-
- -

-The type of linear system matrices that we address typically arise in the -numerical solution of PDEs; in such a context, -it is necessary to pay special attention to the -structure of the problem from which the application originates. -The nonzero pattern of a matrix arising from the -discretization of a PDE is influenced by various factors, such as the -shape of the domain, the discretization strategy, and -the equation/unknown ordering. The matrix itself can be interpreted as -the adjacency matrix of the graph associated with the discretization -mesh. - -

-The distribution of the coefficient matrix for the linear system is -based on the “owner computes” rule: -the variable associated to each mesh point is assigned to a process -that will own the corresponding row in the coefficient matrix and -will carry out all related computations. This allocation strategy -is equivalent to a partition of the discretization mesh into 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 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 -usage of graph partitioning tools commonly available in the -literature, e.g. METIS [14]. -Dense vectors conform to sparse -matrices, that is, the entries of a vector follow the same distribution -of the matrix rows. - -

-We assume that the sparse matrix is built in parallel, where each -process generates its own portion. We never require that the entire -matrix be available on a single node. However, it is possible -to hold the entire matrix in one process and distribute it -explicitly1, even though the resulting memory -bottleneck would make this option unattractive in most cases. - -

-


- -Subsections - - - - - - - - - diff --git a/docs/html/node30.html b/docs/html/node30.html deleted file mode 100644 index abfd6eca..00000000 --- a/docs/html/node30.html +++ /dev/null @@ -1,91 +0,0 @@ - - - - - -get_fmt -- Short description of the dynamic type - - - - - - - - - - - - - - - - - - - - - -

-get_fmt -- Short description of the dynamic type -

- -

-

-write(*,*) a%get_fmt()
-
- -

-

-
Type:
-
Asynchronous. -
-
On Entry
-
-
-
a
-
the sparse matrix -
-Scope: local -
-
- -

-

-
On Return
-
-
-
Function value
-
A short string describing the dynamic type of - the matrix. Predefined values include NULL, COO, - CSR and CSC. -
-
- -

-


- - - diff --git a/docs/html/node31.html b/docs/html/node31.html deleted file mode 100644 index d12946dd..00000000 --- a/docs/html/node31.html +++ /dev/null @@ -1,92 +0,0 @@ - - - - - -is_bld, is_upd, is_asb -- Status check - - - - - - - - - - - - - - - - - - - - - -

-is_bld, is_upd, is_asb -- Status check -

- -

-

-if (a%is_bld()) then 
-if (a%is_upd()) then 
-if (a%is_asb()) then 
-
- -

-

-
Type:
-
Asynchronous. -
-
On Entry
-
-
-
a
-
the sparse matrix -
-Scope: local -
-
- -

-

-
On Return
-
-
-
Function value
-
A logical value indicating whether the - matrix is in the Build, Update or Assembled state, respectively. -
-
- -

-


- - - diff --git a/docs/html/node32.html b/docs/html/node32.html deleted file mode 100644 index e799406e..00000000 --- a/docs/html/node32.html +++ /dev/null @@ -1,96 +0,0 @@ - - - - - -is_lower, is_upper, is_triangle, is_unit -- Format check - - - - - - - - - - - - - - - - - - - - - -

-is_lower, is_upper, is_triangle, is_unit -- - Format check -

- -

-

-if (a%is_triangle()) then 
-if (a%is_upper()) then 
-if (a%is_lower()) then 
-if (a%is_unit()) then 
-
- -

-

-
Type:
-
Asynchronous. -
-
On Entry
-
-
-
a
-
the sparse matrix -
-Scope: local -
-
- -

-

-
On Return
-
-
-
Function value
-
A logical value indicating whether the - matrix is triangular; if is_triangle() returns .true. - check also if it is lower, upper and with a unit (i.e. assumed) - diagonal. -
-
- -

-


- - - diff --git a/docs/html/node33.html b/docs/html/node33.html deleted file mode 100644 index 09fdf104..00000000 --- a/docs/html/node33.html +++ /dev/null @@ -1,114 +0,0 @@ - - - - - -cscnv -- Convert to a different storage format - - - - - - - - - - - - - - - - - - - - - -

-cscnv -- Convert to a different storage format -

- -

-

-call  a%cscnv(b,info [, type, mold, dupl])
-call  a%cscnv(info [, type, mold, dupl])
-
- -

-

-
Type:
-
Asynchronous. -
-
On Entry
-
-
-
a
-
the sparse matrix. -
-A variable of type psb_Tspmat_type. -
-Scope: local. -
-
type
-
a string requesting a new format. -
-Type: optional. -
-
mold
-
a variable of class(psb_T_base_sparse_mat) requesting a new format. -
-Type: optional. -
-
dupl
-
an integer value specifing how to handle duplicates (see - Named Constants below) -
-
- -

-

-
On Return
-
-
-
b,a
-
A copy of a with a new storage format. -
-A variable of type psb_Tspmat_type. -
-
info
-
Return code. -
-
-The mold arguments may be -employed to interface with special devices, such as GPUs and other -accelerators. - -

-


- - - diff --git a/docs/html/node34.html b/docs/html/node34.html deleted file mode 100644 index c5b9402d..00000000 --- a/docs/html/node34.html +++ /dev/null @@ -1,106 +0,0 @@ - - - - - -csclip -- Reduce to a submatrix - - - - - - - - - - - - - - - - - - - - - -

-csclip -- Reduce to a submatrix -

- -
-    call a%csclip(b,info[,&
-       & imin,imax,jmin,jmax,rscale,cscale])
-
- -

-Returns the submatrix A(imin:imax,jmin:jmax), optionally -rescaling row/col indices to the range -1:imax-imin+1,1:jmax-jmin+1. -

-
Type:
-
Asynchronous. -
-
On Entry
-
-
-
a
-
the sparse matrix. -
-A variable of type psb_Tspmat_type. -
-Scope: local. -
-
imin,imax,jmin,jmax
-
Minimum and maximum row and column indices. -
-Type: optional. -
-
rscale,cscale
-
Whether to rescale row/column indices. -Type: optional. -
-
-
-
On Return
-
-
-
b
-
A copy of a submatrix of a. -
-A variable of type psb_Tspmat_type. -
-
info
-
Return code. -
-
- -

-


- - - diff --git a/docs/html/node35.html b/docs/html/node35.html deleted file mode 100644 index 027817f2..00000000 --- a/docs/html/node35.html +++ /dev/null @@ -1,98 +0,0 @@ - - - - - -clean_zeros -- Eliminate zero coefficients - - - - - - - - - - - - - - - - - - - - - -

-clean_zeros -- Eliminate zero coefficients -

- -
-    call a%clean_zeros(info)
-
- -

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

-

-
Type:
-
Asynchronous. -
-
On Entry
-
-
-
a
-
the sparse matrix. -
-A variable of type psb_Tspmat_type. -
-Scope: local. -
-
-
-
On Return
-
-
-
a
-
The matrix a without zero coefficients. -
-A variable of type psb_Tspmat_type. -
-
info
-
Return code. -
-
- -

-


- - - diff --git a/docs/html/node36.html b/docs/html/node36.html deleted file mode 100644 index 4768938d..00000000 --- a/docs/html/node36.html +++ /dev/null @@ -1,94 +0,0 @@ - - - - - -get_diag -- Get main diagonal - - - - - - - - - - - - - - - - - - - - - -

-get_diag -- Get main diagonal -

- -
-    call a%get_diag(d,info)
-
- -

-Returns a copy of the main diagonal. -

-
Type:
-
Asynchronous. -
-
On Entry
-
-
-
a
-
the sparse matrix. -
-A variable of type psb_Tspmat_type. -
-Scope: local. -
-
-
-
On Return
-
-
-
d
-
A copy of the main diagonal. -
-A one-dimensional array of the appropriate type. -
-
info
-
Return code. -
-
- -

-


- - - diff --git a/docs/html/node37.html b/docs/html/node37.html deleted file mode 100644 index 6cc088c9..00000000 --- a/docs/html/node37.html +++ /dev/null @@ -1,94 +0,0 @@ - - - - - -clip_diag -- Cut out main diagonal - - - - - - - - - - - - - - - - - - - - - -

-clip_diag -- Cut out main diagonal -

- -
-    call a%clip_diag(b,info)
-
- -

-Returns a copy of a without the main diagonal. -

-
Type:
-
Asynchronous. -
-
On Entry
-
-
-
a
-
the sparse matrix. -
-A variable of type psb_Tspmat_type. -
-Scope: local. -
-
-
-
On Return
-
-
-
b
-
A copy of a without the main diagonal. -
-A variable of type psb_Tspmat_type. -
-
info
-
Return code. -
-
- -

-


- - - diff --git a/docs/html/node38.html b/docs/html/node38.html deleted file mode 100644 index a718ea45..00000000 --- a/docs/html/node38.html +++ /dev/null @@ -1,117 +0,0 @@ - - - - - -tril -- Return the lower triangle - - - - - - - - - - - - - - - - - - - - - -

-tril -- Return the lower triangle -

- -
-    call a%tril(l,info[,&
-       & diag,imin,imax,jmin,jmax,rscale,cscale,u])
-
- -

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

-
Type:
-
Asynchronous. -
-
On Entry
-
-
-
a
-
the sparse matrix. -
-A variable of type psb_Tspmat_type. -
-Scope: local. -
-
diag
-
Include diagonals up to this one; diag=1 means the - first superdiagonal, diag=-1 means the first subdiagonal. -Default 0. -
-
imin,imax,jmin,jmax
-
Minimum and maximum row and column indices. -
-Type: optional. -
-
rscale,cscale
-
Whether to rescale row/column indices. -Type: optional. -
-
-
-
On Return
-
-
-
l
-
A copy of the lower triangle of a. -
-A variable of type psb_Tspmat_type. -
-
u
-
(optional) A copy of the upper triangle of a. -
-A variable of type psb_Tspmat_type. -
-
info
-
Return code. -
-
- -

-


- - - diff --git a/docs/html/node39.html b/docs/html/node39.html deleted file mode 100644 index 685de000..00000000 --- a/docs/html/node39.html +++ /dev/null @@ -1,117 +0,0 @@ - - - - - -triu -- Return the upper triangle - - - - - - - - - - - - - - - - - - - - - -

-triu -- Return the upper triangle -

- -
-    call a%triu(u,info[,&
-       & diag,imin,imax,jmin,jmax,rscale,cscale,l])
-
- -

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

-
Type:
-
Asynchronous. -
-
On Entry
-
-
-
a
-
the sparse matrix. -
-A variable of type psb_Tspmat_type. -
-Scope: local. -
-
diag
-
Include diagonals up to this one; diag=1 means the - first superdiagonal, diag=-1 means the first subdiagonal. -Default 0. -
-
imin,imax,jmin,jmax
-
Minimum and maximum row and column indices. -
-Type: optional. -
-
rscale,cscale
-
Whether to rescale row/column indices. -Type: optional. -
-
-
-
On Return
-
-
-
u
-
A copy of the upper triangle of a. -
-A variable of type psb_Tspmat_type. -
-
l
-
(optional) A copy of the lower triangle of a. -
-A variable of type psb_Tspmat_type. -
-
info
-
Return code. -
-
- -

-


- - - diff --git a/docs/html/node4.html b/docs/html/node4.html deleted file mode 100644 index 1fd13393..00000000 --- a/docs/html/node4.html +++ /dev/null @@ -1,222 +0,0 @@ - - - - - -Basic Nomenclature - - - - - - - - - - - - - - - - - - - - - -

-Basic Nomenclature -

- -

-Our computational model implies that the data allocation on the -parallel distributed memory machine is guided by the structure of the -physical model, and specifically by the discretization mesh of the -PDE. - -

-Each point of the discretization mesh will have (at least) one -associated equation/variable, and therefore one index. We say that -point $i$ depends on point $j$ if the equation for a -variable associated with $i$ contains a term in $j$, or equivalently -if $a_{ij} \ne0$. -After the partition of the discretization mesh into sub-domains -assigned to the parallel processes, -we classify the points of a given sub-domain as following. -

-
Internal.
-
An internal point of - a given domain depends only on points of the -same domain. -If all points of a domain are assigned to one -process, then a computational step (e.g., a -matrix-vector product) of the -equations associated with the internal points requires no data -items from other domains and no communications. - -

-

-
Boundary.
-
A point of -a given domain is a boundary point if it depends on points -belonging to other domains. - -

-

-
Halo.
-
A halo point for a given domain is a point belonging to -another domain such that there is a boundary point which depends -on it. Whenever performing a computational step, such as a -matrix-vector product, the values associated with halo points are -requested from other domains. A boundary point of a given -domain is usually a halo point for some other domain2; therefore -the cardinality of the boundary points set denotes the amount of data - sent to other domains. -
-
Overlap.
-
An overlap point is a boundary point assigned to -multiple domains. Any operation that involves an overlap point -has to be replicated for each assignment. -
-
-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]. - -

-We denote the sets of internal, boundary and halo points for a given -subdomain by $\cal I$, $\cal B$ and $\cal H$. -Each subdomain is assigned to one process; each process usually -owns one subdomain, although the user may choose to assign more than -one subdomain to a process. If each process $i$ owns one -subdomain, the number of rows in the local sparse matrix is - -$\vert{\cal I}_i\vert + \vert{\cal B}_i\vert$, and the number of local columns -(i.e. those for which there exists at least one non-zero entry in the -local rows) is -$\vert{\cal I}_i\vert + \vert{\cal B}_i\vert +\vert{\cal H}_i\vert$. - -

- -

- - - -
Figure 2: -Point classfication.
-
-\includegraphics[scale=0.65]{figures/points.eps} - -\rotatebox{-90}{\includegraphics[scale=0.65]{figures/points}} - -
-
- -

-This classification of mesh points guides the naming scheme that we -adopted in the library internals and in the data structures. We -explicitly note that “Halo” points are also often called “ghost” -points in the literature. - -

- -

- - - - diff --git a/docs/html/node40.html b/docs/html/node40.html deleted file mode 100644 index 33021ee9..00000000 --- a/docs/html/node40.html +++ /dev/null @@ -1,80 +0,0 @@ - - - - - -psb_set_mat_default -- Set default storage format - - - - - - - - - - - - - - - - - - - - - -

-psb_set_mat_default -- Set default storage format -

- -

-

-call  psb_set_mat_default(a)
-
- -

-

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

-


- - - diff --git a/docs/html/node41.html b/docs/html/node41.html deleted file mode 100644 index b76f447c..00000000 --- a/docs/html/node41.html +++ /dev/null @@ -1,92 +0,0 @@ - - - - - -clone -- Clone current object - - - - - - - - - - - - - - - - - - - - - -

-clone -- Clone current object -

- -

-

-call  a%clone(b,info)
-
- -

-

-
Type:
-
Asynchronous. -
-
On Entry
-
-
-
a
-
the sparse matrix. -
-Scope: local. -
-
- -

-

-
On Return
-
-
-
b
-
A copy of the input object. -
-
info
-
Return code. -
-
- -

-


- - - diff --git a/docs/html/node42.html b/docs/html/node42.html deleted file mode 100644 index 0810e2ec..00000000 --- a/docs/html/node42.html +++ /dev/null @@ -1,82 +0,0 @@ - - - - - -Named Constants - - - - - - - - - - - - - - - - - - - - -

- -
-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). -
-
- -

-


- - - diff --git a/docs/html/node43.html b/docs/html/node43.html deleted file mode 100644 index 74f930ba..00000000 --- a/docs/html/node43.html +++ /dev/null @@ -1,164 +0,0 @@ - - - - - -Dense Vector Data Structure - - - - - - - - - - - - - - - - - - - - - -

- -
-Dense Vector Data Structure -

-The vdatapsb_T_vect_type data structure -encapsulates the dense vectors in a way similar to sparse matrices, -i.e. including a base type vbasedata psb_T_base_vect_type. -The user will not, in general, access the vector components directly, -but rather via the routines of sec. 6. Among other -simple things, we define here an extraction method that can be used to -get a full copy of the part of the vector stored on the local -process. - -

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

-
I
-
Integer; -
-
S
-
Single precision real; -
-
D
-
Double precision real; -
-
C
-
Single precision complex; -
-
Z
-
Double precision complex. -
-
-The actual data is contained in the polymorphic component v%v; -the separation between the application and the actual data is -essential for cases where it is necessary to link to data storage made -available elsewhere outside the direct control of the -compiler/application, e.g. data stored in a graphics accelerator's -private memory. - -
- - - -
Figure 5: - The PSBLAS defined data type that - contains a dense vector.
-
- -
-
-  type psb_T_base_vect_type
-    TYPE(KIND_), allocatable :: v(:)
-  end type psb_T_base_vect_type
-
-  type psb_T_vect_type
-    class(psb_T_base_vect_type), allocatable :: v 
-  end type  psb_T_vect_type
-
-
-
-
- -

-


- -Subsections - - - - - - - - - diff --git a/docs/html/node44.html b/docs/html/node44.html deleted file mode 100644 index d7ea4154..00000000 --- a/docs/html/node44.html +++ /dev/null @@ -1,57 +0,0 @@ - - - - - -Vector Methods - - - - - - - - - - - - - - - - - - - - - -

-Vector Methods -

-

- - - diff --git a/docs/html/node45.html b/docs/html/node45.html deleted file mode 100644 index 967d15c6..00000000 --- a/docs/html/node45.html +++ /dev/null @@ -1,89 +0,0 @@ - - - - - -get_nrows -- Get number of rows in a dense vector - - - - - - - - - - - - - - - - - - - - - -

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

- -

-

-nr = v%get_nrows()
-
- -

-

-
Type:
-
Asynchronous. -
-
On Entry
-
-
-
v
-
the dense vector -
-Scope: local -
-
- -

-

-
On Return
-
-
-
Function value
-
The number of rows of dense vector v. -
-
- -

-


- - - diff --git a/docs/html/node46.html b/docs/html/node46.html deleted file mode 100644 index 85e38867..00000000 --- a/docs/html/node46.html +++ /dev/null @@ -1,92 +0,0 @@ - - - - - -sizeof -- Get memory occupation in bytes -of a dense vector - - - - - - - - - - - - - - - - - - - - - -

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

- -

-

-memory_size = v%sizeof()
-
- -

-

-
Type:
-
Asynchronous. -
-
On Entry
-
-
-
v
-
the dense vector -
-Scope: local -
-
- -

-

-
On Return
-
-
-
Function value
-
The memory occupation in bytes. -
-
- -

-


- - - diff --git a/docs/html/node47.html b/docs/html/node47.html deleted file mode 100644 index b14e02f9..00000000 --- a/docs/html/node47.html +++ /dev/null @@ -1,134 +0,0 @@ - - - - - -set -- Set contents of the vector - - - - - - - - - - - - - - - - - - - - - -

-set -- Set contents of the vector -

- -

-

- call  v%set(alpha[,first,last])
- call  v%set(vect[,first,last])
- call  v%zero()
-
- -

-

-
Type:
-
Asynchronous. -
-
On Entry
-
-
-
v
-
the dense vector -
-Scope: local -
-
alpha
-
A scalar value. -
-Scope: local -
-Type: required -
-Intent: in. -
-Specified as: a number of the data -type indicated in Table 1. - -

-

-
first,last
-
Boundaries for setting in the vector. -
-Scope: local -
-Type: optional -
-Intent: in. -
-Specified - as: integers. -
-
vect
-
An array -
-Scope: local -
-Type: required -
-Intent: in. -
-Specified as: a number of the data -type indicated in Table 1. -
-
-Note that a call to v%zero() is provided as a shorthand, but -is equivalent to a call to v%set(zero) with the zero -constant having the appropriate type and kind. - -

-

-
On Return
-
-
-
v
-
the dense vector, with updated entries -
-Scope: local -
-
- -

-


- - - diff --git a/docs/html/node48.html b/docs/html/node48.html deleted file mode 100644 index e8c5cf98..00000000 --- a/docs/html/node48.html +++ /dev/null @@ -1,111 +0,0 @@ - - - - - -get_vect -- Get a copy of the vector contents - - - - - - - - - - - - - - - - - - - - - -

-get_vect -- Get a copy of the vector contents -

- -

-

-extv = v%get_vect([n])
-
- -

-

-
Type:
-
Asynchronous. -
-
On Entry
-
-
-
v
-
the dense vector -
-Scope: local -
-
n
-
Size to be returned -
-Scope: local. -
-Type: optional; default: entire vector. -
-

-

-
- -

-

-
On Return
-
-
-
Function value
-
An allocatable array holding a copy of the dense - vector contents. If the argument $n$ is specified, the size of the - returned array equals the minimum between $n$ and the internal size - of the vector, or 0 if $n$ is negative; otherwise, the size of the - array is the same as the internal size of the vector. -
-
- -

-


- - - diff --git a/docs/html/node49.html b/docs/html/node49.html deleted file mode 100644 index 08d0b52c..00000000 --- a/docs/html/node49.html +++ /dev/null @@ -1,90 +0,0 @@ - - - - - -clone -- Clone current object - - - - - - - - - - - - - - - - - - - - -

-clone -- Clone current object -

- -
-call  x%clone(y,info)
-
- -

-

-
Type:
-
Asynchronous. -
-
On Entry
-
-
-
x
-
the dense vector. -
-Scope: local. -
-
- -

-

-
On Return
-
-
-
y
-
A copy of the input object. -
-
info
-
Return code. -
-
- -

-


- - - diff --git a/docs/html/node5.html b/docs/html/node5.html deleted file mode 100644 index a2f0e2b8..00000000 --- a/docs/html/node5.html +++ /dev/null @@ -1,194 +0,0 @@ - - - - - -Library contents - - - - - - - - - - - - - - - - - - - - - -

-Library contents -

- -

-The PSBLAS library consists of various classes of subroutines: -

-
Computational routines
-
comprising: - -
    -
  • Sparse matrix by dense matrix product; -
  • -
  • Sparse triangular -systems solution for block diagonal matrices; -
  • -
  • Vector and matrix norms; -
  • -
  • Dense matrix sums; -
  • -
  • Dot products. -
  • -
-
-
Communication routines
-
handling halo and overlap - communications; -
-
Data management and auxiliary routines
-
including: - -
    -
  • Parallel environment management -
  • -
  • Communication descriptors allocation; -
  • -
  • Dense and sparse matrix allocation; -
  • -
  • Dense and sparse matrix build and update; -
  • -
  • Sparse matrix and data distribution preprocessing. -
  • -
-
-
Preconditioner routines
-
-
-
Iterative methods
-
a subset of Krylov subspace iterative - methods -
-
-The following naming scheme has been adopted for all the symbols -internally defined in the PSBLAS software package: - -
    -
  • all symbols (i.e. subroutine names, data types...) are - prefixed by psb_ -
  • -
  • all data type names are suffixed by _type -
  • -
  • all constants are suffixed by _ -
  • -
  • all top-level subroutine names follow the rule psb_xxname where - xx can be either: - -
      -
    • ge: the routine is related to dense data, -
    • -
    • sp: the routine is related to sparse data, -
    • -
    • cd: the routine is related to communication descriptor - (see 3). - -
    • -
    - For example the psb_geins, psb_spins and - 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 - names for both real and complex data. -
  • -
-In the description of the subroutines, arguments or argument entries -are classified as: -
-
global
-
For input arguments, the value must be the same on all processes - participating in the subroutine call; for output arguments the value - is guaranteed to be the same. -
-
local
-
Each process has its own value(s) independently. -
-
-To finish our general description, we define a version string with the -constant -

-
- - -\begin{displaymath}\verb\vert psb_version_string_\vert\end{displaymath} -
-
-

-whose current value is 3.4.0 - -

- -

- - - - diff --git a/docs/html/node50.html b/docs/html/node50.html deleted file mode 100644 index 3b2fcc2e..00000000 --- a/docs/html/node50.html +++ /dev/null @@ -1,88 +0,0 @@ - - - - - -Preconditioner data structure - - - - - - - - - - - - - - - - - - - - - -

- -
-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 6. The psb_prec_type -data type may contain a simple preconditioning matrix with the -associated communication descriptor.The internal preconditioner is allocated appropriately with the -dynamic type corresponding to the desired preconditioner. - -

- - - -
Figure 6: -The PSBLAS defined data type that contains a preconditioner.
-
- -
-
-  type psb_Tprec_type
-    class(psb_T_base_prec_type), allocatable :: prec
-  end type psb_Tprec_type
-
-
-
- -

-


- - - diff --git a/docs/html/node51.html b/docs/html/node51.html deleted file mode 100644 index d7f55d82..00000000 --- a/docs/html/node51.html +++ /dev/null @@ -1,97 +0,0 @@ - - - - - -Heap data structure - - - - - - - - - - - - - - - - - - - - -

-Heap data structure -

- -

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

-
psb_T_heap
-
: a heap containing elements of type T, where T - can be i,s,c,d,z for integer, real and complex data; -
-
psb_T_idx_heap
-
: a heap containing elements of type T, as - above, together with an integer index. -
-
-Given a heap object, the following methods are defined on it: -
-
init
-
Initialize memory; also choose ascending or descending - order; -
-
howmany
-
Current heap occupancy; -
-
insert
-
Add an item (or an item and its index); -
-
get_first
-
Remove and return the first element; -
-
dump
-
Print on file; -
-
free
-
Release memory. -
-
-These objects are used in MLD2P4 to implement the factorization -algorithms. - -

-


- - - diff --git a/docs/html/node52.html b/docs/html/node52.html deleted file mode 100644 index deb3c842..00000000 --- a/docs/html/node52.html +++ /dev/null @@ -1,93 +0,0 @@ - - - - - -Computational routines - - - - - - - - - - - - - - - - - - - - - -

-Computational routines -

- -

-


- -Subsections - - - -

- - - diff --git a/docs/html/node53.html b/docs/html/node53.html deleted file mode 100644 index 6df5a187..00000000 --- a/docs/html/node53.html +++ /dev/null @@ -1,280 +0,0 @@ - - - - - -psb_geaxpby -- General Dense Matrix Sum - - - - - - - - - - - - - - - - - - - - - -

-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 or an object of type vdatapsb_T_vect_type -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 or an object of type vdatapsb_T_vect_type 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: an object of type descdatapsb_desc_type. - -

-

-
- -

-

-
On Return
-
-
-
y
-
the local portion of result submatrix $y$. -
-Scope: local -
-Type: required -
-Intent: inout. -
-Specified as: a rank one or two array or an object of type vdatapsb_T_vect_type 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. -
-
- -

- -

- - - - diff --git a/docs/html/node54.html b/docs/html/node54.html deleted file mode 100644 index 1cfefa4f..00000000 --- a/docs/html/node54.html +++ /dev/null @@ -1,317 +0,0 @@ - - - - - -psb_gedot -- Dot Product - - - - - - - - - - - - - - - - - - - - - -

-psb_gedot -- 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: -

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

-Else if $x$ and $y$ are complex vectors then it computes dot-product as: -

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

- -

-

-psb_gedot(x, y, desc_a, info [,global])
-
-

-
- - - -
Table 2: -Data types
-
- - - - - - - - - - - - - - - - -
$dot$, $x$, $y$Function
Short Precision Realpsb_gedot
Long Precision Realpsb_gedot
Short Precision Complexpsb_gedot
Long Precision Complexpsb_gedot
-
-
-

-
- -

-

-
Type:
-
Synchronous. -
-
On Entry
-
-
-
x
-
the local portion of global dense matrix -$x$. -
-Scope: local -
-Type: required -
-Intent: in. -
-Specified as: a rank one or two array or an object of type vdatapsb_T_vect_type -containing numbers of type specified in -Table 2. 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: a rank one or two array or an object of type vdatapsb_T_vect_type -containing numbers of type specified in -Table 2. 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: an object of type descdatapsb_desc_type. -
-
global
-
Specifies whether the computation should include the - global reduction across all processes. -
-Scope: global -
-Type: optional. -
-Intent: in. -
-Specified as: a logical scalar. -Default: global=.true. -
-

-

-
On Return
-
-
-
Function value
-
is the dot product of vectors $x$ and $y$. -
-Scope: global unless the optional variable -global=.false. has been specified -
-Specified as: a number of the data type indicated in Table 2. -
-
info
-
Error code. -
-Scope: local -
-Type: required -
-Intent: out. -
-An integer value; 0 means no error has been detected. -
-
- -

-Notes - -

    -
  1. The computation of a global result requires a global - communication, which entails a significant overhead. It may be - necessary and/or advisable to compute multiple dot products at the same - time; in this case, it is possible to improve the runtime efficiency - by using the following scheme: -
    -\begin{lstlisting}
-vres(1) = psb_gedot(x1,y1,desc_a,info,global=.false.)
-vres(...
-...,y3,desc_a,info,global=.false.)
-call psb_sum(ictxt,vres(1:3))
-\end{lstlisting} -
    -In this way the global communication, which for small sizes is a - latency-bound operation, is invoked only once. -
  2. -
- -

- -

- - - - diff --git a/docs/html/node55.html b/docs/html/node55.html deleted file mode 100644 index f14e7e64..00000000 --- a/docs/html/node55.html +++ /dev/null @@ -1,264 +0,0 @@ - - - - - -psb_gedots -- Generalized Dot Product - - - - - - - - - - - - - - - - - - - - - -

-psb_gedots -- Generalized Dot Product -

- -

-This subroutine computes a series of dot products among the columns of -two dense matrices $x$ and $y$: -

-
- - -\begin{displaymath}res(i) \leftarrow x(:,i)^T y(:,i)\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. - -

-

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

-
- - - -
Table 3: -Data types
-
- - - - - - - - - - - - - - - - -
$res$, $x$, $y$Subroutine
Short Precision Realpsb_gedots
Long Precision Realpsb_gedots
Short Precision Complexpsb_gedots
Long Precision Complexpsb_gedots
-
-
-

-
- -

-

-
Type:
-
Synchronous. -
-
On Entry
-
-
-
x
-
the local portion of global dense matrix -$x$. -
-Scope: local -
-Type: required -
-Intent: in. -
-Specified as: a rank one or two array or an object of type vdatapsb_T_vect_type -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: a rank one or two array or an object of type vdatapsb_T_vect_type -containing numbers of type specified in -Table 3. 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: an object of type descdatapsb_desc_type. -
-
On Return
-
-
-
res
-
is the dot product of vectors $x$ and $y$. -
-Scope: global -
-Intent: out. -
-Specified as: a number or a rank-one array of the data type indicated -in Table 2. -
-
info
-
Error code. -
-Scope: local -
-Type: required -
-Intent: out. -
-An integer value; 0 means no error has been detected. -
-
- -

- -

- - - - diff --git a/docs/html/node56.html b/docs/html/node56.html deleted file mode 100644 index d626f7f6..00000000 --- a/docs/html/node56.html +++ /dev/null @@ -1,283 +0,0 @@ - - - - - -psb_normi -- Infinity-Norm of Vector - - - - - - - - - - - - - - - - - - - - - -

-psb_normi -- Infinity-Norm of Vector -

- -

-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 the infinity-norm as: -

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

- -

-

-psb_geamax(x, desc_a, info [,global])
-psb_normi(x, desc_a, info [,global])
-
- -

-

-
- - - -
Table 4: -Data types
-
- - - - - - - - - - - - - - - - - - - - - -
$amax$$x$Function
Short Precision RealShort Precision Realpsb_geamax
Long Precision RealLong Precision Realpsb_geamax
Short Precision RealShort Precision Complexpsb_geamax
Long Precision RealLong Precision Complexpsb_geamax
-
-
-

-
- -

-

-
Type:
-
Synchronous. -
-
On Entry
-
-
-
x
-
the local portion of global dense matrix -$x$. - -
-Scope: local -
-Type: required -
-Intent: in. -
-Specified as: a rank one or two array or an object of type vdatapsb_T_vect_type -containing numbers of type specified in -Table 4. -
-
desc_a
-
contains data structures for communications. -
-Scope: local -
-Type: required -
-Intent: in. -
-Specified as: an object of type descdatapsb_desc_type. -
-
global
-
Specifies whether the computation should include the - global reduction across all processes. -
-Scope: global -
-Type: optional. -
-Intent: in. -
-Specified as: a logical scalar. -Default: global=.true. -
- -

-

-
On Return
-
-
-
Function value
-
is the infinity norm of vector $x$. -
-Scope: global unless the optional variable -global=.false. has been specified -
-Specified as: a long precision real number. -
-
info
-
Error code. -
-Scope: local -
-Type: required -
-Intent: out. -
-An integer value; 0 means no error has been detected. -
-
- -

-Notes - -

    -
  1. The computation of a global result requires a global - communication, which entails a significant overhead. It may be - necessary and/or advisable to compute multiple norms at the same - time; in this case, it is possible to improve the runtime efficiency - by using the following scheme: -
    -\begin{lstlisting}
-vres(1) = psb_geamax(x1,desc_a,info,global=.false.)
-vres(2)...
-...(x3,desc_a,info,global=.false.)
-call psb_amx(ictxt,vres(1:3))
-\end{lstlisting} -
    -In this way the global communication, which for small sizes is a - latency-bound operation, is invoked only once. -
  2. -
- -

- -

- - - - diff --git a/docs/html/node57.html b/docs/html/node57.html deleted file mode 100644 index fdd2f842..00000000 --- a/docs/html/node57.html +++ /dev/null @@ -1,216 +0,0 @@ - - - - - -psb_geamaxs -- Generalized Infinity Norm - - - - - - - - - - - - - - - - - - - - - -

-psb_geamaxs -- Generalized Infinity Norm -

- -

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

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

- -

-

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

-

-
- - - -
Table 5: -Data types
-
- - - - - - - - - - - - - - - - - - - - - -
$res$$x$Subroutine
Short Precision RealShort Precision Realpsb_geamaxs
Long Precision RealLong Precision Realpsb_geamaxs
Short Precision RealShort Precision Complexpsb_geamaxs
Long Precision RealLong Precision Complexpsb_geamaxs
-
-
-

-
- -

-

-
Type:
-
Synchronous. -
-
On Entry
-
-
-
x
-
the local portion of global dense matrix -$x$. -
-Scope: local -
-Type: required -
-Intent: in. -
-Specified as: a rank one or two array or an object of type vdatapsb_T_vect_type -containing numbers of type specified in -Table 5. -
-
desc_a
-
contains data structures for communications. -
-Scope: local -
-Type: required -
-Intent: in. -
-Specified as: an object of type descdatapsb_desc_type. -
-
On Return
-
-
-
res
-
is the infinity norm of the columns of $x$. -
-Scope: global -
-Intent: out. -
-Specified as: a number or a rank-one array of long precision real numbers. -
-
info
-
Error code. -
-Scope: local -
-Type: required -
-Intent: out. -
-An integer value; 0 means no error has been detected. -
-
- -

- -

- - - - diff --git a/docs/html/node58.html b/docs/html/node58.html deleted file mode 100644 index c4fd28f7..00000000 --- a/docs/html/node58.html +++ /dev/null @@ -1,281 +0,0 @@ - - - - - -psb_norm1 -- 1-Norm of Vector - - - - - - - - - - - - - - - - - - - - - -

-psb_norm1 -- 1-Norm of Vector -

- -

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

-
- - -\begin{displaymath}asum \leftarrow \Vert x_i\Vert\end{displaymath} -
-
-

-else if $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} -
-
-

- -

-

-psb_geasum(x, desc_a, info [,global])
-psb_norm1(x, desc_a, info [,global])
-
- -

-

-
- - - -
Table 6: -Data types
-
- - - - - - - - - - - - - - - - - - - - - -
$asum$$x$Function
Short Precision RealShort Precision Realpsb_geasum
Long Precision RealLong Precision Realpsb_geasum
Short Precision RealShort Precision Complexpsb_geasum
Long Precision RealLong Precision Complexpsb_geasum
-
-
-

-
- -

-

-
Type:
-
Synchronous. -
-
On Entry
-
-
-
x
-
the local portion of global dense matrix -$x$. - -
-Scope: local -
-Type: required -
-Intent: in. -
-Specified as: a rank one or two array or an object of type vdatapsb_T_vect_type -containing numbers of type specified in -Table 6. -
-
desc_a
-
contains data structures for communications. -
-Scope: local -
-Type: required -
-Intent: in. -
-Specified as: an object of type descdatapsb_desc_type. -
-
global
-
Specifies whether the computation should include the - global reduction across all processes. -
-Scope: global -
-Type: optional. -
-Intent: in. -
-Specified as: a logical scalar. -Default: global=.true. -
-

-

-
On Return
-
-
-
Function value
-
is the 1-norm of vector $x$. -
-Scope: global unless the optional variable -global=.false. has been specified -
-Specified as: a long precision real number. -
-
info
-
Error code. -
-Scope: local -
-Type: required -
-Intent: out. -
-An integer value; 0 means no error has been detected. -
-
- -

-Notes - -

    -
  1. The computation of a global result requires a global - communication, which entails a significant overhead. It may be - necessary and/or advisable to compute multiple norms at the same - time; in this case, it is possible to improve the runtime efficiency - by using the following scheme: -
    -\begin{lstlisting}
-vres(1) = psb_geasum(x1,desc_a,info,global=.false.)
-vres(2)...
-...(x3,desc_a,info,global=.false.)
-call psb_sum(ictxt,vres(1:3))
-\end{lstlisting} -
    -In this way the global communication, which for small sizes is a - latency-bound operation, is invoked only once. -
  2. -
- -

- -

- - - - diff --git a/docs/html/node59.html b/docs/html/node59.html deleted file mode 100644 index 4ab320ea..00000000 --- a/docs/html/node59.html +++ /dev/null @@ -1,264 +0,0 @@ - - - - - -psb_geasums -- Generalized 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 -it computes 1-norm as: -

-
- - -\begin{displaymath}res(i) \leftarrow \Vert x_i\Vert\end{displaymath} -
-
-

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

-
- - -\begin{displaymath}res(i) \leftarrow \Vert re(x)\Vert _1 + \Vert im(x)\Vert _1\end{displaymath} -
-
-

- -

-

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

-

-
- - - -
Table 7: -Data types
-
- - - - - - - - - - - - - - - - - - - - - -
$res$$x$Subroutine
Short Precision RealShort Precision Realpsb_geasums
Long Precision RealLong Precision Realpsb_geasums
Short Precision RealShort Precision Complexpsb_geasums
Long Precision RealLong Precision Complexpsb_geasums
-
-
-

-
- -

-

-
Type:
-
Synchronous. -
-
On Entry
-
-
-
x
-
the local portion of global dense matrix -$x$. - -
-Scope: local -
-Type: required -
-Intent: in. -
-Specified as: a rank one or two array or an object of type vdatapsb_T_vect_type -containing numbers of type specified in -Table 7. -
-
desc_a
-
contains data structures for communications. -
-Scope: local -
-Type: required -
-Intent: in. -
-Specified as: an object of type descdatapsb_desc_type. - -

-

-
On Return
-
-
-
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
-
Error code. -
-Scope: local -
-Type: required -
-Intent: out. -
-An integer value; 0 means no error has been detected. -
-
- -

- -

- - - - diff --git a/docs/html/node6.html b/docs/html/node6.html deleted file mode 100644 index 91707813..00000000 --- a/docs/html/node6.html +++ /dev/null @@ -1,281 +0,0 @@ - - - - - -Application structure - - - - - - - - - - - - - - - - - - - - - -

- -
-Application structure -

- -

-The main underlying principle of the PSBLAS library is that the -library objects are created and exist with reference to a discretized -space to which there corresponds an index space and a matrix sparsity -pattern. As an example, consider a cell-centered finite-volume -discretization of the Navier-Stokes equations on a simulation domain; -the index space $1\dots n$ is isomorphic to the set of cell centers, -whereas the pattern of the associated linear system matrix is -isomorphic to the adjacency graph imposed on the discretization mesh -by the discretization stencil. - -

-Thus the first order of business is to establish an index space, and -this is done with a call to psb_cdall in which we specify the -size of the index space $n$ and the allocation of the elements of the -index space to the various processes making up the MPI (virtual) -parallel machine. - -

-The index space is partitioned among processes, and this creates a -mapping from the “global” numbering $1\dots n$ to a numbering -“local” to each process; each process $i$ will own a certain subset - -$1\dots n_{\hbox{row}_i}$, each element of which corresponds to a certain -element of $1\dots n$. The user does not set explicitly this mapping; -when the application needs to indicate to which element of the index -space a certain item is related, such as the row and column index of a -matrix coefficient, it does so in the “global” numbering, and the -library will translate into the appropriate “local” numbering. - -

-For a given index space $1\dots n$ there are many possible associated -topologies, i.e. many different discretization stencils; thus the -description of the index space is not completed until the user has -defined a sparsity pattern, either explicitly through psb_cdins -or implicitly through psb_spins. The descriptor is finalized -with a call to psb_cdasb and a sparse matrix with a call to -psb_spasb. After psb_cdasb each process $i$ will have -defined a set of “halo” (or “ghost”) indices - -$n_{\hbox{row}_i}+1\dots n_{\hbox{col}_i}$, denoting elements of the index -space that are not assigned to process $i$; however the -variables associated with them are needed to complete computations -associated with the sparse matrix $A$, and thus they have to be -fetched from (neighbouring) processes. The descriptor of the index -space is built exactly for the purpose of properly sequencing the -communication steps required to achieve this objective. - -

-A simple application structure will walk through the index space -allocation, matrix/vector creation and linear system solution as -follows: - -

    -
  1. Initialize parallel environment with psb_init -
  2. -
  3. Initialize index space with psb_cdall -
  4. -
  5. Allocate sparse matrix and dense vectors with psb_spall - and psb_geall -
  6. -
  7. Loop over all local rows, generate matrix and vector entries, - and insert them with psb_spins and psb_geins -
  8. -
  9. Assemble the various entities: - -
      -
    1. psb_cdasb -
    2. -
    3. psb_spasb -
    4. -
    5. psb_geasb -
    6. -
    -
  10. -
  11. Choose the preconditioner to be used with prec%init and - build it with prec%build3. -
  12. -
  13. Call the iterative method of choice, e.g. psb_bicgstab -
  14. -
-This is the structure of the sample programs in the directory -test/pargen/. - -

-For a simulation in which the same discretization mesh is used over -multiple time steps, the following structure may be more appropriate: - -

    -
  1. Initialize parallel environment with psb_init -
  2. -
  3. Initialize index space with psb_cdall -
  4. -
  5. Loop over the topology of the discretization mesh and build the - descriptor with psb_cdins -
  6. -
  7. Assemble the descriptor with psb_cdasb -
  8. -
  9. Allocate the sparse matrices and dense vectors with - psb_spall and psb_geall -
  10. -
  11. Loop over the time steps: - -
      -
    1. If after first time step, - reinitialize the sparse matrix with psb_sprn; also zero out - the dense vectors; -
    2. -
    3. Loop over the mesh, generate the coefficients and insert/update - them with psb_spins and psb_geins -
    4. -
    5. Assemble with psb_spasb and psb_geasb -
    6. -
    7. Choose and build preconditioner with prec%init and - prec%build -
    8. -
    9. Call the iterative method of choice, e.g. psb_bicgstab - -
    10. -
    -
  12. -
-The insertion routines will be called as many times as needed; -they only need to be called on the data that is actually -allocated to the current process, i.e. each process generates its own -data. - -

-In principle there is no specific order in the calls to -psb_spins, nor is there a requirement to build a matrix row in -its entirety before calling the routine; this allows the application -programmer to walk through the discretization mesh element by element, -generating the main part of a given matrix row but also contributions -to the rows corresponding to neighbouring elements. - -

-From a functional point of view it is even possible to execute one -call for each nonzero coefficient; however this would have a -substantial computational overhead. It is therefore advisable to pack -a certain amount of data into each call to the insertion routine, say -touching on a few tens of rows; the best performng value would depend -on both the architecture of the computer being used and on the problem -structure. -At the opposite extreme, it would be possible to generate the entire -part of a coefficient matrix residing on a process and pass it in a -single call to psb_spins; this, however, would entail a -doubling of memory occupation, and thus would be almost always far -from optimal. - -

-


- -Subsections - - - - - - - - - diff --git a/docs/html/node60.html b/docs/html/node60.html deleted file mode 100644 index f663ca4c..00000000 --- a/docs/html/node60.html +++ /dev/null @@ -1,283 +0,0 @@ - - - - - -psb_norm2 -- 2-Norm of Vector - - - - - - - - - - - - - - - - - - - - - -

-psb_norm2 -- 2-Norm of Vector -

- -

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

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

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

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

- -

-

-
- - - -
Table 8: -Data types
-
- - - - - - - - - - - - - - - - - - - - - -
$nrm2$$x$Function
Short Precision RealShort Precision Realpsb_genrm2
Long Precision RealLong Precision Realpsb_genrm2
Short Precision RealShort Precision Complexpsb_genrm2
Long Precision RealLong Precision Complexpsb_genrm2
-
-
-

-
- -

-

-psb_genrm2(x, desc_a, info [,global])
-psb_norm2(x, desc_a, info [,global])
-
- -

-

-
Type:
-
Synchronous. -
-
On Entry
-
-
-
x
-
the local portion of global dense matrix -$x$. -
-Scope: local -
-Type: required -
-Intent: in. -
-Specified as: a rank one or two array or an object of type vdatapsb_T_vect_type -containing numbers of type specified in -Table 8. -
-
desc_a
-
contains data structures for communications. -
-Scope: local -
-Type: required -
-Intent: in. -
-Specified as: an object of type descdatapsb_desc_type. -
-
global
-
Specifies whether the computation should include the - global reduction across all processes. -
-Scope: global -
-Type: optional. -
-Intent: in. -
-Specified as: a logical scalar. -Default: global=.true. -
- -

-

-
On Return
-
-
-
Function Value
-
is the 2-norm of vector $x$. -
-Scope: global unless the optional variable -global=.false. has been specified -
-Type: required -
-Specified as: a long precision real number. -
-
info
-
Error code. -
-Scope: local -
-Type: required -
-Intent: out. -
-An integer value; 0 means no error has been detected. -
-
- -

-Notes - -

    -
  1. The computation of a global result requires a global - communication, which entails a significant overhead. It may be - necessary and/or advisable to compute multiple norms at the same - time; in this case, it is possible to improve the runtime efficiency - by using the following scheme: -
    -\begin{lstlisting}
-vres(1) = psb_genrm2(x1,desc_a,info,global=.false.)
-vres(2)...
-...x3,desc_a,info,global=.false.)
-call psb_nrm2(ictxt,vres(1:3))
-\end{lstlisting} -
    -In this way the global communication, which for small sizes is a - latency-bound operation, is invoked only once. -
  2. -
- -

- -

- - - - diff --git a/docs/html/node61.html b/docs/html/node61.html deleted file mode 100644 index 867d4545..00000000 --- a/docs/html/node61.html +++ /dev/null @@ -1,219 +0,0 @@ - - - - - -psb_genrm2s -- Generalized 2-Norm of Vector - - - - - - - - - - - - - - - - - - - - - -

-psb_genrm2s -- Generalized 2-Norm of Vector -

- -

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

-
- - -\begin{displaymath}res(i) \leftarrow \Vert x(:,i)\Vert _2 \end{displaymath} -
-
-

- -

-

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

-

-
- - - -
Table 9: -Data types
-
- - - - - - - - - - - - - - - - - - - - - -
$res$$x$Subroutine
Short Precision RealShort Precision Realpsb_genrm2s
Long Precision RealLong Precision Realpsb_genrm2s
Short Precision RealShort Precision Complexpsb_genrm2s
Long Precision RealLong Precision Complexpsb_genrm2s
-
-
-

-
- -

-

-
Type:
-
Synchronous. -
-
On Entry
-
-
-
x
-
the local portion of global dense matrix -$x$. - -
-Scope: local -
-Type: required -
-Intent: in. -
-Specified as: a rank one or two array or an object of type vdatapsb_T_vect_type -containing numbers of type specified in -Table 9. -
-
desc_a
-
contains data structures for communications. -
-Scope: local -
-Type: required -
-Intent: in. -
-Specified as: an object of type descdatapsb_desc_type. - -

-

-
On Return
-
-
-
res
-
contains the 1-norm of (the columns of) $x$. -
-Scope: global -
-Intent: out. -
-Specified as: a long precision real number. -
-
info
-
Error code. -
-Scope: local -
-Type: required -
-Intent: out. -
-An integer value; 0 means no error has been detected. -
-
- -

- -

- - - - diff --git a/docs/html/node62.html b/docs/html/node62.html deleted file mode 100644 index 6ef4e36d..00000000 --- a/docs/html/node62.html +++ /dev/null @@ -1,194 +0,0 @@ - - - - - -psb_norm1 -- 1-Norm of Sparse Matrix - - - - - - - - - - - - - - - - - - - - - -

-psb_norm1 -- 1-Norm of Sparse Matrix -

- -

-This function computes the 1-norm of a matrix $A$: -
-

-

-
- - -\begin{displaymath}nrm1 \leftarrow \Vert A\Vert _1 \end{displaymath} -
-
-

-where: -
-
$A$
-
represents the global matrix $A$ -
-
- -

-

-
- - - -
Table 10: -Data types
-
- - - - - - - - - - - - - - - - -
$A$Function
Short Precision Realpsb_spnrm1
Long Precision Realpsb_spnrm1
Short Precision Complexpsb_spnrm1
Long Precision Complexpsb_spnrm1
-
-
-

-
- -

-

-psb_spnrm1(A, desc_a, info)
-psb_norm1(A, desc_a, info)
-
- -

-

-
Type:
-
Synchronous. -
-
On Entry
-
-
-
a
-
the local portion of the global sparse matrix -$A$. -
-Scope: local -
-Type: required -
-Intent: in. -
-Specified as: an object of type spdatapsb_Tspmat_type. -
-
desc_a
-
contains data structures for communications. -
-Scope: local -
-Type: required -
-Intent: in. -
-Specified as: an object of type descdatapsb_desc_type. -
-
On Return
-
-
-
Function value
-
is the 1-norm of sparse submatrix $A$. -
-Scope: global -
-Specified as: a long precision real number. -
-
info
-
Error code. -
-Scope: local -
-Type: required -
-Intent: out. -
-An integer value; 0 means no error has been detected. -
-
- -

-


- - - diff --git a/docs/html/node63.html b/docs/html/node63.html deleted file mode 100644 index d084adad..00000000 --- a/docs/html/node63.html +++ /dev/null @@ -1,194 +0,0 @@ - - - - - -psb_normi -- Infinity Norm of Sparse Matrix - - - - - - - - - - - - - - - - - - - - - -

-psb_normi -- Infinity Norm of Sparse Matrix -

- -

-This function computes the infinity-norm of a matrix $A$: -
-

-

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

-where: -
-
$A$
-
represents the global matrix $A$ -
-
- -

-

-
- - - -
Table 11: -Data types
-
- - - - - - - - - - - - - - - - -
$A$Function
Short Precision Realpsb_spnrmi
Long Precision Realpsb_spnrmi
Short Precision Complexpsb_spnrmi
Long Precision Complexpsb_spnrmi
-
-
-

-
- -

-

-psb_spnrmi(A, desc_a, info)
-psb_normi(A, desc_a, info)
-
- -

-

-
Type:
-
Synchronous. -
-
On Entry
-
-
-
a
-
the local portion of the global sparse matrix -$A$. -
-Scope: local -
-Type: required -
-Intent: in. -
-Specified as: an object of type spdatapsb_Tspmat_type. -
-
desc_a
-
contains data structures for communications. -
-Scope: local -
-Type: required -
-Intent: in. -
-Specified as: an object of type descdatapsb_desc_type. -
-
On Return
-
-
-
Function value
-
is the infinity-norm of sparse submatrix $A$. -
-Scope: global -
-Specified as: a long precision real number. -
-
info
-
Error code. -
-Scope: local -
-Type: required -
-Intent: out. -
-An integer value; 0 means no error has been detected. -
-
- -

-


- - - diff --git a/docs/html/node64.html b/docs/html/node64.html deleted file mode 100644 index 9f15d14c..00000000 --- a/docs/html/node64.html +++ /dev/null @@ -1,427 +0,0 @@ - - - - - -psb_spmm -- Sparse Matrix by Dense Matrix Product - - - - - - - - - - - - - - - - - - - - - -

-psb_spmm -- Sparse Matrix by Dense Matrix - Product -

- -

-This subroutine computes the Sparse Matrix by Dense Matrix Product: - -

-
-

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

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

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

- -

-where: -

-
$x$
-
is the global dense matrix $x_{:, :}$ -
-
$y$
-
is the global dense matrix $y_{:, :}$ -
-
$A$
-
is the global sparse matrix $A$ -
-
- -

-

-
- - - -
Table 12: -Data types
-
- - - - - - - - - - - - - - - - -
$A$, $x$, $y$, $\alpha$, $\beta$Subroutine
Short Precision Realpsb_spmm
Long Precision Realpsb_spmm
Short Precision Complexpsb_spmm
Long Precision Complexpsb_spmm
-
-
-

-
- -

-

-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:
-
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. -
-
a
-
the local portion of the sparse matrix -$A$. -
-Scope: local -
-Type: required -
-Intent: in. -
-Specified as: an object of type spdatapsb_Tspmat_type. -
-
x
-
the local portion of global dense matrix -$x$. - -
-Scope: local -
-Type: required -
-Intent: in. -
-Specified as: a rank one or two array or an object of type vdatapsb_T_vect_type -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 or an object of type vdatapsb_T_vect_type -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: an object of type descdatapsb_desc_type. -
-
trans
-
indicates 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
-
-
-
y
-
the local portion of result 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. -
-
- -

- -

- - - - diff --git a/docs/html/node65.html b/docs/html/node65.html deleted file mode 100644 index 7617d650..00000000 --- a/docs/html/node65.html +++ /dev/null @@ -1,469 +0,0 @@ - - - - - -psb_spsm -- Triangular System Solve - - - - - - - - - - - - - - - - - - - - -

-psb_spsm -- Triangular System Solve -

- -

-This subroutine computes the Triangular System Solve: - -

-

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

-

- -

-where: -

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

-

-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 13: -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 13. -
-
t
-
the global portion of the sparse matrix -$T$. -
-Scope: local -
-Type: required -
-Intent: in. -
-Specified as: an object 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 or an object of type vdatapsb_T_vect_type -containing numbers of type specified in -Table 13. 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 13. -
-
y
-
the local portion of global dense matrix -$y$. - -
-Scope: local -
-Type: required -
-Intent: inout. -
-Specified as: a rank one or two array or an object of type vdatapsb_T_vect_type -containing numbers of type specified in -Table 13. 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: an object 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 13. -
-
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 13. -
-
info
-
Error code. -
-Scope: local -
-Type: required -
-Intent: out. -
-An integer value; 0 means no error has been detected. -
-
- -

- -

- - - - diff --git a/docs/html/node66.html b/docs/html/node66.html deleted file mode 100644 index e73a47eb..00000000 --- a/docs/html/node66.html +++ /dev/null @@ -1,77 +0,0 @@ - - - - - -Communication routines - - - - - - - - - - - - - - - - - - - - - -

-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. - -

-


- -Subsections - - - -

- - - diff --git a/docs/html/node67.html b/docs/html/node67.html deleted file mode 100644 index 1ab4ea30..00000000 --- a/docs/html/node67.html +++ /dev/null @@ -1,633 +0,0 @@ - - - - - -psb_halo -- Halo Data Communication - - - - - - - - - - - - - - - - - - - - - -

-psb_halo -- Halo Data Communication -

- -

-These subroutines gathers the values of the halo -elements: - -

-

-
- - -\begin{displaymath}x \leftarrow x \end{displaymath} -
-
-

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

-

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

-
- -

-
-\begin{lstlisting}
-call psb_halo(x, desc_a, info)
-call psb_halo(x, desc_a, info, work, data)
-\end{lstlisting} -
- -

-

-
Type:
-
Synchronous. -
-
On Entry
-
-
-
x
-
global dense matrix $x$. -
-Scope: local -
-Type: required -
-Intent: inout. -
-Specified as: a rank one or two array or an object of type vdatapsb_T_vect_type -containing numbers of type specified in -Table 14. -
-
desc_a
-
contains data structures for communications. -
-Scope: local -
-Type: required -
-Intent: in. -
-Specified as: a structured data of type descdatapsb_desc_type. -
-
work
-
the work array. -
-Scope: local -
-Type: optional -
-Intent: inout. -
-Specified as: a rank one array of the same type of $x$. -
-
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 14. -
-
info
-
the local portion of result submatrix $y$. -
-Scope: local -
-Type: required -
-Intent: out. -
-An integer value that contains an error code. -
-
- -
- - - -
Figure 7: -Sample discretization mesh.
-
-\includegraphics[scale=0.45]{figures/try8x8.eps} - -\includegraphics[scale=0.45]{figures/try8x8} - -
-
- -

-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 -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
-
- -

- -

- - - - diff --git a/docs/html/node68.html b/docs/html/node68.html deleted file mode 100644 index eff574f4..00000000 --- a/docs/html/node68.html +++ /dev/null @@ -1,761 +0,0 @@ - - - - - -psb_ovrl -- Overlap Update - - - - - - - - - - - - - - - - - - - - - -

-psb_ovrl -- Overlap Update -

- -

-These subroutines applies an overlap operator to the input vector: - -

-

-
- - -\begin{displaymath}x \leftarrow Q x \end{displaymath} -
-
-

-where: -
-
$x$
-
is the global dense submatrix $x$ -
-
$Q$
-
is the overlap operator; it is the composition of two -operators $P_a$ and $P^{T}$. -
-
- -

-

-
- - - -
Table 15: -Data types
-
- - - - - - - - - - - - - - - - -
$x$Subroutine
Short Precision Realpsb_ovrl
Long Precision Realpsb_ovrl
Short Precision Complexpsb_ovrl
Long Precision Complexpsb_ovrl
-
-
-

-
- -

-
-\begin{lstlisting}
-call psb_ovrl(x, desc_a, info)
-call psb_ovrl(x, desc_a, info, update=update_type, work=work)
-\end{lstlisting} -
- -

-

-
Type:
-
Synchronous. -
-
On Entry
-
-
-
x
-
global dense matrix $x$. -
-Scope: local -
-Type: required -
-Intent: inout. -
-Specified as: a rank one or two array or an object of type vdatapsb_T_vect_type -containing numbers of type specified in -Table 15. -
-
desc_a
-
contains data structures for communications. -
-Scope: local -
-Type: required -
-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\_ $ -
-Scope: global -
-Specified as: a integer variable. -
-
work
-
the work array. -
-Scope: local -
-Type: optional -
-Intent: inout. -
-Specified as: a one dimensional array of the same type of $x$. - -

-

-
On Return
-
-
-
x
-
global dense result matrix $x$. -
-Scope: local -
-Type: required -
-Intent: inout. -
-Specified as: an array of rank one or two -containing numbers of type specified in -Table 15. -
-
info
-
Error code. -
-Scope: local -
-Type: required -
-Intent: out. -
-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} - -\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
-
- -

- -

- - - - diff --git a/docs/html/node69.html b/docs/html/node69.html deleted file mode 100644 index 79a9d84c..00000000 --- a/docs/html/node69.html +++ /dev/null @@ -1,270 +0,0 @@ - - - - - -psb_gather -- Gather Global Dense Matrix - - - - - - - - - - - - - - - - - - - - - -

-psb_gather -- Gather Global Dense Matrix -

- -

-These subroutines collect the portions of global dense matrix -distributed over all process into one single array stored on one -process. - -

-

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

-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. -
-
- -

-

-
- - - -
Table 16: -Data types
-
- - - - - - - - - - - - - - - - - - - -
$x_i, y$Subroutine
Integerpsb_gather
Short Precision Realpsb_gather
Long Precision Realpsb_gather
Short Precision Complexpsb_gather
Long Precision Complexpsb_gather
-
-
-

-
- -

-
-\begin{lstlisting}
-call psb_gather(glob_x, loc_x, desc_a, info, root)
-call psb_gather(glob_x, loc_x, desc_a, info, root)
-\end{lstlisting} -
- -

-

-
Type:
-
Synchronous. -
-
On Entry
-
-
-
loc_x
-
the local portion of global dense matrix -$glob\_x$. -
-Scope: local -
-Type: required -
-Intent: in. -
-Specified as: a rank one or two array or an object of type vdatapsb_T_vect_type -indicated in Table 16. -
-
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 will 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
-
-
-
glob_x
-
The array where the local parts must be gathered. -
-Scope: global -
-Type: required -
-Intent: out. -
-Specified as: a rank one or two array with the ALLOCATABLE attribute. -
-
info
-
Error code. -
-Scope: local -
-Type: required -
-Intent: out. -
-An integer value; 0 means no error has been detected. -
-
- -

- -

- - - - diff --git a/docs/html/node7.html b/docs/html/node7.html deleted file mode 100644 index 155a14f7..00000000 --- a/docs/html/node7.html +++ /dev/null @@ -1,108 +0,0 @@ - - - - - -User-defined index mappings - - - - - - - - - - - - - - - - - - - - -

- -
-User-defined index mappings -

-PSBLAS supports user-defined global to local index mappings, subject -to the constraints outlined in sec. 2.3: - -
    -
  1. The set of indices owned locally must be mapped to the set - -$1\dots n_{\hbox{row}_i}$; -
  2. -
  3. The set of halo points must be mapped to the set - -$n_{\hbox{row}_i}+1\dots n_{\hbox{col}_i}$; -
  4. -
-but otherwise the mapping is arbitrary. The user application is -responsible to ensure consistency of this mapping; some errors may be -caught by the library, but this is not guaranteed. -The application structure to -support this usage is as follows: - -
    -
  1. Initialize index space with - psb_cdall(ictx,desc,info,vl=vl,lidx=lidx) passing the vectors - vl(:) containing the set of global indices owned by the - current process and lidx(:) containing the corresponding - local indices; -
  2. -
  3. Add the halo points ja(:) and their associated local - indices lidx(:) with a(some) call(s) to - psb_cdins(nz,ja,desc,info,lidx=lidx); -
  4. -
  5. Assemble the descriptor with psb_cdasb; -
  6. -
  7. Build the sparse matrices and vectors, optionally making use in - psb_spins and psb_geins of the local argument - specifying that the indices in ia, ja and irw, - respectively, are already local indices. -
  8. -
- -

-


- - - diff --git a/docs/html/node70.html b/docs/html/node70.html deleted file mode 100644 index d16ab510..00000000 --- a/docs/html/node70.html +++ /dev/null @@ -1,277 +0,0 @@ - - - - - -psb_scatter -- Scatter Global Dense Matrix - - - - - - - - - - - - - - - - - - - - -

-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 17: -Data types
-
- - - - - - - - - - - - - - - - - - - -
$x_i, y$Subroutine
Integerpsb_scatter
Short Precision Realpsb_scatter
Long Precision Realpsb_scatter
Short Precision Complexpsb_scatter
Long Precision Complexpsb_scatter
-
-
-

-
- -

-
-\begin{lstlisting}
-call psb_scatter(glob_x, loc_x, desc_a, info, root, mold)
-\end{lstlisting} -
- -

-

-
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 -psb_root_, i.e. process 0. -
-
mold
-
The desired dynamic type for the internal vector storage. -
-Scope: local. -
-Type: optional. -
-Intent: in. -
-Specified as: an object of a class derived from vbasedatapsb_T_base_vect_type; this is -only allowed when loc_x is of type vdatapsb_T_vect_type. -
-
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 ALLOCATABLE array or an object of type vdatapsb_T_vect_type containing numbers of the type -indicated in Table 17. -
-
info
-
Error code. -
-Scope: local -
-Type: required -
-Intent: out. -
-An integer value; 0 means no error has been detected. -
-
- -

- -

- - - - diff --git a/docs/html/node71.html b/docs/html/node71.html deleted file mode 100644 index ae405046..00000000 --- a/docs/html/node71.html +++ /dev/null @@ -1,133 +0,0 @@ - - - - - -Data management routines - - - - - - - - - - - - - - - - - - - - - -

- -
-Data management routines -

- -

-


- -Subsections - - - -

- - - diff --git a/docs/html/node72.html b/docs/html/node72.html deleted file mode 100644 index 6277372e..00000000 --- a/docs/html/node72.html +++ /dev/null @@ -1,450 +0,0 @@ - - - - - -psb_cdall -- Allocates a communication descriptor - - - - - - - - - - - - - - - - - - - - - -

-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=.false.,lidx=lidx])
-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: .false. -
-
lidx
-
Data allocation: the set of local indices - $lidx(1:nl)$ to be assigned to the global indices $vl$. -
-Scope:local. -
-Type:optional. -
-Intent: in. -
-Specified as: an integer array. -
-
- -

-

-
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 -
-Type: required -
-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. -
    -
    lidx
    -
    The optional argument lidx is available for - those cases in which the user has already established a - global-to-local mapping; if it is specified, each index in - vl(i) will be mapped to the corresponding local index - lidx(i). When specifying the argument lidx the user - would also likely employ lidx in calls to psb_cdins - and local in calls to psb_spins and psb_geins; - see also sec. 2.3.1. -
    -
    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. -
- -

- -

- - - - diff --git a/docs/html/node73.html b/docs/html/node73.html deleted file mode 100644 index 364e18a0..00000000 --- a/docs/html/node73.html +++ /dev/null @@ -1,259 +0,0 @@ - - - - - -psb_cdins -- Communication descriptor insert routine - - - - - - - - - - - - - - - - - - - - - -

-psb_cdins -- Communication descriptor insert - routine -

- -

-

-call psb_cdins(nz, ia, ja, desc_a, info [,ila,jla])
-call psb_cdins(nz,ja,desc,info[,jla,mask,lidx])
-
- -

-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. In the first form the edges are specified as -pairs of indices $ia(i),ja(i)$; the starting index $ia(i)$ should -belong to the current process. -In the second form only the remote indices $ja(i)$ are specified. - -

-

-
Type:
-
Asynchronous. -
-
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. -
-Scope: local. -
-Type: required. -
-Intent: in. -
-Specified as: an integer array of length $nz$. -
-
mask
-
Mask entries in ja, they are inserted only when the - corresponding mask entries are .true. -
-Scope: local. -
-Type: optional. -
-Intent: in. -
-Specified as: a logical array of length $nz$, default .true.. -
-
lidx
-
User defined local indices for ja. -
-Scope: local. -
-Type: optional. -
-Intent: in. -
-Specified as: an integer array of length $nz$. -
-
- -

-

-
On Return
-
-
-
desc_a
-
the updated communication descriptor. -
-Scope:local. -
-Type:required. -
-Intent: inout. -
-Specified as: a structured data of type descdatapsb_desc_type. -
-
info
-
Error code. -
-Scope: local -
-Type: required -
-Intent: out. -
-An integer value; 0 means no error has been detected. -
-
ila
-
the local indices of the starting vertex of the edges being inserted. -
-Scope: local. -
-Type: optional. -
-Intent: out. -
-Specified as: an integer array of length $nz$. -
-
jla
-
the local indices of the end vertex of the edges being inserted. -
-Scope: local. -
-Type: optional. -
-Intent: out. -
-Specified as: an integer array of length $nz$. - -

-

-
-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. -
  5. The second form of this routine will be useful when dealing with - user-specified index mappings; see also 2.3.1. -
  6. -
- -

- -

- - - - diff --git a/docs/html/node74.html b/docs/html/node74.html deleted file mode 100644 index dce0fc24..00000000 --- a/docs/html/node74.html +++ /dev/null @@ -1,133 +0,0 @@ - - - - - -psb_cdasb -- Communication descriptor assembly routine - - - - - - - - - - - - - - - - - - - - - -

-psb_cdasb -- Communication descriptor assembly - routine -

- -

-

-call psb_cdasb(desc_a, info [, mold])
-
- -

-

-
Type:
-
Synchronous. -
-
On Entry
-
-
-
desc_a
-
the communication descriptor. -
-Scope:local. -
-Type:required. -
-Intent: inout. -
-Specified as: a structured data of type descdatapsb_desc_type. -
-
mold
-
The desired dynamic type for the internal index storage. -
-Scope: local. -
-Type: optional. -
-Intent: in. -
-Specified as: a object of type derived from (integer) vbasedatapsb_T_base_vect_type. -
-
- -

-

-
On Return
-
-
-
desc_a
-
the communication descriptor. -
-Scope:local. -
-Type:required. -
-Intent: inout. -
-Specified as: a structured data of type descdatapsb_desc_type. -
-
info
-
Error code. -
-Scope: local -
-Type: required -
-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/node75.html b/docs/html/node75.html deleted file mode 100644 index 508603a4..00000000 --- a/docs/html/node75.html +++ /dev/null @@ -1,116 +0,0 @@ - - - - - -psb_cdcpy -- Copies a communication descriptor - - - - - - - - - - - - - - - - - - - - - -

-psb_cdcpy -- Copies a communication descriptor -

- -

-

-call psb_cdcpy(desc_in, desc_out, info)
-
- -

-

-
Type:
-
Asynchronous. -
-
On Entry
-
-
-
desc_in
-
the communication descriptor. -
-Scope:local. -
-Type:required. -
-Intent: in. -
-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. -
-Scope: local -
-Type: required -
-Intent: out. -
-An integer value; 0 means no error has been detected. -
-
- -

-


- - - diff --git a/docs/html/node76.html b/docs/html/node76.html deleted file mode 100644 index 6a43fb9f..00000000 --- a/docs/html/node76.html +++ /dev/null @@ -1,103 +0,0 @@ - - - - - -psb_cdfree -- Frees a communication descriptor - - - - - - - - - - - - - - - - - - - - - -

-psb_cdfree -- Frees a communication descriptor -

- -

-

-call psb_cdfree(desc_a, info)
-
- -

-

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

-

-
On Return
-
-
-
info
-
Error code. -
-Scope: local -
-Type: required -
-Intent: out. -
-An integer value; 0 means no error has been detected. -
-
- -

-


- - - diff --git a/docs/html/node77.html b/docs/html/node77.html deleted file mode 100644 index 9716704a..00000000 --- a/docs/html/node77.html +++ /dev/null @@ -1,198 +0,0 @@ - - - - - -psb_cdbldext -- Build an extended communication descriptor - - - - - - - - - - - - - - - - - - - - - -

-psb_cdbldext -- Build an extended communication - descriptor -

- -

-

-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. -
-
On Entry
-
-
-
a
-
A sparse matrix -Scope:local. -
-Type:required. -
-Intent: in. -
-Specified as: a structured data type. -
-
desc_a
-
the communication descriptor. -
-Scope:local. -
-Type:required. -
-Intent: in. -
-Specified as: a structured data of type spdatapsb_Tspmat_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_ - -

-

-
- -

-

-
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. -
-Scope: local -
-Type: required -
-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. -
  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. -
- -

- -

- - - - diff --git a/docs/html/node78.html b/docs/html/node78.html deleted file mode 100644 index 42ebd801..00000000 --- a/docs/html/node78.html +++ /dev/null @@ -1,143 +0,0 @@ - - - - - -psb_spall -- Allocates a sparse matrix - - - - - - - - - - - - - - - - - - - - - -

-psb_spall -- Allocates a sparse matrix -

- -

-

-call psb_spall(a, desc_a, info, nnz)
-
- -

-

-
Type:
-
Synchronous. -
-
On Entry
-
-
-
desc_a
-
the communication descriptor. -
-Scope:local. -
-Type:required. -
-Intent: in. -
-Specified as: a structured data of type descdatapsb_desc_type. -
-
nnz
-
An estimate of the number of nonzeroes in the local - part of the assembled matrix. -
-Scope: global. -
-Type: optional. -
-Intent: in. -
-Specified as: an integer value. -
-
- -

-

-
On Return
-
-
-
a
-
the matrix to be allocated. -
-Scope:local -
-Type:required -
-Intent: out. -
-Specified as: a structured data of type spdatapsb_Tspmat_type. -
-
info
-
Error code. -
-Scope: local -
-Type: required -
-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. -
  3. The descriptor may be in either the build or assembled state. -
  4. -
  5. 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. -
  6. -
- -

-


- - - diff --git a/docs/html/node79.html b/docs/html/node79.html deleted file mode 100644 index 562a80b0..00000000 --- a/docs/html/node79.html +++ /dev/null @@ -1,320 +0,0 @@ - - - - - -psb_spins -- Insert a set of coefficients into a sparse matrix - - - - - - - - - - - - - - - - - - - - - -

-psb_spins -- Insert a set of coefficients into a sparse - matrix -

- -

-

-call psb_spins(nz, ia, ja, val, a, desc_a, info [,local])
-call psb_spins(nr, irw, irp, ja, val, a, desc_a, info [,local])
-
- -

-

-
Type:
-
Asynchronous. -
-
On Entry
-
-
-
nz
-
the number of coefficients to be inserted. -
-Scope:local. -
-Type:required. -
-Intent: in. -
-Specified as: an integer scalar. -
-
nr
-
the number of rows to be inserted. -
-Scope:local. -
-Type:required. -
-Intent: in. -
-Specified as: an integer scalar. -
-
irw
-
the first row to be inserted. -
-Scope:local. -
-Type:required. -
-Intent: in. -
-Specified as: an integer scalar. -
-
ia
-
the row indices of the coefficients to be inserted. -
-Scope:local. -
-Type:required. -
-Intent: in. -
-Specified as: an integer array of size $nz$. -
-
irp
-
the row pointers of the coefficients to be inserted. -
-Scope:local. -
-Type:required. -
-Intent: in. -
-Specified as: an integer array of size . -
-
ja
-
the column indices of the coefficients to be inserted. -
-Scope:local. -
-Type:required. -
-Intent: in. -
-Specified as: an integer array of size $nz$. -
-
val
-
the coefficients 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 coefficients 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. -
-
local
-
Whether the entries in the indices vectors ia, - ja are already in local numbering. -
-Scope:local. -
-Type:optional. -
-Specified as: a logical value; default: .false.. - -

-

-
- -

-

-
On Return
-
-
-
a
-
the matrix into which coefficients will be inserted. -
-Scope:local -
-Type:required -
-Intent: inout. -
-Specified as: a structured data of type spdatapsb_Tspmat_type. -
-
desc_a
-
The communication descriptor. -
-Scope: local. -
-Type: required. -
-Intent: inout. -
-Specified as: a variable of type descdatapsb_desc_type. -
-
info
-
Error code. -
-Scope: local -
-Type: required -
-Intent: out. -
-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. -
  3. On entry to this routine the sparse matrix may be in either the - build or update state. -
  4. -
  5. 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; -
  6. -
  7. The input data can be passed in either COO or CSR formats; -
  8. -
  9. In COO format the coefficients to be inserted are represented by - the ordered triples -$ia(i),ja(i),val(i)$, for $i=1,\dots,nz$; - these triples should belong to the current process, i.e. $ia(i)$ - should be one of the local indices, but are otherwise arbitrary; -
  10. -
  11. In CSR format the coefficients to be inserted for each input row - are represented by the ordered triples -, for - -; - these triples should belong to the current process, i.e. - should be one of the local indices, but are otherwise arbitrary; -
  12. -
  13. There is no requirement that a given row must be passed in its - entirety to a single call to this routine: the buildup of a row - may be split into as many calls as desired (even in the CSR format); -
  14. -
  15. Coefficients from different rows may also be mixed up freely - in a single call, according to the application needs; -
  16. -
  17. Any coefficients from matrix rows not owned by the calling - process are silently ignored; -
  18. -
  19. If the descriptor is in the assembled state, then any entries in - the sparse matrix that would generate additional communication - requirements are ignored; -
  20. -
  21. If the matrix is in the update state, any entries in positions - that were not present in the original matrix are ignored. -
  22. -
- -

- -

- - - - diff --git a/docs/html/node8.html b/docs/html/node8.html deleted file mode 100644 index df750f2a..00000000 --- a/docs/html/node8.html +++ /dev/null @@ -1,121 +0,0 @@ - - - - - -Programming model - - - - - - - - - - - - - - - - - - - - -

-Programming model -

- -

-The PSBLAS librarary is based on the Single Program Multiple Data -(SPMD) programming model: each process participating in the -computation performs the same actions on a chunk of data. Parallelism -is thus data-driven. - -

-Because of this structure, many subroutines coordinate their action -across the various processes, thus providing an implicit -synchronization point, and therefore must be -called simultaneously by all processes participating in the -computation. This is certainly true for the data allocation and -assembly routines, for all the computational routines and for some of -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 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 -processors, and since the user is free to choose an arbitrary order in -builiding the matrix entries, these routines cannot imply a -synchronization. - -

-Throughout this user's guide each subroutine will be clearly indicated -as: -

-
Synchronous:
-
must be called simultaneously by all the - processes in the relevant communication context; -
-
Asynchronous:
-
may be called in a totally independent manner. -
-
- -

- -

- - - - diff --git a/docs/html/node80.html b/docs/html/node80.html deleted file mode 100644 index 295e944c..00000000 --- a/docs/html/node80.html +++ /dev/null @@ -1,209 +0,0 @@ - - - - - -psb_spasb -- Sparse matrix assembly routine - - - - - - - - - - - - - - - - - - - - - -

-psb_spasb -- Sparse matrix assembly routine -

- -

-

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

-

-
Type:
-
Synchronous. -
-
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: local. -
-Type: optional. -
-Intent: in. -
-Specified as: an array of characters. Defalt: 'CSR'. -
-
upd
-
Provide for updates to the matrix coefficients. -
-Scope: global. -
-Type: optional. -
-Intent: in. -
-Specified as: integer, possible values: psb_upd_srch_, psb_upd_perm_ -
-
dupl
-
How to handle duplicate coefficients. -
-Scope: global. -
-Type: optional. -
-Intent: in. -
-Specified as: integer, possible values: psb_dupl_ovwrt_, -psb_dupl_add_, psb_dupl_err_. -
-
mold
-
The desired dynamic type for the internal matrix storage. -
-Scope: local. -
-Type: optional. -
-Intent: in. -
-Specified as: an object of a class derived from spbasedatapsb_T_base_sparse_mat. -
-
- -

-

-
On Return
-
-
-
a
-
the matrix to be assembled. -
-Scope:local -
-Type:required -
-Intent: inout. -
-Specified as: a structured data of type spdatapsb_Tspmat_type. -
-
info
-
Error code. -
-Scope: local -
-Type: required -
-Intent: out. -
-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. The output storage format need not be the same on all - processes; -
  10. -
  11. On exit from this routine the matrix is in the assembled state, - and thus is suitable for the computational routines. -
  12. -
- -

- -

- - - - diff --git a/docs/html/node81.html b/docs/html/node81.html deleted file mode 100644 index 7320ea14..00000000 --- a/docs/html/node81.html +++ /dev/null @@ -1,114 +0,0 @@ - - - - - -psb_spfree -- Frees a sparse matrix - - - - - - - - - - - - - - - - - - - - - -

-psb_spfree -- Frees a sparse matrix -

- -

-

-call psb_spfree(a, desc_a, info)
-
- -

-

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

-

-
On Return
-
-
-
info
-
Error code. -
-Scope: local -
-Type: required -
-Intent: out. -
-An integer value; 0 means no error has been detected. -
-
- -

-


- - - diff --git a/docs/html/node82.html b/docs/html/node82.html deleted file mode 100644 index e966ada4..00000000 --- a/docs/html/node82.html +++ /dev/null @@ -1,133 +0,0 @@ - - - - - -psb_sprn -- Reinit sparse matrix structure for psblas routines. - - - - - - - - - - - - - - - - - - - - - -

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

- -

-

-call psb_sprn(a, decsc_a, info, clear)
-
- -

-

-
Type:
-
Synchronous. -
-
On Entry
-
-
-
a
-
the matrix to be reinitialized. -
-Scope:local -
-Type:required -
-Intent: inout. -
-Specified as: a structured data of type spdatapsb_Tspmat_type. -
-
desc_a
-
the communication descriptor. -
-Scope:local. -
-Type:required. -
-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. -
-
- -

-

-
On Return
-
-
-
info
-
Error code. -
-Scope: local -
-Type: required -
-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/node83.html b/docs/html/node83.html deleted file mode 100644 index 65e4c10e..00000000 --- a/docs/html/node83.html +++ /dev/null @@ -1,151 +0,0 @@ - - - - - -psb_geall -- Allocates a dense matrix - - - - - - - - - - - - - - - - - - - - - -

-psb_geall -- Allocates a dense matrix -

- -

-

-call psb_geall(x, desc_a, info, n, lb)
-
- -

-

-
Type:
-
Synchronous. -
-
On Entry
-
-
-
desc_a
-
The communication descriptor. -
-Scope: local -
-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. -
-Scope: local -
-Type: optional -
-Intent: in. -
-Specified as: Integer scalar, default $1$. It is not a valid argument if $x$ is a -rank-1 array. -
-
lb
-
The lower bound for the column index range of the dense matrix to be allocated. -
-Scope: local -
-Type: optional -
-Intent: in. -
-Specified as: Integer scalar, default $1$. It is not a valid argument if $x$ is a -rank-1 array. -
-
- -

-

-
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 -or an object of type vdatapsb_T_vect_type, of type real, complex or integer. -
-
info
-
Error code. -
-Scope: local -
-Type: required -
-Intent: out. -
-An integer value; 0 means no error has been detected. -
-
- -

-


- - - diff --git a/docs/html/node84.html b/docs/html/node84.html deleted file mode 100644 index 26821fda..00000000 --- a/docs/html/node84.html +++ /dev/null @@ -1,221 +0,0 @@ - - - - - -psb_geins -- Dense matrix insertion routine - - - - - - - - - - - - - - - - - - - - - -

-psb_geins -- Dense matrix insertion routine -

- -

-

-call psb_geins(m, irw, val, x, desc_a, info [,dupl,local])
-
- -

-

-
Type:
-
Asynchronous. -
-
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. -
-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_. -
-
local
-
Whether the entries in the index vector irw, - are already in local numbering. -
-Scope:local. -
-Type:optional. -
-Specified as: a logical value; default: .false.. - -

-

-
- -

-

-
On Return
-
-
-
x
-
the output dense matrix. -
-Scope: local -
-Type: required -
-Intent: inout. -
-Specified as: a rank one or two array or an object of type vdatapsb_T_vect_type, of -type real, complex or integer. -
-
info
-
Error code. -
-Scope: local -
-Type: required -
-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. -
- -

- -

- - - - diff --git a/docs/html/node85.html b/docs/html/node85.html deleted file mode 100644 index 3a23b931..00000000 --- a/docs/html/node85.html +++ /dev/null @@ -1,128 +0,0 @@ - - - - - -psb_geasb -- Assembly a dense matrix - - - - - - - - - - - - - - - - - - - - - -

-psb_geasb -- Assembly a dense matrix -

- -

-

-call psb_geasb(x, desc_a, info, mold)
-
- -

-

-
Type:
-
Synchronous. -
-
On Entry
-
-
-
desc_a
-
The communication descriptor. -
-Scope: local -
-Type: required -
-Intent: in. -
-Specified as: a variable of type descdatapsb_desc_type. -
-
mold
-
The desired dynamic type for the internal vector storage. -
-Scope: local. -
-Type: optional. -
-Intent: in. -
-Specified as: an object of a class derived from vbasedatapsb_T_base_vect_type; this is -only allowed when $x$ is of type vdatapsb_T_vect_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 or an -object of type vdatapsb_T_vect_type, of type real, complex or integer. -
-
info
-
Error code. -
-Scope: local -
-Type: required -
-Intent: out. -
-An integer value; 0 means no error has been detected. -
-
-

- - - diff --git a/docs/html/node86.html b/docs/html/node86.html deleted file mode 100644 index e1744ccb..00000000 --- a/docs/html/node86.html +++ /dev/null @@ -1,118 +0,0 @@ - - - - - -psb_gefree -- Frees a dense matrix - - - - - - - - - - - - - - - - - - - - - -

-psb_gefree -- Frees a dense matrix -

- -

-

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

-

-
Type:
-
Synchronous. -
-
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 or an -object of type vdatapsb_T_vect_type, of type real, complex or integer. -
-

-

-
desc_a
-
The communication descriptor. -
-Scope: local -
-Type: required -
-Intent: in. -
-Specified as: a variable of type descdatapsb_desc_type. -
-
- -

-

-
On Return
-
-
-
info
-
Error code. -
-Scope: local -
-Type: required -
-Intent: out. -
-An integer value; 0 means no error has been detected. -
-
- -

-


- - - diff --git a/docs/html/node87.html b/docs/html/node87.html deleted file mode 100644 index dbb80998..00000000 --- a/docs/html/node87.html +++ /dev/null @@ -1,138 +0,0 @@ - - - - - -psb_gelp -- Applies a left permutation to a dense matrix - - - - - - - - - - - - - - - - - - - - - -

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

- -

-

-call psb_gelp(trans, iperm, x, info)
-
- -

-

-
Type:
-
Asynchronous. -
-
On Entry
-
-
-
trans
-
A character that specifies whether to permute $A$ or $A^T$. -
-Scope: local -
-Type: required -
-Intent: in. -
-Specified as: a single character with value 'N' for $A$ or 'T' for $A^T$. -
-
iperm
-
An integer array containing permutation information. -
-Scope: local -
-Type: required -
-Intent: in. -
-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. -
-
- -

-

-
On Return
-
-
-
info
-
Error code. -
-Scope: local -
-Type: required -
-Intent: out. -
-An integer value; 0 means no error has been detected. -
-
- -

-


- - - diff --git a/docs/html/node88.html b/docs/html/node88.html deleted file mode 100644 index 56205478..00000000 --- a/docs/html/node88.html +++ /dev/null @@ -1,213 +0,0 @@ - - - - - -psb_glob_to_loc -- Global to local indices convertion - - - - - - - - - - - - - - - - - - - - - -

-psb_glob_to_loc -- Global to local indices - convertion -

- -

-

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

-

-
Type:
-
Asynchronous. -
-
On Entry
-
-
-
x
-
An integer vector of indices to be converted. -
-Scope: local -
-Type: required -
-Intent: in, inout. -
-Specified as: a rank one integer array. -
-
desc_a
-
the communication descriptor. -
-Scope:local. -
-Type:required. -
-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. -
-
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. -
-
- -

-

-
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. -
-Scope: local -
-Type: required -
-Intent: out. -
-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. -
- -

- -

- - - - diff --git a/docs/html/node89.html b/docs/html/node89.html deleted file mode 100644 index ac275095..00000000 --- a/docs/html/node89.html +++ /dev/null @@ -1,165 +0,0 @@ - - - - - -psb_loc_to_glob -- Local to global indices conversion - - - - - - - - - - - - - - - - - - - - - -

-psb_loc_to_glob -- Local to global indices - conversion -

- -

-

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

-

-
Type:
-
Asynchronous. -
-
On Entry
-
-
-
x
-
An integer vector of indices to be converted. -
-Scope: local -
-Type: required -
-Intent: in, inout. -
-Specified as: a rank one integer array. -
-
desc_a
-
the communication descriptor. -
-Scope:local. -
-Type:required. -
-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. -
-
- -

-

-
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 $x$ - is left unchanged. -Scope: global -
-Type: optional -
-Intent: out. -
-Specified as: a rank one integer array. -
-
info
-
Error code. -
-Scope: local -
-Type: required -
-Intent: out. -
-An integer value; 0 means no error has been detected. -
-
- -

-


- - - diff --git a/docs/html/node9.html b/docs/html/node9.html deleted file mode 100644 index b60f74d3..00000000 --- a/docs/html/node9.html +++ /dev/null @@ -1,247 +0,0 @@ - - - - - -Data Structures and Classes - - - - - - - - - - - - - - - - - - - - - -

- -
-Data Structures and Classes -

- -

-In this chapter we illustrate the data structures used for definition of -routines interfaces. They include data structures for sparse matrices, -communication descriptors and preconditioners. -

-All the data types and the basic subroutine interfaces related to -descriptors and sparse matrices are defined in -the module psb_base_mod; this will have to be included by every -user subroutine that makes use of the library. The preconditioners are -defined in the module psb_prec_mod - -

-Integer, real and complex data types are parametrized with a kind type -defined in the library as follows: -

-
psb_spk_
-
Kind parameter for short precision real and complex - data; corresponds to a REAL declaration and is - normally 4 bytes; -
-
psb_dpk_
-
Kind parameter for long precision real and complex - data; corresponds to a DOUBLE PRECISION declaration and is - normally 8 bytes; -
-
psb_mpk_
-
Kind parameter for 4-bytes integer data, as is - always used by MPI; -
-
psb_epk_
-
Kind parameter for 8-bytes integer data, as is - always used by the sizeof methods; -
-
psb_ipk_
-
Kind parameter for “local” integer indices and data; - with default build options this is a 4 bytes integer; -
-
psb_lpk_
-
Kind parameter for “global” integer indices and data; - with default build options this is an 8 bytes integer; -
-
-The integer kinds for local and global indices can be chosen at -configure time to hold 4 or 8 bytes, with the global indices at least -as large as the local ones. -Together with the classes attributes we also discuss their -methods. Most methods detailed here only act on the local variable, -i.e. their action is purely local and asynchronous unless otherwise -stated. -The list of methods here is not completely exhaustive; many methods, -especially those that alter the contents of the various objects, are -usually not needed by the end-user, and therefore are described in the -developer's documentation. - -

-


- -Subsections - - - - - - - - - diff --git a/docs/html/node90.html b/docs/html/node90.html deleted file mode 100644 index aaf6d3e3..00000000 --- a/docs/html/node90.html +++ /dev/null @@ -1,125 +0,0 @@ - - - - - -psb_is_owned -- - - - - - - - - - - - - - - - - - - - - - -

-psb_is_owned -- -

- -

-

-call psb_is_owned(x, desc_a)
-
- -

-

-
Type:
-
Asynchronous. -
-
On Entry
-
-
-
x
-
Integer index. -
-Scope: local -
-Type: required -
-Intent: in. -
-Specified as: a scalar integer. -
-
desc_a
-
the communication descriptor. -
-Scope:local. -
-Type:required. -
-Intent: in. -
-Specified as: a structured data of type descdatapsb_desc_type. -
-
- -

-

-
On Return
-
-
-
Function value
-
A logical mask which is true if - $x$ is owned by the current process -Scope: local -
-Type: required -
-Intent: out. -
-
- -

-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/node91.html b/docs/html/node91.html deleted file mode 100644 index d2bd979c..00000000 --- a/docs/html/node91.html +++ /dev/null @@ -1,149 +0,0 @@ - - - - - -psb_owned_index -- - - - - - - - - - - - - - - - - - - - - - -

-psb_owned_index -- -

- -

-

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

-

-
Type:
-
Asynchronous. -
-
On Entry
-
-
-
x
-
Integer indices. -
-Scope: local -
-Type: required -
-Intent: in, inout. -
-Specified as: a scalar or a rank one integer array. -
-
desc_a
-
the communication descriptor. -
-Scope:local. -
-Type:required. -
-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. -
-
- -

-

-
On Return
-
-
-
y
-
A logical mask which is true for all corresponding entries of - $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 those indices - that are strictly owned by the current process, excluding the halo - indices -
  2. -
- -

-


- - - diff --git a/docs/html/node92.html b/docs/html/node92.html deleted file mode 100644 index a3c4d4b6..00000000 --- a/docs/html/node92.html +++ /dev/null @@ -1,125 +0,0 @@ - - - - - -psb_is_local -- - - - - - - - - - - - - - - - - - - - - - -

-psb_is_local -- -

- -

-

-call psb_is_local(x, desc_a)
-
- -

-

-
Type:
-
Asynchronous. -
-
On Entry
-
-
-
x
-
Integer index. -
-Scope: local -
-Type: required -
-Intent: in. -
-Specified as: a scalar integer. -
-
desc_a
-
the communication descriptor. -
-Scope:local. -
-Type:required. -
-Intent: in. -
-Specified as: a structured data of type descdatapsb_desc_type. -
-
- -

-

-
On Return
-
-
-
Function value
-
A logical mask which is true if - $x$ is local to the current process -Scope: local -
-Type: required -
-Intent: out. -
-
- -

-Notes - -

    -
  1. This routine returns a .true. value for an index - that is local to the current process, including the halo - indices -
  2. -
- -

-


- - - diff --git a/docs/html/node93.html b/docs/html/node93.html deleted file mode 100644 index 3a12cab9..00000000 --- a/docs/html/node93.html +++ /dev/null @@ -1,149 +0,0 @@ - - - - - -psb_local_index -- - - - - - - - - - - - - - - - - - - - - - -

-psb_local_index -- -

- -

-

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

-

-
Type:
-
Asynchronous. -
-
On Entry
-
-
-
x
-
Integer indices. -
-Scope: local -
-Type: required -
-Intent: in, inout. -
-Specified as: a scalar or a rank one integer array. -
-
desc_a
-
the communication descriptor. -
-Scope:local. -
-Type:required. -
-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. -
-
- -

-

-
On Return
-
-
-
y
-
A logical mask which is true for all corresponding entries of - $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 those indices - that are local to the current process, including the halo - indices. -
  2. -
- -

-


- - - diff --git a/docs/html/node94.html b/docs/html/node94.html deleted file mode 100644 index 41a1b858..00000000 --- a/docs/html/node94.html +++ /dev/null @@ -1,130 +0,0 @@ - - - - - -psb_get_boundary -- Extract list of boundary elements - - - - - - - - - - - - - - - - - - - - - -

-psb_get_boundary -- Extract list of boundary - elements -

- -

-

-call psb_get_boundary(bndel, desc, info)
-
- -

-

-
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
-
-
-
bndel
-
The list of boundary elements on the calling process, in - local numbering. -
-Scope: local -
-Type: required -
-Intent: out. -
-Specified as: a rank one array with the ALLOCATABLE -attribute, of type integer. -
-
info
-
Error code. -
-Scope: local -
-Type: required -
-Intent: out. -
-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. -
  3. Otherwise the size of bndel will be exactly equal to the - number of boundary elements. -
  4. -
- -

-


- - - diff --git a/docs/html/node95.html b/docs/html/node95.html deleted file mode 100644 index 07d57981..00000000 --- a/docs/html/node95.html +++ /dev/null @@ -1,129 +0,0 @@ - - - - - -psb_get_overlap -- Extract list of overlap elements - - - - - - - - - - - - - - - - - - - - - -

-psb_get_overlap -- Extract list of overlap - elements -

- -

-

-call psb_get_overlap(ovrel, desc, info)
-
- -

-

-
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
-
-
-
ovrel
-
The list of overlap elements on the calling process, in - local numbering. -
-Scope: local -
-Type: required -
-Intent: out. -
-Specified as: a rank one array with the ALLOCATABLE -attribute, of type integer. -
-
info
-
Error code. -
-Scope: local -
-Type: required -
-Intent: out. -
-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. -
  3. Otherwise the size of ovrel will be exactly equal to the - number of overlap elements. -
  4. -
- -

-


- - - diff --git a/docs/html/node96.html b/docs/html/node96.html deleted file mode 100644 index 2736fbfb..00000000 --- a/docs/html/node96.html +++ /dev/null @@ -1,256 +0,0 @@ - - - - - -psb_sp_getrow -- Extract row(s) from a sparse matrix - - - - - - - - - - - - - - - - - - - - - -

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

- -

-

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

-

-
Type:
-
Asynchronous. -
-
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. -
-Scope:local -
-Type:required -
-Intent: in. -
-Specified as: a structured data of type spdatapsb_Tspmat_type. -
-
append
-
Whether to append or overwrite existing output. -
-Scope:local -
-Type:optional -
-Intent: in. -
-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$. - -

-

-
- -

-

-
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. -
-Scope: local -
-Type: required -
-Intent: out. -
-An integer value; 0 means no error has been detected. -
-
- -

-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. -
- -

- -

- - - - diff --git a/docs/html/node97.html b/docs/html/node97.html deleted file mode 100644 index 9a446831..00000000 --- a/docs/html/node97.html +++ /dev/null @@ -1,125 +0,0 @@ - - - - - -psb_sizeof -- Memory occupation - - - - - - - - - - - - - - - - - - - - - -

-psb_sizeof -- Memory occupation -

- -

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

-

-isz = psb_sizeof(a)
-isz = psb_sizeof(desc_a)
-isz = psb_sizeof(prec)
-
- -

-

-
Type:
-
Asynchronous. -
-
On Entry
-
-
-
a
-
A sparse matrix -$A$. -
-Scope: local -
-Type: required -
-Intent: in. -
-Specified as: a structured data of type spdatapsb_Tspmat_type. -
-
desc_a
-
Communication descriptor. -
-Scope: local -
-Type: required -
-Intent: in. -
-Specified as: a structured data of type descdatapsb_desc_type. -
-
prec
-
Scope: local -
-Type: required -
-Intent: in. -
-Specified as: a preconditioner data structure precdatapsb_prec_type. -
-
On Return
-
-
-
Function value
-
The memory occupation of the object specified in - the calling sequence, in bytes. -
-Scope: local -
-Returned as: an integer(psb_long_int_k_) number. -
-
- -

-


- - - diff --git a/docs/html/node98.html b/docs/html/node98.html deleted file mode 100644 index 5625baef..00000000 --- a/docs/html/node98.html +++ /dev/null @@ -1,291 +0,0 @@ - - - - - -Sorting utilities -- - - - - - - - - - - - - - - - - - - - - -

-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 the preferred choice when a sorting is needed - by other routines in the library. -
    6. -
    -
  12. -
- -

- -

- -

- - - - diff --git a/docs/html/node99.html b/docs/html/node99.html deleted file mode 100644 index 24fa37b8..00000000 --- a/docs/html/node99.html +++ /dev/null @@ -1,106 +0,0 @@ - - - - - -Parallel environment routines - - - - - - - - - - - - - - - - - - - - - -

- -
-Parallel environment routines -

- -

-


- -Subsections - - - -

- - - diff --git a/docs/html/points.png b/docs/html/points.png new file mode 100644 index 00000000..097201d3 Binary files /dev/null and b/docs/html/points.png differ diff --git a/docs/html/prev.png b/docs/html/prev.png deleted file mode 100644 index e60b8b40..00000000 Binary files a/docs/html/prev.png and /dev/null differ diff --git a/docs/html/prev_g.png b/docs/html/prev_g.png deleted file mode 100644 index 476d9568..00000000 Binary files a/docs/html/prev_g.png and /dev/null differ diff --git a/docs/html/psblas.png b/docs/html/psblas.png new file mode 100644 index 00000000..c904340d Binary files /dev/null and b/docs/html/psblas.png differ diff --git a/docs/html/try8x8.png b/docs/html/try8x8.png new file mode 100644 index 00000000..4ff4882c Binary files /dev/null and b/docs/html/try8x8.png differ diff --git a/docs/html/try8x8_ov.png b/docs/html/try8x8_ov.png new file mode 100644 index 00000000..a5025abe Binary files /dev/null and b/docs/html/try8x8_ov.png differ diff --git a/docs/html/up.png b/docs/html/up.png deleted file mode 100644 index 3937e168..00000000 Binary files a/docs/html/up.png and /dev/null differ diff --git a/docs/html/up_g.png b/docs/html/up_g.png deleted file mode 100644 index 54ceb683..00000000 Binary files a/docs/html/up_g.png and /dev/null differ diff --git a/docs/html/userhtml.css b/docs/html/userhtml.css index d1824aff..201b1c23 100644 --- a/docs/html/userhtml.css +++ b/docs/html/userhtml.css @@ -1,30 +1,157 @@ -/* Century Schoolbook font is very similar to Computer Modern Math: cmmi */ -.MATH { font-family: "Century Schoolbook", serif; } -.MATH I { font-family: "Century Schoolbook", serif; font-style: italic } -.BOLDMATH { font-family: "Century Schoolbook", serif; font-weight: bold } + +/* start css.sty */ +.cmr-7{font-size:70%;} +.cmmi-5{font-size:50%;font-style: italic;} +.cmmi-7{font-size:70%;font-style: italic;} +.cmmi-10{font-style: italic;} +.cmsy-7{font-size:70%;} +.cmbx-12x-x-144{font-size:172%; font-weight: bold;} +.cmbx-12x-x-144{ font-weight: bold;} +.cmbx-12x-x-144{ font-weight: bold;} +.cmbx-12x-x-144{ font-weight: bold;} +.cmti-10{ font-style: italic;} +.cmti-12{font-size:120%; font-style: italic;} +.cmbx-10{ font-weight: bold;} +.cmbx-10{ font-weight: bold;} +.cmbx-10{ font-weight: bold;} +.cmbx-10{ font-weight: bold;} +.cmtt-10{font-family: monospace;} +.cmtt-10{font-family: monospace;} +.cmtt-10{font-family: monospace;} +.cmr-9{font-size:90%;} +.cmr-8{font-size:80%;} +.cmbx-12{font-size:120%; font-weight: bold;} +.cmbx-12{ font-weight: bold;} +.cmbx-12{ font-weight: bold;} +.cmbx-12{ font-weight: bold;} +.cmtt-8{font-size:80%;font-family: monospace;} +.cmtt-8{font-family: monospace;} +.cmtt-8{font-family: monospace;} +.cmtt-9{font-size:90%;font-family: monospace;} +.cmtt-9{font-family: monospace;} +.cmtt-9{font-family: monospace;} +.cmmi-8{font-size:80%;font-style: italic;} +.cmbx-9{font-size:90%; font-weight: bold;} +.cmbx-9{ font-weight: bold;} +.cmbx-9{ font-weight: bold;} +.cmbx-9{ font-weight: bold;} +p.noindent { text-indent: 0em } +td p.noindent { text-indent: 0em; margin-top:0em; } +p.nopar { text-indent: 0em; } +p.indent{ text-indent: 1.5em } +@media print {div.crosslinks {visibility:hidden;}} +a img { border-top: 0; border-left: 0; border-right: 0; } +center { margin-top:1em; margin-bottom:1em; } +td center { margin-top:0em; margin-bottom:0em; } +.Canvas { position:relative; } +img.math{vertical-align:middle;} +li p.indent { text-indent: 0em } +li p:first-child{ margin-top:0em; } +li p:last-child, li div:last-child { margin-bottom:0.5em; } +li p~ul:last-child, li p~ol:last-child{ margin-bottom:0.5em; } +.enumerate1 {list-style-type:decimal;} +.enumerate2 {list-style-type:lower-alpha;} +.enumerate3 {list-style-type:lower-roman;} +.enumerate4 {list-style-type:upper-alpha;} +div.newtheorem { margin-bottom: 2em; margin-top: 2em;} +.obeylines-h,.obeylines-v {white-space: nowrap; } +div.obeylines-v p { margin-top:0; margin-bottom:0; } +.overline{ text-decoration:overline; } +.overline img{ border-top: 1px solid black; } +td.displaylines {text-align:center; white-space:nowrap;} +.centerline {text-align:center;} +.rightline {text-align:right;} +div.verbatim {font-family: monospace; white-space: nowrap; text-align:left; clear:both; } +.fbox {padding-left:3.0pt; padding-right:3.0pt; text-indent:0pt; border:solid black 0.4pt; } +div.fbox {display:table} +div.center div.fbox {text-align:center; clear:both; padding-left:3.0pt; padding-right:3.0pt; text-indent:0pt; border:solid black 0.4pt; } +div.minipage{width:100%;} +div.center, div.center div.center {text-align: center; margin-left:1em; margin-right:1em;} +div.center div {text-align: left;} +div.flushright, div.flushright div.flushright {text-align: right;} +div.flushright div {text-align: left;} +div.flushleft {text-align: left;} +.underline{ text-decoration:underline; } +.underline img{ border-bottom: 1px solid black; margin-bottom:1pt; } +.framebox-c, .framebox-l, .framebox-r { padding-left:3.0pt; padding-right:3.0pt; text-indent:0pt; border:solid black 0.4pt; } +.framebox-c {text-align:center;} +.framebox-l {text-align:left;} +.framebox-r {text-align:right;} +span.thank-mark{ vertical-align: super } +span.footnote-mark sup.textsuperscript, span.footnote-mark a sup.textsuperscript{ font-size:80%; } +div.tabular, div.center div.tabular {text-align: center; margin-top:0.5em; margin-bottom:0.5em; } +table.tabular td p{margin-top:0em;} +table.tabular {margin-left: auto; margin-right: auto;} +td p:first-child{ margin-top:0em; } +td p:last-child{ margin-bottom:0em; } +div.td00{ margin-left:0pt; margin-right:0pt; } +div.td01{ margin-left:0pt; margin-right:5pt; } +div.td10{ margin-left:5pt; margin-right:0pt; } +div.td11{ margin-left:5pt; margin-right:5pt; } +table[rules] {border-left:solid black 0.4pt; border-right:solid black 0.4pt; } +td.td00{ padding-left:0pt; padding-right:0pt; } +td.td01{ padding-left:0pt; padding-right:5pt; } +td.td10{ padding-left:5pt; padding-right:0pt; } +td.td11{ padding-left:5pt; padding-right:5pt; } +table[rules] {border-left:solid black 0.4pt; border-right:solid black 0.4pt; } +.hline hr, .cline hr{ height : 1px; margin:0px; } +.tabbing-right {text-align:right;} +span.TEX {letter-spacing: -0.125em; } +span.TEX span.E{ position:relative;top:0.5ex;left:-0.0417em;} +a span.TEX span.E {text-decoration: none; } +span.LATEX span.A{ position:relative; top:-0.5ex; left:-0.4em; font-size:85%;} +span.LATEX span.TEX{ position:relative; left: -0.4em; } +div.float, div.figure {margin-left: auto; margin-right: auto;} +div.float img {text-align:center;} +div.figure img {text-align:center;} +.marginpar {width:20%; float:right; text-align:left; margin-left:auto; margin-top:0.5em; font-size:85%; text-decoration:underline;} +.marginpar p{margin-top:0.4em; margin-bottom:0.4em;} +table.equation {width:100%;} +.equation td{text-align:center; } +td.equation { margin-top:1em; margin-bottom:1em; } +td.equation-label { width:5%; text-align:center; } +td.eqnarray4 { width:5%; white-space: normal; } +td.eqnarray2 { width:5%; } +table.eqnarray-star, table.eqnarray {width:100%;} +div.eqnarray{text-align:center;} +div.array {text-align:center;} +div.pmatrix {text-align:center;} +table.pmatrix {width:100%;} +span.pmatrix img{vertical-align:middle;} +div.pmatrix {text-align:center;} +table.pmatrix {width:100%;} +span.bar-css {text-decoration:overline;} +img.cdots{vertical-align:middle;} +.partToc a, .partToc, .likepartToc a, .likepartToc {line-height: 200%; font-weight:bold; font-size:110%;} +.index-item, .index-subitem, .index-subsubitem {display:block} +div.caption {text-indent:-2em; margin-left:3em; margin-right:1em; text-align:left;} +div.caption span.id{font-weight: bold; white-space: nowrap; } +h1.partHead{text-align: center} +p.bibitem { text-indent: -2em; margin-left: 2em; margin-top:0.6em; margin-bottom:0.6em; } +p.bibitem-p { text-indent: 0em; margin-left: 2em; margin-top:0.6em; margin-bottom:0.6em; } +.paragraphHead, .likeparagraphHead { margin-top:2em; font-weight: bold;} +.subparagraphHead, .likesubparagraphHead { font-weight: bold;} +.quote {margin-bottom:0.25em; margin-top:0.25em; margin-left:1em; margin-right:1em; text-align:justify;} +.verse{white-space:nowrap; margin-left:2em} +div.maketitle {text-align:center;} +h2.titleHead{text-align:center;} +div.maketitle{ margin-bottom: 2em; } +div.author, div.date {text-align:center;} +div.thanks{text-align:left; margin-left:10%; font-size:85%; font-style:italic; } +div.author{white-space: nowrap;} +.quotation {margin-bottom:0.25em; margin-top:0.25em; margin-left:1em; } +.abstract p {margin-left:5%; margin-right:5%;} +div.abstract {width:100%;} +.subsectionToc, .likesubsectionToc {margin-left:2em;} +.subsubsectionToc, .likesubsubsectionToc {margin-left:4em;} +.ovalbox { padding-left:3pt; padding-right:3pt; border:solid thin; } +.Ovalbox-thick { padding-left:3pt; padding-right:3pt; border:solid thick; } +.shadowbox { padding-left:3pt; padding-right:3pt; border:solid thin; border-right:solid thick; border-bottom:solid thick; } +.doublebox { padding-left:3pt; padding-right:3pt; border-style:double; border:solid thick; } +.figure img.graphics {margin-left:10%;} +.lstlisting .label{margin-right:0.5em; } +div.lstlisting{font-family: monospace; white-space: nowrap; margin-top:0.5em; margin-bottom:0.5em; } +div.lstinputlisting{ font-family: monospace; white-space: nowrap; } +.lstinputlisting .label{margin-right:0.5em;} +/* end css.sty */ -/* implement both fixed-size and relative sizes */ -SMALL.XTINY { font-size : xx-small } -SMALL.TINY { font-size : x-small } -SMALL.SCRIPTSIZE { font-size : smaller } -SMALL.FOOTNOTESIZE { font-size : small } -SMALL.SMALL { } -BIG.LARGE { } -BIG.XLARGE { font-size : large } -BIG.XXLARGE { font-size : x-large } -BIG.HUGE { font-size : larger } -BIG.XHUGE { font-size : xx-large } - -/* heading styles */ -H1 { } -H2 { } -H3 { } -H4 { } -H5 { } - -/* mathematics styles */ -DIV.displaymath { } /* math displays */ -TD.eqno { } /* equation-number cells */ - - -/* document-specific styles come next */ diff --git a/docs/html/userhtml.html b/docs/html/userhtml.html index e3200a83..0cca7b4c 100644 --- a/docs/html/userhtml.html +++ b/docs/html/userhtml.html @@ -1,408 +1,261 @@ - + + + + + + + + + + +

PSBLAS
User’s and Reference Guide
A reference guide for the Parallel Sparse BLAS library
Salvatore Filippone
Alfredo Buttari
Software version: 3.7.0
Jan 7th, 2020 + - - - -userhtml - - - - + + - - + +

+ Contents +
1 Introduction +
2 General overview +
 2.1 Basic Nomenclature +
 2.2 Library contents +
 2.3 Application structure +
 2.4 Programming model +
3 Data Structures and Classes +
 3.1 Descriptor data structure +
 3.2 Sparse Matrix class +
 3.3 Dense Vector Data Structure +
 3.4 Preconditioner data structure +
 3.5 Heap data structure +
4 Computational routines +
 4.1 psb_geaxpby — General Dense Matrix Sum +
 4.2 psb_gedot — Dot Product +
 4.3 psb_gedots — Generalized Dot Product +
 4.4 psb_normi — Infinity-Norm of Vector +
 4.5 psb_geamaxs — Generalized Infinity Norm +
 4.6 psb_norm1 — 1-Norm of Vector +
 4.7 psb_geasums — Generalized 1-Norm of Vector +
 4.8 psb_norm2 — 2-Norm of Vector +
 4.9 psb_genrm2s — Generalized 2-Norm of Vector +
 4.10 psb_norm1 — 1-Norm of Sparse Matrix +
 4.11 psb_normi — Infinity Norm of Sparse Matrix +
 4.12 psb_spmm — Sparse Matrix by Dense Matrix Product +
 4.13 psb_spsm — Triangular System Solve +
 4.14 psb_gemlt — Entrywise Product +
 4.15 psb_gediv — Entrywise Division +
 4.16 psb_geinv — Entrywise Inversion +
5 Communication routines +
 5.1 psb_halo — Halo Data Communication +
 5.2 psb_ovrl — Overlap Update +
 5.3 psb_gather — Gather Global Dense Matrix +
 5.4 psb_scatter — Scatter Global Dense Matrix +
6 Data management routines +
 6.1 psb_cdall — Allocates a communication descriptor +
 6.2 psb_cdins — Communication descriptor insert routine +
 6.3 psb_cdasb — Communication descriptor assembly routine +
 6.4 psb_cdcpy — Copies a communication descriptor +
 6.5 psb_cdfree — Frees a communication descriptor +
 6.6 psb_cdbldext — Build an extended communication descriptor +
 6.7 psb_spall — Allocates a sparse matrix +
 6.8 psb_spins — Insert a set of coefficients into a sparse matrix +
 6.9 psb_spasb — Sparse matrix assembly routine +
 6.10 psb_spfree — Frees a sparse matrix +
 6.11 psb_sprn — Reinit sparse matrix structure for psblas routines. +
 6.12 psb_geall — Allocates a dense matrix + - + +
 6.13 psb_geins — Dense matrix insertion routine +
 6.14 psb_geasb — Assembly a dense matrix +
 6.15 psb_gefree — Frees a dense matrix +
 6.16 psb_gelp — Applies a left permutation to a dense matrix +
 6.17 psb_glob_to_loc — Global to local indices convertion +
 6.18 psb_loc_to_glob — Local to global indices conversion +
 6.19 psb_is_owned — +
 6.20 psb_owned_index — +
 6.21 psb_is_local — +
 6.22 psb_local_index — +
 6.23 psb_get_boundary — Extract list of boundary elements +
 6.24 psb_get_overlap — Extract list of overlap elements +
 6.25 psb_sp_getrow — Extract row(s) from a sparse matrix +
 6.26 psb_sizeof — Memory occupation +
 6.27 Sorting utilities — +
7 Parallel environment routines +
 7.1 psb_init — Initializes PSBLAS parallel environment +
 7.2 psb_info — Return information about PSBLAS parallel environment +
 7.3 psb_exit — Exit from PSBLAS parallel environment +
 7.4 psb_get_mpi_comm — Get the MPI communicator +
 7.5 psb_get_mpi_rank — Get the MPI rank +
 7.6 psb_wtime — Wall clock timing +
 7.7 psb_barrier — Sinchronization point parallel environment +
 7.8 psb_abort — Abort a computation +
 7.9 psb_bcast — Broadcast data +
 7.10 psb_sum — Global sum +
 7.11 psb_max — Global maximum +
 7.12 psb_min — Global minimum +
 7.13 psb_amx — Global maximum absolute value +
 7.14 psb_amn — Global minimum absolute value +
 7.15 psb_nrm2 — Global 2-norm reduction +
 7.16 psb_snd — Send data +
 7.17 psb_rcv — Receive data +
8 Error handling +
 8.1 psb_errpush — Pushes an error code onto the error stack +
 8.2 psb_error — Prints the error stack content and aborts execution +
 8.3 psb_set_errverbosity — Sets the verbosity of error messages +
 8.4 psb_set_erraction — Set the type of action to be taken upon error condition +
9 Utilities +
 9.1 hb_read — Read a sparse matrix from a file in the Harwell–Boeing format +
 9.2 hb_write — Write a sparse matrix to a file in the Harwell–Boeing format +
 9.3 mm_mat_read — Read a sparse matrix from a file in the MatrixMarket format +
 9.4 mm_array_read — Read a dense array from a file in the MatrixMarket format +
 9.5 mm_mat_write — Write a sparse matrix to a file in the MatrixMarket format +
 9.6 mm_array_write — Write a dense array from a file in the MatrixMarket format +
10 Preconditioner routines +
 10.1 init — Initialize a preconditioner +
 10.2 build — Builds a preconditioner +
 10.3 apply — Preconditioner application routine +
 10.4 descr — Prints a description of current preconditioner + - - + +
 10.5 clone — clone current preconditioner +
 10.6 free — Free a preconditioner +
11 Iterative Methods +
 11.1 psb_krylov — Krylov Methods Driver Routine +
References +
- - - -language=Fortran -

-PSBLAS -
-
-User's and Reference - Guide
-
A reference guide for the Parallel Sparse BLAS library -
-
-
-
Salvatore Filippone -
-Alfredo Buttari
-
-Software version: 3.6.0 -
-Dec 1st, 2018 -


- - - - -

- - + + + + + + + + + + + diff --git a/docs/html/userhtml0x.png b/docs/html/userhtml0x.png new file mode 100644 index 00000000..236023f4 Binary files /dev/null and b/docs/html/userhtml0x.png differ diff --git a/docs/html/userhtml10.html b/docs/html/userhtml10.html new file mode 100644 index 00000000..5d4c39b0 --- /dev/null +++ b/docs/html/userhtml10.html @@ -0,0 +1,25 @@ + + + + + + + + + + +
+

3The subroutine style psb_precinit and psb_precbl are still supported for backward + compatibility

+ diff --git a/docs/html/userhtml100.html b/docs/html/userhtml100.html new file mode 100644 index 00000000..c38b723d --- /dev/null +++ b/docs/html/userhtml100.html @@ -0,0 +1,18 @@ + + + + + + + + + + +
+

4The string is case-insensitive

+ + diff --git a/docs/html/userhtml108.html b/docs/html/userhtml108.html new file mode 100644 index 00000000..13394996 --- /dev/null +++ b/docs/html/userhtml108.html @@ -0,0 +1,19 @@ + + + + + + + + + + +
+

5Note: the implementation is for FCG(1).

+ diff --git a/docs/html/userhtml10x.png b/docs/html/userhtml10x.png new file mode 100644 index 00000000..bc555490 Binary files /dev/null and b/docs/html/userhtml10x.png differ diff --git a/docs/html/userhtml11x.png b/docs/html/userhtml11x.png new file mode 100644 index 00000000..02e3ca83 Binary files /dev/null and b/docs/html/userhtml11x.png differ diff --git a/docs/html/userhtml12x.png b/docs/html/userhtml12x.png new file mode 100644 index 00000000..2fe0d741 Binary files /dev/null and b/docs/html/userhtml12x.png differ diff --git a/docs/html/userhtml13x.png b/docs/html/userhtml13x.png new file mode 100644 index 00000000..2640335f Binary files /dev/null and b/docs/html/userhtml13x.png differ diff --git a/docs/html/userhtml14x.png b/docs/html/userhtml14x.png new file mode 100644 index 00000000..bc55f7d1 Binary files /dev/null and b/docs/html/userhtml14x.png differ diff --git a/docs/html/userhtml15x.png b/docs/html/userhtml15x.png new file mode 100644 index 00000000..0b01ec07 Binary files /dev/null and b/docs/html/userhtml15x.png differ diff --git a/docs/html/userhtml16x.png b/docs/html/userhtml16x.png new file mode 100644 index 00000000..a18061f0 Binary files /dev/null and b/docs/html/userhtml16x.png differ diff --git a/docs/html/userhtml17x.png b/docs/html/userhtml17x.png new file mode 100644 index 00000000..7fe28a82 Binary files /dev/null and b/docs/html/userhtml17x.png differ diff --git a/docs/html/userhtml18x.png b/docs/html/userhtml18x.png new file mode 100644 index 00000000..82edd7f7 Binary files /dev/null and b/docs/html/userhtml18x.png differ diff --git a/docs/html/userhtml19x.png b/docs/html/userhtml19x.png new file mode 100644 index 00000000..336cb190 Binary files /dev/null and b/docs/html/userhtml19x.png differ diff --git a/docs/html/userhtml1x.png b/docs/html/userhtml1x.png new file mode 100644 index 00000000..00fc2e33 Binary files /dev/null and b/docs/html/userhtml1x.png differ diff --git a/docs/html/userhtml20x.png b/docs/html/userhtml20x.png new file mode 100644 index 00000000..b19fd75c Binary files /dev/null and b/docs/html/userhtml20x.png differ diff --git a/docs/html/userhtml21x.png b/docs/html/userhtml21x.png new file mode 100644 index 00000000..c7b037cf Binary files /dev/null and b/docs/html/userhtml21x.png differ diff --git a/docs/html/userhtml22x.png b/docs/html/userhtml22x.png new file mode 100644 index 00000000..6b413586 Binary files /dev/null and b/docs/html/userhtml22x.png differ diff --git a/docs/html/userhtml23x.png b/docs/html/userhtml23x.png new file mode 100644 index 00000000..ed4251c5 Binary files /dev/null and b/docs/html/userhtml23x.png differ diff --git a/docs/html/userhtml24x.png b/docs/html/userhtml24x.png new file mode 100644 index 00000000..3c6bb3bd Binary files /dev/null and b/docs/html/userhtml24x.png differ diff --git a/docs/html/userhtml25x.png b/docs/html/userhtml25x.png new file mode 100644 index 00000000..37836c81 Binary files /dev/null and b/docs/html/userhtml25x.png differ diff --git a/docs/html/userhtml26x.png b/docs/html/userhtml26x.png new file mode 100644 index 00000000..75ae8f6b Binary files /dev/null and b/docs/html/userhtml26x.png differ diff --git a/docs/html/userhtml27x.png b/docs/html/userhtml27x.png new file mode 100644 index 00000000..51d8b238 Binary files /dev/null and b/docs/html/userhtml27x.png differ diff --git a/docs/html/userhtml28x.png b/docs/html/userhtml28x.png new file mode 100644 index 00000000..2ea69a48 Binary files /dev/null and b/docs/html/userhtml28x.png differ diff --git a/docs/html/userhtml29x.png b/docs/html/userhtml29x.png new file mode 100644 index 00000000..b890fc38 Binary files /dev/null and b/docs/html/userhtml29x.png differ diff --git a/docs/html/userhtml2x.png b/docs/html/userhtml2x.png new file mode 100644 index 00000000..31c7ec89 Binary files /dev/null and b/docs/html/userhtml2x.png differ diff --git a/docs/html/userhtml30x.png b/docs/html/userhtml30x.png new file mode 100644 index 00000000..059fe3e0 Binary files /dev/null and b/docs/html/userhtml30x.png differ diff --git a/docs/html/userhtml31x.png b/docs/html/userhtml31x.png new file mode 100644 index 00000000..f50412f3 Binary files /dev/null and b/docs/html/userhtml31x.png differ diff --git a/docs/html/userhtml32x.png b/docs/html/userhtml32x.png new file mode 100644 index 00000000..b4a91874 Binary files /dev/null and b/docs/html/userhtml32x.png differ diff --git a/docs/html/userhtml33x.png b/docs/html/userhtml33x.png new file mode 100644 index 00000000..b4a91874 Binary files /dev/null and b/docs/html/userhtml33x.png differ diff --git a/docs/html/userhtml3x.png b/docs/html/userhtml3x.png new file mode 100644 index 00000000..55f1e95a Binary files /dev/null and b/docs/html/userhtml3x.png differ diff --git a/docs/html/userhtml4x.png b/docs/html/userhtml4x.png new file mode 100644 index 00000000..cdca4696 Binary files /dev/null and b/docs/html/userhtml4x.png differ diff --git a/docs/html/userhtml5.html b/docs/html/userhtml5.html new file mode 100644 index 00000000..5a5cae45 --- /dev/null +++ b/docs/html/userhtml5.html @@ -0,0 +1,18 @@ + + + + + + + + + + +
+

1In our prototype implementation we provide sample scatter/gather routines.

+ + diff --git a/docs/html/userhtml5x.png b/docs/html/userhtml5x.png new file mode 100644 index 00000000..403b9248 Binary files /dev/null and b/docs/html/userhtml5x.png differ diff --git a/docs/html/userhtml6x.png b/docs/html/userhtml6x.png new file mode 100644 index 00000000..60d3b2c5 Binary files /dev/null and b/docs/html/userhtml6x.png differ diff --git a/docs/html/userhtml7.html b/docs/html/userhtml7.html new file mode 100644 index 00000000..a7486f7c --- /dev/null +++ b/docs/html/userhtml7.html @@ -0,0 +1,23 @@ + + + + + + + + + + +
+

2This is the normal situation when the pattern of the sparse matrix is symmetric, which is + equivalent to say that the interaction between two variables is reciprocal. If the matrix pattern is + non-symmetric we may have one-way interactions, and these could cause a situation in which a + boundary point is not a halo point for its neighbour.

+ diff --git a/docs/html/userhtml7x.png b/docs/html/userhtml7x.png new file mode 100644 index 00000000..bc555490 Binary files /dev/null and b/docs/html/userhtml7x.png differ diff --git a/docs/html/userhtml8x.png b/docs/html/userhtml8x.png new file mode 100644 index 00000000..c16766fd Binary files /dev/null and b/docs/html/userhtml8x.png differ diff --git a/docs/html/userhtml9x.png b/docs/html/userhtml9x.png new file mode 100644 index 00000000..aaff2dea Binary files /dev/null and b/docs/html/userhtml9x.png differ diff --git a/docs/html/userhtmlli1.html b/docs/html/userhtmlli1.html new file mode 100644 index 00000000..a84e95ed --- /dev/null +++ b/docs/html/userhtmlli1.html @@ -0,0 +1,329 @@ + + +Contents + + + + + + + + +

Contents

+
+ 1 Introduction +
2 General overview +
 2.1 Basic Nomenclature +
 2.2 Library contents +
 2.3 Application structure +
  2.3.1 User-defined index mappings +
 2.4 Programming model +
3 Data Structures and Classes +
 3.1 Descriptor data structure +
  3.1.1 Descriptor Methods +
  3.1.2 get_local_rows — Get number of local rows +
  3.1.3 get_local_cols — Get number of local cols +
  3.1.4 get_global_rows — Get number of global rows +
  3.1.5 get_global_cols — Get number of global cols +
  3.1.6 get_global_indices — Get vector of global indices +
  3.1.7 get_context — Get communication context +
  3.1.8 Clone — clone current object +
  3.1.9 CNV — convert internal storage format +
  3.1.10 psb_cd_get_large_threshold — Get threshold for index mapping switch +
  3.1.11 psb_cd_set_large_threshold — Set threshold for index mapping switch +
  3.1.12 get_p_adjcncy — Get process adjacency list +
  3.1.13 set_p_adjcncy — Set process adjacency list +
  3.1.14 fnd_owner — Find the owner process of a set of indices +
  3.1.15 Named Constants +
 3.2 Sparse Matrix class +
  3.2.1 Sparse Matrix Methods +
  3.2.2 get_nrows — Get number of rows in a sparse matrix +
  3.2.3 get_ncols — Get number of columns in a sparse matrix +
  3.2.4 get_nnzeros — Get number of nonzero elements in a sparse matrix +
  3.2.5 get_size — Get maximum number of nonzero elements in a sparse matrix +
  3.2.6 sizeof — Get memory occupation in bytes of a sparse matrix +
  3.2.7 get_fmt — Short description of the dynamic type +
  3.2.8 is_bld, is_upd, is_asb — Status check +
  3.2.9 is_lower, is_upper, is_triangle, is_unit — Format check +
  3.2.10 cscnv — Convert to a different storage format +
  3.2.11 csclip — Reduce to a submatrix +
  3.2.12 clean_zeros — Eliminate zero coefficients +
  3.2.13 get_diag — Get main diagonal +
  3.2.14 clip_diag — Cut out main diagonal + + + +
  3.2.15 tril — Return the lower triangle +
  3.2.16 triu — Return the upper triangle +
  3.2.17 psb_set_mat_default — Set default storage format +
  3.2.18 clone — Clone current object +
  3.2.19 Named Constants +
 3.3 Dense Vector Data Structure +
  3.3.1 Vector Methods +
  3.3.2 get_nrows — Get number of rows in a dense vector +
  3.3.3 sizeof — Get memory occupation in bytes of a dense vector +
  3.3.4 set — Set contents of the vector +
  3.3.5 get_vect — Get a copy of the vector contents +
  3.3.6 clone — Clone current object +
 3.4 Preconditioner data structure +
 3.5 Heap data structure +
4 Computational routines +
 4.1 psb_geaxpby — General Dense Matrix Sum +
 4.2 psb_gedot — Dot Product +
 4.3 psb_gedots — Generalized Dot Product +
 4.4 psb_normi — Infinity-Norm of Vector +
 4.5 psb_geamaxs — Generalized Infinity Norm +
 4.6 psb_norm1 — 1-Norm of Vector +
 4.7 psb_geasums — Generalized 1-Norm of Vector +
 4.8 psb_norm2 — 2-Norm of Vector +
 4.9 psb_genrm2s — Generalized 2-Norm of Vector +
 4.10 psb_norm1 — 1-Norm of Sparse Matrix +
 4.11 psb_normi — Infinity Norm of Sparse Matrix +
 4.12 psb_spmm — Sparse Matrix by Dense Matrix Product +
 4.13 psb_spsm — Triangular System Solve +
 4.14 psb_gemlt — Entrywise Product +
 4.15 psb_gediv — Entrywise Division +
 4.16 psb_geinv — Entrywise Inversion +
5 Communication routines +
 5.1 psb_halo — Halo Data Communication +
 5.2 psb_ovrl — Overlap Update +
 5.3 psb_gather — Gather Global Dense Matrix +
 5.4 psb_scatter — Scatter Global Dense Matrix +
6 Data management routines +
 6.1 psb_cdall — Allocates a communication descriptor +
 6.2 psb_cdins — Communication descriptor insert routine +
 6.3 psb_cdasb — Communication descriptor assembly routine +
 6.4 psb_cdcpy — Copies a communication descriptor +
 6.5 psb_cdfree — Frees a communication descriptor +
 6.6 psb_cdbldext — Build an extended communication descriptor +
 6.7 psb_spall — Allocates a sparse matrix +
 6.8 psb_spins — Insert a set of coefficients into a sparse matrix +
 6.9 psb_spasb — Sparse matrix assembly routine +
 6.10 psb_spfree — Frees a sparse matrix +
 6.11 psb_sprn — Reinit sparse matrix structure for psblas routines. +
 6.12 psb_geall — Allocates a dense matrix +
 6.13 psb_geins — Dense matrix insertion routine + + + +
 6.14 psb_geasb — Assembly a dense matrix +
 6.15 psb_gefree — Frees a dense matrix +
 6.16 psb_gelp — Applies a left permutation to a dense matrix +
 6.17 psb_glob_to_loc — Global to local indices convertion +
 6.18 psb_loc_to_glob — Local to global indices conversion +
 6.19 psb_is_owned — +
 6.20 psb_owned_index — +
 6.21 psb_is_local — +
 6.22 psb_local_index — +
 6.23 psb_get_boundary — Extract list of boundary elements +
 6.24 psb_get_overlap — Extract list of overlap elements +
 6.25 psb_sp_getrow — Extract row(s) from a sparse matrix +
 6.26 psb_sizeof — Memory occupation +
 6.27 Sorting utilities — +
7 Parallel environment routines +
 7.1 psb_init — Initializes PSBLAS parallel environment +
 7.2 psb_info — Return information about PSBLAS parallel environment +
 7.3 psb_exit — Exit from PSBLAS parallel environment +
 7.4 psb_get_mpi_comm — Get the MPI communicator +
 7.5 psb_get_mpi_rank — Get the MPI rank +
 7.6 psb_wtime — Wall clock timing +
 7.7 psb_barrier — Sinchronization point parallel environment +
 7.8 psb_abort — Abort a computation +
 7.9 psb_bcast — Broadcast data +
 7.10 psb_sum — Global sum +
 7.11 psb_max — Global maximum +
 7.12 psb_min — Global minimum +
 7.13 psb_amx — Global maximum absolute value +
 7.14 psb_amn — Global minimum absolute value +
 7.15 psb_nrm2 — Global 2-norm reduction +
 7.16 psb_snd — Send data +
 7.17 psb_rcv — Receive data +
8 Error handling +
 8.1 psb_errpush — Pushes an error code onto the error stack +
 8.2 psb_error — Prints the error stack content and aborts execution +
 8.3 psb_set_errverbosity — Sets the verbosity of error messages +
 8.4 psb_set_erraction — Set the type of action to be taken upon error condition +
9 Utilities +
 9.1 hb_read — Read a sparse matrix from a file in the Harwell–Boeing format +
 9.2 hb_write — Write a sparse matrix to a file in the Harwell–Boeing format +
 9.3 mm_mat_read — Read a sparse matrix from a file in the MatrixMarket format +
 9.4 mm_array_read — Read a dense array from a file in the MatrixMarket format +
 9.5 mm_mat_write — Write a sparse matrix to a file in the MatrixMarket format +
 9.6 mm_array_write — Write a dense array from a file in the MatrixMarket format +
10 Preconditioner routines +
 10.1 init — Initialize a preconditioner +
 10.2 build — Builds a preconditioner +
 10.3 apply — Preconditioner application routine +
 10.4 descr — Prints a description of current preconditioner +
 10.5 clone — clone current preconditioner + + + +
 10.6 free — Free a preconditioner +
11 Iterative Methods +
 11.1 psb_krylov — Krylov Methods Driver Routine +
+ + + + + + + + + + +

+ diff --git a/docs/html/userhtmlli2.html b/docs/html/userhtmlli2.html new file mode 100644 index 00000000..78ee7ed1 --- /dev/null +++ b/docs/html/userhtmlli2.html @@ -0,0 +1,186 @@ + + +References + + + + + + + +

+

References

+

+

+

+ [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, 38(4), 2012. +

+

+ [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]    Gamma, E., Helm, R., Johnson, R., and Vlissides, J. 1995. Design + Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley. +

+

+ [14]   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. + + + +

+

+ [15]   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. +

+

+ [16]   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. +

+

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

+

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

+

+ [19]   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.

+ + + + +

+ diff --git a/docs/html/userhtmlse1.html b/docs/html/userhtmlse1.html new file mode 100644 index 00000000..4ffa201d --- /dev/null +++ b/docs/html/userhtmlse1.html @@ -0,0 +1,96 @@ + + +Introduction + + + + + + + +

+

1 Introduction

+

The PSBLAS library, developed with the aim to facilitate the parallelization of +computationally intensive scientific applications, is designed to address parallel +implementation of iterative solvers for sparse linear systems through the distributed +memory paradigm. It includes routines for multiplying sparse matrices by dense +matrices, solving block diagonal systems with triangular diagonal entries, +preprocessing sparse matrices, and contains additional routines for dense matrix +operations. The current implementation of PSBLAS addresses a distributed memory +execution model operating with message passing. +

The PSBLAS library version 3 is implemented in the Fortran 2003 [17] +programming language, with reuse and/or adaptation of existing Fortran 77 and +Fortran 95 software, plus a handful of C routines. +

The use of Fortran 2003 offers a number of advantages over Fortran 95, 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 discussing advanced programming in Fortran 2003 +include [118]; 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.8). +

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. [16]. 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. +

The presentation of the PSBLAS library follows the general structure of the +proposal for serial Sparse BLAS [89], which in its turn is based on the proposal for +BLAS on dense matrices [1556]. +

The applicability of sparse iterative solvers to many different areas causes some +terminology problems because the same concept may be denoted through different +names depending on the application area. The PSBLAS features presented in this +document will be discussed referring to a finite difference discretization of a Partial +Differential Equation (PDE). However, the scope of the library is wider than that: for +example, it can be applied to finite element discretizations of PDEs, and even to +different classes of problems such as nonlinear optimization, for example in optimal +control problems. +

The design of a solver for sparse linear systems is driven by many conflicting +objectives, such as limiting occupation of storage resources, exploiting regularities in +the input data, exploiting hardware characteristics of the parallel platform. To +achieve an optimal communication to computation ratio on distributed memory +machines it is essential to keep the data locality as high as possible; this can be +done through an appropriate data allocation strategy. The choice of the + + + +preconditioner is another very important factor that affects efficiency of the +implemented application. Optimal data distribution requirements for a given +preconditioner may conflict with distribution requirements of the rest of the solver. +Finding the optimal trade-off may be very difficult because it is application +dependent. Possible solutions to these problems and other important inputs to the +development of the PSBLAS software package have come from an established +experience in applying the PSBLAS solvers to computational fluid dynamics +applications. + + + +

+

+ diff --git a/docs/html/userhtmlse10.html b/docs/html/userhtmlse10.html new file mode 100644 index 00000000..1f076f9c --- /dev/null +++ b/docs/html/userhtmlse10.html @@ -0,0 +1,64 @@ + + +Preconditioner routines + + + + + + + +

+

10 Preconditioner routines

+

The base PSBLAS library contains the implementation of two simple preconditioning +techniques: +

    +
  • Diagonal Scaling +
  • +
  • Block Jacobi with ILU(0) factorization
+

The supporting data type and subroutine interfaces are defined in the module +psb_prec_mod. The old interfaces psb_precinit and psb_precbld are still +supported for backward compatibility + + + +

+ + + + + + + + + +

+ diff --git a/docs/html/userhtmlse11.html b/docs/html/userhtmlse11.html new file mode 100644 index 00000000..9199c4cb --- /dev/null +++ b/docs/html/userhtmlse11.html @@ -0,0 +1,41 @@ + + +Iterative Methods + + + + + + + +

+

11 Iterative Methods

+

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. + + + +

+ + + + +

+ diff --git a/docs/html/userhtmlse2.html b/docs/html/userhtmlse2.html new file mode 100644 index 00000000..226a96ff --- /dev/null +++ b/docs/html/userhtmlse2.html @@ -0,0 +1,125 @@ + + +General overview + + + + + + + +

+

2 General overview

+

The PSBLAS library is designed to handle the implementation of iterative solvers for +sparse linear systems on distributed memory parallel computers. The system +coefficient matrix A must be square; it may be real or complex, nonsymmetric, and +its sparsity pattern needs not to be symmetric. The serial computation parts are +based on the serial sparse BLAS, so that any extension made to the data structures +of the serial kernels is available to the parallel version. The overall design and +parallelization strategy have been 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 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 encapsulated in an +applicaiton layer that has been strongly inspired by the Basic Linear Algebra +Communication Subroutines (BLACS) library [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. +


+ + + + + + + +
+

+

PIC

+
Figure 1: PSBLAS library components hierarchy.
+ + + +


+

The type of linear system matrices that we address typically arise in +the numerical solution of PDEs; in such a context, it is necessary to pay +special attention to the structure of the problem from which the application +originates. The nonzero pattern of a matrix arising from the discretization of a +PDE is influenced by various factors, such as the shape of the domain, the +discretization strategy, and the equation/unknown ordering. The matrix itself can be +interpreted as the adjacency matrix of the graph associated with the discretization +mesh. +

The distribution of the coefficient matrix for the linear system is based on the +“owner computes” rule: the variable associated to each mesh point is assigned to a +process that will own the corresponding row in the coefficient matrix and will +carry out all related computations. This allocation strategy is equivalent to a +partition of the discretization mesh into 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 +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 usage of graph partitioning tools commonly available in +the literature, e.g. METIS [14]. Dense vectors conform to sparse matrices, +that is, the entries of a vector follow the same distribution of the matrix +rows. +

We assume that the sparse matrix is built in parallel, where each process generates +its own portion. We never require that the entire matrix be available on a single +node. However, it is possible to hold the entire matrix in one process and distribute it +explicitly1 , +even though the resulting memory bottleneck would make this option unattractive in +most cases. +

+ + + + + + + +

+ diff --git a/docs/html/userhtmlse3.html b/docs/html/userhtmlse3.html new file mode 100644 index 00000000..d6b907b1 --- /dev/null +++ b/docs/html/userhtmlse3.html @@ -0,0 +1,196 @@ + + +Data Structures and Classes + + + + + + + +

+

3 Data Structures and Classes

+

In this chapter we illustrate the data structures used for definition of routines +interfaces. They include data structures for sparse matrices, communication +descriptors and preconditioners. +

All the data types and the basic subroutine interfaces related to descriptors and +sparse matrices are defined in the module psb_base_mod; this will have to be +included by every user subroutine that makes use of the library. The preconditioners +are defined in the module psb_prec_mod +

Integer, real and complex data types are parametrized with a kind type defined in +the library as follows: +

+psb_spk_
Kind parameter for short precision real and complex data; + corresponds to a REAL declaration and is normally 4 bytes; +
+psb_dpk_
Kind parameter for long precision real and complex data; + corresponds to a DOUBLE PRECISION declaration and is normally 8 bytes; +
+psb_mpk_
Kind parameter for 4-bytes integer data, as is always used by MPI; +
+psb_epk_
Kind parameter for 8-bytes integer data, as is always used by the + sizeof methods; +
+psb_ipk_
Kind parameter for “local” integer indices and data; with default + build options this is a 4 bytes integer; +
+psb_lpk_
Kind parameter for “global” integer indices and data; with default + build options this is an 8 bytes integer;
+

The integer kinds for local and global indices can be chosen at configure time to hold 4 +or 8 bytes, with the global indices at least as large as the local ones. Together with +the classes attributes we also discuss their methods. Most methods detailed here only +act on the local variable, i.e. their action is purely local and asynchronous unless +otherwise stated. The list of methods here is not completely exhaustive; many +methods, especially those that alter the contents of the various objects, are usually +not needed by the end-user, and therefore are described in the developer’s +documentation. + + + +

+

+  3.1 Descriptor data structure +
  3.1.1 Descriptor Methods +
  3.1.2 get_local_rows — Get number of local rows +
  3.1.3 get_local_cols — Get number of local cols +
  3.1.4 get_global_rows — Get number of global rows +
  3.1.5 get_global_cols — Get number of global cols +
  3.1.6 get_global_indices — Get vector of global indices +
  3.1.7 get_context — Get communication context +
  3.1.8 Clone — clone current object +
  3.1.9 CNV — convert internal storage format +
  3.1.10 psb_cd_get_large_threshold — Get threshold for index mapping switch +
  3.1.11 psb_cd_set_large_threshold — Set threshold for index mapping switch +
  3.1.12 get_p_adjcncy — Get process adjacency list +
  3.1.13 set_p_adjcncy — Set process adjacency list +
  3.1.14 fnd_owner — Find the owner process of a set of indices +
  3.1.15 Named Constants +
 3.2 Sparse Matrix class +
  3.2.1 Sparse Matrix Methods +
  3.2.2 get_nrows — Get number of rows in a sparse matrix +
  3.2.3 get_ncols — Get number of columns in a sparse matrix +
  3.2.4 get_nnzeros — Get number of nonzero elements in a sparse matrix +
  3.2.5 get_size — Get maximum number of nonzero elements in a sparse matrix +
  3.2.6 sizeof — Get memory occupation in bytes of a sparse matrix +
  3.2.7 get_fmt — Short description of the dynamic type +
  3.2.8 is_bld, is_upd, is_asb — Status check +
  3.2.9 is_lower, is_upper, is_triangle, is_unit — Format check +
  3.2.10 cscnv — Convert to a different storage format +
  3.2.11 csclip — Reduce to a submatrix +
  3.2.12 clean_zeros — Eliminate zero coefficients +
  3.2.13 get_diag — Get main diagonal +
  3.2.14 clip_diag — Cut out main diagonal +
  3.2.15 tril — Return the lower triangle +
  3.2.16 triu — Return the upper triangle +
  3.2.17 psb_set_mat_default — Set default storage format +
  3.2.18 clone — Clone current object +
  3.2.19 Named Constants +
 3.3 Dense Vector Data Structure +
  3.3.1 Vector Methods +
  3.3.2 get_nrows — Get number of rows in a dense vector +
  3.3.3 sizeof — Get memory occupation in bytes of a dense vector +
  3.3.4 set — Set contents of the vector +
  3.3.5 get_vect — Get a copy of the vector contents +
  3.3.6 clone — Clone current object +
 3.4 Preconditioner data structure +
 3.5 Heap data structure +
+ + + + + + + + +

+ diff --git a/docs/html/userhtmlse4.html b/docs/html/userhtmlse4.html new file mode 100644 index 00000000..af168dc4 --- /dev/null +++ b/docs/html/userhtmlse4.html @@ -0,0 +1,84 @@ + + +Computational routines + + + + + + + +

+

4 Computational routines

+ + + + + + + + + + + + + + + + + + + + + + + +

+ diff --git a/docs/html/userhtmlse5.html b/docs/html/userhtmlse5.html new file mode 100644 index 00000000..4cb38373 --- /dev/null +++ b/docs/html/userhtmlse5.html @@ -0,0 +1,52 @@ + + +Communication routines + + + + + + + +

+

5 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. + + + +

+ + + + + + + +

+ diff --git a/docs/html/userhtmlse6.html b/docs/html/userhtmlse6.html new file mode 100644 index 00000000..0eff0926 --- /dev/null +++ b/docs/html/userhtmlse6.html @@ -0,0 +1,115 @@ + + +Data management routines + + + + + + + +

+

6 Data management routines

+

+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+ diff --git a/docs/html/userhtmlse7.html b/docs/html/userhtmlse7.html new file mode 100644 index 00000000..e08cc891 --- /dev/null +++ b/docs/html/userhtmlse7.html @@ -0,0 +1,87 @@ + + +Parallel environment routines + + + + + + + +

+

7 Parallel environment routines

+ + + + + + + + + + + + + + + + + + + + + + + + +

+ diff --git a/docs/html/userhtmlse8.html b/docs/html/userhtmlse8.html new file mode 100644 index 00000000..504703f8 --- /dev/null +++ b/docs/html/userhtmlse8.html @@ -0,0 +1,418 @@ + + +Error handling + + + + + + + +

+

8 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. +


+ + + + + + + +
+

+

+
subroutine psb_foo(some args, info) 
   ... 
   if(error detected) then 
      info=errcode1 
      call psb_errpush(psb_foo, errcode1) 
      goto 9999 
   end if 
   ... 
   call psb_bar(some args, info) 
   if(info .ne. zero) then 
      info=errcode2 
      call psb_errpush(psb_foo, errcode2) 
      goto 9999 
   end if 
   ... 
9999 continue 
   if (err_act .eq. act_abort) then 
     call psb_error(icontxt) 
     return 
   else 
     return 
   end if 
 
end subroutine psb_foo +
+
+
Figure 9: The layout of a generic psb_foo routine with respect to PSBLAS-2.0 +error handling policy.
+ + + +


+

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). +


+ + + + + + + +
+

+

+========================================================== + 
Process: 0.  PSBLAS Error (4010) in subroutine: df_sample + 
Error from call to subroutine mat dist + 
========================================================== + 
Process: 0.  PSBLAS Error (4010) in subroutine: mat_distv + 
Error from call to subroutine psb_spasb + 
========================================================== + 
Process: 0.  PSBLAS Error (4010) in subroutine: psb_spasb + 
Error from call to subroutine psb_cest + 
========================================================== + 
Process: 0.  PSBLAS Error (136) in subroutine: psb_cest + 
Format FOO is unknown + 
========================================================== + 
Aborting... +
+

+
+
Figure 10: A sample PSBLAS-2.0 error message. Process 0 detected an error +condition inside the psb_cest subroutine
+ + + +


+ + + + + + + + + + + +

+ diff --git a/docs/html/userhtmlse9.html b/docs/html/userhtmlse9.html new file mode 100644 index 00000000..466b3d20 --- /dev/null +++ b/docs/html/userhtmlse9.html @@ -0,0 +1,57 @@ + + +Utilities + + + + + + + +

+

9 Utilities

+

We have some utilities available for input and output of sparse matrices; the +interfaces to these routines are available in the module psb_util_mod. + + + +

+ + + + + + + + + +

+ diff --git a/docs/html/userhtmlsu1.html b/docs/html/userhtmlsu1.html new file mode 100644 index 00000000..4e6f170e --- /dev/null +++ b/docs/html/userhtmlsu1.html @@ -0,0 +1,148 @@ + + +Basic Nomenclature + + + + + + + +

+

2.1 Basic Nomenclature

+

Our computational model implies that the data allocation on the parallel distributed +memory machine is guided by the structure of the physical model, and specifically by +the discretization mesh of the PDE. +

Each point of the discretization mesh will have (at least) one associated +equation/variable, and therefore one index. We say that point i depends on point j if +the equation for a variable associated with i contains a term in j, or equivalently if + + + +aij0. After the partition of the discretization mesh into sub-domains assigned +to the parallel processes, we classify the points of a given sub-domain as +following. +

+Internal.
An internal point of a given domain depends only on points of the + same domain. If all points of a domain are assigned to one process, then + a computational step (e.g., a matrix-vector product) of the equations + associated with the internal points requires no data items from other + domains and no communications. +
+Boundary.
A point of a given domain is a boundary point if it depends on + points belonging to other domains. +
+Halo.
A halo point for a given domain is a point belonging to another domain + such that there is a boundary point which depends on it. Whenever performing + a computational step, such as a matrix-vector product, the values associated + with halo points are requested from other domains. A boundary point of a + given domain is usually a halo point for some other domain2 ; + therefore the cardinality of the boundary points set denotes the amount + of data sent to other domains. +
+Overlap.
An overlap point is a boundary point assigned to multiple domains. + Any operation that involves an overlap point has to be replicated for each + assignment.
+

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 [43]. +

We denote the sets of internal, boundary and halo points for a given subdomain +by I, B and H. Each subdomain is assigned to one process; each process usually owns +one subdomain, although the user may choose to assign more than one subdomain to +a process. If each process i owns one subdomain, the number of rows in +the local sparse matrix is |Ii| + |Bi|, and the number of local columns (i.e. +those for which there exists at least one non-zero entry in the local rows) is +|Ii| + |Bi| + |Hi|. +


+ + + + + + + +
+

+

PIC

+
Figure 2: Point classfication.
+ + + +


+

This classification of mesh points guides the naming scheme that we adopted in +the library internals and in the data structures. We explicitly note that “Halo” points +are also often called “ghost” points in the literature. + + + +

+

+ diff --git a/docs/html/userhtmlsu10.html b/docs/html/userhtmlsu10.html new file mode 100644 index 00000000..e1a66a1f --- /dev/null +++ b/docs/html/userhtmlsu10.html @@ -0,0 +1,233 @@ + + +psb_geaxpby — General Dense Matrix Sum + + + + + + + +

+

4.1 psb_geaxpby — General Dense Matrix Sum

+

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

+y ← α x+ βy
+
+

+ + + +

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

+

+ + + +


+ + + +
+

+

+ + + + +


x, y, α, β Subroutine


Short Precision Real psb_geaxpby
Long Precision Real psb_geaxpby
Short Precision Complexpsb_geaxpby
Long Precision Complex psb_geaxpby


+
Table 1: Data types
+ + + +

+
+
+Type:
Synchronous. +
+On Entry
+
+alpha
the scalar α.
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 or an object of type + psb_T_vect_type containing numbers of type specified in Table 1. The + rank of x must be the same of y. +
+beta
the scalar β.
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 or an object of type + psb_T_vect_type 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: an object of type psb_desc_type. +
+
+On Return
+ + + +
+y
the local portion of result submatrix y.
Scope: local
Type: required
Intent: inout.
Specified as: a rank one or two array or an object of type + psb_T_vect_type 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.
+ + + + + + + +

+ diff --git a/docs/html/userhtmlsu11.html b/docs/html/userhtmlsu11.html new file mode 100644 index 00000000..926766df --- /dev/null +++ b/docs/html/userhtmlsu11.html @@ -0,0 +1,249 @@ + + +psb_gedot — Dot Product + + + + + + + +

+

4.2 psb_gedot — 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: +

+       T
+dot ← x y
+
+

Else if x and y are complex vectors then it computes dot-product as: +

+dot ← xHy
+
+

+ + + +

+psb_gedot(x, y, desc_a, info [,global]) +
+

+ + + +


+ + + +
+

+

+ + + + +


dot, x, y Function


Short Precision Real psb_gedot
Long Precision Real psb_gedot
Short Precision Complexpsb_gedot
Long Precision Complex psb_gedot


+
Table 2: Data types
+ + + +

+
+
+Type:
Synchronous. +
+On Entry
+
+x
the local portion of global dense matrix x.
Scope: local
Type: required
Intent: in.
Specified as: a rank one or two array or an object of type + psb_T_vect_type containing numbers of type specified in Table 2. 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: a rank one or two array or an object of type + psb_T_vect_type containing numbers of type specified in Table 2. 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: an object of type psb_desc_type. +
+global
Specifies whether the computation should include the global reduction + across all processes.
Scope: global
Type: optional.
Intent: in.
Specified as: a logical scalar. Default: global=.true.
+
+On Return
+
+Function value
is the dot product of vectors x and y.
Scope: global unless the optional variable global=.false. has been + specified
Specified as: a number of the data type indicated in Table 2. + + + +
+info
Error code.
Scope: local
Type: required
Intent: out.
An integer value; 0 means no error has been detected.
+

Notes +

    +
  1. The computation of a global result requires a global communication, which + entails a significant overhead. It may be necessary and/or advisable to + compute multiple dot products at the same time; in this case, it is + possible to improve the runtime efficiency by using the following scheme: + +
        vres(1) = psb_gedot(x1,y1,desc_a,info,global=.false.) 
        vres(2) = psb_gedot(x2,y2,desc_a,info,global=.false.) 
        vres(3) = psb_gedot(x3,y3,desc_a,info,global=.false.) 
        call psb_sum(ictxt,vres(1:3)) + +
    +

    In this way the global communication, which for small sizes is a latency-bound + operation, is invoked only once.

+ + + + + + + +

+ diff --git a/docs/html/userhtmlsu12.html b/docs/html/userhtmlsu12.html new file mode 100644 index 00000000..2c3cf7f8 --- /dev/null +++ b/docs/html/userhtmlsu12.html @@ -0,0 +1,208 @@ + + +psb_gedots — Generalized Dot Product + + + + + + + +

+

4.3 psb_gedots — Generalized Dot Product

+

This subroutine computes a series of dot products among the columns of two dense +matrices x and y: +

+            T
+res(i) ← x(:,i) y(:,i)
+
+

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. + + + +

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

+ + + +


+ + + +
+

+

+ + + + +


res, x, y Subroutine


Short Precision Real psb_gedots
Long Precision Real psb_gedots
Short Precision Complexpsb_gedots
Long Precision Complex psb_gedots


+
Table 3: Data types
+ + + +

+
+
+Type:
Synchronous. +
+On Entry
+
+x
the local portion of global dense matrix x.
Scope: local
Type: required
Intent: in.
Specified as: a rank one or two array or an object of type + psb_T_vect_type 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: a rank one or two array or an object of type + psb_T_vect_type containing numbers of type specified in Table 3. 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: an object of type psb_desc_type. +
+On Return
+
+res
is the dot product of vectors x and y.
Scope: global
Intent: out.
Specified as: a number or a rank-one array of the data type indicated in + Table 2. +
+info
Error code.
Scope: local
Type: required
Intent: out.
An integer value; 0 means no error has been detected.
+ + + + + + + +

+ diff --git a/docs/html/userhtmlsu13.html b/docs/html/userhtmlsu13.html new file mode 100644 index 00000000..db09267b --- /dev/null +++ b/docs/html/userhtmlsu13.html @@ -0,0 +1,223 @@ + + +psb_normi — Infinity-Norm of Vector + + + + + + + +

+

4.4 psb_normi — Infinity-Norm of Vector

+

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

+amax  ← maxi |xi|
+
+

else if x is a complex vector then it computes the infinity-norm as: +

+amax ← maxi (|re(xi)|+ |im(xi)|)
+
+

+ + + +

+psb_geamax(x, desc_a, info [,global]) + 
psb_normi(x, desc_a, info [,global]) +
+

+

+ + + +


+ + + +
+

+

+ + + +



amax x Function



Short Precision RealShort Precision Real psb_geamax
Long Precision Real Long Precision Real psb_geamax
Short Precision RealShort Precision Complexpsb_geamax
Long Precision Real Long Precision Complex psb_geamax



+
Table 4: Data types
+ + + +

+
+
+Type:
Synchronous. +
+On Entry
+
+x
the local portion of global dense matrix x.
Scope: local
Type: required
Intent: in.
Specified as: a rank one or two array or an object of type + psb_T_vect_type containing numbers of type specified in Table 4. +
+desc_a
contains data structures for communications.
Scope: local
Type: required
Intent: in.
Specified as: an object of type psb_desc_type. +
+global
Specifies whether the computation should include the global reduction + across all processes.
Scope: global
Type: optional.
Intent: in.
Specified as: a logical scalar. Default: global=.true.
+
+On Return
+
+Function value
is the infinity norm of vector x.
Scope: global unless the optional variable global=.false. has been + specified
Specified as: a long precision real number. +
+info
Error code.
Scope: local
Type: required
Intent: out.
An integer value; 0 means no error has been detected.
+

Notes + + + +

    +
  1. The computation of a global result requires a global communication, which + entails a significant overhead. It may be necessary and/or advisable to compute + multiple norms at the same time; in this case, it is possible to improve the + runtime efficiency by using the following scheme: +
        vres(1) = psb_geamax(x1,desc_a,info,global=.false.) 
        vres(2) = psb_geamax(x2,desc_a,info,global=.false.) 
        vres(3) = psb_geamax(x3,desc_a,info,global=.false.) 
        call psb_amx(ictxt,vres(1:3)) + +
    +

    In this way the global communication, which for small sizes is a latency-bound + operation, is invoked only once.

+ + + + + + + +

+ diff --git a/docs/html/userhtmlsu14.html b/docs/html/userhtmlsu14.html new file mode 100644 index 00000000..5b9f01c1 --- /dev/null +++ b/docs/html/userhtmlsu14.html @@ -0,0 +1,177 @@ + + +psb_geamaxs — Generalized Infinity Norm + + + + + + + +

+

4.5 psb_geamaxs — Generalized Infinity Norm

+

This subroutine computes a series of infinity norms on the columns of a dense matrix +x: +

+res(i) ← makx|x(k,i)|
+
+

+ + + +

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

+

+ + + +


+ + + +
+

+

+ + + +



res x Subroutine



Short Precision RealShort Precision Real psb_geamaxs
Long Precision Real Long Precision Real psb_geamaxs
Short Precision RealShort Precision Complexpsb_geamaxs
Long Precision Real Long Precision Complex psb_geamaxs



+
Table 5: Data types
+ + + +

+
+
+Type:
Synchronous. +
+On Entry
+
+x
the local portion of global dense matrix x.
Scope: local
Type: required
Intent: in.
Specified as: a rank one or two array or an object of type + psb_T_vect_type containing numbers of type specified in Table 5. +
+desc_a
contains data structures for communications.
Scope: local
Type: required
Intent: in.
Specified as: an object of type psb_desc_type. +
+On Return
+
+res
is the infinity norm of the columns of x.
Scope: global
Intent: out.
Specified as: a number or a rank-one array of long precision real numbers. +
+info
Error code.
Scope: local
Type: required
Intent: out.
An integer value; 0 means no error has been detected.
+ + + + + + + +

+ diff --git a/docs/html/userhtmlsu15.html b/docs/html/userhtmlsu15.html new file mode 100644 index 00000000..61096aa2 --- /dev/null +++ b/docs/html/userhtmlsu15.html @@ -0,0 +1,224 @@ + + +psb_norm1 — 1-Norm of Vector + + + + + + + +

+

4.6 psb_norm1 — 1-Norm of Vector

+

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

+asum ←  ∥xi∥
+
+

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

+asum ←  ∥re(x)∥ + ∥im (x)∥
+              1         1
+
+

+ + + +

+psb_geasum(x, desc_a, info [,global]) + 
psb_norm1(x, desc_a, info [,global]) +
+

+

+ + + +


+ + + +
+

+

+ + + +



asum x Function



Short Precision RealShort Precision Real psb_geasum
Long Precision Real Long Precision Real psb_geasum
Short Precision RealShort Precision Complexpsb_geasum
Long Precision Real Long Precision Complex psb_geasum



+
Table 6: Data types
+ + + +

+
+
+Type:
Synchronous. +
+On Entry
+
+x
the local portion of global dense matrix x.
Scope: local
Type: required
Intent: in.
Specified as: a rank one or two array or an object of type + psb_T_vect_type containing numbers of type specified in Table 6. +
+desc_a
contains data structures for communications.
Scope: local
Type: required
Intent: in.
Specified as: an object of type psb_desc_type. +
+global
Specifies whether the computation should include the global reduction + across all processes.
Scope: global
Type: optional.
Intent: in.
Specified as: a logical scalar. Default: global=.true.
+
+On Return
+
+Function value
is the 1-norm of vector x.
Scope: global unless the optional variable global=.false. has been + specified
Specified as: a long precision real number. +
+info
Error code.
Scope: local
Type: required
Intent: out.
An integer value; 0 means no error has been detected.
+

Notes + + + +

    +
  1. The computation of a global result requires a global communication, which + entails a significant overhead. It may be necessary and/or advisable to compute + multiple norms at the same time; in this case, it is possible to improve the + runtime efficiency by using the following scheme: +
        vres(1) = psb_geasum(x1,desc_a,info,global=.false.) 
        vres(2) = psb_geasum(x2,desc_a,info,global=.false.) 
        vres(3) = psb_geasum(x3,desc_a,info,global=.false.) 
        call psb_sum(ictxt,vres(1:3)) + +
    +

    In this way the global communication, which for small sizes is a latency-bound + operation, is invoked only once.

+ + + + + + + +

+ diff --git a/docs/html/userhtmlsu16.html b/docs/html/userhtmlsu16.html new file mode 100644 index 00000000..d7792e50 --- /dev/null +++ b/docs/html/userhtmlsu16.html @@ -0,0 +1,192 @@ + + +psb_geasums — Generalized 1-Norm of Vector + + + + + + + +

+

4.7 psb_geasums — Generalized 1-Norm of Vector

+

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

+res(i) ← makx|x(k,i)|
+
+

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

+res(i) ← ∥xi∥
+
+

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

+res(i) ← ∥re(x )∥1 +∥im (x )∥1
+
+

+ + + +

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

+

+ + + +


+ + + +
+

+

+ + + +



res x Subroutine



Short Precision RealShort Precision Real psb_geasums
Long Precision Real Long Precision Real psb_geasums
Short Precision RealShort Precision Complexpsb_geasums
Long Precision Real Long Precision Complex psb_geasums



+
Table 7: Data types
+ + + +

+
+
+Type:
Synchronous. +
+On Entry
+
+x
the local portion of global dense matrix x.
Scope: local
Type: required
Intent: in.
Specified as: a rank one or two array or an object of type + psb_T_vect_type containing numbers of type specified in Table 7. +
+desc_a
contains data structures for communications.
Scope: local
Type: required
Intent: in.
Specified as: an object of type psb_desc_type. +
+On Return
+
+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
Error code.
Scope: local
Type: required
Intent: out.
An integer value; 0 means no error has been detected.
+ + + + + + + +

+ diff --git a/docs/html/userhtmlsu17.html b/docs/html/userhtmlsu17.html new file mode 100644 index 00000000..f040eafb --- /dev/null +++ b/docs/html/userhtmlsu17.html @@ -0,0 +1,227 @@ + + +psb_norm2 — 2-Norm of Vector + + + + + + + +

+

4.8 psb_norm2 — 2-Norm of Vector

+

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

+        √ -T--
+nrm2  ←   x x
+
+

else if x is a complex vector then it computes 2-norm as: +

+        √----
+nrm2 ←   xHx
+
+

+

+ + + +


+ + + +
+

+

+ + + +



nrm2 x Function



Short Precision RealShort Precision Real psb_genrm2
Long Precision Real Long Precision Real psb_genrm2
Short Precision RealShort Precision Complexpsb_genrm2
Long Precision Real Long Precision Complex psb_genrm2



+
Table 8: Data types
+ + + +

+
+ + + +
+psb_genrm2(x, desc_a, info [,global]) + 
psb_norm2(x, desc_a, info [,global]) +
+

+

+Type:
Synchronous. +
+On Entry
+
+x
the local portion of global dense matrix x.
Scope: local
Type: required
Intent: in.
Specified as: a rank one or two array or an object of type + psb_T_vect_type containing numbers of type specified in Table 8. +
+desc_a
contains data structures for communications.
Scope: local
Type: required
Intent: in.
Specified as: an object of type psb_desc_type. +
+global
Specifies whether the computation should include the global reduction + across all processes.
Scope: global
Type: optional.
Intent: in.
Specified as: a logical scalar. Default: global=.true.
+
+On Return
+
+Function Value
is the 2-norm of vector x.
Scope: global unless the optional variable global=.false. has been + specified
Type: required
Specified as: a long precision real number. +
+info
Error code.
Scope: local
Type: required
Intent: out.
An integer value; 0 means no error has been detected.
+ + + +

Notes +

    +
  1. The computation of a global result requires a global communication, which + entails a significant overhead. It may be necessary and/or advisable to compute + multiple norms at the same time; in this case, it is possible to improve the + runtime efficiency by using the following scheme: +
        vres(1) = psb_genrm2(x1,desc_a,info,global=.false.) 
        vres(2) = psb_genrm2(x2,desc_a,info,global=.false.) 
        vres(3) = psb_genrm2(x3,desc_a,info,global=.false.) 
        call psb_nrm2(ictxt,vres(1:3)) + +
    +

    In this way the global communication, which for small sizes is a latency-bound + operation, is invoked only once.

+ + + + + + + +

+ diff --git a/docs/html/userhtmlsu18.html b/docs/html/userhtmlsu18.html new file mode 100644 index 00000000..fa1be28a --- /dev/null +++ b/docs/html/userhtmlsu18.html @@ -0,0 +1,177 @@ + + +psb_genrm2s — Generalized 2-Norm of Vector + + + + + + + +

+

4.9 psb_genrm2s — Generalized 2-Norm of Vector

+

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

+res(i) ← ∥x(:,i)∥2
+
+

+ + + +

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

+

+ + + +


+ + + +
+

+

+ + + +



res x Subroutine



Short Precision RealShort Precision Real psb_genrm2s
Long Precision Real Long Precision Real psb_genrm2s
Short Precision RealShort Precision Complexpsb_genrm2s
Long Precision Real Long Precision Complex psb_genrm2s



+
Table 9: Data types
+ + + +

+
+
+Type:
Synchronous. +
+On Entry
+
+x
the local portion of global dense matrix x.
Scope: local
Type: required
Intent: in.
Specified as: a rank one or two array or an object of type + psb_T_vect_type containing numbers of type specified in Table 9. +
+desc_a
contains data structures for communications.
Scope: local
Type: required
Intent: in.
Specified as: an object of type psb_desc_type. +
+On Return
+
+res
contains the 1-norm of (the columns of) x.
Scope: global
Intent: out.
Specified as: a long precision real number. +
+info
Error code.
Scope: local
Type: required
Intent: out.
An integer value; 0 means no error has been detected.
+ + + + + + + +

+ diff --git a/docs/html/userhtmlsu19.html b/docs/html/userhtmlsu19.html new file mode 100644 index 00000000..8de063d6 --- /dev/null +++ b/docs/html/userhtmlsu19.html @@ -0,0 +1,171 @@ + + +psb_norm1 — 1-Norm of Sparse Matrix + + + + + + + +

+

4.10 psb_norm1 — 1-Norm of Sparse Matrix

+

This function computes the 1-norm of a matrix A:
+

+nrm1 ← ∥A ∥1
+
+

where: +

+A
represents the global matrix A
+
+ + + +


+ + + +
+

+

+ + + +


A Function


Short Precision Real psb_spnrm1
Long Precision Real psb_spnrm1
Short Precision Complexpsb_spnrm1
Long Precision Complex psb_spnrm1


+
Table 10: Data types
+ + + +

+
+ + + +
+psb_spnrm1(A, desc_a, info) + 
psb_norm1(A, desc_a, info) +
+

+

+Type:
Synchronous. +
+On Entry
+
+a
the local portion of the global sparse matrix A.
Scope: local
Type: required
Intent: in.
Specified as: an object of type psb_Tspmat_type. +
+desc_a
contains data structures for communications.
Scope: local
Type: required
Intent: in.
Specified as: an object of type psb_desc_type. +
+On Return
+
+Function value
is the 1-norm of sparse submatrix A.
Scope: global
Specified as: a long precision real number. +
+info
Error code.
Scope: local
Type: required
Intent: out.
An integer value; 0 means no error has been detected.
+ + + + + + + +

+ diff --git a/docs/html/userhtmlsu2.html b/docs/html/userhtmlsu2.html new file mode 100644 index 00000000..9c452948 --- /dev/null +++ b/docs/html/userhtmlsu2.html @@ -0,0 +1,129 @@ + + +Library contents + + + + + + + +

+

2.2 Library contents

+

The PSBLAS library consists of various classes of subroutines: +

+Computational routines
comprising: +
    +
  • Sparse matrix by dense matrix product; +
  • +
  • Sparse triangular systems solution for block diagonal matrices; +
  • +
  • Vector and matrix norms; +
  • +
  • Dense matrix sums; +
  • +
  • Dot products.
+
+Communication routines
handling halo and overlap communications; +
+Data management and auxiliary routines
including: +
    +
  • Parallel environment management +
  • +
  • Communication descriptors allocation; +
  • +
  • Dense and sparse matrix allocation; +
  • +
  • Dense and sparse matrix build and update; +
  • +
  • Sparse matrix and data distribution preprocessing.
+
+Preconditioner routines
+
+Iterative methods
a subset of Krylov subspace iterative methods
+

The following naming scheme has been adopted for all the symbols internally defined in +the PSBLAS software package: +

    +
  • all symbols (i.e. subroutine names, data types...) are prefixed by psb_ + + + +
  • +
  • all data type names are suffixed by _type +
  • +
  • all constants are suffixed by _ +
  • +
  • all top-level subroutine names follow the rule psb_xxname where xx can be + either: +
      +
    • ge: the routine is related to dense data, +
    • +
    • sp: the routine is related to sparse data, +
    • +
    • cd: the routine is related to communication descriptor (see 3).
    +

    For example the psb_geins, psb_spins and 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 names for both real and complex data.

+

In the description of the subroutines, arguments or argument entries are classified +as: +

+global
For input arguments, the value must be the same on all processes + participating in the subroutine call; for output arguments the value is + guaranteed to be the same. +
+local
Each process has its own value(s) independently.
+

To finish our general description, we define a version string with the constant +

+psb_version_string_
+
+

whose current value is 3.4.0 + + + +

+

+ diff --git a/docs/html/userhtmlsu20.html b/docs/html/userhtmlsu20.html new file mode 100644 index 00000000..6b967d32 --- /dev/null +++ b/docs/html/userhtmlsu20.html @@ -0,0 +1,171 @@ + + +psb_normi — Infinity Norm of Sparse Matrix + + + + + + + +

+

4.11 psb_normi — Infinity Norm of Sparse Matrix

+

This function computes the infinity-norm of a matrix A:
+

+nrmi ←  ∥A∥∞
+
+

where: +

+A
represents the global matrix A
+
+ + + +


+ + + +
+

+

+ + + +


A Function


Short Precision Real psb_spnrmi
Long Precision Real psb_spnrmi
Short Precision Complexpsb_spnrmi
Long Precision Complex psb_spnrmi


+
Table 11: Data types
+ + + +

+
+ + + +
+psb_spnrmi(A, desc_a, info) + 
psb_normi(A, desc_a, info) +
+

+

+Type:
Synchronous. +
+On Entry
+
+a
the local portion of the global sparse matrix A.
Scope: local
Type: required
Intent: in.
Specified as: an object of type psb_Tspmat_type. +
+desc_a
contains data structures for communications.
Scope: local
Type: required
Intent: in.
Specified as: an object of type psb_desc_type. +
+On Return
+
+Function value
is the infinity-norm of sparse submatrix A.
Scope: global
Specified as: a long precision real number. +
+info
Error code.
Scope: local
Type: required
Intent: out.
An integer value; 0 means no error has been detected.
+ + + + + + + +

+ diff --git a/docs/html/userhtmlsu21.html b/docs/html/userhtmlsu21.html new file mode 100644 index 00000000..1473890e --- /dev/null +++ b/docs/html/userhtmlsu21.html @@ -0,0 +1,337 @@ + + +psb_spmm — Sparse Matrix by Dense Matrix Product + + + + + + + +

+

4.12 psb_spmm — Sparse Matrix by Dense Matrix Product

+

This subroutine computes the Sparse Matrix by Dense Matrix Product: +
+
+y ← αAx + βy
+
(1)
+

+
+
+y ← αAT x+ βy
+
(2)
+

+
+
+      H
+y ← αA  x+ βy
+                                                                  
+
+                                                                  
+
(3)
+

+

where: +

+x
is the global dense matrix x:,: +
+y
is the global dense matrix y:,: +
+A
is the global sparse matrix A
+
+ + + +


+ + + +
+

+

+ + + + +


A, x, y, α, β Subroutine


Short Precision Real psb_spmm
Long Precision Real psb_spmm
Short Precision Complexpsb_spmm
Long Precision Complex psb_spmm


+
Table 12: 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:
Synchronous. +
+On Entry
+
+alpha
the scalar α.
Scope: global
Type: required
Intent: in.
Specified as: a number of the data type indicated in Table 12. +
+a
the local portion of the sparse matrix A.
Scope: local
Type: required
Intent: in.
Specified as: an object of type psb_Tspmat_type. +
+x
the local portion of global dense matrix x.
Scope: local
Type: required
Intent: in.
Specified as: a rank one or two array or an object of type + psb_T_vect_type containing numbers of type specified in Table 12. The + rank of x must be the same of y. +
+beta
the scalar β.
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 or an object of type + psb_T_vect_type 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: an object of type psb_desc_type. +
+trans
indicates 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
+
+y
the local portion of result 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.
+ + + + + + + +

+ diff --git a/docs/html/userhtmlsu22.html b/docs/html/userhtmlsu22.html new file mode 100644 index 00000000..bd1ad807 --- /dev/null +++ b/docs/html/userhtmlsu22.html @@ -0,0 +1,400 @@ + + +psb_spsm — Triangular System Solve + + + + + + + +

+

4.13 psb_spsm — Triangular System Solve

+

This subroutine computes the Triangular System Solve: +

+
+y  ←   αT- 1x + βy
+           -1
+y  ←   αDT   x +βy
+y  ←   αT- 1Dx  +βy
+y  ←   αT- Tx+ βy
+y  ←   αDT -Tx + βy
+         - T
+y  ←   αT   Dx + βy
+y  ←   αT- Hx +βy
+y  ←   αDT -Hx + βy
+y  ←   αT- HDx + βy
+
+
+

where: +

+x
is the global dense matrix x:,: +
+y
is the global dense matrix y:,: +
+T
is the global sparse block triangular submatrix T +
+D
is the scaling diagonal matrix.
+ + + +
+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) +
+

+

+ + + +


+ + + +
+

+

+ + + + +


T, x, y, D, α, β Subroutine


Short Precision Real psb_spsm
Long Precision Real psb_spsm
Short Precision Complexpsb_spsm
Long Precision Complex psb_spsm


+
Table 13: Data types
+ + + +

+
+
+Type:
Synchronous. +
+On Entry
+
+alpha
the scalar α.
Scope: global
Type: required
Intent: in.
Specified as: a number of the data type indicated in Table 13. +
+t
the global portion of the sparse matrix T.
Scope: local
Type: required
Intent: in.
Specified as: an object 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 or an object of type + psb_T_vect_type containing numbers of type specified in Table 13. The + rank of x must be the same of y. +
+beta
the scalar β.
Scope: global
Type: required
Intent: in.
Specified as: a number of the data type indicated in Table 13. +
+y
the local portion of global dense matrix y.
Scope: local
Type: required
Intent: inout.
Specified as: a rank one or two array or an object of type + psb_T_vect_type containing numbers of type specified in Table 13. 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: an object of type psb_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(noscaling)
Specified as: a rank one array containing numbers of the type indicated in + Table 13. +
+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 13. +
+info
Error code.
Scope: local
Type: required
Intent: out.
An integer value; 0 means no error has been detected.
+ + + + + + + +

+ diff --git a/docs/html/userhtmlsu23.html b/docs/html/userhtmlsu23.html new file mode 100644 index 00000000..720f7151 --- /dev/null +++ b/docs/html/userhtmlsu23.html @@ -0,0 +1,201 @@ + + +psb_gemlt — Entrywise Product + + + + + + + +

+

4.14 psb_gemlt — Entrywise Product

+

This function computes the entrywise product between two vectors x and +y +

+dot ← x(i)y(i).
+
+

+ + + +

+psb_gemlt(x, y, desc_a, info) +
+

+ + + +


+ + + +
+

+

+ + + + +


dot, x, y Function


Short Precision Real psb_gemlt
Long Precision Real psb_gemlt
Short Precision Complexpsb_gemlt
Long Precision Complex psb_gemlt


+
Table 14: Data types
+ + + +

+
+
+Type:
Synchronous. +
+On Entry
+
+x
the local portion of global dense vector x.
Scope: local
Type: required
Intent: in.
Specified as: an object of type psb_T_vect_type containing numbers of + type specified in Table 2. +
+y
the local portion of global dense vector y.
Scope: local
Type: required
Intent: in.
Specified as: an object of type psb_T_vect_type containing numbers of + type specified in Table 2. +
+desc_a
contains data structures for communications.
Scope: local
Type: required
Intent: in.
Specified as: an object of type psb_desc_type. +
+On Return
+
+y
the local portion of result submatrix y.
Scope: local
Type: required
Intent: inout.
Specified as: an object of type psb_T_vect_type containing numbers of + the type indicated in Table 14. +
+info
Error code.
Scope: local
Type: required
Intent: out.
An integer value; 0 means no error has been detected.
+ + + + + + + +

+ diff --git a/docs/html/userhtmlsu24.html b/docs/html/userhtmlsu24.html new file mode 100644 index 00000000..bd88f8f7 --- /dev/null +++ b/docs/html/userhtmlsu24.html @@ -0,0 +1,215 @@ + + +psb_gediv — Entrywise Division + + + + + + + +

+

4.15 psb_gediv — Entrywise Division

+

This function computes the entrywise division between two vectors x and +y +

+∕ ← x(i)∕y(i).
+
+

+ + + +

+psb_gediv(x, y, desc_a, info, [flag) +
+

+ + + +


+ + + +
+

+

+ + + + +


, x, y Function


Short Precision Real psb_gediv
Long Precision Real psb_gediv
Short Precision Complexpsb_gediv
Long Precision Complex psb_gediv


+
Table 15: Data types
+ + + +

+
+
+Type:
Synchronous. +
+On Entry
+
+x
the local portion of global dense vector x.
Scope: local
Type: required
Intent: in.
Specified as: an object of type psb_T_vect_type containing numbers of + type specified in Table 2. +
+y
the local portion of global dense vector y.
Scope: local
Type: required
Intent: in.
Specified as: an object of type psb_T_vect_type containing numbers of + type specified in Table 2. +
+desc_a
contains data structures for communications.
Scope: local
Type: required
Intent: in.
Specified as: an object of type psb_desc_type. +
+flag
check if any of the y(i) = 0, and in case returns error halting the + computation.
Scope: local
Type: optional Intent: in.
Specified as: the logical value flag=.true. +
+On Return
+
+x
the local portion of result submatrix x.
Scope: local
Type: required
Intent: inout.
Specified as: an object of type psb_T_vect_type containing numbers of + the type indicated in Table 14. +
+info
Error code.
Scope: local
Type: required
Intent: out.
An integer value; 0 means no error has been detected.
+ + + + + + + +

+ diff --git a/docs/html/userhtmlsu25.html b/docs/html/userhtmlsu25.html new file mode 100644 index 00000000..2e9a6410 --- /dev/null +++ b/docs/html/userhtmlsu25.html @@ -0,0 +1,194 @@ + + +psb_geinv — Entrywise Inversion + + + + + + + +

+

4.16 psb_geinv — Entrywise Inversion

+

This function computes the entrywise inverse of a vector x and puts it into +y +

+∕ ← 1∕x(i).
+
+

+ + + +

+psb_geinv(x, y, desc_a, info, [flag) +
+

+ + + +


+ + + +
+

+

+ + + + +


, x, y Function


Short Precision Real psb_geinv
Long Precision Real psb_geinv
Short Precision Complexpsb_geinv
Long Precision Complex psb_geinv


+
Table 16: Data types
+ + + +

+
+
+Type:
Synchronous. +
+On Entry
+
+x
the local portion of global dense vector x.
Scope: local
Type: required
Intent: in.
Specified as: an object of type psb_T_vect_type containing numbers of + type specified in Table 2. +
+desc_a
contains data structures for communications.
Scope: local
Type: required
Intent: in.
Specified as: an object of type psb_desc_type. +
+flag
check if any of the x(i) = 0, and in case returns error halting the + computation.
Scope: local
Type: optional Intent: in.
Specified as: the logical value flag=.true. +
+On Return
+
+y
the local portion of result submatrix x.
Scope: local
Type: required
Intent: out.
Specified as: an object of type psb_T_vect_type 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.
+ + + + + + + +

+ diff --git a/docs/html/userhtmlsu26.html b/docs/html/userhtmlsu26.html new file mode 100644 index 00000000..2287390e --- /dev/null +++ b/docs/html/userhtmlsu26.html @@ -0,0 +1,831 @@ + + +psb_halo — Halo Data Communication + + + + + + + +

+

5.1 psb_halo — Halo Data Communication

+

These subroutines gathers the values of the halo elements: +

+x ← x
+
+

where: +

+x
is a global dense submatrix.
+
+ + + +


+ + + +
+

+

+ + + + + +


α, x Subroutine


Integer psb_halo
Short Precision Real psb_halo
Long Precision Real psb_halo
Short Precision Complexpsb_halo
Long Precision Complex psb_halo


+
Table 17: Data types
+ + + +

+
+ +
call psb_halo(x, desc_a, info) 
call psb_halo(x, desc_a, info, 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 or an object of type + psb_T_vect_type containing numbers of type specified in Table 17. +
+desc_a
contains data structures for communications.
Scope: local
Type: required
Intent: in.
Specified as: a structured data of type psb_desc_type. +
+work
the work array.
Scope: local
Type: optional
Intent: inout.
Specified as: a rank one array of the same type of x. +
+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 17. +
+info
the local portion of result submatrix y.
Scope: local
Type: required
Intent: out.
An integer value that contains an error code.
+


+
+

+

PIC

+
Figure 7: Sample discretization mesh.
+


+

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 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
+
IGLOB(I)X(I) IGLOB(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.010 42 2.0
11 11 1.011 43 2.0
12 12 1.012 44 2.0
13 13 1.013 45 2.0
14 14 1.014 46 2.0
15 15 1.015 47 2.0
16 16 1.016 48 2.0
17 17 1.017 49 2.0
18 18 1.018 50 2.0
19 19 1.019 51 2.0
20 20 1.020 52 2.0
21 21 1.021 53 2.0
22 22 1.022 54 2.0
23 23 1.023 55 2.0
24 24 1.024 56 2.0
25 25 1.025 57 2.0
26 26 1.026 58 2.0
27 27 1.027 59 2.0
28 28 1.028 60 2.0
29 29 1.029 61 2.0
30 30 1.030 62 2.0
31 31 1.031 63 2.0
32 32 1.032 64 2.0
33 33 2.033 25 1.0
34 34 2.034 26 1.0
35 35 2.035 27 1.0
36 36 2.036 28 1.0
37 37 2.037 29 1.0
38 38 2.038 30 1.0
39 39 2.039 31 1.0
40 40 2.040 32 1.0
+ + + +

+
+ + + + + + + +

+ diff --git a/docs/html/userhtmlsu27.html b/docs/html/userhtmlsu27.html new file mode 100644 index 00000000..2bb4e849 --- /dev/null +++ b/docs/html/userhtmlsu27.html @@ -0,0 +1,1013 @@ + + +psb_ovrl — Overlap Update + + + + + + + +

+

5.2 psb_ovrl — Overlap Update

+

These subroutines applies an overlap operator to the input vector: +

+x ← Qx
+
+

where: +

+x
is the global dense submatrix x +
+Q
is the overlap operator; it is the composition of two operators Pa and PT.
+
+ + + +


+ + + +
+

+

+ + + +


x Subroutine


Short Precision Real psb_ovrl
Long Precision Real psb_ovrl
Short Precision Complexpsb_ovrl
Long Precision Complex psb_ovrl


+
Table 18: Data types
+ + + +

+
+ +
call psb_ovrl(x, desc_a, info) 
call psb_ovrl(x, desc_a, info, update=update_type, work=work) + +
+
+Type:
Synchronous. +
+On Entry
+
+x
global dense matrix x.
Scope: local
Type: required
Intent: inout.
Specified as: a rank one or two array or an object of type + psb_T_vect_type containing numbers of type specified in Table 18. +
+desc_a
contains data structures for communications.
Scope: local
Type: required
Intent: in.
Specified as: a structured data of type psb_desc_type. +
+update
Update operator.
+
+ update = psb_none_
Do nothing; +
+ update = psb_add_
Sum overlap entries, i.e. apply PT; +
+ update = psb_avg_
Average overlap entries, i.e. apply PaPT;
+

Scope: global
Intent: in.
Default: update_type = psb_avg_
Scope: global
Specified as: a integer variable. +

+work
the work array.
Scope: local
Type: optional
Intent: inout.
Specified as: a one dimensional array of the same type of x. + + + +
+On Return
+
+x
global dense result matrix x.
Scope: local
Type: required
Intent: inout.
Specified as: an array of rank one or two containing numbers of type specified + in Table 18. +
+info
Error code.
Scope: local
Type: required
Intent: out.
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 PT performs the reduction sum of overlap elements; it is a + “prolongation” operator PT that replicates overlap elements, accounting + for the physical replication of data; +
  4. +
  5. The operator Pa 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.
+


+ + + + + + + +
+

+

PIC

+
Figure 8: Sample discretization mesh.
+ + + +


+

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
+
IGLOB(I)X(I) IGLOB(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.010 42 2.0
11 11 1.011 43 2.0
12 12 1.012 44 2.0
13 13 1.013 45 2.0
14 14 1.014 46 2.0
15 15 1.015 47 2.0
16 16 1.016 48 2.0
17 17 1.017 49 2.0
18 18 1.018 50 2.0
19 19 1.019 51 2.0
20 20 1.020 52 2.0
21 21 1.021 53 2.0
22 22 1.022 54 2.0
23 23 1.023 55 2.0
24 24 1.024 56 2.0
25 25 1.525 57 2.0
26 26 1.526 58 2.0
27 27 1.527 59 2.0
28 28 1.528 60 2.0
29 29 1.529 61 2.0
30 30 1.530 62 2.0
31 31 1.531 63 2.0
32 32 1.532 64 2.0
33 33 1.533 25 1.5
34 34 1.534 26 1.5
35 35 1.535 27 1.5
36 36 1.536 28 1.5
37 37 1.537 29 1.5
38 38 1.538 30 1.5
39 39 1.539 31 1.5
40 40 1.540 32 1.5
41 41 2.041 17 1.0
42 42 2.042 18 1.0
43 43 2.043 19 1.0
44 44 2.044 20 1.0
45 45 2.045 21 1.0
46 46 2.046 22 1.0
47 47 2.047 23 1.0
48 48 2.048 24 1.0
+ + + +

+
+ + + + + + + +

+ diff --git a/docs/html/userhtmlsu28.html b/docs/html/userhtmlsu28.html new file mode 100644 index 00000000..45fa580e --- /dev/null +++ b/docs/html/userhtmlsu28.html @@ -0,0 +1,225 @@ + + +psb_gather — Gather Global Dense Matrix + + + + + + + +

+

5.3 psb_gather — Gather Global Dense Matrix

+

These subroutines collect the portions of global dense matrix distributed over all +process into one single array stored on one process. +

+glob-x ← collect(loc-xi)
+
+

where: +

+glob_x
is the global submatrix glob_x1:m,1:n +
+loc_xi
is the local portion of global dense matrix on process i. +
+collect
is the collect function.
+
+ + + +


+ + + +
+

+

+ + + + + +


xi,y Subroutine


Integer psb_gather
Short Precision Real psb_gather
Long Precision Real psb_gather
Short Precision Complexpsb_gather
Long Precision Complex psb_gather


+
Table 19: Data types
+ + + +

+
+ +
call psb_gather(glob_x, loc_x, desc_a, info, root) 
call psb_gather(glob_x, loc_x, desc_a, info, root) + +
+
+Type:
Synchronous. +
+On Entry
+
+loc_x
the local portion of global dense matrix glob_x.
Scope: local
Type: required
Intent: in.
Specified as: a rank one or two array or an object of type + psb_T_vect_type indicated in Table 19. +
+desc_a
contains data structures for communications.
Scope: local
Type: required
Intent: in.
Specified as: a structured data of type psb_desc_type. +
+root
The process that holds the global copy. If root = -1 all the processes will + have a copy of the global vector.
Scope: global
Type: optional
Intent: in.
Specified as: an integer variable -1 root np - 1, default -1. +
+On Return
+
+glob_x
The array where the local parts must be gathered.
Scope: global
Type: required
Intent: out.
Specified as: a rank one or two array with the ALLOCATABLE attribute. +
+info
Error code.
Scope: local
Type: required
Intent: out.
An integer value; 0 means no error has been detected.
+ + + + + + + +

+ diff --git a/docs/html/userhtmlsu29.html b/docs/html/userhtmlsu29.html new file mode 100644 index 00000000..7186e307 --- /dev/null +++ b/docs/html/userhtmlsu29.html @@ -0,0 +1,244 @@ + + +psb_scatter — Scatter Global Dense Matrix + + + + + + + +

+

5.4 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. +

+loc-xi ← scatter(glob-x)
+
+

where: +

+glob_x
is the global matrix glob_x1:m,1:n +
+loc_xi
is the local portion of global dense matrix on process i. +
+scatter
is the scatter function.
+
+ + + +


+ + + +
+

+

+ + + + + +


xi,y Subroutine


Integer psb_scatter
Short Precision Real psb_scatter
Long Precision Real psb_scatter
Short Precision Complexpsb_scatter
Long Precision Complex psb_scatter


+
Table 20: Data types
+ + + +

+
+ +
call psb_scatter(glob_x, loc_x, desc_a, info, root, mold) + +
+
+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 psb_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 root np - 1, default psb_root_, + i.e. process 0. +
+mold
The desired dynamic type for the internal vector storage.
Scope: local.
Type: optional.
Intent: in.
Specified as: an object of a class derived from psb_T_base_vect_type; + this is only allowed when loc_x is of type psb_T_vect_type. +
+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 ALLOCATABLE array or an object of type + psb_T_vect_type containing numbers of the type indicated in Table 20. +
+info
Error code.
Scope: local
Type: required
Intent: out.
An integer value; 0 means no error has been detected.
+ + + + + + + +

+ diff --git a/docs/html/userhtmlsu3.html b/docs/html/userhtmlsu3.html new file mode 100644 index 00000000..15721cf1 --- /dev/null +++ b/docs/html/userhtmlsu3.html @@ -0,0 +1,282 @@ + + +Application structure + + + + + + + +

+

2.3 Application structure

+

The main underlying principle of the PSBLAS library is that the library objects are +created and exist with reference to a discretized space to which there corresponds +an index space and a matrix sparsity pattern. As an example, consider a +cell-centered finite-volume discretization of the Navier-Stokes equations on a +simulation domain; the index space 1n is isomorphic to the set of cell centers, +whereas the pattern of the associated linear system matrix is isomorphic to the +adjacency graph imposed on the discretization mesh by the discretization +stencil. +

Thus the first order of business is to establish an index space, and this is done +with a call to psb_cdall in which we specify the size of the index space n and the +allocation of the elements of the index space to the various processes making up the +MPI (virtual) parallel machine. +

The index space is partitioned among processes, and this creates a mapping from +the “global” numbering 1n to a numbering “local” to each process; each process i +will own a certain subset 1nrowi, each element of which corresponds to a certain +element of 1n. The user does not set explicitly this mapping; when the application +needs to indicate to which element of the index space a certain item is related, +such as the row and column index of a matrix coefficient, it does so in the +“global” numbering, and the library will translate into the appropriate “local” +numbering. +

For a given index space 1n there are many possible associated topologies, i.e. +many different discretization stencils; thus the description of the index space is not +completed until the user has defined a sparsity pattern, either explicitly through +psb_cdins or implicitly through psb_spins. The descriptor is finalized with a call to +psb_cdasb and a sparse matrix with a call to psb_spasb. After psb_cdasb each +process i will have defined a set of “halo” (or “ghost”) indices nrowi + 1ncol +i, +denoting elements of the index space that are not assigned to process i; however the +variables associated with them are needed to complete computations associated with +the sparse matrix A, and thus they have to be fetched from (neighbouring) +processes. The descriptor of the index space is built exactly for the purpose +of properly sequencing the communication steps required to achieve this +objective. +

A simple application structure will walk through the index space allocation, +matrix/vector creation and linear system solution as follows: +

    +
  1. Initialize parallel environment with psb_init +
  2. +
  3. Initialize index space with psb_cdall +
  4. +
  5. Allocate sparse matrix and dense vectors with psb_spall and psb_geall + + + +
  6. +
  7. Loop over all local rows, generate matrix and vector entries, and insert + them with psb_spins and psb_geins +
  8. +
  9. Assemble the various entities: +
      +
    1. psb_cdasb +
    2. +
    3. psb_spasb +
    4. +
    5. psb_geasb
    +
  10. +
  11. Choose the preconditioner to be used with prec%init and build it with + prec%build3 . +
  12. +
  13. Call the iterative method of choice, e.g. psb_bicgstab
+

This is the structure of the sample programs in the directory test/pargen/. +

For a simulation in which the same discretization mesh is used over multiple time +steps, the following structure may be more appropriate: +

    +
  1. Initialize parallel environment with psb_init +
  2. +
  3. Initialize index space with psb_cdall +
  4. +
  5. Loop over the topology of the discretization mesh and build the descriptor + with psb_cdins +
  6. +
  7. Assemble the descriptor with psb_cdasb +
  8. +
  9. Allocate the sparse matrices and dense vectors with psb_spall and + psb_geall +
  10. +
  11. Loop over the time steps: +
      +
    1. If after first time step, reinitialize the sparse matrix with psb_sprn; + also zero out the dense vectors; +
    2. +
    3. Loop over the mesh, generate the coefficients and insert/update them + with psb_spins and psb_geins + + + +
    4. +
    5. Assemble with psb_spasb and psb_geasb +
    6. +
    7. Choose and build preconditioner with prec%init and prec%build +
    8. +
    9. Call the iterative method of choice, e.g. psb_bicgstab
    +
+

The insertion routines will be called as many times as needed; they only need to be +called on the data that is actually allocated to the current process, i.e. each process +generates its own data. +

In principle there is no specific order in the calls to psb_spins, nor is there a +requirement to build a matrix row in its entirety before calling the routine; this +allows the application programmer to walk through the discretization mesh element +by element, generating the main part of a given matrix row but also contributions to +the rows corresponding to neighbouring elements. +

From a functional point of view it is even possible to execute one call for each +nonzero coefficient; however this would have a substantial computational +overhead. It is therefore advisable to pack a certain amount of data into each +call to the insertion routine, say touching on a few tens of rows; the best +performng value would depend on both the architecture of the computer being +used and on the problem structure. At the opposite extreme, it would be +possible to generate the entire part of a coefficient matrix residing on a +process and pass it in a single call to psb_spins; this, however, would entail a +doubling of memory occupation, and thus would be almost always far from +optimal. +

+

2.3.1 User-defined index mappings
+

PSBLAS supports user-defined global to local index mappings, subject to the +constraints outlined in sec. 2.3: +

    +
  1. The set of indices owned locally must be mapped to the set 1nrowi; +
  2. +
  3. The set of halo points must be mapped to the set nrowi + 1ncol +i;
+

but otherwise the mapping is arbitrary. The user application is responsible to ensure +consistency of this mapping; some errors may be caught by the library, but +this is not guaranteed. The application structure to support this usage is as +follows: +

    +
  1. Initialize index + space with psb_cdall(ictx,desc,info,vl=vl,lidx=lidx) passing the + vectors vl(:) containing the set of global indices owned by the current + process and lidx(:) containing the corresponding local indices; + + + +
  2. +
  3. Add the halo points ja(:) and their associated local indices lidx(:) with + a(some) call(s) to psb_cdins(nz,ja,desc,info,lidx=lidx); +
  4. +
  5. Assemble the descriptor with psb_cdasb; +
  6. +
  7. Build the sparse matrices and vectors, optionally making use in psb_spins + and psb_geins of the local argument specifying that the indices in ia, + ja and irw, respectively, are already local indices.
+ + + + +

+ diff --git a/docs/html/userhtmlsu30.html b/docs/html/userhtmlsu30.html new file mode 100644 index 00000000..10ee1c9c --- /dev/null +++ b/docs/html/userhtmlsu30.html @@ -0,0 +1,419 @@ + + +psb_cdall — Allocates a communication descriptor + + + + + + + +

+

6.1 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=.false.,lidx=lidx]) + 
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 ∈{1mg} 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: .false. +
+lidx
Data allocation: the set of local indices lidx(1 : nl) to be assigned to the + global indices vl.
Scope:local.
Type:optional.
Intent: in.
Specified as: an integer array.
+

+

+On Return
+
+desc_a
the communication descriptor.
Scope:local.
Type:required.
Intent: out.
Specified as: a structured data of type psb_desc_type. +
+info
Error code.
Scope: local
Type: required
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 + 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 ∈{1mg} is assigned to process + vg(i). The vector vg must be identical on all calling processes; its + entries may have the ranges (0np - 1) or (1np) 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 (1mg) 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. + + + +
    + lidx
    The optional argument lidx is available for those cases in which the user + has already established a global-to-local mapping; if it is specified, each + index in vl(i) will be mapped to the corresponding local index lidx(i). + When specifying the argument lidx the user would also likely employ + lidx in calls to psb_cdins and local in calls to psb_spins and + psb_geins; see also sec. 2.3.1. +
    + 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 NI = 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.
+ + + + + + + +

+ diff --git a/docs/html/userhtmlsu31.html b/docs/html/userhtmlsu31.html new file mode 100644 index 00000000..d666e2d5 --- /dev/null +++ b/docs/html/userhtmlsu31.html @@ -0,0 +1,206 @@ + + +psb_cdins — Communication descriptor insert routine + + + + + + + +

+

6.2 psb_cdins — Communication descriptor insert routine

+ + + +
+call psb_cdins(nz, ia, ja, desc_a, info [,ila,jla]) + 
call psb_cdins(nz,ja,desc,info[,jla,mask,lidx]) +
+

+

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. In +the first form the edges are specified as pairs of indices ia(i),ja(i); the starting index +ia(i) should belong to the current process. In the second form only the remote indices +ja(i) are specified. +

+

+Type:
Asynchronous. +
+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.
Scope: local.
Type: required.
Intent: in.
Specified as: an integer array of length nz. +
+mask
Mask entries in ja, they are inserted only when the corresponding mask + entries are .true.
Scope: local.
Type: optional.
Intent: in.
Specified as: a logical array of length nz, default .true.. + + + +
+lidx
User defined local indices for ja.
Scope: local.
Type: optional.
Intent: in.
Specified as: an integer array of length nz.
+

+

+On Return
+
+desc_a
the updated communication descriptor.
Scope:local.
Type:required.
Intent: inout.
Specified as: a structured data of type psb_desc_type. +
+info
Error code.
Scope: local
Type: required
Intent: out.
An integer value; 0 means no error has been detected. +
+ila
the local indices of the starting vertex of the edges being inserted.
Scope: local.
Type: optional.
Intent: out.
Specified as: an integer array of length nz. +
+jla
the local indices of the end vertex of the edges being inserted.
Scope: local.
Type: optional.
Intent: out.
Specified as: an integer array of length nz. +
+

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. +
  5. The second form of this routine will be useful when dealing with + user-specified index mappings; see also 2.3.1.
+ + + + + + + +

+ diff --git a/docs/html/userhtmlsu32.html b/docs/html/userhtmlsu32.html new file mode 100644 index 00000000..78ac9388 --- /dev/null +++ b/docs/html/userhtmlsu32.html @@ -0,0 +1,136 @@ + + +psb_cdasb — Communication descriptor assembly routine + + + + + + + +

+

6.3 psb_cdasb — Communication descriptor assembly routine

+ + + +
+call psb_cdasb(desc_a, info [, mold]) +
+

+

+

+Type:
Synchronous. +
+On Entry
+
+desc_a
the communication descriptor.
Scope:local.
Type:required.
Intent: inout.
Specified as: a structured data of type psb_desc_type. +
+mold
The desired dynamic type for the internal index storage.
Scope: local.
Type: optional.
Intent: in.
Specified as: a object of type derived from (integer) + psb_T_base_vect_type.
+

+

+On Return
+
+desc_a
the communication descriptor.
Scope:local.
Type:required.
Intent: inout.
Specified as: a structured data of type psb_desc_type. +
+info
Error code.
Scope: local
Type: required
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.
+ + + +

This call will set up all the necessary information for the halo data exchanges. In doing +so, the library will need to identify the set of processes owning the halo indices +through the use of the desc%fnd_owner() method; the owning processes +are the topological neighbours of the calling process. If the user has some +background information on the processes that are neighbours of the current one, +it is possible to specify explicitly the list of adjacent processes with a call +to desc%set_p_adjcncy(list); this will speed up the subsequent call to +psb_cdasb. + + + + + + +

+

+ diff --git a/docs/html/userhtmlsu33.html b/docs/html/userhtmlsu33.html new file mode 100644 index 00000000..ca2898fe --- /dev/null +++ b/docs/html/userhtmlsu33.html @@ -0,0 +1,100 @@ + + +psb_cdcpy — Copies a communication descriptor + + + + + + + +

+

6.4 psb_cdcpy — Copies a communication descriptor

+ + + +
+call psb_cdcpy(desc_in, desc_out, info) +
+

+

+

+Type:
Asynchronous. +
+On Entry
+
+desc_in
the communication descriptor.
Scope:local.
Type:required.
Intent: in.
Specified as: a structured data of type psb_desc_type. +
+

+

+On Return
+
+desc_out
the communication descriptor copy.
Scope:local.
Type:required.
Intent: out.
Specified as: a structured data of type psb_desc_type. +
+info
Error code.
Scope: local
Type: required
Intent: out.
An integer value; 0 means no error has been detected.
+ + + + + + + +

+ diff --git a/docs/html/userhtmlsu34.html b/docs/html/userhtmlsu34.html new file mode 100644 index 00000000..ed9d8573 --- /dev/null +++ b/docs/html/userhtmlsu34.html @@ -0,0 +1,83 @@ + + +psb_cdfree — Frees a communication descriptor + + + + + + + +

+

6.5 psb_cdfree — Frees a communication descriptor

+ + + +
+call psb_cdfree(desc_a, info) +
+

+

+

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

+

+On Return
+
+info
Error code.
Scope: local
Type: required
Intent: out.
An integer value; 0 means no error has been detected.
+ + + + + + + +

+ diff --git a/docs/html/userhtmlsu35.html b/docs/html/userhtmlsu35.html new file mode 100644 index 00000000..414a315a --- /dev/null +++ b/docs/html/userhtmlsu35.html @@ -0,0 +1,163 @@ + + +psb_cdbldext — Build an extended communication descriptor + + + + + + + +

+

6.6 psb_cdbldext — Build an extended communication descriptor

+ + + +
+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. +
+On Entry
+
+a
A sparse matrix Scope:local.
Type:required.
Intent: in.
Specified as: a structured data type. +
+desc_a
the communication descriptor.
Scope:local.
Type:required.
Intent: in.
Specified as: a structured data of type psb_Tspmat_type. +
+nl
the number of additional layers desired.
Scope:global.
Type:required.
Intent: in.
Specified as: an integer value nl 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_ +
+

+

+On Return
+ + + +
+desc_out
the extended communication descriptor.
Scope:local.
Type:required.
Intent: inout.
Specified as: a structured data of type psb_desc_type. +
+info
Error code.
Scope: local
Type: required
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. +
  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.
+ + + + + + + +

+ diff --git a/docs/html/userhtmlsu36.html b/docs/html/userhtmlsu36.html new file mode 100644 index 00000000..2d09e07a --- /dev/null +++ b/docs/html/userhtmlsu36.html @@ -0,0 +1,128 @@ + + +psb_spall — Allocates a sparse matrix + + + + + + + +

+

6.7 psb_spall — Allocates a sparse matrix

+ + + +
+call psb_spall(a, desc_a, info, nnz) +
+

+

+

+Type:
Synchronous. +
+On Entry
+
+desc_a
the communication descriptor.
Scope:local.
Type:required.
Intent: in.
Specified as: a structured data of type psb_desc_type. +
+nnz
An estimate of the number of nonzeroes in the local part of the assembled + matrix.
Scope: global.
Type: optional.
Intent: in.
Specified as: an integer value.
+

+

+On Return
+
+a
the matrix to be allocated.
Scope:local
Type:required
Intent: out.
Specified as: a structured data of type psb_Tspmat_type. +
+info
Error code.
Scope: local
Type: required
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. +
  3. The descriptor may be in either the build or assembled state. +
  4. +
  5. 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.
+ + + + + + + +

+ diff --git a/docs/html/userhtmlsu37.html b/docs/html/userhtmlsu37.html new file mode 100644 index 00000000..85e282e3 --- /dev/null +++ b/docs/html/userhtmlsu37.html @@ -0,0 +1,311 @@ + + +psb_spins — Insert a set of coefficients into a sparse matrix + + + + + + + +

+

6.8 psb_spins — Insert a set of coefficients into a sparse matrix

+ + + +
+call psb_spins(nz, ia, ja, val, a, desc_a, info [,local]) + 
call psb_spins(nr, irw, irp, ja, val, a, desc_a, info [,local]) +
+

+

+

+Type:
Asynchronous. +
+On Entry
+
+nz
the number of coefficients to be inserted.
Scope:local.
Type:required.
Intent: in.
Specified as: an integer scalar. +
+nr
the number of rows to be inserted.
Scope:local.
Type:required.
Intent: in.
Specified as: an integer scalar. +
+irw
the first row to be inserted.
Scope:local.
Type:required.
Intent: in.
Specified as: an integer scalar. +
+ia
the row indices of the coefficients to be inserted.
Scope:local.
Type:required.
Intent: in.
Specified as: an integer array of size nz. +
+irp
the row pointers of the coefficients to be inserted.
Scope:local.
Type:required.
Intent: in.
Specified as: an integer array of size nr + 1. + + + +
+ja
the column indices of the coefficients to be inserted.
Scope:local.
Type:required.
Intent: in.
Specified as: an integer array of size nz. +
+val
the coefficients 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 coefficients of the sparse matrix a. +
+desc_a
The communication descriptor.
Scope: local.
Type: required.
Intent: inout.
Specified as: a variable of type psb_desc_type.
+
+local
Whether the entries in the indices vectors ia, ja are already in local + numbering.
Scope:local.
Type:optional.
Specified as: a logical value; default: .false.. +
+

+

+On Return
+
+a
the matrix into which coefficients will be inserted.
Scope:local
Type:required
Intent: inout.
Specified as: a structured data of type psb_Tspmat_type. +
+desc_a
The communication descriptor.
Scope: local.
Type: required.
Intent: inout.
Specified as: a variable of type psb_desc_type.
+ + + +
+info
Error code.
Scope: local
Type: required
Intent: out.
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. +
  3. On entry to this routine the sparse matrix may be in either the build or + update state. +
  4. +
  5. 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; +
  6. +
  7. The input data can be passed in either COO or CSR formats; +
  8. +
  9. In COO format the coefficients to be inserted are represented by the + ordered triples ia(i),ja(i),val(i), for i = 1,,nz; these triples should + belong to the current process, i.e. ia(i) should be one of the local indices, + but are otherwise arbitrary; +
  10. +
  11. In CSR format the coefficients to be inserted for each input row i = 1,nr + are represented by the ordered triples (i + irw - 1),ja(j),val(j), for + j = irp(i),,irp(i + 1) - 1; these triples should belong to the current + process, i.e. i+irw-1 should be one of the local indices, but are otherwise + arbitrary; +
  12. +
  13. There is no requirement that a given row must be passed in its entirety + to a single call to this routine: the buildup of a row may be split into as + many calls as desired (even in the CSR format); +
  14. +
  15. Coefficients from different rows may also be mixed up freely in a single + call, according to the application needs; +
  16. +
  17. Any coefficients from matrix rows not owned by the calling process are + silently ignored; + + + +
  18. +
  19. If the descriptor is in the assembled state, then any entries in the sparse + matrix that would generate additional communication requirements are + ignored; +
  20. +
  21. If the matrix is in the update state, any entries in positions that were not + present in the original matrix are ignored.
+ + + + + + + +

+ diff --git a/docs/html/userhtmlsu38.html b/docs/html/userhtmlsu38.html new file mode 100644 index 00000000..d3f70743 --- /dev/null +++ b/docs/html/userhtmlsu38.html @@ -0,0 +1,186 @@ + + +psb_spasb — Sparse matrix assembly routine + + + + + + + +

+

6.9 psb_spasb — Sparse matrix assembly routine

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

+

+

+Type:
Synchronous. +
+On Entry
+
+desc_a
the communication descriptor.
Scope:local.
Type:required.
Intent: in.
Specified as: a structured data of type psb_desc_type. +
+afmt
the storage format for the sparse matrix.
Scope: local.
Type: optional.
Intent: in.
Specified as: an array of characters. Defalt: ’CSR’. +
+upd
Provide for updates to the matrix coefficients.
Scope: global.
Type: optional.
Intent: in.
Specified as: integer, possible values: psb_upd_srch_, psb_upd_perm_ +
+dupl
How to handle duplicate coefficients.
Scope: global.
Type: optional.
Intent: in.
Specified as: integer, possible values: psb_dupl_ovwrt_, psb_dupl_add_, + psb_dupl_err_. +
+mold
The desired dynamic type for the internal matrix storage.
Scope: local.
Type: optional.
Intent: in.
Specified as: an object of a class derived from psb_T_base_sparse_mat.
+

+ + + +

+On Return
+
+a
the matrix to be assembled.
Scope:local
Type:required
Intent: inout.
Specified as: a structured data of type psb_Tspmat_type. +
+info
Error code.
Scope: local
Type: required
Intent: out.
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. The output storage format need not be the same on all processes; +
  10. +
  11. On exit from this routine the matrix is in the assembled state, and thus + is suitable for the computational routines.
+ + + + + + + +

+ diff --git a/docs/html/userhtmlsu39.html b/docs/html/userhtmlsu39.html new file mode 100644 index 00000000..e767aef9 --- /dev/null +++ b/docs/html/userhtmlsu39.html @@ -0,0 +1,98 @@ + + +psb_spfree — Frees a sparse matrix + + + + + + + +

+

6.10 psb_spfree — Frees a sparse matrix

+ + + +
+call psb_spfree(a, desc_a, info) +
+

+

+

+Type:
Synchronous. +
+On Entry
+
+a
the matrix to be freed.
Scope:local
Type:required
Intent: inout.
Specified as: a structured data of type psb_Tspmat_type. +
+desc_a
the communication descriptor.
Scope:local.
Type:required.
Intent: in.
Specified as: a structured data of type psb_desc_type.
+

+

+On Return
+
+info
Error code.
Scope: local
Type: required
Intent: out.
An integer value; 0 means no error has been detected.
+ + + + + + + +

+ diff --git a/docs/html/userhtmlsu4.html b/docs/html/userhtmlsu4.html new file mode 100644 index 00000000..ffc95516 --- /dev/null +++ b/docs/html/userhtmlsu4.html @@ -0,0 +1,61 @@ + + +Programming model + + + + + + + +

+

2.4 Programming model

+

The PSBLAS librarary is based on the Single Program Multiple Data (SPMD) +programming model: each process participating in the computation performs the +same actions on a chunk of data. Parallelism is thus data-driven. +

Because of this structure, many subroutines coordinate their action across the +various processes, thus providing an implicit synchronization point, and therefore +must be called simultaneously by all processes participating in the computation. This +is certainly true for the data allocation and assembly routines, for all the +computational routines and for some of 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 +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 processors, +and since the user is free to choose an arbitrary order in builiding the matrix entries, +these routines cannot imply a synchronization. +

Throughout this user’s guide each subroutine will be clearly indicated +as: +

+Synchronous:
must be called simultaneously by all the processes in the + relevant communication context; +
+Asynchronous:
may be called in a totally independent manner.
+ + + + + + + +

+ diff --git a/docs/html/userhtmlsu40.html b/docs/html/userhtmlsu40.html new file mode 100644 index 00000000..2e95eec1 --- /dev/null +++ b/docs/html/userhtmlsu40.html @@ -0,0 +1,114 @@ + + +psb_sprn — Reinit sparse matrix structure for psblas routines. + + + + + + + +

+

6.11 psb_sprn — Reinit sparse matrix structure for psblas routines.

+ + + +
+call psb_sprn(a, decsc_a, info, clear) +
+

+

+

+Type:
Synchronous. +
+On Entry
+
+a
the matrix to be reinitialized.
Scope:local
Type:required
Intent: inout.
Specified as: a structured data of type psb_Tspmat_type. +
+desc_a
the communication descriptor.
Scope:local.
Type:required.
Intent: in.
Specified as: a structured data of type psb_desc_type. +
+clear
Choose whether to zero out matrix coefficients
Scope:local.
Type:optional.
Intent: in.
Default: true.
+

+

+On Return
+
+info
Error code.
Scope: local
Type: required
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.
+ + + + + + + +

+ diff --git a/docs/html/userhtmlsu41.html b/docs/html/userhtmlsu41.html new file mode 100644 index 00000000..46b2ba28 --- /dev/null +++ b/docs/html/userhtmlsu41.html @@ -0,0 +1,132 @@ + + +psb_geall — Allocates a dense matrix + + + + + + + +

+

6.12 psb_geall — Allocates a dense matrix

+ + + +
+call psb_geall(x, desc_a, info, n, lb) +
+

+

+

+Type:
Synchronous. +
+On Entry
+
+desc_a
The communication descriptor.
Scope: local
Type: required
Intent: in.
Specified as: a variable of type psb_desc_type.
+
+n
The number of columns of the dense matrix to be allocated.
Scope: local
Type: optional
Intent: in.
Specified as: Integer scalar, default 1. It is not a valid argument if x is a + rank-1 array. +
+lb
The lower bound for the column index range of the dense matrix to be + allocated.
Scope: local
Type: optional
Intent: in.
Specified as: Integer scalar, default 1. It is not a valid argument if x is a + rank-1 array.
+

+

+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 + or an object of type psb_T_vect_type, of type real, complex or integer.
+ + + +
+info
Error code.
Scope: local
Type: required
Intent: out.
An integer value; 0 means no error has been detected.
+ + + + + + + +

+ diff --git a/docs/html/userhtmlsu42.html b/docs/html/userhtmlsu42.html new file mode 100644 index 00000000..7f215524 --- /dev/null +++ b/docs/html/userhtmlsu42.html @@ -0,0 +1,178 @@ + + +psb_geins — Dense matrix insertion routine + + + + + + + +

+

6.13 psb_geins — Dense matrix insertion routine

+ + + +
+call psb_geins(m, irw, val, x, desc_a, info [,dupl,local]) +
+

+

+

+Type:
Asynchronous. +
+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.
Specified as: a structured data of type psb_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_. + + + +
+local
Whether the entries in the index vector irw, are already in local + numbering.
Scope:local.
Type:optional.
Specified as: a logical value; default: .false.. +
+

+

+On Return
+
+x
the output dense matrix.
Scope: local
Type: required
Intent: inout.
Specified as: a rank one or two array or an object of type + psb_T_vect_type, of type real, complex or integer.
+
+info
Error code.
Scope: local
Type: required
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.
+ + + + + + + +

+ diff --git a/docs/html/userhtmlsu43.html b/docs/html/userhtmlsu43.html new file mode 100644 index 00000000..3befcce9 --- /dev/null +++ b/docs/html/userhtmlsu43.html @@ -0,0 +1,123 @@ + + +psb_geasb — Assembly a dense matrix + + + + + + + +

+

6.14 psb_geasb — Assembly a dense matrix

+ + + +
+call psb_geasb(x, desc_a, info, mold) +
+

+

+

+Type:
Synchronous. +
+On Entry
+
+desc_a
The communication descriptor.
Scope: local
Type: required
Intent: in.
Specified as: a variable of type psb_desc_type.
+
+mold
The desired dynamic type for the internal vector storage.
Scope: local.
Type: optional.
Intent: in.
Specified as: an object of a class derived from psb_T_base_vect_type; + this is only allowed when x is of type psb_T_vect_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 or an + object of type psb_T_vect_type, of type real, complex or integer.
+
+info
Error code.
Scope: local
Type: required
Intent: out.
An integer value; 0 means no error has been detected.
+ + + + +

+ diff --git a/docs/html/userhtmlsu44.html b/docs/html/userhtmlsu44.html new file mode 100644 index 00000000..90a8c1c7 --- /dev/null +++ b/docs/html/userhtmlsu44.html @@ -0,0 +1,102 @@ + + +psb_gefree — Frees a dense matrix + + + + + + + +

+

6.15 psb_gefree — Frees a dense matrix

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

+

+

+Type:
Synchronous. +
+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 or an + object of type psb_T_vect_type, of type real, complex or integer.
+
+desc_a
The communication descriptor.
Scope: local
Type: required
Intent: in.
Specified as: a variable of type psb_desc_type.
+

+

+On Return
+
+info
Error code.
Scope: local
Type: required
Intent: out.
An integer value; 0 means no error has been detected.
+ + + + + + + +

+ diff --git a/docs/html/userhtmlsu45.html b/docs/html/userhtmlsu45.html new file mode 100644 index 00000000..559a173a --- /dev/null +++ b/docs/html/userhtmlsu45.html @@ -0,0 +1,109 @@ + + +psb_gelp — Applies a left permutation to a dense matrix + + + + + + + +

+

6.16 psb_gelp — Applies a left permutation to a dense matrix

+ + + +
+call psb_gelp(trans, iperm, x, info) +
+

+

+

+Type:
Asynchronous. +
+On Entry
+
+trans
A character that specifies whether to permute A or AT.
Scope: local
Type: required
Intent: in.
Specified as: a single character with value ’N’ for A or ’T’ for AT.
+
+iperm
An integer array containing permutation information.
Scope: local
Type: required
Intent: in.
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.
+

+

+On Return
+
+info
Error code.
Scope: local
Type: required
Intent: out.
An integer value; 0 means no error has been detected.
+ + + + + + + +

+ diff --git a/docs/html/userhtmlsu46.html b/docs/html/userhtmlsu46.html new file mode 100644 index 00000000..3d5b5a42 --- /dev/null +++ b/docs/html/userhtmlsu46.html @@ -0,0 +1,162 @@ + + +psb_glob_to_loc — Global to local indices convertion + + + + + + + +

+

6.17 psb_glob_to_loc — Global to local indices convertion

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

+

+

+Type:
Asynchronous. +
+On Entry
+
+x
An integer vector of indices to be converted.
Scope: local
Type: required
Intent: in, inout.
Specified as: a rank one integer array.
+
+desc_a
the communication descriptor.
Scope:local.
Type:required.
Intent: in.
Specified as: a structured data of type psb_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. +
+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.
+

+

+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.
Scope: local
Type: required
Intent: out.
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.
+ + + + + + + +

+ diff --git a/docs/html/userhtmlsu47.html b/docs/html/userhtmlsu47.html new file mode 100644 index 00000000..166f1bad --- /dev/null +++ b/docs/html/userhtmlsu47.html @@ -0,0 +1,140 @@ + + +psb_loc_to_glob — Local to global indices conversion + + + + + + + +

+

6.18 psb_loc_to_glob — Local to global indices conversion

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

+

+

+Type:
Asynchronous. +
+On Entry
+
+x
An integer vector of indices to be converted.
Scope: local
Type: required
Intent: in, inout.
Specified as: a rank one integer array.
+
+desc_a
the communication descriptor.
Scope:local.
Type:required.
Intent: in.
Specified as: a structured data of type psb_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.
+

+

+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 x is left unchanged. Scope: global
Type: optional
Intent: out.
Specified as: a rank one integer array. + + + +
+info
Error code.
Scope: local
Type: required
Intent: out.
An integer value; 0 means no error has been detected.
+ + + + + + + +

+ diff --git a/docs/html/userhtmlsu48.html b/docs/html/userhtmlsu48.html new file mode 100644 index 00000000..9ed049f8 --- /dev/null +++ b/docs/html/userhtmlsu48.html @@ -0,0 +1,103 @@ + + +psb_is_owned — + + + + + + + +

+

6.19 psb_is_owned —

+ + + +
+call psb_is_owned(x, desc_a) +
+

+

+

+Type:
Asynchronous. +
+On Entry
+
+x
Integer index.
Scope: local
Type: required
Intent: in.
Specified as: a scalar integer.
+
+desc_a
the communication descriptor.
Scope:local.
Type:required.
Intent: in.
Specified as: a structured data of type psb_desc_type.
+

+

+On Return
+
+Function value
A logical mask which is true if x is owned by the current + process Scope: local
Type: required
Intent: out.
+

Notes +

    +
  1. This routine returns a .true. value for an index that is strictly owned by + the current process, excluding the halo indices
+ + + + + + + +

+ diff --git a/docs/html/userhtmlsu49.html b/docs/html/userhtmlsu49.html new file mode 100644 index 00000000..03b88635 --- /dev/null +++ b/docs/html/userhtmlsu49.html @@ -0,0 +1,131 @@ + + +psb_owned_index — + + + + + + + +

+

6.20 psb_owned_index —

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

+

+

+Type:
Asynchronous. +
+On Entry
+
+x
Integer indices.
Scope: local
Type: required
Intent: in, inout.
Specified as: a scalar or a rank one integer array.
+
+desc_a
the communication descriptor.
Scope:local.
Type:required.
Intent: in.
Specified as: a structured data of type psb_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.
+

+

+On Return
+
+y
A logical mask which is true for all corresponding entries of 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 those indices that are strictly + owned by the current process, excluding the halo indices
+ + + + + + + +

+ diff --git a/docs/html/userhtmlsu5.html b/docs/html/userhtmlsu5.html new file mode 100644 index 00000000..a3b5df1a --- /dev/null +++ b/docs/html/userhtmlsu5.html @@ -0,0 +1,814 @@ + + +Descriptor data structure + + + + + + + + + + +

+

3.1 Descriptor data structure

+

All the general matrix informations and elements to be exchanged among processes +are stored within a data structure of the type psb_desc_type. 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 psb_desc_type can be treated as an opaque object +handled via the tools routines of Sec. 6 or the query routines detailed below; +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: +

+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 processes with which it is necessary to + communicate: +
    +
  1. Process identifier; +
  2. +
  3. Number of points to be received; +
  4. +
  5. Indices of points to be received; +
  6. +
  7. Number of points to be sent; +
  8. +
  9. Indices of points to be sent;
+

Specified as: a vector of integer type, see 3.3. +

+ext_index
A list of element indices to be exchanged to implement the mapping + between a base descriptor and a descriptor with overlap.
Specified as: a vector of integer type, see 3.3. +
+ovrlap_index
A list of the overlap elements for the current process, organized in + groups like the previous vector: +
    +
  1. Process identifier; +
  2. +
  3. Number of points to be received; +
  4. +
  5. Indices of points to be received; +
  6. +
  7. Number of points to be sent; +
  8. +
  9. Indices of points to be sent;
+ + + +

Specified as: a vector of integer type, see 3.3. +

+ovr_mst_idx
A list to retrieve the value of each overlap element from the respective + master process.
Specified as: a vector of integer type, see 3.3. +
+ovrlap_elem
For all overlap points belonging to th ecurrent process: +
    +
  1. Overlap point index; +
  2. +
  3. Number of processes sharing that overlap points; +
  4. +
  5. Index of a “master” process:
+

Specified as: an allocatable integer array of rank two. +

+bnd_elem
A list of all boundary points, i.e. points that have a connection with + other processes.
+

The Fortran 2003 declaration for psb_desc_type structures is as follows:


+
+

+

+type psb_desc_type + 
    class(psb_indx_map), allocatable :: indxmap + 
    type(psb_i_vect_type) :: v_halo_index + 
    type(psb_i_vect_type) :: v_ext_index + 
    type(psb_i_vect_type) :: v_ovrlap_index + 
    type(psb_i_vect_type) :: v_ovr_mst_idx + 
    integer, allocatable  :: ovrlap_elem(:,:) + 
    integer, allocatable  :: bnd_elem(:) + 
end type psb_desc_type +
+

+
Figure 3: The PSBLAS defined data type that contains the communication +descriptor.
+


+

A communication descriptor associated with a sparse matrix has a 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 communication requirements among different + processes. + + + +
+Assembled:
State entered after the assembly; computations using the + associated sparse matrix, such as matrix-vector products, are only possible + in this state.
+

+

3.1.1 Descriptor Methods
+

+

3.1.2 get_local_rows — Get number of local rows
+ + + +
+nr = desc%get_local_rows() +
+

+

+

+Type:
Asynchronous. +
+On Entry
+
+desc
the communication descriptor.
Scope: local.
+

+

+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 |Ii|+|Bi|. The returned + value is specific to the calling process.
+

+

3.1.3 get_local_cols — Get number of local cols
+ + + +
+nc = desc%get_local_cols() +
+

+

+

+Type:
Asynchronous. +
+On Entry
+
+desc
the communication descriptor.
Scope: local.
+

+

+On Return
+
+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 |Ii| + |Bi| + |Hi|. The returned value is specific to the + calling process.
+

+

3.1.4 get_global_rows — Get number of global rows
+ + + +
+nr = desc%get_global_rows() +
+

+

+

+Type:
Asynchronous. +
+On Entry
+
+desc
the communication descriptor.
Scope: local.
+

+

+On Return
+
+Function value
The number of global rows, i.e. the size of the global index + space.
+

+

3.1.5 get_global_cols — Get number of global cols
+ + + +
+nr = desc%get_global_cols() +
+

+

+

+Type:
Asynchronous. +
+On Entry
+
+desc
the communication descriptor.
Scope: local.
+

+

+On Return
+
+Function value
The number of global cols; usually this is equal to the number + of global rows.
+

+

3.1.6 get_global_indices — Get vector of global indices
+ + + +
+myidx = desc%get_global_indices([owned]) +
+

+

+

+Type:
Asynchronous. +
+On Entry
+
+desc
the communication descriptor.
Scope: local.
Type: required.
+
+owned
Choose if you only want owned indices (owned=.true.) or also halo + indices (owned=.false.). Scope: local.
Type: optional; default: .true..
+

+

+On Return
+
+Function value
The global indices, returned as an allocatable integer array of + kind psb_lpk_ and rank 1.
+

+

3.1.7 get_context — Get communication context
+ + + +
+ictxt = desc%get_context() +
+

+

+

+Type:
Asynchronous. +
+On Entry
+
+desc
the communication descriptor.
Scope: local.
+

+

+On Return
+
+Function value
The communication context.
+

+

3.1.8 Clone — clone current object
+ + + +
+call  desc%clone(descout,info) +
+

+

+

+Type:
Asynchronous. +
+On Entry
+
+desc
the communication descriptor.
Scope: local.
+

+

+On Return
+
+descout
A copy of the input object. +
+info
Return code.
+

+

3.1.9 CNV — convert internal storage format
+ + + +
+call  desc%cnv(mold) +
+

+

+

+Type:
Asynchronous. +
+On Entry
+
+desc
the communication descriptor.
Scope: local.
+
+mold
the desired integer storage format.
Scope: local.
Specified as: a object of type derived from (integer) + psb_T_base_vect_type.
+

The mold arguments may be employed to interface with special devices, such as GPUs +and other accelerators. +

+

3.1.10 psb_cd_get_large_threshold — Get threshold for index mapping +switch
+ + + +
+ith = psb_cd_get_large_threshold() +
+

+

+

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

+

3.1.11 psb_cd_set_large_threshold — Set threshold for index mapping +switch
+ + + +
+call psb_cd_set_large_threshold(ith) +
+

+

+

+Type:
Synchronous. +
+On Entry
+
+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. Moreover the threshold must have the +same value on all processes. +

+

3.1.12 get_p_adjcncy — Get process adjacency list
+ + + +
+list =  desc%get_p_adjcncy() +
+

+

+

+Type:
Asynchronous. +
+On Return
+
+Function value
The current list of adjacent processes, i.e. processes with + which the current one has to exchange halo data. +
+

+

3.1.13 set_p_adjcncy — Set process adjacency list
+ + + +
+call desc%set_p_adjcncy(list) +
+

+

+

+Type:
Asynchronous. +
+On Entry
+
+list
the list of adjacent processes.
Scope: local.
Type: required.
Intent: in.
Specified as: a one-dimensional array of integers of kind psb_ipk_.
+

Note: this method can be called after a call to psb_cdall and before a call to +psb_cdasb. The user is specifying here some knowledge about which processes are +topological neighbours of the current process. The availability of this information +may speed up the execution of the assembly call psb_cdasb. +

+

3.1.14 fnd_owner — Find the owner process of a set of indices
+ + + +
+call desc%fnd_owner(idx,iprc,info) +
+

+

+

+Type:
Synchronous. +
+On Entry
+
+idx
the list of global indices for which we need the owning processes.
Scope: local.
Type: required.
Intent: in.
Specified as: a one-dimensional array of integers of kind psb_lpk_. +
+On Return
+
+iprc
the list of processes owning the indices in idx.
Scope: local.
Type: required.
Intent: in.
Specified as: an allocatable one-dimensional array of integers of kind + psb_ipk_.
+

Note: this method may or may not actually require communications, depending on the +exact internal data storage; given that the choice of storage may be altered by +runtime parameters, it is necessary for safety that this method is called by all +processes. +

+

3.1.15 Named Constants
+

+

+psb_none_
Generic no-op; +
+psb_root_
Default root process for broadcast and scatter operations; +
+psb_nohalo_
Do not fetch halo elements; +
+psb_halo_
Fetch halo elements from neighbouring processes; + + + +
+psb_sum_
Sum overlapped elements +
+psb_avg_
Average overlapped elements +
+psb_comm_halo_
Exchange data based on the halo_index list; +
+psb_comm_ext_
Exchange data based on the ext_index list; +
+psb_comm_ovr_
Exchange data based on the ovrlap_index list; +
+psb_comm_mov_
Exchange data based on the ovr_mst_idx list; +
+ + + + +

+ diff --git a/docs/html/userhtmlsu50.html b/docs/html/userhtmlsu50.html new file mode 100644 index 00000000..abeeb70d --- /dev/null +++ b/docs/html/userhtmlsu50.html @@ -0,0 +1,103 @@ + + +psb_is_local — + + + + + + + +

+

6.21 psb_is_local —

+ + + +
+call psb_is_local(x, desc_a) +
+

+

+

+Type:
Asynchronous. +
+On Entry
+
+x
Integer index.
Scope: local
Type: required
Intent: in.
Specified as: a scalar integer.
+
+desc_a
the communication descriptor.
Scope:local.
Type:required.
Intent: in.
Specified as: a structured data of type psb_desc_type.
+

+

+On Return
+
+Function value
A logical mask which is true if x is local to the current process + Scope: local
Type: required
Intent: out.
+

Notes +

    +
  1. 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/userhtmlsu51.html b/docs/html/userhtmlsu51.html new file mode 100644 index 00000000..98b2f4aa --- /dev/null +++ b/docs/html/userhtmlsu51.html @@ -0,0 +1,131 @@ + + +psb_local_index — + + + + + + + +

+

6.22 psb_local_index —

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

+

+

+Type:
Asynchronous. +
+On Entry
+
+x
Integer indices.
Scope: local
Type: required
Intent: in, inout.
Specified as: a scalar or a rank one integer array.
+
+desc_a
the communication descriptor.
Scope:local.
Type:required.
Intent: in.
Specified as: a structured data of type psb_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.
+

+

+On Return
+
+y
A logical mask which is true for all corresponding entries of 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 those indices that are local to the + current process, including the halo indices.
+ + + + + + + +

+ diff --git a/docs/html/userhtmlsu52.html b/docs/html/userhtmlsu52.html new file mode 100644 index 00000000..d970c404 --- /dev/null +++ b/docs/html/userhtmlsu52.html @@ -0,0 +1,107 @@ + + +psb_get_boundary — Extract list of boundary elements + + + + + + + +

+

6.23 psb_get_boundary — Extract list of boundary elements

+ + + +
+call psb_get_boundary(bndel, desc, info) +
+

+

+

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

+

+On Return
+
+bndel
The list of boundary elements on the calling process, in local numbering.
Scope: local
Type: required
Intent: out.
Specified as: a rank one array with the ALLOCATABLE attribute, of type + integer.
+
+info
Error code.
Scope: local
Type: required
Intent: out.
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. +
  3. Otherwise the size of bndel will be exactly equal to the number of + boundary elements.
+ + + + + + + +

+ diff --git a/docs/html/userhtmlsu53.html b/docs/html/userhtmlsu53.html new file mode 100644 index 00000000..4d5f699c --- /dev/null +++ b/docs/html/userhtmlsu53.html @@ -0,0 +1,106 @@ + + +psb_get_overlap — Extract list of overlap elements + + + + + + + +

+

6.24 psb_get_overlap — Extract list of overlap elements

+ + + +
+call psb_get_overlap(ovrel, desc, info) +
+

+

+

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

+

+On Return
+
+ovrel
The list of overlap elements on the calling process, in local numbering.
Scope: local
Type: required
Intent: out.
Specified as: a rank one array with the ALLOCATABLE attribute, of type + integer.
+
+info
Error code.
Scope: local
Type: required
Intent: out.
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. +
  3. Otherwise the size of ovrel will be exactly equal to the number of overlap + elements.
+ + + + + + + +

+ diff --git a/docs/html/userhtmlsu54.html b/docs/html/userhtmlsu54.html new file mode 100644 index 00000000..e37335c6 --- /dev/null +++ b/docs/html/userhtmlsu54.html @@ -0,0 +1,209 @@ + + +psb_sp_getrow — Extract row(s) from a sparse matrix + + + + + + + +

+

6.25 psb_sp_getrow — Extract row(s) from a sparse matrix

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

+

+

+Type:
Asynchronous. +
+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.
Scope:local
Type:required
Intent: in.
Specified as: a structured data of type psb_Tspmat_type. +
+append
Whether to append or overwrite existing output.
Scope:local
Type:optional
Intent: in.
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. +
+ + + +

+

+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.
Scope: local
Type: required
Intent: out.
An integer value; 0 means no error has been detected.
+

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.
+ + + + + + + + + + +

+ diff --git a/docs/html/userhtmlsu55.html b/docs/html/userhtmlsu55.html new file mode 100644 index 00000000..35b7c749 --- /dev/null +++ b/docs/html/userhtmlsu55.html @@ -0,0 +1,113 @@ + + +psb_sizeof — Memory occupation + + + + + + + +

+

6.26 psb_sizeof — Memory occupation

+

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

+isz = psb_sizeof(a) + 
isz = psb_sizeof(desc_a) + 
isz = psb_sizeof(prec) +
+

+

+

+Type:
Asynchronous. +
+On Entry
+
+a
A sparse matrix A.
Scope: local
Type: required
Intent: in.
Specified as: a structured data of type psb_Tspmat_type. +
+desc_a
Communication descriptor.
Scope: local
Type: required
Intent: in.
Specified as: a structured data of type psb_desc_type. +
+prec
Scope: local
Type: required
Intent: in.
Specified as: a preconditioner data structure psb_prec_type. +
+On Return
+
+Function value
The memory occupation of the object specified in the calling + sequence, in bytes.
Scope: local
Returned as: an integer(psb_long_int_k_) number.
+ + + + + + + +

+ diff --git a/docs/html/userhtmlsu56.html b/docs/html/userhtmlsu56.html new file mode 100644 index 00000000..047a538f --- /dev/null +++ b/docs/html/userhtmlsu56.html @@ -0,0 +1,229 @@ + + +Sorting utilities — + + + + + + + +

+

6.27 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) 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(nlog 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(n2); 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(nlog 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 the + preferred choice when a sorting is needed by other routines in the + library.
    +
+ + + + + + + +

+ diff --git a/docs/html/userhtmlsu57.html b/docs/html/userhtmlsu57.html new file mode 100644 index 00000000..9b44edbc --- /dev/null +++ b/docs/html/userhtmlsu57.html @@ -0,0 +1,121 @@ + + +psb_init — Initializes PSBLAS parallel environment + + + + + + + +

+

7.1 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.
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 (0np - 1).
+

+

+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.
+ + + + + + + +

+ diff --git a/docs/html/userhtmlsu58.html b/docs/html/userhtmlsu58.html new file mode 100644 index 00000000..2d6a8e06 --- /dev/null +++ b/docs/html/userhtmlsu58.html @@ -0,0 +1,118 @@ + + +psb_info — Return information about PSBLAS parallel environment + + + + + + + +

+

7.2 psb_info — Return information about PSBLAS parallel environment

+ + + +
+call psb_info(icontxt, iam, np) +
+

+

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

+Type:
Asynchronous. +
+On Entry
+
+icontxt
the communication context identifying the virtual parallel machine.
Scope: global.
Type: required.
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 iam np - 1  +
+np
Number of processes in the PSBLAS virtual parallel machine.
Scope: global.
Type: required.
Intent: out.
Specified as: an integer variable.  
+

Notes +

    +
  1. For processes in the virtual parallel machine the identifier will satisfy + 0 iam np - 1; +
  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.
+ + + + + + + +

+ diff --git a/docs/html/userhtmlsu59.html b/docs/html/userhtmlsu59.html new file mode 100644 index 00000000..6634744c --- /dev/null +++ b/docs/html/userhtmlsu59.html @@ -0,0 +1,101 @@ + + +psb_exit — Exit from PSBLAS parallel environment + + + + + + + +

+

7.3 psb_exit — Exit from PSBLAS parallel environment

+ + + +
+call psb_exit(icontxt) + 
call psb_exit(icontxt,close) +
+

+

This subroutine exits from the PSBLAS parallel virtual machine. +

+Type:
Synchronous. +
+On Entry
+
+icontxt
the communication context identifying the virtual parallel machine.
Scope: global.
Type: required.
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.
Scope: global.
Type: optional.
Intent: in.
Specified as: a logical variable, default value: true.
+

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.
+ + + + + + + +

+ diff --git a/docs/html/userhtmlsu6.html b/docs/html/userhtmlsu6.html new file mode 100644 index 00000000..18b94c13 --- /dev/null +++ b/docs/html/userhtmlsu6.html @@ -0,0 +1,963 @@ + + +Sparse Matrix class + + + + + + + +

+

3.2 Sparse Matrix class

+

The psb_Tspmat_type class contains all information about the local portion of the +sparse matrix and its storage mode. Its design is based on the STATE design +pattern [13] as detailed in [11]; the type declaration is shown in figure 4 where T is a +placeholder for the data type and precision variants +

+S
Single precision real; +
+D
Double precision real; +
+C
Single precision complex; +
+Z
Double precision complex.
+

The actual data is contained in the polymorphic component a%a of type +psb_T_base_sparse_mat; its specific layout can be chosen dynamically among the +predefined types, or an entirely new storage layout can be implemented and passed to +the library at runtime via the psb_spasb routine.


+
+

+

+  type :: psb_Tspmat_type + 
    class(psb_T_base_sparse_mat), allocatable  :: a + 
  end type  psb_Tspmat_type +
+

+
Figure 4: The PSBLAS defined data type that contains a sparse matrix.
+


+

The following very common formats are precompiled in PSBLAS and thus are +always available: +

+psb_T_coo_sparse_mat
Coordinate storage; +
+psb_T_csr_sparse_mat
Compressed storage by rows; +
+psb_T_csc_sparse_mat
Compressed storage by columns;
+ + + +

The inner 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.
+

The only storage variant supporting the build state is COO; all other variants are +obtained by conversion to/from it. +

+

3.2.1 Sparse Matrix Methods
+

+

3.2.2 get_nrows — Get number of rows in a sparse matrix
+ + + +
+nr = a%get_nrows() +
+

+

+

+Type:
Asynchronous. +
+On Entry
+
+a
the sparse matrix
Scope: local
+

+

+On Return
+
+Function value
The number of rows of sparse matrix a.
+

+

3.2.3 get_ncols — Get number of columns in a sparse matrix
+ + + +
+nc = a%get_ncols() +
+

+

+

+Type:
Asynchronous. +
+On Entry
+
+a
the sparse matrix
Scope: local
+

+

+On Return
+
+Function value
The number of columns of sparse matrix a.
+

+

3.2.4 get_nnzeros — Get number of nonzero elements in a sparse matrix
+ + + +
+nz = a%get_nnzeros() +
+

+

+

+Type:
Asynchronous. +
+On Entry
+
+a
the sparse matrix
Scope: local
+

+

+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.
+

+

3.2.5 get_size — Get maximum number of nonzero elements in a sparse +matrix
+ + + +
+maxnz = a%get_size() +
+

+

+

+Type:
Asynchronous. +
+On Entry
+
+a
the sparse matrix
Scope: local
+

+

+On Return
+
+Function value
The maximum number of nonzero elements that can be stored + in sparse matrix a using its current memory allocation.
+

+

3.2.6 sizeof — Get memory occupation in bytes of a sparse matrix
+ + + +
+memory_size = a%sizeof() +
+

+

+

+Type:
Asynchronous. +
+On Entry
+
+a
the sparse matrix
Scope: local
+

+

+On Return
+
+Function value
The memory occupation in bytes.
+

+

3.2.7 get_fmt — Short description of the dynamic type
+ + + +
+write(*,*) a%get_fmt() +
+

+

+

+Type:
Asynchronous. +
+On Entry
+
+a
the sparse matrix
Scope: local
+

+

+On Return
+
+Function value
A short string describing the dynamic type of the matrix. + Predefined values include NULL, COO, CSR and CSC.
+

+

3.2.8 is_bld, is_upd, is_asb — Status check
+ + + +
+if (a%is_bld()) then + 
if (a%is_upd()) then + 
if (a%is_asb()) then +
+

+

+

+Type:
Asynchronous. +
+On Entry
+
+a
the sparse matrix
Scope: local
+

+

+On Return
+
+Function value
A logical value indicating whether the matrix is in the Build, + Update or Assembled state, respectively.
+

+

3.2.9 is_lower, is_upper, is_triangle, is_unit — Format check
+ + + +
+if (a%is_triangle()) then + 
if (a%is_upper()) then + 
if (a%is_lower()) then + 
if (a%is_unit()) then +
+

+

+

+Type:
Asynchronous. +
+On Entry
+
+a
the sparse matrix
Scope: local
+

+

+On Return
+
+Function value
A logical value indicating whether the matrix is triangular; + if is_triangle() returns .true. check also if it is lower, upper and with + a unit (i.e. assumed) diagonal.
+

+

3.2.10 cscnv — Convert to a different storage format
+ + + +
+call  a%cscnv(b,info [, type, mold, dupl]) + 
call  a%cscnv(info [, type, mold, dupl]) +
+

+

+

+Type:
Asynchronous. +
+On Entry
+
+a
the sparse matrix.
A variable of type psb_Tspmat_type.
Scope: local.
+
+type
a string requesting a new format.
Type: optional. +
+mold
a variable of class(psb_T_base_sparse_mat) requesting a new format.
Type: optional. +
+dupl
an integer value specifing how to handle duplicates (see Named Constants + below)
+

+

+On Return
+
+b,a
A copy of a with a new storage format.
A variable of type psb_Tspmat_type. +
+info
Return code.
+

The mold arguments may be employed to interface with special devices, such as GPUs +and other accelerators. +

+

3.2.11 csclip — Reduce to a submatrix
+ + + +
+    call a%csclip(b,info[,& + 
       & imin,imax,jmin,jmax,rscale,cscale]) +
+

+

Returns the submatrix A(imin:imax,jmin:jmax), optionally rescaling row/col +indices to the range 1:imax-imin+1,1:jmax-jmin+1. +

+Type:
Asynchronous. +
+On Entry
+
+a
the sparse matrix.
A variable of type psb_Tspmat_type.
Scope: local.
+
+imin,imax,jmin,jmax
Minimum and maximum row and column indices.
Type: optional. +
+rscale,cscale
Whether to rescale row/column indices. Type: optional.
+

+

+On Return
+
+b
A copy of a submatrix of a.
A variable of type psb_Tspmat_type. +
+info
Return code.
+

+

3.2.12 clean_zeros — Eliminate zero coefficients
+ + + +
+    call a%clean_zeros(info) +
+

+

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

+

+Type:
Asynchronous. +
+On Entry
+
+a
the sparse matrix.
A variable of type psb_Tspmat_type.
Scope: local.
+

+

+On Return
+
+a
The matrix a without zero coefficients.
A variable of type psb_Tspmat_type. +
+info
Return code.
+

+

3.2.13 get_diag — Get main diagonal
+ + + +
+    call a%get_diag(d,info) +
+

+

Returns a copy of the main diagonal. +

+Type:
Asynchronous. +
+On Entry
+
+a
the sparse matrix.
A variable of type psb_Tspmat_type.
Scope: local.
+

+

+On Return
+
+d
A copy of the main diagonal.
A one-dimensional array of the appropriate type. +
+info
Return code.
+

+

3.2.14 clip_diag — Cut out main diagonal
+ + + +
+    call a%clip_diag(b,info) +
+

+

Returns a copy of a without the main diagonal. +

+Type:
Asynchronous. +
+On Entry
+
+a
the sparse matrix.
A variable of type psb_Tspmat_type.
Scope: local.
+

+

+On Return
+
+b
A copy of a without the main diagonal.
A variable of type psb_Tspmat_type. +
+info
Return code.
+

+

3.2.15 tril — Return the lower triangle
+ + + +
+    call a%tril(l,info[,& + 
       & diag,imin,imax,jmin,jmax,rscale,cscale,u]) +
+

+

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

+Type:
Asynchronous. +
+On Entry
+
+a
the sparse matrix.
A variable of type psb_Tspmat_type.
Scope: local.
+
+diag
Include diagonals up to this one; diag=1 means the first superdiagonal, + diag=-1 means the first subdiagonal. Default 0. +
+imin,imax,jmin,jmax
Minimum and maximum row and column indices.
Type: optional. +
+rscale,cscale
Whether to rescale row/column indices. Type: optional.
+

+

+On Return
+
+l
A copy of the lower triangle of a.
A variable of type psb_Tspmat_type. +
+u
(optional) A copy of the upper triangle of a.
A variable of type psb_Tspmat_type. +
+info
Return code.
+

+

3.2.16 triu — Return the upper triangle
+ + + +
+    call a%triu(u,info[,& + 
       & diag,imin,imax,jmin,jmax,rscale,cscale,l]) +
+

+

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

+Type:
Asynchronous. +
+On Entry
+
+a
the sparse matrix.
A variable of type psb_Tspmat_type.
Scope: local.
+
+diag
Include diagonals up to this one; diag=1 means the first superdiagonal, + diag=-1 means the first subdiagonal. Default 0. +
+imin,imax,jmin,jmax
Minimum and maximum row and column indices.
Type: optional. +
+rscale,cscale
Whether to rescale row/column indices. Type: optional.
+

+

+On Return
+
+u
A copy of the upper triangle of a.
A variable of type psb_Tspmat_type. +
+l
(optional) A copy of the lower triangle of a.
A variable of type psb_Tspmat_type. +
+info
Return code.
+

+

3.2.17 psb_set_mat_default — Set default storage format
+ + + +
+call  psb_set_mat_default(a) +
+

+

+

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

+

3.2.18 clone — Clone current object
+ + + +
+call  a%clone(b,info) +
+

+

+

+Type:
Asynchronous. +
+On Entry
+
+a
the sparse matrix.
Scope: local.
+

+

+On Return
+
+b
A copy of the input object. +
+info
Return code.
+

+

3.2.19 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).
+ + + + +

+ diff --git a/docs/html/userhtmlsu60.html b/docs/html/userhtmlsu60.html new file mode 100644 index 00000000..fb131e3f --- /dev/null +++ b/docs/html/userhtmlsu60.html @@ -0,0 +1,84 @@ + + +psb_get_mpi_comm — Get the MPI communicator + + + + + + + +

+

7.4 psb_get_mpi_comm — Get the MPI communicator

+ + + +
+icomm = psb_get_mpi_comm(icontxt) +
+

+

This function returns the MPI communicator associated with a PSBLAS +context +

+Type:
Asynchronous. +
+On Entry
+
+icontxt
the communication context identifying the virtual parallel machine.
Scope: global.
Type: required.
Intent: in.
Specified as: an integer variable.
+

+

+On Return
+
+Function value
The MPI communicator associated with the PSBLAS virtual + parallel machine.
Scope: global.
Type: required.
Intent: out.
+

Notes The subroutine version psb_get_mpicomm is still available but is +deprecated. + + + + + + +

+

+ diff --git a/docs/html/userhtmlsu61.html b/docs/html/userhtmlsu61.html new file mode 100644 index 00000000..cad2fd88 --- /dev/null +++ b/docs/html/userhtmlsu61.html @@ -0,0 +1,99 @@ + + +psb_get_mpi_rank — Get the MPI rank + + + + + + + +

+

7.5 psb_get_mpi_rank — Get the MPI rank

+ + + +
+rank = psb_get_mpi_rank(icontxt, id) +
+

+

This function returns the MPI rank of the PSBLAS process id +

+Type:
Asynchronous. +
+On Entry
+
+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.
Type: required.
Intent: in.
Specified as: an integer value. 0 id np -
+

+

+On Return
+
+Funciton value
The MPI rank associated with the PSBLAS process id.
Scope: local.
Type: required.
Intent: out.
+

Notes The subroutine version psb_get_rank is still available but is deprecated. + + + + + + +

+

+ diff --git a/docs/html/userhtmlsu62.html b/docs/html/userhtmlsu62.html new file mode 100644 index 00000000..2786fa5e --- /dev/null +++ b/docs/html/userhtmlsu62.html @@ -0,0 +1,58 @@ + + +psb_wtime — Wall clock timing + + + + + + + +

+

7.6 psb_wtime — Wall clock timing

+ + + +
+time = psb_wtime() +
+

+

This function returns a wall clock timer. The resolution of the timer is dependent +on the underlying parallel environment implementation. +

+Type:
Asynchronous. +
+On Exit
+
+Function value
the elapsed time in seconds.
Returned as: a real(psb_dpk_) variable.
+ + + + + + + +

+ diff --git a/docs/html/userhtmlsu63.html b/docs/html/userhtmlsu63.html new file mode 100644 index 00000000..dd7f5c80 --- /dev/null +++ b/docs/html/userhtmlsu63.html @@ -0,0 +1,63 @@ + + +psb_barrier — Sinchronization point parallel environment + + + + + + + +

+

7.7 psb_barrier — Sinchronization point parallel environment

+ + + +
+call psb_barrier(icontxt) +
+

+

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

+Type:
Synchronous. +
+On Entry
+
+icontxt
the communication context identifying the virtual parallel machine.
Scope: global.
Type: required.
Intent: in.
Specified as: an integer variable.
+ + + + + + + +

+ diff --git a/docs/html/userhtmlsu64.html b/docs/html/userhtmlsu64.html new file mode 100644 index 00000000..a1df06cb --- /dev/null +++ b/docs/html/userhtmlsu64.html @@ -0,0 +1,62 @@ + + +psb_abort — Abort a computation + + + + + + + +

+

7.8 psb_abort — Abort a computation

+ + + +
+call psb_abort(icontxt) +
+

+

This subroutine aborts computation on the parallel virtual machine. +

+Type:
Asynchronous. +
+On Entry
+
+icontxt
the communication context identifying the virtual parallel machine.
Scope: global.
Type: required.
Intent: in.
Specified as: an integer variable.
+ + + + + + + +

+ diff --git a/docs/html/userhtmlsu65.html b/docs/html/userhtmlsu65.html new file mode 100644 index 00000000..8c6cf1df --- /dev/null +++ b/docs/html/userhtmlsu65.html @@ -0,0 +1,110 @@ + + +psb_bcast — Broadcast data + + + + + + + +

+

7.9 psb_bcast — Broadcast data

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

+

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

+Type:
Synchronous. +
+On Entry
+
+icontxt
the communication context identifying the virtual parallel machine.
Scope: global.
Type: required.
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.
+ + + + + + + +

+ diff --git a/docs/html/userhtmlsu66.html b/docs/html/userhtmlsu66.html new file mode 100644 index 00000000..8a22d312 --- /dev/null +++ b/docs/html/userhtmlsu66.html @@ -0,0 +1,124 @@ + + +psb_sum — Global sum + + + + + + + +

+

7.10 psb_sum — Global sum

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

+

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

+Type:
Synchronous. +
+On Entry
+
+icontxt
the communication context identifying the virtual parallel machine.
Scope: global.
Type: required.
Intent: in.
Specified as: an integer variable. +
+dat
The local contribution to the global sum.
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.  Type, kind, rank and size must agree on all processes. +
+root
Process to hold the final sum, or -1 to make it available on all processes.
Scope: global.
Type: optional.
Intent: in.
Specified as: an integer value -1 <= root <= np - 1, default -1.  
+

+

+On Return
+
+dat
On destination process(es), the result of the sum operation.
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.
Type, kind, rank and size must agree on all processes.
+

Notes + + + +

    +
  1. The dat argument is both input and output, and its value may be changed + even on processes different from the final result destination. +
  2. +
  3. The dat argument may also be a long integer scalar.
+ + + + + + + +

+ diff --git a/docs/html/userhtmlsu67.html b/docs/html/userhtmlsu67.html new file mode 100644 index 00000000..d9951c08 --- /dev/null +++ b/docs/html/userhtmlsu67.html @@ -0,0 +1,125 @@ + + +psb_max — Global maximum + + + + + + + +

+

7.11 psb_max — Global maximum

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

+

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

+Type:
Synchronous. +
+On Entry
+
+icontxt
the communication context identifying the virtual parallel machine.
Scope: global.
Type: required.
Intent: in.
Specified as: an integer variable. +
+dat
The local contribution to the global maximum.
Scope: local.
Type: required.
Intent: inout.
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 -1 to make it available on all + processes.
Scope: global.
Type: optional.
Intent: in.
Specified as: an integer value -1 <= root <= np - 1, default -1.
+

+

+On Return
+
+dat
On destination process(es), the result of the maximum operation.
Scope: global.
Type: required.
Intent: in.
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.
+

Notes + + + +

    +
  1. The dat argument is both input and output, and its value may be changed + even on processes different from the final result destination. +
  2. +
  3. The dat argument may also be a long integer scalar.
+ + + + + + + +

+ diff --git a/docs/html/userhtmlsu68.html b/docs/html/userhtmlsu68.html new file mode 100644 index 00000000..d05498b6 --- /dev/null +++ b/docs/html/userhtmlsu68.html @@ -0,0 +1,125 @@ + + +psb_min — Global minimum + + + + + + + +

+

7.12 psb_min — Global minimum

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

+

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

+Type:
Synchronous. +
+On Entry
+
+icontxt
the communication context identifying the virtual parallel machine.
Scope: global.
Type: required.
Intent: in.
Specified as: an integer variable. +
+dat
The local contribution to the global minimum.
Scope: local.
Type: required.
Intent: inout.
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 value, or -1 to make it available on all processes.
Scope: global.
Type: optional.
Intent: in.
Specified as: an integer value -1 <= root <= np - 1, default -1.
+

+

+On Return
+
+dat
On destination process(es), the result of the minimum operation.
Scope: global.
Type: required.
Intent: inout.
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.
+

Notes + + + +

    +
  1. The dat argument is both input and output, and its value may be changed + even on processes different from the final result destination. +
  2. +
  3. The dat argument may also be a long integer scalar.
+ + + + + + + +

+ diff --git a/docs/html/userhtmlsu69.html b/docs/html/userhtmlsu69.html new file mode 100644 index 00000000..5c330ac6 --- /dev/null +++ b/docs/html/userhtmlsu69.html @@ -0,0 +1,124 @@ + + +psb_amx — Global maximum absolute value + + + + + + + +

+

7.13 psb_amx — Global maximum absolute value

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

+

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

+Type:
Synchronous. +
+On Entry
+
+icontxt
the communication context identifying the virtual parallel machine.
Scope: global.
Type: required.
Intent: in.
Specified as: an integer variable. +
+dat
The local contribution to the global maximum.
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.  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.
Scope: global.
Type: optional.
Intent: in.
Specified as: an integer value -1 <= root <= np - 1, default -1.
+

+

+On Return
+
+dat
On destination process(es), the result of the maximum operation.
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.  Type, kind, rank and size must agree on all processes.
+

Notes + + + +

    +
  1. The dat argument is both input and output, and its value may be changed + even on processes different from the final result destination. +
  2. +
  3. The dat argument may also be a long integer scalar.
+ + + + + + + +

+ diff --git a/docs/html/userhtmlsu7.html b/docs/html/userhtmlsu7.html new file mode 100644 index 00000000..87e649d8 --- /dev/null +++ b/docs/html/userhtmlsu7.html @@ -0,0 +1,352 @@ + + +Dense Vector Data Structure + + + + + + + +

+

3.3 Dense Vector Data Structure

+

The psb_T_vect_type data structure encapsulates the dense vectors in a way similar +to sparse matrices, i.e. including a base type psb_T_base_vect_type. The user will +not, in general, access the vector components directly, but rather via the routines of +sec. 6. Among other simple things, we define here an extraction method that +can be used to get a full copy of the part of the vector stored on the local +process. +

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

+I
Integer; +
+S
Single precision real; +
+D
Double precision real; +
+C
Single precision complex; +
+Z
Double precision complex.
+

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


+
+

+

+  type psb_T_base_vect_type + 
    TYPE(KIND_), allocatable :: v(:) + 
  end type psb_T_base_vect_type + 

  type psb_T_vect_type + 
    class(psb_T_base_vect_type), allocatable :: v + 
  end type  psb_T_vect_type + 
+
+

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


+

+

3.3.1 Vector Methods
+

+

3.3.2 get_nrows — Get number of rows in a dense vector
+ + + +
+nr = v%get_nrows() +
+

+

+

+Type:
Asynchronous. +
+On Entry
+
+v
the dense vector
Scope: local
+

+

+On Return
+
+Function value
The number of rows of dense vector v.
+

+

3.3.3 sizeof — Get memory occupation in bytes of a dense vector
+ + + +
+memory_size = v%sizeof() +
+

+

+

+Type:
Asynchronous. +
+On Entry
+
+v
the dense vector
Scope: local
+

+

+On Return
+
+Function value
The memory occupation in bytes.
+

+

3.3.4 set — Set contents of the vector
+ + + +
+ call  v%set(alpha[,first,last]) + 
 call  v%set(vect[,first,last]) + 
 call  v%zero() +
+

+

+

+Type:
Asynchronous. +
+On Entry
+
+v
the dense vector
Scope: local
+
+alpha
A scalar value.
Scope: local
Type: required
Intent: in.
Specified as: a number of the data type indicated in Table 1. +
+first,last
Boundaries for setting in the vector.
Scope: local
Type: optional
Intent: in.
Specified as: integers. +
+vect
An array
Scope: local
Type: required
Intent: in.
Specified as: a number of the data type indicated in Table 1.
+

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

+

+On Return
+
+v
the dense vector, with updated entries
Scope: local
+ + + +

+

3.3.5 get_vect — Get a copy of the vector contents
+ + + +
+extv = v%get_vect([n]) +
+

+

+

+Type:
Asynchronous. +
+On Entry
+
+v
the dense vector
Scope: local
+
+n
Size to be returned
Scope: local.
Type: optional; default: entire vector.
+
+

+

+On Return
+
+Function value
An allocatable array holding a copy of the dense vector + contents. If the argument n is specified, the size of the returned array + equals the minimum between n and the internal size of the vector, or 0 if + n is negative; otherwise, the size of the array is the same as the internal + size of the vector.
+

+

3.3.6 clone — Clone current object
+ + + +
+call  x%clone(y,info) +
+

+

+

+Type:
Asynchronous. +
+On Entry
+
+x
the dense vector.
Scope: local.
+

+

+On Return
+
+y
A copy of the input object. +
+info
Return code.
+ + + + +

+ diff --git a/docs/html/userhtmlsu70.html b/docs/html/userhtmlsu70.html new file mode 100644 index 00000000..4a8fda93 --- /dev/null +++ b/docs/html/userhtmlsu70.html @@ -0,0 +1,125 @@ + + +psb_amn — Global minimum absolute value + + + + + + + +

+

7.14 psb_amn — Global minimum absolute value

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

+

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

+Type:
Synchronous. +
+On Entry
+
+icontxt
the communication context identifying the virtual parallel machine.
Scope: global.
Type: required.
Intent: in.
Specified as: an integer variable. +
+dat
The local contribution to the global minimum.
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.  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.
Scope: global.
Type: optional.
Intent: in.
Specified as: an integer value -1 <= root <= np - 1, default -1.
+

+

+On Return
+
+dat
On destination process(es), the result of the minimum operation.
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.
Type, kind, rank and size must agree on all processes.
+

Notes + + + +

    +
  1. The dat argument is both input and output, and its value may be changed + even on processes different from the final result destination. +
  2. +
  3. The dat argument may also be a long integer scalar.
+ + + + + + + +

+ diff --git a/docs/html/userhtmlsu71.html b/docs/html/userhtmlsu71.html new file mode 100644 index 00000000..11cd03ac --- /dev/null +++ b/docs/html/userhtmlsu71.html @@ -0,0 +1,141 @@ + + +psb_nrm2 — Global 2-norm reduction + + + + + + + +

+

7.15 psb_nrm2 — Global 2-norm reduction

+ + + +
+call psb_nrm2(icontxt, dat, root) +
+

+

This subroutine implements a 2-norm value reduction operation based on the +underlying communication library. +

+Type:
Synchronous. +
+On Entry
+
+icontxt
the communication context identifying the virtual parallel machine.
Scope: global.
Type: required.
Intent: in.
Specified as: an integer variable. +
+dat
The local contribution to the global minimum.
Scope: local.
Type: required.
Intent: inout.
Specified as: a real variable, which may be a scalar, or a rank 1 array. +  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.
Scope: global.
Type: optional.
Intent: in.
Specified as: an integer value -1 <= root <= np - 1, default -1.
+

+

+On Return
+
+dat
On destination process(es), the result of the 2-norm reduction.
Scope: global.
Type: required.
Intent: inout.
Specified as: a real variable, which may be a scalar, or a rank 1 array.
Kind, rank and size must agree on all processes.
+

Notes + + + +

    +
  1. This reduction is appropriate to compute the results of multiple (local) + NRM2 operations at the same time. +
  2. +
  3. Denoting by dati the value of the variable dat on process i, the output res + is equivalent to the computation of +
    +      ∘ -------
+       ∑     2
+res =     dati,
+         i
+
    +

    with care taken to avoid unnecessary overflow. +

  4. +
  5. The dat argument is both input and output, and its value may be changed + even on processes different from the final result destination.
+ + + + + + + +

+ diff --git a/docs/html/userhtmlsu72.html b/docs/html/userhtmlsu72.html new file mode 100644 index 00000000..c4e31009 --- /dev/null +++ b/docs/html/userhtmlsu72.html @@ -0,0 +1,129 @@ + + +psb_snd — Send data + + + + + + + +

+

7.16 psb_snd — Send data

+ + + +
+call psb_snd(icontxt, dat, dst, m) +
+

+

This subroutine sends 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. +
+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.
Scope: global.
Type: required.
Intent: in.
Specified as: an integer value 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.
+

+

+On Return
+ + + +

Notes +

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

+ diff --git a/docs/html/userhtmlsu73.html b/docs/html/userhtmlsu73.html new file mode 100644 index 00000000..58de2fb4 --- /dev/null +++ b/docs/html/userhtmlsu73.html @@ -0,0 +1,124 @@ + + +psb_rcv — Receive data + + + + + + + +

+

7.17 psb_rcv — Receive data

+ + + +
+call psb_rcv(icontxt, dat, src, m) +
+

+

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.
+

+

+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.
+ + + +

Notes +

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

+ diff --git a/docs/html/userhtmlsu74.html b/docs/html/userhtmlsu74.html new file mode 100644 index 00000000..e9a4bf75 --- /dev/null +++ b/docs/html/userhtmlsu74.html @@ -0,0 +1,93 @@ + + +psb_errpush — Pushes an error code onto the error stack + + + + + + + +

+

8.1 psb_errpush — Pushes an error code onto the error stack

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

+

+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.
+ + + + + + + +

+ diff --git a/docs/html/userhtmlsu75.html b/docs/html/userhtmlsu75.html new file mode 100644 index 00000000..b4726464 --- /dev/null +++ b/docs/html/userhtmlsu75.html @@ -0,0 +1,61 @@ + + +psb_error — Prints the error stack content and aborts execution + + + + + + + +

+

8.2 psb_error — Prints the error stack content and aborts execution

+ +
call psb_error(icontxt) + +
+

+

+Type:
Asynchronous. +
+On Entry
+
+icontxt
the communication context.
Scope: global
Type: optional
Intent: in.
Specified as: an integer.
+ + + + + + + +

+ diff --git a/docs/html/userhtmlsu76.html b/docs/html/userhtmlsu76.html new file mode 100644 index 00000000..218404fa --- /dev/null +++ b/docs/html/userhtmlsu76.html @@ -0,0 +1,61 @@ + + +psb_set_errverbosity — Sets the verbosity of error messages + + + + + + + +

+

8.3 psb_set_errverbosity — Sets the verbosity of error messages

+ +
call psb_set_errverbosity(v) + +
+

+

+Type:
Asynchronous. +
+On Entry
+
+v
the verbosity level
Scope: global
Type: required
Intent: in.
Specified as: an integer.
+ + + + + + + +

+ diff --git a/docs/html/userhtmlsu77.html b/docs/html/userhtmlsu77.html new file mode 100644 index 00000000..e1e62e1b --- /dev/null +++ b/docs/html/userhtmlsu77.html @@ -0,0 +1,63 @@ + + +psb_set_erraction — Set the type of action to be taken upon error condition + + + + + + + +

+

8.4 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.
+ + + + + + + +

+ diff --git a/docs/html/userhtmlsu78.html b/docs/html/userhtmlsu78.html new file mode 100644 index 00000000..d7e6fd9f --- /dev/null +++ b/docs/html/userhtmlsu78.html @@ -0,0 +1,110 @@ + + + hb_read — Read a sparse matrix from a file in the Harwell–Boeing +format + + + + + + + +

+

9.1 hb_read — Read a sparse matrix from a file in the Harwell–Boeing +format

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

+

+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 psb_Tspmat_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.
+ + + + + + + +

+ diff --git a/docs/html/userhtmlsu79.html b/docs/html/userhtmlsu79.html new file mode 100644 index 00000000..47418d21 --- /dev/null +++ b/docs/html/userhtmlsu79.html @@ -0,0 +1,121 @@ + + +hb_write — Write a sparse matrix to a file in the Harwell–Boeing format + + + + + + + +

+

9.2 hb_write — Write a sparse matrix to a file in the Harwell–Boeing +format

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

+

+Type:
Asynchronous. +
+On Entry
+
+a
the sparse matrix to be written.
Type:required.
Specified as: a structured data of type psb_Tspmat_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.
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 Unix jargon) + is used. Default: -. +
+iunit
The Fortran file unit number.
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.
+

+

+On Return
+
+iret
Error code.
Type: required
An integer value; 0 means no error has been detected.
+ + + + + + + +

+ diff --git a/docs/html/userhtmlsu8.html b/docs/html/userhtmlsu8.html new file mode 100644 index 00000000..5c0ff71c --- /dev/null +++ b/docs/html/userhtmlsu8.html @@ -0,0 +1,71 @@ + + +Preconditioner data structure + + + + + + + +

+

3.4 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 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 internal preconditioner is +allocated appropriately with the dynamic type corresponding to the desired +preconditioner.


+ + + + + + + +
+

+


  type psb_Tprec_type + 
    class(psb_T_base_prec_type), allocatable :: prec + 
  end type psb_Tprec_type + 
+
+

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


+ + + + +

+ diff --git a/docs/html/userhtmlsu80.html b/docs/html/userhtmlsu80.html new file mode 100644 index 00000000..ee9c2c16 --- /dev/null +++ b/docs/html/userhtmlsu80.html @@ -0,0 +1,94 @@ + + +mm_mat_read — Read a sparse matrix from a file in the MatrixMarket +format + + + + + + + +

+

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

+ +
call mm_mat_read(a, iret, iunit, filename) + +
+

+

+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 psb_Tspmat_type. +
+iret
Error code.
Type: required
An integer value; 0 means no error has been detected.
+ + + + + + + +

+ diff --git a/docs/html/userhtmlsu81.html b/docs/html/userhtmlsu81.html new file mode 100644 index 00000000..7bcaa337 --- /dev/null +++ b/docs/html/userhtmlsu81.html @@ -0,0 +1,93 @@ + + +mm_array_read — Read a dense array from a file in the MatrixMarket +format + + + + + + + +

+

9.4 mm_array_read — Read a dense array from a file in the MatrixMarket +format

+ +
call mm_array_read(b, iret, iunit, filename) + +
+

+

+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
+
+b
Rigth hand side(s).
Type: required
An array of type real or complex, rank 1 or 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.
Type: required
An integer value; 0 means no error has been detected.
+ + + + + + + +

+ diff --git a/docs/html/userhtmlsu82.html b/docs/html/userhtmlsu82.html new file mode 100644 index 00000000..eb9a66d0 --- /dev/null +++ b/docs/html/userhtmlsu82.html @@ -0,0 +1,105 @@ + + +mm_mat_write — Write a sparse matrix to a file in the MatrixMarket +format + + + + + + + +

+

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

+ +
call mm_mat_write(a, mtitle, iret, iunit, filename) + +
+

+

+Type:
Asynchronous. +
+On Entry
+
+a
the sparse matrix to be written.
Type:required.
Specified as: a structured data of type psb_Tspmat_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 written to.
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 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
+
+iret
Error code.
Type: required
An integer value; 0 means no error has been detected.
+ + + + + + + + + + +

+ diff --git a/docs/html/userhtmlsu83.html b/docs/html/userhtmlsu83.html new file mode 100644 index 00000000..68d93ce9 --- /dev/null +++ b/docs/html/userhtmlsu83.html @@ -0,0 +1,88 @@ + + +mm_array_write — Write a dense array from a file in the MatrixMarket +format + + + + + + + +

+

9.6 mm_array_write — Write a dense array from a file in the MatrixMarket +format

+ +
call mm_array_write(b, iret, iunit, filename) + +
+

+

+Type:
Asynchronous. +
+On Entry
+
+b
Rigth hand side(s).
Type: required
An array of type real or complex, rank 1 or 2; will be written..  +
+filename
The name of the file to be written.
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
+
+iret
Error code.
Type: required
An integer value; 0 means no error has been detected.
+ + + + + + + +

+ diff --git a/docs/html/userhtmlsu84.html b/docs/html/userhtmlsu84.html new file mode 100644 index 00000000..627c4fd6 --- /dev/null +++ b/docs/html/userhtmlsu84.html @@ -0,0 +1,125 @@ + + +init — Initialize a preconditioner + + + + + + + +

+

10.1 init — Initialize a preconditioner

+ + + +
+call prec%init(icontxt,ptype, info) +
+

+

+

+Type:
Asynchronous. +
+On Entry
+
+icontxt
the communication context.
Scope:global.
Type:required.
Intent: in.
Specified as: an integer value. +
+ptype
the type of preconditioner. Scope: global
Type: required
Intent: in.
Specified as: a character string, see usage notes. +
+On Exit
+
+prec
Scope: local
Type: required
Intent: inout.
Specified as: a preconditioner data structure psb_prec_type. +
+info
Scope: global
Type: required
Intent: out.
Error code: if no error, 0 is returned.
+

Notes Legal inputs to this subroutine are interpreted depending on the ptype string as +follows4 : +

+NONE
No preconditioning, i.e. the preconditioner is just a copy operator. +
+DIAG
Diagonal scaling; each entry of the input vector is multiplied by the + reciprocal of the sum of the absolute values of the coefficients in the + corresponding row of matrix A; + + + +
+BJAC
Precondition by a factorization of the block-diagonal of matrix A, + where block boundaries are determined by the data allocation boundaries + for each process; requires no communication. Only the incomplete + factorization ILU(0) is currently implemented.
+ + + + + + + +

+ diff --git a/docs/html/userhtmlsu85.html b/docs/html/userhtmlsu85.html new file mode 100644 index 00000000..a8b076fd --- /dev/null +++ b/docs/html/userhtmlsu85.html @@ -0,0 +1,186 @@ + + +build — Builds a preconditioner + + + + + + + +

+

10.2 build — Builds a preconditioner

+ + + +
+call prec%build(a, desc_a, info[,amold,vmold,imold]) +
+

+

+

+Type:
Synchronous. +
+On Entry
+
+a
the system sparse matrix. Scope: local
Type: required
Intent: in, target.
Specified as: a sparse matrix data structure psb_Tspmat_type. +
+prec
the preconditioner.
Scope: local
Type: required
Intent: inout.
Specified as: an already initialized precondtioner data structure + psb_prec_type
+
+desc_a
the problem communication descriptor. Scope: local
Type: required
Intent: in, target.
Specified as: a communication descriptor data structure psb_desc_type. +
+amold
The desired dynamic type for the internal matrix storage.
Scope: local.
Type: optional.
Intent: in.
Specified as: an object of a class derived from psb_T_base_sparse_mat. +
+vmold
The desired dynamic type for the internal vector storage.
Scope: local.
Type: optional.
Intent: in.
Specified as: an object of a class derived from psb_T_base_vect_type. +
+imold
The desired dynamic type for the internal integer vector storage.
Scope: local.
Type: optional.
Intent: in.
Specified as: an object of a class derived from (integer) + psb_T_base_vect_type.
+

+

+On Return
+
+prec
the preconditioner.
Scope: local
Type: required
Intent: inout.
Specified as: a precondtioner data structure psb_prec_type
+
+info
Error code.
Scope: local
Type: required
Intent: out.
An integer value; 0 means no error has been detected.
+

The amold, vmold and imold arguments may be employed to interface with special +devices, such as GPUs and other accelerators. + + + + + + +

+

+ diff --git a/docs/html/userhtmlsu86.html b/docs/html/userhtmlsu86.html new file mode 100644 index 00000000..49e92286 --- /dev/null +++ b/docs/html/userhtmlsu86.html @@ -0,0 +1,149 @@ + + +apply — Preconditioner application routine + + + + + + + +

+

10.3 apply — Preconditioner application routine

+ + + +
+call prec%apply(x,y,desc_a,info,trans,work) + 
call prec%apply(x,desc_a,info,trans) +
+

+

+

+Type:
Synchronous. +
+On Entry
+
+prec
the preconditioner. Scope: local
Type: required
Intent: in.
Specified as: a preconditioner data structure psb_prec_type. +
+x
the source vector. Scope: local
Type: required
Intent: inout.
Specified as: a rank one array or an object of type psb_T_vect_type. +
+desc_a
the problem communication descriptor. Scope: local
Type: required
Intent: in.
Specified as: a communication data structure psb_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 rank one array or an object of type psb_T_vect_type. + + + +
+info
Error code.
Scope: local
Type: required
Intent: out.
An integer value; 0 means no error has been detected.
+ + + + + + + +

+ diff --git a/docs/html/userhtmlsu87.html b/docs/html/userhtmlsu87.html new file mode 100644 index 00000000..25207037 --- /dev/null +++ b/docs/html/userhtmlsu87.html @@ -0,0 +1,91 @@ + + +descr — Prints a description of current preconditioner + + + + + + + +

+

10.4 descr — Prints a description of current preconditioner

+ + + +
+call prec%descr() + 
call prec%descr(iout, root) +
+

+

+

+Type:
Asynchronous. +
+On Entry
+
+prec
the preconditioner. Scope: local
Type: required
Intent: in.
Specified as: a preconditioner data structure psb_prec_type. +
+iout
output unit. Scope: local
Type: optional
Intent: in.
Specified as: an integer number. Default: default output unit. +
+root
Process from which to print Scope: local
Type: optional
Intent: in.
Specified as: an integer number between 0 and np - 1, in which case + the specified process will print the description, or -1, in which case all + processes will print. Default: 0.
+ + + + + + + +

+ diff --git a/docs/html/userhtmlsu88.html b/docs/html/userhtmlsu88.html new file mode 100644 index 00000000..1478c831 --- /dev/null +++ b/docs/html/userhtmlsu88.html @@ -0,0 +1,69 @@ + + +clone — clone current preconditioner + + + + + + + +

+

10.5 clone — clone current preconditioner

+ + + +
+call  prec%clone(precout,info) +
+

+

+

+Type:
Asynchronous. +
+On Entry
+
+prec
the preconditioner.
Scope: local.
+

+

+On Return
+
+precout
A copy of the input object. +
+info
Return code.
+ + + + + + + +

+ diff --git a/docs/html/userhtmlsu89.html b/docs/html/userhtmlsu89.html new file mode 100644 index 00000000..7d0b20b2 --- /dev/null +++ b/docs/html/userhtmlsu89.html @@ -0,0 +1,94 @@ + + +free — Free a preconditioner + + + + + + + +

+

10.6 free — Free a preconditioner

+ + + +
+call prec%free(info) +
+

+

+

+Type:
Asynchronous. +
+On Entry
+
+prec
the preconditioner.
Scope: local.
Type: required
Intent: inout.
Specified as: a preconditioner data structure psb_prec_type. +
+On Exit
+
+prec
Scope: local
Type: required
Intent: inout.
Specified as: a preconditioner data structure psb_prec_type. +
+info
Scope: global
Type: required
Intent: out.
Error code: if no error, 0 is returned.
+

Notes Releases all internal storage. + + + + + + +

+

+ diff --git a/docs/html/userhtmlsu9.html b/docs/html/userhtmlsu9.html new file mode 100644 index 00000000..e78edec3 --- /dev/null +++ b/docs/html/userhtmlsu9.html @@ -0,0 +1,79 @@ + + +Heap data structure + + + + + + + +

+

3.5 Heap data structure

+

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

+psb_T_heap
: a heap containing elements of type T, where T can be i,s,c,d,z + for integer, real and complex data; +
+psb_T_idx_heap
: a heap containing elements of type T, as above, together + with an integer index.
+

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

+init
Initialize memory; also choose ascending or descending order; +
+howmany
Current heap occupancy; +
+insert
Add an item (or an item and its index); +
+get_first
Remove and return the first element; +
+dump
Print on file; +
+free
Release memory.
+

These objects are used in MLD2P4 to implement the factorization algorithms. + + + + + + +

+

+ diff --git a/docs/html/userhtmlsu90.html b/docs/html/userhtmlsu90.html new file mode 100644 index 00000000..137cfae2 --- /dev/null +++ b/docs/html/userhtmlsu90.html @@ -0,0 +1,361 @@ + + +psb_krylov — Krylov Methods Driver Routine + + + + + + + +

+

11.1 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 can take the following values: +

+1
normwise backward error in the infinity norm; the iteration is stopped when +
+ err = -----∥ri∥------< eps
+      (∥A ∥∥xi∥ + ∥b∥)
+
+

+

+2
Relative residual in the 2-norm; the iteration is stopped when +
+ err = ∥ri∥-< eps
+      ∥b∥2
+
+

+

+3
Relative residual reduction in the 2-norm; the iteration is stopped when +
+ err = -∥ri∥-< eps
+     ∥r0∥2
+
+

+

The behaviour is controlled by the istop argument (see later). In the above formulae, xi +is the tentative solution and ri = b - Axi 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
+
+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; +
+ GCR:
the Generalized Conjugate Residual method; +
+ FCG:
the Flexible Conjugate Gradient method5 ; +
+ 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 psb_Tspmat_type. +
+prec
The data structure containing the preconditioner.
Scope: local
Type: required
Intent: in.
Specified as: a structured data of type psb_prec_type. +
+b
The RHS vector.
Scope: local
Type: required
Intent: in.
Specified as: a rank one array or an object of type psb_T_vect_type. + + + +
+x
The initial guess.
Scope: local
Type: required
Intent: inout.
Specified as: a rank one array or an object of type psb_T_vect_type. +
+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 psb_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 1. +
+itrace
If > 0 print out an informational message about convergence every itrace + iterations. If = 0 print a message in case of convergence failure.
Scope: global
Type: optional
Intent: in.
Default: itrace = -1.
+
+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, 3: use the residual reduction in the 2-norm. Default: + 2. +
+On Return
+
+x
The computed solution.
Scope: local
Type: required
Intent: inout.
Specified as: a rank one array or an object of type psb_T_vect_type. +
+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 on real data.
Scope: global
Type: optional
Intent: out.
Returned as: a real number. A correct result will be greater than or + equal to one; if specified for non-real data, or an error occurred, zero is + returned. +
+info
Error code.
Scope: local
Type: required
Intent: out.
An integer value; 0 means no error has been detected.
+ + + + + + +

+ + + +

+

+ diff --git a/docs/psblas-3.6.pdf b/docs/psblas-3.7.pdf similarity index 74% rename from docs/psblas-3.6.pdf rename to docs/psblas-3.7.pdf index 03e4ad20..4da4c8d6 100644 --- a/docs/psblas-3.6.pdf +++ b/docs/psblas-3.7.pdf @@ -4,24 +4,24 @@ << /Type /ObjStm /N 100 -/First 818 -/Length 4691 +/First 819 +/Length 6377 >> stream 1 0 5 38 6 77 9 117 10 144 13 185 14 217 17 263 18 299 21 345 22 379 25 425 26 464 29 515 30 562 33 608 34 643 37 684 38 727 41 773 -42 816 45 867 46 905 49 947 50 981 53 1023 54 1057 57 1099 58 1134 61 1176 -62 1211 65 1253 66 1291 69 1333 70 1361 73 1403 74 1422 77 1464 78 1481 81 1524 -82 1576 85 1619 86 1671 89 1722 90 1757 93 1803 94 1840 97 1891 98 1932 101 1975 -102 2002 105 2046 106 2073 109 2117 110 2146 113 2190 114 2217 117 2261 118 2283 121 2327 -122 2353 125 2397 126 2444 129 2488 130 2555 133 2599 134 2619 137 2663 138 2684 141 2728 -142 2757 145 2801 146 2827 149 2871 150 2898 153 2942 154 2961 157 3005 158 3024 161 3068 -162 3111 165 3155 166 3175 169 3227 170 3263 173 3310 174 3356 177 3408 178 3443 181 3487 -182 3514 185 3558 186 3580 189 3624 190 3643 193 3687 194 3714 197 3758 198 3778 201 3825 +42 816 45 867 46 905 49 956 50 1026 53 1077 54 1147 57 1198 58 1270 61 1321 +62 1393 65 1444 66 1522 69 1573 70 1638 73 1689 74 1740 77 1791 78 1851 81 1903 +82 2006 85 2058 86 2161 89 2213 90 2285 93 2337 94 2409 97 2461 98 2542 101 2594 +102 2631 105 2678 106 2716 109 2768 110 2810 113 2862 114 2938 117 2990 118 3069 121 3121 +122 3211 125 3263 126 3358 129 3410 130 3492 133 3544 134 3618 137 3670 138 3740 141 3792 +142 3883 145 3936 146 4006 149 4059 150 4114 153 4167 154 4236 157 4289 158 4345 161 4398 +162 4459 165 4512 166 4569 169 4622 170 4679 173 4732 174 4814 177 4867 178 4920 181 4973 +182 5010 185 5057 186 5103 189 5155 190 5190 193 5242 194 5317 197 5369 198 5450 201 5502 % 1 0 obj << /S /GoTo /D (title.0) >> % 5 0 obj -(PSBLAS-v3.6.0 User's Guide) +(PSBLAS-v3.7.0 User's Guide) % 6 0 obj << /S /GoTo /D (section.1) >> % 9 0 obj @@ -63,161 +63,161 @@ stream % 45 0 obj (3.1.1 Descriptor Methods) % 46 0 obj -<< /S /GoTo /D (section*.2) >> +<< /S /GoTo /D (subsubsection.3.1.2) >> % 49 0 obj -(get\137local\137rows) +(3.1.2 get\137local\137rows \204 Get number of local rows) % 50 0 obj -<< /S /GoTo /D (section*.3) >> +<< /S /GoTo /D (subsubsection.3.1.3) >> % 53 0 obj -(get\137local\137cols) +(3.1.3 get\137local\137cols \204 Get number of local cols) % 54 0 obj -<< /S /GoTo /D (section*.4) >> +<< /S /GoTo /D (subsubsection.3.1.4) >> % 57 0 obj -(get\137global\137rows) +(3.1.4 get\137global\137rows \204 Get number of global rows) % 58 0 obj -<< /S /GoTo /D (section*.5) >> +<< /S /GoTo /D (subsubsection.3.1.5) >> % 61 0 obj -(get\137global\137cols) +(3.1.5 get\137global\137cols \204 Get number of global cols) % 62 0 obj -<< /S /GoTo /D (section*.6) >> +<< /S /GoTo /D (subsubsection.3.1.6) >> % 65 0 obj -(get\137global\137indices) +(3.1.6 get\137global\137indices \204 Get vector of global indices) % 66 0 obj -<< /S /GoTo /D (section*.7) >> +<< /S /GoTo /D (subsubsection.3.1.7) >> % 69 0 obj -(get\137context) +(3.1.7 get\137context \204 Get communication context) % 70 0 obj -<< /S /GoTo /D (section*.8) >> +<< /S /GoTo /D (subsubsection.3.1.8) >> % 73 0 obj -(Clone) +(3.1.8 Clone \204 clone current object) % 74 0 obj -<< /S /GoTo /D (section*.9) >> +<< /S /GoTo /D (subsubsection.3.1.9) >> % 77 0 obj -(CNV) +(3.1.9 CNV \204 convert internal storage format) % 78 0 obj -<< /S /GoTo /D (section*.10) >> +<< /S /GoTo /D (subsubsection.3.1.10) >> % 81 0 obj -(psb\137cd\137get\137large\137threshold) +(3.1.10 psb\137cd\137get\137large\137threshold \204 Get threshold for index mapping switch) % 82 0 obj -<< /S /GoTo /D (section*.11) >> +<< /S /GoTo /D (subsubsection.3.1.11) >> % 85 0 obj -(psb\137cd\137set\137large\137threshold) +(3.1.11 psb\137cd\137set\137large\137threshold \204 Set threshold for index mapping switch) % 86 0 obj -<< /S /GoTo /D (subsubsection.3.1.2) >> +<< /S /GoTo /D (subsubsection.3.1.12) >> % 89 0 obj -(3.1.2 Named Constants) +(3.1.12 get\137p\137adjcncy \204 Get process adjacency list) % 90 0 obj -<< /S /GoTo /D (subsection.3.2) >> +<< /S /GoTo /D (subsubsection.3.1.13) >> % 93 0 obj -(3.2 Sparse Matrix class) +(3.1.13 set\137p\137adjcncy \204 Set process adjacency list) % 94 0 obj -<< /S /GoTo /D (subsubsection.3.2.1) >> +<< /S /GoTo /D (subsubsection.3.1.14) >> % 97 0 obj -(3.2.1 Sparse Matrix Methods) +(3.1.14 fnd\137owner \204 Find the owner process of a set of indices) % 98 0 obj -<< /S /GoTo /D (section*.12) >> +<< /S /GoTo /D (subsubsection.3.1.15) >> % 101 0 obj -(get\137nrows) +(3.1.15 Named Constants) % 102 0 obj -<< /S /GoTo /D (section*.13) >> +<< /S /GoTo /D (subsection.3.2) >> % 105 0 obj -(get\137ncols) +(3.2 Sparse Matrix class) % 106 0 obj -<< /S /GoTo /D (section*.14) >> +<< /S /GoTo /D (subsubsection.3.2.1) >> % 109 0 obj -(get\137nnzeros) +(3.2.1 Sparse Matrix Methods) % 110 0 obj -<< /S /GoTo /D (section*.15) >> +<< /S /GoTo /D (subsubsection.3.2.2) >> % 113 0 obj -(get\137size ) +(3.2.2 get\137nrows \204 Get number of rows in a sparse matrix) % 114 0 obj -<< /S /GoTo /D (section*.16) >> +<< /S /GoTo /D (subsubsection.3.2.3) >> % 117 0 obj -(sizeof ) +(3.2.3 get\137ncols \204 Get number of columns in a sparse matrix) % 118 0 obj -<< /S /GoTo /D (section*.17) >> +<< /S /GoTo /D (subsubsection.3.2.4) >> % 121 0 obj -(get\137fmt ) +(3.2.4 get\137nnzeros \204 Get number of nonzero elements in a sparse matrix) % 122 0 obj -<< /S /GoTo /D (section*.18) >> +<< /S /GoTo /D (subsubsection.3.2.5) >> % 125 0 obj -(is\137bld, is\137upd, is\137asb ) +(3.2.5 get\137size \204 Get maximum number of nonzero elements in a sparse matrix) % 126 0 obj -<< /S /GoTo /D (section*.19) >> +<< /S /GoTo /D (subsubsection.3.2.6) >> % 129 0 obj -(is\137lower, is\137upper, is\137triangle, is\137unit) +(3.2.6 sizeof \204 Get memory occupation in bytes of a sparse matrix) % 130 0 obj -<< /S /GoTo /D (section*.20) >> +<< /S /GoTo /D (subsubsection.3.2.7) >> % 133 0 obj -(cscnv) +(3.2.7 get\137fmt \204 Short description of the dynamic type) % 134 0 obj -<< /S /GoTo /D (section*.21) >> +<< /S /GoTo /D (subsubsection.3.2.8) >> % 137 0 obj -(csclip) +(3.2.8 is\137bld, is\137upd, is\137asb \204 Status check) % 138 0 obj -<< /S /GoTo /D (section*.22) >> +<< /S /GoTo /D (subsubsection.3.2.9) >> % 141 0 obj -(clean\137zeros) +(3.2.9 is\137lower, is\137upper, is\137triangle, is\137unit \204 Format check) % 142 0 obj -<< /S /GoTo /D (section*.23) >> +<< /S /GoTo /D (subsubsection.3.2.10) >> % 145 0 obj -(get\137diag) +(3.2.10 cscnv \204 Convert to a different storage format) % 146 0 obj -<< /S /GoTo /D (section*.24) >> +<< /S /GoTo /D (subsubsection.3.2.11) >> % 149 0 obj -(clip\137diag) +(3.2.11 csclip \204 Reduce to a submatrix) % 150 0 obj -<< /S /GoTo /D (section*.25) >> +<< /S /GoTo /D (subsubsection.3.2.12) >> % 153 0 obj -(tril) +(3.2.12 clean\137zeros \204 Eliminate zero coefficients) % 154 0 obj -<< /S /GoTo /D (section*.26) >> +<< /S /GoTo /D (subsubsection.3.2.13) >> % 157 0 obj -(triu) +(3.2.13 get\137diag \204 Get main diagonal) % 158 0 obj -<< /S /GoTo /D (section*.27) >> +<< /S /GoTo /D (subsubsection.3.2.14) >> % 161 0 obj -(psb\137set\137mat\137default) +(3.2.14 clip\137diag \204 Cut out main diagonal) % 162 0 obj -<< /S /GoTo /D (section*.28) >> +<< /S /GoTo /D (subsubsection.3.2.15) >> % 165 0 obj -(clone) +(3.2.15 tril \204 Return the lower triangle) % 166 0 obj -<< /S /GoTo /D (subsubsection.3.2.2) >> +<< /S /GoTo /D (subsubsection.3.2.16) >> % 169 0 obj -(3.2.2 Named Constants) +(3.2.16 triu \204 Return the upper triangle) % 170 0 obj -<< /S /GoTo /D (subsection.3.3) >> +<< /S /GoTo /D (subsubsection.3.2.17) >> % 173 0 obj -(3.3 Dense Vector Data Structure) +(3.2.17 psb\137set\137mat\137default \204 Set default storage format) % 174 0 obj -<< /S /GoTo /D (subsubsection.3.3.1) >> +<< /S /GoTo /D (subsubsection.3.2.18) >> % 177 0 obj -(3.3.1 Vector Methods) +(3.2.18 clone \204 Clone current object) % 178 0 obj -<< /S /GoTo /D (section*.29) >> +<< /S /GoTo /D (subsubsection.3.2.19) >> % 181 0 obj -(get\137nrows) +(3.2.19 Named Constants) % 182 0 obj -<< /S /GoTo /D (section*.30) >> +<< /S /GoTo /D (subsection.3.3) >> % 185 0 obj -(sizeof ) +(3.3 Dense Vector Data Structure) % 186 0 obj -<< /S /GoTo /D (section*.31) >> +<< /S /GoTo /D (subsubsection.3.3.1) >> % 189 0 obj -(set ) +(3.3.1 Vector Methods) % 190 0 obj -<< /S /GoTo /D (section*.32) >> +<< /S /GoTo /D (subsubsection.3.3.2) >> % 193 0 obj -(get\137vect ) +(3.3.2 get\137nrows \204 Get number of rows in a dense vector) % 194 0 obj -<< /S /GoTo /D (section*.33) >> +<< /S /GoTo /D (subsubsection.3.3.3) >> % 197 0 obj -(clone) +(3.3.3 sizeof \204 Get memory occupation in bytes of a dense vector) % 198 0 obj -<< /S /GoTo /D (subsection.3.4) >> +<< /S /GoTo /D (subsubsection.3.3.4) >> % 201 0 obj -(3.4 Preconditioner data structure) +(3.3.4 set \204 Set contents of the vector) endstream endobj @@ -225,226 +225,226 @@ endobj << /Type /ObjStm /N 100 -/First 869 -/Length 4583 +/First 877 +/Length 6351 >> stream -202 0 206 47 207 85 210 127 211 166 214 210 215 239 218 283 219 310 222 354 -223 382 226 426 227 453 230 497 231 526 234 570 235 597 238 641 239 670 242 714 -243 741 246 785 247 814 250 858 251 885 254 929 255 956 258 1000 259 1026 262 1070 -263 1096 266 1138 267 1177 270 1221 271 1247 274 1291 275 1317 278 1361 279 1389 282 1433 -283 1462 286 1504 287 1545 290 1589 291 1616 294 1660 295 1687 298 1731 299 1758 302 1802 -303 1829 306 1873 307 1901 310 1945 311 1975 314 2019 315 2046 318 2090 319 2117 322 2161 -323 2188 326 2232 327 2260 330 2304 331 2330 334 2374 335 2401 338 2445 339 2472 342 2516 -343 2543 346 2587 347 2615 350 2659 351 2685 354 2729 355 2768 358 2812 359 2851 362 2895 -363 2929 366 2973 367 3010 370 3054 371 3088 374 3132 375 3169 378 3213 379 3250 382 3294 -383 3330 386 3374 387 3408 390 3452 391 3480 394 3524 395 3556 398 3598 399 3644 402 3688 +202 0 206 52 207 123 210 175 211 227 214 274 215 322 218 369 219 407 222 449 +223 488 226 535 227 598 230 645 231 693 234 740 235 801 238 848 239 908 242 955 +243 1019 246 1066 247 1119 250 1166 251 1233 254 1280 255 1333 258 1380 259 1447 262 1495 +263 1556 266 1604 267 1672 270 1720 271 1794 274 1842 275 1902 278 1950 279 2005 282 2053 +283 2109 286 2157 287 2214 290 2256 291 2295 294 2342 295 2401 298 2448 299 2498 302 2545 +303 2609 306 2656 307 2722 310 2764 311 2805 314 2852 315 2925 318 2972 319 3048 322 3095 +323 3173 326 3220 327 3290 330 3337 331 3407 334 3454 335 3536 338 3583 339 3645 342 3692 +343 3778 346 3825 347 3892 350 3940 351 4000 354 4048 355 4136 358 4184 359 4246 362 4294 +363 4362 366 4410 367 4471 370 4519 371 4578 374 4626 375 4707 378 4755 379 4839 382 4887 +383 4971 386 5019 387 5063 390 5111 391 5158 394 5206 395 5250 398 5298 399 5345 402 5393 % 202 0 obj -<< /S /GoTo /D (subsection.3.5) >> +<< /S /GoTo /D (subsubsection.3.3.5) >> % 206 0 obj -(3.5 Heap data structure) +(3.3.5 get\137vect \204 Get a copy of the vector contents) % 207 0 obj -<< /S /GoTo /D (section.4) >> +<< /S /GoTo /D (subsubsection.3.3.6) >> % 210 0 obj -(4 Computational routines) +(3.3.6 clone \204 Clone current object) % 211 0 obj -<< /S /GoTo /D (section*.34) >> +<< /S /GoTo /D (subsection.3.4) >> % 214 0 obj -(psb\137geaxpby) +(3.4 Preconditioner data structure) % 215 0 obj -<< /S /GoTo /D (section*.35) >> +<< /S /GoTo /D (subsection.3.5) >> % 218 0 obj -(psb\137gedot) +(3.5 Heap data structure) % 219 0 obj -<< /S /GoTo /D (section*.36) >> +<< /S /GoTo /D (section.4) >> % 222 0 obj -(psb\137gedots) +(4 Computational routines) % 223 0 obj -<< /S /GoTo /D (section*.37) >> +<< /S /GoTo /D (subsection.4.1) >> % 226 0 obj -(psb\137normi) +(4.1 psb\137geaxpby \204 General Dense Matrix Sum) % 227 0 obj -<< /S /GoTo /D (section*.38) >> +<< /S /GoTo /D (subsection.4.2) >> % 230 0 obj -(psb\137geamaxs) +(4.2 psb\137gedot \204 Dot Product) % 231 0 obj -<< /S /GoTo /D (section*.39) >> +<< /S /GoTo /D (subsection.4.3) >> % 234 0 obj -(psb\137norm1) +(4.3 psb\137gedots \204 Generalized Dot Product) % 235 0 obj -<< /S /GoTo /D (section*.40) >> +<< /S /GoTo /D (subsection.4.4) >> % 238 0 obj -(psb\137geasums) +(4.4 psb\137normi \204 Infinity-Norm of Vector) % 239 0 obj -<< /S /GoTo /D (section*.41) >> +<< /S /GoTo /D (subsection.4.5) >> % 242 0 obj -(psb\137norm2) +(4.5 psb\137geamaxs \204 Generalized Infinity Norm) % 243 0 obj -<< /S /GoTo /D (section*.42) >> +<< /S /GoTo /D (subsection.4.6) >> % 246 0 obj -(psb\137genrm2s) +(4.6 psb\137norm1 \204 1-Norm of Vector) % 247 0 obj -<< /S /GoTo /D (section*.43) >> +<< /S /GoTo /D (subsection.4.7) >> % 250 0 obj -(psb\137norm1) +(4.7 psb\137geasums \204 Generalized 1-Norm of Vector) % 251 0 obj -<< /S /GoTo /D (section*.44) >> +<< /S /GoTo /D (subsection.4.8) >> % 254 0 obj -(psb\137normi) +(4.8 psb\137norm2 \204 2-Norm of Vector) % 255 0 obj -<< /S /GoTo /D (section*.45) >> +<< /S /GoTo /D (subsection.4.9) >> % 258 0 obj -(psb\137spmm) +(4.9 psb\137genrm2s \204 Generalized 2-Norm of Vector) % 259 0 obj -<< /S /GoTo /D (section*.46) >> +<< /S /GoTo /D (subsection.4.10) >> % 262 0 obj -(psb\137spsm) +(4.10 psb\137norm1 \204 1-Norm of Sparse Matrix) % 263 0 obj -<< /S /GoTo /D (section.5) >> +<< /S /GoTo /D (subsection.4.11) >> % 266 0 obj -(5 Communication routines) +(4.11 psb\137normi \204 Infinity Norm of Sparse Matrix) % 267 0 obj -<< /S /GoTo /D (section*.47) >> +<< /S /GoTo /D (subsection.4.12) >> % 270 0 obj -(psb\137halo) +(4.12 psb\137spmm \204 Sparse Matrix by Dense Matrix Product) % 271 0 obj -<< /S /GoTo /D (section*.48) >> +<< /S /GoTo /D (subsection.4.13) >> % 274 0 obj -(psb\137ovrl) +(4.13 psb\137spsm \204 Triangular System Solve) % 275 0 obj -<< /S /GoTo /D (section*.49) >> +<< /S /GoTo /D (subsection.4.14) >> % 278 0 obj -(psb\137gather) +(4.14 psb\137gemlt \204 Entrywise Product) % 279 0 obj -<< /S /GoTo /D (section*.50) >> +<< /S /GoTo /D (subsection.4.15) >> % 282 0 obj -(psb\137scatter) +(4.15 psb\137gediv \204 Entrywise Division) % 283 0 obj -<< /S /GoTo /D (section.6) >> +<< /S /GoTo /D (subsection.4.16) >> % 286 0 obj -(6 Data management routines) +(4.16 psb\137geinv \204 Entrywise Inversion) % 287 0 obj -<< /S /GoTo /D (section*.51) >> +<< /S /GoTo /D (section.5) >> % 290 0 obj -(psb\137cdall) +(5 Communication routines) % 291 0 obj -<< /S /GoTo /D (section*.52) >> +<< /S /GoTo /D (subsection.5.1) >> % 294 0 obj -(psb\137cdins) +(5.1 psb\137halo \204 Halo Data Communication) % 295 0 obj -<< /S /GoTo /D (section*.53) >> +<< /S /GoTo /D (subsection.5.2) >> % 298 0 obj -(psb\137cdasb) +(5.2 psb\137ovrl \204 Overlap Update) % 299 0 obj -<< /S /GoTo /D (section*.54) >> +<< /S /GoTo /D (subsection.5.3) >> % 302 0 obj -(psb\137cdcpy) +(5.3 psb\137gather \204 Gather Global Dense Matrix) % 303 0 obj -<< /S /GoTo /D (section*.55) >> +<< /S /GoTo /D (subsection.5.4) >> % 306 0 obj -(psb\137cdfree) +(5.4 psb\137scatter \204 Scatter Global Dense Matrix) % 307 0 obj -<< /S /GoTo /D (section*.56) >> +<< /S /GoTo /D (section.6) >> % 310 0 obj -(psb\137cdbldext) +(6 Data management routines) % 311 0 obj -<< /S /GoTo /D (section*.57) >> +<< /S /GoTo /D (subsection.6.1) >> % 314 0 obj -(psb\137spall) +(6.1 psb\137cdall \204 Allocates a communication descriptor) % 315 0 obj -<< /S /GoTo /D (section*.58) >> +<< /S /GoTo /D (subsection.6.2) >> % 318 0 obj -(psb\137spins) +(6.2 psb\137cdins \204 Communication descriptor insert routine) % 319 0 obj -<< /S /GoTo /D (section*.59) >> +<< /S /GoTo /D (subsection.6.3) >> % 322 0 obj -(psb\137spasb) +(6.3 psb\137cdasb \204 Communication descriptor assembly routine) % 323 0 obj -<< /S /GoTo /D (section*.60) >> +<< /S /GoTo /D (subsection.6.4) >> % 326 0 obj -(psb\137spfree) +(6.4 psb\137cdcpy \204 Copies a communication descriptor) % 327 0 obj -<< /S /GoTo /D (section*.61) >> +<< /S /GoTo /D (subsection.6.5) >> % 330 0 obj -(psb\137sprn) +(6.5 psb\137cdfree \204 Frees a communication descriptor) % 331 0 obj -<< /S /GoTo /D (section*.62) >> +<< /S /GoTo /D (subsection.6.6) >> % 334 0 obj -(psb\137geall) +(6.6 psb\137cdbldext \204 Build an extended communication descriptor) % 335 0 obj -<< /S /GoTo /D (section*.63) >> +<< /S /GoTo /D (subsection.6.7) >> % 338 0 obj -(psb\137geins) +(6.7 psb\137spall \204 Allocates a sparse matrix) % 339 0 obj -<< /S /GoTo /D (section*.64) >> +<< /S /GoTo /D (subsection.6.8) >> % 342 0 obj -(psb\137geasb) +(6.8 psb\137spins \204 Insert a set of coefficients into a sparse matrix) % 343 0 obj -<< /S /GoTo /D (section*.65) >> +<< /S /GoTo /D (subsection.6.9) >> % 346 0 obj -(psb\137gefree) +(6.9 psb\137spasb \204 Sparse matrix assembly routine) % 347 0 obj -<< /S /GoTo /D (section*.66) >> +<< /S /GoTo /D (subsection.6.10) >> % 350 0 obj -(psb\137gelp) +(6.10 psb\137spfree \204 Frees a sparse matrix) % 351 0 obj -<< /S /GoTo /D (section*.67) >> +<< /S /GoTo /D (subsection.6.11) >> % 354 0 obj -(psb\137glob\137to\137loc) +(6.11 psb\137sprn \204 Reinit sparse matrix structure for psblas routines.) % 355 0 obj -<< /S /GoTo /D (section*.68) >> +<< /S /GoTo /D (subsection.6.12) >> % 358 0 obj -(psb\137loc\137to\137glob) +(6.12 psb\137geall \204 Allocates a dense matrix) % 359 0 obj -<< /S /GoTo /D (section*.69) >> +<< /S /GoTo /D (subsection.6.13) >> % 362 0 obj -(psb\137is\137owned ) +(6.13 psb\137geins \204 Dense matrix insertion routine) % 363 0 obj -<< /S /GoTo /D (section*.70) >> +<< /S /GoTo /D (subsection.6.14) >> % 366 0 obj -(psb\137owned\137index ) +(6.14 psb\137geasb \204 Assembly a dense matrix) % 367 0 obj -<< /S /GoTo /D (section*.71) >> +<< /S /GoTo /D (subsection.6.15) >> % 370 0 obj -(psb\137is\137local ) +(6.15 psb\137gefree \204 Frees a dense matrix) % 371 0 obj -<< /S /GoTo /D (section*.72) >> +<< /S /GoTo /D (subsection.6.16) >> % 374 0 obj -(psb\137local\137index ) +(6.16 psb\137gelp \204 Applies a left permutation to a dense matrix) % 375 0 obj -<< /S /GoTo /D (section*.73) >> +<< /S /GoTo /D (subsection.6.17) >> % 378 0 obj -(psb\137get\137boundary) +(6.17 psb\137glob\137to\137loc \204 Global to local indices convertion) % 379 0 obj -<< /S /GoTo /D (section*.74) >> +<< /S /GoTo /D (subsection.6.18) >> % 382 0 obj -(psb\137get\137overlap) +(6.18 psb\137loc\137to\137glob \204 Local to global indices conversion) % 383 0 obj -<< /S /GoTo /D (section*.75) >> +<< /S /GoTo /D (subsection.6.19) >> % 386 0 obj -(psb\137sp\137getrow) +(6.19 psb\137is\137owned \204 ) % 387 0 obj -<< /S /GoTo /D (section*.76) >> +<< /S /GoTo /D (subsection.6.20) >> % 390 0 obj -(psb\137sizeof) +(6.20 psb\137owned\137index \204 ) % 391 0 obj -<< /S /GoTo /D (section*.77) >> +<< /S /GoTo /D (subsection.6.21) >> % 394 0 obj -(Sorting utilities) +(6.21 psb\137is\137local \204 ) % 395 0 obj -<< /S /GoTo /D (section.7) >> +<< /S /GoTo /D (subsection.6.22) >> % 398 0 obj -(7 Parallel environment routines) +(6.22 psb\137local\137index \204 ) % 399 0 obj -<< /S /GoTo /D (section*.78) >> +<< /S /GoTo /D (subsection.6.23) >> % 402 0 obj -(psb\137init) +(6.23 psb\137get\137boundary \204 Extract list of boundary elements) endstream endobj -555 0 obj +579 0 obj << -/Length 585 +/Length 584 >> stream 0 g 0 G @@ -453,24 +453,24 @@ stream 0 g 0 G 0 g 0 G BT -/F16 24.7871 Tf 135.453 564.641 Td [(PSBLAS)-375(3.6.0)-375(User's)-375(guide)]TJ +/F16 24.7871 Tf 135.453 563.395 Td [(PSBLAS)-375(3.7.0)-375(User's)-375(guide)]TJ ET q -1 0 0 1 125.3 548.396 cm +1 0 0 1 125.3 547.151 cm 0 0 343.711 4.981 re f Q BT -/F18 14.3462 Tf 132.314 526.714 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 +/F18 14.3462 Tf 132.314 525.468 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 -133.983 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 41.655 -11.955 Td [(Dec)-333(1st,)-334(2018)]TJ +/F27 9.9626 Tf 223.567 -135.228 Td [(b)32(y)-383(Salv)63(atore)-383(Filipp)-32(one)]TJ 12.889 -11.955 Td [(and)-383(Alfredo)-384(Buttari)]TJ/F8 9.9626 Tf 40.88 -11.955 Td [(Jan)-333(7th,)-334(2020)]TJ 0 g 0 G 0 g 0 G ET endstream endobj -565 0 obj +589 0 obj << /Length 77 >> @@ -485,9 +485,9 @@ ET endstream endobj -616 0 obj +636 0 obj << -/Length 16983 +/Length 15926 >> stream 0 g 0 G @@ -495,586 +495,585 @@ 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.125 Td [(1)-925(In)32(tro)-32(duction)]TJ +/F27 9.9626 Tf 0 -22.144 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.126 Td [(2)-925(General)-383(o)32(v)31(erview)]TJ + 0 -22.145 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.08 Td [(2.1)-1022(Basic)-334(Nomenclature)]TJ +/F8 9.9626 Tf 14.944 -12.091 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.079 Td [(2.2)-1022(Library)-333(con)27(ten)28(ts)]TJ + 0 -12.091 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.08 Td [(2.3)-1022(Application)-333(structure)]TJ + 0 -12.091 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 0 g 0 G 0 0 1 rg 0 0 1 RG - 22.914 -12.08 Td [(2.3.1)-1144(Us)-1(er-de\014n)1(e)-1(d)-333(index)-333(mappings)]TJ + 22.914 -12.091 Td [(2.3.1)-1144(Us)-1(er-de\014n)1(e)-1(d)-333(index)-333(mappings)]TJ 0 g 0 G [-847(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)]TJ 0 g 0 G [-1584(8)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG - -22.914 -12.079 Td [(2.4)-1022(Programming)-334(mo)-27(del)]TJ + -22.914 -12.091 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 0 g 0 G 0 0 1 rg 0 0 1 RG -/F27 9.9626 Tf -14.944 -22.126 Td [(3)-925(Data)-383(Struct)-1(ure)1(s)-384(and)-383(Classes)]TJ +/F27 9.9626 Tf -14.944 -22.144 Td [(3)-925(Data)-383(Struct)-1(ure)1(s)-384(and)-383(Classes)]TJ 0 g 0 G [-18144(9)]TJ 0 0 1 rg 0 0 1 RG -/F8 9.9626 Tf 14.944 -12.079 Td [(3.1)-1022(Descriptor)-334(data)-333(structure)]TJ +/F8 9.9626 Tf 14.944 -12.091 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.08 Td [(3.1.1)-1144(Des)-1(crip)1(tor)-334(Metho)-28(ds)]TJ + 22.914 -12.091 Td [(3.1.1)-1144(Des)-1(crip)1(tor)-334(Metho)-28(ds)]TJ 0 g 0 G [-913(.)-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(12)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG - 31.881 -12.08 Td [(get)]TJ + 0 -12.091 Td [(3.1.2)-1144(ge)-1(t)]TJ ET q -1 0 0 1 183.515 543.314 cm +1 0 0 1 183.515 543.167 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 186.504 543.115 Td [(lo)-28(cal)]TJ +/F8 9.9626 Tf 186.504 542.968 Td [(lo)-28(cal)]TJ ET q -1 0 0 1 207.304 543.314 cm +1 0 0 1 207.304 543.167 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 210.293 543.115 Td [(ro)28(ws)]TJ +/F8 9.9626 Tf 210.293 542.968 Td [(ro)28(ws)-334(|)-333(Get)-333(n)28(um)27(b)-27(er)-334(of)-333(lo)-28(cal)-333(ro)28(ws)]TJ 0 g 0 G - [-411(.)-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 + [-893(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G [-1084(12)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG - -40.659 -12.08 Td [(get)]TJ + -72.54 -12.091 Td [(3.1.3)-1144(ge)-1(t)]TJ ET q -1 0 0 1 183.515 531.235 cm +1 0 0 1 183.515 531.076 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 186.504 531.035 Td [(lo)-28(cal)]TJ +/F8 9.9626 Tf 186.504 530.877 Td [(lo)-28(cal)]TJ ET q -1 0 0 1 207.304 531.235 cm +1 0 0 1 207.304 531.076 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 210.293 531.035 Td [(cols)]TJ +/F8 9.9626 Tf 210.293 530.877 Td [(cols)-333(|)-334(Get)-333(n)28(um)27(b)-27(er)-334(of)-333(lo)-28(cal)-333(cols)]TJ 0 g 0 G - [-774(.)-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 + [-842(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G - [-1083(12)]TJ + [-1084(12)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG - -40.659 -12.079 Td [(get)]TJ + -72.54 -12.091 Td [(3.1.4)-1144(ge)-1(t)]TJ ET q -1 0 0 1 183.515 519.155 cm +1 0 0 1 183.515 518.985 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 186.504 518.956 Td [(global)]TJ +/F8 9.9626 Tf 186.504 518.786 Td [(global)]TJ ET q -1 0 0 1 213.115 519.155 cm +1 0 0 1 213.115 518.985 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 216.104 518.956 Td [(ro)28(ws)]TJ +/F8 9.9626 Tf 216.104 518.786 Td [(ro)28(ws)-334(|)-333(Get)-333(n)27(u)1(m)27(b)-27(e)-1(r)-333(of)-333(global)-333(ro)27(ws)]TJ 0 g 0 G - [-605(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)]TJ + [-503(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G - [-1084(12)]TJ + [-1083(12)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG - -46.47 -12.08 Td [(get)]TJ + -78.351 -12.091 Td [(3.1.5)-1144(ge)-1(t)]TJ ET q -1 0 0 1 183.515 507.075 cm +1 0 0 1 183.515 506.894 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 186.504 506.876 Td [(global)]TJ +/F8 9.9626 Tf 186.504 506.695 Td [(global)]TJ ET q -1 0 0 1 213.115 507.075 cm +1 0 0 1 213.115 506.894 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 216.104 506.876 Td [(cols)]TJ +/F8 9.9626 Tf 216.104 506.695 Td [(cols)-333(|)-334(Get)-333(n)28(um)27(b)-27(er)-334(of)-333(global)-333(cols)]TJ 0 g 0 G - [-969(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ + [-453(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G [-1084(13)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG - -46.47 -12.08 Td [(get)]TJ + -78.351 -12.091 Td [(3.1.6)-1144(ge)-1(t)]TJ ET q -1 0 0 1 183.515 494.996 cm +1 0 0 1 183.515 494.803 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 186.504 494.796 Td [(global)]TJ +/F8 9.9626 Tf 186.504 494.604 Td [(global)]TJ ET q -1 0 0 1 213.115 494.996 cm +1 0 0 1 213.115 494.803 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 216.104 494.796 Td [(indices)]TJ +/F8 9.9626 Tf 216.104 494.604 Td [(indices)-333(|)-334(Get)-333(v)28(ector)-334(of)-333(global)-333(indices)]TJ 0 g 0 G - [-413(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)]TJ + [-759(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G [-1084(13)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG - -46.47 -12.079 Td [(get)]TJ + -78.351 -12.091 Td [(3.1.7)-1144(ge)-1(t)]TJ ET q -1 0 0 1 183.515 482.916 cm +1 0 0 1 183.515 482.712 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 186.504 482.717 Td [(con)28(text)]TJ +/F8 9.9626 Tf 186.504 482.513 Td [(con)28(text)-334(|)-333(Get)-333(comm)27(unication)-333(con)28(text)]TJ 0 g 0 G - [-779(.)-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 + [-966(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G [-1084(13)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG - -16.87 -12.08 Td [(Clone)]TJ + -48.751 -12.091 Td [(3.1.8)-1144(Clone)-334(|)-333(clone)-334(cur)1(ren)27(t)-333(ob)-56(j)1(e)-1(ct)]TJ +0 g 0 G + [-577(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ +0 g 0 G + [-1083(14)]TJ +0 g 0 G +0 0 1 rg 0 0 1 RG + 0 -12.091 Td [(3.1.9)-1144(CNV)-334(|)-333(con)28(v)27(ert)-333(in)28(ternal)-333(storage)-334(format)]TJ 0 g 0 G - [-861(.)-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 + [-649(.)-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 - 0 -12.08 Td [(CNV)]TJ + 0 -12.091 Td [(3.1.10)-644(psb)]TJ +ET +q +1 0 0 1 185.231 446.439 cm +[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +Q +BT +/F8 9.9626 Tf 188.22 446.24 Td [(cd)]TJ +ET +q +1 0 0 1 198.78 446.439 cm +[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +Q +BT +/F8 9.9626 Tf 201.769 446.24 Td [(get)]TJ +ET +q +1 0 0 1 215.65 446.439 cm +[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +Q +BT +/F8 9.9626 Tf 218.639 446.24 Td [(large)]TJ +ET +q +1 0 0 1 240.297 446.439 cm +[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +Q +BT +/F8 9.9626 Tf 243.286 446.24 Td [(threshold)-222(|)-222(Get)-223(threshold)-222(for)-222(index)-222(map-)]TJ -73.652 -11.955 Td [(ping)-333(switc)27(h)]TJ 0 g 0 G - [-361(.)-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 + [-716(.)-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(.)]TJ 0 g 0 G [-1084(14)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG - 0 -12.079 Td [(psb)]TJ + -31.88 -12.091 Td [(3.1.11)-644(psb)]TJ ET q -1 0 0 1 185.231 446.677 cm +1 0 0 1 185.231 422.393 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 188.22 446.478 Td [(cd)]TJ +/F8 9.9626 Tf 188.22 422.194 Td [(cd)]TJ ET q -1 0 0 1 198.78 446.677 cm +1 0 0 1 198.78 422.393 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 201.769 446.478 Td [(get)]TJ +/F8 9.9626 Tf 201.769 422.194 Td [(set)]TJ ET q -1 0 0 1 215.65 446.677 cm +1 0 0 1 214.599 422.393 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 218.639 446.478 Td [(large)]TJ +/F8 9.9626 Tf 217.588 422.194 Td [(large)]TJ ET q -1 0 0 1 240.297 446.677 cm +1 0 0 1 239.245 422.393 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 243.286 446.478 Td [(threshold)]TJ +/F8 9.9626 Tf 242.234 422.194 Td [(threshold)-228(|)-227(Set)-228(threshold)-227(for)-228(index)-227(map-)]TJ -72.6 -11.956 Td [(ping)-333(switc)27(h)]TJ 0 g 0 G - [-460(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ + [-716(.)-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(.)]TJ 0 g 0 G [-1084(14)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG - -73.652 -12.08 Td [(psb)]TJ + -31.881 -12.091 Td [(3.1.12)-644(ge)-1(t)]TJ ET q -1 0 0 1 185.231 434.597 cm +1 0 0 1 183.515 398.347 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 188.22 434.398 Td [(cd)]TJ +/F8 9.9626 Tf 186.504 398.147 Td [(p)]TJ ET q -1 0 0 1 198.78 434.597 cm +1 0 0 1 192.637 398.347 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 201.769 434.398 Td [(set)]TJ +/F8 9.9626 Tf 195.625 398.147 Td [(adjcncy)-333(|)-334(Get)-333(pro)-28(cess)-333(adjacency)-334(list)]TJ +0 g 0 G + [-697(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ +0 g 0 G + [-1084(15)]TJ +0 g 0 G +0 0 1 rg 0 0 1 RG + -57.872 -12.091 Td [(3.1.13)-644(s)-1(et)]TJ ET q -1 0 0 1 214.599 434.597 cm +1 0 0 1 182.464 386.256 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 217.588 434.398 Td [(large)]TJ +/F8 9.9626 Tf 185.452 386.056 Td [(p)]TJ ET q -1 0 0 1 239.245 434.597 cm +1 0 0 1 191.585 386.256 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 242.234 434.398 Td [(threshold)]TJ +/F8 9.9626 Tf 194.574 386.056 Td [(adjcncy)-333(|)-334(Set)-333(pro)-28(cess)-333(adjacency)-333(list)]TJ 0 g 0 G - [-565(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ + [-255(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G - [-1083(14)]TJ + [-1084(15)]TJ +0 g 0 G +0 0 1 rg 0 0 1 RG + -56.821 -12.091 Td [(3.1.14)-644(fnd)]TJ +ET +q +1 0 0 1 184.345 374.165 cm +[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +Q +BT +/F8 9.9626 Tf 187.334 373.965 Td [(o)28(wner)-334(|)-333(Find)-333(the)-333(o)27(wner)-333(pro)-28(cess)-333(of)-334(a)-333(set)-333(of)-334(ind)1(ic)-1(es)]TJ +0 g 0 G + [-984(.)]TJ +0 g 0 G + [-1083(15)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG - -104.481 -12.08 Td [(3.1.2)-1144(Nam)-1(ed)-333(Constan)28(ts)]TJ + -49.581 -12.091 Td [(3.1.15)-644(Nam)-1(ed)-333(Constan)28(ts)]TJ 0 g 0 G [-1017(.)-499(.)-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(15)]TJ + [-1084(16)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG - -22.914 -12.08 Td [(3.2)-1022(Sparse)-334(Matri)1(x)-334(class)]TJ + -22.914 -12.091 Td [(3.2)-1022(Sparse)-334(Matri)1(x)-334(class)]TJ 0 g 0 G [-372(.)-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(15)]TJ + [-1084(16)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG - 22.914 -12.079 Td [(3.2.1)-1144(Sparse)-334(Matrix)-333(Metho)-28(ds)]TJ + 22.914 -12.091 Td [(3.2.1)-1144(Sparse)-334(Matrix)-333(Metho)-28(ds)]TJ 0 g 0 G [-844(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G - [-1084(16)]TJ + [-1084(17)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG - 31.881 -12.08 Td [(get)]TJ + 0 -12.091 Td [(3.2.2)-1144(ge)-1(t)]TJ ET q -1 0 0 1 183.515 386.278 cm +1 0 0 1 183.515 325.801 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 186.504 386.079 Td [(nro)28(ws)]TJ +/F8 9.9626 Tf 186.504 325.601 Td [(nro)28(ws)-334(|)-333(Get)-333(n)28(um)27(b)-27(er)-334(of)-333(ro)28(ws)-334(in)-333(a)-333(sparse)-334(matrix)]TJ 0 g 0 G - [-687(.)-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 + [-707(.)-500(.)-500(.)]TJ 0 g 0 G - [-1084(16)]TJ + [-1084(17)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG - -16.87 -12.08 Td [(get)]TJ + -48.751 -12.091 Td [(3.2.3)-1144(ge)-1(t)]TJ ET q -1 0 0 1 183.515 374.199 cm +1 0 0 1 183.515 313.71 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 186.504 373.999 Td [(ncols)]TJ +/F8 9.9626 Tf 186.504 313.51 Td [(ncols)-333(|)-334(Get)-333(n)28(um)27(b)-27(er)-334(of)-333(columns)-333(in)-334(a)-333(sparse)-333(matrix)]TJ 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(.)]TJ + [-269(.)-500(.)]TJ 0 g 0 G - [-1084(16)]TJ + [-1084(17)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG - -16.87 -12.079 Td [(get)]TJ + -48.751 -12.091 Td [(3.2.4)-1144(ge)-1(t)]TJ ET q -1 0 0 1 183.515 362.119 cm +1 0 0 1 183.515 301.619 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 186.504 361.92 Td [(nnzeros)]TJ +/F8 9.9626 Tf 186.504 301.419 Td [(nnzeros)-231(|)-231(Get)-231(n)28(um)28(b)-28(er)-231(of)-230(nonzero)-231(elemen)27(t)1(s)-231(in)-231(a)-231(sparse)]TJ -16.87 -11.955 Td [(matrix)]TJ 0 g 0 G - [-715(.)-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 + [-441(.)-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 - [-1084(17)]TJ + [-1083(18)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG - -16.87 -12.08 Td [(get)]TJ + -31.881 -12.091 Td [(3.2.5)-1144(ge)-1(t)]TJ ET q -1 0 0 1 183.515 350.039 cm +1 0 0 1 183.515 277.572 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 186.504 349.84 Td [(size)]TJ +/F8 9.9626 Tf 186.504 277.373 Td [(size)-331(|)-332(Get)-331(maxim)28(um)-331(n)28(um)27(b)-27(er)-332(of)-331(nonzero)-331(elemen)28(ts)-332(in)]TJ -16.87 -11.955 Td [(a)-333(sparse)-334(matrix)]TJ 0 g 0 G - [-884(.)-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 + [-483(.)-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 - [-1083(17)]TJ + [-1084(18)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG - -16.87 -12.08 Td [(sizeof)]TJ + -31.881 -12.091 Td [(3.2.6)-1144(s)-1(i)1(z)-1(eof)-266(|)-266(Get)-266(memory)-267(o)-27(cc)-1(u)1(pation)-267(in)-266(b)28(ytes)-266(of)-267(a)-266(sparse)-266(matrix)]TJ 0 g 0 G - [-994(.)-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(18)]TJ + [-550(19)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG - 0 -12.079 Td [(get)]TJ + 0 -12.091 Td [(3.2.7)-1144(ge)-1(t)]TJ ET q -1 0 0 1 183.515 325.88 cm +1 0 0 1 183.515 241.435 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 186.504 325.681 Td [(fm)28(t)]TJ +/F8 9.9626 Tf 186.504 241.236 Td [(fm)28(t)-334(|)-333(Short)-333(description)-333(of)-334(the)-333(dynamic)-333(t)27(yp)-27(e)]TJ 0 g 0 G - [-946(.)-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(.)]TJ + [-518(.)-500(.)-500(.)-499(.)-500(.)]TJ 0 g 0 G - [-1084(18)]TJ + [-1084(19)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG - -16.87 -12.08 Td [(is)]TJ + -48.751 -12.091 Td [(3.2.8)-1144(is)]TJ ET q -1 0 0 1 176.929 313.8 cm +1 0 0 1 176.929 229.344 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 179.918 313.601 Td [(bld,)-333(is)]TJ +/F8 9.9626 Tf 179.918 229.145 Td [(bld,)-333(is)]TJ ET q -1 0 0 1 207.138 313.8 cm +1 0 0 1 207.138 229.344 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 210.127 313.601 Td [(up)-28(d,)-333(is)]TJ +/F8 9.9626 Tf 210.127 229.145 Td [(up)-28(d,)-333(is)]TJ ET q -1 0 0 1 240.391 313.8 cm +1 0 0 1 240.391 229.344 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 243.38 313.601 Td [(asb)]TJ +/F8 9.9626 Tf 243.38 229.145 Td [(asb)-333(|)-334(Status)-333(c)28(hec)28(k)]TJ 0 g 0 G - [-731(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ + [-587(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)]TJ 0 g 0 G - [-1084(18)]TJ + [-1084(19)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG - -73.746 -12.08 Td [(is)]TJ + -105.626 -12.091 Td [(3.2.9)-1144(is)]TJ ET q -1 0 0 1 176.929 301.72 cm +1 0 0 1 176.929 217.253 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 179.918 301.521 Td [(lo)28(w)28(er,)-334(is)]TJ +/F8 9.9626 Tf 179.918 217.054 Td [(lo)28(w)28(er,)-334(is)]TJ ET q -1 0 0 1 216.021 301.72 cm +1 0 0 1 216.021 217.253 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 219.01 301.521 Td [(upp)-28(er,)-333(is)]TJ +/F8 9.9626 Tf 219.01 217.054 Td [(upp)-28(er,)-333(is)]TJ ET q -1 0 0 1 257.604 301.72 cm +1 0 0 1 257.604 217.253 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 260.593 301.521 Td [(triangle,)-333(is)]TJ +/F8 9.9626 Tf 260.593 217.054 Td [(triangle,)-333(is)]TJ ET q -1 0 0 1 307.213 301.72 cm +1 0 0 1 307.213 217.253 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 310.202 301.521 Td [(unit)]TJ +/F8 9.9626 Tf 310.201 217.054 Td [(unit)-333(|)-334(F)84(ormat)-334(c)28(hec)28(k)]TJ 0 g 0 G - [-696(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ + [-929(.)-500(.)]TJ 0 g 0 G - [-1084(19)]TJ + [-1084(20)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG - -140.568 -12.08 Td [(cscn)28(v)]TJ + -172.448 -12.091 Td [(3.2.10)-644(c)-1(scn)28(v)-333(|)-333(Con)27(v)28(ert)-333(to)-334(a)-333(di\013eren)28(t)-333(storage)-334(format)]TJ 0 g 0 G - [-1022(.)-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 + [-283(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)]TJ 0 g 0 G - [-1084(19)]TJ + [-1084(20)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG - 0 -12.079 Td [(csclip)]TJ + 0 -12.091 Td [(3.2.11)-644(c)-1(sclip)-333(|)-333(Reduce)-334(to)-333(a)-333(submatrix)]TJ 0 g 0 G - [-967(.)-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 + [-972(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G - [-1083(20)]TJ + [-1083(21)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG - 0 -12.08 Td [(clean)]TJ + 0 -12.091 Td [(3.2.12)-644(c)-1(l)1(e)-1(an)]TJ ET q -1 0 0 1 192.371 265.481 cm +1 0 0 1 192.371 180.98 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 195.36 265.282 Td [(zeros)]TJ +/F8 9.9626 Tf 195.36 180.781 Td [(zeros)-333(|)-334(Eliminate)-333(zero)-333(co)-28(e\016cien)27(ts)]TJ 0 g 0 G - [-937(.)-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 + [-303(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G - [-1084(20)]TJ + [-1084(21)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG - -25.726 -12.08 Td [(get)]TJ + -57.607 -12.091 Td [(3.2.13)-644(ge)-1(t)]TJ ET q -1 0 0 1 183.515 253.402 cm +1 0 0 1 183.515 168.889 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 186.504 253.202 Td [(diag)]TJ +/F8 9.9626 Tf 186.504 168.69 Td [(diag)-333(|)-334(Get)-333(main)-333(diagonal)]TJ 0 g 0 G - [-612(.)-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 + [-938(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G - [-1084(21)]TJ + [-1084(22)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG - -16.87 -12.079 Td [(clip)]TJ + -48.751 -12.091 Td [(3.2.14)-644(c)-1(l)1(ip)]TJ ET q -1 0 0 1 185.729 241.322 cm +1 0 0 1 185.729 156.798 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 188.718 241.123 Td [(diag)]TJ +/F8 9.9626 Tf 188.718 156.599 Td [(diag)-333(|)-334(Cut)-333(out)-333(main)-334(d)1(iagonal)]TJ 0 g 0 G - [-390(.)-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 + [-446(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G - [-1084(21)]TJ + [-1084(22)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG - -19.084 -12.08 Td [(tril)]TJ + -50.965 -12.091 Td [(3.2.15)-644(tril)-334(|)-333(Return)-333(the)-334(lo)28(w)28(er)-333(triangle)]TJ 0 g 0 G - [-469(.)-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 + [-947(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G - [-1084(21)]TJ + [-1084(22)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG - 0 -12.08 Td [(triu)]TJ + 0 -12.091 Td [(3.2.16)-644(triu)-334(|)-333(Return)-333(the)-334(upp)-27(er)-334(triangle)]TJ 0 g 0 G - [-969(.)-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 + [-419(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G - [-1084(22)]TJ + [-1084(23)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG - 0 -12.079 Td [(psb)]TJ -ET -q -1 0 0 1 185.231 205.083 cm -[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S -Q -BT -/F8 9.9626 Tf 188.22 204.884 Td [(set)]TJ + 0 -12.091 Td [(3.2.17)-644(psb)]TJ ET q -1 0 0 1 201.05 205.083 cm +1 0 0 1 185.231 120.525 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 204.038 204.884 Td [(mat)]TJ +/F8 9.9626 Tf 188.22 120.326 Td [(set)]TJ ET q -1 0 0 1 221.794 205.083 cm +1 0 0 1 201.05 120.525 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 224.783 204.884 Td [(default)]TJ -0 g 0 G - [-1020(.)-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(23)]TJ -0 g 0 G -0 0 1 rg 0 0 1 RG - -55.149 -12.08 Td [(clone)]TJ -0 g 0 G - [-361(.)-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 - [-1084(23)]TJ -0 g 0 G -0 0 1 rg 0 0 1 RG - -31.88 -12.08 Td [(3.2.2)-1144(Named)-334(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(23)]TJ -0 g 0 G -0 0 1 rg 0 0 1 RG - -22.915 -12.08 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(23)]TJ -0 g 0 G -0 0 1 rg 0 0 1 RG - 22.915 -12.079 Td [(3.3.1)-1144(V)83(ector)-333(Metho)-28(ds)]TJ -0 g 0 G - [-297(.)-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(24)]TJ -0 g 0 G -0 0 1 rg 0 0 1 RG - 31.88 -12.08 Td [(get)]TJ +/F8 9.9626 Tf 204.038 120.326 Td [(mat)]TJ ET q -1 0 0 1 183.515 144.684 cm +1 0 0 1 221.794 120.525 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 186.504 144.485 Td [(nro)28(ws)]TJ -0 g 0 G - [-687(.)-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(24)]TJ -0 g 0 G -0 0 1 rg 0 0 1 RG - -16.87 -12.08 Td [(sizeof)]TJ +/F8 9.9626 Tf 224.783 120.326 Td [(default)-333(|)-334(Set)-333(default)-333(storage)-334(f)1(ormat)]TJ 0 g 0 G - [-994(.)-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 + [-342(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G [-1084(24)]TJ 0 g 0 G -0 0 1 rg 0 0 1 RG - 0 -12.079 Td [(set)]TJ -0 g 0 G - [-1355(.)-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(25)]TJ -0 g 0 G 0 g 0 G - 100.733 -29.888 Td [(i)]TJ + 45.584 -29.888 Td [(i)]TJ 0 g 0 G ET @@ -1084,2446 +1083,2484 @@ endobj << /Type /ObjStm /N 100 -/First 865 -/Length 7127 +/First 877 +/Length 7538 >> stream -403 0 407 44 408 70 411 114 412 140 415 184 416 220 419 264 420 297 423 341 -424 368 427 412 428 441 431 485 432 512 435 556 436 583 439 627 440 652 443 696 -444 721 447 765 448 790 451 834 452 859 455 903 456 928 459 972 460 998 463 1042 -464 1067 467 1111 468 1136 471 1178 472 1209 475 1253 476 1282 479 1326 480 1353 483 1397 -484 1438 487 1482 488 1520 491 1562 492 1588 495 1632 496 1657 499 1702 500 1728 503 1773 -504 1805 507 1850 508 1884 511 1929 512 1962 515 2007 516 2042 519 2085 520 2126 523 2171 -524 2198 527 2243 528 2271 531 2316 532 2344 535 2389 536 2417 539 2462 540 2482 543 2527 -544 2554 547 2597 548 2632 551 2677 552 2705 553 2750 556 2864 557 2920 3 2976 554 3030 -564 3135 566 3249 563 3306 615 3372 567 3866 568 4012 569 4158 570 4310 571 4462 572 4614 -573 4771 574 4923 575 5069 576 5221 577 5377 578 5524 579 5671 580 5819 581 5967 582 6114 +403 0 407 48 408 127 411 175 412 257 415 305 416 361 419 409 420 452 423 494 +424 540 427 587 428 662 431 709 432 797 435 844 436 917 439 964 440 1038 443 1085 +444 1151 447 1198 448 1252 451 1299 452 1380 455 1427 456 1483 459 1530 460 1581 463 1629 +464 1675 467 1723 468 1773 471 1821 472 1871 475 1919 476 1984 479 2032 480 2097 483 2145 +484 2205 487 2253 488 2298 491 2346 492 2394 495 2436 496 2467 499 2514 500 2594 503 2641 +504 2729 507 2776 508 2863 511 2910 512 3013 515 3055 516 3081 519 3128 520 3231 523 3278 +524 3377 527 3424 528 3525 531 3572 532 3673 535 3720 536 3821 539 3868 540 3971 543 4014 +544 4055 547 4103 548 4160 551 4208 552 4262 555 4310 556 4375 559 4423 560 4500 563 4548 +564 4607 567 4655 568 4706 571 4749 572 4784 575 4832 576 4904 577 4949 580 5063 581 5119 +3 5175 578 5229 588 5334 590 5448 587 5505 635 5571 591 6065 592 6211 593 6357 594 6509 % 403 0 obj -<< /S /GoTo /D (section*.79) >> +<< /S /GoTo /D (subsection.6.24) >> % 407 0 obj -(psb\137info) +(6.24 psb\137get\137overlap \204 Extract list of overlap elements) % 408 0 obj -<< /S /GoTo /D (section*.80) >> +<< /S /GoTo /D (subsection.6.25) >> % 411 0 obj -(psb\137exit) +(6.25 psb\137sp\137getrow \204 Extract row\(s\) from a sparse matrix) % 412 0 obj -<< /S /GoTo /D (section*.81) >> +<< /S /GoTo /D (subsection.6.26) >> % 415 0 obj -(psb\137get\137mpicomm) +(6.26 psb\137sizeof \204 Memory occupation) % 416 0 obj -<< /S /GoTo /D (section*.82) >> +<< /S /GoTo /D (subsection.6.27) >> % 419 0 obj -(psb\137get\137rank) +(6.27 Sorting utilities \204 ) % 420 0 obj -<< /S /GoTo /D (section*.83) >> +<< /S /GoTo /D (section.7) >> % 423 0 obj -(psb\137wtime) +(7 Parallel environment routines) % 424 0 obj -<< /S /GoTo /D (section*.84) >> +<< /S /GoTo /D (subsection.7.1) >> % 427 0 obj -(psb\137barrier) +(7.1 psb\137init \204 Initializes PSBLAS parallel environment) % 428 0 obj -<< /S /GoTo /D (section*.85) >> +<< /S /GoTo /D (subsection.7.2) >> % 431 0 obj -(psb\137abort) +(7.2 psb\137info \204 Return information about PSBLAS parallel environment) % 432 0 obj -<< /S /GoTo /D (section*.86) >> +<< /S /GoTo /D (subsection.7.3) >> % 435 0 obj -(psb\137bcast) +(7.3 psb\137exit \204 Exit from PSBLAS parallel environment) % 436 0 obj -<< /S /GoTo /D (section*.87) >> +<< /S /GoTo /D (subsection.7.4) >> % 439 0 obj -(psb\137sum) +(7.4 psb\137get\137mpi\137comm \204 Get the MPI communicator) % 440 0 obj -<< /S /GoTo /D (section*.88) >> +<< /S /GoTo /D (subsection.7.5) >> % 443 0 obj -(psb\137max) +(7.5 psb\137get\137mpi\137rank \204 Get the MPI rank) % 444 0 obj -<< /S /GoTo /D (section*.89) >> +<< /S /GoTo /D (subsection.7.6) >> % 447 0 obj -(psb\137min) +(7.6 psb\137wtime \204 Wall clock timing) % 448 0 obj -<< /S /GoTo /D (section*.90) >> +<< /S /GoTo /D (subsection.7.7) >> % 451 0 obj -(psb\137amx) +(7.7 psb\137barrier \204 Sinchronization point parallel environment) % 452 0 obj -<< /S /GoTo /D (section*.91) >> +<< /S /GoTo /D (subsection.7.8) >> % 455 0 obj -(psb\137amn) +(7.8 psb\137abort \204 Abort a computation) % 456 0 obj -<< /S /GoTo /D (section*.92) >> +<< /S /GoTo /D (subsection.7.9) >> % 459 0 obj -(psb\137nrm2) +(7.9 psb\137bcast \204 Broadcast data) % 460 0 obj -<< /S /GoTo /D (section*.93) >> +<< /S /GoTo /D (subsection.7.10) >> % 463 0 obj -(psb\137snd) +(7.10 psb\137sum \204 Global sum) % 464 0 obj -<< /S /GoTo /D (section*.94) >> +<< /S /GoTo /D (subsection.7.11) >> % 467 0 obj -(psb\137rcv) +(7.11 psb\137max \204 Global maximum) % 468 0 obj -<< /S /GoTo /D (section.8) >> +<< /S /GoTo /D (subsection.7.12) >> % 471 0 obj -(8 Error handling) +(7.12 psb\137min \204 Global minimum) % 472 0 obj -<< /S /GoTo /D (section*.95) >> +<< /S /GoTo /D (subsection.7.13) >> % 475 0 obj -(psb\137errpush) +(7.13 psb\137amx \204 Global maximum absolute value) % 476 0 obj -<< /S /GoTo /D (section*.96) >> +<< /S /GoTo /D (subsection.7.14) >> % 479 0 obj -(psb\137error) +(7.14 psb\137amn \204 Global minimum absolute value) % 480 0 obj -<< /S /GoTo /D (section*.97) >> +<< /S /GoTo /D (subsection.7.15) >> % 483 0 obj -(psb\137set\137errverbosity) +(7.15 psb\137nrm2 \204 Global 2-norm reduction) % 484 0 obj -<< /S /GoTo /D (section*.98) >> +<< /S /GoTo /D (subsection.7.16) >> % 487 0 obj -(psb\137set\137erraction) +(7.16 psb\137snd \204 Send data) % 488 0 obj -<< /S /GoTo /D (section.9) >> +<< /S /GoTo /D (subsection.7.17) >> % 491 0 obj -(9 Utilities) +(7.17 psb\137rcv \204 Receive data) % 492 0 obj -<< /S /GoTo /D (section*.99) >> +<< /S /GoTo /D (section.8) >> % 495 0 obj -(hb\137read) +(8 Error handling) % 496 0 obj -<< /S /GoTo /D (section*.100) >> +<< /S /GoTo /D (subsection.8.1) >> % 499 0 obj -(hb\137write) +(8.1 psb\137errpush \204 Pushes an error code onto the error stack) % 500 0 obj -<< /S /GoTo /D (section*.101) >> +<< /S /GoTo /D (subsection.8.2) >> % 503 0 obj -(mm\137mat\137read) +(8.2 psb\137error \204 Prints the error stack content and aborts execution) % 504 0 obj -<< /S /GoTo /D (section*.102) >> +<< /S /GoTo /D (subsection.8.3) >> % 507 0 obj -(mm\137array\137read) +(8.3 psb\137set\137errverbosity \204 Sets the verbosity of error messages) % 508 0 obj -<< /S /GoTo /D (section*.103) >> +<< /S /GoTo /D (subsection.8.4) >> % 511 0 obj -(mm\137mat\137write) +(8.4 psb\137set\137erraction \204 Set the type of action to be taken upon error condition) % 512 0 obj -<< /S /GoTo /D (section*.104) >> +<< /S /GoTo /D (section.9) >> % 515 0 obj -(mm\137array\137write) +(9 Utilities) % 516 0 obj -<< /S /GoTo /D (section.10) >> +<< /S /GoTo /D (subsection.9.1) >> % 519 0 obj -(10 Preconditioner routines) +(9.1 \040hb\137read \204 Read a sparse matrix from a file in the Harwell\205Boeing format) % 520 0 obj -<< /S /GoTo /D (section*.105) >> +<< /S /GoTo /D (subsection.9.2) >> % 523 0 obj -(prec\045init) +(9.2 hb\137write \204 Write a sparse matrix to a file in the Harwell\205Boeing format) % 524 0 obj -<< /S /GoTo /D (section*.106) >> +<< /S /GoTo /D (subsection.9.3) >> % 527 0 obj -(prec\045build) +(9.3 mm\137mat\137read \204 Read a sparse matrix from a file in the MatrixMarket format) % 528 0 obj -<< /S /GoTo /D (section*.107) >> +<< /S /GoTo /D (subsection.9.4) >> % 531 0 obj -(prec\045apply) +(9.4 mm\137array\137read \204 Read a dense array from a file in the MatrixMarket format) % 532 0 obj -<< /S /GoTo /D (section*.108) >> +<< /S /GoTo /D (subsection.9.5) >> % 535 0 obj -(prec\045descr) +(9.5 mm\137mat\137write \204 Write a sparse matrix to a file in the MatrixMarket format) % 536 0 obj -<< /S /GoTo /D (section*.109) >> +<< /S /GoTo /D (subsection.9.6) >> % 539 0 obj -(clone) +(9.6 mm\137array\137write \204 Write a dense array from a file in the MatrixMarket format) % 540 0 obj -<< /S /GoTo /D (section*.110) >> +<< /S /GoTo /D (section.10) >> % 543 0 obj -(prec\045free) +(10 Preconditioner routines) % 544 0 obj -<< /S /GoTo /D (section.11) >> +<< /S /GoTo /D (subsection.10.1) >> % 547 0 obj -(11 Iterative Methods) +(10.1 init \204 Initialize a preconditioner) % 548 0 obj -<< /S /GoTo /D (section*.111) >> +<< /S /GoTo /D (subsection.10.2) >> % 551 0 obj -(psb\137krylov) +(10.2 build \204 Builds a preconditioner) % 552 0 obj -<< /S /GoTo /D [553 0 R /Fit] >> -% 553 0 obj +<< /S /GoTo /D (subsection.10.3) >> +% 555 0 obj +(10.3 apply \204 Preconditioner application routine) +% 556 0 obj +<< /S /GoTo /D (subsection.10.4) >> +% 559 0 obj +(10.4 descr \204 Prints a description of current preconditioner) +% 560 0 obj +<< /S /GoTo /D (subsection.10.5) >> +% 563 0 obj +(10.5 clone \204 clone current preconditioner) +% 564 0 obj +<< /S /GoTo /D (subsection.10.6) >> +% 567 0 obj +(10.6 free \204 Free a preconditioner) +% 568 0 obj +<< /S /GoTo /D (section.11) >> +% 571 0 obj +(11 Iterative Methods) +% 572 0 obj +<< /S /GoTo /D (subsection.11.1) >> +% 575 0 obj +(11.1 psb\137krylov \040\204 Krylov Methods Driver Routine) +% 576 0 obj +<< /S /GoTo /D [577 0 R /Fit] >> +% 577 0 obj << /Type /Page -/Contents 555 0 R -/Resources 554 0 R +/Contents 579 0 R +/Resources 578 0 R /MediaBox [0 0 595.276 841.89] -/Parent 562 0 R +/Parent 586 0 R >> -% 556 0 obj +% 580 0 obj << -/D [553 0 R /XYZ 98.895 753.953 null] +/D [577 0 R /XYZ 98.895 753.953 null] >> -% 557 0 obj +% 581 0 obj << -/D [553 0 R /XYZ 99.895 716.092 null] +/D [577 0 R /XYZ 99.895 716.092 null] >> % 3 0 obj << -/D [553 0 R /XYZ 99.895 716.092 null] +/D [577 0 R /XYZ 99.895 716.092 null] >> -% 554 0 obj +% 578 0 obj << -/Font << /F16 558 0 R /F18 559 0 R /F27 560 0 R /F8 561 0 R >> +/Font << /F16 582 0 R /F18 583 0 R /F27 584 0 R /F8 585 0 R >> /ProcSet [ /PDF /Text ] >> -% 564 0 obj +% 588 0 obj << /Type /Page -/Contents 565 0 R -/Resources 563 0 R +/Contents 589 0 R +/Resources 587 0 R /MediaBox [0 0 595.276 841.89] -/Parent 562 0 R +/Parent 586 0 R >> -% 566 0 obj +% 590 0 obj << -/D [564 0 R /XYZ 149.705 753.953 null] +/D [588 0 R /XYZ 149.705 753.953 null] >> -% 563 0 obj +% 587 0 obj << -/Font << /F8 561 0 R >> +/Font << /F8 585 0 R >> /ProcSet [ /PDF /Text ] >> -% 615 0 obj +% 635 0 obj << /Type /Page -/Contents 616 0 R -/Resources 614 0 R +/Contents 636 0 R +/Resources 634 0 R /MediaBox [0 0 595.276 841.89] -/Parent 562 0 R -/Annots [ 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 576 0 R 577 0 R 578 0 R 579 0 R 580 0 R 581 0 R 582 0 R 583 0 R 584 0 R 585 0 R 586 0 R 587 0 R 588 0 R 589 0 R 590 0 R 591 0 R 592 0 R 593 0 R 594 0 R 595 0 R 596 0 R 597 0 R 598 0 R 599 0 R 600 0 R 601 0 R 602 0 R 603 0 R 604 0 R 605 0 R 606 0 R 607 0 R 608 0 R 609 0 R 610 0 R 611 0 R 612 0 R ] +/Parent 586 0 R +/Annots [ 591 0 R 592 0 R 593 0 R 594 0 R 595 0 R 596 0 R 597 0 R 598 0 R 599 0 R 600 0 R 601 0 R 602 0 R 603 0 R 604 0 R 605 0 R 606 0 R 607 0 R 608 0 R 609 0 R 639 0 R 610 0 R 640 0 R 611 0 R 612 0 R 613 0 R 614 0 R 615 0 R 616 0 R 617 0 R 618 0 R 619 0 R 641 0 R 620 0 R 642 0 R 621 0 R 622 0 R 623 0 R 624 0 R 625 0 R 626 0 R 627 0 R 628 0 R 629 0 R 630 0 R 631 0 R 632 0 R ] >> -% 567 0 obj +% 591 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [98.899 683.007 179.001 691.918] +/Rect [98.899 682.988 179.001 691.899] /A << /S /GoTo /D (section.1) >> >> -% 568 0 obj +% 592 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [98.899 660.882 202.863 669.793] +/Rect [98.899 660.844 202.863 669.755] /A << /S /GoTo /D (section.2) >> >> -% 569 0 obj +% 593 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [113.843 648.802 225.868 657.713] +/Rect [113.843 648.753 225.868 657.664] /A << /S /GoTo /D (subsection.2.1) >> >> -% 570 0 obj +% 594 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [113.843 634.785 210.675 645.633] +/Rect [113.843 634.725 210.675 645.573] /A << /S /GoTo /D (subsection.2.2) >> >> -% 571 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [113.843 622.706 232.122 633.554] -/A << /S /GoTo /D (subsection.2.3) >> ->> -% 572 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [136.757 610.626 296.409 621.474] -/A << /S /GoTo /D (subsubsection.2.3.1) >> ->> -% 573 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [113.843 598.546 227.777 609.394] -/A << /S /GoTo /D (subsection.2.4) >> ->> -% 574 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [98.899 578.358 258.112 587.269] -/A << /S /GoTo /D (section.3) >> ->> -% 575 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [113.843 564.341 249.529 575.189] -/A << /S /GoTo /D (subsection.3.1) >> ->> -% 576 0 obj + +endstream +endobj +693 0 obj << -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [136.757 552.261 257.001 563.11] -/A << /S /GoTo /D (subsubsection.3.1.1) >> ->> -% 577 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [168.638 540.182 231.021 551.03] -/A << /S /GoTo /D (section*.2) >> ->> -% 578 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [168.638 528.102 227.395 538.95] -/A << /S /GoTo /D (section*.3) >> ->> -% 579 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [168.638 516.022 236.832 526.871] -/A << /S /GoTo /D (section*.4) >> ->> -% 580 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [168.638 503.943 233.207 514.791] -/A << /S /GoTo /D (section*.5) >> ->> -% 581 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [168.638 491.863 246.49 502.711] -/A << /S /GoTo /D (section*.6) >> ->> -% 582 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [168.638 479.783 219.602 490.133] -/A << /S /GoTo /D (section*.7) >> ->> - -endstream -endobj -669 0 obj -<< -/Length 20672 +/Length 15806 >> stream 0 g 0 G 0 g 0 G 0 0 1 rg 0 0 1 RG BT -/F8 9.9626 Tf 220.443 706.129 Td [(get)]TJ +/F8 9.9626 Tf 188.563 706.129 Td [(3.2.18)-644(clone)-334(|)-333(Clone)-333(c)-1(u)1(rren)27(t)-333(ob)-55(jec)-1(t)]TJ +0 g 0 G + [-577(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ +0 g 0 G + [-1083(24)]TJ +0 g 0 G +0 0 1 rg 0 0 1 RG + 0 -12.08 Td [(3.2.19)-644(Named)-334(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(24)]TJ +0 g 0 G +0 0 1 rg 0 0 1 RG + -22.914 -12.08 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(24)]TJ +0 g 0 G +0 0 1 rg 0 0 1 RG + 22.914 -12.079 Td [(3.3.1)-1144(V)83(ector)-333(Metho)-28(ds)]TJ +0 g 0 G + [-297(.)-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 +0 g 0 G +0 0 1 rg 0 0 1 RG + 0 -12.08 Td [(3.3.2)-1144(get)]TJ ET q -1 0 0 1 234.325 706.328 cm +1 0 0 1 234.325 658.009 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 237.314 706.129 Td [(v)28(ect)]TJ +/F8 9.9626 Tf 237.314 657.81 Td [(nro)28(ws)-334(|)-333(Get)-333(n)28(um)27(b)-27(er)-334(of)-333(ro)28(ws)-334(in)-333(a)-333(dense)-334(v)28(ector)]TJ 0 g 0 G - [-668(.)-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 + [-466(.)-500(.)-500(.)-500(.)]TJ +0 g 0 G + [-1083(25)]TJ +0 g 0 G +0 0 1 rg 0 0 1 RG + -48.751 -12.08 Td [(3.3.3)-1144(size)-1(of)-319(|)-320(Get)-320(memory)-320(o)-28(ccupation)-320(in)-319(b)27(ytes)-320(of)-319(a)-320(dense)-320(v)28(ector)]TJ 0 g 0 G - [-1084(26)]TJ +0 g 0 G + [-550(25)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG - -16.871 -12.08 Td [(clone)]TJ + 0 -12.079 Td [(3.3.4)-1144(set)-334(|)-333(Set)-333(c)-1(on)28(ten)28(ts)-333(of)-334(the)-333(v)28(ector)]TJ 0 g 0 G - [-361(.)-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 + [-930(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G [-1084(26)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG - -54.794 -12.08 Td [(3.4)-1022(Preconditioner)-333(data)-334(structure)]TJ + 0 -12.08 Td [(3.3.5)-1144(get)]TJ +ET +q +1 0 0 1 234.325 621.77 cm +[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +Q +BT +/F8 9.9626 Tf 237.314 621.571 Td [(v)28(ect)-334(|)-333(Get)-333(a)-334(cop)28(y)-333(of)-333(the)-334(v)28(ector)-333(con)27(ten)28(ts)]TJ +0 g 0 G + [-735(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ +0 g 0 G + [-1084(27)]TJ +0 g 0 G +0 0 1 rg 0 0 1 RG + -48.751 -12.08 Td [(3.3.6)-1144(clone)-334(|)-333(Clone)-333(c)-1(u)1(rren)27(t)-333(ob)-55(jec)-1(t)]TJ +0 g 0 G + [-577(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ +0 g 0 G + [-1083(27)]TJ +0 g 0 G +0 0 1 rg 0 0 1 RG + -22.914 -12.079 Td [(3.4)-1022(Preconditioner)-333(data)-334(structure)]TJ 0 g 0 G [-585(.)-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(26)]TJ + [-1084(27)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG - 0 -12.079 Td [(3.5)-1022(Heap)-334(dat)1(a)-334(structure)]TJ + 0 -12.08 Td [(3.5)-1022(Heap)-334(dat)1(a)-334(structure)]TJ 0 g 0 G [-855(.)-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(27)]TJ + [-1084(28)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG /F27 9.9626 Tf -14.944 -22.126 Td [(4)-925(Computational)-383(routi)-1(n)1(es)]TJ 0 g 0 G - [-19887(28)]TJ + [-19887(29)]TJ 0 0 1 rg 0 0 1 RG -/F8 9.9626 Tf 14.944 -12.079 Td [(psb)]TJ +/F8 9.9626 Tf 14.944 -12.079 Td [(4.1)-1022(psb)]TJ ET q -1 0 0 1 181.246 635.884 cm +1 0 0 1 204.16 551.326 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 184.235 635.685 Td [(geaxpb)28(y)]TJ +/F8 9.9626 Tf 207.149 551.127 Td [(geaxpb)28(y)-333(|)-334(General)-333(Dense)-334(Matrix)-333(Sum)]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(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ + [-719(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G - [-1084(29)]TJ + [-1084(30)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG - -18.586 -12.08 Td [(psb)]TJ + -41.5 -12.08 Td [(4.2)-1022(psb)]TJ ET q -1 0 0 1 181.246 623.804 cm +1 0 0 1 204.16 539.246 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 184.235 623.605 Td [(gedot)]TJ +/F8 9.9626 Tf 207.149 539.047 Td [(gedot)-333(|)-334(Dot)-333(Pro)-28(duct)]TJ 0 g 0 G - [-718(.)-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 + [-553(.)-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(32)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG - -18.586 -12.08 Td [(psb)]TJ + -41.5 -12.08 Td [(4.3)-1022(psb)]TJ ET q -1 0 0 1 181.246 611.725 cm +1 0 0 1 204.16 527.167 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 184.235 611.525 Td [(gedots)]TJ +/F8 9.9626 Tf 207.149 526.967 Td [(gedots)-333(|)-334(Generalized)-333(Dot)-333(Pro)-28(duct)]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(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ + [-927(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G - [-1084(33)]TJ + [-1084(34)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG - -18.586 -12.079 Td [(psb)]TJ + -41.5 -12.079 Td [(4.4)-1022(psb)]TJ ET q -1 0 0 1 181.246 599.645 cm +1 0 0 1 204.16 515.087 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 184.235 599.446 Td [(normi)]TJ +/F8 9.9626 Tf 207.149 514.888 Td [(normi)-333(|)-334(In\014ni)1(t)27(y-Norm)-333(of)-333(V)83(ector)]TJ 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(.)-500(.)]TJ + [-270(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G - [-1084(35)]TJ + [-1084(36)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG - -18.586 -12.08 Td [(psb)]TJ + -41.5 -12.08 Td [(4.5)-1022(psb)]TJ ET q -1 0 0 1 181.246 587.565 cm +1 0 0 1 204.16 503.007 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 184.235 587.366 Td [(geamaxs)]TJ +/F8 9.9626 Tf 207.149 502.808 Td [(geamaxs)-333(|)-334(Generalized)-333(In\014nit)28(y)-334(Norm)]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(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ + [-316(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G - [-1084(37)]TJ + [-1084(38)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG - -18.586 -12.08 Td [(psb)]TJ + -41.5 -12.08 Td [(4.6)-1022(psb)]TJ ET q -1 0 0 1 181.246 575.485 cm +1 0 0 1 204.16 490.928 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 184.235 575.286 Td [(norm1)]TJ +/F8 9.9626 Tf 207.149 490.728 Td [(norm1)-333(|)-334(1-Norm)-333(of)-333(V)83(ector)]TJ 0 g 0 G - [-326(.)-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 + [-409(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G - [-1084(38)]TJ + [-1083(39)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG - -18.586 -12.08 Td [(psb)]TJ + -41.5 -12.079 Td [(4.7)-1022(psb)]TJ ET q -1 0 0 1 181.246 563.406 cm +1 0 0 1 204.16 478.848 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 184.235 563.206 Td [(geasums)]TJ +/F8 9.9626 Tf 207.149 478.649 Td [(geasums)-333(|)-334(Generalized)-333(1-Norm)-334(of)-333(V)83(ector)]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(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ + [-335(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G - [-1084(40)]TJ + [-1084(41)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG - -18.586 -12.079 Td [(psb)]TJ + -41.5 -12.08 Td [(4.8)-1022(psb)]TJ ET q -1 0 0 1 181.246 551.326 cm +1 0 0 1 204.16 466.768 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 184.235 551.127 Td [(norm2)]TJ +/F8 9.9626 Tf 207.149 466.569 Td [(norm2)-333(|)-334(2-Norm)-333(of)-333(V)83(ector)]TJ 0 g 0 G - [-326(.)-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 + [-409(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G - [-1084(42)]TJ + [-1083(43)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG - -18.586 -12.08 Td [(psb)]TJ + -41.5 -12.08 Td [(4.9)-1022(psb)]TJ ET q -1 0 0 1 181.246 539.246 cm +1 0 0 1 204.16 454.688 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 184.235 539.047 Td [(genrm2s)]TJ +/F8 9.9626 Tf 207.149 454.489 Td [(genrm2s)-333(|)-334(Generalized)-333(2-Norm)-333(of)-334(V)84(e)-1(ctor)]TJ 0 g 0 G - [-265(.)-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 + [-338(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)]TJ 0 g 0 G - [-1084(44)]TJ + [-1084(45)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG - -18.586 -12.08 Td [(psb)]TJ + -41.5 -12.08 Td [(4.10)-522(psb)]TJ ET q -1 0 0 1 181.246 527.167 cm +1 0 0 1 204.16 442.609 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 184.235 526.967 Td [(norm1)]TJ +/F8 9.9626 Tf 207.149 442.409 Td [(norm1)-333(|)-334(1-Norm)-333(of)-333(Sparse)-334(Matrix)]TJ 0 g 0 G - [-326(.)-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 + [-956(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)]TJ 0 g 0 G - [-1084(45)]TJ + [-1084(46)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG - -18.586 -12.079 Td [(psb)]TJ + -41.5 -12.079 Td [(4.11)-522(psb)]TJ ET q -1 0 0 1 181.246 515.087 cm +1 0 0 1 204.16 430.529 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 184.235 514.888 Td [(normi)]TJ +/F8 9.9626 Tf 207.149 430.33 Td [(normi)-333(|)-334(In\014ni)1(t)27(y)-333(Norm)-333(of)-334(Sparse)-333(Matrix)]TJ 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(.)-500(.)]TJ + [-817(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G - [-1084(46)]TJ + [-1084(47)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG - -18.586 -12.08 Td [(psb)]TJ + -41.5 -12.08 Td [(4.12)-522(psb)]TJ ET q -1 0 0 1 181.246 503.007 cm +1 0 0 1 204.16 418.449 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 184.235 502.808 Td [(spmm)]TJ +/F8 9.9626 Tf 207.149 418.25 Td [(spmm)-333(|)-334(Sparse)-333(Matrix)-333(b)28(y)-334(Dense)-333(Matrix)-333(Pro)-28(duct)]TJ 0 g 0 G - [-490(.)-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 + [-584(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G - [-1084(47)]TJ + [-1084(48)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG - -18.586 -12.08 Td [(psb)]TJ + -41.5 -12.08 Td [(4.13)-522(psb)]TJ ET q -1 0 0 1 181.246 490.928 cm +1 0 0 1 204.16 406.37 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 184.235 490.728 Td [(spsm)]TJ +/F8 9.9626 Tf 207.149 406.17 Td [(spsm)-333(|)-334(T)84(riangular)-334(System)-333(Solv)28(e)]TJ 0 g 0 G - [-929(.)-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 + [-284(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G - [-1084(49)]TJ + [-1084(50)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG -/F27 9.9626 Tf -33.53 -22.125 Td [(5)-925(Comm)32(unication)-383(r)-1(ou)1(t)-1(ines)]TJ -0 g 0 G - [-19454(52)]TJ -0 0 1 rg 0 0 1 RG -/F8 9.9626 Tf 14.944 -12.08 Td [(psb)]TJ + -41.5 -12.079 Td [(4.14)-522(psb)]TJ ET q -1 0 0 1 181.246 456.722 cm +1 0 0 1 204.16 394.29 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 184.235 456.523 Td [(halo)]TJ +/F8 9.9626 Tf 207.149 394.091 Td [(gemlt)-333(|)-334(En)28(trywise)-333(Pro)-28(duct)]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(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ + [-906(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G [-1084(53)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG - -18.586 -12.079 Td [(psb)]TJ + -41.5 -12.08 Td [(4.15)-522(psb)]TJ ET q -1 0 0 1 181.246 444.643 cm +1 0 0 1 204.16 382.21 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 184.235 444.444 Td [(o)28(vrl)]TJ +/F8 9.9626 Tf 207.149 382.011 Td [(gediv)-333(|)-334(En)28(trywise)-333(Division)]TJ 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(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)]TJ + [-1015(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G - [-1084(56)]TJ + [-1084(55)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG - -18.586 -12.08 Td [(psb)]TJ + -41.5 -12.08 Td [(4.16)-522(psb)]TJ ET q -1 0 0 1 181.246 432.563 cm +1 0 0 1 204.16 370.131 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 184.235 432.364 Td [(gather)]TJ +/F8 9.9626 Tf 207.149 369.931 Td [(gein)28(v)-334(|)-333(En)28(trywise)-333(In)27(v)28(ersion)]TJ 0 g 0 G - [-326(.)-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 + [-664(.)-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(57)]TJ +0 g 0 G +0 0 1 rg 0 0 1 RG +/F27 9.9626 Tf -56.444 -22.125 Td [(5)-925(Comm)32(unication)-383(r)-1(ou)1(t)-1(ines)]TJ 0 g 0 G + [-19454(58)]TJ 0 0 1 rg 0 0 1 RG - -18.586 -12.08 Td [(psb)]TJ +/F8 9.9626 Tf 14.944 -12.08 Td [(5.1)-1022(psb)]TJ ET q -1 0 0 1 181.246 420.483 cm +1 0 0 1 204.16 335.925 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 184.235 420.284 Td [(scatter)]TJ +/F8 9.9626 Tf 207.149 335.726 Td [(halo)-333(|)-334(Halo)-333(Data)-333(Comm)27(un)1(ic)-1(ati)1(o)-1(n)]TJ 0 g 0 G - [-932(.)-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 + [-320(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G - [-1083(62)]TJ + [-1084(59)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG -/F27 9.9626 Tf -33.53 -22.125 Td [(6)-925(Data)-383(managem)-1(e)1(n)31(t)-383(routines)]TJ -0 g 0 G - [-18205(64)]TJ -0 0 1 rg 0 0 1 RG -/F8 9.9626 Tf 14.944 -12.08 Td [(psb)]TJ + -41.5 -12.08 Td [(5.2)-1022(psb)]TJ ET q -1 0 0 1 181.246 386.278 cm +1 0 0 1 204.16 323.846 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 184.235 386.079 Td [(cdall)]TJ +/F8 9.9626 Tf 207.149 323.647 Td [(o)28(vrl)-333(|)-334(Ov)28(erlap)-333(Up)-28(date)]TJ 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 + [-579(.)-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(64)]TJ + [-1084(62)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG - -18.586 -12.08 Td [(psb)]TJ + -41.5 -12.08 Td [(5.3)-1022(psb)]TJ ET q -1 0 0 1 181.246 374.199 cm +1 0 0 1 204.16 311.766 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 184.235 373.999 Td [(cdins)]TJ +/F8 9.9626 Tf 207.149 311.567 Td [(gather)-333(|)-334(Gather)-333(Global)-333(Dense)-334(Matrix)]TJ 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 + [-903(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G - [-1084(68)]TJ + [-1084(66)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG - -18.586 -12.079 Td [(psb)]TJ + -41.5 -12.08 Td [(5.4)-1022(psb)]TJ ET q -1 0 0 1 181.246 362.119 cm +1 0 0 1 204.16 299.686 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 184.235 361.92 Td [(cdasb)]TJ +/F8 9.9626 Tf 207.149 299.487 Td [(scatter)-333(|)-334(Scatter)-333(Global)-333(Dense)-334(Matrix)]TJ +0 g 0 G + [-682(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 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 + [-1084(68)]TJ 0 g 0 G - [-1083(70)]TJ +0 0 1 rg 0 0 1 RG +/F27 9.9626 Tf -56.444 -22.125 Td [(6)-925(Data)-383(managem)-1(e)1(n)31(t)-383(routines)]TJ 0 g 0 G + [-18205(70)]TJ 0 0 1 rg 0 0 1 RG - -18.586 -12.08 Td [(psb)]TJ +/F8 9.9626 Tf 14.944 -12.08 Td [(6.1)-1022(psb)]TJ ET q -1 0 0 1 181.246 350.039 cm +1 0 0 1 204.16 265.481 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 184.235 349.84 Td [(cdcp)28(y)]TJ +/F8 9.9626 Tf 207.149 265.282 Td [(cdall)-333(|)-334(Allo)-27(cates)-334(a)-333(comm)27(u)1(nication)-334(descriptor)]TJ 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 + [-817(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G - [-1084(71)]TJ + [-1084(70)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG - -18.586 -12.08 Td [(psb)]TJ + -41.5 -12.08 Td [(6.2)-1022(psb)]TJ ET q -1 0 0 1 181.246 337.96 cm +1 0 0 1 204.16 253.402 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 184.235 337.76 Td [(cdfree)]TJ +/F8 9.9626 Tf 207.149 253.202 Td [(cdins)-333(|)-334(Comm)28(unication)-333(descriptor)-333(inse)-1(r)1(t)-334(routine)]TJ 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 + [-861(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G - [-1084(72)]TJ + [-1084(74)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG - -18.586 -12.079 Td [(psb)]TJ + -41.5 -12.079 Td [(6.3)-1022(psb)]TJ ET q -1 0 0 1 181.246 325.88 cm +1 0 0 1 204.16 241.322 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 184.235 325.681 Td [(cdbldext)]TJ +/F8 9.9626 Tf 207.149 241.123 Td [(cdasb)-333(|)-334(Comm)28(unication)-333(descriptor)-334(assem)28(bly)-333(routine)]TJ 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 + [-748(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G - [-1084(73)]TJ + [-1084(76)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG - -18.586 -12.08 Td [(psb)]TJ + -41.5 -12.08 Td [(6.4)-1022(psb)]TJ ET q -1 0 0 1 181.246 313.8 cm +1 0 0 1 204.16 229.242 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 184.235 313.601 Td [(spall)]TJ +/F8 9.9626 Tf 207.149 229.043 Td [(cdcp)28(y)-334(|)-333(Copies)-333(a)-334(comm)28(unication)-333(descriptor)]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(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ + [-706(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G - [-1084(75)]TJ + [-1084(77)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG - -18.586 -12.08 Td [(psb)]TJ + -41.5 -12.08 Td [(6.5)-1022(psb)]TJ ET q -1 0 0 1 181.246 301.72 cm +1 0 0 1 204.16 217.162 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 184.235 301.521 Td [(spins)]TJ +/F8 9.9626 Tf 207.149 216.963 Td [(cdfree)-333(|)-334(F)84(rees)-334(a)-333(comm)28(unication)-334(descriptor)]TJ 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 + [-492(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G - [-1084(76)]TJ + [-1084(78)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG - -18.586 -12.08 Td [(psb)]TJ + -41.5 -12.079 Td [(6.6)-1022(psb)]TJ ET q -1 0 0 1 181.246 289.641 cm +1 0 0 1 204.16 205.083 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 184.235 289.441 Td [(spasb)]TJ +/F8 9.9626 Tf 207.149 204.884 Td [(cdbldext)-333(|)-334(Build)-333(an)-333(extended)-333(co)-1(mm)28(unication)-333(descriptor)]TJ 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 + [-614(.)-500(.)]TJ 0 g 0 G - [-1083(79)]TJ + [-1084(79)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG - -18.586 -12.079 Td [(psb)]TJ + -41.5 -12.08 Td [(6.7)-1022(psb)]TJ ET q -1 0 0 1 181.246 277.561 cm +1 0 0 1 204.16 193.003 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 184.235 277.362 Td [(spfree)]TJ +/F8 9.9626 Tf 207.149 192.804 Td [(spall)-333(|)-334(Allo)-27(cates)-334(a)-333(sparse)-334(matrix)]TJ 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 + [-806(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)]TJ 0 g 0 G [-1084(81)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG - -18.586 -12.08 Td [(psb)]TJ + -41.5 -12.08 Td [(6.8)-1022(psb)]TJ ET q -1 0 0 1 181.246 265.481 cm +1 0 0 1 204.16 180.923 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 184.235 265.282 Td [(sprn)]TJ +/F8 9.9626 Tf 207.149 180.724 Td [(spins)-333(|)-334(Insert)-333(a)-333(set)-334(of)-333(co)-28(e\016cien)28(ts)-334(in)28(to)-333(a)-333(sparse)-334(matrix)]TJ 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 + [-814(.)-500(.)-500(.)]TJ 0 g 0 G [-1084(82)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG - -18.586 -12.08 Td [(psb)]TJ + -41.5 -12.08 Td [(6.9)-1022(psb)]TJ ET q -1 0 0 1 181.246 253.402 cm +1 0 0 1 204.16 168.844 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 184.235 253.202 Td [(geall)]TJ +/F8 9.9626 Tf 207.149 168.644 Td [(spasb)-333(|)-334(Sparse)-333(matrix)-333(assem)27(bly)-333(routine)]TJ 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 + [-853(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G - [-1084(83)]TJ + [-1084(85)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG - -18.586 -12.079 Td [(psb)]TJ + -41.5 -12.079 Td [(6.10)-522(psb)]TJ ET q -1 0 0 1 181.246 241.322 cm +1 0 0 1 204.16 156.764 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 184.235 241.123 Td [(geins)]TJ +/F8 9.9626 Tf 207.149 156.565 Td [(spfree)-333(|)-334(F)84(rees)-334(a)-333(sparse)-334(matri)1(x)]TJ 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 + [-482(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G - [-1084(84)]TJ + [-1084(87)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG - -18.586 -12.08 Td [(psb)]TJ + -41.5 -12.08 Td [(6.11)-522(psb)]TJ ET q -1 0 0 1 181.246 229.242 cm +1 0 0 1 204.16 144.684 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 184.235 229.043 Td [(geasb)]TJ +/F8 9.9626 Tf 207.149 144.485 Td [(sprn)-333(|)-334(Reinit)-333(sparse)-333(matrix)-334(structure)-333(for)-333(psblas)-333(routines.)]TJ 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 + [-1012(.)]TJ 0 g 0 G - [-1084(86)]TJ + [-1084(88)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG - -18.586 -12.08 Td [(psb)]TJ + -41.5 -12.08 Td [(6.12)-522(psb)]TJ ET q -1 0 0 1 181.246 217.162 cm +1 0 0 1 204.16 132.605 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 184.235 216.963 Td [(gefree)]TJ +/F8 9.9626 Tf 207.149 132.405 Td [(geall)-333(|)-334(Allo)-27(cates)-334(a)-333(dense)-334(matrix)]TJ 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 + [-320(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G - [-1084(87)]TJ + [-1084(89)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG - -18.586 -12.079 Td [(psb)]TJ + -41.5 -12.079 Td [(6.13)-522(psb)]TJ ET q -1 0 0 1 181.246 205.083 cm +1 0 0 1 204.16 120.525 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 184.235 204.884 Td [(gelp)]TJ +/F8 9.9626 Tf 207.149 120.326 Td [(geins)-333(|)-334(Dense)-333(matrix)-333(insertion)-334(routine)]TJ 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 + [-656(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ +0 g 0 G + [-1083(90)]TJ +0 g 0 G +0 g 0 G + 112.644 -29.888 Td [(ii)]TJ +0 g 0 G +ET + +endstream +endobj +738 0 obj +<< +/Length 17894 +>> +stream 0 g 0 G - [-1084(88)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG - -18.586 -12.08 Td [(psb)]TJ +BT +/F8 9.9626 Tf 114.839 706.129 Td [(6.14)-522(psb)]TJ ET q -1 0 0 1 181.246 193.003 cm +1 0 0 1 153.351 706.328 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 184.235 192.804 Td [(glob)]TJ +/F8 9.9626 Tf 156.339 706.129 Td [(geasb)-333(|)-334(Assem)28(bly)-333(a)-334(dense)-333(matrix)]TJ +0 g 0 G + [-559(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ +0 g 0 G + [-1084(92)]TJ +0 g 0 G +0 0 1 rg 0 0 1 RG + -41.5 -12.382 Td [(6.15)-522(psb)]TJ ET q -1 0 0 1 203.097 193.003 cm +1 0 0 1 153.351 693.946 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 206.086 192.804 Td [(to)]TJ +/F8 9.9626 Tf 156.339 693.747 Td [(gefree)-333(|)-334(F)84(rees)-334(a)-333(dense)-334(matrix)]TJ +0 g 0 G + [-773(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ +0 g 0 G + [-1084(93)]TJ +0 g 0 G +0 0 1 rg 0 0 1 RG + -41.5 -12.382 Td [(6.16)-522(psb)]TJ ET q -1 0 0 1 215.54 193.003 cm +1 0 0 1 153.351 681.564 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 218.528 192.804 Td [(lo)-28(c)]TJ +/F8 9.9626 Tf 156.339 681.365 Td [(gelp)-333(|)-334(Applies)-333(a)-333(left)-334(p)-27(erm)27(utation)-333(to)-333(a)-334(dense)-333(matrix)]TJ 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 + [-317(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G - [-1083(89)]TJ + [-1084(94)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG - -52.879 -12.08 Td [(psb)]TJ + -41.5 -12.383 Td [(6.17)-522(psb)]TJ ET q -1 0 0 1 181.246 180.923 cm +1 0 0 1 153.351 669.182 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 184.235 180.724 Td [(lo)-28(c)]TJ +/F8 9.9626 Tf 156.339 668.982 Td [(glob)]TJ ET q -1 0 0 1 197.286 180.923 cm +1 0 0 1 175.202 669.182 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 200.275 180.724 Td [(to)]TJ +/F8 9.9626 Tf 178.191 668.982 Td [(to)]TJ ET q -1 0 0 1 209.728 180.923 cm +1 0 0 1 187.644 669.182 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 212.717 180.724 Td [(glob)]TJ +/F8 9.9626 Tf 190.633 668.982 Td [(lo)-28(c)-333(|)-333(G)-1(l)1(obal)-334(to)-333(lo)-28(cal)-333(indices)-334(con)28(v)28(ertion)]TJ 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 + [-821(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G - [-1083(91)]TJ + [-1083(95)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG - -47.068 -12.08 Td [(psb)]TJ + -75.794 -12.382 Td [(6.18)-522(psb)]TJ +ET +q +1 0 0 1 153.351 656.8 cm +[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +Q +BT +/F8 9.9626 Tf 156.339 656.6 Td [(lo)-28(c)]TJ ET q -1 0 0 1 181.246 168.844 cm +1 0 0 1 169.39 656.8 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 184.235 168.644 Td [(is)]TJ +/F8 9.9626 Tf 172.379 656.6 Td [(to)]TJ ET q -1 0 0 1 191.53 168.844 cm +1 0 0 1 181.833 656.8 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 194.518 168.644 Td [(o)28(wned)]TJ +/F8 9.9626 Tf 184.822 656.6 Td [(glob)-333(|)-334(Lo)-27(cal)-334(to)-333(global)-333(indices)-334(con)28(v)28(ersion)]TJ 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 + [-753(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G - [-1084(92)]TJ + [-1084(97)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG - -28.869 -12.079 Td [(psb)]TJ + -69.983 -12.382 Td [(6.19)-522(psb)]TJ ET q -1 0 0 1 181.246 156.764 cm +1 0 0 1 153.351 644.417 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 184.235 156.565 Td [(o)28(wned)]TJ +/F8 9.9626 Tf 156.339 644.218 Td [(is)]TJ ET q -1 0 0 1 212.23 156.764 cm +1 0 0 1 163.634 644.417 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 215.219 156.565 Td [(index)]TJ +/F8 9.9626 Tf 166.623 644.218 Td [(o)28(wned)-334(|)]TJ 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 + [-1135(.)-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 - [-1083(93)]TJ + [-1084(98)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG - -49.57 -12.08 Td [(psb)]TJ + -51.784 -12.382 Td [(6.20)-522(psb)]TJ ET q -1 0 0 1 181.246 144.684 cm +1 0 0 1 153.351 632.035 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 184.235 144.485 Td [(is)]TJ +/F8 9.9626 Tf 156.339 631.836 Td [(o)28(wned)]TJ ET q -1 0 0 1 191.53 144.684 cm +1 0 0 1 184.334 632.035 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 194.518 144.485 Td [(lo)-28(cal)]TJ +/F8 9.9626 Tf 187.323 631.836 Td [(index)-333(|)]TJ 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 + [-1002(.)-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(94)]TJ + [-1083(99)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG - -28.869 -12.08 Td [(psb)]TJ + -72.484 -12.382 Td [(6.21)-522(psb)]TJ ET q -1 0 0 1 181.246 132.605 cm +1 0 0 1 153.351 619.653 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 184.235 132.405 Td [(lo)-28(cal)]TJ +/F8 9.9626 Tf 156.339 619.454 Td [(is)]TJ ET q -1 0 0 1 205.035 132.605 cm +1 0 0 1 163.634 619.653 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 208.023 132.405 Td [(index)]TJ +/F8 9.9626 Tf 166.623 619.454 Td [(lo)-28(cal)-333(|)]TJ 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 + [-1080(.)-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(95)]TJ + [-584(100)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG - -42.374 -12.079 Td [(psb)]TJ + -51.784 -12.382 Td [(6.22)-522(psb)]TJ ET q -1 0 0 1 181.246 120.525 cm +1 0 0 1 153.351 607.271 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 184.235 120.326 Td [(get)]TJ +/F8 9.9626 Tf 156.339 607.072 Td [(lo)-28(cal)]TJ ET q -1 0 0 1 198.116 120.525 cm +1 0 0 1 177.139 607.271 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 201.105 120.326 Td [(b)-28(oundary)]TJ -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(96)]TJ -0 g 0 G -0 g 0 G - 118.688 -29.888 Td [(ii)]TJ +/F8 9.9626 Tf 180.128 607.072 Td [(index)-333(|)]TJ 0 g 0 G -ET - -endstream -endobj -715 0 obj -<< -/Length 18018 ->> -stream + [-947(.)-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(.)]TJ 0 g 0 G + [-584(101)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG -BT -/F8 9.9626 Tf 114.839 706.129 Td [(psb)]TJ + -65.289 -12.382 Td [(6.23)-522(psb)]TJ ET q -1 0 0 1 130.436 706.328 cm +1 0 0 1 153.351 594.889 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 133.425 706.129 Td [(get)]TJ +/F8 9.9626 Tf 156.339 594.69 Td [(get)]TJ ET q -1 0 0 1 147.307 706.328 cm +1 0 0 1 170.221 594.889 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 150.295 706.129 Td [(o)28(v)28(e)-1(r)1(lap)]TJ +/F8 9.9626 Tf 173.209 594.69 Td [(b)-28(oundary)-333(|)-333(Extract)-334(list)-333(of)-333(b)-28(oundary)-333(elemen)28(ts)]TJ 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(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)]TJ + [-330(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G - [-1084(97)]TJ + [-584(102)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG - -35.456 -11.955 Td [(psb)]TJ + -58.37 -12.382 Td [(6.24)-522(psb)]TJ ET q -1 0 0 1 130.436 694.373 cm +1 0 0 1 153.351 582.507 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 133.425 694.174 Td [(sp)]TJ +/F8 9.9626 Tf 156.339 582.307 Td [(get)]TJ ET q -1 0 0 1 143.488 694.373 cm +1 0 0 1 170.221 582.507 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 146.476 694.174 Td [(getro)28(w)]TJ +/F8 9.9626 Tf 173.209 582.307 Td [(o)28(v)28(e)-1(r)1(lap)-334(|)-333(Extract)-333(list)-334(of)-333(o)28(v)28(erlap)-334(elemen)28(ts)]TJ 0 g 0 G - [-433(.)-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 + [-830(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)]TJ 0 g 0 G - [-1084(98)]TJ + [-584(103)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG - -31.637 -11.955 Td [(psb)]TJ + -58.37 -12.382 Td [(6.25)-522(psb)]TJ ET q -1 0 0 1 130.436 682.418 cm +1 0 0 1 153.351 570.125 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 133.425 682.219 Td [(sizeof)]TJ -0 g 0 G - [-740(.)-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 - [-584(100)]TJ -0 g 0 G -0 0 1 rg 0 0 1 RG - -18.586 -11.956 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 - [-583(101)]TJ -0 g 0 G -0 0 1 rg 0 0 1 RG -/F27 9.9626 Tf -14.944 -21.917 Td [(7)-925(P)32(arallel)-384(en)32(vironmen)32(t)-383(routines)]TJ -0 g 0 G - [-16316(103)]TJ -0 0 1 rg 0 0 1 RG -/F8 9.9626 Tf 14.944 -11.956 Td [(psb)]TJ +/F8 9.9626 Tf 156.339 569.925 Td [(sp)]TJ ET q -1 0 0 1 130.436 636.59 cm +1 0 0 1 166.402 570.125 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 133.425 636.39 Td [(init)]TJ +/F8 9.9626 Tf 169.39 569.925 Td [(getro)28(w)-334(|)-333(Extract)-333(ro)28(w\050s)-1(\051)-333(from)-333(a)-333(s)-1(p)1(arse)-334(matrix)]TJ 0 g 0 G - [-829(.)-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(.)]TJ + [-810(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G - [-583(104)]TJ + [-584(104)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG - -18.586 -11.955 Td [(psb)]TJ + -54.551 -12.382 Td [(6.26)-522(psb)]TJ ET q -1 0 0 1 130.436 624.634 cm +1 0 0 1 153.351 557.742 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 133.425 624.435 Td [(info)]TJ +/F8 9.9626 Tf 156.339 557.543 Td [(sizeof)-333(|)-334(Memory)-333(o)-28(ccupation)]TJ +0 g 0 G + [-520(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ +0 g 0 G + [-583(106)]TJ +0 g 0 G +0 0 1 rg 0 0 1 RG + -41.5 -12.382 Td [(6.27)-522(Sorting)-333(utilities)-334(|)]TJ +0 g 0 G + [-775(.)-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(.)]TJ 0 g 0 G - [-690(.)-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(.)-500(.)-500(.)]TJ + [-584(107)]TJ 0 g 0 G - [-584(105)]TJ +0 0 1 rg 0 0 1 RG +/F27 9.9626 Tf -14.944 -22.629 Td [(7)-925(P)32(arallel)-384(en)32(vironmen)32(t)-383(routines)]TJ 0 g 0 G + [-16316(109)]TJ 0 0 1 rg 0 0 1 RG - -18.586 -11.955 Td [(psb)]TJ +/F8 9.9626 Tf 14.944 -12.382 Td [(7.1)-1022(psb)]TJ ET q -1 0 0 1 130.436 612.679 cm +1 0 0 1 153.351 510.349 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 133.425 612.48 Td [(exit)]TJ +/F8 9.9626 Tf 156.339 510.15 Td [(init)-333(|)-334(Initializes)-333(PSBLAS)-333(parallel)-333(e)-1(n)28(vironmen)28(t)]TJ 0 g 0 G - [-690(.)-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(.)-500(.)]TJ + [-920(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G - [-584(106)]TJ + [-584(110)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG - -18.586 -11.955 Td [(psb)]TJ + -41.5 -12.383 Td [(7.2)-1022(psb)]TJ ET q -1 0 0 1 130.436 600.724 cm +1 0 0 1 153.351 497.967 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 133.425 600.525 Td [(get)]TJ +/F8 9.9626 Tf 156.339 497.767 Td [(info)-329(|)-328(Return)-329(information)-329(ab)-27(out)-329(PSBLAS)-329(parallel)-328(en)27(vir)1(on-)]TJ -18.586 -11.955 Td [(men)28(t)]TJ +0 g 0 G + [-478(.)-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(.)]TJ +0 g 0 G + [-584(111)]TJ +0 g 0 G +0 0 1 rg 0 0 1 RG + -22.914 -12.382 Td [(7.3)-1022(psb)]TJ ET q -1 0 0 1 147.307 600.724 cm +1 0 0 1 153.351 473.629 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 150.295 600.525 Td [(mpicomm)]TJ +/F8 9.9626 Tf 156.339 473.43 Td [(exit)-333(|)-334(Exit)-333(from)-333(PSBLAS)-334(p)1(arallel)-334(en)28(vironmen)28(t)]TJ 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 + [-742(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G - [-583(107)]TJ + [-584(112)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG - -35.456 -11.955 Td [(psb)]TJ + -41.5 -12.382 Td [(7.4)-1022(psb)]TJ ET q -1 0 0 1 130.436 588.769 cm +1 0 0 1 153.351 461.247 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 133.425 588.57 Td [(get)]TJ +/F8 9.9626 Tf 156.339 461.048 Td [(get)]TJ ET q -1 0 0 1 147.307 588.769 cm +1 0 0 1 170.221 461.247 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 150.295 588.57 Td [(rank)]TJ -0 g 0 G - [-994(.)-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 - [-584(108)]TJ -0 g 0 G -0 0 1 rg 0 0 1 RG - -35.456 -11.955 Td [(psb)]TJ +/F8 9.9626 Tf 173.209 461.048 Td [(mpi)]TJ ET q -1 0 0 1 130.436 576.814 cm +1 0 0 1 190.412 461.247 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 133.425 576.615 Td [(wtime)]TJ +/F8 9.9626 Tf 193.4 461.048 Td [(comm)-334(|)-333(Get)-333(the)-334(MPI)-333(comm)28(unicator)]TJ 0 g 0 G - [-440(.)-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 + [-868(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G - [-584(109)]TJ + [-584(113)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG - -18.586 -11.956 Td [(psb)]TJ + -78.561 -12.382 Td [(7.5)-1022(psb)]TJ ET q -1 0 0 1 130.436 564.859 cm +1 0 0 1 153.351 448.865 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 133.425 564.659 Td [(barrier)]TJ -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(.)-500(.)-499(.)]TJ -0 g 0 G - [-584(110)]TJ -0 g 0 G -0 0 1 rg 0 0 1 RG - -18.586 -11.955 Td [(psb)]TJ +/F8 9.9626 Tf 156.339 448.666 Td [(get)]TJ ET q -1 0 0 1 130.436 552.903 cm +1 0 0 1 170.221 448.865 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 133.425 552.704 Td [(ab)-28(ort)]TJ -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(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)]TJ -0 g 0 G - [-584(111)]TJ -0 g 0 G -0 0 1 rg 0 0 1 RG - -18.586 -11.955 Td [(psb)]TJ +/F8 9.9626 Tf 173.209 448.666 Td [(mpi)]TJ ET q -1 0 0 1 130.436 540.948 cm +1 0 0 1 190.412 448.865 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 133.425 540.749 Td [(b)-28(cast)]TJ +/F8 9.9626 Tf 193.4 448.666 Td [(rank)-333(|)-334(Get)-333(the)-333(MPI)-334(rank)]TJ 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(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ + [-282(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G - [-584(112)]TJ + [-584(114)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG - -18.586 -11.955 Td [(psb)]TJ + -78.561 -12.382 Td [(7.6)-1022(psb)]TJ ET q -1 0 0 1 130.436 528.993 cm +1 0 0 1 153.351 436.483 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 133.425 528.794 Td [(sum)]TJ +/F8 9.9626 Tf 156.339 436.284 Td [(wtime)-333(|)-334(W)84(all)-334(clo)-28(c)28(k)-333(timing)]TJ 0 g 0 G - [-546(.)-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(.)-500(.)-499(.)]TJ + [-445(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G - [-584(113)]TJ + [-584(115)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG - -18.586 -11.955 Td [(psb)]TJ + -41.5 -12.382 Td [(7.7)-1022(psb)]TJ ET q -1 0 0 1 130.436 517.038 cm +1 0 0 1 153.351 424.101 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 133.425 516.839 Td [(max)]TJ +/F8 9.9626 Tf 156.339 423.902 Td [(barrier)-333(|)-334(Sinc)28(hronization)-333(p)-28(oin)28(t)-333(parallel)-333(en)27(vironmen)28(t)]TJ 0 g 0 G - [-468(.)-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(.)]TJ + [-845(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G - [-583(114)]TJ + [-584(116)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG - -18.586 -11.955 Td [(psb)]TJ + -41.5 -12.383 Td [(7.8)-1022(psb)]TJ ET q -1 0 0 1 130.436 505.083 cm +1 0 0 1 153.351 411.719 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 133.425 504.884 Td [(min)]TJ +/F8 9.9626 Tf 156.339 411.519 Td [(ab)-28(ort)-333(|)-333(Ab)-28(ort)-333(a)-334(computation)]TJ 0 g 0 G - [-662(.)-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(.)-500(.)-500(.)]TJ + [-717(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G - [-584(115)]TJ + [-583(117)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG - -18.586 -11.956 Td [(psb)]TJ + -41.5 -12.382 Td [(7.9)-1022(psb)]TJ ET q -1 0 0 1 130.436 493.128 cm +1 0 0 1 153.351 399.337 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 133.425 492.928 Td [(amx)]TJ +/F8 9.9626 Tf 156.339 399.137 Td [(b)-28(cast)-333(|)-334(Broadcast)-333(data)]TJ 0 g 0 G - [-468(.)-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(.)]TJ + [-278(.)-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(116)]TJ + [-584(118)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG - -18.586 -11.955 Td [(psb)]TJ + -41.5 -12.382 Td [(7.10)-522(psb)]TJ ET q -1 0 0 1 130.436 481.172 cm +1 0 0 1 153.351 386.954 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 133.425 480.973 Td [(amn)]TJ +/F8 9.9626 Tf 156.339 386.755 Td [(sum)-333(|)-334(Global)-333(sum)]TJ 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(.)-500(.)]TJ + [-900(.)-500(.)-499(.)-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(117)]TJ + [-584(119)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG - -18.586 -11.955 Td [(psb)]TJ + -41.5 -12.382 Td [(7.11)-522(psb)]TJ ET q -1 0 0 1 130.436 469.217 cm +1 0 0 1 153.351 374.572 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 133.425 469.018 Td [(nrm2)]TJ +/F8 9.9626 Tf 156.339 374.373 Td [(max)-333(|)-334(Global)-333(maxim)28(um)]TJ 0 g 0 G - [-826(.)-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 + [-605(.)-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(118)]TJ + [-583(120)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG - -18.586 -11.955 Td [(psb)]TJ + -41.5 -12.382 Td [(7.12)-522(psb)]TJ ET q -1 0 0 1 130.436 457.262 cm +1 0 0 1 153.351 362.19 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 133.425 457.063 Td [(snd)]TJ +/F8 9.9626 Tf 156.339 361.991 Td [(min)-333(|)-334(Global)-333(minim)28(um)]TJ 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(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ + [-994(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)]TJ 0 g 0 G - [-584(119)]TJ + [-584(121)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG - -18.586 -11.955 Td [(psb)]TJ + -41.5 -12.382 Td [(7.13)-522(psb)]TJ ET q -1 0 0 1 130.436 445.307 cm +1 0 0 1 153.351 349.808 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 133.425 445.108 Td [(rcv)]TJ -0 g 0 G - [-965(.)-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(.)-500(.)]TJ +/F8 9.9626 Tf 156.339 349.609 Td [(amx)-333(|)-334(Global)-333(maxim)28(um)-334(absolute)-333(v)56(alue)]TJ 0 g 0 G - [-584(120)]TJ + [-294(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G -0 0 1 rg 0 0 1 RG -/F27 9.9626 Tf -33.53 -21.918 Td [(8)-925(Error)-383(handling)]TJ + [-584(122)]TJ 0 g 0 G - [-23812(121)]TJ 0 0 1 rg 0 0 1 RG -/F8 9.9626 Tf 14.944 -11.955 Td [(psb)]TJ + -41.5 -12.382 Td [(7.14)-522(psb)]TJ ET q -1 0 0 1 130.436 411.434 cm +1 0 0 1 153.351 337.426 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 133.425 411.235 Td [(errpush)]TJ +/F8 9.9626 Tf 156.339 337.227 Td [(amn)-333(|)-334(Global)-333(minim)28(um)-334(absolu)1(te)-334(v)56(alue)]TJ 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 + [-461(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G [-584(123)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG - -18.586 -11.955 Td [(psb)]TJ + -41.5 -12.383 Td [(7.15)-522(psb)]TJ ET q -1 0 0 1 130.436 399.479 cm +1 0 0 1 153.351 325.044 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 133.425 399.28 Td [(error)]TJ +/F8 9.9626 Tf 156.339 324.844 Td [(nrm2)-333(|)-334(Global)-333(2-norm)-333(reduction)]TJ 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 + [-847(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G [-584(124)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG - -18.586 -11.956 Td [(psb)]TJ -ET -q -1 0 0 1 130.436 387.524 cm -[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S -Q -BT -/F8 9.9626 Tf 133.425 387.324 Td [(set)]TJ + -41.5 -12.382 Td [(7.16)-522(psb)]TJ ET q -1 0 0 1 146.255 387.524 cm +1 0 0 1 153.351 312.662 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 149.244 387.324 Td [(errv)28(erb)-28(osit)28(y)]TJ +/F8 9.9626 Tf 156.339 312.462 Td [(snd)-333(|)-334(Send)-333(data)]TJ 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 + [-1023(.)-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(125)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG - -34.405 -11.955 Td [(psb)]TJ + -41.5 -12.382 Td [(7.17)-522(psb)]TJ ET q -1 0 0 1 130.436 375.568 cm +1 0 0 1 153.351 300.279 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 133.425 375.369 Td [(set)]TJ -ET -q -1 0 0 1 146.255 375.568 cm -[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S -Q -BT -/F8 9.9626 Tf 149.244 375.369 Td [(erraction)]TJ +/F8 9.9626 Tf 156.339 300.08 Td [(rcv)-333(|)-334(Receiv)28(e)-333(data)]TJ 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 + [-762(.)-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 - [-584(126)]TJ + [-583(126)]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 +/F27 9.9626 Tf -56.444 -22.629 Td [(8)-925(Error)-383(handling)]TJ 0 g 0 G - [-27238(127)]TJ + [-23812(127)]TJ 0 0 1 rg 0 0 1 RG -/F8 9.9626 Tf 14.944 -11.955 Td [(h)28(b)]TJ +/F8 9.9626 Tf 14.944 -12.382 Td [(8.1)-1022(psb)]TJ ET q -1 0 0 1 126.23 341.695 cm +1 0 0 1 153.351 265.268 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 129.219 341.496 Td [(read)]TJ +/F8 9.9626 Tf 156.339 265.069 Td [(errpush)-333(|)-334(Pushes)-333(an)-333(error)-334(co)-27(de)-334(on)28(to)-333(the)-334(error)-333(stac)28(k)]TJ 0 g 0 G - [-859(.)-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(.)-500(.)]TJ + [-1026(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G - [-584(128)]TJ + [-583(129)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG - -14.38 -11.955 Td [(h)28(b)]TJ + -41.5 -12.383 Td [(8.2)-1022(psb)]TJ ET q -1 0 0 1 126.23 329.74 cm +1 0 0 1 153.351 252.886 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 129.219 329.541 Td [(write)]TJ +/F8 9.9626 Tf 156.339 252.686 Td [(error)-333(|)-334(Prin)28(ts)-333(the)-333(e)-1(r)1(ror)-334(stac)28(k)-333(con)27(ten)28(t)-333(and)-333(ab)-28(orts)-333(e)-1(xecution)]TJ 0 g 0 G - [-526(.)-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(.)-500(.)]TJ 0 g 0 G - [-584(129)]TJ + [-1087(130)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG - -14.38 -11.955 Td [(mm)]TJ + -41.5 -12.382 Td [(8.3)-1022(psb)]TJ ET q -1 0 0 1 132.042 317.785 cm +1 0 0 1 153.351 240.504 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 135.03 317.586 Td [(mat)]TJ +/F8 9.9626 Tf 156.339 240.304 Td [(set)]TJ ET q -1 0 0 1 152.786 317.785 cm +1 0 0 1 169.169 240.504 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 155.775 317.586 Td [(read)]TJ +/F8 9.9626 Tf 172.158 240.304 Td [(errv)28(erb)-28(osit)28(y)-333(|)-334(Sets)-333(the)-334(v)28(erb)-27(os)-1(it)28(y)-333(of)-333(error)-334(messages)]TJ 0 g 0 G - [-527(.)-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(.)]TJ + [-804(.)-500(.)-500(.)]TJ 0 g 0 G - [-584(130)]TJ + [-584(131)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG - -40.936 -11.955 Td [(mm)]TJ + -57.319 -12.382 Td [(8.4)-1022(psb)]TJ ET q -1 0 0 1 132.042 305.83 cm +1 0 0 1 153.351 228.121 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 135.03 305.631 Td [(arra)28(y)]TJ +/F8 9.9626 Tf 156.339 227.922 Td [(set)]TJ ET q -1 0 0 1 158.376 305.83 cm +1 0 0 1 169.169 228.121 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 161.365 305.631 Td [(read)]TJ +/F8 9.9626 Tf 172.158 227.922 Td [(erraction)-274(|)-274(Set)-275(th)1(e)-275(t)28(yp)-28(e)-274(of)-274(action)-274(to)-274(b)-28(e)-274(tak)27(en)-274(up)-27(on)-275(error)]TJ -34.405 -11.955 Td [(condition)]TJ 0 g 0 G - [-744(.)-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(.)]TJ + [-950(.)-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(.)]TJ 0 g 0 G - [-584(131)]TJ + [-584(132)]TJ +0 g 0 G +0 0 1 rg 0 0 1 RG +/F27 9.9626 Tf -37.858 -22.629 Td [(9)-925(Utilities)]TJ 0 g 0 G + [-27238(133)]TJ 0 0 1 rg 0 0 1 RG - -46.526 -11.955 Td [(mm)]TJ +/F8 9.9626 Tf 14.944 -12.383 Td [(9.1)-1490(h)28(b)]TJ ET q -1 0 0 1 132.042 293.875 cm +1 0 0 1 153.803 181.155 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 135.03 293.676 Td [(mat)]TJ +/F8 9.9626 Tf 156.792 180.955 Td [(read)-468(|)-467(Read)-468(a)-468(sparse)-468(matri)1(x)-468(from)-468(a)-467(\014le)-468(in)-468(the)-467(Harw)27(ell{)]TJ -19.039 -11.955 Td [(Bo)-28(eing)-333(format)]TJ +0 g 0 G + [-294(.)-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(134)]TJ +0 g 0 G +0 0 1 rg 0 0 1 RG + -22.914 -12.382 Td [(9.2)-1022(h)28(b)]TJ ET q -1 0 0 1 152.786 293.875 cm +1 0 0 1 149.144 156.817 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 155.775 293.676 Td [(write)]TJ +/F8 9.9626 Tf 152.133 156.618 Td [(write)-291(|)-290(W)83(rite)-290(a)-291(sparse)-290(matrix)-291(to)-290(a)-291(\014le)-290(in)-291(the)-290(Harw)28(ell{Bo)-28(eing)]TJ -14.38 -11.955 Td [(format)]TJ 0 g 0 G - [-972(.)-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 + [-530(.)-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 - [-583(132)]TJ + [-584(135)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG - -40.936 -11.956 Td [(mm)]TJ + -22.914 -12.382 Td [(9.3)-1022(mm)]TJ ET q -1 0 0 1 132.042 281.92 cm +1 0 0 1 154.956 132.48 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 135.03 281.72 Td [(arra)28(y)]TJ +/F8 9.9626 Tf 157.944 132.281 Td [(mat)]TJ ET q -1 0 0 1 158.376 281.92 cm +1 0 0 1 175.7 132.48 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 161.365 281.72 Td [(write)]TJ -0 g 0 G - [-410(.)-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 - [-583(133)]TJ -0 g 0 G -0 0 1 rg 0 0 1 RG -/F27 9.9626 Tf -61.47 -21.917 Td [(10)-350(Preconditioner)-383(routi)-1(n)1(es)]TJ -0 g 0 G - [-19367(134)]TJ -0 0 1 rg 0 0 1 RG -/F8 9.9626 Tf 14.944 -11.956 Td [(prec%init)]TJ -0 g 0 G - [-803(.)-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 +/F8 9.9626 Tf 178.689 132.281 Td [(read)-313(|)-314(Read)-313(a)-313(sparse)-314(matrix)-313(from)-313(a)-314(\014le)-313(in)-313(the)-314(Matr)1(ix-)]TJ -40.935 -11.955 Td [(Mark)28(et)-333(format)]TJ 0 g 0 G - [-583(135)]TJ -0 g 0 G -0 0 1 rg 0 0 1 RG - 0 -11.955 Td [(prec%build)]TJ -0 g 0 G - [-858(.)-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 + [-945(.)-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(.)]TJ 0 g 0 G [-584(136)]TJ 0 g 0 G -0 0 1 rg 0 0 1 RG - 0 -11.955 Td [(prec%apply)]TJ -0 g 0 G - [-664(.)-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(.)]TJ -0 g 0 G - [-584(138)]TJ -0 g 0 G -0 0 1 rg 0 0 1 RG - 0 -11.955 Td [(prec%descr)]TJ -0 g 0 G - [-850(.)-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(.)]TJ -0 g 0 G - [-584(139)]TJ -0 g 0 G -0 0 1 rg 0 0 1 RG - 0 -11.955 Td [(clone)]TJ -0 g 0 G - [-417(.)-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(.)-500(.)-500(.)]TJ -0 g 0 G - [-583(140)]TJ -0 g 0 G -0 0 1 rg 0 0 1 RG - 0 -11.956 Td [(prec%free)]TJ -0 g 0 G - [-717(.)-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(141)]TJ 0 g 0 G -0 0 1 rg 0 0 1 RG -/F27 9.9626 Tf -14.944 -21.917 Td [(11)-350(Iterativ)32(e)-384(Metho)-31(ds)]TJ -0 g 0 G - [-22176(142)]TJ -0 0 1 rg 0 0 1 RG -/F8 9.9626 Tf 14.944 -11.956 Td [(psb)]TJ -ET -q -1 0 0 1 130.436 154.398 cm -[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S -Q -BT -/F8 9.9626 Tf 133.425 154.199 Td [(krylo)28(v)]TJ -0 g 0 G - [-382(.)-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 - [-583(143)]TJ -0 g 0 G -0 g 0 G - 134.175 -63.761 Td [(iii)]TJ + 129.846 -29.888 Td [(iii)]TJ 0 g 0 G ET endstream endobj -619 0 obj +643 0 obj << /Type /ObjStm /N 100 -/First 924 -/Length 16089 +/First 927 +/Length 16599 >> stream -583 0 584 148 585 296 586 445 587 594 588 751 589 903 590 1059 591 1208 592 1357 -593 1506 594 1654 595 1803 596 1952 597 2101 598 2250 599 2399 600 2548 601 2697 602 2846 -603 2995 604 3144 605 3293 606 3441 607 3590 608 3747 609 3899 610 4055 611 4204 612 4352 -617 4501 618 4557 614 4613 668 4705 613 5207 620 5356 621 5505 622 5657 623 5809 624 5956 -625 6105 626 6253 627 6400 628 6548 629 6697 630 6846 631 6995 632 7144 633 7292 634 7441 -635 7590 636 7737 637 7886 638 8033 639 8181 640 8329 641 8477 642 8626 643 8772 644 8920 -645 9069 646 9218 647 9367 648 9516 649 9665 650 9814 651 9963 652 10112 653 10261 654 10410 -655 10559 656 10708 657 10857 658 11005 659 11153 660 11301 661 11450 662 11599 663 11747 664 11894 -665 12042 670 12189 667 12246 714 12325 666 12795 671 12944 672 13092 673 13237 674 13385 675 13530 -676 13679 677 13827 678 13976 679 14123 680 14272 681 14421 682 14570 683 14719 684 14868 685 15016 -% 583 0 obj +595 0 596 152 597 309 598 459 599 605 600 757 601 914 602 1071 603 1228 604 1385 +605 1540 606 1696 607 1853 608 2010 609 2167 639 2325 610 2482 640 2639 611 2796 612 2954 +613 3111 614 3268 615 3426 616 3577 617 3733 618 3890 619 4046 641 4203 620 4359 642 4515 +621 4671 622 4828 623 4985 624 5137 625 5293 626 5451 627 5609 628 5767 629 5925 630 6083 +631 6240 632 6398 637 6555 638 6611 634 6667 692 6759 633 7261 644 7419 645 7577 646 7729 +647 7886 648 8043 649 8199 650 8356 651 8513 652 8670 653 8822 654 8974 655 9121 656 9273 +657 9425 658 9577 659 9729 660 9881 661 10033 662 10185 663 10337 664 10489 665 10642 666 10795 +667 10948 668 11101 669 11254 670 11407 671 11560 672 11706 673 11858 674 12010 675 12162 676 12314 +677 12460 678 12612 679 12764 680 12916 681 13067 682 13218 683 13369 684 13520 685 13672 686 13824 +687 13976 688 14127 689 14279 694 14431 691 14488 737 14567 690 15061 695 15214 696 15367 697 15519 +% 595 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [168.638 469.641 195.537 478.552] -/A << /S /GoTo /D (section*.8) >> +/Rect [113.843 622.634 232.122 633.482] +/A << /S /GoTo /D (subsection.2.3) >> >> -% 584 0 obj +% 596 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [168.638 457.561 192.769 466.361] -/A << /S /GoTo /D (section*.9) >> +/Rect [136.757 610.543 296.409 621.391] +/A << /S /GoTo /D (subsubsection.2.3.1) >> >> -% 585 0 obj +% 597 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [168.638 443.544 284.769 454.392] -/A << /S /GoTo /D (section*.10) >> +/Rect [113.843 598.452 227.777 609.3] +/A << /S /GoTo /D (subsection.2.4) >> >> -% 586 0 obj +% 598 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [168.638 431.464 283.717 442.313] -/A << /S /GoTo /D (section*.11) >> +/Rect [98.899 578.245 258.112 587.156] +/A << /S /GoTo /D (section.3) >> >> -% 587 0 obj +% 599 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [136.757 421.322 248.228 430.233] -/A << /S /GoTo /D (subsubsection.3.1.2) >> +/Rect [113.843 564.217 249.529 575.065] +/A << /S /GoTo /D (subsection.3.1) >> >> -% 588 0 obj +% 600 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [113.843 407.305 223.654 418.153] -/A << /S /GoTo /D (subsection.3.2) >> +/Rect [136.757 552.126 257.001 562.974] +/A << /S /GoTo /D (subsubsection.3.1.1) >> >> -% 589 0 obj +% 601 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [136.757 395.225 273.19 406.074] -/A << /S /GoTo /D (subsubsection.3.2.1) >> +/Rect [136.757 540.035 357.948 550.883] +/A << /S /GoTo /D (subsubsection.3.1.2) >> >> -% 590 0 obj +% 602 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [168.638 383.146 212.767 393.496] -/A << /S /GoTo /D (section*.12) >> +/Rect [136.757 527.944 350.697 538.792] +/A << /S /GoTo /D (subsubsection.3.1.3) >> >> -% 591 0 obj +% 603 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [168.638 371.066 209.141 381.914] -/A << /S /GoTo /D (section*.13) >> +/Rect [136.757 515.852 369.571 526.701] +/A << /S /GoTo /D (subsubsection.3.1.4) >> >> -% 592 0 obj +% 604 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [168.638 358.986 220.239 369.336] -/A << /S /GoTo /D (section*.14) >> +/Rect [136.757 503.761 362.32 514.61] +/A << /S /GoTo /D (subsubsection.3.1.5) >> >> -% 593 0 obj +% 605 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [168.638 346.906 206.374 357.49] -/A << /S /GoTo /D (section*.15) >> +/Rect [136.757 491.67 382.522 502.519] +/A << /S /GoTo /D (subsubsection.3.1.6) >> >> -% 594 0 obj +% 606 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [168.638 336.764 197.529 345.675] -/A << /S /GoTo /D (section*.16) >> +/Rect [136.757 479.579 357.211 490.317] +/A << /S /GoTo /D (subsubsection.3.1.7) >> >> -% 595 0 obj +% 607 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [168.638 322.747 205.765 333.595] -/A << /S /GoTo /D (section*.17) >> +/Rect [136.757 467.488 299.093 478.337] +/A << /S /GoTo /D (subsubsection.3.1.8) >> >> -% 596 0 obj +% 608 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [168.638 310.667 262.143 321.516] -/A << /S /GoTo /D (section*.18) >> +/Rect [136.757 455.397 344.866 466.246] +/A << /S /GoTo /D (subsubsection.3.1.9) >> >> -% 597 0 obj +% 609 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [168.638 298.588 328.909 309.436] -/A << /S /GoTo /D (section*.19) >> +/Rect [136.757 443.306 444.603 454.155] +/A << /S /GoTo /D (subsubsection.3.1.10) >> >> -% 598 0 obj +% 639 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [168.638 288.445 193.932 296.858] -/A << /S /GoTo /D (section*.20) >> +/Rect [98.899 431.351 220.222 442.199] +/A << /S /GoTo /D (subsubsection.3.1.10) >> >> -% 599 0 obj +% 610 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [168.638 274.428 194.485 285.276] -/A << /S /GoTo /D (section*.21) >> +/Rect [136.757 419.26 444.603 430.108] +/A << /S /GoTo /D (subsubsection.3.1.11) >> >> -% 600 0 obj +% 640 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [168.638 264.286 218.025 273.197] -/A << /S /GoTo /D (section*.22) >> +/Rect [98.899 407.305 220.222 418.153] +/A << /S /GoTo /D (subsubsection.3.1.11) >> >> -% 601 0 obj +% 611 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [168.638 250.269 205.765 261.117] -/A << /S /GoTo /D (section*.23) >> +/Rect [136.757 395.214 359.885 406.062] +/A << /S /GoTo /D (subsubsection.3.1.12) >> >> -% 602 0 obj +% 612 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [168.638 238.189 207.979 249.037] -/A << /S /GoTo /D (section*.24) >> +/Rect [136.757 383.123 356.55 393.971] +/A << /S /GoTo /D (subsubsection.3.1.13) >> >> -% 603 0 obj +% 613 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [168.638 228.047 183.941 236.958] -/A << /S /GoTo /D (section*.25) >> +/Rect [136.757 371.032 411.273 381.88] +/A << /S /GoTo /D (subsubsection.3.1.14) >> >> -% 604 0 obj +% 614 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [168.638 215.967 186.709 224.613] -/A << /S /GoTo /D (section*.26) >> +/Rect [136.757 360.878 248.228 369.789] +/A << /S /GoTo /D (subsubsection.3.1.15) >> >> -% 605 0 obj +% 615 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [168.638 201.95 255.944 212.798] -/A << /S /GoTo /D (section*.27) >> +/Rect [113.843 346.85 223.654 357.698] +/A << /S /GoTo /D (subsection.3.2) >> >> -% 606 0 obj +% 616 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [168.638 191.808 192.769 200.719] -/A << /S /GoTo /D (section*.28) >> +/Rect [136.757 334.759 273.19 345.607] +/A << /S /GoTo /D (subsubsection.3.2.1) >> >> -% 607 0 obj +% 617 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [136.757 179.728 248.228 188.639] +/Rect [136.757 322.668 398.529 333.516] /A << /S /GoTo /D (subsubsection.3.2.2) >> >> -% 608 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [113.843 167.648 265.358 176.448] -/A << /S /GoTo /D (subsection.3.3) >> ->> -% 609 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [136.757 155.568 239.898 164.48] -/A << /S /GoTo /D (subsubsection.3.3.1) >> ->> -% 610 0 obj +% 618 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [168.638 141.552 212.767 151.902] -/A << /S /GoTo /D (section*.29) >> +/Rect [136.757 310.577 410.65 321.425] +/A << /S /GoTo /D (subsubsection.3.2.3) >> >> -% 611 0 obj +% 619 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [168.638 131.409 197.529 140.32] -/A << /S /GoTo /D (section*.30) >> +/Rect [136.757 298.486 444.603 309.334] +/A << /S /GoTo /D (subsubsection.3.2.4) >> >> -% 612 0 obj +% 641 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [168.638 119.329 186.183 127.742] -/A << /S /GoTo /D (section*.31) >> ->> -% 617 0 obj -<< -/D [615 0 R /XYZ 98.895 753.953 null] ->> -% 618 0 obj -<< -/D [615 0 R /XYZ 99.895 724.062 null] ->> -% 614 0 obj -<< -/Font << /F16 558 0 R /F27 560 0 R /F8 561 0 R >> -/ProcSet [ /PDF /Text ] ->> -% 668 0 obj -<< -/Type /Page -/Contents 669 0 R -/Resources 667 0 R -/MediaBox [0 0 595.276 841.89] -/Parent 562 0 R -/Annots [ 613 0 R 620 0 R 621 0 R 622 0 R 623 0 R 624 0 R 625 0 R 626 0 R 627 0 R 628 0 R 629 0 R 630 0 R 631 0 R 632 0 R 633 0 R 634 0 R 635 0 R 636 0 R 637 0 R 638 0 R 639 0 R 640 0 R 641 0 R 642 0 R 643 0 R 644 0 R 645 0 R 646 0 R 647 0 R 648 0 R 649 0 R 650 0 R 651 0 R 652 0 R 653 0 R 654 0 R 655 0 R 656 0 R 657 0 R 658 0 R 659 0 R 660 0 R 661 0 R 662 0 R 663 0 R 664 0 R 665 0 R ] +/Rect [98.899 288.468 199.716 297.114] +/A << /S /GoTo /D (subsubsection.3.2.4) >> >> -% 613 0 obj +% 620 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [219.447 703.195 259.342 713.546] -/A << /S /GoTo /D (section*.32) >> +/Rect [136.757 274.44 444.603 285.288] +/A << /S /GoTo /D (subsubsection.3.2.5) >> >> -% 620 0 obj +% 642 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [219.447 693.053 243.579 701.964] -/A << /S /GoTo /D (section*.33) >> +/Rect [98.899 262.484 238.044 273.068] +/A << /S /GoTo /D (subsubsection.3.2.5) >> >> % 621 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [164.653 680.973 318.825 689.884] -/A << /S /GoTo /D (subsection.3.4) >> +/Rect [136.757 250.393 429.161 261.242] +/A << /S /GoTo /D (subsubsection.3.2.6) >> >> % 622 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [164.653 666.956 277.397 677.805] -/A << /S /GoTo /D (subsection.3.5) >> +/Rect [136.757 238.302 384.927 249.151] +/A << /S /GoTo /D (subsubsection.3.2.7) >> >> % 623 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [149.709 644.831 285.838 655.679] -/A << /S /GoTo /D (section.4) >> +/Rect [136.757 226.211 330 237.06] +/A << /S /GoTo /D (subsubsection.3.2.8) >> >> % 624 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [164.653 632.751 220.931 643.599] -/A << /S /GoTo /D (section*.34) >> +/Rect [136.757 214.12 404.072 224.969] +/A << /S /GoTo /D (subsubsection.3.2.9) >> >> % 625 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [164.653 620.672 209.031 631.52] -/A << /S /GoTo /D (section*.35) >> +/Rect [136.757 202.029 371.765 212.878] +/A << /S /GoTo /D (subsubsection.3.2.10) >> >> % 626 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [164.653 608.592 212.96 619.44] -/A << /S /GoTo /D (section*.36) >> +/Rect [136.757 189.938 310.661 200.787] +/A << /S /GoTo /D (subsubsection.3.2.11) >> >> % 627 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [164.653 596.512 210.719 607.36] -/A << /S /GoTo /D (section*.37) >> +/Rect [136.757 179.784 348.314 188.695] +/A << /S /GoTo /D (subsubsection.3.2.12) >> >> % 628 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [164.653 584.432 222.093 595.281] -/A << /S /GoTo /D (section*.38) >> +/Rect [136.757 165.756 303.247 176.604] +/A << /S /GoTo /D (subsubsection.3.2.13) >> >> % 629 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [164.653 572.353 212.933 583.201] -/A << /S /GoTo /D (section*.39) >> +/Rect [136.757 153.665 323.657 164.513] +/A << /S /GoTo /D (subsubsection.3.2.14) >> >> % 630 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [164.653 560.273 221.318 571.121] -/A << /S /GoTo /D (section*.40) >> +/Rect [136.757 141.574 310.91 152.422] +/A << /S /GoTo /D (subsubsection.3.2.15) >> >> % 631 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [164.653 548.193 212.933 559.042] -/A << /S /GoTo /D (section*.41) >> +/Rect [136.757 129.483 316.168 140.331] +/A << /S /GoTo /D (subsubsection.3.2.16) >> >> % 632 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [164.653 536.114 221.29 546.962] -/A << /S /GoTo /D (section*.42) >> +/Rect [136.757 117.392 386.676 128.24] +/A << /S /GoTo /D (subsubsection.3.2.17) >> +>> +% 637 0 obj +<< +/D [635 0 R /XYZ 98.895 753.953 null] +>> +% 638 0 obj +<< +/D [635 0 R /XYZ 99.895 724.062 null] +>> +% 634 0 obj +<< +/Font << /F16 582 0 R /F27 584 0 R /F8 585 0 R >> +/ProcSet [ /PDF /Text ] +>> +% 692 0 obj +<< +/Type /Page +/Contents 693 0 R +/Resources 691 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 586 0 R +/Annots [ 633 0 R 644 0 R 645 0 R 646 0 R 647 0 R 648 0 R 649 0 R 650 0 R 651 0 R 652 0 R 653 0 R 654 0 R 655 0 R 656 0 R 657 0 R 658 0 R 659 0 R 660 0 R 661 0 R 662 0 R 663 0 R 664 0 R 665 0 R 666 0 R 667 0 R 668 0 R 669 0 R 670 0 R 671 0 R 672 0 R 673 0 R 674 0 R 675 0 R 676 0 R 677 0 R 678 0 R 679 0 R 680 0 R 681 0 R 682 0 R 683 0 R 684 0 R 685 0 R 686 0 R 687 0 R 688 0 R 689 0 R ] >> % 633 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [164.653 524.034 212.933 534.882] -/A << /S /GoTo /D (section*.43) >> +/Rect [187.567 703.195 349.903 714.044] +/A << /S /GoTo /D (subsubsection.3.2.18) >> >> -% 634 0 obj +% 644 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [164.653 511.954 210.719 522.802] -/A << /S /GoTo /D (section*.44) >> +/Rect [187.567 693.053 299.038 701.964] +/A << /S /GoTo /D (subsubsection.3.2.19) >> >> -% 635 0 obj +% 645 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [164.653 499.875 211.3 510.723] -/A << /S /GoTo /D (section*.45) >> +/Rect [164.653 680.973 316.168 689.774] +/A << /S /GoTo /D (subsection.3.3) >> >> -% 636 0 obj +% 646 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [164.653 487.795 206.927 498.643] -/A << /S /GoTo /D (section*.46) >> +/Rect [187.567 668.894 290.708 677.805] +/A << /S /GoTo /D (subsubsection.3.3.1) >> >> -% 637 0 obj +% 647 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [149.709 467.607 290.134 476.518] -/A << /S /GoTo /D (section.5) >> +/Rect [187.567 654.877 443.997 665.725] +/A << /S /GoTo /D (subsubsection.3.3.2) >> >> -% 638 0 obj +% 648 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [164.653 453.59 203.496 464.438] -/A << /S /GoTo /D (section*.47) >> +/Rect [187.567 642.797 479.97 653.645] +/A << /S /GoTo /D (subsubsection.3.3.3) >> >> -% 639 0 obj +% 649 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [164.653 441.51 201.863 452.358] -/A << /S /GoTo /D (section*.48) >> +/Rect [187.567 632.654 361.885 641.565] +/A << /S /GoTo /D (subsubsection.3.3.4) >> >> -% 640 0 obj +% 650 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [164.653 429.43 212.933 440.279] -/A << /S /GoTo /D (section*.49) >> +/Rect [187.567 618.638 418.066 629.486] +/A << /S /GoTo /D (subsubsection.3.3.5) >> >> -% 641 0 obj +% 651 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [164.653 417.351 214.648 428.199] -/A << /S /GoTo /D (section*.50) >> +/Rect [187.567 606.558 349.903 617.406] +/A << /S /GoTo /D (subsubsection.3.3.6) >> >> -% 642 0 obj +% 652 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [149.709 395.225 302.58 406.074] -/A << /S /GoTo /D (section.6) >> +/Rect [164.653 596.415 318.825 605.326] +/A << /S /GoTo /D (subsection.3.4) >> >> -% 643 0 obj +% 653 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [164.653 383.146 205.71 393.994] -/A << /S /GoTo /D (section*.51) >> +/Rect [164.653 582.398 277.397 593.247] +/A << /S /GoTo /D (subsection.3.5) >> >> -% 644 0 obj +% 654 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [164.653 371.066 207.426 381.914] -/A << /S /GoTo /D (section*.52) >> +/Rect [149.709 560.273 285.838 571.121] +/A << /S /GoTo /D (section.4) >> >> -% 645 0 obj +% 655 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [164.653 358.986 209.639 369.834] -/A << /S /GoTo /D (section*.53) >> +/Rect [164.653 548.193 379.489 559.042] +/A << /S /GoTo /D (subsection.4.1) >> >> -% 646 0 obj +% 656 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [164.653 346.906 210.138 357.755] -/A << /S /GoTo /D (section*.54) >> +/Rect [164.653 536.114 303.648 546.962] +/A << /S /GoTo /D (subsection.4.2) >> >> -% 647 0 obj +% 657 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [164.653 334.827 210.996 345.675] -/A << /S /GoTo /D (section*.55) >> +/Rect [164.653 524.034 361.916 534.882] +/A << /S /GoTo /D (subsection.4.3) >> >> -% 648 0 obj +% 658 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [164.653 322.747 222.591 333.595] -/A << /S /GoTo /D (section*.56) >> +/Rect [164.653 511.954 352.963 522.802] +/A << /S /GoTo /D (subsection.4.4) >> >> -% 649 0 obj +% 659 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [164.653 310.667 205.212 321.516] -/A << /S /GoTo /D (section*.57) >> +/Rect [164.653 499.875 375.753 510.723] +/A << /S /GoTo /D (subsection.4.5) >> >> -% 650 0 obj +% 660 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [164.653 298.588 206.927 309.436] -/A << /S /GoTo /D (section*.58) >> +/Rect [164.653 487.795 328.334 498.643] +/A << /S /GoTo /D (subsection.4.6) >> >> -% 651 0 obj +% 661 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [164.653 286.508 209.141 297.356] -/A << /S /GoTo /D (section*.59) >> +/Rect [164.653 475.715 391.057 486.563] +/A << /S /GoTo /D (subsection.4.7) >> >> -% 652 0 obj +% 662 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [164.653 274.428 210.497 285.276] -/A << /S /GoTo /D (section*.60) >> +/Rect [164.653 463.635 328.334 474.484] +/A << /S /GoTo /D (subsection.4.8) >> >> -% 653 0 obj +% 663 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [164.653 262.349 204.132 273.197] -/A << /S /GoTo /D (section*.61) >> +/Rect [164.653 451.556 391.029 462.404] +/A << /S /GoTo /D (subsection.4.9) >> >> -% 654 0 obj +% 664 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [164.653 250.269 205.156 261.117] -/A << /S /GoTo /D (section*.62) >> +/Rect [164.653 439.476 361.625 450.324] +/A << /S /GoTo /D (subsection.4.10) >> >> -% 655 0 obj +% 665 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [164.653 238.189 206.872 249.037] -/A << /S /GoTo /D (section*.63) >> +/Rect [164.653 427.396 386.255 438.245] +/A << /S /GoTo /D (subsection.4.11) >> >> -% 656 0 obj +% 666 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [164.653 226.109 209.086 236.958] -/A << /S /GoTo /D (section*.64) >> +/Rect [164.653 415.317 427.324 426.165] +/A << /S /GoTo /D (subsection.4.12) >> >> -% 657 0 obj +% 667 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [164.653 214.03 210.442 224.878] -/A << /S /GoTo /D (section*.65) >> +/Rect [164.653 403.237 352.825 414.085] +/A << /S /GoTo /D (subsection.4.13) >> >> -% 658 0 obj +% 668 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [164.653 201.95 202.942 212.798] -/A << /S /GoTo /D (section*.66) >> +/Rect [164.653 391.157 331.129 402.005] +/A << /S /GoTo /D (subsection.4.14) >> >> -% 659 0 obj +% 669 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [164.653 189.87 231.978 200.719] -/A << /S /GoTo /D (section*.67) >> +/Rect [164.653 379.078 330.049 389.926] +/A << /S /GoTo /D (subsection.4.15) >> >> -% 660 0 obj +% 670 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [164.653 177.791 231.978 188.639] -/A << /S /GoTo /D (section*.68) >> +/Rect [164.653 366.998 333.536 377.846] +/A << /S /GoTo /D (subsection.4.16) >> >> -% 661 0 obj +% 671 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [164.653 165.711 226.233 176.559] -/A << /S /GoTo /D (section*.69) >> +/Rect [149.709 346.81 290.134 355.721] +/A << /S /GoTo /D (section.5) >> >> -% 662 0 obj +% 672 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [164.653 153.631 243.059 164.48] -/A << /S /GoTo /D (section*.70) >> +/Rect [164.653 332.793 360.214 343.641] +/A << /S /GoTo /D (subsection.5.1) >> >> -% 663 0 obj +% 673 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [164.653 141.552 219.038 152.4] -/A << /S /GoTo /D (section*.71) >> +/Rect [164.653 320.713 311.148 331.561] +/A << /S /GoTo /D (subsection.5.2) >> >> -% 664 0 obj +% 674 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [164.653 129.472 235.863 140.32] -/A << /S /GoTo /D (section*.72) >> +/Rect [164.653 308.633 377.649 319.482] +/A << /S /GoTo /D (subsection.5.3) >> >> -% 665 0 obj +% 675 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [164.653 117.392 243.64 128.24] -/A << /S /GoTo /D (section*.73) >> ->> -% 670 0 obj -<< -/D [668 0 R /XYZ 149.705 753.953 null] +/Rect [164.653 296.554 379.849 307.402] +/A << /S /GoTo /D (subsection.5.4) >> >> -% 667 0 obj +% 676 0 obj << -/Font << /F8 561 0 R /F27 560 0 R >> -/ProcSet [ /PDF /Text ] +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [149.709 274.428 302.58 285.276] +/A << /S /GoTo /D (section.6) >> >> -% 714 0 obj +% 677 0 obj << -/Type /Page -/Contents 715 0 R -/Resources 713 0 R -/MediaBox [0 0 595.276 841.89] -/Parent 562 0 R -/Annots [ 666 0 R 671 0 R 672 0 R 673 0 R 674 0 R 675 0 R 676 0 R 677 0 R 678 0 R 679 0 R 680 0 R 681 0 R 682 0 R 683 0 R 684 0 R 685 0 R 686 0 R 687 0 R 688 0 R 689 0 R 690 0 R 691 0 R 692 0 R 693 0 R 694 0 R 695 0 R 696 0 R 697 0 R 698 0 R 699 0 R 700 0 R 701 0 R 702 0 R 703 0 R 704 0 R 705 0 R 706 0 R 707 0 R 708 0 R 709 0 R 710 0 R 711 0 R 712 0 R ] +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [164.653 262.349 409.502 273.197] +/A << /S /GoTo /D (subsection.6.1) >> >> -% 666 0 obj +% 678 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [113.843 703.195 182.591 714.044] -/A << /S /GoTo /D (section*.74) >> +/Rect [164.653 250.269 424.556 261.117] +/A << /S /GoTo /D (subsection.6.2) >> >> -% 671 0 obj +% 679 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [113.843 691.24 176.558 702.088] -/A << /S /GoTo /D (section*.75) >> +/Rect [164.653 238.189 441.188 249.037] +/A << /S /GoTo /D (subsection.6.3) >> >> -% 672 0 obj +% 680 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [113.843 679.285 158 690.133] -/A << /S /GoTo /D (section*.76) >> +/Rect [164.653 226.109 402.86 236.958] +/A << /S /GoTo /D (subsection.6.4) >> >> -% 673 0 obj +% 681 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [113.843 667.33 183.443 678.178] -/A << /S /GoTo /D (section*.77) >> +/Rect [164.653 214.03 397.242 224.878] +/A << /S /GoTo /D (subsection.6.5) >> >> -% 674 0 obj +% 682 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [98.899 647.349 264.868 656.26] -/A << /S /GoTo /D (section.7) >> +/Rect [164.653 201.95 458.014 212.798] +/A << /S /GoTo /D (subsection.6.6) >> >> -% 675 0 obj +% 683 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [113.843 633.457 149.366 644.305] -/A << /S /GoTo /D (section*.78) >> +/Rect [164.653 189.87 355.371 200.719] +/A << /S /GoTo /D (subsection.6.7) >> >> -% 676 0 obj +% 684 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [113.843 621.502 150.749 632.35] -/A << /S /GoTo /D (section*.79) >> +/Rect [164.653 177.791 448.273 188.639] +/A << /S /GoTo /D (subsection.6.8) >> >> -% 677 0 obj +% 685 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [113.843 609.547 150.749 620.395] -/A << /S /GoTo /D (section*.80) >> +/Rect [164.653 165.711 385.896 176.559] +/A << /S /GoTo /D (subsection.6.9) >> >> -% 678 0 obj +% 686 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [113.843 597.591 193.91 608.44] -/A << /S /GoTo /D (section*.81) >> +/Rect [164.653 153.631 343.111 164.48] +/A << /S /GoTo /D (subsection.6.10) >> >> -% 679 0 obj +% 687 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [113.843 585.636 170.968 596.484] -/A << /S /GoTo /D (section*.82) >> +/Rect [164.653 141.552 461.805 152.4] +/A << /S /GoTo /D (subsection.6.11) >> >> -% 680 0 obj +% 688 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [113.843 573.681 160.989 584.529] -/A << /S /GoTo /D (section*.83) >> +/Rect [164.653 129.472 352.465 140.32] +/A << /S /GoTo /D (subsection.6.12) >> >> -% 681 0 obj +% 689 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [113.843 561.726 163.839 572.574] -/A << /S /GoTo /D (section*.84) >> +/Rect [164.653 117.392 380.112 128.24] +/A << /S /GoTo /D (subsection.6.13) >> >> -% 682 0 obj +% 694 0 obj +<< +/D [692 0 R /XYZ 149.705 753.953 null] +>> +% 691 0 obj +<< +/Font << /F8 585 0 R /F27 584 0 R >> +/ProcSet [ /PDF /Text ] +>> +% 737 0 obj +<< +/Type /Page +/Contents 738 0 R +/Resources 736 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 586 0 R +/Annots [ 690 0 R 695 0 R 696 0 R 697 0 R 698 0 R 699 0 R 700 0 R 701 0 R 702 0 R 703 0 R 704 0 R 705 0 R 706 0 R 707 0 R 708 0 R 709 0 R 710 0 R 740 0 R 711 0 R 712 0 R 713 0 R 714 0 R 715 0 R 716 0 R 717 0 R 718 0 R 719 0 R 720 0 R 721 0 R 722 0 R 723 0 R 724 0 R 725 0 R 726 0 R 727 0 R 728 0 R 729 0 R 730 0 R 741 0 R 731 0 R 732 0 R 742 0 R 733 0 R 743 0 R 734 0 R 744 0 R ] +>> +% 690 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [113.843 549.771 157.972 560.619] -/A << /S /GoTo /D (section*.85) >> +/Rect [113.843 703.195 307.025 714.044] +/A << /S /GoTo /D (subsection.6.14) >> >> -% 683 0 obj +% 695 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [113.843 537.816 157.446 548.664] -/A << /S /GoTo /D (section*.86) >> +/Rect [113.843 690.813 289.396 701.661] +/A << /S /GoTo /D (subsection.6.15) >> >> -% 684 0 obj +% 696 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [113.843 525.86 152.188 536.709] -/A << /S /GoTo /D (section*.87) >> +/Rect [113.843 678.431 386.92 689.279] +/A << /S /GoTo /D (subsection.6.16) >> >> -% 685 0 obj +% 697 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [113.843 513.905 152.963 524.753] -/A << /S /GoTo /D (section*.88) >> +/Rect [113.843 666.049 366.405 676.897] +/A << /S /GoTo /D (subsection.6.17) >> >> endstream endobj -720 0 obj +759 0 obj << -/Length 79 +/Length 4396 >> stream 0 g 0 G 0 g 0 G -0 g 0 G +0 0 1 rg 0 0 1 RG BT -/F8 9.9626 Tf 318.548 90.438 Td [(iv)]TJ -0 g 0 G +/F8 9.9626 Tf 165.649 706.129 Td [(9.4)-1022(mm)]TJ ET - -endstream +q +1 0 0 1 205.765 706.328 cm +[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +Q +BT +/F8 9.9626 Tf 208.754 706.129 Td [(arra)28(y)]TJ +ET +q +1 0 0 1 232.1 706.328 cm +[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +Q +BT +/F8 9.9626 Tf 235.089 706.129 Td [(read)-346(|)-346(Read)-346(a)-347(dense)-346(arra)28(y)-346(from)-346(a)-346(\014le)-347(in)-346(the)-346(Matrix-)]TJ -46.526 -11.955 Td [(Mark)28(et)-334(f)1(ormat)]TJ +0 g 0 G + [-945(.)-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(137)]TJ +0 g 0 G +0 0 1 rg 0 0 1 RG + -22.914 -11.955 Td [(9.5)-1022(mm)]TJ +ET +q +1 0 0 1 205.765 682.418 cm +[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +Q +BT +/F8 9.9626 Tf 208.754 682.219 Td [(mat)]TJ +ET +q +1 0 0 1 226.51 682.418 cm +[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +Q +BT +/F8 9.9626 Tf 229.498 682.219 Td [(write)-368(|)-367(W)83(rite)-368(a)-367(sparse)-368(matrix)-367(to)-368(a)-368(\014le)-367(in)-368(the)-367(Matrix-)]TJ -40.935 -11.956 Td [(Mark)28(et)-334(f)1(ormat)]TJ +0 g 0 G + [-945(.)-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(138)]TJ +0 g 0 G +0 0 1 rg 0 0 1 RG + -22.914 -11.955 Td [(9.6)-1022(mm)]TJ +ET +q +1 0 0 1 205.765 658.507 cm +[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +Q +BT +/F8 9.9626 Tf 208.754 658.308 Td [(arra)28(y)]TJ +ET +q +1 0 0 1 232.1 658.507 cm +[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +Q +BT +/F8 9.9626 Tf 235.089 658.308 Td [(write)-297(|)-296(W)83(rite)-297(a)-296(dense)-297(arra)28(y)-297(from)-296(a)-297(\014le)-297(in)-296(the)-297(Matrix-)]TJ -46.526 -11.955 Td [(Mark)28(et)-334(f)1(ormat)]TJ +0 g 0 G + [-945(.)-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(139)]TJ +0 g 0 G +0 0 1 rg 0 0 1 RG +/F27 9.9626 Tf -37.858 -21.918 Td [(10)-350(Preconditioner)-383(routines)]TJ +0 g 0 G + [-19367(140)]TJ +0 0 1 rg 0 0 1 RG +/F8 9.9626 Tf 14.944 -11.955 Td [(10.1)-522(init)-333(|)-334(Initialize)-333(a)-333(preconditioner)]TJ +0 g 0 G + [-694(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ +0 g 0 G + [-584(141)]TJ +0 g 0 G +0 0 1 rg 0 0 1 RG + 0 -11.955 Td [(10.2)-522(build)-333(|)-334(Builds)-333(a)-333(preconditioner)]TJ +0 g 0 G + [-1008(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ +0 g 0 G + [-583(1)-1(42)]TJ +0 g 0 G +0 0 1 rg 0 0 1 RG + 0 -11.955 Td [(10.3)-522(apply)-333(|)-334(Preconditioner)-333(application)-333(routine)]TJ +0 g 0 G + [-677(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ +0 g 0 G + [-584(144)]TJ +0 g 0 G +0 0 1 rg 0 0 1 RG + 0 -11.956 Td [(10.4)-522(descr)-334(|)-333(Prin)28(ts)-333(a)-334(description)-333(of)-333(curren)28(t)-334(preconditioner)]TJ +0 g 0 G + [-705(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ +0 g 0 G + [-583(145)]TJ +0 g 0 G +0 0 1 rg 0 0 1 RG + 0 -11.955 Td [(10.5)-522(clone)-334(|)-333(clone)-333(curren)28(t)-334(preconditioner)]TJ +0 g 0 G + [-466(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ +0 g 0 G + [-583(146)]TJ +0 g 0 G +0 0 1 rg 0 0 1 RG + 0 -11.955 Td [(10.6)-522(free)-334(|)-333(F)83(ree)-333(a)-333(preconditioner)]TJ +0 g 0 G + [-1008(.)-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(147)]TJ +0 g 0 G +0 0 1 rg 0 0 1 RG +/F27 9.9626 Tf -14.944 -21.918 Td [(11)-350(Iterativ)32(e)-384(M)1(etho)-32(ds)]TJ +0 g 0 G + [-22176(148)]TJ +0 0 1 rg 0 0 1 RG +/F8 9.9626 Tf 14.944 -11.955 Td [(11.1)-522(psb)]TJ +ET +q +1 0 0 1 204.16 519.03 cm +[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +Q +BT +/F8 9.9626 Tf 207.149 518.831 Td [(krylo)28(v)-333(|)-334(Krylo)28(v)-333(Metho)-28(ds)-333(Driv)28(e)-1(r)-333(Routine)]TJ +0 g 0 G + [-317(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ +0 g 0 G + [-584(149)]TJ +0 g 0 G +0 g 0 G + 111.399 -428.393 Td [(iv)]TJ +0 g 0 G +ET + +endstream endobj -734 0 obj +776 0 obj << /Length 8518 >> @@ -3579,7 +3616,7 @@ ET endstream endobj -754 0 obj +796 0 obj << /Length 5579 >> @@ -3626,20 +3663,20 @@ ET endstream endobj -750 0 obj +792 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (./figures/psblas.pdf) /PTEX.PageNumber 1 -/PTEX.InfoDict 757 0 R +/PTEX.InfoDict 799 0 R /BBox [0 0 197 215] /Resources << /ProcSet [ /PDF /Text ] /ExtGState << -/R7 758 0 R ->>/Font << /R8 759 0 R>> +/R7 800 0 R +>>/Font << /R8 801 0 R>> >> /Length 898 /Filter /FlateDecode @@ -3660,7 +3697,7 @@ x «Ͻ'ƒÇ›ÇÇù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 -761 0 obj +803 0 obj << /Filter /FlateDecode /Subtype /Type1C @@ -3680,7 +3717,7 @@ p 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 -767 0 obj +809 0 obj << /Length 8854 >> @@ -3729,7 +3766,7 @@ ET endstream endobj -783 0 obj +825 0 obj << /Length 5346 >> @@ -3806,20 +3843,20 @@ ET endstream endobj -780 0 obj +822 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (./figures/points.pdf) /PTEX.PageNumber 1 -/PTEX.InfoDict 786 0 R +/PTEX.InfoDict 828 0 R /BBox [0 0 274 308] /Resources << /ProcSet [ /PDF /Text ] /ExtGState << -/R7 787 0 R ->>/Font << /R8 788 0 R>> +/R7 829 0 R +>>/Font << /R8 830 0 R>> >> /Length 1397 /Filter /FlateDecode @@ -3829,2323 +3866,1692 @@ 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 -795 0 obj +745 0 obj << -/Length 5462 +/Type /ObjStm +/N 100 +/First 919 +/Length 15247 >> stream -0 g 0 G -0 g 0 G -0 g 0 G -BT -/F27 9.9626 Tf 99.895 706.129 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 -24.208 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 -18.081 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 -18.082 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 -18.081 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 -18.082 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 -24.207 Td [(Preconditioner)-383(routi)-1(n)1(es)]TJ -0 g 0 G -0 g 0 G - 0 -24.208 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)-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 -23.137 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.955 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 -23.137 Td [(\017)]TJ -0 g 0 G -/F8 9.9626 Tf 9.963 0 Td [(all)-333(sym)27(b)-27(ols)-334(\050i.e.)-444(subroutine)-333(names,)-334(data)-333(t)28(yp)-28(es...\051)-444(are)-334(pre\014xed)-333(b)28(y)]TJ/F30 9.9626 Tf 286.233 0 Td [(psb_)]TJ -0 g 0 G -/F14 9.9626 Tf -296.196 -24.208 Td [(\017)]TJ -0 g 0 G -/F8 9.9626 Tf 9.963 0 Td [(all)-333(data)-334(t)28(yp)-28(e)-333(names)-333(are)-334(su\016xed)-333(b)28(y)]TJ/F30 9.9626 Tf 156.22 0 Td [(_type)]TJ -0 g 0 G -/F14 9.9626 Tf -166.183 -24.208 Td [(\017)]TJ -0 g 0 G -/F8 9.9626 Tf 9.963 0 Td [(all)-333(constan)27(ts)-333(are)-333(su\016xed)-334(b)28(y)]TJ/F30 9.9626 Tf 124.727 0 Td [(_)]TJ -0 g 0 G -/F14 9.9626 Tf -134.69 -24.208 Td [(\017)]TJ -0 g 0 G -/F8 9.9626 Tf 9.963 0 Td [(all)-390(top-lev)28(e)-1(l)-390(subroutine)-390(names)-390(follo)28(w)-391(the)-390(rule)]TJ/F30 9.9626 Tf 203.944 0 Td [(psb_xxname)]TJ/F8 9.9626 Tf 56.192 0 Td [(where)]TJ/F30 9.9626 Tf 29.376 0 Td [(xx)]TJ/F8 9.9626 Tf 14.348 0 Td [(can)]TJ -303.86 -11.955 Td [(b)-28(e)-333(either:)]TJ -0 g 0 G -/F27 9.9626 Tf 11.208 -24.208 Td [({)]TJ -0 g 0 G -/F30 9.9626 Tf 10.71 0 Td [(ge)]TJ/F8 9.9626 Tf 10.461 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.171 -18.081 Td [({)]TJ -0 g 0 G -/F30 9.9626 Tf 10.71 0 Td [(sp)]TJ/F8 9.9626 Tf 10.461 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.171 -18.081 Td [({)]TJ -0 g 0 G -/F30 9.9626 Tf 10.71 0 Td [(cd)]TJ/F8 9.9626 Tf 10.461 0 Td [(:)-444(the)-334(routine)-333(is)-333(related)-334(to)-333(comm)28(unication)-334(d)1(e)-1(scriptor)-333(\050see)]TJ -0 0 1 rg 0 0 1 RG - [-333(3)]TJ -0 g 0 G - [(\051.)]TJ -32.379 -24.208 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(ars)-1(e)-342(matrices)-343(and)-343(comm)28(unication)-343(de-)]TJ 0 -11.956 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(names)-334(for)-333(b)-28(oth)-333(real)-333(and)-334(complex)-333(data.)]TJ -24.907 -23.137 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 -23.137 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(the)-228(v)56(alue)-229(m)28(ust)-228(b)-28(e)-228(the)-228(same)-229(on)-228(all)-228(pro)-28(cesses)-229(part)1(ic)-1(i)1(-)]TJ -9.831 -11.955 Td [(pating)-253(i)1(n)-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 -24.208 Td [(lo)-32(cal)]TJ -0 g 0 G -/F8 9.9626 Tf 28.055 0 Td [(Eac)28(h)-334(p)1(ro)-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 -23.137 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 -24.059 Td [(psb_version_string_)]TJ/F8 9.9626 Tf -122.168 -24.059 Td [(whose)-333(curren)27(t)-333(v)56(alue)-334(is)]TJ/F30 9.9626 Tf 99.793 0 Td [(3.4.0)]TJ -0 g 0 G -/F8 9.9626 Tf 69.572 -29.888 Td [(5)]TJ -0 g 0 G -ET - -endstream -endobj -800 0 obj +698 0 699 153 700 306 701 459 702 611 703 764 704 917 705 1069 706 1222 707 1374 +708 1527 709 1673 710 1825 740 1977 711 2128 712 2280 713 2432 714 2584 715 2735 716 2886 +717 3037 718 3189 719 3341 720 3493 721 3645 722 3798 723 3951 724 4103 725 4256 726 4409 +727 4555 728 4707 729 4859 730 5011 741 5163 731 5314 732 5460 742 5611 733 5762 743 5914 +734 6065 744 6217 739 6367 736 6423 758 6502 735 6748 761 6900 746 7052 762 7204 747 7356 +763 7508 748 7660 749 7807 750 7960 751 8112 752 8265 753 8418 754 8570 755 8723 756 8870 +760 9023 757 9080 775 9159 764 9365 765 9514 766 9665 767 9817 768 9971 769 10122 770 10271 +771 10420 772 10568 773 10716 7 10864 774 10918 795 11010 799 11160 800 11401 801 11443 802 11829 +789 12129 790 12274 791 12422 11 12569 798 12625 794 12680 808 12800 793 12950 805 13096 806 13245 +810 13393 15 13449 816 13504 818 13561 807 13618 824 13813 828 13955 829 14069 830 14111 820 14180 +% 698 0 obj << -/Length 8659 +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [113.843 653.667 367.083 664.515] +/A << /S /GoTo /D (subsection.6.18) >> >> -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.928 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.956 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.955 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.245 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.245 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.494 Td [(ro)28(w)]TJ/F9 4.9813 Tf 15.801 -0.997 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.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.244 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.956 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.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.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.495 Td [(ro)28(w)]TJ/F9 4.9813 Tf 15.802 -0.996 Td [(i)]TJ/F8 9.9626 Tf 5.985 2.491 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.956 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.955 Td [(required)-333(to)-334(ac)28(hiev)28(e)-333(this)-334(ob)-55(jectiv)28(e)-1(.)]TJ 14.944 -12.245 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 -0 g 0 G - 12.177 -20.793 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 -21.082 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 -21.083 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 -21.082 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 -21.083 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 -21.082 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.519 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.519 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 -29.888 Td [(6)]TJ -0 g 0 G -ET - -endstream -endobj -814 0 obj +% 699 0 obj << -/Length 7719 +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [113.843 641.285 211.621 652.133] +/A << /S /GoTo /D (subsection.6.19) >> >> -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)-382(the)-382(preconditioner)-382(to)-382(b)-28(e)-382(used)-382(with)]TJ/F30 9.9626 Tf 205.032 0 Td [(prec%init)]TJ/F8 9.9626 Tf 50.879 0 Td [(and)-382(build)-382(it)-382(with)]TJ/F30 9.9626 Tf -243.181 -11.955 Td [(prec%build)]TJ -0 0 1 rg 0 0 1 RG -/F7 6.9738 Tf 52.303 3.615 Td [(3)]TJ -0 g 0 G -/F8 9.9626 Tf 4.47 -3.615 Td [(.)]TJ -0 g 0 G - -69.503 -22.397 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 -21.778 Td [(This)-333(is)-334(the)-333(structure)-333(of)-334(the)-333(sample)-333(programs)-334(in)-333(the)-333(directory)]TJ/F30 9.9626 Tf 269.435 0 Td [(test/pargen/)]TJ/F8 9.9626 Tf 62.764 0 Td [(.)]TJ -317.255 -12.573 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 -21.779 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 -22.397 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 -22.396 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.955 Td [(with)]TJ/F30 9.9626 Tf 22.693 0 Td [(psb_cdins)]TJ -0 g 0 G -/F8 9.9626 Tf -35.423 -22.397 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 -22.396 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 -22.396 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 -22.397 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.955 Td [(also)-333(zero)-334(out)-333(the)-333(dense)-334(v)28(ectors;)]TJ -0 g 0 G - -18.265 -17.176 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 -17.176 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 -17.176 Td [(\050d\051)]TJ -0 g 0 G - [-500(Cho)-28(ose)-333(and)-333(build)-334(pr)1(e)-1(condi)1(tioner)-334(with)]TJ/F30 9.9626 Tf 186.357 0 Td [(prec%init)]TJ/F8 9.9626 Tf 50.394 0 Td [(and)]TJ/F30 9.9626 Tf 19.372 0 Td [(prec%build)]TJ -0 g 0 G -/F8 9.9626 Tf -255.016 -17.175 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 -22.397 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 -12.573 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.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.956 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 -12.573 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.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.956 Td [(on)-450(the)-450(problem)-450(structure.)-794(A)28(t)-450(the)-450(opp)-27(os)-1(i)1(te)-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(ev)27(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 -0 g 0 G -ET -q -1 0 0 1 99.895 139.245 cm -[]0 d 0 J 0.398 w 0 0 m 137.482 0 l S -Q -BT -/F32 5.9776 Tf 110.987 132.603 Td [(3)]TJ/F31 7.9701 Tf 4.151 -2.813 Td [(The)-323(subroutine)-324(st)30(yle)]TJ/F45 7.9701 Tf 78.401 0 Td [(psb)]TJ -ET -q -1 0 0 1 206.75 129.989 cm -[]0 d 0 J 0.398 w 0 0 m 2.541 0 l S -Q -BT -/F45 7.9701 Tf 209.29 129.79 Td [(precinit)]TJ/F31 7.9701 Tf 36.45 0 Td [(and)]TJ/F45 7.9701 Tf 16.22 0 Td [(psb)]TJ -ET -q -1 0 0 1 275.171 129.989 cm -[]0 d 0 J 0.398 w 0 0 m 2.541 0 l S -Q -BT -/F45 7.9701 Tf 277.711 129.79 Td [(precbl)]TJ/F31 7.9701 Tf 27.982 0 Td [(are)-323(still)-324(supp)-29(orted)-323(for)-324(ba)1(c)29(kw)30(ard)-324(com-)]TJ -205.798 -9.464 Td [(patibilit)29(y)]TJ -0 g 0 G -0 g 0 G -/F8 9.9626 Tf 169.365 -29.888 Td [(7)]TJ -0 g 0 G -ET - -endstream -endobj -717 0 obj -<< -/Type /ObjStm -/N 100 -/First 910 -/Length 12961 ->> -stream -686 0 687 148 688 297 689 444 690 593 691 742 692 891 693 1037 694 1186 695 1335 -696 1484 697 1633 698 1779 699 1926 700 2076 701 2225 702 2375 703 2525 704 2674 705 2821 -706 2971 707 3119 708 3269 709 3418 710 3567 711 3716 712 3862 716 4011 713 4067 719 4146 -721 4260 718 4317 733 4383 722 4589 723 4738 724 4889 725 5041 726 5195 727 5346 728 5495 -729 5644 730 5792 731 5940 7 6088 732 6142 753 6234 757 6384 758 6625 759 6667 760 7053 -747 7353 748 7498 749 7646 11 7793 756 7849 752 7904 766 8024 751 8174 763 8320 764 8469 -768 8617 15 8673 774 8728 776 8785 765 8842 782 9037 786 9179 787 9293 788 9335 778 9404 -779 9552 784 9700 785 9757 19 9814 781 9870 794 10029 791 10171 792 10317 796 10464 793 10520 -799 10625 801 10739 23 10796 803 10852 804 10909 805 10966 806 11022 807 11079 808 11135 809 11190 -810 11247 798 11304 813 11434 797 11568 815 11716 816 11772 817 11828 818 11884 819 11939 820 11995 -% 686 0 obj +% 700 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [113.843 501.95 151.026 512.798] -/A << /S /GoTo /D (section*.89) >> +/Rect [113.843 628.903 228.447 639.751] +/A << /S /GoTo /D (subsection.6.20) >> >> -% 687 0 obj +% 701 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [113.843 489.995 152.963 500.843] -/A << /S /GoTo /D (section*.90) >> +/Rect [113.843 616.52 204.426 627.369] +/A << /S /GoTo /D (subsection.6.21) >> >> -% 688 0 obj +% 702 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [113.843 478.04 153.24 488.888] -/A << /S /GoTo /D (section*.91) >> +/Rect [113.843 604.138 221.252 614.987] +/A << /S /GoTo /D (subsection.6.22) >> >> -% 689 0 obj +% 703 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [113.843 466.085 157.142 476.933] -/A << /S /GoTo /D (section*.92) >> +/Rect [113.843 591.756 379.049 602.604] +/A << /S /GoTo /D (subsection.6.23) >> >> -% 690 0 obj +% 704 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [113.843 454.129 149.421 464.978] -/A << /S /GoTo /D (section*.93) >> +/Rect [113.843 579.374 358.57 590.222] +/A << /S /GoTo /D (subsection.6.24) >> >> -% 691 0 obj +% 705 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [113.843 442.174 148.009 453.022] -/A << /S /GoTo /D (section*.94) >> +/Rect [113.843 566.438 374.261 578.394] +/A << /S /GoTo /D (subsection.6.25) >> >> -% 692 0 obj +% 706 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [98.899 420.256 190.188 431.105] -/A << /S /GoTo /D (section.8) >> +/Rect [113.843 554.61 284.166 565.458] +/A << /S /GoTo /D (subsection.6.26) >> >> -% 693 0 obj +% 707 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [113.843 408.301 167.188 419.149] -/A << /S /GoTo /D (section*.95) >> +/Rect [113.843 542.228 222.962 553.076] +/A << /S /GoTo /D (subsection.6.27) >> >> -% 694 0 obj +% 708 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [113.843 396.346 155.537 407.194] -/A << /S /GoTo /D (section*.96) >> +/Rect [98.899 521.535 264.868 530.446] +/A << /S /GoTo /D (section.7) >> >> -% 695 0 obj +% 709 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [113.843 384.391 202.129 395.239] -/A << /S /GoTo /D (section*.97) >> +/Rect [113.843 507.216 365.417 518.064] +/A << /S /GoTo /D (subsection.7.1) >> >> -% 696 0 obj +% 710 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [113.843 372.436 189.039 383.284] -/A << /S /GoTo /D (section*.98) >> +/Rect [113.843 494.834 444.603 505.682] +/A << /S /GoTo /D (subsection.7.2) >> >> -% 697 0 obj +% 740 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [98.899 352.455 156.061 361.366] -/A << /S /GoTo /D (section.9) >> +/Rect [98.899 484.816 160.612 493.229] +/A << /S /GoTo /D (subsection.7.2) >> >> -% 698 0 obj +% 711 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [113.843 340.5 149.061 349.411] -/A << /S /GoTo /D (section*.99) >> +/Rect [113.843 470.497 367.188 481.345] +/A << /S /GoTo /D (subsection.7.3) >> >> -% 699 0 obj +% 712 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [113.843 328.545 152.382 337.456] -/A << /S /GoTo /D (section*.100) >> +/Rect [113.843 458.114 358.186 468.963] +/A << /S /GoTo /D (subsection.7.4) >> >> -% 700 0 obj +% 713 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [113.843 316.59 175.617 325.501] -/A << /S /GoTo /D (section*.101) >> +/Rect [113.843 445.732 309.784 456.581] +/A << /S /GoTo /D (subsection.7.5) >> >> -% 701 0 obj +% 714 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [113.843 302.697 181.207 313.545] -/A << /S /GoTo /D (section*.102) >> +/Rect [113.843 433.35 277.164 444.198] +/A << /S /GoTo /D (subsection.7.6) >> >> -% 702 0 obj +% 715 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [113.843 292.679 178.938 301.325] -/A << /S /GoTo /D (section*.103) >> +/Rect [113.843 420.968 389.41 431.816] +/A << /S /GoTo /D (subsection.7.7) >> >> -% 703 0 obj +% 716 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [113.843 278.787 184.528 289.37] -/A << /S /GoTo /D (section*.104) >> +/Rect [113.843 408.586 289.95 419.434] +/A << /S /GoTo /D (subsection.7.8) >> >> -% 704 0 obj +% 717 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [98.899 258.806 234.475 267.717] -/A << /S /GoTo /D (section.10) >> +/Rect [113.843 396.204 263.327 407.052] +/A << /S /GoTo /D (subsection.7.9) >> >> -% 705 0 obj +% 718 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [113.843 244.914 157.374 256.316] -/A << /S /GoTo /D (section*.105) >> +/Rect [113.843 383.822 241.645 394.67] +/A << /S /GoTo /D (subsection.7.10) >> >> -% 706 0 obj +% 719 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [113.843 232.959 164.57 244.36] -/A << /S /GoTo /D (section*.106) >> +/Rect [113.843 371.44 267.824 382.288] +/A << /S /GoTo /D (subsection.7.11) >> >> -% 707 0 obj +% 720 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [113.843 221.004 166.507 232.405] -/A << /S /GoTo /D (section*.107) >> +/Rect [113.843 359.057 263.95 369.906] +/A << /S /GoTo /D (subsection.7.12) >> >> -% 708 0 obj +% 721 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [113.843 209.048 164.653 220.45] -/A << /S /GoTo /D (section*.108) >> +/Rect [113.843 346.675 332.914 357.523] +/A << /S /GoTo /D (subsection.7.13) >> >> -% 709 0 obj +% 722 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [113.843 199.03 137.975 207.941] -/A << /S /GoTo /D (section*.109) >> +/Rect [113.843 334.293 331.253 345.141] +/A << /S /GoTo /D (subsection.7.14) >> >> -% 710 0 obj +% 723 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [113.843 185.138 158.232 196.54] -/A << /S /GoTo /D (section*.110) >> +/Rect [113.843 321.911 304.16 332.759] +/A << /S /GoTo /D (subsection.7.15) >> >> -% 711 0 obj +% 724 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [98.899 165.157 206.49 174.068] -/A << /S /GoTo /D (section.11) >> +/Rect [113.843 309.529 232.664 320.377] +/A << /S /GoTo /D (subsection.7.16) >> >> -% 712 0 obj +% 725 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [113.843 151.265 161.57 162.113] -/A << /S /GoTo /D (section*.111) >> ->> -% 716 0 obj -<< -/D [714 0 R /XYZ 98.895 753.953 null] ->> -% 713 0 obj -<< -/Font << /F8 561 0 R /F27 560 0 R >> -/ProcSet [ /PDF /Text ] ->> -% 719 0 obj -<< -/Type /Page -/Contents 720 0 R -/Resources 718 0 R -/MediaBox [0 0 595.276 841.89] -/Parent 562 0 R +/Rect [113.843 297.147 243.014 307.995] +/A << /S /GoTo /D (subsection.7.17) >> >> -% 721 0 obj +% 726 0 obj << -/D [719 0 R /XYZ 149.705 753.953 null] +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [98.899 274.517 190.188 285.365] +/A << /S /GoTo /D (section.8) >> >> -% 718 0 obj +% 727 0 obj << -/Font << /F8 561 0 R >> -/ProcSet [ /PDF /Text ] +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [113.843 262.135 387.611 272.983] +/A << /S /GoTo /D (subsection.8.1) >> >> -% 733 0 obj +% 728 0 obj << -/Type /Page -/Contents 734 0 R -/Resources 732 0 R -/MediaBox [0 0 595.276 841.89] -/Parent 736 0 R -/Annots [ 722 0 R 723 0 R 724 0 R 725 0 R 726 0 R 727 0 R 728 0 R 729 0 R 730 0 R 731 0 R ] +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [113.843 249.753 418.828 260.601] +/A << /S /GoTo /D (subsection.8.2) >> >> -% 722 0 obj +% 729 0 obj << /Type /Annot /Subtype /Link -/Border[0 0 0]/H/I/C[0 1 0] -/Rect [408.982 586.91 420.937 595.323] -/A << /S /GoTo /D (cite.metcalf) >> +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [113.843 237.371 397.563 248.219] +/A << /S /GoTo /D (subsection.8.3) >> >> -% 723 0 obj +% 730 0 obj << /Type /Annot /Subtype /Link -/Border[0 0 0]/H/I/C[0 1 0] -/Rect [277.684 514.913 289.639 523.326] -/A << /S /GoTo /D (cite.Sparse03) >> +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [113.843 224.989 444.603 235.837] +/A << /S /GoTo /D (subsection.8.4) >> >> -% 724 0 obj +% 741 0 obj << /Type /Annot /Subtype /Link -/Border[0 0 0]/H/I/C[0 1 0] -/Rect [265.763 502.958 272.737 511.371] -/A << /S /GoTo /D (cite.DesPat:11) >> +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [98.899 214.971 179.154 223.882] +/A << /S /GoTo /D (subsection.8.4) >> >> -% 725 0 obj +% 731 0 obj << /Type /Annot /Subtype /Link -/Border[0 0 0]/H/I/C[0 1 0] -/Rect [276.283 502.958 288.238 511.371] -/A << /S /GoTo /D (cite.RouXiaXu:11) >> +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [98.899 192.341 156.061 201.252] +/A << /S /GoTo /D (section.9) >> >> -% 726 0 obj +% 732 0 obj << /Type /Annot /Subtype /Link -/Border[0 0 0]/H/I/C[0 1 0] -/Rect [210.166 442.916 222.121 451.329] -/A << /S /GoTo /D (cite.machiels) >> +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [113.843 178.022 444.603 188.87] +/A << /S /GoTo /D (subsection.9.1) >> >> -% 727 0 obj +% 742 0 obj << /Type /Annot /Subtype /Link -/Border[0 0 0]/H/I/C[0 1 0] -/Rect [241.566 370.919 248.54 379.332] -/A << /S /GoTo /D (cite.sblas97) >> +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [98.899 166.067 201.182 176.915] +/A << /S /GoTo /D (subsection.9.1) >> >> -% 728 0 obj +% 733 0 obj << /Type /Annot /Subtype /Link -/Border[0 0 0]/H/I/C[0 1 0] -/Rect [252.056 370.919 259.03 379.332] -/A << /S /GoTo /D (cite.sblas02) >> +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [113.843 153.685 444.603 164.533] +/A << /S /GoTo /D (subsection.9.2) >> >> -% 729 0 obj +% 743 0 obj << /Type /Annot /Subtype /Link -/Border[0 0 0]/H/I/C[0 1 0] -/Rect [227.473 358.964 239.428 367.377] -/A << /S /GoTo /D (cite.BLAS1) >> +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [98.899 143.667 167.835 152.578] +/A << /S /GoTo /D (subsection.9.2) >> >> -% 730 0 obj +% 734 0 obj << /Type /Annot /Subtype /Link -/Border[0 0 0]/H/I/C[0 1 0] -/Rect [243.524 358.964 250.498 367.377] -/A << /S /GoTo /D (cite.BLAS2) >> +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [113.843 129.347 444.603 140.196] +/A << /S /GoTo /D (subsection.9.3) >> >> -% 731 0 obj +% 744 0 obj << /Type /Annot /Subtype /Link -/Border[0 0 0]/H/I/C[0 1 0] -/Rect [254.593 358.964 261.567 367.377] -/A << /S /GoTo /D (cite.BLAS3) >> +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [98.899 119.329 202.455 128.24] +/A << /S /GoTo /D (subsection.9.3) >> >> -% 7 0 obj +% 739 0 obj << -/D [733 0 R /XYZ 99.895 716.092 null] +/D [737 0 R /XYZ 98.895 753.953 null] >> -% 732 0 obj +% 736 0 obj << -/Font << /F16 558 0 R /F8 561 0 R /F17 735 0 R >> +/Font << /F8 585 0 R /F27 584 0 R >> /ProcSet [ /PDF /Text ] >> -% 753 0 obj +% 758 0 obj << /Type /Page -/Contents 754 0 R -/Resources 752 0 R +/Contents 759 0 R +/Resources 757 0 R /MediaBox [0 0 595.276 841.89] -/Parent 736 0 R -/Annots [ 747 0 R 748 0 R 749 0 R ] +/Parent 586 0 R +/Annots [ 735 0 R 761 0 R 746 0 R 762 0 R 747 0 R 763 0 R 748 0 R 749 0 R 750 0 R 751 0 R 752 0 R 753 0 R 754 0 R 755 0 R 756 0 R ] >> -% 757 0 obj +% 735 0 obj << -/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\)) +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [164.653 703.195 495.412 714.044] +/A << /S /GoTo /D (subsection.9.4) >> >> -% 758 0 obj +% 761 0 obj << -/Type /ExtGState -/OPM 1 +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [149.709 693.177 253.265 702.088] +/A << /S /GoTo /D (subsection.9.4) >> >> -% 759 0 obj +% 746 0 obj << -/BaseFont /JEJNJE+Times-Roman -/FontDescriptor 760 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 +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [164.653 679.285 495.412 690.133] +/A << /S /GoTo /D (subsection.9.5) >> >> -% 760 0 obj +% 762 0 obj << -/Type /FontDescriptor -/FontName /JEJNJE+Times-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 761 0 R +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [149.709 669.267 253.265 678.178] +/A << /S /GoTo /D (subsection.9.5) >> >> % 747 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [310.543 541.042 317.517 551.89] -/A << /S /GoTo /D (figure.1) >> +/Rect [164.653 655.375 495.412 666.223] +/A << /S /GoTo /D (subsection.9.6) >> >> -% 748 0 obj +% 763 0 obj << /Type /Annot /Subtype /Link -/Border[0 0 0]/H/I/C[0 1 0] -/Rect [446.018 471.248 452.992 479.661] -/A << /S /GoTo /D (cite.BLACS) >> +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [149.709 645.357 253.265 654.268] +/A << /S /GoTo /D (subsection.9.6) >> >> -% 749 0 obj +% 748 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [210.398 433.445 217.372 444.294] -/A << /S /GoTo /D (section.7) >> ->> -% 11 0 obj -<< -/D [753 0 R /XYZ 150.705 677.433 null] ->> -% 756 0 obj -<< -/D [753 0 R /XYZ 258.703 263.3 null] +/Rect [149.709 623.439 285.284 632.35] +/A << /S /GoTo /D (section.10) >> >> -% 752 0 obj +% 749 0 obj << -/Font << /F8 561 0 R /F16 558 0 R /F11 755 0 R >> -/XObject << /Im1 750 0 R >> -/ProcSet [ /PDF /Text ] +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [164.653 609.547 333.243 620.395] +/A << /S /GoTo /D (subsection.10.1) >> >> -% 766 0 obj +% 750 0 obj << -/Type /Page -/Contents 767 0 R -/Resources 765 0 R -/MediaBox [0 0 595.276 841.89] -/Parent 736 0 R -/Annots [ 751 0 R 763 0 R 764 0 R ] +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [164.653 597.591 330.116 608.44] +/A << /S /GoTo /D (subsection.10.2) >> >> % 751 0 obj << /Type /Annot /Subtype /Link -/Border[0 0 0]/H/I/C[0 1 0] -/Rect [219.5 609.491 231.455 617.904] -/A << /S /GoTo /D (cite.METIS) >> +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [164.653 585.636 379.901 596.484] +/A << /S /GoTo /D (subsection.10.3) >> >> -% 763 0 obj +% 752 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [210.854 546.467 217.316 558.506] -/A << /S /GoTo /D (Hfootnote.1) >> +/Rect [164.653 573.681 426.117 584.529] +/A << /S /GoTo /D (subsection.10.4) >> >> -% 764 0 obj +% 753 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [155.908 188.124 162.37 200.163] -/A << /S /GoTo /D (Hfootnote.2) >> +/Rect [164.653 561.726 351.01 572.574] +/A << /S /GoTo /D (subsection.10.5) >> >> -% 768 0 obj +% 754 0 obj << -/D [766 0 R /XYZ 98.895 753.953 null] +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [164.653 549.771 314.618 560.619] +/A << /S /GoTo /D (subsection.10.6) >> >> -% 15 0 obj +% 755 0 obj << -/D [766 0 R /XYZ 99.895 515.919 null] +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [149.709 529.79 257.299 538.701] +/A << /S /GoTo /D (section.11) >> >> -% 774 0 obj +% 756 0 obj << -/D [766 0 R /XYZ 115.138 167.688 null] +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [164.653 515.898 391.237 526.746] +/A << /S /GoTo /D (subsection.11.1) >> >> -% 776 0 obj +% 760 0 obj << -/D [766 0 R /XYZ 115.138 158.184 null] +/D [758 0 R /XYZ 149.705 753.953 null] >> -% 765 0 obj +% 757 0 obj << -/Font << /F8 561 0 R /F17 735 0 R /F30 769 0 R /F7 770 0 R /F16 558 0 R /F11 755 0 R /F10 771 0 R /F14 772 0 R /F27 560 0 R /F32 773 0 R /F31 775 0 R >> +/Font << /F8 585 0 R /F27 584 0 R >> /ProcSet [ /PDF /Text ] >> -% 782 0 obj +% 775 0 obj << /Type /Page -/Contents 783 0 R -/Resources 781 0 R +/Contents 776 0 R +/Resources 774 0 R /MediaBox [0 0 595.276 841.89] -/Parent 736 0 R -/Annots [ 778 0 R 779 0 R ] ->> -% 786 0 obj -<< -/Producer (ESP Ghostscript 815.03) -/CreationDate (D:20070123225315) -/ModDate (D:20070123225315) ->> -% 787 0 obj -<< -/Type /ExtGState -/OPM 1 +/Parent 778 0 R +/Annots [ 764 0 R 765 0 R 766 0 R 767 0 R 768 0 R 769 0 R 770 0 R 771 0 R 772 0 R 773 0 R ] >> -% 788 0 obj +% 764 0 obj << -/BaseFont /Times-Roman -/Type /Font -/Subtype /Type1 +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[0 1 0] +/Rect [408.982 586.91 420.937 595.323] +/A << /S /GoTo /D (cite.metcalf) >> >> -% 778 0 obj +% 765 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[0 1 0] -/Rect [294.665 637.885 301.639 646.297] -/A << /S /GoTo /D (cite.2007c) >> +/Rect [277.684 514.913 289.639 523.326] +/A << /S /GoTo /D (cite.Sparse03) >> >> -% 779 0 obj +% 766 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[0 1 0] -/Rect [305.735 637.885 312.709 646.297] -/A << /S /GoTo /D (cite.2007d) >> +/Rect [265.763 502.958 272.737 511.371] +/A << /S /GoTo /D (cite.DesPat:11) >> >> -% 784 0 obj +% 767 0 obj << -/D [782 0 R /XYZ 149.705 753.953 null] +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[0 1 0] +/Rect [276.283 502.958 288.238 511.371] +/A << /S /GoTo /D (cite.RouXiaXu:11) >> >> -% 785 0 obj +% 768 0 obj << -/D [782 0 R /XYZ 303.562 347.015 null] +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[0 1 0] +/Rect [210.166 442.916 222.121 451.329] +/A << /S /GoTo /D (cite.machiels) >> >> -% 19 0 obj +% 769 0 obj << -/D [782 0 R /XYZ 150.705 272.271 null] +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[0 1 0] +/Rect [241.566 370.919 248.54 379.332] +/A << /S /GoTo /D (cite.sblas97) >> >> -% 781 0 obj +% 770 0 obj << -/Font << /F27 560 0 R /F8 561 0 R /F14 772 0 R /F11 755 0 R /F10 771 0 R /F16 558 0 R >> -/XObject << /Im2 780 0 R >> -/ProcSet [ /PDF /Text ] +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[0 1 0] +/Rect [252.056 370.919 259.03 379.332] +/A << /S /GoTo /D (cite.sblas02) >> >> -% 794 0 obj +% 771 0 obj << -/Type /Page -/Contents 795 0 R -/Resources 793 0 R -/MediaBox [0 0 595.276 841.89] -/Parent 736 0 R -/Annots [ 791 0 R 792 0 R ] +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[0 1 0] +/Rect [227.473 358.964 239.428 367.377] +/A << /S /GoTo /D (cite.BLAS1) >> >> -% 791 0 obj +% 772 0 obj << /Type /Annot /Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [406.358 354.515 413.331 366.47] -/A << /S /GoTo /D (section.3) >> +/Border[0 0 0]/H/I/C[0 1 0] +/Rect [243.524 358.964 250.498 367.377] +/A << /S /GoTo /D (cite.BLAS2) >> >> -% 792 0 obj +% 773 0 obj << /Type /Annot /Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [173.863 318.352 180.837 330.307] -/A << /S /GoTo /D (section.6) >> +/Border[0 0 0]/H/I/C[0 1 0] +/Rect [254.593 358.964 261.567 367.377] +/A << /S /GoTo /D (cite.BLAS3) >> >> -% 796 0 obj +% 7 0 obj << -/D [794 0 R /XYZ 98.895 753.953 null] +/D [775 0 R /XYZ 99.895 716.092 null] >> -% 793 0 obj +% 774 0 obj << -/Font << /F27 560 0 R /F8 561 0 R /F14 772 0 R /F30 769 0 R >> +/Font << /F16 582 0 R /F8 585 0 R /F17 777 0 R >> /ProcSet [ /PDF /Text ] >> -% 799 0 obj +% 795 0 obj << /Type /Page -/Contents 800 0 R -/Resources 798 0 R +/Contents 796 0 R +/Resources 794 0 R /MediaBox [0 0 595.276 841.89] -/Parent 736 0 R ->> -% 801 0 obj -<< -/D [799 0 R /XYZ 149.705 753.953 null] +/Parent 778 0 R +/Annots [ 789 0 R 790 0 R 791 0 R ] >> -% 23 0 obj +% 799 0 obj << -/D [799 0 R /XYZ 150.705 716.092 null] +/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\)) >> -% 803 0 obj +% 800 0 obj << -/D [799 0 R /XYZ 150.705 284.758 null] +/Type /ExtGState +/OPM 1 >> -% 804 0 obj +% 801 0 obj << -/D [799 0 R /XYZ 150.705 263.953 null] +/BaseFont /JEJNJE+Times-Roman +/FontDescriptor 802 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 >> -% 805 0 obj +% 802 0 obj << -/D [799 0 R /XYZ 150.705 242.87 null] +/Type /FontDescriptor +/FontName /JEJNJE+Times-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 803 0 R >> -% 806 0 obj +% 789 0 obj << -/D [799 0 R /XYZ 150.705 221.788 null] +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [310.543 541.042 317.517 551.89] +/A << /S /GoTo /D (figure.1) >> >> -% 807 0 obj +% 790 0 obj << -/D [799 0 R /XYZ 150.705 188.75 null] +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[0 1 0] +/Rect [446.018 471.248 452.992 479.661] +/A << /S /GoTo /D (cite.BLACS) >> >> -% 808 0 obj +% 791 0 obj << -/D [799 0 R /XYZ 150.705 167.6 null] +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [210.398 433.445 217.372 444.294] +/A << /S /GoTo /D (section.7) >> >> -% 809 0 obj +% 11 0 obj << -/D [799 0 R /XYZ 150.705 148.591 null] +/D [795 0 R /XYZ 150.705 677.433 null] >> -% 810 0 obj +% 798 0 obj << -/D [799 0 R /XYZ 150.705 132.072 null] +/D [795 0 R /XYZ 258.703 263.3 null] >> -% 798 0 obj +% 794 0 obj << -/Font << /F16 558 0 R /F8 561 0 R /F11 755 0 R /F30 769 0 R /F9 802 0 R /F17 735 0 R >> +/Font << /F8 585 0 R /F16 582 0 R /F11 797 0 R >> +/XObject << /Im1 792 0 R >> /ProcSet [ /PDF /Text ] >> -% 813 0 obj +% 808 0 obj << /Type /Page -/Contents 814 0 R -/Resources 812 0 R +/Contents 809 0 R +/Resources 807 0 R /MediaBox [0 0 595.276 841.89] -/Parent 831 0 R -/Annots [ 797 0 R ] +/Parent 778 0 R +/Annots [ 793 0 R 805 0 R 806 0 R ] >> -% 797 0 obj +% 793 0 obj << /Type /Annot /Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [176.109 690.964 182.571 703.28] -/A << /S /GoTo /D (Hfootnote.3) >> +/Border[0 0 0]/H/I/C[0 1 0] +/Rect [219.5 609.491 231.455 617.904] +/A << /S /GoTo /D (cite.METIS) >> >> -% 815 0 obj +% 805 0 obj << -/D [813 0 R /XYZ 98.895 753.953 null] +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [210.854 546.467 217.316 558.506] +/A << /S /GoTo /D (Hfootnote.1) >> >> -% 816 0 obj +% 806 0 obj << -/D [813 0 R /XYZ 99.895 716.092 null] +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [155.908 188.124 162.37 200.163] +/A << /S /GoTo /D (Hfootnote.2) >> >> -% 817 0 obj +% 810 0 obj << -/D [813 0 R /XYZ 99.895 686.739 null] +/D [808 0 R /XYZ 98.895 753.953 null] >> -% 818 0 obj +% 15 0 obj << -/D [813 0 R /XYZ 99.895 618.93 null] +/D [808 0 R /XYZ 99.895 515.919 null] >> -% 819 0 obj +% 816 0 obj << -/D [813 0 R /XYZ 99.895 596.257 null] +/D [808 0 R /XYZ 115.138 167.688 null] >> -% 820 0 obj +% 818 0 obj << -/D [813 0 R /XYZ 99.895 573.861 null] +/D [808 0 R /XYZ 115.138 158.184 null] >> - -endstream -endobj -836 0 obj +% 807 0 obj << -/Length 7473 +/Font << /F8 585 0 R /F17 777 0 R /F30 811 0 R /F7 812 0 R /F16 582 0 R /F11 797 0 R /F10 813 0 R /F14 814 0 R /F27 584 0 R /F32 815 0 R /F31 817 0 R >> +/ProcSet [ /PDF /Text ] +>> +% 824 0 obj +<< +/Type /Page +/Contents 825 0 R +/Resources 823 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 778 0 R +/Annots [ 820 0 R 821 0 R ] +>> +% 828 0 obj +<< +/Producer (ESP Ghostscript 815.03) +/CreationDate (D:20070123225315) +/ModDate (D:20070123225315) +>> +% 829 0 obj +<< +/Type /ExtGState +/OPM 1 +>> +% 830 0 obj +<< +/BaseFont /Times-Roman +/Type /Font +/Subtype /Type1 +>> +% 820 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[0 1 0] +/Rect [294.665 637.885 301.639 646.297] +/A << /S /GoTo /D (cite.2007c) >> +>> + +endstream +endobj +838 0 obj +<< +/Length 5462 >> stream 0 g 0 G 0 g 0 G -BT -/F27 9.9626 Tf 150.705 706.129 Td [(2.3.1)-1150(User-de\014ned)-383(index)-384(mappings)]TJ/F8 9.9626 Tf 0 -18.389 Td [(PSBLAS)-385(s)-1(u)1(pp)-28(orts)-386(user-de\014ned)-385(global)-386(to)-386(lo)-27(cal)-386(index)-386(mappings,)-398(sub)-56(ject)-385(to)-386(the)]TJ 0 -11.956 Td [(constrain)28(ts)-334(ou)1(tlined)-334(in)-333(sec.)]TJ -0 0 1 rg 0 0 1 RG - [-333(2.3)]TJ -0 g 0 G - [(:)]TJ 0 g 0 G - 12.176 -19.925 Td [(1.)]TJ +BT +/F27 9.9626 Tf 99.895 706.129 Td [(Data)-383(m)-1(anagemen)32(t)-383(and)-383(auxiliary)-384(routines)]TJ 0 g 0 G - [-500(The)-333(set)-334(of)-333(indices)-333(o)27(wned)-333(lo)-28(cally)-333(m)28(ust)-334(b)-27(e)-334(mapp)-28(ed)-333(to)-333(the)-334(set)-333(1)]TJ/F11 9.9626 Tf 282.774 0 Td [(:)-167(:)-166(:)-167(n)]TJ/F8 9.9626 Tf 19.263 -1.494 Td [(ro)28(w)]TJ/F9 4.9813 Tf 15.802 -0.997 Td [(i)]TJ/F8 9.9626 Tf 3.654 2.491 Td [(;)]TJ +/F8 9.9626 Tf 210.717 0 Td [(including:)]TJ 0 g 0 G - -321.493 -19.925 Td [(2.)]TJ +/F14 9.9626 Tf -173.855 -24.208 Td [(\017)]TJ 0 g 0 G - [-500(The)-333(set)-334(of)-333(halo)-333(p)-28(oin)28(ts)-334(m)28(ust)-333(b)-28(e)-333(mapp)-28(ed)-333(to)-334(the)-333(set)]TJ/F11 9.9626 Tf 232.684 0 Td [(n)]TJ/F8 9.9626 Tf 5.98 -1.495 Td [(ro)28(w)]TJ/F9 4.9813 Tf 15.802 -0.996 Td [(i)]TJ/F8 9.9626 Tf 5.868 2.491 Td [(+)-222(1)]TJ/F11 9.9626 Tf 16.604 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 [(;)]TJ -324.208 -19.926 Td [(but)-366(otherwise)-366(the)-365(mapping)-366(is)-366(arbitrary)84(.)-542(The)-366(user)-366(application)-366(is)-365(resp)-28(onsible)-366(to)]TJ 0 -11.955 Td [(ensure)-356(consistency)-356(of)-356(this)-356(mapping;)-367(some)-356(errors)-356(ma)27(y)-356(b)-27(e)-356(caugh)27(t)-356(b)28(y)-356(the)-356(library)84(,)]TJ 0 -11.955 Td [(but)-377(this)-378(is)-377(not)-377(guaran)28(te)-1(ed.)-576(The)-377(application)-378(structure)-377(to)-377(s)-1(u)1(pp)-28(ort)-378(t)1(his)-378(usage)-377(is)]TJ 0 -11.955 Td [(as)-333(follo)27(ws:)]TJ +/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 - 12.176 -19.925 Td [(1.)]TJ +/F14 9.9626 Tf -9.963 -18.081 Td [(\017)]TJ 0 g 0 G - [-500(Initialize)-222(index)-222(space)-223(with)]TJ/F30 9.9626 Tf 125.696 0 Td [(psb_cdall\050ictx,desc,info,vl=vl,lidx=lidx\051)]TJ/F8 9.9626 Tf -112.966 -11.955 Td [(passing)-253(the)-254(v)28(ectors)]TJ/F30 9.9626 Tf 83.59 0 Td [(vl\050:\051)]TJ/F8 9.9626 Tf 28.674 0 Td [(con)28(taining)-253(the)-254(set)-253(of)-253(global)-253(indices)-254(o)28(wned)-253(b)28(y)-253(the)]TJ -112.264 -11.956 Td [(curren)28(t)-334(pr)1(o)-28(cess)-334(and)]TJ/F30 9.9626 Tf 88.751 0 Td [(lidx\050:\051)]TJ/F8 9.9626 Tf 39.933 0 Td [(con)28(taining)-333(the)-334(corresp)-28(ondin)1(g)-334(lo)-28(cal)-333(indices;)]TJ +/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 - -141.414 -19.925 Td [(2.)]TJ +/F14 9.9626 Tf -9.963 -18.082 Td [(\017)]TJ 0 g 0 G - [-500(Add)-266(the)-266(halo)-266(p)-27(oin)27(ts)]TJ/F30 9.9626 Tf 100.593 0 Td [(ja\050:\051)]TJ/F8 9.9626 Tf 28.801 0 Td [(and)-266(their)-266(asso)-28(ciated)-265(lo)-28(cal)-266(indices)]TJ/F30 9.9626 Tf 143.508 0 Td [(lidx\050:\051)]TJ/F8 9.9626 Tf 39.261 0 Td [(with)]TJ -299.433 -11.955 Td [(a\050some\051)-333(c)-1(all\050)1(s)-1(\051)-333(to)]TJ/F30 9.9626 Tf 79.812 0 Td [(psb_cdins\050nz,ja,desc,info,lidx=lidx\051)]TJ/F8 9.9626 Tf 188.293 0 Td [(;)]TJ +/F8 9.9626 Tf 9.963 0 Td [(Dense)-333(and)-334(sparse)-333(matrix)-333(allo)-28(cation;)]TJ 0 g 0 G - -280.835 -19.925 Td [(3.)]TJ +/F14 9.9626 Tf -9.963 -18.081 Td [(\017)]TJ 0 g 0 G - [-500(Assem)28(ble)-334(the)-333(descriptor)-333(with)]TJ/F30 9.9626 Tf 143.02 0 Td [(psb_cdasb)]TJ/F8 9.9626 Tf 47.073 0 Td [(;)]TJ +/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 - -190.093 -19.926 Td [(4.)]TJ +/F14 9.9626 Tf -9.963 -18.082 Td [(\017)]TJ 0 g 0 G - [-500(Build)-240(the)-240(sparse)-240(matrices)-240(and)-240(v)27(ectors,)-258(optionally)-240(making)-240(use)-241(in)]TJ/F30 9.9626 Tf 284.462 0 Td [(psb_spins)]TJ/F8 9.9626 Tf -271.732 -11.955 Td [(and)]TJ/F30 9.9626 Tf 19.727 0 Td [(psb_geins)]TJ/F8 9.9626 Tf 50.749 0 Td [(of)-369(the)]TJ/F30 9.9626 Tf 29.214 0 Td [(local)]TJ/F8 9.9626 Tf 29.827 0 Td [(argumen)28(t)-369(sp)-28(ecifying)-369(that)-369(the)-369(indices)-369(in)]TJ/F30 9.9626 Tf 176.06 0 Td [(ia)]TJ/F8 9.9626 Tf 10.461 0 Td [(,)]TJ/F30 9.9626 Tf -316.038 -11.955 Td [(ja)]TJ/F8 9.9626 Tf 13.782 0 Td [(and)]TJ/F30 9.9626 Tf 19.372 0 Td [(irw)]TJ/F8 9.9626 Tf 15.691 0 Td [(,)-333(resp)-28(ectiv)28(ely)83(,)-333(are)-334(already)-333(lo)-28(cal)-333(indices.)]TJ/F16 11.9552 Tf -73.751 -27.888 Td [(2.4)-1125(Programming)-375(mo)-31(del)]TJ/F8 9.9626 Tf 0 -18.39 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.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)-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.956 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.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)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.956 Td [(sec.)]TJ -0 0 1 rg 0 0 1 RG - [-476(3)]TJ +/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 - [-475(are)-475(only)-476(acting)-475(on)-476(the)-475(lo)-28(cal)-475(data)-476(structures,)-511(and)-475(th)28(us)-476(ma)28(y)-475(b)-28(e)-475(c)-1(alled)]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.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 +/F27 9.9626 Tf -46.825 -24.207 Td [(Preconditioner)-383(routi)-1(n)1(es)]TJ 0 g 0 G -/F27 9.9626 Tf -14.944 -19.926 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.955 Td [(v)56(an)27(t)-333(comm)28(unication)-333(c)-1(on)28(text;)]TJ + 0 -24.208 Td [(Iterativ)32(e)-384(metho)-32(ds)]TJ 0 g 0 G -/F27 9.9626 Tf -24.907 -19.925 Td [(Async)32(hronous:)]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 -23.137 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.955 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 -/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 +/F14 9.9626 Tf 14.944 -23.137 Td [(\017)]TJ 0 g 0 G - 91.045 -72.817 Td [(8)]TJ +/F8 9.9626 Tf 9.963 0 Td [(all)-333(sym)27(b)-27(ols)-334(\050i.e.)-444(subroutine)-333(names,)-334(data)-333(t)28(yp)-28(es...\051)-444(are)-334(pre\014xed)-333(b)28(y)]TJ/F30 9.9626 Tf 286.233 0 Td [(psb_)]TJ 0 g 0 G -ET - -endstream -endobj -847 0 obj -<< -/Length 8464 ->> -stream +/F14 9.9626 Tf -296.196 -24.208 Td [(\017)]TJ 0 g 0 G +/F8 9.9626 Tf 9.963 0 Td [(all)-333(data)-334(t)28(yp)-28(e)-333(names)-333(are)-334(su\016xed)-333(b)28(y)]TJ/F30 9.9626 Tf 156.22 0 Td [(_type)]TJ 0 g 0 G -BT -/F16 14.3462 Tf 99.895 706.129 Td [(3)-1125(Data)-375(Structures)-375(and)-375(Classes)]TJ/F8 9.9626 Tf 0 -22.335 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 -12.231 Td [(All)-319(the)-319(data)-319(t)28(yp)-28(es)-319(and)-319(the)-319(b)1(as)-1(i)1(c)-319(s)-1(u)1(broutine)-319(in)28(terface)-1(s)-318(relate)-1(d)-318(to)-319(descriptors)]TJ -14.944 -11.956 Td [(and)-445(sparse)-444(matrices)-445(are)-445(de\014ned)-445(in)-444(the)-445(mo)-28(dule)]TJ/F30 9.9626 Tf 213.082 0 Td [(psb_base_mod)]TJ/F8 9.9626 Tf 62.764 0 Td [(;)-500(this)-445(will)-445(ha)28(v)28(e)]TJ -275.846 -11.955 Td [(to)-451(b)-28(e)-451(included)-452(b)28(y)-451(ev)28(ery)-452(user)-451(subroutine)-451(that)-451(mak)27(es)-451(use)-451(of)-452(th)1(e)-452(library)84(.)-799(The)]TJ 0 -11.955 Td [(preconditioners)-333(are)-334(de\014ned)-333(in)-333(the)-334(mo)-27(dule)]TJ/F30 9.9626 Tf 184.725 0 Td [(psb_prec_mod)]TJ/F8 9.9626 Tf -169.781 -12.231 Td [(In)28(teger,)-510(real)-475(and)-475(complex)-475(data)-475(t)28(yp)-28(es)-474(are)-475(parametrized)-475(with)-475(a)-475(kind)-474(t)27(yp)-27(e)]TJ -14.944 -11.955 Td [(de\014ned)-333(in)-334(the)-333(library)-333(as)-333(follo)27(ws:)]TJ +/F14 9.9626 Tf -166.183 -24.208 Td [(\017)]TJ 0 g 0 G -/F27 9.9626 Tf 0 -20.754 Td [(psb)]TJ -ET -q -1 0 0 1 117.832 567.046 cm -[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S -Q -BT -/F27 9.9626 Tf 121.269 566.847 Td [(spk)]TJ -ET -q -1 0 0 1 138.887 567.046 cm -[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S -Q +/F8 9.9626 Tf 9.963 0 Td [(all)-333(constan)27(ts)-333(are)-333(su\016xed)-334(b)28(y)]TJ/F30 9.9626 Tf 124.727 0 Td [(_)]TJ 0 g 0 G -BT -/F8 9.9626 Tf 147.306 566.847 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 +/F14 9.9626 Tf -134.69 -24.208 Td [(\017)]TJ 0 g 0 G -/F27 9.9626 Tf -102.671 -21.03 Td [(psb)]TJ -ET -q -1 0 0 1 117.832 534.062 cm -[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S -Q -BT -/F27 9.9626 Tf 121.269 533.863 Td [(dpk)]TJ -ET -q -1 0 0 1 140.733 534.062 cm -[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S -Q +/F8 9.9626 Tf 9.963 0 Td [(all)-390(top-lev)28(e)-1(l)-390(subroutine)-390(names)-390(follo)28(w)-391(the)-390(rule)]TJ/F30 9.9626 Tf 203.944 0 Td [(psb_xxname)]TJ/F8 9.9626 Tf 56.192 0 Td [(where)]TJ/F30 9.9626 Tf 29.376 0 Td [(xx)]TJ/F8 9.9626 Tf 14.348 0 Td [(can)]TJ -303.86 -11.955 Td [(b)-28(e)-333(either:)]TJ 0 g 0 G -BT -/F8 9.9626 Tf 149.152 533.863 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.956 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 +/F27 9.9626 Tf 11.208 -24.208 Td [({)]TJ 0 g 0 G -/F27 9.9626 Tf -165.435 -21.029 Td [(psb)]TJ -ET -q -1 0 0 1 117.832 501.077 cm -[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S -Q -BT -/F27 9.9626 Tf 121.269 500.878 Td [(mpk)]TJ -ET -q -1 0 0 1 143.916 501.077 cm -[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S -Q +/F30 9.9626 Tf 10.71 0 Td [(ge)]TJ/F8 9.9626 Tf 10.461 0 Td [(:)-444(the)-334(routine)-333(is)-333(related)-334(to)-333(dense)-333(data,)]TJ 0 g 0 G -BT -/F8 9.9626 Tf 152.334 500.878 Td [(Kind)-312(parameter)-311(for)-312(4-b)28(ytes)-312(in)28(teger)-312(data,)-316(as)-312(is)-312(alw)28(a)28(ys)-312(used)-312(b)28(y)-312(MPI;)]TJ +/F27 9.9626 Tf -21.171 -18.081 Td [({)]TJ 0 g 0 G -/F27 9.9626 Tf -52.439 -21.03 Td [(psb)]TJ -ET -q -1 0 0 1 117.832 480.048 cm -[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S -Q -BT -/F27 9.9626 Tf 121.269 479.848 Td [(epk)]TJ -ET -q -1 0 0 1 139.619 480.048 cm -[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S -Q +/F30 9.9626 Tf 10.71 0 Td [(sp)]TJ/F8 9.9626 Tf 10.461 0 Td [(:)-444(the)-334(routine)-333(is)-333(related)-334(to)-333(sparse)-333(data,)]TJ 0 g 0 G -BT -/F8 9.9626 Tf 148.038 479.848 Td [(Kind)-426(parameter)-426(for)-427(8-b)28(ytes)-426(in)28(teger)-427(data,)-449(as)-426(is)-427(alw)28(a)28(ys)-426(used)-427(b)28(y)-426(the)]TJ/F30 9.9626 Tf -23.236 -11.955 Td [(sizeof)]TJ/F8 9.9626 Tf 34.703 0 Td [(metho)-28(ds;)]TJ +/F27 9.9626 Tf -21.171 -18.081 Td [({)]TJ 0 g 0 G -/F27 9.9626 Tf -59.61 -21.029 Td [(psb)]TJ -ET -q -1 0 0 1 117.832 447.063 cm -[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S -Q -BT -/F27 9.9626 Tf 121.269 446.864 Td [(ipk)]TJ -ET -q -1 0 0 1 137.551 447.063 cm -[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S -Q +/F30 9.9626 Tf 10.71 0 Td [(cd)]TJ/F8 9.9626 Tf 10.461 0 Td [(:)-444(the)-334(routine)-333(is)-333(related)-334(to)-333(comm)28(unication)-334(d)1(e)-1(scriptor)-333(\050see)]TJ +0 0 1 rg 0 0 1 RG + [-333(3)]TJ 0 g 0 G -BT -/F8 9.9626 Tf 145.969 446.864 Td [(Kind)-470(parameter)-471(for)-470(\134lo)-28(cal")-471(in)28(teger)-470(indices)-471(and)-470(data;)-539(with)-471(default)]TJ -21.167 -11.956 Td [(build)-333(options)-333(this)-334(is)-333(a)-333(4)-334(b)28(ytes)-333(in)27(teger;)]TJ + [(\051.)]TJ -32.379 -24.208 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 -/F27 9.9626 Tf -24.907 -21.029 Td [(psb)]TJ -ET -q -1 0 0 1 117.832 414.078 cm -[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S -Q -BT -/F27 9.9626 Tf 121.269 413.879 Td [(lpk)]TJ -ET -q -1 0 0 1 137.551 414.078 cm -[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S -Q + [(\051)-343(on)-342(dense)-343(matrices,)-345(s)-1(p)1(ars)-1(e)-342(matrices)-343(and)-343(comm)28(unication)-343(de-)]TJ 0 -11.956 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(names)-334(for)-333(b)-28(oth)-333(real)-333(and)-334(complex)-333(data.)]TJ -24.907 -23.137 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 -BT -/F8 9.9626 Tf 145.969 413.879 Td [(Kind)-409(parameter)-409(for)-409(\134global")-409(in)28(teger)-409(indices)-410(and)-409(data;)-447(with)-409(defaul)1(t)]TJ -21.167 -11.955 Td [(build)-333(options)-333(this)-334(is)-333(an)-333(8)-334(b)28(ytes)-333(in)28(te)-1(ger;)]TJ -24.907 -20.754 Td [(The)-378(in)27(teger)-378(kinds)-378(for)-379(lo)-28(cal)-378(and)-378(global)-379(indices)-378(can)-379(b)-27(e)-379(c)28(hosen)-378(at)-379(con\014gure)-378(time)]TJ 0 -11.955 Td [(to)-352(hold)-352(4)-352(or)-352(8)-352(b)28(ytes,)-357(with)-352(the)-352(global)-352(indices)-352(at)-352(least)-352(as)-352(large)-352(as)-352(the)-352(lo)-28(cal)-352(ones.)]TJ 0 -11.955 Td [(T)83(ogether)-311(with)-311(the)-311(classes)-311(attributes)-311(w)28(e)-311(also)-311(discuss)-311(their)-311(metho)-28(ds.)-437(Most)-311(meth-)]TJ 0 -11.955 Td [(o)-28(ds)-342(detailed)-342(here)-342(only)-343(act)-342(on)-342(the)-342(lo)-28(cal)-342(v)55(ariable,)-344(i.e.)-471(their)-342(action)-343(i)1(s)-343(purely)-342(lo)-28(cal)]TJ 0 -11.956 Td [(and)-299(async)28(hronous)-299(unless)-298(otherwise)-299(stated.)-433(The)-299(list)-299(of)-299(metho)-27(ds)-299(here)-299(is)-299(not)-298(com)-1(-)]TJ 0 -11.955 Td [(pletely)-418(exhaustiv)27(e;)-460(man)27(y)-418(metho)-28(ds,)-439(esp)-28(ecially)-419(th)1(os)-1(e)-418(that)-418(alter)-419(th)1(e)-419(con)28(ten)28(ts)-419(of)]TJ 0 -11.955 Td [(the)-379(v)55(ariou)1(s)-380(ob)-55(jects,)-391(are)-379(usually)-379(not)-379(needed)-379(b)28(y)-379(the)-379(e)-1(n)1(d-use)-1(r)1(,)-391(and)-379(therefore)-379(are)]TJ 0 -11.955 Td [(describ)-28(ed)-333(in)-333(the)-334(dev)28(elop)-28(er's)-333(do)-28(cumen)28(tation.)]TJ/F16 11.9552 Tf 0 -29.353 Td [(3.1)-1125(Descriptor)-375(data)-375(structure)]TJ/F8 9.9626 Tf 0 -18.903 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 -ET -q -1 0 0 1 358.746 237.472 cm -[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S -Q -BT -/F30 9.9626 Tf 361.884 237.273 Td [(desc)]TJ -ET -q -1 0 0 1 383.433 237.472 cm -[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S -Q -BT -/F30 9.9626 Tf 386.571 237.273 Td [(type)]TJ/F8 9.9626 Tf 20.922 0 Td [(.)-803(Ev)28(ery)]TJ -307.598 -11.956 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 -12.231 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)-406(via)-406(the)-406(to)-28(ols)-406(routi)1(nes)-407(of)-405(Sec)-1(.)]TJ -0 0 1 rg 0 0 1 RG - [-405(6)]TJ +/F27 9.9626 Tf 0 -23.137 Td [(global)]TJ 0 g 0 G - [-406(or)-406(the)-406(query)-406(routines)-406(detailed)-406(b)-28(elo)28(w;)]TJ 0 -11.956 Td [(nev)28(ertheless)-334(w)28(e)-333(include)-334(here)-333(a)-333(description)-334(for)-333(the)-333(curious)-333(reader.)]TJ 14.944 -12.231 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 +/F8 9.9626 Tf 34.738 0 Td [(F)83(or)-228(input)-228(argumen)28(ts,)-250(the)-228(v)56(alue)-229(m)28(ust)-228(b)-28(e)-228(the)-228(same)-229(on)-228(all)-228(pro)-28(cesses)-229(part)1(ic)-1(i)1(-)]TJ -9.831 -11.955 Td [(pating)-253(i)1(n)-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 -/F14 9.9626 Tf 14.944 -20.753 Td [(\017)]TJ +/F27 9.9626 Tf -24.907 -24.208 Td [(lo)-32(cal)]TJ 0 g 0 G -/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 +/F8 9.9626 Tf 28.055 0 Td [(Eac)28(h)-334(p)1(ro)-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 -23.137 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 -24.059 Td [(psb_version_string_)]TJ/F8 9.9626 Tf -122.168 -24.059 Td [(whose)-333(curren)27(t)-333(v)56(alue)-334(is)]TJ/F30 9.9626 Tf 99.793 0 Td [(3.4.0)]TJ 0 g 0 G - 144.458 -29.888 Td [(9)]TJ +/F8 9.9626 Tf 69.572 -29.888 Td [(5)]TJ 0 g 0 G ET endstream endobj -855 0 obj +843 0 obj << -/Length 6827 +/Length 8659 >> stream 0 g 0 G 0 g 0 G -0 g 0 G BT -/F14 9.9626 Tf 165.649 706.129 Td [(\017)]TJ +/F16 11.9552 Tf 150.705 706.129 Td [(2.3)-1125(Application)-375(structure)]TJ/F8 9.9626 Tf 0 -18.928 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.956 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.955 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.245 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.245 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.494 Td [(ro)28(w)]TJ/F9 4.9813 Tf 15.801 -0.997 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.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.244 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.956 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.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.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.495 Td [(ro)28(w)]TJ/F9 4.9813 Tf 15.802 -0.996 Td [(i)]TJ/F8 9.9626 Tf 5.985 2.491 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.956 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.955 Td [(required)-333(to)-334(ac)28(hiev)28(e)-333(this)-334(ob)-55(jectiv)28(e)-1(.)]TJ 14.944 -12.245 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 0 g 0 G -/F8 9.9626 Tf 9.962 0 Td [(The)-331(n)27(u)1(m)27(b)-27(e)-1(r)-331(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)27(ws)-331(and)]TJ 0 -11.955 Td [(columns)-333(of)-334(a)-333(sparse)-333(matrix;)]TJ + 12.177 -20.793 Td [(1.)]TJ 0 g 0 G -/F14 9.9626 Tf -9.962 -20.409 Td [(\017)]TJ + [-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 9.962 0 Td [(The)-333(lo)-28(cal)-334(set)-333(of)-333(indices,)-334(inclu)1(ding:)]TJ +/F8 9.9626 Tf -169.42 -21.082 Td [(2.)]TJ 0 g 0 G -/F27 9.9626 Tf 11.208 -20.408 Td [({)]TJ + [-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 10.71 0 Td [(The)-333(n)27(um)28(b)-28(er)-333(of)-333(lo)-28(cal)-333(indices)-334(\050and)-333(lo)-28(cal)-333(ro)28(ws\051;)]TJ +/F8 9.9626 Tf -130.123 -21.083 Td [(3.)]TJ 0 g 0 G -/F27 9.9626 Tf -10.71 -16.182 Td [({)]TJ + [-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 10.71 0 Td [(The)-333(n)27(um)28(b)-28(er)-333(of)-333(halo)-333(indices)-334(\050and)-333(therefore)-333(lo)-28(cal)-333(c)-1(olu)1(m)-1(n)1(s)-1(\051;)]TJ +/F8 9.9626 Tf -284.461 -21.082 Td [(4.)]TJ 0 g 0 G -/F27 9.9626 Tf -10.71 -16.181 Td [({)]TJ + [-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 10.71 0 Td [(The)-333(global)-334(indices)-333(corresp)-28(onding)-333(to)-333(the)-334(lo)-27(cal)-334(ones.)]TJ -46.824 -20.409 Td [(There)-376(are)-376(m)-1(an)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)-388(base)-389(one,)-403(and)-389(the)-389(descriptor)-389(structure)-389(hold)1(s)-389(a)]TJ 0 -11.955 Td [(p)-28(olymorphic)-290(ob)-56(ject)-290(whose)-291(dyn)1(am)-1(ic)-290(t)28(yp)-28(e)-290(can)-291(b)-28(e)-290(an)28(y)-291(of)-290(the)-291(extend)1(e)-1(d)-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)28(yp)-28(e)-334(answ)28(er)-333(the)-334(f)1(ollo)27(wing)-333(queries:)]TJ +/F8 9.9626 Tf -130.648 -21.083 Td [(5.)]TJ 0 g 0 G -/F14 9.9626 Tf 14.944 -20.288 Td [(\017)]TJ + [-500(Assem)28(ble)-334(the)-333(v)56(arious)-334(en)28(tities:)]TJ 0 g 0 G -/F8 9.9626 Tf 9.962 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(in)-271(the)-271(global)]TJ 0 -11.955 Td [(n)28(um)28(b)-28(ering;)]TJ + 16.936 -21.082 Td [(\050a\051)]TJ 0 g 0 G -/F14 9.9626 Tf -9.962 -20.408 Td [(\017)]TJ +/F30 9.9626 Tf 17.711 0 Td [(psb_cdasb)]TJ 0 g 0 G -/F8 9.9626 Tf 9.962 0 Td [(F)83(or)-271(a)-271(giv)28(en)-272(set)-271(of)-271(global)-271(indices,)-284(\014nd)-271(the)-271(c)-1(or)1(re)-1(sp)-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 +/F8 9.9626 Tf -18.264 -16.519 Td [(\050b\051)]TJ 0 g 0 G -/F14 9.9626 Tf -9.962 -20.409 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(alo)-334(indices;)]TJ -0 g 0 G -/F14 9.9626 Tf -9.962 -20.408 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 -20.288 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.955 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(al)1(lo)-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 +/F30 9.9626 Tf 18.264 0 Td [(psb_spasb)]TJ 0 g 0 G - [(\051.)]TJ 14.944 -12.076 Td [(The)-333(descriptor)-334(con)28(ten)28(ts)-333(are)-334(as)-333(follo)28(ws:)]TJ +/F8 9.9626 Tf -17.157 -16.519 Td [(\050c\051)]TJ 0 g 0 G -/F27 9.9626 Tf -14.944 -20.288 Td [(indxmap)]TJ +/F30 9.9626 Tf 17.157 0 Td [(psb_geasb)]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 370.98 cm -[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S -Q -BT -/F8 9.9626 Tf 479.343 370.78 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 +/F8 9.9626 Tf 122.541 -29.888 Td [(6)]TJ 0 g 0 G -/F27 9.9626 Tf -24.906 -32.363 Td [(halo)]TJ ET -q -1 0 0 1 172.238 326.661 cm -[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S -Q -BT -/F27 9.9626 Tf 175.675 326.462 Td [(index)]TJ -0 g 0 G -/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.956 Td [(necessary)-334(to)-333(comm)28(unicate:)]TJ -0 g 0 G - 9.188 -20.408 Td [(1.)]TJ -0 g 0 G - [-500(Pro)-28(cess)-333(iden)28(ti\014er;)]TJ + +endstream +endobj +857 0 obj +<< +/Length 7719 +>> +stream 0 g 0 G - 0 -16.182 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.181 Td [(3.)]TJ +BT +/F8 9.9626 Tf 112.072 706.129 Td [(6.)]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 + [-500(Cho)-28(ose)-382(the)-382(preconditioner)-382(to)-382(b)-28(e)-382(used)-382(with)]TJ/F30 9.9626 Tf 205.032 0 Td [(prec%init)]TJ/F8 9.9626 Tf 50.879 0 Td [(and)-382(build)-382(it)-382(with)]TJ/F30 9.9626 Tf -243.181 -11.955 Td [(prec%build)]TJ +0 0 1 rg 0 0 1 RG +/F7 6.9738 Tf 52.303 3.615 Td [(3)]TJ 0 g 0 G - 0 -16.182 Td [(4.)]TJ +/F8 9.9626 Tf 4.47 -3.615 Td [(.)]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 + -69.503 -22.397 Td [(7.)]TJ 0 g 0 G - 0 -16.182 Td [(5.)]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 189.595 0 Td [(psb_bicgstab)]TJ/F8 9.9626 Tf -201.772 -21.778 Td [(This)-333(is)-334(the)-333(structure)-333(of)-334(the)-333(sample)-333(programs)-334(in)-333(the)-333(directory)]TJ/F30 9.9626 Tf 269.435 0 Td [(test/pargen/)]TJ/F8 9.9626 Tf 62.764 0 Td [(.)]TJ -317.255 -12.573 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 - [-500(Indices)-333(of)-334(p)-27(oin)27(ts)-333(to)-333(b)-28(e)-333(sen)27(t;)]TJ -9.188 -20.408 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(v)28(ector)-334(of)-333(in)28(teger)-333(t)27(yp)-27(e,)-334(see)]TJ -0 0 1 rg 0 0 1 RG - [-333(3.3)]TJ + 12.177 -21.779 Td [(1.)]TJ 0 g 0 G - [(.)]TJ + [-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 -/F27 9.9626 Tf -24.906 -20.409 Td [(ext)]TJ -ET -q -1 0 0 1 167.146 176.799 cm -[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S -Q -BT -/F27 9.9626 Tf 170.583 176.599 Td [(index)]TJ +/F8 9.9626 Tf -169.421 -22.397 Td [(2.)]TJ 0 g 0 G -/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 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(v)28(ector)-334(of)-333(in)28(teger)-333(t)27(yp)-27(e,)-334(see)]TJ -0 0 1 rg 0 0 1 RG - [-333(3.3)]TJ + [-500(Initialize)-333(index)-334(space)-333(with)]TJ/F30 9.9626 Tf 130.123 0 Td [(psb_cdall)]TJ 0 g 0 G - [(.)]TJ +/F8 9.9626 Tf -130.123 -22.396 Td [(3.)]TJ 0 g 0 G -/F27 9.9626 Tf -24.906 -20.408 Td [(o)32(vrlap)]TJ -ET -q -1 0 0 1 182.684 132.48 cm -[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S -Q -BT -/F27 9.9626 Tf 186.122 132.281 Td [(index)]TJ + [-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.955 Td [(with)]TJ/F30 9.9626 Tf 22.693 0 Td [(psb_cdins)]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 -35.423 -22.397 Td [(4.)]TJ 0 g 0 G - 141.968 -29.888 Td [(10)]TJ + [-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 -ET - -endstream -endobj -866 0 obj -<< -/Length 5178 ->> -stream +/F8 9.9626 Tf -143.019 -22.396 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 -22.396 Td [(6.)]TJ 0 g 0 G -BT -/F8 9.9626 Tf 133.99 706.129 Td [(1.)]TJ + [-500(Lo)-28(op)-333(o)28(v)28(e)-1(r)-333(the)-333(time)-334(steps:)]TJ 0 g 0 G - [-500(Pro)-28(cess)-333(iden)28(ti\014er;)]TJ + 16.936 -22.397 Td [(\050a\051)]TJ 0 g 0 G - 0 -17.286 Td [(2.)]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 - [-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 + -18.265 -17.176 Td [(\050b\051)]TJ 0 g 0 G - 0 -17.287 Td [(3.)]TJ + [-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 - [-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 -109.616 -17.176 Td [(\050c\051)]TJ 0 g 0 G - 0 -17.286 Td [(4.)]TJ + [-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 - [-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 -154.559 -17.176 Td [(\050d\051)]TJ 0 g 0 G - 0 -17.286 Td [(5.)]TJ + [-500(Cho)-28(ose)-333(and)-333(build)-334(pr)1(e)-1(condi)1(tioner)-334(with)]TJ/F30 9.9626 Tf 186.357 0 Td [(prec%init)]TJ/F8 9.9626 Tf 50.394 0 Td [(and)]TJ/F30 9.9626 Tf 19.372 0 Td [(prec%build)]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 -22.618 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(v)28(ector)-333(of)-334(in)28(teger)-333(t)27(yp)-27(e,)-334(see)]TJ -0 0 1 rg 0 0 1 RG - [-333(3.3)]TJ +/F8 9.9626 Tf -255.016 -17.175 Td [(\050e\051)]TJ 0 g 0 G - [(.)]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 -22.397 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 -12.573 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.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.956 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 -12.573 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.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.956 Td [(on)-450(the)-450(problem)-450(structure.)-794(A)28(t)-450(the)-450(opp)-27(os)-1(i)1(te)-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(ev)27(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 0 g 0 G -/F27 9.9626 Tf -24.907 -22.617 Td [(o)32(vr)]TJ ET q -1 0 0 1 116.758 591.948 cm -[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S +1 0 0 1 99.895 139.245 cm +[]0 d 0 J 0.398 w 0 0 m 137.482 0 l S Q BT -/F27 9.9626 Tf 120.195 591.749 Td [(mst)]TJ +/F32 5.9776 Tf 110.987 132.603 Td [(3)]TJ/F31 7.9701 Tf 4.151 -2.813 Td [(The)-323(subroutine)-324(st)30(yle)]TJ/F45 7.9701 Tf 78.401 0 Td [(psb)]TJ ET q -1 0 0 1 139.405 591.948 cm -[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S +1 0 0 1 206.75 129.989 cm +[]0 d 0 J 0.398 w 0 0 m 2.541 0 l S Q BT -/F27 9.9626 Tf 142.842 591.749 Td [(idx)]TJ -0 g 0 G -/F8 9.9626 Tf 20.575 0 Td [(A)-368(l)1(is)-1(t)-367(to)-368(r)1(e)-1(tri)1(e)-1(v)28(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.615 -11.955 Td [(sp)-28(ectiv)28(e)-333(mas)-1(ter)-333(pro)-28(cess.)]TJ 0 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(v)28(ector)-333(of)-334(in)28(teger)-333(t)27(yp)-27(e,)-334(see)]TJ -0 0 1 rg 0 0 1 RG - [-333(3.3)]TJ -0 g 0 G - [(.)]TJ -0 g 0 G -/F27 9.9626 Tf -24.907 -22.618 Td [(o)32(vrlap)]TJ +/F45 7.9701 Tf 209.29 129.79 Td [(precinit)]TJ/F31 7.9701 Tf 36.45 0 Td [(and)]TJ/F45 7.9701 Tf 16.22 0 Td [(psb)]TJ ET q -1 0 0 1 131.875 545.42 cm -[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S +1 0 0 1 275.171 129.989 cm +[]0 d 0 J 0.398 w 0 0 m 2.541 0 l S Q BT -/F27 9.9626 Tf 135.312 545.221 Td [(elem)]TJ +/F45 7.9701 Tf 277.711 129.79 Td [(precbl)]TJ/F31 7.9701 Tf 27.982 0 Td [(are)-323(still)-324(supp)-29(orted)-323(for)-324(ba)1(c)29(kw)30(ard)-324(com-)]TJ -205.798 -9.464 Td [(patibilit)29(y)]TJ 0 g 0 G -/F8 9.9626 Tf 28.214 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 - -29.536 -22.617 Td [(1.)]TJ +/F8 9.9626 Tf 169.365 -29.888 Td [(7)]TJ 0 g 0 G - [-500(Ov)28(erlap)-333(p)-28(oin)28(t)-334(index;)]TJ +ET + +endstream +endobj +878 0 obj +<< +/Length 7473 +>> +stream 0 g 0 G - 0 -17.287 Td [(2.)]TJ 0 g 0 G - [-500(Num)28(b)-28(er)-333(of)-334(pr)1(o)-28(cesses)-334(sharing)-333(that)-333(o)27(v)28(erlap)-333(p)-28(oin)28(ts;)]TJ +BT +/F27 9.9626 Tf 150.705 706.129 Td [(2.3.1)-1150(User-de\014ned)-383(index)-384(mappings)]TJ/F8 9.9626 Tf 0 -18.389 Td [(PSBLAS)-385(s)-1(u)1(pp)-28(orts)-386(user-de\014ned)-385(global)-386(to)-386(lo)-27(cal)-386(index)-386(mappings,)-398(sub)-56(ject)-385(to)-386(the)]TJ 0 -11.956 Td [(constrain)28(ts)-334(ou)1(tlined)-334(in)-333(sec.)]TJ +0 0 1 rg 0 0 1 RG + [-333(2.3)]TJ 0 g 0 G - 0 -17.286 Td [(3.)]TJ + [(:)]TJ 0 g 0 G - [-500(Index)-333(of)-334(a)-333(\134master")-333(pro)-28(cess:)]TJ -9.188 -22.617 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 + 12.176 -19.925 Td [(1.)]TJ 0 g 0 G -/F27 9.9626 Tf -24.907 -22.618 Td [(bnd)]TJ -ET -q -1 0 0 1 119.678 442.996 cm -[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S -Q -BT -/F27 9.9626 Tf 123.115 442.796 Td [(elem)]TJ + [-500(The)-333(set)-334(of)-333(indices)-333(o)27(wned)-333(lo)-28(cally)-333(m)28(ust)-334(b)-27(e)-334(mapp)-28(ed)-333(to)-333(the)-334(set)-333(1)]TJ/F11 9.9626 Tf 282.774 0 Td [(:)-167(:)-166(:)-167(n)]TJ/F8 9.9626 Tf 19.263 -1.494 Td [(ro)28(w)]TJ/F9 4.9813 Tf 15.802 -0.997 Td [(i)]TJ/F8 9.9626 Tf 3.654 2.491 Td [(;)]TJ 0 g 0 G -/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 -21.944 Td [(The)-450(F)83(ortran)-450(2003)-450(declaration)-450(for)]TJ/F30 9.9626 Tf 152.457 0 Td [(psb_desc_type)]TJ/F8 9.9626 Tf 72.477 0 Td [(structures)-450(is)-450(as)-450(follo)28(ws:)-678(A)]TJ + -321.493 -19.925 Td [(2.)]TJ +0 g 0 G + [-500(The)-333(set)-334(of)-333(halo)-333(p)-28(oin)28(ts)-334(m)28(ust)-333(b)-28(e)-333(mapp)-28(ed)-333(to)-334(the)-333(set)]TJ/F11 9.9626 Tf 232.684 0 Td [(n)]TJ/F8 9.9626 Tf 5.98 -1.495 Td [(ro)28(w)]TJ/F9 4.9813 Tf 15.802 -0.996 Td [(i)]TJ/F8 9.9626 Tf 5.868 2.491 Td [(+)-222(1)]TJ/F11 9.9626 Tf 16.604 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 [(;)]TJ -324.208 -19.926 Td [(but)-366(otherwise)-366(the)-365(mapping)-366(is)-366(arbitrary)84(.)-542(The)-366(user)-366(application)-366(is)-365(resp)-28(onsible)-366(to)]TJ 0 -11.955 Td [(ensure)-356(consistency)-356(of)-356(this)-356(mapping;)-367(some)-356(errors)-356(ma)27(y)-356(b)-27(e)-356(caugh)27(t)-356(b)28(y)-356(the)-356(library)84(,)]TJ 0 -11.955 Td [(but)-377(this)-378(is)-377(not)-377(guaran)28(te)-1(ed.)-576(The)-377(application)-378(structure)-377(to)-377(s)-1(u)1(pp)-28(ort)-378(t)1(his)-378(usage)-377(is)]TJ 0 -11.955 Td [(as)-333(follo)27(ws:)]TJ +0 g 0 G + 12.176 -19.925 Td [(1.)]TJ 0 g 0 G + [-500(Initialize)-222(index)-222(space)-223(with)]TJ/F30 9.9626 Tf 125.696 0 Td [(psb_cdall\050ictx,desc,info,vl=vl,lidx=lidx\051)]TJ/F8 9.9626 Tf -112.966 -11.955 Td [(passing)-253(the)-254(v)28(ectors)]TJ/F30 9.9626 Tf 83.59 0 Td [(vl\050:\051)]TJ/F8 9.9626 Tf 28.674 0 Td [(con)28(taining)-253(the)-254(set)-253(of)-253(global)-253(indices)-254(o)28(wned)-253(b)28(y)-253(the)]TJ -112.264 -11.956 Td [(curren)28(t)-334(pr)1(o)-28(cess)-334(and)]TJ/F30 9.9626 Tf 88.751 0 Td [(lidx\050:\051)]TJ/F8 9.9626 Tf 39.933 0 Td [(con)28(taining)-333(the)-334(corresp)-28(ondin)1(g)-334(lo)-28(cal)-333(indices;)]TJ 0 g 0 G + -141.414 -19.925 Td [(2.)]TJ 0 g 0 G + [-500(Add)-266(the)-266(halo)-266(p)-27(oin)27(ts)]TJ/F30 9.9626 Tf 100.593 0 Td [(ja\050:\051)]TJ/F8 9.9626 Tf 28.801 0 Td [(and)-266(their)-266(asso)-28(ciated)-265(lo)-28(cal)-266(indices)]TJ/F30 9.9626 Tf 143.508 0 Td [(lidx\050:\051)]TJ/F8 9.9626 Tf 39.261 0 Td [(with)]TJ -299.433 -11.955 Td [(a\050some\051)-333(c)-1(all\050)1(s)-1(\051)-333(to)]TJ/F30 9.9626 Tf 79.812 0 Td [(psb_cdins\050nz,ja,desc,info,lidx=lidx\051)]TJ/F8 9.9626 Tf 188.293 0 Td [(;)]TJ 0 g 0 G + -280.835 -19.925 Td [(3.)]TJ 0 g 0 G -/F30 9.9626 Tf -207.747 -21.604 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 [(type\050psb_i_vect_type\051)-525(::)-525(v_halo_index)]TJ 0 -11.955 Td [(type\050psb_i_vect_type\051)-525(::)-525(v_ext_index)]TJ 0 -11.955 Td [(type\050psb_i_vect_type\051)-525(::)-525(v_ovrlap_index)]TJ 0 -11.956 Td [(type\050psb_i_vect_type\051)-525(::)-525(v_ovr_mst_idx)]TJ 0 -11.955 Td [(integer,)-525(allocatable)-1050(::)-525(ovrlap_elem\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/F8 9.9626 Tf -17.187 -30.054 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 + [-500(Assem)28(ble)-334(the)-333(descriptor)-333(with)]TJ/F30 9.9626 Tf 143.02 0 Td [(psb_cdasb)]TJ/F8 9.9626 Tf 47.073 0 Td [(;)]TJ 0 g 0 G - 0 -24.98 Td [(comm)28(unication)-415(desc)-1(ri)1(ptor)-416(asso)-27(ciate)-1(d)-415(with)-415(a)-415(sparse)-415(matrix)-415(has)-416(a)-415(state,)-435(whic)27(h)]TJ 0 -11.955 Td [(can)-333(tak)27(e)-333(the)-333(follo)28(wing)-334(v)56(alues:)]TJ + -190.093 -19.926 Td [(4.)]TJ 0 g 0 G -/F27 9.9626 Tf 0 -21.944 Td [(Build:)]TJ + [-500(Build)-240(the)-240(sparse)-240(matrices)-240(and)-240(v)27(ectors,)-258(optionally)-240(making)-240(use)-241(in)]TJ/F30 9.9626 Tf 284.462 0 Td [(psb_spins)]TJ/F8 9.9626 Tf -271.732 -11.955 Td [(and)]TJ/F30 9.9626 Tf 19.727 0 Td [(psb_geins)]TJ/F8 9.9626 Tf 50.749 0 Td [(of)-369(the)]TJ/F30 9.9626 Tf 29.214 0 Td [(local)]TJ/F8 9.9626 Tf 29.827 0 Td [(argumen)28(t)-369(sp)-28(ecifying)-369(that)-369(the)-369(indices)-369(in)]TJ/F30 9.9626 Tf 176.06 0 Td [(ia)]TJ/F8 9.9626 Tf 10.461 0 Td [(,)]TJ/F30 9.9626 Tf -316.038 -11.955 Td [(ja)]TJ/F8 9.9626 Tf 13.782 0 Td [(and)]TJ/F30 9.9626 Tf 19.372 0 Td [(irw)]TJ/F8 9.9626 Tf 15.691 0 Td [(,)-333(resp)-28(ectiv)28(ely)83(,)-333(are)-334(already)-333(lo)-28(cal)-333(indices.)]TJ/F16 11.9552 Tf -73.751 -27.888 Td [(2.4)-1125(Programming)-375(mo)-31(del)]TJ/F8 9.9626 Tf 0 -18.39 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.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)-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.956 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.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)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.956 Td [(sec.)]TJ +0 0 1 rg 0 0 1 RG + [-476(3)]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.956 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 + [-475(are)-475(only)-476(acting)-475(on)-476(the)-475(lo)-28(cal)-475(data)-476(structures,)-511(and)-475(th)28(us)-476(ma)28(y)-475(b)-28(e)-475(c)-1(alled)]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.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 0 g 0 G -/F27 9.9626 Tf -24.907 -22.617 Td [(Assem)32(bled:)]TJ +/F27 9.9626 Tf -14.944 -19.926 Td [(Sync)32(hronous:)]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.955 Td [(this)-333(state.)]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(c)-1(on)28(text;)]TJ 0 g 0 G - 141.968 -29.888 Td [(11)]TJ +/F27 9.9626 Tf -24.907 -19.925 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 -72.817 Td [(8)]TJ 0 g 0 G ET endstream endobj -881 0 obj +889 0 obj << -/Length 5199 +/Length 8464 >> stream 0 g 0 G 0 g 0 G BT -/F27 9.9626 Tf 150.705 706.129 Td [(3.1.1)-1150(Descriptor)-384(M)1(etho)-32(ds)]TJ 0 -18.549 Td [(get)]TJ +/F16 14.3462 Tf 99.895 706.129 Td [(3)-1125(Data)-375(Structures)-375(and)-375(Classes)]TJ/F8 9.9626 Tf 0 -22.335 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 -12.231 Td [(All)-319(the)-319(data)-319(t)28(yp)-28(es)-319(and)-319(the)-319(b)1(as)-1(i)1(c)-319(s)-1(u)1(broutine)-319(in)28(terface)-1(s)-318(relate)-1(d)-318(to)-319(descriptors)]TJ -14.944 -11.956 Td [(and)-445(sparse)-444(matrices)-445(are)-445(de\014ned)-445(in)-444(the)-445(mo)-28(dule)]TJ/F30 9.9626 Tf 213.082 0 Td [(psb_base_mod)]TJ/F8 9.9626 Tf 62.764 0 Td [(;)-500(this)-445(will)-445(ha)28(v)28(e)]TJ -275.846 -11.955 Td [(to)-451(b)-28(e)-451(included)-452(b)28(y)-451(ev)28(ery)-452(user)-451(subroutine)-451(that)-451(mak)27(es)-451(use)-451(of)-452(th)1(e)-452(library)84(.)-799(The)]TJ 0 -11.955 Td [(preconditioners)-333(are)-334(de\014ned)-333(in)-333(the)-334(mo)-27(dule)]TJ/F30 9.9626 Tf 184.725 0 Td [(psb_prec_mod)]TJ/F8 9.9626 Tf -169.781 -12.231 Td [(In)28(teger,)-510(real)-475(and)-475(complex)-475(data)-475(t)28(yp)-28(es)-474(are)-475(parametrized)-475(with)-475(a)-475(kind)-474(t)27(yp)-27(e)]TJ -14.944 -11.955 Td [(de\014ned)-333(in)-334(the)-333(library)-333(as)-333(follo)27(ws:)]TJ +0 g 0 G +/F27 9.9626 Tf 0 -20.754 Td [(psb)]TJ ET q -1 0 0 1 166.827 687.78 cm +1 0 0 1 117.832 567.046 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 170.264 687.58 Td [(lo)-32(cal)]TJ +/F27 9.9626 Tf 121.269 566.847 Td [(spk)]TJ ET q -1 0 0 1 194.025 687.78 cm +1 0 0 1 138.887 567.046 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q -BT -/F27 9.9626 Tf 197.462 687.58 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 +BT +/F8 9.9626 Tf 147.306 566.847 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 -/F30 9.9626 Tf -46.757 -18.548 Td [(nr)-525(=)-525(desc%get_local_rows\050\051)]TJ -0 g 0 G -/F27 9.9626 Tf 0 -22.174 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 -20.267 Td [(On)-383(En)32(try)]TJ -0 g 0 G -0 g 0 G - 0 -20.267 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 -0 g 0 G -/F27 9.9626 Tf -80.358 -34.13 Td [(On)-383(Return)]TJ -0 g 0 G -0 g 0 G - 0 -20.267 Td [(F)96(unction)-384(v)64(alue)]TJ -0 g 0 G -/F8 9.9626 Tf 78.386 0 Td [(The)-460(n)28(um)27(b)-27(er)-461(of)-460(lo)-28(cal)-460(ro)28(ws,)-492(i.e.)-825(the)-460(n)28(um)27(b)-27(er)-461(of)-460(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(ces)-1(s;)-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.678 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.431 0 Td [(+)]TJ/F14 9.9626 Tf 10.413 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.767 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)-334(p)1(ro)-28(cess.)]TJ/F27 9.9626 Tf -24.906 -26.35 Td [(get)]TJ +/F27 9.9626 Tf -102.671 -21.03 Td [(psb)]TJ ET q -1 0 0 1 166.827 489.912 cm +1 0 0 1 117.832 534.062 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 170.264 489.712 Td [(lo)-32(cal)]TJ +/F27 9.9626 Tf 121.269 533.863 Td [(dpk)]TJ ET q -1 0 0 1 194.025 489.912 cm +1 0 0 1 140.733 534.062 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q -BT -/F27 9.9626 Tf 197.462 489.712 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 +BT +/F8 9.9626 Tf 149.152 533.863 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.956 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 0 g 0 G -/F30 9.9626 Tf -46.757 -18.548 Td [(nc)-525(=)-525(desc%get_local_cols\050\051)]TJ -0 g 0 G -/F27 9.9626 Tf 0 -22.174 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 -20.267 Td [(On)-383(En)32(try)]TJ -0 g 0 G -0 g 0 G - 0 -20.267 Td [(desc)]TJ +/F27 9.9626 Tf -165.435 -21.029 Td [(psb)]TJ +ET +q +1 0 0 1 117.832 501.077 cm +[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S +Q +BT +/F27 9.9626 Tf 121.269 500.878 Td [(mpk)]TJ +ET +q +1 0 0 1 143.916 501.077 cm +[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S +Q 0 g 0 G -/F8 9.9626 Tf 26.208 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 +BT +/F8 9.9626 Tf 152.334 500.878 Td [(Kind)-312(parameter)-311(for)-312(4-b)28(ytes)-312(in)28(teger)-312(data,)-316(as)-312(is)-312(alw)28(a)28(ys)-312(used)-312(b)28(y)-312(MPI;)]TJ 0 g 0 G -/F27 9.9626 Tf -80.358 -34.129 Td [(On)-383(Return)]TJ +/F27 9.9626 Tf -52.439 -21.03 Td [(psb)]TJ +ET +q +1 0 0 1 117.832 480.048 cm +[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S +Q +BT +/F27 9.9626 Tf 121.269 479.848 Td [(epk)]TJ +ET +q +1 0 0 1 139.619 480.048 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 148.038 479.848 Td [(Kind)-426(parameter)-426(for)-427(8-b)28(ytes)-426(in)28(teger)-427(data,)-449(as)-426(is)-427(alw)28(a)28(ys)-426(used)-427(b)28(y)-426(the)]TJ/F30 9.9626 Tf -23.236 -11.955 Td [(sizeof)]TJ/F8 9.9626 Tf 34.703 0 Td [(metho)-28(ds;)]TJ 0 g 0 G - 0 -20.267 Td [(F)96(unction)-384(v)64(alue)]TJ +/F27 9.9626 Tf -59.61 -21.029 Td [(psb)]TJ +ET +q +1 0 0 1 117.832 447.063 cm +[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S +Q +BT +/F27 9.9626 Tf 121.269 446.864 Td [(ipk)]TJ +ET +q +1 0 0 1 137.551 447.063 cm +[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S +Q 0 g 0 G -/F8 9.9626 Tf 78.386 0 Td [(The)-361(n)28(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(indices)-360(used)-361(b)28(y)]TJ -53.48 -11.955 Td [(the)-421(curren)28(t)-421(pro)-28(cess,)-443(including)-421(b)-27(oth)-421(lo)-28(cal)-421(and)-421(halo)-421(ind)1(ice)-1(s;)-464(as)-421(explained)]TJ 0 -11.955 Td [(in)]TJ -0 0 1 rg 0 0 1 RG - [-344(1)]TJ +BT +/F8 9.9626 Tf 145.969 446.864 Td [(Kind)-470(parameter)-471(for)-470(\134lo)-28(cal")-471(in)28(teger)-470(indices)-471(and)-470(data;)-539(with)-471(default)]TJ -21.167 -11.956 Td [(build)-333(options)-333(this)-334(is)-333(a)-333(4)-334(b)28(ytes)-333(in)27(teger;)]TJ 0 g 0 G - [(,)-346(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.031 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.03 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.768 0 Td [(.)-475(The)-344(returned)-343(v)55(al)1(ue)-344(is)-344(sp)-27(ec)-1(i)1(\014c)-344(to)-344(the)]TJ -153.339 -11.956 Td [(calling)-333(pro)-28(cess.)]TJ/F27 9.9626 Tf -24.906 -26.349 Td [(get)]TJ +/F27 9.9626 Tf -24.907 -21.029 Td [(psb)]TJ ET q -1 0 0 1 166.827 280.088 cm +1 0 0 1 117.832 414.078 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 170.264 279.889 Td [(global)]TJ +/F27 9.9626 Tf 121.269 413.879 Td [(lpk)]TJ ET q -1 0 0 1 200.708 280.088 cm +1 0 0 1 137.551 414.078 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 145.969 413.879 Td [(Kind)-409(parameter)-409(for)-409(\134global")-409(in)28(teger)-409(indices)-410(and)-409(data;)-447(with)-409(defaul)1(t)]TJ -21.167 -11.955 Td [(build)-333(options)-333(this)-334(is)-333(an)-333(8)-334(b)28(ytes)-333(in)28(te)-1(ger;)]TJ -24.907 -20.754 Td [(The)-378(in)27(teger)-378(kinds)-378(for)-379(lo)-28(cal)-378(and)-378(global)-379(indices)-378(can)-379(b)-27(e)-379(c)28(hosen)-378(at)-379(con\014gure)-378(time)]TJ 0 -11.955 Td [(to)-352(hold)-352(4)-352(or)-352(8)-352(b)28(ytes,)-357(with)-352(the)-352(global)-352(indices)-352(at)-352(least)-352(as)-352(large)-352(as)-352(the)-352(lo)-28(cal)-352(ones.)]TJ 0 -11.955 Td [(T)83(ogether)-311(with)-311(the)-311(classes)-311(attributes)-311(w)28(e)-311(also)-311(discuss)-311(their)-311(metho)-28(ds.)-437(Most)-311(meth-)]TJ 0 -11.955 Td [(o)-28(ds)-342(detailed)-342(here)-342(only)-343(act)-342(on)-342(the)-342(lo)-28(cal)-342(v)55(ariable,)-344(i.e.)-471(their)-342(action)-343(i)1(s)-343(purely)-342(lo)-28(cal)]TJ 0 -11.956 Td [(and)-299(async)28(hronous)-299(unless)-298(otherwise)-299(stated.)-433(The)-299(list)-299(of)-299(metho)-27(ds)-299(here)-299(is)-299(not)-298(com)-1(-)]TJ 0 -11.955 Td [(pletely)-418(exhaustiv)27(e;)-460(man)27(y)-418(metho)-28(ds,)-439(esp)-28(ecially)-419(th)1(os)-1(e)-418(that)-418(alter)-419(th)1(e)-419(con)28(ten)28(ts)-419(of)]TJ 0 -11.955 Td [(the)-379(v)55(ariou)1(s)-380(ob)-55(jects,)-391(are)-379(usually)-379(not)-379(needed)-379(b)28(y)-379(the)-379(e)-1(n)1(d-use)-1(r)1(,)-391(and)-379(therefore)-379(are)]TJ 0 -11.955 Td [(describ)-28(ed)-333(in)-333(the)-334(dev)28(elop)-28(er's)-333(do)-28(cumen)28(tation.)]TJ/F16 11.9552 Tf 0 -29.353 Td [(3.1)-1125(Descriptor)-375(data)-375(structure)]TJ/F8 9.9626 Tf 0 -18.903 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 +ET +q +1 0 0 1 358.746 237.472 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +Q +BT +/F30 9.9626 Tf 361.884 237.273 Td [(desc)]TJ +ET +q +1 0 0 1 383.433 237.472 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +Q BT -/F27 9.9626 Tf 204.145 279.889 Td [(ro)32(ws)-383(|)-384(Get)-383(n)32(um)32(b)-32(er)-383(of)-384(global)-383(ro)32(ws)]TJ +/F30 9.9626 Tf 386.571 237.273 Td [(type)]TJ/F8 9.9626 Tf 20.922 0 Td [(.)-803(Ev)28(ery)]TJ -307.598 -11.956 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 -12.231 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)-406(via)-406(the)-406(to)-28(ols)-406(routi)1(nes)-407(of)-405(Sec)-1(.)]TJ +0 0 1 rg 0 0 1 RG + [-405(6)]TJ 0 g 0 G + [-406(or)-406(the)-406(query)-406(routines)-406(detailed)-406(b)-28(elo)28(w;)]TJ 0 -11.956 Td [(nev)28(ertheless)-334(w)28(e)-333(include)-334(here)-333(a)-333(description)-334(for)-333(the)-333(curious)-333(reader.)]TJ 14.944 -12.231 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 -/F30 9.9626 Tf -53.44 -18.548 Td [(nr)-525(=)-525(desc%get_global_rows\050\051)]TJ +/F14 9.9626 Tf 14.944 -20.753 Td [(\017)]TJ 0 g 0 G -/F27 9.9626 Tf 0 -22.174 Td [(T)32(yp)-32(e:)]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 -/F8 9.9626 Tf 33.797 0 Td [(Async)28(hronous.)]TJ + 144.458 -29.888 Td [(9)]TJ 0 g 0 G -/F27 9.9626 Tf -33.797 -20.267 Td [(On)-383(En)32(try)]TJ +ET + +endstream +endobj +897 0 obj +<< +/Length 6827 +>> +stream 0 g 0 G 0 g 0 G - 0 -20.268 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 +BT +/F14 9.9626 Tf 165.649 706.129 Td [(\017)]TJ 0 g 0 G -/F27 9.9626 Tf -80.358 -34.129 Td [(On)-383(Return)]TJ +/F8 9.9626 Tf 9.962 0 Td [(The)-331(n)27(u)1(m)27(b)-27(e)-1(r)-331(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)27(ws)-331(and)]TJ 0 -11.955 Td [(columns)-333(of)-334(a)-333(sparse)-333(matrix;)]TJ 0 g 0 G +/F14 9.9626 Tf -9.962 -20.409 Td [(\017)]TJ 0 g 0 G - 0 -20.267 Td [(F)96(unction)-384(v)64(alue)]TJ +/F8 9.9626 Tf 9.962 0 Td [(The)-333(lo)-28(cal)-334(set)-333(of)-333(indices,)-334(inclu)1(ding:)]TJ 0 g 0 G -/F8 9.9626 Tf 78.386 0 Td [(The)-390(n)28(um)27(b)-27(er)-391(of)-390(global)-390(ro)28(ws,)-405(i.e.)-615(the)-390(size)-391(of)-390(the)-390(global)-390(index)]TJ -53.48 -11.955 Td [(space.)]TJ +/F27 9.9626 Tf 11.208 -20.408 Td [({)]TJ 0 g 0 G - 141.968 -29.888 Td [(12)]TJ +/F8 9.9626 Tf 10.71 0 Td [(The)-333(n)27(um)28(b)-28(er)-333(of)-333(lo)-28(cal)-333(indices)-334(\050and)-333(lo)-28(cal)-333(ro)28(ws\051;)]TJ 0 g 0 G -ET - -endstream -endobj -885 0 obj -<< -/Length 4312 ->> -stream +/F27 9.9626 Tf -10.71 -16.182 Td [({)]TJ 0 g 0 G +/F8 9.9626 Tf 10.71 0 Td [(The)-333(n)27(um)28(b)-28(er)-333(of)-333(halo)-333(indices)-334(\050and)-333(therefore)-333(lo)-28(cal)-333(c)-1(olu)1(m)-1(n)1(s)-1(\051;)]TJ 0 g 0 G -BT -/F27 9.9626 Tf 99.895 706.129 Td [(get)]TJ -ET -q -1 0 0 1 116.018 706.328 cm -[]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 [(global)]TJ -ET -q -1 0 0 1 149.899 706.328 cm -[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S -Q -BT -/F27 9.9626 Tf 153.336 706.129 Td [(cols)-383(|)-384(Get)-383(n)32(um)32(b)-32(er)-383(of)-384(global)-383(cols)]TJ +/F27 9.9626 Tf -10.71 -16.181 Td [({)]TJ 0 g 0 G +/F8 9.9626 Tf 10.71 0 Td [(The)-333(global)-334(indices)-333(corresp)-28(onding)-333(to)-333(the)-334(lo)-27(cal)-334(ones.)]TJ -46.824 -20.409 Td [(There)-376(are)-376(m)-1(an)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)-388(base)-389(one,)-403(and)-389(the)-389(descriptor)-389(structure)-389(hold)1(s)-389(a)]TJ 0 -11.955 Td [(p)-28(olymorphic)-290(ob)-56(ject)-290(whose)-291(dyn)1(am)-1(ic)-290(t)28(yp)-28(e)-290(can)-291(b)-28(e)-290(an)28(y)-291(of)-290(the)-291(extend)1(e)-1(d)-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)28(yp)-28(e)-334(answ)28(er)-333(the)-334(f)1(ollo)27(wing)-333(queries:)]TJ 0 g 0 G -/F30 9.9626 Tf -53.441 -18.505 Td [(nr)-525(=)-525(desc%get_global_cols\050\051)]TJ +/F14 9.9626 Tf 14.944 -20.288 Td [(\017)]TJ 0 g 0 G -/F27 9.9626 Tf 0 -22.105 Td [(T)32(yp)-32(e:)]TJ +/F8 9.9626 Tf 9.962 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(in)-271(the)-271(global)]TJ 0 -11.955 Td [(n)28(um)28(b)-28(ering;)]TJ 0 g 0 G -/F8 9.9626 Tf 33.797 0 Td [(Async)28(hronous.)]TJ +/F14 9.9626 Tf -9.962 -20.408 Td [(\017)]TJ 0 g 0 G -/F27 9.9626 Tf -33.797 -20.175 Td [(On)-383(En)32(try)]TJ +/F8 9.9626 Tf 9.962 0 Td [(F)83(or)-271(a)-271(giv)28(en)-272(set)-271(of)-271(global)-271(indices,)-284(\014nd)-271(the)-271(c)-1(or)1(re)-1(sp)-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 +/F14 9.9626 Tf -9.962 -20.409 Td [(\017)]TJ 0 g 0 G - 0 -20.174 Td [(desc)]TJ +/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(alo)-334(indices;)]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 +/F14 9.9626 Tf -9.962 -20.408 Td [(\017)]TJ 0 g 0 G -/F27 9.9626 Tf -80.359 -34.06 Td [(On)-383(Return)]TJ +/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 -20.288 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.955 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(al)1(lo)-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 -12.076 Td [(The)-333(descriptor)-334(con)28(ten)28(ts)-333(are)-334(as)-333(follo)28(ws:)]TJ 0 g 0 G - 0 -20.174 Td [(F)96(unction)-384(v)64(alue)]TJ +/F27 9.9626 Tf -14.944 -20.288 Td [(indxmap)]TJ 0 g 0 G -/F8 9.9626 Tf 78.387 0 Td [(The)-273(n)28(um)28(b)-28(er)-273(of)-272(global)-273(cols;)-293(usually)-273(this)-273(is)-272(e)-1(q)1(ual)-273(to)-273(the)-273(n)28(um)28(b)-28(er)]TJ -53.48 -11.956 Td [(of)-333(global)-334(ro)28(ws.)]TJ/F27 9.9626 Tf -24.907 -26.226 Td [(get)]TJ +/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 116.018 520.998 cm -[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S +1 0 0 1 476.354 370.98 cm +[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F27 9.9626 Tf 119.455 520.799 Td [(global)]TJ +/F8 9.9626 Tf 479.343 370.78 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 -32.363 Td [(halo)]TJ ET q -1 0 0 1 149.899 520.998 cm +1 0 0 1 172.238 326.661 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 153.336 520.799 Td [(indices)-383(|)-384(Get)-383(v)32(ector)-383(of)-384(global)-383(indices)]TJ -0 g 0 G +/F27 9.9626 Tf 175.675 326.462 Td [(index)]TJ 0 g 0 G -/F30 9.9626 Tf -53.441 -18.505 Td [(myidx)-525(=)-525(desc%get_global_indices\050[owned]\051)]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.956 Td [(necessary)-334(to)-333(comm)28(unicate:)]TJ 0 g 0 G -/F27 9.9626 Tf 0 -22.105 Td [(T)32(yp)-32(e:)]TJ + 9.188 -20.408 Td [(1.)]TJ 0 g 0 G -/F8 9.9626 Tf 33.797 0 Td [(Async)28(hronous.)]TJ + [-500(Pro)-28(cess)-333(iden)28(ti\014er;)]TJ 0 g 0 G -/F27 9.9626 Tf -33.797 -20.174 Td [(On)-383(En)32(try)]TJ + 0 -16.182 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 -20.175 Td [(desc)]TJ + 0 -16.181 Td [(3.)]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 + [-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 -/F27 9.9626 Tf -96.416 -32.13 Td [(o)32(wned)]TJ + 0 -16.182 Td [(4.)]TJ 0 g 0 G -/F8 9.9626 Tf 36.647 0 Td [(Cho)-28(ose)-439(if)-439(y)28(ou)-439(only)-439(w)27(an)28(t)-439(o)28(wned)-439(indices)-439(\050)]TJ/F30 9.9626 Tf 183.494 0 Td [(owned=.true.)]TJ/F8 9.9626 Tf 62.764 0 Td [(\051)-439(or)-439(also)-439(halo)]TJ -257.998 -11.955 Td [(indices)-333(\050)]TJ/F30 9.9626 Tf 36.585 0 Td [(owned=.false.)]TJ/F8 9.9626 Tf 67.994 0 Td [(\051.)-444(Scop)-28(e:)]TJ/F27 9.9626 Tf 43.449 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf 23.073 0 Td [(.)]TJ -171.101 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(optional)]TJ/F8 9.9626 Tf 40.577 0 Td [(;)-333(default:)]TJ/F30 9.9626 Tf 43.448 0 Td [(.true.)]TJ/F8 9.9626 Tf 31.382 0 Td [(.)]TJ + [-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 -/F27 9.9626 Tf -169.925 -34.06 Td [(On)-383(Return)]TJ + 0 -16.182 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.408 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(v)28(ector)-334(of)-333(in)28(teger)-333(t)27(yp)-27(e,)-334(see)]TJ +0 0 1 rg 0 0 1 RG + [-333(3.3)]TJ 0 g 0 G - 0 -20.174 Td [(F)96(unction)-384(v)64(alue)]TJ + [(.)]TJ 0 g 0 G -/F8 9.9626 Tf 78.387 0 Td [(The)-292(global)-292(ind)1(ice)-1(s,)-300(returned)-291(as)-292(an)-292(allo)-28(catable)-292(in)28(teger)-292(arra)28(y)-292(of)]TJ -53.48 -11.956 Td [(rank)-333(1.)]TJ/F27 9.9626 Tf -24.907 -26.226 Td [(get)]TJ +/F27 9.9626 Tf -24.906 -20.409 Td [(ext)]TJ ET q -1 0 0 1 116.018 267.673 cm +1 0 0 1 167.146 176.799 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 119.455 267.474 Td [(con)32(text)-383(|)-384(Get)-383(comm)32(unication)-384(con)32(text)]TJ -0 g 0 G -0 g 0 G -/F30 9.9626 Tf -19.56 -18.505 Td [(ictxt)-525(=)-525(desc%get_context\050\051)]TJ -0 g 0 G -/F27 9.9626 Tf 0 -22.105 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 -20.174 Td [(On)-383(En)32(try)]TJ -0 g 0 G -0 g 0 G - 0 -20.175 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 +/F27 9.9626 Tf 170.583 176.599 Td [(index)]TJ 0 g 0 G -/F27 9.9626 Tf -80.359 -34.06 Td [(On)-383(Return)]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 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(v)28(ector)-334(of)-333(in)28(teger)-333(t)27(yp)-27(e,)-334(see)]TJ +0 0 1 rg 0 0 1 RG + [-333(3.3)]TJ 0 g 0 G + [(.)]TJ 0 g 0 G - 0 -20.174 Td [(F)96(unction)-384(v)64(alue)]TJ +/F27 9.9626 Tf -24.906 -20.408 Td [(o)32(vrlap)]TJ +ET +q +1 0 0 1 182.684 132.48 cm +[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S +Q +BT +/F27 9.9626 Tf 186.122 132.281 Td [(index)]TJ 0 g 0 G -/F8 9.9626 Tf 78.387 0 Td [(The)-333(comm)27(unication)-333(con)28(text.)]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 - 88.488 -29.888 Td [(13)]TJ + 141.968 -29.888 Td [(10)]TJ 0 g 0 G ET endstream endobj -890 0 obj +908 0 obj << -/Length 4851 +/Length 5178 >> stream 0 g 0 G 0 g 0 G -BT -/F27 9.9626 Tf 150.705 706.129 Td [(Clone)-383(|)-384(clone)-383(curren)32(t)-383(ob)-64(ject)]TJ -0 g 0 G -0 g 0 G -/F30 9.9626 Tf 0 -18.844 Td [(call)-1050(desc%clone\050descout,info\051)]TJ -0 g 0 G -/F27 9.9626 Tf 0 -22.65 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 -20.902 Td [(On)-383(En)32(try)]TJ -0 g 0 G -0 g 0 G - 0 -20.902 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.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 -0 g 0 G -/F27 9.9626 Tf -80.358 -34.605 Td [(On)-383(Return)]TJ -0 g 0 G -0 g 0 G - 0 -20.902 Td [(descout)]TJ -0 g 0 G -/F8 9.9626 Tf 42.757 0 Td [(A)-333(cop)27(y)-333(of)-333(the)-334(in)1(put)-334(ob)-55(ject.)]TJ 0 g 0 G -/F27 9.9626 Tf -42.757 -20.902 Td [(info)]TJ +BT +/F8 9.9626 Tf 133.99 706.129 Td [(1.)]TJ 0 g 0 G -/F8 9.9626 Tf 23.758 0 Td [(Return)-333(co)-28(de.)]TJ/F27 9.9626 Tf -23.758 -27.192 Td [(CNV)-383(|)-384(con)32(v)32(ert)-383(in)32(ternal)-384(storage)-383(format)]TJ + [-500(Pro)-28(cess)-333(iden)28(ti\014er;)]TJ 0 g 0 G + 0 -17.286 Td [(2.)]TJ 0 g 0 G -/F30 9.9626 Tf 0 -18.844 Td [(call)-1050(desc%cnv\050mold\051)]TJ + [-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 0 g 0 G -/F27 9.9626 Tf 0 -22.65 Td [(T)32(yp)-32(e:)]TJ + 0 -17.287 Td [(3.)]TJ 0 g 0 G -/F8 9.9626 Tf 33.797 0 Td [(Async)28(hronous.)]TJ + [-500(Indices)-333(of)-334(p)-27(oin)27(ts)-333(to)-333(b)-28(e)-333(receiv)27(ed;)]TJ 0 g 0 G -/F27 9.9626 Tf -33.797 -20.902 Td [(On)-383(En)32(try)]TJ + 0 -17.286 Td [(4.)]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 0 g 0 G - 0 -20.902 Td [(desc)]TJ + 0 -17.286 Td [(5.)]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 + [-500(Indices)-333(of)-334(p)-27(oin)27(ts)-333(to)-333(b)-28(e)-333(sen)27(t;)]TJ -9.188 -22.618 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(v)28(ector)-333(of)-334(in)28(teger)-333(t)27(yp)-27(e,)-334(see)]TJ +0 0 1 rg 0 0 1 RG + [-333(3.3)]TJ 0 g 0 G -/F27 9.9626 Tf -80.358 -32.858 Td [(mold)]TJ + [(.)]TJ 0 g 0 G -/F8 9.9626 Tf 29.805 0 Td [(the)-333(desred)-334(in)28(teger)-333(storage)-334(format.)]TJ -4.899 -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 [(Sp)-28(eci\014ed)-222(as:)-389(a)-222(ob)-56(ject)-222(of)-222(t)28(yp)-28(e)-222(deriv)28(e)-1(d)-222(from)-222(\050in)28(teger\051)]TJ/F30 9.9626 Tf 219.871 0 Td [(psb)]TJ +/F27 9.9626 Tf -24.907 -22.617 Td [(o)32(vr)]TJ ET q -1 0 0 1 411.8 355.452 cm -[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +1 0 0 1 116.758 591.948 cm +[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F30 9.9626 Tf 414.939 355.253 Td [(T)]TJ +/F27 9.9626 Tf 120.195 591.749 Td [(mst)]TJ ET q -1 0 0 1 420.797 355.452 cm -[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S -Q -BT -/F30 9.9626 Tf 423.935 355.253 Td [(base)]TJ -ET -q -1 0 0 1 445.484 355.452 cm -[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S -Q -BT -/F30 9.9626 Tf 448.622 355.253 Td [(vect)]TJ -ET -q -1 0 0 1 470.171 355.452 cm -[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S -Q -BT -/F30 9.9626 Tf 473.309 355.253 Td [(type)]TJ/F8 9.9626 Tf 20.922 0 Td [(.)]TJ -343.526 -22.895 Td [(The)]TJ/F30 9.9626 Tf 20.085 0 Td [(mold)]TJ/F8 9.9626 Tf 23.848 0 Td [(argumen)28(ts)-294(ma)28(y)-294(b)-28(e)-294(emplo)28(y)28(ed)-294(to)-294(in)28(terface)-294(with)-293(sp)-28(ecial)-294(devices,)-302(suc)28(h)-294(as)]TJ -43.933 -11.955 Td [(GPUs)-333(and)-334(other)-333(accelerators.)]TJ/F27 9.9626 Tf 0 -27.191 Td [(psb)]TJ -ET -q -1 0 0 1 168.641 293.411 cm -[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S -Q -BT -/F27 9.9626 Tf 172.078 293.212 Td [(cd)]TJ -ET -q -1 0 0 1 184.223 293.411 cm -[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S -Q -BT -/F27 9.9626 Tf 187.66 293.212 Td [(get)]TJ -ET -q -1 0 0 1 203.782 293.411 cm +1 0 0 1 139.405 591.948 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 207.22 293.212 Td [(large)]TJ +/F27 9.9626 Tf 142.842 591.749 Td [(idx)]TJ +0 g 0 G +/F8 9.9626 Tf 20.575 0 Td [(A)-368(l)1(is)-1(t)-367(to)-368(r)1(e)-1(tri)1(e)-1(v)28(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.615 -11.955 Td [(sp)-28(ectiv)28(e)-333(mas)-1(ter)-333(pro)-28(cess.)]TJ 0 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(v)28(ector)-333(of)-334(in)28(teger)-333(t)27(yp)-27(e,)-334(see)]TJ +0 0 1 rg 0 0 1 RG + [-333(3.3)]TJ +0 g 0 G + [(.)]TJ +0 g 0 G +/F27 9.9626 Tf -24.907 -22.618 Td [(o)32(vrlap)]TJ ET q -1 0 0 1 232.357 293.411 cm +1 0 0 1 131.875 545.42 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 235.794 293.212 Td [(threshold)-268(|)-268(Get)-268(threshold)-269(for)-268(index)-268(mapping)-268(switc)32(h)]TJ +/F27 9.9626 Tf 135.312 545.221 Td [(elem)]TJ 0 g 0 G +/F8 9.9626 Tf 28.214 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 -/F30 9.9626 Tf -85.089 -18.844 Td [(ith)-525(=)-525(psb_cd_get_large_threshold\050\051)]TJ + -29.536 -22.617 Td [(1.)]TJ 0 g 0 G -/F27 9.9626 Tf 0 -22.65 Td [(T)32(yp)-32(e:)]TJ + [-500(Ov)28(erlap)-333(p)-28(oin)28(t)-334(index;)]TJ 0 g 0 G -/F8 9.9626 Tf 33.797 0 Td [(Async)28(hronous.)]TJ + 0 -17.287 Td [(2.)]TJ 0 g 0 G -/F27 9.9626 Tf -33.797 -20.902 Td [(On)-383(Return)]TJ + [-500(Num)28(b)-28(er)-333(of)-334(pr)1(o)-28(cesses)-334(sharing)-333(that)-333(o)27(v)28(erlap)-333(p)-28(oin)28(ts;)]TJ 0 g 0 G + 0 -17.286 Td [(3.)]TJ 0 g 0 G - 0 -20.903 Td [(F)96(unction)-384(v)64(alue)]TJ + [-500(Index)-333(of)-334(a)-333(\134master")-333(pro)-28(cess:)]TJ -9.188 -22.617 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 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 -27.191 Td [(psb)]TJ -ET -q -1 0 0 1 168.641 182.921 cm -[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S -Q -BT -/F27 9.9626 Tf 172.078 182.722 Td [(cd)]TJ -ET -q -1 0 0 1 184.223 182.921 cm -[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S -Q -BT -/F27 9.9626 Tf 187.66 182.722 Td [(set)]TJ -ET -q -1 0 0 1 202.573 182.921 cm -[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S -Q -BT -/F27 9.9626 Tf 206.01 182.722 Td [(large)]TJ +/F27 9.9626 Tf -24.907 -22.618 Td [(bnd)]TJ ET q -1 0 0 1 231.147 182.921 cm +1 0 0 1 119.678 442.996 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 234.585 182.722 Td [(threshold)-323(|)-324(Set)-323(threshold)-323(for)-324(index)-323(mapping)-324(switc)32(h)]TJ +/F27 9.9626 Tf 123.115 442.796 Td [(elem)]TJ +0 g 0 G +/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 -21.944 Td [(The)-450(F)83(ortran)-450(2003)-450(declaration)-450(for)]TJ/F30 9.9626 Tf 152.457 0 Td [(psb_desc_type)]TJ/F8 9.9626 Tf 72.477 0 Td [(structures)-450(is)-450(as)-450(follo)28(ws:)-678(A)]TJ 0 g 0 G 0 g 0 G -/F30 9.9626 Tf -83.88 -18.844 Td [(call)-525(psb_cd_set_large_threshold\050ith\051)]TJ 0 g 0 G -/F27 9.9626 Tf 0 -22.65 Td [(T)32(yp)-32(e:)]TJ 0 g 0 G -/F8 9.9626 Tf 33.797 0 Td [(Sync)28(hronous.)]TJ 0 g 0 G -/F27 9.9626 Tf -33.797 -20.902 Td [(On)-383(En)32(try)]TJ +/F30 9.9626 Tf -207.747 -21.604 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 [(type\050psb_i_vect_type\051)-525(::)-525(v_halo_index)]TJ 0 -11.955 Td [(type\050psb_i_vect_type\051)-525(::)-525(v_ext_index)]TJ 0 -11.955 Td [(type\050psb_i_vect_type\051)-525(::)-525(v_ovrlap_index)]TJ 0 -11.956 Td [(type\050psb_i_vect_type\051)-525(::)-525(v_ovr_mst_idx)]TJ 0 -11.955 Td [(integer,)-525(allocatable)-1050(::)-525(ovrlap_elem\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/F8 9.9626 Tf -17.187 -30.054 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 + 0 -24.98 Td [(comm)28(unication)-415(desc)-1(ri)1(ptor)-416(asso)-27(ciate)-1(d)-415(with)-415(a)-415(sparse)-415(matrix)-415(has)-416(a)-415(state,)-435(whic)27(h)]TJ 0 -11.955 Td [(can)-333(tak)27(e)-333(the)-333(follo)28(wing)-334(v)56(alues:)]TJ 0 g 0 G -/F8 9.9626 Tf 166.874 -29.888 Td [(14)]TJ +/F27 9.9626 Tf 0 -21.944 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.956 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 -24.907 -22.617 Td [(Assem)32(bled:)]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.955 Td [(this)-333(state.)]TJ +0 g 0 G + 141.968 -29.888 Td [(11)]TJ 0 g 0 G ET endstream endobj -898 0 obj +923 0 obj << -/Length 9583 +/Length 5236 >> stream 0 g 0 G 0 g 0 G -0 g 0 G BT -/F27 9.9626 Tf 99.895 706.129 Td [(ith)]TJ -0 g 0 G -/F8 9.9626 Tf 18.985 0 Td [(the)-333(new)-334(threshold)-333(for)-333(comm)27(u)1(nication)-334(descriptors.)]TJ 5.922 -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(alue)-333(greater)-333(than)-334(zero.)]TJ -24.907 -22.293 Td [(Note:)-756(the)-490(threshold)-489(v)56(alue)-489(is)-490(only)-489(queried)-489(b)28(y)-490(th)1(e)-490(library)-489(at)-489(the)-489(time)-490(a)-489(call)]TJ 0 -11.955 Td [(to)]TJ/F30 9.9626 Tf 13.432 0 Td [(psb_cdall)]TJ/F8 9.9626 Tf 51.648 0 Td [(is)-459(executed,)-491(therefore)-459(c)27(hangi)1(ng)-460(the)-459(threshold)-459(has)-459(no)-460(e\013ect)-459(on)]TJ -65.08 -11.955 Td [(comm)28(unication)-464(desc)-1(r)1(iptors)-465(that)-464(ha)28(v)28(e)-464(already)-464(b)-28(een)-464(initialized.)-837(Moreo)28(v)27(er)-464(the)]TJ 0 -11.956 Td [(threshold)-333(m)27(ust)-333(ha)28(v)28(e)-334(the)-333(same)-333(v)55(alue)-333(on)-333(all)-334(pro)-27(c)-1(esses.)]TJ/F27 9.9626 Tf 0 -26.393 Td [(3.1.2)-1150(Named)-383(Constan)31(ts)]TJ -0 g 0 G - 0 -18.564 Td [(psb)]TJ +/F27 9.9626 Tf 150.705 706.129 Td [(3.1.1)-1150(Descriptor)-384(M)1(etho)-32(ds)]TJ 0 -18.549 Td [(3.1.2)-1150(get)]TJ ET q -1 0 0 1 117.832 555.391 cm +1 0 0 1 201.835 687.78 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 121.269 555.192 Td [(none)]TJ +/F27 9.9626 Tf 205.272 687.58 Td [(lo)-32(cal)]TJ ET q -1 0 0 1 145.666 555.391 cm +1 0 0 1 229.032 687.78 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 154.084 555.192 Td [(Generic)-333(no-op;)]TJ +/F27 9.9626 Tf 232.469 687.58 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 -/F27 9.9626 Tf -54.189 -20.301 Td [(psb)]TJ -ET -q -1 0 0 1 117.832 535.09 cm -[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S -Q -BT -/F27 9.9626 Tf 121.269 534.891 Td [(ro)-32(ot)]TJ -ET -q -1 0 0 1 142.905 535.09 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 151.324 534.891 Td [(Default)-333(ro)-28(ot)-333(pro)-28(cess)-334(for)-333(broadcast)-333(and)-333(scatte)-1(r)-333(op)-28(erations;)]TJ +/F30 9.9626 Tf -81.764 -18.548 Td [(nr)-525(=)-525(desc%get_local_rows\050\051)]TJ 0 g 0 G -/F27 9.9626 Tf -51.429 -20.301 Td [(psb)]TJ -ET -q -1 0 0 1 117.832 514.789 cm -[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S -Q -BT -/F27 9.9626 Tf 121.269 514.59 Td [(nohalo)]TJ -ET -q -1 0 0 1 154.895 514.789 cm -[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S -Q +/F27 9.9626 Tf 0 -22.174 Td [(T)32(yp)-32(e:)]TJ 0 g 0 G -BT -/F8 9.9626 Tf 163.314 514.59 Td [(Do)-333(not)-334(fetc)28(h)-333(halo)-333(elem)-1(en)28(ts;)]TJ +/F8 9.9626 Tf 33.797 0 Td [(Async)28(hronous.)]TJ 0 g 0 G -/F27 9.9626 Tf -63.419 -20.301 Td [(psb)]TJ -ET -q -1 0 0 1 117.832 494.489 cm -[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S -Q -BT -/F27 9.9626 Tf 121.269 494.289 Td [(halo)]TJ -ET -q -1 0 0 1 142.802 494.489 cm -[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S -Q +/F27 9.9626 Tf -33.797 -20.267 Td [(On)-383(En)32(try)]TJ 0 g 0 G -BT -/F8 9.9626 Tf 151.22 494.289 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.3 Td [(psb)]TJ -ET -q -1 0 0 1 117.832 474.188 cm -[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S -Q -BT -/F27 9.9626 Tf 121.269 473.989 Td [(sum)]TJ -ET -q -1 0 0 1 142.388 474.188 cm -[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S -Q + 0 -20.267 Td [(desc)]TJ 0 g 0 G -BT -/F8 9.9626 Tf 150.806 473.989 Td [(Sum)-333(o)27(v)28(erlapp)-27(e)-1(d)-333(elemen)28(ts)]TJ +/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 0 g 0 G -/F27 9.9626 Tf -50.911 -20.301 Td [(psb)]TJ -ET -q -1 0 0 1 117.832 453.887 cm -[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S -Q -BT -/F27 9.9626 Tf 121.269 453.688 Td [(a)32(vg)]TJ -ET -q -1 0 0 1 138.983 453.887 cm -[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S -Q +/F27 9.9626 Tf -80.358 -34.13 Td [(On)-383(Return)]TJ 0 g 0 G -BT -/F8 9.9626 Tf 147.401 453.688 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 -47.506 -20.301 Td [(psb)]TJ -ET -q -1 0 0 1 117.832 433.586 cm -[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S -Q -BT -/F27 9.9626 Tf 121.269 433.387 Td [(comm)]TJ -ET -q -1 0 0 1 151.872 433.586 cm -[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S -Q -BT -/F27 9.9626 Tf 155.309 433.387 Td [(halo)]TJ -ET -q -1 0 0 1 176.842 433.586 cm -[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S -Q + 0 -20.267 Td [(F)96(unction)-384(v)64(alue)]TJ 0 g 0 G -BT -/F8 9.9626 Tf 185.26 433.387 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 78.386 0 Td [(The)-460(n)28(um)27(b)-27(er)-461(of)-460(lo)-28(cal)-460(ro)28(ws,)-492(i.e.)-825(the)-460(n)28(um)27(b)-27(er)-461(of)-460(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(ces)-1(s;)-435(as)-401(explained)-401(in)]TJ +0 0 1 rg 0 0 1 RG + [-401(1)]TJ 0 g 0 G -/F27 9.9626 Tf -267.377 -20.301 Td [(psb)]TJ + [(,)-418(it)-401(is)-401(equal)-401(to)]TJ/F14 9.9626 Tf 249.678 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.431 0 Td [(+)]TJ/F14 9.9626 Tf 10.413 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.767 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)-334(p)1(ro)-28(cess.)]TJ/F27 9.9626 Tf -24.906 -26.35 Td [(3.1.3)-1150(get)]TJ ET q -1 0 0 1 117.832 413.286 cm +1 0 0 1 201.835 489.912 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 121.269 413.086 Td [(comm)]TJ +/F27 9.9626 Tf 205.272 489.712 Td [(lo)-32(cal)]TJ ET q -1 0 0 1 151.872 413.286 cm +1 0 0 1 229.032 489.912 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 155.309 413.086 Td [(ext)]TJ -ET -q -1 0 0 1 171.75 413.286 cm -[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S -Q +/F27 9.9626 Tf 232.469 489.712 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 -81.764 -18.548 Td [(nc)-525(=)-525(desc%get_local_cols\050\051)]TJ +0 g 0 G +/F27 9.9626 Tf 0 -22.174 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 -20.267 Td [(On)-383(En)32(try)]TJ +0 g 0 G +0 g 0 G + 0 -20.267 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.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 +0 g 0 G +/F27 9.9626 Tf -80.358 -34.129 Td [(On)-383(Return)]TJ 0 g 0 G -BT -/F8 9.9626 Tf 180.168 413.086 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 -257.054 -20.3 Td [(psb)]TJ + 0 -20.267 Td [(F)96(unction)-384(v)64(alue)]TJ +0 g 0 G +/F8 9.9626 Tf 78.386 0 Td [(The)-361(n)28(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(indices)-360(used)-361(b)28(y)]TJ -53.48 -11.955 Td [(the)-421(curren)28(t)-421(pro)-28(cess,)-443(including)-421(b)-27(oth)-421(lo)-28(cal)-421(and)-421(halo)-421(ind)1(ice)-1(s;)-464(as)-421(explained)]TJ 0 -11.955 Td [(in)]TJ +0 0 1 rg 0 0 1 RG + [-344(1)]TJ +0 g 0 G + [(,)-346(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.031 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.03 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.768 0 Td [(.)-475(The)-344(returned)-343(v)55(al)1(ue)-344(is)-344(sp)-27(ec)-1(i)1(\014c)-344(to)-344(the)]TJ -153.339 -11.956 Td [(calling)-333(pro)-28(cess.)]TJ/F27 9.9626 Tf -24.906 -26.349 Td [(3.1.4)-1150(get)]TJ ET q -1 0 0 1 117.832 392.985 cm +1 0 0 1 201.835 280.088 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 121.269 392.786 Td [(comm)]TJ +/F27 9.9626 Tf 205.272 279.889 Td [(global)]TJ ET q -1 0 0 1 151.872 392.985 cm +1 0 0 1 235.716 280.088 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 155.309 392.786 Td [(o)32(vr)]TJ -ET -q -1 0 0 1 172.172 392.985 cm -[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S -Q +/F27 9.9626 Tf 239.153 279.889 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 -BT -/F8 9.9626 Tf 180.59 392.786 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 -273.167 -20.301 Td [(psb)]TJ +/F30 9.9626 Tf -88.448 -18.548 Td [(nr)-525(=)-525(desc%get_global_rows\050\051)]TJ +0 g 0 G +/F27 9.9626 Tf 0 -22.174 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 -20.267 Td [(On)-383(En)32(try)]TJ +0 g 0 G +0 g 0 G + 0 -20.268 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 +0 g 0 G +/F27 9.9626 Tf -80.358 -34.129 Td [(On)-383(Return)]TJ +0 g 0 G +0 g 0 G + 0 -20.267 Td [(F)96(unction)-384(v)64(alue)]TJ +0 g 0 G +/F8 9.9626 Tf 78.386 0 Td [(The)-390(n)28(um)27(b)-27(er)-391(of)-390(global)-390(ro)28(ws,)-405(i.e.)-615(the)-390(size)-391(of)-390(the)-390(global)-390(index)]TJ -53.48 -11.955 Td [(space.)]TJ +0 g 0 G + 141.968 -29.888 Td [(12)]TJ +0 g 0 G ET -q -1 0 0 1 117.832 372.684 cm -[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S -Q + +endstream +endobj +927 0 obj +<< +/Length 4435 +>> +stream +0 g 0 G +0 g 0 G BT -/F27 9.9626 Tf 121.269 372.485 Td [(comm)]TJ +/F27 9.9626 Tf 99.895 706.129 Td [(3.1.5)-1150(get)]TJ ET q -1 0 0 1 151.872 372.684 cm +1 0 0 1 151.025 706.328 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 155.309 372.485 Td [(mo)32(v)]TJ +/F27 9.9626 Tf 154.462 706.129 Td [(global)]TJ ET q -1 0 0 1 177.001 372.684 cm +1 0 0 1 184.906 706.328 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 372.485 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.386 Td [(3.2)-1125(Sparse)-375(Matrix)-375(class)]TJ/F8 9.9626 Tf 0 -18.564 Td [(The)]TJ/F30 9.9626 Tf 20.653 0 Td [(psb)]TJ -ET -q -1 0 0 1 136.867 325.734 cm -[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S -Q -BT -/F30 9.9626 Tf 140.005 325.535 Td [(Tspmat)]TJ -ET -q -1 0 0 1 172.015 325.734 cm -[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S -Q BT -/F30 9.9626 Tf 175.153 325.535 Td [(type)]TJ/F8 9.9626 Tf 24.416 0 Td [(class)-351(con)28(tains)-351(all)-351(information)-350(ab)-28(out)-351(the)-351(lo)-27(cal)-351(p)-28(ortion)-351(of)]TJ -99.674 -11.956 Td [(the)-249(sparse)-249(matrix)-248(and)-249(its)-249(storage)-249(mo)-27(de.)-417(Its)-248(design)-249(is)-249(based)-249(on)-248(the)-249(ST)83(A)83(TE)-248(design)]TJ 0 -11.955 Td [(pattern)-347([)]TJ -1 0 0 rg 1 0 0 RG - [(13)]TJ +/F27 9.9626 Tf 188.343 706.129 Td [(cols)-383(|)-384(Get)-383(n)32(um)32(b)-32(er)-383(of)-384(global)-383(cols)]TJ 0 g 0 G - [(])-346(as)-347(detailed)-347(in)-347([)]TJ -1 0 0 rg 1 0 0 RG - [(11)]TJ 0 g 0 G - [(];)-353(the)-347(t)28(yp)-28(e)-346(declaration)-347(is)-347(sho)28(wn)-347(in)-347(\014)1(gure)]TJ -0 0 1 rg 0 0 1 RG - [-347(4)]TJ +/F30 9.9626 Tf -88.448 -18.505 Td [(nr)-525(=)-525(desc%get_global_cols\050\051)]TJ 0 g 0 G - [-347(where)]TJ/F30 9.9626 Tf 0 -11.955 Td [(T)]TJ/F8 9.9626 Tf 8.552 0 Td [(is)-333(a)-334(placeholder)-333(for)-333(the)-334(d)1(ata)-334(t)28(yp)-28(e)-333(and)-333(precision)-334(v)56(arian)28(ts)]TJ +/F27 9.9626 Tf 0 -22.105 Td [(T)32(yp)-32(e:)]TJ 0 g 0 G -/F27 9.9626 Tf -8.552 -20.207 Td [(S)]TJ +/F8 9.9626 Tf 33.797 0 Td [(Async)28(hronous.)]TJ 0 g 0 G -/F8 9.9626 Tf 11.347 0 Td [(Single)-333(precision)-334(real;)]TJ +/F27 9.9626 Tf -33.797 -20.175 Td [(On)-383(En)32(try)]TJ 0 g 0 G -/F27 9.9626 Tf -11.347 -20.301 Td [(D)]TJ 0 g 0 G -/F8 9.9626 Tf 13.768 0 Td [(Double)-333(precision)-334(real;)]TJ + 0 -20.174 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 0 g 0 G -/F27 9.9626 Tf -13.768 -20.3 Td [(C)]TJ +/F27 9.9626 Tf -80.359 -34.06 Td [(On)-383(Return)]TJ 0 g 0 G -/F8 9.9626 Tf 13.256 0 Td [(Single)-333(precision)-334(complex;)]TJ 0 g 0 G -/F27 9.9626 Tf -13.256 -20.301 Td [(Z)]TJ + 0 -20.174 Td [(F)96(unction)-384(v)64(alue)]TJ 0 g 0 G -/F8 9.9626 Tf 11.983 0 Td [(Double)-333(precision)-334(complex.)]TJ -11.983 -20.207 Td [(The)-222(actual)-222(data)-223(is)-222(con)28(tained)-222(in)-222(the)-223(p)-27(olymorphic)-223(comp)-27(onen)27(t)]TJ/F30 9.9626 Tf 255.515 0 Td [(a%a)]TJ/F8 9.9626 Tf 17.905 0 Td [(of)-222(t)28(yp)-28(e)]TJ/F30 9.9626 Tf 31.548 0 Td [(psb)]TJ +/F8 9.9626 Tf 78.387 0 Td [(The)-273(n)28(um)28(b)-28(er)-273(of)-272(global)-273(cols;)-293(usually)-273(this)-273(is)-272(e)-1(q)1(ual)-273(to)-273(the)-273(n)28(um)28(b)-28(er)]TJ -53.48 -11.956 Td [(of)-333(global)-334(ro)28(ws.)]TJ/F27 9.9626 Tf -24.907 -26.226 Td [(3.1.6)-1150(get)]TJ ET q -1 0 0 1 421.182 188.552 cm -[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +1 0 0 1 151.025 520.998 cm +[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F30 9.9626 Tf 424.32 188.353 Td [(T)]TJ +/F27 9.9626 Tf 154.462 520.799 Td [(global)]TJ ET q -1 0 0 1 430.178 188.552 cm -[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +1 0 0 1 184.906 520.998 cm +[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F30 9.9626 Tf 433.316 188.353 Td [(base)]TJ -ET -q -1 0 0 1 454.865 188.552 cm -[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S -Q -BT -/F30 9.9626 Tf 458.003 188.353 Td [(sparse)]TJ -ET -q -1 0 0 1 490.013 188.552 cm -[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S -Q -BT -/F30 9.9626 Tf 493.151 188.353 Td [(mat)]TJ/F8 9.9626 Tf 15.691 0 Td [(;)]TJ -408.947 -11.955 Td [(its)-300(sp)-28(eci\014c)-301(la)28(y)28(out)-300(can)-301(b)-28(e)-300(c)28(hosen)-301(dyn)1(am)-1(ically)-300(among)-300(the)-301(prede\014ned)-300(t)28(yp)-28(es,)-307(or)-300(an)]TJ 0 -11.955 Td [(en)28(tirely)-419(new)-419(storage)-419(la)28(y)27(out)-419(can)-419(b)-27(e)-419(implemen)27(ted)-419(and)-418(pass)-1(ed)-418(to)-419(the)-419(library)-419(at)]TJ 0 -11.955 Td [(run)28(time)-420(via)-419(the)]TJ/F30 9.9626 Tf 73.447 0 Td [(psb_spasb)]TJ/F8 9.9626 Tf 51.252 0 Td [(routine.)-703(The)-419(follo)28(wing)-420(v)28(ery)-419(common)-420(formats)-419(are)]TJ -124.699 -11.956 Td [(precompiled)-333(in)-334(PSBLAS)-333(and)-333(th)28(us)-334(are)-333(alw)28(a)28(ys)-334(a)28(v)56(ailable:)]TJ -0 g 0 G -/F27 9.9626 Tf 0 -20.206 Td [(psb)]TJ -ET -q -1 0 0 1 117.832 120.525 cm -[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S -Q -BT -/F27 9.9626 Tf 121.269 120.326 Td [(T)]TJ -ET -q -1 0 0 1 129.926 120.525 cm -[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S -Q -BT -/F27 9.9626 Tf 133.364 120.326 Td [(co)-32(o)]TJ -ET -q -1 0 0 1 150.918 120.525 cm -[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S -Q -BT -/F27 9.9626 Tf 154.355 120.326 Td [(sparse)]TJ -ET -q -1 0 0 1 185.985 120.525 cm -[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S -Q -BT -/F27 9.9626 Tf 189.422 120.326 Td [(mat)]TJ -0 g 0 G -/F8 9.9626 Tf 24.554 0 Td [(Co)-28(ordinate)-333(storage;)]TJ -0 g 0 G - 52.794 -29.888 Td [(15)]TJ -0 g 0 G -ET - -endstream -endobj -906 0 obj -<< -/Length 5360 ->> -stream -0 g 0 G -0 g 0 G -0 g 0 G -0 g 0 G -0 g 0 G -0 g 0 G -0 g 0 G -BT -/F30 9.9626 Tf 186.943 710.003 Td [(type)-525(::)-525(psb_Tspmat_type)]TJ 10.46 -11.955 Td [(class\050psb_T_base_sparse_mat\051,)-525(allocatable)-1050(::)-525(a)]TJ -10.46 -11.955 Td [(end)-525(type)-1050(psb_Tspmat_type)]TJ -0 g 0 G -/F8 9.9626 Tf -24.74 -30.054 Td [(Figure)-333(4:)-889(The)-334(P)1(SBLAS)-334(de\014ned)-333(data)-333(t)27(yp)-27(e)-334(that)-333(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 -11.498 -32.583 Td [(psb)]TJ -ET -q -1 0 0 1 168.641 623.655 cm -[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S -Q -BT -/F27 9.9626 Tf 172.078 623.456 Td [(T)]TJ -ET -q -1 0 0 1 180.736 623.655 cm -[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S -Q -BT -/F27 9.9626 Tf 184.173 623.456 Td [(csr)]TJ -ET -q -1 0 0 1 199.19 623.655 cm -[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S -Q -BT -/F27 9.9626 Tf 202.627 623.456 Td [(sparse)]TJ -ET -q -1 0 0 1 234.257 623.655 cm -[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S -Q -BT -/F27 9.9626 Tf 237.694 623.456 Td [(mat)]TJ -0 g 0 G -/F8 9.9626 Tf 24.553 0 Td [(Compressed)-333(s)-1(torage)-333(b)28(y)-333(ro)27(ws;)]TJ -0 g 0 G -/F27 9.9626 Tf -111.542 -21.441 Td [(psb)]TJ -ET -q -1 0 0 1 168.641 602.214 cm -[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S -Q -BT -/F27 9.9626 Tf 172.078 602.015 Td [(T)]TJ -ET -q -1 0 0 1 180.736 602.214 cm -[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S -Q -BT -/F27 9.9626 Tf 184.173 602.015 Td [(csc)]TJ -ET -q -1 0 0 1 199.563 602.214 cm -[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S -Q -BT -/F27 9.9626 Tf 203.001 602.015 Td [(sparse)]TJ -ET -q -1 0 0 1 234.63 602.214 cm -[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S -Q -BT -/F27 9.9626 Tf 238.067 602.015 Td [(mat)]TJ -0 g 0 G -/F8 9.9626 Tf 24.554 0 Td [(Compressed)-333(storage)-334(b)28(y)-333(columns;)]TJ -111.916 -21.062 Td [(The)-373(inner)-373(sparse)-373(matrix)-373(has)-373(an)-373(asso)-28(ciated)-373(state,)-383(whic)28(h)-373(can)-373(tak)28(e)-373(the)-373(follo)27(win)1(g)]TJ 0 -11.955 Td [(v)56(alues:)]TJ -0 g 0 G -/F27 9.9626 Tf 0 -21.062 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)-28(cation)1(,)-312(and)-306(b)-28(efore)-306(the)-306(\014rst)-306(assem)27(bly;)-315(in)]TJ -10.503 -11.956 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 -21.441 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 -21.441 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 -24.906 -21.062 Td [(The)-358(only)-357(storage)-358(v)56(arian)28(t)-358(supp)-28(orting)-357(the)-358(build)-357(state)-358(is)-358(COO;)-357(all)-358(other)-358(v)56(arian)28(ts)]TJ 0 -11.956 Td [(are)-333(obtained)-334(b)28(y)-333(con)28(v)27(ersion)-333(to/from)-333(it.)]TJ/F27 9.9626 Tf 0 -27.906 Td [(3.2.1)-1150(Sparse)-383(Matrix)-384(Metho)-32(ds)]TJ 0 -19.095 Td [(get)]TJ -ET -q -1 0 0 1 166.827 365.459 cm -[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S -Q -BT -/F27 9.9626 Tf 170.264 365.259 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 -19.094 Td [(nr)-525(=)-525(a%get_nrows\050\051)]TJ -0 g 0 G -/F27 9.9626 Tf 0 -23.055 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.441 Td [(On)-383(En)32(try)]TJ -0 g 0 G -0 g 0 G - 0 -21.441 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 -0 g 0 G - -57.285 -35.01 Td [(On)-383(Return)]TJ -0 g 0 G -0 g 0 G - 0 -21.441 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/F27 9.9626 Tf -248.554 -27.906 Td [(get)]TJ -ET -q -1 0 0 1 166.827 184.115 cm -[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S -Q -BT -/F27 9.9626 Tf 170.264 183.916 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 -19.095 Td [(nc)-525(=)-525(a%get_ncols\050\051)]TJ -0 g 0 G -/F27 9.9626 Tf 0 -23.054 Td [(T)32(yp)-32(e:)]TJ -0 g 0 G -/F8 9.9626 Tf 33.797 0 Td [(Async)28(hronous.)]TJ +/F27 9.9626 Tf 188.343 520.799 Td [(indices)-383(|)-384(Get)-383(v)32(ector)-383(of)-384(global)-383(indices)]TJ 0 g 0 G -/F27 9.9626 Tf -33.797 -21.441 Td [(On)-383(En)32(try)]TJ 0 g 0 G +/F30 9.9626 Tf -88.448 -18.505 Td [(myidx)-525(=)-525(desc%get_global_indices\050[owned]\051)]TJ 0 g 0 G -/F8 9.9626 Tf 166.874 -29.888 Td [(16)]TJ -0 g 0 G -ET - -endstream -endobj -910 0 obj -<< -/Length 3499 ->> -stream -0 g 0 G -0 g 0 G -0 g 0 G -BT -/F27 9.9626 Tf 99.895 706.129 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 -0 g 0 G - -57.286 -37.92 Td [(On)-383(Return)]TJ -0 g 0 G -0 g 0 G - 0 -25.32 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 -33.052 Td [(get)]TJ -ET -q -1 0 0 1 116.018 598.081 cm -[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S -Q -BT -/F27 9.9626 Tf 119.455 597.882 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 -20.9 Td [(nz)-525(=)-525(a%get_nnzeros\050\051)]TJ -0 g 0 G -/F27 9.9626 Tf 0 -25.964 Td [(T)32(yp)-32(e:)]TJ +/F27 9.9626 Tf 0 -22.105 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 -25.32 Td [(On)-383(En)32(try)]TJ +/F27 9.9626 Tf -33.797 -20.174 Td [(On)-383(En)32(try)]TJ 0 g 0 G 0 g 0 G - 0 -25.321 Td [(a)]TJ + 0 -20.175 Td [(desc)]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 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 0 g 0 G - -57.286 -37.919 Td [(On)-383(Return)]TJ +/F27 9.9626 Tf -96.416 -32.13 Td [(o)32(wned)]TJ 0 g 0 G +/F8 9.9626 Tf 36.647 0 Td [(Cho)-28(ose)-439(if)-439(y)28(ou)-439(only)-439(w)27(an)28(t)-439(o)28(wned)-439(indices)-439(\050)]TJ/F30 9.9626 Tf 183.494 0 Td [(owned=.true.)]TJ/F8 9.9626 Tf 62.764 0 Td [(\051)-439(or)-439(also)-439(halo)]TJ -257.998 -11.955 Td [(indices)-333(\050)]TJ/F30 9.9626 Tf 36.585 0 Td [(owned=.false.)]TJ/F8 9.9626 Tf 67.994 0 Td [(\051.)-444(Scop)-28(e:)]TJ/F27 9.9626 Tf 43.449 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf 23.073 0 Td [(.)]TJ -171.101 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(optional)]TJ/F8 9.9626 Tf 40.577 0 Td [(;)-333(default:)]TJ/F30 9.9626 Tf 43.448 0 Td [(.true.)]TJ/F8 9.9626 Tf 31.382 0 Td [(.)]TJ 0 g 0 G - 0 -25.321 Td [(F)96(unction)-384(v)64(alue)]TJ +/F27 9.9626 Tf -169.925 -34.06 Td [(On)-383(Return)]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 -27.313 Td [(Notes)]TJ 0 g 0 G -/F8 9.9626 Tf 12.177 -23.971 Td [(1.)]TJ + 0 -20.174 Td [(F)96(unction)-384(v)64(alue)]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.956 Td [(matrix)-333(ma)27(y)-333(b)-28(e)-333(di\013eren)28(t)-334(f)1(o)-1(r)-333(di\013eren)28(t)-333(storage)-334(c)28(hoices.)]TJ/F27 9.9626 Tf -24.907 -33.052 Td [(get)]TJ +/F8 9.9626 Tf 78.387 0 Td [(The)-292(global)-292(ind)1(ice)-1(s,)-300(returned)-291(as)-292(an)-292(allo)-28(catable)-292(in)28(teger)-292(arra)28(y)-292(of)]TJ -53.48 -11.956 Td [(kind)]TJ/F30 9.9626 Tf 22.416 0 Td [(psb_lpk_)]TJ/F8 9.9626 Tf 45.164 0 Td [(and)-333(rank)-333(1.)]TJ/F27 9.9626 Tf -92.487 -26.226 Td [(3.1.7)-1150(get)]TJ ET q -1 0 0 1 116.018 317.135 cm +1 0 0 1 151.025 267.673 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 119.455 316.936 Td [(size)-503(|)-503(Get)-503(maxim)32(um)-503(n)32(um)32(b)-32(er)-503(of)-503(nonzero)-503(elemen)32(ts)-503(in)-503(a)-503(sparse)]TJ -19.56 -11.956 Td [(matrix)]TJ +/F27 9.9626 Tf 154.462 267.474 Td [(con)32(text)-383(|)-384(Get)-383(comm)32(unication)-384(con)32(text)]TJ 0 g 0 G 0 g 0 G -/F30 9.9626 Tf 0 -20.899 Td [(maxnz)-525(=)-525(a%get_size\050\051)]TJ +/F30 9.9626 Tf -54.567 -18.505 Td [(ictxt)-525(=)-525(desc%get_context\050\051)]TJ 0 g 0 G -/F27 9.9626 Tf 0 -25.964 Td [(T)32(yp)-32(e:)]TJ +/F27 9.9626 Tf 0 -22.105 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 -25.321 Td [(On)-383(En)32(try)]TJ +/F27 9.9626 Tf -33.797 -20.174 Td [(On)-383(En)32(try)]TJ 0 g 0 G 0 g 0 G - 0 -25.32 Td [(a)]TJ + 0 -20.175 Td [(desc)]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 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 0 g 0 G - -57.286 -37.92 Td [(On)-383(Return)]TJ +/F27 9.9626 Tf -80.359 -34.06 Td [(On)-383(Return)]TJ 0 g 0 G 0 g 0 G - 0 -25.32 Td [(F)96(unction)-384(v)64(alue)]TJ + 0 -20.174 Td [(F)96(unction)-384(v)64(alue)]TJ 0 g 0 G -/F8 9.9626 Tf 78.387 0 Td [(The)-253(maxim)28(um)-254(n)28(um)28(b)-28(er)-253(of)-253(nonzero)-254(elemen)28(ts)-253(that)-253(can)-254(b)-27(e)-254(stored)]TJ -53.48 -11.955 Td [(in)-333(sparse)-334(matrix)]TJ/F30 9.9626 Tf 74.056 0 Td [(a)]TJ/F8 9.9626 Tf 8.551 0 Td [(using)-333(its)-334(curren)28(t)-333(memory)-334(allo)-27(cation.)]TJ +/F8 9.9626 Tf 78.387 0 Td [(The)-333(comm)27(unication)-333(con)28(text.)]TJ 0 g 0 G - 59.361 -29.888 Td [(17)]TJ + 88.488 -29.888 Td [(13)]TJ 0 g 0 G ET @@ -6155,4560 +5561,4744 @@ endobj << /Type /ObjStm /N 100 -/First 865 -/Length 8969 +/First 875 +/Length 9119 >> stream -821 0 822 56 823 112 824 168 825 224 826 280 827 336 828 392 829 448 812 505 -835 635 811 777 833 929 837 1076 27 1133 838 1189 839 1246 840 1303 841 1360 842 1417 -843 1474 31 1531 834 1587 846 1730 844 1864 848 2011 35 2067 39 2122 849 2177 845 2234 -854 2352 850 2502 851 2649 852 2801 856 2953 857 3010 858 3067 859 3124 860 3181 861 3238 -853 3295 865 3387 862 3529 863 3681 867 3833 868 3889 869 3945 870 4001 871 4056 872 4112 -873 4168 874 4224 875 4280 876 4336 864 4393 880 4485 877 4627 878 4773 882 4919 43 4976 -47 5032 51 5088 55 5144 879 5200 884 5318 886 5432 59 5488 63 5543 67 5598 883 5653 -889 5745 891 5859 71 5916 75 5972 892 6028 79 6085 83 6141 888 6197 897 6289 893 6439 -894 6596 895 6746 899 6892 87 6948 91 7003 900 7058 901 7115 896 7172 905 7277 907 7391 -903 7448 95 7505 99 7561 103 7617 904 7674 909 7766 911 7880 107 7936 912 7992 111 8048 +821 0 826 148 827 205 19 262 823 318 837 477 834 619 835 765 839 912 836 968 +842 1073 844 1187 23 1244 846 1300 847 1357 848 1414 849 1470 850 1527 851 1583 852 1638 +853 1695 841 1752 856 1882 840 2016 858 2164 859 2220 860 2276 861 2332 862 2387 863 2443 +864 2499 865 2555 866 2611 867 2667 868 2723 869 2779 870 2835 871 2891 872 2947 855 3004 +877 3134 854 3276 875 3428 879 3575 27 3632 880 3688 881 3745 882 3802 883 3859 884 3916 +885 3973 31 4030 876 4086 888 4229 886 4363 890 4510 35 4566 39 4621 891 4676 887 4733 +896 4851 892 5001 893 5148 894 5300 898 5452 899 5509 900 5566 901 5623 902 5680 903 5737 +895 5794 907 5886 904 6028 905 6180 909 6332 910 6388 911 6444 912 6500 913 6555 914 6611 +915 6667 916 6723 917 6779 918 6835 906 6892 922 6984 919 7126 920 7272 924 7418 43 7475 +47 7531 51 7587 55 7643 921 7699 926 7817 928 7931 59 7987 63 8042 67 8097 925 8152 % 821 0 obj << -/D [813 0 R /XYZ 99.895 539.509 null] ->> -% 822 0 obj -<< -/D [813 0 R /XYZ 99.895 517.113 null] ->> -% 823 0 obj -<< -/D [813 0 R /XYZ 99.895 494.716 null] ->> -% 824 0 obj -<< -/D [813 0 R /XYZ 99.895 469.986 null] ->> -% 825 0 obj -<< -/D [813 0 R /XYZ 99.895 440.855 null] +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[0 1 0] +/Rect [305.735 637.885 312.709 646.297] +/A << /S /GoTo /D (cite.2007d) >> >> % 826 0 obj << -/D [813 0 R /XYZ 99.895 411.448 null] +/D [824 0 R /XYZ 149.705 753.953 null] >> % 827 0 obj << -/D [813 0 R /XYZ 99.895 393.995 null] +/D [824 0 R /XYZ 303.562 347.015 null] >> -% 828 0 obj -<< -/D [813 0 R /XYZ 99.895 376.819 null] ->> -% 829 0 obj +% 19 0 obj << -/D [813 0 R /XYZ 115.138 139.255 null] +/D [824 0 R /XYZ 150.705 272.271 null] >> -% 812 0 obj +% 823 0 obj << -/Font << /F8 561 0 R /F30 769 0 R /F7 770 0 R /F32 773 0 R /F31 775 0 R /F45 830 0 R >> +/Font << /F27 584 0 R /F8 585 0 R /F14 814 0 R /F11 797 0 R /F10 813 0 R /F16 582 0 R >> +/XObject << /Im2 822 0 R >> /ProcSet [ /PDF /Text ] >> -% 835 0 obj +% 837 0 obj << /Type /Page -/Contents 836 0 R -/Resources 834 0 R +/Contents 838 0 R +/Resources 836 0 R /MediaBox [0 0 595.276 841.89] -/Parent 831 0 R -/Annots [ 811 0 R 833 0 R ] +/Parent 778 0 R +/Annots [ 834 0 R 835 0 R ] >> -% 811 0 obj +% 834 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [269.731 674.788 284.454 683.699] -/A << /S /GoTo /D (subsection.2.3) >> +/Rect [406.358 354.515 413.331 366.47] +/A << /S /GoTo /D (section.3) >> >> -% 833 0 obj +% 835 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [169.998 271.903 176.972 282.751] -/A << /S /GoTo /D (section.3) >> ->> -% 837 0 obj -<< -/D [835 0 R /XYZ 149.705 753.953 null] ->> -% 27 0 obj -<< -/D [835 0 R /XYZ 150.705 716.092 null] ->> -% 838 0 obj -<< -/D [835 0 R /XYZ 150.705 671.799 null] +/Rect [173.863 318.352 180.837 330.307] +/A << /S /GoTo /D (section.6) >> >> % 839 0 obj << -/D [835 0 R /XYZ 150.705 649.383 null] +/D [837 0 R /XYZ 98.895 753.953 null] >> -% 840 0 obj +% 836 0 obj << -/D [835 0 R /XYZ 150.705 576.158 null] +/Font << /F27 584 0 R /F8 585 0 R /F14 814 0 R /F30 811 0 R >> +/ProcSet [ /PDF /Text ] >> -% 841 0 obj +% 842 0 obj << -/D [835 0 R /XYZ 150.705 530.385 null] +/Type /Page +/Contents 843 0 R +/Resources 841 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 778 0 R >> -% 842 0 obj +% 844 0 obj << -/D [835 0 R /XYZ 150.705 497.951 null] +/D [842 0 R /XYZ 149.705 753.953 null] >> -% 843 0 obj +% 23 0 obj << -/D [835 0 R /XYZ 150.705 478.303 null] +/D [842 0 R /XYZ 150.705 716.092 null] >> -% 31 0 obj +% 846 0 obj << -/D [835 0 R /XYZ 150.705 424.511 null] +/D [842 0 R /XYZ 150.705 284.758 null] >> -% 834 0 obj +% 847 0 obj << -/Font << /F27 560 0 R /F8 561 0 R /F11 755 0 R /F9 802 0 R /F30 769 0 R /F16 558 0 R /F17 735 0 R >> -/ProcSet [ /PDF /Text ] +/D [842 0 R /XYZ 150.705 263.953 null] >> -% 846 0 obj +% 848 0 obj << -/Type /Page -/Contents 847 0 R -/Resources 845 0 R -/MediaBox [0 0 595.276 841.89] -/Parent 831 0 R -/Annots [ 844 0 R ] +/D [842 0 R /XYZ 150.705 242.87 null] >> -% 844 0 obj +% 849 0 obj << -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [269.318 174.287 276.292 185.135] -/A << /S /GoTo /D (section.6) >> +/D [842 0 R /XYZ 150.705 221.788 null] >> -% 848 0 obj +% 850 0 obj << -/D [846 0 R /XYZ 98.895 753.953 null] +/D [842 0 R /XYZ 150.705 188.75 null] >> -% 35 0 obj +% 851 0 obj << -/D [846 0 R /XYZ 99.895 716.092 null] +/D [842 0 R /XYZ 150.705 167.6 null] >> -% 39 0 obj +% 852 0 obj << -/D [846 0 R /XYZ 99.895 280.417 null] +/D [842 0 R /XYZ 150.705 148.591 null] >> -% 849 0 obj +% 853 0 obj << -/D [846 0 R /XYZ 342.427 237.273 null] +/D [842 0 R /XYZ 150.705 132.072 null] >> -% 845 0 obj +% 841 0 obj << -/Font << /F16 558 0 R /F8 561 0 R /F30 769 0 R /F27 560 0 R /F14 772 0 R >> +/Font << /F16 582 0 R /F8 585 0 R /F11 797 0 R /F30 811 0 R /F9 845 0 R /F17 777 0 R >> /ProcSet [ /PDF /Text ] >> -% 854 0 obj +% 856 0 obj << /Type /Page -/Contents 855 0 R -/Resources 853 0 R +/Contents 857 0 R +/Resources 855 0 R /MediaBox [0 0 595.276 841.89] -/Parent 831 0 R -/Annots [ 850 0 R 851 0 R 852 0 R ] +/Parent 874 0 R +/Annots [ 840 0 R ] >> -% 850 0 obj +% 840 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [452.103 399.657 459.077 411.612] -/A << /S /GoTo /D (section.6) >> ->> -% 851 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [356.323 194.074 371.046 204.923] -/A << /S /GoTo /D (subsection.3.3) >> ->> -% 852 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [356.323 149.756 371.046 160.604] -/A << /S /GoTo /D (subsection.3.3) >> ->> -% 856 0 obj -<< -/D [854 0 R /XYZ 149.705 753.953 null] ->> -% 857 0 obj -<< -/D [854 0 R /XYZ 150.705 294.274 null] +/Rect [176.109 690.964 182.571 703.28] +/A << /S /GoTo /D (Hfootnote.3) >> >> % 858 0 obj << -/D [854 0 R /XYZ 150.705 278.093 null] +/D [856 0 R /XYZ 98.895 753.953 null] >> % 859 0 obj << -/D [854 0 R /XYZ 150.705 261.911 null] +/D [856 0 R /XYZ 99.895 716.092 null] >> % 860 0 obj << -/D [854 0 R /XYZ 150.705 245.729 null] +/D [856 0 R /XYZ 99.895 686.739 null] >> % 861 0 obj << -/D [854 0 R /XYZ 150.705 229.547 null] +/D [856 0 R /XYZ 99.895 618.93 null] >> -% 853 0 obj +% 862 0 obj << -/Font << /F14 772 0 R /F8 561 0 R /F27 560 0 R >> -/ProcSet [ /PDF /Text ] +/D [856 0 R /XYZ 99.895 596.257 null] >> -% 865 0 obj +% 863 0 obj << -/Type /Page -/Contents 866 0 R -/Resources 864 0 R -/MediaBox [0 0 595.276 841.89] -/Parent 831 0 R -/Annots [ 862 0 R 863 0 R ] +/D [856 0 R /XYZ 99.895 573.861 null] >> -% 862 0 obj +% 864 0 obj << -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [305.513 611.433 320.236 622.281] -/A << /S /GoTo /D (subsection.3.3) >> +/D [856 0 R /XYZ 99.895 539.509 null] >> -% 863 0 obj +% 865 0 obj << -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [305.513 564.905 320.236 575.753] -/A << /S /GoTo /D (subsection.3.3) >> +/D [856 0 R /XYZ 99.895 517.113 null] +>> +% 866 0 obj +<< +/D [856 0 R /XYZ 99.895 494.716 null] >> % 867 0 obj << -/D [865 0 R /XYZ 98.895 753.953 null] +/D [856 0 R /XYZ 99.895 469.986 null] >> % 868 0 obj << -/D [865 0 R /XYZ 99.895 716.092 null] +/D [856 0 R /XYZ 99.895 440.855 null] >> % 869 0 obj << -/D [865 0 R /XYZ 99.895 701.526 null] +/D [856 0 R /XYZ 99.895 411.448 null] >> % 870 0 obj << -/D [865 0 R /XYZ 99.895 684.24 null] +/D [856 0 R /XYZ 99.895 393.995 null] >> % 871 0 obj << -/D [865 0 R /XYZ 99.895 666.954 null] +/D [856 0 R /XYZ 99.895 376.819 null] >> % 872 0 obj << -/D [865 0 R /XYZ 99.895 649.667 null] ->> -% 873 0 obj -<< -/D [865 0 R /XYZ 99.895 535.287 null] ->> -% 874 0 obj -<< -/D [865 0 R /XYZ 99.895 518.001 null] ->> -% 875 0 obj -<< -/D [865 0 R /XYZ 99.895 500.715 null] +/D [856 0 R /XYZ 115.138 139.255 null] >> -% 876 0 obj -<< -/D [865 0 R /XYZ 147.412 273.553 null] ->> -% 864 0 obj +% 855 0 obj << -/Font << /F8 561 0 R /F27 560 0 R /F30 769 0 R >> +/Font << /F8 585 0 R /F30 811 0 R /F7 812 0 R /F32 815 0 R /F31 817 0 R /F45 873 0 R >> /ProcSet [ /PDF /Text ] >> -% 880 0 obj +% 877 0 obj << /Type /Page -/Contents 881 0 R -/Resources 879 0 R +/Contents 878 0 R +/Resources 876 0 R /MediaBox [0 0 595.276 841.89] -/Parent 831 0 R -/Annots [ 877 0 R 878 0 R ] +/Parent 874 0 R +/Annots [ 854 0 R 875 0 R ] >> -% 877 0 obj +% 854 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [351.231 524.53 358.204 536.485] -/A << /S /GoTo /D (section.1) >> +/Rect [269.731 674.788 284.454 683.699] +/A << /S /GoTo /D (subsection.2.3) >> >> -% 878 0 obj +% 875 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [186.34 314.707 193.314 326.662] -/A << /S /GoTo /D (section.1) >> +/Rect [169.998 271.903 176.972 282.751] +/A << /S /GoTo /D (section.3) >> +>> +% 879 0 obj +<< +/D [877 0 R /XYZ 149.705 753.953 null] +>> +% 27 0 obj +<< +/D [877 0 R /XYZ 150.705 716.092 null] +>> +% 880 0 obj +<< +/D [877 0 R /XYZ 150.705 671.799 null] +>> +% 881 0 obj +<< +/D [877 0 R /XYZ 150.705 649.383 null] >> % 882 0 obj << -/D [880 0 R /XYZ 149.705 753.953 null] +/D [877 0 R /XYZ 150.705 576.158 null] >> -% 43 0 obj +% 883 0 obj << -/D [880 0 R /XYZ 150.705 716.092 null] +/D [877 0 R /XYZ 150.705 530.385 null] >> -% 47 0 obj +% 884 0 obj << -/D [880 0 R /XYZ 150.705 699.536 null] +/D [877 0 R /XYZ 150.705 497.951 null] >> -% 51 0 obj +% 885 0 obj << -/D [880 0 R /XYZ 150.705 501.668 null] +/D [877 0 R /XYZ 150.705 478.303 null] >> -% 55 0 obj +% 31 0 obj << -/D [880 0 R /XYZ 150.705 291.844 null] +/D [877 0 R /XYZ 150.705 424.511 null] >> -% 879 0 obj +% 876 0 obj << -/Font << /F27 560 0 R /F30 769 0 R /F8 561 0 R /F14 772 0 R /F10 771 0 R >> +/Font << /F27 584 0 R /F8 585 0 R /F11 797 0 R /F9 845 0 R /F30 811 0 R /F16 582 0 R /F17 777 0 R >> /ProcSet [ /PDF /Text ] >> -% 884 0 obj +% 888 0 obj << /Type /Page -/Contents 885 0 R -/Resources 883 0 R +/Contents 889 0 R +/Resources 887 0 R /MediaBox [0 0 595.276 841.89] -/Parent 887 0 R +/Parent 874 0 R +/Annots [ 886 0 R ] >> % 886 0 obj << -/D [884 0 R /XYZ 98.895 753.953 null] +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [269.318 174.287 276.292 185.135] +/A << /S /GoTo /D (section.6) >> +>> +% 890 0 obj +<< +/D [888 0 R /XYZ 98.895 753.953 null] >> -% 59 0 obj +% 35 0 obj << -/D [884 0 R /XYZ 99.895 718.084 null] +/D [888 0 R /XYZ 99.895 716.092 null] >> -% 63 0 obj +% 39 0 obj << -/D [884 0 R /XYZ 99.895 532.754 null] +/D [888 0 R /XYZ 99.895 280.417 null] >> -% 67 0 obj +% 891 0 obj << -/D [884 0 R /XYZ 99.895 279.429 null] +/D [888 0 R /XYZ 342.427 237.273 null] >> -% 883 0 obj +% 887 0 obj << -/Font << /F27 560 0 R /F30 769 0 R /F8 561 0 R >> +/Font << /F16 582 0 R /F8 585 0 R /F30 811 0 R /F27 584 0 R /F14 814 0 R >> /ProcSet [ /PDF /Text ] >> -% 889 0 obj +% 896 0 obj << /Type /Page -/Contents 890 0 R -/Resources 888 0 R +/Contents 897 0 R +/Resources 895 0 R /MediaBox [0 0 595.276 841.89] -/Parent 887 0 R +/Parent 874 0 R +/Annots [ 892 0 R 893 0 R 894 0 R ] >> -% 891 0 obj +% 892 0 obj << -/D [889 0 R /XYZ 149.705 753.953 null] +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [452.103 399.657 459.077 411.612] +/A << /S /GoTo /D (section.6) >> >> -% 71 0 obj +% 893 0 obj << -/D [889 0 R /XYZ 150.705 718.084 null] +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [356.323 194.074 371.046 204.923] +/A << /S /GoTo /D (subsection.3.3) >> >> -% 75 0 obj +% 894 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [356.323 149.756 371.046 160.604] +/A << /S /GoTo /D (subsection.3.3) >> +>> +% 898 0 obj << -/D [889 0 R /XYZ 150.705 519.229 null] +/D [896 0 R /XYZ 149.705 753.953 null] >> -% 892 0 obj +% 899 0 obj << -/D [889 0 R /XYZ 395.482 355.253 null] +/D [896 0 R /XYZ 150.705 294.274 null] >> -% 79 0 obj +% 900 0 obj << -/D [889 0 R /XYZ 150.705 305.167 null] +/D [896 0 R /XYZ 150.705 278.093 null] >> -% 83 0 obj +% 901 0 obj << -/D [889 0 R /XYZ 150.705 194.677 null] +/D [896 0 R /XYZ 150.705 261.911 null] >> -% 888 0 obj +% 902 0 obj +<< +/D [896 0 R /XYZ 150.705 245.729 null] +>> +% 903 0 obj +<< +/D [896 0 R /XYZ 150.705 229.547 null] +>> +% 895 0 obj << -/Font << /F27 560 0 R /F30 769 0 R /F8 561 0 R >> +/Font << /F14 814 0 R /F8 585 0 R /F27 584 0 R >> /ProcSet [ /PDF /Text ] >> -% 897 0 obj +% 907 0 obj << /Type /Page -/Contents 898 0 R -/Resources 896 0 R +/Contents 908 0 R +/Resources 906 0 R /MediaBox [0 0 595.276 841.89] -/Parent 887 0 R -/Annots [ 893 0 R 894 0 R 895 0 R ] +/Parent 874 0 R +/Annots [ 904 0 R 905 0 R ] >> -% 893 0 obj +% 904 0 obj << /Type /Annot /Subtype /Link -/Border[0 0 0]/H/I/C[0 1 0] -/Rect [137.251 300.628 149.206 309.041] -/A << /S /GoTo /D (cite.DesignPatterns) >> +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [305.513 611.433 320.236 622.281] +/A << /S /GoTo /D (subsection.3.3) >> >> -% 894 0 obj +% 905 0 obj << /Type /Annot /Subtype /Link -/Border[0 0 0]/H/I/C[0 1 0] -/Rect [218.095 300.628 230.05 309.041] -/A << /S /GoTo /D (cite.Sparse03) >> +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [305.513 564.905 320.236 575.753] +/A << /S /GoTo /D (subsection.3.3) >> >> -% 895 0 obj +% 909 0 obj << -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [408.687 298.137 415.661 310.092] -/A << /S /GoTo /D (figure.4) >> +/D [907 0 R /XYZ 98.895 753.953 null] >> -% 899 0 obj +% 910 0 obj << -/D [897 0 R /XYZ 98.895 753.953 null] +/D [907 0 R /XYZ 99.895 716.092 null] >> -% 87 0 obj +% 911 0 obj << -/D [897 0 R /XYZ 99.895 583.867 null] +/D [907 0 R /XYZ 99.895 701.526 null] >> -% 91 0 obj +% 912 0 obj << -/D [897 0 R /XYZ 99.895 356.203 null] +/D [907 0 R /XYZ 99.895 684.24 null] >> -% 900 0 obj +% 913 0 obj << -/D [897 0 R /XYZ 120.548 325.535 null] +/D [907 0 R /XYZ 99.895 666.954 null] >> -% 901 0 obj +% 914 0 obj << -/D [897 0 R /XYZ 404.863 188.353 null] +/D [907 0 R /XYZ 99.895 649.667 null] >> -% 896 0 obj +% 915 0 obj +<< +/D [907 0 R /XYZ 99.895 535.287 null] +>> +% 916 0 obj +<< +/D [907 0 R /XYZ 99.895 518.001 null] +>> +% 917 0 obj << -/Font << /F27 560 0 R /F8 561 0 R /F30 769 0 R /F16 558 0 R >> +/D [907 0 R /XYZ 99.895 500.715 null] +>> +% 918 0 obj +<< +/D [907 0 R /XYZ 147.412 273.553 null] +>> +% 906 0 obj +<< +/Font << /F8 585 0 R /F27 584 0 R /F30 811 0 R >> /ProcSet [ /PDF /Text ] >> -% 905 0 obj +% 922 0 obj << /Type /Page -/Contents 906 0 R -/Resources 904 0 R +/Contents 923 0 R +/Resources 921 0 R /MediaBox [0 0 595.276 841.89] -/Parent 887 0 R +/Parent 874 0 R +/Annots [ 919 0 R 920 0 R ] >> -% 907 0 obj +% 919 0 obj << -/D [905 0 R /XYZ 149.705 753.953 null] +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [351.231 524.53 358.204 536.485] +/A << /S /GoTo /D (section.1) >> >> -% 903 0 obj +% 920 0 obj << -/D [905 0 R /XYZ 205.817 667.994 null] +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [186.34 314.707 193.314 326.662] +/A << /S /GoTo /D (section.1) >> >> -% 95 0 obj +% 924 0 obj << -/D [905 0 R /XYZ 150.705 394.197 null] +/D [922 0 R /XYZ 149.705 753.953 null] >> -% 99 0 obj +% 43 0 obj << -/D [905 0 R /XYZ 150.705 377.215 null] +/D [922 0 R /XYZ 150.705 716.092 null] >> -% 103 0 obj +% 47 0 obj << -/D [905 0 R /XYZ 150.705 195.871 null] +/D [922 0 R /XYZ 150.705 697.684 null] >> -% 904 0 obj +% 51 0 obj +<< +/D [922 0 R /XYZ 150.705 499.816 null] +>> +% 55 0 obj +<< +/D [922 0 R /XYZ 150.705 289.993 null] +>> +% 921 0 obj << -/Font << /F30 769 0 R /F8 561 0 R /F27 560 0 R >> +/Font << /F27 584 0 R /F30 811 0 R /F8 585 0 R /F14 814 0 R /F10 813 0 R >> /ProcSet [ /PDF /Text ] >> -% 909 0 obj +% 926 0 obj << /Type /Page -/Contents 910 0 R -/Resources 908 0 R +/Contents 927 0 R +/Resources 925 0 R /MediaBox [0 0 595.276 841.89] -/Parent 887 0 R +/Parent 929 0 R >> -% 911 0 obj +% 928 0 obj << -/D [909 0 R /XYZ 98.895 753.953 null] +/D [926 0 R /XYZ 98.895 753.953 null] >> -% 107 0 obj +% 59 0 obj << -/D [909 0 R /XYZ 99.895 609.837 null] +/D [926 0 R /XYZ 99.895 716.092 null] >> -% 912 0 obj +% 63 0 obj << -/D [909 0 R /XYZ 99.895 392.536 null] +/D [926 0 R /XYZ 99.895 530.879 null] >> -% 111 0 obj +% 67 0 obj << -/D [909 0 R /XYZ 99.895 328.891 null] +/D [926 0 R /XYZ 99.895 277.278 null] +>> +% 925 0 obj +<< +/Font << /F27 584 0 R /F30 811 0 R /F8 585 0 R >> +/ProcSet [ /PDF /Text ] >> endstream endobj -916 0 obj +932 0 obj << -/Length 3707 +/Length 4956 >> stream 0 g 0 G 0 g 0 G BT -/F27 9.9626 Tf 150.705 706.129 Td [(sizeof)-383(|)-384(Get)-383(memory)-383(o)-32(ccupation)-384(in)-383(b)32(ytes)-384(of)-383(a)-383(sparse)-384(matrix)]TJ +/F27 9.9626 Tf 150.705 706.129 Td [(3.1.8)-1150(Clone)-383(|)-384(clone)-383(curren)32(t)-383(ob)-64(ject)]TJ 0 g 0 G 0 g 0 G -/F30 9.9626 Tf 0 -19.674 Td [(memory_size)-525(=)-525(a%sizeof\050\051)]TJ +/F30 9.9626 Tf 0 -18.389 Td [(call)-1050(desc%clone\050descout,info\051)]TJ 0 g 0 G -/F27 9.9626 Tf 0 -23.989 Td [(T)32(yp)-32(e:)]TJ +/F27 9.9626 Tf 0 -21.557 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 -22.687 Td [(On)-383(En)32(try)]TJ +/F27 9.9626 Tf -33.797 -19.781 Td [(On)-383(En)32(try)]TJ 0 g 0 G 0 g 0 G - 0 -22.686 Td [(a)]TJ + 0 -19.781 Td [(desc)]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 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 0 g 0 G - -57.285 -35.944 Td [(On)-383(Return)]TJ +/F27 9.9626 Tf -80.358 -33.512 Td [(On)-383(Return)]TJ 0 g 0 G 0 g 0 G - 0 -22.687 Td [(F)96(unction)-384(v)64(alue)]TJ + 0 -19.781 Td [(descout)]TJ 0 g 0 G -/F8 9.9626 Tf 78.386 0 Td [(The)-333(memory)-334(o)-28(ccupation)-333(in)-333(b)28(ytes.)]TJ/F27 9.9626 Tf -78.386 -29.558 Td [(get)]TJ -ET -q -1 0 0 1 166.827 517.148 cm -[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S -Q -BT -/F27 9.9626 Tf 170.264 516.949 Td [(fm)32(t)-383(|)-384(Short)-383(description)-384(of)-383(the)-383(dynamic)-384(t)32(yp)-32(e)]TJ +/F8 9.9626 Tf 42.757 0 Td [(A)-333(cop)27(y)-333(of)-333(the)-334(in)1(put)-334(ob)-55(ject.)]TJ 0 g 0 G +/F27 9.9626 Tf -42.757 -19.78 Td [(info)]TJ 0 g 0 G -/F30 9.9626 Tf -19.559 -19.675 Td [(write\050*,*\051)-525(a%get_fmt\050\051)]TJ +/F8 9.9626 Tf 23.758 0 Td [(Return)-333(co)-28(de.)]TJ/F27 9.9626 Tf -23.758 -25.834 Td [(3.1.9)-1150(CNV)-383(|)-384(con)32(v)32(ert)-383(in)32(ternal)-384(storage)-383(format)]TJ 0 g 0 G -/F27 9.9626 Tf 0 -23.988 Td [(T)32(yp)-32(e:)]TJ 0 g 0 G -/F8 9.9626 Tf 33.797 0 Td [(Async)28(hronous.)]TJ +/F30 9.9626 Tf 0 -18.39 Td [(call)-1050(desc%cnv\050mold\051)]TJ 0 g 0 G -/F27 9.9626 Tf -33.797 -22.687 Td [(On)-383(En)32(try)]TJ +/F27 9.9626 Tf 0 -21.556 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 - 0 -22.687 Td [(a)]TJ +/F27 9.9626 Tf -33.797 -19.781 Td [(On)-383(En)32(try)]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 0 g 0 G - -57.285 -35.944 Td [(On)-383(Return)]TJ + 0 -19.781 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 0 g 0 G - 0 -22.686 Td [(F)96(unction)-384(v)64(alue)]TJ +/F27 9.9626 Tf -80.358 -31.736 Td [(mold)]TJ 0 g 0 G -/F8 9.9626 Tf 78.386 0 Td [(A)-484(short)-483(string)-484(describing)-484(the)-484(dynamic)-484(t)28(yp)-28(e)-483(of)-484(the)-484(matrix.)]TJ -53.48 -11.956 Td [(Prede\014ned)-333(v)55(alues)-333(include)]TJ/F30 9.9626 Tf 113.409 0 Td [(NULL)]TJ/F8 9.9626 Tf 20.921 0 Td [(,)]TJ/F30 9.9626 Tf 6.088 0 Td [(COO)]TJ/F8 9.9626 Tf 15.691 0 Td [(,)]TJ/F30 9.9626 Tf 6.089 0 Td [(CSR)]TJ/F8 9.9626 Tf 19.012 0 Td [(and)]TJ/F30 9.9626 Tf 19.371 0 Td [(CSC)]TJ/F8 9.9626 Tf 15.691 0 Td [(.)]TJ/F27 9.9626 Tf -241.178 -29.558 Td [(is)]TJ +/F8 9.9626 Tf 29.805 0 Td [(the)-333(desired)-334(in)28(teger)-333(storage)-334(format.)]TJ -4.899 -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 [(Sp)-28(eci\014ed)-222(as:)-389(a)-222(ob)-56(ject)-222(of)-222(t)28(yp)-28(e)-222(deriv)28(e)-1(d)-222(from)-222(\050in)28(teger\051)]TJ/F30 9.9626 Tf 219.871 0 Td [(psb)]TJ ET q -1 0 0 1 159.094 316.012 cm -[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S +1 0 0 1 411.8 368.849 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F27 9.9626 Tf 162.531 315.813 Td [(bld,)-383(is)]TJ +/F30 9.9626 Tf 414.939 368.65 Td [(T)]TJ ET q -1 0 0 1 193.834 316.012 cm -[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S +1 0 0 1 420.797 368.849 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F27 9.9626 Tf 197.271 315.813 Td [(up)-32(d,)-383(is)]TJ +/F30 9.9626 Tf 423.935 368.65 Td [(base)]TJ ET q -1 0 0 1 232.075 316.012 cm -[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S +1 0 0 1 445.484 368.849 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F27 9.9626 Tf 235.512 315.813 Td [(asb)-383(|)-384(Status)-383(c)32(hec)32(k)]TJ -0 g 0 G -0 g 0 G -/F30 9.9626 Tf -84.807 -19.674 Td [(if)-525(\050a%is_bld\050\051\051)-525(then)]TJ 0 -11.955 Td [(if)-525(\050a%is_upd\050\051\051)-525(then)]TJ 0 -11.955 Td [(if)-525(\050a%is_asb\050\051\051)-525(then)]TJ -0 g 0 G -/F27 9.9626 Tf 0 -23.989 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 -22.687 Td [(On)-383(En)32(try)]TJ -0 g 0 G -0 g 0 G - 0 -22.686 Td [(a)]TJ -0 g 0 G -/F8 9.9626 Tf 10.551 0 Td [(the)-333(sparse)-334(matrix)]TJ 14.356 -11.956 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.378 0 Td [(lo)-32(cal)]TJ -0 g 0 G - -57.285 -35.944 Td [(On)-383(Return)]TJ -0 g 0 G -0 g 0 G - 0 -22.686 Td [(F)96(unction)-384(v)64(alue)]TJ -0 g 0 G -/F8 9.9626 Tf 78.386 0 Td [(A)]TJ/F30 9.9626 Tf 9.728 0 Td [(logical)]TJ/F8 9.9626 Tf 38.869 0 Td [(v)56(alue)-227(indicating)-226(whether)-227(the)-226(m)-1(atr)1(ix)-227(is)-227(in)-226(the)-227(Build)1(,)]TJ -102.076 -11.955 Td [(Up)-28(date)-333(or)-333(Assem)27(bled)-333(state,)-333(resp)-28(ectiv)28(e)-1(l)1(y)83(.)]TJ -0 g 0 G - 141.967 -29.888 Td [(18)]TJ -0 g 0 G +/F30 9.9626 Tf 448.622 368.65 Td [(vect)]TJ ET - -endstream -endobj -920 0 obj -<< -/Length 4601 ->> -stream -0 g 0 G -0 g 0 G +q +1 0 0 1 470.171 368.849 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +Q BT -/F27 9.9626 Tf 99.895 706.129 Td [(is)]TJ +/F30 9.9626 Tf 473.309 368.65 Td [(type)]TJ/F8 9.9626 Tf 20.922 0 Td [(.)]TJ -343.526 -21.557 Td [(The)]TJ/F30 9.9626 Tf 20.085 0 Td [(mold)]TJ/F8 9.9626 Tf 23.848 0 Td [(argumen)28(ts)-294(ma)28(y)-294(b)-28(e)-294(emplo)28(y)28(ed)-294(to)-294(in)28(terface)-294(with)-293(sp)-28(ecial)-294(devices,)-302(suc)28(h)-294(as)]TJ -43.933 -11.955 Td [(GPUs)-333(and)-334(other)-333(accelerators.)]TJ/F27 9.9626 Tf 0 -25.834 Td [(3.1.10)-1150(psb)]TJ ET q -1 0 0 1 108.284 706.328 cm +1 0 0 1 209.377 309.503 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 111.722 706.129 Td [(lo)32(w)32(er,)-383(is)]TJ +/F27 9.9626 Tf 212.814 309.304 Td [(cd)]TJ ET q -1 0 0 1 153.63 706.328 cm +1 0 0 1 224.959 309.503 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 157.068 706.129 Td [(upp)-32(er,)-383(is)]TJ +/F27 9.9626 Tf 228.396 309.304 Td [(get)]TJ ET q -1 0 0 1 201.841 706.328 cm +1 0 0 1 244.518 309.503 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 205.278 706.129 Td [(triangle,)-383(i)-1(s)]TJ +/F27 9.9626 Tf 247.955 309.304 Td [(large)]TJ ET q -1 0 0 1 259.121 706.328 cm +1 0 0 1 273.093 309.503 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 262.558 706.129 Td [(unit)-383(|)-384(F)96(ormat)-383(c)32(hec)32(k)]TJ +/F27 9.9626 Tf 276.53 309.304 Td [(threshold)-458(|)-457(Get)-458(threshold)-458(for)-457(index)-458(map-)]TJ -85.089 -11.955 Td [(ping)-383(switc)32(h)]TJ 0 g 0 G 0 g 0 G -/F30 9.9626 Tf -162.663 -19.048 Td [(if)-525(\050a%is_triangle\050\051\051)-525(then)]TJ 0 -11.955 Td [(if)-525(\050a%is_upper\050\051\051)-525(then)]TJ 0 -11.955 Td [(if)-525(\050a%is_lower\050\051\051)-525(then)]TJ 0 -11.955 Td [(if)-525(\050a%is_unit\050\051\051)-525(then)]TJ -0 g 0 G -/F27 9.9626 Tf 0 -22.979 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.341 Td [(On)-383(En)32(try)]TJ -0 g 0 G -0 g 0 G - 0 -21.34 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 -0 g 0 G - -57.286 -34.934 Td [(On)-383(Return)]TJ -0 g 0 G -0 g 0 G - 0 -21.341 Td [(F)96(unction)-384(v)64(alue)]TJ -0 g 0 G -/F8 9.9626 Tf 78.387 0 Td [(A)]TJ/F30 9.9626 Tf 10.614 0 Td [(logical)]TJ/F8 9.9626 Tf 39.755 0 Td [(v)56(alue)-316(indicating)-315(whether)-316(the)-315(matrix)-316(is)-315(triangular;)]TJ -103.849 -11.955 Td [(if)]TJ/F30 9.9626 Tf 8.896 0 Td [(is_triangle\050\051)]TJ/F8 9.9626 Tf 71.078 0 Td [(returns)]TJ/F30 9.9626 Tf 34.19 0 Td [(.true.)]TJ/F8 9.9626 Tf 34.466 0 Td [(c)28(hec)27(k)-309(also)-310(if)-309(it)-310(is)-309(lo)28(w)27(er,)-314(upp)-28(er)-309(and)-310(with)]TJ -148.63 -11.955 Td [(a)-333(unit)-334(\050i.e.)-444(assumed\051)-333(diagonal.)]TJ/F27 9.9626 Tf -24.907 -27.773 Td [(cscn)32(v)-383(|)-384(Con)32(v)32(ert)-383(to)-384(a)-383(di\013eren)32(t)-383(storage)-384(format)]TJ +/F30 9.9626 Tf -40.736 -18.389 Td [(ith)-525(=)-525(psb_cd_get_large_threshold\050\051)]TJ 0 g 0 G -0 g 0 G -/F30 9.9626 Tf 0 -19.048 Td [(call)-1050(a%cscnv\050b,info)-525([,)-525(type,)-525(mold,)-525(dupl]\051)]TJ 0 -11.955 Td [(call)-1050(a%cscnv\050info)-525([,)-525(type,)-525(mold,)-525(dupl]\051)]TJ -0 g 0 G -/F27 9.9626 Tf 0 -22.979 Td [(T)32(yp)-32(e:)]TJ +/F27 9.9626 Tf 0 -21.557 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.34 Td [(On)-383(En)32(try)]TJ -0 g 0 G -0 g 0 G - 0 -21.341 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 [(A)-333(v)55(ariable)-333(of)-333(t)27(yp)-27(e)]TJ/F30 9.9626 Tf 81.943 0 Td [(psb_Tspmat_type)]TJ/F8 9.9626 Tf 78.455 0 Td [(.)]TJ -160.398 -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 -0 g 0 G -/F27 9.9626 Tf -80.359 -33.295 Td [(t)32(yp)-32(e)]TJ -0 g 0 G -/F8 9.9626 Tf 27.1 0 Td [(a)-333(string)-334(requesting)-333(a)-333(new)-334(format.)]TJ -2.193 -11.956 Td [(T)28(yp)-28(e:)-444(optional.)]TJ +/F27 9.9626 Tf -33.797 -19.781 Td [(On)-383(Return)]TJ 0 g 0 G -/F27 9.9626 Tf -24.907 -21.34 Td [(mold)]TJ 0 g 0 G -/F8 9.9626 Tf 29.805 0 Td [(a)-312(v)56(ariable)-312(of)]TJ/F30 9.9626 Tf 56.396 0 Td [(class\050psb_T_base_sparse_mat\051)]TJ/F8 9.9626 Tf 149.557 0 Td [(requesting)-312(a)-312(new)-312(format.)]TJ -210.851 -11.955 Td [(T)28(yp)-28(e:)-444(optional.)]TJ + 0 -19.781 Td [(F)96(unction)-384(v)64(alue)]TJ 0 g 0 G -/F27 9.9626 Tf -24.907 -21.34 Td [(dupl)]TJ -0 g 0 G -/F8 9.9626 Tf 27.259 0 Td [(an)-268(in)28(teger)-268(v)56(alue)-268(sp)-28(eci\014ng)-267(ho)27(w)-267(to)-268(handle)-268(duplicates)-268(\050see)-268(Named)-267(Constan)27(ts)]TJ -2.352 -11.956 Td [(b)-28(elo)28(w\051)]TJ +/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 -25.833 Td [(3.1.11)-1150(psb)]TJ +ET +q +1 0 0 1 209.377 192.207 cm +[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S +Q +BT +/F27 9.9626 Tf 212.814 192.008 Td [(cd)]TJ +ET +q +1 0 0 1 224.959 192.207 cm +[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S +Q +BT +/F27 9.9626 Tf 228.396 192.008 Td [(set)]TJ +ET +q +1 0 0 1 243.309 192.207 cm +[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S +Q +BT +/F27 9.9626 Tf 246.746 192.008 Td [(large)]TJ +ET +q +1 0 0 1 271.883 192.207 cm +[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S +Q +BT +/F27 9.9626 Tf 275.32 192.008 Td [(threshold)-522(|)-522(Set)-522(threshold)-522(for)-523(index)-522(map-)]TJ -83.879 -11.956 Td [(ping)-383(switc)32(h)]TJ 0 g 0 G -/F27 9.9626 Tf -24.907 -22.979 Td [(On)-383(Return)]TJ 0 g 0 G +/F30 9.9626 Tf -40.736 -18.389 Td [(call)-525(psb_cd_set_large_threshold\050ith\051)]TJ 0 g 0 G - 0 -21.34 Td [(b,a)]TJ +/F27 9.9626 Tf 0 -21.557 Td [(T)32(yp)-32(e:)]TJ 0 g 0 G -/F8 9.9626 Tf 20.098 0 Td [(A)-333(cop)27(y)-333(of)]TJ/F30 9.9626 Tf 45.386 0 Td [(a)]TJ/F8 9.9626 Tf 8.551 0 Td [(with)-333(a)-334(new)-333(storage)-333(format.)]TJ -49.128 -11.955 Td [(A)-333(v)55(ariable)-333(of)-333(t)27(yp)-27(e)]TJ/F30 9.9626 Tf 81.943 0 Td [(psb_Tspmat_type)]TJ/F8 9.9626 Tf 78.455 0 Td [(.)]TJ +/F8 9.9626 Tf 33.797 0 Td [(Sync)28(hronous.)]TJ 0 g 0 G -/F27 9.9626 Tf -185.305 -21.34 Td [(info)]TJ +/F27 9.9626 Tf -33.797 -19.78 Td [(On)-383(En)32(try)]TJ 0 g 0 G -/F8 9.9626 Tf 23.758 0 Td [(Return)-333(co)-28(de.)]TJ -23.758 -23.333 Td [(The)]TJ/F30 9.9626 Tf 20.085 0 Td [(mold)]TJ/F8 9.9626 Tf 23.848 0 Td [(argumen)28(ts)-294(ma)28(y)-294(b)-28(e)-294(emplo)28(y)28(ed)-294(to)-294(in)28(terface)-294(with)-293(sp)-28(ecial)-294(devices,)-302(suc)28(h)-294(as)]TJ -43.933 -11.955 Td [(GPUs)-333(and)-334(other)-333(accelerators.)]TJ 0 g 0 G - 166.875 -29.888 Td [(19)]TJ +/F8 9.9626 Tf 166.874 -29.888 Td [(14)]TJ 0 g 0 G ET endstream endobj -925 0 obj +938 0 obj << -/Length 4076 +/Length 5918 >> stream 0 g 0 G 0 g 0 G -BT -/F27 9.9626 Tf 150.705 706.129 Td [(csclip)-383(|)-384(Reduce)-383(to)-383(a)-384(submatrix)]TJ -0 g 0 G -0 g 0 G -/F30 9.9626 Tf 20.921 -19.41 Td [(call)-525(a%csclip\050b,info[,&)]TJ 15.691 -11.955 Td [(&)-525(imin,imax,jmin,jmax,rscale,cscale]\051)]TJ/F8 9.9626 Tf -21.668 -24.111 Td [(Returns)-222(the)-222(submatrix)]TJ/F30 9.9626 Tf 99.101 0 Td [(A\050imin:imax,jmin:jmax\051)]TJ/F8 9.9626 Tf 115.067 0 Td [(,)-244(optionally)-222(re)-1(scaling)-222(ro)28(w/-)]TJ -229.112 -11.955 Td [(col)-333(indices)-334(to)-333(the)-333(range)]TJ/F30 9.9626 Tf 104.691 0 Td [(1:imax-imin+1,1:jmax-jmin+1)]TJ/F8 9.9626 Tf 141.219 0 Td [(.)]TJ -0 g 0 G -/F27 9.9626 Tf -245.91 -21.57 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 -22.119 Td [(On)-383(En)32(try)]TJ -0 g 0 G -0 g 0 G - 0 -22.118 Td [(a)]TJ -0 g 0 G -/F8 9.9626 Tf 10.551 0 Td [(the)-333(sparse)-334(matrix.)]TJ 14.356 -11.956 Td [(A)-333(v)55(ariable)-333(of)-333(t)28(yp)-28(e)]TJ/F30 9.9626 Tf 81.942 0 Td [(psb_Tspmat_type)]TJ/F8 9.9626 Tf 78.456 0 Td [(.)]TJ -160.398 -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 -0 g 0 G -/F27 9.9626 Tf -80.358 -34.073 Td [(imin,imax,jmin,jmax)]TJ -0 g 0 G -/F8 9.9626 Tf 108.412 0 Td [(Minim)28(um)-334(an)1(d)-334(maxim)28(um)-333(ro)27(w)-333(and)-333(column)-333(indices)-1(.)]TJ -83.505 -11.956 Td [(T)28(yp)-28(e:)-444(optional.)]TJ -0 g 0 G -/F27 9.9626 Tf -24.907 -22.118 Td [(rscale,cscale)]TJ -0 g 0 G -/F8 9.9626 Tf 65.202 0 Td [(Whether)-333(to)-334(rescale)-333(ro)28(w/column)-334(indices.)-444(T)28(yp)-28(e:)-445(op)1(tional.)]TJ -0 g 0 G -/F27 9.9626 Tf -65.202 -24.111 Td [(On)-383(Return)]TJ 0 g 0 G +BT +/F27 9.9626 Tf 99.895 706.129 Td [(ith)]TJ 0 g 0 G - 0 -22.118 Td [(b)]TJ -0 g 0 G -/F8 9.9626 Tf 11.346 0 Td [(A)-333(cop)27(y)-333(of)-333(a)-334(submatri)1(x)-334(of)]TJ/F30 9.9626 Tf 112.44 0 Td [(a)]TJ/F8 9.9626 Tf 5.23 0 Td [(.)]TJ -104.109 -11.956 Td [(A)-333(v)55(ariable)-333(of)-333(t)27(y)1(p)-28(e)]TJ/F30 9.9626 Tf 81.942 0 Td [(psb_Tspmat_type)]TJ/F8 9.9626 Tf 78.456 0 Td [(.)]TJ -0 g 0 G -/F27 9.9626 Tf -185.305 -22.118 Td [(info)]TJ -0 g 0 G -/F8 9.9626 Tf 23.758 0 Td [(Return)-333(co)-28(de.)]TJ/F27 9.9626 Tf -23.758 -28.805 Td [(clean)]TJ +/F8 9.9626 Tf 18.985 0 Td [(the)-333(new)-334(threshold)-333(for)-333(comm)27(u)1(nication)-334(descriptors.)]TJ 5.922 -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(alue)-333(greater)-333(than)-334(zero.)]TJ -24.907 -21.496 Td [(Note:)-756(the)-490(threshold)-489(v)56(alue)-489(is)-490(only)-489(queried)-489(b)28(y)-490(th)1(e)-490(library)-489(at)-489(the)-489(time)-490(a)-489(call)]TJ 0 -11.955 Td [(to)]TJ/F30 9.9626 Tf 13.432 0 Td [(psb_cdall)]TJ/F8 9.9626 Tf 51.648 0 Td [(is)-459(executed,)-491(therefore)-459(c)27(hangi)1(ng)-460(the)-459(threshold)-459(has)-459(no)-460(e\013ect)-459(on)]TJ -65.08 -11.955 Td [(comm)28(unication)-464(desc)-1(r)1(iptors)-465(that)-464(ha)28(v)28(e)-464(already)-464(b)-28(een)-464(initialized.)-837(Moreo)28(v)27(er)-464(the)]TJ 0 -11.955 Td [(threshold)-333(m)27(ust)-333(ha)28(v)28(e)-334(the)-333(same)-333(v)55(alue)-333(on)-333(all)-334(pro)-27(c)-1(esses.)]TJ/F27 9.9626 Tf 0 -25.823 Td [(3.1.12)-1150(get)]TJ +ET +q +1 0 0 1 156.754 575.323 cm +[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S +Q +BT +/F27 9.9626 Tf 160.191 575.124 Td [(p)]TJ ET q -1 0 0 1 176.852 371.924 cm +1 0 0 1 167.243 575.323 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 180.289 371.725 Td [(zeros)-383(|)-384(Eliminate)-383(zero)-383(c)-1(o)-31(e\016ci)-1(e)1(n)31(ts)]TJ +/F27 9.9626 Tf 170.68 575.124 Td [(adjcncy)-383(|)-384(Get)-383(pro)-32(cess)-383(adjacency)-384(list)]TJ 0 g 0 G 0 g 0 G -/F30 9.9626 Tf -8.663 -19.41 Td [(call)-525(a%clean_zeros\050info\051)]TJ/F8 9.9626 Tf -5.977 -24.111 Td [(Eliminates)-285(zero)-284(co)-28(e\016cien)27(ts)-284(in)-285(the)-285(i)1(nput)-285(matrix.)-428(Note)-285(that)-285(dep)-27(ending)-285(on)-284(the)]TJ -14.944 -11.955 Td [(in)28(ternal)-333(storage)-333(format,)-333(there)-334(ma)28(y)-333(still)-333(b)-28(e)-333(some)-333(amoun)28(t)-333(of)-334(zero)-333(padding)-333(in)-333(the)]TJ 0 -11.955 Td [(output.)]TJ +/F30 9.9626 Tf -70.785 -18.39 Td [(list)-525(=)-1050(desc%get_p_adjcncy\050\051)]TJ 0 g 0 G -/F27 9.9626 Tf 0 -24.111 Td [(T)32(yp)-32(e:)]TJ +/F27 9.9626 Tf 0 -21.495 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 -22.119 Td [(On)-383(En)32(try)]TJ -0 g 0 G -0 g 0 G - 0 -22.118 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 [(A)-333(v)55(ariable)-333(of)-333(t)27(yp)-27(e)]TJ/F30 9.9626 Tf 81.943 0 Td [(psb_Tspmat_type)]TJ/F8 9.9626 Tf 78.455 0 Td [(.)]TJ -160.398 -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 -0 g 0 G -/F27 9.9626 Tf -80.358 -35.518 Td [(On)-383(Return)]TJ -0 g 0 G -0 g 0 G - 0 -22.119 Td [(a)]TJ -0 g 0 G -/F8 9.9626 Tf 10.55 0 Td [(The)-333(matrix)]TJ/F30 9.9626 Tf 52.886 0 Td [(a)]TJ/F8 9.9626 Tf 8.551 0 Td [(without)-333(zero)-334(co)-27(e\016)-1(cien)28(ts.)]TJ -47.081 -11.955 Td [(A)-333(v)55(ariable)-333(of)-333(t)27(yp)-27(e)]TJ/F30 9.9626 Tf 81.943 0 Td [(psb_Tspmat_type)]TJ/F8 9.9626 Tf 78.455 0 Td [(.)]TJ +/F27 9.9626 Tf -33.797 -19.757 Td [(On)-383(Return)]TJ 0 g 0 G -/F27 9.9626 Tf -185.304 -22.118 Td [(info)]TJ 0 g 0 G -/F8 9.9626 Tf 23.758 0 Td [(Return)-333(co)-28(de.)]TJ -0 g 0 G - 143.116 -29.888 Td [(20)]TJ + 0 -19.756 Td [(F)96(unction)-384(v)64(alue)]TJ 0 g 0 G +/F8 9.9626 Tf 78.387 0 Td [(The)-498(c)-1(u)1(rren)27(t)-498(list)-499(of)-498(adjacen)28(t)-499(pro)-28(cesses,)-540(i.e.)-940(pro)-27(cesse)-1(s)-498(with)]TJ -53.48 -11.955 Td [(whic)28(h)-334(th)1(e)-334(curren)28(t)-333(one)-334(has)-333(to)-333(exc)27(hange)-333(halo)-333(data.)]TJ/F27 9.9626 Tf -24.907 -25.824 Td [(3.1.13)-1150(set)]TJ ET - -endstream -endobj -929 0 obj -<< -/Length 4032 ->> -stream -0 g 0 G -0 g 0 G +q +1 0 0 1 155.544 458.147 cm +[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S +Q BT -/F27 9.9626 Tf 99.895 706.129 Td [(get)]TJ +/F27 9.9626 Tf 158.982 457.947 Td [(p)]TJ ET q -1 0 0 1 116.018 706.328 cm +1 0 0 1 166.034 458.147 cm []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 [(diag)-383(|)-384(Get)-383(main)-383(diagonal)]TJ +/F27 9.9626 Tf 169.471 457.947 Td [(adjcncy)-383(|)-384(Set)-383(pro)-32(cess)-383(adjacency)-384(list)]TJ 0 g 0 G 0 g 0 G -/F30 9.9626 Tf 1.362 -18.389 Td [(call)-525(a%get_diag\050d,info\051)]TJ/F8 9.9626 Tf -5.978 -21.799 Td [(Returns)-333(a)-334(cop)28(y)-333(of)-334(th)1(e)-334(main)-333(diagonal.)]TJ +/F30 9.9626 Tf -69.576 -18.389 Td [(call)-525(desc%set_p_adjcncy\050list\051)]TJ 0 g 0 G -/F27 9.9626 Tf -14.944 -19.829 Td [(T)32(yp)-32(e:)]TJ +/F27 9.9626 Tf 0 -21.496 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.878 Td [(On)-383(En)32(try)]TJ -0 g 0 G +/F27 9.9626 Tf -33.797 -19.756 Td [(On)-383(En)32(try)]TJ 0 g 0 G - 0 -19.877 Td [(a)]TJ -0 g 0 G -/F8 9.9626 Tf 10.551 0 Td [(the)-333(sparse)-334(matrix.)]TJ 14.356 -11.956 Td [(A)-333(v)55(ariable)-333(of)-333(t)27(yp)-27(e)]TJ/F30 9.9626 Tf 81.943 0 Td [(psb_Tspmat_type)]TJ/F8 9.9626 Tf 78.455 0 Td [(.)]TJ -160.398 -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 -0 g 0 G -/F27 9.9626 Tf -80.359 -33.753 Td [(On)-383(Return)]TJ -0 g 0 G -0 g 0 G - 0 -19.878 Td [(d)]TJ -0 g 0 G -/F8 9.9626 Tf 11.347 0 Td [(A)-333(cop)27(y)-333(of)-333(the)-333(m)-1(ai)1(n)-334(diagonal.)]TJ 13.56 -11.955 Td [(A)-333(one-dimensional)-334(arra)28(y)-333(of)-333(the)-334(appropriate)-333(t)28(yp)-28(e.)]TJ 0 g 0 G -/F27 9.9626 Tf -24.907 -19.877 Td [(info)]TJ + 0 -19.757 Td [(list)]TJ 0 g 0 G -/F8 9.9626 Tf 23.758 0 Td [(Return)-333(co)-28(de.)]TJ/F27 9.9626 Tf -23.758 -25.876 Td [(clip)]TJ +/F8 9.9626 Tf 20.321 0 Td [(the)-333(list)-334(of)-333(adjacen)28(t)-334(p)1(ro)-28(cesses.)]TJ 4.586 -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(one-dimensional)-333(arra)28(y)-334(of)-333(in)28(tegers)-334(of)-333(kind)]TJ/F30 9.9626 Tf 247.378 0 Td [(psb_ipk_)]TJ/F8 9.9626 Tf 41.843 0 Td [(.)]TJ -314.128 -21.496 Td [(Note:)-643(this)-432(metho)-28(d)-432(can)-433(b)-27(e)-433(called)-432(after)-433(a)-432(call)-432(to)]TJ/F30 9.9626 Tf 216.836 0 Td [(psb_cdall)]TJ/F8 9.9626 Tf 51.381 0 Td [(and)-432(b)-28(efore)-432(a)-433(call)]TJ -268.217 -11.955 Td [(to)]TJ/F30 9.9626 Tf 12.939 0 Td [(psb_cdasb)]TJ/F8 9.9626 Tf 47.073 0 Td [(.)-674(The)-410(user)-410(is)-409(s)-1(p)-27(ecifying)-410(here)-410(some)-410(kno)28(wledge)-410(ab)-28(out)-409(whic)27(h)-409(pro-)]TJ -60.012 -11.955 Td [(cesses)-304(are)-304(top)-28(ological)-304(neigh)28(b)-28(ours)-304(of)-304(the)-304(curren)28(t)-304(pro)-28(cess.)-435(The)-304(a)28(v)56(ailabilit)27(y)-304(of)-304(this)]TJ 0 -11.956 Td [(information)-333(ma)28(y)-334(sp)-28(eed)-333(up)-333(the)-334(execution)-333(of)-333(the)-334(assem)28(bly)-333(call)]TJ/F30 9.9626 Tf 268.079 0 Td [(psb_cdasb)]TJ/F8 9.9626 Tf 47.073 0 Td [(.)]TJ/F27 9.9626 Tf -315.152 -25.823 Td [(3.1.14)-1150(fnd)]TJ ET q -1 0 0 1 118.405 471.307 cm +1 0 0 1 157.549 247.744 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 121.842 471.107 Td [(diag)-383(|)-384(Cut)-383(out)-383(main)-384(diagonal)]TJ -0 g 0 G -0 g 0 G -/F30 9.9626 Tf -1.025 -18.389 Td [(call)-525(a%clip_diag\050b,info\051)]TJ/F8 9.9626 Tf -5.978 -21.798 Td [(Returns)-333(a)-334(cop)28(y)-333(of)]TJ/F30 9.9626 Tf 80.753 0 Td [(a)]TJ/F8 9.9626 Tf 8.551 0 Td [(without)-333(the)-334(main)-333(diagonal.)]TJ -0 g 0 G -/F27 9.9626 Tf -104.248 -19.83 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.877 Td [(On)-383(En)32(try)]TJ +/F27 9.9626 Tf 160.987 247.544 Td [(o)32(wner)-383(|)-384(Find)-383(the)-383(o)32(wner)-384(pro)-32(cess)-383(of)-383(a)-384(set)-383(of)-383(indices)]TJ 0 g 0 G 0 g 0 G - 0 -19.878 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 [(A)-333(v)55(ariable)-333(of)-333(t)27(yp)-27(e)]TJ/F30 9.9626 Tf 81.943 0 Td [(psb_Tspmat_type)]TJ/F8 9.9626 Tf 78.455 0 Td [(.)]TJ -160.398 -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 -0 g 0 G -/F27 9.9626 Tf -80.359 -33.754 Td [(On)-383(Return)]TJ -0 g 0 G -0 g 0 G - 0 -19.877 Td [(b)]TJ -0 g 0 G -/F8 9.9626 Tf 11.347 0 Td [(A)-333(cop)27(y)-333(of)]TJ/F30 9.9626 Tf 45.385 0 Td [(a)]TJ/F8 9.9626 Tf 8.551 0 Td [(without)-333(the)-334(main)-333(diagonal.)]TJ -40.376 -11.955 Td [(A)-333(v)55(ariable)-333(of)-333(t)27(yp)-27(e)]TJ/F30 9.9626 Tf 81.943 0 Td [(psb_Tspmat_type)]TJ/F8 9.9626 Tf 78.455 0 Td [(.)]TJ +/F30 9.9626 Tf -61.092 -18.389 Td [(call)-525(desc%fnd_owner\050idx,iprc,info\051)]TJ 0 g 0 G -/F27 9.9626 Tf -185.305 -19.878 Td [(info)]TJ -0 g 0 G -/F8 9.9626 Tf 23.758 0 Td [(Return)-333(co)-28(de.)]TJ/F27 9.9626 Tf -23.758 -25.875 Td [(tril)-383(|)-384(Return)-383(the)-383(lo)31(w)32(er)-383(triangle)]TJ +/F27 9.9626 Tf 0 -21.496 Td [(T)32(yp)-32(e:)]TJ 0 g 0 G +/F8 9.9626 Tf 33.797 0 Td [(Sync)28(hronous.)]TJ 0 g 0 G -/F30 9.9626 Tf 20.922 -18.389 Td [(call)-525(a%tril\050l,info[,&)]TJ 15.691 -11.956 Td [(&)-525(diag,imin,imax,jmin,jmax,rscale,cscale,u]\051)]TJ/F8 9.9626 Tf -21.669 -21.798 Td [(Returns)-376(the)-376(lo)28(w)28(er)-376(triangular)-376(p)1(art)-376(of)-376(submatrix)]TJ/F30 9.9626 Tf 210.933 0 Td [(A\050imin:imax,jmin:jmax\051)]TJ/F8 9.9626 Tf 115.067 0 Td [(,)]TJ -340.944 -11.955 Td [(optionally)-222(rescaling)-222(ro)27(w/col)-222(indices)-222(to)-222(the)-222(range)]TJ/F30 9.9626 Tf 205.536 0 Td [(1:imax-imin+1,1:jmax-jmin+1)]TJ/F8 9.9626 Tf -205.536 -11.955 Td [(and)-333(returing)-334(th)1(e)-334(complemen)28(tary)-333(upp)-28(er)-333(triangle.)]TJ -0 g 0 G -/F27 9.9626 Tf 0 -19.83 Td [(T)32(yp)-32(e:)]TJ +/F27 9.9626 Tf -33.797 -19.756 Td [(On)-383(En)32(try)]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.877 Td [(On)-383(En)32(try)]TJ + 0 -19.757 Td [(idx)]TJ 0 g 0 G +/F8 9.9626 Tf 20.576 0 Td [(the)-333(list)-334(of)-333(global)-333(indices)-334(for)-333(whic)28(h)-333(w)27(e)-333(need)-333(the)-334(o)28(wning)-333(pro)-28(cesses.)]TJ 4.331 -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(one-dimensional)-333(arra)28(y)-334(of)-333(in)28(tegers)-334(of)-333(kind)]TJ/F30 9.9626 Tf 247.378 0 Td [(psb_lpk_)]TJ/F8 9.9626 Tf 41.843 0 Td [(.)]TJ 0 g 0 G -/F8 9.9626 Tf 166.875 -29.888 Td [(21)]TJ + -147.253 -29.888 Td [(15)]TJ 0 g 0 G ET endstream endobj -933 0 obj +945 0 obj << -/Length 5513 +/Length 9167 >> stream 0 g 0 G 0 g 0 G 0 g 0 G BT -/F27 9.9626 Tf 150.705 706.129 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 [(A)-333(v)55(ariable)-333(of)-333(t)27(yp)-27(e)]TJ/F30 9.9626 Tf 81.943 0 Td [(psb_Tspmat_type)]TJ/F8 9.9626 Tf 78.455 0 Td [(.)]TJ -160.398 -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 -0 g 0 G -/F27 9.9626 Tf -80.358 -30.78 Td [(diag)]TJ -0 g 0 G -/F8 9.9626 Tf 25.826 0 Td [(Include)-392(diagonals)-391(up)-392(to)-392(this)-391(o)-1(n)1(e)-1(;)]TJ/F30 9.9626 Tf 149.735 0 Td [(diag=1)]TJ/F8 9.9626 Tf 35.285 0 Td [(means)-392(the)-392(\014)1(rs)-1(t)-391(sup)-28(erdiagonal,)]TJ/F30 9.9626 Tf -185.94 -11.955 Td [(diag=-1)]TJ/F8 9.9626 Tf 39.934 0 Td [(means)-333(the)-334(\014rst)-333(sub)-28(diagonal.)-444(Default)-333(0.)]TJ -0 g 0 G -/F27 9.9626 Tf -64.84 -18.824 Td [(imin,imax,jmin,jmax)]TJ -0 g 0 G -/F8 9.9626 Tf 108.412 0 Td [(Minim)28(um)-333(and)-334(maxim)28(um)-333(ro)27(w)-333(and)-333(column)-333(indices.)]TJ -83.506 -11.955 Td [(T)28(yp)-28(e:)-444(optional.)]TJ -0 g 0 G -/F27 9.9626 Tf -24.906 -18.824 Td [(rscale,cscale)]TJ -0 g 0 G -/F8 9.9626 Tf 65.202 0 Td [(Whether)-333(to)-334(rescale)-333(ro)28(w/column)-334(indices.)-444(T)28(yp)-28(e:)-445(op)1(tional.)]TJ -0 g 0 G -/F27 9.9626 Tf -65.202 -19.165 Td [(On)-383(Return)]TJ -0 g 0 G -0 g 0 G - 0 -18.824 Td [(l)]TJ -0 g 0 G -/F8 9.9626 Tf 8.164 0 Td [(A)-333(cop)27(y)-333(of)-333(the)-333(lo)27(w)28(er)-333(triangle)-334(of)]TJ/F30 9.9626 Tf 136.488 0 Td [(a)]TJ/F8 9.9626 Tf 5.23 0 Td [(.)]TJ -124.976 -11.955 Td [(A)-333(v)55(ariable)-333(of)-333(t)27(yp)-27(e)]TJ/F30 9.9626 Tf 81.943 0 Td [(psb_Tspmat_type)]TJ/F8 9.9626 Tf 78.455 0 Td [(.)]TJ -0 g 0 G -/F27 9.9626 Tf -185.304 -18.824 Td [(u)]TJ -0 g 0 G -/F8 9.9626 Tf 11.346 0 Td [(\050optional\051)-333(A)-334(cop)28(y)-333(of)-333(the)-334(upp)-27(er)-334(triangle)-333(of)]TJ/F30 9.9626 Tf 185.472 0 Td [(a)]TJ/F8 9.9626 Tf 5.23 0 Td [(.)]TJ -177.142 -11.955 Td [(A)-333(v)55(ariable)-333(of)-333(t)27(yp)-27(e)]TJ/F30 9.9626 Tf 81.943 0 Td [(psb_Tspmat_type)]TJ/F8 9.9626 Tf 78.455 0 Td [(.)]TJ -0 g 0 G -/F27 9.9626 Tf -185.304 -18.825 Td [(info)]TJ -0 g 0 G -/F8 9.9626 Tf 23.758 0 Td [(Return)-333(co)-28(de.)]TJ/F27 9.9626 Tf -23.758 -25.421 Td [(triu)-383(|)-384(Return)-383(the)-383(upp)-32(er)-384(triangle)]TJ -0 g 0 G -0 g 0 G -/F30 9.9626 Tf 20.921 -18.39 Td [(call)-525(a%triu\050u,info[,&)]TJ 15.691 -11.955 Td [(&)-525(diag,imin,imax,jmin,jmax,rscale,cscale,l]\051)]TJ/F8 9.9626 Tf -21.668 -19.165 Td [(Returns)-340(the)-340(upp)-28(er)-340(triangular)-340(part)-340(of)-340(submatrix)]TJ/F30 9.9626 Tf 210.932 0 Td [(A\050imin:imax,jmin:jmax\051)]TJ/F8 9.9626 Tf 115.067 0 Td [(,)]TJ -340.943 -11.955 Td [(optionally)-222(rescaling)-222(ro)28(w)-1(/col)-222(indices)-222(to)-222(the)-222(range)]TJ/F30 9.9626 Tf 205.535 0 Td [(1:imax-imin+1,1:jmax-jmin+1)]TJ/F8 9.9626 Tf 141.219 0 Td [(,)]TJ -346.754 -11.955 Td [(and)-333(returing)-333(the)-334(complemen)28(tary)-333(lo)27(w)28(er)-333(triangle.)]TJ -0 g 0 G -/F27 9.9626 Tf 0 -17.723 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.824 Td [(On)-383(En)32(try)]TJ -0 g 0 G -0 g 0 G - 0 -18.824 Td [(a)]TJ -0 g 0 G -/F8 9.9626 Tf 10.55 0 Td [(the)-333(sparse)-334(matrix.)]TJ 14.356 -11.955 Td [(A)-333(v)55(ariable)-333(of)-333(t)27(yp)-27(e)]TJ/F30 9.9626 Tf 81.943 0 Td [(psb_Tspmat_type)]TJ/F8 9.9626 Tf 78.455 0 Td [(.)]TJ -160.398 -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 -0 g 0 G -/F27 9.9626 Tf -80.358 -30.78 Td [(diag)]TJ -0 g 0 G -/F8 9.9626 Tf 25.826 0 Td [(Include)-392(diagonals)-391(up)-392(to)-392(this)-391(o)-1(n)1(e)-1(;)]TJ/F30 9.9626 Tf 149.735 0 Td [(diag=1)]TJ/F8 9.9626 Tf 35.285 0 Td [(means)-392(the)-392(\014)1(rs)-1(t)-391(sup)-28(erdiagonal,)]TJ/F30 9.9626 Tf -185.94 -11.955 Td [(diag=-1)]TJ/F8 9.9626 Tf 39.934 0 Td [(means)-333(the)-334(\014rst)-333(sub)-28(diagonal.)-444(Default)-333(0.)]TJ -0 g 0 G -/F27 9.9626 Tf -64.84 -18.824 Td [(imin,imax,jmin,jmax)]TJ -0 g 0 G -/F8 9.9626 Tf 108.412 0 Td [(Minim)28(um)-333(and)-334(maxim)28(um)-333(ro)27(w)-333(and)-333(column)-333(indices.)]TJ -83.506 -11.955 Td [(T)28(yp)-28(e:)-444(optional.)]TJ -0 g 0 G -/F27 9.9626 Tf -24.906 -18.824 Td [(rscale,cscale)]TJ -0 g 0 G -/F8 9.9626 Tf 65.202 0 Td [(Whether)-333(to)-334(rescale)-333(ro)28(w/column)-334(indices.)-444(T)28(yp)-28(e:)-445(op)1(tional.)]TJ -0 g 0 G -/F27 9.9626 Tf -65.202 -19.165 Td [(On)-383(Return)]TJ -0 g 0 G -0 g 0 G - 0 -18.824 Td [(u)]TJ -0 g 0 G -/F8 9.9626 Tf 11.346 0 Td [(A)-333(cop)27(y)-333(of)-333(the)-334(u)1(pp)-28(er)-334(tr)1(iangle)-334(of)]TJ/F30 9.9626 Tf 138.979 0 Td [(a)]TJ/F8 9.9626 Tf 5.231 0 Td [(.)]TJ -130.65 -11.955 Td [(A)-333(v)55(ariable)-333(of)-333(t)27(yp)-27(e)]TJ/F30 9.9626 Tf 81.943 0 Td [(psb_Tspmat_type)]TJ/F8 9.9626 Tf 78.455 0 Td [(.)]TJ -0 g 0 G -/F27 9.9626 Tf -185.304 -18.824 Td [(l)]TJ -0 g 0 G -/F8 9.9626 Tf 8.164 0 Td [(\050optional\051)-333(A)-333(c)-1(op)28(y)-333(of)-333(the)-334(lo)28(w)28(er)-333(triangle)-334(of)]TJ/F30 9.9626 Tf 182.98 0 Td [(a)]TJ/F8 9.9626 Tf 5.231 0 Td [(.)]TJ -171.469 -11.955 Td [(A)-333(v)55(ariable)-333(of)-333(t)27(yp)-27(e)]TJ/F30 9.9626 Tf 81.943 0 Td [(psb_Tspmat_type)]TJ/F8 9.9626 Tf 78.455 0 Td [(.)]TJ +/F27 9.9626 Tf 150.705 706.129 Td [(On)-383(Return)]TJ 0 g 0 G -/F27 9.9626 Tf -185.304 -18.824 Td [(info)]TJ 0 g 0 G -/F8 9.9626 Tf 23.758 0 Td [(Return)-333(co)-28(de.)]TJ + 0 -19.686 Td [(iprc)]TJ 0 g 0 G - 143.116 -29.888 Td [(22)]TJ +/F8 9.9626 Tf 24.339 0 Td [(the)-333(list)-334(of)-333(pro)-28(cesses)-333(o)28(w)-1(n)1(ing)-334(the)-333(indices)-333(in)]TJ/F30 9.9626 Tf 183.783 0 Td [(idx)]TJ/F8 9.9626 Tf 15.691 0 Td [(.)]TJ -198.907 -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.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)-525(as:)-828(an)-526(allo)-27(catable)-526(one-dimensional)-525(arra)28(y)-525(of)-526(in)28(tegers)-525(of)-525(kind)]TJ/F30 9.9626 Tf 0 -11.955 Td [(psb_ipk_)]TJ/F8 9.9626 Tf 41.843 0 Td [(.)]TJ -66.749 -21.318 Td [(Note:)-417(th)1(is)-278(metho)-28(d)-277(ma)28(y)-278(or)-277(ma)27(y)-277(not)-278(actual)1(ly)-278(require)-277(comm)27(unications,)-288(dep)-28(ending)]TJ 0 -11.956 Td [(on)-466(the)-465(exact)-466(in)28(ternal)-466(data)-465(storage;)-532(giv)28(en)-466(that)-465(the)-466(c)28(hoice)-466(of)-466(storage)-465(ma)27(y)-465(b)-28(e)]TJ 0 -11.955 Td [(altered)-440(b)28(y)-440(run)28(time)-440(parameters,)-467(it)-439(is)-440(nece)-1(ssary)-439(for)-440(safet)27(y)-439(that)-440(this)-440(metho)-28(d)-440(is)]TJ 0 -11.955 Td [(called)-333(b)27(y)-333(all)-333(pro)-28(cesses.)]TJ/F27 9.9626 Tf 0 -25.793 Td [(3.1.15)-1150(Named)-383(Constan)32(ts)]TJ 0 g 0 G + 0 -18.389 Td [(psb)]TJ ET - -endstream -endobj -939 0 obj -<< -/Length 7706 ->> -stream +q +1 0 0 1 168.641 525.501 cm +[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S +Q +BT +/F27 9.9626 Tf 172.078 525.302 Td [(none)]TJ +ET +q +1 0 0 1 196.475 525.501 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 204.894 525.302 Td [(Generic)-333(no-op;)]TJ 0 g 0 G +/F27 9.9626 Tf -54.189 -19.685 Td [(psb)]TJ +ET +q +1 0 0 1 168.641 505.816 cm +[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S +Q BT -/F27 9.9626 Tf 99.895 706.129 Td [(psb)]TJ +/F27 9.9626 Tf 172.078 505.617 Td [(ro)-32(ot)]TJ ET q -1 0 0 1 117.832 706.328 cm +1 0 0 1 193.715 505.816 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 121.269 706.129 Td [(set)]TJ +/F8 9.9626 Tf 202.133 505.617 Td [(Default)-333(ro)-28(ot)-333(pro)-28(cess)-334(for)-333(broadcast)-333(and)-333(sc)-1(atter)-333(op)-28(erations;)]TJ +0 g 0 G +/F27 9.9626 Tf -51.428 -19.686 Td [(psb)]TJ ET q -1 0 0 1 136.182 706.328 cm +1 0 0 1 168.641 486.131 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 139.619 706.129 Td [(mat)]TJ +/F27 9.9626 Tf 172.078 485.931 Td [(nohalo)]TJ ET q -1 0 0 1 159.879 706.328 cm +1 0 0 1 205.705 486.131 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 163.316 706.129 Td [(default)-383(|)-384(Set)-383(default)-383(storage)-384(format)]TJ +/F8 9.9626 Tf 214.123 485.931 Td [(Do)-333(not)-334(fetc)28(h)-333(halo)-333(e)-1(l)1(e)-1(men)28(ts;)]TJ 0 g 0 G +/F27 9.9626 Tf -63.418 -19.685 Td [(psb)]TJ +ET +q +1 0 0 1 168.641 466.445 cm +[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S +Q +BT +/F27 9.9626 Tf 172.078 466.246 Td [(halo)]TJ +ET +q +1 0 0 1 193.611 466.445 cm +[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S +Q 0 g 0 G -/F30 9.9626 Tf -63.421 -18.389 Td [(call)-1050(psb_set_mat_default\050a\051)]TJ +BT +/F8 9.9626 Tf 202.03 466.246 Td [(F)83(etc)28(h)-333(halo)-333(e)-1(lemen)28(ts)-333(from)-333(neigh)27(b)-27(ouring)-334(pro)-27(cesse)-1(s;)]TJ 0 g 0 G -/F27 9.9626 Tf 0 -20.935 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.532 Td [(On)-383(En)32(try)]TJ -0 g 0 G -0 g 0 G - 0 -19.532 Td [(a)]TJ -0 g 0 G -/F8 9.9626 Tf 10.551 0 Td [(a)-285(v)56(ariable)-285(of)]TJ/F30 9.9626 Tf 55.581 0 Td [(class\050psb_T_base_sparse_mat\051)]TJ/F8 9.9626 Tf 149.286 0 Td [(requesting)-285(a)-284(new)-285(default)-284(s)-1(t)1(or-)]TJ -190.511 -11.955 Td [(age)-333(format.)]TJ 0 -11.956 Td [(T)28(yp)-28(e:)-444(required.)]TJ/F27 9.9626 Tf -24.907 -25.726 Td [(clone)-383(|)-384(Clone)-383(curren)32(t)-383(ob)-64(ject)]TJ -0 g 0 G -0 g 0 G -/F30 9.9626 Tf 0 -18.389 Td [(call)-1050(a%clone\050b,info\051)]TJ -0 g 0 G -/F27 9.9626 Tf 0 -20.935 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.532 Td [(On)-383(En)32(try)]TJ -0 g 0 G -0 g 0 G - 0 -19.532 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 23.073 0 Td [(.)]TJ -0 g 0 G -/F27 9.9626 Tf -80.359 -32.89 Td [(On)-383(Return)]TJ -0 g 0 G -0 g 0 G - 0 -19.532 Td [(b)]TJ -0 g 0 G -/F8 9.9626 Tf 11.347 0 Td [(A)-333(cop)27(y)-333(of)-333(the)-333(input)-334(ob)-55(ject.)]TJ -0 g 0 G -/F27 9.9626 Tf -11.347 -19.532 Td [(info)]TJ -0 g 0 G -/F8 9.9626 Tf 23.758 0 Td [(Return)-333(co)-28(de.)]TJ/F27 9.9626 Tf -23.758 -25.727 Td [(3.2.2)-1150(Named)-383(Constan)31(ts)]TJ -0 g 0 G - 0 -18.389 Td [(psb)]TJ -ET -q -1 0 0 1 117.832 371.89 cm -[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S -Q -BT -/F27 9.9626 Tf 121.269 371.691 Td [(dupl)]TJ +/F27 9.9626 Tf -51.325 -19.686 Td [(psb)]TJ ET q -1 0 0 1 144.234 371.89 cm +1 0 0 1 168.641 446.76 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 147.671 371.691 Td [(o)32(vwrt)]TJ +/F27 9.9626 Tf 172.078 446.56 Td [(sum)]TJ ET q -1 0 0 1 177.264 371.89 cm +1 0 0 1 193.197 446.76 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.682 371.691 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.88 -11.955 Td [(plications\051)]TJ +/F8 9.9626 Tf 201.616 446.56 Td [(Sum)-333(o)27(v)28(erlapp)-27(ed)-334(elemen)28(ts)]TJ 0 g 0 G -/F27 9.9626 Tf -24.907 -19.532 Td [(psb)]TJ -ET -q -1 0 0 1 117.832 340.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 340.204 Td [(dupl)]TJ +/F27 9.9626 Tf -50.911 -19.685 Td [(psb)]TJ ET q -1 0 0 1 144.234 340.403 cm +1 0 0 1 168.641 427.074 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 147.671 340.204 Td [(add)]TJ +/F27 9.9626 Tf 172.078 426.875 Td [(a)32(vg)]TJ ET q -1 0 0 1 166.658 340.403 cm +1 0 0 1 189.792 427.074 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 340.204 Td [(Duplicate)-333(co)-28(e\016cien)28(ts)-334(should)-333(b)-28(e)-333(added;)]TJ +/F8 9.9626 Tf 198.211 426.875 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 -75.181 -19.532 Td [(psb)]TJ +/F27 9.9626 Tf -47.506 -19.685 Td [(psb)]TJ ET q -1 0 0 1 117.832 320.871 cm +1 0 0 1 168.641 407.389 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 121.269 320.672 Td [(dupl)]TJ +/F27 9.9626 Tf 172.078 407.19 Td [(comm)]TJ ET q -1 0 0 1 144.234 320.871 cm +1 0 0 1 202.681 407.389 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 147.671 320.672 Td [(err)]TJ +/F27 9.9626 Tf 206.118 407.19 Td [(halo)]TJ ET q -1 0 0 1 163.046 320.871 cm +1 0 0 1 227.651 407.389 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 320.672 Td [(Duplicate)-333(co)-28(e\016cien)28(ts)-334(should)-333(trigger)-333(an)-334(error)-333(conditino)]TJ +/F8 9.9626 Tf 236.07 407.19 Td [(Exc)28(hange)-333(data)-334(based)-333(on)-333(the)]TJ/F30 9.9626 Tf 126.387 0 Td [(halo_index)]TJ/F8 9.9626 Tf 55.624 0 Td [(list;)]TJ 0 g 0 G -/F27 9.9626 Tf -71.57 -19.532 Td [(psb)]TJ +/F27 9.9626 Tf -267.376 -19.686 Td [(psb)]TJ ET q -1 0 0 1 117.832 301.339 cm +1 0 0 1 168.641 387.704 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 121.269 301.14 Td [(up)-32(d)]TJ +/F27 9.9626 Tf 172.078 387.504 Td [(comm)]TJ ET q -1 0 0 1 141.37 301.339 cm +1 0 0 1 202.681 387.704 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 144.807 301.14 Td [(d\015t)]TJ +/F27 9.9626 Tf 206.118 387.504 Td [(ext)]TJ ET q -1 0 0 1 162.68 301.339 cm +1 0 0 1 222.559 387.704 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 301.14 Td [(Default)-333(up)-28(date)-333(strategy)-334(for)-333(matrix)-333(co)-28(e\016cien)28(ts;)]TJ +/F8 9.9626 Tf 230.978 387.504 Td [(Exc)28(hange)-333(data)-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.203 -19.533 Td [(psb)]TJ +/F27 9.9626 Tf -257.054 -19.685 Td [(psb)]TJ ET q -1 0 0 1 117.832 281.807 cm +1 0 0 1 168.641 368.018 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 121.269 281.607 Td [(up)-32(d)]TJ +/F27 9.9626 Tf 172.078 367.819 Td [(comm)]TJ ET q -1 0 0 1 141.37 281.807 cm +1 0 0 1 202.681 368.018 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 144.807 281.607 Td [(src)32(h)]TJ +/F27 9.9626 Tf 206.118 367.819 Td [(o)32(vr)]TJ ET q -1 0 0 1 165.87 281.807 cm +1 0 0 1 222.981 368.018 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 281.607 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 231.4 367.819 Td [(Exc)28(hange)-333(data)-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 -74.394 -19.532 Td [(psb)]TJ +/F27 9.9626 Tf -273.167 -19.685 Td [(psb)]TJ ET q -1 0 0 1 117.832 262.275 cm +1 0 0 1 168.641 348.333 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 121.269 262.075 Td [(up)-32(d)]TJ +/F27 9.9626 Tf 172.078 348.134 Td [(comm)]TJ ET q -1 0 0 1 141.37 262.275 cm +1 0 0 1 202.681 348.333 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 144.807 262.075 Td [(p)-32(erm)]TJ +/F27 9.9626 Tf 206.118 348.134 Td [(mo)32(v)]TJ ET q -1 0 0 1 171.694 262.275 cm +1 0 0 1 227.81 348.333 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 262.075 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 -27.719 Td [(3.3)-1125(Dense)-375(V)94(ector)-375(Data)-375(Structure)]TJ/F8 9.9626 Tf 0 -18.389 Td [(The)]TJ/F30 9.9626 Tf 21.256 0 Td [(psb)]TJ -ET -q -1 0 0 1 137.47 204.211 cm -[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S -Q -BT -/F30 9.9626 Tf 140.608 204.012 Td [(T)]TJ +/F8 9.9626 Tf 236.229 348.134 Td [(Exc)28(hange)-333(data)-334(based)-333(on)-333(the)]TJ/F30 9.9626 Tf 126.387 0 Td [(ovr_mst_idx)]TJ/F8 9.9626 Tf 60.855 0 Td [(list;)]TJ/F16 11.9552 Tf -272.766 -27.786 Td [(3.2)-1125(Sparse)-375(Matrix)-375(class)]TJ/F8 9.9626 Tf 0 -18.389 Td [(The)]TJ/F30 9.9626 Tf 20.653 0 Td [(psb)]TJ ET q -1 0 0 1 146.466 204.211 cm +1 0 0 1 187.676 302.158 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 149.604 204.012 Td [(vect)]TJ +/F30 9.9626 Tf 190.814 301.959 Td [(Tspmat)]TJ ET q -1 0 0 1 171.153 204.211 cm +1 0 0 1 222.824 302.158 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 174.291 204.012 Td [(type)]TJ/F8 9.9626 Tf 25.02 0 Td [(data)-411(structure)-412(encapsulates)-411(the)-411(dense)-412(v)28(ectors)-411(in)-412(a)-411(w)28(a)28(y)]TJ -99.416 -11.955 Td [(similar)-434(to)-435(sparse)-434(matrices,)-459(i.e.)-748(includ)1(ing)-435(a)-434(base)-434(t)28(yp)-28(e)]TJ/F30 9.9626 Tf 242.195 0 Td [(psb)]TJ +/F30 9.9626 Tf 225.962 301.959 Td [(type)]TJ/F8 9.9626 Tf 24.416 0 Td [(class)-351(con)28(tains)-351(all)-351(information)-350(ab)-28(out)-351(the)-351(lo)-27(cal)-351(p)-28(ortion)-351(of)]TJ -99.673 -11.955 Td [(the)-249(sparse)-249(matrix)-248(and)-249(its)-249(storage)-249(mo)-27(de.)-417(Its)-248(design)-249(is)-249(based)-249(on)-248(the)-249(ST)83(A)84(TE)-249(design)]TJ 0 -11.955 Td [(pattern)-347([)]TJ +1 0 0 rg 1 0 0 RG + [(13)]TJ +0 g 0 G + [(])-346(as)-347(detailed)-347(in)-347([)]TJ +1 0 0 rg 1 0 0 RG + [(11)]TJ +0 g 0 G + [(])1(;)-354(the)-347(t)28(yp)-28(e)-346(declaration)-347(is)-347(sho)28(wn)-347(in)-346(\014gure)]TJ +0 0 1 rg 0 0 1 RG + [-347(4)]TJ +0 g 0 G + [-347(where)]TJ/F30 9.9626 Tf 0 -11.956 Td [(T)]TJ/F8 9.9626 Tf 8.551 0 Td [(is)-333(a)-334(placeholder)-333(for)-333(the)-334(data)-333(t)28(yp)-28(e)-333(and)-333(precision)-334(v)56(arian)28(ts)]TJ +0 g 0 G +/F27 9.9626 Tf -8.551 -19.445 Td [(S)]TJ +0 g 0 G +/F8 9.9626 Tf 11.346 0 Td [(Single)-333(precision)-334(real;)]TJ +0 g 0 G +/F27 9.9626 Tf -11.346 -19.685 Td [(D)]TJ +0 g 0 G +/F8 9.9626 Tf 13.768 0 Td [(Double)-333(precision)-334(real;)]TJ +0 g 0 G +/F27 9.9626 Tf -13.768 -19.686 Td [(C)]TJ +0 g 0 G +/F8 9.9626 Tf 13.256 0 Td [(Single)-333(precision)-334(complex;)]TJ +0 g 0 G +/F27 9.9626 Tf -13.256 -19.685 Td [(Z)]TJ +0 g 0 G +/F8 9.9626 Tf 11.983 0 Td [(Double)-333(precision)-334(complex.)]TJ -11.983 -19.446 Td [(The)-222(actual)-222(data)-223(is)-222(con)28(tained)-222(in)-222(the)-223(p)-27(olymorphic)-223(comp)-27(onen)27(t)]TJ/F30 9.9626 Tf 255.514 0 Td [(a%a)]TJ/F8 9.9626 Tf 17.905 0 Td [(of)-222(t)28(yp)-28(e)]TJ/F30 9.9626 Tf 31.549 0 Td [(psb)]TJ ET q -1 0 0 1 358.409 192.256 cm +1 0 0 1 471.991 168.346 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 361.547 192.057 Td [(T)]TJ +/F30 9.9626 Tf 475.13 168.146 Td [(T)]TJ ET q -1 0 0 1 367.405 192.256 cm +1 0 0 1 480.988 168.346 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 370.543 192.057 Td [(base)]TJ +/F30 9.9626 Tf 484.126 168.146 Td [(base)]TJ ET q -1 0 0 1 392.092 192.256 cm +1 0 0 1 505.675 168.346 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 395.231 192.057 Td [(vect)]TJ +/F30 9.9626 Tf 508.813 168.146 Td [(sparse)]TJ ET q -1 0 0 1 416.779 192.256 cm +1 0 0 1 540.823 168.346 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 419.918 192.057 Td [(type)]TJ/F8 9.9626 Tf 20.921 0 Td [(.)]TJ -340.944 -11.956 Td [(The)-330(user)-330(will)-330(not,)-330(in)-330(general,)-331(access)-330(the)-330(v)28(ector)-330(comp)-28(onen)28(ts)-330(directly)83(,)-330(but)-330(rather)]TJ 0 -11.955 Td [(via)-303(the)-304(routi)1(ne)-1(s)-303(of)-303(sec.)]TJ -0 0 1 rg 0 0 1 RG - [-304(6)]TJ -0 g 0 G - [(.)-434(Among)-303(other)-303(s)-1(impl)1(e)-304(things,)-309(w)28(e)-304(de\014ne)-303(here)-303(an)-303(e)-1(xtr)1(ac)-1(-)]TJ 0 -11.955 Td [(tion)-321(metho)-28(d)-320(that)-321(can)-321(b)-27(e)-321(used)-321(to)-321(get)-321(a)-320(full)-321(cop)28(y)-321(of)-321(the)-320(part)-321(of)-321(the)-320(v)27(ector)-320(s)-1(t)1(o)-1(r)1(e)-1(d)]TJ 0 -11.955 Td [(on)-333(the)-334(lo)-27(cal)-334(pro)-27(c)-1(ess.)]TJ 14.944 -11.955 Td [(The)-399(t)28(yp)-28(e)-399(declaration)-398(is)-399(sho)28(w)-1(n)-398(in)-399(\014gure)]TJ -0 0 1 rg 0 0 1 RG - [-399(5)]TJ +/F30 9.9626 Tf 543.961 168.146 Td [(mat)]TJ/F8 9.9626 Tf 15.691 0 Td [(;)]TJ -408.947 -11.955 Td [(its)-300(sp)-28(eci\014c)-301(la)28(y)28(out)-300(can)-301(b)-27(e)-301(c)28(hosen)-301(d)1(ynamically)-301(among)-300(the)-301(pr)1(e)-1(d)1(e)-1(\014n)1(e)-1(d)-300(t)28(yp)-28(es,)-307(or)-300(an)]TJ 0 -11.955 Td [(en)28(tirely)-419(new)-419(storage)-419(la)28(y)27(out)-419(can)-419(b)-27(e)-419(implemen)27(ted)-419(an)1(d)-419(passe)-1(d)-418(to)-419(the)-419(library)-419(at)]TJ 0 -11.955 Td [(run)28(time)-420(via)-419(the)]TJ/F30 9.9626 Tf 73.447 0 Td [(psb_spasb)]TJ/F8 9.9626 Tf 51.252 0 Td [(routine.)-703(The)-419(follo)28(wing)-420(v)28(ery)-419(common)-420(formats)-419(are)]TJ -124.699 -11.955 Td [(precompiled)-333(in)-334(PSBLAS)-333(and)-333(th)28(us)-334(are)-333(alw)28(a)28(ys)-334(a)28(v)56(ailable:)]TJ 0 g 0 G - [-399(where)]TJ/F30 9.9626 Tf 216.941 0 Td [(T)]TJ/F8 9.9626 Tf 9.203 0 Td [(is)-399(a)-399(placeholder)-398(for)-399(the)]TJ -241.088 -11.955 Td [(data)-333(t)27(yp)-27(e)-334(and)-333(precision)-333(v)55(arian)28(ts)]TJ -0 g 0 G - 166.875 -29.888 Td [(23)]TJ + 166.874 -29.888 Td [(16)]TJ 0 g 0 G ET endstream endobj -945 0 obj +953 0 obj << -/Length 3700 +/Length 5963 >> stream 0 g 0 G 0 g 0 G 0 g 0 G -BT -/F27 9.9626 Tf 150.705 706.129 Td [(I)]TJ 0 g 0 G -/F8 9.9626 Tf 9.326 0 Td [(In)28(teger;)]TJ 0 g 0 G -/F27 9.9626 Tf -9.326 -21.082 Td [(S)]TJ 0 g 0 G -/F8 9.9626 Tf 11.346 0 Td [(Single)-333(precision)-334(real;)]TJ 0 g 0 G -/F27 9.9626 Tf -11.346 -21.083 Td [(D)]TJ +BT +/F30 9.9626 Tf 136.133 710.003 Td [(type)-525(::)-525(psb_Tspmat_type)]TJ 10.461 -11.955 Td [(class\050psb_T_base_sparse_mat\051,)-525(allocatable)-1050(::)-525(a)]TJ -10.461 -11.955 Td [(end)-525(type)-1050(psb_Tspmat_type)]TJ 0 g 0 G -/F8 9.9626 Tf 13.768 0 Td [(Double)-333(precision)-334(real;)]TJ +/F8 9.9626 Tf -24.739 -30.054 Td [(Figure)-333(4:)-889(The)-333(PSBLAS)-334(de\014ned)-333(data)-333(t)28(yp)-28(e)-334(that)-333(con)28(tains)-333(a)-334(sparse)-333(matrix.)]TJ 0 g 0 G -/F27 9.9626 Tf -13.768 -21.082 Td [(C)]TJ 0 g 0 G -/F8 9.9626 Tf 13.256 0 Td [(Single)-333(precision)-334(complex;)]TJ 0 g 0 G -/F27 9.9626 Tf -13.256 -21.083 Td [(Z)]TJ +/F27 9.9626 Tf -11.499 -31.954 Td [(psb)]TJ +ET +q +1 0 0 1 117.832 624.284 cm +[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S +Q +BT +/F27 9.9626 Tf 121.269 624.085 Td [(T)]TJ +ET +q +1 0 0 1 129.926 624.284 cm +[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S +Q +BT +/F27 9.9626 Tf 133.364 624.085 Td [(co)-32(o)]TJ +ET +q +1 0 0 1 150.918 624.284 cm +[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S +Q +BT +/F27 9.9626 Tf 154.355 624.085 Td [(sparse)]TJ +ET +q +1 0 0 1 185.985 624.284 cm +[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S +Q +BT +/F27 9.9626 Tf 189.422 624.085 Td [(mat)]TJ +0 g 0 G +/F8 9.9626 Tf 24.554 0 Td [(Co)-28(ordinate)-333(storage;)]TJ +0 g 0 G +/F27 9.9626 Tf -114.081 -20.184 Td [(psb)]TJ +ET +q +1 0 0 1 117.832 604.101 cm +[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S +Q +BT +/F27 9.9626 Tf 121.269 603.901 Td [(T)]TJ +ET +q +1 0 0 1 129.926 604.101 cm +[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S +Q +BT +/F27 9.9626 Tf 133.364 603.901 Td [(csr)]TJ +ET +q +1 0 0 1 148.38 604.101 cm +[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S +Q +BT +/F27 9.9626 Tf 151.818 603.901 Td [(sparse)]TJ +ET +q +1 0 0 1 183.447 604.101 cm +[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S +Q +BT +/F27 9.9626 Tf 186.884 603.901 Td [(mat)]TJ 0 g 0 G -/F8 9.9626 Tf 11.983 0 Td [(Double)-333(precision)-334(complex.)]TJ -11.983 -20.793 Td [(The)-280(ac)-1(tu)1(al)-281(data)-280(is)-281(con)28(tained)-280(in)-281(the)-280(p)-28(olymorphic)-280(c)-1(omp)-27(onen)28(t)]TJ/F30 9.9626 Tf 260.737 0 Td [(v%v)]TJ/F8 9.9626 Tf 15.691 0 Td [(;)-298(the)-280(s)-1(eparati)1(on)]TJ -276.428 -11.955 Td [(b)-28(et)28(w)28(een)-427(the)-426(application)-427(and)-426(the)-427(actual)-426(data)-426(is)-427(essen)28(tial)-427(for)-426(cases)-427(where)-426(it)-427(is)]TJ 0 -11.955 Td [(necessary)-426(to)-426(link)-425(to)-426(data)-426(storage)-426(made)-425(a)27(v)56(ailable)-426(elsewhere)-426(outside)-425(the)-426(direct)]TJ 0 -11.955 Td [(con)28(trol)-335(of)-335(the)-336(compiler/appl)1(ic)-1(ati)1(on,)-336(e.g.)-450(data)-335(stored)-335(in)-335(a)-335(graphics)-335(ac)-1(celerator's)]TJ 0 -11.955 Td [(priv)56(ate)-334(memory)84(.)]TJ +/F8 9.9626 Tf 24.554 0 Td [(Compressed)-333(storage)-334(b)28(y)-333(ro)27(ws;)]TJ 0 g 0 G +/F27 9.9626 Tf -111.543 -20.183 Td [(psb)]TJ +ET +q +1 0 0 1 117.832 583.917 cm +[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S +Q +BT +/F27 9.9626 Tf 121.269 583.718 Td [(T)]TJ +ET +q +1 0 0 1 129.926 583.917 cm +[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S +Q +BT +/F27 9.9626 Tf 133.364 583.718 Td [(csc)]TJ +ET +q +1 0 0 1 148.754 583.917 cm +[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S +Q +BT +/F27 9.9626 Tf 152.191 583.718 Td [(sparse)]TJ +ET +q +1 0 0 1 183.821 583.917 cm +[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S +Q +BT +/F27 9.9626 Tf 187.258 583.718 Td [(mat)]TJ 0 g 0 G +/F8 9.9626 Tf 24.553 0 Td [(Compressed)-334(storage)-333(b)28(y)-333(columns;)]TJ -111.916 -20.119 Td [(The)-373(inner)-373(sparse)-373(matrix)-373(has)-373(an)-373(asso)-28(ciated)-373(state,)-383(whic)28(h)-373(can)-373(tak)28(e)-373(the)-373(follo)27(wing)]TJ 0 -11.955 Td [(v)56(alues:)]TJ 0 g 0 G +/F27 9.9626 Tf 0 -20.119 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 -/F30 9.9626 Tf 36.238 -20.559 Td [(type)-525(psb_T_base_vect_type)]TJ 10.461 -11.956 Td [(TYPE\050KIND_\051,)-525(allocatable)-525(::)-525(v\050:\051)]TJ -10.461 -11.955 Td [(end)-525(type)-525(psb_T_base_vect_type)]TJ 0 -23.91 Td [(type)-525(psb_T_vect_type)]TJ 10.461 -11.955 Td [(class\050psb_T_base_vect_type\051,)-525(allocatable)-525(::)-525(v)]TJ -10.461 -11.956 Td [(end)-525(type)-1050(psb_T_vect_type)]TJ +/F27 9.9626 Tf -24.907 -20.183 Td [(Assem)32(bled:)]TJ 0 g 0 G -/F8 9.9626 Tf -22.069 -39.795 Td [(Figure)-333(5:)-889(The)-333(PSBLAS)-334(de\014ned)-333(data)-333(t)27(y)1(p)-28(e)-334(that)-333(con)28(tains)-333(a)-334(dense)-333(v)28(ector.)]TJ +/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 -36.601 -11.956 Td [(matrix,)-333(suc)27(h)-333(as)-333(matrix-v)28(ec)-1(tor)-333(pro)-28(d)1(ucts)-1(,)-333(are)-333(only)-333(p)-28(ossible)-334(in)-333(this)-333(state;)]TJ 0 g 0 G +/F27 9.9626 Tf -24.907 -20.183 Td [(Up)-32(date:)]TJ 0 g 0 G -/F27 9.9626 Tf -14.169 -39.964 Td [(3.3.1)-1150(V)96(ector)-384(Metho)-32(ds)]TJ 0 -18.928 Td [(get)]TJ +/F8 9.9626 Tf 45.302 0 Td [(State)-233(en)27(tered)-233(after)-233(a)-234(reinit)1(aliz)-1(at)1(ion;)-267(this)-233(is)-234(used)-233(to)-233(handle)-234(applications)]TJ -20.395 -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.956 Td [(existing)-333(nonzero)-334(en)28(tries.)]TJ -24.907 -20.118 Td [(The)-358(only)-357(storage)-358(v)56(arian)27(t)-357(supp)-28(orting)-357(the)-358(build)-357(s)-1(tate)-357(is)-358(COO;)-357(all)-358(other)-358(v)56(arian)28(ts)]TJ 0 -11.956 Td [(are)-333(obtained)-334(b)28(y)-333(con)28(v)27(ersion)-333(to/from)-333(it.)]TJ/F27 9.9626 Tf 0 -26.238 Td [(3.2.1)-1150(Sparse)-383(Matri)-1(x)-383(Metho)-32(ds)]TJ 0 -18.509 Td [(3.2.2)-1150(get)]TJ ET q -1 0 0 1 166.827 362.408 cm +1 0 0 1 151.025 354.76 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 170.264 362.208 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(dense)-383(v)32(ector)]TJ +/F27 9.9626 Tf 154.462 354.561 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.927 Td [(nr)-525(=)-525(v%get_nrows\050\051)]TJ +/F30 9.9626 Tf -54.567 -18.51 Td [(nr)-525(=)-525(a%get_nrows\050\051)]TJ 0 g 0 G -/F27 9.9626 Tf 0 -22.786 Td [(T)32(yp)-32(e:)]TJ +/F27 9.9626 Tf 0 -22.111 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.082 Td [(On)-383(En)32(try)]TJ +/F27 9.9626 Tf -33.797 -20.183 Td [(On)-383(En)32(try)]TJ 0 g 0 G 0 g 0 G - 0 -21.083 Td [(v)]TJ + 0 -20.184 Td [(a)]TJ 0 g 0 G -/F8 9.9626 Tf 11.028 0 Td [(the)-333(dense)-334(v)28(ector)]TJ 13.878 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ +/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 0 g 0 G - -57.285 -34.741 Td [(On)-383(Return)]TJ + -57.286 -34.067 Td [(On)-383(Return)]TJ 0 g 0 G 0 g 0 G - 0 -21.082 Td [(F)96(unction)-384(v)64(alue)]TJ + 0 -20.183 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(dense)-333(v)27(ector)]TJ/F30 9.9626 Tf 159.596 0 Td [(v)]TJ/F8 9.9626 Tf 5.231 0 Td [(.)]TJ/F27 9.9626 Tf -243.213 -27.431 Td [(sizeof)-383(|)-384(Get)-383(memory)-383(o)-32(ccupation)-384(in)-383(b)32(ytes)-384(of)-383(a)-383(dense)-384(v)32(ector)]TJ +/F8 9.9626 Tf 78.387 0 Td [(The)-333(n)28(um)27(b)-27(e)-1(r)-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.23 0 Td [(.)]TJ/F27 9.9626 Tf -248.554 -26.238 Td [(3.2.3)-1150(get)]TJ +ET +q +1 0 0 1 151.025 181.329 cm +[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S +Q +BT +/F27 9.9626 Tf 154.462 181.13 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 0 -18.927 Td [(memory_size)-525(=)-525(v%sizeof\050\051)]TJ +/F30 9.9626 Tf -54.567 -18.51 Td [(nc)-525(=)-525(a%get_ncols\050\051)]TJ 0 g 0 G -/F27 9.9626 Tf 0 -22.786 Td [(T)32(yp)-32(e:)]TJ +/F27 9.9626 Tf 0 -22.111 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.082 Td [(On)-383(En)32(try)]TJ +/F27 9.9626 Tf -33.797 -20.183 Td [(On)-383(En)32(try)]TJ 0 g 0 G 0 g 0 G -/F8 9.9626 Tf 166.874 -29.888 Td [(24)]TJ +/F8 9.9626 Tf 166.875 -29.888 Td [(17)]TJ 0 g 0 G ET endstream endobj -951 0 obj +957 0 obj << -/Length 3837 +/Length 3543 >> stream 0 g 0 G 0 g 0 G 0 g 0 G BT -/F27 9.9626 Tf 99.895 706.129 Td [(v)]TJ +/F27 9.9626 Tf 150.705 706.129 Td [(a)]TJ 0 g 0 G -/F8 9.9626 Tf 11.028 0 Td [(the)-333(dense)-334(v)28(ector)]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 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 0 g 0 G - -57.286 -37.007 Td [(On)-383(Return)]TJ + -57.285 -37.362 Td [(On)-383(Return)]TJ 0 g 0 G 0 g 0 G - 0 -24.103 Td [(F)96(unction)-384(v)64(alue)]TJ + 0 -24.577 Td [(F)96(unction)-384(v)64(alue)]TJ 0 g 0 G -/F8 9.9626 Tf 78.387 0 Td [(The)-333(memory)-334(o)-28(ccupati)1(on)-334(in)-333(b)28(ytes.)]TJ/F27 9.9626 Tf -78.387 -31.438 Td [(set)-383(|)-384(Set)-383(con)32(ten)32(ts)-383(of)-384(the)-383(v)32(ector)]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/F27 9.9626 Tf -264.3 -32.066 Td [(3.2.4)-1150(get)]TJ +ET +q +1 0 0 1 201.835 600.368 cm +[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S +Q +BT +/F27 9.9626 Tf 205.272 600.169 Td [(nnzeros)-497(|)-498(Get)-497(n)32(um)32(b)-32(er)-498(of)-497(nonzero)-497(elemen)32(ts)-498(in)-497(a)-498(sparse)]TJ -19.56 -11.955 Td [(matrix)]TJ 0 g 0 G 0 g 0 G -/F30 9.9626 Tf 5.231 -20.333 Td [(call)-1050(v%set\050alpha[,first,last]\051)]TJ 0 -11.955 Td [(call)-1050(v%set\050vect[,first,last]\051)]TJ 0 -11.956 Td [(call)-1050(v%zero\050\051)]TJ +/F30 9.9626 Tf -35.007 -20.554 Td [(nz)-525(=)-525(a%get_nnzeros\050\051)]TJ 0 g 0 G -/F27 9.9626 Tf -5.231 -25.051 Td [(T)32(yp)-32(e:)]TJ +/F27 9.9626 Tf 0 -25.407 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 -24.103 Td [(On)-383(En)32(try)]TJ +/F27 9.9626 Tf -33.797 -24.577 Td [(On)-383(En)32(try)]TJ 0 g 0 G 0 g 0 G - 0 -24.104 Td [(v)]TJ + 0 -24.577 Td [(a)]TJ 0 g 0 G -/F8 9.9626 Tf 11.028 0 Td [(the)-333(dense)-334(v)28(ector)]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 10.551 0 Td [(the)-333(sparse)-334(matrix)]TJ 14.356 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.378 0 Td [(lo)-32(cal)]TJ 0 g 0 G - -57.286 -36.059 Td [(alpha)]TJ + -57.285 -37.362 Td [(On)-383(Return)]TJ 0 g 0 G -/F8 9.9626 Tf 32.033 0 Td [(A)-333(scalar)-334(v)56(alue.)]TJ -7.126 -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 [(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(n)28(um)28(b)-28(er)-333(of)-334(the)-333(data)-333(t)28(yp)-28(e)-334(ind)1(ic)-1(ated)-333(in)-333(T)83(able)]TJ -0 0 1 rg 0 0 1 RG - [-333(1)]TJ 0 g 0 G - [(.)]TJ + 0 -24.577 Td [(F)96(unction)-384(v)64(alue)]TJ 0 g 0 G -/F27 9.9626 Tf -24.907 -24.104 Td [(\014rst,last)]TJ +/F8 9.9626 Tf 78.386 0 Td [(The)-333(n)27(um)28(b)-28(er)-333(of)-333(nonzero)-333(e)-1(l)1(e)-1(men)28(ts)-333(stored)-334(in)-333(sparse)-333(matrix)]TJ/F30 9.9626 Tf 249.98 0 Td [(a)]TJ/F8 9.9626 Tf 5.23 0 Td [(.)]TJ/F27 9.9626 Tf -333.596 -26.57 Td [(Notes)]TJ 0 g 0 G -/F8 9.9626 Tf 45.949 0 Td [(Boundaries)-333(for)-334(setting)-333(in)-333(the)-333(v)27(ector.)]TJ -21.042 -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 [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(in)28(tegers.)]TJ +/F8 9.9626 Tf 12.176 -23.414 Td [(1.)]TJ 0 g 0 G -/F27 9.9626 Tf -24.907 -24.104 Td [(v)32(ect)]TJ + [-500(The)-462(function)-462(v)55(alue)-462(is)-462(sp)-28(eci\014c)-462(to)-463(th)1(e)-463(storage)-462(format)-462(of)-462(matrix)]TJ/F30 9.9626 Tf 296.649 0 Td [(a)]TJ/F8 9.9626 Tf 5.231 0 Td [(;)-527(some)]TJ -289.149 -11.955 Td [(storage)-465(formats)-466(emplo)28(y)-465(padding,)-498(th)28(us)-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)-333(for)-334(di\013eren)28(t)-333(storage)-334(c)28(hoices.)]TJ/F27 9.9626 Tf -24.907 -32.066 Td [(3.2.5)-1150(get)]TJ +ET +q +1 0 0 1 201.835 313.444 cm +[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S +Q +BT +/F27 9.9626 Tf 205.272 313.245 Td [(size)-514(|)-513(Get)-514(maxim)32(um)-513(n)31(u)1(m)31(b)-32(er)-513(of)-514(nonzero)-513(elemen)32(ts)-514(in)-513(a)]TJ -19.56 -11.955 Td [(sparse)-383(matri)-1(x)]TJ 0 g 0 G -/F8 9.9626 Tf 25.509 0 Td [(An)-333(arra)28(y)]TJ -0.602 -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 [(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(n)28(um)28(b)-28(er)-333(of)-334(the)-333(data)-333(t)28(yp)-28(e)-334(ind)1(ic)-1(ated)-333(in)-333(T)83(able)]TJ -0 0 1 rg 0 0 1 RG - [-333(1)]TJ 0 g 0 G - [(.)]TJ -24.907 -26.095 Td [(Note)-392(t)1(hat)-392(a)-391(call)-392(to)]TJ/F30 9.9626 Tf 87.3 0 Td [(v%zero\050\051)]TJ/F8 9.9626 Tf 45.742 0 Td [(is)-391(pro)27(vided)-391(as)-391(a)-392(shorthand,)-406(but)-391(is)-391(equiv)55(alen)28(t)-391(to)]TJ -133.042 -11.956 Td [(a)-320(call)-319(to)]TJ/F30 9.9626 Tf 38.336 0 Td [(v%set\050zero\051)]TJ/F8 9.9626 Tf 60.718 0 Td [(with)-320(the)]TJ/F30 9.9626 Tf 39.579 0 Td [(zero)]TJ/F8 9.9626 Tf 24.106 0 Td [(constan)28(t)-320(ha)28(ving)-320(the)-319(appropriate)-320(t)28(yp)-28(e)-320(and)]TJ -162.739 -11.955 Td [(kind.)]TJ +/F30 9.9626 Tf -35.007 -20.554 Td [(maxnz)-525(=)-525(a%get_size\050\051)]TJ 0 g 0 G -/F27 9.9626 Tf 0 -26.096 Td [(On)-383(Return)]TJ +/F27 9.9626 Tf 0 -25.407 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 - 0 -24.103 Td [(v)]TJ +/F27 9.9626 Tf -33.797 -24.577 Td [(On)-383(En)32(try)]TJ +0 g 0 G +0 g 0 G + 0 -24.577 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.378 0 Td [(lo)-32(cal)]TJ +0 g 0 G + -57.285 -37.362 Td [(On)-383(Return)]TJ +0 g 0 G +0 g 0 G + 0 -24.577 Td [(F)96(unction)-384(v)64(alue)]TJ 0 g 0 G -/F8 9.9626 Tf 11.028 0 Td [(the)-333(dense)-334(v)28(ector,)-333(with)-334(up)-27(dated)-334(en)28(tries)]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 78.386 0 Td [(The)-253(maxim)27(um)-253(n)28(um)28(b)-28(er)-253(of)-253(nonzero)-254(elemen)28(ts)-253(that)-253(can)-254(b)-27(e)-254(stored)]TJ -53.479 -11.955 Td [(in)-333(sparse)-334(matrix)]TJ/F30 9.9626 Tf 74.055 0 Td [(a)]TJ/F8 9.9626 Tf 8.551 0 Td [(using)-333(its)-334(curren)28(t)-333(memory)-334(allo)-27(cation.)]TJ 0 g 0 G -/F8 9.9626 Tf 109.589 -41.843 Td [(25)]TJ + 59.361 -29.888 Td [(18)]TJ 0 g 0 G ET endstream endobj -959 0 obj +962 0 obj << -/Length 4652 +/Length 3749 >> stream 0 g 0 G 0 g 0 G BT -/F27 9.9626 Tf 150.705 706.129 Td [(get)]TJ -ET -q -1 0 0 1 166.827 706.328 cm -[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S -Q -BT -/F27 9.9626 Tf 170.264 706.129 Td [(v)32(ect)-383(|)-384(Get)-383(a)-383(cop)31(y)-383(of)-383(the)-384(v)32(ector)-383(con)32(ten)32(ts)]TJ +/F27 9.9626 Tf 99.895 706.129 Td [(3.2.6)-1150(sizeof)-383(|)-384(Get)-383(memory)-384(o)-31(cc)-1(u)1(pa)-1(tion)-383(in)-383(b)32(ytes)-384(of)-383(a)-383(sparse)-384(matrix)]TJ 0 g 0 G 0 g 0 G -/F30 9.9626 Tf -19.559 -19.197 Td [(extv)-525(=)-525(v%get_vect\050[n]\051)]TJ +/F30 9.9626 Tf 0 -19.674 Td [(memory_size)-525(=)-525(a%sizeof\050\051)]TJ 0 g 0 G -/F27 9.9626 Tf 0 -23.219 Td [(T)32(yp)-32(e:)]TJ +/F27 9.9626 Tf 0 -23.989 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.66 Td [(On)-383(En)32(try)]TJ -0 g 0 G -0 g 0 G - 0 -21.66 Td [(v)]TJ +/F27 9.9626 Tf -33.797 -22.687 Td [(On)-383(En)32(try)]TJ 0 g 0 G -/F8 9.9626 Tf 11.028 0 Td [(the)-333(dense)-334(v)28(ector)]TJ 13.878 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ 0 g 0 G - -57.285 -33.615 Td [(n)]TJ + 0 -22.686 Td [(a)]TJ 0 g 0 G -/F8 9.9626 Tf 11.346 0 Td [(Size)-333(to)-334(b)-27(e)-334(returned)]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 23.073 0 Td [(.)]TJ -55.452 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.612 0 Td [(optional)]TJ/F8 9.9626 Tf 40.576 0 Td [(;)-333(default:)-445(en)28(tire)-333(v)28(ec)-1(tor)1(.)]TJ +/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 0 g 0 G -/F27 9.9626 Tf -95.094 -35.174 Td [(On)-383(Return)]TJ + -57.286 -35.944 Td [(On)-383(Return)]TJ 0 g 0 G 0 g 0 G - 0 -21.66 Td [(F)96(unction)-384(v)64(alue)]TJ + 0 -22.687 Td [(F)96(unction)-384(v)64(alue)]TJ 0 g 0 G -/F8 9.9626 Tf 78.386 0 Td [(An)-353(allo)-28(catable)-354(arra)28(y)-353(holding)-354(a)-353(cop)28(y)-354(of)-353(the)-354(dense)-353(v)28(ec)-1(t)1(o)-1(r)-353(con-)]TJ -53.48 -11.956 Td [(ten)28(ts.)-440(If)-319(the)-320(argumen)28(t)]TJ/F11 9.9626 Tf 99.799 0 Td [(n)]TJ/F8 9.9626 Tf 9.161 0 Td [(is)-319(sp)-28(eci\014ed,)-322(the)-320(size)-319(of)-319(the)-320(returned)-319(arra)28(y)-320(equals)]TJ -108.96 -11.955 Td [(the)-401(minim)28(um)-401(b)-28(et)28(w)28(een)]TJ/F11 9.9626 Tf 102.199 0 Td [(n)]TJ/F8 9.9626 Tf 9.974 0 Td [(and)-401(the)-401(in)28(ternal)-401(size)-401(of)-400(the)-401(v)27(ector,)-417(or)-401(0)-401(if)]TJ/F11 9.9626 Tf 189.961 0 Td [(n)]TJ/F8 9.9626 Tf 9.974 0 Td [(is)]TJ -312.108 -11.955 Td [(negativ)28(e;)-389(otherwise,)-380(the)-371(size)-370(of)-371(the)-370(arra)28(y)-371(is)-370(the)-371(same)-371(as)-370(the)-371(in)28(ternal)-370(size)]TJ 0 -11.955 Td [(of)-333(the)-334(v)28(ector.)]TJ/F27 9.9626 Tf -24.906 -28.197 Td [(clone)-383(|)-384(Clone)-383(curren)32(t)-383(ob)-64(ject)]TJ +/F8 9.9626 Tf 78.387 0 Td [(The)-333(memory)-334(o)-28(ccupati)1(on)-334(in)-333(b)28(ytes.)]TJ/F27 9.9626 Tf -78.387 -29.558 Td [(3.2.7)-1150(get)]TJ +ET +q +1 0 0 1 151.025 517.148 cm +[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S +Q +BT +/F27 9.9626 Tf 154.462 516.949 Td [(fm)32(t)-383(|)-384(Short)-383(description)-384(of)-383(the)-383(dynamic)-384(t)32(yp)-32(e)]TJ 0 g 0 G 0 g 0 G -/F30 9.9626 Tf 0 -19.197 Td [(call)-1050(x%clone\050y,info\051)]TJ +/F30 9.9626 Tf -54.567 -19.675 Td [(write\050*,*\051)-525(a%get_fmt\050\051)]TJ 0 g 0 G -/F27 9.9626 Tf 0 -23.218 Td [(T)32(yp)-32(e:)]TJ +/F27 9.9626 Tf 0 -23.988 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.66 Td [(On)-383(En)32(try)]TJ -0 g 0 G -0 g 0 G - 0 -21.661 Td [(x)]TJ +/F27 9.9626 Tf -33.797 -22.687 Td [(On)-383(En)32(try)]TJ 0 g 0 G -/F8 9.9626 Tf 11.028 0 Td [(the)-333(dense)-334(v)28(ector.)]TJ 13.878 -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 0 g 0 G -/F27 9.9626 Tf -80.358 -35.174 Td [(On)-383(Return)]TJ + 0 -22.687 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 0 g 0 G - 0 -21.66 Td [(y)]TJ + -57.286 -35.944 Td [(On)-383(Return)]TJ 0 g 0 G -/F8 9.9626 Tf 11.028 0 Td [(A)-333(cop)27(y)-333(of)-333(the)-333(input)-334(ob)-55(ject.)]TJ 0 g 0 G -/F27 9.9626 Tf -11.028 -21.66 Td [(info)]TJ + 0 -22.686 Td [(F)96(unction)-384(v)64(alue)]TJ 0 g 0 G -/F8 9.9626 Tf 23.758 0 Td [(Return)-333(co)-28(de.)]TJ/F16 11.9552 Tf -23.758 -30.189 Td [(3.4)-1125(Preconditioner)-375(data)-375(structure)]TJ/F8 9.9626 Tf 0 -19.197 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(precondition)1(e)-1(r)1(s)-384(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)-333(ILU\0500\051.)]TJ 14.944 -12.389 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 78.387 0 Td [(A)-484(short)-483(string)-484(describing)-484(the)-484(dynamic)-484(t)28(yp)-27(e)-484(of)-484(the)-484(matrix.)]TJ -53.48 -11.956 Td [(Prede\014ned)-333(v)55(alues)-333(include)]TJ/F30 9.9626 Tf 113.408 0 Td [(NULL)]TJ/F8 9.9626 Tf 20.922 0 Td [(,)]TJ/F30 9.9626 Tf 6.088 0 Td [(COO)]TJ/F8 9.9626 Tf 15.691 0 Td [(,)]TJ/F30 9.9626 Tf 6.088 0 Td [(CSR)]TJ/F8 9.9626 Tf 19.012 0 Td [(and)]TJ/F30 9.9626 Tf 19.372 0 Td [(CSC)]TJ/F8 9.9626 Tf 15.691 0 Td [(.)]TJ/F27 9.9626 Tf -241.179 -29.558 Td [(3.2.8)-1150(is)]TJ ET q -1 0 0 1 324.691 168.346 cm -[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +1 0 0 1 143.292 316.012 cm +[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F30 9.9626 Tf 327.829 168.146 Td [(prec)]TJ +/F27 9.9626 Tf 146.729 315.813 Td [(bld,)-383(is)]TJ ET q -1 0 0 1 349.378 168.346 cm -[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +1 0 0 1 178.032 316.012 cm +[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F30 9.9626 Tf 352.516 168.146 Td [(type)]TJ/F8 9.9626 Tf 25.18 0 Td [(data)-427(structure)-428(rep)-28(orted)-427(in)]TJ -226.991 -11.955 Td [(\014gure)]TJ -0 0 1 rg 0 0 1 RG - [-361(6)]TJ +/F27 9.9626 Tf 181.469 315.813 Td [(up)-32(d,)-383(is)]TJ +ET +q +1 0 0 1 216.273 316.012 cm +[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S +Q +BT +/F27 9.9626 Tf 219.71 315.813 Td [(asb)-383(|)-384(Status)-383(c)32(hec)32(k)]TJ 0 g 0 G - [(.)-527(The)]TJ/F30 9.9626 Tf 61.729 0 Td [(psb_prec_type)]TJ/F8 9.9626 Tf 71.59 0 Td [(data)-361(t)28(yp)-28(e)-361(ma)28(y)-361(con)28(tain)-361(a)-361(simple)-361(preconditionin)1(g)]TJ -133.319 -11.955 Td [(matrix)-488(with)-487(the)-488(asso)-28(ciated)-488(comm)28(unication)-487(des)-1(crip)1(tor.The)-488(in)28(ternal)-488(precondi-)]TJ 0 -11.955 Td [(tioner)-417(is)-417(allo)-28(cated)-417(app)1(ropriately)-417(with)-417(the)-417(dynamic)-417(t)28(yp)-28(e)-417(corresp)-28(onding)-417(to)-417(th)1(e)]TJ 0 -11.955 Td [(desired)-333(preconditioner.)]TJ 0 g 0 G - 166.874 -29.888 Td [(26)]TJ +/F30 9.9626 Tf -119.815 -19.674 Td [(if)-525(\050a%is_bld\050\051\051)-525(then)]TJ 0 -11.955 Td [(if)-525(\050a%is_upd\050\051\051)-525(then)]TJ 0 -11.955 Td [(if)-525(\050a%is_asb\050\051\051)-525(then)]TJ 0 g 0 G -ET - -endstream -endobj -965 0 obj -<< -/Length 3656 ->> -stream +/F27 9.9626 Tf 0 -23.989 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 -22.687 Td [(On)-383(En)32(try)]TJ 0 g 0 G 0 g 0 G + 0 -22.686 Td [(a)]TJ 0 g 0 G +/F8 9.9626 Tf 10.551 0 Td [(the)-333(sparse)-334(matrix)]TJ 14.356 -11.956 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ 0 g 0 G + -57.286 -35.944 Td [(On)-383(Return)]TJ 0 g 0 G -BT -/F47 8.9664 Tf 126.497 705.133 Td [(type)-525(psb_Tprec_type)]TJ 9.414 -10.959 Td [(class\050psb_T_base_prec_type\051,)-525(allocatable)-525(::)-525(prec)]TJ -9.414 -10.959 Td [(end)-525(type)-525(psb_Tprec_type)]TJ 0 g 0 G -/F8 9.9626 Tf -14.633 -38.799 Td [(Figure)-333(6:)-445(The)-333(PSBLAS)-333(de\014ned)-334(data)-333(t)28(yp)-28(e)-333(that)-333(c)-1(on)28(tains)-333(a)-333(preconditioner.)]TJ + 0 -22.686 Td [(F)96(unction)-384(v)64(alue)]TJ 0 g 0 G +/F8 9.9626 Tf 78.387 0 Td [(A)]TJ/F30 9.9626 Tf 9.727 0 Td [(logical)]TJ/F8 9.9626 Tf 38.87 0 Td [(v)56(alue)-227(indicating)-226(whether)-227(the)-226(matrix)-227(is)-226(in)-227(the)-227(Bui)1(ld,)]TJ -102.077 -11.955 Td [(Up)-28(date)-333(or)-333(Asse)-1(m)28(bled)-333(state,)-333(res)-1(p)-27(ectiv)27(ely)84(.)]TJ 0 g 0 G -/F16 11.9552 Tf -11.969 -31.825 Td [(3.5)-1125(Heap)-375(data)-375(structure)]TJ/F8 9.9626 Tf 0 -18.39 Td [(Among)-393(the)-393(to)-28(ols)-393(routines)-393(of)-393(sec.)]TJ -0 0 1 rg 0 0 1 RG - [-393(6)]TJ + 141.968 -29.888 Td [(19)]TJ 0 g 0 G - [(,)-408(w)28(e)-393(ha)28(v)27(e)-393(a)-393(n)28(um)28(b)-28(er)-393(of)-393(sorting)-393(utilities;)-423(the)]TJ 0 -11.955 Td [(heap)-333(sort)-334(is)-333(implemen)28(ted)-334(in)-333(terms)-333(of)-334(heaps)-333(ha)28(ving)-333(the)-334(follo)28(wing)-333(signatures:)]TJ -0 g 0 G -/F30 9.9626 Tf 0 -19.925 Td [(psb)]TJ ET -q -1 0 0 1 116.214 562.52 cm -[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S -Q + +endstream +endobj +967 0 obj +<< +/Length 4632 +>> +stream +0 g 0 G +0 g 0 G BT -/F30 9.9626 Tf 119.352 562.321 Td [(T)]TJ +/F27 9.9626 Tf 150.705 706.129 Td [(3.2.9)-1150(is)]TJ ET q -1 0 0 1 125.21 562.52 cm -[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +1 0 0 1 194.101 706.328 cm +[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F30 9.9626 Tf 128.348 562.321 Td [(heap)]TJ -0 g 0 G -/F8 9.9626 Tf 25.903 0 Td [(:)-425(a)-295(heap)-296(con)28(taining)-295(elemen)28(ts)-295(of)-295(t)27(yp)-27(e)-296(T,)-295(where)-295(T)-295(can)-295(b)-28(e)]TJ/F30 9.9626 Tf 242.282 0 Td [(i,s,c,d,z)]TJ/F8 9.9626 Tf -271.731 -11.955 Td [(for)-333(in)28(tege)-1(r)1(,)-334(real)-333(and)-333(complex)-334(data;)]TJ -0 g 0 G -/F30 9.9626 Tf -24.907 -19.925 Td [(psb)]TJ +/F27 9.9626 Tf 197.538 706.129 Td [(lo)32(w)32(er,)-384(is)]TJ ET q -1 0 0 1 116.214 530.64 cm -[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +1 0 0 1 239.447 706.328 cm +[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F30 9.9626 Tf 119.352 530.441 Td [(T)]TJ +/F27 9.9626 Tf 242.884 706.129 Td [(upp)-32(er,)-383(is)]TJ ET q -1 0 0 1 125.21 530.64 cm -[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +1 0 0 1 287.658 706.328 cm +[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F30 9.9626 Tf 128.348 530.441 Td [(idx)]TJ +/F27 9.9626 Tf 291.095 706.129 Td [(triangle,)-383(i)-1(s)]TJ ET q -1 0 0 1 144.667 530.64 cm -[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +1 0 0 1 344.938 706.328 cm +[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F30 9.9626 Tf 147.805 530.441 Td [(heap)]TJ +/F27 9.9626 Tf 348.375 706.129 Td [(unit)-383(|)-384(F)96(ormat)-383(c)32(hec)32(k)]TJ 0 g 0 G -/F8 9.9626 Tf 25.903 0 Td [(:)-408(a)-260(heap)-260(con)28(taining)-260(elemen)28(ts)-260(of)-260(t)28(yp)-28(e)-260(T,)-260(as)-259(ab)-28(o)28(v)27(e,)-274(together)-260(with)]TJ -48.906 -11.956 Td [(an)-333(in)28(tege)-1(r)-333(index.)]TJ -24.907 -19.925 Td [(Giv)28(en)-334(a)-333(heap)-333(ob)-56(ject,)-333(the)-333(follo)27(wing)-333(metho)-28(ds)-333(are)-333(de\014ned)-334(on)-333(it:)]TJ 0 g 0 G -/F27 9.9626 Tf 0 -19.925 Td [(init)]TJ +/F30 9.9626 Tf -197.67 -19.048 Td [(if)-525(\050a%is_triangle\050\051\051)-525(then)]TJ 0 -11.955 Td [(if)-525(\050a%is_upper\050\051\051)-525(then)]TJ 0 -11.955 Td [(if)-525(\050a%is_lower\050\051\051)-525(then)]TJ 0 -11.955 Td [(if)-525(\050a%is_unit\050\051\051)-525(then)]TJ 0 g 0 G -/F8 9.9626 Tf 22.167 0 Td [(Initialize)-333(memory;)-334(also)-333(c)28(ho)-28(ose)-334(ascending)-333(or)-333(descending)-333(order;)]TJ +/F27 9.9626 Tf 0 -22.979 Td [(T)32(yp)-32(e:)]TJ 0 g 0 G -/F27 9.9626 Tf -22.167 -19.926 Td [(ho)32(wman)32(y)]TJ +/F8 9.9626 Tf 33.797 0 Td [(Async)28(hronous.)]TJ 0 g 0 G -/F8 9.9626 Tf 52.242 0 Td [(Curren)28(t)-333(heap)-334(o)-28(ccupan)1(c)-1(y;)]TJ +/F27 9.9626 Tf -33.797 -21.341 Td [(On)-383(En)32(try)]TJ 0 g 0 G -/F27 9.9626 Tf -52.242 -19.925 Td [(insert)]TJ 0 g 0 G -/F8 9.9626 Tf 33.473 0 Td [(Add)-333(an)-334(item)-333(\050or)-333(an)-334(item)-333(and)-333(its)-334(ind)1(e)-1(x)1(\051;)]TJ + 0 -21.34 Td [(a)]TJ 0 g 0 G -/F27 9.9626 Tf -33.473 -19.925 Td [(get)]TJ -ET -q -1 0 0 1 116.018 419.058 cm -[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S -Q -BT -/F27 9.9626 Tf 119.455 418.859 Td [(\014rst)]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 0 g 0 G -/F8 9.9626 Tf 25.039 0 Td [(Remo)28(v)27(e)-333(and)-333(return)-333(the)-334(\014rst)-333(elemen)28(t;)]TJ + -57.285 -34.934 Td [(On)-383(Return)]TJ 0 g 0 G -/F27 9.9626 Tf -44.599 -19.925 Td [(dump)]TJ 0 g 0 G -/F8 9.9626 Tf 33.624 0 Td [(Prin)28(t)-333(on)-334(\014le;)]TJ + 0 -21.341 Td [(F)96(unction)-384(v)64(alue)]TJ 0 g 0 G -/F27 9.9626 Tf -33.624 -19.926 Td [(free)]TJ +/F8 9.9626 Tf 78.386 0 Td [(A)]TJ/F30 9.9626 Tf 10.615 0 Td [(logical)]TJ/F8 9.9626 Tf 39.755 0 Td [(v)56(alue)-316(indicating)-315(whether)-316(the)-315(matrix)-316(i)1(s)-316(triangular;)]TJ -103.85 -11.955 Td [(if)]TJ/F30 9.9626 Tf 8.896 0 Td [(is_triangle\050\051)]TJ/F8 9.9626 Tf 71.079 0 Td [(returns)]TJ/F30 9.9626 Tf 34.189 0 Td [(.true.)]TJ/F8 9.9626 Tf 34.466 0 Td [(c)28(hec)27(k)-309(also)-310(if)-309(it)-310(is)-309(lo)27(w)28(er,)-314(upp)-28(er)-309(and)-310(with)]TJ -148.63 -11.955 Td [(a)-333(unit)-334(\050i.e.)-444(assumed\051)-333(diagonal.)]TJ/F27 9.9626 Tf -24.906 -27.773 Td [(3.2.10)-1150(cscn)32(v)-384(|)-383(Con)32(v)32(ert)-383(to)-384(a)-383(di\013eren)32(t)-383(storage)-384(format)]TJ 0 g 0 G -/F8 9.9626 Tf 23.703 0 Td [(Release)-334(memory)84(.)]TJ -23.703 -19.925 Td [(These)-333(ob)-56(jects)-333(are)-334(used)-333(in)-333(MLD2P4)-334(to)-333(implemen)28(t)-334(the)-333(factorization)-333(algorithms.)]TJ 0 g 0 G - 166.875 -268.645 Td [(27)]TJ +/F30 9.9626 Tf 0 -19.048 Td [(call)-1050(a%cscnv\050b,info)-525([,)-525(type,)-525(mold,)-525(dupl]\051)]TJ 0 -11.955 Td [(call)-1050(a%cscnv\050info)-525([,)-525(type,)-525(mold,)-525(dupl]\051)]TJ 0 g 0 G -ET - -endstream -endobj -970 0 obj -<< -/Length 158 ->> -stream +/F27 9.9626 Tf 0 -22.979 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 -BT -/F16 14.3462 Tf 150.705 706.129 Td [(4)-1125(Computational)-375(routines)]TJ +/F27 9.9626 Tf -33.797 -21.34 Td [(On)-383(En)32(try)]TJ +0 g 0 G +0 g 0 G + 0 -21.341 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 [(A)-333(v)55(ariable)-333(of)-333(t)27(yp)-27(e)]TJ/F30 9.9626 Tf 81.943 0 Td [(psb_Tspmat_type)]TJ/F8 9.9626 Tf 78.455 0 Td [(.)]TJ -160.398 -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 +0 g 0 G +/F27 9.9626 Tf -80.358 -33.295 Td [(t)32(yp)-32(e)]TJ +0 g 0 G +/F8 9.9626 Tf 27.099 0 Td [(a)-333(string)-334(requesting)-333(a)-333(new)-334(format.)]TJ -2.193 -11.956 Td [(T)28(yp)-28(e:)-444(optional.)]TJ +0 g 0 G +/F27 9.9626 Tf -24.906 -21.34 Td [(mold)]TJ +0 g 0 G +/F8 9.9626 Tf 29.805 0 Td [(a)-312(v)56(ariable)-312(of)]TJ/F30 9.9626 Tf 56.396 0 Td [(class\050psb_T_base_sparse_mat\051)]TJ/F8 9.9626 Tf 149.557 0 Td [(requesting)-312(a)-312(new)-312(format.)]TJ -210.852 -11.955 Td [(T)28(yp)-28(e:)-444(optional.)]TJ +0 g 0 G +/F27 9.9626 Tf -24.906 -21.34 Td [(dupl)]TJ +0 g 0 G +/F8 9.9626 Tf 27.259 0 Td [(an)-268(in)28(teger)-268(v)56(alue)-268(sp)-28(eci\014ng)-267(ho)27(w)-267(to)-268(handle)-268(duplicates)-268(\050see)-268(Named)-267(Constan)27(ts)]TJ -2.353 -11.956 Td [(b)-28(elo)28(w\051)]TJ 0 g 0 G -/F8 9.9626 Tf 166.874 -615.691 Td [(28)]TJ +/F27 9.9626 Tf -24.906 -22.979 Td [(On)-383(Return)]TJ +0 g 0 G +0 g 0 G + 0 -21.34 Td [(b,a)]TJ +0 g 0 G +/F8 9.9626 Tf 20.098 0 Td [(A)-333(cop)27(y)-333(of)]TJ/F30 9.9626 Tf 45.385 0 Td [(a)]TJ/F8 9.9626 Tf 8.552 0 Td [(with)-333(a)-334(new)-333(storage)-333(format.)]TJ -49.129 -11.955 Td [(A)-333(v)55(ariable)-333(of)-333(t)27(yp)-27(e)]TJ/F30 9.9626 Tf 81.943 0 Td [(psb_Tspmat_type)]TJ/F8 9.9626 Tf 78.455 0 Td [(.)]TJ +0 g 0 G +/F27 9.9626 Tf -185.304 -21.34 Td [(info)]TJ +0 g 0 G +/F8 9.9626 Tf 23.758 0 Td [(Return)-333(co)-28(de.)]TJ -23.758 -23.333 Td [(The)]TJ/F30 9.9626 Tf 20.085 0 Td [(mold)]TJ/F8 9.9626 Tf 23.848 0 Td [(argumen)28(ts)-294(ma)28(y)-294(b)-28(e)-294(emplo)28(y)28(ed)-294(to)-294(in)28(terface)-294(with)-293(sp)-28(ecial)-294(devices,)-302(suc)28(h)-294(as)]TJ -43.933 -11.955 Td [(GPUs)-333(and)-334(other)-333(accelerators.)]TJ +0 g 0 G + 166.874 -29.888 Td [(20)]TJ 0 g 0 G ET endstream endobj -981 0 obj +971 0 obj << -/Length 7361 +/Length 4114 >> stream 0 g 0 G 0 g 0 G BT -/F16 11.9552 Tf 99.895 706.129 Td [(psb)]TJ -ET -q -1 0 0 1 120.951 706.328 cm -[]0 d 0 J 0.398 w 0 0 m 4.035 0 l S -Q -BT -/F16 11.9552 Tf 124.986 706.129 Td [(geaxpb)31(y)-375(|)-375(General)-375(Dense)-375(Matrix)-375(Sum)]TJ/F8 9.9626 Tf -25.091 -18.578 Td [(This)-436(subroutine)-436(is)-436(an)-436(in)28(te)-1(r)1(fac)-1(e)-436(to)-436(the)-436(computational)-436(k)28(ernel)-436(for)-436(dense)-436(matrix)]TJ 0 -11.955 Td [(sum:)]TJ/F11 9.9626 Tf 142.538 -12.258 Td [(y)]TJ/F14 9.9626 Tf 8.009 0 Td [(\040)]TJ/F11 9.9626 Tf 12.73 0 Td [(\013)-226(x)]TJ/F8 9.9626 Tf 16.532 0 Td [(+)]TJ/F11 9.9626 Tf 9.962 0 Td [(\014)-53(y)]TJ +/F27 9.9626 Tf 99.895 706.129 Td [(3.2.11)-1150(csclip)-384(|)-383(Reduce)-383(to)-384(a)-383(submatrix)]TJ 0 g 0 G 0 g 0 G -/F30 9.9626 Tf -189.771 -22.424 Td [(call)-525(psb_geaxpby\050alpha,)-525(x,)-525(beta,)-525(y,)-525(desc_a,)-525(info\051)]TJ +/F30 9.9626 Tf 20.922 -19.41 Td [(call)-525(a%csclip\050b,info[,&)]TJ 15.691 -11.955 Td [(&)-525(imin,imax,jmin,jmax,rscale,cscale]\051)]TJ/F8 9.9626 Tf -21.669 -24.111 Td [(Returns)-222(the)-222(s)-1(u)1(bmatrix)]TJ/F30 9.9626 Tf 99.101 0 Td [(A\050imin:imax,jmin:jmax\051)]TJ/F8 9.9626 Tf 115.068 0 Td [(,)-244(optionally)-222(res)-1(calin)1(g)-223(ro)28(w/-)]TJ -229.113 -11.955 Td [(col)-333(indices)-334(to)-333(the)-333(range)]TJ/F30 9.9626 Tf 104.691 0 Td [(1:imax-imin+1,1:jmax-jmin+1)]TJ/F8 9.9626 Tf 141.219 0 Td [(.)]TJ 0 g 0 G +/F27 9.9626 Tf -245.91 -21.57 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 -ET -q -1 0 0 1 177.988 616.077 cm -[]0 d 0 J 0.398 w 0 0 m 187.526 0 l S -Q -BT -/F11 9.9626 Tf 183.966 607.509 Td [(x)]TJ/F8 9.9626 Tf 5.693 0 Td [(,)]TJ/F11 9.9626 Tf 6.089 0 Td [(y)]TJ/F8 9.9626 Tf 5.242 0 Td [(,)]TJ/F11 9.9626 Tf 6.088 0 Td [(\013)]TJ/F8 9.9626 Tf 6.41 0 Td [(,)]TJ/F11 9.9626 Tf 6.088 0 Td [(\014)]TJ/F27 9.9626 Tf 84.799 0 Td [(Subroutine)]TJ -ET -q -1 0 0 1 177.988 603.724 cm -[]0 d 0 J 0.398 w 0 0 m 187.526 0 l S -Q -BT -/F8 9.9626 Tf 183.966 595.156 Td [(Short)-333(Precision)-333(R)-1(eal)-3102(psb)]TJ -ET -q -1 0 0 1 319.972 595.355 cm -[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S -Q -BT -/F8 9.9626 Tf 322.961 595.156 Td [(geaxpb)28(y)]TJ -138.995 -11.955 Td [(Long)-333(Precision)-334(Real)-3314(p)1(s)-1(b)]TJ -ET -q -1 0 0 1 319.972 583.4 cm -[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S -Q -BT -/F8 9.9626 Tf 322.961 583.201 Td [(geaxpb)28(y)]TJ -138.995 -11.956 Td [(Short)-333(Precision)-333(C)-1(omplex)-1200(p)1(s)-1(b)]TJ -ET -q -1 0 0 1 319.972 571.445 cm -[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S -Q -BT -/F8 9.9626 Tf 322.961 571.245 Td [(geaxpb)28(y)]TJ -138.995 -11.955 Td [(Long)-333(Precision)-334(Complex)-1411(psb)]TJ -ET -q -1 0 0 1 319.972 559.49 cm -[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S -Q -BT -/F8 9.9626 Tf 322.961 559.29 Td [(geaxpb)28(y)]TJ -ET -q -1 0 0 1 177.988 555.504 cm -[]0 d 0 J 0.398 w 0 0 m 187.526 0 l S -Q +/F27 9.9626 Tf -33.797 -22.119 Td [(On)-383(En)32(try)]TJ 0 g 0 G -BT -/F8 9.9626 Tf 228.067 527.465 Td [(T)83(able)-333(1:)-444(Data)-334(t)28(yp)-28(es)]TJ 0 g 0 G + 0 -22.118 Td [(a)]TJ 0 g 0 G +/F8 9.9626 Tf 10.551 0 Td [(the)-333(sparse)-334(matrix.)]TJ 14.356 -11.956 Td [(A)-333(v)55(ariable)-333(of)-333(t)27(yp)-27(e)]TJ/F30 9.9626 Tf 81.943 0 Td [(psb_Tspmat_type)]TJ/F8 9.9626 Tf 78.455 0 Td [(.)]TJ -160.398 -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 0 g 0 G -/F27 9.9626 Tf -128.172 -34.102 Td [(T)32(yp)-32(e:)]TJ +/F27 9.9626 Tf -80.359 -34.073 Td [(imin,imax,jmin,jma)-1(x)]TJ 0 g 0 G -/F8 9.9626 Tf 33.797 0 Td [(Sync)28(hronous.)]TJ +/F8 9.9626 Tf 108.413 0 Td [(Minim)28(um)-333(and)-334(maxim)28(um)-333(ro)27(w)-333(and)-333(column)-333(indices.)]TJ -83.506 -11.956 Td [(T)28(yp)-28(e:)-444(optional.)]TJ 0 g 0 G -/F27 9.9626 Tf -33.797 -20.33 Td [(On)-383(En)32(try)]TJ +/F27 9.9626 Tf -24.907 -22.118 Td [(rscale,cscale)]TJ 0 g 0 G +/F8 9.9626 Tf 65.203 0 Td [(Whether)-333(to)-334(rescale)-333(ro)28(w/column)-334(ind)1(ic)-1(es.)-444(T)28(yp)-28(e:)-444(optional.)]TJ 0 g 0 G - 0 -20.329 Td [(alpha)]TJ +/F27 9.9626 Tf -65.203 -24.111 Td [(On)-383(Return)]TJ 0 g 0 G -/F8 9.9626 Tf 32.033 0 Td [(the)-333(scalar)]TJ/F11 9.9626 Tf 45.468 0 Td [(\013)]TJ/F8 9.9626 Tf 6.41 0 Td [(.)]TJ -59.004 -11.956 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 [(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(n)28(um)28(b)-28(er)-333(of)-334(the)-333(data)-333(t)28(yp)-28(e)-334(ind)1(ic)-1(ated)-333(in)-333(T)83(able)]TJ -0 0 1 rg 0 0 1 RG - [-333(1)]TJ 0 g 0 G - [(.)]TJ + 0 -22.118 Td [(b)]TJ 0 g 0 G -/F27 9.9626 Tf -24.907 -20.33 Td [(x)]TJ +/F8 9.9626 Tf 11.347 0 Td [(A)-333(cop)27(y)-333(of)-333(a)-333(s)-1(u)1(bmatrix)-334(of)]TJ/F30 9.9626 Tf 112.439 0 Td [(a)]TJ/F8 9.9626 Tf 5.231 0 Td [(.)]TJ -104.11 -11.956 Td [(A)-333(v)55(ariable)-333(of)-333(t)27(yp)-27(e)]TJ/F30 9.9626 Tf 81.943 0 Td [(psb_Tspmat_type)]TJ/F8 9.9626 Tf 78.455 0 Td [(.)]TJ 0 g 0 G -/F8 9.9626 Tf 11.028 0 Td [(the)-333(lo)-28(cal)-333(p)-28(ortion)-333(of)-334(global)-333(dense)-333(matrix)]TJ/F11 9.9626 Tf 176.118 0 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(.)]TJ -167.933 -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 [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-255(as:)-405(a)-255(rank)-254(one)-255(or)-255(t)28(w)27(o)-254(arra)27(y)-254(or)-255(an)-255(ob)-55(jec)-1(t)-254(of)-255(t)28(yp)-28(e)]TJ -0 0 1 rg 0 0 1 RG -/F30 9.9626 Tf 244.743 0 Td [(psb)]TJ -ET -q -1 0 0 1 385.864 336.932 cm -[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S -Q -BT -/F30 9.9626 Tf 389.002 336.732 Td [(T)]TJ -ET -q -1 0 0 1 394.86 336.932 cm -[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S -Q -BT -/F30 9.9626 Tf 397.998 336.732 Td [(vect)]TJ +/F27 9.9626 Tf -185.305 -22.118 Td [(info)]TJ +0 g 0 G +/F8 9.9626 Tf 23.758 0 Td [(Return)-333(co)-28(de.)]TJ/F27 9.9626 Tf -23.758 -28.805 Td [(3.2.12)-1150(clean)]TJ ET q -1 0 0 1 419.547 336.932 cm -[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +1 0 0 1 166.779 371.924 cm +[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F30 9.9626 Tf 422.685 336.732 Td [(type)]TJ +/F27 9.9626 Tf 170.216 371.725 Td [(zeros)-383(|)-384(Eliminate)-383(zero)-383(co)-32(e\016cien)32(t)-1(s)]TJ 0 g 0 G -/F8 9.9626 Tf -297.883 -11.955 Td [(con)28(taining)-375(n)27(u)1(m)27(b)-27(e)-1(r)1(s)-376(of)-375(t)28(yp)-28(e)-375(sp)-28(eci\014ed)-375(in)-375(T)83(able)]TJ -0 0 1 rg 0 0 1 RG - [-375(1)]TJ 0 g 0 G - [(.)-570(The)-376(rank)-375(of)]TJ/F11 9.9626 Tf 274.03 0 Td [(x)]TJ/F8 9.9626 Tf 9.432 0 Td [(m)28(ust)-376(b)-27(e)]TJ -283.462 -11.955 Td [(the)-333(same)-334(of)]TJ/F11 9.9626 Tf 53.466 0 Td [(y)]TJ/F8 9.9626 Tf 5.242 0 Td [(.)]TJ +/F30 9.9626 Tf -49.399 -19.41 Td [(call)-525(a%clean_zeros\050info\051)]TJ/F8 9.9626 Tf -5.978 -24.111 Td [(Eliminates)-285(zero)-284(co)-28(e\016cien)27(ts)-284(in)-285(the)-285(inp)1(ut)-285(matrix.)-428(Note)-285(that)-285(dep)-27(ending)-285(on)-285(the)]TJ -14.944 -11.955 Td [(in)28(ternal)-333(storage)-333(format,)-334(th)1(e)-1(r)1(e)-334(ma)28(y)-333(still)-333(b)-28(e)-333(some)-333(amoun)28(t)-334(of)-333(zero)-333(padding)-333(in)-333(the)]TJ 0 -11.955 Td [(output.)]TJ 0 g 0 G -/F27 9.9626 Tf -83.615 -20.33 Td [(b)-32(eta)]TJ +/F27 9.9626 Tf 0 -24.111 Td [(T)32(yp)-32(e:)]TJ 0 g 0 G -/F8 9.9626 Tf 26.941 0 Td [(the)-333(scalar)]TJ/F11 9.9626 Tf 45.468 0 Td [(\014)]TJ/F8 9.9626 Tf 6.161 0 Td [(.)]TJ -53.663 -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 [(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.956 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(n)28(um)28(b)-28(er)-333(of)-334(the)-333(data)-333(t)28(yp)-28(e)-334(ind)1(ic)-1(ated)-333(in)-333(T)83(able)]TJ -0 0 1 rg 0 0 1 RG - [-333(1)]TJ +/F8 9.9626 Tf 33.797 0 Td [(Async)28(hronous.)]TJ 0 g 0 G - [(.)]TJ +/F27 9.9626 Tf -33.797 -22.119 Td [(On)-383(En)32(try)]TJ 0 g 0 G -/F27 9.9626 Tf -24.907 -20.329 Td [(y)]TJ 0 g 0 G -/F8 9.9626 Tf 11.028 0 Td [(the)-333(lo)-28(cal)-333(p)-28(ortion)-333(of)-334(the)-333(global)-333(dense)-334(matrix)]TJ/F11 9.9626 Tf 193.276 0 Td [(y)]TJ/F8 9.9626 Tf 5.242 0 Td [(.)]TJ -184.639 -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 [(inout)]TJ/F8 9.9626 Tf 26.096 0 Td [(.)]TJ -59.582 -11.955 Td [(Sp)-28(eci\014ed)-255(as:)-405(a)-255(rank)-254(one)-255(or)-255(t)28(w)27(o)-254(arra)27(y)-254(or)-255(an)-255(ob)-55(jec)-1(t)-254(of)-255(t)28(yp)-28(e)]TJ -0 0 1 rg 0 0 1 RG -/F30 9.9626 Tf 244.743 0 Td [(psb)]TJ -ET -q -1 0 0 1 385.864 176.72 cm -[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S -Q -BT -/F30 9.9626 Tf 389.002 176.521 Td [(T)]TJ -ET -q -1 0 0 1 394.86 176.72 cm -[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S -Q -BT -/F30 9.9626 Tf 397.998 176.521 Td [(vect)]TJ -ET -q -1 0 0 1 419.547 176.72 cm -[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S -Q -BT -/F30 9.9626 Tf 422.685 176.521 Td [(type)]TJ + 0 -22.118 Td [(a)]TJ 0 g 0 G -/F8 9.9626 Tf -297.883 -11.955 Td [(con)28(taining)-334(n)28(um)27(b)-27(ers)-335(of)-334(the)-334(t)28(yp)-28(e)-334(indicated)-334(in)-334(T)83(able)]TJ -0 0 1 rg 0 0 1 RG - [-334(1)]TJ +/F8 9.9626 Tf 10.551 0 Td [(the)-333(sparse)-334(matrix.)]TJ 14.356 -11.955 Td [(A)-333(v)55(ariable)-333(of)-333(t)27(yp)-27(e)]TJ/F30 9.9626 Tf 81.943 0 Td [(psb_Tspmat_type)]TJ/F8 9.9626 Tf 78.455 0 Td [(.)]TJ -160.398 -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 0 g 0 G - [(.)-447(The)-334(rank)-334(of)]TJ/F11 9.9626 Tf 288.869 0 Td [(y)]TJ/F8 9.9626 Tf 8.571 0 Td [(m)28(ust)]TJ -297.44 -11.955 Td [(b)-28(e)-333(the)-333(sam)-1(e)-333(of)]TJ/F11 9.9626 Tf 67.027 0 Td [(x)]TJ/F8 9.9626 Tf 5.693 0 Td [(.)]TJ +/F27 9.9626 Tf -80.359 -35.518 Td [(On)-383(Return)]TJ 0 g 0 G -/F27 9.9626 Tf -97.627 -20.33 Td [(desc)]TJ -ET -q -1 0 0 1 121.81 132.48 cm -[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S -Q -BT -/F27 9.9626 Tf 125.247 132.281 Td [(a)]TJ 0 g 0 G -/F8 9.9626 Tf 10.551 0 Td [(con)28(tains)-334(d)1(ata)-334(structures)-333(for)-333(com)-1(m)28(unications.)]TJ -10.996 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ + 0 -22.119 Td [(a)]TJ +0 g 0 G +/F8 9.9626 Tf 10.551 0 Td [(The)-333(matrix)]TJ/F30 9.9626 Tf 52.885 0 Td [(a)]TJ/F8 9.9626 Tf 8.551 0 Td [(without)-333(zero)-334(co)-28(e\016cien)28(ts.)]TJ -47.08 -11.955 Td [(A)-333(v)55(ariable)-333(of)-333(t)27(yp)-27(e)]TJ/F30 9.9626 Tf 81.943 0 Td [(psb_Tspmat_type)]TJ/F8 9.9626 Tf 78.455 0 Td [(.)]TJ +0 g 0 G +/F27 9.9626 Tf -185.305 -22.118 Td [(info)]TJ +0 g 0 G +/F8 9.9626 Tf 23.758 0 Td [(Return)-333(co)-28(de.)]TJ 0 g 0 G -/F8 9.9626 Tf 109.589 -29.888 Td [(29)]TJ + 143.117 -29.888 Td [(21)]TJ 0 g 0 G ET endstream endobj -987 0 obj +975 0 obj << -/Length 2655 +/Length 4061 >> stream 0 g 0 G 0 g 0 G BT -/F8 9.9626 Tf 175.611 706.129 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(ob)-55(ject)-334(of)-333(t)28(yp)-28(e)]TJ -0 0 1 rg 0 0 1 RG -/F30 9.9626 Tf 135.659 0 Td [(psb)]TJ -ET -q -1 0 0 1 327.588 682.418 cm -[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S -Q -BT -/F30 9.9626 Tf 330.727 682.219 Td [(desc)]TJ +/F27 9.9626 Tf 150.705 706.129 Td [(3.2.13)-1150(get)]TJ ET q -1 0 0 1 352.275 682.418 cm -[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +1 0 0 1 207.563 706.328 cm +[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F30 9.9626 Tf 355.414 682.219 Td [(type)]TJ +/F27 9.9626 Tf 211 706.129 Td [(diag)-383(|)-384(Get)-383(main)-383(dia)-1(gonal)]TJ 0 g 0 G -/F8 9.9626 Tf 20.921 0 Td [(.)]TJ 0 g 0 G -/F27 9.9626 Tf -225.63 -21.918 Td [(On)-383(Return)]TJ +/F30 9.9626 Tf -39.374 -18.389 Td [(call)-525(a%get_diag\050d,info\051)]TJ/F8 9.9626 Tf -5.977 -21.799 Td [(Returns)-333(a)-334(cop)28(y)-333(of)-333(the)-334(main)-333(diagonal.)]TJ 0 g 0 G +/F27 9.9626 Tf -14.944 -19.829 Td [(T)32(yp)-32(e:)]TJ 0 g 0 G - 0 -19.926 Td [(y)]TJ +/F8 9.9626 Tf 33.797 0 Td [(Async)28(hronous.)]TJ 0 g 0 G -/F8 9.9626 Tf 11.028 0 Td [(the)-333(lo)-28(cal)-333(p)-28(ortion)-333(of)-334(result)-333(submatrix)]TJ/F11 9.9626 Tf 162.364 0 Td [(y)]TJ/F8 9.9626 Tf 5.242 0 Td [(.)]TJ -153.727 -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 [(inout)]TJ/F8 9.9626 Tf 26.097 0 Td [(.)]TJ -59.582 -11.955 Td [(Sp)-28(eci\014ed)-255(as:)-405(a)-255(rank)-254(one)-255(or)-255(t)28(w)28(o)-255(arra)28(y)-255(or)-255(an)-255(ob)-55(ject)-255(of)-255(t)28(yp)-28(e)]TJ -0 0 1 rg 0 0 1 RG -/F30 9.9626 Tf 244.742 0 Td [(psb)]TJ -ET -q -1 0 0 1 436.673 592.754 cm -[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S -Q -BT -/F30 9.9626 Tf 439.811 592.555 Td [(T)]TJ -ET -q -1 0 0 1 445.669 592.754 cm -[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S -Q -BT -/F30 9.9626 Tf 448.807 592.555 Td [(vect)]TJ +/F27 9.9626 Tf -33.797 -19.878 Td [(On)-383(En)32(try)]TJ +0 g 0 G +0 g 0 G + 0 -19.877 Td [(a)]TJ +0 g 0 G +/F8 9.9626 Tf 10.551 0 Td [(the)-333(sparse)-334(matrix.)]TJ 14.355 -11.956 Td [(A)-333(v)55(ariable)-333(of)-333(t)27(yp)-27(e)]TJ/F30 9.9626 Tf 81.943 0 Td [(psb_Tspmat_type)]TJ/F8 9.9626 Tf 78.455 0 Td [(.)]TJ -160.398 -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 +0 g 0 G +/F27 9.9626 Tf -80.358 -33.753 Td [(On)-383(Return)]TJ +0 g 0 G +0 g 0 G + 0 -19.878 Td [(d)]TJ +0 g 0 G +/F8 9.9626 Tf 11.346 0 Td [(A)-333(cop)27(y)-333(of)-333(the)-334(main)-333(diagonal.)]TJ 13.56 -11.955 Td [(A)-333(one-dimensional)-334(arra)28(y)-333(of)-333(the)-334(appropriate)-333(t)28(yp)-28(e.)]TJ +0 g 0 G +/F27 9.9626 Tf -24.906 -19.877 Td [(info)]TJ +0 g 0 G +/F8 9.9626 Tf 23.758 0 Td [(Return)-333(co)-28(de.)]TJ/F27 9.9626 Tf -23.758 -25.876 Td [(3.2.14)-1150(clip)]TJ ET q -1 0 0 1 470.356 592.754 cm -[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +1 0 0 1 209.95 471.307 cm +[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F30 9.9626 Tf 473.495 592.555 Td [(type)]TJ +/F27 9.9626 Tf 213.387 471.107 Td [(diag)-383(|)-384(Cut)-383(out)-383(main)-384(diagonal)]TJ 0 g 0 G -/F8 9.9626 Tf -297.884 -11.955 Td [(con)28(taining)-333(n)27(um)28(b)-28(ers)-333(of)-333(the)-334(t)28(yp)-28(e)-333(indicated)-333(in)-333(T)83(able)]TJ -0 0 1 rg 0 0 1 RG - [-334(1)]TJ 0 g 0 G - [(.)]TJ +/F30 9.9626 Tf -41.761 -18.389 Td [(call)-525(a%clip_diag\050b,info\051)]TJ/F8 9.9626 Tf -5.977 -21.798 Td [(Returns)-333(a)-334(cop)28(y)-333(of)]TJ/F30 9.9626 Tf 80.753 0 Td [(a)]TJ/F8 9.9626 Tf 8.551 0 Td [(without)-333(the)-334(main)-333(diagonal.)]TJ 0 g 0 G -/F27 9.9626 Tf -24.906 -19.926 Td [(info)]TJ +/F27 9.9626 Tf -104.248 -19.83 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.877 Td [(On)-383(En)32(try)]TJ +0 g 0 G +0 g 0 G + 0 -19.878 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 [(A)-333(v)55(ariable)-333(of)-333(t)28(yp)-28(e)]TJ/F30 9.9626 Tf 81.942 0 Td [(psb_Tspmat_type)]TJ/F8 9.9626 Tf 78.456 0 Td [(.)]TJ -160.398 -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 +0 g 0 G +/F27 9.9626 Tf -80.358 -33.754 Td [(On)-383(Return)]TJ +0 g 0 G +0 g 0 G + 0 -19.877 Td [(b)]TJ +0 g 0 G +/F8 9.9626 Tf 11.346 0 Td [(A)-333(cop)27(y)-333(of)]TJ/F30 9.9626 Tf 45.386 0 Td [(a)]TJ/F8 9.9626 Tf 8.551 0 Td [(without)-333(the)-334(main)-333(diagonal.)]TJ -40.376 -11.955 Td [(A)-333(v)55(ariable)-333(of)-333(t)27(y)1(p)-28(e)]TJ/F30 9.9626 Tf 81.942 0 Td [(psb_Tspmat_type)]TJ/F8 9.9626 Tf 78.456 0 Td [(.)]TJ +0 g 0 G +/F27 9.9626 Tf -185.305 -19.878 Td [(info)]TJ +0 g 0 G +/F8 9.9626 Tf 23.758 0 Td [(Return)-333(co)-28(de.)]TJ/F27 9.9626 Tf -23.758 -25.875 Td [(3.2.15)-1150(tril)-384(|)-383(Return)-383(the)-384(lo)32(w)32(er)-383(triangle)]TJ +0 g 0 G +0 g 0 G +/F30 9.9626 Tf 20.921 -18.389 Td [(call)-525(a%tril\050l,info[,&)]TJ 15.691 -11.956 Td [(&)-525(diag,imin,imax,jmin,jmax,rscale,cscale,u]\051)]TJ/F8 9.9626 Tf -21.668 -21.798 Td [(Returns)-376(the)-376(lo)28(w)28(er)-376(triangular)-375(part)-376(of)-376(submatrix)]TJ/F30 9.9626 Tf 210.932 0 Td [(A\050imin:imax,jmin:jmax\051)]TJ/F8 9.9626 Tf 115.068 0 Td [(,)]TJ -340.944 -11.955 Td [(optionally)-222(rescaling)-222(ro)27(w/col)-222(indices)-222(to)-222(the)-222(range)]TJ/F30 9.9626 Tf 205.535 0 Td [(1:imax-imin+1,1:jmax-jmin+1)]TJ/F8 9.9626 Tf -205.535 -11.955 Td [(and)-333(returing)-333(the)-334(complemen)28(tary)-333(upp)-28(er)-333(triangle.)]TJ +0 g 0 G +/F27 9.9626 Tf 0 -19.83 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.877 Td [(On)-383(En)32(try)]TJ 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 -422.416 Td [(30)]TJ +/F8 9.9626 Tf 166.874 -29.888 Td [(22)]TJ 0 g 0 G ET endstream endobj -996 0 obj +979 0 obj << -/Length 7700 +/Length 5497 +>> +stream +0 g 0 G +0 g 0 G +0 g 0 G +BT +/F27 9.9626 Tf 99.895 706.129 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 [(A)-333(v)55(ariable)-333(of)-333(t)27(yp)-27(e)]TJ/F30 9.9626 Tf 81.943 0 Td [(psb_Tspmat_type)]TJ/F8 9.9626 Tf 78.455 0 Td [(.)]TJ -160.398 -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 +0 g 0 G +/F27 9.9626 Tf -80.359 -30.78 Td [(diag)]TJ +0 g 0 G +/F8 9.9626 Tf 25.827 0 Td [(Include)-392(diagonals)-391(up)-392(to)-392(this)-391(one;)]TJ/F30 9.9626 Tf 149.735 0 Td [(diag=1)]TJ/F8 9.9626 Tf 35.284 0 Td [(means)-392(the)-392(\014rst)-391(sup)-28(erdiagonal,)]TJ/F30 9.9626 Tf -185.939 -11.955 Td [(diag=-1)]TJ/F8 9.9626 Tf 39.933 0 Td [(means)-333(the)-334(\014rst)-333(sub)-28(diagonal.)-444(Default)-333(0.)]TJ +0 g 0 G +/F27 9.9626 Tf -64.84 -18.824 Td [(imin,imax,jmin,jmax)]TJ +0 g 0 G +/F8 9.9626 Tf 108.413 0 Td [(Minim)28(um)-333(and)-334(maxim)28(um)-333(ro)28(w)-334(and)-333(column)-333(indices.)]TJ -83.506 -11.955 Td [(T)28(yp)-28(e:)-444(optional.)]TJ +0 g 0 G +/F27 9.9626 Tf -24.907 -18.824 Td [(rscale,cscale)]TJ +0 g 0 G +/F8 9.9626 Tf 65.203 0 Td [(Whether)-333(to)-334(rescale)-333(ro)28(w/column)-334(ind)1(ic)-1(es.)-444(T)28(yp)-28(e:)-444(optional.)]TJ +0 g 0 G +/F27 9.9626 Tf -65.203 -19.165 Td [(On)-383(Return)]TJ +0 g 0 G +0 g 0 G + 0 -18.824 Td [(l)]TJ +0 g 0 G +/F8 9.9626 Tf 8.164 0 Td [(A)-333(cop)27(y)-333(of)-333(the)-334(lo)28(w)28(er)-333(triangle)-334(of)]TJ/F30 9.9626 Tf 136.489 0 Td [(a)]TJ/F8 9.9626 Tf 5.23 0 Td [(.)]TJ -124.976 -11.955 Td [(A)-333(v)55(ariable)-333(of)-333(t)27(yp)-27(e)]TJ/F30 9.9626 Tf 81.943 0 Td [(psb_Tspmat_type)]TJ/F8 9.9626 Tf 78.455 0 Td [(.)]TJ +0 g 0 G +/F27 9.9626 Tf -185.305 -18.824 Td [(u)]TJ +0 g 0 G +/F8 9.9626 Tf 11.347 0 Td [(\050optional\051)-333(A)-334(cop)28(y)-333(of)-333(the)-334(upp)-27(er)-334(triangle)-333(of)]TJ/F30 9.9626 Tf 185.471 0 Td [(a)]TJ/F8 9.9626 Tf 5.231 0 Td [(.)]TJ -177.142 -11.955 Td [(A)-333(v)55(ariable)-333(of)-333(t)27(yp)-27(e)]TJ/F30 9.9626 Tf 81.943 0 Td [(psb_Tspmat_type)]TJ/F8 9.9626 Tf 78.455 0 Td [(.)]TJ +0 g 0 G +/F27 9.9626 Tf -185.305 -18.825 Td [(info)]TJ +0 g 0 G +/F8 9.9626 Tf 23.758 0 Td [(Return)-333(co)-28(de.)]TJ/F27 9.9626 Tf -23.758 -25.421 Td [(3.2.16)-1150(triu)-384(|)-383(Return)-383(the)-383(upp)-32(er)-384(triangle)]TJ +0 g 0 G +0 g 0 G +/F30 9.9626 Tf 20.922 -18.39 Td [(call)-525(a%triu\050u,info[,&)]TJ 15.691 -11.955 Td [(&)-525(diag,imin,imax,jmin,jmax,rscale,cscale,l]\051)]TJ/F8 9.9626 Tf -21.669 -19.165 Td [(Returns)-340(the)-340(upp)-28(er)-340(triangular)-340(part)-340(of)-340(submatrix)]TJ/F30 9.9626 Tf 210.933 0 Td [(A\050imin:imax,jmin:jmax\051)]TJ/F8 9.9626 Tf 115.067 0 Td [(,)]TJ -340.944 -11.955 Td [(optionally)-222(rescaling)-222(ro)27(w/col)-222(indices)-222(to)-222(the)-222(range)]TJ/F30 9.9626 Tf 205.536 0 Td [(1:imax-imin+1,1:jmax-jmin+1)]TJ/F8 9.9626 Tf 141.219 0 Td [(,)]TJ -346.755 -11.955 Td [(and)-333(returing)-334(th)1(e)-334(complemen)28(tary)-333(lo)27(w)28(er)-333(triangle.)]TJ +0 g 0 G +/F27 9.9626 Tf 0 -17.723 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.824 Td [(On)-383(En)32(try)]TJ +0 g 0 G +0 g 0 G + 0 -18.824 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 [(A)-333(v)55(ariable)-333(of)-333(t)27(yp)-27(e)]TJ/F30 9.9626 Tf 81.943 0 Td [(psb_Tspmat_type)]TJ/F8 9.9626 Tf 78.455 0 Td [(.)]TJ -160.398 -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 +0 g 0 G +/F27 9.9626 Tf -80.359 -30.78 Td [(diag)]TJ +0 g 0 G +/F8 9.9626 Tf 25.827 0 Td [(Include)-392(diagonals)-391(up)-392(to)-392(this)-391(one;)]TJ/F30 9.9626 Tf 149.735 0 Td [(diag=1)]TJ/F8 9.9626 Tf 35.284 0 Td [(means)-392(the)-392(\014rst)-391(sup)-28(erdiagonal,)]TJ/F30 9.9626 Tf -185.939 -11.955 Td [(diag=-1)]TJ/F8 9.9626 Tf 39.933 0 Td [(means)-333(the)-334(\014rst)-333(sub)-28(diagonal.)-444(Default)-333(0.)]TJ +0 g 0 G +/F27 9.9626 Tf -64.84 -18.824 Td [(imin,imax,jmin,jma)-1(x)]TJ +0 g 0 G +/F8 9.9626 Tf 108.413 0 Td [(Minim)28(um)-333(and)-334(maxim)28(um)-333(ro)27(w)-333(and)-333(column)-333(indices.)]TJ -83.506 -11.955 Td [(T)28(yp)-28(e:)-444(optional.)]TJ +0 g 0 G +/F27 9.9626 Tf -24.907 -18.824 Td [(rscale,cscale)]TJ +0 g 0 G +/F8 9.9626 Tf 65.203 0 Td [(Whether)-333(to)-334(rescale)-333(ro)28(w/column)-334(ind)1(ic)-1(es.)-444(T)28(yp)-28(e:)-444(optional.)]TJ +0 g 0 G +/F27 9.9626 Tf -65.203 -19.165 Td [(On)-383(Return)]TJ +0 g 0 G +0 g 0 G + 0 -18.824 Td [(u)]TJ +0 g 0 G +/F8 9.9626 Tf 11.347 0 Td [(A)-333(cop)27(y)-333(of)-333(the)-333(upp)-28(er)-333(triangle)-334(of)]TJ/F30 9.9626 Tf 138.979 0 Td [(a)]TJ/F8 9.9626 Tf 5.23 0 Td [(.)]TJ -130.649 -11.955 Td [(A)-333(v)55(ariable)-333(of)-333(t)27(yp)-27(e)]TJ/F30 9.9626 Tf 81.943 0 Td [(psb_Tspmat_type)]TJ/F8 9.9626 Tf 78.455 0 Td [(.)]TJ +0 g 0 G +/F27 9.9626 Tf -185.305 -18.824 Td [(l)]TJ +0 g 0 G +/F8 9.9626 Tf 8.164 0 Td [(\050optional\051)-333(A)-334(cop)28(y)-333(of)-333(the)-334(lo)28(w)28(er)-334(tr)1(iangle)-334(of)]TJ/F30 9.9626 Tf 182.981 0 Td [(a)]TJ/F8 9.9626 Tf 5.23 0 Td [(.)]TJ -171.468 -11.955 Td [(A)-333(v)55(ariable)-333(of)-333(t)27(yp)-27(e)]TJ/F30 9.9626 Tf 81.943 0 Td [(psb_Tspmat_type)]TJ/F8 9.9626 Tf 78.455 0 Td [(.)]TJ +0 g 0 G +/F27 9.9626 Tf -185.305 -18.824 Td [(info)]TJ +0 g 0 G +/F8 9.9626 Tf 23.758 0 Td [(Return)-333(co)-28(de.)]TJ +0 g 0 G + 143.117 -29.888 Td [(23)]TJ +0 g 0 G +ET + +endstream +endobj +985 0 obj +<< +/Length 7723 >> stream 0 g 0 G 0 g 0 G BT -/F16 11.9552 Tf 99.895 706.129 Td [(psb)]TJ +/F27 9.9626 Tf 150.705 706.129 Td [(3.2.17)-1150(psb)]TJ ET q -1 0 0 1 120.951 706.328 cm -[]0 d 0 J 0.398 w 0 0 m 4.035 0 l S +1 0 0 1 209.377 706.328 cm +[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S +Q +BT +/F27 9.9626 Tf 212.814 706.129 Td [(set)]TJ +ET +q +1 0 0 1 227.727 706.328 cm +[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S +Q +BT +/F27 9.9626 Tf 231.165 706.129 Td [(mat)]TJ +ET +q +1 0 0 1 251.424 706.328 cm +[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F16 11.9552 Tf 124.986 706.129 Td [(gedot)-375(|)-375(Dot)-375(Pro)-31(duct)]TJ/F8 9.9626 Tf -25.091 -18.389 Td [(This)-333(function)-334(computes)-333(dot)-333(pro)-28(duct)-333(b)-28(et)28(w)27(een)-333(t)28(w)28(o)-334(v)28(ectors)]TJ/F11 9.9626 Tf 252.332 0 Td [(x)]TJ/F8 9.9626 Tf 9.015 0 Td [(and)]TJ/F11 9.9626 Tf 19.372 0 Td [(y)]TJ/F8 9.9626 Tf 5.242 0 Td [(.)]TJ -285.961 -11.956 Td [(If)]TJ/F11 9.9626 Tf 9.963 0 Td [(x)]TJ/F8 9.9626 Tf 9.015 0 Td [(and)]TJ/F11 9.9626 Tf 19.372 0 Td [(y)]TJ/F8 9.9626 Tf 8.562 0 Td [(are)-333(real)-334(v)28(ectors)-333(it)-334(computes)-333(dot-pro)-28(duct)-333(as:)]TJ/F11 9.9626 Tf 101.783 -21.289 Td [(dot)]TJ/F14 9.9626 Tf 16.38 0 Td [(\040)]TJ/F11 9.9626 Tf 12.73 0 Td [(x)]TJ/F10 6.9738 Tf 5.694 4.113 Td [(T)]TJ/F11 9.9626 Tf 6.276 -4.113 Td [(y)]TJ/F8 9.9626 Tf -189.775 -21.29 Td [(Else)-333(if)]TJ/F11 9.9626 Tf 30.359 0 Td [(x)]TJ/F8 9.9626 Tf 9.015 0 Td [(and)]TJ/F11 9.9626 Tf 19.371 0 Td [(y)]TJ/F8 9.9626 Tf 8.563 0 Td [(are)-333(complex)-334(v)28(ectors)-333(then)-334(it)-333(computes)-333(dot-pro)-28(duct)-333(as:)]TJ/F11 9.9626 Tf 80.747 -21.29 Td [(dot)]TJ/F14 9.9626 Tf 16.38 0 Td [(\040)]TJ/F11 9.9626 Tf 12.73 0 Td [(x)]TJ/F10 6.9738 Tf 5.693 4.113 Td [(H)]TJ/F11 9.9626 Tf 7.557 -4.113 Td [(y)]TJ +/F27 9.9626 Tf 254.861 706.129 Td [(default)-383(|)-384(Set)-383(default)-383(storage)-384(format)]TJ +0 g 0 G +0 g 0 G +/F30 9.9626 Tf -104.156 -18.389 Td [(call)-1050(psb_set_mat_default\050a\051)]TJ +0 g 0 G +/F27 9.9626 Tf 0 -20.935 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.532 Td [(On)-383(En)32(try)]TJ +0 g 0 G +0 g 0 G + 0 -19.532 Td [(a)]TJ +0 g 0 G +/F8 9.9626 Tf 10.551 0 Td [(a)-285(v)56(ariable)-285(of)]TJ/F30 9.9626 Tf 55.581 0 Td [(class\050psb_T_base_sparse_mat\051)]TJ/F8 9.9626 Tf 149.285 0 Td [(requesting)-285(a)-284(new)-285(default)-285(stor-)]TJ -190.511 -11.955 Td [(age)-333(format.)]TJ 0 -11.956 Td [(T)28(yp)-28(e:)-444(required.)]TJ/F27 9.9626 Tf -24.906 -25.726 Td [(3.2.18)-1150(clone)-383(|)-384(Clone)-383(curren)32(t)-383(ob)-64(ject)]TJ +0 g 0 G +0 g 0 G +/F30 9.9626 Tf 0 -18.389 Td [(call)-1050(a%clone\050b,info\051)]TJ +0 g 0 G +/F27 9.9626 Tf 0 -20.935 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.532 Td [(On)-383(En)32(try)]TJ +0 g 0 G +0 g 0 G + 0 -19.532 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 23.073 0 Td [(.)]TJ +0 g 0 G +/F27 9.9626 Tf -80.358 -32.89 Td [(On)-383(Return)]TJ +0 g 0 G 0 g 0 G + 0 -19.532 Td [(b)]TJ 0 g 0 G -/F30 9.9626 Tf -190.415 -21.29 Td [(psb_gedot\050x,)-525(y,)-525(desc_a,)-525(info)-525([,global]\051)]TJ +/F8 9.9626 Tf 11.346 0 Td [(A)-333(cop)27(y)-333(of)-333(the)-334(in)1(put)-334(ob)-55(ject.)]TJ 0 g 0 G +/F27 9.9626 Tf -11.346 -19.532 Td [(info)]TJ 0 g 0 G +/F8 9.9626 Tf 23.758 0 Td [(Return)-333(co)-28(de.)]TJ/F27 9.9626 Tf -23.758 -25.727 Td [(3.2.19)-1150(Named)-383(Constan)32(ts)]TJ 0 g 0 G + 0 -18.389 Td [(psb)]TJ ET q -1 0 0 1 183.665 567.173 cm -[]0 d 0 J 0.398 w 0 0 m 176.173 0 l S +1 0 0 1 168.641 371.89 cm +[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F11 9.9626 Tf 189.642 558.606 Td [(dot)]TJ/F8 9.9626 Tf 13.612 0 Td [(,)]TJ/F11 9.9626 Tf 6.089 0 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(,)]TJ/F11 9.9626 Tf 6.088 0 Td [(y)]TJ/F27 9.9626 Tf 88.927 0 Td [(F)96(unction)]TJ +/F27 9.9626 Tf 172.078 371.691 Td [(dupl)]TJ ET q -1 0 0 1 183.665 554.82 cm -[]0 d 0 J 0.398 w 0 0 m 176.173 0 l S +1 0 0 1 195.043 371.89 cm +[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F8 9.9626 Tf 189.642 546.252 Td [(Short)-333(Precision)-334(Real)-3102(psb)]TJ +/F27 9.9626 Tf 198.48 371.691 Td [(o)32(vwrt)]TJ ET q -1 0 0 1 325.649 546.451 cm -[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +1 0 0 1 228.073 371.89 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 328.638 546.252 Td [(gedot)]TJ -138.996 -11.955 Td [(Long)-333(Precision)-334(Real)-3314(psb)]TJ +/F8 9.9626 Tf 236.492 371.691 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 -19.532 Td [(psb)]TJ ET q -1 0 0 1 325.649 534.496 cm -[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +1 0 0 1 168.641 340.403 cm +[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F8 9.9626 Tf 328.638 534.297 Td [(gedot)]TJ -138.996 -11.955 Td [(Short)-333(Precision)-334(Complex)-1200(psb)]TJ +/F27 9.9626 Tf 172.078 340.204 Td [(dupl)]TJ ET q -1 0 0 1 325.649 522.541 cm -[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +1 0 0 1 195.043 340.403 cm +[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F8 9.9626 Tf 328.638 522.342 Td [(gedot)]TJ -138.996 -11.956 Td [(Long)-333(Precision)-334(Complex)-1411(psb)]TJ +/F27 9.9626 Tf 198.48 340.204 Td [(add)]TJ ET q -1 0 0 1 325.649 510.586 cm -[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +1 0 0 1 217.467 340.403 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 328.638 510.386 Td [(gedot)]TJ +/F8 9.9626 Tf 225.886 340.204 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 -19.532 Td [(psb)]TJ ET q -1 0 0 1 183.665 506.601 cm -[]0 d 0 J 0.398 w 0 0 m 176.173 0 l S +1 0 0 1 168.641 320.871 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 228.067 478.561 Td [(T)83(able)-333(2:)-444(Data)-334(t)28(yp)-28(es)]TJ -0 g 0 G -0 g 0 G -0 g 0 G -/F27 9.9626 Tf -128.172 -32.717 Td [(T)32(yp)-32(e:)]TJ -0 g 0 G -/F8 9.9626 Tf 33.797 0 Td [(Sync)28(hronous.)]TJ -0 g 0 G -/F27 9.9626 Tf -33.797 -19.674 Td [(On)-383(En)32(try)]TJ -0 g 0 G +/F27 9.9626 Tf 172.078 320.672 Td [(dupl)]TJ +ET +q +1 0 0 1 195.043 320.871 cm +[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S +Q +BT +/F27 9.9626 Tf 198.48 320.672 Td [(err)]TJ +ET +q +1 0 0 1 213.856 320.871 cm +[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S +Q 0 g 0 G - 0 -19.674 Td [(x)]TJ +BT +/F8 9.9626 Tf 222.274 320.672 Td [(Duplicate)-333(co)-28(e\016cien)28(ts)-334(should)-333(trigger)-333(an)-334(error)-333(conditino)]TJ 0 g 0 G -/F8 9.9626 Tf 11.028 0 Td [(the)-333(lo)-28(cal)-333(p)-28(ortion)-333(of)-334(global)-333(dense)-333(matrix)]TJ/F11 9.9626 Tf 176.118 0 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(.)]TJ -167.933 -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 [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.956 Td [(Sp)-28(eci\014ed)-255(as:)-405(a)-255(rank)-254(one)-255(or)-255(t)28(w)27(o)-254(arra)27(y)-254(or)-255(an)-255(ob)-55(jec)-1(t)-254(of)-255(t)28(yp)-28(e)]TJ -0 0 1 rg 0 0 1 RG -/F30 9.9626 Tf 244.743 0 Td [(psb)]TJ +/F27 9.9626 Tf -71.569 -19.532 Td [(psb)]TJ ET q -1 0 0 1 385.864 358.875 cm -[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +1 0 0 1 168.641 301.339 cm +[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F30 9.9626 Tf 389.002 358.675 Td [(T)]TJ +/F27 9.9626 Tf 172.078 301.14 Td [(up)-32(d)]TJ ET q -1 0 0 1 394.86 358.875 cm -[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +1 0 0 1 192.179 301.339 cm +[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F30 9.9626 Tf 397.998 358.675 Td [(vect)]TJ +/F27 9.9626 Tf 195.616 301.14 Td [(d\015t)]TJ ET q -1 0 0 1 419.547 358.875 cm -[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +1 0 0 1 213.489 301.339 cm +[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q -BT -/F30 9.9626 Tf 422.685 358.675 Td [(type)]TJ -0 g 0 G -/F8 9.9626 Tf -297.883 -11.955 Td [(con)28(taining)-375(n)27(u)1(m)27(b)-27(e)-1(r)1(s)-376(of)-375(t)28(yp)-28(e)-375(sp)-28(eci\014ed)-375(in)-375(T)83(able)]TJ -0 0 1 rg 0 0 1 RG - [-375(2)]TJ 0 g 0 G - [(.)-570(The)-376(rank)-375(of)]TJ/F11 9.9626 Tf 274.03 0 Td [(x)]TJ/F8 9.9626 Tf 9.432 0 Td [(m)28(ust)-376(b)-27(e)]TJ -283.462 -11.955 Td [(the)-333(same)-334(of)]TJ/F11 9.9626 Tf 53.466 0 Td [(y)]TJ/F8 9.9626 Tf 5.242 0 Td [(.)]TJ -0 g 0 G -/F27 9.9626 Tf -83.615 -19.674 Td [(y)]TJ +BT +/F8 9.9626 Tf 221.907 301.14 Td [(Default)-333(up)-28(date)-333(strategy)-334(for)-333(matrix)-333(co)-28(e\016cien)28(ts;)]TJ 0 g 0 G -/F8 9.9626 Tf 11.028 0 Td [(the)-333(lo)-28(cal)-333(p)-28(ortion)-333(of)-334(global)-333(dense)-333(matrix)]TJ/F11 9.9626 Tf 176.118 0 Td [(y)]TJ/F8 9.9626 Tf 5.242 0 Td [(.)]TJ -167.481 -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 [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-255(as:)-405(a)-255(rank)-254(one)-255(or)-255(t)28(w)27(o)-254(arra)27(y)-254(or)-255(an)-255(ob)-55(jec)-1(t)-254(of)-255(t)28(yp)-28(e)]TJ -0 0 1 rg 0 0 1 RG -/F30 9.9626 Tf 244.743 0 Td [(psb)]TJ +/F27 9.9626 Tf -71.202 -19.533 Td [(psb)]TJ ET q -1 0 0 1 385.864 267.47 cm -[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +1 0 0 1 168.641 281.807 cm +[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F30 9.9626 Tf 389.002 267.27 Td [(T)]TJ +/F27 9.9626 Tf 172.078 281.607 Td [(up)-32(d)]TJ ET q -1 0 0 1 394.86 267.47 cm -[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +1 0 0 1 192.179 281.807 cm +[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F30 9.9626 Tf 397.998 267.27 Td [(vect)]TJ +/F27 9.9626 Tf 195.616 281.607 Td [(src)32(h)]TJ ET q -1 0 0 1 419.547 267.47 cm -[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +1 0 0 1 216.68 281.807 cm +[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q -BT -/F30 9.9626 Tf 422.685 267.27 Td [(type)]TJ -0 g 0 G -/F8 9.9626 Tf -297.883 -11.955 Td [(con)28(taining)-378(n)27(um)28(b)-28(ers)-378(of)-378(t)28(yp)-28(e)-378(sp)-28(eci\014ed)-378(in)-379(T)84(able)]TJ -0 0 1 rg 0 0 1 RG - [-378(2)]TJ 0 g 0 G - [(.)-580(The)-378(rank)-378(of)]TJ/F11 9.9626 Tf 274.422 0 Td [(y)]TJ/F8 9.9626 Tf 9.01 0 Td [(m)28(ust)-379(b)-27(e)]TJ -283.432 -11.955 Td [(the)-333(same)-334(of)]TJ/F11 9.9626 Tf 53.466 0 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(.)]TJ +BT +/F8 9.9626 Tf 225.098 281.607 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 -84.067 -19.674 Td [(desc)]TJ +/F27 9.9626 Tf -74.393 -19.532 Td [(psb)]TJ ET q -1 0 0 1 121.81 223.885 cm +1 0 0 1 168.641 262.275 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 125.247 223.686 Td [(a)]TJ -0 g 0 G -/F8 9.9626 Tf 10.551 0 Td [(con)28(tains)-334(d)1(ata)-334(structures)-333(for)-333(com)-1(m)28(unications.)]TJ -10.996 -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 [(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(ob)-55(ject)-334(of)-333(t)28(yp)-28(e)]TJ -0 0 1 rg 0 0 1 RG -/F30 9.9626 Tf 135.658 0 Td [(psb)]TJ +/F27 9.9626 Tf 172.078 262.075 Td [(up)-32(d)]TJ ET q -1 0 0 1 276.779 176.064 cm -[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +1 0 0 1 192.179 262.275 cm +[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F30 9.9626 Tf 279.917 175.865 Td [(desc)]TJ +/F27 9.9626 Tf 195.616 262.075 Td [(p)-32(erm)]TJ ET q -1 0 0 1 301.466 176.064 cm -[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +1 0 0 1 222.504 262.275 cm +[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q -BT -/F30 9.9626 Tf 304.604 175.865 Td [(type)]TJ -0 g 0 G -/F8 9.9626 Tf 20.922 0 Td [(.)]TJ -0 g 0 G -/F27 9.9626 Tf -225.631 -19.674 Td [(global)]TJ -0 g 0 G -/F8 9.9626 Tf 34.738 0 Td [(Sp)-28(eci\014es)-357(whether)-357(the)-357(computation)-358(shoul)1(d)-358(include)-357(the)-357(global)-357(reduction)]TJ -9.831 -11.955 Td [(across)-333(all)-334(pro)-27(ce)-1(sses.)]TJ 0 -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 40.577 0 Td [(.)]TJ -0 g 0 G - 71.78 -29.888 Td [(31)]TJ -0 g 0 G -ET - -endstream -endobj -1003 0 obj -<< -/Length 5114 ->> -stream -0 g 0 G 0 g 0 G BT -/F8 9.9626 Tf 175.611 706.129 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(logical)-333(scalar.)-445(Default:)]TJ/F30 9.9626 Tf 168.812 0 Td [(global=.true.)]TJ -0 g 0 G -/F27 9.9626 Tf -193.718 -31.881 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.386 0 Td [(is)-333(the)-334(dot)-333(pro)-28(duct)-333(of)-333(v)28(e)-1(ctors)]TJ/F11 9.9626 Tf 127.467 0 Td [(x)]TJ/F8 9.9626 Tf 9.014 0 Td [(and)]TJ/F11 9.9626 Tf 19.372 0 Td [(y)]TJ/F8 9.9626 Tf 5.242 0 Td [(.)]TJ -214.575 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 31.841 0 Td [(global)]TJ/F8 9.9626 Tf 32.002 0 Td [(unless)-225(the)-226(optional)-225(v)55(ariable)]TJ/F30 9.9626 Tf 118.434 0 Td [(global=.false.)]TJ/F8 9.9626 Tf 75.471 0 Td [(has)-225(b)-28(een)-226(sp)-27(ec-)]TJ -257.748 -11.955 Td [(i\014ed)]TJ 0 -11.956 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(n)28(um)28(b)-28(er)-333(of)-334(the)-333(data)-333(t)27(yp)-27(e)-334(indicated)-333(in)-333(T)83(able)]TJ -0 0 1 rg 0 0 1 RG - [-333(2)]TJ -0 g 0 G - [(.)]TJ -0 g 0 G -/F27 9.9626 Tf -24.906 -19.925 Td [(info)]TJ -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)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/F16 11.9552 Tf -24.906 -21.917 Td [(Notes)]TJ -0 g 0 G -/F8 9.9626 Tf 12.176 -19.926 Td [(1.)]TJ -0 g 0 G - [-500(The)-241(computation)-240(of)-241(a)-241(gl)1(obal)-241(result)-241(requires)-240(a)-241(global)-241(comm)28(unication,)-259(whic)28(h)]TJ 12.73 -11.955 Td [(en)28(tails)-421(a)-420(s)-1(i)1(gni\014can)27(t)-420(o)28(v)27(erhead.)-706(It)-420(ma)27(y)-420(b)-28(e)-421(necessary)-420(and/or)-421(advisable)-420(to)]TJ 0 -11.955 Td [(compute)-265(m)27(ultiple)-265(dot)-265(pro)-28(ducts)-265(at)-266(the)-265(same)-266(time;)-288(in)-265(this)-265(case,)-279(it)-266(is)-265(p)-28(ossible)]TJ 0 -11.955 Td [(to)-333(impro)27(v)28(e)-333(the)-333(run)27(time)-333(e\016ciency)-333(b)27(y)-333(using)-333(the)-334(f)1(ollo)27(wing)-333(sc)28(heme:)]TJ 25.19 -17.933 Td [(v)-128(r)-129(e)-128(s)-259(\050)-130(1)-131(\051)-642(=)-625(p)-115(s)-114(b)]TJ +/F8 9.9626 Tf 230.922 262.075 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 -27.719 Td [(3.3)-1125(Dense)-375(V)94(ector)-375(Data)-375(Structure)]TJ/F8 9.9626 Tf 0 -18.389 Td [(The)]TJ/F30 9.9626 Tf 21.256 0 Td [(psb)]TJ ET q -1 0 0 1 279.461 443.314 cm -[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +1 0 0 1 188.279 204.211 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F8 9.9626 Tf 283.591 443.115 Td [(g)-115(e)-114(d)-115(o)-114(t)-220(\050)-149(x)-43(1)-247(,)-204(y)-43(1)-248(,)-273(d)-113(e)-113(s)-112(c)]TJ +/F30 9.9626 Tf 191.417 204.012 Td [(T)]TJ ET q -1 0 0 1 379.47 443.314 cm -[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +1 0 0 1 197.275 204.211 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F8 9.9626 Tf 383.581 443.115 Td [(a)-386(,)-288(i)-127(n)-127(f)-127(o)-415(,)-302(g)-141(l)-142(o)-141(b)-141(a)-141(l)-190(=)-48(.)]TJ/F27 9.9626 Tf 92.224 0 Td [(f)-132(a)-131(l)-132(s)-131(e)]TJ/F8 9.9626 Tf 30.348 0 Td [(.)-178(\051)]TJ -305.352 -11.955 Td [(v)-128(r)-129(e)-128(s)-259(\050)-130(2)-131(\051)-642(=)-625(p)-115(s)-114(b)]TJ +/F30 9.9626 Tf 200.414 204.012 Td [(vect)]TJ ET q -1 0 0 1 279.461 431.359 cm -[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +1 0 0 1 221.963 204.211 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F8 9.9626 Tf 283.591 431.16 Td [(g)-115(e)-114(d)-115(o)-114(t)-220(\050)-149(x)-43(2)-247(,)-204(y)-43(2)-248(,)-273(d)-113(e)-113(s)-112(c)]TJ +/F30 9.9626 Tf 225.101 204.012 Td [(type)]TJ/F8 9.9626 Tf 25.019 0 Td [(data)-411(structure)-412(encapsulates)-411(the)-411(dense)-412(v)28(ectors)-411(in)-412(a)-411(w)28(a)28(y)]TJ -99.415 -11.955 Td [(similar)-434(to)-434(s)-1(p)1(arse)-435(matrices,)-459(i.e.)-748(in)1(c)-1(l)1(uding)-435(a)-434(base)-434(t)28(yp)-28(e)]TJ/F30 9.9626 Tf 242.195 0 Td [(psb)]TJ ET q -1 0 0 1 379.47 431.359 cm -[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +1 0 0 1 409.218 192.256 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F8 9.9626 Tf 383.581 431.16 Td [(a)-386(,)-288(i)-127(n)-127(f)-127(o)-415(,)-302(g)-141(l)-142(o)-141(b)-141(a)-141(l)-190(=)-48(.)]TJ/F27 9.9626 Tf 92.224 0 Td [(f)-132(a)-131(l)-132(s)-131(e)]TJ/F8 9.9626 Tf 30.348 0 Td [(.)-178(\051)]TJ -305.352 -11.955 Td [(v)-128(r)-129(e)-128(s)-259(\050)-130(3)-131(\051)-642(=)-625(p)-115(s)-114(b)]TJ +/F30 9.9626 Tf 412.357 192.057 Td [(T)]TJ ET q -1 0 0 1 279.461 419.404 cm -[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +1 0 0 1 418.215 192.256 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F8 9.9626 Tf 283.591 419.205 Td [(g)-115(e)-114(d)-115(o)-114(t)-220(\050)-149(x)-43(3)-247(,)-204(y)-43(3)-248(,)-273(d)-113(e)-113(s)-112(c)]TJ +/F30 9.9626 Tf 421.353 192.057 Td [(base)]TJ ET q -1 0 0 1 379.47 419.404 cm -[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +1 0 0 1 442.902 192.256 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F8 9.9626 Tf 383.581 419.205 Td [(a)-386(,)-288(i)-127(n)-127(f)-127(o)-415(,)-302(g)-141(l)-142(o)-141(b)-141(a)-141(l)-190(=)-48(.)]TJ/F27 9.9626 Tf 92.224 0 Td [(f)-132(a)-131(l)-132(s)-131(e)]TJ/F8 9.9626 Tf 30.348 0 Td [(.)-178(\051)]TJ/F27 9.9626 Tf -305.254 -11.955 Td [(c)-138(a)-138(l)-139(l)]TJ/F8 9.9626 Tf 29.198 0 Td [(p)-69(s)-69(b)]TJ +/F30 9.9626 Tf 446.04 192.057 Td [(vect)]TJ ET q -1 0 0 1 247.753 407.449 cm -[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +1 0 0 1 467.589 192.256 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F8 9.9626 Tf 251.428 407.25 Td [(s)-69(u)-69(m)-174(\050)-245(i)-139(c)-139(t)-138(x)-139(t)-439(,)-290(v)-128(r)-128(e)-129(s)-293(\050)-165(1)-165(:)-165(3)-165(\051)-165(\051)]TJ +/F30 9.9626 Tf 470.727 192.057 Td [(type)]TJ/F8 9.9626 Tf 20.922 0 Td [(.)]TJ -340.944 -11.956 Td [(The)-330(user)-330(will)-330(not,)-330(in)-330(general,)-331(access)-330(the)-330(v)28(ector)-330(comp)-28(onen)28(ts)-330(directly)83(,)-330(but)-330(rather)]TJ 0 -11.955 Td [(via)-303(the)-304(rou)1(tines)-304(of)-303(sec.)]TJ +0 0 1 rg 0 0 1 RG + [-303(6)]TJ 0 g 0 G + [(.)-435(Among)-303(other)-303(sim)-1(p)1(le)-304(things,)-309(w)28(e)-304(de\014ne)-303(here)-303(an)-303(extrac-)]TJ 0 -11.955 Td [(tion)-321(metho)-27(d)-321(that)-321(can)-321(b)-27(e)-321(used)-321(to)-321(get)-320(a)-321(full)-321(cop)28(y)-321(of)-321(th)1(e)-321(part)-321(of)-321(the)-320(v)27(ector)-320(stored)]TJ 0 -11.955 Td [(on)-333(the)-334(lo)-27(cal)-334(pro)-27(ce)-1(ss.)]TJ 14.944 -11.955 Td [(The)-399(t)28(yp)-28(e)-399(declaration)-398(is)-399(sho)28(wn)-399(in)-399(\014gure)]TJ +0 0 1 rg 0 0 1 RG + [-399(5)]TJ 0 g 0 G - -75.817 -21.918 Td [(In)-354(th)1(is)-354(w)28(a)28(y)-354(the)-353(global)-354(comm)28(unication,)-359(whic)28(h)-353(for)-354(small)-353(size)-1(s)-353(is)-354(a)-353(latency-)]TJ 0 -11.955 Td [(b)-28(ound)-333(op)-28(eration,)-333(is)-333(in)27(v)28(ok)28(ed)-333(only)-334(once.)]TJ + [-399(where)]TJ/F30 9.9626 Tf 216.941 0 Td [(T)]TJ/F8 9.9626 Tf 9.203 0 Td [(is)-399(a)-399(placeholder)-398(for)-399(the)]TJ -241.088 -11.955 Td [(data)-333(t)28(yp)-28(e)-334(and)-333(precision)-333(v)55(arian)28(ts)]TJ 0 g 0 G - 141.968 -282.939 Td [(32)]TJ + 166.874 -29.888 Td [(24)]TJ 0 g 0 G ET endstream endobj -913 0 obj +991 0 obj << -/Type /ObjStm -/N 100 -/First 889 -/Length 10219 +/Length 3718 >> stream -908 0 915 92 917 206 115 263 119 320 123 377 914 434 919 526 921 640 127 696 -131 752 918 808 924 900 926 1014 135 1071 139 1128 923 1184 928 1276 930 1390 143 1446 -147 1502 151 1558 927 1614 932 1706 934 1820 155 1877 931 1934 938 2026 935 2168 936 2315 -940 2461 159 2517 163 2573 167 2629 171 2685 941 2741 937 2798 944 2903 946 3017 942 3074 -175 3131 179 3188 183 3245 943 3302 950 3394 947 3536 948 3681 952 3826 187 3882 949 3938 -958 4030 955 4164 960 4310 191 4367 195 4424 199 4481 961 4538 957 4595 964 4713 956 4847 -966 4994 962 5050 204 5107 963 5163 969 5281 971 5395 208 5452 968 5509 980 5588 972 5762 -973 5907 974 6050 975 6195 976 6340 977 6483 982 6628 212 6684 954 6740 979 6796 986 6927 -978 7077 983 7223 984 7365 988 7510 985 7567 995 7672 989 7838 990 7980 991 8125 992 8267 -993 8411 997 8556 216 8612 998 8668 994 8725 1002 8869 1000 9007 1004 9153 1005 9212 1006 9271 -% 908 0 obj -<< -/Font << /F27 560 0 R /F8 561 0 R /F30 769 0 R >> -/ProcSet [ /PDF /Text ] ->> -% 915 0 obj -<< -/Type /Page -/Contents 916 0 R -/Resources 914 0 R -/MediaBox [0 0 595.276 841.89] -/Parent 887 0 R ->> -% 917 0 obj -<< -/D [915 0 R /XYZ 149.705 753.953 null] ->> -% 115 0 obj -<< -/D [915 0 R /XYZ 150.705 718.084 null] ->> -% 119 0 obj -<< -/D [915 0 R /XYZ 150.705 528.904 null] ->> -% 123 0 obj -<< -/D [915 0 R /XYZ 150.705 327.768 null] ->> -% 914 0 obj -<< -/Font << /F27 560 0 R /F30 769 0 R /F8 561 0 R >> -/ProcSet [ /PDF /Text ] ->> -% 919 0 obj -<< -/Type /Page -/Contents 920 0 R -/Resources 918 0 R -/MediaBox [0 0 595.276 841.89] -/Parent 922 0 R ->> -% 921 0 obj -<< -/D [919 0 R /XYZ 98.895 753.953 null] ->> -% 127 0 obj -<< -/D [919 0 R /XYZ 99.895 718.084 null] ->> -% 131 0 obj -<< -/D [919 0 R /XYZ 99.895 477.598 null] ->> -% 918 0 obj -<< -/Font << /F27 560 0 R /F30 769 0 R /F8 561 0 R >> -/ProcSet [ /PDF /Text ] ->> -% 924 0 obj -<< -/Type /Page -/Contents 925 0 R -/Resources 923 0 R -/MediaBox [0 0 595.276 841.89] -/Parent 922 0 R ->> -% 926 0 obj -<< -/D [924 0 R /XYZ 149.705 753.953 null] ->> -% 135 0 obj -<< -/D [924 0 R /XYZ 150.705 718.084 null] ->> -% 139 0 obj -<< -/D [924 0 R /XYZ 150.705 383.68 null] ->> -% 923 0 obj -<< -/Font << /F27 560 0 R /F30 769 0 R /F8 561 0 R >> -/ProcSet [ /PDF /Text ] ->> -% 928 0 obj -<< -/Type /Page -/Contents 929 0 R -/Resources 927 0 R -/MediaBox [0 0 595.276 841.89] -/Parent 922 0 R ->> -% 930 0 obj -<< -/D [928 0 R /XYZ 98.895 753.953 null] ->> -% 143 0 obj -<< -/D [928 0 R /XYZ 99.895 718.084 null] ->> -% 147 0 obj -<< -/D [928 0 R /XYZ 99.895 483.063 null] ->> -% 151 0 obj -<< -/D [928 0 R /XYZ 99.895 248.041 null] ->> -% 927 0 obj -<< -/Font << /F27 560 0 R /F30 769 0 R /F8 561 0 R >> -/ProcSet [ /PDF /Text ] ->> -% 932 0 obj -<< -/Type /Page -/Contents 933 0 R -/Resources 931 0 R -/MediaBox [0 0 595.276 841.89] -/Parent 922 0 R ->> -% 934 0 obj -<< -/D [932 0 R /XYZ 149.705 753.953 null] ->> -% 155 0 obj -<< -/D [932 0 R /XYZ 150.705 476.867 null] ->> -% 931 0 obj +0 g 0 G +0 g 0 G +0 g 0 G +BT +/F27 9.9626 Tf 99.895 706.129 Td [(I)]TJ +0 g 0 G +/F8 9.9626 Tf 9.326 0 Td [(In)28(teger;)]TJ +0 g 0 G +/F27 9.9626 Tf -9.326 -21.082 Td [(S)]TJ +0 g 0 G +/F8 9.9626 Tf 11.347 0 Td [(Single)-333(precision)-334(real;)]TJ +0 g 0 G +/F27 9.9626 Tf -11.347 -21.083 Td [(D)]TJ +0 g 0 G +/F8 9.9626 Tf 13.768 0 Td [(Double)-333(precision)-334(real;)]TJ +0 g 0 G +/F27 9.9626 Tf -13.768 -21.082 Td [(C)]TJ +0 g 0 G +/F8 9.9626 Tf 13.256 0 Td [(Single)-333(precision)-334(complex;)]TJ +0 g 0 G +/F27 9.9626 Tf -13.256 -21.083 Td [(Z)]TJ +0 g 0 G +/F8 9.9626 Tf 11.983 0 Td [(Double)-333(precision)-334(complex.)]TJ -11.983 -20.793 Td [(The)-281(actual)-280(data)-280(is)-281(con)28(tained)-281(i)1(n)-281(the)-280(p)-28(olymorphic)-281(comp)-27(onen)27(t)]TJ/F30 9.9626 Tf 260.737 0 Td [(v%v)]TJ/F8 9.9626 Tf 15.691 0 Td [(;)-298(the)-281(separation)]TJ -276.428 -11.955 Td [(b)-28(et)28(w)28(een)-427(the)-426(application)-427(and)-426(the)-427(actual)-426(data)-426(is)-427(essen)28(tial)-427(for)-426(cases)-427(where)-426(it)-427(is)]TJ 0 -11.955 Td [(necessary)-426(to)-426(link)-425(to)-426(data)-426(storage)-426(made)-425(a)27(v)56(ailable)-426(elsewhere)-426(outside)-425(the)-426(direct)]TJ 0 -11.955 Td [(con)28(trol)-335(of)-335(the)-336(compiler/appli)1(c)-1(ation)1(,)-336(e.g.)-450(data)-335(stored)-335(in)-335(a)-335(graphics)-336(accelerator's)]TJ 0 -11.955 Td [(priv)56(ate)-334(memory)84(.)]TJ +0 g 0 G +0 g 0 G +0 g 0 G +0 g 0 G +0 g 0 G +/F30 9.9626 Tf 36.238 -20.559 Td [(type)-525(psb_T_base_vect_type)]TJ 10.461 -11.956 Td [(TYPE\050KIND_\051,)-525(allocatable)-525(::)-525(v\050:\051)]TJ -10.461 -11.955 Td [(end)-525(type)-525(psb_T_base_vect_type)]TJ 0 -23.91 Td [(type)-525(psb_T_vect_type)]TJ 10.461 -11.955 Td [(class\050psb_T_base_vect_type\051,)-525(allocatable)-525(::)-525(v)]TJ -10.461 -11.956 Td [(end)-525(type)-1050(psb_T_vect_type)]TJ +0 g 0 G +/F8 9.9626 Tf -22.069 -39.795 Td [(Figure)-333(5:)-889(The)-334(P)1(SBLAS)-334(de\014ned)-333(data)-333(t)27(yp)-27(e)-334(that)-333(con)28(tains)-333(a)-334(dense)-333(v)28(ector.)]TJ +0 g 0 G +0 g 0 G +/F27 9.9626 Tf -14.169 -39.964 Td [(3.3.1)-1150(V)96(ector)-384(Metho)-32(ds)]TJ 0 -18.928 Td [(3.3.2)-1150(get)]TJ +ET +q +1 0 0 1 151.025 362.408 cm +[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S +Q +BT +/F27 9.9626 Tf 154.462 362.208 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(dense)-383(v)32(ector)]TJ +0 g 0 G +0 g 0 G +/F30 9.9626 Tf -54.567 -18.927 Td [(nr)-525(=)-525(v%get_nrows\050\051)]TJ +0 g 0 G +/F27 9.9626 Tf 0 -22.786 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.082 Td [(On)-383(En)32(try)]TJ +0 g 0 G +0 g 0 G + 0 -21.083 Td [(v)]TJ +0 g 0 G +/F8 9.9626 Tf 11.028 0 Td [(the)-333(dense)-334(v)28(ector)]TJ 13.879 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ +0 g 0 G + -57.286 -34.741 Td [(On)-383(Return)]TJ +0 g 0 G +0 g 0 G + 0 -21.082 Td [(F)96(unction)-384(v)64(alue)]TJ +0 g 0 G +/F8 9.9626 Tf 78.387 0 Td [(The)-333(n)28(um)27(b)-27(e)-1(r)-333(of)-333(ro)28(ws)-334(of)-333(dense)-333(v)27(ector)]TJ/F30 9.9626 Tf 159.596 0 Td [(v)]TJ/F8 9.9626 Tf 5.23 0 Td [(.)]TJ/F27 9.9626 Tf -243.213 -27.431 Td [(3.3.3)-1150(sizeof)-383(|)-384(Get)-383(memory)-384(o)-31(cc)-1(u)1(pa)-1(tion)-383(in)-383(b)32(ytes)-384(of)-383(a)-383(dense)-384(v)32(ector)]TJ +0 g 0 G +0 g 0 G +/F30 9.9626 Tf 0 -18.927 Td [(memory_size)-525(=)-525(v%sizeof\050\051)]TJ +0 g 0 G +/F27 9.9626 Tf 0 -22.786 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.082 Td [(On)-383(En)32(try)]TJ +0 g 0 G +0 g 0 G +/F8 9.9626 Tf 166.875 -29.888 Td [(25)]TJ +0 g 0 G +ET + +endstream +endobj +998 0 obj << -/Font << /F27 560 0 R /F8 561 0 R /F30 769 0 R >> -/ProcSet [ /PDF /Text ] +/Length 3840 >> -% 938 0 obj +stream +0 g 0 G +0 g 0 G +0 g 0 G +BT +/F27 9.9626 Tf 150.705 706.129 Td [(v)]TJ +0 g 0 G +/F8 9.9626 Tf 11.028 0 Td [(the)-333(dense)-334(v)28(ector)]TJ 13.878 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ +0 g 0 G + -57.285 -37.007 Td [(On)-383(Return)]TJ +0 g 0 G +0 g 0 G + 0 -24.103 Td [(F)96(unction)-384(v)64(alue)]TJ +0 g 0 G +/F8 9.9626 Tf 78.386 0 Td [(The)-333(memory)-334(o)-28(ccupation)-333(in)-333(b)28(ytes.)]TJ/F27 9.9626 Tf -78.386 -31.438 Td [(3.3.4)-1150(set)-383(|)-384(Set)-383(con)32(ten)32(ts)-384(of)-383(the)-383(v)32(ector)]TJ +0 g 0 G +0 g 0 G +/F30 9.9626 Tf 5.23 -20.333 Td [(call)-1050(v%set\050alpha[,first,last]\051)]TJ 0 -11.955 Td [(call)-1050(v%set\050vect[,first,last]\051)]TJ 0 -11.956 Td [(call)-1050(v%zero\050\051)]TJ +0 g 0 G +/F27 9.9626 Tf -5.23 -25.051 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 -24.103 Td [(On)-383(En)32(try)]TJ +0 g 0 G +0 g 0 G + 0 -24.104 Td [(v)]TJ +0 g 0 G +/F8 9.9626 Tf 11.028 0 Td [(the)-333(dense)-334(v)28(ector)]TJ 13.878 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ +0 g 0 G + -57.285 -36.059 Td [(alpha)]TJ +0 g 0 G +/F8 9.9626 Tf 32.032 0 Td [(A)-333(scalar)-334(v)56(alue.)]TJ -7.126 -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(n)28(um)28(b)-28(er)-333(of)-334(the)-333(data)-333(t)27(yp)-27(e)-334(indicated)-333(in)-333(T)83(able)]TJ +0 0 1 rg 0 0 1 RG + [-333(1)]TJ +0 g 0 G + [(.)]TJ +0 g 0 G +/F27 9.9626 Tf -24.906 -24.104 Td [(\014rst,last)]TJ +0 g 0 G +/F8 9.9626 Tf 45.948 0 Td [(Boundaries)-333(for)-334(setting)-333(in)-333(the)-334(v)28(ector.)]TJ -21.042 -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 [(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(in)28(tegers.)]TJ +0 g 0 G +/F27 9.9626 Tf -24.906 -24.104 Td [(v)32(ect)]TJ +0 g 0 G +/F8 9.9626 Tf 25.508 0 Td [(An)-333(arra)28(y)]TJ -0.602 -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.547 0 Td [(.)]TJ -43.033 -11.956 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(n)28(um)28(b)-28(er)-333(of)-334(the)-333(data)-333(t)27(yp)-27(e)-334(indicated)-333(in)-333(T)83(able)]TJ +0 0 1 rg 0 0 1 RG + [-333(1)]TJ +0 g 0 G + [(.)]TJ -24.906 -26.095 Td [(Note)-391(that)-392(a)-391(call)-392(to)]TJ/F30 9.9626 Tf 87.299 0 Td [(v%zero\050\051)]TJ/F8 9.9626 Tf 45.742 0 Td [(is)-391(pro)27(vided)-391(as)-391(a)-392(shorthand,)-406(but)-391(is)-391(e)-1(q)1(uiv)55(alen)28(t)-391(to)]TJ -133.041 -11.956 Td [(a)-320(call)-319(to)]TJ/F30 9.9626 Tf 38.335 0 Td [(v%set\050zero\051)]TJ/F8 9.9626 Tf 60.719 0 Td [(with)-320(the)]TJ/F30 9.9626 Tf 39.578 0 Td [(zero)]TJ/F8 9.9626 Tf 24.107 0 Td [(constan)28(t)-320(ha)28(ving)-320(the)-319(appropriate)-320(t)28(yp)-28(e)-320(an)1(d)]TJ -162.739 -11.955 Td [(kind.)]TJ +0 g 0 G +/F27 9.9626 Tf 0 -26.096 Td [(On)-383(Return)]TJ +0 g 0 G +0 g 0 G + 0 -24.103 Td [(v)]TJ +0 g 0 G +/F8 9.9626 Tf 11.028 0 Td [(the)-333(dense)-334(v)28(ector,)-333(with)-334(up)-27(dated)-334(en)28(tries)]TJ 13.878 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ +0 g 0 G +/F8 9.9626 Tf 109.589 -41.843 Td [(26)]TJ +0 g 0 G +ET + +endstream +endobj +1005 0 obj << -/Type /Page -/Contents 939 0 R -/Resources 937 0 R -/MediaBox [0 0 595.276 841.89] -/Parent 922 0 R -/Annots [ 935 0 R 936 0 R ] +/Length 4654 >> -% 935 0 obj +stream +0 g 0 G +0 g 0 G +BT +/F27 9.9626 Tf 99.895 706.129 Td [(3.3.5)-1150(get)]TJ +ET +q +1 0 0 1 151.025 706.328 cm +[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S +Q +BT +/F27 9.9626 Tf 154.462 706.129 Td [(v)32(ect)-383(|)-384(Get)-383(a)-383(cop)31(y)-383(of)-383(the)-384(v)32(ector)-383(con)32(ten)32(ts)]TJ +0 g 0 G +0 g 0 G +/F30 9.9626 Tf -54.567 -19.197 Td [(extv)-525(=)-525(v%get_vect\050[n]\051)]TJ +0 g 0 G +/F27 9.9626 Tf 0 -23.219 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.66 Td [(On)-383(En)32(try)]TJ +0 g 0 G +0 g 0 G + 0 -21.66 Td [(v)]TJ +0 g 0 G +/F8 9.9626 Tf 11.028 0 Td [(the)-333(dense)-334(v)28(ector)]TJ 13.879 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ +0 g 0 G + -57.286 -33.615 Td [(n)]TJ +0 g 0 G +/F8 9.9626 Tf 11.347 0 Td [(Size)-333(to)-334(b)-27(e)-334(returned)]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 23.073 0 Td [(.)]TJ -55.452 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(optional)]TJ/F8 9.9626 Tf 40.577 0 Td [(;)-333(default:)-445(en)28(tire)-333(v)28(ector.)]TJ +0 g 0 G +/F27 9.9626 Tf -95.095 -35.174 Td [(On)-383(Return)]TJ +0 g 0 G +0 g 0 G + 0 -21.66 Td [(F)96(unction)-384(v)64(alue)]TJ +0 g 0 G +/F8 9.9626 Tf 78.387 0 Td [(An)-353(allo)-28(catable)-354(arra)28(y)-353(holding)-354(a)-353(cop)28(y)-354(of)-353(the)-354(dense)-353(v)28(ector)-354(con-)]TJ -53.48 -11.956 Td [(ten)28(ts.)-440(If)-319(the)-320(argumen)28(t)]TJ/F11 9.9626 Tf 99.799 0 Td [(n)]TJ/F8 9.9626 Tf 9.161 0 Td [(is)-319(sp)-28(eci\014ed,)-322(the)-320(size)-319(of)-319(the)-320(returned)-319(arra)28(y)-319(e)-1(qu)1(als)]TJ -108.96 -11.955 Td [(the)-401(minim)28(um)-401(b)-28(et)28(w)28(een)]TJ/F11 9.9626 Tf 102.199 0 Td [(n)]TJ/F8 9.9626 Tf 9.974 0 Td [(and)-401(the)-401(in)28(ternal)-401(size)-401(of)-400(the)-401(v)27(ector,)-417(or)-401(0)-401(if)]TJ/F11 9.9626 Tf 189.961 0 Td [(n)]TJ/F8 9.9626 Tf 9.973 0 Td [(is)]TJ -312.107 -11.955 Td [(negativ)28(e;)-389(otherwise,)-380(the)-371(size)-370(of)-371(the)-370(arra)28(y)-371(is)-370(the)-371(same)-371(as)-370(the)-371(in)28(ternal)-370(size)]TJ 0 -11.955 Td [(of)-333(the)-334(v)28(ector.)]TJ/F27 9.9626 Tf -24.907 -28.197 Td [(3.3.6)-1150(clone)-383(|)-384(Clone)-383(curren)32(t)-384(ob)-63(ject)]TJ +0 g 0 G +0 g 0 G +/F30 9.9626 Tf 0 -19.197 Td [(call)-1050(x%clone\050y,info\051)]TJ +0 g 0 G +/F27 9.9626 Tf 0 -23.218 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.66 Td [(On)-383(En)32(try)]TJ +0 g 0 G +0 g 0 G + 0 -21.661 Td [(x)]TJ +0 g 0 G +/F8 9.9626 Tf 11.028 0 Td [(the)-333(dense)-334(v)28(ector.)]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 23.073 0 Td [(.)]TJ +0 g 0 G +/F27 9.9626 Tf -80.359 -35.174 Td [(On)-383(Return)]TJ +0 g 0 G +0 g 0 G + 0 -21.66 Td [(y)]TJ +0 g 0 G +/F8 9.9626 Tf 11.028 0 Td [(A)-333(cop)27(y)-333(of)-333(the)-334(in)1(put)-334(ob)-55(ject.)]TJ +0 g 0 G +/F27 9.9626 Tf -11.028 -21.66 Td [(info)]TJ +0 g 0 G +/F8 9.9626 Tf 23.758 0 Td [(Return)-333(co)-28(de.)]TJ/F16 11.9552 Tf -23.758 -30.189 Td [(3.4)-1125(Preconditioner)-375(data)-375(structure)]TJ/F8 9.9626 Tf 0 -19.197 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.389 Td [(A)-427(preconditioner)-428(is)-427(held)-428(in)-427(the)]TJ/F30 9.9626 Tf 142.723 0 Td [(psb)]TJ +ET +q +1 0 0 1 273.881 168.346 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +Q +BT +/F30 9.9626 Tf 277.019 168.146 Td [(prec)]TJ +ET +q +1 0 0 1 298.568 168.346 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +Q +BT +/F30 9.9626 Tf 301.707 168.146 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 +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)-488(with)-487(the)-488(asso)-28(ciated)-488(comm)28(unication)-488(descriptor.)1(T)-1(h)1(e)-488(in)28(ternal)-488(precondi-)]TJ 0 -11.955 Td [(tioner)-417(is)-417(allo)-28(cated)-417(approp)1(riately)-417(with)-417(the)-417(dynamic)-417(t)28(yp)-28(e)-417(corresp)-28(onding)-417(to)-417(the)]TJ 0 -11.955 Td [(desired)-333(preconditioner.)]TJ +0 g 0 G + 166.875 -29.888 Td [(27)]TJ +0 g 0 G +ET + +endstream +endobj +1011 0 obj << -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [199.382 165.213 206.356 176.061] -/A << /S /GoTo /D (section.6) >> +/Length 3667 >> -% 936 0 obj +stream +0 g 0 G +0 g 0 G +0 g 0 G +0 g 0 G +0 g 0 G +0 g 0 G +0 g 0 G +BT +/F47 8.9664 Tf 177.306 705.133 Td [(type)-525(psb_Tprec_type)]TJ 9.415 -10.959 Td [(class\050psb_T_base_prec_type\051,)-525(allocatable)-525(::)-525(prec)]TJ -9.415 -10.959 Td [(end)-525(type)-525(psb_Tprec_type)]TJ +0 g 0 G +/F8 9.9626 Tf -14.632 -38.799 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 +0 g 0 G +/F16 11.9552 Tf -11.969 -31.825 Td [(3.5)-1125(Heap)-375(data)-375(structure)]TJ/F8 9.9626 Tf 0 -18.39 Td [(Among)-393(the)-393(to)-28(ols)-393(routines)-393(of)-393(sec.)]TJ +0 0 1 rg 0 0 1 RG + [-393(6)]TJ +0 g 0 G + [(,)-408(w)28(e)-393(ha)28(v)27(e)-393(a)-393(n)28(um)28(b)-28(er)-393(of)-393(sorting)-393(utilities;)-423(the)]TJ 0 -11.955 Td [(heap)-333(sort)-334(is)-333(implemen)28(ted)-334(in)-333(terms)-333(of)-334(heaps)-333(ha)28(ving)-333(the)-334(follo)28(wing)-333(signatures:)]TJ +0 g 0 G +/F30 9.9626 Tf 0 -19.925 Td [(psb)]TJ +ET +q +1 0 0 1 167.023 562.52 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +Q +BT +/F30 9.9626 Tf 170.162 562.321 Td [(T)]TJ +ET +q +1 0 0 1 176.02 562.52 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +Q +BT +/F30 9.9626 Tf 179.158 562.321 Td [(heap)]TJ +0 g 0 G +/F8 9.9626 Tf 25.903 0 Td [(:)-425(a)-295(heap)-296(con)28(taining)-295(elemen)28(ts)-295(of)-295(t)27(yp)-27(e)-296(T,)-295(where)-295(T)-295(can)-295(b)-28(e)]TJ/F30 9.9626 Tf 242.282 0 Td [(i,s,c,d,z)]TJ/F8 9.9626 Tf -271.731 -11.955 Td [(for)-333(in)28(teger,)-334(real)-333(and)-333(complex)-334(data;)]TJ +0 g 0 G +/F30 9.9626 Tf -24.907 -19.925 Td [(psb)]TJ +ET +q +1 0 0 1 167.023 530.64 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +Q +BT +/F30 9.9626 Tf 170.162 530.441 Td [(T)]TJ +ET +q +1 0 0 1 176.02 530.64 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +Q +BT +/F30 9.9626 Tf 179.158 530.441 Td [(idx)]TJ +ET +q +1 0 0 1 195.476 530.64 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +Q +BT +/F30 9.9626 Tf 198.615 530.441 Td [(heap)]TJ +0 g 0 G +/F8 9.9626 Tf 25.902 0 Td [(:)-408(a)-260(heap)-260(con)28(taining)-260(elemen)28(ts)-260(of)-260(t)28(yp)-28(e)-260(T,)-260(as)-260(ab)-27(o)28(v)27(e,)-274(together)-260(with)]TJ -48.906 -11.956 Td [(an)-333(in)27(t)1(e)-1(ger)-333(index.)]TJ -24.906 -19.925 Td [(Giv)28(en)-334(a)-333(heap)-333(ob)-56(ject,)-333(the)-333(follo)27(win)1(g)-334(metho)-28(ds)-333(are)-333(de\014ned)-334(on)-333(it:)]TJ +0 g 0 G +/F27 9.9626 Tf 0 -19.925 Td [(init)]TJ +0 g 0 G +/F8 9.9626 Tf 22.167 0 Td [(Initialize)-333(memory;)-334(also)-333(c)28(ho)-28(ose)-333(as)-1(cendi)1(ng)-334(or)-333(descending)-333(order;)]TJ +0 g 0 G +/F27 9.9626 Tf -22.167 -19.926 Td [(ho)32(wman)32(y)]TJ +0 g 0 G +/F8 9.9626 Tf 52.241 0 Td [(Curren)28(t)-333(heap)-334(o)-28(ccupancy;)]TJ +0 g 0 G +/F27 9.9626 Tf -52.241 -19.925 Td [(insert)]TJ +0 g 0 G +/F8 9.9626 Tf 33.473 0 Td [(Add)-333(an)-334(item)-333(\050or)-333(an)-334(i)1(te)-1(m)-333(and)-333(its)-334(i)1(ndex\051;)]TJ +0 g 0 G +/F27 9.9626 Tf -33.473 -19.925 Td [(get)]TJ +ET +q +1 0 0 1 166.827 419.058 cm +[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S +Q +BT +/F27 9.9626 Tf 170.264 418.859 Td [(\014rst)]TJ +0 g 0 G +/F8 9.9626 Tf 25.04 0 Td [(Remo)28(v)27(e)-333(and)-333(return)-333(the)-334(\014rst)-333(elemen)28(t;)]TJ +0 g 0 G +/F27 9.9626 Tf -44.599 -19.925 Td [(dump)]TJ +0 g 0 G +/F8 9.9626 Tf 33.624 0 Td [(Prin)28(t)-333(on)-334(\014le;)]TJ +0 g 0 G +/F27 9.9626 Tf -33.624 -19.926 Td [(free)]TJ +0 g 0 G +/F8 9.9626 Tf 23.703 0 Td [(Release)-333(m)-1(emory)84(.)]TJ -23.703 -19.925 Td [(These)-333(ob)-56(jects)-333(are)-334(used)-333(in)-333(MLD2P4)-334(to)-333(implemen)28(t)-334(th)1(e)-334(factorization)-333(algorithms.)]TJ +0 g 0 G + 166.874 -268.645 Td [(28)]TJ +0 g 0 G +ET + +endstream +endobj +935 0 obj << -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [292.368 129.347 299.342 140.196] -/A << /S /GoTo /D (figure.5) >> +/Type /ObjStm +/N 100 +/First 885 +/Length 8978 >> -% 940 0 obj +stream +931 0 933 114 71 171 75 227 934 283 79 339 83 395 930 451 937 543 939 657 +87 713 91 768 95 823 936 878 944 970 940 1120 941 1276 942 1426 946 1571 99 1628 +103 1684 947 1741 948 1798 943 1855 952 1960 954 2074 950 2130 107 2187 111 2243 115 2299 +951 2355 956 2447 958 2561 119 2618 959 2674 123 2731 955 2788 961 2880 963 2994 127 3050 +131 3106 135 3162 960 3218 966 3310 968 3424 139 3481 143 3538 965 3595 970 3687 972 3801 +147 3857 151 3913 969 3969 974 4061 976 4175 155 4232 159 4289 163 4346 973 4403 978 4495 +980 4609 167 4665 977 4721 984 4813 981 4955 982 5102 986 5248 171 5305 175 5362 179 5419 +183 5476 987 5533 983 5590 990 5695 992 5809 988 5865 187 5922 191 5978 195 6034 989 6090 +997 6182 994 6324 995 6469 999 6614 199 6671 996 6728 1004 6820 1001 6958 1006 7105 204 7163 +208 7220 212 7276 1007 7333 1003 7392 1010 7511 1002 7649 1012 7797 1008 7856 216 7915 1009 7973 +% 931 0 obj << -/D [938 0 R /XYZ 98.895 753.953 null] +/Type /Page +/Contents 932 0 R +/Resources 930 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 929 0 R >> -% 159 0 obj +% 933 0 obj << -/D [938 0 R /XYZ 99.895 718.084 null] +/D [931 0 R /XYZ 149.705 753.953 null] >> -% 163 0 obj +% 71 0 obj << -/D [938 0 R /XYZ 99.895 590.059 null] +/D [931 0 R /XYZ 150.705 716.092 null] >> -% 167 0 obj +% 75 0 obj << -/D [938 0 R /XYZ 99.895 402.035 null] +/D [931 0 R /XYZ 150.705 527.714 null] >> -% 171 0 obj +% 934 0 obj << -/D [938 0 R /XYZ 99.895 233.858 null] +/D [931 0 R /XYZ 395.482 368.65 null] >> -% 941 0 obj +% 79 0 obj << -/D [938 0 R /XYZ 121.151 204.012 null] +/D [931 0 R /XYZ 150.705 321.259 null] >> -% 937 0 obj +% 83 0 obj +<< +/D [931 0 R /XYZ 150.705 203.963 null] +>> +% 930 0 obj << -/Font << /F27 560 0 R /F30 769 0 R /F8 561 0 R /F16 558 0 R >> +/Font << /F27 584 0 R /F30 811 0 R /F8 585 0 R >> /ProcSet [ /PDF /Text ] >> -% 944 0 obj +% 937 0 obj << /Type /Page -/Contents 945 0 R -/Resources 943 0 R +/Contents 938 0 R +/Resources 936 0 R /MediaBox [0 0 595.276 841.89] -/Parent 922 0 R ->> -% 946 0 obj -<< -/D [944 0 R /XYZ 149.705 753.953 null] +/Parent 929 0 R >> -% 942 0 obj +% 939 0 obj << -/D [944 0 R /XYZ 208.488 433.055 null] +/D [937 0 R /XYZ 98.895 753.953 null] >> -% 175 0 obj +% 87 0 obj << -/D [944 0 R /XYZ 150.705 391.443 null] +/D [937 0 R /XYZ 99.895 585.142 null] >> -% 179 0 obj +% 91 0 obj << -/D [944 0 R /XYZ 150.705 374.163 null] +/D [937 0 R /XYZ 99.895 467.965 null] >> -% 183 0 obj +% 95 0 obj << -/D [944 0 R /XYZ 150.705 195.076 null] +/D [937 0 R /XYZ 99.895 257.286 null] >> -% 943 0 obj +% 936 0 obj << -/Font << /F27 560 0 R /F8 561 0 R /F30 769 0 R >> +/Font << /F27 584 0 R /F8 585 0 R /F30 811 0 R >> /ProcSet [ /PDF /Text ] >> -% 950 0 obj +% 944 0 obj << /Type /Page -/Contents 951 0 R -/Resources 949 0 R +/Contents 945 0 R +/Resources 943 0 R /MediaBox [0 0 595.276 841.89] -/Parent 953 0 R -/Annots [ 947 0 R 948 0 R ] +/Parent 929 0 R +/Annots [ 940 0 R 941 0 R 942 0 R ] >> -% 947 0 obj +% 940 0 obj << /Type /Annot /Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [382.088 385.356 389.062 396.204] -/A << /S /GoTo /D (table.1) >> +/Border[0 0 0]/H/I/C[0 1 0] +/Rect [188.06 277.052 200.015 285.465] +/A << /S /GoTo /D (cite.DesignPatterns) >> >> -% 948 0 obj +% 941 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[0 1 0] +/Rect [268.904 277.052 280.86 285.465] +/A << /S /GoTo /D (cite.Sparse03) >> +>> +% 942 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [382.088 241.508 389.062 252.356] -/A << /S /GoTo /D (table.1) >> +/Rect [459.496 274.562 466.47 286.517] +/A << /S /GoTo /D (figure.4) >> >> -% 952 0 obj +% 946 0 obj << -/D [950 0 R /XYZ 98.895 753.953 null] +/D [944 0 R /XYZ 149.705 753.953 null] >> -% 187 0 obj +% 99 0 obj << -/D [950 0 R /XYZ 99.895 613.581 null] +/D [944 0 R /XYZ 150.705 553.709 null] >> -% 949 0 obj +% 103 0 obj +<< +/D [944 0 R /XYZ 150.705 332.359 null] +>> +% 947 0 obj +<< +/D [944 0 R /XYZ 171.358 301.959 null] +>> +% 948 0 obj +<< +/D [944 0 R /XYZ 455.673 168.146 null] +>> +% 943 0 obj << -/Font << /F27 560 0 R /F8 561 0 R /F30 769 0 R >> +/Font << /F27 584 0 R /F8 585 0 R /F30 811 0 R /F16 582 0 R >> /ProcSet [ /PDF /Text ] >> -% 958 0 obj +% 952 0 obj << /Type /Page -/Contents 959 0 R -/Resources 957 0 R +/Contents 953 0 R +/Resources 951 0 R /MediaBox [0 0 595.276 841.89] -/Parent 953 0 R -/Annots [ 955 0 R ] ->> -% 955 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [177.685 152.981 184.659 164.106] -/A << /S /GoTo /D (figure.6) >> +/Parent 929 0 R >> -% 960 0 obj +% 954 0 obj << -/D [958 0 R /XYZ 149.705 753.953 null] +/D [952 0 R /XYZ 98.895 753.953 null] >> -% 191 0 obj +% 950 0 obj << -/D [958 0 R /XYZ 150.705 718.084 null] +/D [952 0 R /XYZ 155.008 667.994 null] >> -% 195 0 obj +% 107 0 obj << -/D [958 0 R /XYZ 150.705 430.016 null] +/D [952 0 R /XYZ 99.895 382.599 null] >> -% 199 0 obj +% 111 0 obj << -/D [958 0 R /XYZ 150.705 226.068 null] +/D [952 0 R /XYZ 99.895 364.643 null] >> -% 961 0 obj +% 115 0 obj << -/D [958 0 R /XYZ 308.372 168.146 null] +/D [952 0 R /XYZ 99.895 191.212 null] >> -% 957 0 obj +% 951 0 obj << -/Font << /F27 560 0 R /F30 769 0 R /F8 561 0 R /F11 755 0 R /F16 558 0 R >> +/Font << /F30 811 0 R /F8 585 0 R /F27 584 0 R >> /ProcSet [ /PDF /Text ] >> -% 964 0 obj +% 956 0 obj << /Type /Page -/Contents 965 0 R -/Resources 963 0 R +/Contents 957 0 R +/Resources 955 0 R /MediaBox [0 0 595.276 841.89] -/Parent 953 0 R -/Annots [ 956 0 R ] +/Parent 929 0 R >> -% 956 0 obj +% 958 0 obj << -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [246.843 591.268 253.817 602.116] -/A << /S /GoTo /D (section.6) >> +/D [956 0 R /XYZ 149.705 753.953 null] >> -% 966 0 obj +% 119 0 obj << -/D [964 0 R /XYZ 98.895 753.953 null] +/D [956 0 R /XYZ 150.705 611.35 null] >> -% 962 0 obj +% 959 0 obj << -/D [964 0 R /XYZ 155.478 656.371 null] +/D [956 0 R /XYZ 150.705 387.487 null] >> -% 204 0 obj +% 123 0 obj << -/D [964 0 R /XYZ 99.895 622.553 null] +/D [956 0 R /XYZ 150.705 324.426 null] >> -% 963 0 obj +% 955 0 obj << -/Font << /F47 967 0 R /F8 561 0 R /F16 558 0 R /F30 769 0 R /F27 560 0 R >> +/Font << /F27 584 0 R /F8 585 0 R /F30 811 0 R >> /ProcSet [ /PDF /Text ] >> -% 969 0 obj +% 961 0 obj << /Type /Page -/Contents 970 0 R -/Resources 968 0 R +/Contents 962 0 R +/Resources 960 0 R /MediaBox [0 0 595.276 841.89] -/Parent 953 0 R +/Parent 964 0 R +>> +% 963 0 obj +<< +/D [961 0 R /XYZ 98.895 753.953 null] >> -% 971 0 obj +% 127 0 obj << -/D [969 0 R /XYZ 149.705 753.953 null] +/D [961 0 R /XYZ 99.895 716.092 null] >> -% 208 0 obj +% 131 0 obj << -/D [969 0 R /XYZ 150.705 716.092 null] +/D [961 0 R /XYZ 99.895 527.657 null] >> -% 968 0 obj +% 135 0 obj +<< +/D [961 0 R /XYZ 99.895 326.521 null] +>> +% 960 0 obj << -/Font << /F16 558 0 R /F8 561 0 R >> +/Font << /F27 584 0 R /F30 811 0 R /F8 585 0 R >> /ProcSet [ /PDF /Text ] >> -% 980 0 obj +% 966 0 obj << /Type /Page -/Contents 981 0 R -/Resources 979 0 R +/Contents 967 0 R +/Resources 965 0 R /MediaBox [0 0 595.276 841.89] -/Parent 953 0 R -/Annots [ 972 0 R 973 0 R 974 0 R 975 0 R 976 0 R 977 0 R ] ->> -% 972 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [382.088 401.949 389.062 412.798] -/A << /S /GoTo /D (table.1) >> +/Parent 964 0 R >> -% 973 0 obj +% 968 0 obj << -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [368.549 333.522 444.603 344.647] -/A << /S /GoTo /D (vdata) >> +/D [966 0 R /XYZ 149.705 753.953 null] >> -% 974 0 obj +% 139 0 obj << -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [328.333 321.844 335.307 332.692] -/A << /S /GoTo /D (table.1) >> +/D [966 0 R /XYZ 150.705 716.092 null] >> -% 975 0 obj +% 143 0 obj << -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [382.088 241.738 389.062 252.586] -/A << /S /GoTo /D (table.1) >> +/D [966 0 R /XYZ 150.705 475.461 null] >> -% 976 0 obj +% 965 0 obj << -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [368.549 173.311 444.603 184.436] -/A << /S /GoTo /D (vdata) >> +/Font << /F27 584 0 R /F30 811 0 R /F8 585 0 R >> +/ProcSet [ /PDF /Text ] >> -% 977 0 obj +% 970 0 obj << -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [345.625 161.632 352.599 172.481] -/A << /S /GoTo /D (table.1) >> +/Type /Page +/Contents 971 0 R +/Resources 969 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 964 0 R >> -% 982 0 obj +% 972 0 obj << -/D [980 0 R /XYZ 98.895 753.953 null] +/D [970 0 R /XYZ 98.895 753.953 null] >> -% 212 0 obj +% 147 0 obj << -/D [980 0 R /XYZ 99.895 720.077 null] +/D [970 0 R /XYZ 99.895 716.092 null] >> -% 954 0 obj +% 151 0 obj << -/D [980 0 R /XYZ 267.641 539.42 null] +/D [970 0 R /XYZ 99.895 384.228 null] >> -% 979 0 obj +% 969 0 obj << -/Font << /F16 558 0 R /F8 561 0 R /F11 755 0 R /F14 772 0 R /F30 769 0 R /F27 560 0 R >> +/Font << /F27 584 0 R /F30 811 0 R /F8 585 0 R >> /ProcSet [ /PDF /Text ] >> -% 986 0 obj +% 974 0 obj << /Type /Page -/Contents 987 0 R -/Resources 985 0 R +/Contents 975 0 R +/Resources 973 0 R /MediaBox [0 0 595.276 841.89] -/Parent 953 0 R -/Annots [ 978 0 R 983 0 R 984 0 R ] +/Parent 964 0 R >> -% 978 0 obj +% 976 0 obj << -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [310.273 679.008 377.331 690.133] -/A << /S /GoTo /D (descdata) >> +/D [974 0 R /XYZ 149.705 753.953 null] >> -% 983 0 obj +% 155 0 obj +<< +/D [974 0 R /XYZ 150.705 716.092 null] +>> +% 159 0 obj +<< +/D [974 0 R /XYZ 150.705 483.063 null] +>> +% 163 0 obj +<< +/D [974 0 R /XYZ 150.705 248.041 null] +>> +% 973 0 obj +<< +/Font << /F27 584 0 R /F30 811 0 R /F8 585 0 R >> +/ProcSet [ /PDF /Text ] +>> +% 978 0 obj +<< +/Type /Page +/Contents 979 0 R +/Resources 977 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 964 0 R +>> +% 980 0 obj +<< +/D [978 0 R /XYZ 98.895 753.953 null] +>> +% 167 0 obj +<< +/D [978 0 R /XYZ 99.895 476.867 null] +>> +% 977 0 obj +<< +/Font << /F27 584 0 R /F8 585 0 R /F30 811 0 R >> +/ProcSet [ /PDF /Text ] +>> +% 984 0 obj +<< +/Type /Page +/Contents 985 0 R +/Resources 983 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 964 0 R +/Annots [ 981 0 R 982 0 R ] +>> +% 981 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [419.358 589.345 495.412 600.47] -/A << /S /GoTo /D (vdata) >> +/Rect [250.191 165.213 257.165 176.061] +/A << /S /GoTo /D (section.6) >> >> -% 984 0 obj +% 982 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [396.367 577.666 403.341 588.514] -/A << /S /GoTo /D (table.1) >> +/Rect [343.178 129.347 350.152 140.196] +/A << /S /GoTo /D (figure.5) >> >> -% 988 0 obj +% 986 0 obj +<< +/D [984 0 R /XYZ 149.705 753.953 null] +>> +% 171 0 obj +<< +/D [984 0 R /XYZ 150.705 716.092 null] +>> +% 175 0 obj << -/D [986 0 R /XYZ 149.705 753.953 null] +/D [984 0 R /XYZ 150.705 588.122 null] >> -% 985 0 obj +% 179 0 obj +<< +/D [984 0 R /XYZ 150.705 402.035 null] +>> +% 183 0 obj +<< +/D [984 0 R /XYZ 150.705 233.858 null] +>> +% 987 0 obj +<< +/D [984 0 R /XYZ 171.961 204.012 null] +>> +% 983 0 obj << -/Font << /F8 561 0 R /F27 560 0 R /F30 769 0 R /F11 755 0 R >> +/Font << /F27 584 0 R /F30 811 0 R /F8 585 0 R /F16 582 0 R >> /ProcSet [ /PDF /Text ] >> -% 995 0 obj +% 990 0 obj << /Type /Page -/Contents 996 0 R -/Resources 994 0 R +/Contents 991 0 R +/Resources 989 0 R /MediaBox [0 0 595.276 841.89] -/Parent 999 0 R -/Annots [ 989 0 R 990 0 R 991 0 R 992 0 R 993 0 R ] +/Parent 993 0 R +>> +% 992 0 obj +<< +/D [990 0 R /XYZ 98.895 753.953 null] +>> +% 988 0 obj +<< +/D [990 0 R /XYZ 157.678 433.055 null] +>> +% 187 0 obj +<< +/D [990 0 R /XYZ 99.895 391.443 null] +>> +% 191 0 obj +<< +/D [990 0 R /XYZ 99.895 374.453 null] +>> +% 195 0 obj +<< +/D [990 0 R /XYZ 99.895 195.366 null] >> % 989 0 obj << -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [368.549 355.465 444.603 366.59] -/A << /S /GoTo /D (vdata) >> +/Font << /F27 584 0 R /F8 585 0 R /F30 811 0 R >> +/ProcSet [ /PDF /Text ] >> -% 990 0 obj +% 997 0 obj << -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [328.333 343.787 335.307 354.635] -/A << /S /GoTo /D (table.2) >> +/Type /Page +/Contents 998 0 R +/Resources 996 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 993 0 R +/Annots [ 994 0 R 995 0 R ] >> -% 991 0 obj +% 994 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [368.549 264.06 444.603 275.185] -/A << /S /GoTo /D (vdata) >> +/Rect [432.897 385.356 439.871 396.204] +/A << /S /GoTo /D (table.1) >> >> -% 992 0 obj +% 995 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [328.544 252.382 335.518 263.23] -/A << /S /GoTo /D (table.2) >> +/Rect [432.897 241.508 439.871 252.356] +/A << /S /GoTo /D (table.1) >> >> -% 993 0 obj +% 999 0 obj +<< +/D [997 0 R /XYZ 149.705 753.953 null] +>> +% 199 0 obj +<< +/D [997 0 R /XYZ 150.705 612.689 null] +>> +% 996 0 obj +<< +/Font << /F27 584 0 R /F8 585 0 R /F30 811 0 R >> +/ProcSet [ /PDF /Text ] +>> +% 1004 0 obj +<< +/Type /Page +/Contents 1005 0 R +/Resources 1003 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 993 0 R +/Annots [ 1001 0 R ] +>> +% 1001 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [259.464 172.655 326.522 183.78] -/A << /S /GoTo /D (descdata) >> +/Rect [126.875 152.981 133.849 164.106] +/A << /S /GoTo /D (figure.6) >> >> -% 997 0 obj +% 1006 0 obj << -/D [995 0 R /XYZ 98.895 753.953 null] +/D [1004 0 R /XYZ 98.895 753.953 null] >> -% 216 0 obj +% 204 0 obj << -/D [995 0 R /XYZ 99.895 720.077 null] +/D [1004 0 R /XYZ 99.895 716.092 null] >> -% 998 0 obj +% 208 0 obj << -/D [995 0 R /XYZ 267.641 490.516 null] +/D [1004 0 R /XYZ 99.895 430.45 null] >> -% 994 0 obj +% 212 0 obj +<< +/D [1004 0 R /XYZ 99.895 226.068 null] +>> +% 1007 0 obj +<< +/D [1004 0 R /XYZ 257.563 168.146 null] +>> +% 1003 0 obj << -/Font << /F16 558 0 R /F8 561 0 R /F11 755 0 R /F14 772 0 R /F10 771 0 R /F30 769 0 R /F27 560 0 R >> +/Font << /F27 584 0 R /F30 811 0 R /F8 585 0 R /F11 797 0 R /F16 582 0 R >> /ProcSet [ /PDF /Text ] >> -% 1002 0 obj +% 1010 0 obj << /Type /Page -/Contents 1003 0 R -/Resources 1001 0 R +/Contents 1011 0 R +/Resources 1009 0 R /MediaBox [0 0 595.276 841.89] -/Parent 999 0 R -/Annots [ 1000 0 R ] +/Parent 993 0 R +/Annots [ 1002 0 R ] >> -% 1000 0 obj +% 1002 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [432.897 603.569 439.871 614.417] -/A << /S /GoTo /D (table.2) >> +/Rect [297.652 591.268 304.626 602.116] +/A << /S /GoTo /D (section.6) >> >> -% 1004 0 obj +% 1012 0 obj << -/D [1002 0 R /XYZ 149.705 753.953 null] +/D [1010 0 R /XYZ 149.705 753.953 null] >> -% 1005 0 obj +% 1008 0 obj << -/D [1002 0 R /XYZ 150.705 512.854 null] +/D [1010 0 R /XYZ 206.288 656.371 null] >> -% 1006 0 obj +% 216 0 obj +<< +/D [1010 0 R /XYZ 150.705 622.553 null] +>> +% 1009 0 obj +<< +/Font << /F47 1013 0 R /F8 585 0 R /F16 582 0 R /F30 811 0 R /F27 584 0 R >> +/ProcSet [ /PDF /Text ] +>> + +endstream +endobj +1016 0 obj << -/D [1002 0 R /XYZ 150.705 453.133 null] +/Length 157 >> +stream +0 g 0 G +0 g 0 G +BT +/F16 14.3462 Tf 99.895 706.129 Td [(4)-1125(Computational)-375(routines)]TJ +0 g 0 G +/F8 9.9626 Tf 166.875 -615.691 Td [(29)]TJ +0 g 0 G +ET endstream endobj -1020 0 obj +1028 0 obj << -/Length 8462 +/Length 7331 >> stream 0 g 0 G 0 g 0 G BT -/F16 11.9552 Tf 99.895 706.129 Td [(psb)]TJ +/F16 11.9552 Tf 150.705 706.129 Td [(4.1)-1125(psb)]TJ ET q -1 0 0 1 120.951 706.328 cm +1 0 0 1 202.396 706.328 cm []0 d 0 J 0.398 w 0 0 m 4.035 0 l S Q BT -/F16 11.9552 Tf 124.986 706.129 Td [(gedots)-375(|)-375(Generalized)-375(Dot)-375(Pro)-31(duct)]TJ/F8 9.9626 Tf -25.091 -18.389 Td [(This)-392(subroutine)-392(computes)-392(a)-392(series)-392(of)-391(dot)-392(pro)-28(ducts)-392(among)-392(the)-392(columns)-392(of)-391(t)27(w)28(o)]TJ 0 -11.956 Td [(dense)-333(matrices)]TJ/F11 9.9626 Tf 67.11 0 Td [(x)]TJ/F8 9.9626 Tf 9.015 0 Td [(and)]TJ/F11 9.9626 Tf 19.372 0 Td [(y)]TJ/F8 9.9626 Tf 5.241 0 Td [(:)]TJ/F11 9.9626 Tf 23.756 -11.955 Td [(r)-28(es)]TJ/F8 9.9626 Tf 14.081 0 Td [(\050)]TJ/F11 9.9626 Tf 3.874 0 Td [(i)]TJ/F8 9.9626 Tf 3.432 0 Td [(\051)]TJ/F14 9.9626 Tf 6.642 0 Td [(\040)]TJ/F11 9.9626 Tf 12.73 0 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(\050:)]TJ/F11 9.9626 Tf 6.642 0 Td [(;)-167(i)]TJ/F8 9.9626 Tf 7.86 0 Td [(\051)]TJ/F10 6.9738 Tf 3.874 4.114 Td [(T)]TJ/F11 9.9626 Tf 6.276 -4.114 Td [(y)]TJ/F8 9.9626 Tf 5.242 0 Td [(\050:)]TJ/F11 9.9626 Tf 6.642 0 Td [(;)-167(i)]TJ/F8 9.9626 Tf 7.86 0 Td [(\051)]TJ -215.343 -15.687 Td [(If)-245(the)-245(matrices)-245(are)-245(complex,)-262(then)-245(the)-245(usual)-245(con)28(v)28(e)-1(n)28(tion)-245(app)1(lie)-1(s,)-262(i.e.)-415(the)-245(conjugate)]TJ 0 -11.955 Td [(transp)-28(ose)-323(of)]TJ/F11 9.9626 Tf 55.836 0 Td [(x)]TJ/F8 9.9626 Tf 8.913 0 Td [(is)-323(used.)-441(If)]TJ/F11 9.9626 Tf 46.366 0 Td [(x)]TJ/F8 9.9626 Tf 8.913 0 Td [(and)]TJ/F11 9.9626 Tf 19.269 0 Td [(y)]TJ/F8 9.9626 Tf 8.461 0 Td [(are)-323(of)-323(rank)-323(one,)-325(then)]TJ/F11 9.9626 Tf 94.212 0 Td [(r)-28(es)]TJ/F8 9.9626 Tf 17.299 0 Td [(is)-323(a)-323(scalar,)-325(else)-324(it)-323(is)]TJ -259.269 -11.955 Td [(a)-333(rank)-334(one)-333(arra)28(y)83(.)]TJ +/F16 11.9552 Tf 206.431 706.129 Td [(geaxpb)31(y)-375(|)-375(General)-375(Dense)-375(Matrix)-375(Sum)]TJ/F8 9.9626 Tf -55.726 -18.578 Td [(This)-436(subroutine)-436(is)-436(an)-436(in)28(terface)-437(to)-436(the)-436(computational)-436(k)28(ernel)-436(for)-436(dense)-436(matrix)]TJ 0 -11.955 Td [(sum:)]TJ/F11 9.9626 Tf 142.537 -12.258 Td [(y)]TJ/F14 9.9626 Tf 8.009 0 Td [(\040)]TJ/F11 9.9626 Tf 12.73 0 Td [(\013)-226(x)]TJ/F8 9.9626 Tf 16.532 0 Td [(+)]TJ/F11 9.9626 Tf 9.963 0 Td [(\014)-53(y)]TJ 0 g 0 G 0 g 0 G -/F30 9.9626 Tf 0 -18.175 Td [(call)-525(psb_gedots\050res,)-525(x,)-525(y,)-525(desc_a,)-525(info\051)]TJ +/F30 9.9626 Tf -189.771 -22.424 Td [(call)-525(psb_geaxpby\050alpha,)-525(x,)-525(beta,)-525(y,)-525(desc_a,)-525(info\051)]TJ 0 g 0 G 0 g 0 G 0 g 0 G ET q -1 0 0 1 177.988 586.966 cm +1 0 0 1 228.797 616.077 cm []0 d 0 J 0.398 w 0 0 m 187.526 0 l S Q BT -/F11 9.9626 Tf 183.966 578.398 Td [(r)-28(es)]TJ/F8 9.9626 Tf 14.08 0 Td [(,)]TJ/F11 9.9626 Tf 6.088 0 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(,)]TJ/F11 9.9626 Tf 6.088 0 Td [(y)]TJ/F27 9.9626 Tf 88.459 0 Td [(Subroutine)]TJ +/F11 9.9626 Tf 234.775 607.509 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(,)]TJ/F11 9.9626 Tf 6.088 0 Td [(y)]TJ/F8 9.9626 Tf 5.242 0 Td [(,)]TJ/F11 9.9626 Tf 6.088 0 Td [(\013)]TJ/F8 9.9626 Tf 6.41 0 Td [(,)]TJ/F11 9.9626 Tf 6.089 0 Td [(\014)]TJ/F27 9.9626 Tf 84.799 0 Td [(Subroutine)]TJ ET q -1 0 0 1 177.988 574.612 cm +1 0 0 1 228.797 603.724 cm []0 d 0 J 0.398 w 0 0 m 187.526 0 l S Q BT -/F8 9.9626 Tf 183.966 566.045 Td [(Short)-333(Precision)-333(R)-1(eal)-3102(psb)]TJ +/F8 9.9626 Tf 234.775 595.156 Td [(Short)-333(Precision)-334(Real)-3102(psb)]TJ ET q -1 0 0 1 319.972 566.244 cm +1 0 0 1 370.782 595.355 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 322.961 566.045 Td [(gedots)]TJ -138.995 -11.956 Td [(Long)-333(Precision)-334(Real)-3314(p)1(s)-1(b)]TJ +/F8 9.9626 Tf 373.771 595.156 Td [(geaxpb)28(y)]TJ -138.996 -11.955 Td [(Long)-333(Precision)-334(Real)-3314(psb)]TJ ET q -1 0 0 1 319.972 554.289 cm +1 0 0 1 370.782 583.4 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 322.961 554.089 Td [(gedots)]TJ -138.995 -11.955 Td [(Short)-333(Precision)-333(C)-1(omplex)-1200(p)1(s)-1(b)]TJ +/F8 9.9626 Tf 373.771 583.201 Td [(geaxpb)28(y)]TJ -138.996 -11.956 Td [(Short)-333(Precision)-334(Complex)-1200(psb)]TJ ET q -1 0 0 1 319.972 542.333 cm +1 0 0 1 370.782 571.445 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 322.961 542.134 Td [(gedots)]TJ -138.995 -11.955 Td [(Long)-333(Precision)-334(Complex)-1411(psb)]TJ +/F8 9.9626 Tf 373.771 571.245 Td [(geaxpb)28(y)]TJ -138.996 -11.955 Td [(Long)-333(Precision)-334(Complex)-1411(psb)]TJ ET q -1 0 0 1 319.972 530.378 cm +1 0 0 1 370.782 559.49 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 322.961 530.179 Td [(gedots)]TJ +/F8 9.9626 Tf 373.771 559.29 Td [(geaxpb)28(y)]TJ ET q -1 0 0 1 177.988 526.393 cm +1 0 0 1 228.797 555.504 cm []0 d 0 J 0.398 w 0 0 m 187.526 0 l S Q 0 g 0 G BT -/F8 9.9626 Tf 228.067 498.354 Td [(T)83(able)-333(3:)-444(Data)-334(t)28(yp)-28(es)]TJ +/F8 9.9626 Tf 278.877 527.465 Td [(T)83(able)-333(1:)-444(Data)-334(t)28(yp)-28(es)]TJ 0 g 0 G 0 g 0 G 0 g 0 G -/F27 9.9626 Tf -128.172 -28.356 Td [(T)32(yp)-32(e:)]TJ +/F27 9.9626 Tf -128.172 -34.102 Td [(T)32(yp)-32(e:)]TJ 0 g 0 G /F8 9.9626 Tf 33.797 0 Td [(Sync)28(hronous.)]TJ 0 g 0 G -/F27 9.9626 Tf -33.797 -18.428 Td [(On)-383(En)32(try)]TJ +/F27 9.9626 Tf -33.797 -20.33 Td [(On)-383(En)32(try)]TJ 0 g 0 G 0 g 0 G - 0 -18.429 Td [(x)]TJ + 0 -20.329 Td [(alpha)]TJ 0 g 0 G -/F8 9.9626 Tf 11.028 0 Td [(the)-333(lo)-28(cal)-333(p)-28(ortion)-333(of)-334(global)-333(dense)-333(matrix)]TJ/F11 9.9626 Tf 176.118 0 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(.)]TJ -167.933 -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 [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-255(as:)-405(a)-255(rank)-254(one)-255(or)-255(t)28(w)27(o)-254(arra)27(y)-254(or)-255(an)-255(ob)-55(jec)-1(t)-254(of)-255(t)28(yp)-28(e)]TJ +/F8 9.9626 Tf 32.032 0 Td [(the)-333(scalar)]TJ/F11 9.9626 Tf 45.469 0 Td [(\013)]TJ/F8 9.9626 Tf 6.41 0 Td [(.)]TJ -59.004 -11.956 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.378 0 Td [(global)]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 [(in)]TJ/F8 9.9626 Tf 9.548 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-444(a)-334(n)28(um)28(b)-28(er)-333(of)-334(the)-333(data)-333(t)28(yp)-28(e)-334(in)1(dicate)-1(d)-333(in)-333(T)83(able)]TJ 0 0 1 rg 0 0 1 RG -/F30 9.9626 Tf 244.743 0 Td [(psb)]TJ + [-333(1)]TJ +0 g 0 G + [(.)]TJ +0 g 0 G +/F27 9.9626 Tf -24.907 -20.33 Td [(x)]TJ +0 g 0 G +/F8 9.9626 Tf 11.028 0 Td [(the)-333(lo)-28(cal)-333(p)-28(ortion)-333(of)-334(global)-333(dense)-333(matrix)]TJ/F11 9.9626 Tf 176.118 0 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(.)]TJ -167.933 -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 [(in)]TJ/F8 9.9626 Tf 9.548 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-255(as:)-405(a)-255(rank)-254(one)-255(or)-255(t)28(w)28(o)-255(arra)28(y)-255(or)-255(an)-255(ob)-55(ject)-255(of)-255(t)28(yp)-28(e)]TJ +0 0 1 rg 0 0 1 RG +/F30 9.9626 Tf 244.742 0 Td [(psb)]TJ ET q -1 0 0 1 385.864 385.52 cm +1 0 0 1 436.673 336.932 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 389.002 385.321 Td [(T)]TJ +/F30 9.9626 Tf 439.811 336.732 Td [(T)]TJ ET q -1 0 0 1 394.86 385.52 cm +1 0 0 1 445.669 336.932 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 397.998 385.321 Td [(vect)]TJ +/F30 9.9626 Tf 448.807 336.732 Td [(vect)]TJ ET q -1 0 0 1 419.547 385.52 cm +1 0 0 1 470.356 336.932 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 422.685 385.321 Td [(type)]TJ +/F30 9.9626 Tf 473.495 336.732 Td [(type)]TJ 0 g 0 G -/F8 9.9626 Tf -297.883 -11.955 Td [(con)28(taining)-375(n)27(u)1(m)27(b)-27(e)-1(r)1(s)-376(of)-375(t)28(yp)-28(e)-375(sp)-28(eci\014ed)-375(in)-375(T)83(able)]TJ +/F8 9.9626 Tf -297.884 -11.955 Td [(con)28(taining)-375(n)27(um)28(b)-28(ers)-375(of)-375(t)28(yp)-28(e)-375(sp)-28(eci\014ed)-375(in)-375(T)83(able)]TJ 0 0 1 rg 0 0 1 RG - [-375(3)]TJ + [-375(1)]TJ 0 g 0 G - [(.)-570(The)-376(rank)-375(of)]TJ/F11 9.9626 Tf 274.03 0 Td [(x)]TJ/F8 9.9626 Tf 9.432 0 Td [(m)28(ust)-376(b)-27(e)]TJ -283.462 -11.956 Td [(the)-333(same)-334(of)]TJ/F11 9.9626 Tf 53.466 0 Td [(y)]TJ/F8 9.9626 Tf 5.242 0 Td [(.)]TJ + [(.)-570(The)-376(rank)-375(of)]TJ/F11 9.9626 Tf 274.031 0 Td [(x)]TJ/F8 9.9626 Tf 9.432 0 Td [(m)28(ust)-375(b)-28(e)]TJ -283.463 -11.955 Td [(the)-333(same)-334(of)]TJ/F11 9.9626 Tf 53.467 0 Td [(y)]TJ/F8 9.9626 Tf 5.242 0 Td [(.)]TJ 0 g 0 G -/F27 9.9626 Tf -83.615 -18.428 Td [(y)]TJ +/F27 9.9626 Tf -83.615 -20.33 Td [(b)-32(eta)]TJ 0 g 0 G -/F8 9.9626 Tf 11.028 0 Td [(the)-333(lo)-28(cal)-333(p)-28(ortion)-333(of)-334(global)-333(dense)-333(matrix)]TJ/F11 9.9626 Tf 176.118 0 Td [(y)]TJ/F8 9.9626 Tf 5.242 0 Td [(.)]TJ -167.481 -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 [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-255(as:)-405(a)-255(rank)-254(one)-255(or)-255(t)28(w)27(o)-254(arra)27(y)-254(or)-255(an)-255(ob)-55(jec)-1(t)-254(of)-255(t)28(yp)-28(e)]TJ +/F8 9.9626 Tf 26.94 0 Td [(the)-333(scalar)]TJ/F11 9.9626 Tf 45.469 0 Td [(\014)]TJ/F8 9.9626 Tf 6.161 0 Td [(.)]TJ -53.663 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.378 0 Td [(global)]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 [(in)]TJ/F8 9.9626 Tf 9.548 0 Td [(.)]TJ -43.033 -11.956 Td [(Sp)-28(eci\014ed)-333(as:)-444(a)-334(n)28(um)28(b)-28(er)-333(of)-334(the)-333(data)-333(t)28(yp)-28(e)-334(in)1(dicate)-1(d)-333(in)-333(T)83(able)]TJ 0 0 1 rg 0 0 1 RG -/F30 9.9626 Tf 244.743 0 Td [(psb)]TJ + [-333(1)]TJ +0 g 0 G + [(.)]TJ +0 g 0 G +/F27 9.9626 Tf -24.907 -20.329 Td [(y)]TJ +0 g 0 G +/F8 9.9626 Tf 11.028 0 Td [(the)-333(lo)-28(cal)-333(p)-28(ortion)-333(of)-334(the)-333(global)-333(dense)-334(matrix)]TJ/F11 9.9626 Tf 193.276 0 Td [(y)]TJ/F8 9.9626 Tf 5.242 0 Td [(.)]TJ -184.639 -11.956 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 [(inout)]TJ/F8 9.9626 Tf 26.097 0 Td [(.)]TJ -59.582 -11.955 Td [(Sp)-28(eci\014ed)-255(as:)-405(a)-255(rank)-254(one)-255(or)-255(t)28(w)28(o)-255(arra)28(y)-255(or)-255(an)-255(ob)-55(ject)-255(of)-255(t)28(yp)-28(e)]TJ +0 0 1 rg 0 0 1 RG +/F30 9.9626 Tf 244.742 0 Td [(psb)]TJ ET q -1 0 0 1 385.864 295.361 cm +1 0 0 1 436.673 176.72 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 389.002 295.162 Td [(T)]TJ +/F30 9.9626 Tf 439.811 176.521 Td [(T)]TJ ET q -1 0 0 1 394.86 295.361 cm +1 0 0 1 445.669 176.72 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 397.998 295.162 Td [(vect)]TJ +/F30 9.9626 Tf 448.807 176.521 Td [(vect)]TJ ET q -1 0 0 1 419.547 295.361 cm +1 0 0 1 470.356 176.72 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 422.685 295.162 Td [(type)]TJ +/F30 9.9626 Tf 473.495 176.521 Td [(type)]TJ 0 g 0 G -/F8 9.9626 Tf -297.883 -11.955 Td [(con)28(taining)-378(n)27(um)28(b)-28(ers)-378(of)-378(t)28(yp)-28(e)-378(sp)-28(eci\014ed)-378(in)-379(T)84(able)]TJ +/F8 9.9626 Tf -297.884 -11.955 Td [(con)28(taining)-334(n)27(u)1(m)27(b)-27(e)-1(r)1(s)-335(of)-334(the)-334(t)28(yp)-28(e)-334(indicated)-334(in)-334(T)83(able)]TJ 0 0 1 rg 0 0 1 RG - [-378(3)]TJ + [-334(1)]TJ 0 g 0 G - [(.)-580(The)-378(rank)-378(of)]TJ/F11 9.9626 Tf 274.422 0 Td [(y)]TJ/F8 9.9626 Tf 9.01 0 Td [(m)28(ust)-379(b)-27(e)]TJ -283.432 -11.956 Td [(the)-333(same)-334(of)]TJ/F11 9.9626 Tf 53.466 0 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(.)]TJ + [(.)-447(The)-334(rank)-335(of)]TJ/F11 9.9626 Tf 288.869 0 Td [(y)]TJ/F8 9.9626 Tf 8.572 0 Td [(m)28(ust)]TJ -297.441 -11.955 Td [(b)-28(e)-333(the)-333(s)-1(ame)-333(of)]TJ/F11 9.9626 Tf 67.027 0 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(.)]TJ 0 g 0 G -/F27 9.9626 Tf -84.067 -18.428 Td [(desc)]TJ +/F27 9.9626 Tf -97.627 -20.33 Td [(desc)]TJ ET q -1 0 0 1 121.81 253.022 cm +1 0 0 1 172.619 132.48 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 125.247 252.823 Td [(a)]TJ +/F27 9.9626 Tf 176.057 132.281 Td [(a)]TJ 0 g 0 G -/F8 9.9626 Tf 10.551 0 Td [(con)28(tains)-334(d)1(ata)-334(structures)-333(for)-333(com)-1(m)28(unications.)]TJ -10.996 -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 [(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(ob)-55(ject)-334(of)-333(t)28(yp)-28(e)]TJ +/F8 9.9626 Tf 10.55 0 Td [(con)28(tains)-334(data)-333(structures)-333(for)-333(c)-1(omm)28(unications.)]TJ -10.996 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ +0 g 0 G +/F8 9.9626 Tf 109.589 -29.888 Td [(30)]TJ +0 g 0 G +ET + +endstream +endobj +1034 0 obj +<< +/Length 2659 +>> +stream +0 g 0 G +0 g 0 G +BT +/F8 9.9626 Tf 124.802 706.129 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(an)-333(ob)-55(ject)-334(of)-333(t)28(yp)-28(e)]TJ 0 0 1 rg 0 0 1 RG /F30 9.9626 Tf 135.658 0 Td [(psb)]TJ ET q -1 0 0 1 276.779 205.202 cm +1 0 0 1 276.779 682.418 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 279.917 205.003 Td [(desc)]TJ +/F30 9.9626 Tf 279.917 682.219 Td [(desc)]TJ ET q -1 0 0 1 301.466 205.202 cm +1 0 0 1 301.466 682.418 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 304.604 205.003 Td [(type)]TJ +/F30 9.9626 Tf 304.604 682.219 Td [(type)]TJ 0 g 0 G /F8 9.9626 Tf 20.922 0 Td [(.)]TJ 0 g 0 G -/F27 9.9626 Tf -225.631 -18.429 Td [(On)-383(Return)]TJ +/F27 9.9626 Tf -225.631 -21.918 Td [(On)-383(Return)]TJ 0 g 0 G 0 g 0 G - 0 -18.428 Td [(res)]TJ + 0 -19.926 Td [(y)]TJ 0 g 0 G -/F8 9.9626 Tf 19.47 0 Td [(is)-333(the)-334(dot)-333(pro)-28(duct)-333(of)-333(v)27(ectors)]TJ/F11 9.9626 Tf 127.467 0 Td [(x)]TJ/F8 9.9626 Tf 9.015 0 Td [(and)]TJ/F11 9.9626 Tf 19.372 0 Td [(y)]TJ/F8 9.9626 Tf 5.242 0 Td [(.)]TJ -155.659 -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 [(Sp)-28(eci\014ed)-357(as)-1(:)-493(a)-357(n)27(um)28(b)-28(er)-357(or)-358(a)-358(rank-one)-358(ar)1(ra)27(y)-357(of)-358(the)-358(data)-358(t)28(yp)-27(e)-358(indicated)-358(in)]TJ 0 -11.955 Td [(T)83(able)]TJ +/F8 9.9626 Tf 11.028 0 Td [(the)-333(lo)-28(cal)-333(p)-28(ortion)-333(of)-334(result)-333(submatrix)]TJ/F11 9.9626 Tf 162.364 0 Td [(y)]TJ/F8 9.9626 Tf 5.242 0 Td [(.)]TJ -153.727 -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.955 Td [(Sp)-28(eci\014ed)-255(as:)-405(a)-255(rank)-254(one)-255(or)-255(t)28(w)27(o)-254(arra)27(y)-254(or)-255(an)-255(ob)-55(jec)-1(t)-254(of)-255(t)28(yp)-28(e)]TJ 0 0 1 rg 0 0 1 RG - [-333(2)]TJ -0 g 0 G - [(.)]TJ -0 g 0 G - 141.968 -29.888 Td [(33)]TJ -0 g 0 G +/F30 9.9626 Tf 244.743 0 Td [(psb)]TJ ET - -endstream -endobj -1025 0 obj -<< -/Length 625 ->> -stream +q +1 0 0 1 385.864 592.754 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +Q +BT +/F30 9.9626 Tf 389.002 592.555 Td [(T)]TJ +ET +q +1 0 0 1 394.86 592.754 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +Q +BT +/F30 9.9626 Tf 397.998 592.555 Td [(vect)]TJ +ET +q +1 0 0 1 419.547 592.754 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +Q +BT +/F30 9.9626 Tf 422.685 592.555 Td [(type)]TJ 0 g 0 G +/F8 9.9626 Tf -297.883 -11.955 Td [(con)28(taining)-333(n)27(um)28(b)-28(ers)-333(of)-333(the)-334(t)28(yp)-28(e)-333(indicated)-333(in)-333(T)83(able)]TJ +0 0 1 rg 0 0 1 RG + [-333(1)]TJ 0 g 0 G + [(.)]TJ 0 g 0 G -BT -/F27 9.9626 Tf 150.705 706.129 Td [(info)]TJ +/F27 9.9626 Tf -24.907 -19.926 Td [(info)]TJ 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 +/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 -567.87 Td [(34)]TJ + 141.968 -422.416 Td [(31)]TJ 0 g 0 G ET endstream endobj -1032 0 obj +1044 0 obj << -/Length 6858 +/Length 7709 >> stream 0 g 0 G 0 g 0 G BT -/F16 11.9552 Tf 99.895 706.129 Td [(psb)]TJ +/F16 11.9552 Tf 150.705 706.129 Td [(4.2)-1125(psb)]TJ ET q -1 0 0 1 120.951 706.328 cm +1 0 0 1 202.396 706.328 cm []0 d 0 J 0.398 w 0 0 m 4.035 0 l S Q BT -/F16 11.9552 Tf 124.986 706.129 Td [(normi)-375(|)-375(In\014nit)31(y-Norm)-375(of)-375(V)94(ector)]TJ/F8 9.9626 Tf -25.091 -19.477 Td [(This)-333(function)-334(computes)-333(the)-333(in\014nit)28(y-norm)-334(of)-333(a)-333(v)27(ector)]TJ/F11 9.9626 Tf 233.182 0 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(.)]TJ -238.876 -11.955 Td [(If)]TJ/F11 9.9626 Tf 9.963 0 Td [(x)]TJ/F8 9.9626 Tf 9.015 0 Td [(is)-333(a)-334(real)-333(v)28(ector)-334(it)-333(computes)-333(in\014nit)28(y)-334(norm)-333(as:)]TJ/F11 9.9626 Tf 115.269 -23.087 Td [(amax)]TJ/F14 9.9626 Tf 27.741 0 Td [(\040)]TJ/F8 9.9626 Tf 12.73 0 Td [(max)]TJ/F10 6.9738 Tf 7.861 -6.275 Td [(i)]TJ/F14 9.9626 Tf 12.341 6.275 Td [(j)]TJ/F11 9.9626 Tf 2.767 0 Td [(x)]TJ/F10 6.9738 Tf 5.694 -1.494 Td [(i)]TJ/F14 9.9626 Tf 3.317 1.494 Td [(j)]TJ/F8 9.9626 Tf -206.698 -26.317 Td [(else)-333(if)]TJ/F11 9.9626 Tf 28.007 0 Td [(x)]TJ/F8 9.9626 Tf 9.014 0 Td [(is)-333(a)-334(complex)-333(v)28(ector)-334(then)-333(it)-333(computes)-334(the)-333(in\014nit)28(y-norm)-333(as:)]TJ/F11 9.9626 Tf 61.447 -23.087 Td [(amax)]TJ/F14 9.9626 Tf 27.74 0 Td [(\040)]TJ/F8 9.9626 Tf 12.73 0 Td [(max)]TJ/F10 6.9738 Tf 7.862 -6.275 Td [(i)]TJ/F8 9.9626 Tf 12.34 6.275 Td [(\050)]TJ/F14 9.9626 Tf 3.875 0 Td [(j)]TJ/F11 9.9626 Tf 2.767 0 Td [(r)-28(e)]TJ/F8 9.9626 Tf 9.411 0 Td [(\050)]TJ/F11 9.9626 Tf 3.874 0 Td [(x)]TJ/F10 6.9738 Tf 5.694 -1.494 Td [(i)]TJ/F8 9.9626 Tf 3.317 1.494 Td [(\051)]TJ/F14 9.9626 Tf 3.874 0 Td [(j)]TJ/F8 9.9626 Tf 4.981 0 Td [(+)]TJ/F14 9.9626 Tf 9.963 0 Td [(j)]TJ/F11 9.9626 Tf 2.767 0 Td [(im)]TJ/F8 9.9626 Tf 12.18 0 Td [(\050)]TJ/F11 9.9626 Tf 3.874 0 Td [(x)]TJ/F10 6.9738 Tf 5.694 -1.494 Td [(i)]TJ/F8 9.9626 Tf 3.317 1.494 Td [(\051)]TJ/F14 9.9626 Tf 3.874 0 Td [(j)]TJ/F8 9.9626 Tf 2.768 0 Td [(\051)]TJ +/F16 11.9552 Tf 206.431 706.129 Td [(gedot)-375(|)-375(Dot)-375(Pro)-31(duct)]TJ/F8 9.9626 Tf -55.726 -18.389 Td [(This)-333(function)-334(computes)-333(dot)-333(pro)-28(duct)-333(b)-28(et)28(w)28(e)-1(en)-333(t)28(w)28(o)-334(v)28(ectors)]TJ/F11 9.9626 Tf 252.332 0 Td [(x)]TJ/F8 9.9626 Tf 9.015 0 Td [(and)]TJ/F11 9.9626 Tf 19.371 0 Td [(y)]TJ/F8 9.9626 Tf 5.242 0 Td [(.)]TJ -285.96 -11.956 Td [(If)]TJ/F11 9.9626 Tf 9.963 0 Td [(x)]TJ/F8 9.9626 Tf 9.014 0 Td [(and)]TJ/F11 9.9626 Tf 19.372 0 Td [(y)]TJ/F8 9.9626 Tf 8.563 0 Td [(are)-333(real)-334(v)28(ectors)-333(it)-334(computes)-333(dot-pro)-28(duct)-333(as:)]TJ/F11 9.9626 Tf 101.783 -21.289 Td [(dot)]TJ/F14 9.9626 Tf 16.379 0 Td [(\040)]TJ/F11 9.9626 Tf 12.73 0 Td [(x)]TJ/F10 6.9738 Tf 5.694 4.113 Td [(T)]TJ/F11 9.9626 Tf 6.276 -4.113 Td [(y)]TJ/F8 9.9626 Tf -189.774 -21.29 Td [(Else)-333(if)]TJ/F11 9.9626 Tf 30.358 0 Td [(x)]TJ/F8 9.9626 Tf 9.015 0 Td [(and)]TJ/F11 9.9626 Tf 19.372 0 Td [(y)]TJ/F8 9.9626 Tf 8.563 0 Td [(are)-333(complex)-334(v)28(ectors)-333(then)-334(it)-333(computes)-333(dot-pro)-28(duct)-333(as:)]TJ/F11 9.9626 Tf 80.747 -21.29 Td [(dot)]TJ/F14 9.9626 Tf 16.379 0 Td [(\040)]TJ/F11 9.9626 Tf 12.73 0 Td [(x)]TJ/F10 6.9738 Tf 5.694 4.113 Td [(H)]TJ/F11 9.9626 Tf 7.556 -4.113 Td [(y)]TJ 0 g 0 G 0 g 0 G -/F30 9.9626 Tf -241.37 -26.901 Td [(psb_geamax\050x,)-525(desc_a,)-525(info)-525([,global]\051)]TJ 0 -11.956 Td [(psb_normi\050x,)-525(desc_a,)-525(info)-525([,global]\051)]TJ +/F30 9.9626 Tf -190.414 -21.29 Td [(psb_gedot\050x,)-525(y,)-525(desc_a,)-525(info)-525([,global]\051)]TJ 0 g 0 G 0 g 0 G 0 g 0 G ET q -1 0 0 1 129.083 536.097 cm -[]0 d 0 J 0.398 w 0 0 m 285.336 0 l S +1 0 0 1 234.474 567.173 cm +[]0 d 0 J 0.398 w 0 0 m 176.173 0 l S Q BT -/F11 9.9626 Tf 135.06 527.529 Td [(amax)-7677(x)]TJ/F27 9.9626 Tf 221.863 0 Td [(F)96(unction)]TJ +/F11 9.9626 Tf 240.452 558.606 Td [(dot)]TJ/F8 9.9626 Tf 13.612 0 Td [(,)]TJ/F11 9.9626 Tf 6.088 0 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(,)]TJ/F11 9.9626 Tf 6.088 0 Td [(y)]TJ/F27 9.9626 Tf 88.927 0 Td [(F)96(unction)]TJ ET q -1 0 0 1 129.083 523.743 cm -[]0 d 0 J 0.398 w 0 0 m 285.336 0 l S +1 0 0 1 234.474 554.82 cm +[]0 d 0 J 0.398 w 0 0 m 176.173 0 l S Q BT -/F8 9.9626 Tf 135.06 515.175 Td [(Short)-333(Precision)-334(Real)-1200(Short)-333(Precision)-333(Real)-3103(psb)]TJ +/F8 9.9626 Tf 240.452 546.252 Td [(Short)-333(Precision)-334(Real)-3102(psb)]TJ ET q -1 0 0 1 372.52 515.374 cm +1 0 0 1 376.459 546.451 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 375.509 515.175 Td [(geamax)]TJ -240.449 -11.955 Td [(Long)-333(Precision)-334(Real)-1411(Long)-333(Precision)-333(Re)-1(al)-3313(psb)]TJ +/F8 9.9626 Tf 379.447 546.252 Td [(gedot)]TJ -138.995 -11.955 Td [(Long)-333(Precision)-334(Real)-3314(p)1(s)-1(b)]TJ ET q -1 0 0 1 372.52 503.419 cm +1 0 0 1 376.459 534.496 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 375.509 503.22 Td [(geamax)]TJ -240.449 -11.955 Td [(Short)-333(Precision)-334(Real)-1200(Short)-333(Precision)-333(Complex)-1200(psb)]TJ +/F8 9.9626 Tf 379.447 534.297 Td [(gedot)]TJ -138.995 -11.955 Td [(Short)-333(Precision)-334(Complex)-1200(psb)]TJ ET q -1 0 0 1 372.52 491.464 cm +1 0 0 1 376.459 522.541 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 375.509 491.265 Td [(geamax)]TJ -240.449 -11.955 Td [(Long)-333(Precision)-334(Real)-1411(Long)-333(Precision)-333(Com)-1(p)1(lex)-1412(psb)]TJ +/F8 9.9626 Tf 379.447 522.342 Td [(gedot)]TJ -138.995 -11.956 Td [(Long)-333(Precision)-334(Complex)-1411(psb)]TJ ET q -1 0 0 1 372.52 479.509 cm +1 0 0 1 376.459 510.586 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 375.509 479.31 Td [(geamax)]TJ +/F8 9.9626 Tf 379.447 510.386 Td [(gedot)]TJ ET q -1 0 0 1 129.083 475.524 cm -[]0 d 0 J 0.398 w 0 0 m 285.336 0 l S +1 0 0 1 234.474 506.601 cm +[]0 d 0 J 0.398 w 0 0 m 176.173 0 l S Q 0 g 0 G BT -/F8 9.9626 Tf 228.067 447.485 Td [(T)83(able)-333(4:)-444(Data)-334(t)28(yp)-28(es)]TJ +/F8 9.9626 Tf 278.877 478.561 Td [(T)83(able)-333(2:)-444(Data)-334(t)28(yp)-28(es)]TJ 0 g 0 G 0 g 0 G 0 g 0 G -/F27 9.9626 Tf -128.172 -36.518 Td [(T)32(yp)-32(e:)]TJ +/F27 9.9626 Tf -128.172 -32.717 Td [(T)32(yp)-32(e:)]TJ 0 g 0 G /F8 9.9626 Tf 33.797 0 Td [(Sync)28(hronous.)]TJ 0 g 0 G -/F27 9.9626 Tf -33.797 -22.263 Td [(On)-383(En)32(try)]TJ +/F27 9.9626 Tf -33.797 -19.674 Td [(On)-383(En)32(try)]TJ 0 g 0 G 0 g 0 G - 0 -22.263 Td [(x)]TJ + 0 -19.674 Td [(x)]TJ 0 g 0 G -/F8 9.9626 Tf 11.028 0 Td [(the)-333(lo)-28(cal)-333(p)-28(ortion)-333(of)-334(global)-333(dense)-333(matrix)]TJ/F11 9.9626 Tf 176.118 0 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(.)]TJ -167.933 -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 [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-255(as:)-405(a)-255(rank)-254(one)-255(or)-255(t)28(w)27(o)-254(arra)27(y)-254(or)-255(an)-255(ob)-55(jec)-1(t)-254(of)-255(t)28(yp)-28(e)]TJ +/F8 9.9626 Tf 11.028 0 Td [(the)-333(lo)-28(cal)-333(p)-28(ortion)-333(of)-334(global)-333(dense)-333(matrix)]TJ/F11 9.9626 Tf 176.118 0 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(.)]TJ -167.933 -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 [(in)]TJ/F8 9.9626 Tf 9.548 0 Td [(.)]TJ -43.033 -11.956 Td [(Sp)-28(eci\014ed)-255(as:)-405(a)-255(rank)-254(one)-255(or)-255(t)28(w)28(o)-255(arra)28(y)-255(or)-255(an)-255(ob)-55(ject)-255(of)-255(t)28(yp)-28(e)]TJ 0 0 1 rg 0 0 1 RG -/F30 9.9626 Tf 244.743 0 Td [(psb)]TJ +/F30 9.9626 Tf 244.742 0 Td [(psb)]TJ ET q -1 0 0 1 385.864 318.82 cm +1 0 0 1 436.673 358.875 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 389.002 318.621 Td [(T)]TJ +/F30 9.9626 Tf 439.811 358.675 Td [(T)]TJ ET q -1 0 0 1 394.86 318.82 cm +1 0 0 1 445.669 358.875 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 397.998 318.621 Td [(vect)]TJ +/F30 9.9626 Tf 448.807 358.675 Td [(vect)]TJ ET q -1 0 0 1 419.547 318.82 cm +1 0 0 1 470.356 358.875 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 422.685 318.621 Td [(type)]TJ +/F30 9.9626 Tf 473.495 358.675 Td [(type)]TJ 0 g 0 G -/F8 9.9626 Tf -297.883 -11.956 Td [(con)28(taining)-333(n)27(um)28(b)-28(ers)-333(of)-333(t)28(yp)-28(e)-334(sp)-27(eci\014ed)-334(in)-333(T)83(able)]TJ +/F8 9.9626 Tf -297.884 -11.955 Td [(con)28(taining)-375(n)27(um)28(b)-28(ers)-375(of)-375(t)28(yp)-28(e)-375(sp)-28(eci\014ed)-375(in)-375(T)83(able)]TJ 0 0 1 rg 0 0 1 RG - [-333(4)]TJ + [-375(2)]TJ 0 g 0 G - [(.)]TJ + [(.)-570(The)-376(rank)-375(of)]TJ/F11 9.9626 Tf 274.031 0 Td [(x)]TJ/F8 9.9626 Tf 9.432 0 Td [(m)28(ust)-375(b)-28(e)]TJ -283.463 -11.955 Td [(the)-333(same)-334(of)]TJ/F11 9.9626 Tf 53.467 0 Td [(y)]TJ/F8 9.9626 Tf 5.242 0 Td [(.)]TJ 0 g 0 G -/F27 9.9626 Tf -24.907 -22.262 Td [(desc)]TJ -ET +/F27 9.9626 Tf -83.615 -19.674 Td [(y)]TJ +0 g 0 G +/F8 9.9626 Tf 11.028 0 Td [(the)-333(lo)-28(cal)-333(p)-28(ortion)-333(of)-334(global)-333(dense)-333(matrix)]TJ/F11 9.9626 Tf 176.118 0 Td [(y)]TJ/F8 9.9626 Tf 5.242 0 Td [(.)]TJ -167.481 -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 [(in)]TJ/F8 9.9626 Tf 9.548 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-255(as:)-405(a)-255(rank)-254(one)-255(or)-255(t)28(w)28(o)-255(arra)28(y)-255(or)-255(an)-255(ob)-55(ject)-255(of)-255(t)28(yp)-28(e)]TJ +0 0 1 rg 0 0 1 RG +/F30 9.9626 Tf 244.742 0 Td [(psb)]TJ +ET +q +1 0 0 1 436.673 267.47 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +Q +BT +/F30 9.9626 Tf 439.811 267.27 Td [(T)]TJ +ET +q +1 0 0 1 445.669 267.47 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +Q +BT +/F30 9.9626 Tf 448.807 267.27 Td [(vect)]TJ +ET +q +1 0 0 1 470.356 267.47 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +Q +BT +/F30 9.9626 Tf 473.495 267.27 Td [(type)]TJ +0 g 0 G +/F8 9.9626 Tf -297.884 -11.955 Td [(con)28(taining)-378(n)27(um)28(b)-28(ers)-378(of)-378(t)28(yp)-28(e)-378(sp)-28(eci\014ed)-378(in)-379(T)84(able)]TJ +0 0 1 rg 0 0 1 RG + [-378(2)]TJ +0 g 0 G + [(.)-580(The)-378(rank)-378(of)]TJ/F11 9.9626 Tf 274.422 0 Td [(y)]TJ/F8 9.9626 Tf 9.011 0 Td [(m)28(ust)-378(b)-28(e)]TJ -283.433 -11.955 Td [(the)-333(same)-334(of)]TJ/F11 9.9626 Tf 53.467 0 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(.)]TJ +0 g 0 G +/F27 9.9626 Tf -84.067 -19.674 Td [(desc)]TJ +ET q -1 0 0 1 121.81 284.602 cm +1 0 0 1 172.619 223.885 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 125.247 284.403 Td [(a)]TJ +/F27 9.9626 Tf 176.057 223.686 Td [(a)]TJ 0 g 0 G -/F8 9.9626 Tf 10.551 0 Td [(con)28(tains)-334(d)1(ata)-334(structures)-333(for)-333(com)-1(m)28(unications.)]TJ -10.996 -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(an)-333(ob)-55(ject)-334(of)-333(t)28(yp)-28(e)]TJ +/F8 9.9626 Tf 10.55 0 Td [(con)28(tains)-334(data)-333(structures)-333(for)-333(c)-1(omm)28(unications.)]TJ -10.996 -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 [(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(ob)-55(ject)-334(of)-333(t)28(yp)-28(e)]TJ 0 0 1 rg 0 0 1 RG -/F30 9.9626 Tf 135.658 0 Td [(psb)]TJ +/F30 9.9626 Tf 135.659 0 Td [(psb)]TJ ET q -1 0 0 1 276.779 236.781 cm +1 0 0 1 327.588 176.064 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 279.917 236.582 Td [(desc)]TJ +/F30 9.9626 Tf 330.727 175.865 Td [(desc)]TJ ET q -1 0 0 1 301.466 236.781 cm +1 0 0 1 352.275 176.064 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 304.604 236.582 Td [(type)]TJ -0 g 0 G -/F8 9.9626 Tf 20.922 0 Td [(.)]TJ +/F30 9.9626 Tf 355.414 175.865 Td [(type)]TJ 0 g 0 G -/F27 9.9626 Tf -225.631 -22.263 Td [(global)]TJ -0 g 0 G -/F8 9.9626 Tf 34.738 0 Td [(Sp)-28(eci\014es)-357(whether)-357(the)-357(computation)-358(shoul)1(d)-358(include)-357(the)-357(global)-357(reduction)]TJ -9.831 -11.955 Td [(across)-333(all)-334(pro)-27(ce)-1(sses.)]TJ 0 -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 40.577 0 Td [(.)]TJ -70.188 -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(logical)-333(scalar.)-445(Default:)]TJ/F30 9.9626 Tf 168.812 0 Td [(global=.true.)]TJ +/F8 9.9626 Tf 20.921 0 Td [(.)]TJ 0 g 0 G -/F27 9.9626 Tf -193.719 -34.217 Td [(On)-383(Return)]TJ +/F27 9.9626 Tf -225.63 -19.674 Td [(global)]TJ 0 g 0 G +/F8 9.9626 Tf 34.737 0 Td [(Sp)-28(eci\014es)-357(whether)-357(the)-357(co)-1(mpu)1(tation)-358(should)-357(include)-357(the)-357(global)-357(reduction)]TJ -9.831 -11.955 Td [(across)-333(all)-334(pro)-27(c)-1(esses.)]TJ 0 -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 [(optional)]TJ/F8 9.9626 Tf 40.576 0 Td [(.)]TJ 0 g 0 G -/F8 9.9626 Tf 166.875 -29.888 Td [(35)]TJ + 71.78 -29.888 Td [(32)]TJ 0 g 0 G ET endstream endobj -1037 0 obj +1050 0 obj << -/Length 4563 +/Length 5125 >> stream 0 g 0 G 0 g 0 G -0 g 0 G BT -/F27 9.9626 Tf 150.705 706.129 Td [(F)96(unction)-384(v)64(alue)]TJ +/F8 9.9626 Tf 124.802 706.129 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(logical)-333(scalar.)-445(Default:)]TJ/F30 9.9626 Tf 168.812 0 Td [(global=.true.)]TJ 0 g 0 G -/F8 9.9626 Tf 78.386 0 Td [(is)-333(the)-334(in\014nit)28(y)-333(norm)-333(of)-334(v)28(ector)]TJ/F11 9.9626 Tf 128.795 0 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(.)]TJ -187.969 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 31.842 0 Td [(global)]TJ/F8 9.9626 Tf 32.002 0 Td [(unless)-225(the)-226(optional)-225(v)55(ari)1(able)]TJ/F30 9.9626 Tf 118.433 0 Td [(global=.false.)]TJ/F8 9.9626 Tf 75.471 0 Td [(has)-225(b)-28(een)-226(sp)-27(ec-)]TJ -257.748 -11.955 Td [(i\014ed)]TJ 0 -11.956 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(long)-333(precision)-334(r)1(e)-1(al)-333(n)28(um)28(b)-28(er.)]TJ +/F27 9.9626 Tf -193.719 -31.881 Td [(On)-383(Return)]TJ 0 g 0 G -/F27 9.9626 Tf -24.906 -19.925 Td [(info)]TJ 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/F16 11.9552 Tf -24.906 -21.917 Td [(Notes)]TJ + 0 -19.925 Td [(F)96(unction)-384(v)64(alue)]TJ 0 g 0 G -/F8 9.9626 Tf 12.176 -19.926 Td [(1.)]TJ +/F8 9.9626 Tf 78.387 0 Td [(is)-333(the)-334(dot)-333(pro)-28(duct)-333(of)-333(v)28(ec)-1(tor)1(s)]TJ/F11 9.9626 Tf 127.466 0 Td [(x)]TJ/F8 9.9626 Tf 9.015 0 Td [(and)]TJ/F11 9.9626 Tf 19.372 0 Td [(y)]TJ/F8 9.9626 Tf 5.242 0 Td [(.)]TJ -214.575 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 31.841 0 Td [(global)]TJ/F8 9.9626 Tf 32.002 0 Td [(unless)-225(the)-226(optional)-225(v)55(ariabl)1(e)]TJ/F30 9.9626 Tf 118.434 0 Td [(global=.false.)]TJ/F8 9.9626 Tf 75.47 0 Td [(has)-225(b)-28(een)-226(sp)-27(ec)-1(-)]TJ -257.747 -11.955 Td [(i\014ed)]TJ 0 -11.956 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(n)28(um)28(b)-28(er)-333(of)-334(the)-333(data)-333(t)28(yp)-28(e)-334(ind)1(ic)-1(ated)-333(in)-333(T)83(able)]TJ +0 0 1 rg 0 0 1 RG + [-333(2)]TJ +0 g 0 G + [(.)]TJ +0 g 0 G +/F27 9.9626 Tf -24.907 -19.925 Td [(info)]TJ +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.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(detecte)-1(d)1(.)]TJ/F16 11.9552 Tf -24.907 -21.917 Td [(Notes)]TJ +0 g 0 G +/F8 9.9626 Tf 12.177 -19.926 Td [(1.)]TJ 0 g 0 G - [-500(The)-241(computation)-240(of)-241(a)-241(gl)1(obal)-241(result)-241(requires)-240(a)-241(global)-241(comm)28(unication,)-259(whic)28(h)]TJ 12.73 -11.955 Td [(en)28(tails)-421(a)-420(s)-1(i)1(gni\014can)27(t)-420(o)28(v)27(erhead.)-706(It)-420(ma)27(y)-420(b)-28(e)-421(necessary)-420(and/or)-421(advisable)-420(to)]TJ 0 -11.955 Td [(compute)-395(m)28(ultiple)-395(norms)-395(at)-395(the)-395(same)-395(time;)-426(in)-395(this)-395(case,)-410(it)-395(is)-395(p)-28(ossible)-395(to)]TJ 0 -11.955 Td [(impro)28(v)28(e)-334(the)-333(run)28(time)-334(e\016ciency)-333(b)28(y)-334(using)-333(the)-333(follo)28(wing)-334(sc)28(heme:)]TJ 25.19 -17.933 Td [(v)-128(r)-129(e)-128(s)-259(\050)-130(1)-131(\051)-642(=)-586(p)-75(s)-76(b)]TJ + [-500(The)-241(computation)-240(of)-241(a)-240(global)-241(result)-241(requires)-240(a)-241(global)-241(comm)28(unication,)-259(whic)28(h)]TJ 12.73 -11.955 Td [(en)28(tails)-421(a)-420(signi\014can)27(t)-420(o)28(v)27(erhead.)-706(It)-420(ma)27(y)-420(b)-28(e)-421(necessary)-420(and/or)-421(advisable)-420(to)]TJ 0 -11.955 Td [(compute)-265(m)27(ultiple)-265(dot)-265(pro)-28(ducts)-265(at)-266(the)-265(same)-266(time;)-288(in)-265(this)-265(case,)-279(it)-266(is)-265(p)-28(ossible)]TJ 0 -11.955 Td [(to)-333(impro)27(v)28(e)-333(the)-333(run)27(ti)1(m)-1(e)-333(e\016ciency)-333(b)27(y)-333(using)-333(the)-333(follo)27(wing)-333(sc)28(heme:)]TJ 25.189 -17.933 Td [(v)-128(r)-129(e)-128(s)-259(\050)-131(1)-130(\051)-642(=)-625(p)-115(s)-115(b)]TJ ET q -1 0 0 1 277.899 507.075 cm +1 0 0 1 228.651 443.314 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 281.638 506.876 Td [(g)-75(e)-76(a)-75(m)-76(a)-75(x)-181(\050)-148(x)-43(1)-248(,)-273(d)-113(e)-113(s)-112(c)]TJ +/F8 9.9626 Tf 232.782 443.115 Td [(g)-115(e)-114(d)-115(o)-114(t)-220(\050)-149(x)-43(1)-247(,)-204(y)-43(1)-248(,)-273(d)-113(e)-113(s)-112(c)]TJ ET q -1 0 0 1 367.515 507.075 cm +1 0 0 1 328.66 443.314 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 371.626 506.876 Td [(a)-386(,)-288(i)-127(n)-127(f)-127(o)-415(,)-302(g)-141(l)-142(o)-141(b)-141(a)-141(l)-190(=)-48(.)]TJ/F27 9.9626 Tf 92.223 0 Td [(f)-132(a)-131(l)-132(s)-131(e)]TJ/F8 9.9626 Tf 30.349 0 Td [(.)-178(\051)]TJ -293.397 -11.955 Td [(v)-128(r)-129(e)-128(s)-259(\050)-130(2)-131(\051)-642(=)-586(p)-75(s)-76(b)]TJ +/F8 9.9626 Tf 332.771 443.115 Td [(a)-386(,)-288(i)-127(n)-127(f)-127(o)-415(,)-302(g)-141(l)-142(o)-141(b)-141(a)-141(l)-190(=)-48(.)]TJ/F27 9.9626 Tf 92.224 0 Td [(f)-132(a)-131(l)-132(s)-131(e)]TJ/F8 9.9626 Tf 30.349 0 Td [(.)-178(\051)]TJ -305.353 -11.955 Td [(v)-128(r)-129(e)-128(s)-259(\050)-131(2)-130(\051)-642(=)-625(p)-115(s)-115(b)]TJ ET q -1 0 0 1 277.899 495.12 cm +1 0 0 1 228.651 431.359 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 281.638 494.921 Td [(g)-75(e)-76(a)-75(m)-76(a)-75(x)-181(\050)-148(x)-43(2)-248(,)-273(d)-113(e)-113(s)-112(c)]TJ +/F8 9.9626 Tf 232.782 431.16 Td [(g)-115(e)-114(d)-115(o)-114(t)-220(\050)-149(x)-43(2)-247(,)-204(y)-43(2)-248(,)-273(d)-113(e)-113(s)-112(c)]TJ ET q -1 0 0 1 367.515 495.12 cm +1 0 0 1 328.66 431.359 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 371.626 494.921 Td [(a)-386(,)-288(i)-127(n)-127(f)-127(o)-415(,)-302(g)-141(l)-142(o)-141(b)-141(a)-141(l)-190(=)-48(.)]TJ/F27 9.9626 Tf 92.223 0 Td [(f)-132(a)-131(l)-132(s)-131(e)]TJ/F8 9.9626 Tf 30.349 0 Td [(.)-178(\051)]TJ -293.397 -11.955 Td [(v)-128(r)-129(e)-128(s)-259(\050)-130(3)-131(\051)-642(=)-586(p)-75(s)-76(b)]TJ +/F8 9.9626 Tf 332.771 431.16 Td [(a)-386(,)-288(i)-127(n)-127(f)-127(o)-415(,)-302(g)-141(l)-142(o)-141(b)-141(a)-141(l)-190(=)-48(.)]TJ/F27 9.9626 Tf 92.224 0 Td [(f)-132(a)-131(l)-132(s)-131(e)]TJ/F8 9.9626 Tf 30.349 0 Td [(.)-178(\051)]TJ -305.353 -11.955 Td [(v)-128(r)-129(e)-128(s)-259(\050)-131(3)-130(\051)-642(=)-625(p)-115(s)-115(b)]TJ ET q -1 0 0 1 277.899 483.165 cm +1 0 0 1 228.651 419.404 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 281.638 482.966 Td [(g)-75(e)-76(a)-75(m)-76(a)-75(x)-181(\050)-148(x)-43(3)-248(,)-273(d)-113(e)-113(s)-112(c)]TJ +/F8 9.9626 Tf 232.782 419.205 Td [(g)-115(e)-114(d)-115(o)-114(t)-220(\050)-149(x)-43(3)-247(,)-204(y)-43(3)-248(,)-273(d)-113(e)-113(s)-112(c)]TJ ET q -1 0 0 1 367.515 483.165 cm +1 0 0 1 328.66 419.404 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 371.626 482.966 Td [(a)-386(,)-288(i)-127(n)-127(f)-127(o)-415(,)-302(g)-141(l)-142(o)-141(b)-141(a)-141(l)-190(=)-48(.)]TJ/F27 9.9626 Tf 92.223 0 Td [(f)-132(a)-131(l)-132(s)-131(e)]TJ/F8 9.9626 Tf 30.349 0 Td [(.)-178(\051)]TJ/F27 9.9626 Tf -293.299 -11.955 Td [(c)-138(a)-138(l)-139(l)]TJ/F8 9.9626 Tf 29.101 0 Td [(p)-59(s)-59(b)]TJ +/F8 9.9626 Tf 332.771 419.205 Td [(a)-386(,)-288(i)-127(n)-127(f)-127(o)-415(,)-302(g)-141(l)-142(o)-141(b)-141(a)-141(l)-190(=)-48(.)]TJ/F27 9.9626 Tf 92.224 0 Td [(f)-132(a)-131(l)-132(s)-131(e)]TJ/F8 9.9626 Tf 30.349 0 Td [(.)-178(\051)]TJ/F27 9.9626 Tf -305.255 -11.955 Td [(c)-138(a)-138(l)-139(l)]TJ/F8 9.9626 Tf 29.198 0 Td [(p)-69(s)-69(b)]TJ ET q -1 0 0 1 247.365 471.21 cm +1 0 0 1 196.943 407.449 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 250.944 471.011 Td [(a)-59(m)-59(x)-165(\050)-245(i)-138(c)-139(t)-139(x)-139(t)-439(,)-289(v)-129(r)-128(e)-128(s)-294(\050)-165(1)-165(:)-165(3)-165(\051)-165(\051)]TJ +/F8 9.9626 Tf 200.618 407.25 Td [(s)-69(u)-69(m)-174(\050)-245(i)-139(c)-139(t)-138(x)-139(t)-439(,)-290(v)-128(r)-128(e)-129(s)-293(\050)-165(1)-165(:)-165(3)-165(\051)-166(\051)]TJ 0 g 0 G 0 g 0 G - -75.333 -21.918 Td [(In)-354(th)1(is)-354(w)28(a)28(y)-354(the)-353(global)-354(comm)28(unication,)-359(whic)28(h)-353(for)-354(small)-353(size)-1(s)-353(is)-354(a)-353(latency-)]TJ 0 -11.955 Td [(b)-28(ound)-333(op)-28(eration,)-333(is)-333(in)27(v)28(ok)28(ed)-333(only)-334(once.)]TJ + -75.816 -21.918 Td [(In)-353(this)-354(w)28(a)28(y)-354(the)-353(global)-354(comm)28(unication,)-359(whic)28(h)-353(for)-354(small)-353(sizes)-354(is)-354(a)-353(latency-)]TJ 0 -11.955 Td [(b)-28(ound)-333(op)-28(eration,)-333(is)-333(in)28(v)27(ok)28(ed)-333(only)-333(onc)-1(e.)]TJ 0 g 0 G - 141.968 -346.7 Td [(36)]TJ + 141.968 -282.939 Td [(33)]TJ 0 g 0 G ET endstream endobj -1050 0 obj +1066 0 obj << -/Length 6326 +/Length 8426 >> stream 0 g 0 G 0 g 0 G BT -/F16 11.9552 Tf 99.895 706.129 Td [(psb)]TJ +/F16 11.9552 Tf 150.705 706.129 Td [(4.3)-1125(psb)]TJ ET q -1 0 0 1 120.951 706.328 cm +1 0 0 1 202.396 706.328 cm []0 d 0 J 0.398 w 0 0 m 4.035 0 l S Q BT -/F16 11.9552 Tf 124.986 706.129 Td [(geamaxs)-375(|)-375(Generalized)-375(In\014nit)31(y)-375(Norm)]TJ/F8 9.9626 Tf -25.091 -18.389 Td [(This)-359(subroutine)-359(computes)-360(a)-359(series)-359(of)-359(in\014nit)28(y)-359(norms)-360(on)-359(the)-359(columns)-359(of)-359(a)-360(d)1(e)-1(n)1(s)-1(e)]TJ 0 -11.956 Td [(matrix)]TJ/F11 9.9626 Tf 32.407 0 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(:)]TJ/F11 9.9626 Tf 87.106 -11.955 Td [(r)-28(es)]TJ/F8 9.9626 Tf 14.08 0 Td [(\050)]TJ/F11 9.9626 Tf 3.874 0 Td [(i)]TJ/F8 9.9626 Tf 3.433 0 Td [(\051)]TJ/F14 9.9626 Tf 6.641 0 Td [(\040)]TJ/F8 9.9626 Tf 12.73 0 Td [(max)]TJ/F10 6.9738 Tf 7.069 -6.503 Td [(k)]TJ/F14 9.9626 Tf 13.133 6.503 Td [(j)]TJ/F11 9.9626 Tf 2.768 0 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(\050)]TJ/F11 9.9626 Tf 3.874 0 Td [(k)-31(;)-167(i)]TJ/F8 9.9626 Tf 13.36 0 Td [(\051)]TJ/F14 9.9626 Tf 3.875 0 Td [(j)]TJ +/F16 11.9552 Tf 206.431 706.129 Td [(gedots)-375(|)-375(Generalized)-375(Dot)-375(Pro)-31(duct)]TJ/F8 9.9626 Tf -55.726 -18.389 Td [(This)-392(subroutine)-392(computes)-392(a)-392(series)-392(of)-391(dot)-392(pro)-28(ducts)-392(among)-392(the)-392(columns)-392(of)-391(t)27(w)28(o)]TJ 0 -11.956 Td [(dense)-333(matrices)]TJ/F11 9.9626 Tf 67.109 0 Td [(x)]TJ/F8 9.9626 Tf 9.015 0 Td [(and)]TJ/F11 9.9626 Tf 19.372 0 Td [(y)]TJ/F8 9.9626 Tf 5.242 0 Td [(:)]TJ/F11 9.9626 Tf 23.756 -11.955 Td [(r)-28(es)]TJ/F8 9.9626 Tf 14.08 0 Td [(\050)]TJ/F11 9.9626 Tf 3.875 0 Td [(i)]TJ/F8 9.9626 Tf 3.432 0 Td [(\051)]TJ/F14 9.9626 Tf 6.642 0 Td [(\040)]TJ/F11 9.9626 Tf 12.73 0 Td [(x)]TJ/F8 9.9626 Tf 5.693 0 Td [(\050:)]TJ/F11 9.9626 Tf 6.642 0 Td [(;)-167(i)]TJ/F8 9.9626 Tf 7.86 0 Td [(\051)]TJ/F10 6.9738 Tf 3.875 4.114 Td [(T)]TJ/F11 9.9626 Tf 6.276 -4.114 Td [(y)]TJ/F8 9.9626 Tf 5.242 0 Td [(\050:)]TJ/F11 9.9626 Tf 6.642 0 Td [(;)-167(i)]TJ/F8 9.9626 Tf 7.86 0 Td [(\051)]TJ -215.343 -15.687 Td [(If)-245(the)-245(matrices)-245(are)-245(complex,)-262(then)-245(the)-245(usual)-245(con)28(v)28(en)27(tion)-245(ap)1(plies)-1(,)-262(i.e.)-415(the)-245(conjugate)]TJ 0 -11.955 Td [(transp)-28(ose)-323(of)]TJ/F11 9.9626 Tf 55.836 0 Td [(x)]TJ/F8 9.9626 Tf 8.913 0 Td [(is)-323(used.)-441(If)]TJ/F11 9.9626 Tf 46.365 0 Td [(x)]TJ/F8 9.9626 Tf 8.913 0 Td [(and)]TJ/F11 9.9626 Tf 19.27 0 Td [(y)]TJ/F8 9.9626 Tf 8.461 0 Td [(are)-323(of)-323(rank)-323(one,)-325(then)]TJ/F11 9.9626 Tf 94.211 0 Td [(r)-28(es)]TJ/F8 9.9626 Tf 17.3 0 Td [(is)-323(a)-323(scalar,)-325(else)-324(it)-323(is)]TJ -259.269 -11.955 Td [(a)-333(rank)-334(one)-333(arra)28(y)83(.)]TJ 0 g 0 G 0 g 0 G -/F30 9.9626 Tf -215.738 -25.377 Td [(call)-525(psb_geamaxs\050res,)-525(x,)-525(desc_a,)-525(info\051)]TJ +/F30 9.9626 Tf 0 -18.175 Td [(call)-525(psb_gedots\050res,)-525(x,)-525(y,)-525(desc_a,)-525(info\051)]TJ 0 g 0 G 0 g 0 G 0 g 0 G ET q -1 0 0 1 127.118 614.121 cm -[]0 d 0 J 0.398 w 0 0 m 289.266 0 l S +1 0 0 1 228.797 586.966 cm +[]0 d 0 J 0.398 w 0 0 m 187.526 0 l S Q BT -/F11 9.9626 Tf 133.096 605.553 Td [(r)-28(es)-8770(x)]TJ/F27 9.9626 Tf 221.862 0 Td [(Subroutine)]TJ +/F11 9.9626 Tf 234.775 578.398 Td [(r)-28(es)]TJ/F8 9.9626 Tf 14.08 0 Td [(,)]TJ/F11 9.9626 Tf 6.089 0 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(,)]TJ/F11 9.9626 Tf 6.088 0 Td [(y)]TJ/F27 9.9626 Tf 88.459 0 Td [(Subroutine)]TJ ET q -1 0 0 1 127.118 601.768 cm -[]0 d 0 J 0.398 w 0 0 m 289.266 0 l S +1 0 0 1 228.797 574.612 cm +[]0 d 0 J 0.398 w 0 0 m 187.526 0 l S Q BT -/F8 9.9626 Tf 133.096 593.2 Td [(Short)-333(Precision)-334(Real)-1200(Sh)1(ort)-334(Precision)-333(Real)-3103(psb)]TJ +/F8 9.9626 Tf 234.775 566.045 Td [(Short)-333(Precision)-334(Real)-3102(psb)]TJ ET q -1 0 0 1 370.556 593.399 cm +1 0 0 1 370.782 566.244 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 373.544 593.2 Td [(geamaxs)]TJ -240.448 -11.956 Td [(Long)-333(Precision)-334(Real)-1411(Long)-333(Precision)-333(Real)-3314(psb)]TJ +/F8 9.9626 Tf 373.771 566.045 Td [(gedots)]TJ -138.996 -11.956 Td [(Long)-333(Precision)-334(Real)-3314(psb)]TJ ET q -1 0 0 1 370.556 581.444 cm +1 0 0 1 370.782 554.289 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 373.544 581.244 Td [(geamaxs)]TJ -240.448 -11.955 Td [(Short)-333(Precision)-334(Real)-1200(Sh)1(ort)-334(Precision)-333(Complex)-1200(psb)]TJ +/F8 9.9626 Tf 373.771 554.089 Td [(gedots)]TJ -138.996 -11.955 Td [(Short)-333(Precision)-334(Complex)-1200(psb)]TJ ET q -1 0 0 1 370.556 569.489 cm +1 0 0 1 370.782 542.333 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 373.544 569.289 Td [(geamaxs)]TJ -240.448 -11.955 Td [(Long)-333(Precision)-334(Real)-1411(Long)-333(Precision)-333(Complex)-1412(p)1(s)-1(b)]TJ +/F8 9.9626 Tf 373.771 542.134 Td [(gedots)]TJ -138.996 -11.955 Td [(Long)-333(Precision)-334(Complex)-1411(psb)]TJ ET q -1 0 0 1 370.556 557.533 cm +1 0 0 1 370.782 530.378 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 373.544 557.334 Td [(geamaxs)]TJ +/F8 9.9626 Tf 373.771 530.179 Td [(gedots)]TJ ET q -1 0 0 1 127.118 553.548 cm -[]0 d 0 J 0.398 w 0 0 m 289.266 0 l S +1 0 0 1 228.797 526.393 cm +[]0 d 0 J 0.398 w 0 0 m 187.526 0 l S Q 0 g 0 G BT -/F8 9.9626 Tf 228.067 525.509 Td [(T)83(able)-333(5:)-444(Data)-334(t)28(yp)-28(es)]TJ +/F8 9.9626 Tf 278.877 498.354 Td [(T)83(able)-333(3:)-444(Data)-334(t)28(yp)-28(es)]TJ 0 g 0 G 0 g 0 G 0 g 0 G -/F27 9.9626 Tf -128.172 -33.596 Td [(T)32(yp)-32(e:)]TJ +/F27 9.9626 Tf -128.172 -28.356 Td [(T)32(yp)-32(e:)]TJ 0 g 0 G /F8 9.9626 Tf 33.797 0 Td [(Sync)28(hronous.)]TJ 0 g 0 G -/F27 9.9626 Tf -33.797 -19.925 Td [(On)-383(En)32(try)]TJ +/F27 9.9626 Tf -33.797 -18.428 Td [(On)-383(En)32(try)]TJ 0 g 0 G 0 g 0 G - 0 -19.926 Td [(x)]TJ + 0 -18.429 Td [(x)]TJ 0 g 0 G -/F8 9.9626 Tf 11.028 0 Td [(the)-333(lo)-28(cal)-333(p)-28(ortion)-333(of)-334(global)-333(dense)-333(matrix)]TJ/F11 9.9626 Tf 176.118 0 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(.)]TJ -167.933 -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 [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-255(as:)-405(a)-255(rank)-254(one)-255(or)-255(t)28(w)27(o)-254(arra)27(y)-254(or)-255(an)-255(ob)-55(jec)-1(t)-254(of)-255(t)28(yp)-28(e)]TJ +/F8 9.9626 Tf 11.028 0 Td [(the)-333(lo)-28(cal)-333(p)-28(ortion)-333(of)-334(global)-333(dense)-333(matrix)]TJ/F11 9.9626 Tf 176.118 0 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(.)]TJ -167.933 -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 [(in)]TJ/F8 9.9626 Tf 9.548 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-255(as:)-405(a)-255(rank)-254(one)-255(or)-255(t)28(w)28(o)-255(arra)28(y)-255(or)-255(an)-255(ob)-55(ject)-255(of)-255(t)28(yp)-28(e)]TJ 0 0 1 rg 0 0 1 RG -/F30 9.9626 Tf 244.743 0 Td [(psb)]TJ +/F30 9.9626 Tf 244.742 0 Td [(psb)]TJ ET q -1 0 0 1 385.864 404.441 cm +1 0 0 1 436.673 385.52 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 389.002 404.242 Td [(T)]TJ +/F30 9.9626 Tf 439.811 385.321 Td [(T)]TJ ET q -1 0 0 1 394.86 404.441 cm +1 0 0 1 445.669 385.52 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 397.998 404.242 Td [(vect)]TJ +/F30 9.9626 Tf 448.807 385.321 Td [(vect)]TJ ET q -1 0 0 1 419.547 404.441 cm +1 0 0 1 470.356 385.52 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 422.685 404.242 Td [(type)]TJ +/F30 9.9626 Tf 473.495 385.321 Td [(type)]TJ 0 g 0 G -/F8 9.9626 Tf -297.883 -11.956 Td [(con)28(taining)-333(n)27(um)28(b)-28(ers)-333(of)-333(t)28(yp)-28(e)-334(sp)-27(eci\014ed)-334(in)-333(T)83(able)]TJ +/F8 9.9626 Tf -297.884 -11.955 Td [(con)28(taining)-375(n)27(um)28(b)-28(ers)-375(of)-375(t)28(yp)-28(e)-375(sp)-28(eci\014ed)-375(in)-375(T)83(able)]TJ 0 0 1 rg 0 0 1 RG - [-333(5)]TJ + [-375(3)]TJ 0 g 0 G - [(.)]TJ + [(.)-570(The)-376(rank)-375(of)]TJ/F11 9.9626 Tf 274.031 0 Td [(x)]TJ/F8 9.9626 Tf 9.432 0 Td [(m)28(ust)-375(b)-28(e)]TJ -283.463 -11.956 Td [(the)-333(same)-334(of)]TJ/F11 9.9626 Tf 53.467 0 Td [(y)]TJ/F8 9.9626 Tf 5.242 0 Td [(.)]TJ +0 g 0 G +/F27 9.9626 Tf -83.615 -18.428 Td [(y)]TJ +0 g 0 G +/F8 9.9626 Tf 11.028 0 Td [(the)-333(lo)-28(cal)-333(p)-28(ortion)-333(of)-334(global)-333(dense)-333(matrix)]TJ/F11 9.9626 Tf 176.118 0 Td [(y)]TJ/F8 9.9626 Tf 5.242 0 Td [(.)]TJ -167.481 -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 [(in)]TJ/F8 9.9626 Tf 9.548 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-255(as:)-405(a)-255(rank)-254(one)-255(or)-255(t)28(w)28(o)-255(arra)28(y)-255(or)-255(an)-255(ob)-55(ject)-255(of)-255(t)28(yp)-28(e)]TJ +0 0 1 rg 0 0 1 RG +/F30 9.9626 Tf 244.742 0 Td [(psb)]TJ +ET +q +1 0 0 1 436.673 295.361 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +Q +BT +/F30 9.9626 Tf 439.811 295.162 Td [(T)]TJ +ET +q +1 0 0 1 445.669 295.361 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +Q +BT +/F30 9.9626 Tf 448.807 295.162 Td [(vect)]TJ +ET +q +1 0 0 1 470.356 295.361 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +Q +BT +/F30 9.9626 Tf 473.495 295.162 Td [(type)]TJ +0 g 0 G +/F8 9.9626 Tf -297.884 -11.955 Td [(con)28(taining)-378(n)27(um)28(b)-28(ers)-378(of)-378(t)28(yp)-28(e)-378(sp)-28(eci\014ed)-378(in)-379(T)84(able)]TJ +0 0 1 rg 0 0 1 RG + [-378(3)]TJ 0 g 0 G -/F27 9.9626 Tf -24.907 -19.925 Td [(desc)]TJ + [(.)-580(The)-378(rank)-378(of)]TJ/F11 9.9626 Tf 274.422 0 Td [(y)]TJ/F8 9.9626 Tf 9.011 0 Td [(m)28(ust)-378(b)-28(e)]TJ -283.433 -11.956 Td [(the)-333(same)-334(of)]TJ/F11 9.9626 Tf 53.467 0 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(.)]TJ +0 g 0 G +/F27 9.9626 Tf -84.067 -18.428 Td [(desc)]TJ ET q -1 0 0 1 121.81 372.56 cm +1 0 0 1 172.619 253.022 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 125.247 372.361 Td [(a)]TJ +/F27 9.9626 Tf 176.057 252.823 Td [(a)]TJ 0 g 0 G -/F8 9.9626 Tf 10.551 0 Td [(con)28(tains)-334(d)1(ata)-334(structures)-333(for)-333(com)-1(m)28(unications.)]TJ -10.996 -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 [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.956 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(ob)-55(ject)-334(of)-333(t)28(yp)-28(e)]TJ +/F8 9.9626 Tf 10.55 0 Td [(con)28(tains)-334(data)-333(structures)-333(for)-333(c)-1(omm)28(unications.)]TJ -10.996 -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(an)-333(ob)-55(ject)-334(of)-333(t)28(yp)-28(e)]TJ 0 0 1 rg 0 0 1 RG -/F30 9.9626 Tf 135.658 0 Td [(psb)]TJ +/F30 9.9626 Tf 135.659 0 Td [(psb)]TJ ET q -1 0 0 1 276.779 324.74 cm +1 0 0 1 327.588 205.202 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 279.917 324.54 Td [(desc)]TJ +/F30 9.9626 Tf 330.727 205.003 Td [(desc)]TJ ET q -1 0 0 1 301.466 324.74 cm +1 0 0 1 352.275 205.202 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 304.604 324.54 Td [(type)]TJ +/F30 9.9626 Tf 355.414 205.003 Td [(type)]TJ 0 g 0 G -/F8 9.9626 Tf 20.922 0 Td [(.)]TJ +/F8 9.9626 Tf 20.921 0 Td [(.)]TJ 0 g 0 G -/F27 9.9626 Tf -225.631 -19.925 Td [(On)-383(Return)]TJ +/F27 9.9626 Tf -225.63 -18.429 Td [(On)-383(Return)]TJ 0 g 0 G 0 g 0 G - 0 -19.925 Td [(res)]TJ + 0 -18.428 Td [(res)]TJ 0 g 0 G -/F8 9.9626 Tf 19.47 0 Td [(is)-333(the)-334(in\014nit)28(y)-333(norm)-333(of)-334(the)-333(columns)-333(of)]TJ/F11 9.9626 Tf 166.183 0 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(.)]TJ -166.44 -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.956 Td [(Sp)-28(eci\014ed)-289(as:)-422(a)-289(n)28(um)28(b)-28(er)-289(or)-289(a)-289(ran)1(k-one)-289(arra)27(y)-288(of)-289(long)-289(precision)-289(real)-289(n)28(um)28(b)-28(ers.)]TJ +/F8 9.9626 Tf 19.47 0 Td [(is)-333(the)-334(dot)-333(pro)-28(duct)-333(of)-333(v)28(e)-1(ctors)]TJ/F11 9.9626 Tf 127.466 0 Td [(x)]TJ/F8 9.9626 Tf 9.015 0 Td [(and)]TJ/F11 9.9626 Tf 19.372 0 Td [(y)]TJ/F8 9.9626 Tf 5.242 0 Td [(.)]TJ -155.659 -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 [(Sp)-28(eci\014ed)-358(as:)-493(a)-358(n)28(um)28(b)-28(er)-357(or)-358(a)-358(rank-one)-358(arr)1(a)27(y)-357(of)-358(the)-358(data)-358(t)28(yp)-27(e)-358(indicated)-358(in)]TJ 0 -11.955 Td [(T)83(able)]TJ +0 0 1 rg 0 0 1 RG + [-333(2)]TJ 0 g 0 G -/F27 9.9626 Tf -24.907 -19.925 Td [(info)]TJ + [(.)]TJ 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.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(detecte)-1(d)1(.)]TJ + 141.968 -29.888 Td [(34)]TJ +0 g 0 G +ET + +endstream +endobj +1071 0 obj +<< +/Length 624 +>> +stream +0 g 0 G +0 g 0 G +0 g 0 G +BT +/F27 9.9626 Tf 99.895 706.129 Td [(info)]TJ +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 -90.64 Td [(37)]TJ + 141.968 -567.87 Td [(35)]TJ 0 g 0 G ET endstream endobj -1059 0 obj +1078 0 obj << -/Length 7148 +/Length 6875 >> stream 0 g 0 G 0 g 0 G BT -/F16 11.9552 Tf 150.705 706.129 Td [(psb)]TJ +/F16 11.9552 Tf 150.705 706.129 Td [(4.4)-1125(psb)]TJ ET q -1 0 0 1 171.761 706.328 cm +1 0 0 1 202.396 706.328 cm []0 d 0 J 0.398 w 0 0 m 4.035 0 l S Q BT -/F16 11.9552 Tf 175.796 706.129 Td [(norm1)-375(|)-375(1-Norm)-375(of)-375(V)94(ector)]TJ/F8 9.9626 Tf -25.091 -18.389 Td [(This)-333(function)-334(computes)-333(the)-333(1-norm)-334(of)-333(a)-333(v)28(ec)-1(tor)]TJ/F11 9.9626 Tf 207.168 0 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(.)]TJ -212.862 -11.956 Td [(If)]TJ/F11 9.9626 Tf 9.963 0 Td [(x)]TJ/F8 9.9626 Tf 9.014 0 Td [(is)-333(a)-334(real)-333(v)28(ector)-334(it)-333(computes)-333(1-norm)-334(as:)]TJ/F11 9.9626 Tf 123.45 -19.151 Td [(asum)]TJ/F14 9.9626 Tf 27.154 0 Td [(\040)-278(k)]TJ/F11 9.9626 Tf 17.711 0 Td [(x)]TJ/F10 6.9738 Tf 5.694 -1.494 Td [(i)]TJ/F14 9.9626 Tf 3.317 1.494 Td [(k)]TJ/F8 9.9626 Tf -196.303 -19.151 Td [(else)-333(if)]TJ/F11 9.9626 Tf 28.006 0 Td [(x)]TJ/F8 9.9626 Tf 9.015 0 Td [(is)-333(a)-334(complex)-333(v)28(ector)-334(then)-333(it)-333(computes)-334(1-norm)-333(as:)]TJ/F11 9.9626 Tf 70.135 -19.152 Td [(asum)]TJ/F14 9.9626 Tf 27.154 0 Td [(\040)-278(k)]TJ/F11 9.9626 Tf 17.711 0 Td [(r)-28(e)]TJ/F8 9.9626 Tf 9.41 0 Td [(\050)]TJ/F11 9.9626 Tf 3.875 0 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(\051)]TJ/F14 9.9626 Tf 3.874 0 Td [(k)]TJ/F7 6.9738 Tf 4.981 -1.494 Td [(1)]TJ/F8 9.9626 Tf 6.683 1.494 Td [(+)]TJ/F14 9.9626 Tf 9.963 0 Td [(k)]TJ/F11 9.9626 Tf 4.981 0 Td [(im)]TJ/F8 9.9626 Tf 12.18 0 Td [(\050)]TJ/F11 9.9626 Tf 3.874 0 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(\051)]TJ/F14 9.9626 Tf 3.875 0 Td [(k)]TJ/F7 6.9738 Tf 4.981 -1.494 Td [(1)]TJ +/F16 11.9552 Tf 206.431 706.129 Td [(normi)-375(|)-375(In\014nit)31(y-Norm)-375(of)-375(V)94(ector)]TJ/F8 9.9626 Tf -55.726 -19.477 Td [(This)-333(function)-334(computes)-333(the)-333(in\014nit)28(y-norm)-334(of)-333(a)-333(v)28(e)-1(ctor)]TJ/F11 9.9626 Tf 233.181 0 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(.)]TJ -238.875 -11.955 Td [(If)]TJ/F11 9.9626 Tf 9.963 0 Td [(x)]TJ/F8 9.9626 Tf 9.014 0 Td [(is)-333(a)-334(real)-333(v)28(ector)-334(it)-333(computes)-333(in\014nit)28(y)-334(norm)-333(as:)]TJ/F11 9.9626 Tf 115.269 -23.087 Td [(amax)]TJ/F14 9.9626 Tf 27.741 0 Td [(\040)]TJ/F8 9.9626 Tf 12.73 0 Td [(max)]TJ/F10 6.9738 Tf 7.861 -6.275 Td [(i)]TJ/F14 9.9626 Tf 12.341 6.275 Td [(j)]TJ/F11 9.9626 Tf 2.767 0 Td [(x)]TJ/F10 6.9738 Tf 5.694 -1.494 Td [(i)]TJ/F14 9.9626 Tf 3.317 1.494 Td [(j)]TJ/F8 9.9626 Tf -206.697 -26.317 Td [(else)-333(if)]TJ/F11 9.9626 Tf 28.006 0 Td [(x)]TJ/F8 9.9626 Tf 9.015 0 Td [(is)-333(a)-334(complex)-333(v)28(ector)-334(then)-333(it)-333(computes)-334(the)-333(in\014nit)28(y-norm)-333(as:)]TJ/F11 9.9626 Tf 61.446 -23.087 Td [(amax)]TJ/F14 9.9626 Tf 27.741 0 Td [(\040)]TJ/F8 9.9626 Tf 12.73 0 Td [(max)]TJ/F10 6.9738 Tf 7.861 -6.275 Td [(i)]TJ/F8 9.9626 Tf 12.341 6.275 Td [(\050)]TJ/F14 9.9626 Tf 3.874 0 Td [(j)]TJ/F11 9.9626 Tf 2.768 0 Td [(r)-28(e)]TJ/F8 9.9626 Tf 9.41 0 Td [(\050)]TJ/F11 9.9626 Tf 3.874 0 Td [(x)]TJ/F10 6.9738 Tf 5.694 -1.494 Td [(i)]TJ/F8 9.9626 Tf 3.317 1.494 Td [(\051)]TJ/F14 9.9626 Tf 3.875 0 Td [(j)]TJ/F8 9.9626 Tf 4.981 0 Td [(+)]TJ/F14 9.9626 Tf 9.962 0 Td [(j)]TJ/F11 9.9626 Tf 2.768 0 Td [(im)]TJ/F8 9.9626 Tf 12.179 0 Td [(\050)]TJ/F11 9.9626 Tf 3.875 0 Td [(x)]TJ/F10 6.9738 Tf 5.694 -1.494 Td [(i)]TJ/F8 9.9626 Tf 3.317 1.494 Td [(\051)]TJ/F14 9.9626 Tf 3.874 0 Td [(j)]TJ/F8 9.9626 Tf 2.767 0 Td [(\051)]TJ 0 g 0 G 0 g 0 G -/F30 9.9626 Tf -232.086 -17.657 Td [(psb_geasum\050x,)-525(desc_a,)-525(info)-525([,global]\051)]TJ 0 -11.955 Td [(psb_norm1\050x,)-525(desc_a,)-525(info)-525([,global]\051)]TJ +/F30 9.9626 Tf -241.369 -26.901 Td [(psb_geamax\050x,)-525(desc_a,)-525(info)-525([,global]\051)]TJ 0 -11.956 Td [(psb_normi\050x,)-525(desc_a,)-525(info)-525([,global]\051)]TJ 0 g 0 G 0 g 0 G 0 g 0 G ET q -1 0 0 1 180.28 566.766 cm -[]0 d 0 J 0.398 w 0 0 m 284.561 0 l S +1 0 0 1 179.892 536.097 cm +[]0 d 0 J 0.398 w 0 0 m 285.336 0 l S Q BT -/F11 9.9626 Tf 186.257 558.198 Td [(asum)-7736(x)]TJ/F27 9.9626 Tf 221.863 0 Td [(F)96(unction)]TJ +/F11 9.9626 Tf 185.87 527.529 Td [(amax)-7677(x)]TJ/F27 9.9626 Tf 221.863 0 Td [(F)96(unction)]TJ ET q -1 0 0 1 180.28 554.412 cm -[]0 d 0 J 0.398 w 0 0 m 284.561 0 l S +1 0 0 1 179.892 523.743 cm +[]0 d 0 J 0.398 w 0 0 m 285.336 0 l S Q BT -/F8 9.9626 Tf 186.257 545.845 Td [(Short)-333(Precision)-334(Real)-1200(Short)-333(Precision)-333(Real)-3103(psb)]TJ +/F8 9.9626 Tf 185.87 515.175 Td [(Short)-333(Precision)-334(Real)-1200(Shor)1(t)-334(Precision)-333(Real)-3103(psb)]TJ ET q -1 0 0 1 423.717 546.044 cm +1 0 0 1 423.33 515.374 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 426.706 545.845 Td [(geasum)]TJ -240.449 -11.956 Td [(Long)-333(Precision)-334(Real)-1411(Long)-333(Precision)-333(Real)-3314(psb)]TJ +/F8 9.9626 Tf 426.319 515.175 Td [(geamax)]TJ -240.449 -11.955 Td [(Long)-333(Precision)-334(Real)-1411(Long)-333(Precision)-333(Real)-3314(psb)]TJ ET q -1 0 0 1 423.717 534.089 cm +1 0 0 1 423.33 503.419 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 426.706 533.889 Td [(geasum)]TJ -240.449 -11.955 Td [(Short)-333(Precision)-334(Real)-1200(Short)-333(Precision)-333(Complex)-1200(psb)]TJ +/F8 9.9626 Tf 426.319 503.22 Td [(geamax)]TJ -240.449 -11.955 Td [(Short)-333(Precision)-334(Real)-1200(Shor)1(t)-334(Precision)-333(Complex)-1200(psb)]TJ ET q -1 0 0 1 423.717 522.133 cm +1 0 0 1 423.33 491.464 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 426.706 521.934 Td [(geasum)]TJ -240.449 -11.955 Td [(Long)-333(Precision)-334(Real)-1411(Long)-333(Precision)-333(Com)-1(p)1(lex)-1412(psb)]TJ +/F8 9.9626 Tf 426.319 491.265 Td [(geamax)]TJ -240.449 -11.955 Td [(Long)-333(Precision)-334(Real)-1411(Long)-333(Precision)-333(Complex)-1412(psb)]TJ ET q -1 0 0 1 423.717 510.178 cm +1 0 0 1 423.33 479.509 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 426.706 509.979 Td [(geasum)]TJ +/F8 9.9626 Tf 426.319 479.31 Td [(geamax)]TJ ET q -1 0 0 1 180.28 506.193 cm -[]0 d 0 J 0.398 w 0 0 m 284.561 0 l S +1 0 0 1 179.892 475.524 cm +[]0 d 0 J 0.398 w 0 0 m 285.336 0 l S Q 0 g 0 G BT -/F8 9.9626 Tf 278.877 478.154 Td [(T)83(able)-333(6:)-444(Data)-334(t)28(yp)-28(es)]TJ +/F8 9.9626 Tf 278.877 447.485 Td [(T)83(able)-333(4:)-444(Data)-334(t)28(yp)-28(es)]TJ 0 g 0 G 0 g 0 G 0 g 0 G -/F27 9.9626 Tf -128.172 -29.723 Td [(T)32(yp)-32(e:)]TJ +/F27 9.9626 Tf -128.172 -36.518 Td [(T)32(yp)-32(e:)]TJ 0 g 0 G /F8 9.9626 Tf 33.797 0 Td [(Sync)28(hronous.)]TJ 0 g 0 G -/F27 9.9626 Tf -33.797 -18.819 Td [(On)-383(En)32(try)]TJ +/F27 9.9626 Tf -33.797 -22.263 Td [(On)-383(En)32(try)]TJ 0 g 0 G 0 g 0 G - 0 -18.819 Td [(x)]TJ + 0 -22.263 Td [(x)]TJ 0 g 0 G /F8 9.9626 Tf 11.028 0 Td [(the)-333(lo)-28(cal)-333(p)-28(ortion)-333(of)-334(global)-333(dense)-333(matrix)]TJ/F11 9.9626 Tf 176.118 0 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(.)]TJ -167.933 -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 [(in)]TJ/F8 9.9626 Tf 9.548 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-255(as:)-405(a)-255(rank)-254(one)-255(or)-255(t)28(w)28(o)-255(arra)28(y)-255(or)-255(an)-255(ob)-55(ject)-255(of)-255(t)28(yp)-28(e)]TJ 0 0 1 rg 0 0 1 RG /F30 9.9626 Tf 244.742 0 Td [(psb)]TJ ET q -1 0 0 1 436.673 363.172 cm +1 0 0 1 436.673 318.82 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 439.811 362.973 Td [(T)]TJ +/F30 9.9626 Tf 439.811 318.621 Td [(T)]TJ ET q -1 0 0 1 445.669 363.172 cm +1 0 0 1 445.669 318.82 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 448.807 362.973 Td [(vect)]TJ +/F30 9.9626 Tf 448.807 318.621 Td [(vect)]TJ ET q -1 0 0 1 470.356 363.172 cm +1 0 0 1 470.356 318.82 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 473.495 362.973 Td [(type)]TJ +/F30 9.9626 Tf 473.495 318.621 Td [(type)]TJ 0 g 0 G -/F8 9.9626 Tf -297.884 -11.955 Td [(con)28(taining)-333(n)27(um)28(b)-28(ers)-333(of)-333(t)27(yp)-27(e)-334(sp)-27(ec)-1(i)1(\014ed)-334(in)-333(T)83(able)]TJ +/F8 9.9626 Tf -297.884 -11.956 Td [(con)28(taining)-333(n)27(um)28(b)-28(ers)-333(of)-333(t)27(yp)-27(e)-334(sp)-27(ec)-1(i)1(\014ed)-334(in)-333(T)83(able)]TJ 0 0 1 rg 0 0 1 RG - [-333(6)]TJ + [-333(4)]TJ 0 g 0 G [(.)]TJ 0 g 0 G -/F27 9.9626 Tf -24.906 -18.819 Td [(desc)]TJ +/F27 9.9626 Tf -24.906 -22.262 Td [(desc)]TJ ET q -1 0 0 1 172.619 332.398 cm +1 0 0 1 172.619 284.602 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 176.057 332.199 Td [(a)]TJ +/F27 9.9626 Tf 176.057 284.403 Td [(a)]TJ 0 g 0 G -/F8 9.9626 Tf 10.55 0 Td [(con)28(tains)-334(data)-333(structures)-333(for)-333(c)-1(omm)28(unications.)]TJ -10.996 -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 [(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(ob)-55(ject)-334(of)-333(t)28(yp)-28(e)]TJ +/F8 9.9626 Tf 10.55 0 Td [(con)28(tains)-334(data)-333(structures)-333(for)-333(c)-1(omm)28(unications.)]TJ -10.996 -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(an)-333(ob)-55(ject)-334(of)-333(t)28(yp)-28(e)]TJ 0 0 1 rg 0 0 1 RG /F30 9.9626 Tf 135.659 0 Td [(psb)]TJ ET q -1 0 0 1 327.588 284.577 cm +1 0 0 1 327.588 236.781 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 330.727 284.378 Td [(desc)]TJ +/F30 9.9626 Tf 330.727 236.582 Td [(desc)]TJ ET q -1 0 0 1 352.275 284.577 cm +1 0 0 1 352.275 236.781 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 355.414 284.378 Td [(type)]TJ +/F30 9.9626 Tf 355.414 236.582 Td [(type)]TJ 0 g 0 G /F8 9.9626 Tf 20.921 0 Td [(.)]TJ 0 g 0 G -/F27 9.9626 Tf -225.63 -18.818 Td [(global)]TJ -0 g 0 G -/F8 9.9626 Tf 34.737 0 Td [(Sp)-28(eci\014es)-357(whether)-357(the)-357(co)-1(mpu)1(tation)-358(should)-357(include)-357(the)-357(global)-357(reduction)]TJ -9.831 -11.956 Td [(across)-333(all)-334(pro)-27(c)-1(esses.)]TJ 0 -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 [(optional)]TJ/F8 9.9626 Tf 40.576 0 Td [(.)]TJ -70.188 -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(logical)-333(scalar.)-445(Default:)]TJ/F30 9.9626 Tf 168.812 0 Td [(global=.true.)]TJ -0 g 0 G -/F27 9.9626 Tf -193.718 -30.774 Td [(On)-383(Return)]TJ +/F27 9.9626 Tf -225.63 -22.263 Td [(global)]TJ 0 g 0 G +/F8 9.9626 Tf 34.737 0 Td [(Sp)-28(eci\014es)-357(whether)-357(the)-357(co)-1(mpu)1(tation)-358(should)-357(include)-357(the)-357(global)-357(reduction)]TJ -9.831 -11.955 Td [(across)-333(all)-334(pro)-27(c)-1(esses.)]TJ 0 -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 [(optional)]TJ/F8 9.9626 Tf 40.576 0 Td [(.)]TJ -70.188 -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.956 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(logical)-333(scalar.)-445(Default:)]TJ/F30 9.9626 Tf 168.812 0 Td [(global=.true.)]TJ 0 g 0 G - 0 -18.819 Td [(F)96(unction)-384(v)64(alue)]TJ +/F27 9.9626 Tf -193.718 -34.217 Td [(On)-383(Return)]TJ 0 g 0 G -/F8 9.9626 Tf 78.386 0 Td [(is)-333(the)-334(1-norm)-333(of)-333(v)27(ector)]TJ/F11 9.9626 Tf 102.781 0 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(.)]TJ -161.955 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 31.841 0 Td [(global)]TJ/F8 9.9626 Tf 32.002 0 Td [(unless)-225(the)-226(optional)-225(v)55(ariable)]TJ/F30 9.9626 Tf 118.434 0 Td [(global=.false.)]TJ/F8 9.9626 Tf 75.471 0 Td [(has)-225(b)-28(een)-226(sp)-27(ec-)]TJ -257.748 -11.955 Td [(i\014ed)]TJ 0 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(long)-333(precision)-334(r)1(e)-1(al)-333(n)28(um)28(b)-28(er.)]TJ 0 g 0 G - 141.968 -29.888 Td [(38)]TJ +/F8 9.9626 Tf 166.874 -29.888 Td [(36)]TJ 0 g 0 G ET endstream endobj -1064 0 obj +1083 0 obj << -/Length 3878 +/Length 4549 >> stream 0 g 0 G 0 g 0 G 0 g 0 G BT -/F27 9.9626 Tf 99.895 706.129 Td [(info)]TJ +/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 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/F16 11.9552 Tf -24.907 -21.918 Td [(Notes)]TJ +/F8 9.9626 Tf 78.387 0 Td [(is)-333(the)-334(in\014ni)1(t)27(y)-333(norm)-333(of)-334(v)28(ector)]TJ/F11 9.9626 Tf 128.795 0 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(.)]TJ -187.969 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 31.841 0 Td [(global)]TJ/F8 9.9626 Tf 32.002 0 Td [(unless)-225(the)-226(optional)-225(v)55(ariabl)1(e)]TJ/F30 9.9626 Tf 118.434 0 Td [(global=.false.)]TJ/F8 9.9626 Tf 75.47 0 Td [(has)-225(b)-28(een)-226(sp)-27(ec)-1(-)]TJ -257.747 -11.955 Td [(i\014ed)]TJ 0 -11.956 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(long)-333(precision)-333(real)-334(n)28(um)28(b)-28(er.)]TJ 0 g 0 G -/F8 9.9626 Tf 12.177 -19.925 Td [(1.)]TJ +/F27 9.9626 Tf -24.907 -19.925 Td [(info)]TJ +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.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(detecte)-1(d)1(.)]TJ/F16 11.9552 Tf -24.907 -21.917 Td [(Notes)]TJ +0 g 0 G +/F8 9.9626 Tf 12.177 -19.926 Td [(1.)]TJ 0 g 0 G - [-500(The)-241(computation)-240(of)-241(a)-240(global)-241(result)-241(requires)-240(a)-241(global)-241(comm)28(unication,)-259(whic)28(h)]TJ 12.73 -11.955 Td [(en)28(tails)-421(a)-420(signi\014can)27(t)-420(o)28(v)27(erhead.)-706(It)-420(ma)27(y)-420(b)-28(e)-421(necessary)-420(and/or)-421(advisable)-420(to)]TJ 0 -11.955 Td [(compute)-395(m)28(ultiple)-395(norms)-395(at)-395(the)-395(same)-395(time;)-426(in)-395(this)-395(case,)-410(it)-395(is)-395(p)-28(ossible)-395(to)]TJ 0 -11.955 Td [(impro)28(v)28(e)-334(the)-333(run)28(time)-334(e\016ciency)-333(b)28(y)-334(using)-333(the)-333(follo)28(wing)-334(sc)28(heme:)]TJ 25.189 -17.933 Td [(v)-128(r)-129(e)-128(s)-259(\050)-131(1)-130(\051)-642(=)-593(p)-83(s)-82(b)]TJ + [-500(The)-241(computation)-240(of)-241(a)-240(global)-241(result)-241(requires)-240(a)-241(global)-241(comm)28(unication,)-259(whic)28(h)]TJ 12.73 -11.955 Td [(en)28(tails)-421(a)-420(signi\014can)27(t)-420(o)28(v)27(erhead.)-706(It)-420(ma)27(y)-420(b)-28(e)-421(necessary)-420(and/or)-421(advisable)-420(to)]TJ 0 -11.955 Td [(compute)-395(m)28(ultiple)-395(norms)-395(at)-395(the)-395(same)-395(time;)-426(in)-395(this)-395(case,)-410(it)-395(is)-395(p)-28(ossible)-395(to)]TJ 0 -11.955 Td [(impro)28(v)28(e)-334(the)-333(run)28(time)-334(e\016ciency)-333(b)28(y)-334(using)-333(the)-333(follo)28(wing)-334(sc)28(heme:)]TJ 25.189 -17.933 Td [(v)-128(r)-129(e)-128(s)-259(\050)-131(1)-130(\051)-642(=)-586(p)-76(s)-75(b)]TJ ET q -1 0 0 1 227.371 562.866 cm +1 0 0 1 227.089 507.075 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 231.181 562.667 Td [(g)-82(e)-83(a)-82(s)-83(u)-82(m)-188(\050)-149(x)-43(1)-247(,)-274(d)-112(e)-113(s)-113(c)]TJ +/F8 9.9626 Tf 230.829 506.876 Td [(g)-75(e)-76(a)-75(m)-75(a)-76(x)-181(\050)-148(x)-43(1)-248(,)-273(d)-113(e)-113(s)-112(c)]TJ ET q -1 0 0 1 316.705 562.866 cm +1 0 0 1 316.705 507.075 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 320.816 562.667 Td [(a)-386(,)-288(i)-127(n)-127(f)-127(o)-415(,)-302(g)-141(l)-142(o)-141(b)-141(a)-141(l)-190(=)-48(.)]TJ/F27 9.9626 Tf 92.224 0 Td [(f)-132(a)-131(l)-132(s)-131(e)]TJ/F8 9.9626 Tf 30.348 0 Td [(.)-178(\051)]TJ -293.397 -11.955 Td [(v)-128(r)-129(e)-128(s)-259(\050)-131(2)-130(\051)-642(=)-593(p)-83(s)-82(b)]TJ +/F8 9.9626 Tf 320.816 506.876 Td [(a)-386(,)-288(i)-127(n)-127(f)-127(o)-415(,)-302(g)-141(l)-142(o)-141(b)-141(a)-141(l)-190(=)-48(.)]TJ/F27 9.9626 Tf 92.224 0 Td [(f)-132(a)-131(l)-132(s)-131(e)]TJ/F8 9.9626 Tf 30.348 0 Td [(.)-178(\051)]TJ -293.397 -11.955 Td [(v)-128(r)-129(e)-128(s)-259(\050)-131(2)-130(\051)-642(=)-586(p)-76(s)-75(b)]TJ ET q -1 0 0 1 227.371 550.911 cm +1 0 0 1 227.089 495.12 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 231.181 550.712 Td [(g)-82(e)-83(a)-82(s)-83(u)-82(m)-188(\050)-149(x)-43(2)-247(,)-274(d)-112(e)-113(s)-113(c)]TJ +/F8 9.9626 Tf 230.829 494.921 Td [(g)-75(e)-76(a)-75(m)-75(a)-76(x)-181(\050)-148(x)-43(2)-248(,)-273(d)-113(e)-113(s)-112(c)]TJ ET q -1 0 0 1 316.705 550.911 cm +1 0 0 1 316.705 495.12 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 320.816 550.712 Td [(a)-386(,)-288(i)-127(n)-127(f)-127(o)-415(,)-302(g)-141(l)-142(o)-141(b)-141(a)-141(l)-190(=)-48(.)]TJ/F27 9.9626 Tf 92.224 0 Td [(f)-132(a)-131(l)-132(s)-131(e)]TJ/F8 9.9626 Tf 30.348 0 Td [(.)-178(\051)]TJ -293.397 -11.955 Td [(v)-128(r)-129(e)-128(s)-259(\050)-131(3)-130(\051)-642(=)-593(p)-83(s)-82(b)]TJ +/F8 9.9626 Tf 320.816 494.921 Td [(a)-386(,)-288(i)-127(n)-127(f)-127(o)-415(,)-302(g)-141(l)-142(o)-141(b)-141(a)-141(l)-190(=)-48(.)]TJ/F27 9.9626 Tf 92.224 0 Td [(f)-132(a)-131(l)-132(s)-131(e)]TJ/F8 9.9626 Tf 30.348 0 Td [(.)-178(\051)]TJ -293.397 -11.955 Td [(v)-128(r)-129(e)-128(s)-259(\050)-131(3)-130(\051)-642(=)-586(p)-76(s)-75(b)]TJ ET q -1 0 0 1 227.371 538.956 cm +1 0 0 1 227.089 483.165 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 231.181 538.757 Td [(g)-82(e)-83(a)-82(s)-83(u)-82(m)-188(\050)-149(x)-43(3)-247(,)-274(d)-112(e)-113(s)-113(c)]TJ +/F8 9.9626 Tf 230.829 482.966 Td [(g)-75(e)-76(a)-75(m)-75(a)-76(x)-181(\050)-148(x)-43(3)-248(,)-273(d)-113(e)-113(s)-112(c)]TJ ET q -1 0 0 1 316.705 538.956 cm +1 0 0 1 316.705 483.165 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 320.816 538.757 Td [(a)-386(,)-288(i)-127(n)-127(f)-127(o)-415(,)-302(g)-141(l)-142(o)-141(b)-141(a)-141(l)-190(=)-48(.)]TJ/F27 9.9626 Tf 92.224 0 Td [(f)-132(a)-131(l)-132(s)-131(e)]TJ/F8 9.9626 Tf 30.348 0 Td [(.)-178(\051)]TJ/F27 9.9626 Tf -293.299 -11.956 Td [(c)-138(a)-138(l)-139(l)]TJ/F8 9.9626 Tf 29.198 0 Td [(p)-69(s)-69(b)]TJ +/F8 9.9626 Tf 320.816 482.966 Td [(a)-386(,)-288(i)-127(n)-127(f)-127(o)-415(,)-302(g)-141(l)-142(o)-141(b)-141(a)-141(l)-190(=)-48(.)]TJ/F27 9.9626 Tf 92.224 0 Td [(f)-132(a)-131(l)-132(s)-131(e)]TJ/F8 9.9626 Tf 30.348 0 Td [(.)-178(\051)]TJ/F27 9.9626 Tf -293.299 -11.955 Td [(c)-138(a)-138(l)-139(l)]TJ/F8 9.9626 Tf 29.101 0 Td [(p)-59(s)-59(b)]TJ ET q -1 0 0 1 196.943 527.001 cm +1 0 0 1 196.556 471.21 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 200.618 526.801 Td [(s)-69(u)-69(m)-174(\050)-245(i)-139(c)-139(t)-138(x)-139(t)-439(,)-290(v)-128(r)-128(e)-129(s)-293(\050)-165(1)-165(:)-165(3)-165(\051)-166(\051)]TJ +/F8 9.9626 Tf 200.134 471.011 Td [(a)-59(m)-59(x)-165(\050)-245(i)-138(c)-139(t)-139(x)-139(t)-439(,)-289(v)-129(r)-128(e)-128(s)-294(\050)-165(1)-165(:)-165(3)-165(\051)-165(\051)]TJ 0 g 0 G 0 g 0 G - -75.816 -21.917 Td [(In)-353(this)-354(w)28(a)28(y)-354(the)-353(global)-354(comm)28(unication,)-359(whic)28(h)-353(for)-354(small)-353(sizes)-354(is)-354(a)-353(latency-)]TJ 0 -11.956 Td [(b)-28(ound)-333(op)-28(eration,)-333(is)-333(in)28(v)27(ok)28(ed)-333(only)-333(onc)-1(e.)]TJ + -75.332 -21.918 Td [(In)-353(this)-354(w)28(a)28(y)-354(the)-353(global)-354(comm)28(unication,)-359(whic)28(h)-353(for)-354(small)-353(sizes)-354(is)-354(a)-353(latency-)]TJ 0 -11.955 Td [(b)-28(ound)-333(op)-28(eration,)-333(is)-333(in)28(v)27(ok)28(ed)-333(only)-333(onc)-1(e.)]TJ 0 g 0 G - 141.968 -402.49 Td [(39)]TJ + 141.968 -346.7 Td [(37)]TJ 0 g 0 G ET endstream endobj -1077 0 obj +1097 0 obj << -/Length 7351 +/Length 6320 >> stream 0 g 0 G 0 g 0 G BT -/F16 11.9552 Tf 150.705 706.129 Td [(psb)]TJ +/F16 11.9552 Tf 150.705 706.129 Td [(4.5)-1125(psb)]TJ ET q -1 0 0 1 171.761 706.328 cm +1 0 0 1 202.396 706.328 cm []0 d 0 J 0.398 w 0 0 m 4.035 0 l S Q BT -/F16 11.9552 Tf 175.796 706.129 Td [(geasums)-375(|)-375(Generalized)-375(1-Norm)-375(of)-375(V)94(ector)]TJ/F8 9.9626 Tf -25.091 -19.22 Td [(This)-310(subroutine)-310(computes)-309(a)-310(series)-310(of)-310(1-norms)-310(on)-310(the)-309(c)-1(olu)1(m)-1(n)1(s)-310(of)-310(a)-310(dense)-310(matrix)]TJ/F11 9.9626 Tf 0 -11.955 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(:)]TJ/F11 9.9626 Tf 119.512 -13.293 Td [(r)-28(es)]TJ/F8 9.9626 Tf 14.081 0 Td [(\050)]TJ/F11 9.9626 Tf 3.874 0 Td [(i)]TJ/F8 9.9626 Tf 3.432 0 Td [(\051)]TJ/F14 9.9626 Tf 6.642 0 Td [(\040)]TJ/F8 9.9626 Tf 12.73 0 Td [(max)]TJ/F10 6.9738 Tf 7.069 -6.503 Td [(k)]TJ/F14 9.9626 Tf 13.133 6.503 Td [(j)]TJ/F11 9.9626 Tf 2.767 0 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(\050)]TJ/F11 9.9626 Tf 3.875 0 Td [(k)-31(;)-167(i)]TJ/F8 9.9626 Tf 13.36 0 Td [(\051)]TJ/F14 9.9626 Tf 3.874 0 Td [(j)]TJ/F8 9.9626 Tf -215.737 -22.73 Td [(This)-333(function)-334(computes)-333(the)-333(1-norm)-334(of)-333(a)-333(v)28(ec)-1(tor)]TJ/F11 9.9626 Tf 207.168 0 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(.)]TJ -212.862 -11.955 Td [(If)]TJ/F11 9.9626 Tf 9.963 0 Td [(x)]TJ/F8 9.9626 Tf 9.014 0 Td [(is)-333(a)-334(real)-333(v)28(ector)-334(it)-333(computes)-333(1-norm)-334(as:)]TJ/F11 9.9626 Tf 123.012 -22.81 Td [(r)-28(es)]TJ/F8 9.9626 Tf 14.081 0 Td [(\050)]TJ/F11 9.9626 Tf 3.874 0 Td [(i)]TJ/F8 9.9626 Tf 3.432 0 Td [(\051)]TJ/F14 9.9626 Tf 6.642 0 Td [(\040)-278(k)]TJ/F11 9.9626 Tf 17.711 0 Td [(x)]TJ/F10 6.9738 Tf 5.694 -1.495 Td [(i)]TJ/F14 9.9626 Tf 3.317 1.495 Td [(k)]TJ/F8 9.9626 Tf -196.74 -22.81 Td [(else)-333(if)]TJ/F11 9.9626 Tf 28.006 0 Td [(x)]TJ/F8 9.9626 Tf 9.015 0 Td [(is)-333(a)-334(complex)-333(v)28(ector)-334(then)-333(it)-333(computes)-334(1-norm)-333(as:)]TJ/F11 9.9626 Tf 69.697 -22.81 Td [(r)-28(es)]TJ/F8 9.9626 Tf 14.081 0 Td [(\050)]TJ/F11 9.9626 Tf 3.874 0 Td [(i)]TJ/F8 9.9626 Tf 3.432 0 Td [(\051)]TJ/F14 9.9626 Tf 6.642 0 Td [(\040)-278(k)]TJ/F11 9.9626 Tf 17.711 0 Td [(r)-28(e)]TJ/F8 9.9626 Tf 9.411 0 Td [(\050)]TJ/F11 9.9626 Tf 3.874 0 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(\051)]TJ/F14 9.9626 Tf 3.874 0 Td [(k)]TJ/F7 6.9738 Tf 4.982 -1.494 Td [(1)]TJ/F8 9.9626 Tf 6.683 1.494 Td [(+)]TJ/F14 9.9626 Tf 9.962 0 Td [(k)]TJ/F11 9.9626 Tf 4.982 0 Td [(im)]TJ/F8 9.9626 Tf 12.179 0 Td [(\050)]TJ/F11 9.9626 Tf 3.875 0 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(\051)]TJ/F14 9.9626 Tf 3.874 0 Td [(k)]TJ/F7 6.9738 Tf 4.981 -1.494 Td [(1)]TJ +/F16 11.9552 Tf 206.431 706.129 Td [(geamaxs)-375(|)-375(Generalized)-375(In\014nit)31(y)-375(Norm)]TJ/F8 9.9626 Tf -55.726 -18.389 Td [(This)-359(subroutine)-359(computes)-360(a)-359(series)-359(of)-359(in\014nit)28(y)-359(norms)-360(on)-359(the)-359(columns)-359(of)-359(a)-359(dense)]TJ 0 -11.956 Td [(matrix)]TJ/F11 9.9626 Tf 32.406 0 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(:)]TJ/F11 9.9626 Tf 87.106 -11.955 Td [(r)-28(es)]TJ/F8 9.9626 Tf 14.08 0 Td [(\050)]TJ/F11 9.9626 Tf 3.875 0 Td [(i)]TJ/F8 9.9626 Tf 3.432 0 Td [(\051)]TJ/F14 9.9626 Tf 6.642 0 Td [(\040)]TJ/F8 9.9626 Tf 12.73 0 Td [(max)]TJ/F10 6.9738 Tf 7.069 -6.503 Td [(k)]TJ/F14 9.9626 Tf 13.133 6.503 Td [(j)]TJ/F11 9.9626 Tf 2.767 0 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(\050)]TJ/F11 9.9626 Tf 3.875 0 Td [(k)-31(;)-167(i)]TJ/F8 9.9626 Tf 13.36 0 Td [(\051)]TJ/F14 9.9626 Tf 3.874 0 Td [(j)]TJ 0 g 0 G 0 g 0 G -/F30 9.9626 Tf -232.523 -21.762 Td [(call)-525(psb_geasums\050res,)-525(x,)-525(desc_a,)-525(info\051)]TJ +/F30 9.9626 Tf -215.737 -25.377 Td [(call)-525(psb_geamaxs\050res,)-525(x,)-525(desc_a,)-525(info\051)]TJ 0 g 0 G 0 g 0 G 0 g 0 G ET q -1 0 0 1 178.071 508.729 cm -[]0 d 0 J 0.398 w 0 0 m 288.979 0 l S +1 0 0 1 177.927 614.121 cm +[]0 d 0 J 0.398 w 0 0 m 289.266 0 l S Q BT -/F11 9.9626 Tf 184.049 500.161 Td [(r)-28(es)-8770(x)]TJ/F27 9.9626 Tf 221.862 0 Td [(Subroutine)]TJ +/F11 9.9626 Tf 183.905 605.553 Td [(r)-28(es)-8770(x)]TJ/F27 9.9626 Tf 221.863 0 Td [(Subroutine)]TJ ET q -1 0 0 1 178.071 496.375 cm -[]0 d 0 J 0.398 w 0 0 m 288.979 0 l S +1 0 0 1 177.927 601.768 cm +[]0 d 0 J 0.398 w 0 0 m 289.266 0 l S Q BT -/F8 9.9626 Tf 184.049 487.807 Td [(Short)-333(Precision)-333(R)-1(eal)-1200(S)1(hort)-334(Precision)-333(Real)-3103(psb)]TJ +/F8 9.9626 Tf 183.905 593.2 Td [(Short)-333(Precision)-334(Real)-1200(Shor)1(t)-334(Precision)-333(Real)-3103(psb)]TJ ET q -1 0 0 1 421.508 488.007 cm +1 0 0 1 421.365 593.399 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 424.497 487.807 Td [(geasums)]TJ -240.448 -11.955 Td [(Long)-333(Precision)-334(Real)-1411(Long)-333(Precision)-333(Real)-3314(psb)]TJ +/F8 9.9626 Tf 424.354 593.2 Td [(geamaxs)]TJ -240.449 -11.956 Td [(Long)-333(Precision)-334(Real)-1411(Long)-333(Precision)-333(Real)-3314(psb)]TJ ET q -1 0 0 1 421.508 476.051 cm +1 0 0 1 421.365 581.444 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 424.497 475.852 Td [(geasums)]TJ -240.448 -11.955 Td [(Short)-333(Precision)-333(R)-1(eal)-1200(S)1(hort)-334(Precision)-333(Complex)-1200(psb)]TJ +/F8 9.9626 Tf 424.354 581.244 Td [(geamaxs)]TJ -240.449 -11.955 Td [(Short)-333(Precision)-334(Real)-1200(Shor)1(t)-334(Precision)-333(Complex)-1200(psb)]TJ ET q -1 0 0 1 421.508 464.096 cm +1 0 0 1 421.365 569.489 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 424.497 463.897 Td [(geasums)]TJ -240.448 -11.955 Td [(Long)-333(Precision)-334(Real)-1411(Long)-333(Precision)-333(Complex)-1412(p)1(s)-1(b)]TJ +/F8 9.9626 Tf 424.354 569.289 Td [(geamaxs)]TJ -240.449 -11.955 Td [(Long)-333(Precision)-334(Real)-1411(Long)-333(Precision)-333(Complex)-1412(psb)]TJ ET q -1 0 0 1 421.508 452.141 cm +1 0 0 1 421.365 557.533 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 424.497 451.942 Td [(geasums)]TJ +/F8 9.9626 Tf 424.354 557.334 Td [(geamaxs)]TJ ET q -1 0 0 1 178.071 448.156 cm -[]0 d 0 J 0.398 w 0 0 m 288.979 0 l S +1 0 0 1 177.927 553.548 cm +[]0 d 0 J 0.398 w 0 0 m 289.266 0 l S Q 0 g 0 G BT -/F8 9.9626 Tf 278.877 420.117 Td [(T)83(able)-333(7:)-444(Data)-334(t)28(yp)-28(es)]TJ +/F8 9.9626 Tf 278.877 525.509 Td [(T)83(able)-333(5:)-444(Data)-334(t)28(yp)-28(es)]TJ 0 g 0 G 0 g 0 G 0 g 0 G -/F27 9.9626 Tf -128.172 -35.827 Td [(T)32(yp)-32(e:)]TJ +/F27 9.9626 Tf -128.172 -33.596 Td [(T)32(yp)-32(e:)]TJ 0 g 0 G /F8 9.9626 Tf 33.797 0 Td [(Sync)28(hronous.)]TJ 0 g 0 G -/F27 9.9626 Tf -33.797 -21.709 Td [(On)-383(En)32(try)]TJ +/F27 9.9626 Tf -33.797 -19.925 Td [(On)-383(En)32(try)]TJ 0 g 0 G 0 g 0 G - 0 -21.71 Td [(x)]TJ + 0 -19.926 Td [(x)]TJ 0 g 0 G /F8 9.9626 Tf 11.028 0 Td [(the)-333(lo)-28(cal)-333(p)-28(ortion)-333(of)-334(global)-333(dense)-333(matrix)]TJ/F11 9.9626 Tf 176.118 0 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(.)]TJ -167.933 -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 [(in)]TJ/F8 9.9626 Tf 9.548 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-255(as:)-405(a)-255(rank)-254(one)-255(or)-255(t)28(w)28(o)-255(arra)28(y)-255(or)-255(an)-255(ob)-55(ject)-255(of)-255(t)28(yp)-28(e)]TJ 0 0 1 rg 0 0 1 RG /F30 9.9626 Tf 244.742 0 Td [(psb)]TJ ET q -1 0 0 1 436.673 293.25 cm +1 0 0 1 436.673 404.441 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 439.811 293.051 Td [(T)]TJ +/F30 9.9626 Tf 439.811 404.242 Td [(T)]TJ ET q -1 0 0 1 445.669 293.25 cm +1 0 0 1 445.669 404.441 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 448.807 293.051 Td [(vect)]TJ +/F30 9.9626 Tf 448.807 404.242 Td [(vect)]TJ ET q -1 0 0 1 470.356 293.25 cm +1 0 0 1 470.356 404.441 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 473.495 293.051 Td [(type)]TJ +/F30 9.9626 Tf 473.495 404.242 Td [(type)]TJ 0 g 0 G /F8 9.9626 Tf -297.884 -11.956 Td [(con)28(taining)-333(n)27(um)28(b)-28(ers)-333(of)-333(t)27(yp)-27(e)-334(sp)-27(ec)-1(i)1(\014ed)-334(in)-333(T)83(able)]TJ 0 0 1 rg 0 0 1 RG - [-333(7)]TJ + [-333(5)]TJ 0 g 0 G [(.)]TJ 0 g 0 G -/F27 9.9626 Tf -24.906 -21.709 Td [(desc)]TJ +/F27 9.9626 Tf -24.906 -19.925 Td [(desc)]TJ ET q -1 0 0 1 172.619 259.585 cm +1 0 0 1 172.619 372.56 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 176.057 259.386 Td [(a)]TJ +/F27 9.9626 Tf 176.057 372.361 Td [(a)]TJ 0 g 0 G -/F8 9.9626 Tf 10.55 0 Td [(con)28(tains)-334(data)-333(structures)-333(for)-333(c)-1(omm)28(unications.)]TJ -10.996 -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 [(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(ob)-55(ject)-334(of)-333(t)28(yp)-28(e)]TJ +/F8 9.9626 Tf 10.55 0 Td [(con)28(tains)-334(data)-333(structures)-333(for)-333(c)-1(omm)28(unications.)]TJ -10.996 -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.956 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(ob)-55(ject)-334(of)-333(t)28(yp)-28(e)]TJ 0 0 1 rg 0 0 1 RG /F30 9.9626 Tf 135.659 0 Td [(psb)]TJ ET q -1 0 0 1 327.588 211.765 cm +1 0 0 1 327.588 324.74 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 330.727 211.565 Td [(desc)]TJ +/F30 9.9626 Tf 330.727 324.54 Td [(desc)]TJ ET q -1 0 0 1 352.275 211.765 cm +1 0 0 1 352.275 324.74 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 355.414 211.565 Td [(type)]TJ +/F30 9.9626 Tf 355.414 324.54 Td [(type)]TJ 0 g 0 G /F8 9.9626 Tf 20.921 0 Td [(.)]TJ 0 g 0 G -/F27 9.9626 Tf -225.63 -21.709 Td [(On)-383(Return)]TJ -0 g 0 G -0 g 0 G - 0 -21.71 Td [(res)]TJ -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 [(40)]TJ +/F27 9.9626 Tf -225.63 -19.925 Td [(On)-383(Return)]TJ 0 g 0 G -ET - -endstream -endobj -1082 0 obj -<< -/Length 624 ->> -stream 0 g 0 G + 0 -19.925 Td [(res)]TJ 0 g 0 G +/F8 9.9626 Tf 19.47 0 Td [(is)-333(the)-334(in\014nit)28(y)-333(norm)-333(of)-334(the)-333(columns)-333(of)]TJ/F11 9.9626 Tf 166.183 0 Td [(x)]TJ/F8 9.9626 Tf 5.693 0 Td [(.)]TJ -166.44 -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.956 Td [(Sp)-28(eci\014ed)-289(as:)-422(a)-289(n)28(um)28(b)-28(er)-289(or)-289(a)-289(rank)1(-)-1(on)1(e)-289(arra)27(y)-288(of)-289(long)-289(precision)-289(real)-289(n)28(um)28(b)-28(ers.)]TJ 0 g 0 G -BT -/F27 9.9626 Tf 99.895 706.129 Td [(info)]TJ +/F27 9.9626 Tf -24.906 -19.925 Td [(info)]TJ 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 +/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)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 -567.87 Td [(41)]TJ + 141.968 -90.64 Td [(38)]TJ 0 g 0 G ET endstream endobj -1089 0 obj +1105 0 obj << -/Length 6462 +/Length 7168 >> stream 0 g 0 G 0 g 0 G BT -/F16 11.9552 Tf 150.705 706.129 Td [(psb)]TJ +/F16 11.9552 Tf 99.895 706.129 Td [(4.6)-1125(psb)]TJ ET q -1 0 0 1 171.761 706.328 cm +1 0 0 1 151.587 706.328 cm []0 d 0 J 0.398 w 0 0 m 4.035 0 l S Q BT -/F16 11.9552 Tf 175.796 706.129 Td [(norm2)-375(|)-375(2-Norm)-375(of)-375(V)94(ector)]TJ/F8 9.9626 Tf -25.091 -19.67 Td [(This)-333(function)-334(computes)-333(the)-333(2-norm)-334(of)-333(a)-333(v)28(ec)-1(tor)]TJ/F11 9.9626 Tf 207.168 0 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(.)]TJ -212.862 -11.955 Td [(If)]TJ/F11 9.9626 Tf 9.963 0 Td [(x)]TJ/F8 9.9626 Tf 9.014 0 Td [(is)-333(a)-334(real)-333(v)28(ector)-334(it)-333(computes)-333(2-norm)-334(as:)]TJ/F11 9.9626 Tf 119.907 -24.408 Td [(nr)-28(m)]TJ/F8 9.9626 Tf 19.498 0 Td [(2)]TJ/F14 9.9626 Tf 7.749 0 Td [(\040)]TJ 12.73 9.339 Td [(p)]TJ -ET -q -1 0 0 1 337.868 659.634 cm -[]0 d 0 J 0.398 w 0 0 m 17.664 0 l S -Q -BT -/F11 9.9626 Tf 337.868 650.096 Td [(x)]TJ/F10 6.9738 Tf 5.694 2.878 Td [(T)]TJ/F11 9.9626 Tf 6.276 -2.878 Td [(x)]TJ/F8 9.9626 Tf -199.133 -23.294 Td [(else)-333(if)]TJ/F11 9.9626 Tf 28.006 0 Td [(x)]TJ/F8 9.9626 Tf 9.015 0 Td [(is)-333(a)-334(complex)-333(v)28(ector)-334(then)-333(it)-333(computes)-334(2-norm)-333(as:)]TJ/F11 9.9626 Tf 101.222 -24.408 Td [(nr)-28(m)]TJ/F8 9.9626 Tf 19.499 0 Td [(2)]TJ/F14 9.9626 Tf 7.749 0 Td [(\040)]TJ 12.73 9.339 Td [(p)]TJ -ET -q -1 0 0 1 337.228 611.932 cm -[]0 d 0 J 0.398 w 0 0 m 18.944 0 l S -Q -BT -/F11 9.9626 Tf 337.228 602.394 Td [(x)]TJ/F10 6.9738 Tf 5.694 2.878 Td [(H)]TJ/F11 9.9626 Tf 7.556 -2.878 Td [(x)]TJ +/F16 11.9552 Tf 155.621 706.129 Td [(norm1)-375(|)-375(1-Norm)-375(of)-375(V)94(ector)]TJ/F8 9.9626 Tf -55.726 -18.389 Td [(This)-333(function)-334(computes)-333(the)-333(1-norm)-334(of)-333(a)-333(v)27(ector)]TJ/F11 9.9626 Tf 207.168 0 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(.)]TJ -212.862 -11.956 Td [(If)]TJ/F11 9.9626 Tf 9.963 0 Td [(x)]TJ/F8 9.9626 Tf 9.015 0 Td [(is)-333(a)-334(real)-333(v)28(ector)-334(it)-333(computes)-333(1-norm)-334(as:)]TJ/F11 9.9626 Tf 123.449 -19.151 Td [(asum)]TJ/F14 9.9626 Tf 27.154 0 Td [(\040)-278(k)]TJ/F11 9.9626 Tf 17.711 0 Td [(x)]TJ/F10 6.9738 Tf 5.694 -1.494 Td [(i)]TJ/F14 9.9626 Tf 3.317 1.494 Td [(k)]TJ/F8 9.9626 Tf -196.303 -19.151 Td [(else)-333(if)]TJ/F11 9.9626 Tf 28.006 0 Td [(x)]TJ/F8 9.9626 Tf 9.015 0 Td [(is)-333(a)-334(complex)-333(v)28(ector)-334(then)-333(it)-333(computes)-334(1-norm)-333(as:)]TJ/F11 9.9626 Tf 70.135 -19.152 Td [(asum)]TJ/F14 9.9626 Tf 27.154 0 Td [(\040)-278(k)]TJ/F11 9.9626 Tf 17.711 0 Td [(r)-28(e)]TJ/F8 9.9626 Tf 9.411 0 Td [(\050)]TJ/F11 9.9626 Tf 3.874 0 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(\051)]TJ/F14 9.9626 Tf 3.874 0 Td [(k)]TJ/F7 6.9738 Tf 4.982 -1.494 Td [(1)]TJ/F8 9.9626 Tf 6.683 1.494 Td [(+)]TJ/F14 9.9626 Tf 9.962 0 Td [(k)]TJ/F11 9.9626 Tf 4.982 0 Td [(im)]TJ/F8 9.9626 Tf 12.179 0 Td [(\050)]TJ/F11 9.9626 Tf 3.875 0 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(\051)]TJ/F14 9.9626 Tf 3.874 0 Td [(k)]TJ/F7 6.9738 Tf 4.981 -1.494 Td [(1)]TJ +0 g 0 G +0 g 0 G +/F30 9.9626 Tf -232.086 -17.657 Td [(psb_geasum\050x,)-525(desc_a,)-525(info)-525([,global]\051)]TJ 0 -11.955 Td [(psb_norm1\050x,)-525(desc_a,)-525(info)-525([,global]\051)]TJ 0 g 0 G 0 g 0 G 0 g 0 G ET q -1 0 0 1 180.294 577.3 cm -[]0 d 0 J 0.398 w 0 0 m 284.534 0 l S +1 0 0 1 129.47 566.766 cm +[]0 d 0 J 0.398 w 0 0 m 284.561 0 l S Q BT -/F11 9.9626 Tf 186.271 568.732 Td [(nr)-28(m)]TJ/F8 9.9626 Tf 19.499 0 Td [(2)]TJ/F11 9.9626 Tf 81.954 0 Td [(x)]TJ/F27 9.9626 Tf 120.41 0 Td [(F)96(unction)]TJ +/F11 9.9626 Tf 135.448 558.198 Td [(asum)-7735(x)]TJ/F27 9.9626 Tf 221.863 0 Td [(F)96(unction)]TJ ET q -1 0 0 1 180.294 564.947 cm -[]0 d 0 J 0.398 w 0 0 m 284.534 0 l S +1 0 0 1 129.47 554.412 cm +[]0 d 0 J 0.398 w 0 0 m 284.561 0 l S Q BT -/F8 9.9626 Tf 186.271 556.379 Td [(Short)-333(Precision)-334(Real)-1200(Shor)1(t)-334(Precision)-333(Real)-3103(psb)]TJ +/F8 9.9626 Tf 135.448 545.845 Td [(Short)-333(Precision)-334(Real)-1200(Sh)1(o)-1(r)1(t)-334(Precision)-333(Real)-3103(psb)]TJ ET q -1 0 0 1 423.731 556.578 cm +1 0 0 1 372.908 546.044 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 426.72 556.379 Td [(genrm2)]TJ -240.449 -11.955 Td [(Long)-333(Precision)-334(Real)-1411(Long)-333(Precision)-333(Real)-3314(psb)]TJ +/F8 9.9626 Tf 375.897 545.845 Td [(geasum)]TJ -240.449 -11.956 Td [(Long)-333(Precision)-334(Real)-1411(Long)-333(Precision)-333(Real)-3314(psb)]TJ ET q -1 0 0 1 423.731 544.623 cm +1 0 0 1 372.908 534.089 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 426.72 544.424 Td [(genrm2)]TJ -240.449 -11.956 Td [(Short)-333(Precision)-334(Real)-1200(Short)-333(Precision)-333(Complex)-1200(psb)]TJ +/F8 9.9626 Tf 375.897 533.889 Td [(geasum)]TJ -240.449 -11.955 Td [(Short)-333(Precision)-334(Real)-1200(Sh)1(o)-1(r)1(t)-334(Precision)-333(Complex)-1200(psb)]TJ ET q -1 0 0 1 423.731 532.668 cm +1 0 0 1 372.908 522.133 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 426.72 532.468 Td [(genrm2)]TJ -240.449 -11.955 Td [(Long)-333(Precision)-334(Real)-1411(Long)-333(Precision)-333(Complex)-1412(psb)]TJ +/F8 9.9626 Tf 375.897 521.934 Td [(geasum)]TJ -240.449 -11.955 Td [(Long)-333(Precision)-334(Real)-1411(Long)-333(Precision)-333(Complex)-1412(psb)]TJ ET q -1 0 0 1 423.731 520.713 cm +1 0 0 1 372.908 510.178 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 426.72 520.513 Td [(genrm2)]TJ +/F8 9.9626 Tf 375.897 509.979 Td [(geasum)]TJ ET q -1 0 0 1 180.294 516.727 cm -[]0 d 0 J 0.398 w 0 0 m 284.534 0 l S +1 0 0 1 129.47 506.193 cm +[]0 d 0 J 0.398 w 0 0 m 284.561 0 l S Q 0 g 0 G BT -/F8 9.9626 Tf 278.877 488.688 Td [(T)83(able)-333(8:)-444(Data)-334(t)28(yp)-28(es)]TJ -0 g 0 G +/F8 9.9626 Tf 228.067 478.154 Td [(T)83(able)-333(6:)-444(Data)-334(t)28(yp)-28(es)]TJ 0 g 0 G 0 g 0 G 0 g 0 G -/F30 9.9626 Tf -128.172 -39.713 Td [(psb_genrm2\050x,)-525(desc_a,)-525(info)-525([,global]\051)]TJ 0 -11.955 Td [(psb_norm2\050x,)-525(desc_a,)-525(info)-525([,global]\051)]TJ -0 g 0 G -/F27 9.9626 Tf 0 -23.982 Td [(T)32(yp)-32(e:)]TJ +/F27 9.9626 Tf -128.172 -29.723 Td [(T)32(yp)-32(e:)]TJ 0 g 0 G /F8 9.9626 Tf 33.797 0 Td [(Sync)28(hronous.)]TJ 0 g 0 G -/F27 9.9626 Tf -33.797 -22.677 Td [(On)-383(En)32(try)]TJ +/F27 9.9626 Tf -33.797 -18.819 Td [(On)-383(En)32(try)]TJ 0 g 0 G 0 g 0 G - 0 -22.677 Td [(x)]TJ + 0 -18.819 Td [(x)]TJ 0 g 0 G -/F8 9.9626 Tf 11.028 0 Td [(the)-333(lo)-28(cal)-333(p)-28(ortion)-333(of)-334(global)-333(dense)-333(matrix)]TJ/F11 9.9626 Tf 176.118 0 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(.)]TJ -167.933 -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 [(in)]TJ/F8 9.9626 Tf 9.548 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-255(as:)-405(a)-255(rank)-254(one)-255(or)-255(t)28(w)28(o)-255(arra)28(y)-255(or)-255(an)-255(ob)-55(ject)-255(of)-255(t)28(yp)-28(e)]TJ +/F8 9.9626 Tf 11.028 0 Td [(the)-333(lo)-28(cal)-333(p)-28(ortion)-333(of)-334(global)-333(dense)-333(matrix)]TJ/F11 9.9626 Tf 176.118 0 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(.)]TJ -167.933 -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 [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-255(as:)-405(a)-255(rank)-254(one)-255(or)-255(t)28(w)27(o)-254(arra)27(y)-254(or)-255(an)-255(ob)-55(jec)-1(t)-254(of)-255(t)28(yp)-28(e)]TJ 0 0 1 rg 0 0 1 RG -/F30 9.9626 Tf 244.742 0 Td [(psb)]TJ +/F30 9.9626 Tf 244.743 0 Td [(psb)]TJ ET q -1 0 0 1 436.673 320.063 cm +1 0 0 1 385.864 363.172 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 439.811 319.864 Td [(T)]TJ +/F30 9.9626 Tf 389.002 362.973 Td [(T)]TJ ET q -1 0 0 1 445.669 320.063 cm +1 0 0 1 394.86 363.172 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 448.807 319.864 Td [(vect)]TJ +/F30 9.9626 Tf 397.998 362.973 Td [(vect)]TJ ET q -1 0 0 1 470.356 320.063 cm +1 0 0 1 419.547 363.172 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 473.495 319.864 Td [(type)]TJ +/F30 9.9626 Tf 422.685 362.973 Td [(type)]TJ 0 g 0 G -/F8 9.9626 Tf -297.884 -11.956 Td [(con)28(taining)-333(n)27(um)28(b)-28(ers)-333(of)-333(t)27(yp)-27(e)-334(sp)-27(ec)-1(i)1(\014ed)-334(in)-333(T)83(able)]TJ +/F8 9.9626 Tf -297.883 -11.955 Td [(con)28(taining)-333(n)27(um)28(b)-28(ers)-333(of)-333(t)28(yp)-28(e)-334(sp)-27(eci\014ed)-334(in)-333(T)83(able)]TJ 0 0 1 rg 0 0 1 RG - [-333(8)]TJ + [-333(6)]TJ 0 g 0 G [(.)]TJ 0 g 0 G -/F27 9.9626 Tf -24.906 -22.677 Td [(desc)]TJ +/F27 9.9626 Tf -24.907 -18.819 Td [(desc)]TJ ET q -1 0 0 1 172.619 285.431 cm +1 0 0 1 121.81 332.398 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 176.057 285.231 Td [(a)]TJ +/F27 9.9626 Tf 125.247 332.199 Td [(a)]TJ 0 g 0 G -/F8 9.9626 Tf 10.55 0 Td [(con)28(tains)-334(data)-333(structures)-333(for)-333(c)-1(omm)28(unications.)]TJ -10.996 -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(an)-333(ob)-55(ject)-334(of)-333(t)28(yp)-28(e)]TJ +/F8 9.9626 Tf 10.551 0 Td [(con)28(tains)-334(d)1(ata)-334(structures)-333(for)-333(com)-1(m)28(unications.)]TJ -10.996 -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 [(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(ob)-55(ject)-334(of)-333(t)28(yp)-28(e)]TJ 0 0 1 rg 0 0 1 RG -/F30 9.9626 Tf 135.659 0 Td [(psb)]TJ +/F30 9.9626 Tf 135.658 0 Td [(psb)]TJ ET q -1 0 0 1 327.588 237.61 cm +1 0 0 1 276.779 284.577 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 330.727 237.411 Td [(desc)]TJ +/F30 9.9626 Tf 279.917 284.378 Td [(desc)]TJ ET q -1 0 0 1 352.275 237.61 cm +1 0 0 1 301.466 284.577 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 355.414 237.411 Td [(type)]TJ +/F30 9.9626 Tf 304.604 284.378 Td [(type)]TJ 0 g 0 G -/F8 9.9626 Tf 20.921 0 Td [(.)]TJ +/F8 9.9626 Tf 20.922 0 Td [(.)]TJ 0 g 0 G -/F27 9.9626 Tf -225.63 -22.677 Td [(global)]TJ +/F27 9.9626 Tf -225.631 -18.818 Td [(global)]TJ 0 g 0 G -/F8 9.9626 Tf 34.737 0 Td [(Sp)-28(eci\014es)-357(whether)-357(the)-357(co)-1(mpu)1(tation)-358(should)-357(include)-357(the)-357(global)-357(reduction)]TJ -9.831 -11.955 Td [(across)-333(all)-334(pro)-27(c)-1(esses.)]TJ 0 -11.956 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 [(optional)]TJ/F8 9.9626 Tf 40.576 0 Td [(.)]TJ -70.188 -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(logical)-333(scalar.)-445(Default:)]TJ/F30 9.9626 Tf 168.812 0 Td [(global=.true.)]TJ +/F8 9.9626 Tf 34.738 0 Td [(Sp)-28(eci\014es)-357(whether)-357(the)-357(computation)-358(shoul)1(d)-358(include)-357(the)-357(global)-357(reduction)]TJ -9.831 -11.956 Td [(across)-333(all)-334(pro)-27(ce)-1(sses.)]TJ 0 -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 40.577 0 Td [(.)]TJ -70.188 -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(logical)-333(scalar.)-445(Default:)]TJ/F30 9.9626 Tf 168.812 0 Td [(global=.true.)]TJ 0 g 0 G -/F27 9.9626 Tf -193.718 -34.632 Td [(On)-383(Return)]TJ +/F27 9.9626 Tf -193.719 -30.774 Td [(On)-383(Return)]TJ 0 g 0 G 0 g 0 G -/F8 9.9626 Tf 166.874 -29.888 Td [(42)]TJ + 0 -18.819 Td [(F)96(unction)-384(v)64(alue)]TJ +0 g 0 G +/F8 9.9626 Tf 78.387 0 Td [(is)-333(the)-334(1-norm)-333(of)-333(v)28(e)-1(ctor)]TJ/F11 9.9626 Tf 102.781 0 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(.)]TJ -161.955 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 31.841 0 Td [(global)]TJ/F8 9.9626 Tf 32.002 0 Td [(unless)-225(the)-226(optional)-225(v)55(ariabl)1(e)]TJ/F30 9.9626 Tf 118.434 0 Td [(global=.false.)]TJ/F8 9.9626 Tf 75.47 0 Td [(has)-225(b)-28(een)-226(sp)-27(ec)-1(-)]TJ -257.747 -11.955 Td [(i\014ed)]TJ 0 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(long)-333(precision)-333(real)-334(n)28(um)28(b)-28(er.)]TJ +0 g 0 G + 141.968 -29.888 Td [(39)]TJ 0 g 0 G ET endstream endobj -1094 0 obj +1110 0 obj << -/Length 4633 +/Length 3885 >> stream 0 g 0 G 0 g 0 G 0 g 0 G BT -/F27 9.9626 Tf 99.895 706.129 Td [(F)96(unction)-384(V)96(alue)]TJ -0 g 0 G -/F8 9.9626 Tf 80.684 0 Td [(is)-333(the)-334(2-norm)-333(of)-333(v)28(e)-1(ctor)]TJ/F11 9.9626 Tf 102.781 0 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(.)]TJ -164.252 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 31.841 0 Td [(global)]TJ/F8 9.9626 Tf 32.002 0 Td [(unless)-225(the)-226(optional)-225(v)55(ariabl)1(e)]TJ/F30 9.9626 Tf 118.434 0 Td [(global=.false.)]TJ/F8 9.9626 Tf 75.47 0 Td [(has)-225(b)-28(een)-226(sp)-27(ec)-1(-)]TJ -257.747 -11.955 Td [(i\014ed)]TJ 0 -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 [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(long)-333(precision)-333(real)-334(n)28(um)28(b)-28(er.)]TJ -0 g 0 G -/F27 9.9626 Tf -24.907 -19.925 Td [(info)]TJ +/F27 9.9626 Tf 150.705 706.129 Td [(info)]TJ 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/F16 11.9552 Tf -24.907 -21.918 Td [(Notes)]TJ +/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/F16 11.9552 Tf -24.906 -21.918 Td [(Notes)]TJ 0 g 0 G -/F8 9.9626 Tf 12.177 -19.925 Td [(1.)]TJ +/F8 9.9626 Tf 12.176 -19.925 Td [(1.)]TJ 0 g 0 G - [-500(The)-241(computation)-240(of)-241(a)-240(global)-241(result)-241(requires)-240(a)-241(global)-241(comm)28(unication,)-259(whic)28(h)]TJ 12.73 -11.955 Td [(en)28(tails)-421(a)-420(signi\014can)27(t)-420(o)28(v)27(erhead.)-706(It)-420(ma)27(y)-420(b)-28(e)-421(necessary)-420(and/or)-421(advisable)-420(to)]TJ 0 -11.955 Td [(compute)-395(m)28(ultiple)-395(norms)-395(at)-395(the)-395(same)-395(time;)-426(in)-395(this)-395(case,)-410(it)-395(is)-395(p)-28(ossible)-395(to)]TJ 0 -11.955 Td [(impro)28(v)28(e)-334(the)-333(run)28(time)-334(e\016ciency)-333(b)28(y)-334(using)-333(the)-333(follo)28(wing)-334(sc)28(heme:)]TJ 25.189 -17.933 Td [(v)-128(r)-129(e)-128(s)-259(\050)-131(1)-130(\051)-642(=)-594(p)-82(s)-83(b)]TJ + [-500(The)-241(computation)-240(of)-241(a)-241(gl)1(obal)-241(result)-241(requires)-240(a)-241(global)-241(comm)28(unication,)-259(whic)28(h)]TJ 12.73 -11.955 Td [(en)28(tails)-421(a)-420(s)-1(i)1(gni\014can)27(t)-420(o)28(v)27(erhead.)-706(It)-420(ma)27(y)-420(b)-28(e)-421(necessary)-420(and/or)-421(advisable)-420(to)]TJ 0 -11.955 Td [(compute)-395(m)28(ultiple)-395(norms)-395(at)-395(the)-395(same)-395(time;)-426(in)-395(this)-395(case,)-410(it)-395(is)-395(p)-28(ossible)-395(to)]TJ 0 -11.955 Td [(impro)28(v)28(e)-334(the)-333(run)28(time)-334(e\016ciency)-333(b)28(y)-334(using)-333(the)-333(follo)28(wing)-334(sc)28(heme:)]TJ 25.19 -17.933 Td [(v)-128(r)-129(e)-128(s)-259(\050)-130(1)-131(\051)-642(=)-593(p)-83(s)-82(b)]TJ ET q -1 0 0 1 227.381 495.12 cm +1 0 0 1 278.18 562.866 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 231.194 494.921 Td [(g)-83(e)-82(n)-83(r)-83(m)-82(2)-189(\050)-148(x)-43(1)-248(,)-273(d)-113(e)-113(s)-112(c)]TJ +/F8 9.9626 Tf 281.99 562.667 Td [(g)-82(e)-83(a)-82(s)-83(u)-82(m)-188(\050)-149(x)-43(1)-247(,)-274(d)-112(e)-113(s)-113(c)]TJ ET q -1 0 0 1 316.705 495.12 cm +1 0 0 1 367.515 562.866 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 320.816 494.921 Td [(a)-386(,)-288(i)-127(n)-127(f)-127(o)-415(,)-302(g)-141(l)-142(o)-141(b)-141(a)-141(l)-190(=)-48(.)]TJ/F27 9.9626 Tf 92.224 0 Td [(f)-132(a)-131(l)-132(s)-131(e)]TJ/F8 9.9626 Tf 30.348 0 Td [(.)-178(\051)]TJ -293.397 -11.955 Td [(v)-128(r)-129(e)-128(s)-259(\050)-131(2)-130(\051)-642(=)-594(p)-82(s)-83(b)]TJ +/F8 9.9626 Tf 371.626 562.667 Td [(a)-386(,)-288(i)-127(n)-127(f)-127(o)-415(,)-302(g)-141(l)-142(o)-141(b)-141(a)-141(l)-190(=)-48(.)]TJ/F27 9.9626 Tf 92.223 0 Td [(f)-132(a)-131(l)-132(s)-131(e)]TJ/F8 9.9626 Tf 30.349 0 Td [(.)-178(\051)]TJ -293.397 -11.955 Td [(v)-128(r)-129(e)-128(s)-259(\050)-130(2)-131(\051)-642(=)-593(p)-83(s)-82(b)]TJ ET q -1 0 0 1 227.381 483.165 cm +1 0 0 1 278.18 550.911 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 231.194 482.966 Td [(g)-83(e)-82(n)-83(r)-83(m)-82(2)-189(\050)-148(x)-43(2)-248(,)-273(d)-113(e)-113(s)-112(c)]TJ +/F8 9.9626 Tf 281.99 550.712 Td [(g)-82(e)-83(a)-82(s)-83(u)-82(m)-188(\050)-149(x)-43(2)-247(,)-274(d)-112(e)-113(s)-113(c)]TJ ET q -1 0 0 1 316.705 483.165 cm +1 0 0 1 367.515 550.911 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 320.816 482.966 Td [(a)-386(,)-288(i)-127(n)-127(f)-127(o)-415(,)-302(g)-141(l)-142(o)-141(b)-141(a)-141(l)-190(=)-48(.)]TJ/F27 9.9626 Tf 92.224 0 Td [(f)-132(a)-131(l)-132(s)-131(e)]TJ/F8 9.9626 Tf 30.348 0 Td [(.)-178(\051)]TJ -293.397 -11.955 Td [(v)-128(r)-129(e)-128(s)-259(\050)-131(3)-130(\051)-642(=)-594(p)-82(s)-83(b)]TJ +/F8 9.9626 Tf 371.626 550.712 Td [(a)-386(,)-288(i)-127(n)-127(f)-127(o)-415(,)-302(g)-141(l)-142(o)-141(b)-141(a)-141(l)-190(=)-48(.)]TJ/F27 9.9626 Tf 92.223 0 Td [(f)-132(a)-131(l)-132(s)-131(e)]TJ/F8 9.9626 Tf 30.349 0 Td [(.)-178(\051)]TJ -293.397 -11.955 Td [(v)-128(r)-129(e)-128(s)-259(\050)-130(3)-131(\051)-642(=)-593(p)-83(s)-82(b)]TJ ET q -1 0 0 1 227.381 471.21 cm +1 0 0 1 278.18 538.956 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 231.194 471.011 Td [(g)-83(e)-82(n)-83(r)-83(m)-82(2)-189(\050)-148(x)-43(3)-248(,)-273(d)-113(e)-113(s)-112(c)]TJ +/F8 9.9626 Tf 281.99 538.757 Td [(g)-82(e)-83(a)-82(s)-83(u)-82(m)-188(\050)-149(x)-43(3)-247(,)-274(d)-112(e)-113(s)-113(c)]TJ ET q -1 0 0 1 316.705 471.21 cm +1 0 0 1 367.515 538.956 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 320.816 471.011 Td [(a)-386(,)-288(i)-127(n)-127(f)-127(o)-415(,)-302(g)-141(l)-142(o)-141(b)-141(a)-141(l)-190(=)-48(.)]TJ/F27 9.9626 Tf 92.224 0 Td [(f)-132(a)-131(l)-132(s)-131(e)]TJ/F8 9.9626 Tf 30.348 0 Td [(.)-178(\051)]TJ/F27 9.9626 Tf -293.299 -11.956 Td [(c)-138(a)-138(l)-139(l)]TJ/F8 9.9626 Tf 29.236 0 Td [(p)-73(s)-72(b)]TJ +/F8 9.9626 Tf 371.626 538.757 Td [(a)-386(,)-288(i)-127(n)-127(f)-127(o)-415(,)-302(g)-141(l)-142(o)-141(b)-141(a)-141(l)-190(=)-48(.)]TJ/F27 9.9626 Tf 92.223 0 Td [(f)-132(a)-131(l)-132(s)-131(e)]TJ/F8 9.9626 Tf 30.349 0 Td [(.)-178(\051)]TJ/F27 9.9626 Tf -293.299 -11.956 Td [(c)-138(a)-138(l)-139(l)]TJ/F8 9.9626 Tf 29.198 0 Td [(p)-69(s)-69(b)]TJ ET q -1 0 0 1 197.093 459.255 cm +1 0 0 1 247.753 527.001 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 200.806 459.055 Td [(n)-73(r)-72(m)-73(2)-178(\050)-245(i)-138(c)-139(t)-139(x)-139(t)-439(,)-290(v)-128(r)-128(e)-129(s)-293(\050)-165(1)-165(:)-165(3)-165(\051)-165(\051)]TJ +/F8 9.9626 Tf 251.428 526.801 Td [(s)-69(u)-69(m)-174(\050)-245(i)-139(c)-139(t)-138(x)-139(t)-439(,)-290(v)-128(r)-128(e)-129(s)-293(\050)-165(1)-165(:)-165(3)-165(\051)-165(\051)]TJ 0 g 0 G 0 g 0 G - -76.004 -21.917 Td [(In)-353(this)-354(w)28(a)28(y)-354(the)-353(global)-354(comm)28(unication,)-359(whic)28(h)-353(for)-354(small)-353(sizes)-354(is)-354(a)-353(latency-)]TJ 0 -11.956 Td [(b)-28(ound)-333(op)-28(eration,)-333(is)-333(in)28(v)27(ok)28(ed)-333(only)-333(onc)-1(e.)]TJ + -75.817 -21.917 Td [(In)-354(th)1(is)-354(w)28(a)28(y)-354(the)-353(global)-354(comm)28(unication,)-359(whic)28(h)-353(for)-354(small)-353(size)-1(s)-353(is)-354(a)-353(latency-)]TJ 0 -11.956 Td [(b)-28(ound)-333(op)-28(eration,)-333(is)-333(in)27(v)28(ok)28(ed)-333(only)-334(once.)]TJ 0 g 0 G - 141.968 -334.744 Td [(43)]TJ + 141.968 -402.49 Td [(40)]TJ 0 g 0 G ET endstream endobj -1108 0 obj +1123 0 obj << -/Length 6162 +/Length 7328 >> stream 0 g 0 G 0 g 0 G BT -/F16 11.9552 Tf 150.705 706.129 Td [(psb)]TJ +/F16 11.9552 Tf 99.895 706.129 Td [(4.7)-1125(psb)]TJ ET q -1 0 0 1 171.761 706.328 cm +1 0 0 1 151.587 706.328 cm []0 d 0 J 0.398 w 0 0 m 4.035 0 l S Q BT -/F16 11.9552 Tf 175.796 706.129 Td [(genrm2s)-375(|)-375(Generalized)-375(2-Norm)-375(of)-375(V)94(ector)]TJ/F8 9.9626 Tf -25.091 -18.389 Td [(This)-310(subroutine)-310(computes)-309(a)-310(series)-310(of)-310(2-norms)-310(on)-310(the)-309(c)-1(olu)1(m)-1(n)1(s)-310(of)-310(a)-310(dense)-310(matrix)]TJ/F11 9.9626 Tf 0 -11.956 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(:)]TJ/F11 9.9626 Tf 126.531 -11.955 Td [(r)-28(es)]TJ/F8 9.9626 Tf 14.08 0 Td [(\050)]TJ/F11 9.9626 Tf 3.875 0 Td [(i)]TJ/F8 9.9626 Tf 3.432 0 Td [(\051)]TJ/F14 9.9626 Tf 6.642 0 Td [(\040)-278(k)]TJ/F11 9.9626 Tf 17.711 0 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(\050:)]TJ/F11 9.9626 Tf 6.642 0 Td [(;)-167(i)]TJ/F8 9.9626 Tf 7.86 0 Td [(\051)]TJ/F14 9.9626 Tf 3.874 0 Td [(k)]TJ/F7 6.9738 Tf 4.981 -1.494 Td [(2)]TJ +/F16 11.9552 Tf 155.621 706.129 Td [(geasums)-375(|)-375(Generalized)-375(1-Norm)-375(of)-375(V)94(ector)]TJ/F8 9.9626 Tf -55.726 -19.22 Td [(This)-310(subroutine)-310(computes)-309(a)-310(series)-310(of)-310(1-norms)-310(on)-310(the)-310(columns)-309(of)-310(a)-310(dense)-310(matrix)]TJ/F11 9.9626 Tf 0 -11.955 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(:)]TJ/F11 9.9626 Tf 119.513 -13.293 Td [(r)-28(es)]TJ/F8 9.9626 Tf 14.08 0 Td [(\050)]TJ/F11 9.9626 Tf 3.874 0 Td [(i)]TJ/F8 9.9626 Tf 3.433 0 Td [(\051)]TJ/F14 9.9626 Tf 6.641 0 Td [(\040)]TJ/F8 9.9626 Tf 12.73 0 Td [(max)]TJ/F10 6.9738 Tf 7.069 -6.503 Td [(k)]TJ/F14 9.9626 Tf 13.133 6.503 Td [(j)]TJ/F11 9.9626 Tf 2.768 0 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(\050)]TJ/F11 9.9626 Tf 3.874 0 Td [(k)-31(;)-167(i)]TJ/F8 9.9626 Tf 13.36 0 Td [(\051)]TJ/F14 9.9626 Tf 3.875 0 Td [(j)]TJ/F8 9.9626 Tf -215.738 -22.73 Td [(This)-333(function)-334(computes)-333(the)-333(1-norm)-334(of)-333(a)-333(v)28(e)-1(ctor)]TJ/F11 9.9626 Tf 207.168 0 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(.)]TJ -212.862 -11.955 Td [(If)]TJ/F11 9.9626 Tf 9.963 0 Td [(x)]TJ/F8 9.9626 Tf 9.015 0 Td [(is)-333(a)-334(real)-333(v)28(ector)-334(it)-333(computes)-333(1-norm)-334(as:)]TJ/F11 9.9626 Tf 123.012 -22.81 Td [(r)-28(es)]TJ/F8 9.9626 Tf 14.08 0 Td [(\050)]TJ/F11 9.9626 Tf 3.875 0 Td [(i)]TJ/F8 9.9626 Tf 3.432 0 Td [(\051)]TJ/F14 9.9626 Tf 6.641 0 Td [(\040)-278(k)]TJ/F11 9.9626 Tf 17.712 0 Td [(x)]TJ/F10 6.9738 Tf 5.694 -1.495 Td [(i)]TJ/F14 9.9626 Tf 3.317 1.495 Td [(k)]TJ/F8 9.9626 Tf -196.741 -22.81 Td [(else)-333(if)]TJ/F11 9.9626 Tf 28.006 0 Td [(x)]TJ/F8 9.9626 Tf 9.015 0 Td [(is)-333(a)-334(complex)-333(v)28(ector)-334(then)-333(it)-333(computes)-334(1-norm)-333(as:)]TJ/F11 9.9626 Tf 69.698 -22.81 Td [(r)-28(es)]TJ/F8 9.9626 Tf 14.08 0 Td [(\050)]TJ/F11 9.9626 Tf 3.874 0 Td [(i)]TJ/F8 9.9626 Tf 3.433 0 Td [(\051)]TJ/F14 9.9626 Tf 6.641 0 Td [(\040)-278(k)]TJ/F11 9.9626 Tf 17.712 0 Td [(r)-28(e)]TJ/F8 9.9626 Tf 9.41 0 Td [(\050)]TJ/F11 9.9626 Tf 3.874 0 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(\051)]TJ/F14 9.9626 Tf 3.875 0 Td [(k)]TJ/F7 6.9738 Tf 4.981 -1.494 Td [(1)]TJ/F8 9.9626 Tf 6.683 1.494 Td [(+)]TJ/F14 9.9626 Tf 9.963 0 Td [(k)]TJ/F11 9.9626 Tf 4.981 0 Td [(im)]TJ/F8 9.9626 Tf 12.18 0 Td [(\050)]TJ/F11 9.9626 Tf 3.874 0 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(\051)]TJ/F14 9.9626 Tf 3.874 0 Td [(k)]TJ/F7 6.9738 Tf 4.982 -1.494 Td [(1)]TJ 0 g 0 G 0 g 0 G -/F30 9.9626 Tf -207.016 -20.424 Td [(call)-525(psb_genrm2s\050res,)-525(x,)-525(desc_a,)-525(info\051)]TJ +/F30 9.9626 Tf -232.524 -21.762 Td [(call)-525(psb_geasums\050res,)-525(x,)-525(desc_a,)-525(info\051)]TJ 0 g 0 G 0 g 0 G 0 g 0 G ET q -1 0 0 1 178.071 617.58 cm +1 0 0 1 127.261 508.729 cm []0 d 0 J 0.398 w 0 0 m 288.979 0 l S Q BT -/F11 9.9626 Tf 184.049 609.013 Td [(r)-28(es)-8770(x)]TJ/F27 9.9626 Tf 221.862 0 Td [(Subroutine)]TJ +/F11 9.9626 Tf 133.239 500.161 Td [(r)-28(es)-8770(x)]TJ/F27 9.9626 Tf 221.863 0 Td [(Subroutine)]TJ ET q -1 0 0 1 178.071 605.227 cm +1 0 0 1 127.261 496.375 cm []0 d 0 J 0.398 w 0 0 m 288.979 0 l S Q BT -/F8 9.9626 Tf 184.049 596.659 Td [(Short)-333(Precision)-333(R)-1(eal)-1200(S)1(hort)-334(Precision)-333(Real)-3103(psb)]TJ +/F8 9.9626 Tf 133.239 487.807 Td [(Short)-333(Precision)-334(Real)-1200(Shor)1(t)-334(Precision)-333(Real)-3103(psb)]TJ ET q -1 0 0 1 421.508 596.858 cm +1 0 0 1 370.699 488.007 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 424.497 596.659 Td [(genrm2s)]TJ -240.448 -11.955 Td [(Long)-333(Precision)-334(Real)-1411(Long)-333(Precision)-333(Real)-3314(psb)]TJ +/F8 9.9626 Tf 373.688 487.807 Td [(geasums)]TJ -240.449 -11.955 Td [(Long)-333(Precision)-334(Real)-1411(Long)-333(Precision)-333(Real)-3314(psb)]TJ ET q -1 0 0 1 421.508 584.903 cm +1 0 0 1 370.699 476.051 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 424.497 584.704 Td [(genrm2s)]TJ -240.448 -11.955 Td [(Short)-333(Precision)-333(R)-1(eal)-1200(S)1(hort)-334(Precision)-333(Complex)-1200(psb)]TJ +/F8 9.9626 Tf 373.688 475.852 Td [(geasums)]TJ -240.449 -11.955 Td [(Short)-333(Precision)-334(Real)-1200(Shor)1(t)-334(Precision)-333(Complex)-1200(psb)]TJ ET q -1 0 0 1 421.508 572.948 cm +1 0 0 1 370.699 464.096 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 424.497 572.749 Td [(genrm2s)]TJ -240.448 -11.956 Td [(Long)-333(Precision)-334(Real)-1411(Long)-333(Precision)-333(Complex)-1412(p)1(s)-1(b)]TJ +/F8 9.9626 Tf 373.688 463.897 Td [(geasums)]TJ -240.449 -11.955 Td [(Long)-333(Precision)-334(Real)-1411(Long)-333(Precision)-333(Complex)-1412(psb)]TJ ET q -1 0 0 1 421.508 560.993 cm +1 0 0 1 370.699 452.141 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 424.497 560.793 Td [(genrm2s)]TJ +/F8 9.9626 Tf 373.688 451.942 Td [(geasums)]TJ ET q -1 0 0 1 178.071 557.008 cm +1 0 0 1 127.261 448.156 cm []0 d 0 J 0.398 w 0 0 m 288.979 0 l S Q 0 g 0 G BT -/F8 9.9626 Tf 278.877 528.968 Td [(T)83(able)-333(9:)-444(Data)-334(t)28(yp)-28(es)]TJ +/F8 9.9626 Tf 228.067 420.117 Td [(T)83(able)-333(7:)-444(Data)-334(t)28(yp)-28(es)]TJ 0 g 0 G 0 g 0 G 0 g 0 G -/F27 9.9626 Tf -128.172 -33.596 Td [(T)32(yp)-32(e:)]TJ +/F27 9.9626 Tf -128.172 -35.827 Td [(T)32(yp)-32(e:)]TJ 0 g 0 G /F8 9.9626 Tf 33.797 0 Td [(Sync)28(hronous.)]TJ 0 g 0 G -/F27 9.9626 Tf -33.797 -19.925 Td [(On)-383(En)32(try)]TJ +/F27 9.9626 Tf -33.797 -21.709 Td [(On)-383(En)32(try)]TJ 0 g 0 G 0 g 0 G - 0 -19.926 Td [(x)]TJ + 0 -21.71 Td [(x)]TJ 0 g 0 G -/F8 9.9626 Tf 11.028 0 Td [(the)-333(lo)-28(cal)-333(p)-28(ortion)-333(of)-334(global)-333(dense)-333(matrix)]TJ/F11 9.9626 Tf 176.118 0 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(.)]TJ -167.933 -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 [(in)]TJ/F8 9.9626 Tf 9.548 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-255(as:)-405(a)-255(rank)-254(one)-255(or)-255(t)28(w)28(o)-255(arra)28(y)-255(or)-255(an)-255(ob)-55(ject)-255(of)-255(t)28(yp)-28(e)]TJ +/F8 9.9626 Tf 11.028 0 Td [(the)-333(lo)-28(cal)-333(p)-28(ortion)-333(of)-334(global)-333(dense)-333(matrix)]TJ/F11 9.9626 Tf 176.118 0 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(.)]TJ -167.933 -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 [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-255(as:)-405(a)-255(rank)-254(one)-255(or)-255(t)28(w)27(o)-254(arra)27(y)-254(or)-255(an)-255(ob)-55(jec)-1(t)-254(of)-255(t)28(yp)-28(e)]TJ 0 0 1 rg 0 0 1 RG -/F30 9.9626 Tf 244.742 0 Td [(psb)]TJ +/F30 9.9626 Tf 244.743 0 Td [(psb)]TJ ET q -1 0 0 1 436.673 407.9 cm +1 0 0 1 385.864 293.25 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 439.811 407.701 Td [(T)]TJ +/F30 9.9626 Tf 389.002 293.051 Td [(T)]TJ ET q -1 0 0 1 445.669 407.9 cm +1 0 0 1 394.86 293.25 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 448.807 407.701 Td [(vect)]TJ +/F30 9.9626 Tf 397.998 293.051 Td [(vect)]TJ ET q -1 0 0 1 470.356 407.9 cm +1 0 0 1 419.547 293.25 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 473.495 407.701 Td [(type)]TJ +/F30 9.9626 Tf 422.685 293.051 Td [(type)]TJ 0 g 0 G -/F8 9.9626 Tf -297.884 -11.955 Td [(con)28(taining)-333(n)27(um)28(b)-28(ers)-333(of)-333(t)27(yp)-27(e)-334(sp)-27(ec)-1(i)1(\014ed)-334(in)-333(T)83(able)]TJ +/F8 9.9626 Tf -297.883 -11.956 Td [(con)28(taining)-333(n)27(um)28(b)-28(ers)-333(of)-333(t)28(yp)-28(e)-334(sp)-27(eci\014ed)-334(in)-333(T)83(able)]TJ 0 0 1 rg 0 0 1 RG - [-333(9)]TJ + [-333(7)]TJ 0 g 0 G [(.)]TJ 0 g 0 G -/F27 9.9626 Tf -24.906 -19.926 Td [(desc)]TJ -ET -q -1 0 0 1 172.619 376.02 cm -[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S -Q -BT -/F27 9.9626 Tf 176.057 375.82 Td [(a)]TJ -0 g 0 G -/F8 9.9626 Tf 10.55 0 Td [(con)28(tains)-334(data)-333(structures)-333(for)-333(c)-1(omm)28(unications.)]TJ -10.996 -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(an)-333(ob)-55(ject)-334(of)-333(t)28(yp)-28(e)]TJ -0 0 1 rg 0 0 1 RG -/F30 9.9626 Tf 135.659 0 Td [(psb)]TJ -ET -q -1 0 0 1 327.588 328.199 cm -[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S -Q -BT -/F30 9.9626 Tf 330.727 328 Td [(desc)]TJ -ET -q -1 0 0 1 352.275 328.199 cm -[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S -Q -BT -/F30 9.9626 Tf 355.414 328 Td [(type)]TJ -0 g 0 G -/F8 9.9626 Tf 20.921 0 Td [(.)]TJ -0 g 0 G -/F27 9.9626 Tf -225.63 -19.926 Td [(On)-383(Return)]TJ -0 g 0 G -0 g 0 G - 0 -19.925 Td [(res)]TJ -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 [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(long)-333(precision)-334(r)1(e)-1(al)-333(n)28(um)28(b)-28(er.)]TJ -0 g 0 G -/F27 9.9626 Tf -24.906 -19.926 Td [(info)]TJ -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 -94.1 Td [(44)]TJ -0 g 0 G -ET - -endstream -endobj -1115 0 obj -<< -/Length 5516 ->> -stream -0 g 0 G -0 g 0 G -BT -/F16 11.9552 Tf 99.895 706.129 Td [(psb)]TJ -ET -q -1 0 0 1 120.951 706.328 cm -[]0 d 0 J 0.398 w 0 0 m 4.035 0 l S -Q -BT -/F16 11.9552 Tf 124.986 706.129 Td [(norm1)-375(|)-375(1-Norm)-375(of)-375(Sparse)-375(Matrix)]TJ/F8 9.9626 Tf -25.091 -18.389 Td [(This)-333(function)-334(computes)-333(the)-333(1-norm)-334(of)-333(a)-333(matrix)]TJ/F11 9.9626 Tf 209.659 0 Td [(A)]TJ/F8 9.9626 Tf 7.472 0 Td [(:)]TJ/F11 9.9626 Tf -76.216 -33.873 Td [(nr)-28(m)]TJ/F8 9.9626 Tf 19.499 0 Td [(1)]TJ/F14 9.9626 Tf 7.749 0 Td [(\040)-278(k)]TJ/F11 9.9626 Tf 17.711 0 Td [(A)]TJ/F14 9.9626 Tf 7.472 0 Td [(k)]TJ/F7 6.9738 Tf 4.981 -1.495 Td [(1)]TJ/F8 9.9626 Tf -198.327 -20.423 Td [(where:)]TJ -0 g 0 G -/F11 9.9626 Tf 0 -19.926 Td [(A)]TJ -0 g 0 G -/F8 9.9626 Tf 12.454 0 Td [(represen)28(ts)-334(the)-333(global)-333(matrix)]TJ/F11 9.9626 Tf 125.834 0 Td [(A)]TJ -0 g 0 G -0 g 0 G -0 g 0 G -ET -q -1 0 0 1 180.183 589.962 cm -[]0 d 0 J 0.398 w 0 0 m 183.136 0 l S -Q -BT -/F11 9.9626 Tf 186.161 581.394 Td [(A)]TJ/F27 9.9626 Tf 120.409 0 Td [(F)96(unction)]TJ -ET -q -1 0 0 1 180.183 577.608 cm -[]0 d 0 J 0.398 w 0 0 m 183.136 0 l S -Q -BT -/F8 9.9626 Tf 186.161 569.04 Td [(Short)-333(Precision)-334(Real)-3102(psb)]TJ -ET -q -1 0 0 1 322.167 569.24 cm -[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S -Q -BT -/F8 9.9626 Tf 325.156 569.04 Td [(spnrm1)]TJ -138.995 -11.955 Td [(Long)-333(Precision)-334(Real)-3314(p)1(s)-1(b)]TJ -ET -q -1 0 0 1 322.167 557.284 cm -[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S -Q -BT -/F8 9.9626 Tf 325.156 557.085 Td [(spnrm1)]TJ -138.995 -11.955 Td [(Short)-333(Precision)-334(Complex)-1200(psb)]TJ -ET -q -1 0 0 1 322.167 545.329 cm -[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S -Q -BT -/F8 9.9626 Tf 325.156 545.13 Td [(spnrm1)]TJ -138.995 -11.955 Td [(Long)-333(Precision)-334(Complex)-1411(psb)]TJ -ET -q -1 0 0 1 322.167 533.374 cm -[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S -Q -BT -/F8 9.9626 Tf 325.156 533.175 Td [(spnrm1)]TJ -ET -q -1 0 0 1 180.183 529.389 cm -[]0 d 0 J 0.398 w 0 0 m 183.136 0 l S -Q -0 g 0 G -BT -/F8 9.9626 Tf 225.577 501.35 Td [(T)83(able)-333(10:)-444(Data)-334(t)28(yp)-28(es)]TJ -0 g 0 G -0 g 0 G -0 g 0 G -0 g 0 G -/F30 9.9626 Tf -125.682 -33.873 Td [(psb_spnrm1\050A,)-525(desc_a,)-525(info\051)]TJ 0 -11.956 Td [(psb_norm1\050A,)-525(desc_a,)-525(info\051)]TJ -0 g 0 G -/F27 9.9626 Tf 0 -21.917 Td [(T)32(yp)-32(e:)]TJ -0 g 0 G -/F8 9.9626 Tf 33.797 0 Td [(Sync)28(hronous.)]TJ -0 g 0 G -/F27 9.9626 Tf -33.797 -19.926 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(lo)-28(cal)-333(p)-28(ortion)-333(of)-334(the)-333(global)-333(sparse)-334(matrix)]TJ/F11 9.9626 Tf 196.126 0 Td [(A)]TJ/F8 9.9626 Tf 7.472 0 Td [(.)]TJ -189.242 -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 [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.956 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(ob)-55(ject)-334(of)-333(t)28(yp)-28(e)]TJ -0 0 1 rg 0 0 1 RG -/F30 9.9626 Tf 135.658 0 Td [(psb)]TJ -ET -q -1 0 0 1 276.779 346.132 cm -[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S -Q -BT -/F30 9.9626 Tf 279.917 345.932 Td [(Tspmat)]TJ -ET -q -1 0 0 1 311.927 346.132 cm -[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S -Q -BT -/F30 9.9626 Tf 315.065 345.932 Td [(type)]TJ -0 g 0 G -/F8 9.9626 Tf 20.921 0 Td [(.)]TJ -0 g 0 G -/F27 9.9626 Tf -236.091 -19.925 Td [(desc)]TJ +/F27 9.9626 Tf -24.907 -21.709 Td [(desc)]TJ ET q -1 0 0 1 121.81 326.206 cm +1 0 0 1 121.81 259.585 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 125.247 326.007 Td [(a)]TJ +/F27 9.9626 Tf 125.247 259.386 Td [(a)]TJ 0 g 0 G -/F8 9.9626 Tf 10.551 0 Td [(con)28(tains)-334(d)1(ata)-334(structures)-333(for)-333(com)-1(m)28(unications.)]TJ -10.996 -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 [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.956 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(ob)-55(ject)-334(of)-333(t)28(yp)-28(e)]TJ +/F8 9.9626 Tf 10.551 0 Td [(con)28(tains)-334(d)1(ata)-334(structures)-333(for)-333(com)-1(m)28(unications.)]TJ -10.996 -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 [(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(ob)-55(ject)-334(of)-333(t)28(yp)-28(e)]TJ 0 0 1 rg 0 0 1 RG /F30 9.9626 Tf 135.658 0 Td [(psb)]TJ ET q -1 0 0 1 276.779 278.386 cm +1 0 0 1 276.779 211.765 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 279.917 278.186 Td [(desc)]TJ +/F30 9.9626 Tf 279.917 211.565 Td [(desc)]TJ ET q -1 0 0 1 301.466 278.386 cm +1 0 0 1 301.466 211.765 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 304.604 278.186 Td [(type)]TJ +/F30 9.9626 Tf 304.604 211.565 Td [(type)]TJ 0 g 0 G /F8 9.9626 Tf 20.922 0 Td [(.)]TJ 0 g 0 G -/F27 9.9626 Tf -225.631 -19.925 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 +/F27 9.9626 Tf -225.631 -21.709 Td [(On)-383(Return)]TJ 0 g 0 G -/F8 9.9626 Tf 78.387 0 Td [(is)-333(the)-334(1-norm)-333(of)-333(sparse)-334(submatrix)]TJ/F11 9.9626 Tf 150.297 0 Td [(A)]TJ/F8 9.9626 Tf 7.472 0 Td [(.)]TJ -211.249 -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 [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(long)-333(precision)-333(real)-334(n)28(um)28(b)-28(er.)]TJ 0 g 0 G -/F27 9.9626 Tf -24.907 -19.926 Td [(info)]TJ + 0 -21.71 Td [(res)]TJ 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 +/F8 9.9626 Tf 19.47 0 Td [(con)28(tains)-334(the)-333(1-norm)-333(of)-334(\050th)1(e)-334(columns)-333(of)-78(\051)]TJ/F11 9.9626 Tf 177.751 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)-324(real)-325(n)28(um)28(b)-28(er.)-441(Sp)-28(eci\014ed)-324(as:)-440(a)-324(long)-324(precision)-325(r)1(e)-1(al)]TJ 0 -11.955 Td [(n)28(um)28(b)-28(er.)]TJ 0 g 0 G - 141.968 -56.242 Td [(45)]TJ + 141.968 -29.888 Td [(41)]TJ 0 g 0 G ET endstream endobj -1011 0 obj +1018 0 obj << /Type /ObjStm /N 100 -/First 980 -/Length 11075 +/First 986 +/Length 11547 >> stream -1007 0 1008 58 1009 117 1010 175 1001 234 1019 353 1012 536 1013 680 1014 825 1015 969 -1016 1115 1017 1262 1021 1407 220 1465 1022 1522 1018 1581 1024 1726 1026 1843 1023 1902 1031 1982 -1027 2138 1028 2281 1029 2426 1033 2573 224 2631 1034 2688 1030 2746 1036 2891 1038 3008 1039 3067 -1040 3126 1041 3185 1042 3244 1043 3303 1044 3362 1035 3421 1049 3540 1045 3697 1046 3841 1047 3987 -1051 4133 228 4191 1052 4248 1048 4307 1058 4452 1054 4609 1055 4753 1056 4899 1060 5046 232 5105 -1061 5163 1057 5222 1063 5379 1065 5497 1066 5555 1067 5613 1068 5671 1069 5730 1070 5789 1071 5848 -1062 5907 1076 6000 1072 6157 1073 6300 1074 6445 1078 6591 236 6650 1079 6708 1075 6767 1081 6924 -1083 7042 1080 7100 1088 7180 1084 7337 1085 7481 1086 7627 1090 7774 240 7833 1091 7891 1087 7950 -1093 8095 1095 8213 1096 8271 1097 8329 1098 8387 1099 8446 1100 8505 1101 8564 1092 8623 1107 8742 -1103 8899 1104 9043 1105 9188 1109 9335 244 9394 1110 9452 1106 9511 1114 9655 1111 9803 1112 9948 -% 1007 0 obj -<< -/D [1002 0 R /XYZ 175.611 455.07 null] ->> -% 1008 0 obj +1015 0 1017 117 220 175 1014 232 1027 312 1019 495 1020 641 1021 785 1022 931 1023 1077 +1024 1221 1029 1367 224 1426 1000 1484 1026 1542 1033 1674 1025 1831 1030 1978 1031 2121 1035 2267 +1032 2325 1043 2431 1037 2606 1038 2749 1039 2895 1040 3038 1041 3183 1045 3329 228 3388 1046 3446 +1042 3505 1049 3650 1047 3789 1051 3935 1052 3993 1053 4051 1054 4109 1055 4167 1056 4226 1057 4284 +1048 4343 1065 4462 1058 4646 1059 4790 1060 4935 1061 5079 1062 5225 1063 5372 1067 5517 232 5576 +1068 5634 1064 5693 1070 5838 1072 5956 1069 6014 1077 6094 1073 6251 1074 6394 1075 6539 1079 6686 +236 6745 1080 6803 1076 6861 1082 7006 1084 7124 1085 7182 1086 7240 1087 7298 1088 7357 1089 7416 +1090 7475 1081 7534 1096 7653 1092 7810 1093 7954 1094 8100 1098 8246 240 8305 1099 8363 1095 8422 +1104 8567 1100 8724 1101 8868 1102 9014 1106 9161 244 9219 1107 9276 1103 9335 1109 9492 1111 9610 +1112 9669 1113 9728 1114 9787 1115 9846 1116 9905 1117 9964 1108 10023 1122 10116 1118 10273 1119 10416 +% 1015 0 obj << -/D [1002 0 R /XYZ 175.611 443.115 null] +/Type /Page +/Contents 1016 0 R +/Resources 1014 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 993 0 R >> -% 1009 0 obj +% 1017 0 obj << -/D [1002 0 R /XYZ 175.611 431.16 null] +/D [1015 0 R /XYZ 98.895 753.953 null] >> -% 1010 0 obj +% 220 0 obj << -/D [1002 0 R /XYZ 175.611 419.205 null] +/D [1015 0 R /XYZ 99.895 716.092 null] >> -% 1001 0 obj +% 1014 0 obj << -/Font << /F8 561 0 R /F27 560 0 R /F30 769 0 R /F11 755 0 R /F16 558 0 R >> +/Font << /F16 582 0 R /F8 585 0 R >> /ProcSet [ /PDF /Text ] >> -% 1019 0 obj +% 1027 0 obj << /Type /Page -/Contents 1020 0 R -/Resources 1018 0 R +/Contents 1028 0 R +/Resources 1026 0 R /MediaBox [0 0 595.276 841.89] -/Parent 999 0 R -/Annots [ 1012 0 R 1013 0 R 1014 0 R 1015 0 R 1016 0 R 1017 0 R ] +/Parent 993 0 R +/Annots [ 1019 0 R 1020 0 R 1021 0 R 1022 0 R 1023 0 R 1024 0 R ] >> -% 1012 0 obj +% 1019 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [368.549 382.111 444.603 393.236] -/A << /S /GoTo /D (vdata) >> +/Rect [432.897 401.949 439.871 412.798] +/A << /S /GoTo /D (table.1) >> >> -% 1013 0 obj +% 1020 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [328.333 370.432 335.307 381.28] -/A << /S /GoTo /D (table.3) >> +/Rect [419.358 333.522 495.412 344.647] +/A << /S /GoTo /D (vdata) >> >> -% 1014 0 obj +% 1021 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [368.549 291.951 444.603 303.076] -/A << /S /GoTo /D (vdata) >> +/Rect [379.142 321.844 386.116 332.692] +/A << /S /GoTo /D (table.1) >> >> -% 1015 0 obj +% 1022 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [328.544 280.273 335.518 291.121] -/A << /S /GoTo /D (table.3) >> +/Rect [432.897 241.738 439.871 252.586] +/A << /S /GoTo /D (table.1) >> >> -% 1016 0 obj +% 1023 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [259.464 201.792 326.522 212.917] -/A << /S /GoTo /D (descdata) >> +/Rect [419.358 173.311 495.412 184.436] +/A << /S /GoTo /D (vdata) >> >> -% 1017 0 obj +% 1024 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [151.203 119.329 158.177 128.24] -/A << /S /GoTo /D (table.2) >> ->> -% 1021 0 obj -<< -/D [1019 0 R /XYZ 98.895 753.953 null] ->> -% 220 0 obj -<< -/D [1019 0 R /XYZ 99.895 720.077 null] +/Rect [396.435 161.632 403.409 172.481] +/A << /S /GoTo /D (table.1) >> >> -% 1022 0 obj +% 1029 0 obj << -/D [1019 0 R /XYZ 267.641 510.309 null] +/D [1027 0 R /XYZ 149.705 753.953 null] >> -% 1018 0 obj +% 224 0 obj << -/Font << /F16 558 0 R /F8 561 0 R /F11 755 0 R /F14 772 0 R /F10 771 0 R /F30 769 0 R /F27 560 0 R >> -/ProcSet [ /PDF /Text ] +/D [1027 0 R /XYZ 150.705 716.092 null] >> -% 1024 0 obj +% 1000 0 obj << -/Type /Page -/Contents 1025 0 R -/Resources 1023 0 R -/MediaBox [0 0 595.276 841.89] -/Parent 999 0 R +/D [1027 0 R /XYZ 318.451 539.42 null] >> % 1026 0 obj << -/D [1024 0 R /XYZ 149.705 753.953 null] ->> -% 1023 0 obj -<< -/Font << /F27 560 0 R /F8 561 0 R >> +/Font << /F16 582 0 R /F8 585 0 R /F11 797 0 R /F14 814 0 R /F30 811 0 R /F27 584 0 R >> /ProcSet [ /PDF /Text ] >> -% 1031 0 obj +% 1033 0 obj << /Type /Page -/Contents 1032 0 R -/Resources 1030 0 R +/Contents 1034 0 R +/Resources 1032 0 R /MediaBox [0 0 595.276 841.89] -/Parent 999 0 R -/Annots [ 1027 0 R 1028 0 R 1029 0 R ] +/Parent 1036 0 R +/Annots [ 1025 0 R 1030 0 R 1031 0 R ] >> -% 1027 0 obj +% 1025 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [368.549 315.41 444.603 326.535] -/A << /S /GoTo /D (vdata) >> +/Rect [259.464 679.008 326.522 690.133] +/A << /S /GoTo /D (descdata) >> >> -% 1028 0 obj +% 1030 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [325.411 303.732 332.385 314.58] -/A << /S /GoTo /D (table.4) >> +/Rect [368.549 589.345 444.603 600.47] +/A << /S /GoTo /D (vdata) >> >> -% 1029 0 obj +% 1031 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [259.464 233.372 326.522 244.497] -/A << /S /GoTo /D (descdata) >> ->> -% 1033 0 obj -<< -/D [1031 0 R /XYZ 98.895 753.953 null] ->> -% 224 0 obj -<< -/D [1031 0 R /XYZ 99.895 720.077 null] +/Rect [345.558 577.666 352.532 588.514] +/A << /S /GoTo /D (table.1) >> >> -% 1034 0 obj +% 1035 0 obj << -/D [1031 0 R /XYZ 267.641 459.44 null] +/D [1033 0 R /XYZ 98.895 753.953 null] >> -% 1030 0 obj +% 1032 0 obj << -/Font << /F16 558 0 R /F8 561 0 R /F11 755 0 R /F14 772 0 R /F10 771 0 R /F30 769 0 R /F27 560 0 R >> +/Font << /F8 585 0 R /F27 584 0 R /F30 811 0 R /F11 797 0 R >> /ProcSet [ /PDF /Text ] >> -% 1036 0 obj +% 1043 0 obj << /Type /Page -/Contents 1037 0 R -/Resources 1035 0 R +/Contents 1044 0 R +/Resources 1042 0 R /MediaBox [0 0 595.276 841.89] -/Parent 999 0 R +/Parent 1036 0 R +/Annots [ 1037 0 R 1038 0 R 1039 0 R 1040 0 R 1041 0 R ] +>> +% 1037 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [419.358 355.465 495.412 366.59] +/A << /S /GoTo /D (vdata) >> >> % 1038 0 obj << -/D [1036 0 R /XYZ 149.705 753.953 null] +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [379.142 343.787 386.116 354.635] +/A << /S /GoTo /D (table.2) >> >> % 1039 0 obj << -/D [1036 0 R /XYZ 150.705 576.615 null] +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [419.358 264.06 495.412 275.185] +/A << /S /GoTo /D (vdata) >> >> % 1040 0 obj << -/D [1036 0 R /XYZ 150.705 516.894 null] +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [379.353 252.382 386.327 263.23] +/A << /S /GoTo /D (table.2) >> >> % 1041 0 obj << -/D [1036 0 R /XYZ 175.611 518.831 null] +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [310.273 172.655 377.331 183.78] +/A << /S /GoTo /D (descdata) >> >> -% 1042 0 obj +% 1045 0 obj << -/D [1036 0 R /XYZ 175.611 506.876 null] +/D [1043 0 R /XYZ 149.705 753.953 null] >> -% 1043 0 obj +% 228 0 obj << -/D [1036 0 R /XYZ 175.611 494.921 null] +/D [1043 0 R /XYZ 150.705 716.092 null] >> -% 1044 0 obj +% 1046 0 obj << -/D [1036 0 R /XYZ 175.611 482.966 null] +/D [1043 0 R /XYZ 318.451 490.516 null] >> -% 1035 0 obj +% 1042 0 obj << -/Font << /F27 560 0 R /F8 561 0 R /F11 755 0 R /F30 769 0 R /F16 558 0 R >> +/Font << /F16 582 0 R /F8 585 0 R /F11 797 0 R /F14 814 0 R /F10 813 0 R /F30 811 0 R /F27 584 0 R >> /ProcSet [ /PDF /Text ] >> % 1049 0 obj @@ -10717,5609 +10307,6040 @@ stream /Contents 1050 0 R /Resources 1048 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1053 0 R -/Annots [ 1045 0 R 1046 0 R 1047 0 R ] +/Parent 1036 0 R +/Annots [ 1047 0 R ] >> -% 1045 0 obj +% 1047 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [368.549 401.031 444.603 412.156] -/A << /S /GoTo /D (vdata) >> +/Rect [382.088 603.569 389.062 614.417] +/A << /S /GoTo /D (table.2) >> >> -% 1046 0 obj +% 1051 0 obj << -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [325.411 389.353 332.385 400.201] -/A << /S /GoTo /D (table.5) >> +/D [1049 0 R /XYZ 98.895 753.953 null] >> -% 1047 0 obj +% 1052 0 obj << -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [259.464 321.33 326.522 332.455] -/A << /S /GoTo /D (descdata) >> +/D [1049 0 R /XYZ 99.895 512.854 null] >> -% 1051 0 obj +% 1053 0 obj << -/D [1049 0 R /XYZ 98.895 753.953 null] +/D [1049 0 R /XYZ 99.895 453.133 null] >> -% 228 0 obj +% 1054 0 obj << -/D [1049 0 R /XYZ 99.895 720.077 null] +/D [1049 0 R /XYZ 124.802 455.07 null] >> -% 1052 0 obj +% 1055 0 obj +<< +/D [1049 0 R /XYZ 124.802 443.115 null] +>> +% 1056 0 obj << -/D [1049 0 R /XYZ 267.641 537.464 null] +/D [1049 0 R /XYZ 124.802 431.16 null] +>> +% 1057 0 obj +<< +/D [1049 0 R /XYZ 124.802 419.205 null] >> % 1048 0 obj << -/Font << /F16 558 0 R /F8 561 0 R /F11 755 0 R /F14 772 0 R /F10 771 0 R /F30 769 0 R /F27 560 0 R >> +/Font << /F8 585 0 R /F27 584 0 R /F30 811 0 R /F11 797 0 R /F16 582 0 R >> /ProcSet [ /PDF /Text ] >> -% 1058 0 obj +% 1065 0 obj << /Type /Page -/Contents 1059 0 R -/Resources 1057 0 R +/Contents 1066 0 R +/Resources 1064 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1053 0 R -/Annots [ 1054 0 R 1055 0 R 1056 0 R ] +/Parent 1036 0 R +/Annots [ 1058 0 R 1059 0 R 1060 0 R 1061 0 R 1062 0 R 1063 0 R ] >> -% 1054 0 obj +% 1058 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [419.358 359.763 495.412 370.887] +/Rect [419.358 382.111 495.412 393.236] /A << /S /GoTo /D (vdata) >> >> -% 1055 0 obj +% 1059 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [376.221 348.084 383.195 358.932] -/A << /S /GoTo /D (table.6) >> +/Rect [379.142 370.432 386.116 381.28] +/A << /S /GoTo /D (table.3) >> >> -% 1056 0 obj +% 1060 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [310.273 281.168 377.331 292.293] -/A << /S /GoTo /D (descdata) >> ->> -% 1060 0 obj -<< -/D [1058 0 R /XYZ 149.705 753.953 null] ->> -% 232 0 obj -<< -/D [1058 0 R /XYZ 150.705 720.077 null] +/Rect [419.358 291.951 495.412 303.076] +/A << /S /GoTo /D (vdata) >> >> % 1061 0 obj << -/D [1058 0 R /XYZ 318.451 490.109 null] +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [379.353 280.273 386.327 291.121] +/A << /S /GoTo /D (table.3) >> >> -% 1057 0 obj +% 1062 0 obj << -/Font << /F16 558 0 R /F8 561 0 R /F11 755 0 R /F14 772 0 R /F10 771 0 R /F7 770 0 R /F30 769 0 R /F27 560 0 R >> -/ProcSet [ /PDF /Text ] +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [310.273 201.792 377.331 212.917] +/A << /S /GoTo /D (descdata) >> >> % 1063 0 obj << -/Type /Page -/Contents 1064 0 R -/Resources 1062 0 R -/MediaBox [0 0 595.276 841.89] -/Parent 1053 0 R ->> -% 1065 0 obj -<< -/D [1063 0 R /XYZ 98.895 753.953 null] +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [202.013 119.329 208.986 128.24] +/A << /S /GoTo /D (table.2) >> >> -% 1066 0 obj +% 1067 0 obj << -/D [1063 0 R /XYZ 99.895 632.405 null] +/D [1065 0 R /XYZ 149.705 753.953 null] >> -% 1067 0 obj +% 232 0 obj << -/D [1063 0 R /XYZ 99.895 572.685 null] +/D [1065 0 R /XYZ 150.705 716.092 null] >> % 1068 0 obj << -/D [1063 0 R /XYZ 124.802 574.622 null] +/D [1065 0 R /XYZ 318.451 510.309 null] >> -% 1069 0 obj +% 1064 0 obj << -/D [1063 0 R /XYZ 124.802 562.667 null] +/Font << /F16 582 0 R /F8 585 0 R /F11 797 0 R /F14 814 0 R /F10 813 0 R /F30 811 0 R /F27 584 0 R >> +/ProcSet [ /PDF /Text ] >> % 1070 0 obj << -/D [1063 0 R /XYZ 124.802 550.712 null] +/Type /Page +/Contents 1071 0 R +/Resources 1069 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1036 0 R >> -% 1071 0 obj +% 1072 0 obj << -/D [1063 0 R /XYZ 124.802 538.757 null] +/D [1070 0 R /XYZ 98.895 753.953 null] >> -% 1062 0 obj +% 1069 0 obj << -/Font << /F27 560 0 R /F8 561 0 R /F16 558 0 R >> +/Font << /F27 584 0 R /F8 585 0 R >> /ProcSet [ /PDF /Text ] >> -% 1076 0 obj +% 1077 0 obj << /Type /Page -/Contents 1077 0 R -/Resources 1075 0 R +/Contents 1078 0 R +/Resources 1076 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1053 0 R -/Annots [ 1072 0 R 1073 0 R 1074 0 R ] +/Parent 1036 0 R +/Annots [ 1073 0 R 1074 0 R 1075 0 R ] >> -% 1072 0 obj +% 1073 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [419.358 289.84 495.412 300.965] +/Rect [419.358 315.41 495.412 326.535] /A << /S /GoTo /D (vdata) >> >> -% 1073 0 obj +% 1074 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [376.221 278.162 383.195 289.01] -/A << /S /GoTo /D (table.7) >> +/Rect [376.221 303.732 383.195 314.58] +/A << /S /GoTo /D (table.4) >> >> -% 1074 0 obj +% 1075 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [310.273 208.355 377.331 219.48] +/Rect [310.273 233.372 377.331 244.497] /A << /S /GoTo /D (descdata) >> >> -% 1078 0 obj +% 1079 0 obj << -/D [1076 0 R /XYZ 149.705 753.953 null] +/D [1077 0 R /XYZ 149.705 753.953 null] >> % 236 0 obj << -/D [1076 0 R /XYZ 150.705 720.077 null] +/D [1077 0 R /XYZ 150.705 716.092 null] >> -% 1079 0 obj +% 1080 0 obj << -/D [1076 0 R /XYZ 318.451 432.072 null] +/D [1077 0 R /XYZ 318.451 459.44 null] >> -% 1075 0 obj +% 1076 0 obj << -/Font << /F16 558 0 R /F8 561 0 R /F11 755 0 R /F14 772 0 R /F10 771 0 R /F7 770 0 R /F30 769 0 R /F27 560 0 R >> +/Font << /F16 582 0 R /F8 585 0 R /F11 797 0 R /F14 814 0 R /F10 813 0 R /F30 811 0 R /F27 584 0 R >> /ProcSet [ /PDF /Text ] >> -% 1081 0 obj +% 1082 0 obj << /Type /Page -/Contents 1082 0 R -/Resources 1080 0 R +/Contents 1083 0 R +/Resources 1081 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1053 0 R +/Parent 1091 0 R >> -% 1083 0 obj +% 1084 0 obj << -/D [1081 0 R /XYZ 98.895 753.953 null] +/D [1082 0 R /XYZ 98.895 753.953 null] >> -% 1080 0 obj +% 1085 0 obj << -/Font << /F27 560 0 R /F8 561 0 R >> -/ProcSet [ /PDF /Text ] +/D [1082 0 R /XYZ 99.895 576.615 null] +>> +% 1086 0 obj +<< +/D [1082 0 R /XYZ 99.895 516.894 null] +>> +% 1087 0 obj +<< +/D [1082 0 R /XYZ 124.802 518.831 null] >> % 1088 0 obj << +/D [1082 0 R /XYZ 124.802 506.876 null] +>> +% 1089 0 obj +<< +/D [1082 0 R /XYZ 124.802 494.921 null] +>> +% 1090 0 obj +<< +/D [1082 0 R /XYZ 124.802 482.966 null] +>> +% 1081 0 obj +<< +/Font << /F27 584 0 R /F8 585 0 R /F11 797 0 R /F30 811 0 R /F16 582 0 R >> +/ProcSet [ /PDF /Text ] +>> +% 1096 0 obj +<< /Type /Page -/Contents 1089 0 R -/Resources 1087 0 R +/Contents 1097 0 R +/Resources 1095 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1053 0 R -/Annots [ 1084 0 R 1085 0 R 1086 0 R ] +/Parent 1091 0 R +/Annots [ 1092 0 R 1093 0 R 1094 0 R ] >> -% 1084 0 obj +% 1092 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [419.358 316.653 495.412 327.778] +/Rect [419.358 401.031 495.412 412.156] /A << /S /GoTo /D (vdata) >> >> -% 1085 0 obj +% 1093 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [376.221 304.975 383.195 315.823] -/A << /S /GoTo /D (table.8) >> +/Rect [376.221 389.353 383.195 400.201] +/A << /S /GoTo /D (table.5) >> >> -% 1086 0 obj +% 1094 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [310.273 234.201 377.331 245.325] +/Rect [310.273 321.33 377.331 332.455] /A << /S /GoTo /D (descdata) >> >> -% 1090 0 obj +% 1098 0 obj << -/D [1088 0 R /XYZ 149.705 753.953 null] +/D [1096 0 R /XYZ 149.705 753.953 null] >> % 240 0 obj << -/D [1088 0 R /XYZ 150.705 720.077 null] +/D [1096 0 R /XYZ 150.705 716.092 null] >> -% 1091 0 obj +% 1099 0 obj << -/D [1088 0 R /XYZ 318.451 500.643 null] +/D [1096 0 R /XYZ 318.451 537.464 null] >> -% 1087 0 obj +% 1095 0 obj << -/Font << /F16 558 0 R /F8 561 0 R /F11 755 0 R /F14 772 0 R /F10 771 0 R /F27 560 0 R /F30 769 0 R >> +/Font << /F16 582 0 R /F8 585 0 R /F11 797 0 R /F14 814 0 R /F10 813 0 R /F30 811 0 R /F27 584 0 R >> /ProcSet [ /PDF /Text ] >> -% 1093 0 obj +% 1104 0 obj << /Type /Page -/Contents 1094 0 R -/Resources 1092 0 R +/Contents 1105 0 R +/Resources 1103 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1102 0 R ->> -% 1095 0 obj -<< -/D [1093 0 R /XYZ 98.895 753.953 null] +/Parent 1091 0 R +/Annots [ 1100 0 R 1101 0 R 1102 0 R ] >> -% 1096 0 obj +% 1100 0 obj << -/D [1093 0 R /XYZ 99.895 564.659 null] +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [368.549 359.763 444.603 370.887] +/A << /S /GoTo /D (vdata) >> >> -% 1097 0 obj +% 1101 0 obj << -/D [1093 0 R /XYZ 99.895 504.939 null] +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [325.411 348.084 332.385 358.932] +/A << /S /GoTo /D (table.6) >> >> -% 1098 0 obj +% 1102 0 obj << -/D [1093 0 R /XYZ 124.802 506.876 null] +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [259.464 281.168 326.522 292.293] +/A << /S /GoTo /D (descdata) >> >> -% 1099 0 obj +% 1106 0 obj << -/D [1093 0 R /XYZ 124.802 494.921 null] +/D [1104 0 R /XYZ 98.895 753.953 null] >> -% 1100 0 obj +% 244 0 obj << -/D [1093 0 R /XYZ 124.802 482.966 null] +/D [1104 0 R /XYZ 99.895 716.092 null] >> -% 1101 0 obj +% 1107 0 obj << -/D [1093 0 R /XYZ 124.802 471.011 null] +/D [1104 0 R /XYZ 267.641 490.109 null] >> -% 1092 0 obj +% 1103 0 obj << -/Font << /F27 560 0 R /F8 561 0 R /F11 755 0 R /F30 769 0 R /F16 558 0 R >> +/Font << /F16 582 0 R /F8 585 0 R /F11 797 0 R /F14 814 0 R /F10 813 0 R /F7 812 0 R /F30 811 0 R /F27 584 0 R >> /ProcSet [ /PDF /Text ] >> -% 1107 0 obj +% 1109 0 obj << /Type /Page -/Contents 1108 0 R -/Resources 1106 0 R +/Contents 1110 0 R +/Resources 1108 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1102 0 R -/Annots [ 1103 0 R 1104 0 R 1105 0 R ] +/Parent 1091 0 R >> -% 1103 0 obj +% 1111 0 obj << -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [419.358 404.491 495.412 415.616] -/A << /S /GoTo /D (vdata) >> +/D [1109 0 R /XYZ 149.705 753.953 null] >> -% 1104 0 obj +% 1112 0 obj << -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [376.221 392.812 383.195 403.66] -/A << /S /GoTo /D (table.9) >> +/D [1109 0 R /XYZ 150.705 632.405 null] >> -% 1105 0 obj +% 1113 0 obj << -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [310.273 324.789 377.331 335.914] -/A << /S /GoTo /D (descdata) >> +/D [1109 0 R /XYZ 150.705 572.685 null] >> -% 1109 0 obj +% 1114 0 obj << -/D [1107 0 R /XYZ 149.705 753.953 null] +/D [1109 0 R /XYZ 175.611 574.622 null] >> -% 244 0 obj +% 1115 0 obj << -/D [1107 0 R /XYZ 150.705 720.077 null] +/D [1109 0 R /XYZ 175.611 562.667 null] >> -% 1110 0 obj +% 1116 0 obj << -/D [1107 0 R /XYZ 318.451 540.923 null] +/D [1109 0 R /XYZ 175.611 550.712 null] >> -% 1106 0 obj +% 1117 0 obj +<< +/D [1109 0 R /XYZ 175.611 538.757 null] +>> +% 1108 0 obj << -/Font << /F16 558 0 R /F8 561 0 R /F11 755 0 R /F14 772 0 R /F7 770 0 R /F30 769 0 R /F27 560 0 R >> +/Font << /F27 584 0 R /F8 585 0 R /F16 582 0 R >> /ProcSet [ /PDF /Text ] >> -% 1114 0 obj +% 1122 0 obj << /Type /Page -/Contents 1115 0 R -/Resources 1113 0 R +/Contents 1123 0 R +/Resources 1121 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1102 0 R -/Annots [ 1111 0 R 1112 0 R ] +/Parent 1091 0 R +/Annots [ 1118 0 R 1119 0 R 1120 0 R ] >> -% 1111 0 obj +% 1118 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [259.464 342.722 336.983 353.847] -/A << /S /GoTo /D (spdata) >> +/Rect [368.549 289.84 444.603 300.965] +/A << /S /GoTo /D (vdata) >> >> -% 1112 0 obj +% 1119 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [259.464 274.976 326.522 286.101] -/A << /S /GoTo /D (descdata) >> +/Rect [325.411 278.162 332.385 289.01] +/A << /S /GoTo /D (table.7) >> >> endstream endobj -1123 0 obj +1129 0 obj +<< +/Length 625 +>> +stream +0 g 0 G +0 g 0 G +0 g 0 G +BT +/F27 9.9626 Tf 150.705 706.129 Td [(info)]TJ +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 [(42)]TJ +0 g 0 G +ET + +endstream +endobj +1136 0 obj << -/Length 5523 +/Length 6477 >> stream 0 g 0 G 0 g 0 G BT -/F16 11.9552 Tf 150.705 706.129 Td [(psb)]TJ +/F16 11.9552 Tf 99.895 706.129 Td [(4.8)-1125(psb)]TJ ET q -1 0 0 1 171.761 706.328 cm +1 0 0 1 151.587 706.328 cm []0 d 0 J 0.398 w 0 0 m 4.035 0 l S Q BT -/F16 11.9552 Tf 175.796 706.129 Td [(normi)-375(|)-375(In\014nit)31(y)-375(Norm)-375(of)-375(Sparse)-375(Matrix)]TJ/F8 9.9626 Tf -25.091 -18.389 Td [(This)-333(function)-334(computes)-333(the)-333(in\014nit)28(y-norm)-334(of)-333(a)-333(matrix)]TJ/F11 9.9626 Tf 235.672 0 Td [(A)]TJ/F8 9.9626 Tf 7.472 0 Td [(:)]TJ/F11 9.9626 Tf -103.44 -33.873 Td [(nr)-28(mi)]TJ/F14 9.9626 Tf 25.698 0 Td [(\040)-278(k)]TJ/F11 9.9626 Tf 17.711 0 Td [(A)]TJ/F14 9.9626 Tf 7.472 0 Td [(k)]TJ/F13 6.9738 Tf 4.982 -1.495 Td [(1)]TJ/F8 9.9626 Tf -195.567 -20.423 Td [(where:)]TJ -0 g 0 G -/F11 9.9626 Tf 0 -19.926 Td [(A)]TJ -0 g 0 G -/F8 9.9626 Tf 12.453 0 Td [(represen)28(ts)-334(the)-333(global)-333(matrix)]TJ/F11 9.9626 Tf 125.834 0 Td [(A)]TJ +/F16 11.9552 Tf 155.621 706.129 Td [(norm2)-375(|)-375(2-Norm)-375(of)-375(V)94(ector)]TJ/F8 9.9626 Tf -55.726 -19.67 Td [(This)-333(function)-334(computes)-333(the)-333(2-norm)-334(of)-333(a)-333(v)27(ector)]TJ/F11 9.9626 Tf 207.168 0 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(.)]TJ -212.862 -11.955 Td [(If)]TJ/F11 9.9626 Tf 9.963 0 Td [(x)]TJ/F8 9.9626 Tf 9.015 0 Td [(is)-333(a)-334(real)-333(v)28(ector)-334(it)-333(computes)-333(2-norm)-334(as:)]TJ/F11 9.9626 Tf 119.906 -24.408 Td [(nr)-28(m)]TJ/F8 9.9626 Tf 19.499 0 Td [(2)]TJ/F14 9.9626 Tf 7.749 0 Td [(\040)]TJ 12.73 9.339 Td [(p)]TJ +ET +q +1 0 0 1 287.059 659.634 cm +[]0 d 0 J 0.398 w 0 0 m 17.664 0 l S +Q +BT +/F11 9.9626 Tf 287.059 650.096 Td [(x)]TJ/F10 6.9738 Tf 5.694 2.878 Td [(T)]TJ/F11 9.9626 Tf 6.276 -2.878 Td [(x)]TJ/F8 9.9626 Tf -199.134 -23.294 Td [(else)-333(if)]TJ/F11 9.9626 Tf 28.006 0 Td [(x)]TJ/F8 9.9626 Tf 9.015 0 Td [(is)-333(a)-334(complex)-333(v)28(ector)-334(then)-333(it)-333(computes)-334(2-norm)-333(as:)]TJ/F11 9.9626 Tf 101.223 -24.408 Td [(nr)-28(m)]TJ/F8 9.9626 Tf 19.499 0 Td [(2)]TJ/F14 9.9626 Tf 7.748 0 Td [(\040)]TJ 12.73 9.339 Td [(p)]TJ +ET +q +1 0 0 1 286.419 611.932 cm +[]0 d 0 J 0.398 w 0 0 m 18.944 0 l S +Q +BT +/F11 9.9626 Tf 286.419 602.394 Td [(x)]TJ/F10 6.9738 Tf 5.694 2.878 Td [(H)]TJ/F11 9.9626 Tf 7.556 -2.878 Td [(x)]TJ 0 g 0 G 0 g 0 G 0 g 0 G ET q -1 0 0 1 232.099 589.962 cm -[]0 d 0 J 0.398 w 0 0 m 180.922 0 l S +1 0 0 1 129.484 577.3 cm +[]0 d 0 J 0.398 w 0 0 m 284.534 0 l S Q BT -/F11 9.9626 Tf 238.077 581.394 Td [(A)]TJ/F27 9.9626 Tf 120.41 0 Td [(F)96(unction)]TJ +/F11 9.9626 Tf 135.462 568.732 Td [(nr)-28(m)]TJ/F8 9.9626 Tf 19.499 0 Td [(2)]TJ/F11 9.9626 Tf 81.954 0 Td [(x)]TJ/F27 9.9626 Tf 120.41 0 Td [(F)96(unction)]TJ ET q -1 0 0 1 232.099 577.608 cm -[]0 d 0 J 0.398 w 0 0 m 180.922 0 l S +1 0 0 1 129.484 564.947 cm +[]0 d 0 J 0.398 w 0 0 m 284.534 0 l S Q BT -/F8 9.9626 Tf 238.077 569.04 Td [(Short)-333(Precision)-334(Real)-3102(psb)]TJ +/F8 9.9626 Tf 135.462 556.379 Td [(Short)-333(Precision)-334(Real)-1200(Sh)1(ort)-334(Precision)-333(Real)-3103(psb)]TJ ET q -1 0 0 1 374.084 569.24 cm +1 0 0 1 372.922 556.578 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 377.073 569.04 Td [(spnrmi)]TJ -138.996 -11.955 Td [(Long)-333(Precision)-334(Real)-3314(psb)]TJ +/F8 9.9626 Tf 375.911 556.379 Td [(genrm2)]TJ -240.449 -11.955 Td [(Long)-333(Precision)-334(Real)-1411(Long)-333(Precision)-333(Real)-3314(psb)]TJ ET q -1 0 0 1 374.084 557.284 cm +1 0 0 1 372.922 544.623 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 377.073 557.085 Td [(spnrmi)]TJ -138.996 -11.955 Td [(Short)-333(Precision)-334(Complex)-1200(psb)]TJ +/F8 9.9626 Tf 375.911 544.424 Td [(genrm2)]TJ -240.449 -11.956 Td [(Short)-333(Precision)-334(Real)-1200(Sh)1(ort)-334(Precision)-333(Complex)-1200(psb)]TJ ET q -1 0 0 1 374.084 545.329 cm +1 0 0 1 372.922 532.668 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 377.073 545.13 Td [(spnrmi)]TJ -138.996 -11.955 Td [(Long)-333(Precision)-334(Complex)-1411(psb)]TJ +/F8 9.9626 Tf 375.911 532.468 Td [(genrm2)]TJ -240.449 -11.955 Td [(Long)-333(Precision)-334(Real)-1411(Long)-333(Precision)-333(Complex)-1412(p)1(s)-1(b)]TJ ET q -1 0 0 1 374.084 533.374 cm +1 0 0 1 372.922 520.713 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 377.073 533.175 Td [(spnrmi)]TJ +/F8 9.9626 Tf 375.911 520.513 Td [(genrm2)]TJ ET q -1 0 0 1 232.099 529.389 cm -[]0 d 0 J 0.398 w 0 0 m 180.922 0 l S +1 0 0 1 129.484 516.727 cm +[]0 d 0 J 0.398 w 0 0 m 284.534 0 l S Q 0 g 0 G BT -/F8 9.9626 Tf 276.386 501.35 Td [(T)83(able)-333(11:)-444(Data)-334(t)28(yp)-28(es)]TJ +/F8 9.9626 Tf 228.067 488.688 Td [(T)83(able)-333(8:)-444(Data)-334(t)28(yp)-28(es)]TJ 0 g 0 G 0 g 0 G 0 g 0 G 0 g 0 G -/F30 9.9626 Tf -125.681 -33.873 Td [(psb_spnrmi\050A,)-525(desc_a,)-525(info\051)]TJ 0 -11.956 Td [(psb_normi\050A,)-525(desc_a,)-525(info\051)]TJ +/F30 9.9626 Tf -128.172 -39.713 Td [(psb_genrm2\050x,)-525(desc_a,)-525(info)-525([,global]\051)]TJ 0 -11.955 Td [(psb_norm2\050x,)-525(desc_a,)-525(info)-525([,global]\051)]TJ 0 g 0 G -/F27 9.9626 Tf 0 -21.917 Td [(T)32(yp)-32(e:)]TJ +/F27 9.9626 Tf 0 -23.982 Td [(T)32(yp)-32(e:)]TJ 0 g 0 G /F8 9.9626 Tf 33.797 0 Td [(Sync)28(hronous.)]TJ 0 g 0 G -/F27 9.9626 Tf -33.797 -19.926 Td [(On)-383(En)32(try)]TJ +/F27 9.9626 Tf -33.797 -22.677 Td [(On)-383(En)32(try)]TJ 0 g 0 G 0 g 0 G - 0 -19.925 Td [(a)]TJ + 0 -22.677 Td [(x)]TJ 0 g 0 G -/F8 9.9626 Tf 10.551 0 Td [(the)-333(lo)-28(cal)-333(p)-28(ortion)-333(of)-334(the)-333(global)-333(sparse)-334(matrix)]TJ/F11 9.9626 Tf 196.126 0 Td [(A)]TJ/F8 9.9626 Tf 7.472 0 Td [(.)]TJ -189.242 -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 [(in)]TJ/F8 9.9626 Tf 9.548 0 Td [(.)]TJ -43.033 -11.956 Td [(Sp)-28(eci\014ed)-333(as:)-444(an)-334(ob)-55(ject)-334(of)-333(t)28(yp)-28(e)]TJ +/F8 9.9626 Tf 11.028 0 Td [(the)-333(lo)-28(cal)-333(p)-28(ortion)-333(of)-334(global)-333(dense)-333(matrix)]TJ/F11 9.9626 Tf 176.118 0 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(.)]TJ -167.933 -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 [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-255(as:)-405(a)-255(rank)-254(one)-255(or)-255(t)28(w)27(o)-254(arra)27(y)-254(or)-255(an)-255(ob)-55(jec)-1(t)-254(of)-255(t)28(yp)-28(e)]TJ 0 0 1 rg 0 0 1 RG -/F30 9.9626 Tf 135.658 0 Td [(psb)]TJ +/F30 9.9626 Tf 244.743 0 Td [(psb)]TJ ET q -1 0 0 1 327.588 346.132 cm +1 0 0 1 385.864 320.063 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 330.727 345.932 Td [(Tspmat)]TJ +/F30 9.9626 Tf 389.002 319.864 Td [(T)]TJ ET q -1 0 0 1 362.736 346.132 cm +1 0 0 1 394.86 320.063 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 365.874 345.932 Td [(type)]TJ -0 g 0 G -/F8 9.9626 Tf 20.922 0 Td [(.)]TJ -0 g 0 G -/F27 9.9626 Tf -236.091 -19.925 Td [(desc)]TJ +/F30 9.9626 Tf 397.998 319.864 Td [(vect)]TJ ET q -1 0 0 1 172.619 326.206 cm -[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S +1 0 0 1 419.547 320.063 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F27 9.9626 Tf 176.057 326.007 Td [(a)]TJ +/F30 9.9626 Tf 422.685 319.864 Td [(type)]TJ 0 g 0 G -/F8 9.9626 Tf 10.55 0 Td [(con)28(tains)-334(data)-333(structures)-333(for)-333(c)-1(omm)28(unications.)]TJ -10.996 -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.956 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(ob)-55(ject)-334(of)-333(t)28(yp)-28(e)]TJ +/F8 9.9626 Tf -297.883 -11.956 Td [(con)28(taining)-333(n)27(um)28(b)-28(ers)-333(of)-333(t)28(yp)-28(e)-334(sp)-27(eci\014ed)-334(in)-333(T)83(able)]TJ 0 0 1 rg 0 0 1 RG -/F30 9.9626 Tf 135.659 0 Td [(psb)]TJ + [-333(8)]TJ +0 g 0 G + [(.)]TJ +0 g 0 G +/F27 9.9626 Tf -24.907 -22.677 Td [(desc)]TJ ET q -1 0 0 1 327.588 278.386 cm +1 0 0 1 121.81 285.431 cm +[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S +Q +BT +/F27 9.9626 Tf 125.247 285.231 Td [(a)]TJ +0 g 0 G +/F8 9.9626 Tf 10.551 0 Td [(con)28(tains)-334(d)1(ata)-334(structures)-333(for)-333(com)-1(m)28(unications.)]TJ -10.996 -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 [(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(ob)-55(ject)-334(of)-333(t)28(yp)-28(e)]TJ +0 0 1 rg 0 0 1 RG +/F30 9.9626 Tf 135.658 0 Td [(psb)]TJ +ET +q +1 0 0 1 276.779 237.61 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 330.727 278.186 Td [(desc)]TJ +/F30 9.9626 Tf 279.917 237.411 Td [(desc)]TJ ET q -1 0 0 1 352.275 278.386 cm +1 0 0 1 301.466 237.61 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 355.414 278.186 Td [(type)]TJ -0 g 0 G -/F8 9.9626 Tf 20.921 0 Td [(.)]TJ -0 g 0 G -/F27 9.9626 Tf -225.63 -19.925 Td [(On)-383(Return)]TJ +/F30 9.9626 Tf 304.604 237.411 Td [(type)]TJ 0 g 0 G +/F8 9.9626 Tf 20.922 0 Td [(.)]TJ 0 g 0 G - 0 -19.925 Td [(F)96(unction)-384(v)64(alue)]TJ +/F27 9.9626 Tf -225.631 -22.677 Td [(global)]TJ 0 g 0 G -/F8 9.9626 Tf 78.386 0 Td [(is)-333(the)-334(in\014nit)28(y-norm)-333(of)-333(sparse)-334(submatrix)]TJ/F11 9.9626 Tf 176.311 0 Td [(A)]TJ/F8 9.9626 Tf 7.472 0 Td [(.)]TJ -237.263 -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 [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(long)-333(precision)-334(r)1(e)-1(al)-333(n)28(um)28(b)-28(er.)]TJ +/F8 9.9626 Tf 34.738 0 Td [(Sp)-28(eci\014es)-357(whether)-357(the)-357(computation)-358(shoul)1(d)-358(include)-357(the)-357(global)-357(reduction)]TJ -9.831 -11.955 Td [(across)-333(all)-334(pro)-27(ce)-1(sses.)]TJ 0 -11.956 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 40.577 0 Td [(.)]TJ -70.188 -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(logical)-333(scalar.)-445(Default:)]TJ/F30 9.9626 Tf 168.812 0 Td [(global=.true.)]TJ 0 g 0 G -/F27 9.9626 Tf -24.906 -19.926 Td [(info)]TJ +/F27 9.9626 Tf -193.719 -34.632 Td [(On)-383(Return)]TJ 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 -56.242 Td [(46)]TJ +/F8 9.9626 Tf 166.875 -29.888 Td [(43)]TJ 0 g 0 G ET endstream endobj -1134 0 obj +1142 0 obj << -/Length 7328 +/Length 4643 >> stream 0 g 0 G 0 g 0 G -BT -/F16 11.9552 Tf 99.895 706.129 Td [(psb)]TJ -ET -q -1 0 0 1 120.951 706.328 cm -[]0 d 0 J 0.398 w 0 0 m 4.035 0 l S -Q -BT -/F16 11.9552 Tf 124.986 706.129 Td [(spmm)-375(|)-375(Sparse)-375(Matrix)-375(b)31(y)-375(Dense)-375(Matrix)-375(Pro)-31(duct)]TJ/F8 9.9626 Tf -25.091 -18.389 Td [(This)-333(subroutine)-334(computes)-333(the)-333(Sparse)-334(Matrix)-333(b)28(y)-333(Dense)-334(Matrix)-333(Pro)-28(duct:)]TJ/F11 9.9626 Tf 139.909 -23.911 Td [(y)]TJ/F14 9.9626 Tf 8.009 0 Td [(\040)]TJ/F11 9.9626 Tf 12.73 0 Td [(\013)-4(Ax)]TJ/F8 9.9626 Tf 21.79 0 Td [(+)]TJ/F11 9.9626 Tf 9.962 0 Td [(\014)-53(y)]TJ -0 g 0 G -/F8 9.9626 Tf 138.581 0 Td [(\0501\051)]TJ -0 g 0 G -/F11 9.9626 Tf -194.21 -17.408 Td [(y)]TJ/F14 9.9626 Tf 8.009 0 Td [(\040)]TJ/F11 9.9626 Tf 12.73 0 Td [(\013)-4(A)]TJ/F10 6.9738 Tf 13.882 4.113 Td [(T)]TJ/F11 9.9626 Tf 6.276 -4.113 Td [(x)]TJ/F8 9.9626 Tf 7.908 0 Td [(+)]TJ/F11 9.9626 Tf 9.962 0 Td [(\014)-53(y)]TJ -0 g 0 G -/F8 9.9626 Tf 135.443 0 Td [(\0502\051)]TJ -0 g 0 G -/F11 9.9626 Tf -194.851 -17.408 Td [(y)]TJ/F14 9.9626 Tf 8.01 0 Td [(\040)]TJ/F11 9.9626 Tf 12.73 0 Td [(\013)-4(A)]TJ/F10 6.9738 Tf 13.882 4.113 Td [(H)]TJ/F11 9.9626 Tf 7.556 -4.113 Td [(x)]TJ/F8 9.9626 Tf 7.908 0 Td [(+)]TJ/F11 9.9626 Tf 9.963 0 Td [(\014)-53(y)]TJ -0 g 0 G -/F8 9.9626 Tf 134.802 0 Td [(\0503\051)]TJ -0 g 0 G - -316.037 -17.408 Td [(where:)]TJ -0 g 0 G -/F11 9.9626 Tf -14.944 -19.226 Td [(x)]TJ -0 g 0 G -/F8 9.9626 Tf 10.676 0 Td [(is)-333(the)-334(global)-333(dense)-333(matrix)]TJ/F11 9.9626 Tf 116.092 0 Td [(x)]TJ/F7 6.9738 Tf 5.694 -1.495 Td [(:)]TJ/F10 6.9738 Tf 2.256 0 Td [(;)]TJ/F7 6.9738 Tf 2.366 0 Td [(:)]TJ 0 g 0 G -/F11 9.9626 Tf -137.084 -18.081 Td [(y)]TJ -0 g 0 G -/F8 9.9626 Tf 10.224 0 Td [(is)-333(the)-334(global)-333(dense)-333(matrix)]TJ/F11 9.9626 Tf 116.092 0 Td [(y)]TJ/F7 6.9738 Tf 4.885 -1.494 Td [(:)]TJ/F10 6.9738 Tf 2.255 0 Td [(;)]TJ/F7 6.9738 Tf 2.366 0 Td [(:)]TJ +BT +/F27 9.9626 Tf 150.705 706.129 Td [(F)96(unction)-384(V)96(alue)]TJ 0 g 0 G -/F11 9.9626 Tf -135.822 -18.081 Td [(A)]TJ +/F8 9.9626 Tf 80.683 0 Td [(is)-333(the)-334(2-norm)-333(of)-333(v)27(ector)]TJ/F11 9.9626 Tf 102.781 0 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(.)]TJ -164.252 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 31.842 0 Td [(global)]TJ/F8 9.9626 Tf 32.002 0 Td [(unless)-225(the)-226(optional)-225(v)55(ari)1(able)]TJ/F30 9.9626 Tf 118.433 0 Td [(global=.false.)]TJ/F8 9.9626 Tf 75.471 0 Td [(has)-225(b)-28(een)-226(sp)-27(ec-)]TJ -257.748 -11.955 Td [(i\014ed)]TJ 0 -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 [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(long)-333(precision)-334(r)1(e)-1(al)-333(n)28(um)28(b)-28(er.)]TJ 0 g 0 G -/F8 9.9626 Tf 12.454 0 Td [(is)-333(the)-334(global)-333(sparse)-333(matrix)]TJ/F11 9.9626 Tf 118.943 0 Td [(A)]TJ +/F27 9.9626 Tf -24.906 -19.925 Td [(info)]TJ 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/F16 11.9552 Tf -24.906 -21.918 Td [(Notes)]TJ 0 g 0 G +/F8 9.9626 Tf 12.176 -19.925 Td [(1.)]TJ 0 g 0 G + [-500(The)-241(computation)-240(of)-241(a)-241(gl)1(obal)-241(result)-241(requires)-240(a)-241(global)-241(comm)28(unication,)-259(whic)28(h)]TJ 12.73 -11.955 Td [(en)28(tails)-421(a)-420(s)-1(i)1(gni\014can)27(t)-420(o)28(v)27(erhead.)-706(It)-420(ma)27(y)-420(b)-28(e)-421(necessary)-420(and/or)-421(advisable)-420(to)]TJ 0 -11.955 Td [(compute)-395(m)28(ultiple)-395(norms)-395(at)-395(the)-395(same)-395(time;)-426(in)-395(this)-395(case,)-410(it)-395(is)-395(p)-28(ossible)-395(to)]TJ 0 -11.955 Td [(impro)28(v)28(e)-334(the)-333(run)28(time)-334(e\016ciency)-333(b)28(y)-334(using)-333(the)-333(follo)28(wing)-334(sc)28(heme:)]TJ 25.19 -17.933 Td [(v)-128(r)-129(e)-128(s)-259(\050)-130(1)-131(\051)-642(=)-593(p)-83(s)-83(b)]TJ ET q -1 0 0 1 177.988 532.215 cm -[]0 d 0 J 0.398 w 0 0 m 187.526 0 l S +1 0 0 1 278.19 495.12 cm +[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F11 9.9626 Tf 183.966 523.647 Td [(A)]TJ/F8 9.9626 Tf 7.472 0 Td [(,)]TJ/F11 9.9626 Tf 6.088 0 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(,)]TJ/F11 9.9626 Tf 6.088 0 Td [(y)]TJ/F8 9.9626 Tf 5.242 0 Td [(,)]TJ/F11 9.9626 Tf 6.088 0 Td [(\013)]TJ/F8 9.9626 Tf 6.41 0 Td [(,)]TJ/F11 9.9626 Tf 6.089 0 Td [(\014)]TJ/F27 9.9626 Tf 71.238 0 Td [(Subroutine)]TJ +/F8 9.9626 Tf 282.003 494.921 Td [(g)-83(e)-82(n)-83(r)-83(m)-82(2)-189(\050)-148(x)-43(1)-248(,)-273(d)-113(e)-113(s)-112(c)]TJ ET q -1 0 0 1 177.988 519.862 cm -[]0 d 0 J 0.398 w 0 0 m 187.526 0 l S +1 0 0 1 367.515 495.12 cm +[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 183.966 511.294 Td [(Short)-333(Precision)-333(R)-1(eal)-3102(psb)]TJ +/F8 9.9626 Tf 371.626 494.921 Td [(a)-386(,)-288(i)-127(n)-127(f)-127(o)-415(,)-302(g)-141(l)-142(o)-141(b)-141(a)-141(l)-190(=)-48(.)]TJ/F27 9.9626 Tf 92.223 0 Td [(f)-132(a)-131(l)-132(s)-131(e)]TJ/F8 9.9626 Tf 30.349 0 Td [(.)-178(\051)]TJ -293.397 -11.955 Td [(v)-128(r)-129(e)-128(s)-259(\050)-130(2)-131(\051)-642(=)-593(p)-83(s)-83(b)]TJ ET q -1 0 0 1 319.972 511.493 cm +1 0 0 1 278.19 483.165 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 322.961 511.294 Td [(spmm)]TJ -138.995 -11.956 Td [(Long)-333(Precision)-334(Real)-3314(p)1(s)-1(b)]TJ +/F8 9.9626 Tf 282.003 482.966 Td [(g)-83(e)-82(n)-83(r)-83(m)-82(2)-189(\050)-148(x)-43(2)-248(,)-273(d)-113(e)-113(s)-112(c)]TJ ET q -1 0 0 1 319.972 499.538 cm +1 0 0 1 367.515 483.165 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 322.961 499.338 Td [(spmm)]TJ -138.995 -11.955 Td [(Short)-333(Precision)-333(C)-1(omplex)-1200(p)1(s)-1(b)]TJ +/F8 9.9626 Tf 371.626 482.966 Td [(a)-386(,)-288(i)-127(n)-127(f)-127(o)-415(,)-302(g)-141(l)-142(o)-141(b)-141(a)-141(l)-190(=)-48(.)]TJ/F27 9.9626 Tf 92.223 0 Td [(f)-132(a)-131(l)-132(s)-131(e)]TJ/F8 9.9626 Tf 30.349 0 Td [(.)-178(\051)]TJ -293.397 -11.955 Td [(v)-128(r)-129(e)-128(s)-259(\050)-130(3)-131(\051)-642(=)-593(p)-83(s)-83(b)]TJ ET q -1 0 0 1 319.972 487.583 cm +1 0 0 1 278.19 471.21 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 322.961 487.383 Td [(spmm)]TJ -138.995 -11.955 Td [(Long)-333(Precision)-334(Complex)-1411(psb)]TJ +/F8 9.9626 Tf 282.003 471.011 Td [(g)-83(e)-82(n)-83(r)-83(m)-82(2)-189(\050)-148(x)-43(3)-248(,)-273(d)-113(e)-113(s)-112(c)]TJ ET q -1 0 0 1 319.972 475.627 cm +1 0 0 1 367.515 471.21 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 322.961 475.428 Td [(spmm)]TJ +/F8 9.9626 Tf 371.626 471.011 Td [(a)-386(,)-288(i)-127(n)-127(f)-127(o)-415(,)-302(g)-141(l)-142(o)-141(b)-141(a)-141(l)-190(=)-48(.)]TJ/F27 9.9626 Tf 92.223 0 Td [(f)-132(a)-131(l)-132(s)-131(e)]TJ/F8 9.9626 Tf 30.349 0 Td [(.)-178(\051)]TJ/F27 9.9626 Tf -293.299 -11.956 Td [(c)-138(a)-138(l)-139(l)]TJ/F8 9.9626 Tf 29.235 0 Td [(p)-73(s)-72(b)]TJ ET q -1 0 0 1 177.988 471.642 cm -[]0 d 0 J 0.398 w 0 0 m 187.526 0 l S +1 0 0 1 247.903 459.255 cm +[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q -0 g 0 G BT -/F8 9.9626 Tf 225.577 443.603 Td [(T)83(able)-333(12:)-444(Data)-334(t)28(yp)-28(es)]TJ -0 g 0 G +/F8 9.9626 Tf 251.616 459.055 Td [(n)-73(r)-72(m)-73(2)-178(\050)-245(i)-138(c)-139(t)-139(x)-139(t)-439(,)-289(v)-129(r)-128(e)-128(s)-294(\050)-165(1)-165(:)-165(3)-165(\051)-165(\051)]TJ 0 g 0 G 0 g 0 G + -76.005 -21.917 Td [(In)-354(th)1(is)-354(w)28(a)28(y)-354(the)-353(global)-354(comm)28(unication,)-359(whic)28(h)-353(for)-354(small)-353(size)-1(s)-353(is)-354(a)-353(latency-)]TJ 0 -11.956 Td [(b)-28(ound)-333(op)-28(eration,)-333(is)-333(in)27(v)28(ok)28(ed)-333(only)-334(once.)]TJ 0 g 0 G -/F30 9.9626 Tf -125.682 -32.649 Td [(call)-525(psb_spmm\050alpha,)-525(a,)-525(x,)-525(beta,)-525(y,)-525(desc_a,)-525(info\051)]TJ 0 -11.955 Td [(call)-525(psb_spmm\050alpha,)-525(a,)-525(x,)-525(beta,)-525(y,desc_a,)-525(info,)-525(&)]TJ 67.995 -11.955 Td [(&)-525(trans,)-525(work\051)]TJ + 141.968 -334.744 Td [(44)]TJ 0 g 0 G -/F27 9.9626 Tf -67.995 -21.044 Td [(T)32(yp)-32(e:)]TJ -0 g 0 G -/F8 9.9626 Tf 33.797 0 Td [(Sync)28(hronous.)]TJ +ET + +endstream +endobj +1155 0 obj +<< +/Length 6140 +>> +stream 0 g 0 G -/F27 9.9626 Tf -33.797 -19.575 Td [(On)-383(En)32(try)]TJ 0 g 0 G +BT +/F16 11.9552 Tf 99.895 706.129 Td [(4.9)-1125(psb)]TJ +ET +q +1 0 0 1 151.587 706.328 cm +[]0 d 0 J 0.398 w 0 0 m 4.035 0 l S +Q +BT +/F16 11.9552 Tf 155.621 706.129 Td [(genrm2s)-375(|)-375(Generalized)-375(2-Norm)-375(of)-375(V)94(ector)]TJ/F8 9.9626 Tf -55.726 -18.389 Td [(This)-310(subroutine)-310(computes)-309(a)-310(series)-310(of)-310(2-norms)-310(on)-310(the)-310(columns)-309(of)-310(a)-310(dense)-310(matrix)]TJ/F11 9.9626 Tf 0 -11.956 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(:)]TJ/F11 9.9626 Tf 126.531 -11.955 Td [(r)-28(es)]TJ/F8 9.9626 Tf 14.081 0 Td [(\050)]TJ/F11 9.9626 Tf 3.874 0 Td [(i)]TJ/F8 9.9626 Tf 3.432 0 Td [(\051)]TJ/F14 9.9626 Tf 6.642 0 Td [(\040)-278(k)]TJ/F11 9.9626 Tf 17.711 0 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(\050:)]TJ/F11 9.9626 Tf 6.642 0 Td [(;)-167(i)]TJ/F8 9.9626 Tf 7.86 0 Td [(\051)]TJ/F14 9.9626 Tf 3.875 0 Td [(k)]TJ/F7 6.9738 Tf 4.981 -1.494 Td [(2)]TJ 0 g 0 G - 0 -19.576 Td [(alpha)]TJ 0 g 0 G -/F8 9.9626 Tf 32.033 0 Td [(the)-333(scalar)]TJ/F11 9.9626 Tf 45.468 0 Td [(\013)]TJ/F8 9.9626 Tf 6.41 0 Td [(.)]TJ -59.004 -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 [(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.956 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(n)28(um)28(b)-28(er)-333(of)-334(the)-333(data)-333(t)28(yp)-28(e)-334(ind)1(ic)-1(ated)-333(in)-333(T)83(able)]TJ -0 0 1 rg 0 0 1 RG - [-333(12)]TJ +/F30 9.9626 Tf -207.017 -20.424 Td [(call)-525(psb_genrm2s\050res,)-525(x,)-525(desc_a,)-525(info\051)]TJ 0 g 0 G - [(.)]TJ 0 g 0 G -/F27 9.9626 Tf -24.907 -19.575 Td [(a)]TJ 0 g 0 G -/F8 9.9626 Tf 10.551 0 Td [(the)-333(lo)-28(cal)-333(p)-28(ortion)-333(of)-334(the)-333(sparse)-333(matrix)]TJ/F11 9.9626 Tf 166.792 0 Td [(A)]TJ/F8 9.9626 Tf 7.472 0 Td [(.)]TJ -159.908 -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(an)-333(ob)-55(ject)-334(of)-333(t)28(yp)-28(e)]TJ -0 0 1 rg 0 0 1 RG -/F30 9.9626 Tf 135.658 0 Td [(psb)]TJ ET q -1 0 0 1 276.779 211.831 cm -[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +1 0 0 1 127.261 617.58 cm +[]0 d 0 J 0.398 w 0 0 m 288.979 0 l S Q BT -/F30 9.9626 Tf 279.917 211.632 Td [(Tspmat)]TJ +/F11 9.9626 Tf 133.239 609.013 Td [(r)-28(es)-8770(x)]TJ/F27 9.9626 Tf 221.863 0 Td [(Subroutine)]TJ ET q -1 0 0 1 311.927 211.831 cm -[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +1 0 0 1 127.261 605.227 cm +[]0 d 0 J 0.398 w 0 0 m 288.979 0 l S Q BT -/F30 9.9626 Tf 315.065 211.632 Td [(type)]TJ -0 g 0 G -/F8 9.9626 Tf 20.921 0 Td [(.)]TJ -0 g 0 G -/F27 9.9626 Tf -236.091 -19.575 Td [(x)]TJ -0 g 0 G -/F8 9.9626 Tf 11.028 0 Td [(the)-333(lo)-28(cal)-333(p)-28(ortion)-333(of)-334(global)-333(dense)-333(matrix)]TJ/F11 9.9626 Tf 176.118 0 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(.)]TJ -167.933 -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 [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-255(as:)-405(a)-255(rank)-254(one)-255(or)-255(t)28(w)27(o)-254(arra)27(y)-254(or)-255(an)-255(ob)-55(jec)-1(t)-254(of)-255(t)28(yp)-28(e)]TJ -0 0 1 rg 0 0 1 RG -/F30 9.9626 Tf 244.743 0 Td [(psb)]TJ +/F8 9.9626 Tf 133.239 596.659 Td [(Short)-333(Precision)-334(Real)-1200(Shor)1(t)-334(Precision)-333(Real)-3103(psb)]TJ ET q -1 0 0 1 385.864 144.435 cm -[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +1 0 0 1 370.699 596.858 cm +[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F30 9.9626 Tf 389.002 144.236 Td [(T)]TJ +/F8 9.9626 Tf 373.688 596.659 Td [(genrm2s)]TJ -240.449 -11.955 Td [(Long)-333(Precision)-334(Real)-1411(Long)-333(Precision)-333(Real)-3314(psb)]TJ ET q -1 0 0 1 394.86 144.435 cm -[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +1 0 0 1 370.699 584.903 cm +[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F30 9.9626 Tf 397.998 144.236 Td [(vect)]TJ +/F8 9.9626 Tf 373.688 584.704 Td [(genrm2s)]TJ -240.449 -11.955 Td [(Short)-333(Precision)-334(Real)-1200(Shor)1(t)-334(Precision)-333(Complex)-1200(psb)]TJ ET q -1 0 0 1 419.547 144.435 cm -[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +1 0 0 1 370.699 572.948 cm +[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F30 9.9626 Tf 422.685 144.236 Td [(type)]TJ -0 g 0 G -/F8 9.9626 Tf -297.883 -11.955 Td [(con)28(taining)-342(n)28(um)28(b)-28(ers)-342(of)-342(t)28(yp)-28(e)-342(sp)-28(eci\014ed)-342(in)-341(T)83(able)]TJ -0 0 1 rg 0 0 1 RG - [-342(12)]TJ -0 g 0 G - [(.)-470(The)-342(rank)-342(of)]TJ/F11 9.9626 Tf 274.694 0 Td [(x)]TJ/F8 9.9626 Tf 9.101 0 Td [(m)28(ust)-342(b)-28(e)]TJ -283.795 -11.955 Td [(the)-333(same)-334(of)]TJ/F11 9.9626 Tf 53.466 0 Td [(y)]TJ/F8 9.9626 Tf 5.242 0 Td [(.)]TJ +/F8 9.9626 Tf 373.688 572.749 Td [(genrm2s)]TJ -240.449 -11.956 Td [(Long)-333(Precision)-334(Real)-1411(Long)-333(Precision)-333(Complex)-1412(psb)]TJ +ET +q +1 0 0 1 370.699 560.993 cm +[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +Q +BT +/F8 9.9626 Tf 373.688 560.793 Td [(genrm2s)]TJ +ET +q +1 0 0 1 127.261 557.008 cm +[]0 d 0 J 0.398 w 0 0 m 288.979 0 l S +Q 0 g 0 G - 83.26 -29.888 Td [(47)]TJ +BT +/F8 9.9626 Tf 228.067 528.968 Td [(T)83(able)-333(9:)-444(Data)-334(t)28(yp)-28(es)]TJ 0 g 0 G -ET - -endstream -endobj -1149 0 obj -<< -/Length 6975 ->> -stream 0 g 0 G 0 g 0 G +/F27 9.9626 Tf -128.172 -33.596 Td [(T)32(yp)-32(e:)]TJ 0 g 0 G -BT -/F27 9.9626 Tf 150.705 706.129 Td [(b)-32(eta)]TJ +/F8 9.9626 Tf 33.797 0 Td [(Sync)28(hronous.)]TJ 0 g 0 G -/F8 9.9626 Tf 26.94 0 Td [(the)-333(scalar)]TJ/F11 9.9626 Tf 45.469 0 Td [(\014)]TJ/F8 9.9626 Tf 6.161 0 Td [(.)]TJ -53.664 -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.956 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(n)28(um)28(b)-28(er)-333(of)-334(the)-333(data)-333(t)27(yp)-27(e)-334(indicated)-333(in)-333(T)83(able)]TJ -0 0 1 rg 0 0 1 RG - [-333(12)]TJ +/F27 9.9626 Tf -33.797 -19.925 Td [(On)-383(En)32(try)]TJ 0 g 0 G - [(.)]TJ 0 g 0 G -/F27 9.9626 Tf -24.906 -18.453 Td [(y)]TJ + 0 -19.926 Td [(x)]TJ 0 g 0 G -/F8 9.9626 Tf 11.028 0 Td [(the)-333(lo)-28(cal)-333(p)-28(ortion)-333(of)-334(global)-333(dense)-333(matrix)]TJ/F11 9.9626 Tf 176.118 0 Td [(y)]TJ/F8 9.9626 Tf 5.242 0 Td [(.)]TJ -167.482 -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 [(inout)]TJ/F8 9.9626 Tf 26.096 0 Td [(.)]TJ -59.582 -11.955 Td [(Sp)-28(eci\014ed)-255(as:)-405(a)-255(rank)-254(one)-255(or)-255(t)28(w)27(o)-254(arra)27(y)-254(or)-255(an)-255(ob)-56(j)1(e)-1(ct)-254(of)-255(t)28(yp)-28(e)]TJ +/F8 9.9626 Tf 11.028 0 Td [(the)-333(lo)-28(cal)-333(p)-28(ortion)-333(of)-334(global)-333(dense)-333(matrix)]TJ/F11 9.9626 Tf 176.118 0 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(.)]TJ -167.933 -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 [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-255(as:)-405(a)-255(rank)-254(one)-255(or)-255(t)28(w)27(o)-254(arra)27(y)-254(or)-255(an)-255(ob)-55(jec)-1(t)-254(of)-255(t)28(yp)-28(e)]TJ 0 0 1 rg 0 0 1 RG /F30 9.9626 Tf 244.743 0 Td [(psb)]TJ ET q -1 0 0 1 436.673 592.233 cm +1 0 0 1 385.864 407.9 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 439.811 592.034 Td [(T)]TJ +/F30 9.9626 Tf 389.002 407.701 Td [(T)]TJ ET q -1 0 0 1 445.669 592.233 cm +1 0 0 1 394.86 407.9 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 448.807 592.034 Td [(vect)]TJ +/F30 9.9626 Tf 397.998 407.701 Td [(vect)]TJ ET q -1 0 0 1 470.356 592.233 cm +1 0 0 1 419.547 407.9 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 473.495 592.034 Td [(type)]TJ +/F30 9.9626 Tf 422.685 407.701 Td [(type)]TJ 0 g 0 G -/F8 9.9626 Tf -297.884 -11.955 Td [(con)28(taining)-345(n)28(um)28(b)-28(ers)-345(of)-345(t)28(yp)-28(e)-345(sp)-28(eci\014ed)-345(in)-345(T)84(able)]TJ +/F8 9.9626 Tf -297.883 -11.955 Td [(con)28(taining)-333(n)27(um)28(b)-28(ers)-333(of)-333(t)28(yp)-28(e)-334(sp)-27(eci\014ed)-334(in)-333(T)83(able)]TJ 0 0 1 rg 0 0 1 RG - [-345(12)]TJ + [-333(9)]TJ 0 g 0 G - [(.)-479(The)-345(rank)-345(of)]TJ/F11 9.9626 Tf 275.087 0 Td [(y)]TJ/F8 9.9626 Tf 8.678 0 Td [(m)28(ust)-345(b)-28(e)]TJ -283.765 -11.955 Td [(the)-333(same)-334(of)]TJ/F11 9.9626 Tf 53.467 0 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(.)]TJ + [(.)]TJ 0 g 0 G -/F27 9.9626 Tf -84.067 -18.454 Td [(desc)]TJ +/F27 9.9626 Tf -24.907 -19.926 Td [(desc)]TJ ET q -1 0 0 1 172.619 549.87 cm +1 0 0 1 121.81 376.02 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 176.057 549.67 Td [(a)]TJ +/F27 9.9626 Tf 125.247 375.82 Td [(a)]TJ 0 g 0 G -/F8 9.9626 Tf 10.55 0 Td [(con)28(tains)-334(data)-333(structures)-333(for)-333(c)-1(omm)28(unications.)]TJ -10.996 -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(an)-333(ob)-55(ject)-334(of)-333(t)28(yp)-28(e)]TJ +/F8 9.9626 Tf 10.551 0 Td [(con)28(tains)-334(d)1(ata)-334(structures)-333(for)-333(com)-1(m)28(unications.)]TJ -10.996 -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 [(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(ob)-55(ject)-334(of)-333(t)28(yp)-28(e)]TJ 0 0 1 rg 0 0 1 RG -/F30 9.9626 Tf 135.659 0 Td [(psb)]TJ +/F30 9.9626 Tf 135.658 0 Td [(psb)]TJ ET q -1 0 0 1 327.588 502.049 cm +1 0 0 1 276.779 328.199 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 330.727 501.85 Td [(desc)]TJ +/F30 9.9626 Tf 279.917 328 Td [(desc)]TJ ET q -1 0 0 1 352.275 502.049 cm +1 0 0 1 301.466 328.199 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 355.414 501.85 Td [(type)]TJ -0 g 0 G -/F8 9.9626 Tf 20.921 0 Td [(.)]TJ -0 g 0 G -/F27 9.9626 Tf -225.63 -18.454 Td [(trans)]TJ -0 g 0 G -/F8 9.9626 Tf 30.609 0 Td [(indicates)-333(what)-334(kind)-333(of)-333(op)-28(eration)-333(to)-333(p)-28(erform.)]TJ -0 g 0 G -/F27 9.9626 Tf -5.703 -18.453 Td [(trans)-383(=)-384(N)]TJ -0 g 0 G -/F8 9.9626 Tf 56.124 0 Td [(the)-333(op)-28(eration)-333(is)-334(sp)-28(eci\014ed)-333(b)28(y)-333(equation)]TJ -0 0 1 rg 0 0 1 RG - [-334(1)]TJ -0 g 0 G -0 g 0 G -/F27 9.9626 Tf -56.124 -14.469 Td [(trans)-383(=)-384(T)]TJ +/F30 9.9626 Tf 304.604 328 Td [(type)]TJ 0 g 0 G -/F8 9.9626 Tf 55.128 0 Td [(the)-333(op)-28(eration)-333(is)-334(sp)-28(eci\014ed)-333(b)28(y)-333(equation)]TJ -0 0 1 rg 0 0 1 RG - [-334(2)]TJ -0 g 0 G -0 g 0 G -/F27 9.9626 Tf -55.128 -14.468 Td [(trans)-383(=)-384(C)]TJ -0 g 0 G -/F8 9.9626 Tf 55.433 0 Td [(the)-333(op)-28(eration)-333(is)-334(sp)-27(ec)-1(i\014)1(e)-1(d)-333(b)28(y)-333(equation)]TJ -0 0 1 rg 0 0 1 RG - [-334(3)]TJ -0 g 0 G - -55.433 -18.453 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(global)]TJ/F8 9.9626 Tf -32.379 -11.956 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 [(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 [(Default:)]TJ/F11 9.9626 Tf 39.436 0 Td [(tr)-28(ans)]TJ/F8 9.9626 Tf 27.052 0 Td [(=)]TJ/F11 9.9626 Tf 10.517 0 Td [(N)]TJ/F8 9.9626 Tf -77.005 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(c)28(haracter)-334(v)56(ariable.)]TJ -0 g 0 G -/F27 9.9626 Tf -24.906 -18.454 Td [(w)32(ork)]TJ -0 g 0 G -/F8 9.9626 Tf 29.431 0 Td [(w)28(ork)-334(arr)1(a)27(y)84(.)]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.612 0 Td [(optional)]TJ/F8 9.9626 Tf -29.612 -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)-487(as:)-753(a)-487(rank)-488(one)-487(arra)28(y)-488(of)-487(the)-488(same)-487(t)27(yp)-27(e)-488(of)]TJ/F11 9.9626 Tf 239.183 0 Td [(x)]TJ/F8 9.9626 Tf 10.551 0 Td [(and)]TJ/F11 9.9626 Tf 20.907 0 Td [(y)]TJ/F8 9.9626 Tf 10.099 0 Td [(with)-487(the)]TJ -280.74 -11.955 Td [(T)83(AR)28(GET)-333(attribute.)]TJ -0 g 0 G -/F27 9.9626 Tf -24.906 -18.454 Td [(On)-383(Return)]TJ +/F8 9.9626 Tf 20.922 0 Td [(.)]TJ 0 g 0 G +/F27 9.9626 Tf -225.631 -19.926 Td [(On)-383(Return)]TJ 0 g 0 G - 0 -18.453 Td [(y)]TJ 0 g 0 G -/F8 9.9626 Tf 11.028 0 Td [(the)-333(lo)-28(cal)-333(p)-28(ortion)-333(of)-334(result)-333(matrix)]TJ/F11 9.9626 Tf 147.364 0 Td [(y)]TJ/F8 9.9626 Tf 5.242 0 Td [(.)]TJ -138.728 -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 [(inout)]TJ/F8 9.9626 Tf 26.096 0 Td [(.)]TJ -59.582 -11.955 Td [(Sp)-28(eci\014ed)-474(as:)-727(an)-475(arra)28(y)-475(of)-474(rank)-475(one)-474(or)-475(t)28(w)28(o)-475(con)28(taining)-474(n)27(um)28(b)-28(ers)-474(of)-475(t)28(yp)-28(e)]TJ 0 -11.955 Td [(sp)-28(eci\014ed)-333(in)-333(T)83(able)]TJ -0 0 1 rg 0 0 1 RG - [-333(12)]TJ + 0 -19.925 Td [(res)]TJ 0 g 0 G - [(.)]TJ +/F8 9.9626 Tf 19.47 0 Td [(con)28(tains)-334(the)-333(1-norm)-333(of)-334(\050th)1(e)-334(columns)-333(of)-78(\051)]TJ/F11 9.9626 Tf 177.751 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 [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(long)-333(precision)-333(real)-334(n)28(um)28(b)-28(er.)]TJ 0 g 0 G -/F27 9.9626 Tf -24.906 -18.454 Td [(info)]TJ +/F27 9.9626 Tf -24.907 -19.926 Td [(info)]TJ 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 +/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 -38.108 Td [(48)]TJ + 141.968 -94.1 Td [(45)]TJ 0 g 0 G ET endstream endobj -1155 0 obj +1162 0 obj << -/Length 6787 +/Length 5520 >> stream 0 g 0 G 0 g 0 G BT -/F16 11.9552 Tf 99.895 706.129 Td [(psb)]TJ +/F16 11.9552 Tf 150.705 706.129 Td [(4.10)-1125(psb)]TJ ET q -1 0 0 1 120.951 706.328 cm +1 0 0 1 209.121 706.328 cm []0 d 0 J 0.398 w 0 0 m 4.035 0 l S Q BT -/F16 11.9552 Tf 124.986 706.129 Td [(spsm)-375(|)-375(T)94(riangular)-375(System)-375(Solv)31(e)]TJ/F8 9.9626 Tf -25.091 -19.095 Td [(This)-333(subroutine)-334(computes)-333(the)-333(T)83(riangular)-333(System)-334(Solv)28(e:)]TJ/F11 9.9626 Tf 121.693 -35.01 Td [(y)]TJ/F14 9.9626 Tf 15.204 0 Td [(\040)]TJ/F11 9.9626 Tf 19.925 0 Td [(\013)-4(T)]TJ/F13 6.9738 Tf 13.616 4.113 Td [(\000)]TJ/F7 6.9738 Tf 6.227 0 Td [(1)]TJ/F11 9.9626 Tf 4.469 -4.113 Td [(x)]TJ/F8 9.9626 Tf 7.908 0 Td [(+)]TJ/F11 9.9626 Tf 9.962 0 Td [(\014)-53(y)]TJ -77.311 -14.944 Td [(y)]TJ/F14 9.9626 Tf 15.204 0 Td [(\040)]TJ/F11 9.9626 Tf 19.925 0 Td [(\013)-4(D)-28(T)]TJ/F13 6.9738 Tf 22.141 4.113 Td [(\000)]TJ/F7 6.9738 Tf 6.227 0 Td [(1)]TJ/F11 9.9626 Tf 4.469 -4.113 Td [(x)]TJ/F8 9.9626 Tf 7.908 0 Td [(+)]TJ/F11 9.9626 Tf 9.962 0 Td [(\014)-53(y)]TJ -85.836 -14.944 Td [(y)]TJ/F14 9.9626 Tf 15.204 0 Td [(\040)]TJ/F11 9.9626 Tf 19.925 0 Td [(\013)-4(T)]TJ/F13 6.9738 Tf 13.616 4.113 Td [(\000)]TJ/F7 6.9738 Tf 6.227 0 Td [(1)]TJ/F11 9.9626 Tf 4.469 -4.113 Td [(D)-28(x)]TJ/F8 9.9626 Tf 16.433 0 Td [(+)]TJ/F11 9.9626 Tf 9.962 0 Td [(\014)-53(y)]TJ -85.836 -14.944 Td [(y)]TJ/F14 9.9626 Tf 15.204 0 Td [(\040)]TJ/F11 9.9626 Tf 19.925 0 Td [(\013)-4(T)]TJ/F13 6.9738 Tf 13.616 4.113 Td [(\000)]TJ/F10 6.9738 Tf 6.227 0 Td [(T)]TJ/F11 9.9626 Tf 6.276 -4.113 Td [(x)]TJ/F8 9.9626 Tf 7.908 0 Td [(+)]TJ/F11 9.9626 Tf 9.962 0 Td [(\014)-53(y)]TJ -79.118 -14.944 Td [(y)]TJ/F14 9.9626 Tf 15.204 0 Td [(\040)]TJ/F11 9.9626 Tf 19.925 0 Td [(\013)-4(D)-28(T)]TJ/F13 6.9738 Tf 22.141 4.113 Td [(\000)]TJ/F10 6.9738 Tf 6.227 0 Td [(T)]TJ/F11 9.9626 Tf 6.276 -4.113 Td [(x)]TJ/F8 9.9626 Tf 7.908 0 Td [(+)]TJ/F11 9.9626 Tf 9.962 0 Td [(\014)-53(y)]TJ -87.643 -14.944 Td [(y)]TJ/F14 9.9626 Tf 15.204 0 Td [(\040)]TJ/F11 9.9626 Tf 19.925 0 Td [(\013)-4(T)]TJ/F13 6.9738 Tf 13.616 4.113 Td [(\000)]TJ/F10 6.9738 Tf 6.227 0 Td [(T)]TJ/F11 9.9626 Tf 6.276 -4.113 Td [(D)-28(x)]TJ/F8 9.9626 Tf 16.433 0 Td [(+)]TJ/F11 9.9626 Tf 9.962 0 Td [(\014)-53(y)]TJ -87.643 -14.944 Td [(y)]TJ/F14 9.9626 Tf 15.204 0 Td [(\040)]TJ/F11 9.9626 Tf 19.925 0 Td [(\013)-4(T)]TJ/F13 6.9738 Tf 13.616 4.113 Td [(\000)]TJ/F10 6.9738 Tf 6.227 0 Td [(H)]TJ/F11 9.9626 Tf 7.556 -4.113 Td [(x)]TJ/F8 9.9626 Tf 7.908 0 Td [(+)]TJ/F11 9.9626 Tf 9.962 0 Td [(\014)-53(y)]TJ -80.398 -14.944 Td [(y)]TJ/F14 9.9626 Tf 15.204 0 Td [(\040)]TJ/F11 9.9626 Tf 19.925 0 Td [(\013)-4(D)-28(T)]TJ/F13 6.9738 Tf 22.141 4.113 Td [(\000)]TJ/F10 6.9738 Tf 6.227 0 Td [(H)]TJ/F11 9.9626 Tf 7.556 -4.113 Td [(x)]TJ/F8 9.9626 Tf 7.908 0 Td [(+)]TJ/F11 9.9626 Tf 9.962 0 Td [(\014)-53(y)]TJ -88.923 -14.944 Td [(y)]TJ/F14 9.9626 Tf 15.204 0 Td [(\040)]TJ/F11 9.9626 Tf 19.925 0 Td [(\013)-4(T)]TJ/F13 6.9738 Tf 13.616 4.113 Td [(\000)]TJ/F10 6.9738 Tf 6.227 0 Td [(H)]TJ/F11 9.9626 Tf 7.556 -4.113 Td [(D)-28(x)]TJ/F8 9.9626 Tf 16.433 0 Td [(+)]TJ/F11 9.9626 Tf 9.962 0 Td [(\014)-53(y)]TJ/F8 9.9626 Tf -195.672 -37.999 Td [(where:)]TJ -0 g 0 G -/F11 9.9626 Tf -14.944 -21.063 Td [(x)]TJ -0 g 0 G -/F8 9.9626 Tf 10.676 0 Td [(is)-333(the)-334(global)-333(dense)-333(matrix)]TJ/F11 9.9626 Tf 116.092 0 Td [(x)]TJ/F7 6.9738 Tf 5.694 -1.494 Td [(:)]TJ/F10 6.9738 Tf 2.256 0 Td [(;)]TJ/F7 6.9738 Tf 2.366 0 Td [(:)]TJ -0 g 0 G -/F11 9.9626 Tf -137.084 -19.948 Td [(y)]TJ -0 g 0 G -/F8 9.9626 Tf 10.224 0 Td [(is)-333(the)-334(global)-333(dense)-333(matrix)]TJ/F11 9.9626 Tf 116.092 0 Td [(y)]TJ/F7 6.9738 Tf 4.885 -1.494 Td [(:)]TJ/F10 6.9738 Tf 2.255 0 Td [(;)]TJ/F7 6.9738 Tf 2.366 0 Td [(:)]TJ -0 g 0 G -/F11 9.9626 Tf -135.822 -19.948 Td [(T)]TJ -0 g 0 G -/F8 9.9626 Tf 12.187 0 Td [(is)-333(the)-334(global)-333(sparse)-333(blo)-28(c)28(k)-334(triangular)-333(submatrix)]TJ/F11 9.9626 Tf 206.781 0 Td [(T)]TJ -0 g 0 G - -218.968 -21.441 Td [(D)]TJ -0 g 0 G -/F8 9.9626 Tf 13.507 0 Td [(is)-333(the)-334(scaling)-333(diagonal)-333(matrix.)]TJ +/F16 11.9552 Tf 213.156 706.129 Td [(norm1)-375(|)-375(1-Norm)-375(of)-375(Sparse)-375(Matrix)]TJ/F8 9.9626 Tf -62.451 -18.389 Td [(This)-333(function)-334(computes)-333(the)-333(1-norm)-334(of)-333(a)-333(matrix)]TJ/F11 9.9626 Tf 209.658 0 Td [(A)]TJ/F8 9.9626 Tf 7.472 0 Td [(:)]TJ/F11 9.9626 Tf -76.215 -33.873 Td [(nr)-28(m)]TJ/F8 9.9626 Tf 19.498 0 Td [(1)]TJ/F14 9.9626 Tf 7.749 0 Td [(\040)-278(k)]TJ/F11 9.9626 Tf 17.711 0 Td [(A)]TJ/F14 9.9626 Tf 7.472 0 Td [(k)]TJ/F7 6.9738 Tf 4.982 -1.495 Td [(1)]TJ/F8 9.9626 Tf -198.327 -20.423 Td [(where:)]TJ 0 g 0 G +/F11 9.9626 Tf 0 -19.926 Td [(A)]TJ 0 g 0 G -/F30 9.9626 Tf -13.507 -23.814 Td [(call)-525(psb_spsm\050alpha,)-525(t,)-525(x,)-525(beta,)-525(y,)-525(desc_a,)-525(info\051)]TJ 0 -11.955 Td [(call)-525(psb_spsm\050alpha,)-525(t,)-525(x,)-525(beta,)-525(y,)-525(desc_a,)-525(info,&)]TJ 67.995 -11.955 Td [(&)-525(trans,)-525(unit,)-525(choice,)-525(diag,)-525(work\051)]TJ +/F8 9.9626 Tf 12.453 0 Td [(represen)28(ts)-334(the)-333(global)-333(matrix)]TJ/F11 9.9626 Tf 125.834 0 Td [(A)]TJ 0 g 0 G 0 g 0 G 0 g 0 G ET q -1 0 0 1 177.988 335.134 cm -[]0 d 0 J 0.398 w 0 0 m 187.526 0 l S +1 0 0 1 230.992 589.962 cm +[]0 d 0 J 0.398 w 0 0 m 183.136 0 l S Q BT -/F11 9.9626 Tf 183.966 326.566 Td [(T)]TJ/F8 9.9626 Tf 7.205 0 Td [(,)]TJ/F11 9.9626 Tf 6.088 0 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(,)]TJ/F11 9.9626 Tf 6.089 0 Td [(y)]TJ/F8 9.9626 Tf 5.242 0 Td [(,)]TJ/F11 9.9626 Tf 6.088 0 Td [(D)]TJ/F8 9.9626 Tf 8.525 0 Td [(,)]TJ/F11 9.9626 Tf 6.088 0 Td [(\013)]TJ/F8 9.9626 Tf 6.41 0 Td [(,)]TJ/F11 9.9626 Tf 6.088 0 Td [(\014)]TJ/F27 9.9626 Tf 56.892 0 Td [(Subroutine)]TJ +/F11 9.9626 Tf 236.97 581.394 Td [(A)]TJ/F27 9.9626 Tf 120.41 0 Td [(F)96(unction)]TJ ET q -1 0 0 1 177.988 322.78 cm -[]0 d 0 J 0.398 w 0 0 m 187.526 0 l S +1 0 0 1 230.992 577.608 cm +[]0 d 0 J 0.398 w 0 0 m 183.136 0 l S Q BT -/F8 9.9626 Tf 183.966 314.213 Td [(Short)-333(Precision)-333(R)-1(eal)-3102(psb)]TJ +/F8 9.9626 Tf 236.97 569.04 Td [(Short)-333(Precision)-334(Real)-3102(psb)]TJ ET q -1 0 0 1 319.972 314.412 cm +1 0 0 1 372.977 569.24 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 322.961 314.213 Td [(spsm)]TJ -138.995 -11.956 Td [(Long)-333(Precision)-334(Real)-3314(p)1(s)-1(b)]TJ +/F8 9.9626 Tf 375.966 569.04 Td [(spnrm1)]TJ -138.996 -11.955 Td [(Long)-333(Precision)-334(Real)-3314(psb)]TJ ET q -1 0 0 1 319.972 302.457 cm +1 0 0 1 372.977 557.284 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 322.961 302.257 Td [(spsm)]TJ -138.995 -11.955 Td [(Short)-333(Precision)-333(C)-1(omplex)-1200(p)1(s)-1(b)]TJ +/F8 9.9626 Tf 375.966 557.085 Td [(spnrm1)]TJ -138.996 -11.955 Td [(Short)-333(Precision)-334(Complex)-1200(psb)]TJ ET q -1 0 0 1 319.972 290.501 cm +1 0 0 1 372.977 545.329 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 322.961 290.302 Td [(spsm)]TJ -138.995 -11.955 Td [(Long)-333(Precision)-334(Complex)-1411(psb)]TJ +/F8 9.9626 Tf 375.966 545.13 Td [(spnrm1)]TJ -138.996 -11.955 Td [(Long)-333(Precision)-334(Complex)-1411(psb)]TJ ET q -1 0 0 1 319.972 278.546 cm +1 0 0 1 372.977 533.374 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 322.961 278.347 Td [(spsm)]TJ +/F8 9.9626 Tf 375.966 533.175 Td [(spnrm1)]TJ ET q -1 0 0 1 177.988 274.561 cm -[]0 d 0 J 0.398 w 0 0 m 187.526 0 l S +1 0 0 1 230.992 529.389 cm +[]0 d 0 J 0.398 w 0 0 m 183.136 0 l S Q 0 g 0 G BT -/F8 9.9626 Tf 225.577 246.522 Td [(T)83(able)-333(13:)-444(Data)-334(t)28(yp)-28(es)]TJ -0 g 0 G -0 g 0 G -0 g 0 G -/F27 9.9626 Tf -125.682 -35.492 Td [(T)32(yp)-32(e:)]TJ -0 g 0 G -/F8 9.9626 Tf 33.797 0 Td [(Sync)28(hronous.)]TJ -0 g 0 G -/F27 9.9626 Tf -33.797 -21.442 Td [(On)-383(En)32(try)]TJ -0 g 0 G -0 g 0 G - 0 -21.442 Td [(alpha)]TJ -0 g 0 G -/F8 9.9626 Tf 32.033 0 Td [(the)-333(scalar)]TJ/F11 9.9626 Tf 45.468 0 Td [(\013)]TJ/F8 9.9626 Tf 6.41 0 Td [(.)]TJ -59.004 -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 [(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(n)28(um)28(b)-28(er)-333(of)-334(the)-333(data)-333(t)28(yp)-28(e)-334(ind)1(ic)-1(ated)-333(in)-333(T)83(able)]TJ -0 0 1 rg 0 0 1 RG - [-333(13)]TJ +/F8 9.9626 Tf 276.386 501.35 Td [(T)83(able)-333(10:)-444(Data)-334(t)28(yp)-28(es)]TJ 0 g 0 G - [(.)]TJ 0 g 0 G - 141.968 -29.888 Td [(49)]TJ 0 g 0 G -ET - -endstream -endobj -1167 0 obj -<< -/Length 7789 ->> -stream 0 g 0 G +/F30 9.9626 Tf -125.681 -33.873 Td [(psb_spnrm1\050A,)-525(desc_a,)-525(info\051)]TJ 0 -11.956 Td [(psb_norm1\050A,)-525(desc_a,)-525(info\051)]TJ 0 g 0 G +/F27 9.9626 Tf 0 -21.917 Td [(T)32(yp)-32(e:)]TJ 0 g 0 G -BT -/F27 9.9626 Tf 150.705 706.129 Td [(t)]TJ +/F8 9.9626 Tf 33.797 0 Td [(Sync)28(hronous.)]TJ 0 g 0 G -/F8 9.9626 Tf 9.437 0 Td [(the)-333(global)-334(p)-27(ortion)-334(of)-333(the)-333(sparse)-334(matrix)]TJ/F11 9.9626 Tf 172.603 0 Td [(T)]TJ/F8 9.9626 Tf 7.205 0 Td [(.)]TJ -164.339 -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 [(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(ob)-55(ject)-334(t)28(yp)-28(e)-333(sp)-28(eci\014ed)-333(in)]TJ/F14 9.9626 Tf 176.118 0 Td [(x)]TJ -0 0 1 rg 0 0 1 RG -/F8 9.9626 Tf 7.749 0 Td [(3)]TJ +/F27 9.9626 Tf -33.797 -19.926 Td [(On)-383(En)32(try)]TJ 0 g 0 G - [(.)]TJ 0 g 0 G -/F27 9.9626 Tf -208.773 -20.65 Td [(x)]TJ + 0 -19.925 Td [(a)]TJ 0 g 0 G -/F8 9.9626 Tf 11.028 0 Td [(the)-333(lo)-28(cal)-333(p)-28(ortion)-333(of)-334(global)-333(dense)-333(matrix)]TJ/F11 9.9626 Tf 176.118 0 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(.)]TJ -167.934 -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.547 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-255(as:)-405(a)-255(rank)-254(one)-255(or)-255(t)28(w)27(o)-254(arra)27(y)-254(or)-255(an)-255(ob)-56(j)1(e)-1(ct)-254(of)-255(t)28(yp)-28(e)]TJ +/F8 9.9626 Tf 10.551 0 Td [(the)-333(lo)-28(cal)-333(p)-28(ortion)-333(of)-334(the)-333(global)-333(sparse)-334(matrix)]TJ/F11 9.9626 Tf 196.126 0 Td [(A)]TJ/F8 9.9626 Tf 7.472 0 Td [(.)]TJ -189.242 -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 [(in)]TJ/F8 9.9626 Tf 9.548 0 Td [(.)]TJ -43.033 -11.956 Td [(Sp)-28(eci\014ed)-333(as:)-444(an)-334(ob)-55(ject)-334(of)-333(t)28(yp)-28(e)]TJ 0 0 1 rg 0 0 1 RG -/F30 9.9626 Tf 244.743 0 Td [(psb)]TJ -ET -q -1 0 0 1 436.673 590.037 cm -[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S -Q -BT -/F30 9.9626 Tf 439.811 589.838 Td [(T)]TJ +/F30 9.9626 Tf 135.658 0 Td [(psb)]TJ ET q -1 0 0 1 445.669 590.037 cm +1 0 0 1 327.588 346.132 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 448.807 589.838 Td [(vect)]TJ +/F30 9.9626 Tf 330.727 345.932 Td [(Tspmat)]TJ ET q -1 0 0 1 470.356 590.037 cm +1 0 0 1 362.736 346.132 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 473.495 589.838 Td [(type)]TJ -0 g 0 G -/F8 9.9626 Tf -297.884 -11.955 Td [(con)28(taining)-342(n)28(um)28(b)-28(ers)-342(of)-342(t)28(yp)-28(e)-342(sp)-28(eci\014ed)-342(in)-341(T)83(able)]TJ -0 0 1 rg 0 0 1 RG - [-342(13)]TJ -0 g 0 G - [(.)-470(The)-342(rank)-342(of)]TJ/F11 9.9626 Tf 274.695 0 Td [(x)]TJ/F8 9.9626 Tf 9.1 0 Td [(m)28(ust)-342(b)-28(e)]TJ -283.795 -11.956 Td [(the)-333(same)-334(of)]TJ/F11 9.9626 Tf 53.467 0 Td [(y)]TJ/F8 9.9626 Tf 5.242 0 Td [(.)]TJ -0 g 0 G -/F27 9.9626 Tf -83.615 -20.649 Td [(b)-32(eta)]TJ -0 g 0 G -/F8 9.9626 Tf 26.94 0 Td [(the)-333(scalar)]TJ/F11 9.9626 Tf 45.469 0 Td [(\014)]TJ/F8 9.9626 Tf 6.161 0 Td [(.)]TJ -53.663 -11.956 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.378 0 Td [(global)]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 [(in)]TJ/F8 9.9626 Tf 9.548 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-444(a)-334(n)28(um)28(b)-28(er)-333(of)-334(the)-333(data)-333(t)28(yp)-28(e)-334(in)1(dicate)-1(d)-333(in)-333(T)83(able)]TJ -0 0 1 rg 0 0 1 RG - [-333(13)]TJ -0 g 0 G - [(.)]TJ +/F30 9.9626 Tf 365.874 345.932 Td [(type)]TJ 0 g 0 G -/F27 9.9626 Tf -24.907 -20.65 Td [(y)]TJ +/F8 9.9626 Tf 20.922 0 Td [(.)]TJ 0 g 0 G -/F8 9.9626 Tf 11.028 0 Td [(the)-333(lo)-28(cal)-333(p)-28(ortion)-333(of)-334(global)-333(dense)-333(matrix)]TJ/F11 9.9626 Tf 176.118 0 Td [(y)]TJ/F8 9.9626 Tf 5.242 0 Td [(.)]TJ -167.481 -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 [(inout)]TJ/F8 9.9626 Tf 26.097 0 Td [(.)]TJ -59.582 -11.955 Td [(Sp)-28(eci\014ed)-255(as:)-405(a)-255(rank)-254(one)-255(or)-255(t)28(w)28(o)-255(arra)28(y)-255(or)-255(an)-255(ob)-55(ject)-255(of)-255(t)28(yp)-28(e)]TJ -0 0 1 rg 0 0 1 RG -/F30 9.9626 Tf 244.742 0 Td [(psb)]TJ +/F27 9.9626 Tf -236.091 -19.925 Td [(desc)]TJ ET q -1 0 0 1 436.673 429.186 cm -[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +1 0 0 1 172.619 326.206 cm +[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F30 9.9626 Tf 439.811 428.986 Td [(T)]TJ +/F27 9.9626 Tf 176.057 326.007 Td [(a)]TJ +0 g 0 G +/F8 9.9626 Tf 10.55 0 Td [(con)28(tains)-334(data)-333(structures)-333(for)-333(c)-1(omm)28(unications.)]TJ -10.996 -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.956 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(ob)-55(ject)-334(of)-333(t)28(yp)-28(e)]TJ +0 0 1 rg 0 0 1 RG +/F30 9.9626 Tf 135.659 0 Td [(psb)]TJ ET q -1 0 0 1 445.669 429.186 cm +1 0 0 1 327.588 278.386 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 448.807 428.986 Td [(vect)]TJ +/F30 9.9626 Tf 330.727 278.186 Td [(desc)]TJ ET q -1 0 0 1 470.356 429.186 cm +1 0 0 1 352.275 278.386 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 473.495 428.986 Td [(type)]TJ +/F30 9.9626 Tf 355.414 278.186 Td [(type)]TJ 0 g 0 G -/F8 9.9626 Tf -297.884 -11.955 Td [(con)28(taining)-345(n)28(um)28(b)-28(ers)-345(of)-345(t)28(yp)-28(e)-345(sp)-28(eci\014ed)-345(in)-345(T)84(able)]TJ -0 0 1 rg 0 0 1 RG - [-345(13)]TJ +/F8 9.9626 Tf 20.921 0 Td [(.)]TJ 0 g 0 G - [(.)-479(The)-345(rank)-345(of)]TJ/F11 9.9626 Tf 275.087 0 Td [(y)]TJ/F8 9.9626 Tf 8.678 0 Td [(m)28(ust)-345(b)-28(e)]TJ -283.765 -11.955 Td [(the)-333(same)-334(of)]TJ/F11 9.9626 Tf 53.467 0 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(.)]TJ +/F27 9.9626 Tf -225.63 -19.925 Td [(On)-383(Return)]TJ 0 g 0 G -/F27 9.9626 Tf -84.067 -20.65 Td [(desc)]TJ -ET -q -1 0 0 1 172.619 384.625 cm -[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S -Q -BT -/F27 9.9626 Tf 176.057 384.426 Td [(a)]TJ -0 g 0 G -/F8 9.9626 Tf 10.55 0 Td [(con)28(tains)-334(data)-333(structures)-333(for)-333(c)-1(omm)28(unications.)]TJ -10.996 -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.956 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(ob)-55(ject)-334(of)-333(t)28(yp)-28(e)]TJ -0 0 1 rg 0 0 1 RG -/F30 9.9626 Tf 135.659 0 Td [(psb)]TJ -ET -q -1 0 0 1 327.588 336.805 cm -[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S -Q -BT -/F30 9.9626 Tf 330.727 336.605 Td [(desc)]TJ -ET -q -1 0 0 1 352.275 336.805 cm -[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S -Q -BT -/F30 9.9626 Tf 355.414 336.605 Td [(type)]TJ -0 g 0 G -/F8 9.9626 Tf 20.921 0 Td [(.)]TJ -0 g 0 G -/F27 9.9626 Tf -225.63 -20.649 Td [(trans)]TJ -0 g 0 G -/F8 9.9626 Tf 30.609 0 Td [(sp)-28(ecify)-333(with)]TJ/F17 9.9626 Tf 55.68 0 Td [(unitd)]TJ/F8 9.9626 Tf 25.725 0 Td [(the)-333(op)-28(eration)-333(to)-334(p)-27(e)-1(r)1(form.)]TJ -0 g 0 G -/F27 9.9626 Tf -87.108 -20.65 Td [(trans)-383(=)-384('N')]TJ -0 g 0 G -/F8 9.9626 Tf 62.489 0 Td [(the)-333(op)-28(eration)-333(is)-334(with)-333(no)-333(transp)-28(osed)-333(matrix)]TJ -0 g 0 G -/F27 9.9626 Tf -62.489 -16.303 Td [(trans)-383(=)-384('T')]TJ -0 g 0 G -/F8 9.9626 Tf 61.493 0 Td [(the)-333(op)-28(eration)-333(is)-334(with)-333(transp)-28(osed)-333(matrix.)]TJ -0 g 0 G -/F27 9.9626 Tf -61.493 -16.302 Td [(trans)-383(=)-384('C')]TJ -0 g 0 G -/F8 9.9626 Tf 61.798 0 Td [(the)-333(op)-28(eration)-333(is)-334(with)-333(conjugate)-333(transp)-28(osed)-333(matrix.)]TJ -61.798 -20.65 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 [(optional)]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.547 0 Td [(.)]TJ -43.033 -11.956 Td [(Default:)]TJ/F11 9.9626 Tf 39.436 0 Td [(tr)-28(ans)]TJ/F8 9.9626 Tf 27.052 0 Td [(=)]TJ/F11 9.9626 Tf 10.517 0 Td [(N)]TJ/F8 9.9626 Tf -77.005 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(c)28(haracter)-334(v)56(ariable.)]TJ -0 g 0 G -/F27 9.9626 Tf -24.906 -20.65 Td [(unitd)]TJ -0 g 0 G -/F8 9.9626 Tf 31.714 0 Td [(sp)-28(ecify)-333(with)]TJ/F17 9.9626 Tf 55.68 0 Td [(tr)51(ans)]TJ/F8 9.9626 Tf 25.089 0 Td [(the)-333(op)-28(eration)-333(to)-334(p)-27(erform.)]TJ 0 g 0 G -/F27 9.9626 Tf -87.577 -20.649 Td [(unitd)-383(=)-384('U')]TJ -0 g 0 G -/F8 9.9626 Tf 63.443 0 Td [(the)-333(op)-28(eration)-333(is)-334(with)-333(no)-333(scaling)]TJ -0 g 0 G -/F27 9.9626 Tf -63.443 -16.303 Td [(unitd)-383(=)-384('L')]TJ + 0 -19.925 Td [(F)96(unction)-384(v)64(alue)]TJ 0 g 0 G -/F8 9.9626 Tf 61.519 0 Td [(the)-333(op)-28(eration)-333(is)-334(with)-333(left)-333(scaling)]TJ +/F8 9.9626 Tf 78.386 0 Td [(is)-333(the)-334(1-norm)-333(of)-333(sparse)-334(submatrix)]TJ/F11 9.9626 Tf 150.298 0 Td [(A)]TJ/F8 9.9626 Tf 7.472 0 Td [(.)]TJ -211.25 -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 [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(long)-333(precision)-334(r)1(e)-1(al)-333(n)28(um)28(b)-28(er.)]TJ 0 g 0 G -/F27 9.9626 Tf -61.519 -16.302 Td [(unitd)-383(=)-384('R')]TJ +/F27 9.9626 Tf -24.906 -19.926 Td [(info)]TJ 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(s)-1(caling.)]TJ +/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 - 78.747 -29.888 Td [(50)]TJ + 141.968 -56.242 Td [(46)]TJ 0 g 0 G ET endstream endobj -1173 0 obj +1169 0 obj << -/Length 4663 +/Length 5557 >> stream 0 g 0 G 0 g 0 G BT -/F8 9.9626 Tf 124.802 706.129 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.956 Td [(Default:)]TJ/F11 9.9626 Tf 39.436 0 Td [(unitd)]TJ/F8 9.9626 Tf 26.665 0 Td [(=)]TJ/F11 9.9626 Tf 10.516 0 Td [(U)]TJ/F8 9.9626 Tf -76.617 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(c)28(haracter)-333(v)55(ariable.)]TJ +/F16 11.9552 Tf 99.895 706.129 Td [(4.11)-1125(psb)]TJ +ET +q +1 0 0 1 158.311 706.328 cm +[]0 d 0 J 0.398 w 0 0 m 4.035 0 l S +Q +BT +/F16 11.9552 Tf 162.346 706.129 Td [(normi)-375(|)-375(In\014nit)31(y)-375(Norm)-375(of)-375(Sparse)-375(Matrix)]TJ/F8 9.9626 Tf -62.451 -18.389 Td [(This)-333(function)-334(computes)-333(the)-333(in\014nit)28(y-norm)-334(of)-333(a)-333(matrix)]TJ/F11 9.9626 Tf 235.673 0 Td [(A)]TJ/F8 9.9626 Tf 7.472 0 Td [(:)]TJ/F11 9.9626 Tf -103.441 -33.873 Td [(nr)-28(mi)]TJ/F14 9.9626 Tf 25.698 0 Td [(\040)-278(k)]TJ/F11 9.9626 Tf 17.712 0 Td [(A)]TJ/F14 9.9626 Tf 7.472 0 Td [(k)]TJ/F13 6.9738 Tf 4.981 -1.495 Td [(1)]TJ/F8 9.9626 Tf -195.567 -20.423 Td [(where:)]TJ 0 g 0 G -/F27 9.9626 Tf -24.907 -19.925 Td [(c)32(hoice)]TJ +/F11 9.9626 Tf 0 -19.926 Td [(A)]TJ 0 g 0 G -/F8 9.9626 Tf 35.375 0 Td [(sp)-28(eci\014es)-333(the)-334(u)1(p)-28(date)-334(of)-333(o)28(v)28(erlap)-334(elemen)28(ts)-333(to)-334(b)-27(e)-334(p)-27(erformed)-334(on)-333(exit:)]TJ +/F8 9.9626 Tf 12.454 0 Td [(represen)28(ts)-334(the)-333(global)-333(matrix)]TJ/F11 9.9626 Tf 125.834 0 Td [(A)]TJ 0 g 0 G 0 g 0 G -/F30 9.9626 Tf -5.487 -19.925 Td [(psb_none_)]TJ 0 g 0 G +ET +q +1 0 0 1 181.29 589.962 cm +[]0 d 0 J 0.398 w 0 0 m 180.922 0 l S +Q +BT +/F11 9.9626 Tf 187.268 581.394 Td [(A)]TJ/F27 9.9626 Tf 120.409 0 Td [(F)96(unction)]TJ +ET +q +1 0 0 1 181.29 577.608 cm +[]0 d 0 J 0.398 w 0 0 m 180.922 0 l S +Q +BT +/F8 9.9626 Tf 187.268 569.04 Td [(Short)-333(Precision)-333(R)-1(eal)-3102(psb)]TJ +ET +q +1 0 0 1 323.274 569.24 cm +[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +Q +BT +/F8 9.9626 Tf 326.263 569.04 Td [(spnrmi)]TJ -138.995 -11.955 Td [(Long)-333(Precision)-334(Real)-3314(p)1(s)-1(b)]TJ +ET +q +1 0 0 1 323.274 557.284 cm +[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +Q +BT +/F8 9.9626 Tf 326.263 557.085 Td [(spnrmi)]TJ -138.995 -11.955 Td [(Short)-333(Precision)-333(C)-1(omplex)-1200(p)1(s)-1(b)]TJ +ET +q +1 0 0 1 323.274 545.329 cm +[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +Q +BT +/F8 9.9626 Tf 326.263 545.13 Td [(spnrmi)]TJ -138.995 -11.955 Td [(Long)-333(Precision)-334(Complex)-1411(psb)]TJ +ET +q +1 0 0 1 323.274 533.374 cm +[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +Q +BT +/F8 9.9626 Tf 326.263 533.175 Td [(spnrmi)]TJ +ET +q +1 0 0 1 181.29 529.389 cm +[]0 d 0 J 0.398 w 0 0 m 180.922 0 l S +Q 0 g 0 G - 0 -15.941 Td [(psb_sum_)]TJ +BT +/F8 9.9626 Tf 225.577 501.35 Td [(T)83(able)-333(11:)-444(Data)-334(t)28(yp)-28(es)]TJ 0 g 0 G 0 g 0 G - 0 -15.94 Td [(psb_avg_)]TJ 0 g 0 G 0 g 0 G - 0 -15.94 Td [(psb_square_root_)]TJ/F8 9.9626 Tf -4.981 -19.925 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.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 [(Default:)]TJ/F30 9.9626 Tf 39.436 0 Td [(psb_avg_)]TJ/F8 9.9626 Tf -39.436 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(in)28(teger)-333(v)55(ariable.)]TJ +/F30 9.9626 Tf -125.682 -33.873 Td [(psb_spnrmi\050A,)-525(desc_a,)-525(info\051)]TJ 0 -11.956 Td [(psb_normi\050A,)-525(desc_a,)-525(info\051)]TJ 0 g 0 G -/F27 9.9626 Tf -24.907 -19.925 Td [(diag)]TJ +/F27 9.9626 Tf 0 -21.917 Td [(T)32(yp)-32(e:)]TJ 0 g 0 G -/F8 9.9626 Tf 25.827 0 Td [(the)-333(diagonal)-334(scaling)-333(matrix.)]TJ -0.92 -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 [(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 [(Default:)]TJ/F11 9.9626 Tf 39.436 0 Td [(diag)]TJ/F8 9.9626 Tf 18.993 0 Td [(\0501\051)-278(=)-277(1\050)]TJ/F11 9.9626 Tf 34.869 0 Td [(noscal)-20(ing)]TJ/F8 9.9626 Tf 42.747 0 Td [(\051)]TJ -136.045 -11.955 Td [(Sp)-28(eci\014ed)-382(as:)-543(a)-382(rank)-382(one)-383(arra)28(y)-382(con)27(taining)-382(n)28(um)28(b)-28(ers)-383(of)-382(the)-382(t)27(yp)-27(e)-383(indicated)]TJ 0 -11.955 Td [(in)-333(T)83(able)]TJ -0 0 1 rg 0 0 1 RG - [-333(13)]TJ +/F8 9.9626 Tf 33.797 0 Td [(Sync)28(hronous.)]TJ 0 g 0 G - [(.)]TJ +/F27 9.9626 Tf -33.797 -19.926 Td [(On)-383(En)32(try)]TJ 0 g 0 G -/F27 9.9626 Tf -24.907 -19.926 Td [(w)32(ork)]TJ 0 g 0 G -/F8 9.9626 Tf 29.432 0 Td [(a)-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)-377(as:)-531(a)-377(rank)-376(one)-377(arra)28(y)-377(of)-377(the)-377(same)-377(t)28(yp)-28(e)-377(of)]TJ/F11 9.9626 Tf 225.953 0 Td [(x)]TJ/F8 9.9626 Tf 9.448 0 Td [(with)-377(the)-377(T)84(AR)28(GET)]TJ -235.401 -11.955 Td [(attribute.)]TJ + 0 -19.925 Td [(a)]TJ 0 g 0 G -/F27 9.9626 Tf -24.907 -19.926 Td [(On)-383(Return)]TJ +/F8 9.9626 Tf 10.551 0 Td [(the)-333(lo)-28(cal)-333(p)-28(ortion)-333(of)-334(the)-333(global)-333(sparse)-334(matrix)]TJ/F11 9.9626 Tf 196.126 0 Td [(A)]TJ/F8 9.9626 Tf 7.472 0 Td [(.)]TJ -189.242 -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 [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.956 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(ob)-55(ject)-334(of)-333(t)28(yp)-28(e)]TJ +0 0 1 rg 0 0 1 RG +/F30 9.9626 Tf 135.658 0 Td [(psb)]TJ +ET +q +1 0 0 1 276.779 346.132 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +Q +BT +/F30 9.9626 Tf 279.917 345.932 Td [(Tspmat)]TJ +ET +q +1 0 0 1 311.927 346.132 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +Q +BT +/F30 9.9626 Tf 315.065 345.932 Td [(type)]TJ 0 g 0 G +/F8 9.9626 Tf 20.921 0 Td [(.)]TJ 0 g 0 G - 0 -19.925 Td [(y)]TJ +/F27 9.9626 Tf -236.091 -19.925 Td [(desc)]TJ +ET +q +1 0 0 1 121.81 326.206 cm +[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S +Q +BT +/F27 9.9626 Tf 125.247 326.007 Td [(a)]TJ 0 g 0 G -/F8 9.9626 Tf 11.028 0 Td [(the)-333(lo)-28(cal)-333(p)-28(ortion)-333(of)-334(global)-333(dense)-333(matrix)]TJ/F11 9.9626 Tf 176.118 0 Td [(y)]TJ/F8 9.9626 Tf 5.242 0 Td [(.)]TJ -167.481 -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 [(inout)]TJ/F8 9.9626 Tf 26.096 0 Td [(.)]TJ -59.582 -11.955 Td [(Sp)-28(eci\014ed)-474(as:)-727(an)-475(arra)28(y)-474(of)-475(rank)-475(on)1(e)-475(or)-475(t)28(w)28(o)-475(con)28(taining)-474(n)27(u)1(m)27(b)-27(e)-1(r)1(s)-475(of)-475(t)28(yp)-28(e)]TJ 0 -11.955 Td [(sp)-28(eci\014ed)-333(in)-333(T)83(able)]TJ +/F8 9.9626 Tf 10.551 0 Td [(con)28(tains)-334(d)1(ata)-334(structures)-333(for)-333(com)-1(m)28(unications.)]TJ -10.996 -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 [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.956 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(ob)-55(ject)-334(of)-333(t)28(yp)-28(e)]TJ 0 0 1 rg 0 0 1 RG - [-333(13)]TJ -0 g 0 G - [(.)]TJ +/F30 9.9626 Tf 135.658 0 Td [(psb)]TJ +ET +q +1 0 0 1 276.779 278.386 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +Q +BT +/F30 9.9626 Tf 279.917 278.186 Td [(desc)]TJ +ET +q +1 0 0 1 301.466 278.386 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +Q +BT +/F30 9.9626 Tf 304.604 278.186 Td [(type)]TJ 0 g 0 G -/F27 9.9626 Tf -24.907 -19.925 Td [(info)]TJ +/F8 9.9626 Tf 20.922 0 Td [(.)]TJ 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 +/F27 9.9626 Tf -225.631 -19.925 Td [(On)-383(Return)]TJ 0 g 0 G - 141.968 -73.723 Td [(51)]TJ 0 g 0 G -ET - -endstream -endobj -1178 0 obj -<< -/Length 651 ->> -stream + 0 -19.925 Td [(F)96(unction)-384(v)64(alue)]TJ 0 g 0 G +/F8 9.9626 Tf 78.387 0 Td [(is)-333(the)-334(in\014ni)1(t)27(y-norm)-333(of)-333(sparse)-334(submatrix)]TJ/F11 9.9626 Tf 176.311 0 Td [(A)]TJ/F8 9.9626 Tf 7.472 0 Td [(.)]TJ -237.263 -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 [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(long)-333(precision)-333(real)-334(n)28(um)28(b)-28(er.)]TJ 0 g 0 G -BT -/F16 14.3462 Tf 150.705 706.129 Td [(5)-1125(Comm)31(unication)-375(routines)]TJ/F8 9.9626 Tf 0 -21.821 Td [(The)-283(routines)-283(in)-283(this)-283(c)28(hapter)-283(implemen)28(t)-283(v)55(arious)-283(global)-283(comm)28(unication)-283(op)-28(erators)]TJ 0 -11.955 Td [(on)-344(v)28(ectors)-344(asso)-27(c)-1(iated)-343(with)-344(a)-344(d)1(is)-1(cretization)-343(mesh.)-476(F)84(or)-344(auxiliary)-344(comm)28(unication)]TJ 0 -11.955 Td [(routines)-333(not)-334(tied)-333(to)-333(a)-334(d)1(is)-1(cretization)-333(space)-333(see)]TJ -0 0 1 rg 0 0 1 RG - [-334(6)]TJ +/F27 9.9626 Tf -24.907 -19.926 Td [(info)]TJ 0 g 0 G - [(.)]TJ +/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 - 166.874 -569.96 Td [(52)]TJ + 141.968 -56.242 Td [(47)]TJ 0 g 0 G ET endstream endobj -1186 0 obj +1180 0 obj << -/Length 7259 +/Length 7334 >> stream 0 g 0 G 0 g 0 G BT -/F16 11.9552 Tf 99.895 706.129 Td [(psb)]TJ +/F16 11.9552 Tf 150.705 706.129 Td [(4.12)-1125(psb)]TJ ET q -1 0 0 1 120.951 706.328 cm +1 0 0 1 209.121 706.328 cm []0 d 0 J 0.398 w 0 0 m 4.035 0 l S Q BT -/F16 11.9552 Tf 124.986 706.129 Td [(halo)-375(|)-375(Halo)-375(Data)-375(Comm)31(unication)]TJ/F8 9.9626 Tf -25.091 -18.389 Td [(These)-333(s)-1(u)1(broutines)-334(gathers)-333(the)-333(v)55(alues)-333(of)-334(th)1(e)-334(halo)-333(elemen)28(ts:)]TJ/F11 9.9626 Tf 158.413 -23.188 Td [(x)]TJ/F14 9.9626 Tf 8.462 0 Td [(\040)]TJ/F11 9.9626 Tf 12.73 0 Td [(x)]TJ/F8 9.9626 Tf -179.605 -21.251 Td [(where:)]TJ +/F16 11.9552 Tf 213.156 706.129 Td [(spmm)-349(|)-349(Sparse)-349(Matrix)-349(b)31(y)-349(Dense)-349(Matrix)-349(Pro)-31(d-)]TJ -25.091 -13.948 Td [(uct)]TJ/F8 9.9626 Tf -37.36 -18.389 Td [(This)-333(subroutine)-334(computes)-333(the)-333(Sparse)-334(Matrix)-333(b)28(y)-333(Dense)-334(Matrix)-333(Pro)-28(duct:)]TJ/F11 9.9626 Tf 139.908 -23.911 Td [(y)]TJ/F14 9.9626 Tf 8.009 0 Td [(\040)]TJ/F11 9.9626 Tf 12.73 0 Td [(\013)-4(Ax)]TJ/F8 9.9626 Tf 21.79 0 Td [(+)]TJ/F11 9.9626 Tf 9.963 0 Td [(\014)-53(y)]TJ 0 g 0 G -/F11 9.9626 Tf 0 -19.391 Td [(x)]TJ +/F8 9.9626 Tf 138.581 0 Td [(\0501\051)]TJ 0 g 0 G -/F8 9.9626 Tf 10.676 0 Td [(is)-333(a)-334(global)-333(dense)-333(submatrix.)]TJ +/F11 9.9626 Tf -194.211 -16.435 Td [(y)]TJ/F14 9.9626 Tf 8.009 0 Td [(\040)]TJ/F11 9.9626 Tf 12.73 0 Td [(\013)-4(A)]TJ/F10 6.9738 Tf 13.882 4.114 Td [(T)]TJ/F11 9.9626 Tf 6.276 -4.114 Td [(x)]TJ/F8 9.9626 Tf 7.908 0 Td [(+)]TJ/F11 9.9626 Tf 9.963 0 Td [(\014)-53(y)]TJ +0 g 0 G +/F8 9.9626 Tf 135.443 0 Td [(\0502\051)]TJ +0 g 0 G +/F11 9.9626 Tf -194.851 -16.435 Td [(y)]TJ/F14 9.9626 Tf 8.009 0 Td [(\040)]TJ/F11 9.9626 Tf 12.73 0 Td [(\013)-4(A)]TJ/F10 6.9738 Tf 13.882 4.114 Td [(H)]TJ/F11 9.9626 Tf 7.557 -4.114 Td [(x)]TJ/F8 9.9626 Tf 7.907 0 Td [(+)]TJ/F11 9.9626 Tf 9.963 0 Td [(\014)-53(y)]TJ +0 g 0 G +/F8 9.9626 Tf 134.803 0 Td [(\0503\051)]TJ +0 g 0 G + -316.037 -16.435 Td [(where:)]TJ +0 g 0 G +/F11 9.9626 Tf -14.944 -17.928 Td [(x)]TJ +0 g 0 G +/F8 9.9626 Tf 10.675 0 Td [(is)-333(the)-334(global)-333(dense)-333(matrix)]TJ/F11 9.9626 Tf 116.093 0 Td [(x)]TJ/F7 6.9738 Tf 5.694 -1.495 Td [(:)]TJ/F10 6.9738 Tf 2.255 0 Td [(;)]TJ/F7 6.9738 Tf 2.366 0 Td [(:)]TJ +0 g 0 G +/F11 9.9626 Tf -137.083 -17.432 Td [(y)]TJ +0 g 0 G +/F8 9.9626 Tf 10.223 0 Td [(is)-333(the)-334(global)-333(dense)-333(matrix)]TJ/F11 9.9626 Tf 116.093 0 Td [(y)]TJ/F7 6.9738 Tf 4.884 -1.494 Td [(:)]TJ/F10 6.9738 Tf 2.256 0 Td [(;)]TJ/F7 6.9738 Tf 2.366 0 Td [(:)]TJ +0 g 0 G +/F11 9.9626 Tf -135.822 -17.433 Td [(A)]TJ +0 g 0 G +/F8 9.9626 Tf 12.453 0 Td [(is)-333(the)-334(global)-333(sparse)-333(matrix)]TJ/F11 9.9626 Tf 118.943 0 Td [(A)]TJ 0 g 0 G 0 g 0 G 0 g 0 G ET q -1 0 0 1 177.988 602.649 cm +1 0 0 1 228.797 525.728 cm []0 d 0 J 0.398 w 0 0 m 187.526 0 l S Q BT -/F11 9.9626 Tf 183.966 594.081 Td [(\013)]TJ/F8 9.9626 Tf 6.41 0 Td [(,)]TJ/F11 9.9626 Tf 6.088 0 Td [(x)]TJ/F27 9.9626 Tf 107.911 0 Td [(Subroutine)]TJ +/F11 9.9626 Tf 234.775 517.16 Td [(A)]TJ/F8 9.9626 Tf 7.472 0 Td [(,)]TJ/F11 9.9626 Tf 6.088 0 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(,)]TJ/F11 9.9626 Tf 6.088 0 Td [(y)]TJ/F8 9.9626 Tf 5.242 0 Td [(,)]TJ/F11 9.9626 Tf 6.089 0 Td [(\013)]TJ/F8 9.9626 Tf 6.41 0 Td [(,)]TJ/F11 9.9626 Tf 6.088 0 Td [(\014)]TJ/F27 9.9626 Tf 71.239 0 Td [(Subroutine)]TJ ET q -1 0 0 1 177.988 590.295 cm +1 0 0 1 228.797 513.374 cm []0 d 0 J 0.398 w 0 0 m 187.526 0 l S Q BT -/F8 9.9626 Tf 183.966 581.727 Td [(In)28(teger)-9028(psb)]TJ -ET -q -1 0 0 1 319.972 581.926 cm -[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S -Q -BT -/F8 9.9626 Tf 322.961 581.727 Td [(halo)]TJ -138.995 -11.955 Td [(Short)-333(Precision)-333(R)-1(eal)-3102(psb)]TJ +/F8 9.9626 Tf 234.775 504.806 Td [(Short)-333(Precision)-334(Real)-3102(psb)]TJ ET q -1 0 0 1 319.972 569.971 cm +1 0 0 1 370.782 505.006 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 322.961 569.772 Td [(halo)]TJ -138.995 -11.955 Td [(Long)-333(Precision)-334(Real)-3314(p)1(s)-1(b)]TJ +/F8 9.9626 Tf 373.771 504.806 Td [(spmm)]TJ -138.996 -11.955 Td [(Long)-333(Precision)-334(Real)-3314(psb)]TJ ET q -1 0 0 1 319.972 558.016 cm +1 0 0 1 370.782 493.05 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 322.961 557.817 Td [(halo)]TJ -138.995 -11.955 Td [(Short)-333(Precision)-333(C)-1(omplex)-1200(p)1(s)-1(b)]TJ +/F8 9.9626 Tf 373.771 492.851 Td [(spmm)]TJ -138.996 -11.955 Td [(Short)-333(Precision)-334(Complex)-1200(psb)]TJ ET q -1 0 0 1 319.972 546.061 cm +1 0 0 1 370.782 481.095 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 322.961 545.862 Td [(halo)]TJ -138.995 -11.956 Td [(Long)-333(Precision)-334(Complex)-1411(psb)]TJ +/F8 9.9626 Tf 373.771 480.896 Td [(spmm)]TJ -138.996 -11.955 Td [(Long)-333(Precision)-334(Complex)-1411(psb)]TJ ET q -1 0 0 1 319.972 534.106 cm +1 0 0 1 370.782 469.14 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 322.961 533.906 Td [(halo)]TJ +/F8 9.9626 Tf 373.771 468.941 Td [(spmm)]TJ ET q -1 0 0 1 177.988 530.121 cm +1 0 0 1 228.797 465.155 cm []0 d 0 J 0.398 w 0 0 m 187.526 0 l S Q 0 g 0 G BT -/F8 9.9626 Tf 225.577 502.081 Td [(T)83(able)-333(14:)-444(Data)-334(t)28(yp)-28(es)]TJ +/F8 9.9626 Tf 276.386 437.116 Td [(T)83(able)-333(12:)-444(Data)-334(t)28(yp)-28(es)]TJ 0 g 0 G 0 g 0 G -/F27 9.9626 Tf -124.305 -29.354 Td [(c)-138(a)-138(l)-139(l)]TJ/F8 9.9626 Tf 29.731 0 Td [(p)-122(s)-123(b)]TJ -ET -q -1 0 0 1 150.256 472.926 cm -[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S -Q -BT -/F8 9.9626 Tf 154.464 472.727 Td [(h)-122(a)-123(l)-122(o)-228(\050)-130(x)-209(,)-874(d)-112(e)-113(s)-113(c)]TJ -ET -q -1 0 0 1 226.044 472.926 cm -[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S -Q -BT -/F8 9.9626 Tf 230.155 472.727 Td [(a)-386(,)-914(i)-152(n)-152(f)-152(o)-258(\051)]TJ/F27 9.9626 Tf -128.883 -11.955 Td [(c)-138(a)-138(l)-139(l)]TJ/F8 9.9626 Tf 29.731 0 Td [(p)-122(s)-123(b)]TJ +0 g 0 G +0 g 0 G +/F30 9.9626 Tf -125.681 -30.379 Td [(call)-525(psb_spmm\050alpha,)-525(a,)-525(x,)-525(beta,)-525(y,)-525(desc_a,)-525(info\051)]TJ 0 -11.955 Td [(call)-525(psb_spmm\050alpha,)-525(a,)-525(x,)-525(beta,)-525(y,desc_a,)-525(info,)-525(&)]TJ 67.994 -11.955 Td [(&)-525(trans,)-525(work\051)]TJ +0 g 0 G +/F27 9.9626 Tf -67.994 -19.422 Td [(T)32(yp)-32(e:)]TJ +0 g 0 G +/F8 9.9626 Tf 33.797 0 Td [(Sync)28(hronous.)]TJ +0 g 0 G +/F27 9.9626 Tf -33.797 -18.927 Td [(On)-383(En)32(try)]TJ +0 g 0 G +0 g 0 G + 0 -18.926 Td [(alpha)]TJ +0 g 0 G +/F8 9.9626 Tf 32.032 0 Td [(the)-333(scalar)]TJ/F11 9.9626 Tf 45.469 0 Td [(\013)]TJ/F8 9.9626 Tf 6.41 0 Td [(.)]TJ -59.005 -11.956 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(a)-333(n)28(um)28(b)-28(er)-333(of)-334(the)-333(data)-333(t)27(yp)-27(e)-334(indicated)-333(in)-333(T)83(able)]TJ +0 0 1 rg 0 0 1 RG + [-333(12)]TJ +0 g 0 G + [(.)]TJ +0 g 0 G +/F27 9.9626 Tf -24.906 -18.927 Td [(a)]TJ +0 g 0 G +/F8 9.9626 Tf 10.55 0 Td [(the)-333(lo)-28(cal)-334(p)-27(ortion)-333(of)-334(the)-333(sparse)-334(matri)1(x)]TJ/F11 9.9626 Tf 166.792 0 Td [(A)]TJ/F8 9.9626 Tf 7.472 0 Td [(.)]TJ -159.908 -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.547 0 Td [(.)]TJ -43.033 -11.956 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(ob)-55(ject)-334(of)-333(t)28(yp)-28(e)]TJ +0 0 1 rg 0 0 1 RG +/F30 9.9626 Tf 135.659 0 Td [(psb)]TJ ET q -1 0 0 1 150.256 460.971 cm -[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +1 0 0 1 327.588 211.183 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F8 9.9626 Tf 154.464 460.772 Td [(h)-122(a)-123(l)-122(o)-228(\050)-130(x)-209(,)-874(d)-112(e)-113(s)-113(c)]TJ +/F30 9.9626 Tf 330.727 210.983 Td [(Tspmat)]TJ ET q -1 0 0 1 226.044 460.971 cm -[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +1 0 0 1 362.736 211.183 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F8 9.9626 Tf 230.155 460.772 Td [(a)-386(,)-888(i)-127(n)-127(f)-127(o)-415(,)-804(w)-43(o)-43(r)-43(k)-247(,)]TJ/F27 9.9626 Tf 91.304 0 Td [(d)-39(a)-39(t)-40(a)]TJ/F8 9.9626 Tf 24.571 0 Td [(\051)]TJ -0 g 0 G -0 g 0 G -0 g 0 G -/F27 9.9626 Tf -246.135 -26.961 Td [(T)32(yp)-32(e:)]TJ -0 g 0 G -/F8 9.9626 Tf 33.797 0 Td [(Sync)28(hronous.)]TJ -0 g 0 G -/F27 9.9626 Tf -33.797 -19.659 Td [(On)-383(En)32(try)]TJ +/F30 9.9626 Tf 365.874 210.983 Td [(type)]TJ 0 g 0 G +/F8 9.9626 Tf 20.922 0 Td [(.)]TJ 0 g 0 G - 0 -19.658 Td [(x)]TJ +/F27 9.9626 Tf -236.091 -18.926 Td [(x)]TJ 0 g 0 G -/F8 9.9626 Tf 11.028 0 Td [(global)-333(dense)-334(matrix)]TJ/F11 9.9626 Tf 88.917 0 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(.)]TJ -80.732 -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 [(inout)]TJ/F8 9.9626 Tf 26.096 0 Td [(.)]TJ -59.582 -11.955 Td [(Sp)-28(eci\014ed)-255(as:)-405(a)-255(rank)-254(one)-255(or)-255(t)28(w)27(o)-254(arra)27(y)-254(or)-255(an)-255(ob)-55(jec)-1(t)-254(of)-255(t)28(yp)-28(e)]TJ +/F8 9.9626 Tf 11.028 0 Td [(the)-333(lo)-28(cal)-333(p)-28(ortion)-333(of)-334(global)-333(dense)-333(matrix)]TJ/F11 9.9626 Tf 176.118 0 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(.)]TJ -167.933 -11.956 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 [(in)]TJ/F8 9.9626 Tf 9.548 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-255(as:)-405(a)-255(rank)-254(one)-255(or)-255(t)28(w)28(o)-255(arra)28(y)-255(or)-255(an)-255(ob)-55(ject)-255(of)-255(t)28(yp)-28(e)]TJ 0 0 1 rg 0 0 1 RG -/F30 9.9626 Tf 244.743 0 Td [(psb)]TJ +/F30 9.9626 Tf 244.742 0 Td [(psb)]TJ ET q -1 0 0 1 385.864 346.872 cm +1 0 0 1 436.673 144.435 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 389.002 346.673 Td [(T)]TJ +/F30 9.9626 Tf 439.811 144.236 Td [(T)]TJ ET q -1 0 0 1 394.86 346.872 cm +1 0 0 1 445.669 144.435 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 397.998 346.673 Td [(vect)]TJ +/F30 9.9626 Tf 448.807 144.236 Td [(vect)]TJ ET q -1 0 0 1 419.547 346.872 cm +1 0 0 1 470.356 144.435 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 422.685 346.673 Td [(type)]TJ +/F30 9.9626 Tf 473.495 144.236 Td [(type)]TJ 0 g 0 G -/F8 9.9626 Tf -297.883 -11.955 Td [(con)28(taining)-333(n)27(um)28(b)-28(ers)-333(of)-333(t)28(yp)-28(e)-334(sp)-27(eci\014ed)-334(in)-333(T)83(able)]TJ +/F8 9.9626 Tf -297.884 -11.955 Td [(con)28(taining)-342(n)28(um)28(b)-28(ers)-342(of)-342(t)28(yp)-28(e)-342(sp)-28(eci\014ed)-342(in)-341(T)83(able)]TJ 0 0 1 rg 0 0 1 RG - [-333(14)]TJ + [-342(12)]TJ +0 g 0 G + [(.)-470(The)-342(rank)-342(of)]TJ/F11 9.9626 Tf 274.695 0 Td [(x)]TJ/F8 9.9626 Tf 9.1 0 Td [(m)28(ust)-342(b)-28(e)]TJ -283.795 -11.955 Td [(the)-333(same)-334(of)]TJ/F11 9.9626 Tf 53.467 0 Td [(y)]TJ/F8 9.9626 Tf 5.242 0 Td [(.)]TJ +0 g 0 G + 83.259 -29.888 Td [(48)]TJ +0 g 0 G +ET + +endstream +endobj +1195 0 obj +<< +/Length 6993 +>> +stream +0 g 0 G +0 g 0 G +0 g 0 G +BT +/F27 9.9626 Tf 99.895 706.129 Td [(b)-32(eta)]TJ +0 g 0 G +/F8 9.9626 Tf 26.941 0 Td [(the)-333(scalar)]TJ/F11 9.9626 Tf 45.468 0 Td [(\014)]TJ/F8 9.9626 Tf 6.161 0 Td [(.)]TJ -53.663 -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 [(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 [(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(n)28(um)28(b)-28(er)-333(of)-334(the)-333(data)-333(t)28(yp)-28(e)-334(ind)1(ic)-1(ated)-333(in)-333(T)83(able)]TJ +0 0 1 rg 0 0 1 RG + [-333(12)]TJ 0 g 0 G [(.)]TJ 0 g 0 G -/F27 9.9626 Tf -24.907 -19.658 Td [(desc)]TJ +/F27 9.9626 Tf -24.907 -18.597 Td [(y)]TJ +0 g 0 G +/F8 9.9626 Tf 11.028 0 Td [(the)-333(lo)-28(cal)-333(p)-28(ortion)-333(of)-334(global)-333(dense)-333(matrix)]TJ/F11 9.9626 Tf 176.118 0 Td [(y)]TJ/F8 9.9626 Tf 5.242 0 Td [(.)]TJ -167.481 -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.955 Td [(Sp)-28(eci\014ed)-255(as:)-405(a)-255(rank)-254(one)-255(or)-255(t)28(w)27(o)-254(arra)27(y)-254(or)-255(an)-255(ob)-55(jec)-1(t)-254(of)-255(t)28(yp)-28(e)]TJ +0 0 1 rg 0 0 1 RG +/F30 9.9626 Tf 244.743 0 Td [(psb)]TJ ET q -1 0 0 1 121.81 315.259 cm +1 0 0 1 385.864 592.09 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +Q +BT +/F30 9.9626 Tf 389.002 591.891 Td [(T)]TJ +ET +q +1 0 0 1 394.86 592.09 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +Q +BT +/F30 9.9626 Tf 397.998 591.891 Td [(vect)]TJ +ET +q +1 0 0 1 419.547 592.09 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +Q +BT +/F30 9.9626 Tf 422.685 591.891 Td [(type)]TJ +0 g 0 G +/F8 9.9626 Tf -297.883 -11.956 Td [(con)28(taining)-345(n)28(um)28(b)-28(ers)-345(of)-345(t)28(yp)-28(e)-345(sp)-28(eci\014ed)-345(in)-345(T)84(able)]TJ +0 0 1 rg 0 0 1 RG + [-345(12)]TJ +0 g 0 G + [(.)-479(The)-345(rank)-345(of)]TJ/F11 9.9626 Tf 275.086 0 Td [(y)]TJ/F8 9.9626 Tf 8.678 0 Td [(m)28(ust)-345(b)-28(e)]TJ -283.764 -11.955 Td [(the)-333(same)-334(of)]TJ/F11 9.9626 Tf 53.466 0 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(.)]TJ +0 g 0 G +/F27 9.9626 Tf -84.067 -18.597 Td [(desc)]TJ +ET +q +1 0 0 1 121.81 549.583 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 125.247 315.06 Td [(a)]TJ +/F27 9.9626 Tf 125.247 549.383 Td [(a)]TJ 0 g 0 G -/F8 9.9626 Tf 10.551 0 Td [(con)28(tains)-334(d)1(ata)-334(structures)-333(for)-333(com)-1(m)28(unications.)]TJ -10.996 -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 [(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 10.551 0 Td [(con)28(tains)-334(d)1(ata)-334(structures)-333(for)-333(com)-1(m)28(unications.)]TJ -10.996 -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 [(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(ob)-55(ject)-334(of)-333(t)28(yp)-28(e)]TJ 0 0 1 rg 0 0 1 RG -/F30 9.9626 Tf 170.915 0 Td [(psb)]TJ +/F30 9.9626 Tf 135.658 0 Td [(psb)]TJ ET q -1 0 0 1 312.036 267.438 cm +1 0 0 1 276.779 501.762 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 315.174 267.239 Td [(desc)]TJ +/F30 9.9626 Tf 279.917 501.563 Td [(desc)]TJ ET q -1 0 0 1 336.723 267.438 cm +1 0 0 1 301.466 501.762 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 339.861 267.239 Td [(type)]TJ +/F30 9.9626 Tf 304.604 501.563 Td [(type)]TJ 0 g 0 G -/F8 9.9626 Tf 20.921 0 Td [(.)]TJ +/F8 9.9626 Tf 20.922 0 Td [(.)]TJ 0 g 0 G -/F27 9.9626 Tf -260.887 -19.658 Td [(w)32(ork)]TJ +/F27 9.9626 Tf -225.631 -18.597 Td [(trans)]TJ 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.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 [(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)-333(as:)-445(a)-333(rank)-333(one)-333(arra)27(y)-333(of)-333(the)-334(same)-333(t)28(yp)-28(e)-333(of)]TJ/F11 9.9626 Tf 220.756 0 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(.)]TJ +/F8 9.9626 Tf 30.609 0 Td [(indicates)-333(what)-334(kind)-333(of)-333(op)-28(eration)-333(to)-334(p)-27(erform.)]TJ 0 g 0 G -/F27 9.9626 Tf -251.357 -19.659 Td [(data)]TJ +/F27 9.9626 Tf -5.702 -18.597 Td [(trans)-383(=)-384(N)]TJ 0 g 0 G -/F8 9.9626 Tf 26.941 0 Td [(index)-333(list)-334(selector.)]TJ -2.034 -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 [(Sp)-28(eci\014ed)-222(as:)-389(an)-222(in)28(teger.)-408(V)84(alues:)]TJ/F30 9.9626 Tf 136.479 0 Td [(psb_comm_halo_)]TJ/F8 9.9626 Tf 73.225 0 Td [(,)]TJ/F30 9.9626 Tf 2.767 0 Td [(psb_comm_mov_)]TJ/F8 9.9626 Tf 67.995 0 Td [(,)]TJ/F30 9.9626 Tf 5.202 0 Td [(psb_comm_ext_)]TJ/F8 9.9626 Tf 67.995 0 Td [(,)]TJ -353.663 -11.955 Td [(default:)]TJ/F30 9.9626 Tf 39.089 0 Td [(psb_comm_halo_)]TJ/F8 9.9626 Tf 73.224 0 Td [(.)-705(Cho)-27(os)-1(es)-420(the)-420(index)-420(list)-420(on)-420(whic)28(h)-420(to)-420(base)-420(the)]TJ -112.313 -11.955 Td [(data)-333(exc)27(hange.)]TJ +/F8 9.9626 Tf 56.124 0 Td [(the)-333(op)-28(eration)-333(is)-334(sp)-27(e)-1(ci\014ed)-333(b)28(y)-333(equation)]TJ +0 0 1 rg 0 0 1 RG + [-334(1)]TJ 0 g 0 G - 141.968 -29.888 Td [(53)]TJ +0 g 0 G +/F27 9.9626 Tf -56.124 -14.612 Td [(trans)-383(=)-384(T)]TJ +0 g 0 G +/F8 9.9626 Tf 55.128 0 Td [(the)-333(op)-28(eration)-333(is)-334(sp)-27(e)-1(ci\014)1(e)-1(d)-333(b)28(y)-333(equation)]TJ +0 0 1 rg 0 0 1 RG + [-334(2)]TJ +0 g 0 G +0 g 0 G +/F27 9.9626 Tf -55.128 -14.612 Td [(trans)-383(=)-384(C)]TJ +0 g 0 G +/F8 9.9626 Tf 55.432 0 Td [(the)-333(op)-28(eration)-333(is)-334(sp)-28(eci\014ed)-333(b)28(y)-333(equation)]TJ +0 0 1 rg 0 0 1 RG + [-334(3)]TJ +0 g 0 G + -55.432 -18.597 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 [(Default:)]TJ/F11 9.9626 Tf 39.436 0 Td [(tr)-28(ans)]TJ/F8 9.9626 Tf 27.052 0 Td [(=)]TJ/F11 9.9626 Tf 10.516 0 Td [(N)]TJ/F8 9.9626 Tf -77.004 -11.956 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(c)28(haracter)-333(v)55(ariable.)]TJ +0 g 0 G +/F27 9.9626 Tf -24.907 -18.596 Td [(w)32(ork)]TJ +0 g 0 G +/F8 9.9626 Tf 29.432 0 Td [(w)28(ork)-333(arra)27(y)84(.)]TJ -4.525 -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 [(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)-487(as:)-753(a)-487(rank)-488(one)-487(arra)28(y)-488(of)-487(the)-488(same)-487(t)27(yp)-27(e)-488(of)]TJ/F11 9.9626 Tf 239.183 0 Td [(x)]TJ/F8 9.9626 Tf 10.55 0 Td [(and)]TJ/F11 9.9626 Tf 20.908 0 Td [(y)]TJ/F8 9.9626 Tf 10.098 0 Td [(with)-487(the)]TJ -280.739 -11.955 Td [(T)83(AR)28(GET)-333(attribute.)]TJ +0 g 0 G +/F27 9.9626 Tf -24.907 -18.597 Td [(On)-383(Return)]TJ +0 g 0 G +0 g 0 G + 0 -18.597 Td [(y)]TJ +0 g 0 G +/F8 9.9626 Tf 11.028 0 Td [(the)-333(lo)-28(cal)-333(p)-28(ortion)-333(of)-334(result)-333(matrix)]TJ/F11 9.9626 Tf 147.365 0 Td [(y)]TJ/F8 9.9626 Tf 5.242 0 Td [(.)]TJ -138.728 -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 [(inout)]TJ/F8 9.9626 Tf 26.096 0 Td [(.)]TJ -59.582 -11.955 Td [(Sp)-28(eci\014ed)-474(as:)-727(an)-475(arra)28(y)-474(of)-475(rank)-475(on)1(e)-475(or)-475(t)28(w)28(o)-475(con)28(taining)-474(n)27(u)1(m)27(b)-27(e)-1(r)1(s)-475(of)-475(t)28(yp)-28(e)]TJ 0 -11.955 Td [(sp)-28(eci\014ed)-333(in)-333(T)83(able)]TJ +0 0 1 rg 0 0 1 RG + [-333(12)]TJ +0 g 0 G + [(.)]TJ +0 g 0 G +/F27 9.9626 Tf -24.907 -18.597 Td [(info)]TJ +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.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(detecte)-1(d)1(.)]TJ +0 g 0 G + 141.968 -36.529 Td [(49)]TJ 0 g 0 G ET endstream endobj -1196 0 obj +1202 0 obj << -/Length 3196 +/Length 6783 >> 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 +/F16 11.9552 Tf 150.705 706.129 Td [(4.13)-1125(psb)]TJ +ET +q +1 0 0 1 209.121 706.328 cm +[]0 d 0 J 0.398 w 0 0 m 4.035 0 l S +Q +BT +/F16 11.9552 Tf 213.156 706.129 Td [(spsm)-375(|)-375(T)94(riangular)-375(System)-375(Solv)31(e)]TJ/F8 9.9626 Tf -62.451 -19.095 Td [(This)-333(subroutine)-334(computes)-333(the)-333(T)83(riangular)-333(System)-334(S)1(o)-1(l)1(v)27(e:)]TJ/F11 9.9626 Tf 121.692 -35.01 Td [(y)]TJ/F14 9.9626 Tf 15.205 0 Td [(\040)]TJ/F11 9.9626 Tf 19.925 0 Td [(\013)-4(T)]TJ/F13 6.9738 Tf 13.616 4.113 Td [(\000)]TJ/F7 6.9738 Tf 6.226 0 Td [(1)]TJ/F11 9.9626 Tf 4.47 -4.113 Td [(x)]TJ/F8 9.9626 Tf 7.907 0 Td [(+)]TJ/F11 9.9626 Tf 9.963 0 Td [(\014)-53(y)]TJ -77.312 -14.944 Td [(y)]TJ/F14 9.9626 Tf 15.205 0 Td [(\040)]TJ/F11 9.9626 Tf 19.925 0 Td [(\013)-4(D)-27(T)]TJ/F13 6.9738 Tf 22.141 4.113 Td [(\000)]TJ/F7 6.9738 Tf 6.226 0 Td [(1)]TJ/F11 9.9626 Tf 4.47 -4.113 Td [(x)]TJ/F8 9.9626 Tf 7.907 0 Td [(+)]TJ/F11 9.9626 Tf 9.963 0 Td [(\014)-53(y)]TJ -85.837 -14.944 Td [(y)]TJ/F14 9.9626 Tf 15.205 0 Td [(\040)]TJ/F11 9.9626 Tf 19.925 0 Td [(\013)-4(T)]TJ/F13 6.9738 Tf 13.616 4.113 Td [(\000)]TJ/F7 6.9738 Tf 6.226 0 Td [(1)]TJ/F11 9.9626 Tf 4.47 -4.113 Td [(D)-28(x)]TJ/F8 9.9626 Tf 16.432 0 Td [(+)]TJ/F11 9.9626 Tf 9.963 0 Td [(\014)-53(y)]TJ -85.837 -14.944 Td [(y)]TJ/F14 9.9626 Tf 15.205 0 Td [(\040)]TJ/F11 9.9626 Tf 19.925 0 Td [(\013)-4(T)]TJ/F13 6.9738 Tf 13.616 4.113 Td [(\000)]TJ/F10 6.9738 Tf 6.226 0 Td [(T)]TJ/F11 9.9626 Tf 6.276 -4.113 Td [(x)]TJ/F8 9.9626 Tf 7.908 0 Td [(+)]TJ/F11 9.9626 Tf 9.963 0 Td [(\014)-53(y)]TJ -79.119 -14.944 Td [(y)]TJ/F14 9.9626 Tf 15.205 0 Td [(\040)]TJ/F11 9.9626 Tf 19.925 0 Td [(\013)-4(D)-27(T)]TJ/F13 6.9738 Tf 22.141 4.113 Td [(\000)]TJ/F10 6.9738 Tf 6.226 0 Td [(T)]TJ/F11 9.9626 Tf 6.276 -4.113 Td [(x)]TJ/F8 9.9626 Tf 7.908 0 Td [(+)]TJ/F11 9.9626 Tf 9.963 0 Td [(\014)-53(y)]TJ -87.644 -14.944 Td [(y)]TJ/F14 9.9626 Tf 15.205 0 Td [(\040)]TJ/F11 9.9626 Tf 19.925 0 Td [(\013)-4(T)]TJ/F13 6.9738 Tf 13.616 4.113 Td [(\000)]TJ/F10 6.9738 Tf 6.226 0 Td [(T)]TJ/F11 9.9626 Tf 6.276 -4.113 Td [(D)-28(x)]TJ/F8 9.9626 Tf 16.433 0 Td [(+)]TJ/F11 9.9626 Tf 9.963 0 Td [(\014)-53(y)]TJ -87.644 -14.944 Td [(y)]TJ/F14 9.9626 Tf 15.205 0 Td [(\040)]TJ/F11 9.9626 Tf 19.925 0 Td [(\013)-4(T)]TJ/F13 6.9738 Tf 13.616 4.113 Td [(\000)]TJ/F10 6.9738 Tf 6.226 0 Td [(H)]TJ/F11 9.9626 Tf 7.557 -4.113 Td [(x)]TJ/F8 9.9626 Tf 7.907 0 Td [(+)]TJ/F11 9.9626 Tf 9.963 0 Td [(\014)-53(y)]TJ -80.399 -14.944 Td [(y)]TJ/F14 9.9626 Tf 15.205 0 Td [(\040)]TJ/F11 9.9626 Tf 19.925 0 Td [(\013)-4(D)-27(T)]TJ/F13 6.9738 Tf 22.141 4.113 Td [(\000)]TJ/F10 6.9738 Tf 6.226 0 Td [(H)]TJ/F11 9.9626 Tf 7.557 -4.113 Td [(x)]TJ/F8 9.9626 Tf 7.907 0 Td [(+)]TJ/F11 9.9626 Tf 9.963 0 Td [(\014)-53(y)]TJ -88.924 -14.944 Td [(y)]TJ/F14 9.9626 Tf 15.205 0 Td [(\040)]TJ/F11 9.9626 Tf 19.925 0 Td [(\013)-4(T)]TJ/F13 6.9738 Tf 13.616 4.113 Td [(\000)]TJ/F10 6.9738 Tf 6.226 0 Td [(H)]TJ/F11 9.9626 Tf 7.557 -4.113 Td [(D)-28(x)]TJ/F8 9.9626 Tf 16.432 0 Td [(+)]TJ/F11 9.9626 Tf 9.963 0 Td [(\014)-53(y)]TJ/F8 9.9626 Tf -195.672 -37.999 Td [(where:)]TJ 0 g 0 G +/F11 9.9626 Tf -14.944 -21.063 Td [(x)]TJ 0 g 0 G - 0 -19.925 Td [(x)]TJ +/F8 9.9626 Tf 10.675 0 Td [(is)-333(the)-334(global)-333(dense)-333(matrix)]TJ/F11 9.9626 Tf 116.093 0 Td [(x)]TJ/F7 6.9738 Tf 5.694 -1.494 Td [(:)]TJ/F10 6.9738 Tf 2.255 0 Td [(;)]TJ/F7 6.9738 Tf 2.366 0 Td [(:)]TJ 0 g 0 G -/F8 9.9626 Tf 11.028 0 Td [(global)-333(dense)-334(result)-333(matrix)]TJ/F11 9.9626 Tf 116.674 0 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(.)]TJ -108.49 -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 [(inout)]TJ/F8 9.9626 Tf 26.096 0 Td [(.)]TJ -59.582 -11.955 Td [(Returned)-271(as:)-414(a)-271(rank)-271(one)-271(or)-272(t)28(w)28(o)-271(arra)28(y)-272(con)28(taining)-271(n)28(um)28(b)-28(ers)-271(of)-272(t)28(yp)-28(e)-271(sp)-28(eci\014ed)]TJ 0 -11.955 Td [(in)-333(T)83(able)]TJ -0 0 1 rg 0 0 1 RG - [-333(14)]TJ +/F11 9.9626 Tf -137.083 -19.948 Td [(y)]TJ 0 g 0 G - [(.)]TJ +/F8 9.9626 Tf 10.223 0 Td [(is)-333(the)-334(global)-333(dense)-333(matrix)]TJ/F11 9.9626 Tf 116.093 0 Td [(y)]TJ/F7 6.9738 Tf 4.884 -1.494 Td [(:)]TJ/F10 6.9738 Tf 2.256 0 Td [(;)]TJ/F7 6.9738 Tf 2.366 0 Td [(:)]TJ 0 g 0 G -/F27 9.9626 Tf -24.906 -19.926 Td [(info)]TJ +/F11 9.9626 Tf -135.822 -19.948 Td [(T)]TJ 0 g 0 G -/F8 9.9626 Tf 23.758 0 Td [(the)-333(lo)-28(cal)-333(p)-28(ortion)-333(of)-334(result)-333(submatrix)]TJ/F11 9.9626 Tf 162.364 0 Td [(y)]TJ/F8 9.9626 Tf 5.241 0 Td [(.)]TJ -166.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 [(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(that)-333(con)28(tains)-333(an)-334(error)-333(co)-28(de.)]TJ +/F8 9.9626 Tf 12.187 0 Td [(is)-333(the)-334(global)-333(sparse)-333(blo)-28(c)28(k)-334(triangul)1(a)-1(r)-333(submatrix)]TJ/F11 9.9626 Tf 206.78 0 Td [(T)]TJ +0 g 0 G + -218.967 -21.441 Td [(D)]TJ +0 g 0 G +/F8 9.9626 Tf 13.506 0 Td [(is)-333(the)-334(scaling)-333(diagonal)-333(matrix.)]TJ +0 g 0 G +0 g 0 G +/F30 9.9626 Tf -13.506 -23.814 Td [(call)-525(psb_spsm\050alpha,)-525(t,)-525(x,)-525(beta,)-525(y,)-525(desc_a,)-525(info\051)]TJ 0 -11.955 Td [(call)-525(psb_spsm\050alpha,)-525(t,)-525(x,)-525(beta,)-525(y,)-525(desc_a,)-525(info,&)]TJ 67.994 -11.955 Td [(&)-525(trans,)-525(unit,)-525(choice,)-525(diag,)-525(work\051)]TJ 0 g 0 G 0 g 0 G 0 g 0 G ET -1 0 0 1 210.511 337.279 cm q -.45 0 0 .45 0 0 cm +1 0 0 1 228.797 335.134 cm +[]0 d 0 J 0.398 w 0 0 m 187.526 0 l S +Q +BT +/F11 9.9626 Tf 234.775 326.566 Td [(T)]TJ/F8 9.9626 Tf 7.206 0 Td [(,)]TJ/F11 9.9626 Tf 6.088 0 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(,)]TJ/F11 9.9626 Tf 6.088 0 Td [(y)]TJ/F8 9.9626 Tf 5.242 0 Td [(,)]TJ/F11 9.9626 Tf 6.088 0 Td [(D)]TJ/F8 9.9626 Tf 8.525 0 Td [(,)]TJ/F11 9.9626 Tf 6.089 0 Td [(\013)]TJ/F8 9.9626 Tf 6.41 0 Td [(,)]TJ/F11 9.9626 Tf 6.088 0 Td [(\014)]TJ/F27 9.9626 Tf 56.892 0 Td [(Subroutine)]TJ +ET q -1 0 0 1 0 0 cm -/Im3 Do +1 0 0 1 228.797 322.78 cm +[]0 d 0 J 0.398 w 0 0 m 187.526 0 l S +Q +BT +/F8 9.9626 Tf 234.775 314.213 Td [(Short)-333(Precision)-334(Real)-3102(psb)]TJ +ET +q +1 0 0 1 370.782 314.412 cm +[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +Q +BT +/F8 9.9626 Tf 373.771 314.213 Td [(spsm)]TJ -138.996 -11.956 Td [(Long)-333(Precision)-334(Real)-3314(psb)]TJ +ET +q +1 0 0 1 370.782 302.457 cm +[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +Q +BT +/F8 9.9626 Tf 373.771 302.257 Td [(spsm)]TJ -138.996 -11.955 Td [(Short)-333(Precision)-334(Complex)-1200(psb)]TJ +ET +q +1 0 0 1 370.782 290.501 cm +[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +Q +BT +/F8 9.9626 Tf 373.771 290.302 Td [(spsm)]TJ -138.996 -11.955 Td [(Long)-333(Precision)-334(Complex)-1411(psb)]TJ +ET +q +1 0 0 1 370.782 278.546 cm +[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q +BT +/F8 9.9626 Tf 373.771 278.347 Td [(spsm)]TJ +ET +q +1 0 0 1 228.797 274.561 cm +[]0 d 0 J 0.398 w 0 0 m 187.526 0 l S Q 0 g 0 G -1 0 0 1 -210.511 -337.279 cm BT -/F8 9.9626 Tf 240.078 305.398 Td [(Figure)-333(7:)-445(Sample)-333(discretization)-333(mesh.)]TJ +/F8 9.9626 Tf 276.386 246.522 Td [(T)83(able)-333(13:)-444(Data)-334(t)28(yp)-28(es)]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 g 0 G +/F27 9.9626 Tf -125.681 -35.492 Td [(T)32(yp)-32(e:)]TJ +0 g 0 G +/F8 9.9626 Tf 33.797 0 Td [(Sync)28(hronous.)]TJ +0 g 0 G +/F27 9.9626 Tf -33.797 -21.442 Td [(On)-383(En)32(try)]TJ +0 g 0 G +0 g 0 G + 0 -21.442 Td [(alpha)]TJ +0 g 0 G +/F8 9.9626 Tf 32.032 0 Td [(the)-333(scalar)]TJ/F11 9.9626 Tf 45.469 0 Td [(\013)]TJ/F8 9.9626 Tf 6.41 0 Td [(.)]TJ -59.005 -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(a)-333(n)28(um)28(b)-28(er)-333(of)-334(the)-333(data)-333(t)27(yp)-27(e)-334(indicated)-333(in)-333(T)83(able)]TJ 0 0 1 rg 0 0 1 RG - [-339(7)]TJ + [-333(13)]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.956 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.955 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 + [(.)]TJ 0 g 0 G - 166.874 -119.319 Td [(54)]TJ + 141.968 -29.888 Td [(50)]TJ 0 g 0 G ET endstream endobj -1192 0 obj -<< -/Type /XObject -/Subtype /Form -/FormType 1 -/PTEX.FileName (./figures/try8x8.pdf) -/PTEX.PageNumber 1 -/PTEX.InfoDict 1199 0 R -/BBox [0 0 498 439] -/Resources << -/ProcSet [ /PDF /Text ] -/ExtGState << -/R7 1200 0 R ->>/Font << /R8 1201 0 R/R10 1202 0 R>> ->> -/Length 3349 -/Filter /FlateDecode ->> -stream -xœ]›½Ž$¹„ý~ŠötkìÿªXtÒj½ÃY}Ð-q’¡×WWfDFr±Æ$ɬªo›1d%ç÷gù¨ÏrÿÃÏ×o¿Ìç¯ÿ}Œãù¿‡=¿üù1Žùœs<³hÔñü÷ã×^Ù½ŽÔ}ì®c©¿õÅþVzê_=ú©þ>⩽¦ÇŽí'ž»!ïˆw È;\)ònÒBBZÃ!-$äݤ…5=ÖOÈztRZHLk€Óâ•/©ÇDµX=&¬·œÖcâZ ¼× b!r+“ÈÙ@¶xå €ì1‘­d‰ì-Gö˜ÈÖ²Ç5ÙGù¬|‡|7ˆ|Ç+_@d‹ùnÙâ@¶-ä»Ed‹k ²¹×И…D¶-^ù {LdkÙc"{Ë‘=&²µ€ìqÍ@ö‘@>Cqò)ÍY¼òD>³ì¬Eä3 Ï[@>³ô¬Eä3‹ÏiŠy´Ÿ…aeMò³xå èf-ËÏZô³–åç-8ZËò³=­eù9M€>åyÝœÅFê@l#mÄH?Ki³h¤œy¤ž1ÒŽ–FêÙb¤®+Ô‘ ¬ü|cîÇÌ3FŒ9FŒ™#7³Fê#Æ#ÆŒcÖH1ÇÈ!€•ŸïÌ¥‰ùŽÅì#ÎÌgƈ1ÇH=cÄ™9âÌ>âÌ1RDàÌ9°òó¹+˜-fŒsŒ3GnfÔ3FŒ9FŒ#Ƭ‘"cŽ‘C+?ߘëÁlq0cĘcĘ9r3k¤ž1bÌ1bÌ1fsŒXùùÎ<¤A‹Å<¤Áqæ! j¤ž1âÌ#k#Î<²922Á!€•ŸoÌ—$xe^à•õwI~WVß%ñ]Y{—¤weå]Þ•tw…ì®MuIt›æ’ä6Å%ÁmzKrÛԖĶi-I-+MBK½ð9 Ë1>úó(çÇ,Ým;V¥¯Ç(ó£ñ7P?#¿Óz_þq"ûýmó»ÜÁëw¿›`ùÁòz|ÛíÌÚÑìwM,¤…fÍ~F~§Ã:Z?kF³ßE±Öš5í©ž, Í]ËÌ`ÍŒf¿ cí/4kÞÈï4R •¹¡U|ö$´»é3Ðü.ßvsò°ohSaAB»›†æù~éhíèÍ~ëÇŽFhÖ´§z~° dáµ2š-Eb‡%4kÞÈï´EG«kmh…Ÿ}éÚÝt€E4ÜåÛn5öM¶|Š=aBëò;Ýhc“­¯bß(4k:@Èwù¶¹‹Eï/õ}3^<1sÁ„˜Ýatε©Û³>øµI`AÌ&GR€0wªÆIØ¿ÿüúOQu}ýçN5h=u÷ |ù§¨z|ù·õœÅîOïžó¶û××cdg¶ÌóôXñ½°ø³y‰ìÛ¶Ö -;ãÍï,_0 Ž 7k‚3ãŠM·à¼¿Dz,íÙ·qž<à¬åõ|Ád8¬Ðlåã…ëͺâM༿Dz¬áçpŸ?,pw SpeŸV.Å<î®cB`jgý%Òc±æp0©È>ðùÃÔxó»åõ|Á$8®¹,vŸÂõf_ñNFpÞ_"=Ve/,ÐÖWøù»­în`\òµmqeqÏ‚0‹÷H ®CHåàÆ&3°x×pÖ€‘œ-¯§,„[áú‰ù˜›&ÔÀd.¹œŒfÅì…e1,jÙ’µ¤07®Æ©Ø•@!Lqu aî\ƒFT7¡ fâJî–÷±ÃÝŽ+ÜM/»Þ·×üÀ"Îw·ÈZh!öùA¾™¿ÂóùÄý­ß˜?´Cœõá¾/¬ƒÏûAúÈ~—ö•ÒïüúÉi™Y“âˆì 1 ÃÄ<qVÖÆ¢4"›,YIsCk1#›0B3¡õ¤‹¹¡ð§ºÙ -U1š\o{¯Wµçlµ…ëé}ùëÑJ“ë­´\ZŽ!¶Ybþín¨جòþÖ_µ«Oâã;¼ª'®7wÓ›þàs×[i¸´"óØ]Œù·»©|Þ_µµOæÃûºªÝ'®7wS"øÜõVZ .-ÊÏÌW9p=òYÕþV<‰ï檶 ä뜸ùÌõVZ .­ËïŸÚÿŠ'óÁõ¦6¨¸Þ]/ÊœÁçý‡Ö†ªp.¾Êy ëÏú§¶ÀâI|t½©=*ù:ç…®>ë?´6T5|t1䜺îoýS»`ñ$>ºÞÔ6×»ëEi9ø¼ÿÐÚP•‹«+󕘸ø¬j#,žÌ7¤ºø:ç…®¾N}0ÿÐ qÖ‡»[”̓Ïû§öÂâI|—ä®ç×ONËÌê˜Gd±J³0|Ìó'aem,J#²gÙ\O…Ÿõ¹¡µ˜‘M¡‹™ÐzÒÅÜÐFøSÝl…ª˜ M®·Õ}›v¬½•p=Uí_^K¸žWƒ‘_´FCl³ÄüÛÝpÁf•÷·þ¦±x+¹M;V\﵇ª¢žçý%%ŠÖh»‹1ÿv7H>ïoÚ‹'ó¡jÛ´cÅõ^€¨ªLàyÞ_Re¢h†xf¾Êy€ë‘Ïú›vÄâI|¬Ð6íXÉ×9/p=òYI剢5šÇîbÌ?8p=Þßú›vÄâI|¬Æ6íXq½—"ªjxž÷—T£(Z£!^™¯Ä<¸ë‘Ïú›vÄâÉ|Cú`á|ó×#_§>˜_´FCœõa7ÁçýM;bñ$¾Kòˆúƒ_?9-3«cR‘]b•f!} ù‹“°²6¥Ùmd×Ëe×–ö¬ñÕ‹oÞöÅã÷n&´žt17´þT7[¡*fBK®—ÎÁx ›ªZèàÏ]-r½SkC”yñÔŒÏòÍÝN.xëŸÚ‹'ñÑõ¦v¬¸WU.ð<ôkm¨S1࣋!ßÜ-5Ÿ÷OíˆÅ“ùàzS;V\²«Šxúµ6Ô òÁÅÀW9t½©ò¦øÊ>¿t½©+ù:ç…®>ï×ÚP§]ÀGCþÁy ëMU0ü¹ÈŸ×îzéÜŠÇp±© -†¸úµ6ÔÉ–O¹¬ÌWbàzSE 0¬àË®—Ψxܳ>P…Uƒ|úˆò¬Öhˆ³>ÜÝâð^ðyÿÔŽX<‰ï’<ÂÇfÔ1â@aÐMŠC5Ú¢"mZ½!qVÖÆ¢4"{^›ëéŠÏúÜÐZÌÈ&ŒÐÅLh=ébnh#ü©n¶BUÌ„&×]Õ ÝÅFS5Cg_QUÍðӂȯZ£!ö²{U5'"ýÈCS5 žßÛæzÖæI¿®+®÷ó'MÕ <Ïû«Ö†:%>A©ªfè\dðy׎X<™§úºv¬¸Þ¡4U3ð<ï¯ZêD ùp¥ªš¡â³þ®±xOðuíXÉ×9/<ŠRUÍÀ‰¿|p+q¥ªš¡³¨Áçý];bñ$>žÖëÚ±âz?ŽÒTÍÀó¼¿jm¨“~/žú[™¯Ä<¸ë‘Ïú»vÄâÉ|Cú€‹‘¯s^x(¥ªšá]ú€[!ÎúðS)MÕ ÞPÌïms=k_’} ×ONËÌê˜Gd×X¥YgSjT3âÔr°-J#²{Ë®ç_ŤŒ¹¡µ˜‘M¡‹™ÐzÒÅÜÐFøSÝl…ª˜ M®÷Ó[ÎÏŸŸåùËãý¤†¿õ8šÇ÷‰<ÿÓ”ÿüúøýQ=Æ×oÏ?~}üøåzÖöüúχÿeK}ŽãýÜò±ž_{üôCýô¹Ï£üÐ>}¥”:~ü<ðóÄωŸ×§Ÿ¿þåíÝíýŸšÇóë/Îñé뿟ߟvñvÿ®Ý¾k×ïÚeoë»öõ]{Þí·¯??·~¢ûCÞŸ#²ÚaYïá÷…–aXŽí)Ãüã—÷'W¯û³êíãýŸ¼žkà®3Ô{οþõÝ*ŸþðøÓ×Çßßÿþ{Ü -endstream -endobj -1205 0 obj -<< -/Filter /FlateDecode -/Subtype /Type1C -/Length 13073 ->> -stream -xœºwxWö?laÏŒ˜ r‘G¶5h†ôB'ZBïL·1`pø˶$K–eK²%«Yr•-˽w Lï%„ ”$$$¤m²›Æî{½ûýÈ–ßû<ïûýãõ<~4£¹ºsçÜs>çs -ÏÇo”dz%!)&cÒ攤}ÉÞ뉚ç7Ê#ñ-VyRŸ/Å<ÌŸâ1¾ÅcüNŽc~G¿8ŽfüÇÑA>~<Þ¬5›íonݼý­ &.II•§'ÄÅKÇOŸ:mÆøhùøÝ¿4&#!.yüëÜIVÌ¡”Ô¤˜déú„¤èÌŒñ/ž<~sL\æ¡}éÿúøïDÿÿ¦æùsïæ³Ý§•À‹åý<*Åw¬ïjßM¾}~´_¤_¬_;ÆÃæbë±d,ëÆð`|<þ -¾—ãýø)üþ þÿ'‘G˜;?€Ì·ò«ø®ÑüÑ£•£¿'7ÇÉÈûà=°,Ù ¨­c|Æ?æ1³ÆèÆÜ;nìkcç]4vÍØð±ÛÆÆ-ûpì+ˆ¤ -ä‚|ApQð‘àgÁßÿôçû ü—û¯ößà¿Í¿Ø¿Ä¿É¿Ó¿×ÿI€0`I@x€2   0 $àTÀÕ€Û¾ ôd_ |#p]`Z`f 5°.ðbàõÀ? šô~Ðò ¸ Â ª Ú æ Ž ž þ ÓA烾 ú6è7¡¿P('|S8[ø¾p±p¥p¿0Gh– -Â&a‡°GxEø¡ð¡ð ! ö ‡³Á¯O^¼*8|=øqð“à?ÿüwʇR¯Ss¨ÔJjµ‹ÚO¤”TUBÕPõT'u’ºI=¦þLý&%"Eþ¢0ÑK¢·DSE³DóEËD«EE[D¢ƒ"¹¨HdÙEu¢ÑIÑ%Ñ ÑmÑ}ÑW¢ŸE#!£CD!lÈÄi!³C„, Y²1$2$>D’b ) q†4„´†t‡9r!äÇ!C~ù-…ú…Ž„ -Sðˆ—¢ÒÑ+F~*þŠÅhÃb8™øÂP©®œÃo€J)®ž«RÏ2ðÑd˜Ž·›¬ÖVÒ8äܪêéü&¼¾‚´Êð»úŠ\óþÈÆåàY“R)Ôz%-ÕV ±p;qFߦldz3÷Ön¤'-ÚµVZ›ÝØXç®·mF;k(5:ìâ–ÎúÃ'[’·2ë 4i½<o ?3[•pP à?žÏ¦P8‡^AQ“:§œÛÌ®½ôôÀ×4Ü ÇAFý%ùÉ–ËìGkgõN ãüŽ—'ö²çvuLB@¼Q½8©êÍt{Ð`‚;èã'Põ‹p¢'œÛÙ,\8.³0O­ 5 -«CÁ -»ªbcé}{ÉÙøCò}ÛÅó†Â¡ßFæÎ3û›bø¥¹¶¬tñª»O[w -v2R¼Åcõ¸pm­©¢ÊI—×jk¹‰”ýƒ4äýè÷Ï·Ü@¡wØ—/î:/>¤ïÚ±#²¸¦#±*­z#§ÈZ<{)2mbиï߀A0èÇgœv…Nù³¹)Ô—' £V.<Ûx8‹M9“sûcñŸŽ_»Ã€%dMù$ p‰`¼ßiÉ©ìÃnâØp}E}²ñÐ*ņÕêœ]E|%<à$vÙò*Œ'ùPNü°ç¢݇kV0­y»,!o»2LAXìp¦¤µT¹‹E&¸1/wg@žïó7j©KvYr7Š†%¡PØtîÔw⣹}imÌ`̬æÉ4j“á÷ -ÊòM‹É|ÍB_Ûk‰ù6u…ñ.î$.˜a>ºŠÁ™øH„ç ÕZî8 /í´3k_œŒÙ¯›`àƒB(Áòð½¾HGë4f[ëJmô{›·/ ïÜÿe{é Ö“]“qH¼'1eÇòøþ_¥LšZ‰—Ù­æ -èår½ÞÄ€¸¶ÊÑif¬eŦr¶uɈaÎh~F/Á´%-&ŒïäçO-äÖy¹–˜nÎ-7>àÃm|f]ýº¹þ´5 tyÆSŽÊs9ÝáP¬aÑ:bòðÖÏÏn>y„9r²öÚc1$bžìLÏÎN—•åÔg3-%%¿"£äÐAñÛ›–ÎKÉ(¯U3y®ÂÆa1Œ!Ú9³®b<ᵈžÿ|yzˆa¸KÇ#_Þ›†¨BþJ|¾¹Àbìå{’óÝÊʇV> p$xý KÀaš‡]ÃhÊc*IŸ—¥fTé©Yt|J÷QÖJ˜® õÃу|p¯z (E ÑgªÎ1ǣݨ.$¾v8Ošä$:@§èó³I˜U“ƒÇ*+ûŠX¸º0W"Ñ’8Ó% ß×£{žM½òNÜÂùì’eû'¼!Füþé0K?yÿ ýëÓ¾»wÙO>éÿî™øYì·‹î2÷Në{‰F?ŽQp œÈ[`8œˆ&¢-h3š„&£ o½ßys³òøÇ߈A¶d“Äl3›îJÀR@yëÈ{ØHðwäEÒ…äĽjU!wßš[a¼Ç÷8ÎœG¨SÔ#¿×ÁùØÈU\‡æcxäÕÕ@ÂÌ?7R„gækféù2àù.¥’Æ'¤"ŸB>*Ã=K=Åœ# D6Z€5ã5¿ô¶A‡iøȪ‘¿bJÏU¢.ÅÄ%ÊZ5 '¿ Š7Kµ 9#k½z·¤iÎ’?ý×JVP@ÂQ*éÎldžΟ:¶…5%P=íIqqÉÉ1ñÉm}½ím½,ðµ‹`®Ï6í³¨Ë}ap-Ç£ V½Eo) -sh,:½8?_§fdJ˜ìÄ÷XÕî;&Ám¡m-0úµTß0„9Ñ^1`,/ÌåÆæªr"˜g6Qh> NÎ߬ K*ÀrSe©©Œî.Í`G²㶢¢¥y|ð¤ì?¯S-vçVpýûv×3†Õ 5ŠRÂU™Ÿ›_˜¯Éc9 ~ K{Š›¾µ•ž²ð]5([áÂOÙòÍSùÓS _ÂòË eâªrG-Sê?fêVôï…£( -Cs±]’e tFÔÈñ<­Ía·Øí¥, €Ó0Á{¸ø©ËyÎʯEÛdD±\—#Ž]„F½ŠøLŒÂoW:/3.$“—+•ËX•E¼ -ù‹à¨>qM¹­Çë3¸ß+¬U^˜W“qzE…²"‡;”Õ™¡h5Ê[>#!-Â&‡%."ÁœWâ;í'®3P7`°$Wµ„@Í"A éYå¦à›«Œ—ÚhDM}Û]±».†­N­Tv§.FãCûð ?–ÓӠЋÙê“}lNcnÅ¡z~âªmkyÔ1½gÅÂiE{:“ÕI¥^R_üHüÉkwN¸yó&P¯áPˆrX_•ï -;žÓ¸‹FÄd4½…‚ïLûí“‹=wŽ°%1Žl§”¯(/Ï·Ó›Ùbg¿Äz ­¢À ¡÷'÷}¢`g¸(Ä ¦wÄ -GCvð‹Û” n¶JêH¯{Ÿ/°pÈ#'nÛ2¿#F‚BgEç*Òiu¾µJÆVeçYtb¦<5®Szúèáê¶6¶¾¾´²ó\í¡B>éï¼næ»P†œ8Y©•j‹‹óÓÙ‚L$B½ˆ ˜ª9¿¥R\ç*ëg*]8(îó|ÙÇûýWÎyjìãܳ® ×Ø.÷=ýIüMòÃðóÌG+¯IhÔ Ãif‰q±Z½Pχ›=7¨Ž2Ç‘¯nä$ 3·ÎD>bDFÏšÉ$ïؤžAïW—v²àeÌÕÒñùåÇYÏ BoŽÌIÈ[¥ãôßa+.¥ûJ5Ñ,šJtƤ–ï!Y ½Œ‚ïÍ€¾úÝ'ºÙ5„µ¾qC®PZ­Z“Çd+Ò4Éô¬­ŸrêwòÞýsÑÛXÐË"ŸXJ²±E<ØÑrübûÁi ŸŠØA[5š™ãÀëœj#[ W¨™ÍsößÀrk5eâ²J{ c¯F‘Üc…&㧈:¶8tÅK[f¨Õ1ú0™Ëskòˆì¼’ -‡Ùæîd?„¼[hV!/Qæ‹só´™L$n•÷óQn?§à\ü’ÑfXÆwA7-ÎJ 7ñÑ\h†“ðßÌéåÓkL¡ø66b”ãÀEfå¼M‚zYŸÝn2•0à0i+.6ß•Õ¼Ò2¥`íО«Cƒug®2 Ø wzh7ÏC<ŸF©q”7rdÿ¤<Í*gIiµj"NZÕ`·7–5±GžaP÷¿U´æ(ŲÜ8&G;\¹xTZÛ×qì0ÔÏ0ÿo(wÉvÎÒ;dÄ]™Æ´ˆþã€v™ -œ ‚‰€„ösÙdÜ´£$ÃÂÔêË:«Þ¦·…™óšR½5,¹ùP»Ñ¯Sd»t´žûËmÚßÇv¨Éj:X¨ Õi±ùoEoÊë,E%6³Éfe._:Ü÷ñU¾nõì¦ô–u1¹á^U±™0³ÓÉ¡eC©b/;âO,(JÏËf4:UŠVjìu -¶A®*Í¡¥rEfâ€ôüÐ᪦¶·³þÖ#1ðúó9®ŒDKJÕBZðݧr -0ñ6š{(Û¨ObáJâvµóÇÄ/Q¶–Z³›þÓ5§¯]?-+ÇRÏÑ$‰0à+¯fªkP–¢¯”ü!0LÖe¶€µš`r'$zqÝY{ÖÌpû'€ob.YÁdNmÞÐNÅä¨ÔRZ•]R*g3*0ḊŒŒ’LZ81E"×Q^íl„8YUØD_€A¸ŽZ³™žÎ!GºpH­ýø-ñæ¾BQè£7ž;Ý2Üͺ+Û\øè £n:ºûOѧÛcVYX #Éò³¸€&l©Äó澞7á= -%kÕ²}FnÄäPæ"ä&lŸY]{] “› (B°kíj¥Xž§KàF÷)Æ^k«)7fÖ§gdffhl -»Œqï°flÇ™”Ö}5|‡LfÓÐR…<-Å©l«(³”6²Îk¤gËÒ3Ü\ çv76f»¥,'®‹›/yBÁθ¸ÕJ¶ ÷"o‡»p-d%ðÊC_xÆRÓ Ç„8Â+WÀlÎMí´èKßñŸ¶Õš†9ò-Z­¸@«W3r˜ü‡·çvã8ÙÓØÐÝ™Y«Õ:Æ 7é]‰£«¥ç|? èrg¡ÖÉ6äa O¢×/Ý>•Ñµa½DÅgHÀšè̃\¤q{óO?ß¾ú»›‘Y°÷Ó#¢WÒ+wœºÕæ¨kè`UmÚº½¶¢Î-­ŒOÏÔçƱ€* ÷ªc8n·Þ8Gº$—蠟-\ŸT#oiuÖtX‹íÆÖXŽ•]憚£tcmÊÎÚsl‡¤bÃÚ™qàØÊd —,$#¬Û$î…Á’Ø­±¬@AÂK25Æ,–î*ñYYk|¼,e[®e¯9‡D?cŽ%TbZZbbsZgGssggZó!?RÝÙö6ºZ[/óÑßÏP¦Ø’Øò8¾‰“ŒQ,_›40|¥¥Žb>?G} òÞS¨æpáþk\¸oj·XZM|8îÿ;ÞXÇ áÛä2 Øÿ²`a„Ïÿ+^íÙå–­¦Õ3½xSDÂÃ.BjÂÀú=Êìýâ §£ïß?5xýXVëò“LêZêpjUö!ñA©4>:µýDWEC ö;vQI8Q”$p8AÀ©$Тä‹ðz<8`k¦…Ÿ'Àóhøµ–GâhªÅvÁ•Ónsž£K)Dã†+°!øµμ|»–.*4 -ÙW·b ]r‚$²Hà,kV:Ó‰£SS£åyÖêL¦J–gË£³•9Y‰íò³Ð÷óKàhGMC«øDdïúuRWÄ3Mrl¨Ã]ÙK÷ÔÉ’bÓ2—IYAÖ{$ðØŸ_šºYgÕš9Ÿ09R+y:bÇ•ú‹¤>³µ½¾¾­MZŸÌ -ŽŸmâ~Þ™>•‰yä‰&n¶¨Ú™el}4½+*}ã&|$™z#Â( -½‹fr1Åø.šwrÇl8 î€;¸«¹h+§¦(ÍE³Ñv´ÎD³¹Øb7à]¸FqCf¡(nH#ùÂ"ÏKn)¢ìƒáÀ¶†¹(¸ͨ5X¿èêøÒÆi{TÔÖð£{€'ŽZž Ñ/:dW…–Y1³½Ää Ûì¹›Yt÷ü‘}íõdžÅO\E~±)ºœh¦@ª)Ê£³4¥µEly¿Ây¸Â!øµ›÷ø¬{æ úȯŀø¸ºj R%ß ³ŸI5è…h2Ujdb@Í—€ç¡T½;UŸ¶ÉÌŽ¼CÌÒ¦eæiJZf(3·<ô†+ ™TÊJJe^äljm¥¦†®sV7ÝÙ2Á¦´]qlRt^¬n<%¯H†<¿æµB.Öžü憓Ȃ‰g?µ"!¯pQ÷†å k·p¶ºø=¯Ãñ°ÙeÕÁ , O)Ì÷æ1ŒÅµûY×e€j¿Ð{üÞÉh4#ÜFíZ¸$rso;#ÈV$drŽ&e;yf(± $A¡¤·JHPÉÙû/`äµ›ž¸‘¸U„ÀE,Êqâ. øJ˜è$¶Z5¥gÅžŸ8v•oЩuaà Ù~¿Žˆ»rk22reà°„ pR|}ÛÑ÷£ÔR)“%ÓÈrv7©B‡ëÁMÞ7¤'&Q#q€bþwâ‘@?’{0@‰=ŸöƒÊÒÊ7HçQgH¸·…Û®ó Ñw–Qk¡ñ:!ym•'η - Fì¬Á)[+nÉcÑ–G¨Ç>?ö)Øõ˜ÅNC–Èi -õ!:+ËVª`OL—Û£èÝß°ÛL@'LGÜ?wze;üHhG‰ˆÐFÜxûÅØpvˆ®¯(Hu±àÊì"œ(rÿÜé†3(OI.I§wïÎ8Â&íÕ(|‡f‘¦øœ|N¹Æ_CZüþ®¼ùO%R¼Ø -¼;ʪaêÖÆÂúá‰Nð{±Ûóí0–<ó…ïŠ8\â|”ÃÏQ_e®§¿¼°iæ»Û¶Ì“ ™X/Ä2£RÉ PQ¡ÆMyTPk?ôÝ9nÐüîWHóBÕ‚—Ƹ°ß®ÊÌ/L1†¡±ø“/±«à)Ïï%9áÎlim¨oÍ#SY çTLZÎ@òbŽ[N—,žÈEøÇ@wQuÑ`_ëvë+èúj¸_1pø}¡çàŽˆ¸ƒ;ØD€N่Ūq×ý–¦|¹|ÉÜ-áÛoßgRiJ2p‰VCq¯³ÝbÀB1|…ÄA9•Š»àÎv8ßͼ»_Àõ_ø‚nˆ{æCÎByCžw†8ÿ}ǃµˆý|ü³+͹yn@Á·Hè(øˆ,ª^Ï?¿'AQ4¦Å}Ö[5¸˜ -Âx±¼â’¹Áêg7Üzòú±÷â®g¹Ç„tƒ“0„Ì¡îÕyº®Úd=ÌáQº"Gª3éÌ:Öª^±ÉœWaºVA€¯AâÒÎë`Éé)h{aÉq±mÉà_鋂İíòO^8Û tf'1Ç’Wþ‰~€Z»ˆÇ=ö¦~öŽaó é|ùˆ/ü€ó¸c®ž\@y5|$ŽÁI5@ÉÝp­ }äÑ|ä Ð<3 Šk<Ó8‰]ò¹®¥¹ÐM?ô p .§<<o„Ç;*£߮×`½-à2v]w¯ø>?H;€üëY5߇„•LØ´Uó3Ù¯ @å1}$$sëŽ*Ž†Ž7êô™,uëõè/|Iô<âyÄ?"pð¾v®î…KZx@QîæT ^¿7Ýßò·x2–]½744´µHSXAC]{{zc+(5•Óàù«ÜdÃôcàCNgÆÌwgÍž3ušÐ'؇òù„ø„ú„ùˆ}}‚|€·ªäç³ÃçSÅ+æyF½2Êéëç»ß·• ´Å÷= ÷xðÛ'¾ž(¡rm±›ò´‘œÚàð=¸{úýÀý‡âŸç>xeËöÌý±Lb‚2Q±´NúçÃ=·9Û<ë½ÝSfMgÑr´ S{Ä„@Ë©Ô·W‚àÇbî?‚“àcêrƒ!¿½.í_.~7|Í¢”l{c,ãJVØ´T©ÊŠ?šyûþ£æÁaöÄ`Ó¥ÅgrŽ§t0Yõ²Š½µ|á—·N4õ¾öüä{‰qLRŠ2=kƒ³0ôÞác×é›C{×Ä)ãÓÓØ$îΊ >÷ZnøÆ Ïûî xìáüÂï=‡`õšgÓ}8² [»ÑE£÷dkcÖ²-pôƒ>pZ3E£ê«“KP u`ý²w¶þ§œv´ºlu]Gi-и=wïñ<[9O1‚ãÑ5ƒÖV^0…Á$íùû‡ñÏ_öJ£õ¹ 5èÂýe÷`ÊG[î À£‚úù\÷à-ñ㥗_çBœ•SW×&?›ÂŸ"Þì¬äåâ·®„8óàæo†ÑØoù«ÔÝíqáâÕQQ«ì¸ô䃺ÁËÃŒðÁÉÔôKqÇ/ˆ/¼~ëèžåëÓö¯ˆbZ¨9êñkåµç{9“‚~•çkoäÿ~ÿ*Òb8g*DLÑHpg.ô9¤zð,f!ßñhb^†Ï©ìÂü¼|Fš£Š£D|ÁÅê+uͬ»¦©¼þêØLô˽`óó f^ã°òG_h>›Ú²/'.–݃4ZŒFu!þ‰pfOßéŒKôé£5=½ì¥óýNJᾩð%Â¥Q_CŠA1{ÆÏœ¹çoðL8G=a½zø<€Ãª„'¾Á6'>_Q>ld9:P`F+§b*Â9Ðh/¥ëJ•‰ìÈN°V¡Z`ä TUžme0ª -ï'ƒ“Âç±Á+ÕdµÚ,k‰Õj3fÀê¶Y­î¢Ì:f,Oà5ó½>Gx8ï,ïþ¨M£®Žºé;Å7Ê7Ú·Ø÷¾ïcßïüÄ~‰~R?›ßE¿ë~ëÂNcÿÄq|4.Ä_Çâ…„¡& -‰ßùß¿0zúè„Ñé£?ýýè¿ÛÈDò6ù|Jþ Ð`&X*Á1pÜCY}#úE„DÿB†CÆ…¼òzÈ„ç^sGJþ@ïÌ6¿ÊG Ä -]Œ"‰‰H]sh!½tWã‰TVÞ©í».†wOJ>õ&šzeÄ£?Mè-úlœyŸôÜ`” †U„ùYyÕg¥|ð|[-eÑ”ÅßCfÏ¡Ù8:0¢^ƒ^WçDÂdpW-‘]ÑVa©²U²Çáh :ñÁ XEª=M%NWl322è Fr9² - ÈzÔŠ8›Z±7y ½yoÛÅdVÞ¯í4\ãëxÁš¶ôN~oÒîºíôÎHyB ºtŽ1wfBâOŸ\†>GôN¤–w÷]¥¯6¦Ì¨dÁƒ–V_ÏAO(50ŸÈRYìÙl¦+KK±¥Ñ“-²¶9æÃlZFV¶:¯¨0,+S—§g–çÉf–lO;+Þö`ÏŸr†éï¨éì_‹\deU‚m5g”V‹Ý]=-¦¨·Ö`¦û;[:Ø®VgÏ)q›¾AÕÉ íˆ˜Òv?Ô¦¿éÊÛ´à¦onj(ufmð{êrkÏñŽfER5S_µ_ž¿{]ô?2% „ó°u8ò¯ºq8ö7(xüäû|'ü…rü¡ÞQ`^ÀGï‰R£Yop ¼þ‡Öo‡N2'^o¹E_8%‹ëgÛ“«ÓšÖóð‡eâÙ:yn­É±Øå¬3*ÒEsaç+è ´÷­–…6²ËoþGÑ_Á€žžÃ,ÜC˜¯–W\´ò'ų È•xgu~N¡QW¤eßFmˆ€%˜®ª°ªLìrÚš'ŠVÍ…5yÄ‘1´"Õd´iø­;«c•âézÅ!&]™%SѺ|oÑÒ.—[sè ™,ý`GúÑ[ÇÏÃ×γp²gbegyY£% dJÞ&ïsÏv*fr\–.GMç+-6%[³k§#’ž3ûЖuì²u1SÐ(1Ú ÃÐ8GI¹ [ºxeÒlzm¸»/»åä¡o Ÿ®úžƒó×.žÉ:p˜éLt¦Ô®æ¢I_eÓ–zK°(´ )[0%á0aæŠ -SÝXš³‡EJ°(_³¢ˆò'¾¨%ŸªÅç˜UU†{PHš?©¬xláŒè”ŒøR_®1KŒ Ôy³¸Á¾ž—áTjYD\ÆfzÊÚO!ñûùÛŸõVjbÊØ’L,ÙáRÔÓÍuµ –˜µkGv\4»sOÊŠybD=š }®îèeZj[Û/óõa×±i$hùw@ò©¾Ray‰¾!F( C døѪ‚ÈÃìÈ:ÂðR®bŽž/ƒêZb¾UYgøïG›jøJsN•á2fGNµ–”ê5åŒÒY¡¯¤5­]Yî„})™Kv²ßqqlxfœ*\–CXªJMtÓ aXÃvnm\½âÍë¿+g%Ï|¹ˆ?RâM‰µH®‹=‘1’zgžw!MÉ­òI*õ„¢0Äà°ÞóæD?EˆÄ\¸ãã*ç5328ªy SzÆ`™£ æ9ñµ–¼2ã¾ç¢Ð¼#'6o©",§„0•W˜tg™*’I#Œ[Uªu…œ¦÷Ãôö>XÙËó¼üßç=. -¾4r5›øÀДŸ)Öåéòd‘\¯ÎÛ«ã+¢ÖH쳦•;Åõ —2­g1¸MÄ Ëµùkó†P™ÇN Á÷° |•*G~þüPšÕVÈê-E5b˜_#>6Ôf;Þç×ÁÜ,\;/[ù²|¡o0•ØÝôW8|­I5µ‚9Ò)ø¼ƒ¡;HJOOLnJoëhnlïHkNbÓé¬vV—•^¹ÙÞyûÓFç‡Þ‚_¡Œ8a,×g‹ãÞæ؇ ˜@|PíºhbÌ¥Å&ëBƒ3$pðÉÅ\U¥o`‹Dð9À_¿Cn¢×$´¨zQ)°gÔBN‡©ŽÔ;ëú®nÓ[ÍF]b±”TF_šÿg¶Èj,Ö•6uÕÔu ðÛz›WŠmz›^—-ÏR0Æ¢CIÉiZ]6¿xr¨6¼lsž7ÙëĽªÚ´T•,.ˤ« -g$$Ï_žNí—ŒÇz×DU®¢ÑVŽÅ½‚ö¬q®iÞɺ⫳ÄLDlèIüäc±×ŽçÞ¢á6.î} ü õ+ïQ¸£ûù{×PÝ«+ç‰Ñæ¹h4 -Ý]{b/“ÞC%ÜPŸÿZ Ã?‡†\”íb@q삵ÿ­ª=¡¼U3ÓB>Ú6{ÏcMü«|&ƒ}ÄÿZnÃáStB¯Ãl¼£Ì1ðÍÿ^eƒø:!ˆ!G"‰eFYɧ|¹­>DYqø.z«ÌµèµbÞÁä+`tÏΨlJcQÜçÀ—;ZZ*Ía5(\QAÔ•iÚB­Zâhögâ¿ÕDZ ÌS¼ "ÔÂF xîõø)2üŒ±¦ C¬)Tk” 'é,ô&LÇòªuMãÄp¥ÈQ˜!Δ&mÙÁ eh&÷¦OÊJ?+ᔬOF<З«Í‹ɼ¼÷½ÒéyÑœRn¼Ç‡ˆæº¿¾Œ=˜vy†X™«K62ú¼b£š•ÁKµÄv“ªlêOH-¡p3ÜxëƒjÇ-[X-rà# ·N"ÿ`’>•ÞÖv“m!¾¶;O™¼Uð”&2•Øg‘—Ë™¤Úœ‹ô@­ò 82íû«Ä“㤶–êíÆù0‚x}nÎÆ}v3ð"¡·Ä«Ó ¶ä„¥¾(â[ÍÅ%ôQGÁ^v$‘0,ÑlÖò•ð“Ød+(7p?×ǴצO6Å-cÑ.°4?o³žOx«xÃC°×Íûۯ𯾵"ØQ‹/,QWïða4¼€¶;HÏFb—mCà6îddY- ¶KRS^7`^5µ&=+5Ö™ì*¶D™kÍ£S¤™éI­™}=í•-Ílcƒ»¿ý!À»¡-wìeö2Sh›$W/WÅ0sQÒ,˜†ÉO­å⺊ò#ã¨A;¸ÓØ­/.>‡$a@FÎjß{ùdã™.&·;.ûÉÖ?‘@wpj«¥~˜½Ñ~øÊ-ña•·áHÚ”YQÓåt–9«ùBOskÍ‘~ñ…¸³;˜Æ½moÓ»÷Q–ºRSýÕíóæn˜¦P›léì?[c™ÉE Ÿýzcë;³Ömž–‘k¶'³‚ÿTf¼€øE9ÎÛ,€·`…Vk•²­&Ý[¼:í"RMGRz‹W+ø*ÔŸzÒÝ~ÖVn¼eñ:¢ÅX¥‘‹Uú\E -G¨P2Á}˜¬½ ¶Z\ï*ëcª\èœo0œÒ6dY^<6™ýNMZj–"á ù"\Ø«7ºžü$†[9·ÿ*ZÃPpÌc4–SíUó@þhôW6Aê˜ÓÜð"ÛÙÖPØI?îÙ’ÄzYÿ6IJœ7J|ûoãOP”ãCzk¾yAKáâ)œ ál)N•pß,ç¾ùÒî²zí+¡Ìßaà+€ÚcV;ŒÍ|ø#¡² r &%J›ª¬VºÄ¬ËdQa”j´û ü NxsÆg ÕÞœqªDJŽý)jˆJ ”âÿñ©Ï,~Vü îìÂn&Ú•mFA&>:(Ç_ýËðÏtåÞØrd?¥ÎJSéMZ¦G“SF§fJS÷ &]‚>WïÀ@ÖƒæOJ½ xÖœÀj< ¸å÷ÊšGvî‹×nÞ¼é ´( &i:=‚+AŸ|3Ÿ+m(‰‚z¾Ð¤.3ÞàÃi„Pv°·As„†à[è_ƒËž¾ ŒS"$_‹ÁŽ"¯A„“èœ7¹>…”‹h9ðL¡ã·:“—–³5xd1ô çfm&Î}ÅÆ©’¯ÄÀâ2WšKùÕ÷K¯´‰ëe.i†L.UTMs½Í€m6Wö Ýý™ƒ=œ°xÏàð3_xÞ¢à0ŠÃAƒ´µ­¡´H€ç\Š¿(6Ψõ6 ÌÄFŠ«IxÙEL“UÝ6²ÀT^ΩSc•*óPZz¢Vo²ªY›2ßœOgæäd¥5(:ï|p÷Ñ™”öZ¥ÑÂTR%ðÀ]‹œ‚ŽƒG»Îö1ÙÕX*0“ph"ÿ(*¥lÛ¿ðŽXG~ÌAyìgÒ³h ±ù@Á gPìçP‘uý=,ÙùåØI yÜ,ÞPäêŸÍ=‘G¢¹Þ´<œûǧÙ{ÍH¸‘ŒÄ!œŽïßA -à= -®B°ÓÛ]9â¥n¯·á6Yâm³1—ü§,PKÊ8ïKüËûþ;oŸõ76þOCáÓ¿ÀJÐ~…ÚÝ‘ÝÔ&nk¨ëê«ÏŒ=¤â8'?“ŽU¶\gA“»º£K|cKßä”\CA"£ËÖ -è\mI¹‘Uáè ViÔ[Œ)HuáÖܪóbøùâ'‹a«‰E5„q9ãÓ½%Ý•‘}£³[!÷ W~` d±Æwó½Ô ÜôêU-þmùÉéOŽïY#d'@5áåý˜£ÉâtŠ;ÔÕÒ,•<-×–Q’ÅO8Õyk½PÙß,nTÔdÄ+¢_Ñ1úyà¸oÕIóï’„À£*‚!žQ0„7À0™´Öÿ 8´JMáv(RÐ÷*÷s†³Á/žÏ¦vã&RpÄÅ!ÈHÜHÜͧ«FâɃ¿]Wž$Ÿ’‚Žòg]Qõïæ¡ yú½%N»©”Ô­®¡ÿ U…··OÀû›ÄëC’¿ð\uƒÏÏnÞ_~å¶ÏCðÀ ›*¤é%™4€Éó¾÷vÜýÉÜ¢%‰كœ‹l0^2”«›ÃFŒ~ 996®=¹¯§­½§/¹ ¼`ðÍ/üvà Ípć0µ´e4:GÕ*ð­Ùîó,ÕÈ-¥%¥|€ 4×TtÐuuúü$5¥”…Û‡+ëJ\Þf§o´Ë[q¼æÁ¯ñ€ˆC +ðÓE€Ï'Ãl>Ž„hà,@Ñ[hZßBÁAñ¾ÿ¸Mrïë òeJ}­×xsi@ŒB¿`Ð_ ðö‡„³À£‚)×y`mq»GÜÚÚúz’Û½bøáÙòMà‚æ| Ët„Zû€®ˆ)Њ ùÙŽ›èuµNÒÁŽc°©pÊM”SWáo3„©°r#€«½å] a×5ÄéÊÍ¿+Wy{ê?q*>;^›Z9ëÚÕ —ºyÞƇŒ¬pºˆ‹€'óÑ‚ó\©h"Õ²¿k¶px”’¦ÑتTŒÛÛRà)ú§°oǤ°„p!ÈUK¹ÍQìÿ,…KŸ -endstream -endobj -1206 0 obj +1213 0 obj << -/Filter /FlateDecode -/Subtype /Type1C -/Length 11578 ->> -stream -xœzwxTÕÚ/CØ…½’I™Ùf³÷F&X*ˆˆ€ô -dÒë¤L’I&½Ìd&½·I2“BHB „Б*Š"¢¢Ç‚¢~õ¨krV<÷® úï»Ï½ß÷™Ì“é{­w½ëWÞwI&M™qxâð«Ã˜t¶t‰t·t¿4Iš*Í‘vJû¤¤Ÿ9Nv”9.s\åxÄÑß1Â1ɱƱÉñ¼ãÇGŽß:N38-rZéôšÓ:§ÍN¾NÉNeN§>§!§»N÷œ8}éôÓÿržê,u~ÆYtžã¼Ðyµó^gogµs–ss›s¯ó€óMçÏsþ§ í¹¼ä²Þ個K˜‹Ê%Î%É%եĥÅeÈå¬Ë—.w\î¹|íò™Df/s–Í’-‘mùËÔ²Y¦¬Tf–õÉÎÊ®ÊnÊÞ—}"ûRöDö£ìWÙ?åùT¹TÎÉÈWÈ7Ê÷È˽åAòpy´<^ž"7È«ä-ò>ù¨ü–üùòoä?Ê“³–fØéìv1»†ÝÄîc°¾lÍjØ46‡5°El9[Ï6³Ýìö2ûûýšý‘ý……5c"{'·>’wKNYŸE«¬ŸR}Ј C7«#Âiš×¹­ •"̦ ¤ßÑb3|E&!Ò/M2Ð0‰ê©,…+ΡéÁ=Æ? µs€õ6¦Têh8Ž<¢©³¹p*NRÁÁêÔpîX’霿A»£©þŒb8•A…Ô’÷G£]5#W„­Ô@µ¹àV1 Æ6ZX¯Ô*è|@DÑÖ&<4¤?­|!%ùHútô²P» -bË›•ÅæÆ BucÉÎ×*+`±ú°ha49 «ÈŒV¤êÒÓUÂ&´=ÜA¨Ïåå•(ª+Š-ùB0£ühª)·(·(=_?´ æ´Gg¦%¸‡U!Ñ\zFI©!ÏhÈ …†ÂE[Œ)P¥<Úr¹³­¼±Ahh2õu= ¬ÏN«=UVÖžGîn»<Mvç”gÄ(´ZeèëBr@F¬6 u »>á3ãD™¢¦¬°'_0#m4Õ›cÐ×o1ä3ò36¡µÓ¢o|KÄdW—+jËŠ[ ð§TÑTsvAVË8œ™f&¡3¼ñ3ºA4‘ð%ëœêî’’–Âé~ ²pN,•”••­å²Ò…±<$¦ †{yËŽ[ú=~ò¨B~aQž=N'D W-dcyQQ)WX¢Ë)SÚFRÛ¸Ç7®ýžr`Þ)qS[„¥SÑÑjéiiNkÔå Õ^4€Ö0ÉÌB3Ðì'ÏÁiÐõ»_àLøìÂ_+BÙ+õûÑJô¢Ú}Ïnõ98®¯½.‚±]c+Y©"ßÉ®ÉW¨µ!QÞ²C;=LÊ-Ôu…Ó“›r**Õ%ý‚Å@XЗ*ªS×o -‚ÛÐçÓжPkKÓÊu÷hx°…‚¾è6}ÈñmÖØ¢‚êü"¡¬¨¦ÐÂ}Óí=k[’_Hœ•”¹VOƒZ"?ÍXù:’-ÝÁ^ñNñ¥9ÊMñÖa¯×w¶œU -‘ÝɉïÒá(¯l.*)©áJÊs3Åijݙƒœÿ÷Ï¡Ë}Ïû[OˆhÞûĪ¾XËÅõS=ïœ>ïRè ¬ 7m¥Á0ßÖu2ìx (5.âÁ¾¤7x`fƒ -´Õ= -«ÚM f”¤|ÒŸÌ Ï4:øøG%ã–îÿÎøåÄÑšêŒÔ"±0=/ÏGqÈPÛÃj6÷^ß|f š1ïYôáÿíÐÿœ  Å›;¯2{ÇñȃsÑsÐÿ8ÉÜsK„2Êø~yÅûx×^®¬ºU*XPˆŠz?Ó·A®Pègë:¨HSmÒÞ3âx8¥ß­ÑnÈ u%\ÊFaé š˜@è´ez:œ„ë<¢yœ¢2Ñ,¢™´|×\gê‘v|þ4•UFe|¶ðÆK8ãà"FQº“5­Ú„üÕT›¾&NçO£áèo¢" šà èc§¡HÊ ‰ÐÓjèx]wMCÛŸßjÕWÇéið -ÓK?ãÒúåkÇÍù?”m¶ÆYg±ç‘+%kÛÌÈz×ó²Ëך\Wô¥hdïù3²E! ˆgà]`U²Æ²¢.¢î3Caƒâ¸º1"2.6L›W'”(‹ƒ ÃiÐØh®hâºj#÷‰(›Ò+µšà\:¦P`yAj¹îm5SÐ1gÔ£ºÔAbü2ymd-£CЩ€7Sºµ©i+0~ƒXE¬6=P'dëµúd=~a Ó_Žs"DcêÓ‹Ö¯ÐÞhªC_oPÒãÅø’ q!z|É -|ŸÈÀÏaû#ÚB”&3ÓMj¤¤†C¦2JÜíõ͆EÓ¾ƒÂ­oÌu׋§›P¬º‚j7«U‰ñšq«á\"©-§¬TQ[[ajMè‚šÉm¸22 h±æ€2Ô—KSÃS<éSm©,ª®n¥«5Hôb@Rž vöÁ“=HÀ¹ðu¸ÔVÀ‹¬ÞlÊ«æ¾8_fÏ·µ_¸©¸|aw»`ò *Þ¡OÕ&r4·:Q·¦ ‹ø5üÔ²„·š§Luø«'š³RkÄ–ø]Šyþǧjò Aº‘ÀöŒà¨cŠ=÷ƒ  \ýÅèö ¼o×ð8¿räl3Õ|âDKK»(ÝÈxk™ ýƒcÈãÙµ9…¹tAn~V¶"--!5U@r$'¬ëÑ®hꄾ:Áà7±¾šøЉ•0SG‹sŠôÃ4$©&ówHAÔ©ŠR2)ÉYz!jÍTjv~EºˆÜ`Ãßm®»Q‚ÿ<Àî†ÏÚÙõÕ -SyE½PjB1j²#£8mIàTÔ=-ü Â?)9!™ËÌ.,‹)Ca^A>¦³Æð UÀ±“ÁÃÃ=7Íä­Äi -‹» xŸÃk\_¥OÌ -O‹äßÞu²í/ì1ðIµ`<¦²O`ÎO(‡'[[Ož ÇïÖߨ­6ôÑ°€ú›ÛÅWwyDìöÀ÷y]ÖtJ~€Ëa|Ó®ÊÞ%a(| -ÐC"tFI"º¢"od×'ŽÒãi”Wdì>ê¬Ù&SEq෺„÷ª7—+^P/ ñ<‚ŽÄlå<µ•§E@é®V×u2¹WjêÏézº«®'Gu5ñº=ôx#Š°6ú1¤t//5I¬³ ”=ê–àÃ)Ãk»Ôb|{fGÎæ‘YŸ$ ‡öÐÝ!ž¦ýrXù<šfü”><ÓþÍM•ÁÕ,dòk{Ïr­uI¡%bA|~”á D×^ãÕ¸€îÌ¡#m¡§ ó EB¯Uù¼á.œ—”îJµmˆÀÈÉY8>gØÁB«‹¦.›‡¸M槼ŀ®ó1§¹ó—›ºÅî~ÓÛwð™eÿHA¯ÄáHŒ,Ë"óƒ¶+Ðê„}Ž% ÿ -·Õ\Á¹ºÛZ:¤€_§RhåV"Ž*;^WXÂÕk#DE6$§nãÔ0‡·%á ¸Ào`îóÀzµ+€(cà‹ŸÝ€S¡üåwÑ«±9y¹‡E¿)ÆšÒ¼rîÑо¹‹}ÜÖû¥Tõ‹`´¼©Ôl¢eÖ‹ià”âbÈÙ=íB“·géznzšIÙ¯O†.Zâí¶A©­ê­mSêI™õog®\~ôÈÊœ´p&/è‰VÀÈSY¼q±ª!‚€N|K±|Ú²G᧊RjRŠLqBXsFAx>™®ÕÆ+‚{ãÞèÉa Ýá/îÕ¤—Vä -„rêxtc2Ful¿ÿµ«Ã]˜$ÃBƒý[Ã{ñy -GŠd€o ÓÛÞÞÓzÂ_Ag!%6ÁbêzöñÄ.ázØΓë87ÿ¤QVÚ >dÆœL. ¯6öÁs]ë›úÁÕzƒì‡D ™¾€Ï1š„25§V©Ëµmñ"œµ„°~þ6HãSüž »{GHôáx:%<8+‚Û²½k4\ ?ŸüÞO -è ~nè¸Ó\“¡ÍÑeåf -Y©ºŒL…¦4©"G^î~ŠàU^Úi“#UuH€ø%<W'1¶Y†4US–œª8]½ŽZuFùsK}~y».*ní8ýr´&7=\ÈÑfè29mVQ…˜ˆq®…´dæØÁ>ØÇ¢DÃRß1¦hÇ/K`v`Α¥}’_ óÏ`A€ß²QŠ¦Žmb½}<;‚;;ƒ:½Ei¿’!` ©ÛKQÆ}I‰ k˜ØmvÔ%zW -å{Xƒ‡!*XžÇ^1ÖÆŽ€É?1àÌØÔLÀÞ&ù8+°ˆÀÎ@Ù#(Ûx¨tý·ð6…U'”M(¬–Vï­â;(„Fæ¼®ú/4Ùi)Z9#€®”¾³¢¾¹6ë2 s¶ûäð°²ÃÌ붸´¦¢Rh45U4r£æ]è08ÝÊá¡žž! ¸pê€Gx¸'½Èr—;±—‚ÕP…ð?¼æŽ/ Q‡éèl5 0‘Q…)&CG³“ÛjÁ{ß›4(Žnñûùz€MQ¨)‡ -Ó4vE`éKå.ö™ú,bms±¹p„–FjMF¼æU]o[óÚ#hÖ—dF)ÐEÊ Ô&Ú€:x(•ž‡OúŸÆãVöàùœo9Û*ÔŸ(鹪îÑ^‘b\`Ʊe -€Ò|—òp ¼?2‰À5,æ)¾´šÍ­Oñ…Œ‰‰ŠhŠiiijji‰iŠAÑBºz ëéïïåqÒètw÷i`â¥?3¥%˜õ ê뛹J@þˆù'ඊ - iŽ:ÑÞÜÜ~BÕ,‚ŒÍè©)8ùÚà'@y‘ïí>ÑÞÓÚî'¶ÁÂ"›*p1Q®“V±ç‰ä¯ãkÙS-µB¤Ò–Ôè+4 °ÕS¹"H0“½ ÕÜ© (/-S3NÀiâáéúDò€ÚtQ]4œI4‹2&Ç®¾Vƒýƒ*/ÛöϱI@¬èúEé÷pë)8딜汣à Êa@ Ä6-ãEl½“%;º€!ARyyZ —_dÌ/‰ -Ç݈‰}˜Ð:±ÖkÀx ÌäÝ¢–γ\_S¨hîǃìŸ$èRÜ>uøp°Ïö¨BÛ|ñŒµÙ -(i|½Õ§zU“ ÀˆìŸIò1’m+(,,,((Î/.üÚÞ~ ®ØRb©(+-(¬°wxÚÙ7É<é;Él‰I2,¹+“gOž79rÅäÎÉßÚM±[n·Ù.ÒNm÷Ñ”W¦lšR5¥nÊ}b1L\ ®ïŸ?“!äWÔkTUHÕQŸÐ›èP:—®¢ÿ˜:yê SÓ§~Â,f¶01Œ†IgŒÌ s H€ LžÀ:À5pÓ^jÏÚO·çíØ/³ßn¿ßþ°½—}®}½}“ýÇö_8Lr f9¸9¨RÚ>vøÌá±Ãw¿;ŒK'IIéé*éZé^©Fš*Í•öJ‡¥W¥w¥Hÿp´wtr|ÅñUÇ×}3›O;žs¼êxÇñsÇ_œœ^rÚáäéádp:îÔã4êtÓé§Oþæô›Ó¿œ§9Ïs^îü†ófg/ç`çXçTçRç&çÎ=ÎÎÃÎç?tþÑ…p™á2Óe¹Ëz—Ý.‡]¼]]’]Š]Z]κÜuùÂåw-“ËfÈž“=/[#Û-ó”EÉ2dY™¬ZÖ ë•–Ý½#»'ûJö›œ”?#Vþ¼ü%ù+òuò=òCò ¹Zž&Ï’åeòZy£¼MÞ%‘ß’$$ÿ^>ÆNb¥ì3ìLv»}™]ƾÉîb²Al›Áæ²¥l-{œígÏ°çÙ«ìmö=öûû»ëdW©«Âu®ë‹®Ë]_wÝàºÕu·«›ëWo×`×XWk¶k‘k•«Åõ¤ë°ëˆëE×kc{þ,I?Ènˆ{s¢j9ß[<çuÎà”ñAUå'FŒ¼UÔݬr­ñM}A-h8ü¶—xæfÂûÜï6vˆ§{š?üVq“Ò\èÌ>–àÍù…×uʼn '2:rîÒ°Ìú,i8¤‡î 9jÚÇ!§óÑ\4÷Ó…Ð铳íOn‰˜ÜײÐ>¿®ï,7\„ìŒb¬ÈkêyH‰uí<4úâÛ<|óƒÞh>Þ€ž¢>˜…“o"䇎íÄ -œFÔ,¨¼`è Hé"°†ÝdÓÒˆÜÜ\}6—œYR+Â*êóµ£HŠˆµßð1G÷÷µš;«²+µ5BzYnQ‘¢¡¥æ¤þd‹ÐVy!·:-T¡ÍMÊIÐô=š¿"R;s+ÊæêÒÁ|Áh«vˆtKEõëLéåÑ] §!½ì­“ˆìZ]q©¢­¢t´@° au*«,½ö0 ÿqZ+ wZ£àÚñ(¢…„G­?Vö56tæOI¼‹c¹[Bò²»³Ù·óÙOË0Á]&‘#Ü@¼Dâl .‘pÊR+iaר«ôçik°Æ²rCWRœ›] –¦åé ÏÓÈ -Ë.ŠöUŸ ºÍAúÁïpÙ½äwbÛDSR|Y4çZÓ‘"¶¥çëJ2èÊäâ(¥bÏ[»½:ð u:¢783G¯ÏÁõÀ*{BF®àÁ#^_ÿ§ÈOnKx*òÇ\ š 'ƒ×¨CChÿcûÖp;m:kèDš~n›êÏ*êvn½ÆÊèÝ“S7dÐ*ë} -lÌ3Y]\>âe­'ÍÛyÙéÅŒìÁ«<ø¬ÂM8ÚŸJPbNÿÏ> Ñ”ùhÊÄ>Úbÿ )½öESƒ™%éï4Æ;#Ý+kÅ,3€­{·š¨üâò²2dðpÖ—è±³f©ÙÙKÞx]\¿Ñwá<¢{^y´VØpÿ«ÀŸ¸Ÿ¿ê~ÿ}ñþýžo~UüêÿxÝû‡o,î~–Cß»°p?\„oûá>¸-BûÑ^ôzíZ°æÄíMÂæ;¾Vxm!šÕ‡MbilA‚J‘Ñ?Œ¡Ò{ìÒÑ‘Ð IòëÜуe/ÐpëxºŽ¼ «NèáäÒ jk+yz*2Ùm؇¦h%附IWÈý2©N‰æÂâZú®œ:õq~qk"ŸaryEÙËðŒ™Ý™ŸZ©¿AÃ=Ôhë@GIi¦¦\ˆ¬¯No溛[{†‚:ŽRFm:*Êî~ŠöDS§²ËS&:6i©Þ™8põ 0`L -³Ø(Ò­Úô:Òê8F5ã T:F´’g xºÎÓU: ݆q—?ˆië -H¬/Á ö,"‰’¸‚”tETBª· R˦t2Ú˜Y¬éBeÖŸ¦EÈgütÜÖ°`?Ýt5Tšb©ÀÈzsi~eI£ØóñLg?CžZL‚»le<”˜p±Þ7©ÈCMa„.« Þ¾ZÑ0(~Ú{ññ -Hnú~f§Z–h\_˜`˜VNéÏÖÔàÌ4¡ûj39¢«MЦS)ŸÜÍ9‘™¾ñÓWø¸-™¯˜ñåOý„ØÓWR¯sðE«†ý9ëâkh¦‰û_›“% Ù®sŠö?„¢μôð§"Aú -?ÑæXË'¦Çƒe¼©ë/ð&/ËÜÀÈ6üUÐÑøÚ“-ÙÜÇ1¼6NglUh88 ÿ]ˆ.‚ÙÇ(…œ(6«à]ê*J£€—)«+"¡Š¬5” -å%õE­Ü{ç‚ßê[ܪÖ/W,R/ûïµi˜Œ´t¬Ìª ©…ÚjtÅ*wC·“–Jð–=¥¢fåF+4Ù¡¡ -Cá ¦ŒïWWß+xÊ#­Ó,ÊJ; t¹‰5^E¾+¶, -¬Á®¶QU¯Ž§_‹ôõ;¨8V—p3F,ú^E~–SfÜGÏ¢†ÇnÞîS?,x]Šç†Û†,BlU¶N¯ÏÈ™žÆ\ØÛ9uÉFwz<œÒ¹'§àU¶¾KõBo"’ Ý¢ŽŒ <Ý4opÛ*°CH£~ïS"²\l†ŸG‘ÉhŠ_À, ã©îŠÒ _žO‰hÚ#«Â*7ÓfxhÛ^ÐCÐÀÿÕçm -êZ;ÌüUÅ‘µ5{ç`A½Óí~Â.ö‹ÐL¤6ê ‹55¥-B RW9qm;áËèâ4ôŠ­ ®†_›Â¶ðù—h¸™‚ -ØÒs¿¼|¨hº íS›¨ •&+QƒÍº+üÂB®)Í(Õ}@Ãä ƒµô'íƒ×>R@zÑm´z¢]ÿNvU’q½­]¯ß‘ë™Cç¦ét©"Ô[?b›j+:ux¡IÛS”Q1‚::8sÆ–²K¶Dïß*®Ûî¿MQ`ƒ¤@3 <ˆüþpÇMáÖ¶5í³¹‚@ö÷kh&“ƒÛÐÔ™G=[‡"ÅÐ Éïþª€N¦†/ -µ}œJ©‹U'ëÊ3S²s³²Ò„ô¤œ´TÌ7kTäÎe¾ž[÷Ó‘£èµuÀ÷î¾ãŸö ªrB©Ö$Çq©µ}"¼`ë_)d\xûöAe¸VUs£{ÍÖ®š†Âbºç|us­¢8§ ###G›$èõ:]®y¡•Ór(ŒJ«°»§ïŒÜþ›âî±á]‡‚CÀÓ½­«VÛööÈðêpÝ–@>þjëYÄh²ótQ"$ -Ê Å±»ò - Œ­šãqä¤ÿ𙞓ÃglÕÀþú¦­¦{SëKÈÂ$»S­'ÄNúÀ#h!| ݧÀ #âÐkh-V`xÝÑóXÍÀNr t„ÄEéƶîÐQî››¿`©ê|ø›ÍÑ1!Áõq]Yb_¦A_©¥«‹#<s=·­÷¬í‰Z®V (ÎÄ´(£CyVh:bÛ7ÖÃG¤tÜàI?\cÿ¬¨š¨¨¹åÒ@§@ç`¤ƒið{ÛÒÐjæÌeqØBæàRï=¿ãH@øÆáG -mÙ_¨&òK - ùœyÂn߇ÎÔÄ’1àò"@ýÕ[Á€§E’bKÑ9Zúú¸{¡Yä±?jþ¦Á†âòÖ&Ü:h²¾ZÀ£¿f·%ñà SÀ5Áøê§Ý¡Ò‰îPéŸÝ¡¬¤t]&•cë}eMg‡ë•/¾˜päHBד'uÝgDàþ˜ÖçØ>&F¨çW0î¿´òQ2õÊzâõÕ=©ÿKWßL=íûK­snß¾mج´Ä­£ŽKåÜTW¡²-W¯t´G+«D`s21;ù¿Úä{¡œx@¡^(‹qƒþ«ˆ?ìHðC_j;‘“’¥Ïà|BºßOÑä:6# r{B˜›’Èy©GqèÅ.ö6û ºC”Æk‹Ë -ó‹‹Ê„²êlŽG™ƒýUª€ÝWŽ¶ZmL¤:`"Ò2 ?¯žì…5½.ð,ô_Ä2®’ý:dïzj²Ì¸<Þ,†‰V²›¿z»;mÇ\†Ò‹² Þôÿ›à+5@;L p6È3IÀ+L»©ÎâãáK| ÐùÃçy`3XôæC[—*Þê?zm¤ãĹ¡°ÞÙYyú,AŸ«ËÓq©¥}ý÷GEðSl(ãþž°ÛÃc¼x[3a_b)ÄÉq“ô!vSÆS’ÞPœP©?GÃD˜…)ÝÁDíÛÙ¥o)pÞØÈC¹Jô­#€•€ Ùõ¥¯ç8x³!¿¦¤AŒ?ÞœÞÊõ¶4o©ŠˆÎJÂÛs[BxLt]U Íùp6¯«|ëɧmyœ&`aÿ”6 t®¡ö¶­pø­Šz'פÁ„‚|Qô¥ €1oÚâ›Ybºž´ ZWD¶jcµŒ¿QÆe©aœ)“ü³r|š?n MÀ”±Ä†žh9Z†Qâ \ŽVÀCø¶®À{?[…ˆàd yµ[µ­K0y²¦­EGV+ß„CÝî×|3Hð4ÚÎî2jêuØ#?K=cÑžæ ñðp>œùÆdb  õHœº½nM«l%:Œ¡H°€Qûz¬æ!F\„D©Bþ,ŸhjÅ”5)Ï £h‡³Ë PvÜ¥>' [ -åìe@<˜åщP.‡î8”+ð͇r9|Lœh02à+Æêcb=È]s‰:€Ö·‘…ßœùãû”ƒ=¢þ{¢\ä{ÀÓÎx}sV='›Ñ„¤€n¶Îa;˜/?¯½Ždñ9q…Œøt]—QfÑ‹ C¨ -Š,x‹C;à N 2¾‡ák¸¾Æçܶj·PÒ£¼ídÖ±Cõ¡~Š M\THrÓÈ`AM}« e­s¶ŒXnS?¼=Ž¿t›G[G¼>¼wîÜ=0aKá6“änogm7³ÐÚ£¸x¤oë[îž»|ð°Þ=ŸÞþÁ㋆:îw ðþý€ûî≯¯Š²ŽñgCXUtrf4§Œ7ÛjèÚH2 )=-ŽKO.(‹Í{Ž”ÛúÂ(€B¯A"¾)³²Jaª©hÀŸýÀæþø ÜÅþ¿èy°†æõ4€/ÃÅp6¾¿Œ×îþë@S½ °;`õ¨«ØÒ#ÞÑ‘jn‹÷Íäˆ:0ª={ºaÓ™x“ P·]ú†¥Q ‡9­:Ó7gwÚü:@î‰×I„Áÿ<ˆ/›(ƒ‰Ë©-J»i€Vgó¶îkn5†'yCô9)"¸*×àû×ìÆüŽ¹â£‰ÖPœó;¾yë‘ð@ni—áºnøj¯D«Ô*›š-øäZ×pKBJ• Á¤ãÖD*Р 1¿Â¨¨b÷)ÓÛï`±¿fÁåX[!þnÿ3 ïwre`¦ -ØÎ}àÜ%àr€u=˜8«’€qtK~‡Î6‰jÆ[È…8Cžu;2vä#$ Ñ³”º ©4gÞ3Œí0#@¿ìÌÊ -ÒOWk'T²_Ž–Pài³ì¤®¦$1R¸(Ïlç?Àÿñå¼£ -endstream -endobj -1209 0 obj -<< -/Length 3050 +/Length 7790 >> stream 0 g 0 G 0 g 0 G 0 g 0 G -0 g 0 G -0 g 0 G BT -/F46 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 +/F27 9.9626 Tf 99.895 706.129 Td [(t)]TJ 0 g 0 G -/F8 9.9626 Tf 100.66 -105.903 Td [(55)]TJ +/F8 9.9626 Tf 9.437 0 Td [(the)-333(global)-334(p)-27(ortion)-334(of)-333(the)-333(sparse)-334(matrix)]TJ/F11 9.9626 Tf 172.603 0 Td [(T)]TJ/F8 9.9626 Tf 7.206 0 Td [(.)]TJ -164.339 -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 [(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(ob)-55(ject)-334(t)28(yp)-28(e)-333(sp)-28(eci\014ed)-333(in)]TJ/F14 9.9626 Tf 176.118 0 Td [(x)]TJ +0 0 1 rg 0 0 1 RG +/F8 9.9626 Tf 7.748 0 Td [(3)]TJ 0 g 0 G -ET - -endstream -endobj -1218 0 obj -<< -/Length 8482 ->> -stream + [(.)]TJ 0 g 0 G +/F27 9.9626 Tf -208.773 -20.65 Td [(x)]TJ 0 g 0 G +/F8 9.9626 Tf 11.028 0 Td [(the)-333(lo)-28(cal)-333(p)-28(ortion)-333(of)-334(global)-333(dense)-333(matrix)]TJ/F11 9.9626 Tf 176.118 0 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(.)]TJ -167.933 -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 [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-255(as:)-405(a)-255(rank)-254(one)-255(or)-255(t)28(w)27(o)-254(arra)27(y)-254(or)-255(an)-255(ob)-55(jec)-1(t)-254(of)-255(t)28(yp)-28(e)]TJ +0 0 1 rg 0 0 1 RG +/F30 9.9626 Tf 244.743 0 Td [(psb)]TJ +ET +q +1 0 0 1 385.864 590.037 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +Q BT -/F16 11.9552 Tf 150.705 706.129 Td [(psb)]TJ +/F30 9.9626 Tf 389.002 589.838 Td [(T)]TJ ET q -1 0 0 1 171.761 706.328 cm -[]0 d 0 J 0.398 w 0 0 m 4.035 0 l S +1 0 0 1 394.86 590.037 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +Q +BT +/F30 9.9626 Tf 397.998 589.838 Td [(vect)]TJ +ET +q +1 0 0 1 419.547 590.037 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F16 11.9552 Tf 175.796 706.129 Td [(o)31(vrl)-375(|)-375(Ov)31(erlap)-375(Up)-31(date)]TJ/F8 9.9626 Tf -25.091 -18.389 Td [(These)-333(subroutines)-334(applies)-333(an)-333(o)27(v)28(erlap)-333(op)-28(erator)-333(to)-333(the)-334(input)-333(v)28(ector:)]TJ/F11 9.9626 Tf 154.475 -22.077 Td [(x)]TJ/F14 9.9626 Tf 8.461 0 Td [(\040)]TJ/F11 9.9626 Tf 12.73 0 Td [(Qx)]TJ/F8 9.9626 Tf -175.666 -20.14 Td [(where:)]TJ +/F30 9.9626 Tf 422.685 589.838 Td [(type)]TJ 0 g 0 G -/F11 9.9626 Tf 0 -18.503 Td [(x)]TJ +/F8 9.9626 Tf -297.883 -11.955 Td [(con)28(taining)-342(n)28(um)28(b)-28(ers)-342(of)-342(t)28(yp)-28(e)-342(sp)-28(eci\014ed)-342(in)-341(T)83(able)]TJ +0 0 1 rg 0 0 1 RG + [-342(13)]TJ 0 g 0 G -/F8 9.9626 Tf 10.675 0 Td [(is)-333(the)-334(global)-333(dense)-333(submatrix)]TJ/F11 9.9626 Tf 131.092 0 Td [(x)]TJ + [(.)-470(The)-342(rank)-342(of)]TJ/F11 9.9626 Tf 274.694 0 Td [(x)]TJ/F8 9.9626 Tf 9.101 0 Td [(m)28(ust)-342(b)-28(e)]TJ -283.795 -11.956 Td [(the)-333(same)-334(of)]TJ/F11 9.9626 Tf 53.466 0 Td [(y)]TJ/F8 9.9626 Tf 5.242 0 Td [(.)]TJ 0 g 0 G - -141.767 -19.214 Td [(Q)]TJ +/F27 9.9626 Tf -83.615 -20.649 Td [(b)-32(eta)]TJ 0 g 0 G -/F8 9.9626 Tf 12.857 0 Td [(is)-333(the)-334(o)28(v)28(erlap)-333(op)-28(erator;)-333(it)-334(is)-333(the)-333(co)-1(mp)-27(osition)-334(of)-333(t)28(w)28(o)-334(op)-27(erators)]TJ/F11 9.9626 Tf 271.842 0 Td [(P)]TJ/F10 6.9738 Tf 6.396 -1.494 Td [(a)]TJ/F8 9.9626 Tf 8.141 1.494 Td [(and)]TJ/F11 9.9626 Tf 19.372 0 Td [(P)]TJ/F10 6.9738 Tf 7.78 3.616 Td [(T)]TJ/F8 9.9626 Tf 6.276 -3.616 Td [(.)]TJ +/F8 9.9626 Tf 26.941 0 Td [(the)-333(scalar)]TJ/F11 9.9626 Tf 45.468 0 Td [(\014)]TJ/F8 9.9626 Tf 6.161 0 Td [(.)]TJ -53.663 -11.956 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 [(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(n)28(um)28(b)-28(er)-333(of)-334(the)-333(data)-333(t)28(yp)-28(e)-334(ind)1(ic)-1(ated)-333(in)-333(T)83(able)]TJ +0 0 1 rg 0 0 1 RG + [-333(13)]TJ 0 g 0 G + [(.)]TJ 0 g 0 G +/F27 9.9626 Tf -24.907 -20.65 Td [(y)]TJ 0 g 0 G +/F8 9.9626 Tf 11.028 0 Td [(the)-333(lo)-28(cal)-333(p)-28(ortion)-333(of)-334(global)-333(dense)-333(matrix)]TJ/F11 9.9626 Tf 176.118 0 Td [(y)]TJ/F8 9.9626 Tf 5.242 0 Td [(.)]TJ -167.481 -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 [(inout)]TJ/F8 9.9626 Tf 26.096 0 Td [(.)]TJ -59.582 -11.955 Td [(Sp)-28(eci\014ed)-255(as:)-405(a)-255(rank)-254(one)-255(or)-255(t)28(w)27(o)-254(arra)27(y)-254(or)-255(an)-255(ob)-55(jec)-1(t)-254(of)-255(t)28(yp)-28(e)]TJ +0 0 1 rg 0 0 1 RG +/F30 9.9626 Tf 244.743 0 Td [(psb)]TJ ET q -1 0 0 1 228.797 587.879 cm -[]0 d 0 J 0.398 w 0 0 m 187.526 0 l S +1 0 0 1 385.864 429.186 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F11 9.9626 Tf 234.775 579.311 Td [(x)]TJ/F27 9.9626 Tf 120.41 0 Td [(Subroutine)]TJ +/F30 9.9626 Tf 389.002 428.986 Td [(T)]TJ ET q -1 0 0 1 228.797 575.525 cm -[]0 d 0 J 0.398 w 0 0 m 187.526 0 l S +1 0 0 1 394.86 429.186 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F8 9.9626 Tf 234.775 566.957 Td [(Short)-333(Precision)-334(Real)-3102(psb)]TJ +/F30 9.9626 Tf 397.998 428.986 Td [(vect)]TJ ET q -1 0 0 1 370.782 567.156 cm -[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +1 0 0 1 419.547 429.186 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F8 9.9626 Tf 373.771 566.957 Td [(o)28(vrl)]TJ -138.996 -11.955 Td [(Long)-333(Precision)-334(Real)-3314(psb)]TJ +/F30 9.9626 Tf 422.685 428.986 Td [(type)]TJ +0 g 0 G +/F8 9.9626 Tf -297.883 -11.955 Td [(con)28(taining)-345(n)28(um)28(b)-28(ers)-345(of)-345(t)28(yp)-28(e)-345(sp)-28(eci\014ed)-345(in)-345(T)84(able)]TJ +0 0 1 rg 0 0 1 RG + [-345(13)]TJ +0 g 0 G + [(.)-479(The)-345(rank)-345(of)]TJ/F11 9.9626 Tf 275.086 0 Td [(y)]TJ/F8 9.9626 Tf 8.678 0 Td [(m)28(ust)-345(b)-28(e)]TJ -283.764 -11.955 Td [(the)-333(same)-334(of)]TJ/F11 9.9626 Tf 53.466 0 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(.)]TJ +0 g 0 G +/F27 9.9626 Tf -84.067 -20.65 Td [(desc)]TJ ET q -1 0 0 1 370.782 555.201 cm -[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +1 0 0 1 121.81 384.625 cm +[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F8 9.9626 Tf 373.771 555.002 Td [(o)28(vrl)]TJ -138.996 -11.955 Td [(Short)-333(Precision)-334(Complex)-1200(psb)]TJ +/F27 9.9626 Tf 125.247 384.426 Td [(a)]TJ +0 g 0 G +/F8 9.9626 Tf 10.551 0 Td [(con)28(tains)-334(d)1(ata)-334(structures)-333(for)-333(com)-1(m)28(unications.)]TJ -10.996 -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 [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.956 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(ob)-55(ject)-334(of)-333(t)28(yp)-28(e)]TJ +0 0 1 rg 0 0 1 RG +/F30 9.9626 Tf 135.658 0 Td [(psb)]TJ ET q -1 0 0 1 370.782 543.246 cm -[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +1 0 0 1 276.779 336.805 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F8 9.9626 Tf 373.771 543.047 Td [(o)28(vrl)]TJ -138.996 -11.956 Td [(Long)-333(Precision)-334(Complex)-1411(psb)]TJ +/F30 9.9626 Tf 279.917 336.605 Td [(desc)]TJ ET q -1 0 0 1 370.782 531.291 cm -[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +1 0 0 1 301.466 336.805 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F8 9.9626 Tf 373.771 531.091 Td [(o)28(vrl)]TJ +/F30 9.9626 Tf 304.604 336.605 Td [(type)]TJ +0 g 0 G +/F8 9.9626 Tf 20.922 0 Td [(.)]TJ +0 g 0 G +/F27 9.9626 Tf -225.631 -20.649 Td [(trans)]TJ +0 g 0 G +/F8 9.9626 Tf 30.609 0 Td [(sp)-28(ecify)-333(with)]TJ/F17 9.9626 Tf 55.68 0 Td [(unitd)]TJ/F8 9.9626 Tf 25.726 0 Td [(the)-333(op)-28(eration)-333(to)-334(p)-27(erform.)]TJ +0 g 0 G +/F27 9.9626 Tf -87.108 -20.65 Td [(trans)-383(=)-384('N')]TJ +0 g 0 G +/F8 9.9626 Tf 62.489 0 Td [(the)-333(op)-28(eration)-333(is)-334(with)-333(no)-333(transp)-28(osed)-333(matrix)]TJ +0 g 0 G +/F27 9.9626 Tf -62.489 -16.303 Td [(trans)-383(=)-384('T')]TJ +0 g 0 G +/F8 9.9626 Tf 61.493 0 Td [(the)-333(op)-28(eration)-333(is)-334(with)-333(transp)-28(osed)-333(matrix.)]TJ +0 g 0 G +/F27 9.9626 Tf -61.493 -16.302 Td [(trans)-383(=)-384('C')]TJ +0 g 0 G +/F8 9.9626 Tf 61.797 0 Td [(the)-333(op)-28(eration)-333(is)-334(with)-333(conjugate)-333(transp)-28(osed)-333(matrix.)]TJ -61.797 -20.65 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.956 Td [(Default:)]TJ/F11 9.9626 Tf 39.436 0 Td [(tr)-28(ans)]TJ/F8 9.9626 Tf 27.052 0 Td [(=)]TJ/F11 9.9626 Tf 10.516 0 Td [(N)]TJ/F8 9.9626 Tf -77.004 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(c)28(haracter)-333(v)55(ariable.)]TJ +0 g 0 G +/F27 9.9626 Tf -24.907 -20.65 Td [(unitd)]TJ +0 g 0 G +/F8 9.9626 Tf 31.715 0 Td [(sp)-28(ecify)-333(with)]TJ/F17 9.9626 Tf 55.68 0 Td [(tr)51(ans)]TJ/F8 9.9626 Tf 25.089 0 Td [(the)-333(op)-28(eration)-333(to)-334(p)-27(erform.)]TJ +0 g 0 G +/F27 9.9626 Tf -87.577 -20.649 Td [(unitd)-383(=)-384('U')]TJ +0 g 0 G +/F8 9.9626 Tf 63.442 0 Td [(the)-333(op)-28(eration)-333(is)-334(with)-333(no)-333(scaling)]TJ +0 g 0 G +/F27 9.9626 Tf -63.442 -16.303 Td [(unitd)-383(=)-384('L')]TJ +0 g 0 G +/F8 9.9626 Tf 61.519 0 Td [(the)-333(op)-28(eration)-333(is)-334(with)-333(left)-333(scaling)]TJ +0 g 0 G +/F27 9.9626 Tf -61.519 -16.302 Td [(unitd)-383(=)-384('R')]TJ +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(s)-1(calin)1(g.)]TJ +0 g 0 G + 78.747 -29.888 Td [(51)]TJ +0 g 0 G +ET + +endstream +endobj +1219 0 obj +<< +/Length 4678 +>> +stream +0 g 0 G +0 g 0 G +BT +/F8 9.9626 Tf 175.611 706.129 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 [(optional)]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.956 Td [(Default:)]TJ/F11 9.9626 Tf 39.436 0 Td [(unitd)]TJ/F8 9.9626 Tf 26.666 0 Td [(=)]TJ/F11 9.9626 Tf 10.516 0 Td [(U)]TJ/F8 9.9626 Tf -76.618 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(c)28(haracter)-334(v)56(ariable.)]TJ +0 g 0 G +/F27 9.9626 Tf -24.906 -19.925 Td [(c)32(hoice)]TJ +0 g 0 G +/F8 9.9626 Tf 35.374 0 Td [(sp)-28(eci\014es)-333(the)-334(up)-27(date)-334(of)-333(o)28(v)28(erlap)-334(elemen)28(ts)-333(to)-334(b)-27(e)-334(p)-28(erf)1(orme)-1(d)-333(on)-333(exit:)]TJ +0 g 0 G +0 g 0 G +/F30 9.9626 Tf -5.486 -19.925 Td [(psb_none_)]TJ +0 g 0 G +0 g 0 G + 0 -15.941 Td [(psb_sum_)]TJ +0 g 0 G +0 g 0 G + 0 -15.94 Td [(psb_avg_)]TJ +0 g 0 G +0 g 0 G + 0 -15.94 Td [(psb_square_root_)]TJ/F8 9.9626 Tf -4.982 -19.925 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 [(optional)]TJ/F8 9.9626 Tf -29.612 -11.956 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 [(Default:)]TJ/F30 9.9626 Tf 39.436 0 Td [(psb_avg_)]TJ/F8 9.9626 Tf -39.436 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(in)28(teger)-333(v)55(ariable.)]TJ +0 g 0 G +/F27 9.9626 Tf -24.906 -19.925 Td [(diag)]TJ +0 g 0 G +/F8 9.9626 Tf 25.826 0 Td [(the)-333(diagonal)-334(scaling)-333(matrix.)]TJ -0.92 -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 [(optional)]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.547 0 Td [(.)]TJ -43.033 -11.955 Td [(Default:)]TJ/F11 9.9626 Tf 39.436 0 Td [(diag)]TJ/F8 9.9626 Tf 18.993 0 Td [(\0501\051)-278(=)-278(1\050)]TJ/F11 9.9626 Tf 34.869 0 Td [(noscal)-20(ing)]TJ/F8 9.9626 Tf 42.747 0 Td [(\051)]TJ -136.045 -11.955 Td [(Sp)-28(eci\014ed)-382(as:)-543(a)-382(rank)-383(on)1(e)-383(arra)28(y)-382(c)-1(on)28(taining)-382(n)28(um)28(b)-28(ers)-383(of)-382(the)-382(t)27(yp)-27(e)-383(indicated)]TJ 0 -11.955 Td [(in)-333(T)83(able)]TJ +0 0 1 rg 0 0 1 RG + [-333(13)]TJ +0 g 0 G + [(.)]TJ +0 g 0 G +/F27 9.9626 Tf -24.906 -19.926 Td [(w)32(ork)]TJ +0 g 0 G +/F8 9.9626 Tf 29.431 0 Td [(a)-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.612 0 Td [(optional)]TJ/F8 9.9626 Tf -29.612 -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)-377(as:)-531(a)-377(rank)-377(on)1(e)-377(arra)28(y)-377(of)-377(the)-377(same)-377(t)28(yp)-28(e)-377(of)]TJ/F11 9.9626 Tf 225.953 0 Td [(x)]TJ/F8 9.9626 Tf 9.448 0 Td [(with)-377(the)-377(T)84(AR)28(G)-1(E)1(T)]TJ -235.401 -11.955 Td [(attribute.)]TJ +0 g 0 G +/F27 9.9626 Tf -24.906 -19.926 Td [(On)-383(Return)]TJ +0 g 0 G +0 g 0 G + 0 -19.925 Td [(y)]TJ +0 g 0 G +/F8 9.9626 Tf 11.028 0 Td [(the)-333(lo)-28(cal)-333(p)-28(ortion)-333(of)-334(global)-333(dense)-333(matrix)]TJ/F11 9.9626 Tf 176.118 0 Td [(y)]TJ/F8 9.9626 Tf 5.241 0 Td [(.)]TJ -167.481 -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 [(inout)]TJ/F8 9.9626 Tf 26.096 0 Td [(.)]TJ -59.582 -11.955 Td [(Sp)-28(eci\014ed)-474(as:)-727(an)-475(arra)28(y)-475(of)-474(rank)-475(one)-474(or)-475(t)28(w)28(o)-475(con)28(taining)-474(n)27(um)28(b)-28(ers)-474(of)-475(t)28(yp)-28(e)]TJ 0 -11.955 Td [(sp)-28(eci\014ed)-333(in)-333(T)83(able)]TJ +0 0 1 rg 0 0 1 RG + [-333(13)]TJ +0 g 0 G + [(.)]TJ +0 g 0 G +/F27 9.9626 Tf -24.906 -19.925 Td [(info)]TJ +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(t)1(e)-1(d)1(.)]TJ +0 g 0 G + 141.968 -73.723 Td [(52)]TJ +0 g 0 G +ET + +endstream +endobj +1230 0 obj +<< +/Length 7444 +>> +stream +0 g 0 G +0 g 0 G +BT +/F16 11.9552 Tf 99.895 706.129 Td [(4.14)-1125(psb)]TJ ET q -1 0 0 1 228.797 527.306 cm -[]0 d 0 J 0.398 w 0 0 m 187.526 0 l S +1 0 0 1 158.311 706.328 cm +[]0 d 0 J 0.398 w 0 0 m 4.035 0 l S Q -0 g 0 G BT -/F8 9.9626 Tf 276.386 499.266 Td [(T)83(able)-333(15:)-444(Data)-334(t)28(yp)-28(es)]TJ +/F16 11.9552 Tf 162.346 706.129 Td [(gemlt)-375(|)-375(En)31(trywise)-375(Pro)-31(duct)]TJ/F8 9.9626 Tf -62.451 -19.771 Td [(This)-333(function)-334(computes)-333(the)-333(en)27(try)1(w)-1(i)1(s)-1(e)-333(pro)-28(duct)-333(b)-28(et)28(w)28(een)-334(t)28(w)28(o)-333(v)27(ectors)]TJ/F11 9.9626 Tf 296.14 0 Td [(x)]TJ/F8 9.9626 Tf 9.015 0 Td [(and)]TJ/F11 9.9626 Tf 19.372 0 Td [(y)]TJ -185.258 -23.403 Td [(dot)]TJ/F14 9.9626 Tf 16.379 0 Td [(\040)]TJ/F11 9.9626 Tf 12.73 0 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(\050)]TJ/F11 9.9626 Tf 3.874 0 Td [(i)]TJ/F8 9.9626 Tf 3.433 0 Td [(\051)]TJ/F11 9.9626 Tf 3.874 0 Td [(y)]TJ/F8 9.9626 Tf 5.242 0 Td [(\050)]TJ/F11 9.9626 Tf 3.874 0 Td [(i)]TJ/F8 9.9626 Tf 3.433 0 Td [(\051)]TJ/F11 9.9626 Tf 3.874 0 Td [(:)]TJ +0 g 0 G +0 g 0 G +/F30 9.9626 Tf -201.676 -24.145 Td [(psb_gemlt\050x,)-525(y,)-525(desc_a,)-525(info\051)]TJ +0 g 0 G 0 g 0 G 0 g 0 G -/F27 9.9626 Tf -124.304 -28.465 Td [(c)-138(a)-138(l)-139(l)]TJ/F8 9.9626 Tf 29.881 0 Td [(p)-137(s)-138(b)]TJ ET q -1 0 0 1 201.669 471 cm -[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +1 0 0 1 183.665 610.766 cm +[]0 d 0 J 0.398 w 0 0 m 176.173 0 l S Q BT -/F8 9.9626 Tf 206.027 470.801 Td [(o)-137(v)-138(r)-137(l)-243(\050)-130(x)-209(,)-874(d)-113(e)-112(s)-113(c)]TJ +/F11 9.9626 Tf 189.642 602.198 Td [(dot)]TJ/F8 9.9626 Tf 13.612 0 Td [(,)]TJ/F11 9.9626 Tf 6.089 0 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(,)]TJ/F11 9.9626 Tf 6.088 0 Td [(y)]TJ/F27 9.9626 Tf 88.927 0 Td [(F)96(unction)]TJ ET q -1 0 0 1 276.854 471 cm +1 0 0 1 183.665 598.412 cm +[]0 d 0 J 0.398 w 0 0 m 176.173 0 l S +Q +BT +/F8 9.9626 Tf 189.642 589.845 Td [(Short)-333(Precision)-334(Real)-3102(psb)]TJ +ET +q +1 0 0 1 325.649 590.044 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 280.965 470.801 Td [(a)-386(,)-914(i)-152(n)-152(f)-152(o)-258(\051)]TJ/F27 9.9626 Tf -128.883 -11.955 Td [(c)-138(a)-138(l)-139(l)]TJ/F8 9.9626 Tf 29.881 0 Td [(p)-137(s)-138(b)]TJ +/F8 9.9626 Tf 328.638 589.845 Td [(gemlt)]TJ -138.996 -11.956 Td [(Long)-333(Precision)-334(Real)-3314(psb)]TJ ET q -1 0 0 1 201.669 459.045 cm +1 0 0 1 325.649 578.089 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 206.027 458.846 Td [(o)-137(v)-138(r)-137(l)-243(\050)-130(x)-209(,)-874(d)-113(e)-112(s)-113(c)]TJ +/F8 9.9626 Tf 328.638 577.889 Td [(gemlt)]TJ -138.996 -11.955 Td [(Short)-333(Precision)-334(Complex)-1200(psb)]TJ ET q -1 0 0 1 276.854 459.045 cm +1 0 0 1 325.649 566.134 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 280.965 458.846 Td [(a)-386(,)-888(i)-127(n)-127(f)-127(o)-415(,)-846(u)-86(p)-86(d)-86(a)-85(t)-86(e)3(=)-13(u)-101(p)-102(d)-102(a)-102(t)-102(e)]TJ +/F8 9.9626 Tf 328.638 565.934 Td [(gemlt)]TJ -138.996 -11.955 Td [(Long)-333(Precision)-334(Complex)-1411(psb)]TJ ET q -1 0 0 1 415.44 459.045 cm +1 0 0 1 325.649 554.178 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 419.443 458.846 Td [(t)-102(y)-102(p)-101(e)-365(,)-813(w)-52(o)-51(r)-52(k)37(=)38(w)-52(o)-52(r)-51(k)-158(\051)]TJ +/F8 9.9626 Tf 328.638 553.979 Td [(gemlt)]TJ +ET +q +1 0 0 1 183.665 550.193 cm +[]0 d 0 J 0.398 w 0 0 m 176.173 0 l S +Q 0 g 0 G +BT +/F8 9.9626 Tf 225.577 522.154 Td [(T)83(able)-333(14:)-444(Data)-334(t)28(yp)-28(es)]TJ 0 g 0 G 0 g 0 G -/F27 9.9626 Tf -268.738 -25.406 Td [(T)32(yp)-32(e:)]TJ +0 g 0 G +/F27 9.9626 Tf -125.682 -37.309 Td [(T)32(yp)-32(e:)]TJ 0 g 0 G /F8 9.9626 Tf 33.797 0 Td [(Sync)28(hronous.)]TJ 0 g 0 G -/F27 9.9626 Tf -33.797 -19.214 Td [(On)-383(En)32(try)]TJ +/F27 9.9626 Tf -33.797 -22.895 Td [(On)-383(En)32(try)]TJ 0 g 0 G 0 g 0 G - 0 -19.214 Td [(x)]TJ + 0 -22.895 Td [(x)]TJ 0 g 0 G -/F8 9.9626 Tf 11.028 0 Td [(global)-333(dense)-334(matrix)]TJ/F11 9.9626 Tf 88.917 0 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(.)]TJ -80.732 -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 [(inout)]TJ/F8 9.9626 Tf 26.097 0 Td [(.)]TJ -59.582 -11.955 Td [(Sp)-28(eci\014ed)-255(as:)-405(a)-255(rank)-254(one)-255(or)-255(t)28(w)28(o)-255(arra)28(y)-255(or)-255(an)-255(ob)-55(ject)-255(of)-255(t)28(yp)-28(e)]TJ +/F8 9.9626 Tf 11.028 0 Td [(the)-333(lo)-28(cal)-333(p)-28(ortion)-333(of)-334(global)-333(dense)-333(v)27(ector)]TJ/F11 9.9626 Tf 173.627 0 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(.)]TJ -165.442 -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)-424(as:)-628(an)-424(ob)-56(ject)-424(of)-425(t)28(yp)-28(e)]TJ 0 0 1 rg 0 0 1 RG -/F30 9.9626 Tf 244.742 0 Td [(psb)]TJ +/F30 9.9626 Tf 142.027 0 Td [(psb)]TJ ET q -1 0 0 1 436.673 347.39 cm +1 0 0 1 283.148 391.433 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 439.811 347.191 Td [(T)]TJ +/F30 9.9626 Tf 286.286 391.234 Td [(T)]TJ ET q -1 0 0 1 445.669 347.39 cm +1 0 0 1 292.144 391.433 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 448.807 347.191 Td [(vect)]TJ +/F30 9.9626 Tf 295.282 391.234 Td [(vect)]TJ ET q -1 0 0 1 470.356 347.39 cm +1 0 0 1 316.831 391.433 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 473.495 347.191 Td [(type)]TJ +/F30 9.9626 Tf 319.969 391.234 Td [(type)]TJ 0 g 0 G -/F8 9.9626 Tf -297.884 -11.955 Td [(con)28(taining)-333(n)27(um)28(b)-28(ers)-333(of)-333(t)27(yp)-27(e)-334(sp)-27(ec)-1(i)1(\014ed)-334(in)-333(T)83(able)]TJ +/F8 9.9626 Tf 25.152 0 Td [(con)28(taining)-425(n)28(um)28(b)-28(ers)-425(of)]TJ -220.319 -11.955 Td [(t)28(yp)-28(e)-333(sp)-28(eci\014ed)-333(in)-334(T)84(able)]TJ 0 0 1 rg 0 0 1 RG - [-333(15)]TJ + [-334(2)]TJ 0 g 0 G [(.)]TJ 0 g 0 G -/F27 9.9626 Tf -24.906 -19.214 Td [(desc)]TJ +/F27 9.9626 Tf -24.907 -22.895 Td [(y)]TJ +0 g 0 G +/F8 9.9626 Tf 11.028 0 Td [(the)-333(lo)-28(cal)-333(p)-28(ortion)-333(of)-334(global)-333(dense)-333(v)27(ector)]TJ/F11 9.9626 Tf 173.627 0 Td [(y)]TJ/F8 9.9626 Tf 5.242 0 Td [(.)]TJ -164.99 -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)-424(as:)-628(an)-424(ob)-56(ject)-424(of)-425(t)28(yp)-28(e)]TJ +0 0 1 rg 0 0 1 RG +/F30 9.9626 Tf 142.027 0 Td [(psb)]TJ ET q -1 0 0 1 172.619 316.221 cm -[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S +1 0 0 1 283.148 308.762 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F27 9.9626 Tf 176.057 316.022 Td [(a)]TJ -0 g 0 G -/F8 9.9626 Tf 10.55 0 Td [(con)28(tains)-334(data)-333(structures)-333(for)-333(c)-1(omm)28(unications.)]TJ -10.996 -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.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 +/F30 9.9626 Tf 286.286 308.563 Td [(T)]TJ ET q -1 0 0 1 362.845 268.401 cm +1 0 0 1 292.144 308.762 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 365.983 268.201 Td [(desc)]TJ +/F30 9.9626 Tf 295.282 308.563 Td [(vect)]TJ ET q -1 0 0 1 387.532 268.401 cm +1 0 0 1 316.831 308.762 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 390.67 268.201 Td [(type)]TJ -0 g 0 G -/F8 9.9626 Tf 20.922 0 Td [(.)]TJ +/F30 9.9626 Tf 319.969 308.563 Td [(type)]TJ 0 g 0 G -/F27 9.9626 Tf -260.887 -19.214 Td [(up)-32(date)]TJ +/F8 9.9626 Tf 25.152 0 Td [(con)28(taining)-425(n)28(um)28(b)-28(ers)-425(of)]TJ -220.319 -11.955 Td [(t)28(yp)-28(e)-333(sp)-28(eci\014ed)-333(in)-334(T)84(able)]TJ +0 0 1 rg 0 0 1 RG + [-334(2)]TJ 0 g 0 G -/F8 9.9626 Tf 39.67 0 Td [(Up)-28(date)-333(op)-28(erator.)]TJ + [(.)]TJ 0 g 0 G -/F27 9.9626 Tf -14.764 -31.169 Td [(up)-32(date)-383(=)-384(psb)]TJ -ET -q -1 0 0 1 244.786 218.017 cm -[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S -Q -BT -/F27 9.9626 Tf 248.223 217.818 Td [(none)]TJ +/F27 9.9626 Tf -24.907 -22.895 Td [(desc)]TJ ET q -1 0 0 1 272.62 218.017 cm +1 0 0 1 121.81 273.912 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 281.039 217.818 Td [(Do)-333(nothing;)]TJ +/F27 9.9626 Tf 125.247 273.713 Td [(a)]TJ 0 g 0 G -/F27 9.9626 Tf -105.428 -15.229 Td [(up)-32(date)-383(=)-384(psb)]TJ +/F8 9.9626 Tf 10.551 0 Td [(con)28(tains)-334(d)1(ata)-334(structures)-333(for)-333(com)-1(m)28(unications.)]TJ -10.996 -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 [(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(ob)-55(ject)-334(of)-333(t)28(yp)-28(e)]TJ +0 0 1 rg 0 0 1 RG +/F30 9.9626 Tf 135.658 0 Td [(psb)]TJ ET q -1 0 0 1 244.786 202.789 cm -[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S +1 0 0 1 276.779 226.091 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F27 9.9626 Tf 248.223 202.589 Td [(add)]TJ +/F30 9.9626 Tf 279.917 225.892 Td [(desc)]TJ ET q -1 0 0 1 267.21 202.789 cm -[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S +1 0 0 1 301.466 226.091 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q -0 g 0 G BT -/F8 9.9626 Tf 275.628 202.589 Td [(Sum)-333(o)27(v)28(erlap)-333(en)28(tries,)-334(i.e.)-444(apply)]TJ/F11 9.9626 Tf 136.544 0 Td [(P)]TJ/F10 6.9738 Tf 7.78 3.616 Td [(T)]TJ/F8 9.9626 Tf 6.276 -3.616 Td [(;)]TJ +/F30 9.9626 Tf 304.604 225.892 Td [(type)]TJ 0 g 0 G -/F27 9.9626 Tf -250.617 -15.229 Td [(up)-32(date)-383(=)-384(psb)]TJ -ET -q -1 0 0 1 244.786 187.56 cm -[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S -Q -BT -/F27 9.9626 Tf 248.223 187.36 Td [(a)32(vg)]TJ -ET -q -1 0 0 1 265.937 187.56 cm -[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S -Q +/F8 9.9626 Tf 20.922 0 Td [(.)]TJ 0 g 0 G -BT -/F8 9.9626 Tf 274.355 187.36 Td [(Av)28(erage)-334(o)28(v)28(erlap)-333(en)27(tries,)-333(i.e.)-444(apply)]TJ/F11 9.9626 Tf 152.346 0 Td [(P)]TJ/F10 6.9738 Tf 6.396 -1.494 Td [(a)]TJ/F11 9.9626 Tf 4.82 1.494 Td [(P)]TJ/F10 6.9738 Tf 7.78 3.616 Td [(T)]TJ/F8 9.9626 Tf 6.276 -3.616 Td [(;)]TJ -276.362 -19.214 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 [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.955 Td [(Default:)]TJ/F11 9.9626 Tf 39.436 0 Td [(update)]TJ +/F27 9.9626 Tf -225.631 -22.895 Td [(On)-383(Return)]TJ +0 g 0 G +0 g 0 G + 0 -22.896 Td [(y)]TJ +0 g 0 G +/F8 9.9626 Tf 11.028 0 Td [(the)-333(lo)-28(cal)-333(p)-28(ortion)-333(of)-334(result)-333(submatrix)]TJ/F11 9.9626 Tf 162.364 0 Td [(y)]TJ/F8 9.9626 Tf 5.242 0 Td [(.)]TJ -153.727 -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.955 Td [(Sp)-28(eci\014ed)-424(as:)-628(an)-424(ob)-56(ject)-424(of)-425(t)28(yp)-28(e)]TJ +0 0 1 rg 0 0 1 RG +/F30 9.9626 Tf 142.027 0 Td [(psb)]TJ ET q -1 0 0 1 245.048 144.435 cm -[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +1 0 0 1 283.148 132.48 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F11 9.9626 Tf 248.037 144.236 Td [(ty)-36(pe)]TJ/F8 9.9626 Tf 21.258 0 Td [(=)]TJ/F11 9.9626 Tf 10.517 0 Td [(psb)]TJ +/F30 9.9626 Tf 286.286 132.281 Td [(T)]TJ ET q -1 0 0 1 294.367 144.435 cm -[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +1 0 0 1 292.144 132.48 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F11 9.9626 Tf 297.356 144.236 Td [(av)-36(g)]TJ +/F30 9.9626 Tf 295.282 132.281 Td [(vect)]TJ ET q -1 0 0 1 313.516 144.435 cm -[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +1 0 0 1 316.831 132.48 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S 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 [(56)]TJ -0 g 0 G -ET - -endstream -endobj -1230 0 obj -<< -/Length 5866 ->> -stream -0 g 0 G -0 g 0 G -0 g 0 G -BT -/F27 9.9626 Tf 99.895 706.129 Td [(w)32(ork)]TJ -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.956 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)-333(as:)-445(a)-333(one)-333(dimensional)-334(ar)1(ra)27(y)-333(of)-333(the)-334(same)-333(t)28(yp)-28(e)-333(of)]TJ/F11 9.9626 Tf 252.609 0 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(.)]TJ -0 g 0 G -/F27 9.9626 Tf -283.21 -19.925 Td [(On)-383(Return)]TJ +/F30 9.9626 Tf 319.969 132.281 Td [(type)]TJ 0 g 0 G -0 g 0 G - 0 -19.925 Td [(x)]TJ -0 g 0 G -/F8 9.9626 Tf 11.028 0 Td [(global)-333(dense)-334(result)-333(matrix)]TJ/F11 9.9626 Tf 116.674 0 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(.)]TJ -108.489 -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 [(inout)]TJ/F8 9.9626 Tf 26.096 0 Td [(.)]TJ -59.582 -11.955 Td [(Sp)-28(eci\014ed)-474(as:)-727(an)-475(arra)28(y)-474(of)-475(rank)-475(on)1(e)-475(or)-475(t)28(w)28(o)-475(con)28(taining)-474(n)27(u)1(m)27(b)-27(e)-1(r)1(s)-475(of)-475(t)28(yp)-28(e)]TJ 0 -11.955 Td [(sp)-28(eci\014ed)-333(in)-333(T)83(able)]TJ +/F8 9.9626 Tf 25.152 0 Td [(con)28(taining)-425(n)28(um)28(b)-28(ers)-425(of)]TJ -220.319 -11.955 Td [(the)-333(t)27(yp)-27(e)-334(indicated)-333(in)-333(T)83(able)]TJ 0 0 1 rg 0 0 1 RG - [-333(15)]TJ + [-333(14)]TJ 0 g 0 G [(.)]TJ 0 g 0 G -/F27 9.9626 Tf -24.907 -19.926 Td [(info)]TJ -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/F16 11.9552 Tf -24.907 -21.918 Td [(Notes)]TJ -0 g 0 G -/F8 9.9626 Tf 12.177 -19.925 Td [(1.)]TJ -0 g 0 G - [-500(If)-316(there)-316(is)-317(no)-316(o)28(v)28(erlap)-316(in)-316(the)-317(data)-316(distribution)-316(asso)-28(ciated)-316(with)-316(the)-316(descrip-)]TJ 12.73 -11.955 Td [(tor,)-333(no)-334(op)-27(erations)-334(are)-333(p)-28(erformed;)]TJ -0 g 0 G - -12.73 -19.926 Td [(2.)]TJ -0 g 0 G - [-500(The)-351(op)-27(erator)]TJ/F11 9.9626 Tf 73.737 0 Td [(P)]TJ/F10 6.9738 Tf 7.78 3.616 Td [(T)]TJ/F8 9.9626 Tf 9.77 -3.616 Td [(p)-28(erforms)-350(the)-351(reduction)-351(sum)-350(of)-351(o)28(v)27(erlap)-350(elemen)28(ts)-1(;)-359(it)-351(i)1(s)-351(a)]TJ -78.557 -11.955 Td [(\134prolongation")-365(op)-28(erator)]TJ/F11 9.9626 Tf 108.923 0 Td [(P)]TJ/F10 6.9738 Tf 7.78 3.615 Td [(T)]TJ/F8 9.9626 Tf 9.914 -3.615 Td [(that)-365(replicates)-365(o)27(v)28(erlap)-365(elemen)28(ts,)-373(accoun)27(tin)1(g)]TJ -126.617 -11.955 Td [(for)-333(the)-334(ph)28(ysical)-333(replication)-333(of)-334(data;)]TJ -0 g 0 G - -12.73 -19.925 Td [(3.)]TJ -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 -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 -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 [(57)]TJ + 141.968 -29.888 Td [(53)]TJ 0 g 0 G ET endstream endobj -1118 0 obj +1126 0 obj << /Type /ObjStm /N 100 -/First 995 -/Length 12718 +/First 992 +/Length 12438 >> stream -1116 0 248 58 1117 115 1113 174 1122 318 1119 466 1120 611 1124 758 252 817 1126 875 -1121 934 1133 1080 1127 1246 1128 1393 1129 1538 1130 1682 1135 1829 256 1887 1136 1944 1137 2003 -1138 2062 1139 2121 1132 2180 1148 2337 1131 2539 1140 2686 1141 2830 1142 2977 1143 3124 1144 3275 -1145 3426 1146 3577 1150 3724 1147 3783 1154 3889 1151 4028 1156 4174 260 4232 1157 4289 1153 4348 -1166 4519 1152 4712 1159 4860 1160 5004 1161 5151 1162 5298 1163 5442 1164 5589 1168 5735 1165 5794 -1172 5926 1169 6074 1170 6221 1174 6368 1171 6426 1177 6532 1175 6671 1179 6819 264 6878 1176 6936 -1185 7016 1180 7173 1181 7317 1182 7464 1187 7611 268 7669 1188 7726 1189 7785 1190 7843 1191 7901 -1184 7959 1195 8091 1199 8239 1200 8366 1201 8409 1202 8616 1203 8854 1204 9130 1183 9366 1193 9513 -1197 9659 1198 9718 1194 9777 1208 9925 1210 10043 1207 10101 1217 10182 1213 10339 1214 10483 1215 10630 -1219 10776 272 10835 1220 10893 1221 10952 1222 11011 1223 11070 1216 11129 1229 11274 1224 11431 1226 11578 -% 1116 0 obj -<< -/D [1114 0 R /XYZ 98.895 753.953 null] ->> -% 248 0 obj -<< -/D [1114 0 R /XYZ 99.895 720.077 null] ->> -% 1117 0 obj -<< -/D [1114 0 R /XYZ 270.132 513.305 null] ->> -% 1113 0 obj -<< -/Font << /F16 558 0 R /F8 561 0 R /F11 755 0 R /F14 772 0 R /F7 770 0 R /F27 560 0 R /F30 769 0 R >> -/ProcSet [ /PDF /Text ] ->> -% 1122 0 obj -<< -/Type /Page -/Contents 1123 0 R -/Resources 1121 0 R -/MediaBox [0 0 595.276 841.89] -/Parent 1102 0 R -/Annots [ 1119 0 R 1120 0 R ] ->> -% 1119 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [310.273 342.722 387.792 353.847] -/A << /S /GoTo /D (spdata) >> ->> +1120 0 1124 146 248 204 1125 261 1121 320 1128 477 1130 595 1127 654 1135 734 1131 891 +1132 1035 1133 1181 1137 1328 252 1386 1138 1443 1134 1502 1141 1647 1143 1765 1144 1824 1145 1883 +1146 1942 1147 2001 1148 2060 1149 2119 1140 2178 1154 2297 1150 2454 1151 2598 1152 2743 1156 2890 +256 2948 1157 3005 1153 3064 1161 3208 1158 3356 1159 3501 1163 3648 260 3707 1164 3765 1160 3824 +1168 3968 1165 4116 1166 4261 1170 4408 264 4466 1172 4523 1167 4582 1179 4728 1173 4894 1174 5041 +1175 5186 1176 5330 1181 5477 268 5536 1182 5594 1183 5653 1184 5712 1185 5771 1178 5830 1194 5987 +1177 6189 1186 6336 1187 6479 1188 6625 1189 6772 1190 6923 1191 7074 1192 7224 1196 7369 1193 7427 +1201 7533 1198 7672 1203 7818 272 7877 1204 7935 1200 7994 1212 8165 1199 8358 1205 8506 1206 8650 +1207 8797 1208 8944 1209 9088 1210 9235 1214 9381 1211 9439 1218 9571 1215 9719 1216 9866 1220 10013 +1217 10072 1229 10178 1221 10371 1222 10515 1223 10661 1224 10805 1225 10951 1226 11098 1227 11242 1231 11388 % 1120 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [310.273 274.976 377.331 286.101] +/Rect [259.464 208.355 326.522 219.48] /A << /S /GoTo /D (descdata) >> >> % 1124 0 obj << -/D [1122 0 R /XYZ 149.705 753.953 null] +/D [1122 0 R /XYZ 98.895 753.953 null] >> -% 252 0 obj +% 248 0 obj << -/D [1122 0 R /XYZ 150.705 720.077 null] +/D [1122 0 R /XYZ 99.895 716.092 null] >> -% 1126 0 obj +% 1125 0 obj << -/D [1122 0 R /XYZ 320.941 513.305 null] +/D [1122 0 R /XYZ 267.641 432.072 null] >> % 1121 0 obj << -/Font << /F16 558 0 R /F8 561 0 R /F11 755 0 R /F14 772 0 R /F13 1125 0 R /F27 560 0 R /F30 769 0 R >> +/Font << /F16 582 0 R /F8 585 0 R /F11 797 0 R /F14 814 0 R /F10 813 0 R /F7 812 0 R /F30 811 0 R /F27 584 0 R >> /ProcSet [ /PDF /Text ] >> -% 1133 0 obj +% 1128 0 obj << /Type /Page -/Contents 1134 0 R -/Resources 1132 0 R +/Contents 1129 0 R +/Resources 1127 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1102 0 R -/Annots [ 1127 0 R 1128 0 R 1129 0 R 1130 0 R ] +/Parent 1091 0 R +>> +% 1130 0 obj +<< +/D [1128 0 R /XYZ 149.705 753.953 null] >> % 1127 0 obj << -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [382.088 276.095 394.043 286.943] -/A << /S /GoTo /D (table.12) >> +/Font << /F27 584 0 R /F8 585 0 R >> +/ProcSet [ /PDF /Text ] >> -% 1128 0 obj +% 1135 0 obj +<< +/Type /Page +/Contents 1136 0 R +/Resources 1134 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1139 0 R +/Annots [ 1131 0 R 1132 0 R 1133 0 R ] +>> +% 1131 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [259.464 208.422 336.983 219.547] -/A << /S /GoTo /D (spdata) >> +/Rect [368.549 316.653 444.603 327.778] +/A << /S /GoTo /D (vdata) >> >> -% 1129 0 obj +% 1132 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [368.549 141.026 444.603 152.151] -/A << /S /GoTo /D (vdata) >> +/Rect [325.411 304.975 332.385 315.823] +/A << /S /GoTo /D (table.8) >> >> -% 1130 0 obj +% 1133 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [326.008 129.347 337.963 140.196] -/A << /S /GoTo /D (table.12) >> +/Rect [259.464 234.201 326.522 245.325] +/A << /S /GoTo /D (descdata) >> >> -% 1135 0 obj +% 1137 0 obj << -/D [1133 0 R /XYZ 98.895 753.953 null] +/D [1135 0 R /XYZ 98.895 753.953 null] >> -% 256 0 obj +% 252 0 obj << -/D [1133 0 R /XYZ 99.895 720.077 null] +/D [1135 0 R /XYZ 99.895 716.092 null] >> -% 1136 0 obj +% 1138 0 obj << -/D [1133 0 R /XYZ 239.804 675.784 null] +/D [1135 0 R /XYZ 267.641 500.643 null] >> -% 1137 0 obj +% 1134 0 obj << -/D [1133 0 R /XYZ 236.666 658.376 null] +/Font << /F16 582 0 R /F8 585 0 R /F11 797 0 R /F14 814 0 R /F10 813 0 R /F27 584 0 R /F30 811 0 R >> +/ProcSet [ /PDF /Text ] >> -% 1138 0 obj +% 1141 0 obj << -/D [1133 0 R /XYZ 236.025 640.968 null] +/Type /Page +/Contents 1142 0 R +/Resources 1140 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1139 0 R >> -% 1139 0 obj +% 1143 0 obj << -/D [1133 0 R /XYZ 270.132 455.558 null] +/D [1141 0 R /XYZ 149.705 753.953 null] >> -% 1132 0 obj +% 1144 0 obj << -/Font << /F16 558 0 R /F8 561 0 R /F11 755 0 R /F14 772 0 R /F10 771 0 R /F7 770 0 R /F27 560 0 R /F30 769 0 R >> -/ProcSet [ /PDF /Text ] +/D [1141 0 R /XYZ 150.705 564.659 null] +>> +% 1145 0 obj +<< +/D [1141 0 R /XYZ 150.705 504.939 null] +>> +% 1146 0 obj +<< +/D [1141 0 R /XYZ 175.611 506.876 null] +>> +% 1147 0 obj +<< +/D [1141 0 R /XYZ 175.611 494.921 null] >> % 1148 0 obj << -/Type /Page -/Contents 1149 0 R -/Resources 1147 0 R -/MediaBox [0 0 595.276 841.89] -/Parent 1102 0 R -/Annots [ 1131 0 R 1140 0 R 1141 0 R 1142 0 R 1143 0 R 1144 0 R 1145 0 R 1146 0 R ] +/D [1141 0 R /XYZ 175.611 482.966 null] >> -% 1131 0 obj +% 1149 0 obj << -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [432.897 655.375 444.852 666.223] -/A << /S /GoTo /D (table.12) >> +/D [1141 0 R /XYZ 175.611 471.011 null] >> % 1140 0 obj << +/Font << /F27 584 0 R /F8 585 0 R /F11 797 0 R /F30 811 0 R /F16 582 0 R >> +/ProcSet [ /PDF /Text ] +>> +% 1154 0 obj +<< +/Type /Page +/Contents 1155 0 R +/Resources 1153 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1139 0 R +/Annots [ 1150 0 R 1151 0 R 1152 0 R ] +>> +% 1150 0 obj +<< /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [419.358 588.824 495.412 599.949] +/Rect [368.549 404.491 444.603 415.616] /A << /S /GoTo /D (vdata) >> >> -% 1141 0 obj +% 1151 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [377.029 577.145 388.984 587.994] -/A << /S /GoTo /D (table.12) >> +/Rect [325.411 392.812 332.385 403.66] +/A << /S /GoTo /D (table.9) >> >> -% 1142 0 obj +% 1152 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [310.273 498.639 377.331 509.764] +/Rect [259.464 324.789 326.522 335.914] /A << /S /GoTo /D (descdata) >> >> -% 1143 0 obj +% 1156 0 obj << -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [397.199 462.009 404.172 472.858] -/A << /S /GoTo /D (equation.4.1) >> +/D [1154 0 R /XYZ 98.895 753.953 null] >> -% 1144 0 obj +% 256 0 obj << -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [396.202 447.541 403.176 458.389] -/A << /S /GoTo /D (equation.4.2) >> +/D [1154 0 R /XYZ 99.895 716.092 null] >> -% 1145 0 obj +% 1157 0 obj << -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [396.507 433.073 403.481 443.921] -/A << /S /GoTo /D (equation.4.3) >> +/D [1154 0 R /XYZ 267.641 540.923 null] >> -% 1146 0 obj +% 1153 0 obj << -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [253.818 191.887 265.774 202.735] -/A << /S /GoTo /D (table.12) >> ->> -% 1150 0 obj -<< -/D [1148 0 R /XYZ 149.705 753.953 null] ->> -% 1147 0 obj -<< -/Font << /F27 560 0 R /F8 561 0 R /F11 755 0 R /F30 769 0 R >> +/Font << /F16 582 0 R /F8 585 0 R /F11 797 0 R /F14 814 0 R /F7 812 0 R /F30 811 0 R /F27 584 0 R >> /ProcSet [ /PDF /Text ] >> -% 1154 0 obj +% 1161 0 obj << /Type /Page -/Contents 1155 0 R -/Resources 1153 0 R +/Contents 1162 0 R +/Resources 1160 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1158 0 R -/Annots [ 1151 0 R ] +/Parent 1139 0 R +/Annots [ 1158 0 R 1159 0 R ] >> -% 1151 0 obj +% 1158 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [382.088 117.392 394.043 128.24] -/A << /S /GoTo /D (table.13) >> +/Rect [310.273 342.722 387.792 353.847] +/A << /S /GoTo /D (spdata) >> >> -% 1156 0 obj +% 1159 0 obj << -/D [1154 0 R /XYZ 98.895 753.953 null] +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [310.273 274.976 377.331 286.101] +/A << /S /GoTo /D (descdata) >> +>> +% 1163 0 obj +<< +/D [1161 0 R /XYZ 149.705 753.953 null] >> % 260 0 obj << -/D [1154 0 R /XYZ 99.895 720.077 null] +/D [1161 0 R /XYZ 150.705 716.092 null] >> -% 1157 0 obj +% 1164 0 obj << -/D [1154 0 R /XYZ 270.132 258.477 null] +/D [1161 0 R /XYZ 320.941 513.305 null] >> -% 1153 0 obj +% 1160 0 obj << -/Font << /F16 558 0 R /F8 561 0 R /F11 755 0 R /F14 772 0 R /F13 1125 0 R /F7 770 0 R /F10 771 0 R /F30 769 0 R /F27 560 0 R >> +/Font << /F16 582 0 R /F8 585 0 R /F11 797 0 R /F14 814 0 R /F7 812 0 R /F27 584 0 R /F30 811 0 R >> /ProcSet [ /PDF /Text ] >> -% 1166 0 obj +% 1168 0 obj << /Type /Page -/Contents 1167 0 R -/Resources 1165 0 R +/Contents 1169 0 R +/Resources 1167 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1158 0 R -/Annots [ 1152 0 R 1159 0 R 1160 0 R 1161 0 R 1162 0 R 1163 0 R 1164 0 R ] +/Parent 1139 0 R +/Annots [ 1165 0 R 1166 0 R ] >> -% 1152 0 obj +% 1165 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [358.482 655.375 365.455 666.223] -/A << /S /GoTo /D (section.3) >> +/Rect [259.464 342.722 336.983 353.847] +/A << /S /GoTo /D (spdata) >> >> -% 1159 0 obj +% 1166 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [419.358 586.627 495.412 597.752] -/A << /S /GoTo /D (vdata) >> +/Rect [259.464 274.976 326.522 286.101] +/A << /S /GoTo /D (descdata) >> >> -% 1160 0 obj +% 1170 0 obj << -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [376.818 574.949 388.773 585.797] -/A << /S /GoTo /D (table.13) >> +/D [1168 0 R /XYZ 98.895 753.953 null] >> -% 1161 0 obj +% 264 0 obj +<< +/D [1168 0 R /XYZ 99.895 716.092 null] +>> +% 1172 0 obj +<< +/D [1168 0 R /XYZ 270.132 513.305 null] +>> +% 1167 0 obj +<< +/Font << /F16 582 0 R /F8 585 0 R /F11 797 0 R /F14 814 0 R /F13 1171 0 R /F27 584 0 R /F30 811 0 R >> +/ProcSet [ /PDF /Text ] +>> +% 1179 0 obj +<< +/Type /Page +/Contents 1180 0 R +/Resources 1178 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1139 0 R +/Annots [ 1173 0 R 1174 0 R 1175 0 R 1176 0 R ] +>> +% 1173 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [432.897 494.523 444.852 505.372] -/A << /S /GoTo /D (table.13) >> +/Rect [432.897 274.798 444.852 285.646] +/A << /S /GoTo /D (table.12) >> >> -% 1162 0 obj +% 1174 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [419.358 425.776 495.412 436.901] -/A << /S /GoTo /D (vdata) >> +/Rect [310.273 207.773 387.792 218.898] +/A << /S /GoTo /D (spdata) >> >> -% 1163 0 obj +% 1175 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [377.029 414.098 388.984 424.946] -/A << /S /GoTo /D (table.13) >> +/Rect [419.358 141.026 495.412 152.151] +/A << /S /GoTo /D (vdata) >> >> -% 1164 0 obj +% 1176 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [310.273 333.395 377.331 344.52] -/A << /S /GoTo /D (descdata) >> +/Rect [376.818 129.347 388.773 140.196] +/A << /S /GoTo /D (table.12) >> >> -% 1168 0 obj +% 1181 0 obj << -/D [1166 0 R /XYZ 149.705 753.953 null] +/D [1179 0 R /XYZ 149.705 753.953 null] >> -% 1165 0 obj +% 268 0 obj << -/Font << /F27 560 0 R /F8 561 0 R /F11 755 0 R /F14 772 0 R /F30 769 0 R /F17 735 0 R >> -/ProcSet [ /PDF /Text ] +/D [1179 0 R /XYZ 150.705 716.092 null] >> -% 1172 0 obj +% 1182 0 obj << -/Type /Page -/Contents 1173 0 R -/Resources 1171 0 R -/MediaBox [0 0 595.276 841.89] -/Parent 1158 0 R -/Annots [ 1169 0 R 1170 0 R ] +/D [1179 0 R /XYZ 290.613 661.837 null] >> -% 1169 0 obj +% 1183 0 obj << -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [162.826 410.238 174.781 419.149] -/A << /S /GoTo /D (table.13) >> +/D [1179 0 R /XYZ 287.475 645.402 null] >> -% 1170 0 obj +% 1184 0 obj << -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [203.009 228.974 214.964 239.822] -/A << /S /GoTo /D (table.13) >> +/D [1179 0 R /XYZ 286.835 628.966 null] >> -% 1174 0 obj +% 1185 0 obj << -/D [1172 0 R /XYZ 98.895 753.953 null] +/D [1179 0 R /XYZ 320.941 449.071 null] >> -% 1171 0 obj +% 1178 0 obj << -/Font << /F8 561 0 R /F27 560 0 R /F11 755 0 R /F30 769 0 R >> +/Font << /F16 582 0 R /F8 585 0 R /F11 797 0 R /F14 814 0 R /F10 813 0 R /F7 812 0 R /F27 584 0 R /F30 811 0 R >> /ProcSet [ /PDF /Text ] >> -% 1177 0 obj +% 1194 0 obj << /Type /Page -/Contents 1178 0 R -/Resources 1176 0 R +/Contents 1195 0 R +/Resources 1193 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1158 0 R -/Annots [ 1175 0 R ] +/Parent 1197 0 R +/Annots [ 1177 0 R 1186 0 R 1187 0 R 1188 0 R 1189 0 R 1190 0 R 1191 0 R 1192 0 R ] >> -% 1175 0 obj +% 1177 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [350.345 657.464 357.319 668.312] -/A << /S /GoTo /D (section.6) >> +/Rect [382.088 655.375 394.043 666.223] +/A << /S /GoTo /D (table.12) >> >> -% 1179 0 obj +% 1186 0 obj << -/D [1177 0 R /XYZ 149.705 753.953 null] +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [368.549 588.68 444.603 599.805] +/A << /S /GoTo /D (vdata) >> >> -% 264 0 obj +% 1187 0 obj << -/D [1177 0 R /XYZ 150.705 716.092 null] +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [326.219 577.002 338.174 587.85] +/A << /S /GoTo /D (table.12) >> >> -% 1176 0 obj +% 1188 0 obj << -/Font << /F16 558 0 R /F8 561 0 R >> -/ProcSet [ /PDF /Text ] +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [259.464 498.352 326.522 509.477] +/A << /S /GoTo /D (descdata) >> >> -% 1185 0 obj +% 1189 0 obj << -/Type /Page -/Contents 1186 0 R -/Resources 1184 0 R -/MediaBox [0 0 595.276 841.89] -/Parent 1158 0 R -/Annots [ 1180 0 R 1181 0 R 1182 0 R ] +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [346.389 461.435 353.363 472.284] +/A << /S /GoTo /D (equation.4.1) >> >> -% 1180 0 obj +% 1190 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [368.549 343.463 444.603 354.588] -/A << /S /GoTo /D (vdata) >> +/Rect [345.393 446.823 352.367 457.672] +/A << /S /GoTo /D (equation.4.2) >> >> -% 1181 0 obj +% 1191 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [325.411 331.785 337.366 342.633] -/A << /S /GoTo /D (table.14) >> +/Rect [345.697 432.212 352.671 443.06] +/A << /S /GoTo /D (equation.4.3) >> >> -% 1182 0 obj +% 1192 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [294.721 264.029 361.779 275.154] -/A << /S /GoTo /D (descdata) >> +/Rect [203.009 190.452 214.964 201.3] +/A << /S /GoTo /D (table.12) >> >> -% 1187 0 obj +% 1196 0 obj << -/D [1185 0 R /XYZ 98.895 753.953 null] +/D [1194 0 R /XYZ 98.895 753.953 null] >> -% 268 0 obj +% 1193 0 obj << -/D [1185 0 R /XYZ 99.895 720.077 null] +/Font << /F27 584 0 R /F8 585 0 R /F11 797 0 R /F30 811 0 R >> +/ProcSet [ /PDF /Text ] >> -% 1188 0 obj +% 1201 0 obj << -/D [1185 0 R /XYZ 270.132 514.036 null] +/Type /Page +/Contents 1202 0 R +/Resources 1200 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1197 0 R +/Annots [ 1198 0 R ] >> -% 1189 0 obj +% 1198 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [432.897 117.392 444.852 128.24] +/A << /S /GoTo /D (table.13) >> +>> +% 1203 0 obj << -/D [1185 0 R /XYZ 99.895 482.745 null] +/D [1201 0 R /XYZ 149.705 753.953 null] >> -% 1190 0 obj +% 272 0 obj << -/D [1185 0 R /XYZ 99.895 484.682 null] +/D [1201 0 R /XYZ 150.705 716.092 null] >> -% 1191 0 obj +% 1204 0 obj << -/D [1185 0 R /XYZ 99.895 472.727 null] +/D [1201 0 R /XYZ 320.941 258.477 null] >> -% 1184 0 obj +% 1200 0 obj << -/Font << /F16 558 0 R /F8 561 0 R /F11 755 0 R /F14 772 0 R /F27 560 0 R /F30 769 0 R >> +/Font << /F16 582 0 R /F8 585 0 R /F11 797 0 R /F14 814 0 R /F13 1171 0 R /F7 812 0 R /F10 813 0 R /F30 811 0 R /F27 584 0 R >> /ProcSet [ /PDF /Text ] >> -% 1195 0 obj +% 1212 0 obj << /Type /Page -/Contents 1196 0 R -/Resources 1194 0 R +/Contents 1213 0 R +/Resources 1211 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1158 0 R -/Annots [ 1183 0 R 1193 0 R ] +/Parent 1197 0 R +/Annots [ 1199 0 R 1205 0 R 1206 0 R 1207 0 R 1208 0 R 1209 0 R 1210 0 R ] >> % 1199 0 obj << -/Producer (GPL Ghostscript 9.22) -/CreationDate (D:20180323100645Z00'00') -/ModDate (D:20180323100645Z00'00') ->> -% 1200 0 obj -<< -/Type /ExtGState -/OPM 1 ->> -% 1201 0 obj -<< -/BaseFont /XYUGDR+Times-Roman -/FontDescriptor 1203 0 R -/Type /Font -/FirstChar 48 -/LastChar 57 -/Widths [ 500 500 500 500 500 500 500 500 500 500] -/Encoding /WinAnsiEncoding -/Subtype /Type1 +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [307.672 655.375 314.646 666.223] +/A << /S /GoTo /D (section.3) >> >> -% 1202 0 obj +% 1205 0 obj << -/BaseFont /XISTAL+Times-Bold -/FontDescriptor 1204 0 R -/Type /Font -/FirstChar 48 -/LastChar 80 -/Widths [ 500 500 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 611] -/Encoding /WinAnsiEncoding -/Subtype /Type1 +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [368.549 586.627 444.603 597.752] +/A << /S /GoTo /D (vdata) >> >> -% 1203 0 obj +% 1206 0 obj << -/Type /FontDescriptor -/FontName /XYUGDR+Times-Roman -/FontBBox [ 0 -14 476 688] -/Flags 65568 -/Ascent 688 -/CapHeight 688 -/Descent -14 -/ItalicAngle 0 -/StemV 71 -/MissingWidth 250 -/CharSet (/eight/five/four/nine/one/seven/six/three/two/zero) -/FontFile3 1205 0 R +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [326.008 574.949 337.963 585.797] +/A << /S /GoTo /D (table.13) >> >> -% 1204 0 obj +% 1207 0 obj << -/Type /FontDescriptor -/FontName /XISTAL+Times-Bold -/FontBBox [ 0 -13 600 688] -/Flags 65568 -/Ascent 688 -/CapHeight 676 -/Descent -13 -/ItalicAngle 0 -/StemV 90 -/MissingWidth 250 -/CharSet (/P/one/zero) -/FontFile3 1206 0 R +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [382.088 494.523 394.043 505.372] +/A << /S /GoTo /D (table.13) >> >> -% 1183 0 obj +% 1208 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [213.636 625.431 225.591 634.343] -/A << /S /GoTo /D (table.14) >> +/Rect [368.549 425.776 444.603 436.901] +/A << /S /GoTo /D (vdata) >> >> -% 1193 0 obj +% 1209 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [457.906 278.167 464.88 290.786] -/A << /S /GoTo /D (figure.7) >> +/Rect [326.219 414.098 338.174 424.946] +/A << /S /GoTo /D (table.13) >> >> -% 1197 0 obj +% 1210 0 obj << -/D [1195 0 R /XYZ 149.705 753.953 null] +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [259.464 333.395 326.522 344.52] +/A << /S /GoTo /D (descdata) >> >> -% 1198 0 obj +% 1214 0 obj << -/D [1195 0 R /XYZ 283.692 317.353 null] +/D [1212 0 R /XYZ 98.895 753.953 null] >> -% 1194 0 obj +% 1211 0 obj << -/Font << /F27 560 0 R /F8 561 0 R /F11 755 0 R /F16 558 0 R /F30 769 0 R >> -/XObject << /Im3 1192 0 R >> +/Font << /F27 584 0 R /F8 585 0 R /F11 797 0 R /F14 814 0 R /F30 811 0 R /F17 777 0 R >> /ProcSet [ /PDF /Text ] >> -% 1208 0 obj +% 1218 0 obj << /Type /Page -/Contents 1209 0 R -/Resources 1207 0 R +/Contents 1219 0 R +/Resources 1217 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1212 0 R +/Parent 1197 0 R +/Annots [ 1215 0 R 1216 0 R ] >> -% 1210 0 obj -<< -/D [1208 0 R /XYZ 98.895 753.953 null] ->> -% 1207 0 obj -<< -/Font << /F46 1211 0 R /F8 561 0 R >> -/ProcSet [ /PDF /Text ] ->> -% 1217 0 obj -<< -/Type /Page -/Contents 1218 0 R -/Resources 1216 0 R -/MediaBox [0 0 595.276 841.89] -/Parent 1212 0 R -/Annots [ 1213 0 R 1214 0 R 1215 0 R ] ->> -% 1213 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [419.358 343.981 495.412 355.106] -/A << /S /GoTo /D (vdata) >> ->> -% 1214 0 obj +% 1215 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [376.221 332.303 388.176 343.151] -/A << /S /GoTo /D (table.15) >> +/Rect [213.636 410.238 225.591 419.149] +/A << /S /GoTo /D (table.13) >> >> -% 1215 0 obj +% 1216 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [345.53 264.991 412.588 276.116] -/A << /S /GoTo /D (descdata) >> +/Rect [253.818 228.974 265.774 239.822] +/A << /S /GoTo /D (table.13) >> >> -% 1219 0 obj +% 1220 0 obj << -/D [1217 0 R /XYZ 149.705 753.953 null] +/D [1218 0 R /XYZ 149.705 753.953 null] >> -% 272 0 obj +% 1217 0 obj << -/D [1217 0 R /XYZ 150.705 720.077 null] +/Font << /F8 585 0 R /F27 584 0 R /F11 797 0 R /F30 811 0 R >> +/ProcSet [ /PDF /Text ] >> -% 1220 0 obj +% 1229 0 obj << -/D [1217 0 R /XYZ 320.941 511.222 null] +/Type /Page +/Contents 1230 0 R +/Resources 1228 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1197 0 R +/Annots [ 1221 0 R 1222 0 R 1223 0 R 1224 0 R 1225 0 R 1226 0 R 1227 0 R ] >> % 1221 0 obj << -/D [1217 0 R /XYZ 150.705 480.819 null] +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [265.833 388.024 341.887 399.149] +/A << /S /GoTo /D (vdata) >> >> % 1222 0 obj << -/D [1217 0 R /XYZ 150.705 482.756 null] +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [225.425 376.346 232.399 387.194] +/A << /S /GoTo /D (table.2) >> >> % 1223 0 obj << -/D [1217 0 R /XYZ 150.705 470.801 null] +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [265.833 305.353 341.887 316.478] +/A << /S /GoTo /D (vdata) >> >> -% 1216 0 obj +% 1224 0 obj << -/Font << /F16 558 0 R /F8 561 0 R /F11 755 0 R /F14 772 0 R /F10 771 0 R /F27 560 0 R /F30 769 0 R >> -/ProcSet [ /PDF /Text ] +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [225.425 293.674 232.399 304.523] +/A << /S /GoTo /D (table.2) >> >> -% 1229 0 obj +% 1225 0 obj << -/Type /Page -/Contents 1230 0 R -/Resources 1228 0 R -/MediaBox [0 0 595.276 841.89] -/Parent 1212 0 R -/Annots [ 1224 0 R 1226 0 R 1227 0 R ] +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [259.464 222.682 326.522 233.807] +/A << /S /GoTo /D (descdata) >> >> -% 1224 0 obj +% 1226 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [203.009 555.748 214.964 566.597] -/A << /S /GoTo /D (table.15) >> +/Rect [265.833 129.071 341.887 140.196] +/A << /S /GoTo /D (vdata) >> >> -% 1226 0 obj +% 1227 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [407.019 326.22 413.993 338.84] -/A << /S /GoTo /D (figure.8) >> +/Rect [245.572 117.392 257.527 128.24] +/A << /S /GoTo /D (table.14) >> +>> +% 1231 0 obj +<< +/D [1229 0 R /XYZ 98.895 753.953 null] >> endstream endobj -1239 0 obj +1236 0 obj << -/Length 3619 +/Length 625 >> stream 0 g 0 G 0 g 0 G 0 g 0 G -0 g 0 G -0 g 0 G 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 +/F27 9.9626 Tf 150.705 706.129 Td [(info)]TJ 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 -/F8 9.9626 Tf 95.458 -98.979 Td [(58)]TJ + 141.968 -567.87 Td [(54)]TJ 0 g 0 G ET endstream endobj -1243 0 obj +1247 0 obj << -/Length 325 +/Length 7432 >> stream 0 g 0 G 0 g 0 G +BT +/F16 11.9552 Tf 99.895 706.129 Td [(4.15)-1125(psb)]TJ +ET +q +1 0 0 1 158.311 706.328 cm +[]0 d 0 J 0.398 w 0 0 m 4.035 0 l S +Q +BT +/F16 11.9552 Tf 162.346 706.129 Td [(gediv)-375(|)-375(En)31(trywise)-375(Division)]TJ/F8 9.9626 Tf -62.451 -18.389 Td [(This)-333(function)-334(computes)-333(the)-333(en)27(try)1(w)-1(i)1(s)-1(e)-333(division)-333(b)-28(et)28(w)28(een)-334(t)28(w)28(o)-334(v)28(ectors)]TJ/F11 9.9626 Tf 295.614 0 Td [(x)]TJ/F8 9.9626 Tf 9.015 0 Td [(and)]TJ/F11 9.9626 Tf 19.372 0 Td [(y)]TJ -182.908 -21.715 Td [(=)]TJ/F14 9.9626 Tf 7.749 0 Td [(\040)]TJ/F11 9.9626 Tf 12.73 0 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(\050)]TJ/F11 9.9626 Tf 3.874 0 Td [(i)]TJ/F8 9.9626 Tf 3.432 0 Td [(\051)]TJ/F11 9.9626 Tf 3.875 0 Td [(=y)]TJ/F8 9.9626 Tf 10.223 0 Td [(\050)]TJ/F11 9.9626 Tf 3.874 0 Td [(i)]TJ/F8 9.9626 Tf 3.433 0 Td [(\051)]TJ/F11 9.9626 Tf 3.874 0 Td [(:)]TJ 0 g 0 G 0 g 0 G +/F30 9.9626 Tf -199.851 -21.715 Td [(psb_gediv\050x,)-525(y,)-525(desc_a,)-525(info,)-525([flag\051)]TJ 0 g 0 G -1 0 0 1 104.053 292.444 cm +0 g 0 G +0 g 0 G +ET q -.65 0 0 .65 0 0 cm +1 0 0 1 183.665 620.263 cm +[]0 d 0 J 0.398 w 0 0 m 176.173 0 l S +Q +BT +/F11 9.9626 Tf 189.642 611.695 Td [(=)]TJ/F8 9.9626 Tf 4.982 0 Td [(,)]TJ/F11 9.9626 Tf 6.088 0 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(,)]TJ/F11 9.9626 Tf 6.088 0 Td [(y)]TJ/F27 9.9626 Tf 97.558 0 Td [(F)96(unction)]TJ +ET q -1 0 0 1 0 0 cm -/Im4 Do +1 0 0 1 183.665 607.909 cm +[]0 d 0 J 0.398 w 0 0 m 176.173 0 l S +Q +BT +/F8 9.9626 Tf 189.642 599.341 Td [(Short)-333(Precision)-334(Real)-3102(psb)]TJ +ET +q +1 0 0 1 325.649 599.54 cm +[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +Q +BT +/F8 9.9626 Tf 328.638 599.341 Td [(gediv)]TJ -138.996 -11.955 Td [(Long)-333(Precision)-334(Real)-3314(psb)]TJ +ET +q +1 0 0 1 325.649 587.585 cm +[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +Q +BT +/F8 9.9626 Tf 328.638 587.386 Td [(gediv)]TJ -138.996 -11.955 Td [(Short)-333(Precision)-334(Complex)-1200(psb)]TJ +ET +q +1 0 0 1 325.649 575.63 cm +[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +Q +BT +/F8 9.9626 Tf 328.638 575.431 Td [(gediv)]TJ -138.996 -11.956 Td [(Long)-333(Precision)-334(Complex)-1411(psb)]TJ +ET +q +1 0 0 1 325.649 563.675 cm +[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +Q +BT +/F8 9.9626 Tf 328.638 563.475 Td [(gediv)]TJ +ET +q +1 0 0 1 183.665 559.69 cm +[]0 d 0 J 0.398 w 0 0 m 176.173 0 l S +Q +0 g 0 G +BT +/F8 9.9626 Tf 225.577 531.65 Td [(T)83(able)-333(15:)-444(Data)-334(t)28(yp)-28(es)]TJ +0 g 0 G +0 g 0 G +0 g 0 G +/F27 9.9626 Tf -125.682 -33.312 Td [(T)32(yp)-32(e:)]TJ +0 g 0 G +/F8 9.9626 Tf 33.797 0 Td [(Sync)28(hronous.)]TJ +0 g 0 G +/F27 9.9626 Tf -33.797 -19.844 Td [(On)-383(En)32(try)]TJ +0 g 0 G +0 g 0 G + 0 -19.844 Td [(x)]TJ +0 g 0 G +/F8 9.9626 Tf 11.028 0 Td [(the)-333(lo)-28(cal)-333(p)-28(ortion)-333(of)-334(global)-333(dense)-333(v)27(ector)]TJ/F11 9.9626 Tf 173.627 0 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(.)]TJ -165.442 -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)-424(as:)-628(an)-424(ob)-56(ject)-424(of)-425(t)28(yp)-28(e)]TJ +0 0 1 rg 0 0 1 RG +/F30 9.9626 Tf 142.027 0 Td [(psb)]TJ +ET +q +1 0 0 1 283.148 411.028 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +Q +BT +/F30 9.9626 Tf 286.286 410.829 Td [(T)]TJ +ET +q +1 0 0 1 292.144 411.028 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q +BT +/F30 9.9626 Tf 295.282 410.829 Td [(vect)]TJ +ET +q +1 0 0 1 316.831 411.028 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q +BT +/F30 9.9626 Tf 319.969 410.829 Td [(type)]TJ 0 g 0 G -1 0 0 1 -104.053 -292.444 cm +/F8 9.9626 Tf 25.152 0 Td [(con)28(taining)-425(n)28(um)28(b)-28(ers)-425(of)]TJ -220.319 -11.955 Td [(t)28(yp)-28(e)-333(sp)-28(eci\014ed)-333(in)-334(T)84(able)]TJ +0 0 1 rg 0 0 1 RG + [-334(2)]TJ +0 g 0 G + [(.)]TJ +0 g 0 G +/F27 9.9626 Tf -24.907 -19.844 Td [(y)]TJ +0 g 0 G +/F8 9.9626 Tf 11.028 0 Td [(the)-333(lo)-28(cal)-333(p)-28(ortion)-333(of)-334(global)-333(dense)-333(v)27(ector)]TJ/F11 9.9626 Tf 173.627 0 Td [(y)]TJ/F8 9.9626 Tf 5.242 0 Td [(.)]TJ -164.99 -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)-424(as:)-628(an)-424(ob)-56(ject)-424(of)-425(t)28(yp)-28(e)]TJ +0 0 1 rg 0 0 1 RG +/F30 9.9626 Tf 142.027 0 Td [(psb)]TJ +ET +q +1 0 0 1 283.148 331.408 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +Q BT -/F8 9.9626 Tf 189.268 260.564 Td [(Figure)-333(8:)-445(Sample)-333(discretization)-333(mes)-1(h)1(.)]TJ +/F30 9.9626 Tf 286.286 331.209 Td [(T)]TJ +ET +q +1 0 0 1 292.144 331.408 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +Q +BT +/F30 9.9626 Tf 295.282 331.209 Td [(vect)]TJ +ET +q +1 0 0 1 316.831 331.408 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +Q +BT +/F30 9.9626 Tf 319.969 331.209 Td [(type)]TJ +0 g 0 G +/F8 9.9626 Tf 25.152 0 Td [(con)28(taining)-425(n)28(um)28(b)-28(ers)-425(of)]TJ -220.319 -11.955 Td [(t)28(yp)-28(e)-333(sp)-28(eci\014ed)-333(in)-334(T)84(able)]TJ +0 0 1 rg 0 0 1 RG + [-334(2)]TJ +0 g 0 G + [(.)]TJ +0 g 0 G +/F27 9.9626 Tf -24.907 -19.844 Td [(desc)]TJ +ET +q +1 0 0 1 121.81 299.609 cm +[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S +Q +BT +/F27 9.9626 Tf 125.247 299.41 Td [(a)]TJ +0 g 0 G +/F8 9.9626 Tf 10.551 0 Td [(con)28(tains)-334(d)1(ata)-334(structures)-333(for)-333(com)-1(m)28(unications.)]TJ -10.996 -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(an)-333(ob)-55(ject)-334(of)-333(t)28(yp)-28(e)]TJ +0 0 1 rg 0 0 1 RG +/F30 9.9626 Tf 135.658 0 Td [(psb)]TJ +ET +q +1 0 0 1 276.779 251.788 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +Q +BT +/F30 9.9626 Tf 279.917 251.589 Td [(desc)]TJ +ET +q +1 0 0 1 301.466 251.788 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +Q +BT +/F30 9.9626 Tf 304.604 251.589 Td [(type)]TJ +0 g 0 G +/F8 9.9626 Tf 20.922 0 Td [(.)]TJ +0 g 0 G +/F27 9.9626 Tf -225.631 -19.844 Td [(\015ag)]TJ 0 g 0 G +/F8 9.9626 Tf 22.645 0 Td [(c)28(hec)28(k)-352(if)-352(an)28(y)-352(of)-351(the)]TJ/F11 9.9626 Tf 84.21 0 Td [(y)]TJ/F8 9.9626 Tf 5.242 0 Td [(\050)]TJ/F11 9.9626 Tf 3.875 0 Td [(i)]TJ/F8 9.9626 Tf 3.432 0 Td [(\051)-308(=)-309(0,)-356(and)-351(in)-352(case)-352(returns)-351(error)-352(halting)-351(the)-352(compu-)]TJ -94.497 -11.955 Td [(tation.)]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.956 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(optional)]TJ/F8 9.9626 Tf 43.898 0 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 -116.542 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(th)1(e)-334(logical)-333(v)55(alue)]TJ/F30 9.9626 Tf 131.784 0 Td [(flag=.true.)]TJ 0 g 0 G +/F27 9.9626 Tf -156.691 -19.844 Td [(On)-383(Return)]TJ 0 g 0 G - 77.502 -170.126 Td [(59)]TJ +0 g 0 G + 0 -19.844 Td [(x)]TJ +0 g 0 G +/F8 9.9626 Tf 11.028 0 Td [(the)-333(lo)-28(cal)-333(p)-28(ortion)-333(of)-334(result)-333(submatrix)]TJ/F11 9.9626 Tf 162.364 0 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(.)]TJ -154.179 -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 +0 g 0 G +/F8 9.9626 Tf 112.357 -29.888 Td [(55)]TJ 0 g 0 G ET endstream endobj -1225 0 obj -<< -/Type /XObject -/Subtype /Form -/FormType 1 -/PTEX.FileName (./figures/try8x8_ov.pdf) -/PTEX.PageNumber 1 -/PTEX.InfoDict 1245 0 R -/BBox [0 0 516 439] -/Resources << -/ProcSet [ /PDF /Text ] -/ExtGState << -/R7 1246 0 R ->>/Font << /R8 1247 0 R/R10 1248 0 R>> ->> -/Length 3413 -/Filter /FlateDecode ->> -stream -xœ…›Aä¸ …ïõ+ê8s˜^Ë’-é SvÒ·Ážj‘éÃ&‡üýØä{|ÔI°‡¦(ÚõmÑ|%ZšßŸÛ[yn÷øûúxüôµ?û×£½Ï?lîùõO³ögïíùaV+íùÇ_Í.µÐ=äÝ¥Mù÷:éß·šü³†ÿèòןZKúضÅÇÖŸ[J'¥™Ä´8ÍžùºMTÕmÂúÈiÝ&®ÀëvÉ ö™@î%o3ï‘o{æ ˆlv ß#"›È6²Ù|ˆlvÉD¶"ï×Õ@6“È6²Ù3_d·‰l# »Md9²ÛD¶Ý.È>È}òmò= òmÏ|‘Íä{Dd³ÙF@6;ï‘Í.€È6CäZ£âÌ$² €löÌÙm"ÛÈnÙGŽì6‘md·K²Ïòˆò33‡ÊÏì™/ òÈåg#"\~>òÈåg#"\~N³ [‹ò3“È6²Ù3_d·‰l# »Md9²ÛD¶Ý.È>ßòãÐœqhÌtÌÔ3͇ÆL9óÌ.‡æL€CÚ ½·Ðf4f :f š37´fj‹ƒŽƒæL9óÌ.ƒŽ™.ƒÚ ]f h³33Í™Z3µÅŒAÇŒAs¦œyfAÇL€A Í › -ÑlA7bÌ8tS!j¦¶˜qè– ‘3åÌ3»º¥BäÄ– z¨G.á*¹‡jpäªÀ‘ p¨þF.¿¡ê©ø†jo,¥—*o)¼TwKÙ¥ª[Š.ÕÜRr©â–‚Kõ–Ë-U[rCïÌÜŽöVŸç8ßúV]¾c­úz£¿íü½?ZÄ”à+ÄÌ£¾õgD_œßå6^¸û=t‹–×ãûªjn–Œf¿9±¼š ñ…ÖÑêY2šý&Å -\h6´Oõø`Ih®]¦³g4û¡ŒŽ@h6¼!PN¶õ­à»7#¡ÝCèæwù¾*”›uA«H… íšÇMGÛšÑì×?ú¡ÙÐ>ÕãƒEhÐ!3ÇÌh¶$‰¾Kh6¼!P­Ì¹ müî·º ÝC˜DÃ]¾¯jcf]ÊÀ–QÑ)&´Š2@üAZ[ÊÀÖYÑM -͆e€»|_ôŬ롾oÆ‹;2Ñ—"è¨F:çš÷#}]Ëè‰/~.%0QŒ&Gª@_©v&a}þùøwQU=þ}¥j”ž²jþ.ªÿ²®3Ûõ©ìûu¹Ë–:Ù×ÕÉîý 2çË=ÄÇÒïÅe ¥†ñ·p¡?·TòþæwžÄÇ•šÛ%ñ™v©>÷ûÊ®ôÈm—)Æßê¥.=øÜoŸ‹øàÉ|X”Ù"È• -×›€éíAð¹ßÖCˆù\«ÈW˜hùÌï ]|Ûš_®¿Ü®™¯2/7ò™ß×k5ø Ln»`1þ` p¼¿ùís<‰K-³]³p½I™ÞØŸûm•ƒøX¦½¸d›™o‹<¸Ê‘ÏüÎ0ƒ/ÉܲÜ2»æú0=Ó«&ñUÖãcEF¾–ëÃMo£‚ÏýΠúHZ—×XfB¿p}gZz®ŽÎâˆh®ÃGCüdf®ÉÒˆh²äÒH•Ñ´=2²FÔEOh5ÕE_ÐZèSYd…UÑZR½Ôçº ë§T/^†]·=O©Þ©UŸ:á»bÏâMÝüŸg÷7¿3x|ð$>ªžÛ%ñ¹ºÅk¼àsÿ©¥Ÿš^ðQÅoê/ú‚Ïýö¹ˆžÌÕ³¦*æ×»ºÅ Èàsÿ©õŸú[òAÅÀW˜ªøÌï ]|Ûš_ªžÛ5óUæ…ª>óŸZª•U ñó@ÕÃýÍoŸ‹øàI|T=³¡b~½«[¼ô >÷ŸZ ªk}±ƒ™o‹<@õÀg~g˜Á—U/µŸn×\®nñ¶Z|•õÁøS+3ع>\Ýâ…vð¹ßTYõÔqºIóë;ÓÒsutGDŸ±@33tÌã'“0smL–FD“%—FªŒ¾ í‘‘¥0¢.zB«©.ú‚ÖBŸÊ"+¬ŠžÐ¤zË{¿ª^t¯[¨žÞ§¿û¾…êùÛ@Ä­Ñ`[–«v ,«¼¿ù«º]ñ$>¾È«jHq½©›v‚ÏýEkC½TŒñ·ºi¯ øÜ_ÕòŠ'óá]UWŠëMÝ´‡|î/Zê}ù\ÅÈW˜¨ùÌ_Õ÷Š'ññõ\UkJ¾Ê¼@õÈgþ¢µ¡^í*Æøƒy€êñþæ¯j~Å“øø&®ª?Åõ¦nÚ7 ->÷­ õïÅ7z3óm‘W=ò™¿ªOækª¨ù*óÕ#_e}0¾h;ׇ©›öÄ‚ÏýUm°xßPyPÇp}gZz®ŽÎâˆè«43©cˆŸLÂ̵1Y][V½üέ¦†5½xò–Ï]Oh5ÕE_ÐZèSYd…UÑZR½´â6Tl4©^lÉ]·íMª×µ6ÔNÉ‹»&ž%Ä›ºõ)ÕÃýÍ?Ô‹'ñQõ†:V\ïꛉÁ¿Ö†ÚU ñ¦n±Ý|îêˆÅ“ù zC+®wu‹mÐàƒ_kCí*¾Â\Ýb[=øÜ?Ô‹'ñ •Gè˜_ß™–ž«£³8"ºÇ*ÍÌÐ1ŸLÂ̵1Y=Æ¢zÚð¬÷mŒ,…uÑZMuÑ´úTYaUô„&Õ[ö…›:ÖZG¨žvõ_ºP=ß-Fü®5lËãouÃYË*ïoþ¦ŽX<‰½M+®7uÓy„àsÿ®µ¡6‰Ácü­n:±|îoêˆÅ“ù°§ÛÔ±âzS7¤>÷ïZj?˜|®bä+ÌT|æoêˆÅ“ø¸}ÛÔ±’¯2/P=ò™×ÚP[¿àƒŠ1þ` z¼¿ù›:bñ$>îÔ6u¬¸ÞÔM§W‚Ïý»Ö†Úå}qÇwf¾-òàªG>ó7uÄâÉ|Mõ#_e^ z䫬ÆïZ£ÁÎõaꦓ9Áçþ¦ŽX<‰o¨<¨c¸¾3-=WGgqDô«43©cˆŸLÂ̵1YÝö¬zy?¶¥ž5½xò–Ï]Oh5ÕE_ÐZèSYd…UÑZR½tNÆm¨ØÔn†]·ÚÍðÓ3ˆïZ£Áö, ífณguj7 ?ÏUõÒ‘Ø%ñ¹º ífàóÜßµ6Ô¡ðQņv3tè)øÜ?Õ‹'óAõ¦:V\ïê6´›Ïs×ÚPçcÈÚÍÐq-ñ™ª#Oâ£êMu¬ä«Ì Uoh7Ç_jðQõºÖnŒ?˜ªÞÔn†.â繪^:Óâ6Tlj7Cà‚Ïý]kCzyñÌÌ|[äª7µ›†|YõÒñ·k®W·¡Ý òUÖã»Öh°s}¸º ífðþõÁøy®ª§“*nRÇfìfÄàë,Žˆî±J33tlÄnFI ¶ÉÒˆèy.ª§Ó)žõ¾ í‘‘¥0¢.zB«©.ú‚ÖBŸÊ"+¬ŠžÐ¤zíÐn†Û®b­i7Cg _Vµ›á§ _µFƒmYbü­n81iYåýͨ#OâãAÀC+®7uÓ©ÈàsÕÚP‡Ácü­n:7|î?Ô‹'óáÌß¡Ž×›ºé®?Œ÷Æå‡ñ¶ŽùÃxü0î÷øúz~ÙëDõ¹žDí‡E]Ó×…aXŽí!Í>øïŸ×düoõ–‘¿Ö«\¯ç­ÜýÌ•çë»ýô—w-ÿ/Iÿõv×ï!o'ÈŸÿ`[G. -endstream -endobj -1251 0 obj +1253 0 obj << -/Filter /FlateDecode -/Subtype /Type1C -/Length 13073 ->> -stream -xœºwxWö?laÏŒ˜ r‘G¶5h†ôB'ZBïL·1`pø˶$K–eK²%«Yr•-˽w Lï%„ ”$$$¤m²›Æî{½ûýÈ–ßû<ïûýãõ<~4£¹ºsçÜs>çs -ÏÇo”dz%!)&cÒ攤}ÉÞ뉚ç7Ê#ñ-VyRŸ/Å<ÌŸâ1¾ÅcüNŽc~G¿8ŽfüÇÑA>~<Þ¬5›íonݼý­ &.II•§'ÄÅKÇOŸ:mÆøhùøÝ¿4&#!.yüëÜIVÌ¡”Ô¤˜déú„¤èÌŒñ/ž<~sL\æ¡}éÿúøïDÿÿ¦æùsïæ³Ý§•À‹åý<*Åw¬ïjßM¾}~´_¤_¬_;ÆÃæbë±d,ëÆð`|<þ -¾—ãýø)üþ þÿ'‘G˜;?€Ì·ò«ø®ÑüÑ£•£¿'7ÇÉÈûà=°,Ù ¨­c|Æ?æ1³ÆèÆÜ;nìkcç]4vÍØð±ÛÆÆ-ûpì+ˆ¤ -ä‚|ApQð‘àgÁßÿôçû ü—û¯ößà¿Í¿Ø¿Ä¿É¿Ó¿×ÿI€0`I@x€2   0 $àTÀÕ€Û¾ ôd_ |#p]`Z`f 5°.ðbàõÀ? šô~Ðò ¸ Â ª Ú æ Ž ž þ ÓA烾 ú6è7¡¿P('|S8[ø¾p±p¥p¿0Gh– -Â&a‡°GxEø¡ð¡ð ! ö ‡³Á¯O^¼*8|=øqð“à?ÿüwʇR¯Ss¨ÔJjµ‹ÚO¤”TUBÕPõT'u’ºI=¦þLý&%"Eþ¢0ÑK¢·DSE³DóEËD«EE[D¢ƒ"¹¨HdÙEu¢ÑIÑ%Ñ ÑmÑ}ÑW¢ŸE#!£CD!lÈÄi!³C„, Y²1$2$>D’b ) q†4„´†t‡9r!äÇ!C~ù-…ú…Ž„ -Sðˆ—¢ÒÑ+F~*þŠÅhÃb8™øÂP©®œÃo€J)®ž«RÏ2ðÑd˜Ž·›¬ÖVÒ8äܪêéü&¼¾‚´Êð»úŠ\óþÈÆåàY“R)Ôz%-ÕV ±p;qFߦldz3÷Ön¤'-ÚµVZ›ÝØXç®·mF;k(5:ìâ–ÎúÃ'[’·2ë 4i½<o ?3[•pP à?žÏ¦P8‡^AQ“:§œÛÌ®½ôôÀ×4Ü ÇAFý%ùÉ–ËìGkgõN ãüŽ—'ö²çvuLB@¼Q½8©êÍt{Ð`‚;èã'Põ‹p¢'œÛÙ,\8.³0O­ 5 -«CÁ -»ªbcé}{ÉÙøCò}ÛÅó†Â¡ßFæÎ3û›bø¥¹¶¬tñª»O[w -v2R¼Åcõ¸pm­©¢ÊI—×jk¹‰”ýƒ4äýè÷Ï·Ü@¡wØ—/î:/>¤ïÚ±#²¸¦#±*­z#§ÈZ<{)2mbиï߀A0èÇgœv…Nù³¹)Ô—' £V.<Ûx8‹M9“sûcñŸŽ_»Ã€%dMù$ p‰`¼ßiÉ©ìÃnâØp}E}²ñÐ*ņÕêœ]E|%<à$vÙò*Œ'ùPNü°ç¢݇kV0­y»,!o»2LAXìp¦¤µT¹‹E&¸1/wg@žïó7j©KvYr7Š†%¡PØtîÔw⣹}imÌ`̬æÉ4j“á÷ -ÊòM‹É|ÍB_Ûk‰ù6u…ñ.î$.˜a>ºŠÁ™øH„ç ÕZî8 /í´3k_œŒÙ¯›`àƒB(Áòð½¾HGë4f[ëJmô{›·/ ïÜÿe{é Ö“]“qH¼'1eÇòøþ_¥LšZ‰—Ù­æ -èår½ÞÄ€¸¶ÊÑif¬eŦr¶uɈaÎh~F/Á´%-&ŒïäçO-äÖy¹–˜nÎ-7>àÃm|f]ýº¹þ´5 tyÆSŽÊs9ÝáP¬aÑ:bòðÖÏÏn>y„9r²öÚc1$bžìLÏÎN—•åÔg3-%%¿"£äÐAñÛ›–ÎKÉ(¯U3y®ÂÆa1Œ!Ú9³®b<ᵈžÿ|yzˆa¸KÇ#_Þ›†¨BþJ|¾¹Àbìå{’óÝÊʇV> p$xý KÀaš‡]ÃhÊc*IŸ—¥fTé©Yt|J÷QÖJ˜® õÃу|p¯z (E ÑgªÎ1ǣݨ.$¾v8Ošä$:@§èó³I˜U“ƒÇ*+ûŠX¸º0W"Ñ’8Ó% ß×£{žM½òNÜÂùì’eû'¼!Füþé0K?yÿ ýëÓ¾»wÙO>éÿî™øYì·‹î2÷Në{‰F?ŽQp œÈ[`8œˆ&¢-h3š„&£ o½ßys³òøÇ߈A¶d“Äl3›îJÀR@yëÈ{ØHðwäEÒ…äĽjU!wßš[a¼Ç÷8ÎœG¨SÔ#¿×ÁùØÈU\‡æcxäÕÕ@ÂÌ?7R„gækféù2àù.¥’Æ'¤"ŸB>*Ã=K=Åœ# D6Z€5ã5¿ô¶A‡iøȪ‘¿bJÏU¢.ÅÄ%ÊZ5 '¿ Š7Kµ 9#k½z·¤iÎ’?ý×JVP@ÂQ*éÎldžΟ:¶…5%P=íIqqÉÉ1ñÉm}½ím½,ðµ‹`®Ï6í³¨Ë}ap-Ç£ V½Eo) -sh,:½8?_§fdJ˜ìÄ÷XÕî;&Ám¡m-0úµTß0„9Ñ^1`,/ÌåÆæªr"˜g6Qh> NÎ߬ K*ÀrSe©©Œî.Í`G²㶢¢¥y|ð¤ì?¯S-vçVpýûv×3†Õ 5ŠRÂU™Ÿ›_˜¯Éc9 ~ K{Š›¾µ•ž²ð]5([áÂOÙòÍSùÓS _ÂòË eâªrG-Sê?fêVôï…£( -Cs±]’e tFÔÈñ<­Ía·Øí¥, €Ó0Á{¸ø©ËyÎʯEÛdD±\—#Ž]„F½ŠøLŒÂoW:/3.$“—+•ËX•E¼ -ù‹à¨>qM¹­Çë3¸ß+¬U^˜W“qzE…²"‡;”Õ™¡h5Ê[>#!-Â&‡%."ÁœWâ;í'®3P7`°$Wµ„@Í"A éYå¦à›«Œ—ÚhDM}Û]±».†­N­Tv§.FãCûð ?–ÓӠЋÙê“}lNcnÅ¡z~âªmkyÔ1½gÅÂiE{:“ÕI¥^R_üHüÉkwN¸yó&P¯áPˆrX_•ï -;žÓ¸‹FÄd4½…‚ïLûí“‹=wŽ°%1Žl§”¯(/Ï·Ó›Ùbg¿Äz ­¢À ¡÷'÷}¢`g¸(Ä ¦wÄ -GCvð‹Û” n¶JêH¯{Ÿ/°pÈ#'nÛ2¿#F‚BgEç*Òiu¾µJÆVeçYtb¦<5®Szúèáê¶6¶¾¾´²ó\í¡B>éï¼næ»P†œ8Y©•j‹‹óÓÙ‚L$B½ˆ ˜ª9¿¥R\ç*ëg*]8(îó|ÙÇûýWÎyjìãܳ® ×Ø.÷=ýIüMòÃðóÌG+¯IhÔ Ãif‰q±Z½Pχ›=7¨Ž2Ç‘¯nä$ 3·ÎD>bDFÏšÉ$ïؤžAïW—v²àeÌÕÒñùåÇYÏ BoŽÌIÈ[¥ãôßa+.¥ûJ5Ñ,šJtƤ–ï!Y ½Œ‚ïÍ€¾úÝ'ºÙ5„µ¾qC®PZ­Z“Çd+Ò4Éô¬­ŸrêwòÞýsÑÛXÐË"ŸXJ²±E<ØÑrübûÁi ŸŠØA[5š™ãÀëœj#[ W¨™ÍsößÀrk5eâ²J{ c¯F‘Üc…&㧈:¶8tÅK[f¨Õ1ú0™Ëskòˆì¼’ -‡Ùæîd?„¼[hV!/Qæ‹só´™L$n•÷óQn?§à\ü’ÑfXÆwA7-ÎJ 7ñÑ\h†“ðßÌéåÓkL¡ø66b”ãÀEfå¼M‚zYŸÝn2•0à0i+.6ß•Õ¼Ò2¥`íО«Cƒug®2 Ø wzh7ÏC<ŸF©q”7rdÿ¤<Í*gIiµj"NZÕ`·7–5±GžaP÷¿U´æ(ŲÜ8&G;\¹xTZÛ×qì0ÔÏ0ÿo(wÉvÎÒ;dÄ]™Æ´ˆþã€v™ -œ ‚‰€„ösÙdÜ´£$ÃÂÔêË:«Þ¦·…™óšR½5,¹ùP»Ñ¯Sd»t´žûËmÚßÇv¨Éj:X¨ Õi±ùoEoÊë,E%6³Éfe._:Ü÷ñU¾nõì¦ô–u1¹á^U±™0³ÓÉ¡eC©b/;âO,(JÏËf4:UŠVjìu -¶A®*Í¡¥rEfâ€ôüÐ᪦¶·³þÖ#1ðúó9®ŒDKJÕBZðݧr -0ñ6š{(Û¨ObáJâvµóÇÄ/Q¶–Z³›þÓ5§¯]?-+ÇRÏÑ$‰0à+¯fªkP–¢¯”ü!0LÖe¶€µš`r'$zqÝY{ÖÌpû'€ob.YÁdNmÞÐNÅä¨ÔRZ•]R*g3*0ḊŒŒ’LZ81E"×Q^íl„8YUØD_€A¸ŽZ³™žÎ!GºpH­ýø-ñæ¾BQè£7ž;Ý2Üͺ+Û\øè £n:ºûOѧÛcVYX #Éò³¸€&l©Äó澞7á= -%kÕ²}FnÄäPæ"ä&lŸY]{] “› (B°kíj¥Xž§KàF÷)Æ^k«)7fÖ§gdffhl -»Œqï°flÇ™”Ö}5|‡LfÓÐR…<-Å©l«(³”6²Îk¤gËÒ3Ü\ çv76f»¥,'®‹›/yBÁθ¸ÕJ¶ ÷"o‡»p-d%ðÊC_xÆRÓ Ç„8Â+WÀlÎMí´èKßñŸ¶Õš†9ò-Z­¸@«W3r˜ü‡·çvã8ÙÓØÐÝ™Y«Õ:Æ 7é]‰£«¥ç|? èrg¡ÖÉ6äa O¢×/Ý>•Ñµa½DÅgHÀšè̃\¤q{óO?ß¾ú»›‘Y°÷Ó#¢WÒ+wœºÕæ¨kè`UmÚº½¶¢Î-­ŒOÏÔçƱ€* ÷ªc8n·Þ8Gº$—蠟-\ŸT#oiuÖtX‹íÆÖXŽ•]憚£tcmÊÎÚsl‡¤bÃÚ™qàØÊd —,$#¬Û$î…Á’Ø­±¬@AÂK25Æ,–î*ñYYk|¼,e[®e¯9‡D?cŽ%TbZZbbsZgGssggZó!?RÝÙö6ºZ[/óÑßÏP¦Ø’Øò8¾‰“ŒQ,_›40|¥¥Žb>?G} òÞS¨æpáþk\¸oj·XZM|8îÿ;ÞXÇ áÛä2 Øÿ²`a„Ïÿ+^íÙå–­¦Õ3½xSDÂÃ.BjÂÀú=Êìýâ §£ïß?5xýXVëò“LêZêpjUö!ñA©4>:µýDWEC ö;vQI8Q”$p8AÀ©$Тä‹ðz<8`k¦…Ÿ'Àóhøµ–GâhªÅvÁ•Ónsž£K)Dã†+°!øµμ|»–.*4 -ÙW·b ]r‚$²Hà,kV:Ó‰£SS£åyÖêL¦J–gË£³•9Y‰íò³Ð÷óKàhGMC«øDdïúuRWÄ3Mrl¨Ã]ÙK÷ÔÉ’bÓ2—IYAÖ{$ðØŸ_šºYgÕš9Ÿ09R+y:bÇ•ú‹¤>³µ½¾¾­MZŸÌ -ŽŸmâ~Þ™>•‰yä‰&n¶¨Ú™el}4½+*}ã&|$™z#Â( -½‹fr1Åø.šwrÇl8 î€;¸«¹h+§¦(ÍE³Ñv´ÎD³¹Øb7à]¸FqCf¡(nH#ùÂ"ÏKn)¢ìƒáÀ¶†¹(¸ͨ5X¿èêøÒÆi{TÔÖð£{€'ŽZž Ñ/:dW…–Y1³½Ää Ûì¹›Yt÷ü‘}íõdžÅO\E~±)ºœh¦@ª)Ê£³4¥µEly¿Ây¸Â!øµ›÷ø¬{æ úȯŀø¸ºj R%ß ³ŸI5è…h2Ujdb@Í—€ç¡T½;UŸ¶ÉÌŽ¼CÌÒ¦eæiJZf(3·<ô†+ ™TÊJJe^äljm¥¦†®sV7ÝÙ2Á¦´]qlRt^¬n<%¯H†<¿æµB.Öžü憓Ȃ‰g?µ"!¯pQ÷†å k·p¶ºø=¯Ãñ°ÙeÕÁ , O)Ì÷æ1ŒÅµûY×e€j¿Ð{üÞÉh4#ÜFíZ¸$rso;#ÈV$drŽ&e;yf(± $A¡¤·JHPÉÙû/`äµ›ž¸‘¸U„ÀE,Êqâ. øJ˜è$¶Z5¥gÅžŸ8v•oЩuaà Ù~¿Žˆ»rk22reà°„ pR|}ÛÑ÷£ÔR)“%ÓÈrv7©B‡ëÁMÞ7¤'&Q#q€bþwâ‘@?’{0@‰=ŸöƒÊÒÊ7HçQgH¸·…Û®ó Ñw–Qk¡ñ:!ym•'η - Fì¬Á)[+nÉcÑ–G¨Ç>?ö)Øõ˜ÅNC–Èi -õ!:+ËVª`OL—Û£èÝß°ÛL@'LGÜ?wze;üHhG‰ˆÐFÜxûÅØpvˆ®¯(Hu±àÊì"œ(rÿÜé†3(OI.I§wïÎ8Â&íÕ(|‡f‘¦øœ|N¹Æ_CZüþ®¼ùO%R¼Ø -¼;ʪaêÖÆÂúá‰Nð{±Ûóí0–<ó…ïŠ8\â|”ÃÏQ_e®§¿¼°iæ»Û¶Ì“ ™X/Ä2£RÉ PQ¡ÆMyTPk?ôÝ9nÐüîWHóBÕ‚—Ƹ°ß®ÊÌ/L1†¡±ø“/±«à)Ïï%9áÎlim¨oÍ#SY çTLZÎ@òbŽ[N—,žÈEøÇ@wQuÑ`_ëvë+èúj¸_1pø}¡çàŽˆ¸ƒ;ØD€N่Ūq×ý–¦|¹|ÉÜ-áÛoßgRiJ2p‰VCq¯³ÝbÀB1|…ÄA9•Š»àÎv8ßͼ»_Àõ_ø‚nˆ{æCÎByCžw†8ÿ}ǃµˆý|ü³+͹yn@Á·Hè(øˆ,ª^Ï?¿'AQ4¦Å}Ö[5¸˜ -Âx±¼â’¹Áêg7Üzòú±÷â®g¹Ç„tƒ“0„Ì¡îÕyº®Úd=ÌáQº"Gª3éÌ:Öª^±ÉœWaºVA€¯AâÒÎë`Éé)h{aÉq±mÉà_鋂İíòO^8Û tf'1Ç’Wþ‰~€Z»ˆÇ=ö¦~öŽaó é|ùˆ/ü€ó¸c®ž\@y5|$ŽÁI5@ÉÝp­ }äÑ|ä Ð<3 Šk<Ó8‰]ò¹®¥¹ÐM?ô p .§<<o„Ç;*£߮×`½-à2v]w¯ø>?H;€üëY5߇„•LØ´Uó3Ù¯ @å1}$$sëŽ*Ž†Ž7êô™,uëõè/|Iô<âyÄ?"pð¾v®î…KZx@QîæT ^¿7Ýßò·x2–]½744´µHSXAC]{{zc+(5•Óàù«ÜdÃôcàCNgÆÌwgÍž3ušÐ'؇òù„ø„ú„ùˆ}}‚|€·ªäç³ÃçSÅ+æyF½2Êéëç»ß·• ´Å÷= ÷xðÛ'¾ž(¡rm±›ò´‘œÚàð=¸{úýÀý‡âŸç>xeËöÌý±Lb‚2Q±´NúçÃ=·9Û<ë½ÝSfMgÑr´ S{Ä„@Ë©Ô·W‚àÇbî?‚“àcêrƒ!¿½.í_.~7|Í¢”l{c,ãJVØ´T©ÊŠ?šyûþ£æÁaöÄ`Ó¥ÅgrŽ§t0Yõ²Š½µ|á—·N4õ¾öüä{‰qLRŠ2=kƒ³0ôÞác×é›C{×Ä)ãÓÓØ$îΊ >÷ZnøÆ Ïûî xìáüÂï=‡`õšgÓ}8² [»ÑE£÷dkcÖ²-pôƒ>pZ3E£ê«“KP u`ý²w¶þ§œv´ºlu]Gi-и=wïñ<[9O1‚ãÑ5ƒÖV^0…Á$íùû‡ñÏ_öJ£õ¹ 5èÂýe÷`ÊG[î À£‚úù\÷à-ñ㥗_çBœ•SW×&?›ÂŸ"Þì¬äåâ·®„8óàæo†ÑØoù«ÔÝíqáâÕQQ«ì¸ô䃺ÁËÃŒðÁÉÔôKqÇ/ˆ/¼~ëèžåëÓö¯ˆbZ¨9êñkåµç{9“‚~•çkoäÿ~ÿ*Òb8g*DLÑHpg.ô9¤zð,f!ßñhb^†Ï©ìÂü¼|Fš£Š£D|ÁÅê+uͬ»¦©¼þêØLô˽`óó f^ã°òG_h>›Ú²/'.–݃4ZŒFu!þ‰pfOßéŒKôé£5=½ì¥óýNJᾩð%Â¥Q_CŠA1{ÆÏœ¹çoðL8G=a½zø<€Ãª„'¾Á6'>_Q>ld9:P`F+§b*Â9Ðh/¥ëJ•‰ìÈN°V¡Z`ä TUžme0ª -ï'ƒ“Âç±Á+ÕdµÚ,k‰Õj3fÀê¶Y­î¢Ì:f,Oà5ó½>Gx8ï,ïþ¨M£®Žºé;Å7Ê7Ú·Ø÷¾ïcßïüÄ~‰~R?›ßE¿ë~ëÂNcÿÄq|4.Ä_Çâ…„¡& -‰ßùß¿0zúè„Ñé£?ýýè¿ÛÈDò6ù|Jþ Ð`&X*Á1pÜCY}#úE„DÿB†CÆ…¼òzÈ„ç^sGJþ@ïÌ6¿ÊG Ä -]Œ"‰‰H]sh!½tWã‰TVÞ©í».†wOJ>õ&šzeÄ£?Mè-úlœyŸôÜ`” †U„ùYyÕg¥|ð|[-eÑ”ÅßCfÏ¡Ù8:0¢^ƒ^WçDÂdpW-‘]ÑVa©²U²Çáh :ñÁ XEª=M%NWl322è Fr9² - ÈzÔŠ8›Z±7y ½yoÛÅdVÞ¯í4\ãëxÁš¶ôN~oÒîºíôÎHyB ºtŽ1wfBâOŸ\†>GôN¤–w÷]¥¯6¦Ì¨dÁƒ–V_ÏAO(50ŸÈRYìÙl¦+KK±¥Ñ“-²¶9æÃlZFV¶:¯¨0,+S—§g–çÉf–lO;+Þö`ÏŸr†éï¨éì_‹\deU‚m5g”V‹Ý]=-¦¨·Ö`¦û;[:Ø®VgÏ)q›¾AÕÉ íˆ˜Òv?Ô¦¿éÊÛ´à¦onj(ufmð{êrkÏñŽfER5S_µ_ž¿{]ô?2% „ó°u8ò¯ºq8ö7(xüäû|'ü…rü¡ÞQ`^ÀGï‰R£Yop ¼þ‡Öo‡N2'^o¹E_8%‹ëgÛ“«ÓšÖóð‡eâÙ:yn­É±Øå¬3*ÒEsaç+è ´÷­–…6²ËoþGÑ_Á€žžÃ,ÜC˜¯–W\´ò'ų È•xgu~N¡QW¤eßFmˆ€%˜®ª°ªLìrÚš'ŠVÍ…5yÄ‘1´"Õd´iø­;«c•âézÅ!&]™%SѺ|oÑÒ.—[sè ™,ý`GúÑ[ÇÏÃ×γp²gbegyY£% dJÞ&ïsÏv*fr\–.GMç+-6%[³k§#’ž3ûЖuì²u1SÐ(1Ú ÃÐ8GI¹ [ºxeÒlzm¸»/»åä¡o Ÿ®úžƒó×.žÉ:p˜éLt¦Ô®æ¢I_eÓ–zK°(´ )[0%á0aæŠ -SÝXš³‡EJ°(_³¢ˆò'¾¨%ŸªÅç˜UU†{PHš?©¬xláŒè”ŒøR_®1KŒ Ôy³¸Á¾ž—áTjYD\ÆfzÊÚO!ñûùÛŸõVjbÊØ’L,ÙáRÔÓÍuµ –˜µkGv\4»sOÊŠybD=š }®îèeZj[Û/óõa×±i$hùw@ò©¾Ray‰¾!F( C døѪ‚ÈÃìÈ:ÂðR®bŽž/ƒêZb¾UYgøïG›jøJsN•á2fGNµ–”ê5åŒÒY¡¯¤5­]Yî„})™Kv²ßqqlxfœ*\–CXªJMtÓ aXÃvnm\½âÍë¿+g%Ï|¹ˆ?RâM‰µH®‹=‘1’zgžw!MÉ­òI*õ„¢0Äà°ÞóæD?EˆÄ\¸ãã*ç5328ªy SzÆ`™£ æ9ñµ–¼2ã¾ç¢Ð¼#'6o©",§„0•W˜tg™*’I#Œ[Uªu…œ¦÷Ãôö>XÙËó¼üßç=. -¾4r5›øÀДŸ)Öåéòd‘\¯ÎÛ«ã+¢ÖH쳦•;Åõ —2­g1¸MÄ Ëµùkó†P™ÇN Á÷° |•*G~þüPšÕVÈê-E5b˜_#>6Ôf;Þç×ÁÜ,\;/[ù²|¡o0•ØÝôW8|­I5µ‚9Ò)ø¼ƒ¡;HJOOLnJoëhnlïHkNbÓé¬vV—•^¹ÙÞyûÓFç‡Þ‚_¡Œ8a,×g‹ãÞæ؇ ˜@|PíºhbÌ¥Å&ëBƒ3$pðÉÅ\U¥o`‹Dð9À_¿Cn¢×$´¨zQ)°gÔBN‡©ŽÔ;ëú®nÓ[ÍF]b±”TF_šÿg¶Èj,Ö•6uÕÔu ðÛz›WŠmz›^—-ÏR0Æ¢CIÉiZ]6¿xr¨6¼lsž7ÙëĽªÚ´T•,.ˤ« -g$$Ï_žNí—ŒÇz×DU®¢ÑVŽÅ½‚ö¬q®iÞɺ⫳ÄLDlèIüäc±×ŽçÞ¢á6.î} ü õ+ïQ¸£ûù{×PÝ«+ç‰Ñæ¹h4 -Ý]{b/“ÞC%ÜPŸÿZ Ã?‡†\”íb@q삵ÿ­ª=¡¼U3ÓB>Ú6{ÏcMü«|&ƒ}ÄÿZnÃáStB¯Ãl¼£Ì1ðÍÿ^eƒø:!ˆ!G"‰eFYɧ|¹­>DYqø.z«ÌµèµbÞÁä+`tÏΨlJcQÜçÀ—;ZZ*Ía5(\QAÔ•iÚB­Zâhögâ¿ÕDZ ÌS¼ "ÔÂF xîõø)2üŒ±¦ C¬)Tk” 'é,ô&LÇòªuMãÄp¥ÈQ˜!Δ&mÙÁ eh&÷¦OÊJ?+ᔬOF<З«Í‹ɼ¼÷½ÒéyÑœRn¼Ç‡ˆæº¿¾Œ=˜vy†X™«K62ú¼b£š•ÁKµÄv“ªlêOH-¡p3ÜxëƒjÇ-[X-rà# ·N"ÿ`’>•ÞÖv“m!¾¶;O™¼Uð”&2•Øg‘—Ë™¤Úœ‹ô@­ò 82íû«Ä“㤶–êíÆù0‚x}nÎÆ}v3ð"¡·Ä«Ó ¶ä„¥¾(â[ÍÅ%ôQGÁ^v$‘0,ÑlÖò•ð“Ød+(7p?×ǴצO6Å-cÑ.°4?o³žOx«xÃC°×Íûۯ𯾵"ØQ‹/,QWïða4¼€¶;HÏFb—mCà6îddY- ¶KRS^7`^5µ&=+5Ö™ì*¶D™kÍ£S¤™éI­™}=í•-Ílcƒ»¿ý!À»¡-wìeö2Sh›$W/WÅ0sQÒ,˜†ÉO­å⺊ò#ã¨A;¸ÓØ­/.>‡$a@FÎjß{ùdã™.&·;.ûÉÖ?‘@wpj«¥~˜½Ñ~øÊ-ña•·áHÚ”YQÓåt–9«ùBOskÍ‘~ñ…¸³;˜Æ½moÓ»÷Q–ºRSýÕíóæn˜¦P›léì?[c™ÉE Ÿýzcë;³Ömž–‘k¶'³‚ÿTf¼€øE9ÎÛ,€·`…Vk•²­&Ý[¼:í"RMGRz‹W+ø*ÔŸzÒÝ~ÖVn¼eñ:¢ÅX¥‘‹Uú\E -G¨P2Á}˜¬½ ¶Z\ï*ëcª\èœo0œÒ6dY^<6™ýNMZj–"á ù"\Ø«7ºžü$†[9·ÿ*ZÃPpÌc4–SíUó@þhôW6Aê˜ÓÜð"ÛÙÖPØI?îÙ’ÄzYÿ6IJœ7J|ûoãOP”ãCzk¾yAKáâ)œ ál)N•pß,ç¾ùÒî²zí+¡Ìßaà+€ÚcV;ŒÍ|ø#¡² r &%J›ª¬VºÄ¬ËdQa”j´û ü NxsÆg ÕÞœqªDJŽý)jˆJ ”âÿñ©Ï,~Vü îìÂn&Ú•mFA&>:(Ç_ýËðÏtåÞØrd?¥ÎJSéMZ¦G“SF§fJS÷ &]‚>WïÀ@ÖƒæOJ½ xÖœÀj< ¸å÷ÊšGvî‹×nÞ¼é ´( &i:=‚+AŸ|3Ÿ+m(‰‚z¾Ð¤.3ÞàÃi„Pv°·As„†à[è_ƒËž¾ ŒS"$_‹ÁŽ"¯A„“èœ7¹>…”‹h9ðL¡ã·:“—–³5xd1ô çfm&Î}ÅÆ©’¯ÄÀâ2WšKùÕ÷K¯´‰ëe.i†L.UTMs½Í€m6Wö Ýý™ƒ=œ°xÏàð3_xÞ¢à0ŠÃAƒ´µ­¡´H€ç\Š¿(6Ψõ6 ÌÄFŠ«IxÙEL“UÝ6²ÀT^ΩSc•*óPZz¢Vo²ªY›2ßœOgæäd¥5(:ï|p÷Ñ™”öZ¥ÑÂTR%ðÀ]‹œ‚ŽƒG»Îö1ÙÕX*0“ph"ÿ(*¥lÛ¿ðŽXG~ÌAyìgÒ³h ±ù@Á gPìçP‘uý=,ÙùåØI yÜ,ÞPäêŸÍ=‘G¢¹Þ´<œûǧÙ{ÍH¸‘ŒÄ!œŽïßA -à= -®B°ÓÛ]9â¥n¯·á6Yâm³1—ü§,PKÊ8ïKüËûþ;oŸõ76þOCáÓ¿ÀJÐ~…ÚÝ‘ÝÔ&nk¨ëê«ÏŒ=¤â8'?“ŽU¶\gA“»º£K|cKßä”\CA"£ËÖ -è\mI¹‘Uáè ViÔ[Œ)HuáÖܪóbøùâ'‹a«‰E5„q9ãÓ½%Ý•‘}£³[!÷ W~` d±Æwó½Ô ÜôêU-þmùÉéOŽïY#d'@5áåý˜£ÉâtŠ;ÔÕÒ,•<-×–Q’ÅO8Õyk½PÙß,nTÔdÄ+¢_Ñ1úyà¸oÕIóï’„À£*‚!žQ0„7À0™´Öÿ 8´JMáv(RÐ÷*÷s†³Á/žÏ¦vã&RpÄÅ!ÈHÜHÜͧ«FâɃ¿]Wž$Ÿ’‚Žòg]Qõïæ¡ yú½%N»©”Ô­®¡ÿ U…··OÀû›ÄëC’¿ð\uƒÏÏnÞ_~å¶ÏCðÀ ›*¤é%™4€Éó¾÷vÜýÉÜ¢%‰كœ‹l0^2”«›ÃFŒ~ 996®=¹¯§­½§/¹ ¼`ðÍ/üvà Ípć0µ´e4:GÕ*ð­Ùîó,ÕÈ-¥%¥|€ 4×TtÐuuúü$5¥”…Û‡+ëJ\Þf§o´Ë[q¼æÁ¯ñ€ˆC +ðÓE€Ï'Ãl>Ž„hà,@Ñ[hZßBÁAñ¾ÿ¸Mrïë òeJ}­×xsi@ŒB¿`Ð_ ðö‡„³À£‚)×y`mq»GÜÚÚúz’Û½bøáÙòMà‚æ| Ët„Zû€®ˆ)Њ ùÙŽ›èuµNÒÁŽc°©pÊM”SWáo3„©°r#€«½å] a×5ÄéÊÍ¿+Wy{ê?q*>;^›Z9ëÚÕ —ºyÞƇŒ¬pºˆ‹€'óÑ‚ó\©h"Õ²¿k¶px”’¦ÑتTŒÛÛRà)ú§°oǤ°„p!ÈUK¹ÍQìÿ,…KŸ -endstream -endobj -1252 0 obj -<< -/Filter /FlateDecode -/Subtype /Type1C -/Length 11578 ->> -stream -xœzwxTÕÚ/CØ…½’I™Ùf³÷F&X*ˆˆ€ô -dÒë¤L’I&½Ìd&½·I2“BHB „Б*Š"¢¢Ç‚¢~õ¨krV<÷® úï»Ï½ß÷™Ì“é{­w½ëWÞwI&M™qxâð«Ã˜t¶t‰t·t¿4Iš*Í‘vJû¤¤Ÿ9Nv”9.s\åxÄÑß1Â1ɱƱÉñ¼ãÇGŽß:N38-rZéôšÓ:§ÍN¾NÉNeN§>§!§»N÷œ8}éôÓÿržê,u~ÆYtžã¼Ðyµó^gogµs–ss›s¯ó€óMçÏsþ§ í¹¼ä²Þ個K˜‹Ê%Î%É%եĥÅeÈå¬Ë—.w\î¹|íò™Df/s–Í’-‘mùËÔ²Y¦¬Tf–õÉÎÊ®ÊnÊÞ—}"ûRöDö£ìWÙ?åùT¹TÎÉÈWÈ7Ê÷È˽åAòpy´<^ž"7È«ä-ò>ù¨ü–üùòoä?Ê“³–fØéìv1»†ÝÄîc°¾lÍjØ46‡5°El9[Ï6³Ýìö2ûûýšý‘ý……5c"{'·>’wKNYŸE«¬ŸR}Ј C7«#Âiš×¹­ •"̦ ¤ßÑb3|E&!Ò/M2Ð0‰ê©,…+ΡéÁ=Æ? µs€õ6¦Têh8Ž<¢©³¹p*NRÁÁêÔpîX’霿A»£©þŒb8•A…Ô’÷G£]5#W„­Ô@µ¹àV1 Æ6ZX¯Ô*è|@DÑÖ&<4¤?­|!%ùHútô²P» -bË›•ÅæÆ BucÉÎ×*+`±ú°ha49 «ÈŒV¤êÒÓUÂ&´=ÜA¨Ïåå•(ª+Š-ùB0£ühª)·(·(=_?´ æ´Gg¦%¸‡U!Ñ\zFI©!ÏhÈ …†ÂE[Œ)P¥<Úr¹³­¼±Ahh2õu= ¬ÏN«=UVÖžGîn»<Mvç”gÄ(´ZeèëBr@F¬6 u »>á3ãD™¢¦¬°'_0#m4Õ›cÐ×o1ä3ò36¡µÓ¢o|KÄdW—+jËŠ[ ð§TÑTsvAVË8œ™f&¡3¼ñ3ºA4‘ð%ëœêî’’–Âé~ ²pN,•”••­å²Ò…±<$¦ †{yËŽ[ú=~ò¨B~aQž=N'D W-dcyQQ)WX¢Ë)SÚFRÛ¸Ç7®ýžr`Þ)qS[„¥SÑÑjéiiNkÔå Õ^4€Ö0ÉÌB3Ðì'ÏÁiÐõ»_àLøìÂ_+BÙ+õûÑJô¢Ú}Ïnõ98®¯½.‚±]c+Y©"ßÉ®ÉW¨µ!QÞ²C;=LÊ-Ôu…Ó“›r**Õ%ý‚Å@XЗ*ªS×o -‚ÛÐçÓжPkKÓÊu÷hx°…‚¾è6}ÈñmÖØ¢‚êü"¡¬¨¦ÐÂ}Óí=k[’_Hœ•”¹VOƒZ"?ÍXù:’-ÝÁ^ñNñ¥9ÊMñÖa¯×w¶œU -‘ÝɉïÒá(¯l.*)©áJÊs3Åijݙƒœÿ÷Ï¡Ë}Ïû[OˆhÞûĪ¾XËÅõS=ïœ>ïRè ¬ 7m¥Á0ßÖu2ìx (5.âÁ¾¤7x`fƒ -´Õ= -«ÚM f”¤|ÒŸÌ Ï4:øøG%ã–îÿÎøåÄÑšêŒÔ"±0=/ÏGqÈPÛÃj6÷^ß|f š1ïYôáÿíÐÿœ  Å›;¯2{ÇñȃsÑsÐÿ8ÉÜsK„2Êø~yÅûx×^®¬ºU*XPˆŠz?Ó·A®Pègë:¨HSmÒÞ3âx8¥ß­ÑnÈ u%\ÊFaé š˜@è´ez:œ„ë<¢yœ¢2Ñ,¢™´|×\gê‘v|þ4•UFe|¶ðÆK8ãà"FQº“5­Ú„üÕT›¾&NçO£áèo¢" šà èc§¡HÊ ‰ÐÓjèx]wMCÛŸßjÕWÇéið -ÓK?ãÒúåkÇÍù?”m¶ÆYg±ç‘+%kÛÌÈz×ó²Ëך\Wô¥hdïù3²E! ˆgà]`U²Æ²¢.¢î3Caƒâ¸º1"2.6L›W'”(‹ƒ ÃiÐØh®hâºj#÷‰(›Ò+µšà\:¦P`yAj¹îm5SÐ1gÔ£ºÔAbü2ymd-£CЩ€7Sºµ©i+0~ƒXE¬6=P'dëµúd=~a Ó_Žs"DcêÓ‹Ö¯ÐÞhªC_oPÒãÅø’ q!z|É -|ŸÈÀÏaû#ÚB”&3ÓMj¤¤†C¦2JÜíõ͆EÓ¾ƒÂ­oÌu׋§›P¬º‚j7«U‰ñšq«á\"©-§¬TQ[[ajMè‚šÉm¸22 h±æ€2Ô—KSÃS<éSm©,ª®n¥«5Hôb@Rž vöÁ“=HÀ¹ðu¸ÔVÀ‹¬ÞlÊ«æ¾8_fÏ·µ_¸©¸|aw»`ò *Þ¡OÕ&r4·:Q·¦ ‹ø5üÔ²„·š§Luø«'š³RkÄ–ø]Šyþǧjò Aº‘ÀöŒà¨cŠ=÷ƒ  \ýÅèö ¼o×ð8¿räl3Õ|âDKK»(ÝÈxk™ ýƒcÈãÙµ9…¹tAn~V¶"--!5U@r$'¬ëÑ®hꄾ:Áà7±¾šøЉ•0SG‹sŠôÃ4$©&ówHAÔ©ŠR2)ÉYz!jÍTjv~EºˆÜ`Ãßm®»Q‚ÿ<Àî†ÏÚÙõÕ -SyE½PjB1j²#£8mIàTÔ=-ü Â?)9!™ËÌ.,‹)Ca^A>¦³Æð UÀ±“ÁÃÃ=7Íä­Äi -‹» xŸÃk\_¥OÌ -O‹äßÞu²í/ì1ðIµ`<¦²O`ÎO(‡'[[Ož ÇïÖߨ­6ôÑ°€ú›ÛÅWwyDìöÀ÷y]ÖtJ~€Ëa|Ó®ÊÞ%a(| -ÐC"tFI"º¢"od×'ŽÒãi”Wdì>ê¬Ù&SEq෺„÷ª7—+^P/ ñ<‚ŽÄlå<µ•§E@é®V×u2¹WjêÏézº«®'Gu5ñº=ôx#Š°6ú1¤t//5I¬³ ”=ê–àÃ)Ãk»Ôb|{fGÎæ‘YŸ$ ‡öÐÝ!ž¦ýrXù<šfü”><ÓþÍM•ÁÕ,dòk{Ïr­uI¡%bA|~”á D×^ãÕ¸€îÌ¡#m¡§ ó EB¯Uù¼á.œ—”îJµmˆÀÈÉY8>gØÁB«‹¦.›‡¸M槼ŀ®ó1§¹ó—›ºÅî~ÓÛwð™eÿHA¯ÄáHŒ,Ë"óƒ¶+Ðê„}Ž% ÿ -·Õ\Á¹ºÛZ:¤€_§RhåV"Ž*;^WXÂÕk#DE6$§nãÔ0‡·%á ¸Ào`îóÀzµ+€(cà‹ŸÝ€S¡üåwÑ«±9y¹‡E¿)ÆšÒ¼rîÑо¹‹}ÜÖû¥Tõ‹`´¼©Ôl¢eÖ‹ià”âbÈÙ=íB“·géznzšIÙ¯O†.Zâí¶A©­ê­mSêI™õog®\~ôÈÊœ´p&/è‰VÀÈSY¼q±ª!‚€N|K±|Ú²G᧊RjRŠLqBXsFAx>™®ÕÆ+‚{ãÞèÉa Ýá/îÕ¤—Vä -„rêxtc2Ful¿ÿµ«Ã]˜$ÃBƒý[Ã{ñy -GŠd€o ÓÛÞÞÓzÂ_Ag!%6ÁbêzöñÄ.ázØΓë87ÿ¤QVÚ >dÆœL. ¯6öÁs]ë›úÁÕzƒì‡D ™¾€Ï1š„25§V©Ëµmñ"œµ„°~þ6HãSüž »{GHôáx:%<8+‚Û²½k4\ ?ŸüÞO -è ~nè¸Ó\“¡ÍÑeåf -Y©ºŒL…¦4©"G^î~ŠàU^Úi“#UuH€ø%<W'1¶Y†4US–œª8]½ŽZuFùsK}~y».*ní8ýr´&7=\ÈÑfè29mVQ…˜ˆq®…´dæØÁ>ØÇ¢DÃRß1¦hÇ/K`v`Α¥}’_ óÏ`A€ß²QŠ¦Žmb½}<;‚;;ƒ:½Ei¿’!` ©ÛKQÆ}I‰ k˜ØmvÔ%zW -å{Xƒ‡!*XžÇ^1ÖÆŽ€É?1àÌØÔLÀÞ&ù8+°ˆÀÎ@Ù#(Ûx¨tý·ð6…U'”M(¬–Vï­â;(„Fæ¼®ú/4Ùi)Z9#€®”¾³¢¾¹6ë2 s¶ûäð°²ÃÌ붸´¦¢Rh45U4r£æ]è08ÝÊá¡žž! ¸pê€Gx¸'½Èr—;±—‚ÕP…ð?¼æŽ/ Q‡éèl5 0‘Q…)&CG³“ÛjÁ{ß›4(Žnñûùz€MQ¨)‡ -Ó4vE`éKå.ö™ú,bms±¹p„–FjMF¼æU]o[óÚ#hÖ—dF)ÐEÊ Ô&Ú€:x(•ž‡OúŸÆãVöàùœo9Û*ÔŸ(鹪îÑ^‘b\`Ʊe -€Ò|—òp ¼?2‰À5,æ)¾´šÍ­Oñ…Œ‰‰ŠhŠiiijji‰iŠAÑBºz ëéïïåqÒètw÷i`â¥?3¥%˜õ ê뛹J@þˆù'ඊ - iŽ:ÑÞÜÜ~BÕ,‚ŒÍè©)8ùÚà'@y‘ïí>ÑÞÓÚî'¶ÁÂ"›*p1Q®“V±ç‰ä¯ãkÙS-µB¤Ò–Ôè+4 °ÕS¹"H0“½ ÕÜ© (/-S3NÀiâáéúDò€ÚtQ]4œI4‹2&Ç®¾Vƒýƒ*/ÛöϱI@¬èúEé÷pë)8딜汣à Êa@ Ä6-ãEl½“%;º€!ARyyZ —_dÌ/‰ -Ç݈‰}˜Ð:±ÖkÀx ÌäÝ¢–γ\_S¨hîǃìŸ$èRÜ>uøp°Ïö¨BÛ|ñŒµÙ -(i|½Õ§zU“ ÀˆìŸIò1’m+(,,,((Î/.üÚÞ~ ®ØRb©(+-(¬°wxÚÙ7É<é;Él‰I2,¹+“gOž79rÅäÎÉßÚM±[n·Ù.ÒNm÷Ñ”W¦lšR5¥nÊ}b1L\ ®ïŸ?“!äWÔkTUHÕQŸÐ›èP:—®¢ÿ˜:yê SÓ§~Â,f¶01Œ†IgŒÌ s H€ LžÀ:À5pÓ^jÏÚO·çíØ/³ßn¿ßþ°½—}®}½}“ýÇö_8Lr f9¸9¨RÚ>vøÌá±Ãw¿;ŒK'IIéé*éZé^©Fš*Í•öJ‡¥W¥w¥Hÿp´wtr|ÅñUÇ×}3›O;žs¼êxÇñsÇ_œœ^rÚáäéádp:îÔã4êtÓé§Oþæô›Ó¿œ§9Ïs^îü†ófg/ç`çXçTçRç&çÎ=ÎÎÃÎç?tþÑ…p™á2Óe¹Ëz—Ý.‡]¼]]’]Š]Z]κÜuùÂåw-“ËfÈž“=/[#Û-ó”EÉ2dY™¬ZÖ ë•–Ý½#»'ûJö›œ”?#Vþ¼ü%ù+òuò=òCò ¹Zž&Ï’åeòZy£¼MÞ%‘ß’$$ÿ^>ÆNb¥ì3ìLv»}™]ƾÉîb²Al›Áæ²¥l-{œígÏ°çÙ«ìmö=öûû»ëdW©«Âu®ë‹®Ë]_wÝàºÕu·«›ëWo×`×XWk¶k‘k•«Åõ¤ë°ëˆëE×kc{þ,I?Ènˆ{s¢j9ß[<çuÎà”ñAUå'FŒ¼UÔݬr­ñM}A-h8ü¶—xæfÂûÜï6vˆ§{š?üVq“Ò\èÌ>–àÍù…×uʼn '2:rîÒ°Ìú,i8¤‡î 9jÚÇ!§óÑ\4÷Ó…Ð铳íOn‰˜ÜײÐ>¿®ï,7\„ìŒb¬ÈkêyH‰uí<4úâÛ<|óƒÞh>Þ€ž¢>˜…“o"䇎íÄ -œFÔ,¨¼`è Hé"°†ÝdÓÒˆÜÜ\}6—œYR+Â*êóµ£HŠˆµßð1G÷÷µš;«²+µ5BzYnQ‘¢¡¥æ¤þd‹ÐVy!·:-T¡ÍMÊIÐô=š¿"R;s+ÊæêÒÁ|Áh«vˆtKEõëLéåÑ] §!½ì­“ˆìZ]q©¢­¢t´@° au*«,½ö0 ÿqZ+ wZ£àÚñ(¢…„G­?Vö56tæOI¼‹c¹[Bò²»³Ù·óÙOË0Á]&‘#Ü@¼Dâl .‘pÊR+iaר«ôçik°Æ²rCWRœ›] –¦åé ÏÓÈ -Ë.ŠöUŸ ºÍAúÁïpÙ½äwbÛDSR|Y4çZÓ‘"¶¥çëJ2èÊäâ(¥bÏ[»½:ð u:¢783G¯ÏÁõÀ*{BF®àÁ#^_ÿ§ÈOnKx*òÇ\ š 'ƒ×¨CChÿcûÖp;m:kèDš~n›êÏ*êvn½ÆÊèÝ“S7dÐ*ë} -lÌ3Y]\>âe­'ÍÛyÙéÅŒìÁ«<ø¬ÂM8ÚŸJPbNÿÏ> Ñ”ùhÊÄ>Úbÿ )½öESƒ™%éï4Æ;#Ý+kÅ,3€­{·š¨üâò²2dðpÖ—è±³f©ÙÙKÞx]\¿Ñwá<¢{^y´VØpÿ«ÀŸ¸Ÿ¿ê~ÿ}ñþýžo~UüêÿxÝû‡o,î~–Cß»°p?\„oûá>¸-BûÑ^ôzíZ°æÄíMÂæ;¾Vxm!šÕ‡MbilA‚J‘Ñ?Œ¡Ò{ìÒÑ‘Ð IòëÜуe/ÐpëxºŽ¼ «NèáäÒ jk+yz*2Ùm؇¦h%附IWÈý2©N‰æÂâZú®œ:õq~qk"ŸaryEÙËðŒ™Ý™ŸZ©¿AÃ=Ôhë@GIi¦¦\ˆ¬¯No溛[{†‚:ŽRFm:*Êî~ŠöDS§²ËS&:6i©Þ™8põ 0`L -³Ø(Ò­Úô:Òê8F5ã T:F´’g xºÎÓU: ݆q—?ˆië -H¬/Á ö,"‰’¸‚”tETBª· R˦t2Ú˜Y¬éBeÖŸ¦EÈgütÜÖ°`?Ýt5Tšb©ÀÈzsi~eI£ØóñLg?CžZL‚»le<”˜p±Þ7©ÈCMa„.« Þ¾ZÑ0(~Ú{ññ -Hnú~f§Z–h\_˜`˜VNéÏÖÔàÌ4¡ûj39¢«MЦS)ŸÜÍ9‘™¾ñÓWø¸-™¯˜ñåOý„ØÓWR¯sðE«†ý9ëâkh¦‰û_›“% Ù®sŠö?„¢μôð§"Aú -?ÑæXË'¦Çƒe¼©ë/ð&/ËÜÀÈ6üUÐÑøÚ“-ÙÜÇ1¼6NglUh88 ÿ]ˆ.‚ÙÇ(…œ(6«à]ê*J£€—)«+"¡Š¬5” -å%õE­Ü{ç‚ßê[ܪÖ/W,R/ûïµi˜Œ´t¬Ìª ©…ÚjtÅ*wC·“–Jð–=¥¢fåF+4Ù¡¡ -Cá ¦ŒïWWß+xÊ#­Ó,ÊJ; t¹‰5^E¾+¶, -¬Á®¶QU¯Ž§_‹ôõ;¨8V—p3F,ú^E~–SfÜGÏ¢†ÇnÞîS?,x]Šç†Û†,BlU¶N¯ÏÈ™žÆ\ØÛ9uÉFwz<œÒ¹'§àU¶¾KõBo"’ Ý¢ŽŒ <Ý4opÛ*°CH£~ïS"²\l†ŸG‘ÉhŠ_À, ã©îŠÒ _žO‰hÚ#«Â*7ÓfxhÛ^ÐCÐÀÿÕçm -êZ;ÌüUÅ‘µ5{ç`A½Óí~Â.ö‹ÐL¤6ê ‹55¥-B RW9qm;áËèâ4ôŠ­ ®†_›Â¶ðù—h¸™‚ -ØÒs¿¼|¨hº íS›¨ •&+QƒÍº+üÂB®)Í(Õ}@Ãä ƒµô'íƒ×>R@zÑm´z¢]ÿNvU’q½­]¯ß‘ë™Cç¦ét©"Ô[?b›j+:ux¡IÛS”Q1‚::8sÆ–²K¶Dïß*®Ûî¿MQ`ƒ¤@3 <ˆüþpÇMáÖ¶5í³¹‚@ö÷kh&“ƒÛÐÔ™G=[‡"ÅÐ Éïþª€N¦†/ -µ}œJ©‹U'ëÊ3S²s³²Ò„ô¤œ´TÌ7kTäÎe¾ž[÷Ó‘£èµuÀ÷î¾ãŸö ªrB©Ö$Çq©µ}"¼`ë_)d\xûöAe¸VUs£{ÍÖ®š†Âbºç|us­¢8§ ###G›$èõ:]®y¡•Ór(ŒJ«°»§ïŒÜþ›âî±á]‡‚CÀÓ½­«VÛööÈðêpÝ–@>þjëYÄh²ótQ"$ -Ê Å±»ò - Œ­šãqä¤ÿ𙞓ÃglÕÀþú¦­¦{SëKÈÂ$»S­'ÄNúÀ#h!| ݧÀ #âÐkh-V`xÝÑóXÍÀNr t„ÄEéƶîÐQî››¿`©ê|ø›ÍÑ1!Áõq]Yb_¦A_©¥«‹#<s=·­÷¬í‰Z®V (ÎÄ´(£CyVh:bÛ7ÖÃG¤tÜàI?\cÿ¬¨š¨¨¹åÒ@§@ç`¤ƒið{ÛÒÐjæÌeqØBæàRï=¿ãH@øÆáG -mÙ_¨&òK - ùœyÂn߇ÎÔÄ’1àò"@ýÕ[Á€§E’bKÑ9Zúú¸{¡Yä±?jþ¦Á†âòÖ&Ü:h²¾ZÀ£¿f·%ñà SÀ5Áøê§Ý¡Ò‰îPéŸÝ¡¬¤t]&•cë}eMg‡ë•/¾˜päHBד'uÝgDàþ˜ÖçØ>&F¨çW0î¿´òQ2õÊzâõÕ=©ÿKWßL=íûK­snß¾mج´Ä­£ŽKåÜTW¡²-W¯t´G+«D`s21;ù¿Úä{¡œx@¡^(‹qƒþ«ˆ?ìHðC_j;‘“’¥Ïà|BºßOÑä:6# r{B˜›’Èy©GqèÅ.ö6û ºC”Æk‹Ë -ó‹‹Ê„²êlŽG™ƒýUª€ÝWŽ¶ZmL¤:`"Ò2 ?¯žì…5½.ð,ô_Ä2®’ý:dïzj²Ì¸<Þ,†‰V²›¿z»;mÇ\†Ò‹² Þôÿ›à+5@;L p6È3IÀ+L»©ÎâãáK| ÐùÃçy`3XôæC[—*Þê?zm¤ãĹ¡°ÞÙYyú,AŸ«ËÓq©¥}ý÷GEðSl(ãþž°ÛÃc¼x[3a_b)ÄÉq“ô!vSÆS’ÞPœP©?GÃD˜…)ÝÁDíÛÙ¥o)pÞØÈC¹Jô­#€•€ Ùõ¥¯ç8x³!¿¦¤AŒ?ÞœÞÊõ¶4o©ŠˆÎJÂÛs[BxLt]U Íùp6¯«|ëɧmyœ&`aÿ”6 t®¡ö¶­pø­Šz'פÁ„‚|Qô¥ €1oÚâ›Ybºž´ ZWD¶jcµŒ¿QÆe©aœ)“ü³r|š?n MÀ”±Ä†žh9Z†Qâ \ŽVÀCø¶®À{?[…ˆàd yµ[µ­K0y²¦­EGV+ß„CÝî×|3Hð4ÚÎî2jêuØ#?K=cÑžæ ñðp>œùÆdb  õHœº½nM«l%:Œ¡H°€Qûz¬æ!F\„D©Bþ,ŸhjÅ”5)Ï £h‡³Ë PvÜ¥>' [ -åìe@<˜åщP.‡î8”+ð͇r9|Lœh02à+Æêcb=È]s‰:€Ö·‘…ßœùãû”ƒ=¢þ{¢\ä{ÀÓÎx}sV='›Ñ„¤€n¶Îa;˜/?¯½Ždñ9q…Œøt]—QfÑ‹ C¨ -Š,x‹C;à N 2¾‡ák¸¾Æçܶj·PÒ£¼ídÖ±Cõ¡~Š M\THrÓÈ`AM}« e­s¶ŒXnS?¼=Ž¿t›G[G¼>¼wîÜ=0aKá6“änogm7³ÐÚ£¸x¤oë[îž»|ð°Þ=ŸÞþÁ㋆:îw ðþý€ûî≯¯Š²ŽñgCXUtrf4§Œ7ÛjèÚH2 )=-ŽKO.(‹Í{Ž”ÛúÂ(€B¯A"¾)³²Jaª©hÀŸýÀæþø ÜÅþ¿èy°†æõ4€/ÃÅp6¾¿Œ×îþë@S½ °;`õ¨«ØÒ#ÞÑ‘jn‹÷Íäˆ:0ª={ºaÓ™x“ P·]ú†¥Q ‡9­:Ó7gwÚü:@î‰×I„Áÿ<ˆ/›(ƒ‰Ë©-J»i€Vgó¶îkn5†'yCô9)"¸*×àû×ìÆüŽ¹â£‰ÖPœó;¾yë‘ð@ni—áºnøj¯D«Ô*›š-øäZ×pKBJ• Á¤ãÖD*Р 1¿Â¨¨b÷)ÓÛï`±¿fÁåX[!þnÿ3 ïwre`¦ -ØÎ}àÜ%àr€u=˜8«’€qtK~‡Î6‰jÆ[È…8Cžu;2vä#$ Ñ³”º ©4gÞ3Œí0#@¿ìÌÊ -ÒOWk'T²_Ž–Pài³ì¤®¦$1R¸(Ïlç?Àÿñå¼£ -endstream -endobj -1258 0 obj -<< -/Length 9366 +/Length 1485 >> stream 0 g 0 G 0 g 0 G BT -/F16 11.9552 Tf 150.705 706.129 Td [(psb)]TJ +/F8 9.9626 Tf 175.611 706.129 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)-424(as:)-628(an)-424(ob)-56(ject)-424(of)-425(t)28(yp)-28(e)]TJ +0 0 1 rg 0 0 1 RG +/F30 9.9626 Tf 142.027 0 Td [(psb)]TJ ET q -1 0 0 1 171.761 706.328 cm -[]0 d 0 J 0.398 w 0 0 m 4.035 0 l S +1 0 0 1 333.957 694.373 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F16 11.9552 Tf 175.796 706.129 Td [(gather)-375(|)-375(Gather)-375(Global)-375(Dense)-375(Matrix)]TJ/F8 9.9626 Tf -25.091 -18.389 Td [(These)-384(subroutines)-384(collect)-385(the)-384(p)-27(ortions)-385(of)-384(global)-384(dense)-384(matrix)-384(distributed)-384(o)28(v)27(er)]TJ 0 -11.956 Td [(all)-333(pro)-28(cess)-334(i)1(n)27(to)-333(one)-333(single)-334(arra)28(y)-333(stored)-334(on)-333(one)-333(pro)-28(cess.)]TJ/F11 9.9626 Tf 120.435 -22.804 Td [(g)-36(l)-19(ob)]TJ +/F30 9.9626 Tf 337.095 694.174 Td [(T)]TJ ET q -1 0 0 1 289.12 653.179 cm -[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +1 0 0 1 342.953 694.373 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F11 9.9626 Tf 292.109 652.98 Td [(x)]TJ/F14 9.9626 Tf 8.461 0 Td [(\040)]TJ/F11 9.9626 Tf 12.73 0 Td [(col)-20(l)-19(ect)]TJ/F8 9.9626 Tf 28.026 0 Td [(\050)]TJ/F11 9.9626 Tf 3.874 0 Td [(l)-20(oc)]TJ +/F30 9.9626 Tf 346.092 694.174 Td [(vect)]TJ ET q -1 0 0 1 358.107 653.179 cm -[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +1 0 0 1 367.64 694.373 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F11 9.9626 Tf 361.096 652.98 Td [(x)]TJ/F10 6.9738 Tf 5.694 -1.494 Td [(i)]TJ/F8 9.9626 Tf 3.317 1.494 Td [(\051)]TJ -219.402 -20.867 Td [(where:)]TJ +/F30 9.9626 Tf 370.779 694.174 Td [(type)]TJ 0 g 0 G -/F11 9.9626 Tf 0 -19.085 Td [(g)-36(l)-19(o)-1(b)]TJ -ET -q -1 0 0 1 168.775 613.227 cm -[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S -Q -BT -/F11 9.9626 Tf 172.212 613.028 Td [(x)]TJ +/F8 9.9626 Tf 25.152 0 Td [(con)28(taining)-425(n)28(um)28(b)-28(ers)-425(of)]TJ -220.32 -11.955 Td [(the)-333(t)27(yp)-27(e)-334(indicated)-333(in)-333(T)83(able)]TJ +0 0 1 rg 0 0 1 RG + [-333(14)]TJ +0 g 0 G + [(.)]TJ +0 g 0 G +/F27 9.9626 Tf -24.906 -19.926 Td [(info)]TJ +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 -524.035 Td [(56)]TJ 0 g 0 G -/F8 9.9626 Tf 10.675 0 Td [(is)-333(the)-334(global)-333(submatrix)]TJ/F11 9.9626 Tf 103.916 0 Td [(g)-36(l)-20(ob)]TJ ET -q -1 0 0 1 304.784 613.227 cm -[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S -Q -BT -/F11 9.9626 Tf 307.773 613.028 Td [(x)]TJ/F7 6.9738 Tf 5.694 -1.494 Td [(1:)]TJ/F10 6.9738 Tf 6.226 0 Td [(m;)]TJ/F7 6.9738 Tf 9.436 0 Td [(1:)]TJ/F10 6.9738 Tf 6.227 0 Td [(n)]TJ + +endstream +endobj +1262 0 obj +<< +/Length 7499 +>> +stream 0 g 0 G -/F11 9.9626 Tf -184.651 -18.011 Td [(l)-20(oc)]TJ +0 g 0 G +BT +/F16 11.9552 Tf 99.895 706.129 Td [(4.16)-1125(psb)]TJ ET q -1 0 0 1 163.701 593.722 cm -[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S +1 0 0 1 158.311 706.328 cm +[]0 d 0 J 0.398 w 0 0 m 4.035 0 l S Q BT -/F11 9.9626 Tf 167.139 593.523 Td [(x)]TJ/F10 6.9738 Tf 5.693 -1.494 Td [(i)]TJ +/F16 11.9552 Tf 162.346 706.129 Td [(gein)31(v)-375(|)-375(En)31(trywise)-375(In)32(v)31(ersion)]TJ/F8 9.9626 Tf -62.451 -18.389 Td [(This)-333(function)-334(computes)-333(the)-333(en)27(try)1(w)-1(i)1(s)-1(e)-333(in)28(v)28(erse)-334(of)-333(a)-333(v)27(ector)]TJ/F11 9.9626 Tf 250.201 0 Td [(x)]TJ/F8 9.9626 Tf 9.015 0 Td [(and)-333(puts)-334(it)-333(in)28(to)]TJ/F11 9.9626 Tf 71.731 0 Td [(y)]TJ -184.133 -17.8 Td [(=)]TJ/F14 9.9626 Tf 7.749 0 Td [(\040)]TJ/F8 9.9626 Tf 12.73 0 Td [(1)]TJ/F11 9.9626 Tf 4.981 0 Td [(=x)]TJ/F8 9.9626 Tf 10.675 0 Td [(\050)]TJ/F11 9.9626 Tf 3.875 0 Td [(i)]TJ/F8 9.9626 Tf 3.432 0 Td [(\051)]TJ/F11 9.9626 Tf 3.874 0 Td [(:)]TJ 0 g 0 G -/F8 9.9626 Tf 8.299 1.494 Td [(is)-333(the)-334(lo)-27(cal)-334(p)-28(or)1(tion)-334(of)-333(global)-333(dense)-334(matrix)-333(on)-333(pro)-28(cess)]TJ/F11 9.9626 Tf 234.703 0 Td [(i)]TJ/F8 9.9626 Tf 3.433 0 Td [(.)]TJ -0 g 0 G -/F11 9.9626 Tf -268.562 -19.505 Td [(col)-20(l)-19(ect)]TJ 0 g 0 G -/F8 9.9626 Tf 33.007 0 Td [(is)-333(the)-334(collect)-333(function.)]TJ +/F30 9.9626 Tf -194.13 -17.8 Td [(psb_geinv\050x,)-525(y,)-525(desc_a,)-525(info,)-525([flag\051)]TJ 0 g 0 G 0 g 0 G 0 g 0 G ET q -1 0 0 1 228.797 555.154 cm -[]0 d 0 J 0.398 w 0 0 m 187.526 0 l S +1 0 0 1 183.665 633.574 cm +[]0 d 0 J 0.398 w 0 0 m 176.173 0 l S Q BT -/F11 9.9626 Tf 234.775 546.587 Td [(x)]TJ/F10 6.9738 Tf 5.694 -1.495 Td [(i)]TJ/F11 9.9626 Tf 3.317 1.495 Td [(;)-167(y)]TJ/F27 9.9626 Tf 111.399 0 Td [(Subroutine)]TJ +/F11 9.9626 Tf 189.642 625.006 Td [(=)]TJ/F8 9.9626 Tf 4.982 0 Td [(,)]TJ/F11 9.9626 Tf 6.088 0 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(,)]TJ/F11 9.9626 Tf 6.088 0 Td [(y)]TJ/F27 9.9626 Tf 97.558 0 Td [(F)96(unction)]TJ ET q -1 0 0 1 228.797 542.801 cm -[]0 d 0 J 0.398 w 0 0 m 187.526 0 l S +1 0 0 1 183.665 621.22 cm +[]0 d 0 J 0.398 w 0 0 m 176.173 0 l S Q BT -/F8 9.9626 Tf 234.775 534.233 Td [(In)28(teger)-9028(psb)]TJ +/F8 9.9626 Tf 189.642 612.652 Td [(Short)-333(Precision)-334(Real)-3102(psb)]TJ ET q -1 0 0 1 370.782 534.432 cm +1 0 0 1 325.649 612.852 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 373.771 534.233 Td [(gather)]TJ -138.996 -11.955 Td [(Short)-333(Precision)-334(Real)-3102(psb)]TJ +/F8 9.9626 Tf 328.638 612.652 Td [(gein)28(v)]TJ -138.996 -11.955 Td [(Long)-333(Precision)-334(Real)-3314(psb)]TJ ET q -1 0 0 1 370.782 522.477 cm +1 0 0 1 325.649 600.897 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 373.771 522.278 Td [(gather)]TJ -138.996 -11.955 Td [(Long)-333(Precision)-334(Real)-3314(psb)]TJ +/F8 9.9626 Tf 328.638 600.697 Td [(gein)28(v)]TJ -138.996 -11.955 Td [(Short)-333(Precision)-334(Complex)-1200(psb)]TJ ET q -1 0 0 1 370.782 510.522 cm +1 0 0 1 325.649 588.941 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 373.771 510.323 Td [(gather)]TJ -138.996 -11.956 Td [(Short)-333(Precision)-334(Complex)-1200(psb)]TJ +/F8 9.9626 Tf 328.638 588.742 Td [(gein)28(v)]TJ -138.996 -11.955 Td [(Long)-333(Precision)-334(Complex)-1411(psb)]TJ ET q -1 0 0 1 370.782 498.567 cm +1 0 0 1 325.649 576.986 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 373.771 498.367 Td [(gather)]TJ -138.996 -11.955 Td [(Long)-333(Precision)-334(Complex)-1411(psb)]TJ +/F8 9.9626 Tf 328.638 576.787 Td [(gein)28(v)]TJ ET q -1 0 0 1 370.782 486.612 cm -[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +1 0 0 1 183.665 573.001 cm +[]0 d 0 J 0.398 w 0 0 m 176.173 0 l S Q +0 g 0 G BT -/F8 9.9626 Tf 373.771 486.412 Td [(gather)]TJ +/F8 9.9626 Tf 225.577 544.962 Td [(T)83(able)-333(16:)-444(Data)-334(t)28(yp)-28(es)]TJ +0 g 0 G +0 g 0 G +0 g 0 G +/F27 9.9626 Tf -125.682 -27.831 Td [(T)32(yp)-32(e:)]TJ +0 g 0 G +/F8 9.9626 Tf 33.797 0 Td [(Sync)28(hronous.)]TJ +0 g 0 G +/F27 9.9626 Tf -33.797 -18.278 Td [(On)-383(En)32(try)]TJ +0 g 0 G +0 g 0 G + 0 -18.278 Td [(x)]TJ +0 g 0 G +/F8 9.9626 Tf 11.028 0 Td [(the)-333(lo)-28(cal)-333(p)-28(ortion)-333(of)-334(global)-333(dense)-333(v)27(ector)]TJ/F11 9.9626 Tf 173.627 0 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(.)]TJ -165.442 -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 [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-424(as:)-628(an)-424(ob)-56(ject)-424(of)-425(t)28(yp)-28(e)]TJ +0 0 1 rg 0 0 1 RG +/F30 9.9626 Tf 142.027 0 Td [(psb)]TJ ET q -1 0 0 1 228.797 482.626 cm -[]0 d 0 J 0.398 w 0 0 m 187.526 0 l S +1 0 0 1 283.148 432.953 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q -0 g 0 G BT -/F8 9.9626 Tf 276.386 454.587 Td [(T)83(able)-333(16:)-444(Data)-334(t)28(yp)-28(es)]TJ -0 g 0 G -0 g 0 G -/F27 9.9626 Tf -124.304 -30.984 Td [(c)-138(a)-138(l)-139(l)]TJ/F8 9.9626 Tf 29.737 0 Td [(p)-123(s)-123(b)]TJ +/F30 9.9626 Tf 286.286 432.754 Td [(T)]TJ ET q -1 0 0 1 201.095 423.802 cm -[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +1 0 0 1 292.144 432.953 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F8 9.9626 Tf 205.31 423.603 Td [(g)-123(a)-123(t)-123(h)-123(e)-123(r)-229(\050)-215(g)-110(l)-110(o)-110(b)]TJ +/F30 9.9626 Tf 295.282 432.754 Td [(vect)]TJ ET q -1 0 0 1 270.682 423.802 cm -[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +1 0 0 1 316.831 432.953 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F8 9.9626 Tf 274.766 423.603 Td [(x)-381(,)-888(l)-127(o)-127(c)]TJ +/F30 9.9626 Tf 319.969 432.754 Td [(type)]TJ +0 g 0 G +/F8 9.9626 Tf 25.152 0 Td [(con)28(taining)-425(n)28(um)28(b)-28(ers)-425(of)]TJ -220.319 -11.955 Td [(t)28(yp)-28(e)-333(sp)-28(eci\014ed)-333(in)-334(T)84(able)]TJ +0 0 1 rg 0 0 1 RG + [-334(2)]TJ +0 g 0 G + [(.)]TJ +0 g 0 G +/F27 9.9626 Tf -24.907 -18.278 Td [(desc)]TJ ET q -1 0 0 1 312.009 423.802 cm -[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +1 0 0 1 121.81 402.72 cm +[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F8 9.9626 Tf 316.265 423.603 Td [(x)-415(,)-874(d)-113(e)-112(s)-113(c)]TJ +/F27 9.9626 Tf 125.247 402.521 Td [(a)]TJ +0 g 0 G +/F8 9.9626 Tf 10.551 0 Td [(con)28(tains)-334(d)1(ata)-334(structures)-333(for)-333(com)-1(m)28(unications.)]TJ -10.996 -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 [(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(ob)-55(ject)-334(of)-333(t)28(yp)-28(e)]TJ +0 0 1 rg 0 0 1 RG +/F30 9.9626 Tf 135.658 0 Td [(psb)]TJ ET q -1 0 0 1 360.541 423.802 cm -[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +1 0 0 1 276.779 354.899 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F8 9.9626 Tf 364.652 423.603 Td [(a)-386(,)-888(i)-127(n)-127(f)-127(o)-415(,)-885(r)-124(o)-123(o)-124(t)-230(\051)]TJ/F27 9.9626 Tf -212.57 -11.956 Td [(c)-138(a)-138(l)-139(l)]TJ/F8 9.9626 Tf 29.737 0 Td [(p)-123(s)-123(b)]TJ +/F30 9.9626 Tf 279.917 354.7 Td [(desc)]TJ ET q -1 0 0 1 201.095 411.847 cm -[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +1 0 0 1 301.466 354.899 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F8 9.9626 Tf 205.31 411.647 Td [(g)-123(a)-123(t)-123(h)-123(e)-123(r)-229(\050)-215(g)-110(l)-110(o)-110(b)]TJ +/F30 9.9626 Tf 304.604 354.7 Td [(type)]TJ +0 g 0 G +/F8 9.9626 Tf 20.922 0 Td [(.)]TJ +0 g 0 G +/F27 9.9626 Tf -225.631 -18.278 Td [(\015ag)]TJ +0 g 0 G +/F8 9.9626 Tf 22.645 0 Td [(c)28(hec)28(k)-349(if)-349(an)28(y)-349(of)-349(the)]TJ/F11 9.9626 Tf 84.074 0 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(\050)]TJ/F11 9.9626 Tf 3.874 0 Td [(i)]TJ/F8 9.9626 Tf 3.433 0 Td [(\051)-304(=)-303(0,)-353(and)-349(in)-349(case)-349(returns)-349(error)-349(haltin)1(g)-349(the)-349(compu-)]TJ -94.813 -11.955 Td [(tation.)]TJ 0 -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 [(optional)]TJ/F8 9.9626 Tf 43.898 0 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 -116.542 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(th)1(e)-334(logical)-333(v)55(alue)]TJ/F30 9.9626 Tf 131.784 0 Td [(flag=.true.)]TJ +0 g 0 G +/F27 9.9626 Tf -156.691 -18.278 Td [(On)-383(Return)]TJ +0 g 0 G +0 g 0 G + 0 -18.278 Td [(y)]TJ +0 g 0 G +/F8 9.9626 Tf 11.028 0 Td [(the)-333(lo)-28(cal)-333(p)-28(ortion)-333(of)-334(result)-333(submatrix)]TJ/F11 9.9626 Tf 162.364 0 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(.)]TJ -154.179 -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 [(Sp)-28(eci\014ed)-424(as:)-628(an)-424(ob)-56(ject)-424(of)-425(t)28(yp)-28(e)]TJ +0 0 1 rg 0 0 1 RG +/F30 9.9626 Tf 142.027 0 Td [(psb)]TJ ET q -1 0 0 1 270.682 411.847 cm -[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +1 0 0 1 283.148 204.424 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F8 9.9626 Tf 274.766 411.647 Td [(x)-381(,)-888(l)-127(o)-127(c)]TJ +/F30 9.9626 Tf 286.286 204.224 Td [(T)]TJ ET q -1 0 0 1 312.009 411.847 cm -[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +1 0 0 1 292.144 204.424 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F8 9.9626 Tf 316.265 411.647 Td [(x)-415(,)-874(d)-113(e)-112(s)-113(c)]TJ +/F30 9.9626 Tf 295.282 204.224 Td [(vect)]TJ ET q -1 0 0 1 360.541 411.847 cm -[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +1 0 0 1 316.831 204.424 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F8 9.9626 Tf 364.652 411.647 Td [(a)-386(,)-888(i)-127(n)-127(f)-127(o)-415(,)-885(r)-124(o)-123(o)-124(t)-230(\051)]TJ -0 g 0 G +/F30 9.9626 Tf 319.969 204.224 Td [(type)]TJ 0 g 0 G +/F8 9.9626 Tf 25.152 0 Td [(con)28(taining)-425(n)28(um)28(b)-28(ers)-425(of)]TJ -220.319 -11.955 Td [(the)-333(t)27(yp)-27(e)-334(indicated)-333(in)-333(T)83(able)]TJ +0 0 1 rg 0 0 1 RG + [-333(16)]TJ 0 g 0 G -/F27 9.9626 Tf -213.947 -26.424 Td [(T)32(yp)-32(e:)]TJ + [(.)]TJ 0 g 0 G -/F8 9.9626 Tf 33.797 0 Td [(Sync)28(hronous.)]TJ +/F27 9.9626 Tf -24.907 -18.278 Td [(info)]TJ 0 g 0 G -/F27 9.9626 Tf -33.797 -19.505 Td [(On)-383(En)32(try)]TJ +/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 -0 g 0 G - 0 -19.505 Td [(lo)-32(c)]TJ -ET -q -1 0 0 1 165.713 346.412 cm -[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S -Q -BT -/F27 9.9626 Tf 169.151 346.213 Td [(x)]TJ -0 g 0 G -/F8 9.9626 Tf 11.028 0 Td [(the)-333(lo)-28(cal)-333(p)-28(ortion)-333(of)-334(global)-333(dense)-333(matrix)]TJ/F11 9.9626 Tf 176.117 0 Td [(g)-36(l)-20(ob)]TJ -ET -q -1 0 0 1 374.277 346.412 cm -[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S -Q -BT -/F11 9.9626 Tf 377.266 346.213 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(.)]TJ -207.349 -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 [(in)]TJ/F8 9.9626 Tf 9.548 0 Td [(.)]TJ -43.034 -11.955 Td [(Sp)-28(eci\014ed)-255(as:)-405(a)-255(rank)-254(one)-255(or)-255(t)28(w)27(o)-254(arra)27(y)-254(or)-255(an)-255(ob)-56(j)1(e)-1(ct)-254(of)-255(t)28(yp)-28(e)]TJ -0 0 1 rg 0 0 1 RG -/F30 9.9626 Tf 244.743 0 Td [(psb)]TJ -ET -q -1 0 0 1 436.673 298.592 cm -[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S -Q -BT -/F30 9.9626 Tf 439.811 298.392 Td [(T)]TJ -ET -q -1 0 0 1 445.669 298.592 cm -[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S -Q -BT -/F30 9.9626 Tf 448.807 298.392 Td [(vect)]TJ -ET -q -1 0 0 1 470.356 298.592 cm -[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S -Q -BT -/F30 9.9626 Tf 473.495 298.392 Td [(type)]TJ -0 g 0 G -/F8 9.9626 Tf -297.884 -11.955 Td [(indicated)-333(in)-334(T)84(able)]TJ -0 0 1 rg 0 0 1 RG - [-334(16)]TJ -0 g 0 G - [(.)]TJ -0 g 0 G -/F27 9.9626 Tf -24.906 -19.505 Td [(desc)]TJ -ET -q -1 0 0 1 172.619 267.131 cm -[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S -Q -BT -/F27 9.9626 Tf 176.057 266.932 Td [(a)]TJ -0 g 0 G -/F8 9.9626 Tf 10.55 0 Td [(con)28(tains)-334(data)-333(structures)-333(for)-333(c)-1(omm)28(unications.)]TJ -10.996 -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.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 362.845 219.311 cm -[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S -Q -BT -/F30 9.9626 Tf 365.983 219.111 Td [(desc)]TJ -ET -q -1 0 0 1 387.532 219.311 cm -[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S -Q -BT -/F30 9.9626 Tf 390.67 219.111 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 -19.505 Td [(ro)-32(ot)]TJ -0 g 0 G -/F8 9.9626 Tf 25.93 0 Td [(The)-291(pro)-28(cess)-291(that)-291(holds)-291(the)-291(global)-291(cop)28(y)83(.)-430(If)]TJ/F11 9.9626 Tf 182.523 0 Td [(r)-28(oot)]TJ/F8 9.9626 Tf 20.794 0 Td [(=)]TJ/F14 9.9626 Tf 10.516 0 Td [(\000)]TJ/F8 9.9626 Tf 7.749 0 Td [(1)-291(all)-291(the)-291(pro)-28(cesses)-291(will)]TJ -222.606 -11.955 Td [(ha)28(v)28(e)-334(a)-333(cop)28(y)-334(of)-333(the)-333(global)-334(v)28(ector.)]TJ 0 -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 [(optional)]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(v)55(ariable)]TJ/F14 9.9626 Tf 142.079 0 Td [(\000)]TJ/F8 9.9626 Tf 7.749 0 Td [(1)]TJ/F14 9.9626 Tf 7.748 0 Td [(\024)]TJ/F11 9.9626 Tf 10.516 0 Td [(r)-28(oot)]TJ/F14 9.9626 Tf 20.795 0 Td [(\024)]TJ/F11 9.9626 Tf 10.516 0 Td [(np)]TJ/F14 9.9626 Tf 13.206 0 Td [(\000)]TJ/F8 9.9626 Tf 9.963 0 Td [(1,)-333(default)]TJ/F14 9.9626 Tf 44.555 0 Td [(\000)]TJ/F8 9.9626 Tf 7.749 0 Td [(1.)]TJ -0 g 0 G -/F27 9.9626 Tf -299.782 -19.505 Td [(On)-383(Return)]TJ -0 g 0 G -0 g 0 G -/F8 9.9626 Tf 166.874 -29.888 Td [(60)]TJ + 141.968 -35.732 Td [(57)]TJ 0 g 0 G ET endstream endobj -1266 0 obj +1268 0 obj << -/Length 1455 +/Length 651 >> stream 0 g 0 G 0 g 0 G -0 g 0 G -BT -/F27 9.9626 Tf 99.895 706.129 Td [(glob)]TJ -ET -q -1 0 0 1 121.587 706.328 cm -[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S -Q BT -/F27 9.9626 Tf 125.024 706.129 Td [(x)]TJ -0 g 0 G -/F8 9.9626 Tf 11.028 0 Td [(The)-333(arra)27(y)-333(where)-333(the)-334(lo)-27(cal)-334(parts)-333(m)28(ust)-334(b)-27(e)-334(gathered.)]TJ -11.25 -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 [(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 [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(rank)-333(one)-333(or)-334(t)28(w)28(o)-334(arra)28(y)-333(with)-333(the)]TJ/F30 9.9626 Tf 204.4 0 Td [(ALLOCATABLE)]TJ/F8 9.9626 Tf 60.855 0 Td [(attribute.)]TJ -0 g 0 G -/F27 9.9626 Tf -290.162 -19.925 Td [(info)]TJ +/F16 14.3462 Tf 150.705 706.129 Td [(5)-1125(Comm)31(unication)-375(routines)]TJ/F8 9.9626 Tf 0 -21.821 Td [(The)-283(routines)-283(in)-283(this)-283(c)28(hapter)-283(implemen)28(t)-283(v)55(arious)-283(global)-283(comm)28(unication)-283(op)-28(erators)]TJ 0 -11.955 Td [(on)-344(v)28(ectors)-344(asso)-27(c)-1(iated)-343(with)-344(a)-344(d)1(is)-1(cretization)-343(mesh.)-476(F)84(or)-344(auxiliary)-344(comm)28(unication)]TJ 0 -11.955 Td [(routines)-333(not)-334(tied)-333(to)-333(a)-334(d)1(is)-1(cretization)-333(space)-333(see)]TJ +0 0 1 rg 0 0 1 RG + [-334(6)]TJ 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 + [(.)]TJ 0 g 0 G - 141.968 -500.124 Td [(61)]TJ + 166.874 -569.96 Td [(58)]TJ 0 g 0 G ET endstream endobj -1273 0 obj +1276 0 obj << -/Length 7803 +/Length 7269 >> stream 0 g 0 G 0 g 0 G BT -/F16 11.9552 Tf 150.705 706.129 Td [(psb)]TJ +/F16 11.9552 Tf 99.895 706.129 Td [(5.1)-1125(psb)]TJ ET q -1 0 0 1 171.761 706.328 cm +1 0 0 1 151.587 706.328 cm []0 d 0 J 0.398 w 0 0 m 4.035 0 l S Q BT -/F16 11.9552 Tf 175.796 706.129 Td [(scatter)-375(|)-375(Scatter)-375(Global)-375(Dense)-375(Matrix)]TJ/F8 9.9626 Tf -25.091 -19.28 Td [(These)-315(subroutines)-315(scatters)-315(the)-315(p)-28(ortions)-315(of)-315(global)-315(dense)-315(matrix)-315(o)28(wned)-315(b)27(y)-315(a)-315(pro-)]TJ 0 -11.955 Td [(cess)-333(to)-334(all)-333(the)-333(pro)-28(cesses)-334(in)-333(the)-333(pro)-28(cesses)-334(grid.)]TJ/F11 9.9626 Tf 119.021 -25.291 Td [(l)-20(oc)]TJ -ET -q -1 0 0 1 282.633 649.802 cm -[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S -Q -BT -/F11 9.9626 Tf 285.622 649.603 Td [(x)]TJ/F10 6.9738 Tf 5.694 -1.494 Td [(i)]TJ/F14 9.9626 Tf 6.084 1.494 Td [(\040)]TJ/F11 9.9626 Tf 12.73 0 Td [(scatter)]TJ/F8 9.9626 Tf 30.853 0 Td [(\050)]TJ/F11 9.9626 Tf 3.874 0 Td [(g)-36(l)-20(ob)]TJ -ET -q -1 0 0 1 362.838 649.802 cm -[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S -Q -BT -/F11 9.9626 Tf 365.827 649.603 Td [(x)]TJ/F8 9.9626 Tf 5.693 0 Td [(\051)]TJ -220.815 -22.875 Td [(where:)]TJ -0 g 0 G -/F11 9.9626 Tf 0 -21.361 Td [(g)-36(l)-19(o)-1(b)]TJ -ET -q -1 0 0 1 168.775 605.567 cm -[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S -Q -BT -/F11 9.9626 Tf 172.212 605.367 Td [(x)]TJ -0 g 0 G -/F8 9.9626 Tf 10.675 0 Td [(is)-333(the)-334(global)-333(matrix)]TJ/F11 9.9626 Tf 88.917 0 Td [(g)-36(l)-20(ob)]TJ -ET -q -1 0 0 1 289.785 605.567 cm -[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S -Q -BT -/F11 9.9626 Tf 292.773 605.367 Td [(x)]TJ/F7 6.9738 Tf 5.694 -1.494 Td [(1:)]TJ/F10 6.9738 Tf 6.227 0 Td [(m;)]TJ/F7 6.9738 Tf 9.436 0 Td [(1:)]TJ/F10 6.9738 Tf 6.226 0 Td [(n)]TJ -0 g 0 G -/F11 9.9626 Tf -169.651 -20.345 Td [(l)-20(oc)]TJ -ET -q -1 0 0 1 163.701 583.727 cm -[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S -Q -BT -/F11 9.9626 Tf 167.139 583.528 Td [(x)]TJ/F10 6.9738 Tf 5.693 -1.494 Td [(i)]TJ -0 g 0 G -/F8 9.9626 Tf 8.299 1.494 Td [(is)-333(the)-334(lo)-27(cal)-334(p)-28(or)1(tion)-334(of)-333(global)-333(dense)-334(matrix)-333(on)-333(pro)-28(cess)]TJ/F11 9.9626 Tf 234.703 0 Td [(i)]TJ/F8 9.9626 Tf 3.433 0 Td [(.)]TJ +/F16 11.9552 Tf 155.621 706.129 Td [(halo)-375(|)-375(Halo)-375(Data)-375(Comm)31(unication)]TJ/F8 9.9626 Tf -55.726 -18.389 Td [(These)-333(s)-1(u)1(broutines)-334(gathers)-333(the)-333(v)55(alues)-333(of)-334(th)1(e)-334(halo)-333(elemen)28(ts:)]TJ/F11 9.9626 Tf 158.413 -23.188 Td [(x)]TJ/F14 9.9626 Tf 8.462 0 Td [(\040)]TJ/F11 9.9626 Tf 12.73 0 Td [(x)]TJ/F8 9.9626 Tf -179.605 -21.251 Td [(where:)]TJ 0 g 0 G -/F11 9.9626 Tf -268.562 -21.839 Td [(scatter)]TJ +/F11 9.9626 Tf 0 -19.391 Td [(x)]TJ 0 g 0 G -/F8 9.9626 Tf 35.834 0 Td [(is)-333(the)-334(scatter)-333(function.)]TJ +/F8 9.9626 Tf 10.676 0 Td [(is)-333(a)-334(global)-333(dense)-333(submatrix.)]TJ 0 g 0 G 0 g 0 G 0 g 0 G ET q -1 0 0 1 228.797 539.65 cm +1 0 0 1 177.988 602.649 cm []0 d 0 J 0.398 w 0 0 m 187.526 0 l S Q BT -/F11 9.9626 Tf 234.775 531.082 Td [(x)]TJ/F10 6.9738 Tf 5.694 -1.494 Td [(i)]TJ/F11 9.9626 Tf 3.317 1.494 Td [(;)-167(y)]TJ/F27 9.9626 Tf 111.399 0 Td [(Subroutine)]TJ +/F11 9.9626 Tf 183.966 594.081 Td [(\013)]TJ/F8 9.9626 Tf 6.41 0 Td [(,)]TJ/F11 9.9626 Tf 6.088 0 Td [(x)]TJ/F27 9.9626 Tf 107.911 0 Td [(Subroutine)]TJ ET q -1 0 0 1 228.797 527.296 cm +1 0 0 1 177.988 590.295 cm []0 d 0 J 0.398 w 0 0 m 187.526 0 l S Q BT -/F8 9.9626 Tf 234.775 518.729 Td [(In)28(teger)-9028(psb)]TJ +/F8 9.9626 Tf 183.966 581.727 Td [(In)28(teger)-9028(psb)]TJ ET q -1 0 0 1 370.782 518.928 cm +1 0 0 1 319.972 581.926 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 373.771 518.729 Td [(scatter)]TJ -138.996 -11.956 Td [(Short)-333(Precision)-334(Real)-3102(psb)]TJ +/F8 9.9626 Tf 322.961 581.727 Td [(halo)]TJ -138.995 -11.955 Td [(Short)-333(Precision)-333(R)-1(eal)-3102(psb)]TJ ET q -1 0 0 1 370.782 506.973 cm +1 0 0 1 319.972 569.971 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 373.771 506.773 Td [(scatter)]TJ -138.996 -11.955 Td [(Long)-333(Precision)-334(Real)-3314(psb)]TJ +/F8 9.9626 Tf 322.961 569.772 Td [(halo)]TJ -138.995 -11.955 Td [(Long)-333(Precision)-334(Real)-3314(p)1(s)-1(b)]TJ ET q -1 0 0 1 370.782 495.017 cm +1 0 0 1 319.972 558.016 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 373.771 494.818 Td [(scatter)]TJ -138.996 -11.955 Td [(Short)-333(Precision)-334(Complex)-1200(psb)]TJ +/F8 9.9626 Tf 322.961 557.817 Td [(halo)]TJ -138.995 -11.955 Td [(Short)-333(Precision)-333(C)-1(omplex)-1200(p)1(s)-1(b)]TJ ET q -1 0 0 1 370.782 483.062 cm +1 0 0 1 319.972 546.061 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 373.771 482.863 Td [(scatter)]TJ -138.996 -11.955 Td [(Long)-333(Precision)-334(Complex)-1411(psb)]TJ +/F8 9.9626 Tf 322.961 545.862 Td [(halo)]TJ -138.995 -11.956 Td [(Long)-333(Precision)-334(Complex)-1411(psb)]TJ ET q -1 0 0 1 370.782 471.107 cm +1 0 0 1 319.972 534.106 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 373.771 470.908 Td [(scatter)]TJ +/F8 9.9626 Tf 322.961 533.906 Td [(halo)]TJ ET q -1 0 0 1 228.797 467.122 cm +1 0 0 1 177.988 530.121 cm []0 d 0 J 0.398 w 0 0 m 187.526 0 l S Q 0 g 0 G BT -/F8 9.9626 Tf 276.386 439.083 Td [(T)83(able)-333(17:)-444(Data)-334(t)28(yp)-28(es)]TJ +/F8 9.9626 Tf 225.577 502.081 Td [(T)83(able)-333(17:)-444(Data)-334(t)28(yp)-28(es)]TJ 0 g 0 G 0 g 0 G -/F27 9.9626 Tf -124.304 -33.261 Td [(c)-138(a)-138(l)-139(l)]TJ/F8 9.9626 Tf 29.99 0 Td [(p)-148(s)-149(b)]TJ +/F27 9.9626 Tf -124.305 -29.354 Td [(c)-138(a)-138(l)-139(l)]TJ/F8 9.9626 Tf 29.731 0 Td [(p)-122(s)-123(b)]TJ ET q -1 0 0 1 202.107 406.021 cm +1 0 0 1 150.256 472.926 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 206.575 405.822 Td [(s)-149(c)-148(a)-149(t)-148(t)-148(e)-149(r)-254(\050)-215(g)-110(l)-110(o)-110(b)]TJ +/F8 9.9626 Tf 154.464 472.727 Td [(h)-122(a)-123(l)-122(o)-228(\050)-130(x)-209(,)-874(d)-112(e)-113(s)-113(c)]TJ ET q -1 0 0 1 276.66 406.021 cm +1 0 0 1 226.044 472.926 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 280.744 405.822 Td [(x)-381(,)-888(l)-127(o)-127(c)]TJ +/F8 9.9626 Tf 230.155 472.727 Td [(a)-386(,)-914(i)-152(n)-152(f)-152(o)-258(\051)]TJ/F27 9.9626 Tf -128.883 -11.955 Td [(c)-138(a)-138(l)-139(l)]TJ/F8 9.9626 Tf 29.731 0 Td [(p)-122(s)-123(b)]TJ ET q -1 0 0 1 317.987 406.021 cm +1 0 0 1 150.256 460.971 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 322.243 405.822 Td [(x)-415(,)-874(d)-113(e)-112(s)-113(c)]TJ +/F8 9.9626 Tf 154.464 460.772 Td [(h)-122(a)-123(l)-122(o)-228(\050)-130(x)-209(,)-874(d)-112(e)-113(s)-113(c)]TJ ET q -1 0 0 1 366.519 406.021 cm +1 0 0 1 226.044 460.971 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 370.63 405.822 Td [(a)-386(,)-888(i)-127(n)-127(f)-127(o)-415(,)-864(r)-103(o)-103(o)-104(t)-367(,)-808(m)-47(o)-46(l)-47(d)-152(\051)]TJ +/F8 9.9626 Tf 230.155 460.772 Td [(a)-386(,)-888(i)-127(n)-127(f)-127(o)-415(,)-804(w)-43(o)-43(r)-43(k)-247(,)]TJ/F27 9.9626 Tf 91.304 0 Td [(d)-39(a)-39(t)-40(a)]TJ/F8 9.9626 Tf 24.571 0 Td [(\051)]TJ 0 g 0 G 0 g 0 G 0 g 0 G -/F27 9.9626 Tf -219.925 -30.766 Td [(T)32(yp)-32(e:)]TJ +/F27 9.9626 Tf -246.135 -26.961 Td [(T)32(yp)-32(e:)]TJ 0 g 0 G /F8 9.9626 Tf 33.797 0 Td [(Sync)28(hronous.)]TJ 0 g 0 G -/F27 9.9626 Tf -33.797 -21.84 Td [(On)-383(En)32(try)]TJ +/F27 9.9626 Tf -33.797 -19.659 Td [(On)-383(En)32(try)]TJ 0 g 0 G 0 g 0 G - 0 -21.839 Td [(glob)]TJ + 0 -19.658 Td [(x)]TJ +0 g 0 G +/F8 9.9626 Tf 11.028 0 Td [(global)-333(dense)-334(matrix)]TJ/F11 9.9626 Tf 88.917 0 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(.)]TJ -80.732 -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 [(inout)]TJ/F8 9.9626 Tf 26.096 0 Td [(.)]TJ -59.582 -11.955 Td [(Sp)-28(eci\014ed)-255(as:)-405(a)-255(rank)-254(one)-255(or)-255(t)28(w)27(o)-254(arra)27(y)-254(or)-255(an)-255(ob)-55(jec)-1(t)-254(of)-255(t)28(yp)-28(e)]TJ +0 0 1 rg 0 0 1 RG +/F30 9.9626 Tf 244.743 0 Td [(psb)]TJ ET q -1 0 0 1 172.397 331.576 cm -[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S +1 0 0 1 385.864 346.872 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F27 9.9626 Tf 175.834 331.377 Td [(x)]TJ +/F30 9.9626 Tf 389.002 346.673 Td [(T)]TJ +ET +q +1 0 0 1 394.86 346.872 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +Q +BT +/F30 9.9626 Tf 397.998 346.673 Td [(vect)]TJ +ET +q +1 0 0 1 419.547 346.872 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +Q +BT +/F30 9.9626 Tf 422.685 346.673 Td [(type)]TJ 0 g 0 G -/F8 9.9626 Tf 11.028 0 Td [(The)-333(arra)27(y)-333(that)-333(m)28(ust)-334(b)-27(e)-334(scattered)-333(in)28(to)-334(lo)-28(cal)-333(pieces.)]TJ -11.251 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(global)]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(rank)-333(one)-334(or)-333(t)28(w)28(o)-334(arra)28(y)84(.)]TJ +/F8 9.9626 Tf -297.883 -11.955 Td [(con)28(taining)-333(n)27(um)28(b)-28(ers)-333(of)-333(t)28(yp)-28(e)-334(sp)-27(eci\014ed)-334(in)-333(T)83(able)]TJ +0 0 1 rg 0 0 1 RG + [-333(17)]TJ 0 g 0 G -/F27 9.9626 Tf -24.906 -21.839 Td [(desc)]TJ + [(.)]TJ +0 g 0 G +/F27 9.9626 Tf -24.907 -19.658 Td [(desc)]TJ ET q -1 0 0 1 172.619 261.916 cm +1 0 0 1 121.81 315.259 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 176.057 261.717 Td [(a)]TJ +/F27 9.9626 Tf 125.247 315.06 Td [(a)]TJ 0 g 0 G -/F8 9.9626 Tf 10.55 0 Td [(con)28(tains)-334(data)-333(structures)-333(for)-333(c)-1(omm)28(unications.)]TJ -10.996 -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 +/F8 9.9626 Tf 10.551 0 Td [(con)28(tains)-334(d)1(ata)-334(structures)-333(for)-333(com)-1(m)28(unications.)]TJ -10.996 -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 [(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 362.845 214.095 cm +1 0 0 1 312.036 267.438 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 365.983 213.896 Td [(desc)]TJ +/F30 9.9626 Tf 315.174 267.239 Td [(desc)]TJ ET q -1 0 0 1 387.532 214.095 cm +1 0 0 1 336.723 267.438 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 390.67 213.896 Td [(type)]TJ +/F30 9.9626 Tf 339.861 267.239 Td [(type)]TJ 0 g 0 G -/F8 9.9626 Tf 20.922 0 Td [(.)]TJ +/F8 9.9626 Tf 20.921 0 Td [(.)]TJ 0 g 0 G -/F27 9.9626 Tf -260.887 -21.839 Td [(ro)-32(ot)]TJ +/F27 9.9626 Tf -260.887 -19.658 Td [(w)32(ork)]TJ 0 g 0 G -/F8 9.9626 Tf 25.93 0 Td [(The)-420(pro)-27(ce)-1(ss)-419(that)-420(holds)-419(the)-420(global)-420(cop)28(y)83(.)-703(If)]TJ/F11 9.9626 Tf 194.21 0 Td [(r)-28(oot)]TJ/F8 9.9626 Tf 22.228 0 Td [(=)]TJ/F14 9.9626 Tf 11.949 0 Td [(\000)]TJ/F8 9.9626 Tf 7.749 0 Td [(1)-420(all)-419(the)-420(pro)-28(cesses)]TJ -237.16 -11.956 Td [(ha)28(v)28(e)-334(a)-333(cop)28(y)-334(of)-333(the)-333(global)-334(v)28(ector.)]TJ 0 -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 [(optional)]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.547 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-344(as)-1(:)-467(an)-344(in)28(tege)-1(r)-344(v)55(ariabl)1(e)]TJ/F14 9.9626 Tf 142.757 0 Td [(\000)]TJ/F8 9.9626 Tf 7.749 0 Td [(1)]TJ/F14 9.9626 Tf 7.937 0 Td [(\024)]TJ/F11 9.9626 Tf 10.705 0 Td [(r)-28(oot)]TJ/F14 9.9626 Tf 20.983 0 Td [(\024)]TJ/F11 9.9626 Tf 10.704 0 Td [(np)]TJ/F14 9.9626 Tf 13.282 0 Td [(\000)]TJ/F8 9.9626 Tf 10.038 0 Td [(1,)-347(default)]TJ/F30 9.9626 Tf 44.809 0 Td [(psb_root_)]TJ/F8 9.9626 Tf 47.073 0 Td [(,)]TJ -316.037 -11.955 Td [(i.e.)-444(pro)-28(cess)-334(0.)]TJ +/F8 9.9626 Tf 29.432 0 Td [(the)-333(w)27(ork)-333(arra)28(y)83(.)]TJ -4.525 -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 [(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)-333(as:)-445(a)-333(rank)-333(one)-333(arra)27(y)-333(of)-333(the)-334(same)-333(t)28(yp)-28(e)-333(of)]TJ/F11 9.9626 Tf 220.756 0 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(.)]TJ 0 g 0 G - 141.968 -29.888 Td [(62)]TJ +/F27 9.9626 Tf -251.357 -19.659 Td [(data)]TJ +0 g 0 G +/F8 9.9626 Tf 26.941 0 Td [(index)-333(list)-334(selector.)]TJ -2.034 -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 [(Sp)-28(eci\014ed)-222(as:)-389(an)-222(in)28(teger.)-408(V)84(alues:)]TJ/F30 9.9626 Tf 136.479 0 Td [(psb_comm_halo_)]TJ/F8 9.9626 Tf 73.225 0 Td [(,)]TJ/F30 9.9626 Tf 2.767 0 Td [(psb_comm_mov_)]TJ/F8 9.9626 Tf 67.995 0 Td [(,)]TJ/F30 9.9626 Tf 5.202 0 Td [(psb_comm_ext_)]TJ/F8 9.9626 Tf 67.995 0 Td [(,)]TJ -353.663 -11.955 Td [(default:)]TJ/F30 9.9626 Tf 39.089 0 Td [(psb_comm_halo_)]TJ/F8 9.9626 Tf 73.224 0 Td [(.)-705(Cho)-27(os)-1(es)-420(the)-420(index)-420(list)-420(on)-420(whic)28(h)-420(to)-420(base)-420(the)]TJ -112.313 -11.955 Td [(data)-333(exc)27(hange.)]TJ +0 g 0 G + 141.968 -29.888 Td [(59)]TJ 0 g 0 G ET endstream endobj -1282 0 obj +1286 0 obj << -/Length 4181 +/Length 3196 >> stream 0 g 0 G 0 g 0 G 0 g 0 G BT -/F27 9.9626 Tf 99.895 706.129 Td [(mold)]TJ +/F27 9.9626 Tf 150.705 706.129 Td [(On)-383(Return)]TJ 0 g 0 G -/F8 9.9626 Tf 29.805 0 Td [(The)-333(desired)-334(dynamic)-333(t)28(yp)-28(e)-333(for)-334(the)-333(in)28(ternal)-333(v)27(ector)-333(storage.)]TJ -4.898 -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 [(optional)]TJ/F8 9.9626 Tf 40.577 0 Td [(.)]TJ -70.188 -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)-273(as:)-414(an)-274(ob)-55(ject)-273(of)-274(a)-273(class)-273(deriv)28(ed)-274(from)]TJ/F30 9.9626 Tf 198.26 0 Td [(psb)]TJ -ET -q -1 0 0 1 339.381 658.507 cm -[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S -Q -BT -/F30 9.9626 Tf 342.519 658.308 Td [(T)]TJ -ET -q -1 0 0 1 348.377 658.507 cm -[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S -Q -BT -/F30 9.9626 Tf 351.515 658.308 Td [(base)]TJ -ET -q -1 0 0 1 373.064 658.507 cm -[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S -Q -BT -/F30 9.9626 Tf 376.202 658.308 Td [(vect)]TJ -ET -q -1 0 0 1 397.751 658.507 cm -[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S -Q -BT -/F30 9.9626 Tf 400.89 658.308 Td [(type)]TJ/F8 9.9626 Tf 20.921 0 Td [(;)-293(this)]TJ -297.009 -11.955 Td [(is)-333(only)-334(allo)28(w)28(ed)-333(when)-334(lo)-27(c)]TJ -ET -q -1 0 0 1 231.17 646.552 cm -[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S -Q -BT -/F8 9.9626 Tf 234.159 646.353 Td [(x)-333(is)-334(of)-333(t)28(yp)-28(e)]TJ +0 g 0 G + 0 -19.925 Td [(x)]TJ +0 g 0 G +/F8 9.9626 Tf 11.028 0 Td [(global)-333(dense)-334(result)-333(matrix)]TJ/F11 9.9626 Tf 116.674 0 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(.)]TJ -108.49 -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 [(inout)]TJ/F8 9.9626 Tf 26.096 0 Td [(.)]TJ -59.582 -11.955 Td [(Returned)-271(as:)-414(a)-271(rank)-271(one)-271(or)-272(t)28(w)28(o)-271(arra)28(y)-272(con)28(taining)-271(n)28(um)28(b)-28(ers)-271(of)-272(t)28(yp)-28(e)-271(sp)-28(eci\014ed)]TJ 0 -11.955 Td [(in)-333(T)83(able)]TJ 0 0 1 rg 0 0 1 RG -/F30 9.9626 Tf 52.359 0 Td [(psb)]TJ -ET -q -1 0 0 1 302.837 646.552 cm -[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S -Q -BT -/F30 9.9626 Tf 305.975 646.353 Td [(T)]TJ -ET -q -1 0 0 1 311.833 646.552 cm -[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S -Q -BT -/F30 9.9626 Tf 314.971 646.353 Td [(vect)]TJ -ET -q -1 0 0 1 336.52 646.552 cm -[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S -Q -BT -/F30 9.9626 Tf 339.658 646.353 Td [(type)]TJ + [-333(17)]TJ 0 g 0 G -/F8 9.9626 Tf 20.922 0 Td [(.)]TJ + [(.)]TJ 0 g 0 G -/F27 9.9626 Tf -260.685 -19.925 Td [(On)-383(Return)]TJ +/F27 9.9626 Tf -24.906 -19.926 Td [(info)]TJ +0 g 0 G +/F8 9.9626 Tf 23.758 0 Td [(the)-333(lo)-28(cal)-333(p)-28(ortion)-333(of)-334(result)-333(submatrix)]TJ/F11 9.9626 Tf 162.364 0 Td [(y)]TJ/F8 9.9626 Tf 5.241 0 Td [(.)]TJ -166.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 [(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(that)-333(con)28(tains)-333(an)-334(error)-333(co)-28(de.)]TJ 0 g 0 G 0 g 0 G - 0 -19.926 Td [(lo)-32(c)]TJ -ET -q -1 0 0 1 114.904 606.702 cm -[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S -Q -BT -/F27 9.9626 Tf 118.341 606.502 Td [(x)]TJ 0 g 0 G -/F8 9.9626 Tf 11.028 0 Td [(the)-333(lo)-28(cal)-333(p)-28(ortion)-333(of)-334(global)-333(dense)-333(matrix)]TJ/F11 9.9626 Tf 176.118 0 Td [(g)-36(l)-19(o)-1(b)]TJ -ET -q -1 0 0 1 323.467 606.702 cm -[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S -Q -BT -/F11 9.9626 Tf 326.456 606.502 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(.)]TJ -207.348 -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 [(Sp)-28(eci\014ed)-244(as:)-400(a)-244(ran)1(k)-244(one)-244(or)-244(t)27(w)28(o)-244(ALLOCA)83(T)84(ABLE)-244(arra)28(y)-244(or)-244(an)-244(ob)-56(ject)-244(of)-244(t)28(yp)-28(e)]TJ -0 0 1 rg 0 0 1 RG -/F30 9.9626 Tf 0 -11.955 Td [(psb)]TJ ET +1 0 0 1 210.511 337.279 cm q -1 0 0 1 141.121 546.926 cm -[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S -Q -BT -/F30 9.9626 Tf 144.259 546.727 Td [(T)]TJ -ET +.45 0 0 .45 0 0 cm q -1 0 0 1 150.117 546.926 cm -[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +1 0 0 1 0 0 cm +/Im3 Do Q -BT -/F30 9.9626 Tf 153.255 546.727 Td [(vect)]TJ -ET -q -1 0 0 1 174.804 546.926 cm -[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q -BT -/F30 9.9626 Tf 177.942 546.727 Td [(type)]TJ 0 g 0 G -/F8 9.9626 Tf 24.242 0 Td [(con)28(taining)-333(n)27(um)28(b)-28(ers)-333(of)-333(the)-334(t)28(yp)-28(e)-333(indicated)-333(in)-333(T)83(able)]TJ -0 0 1 rg 0 0 1 RG - [-334(17)]TJ +1 0 0 1 -210.511 -337.279 cm +BT +/F8 9.9626 Tf 240.078 305.398 Td [(Figure)-333(7:)-445(Sample)-333(discretization)-333(mesh.)]TJ 0 g 0 G - [(.)]TJ 0 g 0 G -/F27 9.9626 Tf -102.289 -19.926 Td [(info)]TJ +/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 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 + [(,)-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.956 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.955 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 - 141.968 -388.543 Td [(63)]TJ + 166.874 -119.319 Td [(60)]TJ 0 g 0 G ET endstream endobj -1286 0 obj +1282 0 obj << -/Length 6540 +/Type /XObject +/Subtype /Form +/FormType 1 +/PTEX.FileName (./figures/try8x8.pdf) +/PTEX.PageNumber 1 +/PTEX.InfoDict 1289 0 R +/BBox [0 0 498 439] +/Resources << +/ProcSet [ /PDF /Text ] +/ExtGState << +/R7 1290 0 R +>>/Font << /R8 1291 0 R/R10 1292 0 R>> +>> +/Length 3349 +/Filter /FlateDecode >> stream -0 g 0 G -0 g 0 G -BT -/F16 14.3462 Tf 150.705 706.129 Td [(6)-1125(Data)-375(managemen)31(t)-375(routines)]TJ/F16 11.9552 Tf 0 -23.814 Td [(psb)]TJ -ET -q -1 0 0 1 171.761 682.515 cm -[]0 d 0 J 0.398 w 0 0 m 4.035 0 l S -Q -BT -/F16 11.9552 Tf 175.796 682.315 Td [(cdall)-375(|)-375(Allo)-31(cates)-375(a)-375(comm)31(unication)-375(descriptor)]TJ -0 g 0 G -0 g 0 G -/F30 9.9626 Tf -25.091 -18.389 Td [(call)-525(psb_cdall\050icontxt,)-525(desc_a,)-525(info,mg=mg,parts=parts\051)]TJ 0 -11.955 Td [(call)-525(psb_cdall\050icontxt,)-525(desc_a,)-525(info,vg=vg,[mg=mg,flag=flag]\051)]TJ 0 -11.955 Td [(call)-525(psb_cdall\050icontxt,)-525(desc_a,)-525(info,vl=vl,[nl=nl,globalcheck=.false.,lidx=lidx]\051)]TJ 0 -11.955 Td [(call)-525(psb_cdall\050icontxt,)-525(desc_a,)-525(info,nl=nl\051)]TJ 0 -11.956 Td [(call)-525(psb_cdall\050icontxt,)-525(desc_a,)-525(info,mg=mg,repl=.true.\051)]TJ/F8 9.9626 Tf 14.944 -20.107 Td [(This)-314(subroutine)-314(initializes)-315(th)1(e)-315(comm)28(unication)-314(descriptor)-314(ass)-1(o)-27(ciated)-315(with)-314(an)]TJ -14.944 -11.955 Td [(index)-326(space.)-442(One)-326(of)-326(the)-327(op)1(tional)-327(argu)1(m)-1(en)28(ts)]TJ/F30 9.9626 Tf 193.679 0 Td [(parts)]TJ/F8 9.9626 Tf 26.152 0 Td [(,)]TJ/F30 9.9626 Tf 6.031 0 Td [(vg)]TJ/F8 9.9626 Tf 10.461 0 Td [(,)]TJ/F30 9.9626 Tf 6.031 0 Td [(vl)]TJ/F8 9.9626 Tf 10.46 0 Td [(,)]TJ/F30 9.9626 Tf 6.031 0 Td [(nl)]TJ/F8 9.9626 Tf 13.71 0 Td [(or)]TJ/F30 9.9626 Tf 12.133 0 Td [(repl)]TJ/F8 9.9626 Tf 24.17 0 Td [(m)28(ust)-326(b)-28(e)]TJ -308.858 -11.955 Td [(sp)-28(eci\014ed,)-333(thereb)28(y)-334(c)28(ho)-28(osing)-333(the)-333(sp)-28(eci\014c)-333(initialization)-334(strategy)84(.)]TJ -0 g 0 G -/F27 9.9626 Tf 0 -18.477 Td [(On)-383(En)32(try)]TJ -0 g 0 G -0 g 0 G - 0 -19.201 Td [(T)32(yp)-32(e:)]TJ -0 g 0 G -/F8 9.9626 Tf 33.797 0 Td [(Sync)28(hronous.)]TJ -0 g 0 G -/F27 9.9626 Tf -33.797 -19.201 Td [(icon)32(txt)]TJ -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 27.95 0 Td [(global)]TJ/F8 9.9626 Tf 29.757 0 Td [(.)]TJ -57.707 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.183 0 Td [(required)]TJ/F8 9.9626 Tf 41.898 0 Td [(.)]TJ -67.081 -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(a)-1(n)-333(in)28(teger)-333(v)55(alue.)]TJ -0 g 0 G -/F27 9.9626 Tf -24.907 -19.201 Td [(vg)]TJ -0 g 0 G -/F8 9.9626 Tf 16.757 0 Td [(Data)-333(allo)-28(cation:)-444(eac)27(h)-333(index)]TJ/F11 9.9626 Tf 123.564 0 Td [(i)]TJ/F14 9.9626 Tf 6.2 0 Td [(2)-278(f)]TJ/F8 9.9626 Tf 14.39 0 Td [(1)]TJ/F11 9.9626 Tf 6.642 0 Td [(:)-167(:)-166(:)-167(mg)]TJ/F14 9.9626 Tf 27.14 0 Td [(g)]TJ/F8 9.9626 Tf 8.302 0 Td [(is)-333(allo)-28(cated)-334(t)1(o)-334(pro)-28(cess)]TJ/F11 9.9626 Tf 99.267 0 Td [(v)-36(g)]TJ/F8 9.9626 Tf 10.296 0 Td [(\050)]TJ/F11 9.9626 Tf 3.874 0 Td [(i)]TJ/F8 9.9626 Tf 3.433 0 Td [(\051.)]TJ -294.958 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 27.95 0 Td [(global)]TJ/F8 9.9626 Tf 29.757 0 Td [(.)]TJ -57.707 -11.956 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.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(in)28(teger)-333(arra)27(y)84(.)]TJ -0 g 0 G -/F27 9.9626 Tf -24.907 -19.201 Td [(\015ag)]TJ -0 g 0 G -/F8 9.9626 Tf 22.644 0 Td [(Sp)-28(eci\014es)-333(whether)-333(e)-1(n)28(tries)-333(in)]TJ/F11 9.9626 Tf 121.932 0 Td [(v)-36(g)]TJ/F8 9.9626 Tf 13.617 0 Td [(are)-333(zero-)-334(or)-333(one-based.)]TJ -133.286 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 27.95 0 Td [(global)]TJ/F8 9.9626 Tf 29.757 0 Td [(.)]TJ -57.707 -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(v)55(alue)-333(0)]TJ/F11 9.9626 Tf 135.409 0 Td [(;)]TJ/F8 9.9626 Tf 4.428 0 Td [(1,)-333(default)-334(0.)]TJ -0 g 0 G -/F27 9.9626 Tf -164.744 -19.2 Td [(mg)]TJ -0 g 0 G -/F8 9.9626 Tf 20.257 0 Td [(the)-333(\050global\051)-334(n)28(um)28(b)-28(er)-333(of)-333(ro)27(ws)-333(of)-333(the)-334(probl)1(e)-1(m.)]TJ 4.65 -11.956 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 27.95 0 Td [(global)]TJ/F8 9.9626 Tf 29.757 0 Td [(.)]TJ -57.707 -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.955 Td [(Sp)-28(eci\014ed)-332(as:)-444(an)-333(in)28(teger)-333(v)56(alue.)-444(I)-1(t)-332(is)-333(required)-332(if)]TJ/F30 9.9626 Tf 203.266 0 Td [(parts)]TJ/F8 9.9626 Tf 29.465 0 Td [(or)]TJ/F30 9.9626 Tf 12.198 0 Td [(repl)]TJ/F8 9.9626 Tf 24.235 0 Td [(is)-333(sp)-27(ec)-1(i)1(\014e)-1(d)1(,)]TJ -269.164 -11.955 Td [(it)-333(is)-334(optional)-333(if)]TJ/F30 9.9626 Tf 67.856 0 Td [(vg)]TJ/F8 9.9626 Tf 13.782 0 Td [(is)-333(sp)-28(eci\014ed.)]TJ -0 g 0 G -/F27 9.9626 Tf -106.545 -19.201 Td [(parts)]TJ -0 g 0 G -/F8 9.9626 Tf 30.609 0 Td [(the)-333(subroutine)-334(th)1(at)-334(de\014nes)-333(the)-333(partitioning)-334(sc)28(heme.)]TJ -5.702 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 27.95 0 Td [(global)]TJ/F8 9.9626 Tf 29.757 0 Td [(.)]TJ -57.707 -11.956 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.183 0 Td [(required)]TJ/F8 9.9626 Tf 41.898 0 Td [(.)]TJ -67.081 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(subroutine.)]TJ -0 g 0 G -/F27 9.9626 Tf -24.907 -19.201 Td [(vl)]TJ -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 [(64)]TJ -0 g 0 G -ET - +xœ]›½Ž$¹„ý~ŠötkìÿªXtÒj½ÃY}Ð-q’¡×WWfDFr±Æ$ɬªo›1d%ç÷gù¨ÏrÿÃÏ×o¿Ìç¯ÿ}Œãù¿‡=¿üù1Žùœs<³hÔñü÷ã×^Ù½ŽÔ}ì®c©¿õÅþVzê_=ú©þ>⩽¦ÇŽí'ž»!ïˆw È;\)ònÒBBZÃ!-$äݤ…5=ÖOÈztRZHLk€Óâ•/©ÇDµX=&¬·œÖcâZ ¼× b!r+“ÈÙ@¶xå €ì1‘­d‰ì-Gö˜ÈÖ²Ç5ÙGù¬|‡|7ˆ|Ç+_@d‹ùnÙâ@¶-ä»Ed‹k ²¹×И…D¶-^ù {LdkÙc"{Ë‘=&²µ€ìqÍ@ö‘@>Cqò)ÍY¼òD>³ì¬Eä3 Ï[@>³ô¬Eä3‹ÏiŠy´Ÿ…aeMò³xå èf-ËÏZô³–åç-8ZËò³=­eù9M€>åyÝœÅFê@l#mÄH?Ki³h¤œy¤ž1ÒŽ–FêÙb¤®+Ô‘ ¬ü|cîÇÌ3FŒ9FŒ™#7³Fê#Æ#ÆŒcÖH1ÇÈ!€•ŸïÌ¥‰ùŽÅì#ÎÌgƈ1ÇH=cÄ™9âÌ>âÌ1RDàÌ9°òó¹+˜-fŒsŒ3GnfÔ3FŒ9FŒ#Ƭ‘"cŽ‘C+?ߘëÁlq0cĘcĘ9r3k¤ž1bÌ1bÌ1fsŒXùùÎ<¤A‹Å<¤Áqæ! j¤ž1âÌ#k#Î<²922Á!€•ŸoÌ—$xe^à•õwI~WVß%ñ]Y{—¤weå]Þ•tw…ì®MuIt›æ’ä6Å%ÁmzKrÛԖĶi-I-+MBK½ð9 Ë1>úó(çÇ,Ým;V¥¯Ç(ó£ñ7P?#¿Óz_þq"ûýmó»ÜÁëw¿›`ùÁòz|ÛíÌÚÑìwM,¤…fÍ~F~§Ã:Z?kF³ßE±Öš5í©ž, Í]ËÌ`ÍŒf¿ cí/4kÞÈï4R •¹¡U|ö$´»é3Ðü.ßvsò°ohSaAB»›†æù~éhíèÍ~ëÇŽFhÖ´§z~° dáµ2š-Eb‡%4kÞÈï´EG«kmh…Ÿ}éÚÝt€E4ÜåÛn5öM¶|Š=aBëò;Ýhc“­¯bß(4k:@Èwù¶¹‹Eï/õ}3^<1sÁ„˜Ýatε©Û³>øµI`AÌ&GR€0wªÆIØ¿ÿüúOQu}ýçN5h=u÷ |ù§¨z|ù·õœÅîOïžó¶û××cdg¶ÌóôXñ½°ø³y‰ìÛ¶Ö +;ãÍï,_0 Ž 7k‚3ãŠM·à¼¿Dz,íÙ·qž<à¬åõ|Ád8¬Ðlåã…ëͺâM༿Dz¬áçpŸ?,pw SpeŸV.Å<î®cB`jgý%Òc±æp0©È>ðùÃÔxó»åõ|Á$8®¹,vŸÂõf_ñNFpÞ_"=Ve/,ÐÖWøù»­în`\òµmqeqÏ‚0‹÷H ®CHåàÆ&3°x×pÖ€‘œ-¯§,„[áú‰ù˜›&ÔÀd.¹œŒfÅì…e1,jÙ’µ¤07®Æ©Ø•@!Lqu aî\ƒFT7¡ fâJî–÷±ÃÝŽ+ÜM/»Þ·×üÀ"Îw·ÈZh!öùA¾™¿ÂóùÄý­ß˜?´Cœõá¾/¬ƒÏûAúÈ~—ö•ÒïüúÉi™Y“âˆì 1 ÃÄ<qVÖÆ¢4"›,YIsCk1#›0B3¡õ¤‹¹¡ð§ºÙ +U1š\o{¯Wµçlµ…ëé}ùëÑJ“ë­´\ZŽ!¶Ybþín¨جòþÖ_µ«Oâã;¼ª'®7wÓ›þàs×[i¸´"óØ]Œù·»©|Þ_µµOæÃûºªÝ'®7wS"øÜõVZ .-ÊÏÌW9p=òYÕþV<‰ï檶 ä뜸ùÌõVZ .­ËïŸÚÿŠ'óÁõ¦6¨¸Þ]/ÊœÁçý‡Ö†ªp.¾Êy ëÏú§¶ÀâI|t½©=*ù:ç…®>ë?´6T5|t1䜺îoýS»`ñ$>ºÞÔ6×»ëEi9ø¼ÿÐÚP•‹«+󕘸ø¬j#,žÌ7¤ºø:ç…®¾N}0ÿÐ qÖ‡»[”̓Ïû§öÂâI|—ä®ç×ONËÌê˜Gd±J³0|Ìó'aem,J#²gÙ\O…Ÿõ¹¡µ˜‘M¡‹™ÐzÒÅÜÐFøSÝl…ª˜ M®·Õ}›v¬½•p=Uí_^K¸žWƒ‘_´FCl³ÄüÛÝpÁf•÷·þ¦±x+¹M;V\﵇ª¢žçý%%ŠÖh»‹1ÿv7H>ïoÚ‹'ó¡jÛ´cÅõ^€¨ªLàyÞ_Re¢h†xf¾Êy€ë‘Ïú›vÄâI|¬Ð6íXÉ×9/p=òYI剢5šÇîbÌ?8p=Þßú›vÄâI|¬Æ6íXq½—"ªjxž÷—T£(Z£!^™¯Ä<¸ë‘Ïú›vÄâÉ|Cú`á|ó×#_§>˜_´FCœõa7ÁçýM;bñ$¾Kòˆúƒ_?9-3«cR‘]b•f!} ù‹“°²6¥Ùmd×Ëe×–ö¬ñÕ‹oÞöÅã÷n&´žt17´þT7[¡*fBK®—ÎÁx ›ªZèàÏ]-r½SkC”yñÔŒÏòÍÝN.xëŸÚ‹'ñÑõ¦v¬¸WU.ð<ôkm¨S1࣋!ßÜ-5Ÿ÷OíˆÅ“ùàzS;V\²«Šxúµ6Ô òÁÅÀW9t½©ò¦øÊ>¿t½©+ù:ç…®>ï×ÚP§]ÀGCþÁy ëMU0ü¹ÈŸ×îzéÜŠÇp±© +†¸úµ6ÔÉ–O¹¬ÌWbàzSE 0¬àË®—Ψxܳ>P…Uƒ|úˆò¬Öhˆ³>ÜÝâð^ðyÿÔŽX<‰ï’<ÂÇfÔ1â@aÐMŠC5Ú¢"mZ½!qVÖÆ¢4"{^›ëéŠÏúÜÐZÌÈ&ŒÐÅLh=ébnh#ü©n¶BUÌ„&×]Õ ÝÅFS5Cg_QUÍðӂȯZ£!ö²{U5'"ýÈCS5 žßÛæzÖæI¿®+®÷ó'MÕ <Ïû«Ö†:%>A©ªfè\dðy׎X<™§úºv¬¸Þ¡4U3ð<ï¯ZêD ùp¥ªš¡â³þ®±xOðuíXÉ×9/<ŠRUÍÀ‰¿|p+q¥ªš¡³¨Áçý];bñ$>žÖëÚ±âz?ŽÒTÍÀó¼¿jm¨“~/žú[™¯Ä<¸ë‘Ïú»vÄâÉ|Cú€‹‘¯s^x(¥ªšá]ú€[!ÎúðS)MÕ ÞPÌïms=k_’} ×ONËÌê˜Gd×X¥YgSjT3âÔr°-J#²{Ë®ç_ŤŒ¹¡µ˜‘M¡‹™ÐzÒÅÜÐFøSÝl…ª˜ M®÷Ó[ÎÏŸŸåùËãý¤†¿õ8šÇ÷‰<ÿÓ”ÿüúøýQ=Æ×oÏ?~}üøåzÖöüúχÿeK}ŽãýÜò±ž_{üôCýô¹Ï£üÐ>}¥”:~ü<ðóÄωŸ×§Ÿ¿þåíÝíýŸšÇóë/Îñé뿟ߟvñvÿ®Ý¾k×ïÚeoë»öõ]{Þí·¯??·~¢ûCÞŸ#²ÚaYïá÷…–aXŽí)Ãüã—÷'W¯û³êíãýŸ¼žkà®3Ô{οþõÝ*ŸþðøÓ×Çßßÿþ{Ü endstream endobj -1291 0 obj +1295 0 obj << -/Length 6638 +/Filter /FlateDecode +/Subtype /Type1C +/Length 13073 >> stream -0 g 0 G -0 g 0 G -0 g 0 G -BT -/F27 9.9626 Tf 99.895 706.129 Td [(nl)]TJ -0 g 0 G -/F8 9.9626 Tf 14.529 0 Td [(Data)-223(allo)-28(cation:)-389(in)-222(a)-223(generalized)-223(blo)-28(c)28(k-ro)28(w)-223(distribution)-223(the)-222(n)27(um)28(b)-28(er)-222(of)-223(indices)]TJ 10.378 -11.955 Td [(b)-28(elonging)-333(to)-333(the)-334(curren)28(t)-333(pro)-28(cess.)]TJ 0 -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.956 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.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(alue.)-444(Ma)28(y)-334(b)-27(e)-334(sp)-28(eci\014ed)-333(together)-333(with)]TJ/F30 9.9626 Tf 272.479 0 Td [(vl)]TJ/F8 9.9626 Tf 10.46 0 Td [(.)]TJ -0 g 0 G -/F27 9.9626 Tf -307.846 -20.135 Td [(repl)]TJ -0 g 0 G -/F8 9.9626 Tf 24.499 0 Td [(Data)-351(allo)-28(cation:)-480(build)-351(a)-351(replicated)-351(index)-351(space)-351(\050i.e.)-498(all)-351(pro)-28(cesses)-351(o)27(wn)-351(all)]TJ 0.408 -11.955 Td [(indices\051.)]TJ 0 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 27.951 0 Td [(global)]TJ/F8 9.9626 Tf 29.756 0 Td [(.)]TJ -57.707 -11.956 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.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(th)1(e)-334(logical)-333(v)55(alue)]TJ/F30 9.9626 Tf 131.784 0 Td [(.true.)]TJ -0 g 0 G -/F27 9.9626 Tf -156.691 -20.135 Td [(globalc)32(hec)32(k)]TJ -0 g 0 G -/F8 9.9626 Tf 61.948 0 Td [(Data)-333(allo)-28(cation:)-445(d)1(o)-334(global)-333(c)28(hec)27(ks)-333(on)-333(the)-334(lo)-27(cal)-334(index)-333(lists)]TJ/F30 9.9626 Tf 250.201 0 Td [(vl)]TJ/F8 9.9626 Tf -287.242 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 27.951 0 Td [(global)]TJ/F8 9.9626 Tf 29.756 0 Td [(.)]TJ -57.707 -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.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(logical)-333(v)55(alue,)-333(default:)]TJ/F30 9.9626 Tf 163.056 0 Td [(.false.)]TJ -0 g 0 G -/F27 9.9626 Tf -187.963 -20.135 Td [(lidx)]TJ -0 g 0 G -/F8 9.9626 Tf 23.758 0 Td [(Data)-353(allo)-28(cation:)-484(the)-353(set)-353(of)-353(lo)-28(cal)-353(indices)]TJ/F11 9.9626 Tf 176.172 0 Td [(l)-20(idx)]TJ/F8 9.9626 Tf 17.48 0 Td [(\0501)-311(:)]TJ/F11 9.9626 Tf 17.814 0 Td [(nl)]TJ/F8 9.9626 Tf 9.149 0 Td [(\051)-353(to)-353(b)-28(e)-353(assigned)-353(to)-353(the)]TJ -219.466 -11.955 Td [(global)-333(indices)]TJ/F11 9.9626 Tf 62.045 0 Td [(v)-36(l)]TJ/F8 9.9626 Tf 8.355 0 Td [(.)]TJ -70.4 -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.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.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(an)-333(in)28(teger)-333(arra)27(y)84(.)]TJ -0 g 0 G -/F27 9.9626 Tf -24.907 -22.127 Td [(On)-383(Return)]TJ -0 g 0 G -0 g 0 G - 0 -20.135 Td [(desc)]TJ -ET -q -1 0 0 1 121.81 376.512 cm -[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S -Q -BT -/F27 9.9626 Tf 125.247 376.313 Td [(a)]TJ -0 g 0 G -/F8 9.9626 Tf 10.551 0 Td [(the)-333(comm)27(unication)-333(descriptor.)]TJ -10.996 -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.183 0 Td [(required)]TJ/F8 9.9626 Tf 41.899 0 Td [(.)]TJ -67.082 -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 [(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 328.692 cm -[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S -Q -BT -/F30 9.9626 Tf 315.174 328.492 Td [(desc)]TJ -ET -q -1 0 0 1 336.723 328.692 cm -[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S -Q -BT -/F30 9.9626 Tf 339.861 328.492 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 -20.135 Td [(info)]TJ -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/F16 11.9552 Tf -24.907 -22.128 Td [(Notes)]TJ -0 g 0 G -/F8 9.9626 Tf 12.177 -20.082 Td [(1.)]TJ -0 g 0 G - [-500(One)-241(of)-241(the)-240(optional)-241(argumen)28(ts)]TJ/F30 9.9626 Tf 144.914 0 Td [(parts)]TJ/F8 9.9626 Tf 26.152 0 Td [(,)]TJ/F30 9.9626 Tf 5.351 0 Td [(vg)]TJ/F8 9.9626 Tf 10.461 0 Td [(,)]TJ/F30 9.9626 Tf 5.351 0 Td [(vl)]TJ/F8 9.9626 Tf 10.46 0 Td [(,)]TJ/F30 9.9626 Tf 5.351 0 Td [(nl)]TJ/F8 9.9626 Tf 12.86 0 Td [(or)]TJ/F30 9.9626 Tf 11.283 0 Td [(repl)]TJ/F8 9.9626 Tf 23.32 0 Td [(m)28(ust)-241(b)-28(e)-241(sp)-27(e)-1(ci\014)1(e)-1(d)1(,)]TJ -242.773 -11.956 Td [(thereb)28(y)-334(c)28(ho)-28(osing)-333(the)-333(initialization)-333(strategy)-334(as)-333(follo)28(ws:)]TJ -0 g 0 G -/F27 9.9626 Tf 0 -20.135 Td [(parts)]TJ -0 g 0 G -/F8 9.9626 Tf 30.609 0 Td [(In)-337(this)-338(case)-338(w)28(e)-337(ha)28(v)27(e)-337(a)-338(subroutine)-337(sp)-28(ecifying)-337(the)-338(mapping)-337(b)-28(et)28(w)28(een)]TJ -8.691 -11.955 Td [(global)-225(indices)-225(and)-225(pro)-28(cess/lo)-27(c)-1(al)-225(i)1(ndex)-225(pairs.)-409(If)-225(this)-225(optional)-225(ar)1(gume)-1(n)28(t)]TJ 0 -11.955 Td [(is)-316(sp)-28(eci\014ed,)-320(then)-316(it)-317(is)-316(mandatory)-316(to)-317(sp)-28(ecify)-316(the)-316(argumen)28(t)]TJ/F30 9.9626 Tf 251.562 0 Td [(mg)]TJ/F8 9.9626 Tf 13.613 0 Td [(as)-316(w)27(ell.)]TJ -265.175 -11.955 Td [(The)-333(subroutine)-334(m)28(ust)-333(conform)-333(to)-334(the)-333(follo)28(wing)-334(in)28(terface:)]TJ -0 g 0 G -0 g 0 G -/F30 9.9626 Tf 10.461 -18.09 Td [(interface)]TJ 15.691 -11.955 Td [(subroutine)-525(psb_parts\050glob_index,mg,np,pv,nv\051)]TJ -0 g 0 G -/F8 9.9626 Tf 93.898 -29.888 Td [(65)]TJ -0 g 0 G -ET - +xœºwxWö?laÏŒ˜ r‘G¶5h†ôB'ZBïL·1`pø˶$K–eK²%«Yr•-˽w Lï%„ ”$$$¤m²›Æî{½ûýÈ–ßû<ïûýãõ<~4£¹ºsçÜs>çs +ÏÇo”dz%!)&cÒ攤}ÉÞ뉚ç7Ê#ñ-VyRŸ/Å<ÌŸâ1¾ÅcüNŽc~G¿8ŽfüÇÑA>~<Þ¬5›íonݼý­ &.II•§'ÄÅKÇOŸ:mÆøhùøÝ¿4&#!.yüëÜIVÌ¡”Ô¤˜déú„¤èÌŒñ/ž<~sL\æ¡}éÿúøïDÿÿ¦æùsïæ³Ý§•À‹åý<*Åw¬ïjßM¾}~´_¤_¬_;ÆÃæbë±d,ëÆð`|<þ +¾—ãýø)üþ þÿ'‘G˜;?€Ì·ò«ø®ÑüÑ£•£¿'7ÇÉÈûà=°,Ù ¨­c|Æ?æ1³ÆèÆÜ;nìkcç]4vÍØð±ÛÆÆ-ûpì+ˆ¤ +ä‚|ApQð‘àgÁßÿôçû ü—û¯ößà¿Í¿Ø¿Ä¿É¿Ó¿×ÿI€0`I@x€2   0 $àTÀÕ€Û¾ ôd_ |#p]`Z`f 5°.ðbàõÀ? šô~Ðò ¸ Â ª Ú æ Ž ž þ ÓA烾 ú6è7¡¿P('|S8[ø¾p±p¥p¿0Gh– +Â&a‡°GxEø¡ð¡ð ! ö ‡³Á¯O^¼*8|=øqð“à?ÿüwʇR¯Ss¨ÔJjµ‹ÚO¤”TUBÕPõT'u’ºI=¦þLý&%"Eþ¢0ÑK¢·DSE³DóEËD«EE[D¢ƒ"¹¨HdÙEu¢ÑIÑ%Ñ ÑmÑ}ÑW¢ŸE#!£CD!lÈÄi!³C„, Y²1$2$>D’b ) q†4„´†t‡9r!äÇ!C~ù-…ú…Ž„ +Sðˆ—¢ÒÑ+F~*þŠÅhÃb8™øÂP©®œÃo€J)®ž«RÏ2ðÑd˜Ž·›¬ÖVÒ8äܪêéü&¼¾‚´Êð»úŠ\óþÈÆåàY“R)Ôz%-ÕV ±p;qFߦldz3÷Ön¤'-ÚµVZ›ÝØXç®·mF;k(5:ìâ–ÎúÃ'[’·2ë 4i½<o ?3[•pP à?žÏ¦P8‡^AQ“:§œÛÌ®½ôôÀ×4Ü ÇAFý%ùÉ–ËìGkgõN ãüŽ—'ö²çvuLB@¼Q½8©êÍt{Ð`‚;èã'Põ‹p¢'œÛÙ,\8.³0O­ 5 +«CÁ +»ªbcé}{ÉÙøCò}ÛÅó†Â¡ßFæÎ3û›bø¥¹¶¬tñª»O[w +v2R¼Åcõ¸pm­©¢ÊI—×jk¹‰”ýƒ4äýè÷Ï·Ü@¡wØ—/î:/>¤ïÚ±#²¸¦#±*­z#§ÈZ<{)2mbиï߀A0èÇgœv…Nù³¹)Ô—' £V.<Ûx8‹M9“sûcñŸŽ_»Ã€%dMù$ p‰`¼ßiÉ©ìÃnâØp}E}²ñÐ*ņÕêœ]E|%<à$vÙò*Œ'ùPNü°ç¢݇kV0­y»,!o»2LAXìp¦¤µT¹‹E&¸1/wg@žïó7j©KvYr7Š†%¡PØtîÔw⣹}imÌ`̬æÉ4j“á÷ +ÊòM‹É|ÍB_Ûk‰ù6u…ñ.î$.˜a>ºŠÁ™øH„ç ÕZî8 /í´3k_œŒÙ¯›`àƒB(Áòð½¾HGë4f[ëJmô{›·/ ïÜÿe{é Ö“]“qH¼'1eÇòøþ_¥LšZ‰—Ù­æ +èår½ÞÄ€¸¶ÊÑif¬eŦr¶uɈaÎh~F/Á´%-&ŒïäçO-äÖy¹–˜nÎ-7>àÃm|f]ýº¹þ´5 tyÆSŽÊs9ÝáP¬aÑ:bòðÖÏÏn>y„9r²öÚc1$bžìLÏÎN—•åÔg3-%%¿"£äÐAñÛ›–ÎKÉ(¯U3y®ÂÆa1Œ!Ú9³®b<ᵈžÿ|yzˆa¸KÇ#_Þ›†¨BþJ|¾¹Àbìå{’óÝÊʇV> p$xý KÀaš‡]ÃhÊc*IŸ—¥fTé©Yt|J÷QÖJ˜® õÃу|p¯z (E ÑgªÎ1ǣݨ.$¾v8Ošä$:@§èó³I˜U“ƒÇ*+ûŠX¸º0W"Ñ’8Ó% ß×£{žM½òNÜÂùì’eû'¼!Füþé0K?yÿ ýëÓ¾»wÙO>éÿî™øYì·‹î2÷Në{‰F?ŽQp œÈ[`8œˆ&¢-h3š„&£ o½ßys³òøÇ߈A¶d“Äl3›îJÀR@yëÈ{ØHðwäEÒ…äĽjU!wßš[a¼Ç÷8ÎœG¨SÔ#¿×ÁùØÈU\‡æcxäÕÕ@ÂÌ?7R„gækféù2àù.¥’Æ'¤"ŸB>*Ã=K=Åœ# D6Z€5ã5¿ô¶A‡iøȪ‘¿bJÏU¢.ÅÄ%ÊZ5 '¿ Š7Kµ 9#k½z·¤iÎ’?ý×JVP@ÂQ*éÎldžΟ:¶…5%P=íIqqÉÉ1ñÉm}½ím½,ðµ‹`®Ï6í³¨Ë}ap-Ç£ V½Eo) +sh,:½8?_§fdJ˜ìÄ÷XÕî;&Ám¡m-0úµTß0„9Ñ^1`,/ÌåÆæªr"˜g6Qh> NÎ߬ K*ÀrSe©©Œî.Í`G²㶢¢¥y|ð¤ì?¯S-vçVpýûv×3†Õ 5ŠRÂU™Ÿ›_˜¯Éc9 ~ K{Š›¾µ•ž²ð]5([áÂOÙòÍSùÓS _ÂòË eâªrG-Sê?fêVôï…£( +Cs±]’e tFÔÈñ<­Ía·Øí¥, €Ó0Á{¸ø©ËyÎʯEÛdD±\—#Ž]„F½ŠøLŒÂoW:/3.$“—+•ËX•E¼ +ù‹à¨>qM¹­Çë3¸ß+¬U^˜W“qzE…²"‡;”Õ™¡h5Ê[>#!-Â&‡%."ÁœWâ;í'®3P7`°$Wµ„@Í"A éYå¦à›«Œ—ÚhDM}Û]±».†­N­Tv§.FãCûð ?–ÓӠЋÙê“}lNcnÅ¡z~âªmkyÔ1½gÅÂiE{:“ÕI¥^R_üHüÉkwN¸yó&P¯áPˆrX_•ï +;žÓ¸‹FÄd4½…‚ïLûí“‹=wŽ°%1Žl§”¯(/Ï·Ó›Ùbg¿Äz ­¢À ¡÷'÷}¢`g¸(Ä ¦wÄ +GCvð‹Û” n¶JêH¯{Ÿ/°pÈ#'nÛ2¿#F‚BgEç*Òiu¾µJÆVeçYtb¦<5®Szúèáê¶6¶¾¾´²ó\í¡B>éï¼næ»P†œ8Y©•j‹‹óÓÙ‚L$B½ˆ ˜ª9¿¥R\ç*ëg*]8(îó|ÙÇûýWÎyjìãܳ® ×Ø.÷=ýIüMòÃðóÌG+¯IhÔ Ãif‰q±Z½Pχ›=7¨Ž2Ç‘¯nä$ 3·ÎD>bDFÏšÉ$ïؤžAïW—v²àeÌÕÒñùåÇYÏ BoŽÌIÈ[¥ãôßa+.¥ûJ5Ñ,šJtƤ–ï!Y ½Œ‚ïÍ€¾úÝ'ºÙ5„µ¾qC®PZ­Z“Çd+Ò4Éô¬­ŸrêwòÞýsÑÛXÐË"ŸXJ²±E<ØÑrübûÁi ŸŠØA[5š™ãÀëœj#[ W¨™ÍsößÀrk5eâ²J{ c¯F‘Üc…&㧈:¶8tÅK[f¨Õ1ú0™Ëskòˆì¼’ +‡Ùæîd?„¼[hV!/Qæ‹só´™L$n•÷óQn?§à\ü’ÑfXÆwA7-ÎJ 7ñÑ\h†“ðßÌéåÓkL¡ø66b”ãÀEfå¼M‚zYŸÝn2•0à0i+.6ß•Õ¼Ò2¥`íО«Cƒug®2 Ø wzh7ÏC<ŸF©q”7rdÿ¤<Í*gIiµj"NZÕ`·7–5±GžaP÷¿U´æ(ŲÜ8&G;\¹xTZÛ×qì0ÔÏ0ÿo(wÉvÎÒ;dÄ]™Æ´ˆþã€v™ +œ ‚‰€„ösÙdÜ´£$ÃÂÔêË:«Þ¦·…™óšR½5,¹ùP»Ñ¯Sd»t´žûËmÚßÇv¨Éj:X¨ Õi±ùoEoÊë,E%6³Éfe._:Ü÷ñU¾nõì¦ô–u1¹á^U±™0³ÓÉ¡eC©b/;âO,(JÏËf4:UŠVjìu +¶A®*Í¡¥rEfâ€ôüÐ᪦¶·³þÖ#1ðúó9®ŒDKJÕBZðݧr +0ñ6š{(Û¨ObáJâvµóÇÄ/Q¶–Z³›þÓ5§¯]?-+ÇRÏÑ$‰0à+¯fªkP–¢¯”ü!0LÖe¶€µš`r'$zqÝY{ÖÌpû'€ob.YÁdNmÞÐNÅä¨ÔRZ•]R*g3*0ḊŒŒ’LZ81E"×Q^íl„8YUØD_€A¸ŽZ³™žÎ!GºpH­ýø-ñæ¾BQè£7ž;Ý2Üͺ+Û\øè £n:ºûOѧÛcVYX #Éò³¸€&l©Äó澞7á= +%kÕ²}FnÄäPæ"ä&lŸY]{] “› (B°kíj¥Xž§KàF÷)Æ^k«)7fÖ§gdffhl +»Œqï°flÇ™”Ö}5|‡LfÓÐR…<-Å©l«(³”6²Îk¤gËÒ3Ü\ çv76f»¥,'®‹›/yBÁθ¸ÕJ¶ ÷"o‡»p-d%ðÊC_xÆRÓ Ç„8Â+WÀlÎMí´èKßñŸ¶Õš†9ò-Z­¸@«W3r˜ü‡·çvã8ÙÓØÐÝ™Y«Õ:Æ 7é]‰£«¥ç|? èrg¡ÖÉ6äa O¢×/Ý>•Ñµa½DÅgHÀšè̃\¤q{óO?ß¾ú»›‘Y°÷Ó#¢WÒ+wœºÕæ¨kè`UmÚº½¶¢Î-­ŒOÏÔçƱ€* ÷ªc8n·Þ8Gº$—蠟-\ŸT#oiuÖtX‹íÆÖXŽ•]憚£tcmÊÎÚsl‡¤bÃÚ™qàØÊd —,$#¬Û$î…Á’Ø­±¬@AÂK25Æ,–î*ñYYk|¼,e[®e¯9‡D?cŽ%TbZZbbsZgGssggZó!?RÝÙö6ºZ[/óÑßÏP¦Ø’Øò8¾‰“ŒQ,_›40|¥¥Žb>?G} òÞS¨æpáþk\¸oj·XZM|8îÿ;ÞXÇ áÛä2 Øÿ²`a„Ïÿ+^íÙå–­¦Õ3½xSDÂÃ.BjÂÀú=Êìýâ §£ïß?5xýXVëò“LêZêpjUö!ñA©4>:µýDWEC ö;vQI8Q”$p8AÀ©$Тä‹ðz<8`k¦…Ÿ'Àóhøµ–GâhªÅvÁ•Ónsž£K)Dã†+°!øµμ|»–.*4 +ÙW·b ]r‚$²Hà,kV:Ó‰£SS£åyÖêL¦J–gË£³•9Y‰íò³Ð÷óKàhGMC«øDdïúuRWÄ3Mrl¨Ã]ÙK÷ÔÉ’bÓ2—IYAÖ{$ðØŸ_šºYgÕš9Ÿ09R+y:bÇ•ú‹¤>³µ½¾¾­MZŸÌ +ŽŸmâ~Þ™>•‰yä‰&n¶¨Ú™el}4½+*}ã&|$™z#Â( +½‹fr1Åø.šwrÇl8 î€;¸«¹h+§¦(ÍE³Ñv´ÎD³¹Øb7à]¸FqCf¡(nH#ùÂ"ÏKn)¢ìƒáÀ¶†¹(¸ͨ5X¿èêøÒÆi{TÔÖð£{€'ŽZž Ñ/:dW…–Y1³½Ää Ûì¹›Yt÷ü‘}íõdžÅO\E~±)ºœh¦@ª)Ê£³4¥µEly¿Ây¸Â!øµ›÷ø¬{æ úȯŀø¸ºj R%ß ³ŸI5è…h2Ujdb@Í—€ç¡T½;UŸ¶ÉÌŽ¼CÌÒ¦eæiJZf(3·<ô†+ ™TÊJJe^äljm¥¦†®sV7ÝÙ2Á¦´]qlRt^¬n<%¯H†<¿æµB.Öžü憓Ȃ‰g?µ"!¯pQ÷†å k·p¶ºø=¯Ãñ°ÙeÕÁ , O)Ì÷æ1ŒÅµûY×e€j¿Ð{üÞÉh4#ÜFíZ¸$rso;#ÈV$drŽ&e;yf(± $A¡¤·JHPÉÙû/`äµ›ž¸‘¸U„ÀE,Êqâ. øJ˜è$¶Z5¥gÅžŸ8v•oЩuaà Ù~¿Žˆ»rk22reà°„ pR|}ÛÑ÷£ÔR)“%ÓÈrv7©B‡ëÁMÞ7¤'&Q#q€bþwâ‘@?’{0@‰=ŸöƒÊÒÊ7HçQgH¸·…Û®ó Ñw–Qk¡ñ:!ym•'η + Fì¬Á)[+nÉcÑ–G¨Ç>?ö)Øõ˜ÅNC–Èi +õ!:+ËVª`OL—Û£èÝß°ÛL@'LGÜ?wze;üHhG‰ˆÐFÜxûÅØpvˆ®¯(Hu±àÊì"œ(rÿÜé†3(OI.I§wïÎ8Â&íÕ(|‡f‘¦øœ|N¹Æ_CZüþ®¼ùO%R¼Ø +¼;ʪaêÖÆÂúá‰Nð{±Ûóí0–<ó…ïŠ8\â|”ÃÏQ_e®§¿¼°iæ»Û¶Ì“ ™X/Ä2£RÉ PQ¡ÆMyTPk?ôÝ9nÐüîWHóBÕ‚—Ƹ°ß®ÊÌ/L1†¡±ø“/±«à)Ïï%9áÎlim¨oÍ#SY çTLZÎ@òbŽ[N—,žÈEøÇ@wQuÑ`_ëvë+èúj¸_1pø}¡çàŽˆ¸ƒ;ØD€N่Ūq×ý–¦|¹|ÉÜ-áÛoßgRiJ2p‰VCq¯³ÝbÀB1|…ÄA9•Š»àÎv8ßͼ»_Àõ_ø‚nˆ{æCÎByCžw†8ÿ}ǃµˆý|ü³+͹yn@Á·Hè(øˆ,ª^Ï?¿'AQ4¦Å}Ö[5¸˜ +Âx±¼â’¹Áêg7Üzòú±÷â®g¹Ç„tƒ“0„Ì¡îÕyº®Úd=ÌáQº"Gª3éÌ:Öª^±ÉœWaºVA€¯AâÒÎë`Éé)h{aÉq±mÉà_鋂İíòO^8Û tf'1Ç’Wþ‰~€Z»ˆÇ=ö¦~öŽaó é|ùˆ/ü€ó¸c®ž\@y5|$ŽÁI5@ÉÝp­ }äÑ|ä Ð<3 Šk<Ó8‰]ò¹®¥¹ÐM?ô p .§<<o„Ç;*£߮×`½-à2v]w¯ø>?H;€üëY5߇„•LØ´Uó3Ù¯ @å1}$$sëŽ*Ž†Ž7êô™,uëõè/|Iô<âyÄ?"pð¾v®î…KZx@QîæT ^¿7Ýßò·x2–]½744´µHSXAC]{{zc+(5•Óàù«ÜdÃôcàCNgÆÌwgÍž3ušÐ'؇òù„ø„ú„ùˆ}}‚|€·ªäç³ÃçSÅ+æyF½2Êéëç»ß·• ´Å÷= ÷xðÛ'¾ž(¡rm±›ò´‘œÚàð=¸{úýÀý‡âŸç>xeËöÌý±Lb‚2Q±´NúçÃ=·9Û<ë½ÝSfMgÑr´ S{Ä„@Ë©Ô·W‚àÇbî?‚“àcêrƒ!¿½.í_.~7|Í¢”l{c,ãJVØ´T©ÊŠ?šyûþ£æÁaöÄ`Ó¥ÅgrŽ§t0Yõ²Š½µ|á—·N4õ¾öüä{‰qLRŠ2=kƒ³0ôÞác×é›C{×Ä)ãÓÓØ$îΊ >÷ZnøÆ Ïûî xìáüÂï=‡`õšgÓ}8² [»ÑE£÷dkcÖ²-pôƒ>pZ3E£ê«“KP u`ý²w¶þ§œv´ºlu]Gi-и=wïñ<[9O1‚ãÑ5ƒÖV^0…Á$íùû‡ñÏ_öJ£õ¹ 5èÂýe÷`ÊG[î À£‚úù\÷à-ñ㥗_çBœ•SW×&?›ÂŸ"Þì¬äåâ·®„8óàæo†ÑØoù«ÔÝíqáâÕQQ«ì¸ô䃺ÁËÃŒðÁÉÔôKqÇ/ˆ/¼~ëèžåëÓö¯ˆbZ¨9êñkåµç{9“‚~•çkoäÿ~ÿ*Òb8g*DLÑHpg.ô9¤zð,f!ßñhb^†Ï©ìÂü¼|Fš£Š£D|ÁÅê+uͬ»¦©¼þêØLô˽`óó f^ã°òG_h>›Ú²/'.–݃4ZŒFu!þ‰pfOßéŒKôé£5=½ì¥óýNJᾩð%Â¥Q_CŠA1{ÆÏœ¹çoðL8G=a½zø<€Ãª„'¾Á6'>_Q>ld9:P`F+§b*Â9Ðh/¥ëJ•‰ìÈN°V¡Z`ä TUžme0ª +ï'ƒ“Âç±Á+ÕdµÚ,k‰Õj3fÀê¶Y­î¢Ì:f,Oà5ó½>Gx8ï,ïþ¨M£®Žºé;Å7Ê7Ú·Ø÷¾ïcßïüÄ~‰~R?›ßE¿ë~ëÂNcÿÄq|4.Ä_Çâ…„¡& +‰ßùß¿0zúè„Ñé£?ýýè¿ÛÈDò6ù|Jþ Ð`&X*Á1pÜCY}#úE„DÿB†CÆ…¼òzÈ„ç^sGJþ@ïÌ6¿ÊG Ä +]Œ"‰‰H]sh!½tWã‰TVÞ©í».†wOJ>õ&šzeÄ£?Mè-úlœyŸôÜ`” †U„ùYyÕg¥|ð|[-eÑ”ÅßCfÏ¡Ù8:0¢^ƒ^WçDÂdpW-‘]ÑVa©²U²Çáh :ñÁ XEª=M%NWl322è Fr9² + ÈzÔŠ8›Z±7y ½yoÛÅdVÞ¯í4\ãëxÁš¶ôN~oÒîºíôÎHyB ºtŽ1wfBâOŸ\†>GôN¤–w÷]¥¯6¦Ì¨dÁƒ–V_ÏAO(50ŸÈRYìÙl¦+KK±¥Ñ“-²¶9æÃlZFV¶:¯¨0,+S—§g–çÉf–lO;+Þö`ÏŸr†éï¨éì_‹\deU‚m5g”V‹Ý]=-¦¨·Ö`¦û;[:Ø®VgÏ)q›¾AÕÉ íˆ˜Òv?Ô¦¿éÊÛ´à¦onj(ufmð{êrkÏñŽfER5S_µ_ž¿{]ô?2% „ó°u8ò¯ºq8ö7(xüäû|'ü…rü¡ÞQ`^ÀGï‰R£Yop ¼þ‡Öo‡N2'^o¹E_8%‹ëgÛ“«ÓšÖóð‡eâÙ:yn­É±Øå¬3*ÒEsaç+è ´÷­–…6²ËoþGÑ_Á€žžÃ,ÜC˜¯–W\´ò'ų È•xgu~N¡QW¤eßFmˆ€%˜®ª°ªLìrÚš'ŠVÍ…5yÄ‘1´"Õd´iø­;«c•âézÅ!&]™%SѺ|oÑÒ.—[sè ™,ý`GúÑ[ÇÏÃ×γp²gbegyY£% dJÞ&ïsÏv*fr\–.GMç+-6%[³k§#’ž3ûЖuì²u1SÐ(1Ú ÃÐ8GI¹ [ºxeÒlzm¸»/»åä¡o Ÿ®úžƒó×.žÉ:p˜éLt¦Ô®æ¢I_eÓ–zK°(´ )[0%á0aæŠ +SÝXš³‡EJ°(_³¢ˆò'¾¨%ŸªÅç˜UU†{PHš?©¬xláŒè”ŒøR_®1KŒ Ôy³¸Á¾ž—áTjYD\ÆfzÊÚO!ñûùÛŸõVjbÊØ’L,ÙáRÔÓÍuµ –˜µkGv\4»sOÊŠybD=š }®îèeZj[Û/óõa×±i$hùw@ò©¾Ray‰¾!F( C døѪ‚ÈÃìÈ:ÂðR®bŽž/ƒêZb¾UYgøïG›jøJsN•á2fGNµ–”ê5åŒÒY¡¯¤5­]Yî„})™Kv²ßqqlxfœ*\–CXªJMtÓ aXÃvnm\½âÍë¿+g%Ï|¹ˆ?RâM‰µH®‹=‘1’zgžw!MÉ­òI*õ„¢0Äà°ÞóæD?EˆÄ\¸ãã*ç5328ªy SzÆ`™£ æ9ñµ–¼2ã¾ç¢Ð¼#'6o©",§„0•W˜tg™*’I#Œ[Uªu…œ¦÷Ãôö>XÙËó¼üßç=. +¾4r5›øÀДŸ)Öåéòd‘\¯ÎÛ«ã+¢ÖH쳦•;Åõ —2­g1¸MÄ Ëµùkó†P™ÇN Á÷° |•*G~þüPšÕVÈê-E5b˜_#>6Ôf;Þç×ÁÜ,\;/[ù²|¡o0•ØÝôW8|­I5µ‚9Ò)ø¼ƒ¡;HJOOLnJoëhnlïHkNbÓé¬vV—•^¹ÙÞyûÓFç‡Þ‚_¡Œ8a,×g‹ãÞæ؇ ˜@|PíºhbÌ¥Å&ëBƒ3$pðÉÅ\U¥o`‹Dð9À_¿Cn¢×$´¨zQ)°gÔBN‡©ŽÔ;ëú®nÓ[ÍF]b±”TF_šÿg¶Èj,Ö•6uÕÔu ðÛz›WŠmz›^—-ÏR0Æ¢CIÉiZ]6¿xr¨6¼lsž7ÙëĽªÚ´T•,.ˤ« +g$$Ï_žNí—ŒÇz×DU®¢ÑVŽÅ½‚ö¬q®iÞɺ⫳ÄLDlèIüäc±×ŽçÞ¢á6.î} ü õ+ïQ¸£ûù{×PÝ«+ç‰Ñæ¹h4 +Ý]{b/“ÞC%ÜPŸÿZ Ã?‡†\”íb@q삵ÿ­ª=¡¼U3ÓB>Ú6{ÏcMü«|&ƒ}ÄÿZnÃáStB¯Ãl¼£Ì1ðÍÿ^eƒø:!ˆ!G"‰eFYɧ|¹­>DYqø.z«ÌµèµbÞÁä+`tÏΨlJcQÜçÀ—;ZZ*Ía5(\QAÔ•iÚB­Zâhögâ¿ÕDZ ÌS¼ "ÔÂF xîõø)2üŒ±¦ C¬)Tk” 'é,ô&LÇòªuMãÄp¥ÈQ˜!Δ&mÙÁ eh&÷¦OÊJ?+ᔬOF<З«Í‹ɼ¼÷½ÒéyÑœRn¼Ç‡ˆæº¿¾Œ=˜vy†X™«K62ú¼b£š•ÁKµÄv“ªlêOH-¡p3ÜxëƒjÇ-[X-rà# ·N"ÿ`’>•ÞÖv“m!¾¶;O™¼Uð”&2•Øg‘—Ë™¤Úœ‹ô@­ò 82íû«Ä“㤶–êíÆù0‚x}nÎÆ}v3ð"¡·Ä«Ó ¶ä„¥¾(â[ÍÅ%ôQGÁ^v$‘0,ÑlÖò•ð“Ød+(7p?×ǴצO6Å-cÑ.°4?o³žOx«xÃC°×Íûۯ𯾵"ØQ‹/,QWïða4¼€¶;HÏFb—mCà6îddY- ¶KRS^7`^5µ&=+5Ö™ì*¶D™kÍ£S¤™éI­™}=í•-Ílcƒ»¿ý!À»¡-wìeö2Sh›$W/WÅ0sQÒ,˜†ÉO­å⺊ò#ã¨A;¸ÓØ­/.>‡$a@FÎjß{ùdã™.&·;.ûÉÖ?‘@wpj«¥~˜½Ñ~øÊ-ña•·áHÚ”YQÓåt–9«ùBOskÍ‘~ñ…¸³;˜Æ½moÓ»÷Q–ºRSýÕíóæn˜¦P›léì?[c™ÉE Ÿýzcë;³Ömž–‘k¶'³‚ÿTf¼€øE9ÎÛ,€·`…Vk•²­&Ý[¼:í"RMGRz‹W+ø*ÔŸzÒÝ~ÖVn¼eñ:¢ÅX¥‘‹Uú\E +G¨P2Á}˜¬½ ¶Z\ï*ëcª\èœo0œÒ6dY^<6™ýNMZj–"á ù"\Ø«7ºžü$†[9·ÿ*ZÃPpÌc4–SíUó@þhôW6Aê˜ÓÜð"ÛÙÖPØI?îÙ’ÄzYÿ6IJœ7J|ûoãOP”ãCzk¾yAKáâ)œ ál)N•pß,ç¾ùÒî²zí+¡Ìßaà+€ÚcV;ŒÍ|ø#¡² r &%J›ª¬VºÄ¬ËdQa”j´û ü NxsÆg ÕÞœqªDJŽý)jˆJ ”âÿñ©Ï,~Vü îìÂn&Ú•mFA&>:(Ç_ýËðÏtåÞØrd?¥ÎJSéMZ¦G“SF§fJS÷ &]‚>WïÀ@ÖƒæOJ½ xÖœÀj< ¸å÷ÊšGvî‹×nÞ¼é ´( &i:=‚+AŸ|3Ÿ+m(‰‚z¾Ð¤.3ÞàÃi„Pv°·As„†à[è_ƒËž¾ ŒS"$_‹ÁŽ"¯A„“èœ7¹>…”‹h9ðL¡ã·:“—–³5xd1ô çfm&Î}ÅÆ©’¯ÄÀâ2WšKùÕ÷K¯´‰ëe.i†L.UTMs½Í€m6Wö Ýý™ƒ=œ°xÏàð3_xÞ¢à0ŠÃAƒ´µ­¡´H€ç\Š¿(6Ψõ6 ÌÄFŠ«IxÙEL“UÝ6²ÀT^ΩSc•*óPZz¢Vo²ªY›2ßœOgæäd¥5(:ï|p÷Ñ™”öZ¥ÑÂTR%ðÀ]‹œ‚ŽƒG»Îö1ÙÕX*0“ph"ÿ(*¥lÛ¿ðŽXG~ÌAyìgÒ³h ±ù@Á gPìçP‘uý=,ÙùåØI yÜ,ÞPäêŸÍ=‘G¢¹Þ´<œûǧÙ{ÍH¸‘ŒÄ!œŽïßA +à= +®B°ÓÛ]9â¥n¯·á6Yâm³1—ü§,PKÊ8ïKüËûþ;oŸõ76þOCáÓ¿ÀJÐ~…ÚÝ‘ÝÔ&nk¨ëê«ÏŒ=¤â8'?“ŽU¶\gA“»º£K|cKßä”\CA"£ËÖ +è\mI¹‘Uáè ViÔ[Œ)HuáÖܪóbøùâ'‹a«‰E5„q9ãÓ½%Ý•‘}£³[!÷ W~` d±Æwó½Ô ÜôêU-þmùÉéOŽïY#d'@5áåý˜£ÉâtŠ;ÔÕÒ,•<-×–Q’ÅO8Õyk½PÙß,nTÔdÄ+¢_Ñ1úyà¸oÕIóï’„À£*‚!žQ0„7À0™´Öÿ 8´JMáv(RÐ÷*÷s†³Á/žÏ¦vã&RpÄÅ!ÈHÜHÜͧ«FâɃ¿]Wž$Ÿ’‚Žòg]Qõïæ¡ yú½%N»©”Ô­®¡ÿ U…··OÀû›ÄëC’¿ð\uƒÏÏnÞ_~å¶ÏCðÀ ›*¤é%™4€Éó¾÷vÜýÉÜ¢%‰كœ‹l0^2”«›ÃFŒ~ 996®=¹¯§­½§/¹ ¼`ðÍ/üvà Ípć0µ´e4:GÕ*ð­Ùîó,ÕÈ-¥%¥|€ 4×TtÐuuúü$5¥”…Û‡+ëJ\Þf§o´Ë[q¼æÁ¯ñ€ˆC +ðÓE€Ï'Ãl>Ž„hà,@Ñ[hZßBÁAñ¾ÿ¸Mrïë òeJ}­×xsi@ŒB¿`Ð_ ðö‡„³À£‚)×y`mq»GÜÚÚúz’Û½bøáÙòMà‚æ| Ët„Zû€®ˆ)Њ ùÙŽ›èuµNÒÁŽc°©pÊM”SWáo3„©°r#€«½å] a×5ÄéÊÍ¿+Wy{ê?q*>;^›Z9ëÚÕ —ºyÞƇŒ¬pºˆ‹€'óÑ‚ó\©h"Õ²¿k¶px”’¦ÑتTŒÛÛRà)ú§°oǤ°„p!ÈUK¹ÍQìÿ,…KŸ endstream endobj -1297 0 obj +1296 0 obj << -/Length 10049 +/Filter /FlateDecode +/Subtype /Type1C +/Length 11578 >> stream -0 g 0 G -0 g 0 G -BT -/F30 9.9626 Tf 234.142 706.129 Td [(integer,)-525(intent)-525(\050in\051)-1050(::)-525(glob_index,np,mg)]TJ 0 -11.955 Td [(integer,)-525(intent)-525(\050out\051)-525(::)-525(nv,)-525(pv\050*\051)]TJ -10.461 -11.955 Td [(end)-525(subroutine)-525(psb_parts)]TJ -15.691 -11.956 Td [(end)-525(interface)]TJ/F8 9.9626 Tf -10.461 -17.586 Td [(The)-333(input)-334(argumen)28(ts)-333(are:)]TJ -0 g 0 G -/F27 9.9626 Tf 0 -15.594 Td [(glob)]TJ -ET -q -1 0 0 1 219.221 637.283 cm -[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S -Q -BT -/F27 9.9626 Tf 222.658 637.083 Td [(index)]TJ -0 g 0 G -/F8 9.9626 Tf 32.192 0 Td [(The)-333(global)-334(index)-333(to)-333(b)-28(e)-333(mapp)-28(ed;)]TJ -0 g 0 G -/F27 9.9626 Tf -57.321 -13.774 Td [(np)]TJ -0 g 0 G -/F8 9.9626 Tf 17.712 0 Td [(The)-333(n)27(u)1(m)27(b)-27(e)-1(r)-333(of)-333(pro)-28(cesses)-333(in)-334(the)-333(mapping;)]TJ -0 g 0 G -/F27 9.9626 Tf -17.712 -13.774 Td [(mg)]TJ -0 g 0 G -/F8 9.9626 Tf 20.258 0 Td [(The)-333(total)-334(n)28(um)28(b)-28(er)-333(of)-333(global)-334(ro)28(ws)-333(in)-334(th)1(e)-334(mapping;)]TJ -20.258 -15.594 Td [(The)-333(output)-334(argumen)28(ts)-333(are:)]TJ -0 g 0 G -/F27 9.9626 Tf 0 -15.594 Td [(n)32(v)]TJ -0 g 0 G -/F8 9.9626 Tf 17.075 0 Td [(The)-333(n)27(um)28(b)-28(er)-333(of)-333(en)28(tries)-334(in)]TJ/F30 9.9626 Tf 111.637 0 Td [(pv)]TJ/F8 9.9626 Tf 10.461 0 Td [(;)]TJ -0 g 0 G -/F27 9.9626 Tf -139.173 -13.774 Td [(p)32(v)]TJ -0 g 0 G -/F8 9.9626 Tf 17.075 0 Td [(A)-481(v)28(ector)-481(con)28(taining)-481(the)-481(indi)1(c)-1(es)-480(of)-481(the)-481(pro)-28(cesses)-481(to)-481(whic)28(h)-481(the)]TJ 1.555 -11.955 Td [(global)-468(index)-468(should)-468(b)-28(e)-468(assigend;)-536(eac)28(h)-468(en)28(try)-468(m)28(ust)-469(satisfy)-468(0)]TJ/F14 9.9626 Tf 270.508 0 Td [(\024)]TJ/F11 9.9626 Tf -270.508 -11.956 Td [(pv)]TJ/F8 9.9626 Tf 10.199 0 Td [(\050)]TJ/F11 9.9626 Tf 3.875 0 Td [(i)]TJ/F8 9.9626 Tf 3.432 0 Td [(\051)]TJ/F11 9.9626 Tf 8.603 0 Td [(<)-475(np)]TJ/F8 9.9626 Tf 23.47 0 Td [(;)-511(i)1(f)]TJ/F11 9.9626 Tf 18.163 0 Td [(nv)-511(>)]TJ/F8 9.9626 Tf 28.373 0 Td [(1)-451(w)27(e)-451(ha)28(v)27(e)-451(an)-452(in)1(dex)-452(assigned)-451(to)-452(m)28(ultiple)]TJ -96.115 -11.955 Td [(pro)-28(cesses,)-333(i.e.)-445(w)28(e)-333(ha)27(v)28(e)-333(an)-333(o)27(v)28(erlap)-333(among)-334(t)1(he)-334(sub)-28(domains.)]TJ -0 g 0 G -/F27 9.9626 Tf -40.548 -15.594 Td [(vg)]TJ -0 g 0 G -/F8 9.9626 Tf 16.757 0 Td [(In)-398(th)1(is)-398(case)-398(the)-397(asso)-28(ciation)-398(b)-27(e)-1(t)28(w)28(een)-398(an)-397(index)-398(and)-397(a)-398(pro)-27(ces)-1(s)-397(is)-398(sp)-28(ec-)]TJ 5.161 -11.955 Td [(i\014ed)-456(via)-456(an)-456(in)28(tege)-1(r)-456(v)28(ector)]TJ/F30 9.9626 Tf 120.743 0 Td [(vg\0501:mg\051)]TJ/F8 9.9626 Tf 41.842 0 Td [(;)-518(eac)28(h)-456(index)]TJ/F11 9.9626 Tf 59.63 0 Td [(i)]TJ/F14 9.9626 Tf 8.238 0 Td [(2)-482(f)]TJ/F8 9.9626 Tf 16.429 0 Td [(1)]TJ/F11 9.9626 Tf 6.642 0 Td [(:)-167(:)-166(:)-167(mg)]TJ/F14 9.9626 Tf 27.14 0 Td [(g)]TJ/F8 9.9626 Tf 9.526 0 Td [(is)]TJ -290.19 -11.955 Td [(assigned)-449(to)-449(pro)-28(cess)]TJ/F11 9.9626 Tf 89.776 0 Td [(v)-36(g)]TJ/F8 9.9626 Tf 10.296 0 Td [(\050)]TJ/F11 9.9626 Tf 3.875 0 Td [(i)]TJ/F8 9.9626 Tf 3.432 0 Td [(\051.)-792(The)-449(v)28(ector)]TJ/F30 9.9626 Tf 67.232 0 Td [(vg)]TJ/F8 9.9626 Tf 14.935 0 Td [(m)28(ust)-449(b)-28(e)-449(iden)28(tica)-1(l)-449(on)-449(all)]TJ -189.546 -11.955 Td [(calling)-452(pro)-28(cesses;)-513(it)1(s)-453(en)28(tries)-453(ma)28(y)-453(ha)28(v)28(e)-453(th)1(e)-453(ranges)-453(\0500)]TJ/F11 9.9626 Tf 236.604 0 Td [(:)-167(:)-166(:)-167(np)]TJ/F14 9.9626 Tf 27.281 0 Td [(\000)]TJ/F8 9.9626 Tf 10.754 0 Td [(1\051)-453(or)]TJ -274.639 -11.955 Td [(\0501)]TJ/F11 9.9626 Tf 10.516 0 Td [(:)-167(:)-166(:)-167(np)]TJ/F8 9.9626 Tf 24.276 0 Td [(\051)-347(according)-347(to)-347(the)-347(v)55(alu)1(e)-348(of)]TJ/F30 9.9626 Tf 119.292 0 Td [(flag)]TJ/F8 9.9626 Tf 20.921 0 Td [(.)-486(The)-347(size)]TJ/F11 9.9626 Tf 47.231 0 Td [(mg)]TJ/F8 9.9626 Tf 17.314 0 Td [(ma)28(y)-347(b)-28(e)-347(sp)-28(ec-)]TJ -239.55 -11.955 Td [(i\014ed)-414(via)-414(the)-415(option)1(al)-415(argumen)28(t)]TJ/F30 9.9626 Tf 142.427 0 Td [(mg)]TJ/F8 9.9626 Tf 10.461 0 Td [(;)-455(the)-414(default)-414(is)-414(to)-414(use)-415(the)-414(en)28(tire)]TJ -152.888 -11.956 Td [(v)28(ector)]TJ/F30 9.9626 Tf 29.916 0 Td [(vg)]TJ/F8 9.9626 Tf 10.46 0 Td [(,)-333(th)27(u)1(s)-334(ha)28(ving)]TJ/F30 9.9626 Tf 60.108 0 Td [(mg=size\050vg\051)]TJ/F8 9.9626 Tf 57.534 0 Td [(.)]TJ -0 g 0 G -/F27 9.9626 Tf -179.936 -15.593 Td [(vl)]TJ -0 g 0 G -/F8 9.9626 Tf 14.211 0 Td [(In)-356(this)-357(case)-356(w)28(e)-357(are)-356(sp)-28(ecifying)-356(the)-357(list)-356(of)-356(indices)]TJ/F30 9.9626 Tf 210.708 0 Td [(vl\0501:nl\051)]TJ/F8 9.9626 Tf 45.393 0 Td [(assigned)-356(to)]TJ -248.394 -11.955 Td [(the)-462(curren)28(t)-462(pro)-27(ce)-1(ss;)-526(th)28(us,)-494(the)-461(global)-462(problem)-462(size)]TJ/F11 9.9626 Tf 229.323 0 Td [(mg)]TJ/F8 9.9626 Tf 18.457 0 Td [(is)-462(giv)28(en)-462(b)28(y)]TJ -247.78 -11.956 Td [(the)-405(range)-405(of)-404(the)-405(aggregate)-405(of)-405(the)-405(in)1(dividual)-405(v)28(ectors)]TJ/F30 9.9626 Tf 233.196 0 Td [(vl)]TJ/F8 9.9626 Tf 14.494 0 Td [(sp)-28(eci\014ed)-405(in)]TJ -247.69 -11.955 Td [(the)-481(calling)-481(p)1(ro)-28(cesses.)-887(The)-481(size)-481(ma)28(y)-481(b)-28(e)-481(sp)-27(eci\014ed)-481(via)-481(the)-481(optional)]TJ 0 -11.955 Td [(argumen)28(t)]TJ/F30 9.9626 Tf 44.85 0 Td [(nl)]TJ/F8 9.9626 Tf 10.461 0 Td [(;)-373(the)-361(default)-360(is)-360(to)-360(use)-360(the)-360(en)28(tire)-361(v)28(ector)]TJ/F30 9.9626 Tf 173.727 0 Td [(vl)]TJ/F8 9.9626 Tf 10.461 0 Td [(,)-367(th)28(us)-360(ha)28(ving)]TJ/F30 9.9626 Tf -239.499 -11.955 Td [(nl=size\050vl\051)]TJ/F8 9.9626 Tf 57.534 0 Td [(.)-419(If)]TJ/F30 9.9626 Tf 16.133 0 Td [(globalcheck=.true.)]TJ/F8 9.9626 Tf 96.698 0 Td [(the)-256(subroutine)-256(will)-256(c)27(hec)28(k)-256(ho)28(w)]TJ -170.365 -11.955 Td [(man)28(y)-255(times)-255(eac)28(h)-254(en)27(try)-254(in)-255(the)-254(global)-255(index)-254(s)-1(p)1(ac)-1(e)-254(\0501)]TJ/F11 9.9626 Tf 217.24 0 Td [(:)-167(:)-166(:)-167(mg)]TJ/F8 9.9626 Tf 27.14 0 Td [(\051)-255(is)-254(sp)-28(eci\014ed)]TJ -244.38 -11.955 Td [(in)-331(the)-331(input)-331(lists)]TJ/F30 9.9626 Tf 75.842 0 Td [(vl)]TJ/F8 9.9626 Tf 10.461 0 Td [(,)-331(th)27(us)-331(all)1(o)27(wing)-331(for)-331(t)1(he)-331(prese)-1(n)1(c)-1(e)-331(of)-330(o)27(v)28(erlap)-331(in)-331(the)]TJ -86.303 -11.956 Td [(input,)-338(and)-337(c)28(hec)27(king)-337(for)-337(\134orphan")-337(indices.)-456(If)]TJ/F30 9.9626 Tf 194.743 0 Td [(globalcheck=.false.)]TJ/F8 9.9626 Tf 99.376 0 Td [(,)]TJ -294.119 -11.955 Td [(the)-409(s)-1(u)1(broutine)-410(will)-409(not)-410(c)28(hec)28(k)-410(for)-409(o)28(v)27(erlap,)-428(and)-409(ma)27(y)-409(b)-28(e)-409(signi\014can)27(tly)]TJ 0 -11.955 Td [(faster,)-362(but)-357(the)-357(user)-356(is)-357(implicitly)-357(gu)1(aran)27(teeing)-356(that)-357(there)-357(ar)1(e)-357(neither)]TJ 0 -11.955 Td [(orphan)-333(nor)-333(o)27(v)28(erlap)-333(indices.)]TJ -0 g 0 G -/F27 9.9626 Tf -21.918 -15.594 Td [(lidx)]TJ -0 g 0 G -/F8 9.9626 Tf 23.758 0 Td [(The)-463(optional)-462(argumen)28(t)]TJ/F30 9.9626 Tf 107.67 0 Td [(lidx)]TJ/F8 9.9626 Tf 25.531 0 Td [(is)-463(a)28(v)56(ailable)-463(for)-462(those)-463(cases)-463(in)-463(whi)1(c)27(h)]TJ -135.041 -11.955 Td [(the)-446(user)-446(has)-446(already)-446(established)-446(a)-446(global-to-lo)-28(cal)-446(mapping;)-502(if)-446(it)-446(is)]TJ 0 -11.955 Td [(sp)-28(eci\014ed,)-373(eac)28(h)-365(index)-365(in)]TJ/F30 9.9626 Tf 105.175 0 Td [(vl\050i\051)]TJ/F8 9.9626 Tf 29.789 0 Td [(will)-365(b)-28(e)-365(mapp)-28(ed)-365(to)-365(the)-365(corresp)-27(onding)]TJ -134.964 -11.955 Td [(lo)-28(cal)-392(index)]TJ/F30 9.9626 Tf 51.539 0 Td [(lidx\050i\051)]TJ/F8 9.9626 Tf 36.613 0 Td [(.)-621(When)-392(sp)-28(ecifying)-392(the)-392(argumen)28(t)]TJ/F30 9.9626 Tf 148.368 0 Td [(lidx)]TJ/F8 9.9626 Tf 24.828 0 Td [(the)-392(user)]TJ -261.348 -11.956 Td [(w)28(ould)-420(also)-420(lik)28(ely)-419(e)-1(mpl)1(o)27(y)]TJ/F30 9.9626 Tf 113.086 0 Td [(lidx)]TJ/F8 9.9626 Tf 25.103 0 Td [(in)-420(calls)-419(to)]TJ/F30 9.9626 Tf 48.576 0 Td [(psb_cdins)]TJ/F8 9.9626 Tf 51.254 0 Td [(and)]TJ/F30 9.9626 Tf 20.232 0 Td [(local)]TJ/F8 9.9626 Tf 30.333 0 Td [(in)]TJ -288.584 -11.955 Td [(calls)-333(to)]TJ/F30 9.9626 Tf 34.371 0 Td [(psb_spins)]TJ/F8 9.9626 Tf 50.394 0 Td [(and)]TJ/F30 9.9626 Tf 19.372 0 Td [(psb_geins)]TJ/F8 9.9626 Tf 47.073 0 Td [(;)-333(see)-334(also)-333(sec.)]TJ -0 0 1 rg 0 0 1 RG - [-334(2.3.1)]TJ -0 g 0 G - [(.)]TJ -0 g 0 G -/F27 9.9626 Tf -173.128 -15.593 Td [(nl)]TJ -0 g 0 G -/F8 9.9626 Tf 14.529 0 Td [(If)-307(this)-308(argumen)28(t)-307(is)-308(sp)-28(eci\014ed)-307(alone)-308(\050i.e.)-435(without)]TJ/F30 9.9626 Tf 206.41 0 Td [(vl)]TJ/F8 9.9626 Tf 10.461 0 Td [(\051)-307(the)-308(result)-307(is)-308(a)-307(gen-)]TJ -209.482 -11.956 Td [(eralized)-313(ro)27(w-blo)-27(c)27(k)-313(distribution)-313(in)-314(whic)28(h)-313(eac)27(h)-313(pro)-28(cess)]TJ/F11 9.9626 Tf 232.18 0 Td [(I)]TJ/F8 9.9626 Tf 8.284 0 Td [(gets)-313(as)-1(signed)]TJ -240.464 -11.955 Td [(a)-333(consecutiv)27(e)-333(c)28(h)28(unk)-334(of)]TJ/F11 9.9626 Tf 101.342 0 Td [(N)]TJ/F10 6.9738 Tf 8.005 -1.494 Td [(I)]TJ/F8 9.9626 Tf 7.338 1.494 Td [(=)]TJ/F11 9.9626 Tf 10.516 0 Td [(nl)]TJ/F8 9.9626 Tf 12.47 0 Td [(global)-333(indices.)]TJ -0 g 0 G -/F27 9.9626 Tf -161.589 -15.593 Td [(repl)]TJ -0 g 0 G -/F8 9.9626 Tf 24.498 0 Td [(This)-239(argumen)28(ts)-240(sp)-27(e)-1(ci\014es)-239(to)-239(replicate)-239(all)-239(indices)-240(on)-239(all)-239(pro)-28(cesses.)-413(This)]TJ -2.58 -11.956 Td [(is)-312(a)-311(sp)-28(ecial)-312(purp)-27(ose)-312(data)-312(allo)-27(cation)-312(that)-311(is)-312(useful)-312(in)-311(the)-312(construction)]TJ 0 -11.955 Td [(of)-333(some)-334(m)28(ultilev)28(el)-334(p)1(rec)-1(on)1(ditioners.)]TJ -0 g 0 G - -34.648 -19.579 Td [(2.)]TJ -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(build)-333(state.)]TJ -0 g 0 G - 154.698 -29.888 Td [(66)]TJ -0 g 0 G -ET - +xœzwxTÕÚ/CØ…½’I™Ùf³÷F&X*ˆˆ€ô -dÒë¤L’I&½Ìd&½·I2“BHB „Б*Š"¢¢Ç‚¢~õ¨krV<÷® úï»Ï½ß÷™Ì“é{­w½ëWÞwI&M™qxâð«Ã˜t¶t‰t·t¿4Iš*Í‘vJû¤¤Ÿ9Nv”9.s\åxÄÑß1Â1ɱƱÉñ¼ãÇGŽß:N38-rZéôšÓ:§ÍN¾NÉNeN§>§!§»N÷œ8}éôÓÿržê,u~ÆYtžã¼Ðyµó^gogµs–ss›s¯ó€óMçÏsþ§ í¹¼ä²Þ個K˜‹Ê%Î%É%եĥÅeÈå¬Ë—.w\î¹|íò™Df/s–Í’-‘mùËÔ²Y¦¬Tf–õÉÎÊ®ÊnÊÞ—}"ûRöDö£ìWÙ?åùT¹TÎÉÈWÈ7Ê÷È˽åAòpy´<^ž"7È«ä-ò>ù¨ü–üùòoä?Ê“³–fØéìv1»†ÝÄîc°¾lÍjØ46‡5°El9[Ï6³Ýìö2ûûýšý‘ý……5c"{'·>’wKNYŸE«¬ŸR}Ј C7«#Âiš×¹­ •"̦ ¤ßÑb3|E&!Ò/M2Ð0‰ê©,…+ΡéÁ=Æ? µs€õ6¦Têh8Ž<¢©³¹p*NRÁÁêÔpîX’霿A»£©þŒb8•A…Ô’÷G£]5#W„­Ô@µ¹àV1 Æ6ZX¯Ô*è|@DÑÖ&<4¤?­|!%ùHútô²P» +bË›•ÅæÆ BucÉÎ×*+`±ú°ha49 «ÈŒV¤êÒÓUÂ&´=ÜA¨Ïåå•(ª+Š-ùB0£ühª)·(·(=_?´ æ´Gg¦%¸‡U!Ñ\zFI©!ÏhÈ …†ÂE[Œ)P¥<Úr¹³­¼±Ahh2õu= ¬ÏN«=UVÖžGîn»<Mvç”gÄ(´ZeèëBr@F¬6 u »>á3ãD™¢¦¬°'_0#m4Õ›cÐ×o1ä3ò36¡µÓ¢o|KÄdW—+jËŠ[ ð§TÑTsvAVË8œ™f&¡3¼ñ3ºA4‘ð%ëœêî’’–Âé~ ²pN,•”••­å²Ò…±<$¦ †{yËŽ[ú=~ò¨B~aQž=N'D W-dcyQQ)WX¢Ë)SÚFRÛ¸Ç7®ýžr`Þ)qS[„¥SÑÑjéiiNkÔå Õ^4€Ö0ÉÌB3Ðì'ÏÁiÐõ»_àLøìÂ_+BÙ+õûÑJô¢Ú}Ïnõ98®¯½.‚±]c+Y©"ßÉ®ÉW¨µ!QÞ²C;=LÊ-Ôu…Ó“›r**Õ%ý‚Å@XЗ*ªS×o +‚ÛÐçÓжPkKÓÊu÷hx°…‚¾è6}ÈñmÖØ¢‚êü"¡¬¨¦ÐÂ}Óí=k[’_Hœ•”¹VOƒZ"?ÍXù:’-ÝÁ^ñNñ¥9ÊMñÖa¯×w¶œU +‘ÝɉïÒá(¯l.*)©áJÊs3Åijݙƒœÿ÷Ï¡Ë}Ïû[OˆhÞûĪ¾XËÅõS=ïœ>ïRè ¬ 7m¥Á0ßÖu2ìx (5.âÁ¾¤7x`fƒ +´Õ= +«ÚM f”¤|ÒŸÌ Ï4:øøG%ã–îÿÎøåÄÑšêŒÔ"±0=/ÏGqÈPÛÃj6÷^ß|f š1ïYôáÿíÐÿœ  Å›;¯2{ÇñȃsÑsÐÿ8ÉÜsK„2Êø~yÅûx×^®¬ºU*XPˆŠz?Ó·A®Pègë:¨HSmÒÞ3âx8¥ß­ÑnÈ u%\ÊFaé š˜@è´ez:œ„ë<¢yœ¢2Ñ,¢™´|×\gê‘v|þ4•UFe|¶ðÆK8ãà"FQº“5­Ú„üÕT›¾&NçO£áèo¢" šà èc§¡HÊ ‰ÐÓjèx]wMCÛŸßjÕWÇéið +ÓK?ãÒúåkÇÍù?”m¶ÆYg±ç‘+%kÛÌÈz×ó²Ëך\Wô¥hdïù3²E! ˆgà]`U²Æ²¢.¢î3Caƒâ¸º1"2.6L›W'”(‹ƒ ÃiÐØh®hâºj#÷‰(›Ò+µšà\:¦P`yAj¹îm5SÐ1gÔ£ºÔAbü2ymd-£CЩ€7Sºµ©i+0~ƒXE¬6=P'dëµúd=~a Ó_Žs"DcêÓ‹Ö¯ÐÞhªC_oPÒãÅø’ q!z|É +|ŸÈÀÏaû#ÚB”&3ÓMj¤¤†C¦2JÜíõ͆EÓ¾ƒÂ­oÌu׋§›P¬º‚j7«U‰ñšq«á\"©-§¬TQ[[ajMè‚šÉm¸22 h±æ€2Ô—KSÃS<éSm©,ª®n¥«5Hôb@Rž vöÁ“=HÀ¹ðu¸ÔVÀ‹¬ÞlÊ«æ¾8_fÏ·µ_¸©¸|aw»`ò *Þ¡OÕ&r4·:Q·¦ ‹ø5üÔ²„·š§Luø«'š³RkÄ–ø]Šyþǧjò Aº‘ÀöŒà¨cŠ=÷ƒ  \ýÅèö ¼o×ð8¿räl3Õ|âDKK»(ÝÈxk™ ýƒcÈãÙµ9…¹tAn~V¶"--!5U@r$'¬ëÑ®hꄾ:Áà7±¾šøЉ•0SG‹sŠôÃ4$©&ówHAÔ©ŠR2)ÉYz!jÍTjv~EºˆÜ`Ãßm®»Q‚ÿ<Àî†ÏÚÙõÕ +SyE½PjB1j²#£8mIàTÔ=-ü Â?)9!™ËÌ.,‹)Ca^A>¦³Æð UÀ±“ÁÃÃ=7Íä­Äi +‹» xŸÃk\_¥OÌ +O‹äßÞu²í/ì1ðIµ`<¦²O`ÎO(‡'[[Ož ÇïÖߨ­6ôÑ°€ú›ÛÅWwyDìöÀ÷y]ÖtJ~€Ëa|Ó®ÊÞ%a(| +ÐC"tFI"º¢"od×'ŽÒãi”Wdì>ê¬Ù&SEq෺„÷ª7—+^P/ ñ<‚ŽÄlå<µ•§E@é®V×u2¹WjêÏézº«®'Gu5ñº=ôx#Š°6ú1¤t//5I¬³ ”=ê–àÃ)Ãk»Ôb|{fGÎæ‘YŸ$ ‡öÐÝ!ž¦ýrXù<šfü”><ÓþÍM•ÁÕ,dòk{Ïr­uI¡%bA|~”á D×^ãÕ¸€îÌ¡#m¡§ ó EB¯Uù¼á.œ—”îJµmˆÀÈÉY8>gØÁB«‹¦.›‡¸M槼ŀ®ó1§¹ó—›ºÅî~ÓÛwð™eÿHA¯ÄáHŒ,Ë"óƒ¶+Ðê„}Ž% ÿ +·Õ\Á¹ºÛZ:¤€_§RhåV"Ž*;^WXÂÕk#DE6$§nãÔ0‡·%á ¸Ào`îóÀzµ+€(cà‹ŸÝ€S¡üåwÑ«±9y¹‡E¿)ÆšÒ¼rîÑо¹‹}ÜÖû¥Tõ‹`´¼©Ôl¢eÖ‹ià”âbÈÙ=íB“·géznzšIÙ¯O†.Zâí¶A©­ê­mSêI™õog®\~ôÈÊœ´p&/è‰VÀÈSY¼q±ª!‚€N|K±|Ú²G᧊RjRŠLqBXsFAx>™®ÕÆ+‚{ãÞèÉa Ýá/îÕ¤—Vä +„rêxtc2Ful¿ÿµ«Ã]˜$ÃBƒý[Ã{ñy +GŠd€o ÓÛÞÞÓzÂ_Ag!%6ÁbêzöñÄ.ázØΓë87ÿ¤QVÚ >dÆœL. ¯6öÁs]ë›úÁÕzƒì‡D ™¾€Ï1š„25§V©Ëµmñ"œµ„°~þ6HãSüž »{GHôáx:%<8+‚Û²½k4\ ?ŸüÞO +è ~nè¸Ó\“¡ÍÑeåf +Y©ºŒL…¦4©"G^î~ŠàU^Úi“#UuH€ø%<W'1¶Y†4US–œª8]½ŽZuFùsK}~y».*ní8ýr´&7=\ÈÑfè29mVQ…˜ˆq®…´dæØÁ>ØÇ¢DÃRß1¦hÇ/K`v`Α¥}’_ óÏ`A€ß²QŠ¦Žmb½}<;‚;;ƒ:½Ei¿’!` ©ÛKQÆ}I‰ k˜ØmvÔ%zW +å{Xƒ‡!*XžÇ^1ÖÆŽ€É?1àÌØÔLÀÞ&ù8+°ˆÀÎ@Ù#(Ûx¨tý·ð6…U'”M(¬–Vï­â;(„Fæ¼®ú/4Ùi)Z9#€®”¾³¢¾¹6ë2 s¶ûäð°²ÃÌ붸´¦¢Rh45U4r£æ]è08ÝÊá¡žž! ¸pê€Gx¸'½Èr—;±—‚ÕP…ð?¼æŽ/ Q‡éèl5 0‘Q…)&CG³“ÛjÁ{ß›4(Žnñûùz€MQ¨)‡ +Ó4vE`éKå.ö™ú,bms±¹p„–FjMF¼æU]o[óÚ#hÖ—dF)ÐEÊ Ô&Ú€:x(•ž‡OúŸÆãVöàùœo9Û*ÔŸ(鹪îÑ^‘b\`Ʊe +€Ò|—òp ¼?2‰À5,æ)¾´šÍ­Oñ…Œ‰‰ŠhŠiiijji‰iŠAÑBºz ëéïïåqÒètw÷i`â¥?3¥%˜õ ê뛹J@þˆù'ඊ + iŽ:ÑÞÜÜ~BÕ,‚ŒÍè©)8ùÚà'@y‘ïí>ÑÞÓÚî'¶ÁÂ"›*p1Q®“V±ç‰ä¯ãkÙS-µB¤Ò–Ôè+4 °ÕS¹"H0“½ ÕÜ© (/-S3NÀiâáéúDò€ÚtQ]4œI4‹2&Ç®¾Vƒýƒ*/ÛöϱI@¬èúEé÷pë)8딜汣à Êa@ Ä6-ãEl½“%;º€!ARyyZ —_dÌ/‰ +Ç݈‰}˜Ð:±ÖkÀx ÌäÝ¢–γ\_S¨hîǃìŸ$èRÜ>uøp°Ïö¨BÛ|ñŒµÙ +(i|½Õ§zU“ ÀˆìŸIò1’m+(,,,((Î/.üÚÞ~ ®ØRb©(+-(¬°wxÚÙ7É<é;Él‰I2,¹+“gOž79rÅäÎÉßÚM±[n·Ù.ÒNm÷Ñ”W¦lšR5¥nÊ}b1L\ ®ïŸ?“!äWÔkTUHÕQŸÐ›èP:—®¢ÿ˜:yê SÓ§~Â,f¶01Œ†IgŒÌ s H€ LžÀ:À5pÓ^jÏÚO·çíØ/³ßn¿ßþ°½—}®}½}“ýÇö_8Lr f9¸9¨RÚ>vøÌá±Ãw¿;ŒK'IIéé*éZé^©Fš*Í•öJ‡¥W¥w¥Hÿp´wtr|ÅñUÇ×}3›O;žs¼êxÇñsÇ_œœ^rÚáäéádp:îÔã4êtÓé§Oþæô›Ó¿œ§9Ïs^îü†ófg/ç`çXçTçRç&çÎ=ÎÎÃÎç?tþÑ…p™á2Óe¹Ëz—Ý.‡]¼]]’]Š]Z]κÜuùÂåw-“ËfÈž“=/[#Û-ó”EÉ2dY™¬ZÖ ë•–Ý½#»'ûJö›œ”?#Vþ¼ü%ù+òuò=òCò ¹Zž&Ï’åeòZy£¼MÞ%‘ß’$$ÿ^>ÆNb¥ì3ìLv»}™]ƾÉîb²Al›Áæ²¥l-{œígÏ°çÙ«ìmö=öûû»ëdW©«Âu®ë‹®Ë]_wÝàºÕu·«›ëWo×`×XWk¶k‘k•«Åõ¤ë°ëˆëE×kc{þ,I?Ènˆ{s¢j9ß[<çuÎà”ñAUå'FŒ¼UÔݬr­ñM}A-h8ü¶—xæfÂûÜï6vˆ§{š?üVq“Ò\èÌ>–àÍù…×uʼn '2:rîÒ°Ìú,i8¤‡î 9jÚÇ!§óÑ\4÷Ó…Ð铳íOn‰˜ÜײÐ>¿®ï,7\„ìŒb¬ÈkêyH‰uí<4úâÛ<|óƒÞh>Þ€ž¢>˜…“o"䇎íÄ +œFÔ,¨¼`è Hé"°†ÝdÓÒˆÜÜ\}6—œYR+Â*êóµ£HŠˆµßð1G÷÷µš;«²+µ5BzYnQ‘¢¡¥æ¤þd‹ÐVy!·:-T¡ÍMÊIÐô=š¿"R;s+ÊæêÒÁ|Áh«vˆtKEõëLéåÑ] §!½ì­“ˆìZ]q©¢­¢t´@° au*«,½ö0 ÿqZ+ wZ£àÚñ(¢…„G­?Vö56tæOI¼‹c¹[Bò²»³Ù·óÙOË0Á]&‘#Ü@¼Dâl .‘pÊR+iaר«ôçik°Æ²rCWRœ›] –¦åé ÏÓÈ +Ë.ŠöUŸ ºÍAúÁïpÙ½äwbÛDSR|Y4çZÓ‘"¶¥çëJ2èÊäâ(¥bÏ[»½:ð u:¢783G¯ÏÁõÀ*{BF®àÁ#^_ÿ§ÈOnKx*òÇ\ š 'ƒ×¨CChÿcûÖp;m:kèDš~n›êÏ*êvn½ÆÊèÝ“S7dÐ*ë} +lÌ3Y]\>âe­'ÍÛyÙéÅŒìÁ«<ø¬ÂM8ÚŸJPbNÿÏ> Ñ”ùhÊÄ>Úbÿ )½öESƒ™%éï4Æ;#Ý+kÅ,3€­{·š¨üâò²2dðpÖ—è±³f©ÙÙKÞx]\¿Ñwá<¢{^y´VØpÿ«ÀŸ¸Ÿ¿ê~ÿ}ñþýžo~UüêÿxÝû‡o,î~–Cß»°p?\„oûá>¸-BûÑ^ôzíZ°æÄíMÂæ;¾Vxm!šÕ‡MbilA‚J‘Ñ?Œ¡Ò{ìÒÑ‘Ð IòëÜуe/ÐpëxºŽ¼ «NèáäÒ jk+yz*2Ùm؇¦h%附IWÈý2©N‰æÂâZú®œ:õq~qk"ŸaryEÙËðŒ™Ý™ŸZ©¿AÃ=Ôhë@GIi¦¦\ˆ¬¯No溛[{†‚:ŽRFm:*Êî~ŠöDS§²ËS&:6i©Þ™8põ 0`L +³Ø(Ò­Úô:Òê8F5ã T:F´’g xºÎÓU: ݆q—?ˆië +H¬/Á ö,"‰’¸‚”tETBª· R˦t2Ú˜Y¬éBeÖŸ¦EÈgütÜÖ°`?Ýt5Tšb©ÀÈzsi~eI£ØóñLg?CžZL‚»le<”˜p±Þ7©ÈCMa„.« Þ¾ZÑ0(~Ú{ññ +Hnú~f§Z–h\_˜`˜VNéÏÖÔàÌ4¡ûj39¢«MЦS)ŸÜÍ9‘™¾ñÓWø¸-™¯˜ñåOý„ØÓWR¯sðE«†ý9ëâkh¦‰û_›“% Ù®sŠö?„¢μôð§"Aú +?ÑæXË'¦Çƒe¼©ë/ð&/ËÜÀÈ6üUÐÑøÚ“-ÙÜÇ1¼6NglUh88 ÿ]ˆ.‚ÙÇ(…œ(6«à]ê*J£€—)«+"¡Š¬5” +å%õE­Ü{ç‚ßê[ܪÖ/W,R/ûïµi˜Œ´t¬Ìª ©…ÚjtÅ*wC·“–Jð–=¥¢fåF+4Ù¡¡ +Cá ¦ŒïWWß+xÊ#­Ó,ÊJ; t¹‰5^E¾+¶, +¬Á®¶QU¯Ž§_‹ôõ;¨8V—p3F,ú^E~–SfÜGÏ¢†ÇnÞîS?,x]Šç†Û†,BlU¶N¯ÏÈ™žÆ\ØÛ9uÉFwz<œÒ¹'§àU¶¾KõBo"’ Ý¢ŽŒ <Ý4opÛ*°CH£~ïS"²\l†ŸG‘ÉhŠ_À, ã©îŠÒ _žO‰hÚ#«Â*7ÓfxhÛ^ÐCÐÀÿÕçm +êZ;ÌüUÅ‘µ5{ç`A½Óí~Â.ö‹ÐL¤6ê ‹55¥-B RW9qm;áËèâ4ôŠ­ ®†_›Â¶ðù—h¸™‚ +ØÒs¿¼|¨hº íS›¨ •&+QƒÍº+üÂB®)Í(Õ}@Ãä ƒµô'íƒ×>R@zÑm´z¢]ÿNvU’q½­]¯ß‘ë™Cç¦ét©"Ô[?b›j+:ux¡IÛS”Q1‚::8sÆ–²K¶Dïß*®Ûî¿MQ`ƒ¤@3 <ˆüþpÇMáÖ¶5í³¹‚@ö÷kh&“ƒÛÐÔ™G=[‡"ÅÐ Éïþª€N¦†/ -µ}œJ©‹U'ëÊ3S²s³²Ò„ô¤œ´TÌ7kTäÎe¾ž[÷Ó‘£èµuÀ÷î¾ãŸö ªrB©Ö$Çq©µ}"¼`ë_)d\xûöAe¸VUs£{ÍÖ®š†Âbºç|us­¢8§ ###G›$èõ:]®y¡•Ór(ŒJ«°»§ïŒÜþ›âî±á]‡‚CÀÓ½­«VÛööÈðêpÝ–@>þjëYÄh²ótQ"$ +Ê Å±»ò + Œ­šãqä¤ÿ𙞓ÃglÕÀþú¦­¦{SëKÈÂ$»S­'ÄNúÀ#h!| ݧÀ #âÐkh-V`xÝÑóXÍÀNr t„ÄEéƶîÐQî››¿`©ê|ø›ÍÑ1!Áõq]Yb_¦A_©¥«‹#<s=·­÷¬í‰Z®V (ÎÄ´(£CyVh:bÛ7ÖÃG¤tÜàI?\cÿ¬¨š¨¨¹åÒ@§@ç`¤ƒið{ÛÒÐjæÌeqØBæàRï=¿ãH@øÆáG +mÙ_¨&òK + ùœyÂn߇ÎÔÄ’1àò"@ýÕ[Á€§E’bKÑ9Zúú¸{¡Yä±?jþ¦Á†âòÖ&Ü:h²¾ZÀ£¿f·%ñà SÀ5Áøê§Ý¡Ò‰îPéŸÝ¡¬¤t]&•cë}eMg‡ë•/¾˜päHBד'uÝgDàþ˜ÖçØ>&F¨çW0î¿´òQ2õÊzâõÕ=©ÿKWßL=íûK­snß¾mج´Ä­£ŽKåÜTW¡²-W¯t´G+«D`s21;ù¿Úä{¡œx@¡^(‹qƒþ«ˆ?ìHðC_j;‘“’¥Ïà|BºßOÑä:6# r{B˜›’Èy©GqèÅ.ö6û ºC”Æk‹Ë +ó‹‹Ê„²êlŽG™ƒýUª€ÝWŽ¶ZmL¤:`"Ò2 ?¯žì…5½.ð,ô_Ä2®’ý:dïzj²Ì¸<Þ,†‰V²›¿z»;mÇ\†Ò‹² Þôÿ›à+5@;L p6È3IÀ+L»©ÎâãáK| ÐùÃçy`3XôæC[—*Þê?zm¤ãĹ¡°ÞÙYyú,AŸ«ËÓq©¥}ý÷GEðSl(ãþž°ÛÃc¼x[3a_b)ÄÉq“ô!vSÆS’ÞPœP©?GÃD˜…)ÝÁDíÛÙ¥o)pÞØÈC¹Jô­#€•€ Ùõ¥¯ç8x³!¿¦¤AŒ?ÞœÞÊõ¶4o©ŠˆÎJÂÛs[BxLt]U Íùp6¯«|ëɧmyœ&`aÿ”6 t®¡ö¶­pø­Šz'פÁ„‚|Qô¥ €1oÚâ›Ybºž´ ZWD¶jcµŒ¿QÆe©aœ)“ü³r|š?n MÀ”±Ä†žh9Z†Qâ \ŽVÀCø¶®À{?[…ˆàd yµ[µ­K0y²¦­EGV+ß„CÝî×|3Hð4ÚÎî2jêuØ#?K=cÑžæ ñðp>œùÆdb  õHœº½nM«l%:Œ¡H°€Qûz¬æ!F\„D©Bþ,ŸhjÅ”5)Ï £h‡³Ë PvÜ¥>' [ +åìe@<˜åщP.‡î8”+ð͇r9|Lœh02à+Æêcb=È]s‰:€Ö·‘…ßœùãû”ƒ=¢þ{¢\ä{ÀÓÎx}sV='›Ñ„¤€n¶Îa;˜/?¯½Ždñ9q…Œøt]—QfÑ‹ C¨ +Š,x‹C;à N 2¾‡ák¸¾Æçܶj·PÒ£¼ídÖ±Cõ¡~Š M\THrÓÈ`AM}« e­s¶ŒXnS?¼=Ž¿t›G[G¼>¼wîÜ=0aKá6“änogm7³ÐÚ£¸x¤oë[îž»|ð°Þ=ŸÞþÁ㋆:îw ðþý€ûî≯¯Š²ŽñgCXUtrf4§Œ7ÛjèÚH2 )=-ŽKO.(‹Í{Ž”ÛúÂ(€B¯A"¾)³²Jaª©hÀŸýÀæþø ÜÅþ¿èy°†æõ4€/ÃÅp6¾¿Œ×îþë@S½ °;`õ¨«ØÒ#ÞÑ‘jn‹÷Íäˆ:0ª={ºaÓ™x“ P·]ú†¥Q ‡9­:Ó7gwÚü:@î‰×I„Áÿ<ˆ/›(ƒ‰Ë©-J»i€Vgó¶îkn5†'yCô9)"¸*×àû×ìÆüŽ¹â£‰ÖPœó;¾yë‘ð@ni—áºnøj¯D«Ô*›š-øäZ×pKBJ• Á¤ãÖD*Р 1¿Â¨¨b÷)ÓÛï`±¿fÁåX[!þnÿ3 ïwre`¦ +ØÎ}àÜ%àr€u=˜8«’€qtK~‡Î6‰jÆ[È…8Cžu;2vä#$ Ñ³”º ©4gÞ3Œí0#@¿ìÌÊ +ÒOWk'T²_Ž–Pài³ì¤®¦$1R¸(Ïlç?Àÿñå¼£ endstream endobj -1302 0 obj +1299 0 obj << -/Length 2660 +/Length 3050 >> stream 0 g 0 G 0 g 0 G 0 g 0 G -BT -/F8 9.9626 Tf 112.072 706.129 Td [(3.)]TJ -0 g 0 G - [-500(Calling)-339(the)-339(routine)-339(with)]TJ/F30 9.9626 Tf 121.471 0 Td [(vg)]TJ/F8 9.9626 Tf 13.839 0 Td [(or)]TJ/F30 9.9626 Tf 12.262 0 Td [(parts)]TJ/F8 9.9626 Tf 29.53 0 Td [(implies)-339(that)-339(ev)28(ery)-340(pr)1(o)-28(cess)-340(will)-339(scan)]TJ -164.372 -11.955 Td [(the)-333(en)27(tire)-333(index)-333(space)-334(to)-333(\014gure)-333(out)-333(the)-334(lo)-28(cal)-333(indices.)]TJ -0 g 0 G - -12.73 -19.926 Td [(4.)]TJ -0 g 0 G - [-500(Ov)28(erlapp)-28(ed)-333(indices)-334(are)-333(p)-28(ossible)-333(with)-333(b)-28(oth)]TJ/F30 9.9626 Tf 199.198 0 Td [(parts)]TJ/F8 9.9626 Tf 29.472 0 Td [(and)]TJ/F30 9.9626 Tf 19.372 0 Td [(vl)]TJ/F8 9.9626 Tf 13.782 0 Td [(in)28(v)28(o)-28(cations.)]TJ -0 g 0 G - -261.824 -19.925 Td [(5.)]TJ -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.61 0 Td [(vl)]TJ/F8 9.9626 Tf 12.675 0 Td [(in)-222(conjunction)-222(with)]TJ/F30 9.9626 Tf 84.959 0 Td [(globalcheck=.true.)]TJ/F8 9.9626 Tf 94.147 0 Td [(,)]TJ -349.661 -11.955 Td [(it)-368(will)-369(p)-28(erform)-368(a)-368(s)-1(can)-368(of)-368(the)-369(index)-368(space)-369(to)-368(searc)27(h)-368(for)-368(o)27(v)28(erlap)-368(or)-369(orp)1(han)]TJ 0 -11.955 Td [(indices.)]TJ -0 g 0 G - -12.73 -19.925 Td [(6.)]TJ 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.61 0 Td [(vl)]TJ/F8 9.9626 Tf 12.675 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.956 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.955 Td [(nor)-333(o)28(v)27(erlaps;)-333(if)-333(this)-334(assumption)-333(fails,)-333(results)-334(will)-333(b)-28(e)-333(unpredictable.)]TJ 0 g 0 G - -12.73 -19.925 Td [(7.)]TJ +BT +/F46 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 - [-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 -452.304 Td [(67)]TJ +/F8 9.9626 Tf 100.66 -105.903 Td [(61)]TJ 0 g 0 G ET endstream endobj -1313 0 obj +1308 0 obj << -/Length 7171 +/Length 8492 >> stream 0 g 0 G 0 g 0 G BT -/F16 11.9552 Tf 150.705 706.129 Td [(psb)]TJ +/F16 11.9552 Tf 150.705 706.129 Td [(5.2)-1125(psb)]TJ ET q -1 0 0 1 171.761 706.328 cm +1 0 0 1 202.396 706.328 cm []0 d 0 J 0.398 w 0 0 m 4.035 0 l S Q BT -/F16 11.9552 Tf 175.796 706.129 Td [(cdins)-375(|)-375(Comm)31(unication)-375(descriptor)-375(insert)-375(routine)]TJ -0 g 0 G -0 g 0 G -/F30 9.9626 Tf -25.091 -18.389 Td [(call)-525(psb_cdins\050nz,)-525(ia,)-525(ja,)-525(desc_a,)-525(info)-525([,ila,jla]\051)]TJ 0 -11.956 Td [(call)-525(psb_cdins\050nz,ja,desc,info[,jla,mask,lidx]\051)]TJ/F8 9.9626 Tf 14.944 -20.465 Td [(This)-428(subroutine)-427(examines)-428(the)-428(edges)-428(of)-428(the)-427(graph)-428(asso)-28(ciated)-428(with)-428(t)1(he)-428(dis-)]TJ -14.944 -11.955 Td [(cretization)-481(mesh)-480(\050and)-481(isomorphic)-480(to)-481(the)-480(sparsit)27(y)-480(pattern)-481(of)-480(a)-481(lin)1(e)-1(ar)-480(system)]TJ 0 -11.955 Td [(co)-28(e\016cien)28(t)-359(matrix\051,)-366(storing)-359(them)-359(as)-359(necess)-1(ar)1(y)-360(in)28(to)-359(the)-359(comm)28(unication)-359(des)-1(crip)1(-)]TJ 0 -11.955 Td [(tor.)-506(In)-353(the)-354(\014rst)-354(form)-354(the)-354(edges)-353(are)-354(sp)-28(eci\014ed)-354(as)-354(pairs)-353(of)-354(indices)]TJ/F11 9.9626 Tf 278.053 0 Td [(ia)]TJ/F8 9.9626 Tf 8.698 0 Td [(\050)]TJ/F11 9.9626 Tf 3.875 0 Td [(i)]TJ/F8 9.9626 Tf 3.432 0 Td [(\051)]TJ/F11 9.9626 Tf 3.874 0 Td [(;)-167(j)-57(a)]TJ/F8 9.9626 Tf 14.367 0 Td [(\050)]TJ/F11 9.9626 Tf 3.874 0 Td [(i)]TJ/F8 9.9626 Tf 3.433 0 Td [(\051;)-364(the)]TJ -319.606 -11.955 Td [(starting)-394(index)]TJ/F11 9.9626 Tf 65.222 0 Td [(ia)]TJ/F8 9.9626 Tf 8.699 0 Td [(\050)]TJ/F11 9.9626 Tf 3.874 0 Td [(i)]TJ/F8 9.9626 Tf 3.432 0 Td [(\051)-394(should)-394(b)-28(elong)-394(to)-394(the)-395(cur)1(re)-1(n)28(t)-394(pro)-28(cess.)-627(In)-394(the)-394(second)-394(form)]TJ -81.227 -11.955 Td [(only)-333(the)-334(remote)-333(indices)]TJ/F11 9.9626 Tf 104.968 0 Td [(j)-57(a)]TJ/F8 9.9626 Tf 9.939 0 Td [(\050)]TJ/F11 9.9626 Tf 3.874 0 Td [(i)]TJ/F8 9.9626 Tf 3.432 0 Td [(\051)-333(are)-334(sp)-27(e)-1(ci\014ed.)]TJ -0 g 0 G -/F27 9.9626 Tf -122.213 -20.465 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.345 Td [(On)-383(En)32(try)]TJ -0 g 0 G -0 g 0 G - 0 -19.344 Td [(nz)]TJ -0 g 0 G -/F8 9.9626 Tf 16.438 0 Td [(the)-333(n)27(u)1(m)27(b)-27(e)-1(r)-333(of)-333(p)-28(oin)28(ts)-333(b)-28(eing)-333(inserte)-1(d)1(.)]TJ 8.469 -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 [(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(alue.)]TJ -0 g 0 G -/F27 9.9626 Tf -24.907 -19.344 Td [(ia)]TJ -0 g 0 G -/F8 9.9626 Tf 13.733 0 Td [(the)-333(indices)-334(of)-333(the)-333(starting)-334(v)28(ertex)-333(of)-333(the)-334(edges)-333(b)-28(eing)-333(inserted.)]TJ 11.174 -11.956 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 [(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(arra)27(y)-333(of)-333(length)]TJ/F11 9.9626 Tf 172.547 0 Td [(nz)]TJ/F8 9.9626 Tf 11.051 0 Td [(.)]TJ -0 g 0 G -/F27 9.9626 Tf -208.505 -19.344 Td [(ja)]TJ -0 g 0 G -/F8 9.9626 Tf 14.051 0 Td [(the)-333(indices)-334(of)-333(the)-333(end)-334(v)28(ertex)-333(of)-334(t)1(he)-334(edges)-333(b)-28(eing)-333(inserted.)]TJ 10.856 -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.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(arra)27(y)-333(of)-333(length)]TJ/F11 9.9626 Tf 172.547 0 Td [(nz)]TJ/F8 9.9626 Tf 11.051 0 Td [(.)]TJ +/F16 11.9552 Tf 206.431 706.129 Td [(o)31(vrl)-375(|)-375(Ov)31(erlap)-375(Up)-31(date)]TJ/F8 9.9626 Tf -55.726 -18.389 Td [(These)-333(subroutines)-334(applies)-333(an)-333(o)27(v)28(erlap)-333(op)-28(erator)-333(to)-333(the)-334(input)-333(v)28(ector:)]TJ/F11 9.9626 Tf 154.475 -22.077 Td [(x)]TJ/F14 9.9626 Tf 8.461 0 Td [(\040)]TJ/F11 9.9626 Tf 12.73 0 Td [(Qx)]TJ/F8 9.9626 Tf -175.666 -20.14 Td [(where:)]TJ 0 g 0 G -/F27 9.9626 Tf -208.505 -19.344 Td [(mask)]TJ +/F11 9.9626 Tf 0 -18.503 Td [(x)]TJ 0 g 0 G -/F8 9.9626 Tf 30.664 0 Td [(Mask)-329(e)-1(n)28(tries)-329(in)]TJ/F30 9.9626 Tf 70.038 0 Td [(ja)]TJ/F8 9.9626 Tf 10.461 0 Td [(,)-330(they)-330(are)-329(inserted)-330(only)-329(when)-329(the)-330(corresp)-28(onding)]TJ/F30 9.9626 Tf 211.627 0 Td [(mask)]TJ/F8 9.9626 Tf -297.883 -11.955 Td [(en)28(tries)-334(are)]TJ/F30 9.9626 Tf 48.54 0 Td [(.true.)]TJ/F8 9.9626 Tf -48.54 -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.956 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(optional)]TJ/F8 9.9626 Tf 40.577 0 Td [(.)]TJ -70.188 -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:)-445(a)-333(logical)-333(arra)28(y)-334(of)-333(length)]TJ/F11 9.9626 Tf 165.048 0 Td [(nz)]TJ/F8 9.9626 Tf 11.051 0 Td [(,)-333(default)]TJ/F30 9.9626 Tf 39.574 0 Td [(.true.)]TJ/F8 9.9626 Tf 31.382 0 Td [(.)]TJ +/F8 9.9626 Tf 10.675 0 Td [(is)-333(the)-334(global)-333(dense)-333(submatrix)]TJ/F11 9.9626 Tf 131.092 0 Td [(x)]TJ 0 g 0 G -/F27 9.9626 Tf -271.962 -19.344 Td [(lidx)]TJ + -141.767 -19.214 Td [(Q)]TJ 0 g 0 G -/F8 9.9626 Tf 23.758 0 Td [(User)-333(de\014ned)-334(lo)-27(cal)-334(indices)-333(for)]TJ/F30 9.9626 Tf 128.85 0 Td [(ja)]TJ/F8 9.9626 Tf 10.461 0 Td [(.)]TJ -138.162 -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 [(optional)]TJ/F8 9.9626 Tf 40.577 0 Td [(.)]TJ -70.188 -11.956 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:)-445(an)-333(in)28(teger)-333(arra)27(y)-333(of)-333(length)]TJ/F11 9.9626 Tf 172.547 0 Td [(nz)]TJ/F8 9.9626 Tf 11.052 0 Td [(.)]TJ +/F8 9.9626 Tf 12.857 0 Td [(is)-333(the)-334(o)28(v)28(erlap)-333(op)-28(erator;)-333(it)-334(is)-333(the)-333(co)-1(mp)-27(osition)-334(of)-333(t)28(w)28(o)-334(op)-27(erators)]TJ/F11 9.9626 Tf 271.842 0 Td [(P)]TJ/F10 6.9738 Tf 6.396 -1.494 Td [(a)]TJ/F8 9.9626 Tf 8.141 1.494 Td [(and)]TJ/F11 9.9626 Tf 19.372 0 Td [(P)]TJ/F10 6.9738 Tf 7.78 3.616 Td [(T)]TJ/F8 9.9626 Tf 6.276 -3.616 Td [(.)]TJ 0 g 0 G -/F27 9.9626 Tf -208.506 -20.465 Td [(On)-383(Return)]TJ 0 g 0 G 0 g 0 G - 0 -19.344 Td [(desc)]TJ ET q -1 0 0 1 172.619 168.346 cm -[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S +1 0 0 1 228.797 587.879 cm +[]0 d 0 J 0.398 w 0 0 m 187.526 0 l S Q BT -/F27 9.9626 Tf 176.057 168.146 Td [(a)]TJ -0 g 0 G -/F8 9.9626 Tf 10.55 0 Td [(the)-333(up)-28(dated)-333(comm)27(unication)-333(descriptor.)]TJ -10.996 -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.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 +/F11 9.9626 Tf 234.775 579.311 Td [(x)]TJ/F27 9.9626 Tf 120.41 0 Td [(Subroutine)]TJ ET q -1 0 0 1 362.845 120.525 cm -[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +1 0 0 1 228.797 575.525 cm +[]0 d 0 J 0.398 w 0 0 m 187.526 0 l S Q BT -/F30 9.9626 Tf 365.983 120.326 Td [(desc)]TJ +/F8 9.9626 Tf 234.775 566.957 Td [(Short)-333(Precision)-334(Real)-3102(psb)]TJ ET q -1 0 0 1 387.532 120.525 cm -[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +1 0 0 1 370.782 567.156 cm +[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F30 9.9626 Tf 390.67 120.326 Td [(type)]TJ -0 g 0 G -/F8 9.9626 Tf 20.922 0 Td [(.)]TJ -0 g 0 G - -94.013 -29.888 Td [(68)]TJ -0 g 0 G +/F8 9.9626 Tf 373.771 566.957 Td [(o)28(vrl)]TJ -138.996 -11.955 Td [(Long)-333(Precision)-334(Real)-3314(psb)]TJ ET - -endstream -endobj -1318 0 obj -<< -/Length 3156 ->> -stream -0 g 0 G -0 g 0 G -0 g 0 G +q +1 0 0 1 370.782 555.201 cm +[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +Q BT -/F27 9.9626 Tf 99.895 706.129 Td [(info)]TJ -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 -/F27 9.9626 Tf -24.907 -19.925 Td [(ila)]TJ -0 g 0 G -/F8 9.9626 Tf 16.916 0 Td [(the)-333(lo)-28(cal)-333(indices)-334(of)-333(the)-333(starting)-334(v)28(ertex)-333(of)-334(the)-333(edges)-333(b)-28(eing)-333(inserted.)]TJ 7.991 -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 [(optional)]TJ/F8 9.9626 Tf 40.577 0 Td [(.)]TJ -70.188 -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 [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(in)28(teger)-333(arra)27(y)-333(of)-333(length)]TJ/F11 9.9626 Tf 172.548 0 Td [(nz)]TJ/F8 9.9626 Tf 11.051 0 Td [(.)]TJ -0 g 0 G -/F27 9.9626 Tf -208.506 -19.925 Td [(jla)]TJ -0 g 0 G -/F8 9.9626 Tf 17.234 0 Td [(the)-333(lo)-28(cal)-333(indices)-334(of)-333(the)-333(end)-334(v)28(ertex)-333(of)-334(the)-333(edges)-333(b)-28(eing)-333(inserted.)]TJ 7.673 -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 [(optional)]TJ/F8 9.9626 Tf 40.577 0 Td [(.)]TJ -70.188 -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 [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(in)28(teger)-333(arra)27(y)-333(of)-333(length)]TJ/F11 9.9626 Tf 172.548 0 Td [(nz)]TJ/F8 9.9626 Tf 11.051 0 Td [(.)]TJ/F16 11.9552 Tf -208.506 -21.918 Td [(Notes)]TJ -0 g 0 G -/F8 9.9626 Tf 12.177 -19.925 Td [(1.)]TJ -0 g 0 G - [-500(This)-333(routine)-334(ma)28(y)-333(only)-333(b)-28(e)-334(called)-333(if)-333(the)-333(des)-1(crip)1(tor)-334(is)-333(in)-333(the)-334(build)-333(state;)]TJ -0 g 0 G - 0 -19.925 Td [(2.)]TJ -0 g 0 G - [-500(This)-305(r)1(o)-1(u)1(tine)-305(automatically)-304(ignores)-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,)-284(i.e)-1(.)-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 - -12.73 -19.926 Td [(3.)]TJ -0 g 0 G - [-500(The)-437(second)-438(form)-437(of)-437(this)-437(routine)-437(will)-438(b)-27(e)-438(useful)-437(when)-437(dealing)-437(with)-438(user-)]TJ 12.73 -11.955 Td [(sp)-28(eci\014ed)-333(index)-333(mappings;)-334(see)-333(also)]TJ -0 0 1 rg 0 0 1 RG - [-334(2.)1(3.1)]TJ -0 g 0 G - [(.)]TJ -0 g 0 G - 141.968 -314.819 Td [(69)]TJ -0 g 0 G +/F8 9.9626 Tf 373.771 555.002 Td [(o)28(vrl)]TJ -138.996 -11.955 Td [(Short)-333(Precision)-334(Complex)-1200(psb)]TJ ET - -endstream -endobj -1327 0 obj -<< -/Length 4747 ->> -stream -0 g 0 G -0 g 0 G +q +1 0 0 1 370.782 543.246 cm +[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +Q BT -/F16 11.9552 Tf 150.705 706.129 Td [(psb)]TJ +/F8 9.9626 Tf 373.771 543.047 Td [(o)28(vrl)]TJ -138.996 -11.956 Td [(Long)-333(Precision)-334(Complex)-1411(psb)]TJ ET q -1 0 0 1 171.761 706.328 cm -[]0 d 0 J 0.398 w 0 0 m 4.035 0 l S +1 0 0 1 370.782 531.291 cm +[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F16 11.9552 Tf 175.796 706.129 Td [(cdasb)-375(|)-375(Comm)31(unication)-375(descriptor)-375(assem)31(bly)-375(routine)]TJ -0 g 0 G -0 g 0 G -/F30 9.9626 Tf -25.091 -18.389 Td [(call)-525(psb_cdasb\050desc_a,)-525(info)-525([,)-525(mold]\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 [(Sync)28(hronous.)]TJ +/F8 9.9626 Tf 373.771 531.091 Td [(o)28(vrl)]TJ +ET +q +1 0 0 1 228.797 527.306 cm +[]0 d 0 J 0.398 w 0 0 m 187.526 0 l S +Q 0 g 0 G -/F27 9.9626 Tf -33.797 -19.926 Td [(On)-383(En)32(try)]TJ +BT +/F8 9.9626 Tf 276.386 499.266 Td [(T)83(able)-333(18:)-444(Data)-334(t)28(yp)-28(es)]TJ 0 g 0 G 0 g 0 G - 0 -19.925 Td [(desc)]TJ +/F27 9.9626 Tf -124.304 -28.465 Td [(c)-138(a)-138(l)-139(l)]TJ/F8 9.9626 Tf 29.881 0 Td [(p)-137(s)-138(b)]TJ ET q -1 0 0 1 172.619 626.17 cm -[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S +1 0 0 1 201.669 471 cm +[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F27 9.9626 Tf 176.057 625.971 Td [(a)]TJ -0 g 0 G -/F8 9.9626 Tf 10.55 0 Td [(the)-333(comm)27(unication)-333(descriptor.)]TJ -10.996 -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(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 +/F8 9.9626 Tf 206.027 470.801 Td [(o)-137(v)-138(r)-137(l)-243(\050)-130(x)-209(,)-874(d)-113(e)-112(s)-113(c)]TJ ET q -1 0 0 1 362.845 578.35 cm -[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +1 0 0 1 276.854 471 cm +[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F30 9.9626 Tf 365.983 578.15 Td [(desc)]TJ +/F8 9.9626 Tf 280.965 470.801 Td [(a)-386(,)-914(i)-152(n)-152(f)-152(o)-258(\051)]TJ/F27 9.9626 Tf -128.883 -11.955 Td [(c)-138(a)-138(l)-139(l)]TJ/F8 9.9626 Tf 29.881 0 Td [(p)-137(s)-138(b)]TJ ET q -1 0 0 1 387.532 578.35 cm -[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +1 0 0 1 201.669 459.045 cm +[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F30 9.9626 Tf 390.67 578.15 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 -19.925 Td [(mold)]TJ -0 g 0 G -/F8 9.9626 Tf 29.805 0 Td [(The)-333(desired)-334(dynamic)-333(t)28(yp)-28(e)-333(for)-334(th)1(e)-334(in)28(ternal)-333(index)-334(storage.)]TJ -4.899 -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 [(optional)]TJ/F8 9.9626 Tf 40.576 0 Td [(.)]TJ -70.188 -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.956 Td [(Sp)-28(eci\014ed)-222(as:)-389(a)-222(ob)-56(ject)-222(of)-222(t)28(yp)-28(e)-222(deriv)28(e)-1(d)-222(from)-222(\050in)28(teger\051)]TJ/F30 9.9626 Tf 219.871 0 Td [(psb)]TJ +/F8 9.9626 Tf 206.027 458.846 Td [(o)-137(v)-138(r)-137(l)-243(\050)-130(x)-209(,)-874(d)-113(e)-112(s)-113(c)]TJ ET q -1 0 0 1 411.8 510.604 cm -[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +1 0 0 1 276.854 459.045 cm +[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +Q +BT +/F8 9.9626 Tf 280.965 458.846 Td [(a)-386(,)-888(i)-127(n)-127(f)-127(o)-415(,)-846(u)-86(p)-86(d)-86(a)-85(t)-86(e)3(=)-13(u)-101(p)-102(d)-102(a)-102(t)-102(e)]TJ +ET +q +1 0 0 1 415.44 459.045 cm +[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F30 9.9626 Tf 414.939 510.405 Td [(T)]TJ +/F8 9.9626 Tf 419.443 458.846 Td [(t)-102(y)-102(p)-101(e)-365(,)-813(w)-52(o)-51(r)-52(k)37(=)38(w)-52(o)-52(r)-51(k)-158(\051)]TJ +0 g 0 G +0 g 0 G +0 g 0 G +/F27 9.9626 Tf -268.738 -25.406 Td [(T)32(yp)-32(e:)]TJ +0 g 0 G +/F8 9.9626 Tf 33.797 0 Td [(Sync)28(hronous.)]TJ +0 g 0 G +/F27 9.9626 Tf -33.797 -19.214 Td [(On)-383(En)32(try)]TJ +0 g 0 G +0 g 0 G + 0 -19.214 Td [(x)]TJ +0 g 0 G +/F8 9.9626 Tf 11.028 0 Td [(global)-333(dense)-334(matrix)]TJ/F11 9.9626 Tf 88.917 0 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(.)]TJ -80.732 -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 [(inout)]TJ/F8 9.9626 Tf 26.097 0 Td [(.)]TJ -59.582 -11.955 Td [(Sp)-28(eci\014ed)-255(as:)-405(a)-255(rank)-254(one)-255(or)-255(t)28(w)28(o)-255(arra)28(y)-255(or)-255(an)-255(ob)-55(ject)-255(of)-255(t)28(yp)-28(e)]TJ +0 0 1 rg 0 0 1 RG +/F30 9.9626 Tf 244.742 0 Td [(psb)]TJ ET q -1 0 0 1 420.797 510.604 cm +1 0 0 1 436.673 347.39 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 423.935 510.405 Td [(base)]TJ +/F30 9.9626 Tf 439.811 347.191 Td [(T)]TJ ET q -1 0 0 1 445.484 510.604 cm +1 0 0 1 445.669 347.39 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 448.622 510.405 Td [(vect)]TJ +/F30 9.9626 Tf 448.807 347.191 Td [(vect)]TJ ET q -1 0 0 1 470.171 510.604 cm +1 0 0 1 470.356 347.39 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 473.309 510.405 Td [(type)]TJ/F8 9.9626 Tf 20.922 0 Td [(.)]TJ +/F30 9.9626 Tf 473.495 347.191 Td [(type)]TJ 0 g 0 G -/F27 9.9626 Tf -343.526 -21.918 Td [(On)-383(Return)]TJ +/F8 9.9626 Tf -297.884 -11.955 Td [(con)28(taining)-333(n)27(um)28(b)-28(ers)-333(of)-333(t)27(yp)-27(e)-334(sp)-27(ec)-1(i)1(\014ed)-334(in)-333(T)83(able)]TJ +0 0 1 rg 0 0 1 RG + [-333(18)]TJ 0 g 0 G + [(.)]TJ 0 g 0 G - 0 -19.926 Td [(desc)]TJ +/F27 9.9626 Tf -24.906 -19.214 Td [(desc)]TJ ET q -1 0 0 1 172.619 468.761 cm +1 0 0 1 172.619 316.221 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 176.057 468.561 Td [(a)]TJ +/F27 9.9626 Tf 176.057 316.022 Td [(a)]TJ 0 g 0 G -/F8 9.9626 Tf 10.55 0 Td [(the)-333(comm)27(unication)-333(descriptor.)]TJ -10.996 -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.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.55 0 Td [(con)28(tains)-334(data)-333(structures)-333(for)-333(c)-1(omm)28(unications.)]TJ -10.996 -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.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 362.845 420.94 cm +1 0 0 1 362.845 268.401 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 365.983 420.741 Td [(desc)]TJ +/F30 9.9626 Tf 365.983 268.201 Td [(desc)]TJ ET q -1 0 0 1 387.532 420.94 cm +1 0 0 1 387.532 268.401 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 390.67 420.741 Td [(type)]TJ +/F30 9.9626 Tf 390.67 268.201 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 -19.926 Td [(info)]TJ -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 -21.918 Td [(Notes)]TJ -0 g 0 G -/F8 9.9626 Tf 12.176 -19.925 Td [(1.)]TJ -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 -220.714 Td [(70)]TJ -0 g 0 G -ET - -endstream -endobj -1334 0 obj -<< -/Length 3277 ->> -stream +/F27 9.9626 Tf -260.887 -19.214 Td [(up)-32(date)]TJ 0 g 0 G +/F8 9.9626 Tf 39.67 0 Td [(Up)-28(date)-333(op)-28(erator.)]TJ 0 g 0 G -BT -/F16 11.9552 Tf 99.895 706.129 Td [(psb)]TJ +/F27 9.9626 Tf -14.764 -31.169 Td [(up)-32(date)-383(=)-384(psb)]TJ ET q -1 0 0 1 120.951 706.328 cm -[]0 d 0 J 0.398 w 0 0 m 4.035 0 l S +1 0 0 1 244.786 218.017 cm +[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F16 11.9552 Tf 124.986 706.129 Td [(cdcp)31(y)-375(|)-375(Copies)-375(a)-375(comm)31(unication)-375(descriptor)]TJ -0 g 0 G -0 g 0 G -/F30 9.9626 Tf -25.091 -18.389 Td [(call)-525(psb_cdcpy\050desc_in,)-525(desc_out,)-525(info\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.926 Td [(On)-383(En)32(try)]TJ -0 g 0 G -0 g 0 G - 0 -19.925 Td [(desc)]TJ +/F27 9.9626 Tf 248.223 217.818 Td [(none)]TJ ET q -1 0 0 1 121.81 626.17 cm +1 0 0 1 272.62 218.017 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 125.247 625.971 Td [(in)]TJ +/F8 9.9626 Tf 281.039 217.818 Td [(Do)-333(nothing;)]TJ 0 g 0 G -/F8 9.9626 Tf 14.529 0 Td [(the)-333(comm)27(unication)-333(descriptor.)]TJ -14.974 -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.183 0 Td [(required)]TJ/F8 9.9626 Tf 41.899 0 Td [(.)]TJ -67.082 -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 +/F27 9.9626 Tf -105.428 -15.229 Td [(up)-32(date)-383(=)-384(psb)]TJ ET q -1 0 0 1 312.036 578.35 cm -[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +1 0 0 1 244.786 202.789 cm +[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F30 9.9626 Tf 315.174 578.15 Td [(desc)]TJ +/F27 9.9626 Tf 248.223 202.589 Td [(add)]TJ ET q -1 0 0 1 336.723 578.35 cm -[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +1 0 0 1 267.21 202.789 cm +[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q -BT -/F30 9.9626 Tf 339.861 578.15 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.917 Td [(On)-383(Return)]TJ 0 g 0 G +BT +/F8 9.9626 Tf 275.628 202.589 Td [(Sum)-333(o)27(v)28(erlap)-333(en)28(tries,)-334(i.e.)-444(apply)]TJ/F11 9.9626 Tf 136.544 0 Td [(P)]TJ/F10 6.9738 Tf 7.78 3.616 Td [(T)]TJ/F8 9.9626 Tf 6.276 -3.616 Td [(;)]TJ 0 g 0 G - 0 -19.926 Td [(desc)]TJ +/F27 9.9626 Tf -250.617 -15.229 Td [(up)-32(date)-383(=)-384(psb)]TJ ET q -1 0 0 1 121.81 536.507 cm +1 0 0 1 244.786 187.56 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 125.247 536.307 Td [(out)]TJ +/F27 9.9626 Tf 248.223 187.36 Td [(a)32(vg)]TJ +ET +q +1 0 0 1 265.937 187.56 cm +[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S +Q 0 g 0 G -/F8 9.9626 Tf 21.53 0 Td [(the)-333(comm)27(unication)-333(descriptor)-333(cop)28(y)83(.)]TJ -21.975 -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.183 0 Td [(required)]TJ/F8 9.9626 Tf 41.899 0 Td [(.)]TJ -67.082 -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 [(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 +BT +/F8 9.9626 Tf 274.355 187.36 Td [(Av)28(erage)-334(o)28(v)28(erlap)-333(en)27(tries,)-333(i.e.)-444(apply)]TJ/F11 9.9626 Tf 152.346 0 Td [(P)]TJ/F10 6.9738 Tf 6.396 -1.494 Td [(a)]TJ/F11 9.9626 Tf 4.82 1.494 Td [(P)]TJ/F10 6.9738 Tf 7.78 3.616 Td [(T)]TJ/F8 9.9626 Tf 6.276 -3.616 Td [(;)]TJ -276.362 -19.214 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 [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.955 Td [(Default:)]TJ/F11 9.9626 Tf 39.436 0 Td [(update)]TJ ET q -1 0 0 1 312.036 488.686 cm -[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +1 0 0 1 245.048 144.435 cm +[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F30 9.9626 Tf 315.174 488.487 Td [(desc)]TJ +/F11 9.9626 Tf 248.037 144.236 Td [(ty)-36(pe)]TJ/F8 9.9626 Tf 21.258 0 Td [(=)]TJ/F11 9.9626 Tf 10.517 0 Td [(psb)]TJ ET q -1 0 0 1 336.723 488.686 cm -[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +1 0 0 1 294.367 144.435 cm +[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F30 9.9626 Tf 339.861 488.487 Td [(type)]TJ +/F11 9.9626 Tf 297.356 144.236 Td [(av)-36(g)]TJ +ET +q +1 0 0 1 313.516 144.435 cm +[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +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 -/F8 9.9626 Tf 20.921 0 Td [(.)]TJ -0 g 0 G -/F27 9.9626 Tf -260.887 -19.926 Td [(info)]TJ -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 [(71)]TJ + 141.968 -29.888 Td [(62)]TJ 0 g 0 G ET endstream endobj -1339 0 obj +1320 0 obj << -/Length 2243 +/Length 5866 >> stream 0 g 0 G 0 g 0 G +0 g 0 G BT -/F16 11.9552 Tf 150.705 706.129 Td [(psb)]TJ -ET -q -1 0 0 1 171.761 706.328 cm -[]0 d 0 J 0.398 w 0 0 m 4.035 0 l S -Q -BT -/F16 11.9552 Tf 175.796 706.129 Td [(cdfree)-375(|)-375(F)94(rees)-375(a)-375(comm)31(unication)-375(descriptor)]TJ +/F27 9.9626 Tf 99.895 706.129 Td [(w)32(ork)]TJ 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.956 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)-333(as:)-445(a)-333(one)-333(dimensional)-334(ar)1(ra)27(y)-333(of)-333(the)-334(same)-333(t)28(yp)-28(e)-333(of)]TJ/F11 9.9626 Tf 252.609 0 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(.)]TJ 0 g 0 G -/F30 9.9626 Tf -25.091 -18.389 Td [(call)-525(psb_cdfree\050desc_a,)-525(info\051)]TJ +/F27 9.9626 Tf -283.21 -19.925 Td [(On)-383(Return)]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 [(Sync)28(hronous.)]TJ + 0 -19.925 Td [(x)]TJ 0 g 0 G -/F27 9.9626 Tf -33.797 -19.926 Td [(On)-383(En)32(try)]TJ +/F8 9.9626 Tf 11.028 0 Td [(global)-333(dense)-334(result)-333(matrix)]TJ/F11 9.9626 Tf 116.674 0 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(.)]TJ -108.489 -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 [(inout)]TJ/F8 9.9626 Tf 26.096 0 Td [(.)]TJ -59.582 -11.955 Td [(Sp)-28(eci\014ed)-474(as:)-727(an)-475(arra)28(y)-474(of)-475(rank)-475(on)1(e)-475(or)-475(t)28(w)28(o)-475(con)28(taining)-474(n)27(u)1(m)27(b)-27(e)-1(r)1(s)-475(of)-475(t)28(yp)-28(e)]TJ 0 -11.955 Td [(sp)-28(eci\014ed)-333(in)-333(T)83(able)]TJ +0 0 1 rg 0 0 1 RG + [-333(18)]TJ 0 g 0 G + [(.)]TJ 0 g 0 G - 0 -19.925 Td [(desc)]TJ -ET -q -1 0 0 1 172.619 626.17 cm -[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S -Q -BT -/F27 9.9626 Tf 176.057 625.971 Td [(a)]TJ +/F27 9.9626 Tf -24.907 -19.926 Td [(info)]TJ 0 g 0 G -/F8 9.9626 Tf 10.55 0 Td [(the)-333(comm)27(unication)-333(descriptor)-333(to)-334(b)-27(e)-334(freed.)]TJ -10.996 -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(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 578.35 cm -[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S -Q -BT -/F30 9.9626 Tf 365.983 578.15 Td [(desc)]TJ -ET -q -1 0 0 1 387.532 578.35 cm -[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S -Q -BT -/F30 9.9626 Tf 390.67 578.15 Td [(type)]TJ +/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/F16 11.9552 Tf -24.907 -21.918 Td [(Notes)]TJ 0 g 0 G -/F8 9.9626 Tf 20.922 0 Td [(.)]TJ +/F8 9.9626 Tf 12.177 -19.925 Td [(1.)]TJ 0 g 0 G -/F27 9.9626 Tf -260.887 -21.917 Td [(On)-383(Return)]TJ + [-500(If)-316(there)-316(is)-317(no)-316(o)28(v)28(erlap)-316(in)-316(the)-317(data)-316(distribution)-316(asso)-28(ciated)-316(with)-316(the)-316(descrip-)]TJ 12.73 -11.955 Td [(tor,)-333(no)-334(op)-27(erations)-334(are)-333(p)-28(erformed;)]TJ 0 g 0 G + -12.73 -19.926 Td [(2.)]TJ 0 g 0 G - 0 -19.926 Td [(info)]TJ + [-500(The)-351(op)-27(erator)]TJ/F11 9.9626 Tf 73.737 0 Td [(P)]TJ/F10 6.9738 Tf 7.78 3.616 Td [(T)]TJ/F8 9.9626 Tf 9.77 -3.616 Td [(p)-28(erforms)-350(the)-351(reduction)-351(sum)-350(of)-351(o)28(v)27(erlap)-350(elemen)28(ts)-1(;)-359(it)-351(i)1(s)-351(a)]TJ -78.557 -11.955 Td [(\134prolongation")-365(op)-28(erator)]TJ/F11 9.9626 Tf 108.923 0 Td [(P)]TJ/F10 6.9738 Tf 7.78 3.615 Td [(T)]TJ/F8 9.9626 Tf 9.914 -3.615 Td [(that)-365(replicates)-365(o)27(v)28(erlap)-365(elemen)28(ts,)-373(accoun)27(tin)1(g)]TJ -126.617 -11.955 Td [(for)-333(the)-334(ph)28(ysical)-333(replication)-333(of)-334(data;)]TJ 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 + -12.73 -19.925 Td [(3.)]TJ +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 +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 +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 - 141.968 -398.049 Td [(72)]TJ + 166.875 -143.462 Td [(63)]TJ 0 g 0 G ET endstream endobj -1236 0 obj +1328 0 obj << -/Type /ObjStm -/N 100 -/First 981 -/Length 11151 +/Length 3619 >> stream -1227 0 1231 147 1232 205 1233 263 1234 321 1228 378 1238 510 1240 628 1237 687 1242 767 -1245 885 1246 1012 1247 1055 1248 1262 1249 1500 1250 1776 1244 2012 1235 2070 1241 2129 1257 2225 -1253 2382 1254 2526 1255 2673 1259 2819 276 2878 1260 2936 1261 2995 1262 3054 1263 3113 1256 3172 -1265 3329 1267 3447 1264 3505 1272 3598 1269 3737 1274 3883 280 3942 1275 4000 1276 4059 1277 4118 -1271 4177 1281 4334 1270 4491 1278 4635 1279 4778 1283 4924 1280 4982 1285 5088 1287 5206 284 5265 -288 5323 1284 5381 1290 5513 1288 5652 1292 5799 1293 5857 1289 5915 1296 6034 1294 6173 1298 6331 -1299 6390 1295 6449 1301 6581 1303 6699 1304 6757 1305 6815 1306 6873 1307 6931 1308 6989 1300 7045 -1312 7125 1310 7264 1314 7409 292 7468 1311 7526 1317 7645 1315 7784 1319 7942 1320 8000 1321 8058 -1322 8116 1316 8174 1326 8280 1323 8428 1324 8573 1328 8719 296 8778 1329 8836 1325 8895 1333 9001 -1330 9149 1331 9295 1335 9442 300 9500 1332 9557 1338 9663 1336 9802 1340 9947 304 10006 1337 10064 -% 1227 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [306.759 302.697 313.733 313.546] -/A << /S /GoTo /D (figure.7) >> ->> -% 1231 0 obj -<< -/D [1229 0 R /XYZ 98.895 753.953 null] ->> -% 1232 0 obj -<< -/D [1229 0 R /XYZ 99.895 465.033 null] ->> -% 1233 0 obj -<< -/D [1229 0 R /XYZ 99.895 431.215 null] ->> -% 1234 0 obj -<< -/D [1229 0 R /XYZ 99.895 387.38 null] ->> -% 1228 0 obj -<< -/Font << /F27 560 0 R /F8 561 0 R /F11 755 0 R /F16 558 0 R /F10 771 0 R /F30 769 0 R >> -/ProcSet [ /PDF /Text ] ->> -% 1238 0 obj -<< -/Type /Page -/Contents 1239 0 R -/Resources 1237 0 R -/MediaBox [0 0 595.276 841.89] -/Parent 1212 0 R ->> -% 1240 0 obj +0 g 0 G +0 g 0 G +0 g 0 G +0 g 0 G +0 g 0 G +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 [(64)]TJ +0 g 0 G +ET + +endstream +endobj +1332 0 obj << -/D [1238 0 R /XYZ 149.705 753.953 null] +/Length 325 >> -% 1237 0 obj +stream +0 g 0 G +0 g 0 G +0 g 0 G +0 g 0 G +0 g 0 G +1 0 0 1 104.053 292.444 cm +q +.65 0 0 .65 0 0 cm +q +1 0 0 1 0 0 cm +/Im4 Do +Q +Q +0 g 0 G +1 0 0 1 -104.053 -292.444 cm +BT +/F8 9.9626 Tf 189.268 260.564 Td [(Figure)-333(8:)-445(Sample)-333(discretization)-333(mes)-1(h)1(.)]TJ +0 g 0 G +0 g 0 G +0 g 0 G + 77.502 -170.126 Td [(65)]TJ +0 g 0 G +ET + +endstream +endobj +1315 0 obj << -/Font << /F31 775 0 R /F8 561 0 R >> +/Type /XObject +/Subtype /Form +/FormType 1 +/PTEX.FileName (./figures/try8x8_ov.pdf) +/PTEX.PageNumber 1 +/PTEX.InfoDict 1334 0 R +/BBox [0 0 516 439] +/Resources << /ProcSet [ /PDF /Text ] +/ExtGState << +/R7 1335 0 R +>>/Font << /R8 1336 0 R/R10 1337 0 R>> >> -% 1242 0 obj -<< -/Type /Page -/Contents 1243 0 R -/Resources 1241 0 R -/MediaBox [0 0 595.276 841.89] -/Parent 1212 0 R ->> -% 1245 0 obj -<< -/Producer (GPL Ghostscript 9.22) -/CreationDate (D:20180323100658Z00'00') -/ModDate (D:20180323100658Z00'00') ->> -% 1246 0 obj -<< -/Type /ExtGState -/OPM 1 +/Length 3413 +/Filter /FlateDecode >> -% 1247 0 obj +stream +xœ…›Aä¸ …ïõ+ê8s˜^Ë’-é SvÒ·Ážj‘éÃ&‡üýØä{|ÔI°‡¦(ÚõmÑ|%ZšßŸÛ[yn÷øûúxüôµ?û×£½Ï?lîùõO³ögïíùaV+íùÇ_Í.µÐ=äÝ¥Mù÷:éß·šü³†ÿèòןZKúضÅÇÖŸ[J'¥™Ä´8ÍžùºMTÕmÂúÈiÝ&®ÀëvÉ ö™@î%o3ï‘o{æ ˆlv ß#"›È6²Ù|ˆlvÉD¶"ï×Õ@6“È6²Ù3_d·‰l# »Md9²ÛD¶Ý.È>È}òmò= òmÏ|‘Íä{Dd³ÙF@6;ï‘Í.€È6CäZ£âÌ$² €löÌÙm"ÛÈnÙGŽì6‘md·K²Ïòˆò33‡ÊÏì™/ òÈåg#"\~>òÈåg#"\~N³ [‹ò3“È6²Ù3_d·‰l# »Md9²ÛD¶Ý.È>ßòãÐœqhÌtÌÔ3͇ÆL9óÌ.‡æL€CÚ ½·Ðf4f :f š37´fj‹ƒŽƒæL9óÌ.ƒŽ™.ƒÚ ]f h³33Í™Z3µÅŒAÇŒAs¦œyfAÇL€A Í › +ÑlA7bÌ8tS!j¦¶˜qè– ‘3åÌ3»º¥BäÄ– z¨G.á*¹‡jpäªÀ‘ p¨þF.¿¡ê©ø†jo,¥—*o)¼TwKÙ¥ª[Š.ÕÜRr©â–‚Kõ–Ë-U[rCïÌÜŽöVŸç8ßúV]¾c­úz£¿íü½?ZÄ”à+ÄÌ£¾õgD_œßå6^¸û=t‹–×ãûªjn–Œf¿9±¼š ñ…ÖÑêY2šý&Å +\h6´Oõø`Ih®]¦³g4û¡ŒŽ@h6¼!PN¶õ­à»7#¡ÝCèæwù¾*”›uA«H… íšÇMGÛšÑì×?ú¡ÙÐ>ÕãƒEhÐ!3ÇÌh¶$‰¾Kh6¼!P­Ì¹ müî·º ÝC˜DÃ]¾¯jcf]ÊÀ–QÑ)&´Š2@üAZ[ÊÀÖYÑM +͆e€»|_ôŬ롾oÆ‹;2Ñ—"è¨F:çš÷#}]Ëè‰/~.%0QŒ&Gª@_©v&a}þùøwQU=þ}¥j”ž²jþ.ªÿ²®3Ûõ©ìûu¹Ë–:Ù×ÕÉîý 2çË=ÄÇÒïÅe ¥†ñ·p¡?·TòþæwžÄÇ•šÛ%ñ™v©>÷ûÊ®ôÈm—)Æßê¥.=øÜoŸ‹øàÉ|X”Ù"È• +×›€éíAð¹ßÖCˆù\«ÈW˜hùÌï ]|Ûš_®¿Ü®™¯2/7ò™ß×k5ø Ln»`1þ` p¼¿ùís<‰K-³]³p½I™ÞØŸûm•ƒøX¦½¸d›™o‹<¸Ê‘ÏüÎ0ƒ/ÉܲÜ2»æú0=Ó«&ñUÖãcEF¾–ëÃMo£‚ÏýΠúHZ—×XfB¿p}gZz®ŽÎâˆh®ÃGCüdf®ÉÒˆh²äÒH•Ñ´=2²FÔEOh5ÕE_ÐZèSYd…UÑZR½Ôçº ë§T/^†]·=O©Þ©UŸ:á»bÏâMÝüŸg÷7¿3x|ð$>ªžÛ%ñ¹ºÅk¼àsÿ©¥Ÿš^ðQÅoê/ú‚Ïýö¹ˆžÌÕ³¦*æ×»ºÅ Èàsÿ©õŸú[òAÅÀW˜ªøÌï ]|Ûš_ªžÛ5óUæ…ª>óŸZª•U ñó@ÕÃýÍoŸ‹øàI|T=³¡b~½«[¼ô >÷ŸZ ªk}±ƒ™o‹<@õÀg~g˜Á—U/µŸn×\®nñ¶Z|•õÁøS+3ع>\Ýâ…vð¹ßTYõÔqºIóë;ÓÒsutGDŸ±@33tÌã'“0smL–FD“%—FªŒ¾ í‘‘¥0¢.zB«©.ú‚ÖBŸÊ"+¬ŠžÐ¤zË{¿ª^t¯[¨žÞ§¿û¾…êùÛ@Ä­Ñ`[–«v ,«¼¿ù«º]ñ$>¾È«jHq½©›v‚ÏýEkC½TŒñ·ºi¯ øÜ_ÕòŠ'óá]UWŠëMÝ´‡|î/Zê}ù\ÅÈW˜¨ùÌ_Õ÷Š'ññõ\UkJ¾Ê¼@õÈgþ¢µ¡^í*Æøƒy€êñþæ¯j~Å“øø&®ª?Åõ¦nÚ7 +>÷­ õïÅ7z3óm‘W=ò™¿ªOækª¨ù*óÕ#_e}0¾h;ׇ©›öÄ‚ÏýUm°xßPyPÇp}gZz®ŽÎâˆè«43©cˆŸLÂ̵1Y][V½üέ¦†5½xò–Ï]Oh5ÕE_ÐZèSYd…UÑZR½´â6Tl4©^lÉ]·íMª×µ6ÔNÉ‹»&ž%Ä›ºõ)ÕÃýÍ?Ô‹'ñQõ†:V\ïꛉÁ¿Ö†ÚU ñ¦n±Ý|îêˆÅ“ù zC+®wu‹mÐàƒ_kCí*¾Â\Ýb[=øÜ?Ô‹'ñ •Gè˜_ß™–ž«£³8"ºÇ*ÍÌÐ1ŸLÂ̵1Y=Æ¢zÚð¬÷mŒ,…uÑZMuÑ´úTYaUô„&Õ[ö…›:ÖZG¨žvõ_ºP=ß-Fü®5lËãouÃYË*ïoþ¦ŽX<‰½M+®7uÓy„àsÿ®µ¡6‰Ácü­n:±|îoêˆÅ“ù°§ÛÔ±âzS7¤>÷ïZj?˜|®bä+ÌT|æoêˆÅ“ø¸}ÛÔ±’¯2/P=ò™×ÚP[¿àƒŠ1þ` z¼¿ù›:bñ$>îÔ6u¬¸ÞÔM§W‚Ïý»Ö†Úå}qÇwf¾-òàªG>ó7uÄâÉ|Mõ#_e^ z䫬ÆïZ£ÁÎõaꦓ9Áçþ¦ŽX<‰o¨<¨c¸¾3-=WGgqDô«43©cˆŸLÂ̵1YÝö¬zy?¶¥ž5½xò–Ï]Oh5ÕE_ÐZèSYd…UÑZR½tNÆm¨ØÔn†]·ÚÍðÓ3ˆïZ£Áö, ífณguj7 ?ÏUõÒ‘Ø%ñ¹º ífàóÜßµ6Ô¡ðQņv3tè)øÜ?Õ‹'óAõ¦:V\ïê6´›Ïs×ÚPçcÈÚÍÐq-ñ™ª#Oâ£êMu¬ä«Ì Uoh7Ç_jðQõºÖnŒ?˜ªÞÔn†.â繪^:Óâ6Tlj7Cà‚Ïý]kCzyñÌÌ|[äª7µ›†|YõÒñ·k®W·¡Ý òUÖã»Öh°s}¸º ífðþõÁøy®ª§“*nRÇfìfÄàë,Žˆî±J33tlÄnFI ¶ÉÒˆèy.ª§Ó)žõ¾ í‘‘¥0¢.zB«©.ú‚ÖBŸÊ"+¬ŠžÐ¤zíÐn†Û®b­i7Cg _Vµ›á§ _µFƒmYbü­n81iYåýͨ#OâãAÀC+®7uÓ©ÈàsÕÚP‡Ácü­n:7|î?Ô‹'óáÌß¡Ž×›ºé®?Œ÷Æå‡ñ¶ŽùÃxü0î÷øúz~ÙëDõ¹žDí‡E]Ó×…aXŽí!Í>øïŸ×düoõ–‘¿Ö«\¯ç­ÜýÌ•çë»ýô—w-ÿ/Iÿõv×ï!o'ÈŸÿ`[G. +endstream +endobj +1340 0 obj << -/BaseFont /XYUGDR+Times-Roman -/FontDescriptor 1249 0 R -/Type /Font -/FirstChar 48 -/LastChar 57 -/Widths [ 500 500 500 500 500 500 500 500 500 500] -/Encoding /WinAnsiEncoding -/Subtype /Type1 +/Filter /FlateDecode +/Subtype /Type1C +/Length 13073 >> -% 1248 0 obj +stream +xœºwxWö?laÏŒ˜ r‘G¶5h†ôB'ZBïL·1`pø˶$K–eK²%«Yr•-˽w Lï%„ ”$$$¤m²›Æî{½ûýÈ–ßû<ïûýãõ<~4£¹ºsçÜs>çs +ÏÇo”dz%!)&cÒ攤}ÉÞ뉚ç7Ê#ñ-VyRŸ/Å<ÌŸâ1¾ÅcüNŽc~G¿8ŽfüÇÑA>~<Þ¬5›íonݼý­ &.II•§'ÄÅKÇOŸ:mÆøhùøÝ¿4&#!.yüëÜIVÌ¡”Ô¤˜déú„¤èÌŒñ/ž<~sL\æ¡}éÿúøïDÿÿ¦æùsïæ³Ý§•À‹åý<*Åw¬ïjßM¾}~´_¤_¬_;ÆÃæbë±d,ëÆð`|<þ +¾—ãýø)üþ þÿ'‘G˜;?€Ì·ò«ø®ÑüÑ£•£¿'7ÇÉÈûà=°,Ù ¨­c|Æ?æ1³ÆèÆÜ;nìkcç]4vÍØð±ÛÆÆ-ûpì+ˆ¤ +ä‚|ApQð‘àgÁßÿôçû ü—û¯ößà¿Í¿Ø¿Ä¿É¿Ó¿×ÿI€0`I@x€2   0 $àTÀÕ€Û¾ ôd_ |#p]`Z`f 5°.ðbàõÀ? šô~Ðò ¸ Â ª Ú æ Ž ž þ ÓA烾 ú6è7¡¿P('|S8[ø¾p±p¥p¿0Gh– +Â&a‡°GxEø¡ð¡ð ! ö ‡³Á¯O^¼*8|=øqð“à?ÿüwʇR¯Ss¨ÔJjµ‹ÚO¤”TUBÕPõT'u’ºI=¦þLý&%"Eþ¢0ÑK¢·DSE³DóEËD«EE[D¢ƒ"¹¨HdÙEu¢ÑIÑ%Ñ ÑmÑ}ÑW¢ŸE#!£CD!lÈÄi!³C„, Y²1$2$>D’b ) q†4„´†t‡9r!äÇ!C~ù-…ú…Ž„ +Sðˆ—¢ÒÑ+F~*þŠÅhÃb8™øÂP©®œÃo€J)®ž«RÏ2ðÑd˜Ž·›¬ÖVÒ8äܪêéü&¼¾‚´Êð»úŠ\óþÈÆåàY“R)Ôz%-ÕV ±p;qFߦldz3÷Ön¤'-ÚµVZ›ÝØXç®·mF;k(5:ìâ–ÎúÃ'[’·2ë 4i½<o ?3[•pP à?žÏ¦P8‡^AQ“:§œÛÌ®½ôôÀ×4Ü ÇAFý%ùÉ–ËìGkgõN ãüŽ—'ö²çvuLB@¼Q½8©êÍt{Ð`‚;èã'Põ‹p¢'œÛÙ,\8.³0O­ 5 +«CÁ +»ªbcé}{ÉÙøCò}ÛÅó†Â¡ßFæÎ3û›bø¥¹¶¬tñª»O[w +v2R¼Åcõ¸pm­©¢ÊI—×jk¹‰”ýƒ4äýè÷Ï·Ü@¡wØ—/î:/>¤ïÚ±#²¸¦#±*­z#§ÈZ<{)2mbиï߀A0èÇgœv…Nù³¹)Ô—' £V.<Ûx8‹M9“sûcñŸŽ_»Ã€%dMù$ p‰`¼ßiÉ©ìÃnâØp}E}²ñÐ*ņÕêœ]E|%<à$vÙò*Œ'ùPNü°ç¢݇kV0­y»,!o»2LAXìp¦¤µT¹‹E&¸1/wg@žïó7j©KvYr7Š†%¡PØtîÔw⣹}imÌ`̬æÉ4j“á÷ +ÊòM‹É|ÍB_Ûk‰ù6u…ñ.î$.˜a>ºŠÁ™øH„ç ÕZî8 /í´3k_œŒÙ¯›`àƒB(Áòð½¾HGë4f[ëJmô{›·/ ïÜÿe{é Ö“]“qH¼'1eÇòøþ_¥LšZ‰—Ù­æ +èår½ÞÄ€¸¶ÊÑif¬eŦr¶uɈaÎh~F/Á´%-&ŒïäçO-äÖy¹–˜nÎ-7>àÃm|f]ýº¹þ´5 tyÆSŽÊs9ÝáP¬aÑ:bòðÖÏÏn>y„9r²öÚc1$bžìLÏÎN—•åÔg3-%%¿"£äÐAñÛ›–ÎKÉ(¯U3y®ÂÆa1Œ!Ú9³®b<ᵈžÿ|yzˆa¸KÇ#_Þ›†¨BþJ|¾¹Àbìå{’óÝÊʇV> p$xý KÀaš‡]ÃhÊc*IŸ—¥fTé©Yt|J÷QÖJ˜® õÃу|p¯z (E ÑgªÎ1ǣݨ.$¾v8Ošä$:@§èó³I˜U“ƒÇ*+ûŠX¸º0W"Ñ’8Ó% ß×£{žM½òNÜÂùì’eû'¼!Füþé0K?yÿ ýëÓ¾»wÙO>éÿî™øYì·‹î2÷Në{‰F?ŽQp œÈ[`8œˆ&¢-h3š„&£ o½ßys³òøÇ߈A¶d“Äl3›îJÀR@yëÈ{ØHðwäEÒ…äĽjU!wßš[a¼Ç÷8ÎœG¨SÔ#¿×ÁùØÈU\‡æcxäÕÕ@ÂÌ?7R„gækféù2àù.¥’Æ'¤"ŸB>*Ã=K=Åœ# D6Z€5ã5¿ô¶A‡iøȪ‘¿bJÏU¢.ÅÄ%ÊZ5 '¿ Š7Kµ 9#k½z·¤iÎ’?ý×JVP@ÂQ*éÎldžΟ:¶…5%P=íIqqÉÉ1ñÉm}½ím½,ðµ‹`®Ï6í³¨Ë}ap-Ç£ V½Eo) +sh,:½8?_§fdJ˜ìÄ÷XÕî;&Ám¡m-0úµTß0„9Ñ^1`,/ÌåÆæªr"˜g6Qh> NÎ߬ K*ÀrSe©©Œî.Í`G²㶢¢¥y|ð¤ì?¯S-vçVpýûv×3†Õ 5ŠRÂU™Ÿ›_˜¯Éc9 ~ K{Š›¾µ•ž²ð]5([áÂOÙòÍSùÓS _ÂòË eâªrG-Sê?fêVôï…£( +Cs±]’e tFÔÈñ<­Ía·Øí¥, €Ó0Á{¸ø©ËyÎʯEÛdD±\—#Ž]„F½ŠøLŒÂoW:/3.$“—+•ËX•E¼ +ù‹à¨>qM¹­Çë3¸ß+¬U^˜W“qzE…²"‡;”Õ™¡h5Ê[>#!-Â&‡%."ÁœWâ;í'®3P7`°$Wµ„@Í"A éYå¦à›«Œ—ÚhDM}Û]±».†­N­Tv§.FãCûð ?–ÓӠЋÙê“}lNcnÅ¡z~âªmkyÔ1½gÅÂiE{:“ÕI¥^R_üHüÉkwN¸yó&P¯áPˆrX_•ï +;žÓ¸‹FÄd4½…‚ïLûí“‹=wŽ°%1Žl§”¯(/Ï·Ó›Ùbg¿Äz ­¢À ¡÷'÷}¢`g¸(Ä ¦wÄ +GCvð‹Û” n¶JêH¯{Ÿ/°pÈ#'nÛ2¿#F‚BgEç*Òiu¾µJÆVeçYtb¦<5®Szúèáê¶6¶¾¾´²ó\í¡B>éï¼næ»P†œ8Y©•j‹‹óÓÙ‚L$B½ˆ ˜ª9¿¥R\ç*ëg*]8(îó|ÙÇûýWÎyjìãܳ® ×Ø.÷=ýIüMòÃðóÌG+¯IhÔ Ãif‰q±Z½Pχ›=7¨Ž2Ç‘¯nä$ 3·ÎD>bDFÏšÉ$ïؤžAïW—v²àeÌÕÒñùåÇYÏ BoŽÌIÈ[¥ãôßa+.¥ûJ5Ñ,šJtƤ–ï!Y ½Œ‚ïÍ€¾úÝ'ºÙ5„µ¾qC®PZ­Z“Çd+Ò4Éô¬­ŸrêwòÞýsÑÛXÐË"ŸXJ²±E<ØÑrübûÁi ŸŠØA[5š™ãÀëœj#[ W¨™ÍsößÀrk5eâ²J{ c¯F‘Üc…&㧈:¶8tÅK[f¨Õ1ú0™Ëskòˆì¼’ +‡Ùæîd?„¼[hV!/Qæ‹só´™L$n•÷óQn?§à\ü’ÑfXÆwA7-ÎJ 7ñÑ\h†“ðßÌéåÓkL¡ø66b”ãÀEfå¼M‚zYŸÝn2•0à0i+.6ß•Õ¼Ò2¥`íО«Cƒug®2 Ø wzh7ÏC<ŸF©q”7rdÿ¤<Í*gIiµj"NZÕ`·7–5±GžaP÷¿U´æ(ŲÜ8&G;\¹xTZÛ×qì0ÔÏ0ÿo(wÉvÎÒ;dÄ]™Æ´ˆþã€v™ +œ ‚‰€„ösÙdÜ´£$ÃÂÔêË:«Þ¦·…™óšR½5,¹ùP»Ñ¯Sd»t´žûËmÚßÇv¨Éj:X¨ Õi±ùoEoÊë,E%6³Éfe._:Ü÷ñU¾nõì¦ô–u1¹á^U±™0³ÓÉ¡eC©b/;âO,(JÏËf4:UŠVjìu +¶A®*Í¡¥rEfâ€ôüÐ᪦¶·³þÖ#1ðúó9®ŒDKJÕBZðݧr +0ñ6š{(Û¨ObáJâvµóÇÄ/Q¶–Z³›þÓ5§¯]?-+ÇRÏÑ$‰0à+¯fªkP–¢¯”ü!0LÖe¶€µš`r'$zqÝY{ÖÌpû'€ob.YÁdNmÞÐNÅä¨ÔRZ•]R*g3*0ḊŒŒ’LZ81E"×Q^íl„8YUØD_€A¸ŽZ³™žÎ!GºpH­ýø-ñæ¾BQè£7ž;Ý2Üͺ+Û\øè £n:ºûOѧÛcVYX #Éò³¸€&l©Äó澞7á= +%kÕ²}FnÄäPæ"ä&lŸY]{] “› (B°kíj¥Xž§KàF÷)Æ^k«)7fÖ§gdffhl +»Œqï°flÇ™”Ö}5|‡LfÓÐR…<-Å©l«(³”6²Îk¤gËÒ3Ü\ çv76f»¥,'®‹›/yBÁθ¸ÕJ¶ ÷"o‡»p-d%ðÊC_xÆRÓ Ç„8Â+WÀlÎMí´èKßñŸ¶Õš†9ò-Z­¸@«W3r˜ü‡·çvã8ÙÓØÐÝ™Y«Õ:Æ 7é]‰£«¥ç|? èrg¡ÖÉ6äa O¢×/Ý>•Ñµa½DÅgHÀšè̃\¤q{óO?ß¾ú»›‘Y°÷Ó#¢WÒ+wœºÕæ¨kè`UmÚº½¶¢Î-­ŒOÏÔçƱ€* ÷ªc8n·Þ8Gº$—蠟-\ŸT#oiuÖtX‹íÆÖXŽ•]憚£tcmÊÎÚsl‡¤bÃÚ™qàØÊd —,$#¬Û$î…Á’Ø­±¬@AÂK25Æ,–î*ñYYk|¼,e[®e¯9‡D?cŽ%TbZZbbsZgGssggZó!?RÝÙö6ºZ[/óÑßÏP¦Ø’Øò8¾‰“ŒQ,_›40|¥¥Žb>?G} òÞS¨æpáþk\¸oj·XZM|8îÿ;ÞXÇ áÛä2 Øÿ²`a„Ïÿ+^íÙå–­¦Õ3½xSDÂÃ.BjÂÀú=Êìýâ §£ïß?5xýXVëò“LêZêpjUö!ñA©4>:µýDWEC ö;vQI8Q”$p8AÀ©$Тä‹ðz<8`k¦…Ÿ'Àóhøµ–GâhªÅvÁ•Ónsž£K)Dã†+°!øµμ|»–.*4 +ÙW·b ]r‚$²Hà,kV:Ó‰£SS£åyÖêL¦J–gË£³•9Y‰íò³Ð÷óKàhGMC«øDdïúuRWÄ3Mrl¨Ã]ÙK÷ÔÉ’bÓ2—IYAÖ{$ðØŸ_šºYgÕš9Ÿ09R+y:bÇ•ú‹¤>³µ½¾¾­MZŸÌ +ŽŸmâ~Þ™>•‰yä‰&n¶¨Ú™el}4½+*}ã&|$™z#Â( +½‹fr1Åø.šwrÇl8 î€;¸«¹h+§¦(ÍE³Ñv´ÎD³¹Øb7à]¸FqCf¡(nH#ùÂ"ÏKn)¢ìƒáÀ¶†¹(¸ͨ5X¿èêøÒÆi{TÔÖð£{€'ŽZž Ñ/:dW…–Y1³½Ää Ûì¹›Yt÷ü‘}íõdžÅO\E~±)ºœh¦@ª)Ê£³4¥µEly¿Ây¸Â!øµ›÷ø¬{æ úȯŀø¸ºj R%ß ³ŸI5è…h2Ujdb@Í—€ç¡T½;UŸ¶ÉÌŽ¼CÌÒ¦eæiJZf(3·<ô†+ ™TÊJJe^äljm¥¦†®sV7ÝÙ2Á¦´]qlRt^¬n<%¯H†<¿æµB.Öžü憓Ȃ‰g?µ"!¯pQ÷†å k·p¶ºø=¯Ãñ°ÙeÕÁ , O)Ì÷æ1ŒÅµûY×e€j¿Ð{üÞÉh4#ÜFíZ¸$rso;#ÈV$drŽ&e;yf(± $A¡¤·JHPÉÙû/`äµ›ž¸‘¸U„ÀE,Êqâ. øJ˜è$¶Z5¥gÅžŸ8v•oЩuaà Ù~¿Žˆ»rk22reà°„ pR|}ÛÑ÷£ÔR)“%ÓÈrv7©B‡ëÁMÞ7¤'&Q#q€bþwâ‘@?’{0@‰=ŸöƒÊÒÊ7HçQgH¸·…Û®ó Ñw–Qk¡ñ:!ym•'η + Fì¬Á)[+nÉcÑ–G¨Ç>?ö)Øõ˜ÅNC–Èi +õ!:+ËVª`OL—Û£èÝß°ÛL@'LGÜ?wze;üHhG‰ˆÐFÜxûÅØpvˆ®¯(Hu±àÊì"œ(rÿÜé†3(OI.I§wïÎ8Â&íÕ(|‡f‘¦øœ|N¹Æ_CZüþ®¼ùO%R¼Ø +¼;ʪaêÖÆÂúá‰Nð{±Ûóí0–<ó…ïŠ8\â|”ÃÏQ_e®§¿¼°iæ»Û¶Ì“ ™X/Ä2£RÉ PQ¡ÆMyTPk?ôÝ9nÐüîWHóBÕ‚—Ƹ°ß®ÊÌ/L1†¡±ø“/±«à)Ïï%9áÎlim¨oÍ#SY çTLZÎ@òbŽ[N—,žÈEøÇ@wQuÑ`_ëvë+èúj¸_1pø}¡çàŽˆ¸ƒ;ØD€N่Ūq×ý–¦|¹|ÉÜ-áÛoßgRiJ2p‰VCq¯³ÝbÀB1|…ÄA9•Š»àÎv8ßͼ»_Àõ_ø‚nˆ{æCÎByCžw†8ÿ}ǃµˆý|ü³+͹yn@Á·Hè(øˆ,ª^Ï?¿'AQ4¦Å}Ö[5¸˜ +Âx±¼â’¹Áêg7Üzòú±÷â®g¹Ç„tƒ“0„Ì¡îÕyº®Úd=ÌáQº"Gª3éÌ:Öª^±ÉœWaºVA€¯AâÒÎë`Éé)h{aÉq±mÉà_鋂İíòO^8Û tf'1Ç’Wþ‰~€Z»ˆÇ=ö¦~öŽaó é|ùˆ/ü€ó¸c®ž\@y5|$ŽÁI5@ÉÝp­ }äÑ|ä Ð<3 Šk<Ó8‰]ò¹®¥¹ÐM?ô p .§<<o„Ç;*£߮×`½-à2v]w¯ø>?H;€üëY5߇„•LØ´Uó3Ù¯ @å1}$$sëŽ*Ž†Ž7êô™,uëõè/|Iô<âyÄ?"pð¾v®î…KZx@QîæT ^¿7Ýßò·x2–]½744´µHSXAC]{{zc+(5•Óàù«ÜdÃôcàCNgÆÌwgÍž3ušÐ'؇òù„ø„ú„ùˆ}}‚|€·ªäç³ÃçSÅ+æyF½2Êéëç»ß·• ´Å÷= ÷xðÛ'¾ž(¡rm±›ò´‘œÚàð=¸{úýÀý‡âŸç>xeËöÌý±Lb‚2Q±´NúçÃ=·9Û<ë½ÝSfMgÑr´ S{Ä„@Ë©Ô·W‚àÇbî?‚“àcêrƒ!¿½.í_.~7|Í¢”l{c,ãJVØ´T©ÊŠ?šyûþ£æÁaöÄ`Ó¥ÅgrŽ§t0Yõ²Š½µ|á—·N4õ¾öüä{‰qLRŠ2=kƒ³0ôÞác×é›C{×Ä)ãÓÓØ$îΊ >÷ZnøÆ Ïûî xìáüÂï=‡`õšgÓ}8² [»ÑE£÷dkcÖ²-pôƒ>pZ3E£ê«“KP u`ý²w¶þ§œv´ºlu]Gi-и=wïñ<[9O1‚ãÑ5ƒÖV^0…Á$íùû‡ñÏ_öJ£õ¹ 5èÂýe÷`ÊG[î À£‚úù\÷à-ñ㥗_çBœ•SW×&?›ÂŸ"Þì¬äåâ·®„8óàæo†ÑØoù«ÔÝíqáâÕQQ«ì¸ô䃺ÁËÃŒðÁÉÔôKqÇ/ˆ/¼~ëèžåëÓö¯ˆbZ¨9êñkåµç{9“‚~•çkoäÿ~ÿ*Òb8g*DLÑHpg.ô9¤zð,f!ßñhb^†Ï©ìÂü¼|Fš£Š£D|ÁÅê+uͬ»¦©¼þêØLô˽`óó f^ã°òG_h>›Ú²/'.–݃4ZŒFu!þ‰pfOßéŒKôé£5=½ì¥óýNJᾩð%Â¥Q_CŠA1{ÆÏœ¹çoðL8G=a½zø<€Ãª„'¾Á6'>_Q>ld9:P`F+§b*Â9Ðh/¥ëJ•‰ìÈN°V¡Z`ä TUžme0ª +ï'ƒ“Âç±Á+ÕdµÚ,k‰Õj3fÀê¶Y­î¢Ì:f,Oà5ó½>Gx8ï,ïþ¨M£®Žºé;Å7Ê7Ú·Ø÷¾ïcßïüÄ~‰~R?›ßE¿ë~ëÂNcÿÄq|4.Ä_Çâ…„¡& +‰ßùß¿0zúè„Ñé£?ýýè¿ÛÈDò6ù|Jþ Ð`&X*Á1pÜCY}#úE„DÿB†CÆ…¼òzÈ„ç^sGJþ@ïÌ6¿ÊG Ä +]Œ"‰‰H]sh!½tWã‰TVÞ©í».†wOJ>õ&šzeÄ£?Mè-úlœyŸôÜ`” †U„ùYyÕg¥|ð|[-eÑ”ÅßCfÏ¡Ù8:0¢^ƒ^WçDÂdpW-‘]ÑVa©²U²Çáh :ñÁ XEª=M%NWl322è Fr9² + ÈzÔŠ8›Z±7y ½yoÛÅdVÞ¯í4\ãëxÁš¶ôN~oÒîºíôÎHyB ºtŽ1wfBâOŸ\†>GôN¤–w÷]¥¯6¦Ì¨dÁƒ–V_ÏAO(50ŸÈRYìÙl¦+KK±¥Ñ“-²¶9æÃlZFV¶:¯¨0,+S—§g–çÉf–lO;+Þö`ÏŸr†éï¨éì_‹\deU‚m5g”V‹Ý]=-¦¨·Ö`¦û;[:Ø®VgÏ)q›¾AÕÉ íˆ˜Òv?Ô¦¿éÊÛ´à¦onj(ufmð{êrkÏñŽfER5S_µ_ž¿{]ô?2% „ó°u8ò¯ºq8ö7(xüäû|'ü…rü¡ÞQ`^ÀGï‰R£Yop ¼þ‡Öo‡N2'^o¹E_8%‹ëgÛ“«ÓšÖóð‡eâÙ:yn­É±Øå¬3*ÒEsaç+è ´÷­–…6²ËoþGÑ_Á€žžÃ,ÜC˜¯–W\´ò'ų È•xgu~N¡QW¤eßFmˆ€%˜®ª°ªLìrÚš'ŠVÍ…5yÄ‘1´"Õd´iø­;«c•âézÅ!&]™%SѺ|oÑÒ.—[sè ™,ý`GúÑ[ÇÏÃ×γp²gbegyY£% dJÞ&ïsÏv*fr\–.GMç+-6%[³k§#’ž3ûЖuì²u1SÐ(1Ú ÃÐ8GI¹ [ºxeÒlzm¸»/»åä¡o Ÿ®úžƒó×.žÉ:p˜éLt¦Ô®æ¢I_eÓ–zK°(´ )[0%á0aæŠ +SÝXš³‡EJ°(_³¢ˆò'¾¨%ŸªÅç˜UU†{PHš?©¬xláŒè”ŒøR_®1KŒ Ôy³¸Á¾ž—áTjYD\ÆfzÊÚO!ñûùÛŸõVjbÊØ’L,ÙáRÔÓÍuµ –˜µkGv\4»sOÊŠybD=š }®îèeZj[Û/óõa×±i$hùw@ò©¾Ray‰¾!F( C døѪ‚ÈÃìÈ:ÂðR®bŽž/ƒêZb¾UYgøïG›jøJsN•á2fGNµ–”ê5åŒÒY¡¯¤5­]Yî„})™Kv²ßqqlxfœ*\–CXªJMtÓ aXÃvnm\½âÍë¿+g%Ï|¹ˆ?RâM‰µH®‹=‘1’zgžw!MÉ­òI*õ„¢0Äà°ÞóæD?EˆÄ\¸ãã*ç5328ªy SzÆ`™£ æ9ñµ–¼2ã¾ç¢Ð¼#'6o©",§„0•W˜tg™*’I#Œ[Uªu…œ¦÷Ãôö>XÙËó¼üßç=. +¾4r5›øÀДŸ)Öåéòd‘\¯ÎÛ«ã+¢ÖH쳦•;Åõ —2­g1¸MÄ Ëµùkó†P™ÇN Á÷° |•*G~þüPšÕVÈê-E5b˜_#>6Ôf;Þç×ÁÜ,\;/[ù²|¡o0•ØÝôW8|­I5µ‚9Ò)ø¼ƒ¡;HJOOLnJoëhnlïHkNbÓé¬vV—•^¹ÙÞyûÓFç‡Þ‚_¡Œ8a,×g‹ãÞæ؇ ˜@|PíºhbÌ¥Å&ëBƒ3$pðÉÅ\U¥o`‹Dð9À_¿Cn¢×$´¨zQ)°gÔBN‡©ŽÔ;ëú®nÓ[ÍF]b±”TF_šÿg¶Èj,Ö•6uÕÔu ðÛz›WŠmz›^—-ÏR0Æ¢CIÉiZ]6¿xr¨6¼lsž7ÙëĽªÚ´T•,.ˤ« +g$$Ï_žNí—ŒÇz×DU®¢ÑVŽÅ½‚ö¬q®iÞɺ⫳ÄLDlèIüäc±×ŽçÞ¢á6.î} ü õ+ïQ¸£ûù{×PÝ«+ç‰Ñæ¹h4 +Ý]{b/“ÞC%ÜPŸÿZ Ã?‡†\”íb@q삵ÿ­ª=¡¼U3ÓB>Ú6{ÏcMü«|&ƒ}ÄÿZnÃáStB¯Ãl¼£Ì1ðÍÿ^eƒø:!ˆ!G"‰eFYɧ|¹­>DYqø.z«ÌµèµbÞÁä+`tÏΨlJcQÜçÀ—;ZZ*Ía5(\QAÔ•iÚB­Zâhögâ¿ÕDZ ÌS¼ "ÔÂF xîõø)2üŒ±¦ C¬)Tk” 'é,ô&LÇòªuMãÄp¥ÈQ˜!Δ&mÙÁ eh&÷¦OÊJ?+ᔬOF<З«Í‹ɼ¼÷½ÒéyÑœRn¼Ç‡ˆæº¿¾Œ=˜vy†X™«K62ú¼b£š•ÁKµÄv“ªlêOH-¡p3ÜxëƒjÇ-[X-rà# ·N"ÿ`’>•ÞÖv“m!¾¶;O™¼Uð”&2•Øg‘—Ë™¤Úœ‹ô@­ò 82íû«Ä“㤶–êíÆù0‚x}nÎÆ}v3ð"¡·Ä«Ó ¶ä„¥¾(â[ÍÅ%ôQGÁ^v$‘0,ÑlÖò•ð“Ød+(7p?×ǴצO6Å-cÑ.°4?o³žOx«xÃC°×Íûۯ𯾵"ØQ‹/,QWïða4¼€¶;HÏFb—mCà6îddY- ¶KRS^7`^5µ&=+5Ö™ì*¶D™kÍ£S¤™éI­™}=í•-Ílcƒ»¿ý!À»¡-wìeö2Sh›$W/WÅ0sQÒ,˜†ÉO­å⺊ò#ã¨A;¸ÓØ­/.>‡$a@FÎjß{ùdã™.&·;.ûÉÖ?‘@wpj«¥~˜½Ñ~øÊ-ña•·áHÚ”YQÓåt–9«ùBOskÍ‘~ñ…¸³;˜Æ½moÓ»÷Q–ºRSýÕíóæn˜¦P›léì?[c™ÉE Ÿýzcë;³Ömž–‘k¶'³‚ÿTf¼€øE9ÎÛ,€·`…Vk•²­&Ý[¼:í"RMGRz‹W+ø*ÔŸzÒÝ~ÖVn¼eñ:¢ÅX¥‘‹Uú\E +G¨P2Á}˜¬½ ¶Z\ï*ëcª\èœo0œÒ6dY^<6™ýNMZj–"á ù"\Ø«7ºžü$†[9·ÿ*ZÃPpÌc4–SíUó@þhôW6Aê˜ÓÜð"ÛÙÖPØI?îÙ’ÄzYÿ6IJœ7J|ûoãOP”ãCzk¾yAKáâ)œ ál)N•pß,ç¾ùÒî²zí+¡Ìßaà+€ÚcV;ŒÍ|ø#¡² r &%J›ª¬VºÄ¬ËdQa”j´û ü NxsÆg ÕÞœqªDJŽý)jˆJ ”âÿñ©Ï,~Vü îìÂn&Ú•mFA&>:(Ç_ýËðÏtåÞØrd?¥ÎJSéMZ¦G“SF§fJS÷ &]‚>WïÀ@ÖƒæOJ½ xÖœÀj< ¸å÷ÊšGvî‹×nÞ¼é ´( &i:=‚+AŸ|3Ÿ+m(‰‚z¾Ð¤.3ÞàÃi„Pv°·As„†à[è_ƒËž¾ ŒS"$_‹ÁŽ"¯A„“èœ7¹>…”‹h9ðL¡ã·:“—–³5xd1ô çfm&Î}ÅÆ©’¯ÄÀâ2WšKùÕ÷K¯´‰ëe.i†L.UTMs½Í€m6Wö Ýý™ƒ=œ°xÏàð3_xÞ¢à0ŠÃAƒ´µ­¡´H€ç\Š¿(6Ψõ6 ÌÄFŠ«IxÙEL“UÝ6²ÀT^ΩSc•*óPZz¢Vo²ªY›2ßœOgæäd¥5(:ï|p÷Ñ™”öZ¥ÑÂTR%ðÀ]‹œ‚ŽƒG»Îö1ÙÕX*0“ph"ÿ(*¥lÛ¿ðŽXG~ÌAyìgÒ³h ±ù@Á gPìçP‘uý=,ÙùåØI yÜ,ÞPäêŸÍ=‘G¢¹Þ´<œûǧÙ{ÍH¸‘ŒÄ!œŽïßA +à= +®B°ÓÛ]9â¥n¯·á6Yâm³1—ü§,PKÊ8ïKüËûþ;oŸõ76þOCáÓ¿ÀJÐ~…ÚÝ‘ÝÔ&nk¨ëê«ÏŒ=¤â8'?“ŽU¶\gA“»º£K|cKßä”\CA"£ËÖ +è\mI¹‘Uáè ViÔ[Œ)HuáÖܪóbøùâ'‹a«‰E5„q9ãÓ½%Ý•‘}£³[!÷ W~` d±Æwó½Ô ÜôêU-þmùÉéOŽïY#d'@5áåý˜£ÉâtŠ;ÔÕÒ,•<-×–Q’ÅO8Õyk½PÙß,nTÔdÄ+¢_Ñ1úyà¸oÕIóï’„À£*‚!žQ0„7À0™´Öÿ 8´JMáv(RÐ÷*÷s†³Á/žÏ¦vã&RpÄÅ!ÈHÜHÜͧ«FâɃ¿]Wž$Ÿ’‚Žòg]Qõïæ¡ yú½%N»©”Ô­®¡ÿ U…··OÀû›ÄëC’¿ð\uƒÏÏnÞ_~å¶ÏCðÀ ›*¤é%™4€Éó¾÷vÜýÉÜ¢%‰كœ‹l0^2”«›ÃFŒ~ 996®=¹¯§­½§/¹ ¼`ðÍ/üvà Ípć0µ´e4:GÕ*ð­Ùîó,ÕÈ-¥%¥|€ 4×TtÐuuúü$5¥”…Û‡+ëJ\Þf§o´Ë[q¼æÁ¯ñ€ˆC +ðÓE€Ï'Ãl>Ž„hà,@Ñ[hZßBÁAñ¾ÿ¸Mrïë òeJ}­×xsi@ŒB¿`Ð_ ðö‡„³À£‚)×y`mq»GÜÚÚúz’Û½bøáÙòMà‚æ| Ët„Zû€®ˆ)Њ ùÙŽ›èuµNÒÁŽc°©pÊM”SWáo3„©°r#€«½å] a×5ÄéÊÍ¿+Wy{ê?q*>;^›Z9ëÚÕ —ºyÞƇŒ¬pºˆ‹€'óÑ‚ó\©h"Õ²¿k¶px”’¦ÑتTŒÛÛRà)ú§°oǤ°„p!ÈUK¹ÍQìÿ,…KŸ +endstream +endobj +1341 0 obj << -/BaseFont /XISTAL+Times-Bold -/FontDescriptor 1250 0 R -/Type /Font -/FirstChar 48 -/LastChar 80 -/Widths [ 500 500 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 611] -/Encoding /WinAnsiEncoding -/Subtype /Type1 +/Filter /FlateDecode +/Subtype /Type1C +/Length 11578 >> -% 1249 0 obj -<< -/Type /FontDescriptor -/FontName /XYUGDR+Times-Roman -/FontBBox [ 0 -14 476 688] -/Flags 65568 -/Ascent 688 -/CapHeight 688 -/Descent -14 -/ItalicAngle 0 -/StemV 71 -/MissingWidth 250 -/CharSet (/eight/five/four/nine/one/seven/six/three/two/zero) -/FontFile3 1251 0 R +stream +xœzwxTÕÚ/CØ…½’I™Ùf³÷F&X*ˆˆ€ô -dÒë¤L’I&½Ìd&½·I2“BHB „Б*Š"¢¢Ç‚¢~õ¨krV<÷® úï»Ï½ß÷™Ì“é{­w½ëWÞwI&M™qxâð«Ã˜t¶t‰t·t¿4Iš*Í‘vJû¤¤Ÿ9Nv”9.s\åxÄÑß1Â1ɱƱÉñ¼ãÇGŽß:N38-rZéôšÓ:§ÍN¾NÉNeN§>§!§»N÷œ8}éôÓÿržê,u~ÆYtžã¼Ðyµó^gogµs–ss›s¯ó€óMçÏsþ§ í¹¼ä²Þ個K˜‹Ê%Î%É%եĥÅeÈå¬Ë—.w\î¹|íò™Df/s–Í’-‘mùËÔ²Y¦¬Tf–õÉÎÊ®ÊnÊÞ—}"ûRöDö£ìWÙ?åùT¹TÎÉÈWÈ7Ê÷È˽åAòpy´<^ž"7È«ä-ò>ù¨ü–üùòoä?Ê“³–fØéìv1»†ÝÄîc°¾lÍjØ46‡5°El9[Ï6³Ýìö2ûûýšý‘ý……5c"{'·>’wKNYŸE«¬ŸR}Ј C7«#Âiš×¹­ •"̦ ¤ßÑb3|E&!Ò/M2Ð0‰ê©,…+ΡéÁ=Æ? µs€õ6¦Têh8Ž<¢©³¹p*NRÁÁêÔpîX’霿A»£©þŒb8•A…Ô’÷G£]5#W„­Ô@µ¹àV1 Æ6ZX¯Ô*è|@DÑÖ&<4¤?­|!%ùHútô²P» +bË›•ÅæÆ BucÉÎ×*+`±ú°ha49 «ÈŒV¤êÒÓUÂ&´=ÜA¨Ïåå•(ª+Š-ùB0£ühª)·(·(=_?´ æ´Gg¦%¸‡U!Ñ\zFI©!ÏhÈ …†ÂE[Œ)P¥<Úr¹³­¼±Ahh2õu= ¬ÏN«=UVÖžGîn»<Mvç”gÄ(´ZeèëBr@F¬6 u »>á3ãD™¢¦¬°'_0#m4Õ›cÐ×o1ä3ò36¡µÓ¢o|KÄdW—+jËŠ[ ð§TÑTsvAVË8œ™f&¡3¼ñ3ºA4‘ð%ëœêî’’–Âé~ ²pN,•”••­å²Ò…±<$¦ †{yËŽ[ú=~ò¨B~aQž=N'D W-dcyQQ)WX¢Ë)SÚFRÛ¸Ç7®ýžr`Þ)qS[„¥SÑÑjéiiNkÔå Õ^4€Ö0ÉÌB3Ðì'ÏÁiÐõ»_àLøìÂ_+BÙ+õûÑJô¢Ú}Ïnõ98®¯½.‚±]c+Y©"ßÉ®ÉW¨µ!QÞ²C;=LÊ-Ôu…Ó“›r**Õ%ý‚Å@XЗ*ªS×o +‚ÛÐçÓжPkKÓÊu÷hx°…‚¾è6}ÈñmÖØ¢‚êü"¡¬¨¦ÐÂ}Óí=k[’_Hœ•”¹VOƒZ"?ÍXù:’-ÝÁ^ñNñ¥9ÊMñÖa¯×w¶œU +‘ÝɉïÒá(¯l.*)©áJÊs3Åijݙƒœÿ÷Ï¡Ë}Ïû[OˆhÞûĪ¾XËÅõS=ïœ>ïRè ¬ 7m¥Á0ßÖu2ìx (5.âÁ¾¤7x`fƒ +´Õ= +«ÚM f”¤|ÒŸÌ Ï4:øøG%ã–îÿÎøåÄÑšêŒÔ"±0=/ÏGqÈPÛÃj6÷^ß|f š1ïYôáÿíÐÿœ  Å›;¯2{ÇñȃsÑsÐÿ8ÉÜsK„2Êø~yÅûx×^®¬ºU*XPˆŠz?Ó·A®Pègë:¨HSmÒÞ3âx8¥ß­ÑnÈ u%\ÊFaé š˜@è´ez:œ„ë<¢yœ¢2Ñ,¢™´|×\gê‘v|þ4•UFe|¶ðÆK8ãà"FQº“5­Ú„üÕT›¾&NçO£áèo¢" šà èc§¡HÊ ‰ÐÓjèx]wMCÛŸßjÕWÇéið +ÓK?ãÒúåkÇÍù?”m¶ÆYg±ç‘+%kÛÌÈz×ó²Ëך\Wô¥hdïù3²E! ˆgà]`U²Æ²¢.¢î3Caƒâ¸º1"2.6L›W'”(‹ƒ ÃiÐØh®hâºj#÷‰(›Ò+µšà\:¦P`yAj¹îm5SÐ1gÔ£ºÔAbü2ymd-£CЩ€7Sºµ©i+0~ƒXE¬6=P'dëµúd=~a Ó_Žs"DcêÓ‹Ö¯ÐÞhªC_oPÒãÅø’ q!z|É +|ŸÈÀÏaû#ÚB”&3ÓMj¤¤†C¦2JÜíõ͆EÓ¾ƒÂ­oÌu׋§›P¬º‚j7«U‰ñšq«á\"©-§¬TQ[[ajMè‚šÉm¸22 h±æ€2Ô—KSÃS<éSm©,ª®n¥«5Hôb@Rž vöÁ“=HÀ¹ðu¸ÔVÀ‹¬ÞlÊ«æ¾8_fÏ·µ_¸©¸|aw»`ò *Þ¡OÕ&r4·:Q·¦ ‹ø5üÔ²„·š§Luø«'š³RkÄ–ø]Šyþǧjò Aº‘ÀöŒà¨cŠ=÷ƒ  \ýÅèö ¼o×ð8¿räl3Õ|âDKK»(ÝÈxk™ ýƒcÈãÙµ9…¹tAn~V¶"--!5U@r$'¬ëÑ®hꄾ:Áà7±¾šøЉ•0SG‹sŠôÃ4$©&ówHAÔ©ŠR2)ÉYz!jÍTjv~EºˆÜ`Ãßm®»Q‚ÿ<Àî†ÏÚÙõÕ +SyE½PjB1j²#£8mIàTÔ=-ü Â?)9!™ËÌ.,‹)Ca^A>¦³Æð UÀ±“ÁÃÃ=7Íä­Äi +‹» xŸÃk\_¥OÌ +O‹äßÞu²í/ì1ðIµ`<¦²O`ÎO(‡'[[Ož ÇïÖߨ­6ôÑ°€ú›ÛÅWwyDìöÀ÷y]ÖtJ~€Ëa|Ó®ÊÞ%a(| +ÐC"tFI"º¢"od×'ŽÒãi”Wdì>ê¬Ù&SEq෺„÷ª7—+^P/ ñ<‚ŽÄlå<µ•§E@é®V×u2¹WjêÏézº«®'Gu5ñº=ôx#Š°6ú1¤t//5I¬³ ”=ê–àÃ)Ãk»Ôb|{fGÎæ‘YŸ$ ‡öÐÝ!ž¦ýrXù<šfü”><ÓþÍM•ÁÕ,dòk{Ïr­uI¡%bA|~”á D×^ãÕ¸€îÌ¡#m¡§ ó EB¯Uù¼á.œ—”îJµmˆÀÈÉY8>gØÁB«‹¦.›‡¸M槼ŀ®ó1§¹ó—›ºÅî~ÓÛwð™eÿHA¯ÄáHŒ,Ë"óƒ¶+Ðê„}Ž% ÿ +·Õ\Á¹ºÛZ:¤€_§RhåV"Ž*;^WXÂÕk#DE6$§nãÔ0‡·%á ¸Ào`îóÀzµ+€(cà‹ŸÝ€S¡üåwÑ«±9y¹‡E¿)ÆšÒ¼rîÑо¹‹}ÜÖû¥Tõ‹`´¼©Ôl¢eÖ‹ià”âbÈÙ=íB“·géznzšIÙ¯O†.Zâí¶A©­ê­mSêI™õog®\~ôÈÊœ´p&/è‰VÀÈSY¼q±ª!‚€N|K±|Ú²G᧊RjRŠLqBXsFAx>™®ÕÆ+‚{ãÞèÉa Ýá/îÕ¤—Vä +„rêxtc2Ful¿ÿµ«Ã]˜$ÃBƒý[Ã{ñy +GŠd€o ÓÛÞÞÓzÂ_Ag!%6ÁbêzöñÄ.ázØΓë87ÿ¤QVÚ >dÆœL. ¯6öÁs]ë›úÁÕzƒì‡D ™¾€Ï1š„25§V©Ëµmñ"œµ„°~þ6HãSüž »{GHôáx:%<8+‚Û²½k4\ ?ŸüÞO +è ~nè¸Ó\“¡ÍÑeåf +Y©ºŒL…¦4©"G^î~ŠàU^Úi“#UuH€ø%<W'1¶Y†4US–œª8]½ŽZuFùsK}~y».*ní8ýr´&7=\ÈÑfè29mVQ…˜ˆq®…´dæØÁ>ØÇ¢DÃRß1¦hÇ/K`v`Α¥}’_ óÏ`A€ß²QŠ¦Žmb½}<;‚;;ƒ:½Ei¿’!` ©ÛKQÆ}I‰ k˜ØmvÔ%zW +å{Xƒ‡!*XžÇ^1ÖÆŽ€É?1àÌØÔLÀÞ&ù8+°ˆÀÎ@Ù#(Ûx¨tý·ð6…U'”M(¬–Vï­â;(„Fæ¼®ú/4Ùi)Z9#€®”¾³¢¾¹6ë2 s¶ûäð°²ÃÌ붸´¦¢Rh45U4r£æ]è08ÝÊá¡žž! ¸pê€Gx¸'½Èr—;±—‚ÕP…ð?¼æŽ/ Q‡éèl5 0‘Q…)&CG³“ÛjÁ{ß›4(Žnñûùz€MQ¨)‡ +Ó4vE`éKå.ö™ú,bms±¹p„–FjMF¼æU]o[óÚ#hÖ—dF)ÐEÊ Ô&Ú€:x(•ž‡OúŸÆãVöàùœo9Û*ÔŸ(鹪îÑ^‘b\`Ʊe +€Ò|—òp ¼?2‰À5,æ)¾´šÍ­Oñ…Œ‰‰ŠhŠiiijji‰iŠAÑBºz ëéïïåqÒètw÷i`â¥?3¥%˜õ ê뛹J@þˆù'ඊ + iŽ:ÑÞÜÜ~BÕ,‚ŒÍè©)8ùÚà'@y‘ïí>ÑÞÓÚî'¶ÁÂ"›*p1Q®“V±ç‰ä¯ãkÙS-µB¤Ò–Ôè+4 °ÕS¹"H0“½ ÕÜ© (/-S3NÀiâáéúDò€ÚtQ]4œI4‹2&Ç®¾Vƒýƒ*/ÛöϱI@¬èúEé÷pë)8딜汣à Êa@ Ä6-ãEl½“%;º€!ARyyZ —_dÌ/‰ +Ç݈‰}˜Ð:±ÖkÀx ÌäÝ¢–γ\_S¨hîǃìŸ$èRÜ>uøp°Ïö¨BÛ|ñŒµÙ +(i|½Õ§zU“ ÀˆìŸIò1’m+(,,,((Î/.üÚÞ~ ®ØRb©(+-(¬°wxÚÙ7É<é;Él‰I2,¹+“gOž79rÅäÎÉßÚM±[n·Ù.ÒNm÷Ñ”W¦lšR5¥nÊ}b1L\ ®ïŸ?“!äWÔkTUHÕQŸÐ›èP:—®¢ÿ˜:yê SÓ§~Â,f¶01Œ†IgŒÌ s H€ LžÀ:À5pÓ^jÏÚO·çíØ/³ßn¿ßþ°½—}®}½}“ýÇö_8Lr f9¸9¨RÚ>vøÌá±Ãw¿;ŒK'IIéé*éZé^©Fš*Í•öJ‡¥W¥w¥Hÿp´wtr|ÅñUÇ×}3›O;žs¼êxÇñsÇ_œœ^rÚáäéádp:îÔã4êtÓé§Oþæô›Ó¿œ§9Ïs^îü†ófg/ç`çXçTçRç&çÎ=ÎÎÃÎç?tþÑ…p™á2Óe¹Ëz—Ý.‡]¼]]’]Š]Z]κÜuùÂåw-“ËfÈž“=/[#Û-ó”EÉ2dY™¬ZÖ ë•–Ý½#»'ûJö›œ”?#Vþ¼ü%ù+òuò=òCò ¹Zž&Ï’åeòZy£¼MÞ%‘ß’$$ÿ^>ÆNb¥ì3ìLv»}™]ƾÉîb²Al›Áæ²¥l-{œígÏ°çÙ«ìmö=öûû»ëdW©«Âu®ë‹®Ë]_wÝàºÕu·«›ëWo×`×XWk¶k‘k•«Åõ¤ë°ëˆëE×kc{þ,I?Ènˆ{s¢j9ß[<çuÎà”ñAUå'FŒ¼UÔݬr­ñM}A-h8ü¶—xæfÂûÜï6vˆ§{š?üVq“Ò\èÌ>–àÍù…×uʼn '2:rîÒ°Ìú,i8¤‡î 9jÚÇ!§óÑ\4÷Ó…Ð铳íOn‰˜ÜײÐ>¿®ï,7\„ìŒb¬ÈkêyH‰uí<4úâÛ<|óƒÞh>Þ€ž¢>˜…“o"䇎íÄ +œFÔ,¨¼`è Hé"°†ÝdÓÒˆÜÜ\}6—œYR+Â*êóµ£HŠˆµßð1G÷÷µš;«²+µ5BzYnQ‘¢¡¥æ¤þd‹ÐVy!·:-T¡ÍMÊIÐô=š¿"R;s+ÊæêÒÁ|Áh«vˆtKEõëLéåÑ] §!½ì­“ˆìZ]q©¢­¢t´@° au*«,½ö0 ÿqZ+ wZ£àÚñ(¢…„G­?Vö56tæOI¼‹c¹[Bò²»³Ù·óÙOË0Á]&‘#Ü@¼Dâl .‘pÊR+iaר«ôçik°Æ²rCWRœ›] –¦åé ÏÓÈ +Ë.ŠöUŸ ºÍAúÁïpÙ½äwbÛDSR|Y4çZÓ‘"¶¥çëJ2èÊäâ(¥bÏ[»½:ð u:¢783G¯ÏÁõÀ*{BF®àÁ#^_ÿ§ÈOnKx*òÇ\ š 'ƒ×¨CChÿcûÖp;m:kèDš~n›êÏ*êvn½ÆÊèÝ“S7dÐ*ë} +lÌ3Y]\>âe­'ÍÛyÙéÅŒìÁ«<ø¬ÂM8ÚŸJPbNÿÏ> Ñ”ùhÊÄ>Úbÿ )½öESƒ™%éï4Æ;#Ý+kÅ,3€­{·š¨üâò²2dðpÖ—è±³f©ÙÙKÞx]\¿Ñwá<¢{^y´VØpÿ«ÀŸ¸Ÿ¿ê~ÿ}ñþýžo~UüêÿxÝû‡o,î~–Cß»°p?\„oûá>¸-BûÑ^ôzíZ°æÄíMÂæ;¾Vxm!šÕ‡MbilA‚J‘Ñ?Œ¡Ò{ìÒÑ‘Ð IòëÜуe/ÐpëxºŽ¼ «NèáäÒ jk+yz*2Ùm؇¦h%附IWÈý2©N‰æÂâZú®œ:õq~qk"ŸaryEÙËðŒ™Ý™ŸZ©¿AÃ=Ôhë@GIi¦¦\ˆ¬¯No溛[{†‚:ŽRFm:*Êî~ŠöDS§²ËS&:6i©Þ™8põ 0`L +³Ø(Ò­Úô:Òê8F5ã T:F´’g xºÎÓU: ݆q—?ˆië +H¬/Á ö,"‰’¸‚”tETBª· R˦t2Ú˜Y¬éBeÖŸ¦EÈgütÜÖ°`?Ýt5Tšb©ÀÈzsi~eI£ØóñLg?CžZL‚»le<”˜p±Þ7©ÈCMa„.« Þ¾ZÑ0(~Ú{ññ +Hnú~f§Z–h\_˜`˜VNéÏÖÔàÌ4¡ûj39¢«MЦS)ŸÜÍ9‘™¾ñÓWø¸-™¯˜ñåOý„ØÓWR¯sðE«†ý9ëâkh¦‰û_›“% Ù®sŠö?„¢μôð§"Aú +?ÑæXË'¦Çƒe¼©ë/ð&/ËÜÀÈ6üUÐÑøÚ“-ÙÜÇ1¼6NglUh88 ÿ]ˆ.‚ÙÇ(…œ(6«à]ê*J£€—)«+"¡Š¬5” +å%õE­Ü{ç‚ßê[ܪÖ/W,R/ûïµi˜Œ´t¬Ìª ©…ÚjtÅ*wC·“–Jð–=¥¢fåF+4Ù¡¡ +Cá ¦ŒïWWß+xÊ#­Ó,ÊJ; t¹‰5^E¾+¶, +¬Á®¶QU¯Ž§_‹ôõ;¨8V—p3F,ú^E~–SfÜGÏ¢†ÇnÞîS?,x]Šç†Û†,BlU¶N¯ÏÈ™žÆ\ØÛ9uÉFwz<œÒ¹'§àU¶¾KõBo"’ Ý¢ŽŒ <Ý4opÛ*°CH£~ïS"²\l†ŸG‘ÉhŠ_À, ã©îŠÒ _žO‰hÚ#«Â*7ÓfxhÛ^ÐCÐÀÿÕçm +êZ;ÌüUÅ‘µ5{ç`A½Óí~Â.ö‹ÐL¤6ê ‹55¥-B RW9qm;áËèâ4ôŠ­ ®†_›Â¶ðù—h¸™‚ +ØÒs¿¼|¨hº íS›¨ •&+QƒÍº+üÂB®)Í(Õ}@Ãä ƒµô'íƒ×>R@zÑm´z¢]ÿNvU’q½­]¯ß‘ë™Cç¦ét©"Ô[?b›j+:ux¡IÛS”Q1‚::8sÆ–²K¶Dïß*®Ûî¿MQ`ƒ¤@3 <ˆüþpÇMáÖ¶5í³¹‚@ö÷kh&“ƒÛÐÔ™G=[‡"ÅÐ Éïþª€N¦†/ -µ}œJ©‹U'ëÊ3S²s³²Ò„ô¤œ´TÌ7kTäÎe¾ž[÷Ó‘£èµuÀ÷î¾ãŸö ªrB©Ö$Çq©µ}"¼`ë_)d\xûöAe¸VUs£{ÍÖ®š†Âbºç|us­¢8§ ###G›$èõ:]®y¡•Ór(ŒJ«°»§ïŒÜþ›âî±á]‡‚CÀÓ½­«VÛööÈðêpÝ–@>þjëYÄh²ótQ"$ +Ê Å±»ò + Œ­šãqä¤ÿ𙞓ÃglÕÀþú¦­¦{SëKÈÂ$»S­'ÄNúÀ#h!| ݧÀ #âÐkh-V`xÝÑóXÍÀNr t„ÄEéƶîÐQî››¿`©ê|ø›ÍÑ1!Áõq]Yb_¦A_©¥«‹#<s=·­÷¬í‰Z®V (ÎÄ´(£CyVh:bÛ7ÖÃG¤tÜàI?\cÿ¬¨š¨¨¹åÒ@§@ç`¤ƒið{ÛÒÐjæÌeqØBæàRï=¿ãH@øÆáG +mÙ_¨&òK + ùœyÂn߇ÎÔÄ’1àò"@ýÕ[Á€§E’bKÑ9Zúú¸{¡Yä±?jþ¦Á†âòÖ&Ü:h²¾ZÀ£¿f·%ñà SÀ5Áøê§Ý¡Ò‰îPéŸÝ¡¬¤t]&•cë}eMg‡ë•/¾˜päHBד'uÝgDàþ˜ÖçØ>&F¨çW0î¿´òQ2õÊzâõÕ=©ÿKWßL=íûK­snß¾mج´Ä­£ŽKåÜTW¡²-W¯t´G+«D`s21;ù¿Úä{¡œx@¡^(‹qƒþ«ˆ?ìHðC_j;‘“’¥Ïà|BºßOÑä:6# r{B˜›’Èy©GqèÅ.ö6û ºC”Æk‹Ë +ó‹‹Ê„²êlŽG™ƒýUª€ÝWŽ¶ZmL¤:`"Ò2 ?¯žì…5½.ð,ô_Ä2®’ý:dïzj²Ì¸<Þ,†‰V²›¿z»;mÇ\†Ò‹² Þôÿ›à+5@;L p6È3IÀ+L»©ÎâãáK| ÐùÃçy`3XôæC[—*Þê?zm¤ãĹ¡°ÞÙYyú,AŸ«ËÓq©¥}ý÷GEðSl(ãþž°ÛÃc¼x[3a_b)ÄÉq“ô!vSÆS’ÞPœP©?GÃD˜…)ÝÁDíÛÙ¥o)pÞØÈC¹Jô­#€•€ Ùõ¥¯ç8x³!¿¦¤AŒ?ÞœÞÊõ¶4o©ŠˆÎJÂÛs[BxLt]U Íùp6¯«|ëɧmyœ&`aÿ”6 t®¡ö¶­pø­Šz'פÁ„‚|Qô¥ €1oÚâ›Ybºž´ ZWD¶jcµŒ¿QÆe©aœ)“ü³r|š?n MÀ”±Ä†žh9Z†Qâ \ŽVÀCø¶®À{?[…ˆàd yµ[µ­K0y²¦­EGV+ß„CÝî×|3Hð4ÚÎî2jêuØ#?K=cÑžæ ñðp>œùÆdb  õHœº½nM«l%:Œ¡H°€Qûz¬æ!F\„D©Bþ,ŸhjÅ”5)Ï £h‡³Ë PvÜ¥>' [ +åìe@<˜åщP.‡î8”+ð͇r9|Lœh02à+Æêcb=È]s‰:€Ö·‘…ßœùãû”ƒ=¢þ{¢\ä{ÀÓÎx}sV='›Ñ„¤€n¶Îa;˜/?¯½Ždñ9q…Œøt]—QfÑ‹ C¨ +Š,x‹C;à N 2¾‡ák¸¾Æçܶj·PÒ£¼ídÖ±Cõ¡~Š M\THrÓÈ`AM}« e­s¶ŒXnS?¼=Ž¿t›G[G¼>¼wîÜ=0aKá6“änogm7³ÐÚ£¸x¤oë[îž»|ð°Þ=ŸÞþÁ㋆:îw ðþý€ûî≯¯Š²ŽñgCXUtrf4§Œ7ÛjèÚH2 )=-ŽKO.(‹Í{Ž”ÛúÂ(€B¯A"¾)³²Jaª©hÀŸýÀæþø ÜÅþ¿èy°†æõ4€/ÃÅp6¾¿Œ×îþë@S½ °;`õ¨«ØÒ#ÞÑ‘jn‹÷Íäˆ:0ª={ºaÓ™x“ P·]ú†¥Q ‡9­:Ó7gwÚü:@î‰×I„Áÿ<ˆ/›(ƒ‰Ë©-J»i€Vgó¶îkn5†'yCô9)"¸*×àû×ìÆüŽ¹â£‰ÖPœó;¾yë‘ð@ni—áºnøj¯D«Ô*›š-øäZ×pKBJ• Á¤ãÖD*Р 1¿Â¨¨b÷)ÓÛï`±¿fÁåX[!þnÿ3 ïwre`¦ +ØÎ}àÜ%àr€u=˜8«’€qtK~‡Î6‰jÆ[È…8Cžu;2vä#$ Ñ³”º ©4gÞ3Œí0#@¿ìÌÊ +ÒOWk'T²_Ž–Pài³ì¤®¦$1R¸(Ïlç?Àÿñå¼£ +endstream +endobj +1347 0 obj +<< +/Length 9376 +>> +stream +0 g 0 G +0 g 0 G +BT +/F16 11.9552 Tf 150.705 706.129 Td [(5.3)-1125(psb)]TJ +ET +q +1 0 0 1 202.396 706.328 cm +[]0 d 0 J 0.398 w 0 0 m 4.035 0 l S +Q +BT +/F16 11.9552 Tf 206.431 706.129 Td [(gather)-375(|)-375(Gather)-375(Global)-375(Dense)-375(Matrix)]TJ/F8 9.9626 Tf -55.726 -18.389 Td [(These)-384(subroutines)-384(collect)-385(the)-384(p)-27(ortions)-385(of)-384(global)-384(dense)-384(matrix)-384(distributed)-384(o)28(v)27(er)]TJ 0 -11.956 Td [(all)-333(pro)-28(cess)-334(i)1(n)27(to)-333(one)-333(single)-334(arra)28(y)-333(stored)-334(on)-333(one)-333(pro)-28(cess.)]TJ/F11 9.9626 Tf 120.435 -22.804 Td [(g)-36(l)-19(ob)]TJ +ET +q +1 0 0 1 289.12 653.179 cm +[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +Q +BT +/F11 9.9626 Tf 292.109 652.98 Td [(x)]TJ/F14 9.9626 Tf 8.461 0 Td [(\040)]TJ/F11 9.9626 Tf 12.73 0 Td [(col)-20(l)-19(ect)]TJ/F8 9.9626 Tf 28.026 0 Td [(\050)]TJ/F11 9.9626 Tf 3.874 0 Td [(l)-20(oc)]TJ +ET +q +1 0 0 1 358.107 653.179 cm +[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +Q +BT +/F11 9.9626 Tf 361.096 652.98 Td [(x)]TJ/F10 6.9738 Tf 5.694 -1.494 Td [(i)]TJ/F8 9.9626 Tf 3.317 1.494 Td [(\051)]TJ -219.402 -20.867 Td [(where:)]TJ +0 g 0 G +/F11 9.9626 Tf 0 -19.085 Td [(g)-36(l)-19(o)-1(b)]TJ +ET +q +1 0 0 1 168.775 613.227 cm +[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S +Q +BT +/F11 9.9626 Tf 172.212 613.028 Td [(x)]TJ +0 g 0 G +/F8 9.9626 Tf 10.675 0 Td [(is)-333(the)-334(global)-333(submatrix)]TJ/F11 9.9626 Tf 103.916 0 Td [(g)-36(l)-20(ob)]TJ +ET +q +1 0 0 1 304.784 613.227 cm +[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +Q +BT +/F11 9.9626 Tf 307.773 613.028 Td [(x)]TJ/F7 6.9738 Tf 5.694 -1.494 Td [(1:)]TJ/F10 6.9738 Tf 6.226 0 Td [(m;)]TJ/F7 6.9738 Tf 9.436 0 Td [(1:)]TJ/F10 6.9738 Tf 6.227 0 Td [(n)]TJ +0 g 0 G +/F11 9.9626 Tf -184.651 -18.011 Td [(l)-20(oc)]TJ +ET +q +1 0 0 1 163.701 593.722 cm +[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S +Q +BT +/F11 9.9626 Tf 167.139 593.523 Td [(x)]TJ/F10 6.9738 Tf 5.693 -1.494 Td [(i)]TJ +0 g 0 G +/F8 9.9626 Tf 8.299 1.494 Td [(is)-333(the)-334(lo)-27(cal)-334(p)-28(or)1(tion)-334(of)-333(global)-333(dense)-334(matrix)-333(on)-333(pro)-28(cess)]TJ/F11 9.9626 Tf 234.703 0 Td [(i)]TJ/F8 9.9626 Tf 3.433 0 Td [(.)]TJ +0 g 0 G +/F11 9.9626 Tf -268.562 -19.505 Td [(col)-20(l)-19(ect)]TJ +0 g 0 G +/F8 9.9626 Tf 33.007 0 Td [(is)-333(the)-334(collect)-333(function.)]TJ +0 g 0 G +0 g 0 G +0 g 0 G +ET +q +1 0 0 1 228.797 555.154 cm +[]0 d 0 J 0.398 w 0 0 m 187.526 0 l S +Q +BT +/F11 9.9626 Tf 234.775 546.587 Td [(x)]TJ/F10 6.9738 Tf 5.694 -1.495 Td [(i)]TJ/F11 9.9626 Tf 3.317 1.495 Td [(;)-167(y)]TJ/F27 9.9626 Tf 111.399 0 Td [(Subroutine)]TJ +ET +q +1 0 0 1 228.797 542.801 cm +[]0 d 0 J 0.398 w 0 0 m 187.526 0 l S +Q +BT +/F8 9.9626 Tf 234.775 534.233 Td [(In)28(teger)-9028(psb)]TJ +ET +q +1 0 0 1 370.782 534.432 cm +[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +Q +BT +/F8 9.9626 Tf 373.771 534.233 Td [(gather)]TJ -138.996 -11.955 Td [(Short)-333(Precision)-334(Real)-3102(psb)]TJ +ET +q +1 0 0 1 370.782 522.477 cm +[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +Q +BT +/F8 9.9626 Tf 373.771 522.278 Td [(gather)]TJ -138.996 -11.955 Td [(Long)-333(Precision)-334(Real)-3314(psb)]TJ +ET +q +1 0 0 1 370.782 510.522 cm +[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +Q +BT +/F8 9.9626 Tf 373.771 510.323 Td [(gather)]TJ -138.996 -11.956 Td [(Short)-333(Precision)-334(Complex)-1200(psb)]TJ +ET +q +1 0 0 1 370.782 498.567 cm +[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +Q +BT +/F8 9.9626 Tf 373.771 498.367 Td [(gather)]TJ -138.996 -11.955 Td [(Long)-333(Precision)-334(Complex)-1411(psb)]TJ +ET +q +1 0 0 1 370.782 486.612 cm +[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +Q +BT +/F8 9.9626 Tf 373.771 486.412 Td [(gather)]TJ +ET +q +1 0 0 1 228.797 482.626 cm +[]0 d 0 J 0.398 w 0 0 m 187.526 0 l S +Q +0 g 0 G +BT +/F8 9.9626 Tf 276.386 454.587 Td [(T)83(able)-333(19:)-444(Data)-334(t)28(yp)-28(es)]TJ +0 g 0 G +0 g 0 G +/F27 9.9626 Tf -124.304 -30.984 Td [(c)-138(a)-138(l)-139(l)]TJ/F8 9.9626 Tf 29.737 0 Td [(p)-123(s)-123(b)]TJ +ET +q +1 0 0 1 201.095 423.802 cm +[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +Q +BT +/F8 9.9626 Tf 205.31 423.603 Td [(g)-123(a)-123(t)-123(h)-123(e)-123(r)-229(\050)-215(g)-110(l)-110(o)-110(b)]TJ +ET +q +1 0 0 1 270.682 423.802 cm +[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +Q +BT +/F8 9.9626 Tf 274.766 423.603 Td [(x)-381(,)-888(l)-127(o)-127(c)]TJ +ET +q +1 0 0 1 312.009 423.802 cm +[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +Q +BT +/F8 9.9626 Tf 316.265 423.603 Td [(x)-415(,)-874(d)-113(e)-112(s)-113(c)]TJ +ET +q +1 0 0 1 360.541 423.802 cm +[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +Q +BT +/F8 9.9626 Tf 364.652 423.603 Td [(a)-386(,)-888(i)-127(n)-127(f)-127(o)-415(,)-885(r)-124(o)-123(o)-124(t)-230(\051)]TJ/F27 9.9626 Tf -212.57 -11.956 Td [(c)-138(a)-138(l)-139(l)]TJ/F8 9.9626 Tf 29.737 0 Td [(p)-123(s)-123(b)]TJ +ET +q +1 0 0 1 201.095 411.847 cm +[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +Q +BT +/F8 9.9626 Tf 205.31 411.647 Td [(g)-123(a)-123(t)-123(h)-123(e)-123(r)-229(\050)-215(g)-110(l)-110(o)-110(b)]TJ +ET +q +1 0 0 1 270.682 411.847 cm +[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +Q +BT +/F8 9.9626 Tf 274.766 411.647 Td [(x)-381(,)-888(l)-127(o)-127(c)]TJ +ET +q +1 0 0 1 312.009 411.847 cm +[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +Q +BT +/F8 9.9626 Tf 316.265 411.647 Td [(x)-415(,)-874(d)-113(e)-112(s)-113(c)]TJ +ET +q +1 0 0 1 360.541 411.847 cm +[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +Q +BT +/F8 9.9626 Tf 364.652 411.647 Td [(a)-386(,)-888(i)-127(n)-127(f)-127(o)-415(,)-885(r)-124(o)-123(o)-124(t)-230(\051)]TJ +0 g 0 G +0 g 0 G +0 g 0 G +/F27 9.9626 Tf -213.947 -26.424 Td [(T)32(yp)-32(e:)]TJ +0 g 0 G +/F8 9.9626 Tf 33.797 0 Td [(Sync)28(hronous.)]TJ +0 g 0 G +/F27 9.9626 Tf -33.797 -19.505 Td [(On)-383(En)32(try)]TJ +0 g 0 G +0 g 0 G + 0 -19.505 Td [(lo)-32(c)]TJ +ET +q +1 0 0 1 165.713 346.412 cm +[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S +Q +BT +/F27 9.9626 Tf 169.151 346.213 Td [(x)]TJ +0 g 0 G +/F8 9.9626 Tf 11.028 0 Td [(the)-333(lo)-28(cal)-333(p)-28(ortion)-333(of)-334(global)-333(dense)-333(matrix)]TJ/F11 9.9626 Tf 176.117 0 Td [(g)-36(l)-20(ob)]TJ +ET +q +1 0 0 1 374.277 346.412 cm +[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +Q +BT +/F11 9.9626 Tf 377.266 346.213 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(.)]TJ -207.349 -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 [(in)]TJ/F8 9.9626 Tf 9.548 0 Td [(.)]TJ -43.034 -11.955 Td [(Sp)-28(eci\014ed)-255(as:)-405(a)-255(rank)-254(one)-255(or)-255(t)28(w)27(o)-254(arra)27(y)-254(or)-255(an)-255(ob)-56(j)1(e)-1(ct)-254(of)-255(t)28(yp)-28(e)]TJ +0 0 1 rg 0 0 1 RG +/F30 9.9626 Tf 244.743 0 Td [(psb)]TJ +ET +q +1 0 0 1 436.673 298.592 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +Q +BT +/F30 9.9626 Tf 439.811 298.392 Td [(T)]TJ +ET +q +1 0 0 1 445.669 298.592 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +Q +BT +/F30 9.9626 Tf 448.807 298.392 Td [(vect)]TJ +ET +q +1 0 0 1 470.356 298.592 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +Q +BT +/F30 9.9626 Tf 473.495 298.392 Td [(type)]TJ +0 g 0 G +/F8 9.9626 Tf -297.884 -11.955 Td [(indicated)-333(in)-334(T)84(able)]TJ +0 0 1 rg 0 0 1 RG + [-334(19)]TJ +0 g 0 G + [(.)]TJ +0 g 0 G +/F27 9.9626 Tf -24.906 -19.505 Td [(desc)]TJ +ET +q +1 0 0 1 172.619 267.131 cm +[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S +Q +BT +/F27 9.9626 Tf 176.057 266.932 Td [(a)]TJ +0 g 0 G +/F8 9.9626 Tf 10.55 0 Td [(con)28(tains)-334(data)-333(structures)-333(for)-333(c)-1(omm)28(unications.)]TJ -10.996 -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.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 362.845 219.311 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +Q +BT +/F30 9.9626 Tf 365.983 219.111 Td [(desc)]TJ +ET +q +1 0 0 1 387.532 219.311 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +Q +BT +/F30 9.9626 Tf 390.67 219.111 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 -19.505 Td [(ro)-32(ot)]TJ +0 g 0 G +/F8 9.9626 Tf 25.93 0 Td [(The)-291(pro)-28(cess)-291(that)-291(holds)-291(the)-291(global)-291(cop)28(y)83(.)-430(If)]TJ/F11 9.9626 Tf 182.523 0 Td [(r)-28(oot)]TJ/F8 9.9626 Tf 20.794 0 Td [(=)]TJ/F14 9.9626 Tf 10.516 0 Td [(\000)]TJ/F8 9.9626 Tf 7.749 0 Td [(1)-291(all)-291(the)-291(pro)-28(cesses)-291(will)]TJ -222.606 -11.955 Td [(ha)28(v)28(e)-334(a)-333(cop)28(y)-334(of)-333(the)-333(global)-334(v)28(ector.)]TJ 0 -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 [(optional)]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(v)55(ariable)]TJ/F14 9.9626 Tf 142.079 0 Td [(\000)]TJ/F8 9.9626 Tf 7.749 0 Td [(1)]TJ/F14 9.9626 Tf 7.748 0 Td [(\024)]TJ/F11 9.9626 Tf 10.516 0 Td [(r)-28(oot)]TJ/F14 9.9626 Tf 20.795 0 Td [(\024)]TJ/F11 9.9626 Tf 10.516 0 Td [(np)]TJ/F14 9.9626 Tf 13.206 0 Td [(\000)]TJ/F8 9.9626 Tf 9.963 0 Td [(1,)-333(default)]TJ/F14 9.9626 Tf 44.555 0 Td [(\000)]TJ/F8 9.9626 Tf 7.749 0 Td [(1.)]TJ +0 g 0 G +/F27 9.9626 Tf -299.782 -19.505 Td [(On)-383(Return)]TJ +0 g 0 G +0 g 0 G +/F8 9.9626 Tf 166.874 -29.888 Td [(66)]TJ +0 g 0 G +ET + +endstream +endobj +1233 0 obj +<< +/Type /ObjStm +/N 100 +/First 991 +/Length 12570 >> -% 1250 0 obj +stream +276 0 1232 57 1228 116 1235 248 1237 366 1234 425 1246 505 1238 680 1239 824 1240 969 +1241 1113 1242 1258 1248 1405 280 1463 1249 1520 1245 1579 1252 1711 1243 1859 1244 2003 1254 2150 +1251 2209 1261 2302 1255 2477 1256 2621 1257 2767 1258 2913 1259 3057 1263 3204 284 3262 1264 3319 +1260 3378 1267 3510 1265 3649 1269 3797 288 3856 1266 3914 1275 3994 1270 4151 1271 4295 1272 4442 +1277 4589 292 4647 1278 4704 1279 4763 1280 4821 1281 4879 1274 4937 1285 5069 1289 5217 1290 5344 +1291 5387 1292 5594 1293 5832 1294 6108 1273 6344 1283 6491 1287 6637 1288 6696 1284 6755 1298 6903 +1300 7021 1297 7079 1307 7160 1303 7317 1304 7461 1305 7608 1309 7754 296 7813 1310 7871 1311 7930 +1312 7989 1313 8048 1306 8107 1319 8252 1314 8409 1316 8556 1317 8701 1321 8848 1322 8906 1323 8964 +1324 9022 1318 9079 1327 9211 1329 9329 1326 9388 1331 9468 1334 9586 1335 9713 1336 9756 1337 9963 +1338 10201 1339 10477 1333 10713 1325 10771 1330 10830 1346 10926 1342 11083 1343 11227 1344 11374 1348 11520 +% 276 0 obj << -/Type /FontDescriptor -/FontName /XISTAL+Times-Bold -/FontBBox [ 0 -13 600 688] -/Flags 65568 -/Ascent 688 -/CapHeight 676 -/Descent -13 -/ItalicAngle 0 -/StemV 90 -/MissingWidth 250 -/CharSet (/P/one/zero) -/FontFile3 1252 0 R +/D [1229 0 R /XYZ 99.895 716.092 null] >> -% 1244 0 obj +% 1232 0 obj << -/D [1242 0 R /XYZ 98.895 753.953 null] +/D [1229 0 R /XYZ 270.132 534.109 null] +>> +% 1228 0 obj +<< +/Font << /F16 582 0 R /F8 585 0 R /F11 797 0 R /F14 814 0 R /F30 811 0 R /F27 584 0 R >> +/ProcSet [ /PDF /Text ] >> % 1235 0 obj << -/D [1242 0 R /XYZ 232.883 272.519 null] +/Type /Page +/Contents 1236 0 R +/Resources 1234 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1197 0 R >> -% 1241 0 obj +% 1237 0 obj << -/Font << /F8 561 0 R >> -/XObject << /Im4 1225 0 R >> +/D [1235 0 R /XYZ 149.705 753.953 null] +>> +% 1234 0 obj +<< +/Font << /F27 584 0 R /F8 585 0 R >> /ProcSet [ /PDF /Text ] >> -% 1257 0 obj +% 1246 0 obj << /Type /Page -/Contents 1258 0 R -/Resources 1256 0 R +/Contents 1247 0 R +/Resources 1245 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1212 0 R -/Annots [ 1253 0 R 1254 0 R 1255 0 R ] +/Parent 1250 0 R +/Annots [ 1238 0 R 1239 0 R 1240 0 R 1241 0 R 1242 0 R ] >> -% 1253 0 obj +% 1238 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [419.358 295.182 495.412 306.307] +/Rect [265.833 407.619 341.887 418.744] /A << /S /GoTo /D (vdata) >> >> -% 1254 0 obj +% 1239 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [256.807 285.441 268.762 294.352] -/A << /S /GoTo /D (table.16) >> +/Rect [225.425 395.94 232.399 406.789] +/A << /S /GoTo /D (table.2) >> >> -% 1255 0 obj +% 1240 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [345.53 215.901 412.588 227.026] -/A << /S /GoTo /D (descdata) >> ->> -% 1259 0 obj -<< -/D [1257 0 R /XYZ 149.705 753.953 null] +/Rect [265.833 327.999 341.887 339.124] +/A << /S /GoTo /D (vdata) >> >> -% 276 0 obj +% 1241 0 obj << -/D [1257 0 R /XYZ 150.705 720.077 null] +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [225.425 316.32 232.399 327.169] +/A << /S /GoTo /D (table.2) >> >> -% 1260 0 obj +% 1242 0 obj << -/D [1257 0 R /XYZ 320.941 466.542 null] +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [259.464 248.379 326.522 259.504] +/A << /S /GoTo /D (descdata) >> >> -% 1261 0 obj +% 1248 0 obj << -/D [1257 0 R /XYZ 150.705 435.558 null] +/D [1246 0 R /XYZ 98.895 753.953 null] >> -% 1262 0 obj +% 280 0 obj << -/D [1257 0 R /XYZ 150.705 435.558 null] +/D [1246 0 R /XYZ 99.895 716.092 null] >> -% 1263 0 obj +% 1249 0 obj << -/D [1257 0 R /XYZ 150.705 423.603 null] +/D [1246 0 R /XYZ 270.132 543.606 null] >> -% 1256 0 obj +% 1245 0 obj << -/Font << /F16 558 0 R /F8 561 0 R /F11 755 0 R /F14 772 0 R /F10 771 0 R /F7 770 0 R /F27 560 0 R /F30 769 0 R >> +/Font << /F16 582 0 R /F8 585 0 R /F11 797 0 R /F14 814 0 R /F30 811 0 R /F27 584 0 R >> /ProcSet [ /PDF /Text ] >> -% 1265 0 obj +% 1252 0 obj << /Type /Page -/Contents 1266 0 R -/Resources 1264 0 R +/Contents 1253 0 R +/Resources 1251 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1268 0 R +/Parent 1250 0 R +/Annots [ 1243 0 R 1244 0 R ] >> -% 1267 0 obj +% 1243 0 obj << -/D [1265 0 R /XYZ 98.895 753.953 null] +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [316.642 690.964 392.696 702.088] +/A << /S /GoTo /D (vdata) >> >> -% 1264 0 obj +% 1244 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [296.381 679.285 308.336 690.133] +/A << /S /GoTo /D (table.14) >> +>> +% 1254 0 obj +<< +/D [1252 0 R /XYZ 149.705 753.953 null] +>> +% 1251 0 obj << -/Font << /F27 560 0 R /F8 561 0 R /F30 769 0 R >> +/Font << /F8 585 0 R /F27 584 0 R /F30 811 0 R >> /ProcSet [ /PDF /Text ] >> -% 1272 0 obj +% 1261 0 obj << /Type /Page -/Contents 1273 0 R -/Resources 1271 0 R +/Contents 1262 0 R +/Resources 1260 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1268 0 R -/Annots [ 1269 0 R ] +/Parent 1250 0 R +/Annots [ 1255 0 R 1256 0 R 1257 0 R 1258 0 R 1259 0 R ] >> -% 1269 0 obj +% 1255 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [345.53 210.686 412.588 221.811] +/Rect [265.833 429.544 341.887 440.669] +/A << /S /GoTo /D (vdata) >> +>> +% 1256 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [225.425 417.865 232.399 428.713] +/A << /S /GoTo /D (table.2) >> +>> +% 1257 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [259.464 351.49 326.522 362.615] /A << /S /GoTo /D (descdata) >> >> -% 1274 0 obj +% 1258 0 obj << -/D [1272 0 R /XYZ 149.705 753.953 null] +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [265.833 201.014 341.887 212.139] +/A << /S /GoTo /D (vdata) >> >> -% 280 0 obj +% 1259 0 obj << -/D [1272 0 R /XYZ 150.705 720.077 null] +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [245.572 189.336 257.527 200.184] +/A << /S /GoTo /D (table.16) >> >> -% 1275 0 obj +% 1263 0 obj +<< +/D [1261 0 R /XYZ 98.895 753.953 null] +>> +% 284 0 obj << -/D [1272 0 R /XYZ 320.941 451.038 null] +/D [1261 0 R /XYZ 99.895 716.092 null] >> -% 1276 0 obj +% 1264 0 obj << -/D [1272 0 R /XYZ 150.705 417.777 null] +/D [1261 0 R /XYZ 270.132 556.917 null] >> -% 1277 0 obj +% 1260 0 obj << -/D [1272 0 R /XYZ 150.705 417.777 null] +/Font << /F16 582 0 R /F8 585 0 R /F11 797 0 R /F14 814 0 R /F30 811 0 R /F27 584 0 R >> +/ProcSet [ /PDF /Text ] >> -% 1271 0 obj +% 1267 0 obj +<< +/Type /Page +/Contents 1268 0 R +/Resources 1266 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1250 0 R +/Annots [ 1265 0 R ] +>> +% 1265 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [350.345 657.464 357.319 668.312] +/A << /S /GoTo /D (section.6) >> +>> +% 1269 0 obj +<< +/D [1267 0 R /XYZ 149.705 753.953 null] +>> +% 288 0 obj << -/Font << /F16 558 0 R /F8 561 0 R /F11 755 0 R /F10 771 0 R /F14 772 0 R /F7 770 0 R /F27 560 0 R /F30 769 0 R >> +/D [1267 0 R /XYZ 150.705 716.092 null] +>> +% 1266 0 obj +<< +/Font << /F16 582 0 R /F8 585 0 R >> /ProcSet [ /PDF /Text ] >> -% 1281 0 obj +% 1275 0 obj << /Type /Page -/Contents 1282 0 R -/Resources 1280 0 R +/Contents 1276 0 R +/Resources 1274 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1268 0 R -/Annots [ 1270 0 R 1278 0 R 1279 0 R ] +/Parent 1250 0 R +/Annots [ 1270 0 R 1271 0 R 1272 0 R ] >> % 1270 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [285.522 643.143 361.576 654.268] +/Rect [368.549 343.463 444.603 354.588] /A << /S /GoTo /D (vdata) >> >> -% 1278 0 obj +% 1271 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [123.806 543.516 199.86 554.641] -/A << /S /GoTo /D (vdata) >> +/Rect [325.411 331.785 337.366 342.633] +/A << /S /GoTo /D (table.17) >> >> -% 1279 0 obj +% 1272 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [422.94 543.516 434.896 554.641] -/A << /S /GoTo /D (table.17) >> +/Rect [294.721 264.029 361.779 275.154] +/A << /S /GoTo /D (descdata) >> >> -% 1283 0 obj +% 1277 0 obj +<< +/D [1275 0 R /XYZ 98.895 753.953 null] +>> +% 292 0 obj +<< +/D [1275 0 R /XYZ 99.895 716.092 null] +>> +% 1278 0 obj +<< +/D [1275 0 R /XYZ 270.132 514.036 null] +>> +% 1279 0 obj << -/D [1281 0 R /XYZ 98.895 753.953 null] +/D [1275 0 R /XYZ 99.895 482.745 null] >> % 1280 0 obj << -/Font << /F27 560 0 R /F8 561 0 R /F30 769 0 R /F11 755 0 R >> +/D [1275 0 R /XYZ 99.895 484.682 null] +>> +% 1281 0 obj +<< +/D [1275 0 R /XYZ 99.895 472.727 null] +>> +% 1274 0 obj +<< +/Font << /F16 582 0 R /F8 585 0 R /F11 797 0 R /F14 814 0 R /F27 584 0 R /F30 811 0 R >> /ProcSet [ /PDF /Text ] >> -% 1285 0 obj +% 1285 0 obj +<< +/Type /Page +/Contents 1286 0 R +/Resources 1284 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1250 0 R +/Annots [ 1273 0 R 1283 0 R ] +>> +% 1289 0 obj +<< +/Producer (GPL Ghostscript 9.22) +/CreationDate (D:20180323100645Z00'00') +/ModDate (D:20180323100645Z00'00') +>> +% 1290 0 obj +<< +/Type /ExtGState +/OPM 1 +>> +% 1291 0 obj +<< +/BaseFont /XYUGDR+Times-Roman +/FontDescriptor 1293 0 R +/Type /Font +/FirstChar 48 +/LastChar 57 +/Widths [ 500 500 500 500 500 500 500 500 500 500] +/Encoding /WinAnsiEncoding +/Subtype /Type1 +>> +% 1292 0 obj +<< +/BaseFont /XISTAL+Times-Bold +/FontDescriptor 1294 0 R +/Type /Font +/FirstChar 48 +/LastChar 80 +/Widths [ 500 500 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 611] +/Encoding /WinAnsiEncoding +/Subtype /Type1 +>> +% 1293 0 obj +<< +/Type /FontDescriptor +/FontName /XYUGDR+Times-Roman +/FontBBox [ 0 -14 476 688] +/Flags 65568 +/Ascent 688 +/CapHeight 688 +/Descent -14 +/ItalicAngle 0 +/StemV 71 +/MissingWidth 250 +/CharSet (/eight/five/four/nine/one/seven/six/three/two/zero) +/FontFile3 1295 0 R +>> +% 1294 0 obj +<< +/Type /FontDescriptor +/FontName /XISTAL+Times-Bold +/FontBBox [ 0 -13 600 688] +/Flags 65568 +/Ascent 688 +/CapHeight 676 +/Descent -13 +/ItalicAngle 0 +/StemV 90 +/MissingWidth 250 +/CharSet (/P/one/zero) +/FontFile3 1296 0 R +>> +% 1273 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [213.636 625.431 225.591 634.343] +/A << /S /GoTo /D (table.17) >> +>> +% 1283 0 obj << -/Type /Page -/Contents 1286 0 R -/Resources 1284 0 R -/MediaBox [0 0 595.276 841.89] -/Parent 1268 0 R +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [457.906 278.167 464.88 290.786] +/A << /S /GoTo /D (figure.7) >> >> % 1287 0 obj << /D [1285 0 R /XYZ 149.705 753.953 null] >> -% 284 0 obj -<< -/D [1285 0 R /XYZ 150.705 716.092 null] ->> -% 288 0 obj +% 1288 0 obj << -/D [1285 0 R /XYZ 150.705 696.263 null] +/D [1285 0 R /XYZ 283.692 317.353 null] >> % 1284 0 obj << -/Font << /F16 558 0 R /F30 769 0 R /F8 561 0 R /F27 560 0 R /F11 755 0 R /F14 772 0 R >> +/Font << /F27 584 0 R /F8 585 0 R /F11 797 0 R /F16 582 0 R /F30 811 0 R >> +/XObject << /Im3 1282 0 R >> /ProcSet [ /PDF /Text ] >> -% 1290 0 obj +% 1298 0 obj << /Type /Page -/Contents 1291 0 R -/Resources 1289 0 R +/Contents 1299 0 R +/Resources 1297 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1268 0 R -/Annots [ 1288 0 R ] ->> -% 1288 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [294.721 325.282 361.779 336.407] -/A << /S /GoTo /D (descdata) >> ->> -% 1292 0 obj -<< -/D [1290 0 R /XYZ 98.895 753.953 null] +/Parent 1302 0 R >> -% 1293 0 obj +% 1300 0 obj << -/D [1290 0 R /XYZ 99.895 234.372 null] +/D [1298 0 R /XYZ 98.895 753.953 null] >> -% 1289 0 obj +% 1297 0 obj << -/Font << /F27 560 0 R /F8 561 0 R /F30 769 0 R /F11 755 0 R /F16 558 0 R >> +/Font << /F46 1301 0 R /F8 585 0 R >> /ProcSet [ /PDF /Text ] >> -% 1296 0 obj +% 1307 0 obj << /Type /Page -/Contents 1297 0 R -/Resources 1295 0 R +/Contents 1308 0 R +/Resources 1306 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1268 0 R -/Annots [ 1294 0 R ] +/Parent 1302 0 R +/Annots [ 1303 0 R 1304 0 R 1305 0 R ] >> -% 1294 0 obj +% 1303 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [408.792 215.702 431.263 226.827] -/A << /S /GoTo /D (subsubsection.2.3.1) >> ->> -% 1298 0 obj -<< -/D [1296 0 R /XYZ 149.705 753.953 null] ->> -% 1299 0 obj -<< -/D [1296 0 R /XYZ 150.705 134.155 null] +/Rect [419.358 343.981 495.412 355.106] +/A << /S /GoTo /D (vdata) >> >> -% 1295 0 obj +% 1304 0 obj << -/Font << /F30 769 0 R /F8 561 0 R /F27 560 0 R /F14 772 0 R /F11 755 0 R /F10 771 0 R >> -/ProcSet [ /PDF /Text ] +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [376.221 332.303 388.176 343.151] +/A << /S /GoTo /D (table.18) >> >> -% 1301 0 obj +% 1305 0 obj << -/Type /Page -/Contents 1302 0 R -/Resources 1300 0 R -/MediaBox [0 0 595.276 841.89] -/Parent 1309 0 R +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [345.53 264.991 412.588 276.116] +/A << /S /GoTo /D (descdata) >> >> -% 1303 0 obj +% 1309 0 obj << -/D [1301 0 R /XYZ 98.895 753.953 null] +/D [1307 0 R /XYZ 149.705 753.953 null] >> -% 1304 0 obj +% 296 0 obj << -/D [1301 0 R /XYZ 99.895 716.092 null] +/D [1307 0 R /XYZ 150.705 716.092 null] >> -% 1305 0 obj +% 1310 0 obj << -/D [1301 0 R /XYZ 99.895 688.251 null] +/D [1307 0 R /XYZ 320.941 511.222 null] >> -% 1306 0 obj +% 1311 0 obj << -/D [1301 0 R /XYZ 99.895 668.049 null] +/D [1307 0 R /XYZ 150.705 480.819 null] >> -% 1307 0 obj +% 1312 0 obj << -/D [1301 0 R /XYZ 99.895 626.428 null] +/D [1307 0 R /XYZ 150.705 482.756 null] >> -% 1308 0 obj +% 1313 0 obj << -/D [1301 0 R /XYZ 99.895 568.7 null] +/D [1307 0 R /XYZ 150.705 470.801 null] >> -% 1300 0 obj +% 1306 0 obj << -/Font << /F8 561 0 R /F30 769 0 R >> +/Font << /F16 582 0 R /F8 585 0 R /F11 797 0 R /F14 814 0 R /F10 813 0 R /F27 584 0 R /F30 811 0 R >> /ProcSet [ /PDF /Text ] >> -% 1312 0 obj +% 1319 0 obj << /Type /Page -/Contents 1313 0 R -/Resources 1311 0 R +/Contents 1320 0 R +/Resources 1318 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1309 0 R -/Annots [ 1310 0 R ] +/Parent 1302 0 R +/Annots [ 1314 0 R 1316 0 R 1317 0 R ] >> -% 1310 0 obj +% 1314 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [345.53 117.115 412.588 128.24] -/A << /S /GoTo /D (descdata) >> ->> -% 1314 0 obj -<< -/D [1312 0 R /XYZ 149.705 753.953 null] ->> -% 292 0 obj -<< -/D [1312 0 R /XYZ 150.705 720.077 null] +/Rect [203.009 555.748 214.964 566.597] +/A << /S /GoTo /D (table.18) >> >> -% 1311 0 obj +% 1316 0 obj << -/Font << /F16 558 0 R /F30 769 0 R /F8 561 0 R /F11 755 0 R /F27 560 0 R >> -/ProcSet [ /PDF /Text ] +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [407.019 326.22 413.993 338.84] +/A << /S /GoTo /D (figure.8) >> >> % 1317 0 obj << -/Type /Page -/Contents 1318 0 R -/Resources 1316 0 R -/MediaBox [0 0 595.276 841.89] -/Parent 1309 0 R -/Annots [ 1315 0 R ] ->> -% 1315 0 obj -<< /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [274.574 402.324 297.045 413.172] -/A << /S /GoTo /D (subsubsection.2.3.1) >> +/Rect [306.759 302.697 313.733 313.546] +/A << /S /GoTo /D (figure.7) >> >> -% 1319 0 obj +% 1321 0 obj << -/D [1317 0 R /XYZ 98.895 753.953 null] +/D [1319 0 R /XYZ 98.895 753.953 null] >> -% 1320 0 obj +% 1322 0 obj << -/D [1317 0 R /XYZ 99.895 496.913 null] +/D [1319 0 R /XYZ 99.895 465.033 null] >> -% 1321 0 obj +% 1323 0 obj << -/D [1317 0 R /XYZ 99.895 475.051 null] +/D [1319 0 R /XYZ 99.895 431.215 null] >> -% 1322 0 obj +% 1324 0 obj << -/D [1317 0 R /XYZ 99.895 431.215 null] +/D [1319 0 R /XYZ 99.895 387.38 null] >> -% 1316 0 obj +% 1318 0 obj << -/Font << /F27 560 0 R /F8 561 0 R /F11 755 0 R /F16 558 0 R >> +/Font << /F27 584 0 R /F8 585 0 R /F11 797 0 R /F16 582 0 R /F10 813 0 R /F30 811 0 R >> /ProcSet [ /PDF /Text ] >> -% 1326 0 obj +% 1327 0 obj << /Type /Page -/Contents 1327 0 R -/Resources 1325 0 R +/Contents 1328 0 R +/Resources 1326 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1309 0 R -/Annots [ 1323 0 R 1324 0 R ] +/Parent 1302 0 R >> -% 1323 0 obj +% 1329 0 obj << -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [345.53 574.94 412.588 586.065] -/A << /S /GoTo /D (descdata) >> +/D [1327 0 R /XYZ 149.705 753.953 null] >> -% 1324 0 obj +% 1326 0 obj << -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [345.53 417.531 412.588 428.656] -/A << /S /GoTo /D (descdata) >> +/Font << /F31 817 0 R /F8 585 0 R >> +/ProcSet [ /PDF /Text ] >> -% 1328 0 obj +% 1331 0 obj << -/D [1326 0 R /XYZ 149.705 753.953 null] +/Type /Page +/Contents 1332 0 R +/Resources 1330 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1302 0 R >> -% 296 0 obj +% 1334 0 obj << -/D [1326 0 R /XYZ 150.705 720.077 null] +/Producer (GPL Ghostscript 9.22) +/CreationDate (D:20180323100658Z00'00') +/ModDate (D:20180323100658Z00'00') >> -% 1329 0 obj +% 1335 0 obj << -/D [1326 0 R /XYZ 150.705 327.092 null] +/Type /ExtGState +/OPM 1 >> -% 1325 0 obj +% 1336 0 obj << -/Font << /F16 558 0 R /F30 769 0 R /F27 560 0 R /F8 561 0 R >> -/ProcSet [ /PDF /Text ] +/BaseFont /XYUGDR+Times-Roman +/FontDescriptor 1338 0 R +/Type /Font +/FirstChar 48 +/LastChar 57 +/Widths [ 500 500 500 500 500 500 500 500 500 500] +/Encoding /WinAnsiEncoding +/Subtype /Type1 >> -% 1333 0 obj +% 1337 0 obj << -/Type /Page -/Contents 1334 0 R -/Resources 1332 0 R -/MediaBox [0 0 595.276 841.89] -/Parent 1309 0 R -/Annots [ 1330 0 R 1331 0 R ] +/BaseFont /XISTAL+Times-Bold +/FontDescriptor 1339 0 R +/Type /Font +/FirstChar 48 +/LastChar 80 +/Widths [ 500 500 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 611] +/Encoding /WinAnsiEncoding +/Subtype /Type1 >> -% 1330 0 obj +% 1338 0 obj << -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [294.721 574.94 361.779 586.065] -/A << /S /GoTo /D (descdata) >> +/Type /FontDescriptor +/FontName /XYUGDR+Times-Roman +/FontBBox [ 0 -14 476 688] +/Flags 65568 +/Ascent 688 +/CapHeight 688 +/Descent -14 +/ItalicAngle 0 +/StemV 71 +/MissingWidth 250 +/CharSet (/eight/five/four/nine/one/seven/six/three/two/zero) +/FontFile3 1340 0 R >> -% 1331 0 obj +% 1339 0 obj << -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [294.721 485.277 361.779 496.401] -/A << /S /GoTo /D (descdata) >> +/Type /FontDescriptor +/FontName /XISTAL+Times-Bold +/FontBBox [ 0 -13 600 688] +/Flags 65568 +/Ascent 688 +/CapHeight 676 +/Descent -13 +/ItalicAngle 0 +/StemV 90 +/MissingWidth 250 +/CharSet (/P/one/zero) +/FontFile3 1341 0 R >> -% 1335 0 obj +% 1333 0 obj << -/D [1333 0 R /XYZ 98.895 753.953 null] +/D [1331 0 R /XYZ 98.895 753.953 null] >> -% 300 0 obj +% 1325 0 obj << -/D [1333 0 R /XYZ 99.895 720.077 null] +/D [1331 0 R /XYZ 232.883 272.519 null] >> -% 1332 0 obj +% 1330 0 obj << -/Font << /F16 558 0 R /F30 769 0 R /F27 560 0 R /F8 561 0 R >> +/Font << /F8 585 0 R >> +/XObject << /Im4 1315 0 R >> /ProcSet [ /PDF /Text ] >> -% 1338 0 obj +% 1346 0 obj << /Type /Page -/Contents 1339 0 R -/Resources 1337 0 R +/Contents 1347 0 R +/Resources 1345 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1309 0 R -/Annots [ 1336 0 R ] +/Parent 1302 0 R +/Annots [ 1342 0 R 1343 0 R 1344 0 R ] >> -% 1336 0 obj +% 1342 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [345.53 574.94 412.588 586.065] -/A << /S /GoTo /D (descdata) >> +/Rect [419.358 295.182 495.412 306.307] +/A << /S /GoTo /D (vdata) >> >> -% 1340 0 obj +% 1343 0 obj << -/D [1338 0 R /XYZ 149.705 753.953 null] +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [256.807 285.441 268.762 294.352] +/A << /S /GoTo /D (table.19) >> >> -% 304 0 obj +% 1344 0 obj << -/D [1338 0 R /XYZ 150.705 720.077 null] +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [345.53 215.901 412.588 227.026] +/A << /S /GoTo /D (descdata) >> >> -% 1337 0 obj +% 1348 0 obj << -/Font << /F16 558 0 R /F30 769 0 R /F27 560 0 R /F8 561 0 R >> -/ProcSet [ /PDF /Text ] +/D [1346 0 R /XYZ 149.705 753.953 null] +>> + +endstream +endobj +1356 0 obj +<< +/Length 1455 >> +stream +0 g 0 G +0 g 0 G +0 g 0 G +BT +/F27 9.9626 Tf 99.895 706.129 Td [(glob)]TJ +ET +q +1 0 0 1 121.587 706.328 cm +[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S +Q +BT +/F27 9.9626 Tf 125.024 706.129 Td [(x)]TJ +0 g 0 G +/F8 9.9626 Tf 11.028 0 Td [(The)-333(arra)27(y)-333(where)-333(the)-334(lo)-27(cal)-334(parts)-333(m)28(ust)-334(b)-27(e)-334(gathered.)]TJ -11.25 -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 [(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 [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(rank)-333(one)-333(or)-334(t)28(w)28(o)-334(arra)28(y)-333(with)-333(the)]TJ/F30 9.9626 Tf 204.4 0 Td [(ALLOCATABLE)]TJ/F8 9.9626 Tf 60.855 0 Td [(attribute.)]TJ +0 g 0 G +/F27 9.9626 Tf -290.162 -19.925 Td [(info)]TJ +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 [(67)]TJ +0 g 0 G +ET endstream endobj -1345 0 obj +1363 0 obj << -/Length 5927 +/Length 7813 >> stream 0 g 0 G 0 g 0 G BT -/F16 11.9552 Tf 99.895 706.129 Td [(psb)]TJ +/F16 11.9552 Tf 150.705 706.129 Td [(5.4)-1125(psb)]TJ +ET +q +1 0 0 1 202.396 706.328 cm +[]0 d 0 J 0.398 w 0 0 m 4.035 0 l S +Q +BT +/F16 11.9552 Tf 206.431 706.129 Td [(scatter)-375(|)-375(Scatter)-375(Global)-375(Dense)-375(Matrix)]TJ/F8 9.9626 Tf -55.726 -19.28 Td [(These)-315(subroutines)-315(scatters)-315(the)-315(p)-28(ortions)-315(of)-315(global)-315(dense)-315(matrix)-315(o)28(wned)-315(b)27(y)-315(a)-315(pro-)]TJ 0 -11.955 Td [(cess)-333(to)-334(all)-333(the)-333(pro)-28(cesses)-334(in)-333(the)-333(pro)-28(cesses)-334(grid.)]TJ/F11 9.9626 Tf 119.021 -25.291 Td [(l)-20(oc)]TJ +ET +q +1 0 0 1 282.633 649.802 cm +[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +Q +BT +/F11 9.9626 Tf 285.622 649.603 Td [(x)]TJ/F10 6.9738 Tf 5.694 -1.494 Td [(i)]TJ/F14 9.9626 Tf 6.084 1.494 Td [(\040)]TJ/F11 9.9626 Tf 12.73 0 Td [(scatter)]TJ/F8 9.9626 Tf 30.853 0 Td [(\050)]TJ/F11 9.9626 Tf 3.874 0 Td [(g)-36(l)-20(ob)]TJ +ET +q +1 0 0 1 362.838 649.802 cm +[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +Q +BT +/F11 9.9626 Tf 365.827 649.603 Td [(x)]TJ/F8 9.9626 Tf 5.693 0 Td [(\051)]TJ -220.815 -22.875 Td [(where:)]TJ +0 g 0 G +/F11 9.9626 Tf 0 -21.361 Td [(g)-36(l)-19(o)-1(b)]TJ +ET +q +1 0 0 1 168.775 605.567 cm +[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S +Q +BT +/F11 9.9626 Tf 172.212 605.367 Td [(x)]TJ +0 g 0 G +/F8 9.9626 Tf 10.675 0 Td [(is)-333(the)-334(global)-333(matrix)]TJ/F11 9.9626 Tf 88.917 0 Td [(g)-36(l)-20(ob)]TJ +ET +q +1 0 0 1 289.785 605.567 cm +[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +Q +BT +/F11 9.9626 Tf 292.773 605.367 Td [(x)]TJ/F7 6.9738 Tf 5.694 -1.494 Td [(1:)]TJ/F10 6.9738 Tf 6.227 0 Td [(m;)]TJ/F7 6.9738 Tf 9.436 0 Td [(1:)]TJ/F10 6.9738 Tf 6.226 0 Td [(n)]TJ +0 g 0 G +/F11 9.9626 Tf -169.651 -20.345 Td [(l)-20(oc)]TJ ET q -1 0 0 1 120.951 706.328 cm -[]0 d 0 J 0.398 w 0 0 m 4.035 0 l S +1 0 0 1 163.701 583.727 cm +[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F16 11.9552 Tf 124.986 706.129 Td [(cdbldext)-282(|)-283(Build)-282(an)-282(ex)-1(tended)-282(comm)31(unication)-282(descrip-)]TJ -25.091 -13.948 Td [(tor)]TJ +/F11 9.9626 Tf 167.139 583.528 Td [(x)]TJ/F10 6.9738 Tf 5.693 -1.494 Td [(i)]TJ 0 g 0 G +/F8 9.9626 Tf 8.299 1.494 Td [(is)-333(the)-334(lo)-27(cal)-334(p)-28(or)1(tion)-334(of)-333(global)-333(dense)-334(matrix)-333(on)-333(pro)-28(cess)]TJ/F11 9.9626 Tf 234.703 0 Td [(i)]TJ/F8 9.9626 Tf 3.433 0 Td [(.)]TJ 0 g 0 G -/F30 9.9626 Tf 0 -19.114 Td [(call)-525(psb_cdbldext\050a,desc_a,nl,desc_out,)-525(info,)-525(extype\051)]TJ/F8 9.9626 Tf 14.944 -23.476 Td [(This)-298(subroutine)-297(builds)-298(an)-297(extended)-298(comm)28(unication)-298(descriptor,)-305(based)-297(on)-298(the)]TJ -14.944 -11.955 Td [(input)-389(descriptor)]TJ/F30 9.9626 Tf 74.288 0 Td [(desc_a)]TJ/F8 9.9626 Tf 35.261 0 Td [(and)-389(on)-390(the)-389(stencil)-389(s)-1(p)-27(eci\014ed)-390(through)-389(the)-389(input)-390(sparse)]TJ -109.549 -11.956 Td [(matrix)]TJ/F30 9.9626 Tf 32.407 0 Td [(a)]TJ/F8 9.9626 Tf 5.23 0 Td [(.)]TJ +/F11 9.9626 Tf -268.562 -21.839 Td [(scatter)]TJ 0 g 0 G -/F27 9.9626 Tf -37.637 -21.094 Td [(T)32(yp)-32(e:)]TJ +/F8 9.9626 Tf 35.834 0 Td [(is)-333(the)-334(scatter)-333(function.)]TJ 0 g 0 G -/F8 9.9626 Tf 33.797 0 Td [(Sync)28(hronous.)]TJ 0 g 0 G -/F27 9.9626 Tf -33.797 -21.483 Td [(On)-383(En)32(try)]TJ 0 g 0 G +ET +q +1 0 0 1 228.797 539.65 cm +[]0 d 0 J 0.398 w 0 0 m 187.526 0 l S +Q +BT +/F11 9.9626 Tf 234.775 531.082 Td [(x)]TJ/F10 6.9738 Tf 5.694 -1.494 Td [(i)]TJ/F11 9.9626 Tf 3.317 1.494 Td [(;)-167(y)]TJ/F27 9.9626 Tf 111.399 0 Td [(Subroutine)]TJ +ET +q +1 0 0 1 228.797 527.296 cm +[]0 d 0 J 0.398 w 0 0 m 187.526 0 l S +Q +BT +/F8 9.9626 Tf 234.775 518.729 Td [(In)28(teger)-9028(psb)]TJ +ET +q +1 0 0 1 370.782 518.928 cm +[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +Q +BT +/F8 9.9626 Tf 373.771 518.729 Td [(scatter)]TJ -138.996 -11.956 Td [(Short)-333(Precision)-334(Real)-3102(psb)]TJ +ET +q +1 0 0 1 370.782 506.973 cm +[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +Q +BT +/F8 9.9626 Tf 373.771 506.773 Td [(scatter)]TJ -138.996 -11.955 Td [(Long)-333(Precision)-334(Real)-3314(psb)]TJ +ET +q +1 0 0 1 370.782 495.017 cm +[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +Q +BT +/F8 9.9626 Tf 373.771 494.818 Td [(scatter)]TJ -138.996 -11.955 Td [(Short)-333(Precision)-334(Complex)-1200(psb)]TJ +ET +q +1 0 0 1 370.782 483.062 cm +[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +Q +BT +/F8 9.9626 Tf 373.771 482.863 Td [(scatter)]TJ -138.996 -11.955 Td [(Long)-333(Precision)-334(Complex)-1411(psb)]TJ +ET +q +1 0 0 1 370.782 471.107 cm +[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +Q +BT +/F8 9.9626 Tf 373.771 470.908 Td [(scatter)]TJ +ET +q +1 0 0 1 228.797 467.122 cm +[]0 d 0 J 0.398 w 0 0 m 187.526 0 l S +Q 0 g 0 G - 0 -21.484 Td [(a)]TJ +BT +/F8 9.9626 Tf 276.386 439.083 Td [(T)83(able)-333(20:)-444(Data)-334(t)28(yp)-28(es)]TJ 0 g 0 G -/F8 9.9626 Tf 10.551 0 Td [(A)-333(sparse)-334(matrix)-333(Scop)-28(e:)]TJ/F27 9.9626 Tf 101.176 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf 23.073 0 Td [(.)]TJ -109.893 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.183 0 Td [(required)]TJ/F8 9.9626 Tf 41.899 0 Td [(.)]TJ -67.082 -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(t)27(yp)-27(e.)]TJ 0 g 0 G -/F27 9.9626 Tf -24.907 -21.484 Td [(desc)]TJ +/F27 9.9626 Tf -124.304 -33.261 Td [(c)-138(a)-138(l)-139(l)]TJ/F8 9.9626 Tf 29.99 0 Td [(p)-148(s)-149(b)]TJ ET q -1 0 0 1 121.81 504.47 cm -[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S +1 0 0 1 202.107 406.021 cm +[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F27 9.9626 Tf 125.247 504.27 Td [(a)]TJ -0 g 0 G -/F8 9.9626 Tf 10.551 0 Td [(the)-333(comm)27(unication)-333(descriptor.)]TJ -10.996 -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.183 0 Td [(required)]TJ/F8 9.9626 Tf 41.899 0 Td [(.)]TJ -67.082 -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 +/F8 9.9626 Tf 206.575 405.822 Td [(s)-149(c)-148(a)-149(t)-148(t)-148(e)-149(r)-254(\050)-215(g)-110(l)-110(o)-110(b)]TJ ET q -1 0 0 1 312.036 456.649 cm -[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +1 0 0 1 276.66 406.021 cm +[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F30 9.9626 Tf 315.174 456.45 Td [(Tspmat)]TJ +/F8 9.9626 Tf 280.744 405.822 Td [(x)-381(,)-888(l)-127(o)-127(c)]TJ ET q -1 0 0 1 347.183 456.649 cm -[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +1 0 0 1 317.987 406.021 cm +[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F30 9.9626 Tf 350.322 456.45 Td [(type)]TJ +/F8 9.9626 Tf 322.243 405.822 Td [(x)-415(,)-874(d)-113(e)-112(s)-113(c)]TJ +ET +q +1 0 0 1 366.519 406.021 cm +[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +Q +BT +/F8 9.9626 Tf 370.63 405.822 Td [(a)-386(,)-888(i)-127(n)-127(f)-127(o)-415(,)-864(r)-103(o)-103(o)-104(t)-367(,)-808(m)-47(o)-46(l)-47(d)-152(\051)]TJ 0 g 0 G -/F8 9.9626 Tf 20.921 0 Td [(.)]TJ 0 g 0 G -/F27 9.9626 Tf -271.348 -21.484 Td [(nl)]TJ 0 g 0 G -/F8 9.9626 Tf 14.529 0 Td [(the)-333(n)27(u)1(m)27(b)-27(e)-1(r)-333(of)-333(additional)-333(la)28(y)27(ers)-333(desired.)]TJ 10.378 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 27.951 0 Td [(global)]TJ/F8 9.9626 Tf 29.756 0 Td [(.)]TJ -57.707 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.183 0 Td [(required)]TJ/F8 9.9626 Tf 41.899 0 Td [(.)]TJ -67.082 -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(an)-333(in)28(teger)-333(v)55(alue)]TJ/F11 9.9626 Tf 130.428 0 Td [(nl)]TJ/F14 9.9626 Tf 11.916 0 Td [(\025)]TJ/F8 9.9626 Tf 10.516 0 Td [(0.)]TJ +/F27 9.9626 Tf -219.925 -30.766 Td [(T)32(yp)-32(e:)]TJ 0 g 0 G -/F27 9.9626 Tf -177.767 -21.483 Td [(ext)32(yp)-32(e)]TJ +/F8 9.9626 Tf 33.797 0 Td [(Sync)28(hronous.)]TJ 0 g 0 G -/F8 9.9626 Tf 38.398 0 Td [(the)-333(kind)-334(of)-333(estension)-333(required.)]TJ -13.491 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 27.951 0 Td [(global)]TJ/F8 9.9626 Tf 29.756 0 Td [(.)]TJ -57.707 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.183 0 Td [(optional)]TJ/F8 9.9626 Tf 44.396 0 Td [(.)]TJ -69.579 -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)-419(as:)-616(an)-420(in)28(teger)-419(v)55(alue)]TJ/F30 9.9626 Tf 135.566 0 Td [(psb_ovt_xhal_)]TJ/F8 9.9626 Tf 67.994 0 Td [(,)]TJ/F30 9.9626 Tf 7.159 0 Td [(psb_ovt_asov_)]TJ/F8 9.9626 Tf 67.995 0 Td [(,)-441(default:)]TJ/F30 9.9626 Tf -278.714 -11.955 Td [(psb_ovt_xhal_)]TJ +/F27 9.9626 Tf -33.797 -21.84 Td [(On)-383(En)32(try)]TJ 0 g 0 G -/F27 9.9626 Tf -24.907 -23.476 Td [(On)-383(Return)]TJ 0 g 0 G + 0 -21.839 Td [(glob)]TJ +ET +q +1 0 0 1 172.397 331.576 cm +[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S +Q +BT +/F27 9.9626 Tf 175.834 331.377 Td [(x)]TJ +0 g 0 G +/F8 9.9626 Tf 11.028 0 Td [(The)-333(arra)27(y)-333(that)-333(m)28(ust)-334(b)-27(e)-334(scattered)-333(in)28(to)-334(lo)-28(cal)-333(pieces.)]TJ -11.251 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(global)]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(rank)-333(one)-334(or)-333(t)28(w)28(o)-334(arra)28(y)84(.)]TJ 0 g 0 G - 0 -21.484 Td [(desc)]TJ +/F27 9.9626 Tf -24.906 -21.839 Td [(desc)]TJ ET q -1 0 0 1 121.81 261.126 cm +1 0 0 1 172.619 261.916 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 125.247 260.927 Td [(out)]TJ +/F27 9.9626 Tf 176.057 261.717 Td [(a)]TJ 0 g 0 G -/F8 9.9626 Tf 21.53 0 Td [(the)-333(extended)-334(comm)28(unication)-333(descriptor.)]TJ -21.975 -11.956 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.183 0 Td [(required)]TJ/F8 9.9626 Tf 41.899 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.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.55 0 Td [(con)28(tains)-334(data)-333(structures)-333(for)-333(c)-1(omm)28(unications.)]TJ -10.996 -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 312.036 213.305 cm +1 0 0 1 362.845 214.095 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 315.174 213.106 Td [(desc)]TJ +/F30 9.9626 Tf 365.983 213.896 Td [(desc)]TJ ET q -1 0 0 1 336.723 213.305 cm +1 0 0 1 387.532 214.095 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 339.861 213.106 Td [(type)]TJ +/F30 9.9626 Tf 390.67 213.896 Td [(type)]TJ 0 g 0 G -/F8 9.9626 Tf 20.921 0 Td [(.)]TJ +/F8 9.9626 Tf 20.922 0 Td [(.)]TJ 0 g 0 G -/F27 9.9626 Tf -260.887 -21.484 Td [(info)]TJ +/F27 9.9626 Tf -260.887 -21.839 Td [(ro)-32(ot)]TJ 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/F16 11.9552 Tf -24.907 -23.476 Td [(Notes)]TJ +/F8 9.9626 Tf 25.93 0 Td [(The)-420(pro)-27(ce)-1(ss)-419(that)-420(holds)-419(the)-420(global)-420(cop)28(y)83(.)-703(If)]TJ/F11 9.9626 Tf 194.21 0 Td [(r)-28(oot)]TJ/F8 9.9626 Tf 22.228 0 Td [(=)]TJ/F14 9.9626 Tf 11.949 0 Td [(\000)]TJ/F8 9.9626 Tf 7.749 0 Td [(1)-420(all)-419(the)-420(pro)-28(cesses)]TJ -237.16 -11.956 Td [(ha)28(v)28(e)-334(a)-333(cop)28(y)-334(of)-333(the)-333(global)-334(v)28(ector.)]TJ 0 -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 [(optional)]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.547 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-344(as)-1(:)-467(an)-344(in)28(tege)-1(r)-344(v)55(ariabl)1(e)]TJ/F14 9.9626 Tf 142.757 0 Td [(\000)]TJ/F8 9.9626 Tf 7.749 0 Td [(1)]TJ/F14 9.9626 Tf 7.937 0 Td [(\024)]TJ/F11 9.9626 Tf 10.705 0 Td [(r)-28(oot)]TJ/F14 9.9626 Tf 20.983 0 Td [(\024)]TJ/F11 9.9626 Tf 10.704 0 Td [(np)]TJ/F14 9.9626 Tf 13.282 0 Td [(\000)]TJ/F8 9.9626 Tf 10.038 0 Td [(1,)-347(default)]TJ/F30 9.9626 Tf 44.809 0 Td [(psb_root_)]TJ/F8 9.9626 Tf 47.073 0 Td [(,)]TJ -316.037 -11.955 Td [(i.e.)-444(pro)-28(cess)-334(0.)]TJ 0 g 0 G -/F8 9.9626 Tf 166.875 -29.888 Td [(73)]TJ + 141.968 -29.888 Td [(68)]TJ 0 g 0 G ET endstream endobj -1351 0 obj +1372 0 obj << -/Length 1587 +/Length 4181 >> stream 0 g 0 G 0 g 0 G 0 g 0 G BT -/F8 9.9626 Tf 162.881 706.129 Td [(1.)]TJ -0 g 0 G - [-500(Sp)-28(ecifying)]TJ/F30 9.9626 Tf 60.092 0 Td [(psb_ovt_xhal_)]TJ/F8 9.9626 Tf 70.801 0 Td [(for)-282(the)]TJ/F30 9.9626 Tf 31.376 0 Td [(extype)]TJ/F8 9.9626 Tf 34.189 0 Td [(argumen)28(t)-282(the)-282(u)1(s)-1(er)-281(will)-282(obtain)-281(a)]TJ -183.728 -11.955 Td [(descriptor)-258(for)-257(a)-258(domain)-257(partition)-258(in)-257(whic)28(h)-258(the)-257(additional)-258(la)28(y)28(ers)-258(are)-257(fetc)27(hed)]TJ 0 -11.955 Td [(as)-415(part)-415(of)-415(an)-415(\050extended\051)-415(halo;)-456(ho)28(w)27(ev)28(er)-415(the)-415(index-to-pro)-28(cess)-415(mapping)-415(is)]TJ 0 -11.956 Td [(iden)28(tical)-334(to)-333(that)-333(of)-333(the)-334(base)-333(descriptor;)]TJ -0 g 0 G - -12.73 -19.925 Td [(2.)]TJ -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.108 0 Td [(extype)]TJ/F8 9.9626 Tf 35.053 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)-28(osition:)-694(the)-458(additional)-458(la)27(y)28(er)-458(is)]TJ 0 -11.955 Td [(aggregated)-413(to)-413(the)-414(l)1(o)-28(cal)-413(sub)-28(domain)-413(\050and)-413(th)27(u)1(s)-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(ond)-333(the)-333(last)-334(ad)1(ditional)-334(la)28(y)28(er)-333(is)-334(formed.)]TJ -0 g 0 G - 141.968 -524.035 Td [(74)]TJ +/F27 9.9626 Tf 99.895 706.129 Td [(mold)]TJ 0 g 0 G +/F8 9.9626 Tf 29.805 0 Td [(The)-333(desired)-334(dynamic)-333(t)28(yp)-28(e)-333(for)-334(the)-333(in)28(ternal)-333(v)27(ector)-333(storage.)]TJ -4.898 -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 [(optional)]TJ/F8 9.9626 Tf 40.577 0 Td [(.)]TJ -70.188 -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)-273(as:)-414(an)-274(ob)-55(ject)-273(of)-274(a)-273(class)-273(deriv)28(ed)-274(from)]TJ/F30 9.9626 Tf 198.26 0 Td [(psb)]TJ ET - -endstream -endobj -1359 0 obj -<< -/Length 4887 ->> -stream -0 g 0 G -0 g 0 G +q +1 0 0 1 339.381 658.507 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +Q BT -/F16 11.9552 Tf 99.895 706.129 Td [(psb)]TJ +/F30 9.9626 Tf 342.519 658.308 Td [(T)]TJ ET q -1 0 0 1 120.951 706.328 cm -[]0 d 0 J 0.398 w 0 0 m 4.035 0 l S +1 0 0 1 348.377 658.507 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F16 11.9552 Tf 124.986 706.129 Td [(spall)-375(|)-375(Allo)-31(cates)-375(a)-375(sparse)-375(matrix)]TJ -0 g 0 G -0 g 0 G -/F30 9.9626 Tf -25.091 -18.389 Td [(call)-525(psb_spall\050a,)-525(desc_a,)-525(info,)-525(nnz\051)]TJ -0 g 0 G -/F27 9.9626 Tf 0 -21.918 Td [(T)32(yp)-32(e:)]TJ +/F30 9.9626 Tf 351.515 658.308 Td [(base)]TJ +ET +q +1 0 0 1 373.064 658.507 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +Q +BT +/F30 9.9626 Tf 376.202 658.308 Td [(vect)]TJ +ET +q +1 0 0 1 397.751 658.507 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +Q +BT +/F30 9.9626 Tf 400.89 658.308 Td [(type)]TJ/F8 9.9626 Tf 20.921 0 Td [(;)-293(this)]TJ -297.009 -11.955 Td [(is)-333(only)-334(allo)28(w)28(ed)-333(when)-334(lo)-27(c)]TJ +ET +q +1 0 0 1 231.17 646.552 cm +[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +Q +BT +/F8 9.9626 Tf 234.159 646.353 Td [(x)-333(is)-334(of)-333(t)28(yp)-28(e)]TJ +0 0 1 rg 0 0 1 RG +/F30 9.9626 Tf 52.359 0 Td [(psb)]TJ +ET +q +1 0 0 1 302.837 646.552 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +Q +BT +/F30 9.9626 Tf 305.975 646.353 Td [(T)]TJ +ET +q +1 0 0 1 311.833 646.552 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +Q +BT +/F30 9.9626 Tf 314.971 646.353 Td [(vect)]TJ +ET +q +1 0 0 1 336.52 646.552 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +Q +BT +/F30 9.9626 Tf 339.658 646.353 Td [(type)]TJ 0 g 0 G -/F8 9.9626 Tf 33.797 0 Td [(Sync)28(hronous.)]TJ +/F8 9.9626 Tf 20.922 0 Td [(.)]TJ 0 g 0 G -/F27 9.9626 Tf -33.797 -19.926 Td [(On)-383(En)32(try)]TJ +/F27 9.9626 Tf -260.685 -19.925 Td [(On)-383(Return)]TJ 0 g 0 G 0 g 0 G - 0 -19.925 Td [(desc)]TJ + 0 -19.926 Td [(lo)-32(c)]TJ ET q -1 0 0 1 121.81 626.17 cm +1 0 0 1 114.904 606.702 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 125.247 625.971 Td [(a)]TJ +/F27 9.9626 Tf 118.341 606.502 Td [(x)]TJ 0 g 0 G -/F8 9.9626 Tf 10.551 0 Td [(the)-333(comm)27(unication)-333(descriptor.)]TJ -10.996 -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.183 0 Td [(required)]TJ/F8 9.9626 Tf 41.899 0 Td [(.)]TJ -67.082 -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 +/F8 9.9626 Tf 11.028 0 Td [(the)-333(lo)-28(cal)-333(p)-28(ortion)-333(of)-334(global)-333(dense)-333(matrix)]TJ/F11 9.9626 Tf 176.118 0 Td [(g)-36(l)-19(o)-1(b)]TJ ET q -1 0 0 1 312.036 578.35 cm -[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +1 0 0 1 323.467 606.702 cm +[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F30 9.9626 Tf 315.174 578.15 Td [(desc)]TJ +/F11 9.9626 Tf 326.456 606.502 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(.)]TJ -207.348 -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 [(Sp)-28(eci\014ed)-244(as:)-400(a)-244(ran)1(k)-244(one)-244(or)-244(t)27(w)28(o)-244(ALLOCA)83(T)84(ABLE)-244(arra)28(y)-244(or)-244(an)-244(ob)-56(ject)-244(of)-244(t)28(yp)-28(e)]TJ +0 0 1 rg 0 0 1 RG +/F30 9.9626 Tf 0 -11.955 Td [(psb)]TJ ET q -1 0 0 1 336.723 578.35 cm +1 0 0 1 141.121 546.926 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 339.861 578.15 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.925 Td [(nnz)]TJ -0 g 0 G -/F8 9.9626 Tf 22.804 0 Td [(An)-309(estimate)-309(of)-308(the)-309(n)28(um)28(b)-28(er)-309(of)-309(nonzero)-27(es)-309(in)-309(the)-309(lo)-28(cal)-308(part)-309(of)-309(the)-308(as)-1(sem)28(bled)]TJ 2.103 -11.955 Td [(matrix.)]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.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(optional)]TJ/F8 9.9626 Tf 40.577 0 Td [(.)]TJ -70.188 -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(alue.)]TJ -0 g 0 G -/F27 9.9626 Tf -24.907 -21.918 Td [(On)-383(Return)]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(matrix)-334(to)-333(b)-28(e)-333(allo)-28(cated.)]TJ 14.356 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 27.951 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -27.951 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.183 0 Td [(required)]TJ/F8 9.9626 Tf -25.183 -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 [(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 +/F30 9.9626 Tf 144.259 546.727 Td [(T)]TJ ET q -1 0 0 1 312.036 408.985 cm +1 0 0 1 150.117 546.926 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 315.174 408.786 Td [(Tspmat)]TJ +/F30 9.9626 Tf 153.255 546.727 Td [(vect)]TJ ET q -1 0 0 1 347.183 408.985 cm +1 0 0 1 174.804 546.926 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 350.322 408.786 Td [(type)]TJ -0 g 0 G -/F8 9.9626 Tf 20.921 0 Td [(.)]TJ -0 g 0 G -/F27 9.9626 Tf -271.348 -19.926 Td [(info)]TJ -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/F16 11.9552 Tf -24.907 -21.918 Td [(Notes)]TJ -0 g 0 G -/F8 9.9626 Tf 12.177 -19.925 Td [(1.)]TJ -0 g 0 G - [-500(On)-333(exit)-334(from)-333(this)-333(routine)-333(the)-334(sparse)-333(matrix)-333(is)-334(in)-333(the)-333(build)-334(state.)]TJ +/F30 9.9626 Tf 177.942 546.727 Td [(type)]TJ 0 g 0 G - 0 -19.926 Td [(2.)]TJ +/F8 9.9626 Tf 24.242 0 Td [(con)28(taining)-333(n)27(um)28(b)-28(ers)-333(of)-333(the)-334(t)28(yp)-28(e)-333(indicated)-333(in)-333(T)83(able)]TJ +0 0 1 rg 0 0 1 RG + [-334(20)]TJ 0 g 0 G - [-500(The)-333(descriptor)-334(ma)28(y)-333(b)-28(e)-333(in)-334(either)-333(the)-333(build)-333(or)-334(assem)28(bled)-333(state.)]TJ + [(.)]TJ 0 g 0 G - 0 -19.925 Td [(3.)]TJ +/F27 9.9626 Tf -102.289 -19.926 Td [(info)]TJ 0 g 0 G - [-500(Pro)28(viding)-307(a)-308(go)-27(o)-28(d)-307(es)-1(timate)-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.092 0 Td [(in)-307(the)-308(assem-)]TJ -261.65 -11.955 Td [(bled)-401(m)-1(atr)1(ix)-402(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 +/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 -133.042 Td [(75)]TJ + 141.968 -388.543 Td [(69)]TJ 0 g 0 G ET endstream endobj -1367 0 obj +1376 0 obj << -/Length 5725 +/Length 6550 >> stream 0 g 0 G 0 g 0 G BT -/F16 11.9552 Tf 150.705 706.129 Td [(psb)]TJ +/F16 14.3462 Tf 150.705 706.129 Td [(6)-1125(Data)-375(managemen)31(t)-375(routines)]TJ/F16 11.9552 Tf 0 -23.814 Td [(6.1)-1125(psb)]TJ ET q -1 0 0 1 171.761 706.328 cm +1 0 0 1 202.396 682.515 cm []0 d 0 J 0.398 w 0 0 m 4.035 0 l S Q BT -/F16 11.9552 Tf 175.796 706.129 Td [(spins)-321(|)-322(Insert)-321(a)-321(set)-321(of)-322(co)-31(e\016cien)31(ts)-321(in)31(to)-321(a)-321(sparse)-321(matrix)]TJ +/F16 11.9552 Tf 206.431 682.315 Td [(cdall)-375(|)-375(Allo)-31(cates)-375(a)-375(comm)31(unication)-375(descriptor)]TJ 0 g 0 G 0 g 0 G -/F30 9.9626 Tf -25.091 -19.775 Td [(call)-525(psb_spins\050nz,)-525(ia,)-525(ja,)-525(val,)-525(a,)-525(desc_a,)-525(info)-525([,local]\051)]TJ 0 -11.955 Td [(call)-525(psb_spins\050nr,)-525(irw,)-525(irp,)-525(ja,)-525(val,)-525(a,)-525(desc_a,)-525(info)-525([,local]\051)]TJ +/F30 9.9626 Tf -55.726 -18.389 Td [(call)-525(psb_cdall\050icontxt,)-525(desc_a,)-525(info,mg=mg,parts=parts\051)]TJ 0 -11.955 Td [(call)-525(psb_cdall\050icontxt,)-525(desc_a,)-525(info,vg=vg,[mg=mg,flag=flag]\051)]TJ 0 -11.955 Td [(call)-525(psb_cdall\050icontxt,)-525(desc_a,)-525(info,vl=vl,[nl=nl,globalcheck=.false.,lidx=lidx]\051)]TJ 0 -11.955 Td [(call)-525(psb_cdall\050icontxt,)-525(desc_a,)-525(info,nl=nl\051)]TJ 0 -11.956 Td [(call)-525(psb_cdall\050icontxt,)-525(desc_a,)-525(info,mg=mg,repl=.true.\051)]TJ/F8 9.9626 Tf 14.944 -20.107 Td [(This)-314(subroutine)-314(initializes)-315(th)1(e)-315(comm)28(unication)-314(descriptor)-314(ass)-1(o)-27(ciated)-315(with)-314(an)]TJ -14.944 -11.955 Td [(index)-326(space.)-442(One)-326(of)-326(the)-327(op)1(tional)-327(argu)1(m)-1(en)28(ts)]TJ/F30 9.9626 Tf 193.679 0 Td [(parts)]TJ/F8 9.9626 Tf 26.152 0 Td [(,)]TJ/F30 9.9626 Tf 6.031 0 Td [(vg)]TJ/F8 9.9626 Tf 10.461 0 Td [(,)]TJ/F30 9.9626 Tf 6.031 0 Td [(vl)]TJ/F8 9.9626 Tf 10.46 0 Td [(,)]TJ/F30 9.9626 Tf 6.031 0 Td [(nl)]TJ/F8 9.9626 Tf 13.71 0 Td [(or)]TJ/F30 9.9626 Tf 12.133 0 Td [(repl)]TJ/F8 9.9626 Tf 24.17 0 Td [(m)28(ust)-326(b)-28(e)]TJ -308.858 -11.955 Td [(sp)-28(eci\014ed,)-333(thereb)28(y)-334(c)28(ho)-28(osing)-333(the)-333(sp)-28(eci\014c)-333(initialization)-334(strategy)84(.)]TJ 0 g 0 G -/F27 9.9626 Tf 0 -24.151 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 -22.903 Td [(On)-383(En)32(try)]TJ +/F27 9.9626 Tf 0 -18.477 Td [(On)-383(En)32(try)]TJ 0 g 0 G 0 g 0 G - 0 -22.903 Td [(nz)]TJ + 0 -19.201 Td [(T)32(yp)-32(e:)]TJ 0 g 0 G -/F8 9.9626 Tf 16.438 0 Td [(the)-333(n)27(u)1(m)27(b)-27(e)-1(r)-333(of)-333(co)-28(e\016cien)28(ts)-334(to)-333(b)-28(e)-333(inserted.)]TJ 8.469 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 27.95 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 [(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(sc)-1(alar)1(.)]TJ +/F8 9.9626 Tf 33.797 0 Td [(Sync)28(hronous.)]TJ 0 g 0 G -/F27 9.9626 Tf -24.906 -22.903 Td [(nr)]TJ +/F27 9.9626 Tf -33.797 -19.201 Td [(icon)32(txt)]TJ 0 g 0 G -/F8 9.9626 Tf 16.065 0 Td [(the)-333(n)28(um)27(b)-27(er)-334(of)-333(ro)28(ws)-334(to)-333(b)-28(e)-333(inserted.)]TJ 8.841 -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.956 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(sc)-1(alar)1(.)]TJ +/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 27.95 0 Td [(global)]TJ/F8 9.9626 Tf 29.757 0 Td [(.)]TJ -57.707 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.183 0 Td [(required)]TJ/F8 9.9626 Tf 41.898 0 Td [(.)]TJ -67.081 -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(a)-1(n)-333(in)28(teger)-333(v)55(alue.)]TJ 0 g 0 G -/F27 9.9626 Tf -24.906 -22.903 Td [(irw)]TJ +/F27 9.9626 Tf -24.907 -19.201 Td [(vg)]TJ 0 g 0 G -/F8 9.9626 Tf 21.157 0 Td [(the)-333(\014rst)-334(ro)28(w)-333(to)-333(b)-28(e)-334(inserted.)]TJ 3.749 -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 [(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(sc)-1(alar)1(.)]TJ +/F8 9.9626 Tf 16.757 0 Td [(Data)-333(allo)-28(cation:)-444(eac)27(h)-333(index)]TJ/F11 9.9626 Tf 123.564 0 Td [(i)]TJ/F14 9.9626 Tf 6.2 0 Td [(2)-278(f)]TJ/F8 9.9626 Tf 14.39 0 Td [(1)]TJ/F11 9.9626 Tf 6.642 0 Td [(:)-167(:)-166(:)-167(mg)]TJ/F14 9.9626 Tf 27.14 0 Td [(g)]TJ/F8 9.9626 Tf 8.302 0 Td [(is)-333(allo)-28(cated)-334(t)1(o)-334(pro)-28(cess)]TJ/F11 9.9626 Tf 99.267 0 Td [(v)-36(g)]TJ/F8 9.9626 Tf 10.296 0 Td [(\050)]TJ/F11 9.9626 Tf 3.874 0 Td [(i)]TJ/F8 9.9626 Tf 3.433 0 Td [(\051.)]TJ -294.958 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 27.95 0 Td [(global)]TJ/F8 9.9626 Tf 29.757 0 Td [(.)]TJ -57.707 -11.956 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.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(in)28(teger)-333(arra)27(y)84(.)]TJ 0 g 0 G -/F27 9.9626 Tf -24.906 -22.903 Td [(ia)]TJ +/F27 9.9626 Tf -24.907 -19.201 Td [(\015ag)]TJ 0 g 0 G -/F8 9.9626 Tf 13.733 0 Td [(the)-333(ro)27(w)-333(indices)-333(of)-334(th)1(e)-334(co)-28(e\016cien)28(ts)-333(to)-334(b)-27(e)-334(inserted.)]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.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(arra)27(y)-333(of)-333(size)]TJ/F11 9.9626 Tf 160.98 0 Td [(nz)]TJ/F8 9.9626 Tf 11.052 0 Td [(.)]TJ +/F8 9.9626 Tf 22.644 0 Td [(Sp)-28(eci\014es)-333(whether)-333(e)-1(n)28(tries)-333(in)]TJ/F11 9.9626 Tf 121.932 0 Td [(v)-36(g)]TJ/F8 9.9626 Tf 13.617 0 Td [(are)-333(zero-)-334(or)-333(one-based.)]TJ -133.286 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 27.95 0 Td [(global)]TJ/F8 9.9626 Tf 29.757 0 Td [(.)]TJ -57.707 -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(v)55(alue)-333(0)]TJ/F11 9.9626 Tf 135.409 0 Td [(;)]TJ/F8 9.9626 Tf 4.428 0 Td [(1,)-333(default)-334(0.)]TJ 0 g 0 G -/F27 9.9626 Tf -196.938 -22.903 Td [(irp)]TJ +/F27 9.9626 Tf -164.744 -19.2 Td [(mg)]TJ 0 g 0 G -/F8 9.9626 Tf 19.247 0 Td [(the)-333(ro)27(w)-333(p)-28(oin)28(ters)-333(of)-333(the)-334(co)-28(e\016cien)28(ts)-333(to)-334(b)-27(e)-334(inserted.)]TJ 5.659 -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 [(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(arra)27(y)-333(of)-333(size)]TJ/F11 9.9626 Tf 160.98 0 Td [(nr)]TJ/F8 9.9626 Tf 12.966 0 Td [(+)-222(1.)]TJ +/F8 9.9626 Tf 20.257 0 Td [(the)-333(\050global\051)-334(n)28(um)28(b)-28(er)-333(of)-333(ro)27(ws)-333(of)-333(the)-334(probl)1(e)-1(m.)]TJ 4.65 -11.956 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 27.95 0 Td [(global)]TJ/F8 9.9626 Tf 29.757 0 Td [(.)]TJ -57.707 -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.955 Td [(Sp)-28(eci\014ed)-332(as:)-444(an)-333(in)28(teger)-333(v)56(alue.)-444(I)-1(t)-332(is)-333(required)-332(if)]TJ/F30 9.9626 Tf 203.266 0 Td [(parts)]TJ/F8 9.9626 Tf 29.465 0 Td [(or)]TJ/F30 9.9626 Tf 12.198 0 Td [(repl)]TJ/F8 9.9626 Tf 24.235 0 Td [(is)-333(sp)-27(ec)-1(i)1(\014e)-1(d)1(,)]TJ -269.164 -11.955 Td [(it)-333(is)-334(optional)-333(if)]TJ/F30 9.9626 Tf 67.856 0 Td [(vg)]TJ/F8 9.9626 Tf 13.782 0 Td [(is)-333(sp)-28(eci\014ed.)]TJ 0 g 0 G -/F27 9.9626 Tf -198.852 -22.903 Td [(ja)]TJ +/F27 9.9626 Tf -106.545 -19.201 Td [(parts)]TJ 0 g 0 G -/F8 9.9626 Tf 14.051 0 Td [(the)-333(column)-334(indices)-333(of)-333(the)-334(co)-27(e)-1(\016cien)28(ts)-333(to)-333(b)-28(e)-334(inserted.)]TJ 10.855 -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.956 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 [(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(arra)27(y)-333(of)-333(size)]TJ/F11 9.9626 Tf 160.98 0 Td [(nz)]TJ/F8 9.9626 Tf 11.051 0 Td [(.)]TJ +/F8 9.9626 Tf 30.609 0 Td [(the)-333(subroutine)-334(th)1(at)-334(de\014nes)-333(the)-333(partitioning)-334(sc)28(heme.)]TJ -5.702 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 27.95 0 Td [(global)]TJ/F8 9.9626 Tf 29.757 0 Td [(.)]TJ -57.707 -11.956 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.183 0 Td [(required)]TJ/F8 9.9626 Tf 41.898 0 Td [(.)]TJ -67.081 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(subroutine.)]TJ 0 g 0 G -/F27 9.9626 Tf -196.937 -22.903 Td [(v)64(al)]TJ +/F27 9.9626 Tf -24.907 -19.201 Td [(vl)]TJ 0 g 0 G -/F8 9.9626 Tf 19.143 0 Td [(the)-333(co)-28(e\016cien)28(ts)-334(to)-333(b)-28(e)-333(inserted.)]TJ 5.763 -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 [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-375(as:)-528(an)-375(arra)28(y)-375(of)-375(size)]TJ/F11 9.9626 Tf 130.933 0 Td [(nz)]TJ/F8 9.9626 Tf 11.051 0 Td [(.)-570(Must)-375(b)-28(e)-375(of)-375(the)-375(same)-375(t)28(yp)-28(e)-375(and)-375(kind)-375(of)]TJ -141.984 -11.956 Td [(the)-333(co)-28(e\016cien)27(ts)-333(of)-333(the)-334(spar)1(s)-1(e)-333(matrix)]TJ/F11 9.9626 Tf 158.517 0 Td [(a)]TJ/F8 9.9626 Tf 5.266 0 Td [(.)]TJ +/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 - -21.815 -29.887 Td [(76)]TJ + 141.967 -29.888 Td [(70)]TJ 0 g 0 G ET endstream endobj -1373 0 obj +1381 0 obj << -/Length 7378 +/Length 6638 >> stream 0 g 0 G 0 g 0 G 0 g 0 G BT -/F27 9.9626 Tf 99.895 706.129 Td [(desc)]TJ +/F27 9.9626 Tf 99.895 706.129 Td [(nl)]TJ +0 g 0 G +/F8 9.9626 Tf 14.529 0 Td [(Data)-223(allo)-28(cation:)-389(in)-222(a)-223(generalized)-223(blo)-28(c)28(k-ro)28(w)-223(distribution)-223(the)-222(n)27(um)28(b)-28(er)-222(of)-223(indices)]TJ 10.378 -11.955 Td [(b)-28(elonging)-333(to)-333(the)-334(curren)28(t)-333(pro)-28(cess.)]TJ 0 -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.956 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.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(alue.)-444(Ma)28(y)-334(b)-27(e)-334(sp)-28(eci\014ed)-333(together)-333(with)]TJ/F30 9.9626 Tf 272.479 0 Td [(vl)]TJ/F8 9.9626 Tf 10.46 0 Td [(.)]TJ +0 g 0 G +/F27 9.9626 Tf -307.846 -20.135 Td [(repl)]TJ +0 g 0 G +/F8 9.9626 Tf 24.499 0 Td [(Data)-351(allo)-28(cation:)-480(build)-351(a)-351(replicated)-351(index)-351(space)-351(\050i.e.)-498(all)-351(pro)-28(cesses)-351(o)27(wn)-351(all)]TJ 0.408 -11.955 Td [(indices\051.)]TJ 0 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 27.951 0 Td [(global)]TJ/F8 9.9626 Tf 29.756 0 Td [(.)]TJ -57.707 -11.956 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.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(th)1(e)-334(logical)-333(v)55(alue)]TJ/F30 9.9626 Tf 131.784 0 Td [(.true.)]TJ +0 g 0 G +/F27 9.9626 Tf -156.691 -20.135 Td [(globalc)32(hec)32(k)]TJ +0 g 0 G +/F8 9.9626 Tf 61.948 0 Td [(Data)-333(allo)-28(cation:)-445(d)1(o)-334(global)-333(c)28(hec)27(ks)-333(on)-333(the)-334(lo)-27(cal)-334(index)-333(lists)]TJ/F30 9.9626 Tf 250.201 0 Td [(vl)]TJ/F8 9.9626 Tf -287.242 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 27.951 0 Td [(global)]TJ/F8 9.9626 Tf 29.756 0 Td [(.)]TJ -57.707 -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.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(logical)-333(v)55(alue,)-333(default:)]TJ/F30 9.9626 Tf 163.056 0 Td [(.false.)]TJ +0 g 0 G +/F27 9.9626 Tf -187.963 -20.135 Td [(lidx)]TJ +0 g 0 G +/F8 9.9626 Tf 23.758 0 Td [(Data)-353(allo)-28(cation:)-484(the)-353(set)-353(of)-353(lo)-28(cal)-353(indices)]TJ/F11 9.9626 Tf 176.172 0 Td [(l)-20(idx)]TJ/F8 9.9626 Tf 17.48 0 Td [(\0501)-311(:)]TJ/F11 9.9626 Tf 17.814 0 Td [(nl)]TJ/F8 9.9626 Tf 9.149 0 Td [(\051)-353(to)-353(b)-28(e)-353(assigned)-353(to)-353(the)]TJ -219.466 -11.955 Td [(global)-333(indices)]TJ/F11 9.9626 Tf 62.045 0 Td [(v)-36(l)]TJ/F8 9.9626 Tf 8.355 0 Td [(.)]TJ -70.4 -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.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.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(an)-333(in)28(teger)-333(arra)27(y)84(.)]TJ +0 g 0 G +/F27 9.9626 Tf -24.907 -22.127 Td [(On)-383(Return)]TJ +0 g 0 G +0 g 0 G + 0 -20.135 Td [(desc)]TJ ET q -1 0 0 1 121.81 706.328 cm +1 0 0 1 121.81 376.512 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 125.247 706.129 Td [(a)]TJ +/F27 9.9626 Tf 125.247 376.313 Td [(a)]TJ 0 g 0 G -/F8 9.9626 Tf 10.551 0 Td [(The)-333(comm)27(unication)-333(descriptor.)]TJ -10.996 -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 [(inout)]TJ/F8 9.9626 Tf 26.096 0 Td [(.)]TJ -59.582 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(v)56(ariable)-334(of)-333(t)28(yp)-28(e)]TJ +/F8 9.9626 Tf 10.551 0 Td [(the)-333(comm)27(unication)-333(descriptor.)]TJ -10.996 -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.183 0 Td [(required)]TJ/F8 9.9626 Tf 41.899 0 Td [(.)]TJ -67.082 -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 [(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 137.346 0 Td [(psb)]TJ +/F30 9.9626 Tf 170.915 0 Td [(psb)]TJ ET q -1 0 0 1 278.467 658.507 cm +1 0 0 1 312.036 328.692 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 281.605 658.308 Td [(desc)]TJ +/F30 9.9626 Tf 315.174 328.492 Td [(desc)]TJ ET q -1 0 0 1 303.154 658.507 cm +1 0 0 1 336.723 328.692 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 306.292 658.308 Td [(type)]TJ +/F30 9.9626 Tf 339.861 328.492 Td [(type)]TJ 0 g 0 G -/F8 9.9626 Tf 20.922 0 Td [(.)]TJ +/F8 9.9626 Tf 20.921 0 Td [(.)]TJ 0 g 0 G -/F27 9.9626 Tf -227.319 -31.349 Td [(lo)-32(cal)]TJ +/F27 9.9626 Tf -260.887 -20.135 Td [(info)]TJ 0 g 0 G -/F8 9.9626 Tf 28.055 0 Td [(Whether)-465(the)-464(en)27(tr)1(ie)-1(s)-464(in)-465(the)-465(in)1(dice)-1(s)-464(v)28(ec)-1(tor)1(s)]TJ/F30 9.9626 Tf 194.825 0 Td [(ia)]TJ/F8 9.9626 Tf 10.461 0 Td [(,)]TJ/F30 9.9626 Tf 7.724 0 Td [(ja)]TJ/F8 9.9626 Tf 15.09 0 Td [(are)-465(already)-464(in)-465(lo)-28(cal)]TJ -231.248 -11.955 Td [(n)28(um)28(b)-28(ering.)]TJ 0 -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.183 0 Td [(optional)]TJ/F8 9.9626 Tf 40.577 0 Td [(.)]TJ -65.76 -11.956 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(logical)-333(v)55(alue;)-333(default:)]TJ/F30 9.9626 Tf 163.056 0 Td [(.false.)]TJ/F8 9.9626 Tf 36.612 0 Td [(.)]TJ +/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/F16 11.9552 Tf -24.907 -22.128 Td [(Notes)]TJ 0 g 0 G -/F27 9.9626 Tf -224.575 -20.589 Td [(On)-383(Return)]TJ +/F8 9.9626 Tf 12.177 -20.082 Td [(1.)]TJ 0 g 0 G + [-500(One)-241(of)-241(the)-240(optional)-241(argumen)28(ts)]TJ/F30 9.9626 Tf 144.914 0 Td [(parts)]TJ/F8 9.9626 Tf 26.152 0 Td [(,)]TJ/F30 9.9626 Tf 5.351 0 Td [(vg)]TJ/F8 9.9626 Tf 10.461 0 Td [(,)]TJ/F30 9.9626 Tf 5.351 0 Td [(vl)]TJ/F8 9.9626 Tf 10.46 0 Td [(,)]TJ/F30 9.9626 Tf 5.351 0 Td [(nl)]TJ/F8 9.9626 Tf 12.86 0 Td [(or)]TJ/F30 9.9626 Tf 11.283 0 Td [(repl)]TJ/F8 9.9626 Tf 23.32 0 Td [(m)28(ust)-241(b)-28(e)-241(sp)-27(e)-1(ci\014)1(e)-1(d)1(,)]TJ -242.773 -11.956 Td [(thereb)28(y)-334(c)28(ho)-28(osing)-333(the)-333(initialization)-333(strategy)-334(as)-333(follo)28(ws:)]TJ 0 g 0 G - 0 -19.394 Td [(a)]TJ +/F27 9.9626 Tf 0 -20.135 Td [(parts)]TJ 0 g 0 G -/F8 9.9626 Tf 10.551 0 Td [(the)-333(matrix)-334(in)28(to)-333(whic)28(h)-334(co)-27(e)-1(\016cien)28(ts)-333(will)-333(b)-28(e)-334(inserted.)]TJ 14.356 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 27.951 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -27.951 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.183 0 Td [(required)]TJ/F8 9.9626 Tf -25.183 -11.956 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)-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 491.534 cm -[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S -Q -BT -/F30 9.9626 Tf 315.174 491.334 Td [(Tspmat)]TJ -ET -q -1 0 0 1 347.183 491.534 cm -[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S -Q -BT -/F30 9.9626 Tf 350.322 491.334 Td [(type)]TJ +/F8 9.9626 Tf 30.609 0 Td [(In)-337(this)-338(case)-338(w)28(e)-337(ha)28(v)27(e)-337(a)-338(subroutine)-337(sp)-28(ecifying)-337(the)-338(mapping)-337(b)-28(et)28(w)28(een)]TJ -8.691 -11.955 Td [(global)-225(indices)-225(and)-225(pro)-28(cess/lo)-27(c)-1(al)-225(i)1(ndex)-225(pairs.)-409(If)-225(this)-225(optional)-225(ar)1(gume)-1(n)28(t)]TJ 0 -11.955 Td [(is)-316(sp)-28(eci\014ed,)-320(then)-316(it)-317(is)-316(mandatory)-316(to)-317(sp)-28(ecify)-316(the)-316(argumen)28(t)]TJ/F30 9.9626 Tf 251.562 0 Td [(mg)]TJ/F8 9.9626 Tf 13.613 0 Td [(as)-316(w)27(ell.)]TJ -265.175 -11.955 Td [(The)-333(subroutine)-334(m)28(ust)-333(conform)-333(to)-334(the)-333(follo)28(wing)-334(in)28(terface:)]TJ 0 g 0 G -/F8 9.9626 Tf 20.921 0 Td [(.)]TJ 0 g 0 G -/F27 9.9626 Tf -271.348 -19.394 Td [(desc)]TJ -ET -q -1 0 0 1 121.81 472.14 cm -[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S -Q -BT -/F27 9.9626 Tf 125.247 471.94 Td [(a)]TJ +/F30 9.9626 Tf 10.461 -18.09 Td [(interface)]TJ 15.691 -11.955 Td [(subroutine)-525(psb_parts\050glob_index,mg,np,pv,nv\051)]TJ +0 g 0 G +/F8 9.9626 Tf 93.898 -29.888 Td [(71)]TJ 0 g 0 G -/F8 9.9626 Tf 10.551 0 Td [(The)-333(comm)27(unication)-333(descriptor.)]TJ -10.996 -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 [(inout)]TJ/F8 9.9626 Tf 26.096 0 Td [(.)]TJ -59.582 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(v)56(ariable)-334(of)-333(t)28(yp)-28(e)]TJ -0 0 1 rg 0 0 1 RG -/F30 9.9626 Tf 137.346 0 Td [(psb)]TJ ET -q -1 0 0 1 278.467 424.319 cm -[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S -Q + +endstream +endobj +1387 0 obj +<< +/Length 10049 +>> +stream +0 g 0 G +0 g 0 G BT -/F30 9.9626 Tf 281.605 424.12 Td [(desc)]TJ +/F30 9.9626 Tf 234.142 706.129 Td [(integer,)-525(intent)-525(\050in\051)-1050(::)-525(glob_index,np,mg)]TJ 0 -11.955 Td [(integer,)-525(intent)-525(\050out\051)-525(::)-525(nv,)-525(pv\050*\051)]TJ -10.461 -11.955 Td [(end)-525(subroutine)-525(psb_parts)]TJ -15.691 -11.956 Td [(end)-525(interface)]TJ/F8 9.9626 Tf -10.461 -17.586 Td [(The)-333(input)-334(argumen)28(ts)-333(are:)]TJ +0 g 0 G +/F27 9.9626 Tf 0 -15.594 Td [(glob)]TJ ET q -1 0 0 1 303.154 424.319 cm -[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +1 0 0 1 219.221 637.283 cm +[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F30 9.9626 Tf 306.292 424.12 Td [(type)]TJ +/F27 9.9626 Tf 222.658 637.083 Td [(index)]TJ 0 g 0 G -/F8 9.9626 Tf 20.922 0 Td [(.)]TJ +/F8 9.9626 Tf 32.192 0 Td [(The)-333(global)-334(index)-333(to)-333(b)-28(e)-333(mapp)-28(ed;)]TJ 0 g 0 G -/F27 9.9626 Tf -227.319 -31.349 Td [(info)]TJ +/F27 9.9626 Tf -57.321 -13.774 Td [(np)]TJ 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 -20.59 Td [(Notes)]TJ +/F8 9.9626 Tf 17.712 0 Td [(The)-333(n)27(u)1(m)27(b)-27(e)-1(r)-333(of)-333(pro)-28(cesses)-333(in)-334(the)-333(mapping;)]TJ 0 g 0 G -/F8 9.9626 Tf 12.177 -18.862 Td [(1.)]TJ +/F27 9.9626 Tf -17.712 -13.774 Td [(mg)]TJ 0 g 0 G - [-500(On)-487(en)28(try)-487(to)-488(this)-487(routine)-487(the)-487(descriptor)-487(ma)28(y)-488(b)-27(e)-488(in)-487(either)-487(the)-487(build)-487(or)]TJ 12.73 -11.955 Td [(assem)28(bled)-334(state.)]TJ +/F8 9.9626 Tf 20.258 0 Td [(The)-333(total)-334(n)28(um)28(b)-28(er)-333(of)-333(global)-334(ro)28(ws)-333(in)-334(th)1(e)-334(mapping;)]TJ -20.258 -15.594 Td [(The)-333(output)-334(argumen)28(ts)-333(are:)]TJ 0 g 0 G - -12.73 -19.394 Td [(2.)]TJ +/F27 9.9626 Tf 0 -15.594 Td [(n)32(v)]TJ 0 g 0 G - [-500(On)-363(en)28(try)-362(to)-363(this)-363(routine)-362(the)-363(sparse)-363(matrix)-363(ma)28(y)-363(b)-27(e)-363(in)-363(either)-362(the)-363(build)-363(or)]TJ 12.73 -11.955 Td [(up)-28(date)-333(state.)]TJ +/F8 9.9626 Tf 17.075 0 Td [(The)-333(n)27(um)28(b)-28(er)-333(of)-333(en)28(tries)-334(in)]TJ/F30 9.9626 Tf 111.637 0 Td [(pv)]TJ/F8 9.9626 Tf 10.461 0 Td [(;)]TJ 0 g 0 G - -12.73 -19.394 Td [(3.)]TJ +/F27 9.9626 Tf -139.173 -13.774 Td [(p)32(v)]TJ 0 g 0 G - [-500(If)-230(the)-231(descriptor)-230(is)-231(in)-230(the)-231(build)-230(state,)-251(then)-231(the)-230(sparse)-231(matrix)-230(m)28(ust)-231(also)-230(b)-28(e)-231(in)]TJ 12.73 -11.955 Td [(the)-327(build)-327(state;)-329(the)-328(action)-327(of)-327(the)-327(routine)-327(is)-327(to)-327(\050implicitly\051)-327(call)]TJ/F30 9.9626 Tf 271.731 0 Td [(psb_cdins)]TJ/F8 9.9626 Tf -271.731 -11.956 Td [(to)-419(add)-419(en)28(tries)-419(to)-419(th)1(e)-419(sparsit)27(y)-418(pattern;)-462(eac)28(h)-419(sparse)-419(matrix)-419(en)28(try)-419(implic-)]TJ 0 -11.955 Td [(itly)-359(de\014nes)-360(a)-360(grap)1(h)-360(edge,)-366(that)-360(is)-359(passed)-360(to)-359(the)-360(descriptor)-359(routine)-360(for)-359(the)]TJ 0 -11.955 Td [(appropriate)-333(pro)-28(cessing;)]TJ +/F8 9.9626 Tf 17.075 0 Td [(A)-481(v)28(ector)-481(con)28(taining)-481(the)-481(indi)1(c)-1(es)-480(of)-481(the)-481(pro)-28(cesses)-481(to)-481(whic)28(h)-481(the)]TJ 1.555 -11.955 Td [(global)-468(index)-468(should)-468(b)-28(e)-468(assigend;)-536(eac)28(h)-468(en)28(try)-468(m)28(ust)-469(satisfy)-468(0)]TJ/F14 9.9626 Tf 270.508 0 Td [(\024)]TJ/F11 9.9626 Tf -270.508 -11.956 Td [(pv)]TJ/F8 9.9626 Tf 10.199 0 Td [(\050)]TJ/F11 9.9626 Tf 3.875 0 Td [(i)]TJ/F8 9.9626 Tf 3.432 0 Td [(\051)]TJ/F11 9.9626 Tf 8.603 0 Td [(<)-475(np)]TJ/F8 9.9626 Tf 23.47 0 Td [(;)-511(i)1(f)]TJ/F11 9.9626 Tf 18.163 0 Td [(nv)-511(>)]TJ/F8 9.9626 Tf 28.373 0 Td [(1)-451(w)27(e)-451(ha)28(v)27(e)-451(an)-452(in)1(dex)-452(assigned)-451(to)-452(m)28(ultiple)]TJ -96.115 -11.955 Td [(pro)-28(cesses,)-333(i.e.)-445(w)28(e)-333(ha)27(v)28(e)-333(an)-333(o)27(v)28(erlap)-333(among)-334(t)1(he)-334(sub)-28(domains.)]TJ 0 g 0 G - -12.73 -19.394 Td [(4.)]TJ +/F27 9.9626 Tf -40.548 -15.594 Td [(vg)]TJ 0 g 0 G - [-500(The)-333(input)-334(d)1(ata)-334(can)-333(b)-28(e)-333(passed)-334(in)-333(either)-333(COO)-334(or)-333(CSR)-333(formats;)]TJ +/F8 9.9626 Tf 16.757 0 Td [(In)-398(th)1(is)-398(case)-398(the)-397(asso)-28(ciation)-398(b)-27(e)-1(t)28(w)28(een)-398(an)-397(index)-398(and)-397(a)-398(pro)-27(ces)-1(s)-397(is)-398(sp)-28(ec-)]TJ 5.161 -11.955 Td [(i\014ed)-456(via)-456(an)-456(in)28(tege)-1(r)-456(v)28(ector)]TJ/F30 9.9626 Tf 120.743 0 Td [(vg\0501:mg\051)]TJ/F8 9.9626 Tf 41.842 0 Td [(;)-518(eac)28(h)-456(index)]TJ/F11 9.9626 Tf 59.63 0 Td [(i)]TJ/F14 9.9626 Tf 8.238 0 Td [(2)-482(f)]TJ/F8 9.9626 Tf 16.429 0 Td [(1)]TJ/F11 9.9626 Tf 6.642 0 Td [(:)-167(:)-166(:)-167(mg)]TJ/F14 9.9626 Tf 27.14 0 Td [(g)]TJ/F8 9.9626 Tf 9.526 0 Td [(is)]TJ -290.19 -11.955 Td [(assigned)-449(to)-449(pro)-28(cess)]TJ/F11 9.9626 Tf 89.776 0 Td [(v)-36(g)]TJ/F8 9.9626 Tf 10.296 0 Td [(\050)]TJ/F11 9.9626 Tf 3.875 0 Td [(i)]TJ/F8 9.9626 Tf 3.432 0 Td [(\051.)-792(The)-449(v)28(ector)]TJ/F30 9.9626 Tf 67.232 0 Td [(vg)]TJ/F8 9.9626 Tf 14.935 0 Td [(m)28(ust)-449(b)-28(e)-449(iden)28(tica)-1(l)-449(on)-449(all)]TJ -189.546 -11.955 Td [(calling)-452(pro)-28(cesses;)-513(it)1(s)-453(en)28(tries)-453(ma)28(y)-453(ha)28(v)28(e)-453(th)1(e)-453(ranges)-453(\0500)]TJ/F11 9.9626 Tf 236.604 0 Td [(:)-167(:)-166(:)-167(np)]TJ/F14 9.9626 Tf 27.281 0 Td [(\000)]TJ/F8 9.9626 Tf 10.754 0 Td [(1\051)-453(or)]TJ -274.639 -11.955 Td [(\0501)]TJ/F11 9.9626 Tf 10.516 0 Td [(:)-167(:)-166(:)-167(np)]TJ/F8 9.9626 Tf 24.276 0 Td [(\051)-347(according)-347(to)-347(the)-347(v)55(alu)1(e)-348(of)]TJ/F30 9.9626 Tf 119.292 0 Td [(flag)]TJ/F8 9.9626 Tf 20.921 0 Td [(.)-486(The)-347(size)]TJ/F11 9.9626 Tf 47.231 0 Td [(mg)]TJ/F8 9.9626 Tf 17.314 0 Td [(ma)28(y)-347(b)-28(e)-347(sp)-28(ec-)]TJ -239.55 -11.955 Td [(i\014ed)-414(via)-414(the)-415(option)1(al)-415(argumen)28(t)]TJ/F30 9.9626 Tf 142.427 0 Td [(mg)]TJ/F8 9.9626 Tf 10.461 0 Td [(;)-455(the)-414(default)-414(is)-414(to)-414(use)-415(the)-414(en)28(tire)]TJ -152.888 -11.956 Td [(v)28(ector)]TJ/F30 9.9626 Tf 29.916 0 Td [(vg)]TJ/F8 9.9626 Tf 10.46 0 Td [(,)-333(th)27(u)1(s)-334(ha)28(ving)]TJ/F30 9.9626 Tf 60.108 0 Td [(mg=size\050vg\051)]TJ/F8 9.9626 Tf 57.534 0 Td [(.)]TJ 0 g 0 G - 0 -19.394 Td [(5.)]TJ +/F27 9.9626 Tf -179.936 -15.593 Td [(vl)]TJ 0 g 0 G - [-500(In)-368(COO)-367(format)-368(the)-367(co)-28(e\016cien)28(ts)-368(to)-368(b)-27(e)-368(inserted)-368(are)-367(represen)28(ted)-368(b)28(y)-368(the)-367(or-)]TJ 12.73 -11.955 Td [(dered)-358(triples)]TJ/F11 9.9626 Tf 58.162 0 Td [(ia)]TJ/F8 9.9626 Tf 8.699 0 Td [(\050)]TJ/F11 9.9626 Tf 3.874 0 Td [(i)]TJ/F8 9.9626 Tf 3.432 0 Td [(\051)]TJ/F11 9.9626 Tf 3.875 0 Td [(;)-167(j)-57(a)]TJ/F8 9.9626 Tf 14.367 0 Td [(\050)]TJ/F11 9.9626 Tf 3.874 0 Td [(i)]TJ/F8 9.9626 Tf 3.432 0 Td [(\051)]TJ/F11 9.9626 Tf 3.875 0 Td [(;)-167(v)-36(a)1(l)]TJ/F8 9.9626 Tf 18.049 0 Td [(\050)]TJ/F11 9.9626 Tf 3.874 0 Td [(i)]TJ/F8 9.9626 Tf 3.432 0 Td [(\051,)-364(for)]TJ/F11 9.9626 Tf 25.762 0 Td [(i)]TJ/F8 9.9626 Tf 6.608 0 Td [(=)-319(1)]TJ/F11 9.9626 Tf 15.905 0 Td [(;)-167(:)-166(:)-167(:)-167(;)-166(nz)]TJ/F8 9.9626 Tf 33.191 0 Td [(;)-370(these)-358(triples)-358(should)-358(b)-28(e-)]TJ -210.411 -11.955 Td [(long)-384(to)-385(the)-384(curren)28(t)-385(pro)-28(cess,)-397(i.e.)]TJ/F11 9.9626 Tf 144.426 0 Td [(ia)]TJ/F8 9.9626 Tf 8.698 0 Td [(\050)]TJ/F11 9.9626 Tf 3.875 0 Td [(i)]TJ/F8 9.9626 Tf 3.432 0 Td [(\051)-384(should)-385(b)-28(e)-384(one)-384(of)-385(the)-384(lo)-28(cal)-385(ind)1(ic)-1(es,)]TJ -160.431 -11.955 Td [(but)-333(are)-334(otherwise)-333(arbitrary;)]TJ +/F8 9.9626 Tf 14.211 0 Td [(In)-356(this)-357(case)-356(w)28(e)-357(are)-356(sp)-28(ecifying)-356(the)-357(list)-356(of)-356(indices)]TJ/F30 9.9626 Tf 210.708 0 Td [(vl\0501:nl\051)]TJ/F8 9.9626 Tf 45.393 0 Td [(assigned)-356(to)]TJ -248.394 -11.955 Td [(the)-462(curren)28(t)-462(pro)-27(ce)-1(ss;)-526(th)28(us,)-494(the)-461(global)-462(problem)-462(size)]TJ/F11 9.9626 Tf 229.323 0 Td [(mg)]TJ/F8 9.9626 Tf 18.457 0 Td [(is)-462(giv)28(en)-462(b)28(y)]TJ -247.78 -11.956 Td [(the)-405(range)-405(of)-404(the)-405(aggregate)-405(of)-405(the)-405(in)1(dividual)-405(v)28(ectors)]TJ/F30 9.9626 Tf 233.196 0 Td [(vl)]TJ/F8 9.9626 Tf 14.494 0 Td [(sp)-28(eci\014ed)-405(in)]TJ -247.69 -11.955 Td [(the)-481(calling)-481(p)1(ro)-28(cesses.)-887(The)-481(size)-481(ma)28(y)-481(b)-28(e)-481(sp)-27(eci\014ed)-481(via)-481(the)-481(optional)]TJ 0 -11.955 Td [(argumen)28(t)]TJ/F30 9.9626 Tf 44.85 0 Td [(nl)]TJ/F8 9.9626 Tf 10.461 0 Td [(;)-373(the)-361(default)-360(is)-360(to)-360(use)-360(the)-360(en)28(tire)-361(v)28(ector)]TJ/F30 9.9626 Tf 173.727 0 Td [(vl)]TJ/F8 9.9626 Tf 10.461 0 Td [(,)-367(th)28(us)-360(ha)28(ving)]TJ/F30 9.9626 Tf -239.499 -11.955 Td [(nl=size\050vl\051)]TJ/F8 9.9626 Tf 57.534 0 Td [(.)-419(If)]TJ/F30 9.9626 Tf 16.133 0 Td [(globalcheck=.true.)]TJ/F8 9.9626 Tf 96.698 0 Td [(the)-256(subroutine)-256(will)-256(c)27(hec)28(k)-256(ho)28(w)]TJ -170.365 -11.955 Td [(man)28(y)-255(times)-255(eac)28(h)-254(en)27(try)-254(in)-255(the)-254(global)-255(index)-254(s)-1(p)1(ac)-1(e)-254(\0501)]TJ/F11 9.9626 Tf 217.24 0 Td [(:)-167(:)-166(:)-167(mg)]TJ/F8 9.9626 Tf 27.14 0 Td [(\051)-255(is)-254(sp)-28(eci\014ed)]TJ -244.38 -11.955 Td [(in)-331(the)-331(input)-331(lists)]TJ/F30 9.9626 Tf 75.842 0 Td [(vl)]TJ/F8 9.9626 Tf 10.461 0 Td [(,)-331(th)27(us)-331(all)1(o)27(wing)-331(for)-331(t)1(he)-331(prese)-1(n)1(c)-1(e)-331(of)-330(o)27(v)28(erlap)-331(in)-331(the)]TJ -86.303 -11.956 Td [(input,)-338(and)-337(c)28(hec)27(king)-337(for)-337(\134orphan")-337(indices.)-456(If)]TJ/F30 9.9626 Tf 194.743 0 Td [(globalcheck=.false.)]TJ/F8 9.9626 Tf 99.376 0 Td [(,)]TJ -294.119 -11.955 Td [(the)-409(s)-1(u)1(broutine)-410(will)-409(not)-410(c)28(hec)28(k)-410(for)-409(o)28(v)27(erlap,)-428(and)-409(ma)27(y)-409(b)-28(e)-409(signi\014can)27(tly)]TJ 0 -11.955 Td [(faster,)-362(but)-357(the)-357(user)-356(is)-357(implicitly)-357(gu)1(aran)27(teeing)-356(that)-357(there)-357(ar)1(e)-357(neither)]TJ 0 -11.955 Td [(orphan)-333(nor)-333(o)27(v)28(erlap)-333(indices.)]TJ +0 g 0 G +/F27 9.9626 Tf -21.918 -15.594 Td [(lidx)]TJ +0 g 0 G +/F8 9.9626 Tf 23.758 0 Td [(The)-463(optional)-462(argumen)28(t)]TJ/F30 9.9626 Tf 107.67 0 Td [(lidx)]TJ/F8 9.9626 Tf 25.531 0 Td [(is)-463(a)28(v)56(ailable)-463(for)-462(those)-463(cases)-463(in)-463(whi)1(c)27(h)]TJ -135.041 -11.955 Td [(the)-446(user)-446(has)-446(already)-446(established)-446(a)-446(global-to-lo)-28(cal)-446(mapping;)-502(if)-446(it)-446(is)]TJ 0 -11.955 Td [(sp)-28(eci\014ed,)-373(eac)28(h)-365(index)-365(in)]TJ/F30 9.9626 Tf 105.175 0 Td [(vl\050i\051)]TJ/F8 9.9626 Tf 29.789 0 Td [(will)-365(b)-28(e)-365(mapp)-28(ed)-365(to)-365(the)-365(corresp)-27(onding)]TJ -134.964 -11.955 Td [(lo)-28(cal)-392(index)]TJ/F30 9.9626 Tf 51.539 0 Td [(lidx\050i\051)]TJ/F8 9.9626 Tf 36.613 0 Td [(.)-621(When)-392(sp)-28(ecifying)-392(the)-392(argumen)28(t)]TJ/F30 9.9626 Tf 148.368 0 Td [(lidx)]TJ/F8 9.9626 Tf 24.828 0 Td [(the)-392(user)]TJ -261.348 -11.956 Td [(w)28(ould)-420(also)-420(lik)28(ely)-419(e)-1(mpl)1(o)27(y)]TJ/F30 9.9626 Tf 113.086 0 Td [(lidx)]TJ/F8 9.9626 Tf 25.103 0 Td [(in)-420(calls)-419(to)]TJ/F30 9.9626 Tf 48.576 0 Td [(psb_cdins)]TJ/F8 9.9626 Tf 51.254 0 Td [(and)]TJ/F30 9.9626 Tf 20.232 0 Td [(local)]TJ/F8 9.9626 Tf 30.333 0 Td [(in)]TJ -288.584 -11.955 Td [(calls)-333(to)]TJ/F30 9.9626 Tf 34.371 0 Td [(psb_spins)]TJ/F8 9.9626 Tf 50.394 0 Td [(and)]TJ/F30 9.9626 Tf 19.372 0 Td [(psb_geins)]TJ/F8 9.9626 Tf 47.073 0 Td [(;)-333(see)-334(also)-333(sec.)]TJ +0 0 1 rg 0 0 1 RG + [-334(2.3.1)]TJ +0 g 0 G + [(.)]TJ +0 g 0 G +/F27 9.9626 Tf -173.128 -15.593 Td [(nl)]TJ +0 g 0 G +/F8 9.9626 Tf 14.529 0 Td [(If)-307(this)-308(argumen)28(t)-307(is)-308(sp)-28(eci\014ed)-307(alone)-308(\050i.e.)-435(without)]TJ/F30 9.9626 Tf 206.41 0 Td [(vl)]TJ/F8 9.9626 Tf 10.461 0 Td [(\051)-307(the)-308(result)-307(is)-308(a)-307(gen-)]TJ -209.482 -11.956 Td [(eralized)-313(ro)27(w-blo)-27(c)27(k)-313(distribution)-313(in)-314(whic)28(h)-313(eac)27(h)-313(pro)-28(cess)]TJ/F11 9.9626 Tf 232.18 0 Td [(I)]TJ/F8 9.9626 Tf 8.284 0 Td [(gets)-313(as)-1(signed)]TJ -240.464 -11.955 Td [(a)-333(consecutiv)27(e)-333(c)28(h)28(unk)-334(of)]TJ/F11 9.9626 Tf 101.342 0 Td [(N)]TJ/F10 6.9738 Tf 8.005 -1.494 Td [(I)]TJ/F8 9.9626 Tf 7.338 1.494 Td [(=)]TJ/F11 9.9626 Tf 10.516 0 Td [(nl)]TJ/F8 9.9626 Tf 12.47 0 Td [(global)-333(indices.)]TJ +0 g 0 G +/F27 9.9626 Tf -161.589 -15.593 Td [(repl)]TJ +0 g 0 G +/F8 9.9626 Tf 24.498 0 Td [(This)-239(argumen)28(ts)-240(sp)-27(e)-1(ci\014es)-239(to)-239(replicate)-239(all)-239(indices)-240(on)-239(all)-239(pro)-28(cesses.)-413(This)]TJ -2.58 -11.956 Td [(is)-312(a)-311(sp)-28(ecial)-312(purp)-27(ose)-312(data)-312(allo)-27(cation)-312(that)-311(is)-312(useful)-312(in)-311(the)-312(construction)]TJ 0 -11.955 Td [(of)-333(some)-334(m)28(ultilev)28(el)-334(p)1(rec)-1(on)1(ditioners.)]TJ +0 g 0 G + -34.648 -19.579 Td [(2.)]TJ +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(build)-333(state.)]TJ 0 g 0 G - 141.968 -29.888 Td [(77)]TJ + 154.698 -29.888 Td [(72)]TJ 0 g 0 G ET endstream endobj -1382 0 obj +1392 0 obj << -/Length 3810 +/Length 2660 >> stream 0 g 0 G 0 g 0 G 0 g 0 G BT -/F8 9.9626 Tf 162.881 706.129 Td [(6.)]TJ -0 g 0 G - [-500(In)-497(CSR)-496(format)-496(the)-497(co)-28(e\016cien)28(ts)-497(to)-496(b)-28(e)-497(inserted)-496(for)-497(eac)28(h)-496(input)-497(ro)28(w)]TJ/F11 9.9626 Tf 314.877 0 Td [(i)]TJ/F8 9.9626 Tf 8.909 0 Td [(=)]TJ -311.056 -11.955 Td [(1)]TJ/F11 9.9626 Tf 4.982 0 Td [(;)-167(nr)]TJ/F8 9.9626 Tf 18.296 0 Td [(are)-313(represen)28(ted)-313(b)28(y)-313(the)-313(ordered)-313(triples)-312(\050)]TJ/F11 9.9626 Tf 169.802 0 Td [(i)]TJ/F8 9.9626 Tf 5.238 0 Td [(+)]TJ/F11 9.9626 Tf 9.554 0 Td [(ir)-28(w)]TJ/F14 9.9626 Tf 17.41 0 Td [(\000)]TJ/F8 9.9626 Tf 9.555 0 Td [(1\051)]TJ/F11 9.9626 Tf 8.856 0 Td [(;)-167(j)-57(a)]TJ/F8 9.9626 Tf 14.367 0 Td [(\050)]TJ/F11 9.9626 Tf 3.874 0 Td [(j)]TJ/F8 9.9626 Tf 4.673 0 Td [(\051)]TJ/F11 9.9626 Tf 3.874 0 Td [(;)-167(v)-36(al)]TJ/F8 9.9626 Tf 18.05 0 Td [(\050)]TJ/F11 9.9626 Tf 3.874 0 Td [(j)]TJ/F8 9.9626 Tf 4.673 0 Td [(\051,)-317(for)]TJ/F11 9.9626 Tf -297.078 -11.955 Td [(j)]TJ/F8 9.9626 Tf 8.599 0 Td [(=)]TJ/F11 9.9626 Tf 11.674 0 Td [(ir)-28(p)]TJ/F8 9.9626 Tf 13.216 0 Td [(\050)]TJ/F11 9.9626 Tf 3.875 0 Td [(i)]TJ/F8 9.9626 Tf 3.432 0 Td [(\051)]TJ/F11 9.9626 Tf 3.874 0 Td [(;)-167(:)-166(:)-167(:)-167(;)-166(ir)-28(p)]TJ/F8 9.9626 Tf 35.355 0 Td [(\050)]TJ/F11 9.9626 Tf 3.875 0 Td [(i)]TJ/F8 9.9626 Tf 6.109 0 Td [(+)-269(1\051)]TJ/F14 9.9626 Tf 21.959 0 Td [(\000)]TJ/F8 9.9626 Tf 10.426 0 Td [(1;)-438(these)-403(triples)-403(should)-403(b)-28(elong)-403(to)-403(the)-403(curren)28(t)]TJ -122.394 -11.956 Td [(pro)-28(cess,)-272(i.e.)]TJ/F11 9.9626 Tf 53.794 0 Td [(i)]TJ/F8 9.9626 Tf 4.123 0 Td [(+)]TJ/F11 9.9626 Tf 8.44 0 Td [(ir)-28(w)]TJ/F14 9.9626 Tf 16.295 0 Td [(\000)]TJ/F8 9.9626 Tf 8.44 0 Td [(1)-257(should)-257(b)-28(e)-256(one)-257(of)-257(the)-257(lo)-28(cal)-257(indices,)-272(but)-257(are)-257(otherwise)]TJ -91.092 -11.955 Td [(arbitrary;)]TJ -0 g 0 G - -12.73 -19.925 Td [(7.)]TJ +/F8 9.9626 Tf 112.072 706.129 Td [(3.)]TJ 0 g 0 G - [-500(There)-386(is)-385(no)-386(requiremen)28(t)-386(that)-386(a)-385(giv)28(e)-1(n)-385(ro)28(w)-386(m)28(ust)-386(b)-28(e)-385(pass)-1(ed)-385(in)-386(its)-386(en)28(tiret)28(y)]TJ 12.73 -11.955 Td [(to)-355(a)-354(single)-355(call)-354(to)-355(this)-354(routine:)-487(the)-355(buildup)-354(of)-355(a)-354(ro)28(w)-355(ma)28(y)-355(b)-28(e)-354(split)-355(in)28(to)-355(as)]TJ 0 -11.955 Td [(man)28(y)-334(calls)-333(as)-333(desired)-334(\050ev)28(en)-333(in)-334(th)1(e)-334(CSR)-333(format\051;)]TJ + [-500(Calling)-339(the)-339(routine)-339(with)]TJ/F30 9.9626 Tf 121.471 0 Td [(vg)]TJ/F8 9.9626 Tf 13.839 0 Td [(or)]TJ/F30 9.9626 Tf 12.262 0 Td [(parts)]TJ/F8 9.9626 Tf 29.53 0 Td [(implies)-339(that)-339(ev)28(ery)-340(pr)1(o)-28(cess)-340(will)-339(scan)]TJ -164.372 -11.955 Td [(the)-333(en)27(tire)-333(index)-333(space)-334(to)-333(\014gure)-333(out)-333(the)-334(lo)-28(cal)-333(indices.)]TJ 0 g 0 G - -12.73 -19.926 Td [(8.)]TJ + -12.73 -19.926 Td [(4.)]TJ 0 g 0 G - [-500(Co)-28(e\016cien)28(ts)-409(from)-410(di\013eren)28(t)-409(ro)28(ws)-410(ma)28(y)-409(also)-409(b)-28(e)-409(m)-1(ix)1(e)-1(d)-409(up)-409(freely)-409(in)-409(a)-410(single)]TJ 12.73 -11.955 Td [(call,)-333(according)-334(to)-333(the)-333(application)-334(n)1(e)-1(eds;)]TJ + [-500(Ov)28(erlapp)-28(ed)-333(indices)-334(are)-333(p)-28(ossible)-333(with)-333(b)-28(oth)]TJ/F30 9.9626 Tf 199.198 0 Td [(parts)]TJ/F8 9.9626 Tf 29.472 0 Td [(and)]TJ/F30 9.9626 Tf 19.372 0 Td [(vl)]TJ/F8 9.9626 Tf 13.782 0 Td [(in)28(v)28(o)-28(cations.)]TJ 0 g 0 G - -12.73 -19.925 Td [(9.)]TJ + -261.824 -19.925 Td [(5.)]TJ 0 g 0 G - [-500(An)28(y)-416(co)-28(e\016cien)28(ts)-416(from)-416(matrix)-416(ro)28(ws)-416(not)-416(o)28(wned)-416(b)28(y)-416(the)-416(calling)-416(pro)-28(cess)-416(are)]TJ 12.73 -11.955 Td [(silen)28(tly)-334(ignor)1(e)-1(d)1(;)]TJ + [-500(When)-222(the)-222(subroutine)-222(is)-223(in)28(v)28(ok)28(ed)-223(with)]TJ/F30 9.9626 Tf 170.61 0 Td [(vl)]TJ/F8 9.9626 Tf 12.675 0 Td [(in)-222(conjunction)-222(with)]TJ/F30 9.9626 Tf 84.959 0 Td [(globalcheck=.true.)]TJ/F8 9.9626 Tf 94.147 0 Td [(,)]TJ -349.661 -11.955 Td [(it)-368(will)-369(p)-28(erform)-368(a)-368(s)-1(can)-368(of)-368(the)-369(index)-368(space)-369(to)-368(searc)27(h)-368(for)-368(o)27(v)28(erlap)-368(or)-369(orp)1(han)]TJ 0 -11.955 Td [(indices.)]TJ 0 g 0 G - -17.711 -19.926 Td [(10.)]TJ + -12.73 -19.925 Td [(6.)]TJ 0 g 0 G - [-500(If)-358(the)-359(descriptor)-358(is)-359(in)-358(the)-359(assem)28(bled)-359(state,)-364(then)-359(an)28(y)-359(en)28(tries)-358(in)-359(the)-358(sparse)]TJ 17.711 -11.955 Td [(matrix)-430(that)-429(w)27(ould)-429(generate)-430(additional)-430(comm)28(unication)-430(requiremen)28(ts)-430(are)]TJ 0 -11.955 Td [(ignored;)]TJ + [-500(When)-222(the)-222(subroutine)-222(is)-223(in)28(v)28(ok)28(ed)-223(with)]TJ/F30 9.9626 Tf 170.61 0 Td [(vl)]TJ/F8 9.9626 Tf 12.675 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.956 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.955 Td [(nor)-333(o)28(v)27(erlaps;)-333(if)-333(this)-334(assumption)-333(fails,)-333(results)-334(will)-333(b)-28(e)-333(unpredictable.)]TJ 0 g 0 G - -17.711 -19.925 Td [(11.)]TJ + -12.73 -19.925 Td [(7.)]TJ 0 g 0 G - [-500(If)-309(th)1(e)-309(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 17.711 -11.955 Td [(presen)28(t)-334(in)-333(the)-333(original)-333(matrix)-334(are)-333(ignored.)]TJ + [-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 - 141.968 -384.558 Td [(78)]TJ + -34.315 -452.304 Td [(73)]TJ 0 g 0 G ET endstream endobj -1394 0 obj +1403 0 obj << -/Length 6641 +/Length 7181 >> stream 0 g 0 G 0 g 0 G BT -/F16 11.9552 Tf 99.895 706.129 Td [(psb)]TJ +/F16 11.9552 Tf 150.705 706.129 Td [(6.2)-1125(psb)]TJ ET q -1 0 0 1 120.951 706.328 cm +1 0 0 1 202.396 706.328 cm []0 d 0 J 0.398 w 0 0 m 4.035 0 l S Q BT -/F16 11.9552 Tf 124.986 706.129 Td [(spasb)-375(|)-375(Sparse)-375(matrix)-375(assem)31(bly)-375(routine)]TJ +/F16 11.9552 Tf 206.431 706.129 Td [(cdins)-285(|)-286(Comm)32(unication)-286(descriptor)-285(insert)-285(routine)]TJ +0 g 0 G 0 g 0 G +/F30 9.9626 Tf -55.726 -18.389 Td [(call)-525(psb_cdins\050nz,)-525(ia,)-525(ja,)-525(desc_a,)-525(info)-525([,ila,jla]\051)]TJ 0 -11.956 Td [(call)-525(psb_cdins\050nz,ja,desc,info[,jla,mask,lidx]\051)]TJ/F8 9.9626 Tf 14.944 -20.465 Td [(This)-428(subroutine)-427(examines)-428(the)-428(edges)-428(of)-428(the)-427(graph)-428(asso)-28(ciated)-428(with)-428(t)1(he)-428(dis-)]TJ -14.944 -11.955 Td [(cretization)-481(mesh)-480(\050and)-481(isomorphic)-480(to)-481(the)-480(sparsit)27(y)-480(pattern)-481(of)-480(a)-481(lin)1(e)-1(ar)-480(system)]TJ 0 -11.955 Td [(co)-28(e\016cien)28(t)-359(matrix\051,)-366(storing)-359(them)-359(as)-359(necess)-1(ar)1(y)-360(in)28(to)-359(the)-359(comm)28(unication)-359(des)-1(crip)1(-)]TJ 0 -11.955 Td [(tor.)-506(In)-353(the)-354(\014rst)-354(form)-354(the)-354(edges)-353(are)-354(sp)-28(eci\014ed)-354(as)-354(pairs)-353(of)-354(indices)]TJ/F11 9.9626 Tf 278.053 0 Td [(ia)]TJ/F8 9.9626 Tf 8.698 0 Td [(\050)]TJ/F11 9.9626 Tf 3.875 0 Td [(i)]TJ/F8 9.9626 Tf 3.432 0 Td [(\051)]TJ/F11 9.9626 Tf 3.874 0 Td [(;)-167(j)-57(a)]TJ/F8 9.9626 Tf 14.367 0 Td [(\050)]TJ/F11 9.9626 Tf 3.874 0 Td [(i)]TJ/F8 9.9626 Tf 3.433 0 Td [(\051;)-364(the)]TJ -319.606 -11.955 Td [(starting)-394(index)]TJ/F11 9.9626 Tf 65.222 0 Td [(ia)]TJ/F8 9.9626 Tf 8.699 0 Td [(\050)]TJ/F11 9.9626 Tf 3.874 0 Td [(i)]TJ/F8 9.9626 Tf 3.432 0 Td [(\051)-394(should)-394(b)-28(elong)-394(to)-394(the)-395(cur)1(re)-1(n)28(t)-394(pro)-28(cess.)-627(In)-394(the)-394(second)-394(form)]TJ -81.227 -11.955 Td [(only)-333(the)-334(remote)-333(indices)]TJ/F11 9.9626 Tf 104.968 0 Td [(j)-57(a)]TJ/F8 9.9626 Tf 9.939 0 Td [(\050)]TJ/F11 9.9626 Tf 3.874 0 Td [(i)]TJ/F8 9.9626 Tf 3.432 0 Td [(\051)-333(are)-334(sp)-27(e)-1(ci\014ed.)]TJ 0 g 0 G -/F30 9.9626 Tf -25.091 -18.389 Td [(call)-525(psb_spasb\050a,)-525(desc_a,)-525(info,)-525(afmt,)-525(upd,)-525(dupl,)-525(mold\051)]TJ +/F27 9.9626 Tf -122.213 -20.465 Td [(T)32(yp)-32(e:)]TJ 0 g 0 G -/F27 9.9626 Tf 0 -21.202 Td [(T)32(yp)-32(e:)]TJ +/F8 9.9626 Tf 33.797 0 Td [(Async)28(hronous.)]TJ 0 g 0 G -/F8 9.9626 Tf 33.797 0 Td [(Sync)28(hronous.)]TJ +/F27 9.9626 Tf -33.797 -19.345 Td [(On)-383(En)32(try)]TJ 0 g 0 G -/F27 9.9626 Tf -33.797 -19.639 Td [(On)-383(En)32(try)]TJ 0 g 0 G + 0 -19.344 Td [(nz)]TJ 0 g 0 G - 0 -19.638 Td [(desc)]TJ -ET -q -1 0 0 1 121.81 627.46 cm -[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S -Q -BT -/F27 9.9626 Tf 125.247 627.261 Td [(a)]TJ +/F8 9.9626 Tf 16.438 0 Td [(the)-333(n)27(u)1(m)27(b)-27(e)-1(r)-333(of)-333(p)-28(oin)28(ts)-333(b)-28(eing)-333(inserte)-1(d)1(.)]TJ 8.469 -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 [(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(alue.)]TJ 0 g 0 G -/F8 9.9626 Tf 10.551 0 Td [(the)-333(comm)27(unication)-333(descriptor.)]TJ -10.996 -11.956 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.183 0 Td [(required)]TJ/F8 9.9626 Tf 41.899 0 Td [(.)]TJ -67.082 -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 579.639 cm -[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S -Q -BT -/F30 9.9626 Tf 315.174 579.44 Td [(desc)]TJ -ET -q -1 0 0 1 336.723 579.639 cm -[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S -Q -BT -/F30 9.9626 Tf 339.861 579.44 Td [(type)]TJ +/F27 9.9626 Tf -24.907 -19.344 Td [(ia)]TJ 0 g 0 G -/F8 9.9626 Tf 20.921 0 Td [(.)]TJ +/F8 9.9626 Tf 13.733 0 Td [(the)-333(indices)-334(of)-333(the)-333(starting)-334(v)28(ertex)-333(of)-333(the)-334(edges)-333(b)-28(eing)-333(inserted.)]TJ 11.174 -11.956 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 [(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(arra)27(y)-333(of)-333(length)]TJ/F11 9.9626 Tf 172.547 0 Td [(nz)]TJ/F8 9.9626 Tf 11.051 0 Td [(.)]TJ 0 g 0 G -/F27 9.9626 Tf -260.887 -19.639 Td [(afm)32(t)]TJ +/F27 9.9626 Tf -208.505 -19.344 Td [(ja)]TJ 0 g 0 G -/F8 9.9626 Tf 27.737 0 Td [(the)-333(storage)-334(format)-333(for)-333(the)-334(sparse)-333(matrix.)]TJ -2.83 -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 [(optional)]TJ/F8 9.9626 Tf 40.577 0 Td [(.)]TJ -70.188 -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(arra)28(y)-333(of)-334(c)28(haracters.)-444(Defalt:)-445('CSR'.)]TJ +/F8 9.9626 Tf 14.051 0 Td [(the)-333(indices)-334(of)-333(the)-333(end)-334(v)28(ertex)-333(of)-334(t)1(he)-334(edges)-333(b)-28(eing)-333(inserted.)]TJ 10.856 -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.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(arra)27(y)-333(of)-333(length)]TJ/F11 9.9626 Tf 172.547 0 Td [(nz)]TJ/F8 9.9626 Tf 11.051 0 Td [(.)]TJ 0 g 0 G -/F27 9.9626 Tf -24.907 -19.639 Td [(up)-32(d)]TJ +/F27 9.9626 Tf -208.505 -19.344 Td [(mask)]TJ 0 g 0 G -/F8 9.9626 Tf 24.395 0 Td [(Pro)28(vide)-333(for)-334(up)-27(dates)-334(to)-333(the)-333(matrix)-334(co)-28(e\016cien)28(ts.)]TJ 0.512 -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 [(optional)]TJ/F8 9.9626 Tf 40.577 0 Td [(.)]TJ -70.188 -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(in)28(teger,)-333(p)-28(ossible)-333(v)55(alues:)]TJ/F30 9.9626 Tf 164.633 0 Td [(psb_upd_srch_)]TJ/F8 9.9626 Tf 67.994 0 Td [(,)]TJ/F30 9.9626 Tf 6.089 0 Td [(psb_upd_perm_)]TJ +/F8 9.9626 Tf 30.664 0 Td [(Mask)-329(e)-1(n)28(tries)-329(in)]TJ/F30 9.9626 Tf 70.038 0 Td [(ja)]TJ/F8 9.9626 Tf 10.461 0 Td [(,)-330(they)-330(are)-329(inserted)-330(only)-329(when)-329(the)-330(corresp)-28(onding)]TJ/F30 9.9626 Tf 211.627 0 Td [(mask)]TJ/F8 9.9626 Tf -297.883 -11.955 Td [(en)28(tries)-334(are)]TJ/F30 9.9626 Tf 48.54 0 Td [(.true.)]TJ/F8 9.9626 Tf -48.54 -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.956 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(optional)]TJ/F8 9.9626 Tf 40.577 0 Td [(.)]TJ -70.188 -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:)-445(a)-333(logical)-333(arra)28(y)-334(of)-333(length)]TJ/F11 9.9626 Tf 165.048 0 Td [(nz)]TJ/F8 9.9626 Tf 11.051 0 Td [(,)-333(default)]TJ/F30 9.9626 Tf 39.574 0 Td [(.true.)]TJ/F8 9.9626 Tf 31.382 0 Td [(.)]TJ 0 g 0 G -/F27 9.9626 Tf -263.623 -19.639 Td [(dupl)]TJ +/F27 9.9626 Tf -271.962 -19.344 Td [(lidx)]TJ 0 g 0 G -/F8 9.9626 Tf 27.259 0 Td [(Ho)28(w)-334(to)-333(handle)-333(duplicate)-333(co)-28(e\016cien)27(ts.)]TJ -2.352 -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 [(optional)]TJ/F8 9.9626 Tf 40.577 0 Td [(.)]TJ -70.188 -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)-308(as:)-432(in)27(teger,)-313(p)-28(ossible)-309(v)56(alues:)]TJ/F30 9.9626 Tf 163.696 0 Td [(psb_dupl_ovwrt_)]TJ/F8 9.9626 Tf 78.456 0 Td [(,)]TJ/F30 9.9626 Tf 5.891 0 Td [(psb_dupl_add_)]TJ/F8 9.9626 Tf 67.994 0 Td [(,)]TJ/F30 9.9626 Tf -316.037 -11.955 Td [(psb_dupl_err_)]TJ/F8 9.9626 Tf 67.994 0 Td [(.)]TJ +/F8 9.9626 Tf 23.758 0 Td [(User)-333(de\014ned)-334(lo)-27(cal)-334(indices)-333(for)]TJ/F30 9.9626 Tf 128.85 0 Td [(ja)]TJ/F8 9.9626 Tf 10.461 0 Td [(.)]TJ -138.162 -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 [(optional)]TJ/F8 9.9626 Tf 40.577 0 Td [(.)]TJ -70.188 -11.956 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:)-445(an)-333(in)28(teger)-333(arra)27(y)-333(of)-333(length)]TJ/F11 9.9626 Tf 172.547 0 Td [(nz)]TJ/F8 9.9626 Tf 11.052 0 Td [(.)]TJ 0 g 0 G -/F27 9.9626 Tf -92.901 -19.639 Td [(mold)]TJ +/F27 9.9626 Tf -208.506 -20.465 Td [(On)-383(Return)]TJ 0 g 0 G -/F8 9.9626 Tf 29.805 0 Td [(The)-333(desired)-334(dynamic)-333(t)28(yp)-28(e)-333(for)-334(the)-333(in)28(ternal)-333(matrix)-334(storage.)]TJ -4.898 -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.956 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(optional)]TJ/F8 9.9626 Tf 40.577 0 Td [(.)]TJ -70.188 -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(ob)-55(ject)-334(of)-333(a)-333(class)-334(deriv)28(ed)-333(from)]TJ/F30 9.9626 Tf 203.349 0 Td [(psb)]TJ -ET -q -1 0 0 1 344.47 297.847 cm -[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S -Q -BT -/F30 9.9626 Tf 347.608 297.647 Td [(T)]TJ -ET -q -1 0 0 1 353.466 297.847 cm -[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S -Q -BT -/F30 9.9626 Tf 356.604 297.647 Td [(base)]TJ -ET -q -1 0 0 1 378.153 297.847 cm -[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S -Q -BT -/F30 9.9626 Tf 381.291 297.647 Td [(sparse)]TJ +0 g 0 G + 0 -19.344 Td [(desc)]TJ ET q -1 0 0 1 413.301 297.847 cm -[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +1 0 0 1 172.619 168.346 cm +[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F30 9.9626 Tf 416.439 297.647 Td [(mat)]TJ/F8 9.9626 Tf 15.691 0 Td [(.)]TJ -0 g 0 G -/F27 9.9626 Tf -332.235 -21.201 Td [(On)-383(Return)]TJ -0 g 0 G -0 g 0 G - 0 -19.639 Td [(a)]TJ +/F27 9.9626 Tf 176.057 168.146 Td [(a)]TJ 0 g 0 G -/F8 9.9626 Tf 10.551 0 Td [(the)-333(matrix)-334(to)-333(b)-28(e)-333(assem)28(bled.)]TJ 14.356 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 27.951 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -27.951 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.183 0 Td [(required)]TJ/F8 9.9626 Tf -25.183 -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(structured)-333(data)-333(of)-334(t)28(yp)-28(e)]TJ +/F8 9.9626 Tf 10.55 0 Td [(the)-333(up)-28(dated)-333(comm)27(unication)-333(descriptor.)]TJ -10.996 -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.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 209.186 cm +1 0 0 1 362.845 120.525 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 315.174 208.986 Td [(Tspmat)]TJ +/F30 9.9626 Tf 365.983 120.326 Td [(desc)]TJ ET q -1 0 0 1 347.183 209.186 cm +1 0 0 1 387.532 120.525 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 350.322 208.986 Td [(type)]TJ -0 g 0 G -/F8 9.9626 Tf 20.921 0 Td [(.)]TJ -0 g 0 G -/F27 9.9626 Tf -271.348 -19.638 Td [(info)]TJ +/F30 9.9626 Tf 390.67 120.326 Td [(type)]TJ 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/F16 11.9552 Tf -24.907 -21.201 Td [(Notes)]TJ +/F8 9.9626 Tf 20.922 0 Td [(.)]TJ 0 g 0 G -/F8 9.9626 Tf 166.875 -29.888 Td [(79)]TJ + -94.013 -29.888 Td [(74)]TJ 0 g 0 G ET endstream endobj -1399 0 obj +1408 0 obj << -/Length 2255 +/Length 3156 >> stream 0 g 0 G 0 g 0 G 0 g 0 G BT -/F8 9.9626 Tf 162.881 706.129 Td [(1.)]TJ +/F27 9.9626 Tf 99.895 706.129 Td [(info)]TJ 0 g 0 G - [-500(On)-406(en)28(try)-406(to)-406(this)-406(routine)-406(the)-406(descriptor)-406(m)28(ust)-406(b)-28(e)-406(in)-406(the)-406(assem)27(b)1(led)-406(s)-1(tate,)]TJ 12.73 -11.955 Td [(i.e.)]TJ/F30 9.9626 Tf 17.158 0 Td [(psb_cdasb)]TJ/F8 9.9626 Tf 50.394 0 Td [(m)28(ust)-334(already)-333(ha)28(v)28(e)-334(b)-27(een)-334(called.)]TJ +/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 - -80.282 -19.926 Td [(2.)]TJ +/F27 9.9626 Tf -24.907 -19.925 Td [(ila)]TJ 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 +/F8 9.9626 Tf 16.916 0 Td [(the)-333(lo)-28(cal)-333(indices)-334(of)-333(the)-333(starting)-334(v)28(ertex)-333(of)-334(the)-333(edges)-333(b)-28(eing)-333(inserted.)]TJ 7.991 -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 [(optional)]TJ/F8 9.9626 Tf 40.577 0 Td [(.)]TJ -70.188 -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 [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(in)28(teger)-333(arra)27(y)-333(of)-333(length)]TJ/F11 9.9626 Tf 172.548 0 Td [(nz)]TJ/F8 9.9626 Tf 11.051 0 Td [(.)]TJ 0 g 0 G - 0 -19.925 Td [(3.)]TJ +/F27 9.9626 Tf -208.506 -19.925 Td [(jla)]TJ 0 g 0 G - [-500(Duplicate)-250(en)28(tries)-250(are)-249(dete)-1(cted)-249(and)-250(handled)-250(in)-249(b)-28(oth)-250(build)-249(and)-250(up)-28(date)-249(state,)]TJ 12.73 -11.955 Td [(with)-282(the)-283(exception)-282(of)-282(the)-283(error)-282(action)-282(that)-283(is)-282(only)-282(tak)28(en)-283(in)-282(the)-282(build)-283(state,)]TJ 0 -11.955 Td [(i.e.)-444(on)-334(the)-333(\014rst)-333(asse)-1(m)28(bly;)]TJ +/F8 9.9626 Tf 17.234 0 Td [(the)-333(lo)-28(cal)-333(indices)-334(of)-333(the)-333(end)-334(v)28(ertex)-333(of)-334(the)-333(edges)-333(b)-28(eing)-333(inserted.)]TJ 7.673 -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 [(optional)]TJ/F8 9.9626 Tf 40.577 0 Td [(.)]TJ -70.188 -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 [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(in)28(teger)-333(arra)27(y)-333(of)-333(length)]TJ/F11 9.9626 Tf 172.548 0 Td [(nz)]TJ/F8 9.9626 Tf 11.051 0 Td [(.)]TJ/F16 11.9552 Tf -208.506 -21.918 Td [(Notes)]TJ 0 g 0 G - -12.73 -19.925 Td [(4.)]TJ +/F8 9.9626 Tf 12.177 -19.925 Td [(1.)]TJ 0 g 0 G - [-500(If)-224(the)-224(up)-28(date)-223(c)27(hoice)-224(is)]TJ/F30 9.9626 Tf 107.516 0 Td [(psb_upd_perm_)]TJ/F8 9.9626 Tf 67.994 0 Td [(,)-246(then)-224(subsequen)28(t)-224(calls)-224(to)]TJ/F30 9.9626 Tf 108.952 0 Td [(psb_spins)]TJ/F8 9.9626 Tf -271.732 -11.956 Td [(to)-246(up)-28(date)-246(the)-246(matrix)-246(m)28(ust)-246(b)-28(e)-246(arranged)-246(in)-246(suc)28(h)-246(a)-246(w)28(a)27(y)-246(as)-246(to)-246(pro)-27(duce)-246(exactly)]TJ 0 -11.955 Td [(the)-228(same)-229(sequence)-228(of)-228(co)-28(e\016cien)27(t)-228(v)56(alues)-229(as)-228(encoun)28(tered)-228(at)-229(the)-228(\014rst)-228(assem)27(b)1(ly;)]TJ + [-500(This)-333(routine)-334(ma)28(y)-333(only)-333(b)-28(e)-334(called)-333(if)-333(the)-333(des)-1(crip)1(tor)-334(is)-333(in)-333(the)-334(build)-333(state;)]TJ 0 g 0 G - -12.73 -19.925 Td [(5.)]TJ + 0 -19.925 Td [(2.)]TJ 0 g 0 G - [-500(The)-333(output)-334(storage)-333(format)-333(need)-334(not)-333(b)-28(e)-333(the)-333(same)-334(on)-333(all)-333(pro)-28(cesses;)]TJ + [-500(This)-305(r)1(o)-1(u)1(tine)-305(automatically)-304(ignores)-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,)-284(i.e)-1(.)-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 - 0 -19.925 Td [(6.)]TJ + -12.73 -19.926 Td [(3.)]TJ 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 + [-500(The)-437(second)-438(form)-437(of)-437(this)-437(routine)-437(will)-438(b)-27(e)-438(useful)-437(when)-437(dealing)-437(with)-438(user-)]TJ 12.73 -11.955 Td [(sp)-28(eci\014ed)-333(index)-333(mappings;)-334(see)-333(also)]TJ +0 0 1 rg 0 0 1 RG + [-334(2.)1(3.1)]TJ +0 g 0 G + [(.)]TJ 0 g 0 G - 141.968 -444.333 Td [(80)]TJ + 141.968 -314.819 Td [(75)]TJ 0 g 0 G ET endstream endobj -1411 0 obj +1417 0 obj << -/Length 3086 +/Length 6223 >> stream 0 g 0 G 0 g 0 G BT -/F16 11.9552 Tf 99.895 706.129 Td [(psb)]TJ +/F16 11.9552 Tf 150.705 706.129 Td [(6.3)-1125(psb)]TJ ET q -1 0 0 1 120.951 706.328 cm +1 0 0 1 202.396 706.328 cm []0 d 0 J 0.398 w 0 0 m 4.035 0 l S Q BT -/F16 11.9552 Tf 124.986 706.129 Td [(spfree)-375(|)-375(F)94(rees)-375(a)-375(sparse)-375(matrix)]TJ +/F16 11.9552 Tf 206.431 706.129 Td [(cdasb)-250(|)-250(Comm)31(unication)-250(descriptor)-250(assem)31(bly)-250(rou-)]TJ -25.091 -13.948 Td [(tine)]TJ 0 g 0 G 0 g 0 G -/F30 9.9626 Tf -25.091 -18.389 Td [(call)-525(psb_spfree\050a,)-525(desc_a,)-525(info\051)]TJ +/F30 9.9626 Tf -30.635 -18.389 Td [(call)-525(psb_cdasb\050desc_a,)-525(info)-525([,)-525(mold]\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 [(Sync)28(hronous.)]TJ 0 g 0 G -/F27 9.9626 Tf -33.797 -19.926 Td [(On)-383(En)32(try)]TJ +/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 -19.926 Td [(desc)]TJ +ET +q +1 0 0 1 172.619 612.223 cm +[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S +Q +BT +/F27 9.9626 Tf 176.057 612.023 Td [(a)]TJ 0 g 0 G -/F8 9.9626 Tf 10.551 0 Td [(the)-333(matrix)-334(to)-333(b)-28(e)-333(freed.)]TJ 14.356 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 27.951 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -27.951 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.183 0 Td [(required)]TJ/F8 9.9626 Tf -25.183 -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(structured)-333(data)-333(of)-334(t)28(yp)-28(e)]TJ +/F8 9.9626 Tf 10.55 0 Td [(the)-333(comm)27(unication)-333(descriptor.)]TJ -10.996 -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.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 578.35 cm +1 0 0 1 362.845 564.402 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 315.174 578.15 Td [(Tspmat)]TJ +/F30 9.9626 Tf 365.983 564.203 Td [(desc)]TJ ET q -1 0 0 1 347.183 578.35 cm +1 0 0 1 387.532 564.402 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 350.322 578.15 Td [(type)]TJ +/F30 9.9626 Tf 390.67 564.203 Td [(type)]TJ 0 g 0 G -/F8 9.9626 Tf 20.921 0 Td [(.)]TJ +/F8 9.9626 Tf 20.922 0 Td [(.)]TJ 0 g 0 G -/F27 9.9626 Tf -271.348 -19.925 Td [(desc)]TJ +/F27 9.9626 Tf -260.887 -19.925 Td [(mold)]TJ +0 g 0 G +/F8 9.9626 Tf 29.805 0 Td [(The)-333(desired)-334(dynamic)-333(t)28(yp)-28(e)-333(for)-334(th)1(e)-334(in)28(ternal)-333(index)-334(storage.)]TJ -4.899 -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.612 0 Td [(optional)]TJ/F8 9.9626 Tf 40.576 0 Td [(.)]TJ -70.188 -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)-222(as:)-389(a)-222(ob)-56(ject)-222(of)-222(t)28(yp)-28(e)-222(deriv)28(e)-1(d)-222(from)-222(\050in)28(teger\051)]TJ/F30 9.9626 Tf 219.871 0 Td [(psb)]TJ ET q -1 0 0 1 121.81 558.424 cm +1 0 0 1 411.8 496.656 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +Q +BT +/F30 9.9626 Tf 414.939 496.457 Td [(T)]TJ +ET +q +1 0 0 1 420.797 496.656 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +Q +BT +/F30 9.9626 Tf 423.935 496.457 Td [(base)]TJ +ET +q +1 0 0 1 445.484 496.656 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +Q +BT +/F30 9.9626 Tf 448.622 496.457 Td [(vect)]TJ +ET +q +1 0 0 1 470.171 496.656 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +Q +BT +/F30 9.9626 Tf 473.309 496.457 Td [(type)]TJ/F8 9.9626 Tf 20.922 0 Td [(.)]TJ +0 g 0 G +/F27 9.9626 Tf -343.526 -21.918 Td [(On)-383(Return)]TJ +0 g 0 G +0 g 0 G + 0 -19.925 Td [(desc)]TJ +ET +q +1 0 0 1 172.619 454.813 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 125.247 558.225 Td [(a)]TJ +/F27 9.9626 Tf 176.057 454.614 Td [(a)]TJ 0 g 0 G -/F8 9.9626 Tf 10.551 0 Td [(the)-333(comm)27(unication)-333(descriptor.)]TJ -10.996 -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.183 0 Td [(required)]TJ/F8 9.9626 Tf 41.899 0 Td [(.)]TJ -67.082 -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 10.55 0 Td [(the)-333(comm)27(unication)-333(descriptor.)]TJ -10.996 -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.956 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.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 510.604 cm +1 0 0 1 362.845 406.992 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 315.174 510.405 Td [(desc)]TJ +/F30 9.9626 Tf 365.983 406.793 Td [(desc)]TJ ET q -1 0 0 1 336.723 510.604 cm +1 0 0 1 387.532 406.992 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 339.861 510.405 Td [(type)]TJ +/F30 9.9626 Tf 390.67 406.793 Td [(type)]TJ 0 g 0 G -/F8 9.9626 Tf 20.921 0 Td [(.)]TJ +/F8 9.9626 Tf 20.922 0 Td [(.)]TJ 0 g 0 G -/F27 9.9626 Tf -260.887 -21.918 Td [(On)-383(Return)]TJ +/F27 9.9626 Tf -260.887 -19.925 Td [(info)]TJ 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)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 -21.918 Td [(Notes)]TJ 0 g 0 G - 0 -19.926 Td [(info)]TJ +/F8 9.9626 Tf 12.176 -19.925 Td [(1.)]TJ 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 + [-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 -12.176 -19.925 Td [(This)-350(call)-350(will)-349(set)-350(up)-350(all)-350(the)-349(neces)-1(sary)-349(information)-350(for)-350(the)-349(halo)-350(data)-350(exc)28(hanges.)]TJ 0 -11.955 Td [(In)-432(doing)-432(so,)-457(the)-432(library)-432(will)-432(need)-433(to)-432(iden)28(tify)-432(the)-432(set)-432(of)-432(pro)-28(cesses)-433(o)28(wning)-432(the)]TJ 0 -11.956 Td [(halo)-476(indices)-477(through)-476(the)-477(use)-476(of)-477(the)]TJ/F30 9.9626 Tf 164.817 0 Td [(desc%fnd_owner\050\051)]TJ/F8 9.9626 Tf 88.433 0 Td [(metho)-28(d;)-548(the)-476(o)28(wning)]TJ -253.25 -11.955 Td [(pro)-28(cesses)-365(are)-365(the)-365(top)-27(ological)-365(neigh)28(b)-28(ours)-365(of)-365(the)-365(calling)-365(p)1(ro)-28(cess.)-539(If)-365(the)-365(user)-365(has)]TJ 0 -11.955 Td [(some)-228(bac)28(kground)-228(information)-228(on)-228(the)-228(pro)-28(cesses)-228(that)-228(are)-228(neigh)28(b)-28(ours)-228(of)-228(the)-228(curren)28(t)]TJ 0 -11.955 Td [(one,)-533(it)-494(i)1(s)-494(p)-28(ossible)-493(to)-493(sp)-28(ecify)-493(explicitly)-493(the)-494(list)-493(of)-493(adjacen)27(t)-493(pro)-27(c)-1(esses)-493(with)-493(a)]TJ 0 -11.955 Td [(call)-393(to)]TJ/F30 9.9626 Tf 31.633 0 Td [(desc%set_p_adjcncy\050list\051)]TJ/F8 9.9626 Tf 125.528 0 Td [(;)-423(this)-393(will)-393(sp)-28(eed)-393(up)-393(the)-393(subsequen)27(t)-393(call)-393(to)]TJ/F30 9.9626 Tf -157.161 -11.956 Td [(psb_cdasb)]TJ/F8 9.9626 Tf 47.073 0 Td [(.)]TJ 0 g 0 G - 141.968 -330.303 Td [(81)]TJ + 119.801 -103.154 Td [(76)]TJ 0 g 0 G ET endstream endobj -1417 0 obj +1424 0 obj << -/Length 3976 +/Length 3287 >> stream 0 g 0 G 0 g 0 G BT -/F16 11.9552 Tf 150.705 706.129 Td [(psb)]TJ +/F16 11.9552 Tf 99.895 706.129 Td [(6.4)-1125(psb)]TJ ET q -1 0 0 1 171.761 706.328 cm +1 0 0 1 151.587 706.328 cm []0 d 0 J 0.398 w 0 0 m 4.035 0 l S Q BT -/F16 11.9552 Tf 175.796 706.129 Td [(sprn)-391(|)-391(Reinit)-391(sparse)-391(matrix)-391(structure)-391(for)-391(psblas)-391(rou-)]TJ -25.091 -13.948 Td [(tines.)]TJ +/F16 11.9552 Tf 155.621 706.129 Td [(cdcp)31(y)-375(|)-375(Copies)-375(a)-375(comm)31(unication)-375(descriptor)]TJ 0 g 0 G 0 g 0 G -/F30 9.9626 Tf 0 -18.389 Td [(call)-525(psb_sprn\050a,)-525(decsc_a,)-525(info,)-525(clear\051)]TJ +/F30 9.9626 Tf -55.726 -18.389 Td [(call)-525(psb_cdcpy\050desc_in,)-525(desc_out,)-525(info\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 [(Sync)28(hronous.)]TJ +/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 +/F27 9.9626 Tf -33.797 -19.926 Td [(On)-383(En)32(try)]TJ 0 g 0 G 0 g 0 G - 0 -19.926 Td [(a)]TJ + 0 -19.925 Td [(desc)]TJ +ET +q +1 0 0 1 121.81 626.17 cm +[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S +Q +BT +/F27 9.9626 Tf 125.247 625.971 Td [(in)]TJ 0 g 0 G -/F8 9.9626 Tf 10.551 0 Td [(the)-333(matrix)-334(to)-333(b)-28(e)-333(reinitialized.)]TJ 14.356 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 27.95 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -27.95 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.183 0 Td [(required)]TJ/F8 9.9626 Tf -25.183 -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)-333(as:)-444(a)-334(structured)-333(data)-333(of)-334(t)28(yp)-28(e)]TJ +/F8 9.9626 Tf 14.529 0 Td [(the)-333(comm)27(unication)-333(descriptor.)]TJ -14.974 -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.183 0 Td [(required)]TJ/F8 9.9626 Tf 41.899 0 Td [(.)]TJ -67.082 -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.914 0 Td [(psb)]TJ +/F30 9.9626 Tf 170.915 0 Td [(psb)]TJ ET q -1 0 0 1 362.845 564.402 cm +1 0 0 1 312.036 578.35 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 365.983 564.203 Td [(Tspmat)]TJ +/F30 9.9626 Tf 315.174 578.15 Td [(desc)]TJ ET q -1 0 0 1 397.993 564.402 cm +1 0 0 1 336.723 578.35 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 401.131 564.203 Td [(type)]TJ +/F30 9.9626 Tf 339.861 578.15 Td [(type)]TJ 0 g 0 G /F8 9.9626 Tf 20.921 0 Td [(.)]TJ 0 g 0 G -/F27 9.9626 Tf -271.347 -19.925 Td [(desc)]TJ +/F27 9.9626 Tf -260.887 -21.917 Td [(On)-383(Return)]TJ +0 g 0 G +0 g 0 G + 0 -19.926 Td [(desc)]TJ ET q -1 0 0 1 172.619 544.477 cm +1 0 0 1 121.81 536.507 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 176.057 544.278 Td [(a)]TJ +/F27 9.9626 Tf 125.247 536.307 Td [(out)]TJ 0 g 0 G -/F8 9.9626 Tf 10.55 0 Td [(the)-333(comm)27(unication)-333(descriptor.)]TJ -10.996 -11.956 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 [(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 21.53 0 Td [(the)-333(comm)27(unication)-333(descriptor)-333(cop)28(y)83(.)]TJ -21.975 -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.183 0 Td [(required)]TJ/F8 9.9626 Tf 41.899 0 Td [(.)]TJ -67.082 -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 [(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 496.656 cm +1 0 0 1 312.036 488.686 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 365.983 496.457 Td [(desc)]TJ +/F30 9.9626 Tf 315.174 488.487 Td [(desc)]TJ ET q -1 0 0 1 387.532 496.656 cm +1 0 0 1 336.723 488.686 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 390.67 496.457 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 -19.925 Td [(clear)]TJ -0 g 0 G -/F8 9.9626 Tf 28.795 0 Td [(Cho)-28(ose)-333(whether)-333(to)-334(zero)-333(out)-333(m)-1(atr)1(ix)-334(co)-28(e\016cien)28(ts)]TJ -3.888 -11.956 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 27.95 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 [(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.955 Td [(Default:)-444(true.)]TJ -0 g 0 G -/F27 9.9626 Tf -24.907 -21.918 Td [(On)-383(Return)]TJ -0 g 0 G -0 g 0 G - 0 -19.925 Td [(info)]TJ +/F30 9.9626 Tf 339.861 488.487 Td [(type)]TJ 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.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.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/F16 11.9552 Tf -24.907 -21.918 Td [(Notes)]TJ +/F8 9.9626 Tf 20.921 0 Td [(.)]TJ 0 g 0 G -/F8 9.9626 Tf 12.176 -19.925 Td [(1.)]TJ +/F27 9.9626 Tf -260.887 -19.926 Td [(info)]TJ 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 +/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 - 154.698 -206.766 Td [(82)]TJ + 141.968 -330.303 Td [(77)]TJ 0 g 0 G ET endstream endobj -1424 0 obj +1429 0 obj << -/Length 5107 +/Length 2253 >> stream 0 g 0 G 0 g 0 G BT -/F16 11.9552 Tf 99.895 706.129 Td [(psb)]TJ +/F16 11.9552 Tf 150.705 706.129 Td [(6.5)-1125(psb)]TJ ET q -1 0 0 1 120.951 706.328 cm +1 0 0 1 202.396 706.328 cm []0 d 0 J 0.398 w 0 0 m 4.035 0 l S Q BT -/F16 11.9552 Tf 124.986 706.129 Td [(geall)-375(|)-375(Allo)-31(cates)-375(a)-375(dense)-375(matrix)]TJ +/F16 11.9552 Tf 206.431 706.129 Td [(cdfree)-375(|)-375(F)94(rees)-375(a)-375(comm)31(unication)-375(descriptor)]TJ 0 g 0 G 0 g 0 G -/F30 9.9626 Tf -25.091 -18.389 Td [(call)-525(psb_geall\050x,)-525(desc_a,)-525(info,)-525(n,)-525(lb\051)]TJ +/F30 9.9626 Tf -55.726 -18.389 Td [(call)-525(psb_cdfree\050desc_a,)-525(info\051)]TJ 0 g 0 G /F27 9.9626 Tf 0 -21.918 Td [(T)32(yp)-32(e:)]TJ 0 g 0 G @@ -16331,242 +16352,197 @@ BT 0 -19.925 Td [(desc)]TJ ET q -1 0 0 1 121.81 626.17 cm +1 0 0 1 172.619 626.17 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 125.247 625.971 Td [(a)]TJ +/F27 9.9626 Tf 176.057 625.971 Td [(a)]TJ 0 g 0 G -/F8 9.9626 Tf 10.551 0 Td [(The)-333(comm)27(unication)-333(descriptor.)]TJ -10.996 -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 [(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(v)56(ariable)-334(of)-333(t)28(yp)-28(e)]TJ +/F8 9.9626 Tf 10.55 0 Td [(the)-333(comm)27(unication)-333(descriptor)-333(to)-334(b)-27(e)-334(freed.)]TJ -10.996 -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(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 137.346 0 Td [(psb)]TJ +/F30 9.9626 Tf 170.915 0 Td [(psb)]TJ ET q -1 0 0 1 278.467 578.35 cm +1 0 0 1 362.845 578.35 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 281.605 578.15 Td [(desc)]TJ +/F30 9.9626 Tf 365.983 578.15 Td [(desc)]TJ ET q -1 0 0 1 303.154 578.35 cm +1 0 0 1 387.532 578.35 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 306.292 578.15 Td [(type)]TJ +/F30 9.9626 Tf 390.67 578.15 Td [(type)]TJ 0 g 0 G /F8 9.9626 Tf 20.922 0 Td [(.)]TJ 0 g 0 G -/F27 9.9626 Tf -227.319 -31.88 Td [(n)]TJ -0 g 0 G -/F8 9.9626 Tf 11.347 0 Td [(The)-333(n)27(u)1(m)27(b)-27(e)-1(r)-333(of)-333(columns)-333(of)-334(the)-333(dense)-333(m)-1(atr)1(ix)-334(to)-333(b)-28(e)-333(allo)-28(cated.)]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.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.956 Td [(Sp)-28(eci\014ed)-343(as:)-463(In)27(teger)-343(scalar,)-345(default)-343(1.)-473(It)-343(is)-343(not)-343(a)-343(v)56(alid)-343(argumen)28(t)-343(if)]TJ/F11 9.9626 Tf 294.599 0 Td [(x)]TJ/F8 9.9626 Tf 9.11 0 Td [(is)-343(a)]TJ -303.709 -11.955 Td [(rank-1)-333(arra)28(y)83(.)]TJ -0 g 0 G -/F27 9.9626 Tf -24.907 -19.925 Td [(lb)]TJ -0 g 0 G -/F8 9.9626 Tf 14.529 0 Td [(The)-489(lo)28(w)27(er)-489(b)-27(ound)-489(for)-489(the)-490(column)-489(index)-489(range)-489(of)-489(the)-489(dense)-489(matrix)-489(to)-489(b)-28(e)]TJ 10.378 -11.955 Td [(allo)-28(cated.)]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.956 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)-343(as:)-463(In)27(teger)-343(scalar,)-345(default)-343(1.)-473(It)-343(is)-343(not)-343(a)-343(v)56(alid)-343(argumen)28(t)-343(if)]TJ/F11 9.9626 Tf 294.599 0 Td [(x)]TJ/F8 9.9626 Tf 9.11 0 Td [(is)-343(a)]TJ -303.709 -11.955 Td [(rank-1)-333(arra)28(y)83(.)]TJ -0 g 0 G -/F27 9.9626 Tf -24.907 -21.918 Td [(On)-383(Return)]TJ -0 g 0 G -0 g 0 G - 0 -19.925 Td [(x)]TJ -0 g 0 G -/F8 9.9626 Tf 11.028 0 Td [(The)-333(dense)-334(matrix)-333(to)-333(b)-28(e)-334(all)1(o)-28(cated.)]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.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 [(Sp)-28(eci\014ed)-303(as:)-430(a)-304(rank)-303(one)-304(or)-304(t)28(w)28(o)-304(arra)28(y)-304(with)-303(the)-304(ALLOCA)83(T)83(ABLE)-303(attribute)]TJ 0 -11.955 Td [(or)-333(an)-334(ob)-55(ject)-333(of)-334(t)28(yp)-28(e)]TJ -0 0 1 rg 0 0 1 RG -/F30 9.9626 Tf 89.968 0 Td [(psb)]TJ -ET -q -1 0 0 1 231.089 293.418 cm -[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S -Q -BT -/F30 9.9626 Tf 234.227 293.219 Td [(T)]TJ -ET -q -1 0 0 1 240.085 293.418 cm -[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S -Q -BT -/F30 9.9626 Tf 243.223 293.219 Td [(vect)]TJ -ET -q -1 0 0 1 264.772 293.418 cm -[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S -Q -BT -/F30 9.9626 Tf 267.911 293.219 Td [(type)]TJ +/F27 9.9626 Tf -260.887 -21.917 Td [(On)-383(Return)]TJ 0 g 0 G -/F8 9.9626 Tf 20.921 0 Td [(,)-333(of)-334(t)28(yp)-28(e)-333(real,)-333(complex)-334(or)-333(in)28(teger.)]TJ 0 g 0 G -/F27 9.9626 Tf -188.937 -31.88 Td [(info)]TJ + 0 -19.926 Td [(info)]TJ 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 +/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 -123.08 Td [(83)]TJ + 141.968 -398.049 Td [(78)]TJ 0 g 0 G ET endstream endobj -1430 0 obj +1435 0 obj << -/Length 6841 +/Length 5932 >> stream 0 g 0 G 0 g 0 G BT -/F16 11.9552 Tf 150.705 706.129 Td [(psb)]TJ +/F16 11.9552 Tf 99.895 706.129 Td [(6.6)-1125(psb)]TJ ET q -1 0 0 1 171.761 706.328 cm +1 0 0 1 151.587 706.328 cm []0 d 0 J 0.398 w 0 0 m 4.035 0 l S Q BT -/F16 11.9552 Tf 175.796 706.129 Td [(geins)-375(|)-375(Dense)-375(matrix)-375(insertion)-375(routine)]TJ -0 g 0 G -0 g 0 G -/F30 9.9626 Tf -25.091 -18.389 Td [(call)-525(psb_geins\050m,)-525(irw,)-525(val,)-525(x,)-525(desc_a,)-525(info)-525([,dupl,local]\051)]TJ -0 g 0 G -/F27 9.9626 Tf 0 -20.681 Td [(T)32(yp)-32(e:)]TJ +/F16 11.9552 Tf 155.621 706.129 Td [(cdbldext)-597(|)-597(Build)-597(an)-598(extended)-597(comm)31(unication)]TJ -25.091 -13.948 Td [(descriptor)]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.43 Td [(On)-383(En)32(try)]TJ 0 g 0 G +/F30 9.9626 Tf -30.635 -19.114 Td [(call)-525(psb_cdbldext\050a,desc_a,nl,desc_out,)-525(info,)-525(extype\051)]TJ/F8 9.9626 Tf 14.944 -23.476 Td [(This)-298(subroutine)-297(builds)-298(an)-297(extended)-298(comm)28(unication)-298(descriptor,)-305(based)-297(on)-298(the)]TJ -14.944 -11.955 Td [(input)-389(descriptor)]TJ/F30 9.9626 Tf 74.288 0 Td [(desc_a)]TJ/F8 9.9626 Tf 35.261 0 Td [(and)-389(on)-390(the)-389(stencil)-389(s)-1(p)-27(eci\014ed)-390(through)-389(the)-389(input)-390(sparse)]TJ -109.549 -11.956 Td [(matrix)]TJ/F30 9.9626 Tf 32.407 0 Td [(a)]TJ/F8 9.9626 Tf 5.23 0 Td [(.)]TJ 0 g 0 G - 0 -19.431 Td [(m)]TJ +/F27 9.9626 Tf -37.637 -21.094 Td [(T)32(yp)-32(e:)]TJ 0 g 0 G -/F8 9.9626 Tf 14.529 0 Td [(Num)28(b)-28(er)-333(of)-334(ro)28(ws)-333(in)]TJ/F11 9.9626 Tf 84.516 0 Td [(v)-36(al)]TJ/F8 9.9626 Tf 16.942 0 Td [(to)-333(b)-28(e)-333(inse)-1(r)1(te)-1(d)1(.)]TJ -91.081 -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 [(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.)]TJ +/F8 9.9626 Tf 33.797 0 Td [(Sync)28(hronous.)]TJ 0 g 0 G -/F27 9.9626 Tf -24.906 -19.431 Td [(irw)]TJ +/F27 9.9626 Tf -33.797 -21.483 Td [(On)-383(En)32(try)]TJ 0 g 0 G -/F8 9.9626 Tf 21.157 0 Td [(Indices)-444(of)-445(the)-444(ro)27(ws)-444(to)-445(b)-27(e)-445(inserted.)-778(Sp)-28(eci\014cally)84(,)-472(ro)27(w)]TJ/F11 9.9626 Tf 237.973 0 Td [(i)]TJ/F8 9.9626 Tf 7.861 0 Td [(of)]TJ/F11 9.9626 Tf 12.454 0 Td [(v)-36(al)]TJ/F8 9.9626 Tf 18.049 0 Td [(will)-444(b)-28(e)-445(in-)]TJ -272.588 -11.955 Td [(serted)-435(in)28(to)-436(th)1(e)-436(lo)-27(cal)-436(ro)28(w)-435(corresp)-28(onding)-435(to)-435(the)-435(global)-435(ro)28(w)-435(index)]TJ/F11 9.9626 Tf 289.252 0 Td [(ir)-28(w)]TJ/F8 9.9626 Tf 15.605 0 Td [(\050)]TJ/F11 9.9626 Tf 3.874 0 Td [(i)]TJ/F8 9.9626 Tf 3.432 0 Td [(\051.)]TJ -312.163 -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 [(in)]TJ/F8 9.9626 Tf 9.547 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 -/F27 9.9626 Tf -24.906 -19.43 Td [(v)64(al)]TJ + 0 -21.484 Td [(a)]TJ 0 g 0 G -/F8 9.9626 Tf 19.143 0 Td [(the)-333(dense)-334(submatrix)-333(to)-333(b)-28(e)-333(inserted.)]TJ 5.763 -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 [(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(rank)-333(1)-333(o)-1(r)-333(2)-333(arra)28(y)83(.)-444(Sp)-28(eci\014ed)-333(as:)-445(an)-333(in)28(teger)-334(v)56(alue.)]TJ +/F8 9.9626 Tf 10.551 0 Td [(A)-333(sparse)-334(matrix)-333(Scop)-28(e:)]TJ/F27 9.9626 Tf 101.176 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf 23.073 0 Td [(.)]TJ -109.893 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.183 0 Td [(required)]TJ/F8 9.9626 Tf 41.899 0 Td [(.)]TJ -67.082 -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(t)27(yp)-27(e.)]TJ 0 g 0 G -/F27 9.9626 Tf -24.906 -19.43 Td [(desc)]TJ +/F27 9.9626 Tf -24.907 -21.484 Td [(desc)]TJ ET q -1 0 0 1 172.619 414.689 cm +1 0 0 1 121.81 504.47 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 176.057 414.49 Td [(a)]TJ +/F27 9.9626 Tf 125.247 504.27 Td [(a)]TJ 0 g 0 G -/F8 9.9626 Tf 10.55 0 Td [(the)-333(comm)27(unication)-333(descriptor.)]TJ -10.996 -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 [(in)]TJ/F8 9.9626 Tf 9.548 0 Td [(.)]TJ -43.034 -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 10.551 0 Td [(the)-333(comm)27(unication)-333(descriptor.)]TJ -10.996 -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.183 0 Td [(required)]TJ/F8 9.9626 Tf 41.899 0 Td [(.)]TJ -67.082 -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 362.845 366.869 cm +1 0 0 1 312.036 456.649 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 365.983 366.669 Td [(desc)]TJ +/F30 9.9626 Tf 315.174 456.45 Td [(Tspmat)]TJ ET q -1 0 0 1 387.532 366.869 cm +1 0 0 1 347.183 456.649 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 390.67 366.669 Td [(type)]TJ -0 g 0 G -/F8 9.9626 Tf 20.922 0 Td [(.)]TJ +/F30 9.9626 Tf 350.322 456.45 Td [(type)]TJ 0 g 0 G -/F27 9.9626 Tf -260.887 -19.43 Td [(dupl)]TJ +/F8 9.9626 Tf 20.921 0 Td [(.)]TJ 0 g 0 G -/F8 9.9626 Tf 27.259 0 Td [(Ho)28(w)-334(to)-333(handle)-333(duplicate)-333(co)-28(e\016cien)27(ts.)]TJ -2.352 -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 [(optional)]TJ/F8 9.9626 Tf 40.576 0 Td [(.)]TJ -70.188 -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.956 Td [(Sp)-28(eci\014ed)-308(as:)-432(in)27(teger,)-313(p)-28(ossible)-309(v)56(alues:)]TJ/F30 9.9626 Tf 163.697 0 Td [(psb_dupl_ovwrt_)]TJ/F8 9.9626 Tf 78.455 0 Td [(,)]TJ/F30 9.9626 Tf 5.891 0 Td [(psb_dupl_add_)]TJ/F8 9.9626 Tf 67.995 0 Td [(.)]TJ +/F27 9.9626 Tf -271.348 -21.484 Td [(nl)]TJ 0 g 0 G -/F27 9.9626 Tf -340.944 -19.43 Td [(lo)-32(cal)]TJ +/F8 9.9626 Tf 14.529 0 Td [(the)-333(n)27(u)1(m)27(b)-27(e)-1(r)-333(of)-333(additional)-333(la)28(y)27(ers)-333(desired.)]TJ 10.378 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 27.951 0 Td [(global)]TJ/F8 9.9626 Tf 29.756 0 Td [(.)]TJ -57.707 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.183 0 Td [(required)]TJ/F8 9.9626 Tf 41.899 0 Td [(.)]TJ -67.082 -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(an)-333(in)28(teger)-333(v)55(alue)]TJ/F11 9.9626 Tf 130.428 0 Td [(nl)]TJ/F14 9.9626 Tf 11.916 0 Td [(\025)]TJ/F8 9.9626 Tf 10.516 0 Td [(0.)]TJ 0 g 0 G -/F8 9.9626 Tf 28.054 0 Td [(Whether)-289(the)-289(en)28(tries)-289(in)-289(the)-289(index)-288(v)27(ector)]TJ/F30 9.9626 Tf 172.77 0 Td [(irw)]TJ/F8 9.9626 Tf 15.691 0 Td [(,)-298(are)-289(already)-289(in)-288(lo)-28(cal)-289(n)28(um)28(b)-28(er-)]TJ -191.608 -11.955 Td [(ing.)]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.073 0 Td [(.)]TJ -51.024 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.184 0 Td [(optional)]TJ/F8 9.9626 Tf 40.577 0 Td [(.)]TJ -65.76 -11.956 Td [(Sp)-28(eci\014ed)-333(as:)-444(a)-334(logical)-333(v)55(alue;)-333(default:)]TJ/F30 9.9626 Tf 163.055 0 Td [(.false.)]TJ/F8 9.9626 Tf 36.612 0 Td [(.)]TJ +/F27 9.9626 Tf -177.767 -21.483 Td [(ext)32(yp)-32(e)]TJ 0 g 0 G -/F27 9.9626 Tf -224.574 -20.68 Td [(On)-383(Return)]TJ +/F8 9.9626 Tf 38.398 0 Td [(the)-333(kind)-334(of)-333(estension)-333(required.)]TJ -13.491 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 27.951 0 Td [(global)]TJ/F8 9.9626 Tf 29.756 0 Td [(.)]TJ -57.707 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.183 0 Td [(optional)]TJ/F8 9.9626 Tf 44.396 0 Td [(.)]TJ -69.579 -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)-419(as:)-616(an)-420(in)28(teger)-419(v)55(alue)]TJ/F30 9.9626 Tf 135.566 0 Td [(psb_ovt_xhal_)]TJ/F8 9.9626 Tf 67.994 0 Td [(,)]TJ/F30 9.9626 Tf 7.159 0 Td [(psb_ovt_asov_)]TJ/F8 9.9626 Tf 67.995 0 Td [(,)-441(default:)]TJ/F30 9.9626 Tf -278.714 -11.955 Td [(psb_ovt_xhal_)]TJ 0 g 0 G +/F27 9.9626 Tf -24.907 -23.476 Td [(On)-383(Return)]TJ 0 g 0 G - 0 -19.43 Td [(x)]TJ 0 g 0 G -/F8 9.9626 Tf 11.028 0 Td [(the)-333(output)-334(d)1(e)-1(n)1(s)-1(e)-333(matrix.)]TJ 13.879 -11.956 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 [(inout)]TJ/F8 9.9626 Tf 26.097 0 Td [(.)]TJ -59.582 -11.955 Td [(Sp)-28(eci\014ed)-232(as:)-394(a)-233(rank)-233(one)-232(or)-233(t)28(w)28(o)-233(arra)28(y)-233(or)-232(an)-233(ob)-55(ject)-233(of)-233(t)28(yp)-27(e)]TJ -0 0 1 rg 0 0 1 RG -/F30 9.9626 Tf 241.975 0 Td [(psb)]TJ + 0 -21.484 Td [(desc)]TJ ET q -1 0 0 1 433.906 144.435 cm -[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +1 0 0 1 121.81 261.126 cm +[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F30 9.9626 Tf 437.044 144.236 Td [(T)]TJ +/F27 9.9626 Tf 125.247 260.927 Td [(out)]TJ +0 g 0 G +/F8 9.9626 Tf 21.53 0 Td [(the)-333(extended)-334(comm)28(unication)-333(descriptor.)]TJ -21.975 -11.956 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.183 0 Td [(required)]TJ/F8 9.9626 Tf 41.899 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.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 442.902 144.435 cm +1 0 0 1 312.036 213.305 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 446.04 144.236 Td [(vect)]TJ +/F30 9.9626 Tf 315.174 213.106 Td [(desc)]TJ ET q -1 0 0 1 467.589 144.435 cm +1 0 0 1 336.723 213.305 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 470.727 144.236 Td [(type)]TJ +/F30 9.9626 Tf 339.861 213.106 Td [(type)]TJ 0 g 0 G -/F8 9.9626 Tf 20.922 0 Td [(,)]TJ -316.038 -11.955 Td [(of)-333(t)27(yp)-27(e)-334(real,)-333(complex)-333(or)-334(in)28(teger.)]TJ +/F8 9.9626 Tf 20.921 0 Td [(.)]TJ +0 g 0 G +/F27 9.9626 Tf -260.887 -21.484 Td [(info)]TJ +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/F16 11.9552 Tf -24.907 -23.476 Td [(Notes)]TJ 0 g 0 G - 141.968 -41.843 Td [(84)]TJ +/F8 9.9626 Tf 166.875 -29.888 Td [(79)]TJ 0 g 0 G ET endstream endobj -1434 0 obj +1440 0 obj << -/Length 1111 +/Length 1587 >> stream 0 g 0 G 0 g 0 G 0 g 0 G BT -/F27 9.9626 Tf 99.895 706.129 Td [(info)]TJ -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/F16 11.9552 Tf -24.907 -21.918 Td [(Notes)]TJ -0 g 0 G -/F8 9.9626 Tf 12.177 -19.925 Td [(1.)]TJ +/F8 9.9626 Tf 162.881 706.129 Td [(1.)]TJ 0 g 0 G - [-500(Dense)-333(v)27(ectors/matrices)-333(do)-333(not)-334(ha)28(v)28(e)-334(an)-333(asso)-28(ciated)-333(state;)]TJ + [-500(Sp)-28(ecifying)]TJ/F30 9.9626 Tf 60.092 0 Td [(psb_ovt_xhal_)]TJ/F8 9.9626 Tf 70.801 0 Td [(for)-282(the)]TJ/F30 9.9626 Tf 31.376 0 Td [(extype)]TJ/F8 9.9626 Tf 34.189 0 Td [(argumen)28(t)-282(the)-282(u)1(s)-1(er)-281(will)-282(obtain)-281(a)]TJ -183.728 -11.955 Td [(descriptor)-258(for)-257(a)-258(domain)-257(partition)-258(in)-257(whic)28(h)-258(the)-257(additional)-258(la)28(y)28(ers)-258(are)-257(fetc)27(hed)]TJ 0 -11.955 Td [(as)-415(part)-415(of)-415(an)-415(\050extended\051)-415(halo;)-456(ho)28(w)27(ev)28(er)-415(the)-415(index-to-pro)-28(cess)-415(mapping)-415(is)]TJ 0 -11.956 Td [(iden)28(tical)-334(to)-333(that)-333(of)-333(the)-334(base)-333(descriptor;)]TJ 0 g 0 G - 0 -19.925 Td [(2.)]TJ + -12.73 -19.925 Td [(2.)]TJ 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 + [-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.108 0 Td [(extype)]TJ/F8 9.9626 Tf 35.053 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)-28(osition:)-694(the)-458(additional)-458(la)27(y)28(er)-458(is)]TJ 0 -11.955 Td [(aggregated)-413(to)-413(the)-414(l)1(o)-28(cal)-413(sub)-28(domain)-413(\050and)-413(th)27(u)1(s)-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(ond)-333(the)-333(last)-334(ad)1(ditional)-334(la)28(y)28(er)-333(is)-334(formed.)]TJ 0 g 0 G - 141.968 -494.147 Td [(85)]TJ + 141.968 -524.035 Td [(80)]TJ 0 g 0 G ET endstream endobj -1444 0 obj +1448 0 obj << -/Length 5215 +/Length 4897 >> stream 0 g 0 G 0 g 0 G BT -/F16 11.9552 Tf 150.705 706.129 Td [(psb)]TJ +/F16 11.9552 Tf 99.895 706.129 Td [(6.7)-1125(psb)]TJ ET q -1 0 0 1 171.761 706.328 cm +1 0 0 1 151.587 706.328 cm []0 d 0 J 0.398 w 0 0 m 4.035 0 l S Q BT -/F16 11.9552 Tf 175.796 706.129 Td [(geasb)-375(|)-375(Assem)31(bly)-375(a)-375(dense)-375(matrix)]TJ +/F16 11.9552 Tf 155.621 706.129 Td [(spall)-375(|)-375(Allo)-31(cates)-375(a)-375(sparse)-375(matrix)]TJ 0 g 0 G 0 g 0 G -/F30 9.9626 Tf -25.091 -18.389 Td [(call)-525(psb_geasb\050x,)-525(desc_a,)-525(info,)-525(mold\051)]TJ +/F30 9.9626 Tf -55.726 -18.389 Td [(call)-525(psb_spall\050a,)-525(desc_a,)-525(info,)-525(nnz\051)]TJ 0 g 0 G /F27 9.9626 Tf 0 -21.918 Td [(T)32(yp)-32(e:)]TJ 0 g 0 G @@ -16578,599 +16554,476 @@ BT 0 -19.925 Td [(desc)]TJ ET q -1 0 0 1 172.619 626.17 cm +1 0 0 1 121.81 626.17 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 176.057 625.971 Td [(a)]TJ +/F27 9.9626 Tf 125.247 625.971 Td [(a)]TJ 0 g 0 G -/F8 9.9626 Tf 10.55 0 Td [(The)-333(comm)27(unication)-333(descriptor.)]TJ -10.996 -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.956 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(v)56(ariable)-334(of)-333(t)28(yp)-28(e)]TJ +/F8 9.9626 Tf 10.551 0 Td [(the)-333(comm)27(unication)-333(descriptor.)]TJ -10.996 -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.183 0 Td [(required)]TJ/F8 9.9626 Tf 41.899 0 Td [(.)]TJ -67.082 -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 137.347 0 Td [(psb)]TJ +/F30 9.9626 Tf 170.915 0 Td [(psb)]TJ ET q -1 0 0 1 329.276 578.35 cm +1 0 0 1 312.036 578.35 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 332.415 578.15 Td [(desc)]TJ +/F30 9.9626 Tf 315.174 578.15 Td [(desc)]TJ ET q -1 0 0 1 353.964 578.35 cm +1 0 0 1 336.723 578.35 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 357.102 578.15 Td [(type)]TJ +/F30 9.9626 Tf 339.861 578.15 Td [(type)]TJ 0 g 0 G /F8 9.9626 Tf 20.921 0 Td [(.)]TJ 0 g 0 G -/F27 9.9626 Tf -227.318 -31.88 Td [(mold)]TJ +/F27 9.9626 Tf -260.887 -19.925 Td [(nnz)]TJ 0 g 0 G -/F8 9.9626 Tf 29.805 0 Td [(The)-333(desired)-334(dynamic)-333(t)28(yp)-28(e)-333(for)-334(th)1(e)-334(in)28(ternal)-333(v)27(ector)-333(storage.)]TJ -4.899 -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 [(optional)]TJ/F8 9.9626 Tf 40.576 0 Td [(.)]TJ -70.188 -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.956 Td [(Sp)-28(eci\014ed)-273(as:)-414(an)-274(ob)-55(ject)-273(of)-274(a)-273(class)-273(deriv)28(ed)-274(from)]TJ/F30 9.9626 Tf 198.261 0 Td [(psb)]TJ -ET -q -1 0 0 1 390.19 498.649 cm -[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S -Q -BT -/F30 9.9626 Tf 393.329 498.449 Td [(T)]TJ -ET -q -1 0 0 1 399.186 498.649 cm -[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S -Q -BT -/F30 9.9626 Tf 402.325 498.449 Td [(base)]TJ -ET -q -1 0 0 1 423.874 498.649 cm -[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S -Q -BT -/F30 9.9626 Tf 427.012 498.449 Td [(vect)]TJ -ET -q -1 0 0 1 448.561 498.649 cm -[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S -Q -BT -/F30 9.9626 Tf 451.699 498.449 Td [(type)]TJ/F8 9.9626 Tf 20.921 0 Td [(;)-293(this)]TJ -297.009 -11.955 Td [(is)-333(only)-334(allo)28(w)28(ed)-333(when)]TJ/F11 9.9626 Tf 93.317 0 Td [(x)]TJ/F8 9.9626 Tf 9.015 0 Td [(is)-333(of)-334(t)28(yp)-28(e)]TJ +/F8 9.9626 Tf 22.804 0 Td [(An)-309(estimate)-309(of)-308(the)-309(n)28(um)28(b)-28(er)-309(of)-309(nonzero)-27(es)-309(in)-309(the)-309(lo)-28(cal)-308(part)-309(of)-309(the)-308(as)-1(sem)28(bled)]TJ 2.103 -11.955 Td [(matrix.)]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.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(optional)]TJ/F8 9.9626 Tf 40.577 0 Td [(.)]TJ -70.188 -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(alue.)]TJ +0 g 0 G +/F27 9.9626 Tf -24.907 -21.918 Td [(On)-383(Return)]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(matrix)-334(to)-333(b)-28(e)-333(allo)-28(cated.)]TJ 14.356 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 27.951 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -27.951 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.183 0 Td [(required)]TJ/F8 9.9626 Tf -25.183 -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 [(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 43.78 0 Td [(psb)]TJ -ET -q -1 0 0 1 338.042 486.693 cm -[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S -Q -BT -/F30 9.9626 Tf 341.18 486.494 Td [(T)]TJ +/F30 9.9626 Tf 170.915 0 Td [(psb)]TJ ET q -1 0 0 1 347.038 486.693 cm +1 0 0 1 312.036 408.985 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 350.177 486.494 Td [(vect)]TJ +/F30 9.9626 Tf 315.174 408.786 Td [(Tspmat)]TJ ET q -1 0 0 1 371.725 486.693 cm +1 0 0 1 347.183 408.985 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 374.864 486.494 Td [(type)]TJ +/F30 9.9626 Tf 350.322 408.786 Td [(type)]TJ 0 g 0 G /F8 9.9626 Tf 20.921 0 Td [(.)]TJ 0 g 0 G -/F27 9.9626 Tf -245.08 -21.918 Td [(On)-383(Return)]TJ +/F27 9.9626 Tf -271.348 -19.926 Td [(info)]TJ 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/F16 11.9552 Tf -24.907 -21.918 Td [(Notes)]TJ 0 g 0 G - 0 -19.925 Td [(x)]TJ +/F8 9.9626 Tf 12.177 -19.925 Td [(1.)]TJ 0 g 0 G -/F8 9.9626 Tf 11.028 0 Td [(The)-333(dense)-334(matrix)-333(to)-333(b)-28(e)-333(as)-1(sem)28(bled.)]TJ 13.878 -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 [(inout)]TJ/F8 9.9626 Tf 26.096 0 Td [(.)]TJ -59.582 -11.956 Td [(Sp)-28(eci\014ed)-433(as:)-645(a)-433(rank)-433(one)-434(or)-433(t)28(w)28(o)-434(arra)28(y)-433(with)-433(the)-434(ALLOCA)84(T)83(ABLE)-433(or)-434(an)]TJ 0 -11.955 Td [(ob)-56(ject)-333(of)-333(t)28(yp)-28(e)]TJ -0 0 1 rg 0 0 1 RG -/F30 9.9626 Tf 63.927 0 Td [(psb)]TJ -ET -q -1 0 0 1 255.857 385.075 cm -[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S -Q -BT -/F30 9.9626 Tf 258.995 384.875 Td [(T)]TJ -ET -q -1 0 0 1 264.853 385.075 cm -[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S -Q -BT -/F30 9.9626 Tf 267.992 384.875 Td [(vect)]TJ -ET -q -1 0 0 1 289.541 385.075 cm -[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S -Q -BT -/F30 9.9626 Tf 292.679 384.875 Td [(type)]TJ + [-500(On)-333(exit)-334(from)-333(this)-333(routine)-333(the)-334(sparse)-333(matrix)-333(is)-334(in)-333(the)-333(build)-334(state.)]TJ 0 g 0 G -/F8 9.9626 Tf 20.921 0 Td [(,)-333(of)-334(t)28(yp)-28(e)-333(real,)-333(complex)-334(or)-333(in)28(teger.)]TJ + 0 -19.926 Td [(2.)]TJ +0 g 0 G + [-500(The)-333(descriptor)-334(ma)28(y)-333(b)-28(e)-333(in)-334(either)-333(the)-333(build)-333(or)-334(assem)28(bled)-333(state.)]TJ 0 g 0 G -/F27 9.9626 Tf -162.895 -31.88 Td [(info)]TJ + 0 -19.925 Td [(3.)]TJ 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)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 + [-500(Pro)28(viding)-307(a)-308(go)-27(o)-28(d)-307(es)-1(timate)-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.092 0 Td [(in)-307(the)-308(assem-)]TJ -261.65 -11.955 Td [(bled)-401(m)-1(atr)1(ix)-402(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 -214.736 Td [(86)]TJ + 141.968 -133.042 Td [(81)]TJ 0 g 0 G ET endstream endobj -1450 0 obj +1456 0 obj << -/Length 3378 +/Length 5716 >> stream 0 g 0 G 0 g 0 G BT -/F16 11.9552 Tf 99.895 706.129 Td [(psb)]TJ +/F16 11.9552 Tf 150.705 706.129 Td [(6.8)-1125(psb)]TJ ET q -1 0 0 1 120.951 706.328 cm +1 0 0 1 202.396 706.328 cm []0 d 0 J 0.398 w 0 0 m 4.035 0 l S Q BT -/F16 11.9552 Tf 124.986 706.129 Td [(gefree)-375(|)-375(F)94(rees)-375(a)-375(dense)-375(matrix)]TJ +/F16 11.9552 Tf 206.431 706.129 Td [(spins)-438(|)-437(Insert)-438(a)-437(set)-438(of)-437(co)-31(e\016cien)31(ts)-438(in)32(to)-438(a)-437(sparse)]TJ -25.091 -13.948 Td [(matrix)]TJ 0 g 0 G 0 g 0 G -/F30 9.9626 Tf -25.091 -18.389 Td [(call)-525(psb_gefree\050x,)-525(desc_a,)-525(info\051)]TJ +/F30 9.9626 Tf -30.635 -19.07 Td [(call)-525(psb_spins\050nz,)-525(ia,)-525(ja,)-525(val,)-525(a,)-525(desc_a,)-525(info)-525([,local]\051)]TJ 0 -11.955 Td [(call)-525(psb_spins\050nr,)-525(irw,)-525(irp,)-525(ja,)-525(val,)-525(a,)-525(desc_a,)-525(info)-525([,local]\051)]TJ 0 g 0 G -/F27 9.9626 Tf 0 -21.918 Td [(T)32(yp)-32(e:)]TJ +/F27 9.9626 Tf 0 -23.016 Td [(T)32(yp)-32(e:)]TJ 0 g 0 G -/F8 9.9626 Tf 33.797 0 Td [(Sync)28(hronous.)]TJ +/F8 9.9626 Tf 33.797 0 Td [(Async)28(hronous.)]TJ 0 g 0 G -/F27 9.9626 Tf -33.797 -19.926 Td [(On)-383(En)32(try)]TJ +/F27 9.9626 Tf -33.797 -21.39 Td [(On)-383(En)32(try)]TJ 0 g 0 G 0 g 0 G - 0 -19.925 Td [(x)]TJ + 0 -21.389 Td [(nz)]TJ 0 g 0 G -/F8 9.9626 Tf 11.028 0 Td [(The)-333(dense)-334(matrix)-333(to)-333(b)-28(e)-334(f)1(re)-1(ed.)]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)-433(as:)-645(a)-433(rank)-433(one)-433(or)-434(t)28(w)28(o)-434(arra)28(y)-433(with)-433(the)-434(ALLOCA)84(T)83(ABLE)-433(or)-434(an)]TJ 0 -11.955 Td [(ob)-56(j)1(e)-1(ct)-333(of)-333(t)28(yp)-28(e)]TJ -0 0 1 rg 0 0 1 RG -/F30 9.9626 Tf 63.927 0 Td [(psb)]TJ -ET -q -1 0 0 1 205.048 566.395 cm -[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S -Q -BT -/F30 9.9626 Tf 208.186 566.195 Td [(T)]TJ -ET -q -1 0 0 1 214.044 566.395 cm -[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S -Q -BT -/F30 9.9626 Tf 217.182 566.195 Td [(vect)]TJ -ET -q -1 0 0 1 238.731 566.395 cm -[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S -Q -BT -/F30 9.9626 Tf 241.869 566.195 Td [(type)]TJ +/F8 9.9626 Tf 16.438 0 Td [(the)-333(n)27(u)1(m)27(b)-27(e)-1(r)-333(of)-333(co)-28(e\016cien)28(ts)-334(to)-333(b)-28(e)-333(inserted.)]TJ 8.469 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 27.95 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf 23.073 0 Td [(.)]TJ -51.023 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.183 0 Td [(required)]TJ/F8 9.9626 Tf 41.898 0 Td [(.)]TJ -67.081 -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:)-444(an)-334(in)28(teger)-333(scalar.)]TJ 0 g 0 G -/F8 9.9626 Tf 20.922 0 Td [(,)-333(of)-334(t)28(yp)-28(e)-333(real,)-333(complex)-334(or)-333(in)28(teger.)]TJ +/F27 9.9626 Tf -24.907 -21.389 Td [(nr)]TJ 0 g 0 G -/F27 9.9626 Tf -162.896 -31.88 Td [(desc)]TJ -ET -q -1 0 0 1 121.81 534.514 cm -[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S -Q -BT -/F27 9.9626 Tf 125.247 534.315 Td [(a)]TJ +/F8 9.9626 Tf 16.065 0 Td [(the)-333(n)28(um)27(b)-27(er)-334(of)-333(ro)28(ws)-334(to)-333(b)-28(e)-333(inserted.)]TJ 8.842 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 27.95 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf 23.073 0 Td [(.)]TJ -51.023 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.183 0 Td [(required)]TJ/F8 9.9626 Tf 41.898 0 Td [(.)]TJ -67.081 -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:)-444(an)-334(in)28(teger)-333(scalar.)]TJ 0 g 0 G -/F8 9.9626 Tf 10.551 0 Td [(The)-333(comm)27(unication)-333(descriptor.)]TJ -10.996 -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 [(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(v)56(ariable)-334(of)-333(t)28(yp)-28(e)]TJ -0 0 1 rg 0 0 1 RG -/F30 9.9626 Tf 137.346 0 Td [(psb)]TJ -ET -q -1 0 0 1 278.467 486.693 cm -[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S -Q -BT -/F30 9.9626 Tf 281.605 486.494 Td [(desc)]TJ -ET -q -1 0 0 1 303.154 486.693 cm -[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S -Q -BT -/F30 9.9626 Tf 306.292 486.494 Td [(type)]TJ +/F27 9.9626 Tf -24.907 -21.389 Td [(irw)]TJ 0 g 0 G -/F8 9.9626 Tf 20.922 0 Td [(.)]TJ +/F8 9.9626 Tf 21.157 0 Td [(the)-333(\014rst)-334(ro)28(w)-333(to)-333(b)-28(e)-334(inserted.)]TJ 3.75 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 27.95 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf 23.073 0 Td [(.)]TJ -51.023 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.183 0 Td [(required)]TJ/F8 9.9626 Tf 41.898 0 Td [(.)]TJ -67.081 -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(scalar.)]TJ 0 g 0 G -/F27 9.9626 Tf -227.319 -33.873 Td [(On)-383(Return)]TJ +/F27 9.9626 Tf -24.907 -21.39 Td [(ia)]TJ 0 g 0 G +/F8 9.9626 Tf 13.733 0 Td [(the)-333(ro)27(w)-333(indices)-333(of)-334(th)1(e)-334(co)-28(e\016cien)28(ts)-333(to)-334(b)-27(e)-334(inserted.)]TJ 11.174 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 27.95 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf 23.073 0 Td [(.)]TJ -51.023 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.183 0 Td [(required)]TJ/F8 9.9626 Tf 41.898 0 Td [(.)]TJ -67.081 -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(arra)27(y)-333(of)-333(size)]TJ/F11 9.9626 Tf 160.979 0 Td [(nz)]TJ/F8 9.9626 Tf 11.052 0 Td [(.)]TJ 0 g 0 G - 0 -19.925 Td [(info)]TJ +/F27 9.9626 Tf -196.938 -21.39 Td [(irp)]TJ 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 +/F8 9.9626 Tf 19.247 0 Td [(the)-333(ro)27(w)-333(p)-28(oin)28(ters)-333(of)-333(the)-334(co)-28(e\016cien)28(ts)-333(to)-334(b)-27(e)-334(inserted.)]TJ 5.66 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 27.95 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf 23.073 0 Td [(.)]TJ -51.023 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.183 0 Td [(required)]TJ/F8 9.9626 Tf 41.898 0 Td [(.)]TJ -67.081 -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(arra)27(y)-333(of)-333(size)]TJ/F11 9.9626 Tf 160.979 0 Td [(nr)]TJ/F8 9.9626 Tf 12.966 0 Td [(+)-222(1.)]TJ 0 g 0 G - 141.968 -294.437 Td [(87)]TJ +/F27 9.9626 Tf -198.852 -21.39 Td [(ja)]TJ +0 g 0 G +/F8 9.9626 Tf 14.051 0 Td [(the)-333(column)-334(indices)-333(of)-333(the)-334(co)-27(e)-1(\016cien)28(ts)-333(to)-334(b)-27(e)-334(inserted.)]TJ 10.856 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 27.95 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf 23.073 0 Td [(.)]TJ -51.023 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.183 0 Td [(required)]TJ/F8 9.9626 Tf 41.898 0 Td [(.)]TJ -67.081 -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(arra)27(y)-333(of)-333(size)]TJ/F11 9.9626 Tf 160.979 0 Td [(nz)]TJ/F8 9.9626 Tf 11.052 0 Td [(.)]TJ +0 g 0 G +/F27 9.9626 Tf -196.938 -21.39 Td [(v)64(al)]TJ +0 g 0 G +/F8 9.9626 Tf 19.143 0 Td [(the)-333(co)-28(e\016cien)27(ts)-333(to)-333(b)-28(e)-333(inserted.)]TJ 5.764 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 27.95 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf 23.073 0 Td [(.)]TJ -51.023 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.183 0 Td [(required)]TJ/F8 9.9626 Tf 41.898 0 Td [(.)]TJ -67.081 -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)-375(as:)-528(an)-375(arra)28(y)-375(of)-375(size)]TJ/F11 9.9626 Tf 130.932 0 Td [(nz)]TJ/F8 9.9626 Tf 11.052 0 Td [(.)-570(Must)-375(b)-27(e)-376(of)-375(the)-375(same)-375(t)28(yp)-28(e)-375(and)-375(kind)-375(of)]TJ -141.984 -11.956 Td [(the)-333(co)-28(e\016cien)28(ts)-334(of)-333(the)-333(sparse)-334(matrix)]TJ/F11 9.9626 Tf 158.516 0 Td [(a)]TJ/F8 9.9626 Tf 5.267 0 Td [(.)]TJ +0 g 0 G + -21.816 -29.887 Td [(82)]TJ 0 g 0 G ET endstream endobj -1347 0 obj +1353 0 obj << /Type /ObjStm /N 100 -/First 978 -/Length 10622 +/First 975 +/Length 10528 >> stream -1344 0 1341 148 1342 292 1346 439 308 497 1343 554 1350 686 1352 804 1353 863 1354 922 -1349 981 1358 1061 1355 1209 1356 1355 1360 1498 312 1556 1361 1613 1362 1671 1363 1729 1357 1787 -1366 1906 1368 2024 316 2083 1365 2141 1372 2260 1364 2417 1369 2563 1370 2708 1374 2853 1375 2911 -1376 2969 1377 3027 1378 3085 1379 3143 1371 3201 1381 3320 1383 3438 1384 3497 1385 3556 1386 3615 -1387 3674 1388 3732 1389 3791 1380 3850 1393 3943 1390 4091 1391 4237 1395 4382 320 4440 1392 4497 -1398 4603 1400 4721 1401 4780 1402 4839 1403 4898 1404 4957 1405 5016 1406 5075 1397 5133 1410 5213 -1407 5361 1408 5505 1412 5652 324 5710 1409 5767 1416 5873 1413 6021 1414 6165 1418 6311 328 6370 -1419 6428 1415 6487 1423 6593 1420 6741 1421 6886 1425 7030 332 7088 1422 7145 1429 7264 1426 7412 -1427 7558 1431 7702 336 7761 1428 7819 1433 7938 1435 8056 1436 8114 1437 8172 1432 8230 1443 8323 -1439 8480 1440 8626 1441 8770 1445 8913 340 8972 1442 9030 1449 9149 1446 9297 1447 9440 1451 9586 -% 1344 0 obj +300 0 1349 58 1350 117 1351 176 1352 235 1345 294 1355 451 1357 569 1354 627 1362 720 +1359 859 1364 1005 304 1064 1365 1122 1366 1181 1367 1240 1361 1299 1371 1456 1360 1613 1368 1757 +1369 1900 1373 2046 1370 2104 1375 2210 1377 2328 308 2387 312 2445 1374 2503 1380 2635 1378 2774 +1382 2921 1383 2979 1379 3037 1386 3156 1384 3295 1388 3453 1389 3512 1385 3571 1391 3703 1393 3821 +1394 3879 1395 3937 1396 3995 1397 4053 1398 4111 1390 4167 1402 4247 1400 4386 1404 4531 316 4590 +1401 4648 1407 4767 1405 4906 1409 5064 1410 5122 1411 5180 1412 5238 1406 5296 1416 5402 1413 5550 +1414 5696 1418 5842 320 5901 1419 5959 1415 6018 1423 6124 1420 6272 1421 6418 1425 6565 324 6623 +1422 6680 1428 6786 1426 6925 1430 7070 328 7129 1427 7187 1434 7293 1431 7441 1432 7585 1436 7732 +332 7790 1433 7847 1439 7979 1441 8097 1442 8156 1443 8215 1438 8274 1447 8354 1444 8502 1445 8648 +1449 8791 336 8849 1450 8906 1451 8964 1452 9022 1446 9080 1455 9199 1457 9317 340 9376 1454 9434 +% 300 0 obj << -/Type /Page -/Contents 1345 0 R -/Resources 1343 0 R -/MediaBox [0 0 595.276 841.89] -/Parent 1348 0 R -/Annots [ 1341 0 R 1342 0 R ] +/D [1346 0 R /XYZ 150.705 716.092 null] >> -% 1341 0 obj +% 1349 0 obj << -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [294.721 453.24 372.239 464.364] -/A << /S /GoTo /D (spdata) >> +/D [1346 0 R /XYZ 320.941 466.542 null] >> -% 1342 0 obj +% 1350 0 obj << -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [294.721 209.896 361.779 221.021] -/A << /S /GoTo /D (descdata) >> +/D [1346 0 R /XYZ 150.705 435.558 null] >> -% 1346 0 obj +% 1351 0 obj << -/D [1344 0 R /XYZ 98.895 753.953 null] +/D [1346 0 R /XYZ 150.705 435.558 null] >> -% 308 0 obj +% 1352 0 obj << -/D [1344 0 R /XYZ 99.895 720.077 null] +/D [1346 0 R /XYZ 150.705 423.603 null] >> -% 1343 0 obj +% 1345 0 obj << -/Font << /F16 558 0 R /F30 769 0 R /F8 561 0 R /F27 560 0 R /F11 755 0 R /F14 772 0 R >> +/Font << /F16 582 0 R /F8 585 0 R /F11 797 0 R /F14 814 0 R /F10 813 0 R /F7 812 0 R /F27 584 0 R /F30 811 0 R >> /ProcSet [ /PDF /Text ] >> -% 1350 0 obj +% 1355 0 obj << /Type /Page -/Contents 1351 0 R -/Resources 1349 0 R +/Contents 1356 0 R +/Resources 1354 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1348 0 R +/Parent 1358 0 R >> -% 1352 0 obj -<< -/D [1350 0 R /XYZ 149.705 753.953 null] ->> -% 1353 0 obj +% 1357 0 obj << -/D [1350 0 R /XYZ 150.705 716.092 null] +/D [1355 0 R /XYZ 98.895 753.953 null] >> % 1354 0 obj << -/D [1350 0 R /XYZ 150.705 664.341 null] ->> -% 1349 0 obj -<< -/Font << /F8 561 0 R /F30 769 0 R >> +/Font << /F27 584 0 R /F8 585 0 R /F30 811 0 R >> /ProcSet [ /PDF /Text ] >> -% 1358 0 obj +% 1362 0 obj << /Type /Page -/Contents 1359 0 R -/Resources 1357 0 R +/Contents 1363 0 R +/Resources 1361 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1348 0 R -/Annots [ 1355 0 R 1356 0 R ] +/Parent 1358 0 R +/Annots [ 1359 0 R ] >> -% 1355 0 obj +% 1359 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [294.721 574.94 361.779 586.065] +/Rect [345.53 210.686 412.588 221.811] /A << /S /GoTo /D (descdata) >> >> -% 1356 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [294.721 405.575 372.239 416.7] -/A << /S /GoTo /D (spdata) >> ->> -% 1360 0 obj -<< -/D [1358 0 R /XYZ 98.895 753.953 null] ->> -% 312 0 obj -<< -/D [1358 0 R /XYZ 99.895 720.077 null] ->> -% 1361 0 obj -<< -/D [1358 0 R /XYZ 99.895 315.137 null] ->> -% 1362 0 obj +% 1364 0 obj << -/D [1358 0 R /XYZ 99.895 293.274 null] +/D [1362 0 R /XYZ 149.705 753.953 null] >> -% 1363 0 obj +% 304 0 obj << -/D [1358 0 R /XYZ 99.895 273.349 null] +/D [1362 0 R /XYZ 150.705 716.092 null] >> -% 1357 0 obj +% 1365 0 obj << -/Font << /F16 558 0 R /F30 769 0 R /F27 560 0 R /F8 561 0 R /F11 755 0 R >> -/ProcSet [ /PDF /Text ] +/D [1362 0 R /XYZ 320.941 451.038 null] >> % 1366 0 obj << -/Type /Page -/Contents 1367 0 R -/Resources 1365 0 R -/MediaBox [0 0 595.276 841.89] -/Parent 1348 0 R ->> -% 1368 0 obj -<< -/D [1366 0 R /XYZ 149.705 753.953 null] +/D [1362 0 R /XYZ 150.705 417.777 null] >> -% 316 0 obj +% 1367 0 obj << -/D [1366 0 R /XYZ 150.705 720.077 null] +/D [1362 0 R /XYZ 150.705 417.777 null] >> -% 1365 0 obj +% 1361 0 obj << -/Font << /F16 558 0 R /F30 769 0 R /F27 560 0 R /F8 561 0 R /F11 755 0 R >> +/Font << /F16 582 0 R /F8 585 0 R /F11 797 0 R /F10 813 0 R /F14 814 0 R /F7 812 0 R /F27 584 0 R /F30 811 0 R >> /ProcSet [ /PDF /Text ] >> -% 1372 0 obj +% 1371 0 obj << /Type /Page -/Contents 1373 0 R -/Resources 1371 0 R +/Contents 1372 0 R +/Resources 1370 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1348 0 R -/Annots [ 1364 0 R 1369 0 R 1370 0 R ] +/Parent 1358 0 R +/Annots [ 1360 0 R 1368 0 R 1369 0 R ] >> -% 1364 0 obj +% 1360 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [261.152 655.098 328.21 666.223] -/A << /S /GoTo /D (descdata) >> +/Rect [285.522 643.143 361.576 654.268] +/A << /S /GoTo /D (vdata) >> >> -% 1369 0 obj +% 1368 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [294.721 488.124 372.239 499.249] -/A << /S /GoTo /D (spdata) >> +/Rect [123.806 543.516 199.86 554.641] +/A << /S /GoTo /D (vdata) >> >> -% 1370 0 obj +% 1369 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [261.152 420.91 328.21 432.035] -/A << /S /GoTo /D (descdata) >> +/Rect [422.94 543.516 434.896 554.641] +/A << /S /GoTo /D (table.20) >> >> -% 1374 0 obj +% 1373 0 obj << -/D [1372 0 R /XYZ 98.895 753.953 null] +/D [1371 0 R /XYZ 98.895 753.953 null] >> -% 1375 0 obj +% 1370 0 obj << -/D [1372 0 R /XYZ 99.895 321.172 null] +/Font << /F27 584 0 R /F8 585 0 R /F30 811 0 R /F11 797 0 R >> +/ProcSet [ /PDF /Text ] >> -% 1376 0 obj +% 1375 0 obj << -/D [1372 0 R /XYZ 99.895 289.823 null] +/Type /Page +/Contents 1376 0 R +/Resources 1374 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1358 0 R >> % 1377 0 obj << -/D [1372 0 R /XYZ 99.895 256.537 null] +/D [1375 0 R /XYZ 149.705 753.953 null] >> -% 1378 0 obj +% 308 0 obj << -/D [1372 0 R /XYZ 99.895 189.322 null] +/D [1375 0 R /XYZ 150.705 716.092 null] >> -% 1379 0 obj +% 312 0 obj << -/D [1372 0 R /XYZ 99.895 169.929 null] +/D [1375 0 R /XYZ 150.705 693.474 null] >> -% 1371 0 obj +% 1374 0 obj << -/Font << /F27 560 0 R /F8 561 0 R /F30 769 0 R /F16 558 0 R /F11 755 0 R >> +/Font << /F16 582 0 R /F30 811 0 R /F8 585 0 R /F27 584 0 R /F11 797 0 R /F14 814 0 R >> /ProcSet [ /PDF /Text ] >> -% 1381 0 obj +% 1380 0 obj << /Type /Page -/Contents 1382 0 R -/Resources 1380 0 R +/Contents 1381 0 R +/Resources 1379 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1348 0 R +/Parent 1358 0 R +/Annots [ 1378 0 R ] >> -% 1383 0 obj +% 1378 0 obj << -/D [1381 0 R /XYZ 149.705 753.953 null] +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [294.721 325.282 361.779 336.407] +/A << /S /GoTo /D (descdata) >> >> -% 1384 0 obj +% 1382 0 obj << -/D [1381 0 R /XYZ 150.705 716.092 null] +/D [1380 0 R /XYZ 98.895 753.953 null] >> -% 1385 0 obj +% 1383 0 obj << -/D [1381 0 R /XYZ 150.705 652.386 null] +/D [1380 0 R /XYZ 99.895 234.372 null] +>> +% 1379 0 obj +<< +/Font << /F27 584 0 R /F8 585 0 R /F30 811 0 R /F11 797 0 R /F16 582 0 R >> +/ProcSet [ /PDF /Text ] >> % 1386 0 obj << -/D [1381 0 R /XYZ 150.705 607.997 null] +/Type /Page +/Contents 1387 0 R +/Resources 1385 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1358 0 R +/Annots [ 1384 0 R ] >> -% 1387 0 obj +% 1384 0 obj << -/D [1381 0 R /XYZ 150.705 576.67 null] +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [408.792 215.702 431.263 226.827] +/A << /S /GoTo /D (subsubsection.2.3.1) >> >> % 1388 0 obj << -/D [1381 0 R /XYZ 150.705 544.789 null] +/D [1386 0 R /XYZ 149.705 753.953 null] >> % 1389 0 obj << -/D [1381 0 R /XYZ 150.705 500.954 null] +/D [1386 0 R /XYZ 150.705 134.155 null] >> -% 1380 0 obj +% 1385 0 obj << -/Font << /F8 561 0 R /F11 755 0 R /F14 772 0 R >> +/Font << /F30 811 0 R /F8 585 0 R /F27 584 0 R /F14 814 0 R /F11 797 0 R /F10 813 0 R >> /ProcSet [ /PDF /Text ] >> -% 1393 0 obj +% 1391 0 obj << /Type /Page -/Contents 1394 0 R -/Resources 1392 0 R +/Contents 1392 0 R +/Resources 1390 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1396 0 R -/Annots [ 1390 0 R 1391 0 R ] +/Parent 1399 0 R >> -% 1390 0 obj +% 1393 0 obj << -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [294.721 576.23 361.779 587.355] -/A << /S /GoTo /D (descdata) >> +/D [1391 0 R /XYZ 98.895 753.953 null] >> -% 1391 0 obj +% 1394 0 obj << -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [294.721 205.776 372.239 216.901] -/A << /S /GoTo /D (spdata) >> +/D [1391 0 R /XYZ 99.895 716.092 null] >> % 1395 0 obj << -/D [1393 0 R /XYZ 98.895 753.953 null] +/D [1391 0 R /XYZ 99.895 688.251 null] >> -% 320 0 obj +% 1396 0 obj << -/D [1393 0 R /XYZ 99.895 720.077 null] +/D [1391 0 R /XYZ 99.895 668.049 null] >> -% 1392 0 obj +% 1397 0 obj << -/Font << /F16 558 0 R /F30 769 0 R /F27 560 0 R /F8 561 0 R >> -/ProcSet [ /PDF /Text ] +/D [1391 0 R /XYZ 99.895 626.428 null] >> % 1398 0 obj << -/Type /Page -/Contents 1399 0 R -/Resources 1397 0 R -/MediaBox [0 0 595.276 841.89] -/Parent 1396 0 R ->> -% 1400 0 obj -<< -/D [1398 0 R /XYZ 149.705 753.953 null] +/D [1391 0 R /XYZ 99.895 568.7 null] >> -% 1401 0 obj +% 1390 0 obj << -/D [1398 0 R /XYZ 150.705 716.092 null] +/Font << /F8 585 0 R /F30 811 0 R >> +/ProcSet [ /PDF /Text ] >> % 1402 0 obj << -/D [1398 0 R /XYZ 150.705 687.975 null] +/Type /Page +/Contents 1403 0 R +/Resources 1401 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1399 0 R +/Annots [ 1400 0 R ] >> -% 1403 0 obj +% 1400 0 obj << -/D [1398 0 R /XYZ 150.705 668.326 null] +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [345.53 117.115 412.588 128.24] +/A << /S /GoTo /D (descdata) >> >> % 1404 0 obj << -/D [1398 0 R /XYZ 150.705 624.491 null] ->> -% 1405 0 obj -<< -/D [1398 0 R /XYZ 150.705 580.655 null] +/D [1402 0 R /XYZ 149.705 753.953 null] >> -% 1406 0 obj +% 316 0 obj << -/D [1398 0 R /XYZ 150.705 560.73 null] +/D [1402 0 R /XYZ 150.705 716.092 null] >> -% 1397 0 obj +% 1401 0 obj << -/Font << /F8 561 0 R /F30 769 0 R >> +/Font << /F16 582 0 R /F30 811 0 R /F8 585 0 R /F11 797 0 R /F27 584 0 R >> /ProcSet [ /PDF /Text ] >> -% 1410 0 obj +% 1407 0 obj << /Type /Page -/Contents 1411 0 R -/Resources 1409 0 R +/Contents 1408 0 R +/Resources 1406 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1396 0 R -/Annots [ 1407 0 R 1408 0 R ] +/Parent 1399 0 R +/Annots [ 1405 0 R ] >> -% 1407 0 obj +% 1405 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [294.721 574.94 372.239 586.065] -/A << /S /GoTo /D (spdata) >> +/Rect [274.574 402.324 297.045 413.172] +/A << /S /GoTo /D (subsubsection.2.3.1) >> >> -% 1408 0 obj +% 1409 0 obj << -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [294.721 507.194 361.779 518.319] -/A << /S /GoTo /D (descdata) >> +/D [1407 0 R /XYZ 98.895 753.953 null] >> -% 1412 0 obj +% 1410 0 obj << -/D [1410 0 R /XYZ 98.895 753.953 null] +/D [1407 0 R /XYZ 99.895 496.913 null] >> -% 324 0 obj +% 1411 0 obj << -/D [1410 0 R /XYZ 99.895 720.077 null] +/D [1407 0 R /XYZ 99.895 475.051 null] >> -% 1409 0 obj +% 1412 0 obj +<< +/D [1407 0 R /XYZ 99.895 431.215 null] +>> +% 1406 0 obj << -/Font << /F16 558 0 R /F30 769 0 R /F27 560 0 R /F8 561 0 R >> +/Font << /F27 584 0 R /F8 585 0 R /F11 797 0 R /F16 582 0 R >> /ProcSet [ /PDF /Text ] >> % 1416 0 obj @@ -17179,7 +17032,7 @@ stream /Contents 1417 0 R /Resources 1415 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1396 0 R +/Parent 1399 0 R /Annots [ 1413 0 R 1414 0 R ] >> % 1413 0 obj @@ -17187,24 +17040,24 @@ stream /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [345.53 560.993 423.049 572.118] -/A << /S /GoTo /D (spdata) >> +/Rect [345.53 560.993 412.588 572.118] +/A << /S /GoTo /D (descdata) >> >> % 1414 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [345.53 493.247 412.588 504.372] +/Rect [345.53 403.583 412.588 414.708] /A << /S /GoTo /D (descdata) >> >> % 1418 0 obj << /D [1416 0 R /XYZ 149.705 753.953 null] >> -% 328 0 obj +% 320 0 obj << -/D [1416 0 R /XYZ 150.705 720.077 null] +/D [1416 0 R /XYZ 150.705 716.092 null] >> % 1419 0 obj << @@ -17212,7 +17065,7 @@ stream >> % 1415 0 obj << -/Font << /F16 558 0 R /F30 769 0 R /F27 560 0 R /F8 561 0 R >> +/Font << /F16 582 0 R /F30 811 0 R /F27 584 0 R /F8 585 0 R >> /ProcSet [ /PDF /Text ] >> % 1423 0 obj @@ -17221,7 +17074,7 @@ stream /Contents 1424 0 R /Resources 1422 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1396 0 R +/Parent 1399 0 R /Annots [ 1420 0 R 1421 0 R ] >> % 1420 0 obj @@ -17229,7 +17082,7 @@ stream /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [261.152 574.94 328.21 586.065] +/Rect [294.721 574.94 361.779 586.065] /A << /S /GoTo /D (descdata) >> >> % 1421 0 obj @@ -17237,1674 +17090,1736 @@ stream /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [213.774 290.009 289.828 301.134] -/A << /S /GoTo /D (vdata) >> +/Rect [294.721 485.277 361.779 496.401] +/A << /S /GoTo /D (descdata) >> >> % 1425 0 obj << /D [1423 0 R /XYZ 98.895 753.953 null] >> -% 332 0 obj +% 324 0 obj << -/D [1423 0 R /XYZ 99.895 720.077 null] +/D [1423 0 R /XYZ 99.895 716.092 null] >> % 1422 0 obj << -/Font << /F16 558 0 R /F30 769 0 R /F27 560 0 R /F8 561 0 R /F11 755 0 R >> +/Font << /F16 582 0 R /F30 811 0 R /F27 584 0 R /F8 585 0 R >> /ProcSet [ /PDF /Text ] >> -% 1429 0 obj +% 1428 0 obj << /Type /Page -/Contents 1430 0 R -/Resources 1428 0 R +/Contents 1429 0 R +/Resources 1427 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1396 0 R -/Annots [ 1426 0 R 1427 0 R ] +/Parent 1399 0 R +/Annots [ 1426 0 R ] >> % 1426 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [345.53 363.459 412.588 374.584] +/Rect [345.53 574.94 412.588 586.065] /A << /S /GoTo /D (descdata) >> >> +% 1430 0 obj +<< +/D [1428 0 R /XYZ 149.705 753.953 null] +>> +% 328 0 obj +<< +/D [1428 0 R /XYZ 150.705 716.092 null] +>> % 1427 0 obj << +/Font << /F16 582 0 R /F30 811 0 R /F27 584 0 R /F8 585 0 R >> +/ProcSet [ /PDF /Text ] +>> +% 1434 0 obj +<< +/Type /Page +/Contents 1435 0 R +/Resources 1433 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1437 0 R +/Annots [ 1431 0 R 1432 0 R ] +>> +% 1431 0 obj +<< /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [416.591 141.026 492.645 152.151] -/A << /S /GoTo /D (vdata) >> +/Rect [294.721 453.24 372.239 464.364] +/A << /S /GoTo /D (spdata) >> >> -% 1431 0 obj +% 1432 0 obj << -/D [1429 0 R /XYZ 149.705 753.953 null] +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [294.721 209.896 361.779 221.021] +/A << /S /GoTo /D (descdata) >> >> -% 336 0 obj +% 1436 0 obj << -/D [1429 0 R /XYZ 150.705 720.077 null] +/D [1434 0 R /XYZ 98.895 753.953 null] >> -% 1428 0 obj +% 332 0 obj << -/Font << /F16 558 0 R /F30 769 0 R /F27 560 0 R /F8 561 0 R /F11 755 0 R >> -/ProcSet [ /PDF /Text ] +/D [1434 0 R /XYZ 99.895 716.092 null] >> % 1433 0 obj << +/Font << /F16 582 0 R /F30 811 0 R /F8 585 0 R /F27 584 0 R /F11 797 0 R /F14 814 0 R >> +/ProcSet [ /PDF /Text ] +>> +% 1439 0 obj +<< /Type /Page -/Contents 1434 0 R -/Resources 1432 0 R +/Contents 1440 0 R +/Resources 1438 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1438 0 R +/Parent 1437 0 R >> -% 1435 0 obj +% 1441 0 obj << -/D [1433 0 R /XYZ 98.895 753.953 null] +/D [1439 0 R /XYZ 149.705 753.953 null] >> -% 1436 0 obj +% 1442 0 obj << -/D [1433 0 R /XYZ 99.895 632.405 null] +/D [1439 0 R /XYZ 150.705 716.092 null] >> -% 1437 0 obj +% 1443 0 obj << -/D [1433 0 R /XYZ 99.895 609.989 null] +/D [1439 0 R /XYZ 150.705 664.341 null] >> -% 1432 0 obj +% 1438 0 obj << -/Font << /F27 560 0 R /F8 561 0 R /F16 558 0 R >> +/Font << /F8 585 0 R /F30 811 0 R >> /ProcSet [ /PDF /Text ] >> -% 1443 0 obj +% 1447 0 obj << /Type /Page -/Contents 1444 0 R -/Resources 1442 0 R +/Contents 1448 0 R +/Resources 1446 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1438 0 R -/Annots [ 1439 0 R 1440 0 R 1441 0 R ] +/Parent 1437 0 R +/Annots [ 1444 0 R 1445 0 R ] >> -% 1439 0 obj +% 1444 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [311.962 574.94 379.019 586.065] +/Rect [294.721 574.94 361.779 586.065] /A << /S /GoTo /D (descdata) >> >> -% 1440 0 obj +% 1445 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [320.727 483.284 396.781 494.409] -/A << /S /GoTo /D (vdata) >> +/Rect [294.721 405.575 372.239 416.7] +/A << /S /GoTo /D (spdata) >> >> -% 1441 0 obj +% 1449 0 obj << -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [238.542 381.665 314.596 392.79] -/A << /S /GoTo /D (vdata) >> +/D [1447 0 R /XYZ 98.895 753.953 null] >> -% 1445 0 obj +% 336 0 obj << -/D [1443 0 R /XYZ 149.705 753.953 null] +/D [1447 0 R /XYZ 99.895 716.092 null] >> -% 340 0 obj +% 1450 0 obj << -/D [1443 0 R /XYZ 150.705 720.077 null] +/D [1447 0 R /XYZ 99.895 315.137 null] >> -% 1442 0 obj +% 1451 0 obj +<< +/D [1447 0 R /XYZ 99.895 293.274 null] +>> +% 1452 0 obj +<< +/D [1447 0 R /XYZ 99.895 273.349 null] +>> +% 1446 0 obj << -/Font << /F16 558 0 R /F30 769 0 R /F27 560 0 R /F8 561 0 R /F11 755 0 R >> +/Font << /F16 582 0 R /F30 811 0 R /F27 584 0 R /F8 585 0 R /F11 797 0 R >> /ProcSet [ /PDF /Text ] >> -% 1449 0 obj +% 1455 0 obj << /Type /Page -/Contents 1450 0 R -/Resources 1448 0 R +/Contents 1456 0 R +/Resources 1454 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1438 0 R -/Annots [ 1446 0 R 1447 0 R ] +/Parent 1437 0 R >> -% 1446 0 obj +% 1457 0 obj << -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [187.733 562.985 263.787 574.11] -/A << /S /GoTo /D (vdata) >> +/D [1455 0 R /XYZ 149.705 753.953 null] >> -% 1447 0 obj +% 340 0 obj << -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [261.152 483.284 328.21 494.409] -/A << /S /GoTo /D (descdata) >> +/D [1455 0 R /XYZ 150.705 716.092 null] >> -% 1451 0 obj +% 1454 0 obj << -/D [1449 0 R /XYZ 98.895 753.953 null] +/Font << /F16 582 0 R /F30 811 0 R /F27 584 0 R /F8 585 0 R /F11 797 0 R >> +/ProcSet [ /PDF /Text ] >> endstream endobj -1455 0 obj +1462 0 obj << -/Length 3438 +/Length 7378 >> stream 0 g 0 G 0 g 0 G -BT -/F16 11.9552 Tf 150.705 706.129 Td [(psb)]TJ -ET -q -1 0 0 1 171.761 706.328 cm -[]0 d 0 J 0.398 w 0 0 m 4.035 0 l S -Q -BT -/F16 11.9552 Tf 175.796 706.129 Td [(gelp)-375(|)-375(Applies)-375(a)-375(left)-375(p)-31(erm)31(utation)-375(to)-375(a)-375(dense)-375(matrix)]TJ -0 g 0 G -0 g 0 G -/F30 9.9626 Tf -25.091 -18.389 Td [(call)-525(psb_gelp\050trans,)-525(iperm,)-525(x,)-525(info\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.926 Td [(On)-383(En)32(try)]TJ -0 g 0 G -0 g 0 G - 0 -19.925 Td [(trans)]TJ -0 g 0 G -/F8 9.9626 Tf 30.609 0 Td [(A)-333(c)27(har)1(ac)-1(ter)-333(that)-333(sp)-28(eci\014es)-333(whether)-334(to)-333(p)-28(erm)28(ute)]TJ/F11 9.9626 Tf 204.179 0 Td [(A)]TJ/F8 9.9626 Tf 10.793 0 Td [(or)]TJ/F11 9.9626 Tf 12.204 0 Td [(A)]TJ/F10 6.9738 Tf 7.472 3.616 Td [(T)]TJ/F8 9.9626 Tf 6.276 -3.616 Td [(.)]TJ -246.626 -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 [(in)]TJ/F8 9.9626 Tf 9.548 0 Td [(.)]TJ -43.033 -11.956 Td [(Sp)-28(eci\014ed)-333(as:)-444(a)-334(single)-333(c)28(haracter)-334(with)-333(v)56(alue)-334('N')-333(for)]TJ/F11 9.9626 Tf 217.435 0 Td [(A)]TJ/F8 9.9626 Tf 10.792 0 Td [(or)-333('T')-334(for)]TJ/F11 9.9626 Tf 43.504 0 Td [(A)]TJ/F10 6.9738 Tf 7.472 3.616 Td [(T)]TJ/F8 9.9626 Tf 6.276 -3.616 Td [(.)]TJ -0 g 0 G -/F27 9.9626 Tf -310.386 -31.88 Td [(ip)-32(erm)]TJ -0 g 0 G -/F8 9.9626 Tf 34.364 0 Td [(An)-333(in)28(tege)-1(r)-333(arra)28(y)-333(con)27(tain)1(ing)-334(p)-28(erm)28(utation)-333(information.)]TJ -9.457 -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 [(in)]TJ/F8 9.9626 Tf 9.548 0 Td [(.)]TJ -43.033 -11.956 Td [(Sp)-28(eci\014ed)-333(as:)-444(a)-1(n)-333(in)28(teger)-333(one-dimensional)-334(arra)28(y)84(.)]TJ -0 g 0 G -/F27 9.9626 Tf -24.907 -31.88 Td [(x)]TJ -0 g 0 G -/F8 9.9626 Tf 11.028 0 Td [(The)-333(dense)-334(matrix)-333(to)-333(b)-28(e)-333(p)-28(erm)27(u)1(te)-1(d)1(.)]TJ 13.879 -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 [(inout)]TJ/F8 9.9626 Tf 26.097 0 Td [(.)]TJ -59.582 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(one)-333(or)-333(t)27(w)28(o)-333(dimensional)-334(arra)28(y)84(.)]TJ -0 g 0 G -/F27 9.9626 Tf -24.907 -33.873 Td [(On)-383(Return)]TJ -0 g 0 G -0 g 0 G - 0 -19.925 Td [(info)]TJ -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 [(88)]TJ -0 g 0 G -ET - -endstream -endobj -1460 0 obj -<< -/Length 6540 ->> -stream -0 g 0 G 0 g 0 G BT -/F16 11.9552 Tf 99.895 706.129 Td [(psb)]TJ +/F27 9.9626 Tf 99.895 706.129 Td [(desc)]TJ ET q -1 0 0 1 120.951 706.328 cm -[]0 d 0 J 0.398 w 0 0 m 4.035 0 l S +1 0 0 1 121.81 706.328 cm +[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F16 11.9552 Tf 124.986 706.129 Td [(glob)]TJ +/F27 9.9626 Tf 125.247 706.129 Td [(a)]TJ +0 g 0 G +/F8 9.9626 Tf 10.551 0 Td [(The)-333(comm)27(unication)-333(descriptor.)]TJ -10.996 -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 [(inout)]TJ/F8 9.9626 Tf 26.096 0 Td [(.)]TJ -59.582 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(v)56(ariable)-334(of)-333(t)28(yp)-28(e)]TJ +0 0 1 rg 0 0 1 RG +/F30 9.9626 Tf 137.346 0 Td [(psb)]TJ ET q -1 0 0 1 150.451 706.328 cm -[]0 d 0 J 0.398 w 0 0 m 4.035 0 l S +1 0 0 1 278.467 658.507 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F16 11.9552 Tf 154.486 706.129 Td [(to)]TJ +/F30 9.9626 Tf 281.605 658.308 Td [(desc)]TJ ET q -1 0 0 1 167.248 706.328 cm -[]0 d 0 J 0.398 w 0 0 m 4.035 0 l S +1 0 0 1 303.154 658.507 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F16 11.9552 Tf 171.283 706.129 Td [(lo)-31(c)-375(|)-375(Global)-375(to)-375(lo)-31(cal)-375(indices)-375(con)31(v)31(ertion)]TJ +/F30 9.9626 Tf 306.292 658.308 Td [(type)]TJ 0 g 0 G +/F8 9.9626 Tf 20.922 0 Td [(.)]TJ 0 g 0 G -/F30 9.9626 Tf -71.388 -18.389 Td [(call)-525(psb_glob_to_loc\050x,)-525(y,)-525(desc_a,)-525(info,)-525(iact,owned\051)]TJ 0 -11.956 Td [(call)-525(psb_glob_to_loc\050x,)-525(desc_a,)-525(info,)-525(iact,owned\051)]TJ +/F27 9.9626 Tf -227.319 -31.349 Td [(lo)-32(cal)]TJ 0 g 0 G -/F27 9.9626 Tf 0 -21.201 Td [(T)32(yp)-32(e:)]TJ +/F8 9.9626 Tf 28.055 0 Td [(Whether)-465(the)-464(en)27(tr)1(ie)-1(s)-464(in)-465(the)-465(in)1(dice)-1(s)-464(v)28(ec)-1(tor)1(s)]TJ/F30 9.9626 Tf 194.825 0 Td [(ia)]TJ/F8 9.9626 Tf 10.461 0 Td [(,)]TJ/F30 9.9626 Tf 7.724 0 Td [(ja)]TJ/F8 9.9626 Tf 15.09 0 Td [(are)-465(already)-464(in)-465(lo)-28(cal)]TJ -231.248 -11.955 Td [(n)28(um)28(b)-28(ering.)]TJ 0 -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.183 0 Td [(optional)]TJ/F8 9.9626 Tf 40.577 0 Td [(.)]TJ -65.76 -11.956 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(logical)-333(v)55(alue;)-333(default:)]TJ/F30 9.9626 Tf 163.056 0 Td [(.false.)]TJ/F8 9.9626 Tf 36.612 0 Td [(.)]TJ 0 g 0 G -/F8 9.9626 Tf 33.797 0 Td [(Async)28(hronous.)]TJ +/F27 9.9626 Tf -224.575 -20.589 Td [(On)-383(Return)]TJ 0 g 0 G -/F27 9.9626 Tf -33.797 -19.639 Td [(On)-383(En)32(try)]TJ 0 g 0 G + 0 -19.394 Td [(a)]TJ 0 g 0 G - 0 -19.639 Td [(x)]TJ +/F8 9.9626 Tf 10.551 0 Td [(the)-333(matrix)-334(in)28(to)-333(whic)28(h)-334(co)-27(e)-1(\016cien)28(ts)-333(will)-333(b)-28(e)-334(inserted.)]TJ 14.356 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 27.951 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -27.951 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.183 0 Td [(required)]TJ/F8 9.9626 Tf -25.183 -11.956 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)-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 491.534 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +Q +BT +/F30 9.9626 Tf 315.174 491.334 Td [(Tspmat)]TJ +ET +q +1 0 0 1 347.183 491.534 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +Q +BT +/F30 9.9626 Tf 350.322 491.334 Td [(type)]TJ 0 g 0 G -/F8 9.9626 Tf 11.028 0 Td [(An)-333(in)28(te)-1(ger)-333(v)28(ector)-333(of)-334(indices)-333(to)-333(b)-28(e)-334(con)28(v)28(erted.)]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 [(in,)-383(inout)]TJ/F8 9.9626 Tf 42.645 0 Td [(.)]TJ -76.131 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(rank)-333(one)-333(in)27(teger)-333(arra)28(y)83(.)]TJ +/F8 9.9626 Tf 20.921 0 Td [(.)]TJ 0 g 0 G -/F27 9.9626 Tf -24.907 -31.594 Td [(desc)]TJ +/F27 9.9626 Tf -271.348 -19.394 Td [(desc)]TJ ET q -1 0 0 1 121.81 536.09 cm +1 0 0 1 121.81 472.14 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 125.247 535.891 Td [(a)]TJ +/F27 9.9626 Tf 125.247 471.94 Td [(a)]TJ 0 g 0 G -/F8 9.9626 Tf 10.551 0 Td [(the)-333(comm)27(unication)-333(descriptor.)]TJ -10.996 -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.183 0 Td [(required)]TJ/F8 9.9626 Tf 41.899 0 Td [(.)]TJ -67.082 -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 10.551 0 Td [(The)-333(comm)27(unication)-333(descriptor.)]TJ -10.996 -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 [(inout)]TJ/F8 9.9626 Tf 26.096 0 Td [(.)]TJ -59.582 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(v)56(ariable)-334(of)-333(t)28(yp)-28(e)]TJ 0 0 1 rg 0 0 1 RG -/F30 9.9626 Tf 170.915 0 Td [(psb)]TJ +/F30 9.9626 Tf 137.346 0 Td [(psb)]TJ ET q -1 0 0 1 312.036 488.27 cm +1 0 0 1 278.467 424.319 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 315.174 488.07 Td [(desc)]TJ +/F30 9.9626 Tf 281.605 424.12 Td [(desc)]TJ ET q -1 0 0 1 336.723 488.27 cm +1 0 0 1 303.154 424.319 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 339.861 488.07 Td [(type)]TJ +/F30 9.9626 Tf 306.292 424.12 Td [(type)]TJ 0 g 0 G -/F8 9.9626 Tf 20.921 0 Td [(.)]TJ +/F8 9.9626 Tf 20.922 0 Td [(.)]TJ 0 g 0 G -/F27 9.9626 Tf -260.887 -19.638 Td [(iact)]TJ +/F27 9.9626 Tf -227.319 -31.349 Td [(info)]TJ 0 g 0 G -/F8 9.9626 Tf 23.281 0 Td [(sp)-28(eci\014es)-333(action)-334(to)-333(b)-28(e)-333(tak)28(en)-334(in)-333(case)-333(of)-334(range)-333(errors.)-444(Scop)-28(e:)]TJ/F27 9.9626 Tf 257.147 0 Td [(global)]TJ/F8 9.9626 Tf -255.521 -11.956 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)-255(as:)-405(a)-256(c)28(haracter)-255(v)56(ariable)]TJ/F30 9.9626 Tf 143.584 0 Td [(I)]TJ/F8 9.9626 Tf 5.23 0 Td [(gnore,)]TJ/F30 9.9626 Tf 29.293 0 Td [(W)]TJ/F8 9.9626 Tf 5.23 0 Td [(arning)-255(or)]TJ/F30 9.9626 Tf 41.67 0 Td [(A)]TJ/F8 9.9626 Tf 5.231 0 Td [(b)-28(ort,)-270(default)]TJ/F30 9.9626 Tf 56.741 0 Td [(I)]TJ/F8 9.9626 Tf 5.231 0 Td [(gnore.)]TJ +/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 -20.59 Td [(Notes)]TJ 0 g 0 G -/F27 9.9626 Tf -317.117 -19.639 Td [(o)32(wned)]TJ +/F8 9.9626 Tf 12.177 -18.862 Td [(1.)]TJ 0 g 0 G -/F8 9.9626 Tf 36.647 0 Td [(Sp)-28(ec\014es)-333(v)55(alid)-333(range)-333(of)-334(i)1(nput)-334(Scop)-27(e:)]TJ/F27 9.9626 Tf 158.933 0 Td [(global)]TJ/F8 9.9626 Tf -170.673 -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 [(If)-294(true,)-302(then)-294(only)-295(indices)-294(strictly)-294(o)28(wned)-295(b)28(y)-294(the)-294(curren)28(t)-295(pro)-27(ces)-1(s)-294(are)-294(consid-)]TJ 0 -11.955 Td [(ered)-333(v)55(alid,)-333(if)-333(false)-334(then)-333(halo)-333(indices)-334(are)-333(also)-333(accepted.)-445(Default:)-444(false.)]TJ + [-500(On)-487(en)28(try)-487(to)-488(this)-487(routine)-487(the)-487(descriptor)-487(ma)28(y)-488(b)-27(e)-488(in)-487(either)-487(the)-487(build)-487(or)]TJ 12.73 -11.955 Td [(assem)28(bled)-334(state.)]TJ 0 g 0 G -/F27 9.9626 Tf -24.907 -21.202 Td [(On)-383(Return)]TJ + -12.73 -19.394 Td [(2.)]TJ 0 g 0 G + [-500(On)-363(en)28(try)-362(to)-363(this)-363(routine)-362(the)-363(sparse)-363(matrix)-363(ma)28(y)-363(b)-27(e)-363(in)-363(either)-362(the)-363(build)-363(or)]TJ 12.73 -11.955 Td [(up)-28(date)-333(state.)]TJ 0 g 0 G - 0 -19.639 Td [(x)]TJ + -12.73 -19.394 Td [(3.)]TJ 0 g 0 G -/F8 9.9626 Tf 11.028 0 Td [(If)]TJ/F11 9.9626 Tf 10.133 0 Td [(y)]TJ/F8 9.9626 Tf 8.733 0 Td [(is)-350(not)-351(presen)28(t,)-355(then)]TJ/F11 9.9626 Tf 88.586 0 Td [(x)]TJ/F8 9.9626 Tf 9.185 0 Td [(is)-350(o)27(v)28(erwritten)-350(with)-351(th)1(e)-351(translated)-350(in)28(teger)-351(indices.)]TJ -102.758 -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 [(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.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(rank)-333(one)-333(in)27(teger)-333(arra)28(y)83(.)]TJ + [-500(If)-230(the)-231(descriptor)-230(is)-231(in)-230(the)-231(build)-230(state,)-251(then)-231(the)-230(sparse)-231(matrix)-230(m)28(ust)-231(also)-230(b)-28(e)-231(in)]TJ 12.73 -11.955 Td [(the)-327(build)-327(state;)-329(the)-328(action)-327(of)-327(the)-327(routine)-327(is)-327(to)-327(\050implicitly\051)-327(call)]TJ/F30 9.9626 Tf 271.731 0 Td [(psb_cdins)]TJ/F8 9.9626 Tf -271.731 -11.956 Td [(to)-419(add)-419(en)28(tries)-419(to)-419(th)1(e)-419(sparsit)27(y)-418(pattern;)-462(eac)28(h)-419(sparse)-419(matrix)-419(en)28(try)-419(implic-)]TJ 0 -11.955 Td [(itly)-359(de\014nes)-360(a)-360(grap)1(h)-360(edge,)-366(that)-360(is)-359(passed)-360(to)-359(the)-360(descriptor)-359(routine)-360(for)-359(the)]TJ 0 -11.955 Td [(appropriate)-333(pro)-28(cessing;)]TJ 0 g 0 G -/F27 9.9626 Tf -24.907 -19.639 Td [(y)]TJ + -12.73 -19.394 Td [(4.)]TJ +0 g 0 G + [-500(The)-333(input)-334(d)1(ata)-334(can)-333(b)-28(e)-333(passed)-334(in)-333(either)-333(COO)-334(or)-333(CSR)-333(formats;)]TJ +0 g 0 G + 0 -19.394 Td [(5.)]TJ +0 g 0 G + [-500(In)-368(COO)-367(format)-368(the)-367(co)-28(e\016cien)28(ts)-368(to)-368(b)-27(e)-368(inserted)-368(are)-367(represen)28(ted)-368(b)28(y)-368(the)-367(or-)]TJ 12.73 -11.955 Td [(dered)-358(triples)]TJ/F11 9.9626 Tf 58.162 0 Td [(ia)]TJ/F8 9.9626 Tf 8.699 0 Td [(\050)]TJ/F11 9.9626 Tf 3.874 0 Td [(i)]TJ/F8 9.9626 Tf 3.432 0 Td [(\051)]TJ/F11 9.9626 Tf 3.875 0 Td [(;)-167(j)-57(a)]TJ/F8 9.9626 Tf 14.367 0 Td [(\050)]TJ/F11 9.9626 Tf 3.874 0 Td [(i)]TJ/F8 9.9626 Tf 3.432 0 Td [(\051)]TJ/F11 9.9626 Tf 3.875 0 Td [(;)-167(v)-36(a)1(l)]TJ/F8 9.9626 Tf 18.049 0 Td [(\050)]TJ/F11 9.9626 Tf 3.874 0 Td [(i)]TJ/F8 9.9626 Tf 3.432 0 Td [(\051,)-364(for)]TJ/F11 9.9626 Tf 25.762 0 Td [(i)]TJ/F8 9.9626 Tf 6.608 0 Td [(=)-319(1)]TJ/F11 9.9626 Tf 15.905 0 Td [(;)-167(:)-166(:)-167(:)-167(;)-166(nz)]TJ/F8 9.9626 Tf 33.191 0 Td [(;)-370(these)-358(triples)-358(should)-358(b)-28(e-)]TJ -210.411 -11.955 Td [(long)-384(to)-385(the)-384(curren)28(t)-385(pro)-28(cess,)-397(i.e.)]TJ/F11 9.9626 Tf 144.426 0 Td [(ia)]TJ/F8 9.9626 Tf 8.698 0 Td [(\050)]TJ/F11 9.9626 Tf 3.875 0 Td [(i)]TJ/F8 9.9626 Tf 3.432 0 Td [(\051)-384(should)-385(b)-28(e)-384(one)-384(of)-385(the)-384(lo)-28(cal)-385(ind)1(ic)-1(es,)]TJ -160.431 -11.955 Td [(but)-333(are)-334(otherwise)-333(arbitrary;)]TJ +0 g 0 G + 141.968 -29.888 Td [(83)]TJ +0 g 0 G +ET + +endstream +endobj +1472 0 obj +<< +/Length 3810 +>> +stream +0 g 0 G +0 g 0 G +0 g 0 G +BT +/F8 9.9626 Tf 162.881 706.129 Td [(6.)]TJ +0 g 0 G + [-500(In)-497(CSR)-496(format)-496(the)-497(co)-28(e\016cien)28(ts)-497(to)-496(b)-28(e)-497(inserted)-496(for)-497(eac)28(h)-496(input)-497(ro)28(w)]TJ/F11 9.9626 Tf 314.877 0 Td [(i)]TJ/F8 9.9626 Tf 8.909 0 Td [(=)]TJ -311.056 -11.955 Td [(1)]TJ/F11 9.9626 Tf 4.982 0 Td [(;)-167(nr)]TJ/F8 9.9626 Tf 18.296 0 Td [(are)-313(represen)28(ted)-313(b)28(y)-313(the)-313(ordered)-313(triples)-312(\050)]TJ/F11 9.9626 Tf 169.802 0 Td [(i)]TJ/F8 9.9626 Tf 5.238 0 Td [(+)]TJ/F11 9.9626 Tf 9.554 0 Td [(ir)-28(w)]TJ/F14 9.9626 Tf 17.41 0 Td [(\000)]TJ/F8 9.9626 Tf 9.555 0 Td [(1\051)]TJ/F11 9.9626 Tf 8.856 0 Td [(;)-167(j)-57(a)]TJ/F8 9.9626 Tf 14.367 0 Td [(\050)]TJ/F11 9.9626 Tf 3.874 0 Td [(j)]TJ/F8 9.9626 Tf 4.673 0 Td [(\051)]TJ/F11 9.9626 Tf 3.874 0 Td [(;)-167(v)-36(al)]TJ/F8 9.9626 Tf 18.05 0 Td [(\050)]TJ/F11 9.9626 Tf 3.874 0 Td [(j)]TJ/F8 9.9626 Tf 4.673 0 Td [(\051,)-317(for)]TJ/F11 9.9626 Tf -297.078 -11.955 Td [(j)]TJ/F8 9.9626 Tf 8.599 0 Td [(=)]TJ/F11 9.9626 Tf 11.674 0 Td [(ir)-28(p)]TJ/F8 9.9626 Tf 13.216 0 Td [(\050)]TJ/F11 9.9626 Tf 3.875 0 Td [(i)]TJ/F8 9.9626 Tf 3.432 0 Td [(\051)]TJ/F11 9.9626 Tf 3.874 0 Td [(;)-167(:)-166(:)-167(:)-167(;)-166(ir)-28(p)]TJ/F8 9.9626 Tf 35.355 0 Td [(\050)]TJ/F11 9.9626 Tf 3.875 0 Td [(i)]TJ/F8 9.9626 Tf 6.109 0 Td [(+)-269(1\051)]TJ/F14 9.9626 Tf 21.959 0 Td [(\000)]TJ/F8 9.9626 Tf 10.426 0 Td [(1;)-438(these)-403(triples)-403(should)-403(b)-28(elong)-403(to)-403(the)-403(curren)28(t)]TJ -122.394 -11.956 Td [(pro)-28(cess,)-272(i.e.)]TJ/F11 9.9626 Tf 53.794 0 Td [(i)]TJ/F8 9.9626 Tf 4.123 0 Td [(+)]TJ/F11 9.9626 Tf 8.44 0 Td [(ir)-28(w)]TJ/F14 9.9626 Tf 16.295 0 Td [(\000)]TJ/F8 9.9626 Tf 8.44 0 Td [(1)-257(should)-257(b)-28(e)-256(one)-257(of)-257(the)-257(lo)-28(cal)-257(indices,)-272(but)-257(are)-257(otherwise)]TJ -91.092 -11.955 Td [(arbitrary;)]TJ +0 g 0 G + -12.73 -19.925 Td [(7.)]TJ +0 g 0 G + [-500(There)-386(is)-385(no)-386(requiremen)28(t)-386(that)-386(a)-385(giv)28(e)-1(n)-385(ro)28(w)-386(m)28(ust)-386(b)-28(e)-385(pass)-1(ed)-385(in)-386(its)-386(en)28(tiret)28(y)]TJ 12.73 -11.955 Td [(to)-355(a)-354(single)-355(call)-354(to)-355(this)-354(routine:)-487(the)-355(buildup)-354(of)-355(a)-354(ro)28(w)-355(ma)28(y)-355(b)-28(e)-354(split)-355(in)28(to)-355(as)]TJ 0 -11.955 Td [(man)28(y)-334(calls)-333(as)-333(desired)-334(\050ev)28(en)-333(in)-334(th)1(e)-334(CSR)-333(format\051;)]TJ +0 g 0 G + -12.73 -19.926 Td [(8.)]TJ +0 g 0 G + [-500(Co)-28(e\016cien)28(ts)-409(from)-410(di\013eren)28(t)-409(ro)28(ws)-410(ma)28(y)-409(also)-409(b)-28(e)-409(m)-1(ix)1(e)-1(d)-409(up)-409(freely)-409(in)-409(a)-410(single)]TJ 12.73 -11.955 Td [(call,)-333(according)-334(to)-333(the)-333(application)-334(n)1(e)-1(eds;)]TJ +0 g 0 G + -12.73 -19.925 Td [(9.)]TJ +0 g 0 G + [-500(An)28(y)-416(co)-28(e\016cien)28(ts)-416(from)-416(matrix)-416(ro)28(ws)-416(not)-416(o)28(wned)-416(b)28(y)-416(the)-416(calling)-416(pro)-28(cess)-416(are)]TJ 12.73 -11.955 Td [(silen)28(tly)-334(ignor)1(e)-1(d)1(;)]TJ +0 g 0 G + -17.711 -19.926 Td [(10.)]TJ 0 g 0 G -/F8 9.9626 Tf 11.028 0 Td [(If)]TJ/F11 9.9626 Tf 10.04 0 Td [(y)]TJ/F8 9.9626 Tf 8.64 0 Td [(is)-341(presen)28(t,)-343(then)]TJ/F11 9.9626 Tf 70.405 0 Td [(y)]TJ/F8 9.9626 Tf 8.64 0 Td [(is)-341(o)28(v)27(erwri)1(tte)-1(n)-341(with)-341(the)-341(translated)-341(in)28(teger)-341(indices,)-343(and)]TJ/F11 9.9626 Tf -83.846 -11.955 Td [(x)]TJ/F8 9.9626 Tf 9.015 0 Td [(is)-333(left)-334(unc)28(hanged.)-444(Scop)-28(e:)]TJ/F27 9.9626 Tf 113.242 0 Td [(global)]TJ/F8 9.9626 Tf -122.257 -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.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 [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(rank)-333(one)-333(in)27(teger)-333(arra)28(y)83(.)]TJ + [-500(If)-358(the)-359(descriptor)-358(is)-359(in)-358(the)-359(assem)28(bled)-359(state,)-364(then)-359(an)28(y)-359(en)28(tries)-358(in)-359(the)-358(sparse)]TJ 17.711 -11.955 Td [(matrix)-430(that)-429(w)27(ould)-429(generate)-430(additional)-430(comm)28(unication)-430(requiremen)28(ts)-430(are)]TJ 0 -11.955 Td [(ignored;)]TJ 0 g 0 G -/F27 9.9626 Tf -24.907 -19.638 Td [(info)]TJ + -17.711 -19.925 Td [(11.)]TJ 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 + [-500(If)-309(th)1(e)-309(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 17.711 -11.955 Td [(presen)28(t)-334(in)-333(the)-333(original)-333(matrix)-334(are)-333(ignored.)]TJ 0 g 0 G -/F8 9.9626 Tf 166.875 -29.887 Td [(89)]TJ + 141.968 -384.558 Td [(84)]TJ 0 g 0 G ET endstream endobj -1464 0 obj +1484 0 obj << -/Length 705 +/Length 6651 >> stream 0 g 0 G 0 g 0 G -0 g 0 G BT -/F8 9.9626 Tf 162.881 706.129 Td [(1.)]TJ +/F16 11.9552 Tf 99.895 706.129 Td [(6.9)-1125(psb)]TJ +ET +q +1 0 0 1 151.587 706.328 cm +[]0 d 0 J 0.398 w 0 0 m 4.035 0 l S +Q +BT +/F16 11.9552 Tf 155.621 706.129 Td [(spasb)-375(|)-375(Sparse)-375(matrix)-375(assem)31(bly)-375(routine)]TJ 0 g 0 G - [-500(If)-352(an)-353(input)-352(index)-352(is)-353(out)-352(of)-353(r)1(ange)-1(,)-357(then)-352(the)-352(corres)-1(p)-27(onding)-353(ou)1(tput)-353(index)-352(is)]TJ 12.73 -11.955 Td [(set)-333(to)-334(a)-333(negativ)28(e)-334(n)28(um)28(b)-28(er;)]TJ 0 g 0 G - -12.73 -19.926 Td [(2.)]TJ +/F30 9.9626 Tf -55.726 -18.389 Td [(call)-525(psb_spasb\050a,)-525(desc_a,)-525(info,)-525(afmt,)-525(upd,)-525(dupl,)-525(mold\051)]TJ 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 +/F27 9.9626 Tf 0 -21.202 Td [(T)32(yp)-32(e:)]TJ 0 g 0 G - 141.968 -571.855 Td [(90)]TJ +/F8 9.9626 Tf 33.797 0 Td [(Sync)28(hronous.)]TJ 0 g 0 G -ET - -endstream -endobj -1471 0 obj -<< -/Length 5721 ->> -stream +/F27 9.9626 Tf -33.797 -19.639 Td [(On)-383(En)32(try)]TJ 0 g 0 G 0 g 0 G -BT -/F16 11.9552 Tf 99.895 706.129 Td [(psb)]TJ + 0 -19.638 Td [(desc)]TJ ET q -1 0 0 1 120.951 706.328 cm -[]0 d 0 J 0.398 w 0 0 m 4.035 0 l S +1 0 0 1 121.81 627.46 cm +[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F16 11.9552 Tf 124.986 706.129 Td [(lo)-31(c)]TJ +/F27 9.9626 Tf 125.247 627.261 Td [(a)]TJ +0 g 0 G +/F8 9.9626 Tf 10.551 0 Td [(the)-333(comm)27(unication)-333(descriptor.)]TJ -10.996 -11.956 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.183 0 Td [(required)]TJ/F8 9.9626 Tf 41.899 0 Td [(.)]TJ -67.082 -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 142.605 706.328 cm -[]0 d 0 J 0.398 w 0 0 m 4.035 0 l S +1 0 0 1 312.036 579.639 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F16 11.9552 Tf 146.64 706.129 Td [(to)]TJ +/F30 9.9626 Tf 315.174 579.44 Td [(desc)]TJ ET q -1 0 0 1 159.402 706.328 cm -[]0 d 0 J 0.398 w 0 0 m 4.035 0 l S +1 0 0 1 336.723 579.639 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F16 11.9552 Tf 163.437 706.129 Td [(glob)-375(|)-375(Lo)-31(cal)-375(to)-375(global)-375(indices)-375(con)31(v)31(ersion)]TJ +/F30 9.9626 Tf 339.861 579.44 Td [(type)]TJ 0 g 0 G +/F8 9.9626 Tf 20.921 0 Td [(.)]TJ 0 g 0 G -/F30 9.9626 Tf -63.542 -18.389 Td [(call)-525(psb_loc_to_glob\050x,)-525(y,)-525(desc_a,)-525(info,)-525(iact\051)]TJ 0 -11.956 Td [(call)-525(psb_loc_to_glob\050x,)-525(desc_a,)-525(info,)-525(iact\051)]TJ +/F27 9.9626 Tf -260.887 -19.639 Td [(afm)32(t)]TJ 0 g 0 G -/F27 9.9626 Tf 0 -21.917 Td [(T)32(yp)-32(e:)]TJ +/F8 9.9626 Tf 27.737 0 Td [(the)-333(storage)-334(format)-333(for)-333(the)-334(sparse)-333(matrix.)]TJ -2.83 -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 [(optional)]TJ/F8 9.9626 Tf 40.577 0 Td [(.)]TJ -70.188 -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(arra)28(y)-333(of)-334(c)28(haracters.)-444(Defalt:)-445('CSR'.)]TJ 0 g 0 G -/F8 9.9626 Tf 33.797 0 Td [(Async)28(hronous.)]TJ +/F27 9.9626 Tf -24.907 -19.639 Td [(up)-32(d)]TJ 0 g 0 G -/F27 9.9626 Tf -33.797 -19.926 Td [(On)-383(En)32(try)]TJ +/F8 9.9626 Tf 24.395 0 Td [(Pro)28(vide)-333(for)-334(up)-27(dates)-334(to)-333(the)-333(matrix)-334(co)-28(e\016cien)28(ts.)]TJ 0.512 -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 [(optional)]TJ/F8 9.9626 Tf 40.577 0 Td [(.)]TJ -70.188 -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(in)28(teger,)-333(p)-28(ossible)-333(v)55(alues:)]TJ/F30 9.9626 Tf 164.633 0 Td [(psb_upd_srch_)]TJ/F8 9.9626 Tf 67.994 0 Td [(,)]TJ/F30 9.9626 Tf 6.089 0 Td [(psb_upd_perm_)]TJ 0 g 0 G +/F27 9.9626 Tf -263.623 -19.639 Td [(dupl)]TJ 0 g 0 G - 0 -19.925 Td [(x)]TJ +/F8 9.9626 Tf 27.259 0 Td [(Ho)28(w)-334(to)-333(handle)-333(duplicate)-333(co)-28(e\016cien)27(ts.)]TJ -2.352 -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 [(optional)]TJ/F8 9.9626 Tf 40.577 0 Td [(.)]TJ -70.188 -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)-308(as:)-432(in)27(teger,)-313(p)-28(ossible)-309(v)56(alues:)]TJ/F30 9.9626 Tf 163.696 0 Td [(psb_dupl_ovwrt_)]TJ/F8 9.9626 Tf 78.456 0 Td [(,)]TJ/F30 9.9626 Tf 5.891 0 Td [(psb_dupl_add_)]TJ/F8 9.9626 Tf 67.994 0 Td [(,)]TJ/F30 9.9626 Tf -316.037 -11.955 Td [(psb_dupl_err_)]TJ/F8 9.9626 Tf 67.994 0 Td [(.)]TJ 0 g 0 G -/F8 9.9626 Tf 11.028 0 Td [(An)-333(in)28(te)-1(ger)-333(v)28(ector)-333(of)-334(indices)-333(to)-333(b)-28(e)-334(con)28(v)28(erted.)]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.956 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in,)-383(inout)]TJ/F8 9.9626 Tf 42.645 0 Td [(.)]TJ -76.131 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(rank)-333(one)-333(in)27(teger)-333(arra)28(y)83(.)]TJ +/F27 9.9626 Tf -92.901 -19.639 Td [(mold)]TJ 0 g 0 G -/F27 9.9626 Tf -24.907 -31.88 Td [(desc)]TJ +/F8 9.9626 Tf 29.805 0 Td [(The)-333(desired)-334(dynamic)-333(t)28(yp)-28(e)-333(for)-334(the)-333(in)28(ternal)-333(matrix)-334(storage.)]TJ -4.898 -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.956 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(optional)]TJ/F8 9.9626 Tf 40.577 0 Td [(.)]TJ -70.188 -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(ob)-55(ject)-334(of)-333(a)-333(class)-334(deriv)28(ed)-333(from)]TJ/F30 9.9626 Tf 203.349 0 Td [(psb)]TJ ET q -1 0 0 1 121.81 534.514 cm -[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S +1 0 0 1 344.47 297.847 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F27 9.9626 Tf 125.247 534.315 Td [(a)]TJ +/F30 9.9626 Tf 347.608 297.647 Td [(T)]TJ +ET +q +1 0 0 1 353.466 297.847 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +Q +BT +/F30 9.9626 Tf 356.604 297.647 Td [(base)]TJ +ET +q +1 0 0 1 378.153 297.847 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +Q +BT +/F30 9.9626 Tf 381.291 297.647 Td [(sparse)]TJ +ET +q +1 0 0 1 413.301 297.847 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +Q +BT +/F30 9.9626 Tf 416.439 297.647 Td [(mat)]TJ/F8 9.9626 Tf 15.691 0 Td [(.)]TJ 0 g 0 G -/F8 9.9626 Tf 10.551 0 Td [(the)-333(comm)27(unication)-333(descriptor.)]TJ -10.996 -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.183 0 Td [(required)]TJ/F8 9.9626 Tf 41.899 0 Td [(.)]TJ -67.082 -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 +/F27 9.9626 Tf -332.235 -21.201 Td [(On)-383(Return)]TJ +0 g 0 G +0 g 0 G + 0 -19.639 Td [(a)]TJ +0 g 0 G +/F8 9.9626 Tf 10.551 0 Td [(the)-333(matrix)-334(to)-333(b)-28(e)-333(assem)28(bled.)]TJ 14.356 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 27.951 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -27.951 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.183 0 Td [(required)]TJ/F8 9.9626 Tf -25.183 -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(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 486.693 cm +1 0 0 1 312.036 209.186 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 315.174 486.494 Td [(desc)]TJ +/F30 9.9626 Tf 315.174 208.986 Td [(Tspmat)]TJ ET q -1 0 0 1 336.723 486.693 cm +1 0 0 1 347.183 209.186 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 339.861 486.494 Td [(type)]TJ +/F30 9.9626 Tf 350.322 208.986 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.925 Td [(iact)]TJ +/F27 9.9626 Tf -271.348 -19.638 Td [(info)]TJ 0 g 0 G -/F8 9.9626 Tf 23.281 0 Td [(sp)-28(eci\014es)-333(action)-334(to)-333(b)-28(e)-333(tak)28(en)-334(in)-333(case)-333(of)-334(range)-333(errors.)-444(Scop)-28(e:)]TJ/F27 9.9626 Tf 257.147 0 Td [(global)]TJ/F8 9.9626 Tf -255.521 -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.956 Td [(Sp)-28(eci\014ed)-255(as:)-405(a)-256(c)28(haracter)-255(v)56(ariable)]TJ/F30 9.9626 Tf 143.584 0 Td [(I)]TJ/F8 9.9626 Tf 5.23 0 Td [(gnore,)]TJ/F30 9.9626 Tf 29.293 0 Td [(W)]TJ/F8 9.9626 Tf 5.23 0 Td [(arning)-255(or)]TJ/F30 9.9626 Tf 41.67 0 Td [(A)]TJ/F8 9.9626 Tf 5.231 0 Td [(b)-28(ort,)-270(default)]TJ/F30 9.9626 Tf 56.741 0 Td [(I)]TJ/F8 9.9626 Tf 5.231 0 Td [(gnore.)]TJ +/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/F16 11.9552 Tf -24.907 -21.201 Td [(Notes)]TJ 0 g 0 G -/F27 9.9626 Tf -317.117 -21.917 Td [(On)-383(Return)]TJ +/F8 9.9626 Tf 166.875 -29.888 Td [(85)]TJ 0 g 0 G +ET + +endstream +endobj +1489 0 obj +<< +/Length 2255 +>> +stream 0 g 0 G - 0 -19.926 Td [(x)]TJ 0 g 0 G -/F8 9.9626 Tf 11.028 0 Td [(If)]TJ/F11 9.9626 Tf 10.133 0 Td [(y)]TJ/F8 9.9626 Tf 8.733 0 Td [(is)-350(not)-351(presen)28(t,)-355(then)]TJ/F11 9.9626 Tf 88.586 0 Td [(x)]TJ/F8 9.9626 Tf 9.185 0 Td [(is)-350(o)27(v)28(erwritten)-350(with)-351(th)1(e)-351(translated)-350(in)28(teger)-351(indices.)]TJ -102.758 -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 [(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.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(rank)-333(one)-333(in)27(teger)-333(arra)28(y)83(.)]TJ 0 g 0 G -/F27 9.9626 Tf -24.907 -19.926 Td [(y)]TJ +BT +/F8 9.9626 Tf 162.881 706.129 Td [(1.)]TJ 0 g 0 G -/F8 9.9626 Tf 11.028 0 Td [(If)]TJ/F11 9.9626 Tf 10.167 0 Td [(y)]TJ/F8 9.9626 Tf 8.767 0 Td [(is)-354(not)-354(presen)28(t,)-359(then)]TJ/F11 9.9626 Tf 88.732 0 Td [(y)]TJ/F8 9.9626 Tf 8.766 0 Td [(is)-354(o)28(v)28(erwritten)-354(with)-354(the)-354(translated)-353(in)27(teger)-353(indices,)]TJ -102.553 -11.955 Td [(and)]TJ/F11 9.9626 Tf 19.372 0 Td [(x)]TJ/F8 9.9626 Tf 9.015 0 Td [(is)-333(left)-334(unc)28(hanged.)-444(Scop)-28(e:)]TJ/F27 9.9626 Tf 113.242 0 Td [(global)]TJ/F8 9.9626 Tf -141.629 -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 [(out)]TJ/F8 9.9626 Tf 16.549 0 Td [(.)]TJ -50.035 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(rank)-333(one)-333(in)27(teger)-333(arra)28(y)83(.)]TJ + [-500(On)-406(en)28(try)-406(to)-406(this)-406(routine)-406(the)-406(descriptor)-406(m)28(ust)-406(b)-28(e)-406(in)-406(the)-406(assem)27(b)1(led)-406(s)-1(tate,)]TJ 12.73 -11.955 Td [(i.e.)]TJ/F30 9.9626 Tf 17.158 0 Td [(psb_cdasb)]TJ/F8 9.9626 Tf 50.394 0 Td [(m)28(ust)-334(already)-333(ha)28(v)28(e)-334(b)-27(een)-334(called.)]TJ 0 g 0 G -/F27 9.9626 Tf -24.907 -19.926 Td [(info)]TJ + -80.282 -19.926 Td [(2.)]TJ 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 + [-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 - 141.968 -115.11 Td [(91)]TJ + 0 -19.925 Td [(3.)]TJ +0 g 0 G + [-500(Duplicate)-250(en)28(tries)-250(are)-249(dete)-1(cted)-249(and)-250(handled)-250(in)-249(b)-28(oth)-250(build)-249(and)-250(up)-28(date)-249(state,)]TJ 12.73 -11.955 Td [(with)-282(the)-283(exception)-282(of)-282(the)-283(error)-282(action)-282(that)-283(is)-282(only)-282(tak)28(en)-283(in)-282(the)-282(build)-283(state,)]TJ 0 -11.955 Td [(i.e.)-444(on)-334(the)-333(\014rst)-333(asse)-1(m)28(bly;)]TJ +0 g 0 G + -12.73 -19.925 Td [(4.)]TJ +0 g 0 G + [-500(If)-224(the)-224(up)-28(date)-223(c)27(hoice)-224(is)]TJ/F30 9.9626 Tf 107.516 0 Td [(psb_upd_perm_)]TJ/F8 9.9626 Tf 67.994 0 Td [(,)-246(then)-224(subsequen)28(t)-224(calls)-224(to)]TJ/F30 9.9626 Tf 108.952 0 Td [(psb_spins)]TJ/F8 9.9626 Tf -271.732 -11.956 Td [(to)-246(up)-28(date)-246(the)-246(matrix)-246(m)28(ust)-246(b)-28(e)-246(arranged)-246(in)-246(suc)28(h)-246(a)-246(w)28(a)27(y)-246(as)-246(to)-246(pro)-27(duce)-246(exactly)]TJ 0 -11.955 Td [(the)-228(same)-229(sequence)-228(of)-228(co)-28(e\016cien)27(t)-228(v)56(alues)-229(as)-228(encoun)28(tered)-228(at)-229(the)-228(\014rst)-228(assem)27(b)1(ly;)]TJ +0 g 0 G + -12.73 -19.925 Td [(5.)]TJ +0 g 0 G + [-500(The)-333(output)-334(storage)-333(format)-333(need)-334(not)-333(b)-28(e)-333(the)-333(same)-334(on)-333(all)-333(pro)-28(cesses;)]TJ +0 g 0 G + 0 -19.925 Td [(6.)]TJ +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 -444.333 Td [(86)]TJ 0 g 0 G ET endstream endobj -1477 0 obj +1501 0 obj << -/Length 3279 +/Length 3097 >> stream 0 g 0 G 0 g 0 G BT -/F16 11.9552 Tf 150.705 706.129 Td [(psb)]TJ -ET -q -1 0 0 1 171.761 706.328 cm -[]0 d 0 J 0.398 w 0 0 m 4.035 0 l S -Q -BT -/F16 11.9552 Tf 175.796 706.129 Td [(is)]TJ +/F16 11.9552 Tf 99.895 706.129 Td [(6.10)-1125(psb)]TJ ET q -1 0 0 1 185.644 706.328 cm +1 0 0 1 158.311 706.328 cm []0 d 0 J 0.398 w 0 0 m 4.035 0 l S Q BT -/F16 11.9552 Tf 189.679 706.129 Td [(o)31(wned)-375(|)]TJ +/F16 11.9552 Tf 162.346 706.129 Td [(spfree)-375(|)-375(F)94(rees)-375(a)-375(sparse)-375(matrix)]TJ 0 g 0 G 0 g 0 G -/F30 9.9626 Tf -38.974 -18.389 Td [(call)-525(psb_is_owned\050x,)-525(desc_a\051)]TJ +/F30 9.9626 Tf -62.451 -18.389 Td [(call)-525(psb_spfree\050a,)-525(desc_a,)-525(info\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 +/F8 9.9626 Tf 33.797 0 Td [(Sync)28(hronous.)]TJ 0 g 0 G /F27 9.9626 Tf -33.797 -19.926 Td [(On)-383(En)32(try)]TJ 0 g 0 G 0 g 0 G - 0 -19.925 Td [(x)]TJ + 0 -19.925 Td [(a)]TJ +0 g 0 G +/F8 9.9626 Tf 10.551 0 Td [(the)-333(matrix)-334(to)-333(b)-28(e)-333(freed.)]TJ 14.356 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 27.951 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -27.951 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.183 0 Td [(required)]TJ/F8 9.9626 Tf -25.183 -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(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 578.35 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +Q +BT +/F30 9.9626 Tf 315.174 578.15 Td [(Tspmat)]TJ +ET +q +1 0 0 1 347.183 578.35 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +Q +BT +/F30 9.9626 Tf 350.322 578.15 Td [(type)]TJ 0 g 0 G -/F8 9.9626 Tf 11.028 0 Td [(In)28(teger)-334(ind)1(e)-1(x.)]TJ 13.879 -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 [(in)]TJ/F8 9.9626 Tf 9.548 0 Td [(.)]TJ -43.033 -11.956 Td [(Sp)-28(eci\014ed)-333(as:)-444(a)-334(scalar)-333(in)28(teger.)]TJ +/F8 9.9626 Tf 20.921 0 Td [(.)]TJ 0 g 0 G -/F27 9.9626 Tf -24.907 -31.88 Td [(desc)]TJ +/F27 9.9626 Tf -271.348 -19.925 Td [(desc)]TJ ET q -1 0 0 1 172.619 546.469 cm +1 0 0 1 121.81 558.424 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 176.057 546.27 Td [(a)]TJ +/F27 9.9626 Tf 125.247 558.225 Td [(a)]TJ 0 g 0 G -/F8 9.9626 Tf 10.55 0 Td [(the)-333(comm)27(unication)-333(descriptor.)]TJ -10.996 -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 [(in)]TJ/F8 9.9626 Tf 9.548 0 Td [(.)]TJ -43.034 -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 10.551 0 Td [(the)-333(comm)27(unication)-333(descriptor.)]TJ -10.996 -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.183 0 Td [(required)]TJ/F8 9.9626 Tf 41.899 0 Td [(.)]TJ -67.082 -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 362.845 498.649 cm +1 0 0 1 312.036 510.604 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 365.983 498.449 Td [(desc)]TJ +/F30 9.9626 Tf 315.174 510.405 Td [(desc)]TJ ET q -1 0 0 1 387.532 498.649 cm +1 0 0 1 336.723 510.604 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 390.67 498.449 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 -21.917 Td [(On)-383(Return)]TJ +/F30 9.9626 Tf 339.861 510.405 Td [(type)]TJ 0 g 0 G +/F8 9.9626 Tf 20.921 0 Td [(.)]TJ 0 g 0 G - 0 -19.926 Td [(F)96(unction)-384(v)64(alue)]TJ +/F27 9.9626 Tf -260.887 -21.918 Td [(On)-383(Return)]TJ 0 g 0 G -/F8 9.9626 Tf 78.386 0 Td [(A)-302(logical)-301(mask)-302(whic)28(h)-302(is)-302(tru)1(e)-302(if)]TJ/F11 9.9626 Tf 134.085 0 Td [(x)]TJ/F8 9.9626 Tf 8.7 0 Td [(is)-302(o)28(wned)-302(b)28(y)-301(the)-302(curren)28(t)-302(pro-)]TJ -196.265 -11.955 Td [(cess)-334(Scop)-27(e:)]TJ/F27 9.9626 Tf 52.415 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -52.415 -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/F16 11.9552 Tf -74.941 -33.873 Td [(Notes)]TJ 0 g 0 G -/F8 9.9626 Tf 12.176 -19.926 Td [(1.)]TJ + 0 -19.926 Td [(info)]TJ 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 +/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 -264.549 Td [(92)]TJ + 141.968 -330.303 Td [(87)]TJ 0 g 0 G ET endstream endobj -1483 0 obj +1507 0 obj << -/Length 4979 +/Length 3985 >> stream 0 g 0 G 0 g 0 G BT -/F16 11.9552 Tf 99.895 706.129 Td [(psb)]TJ -ET -q -1 0 0 1 120.951 706.328 cm -[]0 d 0 J 0.398 w 0 0 m 4.035 0 l S -Q -BT -/F16 11.9552 Tf 124.986 706.129 Td [(o)31(wned)]TJ +/F16 11.9552 Tf 150.705 706.129 Td [(6.11)-1125(psb)]TJ ET q -1 0 0 1 162.939 706.328 cm +1 0 0 1 209.121 706.328 cm []0 d 0 J 0.398 w 0 0 m 4.035 0 l S Q BT -/F16 11.9552 Tf 166.974 706.129 Td [(index)-375(|)]TJ +/F16 11.9552 Tf 213.156 706.129 Td [(sprn)-289(|)-289(Reinit)-290(sparse)-289(matrix)-289(structure)-290(for)-289(psblas)]TJ -25.091 -13.948 Td [(routines.)]TJ 0 g 0 G 0 g 0 G -/F30 9.9626 Tf -67.079 -18.389 Td [(call)-525(psb_owned_index\050y,)-525(x,)-525(desc_a,)-525(info\051)]TJ +/F30 9.9626 Tf -37.36 -18.389 Td [(call)-525(psb_sprn\050a,)-525(decsc_a,)-525(info,)-525(clear\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 +/F8 9.9626 Tf 33.797 0 Td [(Sync)28(hronous.)]TJ 0 g 0 G -/F27 9.9626 Tf -33.797 -19.926 Td [(On)-383(En)32(try)]TJ +/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 [(x)]TJ + 0 -19.926 Td [(a)]TJ 0 g 0 G -/F8 9.9626 Tf 11.028 0 Td [(In)28(teger)-334(indices.)]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 [(in,)-383(inout)]TJ/F8 9.9626 Tf 42.645 0 Td [(.)]TJ -76.131 -11.956 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(scalar)-333(or)-334(a)-333(rank)-333(one)-333(in)27(teger)-333(arra)28(y)83(.)]TJ +/F8 9.9626 Tf 10.551 0 Td [(the)-333(matrix)-334(to)-333(b)-28(e)-333(reinitialized.)]TJ 14.356 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 27.95 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -27.95 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.183 0 Td [(required)]TJ/F8 9.9626 Tf -25.183 -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)-333(as:)-444(a)-334(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.914 0 Td [(psb)]TJ +ET +q +1 0 0 1 362.845 564.402 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +Q +BT +/F30 9.9626 Tf 365.983 564.203 Td [(Tspmat)]TJ +ET +q +1 0 0 1 397.993 564.402 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +Q +BT +/F30 9.9626 Tf 401.131 564.203 Td [(type)]TJ 0 g 0 G -/F27 9.9626 Tf -24.907 -31.88 Td [(desc)]TJ +/F8 9.9626 Tf 20.921 0 Td [(.)]TJ +0 g 0 G +/F27 9.9626 Tf -271.347 -19.925 Td [(desc)]TJ ET q -1 0 0 1 121.81 546.469 cm +1 0 0 1 172.619 544.477 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 125.247 546.27 Td [(a)]TJ +/F27 9.9626 Tf 176.057 544.278 Td [(a)]TJ 0 g 0 G -/F8 9.9626 Tf 10.551 0 Td [(the)-333(comm)27(unication)-333(descriptor.)]TJ -10.996 -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.183 0 Td [(required)]TJ/F8 9.9626 Tf 41.899 0 Td [(.)]TJ -67.082 -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 10.55 0 Td [(the)-333(comm)27(unication)-333(descriptor.)]TJ -10.996 -11.956 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 [(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 312.036 498.649 cm +1 0 0 1 362.845 496.656 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 315.174 498.449 Td [(desc)]TJ +/F30 9.9626 Tf 365.983 496.457 Td [(desc)]TJ ET q -1 0 0 1 336.723 498.649 cm +1 0 0 1 387.532 496.656 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 339.861 498.449 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.925 Td [(iact)]TJ +/F30 9.9626 Tf 390.67 496.457 Td [(type)]TJ 0 g 0 G -/F8 9.9626 Tf 23.281 0 Td [(sp)-28(eci\014es)-333(action)-334(to)-333(b)-28(e)-333(tak)28(en)-334(in)-333(case)-333(of)-334(range)-333(errors.)-444(Scop)-28(e:)]TJ/F27 9.9626 Tf 257.147 0 Td [(global)]TJ/F8 9.9626 Tf -255.521 -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)-255(as:)-405(a)-256(c)28(haracter)-255(v)56(ariable)]TJ/F30 9.9626 Tf 143.584 0 Td [(I)]TJ/F8 9.9626 Tf 5.23 0 Td [(gnore,)]TJ/F30 9.9626 Tf 29.293 0 Td [(W)]TJ/F8 9.9626 Tf 5.23 0 Td [(arning)-255(or)]TJ/F30 9.9626 Tf 41.67 0 Td [(A)]TJ/F8 9.9626 Tf 5.231 0 Td [(b)-28(ort,)-270(default)]TJ/F30 9.9626 Tf 56.741 0 Td [(I)]TJ/F8 9.9626 Tf 5.231 0 Td [(gnore.)]TJ +/F8 9.9626 Tf 20.922 0 Td [(.)]TJ 0 g 0 G -/F27 9.9626 Tf -317.117 -21.918 Td [(On)-383(Return)]TJ +/F27 9.9626 Tf -260.887 -19.925 Td [(clear)]TJ 0 g 0 G +/F8 9.9626 Tf 28.795 0 Td [(Cho)-28(ose)-333(whether)-333(to)-334(zero)-333(out)-333(m)-1(atr)1(ix)-334(co)-28(e\016cien)28(ts)]TJ -3.888 -11.956 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 27.95 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 [(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.955 Td [(Default:)-444(true.)]TJ 0 g 0 G - 0 -19.926 Td [(y)]TJ +/F27 9.9626 Tf -24.907 -21.918 Td [(On)-383(Return)]TJ 0 g 0 G -/F8 9.9626 Tf 11.028 0 Td [(A)-294(logical)-294(mask)-294(whic)28(h)-294(is)-294(true)-294(for)-294(all)-294(corresp)-28(onding)-294(en)28(tries)-294(of)]TJ/F11 9.9626 Tf 259.229 0 Td [(x)]TJ/F8 9.9626 Tf 8.623 0 Td [(that)-294(are)-294(o)28(wned)]TJ -253.973 -11.955 Td [(b)28(y)-333(the)-334(curren)28(t)-333(pro)-28(cess)-334(Scop)-27(e:)]TJ/F27 9.9626 Tf 132.752 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -132.752 -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 [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(scalar)-333(or)-334(ran)1(k)-334(one)-333(logical)-333(arra)27(y)84(.)]TJ 0 g 0 G -/F27 9.9626 Tf -24.907 -19.926 Td [(info)]TJ + 0 -19.925 Td [(info)]TJ 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/F16 11.9552 Tf -24.907 -21.918 Td [(Notes)]TJ +/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.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.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/F16 11.9552 Tf -24.907 -21.918 Td [(Notes)]TJ 0 g 0 G -/F8 9.9626 Tf 12.177 -19.925 Td [(1.)]TJ +/F8 9.9626 Tf 12.176 -19.925 Td [(1.)]TJ 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 + [-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 - 141.968 -141.013 Td [(93)]TJ + 154.698 -206.766 Td [(88)]TJ 0 g 0 G ET endstream endobj -1489 0 obj +1514 0 obj << -/Length 3247 +/Length 5118 >> stream 0 g 0 G 0 g 0 G BT -/F16 11.9552 Tf 150.705 706.129 Td [(psb)]TJ -ET -q -1 0 0 1 171.761 706.328 cm -[]0 d 0 J 0.398 w 0 0 m 4.035 0 l S -Q -BT -/F16 11.9552 Tf 175.796 706.129 Td [(is)]TJ +/F16 11.9552 Tf 99.895 706.129 Td [(6.12)-1125(psb)]TJ ET q -1 0 0 1 185.644 706.328 cm +1 0 0 1 158.311 706.328 cm []0 d 0 J 0.398 w 0 0 m 4.035 0 l S Q BT -/F16 11.9552 Tf 189.679 706.129 Td [(lo)-31(cal)-375(|)]TJ +/F16 11.9552 Tf 162.346 706.129 Td [(geall)-375(|)-375(Allo)-31(cates)-375(a)-375(dense)-375(matrix)]TJ 0 g 0 G 0 g 0 G -/F30 9.9626 Tf -38.974 -18.389 Td [(call)-525(psb_is_local\050x,)-525(desc_a\051)]TJ +/F30 9.9626 Tf -62.451 -18.389 Td [(call)-525(psb_geall\050x,)-525(desc_a,)-525(info,)-525(n,)-525(lb\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 +/F8 9.9626 Tf 33.797 0 Td [(Sync)28(hronous.)]TJ 0 g 0 G /F27 9.9626 Tf -33.797 -19.926 Td [(On)-383(En)32(try)]TJ 0 g 0 G 0 g 0 G - 0 -19.925 Td [(x)]TJ -0 g 0 G -/F8 9.9626 Tf 11.028 0 Td [(In)28(teger)-334(ind)1(e)-1(x.)]TJ 13.879 -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 [(in)]TJ/F8 9.9626 Tf 9.548 0 Td [(.)]TJ -43.033 -11.956 Td [(Sp)-28(eci\014ed)-333(as:)-444(a)-334(scalar)-333(in)28(teger.)]TJ -0 g 0 G -/F27 9.9626 Tf -24.907 -31.88 Td [(desc)]TJ + 0 -19.925 Td [(desc)]TJ ET q -1 0 0 1 172.619 546.469 cm +1 0 0 1 121.81 626.17 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 176.057 546.27 Td [(a)]TJ +/F27 9.9626 Tf 125.247 625.971 Td [(a)]TJ 0 g 0 G -/F8 9.9626 Tf 10.55 0 Td [(the)-333(comm)27(unication)-333(descriptor.)]TJ -10.996 -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 [(in)]TJ/F8 9.9626 Tf 9.548 0 Td [(.)]TJ -43.034 -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 10.551 0 Td [(The)-333(comm)27(unication)-333(descriptor.)]TJ -10.996 -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 [(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(v)56(ariable)-334(of)-333(t)28(yp)-28(e)]TJ 0 0 1 rg 0 0 1 RG -/F30 9.9626 Tf 170.915 0 Td [(psb)]TJ +/F30 9.9626 Tf 137.346 0 Td [(psb)]TJ ET q -1 0 0 1 362.845 498.649 cm +1 0 0 1 278.467 578.35 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 365.983 498.449 Td [(desc)]TJ +/F30 9.9626 Tf 281.605 578.15 Td [(desc)]TJ ET q -1 0 0 1 387.532 498.649 cm +1 0 0 1 303.154 578.35 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 390.67 498.449 Td [(type)]TJ +/F30 9.9626 Tf 306.292 578.15 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 -21.917 Td [(On)-383(Return)]TJ +/F27 9.9626 Tf -227.319 -31.88 Td [(n)]TJ 0 g 0 G +/F8 9.9626 Tf 11.347 0 Td [(The)-333(n)27(u)1(m)27(b)-27(e)-1(r)-333(of)-333(columns)-333(of)-334(the)-333(dense)-333(m)-1(atr)1(ix)-334(to)-333(b)-28(e)-333(allo)-28(cated.)]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.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.956 Td [(Sp)-28(eci\014ed)-343(as:)-463(In)27(teger)-343(scalar,)-345(default)-343(1.)-473(It)-343(is)-343(not)-343(a)-343(v)56(alid)-343(argumen)28(t)-343(if)]TJ/F11 9.9626 Tf 294.599 0 Td [(x)]TJ/F8 9.9626 Tf 9.11 0 Td [(is)-343(a)]TJ -303.709 -11.955 Td [(rank-1)-333(arra)28(y)83(.)]TJ 0 g 0 G - 0 -19.926 Td [(F)96(unction)-384(v)64(alue)]TJ +/F27 9.9626 Tf -24.907 -19.925 Td [(lb)]TJ 0 g 0 G -/F8 9.9626 Tf 78.386 0 Td [(A)-264(logical)-265(mask)-264(whic)27(h)-264(is)-265(true)-264(if)]TJ/F11 9.9626 Tf 131.492 0 Td [(x)]TJ/F8 9.9626 Tf 8.329 0 Td [(is)-265(lo)-27(cal)-265(to)-264(the)-265(curren)28(t)-264(pro)-28(cess)]TJ -193.301 -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/F16 11.9552 Tf -74.941 -33.873 Td [(Notes)]TJ +/F8 9.9626 Tf 14.529 0 Td [(The)-489(lo)28(w)27(er)-489(b)-27(ound)-489(for)-489(the)-490(column)-489(index)-489(range)-489(of)-489(the)-489(dense)-489(matrix)-489(to)-489(b)-28(e)]TJ 10.378 -11.955 Td [(allo)-28(cated.)]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.956 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)-343(as:)-463(In)27(teger)-343(scalar,)-345(default)-343(1.)-473(It)-343(is)-343(not)-343(a)-343(v)56(alid)-343(argumen)28(t)-343(if)]TJ/F11 9.9626 Tf 294.599 0 Td [(x)]TJ/F8 9.9626 Tf 9.11 0 Td [(is)-343(a)]TJ -303.709 -11.955 Td [(rank-1)-333(arra)28(y)83(.)]TJ 0 g 0 G -/F8 9.9626 Tf 12.176 -19.926 Td [(1.)]TJ +/F27 9.9626 Tf -24.907 -21.918 Td [(On)-383(Return)]TJ 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 [(94)]TJ + 0 -19.925 Td [(x)]TJ +0 g 0 G +/F8 9.9626 Tf 11.028 0 Td [(The)-333(dense)-334(matrix)-333(to)-333(b)-28(e)-334(all)1(o)-28(cated.)]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.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 [(Sp)-28(eci\014ed)-303(as:)-430(a)-304(rank)-303(one)-304(or)-304(t)28(w)28(o)-304(arra)28(y)-304(with)-303(the)-304(ALLOCA)83(T)83(ABLE)-303(attribute)]TJ 0 -11.955 Td [(or)-333(an)-334(ob)-55(ject)-333(of)-334(t)28(yp)-28(e)]TJ +0 0 1 rg 0 0 1 RG +/F30 9.9626 Tf 89.968 0 Td [(psb)]TJ +ET +q +1 0 0 1 231.089 293.418 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +Q +BT +/F30 9.9626 Tf 234.227 293.219 Td [(T)]TJ +ET +q +1 0 0 1 240.085 293.418 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +Q +BT +/F30 9.9626 Tf 243.223 293.219 Td [(vect)]TJ +ET +q +1 0 0 1 264.772 293.418 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +Q +BT +/F30 9.9626 Tf 267.911 293.219 Td [(type)]TJ +0 g 0 G +/F8 9.9626 Tf 20.921 0 Td [(,)-333(of)-334(t)28(yp)-28(e)-333(real,)-333(complex)-334(or)-333(in)28(teger.)]TJ +0 g 0 G +/F27 9.9626 Tf -188.937 -31.88 Td [(info)]TJ +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 +0 g 0 G + 141.968 -123.08 Td [(89)]TJ 0 g 0 G ET endstream endobj -1495 0 obj +1520 0 obj << -/Length 4963 +/Length 6852 >> stream 0 g 0 G 0 g 0 G BT -/F16 11.9552 Tf 99.895 706.129 Td [(psb)]TJ -ET -q -1 0 0 1 120.951 706.328 cm -[]0 d 0 J 0.398 w 0 0 m 4.035 0 l S -Q -BT -/F16 11.9552 Tf 124.986 706.129 Td [(lo)-31(cal)]TJ +/F16 11.9552 Tf 150.705 706.129 Td [(6.13)-1125(psb)]TJ ET q -1 0 0 1 152.879 706.328 cm +1 0 0 1 209.121 706.328 cm []0 d 0 J 0.398 w 0 0 m 4.035 0 l S Q BT -/F16 11.9552 Tf 156.914 706.129 Td [(index)-375(|)]TJ +/F16 11.9552 Tf 213.156 706.129 Td [(geins)-375(|)-375(Dense)-375(matrix)-375(insertion)-375(routine)]TJ 0 g 0 G 0 g 0 G -/F30 9.9626 Tf -57.019 -18.389 Td [(call)-525(psb_local_index\050y,)-525(x,)-525(desc_a,)-525(info\051)]TJ +/F30 9.9626 Tf -62.451 -18.389 Td [(call)-525(psb_geins\050m,)-525(irw,)-525(val,)-525(x,)-525(desc_a,)-525(info)-525([,dupl,local]\051)]TJ 0 g 0 G -/F27 9.9626 Tf 0 -21.918 Td [(T)32(yp)-32(e:)]TJ +/F27 9.9626 Tf 0 -20.681 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.926 Td [(On)-383(En)32(try)]TJ +/F27 9.9626 Tf -33.797 -19.43 Td [(On)-383(En)32(try)]TJ 0 g 0 G 0 g 0 G - 0 -19.925 Td [(x)]TJ + 0 -19.431 Td [(m)]TJ 0 g 0 G -/F8 9.9626 Tf 11.028 0 Td [(In)28(teger)-334(indices.)]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 [(in,)-383(inout)]TJ/F8 9.9626 Tf 42.645 0 Td [(.)]TJ -76.131 -11.956 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(scalar)-333(or)-334(a)-333(rank)-333(one)-333(in)27(teger)-333(arra)28(y)83(.)]TJ +/F8 9.9626 Tf 14.529 0 Td [(Num)28(b)-28(er)-333(of)-334(ro)28(ws)-333(in)]TJ/F11 9.9626 Tf 84.516 0 Td [(v)-36(al)]TJ/F8 9.9626 Tf 16.942 0 Td [(to)-333(b)-28(e)-333(inse)-1(r)1(te)-1(d)1(.)]TJ -91.081 -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 [(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.)]TJ 0 g 0 G -/F27 9.9626 Tf -24.907 -31.88 Td [(desc)]TJ +/F27 9.9626 Tf -24.906 -19.431 Td [(irw)]TJ +0 g 0 G +/F8 9.9626 Tf 21.157 0 Td [(Indices)-444(of)-445(the)-444(ro)27(ws)-444(to)-445(b)-27(e)-445(inserted.)-778(Sp)-28(eci\014cally)84(,)-472(ro)27(w)]TJ/F11 9.9626 Tf 237.973 0 Td [(i)]TJ/F8 9.9626 Tf 7.861 0 Td [(of)]TJ/F11 9.9626 Tf 12.454 0 Td [(v)-36(al)]TJ/F8 9.9626 Tf 18.049 0 Td [(will)-444(b)-28(e)-445(in-)]TJ -272.588 -11.955 Td [(serted)-435(in)28(to)-436(th)1(e)-436(lo)-27(cal)-436(ro)28(w)-435(corresp)-28(onding)-435(to)-435(the)-435(global)-435(ro)28(w)-435(index)]TJ/F11 9.9626 Tf 289.252 0 Td [(ir)-28(w)]TJ/F8 9.9626 Tf 15.605 0 Td [(\050)]TJ/F11 9.9626 Tf 3.874 0 Td [(i)]TJ/F8 9.9626 Tf 3.432 0 Td [(\051.)]TJ -312.163 -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 [(in)]TJ/F8 9.9626 Tf 9.547 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 +/F27 9.9626 Tf -24.906 -19.43 Td [(v)64(al)]TJ +0 g 0 G +/F8 9.9626 Tf 19.143 0 Td [(the)-333(dense)-334(submatrix)-333(to)-333(b)-28(e)-333(inserted.)]TJ 5.763 -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 [(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(rank)-333(1)-333(o)-1(r)-333(2)-333(arra)28(y)83(.)-444(Sp)-28(eci\014ed)-333(as:)-445(an)-333(in)28(teger)-334(v)56(alue.)]TJ +0 g 0 G +/F27 9.9626 Tf -24.906 -19.43 Td [(desc)]TJ ET q -1 0 0 1 121.81 546.469 cm +1 0 0 1 172.619 414.689 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 125.247 546.27 Td [(a)]TJ +/F27 9.9626 Tf 176.057 414.49 Td [(a)]TJ 0 g 0 G -/F8 9.9626 Tf 10.551 0 Td [(the)-333(comm)27(unication)-333(descriptor.)]TJ -10.996 -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.183 0 Td [(required)]TJ/F8 9.9626 Tf 41.899 0 Td [(.)]TJ -67.082 -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 10.55 0 Td [(the)-333(comm)27(unication)-333(descriptor.)]TJ -10.996 -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 [(in)]TJ/F8 9.9626 Tf 9.548 0 Td [(.)]TJ -43.034 -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 498.649 cm +1 0 0 1 362.845 366.869 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 315.174 498.449 Td [(desc)]TJ +/F30 9.9626 Tf 365.983 366.669 Td [(desc)]TJ ET q -1 0 0 1 336.723 498.649 cm +1 0 0 1 387.532 366.869 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 339.861 498.449 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.925 Td [(iact)]TJ -0 g 0 G -/F8 9.9626 Tf 23.281 0 Td [(sp)-28(eci\014es)-333(action)-334(to)-333(b)-28(e)-333(tak)28(en)-334(in)-333(case)-333(of)-334(range)-333(errors.)-444(Scop)-28(e:)]TJ/F27 9.9626 Tf 257.147 0 Td [(global)]TJ/F8 9.9626 Tf -255.521 -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)-255(as:)-405(a)-256(c)28(haracter)-255(v)56(ariable)]TJ/F30 9.9626 Tf 143.584 0 Td [(I)]TJ/F8 9.9626 Tf 5.23 0 Td [(gnore,)]TJ/F30 9.9626 Tf 29.293 0 Td [(W)]TJ/F8 9.9626 Tf 5.23 0 Td [(arning)-255(or)]TJ/F30 9.9626 Tf 41.67 0 Td [(A)]TJ/F8 9.9626 Tf 5.231 0 Td [(b)-28(ort,)-270(default)]TJ/F30 9.9626 Tf 56.741 0 Td [(I)]TJ/F8 9.9626 Tf 5.231 0 Td [(gnore.)]TJ -0 g 0 G -/F27 9.9626 Tf -317.117 -21.918 Td [(On)-383(Return)]TJ -0 g 0 G -0 g 0 G - 0 -19.926 Td [(y)]TJ +/F30 9.9626 Tf 390.67 366.669 Td [(type)]TJ 0 g 0 G -/F8 9.9626 Tf 11.028 0 Td [(A)-346(logical)-345(mask)-346(whic)28(h)-346(is)-345(true)-346(for)-345(all)-346(corresp)-28(onding)-345(en)28(tries)-346(of)]TJ/F11 9.9626 Tf 264.883 0 Td [(x)]TJ/F8 9.9626 Tf 9.136 0 Td [(that)-346(are)-345(lo)-28(cal)]TJ -260.14 -11.955 Td [(to)-333(the)-334(curren)28(t)-333(pro)-28(cess)-333(Scop)-28(e:)]TJ/F27 9.9626 Tf 131.092 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -131.092 -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 [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(scalar)-333(or)-334(ran)1(k)-334(one)-333(logical)-333(arra)27(y)84(.)]TJ +/F8 9.9626 Tf 20.922 0 Td [(.)]TJ 0 g 0 G -/F27 9.9626 Tf -24.907 -19.926 Td [(info)]TJ +/F27 9.9626 Tf -260.887 -19.43 Td [(dupl)]TJ 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/F16 11.9552 Tf -24.907 -21.918 Td [(Notes)]TJ +/F8 9.9626 Tf 27.259 0 Td [(Ho)28(w)-334(to)-333(handle)-333(duplicate)-333(co)-28(e\016cien)27(ts.)]TJ -2.352 -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 [(optional)]TJ/F8 9.9626 Tf 40.576 0 Td [(.)]TJ -70.188 -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.956 Td [(Sp)-28(eci\014ed)-308(as:)-432(in)27(teger,)-313(p)-28(ossible)-309(v)56(alues:)]TJ/F30 9.9626 Tf 163.697 0 Td [(psb_dupl_ovwrt_)]TJ/F8 9.9626 Tf 78.455 0 Td [(,)]TJ/F30 9.9626 Tf 5.891 0 Td [(psb_dupl_add_)]TJ/F8 9.9626 Tf 67.995 0 Td [(.)]TJ 0 g 0 G -/F8 9.9626 Tf 12.177 -19.925 Td [(1.)]TJ +/F27 9.9626 Tf -340.944 -19.43 Td [(lo)-32(cal)]TJ 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 +/F8 9.9626 Tf 28.054 0 Td [(Whether)-289(the)-289(en)28(tries)-289(in)-289(the)-289(index)-288(v)27(ector)]TJ/F30 9.9626 Tf 172.77 0 Td [(irw)]TJ/F8 9.9626 Tf 15.691 0 Td [(,)-298(are)-289(already)-289(in)-288(lo)-28(cal)-289(n)28(um)28(b)-28(er-)]TJ -191.608 -11.955 Td [(ing.)]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.073 0 Td [(.)]TJ -51.024 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.184 0 Td [(optional)]TJ/F8 9.9626 Tf 40.577 0 Td [(.)]TJ -65.76 -11.956 Td [(Sp)-28(eci\014ed)-333(as:)-444(a)-334(logical)-333(v)55(alue;)-333(default:)]TJ/F30 9.9626 Tf 163.055 0 Td [(.false.)]TJ/F8 9.9626 Tf 36.612 0 Td [(.)]TJ 0 g 0 G - 141.968 -141.013 Td [(95)]TJ +/F27 9.9626 Tf -224.574 -20.68 Td [(On)-383(Return)]TJ 0 g 0 G -ET - -endstream -endobj -1501 0 obj -<< -/Length 3804 ->> -stream 0 g 0 G + 0 -19.43 Td [(x)]TJ 0 g 0 G -BT -/F16 11.9552 Tf 150.705 706.129 Td [(psb)]TJ -ET -q -1 0 0 1 171.761 706.328 cm -[]0 d 0 J 0.398 w 0 0 m 4.035 0 l S -Q -BT -/F16 11.9552 Tf 175.796 706.129 Td [(get)]TJ +/F8 9.9626 Tf 11.028 0 Td [(the)-333(output)-334(d)1(e)-1(n)1(s)-1(e)-333(matrix.)]TJ 13.879 -11.956 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 [(inout)]TJ/F8 9.9626 Tf 26.097 0 Td [(.)]TJ -59.582 -11.955 Td [(Sp)-28(eci\014ed)-232(as:)-394(a)-233(rank)-233(one)-232(or)-233(t)28(w)28(o)-233(arra)28(y)-233(or)-232(an)-233(ob)-55(ject)-233(of)-233(t)28(yp)-27(e)]TJ +0 0 1 rg 0 0 1 RG +/F30 9.9626 Tf 241.975 0 Td [(psb)]TJ ET q -1 0 0 1 194.695 706.328 cm -[]0 d 0 J 0.398 w 0 0 m 4.035 0 l S +1 0 0 1 433.906 144.435 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F16 11.9552 Tf 198.729 706.129 Td [(b)-31(oundary)-375(|)-375(Extract)-375(list)-375(of)-375(b)-32(oundary)-375(elemen)32(ts)]TJ -0 g 0 G -0 g 0 G -/F30 9.9626 Tf -48.024 -18.389 Td [(call)-525(psb_get_boundary\050bndel,)-525(desc,)-525(info\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.926 Td [(On)-383(En)32(try)]TJ -0 g 0 G -0 g 0 G - 0 -19.925 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 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 [(in)]TJ/F8 9.9626 Tf 9.548 0 Td [(.)]TJ -43.034 -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 +/F30 9.9626 Tf 437.044 144.236 Td [(T)]TJ ET q -1 0 0 1 362.845 578.35 cm +1 0 0 1 442.902 144.435 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 365.983 578.15 Td [(desc)]TJ +/F30 9.9626 Tf 446.04 144.236 Td [(vect)]TJ ET q -1 0 0 1 387.532 578.35 cm +1 0 0 1 467.589 144.435 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 390.67 578.15 Td [(type)]TJ +/F30 9.9626 Tf 470.727 144.236 Td [(type)]TJ 0 g 0 G -/F8 9.9626 Tf 20.922 0 Td [(.)]TJ +/F8 9.9626 Tf 20.922 0 Td [(,)]TJ -316.038 -11.955 Td [(of)-333(t)27(yp)-27(e)-334(real,)-333(complex)-333(or)-334(in)28(teger.)]TJ 0 g 0 G -/F27 9.9626 Tf -260.887 -21.917 Td [(On)-383(Return)]TJ + 141.968 -41.843 Td [(90)]TJ 0 g 0 G +ET + +endstream +endobj +1524 0 obj +<< +/Length 1111 +>> +stream 0 g 0 G - 0 -19.926 Td [(bndel)]TJ 0 g 0 G -/F8 9.9626 Tf 32.51 0 Td [(The)-268(list)-267(of)-268(b)-27(oundary)-268(elemen)28(ts)-268(on)-267(the)-268(calling)-267(pro)-28(cess,)-281(in)-267(lo)-28(cal)-268(n)28(um)28(b)-28(ering.)]TJ -7.604 -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 [(Sp)-28(eci\014ed)-456(as:)-691(a)-457(rank)-456(one)-457(arra)28(y)-457(with)-456(the)-457(ALLOCA)84(T)83(ABLE)-456(attribute,)-488(of)]TJ 0 -11.955 Td [(t)28(yp)-28(e)-333(in)27(teger.)]TJ 0 g 0 G -/F27 9.9626 Tf -24.906 -31.881 Td [(info)]TJ +BT +/F27 9.9626 Tf 99.895 706.129 Td [(info)]TJ 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)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/F16 11.9552 Tf -24.906 -21.917 Td [(Notes)]TJ +/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/F16 11.9552 Tf -24.907 -21.918 Td [(Notes)]TJ 0 g 0 G -/F8 9.9626 Tf 12.176 -19.926 Td [(1.)]TJ +/F8 9.9626 Tf 12.177 -19.925 Td [(1.)]TJ 0 g 0 G - [-500(If)-269(there)-269(are)-269(no)-269(b)-28(oundary)-269(elemen)28(ts)-269(\050i.e.,)-282(if)-269(the)-269(lo)-28(cal)-269(part)-269(of)-269(the)-270(connectivit)28(y)]TJ 12.73 -11.955 Td [(graph)-449(is)-450(self-con)28(tained\051)-450(the)-449(output)-450(v)28(ector)-449(is)-450(set)-449(to)-450(the)-449(\134not)-450(allo)-28(cated")]TJ 0 -11.955 Td [(state.)]TJ + [-500(Dense)-333(v)27(ectors/matrices)-333(do)-333(not)-334(ha)28(v)28(e)-334(an)-333(asso)-28(ciated)-333(state;)]TJ 0 g 0 G - -12.73 -19.925 Td [(2.)]TJ + 0 -19.925 Td [(2.)]TJ 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 + [-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 -208.758 Td [(96)]TJ + 141.968 -494.147 Td [(91)]TJ 0 g 0 G ET endstream endobj -1508 0 obj +1534 0 obj << -/Length 3654 +/Length 5226 >> stream 0 g 0 G 0 g 0 G BT -/F16 11.9552 Tf 99.895 706.129 Td [(psb)]TJ -ET -q -1 0 0 1 120.951 706.328 cm -[]0 d 0 J 0.398 w 0 0 m 4.035 0 l S -Q -BT -/F16 11.9552 Tf 124.986 706.129 Td [(get)]TJ +/F16 11.9552 Tf 150.705 706.129 Td [(6.14)-1125(psb)]TJ ET q -1 0 0 1 143.885 706.328 cm +1 0 0 1 209.121 706.328 cm []0 d 0 J 0.398 w 0 0 m 4.035 0 l S Q BT -/F16 11.9552 Tf 147.92 706.129 Td [(o)31(v)31(erlap)-375(|)-375(Extract)-375(list)-375(of)-375(o)32(v)31(erlap)-375(elemen)31(ts)]TJ +/F16 11.9552 Tf 213.156 706.129 Td [(geasb)-375(|)-375(Assem)31(bly)-375(a)-375(dense)-375(matrix)]TJ 0 g 0 G 0 g 0 G -/F30 9.9626 Tf -48.025 -18.389 Td [(call)-525(psb_get_overlap\050ovrel,)-525(desc,)-525(info\051)]TJ +/F30 9.9626 Tf -62.451 -18.389 Td [(call)-525(psb_geasb\050x,)-525(desc_a,)-525(info,)-525(mold\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 +/F8 9.9626 Tf 33.797 0 Td [(Sync)28(hronous.)]TJ 0 g 0 G /F27 9.9626 Tf -33.797 -19.926 Td [(On)-383(En)32(try)]TJ 0 g 0 G 0 g 0 G 0 -19.925 Td [(desc)]TJ +ET +q +1 0 0 1 172.619 626.17 cm +[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S +Q +BT +/F27 9.9626 Tf 176.057 625.971 Td [(a)]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 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.183 0 Td [(required)]TJ/F8 9.9626 Tf 41.899 0 Td [(.)]TJ -67.082 -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 10.55 0 Td [(The)-333(comm)27(unication)-333(descriptor.)]TJ -10.996 -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.956 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(v)56(ariable)-334(of)-333(t)28(yp)-28(e)]TJ 0 0 1 rg 0 0 1 RG -/F30 9.9626 Tf 170.915 0 Td [(psb)]TJ +/F30 9.9626 Tf 137.347 0 Td [(psb)]TJ +ET +q +1 0 0 1 329.276 578.35 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +Q +BT +/F30 9.9626 Tf 332.415 578.15 Td [(desc)]TJ +ET +q +1 0 0 1 353.964 578.35 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +Q +BT +/F30 9.9626 Tf 357.102 578.15 Td [(type)]TJ +0 g 0 G +/F8 9.9626 Tf 20.921 0 Td [(.)]TJ +0 g 0 G +/F27 9.9626 Tf -227.318 -31.88 Td [(mold)]TJ +0 g 0 G +/F8 9.9626 Tf 29.805 0 Td [(The)-333(desired)-334(dynamic)-333(t)28(yp)-28(e)-333(for)-334(th)1(e)-334(in)28(ternal)-333(v)27(ector)-333(storage.)]TJ -4.899 -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 [(optional)]TJ/F8 9.9626 Tf 40.576 0 Td [(.)]TJ -70.188 -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.956 Td [(Sp)-28(eci\014ed)-273(as:)-414(an)-274(ob)-55(ject)-273(of)-274(a)-273(class)-273(deriv)28(ed)-274(from)]TJ/F30 9.9626 Tf 198.261 0 Td [(psb)]TJ +ET +q +1 0 0 1 390.19 498.649 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +Q +BT +/F30 9.9626 Tf 393.329 498.449 Td [(T)]TJ +ET +q +1 0 0 1 399.186 498.649 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +Q +BT +/F30 9.9626 Tf 402.325 498.449 Td [(base)]TJ ET q -1 0 0 1 312.036 578.35 cm +1 0 0 1 423.874 498.649 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 315.174 578.15 Td [(desc)]TJ +/F30 9.9626 Tf 427.012 498.449 Td [(vect)]TJ ET q -1 0 0 1 336.723 578.35 cm +1 0 0 1 448.561 498.649 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 339.861 578.15 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.917 Td [(On)-383(Return)]TJ -0 g 0 G -0 g 0 G - 0 -19.926 Td [(o)32(vrel)]TJ -0 g 0 G -/F8 9.9626 Tf 29.591 0 Td [(The)-333(list)-334(of)-333(o)28(v)28(erlap)-334(elemen)28(ts)-333(on)-334(the)-333(calling)-333(pro)-28(cess,)-333(in)-334(lo)-28(cal)-333(n)28(um)28(b)-28(ering.)]TJ -4.684 -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 [(Sp)-28(eci\014ed)-456(as:)-691(a)-457(rank)-456(one)-457(arra)28(y)-456(with)-457(the)-457(ALLOCA)84(T)83(ABLE)-456(attribute,)-488(of)]TJ 0 -11.955 Td [(t)28(yp)-28(e)-333(in)28(te)-1(ger.)]TJ -0 g 0 G -/F27 9.9626 Tf -24.907 -31.881 Td [(info)]TJ -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.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(detecte)-1(d)1(.)]TJ/F16 11.9552 Tf -24.907 -21.917 Td [(Notes)]TJ -0 g 0 G -/F8 9.9626 Tf 12.177 -19.926 Td [(1.)]TJ -0 g 0 G - [-500(If)-343(there)-343(are)-344(no)-343(o)28(v)28(erlap)-344(elemen)28(ts)-343(the)-343(output)-344(v)28(ector)-343(is)-343(set)-344(to)-343(the)-343(\134not)-343(allo-)]TJ 12.73 -11.955 Td [(cated")-333(state.)]TJ -0 g 0 G - -12.73 -19.925 Td [(2.)]TJ -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 [(97)]TJ -0 g 0 G +/F30 9.9626 Tf 451.699 498.449 Td [(type)]TJ/F8 9.9626 Tf 20.921 0 Td [(;)-293(this)]TJ -297.009 -11.955 Td [(is)-333(only)-334(allo)28(w)28(ed)-333(when)]TJ/F11 9.9626 Tf 93.317 0 Td [(x)]TJ/F8 9.9626 Tf 9.015 0 Td [(is)-333(of)-334(t)28(yp)-28(e)]TJ +0 0 1 rg 0 0 1 RG +/F30 9.9626 Tf 43.78 0 Td [(psb)]TJ ET - -endstream -endobj -1516 0 obj -<< -/Length 5790 ->> -stream -0 g 0 G -0 g 0 G +q +1 0 0 1 338.042 486.693 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +Q BT -/F16 11.9552 Tf 150.705 706.129 Td [(psb)]TJ +/F30 9.9626 Tf 341.18 486.494 Td [(T)]TJ ET q -1 0 0 1 171.761 706.328 cm -[]0 d 0 J 0.398 w 0 0 m 4.035 0 l S +1 0 0 1 347.038 486.693 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F16 11.9552 Tf 175.796 706.129 Td [(sp)]TJ +/F30 9.9626 Tf 350.177 486.494 Td [(vect)]TJ ET q -1 0 0 1 189.38 706.328 cm -[]0 d 0 J 0.398 w 0 0 m 4.035 0 l S +1 0 0 1 371.725 486.693 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F16 11.9552 Tf 193.415 706.129 Td [(getro)31(w)-375(|)-375(Extract)-375(ro)32(w\050s)-1(\051)-375(from)-375(a)-375(sparse)-375(matrix)]TJ -0 g 0 G -0 g 0 G -/F30 9.9626 Tf -42.71 -18.647 Td [(call)-525(psb_sp_getrow\050row,)-525(a,)-525(nz,)-525(ia,)-525(ja,)-525(val,)-525(info,)-525(&)]TJ 73.225 -11.955 Td [(&)-525(append,)-525(nzin,)-525(lrw\051)]TJ -0 g 0 G -/F27 9.9626 Tf -73.225 -22.334 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 -20.479 Td [(On)-383(En)32(try)]TJ +/F30 9.9626 Tf 374.864 486.494 Td [(type)]TJ 0 g 0 G +/F8 9.9626 Tf 20.921 0 Td [(.)]TJ 0 g 0 G - 0 -20.479 Td [(ro)32(w)]TJ +/F27 9.9626 Tf -245.08 -21.918 Td [(On)-383(Return)]TJ 0 g 0 G -/F8 9.9626 Tf 23.384 0 Td [(The)-333(\050\014rst\051)-334(ro)28(w)-333(to)-334(b)-27(e)-334(extracted.)]TJ 1.523 -11.956 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 27.95 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -27.95 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.183 0 Td [(required)]TJ/F8 9.9626 Tf -25.183 -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)]TJ/F11 9.9626 Tf 104.69 0 Td [(>)]TJ/F8 9.9626 Tf 10.517 0 Td [(0.)]TJ 0 g 0 G -/F27 9.9626 Tf -140.114 -20.479 Td [(a)]TJ + 0 -19.925 Td [(x)]TJ 0 g 0 G -/F8 9.9626 Tf 10.551 0 Td [(the)-333(matrix)-334(from)-333(whic)28(h)-333(to)-334(get)-333(ro)28(ws.)]TJ 14.356 -11.956 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 27.95 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -27.95 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.183 0 Td [(required)]TJ/F8 9.9626 Tf -25.183 -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(a)-334(structured)-333(data)-333(of)-334(t)28(yp)-28(e)]TJ +/F8 9.9626 Tf 11.028 0 Td [(The)-333(dense)-334(matrix)-333(to)-333(b)-28(e)-333(as)-1(sem)28(bled.)]TJ 13.878 -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 [(inout)]TJ/F8 9.9626 Tf 26.096 0 Td [(.)]TJ -59.582 -11.956 Td [(Sp)-28(eci\014ed)-433(as:)-645(a)-433(rank)-433(one)-434(or)-433(t)28(w)28(o)-434(arra)28(y)-433(with)-433(the)-434(ALLOCA)84(T)83(ABLE)-433(or)-434(an)]TJ 0 -11.955 Td [(ob)-56(ject)-333(of)-333(t)28(yp)-28(e)]TJ 0 0 1 rg 0 0 1 RG -/F30 9.9626 Tf 170.915 0 Td [(psb)]TJ +/F30 9.9626 Tf 63.927 0 Td [(psb)]TJ ET q -1 0 0 1 362.845 496.313 cm +1 0 0 1 255.857 385.075 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 365.983 496.114 Td [(Tspmat)]TJ +/F30 9.9626 Tf 258.995 384.875 Td [(T)]TJ ET q -1 0 0 1 397.993 496.313 cm +1 0 0 1 264.853 385.075 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 401.131 496.114 Td [(type)]TJ -0 g 0 G -/F8 9.9626 Tf 20.921 0 Td [(.)]TJ -0 g 0 G -/F27 9.9626 Tf -271.347 -20.479 Td [(app)-32(end)]TJ -0 g 0 G -/F8 9.9626 Tf 41.58 0 Td [(Whether)-333(to)-334(app)-27(end)-334(or)-333(o)28(v)28(erwrite)-334(existing)-333(output.)]TJ -16.674 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 27.951 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -27.951 -11.956 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.184 0 Td [(optional)]TJ/F8 9.9626 Tf -25.184 -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(logical)-333(v)55(alue)-333(default:)-444(false)-334(\050o)28(v)28(erwrite\051.)]TJ -0 g 0 G -/F27 9.9626 Tf -24.906 -20.479 Td [(nzin)]TJ -0 g 0 G -/F8 9.9626 Tf 25.986 0 Td [(Input)-333(size)-334(to)-333(b)-28(e)-333(app)-28(ended)-333(to.)]TJ -1.08 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 27.951 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -27.951 -11.956 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.184 0 Td [(optional)]TJ/F8 9.9626 Tf -25.184 -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)-398(as:)-573(an)-398(in)28(teger)]TJ/F11 9.9626 Tf 107.908 0 Td [(>)]TJ/F8 9.9626 Tf 11.588 0 Td [(0.)-638(When)-398(app)-28(end)-398(is)-397(true,)-414(s)-1(p)-27(eci\014es)-398(ho)28(w)-398(man)27(y)]TJ -119.496 -11.955 Td [(en)28(tries)-334(in)-333(the)-333(output)-333(v)27(ectors)-333(are)-333(already)-334(\014lled.)]TJ -0 g 0 G -/F27 9.9626 Tf -24.906 -20.479 Td [(lrw)]TJ -0 g 0 G -/F8 9.9626 Tf 21.156 0 Td [(The)-333(last)-334(ro)28(w)-333(to)-334(b)-27(e)-334(extracted.)]TJ 3.75 -11.956 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 27.951 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -27.951 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.184 0 Td [(optional)]TJ/F8 9.9626 Tf -25.184 -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/F11 9.9626 Tf 104.691 0 Td [(>)]TJ/F8 9.9626 Tf 10.516 0 Td [(0,)-333(default:)]TJ/F11 9.9626 Tf 48.43 0 Td [(r)-28(ow)]TJ/F8 9.9626 Tf 17.001 0 Td [(.)]TJ -0 g 0 G -/F27 9.9626 Tf -205.544 -22.334 Td [(On)-383(Return)]TJ -0 g 0 G -0 g 0 G - 0 -20.479 Td [(nz)]TJ -0 g 0 G -/F8 9.9626 Tf 16.438 0 Td [(the)-333(n)27(u)1(m)27(b)-27(e)-1(r)-333(of)-333(elemen)28(ts)-334(returned)-333(b)28(y)-334(thi)1(s)-334(call.)]TJ 8.468 -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 [(out)]TJ/F8 9.9626 Tf 16.549 0 Td [(.)]TJ -50.035 -11.956 Td [(Returned)-333(as:)-445(an)-333(in)28(teger)-334(scalar.)]TJ -0 g 0 G -/F27 9.9626 Tf -24.906 -20.479 Td [(ia)]TJ -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 [(98)]TJ -0 g 0 G +/F30 9.9626 Tf 267.992 384.875 Td [(vect)]TJ ET - -endstream -endobj -1520 0 obj -<< -/Length 3701 ->> -stream -0 g 0 G -0 g 0 G -0 g 0 G +q +1 0 0 1 289.541 385.075 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +Q BT -/F27 9.9626 Tf 99.895 706.129 Td [(ja)]TJ -0 g 0 G -/F8 9.9626 Tf 14.052 0 Td [(the)-333(column)-334(indices)-333(of)-333(the)-334(elemen)28(ts)-333(to)-334(b)-27(e)-334(inserted.)]TJ 10.855 -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.183 0 Td [(required)]TJ/F8 9.9626 Tf 41.899 0 Td [(.)]TJ -67.082 -11.956 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)-333(as:)-445(an)-333(in)28(teger)-333(arra)27(y)-333(with)-333(the)]TJ/F30 9.9626 Tf 170.61 0 Td [(ALLOCATABLE)]TJ/F8 9.9626 Tf 60.855 0 Td [(attribute.)]TJ -0 g 0 G -/F27 9.9626 Tf -256.372 -19.925 Td [(v)64(al)]TJ -0 g 0 G -/F8 9.9626 Tf 19.144 0 Td [(the)-333(elemen)27(ts)-333(to)-333(b)-28(e)-333(inserted.)]TJ 5.763 -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.183 0 Td [(required)]TJ/F8 9.9626 Tf 41.899 0 Td [(.)]TJ -67.082 -11.956 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)-333(as:)-445(a)-333(real)-333(arra)28(y)-334(with)-333(the)]TJ/F30 9.9626 Tf 151.515 0 Td [(ALLOCATABLE)]TJ/F8 9.9626 Tf 60.855 0 Td [(attribute.)]TJ -0 g 0 G -/F27 9.9626 Tf -237.277 -19.925 Td [(info)]TJ -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/F16 11.9552 Tf -24.907 -21.918 Td [(Notes)]TJ -0 g 0 G -/F8 9.9626 Tf 12.177 -19.925 Td [(1.)]TJ -0 g 0 G - [-500(The)-368(output)]TJ/F11 9.9626 Tf 66.552 0 Td [(nz)]TJ/F8 9.9626 Tf 14.717 0 Td [(is)-368(alw)28(a)28(ys)-368(the)-368(size)-368(of)-368(the)-368(output)-368(generated)-367(b)27(y)-367(the)-368(curren)28(t)]TJ -68.539 -11.955 Td [(call;)-314(th)28(us,)-309(if)]TJ/F30 9.9626 Tf 54.123 0 Td [(append=.true.)]TJ/F8 9.9626 Tf 67.995 0 Td [(,)-310(the)-303(total)-304(output)-304(size)-304(will)-303(b)-28(e)]TJ/F11 9.9626 Tf 128.95 0 Td [(nz)-44(in)]TJ/F8 9.9626 Tf 22.088 0 Td [(+)]TJ/F11 9.9626 Tf 9.373 0 Td [(nz)]TJ/F8 9.9626 Tf 11.051 0 Td [(,)-310(with)]TJ -293.58 -11.955 Td [(the)-372(newly)-372(extracted)-372(co)-28(e\016cien)28(ts)-372(stored)-372(in)-372(en)28(tries)]TJ/F30 9.9626 Tf 216.307 0 Td [(nzin+1:nzin+nz)]TJ/F8 9.9626 Tf 76.93 0 Td [(of)-372(the)]TJ -293.237 -11.955 Td [(arra)28(y)-333(argume)-1(n)28(ts;)]TJ -0 g 0 G - -12.73 -19.926 Td [(2.)]TJ +/F30 9.9626 Tf 292.679 384.875 Td [(type)]TJ 0 g 0 G - [-500(When)]TJ/F30 9.9626 Tf 41.788 0 Td [(append=.true.)]TJ/F8 9.9626 Tf 71.315 0 Td [(the)-333(output)-334(arr)1(a)27(ys)-333(are)-333(reallo)-28(cated)-334(as)-333(necessary;)]TJ +/F8 9.9626 Tf 20.921 0 Td [(,)-333(of)-334(t)28(yp)-28(e)-333(real,)-333(complex)-334(or)-333(in)28(teger.)]TJ 0 g 0 G - -113.103 -19.925 Td [(3.)]TJ +/F27 9.9626 Tf -162.895 -31.88 Td [(info)]TJ 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 +/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)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 -290.909 Td [(99)]TJ + 141.968 -214.736 Td [(92)]TJ 0 g 0 G ET endstream endobj -1530 0 obj +1540 0 obj << -/Length 4127 +/Length 3389 >> stream 0 g 0 G 0 g 0 G BT -/F16 11.9552 Tf 150.705 706.129 Td [(psb)]TJ +/F16 11.9552 Tf 99.895 706.129 Td [(6.15)-1125(psb)]TJ ET q -1 0 0 1 171.761 706.328 cm +1 0 0 1 158.311 706.328 cm []0 d 0 J 0.398 w 0 0 m 4.035 0 l S Q BT -/F16 11.9552 Tf 175.796 706.129 Td [(sizeof)-375(|)-375(Memory)-375(o)-31(ccupation)]TJ/F8 9.9626 Tf -25.091 -18.389 Td [(This)-333(function)-334(computes)-333(the)-333(memory)-334(o)-27(c)-1(cup)1(ation)-334(of)-333(a)-333(PSBLAS)-334(ob)-55(ject.)]TJ +/F16 11.9552 Tf 162.346 706.129 Td [(gefree)-375(|)-375(F)94(rees)-375(a)-375(dense)-375(matrix)]TJ 0 g 0 G 0 g 0 G -/F30 9.9626 Tf 0 -21.918 Td [(isz)-525(=)-525(psb_sizeof\050a\051)]TJ 0 -11.955 Td [(isz)-525(=)-525(psb_sizeof\050desc_a\051)]TJ 0 -11.956 Td [(isz)-525(=)-525(psb_sizeof\050prec\051)]TJ +/F30 9.9626 Tf -62.451 -18.389 Td [(call)-525(psb_gefree\050x,)-525(desc_a,)-525(info\051)]TJ 0 g 0 G -/F27 9.9626 Tf 0 -21.917 Td [(T)32(yp)-32(e:)]TJ +/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 +/F8 9.9626 Tf 33.797 0 Td [(Sync)28(hronous.)]TJ 0 g 0 G /F27 9.9626 Tf -33.797 -19.926 Td [(On)-383(En)32(try)]TJ 0 g 0 G 0 g 0 G - 0 -19.925 Td [(a)]TJ + 0 -19.925 Td [(x)]TJ 0 g 0 G -/F8 9.9626 Tf 10.551 0 Td [(A)-333(sparse)-334(matrix)]TJ/F11 9.9626 Tf 73.225 0 Td [(A)]TJ/F8 9.9626 Tf 7.472 0 Td [(.)]TJ -66.342 -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 [(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 11.028 0 Td [(The)-333(dense)-334(matrix)-333(to)-333(b)-28(e)-334(f)1(re)-1(ed.)]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)-433(as:)-645(a)-433(rank)-433(one)-433(or)-434(t)28(w)28(o)-434(arra)28(y)-433(with)-433(the)-434(ALLOCA)84(T)83(ABLE)-433(or)-434(an)]TJ 0 -11.955 Td [(ob)-56(j)1(e)-1(ct)-333(of)-333(t)28(yp)-28(e)]TJ 0 0 1 rg 0 0 1 RG -/F30 9.9626 Tf 170.915 0 Td [(psb)]TJ +/F30 9.9626 Tf 63.927 0 Td [(psb)]TJ ET q -1 0 0 1 362.845 532.522 cm +1 0 0 1 205.048 566.395 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 365.983 532.322 Td [(Tspmat)]TJ +/F30 9.9626 Tf 208.186 566.195 Td [(T)]TJ ET q -1 0 0 1 397.993 532.522 cm +1 0 0 1 214.044 566.395 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 401.131 532.322 Td [(type)]TJ +/F30 9.9626 Tf 217.182 566.195 Td [(vect)]TJ +ET +q +1 0 0 1 238.731 566.395 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +Q +BT +/F30 9.9626 Tf 241.869 566.195 Td [(type)]TJ 0 g 0 G -/F8 9.9626 Tf 20.921 0 Td [(.)]TJ +/F8 9.9626 Tf 20.922 0 Td [(,)-333(of)-334(t)28(yp)-28(e)-333(real,)-333(complex)-334(or)-333(in)28(teger.)]TJ 0 g 0 G -/F27 9.9626 Tf -271.347 -19.925 Td [(desc)]TJ +/F27 9.9626 Tf -162.896 -31.88 Td [(desc)]TJ ET q -1 0 0 1 172.619 512.596 cm +1 0 0 1 121.81 534.514 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 176.057 512.397 Td [(a)]TJ +/F27 9.9626 Tf 125.247 534.315 Td [(a)]TJ 0 g 0 G -/F8 9.9626 Tf 10.55 0 Td [(Comm)28(unication)-334(descriptor.)]TJ -10.996 -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.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 10.551 0 Td [(The)-333(comm)27(unication)-333(descriptor.)]TJ -10.996 -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 [(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(v)56(ariable)-334(of)-333(t)28(yp)-28(e)]TJ 0 0 1 rg 0 0 1 RG -/F30 9.9626 Tf 170.915 0 Td [(psb)]TJ +/F30 9.9626 Tf 137.346 0 Td [(psb)]TJ ET q -1 0 0 1 362.845 464.776 cm +1 0 0 1 278.467 486.693 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 365.983 464.576 Td [(desc)]TJ +/F30 9.9626 Tf 281.605 486.494 Td [(desc)]TJ ET q -1 0 0 1 387.532 464.776 cm +1 0 0 1 303.154 486.693 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 390.67 464.576 Td [(type)]TJ +/F30 9.9626 Tf 306.292 486.494 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 -19.925 Td [(prec)]TJ +/F27 9.9626 Tf -227.319 -33.873 Td [(On)-383(Return)]TJ +0 g 0 G +0 g 0 G + 0 -19.925 Td [(info)]TJ +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 [(93)]TJ 0 g 0 G -/F8 9.9626 Tf 26.408 0 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.378 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -33.879 -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 [(in)]TJ/F8 9.9626 Tf 9.548 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-444(a)-334(preconditioner)-333(data)-333(structure)]TJ -0 0 1 rg 0 0 1 RG -/F30 9.9626 Tf 197.537 0 Td [(psb)]TJ ET -q -1 0 0 1 389.467 408.985 cm -[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S -Q + +endstream +endobj +1544 0 obj +<< +/Length 3466 +>> +stream +0 g 0 G +0 g 0 G BT -/F30 9.9626 Tf 392.606 408.786 Td [(prec)]TJ +/F16 11.9552 Tf 150.705 706.129 Td [(6.16)-1125(psb)]TJ ET q -1 0 0 1 414.155 408.985 cm -[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +1 0 0 1 209.121 706.328 cm +[]0 d 0 J 0.398 w 0 0 m 4.035 0 l S Q BT -/F30 9.9626 Tf 417.293 408.786 Td [(type)]TJ +/F16 11.9552 Tf 213.156 706.129 Td [(gelp)-525(|)-526(Applies)-525(a)-526(left)-525(p)-31(erm)31(utation)-525(to)-526(a)-525(dense)]TJ -25.091 -13.948 Td [(matrix)]TJ 0 g 0 G -/F8 9.9626 Tf 20.921 0 Td [(.)]TJ 0 g 0 G -/F27 9.9626 Tf -287.509 -19.926 Td [(On)-383(Return)]TJ +/F30 9.9626 Tf -37.36 -18.389 Td [(call)-525(psb_gelp\050trans,)-525(iperm,)-525(x,)-525(info\051)]TJ 0 g 0 G +/F27 9.9626 Tf 0 -21.918 Td [(T)32(yp)-32(e:)]TJ 0 g 0 G - 0 -19.925 Td [(F)96(unction)-384(v)64(alue)]TJ +/F8 9.9626 Tf 33.797 0 Td [(Async)28(hronous.)]TJ 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 +/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.926 Td [(trans)]TJ +0 g 0 G +/F8 9.9626 Tf 30.609 0 Td [(A)-333(c)27(har)1(ac)-1(ter)-333(that)-333(sp)-28(eci\014es)-333(whether)-334(to)-333(p)-28(erm)28(ute)]TJ/F11 9.9626 Tf 204.179 0 Td [(A)]TJ/F8 9.9626 Tf 10.793 0 Td [(or)]TJ/F11 9.9626 Tf 12.204 0 Td [(A)]TJ/F10 6.9738 Tf 7.472 3.616 Td [(T)]TJ/F8 9.9626 Tf 6.276 -3.616 Td [(.)]TJ -246.626 -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 [(in)]TJ/F8 9.9626 Tf 9.548 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-444(a)-334(single)-333(c)28(haracter)-334(with)-333(v)56(alue)-334('N')-333(for)]TJ/F11 9.9626 Tf 217.435 0 Td [(A)]TJ/F8 9.9626 Tf 10.792 0 Td [(or)-333('T')-334(for)]TJ/F11 9.9626 Tf 43.504 0 Td [(A)]TJ/F10 6.9738 Tf 7.472 3.615 Td [(T)]TJ/F8 9.9626 Tf 6.276 -3.615 Td [(.)]TJ +0 g 0 G +/F27 9.9626 Tf -310.386 -31.881 Td [(ip)-32(erm)]TJ +0 g 0 G +/F8 9.9626 Tf 34.364 0 Td [(An)-333(in)28(tege)-1(r)-333(arra)28(y)-333(con)27(tain)1(ing)-334(p)-28(erm)28(utation)-333(information.)]TJ -9.457 -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 [(in)]TJ/F8 9.9626 Tf 9.548 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(in)28(teger)-333(one-dimensional)-334(arra)28(y)84(.)]TJ +0 g 0 G +/F27 9.9626 Tf -24.907 -31.881 Td [(x)]TJ +0 g 0 G +/F8 9.9626 Tf 11.028 0 Td [(The)-333(dense)-334(matrix)-333(to)-333(b)-28(e)-333(p)-28(erm)27(u)1(te)-1(d)1(.)]TJ 13.879 -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 [(inout)]TJ/F8 9.9626 Tf 26.097 0 Td [(.)]TJ -59.582 -11.956 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(one)-333(or)-333(t)27(w)28(o)-333(dimensional)-334(arra)28(y)84(.)]TJ +0 g 0 G +/F27 9.9626 Tf -24.907 -33.873 Td [(On)-383(Return)]TJ +0 g 0 G +0 g 0 G + 0 -19.925 Td [(info)]TJ +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(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 - -63.207 -242.632 Td [(100)]TJ + 141.967 -212.744 Td [(94)]TJ 0 g 0 G ET endstream endobj -1534 0 obj +1549 0 obj << -/Length 5762 +/Length 6552 >> stream 0 g 0 G 0 g 0 G BT -/F16 11.9552 Tf 99.895 706.129 Td [(Sorting)-375(utilities)-375(|)]TJ 0 -19.593 Td [(psb)]TJ +/F16 11.9552 Tf 99.895 706.129 Td [(6.17)-1125(psb)]TJ ET q -1 0 0 1 120.951 686.736 cm +1 0 0 1 158.311 706.328 cm []0 d 0 J 0.398 w 0 0 m 4.035 0 l S Q BT -/F16 11.9552 Tf 124.986 686.536 Td [(msort)-375(|)-375(Sorting)-375(b)31(y)-375(the)-375(Merge-sort)-375(algorithm)]TJ -25.091 -12.601 Td [(psb)]TJ +/F16 11.9552 Tf 162.346 706.129 Td [(glob)]TJ ET q -1 0 0 1 120.951 674.134 cm +1 0 0 1 187.811 706.328 cm []0 d 0 J 0.398 w 0 0 m 4.035 0 l S Q BT -/F16 11.9552 Tf 124.986 673.935 Td [(qsort)-375(|)-375(Sorting)-375(b)31(y)-375(the)-375(Quic)31(ksort)-375(algorithm)]TJ -25.091 -12.602 Td [(psb)]TJ +/F16 11.9552 Tf 191.846 706.129 Td [(to)]TJ ET q -1 0 0 1 120.951 661.532 cm +1 0 0 1 204.608 706.328 cm []0 d 0 J 0.398 w 0 0 m 4.035 0 l S Q BT -/F16 11.9552 Tf 124.986 661.333 Td [(hsort)-375(|)-375(Sorting)-375(b)31(y)-375(the)-375(Heapsort)-375(algorithm)]TJ +/F16 11.9552 Tf 208.643 706.129 Td [(lo)-31(c)-359(|)-359(Global)-358(to)-359(lo)-31(cal)-359(indices)-359(con)32(v)31(ertion)]TJ 0 g 0 G 0 g 0 G -/F30 9.9626 Tf -25.091 -22.511 Td [(call)-525(psb_msort\050x,ix,dir,flag\051)]TJ 0 -11.955 Td [(call)-525(psb_qsort\050x,ix,dir,flag\051)]TJ 0 -11.955 Td [(call)-525(psb_hsort\050x,ix,dir,flag\051)]TJ/F8 9.9626 Tf 14.944 -21.865 Td [(These)-332(serial)-332(rou)1(tines)-332(sort)-332(a)-332(sequence)]TJ/F11 9.9626 Tf 162.708 0 Td [(X)]TJ/F8 9.9626 Tf 12.34 0 Td [(in)28(to)-332(ascending)-332(or)-331(descending)-332(order.)]TJ -189.992 -11.955 Td [(The)-320(argumen)28(t)-321(meaning)-320(is)-320(iden)28(tical)-320(for)-320(the)-321(thr)1(e)-1(e)-320(calls;)-324(the)-321(on)1(ly)-321(di\013erence)-320(is)-320(the)]TJ 0 -11.955 Td [(algorithm)-333(used)-334(to)-333(accomplish)-333(the)-334(task)-333(\050see)-334(Usage)-333(Notes)-333(b)-28(elo)28(w\051.)]TJ +/F30 9.9626 Tf -108.748 -18.389 Td [(call)-525(psb_glob_to_loc\050x,)-525(y,)-525(desc_a,)-525(info,)-525(iact,owned\051)]TJ 0 -11.956 Td [(call)-525(psb_glob_to_loc\050x,)-525(desc_a,)-525(info,)-525(iact,owned\051)]TJ 0 g 0 G -/F27 9.9626 Tf 0 -21.865 Td [(T)32(yp)-32(e:)]TJ +/F27 9.9626 Tf 0 -21.201 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 -22.511 Td [(On)-383(En)32(try)]TJ -0 g 0 G +/F27 9.9626 Tf -33.797 -19.639 Td [(On)-383(En)32(try)]TJ 0 g 0 G - 0 -22.511 Td [(x)]TJ 0 g 0 G -/F8 9.9626 Tf 11.028 0 Td [(The)-333(sequence)-334(to)-333(b)-28(e)-333(sorted.)]TJ 13.879 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.183 0 Td [(required)]TJ/F8 9.9626 Tf 41.899 0 Td [(.)]TJ -67.082 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(in)28(teger,)-333(real)-334(or)-333(complex)-333(arra)27(y)-333(of)-333(rank)-333(1.)]TJ + 0 -19.639 Td [(x)]TJ 0 g 0 G -/F27 9.9626 Tf -24.907 -22.511 Td [(ix)]TJ +/F8 9.9626 Tf 11.028 0 Td [(An)-333(in)28(te)-1(ger)-333(v)28(ector)-333(of)-334(indices)-333(to)-333(b)-28(e)-334(con)28(v)28(erted.)]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 [(in,)-383(inout)]TJ/F8 9.9626 Tf 42.645 0 Td [(.)]TJ -76.131 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(rank)-333(one)-333(in)27(teger)-333(arra)28(y)83(.)]TJ 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 25.183 0 Td [(optional)]TJ/F8 9.9626 Tf 40.577 0 Td [(.)]TJ -65.76 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(in)28(teger)-333(arra)27(y)-333(of)-333(\050at)-333(le)-1(ast\051)-333(the)-333(same)-334(size)-333(as)]TJ/F11 9.9626 Tf 258.559 0 Td [(X)]TJ/F8 9.9626 Tf 9.035 0 Td [(.)]TJ +/F27 9.9626 Tf -24.907 -31.594 Td [(desc)]TJ +ET +q +1 0 0 1 121.81 536.09 cm +[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S +Q +BT +/F27 9.9626 Tf 125.247 535.891 Td [(a)]TJ 0 g 0 G -/F27 9.9626 Tf -292.501 -22.511 Td [(dir)]TJ +/F8 9.9626 Tf 10.551 0 Td [(the)-333(comm)27(unication)-333(descriptor.)]TJ -10.996 -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.183 0 Td [(required)]TJ/F8 9.9626 Tf 41.899 0 Td [(.)]TJ -67.082 -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 488.27 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +Q +BT +/F30 9.9626 Tf 315.174 488.07 Td [(desc)]TJ +ET +q +1 0 0 1 336.723 488.27 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +Q +BT +/F30 9.9626 Tf 339.861 488.07 Td [(type)]TJ 0 g 0 G -/F8 9.9626 Tf 19.248 0 Td [(The)-333(desired)-334(ordering.)]TJ 5.659 -11.956 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 [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(in)28(teger)-333(v)55(alue:)]TJ +/F8 9.9626 Tf 20.921 0 Td [(.)]TJ 0 g 0 G -/F27 9.9626 Tf 0 -22.511 Td [(In)32(teger)-383(and)-384(real)-383(data:)]TJ +/F27 9.9626 Tf -260.887 -19.638 Td [(iact)]TJ 0 g 0 G -/F30 9.9626 Tf 114.397 0 Td [(psb_sort_up_)]TJ/F8 9.9626 Tf 62.764 0 Td [(,)]TJ/F30 9.9626 Tf 5.203 0 Td [(psb_sort_down_)]TJ/F8 9.9626 Tf 73.224 0 Td [(,)]TJ/F30 9.9626 Tf 5.203 0 Td [(psb_asort_up_)]TJ/F8 9.9626 Tf 67.994 0 Td [(,)]TJ/F30 9.9626 Tf -306.867 -11.955 Td [(psb_asort_down_)]TJ/F8 9.9626 Tf 78.455 0 Td [(;)-333(default)]TJ/F30 9.9626 Tf 39.574 0 Td [(psb_sort_up_)]TJ/F8 9.9626 Tf 62.764 0 Td [(.)]TJ +/F8 9.9626 Tf 23.281 0 Td [(sp)-28(eci\014es)-333(action)-334(to)-333(b)-28(e)-333(tak)28(en)-334(in)-333(case)-333(of)-334(range)-333(errors.)-444(Scop)-28(e:)]TJ/F27 9.9626 Tf 257.147 0 Td [(global)]TJ/F8 9.9626 Tf -255.521 -11.956 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)-255(as:)-405(a)-256(c)28(haracter)-255(v)56(ariable)]TJ/F30 9.9626 Tf 143.584 0 Td [(I)]TJ/F8 9.9626 Tf 5.23 0 Td [(gnore,)]TJ/F30 9.9626 Tf 29.293 0 Td [(W)]TJ/F8 9.9626 Tf 5.23 0 Td [(arning)-255(or)]TJ/F30 9.9626 Tf 41.67 0 Td [(A)]TJ/F8 9.9626 Tf 5.231 0 Td [(b)-28(ort,)-270(default)]TJ/F30 9.9626 Tf 56.741 0 Td [(I)]TJ/F8 9.9626 Tf 5.231 0 Td [(gnore.)]TJ 0 g 0 G -/F27 9.9626 Tf -202.711 -17.233 Td [(Complex)-383(data:)]TJ +/F27 9.9626 Tf -317.117 -19.639 Td [(o)32(wned)]TJ 0 g 0 G -/F30 9.9626 Tf 78.338 0 Td [(psb_lsort_up_)]TJ/F8 9.9626 Tf 67.994 0 Td [(,)]TJ/F30 9.9626 Tf 5.203 0 Td [(psb_lsort_down_)]TJ/F8 9.9626 Tf 78.455 0 Td [(,)]TJ/F30 9.9626 Tf 5.203 0 Td [(psb_asort_up_)]TJ/F8 9.9626 Tf 67.994 0 Td [(,)]TJ/F30 9.9626 Tf 5.203 0 Td [(psb_asort_down_)]TJ/F8 9.9626 Tf 78.455 0 Td [(;)]TJ -364.927 -11.955 Td [(default)]TJ/F30 9.9626 Tf 33.485 0 Td [(psb_lsort_up_)]TJ/F8 9.9626 Tf 67.995 0 Td [(.)]TJ +/F8 9.9626 Tf 36.647 0 Td [(Sp)-28(ec\014es)-333(v)55(alid)-333(range)-333(of)-334(i)1(nput)-334(Scop)-27(e:)]TJ/F27 9.9626 Tf 158.933 0 Td [(global)]TJ/F8 9.9626 Tf -170.673 -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 [(If)-294(true,)-302(then)-294(only)-295(indices)-294(strictly)-294(o)28(wned)-295(b)28(y)-294(the)-294(curren)28(t)-295(pro)-27(ces)-1(s)-294(are)-294(consid-)]TJ 0 -11.955 Td [(ered)-333(v)55(alid,)-333(if)-333(false)-334(then)-333(halo)-333(indices)-334(are)-333(also)-333(accepted.)-445(Default:)-444(false.)]TJ 0 g 0 G -/F27 9.9626 Tf -148.305 -22.511 Td [(\015ag)]TJ +/F27 9.9626 Tf -24.907 -21.202 Td [(On)-383(Return)]TJ 0 g 0 G -/F8 9.9626 Tf 22.645 0 Td [(Whether)-333(to)-334(k)28(eep)-333(the)-333(original)-334(v)56(alues)-333(in)]TJ/F11 9.9626 Tf 170.582 0 Td [(I)-78(X)]TJ/F8 9.9626 Tf 14.197 0 Td [(.)]TJ -182.517 -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.956 Td [(Sp)-28(eci\014ed)-222(as:)-389(an)-222(in)28(teger)-222(v)55(alue)]TJ/F30 9.9626 Tf 125.446 0 Td [(psb_sort_ovw_idx_)]TJ/F8 9.9626 Tf 91.13 0 Td [(or)]TJ/F30 9.9626 Tf 11.097 0 Td [(psb_sort_keep_idx_)]TJ/F8 9.9626 Tf 94.147 0 Td [(;)]TJ -321.82 -11.955 Td [(default)]TJ/F30 9.9626 Tf 33.486 0 Td [(psb_sort_ovw_idx_)]TJ/F8 9.9626 Tf 88.915 0 Td [(.)]TJ 0 g 0 G -/F27 9.9626 Tf -147.308 -24.503 Td [(On)-383(Return)]TJ + 0 -19.639 Td [(x)]TJ 0 g 0 G +/F8 9.9626 Tf 11.028 0 Td [(If)]TJ/F11 9.9626 Tf 10.133 0 Td [(y)]TJ/F8 9.9626 Tf 8.733 0 Td [(is)-350(not)-351(presen)28(t,)-355(then)]TJ/F11 9.9626 Tf 88.586 0 Td [(x)]TJ/F8 9.9626 Tf 9.185 0 Td [(is)-350(o)27(v)28(erwritten)-350(with)-351(th)1(e)-351(translated)-350(in)28(teger)-351(indices.)]TJ -102.758 -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 [(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.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(rank)-333(one)-333(in)27(teger)-333(arra)28(y)83(.)]TJ 0 g 0 G - 0 -22.511 Td [(x)]TJ +/F27 9.9626 Tf -24.907 -19.639 Td [(y)]TJ 0 g 0 G -/F8 9.9626 Tf 11.028 0 Td [(The)-333(sequence)-334(of)-333(v)55(alues,)-333(in)-333(the)-334(c)28(hosen)-333(ordering.)]TJ 13.879 -11.956 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.183 0 Td [(required)]TJ/F8 9.9626 Tf 41.899 0 Td [(.)]TJ -67.082 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(in)28(teger,)-333(real)-334(or)-333(complex)-333(arra)27(y)-333(of)-333(rank)-333(1.)]TJ +/F8 9.9626 Tf 11.028 0 Td [(If)]TJ/F11 9.9626 Tf 10.04 0 Td [(y)]TJ/F8 9.9626 Tf 8.64 0 Td [(is)-341(presen)28(t,)-343(then)]TJ/F11 9.9626 Tf 70.405 0 Td [(y)]TJ/F8 9.9626 Tf 8.64 0 Td [(is)-341(o)28(v)27(erwri)1(tte)-1(n)-341(with)-341(the)-341(translated)-341(in)28(teger)-341(indices,)-343(and)]TJ/F11 9.9626 Tf -83.846 -11.955 Td [(x)]TJ/F8 9.9626 Tf 9.015 0 Td [(is)-333(left)-334(unc)28(hanged.)-444(Scop)-28(e:)]TJ/F27 9.9626 Tf 113.242 0 Td [(global)]TJ/F8 9.9626 Tf -122.257 -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.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 [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(rank)-333(one)-333(in)27(teger)-333(arra)28(y)83(.)]TJ 0 g 0 G -/F27 9.9626 Tf -24.907 -22.511 Td [(ix)]TJ +/F27 9.9626 Tf -24.907 -19.638 Td [(info)]TJ 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 +/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 - -3.176 -43.727 Td [(101)]TJ +/F8 9.9626 Tf 166.875 -29.887 Td [(95)]TJ 0 g 0 G ET endstream endobj -1538 0 obj +1553 0 obj << -/Length 6992 +/Length 705 >> stream 0 g 0 G 0 g 0 G -BT -/F16 11.9552 Tf 150.705 706.129 Td [(Notes)]TJ 0 g 0 G -/F8 9.9626 Tf 12.176 -19.925 Td [(1.)]TJ +BT +/F8 9.9626 Tf 162.881 706.129 Td [(1.)]TJ 0 g 0 G - [-500(F)83(or)-466(in)28(te)-1(ger)-466(or)-467(real)-466(data)-467(the)-467(sorting)-466(can)-467(b)-28(e)-466(p)-28(erformed)-467(in)-466(the)-467(up/do)28(wn)]TJ 12.73 -11.956 Td [(direction,)-333(on)-334(the)-333(natural)-333(or)-333(absolute)-334(v)56(alues;)]TJ + [-500(If)-352(an)-353(input)-352(index)-352(is)-353(out)-352(of)-353(r)1(ange)-1(,)-357(then)-352(the)-352(corres)-1(p)-27(onding)-353(ou)1(tput)-353(index)-352(is)]TJ 12.73 -11.955 Td [(set)-333(to)-334(a)-333(negativ)28(e)-334(n)28(um)28(b)-28(er;)]TJ 0 g 0 G - -12.73 -19.925 Td [(2.)]TJ + -12.73 -19.926 Td [(2.)]TJ 0 g 0 G - [-500(F)83(or)-397(complex)-398(data)-398(the)-397(sorting)-398(can)-398(b)-27(e)-398(done)-398(in)-397(a)-398(lexicographic)-398(order)-397(\050i.e.:)]TJ 12.73 -11.955 Td [(sort)-316(on)-316(the)-315(real)-316(part)-316(with)-316(ties)-316(brok)28(en)-316(according)-315(to)-316(the)-316(imaginary)-316(part\051)-315(or)]TJ 0 -11.955 Td [(on)-333(the)-334(absolute)-333(v)56(alues;)]TJ + [-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 - -12.73 -19.925 Td [(3.)]TJ + 141.968 -571.855 Td [(96)]TJ 0 g 0 G - [-500(The)-257(routines)-258(return)-257(the)-257(items)-257(in)-258(the)-257(c)28(hosen)-258(or)1(dering;)-283(the)-257(output)-257(di\013erence)]TJ 12.73 -11.956 Td [(is)-259(the)-259(handling)-259(of)-259(ties)-259(\050i.e.)-419(items)-259(with)-259(an)-259(equal)-259(v)55(alu)1(e)-1(\051)-258(in)-259(the)-259(original)-259(input.)]TJ 0 -11.955 Td [(With)-493(the)-493(merge-sort)-493(algorithm)-493(ties)-493(are)-493(preserv)27(ed)-493(in)-493(the)-493(same)-493(relativ)28(e)]TJ 0 -11.955 Td [(order)-405(as)-406(they)-405(had)-406(in)-405(the)-406(or)1(iginal)-406(sequence,)-423(while)-406(this)-405(is)-406(not)-405(guaran)28(teed)]TJ 0 -11.955 Td [(for)-333(quic)28(ks)-1(or)1(t)-334(or)-333(heapsort;)]TJ +ET + +endstream +endobj +1560 0 obj +<< +/Length 5730 +>> +stream 0 g 0 G - -12.73 -19.925 Td [(4.)]TJ 0 g 0 G - [-500(If)]TJ/F11 9.9626 Tf 21.89 0 Td [(f)-108(l)-19(ag)]TJ/F8 9.9626 Tf 22.261 0 Td [(=)]TJ/F11 9.9626 Tf 10.516 0 Td [(psb)]TJ -ET -q -1 0 0 1 232.104 542.941 cm -[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S -Q BT -/F11 9.9626 Tf 235.093 542.742 Td [(sor)-28(t)]TJ +/F16 11.9552 Tf 99.895 706.129 Td [(6.18)-1125(psb)]TJ ET q -1 0 0 1 253.559 542.941 cm -[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +1 0 0 1 158.311 706.328 cm +[]0 d 0 J 0.398 w 0 0 m 4.035 0 l S Q BT -/F11 9.9626 Tf 256.548 542.742 Td [(ov)-36(w)]TJ +/F16 11.9552 Tf 162.346 706.129 Td [(lo)-31(c)]TJ ET q -1 0 0 1 274.562 542.941 cm -[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +1 0 0 1 179.965 706.328 cm +[]0 d 0 J 0.398 w 0 0 m 4.035 0 l S Q BT -/F11 9.9626 Tf 277.55 542.742 Td [(idx)]TJ +/F16 11.9552 Tf 184 706.129 Td [(to)]TJ ET q -1 0 0 1 292.46 542.941 cm -[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +1 0 0 1 196.762 706.328 cm +[]0 d 0 J 0.398 w 0 0 m 4.035 0 l S Q BT -/F8 9.9626 Tf 297.966 542.742 Td [(then)-253(the)-252(en)27(tries)-252(in)]TJ/F11 9.9626 Tf 80.169 0 Td [(ix)]TJ/F8 9.9626 Tf 9.126 0 Td [(\0501)-278(:)]TJ/F11 9.9626 Tf 17.158 0 Td [(n)]TJ/F8 9.9626 Tf 5.98 0 Td [(\051)-253(where)]TJ/F11 9.9626 Tf 34.397 0 Td [(n)]TJ/F8 9.9626 Tf 8.498 0 Td [(is)-253(the)-252(size)]TJ -277.683 -11.956 Td [(of)]TJ/F11 9.9626 Tf 11.911 0 Td [(x)]TJ/F8 9.9626 Tf 9.579 0 Td [(are)-390(initialized)-390(to)]TJ/F11 9.9626 Tf 76.439 0 Td [(ix)]TJ/F8 9.9626 Tf 9.127 0 Td [(\050)]TJ/F11 9.9626 Tf 3.874 0 Td [(i)]TJ/F8 9.9626 Tf 3.432 0 Td [(\051)]TJ/F14 9.9626 Tf 7.582 0 Td [(\040)]TJ/F11 9.9626 Tf 13.67 0 Td [(i)]TJ/F8 9.9626 Tf 3.432 0 Td [(;)-418(th)28(us,)-405(u)1(p)-28(on)-390(return)-390(from)-390(the)-390(subroutine,)]TJ -139.046 -11.955 Td [(for)-333(eac)27(h)-333(index)]TJ/F11 9.9626 Tf 64.505 0 Td [(i)]TJ/F8 9.9626 Tf 6.752 0 Td [(w)28(e)-333(ha)27(v)28(e)-333(in)]TJ/F11 9.9626 Tf 49.256 0 Td [(ix)]TJ/F8 9.9626 Tf 9.126 0 Td [(\050)]TJ/F11 9.9626 Tf 3.875 0 Td [(i)]TJ/F8 9.9626 Tf 3.432 0 Td [(\051)-333(the)-333(p)-28(osition)-333(that)-333(the)-334(item)]TJ/F11 9.9626 Tf 123.751 0 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(\050)]TJ/F11 9.9626 Tf 3.874 0 Td [(i)]TJ/F8 9.9626 Tf 3.432 0 Td [(\051)-333(o)-28(ccupied)]TJ -273.697 -11.955 Td [(in)-333(the)-334(original)-333(data)-333(sequence;)]TJ +/F16 11.9552 Tf 200.797 706.129 Td [(glob)-351(|)-350(Lo)-32(cal)-350(to)-351(global)-351(indices)-350(con)31(v)31(ersion)]TJ 0 g 0 G - -12.73 -19.925 Td [(5.)]TJ 0 g 0 G - [-500(If)]TJ/F11 9.9626 Tf 23.404 0 Td [(f)-108(l)-19(ag)]TJ/F8 9.9626 Tf 23.446 0 Td [(=)]TJ/F11 9.9626 Tf 11.701 0 Td [(psb)]TJ -ET -q -1 0 0 1 235.988 487.15 cm -[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S -Q -BT -/F11 9.9626 Tf 238.977 486.951 Td [(sor)-28(t)]TJ +/F30 9.9626 Tf -100.902 -18.389 Td [(call)-525(psb_loc_to_glob\050x,)-525(y,)-525(desc_a,)-525(info,)-525(iact\051)]TJ 0 -11.956 Td [(call)-525(psb_loc_to_glob\050x,)-525(desc_a,)-525(info,)-525(iact\051)]TJ +0 g 0 G +/F27 9.9626 Tf 0 -21.917 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.926 Td [(On)-383(En)32(try)]TJ +0 g 0 G +0 g 0 G + 0 -19.925 Td [(x)]TJ +0 g 0 G +/F8 9.9626 Tf 11.028 0 Td [(An)-333(in)28(te)-1(ger)-333(v)28(ector)-333(of)-334(indices)-333(to)-333(b)-28(e)-334(con)28(v)28(erted.)]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.956 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in,)-383(inout)]TJ/F8 9.9626 Tf 42.645 0 Td [(.)]TJ -76.131 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(rank)-333(one)-333(in)27(teger)-333(arra)28(y)83(.)]TJ +0 g 0 G +/F27 9.9626 Tf -24.907 -31.88 Td [(desc)]TJ ET q -1 0 0 1 257.443 487.15 cm -[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +1 0 0 1 121.81 534.514 cm +[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F11 9.9626 Tf 260.432 486.951 Td [(k)-31(ee)-1(p)]TJ +/F27 9.9626 Tf 125.247 534.315 Td [(a)]TJ +0 g 0 G +/F8 9.9626 Tf 10.551 0 Td [(the)-333(comm)27(unication)-333(descriptor.)]TJ -10.996 -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.183 0 Td [(required)]TJ/F8 9.9626 Tf 41.899 0 Td [(.)]TJ -67.082 -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 280.82 487.15 cm -[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +1 0 0 1 312.036 486.693 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F11 9.9626 Tf 283.809 486.951 Td [(idx)]TJ +/F30 9.9626 Tf 315.174 486.494 Td [(desc)]TJ ET q -1 0 0 1 298.718 487.15 cm -[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +1 0 0 1 336.723 486.693 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F8 9.9626 Tf 305.739 486.951 Td [(the)-405(routine)-404(will)-405(assume)-405(that)-404(the)-405(en)28(tries)-405(in)]TJ/F11 9.9626 Tf -130.128 -11.955 Td [(ix)]TJ/F8 9.9626 Tf 9.127 0 Td [(\050:\051)-333(ha)28(v)27(e)-333(already)-333(b)-28(een)-333(initialized)-334(b)28(y)-333(the)-333(use)-1(r;)]TJ -0 g 0 G - -21.857 -19.926 Td [(6.)]TJ +/F30 9.9626 Tf 339.861 486.494 Td [(type)]TJ 0 g 0 G - [-500(The)-376(three)-375(sorting)-376(algorithms)-376(ha)28(v)28(e)-376(a)-376(similar)]TJ/F11 9.9626 Tf 208.295 0 Td [(O)]TJ/F8 9.9626 Tf 7.876 0 Td [(\050)]TJ/F11 9.9626 Tf 3.875 0 Td [(n)]TJ/F8 9.9626 Tf 7.64 0 Td [(log)]TJ/F11 9.9626 Tf 14.529 0 Td [(n)]TJ/F8 9.9626 Tf 5.98 0 Td [(\051)-376(exp)-27(ec)-1(t)1(e)-1(d)-375(running)]TJ -235.465 -11.955 Td [(time;)-349(in)-343(the)-344(a)28(v)28(erage)-344(case)-344(qu)1(ic)27(ksort)-343(will)-344(b)-28(e)-343(the)-344(fastest)-343(and)-344(merge-sort)-343(the)]TJ 0 -11.955 Td [(slo)28(w)27(est.)-444(Ho)28(w)27(ev)28(er)-333(note)-333(that:)]TJ +/F8 9.9626 Tf 20.921 0 Td [(.)]TJ 0 g 0 G - 4.207 -19.925 Td [(\050a\051)]TJ +/F27 9.9626 Tf -260.887 -19.925 Td [(iact)]TJ 0 g 0 G - [-500(The)-419(w)28(orst)-419(case)-419(run)1(ning)-419(time)-419(for)-419(qui)1(c)27(ksort)-418(is)]TJ/F11 9.9626 Tf 221.058 0 Td [(O)]TJ/F8 9.9626 Tf 7.876 0 Td [(\050)]TJ/F11 9.9626 Tf 3.875 0 Td [(n)]TJ/F7 6.9738 Tf 5.98 3.615 Td [(2)]TJ/F8 9.9626 Tf 4.469 -3.615 Td [(\051;)-461(the)-419(algorithm)]TJ -225.547 -11.955 Td [(implemen)28(ted)-319(here)-319(follo)28(ws)-319(the)-319(w)27(ell-kno)28(wn)-319(median-of-three)-319(heuristics,)]TJ 0 -11.956 Td [(but)-333(the)-334(w)28(orst)-333(case)-334(ma)28(y)-333(still)-334(app)1(ly;)]TJ +/F8 9.9626 Tf 23.281 0 Td [(sp)-28(eci\014es)-333(action)-334(to)-333(b)-28(e)-333(tak)28(en)-334(in)-333(case)-333(of)-334(range)-333(errors.)-444(Scop)-28(e:)]TJ/F27 9.9626 Tf 257.147 0 Td [(global)]TJ/F8 9.9626 Tf -255.521 -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.956 Td [(Sp)-28(eci\014ed)-255(as:)-405(a)-256(c)28(haracter)-255(v)56(ariable)]TJ/F30 9.9626 Tf 143.584 0 Td [(I)]TJ/F8 9.9626 Tf 5.23 0 Td [(gnore,)]TJ/F30 9.9626 Tf 29.293 0 Td [(W)]TJ/F8 9.9626 Tf 5.23 0 Td [(arning)-255(or)]TJ/F30 9.9626 Tf 41.67 0 Td [(A)]TJ/F8 9.9626 Tf 5.231 0 Td [(b)-28(ort,)-270(default)]TJ/F30 9.9626 Tf 56.741 0 Td [(I)]TJ/F8 9.9626 Tf 5.231 0 Td [(gnore.)]TJ 0 g 0 G - -18.265 -15.94 Td [(\050b\051)]TJ +/F27 9.9626 Tf -317.117 -21.917 Td [(On)-383(Return)]TJ 0 g 0 G - [-500(The)-222(w)28(orst)-223(case)-222(running)-222(time)-222(for)-223(merge-sort)-222(and)-222(heap-sort)-222(is)]TJ/F11 9.9626 Tf 273.309 0 Td [(O)]TJ/F8 9.9626 Tf 7.876 0 Td [(\050)]TJ/F11 9.9626 Tf 3.875 0 Td [(n)]TJ/F8 9.9626 Tf 7.64 0 Td [(log)]TJ/F11 9.9626 Tf 14.529 0 Td [(n)]TJ/F8 9.9626 Tf 5.98 0 Td [(\051)]TJ -294.944 -11.955 Td [(as)-333(the)-334(a)28(v)28(erage)-334(case;)]TJ 0 g 0 G - -17.158 -15.94 Td [(\050c\051)]TJ + 0 -19.926 Td [(x)]TJ 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)-301(of)-301(indices)-301(of)-302(sparse)-301(matrix)-301(en)28(tries,)-308(th)28(us)-301(merge-sort)-302(is)-301(the)-301(pre-)]TJ 0 -11.955 Td [(ferred)-249(c)28(hoice)-249(when)-249(a)-249(sorting)-248(is)-249(needed)-249(b)28(y)-249(other)-249(routines)-249(in)-249(t)1(he)-249(library)83(.)]TJ +/F8 9.9626 Tf 11.028 0 Td [(If)]TJ/F11 9.9626 Tf 10.133 0 Td [(y)]TJ/F8 9.9626 Tf 8.733 0 Td [(is)-350(not)-351(presen)28(t,)-355(then)]TJ/F11 9.9626 Tf 88.586 0 Td [(x)]TJ/F8 9.9626 Tf 9.185 0 Td [(is)-350(o)27(v)28(erwritten)-350(with)-351(th)1(e)-351(translated)-350(in)28(teger)-351(indices.)]TJ -102.758 -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 [(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.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(rank)-333(one)-333(in)27(teger)-333(arra)28(y)83(.)]TJ 0 g 0 G - 117.559 -205.23 Td [(102)]TJ +/F27 9.9626 Tf -24.907 -19.926 Td [(y)]TJ 0 g 0 G -ET - -endstream -endobj -1551 0 obj -<< -/Length 182 ->> -stream +/F8 9.9626 Tf 11.028 0 Td [(If)]TJ/F11 9.9626 Tf 10.167 0 Td [(y)]TJ/F8 9.9626 Tf 8.767 0 Td [(is)-354(not)-354(presen)28(t,)-359(then)]TJ/F11 9.9626 Tf 88.732 0 Td [(y)]TJ/F8 9.9626 Tf 8.766 0 Td [(is)-354(o)28(v)28(erwritten)-354(with)-354(the)-354(translated)-353(in)27(teger)-353(indices,)]TJ -102.553 -11.955 Td [(and)]TJ/F11 9.9626 Tf 19.372 0 Td [(x)]TJ/F8 9.9626 Tf 9.015 0 Td [(is)-333(left)-334(unc)28(hanged.)-444(Scop)-28(e:)]TJ/F27 9.9626 Tf 113.242 0 Td [(global)]TJ/F8 9.9626 Tf -141.629 -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 [(out)]TJ/F8 9.9626 Tf 16.549 0 Td [(.)]TJ -50.035 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(rank)-333(one)-333(in)27(teger)-333(arra)28(y)83(.)]TJ 0 g 0 G +/F27 9.9626 Tf -24.907 -19.926 Td [(info)]TJ 0 g 0 G -BT -/F16 14.3462 Tf 99.895 706.129 Td [(7)-1125(P)31(arallel)-375(en)31(vironmen)32(t)-375(routines)]TJ +/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 -/F8 9.9626 Tf 164.384 -615.691 Td [(103)]TJ + 141.968 -115.11 Td [(97)]TJ 0 g 0 G ET endstream endobj -1556 0 obj +1566 0 obj << -/Length 5574 +/Length 3294 >> stream 0 g 0 G 0 g 0 G BT -/F16 11.9552 Tf 150.705 706.129 Td [(psb)]TJ +/F16 11.9552 Tf 150.705 706.129 Td [(6.19)-1125(psb)]TJ +ET +q +1 0 0 1 209.121 706.328 cm +[]0 d 0 J 0.398 w 0 0 m 4.035 0 l S +Q +BT +/F16 11.9552 Tf 213.156 706.129 Td [(is)]TJ ET q -1 0 0 1 171.761 706.328 cm +1 0 0 1 223.004 706.328 cm []0 d 0 J 0.398 w 0 0 m 4.035 0 l S Q BT -/F16 11.9552 Tf 175.796 706.129 Td [(init)-375(|)-375(Initializes)-375(PSBLAS)-375(parallel)-375(en)31(vironmen)31(t)]TJ +/F16 11.9552 Tf 227.039 706.129 Td [(o)31(wned)-375(|)]TJ 0 g 0 G 0 g 0 G -/F30 9.9626 Tf -25.091 -18.389 Td [(call)-525(psb_init\050icontxt,)-525(np,)-525(basectxt,)-525(ids\051)]TJ/F8 9.9626 Tf 14.944 -21.918 Td [(This)-294(subroutine)-294(initial)1(iz)-1(es)-293(the)-294(PSBLAS)-294(parallel)-294(en)28(vironmen)28(t,)-302(de\014ning)-294(a)-294(vir-)]TJ -14.944 -11.955 Td [(tual)-333(parallel)-334(mac)28(hine.)]TJ +/F30 9.9626 Tf -76.334 -18.389 Td [(call)-525(psb_is_owned\050x,)-525(desc_a\051)]TJ 0 g 0 G -/F27 9.9626 Tf 0 -19.926 Td [(T)32(yp)-32(e:)]TJ +/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 [(Sync)28(hronous.)]TJ +/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 +/F27 9.9626 Tf -33.797 -19.926 Td [(On)-383(En)32(try)]TJ 0 g 0 G 0 g 0 G - 0 -19.925 Td [(np)]TJ + 0 -19.925 Td [(x)]TJ 0 g 0 G -/F8 9.9626 Tf 17.711 0 Td [(Num)28(b)-28(er)-333(of)-334(pro)-27(cess)-1(es)-333(in)-333(the)-334(P)1(SBLA)-1(S)-333(virtual)-333(parallel)-333(mac)27(hin)1(e)-1(.)]TJ 7.196 -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 [(optional)]TJ/F8 9.9626 Tf 40.577 0 Td [(.)]TJ -70.188 -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(alue.)-778(Defau)1(lt:)-445(use)-333(all)-334(a)28(v)56(ailable)-333(pro)-28(cesses.)]TJ +/F8 9.9626 Tf 11.028 0 Td [(In)28(teger)-334(ind)1(e)-1(x.)]TJ 13.878 -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.956 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(scalar)-333(in)28(teg)-1(er.)]TJ 0 g 0 G -/F27 9.9626 Tf -24.907 -19.925 Td [(basectxt)]TJ +/F27 9.9626 Tf -24.906 -31.88 Td [(desc)]TJ +ET +q +1 0 0 1 172.619 546.469 cm +[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S +Q +BT +/F27 9.9626 Tf 176.057 546.27 Td [(a)]TJ 0 g 0 G -/F8 9.9626 Tf 46.736 0 Td [(the)-356(initial)-357(comm)28(unication)-356(con)28(text.)-514(The)-356(new)-357(con)28(text)-356(will)-357(b)-27(e)-357(de\014ned)]TJ -21.829 -11.955 Td [(from)-333(the)-334(pro)-27(cesse)-1(s)-333(participating)-333(in)-333(the)-334(initial)-333(one.)]TJ 0 -11.956 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 [(optional)]TJ/F8 9.9626 Tf 40.577 0 Td [(.)]TJ -70.188 -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:)-445(an)-333(in)28(teger)-333(v)55(alue.)-778(Defau)1(lt:)-445(use)-333(MPI)]TJ +/F8 9.9626 Tf 10.55 0 Td [(the)-333(comm)27(unication)-333(descriptor.)]TJ -10.996 -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 [(in)]TJ/F8 9.9626 Tf 9.548 0 Td [(.)]TJ -43.034 -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 389.991 466.768 cm -[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +1 0 0 1 362.845 498.649 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F8 9.9626 Tf 392.98 466.569 Td [(COMM)]TJ +/F30 9.9626 Tf 365.983 498.449 Td [(desc)]TJ ET q -1 0 0 1 426.787 466.768 cm -[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +1 0 0 1 387.532 498.649 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F8 9.9626 Tf 429.775 466.569 Td [(W)28(ORLD.)]TJ -0 g 0 G -/F27 9.9626 Tf -279.07 -19.925 Td [(ids)]TJ +/F30 9.9626 Tf 390.67 498.449 Td [(type)]TJ 0 g 0 G -/F8 9.9626 Tf 19.048 0 Td [(Iden)28(tities)-497(of)-497(the)-497(pro)-28(cesses)-497(to)-497(use)-497(for)-497(the)-497(new)-498(con)28(text;)-579(the)-497(argumen)28(t)-497(is)]TJ 5.858 -11.956 Td [(ignored)-428(when)]TJ/F30 9.9626 Tf 63.346 0 Td [(np)]TJ/F8 9.9626 Tf 14.723 0 Td [(is)-428(not)-428(sp)-27(eci\014ed.)-728(This)-428(allo)28(ws)-428(the)-428(pro)-27(ces)-1(ses)-427(in)-428(the)-428(new)]TJ -78.069 -11.955 Td [(en)28(vironmen)28(t)-334(to)-333(b)-28(e)-333(in)-333(an)-334(order)-333(di\013eren)28(t)-334(from)-333(the)-333(original)-333(one.)]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.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.612 0 Td [(optional)]TJ/F8 9.9626 Tf 40.576 0 Td [(.)]TJ -70.188 -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(arra)27(y)84(.)-778(Default:)-444(use)-334(the)-333(indices)-333(\0500)]TJ/F11 9.9626 Tf 254.159 0 Td [(:)-167(:)-166(:)-167(np)]TJ/F14 9.9626 Tf 26.489 0 Td [(\000)]TJ/F8 9.9626 Tf 9.963 0 Td [(1\051.)]TJ +/F8 9.9626 Tf 20.922 0 Td [(.)]TJ 0 g 0 G -/F27 9.9626 Tf -315.517 -21.918 Td [(On)-383(Return)]TJ +/F27 9.9626 Tf -260.887 -21.917 Td [(On)-383(Return)]TJ 0 g 0 G 0 g 0 G - 0 -19.925 Td [(icon)32(txt)]TJ + 0 -19.926 Td [(F)96(unction)-384(v)64(alue)]TJ 0 g 0 G -/F8 9.9626 Tf 39.989 0 Td [(the)-457(c)-1(omm)28(unication)-457(con)28(te)-1(x)1(t)-458(iden)28(tifying)-458(the)-457(virtual)-458(p)1(arallel)-458(mac)28(hine.)]TJ -15.083 -11.956 Td [(Note)-335(that)-335(this)-335(is)-336(alw)28(a)28(ys)-335(a)-335(duplicate)-335(of)]TJ/F30 9.9626 Tf 169.953 0 Td [(basectxt)]TJ/F8 9.9626 Tf 41.843 0 Td [(,)-336(so)-335(that)-335(library)-335(comm)28(u-)]TJ -211.796 -11.955 Td [(nications)-305(are)-305(completely)-306(separated)-305(from)-305(other)-305(comm)28(unication)-305(op)-28(erations.)]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.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 [(out)]TJ/F8 9.9626 Tf 16.549 0 Td [(.)]TJ -50.035 -11.956 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(in)28(teger)-333(v)55(ariable.)]TJ/F16 11.9552 Tf -24.906 -21.917 Td [(Notes)]TJ +/F8 9.9626 Tf 78.386 0 Td [(A)-302(logical)-301(mask)-302(whic)28(h)-302(is)-302(tru)1(e)-302(if)]TJ/F11 9.9626 Tf 134.085 0 Td [(x)]TJ/F8 9.9626 Tf 8.7 0 Td [(is)-302(o)28(wned)-302(b)28(y)-301(the)-302(curren)28(t)-302(pro-)]TJ -196.265 -11.955 Td [(cess)-334(Scop)-27(e:)]TJ/F27 9.9626 Tf 52.415 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -52.415 -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/F16 11.9552 Tf -74.941 -33.873 Td [(Notes)]TJ 0 g 0 G /F8 9.9626 Tf 12.176 -19.926 Td [(1.)]TJ 0 g 0 G - [-500(A)-333(call)-334(to)-333(this)-333(routine)-334(m)28(ust)-333(precede)-334(an)28(y)-333(other)-333(PSBLAS)-334(call.)]TJ -0 g 0 G - 0 -19.925 Td [(2.)]TJ -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 + [-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 - 139.477 -97.177 Td [(104)]TJ + 141.968 -264.549 Td [(98)]TJ 0 g 0 G ET endstream endobj -1452 0 obj +1469 0 obj << /Type /ObjStm /N 100 -/First 971 -/Length 10019 +/First 977 +/Length 10649 >> stream -344 0 1448 57 1454 163 1456 281 348 340 1453 398 1459 530 1457 669 1461 815 352 873 -1458 930 1463 1049 1465 1167 1466 1226 1467 1285 1462 1344 1470 1424 1468 1563 1472 1710 356 1768 -1469 1825 1476 1944 1474 2083 1478 2229 360 2288 1479 2346 1475 2405 1482 2524 1480 2663 1484 2810 -364 2868 1485 2925 1481 2983 1488 3102 1486 3241 1490 3387 368 3446 1491 3504 1487 3563 1494 3682 -1492 3821 1496 3968 372 4026 1497 4083 1493 4141 1500 4260 1498 4399 1502 4544 376 4603 1503 4661 -1504 4720 1499 4779 1507 4885 1505 5024 1509 5170 380 5228 1510 5285 1511 5343 1506 5401 1515 5507 -1513 5646 1517 5790 384 5849 1514 5907 1519 6026 1521 6144 1522 6202 1523 6260 1524 6318 1518 6376 -1529 6495 1525 6652 1526 6796 1527 6942 1531 7087 388 7146 1528 7204 1533 7323 1535 7441 392 7499 -1532 7556 1537 7675 1539 7793 1540 7852 1541 7911 1542 7970 1543 8029 1544 8088 1545 8147 1546 8205 -1547 8264 1548 8323 1536 8382 1550 8500 1552 8618 396 8676 1549 8733 1555 8813 1557 8931 400 8990 -% 344 0 obj -<< -/D [1449 0 R /XYZ 99.895 720.077 null] ->> -% 1448 0 obj -<< -/Font << /F16 558 0 R /F30 769 0 R /F27 560 0 R /F8 561 0 R >> -/ProcSet [ /PDF /Text ] ->> -% 1454 0 obj +1461 0 1453 157 1458 303 1459 448 1463 593 1464 651 1465 709 1466 767 1467 825 1468 883 +1460 941 1471 1060 1473 1178 1474 1237 1475 1296 1476 1355 1477 1414 1478 1472 1479 1531 1470 1590 +1483 1683 1480 1831 1481 1977 1485 2122 344 2180 1482 2237 1488 2343 1490 2461 1491 2520 1492 2579 +1493 2638 1494 2697 1495 2756 1496 2815 1487 2873 1500 2953 1497 3101 1498 3245 1502 3392 348 3450 +1499 3507 1506 3613 1503 3761 1504 3905 1508 4051 352 4110 1509 4168 1505 4227 1513 4333 1510 4481 +1511 4626 1515 4770 356 4828 1512 4885 1519 5004 1516 5152 1517 5298 1521 5442 360 5501 1518 5559 +1523 5678 1525 5796 1526 5854 1527 5912 1522 5970 1533 6063 1529 6220 1530 6366 1531 6510 1535 6653 +364 6712 1532 6770 1539 6889 1536 7037 1537 7180 1541 7326 368 7384 1538 7441 1543 7547 1545 7665 +372 7724 1542 7782 1548 7914 1546 8053 1550 8199 376 8257 1547 8314 1552 8433 1554 8551 1555 8610 +1556 8669 1551 8728 1559 8808 1557 8947 1561 9094 380 9152 1558 9209 1565 9328 1563 9467 1567 9613 +% 1461 0 obj << /Type /Page -/Contents 1455 0 R -/Resources 1453 0 R +/Contents 1462 0 R +/Resources 1460 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1438 0 R ->> -% 1456 0 obj -<< -/D [1454 0 R /XYZ 149.705 753.953 null] ->> -% 348 0 obj -<< -/D [1454 0 R /XYZ 150.705 720.077 null] +/Parent 1437 0 R +/Annots [ 1453 0 R 1458 0 R 1459 0 R ] >> % 1453 0 obj << -/Font << /F16 558 0 R /F30 769 0 R /F27 560 0 R /F8 561 0 R /F11 755 0 R /F10 771 0 R >> -/ProcSet [ /PDF /Text ] ->> -% 1459 0 obj -<< -/Type /Page -/Contents 1460 0 R -/Resources 1458 0 R -/MediaBox [0 0 595.276 841.89] -/Parent 1438 0 R -/Annots [ 1457 0 R ] ->> -% 1457 0 obj -<< /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [294.721 484.86 361.779 495.985] +/Rect [261.152 655.098 328.21 666.223] /A << /S /GoTo /D (descdata) >> >> -% 1461 0 obj -<< -/D [1459 0 R /XYZ 98.895 753.953 null] ->> -% 352 0 obj +% 1458 0 obj << -/D [1459 0 R /XYZ 99.895 720.077 null] +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [294.721 488.124 372.239 499.249] +/A << /S /GoTo /D (spdata) >> >> -% 1458 0 obj +% 1459 0 obj << -/Font << /F16 558 0 R /F30 769 0 R /F27 560 0 R /F8 561 0 R /F11 755 0 R >> -/ProcSet [ /PDF /Text ] +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [261.152 420.91 328.21 432.035] +/A << /S /GoTo /D (descdata) >> >> % 1463 0 obj << -/Type /Page -/Contents 1464 0 R -/Resources 1462 0 R -/MediaBox [0 0 595.276 841.89] -/Parent 1438 0 R +/D [1461 0 R /XYZ 98.895 753.953 null] +>> +% 1464 0 obj +<< +/D [1461 0 R /XYZ 99.895 321.172 null] >> % 1465 0 obj << -/D [1463 0 R /XYZ 149.705 753.953 null] +/D [1461 0 R /XYZ 99.895 289.823 null] >> % 1466 0 obj << -/D [1463 0 R /XYZ 150.705 716.092 null] +/D [1461 0 R /XYZ 99.895 256.537 null] >> % 1467 0 obj << -/D [1463 0 R /XYZ 150.705 688.251 null] +/D [1461 0 R /XYZ 99.895 189.322 null] +>> +% 1468 0 obj +<< +/D [1461 0 R /XYZ 99.895 169.929 null] >> -% 1462 0 obj +% 1460 0 obj << -/Font << /F8 561 0 R /F30 769 0 R >> +/Font << /F27 584 0 R /F8 585 0 R /F30 811 0 R /F16 582 0 R /F11 797 0 R >> /ProcSet [ /PDF /Text ] >> -% 1470 0 obj +% 1471 0 obj << /Type /Page -/Contents 1471 0 R -/Resources 1469 0 R +/Contents 1472 0 R +/Resources 1470 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1473 0 R -/Annots [ 1468 0 R ] ->> -% 1468 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [294.721 483.284 361.779 494.409] -/A << /S /GoTo /D (descdata) >> +/Parent 1437 0 R >> -% 1472 0 obj +% 1473 0 obj << -/D [1470 0 R /XYZ 98.895 753.953 null] +/D [1471 0 R /XYZ 149.705 753.953 null] >> -% 356 0 obj +% 1474 0 obj << -/D [1470 0 R /XYZ 99.895 720.077 null] +/D [1471 0 R /XYZ 150.705 716.092 null] >> -% 1469 0 obj +% 1475 0 obj << -/Font << /F16 558 0 R /F30 769 0 R /F27 560 0 R /F8 561 0 R /F11 755 0 R >> -/ProcSet [ /PDF /Text ] +/D [1471 0 R /XYZ 150.705 652.386 null] >> % 1476 0 obj << -/Type /Page -/Contents 1477 0 R -/Resources 1475 0 R -/MediaBox [0 0 595.276 841.89] -/Parent 1473 0 R -/Annots [ 1474 0 R ] +/D [1471 0 R /XYZ 150.705 607.997 null] >> -% 1474 0 obj +% 1477 0 obj << -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [345.53 495.239 412.588 506.364] -/A << /S /GoTo /D (descdata) >> +/D [1471 0 R /XYZ 150.705 576.67 null] >> % 1478 0 obj << -/D [1476 0 R /XYZ 149.705 753.953 null] ->> -% 360 0 obj -<< -/D [1476 0 R /XYZ 150.705 720.077 null] +/D [1471 0 R /XYZ 150.705 544.789 null] >> % 1479 0 obj << -/D [1476 0 R /XYZ 150.705 382.883 null] +/D [1471 0 R /XYZ 150.705 500.954 null] >> -% 1475 0 obj +% 1470 0 obj << -/Font << /F16 558 0 R /F30 769 0 R /F27 560 0 R /F8 561 0 R /F11 755 0 R >> +/Font << /F8 585 0 R /F11 797 0 R /F14 814 0 R >> /ProcSet [ /PDF /Text ] >> -% 1482 0 obj +% 1483 0 obj << /Type /Page -/Contents 1483 0 R -/Resources 1481 0 R +/Contents 1484 0 R +/Resources 1482 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1473 0 R -/Annots [ 1480 0 R ] +/Parent 1486 0 R +/Annots [ 1480 0 R 1481 0 R ] >> % 1480 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [294.721 495.239 361.779 506.364] +/Rect [294.721 576.23 361.779 587.355] /A << /S /GoTo /D (descdata) >> >> -% 1484 0 obj +% 1481 0 obj << -/D [1482 0 R /XYZ 98.895 753.953 null] +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [294.721 205.776 372.239 216.901] +/A << /S /GoTo /D (spdata) >> >> -% 364 0 obj +% 1485 0 obj << -/D [1482 0 R /XYZ 99.895 720.077 null] +/D [1483 0 R /XYZ 98.895 753.953 null] >> -% 1485 0 obj +% 344 0 obj << -/D [1482 0 R /XYZ 99.895 259.346 null] +/D [1483 0 R /XYZ 99.895 716.092 null] >> -% 1481 0 obj +% 1482 0 obj << -/Font << /F16 558 0 R /F30 769 0 R /F27 560 0 R /F8 561 0 R /F11 755 0 R >> +/Font << /F16 582 0 R /F30 811 0 R /F27 584 0 R /F8 585 0 R >> /ProcSet [ /PDF /Text ] >> % 1488 0 obj @@ -18913,66 +18828,39 @@ stream /Contents 1489 0 R /Resources 1487 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1473 0 R -/Annots [ 1486 0 R ] ->> -% 1486 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [345.53 495.239 412.588 506.364] -/A << /S /GoTo /D (descdata) >> +/Parent 1486 0 R >> % 1490 0 obj << /D [1488 0 R /XYZ 149.705 753.953 null] >> -% 368 0 obj +% 1491 0 obj << -/D [1488 0 R /XYZ 150.705 720.077 null] +/D [1488 0 R /XYZ 150.705 716.092 null] >> -% 1491 0 obj +% 1492 0 obj << -/D [1488 0 R /XYZ 150.705 382.883 null] +/D [1488 0 R /XYZ 150.705 687.975 null] >> -% 1487 0 obj +% 1493 0 obj << -/Font << /F16 558 0 R /F30 769 0 R /F27 560 0 R /F8 561 0 R /F11 755 0 R >> -/ProcSet [ /PDF /Text ] +/D [1488 0 R /XYZ 150.705 668.326 null] >> % 1494 0 obj << -/Type /Page -/Contents 1495 0 R -/Resources 1493 0 R -/MediaBox [0 0 595.276 841.89] -/Parent 1473 0 R -/Annots [ 1492 0 R ] +/D [1488 0 R /XYZ 150.705 624.491 null] >> -% 1492 0 obj +% 1495 0 obj << -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [294.721 495.239 361.779 506.364] -/A << /S /GoTo /D (descdata) >> +/D [1488 0 R /XYZ 150.705 580.655 null] >> % 1496 0 obj << -/D [1494 0 R /XYZ 98.895 753.953 null] ->> -% 372 0 obj -<< -/D [1494 0 R /XYZ 99.895 720.077 null] +/D [1488 0 R /XYZ 150.705 560.73 null] >> -% 1497 0 obj -<< -/D [1494 0 R /XYZ 99.895 259.346 null] ->> -% 1493 0 obj +% 1487 0 obj << -/Font << /F16 558 0 R /F30 769 0 R /F27 560 0 R /F8 561 0 R /F11 755 0 R >> +/Font << /F8 585 0 R /F30 811 0 R >> /ProcSet [ /PDF /Text ] >> % 1500 0 obj @@ -18981,104 +18869,116 @@ stream /Contents 1501 0 R /Resources 1499 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1473 0 R -/Annots [ 1498 0 R ] +/Parent 1486 0 R +/Annots [ 1497 0 R 1498 0 R ] +>> +% 1497 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [294.721 574.94 372.239 586.065] +/A << /S /GoTo /D (spdata) >> >> % 1498 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [345.53 574.94 412.588 586.065] +/Rect [294.721 507.194 361.779 518.319] /A << /S /GoTo /D (descdata) >> >> % 1502 0 obj << -/D [1500 0 R /XYZ 149.705 753.953 null] ->> -% 376 0 obj -<< -/D [1500 0 R /XYZ 150.705 720.077 null] ->> -% 1503 0 obj -<< -/D [1500 0 R /XYZ 150.705 370.928 null] +/D [1500 0 R /XYZ 98.895 753.953 null] >> -% 1504 0 obj +% 348 0 obj << -/D [1500 0 R /XYZ 150.705 327.092 null] +/D [1500 0 R /XYZ 99.895 716.092 null] >> % 1499 0 obj << -/Font << /F16 558 0 R /F30 769 0 R /F27 560 0 R /F8 561 0 R >> +/Font << /F16 582 0 R /F30 811 0 R /F27 584 0 R /F8 585 0 R >> /ProcSet [ /PDF /Text ] >> -% 1507 0 obj +% 1506 0 obj << /Type /Page -/Contents 1508 0 R -/Resources 1506 0 R +/Contents 1507 0 R +/Resources 1505 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1512 0 R -/Annots [ 1505 0 R ] +/Parent 1486 0 R +/Annots [ 1503 0 R 1504 0 R ] >> -% 1505 0 obj +% 1503 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [294.721 574.94 361.779 586.065] -/A << /S /GoTo /D (descdata) >> +/Rect [345.53 560.993 423.049 572.118] +/A << /S /GoTo /D (spdata) >> >> -% 1509 0 obj +% 1504 0 obj << -/D [1507 0 R /XYZ 98.895 753.953 null] +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [345.53 493.247 412.588 504.372] +/A << /S /GoTo /D (descdata) >> >> -% 380 0 obj +% 1508 0 obj << -/D [1507 0 R /XYZ 99.895 720.077 null] +/D [1506 0 R /XYZ 149.705 753.953 null] >> -% 1510 0 obj +% 352 0 obj << -/D [1507 0 R /XYZ 99.895 370.928 null] +/D [1506 0 R /XYZ 150.705 716.092 null] >> -% 1511 0 obj +% 1509 0 obj << -/D [1507 0 R /XYZ 99.895 339.047 null] +/D [1506 0 R /XYZ 150.705 313.144 null] >> -% 1506 0 obj +% 1505 0 obj << -/Font << /F16 558 0 R /F30 769 0 R /F27 560 0 R /F8 561 0 R >> +/Font << /F16 582 0 R /F30 811 0 R /F27 584 0 R /F8 585 0 R >> /ProcSet [ /PDF /Text ] >> -% 1515 0 obj +% 1513 0 obj << /Type /Page -/Contents 1516 0 R -/Resources 1514 0 R +/Contents 1514 0 R +/Resources 1512 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1512 0 R -/Annots [ 1513 0 R ] +/Parent 1486 0 R +/Annots [ 1510 0 R 1511 0 R ] >> -% 1513 0 obj +% 1510 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [345.53 492.904 423.049 504.029] -/A << /S /GoTo /D (spdata) >> +/Rect [261.152 574.94 328.21 586.065] +/A << /S /GoTo /D (descdata) >> >> -% 1517 0 obj +% 1511 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [213.774 290.009 289.828 301.134] +/A << /S /GoTo /D (vdata) >> +>> +% 1515 0 obj << -/D [1515 0 R /XYZ 149.705 753.953 null] +/D [1513 0 R /XYZ 98.895 753.953 null] >> -% 384 0 obj +% 356 0 obj << -/D [1515 0 R /XYZ 150.705 720.077 null] +/D [1513 0 R /XYZ 99.895 716.092 null] >> -% 1514 0 obj +% 1512 0 obj << -/Font << /F16 558 0 R /F30 769 0 R /F27 560 0 R /F8 561 0 R /F11 755 0 R >> +/Font << /F16 582 0 R /F30 811 0 R /F27 584 0 R /F8 585 0 R /F11 797 0 R >> /ProcSet [ /PDF /Text ] >> % 1519 0 obj @@ -19087,1530 +18987,1723 @@ stream /Contents 1520 0 R /Resources 1518 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1512 0 R +/Parent 1486 0 R +/Annots [ 1516 0 R 1517 0 R ] >> -% 1521 0 obj +% 1516 0 obj << -/D [1519 0 R /XYZ 98.895 753.953 null] +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [345.53 363.459 412.588 374.584] +/A << /S /GoTo /D (descdata) >> >> -% 1522 0 obj +% 1517 0 obj << -/D [1519 0 R /XYZ 99.895 496.913 null] +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [416.591 141.026 492.645 152.151] +/A << /S /GoTo /D (vdata) >> >> -% 1523 0 obj +% 1521 0 obj << -/D [1519 0 R /XYZ 99.895 439.185 null] +/D [1519 0 R /XYZ 149.705 753.953 null] >> -% 1524 0 obj +% 360 0 obj << -/D [1519 0 R /XYZ 99.895 418.983 null] +/D [1519 0 R /XYZ 150.705 716.092 null] >> % 1518 0 obj << -/Font << /F27 560 0 R /F8 561 0 R /F30 769 0 R /F16 558 0 R /F11 755 0 R >> +/Font << /F16 582 0 R /F30 811 0 R /F27 584 0 R /F8 585 0 R /F11 797 0 R >> /ProcSet [ /PDF /Text ] >> -% 1529 0 obj +% 1523 0 obj << /Type /Page -/Contents 1530 0 R -/Resources 1528 0 R +/Contents 1524 0 R +/Resources 1522 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1512 0 R -/Annots [ 1525 0 R 1526 0 R 1527 0 R ] +/Parent 1528 0 R >> % 1525 0 obj << -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [345.53 529.112 423.049 540.237] -/A << /S /GoTo /D (spdata) >> +/D [1523 0 R /XYZ 98.895 753.953 null] >> % 1526 0 obj << +/D [1523 0 R /XYZ 99.895 632.405 null] +>> +% 1527 0 obj +<< +/D [1523 0 R /XYZ 99.895 609.989 null] +>> +% 1522 0 obj +<< +/Font << /F27 584 0 R /F8 585 0 R /F16 582 0 R >> +/ProcSet [ /PDF /Text ] +>> +% 1533 0 obj +<< +/Type /Page +/Contents 1534 0 R +/Resources 1532 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1528 0 R +/Annots [ 1529 0 R 1530 0 R 1531 0 R ] +>> +% 1529 0 obj +<< /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [345.53 461.366 412.588 472.491] +/Rect [311.962 574.94 379.019 586.065] /A << /S /GoTo /D (descdata) >> >> -% 1527 0 obj +% 1530 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [372.153 405.575 439.211 416.7] -/A << /S /GoTo /D (precdata) >> +/Rect [320.727 483.284 396.781 494.409] +/A << /S /GoTo /D (vdata) >> >> % 1531 0 obj << -/D [1529 0 R /XYZ 149.705 753.953 null] +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [238.542 381.665 314.596 392.79] +/A << /S /GoTo /D (vdata) >> >> -% 388 0 obj +% 1535 0 obj << -/D [1529 0 R /XYZ 150.705 720.077 null] +/D [1533 0 R /XYZ 149.705 753.953 null] >> -% 1528 0 obj +% 364 0 obj << -/Font << /F16 558 0 R /F8 561 0 R /F30 769 0 R /F27 560 0 R /F11 755 0 R >> +/D [1533 0 R /XYZ 150.705 716.092 null] +>> +% 1532 0 obj +<< +/Font << /F16 582 0 R /F30 811 0 R /F27 584 0 R /F8 585 0 R /F11 797 0 R >> /ProcSet [ /PDF /Text ] >> -% 1533 0 obj +% 1539 0 obj << /Type /Page -/Contents 1534 0 R -/Resources 1532 0 R +/Contents 1540 0 R +/Resources 1538 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1512 0 R +/Parent 1528 0 R +/Annots [ 1536 0 R 1537 0 R ] >> -% 1535 0 obj +% 1536 0 obj << -/D [1533 0 R /XYZ 98.895 753.953 null] +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [187.733 562.985 263.787 574.11] +/A << /S /GoTo /D (vdata) >> >> -% 392 0 obj +% 1537 0 obj << -/D [1533 0 R /XYZ 99.895 720.077 null] +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [261.152 483.284 328.21 494.409] +/A << /S /GoTo /D (descdata) >> >> -% 1532 0 obj +% 1541 0 obj +<< +/D [1539 0 R /XYZ 98.895 753.953 null] +>> +% 368 0 obj +<< +/D [1539 0 R /XYZ 99.895 716.092 null] +>> +% 1538 0 obj << -/Font << /F16 558 0 R /F30 769 0 R /F8 561 0 R /F11 755 0 R /F27 560 0 R >> +/Font << /F16 582 0 R /F30 811 0 R /F27 584 0 R /F8 585 0 R >> /ProcSet [ /PDF /Text ] >> -% 1537 0 obj +% 1543 0 obj << /Type /Page -/Contents 1538 0 R -/Resources 1536 0 R +/Contents 1544 0 R +/Resources 1542 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1512 0 R ->> -% 1539 0 obj -<< -/D [1537 0 R /XYZ 149.705 753.953 null] +/Parent 1528 0 R >> -% 1540 0 obj +% 1545 0 obj << -/D [1537 0 R /XYZ 150.705 702.144 null] +/D [1543 0 R /XYZ 149.705 753.953 null] >> -% 1541 0 obj +% 372 0 obj << -/D [1537 0 R /XYZ 150.705 668.326 null] +/D [1543 0 R /XYZ 150.705 716.092 null] >> % 1542 0 obj << -/D [1537 0 R /XYZ 150.705 624.491 null] +/Font << /F16 582 0 R /F30 811 0 R /F27 584 0 R /F8 585 0 R /F11 797 0 R /F10 813 0 R >> +/ProcSet [ /PDF /Text ] >> -% 1543 0 obj +% 1548 0 obj << -/D [1537 0 R /XYZ 150.705 556.745 null] +/Type /Page +/Contents 1549 0 R +/Resources 1547 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1528 0 R +/Annots [ 1546 0 R ] >> -% 1544 0 obj +% 1546 0 obj << -/D [1537 0 R /XYZ 150.705 500.954 null] +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [294.721 484.86 361.779 495.985] +/A << /S /GoTo /D (descdata) >> >> -% 1545 0 obj +% 1550 0 obj << -/D [1537 0 R /XYZ 150.705 468.52 null] +/D [1548 0 R /XYZ 98.895 753.953 null] >> -% 1546 0 obj +% 376 0 obj << -/D [1537 0 R /XYZ 150.705 425.182 null] +/D [1548 0 R /XYZ 99.895 716.092 null] >> % 1547 0 obj << -/D [1537 0 R /XYZ 150.705 383.395 null] +/Font << /F16 582 0 R /F30 811 0 R /F27 584 0 R /F8 585 0 R /F11 797 0 R >> +/ProcSet [ /PDF /Text ] >> -% 1548 0 obj +% 1552 0 obj +<< +/Type /Page +/Contents 1553 0 R +/Resources 1551 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1528 0 R +>> +% 1554 0 obj +<< +/D [1552 0 R /XYZ 149.705 753.953 null] +>> +% 1555 0 obj +<< +/D [1552 0 R /XYZ 150.705 716.092 null] +>> +% 1556 0 obj << -/D [1537 0 R /XYZ 150.705 355.499 null] +/D [1552 0 R /XYZ 150.705 688.251 null] >> -% 1536 0 obj +% 1551 0 obj << -/Font << /F16 558 0 R /F8 561 0 R /F11 755 0 R /F14 772 0 R /F7 770 0 R >> +/Font << /F8 585 0 R /F30 811 0 R >> /ProcSet [ /PDF /Text ] >> -% 1550 0 obj +% 1559 0 obj << /Type /Page -/Contents 1551 0 R -/Resources 1549 0 R +/Contents 1560 0 R +/Resources 1558 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1553 0 R +/Parent 1562 0 R +/Annots [ 1557 0 R ] >> -% 1552 0 obj +% 1557 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [294.721 483.284 361.779 494.409] +/A << /S /GoTo /D (descdata) >> +>> +% 1561 0 obj << -/D [1550 0 R /XYZ 98.895 753.953 null] +/D [1559 0 R /XYZ 98.895 753.953 null] >> -% 396 0 obj +% 380 0 obj << -/D [1550 0 R /XYZ 99.895 716.092 null] +/D [1559 0 R /XYZ 99.895 716.092 null] >> -% 1549 0 obj +% 1558 0 obj << -/Font << /F16 558 0 R /F8 561 0 R >> +/Font << /F16 582 0 R /F30 811 0 R /F27 584 0 R /F8 585 0 R /F11 797 0 R >> /ProcSet [ /PDF /Text ] >> -% 1555 0 obj +% 1565 0 obj << /Type /Page -/Contents 1556 0 R -/Resources 1554 0 R +/Contents 1566 0 R +/Resources 1564 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1553 0 R +/Parent 1562 0 R +/Annots [ 1563 0 R ] >> -% 1557 0 obj +% 1563 0 obj << -/D [1555 0 R /XYZ 149.705 753.953 null] +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [345.53 495.239 412.588 506.364] +/A << /S /GoTo /D (descdata) >> >> -% 400 0 obj +% 1567 0 obj << -/D [1555 0 R /XYZ 150.705 720.077 null] +/D [1565 0 R /XYZ 149.705 753.953 null] >> endstream endobj -1563 0 obj +1573 0 obj << -/Length 4647 +/Length 4991 >> stream 0 g 0 G 0 g 0 G BT -/F16 11.9552 Tf 99.895 706.129 Td [(psb)]TJ +/F16 11.9552 Tf 99.895 706.129 Td [(6.20)-1125(psb)]TJ +ET +q +1 0 0 1 158.311 706.328 cm +[]0 d 0 J 0.398 w 0 0 m 4.035 0 l S +Q +BT +/F16 11.9552 Tf 162.346 706.129 Td [(o)31(wned)]TJ ET q -1 0 0 1 120.951 706.328 cm +1 0 0 1 200.299 706.328 cm []0 d 0 J 0.398 w 0 0 m 4.035 0 l S Q BT -/F16 11.9552 Tf 124.986 706.129 Td [(info)-306(|)-307(Return)-306(information)-306(ab)-31(out)-307(PSBLAS)-306(parallel)-306(en-)]TJ -25.091 -13.948 Td [(vironmen)31(t)]TJ +/F16 11.9552 Tf 204.333 706.129 Td [(index)-375(|)]TJ 0 g 0 G 0 g 0 G -/F30 9.9626 Tf 0 -18.389 Td [(call)-525(psb_info\050icontxt,)-525(iam,)-525(np\051)]TJ/F8 9.9626 Tf 14.944 -21.918 Td [(This)-456(subroutine)-456(returns)-456(inf)1(orma)-1(t)1(ion)-456(ab)-28(out)-456(the)-456(PSBLAS)-456(paral)1(le)-1(l)-455(en)27(viron-)]TJ -14.944 -11.955 Td [(men)28(t,)-334(de\014nin)1(g)-334(a)-333(virtual)-333(parallel)-334(mac)28(hine.)]TJ +/F30 9.9626 Tf -104.438 -18.389 Td [(call)-525(psb_owned_index\050y,)-525(x,)-525(desc_a,)-525(info\051)]TJ 0 g 0 G -/F27 9.9626 Tf 0 -19.925 Td [(T)32(yp)-32(e:)]TJ +/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.926 Td [(On)-383(En)32(try)]TJ 0 g 0 G 0 g 0 G - 0 -19.925 Td [(icon)32(txt)]TJ -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 -/F27 9.9626 Tf -24.907 -21.918 Td [(On)-383(Return)]TJ -0 g 0 G -0 g 0 G - 0 -19.925 Td [(iam)]TJ -0 g 0 G -/F8 9.9626 Tf 23.281 0 Td [(Iden)28(ti\014er)-333(of)-334(curren)28(t)-333(pro)-28(cess)-333(in)-334(the)-333(PSBLAS)-333(virtual)-334(par)1(allel)-334(mac)28(hine.)]TJ 1.626 -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 [(out)]TJ/F8 9.9626 Tf 16.549 0 Td [(.)]TJ -50.035 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(in)28(teger)-333(v)55(alue.)]TJ/F14 9.9626 Tf 134.302 0 Td [(\000)]TJ/F8 9.9626 Tf 7.749 0 Td [(1)]TJ/F14 9.9626 Tf 7.749 0 Td [(\024)]TJ/F11 9.9626 Tf 10.516 0 Td [(iam)]TJ/F14 9.9626 Tf 20.213 0 Td [(\024)]TJ/F11 9.9626 Tf 10.516 0 Td [(np)]TJ/F14 9.9626 Tf 13.206 0 Td [(\000)]TJ/F8 9.9626 Tf 9.963 0 Td [(1)]TJ -0 g 0 G -/F27 9.9626 Tf -239.121 -19.926 Td [(np)]TJ -0 g 0 G -/F8 9.9626 Tf 17.712 0 Td [(Num)28(b)-28(er)-333(of)-334(pro)-27(cesse)-1(s)-333(in)-333(the)-333(PSBLAS)-334(virtual)-333(parallel)-333(mac)27(h)1(ine.)]TJ 7.195 -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.899 0 Td [(.)]TJ -71.51 -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 [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(in)28(teger)-333(v)55(ariable.)]TJ/F16 11.9552 Tf -24.907 -21.918 Td [(Notes)]TJ -0 g 0 G -/F8 9.9626 Tf 12.177 -19.926 Td [(1.)]TJ -0 g 0 G - [-500(F)83(or)-500(pro)-27(cesse)-1(s)-500(in)-500(th)1(e)-501(v)1(irtual)-500(parallel)-500(mac)27(hin)1(e)-501(th)1(e)-501(id)1(e)-1(n)28(ti\014er)-500(will)-500(satisfy)]TJ 12.73 -11.955 Td [(0)]TJ/F14 9.9626 Tf 7.749 0 Td [(\024)]TJ/F11 9.9626 Tf 10.516 0 Td [(iam)]TJ/F14 9.9626 Tf 20.213 0 Td [(\024)]TJ/F11 9.9626 Tf 10.516 0 Td [(np)]TJ/F14 9.9626 Tf 13.206 0 Td [(\000)]TJ/F8 9.9626 Tf 9.963 0 Td [(1;)]TJ -0 g 0 G - -84.893 -19.925 Td [(2.)]TJ -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 -19.925 Td [(x)]TJ 0 g 0 G - -79.452 -174.885 Td [(105)]TJ +/F8 9.9626 Tf 11.028 0 Td [(In)28(teger)-334(indices.)]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 [(in,)-383(inout)]TJ/F8 9.9626 Tf 42.645 0 Td [(.)]TJ -76.131 -11.956 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(scalar)-333(or)-334(a)-333(rank)-333(one)-333(in)27(teger)-333(arra)28(y)83(.)]TJ 0 g 0 G +/F27 9.9626 Tf -24.907 -31.88 Td [(desc)]TJ ET - -endstream -endobj -1569 0 obj -<< -/Length 4355 ->> -stream -0 g 0 G +q +1 0 0 1 121.81 546.469 cm +[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S +Q +BT +/F27 9.9626 Tf 125.247 546.27 Td [(a)]TJ 0 g 0 G +/F8 9.9626 Tf 10.551 0 Td [(the)-333(comm)27(unication)-333(descriptor.)]TJ -10.996 -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.183 0 Td [(required)]TJ/F8 9.9626 Tf 41.899 0 Td [(.)]TJ -67.082 -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 498.649 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +Q BT -/F16 11.9552 Tf 150.705 706.129 Td [(psb)]TJ +/F30 9.9626 Tf 315.174 498.449 Td [(desc)]TJ ET q -1 0 0 1 171.761 706.328 cm -[]0 d 0 J 0.398 w 0 0 m 4.035 0 l S +1 0 0 1 336.723 498.649 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F16 11.9552 Tf 175.796 706.129 Td [(exit)-375(|)-375(Exit)-375(from)-375(PSBLAS)-375(parallel)-375(en)31(vironmen)31(t)]TJ -0 g 0 G -0 g 0 G -/F30 9.9626 Tf -25.091 -18.389 Td [(call)-525(psb_exit\050icontxt\051)]TJ 0 -11.956 Td [(call)-525(psb_exit\050icontxt,close\051)]TJ/F8 9.9626 Tf 14.944 -21.917 Td [(This)-333(subroutine)-334(exits)-333(from)-333(the)-334(PS)1(B)-1(LAS)-333(parallel)-333(virtual)-333(mac)27(hin)1(e)-1(.)]TJ -0 g 0 G -/F27 9.9626 Tf -14.944 -19.926 Td [(T)32(yp)-32(e:)]TJ -0 g 0 G -/F8 9.9626 Tf 33.797 0 Td [(Sync)28(hronous.)]TJ -0 g 0 G -/F27 9.9626 Tf -33.797 -19.925 Td [(On)-383(En)32(try)]TJ +/F30 9.9626 Tf 339.861 498.449 Td [(type)]TJ 0 g 0 G +/F8 9.9626 Tf 20.921 0 Td [(.)]TJ 0 g 0 G - 0 -19.925 Td [(icon)32(txt)]TJ +/F27 9.9626 Tf -260.887 -19.925 Td [(iact)]TJ 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 +/F8 9.9626 Tf 23.281 0 Td [(sp)-28(eci\014es)-333(action)-334(to)-333(b)-28(e)-333(tak)28(en)-334(in)-333(case)-333(of)-334(range)-333(errors.)-444(Scop)-28(e:)]TJ/F27 9.9626 Tf 257.147 0 Td [(global)]TJ/F8 9.9626 Tf -255.521 -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)-255(as:)-405(a)-256(c)28(haracter)-255(v)56(ariable)]TJ/F30 9.9626 Tf 143.584 0 Td [(I)]TJ/F8 9.9626 Tf 5.23 0 Td [(gnore,)]TJ/F30 9.9626 Tf 29.293 0 Td [(W)]TJ/F8 9.9626 Tf 5.23 0 Td [(arning)-255(or)]TJ/F30 9.9626 Tf 41.67 0 Td [(A)]TJ/F8 9.9626 Tf 5.231 0 Td [(b)-28(ort,)-270(default)]TJ/F30 9.9626 Tf 56.741 0 Td [(I)]TJ/F8 9.9626 Tf 5.231 0 Td [(gnore.)]TJ 0 g 0 G -/F27 9.9626 Tf -24.907 -19.925 Td [(close)]TJ +/F27 9.9626 Tf -317.117 -21.918 Td [(On)-383(Return)]TJ 0 g 0 G -/F8 9.9626 Tf 28.754 0 Td [(Whether)-401(to)-401(c)-1(lose)-401(all)-401(data)-401(structures)-402(related)-401(to)-401(the)-401(virtual)-401(parallel)-402(ma-)]TJ -3.847 -11.955 Td [(c)28(hine,)-333(b)-28(esides)-334(those)-333(asso)-28(ciated)-333(with)-334(icon)28(txt.)]TJ 0 -11.956 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.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(optional)]TJ/F8 9.9626 Tf 40.577 0 Td [(.)]TJ -70.188 -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(a)-334(logical)-333(v)55(ariabl)1(e)-1(,)-333(default)-333(v)55(al)1(ue:)-445(true.)]TJ/F16 11.9552 Tf -24.907 -19.925 Td [(Notes)]TJ 0 g 0 G -/F8 9.9626 Tf 12.177 -19.926 Td [(1.)]TJ + 0 -19.926 Td [(y)]TJ 0 g 0 G - [-500(This)-241(routine)-241(ma)28(y)-241(b)-28(e)-241(called)-241(ev)28(en)-241(if)-241(a)-241(previous)-241(call)-241(to)]TJ/F30 9.9626 Tf 233.304 0 Td [(psb_info)]TJ/F8 9.9626 Tf 44.244 0 Td [(has)-241(returned)]TJ -264.818 -11.955 Td [(with)]TJ/F11 9.9626 Tf 22.962 0 Td [(iam)]TJ/F8 9.9626 Tf 20.663 0 Td [(=)]TJ/F14 9.9626 Tf 10.966 0 Td [(\000)]TJ/F8 9.9626 Tf 7.749 0 Td [(1;)-374(indeed,)-367(it)-360(it)-361(is)-360(the)-361(only)-360(routine)-360(that)-361(ma)28(y)-360(b)-28(e)-361(called)-360(with)]TJ -62.34 -11.955 Td [(argumen)28(t)]TJ/F30 9.9626 Tf 44.583 0 Td [(icontxt)]TJ/F8 9.9626 Tf 39.933 0 Td [(in)-333(this)-334(situation)1(.)]TJ +/F8 9.9626 Tf 11.028 0 Td [(A)-294(logical)-294(mask)-294(whic)28(h)-294(is)-294(true)-294(for)-294(all)-294(corresp)-28(onding)-294(en)28(tries)-294(of)]TJ/F11 9.9626 Tf 259.229 0 Td [(x)]TJ/F8 9.9626 Tf 8.623 0 Td [(that)-294(are)-294(o)28(wned)]TJ -253.973 -11.955 Td [(b)28(y)-333(the)-334(curren)28(t)-333(pro)-28(cess)-334(Scop)-27(e:)]TJ/F27 9.9626 Tf 132.752 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -132.752 -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 [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(scalar)-333(or)-334(ran)1(k)-334(one)-333(logical)-333(arra)27(y)84(.)]TJ 0 g 0 G - -97.246 -19.925 Td [(2.)]TJ +/F27 9.9626 Tf -24.907 -19.926 Td [(info)]TJ 0 g 0 G - [-500(A)-305(call)-306(to)-305(this)-305(routine)-305(with)]TJ/F30 9.9626 Tf 128.752 0 Td [(close=.true.)]TJ/F8 9.9626 Tf 65.806 0 Td [(implies)-305(a)-306(call)-305(to)]TJ/F30 9.9626 Tf 71.445 0 Td [(MPI_Finalize)]TJ/F8 9.9626 Tf 62.764 0 Td [(,)]TJ -316.037 -11.956 Td [(after)-333(whic)28(h)-334(no)-333(parallel)-333(routine)-334(ma)28(y)-333(b)-28(e)-333(called.)]TJ +/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/F16 11.9552 Tf -24.907 -21.918 Td [(Notes)]TJ 0 g 0 G - -12.73 -19.925 Td [(3.)]TJ +/F8 9.9626 Tf 12.177 -19.925 Td [(1.)]TJ 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 + [-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 - 139.477 -212.744 Td [(106)]TJ + 141.968 -141.013 Td [(99)]TJ 0 g 0 G ET endstream endobj -1576 0 obj +1579 0 obj << -/Length 2196 +/Length 3263 >> stream 0 g 0 G 0 g 0 G BT -/F16 11.9552 Tf 99.895 706.129 Td [(psb)]TJ +/F16 11.9552 Tf 150.705 706.129 Td [(6.21)-1125(psb)]TJ ET q -1 0 0 1 120.951 706.328 cm +1 0 0 1 209.121 706.328 cm []0 d 0 J 0.398 w 0 0 m 4.035 0 l S Q BT -/F16 11.9552 Tf 124.986 706.129 Td [(get)]TJ +/F16 11.9552 Tf 213.156 706.129 Td [(is)]TJ ET q -1 0 0 1 143.885 706.328 cm +1 0 0 1 223.004 706.328 cm []0 d 0 J 0.398 w 0 0 m 4.035 0 l S Q BT -/F16 11.9552 Tf 147.92 706.129 Td [(mpicomm)-375(|)-375(Get)-375(the)-375(MPI)-375(comm)31(unicator)]TJ +/F16 11.9552 Tf 227.039 706.129 Td [(lo)-31(cal)-375(|)]TJ 0 g 0 G 0 g 0 G -/F30 9.9626 Tf -48.025 -18.389 Td [(icomm)-525(=)-525(psb_get_mpicomm\050icontxt\051)]TJ/F8 9.9626 Tf 14.944 -21.918 Td [(This)-335(subroutine)-335(returns)-335(the)-336(MPI)-335(comm)28(unicator)-335(asso)-28(ciated)-335(with)-335(a)-336(P)1(SBLAS)]TJ -14.944 -11.955 Td [(con)28(text)]TJ +/F30 9.9626 Tf -76.334 -18.389 Td [(call)-525(psb_is_local\050x,)-525(desc_a\051)]TJ 0 g 0 G -/F27 9.9626 Tf 0 -19.926 Td [(T)32(yp)-32(e:)]TJ +/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 +/F27 9.9626 Tf -33.797 -19.926 Td [(On)-383(En)32(try)]TJ 0 g 0 G 0 g 0 G - 0 -19.925 Td [(icon)32(txt)]TJ + 0 -19.925 Td [(x)]TJ 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.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 [(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 +/F8 9.9626 Tf 11.028 0 Td [(In)28(teger)-334(ind)1(e)-1(x.)]TJ 13.878 -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.956 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(scalar)-333(in)28(teg)-1(er.)]TJ 0 g 0 G -/F27 9.9626 Tf -24.907 -21.918 Td [(On)-383(Return)]TJ +/F27 9.9626 Tf -24.906 -31.88 Td [(desc)]TJ +ET +q +1 0 0 1 172.619 546.469 cm +[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S +Q +BT +/F27 9.9626 Tf 176.057 546.27 Td [(a)]TJ 0 g 0 G +/F8 9.9626 Tf 10.55 0 Td [(the)-333(comm)27(unication)-333(descriptor.)]TJ -10.996 -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 [(in)]TJ/F8 9.9626 Tf 9.548 0 Td [(.)]TJ -43.034 -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 362.845 498.649 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +Q +BT +/F30 9.9626 Tf 365.983 498.449 Td [(desc)]TJ +ET +q +1 0 0 1 387.532 498.649 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +Q +BT +/F30 9.9626 Tf 390.67 498.449 Td [(type)]TJ 0 g 0 G - 0 -19.925 Td [(F)96(unction)-384(v)64(alue)]TJ +/F8 9.9626 Tf 20.922 0 Td [(.)]TJ +0 g 0 G +/F27 9.9626 Tf -260.887 -21.917 Td [(On)-383(Return)]TJ +0 g 0 G +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)-314(MPI)-314(comm)28(unicator)-314(ass)-1(o)-27(ciated)-314(with)-314(the)-315(PS)1(B)-1(LAS)-314(vir)1(tual)]TJ -53.48 -11.955 Td [(parallel)-333(mac)27(hin)1(e)-1(.)]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 +/F8 9.9626 Tf 78.386 0 Td [(A)-264(logical)-265(mask)-264(whic)27(h)-264(is)-265(true)-264(if)]TJ/F11 9.9626 Tf 131.492 0 Td [(x)]TJ/F8 9.9626 Tf 8.329 0 Td [(is)-265(lo)-27(cal)-265(to)-264(the)-265(curren)28(t)-264(pro)-28(cess)]TJ -193.301 -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/F16 11.9552 Tf -74.941 -33.873 Td [(Notes)]TJ +0 g 0 G +/F8 9.9626 Tf 12.176 -19.926 Td [(1.)]TJ +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 - 89.442 -366.168 Td [(107)]TJ + 139.477 -264.549 Td [(100)]TJ 0 g 0 G ET endstream endobj -1580 0 obj +1585 0 obj << -/Length 3044 +/Length 4975 >> stream 0 g 0 G 0 g 0 G BT -/F16 11.9552 Tf 150.705 706.129 Td [(psb)]TJ +/F16 11.9552 Tf 99.895 706.129 Td [(6.22)-1125(psb)]TJ ET q -1 0 0 1 171.761 706.328 cm +1 0 0 1 158.311 706.328 cm []0 d 0 J 0.398 w 0 0 m 4.035 0 l S Q BT -/F16 11.9552 Tf 175.796 706.129 Td [(get)]TJ +/F16 11.9552 Tf 162.346 706.129 Td [(lo)-31(cal)]TJ ET q -1 0 0 1 194.695 706.328 cm +1 0 0 1 190.239 706.328 cm []0 d 0 J 0.398 w 0 0 m 4.035 0 l S Q BT -/F16 11.9552 Tf 198.729 706.129 Td [(rank)-375(|)-375(Get)-375(the)-375(MPI)-375(rank)]TJ +/F16 11.9552 Tf 194.274 706.129 Td [(index)-375(|)]TJ 0 g 0 G 0 g 0 G -/F30 9.9626 Tf -48.024 -18.389 Td [(rank)-525(=)-525(psb_get_rank\050icontxt,)-525(id\051)]TJ/F8 9.9626 Tf 14.944 -21.918 Td [(This)-333(subroutine)-334(retu)1(rns)-334(the)-333(MPI)-333(rank)-334(of)-333(the)-333(PSBLAS)-334(pr)1(o)-28(cess)]TJ/F11 9.9626 Tf 274.665 0 Td [(id)]TJ +/F30 9.9626 Tf -94.379 -18.389 Td [(call)-525(psb_local_index\050y,)-525(x,)-525(desc_a,)-525(info\051)]TJ 0 g 0 G -/F27 9.9626 Tf -289.609 -19.926 Td [(T)32(yp)-32(e:)]TJ +/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 [(icon)32(txt)]TJ -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.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.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 -/F27 9.9626 Tf -24.907 -19.925 Td [(id)]TJ -0 g 0 G -/F8 9.9626 Tf 14.529 0 Td [(Iden)28(ti\014er)-333(of)-334(a)-333(pro)-28(cess)-333(in)-334(the)-333(PSBLAS)-333(virtual)-333(parallel)-334(mac)28(hine.)]TJ 10.378 -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.956 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(alue.)-444(0)]TJ/F14 9.9626 Tf 142.05 0 Td [(\024)]TJ/F11 9.9626 Tf 10.516 0 Td [(id)]TJ/F14 9.9626 Tf 11.385 0 Td [(\024)]TJ/F11 9.9626 Tf 10.516 0 Td [(np)]TJ/F14 9.9626 Tf 13.207 0 Td [(\000)]TJ/F8 9.9626 Tf 9.962 0 Td [(1)]TJ -0 g 0 G -/F27 9.9626 Tf -222.543 -21.918 Td [(On)-383(Return)]TJ -0 g 0 G +/F27 9.9626 Tf -33.797 -19.926 Td [(On)-383(En)32(try)]TJ 0 g 0 G - 0 -19.925 Td [(F)96(unciton)-384(v)64(alue)]TJ 0 g 0 G -/F8 9.9626 Tf 78.386 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.618 0 Td [(.)]TJ -292.345 -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 -19.925 Td [(x)]TJ 0 g 0 G - 89.442 -322.333 Td [(108)]TJ +/F8 9.9626 Tf 11.028 0 Td [(In)28(teger)-334(indices.)]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 [(in,)-383(inout)]TJ/F8 9.9626 Tf 42.645 0 Td [(.)]TJ -76.131 -11.956 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(scalar)-333(or)-334(a)-333(rank)-333(one)-333(in)27(teger)-333(arra)28(y)83(.)]TJ 0 g 0 G +/F27 9.9626 Tf -24.907 -31.88 Td [(desc)]TJ ET - -endstream -endobj -1584 0 obj -<< -/Length 1181 ->> -stream -0 g 0 G +q +1 0 0 1 121.81 546.469 cm +[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S +Q +BT +/F27 9.9626 Tf 125.247 546.27 Td [(a)]TJ 0 g 0 G +/F8 9.9626 Tf 10.551 0 Td [(the)-333(comm)27(unication)-333(descriptor.)]TJ -10.996 -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.183 0 Td [(required)]TJ/F8 9.9626 Tf 41.899 0 Td [(.)]TJ -67.082 -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 498.649 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +Q BT -/F16 11.9552 Tf 99.895 706.129 Td [(psb)]TJ +/F30 9.9626 Tf 315.174 498.449 Td [(desc)]TJ ET q -1 0 0 1 120.951 706.328 cm -[]0 d 0 J 0.398 w 0 0 m 4.035 0 l S +1 0 0 1 336.723 498.649 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F16 11.9552 Tf 124.986 706.129 Td [(wtime)-375(|)-375(W)94(all)-375(clo)-32(c)32(k)-375(timing)]TJ +/F30 9.9626 Tf 339.861 498.449 Td [(type)]TJ 0 g 0 G +/F8 9.9626 Tf 20.921 0 Td [(.)]TJ 0 g 0 G -/F30 9.9626 Tf -25.091 -18.389 Td [(time)-525(=)-525(psb_wtime\050\051)]TJ/F8 9.9626 Tf 14.944 -21.918 Td [(This)-474(function)-473(returns)-474(a)-473(w)27(all)-473(clo)-28(c)28(k)-474(timer.)-865(The)-474(resolution)-473(of)-474(the)-473(timer)-474(is)]TJ -14.944 -11.955 Td [(dep)-28(enden)28(t)-333(on)-334(the)-333(underlying)-333(parallel)-333(en)27(vir)1(onme)-1(n)28(t)-333(implemen)28(tation.)]TJ +/F27 9.9626 Tf -260.887 -19.925 Td [(iact)]TJ 0 g 0 G -/F27 9.9626 Tf 0 -19.926 Td [(T)32(yp)-32(e:)]TJ +/F8 9.9626 Tf 23.281 0 Td [(sp)-28(eci\014es)-333(action)-334(to)-333(b)-28(e)-333(tak)28(en)-334(in)-333(case)-333(of)-334(range)-333(errors.)-444(Scop)-28(e:)]TJ/F27 9.9626 Tf 257.147 0 Td [(global)]TJ/F8 9.9626 Tf -255.521 -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)-255(as:)-405(a)-256(c)28(haracter)-255(v)56(ariable)]TJ/F30 9.9626 Tf 143.584 0 Td [(I)]TJ/F8 9.9626 Tf 5.23 0 Td [(gnore,)]TJ/F30 9.9626 Tf 29.293 0 Td [(W)]TJ/F8 9.9626 Tf 5.23 0 Td [(arning)-255(or)]TJ/F30 9.9626 Tf 41.67 0 Td [(A)]TJ/F8 9.9626 Tf 5.231 0 Td [(b)-28(ort,)-270(default)]TJ/F30 9.9626 Tf 56.741 0 Td [(I)]TJ/F8 9.9626 Tf 5.231 0 Td [(gnore.)]TJ 0 g 0 G -/F8 9.9626 Tf 33.797 0 Td [(Async)28(hronous.)]TJ +/F27 9.9626 Tf -317.117 -21.918 Td [(On)-383(Return)]TJ 0 g 0 G -/F27 9.9626 Tf -33.797 -19.925 Td [(On)-383(Exit)]TJ 0 g 0 G + 0 -19.926 Td [(y)]TJ +0 g 0 G +/F8 9.9626 Tf 11.028 0 Td [(A)-346(logical)-345(mask)-346(whic)28(h)-346(is)-345(true)-346(for)-345(all)-346(corresp)-28(onding)-345(en)28(tries)-346(of)]TJ/F11 9.9626 Tf 264.883 0 Td [(x)]TJ/F8 9.9626 Tf 9.136 0 Td [(that)-346(are)-345(lo)-28(cal)]TJ -260.14 -11.955 Td [(to)-333(the)-334(curren)28(t)-333(pro)-28(cess)-333(Scop)-28(e:)]TJ/F27 9.9626 Tf 131.092 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -131.092 -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 [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(scalar)-333(or)-334(ran)1(k)-334(one)-333(logical)-333(arra)27(y)84(.)]TJ 0 g 0 G - 0 -19.925 Td [(F)96(unction)-384(v)64(alue)]TJ +/F27 9.9626 Tf -24.907 -19.926 Td [(info)]TJ 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 +/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/F16 11.9552 Tf -24.907 -21.918 Td [(Notes)]TJ +0 g 0 G +/F8 9.9626 Tf 12.177 -19.925 Td [(1.)]TJ 0 g 0 G - -5.368 -491.698 Td [(109)]TJ + [-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 + 139.477 -141.013 Td [(101)]TJ 0 g 0 G ET endstream endobj -1589 0 obj +1591 0 obj << -/Length 1474 +/Length 3846 >> stream 0 g 0 G 0 g 0 G BT -/F16 11.9552 Tf 150.705 706.129 Td [(psb)]TJ +/F16 11.9552 Tf 150.705 706.129 Td [(6.23)-1125(psb)]TJ +ET +q +1 0 0 1 209.121 706.328 cm +[]0 d 0 J 0.398 w 0 0 m 4.035 0 l S +Q +BT +/F16 11.9552 Tf 213.156 706.129 Td [(get)]TJ ET q -1 0 0 1 171.761 706.328 cm +1 0 0 1 232.054 706.328 cm []0 d 0 J 0.398 w 0 0 m 4.035 0 l S Q BT -/F16 11.9552 Tf 175.796 706.129 Td [(barrier)-375(|)-375(Sinc)31(hronization)-375(p)-31(oin)31(t)-375(parallel)-375(en)32(vironmen)31(t)]TJ +/F16 11.9552 Tf 236.089 706.129 Td [(b)-31(oundary)-543(|)-542(Extract)-543(list)-542(of)-543(b)-31(oundary)-543(ele-)]TJ -48.024 -13.948 Td [(men)31(ts)]TJ 0 g 0 G 0 g 0 G -/F30 9.9626 Tf -25.091 -18.389 Td [(call)-525(psb_barrier\050icontxt\051)]TJ/F8 9.9626 Tf 14.944 -21.918 Td [(This)-398(subroutine)-397(acts)-398(as)-398(an)-398(explicit)-398(sync)28(hronization)-397(p)-28(oin)28(t)-398(for)-398(the)-398(PSBLAS)]TJ -14.944 -11.955 Td [(parallel)-333(virtual)-333(mac)27(hine.)]TJ +/F30 9.9626 Tf -37.36 -18.389 Td [(call)-525(psb_get_boundary\050bndel,)-525(desc,)-525(info\051)]TJ 0 g 0 G -/F27 9.9626 Tf 0 -19.926 Td [(T)32(yp)-32(e:)]TJ +/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 [(Sync)28(hronous.)]TJ +/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 [(icon)32(txt)]TJ -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 - 139.476 -455.832 Td [(110)]TJ + 0 -19.926 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 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 [(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 - -endstream -endobj -1593 0 obj -<< -/Length 1360 ->> -stream -0 g 0 G -0 g 0 G +q +1 0 0 1 362.845 564.402 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +Q BT -/F16 11.9552 Tf 99.895 706.129 Td [(psb)]TJ +/F30 9.9626 Tf 365.983 564.203 Td [(desc)]TJ ET q -1 0 0 1 120.951 706.328 cm -[]0 d 0 J 0.398 w 0 0 m 4.035 0 l S +1 0 0 1 387.532 564.402 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F16 11.9552 Tf 124.986 706.129 Td [(ab)-31(ort)-375(|)-375(Ab)-32(ort)-375(a)-374(computation)]TJ +/F30 9.9626 Tf 390.67 564.203 Td [(type)]TJ 0 g 0 G +/F8 9.9626 Tf 20.922 0 Td [(.)]TJ 0 g 0 G -/F30 9.9626 Tf -25.091 -18.389 Td [(call)-525(psb_abort\050icontxt\051)]TJ/F8 9.9626 Tf 14.944 -21.918 Td [(This)-333(subroutine)-334(ab)-27(orts)-334(computation)-333(on)-333(the)-334(paral)1(le)-1(l)-333(virtual)-333(mac)28(hine.)]TJ +/F27 9.9626 Tf -260.887 -21.918 Td [(On)-383(Return)]TJ 0 g 0 G -/F27 9.9626 Tf -14.944 -19.926 Td [(T)32(yp)-32(e:)]TJ 0 g 0 G -/F8 9.9626 Tf 33.797 0 Td [(Async)28(hronous.)]TJ + 0 -19.925 Td [(bndel)]TJ +0 g 0 G +/F8 9.9626 Tf 32.51 0 Td [(The)-268(list)-267(of)-268(b)-27(oundary)-268(elemen)28(ts)-268(on)-267(the)-268(calling)-267(pro)-28(cess,)-281(in)-267(lo)-28(cal)-268(n)28(um)28(b)-28(ering.)]TJ -7.604 -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 [(Sp)-28(eci\014ed)-456(as:)-691(a)-457(rank)-456(one)-457(arra)28(y)-457(with)-456(the)-457(ALLOCA)84(T)83(ABLE)-456(attribute,)-488(of)]TJ 0 -11.955 Td [(t)28(yp)-28(e)-333(in)27(teger.)]TJ +0 g 0 G +/F27 9.9626 Tf -24.906 -31.881 Td [(info)]TJ +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/F16 11.9552 Tf -24.906 -21.918 Td [(Notes)]TJ 0 g 0 G -/F27 9.9626 Tf -33.797 -19.925 Td [(On)-383(En)32(try)]TJ +/F8 9.9626 Tf 12.176 -19.925 Td [(1.)]TJ 0 g 0 G + [-500(If)-269(there)-269(are)-269(no)-269(b)-28(oundary)-269(elemen)28(ts)-269(\050i.e.,)-282(if)-269(the)-269(lo)-28(cal)-269(part)-269(of)-269(the)-270(connectivit)28(y)]TJ 12.73 -11.956 Td [(graph)-449(is)-450(self-con)28(tained\051)-450(the)-449(output)-450(v)28(ector)-449(is)-450(set)-449(to)-450(the)-449(\134not)-450(allo)-28(cated")]TJ 0 -11.955 Td [(state.)]TJ 0 g 0 G - 0 -19.925 Td [(icon)32(txt)]TJ + -12.73 -19.925 Td [(2.)]TJ 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 + [-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.955 Td [(ary)-333(elemen)27(ts.)]TJ 0 g 0 G - 139.477 -467.787 Td [(111)]TJ + 139.477 -194.811 Td [(102)]TJ 0 g 0 G ET endstream endobj -1597 0 obj +1598 0 obj << -/Length 4533 +/Length 3666 >> stream 0 g 0 G 0 g 0 G BT -/F16 11.9552 Tf 150.705 706.129 Td [(psb)]TJ +/F16 11.9552 Tf 99.895 706.129 Td [(6.24)-1125(psb)]TJ +ET +q +1 0 0 1 158.311 706.328 cm +[]0 d 0 J 0.398 w 0 0 m 4.035 0 l S +Q +BT +/F16 11.9552 Tf 162.346 706.129 Td [(get)]TJ ET q -1 0 0 1 171.761 706.328 cm +1 0 0 1 181.245 706.328 cm []0 d 0 J 0.398 w 0 0 m 4.035 0 l S Q BT -/F16 11.9552 Tf 175.796 706.129 Td [(b)-31(cast)-375(|)-375(Broadcast)-375(data)]TJ +/F16 11.9552 Tf 185.28 706.129 Td [(o)31(v)31(erlap)-375(|)-375(Extract)-375(list)-375(of)-375(o)32(v)31(erlap)-375(elemen)31(ts)]TJ 0 g 0 G 0 g 0 G -/F30 9.9626 Tf -25.091 -18.389 Td [(call)-525(psb_bcast\050icontxt,)-525(dat,)-525(root\051)]TJ/F8 9.9626 Tf 14.944 -21.918 Td [(This)-338(subroutine)-338(implemen)27(ts)-338(a)-338(broadcast)-338(op)-28(eration)-338(based)-339(on)-338(the)-338(underlying)]TJ -14.944 -11.955 Td [(comm)28(unication)-334(lib)1(rary)83(.)]TJ +/F30 9.9626 Tf -85.385 -18.389 Td [(call)-525(psb_get_overlap\050ovrel,)-525(desc,)-525(info\051)]TJ 0 g 0 G -/F27 9.9626 Tf 0 -19.926 Td [(T)32(yp)-32(e:)]TJ +/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 [(Sync)28(hronous.)]TJ +/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 +/F27 9.9626 Tf -33.797 -19.926 Td [(On)-383(En)32(try)]TJ 0 g 0 G 0 g 0 G - 0 -19.925 Td [(icon)32(txt)]TJ + 0 -19.925 Td [(desc)]TJ 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 +/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 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.183 0 Td [(required)]TJ/F8 9.9626 Tf 41.899 0 Td [(.)]TJ -67.082 -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 578.35 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +Q +BT +/F30 9.9626 Tf 315.174 578.15 Td [(desc)]TJ +ET +q +1 0 0 1 336.723 578.35 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +Q +BT +/F30 9.9626 Tf 339.861 578.15 Td [(type)]TJ 0 g 0 G -/F27 9.9626 Tf -24.907 -19.925 Td [(dat)]TJ +/F8 9.9626 Tf 20.921 0 Td [(.)]TJ 0 g 0 G -/F8 9.9626 Tf 21.371 0 Td [(On)-333(the)-334(ro)-27(ot)-334(pro)-27(ces)-1(s,)-333(the)-333(data)-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.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 [(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)-403(a)-403(rank)-404(1)-403(or)-403(2)-403(arra)28(y)83(,)-421(or)-403(a)-403(c)28(haracter)-404(or)-403(logical)-403(v)56(ariable,)-421(whic)28(h)-403(ma)27(y)-403(b)-28(e)]TJ 0 -11.955 Td [(a)-426(s)-1(calar)-426(or)-426(rank)-427(1)-426(arra)27(y)84(.)-1151(T)28(yp)-28(e,)-449(kind,)-450(rank)-427(and)-426(size)-427(m)28(ust)-426(agree)-427(on)-426(all)]TJ 0 -11.955 Td [(pro)-28(cesses.)]TJ +/F27 9.9626 Tf -260.887 -21.917 Td [(On)-383(Return)]TJ 0 g 0 G -/F27 9.9626 Tf -24.907 -19.926 Td [(ro)-32(ot)]TJ 0 g 0 G -/F8 9.9626 Tf 25.93 0 Td [(Ro)-28(ot)-333(pro)-28(cess)-333(holding)-334(data)-333(to)-333(b)-28(e)-333(broadcast.)]TJ -1.023 -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.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(optional)]TJ/F8 9.9626 Tf 40.577 0 Td [(.)]TJ -70.188 -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(alue)-333(0)]TJ/F11 9.9626 Tf 138.176 0 Td [(<)]TJ/F8 9.9626 Tf 7.749 0 Td [(=)]TJ/F11 9.9626 Tf 10.516 0 Td [(r)-28(oot)-278(<)]TJ/F8 9.9626 Tf 28.543 0 Td [(=)]TJ/F11 9.9626 Tf 10.516 0 Td [(np)]TJ/F14 9.9626 Tf 13.207 0 Td [(\000)]TJ/F8 9.9626 Tf 9.962 0 Td [(1,)-333(default)-334(0)]TJ + 0 -19.926 Td [(o)32(vrel)]TJ 0 g 0 G -/F27 9.9626 Tf -243.576 -21.918 Td [(On)-383(Return)]TJ +/F8 9.9626 Tf 29.591 0 Td [(The)-333(list)-334(of)-333(o)28(v)28(erlap)-334(elemen)28(ts)-333(on)-334(the)-333(calling)-333(pro)-28(cess,)-333(in)-334(lo)-28(cal)-333(n)28(um)28(b)-28(ering.)]TJ -4.684 -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 [(Sp)-28(eci\014ed)-456(as:)-691(a)-457(rank)-456(one)-457(arra)28(y)-456(with)-457(the)-457(ALLOCA)84(T)83(ABLE)-456(attribute,)-488(of)]TJ 0 -11.955 Td [(t)28(yp)-28(e)-333(in)28(te)-1(ger.)]TJ 0 g 0 G +/F27 9.9626 Tf -24.907 -31.881 Td [(info)]TJ 0 g 0 G - 0 -19.926 Td [(dat)]TJ +/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.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(detecte)-1(d)1(.)]TJ/F16 11.9552 Tf -24.907 -21.917 Td [(Notes)]TJ 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 +/F8 9.9626 Tf 12.177 -19.926 Td [(1.)]TJ +0 g 0 G + [-500(If)-343(there)-343(are)-344(no)-343(o)28(v)28(erlap)-344(elemen)28(ts)-343(the)-343(output)-344(v)28(ector)-343(is)-343(set)-344(to)-343(the)-343(\134not)-343(allo-)]TJ 12.73 -11.955 Td [(cated")-333(state.)]TJ +0 g 0 G + -12.73 -19.925 Td [(2.)]TJ +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 - 139.477 -170.9 Td [(112)]TJ + 139.477 -220.714 Td [(103)]TJ 0 g 0 G ET endstream endobj -1601 0 obj +1606 0 obj << -/Length 5146 +/Length 5828 >> stream 0 g 0 G 0 g 0 G BT -/F16 11.9552 Tf 99.895 706.129 Td [(psb)]TJ +/F16 11.9552 Tf 150.705 706.129 Td [(6.25)-1125(psb)]TJ ET q -1 0 0 1 120.951 706.328 cm +1 0 0 1 209.121 706.328 cm []0 d 0 J 0.398 w 0 0 m 4.035 0 l S Q BT -/F16 11.9552 Tf 124.986 706.129 Td [(sum)-375(|)-375(Global)-375(sum)]TJ +/F16 11.9552 Tf 213.156 706.129 Td [(sp)]TJ +ET +q +1 0 0 1 226.74 706.328 cm +[]0 d 0 J 0.398 w 0 0 m 4.035 0 l S +Q +BT +/F16 11.9552 Tf 230.775 706.129 Td [(getro)31(w)-433(|)-433(E)-1(xtract)-433(ro)31(w\050s\051)-433(from)-434(a)-433(sparse)-433(ma-)]TJ -42.71 -13.948 Td [(trix)]TJ 0 g 0 G 0 g 0 G -/F30 9.9626 Tf -25.091 -18.389 Td [(call)-525(psb_sum\050icontxt,)-525(dat,)-525(root\051)]TJ/F8 9.9626 Tf 14.944 -21.918 Td [(This)-318(subroutine)-319(implemen)28(ts)-318(a)-319(sum)-318(reduction)-318(op)-28(eration)-318(based)-319(on)-318(the)-318(under-)]TJ -14.944 -11.955 Td [(lying)-333(comm)27(unication)-333(library)84(.)]TJ +/F30 9.9626 Tf -37.36 -18.389 Td [(call)-525(psb_sp_getrow\050row,)-525(a,)-525(nz,)-525(ia,)-525(ja,)-525(val,)-525(info,)-525(&)]TJ 73.225 -11.955 Td [(&)-525(append,)-525(nzin,)-525(lrw\051)]TJ 0 g 0 G -/F27 9.9626 Tf 0 -19.926 Td [(T)32(yp)-32(e:)]TJ +/F27 9.9626 Tf -73.225 -20.298 Td [(T)32(yp)-32(e:)]TJ 0 g 0 G -/F8 9.9626 Tf 33.797 0 Td [(Sync)28(hronous.)]TJ +/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 +/F27 9.9626 Tf -33.797 -19.277 Td [(On)-383(En)32(try)]TJ 0 g 0 G 0 g 0 G - 0 -19.925 Td [(icon)32(txt)]TJ + 0 -19.277 Td [(ro)32(w)]TJ 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.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 [(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 +/F8 9.9626 Tf 23.384 0 Td [(The)-333(\050\014rst\051)-334(ro)28(w)-333(to)-334(b)-27(e)-334(extracted.)]TJ 1.523 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 27.95 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -27.95 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.183 0 Td [(required)]TJ/F8 9.9626 Tf -25.183 -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:)-444(an)-334(in)28(teger)]TJ/F11 9.9626 Tf 104.69 0 Td [(>)]TJ/F8 9.9626 Tf 10.517 0 Td [(0.)]TJ 0 g 0 G -/F27 9.9626 Tf -24.907 -19.925 Td [(dat)]TJ +/F27 9.9626 Tf -140.114 -19.277 Td [(a)]TJ 0 g 0 G -/F8 9.9626 Tf 21.371 0 Td [(The)-333(lo)-28(cal)-334(con)28(tribution)-333(to)-333(the)-334(global)-333(sum.)]TJ 3.536 -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 [(inout)]TJ/F8 9.9626 Tf 26.096 0 Td [(.)]TJ -59.582 -11.955 Td [(Sp)-28(eci\014ed)-339(as:)-458(an)-339(in)28(te)-1(ger,)-341(real)-340(or)-339(complex)-340(v)56(ariable,)-342(whic)28(h)-340(ma)28(y)-339(b)-28(e)-340(a)-340(scalar,)]TJ 0 -11.955 Td [(or)-464(a)-464(rank)-463(1)-464(or)-464(2)-464(arra)28(y)83(.)-1299(T)28(yp)-28(e,)-497(kind,)-496(rank)-464(and)-463(size)-464(m)27(ust)-463(agree)-464(on)-464(all)]TJ 0 -11.955 Td [(pro)-28(cesses.)]TJ +/F8 9.9626 Tf 10.551 0 Td [(the)-333(matrix)-334(from)-333(whic)28(h)-333(to)-334(get)-333(ro)28(ws.)]TJ 14.356 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 27.95 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -27.95 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.183 0 Td [(required)]TJ/F8 9.9626 Tf -25.183 -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(a)-334(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 488.266 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +Q +BT +/F30 9.9626 Tf 365.983 488.067 Td [(Tspmat)]TJ +ET +q +1 0 0 1 397.993 488.266 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +Q +BT +/F30 9.9626 Tf 401.131 488.067 Td [(type)]TJ 0 g 0 G -/F27 9.9626 Tf -24.907 -19.926 Td [(ro)-32(ot)]TJ +/F8 9.9626 Tf 20.921 0 Td [(.)]TJ 0 g 0 G -/F8 9.9626 Tf 25.931 0 Td [(Pro)-28(cess)-310(to)-309(hold)-310(the)-310(\014nal)-310(sum,)-314(or)]TJ/F14 9.9626 Tf 144.053 0 Td [(\000)]TJ/F8 9.9626 Tf 7.748 0 Td [(1)-310(to)-310(mak)28(e)-310(it)-309(a)27(v)56(ailable)-310(on)-310(all)-309(pro)-28(cesses.)]TJ -152.825 -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 [(optional)]TJ/F8 9.9626 Tf 40.577 0 Td [(.)]TJ -70.188 -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)-333(v)55(alue)]TJ/F14 9.9626 Tf 130.428 0 Td [(\000)]TJ/F8 9.9626 Tf 7.749 0 Td [(1)]TJ/F11 9.9626 Tf 7.748 0 Td [(<)]TJ/F8 9.9626 Tf 7.749 0 Td [(=)]TJ/F11 9.9626 Tf 10.516 0 Td [(r)-28(oot)-278(<)]TJ/F8 9.9626 Tf 28.543 0 Td [(=)]TJ/F11 9.9626 Tf 10.517 0 Td [(np)]TJ/F14 9.9626 Tf 13.206 0 Td [(\000)]TJ/F8 9.9626 Tf 9.962 0 Td [(1,)-333(default)-334(-1.)]TJ +/F27 9.9626 Tf -271.347 -19.277 Td [(app)-32(end)]TJ 0 g 0 G -/F27 9.9626 Tf -251.325 -21.918 Td [(On)-383(Return)]TJ +/F8 9.9626 Tf 41.58 0 Td [(Whether)-333(to)-334(app)-27(end)-334(or)-333(o)28(v)28(erwrite)-334(existing)-333(output.)]TJ -16.674 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 27.951 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -27.951 -11.956 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.184 0 Td [(optional)]TJ/F8 9.9626 Tf -25.184 -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(logical)-333(v)55(alue)-333(default:)-444(false)-334(\050o)28(v)28(erwrite\051.)]TJ 0 g 0 G +/F27 9.9626 Tf -24.906 -19.277 Td [(nzin)]TJ 0 g 0 G - 0 -19.925 Td [(dat)]TJ +/F8 9.9626 Tf 25.986 0 Td [(Input)-333(size)-334(to)-333(b)-28(e)-333(app)-28(ended)-333(to.)]TJ -1.08 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 27.951 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -27.951 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.184 0 Td [(optional)]TJ/F8 9.9626 Tf -25.184 -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)-398(as:)-573(an)-398(in)28(teger)]TJ/F11 9.9626 Tf 107.908 0 Td [(>)]TJ/F8 9.9626 Tf 11.588 0 Td [(0.)-638(When)-398(app)-28(end)-398(is)-397(true,)-414(s)-1(p)-27(eci\014es)-398(ho)28(w)-398(man)27(y)]TJ -119.496 -11.955 Td [(en)28(tries)-334(in)-333(the)-333(output)-333(v)27(ectors)-333(are)-333(already)-334(\014lled.)]TJ 0 g 0 G -/F8 9.9626 Tf 21.372 0 Td [(On)-333(destination)-333(pro)-28(cess\050es\051,)-334(the)-333(result)-333(of)-334(the)-333(sum)-333(op)-28(eration.)]TJ 3.535 -11.956 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.899 0 Td [(.)]TJ -71.51 -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)-339(as:)-458(an)-339(in)28(te)-1(ger,)-341(real)-340(or)-339(complex)-340(v)56(ariable,)-342(whic)28(h)-340(ma)28(y)-339(b)-28(e)-340(a)-340(scalar,)]TJ 0 -11.955 Td [(or)-333(a)-334(rank)-333(1)-333(or)-334(2)-333(arra)28(y)83(.)]TJ 0 -11.955 Td [(T)28(yp)-28(e,)-333(kind,)-334(r)1(ank)-334(and)-333(size)-333(m)27(ust)-333(agree)-333(on)-334(all)-333(pro)-28(cesses.)]TJ/F16 11.9552 Tf -24.907 -21.918 Td [(Notes)]TJ +/F27 9.9626 Tf -24.906 -19.277 Td [(lrw)]TJ 0 g 0 G -/F8 9.9626 Tf 12.177 -19.925 Td [(1.)]TJ +/F8 9.9626 Tf 21.156 0 Td [(The)-333(last)-334(ro)28(w)-333(to)-334(b)-27(e)-334(extracted.)]TJ 3.75 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 27.951 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -27.951 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.184 0 Td [(optional)]TJ/F8 9.9626 Tf -25.184 -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)]TJ/F11 9.9626 Tf 104.691 0 Td [(>)]TJ/F8 9.9626 Tf 10.516 0 Td [(0,)-333(default:)]TJ/F11 9.9626 Tf 48.43 0 Td [(r)-28(ow)]TJ/F8 9.9626 Tf 17.001 0 Td [(.)]TJ 0 g 0 G - [-500(The)]TJ/F30 9.9626 Tf 32.469 0 Td [(dat)]TJ/F8 9.9626 Tf 18.273 0 Td [(argumen)28(t)-259(is)-259(b)-28(oth)-259(input)-259(and)-259(output,)-274(and)-259(its)-259(v)55(alue)-259(ma)28(y)-259(b)-28(e)-259(c)28(hanged)]TJ -38.012 -11.956 Td [(ev)28(en)-334(on)-333(pro)-28(cesses)-333(di\013eren)28(t)-334(from)-333(the)-333(\014nal)-334(result)-333(destination.)]TJ +/F27 9.9626 Tf -205.544 -20.297 Td [(On)-383(Return)]TJ 0 g 0 G - -12.73 -19.925 Td [(2.)]TJ 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 -19.277 Td [(nz)]TJ +0 g 0 G +/F8 9.9626 Tf 16.438 0 Td [(the)-333(n)27(u)1(m)27(b)-27(e)-1(r)-333(of)-333(elemen)28(ts)-334(returned)-333(b)28(y)-334(thi)1(s)-334(call.)]TJ 8.468 -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.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 [(Returned)-333(as:)-445(an)-333(in)28(teger)-334(scalar.)]TJ +0 g 0 G +/F27 9.9626 Tf -24.906 -19.277 Td [(ia)]TJ +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 - 99.986 -109.132 Td [(113)]TJ + -91.988 -29.887 Td [(104)]TJ 0 g 0 G ET endstream endobj -1607 0 obj +1610 0 obj << -/Length 5185 +/Length 3702 >> stream 0 g 0 G 0 g 0 G -BT -/F16 11.9552 Tf 150.705 706.129 Td [(psb)]TJ -ET -q -1 0 0 1 171.761 706.328 cm -[]0 d 0 J 0.398 w 0 0 m 4.035 0 l S -Q -BT -/F16 11.9552 Tf 175.796 706.129 Td [(max)-375(|)-375(Global)-375(maxim)31(um)]TJ -0 g 0 G -0 g 0 G -/F30 9.9626 Tf -25.091 -18.389 Td [(call)-525(psb_max\050icontxt,)-525(dat,)-525(root\051)]TJ/F8 9.9626 Tf 14.944 -21.918 Td [(This)-326(subroutine)-326(implemen)28(ts)-326(a)-326(maxim)27(um)-326(v)56(aluereduction)-326(op)-28(eration)-326(based)-326(on)]TJ -14.944 -11.955 Td [(the)-333(underlying)-333(com)-1(m)28(unication)-333(library)83(.)]TJ -0 g 0 G -/F27 9.9626 Tf 0 -19.926 Td [(T)32(yp)-32(e:)]TJ -0 g 0 G -/F8 9.9626 Tf 33.797 0 Td [(Sync)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 [(icon)32(txt)]TJ -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 -/F27 9.9626 Tf -24.907 -19.925 Td [(dat)]TJ +BT +/F27 9.9626 Tf 99.895 706.129 Td [(ja)]TJ 0 g 0 G -/F8 9.9626 Tf 21.371 0 Td [(The)-333(lo)-28(cal)-333(c)-1(on)28(tribution)-333(to)-333(the)-334(gl)1(obal)-334(maxim)28(um.)]TJ 3.536 -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.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 [(inout)]TJ/F8 9.9626 Tf 26.097 0 Td [(.)]TJ -59.582 -11.955 Td [(Sp)-28(eci\014ed)-326(as:)-442(an)-326(in)27(teger)-326(or)-327(real)-327(v)56(ariable,)-328(whic)28(h)-327(ma)28(y)-327(b)-28(e)-327(a)-326(s)-1(calar,)-328(or)-326(a)-327(rank)]TJ 0 -11.955 Td [(1)-333(or)-334(2)-333(arra)28(y)83(.)-778(T)28(yp)-27(e)-1(,)-333(kind,)-333(rank)-333(and)-334(size)-333(m)28(ust)-334(agree)-333(on)-333(all)-334(pro)-27(cesse)-1(s.)]TJ +/F8 9.9626 Tf 14.052 0 Td [(the)-333(column)-334(indices)-333(of)-333(the)-334(elemen)28(ts)-333(to)-334(b)-27(e)-334(inserted.)]TJ 10.855 -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.183 0 Td [(required)]TJ/F8 9.9626 Tf 41.899 0 Td [(.)]TJ -67.082 -11.956 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)-333(as:)-445(an)-333(in)28(teger)-333(arra)27(y)-333(with)-333(the)]TJ/F30 9.9626 Tf 170.61 0 Td [(ALLOCATABLE)]TJ/F8 9.9626 Tf 60.855 0 Td [(attribute.)]TJ 0 g 0 G -/F27 9.9626 Tf -24.907 -19.925 Td [(ro)-32(ot)]TJ +/F27 9.9626 Tf -256.372 -19.925 Td [(v)64(al)]TJ 0 g 0 G -/F8 9.9626 Tf 25.93 0 Td [(Pro)-28(cess)-305(to)-306(hold)-305(the)-305(\014nal)-305(m)-1(ax)1(im)27(um,)-311(or)]TJ/F14 9.9626 Tf 169.158 0 Td [(\000)]TJ/F8 9.9626 Tf 7.749 0 Td [(1)-305(to)-306(mak)28(e)-305(it)-306(a)28(v)56(ailable)-306(on)-305(all)-305(pro-)]TJ -177.93 -11.956 Td [(cesses.)]TJ 0 -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 [(optional)]TJ/F8 9.9626 Tf 40.577 0 Td [(.)]TJ -70.188 -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:)-445(an)-333(in)28(teger)-333(v)55(alue)]TJ/F14 9.9626 Tf 130.427 0 Td [(\000)]TJ/F8 9.9626 Tf 7.749 0 Td [(1)]TJ/F11 9.9626 Tf 7.749 0 Td [(<)]TJ/F8 9.9626 Tf 7.749 0 Td [(=)]TJ/F11 9.9626 Tf 10.516 0 Td [(r)-28(oot)-278(<)]TJ/F8 9.9626 Tf 28.543 0 Td [(=)]TJ/F11 9.9626 Tf 10.516 0 Td [(np)]TJ/F14 9.9626 Tf 13.206 0 Td [(\000)]TJ/F8 9.9626 Tf 9.963 0 Td [(1,)-333(default)-334(-1.)]TJ +/F8 9.9626 Tf 19.144 0 Td [(the)-333(elemen)27(ts)-333(to)-333(b)-28(e)-333(inserted.)]TJ 5.763 -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.183 0 Td [(required)]TJ/F8 9.9626 Tf 41.899 0 Td [(.)]TJ -67.082 -11.956 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)-333(as:)-445(a)-333(real)-333(arra)28(y)-334(with)-333(the)]TJ/F30 9.9626 Tf 151.515 0 Td [(ALLOCATABLE)]TJ/F8 9.9626 Tf 60.855 0 Td [(attribute.)]TJ 0 g 0 G -/F27 9.9626 Tf -251.325 -33.873 Td [(On)-383(Return)]TJ +/F27 9.9626 Tf -237.277 -19.925 Td [(info)]TJ 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/F16 11.9552 Tf -24.907 -21.918 Td [(Notes)]TJ 0 g 0 G - 0 -19.926 Td [(dat)]TJ +/F8 9.9626 Tf 12.177 -19.925 Td [(1.)]TJ 0 g 0 G -/F8 9.9626 Tf 21.371 0 Td [(On)-333(destination)-334(pr)1(o)-28(cess\050es)-1(\051,)-333(the)-333(result)-333(of)-334(the)-333(maxim)28(um)-334(op)-27(eration.)]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 [(in)]TJ/F8 9.9626 Tf 9.548 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-326(as)-1(:)-441(an)-326(in)27(teger)-326(or)-327(real)-327(v)56(ariable,)-328(whic)28(h)-327(ma)28(y)-327(b)-28(e)-327(a)-326(s)-1(calar,)-328(or)-326(a)-327(rank)]TJ 0 -11.955 Td [(1)-333(or)-334(2)-333(arra)28(y)83(.)-778(T)28(yp)-27(e)-1(,)-333(kind,)-333(rank)-333(and)-334(size)-333(m)28(ust)-334(agree)-333(on)-333(all)-334(pro)-27(cesse)-1(s.)]TJ/F16 11.9552 Tf -24.907 -21.918 Td [(Notes)]TJ + [-500(The)-368(output)]TJ/F11 9.9626 Tf 66.552 0 Td [(nz)]TJ/F8 9.9626 Tf 14.717 0 Td [(is)-368(alw)28(a)28(ys)-368(the)-368(size)-368(of)-368(the)-368(output)-368(generated)-367(b)27(y)-367(the)-368(curren)28(t)]TJ -68.539 -11.955 Td [(call;)-314(th)28(us,)-309(if)]TJ/F30 9.9626 Tf 54.123 0 Td [(append=.true.)]TJ/F8 9.9626 Tf 67.995 0 Td [(,)-310(the)-303(total)-304(output)-304(size)-304(will)-303(b)-28(e)]TJ/F11 9.9626 Tf 128.95 0 Td [(nz)-44(in)]TJ/F8 9.9626 Tf 22.088 0 Td [(+)]TJ/F11 9.9626 Tf 9.373 0 Td [(nz)]TJ/F8 9.9626 Tf 11.051 0 Td [(,)-310(with)]TJ -293.58 -11.955 Td [(the)-372(newly)-372(extracted)-372(co)-28(e\016cien)28(ts)-372(stored)-372(in)-372(en)28(tries)]TJ/F30 9.9626 Tf 216.307 0 Td [(nzin+1:nzin+nz)]TJ/F8 9.9626 Tf 76.93 0 Td [(of)-372(the)]TJ -293.237 -11.955 Td [(arra)28(y)-333(argume)-1(n)28(ts;)]TJ 0 g 0 G -/F8 9.9626 Tf 12.177 -19.925 Td [(1.)]TJ + -12.73 -19.926 Td [(2.)]TJ 0 g 0 G - [-500(The)]TJ/F30 9.9626 Tf 32.469 0 Td [(dat)]TJ/F8 9.9626 Tf 18.272 0 Td [(argumen)28(t)-259(is)-259(b)-28(oth)-259(input)-259(and)-259(output,)-274(and)-259(its)-259(v)55(alue)-259(ma)28(y)-259(b)-28(e)-259(c)28(hanged)]TJ -38.011 -11.956 Td [(ev)28(en)-334(on)-333(pro)-28(cesses)-333(di\013eren)28(t)-334(from)-333(the)-333(\014nal)-334(result)-333(destination.)]TJ + [-500(When)]TJ/F30 9.9626 Tf 41.788 0 Td [(append=.true.)]TJ/F8 9.9626 Tf 71.315 0 Td [(the)-333(output)-334(arr)1(a)27(ys)-333(are)-333(reallo)-28(cated)-334(as)-333(necessary;)]TJ 0 g 0 G - -12.73 -19.925 Td [(2.)]TJ + -113.103 -19.925 Td [(3.)]TJ 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 + [-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 - 99.987 -109.132 Td [(114)]TJ + 139.477 -290.909 Td [(105)]TJ 0 g 0 G ET endstream endobj -1613 0 obj +1620 0 obj << -/Length 5160 +/Length 4138 >> stream 0 g 0 G 0 g 0 G BT -/F16 11.9552 Tf 99.895 706.129 Td [(psb)]TJ +/F16 11.9552 Tf 150.705 706.129 Td [(6.26)-1125(psb)]TJ ET q -1 0 0 1 120.951 706.328 cm +1 0 0 1 209.121 706.328 cm []0 d 0 J 0.398 w 0 0 m 4.035 0 l S Q BT -/F16 11.9552 Tf 124.986 706.129 Td [(min)-375(|)-375(Global)-375(minim)31(um)]TJ +/F16 11.9552 Tf 213.156 706.129 Td [(sizeof)-375(|)-375(Memory)-375(o)-31(ccupation)]TJ/F8 9.9626 Tf -62.451 -18.389 Td [(This)-333(function)-334(computes)-333(the)-333(memory)-334(o)-27(c)-1(cup)1(ation)-334(of)-333(a)-333(PSBLAS)-334(ob)-55(ject.)]TJ 0 g 0 G 0 g 0 G -/F30 9.9626 Tf -25.091 -18.389 Td [(call)-525(psb_min\050icontxt,)-525(dat,)-525(root\051)]TJ/F8 9.9626 Tf 14.944 -21.918 Td [(This)-311(subroutine)-312(implemen)28(ts)-311(a)-312(minim)28(um)-312(v)56(alue)-311(reduction)-312(op)-27(eration)-312(based)-311(on)]TJ -14.944 -11.955 Td [(the)-333(underlying)-334(comm)28(unication)-333(library)83(.)]TJ -0 g 0 G -/F27 9.9626 Tf 0 -19.926 Td [(T)32(yp)-32(e:)]TJ +/F30 9.9626 Tf 0 -21.918 Td [(isz)-525(=)-525(psb_sizeof\050a\051)]TJ 0 -11.955 Td [(isz)-525(=)-525(psb_sizeof\050desc_a\051)]TJ 0 -11.956 Td [(isz)-525(=)-525(psb_sizeof\050prec\051)]TJ 0 g 0 G -/F8 9.9626 Tf 33.797 0 Td [(Sync)28(hronous.)]TJ +/F27 9.9626 Tf 0 -21.917 Td [(T)32(yp)-32(e:)]TJ 0 g 0 G -/F27 9.9626 Tf -33.797 -19.925 Td [(On)-383(En)32(try)]TJ +/F8 9.9626 Tf 33.797 0 Td [(Async)28(hronous.)]TJ 0 g 0 G +/F27 9.9626 Tf -33.797 -19.926 Td [(On)-383(En)32(try)]TJ 0 g 0 G - 0 -19.925 Td [(icon)32(txt)]TJ 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.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 [(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 -19.925 Td [(a)]TJ 0 g 0 G -/F27 9.9626 Tf -24.907 -19.925 Td [(dat)]TJ +/F8 9.9626 Tf 10.551 0 Td [(A)-333(sparse)-334(matrix)]TJ/F11 9.9626 Tf 73.225 0 Td [(A)]TJ/F8 9.9626 Tf 7.472 0 Td [(.)]TJ -66.342 -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 [(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 532.522 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +Q +BT +/F30 9.9626 Tf 365.983 532.322 Td [(Tspmat)]TJ +ET +q +1 0 0 1 397.993 532.522 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +Q +BT +/F30 9.9626 Tf 401.131 532.322 Td [(type)]TJ 0 g 0 G -/F8 9.9626 Tf 21.371 0 Td [(The)-333(lo)-28(cal)-334(con)28(tribution)-333(to)-333(the)-334(global)-333(minim)28(um.)]TJ 3.536 -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.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 [(inout)]TJ/F8 9.9626 Tf 26.096 0 Td [(.)]TJ -59.582 -11.955 Td [(Sp)-28(eci\014ed)-326(as)-1(:)-441(an)-326(in)27(teger)-326(or)-327(real)-327(v)56(ariable,)-328(whic)28(h)-327(ma)28(y)-327(b)-28(e)-327(a)-327(scalar,)-328(or)-326(a)-327(rank)]TJ 0 -11.955 Td [(1)-333(or)-334(2)-333(arra)28(y)83(.)-778(T)28(yp)-28(e,)-333(kind,)-333(rank)-333(and)-334(size)-333(m)28(ust)-334(agree)-333(on)-333(all)-334(pro)-27(cess)-1(es.)]TJ +/F8 9.9626 Tf 20.921 0 Td [(.)]TJ 0 g 0 G -/F27 9.9626 Tf -24.907 -19.925 Td [(ro)-32(ot)]TJ +/F27 9.9626 Tf -271.347 -19.925 Td [(desc)]TJ +ET +q +1 0 0 1 172.619 512.596 cm +[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S +Q +BT +/F27 9.9626 Tf 176.057 512.397 Td [(a)]TJ 0 g 0 G -/F8 9.9626 Tf 25.931 0 Td [(Pro)-28(cess)-276(to)-276(hold)-276(the)-276(\014nal)-275(v)55(alue,)-287(or)]TJ/F14 9.9626 Tf 146.411 0 Td [(\000)]TJ/F8 9.9626 Tf 7.749 0 Td [(1)-276(to)-276(mak)28(e)-276(it)-276(a)28(v)55(ailable)-276(on)-276(all)-276(p)1(ro)-28(cesses.)]TJ -155.184 -11.956 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 [(optional)]TJ/F8 9.9626 Tf 40.577 0 Td [(.)]TJ -70.188 -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)-333(v)55(alue)]TJ/F14 9.9626 Tf 130.428 0 Td [(\000)]TJ/F8 9.9626 Tf 7.749 0 Td [(1)]TJ/F11 9.9626 Tf 7.748 0 Td [(<)]TJ/F8 9.9626 Tf 7.749 0 Td [(=)]TJ/F11 9.9626 Tf 10.516 0 Td [(r)-28(oot)-278(<)]TJ/F8 9.9626 Tf 28.543 0 Td [(=)]TJ/F11 9.9626 Tf 10.517 0 Td [(np)]TJ/F14 9.9626 Tf 13.206 0 Td [(\000)]TJ/F8 9.9626 Tf 9.962 0 Td [(1,)-333(default)-334(-1.)]TJ +/F8 9.9626 Tf 10.55 0 Td [(Comm)28(unication)-334(descriptor.)]TJ -10.996 -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.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 362.845 464.776 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +Q +BT +/F30 9.9626 Tf 365.983 464.576 Td [(desc)]TJ +ET +q +1 0 0 1 387.532 464.776 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +Q +BT +/F30 9.9626 Tf 390.67 464.576 Td [(type)]TJ 0 g 0 G -/F27 9.9626 Tf -251.325 -33.873 Td [(On)-383(Return)]TJ +/F8 9.9626 Tf 20.922 0 Td [(.)]TJ 0 g 0 G +/F27 9.9626 Tf -260.887 -19.925 Td [(prec)]TJ 0 g 0 G - 0 -19.925 Td [(dat)]TJ +/F8 9.9626 Tf 26.408 0 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.378 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -33.879 -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 [(in)]TJ/F8 9.9626 Tf 9.548 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-444(a)-334(preconditioner)-333(data)-333(structure)]TJ +0 0 1 rg 0 0 1 RG +/F30 9.9626 Tf 197.537 0 Td [(psb)]TJ +ET +q +1 0 0 1 389.467 408.985 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +Q +BT +/F30 9.9626 Tf 392.606 408.786 Td [(prec)]TJ +ET +q +1 0 0 1 414.155 408.985 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +Q +BT +/F30 9.9626 Tf 417.293 408.786 Td [(type)]TJ 0 g 0 G -/F8 9.9626 Tf 21.372 0 Td [(On)-333(destination)-333(pro)-28(cess\050es\051,)-334(the)-333(result)-333(of)-334(the)-333(minim)28(um)-334(op)-27(eration.)]TJ 3.535 -11.956 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.899 0 Td [(.)]TJ -71.51 -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)-326(as)-1(:)-441(an)-326(in)27(teger)-326(or)-327(real)-327(v)56(ariable,)-328(whic)28(h)-327(ma)28(y)-327(b)-28(e)-327(a)-327(scalar,)-328(or)-326(a)-327(rank)]TJ 0 -11.955 Td [(1)-333(or)-334(2)-333(arra)28(y)83(.)]TJ 0 -11.955 Td [(T)28(yp)-28(e,)-333(kind,)-334(r)1(ank)-334(and)-333(size)-333(m)27(ust)-333(agree)-333(on)-334(all)-333(pro)-28(cesses.)]TJ/F16 11.9552 Tf -24.907 -21.918 Td [(Notes)]TJ +/F8 9.9626 Tf 20.921 0 Td [(.)]TJ 0 g 0 G -/F8 9.9626 Tf 12.177 -19.925 Td [(1.)]TJ +/F27 9.9626 Tf -287.509 -19.926 Td [(On)-383(Return)]TJ 0 g 0 G - [-500(The)]TJ/F30 9.9626 Tf 32.469 0 Td [(dat)]TJ/F8 9.9626 Tf 18.273 0 Td [(argumen)28(t)-259(is)-259(b)-28(oth)-259(input)-259(and)-259(output,)-274(and)-259(its)-259(v)55(alue)-259(ma)28(y)-259(b)-28(e)-259(c)28(hanged)]TJ -38.012 -11.956 Td [(ev)28(en)-334(on)-333(pro)-28(cesses)-333(di\013eren)28(t)-334(from)-333(the)-333(\014nal)-334(result)-333(destination.)]TJ 0 g 0 G - -12.73 -19.925 Td [(2.)]TJ + 0 -19.925 Td [(F)96(unction)-384(v)64(alue)]TJ 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 +/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 - 99.986 -109.132 Td [(115)]TJ + -63.207 -242.632 Td [(106)]TJ 0 g 0 G ET endstream endobj -1620 0 obj +1624 0 obj << -/Length 5277 +/Length 5773 >> stream 0 g 0 G 0 g 0 G BT -/F16 11.9552 Tf 150.705 706.129 Td [(psb)]TJ +/F16 11.9552 Tf 99.895 706.129 Td [(6.27)-1125(Sorting)-375(utilities)-375(|)]TJ 0 -19.593 Td [(psb)]TJ +ET +q +1 0 0 1 120.951 686.736 cm +[]0 d 0 J 0.398 w 0 0 m 4.035 0 l S +Q +BT +/F16 11.9552 Tf 124.986 686.536 Td [(msort)-375(|)-375(Sorting)-375(b)31(y)-375(the)-375(Merge-sort)-375(algorithm)]TJ -25.091 -12.601 Td [(psb)]TJ +ET +q +1 0 0 1 120.951 674.134 cm +[]0 d 0 J 0.398 w 0 0 m 4.035 0 l S +Q +BT +/F16 11.9552 Tf 124.986 673.935 Td [(qsort)-375(|)-375(Sorting)-375(b)31(y)-375(the)-375(Quic)31(ksort)-375(algorithm)]TJ -25.091 -12.602 Td [(psb)]TJ ET q -1 0 0 1 171.761 706.328 cm +1 0 0 1 120.951 661.532 cm []0 d 0 J 0.398 w 0 0 m 4.035 0 l S Q BT -/F16 11.9552 Tf 175.796 706.129 Td [(amx)-375(|)-375(Global)-375(maxim)31(um)-375(absolute)-375(v)63(alue)]TJ +/F16 11.9552 Tf 124.986 661.333 Td [(hsort)-375(|)-375(Sorting)-375(b)31(y)-375(the)-375(Heapsort)-375(algorithm)]TJ 0 g 0 G 0 g 0 G -/F30 9.9626 Tf -25.091 -18.389 Td [(call)-525(psb_amx\050icontxt,)-525(dat,)-525(root\051)]TJ/F8 9.9626 Tf 14.944 -21.918 Td [(This)-312(subroutine)-312(implemen)28(ts)-313(a)-312(maxim)28(um)-312(absolute)-312(v)55(alue)-312(reduction)-312(op)-28(eration)]TJ -14.944 -11.955 Td [(based)-333(on)-334(the)-333(underlying)-333(comm)28(unication)-334(library)84(.)]TJ +/F30 9.9626 Tf -25.091 -22.511 Td [(call)-525(psb_msort\050x,ix,dir,flag\051)]TJ 0 -11.955 Td [(call)-525(psb_qsort\050x,ix,dir,flag\051)]TJ 0 -11.955 Td [(call)-525(psb_hsort\050x,ix,dir,flag\051)]TJ/F8 9.9626 Tf 14.944 -21.865 Td [(These)-332(serial)-332(rou)1(tines)-332(sort)-332(a)-332(sequence)]TJ/F11 9.9626 Tf 162.708 0 Td [(X)]TJ/F8 9.9626 Tf 12.34 0 Td [(in)28(to)-332(ascending)-332(or)-331(descending)-332(order.)]TJ -189.992 -11.955 Td [(The)-320(argumen)28(t)-321(meaning)-320(is)-320(iden)28(tical)-320(for)-320(the)-321(thr)1(e)-1(e)-320(calls;)-324(the)-321(on)1(ly)-321(di\013erence)-320(is)-320(the)]TJ 0 -11.955 Td [(algorithm)-333(used)-334(to)-333(accomplish)-333(the)-334(task)-333(\050see)-334(Usage)-333(Notes)-333(b)-28(elo)28(w\051.)]TJ 0 g 0 G -/F27 9.9626 Tf 0 -19.926 Td [(T)32(yp)-32(e:)]TJ +/F27 9.9626 Tf 0 -21.865 Td [(T)32(yp)-32(e:)]TJ 0 g 0 G -/F8 9.9626 Tf 33.797 0 Td [(Sync)28(hronous.)]TJ +/F8 9.9626 Tf 33.797 0 Td [(Async)28(hronous.)]TJ +0 g 0 G +/F27 9.9626 Tf -33.797 -22.511 Td [(On)-383(En)32(try)]TJ +0 g 0 G +0 g 0 G + 0 -22.511 Td [(x)]TJ +0 g 0 G +/F8 9.9626 Tf 11.028 0 Td [(The)-333(sequence)-334(to)-333(b)-28(e)-333(sorted.)]TJ 13.879 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.183 0 Td [(required)]TJ/F8 9.9626 Tf 41.899 0 Td [(.)]TJ -67.082 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(in)28(teger,)-333(real)-334(or)-333(complex)-333(arra)27(y)-333(of)-333(rank)-333(1.)]TJ 0 g 0 G -/F27 9.9626 Tf -33.797 -19.925 Td [(On)-383(En)32(try)]TJ +/F27 9.9626 Tf -24.907 -22.511 Td [(ix)]TJ 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 25.183 0 Td [(optional)]TJ/F8 9.9626 Tf 40.577 0 Td [(.)]TJ -65.76 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(in)28(teger)-333(arra)27(y)-333(of)-333(\050at)-333(le)-1(ast\051)-333(the)-333(same)-334(size)-333(as)]TJ/F11 9.9626 Tf 258.559 0 Td [(X)]TJ/F8 9.9626 Tf 9.035 0 Td [(.)]TJ 0 g 0 G - 0 -19.925 Td [(icon)32(txt)]TJ +/F27 9.9626 Tf -292.501 -22.511 Td [(dir)]TJ 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 +/F8 9.9626 Tf 19.248 0 Td [(The)-333(desired)-334(ordering.)]TJ 5.659 -11.956 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 [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(in)28(teger)-333(v)55(alue:)]TJ 0 g 0 G -/F27 9.9626 Tf -24.907 -19.925 Td [(dat)]TJ +/F27 9.9626 Tf 0 -22.511 Td [(In)32(teger)-383(and)-384(real)-383(data:)]TJ 0 g 0 G -/F8 9.9626 Tf 21.371 0 Td [(The)-333(lo)-28(cal)-333(c)-1(on)28(tribution)-333(to)-333(the)-334(gl)1(obal)-334(maxim)28(um.)]TJ 3.536 -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.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 [(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)-464(a)-464(ran)1(k)-464(1)-464(or)-464(2)-464(arra)28(y)83(.)-1299(T)28(yp)-28(e,)-497(kind)1(,)-497(rank)-464(and)-463(size)-464(m)27(ust)-463(agree)-464(on)-464(all)]TJ 0 -11.955 Td [(pro)-28(cesses.)]TJ +/F30 9.9626 Tf 114.397 0 Td [(psb_sort_up_)]TJ/F8 9.9626 Tf 62.764 0 Td [(,)]TJ/F30 9.9626 Tf 5.203 0 Td [(psb_sort_down_)]TJ/F8 9.9626 Tf 73.224 0 Td [(,)]TJ/F30 9.9626 Tf 5.203 0 Td [(psb_asort_up_)]TJ/F8 9.9626 Tf 67.994 0 Td [(,)]TJ/F30 9.9626 Tf -306.867 -11.955 Td [(psb_asort_down_)]TJ/F8 9.9626 Tf 78.455 0 Td [(;)-333(default)]TJ/F30 9.9626 Tf 39.574 0 Td [(psb_sort_up_)]TJ/F8 9.9626 Tf 62.764 0 Td [(.)]TJ 0 g 0 G -/F27 9.9626 Tf -24.907 -19.926 Td [(ro)-32(ot)]TJ +/F27 9.9626 Tf -202.711 -17.233 Td [(Complex)-383(data:)]TJ 0 g 0 G -/F8 9.9626 Tf 25.93 0 Td [(Pro)-28(cess)-276(to)-276(hold)-276(the)-276(\014nal)-276(v)56(alue,)-287(or)]TJ/F14 9.9626 Tf 146.411 0 Td [(\000)]TJ/F8 9.9626 Tf 7.749 0 Td [(1)-276(to)-276(mak)28(e)-276(it)-276(a)28(v)55(ailable)-276(on)-276(all)-276(pr)1(o)-28(cesses)-1(.)]TJ -155.183 -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.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(optional)]TJ/F8 9.9626 Tf 40.577 0 Td [(.)]TJ -70.188 -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(alue)]TJ/F14 9.9626 Tf 130.427 0 Td [(\000)]TJ/F8 9.9626 Tf 7.749 0 Td [(1)]TJ/F11 9.9626 Tf 7.749 0 Td [(<)]TJ/F8 9.9626 Tf 7.748 0 Td [(=)]TJ/F11 9.9626 Tf 10.517 0 Td [(r)-28(oot)-278(<)]TJ/F8 9.9626 Tf 28.543 0 Td [(=)]TJ/F11 9.9626 Tf 10.516 0 Td [(np)]TJ/F14 9.9626 Tf 13.206 0 Td [(\000)]TJ/F8 9.9626 Tf 9.963 0 Td [(1,)-333(default)-334(-1.)]TJ +/F30 9.9626 Tf 78.338 0 Td [(psb_lsort_up_)]TJ/F8 9.9626 Tf 67.994 0 Td [(,)]TJ/F30 9.9626 Tf 5.203 0 Td [(psb_lsort_down_)]TJ/F8 9.9626 Tf 78.455 0 Td [(,)]TJ/F30 9.9626 Tf 5.203 0 Td [(psb_asort_up_)]TJ/F8 9.9626 Tf 67.994 0 Td [(,)]TJ/F30 9.9626 Tf 5.203 0 Td [(psb_asort_down_)]TJ/F8 9.9626 Tf 78.455 0 Td [(;)]TJ -364.927 -11.955 Td [(default)]TJ/F30 9.9626 Tf 33.485 0 Td [(psb_lsort_up_)]TJ/F8 9.9626 Tf 67.995 0 Td [(.)]TJ 0 g 0 G -/F27 9.9626 Tf -251.325 -33.873 Td [(On)-383(Return)]TJ +/F27 9.9626 Tf -148.305 -22.511 Td [(\015ag)]TJ 0 g 0 G +/F8 9.9626 Tf 22.645 0 Td [(Whether)-333(to)-334(k)28(eep)-333(the)-333(original)-334(v)56(alues)-333(in)]TJ/F11 9.9626 Tf 170.582 0 Td [(I)-78(X)]TJ/F8 9.9626 Tf 14.197 0 Td [(.)]TJ -182.517 -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.956 Td [(Sp)-28(eci\014ed)-222(as:)-389(an)-222(in)28(teger)-222(v)55(alue)]TJ/F30 9.9626 Tf 125.446 0 Td [(psb_sort_ovw_idx_)]TJ/F8 9.9626 Tf 91.13 0 Td [(or)]TJ/F30 9.9626 Tf 11.097 0 Td [(psb_sort_keep_idx_)]TJ/F8 9.9626 Tf 94.147 0 Td [(;)]TJ -321.82 -11.955 Td [(default)]TJ/F30 9.9626 Tf 33.486 0 Td [(psb_sort_ovw_idx_)]TJ/F8 9.9626 Tf 88.915 0 Td [(.)]TJ 0 g 0 G - 0 -19.926 Td [(dat)]TJ +/F27 9.9626 Tf -147.308 -24.503 Td [(On)-383(Return)]TJ 0 g 0 G -/F8 9.9626 Tf 21.371 0 Td [(On)-333(destination)-334(p)1(ro)-28(cess\050es)-1(\051)1(,)-334(the)-333(result)-333(of)-334(the)-333(maxim)28(um)-334(op)-27(eration.)]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)-464(a)-464(ran)1(k)-464(1)-464(or)-464(2)-464(arra)28(y)83(.)-1299(T)28(yp)-28(e,)-497(kind)1(,)-497(rank)-464(and)-463(size)-464(m)27(ust)-463(agree)-464(on)-464(all)]TJ 0 -11.956 Td [(pro)-28(cesses.)]TJ/F16 11.9552 Tf -24.907 -21.917 Td [(Notes)]TJ 0 g 0 G -/F8 9.9626 Tf 12.177 -19.926 Td [(1.)]TJ + 0 -22.511 Td [(x)]TJ 0 g 0 G - [-500(The)]TJ/F30 9.9626 Tf 32.469 0 Td [(dat)]TJ/F8 9.9626 Tf 18.272 0 Td [(argumen)28(t)-259(is)-259(b)-28(oth)-259(input)-259(and)-259(output,)-274(and)-259(its)-259(v)55(alue)-259(ma)28(y)-259(b)-28(e)-259(c)28(hanged)]TJ -38.011 -11.955 Td [(ev)28(en)-334(on)-333(pro)-28(cesses)-333(di\013eren)28(t)-334(from)-333(the)-333(\014nal)-334(result)-333(destination.)]TJ +/F8 9.9626 Tf 11.028 0 Td [(The)-333(sequence)-334(of)-333(v)55(alues,)-333(in)-333(the)-334(c)28(hosen)-333(ordering.)]TJ 13.879 -11.956 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.183 0 Td [(required)]TJ/F8 9.9626 Tf 41.899 0 Td [(.)]TJ -67.082 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(in)28(teger,)-333(real)-334(or)-333(complex)-333(arra)27(y)-333(of)-333(rank)-333(1.)]TJ 0 g 0 G - -12.73 -19.925 Td [(2.)]TJ +/F27 9.9626 Tf -24.907 -22.511 Td [(ix)]TJ 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 +/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 - 99.987 -97.177 Td [(116)]TJ + -3.176 -43.727 Td [(107)]TJ 0 g 0 G ET endstream endobj -1626 0 obj +1628 0 obj << -/Length 5248 +/Length 6992 >> stream 0 g 0 G 0 g 0 G BT -/F16 11.9552 Tf 99.895 706.129 Td [(psb)]TJ -ET -q -1 0 0 1 120.951 706.328 cm -[]0 d 0 J 0.398 w 0 0 m 4.035 0 l S -Q -BT -/F16 11.9552 Tf 124.986 706.129 Td [(amn)-375(|)-375(Global)-375(minim)31(um)-375(absolute)-375(v)63(alue)]TJ +/F16 11.9552 Tf 150.705 706.129 Td [(Notes)]TJ 0 g 0 G +/F8 9.9626 Tf 12.176 -19.925 Td [(1.)]TJ 0 g 0 G -/F30 9.9626 Tf -25.091 -18.389 Td [(call)-525(psb_amn\050icontxt,)-525(dat,)-525(root\051)]TJ/F8 9.9626 Tf 14.944 -21.918 Td [(This)-336(s)-1(u)1(broutine)-337(implemen)28(ts)-337(a)-336(minim)28(um)-337(absolute)-336(v)55(alue)-336(reduction)-336(op)-28(eration)]TJ -14.944 -11.955 Td [(based)-333(on)-334(the)-333(underlying)-333(comm)28(unication)-334(library)84(.)]TJ + [-500(F)83(or)-466(in)28(te)-1(ger)-466(or)-467(real)-466(data)-467(the)-467(sorting)-466(can)-467(b)-28(e)-466(p)-28(erformed)-467(in)-466(the)-467(up/do)28(wn)]TJ 12.73 -11.956 Td [(direction,)-333(on)-334(the)-333(natural)-333(or)-333(absolute)-334(v)56(alues;)]TJ 0 g 0 G -/F27 9.9626 Tf 0 -19.926 Td [(T)32(yp)-32(e:)]TJ + -12.73 -19.925 Td [(2.)]TJ 0 g 0 G -/F8 9.9626 Tf 33.797 0 Td [(Sync)28(hronous.)]TJ + [-500(F)83(or)-397(complex)-398(data)-398(the)-397(sorting)-398(can)-398(b)-27(e)-398(done)-398(in)-397(a)-398(lexicographic)-398(order)-397(\050i.e.:)]TJ 12.73 -11.955 Td [(sort)-316(on)-316(the)-315(real)-316(part)-316(with)-316(ties)-316(brok)28(en)-316(according)-315(to)-316(the)-316(imaginary)-316(part\051)-315(or)]TJ 0 -11.955 Td [(on)-333(the)-334(absolute)-333(v)56(alues;)]TJ 0 g 0 G -/F27 9.9626 Tf -33.797 -19.925 Td [(On)-383(En)32(try)]TJ + -12.73 -19.925 Td [(3.)]TJ 0 g 0 G + [-500(The)-257(routines)-258(return)-257(the)-257(items)-257(in)-258(the)-257(c)28(hosen)-258(or)1(dering;)-283(the)-257(output)-257(di\013erence)]TJ 12.73 -11.956 Td [(is)-259(the)-259(handling)-259(of)-259(ties)-259(\050i.e.)-419(items)-259(with)-259(an)-259(equal)-259(v)55(alu)1(e)-1(\051)-258(in)-259(the)-259(original)-259(input.)]TJ 0 -11.955 Td [(With)-493(the)-493(merge-sort)-493(algorithm)-493(ties)-493(are)-493(preserv)27(ed)-493(in)-493(the)-493(same)-493(relativ)28(e)]TJ 0 -11.955 Td [(order)-405(as)-406(they)-405(had)-406(in)-405(the)-406(or)1(iginal)-406(sequence,)-423(while)-406(this)-405(is)-406(not)-405(guaran)28(teed)]TJ 0 -11.955 Td [(for)-333(quic)28(ks)-1(or)1(t)-334(or)-333(heapsort;)]TJ 0 g 0 G - 0 -19.925 Td [(icon)32(txt)]TJ + -12.73 -19.925 Td [(4.)]TJ 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.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 [(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 + [-500(If)]TJ/F11 9.9626 Tf 21.89 0 Td [(f)-108(l)-19(ag)]TJ/F8 9.9626 Tf 22.261 0 Td [(=)]TJ/F11 9.9626 Tf 10.516 0 Td [(psb)]TJ +ET +q +1 0 0 1 232.104 542.941 cm +[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +Q +BT +/F11 9.9626 Tf 235.093 542.742 Td [(sor)-28(t)]TJ +ET +q +1 0 0 1 253.559 542.941 cm +[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +Q +BT +/F11 9.9626 Tf 256.548 542.742 Td [(ov)-36(w)]TJ +ET +q +1 0 0 1 274.562 542.941 cm +[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +Q +BT +/F11 9.9626 Tf 277.55 542.742 Td [(idx)]TJ +ET +q +1 0 0 1 292.46 542.941 cm +[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +Q +BT +/F8 9.9626 Tf 297.966 542.742 Td [(then)-253(the)-252(en)27(tries)-252(in)]TJ/F11 9.9626 Tf 80.169 0 Td [(ix)]TJ/F8 9.9626 Tf 9.126 0 Td [(\0501)-278(:)]TJ/F11 9.9626 Tf 17.158 0 Td [(n)]TJ/F8 9.9626 Tf 5.98 0 Td [(\051)-253(where)]TJ/F11 9.9626 Tf 34.397 0 Td [(n)]TJ/F8 9.9626 Tf 8.498 0 Td [(is)-253(the)-252(size)]TJ -277.683 -11.956 Td [(of)]TJ/F11 9.9626 Tf 11.911 0 Td [(x)]TJ/F8 9.9626 Tf 9.579 0 Td [(are)-390(initialized)-390(to)]TJ/F11 9.9626 Tf 76.439 0 Td [(ix)]TJ/F8 9.9626 Tf 9.127 0 Td [(\050)]TJ/F11 9.9626 Tf 3.874 0 Td [(i)]TJ/F8 9.9626 Tf 3.432 0 Td [(\051)]TJ/F14 9.9626 Tf 7.582 0 Td [(\040)]TJ/F11 9.9626 Tf 13.67 0 Td [(i)]TJ/F8 9.9626 Tf 3.432 0 Td [(;)-418(th)28(us,)-405(u)1(p)-28(on)-390(return)-390(from)-390(the)-390(subroutine,)]TJ -139.046 -11.955 Td [(for)-333(eac)27(h)-333(index)]TJ/F11 9.9626 Tf 64.505 0 Td [(i)]TJ/F8 9.9626 Tf 6.752 0 Td [(w)28(e)-333(ha)27(v)28(e)-333(in)]TJ/F11 9.9626 Tf 49.256 0 Td [(ix)]TJ/F8 9.9626 Tf 9.126 0 Td [(\050)]TJ/F11 9.9626 Tf 3.875 0 Td [(i)]TJ/F8 9.9626 Tf 3.432 0 Td [(\051)-333(the)-333(p)-28(osition)-333(that)-333(the)-334(item)]TJ/F11 9.9626 Tf 123.751 0 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(\050)]TJ/F11 9.9626 Tf 3.874 0 Td [(i)]TJ/F8 9.9626 Tf 3.432 0 Td [(\051)-333(o)-28(ccupied)]TJ -273.697 -11.955 Td [(in)-333(the)-334(original)-333(data)-333(sequence;)]TJ 0 g 0 G -/F27 9.9626 Tf -24.907 -19.925 Td [(dat)]TJ + -12.73 -19.925 Td [(5.)]TJ 0 g 0 G -/F8 9.9626 Tf 21.371 0 Td [(The)-333(lo)-28(cal)-334(con)28(tribution)-333(to)-333(the)-334(global)-333(minim)28(um.)]TJ 3.536 -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.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 [(inout)]TJ/F8 9.9626 Tf 26.096 0 Td [(.)]TJ -59.582 -11.955 Td [(Sp)-28(eci\014ed)-339(as:)-458(an)-339(in)28(te)-1(ger,)-341(real)-340(or)-339(complex)-340(v)56(ariable,)-342(whic)28(h)-340(ma)28(y)-339(b)-28(e)-340(a)-340(scalar,)]TJ 0 -11.955 Td [(or)-464(a)-464(rank)-463(1)-464(or)-464(2)-464(arra)28(y)83(.)-1299(T)28(yp)-28(e,)-497(kind,)-496(rank)-464(and)-463(size)-464(m)27(ust)-463(agree)-464(on)-464(all)]TJ 0 -11.955 Td [(pro)-28(cesses.)]TJ + [-500(If)]TJ/F11 9.9626 Tf 23.404 0 Td [(f)-108(l)-19(ag)]TJ/F8 9.9626 Tf 23.446 0 Td [(=)]TJ/F11 9.9626 Tf 11.701 0 Td [(psb)]TJ +ET +q +1 0 0 1 235.988 487.15 cm +[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +Q +BT +/F11 9.9626 Tf 238.977 486.951 Td [(sor)-28(t)]TJ +ET +q +1 0 0 1 257.443 487.15 cm +[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +Q +BT +/F11 9.9626 Tf 260.432 486.951 Td [(k)-31(ee)-1(p)]TJ +ET +q +1 0 0 1 280.82 487.15 cm +[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +Q +BT +/F11 9.9626 Tf 283.809 486.951 Td [(idx)]TJ +ET +q +1 0 0 1 298.718 487.15 cm +[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +Q +BT +/F8 9.9626 Tf 305.739 486.951 Td [(the)-405(routine)-404(will)-405(assume)-405(that)-404(the)-405(en)28(tries)-405(in)]TJ/F11 9.9626 Tf -130.128 -11.955 Td [(ix)]TJ/F8 9.9626 Tf 9.127 0 Td [(\050:\051)-333(ha)28(v)27(e)-333(already)-333(b)-28(een)-333(initialized)-334(b)28(y)-333(the)-333(use)-1(r;)]TJ 0 g 0 G -/F27 9.9626 Tf -24.907 -19.926 Td [(ro)-32(ot)]TJ + -21.857 -19.926 Td [(6.)]TJ 0 g 0 G -/F8 9.9626 Tf 25.931 0 Td [(Pro)-28(cess)-276(to)-276(hold)-276(the)-276(\014nal)-275(v)55(alue,)-287(or)]TJ/F14 9.9626 Tf 146.411 0 Td [(\000)]TJ/F8 9.9626 Tf 7.749 0 Td [(1)-276(to)-276(mak)28(e)-276(it)-276(a)28(v)55(ailable)-276(on)-276(all)-276(p)1(ro)-28(cesses.)]TJ -155.184 -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 [(optional)]TJ/F8 9.9626 Tf 40.577 0 Td [(.)]TJ -70.188 -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)-333(v)55(alue)]TJ/F14 9.9626 Tf 130.428 0 Td [(\000)]TJ/F8 9.9626 Tf 7.749 0 Td [(1)]TJ/F11 9.9626 Tf 7.748 0 Td [(<)]TJ/F8 9.9626 Tf 7.749 0 Td [(=)]TJ/F11 9.9626 Tf 10.516 0 Td [(r)-28(oot)-278(<)]TJ/F8 9.9626 Tf 28.543 0 Td [(=)]TJ/F11 9.9626 Tf 10.517 0 Td [(np)]TJ/F14 9.9626 Tf 13.206 0 Td [(\000)]TJ/F8 9.9626 Tf 9.962 0 Td [(1,)-333(default)-334(-1.)]TJ + [-500(The)-376(three)-375(sorting)-376(algorithms)-376(ha)28(v)28(e)-376(a)-376(similar)]TJ/F11 9.9626 Tf 208.295 0 Td [(O)]TJ/F8 9.9626 Tf 7.876 0 Td [(\050)]TJ/F11 9.9626 Tf 3.875 0 Td [(n)]TJ/F8 9.9626 Tf 7.64 0 Td [(log)]TJ/F11 9.9626 Tf 14.529 0 Td [(n)]TJ/F8 9.9626 Tf 5.98 0 Td [(\051)-376(exp)-27(ec)-1(t)1(e)-1(d)-375(running)]TJ -235.465 -11.955 Td [(time;)-349(in)-343(the)-344(a)28(v)28(erage)-344(case)-344(qu)1(ic)27(ksort)-343(will)-344(b)-28(e)-343(the)-344(fastest)-343(and)-344(merge-sort)-343(the)]TJ 0 -11.955 Td [(slo)28(w)27(est.)-444(Ho)28(w)27(ev)28(er)-333(note)-333(that:)]TJ 0 g 0 G -/F27 9.9626 Tf -251.325 -33.873 Td [(On)-383(Return)]TJ + 4.207 -19.925 Td [(\050a\051)]TJ 0 g 0 G + [-500(The)-419(w)28(orst)-419(case)-419(run)1(ning)-419(time)-419(for)-419(qui)1(c)27(ksort)-418(is)]TJ/F11 9.9626 Tf 221.058 0 Td [(O)]TJ/F8 9.9626 Tf 7.876 0 Td [(\050)]TJ/F11 9.9626 Tf 3.875 0 Td [(n)]TJ/F7 6.9738 Tf 5.98 3.615 Td [(2)]TJ/F8 9.9626 Tf 4.469 -3.615 Td [(\051;)-461(the)-419(algorithm)]TJ -225.547 -11.955 Td [(implemen)28(ted)-319(here)-319(follo)28(ws)-319(the)-319(w)27(ell-kno)28(wn)-319(median-of-three)-319(heuristics,)]TJ 0 -11.956 Td [(but)-333(the)-334(w)28(orst)-333(case)-334(ma)28(y)-333(still)-334(app)1(ly;)]TJ 0 g 0 G - 0 -19.926 Td [(dat)]TJ + -18.265 -15.94 Td [(\050b\051)]TJ 0 g 0 G -/F8 9.9626 Tf 21.372 0 Td [(On)-333(destination)-333(pro)-28(cess\050es\051,)-334(the)-333(result)-333(of)-334(the)-333(minim)28(um)-334(op)-27(eration.)]TJ 3.535 -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.899 0 Td [(.)]TJ -71.51 -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)-339(as:)-458(an)-339(in)28(te)-1(ger,)-341(real)-340(or)-339(complex)-340(v)56(ariable,)-342(whic)28(h)-340(ma)28(y)-339(b)-28(e)-340(a)-340(scalar,)]TJ 0 -11.955 Td [(or)-333(a)-334(rank)-333(1)-333(or)-334(2)-333(arra)28(y)83(.)]TJ 0 -11.956 Td [(T)28(yp)-28(e,)-333(kind,)-334(r)1(ank)-334(and)-333(size)-333(m)27(ust)-333(agree)-333(on)-334(all)-333(pro)-28(cesses.)]TJ/F16 11.9552 Tf -24.907 -21.917 Td [(Notes)]TJ + [-500(The)-222(w)28(orst)-223(case)-222(running)-222(time)-222(for)-223(merge-sort)-222(and)-222(heap-sort)-222(is)]TJ/F11 9.9626 Tf 273.309 0 Td [(O)]TJ/F8 9.9626 Tf 7.876 0 Td [(\050)]TJ/F11 9.9626 Tf 3.875 0 Td [(n)]TJ/F8 9.9626 Tf 7.64 0 Td [(log)]TJ/F11 9.9626 Tf 14.529 0 Td [(n)]TJ/F8 9.9626 Tf 5.98 0 Td [(\051)]TJ -294.944 -11.955 Td [(as)-333(the)-334(a)28(v)28(erage)-334(case;)]TJ 0 g 0 G -/F8 9.9626 Tf 12.177 -19.926 Td [(1.)]TJ + -17.158 -15.94 Td [(\050c\051)]TJ 0 g 0 G - [-500(The)]TJ/F30 9.9626 Tf 32.469 0 Td [(dat)]TJ/F8 9.9626 Tf 18.273 0 Td [(argumen)28(t)-259(is)-259(b)-28(oth)-259(input)-259(and)-259(output,)-274(and)-259(its)-259(v)55(alue)-259(ma)28(y)-259(b)-28(e)-259(c)28(hanged)]TJ -38.012 -11.955 Td [(ev)28(en)-334(on)-333(pro)-28(cesses)-333(di\013eren)28(t)-334(from)-333(the)-333(\014nal)-334(result)-333(destination.)]TJ + [-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)-301(of)-301(indices)-301(of)-302(sparse)-301(matrix)-301(en)28(tries,)-308(th)28(us)-301(merge-sort)-302(is)-301(the)-301(pre-)]TJ 0 -11.955 Td [(ferred)-249(c)28(hoice)-249(when)-249(a)-249(sorting)-248(is)-249(needed)-249(b)28(y)-249(other)-249(routines)-249(in)-249(t)1(he)-249(library)83(.)]TJ 0 g 0 G - -12.73 -19.925 Td [(2.)]TJ + 117.559 -205.23 Td [(108)]TJ +0 g 0 G +ET + +endstream +endobj +1641 0 obj +<< +/Length 182 +>> +stream 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 [(117)]TJ +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 164.384 -615.691 Td [(109)]TJ 0 g 0 G ET endstream endobj -1632 0 obj +1646 0 obj << -/Length 6223 +/Length 5584 >> stream 0 g 0 G 0 g 0 G BT -/F16 11.9552 Tf 150.705 706.129 Td [(psb)]TJ +/F16 11.9552 Tf 150.705 706.129 Td [(7.1)-1125(psb)]TJ ET q -1 0 0 1 171.761 706.328 cm +1 0 0 1 202.396 706.328 cm []0 d 0 J 0.398 w 0 0 m 4.035 0 l S Q BT -/F16 11.9552 Tf 175.796 706.129 Td [(nrm2)-375(|)-375(Global)-375(2-norm)-375(reduction)]TJ +/F16 11.9552 Tf 206.431 706.129 Td [(init)-375(|)-375(Initializes)-375(PSBLAS)-375(parallel)-375(en)31(vironmen)31(t)]TJ 0 g 0 G 0 g 0 G -/F30 9.9626 Tf -25.091 -18.389 Td [(call)-525(psb_nrm2\050icontxt,)-525(dat,)-525(root\051)]TJ/F8 9.9626 Tf 14.944 -19.604 Td [(This)-425(subroutine)-425(implem)-1(en)28(ts)-425(a)-425(2-norm)-426(v)56(alue)-425(reduction)-426(op)-27(eration)-426(based)-425(on)]TJ -14.944 -11.955 Td [(the)-333(underlying)-333(com)-1(m)28(unication)-333(library)83(.)]TJ +/F30 9.9626 Tf -55.726 -18.389 Td [(call)-525(psb_init\050icontxt,)-525(np,)-525(basectxt,)-525(ids\051)]TJ/F8 9.9626 Tf 14.944 -21.918 Td [(This)-294(subroutine)-294(initial)1(iz)-1(es)-293(the)-294(PSBLAS)-294(parallel)-294(en)28(vironmen)28(t,)-302(de\014ning)-294(a)-294(vir-)]TJ -14.944 -11.955 Td [(tual)-333(parallel)-334(mac)28(hine.)]TJ 0 g 0 G -/F27 9.9626 Tf 0 -18.074 Td [(T)32(yp)-32(e:)]TJ +/F27 9.9626 Tf 0 -19.926 Td [(T)32(yp)-32(e:)]TJ 0 g 0 G /F8 9.9626 Tf 33.797 0 Td [(Sync)28(hronous.)]TJ 0 g 0 G -/F27 9.9626 Tf -33.797 -19 Td [(On)-383(En)32(try)]TJ -0 g 0 G -0 g 0 G - 0 -19 Td [(icon)32(txt)]TJ +/F27 9.9626 Tf -33.797 -19.925 Td [(On)-383(En)32(try)]TJ 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.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 [(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 -/F27 9.9626 Tf -24.907 -19 Td [(dat)]TJ + 0 -19.925 Td [(np)]TJ 0 g 0 G -/F8 9.9626 Tf 21.371 0 Td [(The)-333(lo)-28(cal)-333(c)-1(on)28(tribution)-333(to)-333(the)-334(gl)1(obal)-334(minim)28(um.)]TJ 3.536 -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.956 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)-421(as:)-619(a)-421(real)-421(v)55(ariable,)-443(whic)28(h)-421(ma)28(y)-421(b)-28(e)-421(a)-421(scalar,)-443(or)-420(a)-421(rank)-421(1)-421(arra)28(y)83(.)]TJ 0 -11.955 Td [(Kind,)-333(rank)-333(and)-334(size)-333(m)28(ust)-334(agree)-333(on)-333(all)-334(pro)-27(ces)-1(ses.)]TJ +/F8 9.9626 Tf 17.711 0 Td [(Num)28(b)-28(er)-333(of)-334(pro)-27(cess)-1(es)-333(in)-333(the)-334(P)1(SBLA)-1(S)-333(virtual)-333(parallel)-333(mac)27(hin)1(e)-1(.)]TJ 7.196 -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 [(optional)]TJ/F8 9.9626 Tf 40.577 0 Td [(.)]TJ -70.188 -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(alue.)-778(Defau)1(lt:)-445(use)-333(all)-334(a)28(v)56(ailable)-333(pro)-28(cesses.)]TJ 0 g 0 G -/F27 9.9626 Tf -24.907 -19 Td [(ro)-32(ot)]TJ +/F27 9.9626 Tf -24.907 -19.925 Td [(basectxt)]TJ 0 g 0 G -/F8 9.9626 Tf 25.93 0 Td [(Pro)-28(cess)-276(to)-276(hold)-276(the)-276(\014nal)-276(v)56(alue,)-287(or)]TJ/F14 9.9626 Tf 146.411 0 Td [(\000)]TJ/F8 9.9626 Tf 7.749 0 Td [(1)-276(to)-276(mak)28(e)-276(it)-276(a)28(v)55(ailable)-276(on)-276(all)-276(pr)1(o)-28(cesses)-1(.)]TJ -155.183 -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.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(optional)]TJ/F8 9.9626 Tf 40.577 0 Td [(.)]TJ -70.188 -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(alue)]TJ/F14 9.9626 Tf 130.427 0 Td [(\000)]TJ/F8 9.9626 Tf 7.749 0 Td [(1)]TJ/F11 9.9626 Tf 7.749 0 Td [(<)]TJ/F8 9.9626 Tf 7.748 0 Td [(=)]TJ/F11 9.9626 Tf 10.517 0 Td [(r)-28(oot)-278(<)]TJ/F8 9.9626 Tf 28.543 0 Td [(=)]TJ/F11 9.9626 Tf 10.516 0 Td [(np)]TJ/F14 9.9626 Tf 13.206 0 Td [(\000)]TJ/F8 9.9626 Tf 9.963 0 Td [(1,)-333(default)-334(-1.)]TJ +/F8 9.9626 Tf 46.736 0 Td [(the)-356(initial)-357(comm)28(unication)-356(con)28(text.)-514(The)-356(new)-357(con)28(text)-356(will)-357(b)-27(e)-357(de\014ned)]TJ -21.829 -11.955 Td [(from)-333(the)-334(pro)-27(cesse)-1(s)-333(participating)-333(in)-333(the)-334(initial)-333(one.)]TJ 0 -11.956 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 [(optional)]TJ/F8 9.9626 Tf 40.577 0 Td [(.)]TJ -70.188 -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:)-445(an)-333(in)28(teger)-333(v)55(alue.)-778(Defau)1(lt:)-445(use)-333(MPI)]TJ +ET +q +1 0 0 1 389.991 466.768 cm +[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +Q +BT +/F8 9.9626 Tf 392.98 466.569 Td [(COMM)]TJ +ET +q +1 0 0 1 426.787 466.768 cm +[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +Q +BT +/F8 9.9626 Tf 429.775 466.569 Td [(W)28(ORLD.)]TJ 0 g 0 G -/F27 9.9626 Tf -251.325 -31.559 Td [(On)-383(Return)]TJ +/F27 9.9626 Tf -279.07 -19.925 Td [(ids)]TJ 0 g 0 G +/F8 9.9626 Tf 19.048 0 Td [(Iden)28(tities)-497(of)-497(the)-497(pro)-28(cesses)-497(to)-497(use)-497(for)-497(the)-497(new)-498(con)28(text;)-579(the)-497(argumen)28(t)-497(is)]TJ 5.858 -11.956 Td [(ignored)-428(when)]TJ/F30 9.9626 Tf 63.346 0 Td [(np)]TJ/F8 9.9626 Tf 14.723 0 Td [(is)-428(not)-428(sp)-27(eci\014ed.)-728(This)-428(allo)28(ws)-428(the)-428(pro)-27(ces)-1(ses)-427(in)-428(the)-428(new)]TJ -78.069 -11.955 Td [(en)28(vironmen)28(t)-334(to)-333(b)-28(e)-333(in)-333(an)-334(order)-333(di\013eren)28(t)-334(from)-333(the)-333(original)-333(one.)]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.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.612 0 Td [(optional)]TJ/F8 9.9626 Tf 40.576 0 Td [(.)]TJ -70.188 -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(arra)27(y)84(.)-778(Default:)-444(use)-334(the)-333(indices)-333(\0500)]TJ/F11 9.9626 Tf 254.159 0 Td [(:)-167(:)-166(:)-167(np)]TJ/F14 9.9626 Tf 26.489 0 Td [(\000)]TJ/F8 9.9626 Tf 9.963 0 Td [(1\051.)]TJ 0 g 0 G - 0 -19 Td [(dat)]TJ +/F27 9.9626 Tf -315.517 -21.918 Td [(On)-383(Return)]TJ 0 g 0 G -/F8 9.9626 Tf 21.371 0 Td [(On)-333(destination)-334(p)1(ro)-28(cess\050es)-1(\051)1(,)-334(the)-333(result)-333(of)-334(the)-333(2-norm)-333(reduction.)]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.956 Td [(Sp)-28(eci\014ed)-333(as:)-444(a)-334(real)-333(v)55(ariabl)1(e)-1(,)-333(whic)28(h)-333(ma)27(y)-333(b)-28(e)-333(a)-333(scalar,)-334(or)-333(a)-333(rank)-334(1)-333(arra)28(y)83(.)]TJ 0 -11.955 Td [(Kind,)-333(rank)-333(and)-334(size)-333(m)28(ust)-334(agree)-333(on)-333(all)-334(pro)-27(ces)-1(ses.)]TJ/F16 11.9552 Tf -24.907 -19.603 Td [(Notes)]TJ 0 g 0 G -/F8 9.9626 Tf 12.177 -18.075 Td [(1.)]TJ + 0 -19.925 Td [(icon)32(txt)]TJ 0 g 0 G - [-500(This)-416(reduction)-416(is)-416(appropriate)-416(to)-416(compute)-416(the)-417(r)1(e)-1(sult)1(s)-417(of)-416(m)28(ultiple)-416(\050lo)-28(cal\051)]TJ 12.73 -11.955 Td [(NRM2)-333(op)-28(erations)-333(at)-334(the)-333(same)-333(time)-1(.)]TJ +/F8 9.9626 Tf 39.989 0 Td [(the)-457(c)-1(omm)28(unication)-457(con)28(te)-1(x)1(t)-458(iden)28(tifying)-458(the)-457(virtual)-458(p)1(arallel)-458(mac)28(hine.)]TJ -15.083 -11.956 Td [(Note)-335(that)-335(this)-335(is)-336(alw)28(a)28(ys)-335(a)-335(duplicate)-335(of)]TJ/F30 9.9626 Tf 169.953 0 Td [(basectxt)]TJ/F8 9.9626 Tf 41.843 0 Td [(,)-336(so)-335(that)-335(library)-335(comm)28(u-)]TJ -211.796 -11.955 Td [(nications)-305(are)-305(completely)-306(separated)-305(from)-305(other)-305(comm)28(unication)-305(op)-28(erations.)]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.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 [(out)]TJ/F8 9.9626 Tf 16.549 0 Td [(.)]TJ -50.035 -11.956 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(in)28(teger)-333(v)55(ariable.)]TJ/F16 11.9552 Tf -24.906 -21.917 Td [(Notes)]TJ 0 g 0 G - -12.73 -18.999 Td [(2.)]TJ +/F8 9.9626 Tf 12.176 -19.926 Td [(1.)]TJ 0 g 0 G - [-500(Denoting)-283(b)28(y)]TJ/F11 9.9626 Tf 68.601 0 Td [(dat)]TJ/F10 6.9738 Tf 14.049 -1.495 Td [(i)]TJ/F8 9.9626 Tf 6.139 1.495 Td [(the)-283(v)55(alue)-283(of)-283(the)-283(v)55(ariabl)1(e)]TJ/F11 9.9626 Tf 106.289 0 Td [(dat)]TJ/F8 9.9626 Tf 16.871 0 Td [(on)-283(pro)-28(cess)]TJ/F11 9.9626 Tf 47.569 0 Td [(i)]TJ/F8 9.9626 Tf 3.432 0 Td [(,)-293(the)-283(output)]TJ/F11 9.9626 Tf 54.504 0 Td [(r)-28(es)]TJ/F8 9.9626 Tf -304.724 -11.956 Td [(is)-333(equiv)55(alen)28(t)-333(to)-334(the)-333(computation)-333(of)]TJ/F11 9.9626 Tf 122.07 -25.714 Td [(r)-28(es)]TJ/F8 9.9626 Tf 16.848 0 Td [(=)]TJ/F1 9.9626 Tf 10.516 14.335 Td [(s)]TJ -ET -q -1 0 0 1 335.008 204.589 cm -[]0 d 0 J 0.398 w 0 0 m 34.569 0 l S -Q -BT -/F1 9.9626 Tf 335.008 199.519 Td [(X)]TJ/F10 6.9738 Tf 5.786 -21.219 Td [(i)]TJ/F11 9.9626 Tf 10.265 11.754 Td [(dat)]TJ/F7 6.9738 Tf 14.05 3.432 Td [(2)]TJ/F10 6.9738 Tf 0 -6.209 Td [(i)]TJ/F11 9.9626 Tf 4.469 2.777 Td [(;)]TJ/F8 9.9626 Tf -193.967 -30.717 Td [(with)-333(care)-334(tak)28(en)-333(to)-334(a)28(v)28(oid)-333(unnecessary)-334(o)28(v)28(er\015o)28(w.)]TJ + [-500(A)-333(call)-334(to)-333(this)-333(routine)-334(m)28(ust)-333(precede)-334(an)28(y)-333(other)-333(PSBLAS)-334(call.)]TJ 0 g 0 G - -12.73 -19 Td [(3.)]TJ + 0 -19.925 Td [(2.)]TJ 0 g 0 G - [-500(The)]TJ/F30 9.9626 Tf 32.47 0 Td [(dat)]TJ/F8 9.9626 Tf 18.272 0 Td [(argumen)28(t)-259(is)-259(b)-28(oth)-259(input)-259(and)-259(output,)-274(and)-259(its)-259(v)55(alue)-259(ma)28(y)-259(b)-28(e)-259(c)28(hanged)]TJ -38.012 -11.955 Td [(ev)28(en)-334(on)-333(pro)-28(cesses)-333(di\013eren)28(t)-334(from)-333(the)-333(\014nal)-334(result)-333(destination.)]TJ + [-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 - 139.477 -37.944 Td [(118)]TJ + 139.477 -97.177 Td [(110)]TJ 0 g 0 G ET endstream endobj -1640 0 obj +1652 0 obj << -/Length 5346 +/Length 4667 >> stream 0 g 0 G 0 g 0 G BT -/F16 11.9552 Tf 99.895 706.129 Td [(psb)]TJ +/F16 11.9552 Tf 99.895 706.129 Td [(7.2)-1125(psb)]TJ ET q -1 0 0 1 120.951 706.328 cm +1 0 0 1 151.587 706.328 cm []0 d 0 J 0.398 w 0 0 m 4.035 0 l S Q BT -/F16 11.9552 Tf 124.986 706.129 Td [(snd)-375(|)-375(Send)-375(data)]TJ +/F16 11.9552 Tf 155.621 706.129 Td [(info)-453(|)-453(Return)-453(information)-453(ab)-31(out)-453(PSBLAS)-453(par-)]TJ -25.091 -13.948 Td [(allel)-375(en)31(vironmen)31(t)]TJ 0 g 0 G 0 g 0 G -/F30 9.9626 Tf -25.091 -18.389 Td [(call)-525(psb_snd\050icontxt,)-525(dat,)-525(dst,)-525(m\051)]TJ/F8 9.9626 Tf 14.944 -21.918 Td [(This)-333(subroutine)-334(sends)-333(a)-333(pac)27(k)28(et)-333(of)-333(data)-334(to)-333(a)-333(destination.)]TJ +/F30 9.9626 Tf -30.635 -18.389 Td [(call)-525(psb_info\050icontxt,)-525(iam,)-525(np\051)]TJ/F8 9.9626 Tf 14.944 -21.918 Td [(This)-456(subroutine)-456(returns)-456(inf)1(orma)-1(t)1(ion)-456(ab)-28(out)-456(the)-456(PSBLAS)-456(paral)1(le)-1(l)-455(en)27(viron-)]TJ -14.944 -11.955 Td [(men)28(t,)-334(de\014nin)1(g)-334(a)-333(virtual)-333(parallel)-334(mac)28(hine.)]TJ 0 g 0 G -/F27 9.9626 Tf -14.944 -19.926 Td [(T)32(yp)-32(e:)]TJ +/F27 9.9626 Tf 0 -19.925 Td [(T)32(yp)-32(e:)]TJ 0 g 0 G -/F8 9.9626 Tf 33.797 0 Td [(Sync)28(hronous:)-445(see)-333(usage)-333(notes.)]TJ +/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 +/F27 9.9626 Tf -33.797 -19.926 Td [(On)-383(En)32(try)]TJ 0 g 0 G 0 g 0 G 0 -19.925 Td [(icon)32(txt)]TJ 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 -/F27 9.9626 Tf -24.907 -19.925 Td [(dat)]TJ +/F27 9.9626 Tf -24.907 -21.918 Td [(On)-383(Return)]TJ 0 g 0 G -/F8 9.9626 Tf 21.371 0 Td [(The)-333(data)-334(to)-333(b)-28(e)-333(sen)28(t.)]TJ 3.536 -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)-339(as:)-458(an)-339(in)28(te)-1(ger,)-341(real)-340(or)-339(complex)-340(v)56(ariable,)-342(whic)28(h)-340(ma)28(y)-339(b)-28(e)-340(a)-340(scalar,)]TJ 0 -11.955 Td [(or)-381(a)-381(rank)-381(1)-381(or)-381(2)-381(arra)27(y)84(,)-393(or)-381(a)-381(c)27(har)1(ac)-1(ter)-381(or)-381(logical)-381(scalar.)-969(T)28(yp)-27(e)-1(,)-393(ki)1(nd)-381(and)]TJ 0 -11.955 Td [(rank)-327(m)27(ust)-327(agree)-328(on)-327(sender)-328(and)-327(receiv)27(er)-327(pro)-28(cess;)-329(if)]TJ/F11 9.9626 Tf 220.724 0 Td [(m)]TJ/F8 9.9626 Tf 12.01 0 Td [(is)-328(not)-327(sp)-28(eci\014ed,)-329(size)]TJ -232.734 -11.955 Td [(m)28(ust)-334(agree)-333(as)-333(w)27(ell.)]TJ 0 g 0 G -/F27 9.9626 Tf -24.907 -19.926 Td [(dst)]TJ + 0 -19.925 Td [(iam)]TJ 0 g 0 G -/F8 9.9626 Tf 20.321 0 Td [(Destination)-333(pro)-28(cess.)]TJ 4.586 -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.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)-333(v)55(alue)-333(0)]TJ/F11 9.9626 Tf 138.176 0 Td [(<)]TJ/F8 9.9626 Tf 7.749 0 Td [(=)]TJ/F11 9.9626 Tf 10.516 0 Td [(dst)-278(<)]TJ/F8 9.9626 Tf 23.969 0 Td [(=)]TJ/F11 9.9626 Tf 10.516 0 Td [(np)]TJ/F14 9.9626 Tf 13.207 0 Td [(\000)]TJ/F8 9.9626 Tf 9.962 0 Td [(1.)]TJ +/F8 9.9626 Tf 23.281 0 Td [(Iden)28(ti\014er)-333(of)-334(curren)28(t)-333(pro)-28(cess)-333(in)-334(the)-333(PSBLAS)-333(virtual)-334(par)1(allel)-334(mac)28(hine.)]TJ 1.626 -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 [(out)]TJ/F8 9.9626 Tf 16.549 0 Td [(.)]TJ -50.035 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(in)28(teger)-333(v)55(alue.)]TJ/F14 9.9626 Tf 134.302 0 Td [(\000)]TJ/F8 9.9626 Tf 7.749 0 Td [(1)]TJ/F14 9.9626 Tf 7.749 0 Td [(\024)]TJ/F11 9.9626 Tf 10.516 0 Td [(iam)]TJ/F14 9.9626 Tf 20.213 0 Td [(\024)]TJ/F11 9.9626 Tf 10.516 0 Td [(np)]TJ/F14 9.9626 Tf 13.206 0 Td [(\000)]TJ/F8 9.9626 Tf 9.963 0 Td [(1)]TJ 0 g 0 G -/F27 9.9626 Tf -239.002 -31.881 Td [(m)]TJ +/F27 9.9626 Tf -239.121 -19.926 Td [(np)]TJ 0 g 0 G -/F8 9.9626 Tf 14.529 0 Td [(Num)28(b)-28(er)-333(of)-334(ro)28(ws.)]TJ 10.378 -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 [(Optional)]TJ/F8 9.9626 Tf 43.455 0 Td [(.)]TJ -73.066 -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)-333(v)55(alue)-333(0)]TJ/F11 9.9626 Tf 138.176 0 Td [(<)]TJ/F8 9.9626 Tf 7.749 0 Td [(=)]TJ/F11 9.9626 Tf 10.516 0 Td [(m)-278(<)]TJ/F8 9.9626 Tf 19.264 0 Td [(=)]TJ/F11 9.9626 Tf 10.516 0 Td [(siz)-44(e)]TJ/F8 9.9626 Tf 17.812 0 Td [(\050)]TJ/F11 9.9626 Tf 3.874 0 Td [(dat;)]TJ/F8 9.9626 Tf 18.477 0 Td [(1\051.)]TJ -226.384 -11.956 Td [(When)]TJ/F11 9.9626 Tf 29.071 0 Td [(dat)]TJ/F8 9.9626 Tf 17.383 0 Td [(is)-335(a)-334(rank)-335(2)-335(arra)28(y)84(,)-335(sp)-28(eci\014es)-335(the)-335(n)28(um)28(b)-28(er)-334(of)-335(ro)28(ws)-335(to)-335(b)-27(e)-335(sen)28(t)-335(inde-)]TJ -46.454 -11.955 Td [(p)-28(enden)28(tly)-285(of)-285(the)-286(leading)-285(dimension)]TJ/F11 9.9626 Tf 153.742 0 Td [(siz)-44(e)]TJ/F8 9.9626 Tf 17.812 0 Td [(\050)]TJ/F11 9.9626 Tf 3.874 0 Td [(dat;)]TJ/F8 9.9626 Tf 18.477 0 Td [(1\051;)-301(m)27(ust)-285(ha)28(v)28(e)-285(the)-286(same)-285(v)55(alu)1(e)]TJ -193.905 -11.955 Td [(on)-333(sending)-334(and)-333(receiving)-333(pro)-28(cesses.)]TJ +/F8 9.9626 Tf 17.712 0 Td [(Num)28(b)-28(er)-333(of)-334(pro)-27(cesse)-1(s)-333(in)-333(the)-333(PSBLAS)-334(virtual)-333(parallel)-333(mac)27(h)1(ine.)]TJ 7.195 -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.899 0 Td [(.)]TJ -71.51 -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 [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(in)28(teger)-333(v)55(ariable.)]TJ/F16 11.9552 Tf -24.907 -21.918 Td [(Notes)]TJ 0 g 0 G -/F27 9.9626 Tf -24.907 -21.918 Td [(On)-383(Return)]TJ +/F8 9.9626 Tf 12.177 -19.926 Td [(1.)]TJ 0 g 0 G -/F16 11.9552 Tf 0 -21.918 Td [(Notes)]TJ + [-500(F)83(or)-500(pro)-27(cesse)-1(s)-500(in)-500(th)1(e)-501(v)1(irtual)-500(parallel)-500(mac)27(hin)1(e)-501(th)1(e)-501(id)1(e)-1(n)28(ti\014er)-500(will)-500(satisfy)]TJ 12.73 -11.955 Td [(0)]TJ/F14 9.9626 Tf 7.749 0 Td [(\024)]TJ/F11 9.9626 Tf 10.516 0 Td [(iam)]TJ/F14 9.9626 Tf 20.213 0 Td [(\024)]TJ/F11 9.9626 Tf 10.516 0 Td [(np)]TJ/F14 9.9626 Tf 13.206 0 Td [(\000)]TJ/F8 9.9626 Tf 9.963 0 Td [(1;)]TJ 0 g 0 G -/F8 9.9626 Tf 12.177 -19.925 Td [(1.)]TJ + -84.893 -19.925 Td [(2.)]TJ 0 g 0 G - [-500(This)-402(subroutine)-403(implies)-402(a)-402(s)-1(yn)1(c)27(hronization,)-419(but)-403(on)1(ly)-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(destination)-333(pro)-28(cess)]TJ/F11 9.9626 Tf 157.521 0 Td [(dst)]TJ/F8 9.9626 Tf 13.453 0 Td [(.)]TJ + [-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 - -31.497 -105.147 Td [(119)]TJ + -79.452 -174.885 Td [(111)]TJ 0 g 0 G ET endstream endobj -1645 0 obj +1658 0 obj << -/Length 5364 +/Length 4365 >> stream 0 g 0 G 0 g 0 G BT -/F16 11.9552 Tf 150.705 706.129 Td [(psb)]TJ +/F16 11.9552 Tf 150.705 706.129 Td [(7.3)-1125(psb)]TJ ET q -1 0 0 1 171.761 706.328 cm +1 0 0 1 202.396 706.328 cm []0 d 0 J 0.398 w 0 0 m 4.035 0 l S Q BT -/F16 11.9552 Tf 175.796 706.129 Td [(rcv)-375(|)-375(Receiv)31(e)-375(data)]TJ +/F16 11.9552 Tf 206.431 706.129 Td [(exit)-375(|)-375(Exit)-375(from)-375(PSBLAS)-375(parallel)-375(en)31(vironmen)31(t)]TJ 0 g 0 G 0 g 0 G -/F30 9.9626 Tf -25.091 -18.389 Td [(call)-525(psb_rcv\050icontxt,)-525(dat,)-525(src,)-525(m\051)]TJ/F8 9.9626 Tf 14.944 -21.918 Td [(This)-333(subroutine)-334(receiv)28(es)-333(a)-334(pac)28(k)28(et)-333(of)-334(data)-333(to)-333(a)-334(destination.)]TJ +/F30 9.9626 Tf -55.726 -18.389 Td [(call)-525(psb_exit\050icontxt\051)]TJ 0 -11.956 Td [(call)-525(psb_exit\050icontxt,close\051)]TJ/F8 9.9626 Tf 14.944 -21.917 Td [(This)-333(subroutine)-334(exits)-333(from)-333(the)-334(PS)1(B)-1(LAS)-333(parallel)-333(virtual)-333(mac)27(hin)1(e)-1(.)]TJ 0 g 0 G /F27 9.9626 Tf -14.944 -19.926 Td [(T)32(yp)-32(e:)]TJ 0 g 0 G -/F8 9.9626 Tf 33.797 0 Td [(Sync)28(hronous:)-444(s)-1(ee)-333(usage)-333(notes.)]TJ +/F8 9.9626 Tf 33.797 0 Td [(Sync)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 [(icon)32(txt)]TJ 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.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.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 -/F27 9.9626 Tf -24.907 -19.925 Td [(src)]TJ -0 g 0 G -/F8 9.9626 Tf 19.311 0 Td [(Source)-333(pro)-28(cess.)]TJ 5.596 -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.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.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(alue)-333(0)]TJ/F11 9.9626 Tf 138.176 0 Td [(<)]TJ/F8 9.9626 Tf 7.749 0 Td [(=)]TJ/F11 9.9626 Tf 10.516 0 Td [(sr)-28(c)-277(<)]TJ/F8 9.9626 Tf 24.269 0 Td [(=)]TJ/F11 9.9626 Tf 10.516 0 Td [(np)]TJ/F14 9.9626 Tf 13.206 0 Td [(\000)]TJ/F8 9.9626 Tf 9.963 0 Td [(1.)]TJ -0 g 0 G -/F27 9.9626 Tf -239.302 -31.88 Td [(m)]TJ -0 g 0 G -/F8 9.9626 Tf 14.529 0 Td [(Num)28(b)-28(er)-333(of)-334(ro)28(ws.)]TJ 10.378 -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.956 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(Optional)]TJ/F8 9.9626 Tf 43.455 0 Td [(.)]TJ -73.066 -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:)-445(an)-333(in)28(teger)-333(v)55(alue)-333(0)]TJ/F11 9.9626 Tf 138.176 0 Td [(<)]TJ/F8 9.9626 Tf 7.749 0 Td [(=)]TJ/F11 9.9626 Tf 10.516 0 Td [(m)-278(<)]TJ/F8 9.9626 Tf 19.263 0 Td [(=)]TJ/F11 9.9626 Tf 10.516 0 Td [(siz)-44(e)]TJ/F8 9.9626 Tf 17.813 0 Td [(\050)]TJ/F11 9.9626 Tf 3.874 0 Td [(dat;)]TJ/F8 9.9626 Tf 18.477 0 Td [(1\051.)]TJ -226.384 -11.955 Td [(When)]TJ/F11 9.9626 Tf 29.071 0 Td [(dat)]TJ/F8 9.9626 Tf 17.383 0 Td [(is)-335(a)-334(rank)-335(2)-335(arra)28(y)84(,)-335(sp)-28(eci\014es)-335(the)-335(n)28(um)28(b)-28(er)-334(of)-335(ro)28(ws)-335(to)-335(b)-27(e)-335(sen)28(t)-335(inde-)]TJ -46.454 -11.955 Td [(p)-28(enden)28(tly)-285(of)-285(the)-286(leadin)1(g)-286(dimension)]TJ/F11 9.9626 Tf 153.741 0 Td [(siz)-44(e)]TJ/F8 9.9626 Tf 17.813 0 Td [(\050)]TJ/F11 9.9626 Tf 3.874 0 Td [(dat;)]TJ/F8 9.9626 Tf 18.477 0 Td [(1\051;)-301(m)27(u)1(s)-1(t)-285(ha)28(v)28(e)-285(the)-286(same)-285(v)55(al)1(ue)]TJ -193.905 -11.955 Td [(on)-333(sending)-334(and)-333(receiving)-333(pro)-28(cesses.)]TJ -0 g 0 G -/F27 9.9626 Tf -24.907 -21.918 Td [(On)-383(Return)]TJ -0 g 0 G -0 g 0 G - 0 -19.926 Td [(dat)]TJ -0 g 0 G -/F8 9.9626 Tf 21.371 0 Td [(The)-333(data)-334(to)-333(b)-28(e)-333(receiv)28(ed.)]TJ 3.536 -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 [(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(teg)-1(er,)-341(real)-340(or)-339(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)-381(a)-381(rank)-381(1)-381(or)-381(2)-381(arra)28(y)83(,)-393(or)-381(a)-381(c)27(h)1(aracte)-1(r)-381(or)-381(logical)-381(scalar.)-968(T)27(yp)-27(e,)-393(kind)-381(and)]TJ 0 -11.956 Td [(rank)-327(m)27(ust)-327(agree)-328(on)-327(sender)-328(and)-327(receiv)27(er)-327(pro)-28(cess;)-329(if)]TJ/F11 9.9626 Tf 220.724 0 Td [(m)]TJ/F8 9.9626 Tf 12.01 0 Td [(is)-328(not)-327(sp)-28(eci\014ed,)-328(s)-1(ize)]TJ -232.734 -11.955 Td [(m)28(ust)-334(agree)-333(as)-333(w)27(ell.)]TJ/F16 11.9552 Tf -24.907 -21.918 Td [(Notes)]TJ +/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 -/F8 9.9626 Tf 12.177 -19.925 Td [(1.)]TJ +/F27 9.9626 Tf -24.907 -19.925 Td [(close)]TJ 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(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 +/F8 9.9626 Tf 28.754 0 Td [(Whether)-401(to)-401(c)-1(lose)-401(all)-401(data)-401(structures)-402(related)-401(to)-401(the)-401(virtual)-401(parallel)-402(ma-)]TJ -3.847 -11.955 Td [(c)28(hine,)-333(b)-28(esides)-334(those)-333(asso)-28(ciated)-333(with)-334(icon)28(txt.)]TJ 0 -11.956 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.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(optional)]TJ/F8 9.9626 Tf 40.577 0 Td [(.)]TJ -70.188 -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(a)-334(logical)-333(v)55(ariabl)1(e)-1(,)-333(default)-333(v)55(al)1(ue:)-445(true.)]TJ/F16 11.9552 Tf -24.907 -19.925 Td [(Notes)]TJ 0 g 0 G - -10.792 -105.147 Td [(120)]TJ +/F8 9.9626 Tf 12.177 -19.926 Td [(1.)]TJ 0 g 0 G -ET - -endstream -endobj -1652 0 obj -<< -/Length 6381 ->> -stream + [-500(This)-241(routine)-241(ma)28(y)-241(b)-28(e)-241(called)-241(ev)28(en)-241(if)-241(a)-241(previous)-241(call)-241(to)]TJ/F30 9.9626 Tf 233.304 0 Td [(psb_info)]TJ/F8 9.9626 Tf 44.244 0 Td [(has)-241(returned)]TJ -264.818 -11.955 Td [(with)]TJ/F11 9.9626 Tf 22.962 0 Td [(iam)]TJ/F8 9.9626 Tf 20.663 0 Td [(=)]TJ/F14 9.9626 Tf 10.966 0 Td [(\000)]TJ/F8 9.9626 Tf 7.749 0 Td [(1;)-374(indeed,)-367(it)-360(it)-361(is)-360(the)-361(only)-360(routine)-360(that)-361(ma)28(y)-360(b)-28(e)-361(called)-360(with)]TJ -62.34 -11.955 Td [(argumen)28(t)]TJ/F30 9.9626 Tf 44.583 0 Td [(icontxt)]TJ/F8 9.9626 Tf 39.933 0 Td [(in)-333(this)-334(situation)1(.)]TJ 0 g 0 G + -97.246 -19.925 Td [(2.)]TJ 0 g 0 G -BT -/F16 14.3462 Tf 99.895 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(me)-1(ssages)-491(on)-491(a)-492(stac)28(k)-491(allo)28(wing)-492(the)-491(user)-491(to)-491(trace)-492(bac)28(k)-491(up)-492(to)]TJ 0 -11.956 Td [(the)-401(p)-27(oin)27(t)-400(where)-401(the)-400(\014rst)-401(error)-400(me)-1(ssage)-400(has)-401(b)-28(een)-400(generated.)-646(Ev)27(ery)-400(routine)-401(in)]TJ 0 -11.955 Td [(the)-442(PS)1(B)-1(LAS)1(-)-1(2.0)-441(library)-441(has,)-469(as)-442(last)-441(non-optional)-441(argume)-1(n)28(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(ariable)-367(is)-368(set)]TJ 0 -11.955 Td [(to)-381(a)-380(v)55(alue)-380(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(trol)-245(is)-245(return)1(e)-1(d)-245(to)-245(the)-245(caller)-245(routine)]TJ 0 -11.955 Td [(or)-372(the)-372(execution)-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)-328(v)56(alue)-328(retur)1(ned)-328(in)-328(the)]TJ/F30 9.9626 Tf 285.46 0 Td [(info)]TJ/F8 9.9626 Tf 24.185 0 Td [(v)56(ariable)]TJ -309.645 -11.955 Td [(and,)-359(if)-354(not)-354(zero,)-359(an)-353(e)-1(r)1(ror)-354(condition)-354(is)-354(raised.)-506(This)-354(pro)-28(cess)-354(con)28(tin)28(ues)-354(on)-354(all)-354(the)]TJ 0 -11.955 Td [(lev)28(els)-297(of)-297(nested)-296(calls)-297(un)28(til)-297(the)-296(lev)28(e)-1(l)-296(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 + [-500(A)-305(call)-306(to)-305(this)-305(routine)-305(with)]TJ/F30 9.9626 Tf 128.752 0 Td [(close=.true.)]TJ/F8 9.9626 Tf 65.806 0 Td [(implies)-305(a)-306(call)-305(to)]TJ/F30 9.9626 Tf 71.445 0 Td [(MPI_Finalize)]TJ/F8 9.9626 Tf 62.764 0 Td [(,)]TJ -316.037 -11.956 Td [(after)-333(whic)28(h)-334(no)-333(parallel)-333(routine)-334(ma)28(y)-333(b)-28(e)-333(called.)]TJ 0 g 0 G - [-353(sho)28(ws)-353(the)-353(la)28(y)27(out)-353(of)-353(a)-353(generic)]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(handl)1(ing)-326(p)-28(olicy)83(.)-442(It)-325(is)-326(p)-28(ossible)-326(to)-326(see)-326(ho)28(w,)-327(whenev)27(er)-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.703 0 Td [(psb_errpush)]TJ/F8 9.9626 Tf 57.533 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(hec)28(king)]TJ 0 -11.956 Td [(the)-462(error)-461(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)-434(b)-27(een)-434(pushed)-434(on)-434(stac)28(k,)-459(the)-434(program)-433(exec)-1(u)1(tion)-434(skips)]TJ 0 -11.955 Td [(to)-356(a)-356(p)-27(oin)28(t)-356(where)-356(the)-356(error)-355(c)-1(on)1(dition)-356(is)-356(handled;)-367(the)-355(e)-1(r)1(ror)-356(condition)-356(is)-356(hand)1(le)-1(d)]TJ 0 -11.955 Td [(either)-392(b)28(y)-392(returning)-392(con)28(trol)-392(to)-392(the)-392(caller)-392(r)1(outine)-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(prin)28(ts)-478(the)-478(con)28(ten)27(t)-478(of)-478(the)-478(error)-479(stac)28(k)-478(and)-478(ab)-28(orts)-478(the)-478(program)]TJ 0 -11.955 Td [(execution,)-330(accordin)1(g)-329(to)-329(th)1(e)-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 + -12.73 -19.925 Td [(3.)]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(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(ib)1(le)-248(to)-248(see)-248(that)-248(the)-248(error)-247(has)-248(b)-28(een)-248(detected)-248(inside)-248(the)]TJ/F30 9.9626 Tf 301.869 0 Td [(psb_cest)]TJ/F8 9.9626 Tf -301.869 -11.956 Td [(subroutine)-333(called)-334(b)28(y)]TJ/F30 9.9626 Tf 91.408 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 + [-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 - 22.582 -211.304 Td [(121)]TJ + 139.477 -212.744 Td [(112)]TJ 0 g 0 G ET endstream endobj -1659 0 obj +1665 0 obj << -/Length 7207 +/Length 2621 >> stream 0 g 0 G 0 g 0 G -0 g 0 G -0 g 0 G -0 g 0 G BT -/F53 8.9664 Tf 159.61 680.066 Td [(s)-60(u)-60(b)-60(r)-60(o)-59(u)-60(t)-60(i)-60(n)-60(e)]TJ/F46 8.9664 Tf 61.471 0 Td [(p)-132(s)-132(b)]TJ -ET -q -1 0 0 1 239.064 680.265 cm -[]0 d 0 J 0.398 w 0 0 m 2.765 0 l S -Q -BT -/F46 8.9664 Tf 243.014 680.066 Td [(f)-132(o)-132(o)-241(\050)-155(s)-47(o)-47(m)-46(e)-769(a)-105(r)-106(g)-105(s)-376(,)-939(i)-156(n)-156(f)-157(o)-265(\051)]TJ -65.126 -10.959 Td [(.)-248(.)-249(.)]TJ/F53 8.9664 Tf -0.604 -10.959 Td [(i)-181(f)]TJ/F46 8.9664 Tf 10.409 0 Td [(\050)-259(e)-152(r)-151(r)-151(o)-151(r)-897(d)-129(e)-129(t)-129(e)-130(c)-129(t)-129(e)-130(d)-237(\051)]TJ/F53 8.9664 Tf 93.291 0 Td [(t)-30(h)-30(e)-29(n)]TJ/F46 8.9664 Tf -87.332 -10.959 Td [(i)-156(n)-157(f)-156(o)-65(=)-38(e)-129(r)-129(r)-128(c)-129(o)-129(d)-129(e)-129(1)]TJ/F53 8.9664 Tf -0.133 -10.959 Td [(c)-142(a)-141(l)-142(l)]TJ/F46 8.9664 Tf 27.487 0 Td [(p)-124(s)-124(b)]TJ -ET -q -1 0 0 1 238.765 636.429 cm -[]0 d 0 J 0.398 w 0 0 m 2.765 0 l S -Q -BT -/F46 8.9664 Tf 242.641 636.23 Td [(e)-124(r)-124(r)-124(p)-123(u)-124(s)-124(h)-232(\050)-330(')-242(p)-132(s)-133(b)]TJ -ET -q -1 0 0 1 310.944 636.429 cm -[]0 d 0 J 0.398 w 0 0 m 2.765 0 l S -Q -BT -/F46 8.9664 Tf 314.894 636.23 Td [(f)-132(o)-132(o)-353(')-332(,)-855(e)-129(r)-129(r)-129(c)-129(o)-129(d)-128(e)-129(1)-237(\051)]TJ/F53 8.9664 Tf -122.23 -10.959 Td [(g)-46(o)-47(t)-46(o)]TJ/F46 8.9664 Tf 27.969 0 Td [(9)-82(9)-82(9)-83(9)]TJ/F53 8.9664 Tf -44.989 -10.959 Td [(e)2(n)2(d)-796(i)-181(f)]TJ/F46 8.9664 Tf 2.244 -10.959 Td [(.)-248(.)-249(.)]TJ/F53 8.9664 Tf -0.957 -10.959 Td [(c)-142(a)-141(l)-142(l)]TJ/F46 8.9664 Tf 27.399 0 Td [(p)-114(s)-114(b)]TJ +/F16 11.9552 Tf 99.895 706.129 Td [(7.4)-1125(psb)]TJ ET q -1 0 0 1 221.826 592.594 cm -[]0 d 0 J 0.398 w 0 0 m 2.765 0 l S +1 0 0 1 151.587 706.328 cm +[]0 d 0 J 0.398 w 0 0 m 4.035 0 l S Q BT -/F46 8.9664 Tf 225.613 592.394 Td [(b)-114(a)-114(r)-223(\050)-155(s)-47(o)-46(m)-47(e)-769(a)-105(r)-105(g)-105(s)-376(,)-939(i)-157(n)-156(f)-157(o)-264(\051)]TJ/F53 8.9664 Tf -48.329 -10.958 Td [(i)-181(f)]TJ/F46 8.9664 Tf 10.409 0 Td [(\050)-265(i)-156(n)-157(f)-156(o)-939(.)]TJ/F53 8.9664 Tf 37.83 0 Td [(n)-11(e)]TJ/F46 8.9664 Tf 12.445 0 Td [(.)-910(z)-127(e)-127(r)-128(o)-236(\051)]TJ/F53 8.9664 Tf 43.016 0 Td [(t)-30(h)-30(e)-29(n)]TJ/F46 8.9664 Tf -87.332 -10.959 Td [(i)-156(n)-157(f)-156(o)-65(=)-38(e)-129(r)-129(r)-128(c)-129(o)-129(d)-129(e)-129(2)]TJ/F53 8.9664 Tf -0.133 -10.959 Td [(c)-142(a)-141(l)-142(l)]TJ/F46 8.9664 Tf 27.487 0 Td [(p)-124(s)-124(b)]TJ +/F16 11.9552 Tf 155.621 706.129 Td [(get)]TJ ET q -1 0 0 1 238.765 559.717 cm -[]0 d 0 J 0.398 w 0 0 m 2.765 0 l S +1 0 0 1 174.52 706.328 cm +[]0 d 0 J 0.398 w 0 0 m 4.035 0 l S Q BT -/F46 8.9664 Tf 242.641 559.518 Td [(e)-124(r)-124(r)-124(p)-123(u)-124(s)-124(h)-232(\050)-330(')-242(p)-132(s)-133(b)]TJ +/F16 11.9552 Tf 178.555 706.129 Td [(mpi)]TJ ET q -1 0 0 1 310.944 559.717 cm -[]0 d 0 J 0.398 w 0 0 m 2.765 0 l S +1 0 0 1 201.778 706.328 cm +[]0 d 0 J 0.398 w 0 0 m 4.035 0 l S Q BT -/F46 8.9664 Tf 314.894 559.518 Td [(f)-132(o)-132(o)-353(')-332(,)-855(e)-129(r)-129(r)-129(c)-129(o)-129(d)-128(e)-129(2)-237(\051)]TJ/F53 8.9664 Tf -122.23 -10.959 Td [(g)-46(o)-47(t)-46(o)]TJ/F46 8.9664 Tf 27.969 0 Td [(9)-82(9)-82(9)-83(9)]TJ/F53 8.9664 Tf -44.989 -10.959 Td [(e)2(n)2(d)-796(i)-181(f)]TJ/F46 8.9664 Tf 2.244 -10.959 Td [(.)-248(.)-249(.)]TJ -18.077 -10.959 Td [(9)-82(9)-82(9)-83(9)]TJ/F53 8.9664 Tf 27.419 0 Td [(c)-57(o)-57(n)-57(t)-56(i)-57(n)-57(u)-57(e)]TJ -9.946 -10.959 Td [(i)-181(f)]TJ/F46 8.9664 Tf 15.938 0 Td [(\050)-273(e)-164(r)-165(r)]TJ +/F16 11.9552 Tf 205.813 706.129 Td [(comm)-375(|)-375(Get)-375(the)-375(MPI)-375(comm)31(unicator)]TJ +0 g 0 G +0 g 0 G +/F30 9.9626 Tf -105.918 -18.389 Td [(icomm)-525(=)-525(psb_get_mpi_comm\050icontxt\051)]TJ/F8 9.9626 Tf 14.944 -21.918 Td [(This)-450(function)-451(retu)1(rns)-451(the)-450(MPI)-450(comm)27(uni)1(c)-1(ator)-450(asso)-28(ciated)-450(with)-450(a)-451(PSBLAS)]TJ -14.944 -11.955 Td [(con)28(text)]TJ +0 g 0 G +/F27 9.9626 Tf 0 -19.926 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 [(icon)32(txt)]TJ +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.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 [(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 +/F27 9.9626 Tf -24.907 -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)-314(MPI)-314(comm)28(unicator)-314(ass)-1(o)-27(ciated)-314(with)-314(the)-315(PS)1(B)-1(LAS)-314(vir)1(tual)]TJ -53.48 -11.955 Td [(parallel)-333(mac)27(hin)1(e)-1(.)]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/F16 11.9552 Tf -74.942 -33.873 Td [(Notes)]TJ/F8 9.9626 Tf 37.587 0 Td [(The)-369(subroutine)-368(v)27(ersion)]TJ/F30 9.9626 Tf 104.726 0 Td [(psb_get_mpicomm)]TJ/F8 9.9626 Tf 82.129 0 Td [(is)-369(still)-369(a)28(v)56(ailable)-369(but)-369(is)-368(dep-)]TJ -224.442 -11.955 Td [(recated.)]TJ +0 g 0 G + 164.384 -320.34 Td [(113)]TJ +0 g 0 G ET -q -1 0 0 1 215.536 504.923 cm -[]0 d 0 J 0.398 w 0 0 m 2.765 0 l S -Q + +endstream +endobj +1669 0 obj +<< +/Length 3470 +>> +stream +0 g 0 G +0 g 0 G BT -/F46 8.9664 Tf 219.774 504.723 Td [(a)-164(c)-165(t)-946(.)]TJ/F53 8.9664 Tf 27.965 0 Td [(e)-22(q)]TJ/F46 8.9664 Tf 12.346 0 Td [(.)-923(a)-141(c)-141(t)]TJ +/F16 11.9552 Tf 150.705 706.129 Td [(7.5)-1125(psb)]TJ ET q -1 0 0 1 287.553 504.923 cm -[]0 d 0 J 0.398 w 0 0 m 2.765 0 l S +1 0 0 1 202.396 706.328 cm +[]0 d 0 J 0.398 w 0 0 m 4.035 0 l S Q BT -/F46 8.9664 Tf 291.582 504.723 Td [(a)-141(b)-141(o)-141(r)-141(t)-249(\051)]TJ/F53 8.9664 Tf 39.166 0 Td [(t)-30(h)-29(e)-30(n)]TJ -142.758 -10.959 Td [(c)-142(a)-141(l)-142(l)]TJ/F46 8.9664 Tf 27.681 0 Td [(p)-146(s)-145(b)]TJ +/F16 11.9552 Tf 206.431 706.129 Td [(get)]TJ ET q -1 0 0 1 234.014 493.964 cm -[]0 d 0 J 0.398 w 0 0 m 2.765 0 l S +1 0 0 1 225.33 706.328 cm +[]0 d 0 J 0.398 w 0 0 m 4.035 0 l S Q BT -/F46 8.9664 Tf 238.084 493.764 Td [(e)-146(r)-145(r)-146(o)-145(r)-254(\050)-252(i)-144(c)-143(o)-144(n)-143(t)-143(x)-144(t)-252(\051)]TJ/F53 8.9664 Tf -50.844 -10.959 Td [(r)-58(e)-58(t)-58(u)-58(r)-58(n)]TJ -10.529 -10.958 Td [(e)-117(l)-117(s)-117(e)]TJ 10.529 -10.959 Td [(r)-58(e)-58(t)-58(u)-58(r)-58(n)]TJ -11.596 -10.959 Td [(e)2(n)2(d)-796(i)-181(f)]TJ -16.588 -21.918 Td [(e)2(n)2(d)-675(s)-60(u)-59(b)-60(r)-60(o)-60(u)-60(t)-60(i)-60(n)-60(e)]TJ/F46 8.9664 Tf 84.142 0 Td [(p)-132(s)-132(b)]TJ +/F16 11.9552 Tf 229.365 706.129 Td [(mpi)]TJ ET q -1 0 0 1 261.181 428.21 cm -[]0 d 0 J 0.398 w 0 0 m 2.765 0 l S +1 0 0 1 252.587 706.328 cm +[]0 d 0 J 0.398 w 0 0 m 4.035 0 l S Q BT -/F46 8.9664 Tf 265.131 428.011 Td [(f)-132(o)-132(o)]TJ +/F16 11.9552 Tf 256.622 706.129 Td [(rank)-375(|)-375(Get)-375(the)-375(MPI)-375(rank)]TJ 0 g 0 G 0 g 0 G -ET -q -1 0 0 1 150.705 701.884 cm -[]0 d 0 J 0.398 w 0 0 m 346.583 0 l S -Q -q -1 0 0 1 150.904 410.576 cm -[]0 d 0 J 0.398 w 0 0 m 0 291.308 l S -Q -q -1 0 0 1 497.088 410.576 cm -[]0 d 0 J 0.398 w 0 0 m 0 291.308 l S -Q -q -1 0 0 1 150.705 410.576 cm -[]0 d 0 J 0.398 w 0 0 m 346.583 0 l S -Q -BT -/F8 9.9626 Tf 150.705 382.537 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 -ET -q -1 0 0 1 314.468 382.736 cm -[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S -Q -BT -/F30 9.9626 Tf 317.606 382.537 Td [(foo)]TJ/F8 9.9626 Tf 18.974 0 Td [(routine)-329(with)-330(resp)-28(ect)-329(to)-329(PSBLAS-2.0)]TJ -185.875 -11.955 Td [(error)-333(handling)-333(p)-28(olicy)83(.)]TJ +/F30 9.9626 Tf -105.917 -18.389 Td [(rank)-525(=)-525(psb_get_mpi_rank\050icontxt,)-525(id\051)]TJ/F8 9.9626 Tf 14.944 -21.918 Td [(This)-333(function)-334(r)1(e)-1(tu)1(rns)-334(the)-333(MPI)-333(rank)-334(of)-333(the)-333(PSBLAS)-334(p)1(ro)-28(cess)]TJ/F11 9.9626 Tf 264.342 0 Td [(id)]TJ 0 g 0 G +/F27 9.9626 Tf -279.286 -19.926 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 [(icon)32(txt)]TJ 0 g 0 G -/F30 9.9626 Tf 8.368 -39.475 Td [(==========================================================)]TJ 0 -11.955 Td [(Process:)-525(0.)-1050(PSBLAS)-525(Error)-525(\0504010\051)-525(in)-525(subroutine:)-525(df_sample)]TJ 0 -11.955 Td [(Error)-525(from)-525(call)-525(to)-525(subroutine)-525(mat)-525(dist)]TJ 0 -11.955 Td [(==========================================================)]TJ 0 -11.955 Td [(Process:)-525(0.)-1050(PSBLAS)-525(Error)-525(\0504010\051)-525(in)-525(subroutine:)-525(mat_distv)]TJ 0 -11.956 Td [(Error)-525(from)-525(call)-525(to)-525(subroutine)-525(psb_spasb)]TJ 0 -11.955 Td [(==========================================================)]TJ 0 -11.955 Td [(Process:)-525(0.)-1050(PSBLAS)-525(Error)-525(\0504010\051)-525(in)-525(subroutine:)-525(psb_spasb)]TJ 0 -11.955 Td [(Error)-525(from)-525(call)-525(to)-525(subroutine)-525(psb_cest)]TJ 0 -11.955 Td [(==========================================================)]TJ 0 -11.955 Td [(Process:)-525(0.)-1050(PSBLAS)-525(Error)-525(\050136\051)-525(in)-525(subroutine:)-525(psb_cest)]TJ 0 -11.956 Td [(Format)-525(FOO)-525(is)-525(unknown)]TJ 0 -11.955 Td [(==========================================================)]TJ 0 -11.955 Td [(Aborting...)]TJ -ET -q -1 0 0 1 150.705 343.417 cm -[]0 d 0 J 0.398 w 0 0 m 346.583 0 l S -Q -q -1 0 0 1 150.904 165.307 cm -[]0 d 0 J 0.398 w 0 0 m 0 178.111 l S -Q -q -1 0 0 1 497.088 165.307 cm -[]0 d 0 J 0.398 w 0 0 m 0 178.111 l S -Q -q -1 0 0 1 150.705 165.307 cm -[]0 d 0 J 0.398 w 0 0 m 346.583 0 l S -Q -BT -/F8 9.9626 Tf 150.705 137.267 Td [(Figure)-386(10:)-551(A)-386(sample)-386(PSBLAS-2.0)-387(err)1(or)-387(message.)-603(Pro)-28(cess)-387(0)-386(detected)-386(an)-387(error)]TJ 0 -11.955 Td [(condition)-333(inside)-334(t)1(he)-334(psb)]TJ -ET -q -1 0 0 1 255.468 125.512 cm -[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S -Q -BT -/F8 9.9626 Tf 258.457 125.312 Td [(cest)-333(subroutine)]TJ +/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.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.956 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(ariable.)]TJ 0 g 0 G +/F27 9.9626 Tf -24.906 -19.925 Td [(id)]TJ 0 g 0 G - 56.631 -34.874 Td [(122)]TJ +/F8 9.9626 Tf 14.529 0 Td [(Iden)28(ti\014er)-333(of)-334(a)-333(pro)-28(cess)-333(in)-334(the)-333(PSBLAS)-333(virtual)-333(parallel)-334(mac)28(hine.)]TJ 10.377 -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.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.)-444(0)]TJ/F14 9.9626 Tf 142.051 0 Td [(\024)]TJ/F11 9.9626 Tf 10.516 0 Td [(id)]TJ/F14 9.9626 Tf 11.385 0 Td [(\024)]TJ/F11 9.9626 Tf 10.516 0 Td [(np)]TJ/F14 9.9626 Tf 13.207 0 Td [(\000)]TJ/F8 9.9626 Tf 9.962 0 Td [(1)]TJ +0 g 0 G +/F27 9.9626 Tf -222.543 -21.918 Td [(On)-383(Return)]TJ +0 g 0 G +0 g 0 G + 0 -19.925 Td [(F)96(unciton)-384(v)64(alue)]TJ +0 g 0 G +/F8 9.9626 Tf 78.386 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.618 0 Td [(.)]TJ -292.346 -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.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/F16 11.9552 Tf -74.941 -33.873 Td [(Notes)]TJ/F8 9.9626 Tf 38.323 0 Td [(The)-443(subroutine)-442(v)28(ersion)]TJ/F30 9.9626 Tf 106.934 0 Td [(psb_get_rank)]TJ/F8 9.9626 Tf 67.174 0 Td [(is)-443(still)-442(a)27(v)56(ailable)-443(but)-442(is)-443(depre-)]TJ -212.431 -11.956 Td [(cated.)]TJ +0 g 0 G + 164.383 -276.504 Td [(114)]TJ 0 g 0 G ET endstream endobj -1560 0 obj +1569 0 obj << /Type /ObjStm /N 100 -/First 967 -/Length 9296 +/First 971 +/Length 9711 >> stream -1558 0 1559 59 1554 118 1562 250 1564 368 405 426 1565 483 1566 540 1561 598 1568 730 -1570 848 409 907 1571 965 1572 1024 1573 1083 1567 1142 1575 1274 1577 1392 413 1450 1574 1507 -1579 1613 1581 1731 417 1790 1578 1848 1583 1980 1585 2098 421 2156 1582 2213 1588 2319 1590 2437 -425 2496 1587 2554 1592 2660 1594 2778 429 2836 1591 2893 1596 2999 1598 3117 433 3176 1595 3234 -1600 3366 1602 3484 437 3542 1603 3599 1604 3657 1599 3715 1606 3847 1608 3965 441 4024 1609 4082 -1610 4141 1605 4200 1612 4332 1614 4450 445 4508 1615 4565 1616 4623 1611 4681 1619 4813 1621 4931 -449 4990 1622 5048 1623 5107 1618 5166 1625 5298 1627 5416 453 5474 1628 5531 1629 5589 1624 5647 -1631 5779 1633 5897 457 5956 1634 6014 1635 6073 1637 6132 1630 6191 1639 6361 1641 6479 461 6537 -1642 6594 1638 6651 1644 6783 1646 6901 465 6960 1647 7018 1643 7076 1651 7208 1648 7356 1649 7502 -1653 7649 469 7707 1650 7764 1658 7857 1660 7975 1661 8034 1662 8093 1664 8152 1665 8211 1666 8270 -% 1558 0 obj +384 0 1568 58 1564 117 1572 236 1570 375 1574 522 388 580 1575 637 1571 695 1578 814 +1576 953 1580 1099 392 1158 1581 1216 1577 1275 1584 1394 1582 1533 1586 1680 396 1738 1587 1795 +1583 1853 1590 1972 1588 2111 1592 2257 400 2316 1593 2374 1594 2432 1589 2491 1597 2597 1595 2736 +1599 2882 405 2940 1600 2997 1601 3055 1596 3113 1605 3219 1603 3358 1607 3502 409 3561 1604 3619 +1609 3738 1611 3856 1612 3914 1613 3972 1614 4030 1608 4088 1619 4207 1615 4364 1616 4508 1617 4654 +1621 4799 413 4858 1618 4916 1623 5035 1625 5153 417 5211 1622 5268 1627 5387 1629 5505 1630 5564 +1631 5623 1632 5682 1633 5741 1634 5800 1635 5859 1636 5917 1637 5976 1638 6035 1626 6094 1640 6212 +1642 6330 421 6388 1639 6445 1645 6525 1647 6643 425 6702 1648 6760 1649 6819 1644 6878 1651 7010 +1653 7128 429 7186 1654 7243 1655 7300 1650 7358 1657 7490 1659 7608 433 7667 1660 7725 1661 7784 +1662 7843 1656 7902 1664 8034 1666 8152 437 8210 1663 8267 1668 8373 1670 8491 441 8550 1667 8608 +% 384 0 obj << -/D [1555 0 R /XYZ 150.705 235.436 null] +/D [1565 0 R /XYZ 150.705 716.092 null] >> -% 1559 0 obj +% 1568 0 obj << -/D [1555 0 R /XYZ 150.705 213.573 null] +/D [1565 0 R /XYZ 150.705 382.883 null] >> -% 1554 0 obj +% 1564 0 obj << -/Font << /F16 558 0 R /F30 769 0 R /F8 561 0 R /F27 560 0 R /F11 755 0 R /F14 772 0 R >> +/Font << /F16 582 0 R /F30 811 0 R /F27 584 0 R /F8 585 0 R /F11 797 0 R >> /ProcSet [ /PDF /Text ] >> -% 1562 0 obj +% 1572 0 obj << /Type /Page -/Contents 1563 0 R -/Resources 1561 0 R +/Contents 1573 0 R +/Resources 1571 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1553 0 R +/Parent 1562 0 R +/Annots [ 1570 0 R ] >> -% 1564 0 obj +% 1570 0 obj << -/D [1562 0 R /XYZ 98.895 753.953 null] +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [294.721 495.239 361.779 506.364] +/A << /S /GoTo /D (descdata) >> >> -% 405 0 obj +% 1574 0 obj << -/D [1562 0 R /XYZ 99.895 720.077 null] +/D [1572 0 R /XYZ 98.895 753.953 null] >> -% 1565 0 obj +% 388 0 obj << -/D [1562 0 R /XYZ 99.895 349.01 null] +/D [1572 0 R /XYZ 99.895 716.092 null] >> -% 1566 0 obj +% 1575 0 obj << -/D [1562 0 R /XYZ 99.895 315.192 null] +/D [1572 0 R /XYZ 99.895 259.346 null] >> -% 1561 0 obj +% 1571 0 obj << -/Font << /F16 558 0 R /F30 769 0 R /F8 561 0 R /F27 560 0 R /F14 772 0 R /F11 755 0 R >> +/Font << /F16 582 0 R /F30 811 0 R /F27 584 0 R /F8 585 0 R /F11 797 0 R >> /ProcSet [ /PDF /Text ] >> -% 1568 0 obj +% 1578 0 obj << /Type /Page -/Contents 1569 0 R -/Resources 1567 0 R +/Contents 1579 0 R +/Resources 1577 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1553 0 R ->> -% 1570 0 obj -<< -/D [1568 0 R /XYZ 149.705 753.953 null] ->> -% 409 0 obj -<< -/D [1568 0 R /XYZ 150.705 720.077 null] +/Parent 1562 0 R +/Annots [ 1576 0 R ] >> -% 1571 0 obj -<< -/D [1568 0 R /XYZ 150.705 442.659 null] ->> -% 1572 0 obj +% 1576 0 obj << -/D [1568 0 R /XYZ 150.705 396.886 null] +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [345.53 495.239 412.588 506.364] +/A << /S /GoTo /D (descdata) >> >> -% 1573 0 obj +% 1580 0 obj << -/D [1568 0 R /XYZ 150.705 365.005 null] +/D [1578 0 R /XYZ 149.705 753.953 null] >> -% 1567 0 obj +% 392 0 obj << -/Font << /F16 558 0 R /F30 769 0 R /F8 561 0 R /F27 560 0 R /F11 755 0 R /F14 772 0 R >> -/ProcSet [ /PDF /Text ] +/D [1578 0 R /XYZ 150.705 716.092 null] >> -% 1575 0 obj +% 1581 0 obj << -/Type /Page -/Contents 1576 0 R -/Resources 1574 0 R -/MediaBox [0 0 595.276 841.89] -/Parent 1553 0 R +/D [1578 0 R /XYZ 150.705 382.883 null] >> % 1577 0 obj << -/D [1575 0 R /XYZ 98.895 753.953 null] ->> -% 413 0 obj -<< -/D [1575 0 R /XYZ 99.895 720.077 null] ->> -% 1574 0 obj -<< -/Font << /F16 558 0 R /F30 769 0 R /F8 561 0 R /F27 560 0 R >> +/Font << /F16 582 0 R /F30 811 0 R /F27 584 0 R /F8 585 0 R /F11 797 0 R >> /ProcSet [ /PDF /Text ] >> -% 1579 0 obj +% 1584 0 obj << /Type /Page -/Contents 1580 0 R -/Resources 1578 0 R +/Contents 1585 0 R +/Resources 1583 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1553 0 R ->> -% 1581 0 obj -<< -/D [1579 0 R /XYZ 149.705 753.953 null] ->> -% 417 0 obj -<< -/D [1579 0 R /XYZ 150.705 720.077 null] +/Parent 1562 0 R +/Annots [ 1582 0 R ] >> -% 1578 0 obj +% 1582 0 obj << -/Font << /F16 558 0 R /F30 769 0 R /F8 561 0 R /F11 755 0 R /F27 560 0 R /F14 772 0 R >> -/ProcSet [ /PDF /Text ] +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [294.721 495.239 361.779 506.364] +/A << /S /GoTo /D (descdata) >> >> -% 1583 0 obj +% 1586 0 obj << -/Type /Page -/Contents 1584 0 R -/Resources 1582 0 R -/MediaBox [0 0 595.276 841.89] -/Parent 1586 0 R +/D [1584 0 R /XYZ 98.895 753.953 null] >> -% 1585 0 obj +% 396 0 obj << -/D [1583 0 R /XYZ 98.895 753.953 null] +/D [1584 0 R /XYZ 99.895 716.092 null] >> -% 421 0 obj +% 1587 0 obj << -/D [1583 0 R /XYZ 99.895 720.077 null] +/D [1584 0 R /XYZ 99.895 259.346 null] >> -% 1582 0 obj +% 1583 0 obj << -/Font << /F16 558 0 R /F30 769 0 R /F8 561 0 R /F27 560 0 R >> +/Font << /F16 582 0 R /F30 811 0 R /F27 584 0 R /F8 585 0 R /F11 797 0 R >> /ProcSet [ /PDF /Text ] >> -% 1588 0 obj +% 1590 0 obj << /Type /Page -/Contents 1589 0 R -/Resources 1587 0 R +/Contents 1591 0 R +/Resources 1589 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1586 0 R +/Parent 1562 0 R +/Annots [ 1588 0 R ] >> -% 1590 0 obj +% 1588 0 obj << -/D [1588 0 R /XYZ 149.705 753.953 null] +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [345.53 560.993 412.588 572.118] +/A << /S /GoTo /D (descdata) >> >> -% 425 0 obj +% 1592 0 obj << -/D [1588 0 R /XYZ 150.705 720.077 null] +/D [1590 0 R /XYZ 149.705 753.953 null] >> -% 1587 0 obj +% 400 0 obj << -/Font << /F16 558 0 R /F30 769 0 R /F8 561 0 R /F27 560 0 R >> -/ProcSet [ /PDF /Text ] +/D [1590 0 R /XYZ 150.705 716.092 null] >> -% 1592 0 obj +% 1593 0 obj << -/Type /Page -/Contents 1593 0 R -/Resources 1591 0 R -/MediaBox [0 0 595.276 841.89] -/Parent 1586 0 R +/D [1590 0 R /XYZ 150.705 356.98 null] >> % 1594 0 obj << -/D [1592 0 R /XYZ 98.895 753.953 null] ->> -% 429 0 obj -<< -/D [1592 0 R /XYZ 99.895 720.077 null] +/D [1590 0 R /XYZ 150.705 313.144 null] >> -% 1591 0 obj +% 1589 0 obj << -/Font << /F16 558 0 R /F30 769 0 R /F8 561 0 R /F27 560 0 R >> +/Font << /F16 582 0 R /F30 811 0 R /F27 584 0 R /F8 585 0 R >> /ProcSet [ /PDF /Text ] >> -% 1596 0 obj +% 1597 0 obj << /Type /Page -/Contents 1597 0 R -/Resources 1595 0 R +/Contents 1598 0 R +/Resources 1596 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1586 0 R ->> -% 1598 0 obj -<< -/D [1596 0 R /XYZ 149.705 753.953 null] ->> -% 433 0 obj -<< -/D [1596 0 R /XYZ 150.705 720.077 null] +/Parent 1602 0 R +/Annots [ 1595 0 R ] >> % 1595 0 obj << -/Font << /F16 558 0 R /F30 769 0 R /F8 561 0 R /F27 560 0 R /F11 755 0 R /F14 772 0 R >> -/ProcSet [ /PDF /Text ] ->> -% 1600 0 obj -<< -/Type /Page -/Contents 1601 0 R -/Resources 1599 0 R -/MediaBox [0 0 595.276 841.89] -/Parent 1586 0 R +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [294.721 574.94 361.779 586.065] +/A << /S /GoTo /D (descdata) >> >> -% 1602 0 obj +% 1599 0 obj << -/D [1600 0 R /XYZ 98.895 753.953 null] +/D [1597 0 R /XYZ 98.895 753.953 null] >> -% 437 0 obj +% 405 0 obj << -/D [1600 0 R /XYZ 99.895 720.077 null] +/D [1597 0 R /XYZ 99.895 716.092 null] >> -% 1603 0 obj +% 1600 0 obj << -/D [1600 0 R /XYZ 99.895 247.391 null] +/D [1597 0 R /XYZ 99.895 370.928 null] >> -% 1604 0 obj +% 1601 0 obj << -/D [1600 0 R /XYZ 99.895 213.573 null] +/D [1597 0 R /XYZ 99.895 339.047 null] >> -% 1599 0 obj +% 1596 0 obj << -/Font << /F16 558 0 R /F30 769 0 R /F8 561 0 R /F27 560 0 R /F14 772 0 R /F11 755 0 R >> +/Font << /F16 582 0 R /F30 811 0 R /F27 584 0 R /F8 585 0 R >> /ProcSet [ /PDF /Text ] >> -% 1606 0 obj +% 1605 0 obj << /Type /Page -/Contents 1607 0 R -/Resources 1605 0 R +/Contents 1606 0 R +/Resources 1604 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1586 0 R ->> -% 1608 0 obj -<< -/D [1606 0 R /XYZ 149.705 753.953 null] +/Parent 1602 0 R +/Annots [ 1603 0 R ] >> -% 441 0 obj +% 1603 0 obj << -/D [1606 0 R /XYZ 150.705 720.077 null] +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [345.53 484.857 423.049 495.982] +/A << /S /GoTo /D (spdata) >> >> -% 1609 0 obj +% 1607 0 obj << -/D [1606 0 R /XYZ 150.705 247.391 null] +/D [1605 0 R /XYZ 149.705 753.953 null] >> -% 1610 0 obj +% 409 0 obj << -/D [1606 0 R /XYZ 150.705 213.573 null] +/D [1605 0 R /XYZ 150.705 716.092 null] >> -% 1605 0 obj +% 1604 0 obj << -/Font << /F16 558 0 R /F30 769 0 R /F8 561 0 R /F27 560 0 R /F14 772 0 R /F11 755 0 R >> +/Font << /F16 582 0 R /F30 811 0 R /F27 584 0 R /F8 585 0 R /F11 797 0 R >> /ProcSet [ /PDF /Text ] >> -% 1612 0 obj +% 1609 0 obj << /Type /Page -/Contents 1613 0 R -/Resources 1611 0 R +/Contents 1610 0 R +/Resources 1608 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1617 0 R +/Parent 1602 0 R >> -% 1614 0 obj +% 1611 0 obj << -/D [1612 0 R /XYZ 98.895 753.953 null] +/D [1609 0 R /XYZ 98.895 753.953 null] >> -% 445 0 obj +% 1612 0 obj << -/D [1612 0 R /XYZ 99.895 720.077 null] +/D [1609 0 R /XYZ 99.895 496.913 null] >> -% 1615 0 obj +% 1613 0 obj << -/D [1612 0 R /XYZ 99.895 247.391 null] +/D [1609 0 R /XYZ 99.895 439.185 null] >> -% 1616 0 obj +% 1614 0 obj << -/D [1612 0 R /XYZ 99.895 213.573 null] +/D [1609 0 R /XYZ 99.895 418.983 null] >> -% 1611 0 obj +% 1608 0 obj << -/Font << /F16 558 0 R /F30 769 0 R /F8 561 0 R /F27 560 0 R /F14 772 0 R /F11 755 0 R >> +/Font << /F27 584 0 R /F8 585 0 R /F30 811 0 R /F16 582 0 R /F11 797 0 R >> /ProcSet [ /PDF /Text ] >> % 1619 0 obj @@ -20619,139 +20712,168 @@ stream /Contents 1620 0 R /Resources 1618 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1617 0 R +/Parent 1602 0 R +/Annots [ 1615 0 R 1616 0 R 1617 0 R ] >> -% 1621 0 obj +% 1615 0 obj << -/D [1619 0 R /XYZ 149.705 753.953 null] +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [345.53 529.112 423.049 540.237] +/A << /S /GoTo /D (spdata) >> >> -% 449 0 obj +% 1616 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [345.53 461.366 412.588 472.491] +/A << /S /GoTo /D (descdata) >> +>> +% 1617 0 obj << -/D [1619 0 R /XYZ 150.705 720.077 null] +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [372.153 405.575 439.211 416.7] +/A << /S /GoTo /D (precdata) >> >> -% 1622 0 obj +% 1621 0 obj << -/D [1619 0 R /XYZ 150.705 235.436 null] +/D [1619 0 R /XYZ 149.705 753.953 null] >> -% 1623 0 obj +% 413 0 obj << -/D [1619 0 R /XYZ 150.705 201.618 null] +/D [1619 0 R /XYZ 150.705 716.092 null] >> % 1618 0 obj << -/Font << /F16 558 0 R /F30 769 0 R /F8 561 0 R /F27 560 0 R /F14 772 0 R /F11 755 0 R >> +/Font << /F16 582 0 R /F8 585 0 R /F30 811 0 R /F27 584 0 R /F11 797 0 R >> /ProcSet [ /PDF /Text ] >> -% 1625 0 obj +% 1623 0 obj << /Type /Page -/Contents 1626 0 R -/Resources 1624 0 R +/Contents 1624 0 R +/Resources 1622 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1617 0 R +/Parent 1602 0 R >> -% 1627 0 obj +% 1625 0 obj << -/D [1625 0 R /XYZ 98.895 753.953 null] +/D [1623 0 R /XYZ 98.895 753.953 null] >> -% 453 0 obj +% 417 0 obj +<< +/D [1623 0 R /XYZ 99.895 716.092 null] +>> +% 1622 0 obj << -/D [1625 0 R /XYZ 99.895 720.077 null] +/Font << /F16 582 0 R /F30 811 0 R /F8 585 0 R /F11 797 0 R /F27 584 0 R >> +/ProcSet [ /PDF /Text ] >> -% 1628 0 obj +% 1627 0 obj << -/D [1625 0 R /XYZ 99.895 235.436 null] +/Type /Page +/Contents 1628 0 R +/Resources 1626 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1602 0 R >> % 1629 0 obj << -/D [1625 0 R /XYZ 99.895 201.618 null] +/D [1627 0 R /XYZ 149.705 753.953 null] >> -% 1624 0 obj +% 1630 0 obj << -/Font << /F16 558 0 R /F30 769 0 R /F8 561 0 R /F27 560 0 R /F14 772 0 R /F11 755 0 R >> -/ProcSet [ /PDF /Text ] +/D [1627 0 R /XYZ 150.705 702.144 null] >> % 1631 0 obj << -/Type /Page -/Contents 1632 0 R -/Resources 1630 0 R -/MediaBox [0 0 595.276 841.89] -/Parent 1617 0 R +/D [1627 0 R /XYZ 150.705 668.326 null] >> -% 1633 0 obj +% 1632 0 obj << -/D [1631 0 R /XYZ 149.705 753.953 null] +/D [1627 0 R /XYZ 150.705 624.491 null] >> -% 457 0 obj +% 1633 0 obj << -/D [1631 0 R /XYZ 150.705 720.077 null] +/D [1627 0 R /XYZ 150.705 556.745 null] >> % 1634 0 obj << -/D [1631 0 R /XYZ 150.705 274.156 null] +/D [1627 0 R /XYZ 150.705 500.954 null] >> % 1635 0 obj << -/D [1631 0 R /XYZ 150.705 241.264 null] +/D [1627 0 R /XYZ 150.705 468.52 null] +>> +% 1636 0 obj +<< +/D [1627 0 R /XYZ 150.705 425.182 null] >> % 1637 0 obj << -/D [1631 0 R /XYZ 150.705 153.877 null] +/D [1627 0 R /XYZ 150.705 383.395 null] >> -% 1630 0 obj +% 1638 0 obj << -/Font << /F16 558 0 R /F30 769 0 R /F8 561 0 R /F27 560 0 R /F14 772 0 R /F11 755 0 R /F10 771 0 R /F1 1636 0 R /F7 770 0 R >> +/D [1627 0 R /XYZ 150.705 355.499 null] +>> +% 1626 0 obj +<< +/Font << /F16 582 0 R /F8 585 0 R /F11 797 0 R /F14 814 0 R /F7 812 0 R >> /ProcSet [ /PDF /Text ] >> -% 1639 0 obj +% 1640 0 obj << /Type /Page -/Contents 1640 0 R -/Resources 1638 0 R +/Contents 1641 0 R +/Resources 1639 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1617 0 R ->> -% 1641 0 obj -<< -/D [1639 0 R /XYZ 98.895 753.953 null] +/Parent 1643 0 R >> -% 461 0 obj +% 1642 0 obj << -/D [1639 0 R /XYZ 99.895 720.077 null] +/D [1640 0 R /XYZ 98.895 753.953 null] >> -% 1642 0 obj +% 421 0 obj << -/D [1639 0 R /XYZ 99.895 223.48 null] +/D [1640 0 R /XYZ 99.895 716.092 null] >> -% 1638 0 obj +% 1639 0 obj << -/Font << /F16 558 0 R /F30 769 0 R /F8 561 0 R /F27 560 0 R /F11 755 0 R /F14 772 0 R >> +/Font << /F16 582 0 R /F8 585 0 R >> /ProcSet [ /PDF /Text ] >> -% 1644 0 obj +% 1645 0 obj << /Type /Page -/Contents 1645 0 R -/Resources 1643 0 R +/Contents 1646 0 R +/Resources 1644 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1617 0 R +/Parent 1643 0 R >> -% 1646 0 obj +% 1647 0 obj << -/D [1644 0 R /XYZ 149.705 753.953 null] +/D [1645 0 R /XYZ 149.705 753.953 null] >> -% 465 0 obj +% 425 0 obj << -/D [1644 0 R /XYZ 150.705 720.077 null] +/D [1645 0 R /XYZ 150.705 716.092 null] >> -% 1647 0 obj +% 1648 0 obj << -/D [1644 0 R /XYZ 150.705 223.48 null] +/D [1645 0 R /XYZ 150.705 235.436 null] >> -% 1643 0 obj +% 1649 0 obj +<< +/D [1645 0 R /XYZ 150.705 213.573 null] +>> +% 1644 0 obj << -/Font << /F16 558 0 R /F30 769 0 R /F8 561 0 R /F27 560 0 R /F11 755 0 R /F14 772 0 R >> +/Font << /F16 582 0 R /F30 811 0 R /F8 585 0 R /F27 584 0 R /F11 797 0 R /F14 814 0 R >> /ProcSet [ /PDF /Text ] >> % 1651 0 obj @@ -20760,2002 +20882,2267 @@ stream /Contents 1652 0 R /Resources 1650 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1654 0 R -/Annots [ 1648 0 R 1649 0 R ] +/Parent 1643 0 R >> -% 1648 0 obj +% 1653 0 obj << -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [145.477 501.77 152.451 512.895] -/A << /S /GoTo /D (figure.9) >> +/D [1651 0 R /XYZ 98.895 753.953 null] >> -% 1649 0 obj +% 429 0 obj << -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [146.734 346.63 158.689 357.478] -/A << /S /GoTo /D (figure.10) >> +/D [1651 0 R /XYZ 99.895 716.092 null] >> -% 1653 0 obj +% 1654 0 obj << -/D [1651 0 R /XYZ 98.895 753.953 null] +/D [1651 0 R /XYZ 99.895 349.01 null] >> -% 469 0 obj +% 1655 0 obj << -/D [1651 0 R /XYZ 99.895 716.092 null] +/D [1651 0 R /XYZ 99.895 315.192 null] >> % 1650 0 obj << -/Font << /F16 558 0 R /F8 561 0 R /F30 769 0 R >> +/Font << /F16 582 0 R /F30 811 0 R /F8 585 0 R /F27 584 0 R /F14 814 0 R /F11 797 0 R >> /ProcSet [ /PDF /Text ] >> -% 1658 0 obj +% 1657 0 obj << /Type /Page -/Contents 1659 0 R -/Resources 1657 0 R +/Contents 1658 0 R +/Resources 1656 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1654 0 R +/Parent 1643 0 R +>> +% 1659 0 obj +<< +/D [1657 0 R /XYZ 149.705 753.953 null] +>> +% 433 0 obj +<< +/D [1657 0 R /XYZ 150.705 716.092 null] >> % 1660 0 obj << -/D [1658 0 R /XYZ 149.705 753.953 null] +/D [1657 0 R /XYZ 150.705 442.659 null] >> % 1661 0 obj << -/D [1658 0 R /XYZ 159.073 687.737 null] +/D [1657 0 R /XYZ 150.705 396.886 null] >> % 1662 0 obj << -/D [1658 0 R /XYZ 159.073 691.025 null] +/D [1657 0 R /XYZ 150.705 365.005 null] >> -% 1664 0 obj +% 1656 0 obj << -/D [1658 0 R /XYZ 159.073 680.066 null] +/Font << /F16 582 0 R /F30 811 0 R /F8 585 0 R /F27 584 0 R /F11 797 0 R /F14 814 0 R >> +/ProcSet [ /PDF /Text ] >> -% 1665 0 obj +% 1664 0 obj << -/D [1658 0 R /XYZ 159.073 669.107 null] +/Type /Page +/Contents 1665 0 R +/Resources 1663 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1643 0 R >> % 1666 0 obj << -/D [1658 0 R /XYZ 159.073 658.148 null] +/D [1664 0 R /XYZ 98.895 753.953 null] +>> +% 437 0 obj +<< +/D [1664 0 R /XYZ 99.895 716.092 null] +>> +% 1663 0 obj +<< +/Font << /F16 582 0 R /F30 811 0 R /F8 585 0 R /F27 584 0 R >> +/ProcSet [ /PDF /Text ] +>> +% 1668 0 obj +<< +/Type /Page +/Contents 1669 0 R +/Resources 1667 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1643 0 R +>> +% 1670 0 obj +<< +/D [1668 0 R /XYZ 149.705 753.953 null] +>> +% 441 0 obj +<< +/D [1668 0 R /XYZ 150.705 716.092 null] +>> +% 1667 0 obj +<< +/Font << /F16 582 0 R /F30 811 0 R /F8 585 0 R /F11 797 0 R /F27 584 0 R /F14 814 0 R >> +/ProcSet [ /PDF /Text ] >> endstream endobj -1690 0 obj +1673 0 obj << -/Length 3725 +/Length 1191 >> stream 0 g 0 G 0 g 0 G -0 g 0 G -0 g 0 G BT -/F16 14.3462 Tf 99.895 680.226 Td [(psb)]TJ +/F16 11.9552 Tf 99.895 706.129 Td [(7.6)-1125(psb)]TJ ET q -1 0 0 1 125.163 680.425 cm -[]0 d 0 J 0.398 w 0 0 m 4.842 0 l S +1 0 0 1 151.587 706.328 cm +[]0 d 0 J 0.398 w 0 0 m 4.035 0 l S Q BT -/F16 14.3462 Tf 130.004 680.226 Td [(errpush|Pushes)-375(an)-375(error)-375(co)-31(de)-375(on)31(to)-375(the)]TJ -30.109 -17.933 Td [(error)-375(stac)31(k)]TJ/F27 9.9626 Tf 1.377 -35.768 Td [(c)-138(a)-138(l)-139(l)]TJ/F8 9.9626 Tf 29.712 0 Td [(p)-120(s)-121(b)]TJ +/F16 11.9552 Tf 155.621 706.129 Td [(wtime)-375(|)-375(W)94(all)-375(clo)-32(c)32(k)-375(timing)]TJ +0 g 0 G +0 g 0 G +/F30 9.9626 Tf -55.726 -18.389 Td [(time)-525(=)-525(psb_wtime\050\051)]TJ/F8 9.9626 Tf 14.944 -21.918 Td [(This)-474(function)-473(returns)-474(a)-473(w)27(all)-473(clo)-28(c)28(k)-474(timer.)-865(The)-474(resolution)-473(of)-474(the)-473(timer)-474(is)]TJ -14.944 -11.955 Td [(dep)-28(enden)28(t)-333(on)-334(the)-333(underlying)-333(parallel)-333(en)27(vir)1(onme)-1(n)28(t)-333(implemen)28(tation.)]TJ +0 g 0 G +/F27 9.9626 Tf 0 -19.926 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(Exit)]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(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 + -5.368 -491.698 Td [(115)]TJ +0 g 0 G ET -q -1 0 0 1 150.181 626.724 cm -[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S -Q + +endstream +endobj +1679 0 obj +<< +/Length 1511 +>> +stream +0 g 0 G +0 g 0 G BT -/F8 9.9626 Tf 154.37 626.525 Td [(e)-121(r)-120(r)-120(p)-121(u)-120(s)-121(h)-226(\050)-244(e)-138(r)-138(r)]TJ +/F16 11.9552 Tf 150.705 706.129 Td [(7.7)-1125(psb)]TJ ET q -1 0 0 1 219.855 626.724 cm -[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +1 0 0 1 202.396 706.328 cm +[]0 d 0 J 0.398 w 0 0 m 4.035 0 l S Q BT -/F8 9.9626 Tf 224.221 626.525 Td [(c)-438(,)-825(r)]TJ +/F16 11.9552 Tf 206.431 706.129 Td [(barrier)-352(|)-352(Sinc)31(hronization)-352(p)-31(oin)31(t)-352(parallel)-352(en)31(viron-)]TJ -25.091 -13.948 Td [(men)31(t)]TJ +0 g 0 G +0 g 0 G +/F30 9.9626 Tf -30.635 -18.389 Td [(call)-525(psb_barrier\050icontxt\051)]TJ/F8 9.9626 Tf 14.944 -21.918 Td [(This)-398(subroutine)-397(acts)-398(as)-398(an)-398(explicit)-398(sync)28(hronization)-397(p)-28(oin)28(t)-398(for)-398(the)-398(PSBLAS)]TJ -14.944 -11.955 Td [(parallel)-333(virtual)-333(mac)27(hine.)]TJ +0 g 0 G +/F27 9.9626 Tf 0 -19.925 Td [(T)32(yp)-32(e:)]TJ +0 g 0 G +/F8 9.9626 Tf 33.797 0 Td [(Sync)28(hronous.)]TJ +0 g 0 G +/F27 9.9626 Tf -33.797 -19.926 Td [(On)-383(En)32(try)]TJ +0 g 0 G +0 g 0 G + 0 -19.925 Td [(icon)32(txt)]TJ +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.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.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 + 139.476 -441.884 Td [(116)]TJ +0 g 0 G ET -q -1 0 0 1 249.141 626.724 cm -[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S -Q + +endstream +endobj +1683 0 obj +<< +/Length 1370 +>> +stream +0 g 0 G +0 g 0 G BT -/F8 9.9626 Tf 252.772 626.525 Td [(n)-64(a)-65(m)-64(e)-290(,)-923(i)]TJ +/F16 11.9552 Tf 99.895 706.129 Td [(7.8)-1125(psb)]TJ ET q -1 0 0 1 297.774 626.724 cm -[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +1 0 0 1 151.587 706.328 cm +[]0 d 0 J 0.398 w 0 0 m 4.035 0 l S Q BT -/F8 9.9626 Tf 302.378 626.525 Td [(e)-162(r)-162(r)-485(,)-913(a)]TJ +/F16 11.9552 Tf 155.621 706.129 Td [(ab)-31(ort)-375(|)-375(Ab)-32(ort)-375(a)-374(computation)]TJ +0 g 0 G +0 g 0 G +/F30 9.9626 Tf -55.726 -18.389 Td [(call)-525(psb_abort\050icontxt\051)]TJ/F8 9.9626 Tf 14.944 -21.918 Td [(This)-333(subroutine)-334(ab)-27(orts)-334(computation)-333(on)-333(the)-334(paral)1(le)-1(l)-333(virtual)-333(mac)28(hine.)]TJ +0 g 0 G +/F27 9.9626 Tf -14.944 -19.926 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 [(icon)32(txt)]TJ +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 + 139.477 -467.787 Td [(117)]TJ +0 g 0 G +ET + +endstream +endobj +1687 0 obj +<< +/Length 4543 +>> +stream +0 g 0 G +0 g 0 G +BT +/F16 11.9552 Tf 150.705 706.129 Td [(7.9)-1125(psb)]TJ ET q -1 0 0 1 341.632 626.724 cm -[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +1 0 0 1 202.396 706.328 cm +[]0 d 0 J 0.398 w 0 0 m 4.035 0 l S Q BT -/F8 9.9626 Tf 346.136 626.525 Td [(e)-152(r)-152(r)-258(\051)]TJ +/F16 11.9552 Tf 206.431 706.129 Td [(b)-31(cast)-375(|)-375(Broadcast)-375(data)]TJ +0 g 0 G 0 g 0 G +/F30 9.9626 Tf -55.726 -18.389 Td [(call)-525(psb_bcast\050icontxt,)-525(dat,)-525(root\051)]TJ/F8 9.9626 Tf 14.944 -21.918 Td [(This)-338(subroutine)-338(implemen)27(ts)-338(a)-338(broadcast)-338(op)-28(eration)-338(based)-339(on)-338(the)-338(underlying)]TJ -14.944 -11.955 Td [(comm)28(unication)-334(lib)1(rary)83(.)]TJ +0 g 0 G +/F27 9.9626 Tf 0 -19.926 Td [(T)32(yp)-32(e:)]TJ 0 g 0 G +/F8 9.9626 Tf 33.797 0 Td [(Sync)28(hronous.)]TJ 0 g 0 G -/F27 9.9626 Tf -246.241 -17.933 Td [(T)32(yp)-32(e:)]TJ +/F27 9.9626 Tf -33.797 -19.925 Td [(On)-383(En)32(try)]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 -19.925 Td [(icon)32(txt)]TJ 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 - 0 -19.926 Td [(err)]TJ -ET -q -1 0 0 1 115.271 568.941 cm -[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S -Q -BT -/F27 9.9626 Tf 118.708 568.741 Td [(c)]TJ +/F27 9.9626 Tf -24.907 -19.925 Td [(dat)]TJ 0 g 0 G -/F8 9.9626 Tf 10.073 0 Td [(the)-333(error)-334(co)-27(de)]TJ -3.979 -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 [(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 +/F8 9.9626 Tf 21.371 0 Td [(On)-333(the)-334(ro)-27(ot)-334(pro)-27(ces)-1(s,)-333(the)-333(data)-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.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 [(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)-403(a)-403(rank)-404(1)-403(or)-403(2)-403(arra)28(y)83(,)-421(or)-403(a)-403(c)28(haracter)-404(or)-403(logical)-403(v)56(ariable,)-421(whic)28(h)-403(ma)27(y)-403(b)-28(e)]TJ 0 -11.955 Td [(a)-426(s)-1(calar)-426(or)-426(rank)-427(1)-426(arra)27(y)84(.)-1151(T)28(yp)-28(e,)-449(kind,)-450(rank)-427(and)-426(size)-427(m)28(ust)-426(agree)-427(on)-426(all)]TJ 0 -11.955 Td [(pro)-28(cesses.)]TJ 0 g 0 G -/F27 9.9626 Tf -24.907 -19.926 Td [(r)]TJ -ET -q -1 0 0 1 105.301 501.195 cm -[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S -Q -BT -/F27 9.9626 Tf 108.738 500.995 Td [(name)]TJ +/F27 9.9626 Tf -24.907 -19.926 Td [(ro)-32(ot)]TJ 0 g 0 G -/F8 9.9626 Tf 31.715 0 Td [(the)-333(soutine)-334(where)-333(the)-333(error)-334(has)-333(b)-28(een)-333(caugh)28(t.)]TJ -15.651 -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 [(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(string.)]TJ +/F8 9.9626 Tf 25.93 0 Td [(Ro)-28(ot)-333(pro)-28(cess)-333(holding)-334(data)-333(to)-333(b)-28(e)-333(broadcast.)]TJ -1.023 -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.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(optional)]TJ/F8 9.9626 Tf 40.577 0 Td [(.)]TJ -70.188 -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(alue)-333(0)]TJ/F11 9.9626 Tf 138.176 0 Td [(<)]TJ/F8 9.9626 Tf 7.749 0 Td [(=)]TJ/F11 9.9626 Tf 10.516 0 Td [(r)-28(oot)-278(<)]TJ/F8 9.9626 Tf 28.543 0 Td [(=)]TJ/F11 9.9626 Tf 10.516 0 Td [(np)]TJ/F14 9.9626 Tf 13.207 0 Td [(\000)]TJ/F8 9.9626 Tf 9.962 0 Td [(1,)-333(default)-334(0)]TJ 0 g 0 G -/F27 9.9626 Tf -24.907 -31.881 Td [(i)]TJ -ET -q -1 0 0 1 103.765 421.494 cm -[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S -Q -BT -/F27 9.9626 Tf 107.202 421.294 Td [(err)]TJ +/F27 9.9626 Tf -243.576 -21.918 Td [(On)-383(Return)]TJ 0 g 0 G -/F8 9.9626 Tf 19.67 0 Td [(addional)-333(info)-333(for)-334(error)-333(co)-28(de)]TJ -2.07 -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 [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(in)28(teger)-333(arra)27(y)]TJ 0 g 0 G -/F27 9.9626 Tf -24.907 -31.881 Td [(a)]TJ -ET -q -1 0 0 1 106.152 353.748 cm -[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S -Q -BT -/F27 9.9626 Tf 109.589 353.548 Td [(err)]TJ + 0 -19.926 Td [(dat)]TJ 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.456 -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 [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(string.)]TJ +/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 -227.245 Td [(123)]TJ + 139.477 -170.9 Td [(118)]TJ 0 g 0 G ET endstream endobj -1696 0 obj +1691 0 obj << -/Length 1400 +/Length 5157 >> stream 0 g 0 G 0 g 0 G -0 g 0 G -0 g 0 G -BT -/F16 14.3462 Tf 150.705 680.226 Td [(psb)]TJ -ET -q -1 0 0 1 175.972 680.425 cm -[]0 d 0 J 0.398 w 0 0 m 4.842 0 l S -Q BT -/F16 14.3462 Tf 180.814 680.226 Td [(error|Prin)31(ts)-375(the)-375(error)-375(stac)32(k)-375(con)31(ten)31(t)-375(and)]TJ -30.109 -17.933 Td [(ab)-31(orts)-375(execution)]TJ/F27 9.9626 Tf 1.377 -35.768 Td [(c)-138(a)-138(l)-139(l)]TJ/F8 9.9626 Tf 29.921 0 Td [(p)-141(s)-142(b)]TJ +/F16 11.9552 Tf 99.895 706.129 Td [(7.10)-1125(psb)]TJ ET q -1 0 0 1 201.829 626.724 cm -[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +1 0 0 1 158.311 706.328 cm +[]0 d 0 J 0.398 w 0 0 m 4.035 0 l S Q BT -/F8 9.9626 Tf 206.228 626.525 Td [(e)-142(r)-141(r)-141(o)-142(r)-247(\050)-245(i)-140(c)-139(o)-140(n)-139(t)-140(x)-140(t)-245(\051)]TJ +/F16 11.9552 Tf 162.346 706.129 Td [(sum)-375(|)-375(Global)-375(sum)]TJ 0 g 0 G 0 g 0 G +/F30 9.9626 Tf -62.451 -18.389 Td [(call)-525(psb_sum\050icontxt,)-525(dat,)-525(root\051)]TJ/F8 9.9626 Tf 14.944 -21.918 Td [(This)-318(subroutine)-319(implemen)28(ts)-318(a)-319(sum)-318(reduction)-318(op)-28(eration)-318(based)-319(on)-318(the)-318(under-)]TJ -14.944 -11.955 Td [(lying)-333(comm)27(unication)-333(library)84(.)]TJ 0 g 0 G -/F27 9.9626 Tf -55.523 -17.933 Td [(T)32(yp)-32(e:)]TJ +/F27 9.9626 Tf 0 -19.926 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 33.797 0 Td [(Sync)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.926 Td [(icon)32(txt)]TJ + 0 -19.925 Td [(icon)32(txt)]TJ +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.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 [(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 +/F27 9.9626 Tf -24.907 -19.925 Td [(dat)]TJ +0 g 0 G +/F8 9.9626 Tf 21.371 0 Td [(The)-333(lo)-28(cal)-334(con)28(tribution)-333(to)-333(the)-334(global)-333(sum.)]TJ 3.536 -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 [(inout)]TJ/F8 9.9626 Tf 26.096 0 Td [(.)]TJ -59.582 -11.955 Td [(Sp)-28(eci\014ed)-339(as:)-458(an)-339(in)28(te)-1(ger,)-341(real)-340(or)-339(complex)-340(v)56(ariable,)-342(whic)28(h)-340(ma)28(y)-339(b)-28(e)-340(a)-340(scalar,)]TJ 0 -11.955 Td [(or)-464(a)-464(rank)-463(1)-464(or)-464(2)-464(arra)28(y)83(.)-1299(T)28(yp)-28(e,)-497(kind,)-496(rank)-464(and)-463(size)-464(m)27(ust)-463(agree)-464(on)-464(all)]TJ 0 -11.955 Td [(pro)-28(cesses.)]TJ +0 g 0 G +/F27 9.9626 Tf -24.907 -19.926 Td [(ro)-32(ot)]TJ +0 g 0 G +/F8 9.9626 Tf 25.931 0 Td [(Pro)-28(cess)-310(to)-309(hold)-310(the)-310(\014nal)-310(sum,)-314(or)]TJ/F14 9.9626 Tf 144.053 0 Td [(\000)]TJ/F8 9.9626 Tf 7.748 0 Td [(1)-310(to)-310(mak)28(e)-310(it)-309(a)27(v)56(ailable)-310(on)-310(all)-309(pro)-28(cesses.)]TJ -152.825 -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 [(optional)]TJ/F8 9.9626 Tf 40.577 0 Td [(.)]TJ -70.188 -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)-333(v)55(alue)]TJ/F14 9.9626 Tf 130.428 0 Td [(\000)]TJ/F8 9.9626 Tf 7.749 0 Td [(1)]TJ/F11 9.9626 Tf 7.748 0 Td [(<)]TJ/F8 9.9626 Tf 7.749 0 Td [(=)]TJ/F11 9.9626 Tf 10.516 0 Td [(r)-28(oot)-278(<)]TJ/F8 9.9626 Tf 28.543 0 Td [(=)]TJ/F11 9.9626 Tf 10.517 0 Td [(np)]TJ/F14 9.9626 Tf 13.206 0 Td [(\000)]TJ/F8 9.9626 Tf 9.962 0 Td [(1,)-333(default)-334(-1.)]TJ +0 g 0 G +/F27 9.9626 Tf -251.325 -21.918 Td [(On)-383(Return)]TJ +0 g 0 G +0 g 0 G + 0 -19.925 Td [(dat)]TJ +0 g 0 G +/F8 9.9626 Tf 21.372 0 Td [(On)-333(destination)-333(pro)-28(cess\050es\051,)-334(the)-333(result)-333(of)-334(the)-333(sum)-333(op)-28(eration.)]TJ 3.535 -11.956 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.899 0 Td [(.)]TJ -71.51 -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)-339(as:)-458(an)-339(in)28(te)-1(ger,)-341(real)-340(or)-339(complex)-340(v)56(ariable,)-342(whic)28(h)-340(ma)28(y)-339(b)-28(e)-340(a)-340(scalar,)]TJ 0 -11.955 Td [(or)-333(a)-334(rank)-333(1)-333(or)-334(2)-333(arra)28(y)83(.)]TJ 0 -11.955 Td [(T)28(yp)-28(e,)-333(kind,)-334(r)1(ank)-334(and)-333(size)-333(m)27(ust)-333(agree)-333(on)-334(all)-333(pro)-28(cesses.)]TJ/F16 11.9552 Tf -24.907 -21.918 Td [(Notes)]TJ +0 g 0 G +/F8 9.9626 Tf 12.177 -19.925 Td [(1.)]TJ +0 g 0 G + [-500(The)]TJ/F30 9.9626 Tf 32.469 0 Td [(dat)]TJ/F8 9.9626 Tf 18.273 0 Td [(argumen)28(t)-259(is)-259(b)-28(oth)-259(input)-259(and)-259(output,)-274(and)-259(its)-259(v)55(alue)-259(ma)28(y)-259(b)-28(e)-259(c)28(hanged)]TJ -38.012 -11.956 Td [(ev)28(en)-334(on)-333(pro)-28(cesses)-333(di\013eren)28(t)-334(from)-333(the)-333(\014nal)-334(result)-333(destination.)]TJ +0 g 0 G + -12.73 -19.925 Td [(2.)]TJ 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.378 0 Td [(global)]TJ/F8 9.9626 Tf -32.378 -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.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.)]TJ + [-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 - 139.476 -430.483 Td [(124)]TJ + 99.986 -109.132 Td [(119)]TJ 0 g 0 G ET endstream endobj -1702 0 obj +1697 0 obj << -/Length 1631 +/Length 5196 >> stream 0 g 0 G 0 g 0 G -0 g 0 G -0 g 0 G -BT -/F16 14.3462 Tf 99.895 680.226 Td [(psb)]TJ -ET -q -1 0 0 1 125.163 680.425 cm -[]0 d 0 J 0.398 w 0 0 m 4.842 0 l S -Q -BT -/F16 14.3462 Tf 130.004 680.226 Td [(set)]TJ -ET -q -1 0 0 1 150.979 680.425 cm -[]0 d 0 J 0.398 w 0 0 m 4.842 0 l S -Q -BT -/F16 14.3462 Tf 155.821 680.226 Td [(errv)31(erb)-31(osit)31(y|Sets)-375(the)-375(v)31(erb)-31(osit)31(y)-375(of)-375(error)]TJ -55.926 -17.933 Td [(messages.)]TJ/F27 9.9626 Tf 1.377 -35.768 Td [(c)-138(a)-138(l)-139(l)]TJ/F8 9.9626 Tf 30.082 0 Td [(p)-158(s)-157(b)]TJ -ET -q -1 0 0 1 151.663 626.724 cm -[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S -Q BT -/F8 9.9626 Tf 156.223 626.525 Td [(s)-158(e)-157(t)]TJ +/F16 11.9552 Tf 150.705 706.129 Td [(7.11)-1125(psb)]TJ ET q -1 0 0 1 173.764 626.724 cm -[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +1 0 0 1 209.121 706.328 cm +[]0 d 0 J 0.398 w 0 0 m 4.035 0 l S Q BT -/F8 9.9626 Tf 178.324 626.525 Td [(e)-158(r)-157(r)-158(v)-158(e)-157(r)-158(b)-157(o)-158(s)-158(i)-157(t)-158(y)-263(\050)-142(v)-142(\051)]TJ +/F16 11.9552 Tf 213.156 706.129 Td [(max)-375(|)-375(Global)-375(maxim)31(um)]TJ 0 g 0 G 0 g 0 G +/F30 9.9626 Tf -62.451 -18.389 Td [(call)-525(psb_max\050icontxt,)-525(dat,)-525(root\051)]TJ/F8 9.9626 Tf 14.944 -21.918 Td [(This)-326(subroutine)-326(implemen)28(ts)-326(a)-326(maxim)27(um)-326(v)56(aluereduction)-326(op)-28(eration)-326(based)-326(on)]TJ -14.944 -11.955 Td [(the)-333(underlying)-333(com)-1(m)28(unication)-333(library)83(.)]TJ 0 g 0 G -/F27 9.9626 Tf -78.429 -17.933 Td [(T)32(yp)-32(e:)]TJ +/F27 9.9626 Tf 0 -19.926 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 33.797 0 Td [(Sync)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.926 Td [(v)]TJ + 0 -19.925 Td [(icon)32(txt)]TJ +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 +/F27 9.9626 Tf -24.907 -19.925 Td [(dat)]TJ +0 g 0 G +/F8 9.9626 Tf 21.371 0 Td [(The)-333(lo)-28(cal)-333(c)-1(on)28(tribution)-333(to)-333(the)-334(gl)1(obal)-334(maxim)28(um.)]TJ 3.536 -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.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 [(inout)]TJ/F8 9.9626 Tf 26.097 0 Td [(.)]TJ -59.582 -11.955 Td [(Sp)-28(eci\014ed)-326(as:)-442(an)-326(in)27(teger)-326(or)-327(real)-327(v)56(ariable,)-328(whic)28(h)-327(ma)28(y)-327(b)-28(e)-327(a)-326(s)-1(calar,)-328(or)-326(a)-327(rank)]TJ 0 -11.955 Td [(1)-333(or)-334(2)-333(arra)28(y)83(.)-778(T)28(yp)-27(e)-1(,)-333(kind,)-333(rank)-333(and)-334(size)-333(m)28(ust)-334(agree)-333(on)-333(all)-334(pro)-27(cesse)-1(s.)]TJ +0 g 0 G +/F27 9.9626 Tf -24.907 -19.925 Td [(ro)-32(ot)]TJ +0 g 0 G +/F8 9.9626 Tf 25.93 0 Td [(Pro)-28(cess)-305(to)-306(hold)-305(the)-305(\014nal)-305(m)-1(ax)1(im)27(um,)-311(or)]TJ/F14 9.9626 Tf 169.158 0 Td [(\000)]TJ/F8 9.9626 Tf 7.749 0 Td [(1)-305(to)-306(mak)28(e)-305(it)-306(a)28(v)56(ailable)-306(on)-305(all)-305(pro-)]TJ -177.93 -11.956 Td [(cesses.)]TJ 0 -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 [(optional)]TJ/F8 9.9626 Tf 40.577 0 Td [(.)]TJ -70.188 -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:)-445(an)-333(in)28(teger)-333(v)55(alue)]TJ/F14 9.9626 Tf 130.427 0 Td [(\000)]TJ/F8 9.9626 Tf 7.749 0 Td [(1)]TJ/F11 9.9626 Tf 7.749 0 Td [(<)]TJ/F8 9.9626 Tf 7.749 0 Td [(=)]TJ/F11 9.9626 Tf 10.516 0 Td [(r)-28(oot)-278(<)]TJ/F8 9.9626 Tf 28.543 0 Td [(=)]TJ/F11 9.9626 Tf 10.516 0 Td [(np)]TJ/F14 9.9626 Tf 13.206 0 Td [(\000)]TJ/F8 9.9626 Tf 9.963 0 Td [(1,)-333(default)-334(-1.)]TJ +0 g 0 G +/F27 9.9626 Tf -251.325 -33.873 Td [(On)-383(Return)]TJ +0 g 0 G +0 g 0 G + 0 -19.926 Td [(dat)]TJ +0 g 0 G +/F8 9.9626 Tf 21.371 0 Td [(On)-333(destination)-334(pr)1(o)-28(cess\050es)-1(\051,)-333(the)-333(result)-333(of)-334(the)-333(maxim)28(um)-334(op)-27(eration.)]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 [(in)]TJ/F8 9.9626 Tf 9.548 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-326(as)-1(:)-441(an)-326(in)27(teger)-326(or)-327(real)-327(v)56(ariable,)-328(whic)28(h)-327(ma)28(y)-327(b)-28(e)-327(a)-326(s)-1(calar,)-328(or)-326(a)-327(rank)]TJ 0 -11.955 Td [(1)-333(or)-334(2)-333(arra)28(y)83(.)-778(T)28(yp)-27(e)-1(,)-333(kind,)-333(rank)-333(and)-334(size)-333(m)28(ust)-334(agree)-333(on)-333(all)-334(pro)-27(cesse)-1(s.)]TJ/F16 11.9552 Tf -24.907 -21.918 Td [(Notes)]TJ +0 g 0 G +/F8 9.9626 Tf 12.177 -19.925 Td [(1.)]TJ +0 g 0 G + [-500(The)]TJ/F30 9.9626 Tf 32.469 0 Td [(dat)]TJ/F8 9.9626 Tf 18.272 0 Td [(argumen)28(t)-259(is)-259(b)-28(oth)-259(input)-259(and)-259(output,)-274(and)-259(its)-259(v)55(alue)-259(ma)28(y)-259(b)-28(e)-259(c)28(hanged)]TJ -38.011 -11.956 Td [(ev)28(en)-334(on)-333(pro)-28(cesses)-333(di\013eren)28(t)-334(from)-333(the)-333(\014nal)-334(result)-333(destination.)]TJ +0 g 0 G + -12.73 -19.925 Td [(2.)]TJ 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.879 -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 [(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(an)-333(in)28(teger.)]TJ + [-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 - 139.477 -430.483 Td [(125)]TJ + 99.987 -109.132 Td [(120)]TJ 0 g 0 G ET endstream endobj -1708 0 obj +1703 0 obj << -/Length 2106 +/Length 5171 >> stream 0 g 0 G 0 g 0 G -0 g 0 G -0 g 0 G -BT -/F16 14.3462 Tf 150.705 680.226 Td [(psb)]TJ -ET -q -1 0 0 1 175.972 680.425 cm -[]0 d 0 J 0.398 w 0 0 m 4.842 0 l S -Q -BT -/F16 14.3462 Tf 180.814 680.226 Td [(set)]TJ -ET -q -1 0 0 1 201.789 680.425 cm -[]0 d 0 J 0.398 w 0 0 m 4.842 0 l S -Q -BT -/F16 14.3462 Tf 206.631 680.226 Td [(erraction|Set)-375(the)-375(t)31(yp)-31(e)-375(of)-375(action)-375(to)-375(b)-31(e)]TJ -55.926 -17.933 Td [(tak)31(en)-375(up)-31(on)-375(error)-375(condition.)]TJ/F27 9.9626 Tf 1.377 -35.768 Td [(c)-138(a)-138(l)-139(l)]TJ/F8 9.9626 Tf 30.09 0 Td [(p)-158(s)-159(b)]TJ -ET -q -1 0 0 1 202.505 626.724 cm -[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S -Q -BT -/F8 9.9626 Tf 207.072 626.525 Td [(s)-159(e)-158(t)]TJ -ET -q -1 0 0 1 224.638 626.724 cm -[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S -Q BT -/F8 9.9626 Tf 229.206 626.525 Td [(e)-158(r)-159(r)-158(a)-159(c)-158(t)-159(i)-158(o)-159(n)-264(\050)-265(e)-160(r)-160(r)]TJ +/F16 11.9552 Tf 99.895 706.129 Td [(7.12)-1125(psb)]TJ ET q -1 0 0 1 307.391 626.724 cm -[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +1 0 0 1 158.311 706.328 cm +[]0 d 0 J 0.398 w 0 0 m 4.035 0 l S Q BT -/F8 9.9626 Tf 311.973 626.525 Td [(a)-160(c)-160(t)-265(\051)]TJ +/F16 11.9552 Tf 162.346 706.129 Td [(min)-375(|)-375(Global)-375(minim)31(um)]TJ 0 g 0 G 0 g 0 G +/F30 9.9626 Tf -62.451 -18.389 Td [(call)-525(psb_min\050icontxt,)-525(dat,)-525(root\051)]TJ/F8 9.9626 Tf 14.944 -21.918 Td [(This)-311(subroutine)-312(implemen)28(ts)-311(a)-312(minim)28(um)-312(v)56(alue)-311(reduction)-312(op)-27(eration)-312(based)-311(on)]TJ -14.944 -11.955 Td [(the)-333(underlying)-334(comm)28(unication)-333(library)83(.)]TJ 0 g 0 G -/F27 9.9626 Tf -161.268 -17.933 Td [(T)32(yp)-32(e:)]TJ +/F27 9.9626 Tf 0 -19.926 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 33.797 0 Td [(Sync)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.926 Td [(err)]TJ -ET -q -1 0 0 1 166.08 568.941 cm -[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S -Q -BT -/F27 9.9626 Tf 169.517 568.741 Td [(act)]TJ + 0 -19.925 Td [(icon)32(txt)]TJ 0 g 0 G -/F8 9.9626 Tf 20.098 0 Td [(the)-333(t)27(yp)-27(e)-334(of)-333(action.)]TJ -14.004 -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.547 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(in)28(teger.)-445(P)28(ossible)-333(v)55(alu)1(e)-1(s:)]TJ/F30 9.9626 Tf 180.269 0 Td [(psb_act_ret)]TJ/F8 9.9626 Tf 57.534 0 Td [(,)]TJ/F30 9.9626 Tf 6.088 0 Td [(psb_act_abort)]TJ/F8 9.9626 Tf 67.995 0 Td [(.)]TJ +/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.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 [(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 - -172.409 -430.483 Td [(126)]TJ +/F27 9.9626 Tf -24.907 -19.925 Td [(dat)]TJ 0 g 0 G -ET - -endstream -endobj -1714 0 obj -<< -/Length 537 ->> -stream +/F8 9.9626 Tf 21.371 0 Td [(The)-333(lo)-28(cal)-334(con)28(tribution)-333(to)-333(the)-334(global)-333(minim)28(um.)]TJ 3.536 -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.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 [(inout)]TJ/F8 9.9626 Tf 26.096 0 Td [(.)]TJ -59.582 -11.955 Td [(Sp)-28(eci\014ed)-326(as)-1(:)-441(an)-326(in)27(teger)-326(or)-327(real)-327(v)56(ariable,)-328(whic)28(h)-327(ma)28(y)-327(b)-28(e)-327(a)-327(scalar,)-328(or)-326(a)-327(rank)]TJ 0 -11.955 Td [(1)-333(or)-334(2)-333(arra)28(y)83(.)-778(T)28(yp)-28(e,)-333(kind,)-333(rank)-333(and)-334(size)-333(m)28(ust)-334(agree)-333(on)-333(all)-334(pro)-27(cess)-1(es.)]TJ 0 g 0 G +/F27 9.9626 Tf -24.907 -19.925 Td [(ro)-32(ot)]TJ 0 g 0 G -BT -/F16 14.3462 Tf 99.895 706.129 Td [(9)-1125(Utilities)]TJ/F8 9.9626 Tf 0 -21.821 Td [(W)83(e)-412(ha)27(v)28(e)-412(s)-1(ome)-412(utilities)-413(a)28(v)55(ailab)1(le)-413(for)-413(input)-412(and)-413(output)-412(of)-413(sparse)-413(matrices;)-452(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.844 0 Td [(psb_util_mod)]TJ/F8 9.9626 Tf 62.764 0 Td [(.)]TJ +/F8 9.9626 Tf 25.931 0 Td [(Pro)-28(cess)-276(to)-276(hold)-276(the)-276(\014nal)-275(v)55(alue,)-287(or)]TJ/F14 9.9626 Tf 146.411 0 Td [(\000)]TJ/F8 9.9626 Tf 7.749 0 Td [(1)-276(to)-276(mak)28(e)-276(it)-276(a)28(v)55(ailable)-276(on)-276(all)-276(p)1(ro)-28(cesses.)]TJ -155.184 -11.956 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 [(optional)]TJ/F8 9.9626 Tf 40.577 0 Td [(.)]TJ -70.188 -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)-333(v)55(alue)]TJ/F14 9.9626 Tf 130.428 0 Td [(\000)]TJ/F8 9.9626 Tf 7.749 0 Td [(1)]TJ/F11 9.9626 Tf 7.748 0 Td [(<)]TJ/F8 9.9626 Tf 7.749 0 Td [(=)]TJ/F11 9.9626 Tf 10.516 0 Td [(r)-28(oot)-278(<)]TJ/F8 9.9626 Tf 28.543 0 Td [(=)]TJ/F11 9.9626 Tf 10.517 0 Td [(np)]TJ/F14 9.9626 Tf 13.206 0 Td [(\000)]TJ/F8 9.9626 Tf 9.962 0 Td [(1,)-333(default)-334(-1.)]TJ +0 g 0 G +/F27 9.9626 Tf -251.325 -33.873 Td [(On)-383(Return)]TJ +0 g 0 G +0 g 0 G + 0 -19.925 Td [(dat)]TJ +0 g 0 G +/F8 9.9626 Tf 21.372 0 Td [(On)-333(destination)-333(pro)-28(cess\050es\051,)-334(the)-333(result)-333(of)-334(the)-333(minim)28(um)-334(op)-27(eration.)]TJ 3.535 -11.956 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.899 0 Td [(.)]TJ -71.51 -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)-326(as)-1(:)-441(an)-326(in)27(teger)-326(or)-327(real)-327(v)56(ariable,)-328(whic)28(h)-327(ma)28(y)-327(b)-28(e)-327(a)-327(scalar,)-328(or)-326(a)-327(rank)]TJ 0 -11.955 Td [(1)-333(or)-334(2)-333(arra)28(y)83(.)]TJ 0 -11.955 Td [(T)28(yp)-28(e,)-333(kind,)-334(r)1(ank)-334(and)-333(size)-333(m)27(ust)-333(agree)-333(on)-334(all)-333(pro)-28(cesses.)]TJ/F16 11.9552 Tf -24.907 -21.918 Td [(Notes)]TJ +0 g 0 G +/F8 9.9626 Tf 12.177 -19.925 Td [(1.)]TJ +0 g 0 G + [-500(The)]TJ/F30 9.9626 Tf 32.469 0 Td [(dat)]TJ/F8 9.9626 Tf 18.273 0 Td [(argumen)28(t)-259(is)-259(b)-28(oth)-259(input)-259(and)-259(output,)-274(and)-259(its)-259(v)55(alue)-259(ma)28(y)-259(b)-28(e)-259(c)28(hanged)]TJ -38.012 -11.956 Td [(ev)28(en)-334(on)-333(pro)-28(cesses)-333(di\013eren)28(t)-334(from)-333(the)-333(\014nal)-334(result)-333(destination.)]TJ +0 g 0 G + -12.73 -19.925 Td [(2.)]TJ +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 - -140.224 -581.915 Td [(127)]TJ + 99.986 -109.132 Td [(121)]TJ 0 g 0 G ET endstream endobj -1720 0 obj +1710 0 obj << -/Length 4778 +/Length 5288 >> stream 0 g 0 G 0 g 0 G BT -/F16 11.9552 Tf 153.976 706.129 Td [(h)31(b)]TJ +/F16 11.9552 Tf 150.705 706.129 Td [(7.13)-1125(psb)]TJ ET q -1 0 0 1 169.353 706.328 cm +1 0 0 1 209.121 706.328 cm []0 d 0 J 0.398 w 0 0 m 4.035 0 l S Q BT -/F16 11.9552 Tf 173.388 706.129 Td [(read)-274(|)-273(Read)-274(a)-273(sparse)-274(matrix)-274(from)-273(a)-274(\014le)-274(in)-273(the)-274(Harw)32(ell{)]TJ -22.683 -13.948 Td [(Bo)-31(eing)-375(format)]TJ/F27 9.9626 Tf 1.377 -24.367 Td [(c)-138(a)-138(l)-139(l)]TJ/F8 9.9626 Tf 29.554 0 Td [(h)-105(b)]TJ -ET -q -1 0 0 1 195.388 668.014 cm -[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S -Q -BT -/F8 9.9626 Tf 199.42 667.814 Td [(r)-105(e)-104(a)-105(d)-210(\050)-139(a)-228(,)-910(i)-150(r)-150(e)-149(t)-460(,)-896(i)-135(u)-135(n)-135(i)-135(t)-431(,)-877(f)-116(i)-116(l)-116(e)-116(n)-117(a)-116(m)-116(e)-393(,)-776(b)-191(,)-902(m)-142(t)-141(i)-141(t)-141(l)-142(e)-246(\051)]TJ +/F16 11.9552 Tf 213.156 706.129 Td [(amx)-375(|)-375(Global)-375(maxim)31(um)-375(absolute)-375(v)63(alue)]TJ 0 g 0 G 0 g 0 G +/F30 9.9626 Tf -62.451 -18.389 Td [(call)-525(psb_amx\050icontxt,)-525(dat,)-525(root\051)]TJ/F8 9.9626 Tf 14.944 -21.918 Td [(This)-312(subroutine)-312(implemen)28(ts)-313(a)-312(maxim)28(um)-312(absolute)-312(v)55(alue)-312(reduction)-312(op)-28(eration)]TJ -14.944 -11.955 Td [(based)-333(on)-334(the)-333(underlying)-333(comm)28(unication)-334(library)84(.)]TJ 0 g 0 G -/F27 9.9626 Tf -48.715 -17.933 Td [(T)32(yp)-32(e:)]TJ +/F27 9.9626 Tf 0 -19.926 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 33.797 0 Td [(Sync)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 [(\014lename)]TJ + 0 -19.925 Td [(icon)32(txt)]TJ 0 g 0 G -/F8 9.9626 Tf 46.513 0 Td [(The)-333(name)-334(of)-333(the)-333(\014le)-334(to)-333(b)-28(e)-333(read.)]TJ -21.606 -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 [(Sp)-28(eci\014ed)-435(as:)-648(a)-435(c)28(haracte)-1(r)-435(v)56(ariable)-435(con)28(taining)-435(a)-436(v)56(alid)-435(\014le)-435(name,)-461(or)]TJ/F30 9.9626 Tf 297.915 0 Td [(-)]TJ/F8 9.9626 Tf 5.23 0 Td [(,)-461(in)]TJ -303.145 -11.956 Td [(whic)28(h)-302(case)-303(the)-302(default)-302(input)-302(unit)-302(5)-303(\050i.e.)-434(standard)-302(input)-302(in)-302(Unix)-302(jargon\051)-302(is)]TJ 0 -11.955 Td [(used.)-444(Default:)]TJ/F30 9.9626 Tf 66.057 0 Td [(-)]TJ/F8 9.9626 Tf 5.231 0 Td [(.)]TJ +/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 -/F27 9.9626 Tf -96.195 -19.925 Td [(iunit)]TJ +/F27 9.9626 Tf -24.907 -19.925 Td [(dat)]TJ 0 g 0 G -/F8 9.9626 Tf 28.532 0 Td [(The)-333(F)83(ortran)-333(\014le)-334(u)1(nit)-334(n)28(um)28(b)-28(er.)]TJ -3.625 -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 [(Sp)-28(eci\014ed)-333(as:)-444(an)-334(in)28(teger)-333(v)55(alue.)-444(Only)-333(me)-1(an)1(ingful)-334(if)-333(\014lename)-333(is)-334(not)]TJ/F30 9.9626 Tf 286.288 0 Td [(-)]TJ/F8 9.9626 Tf 5.23 0 Td [(.)]TJ +/F8 9.9626 Tf 21.371 0 Td [(The)-333(lo)-28(cal)-333(c)-1(on)28(tribution)-333(to)-333(the)-334(gl)1(obal)-334(maxim)28(um.)]TJ 3.536 -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.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 [(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)-464(a)-464(ran)1(k)-464(1)-464(or)-464(2)-464(arra)28(y)83(.)-1299(T)28(yp)-28(e,)-497(kind)1(,)-497(rank)-464(and)-463(size)-464(m)27(ust)-463(agree)-464(on)-464(all)]TJ 0 -11.955 Td [(pro)-28(cesses.)]TJ 0 g 0 G -/F27 9.9626 Tf -316.425 -21.918 Td [(On)-383(Return)]TJ +/F27 9.9626 Tf -24.907 -19.926 Td [(ro)-32(ot)]TJ 0 g 0 G +/F8 9.9626 Tf 25.93 0 Td [(Pro)-28(cess)-276(to)-276(hold)-276(the)-276(\014nal)-276(v)56(alue,)-287(or)]TJ/F14 9.9626 Tf 146.411 0 Td [(\000)]TJ/F8 9.9626 Tf 7.749 0 Td [(1)-276(to)-276(mak)28(e)-276(it)-276(a)28(v)55(ailable)-276(on)-276(all)-276(pr)1(o)-28(cesses)-1(.)]TJ -155.183 -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.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(optional)]TJ/F8 9.9626 Tf 40.577 0 Td [(.)]TJ -70.188 -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(alue)]TJ/F14 9.9626 Tf 130.427 0 Td [(\000)]TJ/F8 9.9626 Tf 7.749 0 Td [(1)]TJ/F11 9.9626 Tf 7.749 0 Td [(<)]TJ/F8 9.9626 Tf 7.748 0 Td [(=)]TJ/F11 9.9626 Tf 10.517 0 Td [(r)-28(oot)-278(<)]TJ/F8 9.9626 Tf 28.543 0 Td [(=)]TJ/F11 9.9626 Tf 10.516 0 Td [(np)]TJ/F14 9.9626 Tf 13.206 0 Td [(\000)]TJ/F8 9.9626 Tf 9.963 0 Td [(1,)-333(default)-334(-1.)]TJ 0 g 0 G - 0 -19.925 Td [(a)]TJ +/F27 9.9626 Tf -251.325 -33.873 Td [(On)-383(Return)]TJ +0 g 0 G +0 g 0 G + 0 -19.926 Td [(dat)]TJ +0 g 0 G +/F8 9.9626 Tf 21.371 0 Td [(On)-333(destination)-334(p)1(ro)-28(cess\050es)-1(\051)1(,)-334(the)-333(result)-333(of)-334(the)-333(maxim)28(um)-334(op)-27(eration.)]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)-464(a)-464(ran)1(k)-464(1)-464(or)-464(2)-464(arra)28(y)83(.)-1299(T)28(yp)-28(e,)-497(kind)1(,)-497(rank)-464(and)-463(size)-464(m)27(ust)-463(agree)-464(on)-464(all)]TJ 0 -11.956 Td [(pro)-28(cesses.)]TJ/F16 11.9552 Tf -24.907 -21.917 Td [(Notes)]TJ +0 g 0 G +/F8 9.9626 Tf 12.177 -19.926 Td [(1.)]TJ +0 g 0 G + [-500(The)]TJ/F30 9.9626 Tf 32.469 0 Td [(dat)]TJ/F8 9.9626 Tf 18.272 0 Td [(argumen)28(t)-259(is)-259(b)-28(oth)-259(input)-259(and)-259(output,)-274(and)-259(its)-259(v)55(alue)-259(ma)28(y)-259(b)-28(e)-259(c)28(hanged)]TJ -38.011 -11.955 Td [(ev)28(en)-334(on)-333(pro)-28(cesses)-333(di\013eren)28(t)-334(from)-333(the)-333(\014nal)-334(result)-333(destination.)]TJ +0 g 0 G + -12.73 -19.925 Td [(2.)]TJ +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 [(122)]TJ 0 g 0 G -/F8 9.9626 Tf 10.551 0 Td [(the)-333(sparse)-334(matrix)-333(read)-333(from)-334(\014le.)]TJ 14.356 -11.956 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.183 0 Td [(required)]TJ/F8 9.9626 Tf 41.898 0 Td [(.)]TJ -67.081 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-444(a)-334(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 452.82 cm -[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S -Q + +endstream +endobj +1716 0 obj +<< +/Length 5259 +>> +stream +0 g 0 G +0 g 0 G BT -/F30 9.9626 Tf 365.983 452.621 Td [(Tspmat)]TJ +/F16 11.9552 Tf 99.895 706.129 Td [(7.14)-1125(psb)]TJ ET q -1 0 0 1 397.993 452.82 cm -[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +1 0 0 1 158.311 706.328 cm +[]0 d 0 J 0.398 w 0 0 m 4.035 0 l S Q BT -/F30 9.9626 Tf 401.131 452.621 Td [(type)]TJ +/F16 11.9552 Tf 162.346 706.129 Td [(amn)-375(|)-375(Global)-375(minim)31(um)-375(absolute)-375(v)63(alue)]TJ +0 g 0 G +0 g 0 G +/F30 9.9626 Tf -62.451 -18.389 Td [(call)-525(psb_amn\050icontxt,)-525(dat,)-525(root\051)]TJ/F8 9.9626 Tf 14.944 -21.918 Td [(This)-336(s)-1(u)1(broutine)-337(implemen)28(ts)-337(a)-336(minim)28(um)-337(absolute)-336(v)55(alue)-336(reduction)-336(op)-28(eration)]TJ -14.944 -11.955 Td [(based)-333(on)-334(the)-333(underlying)-333(comm)28(unication)-334(library)84(.)]TJ +0 g 0 G +/F27 9.9626 Tf 0 -19.926 Td [(T)32(yp)-32(e:)]TJ +0 g 0 G +/F8 9.9626 Tf 33.797 0 Td [(Sync)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 [(icon)32(txt)]TJ +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.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 [(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 +/F27 9.9626 Tf -24.907 -19.925 Td [(dat)]TJ +0 g 0 G +/F8 9.9626 Tf 21.371 0 Td [(The)-333(lo)-28(cal)-334(con)28(tribution)-333(to)-333(the)-334(global)-333(minim)28(um.)]TJ 3.536 -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.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 [(inout)]TJ/F8 9.9626 Tf 26.096 0 Td [(.)]TJ -59.582 -11.955 Td [(Sp)-28(eci\014ed)-339(as:)-458(an)-339(in)28(te)-1(ger,)-341(real)-340(or)-339(complex)-340(v)56(ariable,)-342(whic)28(h)-340(ma)28(y)-339(b)-28(e)-340(a)-340(scalar,)]TJ 0 -11.955 Td [(or)-464(a)-464(rank)-463(1)-464(or)-464(2)-464(arra)28(y)83(.)-1299(T)28(yp)-28(e,)-497(kind,)-496(rank)-464(and)-463(size)-464(m)27(ust)-463(agree)-464(on)-464(all)]TJ 0 -11.955 Td [(pro)-28(cesses.)]TJ +0 g 0 G +/F27 9.9626 Tf -24.907 -19.926 Td [(ro)-32(ot)]TJ 0 g 0 G -/F8 9.9626 Tf 20.921 0 Td [(.)]TJ +/F8 9.9626 Tf 25.931 0 Td [(Pro)-28(cess)-276(to)-276(hold)-276(the)-276(\014nal)-275(v)55(alue,)-287(or)]TJ/F14 9.9626 Tf 146.411 0 Td [(\000)]TJ/F8 9.9626 Tf 7.749 0 Td [(1)-276(to)-276(mak)28(e)-276(it)-276(a)28(v)55(ailable)-276(on)-276(all)-276(p)1(ro)-28(cesses.)]TJ -155.184 -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 [(optional)]TJ/F8 9.9626 Tf 40.577 0 Td [(.)]TJ -70.188 -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)-333(v)55(alue)]TJ/F14 9.9626 Tf 130.428 0 Td [(\000)]TJ/F8 9.9626 Tf 7.749 0 Td [(1)]TJ/F11 9.9626 Tf 7.748 0 Td [(<)]TJ/F8 9.9626 Tf 7.749 0 Td [(=)]TJ/F11 9.9626 Tf 10.516 0 Td [(r)-28(oot)-278(<)]TJ/F8 9.9626 Tf 28.543 0 Td [(=)]TJ/F11 9.9626 Tf 10.517 0 Td [(np)]TJ/F14 9.9626 Tf 13.206 0 Td [(\000)]TJ/F8 9.9626 Tf 9.962 0 Td [(1,)-333(default)-334(-1.)]TJ 0 g 0 G -/F27 9.9626 Tf -271.347 -19.925 Td [(b)]TJ +/F27 9.9626 Tf -251.325 -33.873 Td [(On)-383(Return)]TJ 0 g 0 G -/F8 9.9626 Tf 11.346 0 Td [(Rigth)-333(hand)-334(sid)1(e)-1(\050s\051.)]TJ 13.56 -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 [(An)-282(arr)1(a)27(y)-281(of)-282(t)28(yp)-28(e)-281(real)-282(or)-281(complex,)-292(rank)-282(2)-281(and)-282(ha)28(ving)-281(the)-282(ALLOCA)83(T)84(ABLE)]TJ 0 -11.956 Td [(attribute;)-409(will)-384(b)-28(e)-384(allo)-28(cated)-384(and)-383(\014lled)-384(in)-384(if)-384(the)-384(input)-384(\014le)-384(con)28(tains)-384(a)-384(righ)28(t)]TJ 0 -11.955 Td [(hand)-333(side,)-334(otherwise)-333(will)-333(b)-28(e)-333(left)-334(in)-333(the)-333(UNALLOCA)83(TED)-333(state.)]TJ 0 g 0 G -/F27 9.9626 Tf -24.906 -19.925 Td [(m)32(title)]TJ + 0 -19.926 Td [(dat)]TJ 0 g 0 G -/F8 9.9626 Tf 34.737 0 Td [(Matrix)-333(title.)]TJ -9.831 -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 [(A)-405(c)28(harac)28(h)28(ter)-405(v)56(ariable)-405(of)-405(length)-404(72)-405(holding)-405(a)-404(cop)27(y)-404(of)-405(the)-405(matrix)-404(title)-405(as)]TJ 0 -11.956 Td [(sp)-28(eci\014ed)-333(b)28(y)-334(the)-333(Harw)28(ell-Bo)-28(eing)-333(format)-334(and)-333(con)28(tained)-333(in)-334(the)-333(input)-333(\014le.)]TJ +/F8 9.9626 Tf 21.372 0 Td [(On)-333(destination)-333(pro)-28(cess\050es\051,)-334(the)-333(result)-333(of)-334(the)-333(minim)28(um)-334(op)-27(eration.)]TJ 3.535 -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.899 0 Td [(.)]TJ -71.51 -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)-339(as:)-458(an)-339(in)28(te)-1(ger,)-341(real)-340(or)-339(complex)-340(v)56(ariable,)-342(whic)28(h)-340(ma)28(y)-339(b)-28(e)-340(a)-340(scalar,)]TJ 0 -11.955 Td [(or)-333(a)-334(rank)-333(1)-333(or)-334(2)-333(arra)28(y)83(.)]TJ 0 -11.956 Td [(T)28(yp)-28(e,)-333(kind,)-334(r)1(ank)-334(and)-333(size)-333(m)27(ust)-333(agree)-333(on)-334(all)-333(pro)-28(cesses.)]TJ/F16 11.9552 Tf -24.907 -21.917 Td [(Notes)]TJ 0 g 0 G -/F27 9.9626 Tf -24.906 -19.925 Td [(iret)]TJ +/F8 9.9626 Tf 12.177 -19.926 Td [(1.)]TJ 0 g 0 G -/F8 9.9626 Tf 22.589 0 Td [(Error)-333(co)-28(de.)]TJ 2.317 -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 [(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 + [-500(The)]TJ/F30 9.9626 Tf 32.469 0 Td [(dat)]TJ/F8 9.9626 Tf 18.273 0 Td [(argumen)28(t)-259(is)-259(b)-28(oth)-259(input)-259(and)-259(output,)-274(and)-259(its)-259(v)55(alue)-259(ma)28(y)-259(b)-28(e)-259(c)28(hanged)]TJ -38.012 -11.955 Td [(ev)28(en)-334(on)-333(pro)-28(cesses)-333(di\013eren)28(t)-334(from)-333(the)-333(\014nal)-334(result)-333(destination.)]TJ +0 g 0 G + -12.73 -19.925 Td [(2.)]TJ +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 - 139.477 -194.811 Td [(128)]TJ + 99.986 -97.177 Td [(123)]TJ 0 g 0 G ET endstream endobj -1727 0 obj +1722 0 obj << -/Length 5258 +/Length 6258 >> stream 0 g 0 G 0 g 0 G BT -/F16 11.9552 Tf 99.895 706.129 Td [(h)31(b)]TJ +/F16 11.9552 Tf 150.705 706.129 Td [(7.15)-1125(psb)]TJ ET q -1 0 0 1 115.273 706.328 cm +1 0 0 1 209.121 706.328 cm []0 d 0 J 0.398 w 0 0 m 4.035 0 l S Q BT -/F16 11.9552 Tf 119.308 706.129 Td [(write)-357(|)-357(W)93(rite)-357(a)-357(sparse)-357(matrix)-357(to)-358(a)-357(\014le)-357(in)-357(the)-357(Harw)31(ell{)]TJ -19.413 -13.948 Td [(Bo)-31(eing)-375(format)]TJ/F27 9.9626 Tf 1.377 -24.367 Td [(c)-138(a)-138(l)-139(l)]TJ/F8 9.9626 Tf 29.734 0 Td [(h)-123(b)]TJ -ET -q -1 0 0 1 145.117 668.014 cm -[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S -Q -BT -/F8 9.9626 Tf 149.328 667.814 Td [(w)-123(r)-122(i)-123(t)-123(e)-228(\050)-139(a)-228(,)-910(i)-150(r)-149(e)-150(t)-460(,)-896(i)-135(u)-135(n)-135(i)-135(t)-431(,)-877(f)-116(i)-116(l)-116(e)-116(n)-116(a)-116(m)-117(e)-393(,)-821(k)-60(e)-60(y)-281(,)-853(r)-92(h)-91(s)-345(,)-902(m)-141(t)-142(i)-141(t)-141(l)-141(e)-247(\051)]TJ +/F16 11.9552 Tf 213.156 706.129 Td [(nrm2)-375(|)-375(Global)-375(2-norm)-375(reduction)]TJ 0 g 0 G 0 g 0 G +/F30 9.9626 Tf -62.451 -18.389 Td [(call)-525(psb_nrm2\050icontxt,)-525(dat,)-525(root\051)]TJ/F8 9.9626 Tf 14.944 -19.794 Td [(This)-425(subroutine)-425(implem)-1(en)28(ts)-425(a)-425(2-norm)-426(v)56(alue)-425(reduction)-426(op)-27(eration)-426(based)-425(on)]TJ -14.944 -11.955 Td [(the)-333(underlying)-333(com)-1(m)28(unication)-333(library)83(.)]TJ 0 g 0 G -/F27 9.9626 Tf -49.433 -17.933 Td [(T)32(yp)-32(e:)]TJ -0 g 0 G -/F8 9.9626 Tf 33.797 0 Td [(Async)28(hronous.)]TJ +/F27 9.9626 Tf 0 -18.226 Td [(T)32(yp)-32(e:)]TJ 0 g 0 G -/F27 9.9626 Tf -33.797 -19.925 Td [(On)-383(En)32(try)]TJ +/F8 9.9626 Tf 33.797 0 Td [(Sync)28(hronous.)]TJ 0 g 0 G +/F27 9.9626 Tf -33.797 -19.076 Td [(On)-383(En)32(try)]TJ 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)-333(to)-333(b)-28(e)-333(written.)]TJ 14.356 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.183 0 Td [(required)]TJ/F8 9.9626 Tf 41.899 0 Td [(.)]TJ -67.082 -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 586.32 cm -[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S -Q -BT -/F30 9.9626 Tf 315.174 586.121 Td [(Tspmat)]TJ -ET -q -1 0 0 1 347.183 586.32 cm -[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S -Q -BT -/F30 9.9626 Tf 350.322 586.121 Td [(type)]TJ + 0 -19.076 Td [(icon)32(txt)]TJ 0 g 0 G -/F8 9.9626 Tf 20.921 0 Td [(.)]TJ +/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.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 [(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 -/F27 9.9626 Tf -271.348 -19.926 Td [(b)]TJ +/F27 9.9626 Tf -24.907 -19.076 Td [(dat)]TJ 0 g 0 G -/F8 9.9626 Tf 11.347 0 Td [(Rigth)-333(hand)-333(s)-1(i)1(de.)]TJ 13.56 -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)-282(ar)1(ra)27(y)-281(of)-282(t)28(yp)-28(e)-281(real)-282(or)-281(complex,)-292(rank)-282(1)-281(and)-282(ha)28(ving)-281(the)-282(ALLOCA)83(T)84(ABLE)]TJ 0 -11.955 Td [(attribute;)-409(will)-384(b)-28(e)-384(allo)-28(cated)-384(an)1(d)-384(\014lled)-384(in)-384(if)-384(the)-384(input)-384(\014le)-384(con)28(tains)-384(a)-384(righ)28(t)]TJ 0 -11.955 Td [(hand)-333(side.)]TJ +/F8 9.9626 Tf 21.371 0 Td [(The)-333(lo)-28(cal)-333(c)-1(on)28(tribution)-333(to)-333(the)-334(gl)1(obal)-334(minim)28(um.)]TJ 3.536 -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 [(inout)]TJ/F8 9.9626 Tf 26.097 0 Td [(.)]TJ -59.582 -11.956 Td [(Sp)-28(eci\014ed)-421(as:)-619(a)-421(real)-421(v)55(ariable,)-443(whic)28(h)-421(ma)28(y)-421(b)-28(e)-421(a)-421(scalar,)-443(or)-420(a)-421(rank)-421(1)-421(arra)28(y)83(.)]TJ 0 -11.955 Td [(Kind,)-333(rank)-333(and)-334(size)-333(m)28(ust)-334(agree)-333(on)-333(all)-334(pro)-27(ces)-1(ses.)]TJ 0 g 0 G -/F27 9.9626 Tf -24.907 -19.926 Td [(\014lename)]TJ +/F27 9.9626 Tf -24.907 -19.075 Td [(ro)-32(ot)]TJ 0 g 0 G -/F8 9.9626 Tf 46.513 0 Td [(The)-333(name)-334(of)-333(the)-333(\014le)-334(to)-333(b)-28(e)-333(written)-333(to.)]TJ -21.606 -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 [(Sp)-28(eci\014ed)-435(as:)-648(a)-435(c)27(h)1(arac)-1(ter)-435(v)56(ariable)-435(con)28(taining)-436(a)-435(v)56(alid)-435(\014le)-435(name,)-461(or)]TJ/F30 9.9626 Tf 297.915 0 Td [(-)]TJ/F8 9.9626 Tf 5.231 0 Td [(,)-461(in)]TJ -303.146 -11.955 Td [(whic)28(h)-281(case)-280(the)-280(default)-281(output)-280(unit)-280(6)-281(\050i.e.)-426(s)-1(t)1(andard)-281(output)-280(in)-280(Unix)-281(jargon\051)]TJ 0 -11.955 Td [(is)-333(used.)-445(Default:)]TJ/F30 9.9626 Tf 76.076 0 Td [(-)]TJ/F8 9.9626 Tf 5.23 0 Td [(.)]TJ +/F8 9.9626 Tf 25.93 0 Td [(Pro)-28(cess)-276(to)-276(hold)-276(the)-276(\014nal)-276(v)56(alue,)-287(or)]TJ/F14 9.9626 Tf 146.411 0 Td [(\000)]TJ/F8 9.9626 Tf 7.749 0 Td [(1)-276(to)-276(mak)28(e)-276(it)-276(a)28(v)55(ailable)-276(on)-276(all)-276(pr)1(o)-28(cesses)-1(.)]TJ -155.183 -11.956 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.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(optional)]TJ/F8 9.9626 Tf 40.577 0 Td [(.)]TJ -70.188 -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(alue)]TJ/F14 9.9626 Tf 130.427 0 Td [(\000)]TJ/F8 9.9626 Tf 7.749 0 Td [(1)]TJ/F11 9.9626 Tf 7.749 0 Td [(<)]TJ/F8 9.9626 Tf 7.748 0 Td [(=)]TJ/F11 9.9626 Tf 10.517 0 Td [(r)-28(oot)-278(<)]TJ/F8 9.9626 Tf 28.543 0 Td [(=)]TJ/F11 9.9626 Tf 10.516 0 Td [(np)]TJ/F14 9.9626 Tf 13.206 0 Td [(\000)]TJ/F8 9.9626 Tf 9.963 0 Td [(1,)-333(default)-334(-1.)]TJ 0 g 0 G -/F27 9.9626 Tf -106.213 -19.926 Td [(iunit)]TJ +/F27 9.9626 Tf -251.325 -31.749 Td [(On)-383(Return)]TJ 0 g 0 G -/F8 9.9626 Tf 28.532 0 Td [(The)-333(F)83(ortran)-333(\014le)-334(un)1(it)-334(n)28(um)28(b)-28(er.)]TJ -3.625 -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 [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(in)28(teger)-333(v)55(alue.)-444(Only)-333(me)-1(ani)1(ngful)-334(if)-333(\014lename)-333(is)-334(not)]TJ/F30 9.9626 Tf 286.288 0 Td [(-)]TJ/F8 9.9626 Tf 5.23 0 Td [(.)]TJ 0 g 0 G -/F27 9.9626 Tf -316.425 -19.925 Td [(k)32(ey)]TJ + 0 -19.076 Td [(dat)]TJ 0 g 0 G -/F8 9.9626 Tf 22.008 0 Td [(Matrix)-333(k)28(ey)83(.)]TJ 2.899 -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.956 Td [(A)-385(c)28(harac)28(h)28(ter)-385(v)56(ariable)-385(of)-385(length)-384(8)-385(holding)-385(the)-384(m)-1(atri)1(x)-385(k)28(ey)-385(as)-385(sp)-28(eci\014ed)-384(b)27(y)]TJ 0 -11.955 Td [(the)-333(Harw)27(ell-Bo)-27(eing)-334(format)-333(and)-333(to)-334(b)-27(e)-334(written)-333(to)-333(\014le.)]TJ +/F8 9.9626 Tf 21.371 0 Td [(On)-333(destination)-334(p)1(ro)-28(cess\050es)-1(\051)1(,)-334(the)-333(result)-333(of)-334(the)-333(2-norm)-333(reduction.)]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)-333(as:)-444(a)-334(real)-333(v)55(ariabl)1(e)-1(,)-333(whic)28(h)-333(ma)27(y)-333(b)-28(e)-333(a)-333(scalar,)-334(or)-333(a)-333(rank)-334(1)-333(arra)28(y)83(.)]TJ 0 -11.955 Td [(Kind,)-333(rank)-333(and)-334(size)-333(m)28(ust)-334(agree)-333(on)-333(all)-334(pro)-27(ces)-1(ses.)]TJ/F16 11.9552 Tf -24.907 -19.794 Td [(Notes)]TJ 0 g 0 G -/F27 9.9626 Tf -24.907 -19.925 Td [(m)32(title)]TJ +/F8 9.9626 Tf 12.177 -18.226 Td [(1.)]TJ 0 g 0 G -/F8 9.9626 Tf 34.738 0 Td [(Matrix)-333(title.)]TJ -9.831 -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 [(A)-318(c)28(harac)28(h)28(ter)-318(v)56(ariable)-318(of)-317(length)-318(72)-317(holding)-318(the)-317(m)-1(atr)1(ix)-318(title)-318(as)-317(sp)-28(eci\014ed)-318(b)28(y)]TJ 0 -11.956 Td [(the)-333(Harw)27(ell-Bo)-27(eing)-334(format)-333(and)-333(to)-334(b)-27(e)-334(written)-333(to)-333(\014le.)]TJ + [-500(This)-416(reduction)-416(is)-416(appropriate)-416(to)-416(compute)-416(the)-417(r)1(e)-1(sult)1(s)-417(of)-416(m)28(ultiple)-416(\050lo)-28(cal\051)]TJ 12.73 -11.955 Td [(NRM2)-333(op)-28(erations)-333(at)-334(the)-333(same)-333(time)-1(.)]TJ 0 g 0 G -/F27 9.9626 Tf -24.907 -21.917 Td [(On)-383(Return)]TJ + -12.73 -19.076 Td [(2.)]TJ 0 g 0 G + [-500(Denoting)-283(b)28(y)]TJ/F11 9.9626 Tf 68.601 0 Td [(dat)]TJ/F10 6.9738 Tf 14.049 -1.494 Td [(i)]TJ/F8 9.9626 Tf 6.139 1.494 Td [(the)-283(v)55(alue)-283(of)-283(the)-283(v)55(ariabl)1(e)]TJ/F11 9.9626 Tf 106.289 0 Td [(dat)]TJ/F8 9.9626 Tf 16.871 0 Td [(on)-283(pro)-28(cess)]TJ/F11 9.9626 Tf 47.569 0 Td [(i)]TJ/F8 9.9626 Tf 3.432 0 Td [(,)-293(the)-283(output)]TJ/F11 9.9626 Tf 54.504 0 Td [(r)-28(es)]TJ/F8 9.9626 Tf -304.724 -11.955 Td [(is)-333(equiv)55(alen)28(t)-333(to)-334(the)-333(computation)-333(of)]TJ/F11 9.9626 Tf 122.07 -25.904 Td [(r)-28(es)]TJ/F8 9.9626 Tf 16.848 0 Td [(=)]TJ/F1 9.9626 Tf 10.516 14.335 Td [(s)]TJ +ET +q +1 0 0 1 335.008 203.069 cm +[]0 d 0 J 0.398 w 0 0 m 34.569 0 l S +Q +BT +/F1 9.9626 Tf 335.008 197.999 Td [(X)]TJ/F10 6.9738 Tf 5.786 -21.219 Td [(i)]TJ/F11 9.9626 Tf 10.265 11.755 Td [(dat)]TJ/F7 6.9738 Tf 14.05 3.431 Td [(2)]TJ/F10 6.9738 Tf 0 -6.208 Td [(i)]TJ/F11 9.9626 Tf 4.469 2.777 Td [(;)]TJ/F8 9.9626 Tf -193.967 -30.908 Td [(with)-333(care)-334(tak)28(en)-333(to)-334(a)28(v)28(oid)-333(unnecessary)-334(o)28(v)28(er\015o)28(w.)]TJ 0 g 0 G - 0 -19.926 Td [(iret)]TJ + -12.73 -19.075 Td [(3.)]TJ 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 + [-500(The)]TJ/F30 9.9626 Tf 32.47 0 Td [(dat)]TJ/F8 9.9626 Tf 18.272 0 Td [(argumen)28(t)-259(is)-259(b)-28(oth)-259(input)-259(and)-259(output,)-274(and)-259(its)-259(v)55(alue)-259(ma)28(y)-259(b)-28(e)-259(c)28(hanged)]TJ -38.012 -11.956 Td [(ev)28(en)-334(on)-333(pro)-28(cesses)-333(di\013eren)28(t)-334(from)-333(the)-333(\014nal)-334(result)-333(destination.)]TJ 0 g 0 G - 139.477 -139.02 Td [(129)]TJ + 139.477 -36.158 Td [(124)]TJ 0 g 0 G ET endstream endobj -1734 0 obj +1730 0 obj << -/Length 3654 +/Length 5357 >> stream 0 g 0 G 0 g 0 G BT -/F16 11.9552 Tf 150.705 706.129 Td [(mm)]TJ -ET -q -1 0 0 1 173.928 706.328 cm -[]0 d 0 J 0.398 w 0 0 m 4.035 0 l S -Q -BT -/F16 11.9552 Tf 177.963 706.129 Td [(mat)]TJ +/F16 11.9552 Tf 99.895 706.129 Td [(7.16)-1125(psb)]TJ ET q -1 0 0 1 201.746 706.328 cm +1 0 0 1 158.311 706.328 cm []0 d 0 J 0.398 w 0 0 m 4.035 0 l S Q BT -/F16 11.9552 Tf 205.781 706.129 Td [(read)-467(|)-467(Read)-466(a)-467(sparse)-467(matrix)-467(from)-467(a)-467(\014le)-466(in)-467(the)]TJ -55.076 -13.948 Td [(MatrixMark)31(et)-375(format)]TJ/F27 9.9626 Tf 1.377 -24.367 Td [(c)-138(a)-138(l)-139(l)]TJ/F8 9.9626 Tf 29.009 0 Td [(m)-50(m)]TJ -ET -q -1 0 0 1 199.288 668.014 cm -[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S -Q -BT -/F8 9.9626 Tf 202.775 667.814 Td [(m)-50(a)-50(t)]TJ -ET -q -1 0 0 1 222.024 668.014 cm -[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S -Q -BT -/F8 9.9626 Tf 225.51 667.814 Td [(r)-50(e)-50(a)-50(d)-155(\050)-139(a)-228(,)-911(i)-149(r)-150(e)-149(t)-461(,)-896(i)-134(u)-135(n)-135(i)-135(t)-431(,)-890(f)-129(i)-129(l)-129(e)-129(n)-129(a)-129(m)-129(e)-235(\051)]TJ +/F16 11.9552 Tf 162.346 706.129 Td [(snd)-375(|)-375(Send)-375(data)]TJ 0 g 0 G 0 g 0 G +/F30 9.9626 Tf -62.451 -18.389 Td [(call)-525(psb_snd\050icontxt,)-525(dat,)-525(dst,)-525(m\051)]TJ/F8 9.9626 Tf 14.944 -21.918 Td [(This)-333(subroutine)-334(sends)-333(a)-333(pac)27(k)28(et)-333(of)-333(data)-334(to)-333(a)-333(destination.)]TJ 0 g 0 G -/F27 9.9626 Tf -74.805 -17.933 Td [(T)32(yp)-32(e:)]TJ +/F27 9.9626 Tf -14.944 -19.926 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 33.797 0 Td [(Sync)28(hronous:)-445(see)-333(usage)-333(notes.)]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 [(\014lename)]TJ + 0 -19.925 Td [(icon)32(txt)]TJ 0 g 0 G -/F8 9.9626 Tf 46.513 0 Td [(The)-333(name)-334(of)-333(the)-333(\014le)-334(to)-333(b)-28(e)-333(read.)]TJ -21.607 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.184 0 Td [(optional)]TJ/F8 9.9626 Tf 40.577 0 Td [(.)]TJ -65.76 -11.955 Td [(Sp)-28(eci\014ed)-435(as:)-648(a)-435(c)28(haracte)-1(r)-435(v)56(ariable)-435(con)28(taining)-435(a)-436(v)56(alid)-435(\014le)-435(name,)-461(or)]TJ/F30 9.9626 Tf 297.915 0 Td [(-)]TJ/F8 9.9626 Tf 5.23 0 Td [(,)-461(in)]TJ -303.145 -11.956 Td [(whic)28(h)-302(case)-303(the)-302(default)-302(input)-302(unit)-302(5)-303(\050i.e.)-434(standard)-302(input)-302(in)-302(Unix)-302(jargon\051)-302(is)]TJ 0 -11.955 Td [(used.)-444(Default:)]TJ/F30 9.9626 Tf 66.057 0 Td [(-)]TJ/F8 9.9626 Tf 5.231 0 Td [(.)]TJ +/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 -/F27 9.9626 Tf -96.195 -19.925 Td [(iunit)]TJ +/F27 9.9626 Tf -24.907 -19.925 Td [(dat)]TJ 0 g 0 G -/F8 9.9626 Tf 28.532 0 Td [(The)-333(F)83(ortran)-333(\014le)-334(u)1(nit)-334(n)28(um)28(b)-28(er.)]TJ -3.625 -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 [(Sp)-28(eci\014ed)-333(as:)-444(an)-334(in)28(teger)-333(v)55(alue.)-444(Only)-333(me)-1(an)1(ingful)-334(if)-333(\014lename)-333(is)-334(not)]TJ/F30 9.9626 Tf 286.288 0 Td [(-)]TJ/F8 9.9626 Tf 5.23 0 Td [(.)]TJ +/F8 9.9626 Tf 21.371 0 Td [(The)-333(data)-334(to)-333(b)-28(e)-333(sen)28(t.)]TJ 3.536 -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)-339(as:)-458(an)-339(in)28(te)-1(ger,)-341(real)-340(or)-339(complex)-340(v)56(ariable,)-342(whic)28(h)-340(ma)28(y)-339(b)-28(e)-340(a)-340(scalar,)]TJ 0 -11.955 Td [(or)-381(a)-381(rank)-381(1)-381(or)-381(2)-381(arra)27(y)84(,)-393(or)-381(a)-381(c)27(har)1(ac)-1(ter)-381(or)-381(logical)-381(scalar.)-969(T)28(yp)-27(e)-1(,)-393(ki)1(nd)-381(and)]TJ 0 -11.955 Td [(rank)-327(m)27(ust)-327(agree)-328(on)-327(sender)-328(and)-327(receiv)27(er)-327(pro)-28(cess;)-329(if)]TJ/F11 9.9626 Tf 220.724 0 Td [(m)]TJ/F8 9.9626 Tf 12.01 0 Td [(is)-328(not)-327(sp)-28(eci\014ed,)-329(size)]TJ -232.734 -11.955 Td [(m)28(ust)-334(agree)-333(as)-333(w)27(ell.)]TJ 0 g 0 G -/F27 9.9626 Tf -316.425 -21.918 Td [(On)-383(Return)]TJ +/F27 9.9626 Tf -24.907 -19.926 Td [(dst)]TJ 0 g 0 G +/F8 9.9626 Tf 20.321 0 Td [(Destination)-333(pro)-28(cess.)]TJ 4.586 -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.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)-333(v)55(alue)-333(0)]TJ/F11 9.9626 Tf 138.176 0 Td [(<)]TJ/F8 9.9626 Tf 7.749 0 Td [(=)]TJ/F11 9.9626 Tf 10.516 0 Td [(dst)-278(<)]TJ/F8 9.9626 Tf 23.969 0 Td [(=)]TJ/F11 9.9626 Tf 10.516 0 Td [(np)]TJ/F14 9.9626 Tf 13.207 0 Td [(\000)]TJ/F8 9.9626 Tf 9.962 0 Td [(1.)]TJ 0 g 0 G - 0 -19.925 Td [(a)]TJ +/F27 9.9626 Tf -239.002 -31.881 Td [(m)]TJ 0 g 0 G -/F8 9.9626 Tf 10.551 0 Td [(the)-333(sparse)-334(matrix)-333(read)-333(from)-334(\014le.)]TJ 14.356 -11.956 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.183 0 Td [(required)]TJ/F8 9.9626 Tf 41.898 0 Td [(.)]TJ -67.081 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-444(a)-334(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 452.82 cm -[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S -Q -BT -/F30 9.9626 Tf 365.983 452.621 Td [(Tspmat)]TJ -ET -q -1 0 0 1 397.993 452.82 cm -[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S -Q -BT -/F30 9.9626 Tf 401.131 452.621 Td [(type)]TJ +/F8 9.9626 Tf 14.529 0 Td [(Num)28(b)-28(er)-333(of)-334(ro)28(ws.)]TJ 10.378 -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 [(Optional)]TJ/F8 9.9626 Tf 43.455 0 Td [(.)]TJ -73.066 -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)-333(v)55(alue)-333(0)]TJ/F11 9.9626 Tf 138.176 0 Td [(<)]TJ/F8 9.9626 Tf 7.749 0 Td [(=)]TJ/F11 9.9626 Tf 10.516 0 Td [(m)-278(<)]TJ/F8 9.9626 Tf 19.264 0 Td [(=)]TJ/F11 9.9626 Tf 10.516 0 Td [(siz)-44(e)]TJ/F8 9.9626 Tf 17.812 0 Td [(\050)]TJ/F11 9.9626 Tf 3.874 0 Td [(dat;)]TJ/F8 9.9626 Tf 18.477 0 Td [(1\051.)]TJ -226.384 -11.956 Td [(When)]TJ/F11 9.9626 Tf 29.071 0 Td [(dat)]TJ/F8 9.9626 Tf 17.383 0 Td [(is)-335(a)-334(rank)-335(2)-335(arra)28(y)84(,)-335(sp)-28(eci\014es)-335(the)-335(n)28(um)28(b)-28(er)-334(of)-335(ro)28(ws)-335(to)-335(b)-27(e)-335(sen)28(t)-335(inde-)]TJ -46.454 -11.955 Td [(p)-28(enden)28(tly)-285(of)-285(the)-286(leading)-285(dimension)]TJ/F11 9.9626 Tf 153.742 0 Td [(siz)-44(e)]TJ/F8 9.9626 Tf 17.812 0 Td [(\050)]TJ/F11 9.9626 Tf 3.874 0 Td [(dat;)]TJ/F8 9.9626 Tf 18.477 0 Td [(1\051;)-301(m)27(ust)-285(ha)28(v)28(e)-285(the)-286(same)-285(v)55(alu)1(e)]TJ -193.905 -11.955 Td [(on)-333(sending)-334(and)-333(receiving)-333(pro)-28(cesses.)]TJ 0 g 0 G -/F8 9.9626 Tf 20.921 0 Td [(.)]TJ +/F27 9.9626 Tf -24.907 -21.918 Td [(On)-383(Return)]TJ 0 g 0 G -/F27 9.9626 Tf -271.347 -19.925 Td [(iret)]TJ +/F16 11.9552 Tf 0 -21.918 Td [(Notes)]TJ 0 g 0 G -/F8 9.9626 Tf 22.589 0 Td [(Error)-333(co)-28(de.)]TJ 2.317 -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 [(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 +/F8 9.9626 Tf 12.177 -19.925 Td [(1.)]TJ 0 g 0 G - 139.477 -318.348 Td [(130)]TJ + [-500(This)-402(subroutine)-403(implies)-402(a)-402(s)-1(yn)1(c)27(hronization,)-419(but)-403(on)1(ly)-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(destination)-333(pro)-28(cess)]TJ/F11 9.9626 Tf 157.521 0 Td [(dst)]TJ/F8 9.9626 Tf 13.453 0 Td [(.)]TJ +0 g 0 G + -31.497 -105.147 Td [(125)]TJ 0 g 0 G ET endstream endobj -1740 0 obj +1735 0 obj << -/Length 3705 +/Length 5375 >> stream 0 g 0 G 0 g 0 G BT -/F16 11.9552 Tf 99.895 706.129 Td [(mm)]TJ -ET -q -1 0 0 1 123.118 706.328 cm -[]0 d 0 J 0.398 w 0 0 m 4.035 0 l S -Q -BT -/F16 11.9552 Tf 127.153 706.129 Td [(arra)31(y)]TJ +/F16 11.9552 Tf 150.705 706.129 Td [(7.17)-1125(psb)]TJ ET q -1 0 0 1 158.747 706.328 cm +1 0 0 1 209.121 706.328 cm []0 d 0 J 0.398 w 0 0 m 4.035 0 l S Q BT -/F16 11.9552 Tf 162.782 706.129 Td [(read)-504(|)-504(Read)-504(a)-504(dense)-504(arra)32(y)-504(from)-504(a)-504(\014le)-504(in)-504(the)]TJ -62.887 -13.948 Td [(MatrixMark)31(et)-375(format)]TJ/F27 9.9626 Tf 1.377 -24.367 Td [(c)-138(a)-138(l)-139(l)]TJ/F8 9.9626 Tf 29.373 0 Td [(m)-87(m)]TJ -ET -q -1 0 0 1 149.57 668.014 cm -[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S -Q -BT -/F8 9.9626 Tf 153.421 667.814 Td [(a)-86(r)-87(r)-86(a)-87(y)]TJ -ET -q -1 0 0 1 181.351 668.014 cm -[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S -Q -BT -/F8 9.9626 Tf 185.201 667.814 Td [(r)-86(e)-87(a)-86(d)-192(\050)-121(b)-191(,)-910(i)-150(r)-149(e)-150(t)-460(,)-896(i)-135(u)-135(n)-135(i)-135(t)-431(,)-890(f)-129(i)-129(l)-129(e)-129(n)-129(a)-129(m)-129(e)-234(\051)]TJ +/F16 11.9552 Tf 213.156 706.129 Td [(rcv)-375(|)-375(Receiv)31(e)-375(data)]TJ 0 g 0 G 0 g 0 G +/F30 9.9626 Tf -62.451 -18.389 Td [(call)-525(psb_rcv\050icontxt,)-525(dat,)-525(src,)-525(m\051)]TJ/F8 9.9626 Tf 14.944 -21.918 Td [(This)-333(subroutine)-334(receiv)28(es)-333(a)-334(pac)28(k)28(et)-333(of)-334(data)-333(to)-333(a)-334(destination.)]TJ 0 g 0 G -/F27 9.9626 Tf -85.306 -17.933 Td [(T)32(yp)-32(e:)]TJ +/F27 9.9626 Tf -14.944 -19.926 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 33.797 0 Td [(Sync)28(hronous:)-444(s)-1(ee)-333(usage)-333(notes.)]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 [(\014lename)]TJ + 0 -19.925 Td [(icon)32(txt)]TJ 0 g 0 G -/F8 9.9626 Tf 46.513 0 Td [(The)-333(name)-334(of)-333(the)-333(\014le)-334(to)-333(b)-28(e)-333(read.)]TJ -21.606 -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 [(Sp)-28(eci\014ed)-435(as:)-648(a)-435(c)27(h)1(arac)-1(ter)-435(v)56(ariable)-435(con)28(taining)-436(a)-435(v)56(alid)-435(\014le)-435(name,)-461(or)]TJ/F30 9.9626 Tf 297.915 0 Td [(-)]TJ/F8 9.9626 Tf 5.231 0 Td [(,)-461(in)]TJ -303.146 -11.956 Td [(whic)28(h)-302(cas)-1(e)-302(the)-302(default)-302(input)-302(unit)-302(5)-303(\050i.e.)-434(standard)-302(input)-302(in)-302(Unix)-302(jargon\051)-302(is)]TJ 0 -11.955 Td [(used.)-444(Default:)]TJ/F30 9.9626 Tf 66.058 0 Td [(-)]TJ/F8 9.9626 Tf 5.23 0 Td [(.)]TJ +/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.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.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 -/F27 9.9626 Tf -96.195 -19.925 Td [(iunit)]TJ +/F27 9.9626 Tf -24.907 -19.925 Td [(src)]TJ 0 g 0 G -/F8 9.9626 Tf 28.532 0 Td [(The)-333(F)83(ortran)-333(\014le)-334(un)1(it)-334(n)28(um)28(b)-28(er.)]TJ -3.625 -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 [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(in)28(teger)-333(v)55(alue.)-444(Only)-333(me)-1(ani)1(ngful)-334(if)-333(\014lename)-333(is)-334(not)]TJ/F30 9.9626 Tf 286.288 0 Td [(-)]TJ/F8 9.9626 Tf 5.23 0 Td [(.)]TJ +/F8 9.9626 Tf 19.311 0 Td [(Source)-333(pro)-28(cess.)]TJ 5.596 -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.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.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(alue)-333(0)]TJ/F11 9.9626 Tf 138.176 0 Td [(<)]TJ/F8 9.9626 Tf 7.749 0 Td [(=)]TJ/F11 9.9626 Tf 10.516 0 Td [(sr)-28(c)-277(<)]TJ/F8 9.9626 Tf 24.269 0 Td [(=)]TJ/F11 9.9626 Tf 10.516 0 Td [(np)]TJ/F14 9.9626 Tf 13.206 0 Td [(\000)]TJ/F8 9.9626 Tf 9.963 0 Td [(1.)]TJ 0 g 0 G -/F27 9.9626 Tf -316.425 -21.918 Td [(On)-383(Return)]TJ +/F27 9.9626 Tf -239.302 -31.88 Td [(m)]TJ 0 g 0 G +/F8 9.9626 Tf 14.529 0 Td [(Num)28(b)-28(er)-333(of)-334(ro)28(ws.)]TJ 10.378 -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.956 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(Optional)]TJ/F8 9.9626 Tf 43.455 0 Td [(.)]TJ -73.066 -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:)-445(an)-333(in)28(teger)-333(v)55(alue)-333(0)]TJ/F11 9.9626 Tf 138.176 0 Td [(<)]TJ/F8 9.9626 Tf 7.749 0 Td [(=)]TJ/F11 9.9626 Tf 10.516 0 Td [(m)-278(<)]TJ/F8 9.9626 Tf 19.263 0 Td [(=)]TJ/F11 9.9626 Tf 10.516 0 Td [(siz)-44(e)]TJ/F8 9.9626 Tf 17.813 0 Td [(\050)]TJ/F11 9.9626 Tf 3.874 0 Td [(dat;)]TJ/F8 9.9626 Tf 18.477 0 Td [(1\051.)]TJ -226.384 -11.955 Td [(When)]TJ/F11 9.9626 Tf 29.071 0 Td [(dat)]TJ/F8 9.9626 Tf 17.383 0 Td [(is)-335(a)-334(rank)-335(2)-335(arra)28(y)84(,)-335(sp)-28(eci\014es)-335(the)-335(n)28(um)28(b)-28(er)-334(of)-335(ro)28(ws)-335(to)-335(b)-27(e)-335(sen)28(t)-335(inde-)]TJ -46.454 -11.955 Td [(p)-28(enden)28(tly)-285(of)-285(the)-286(leadin)1(g)-286(dimension)]TJ/F11 9.9626 Tf 153.741 0 Td [(siz)-44(e)]TJ/F8 9.9626 Tf 17.813 0 Td [(\050)]TJ/F11 9.9626 Tf 3.874 0 Td [(dat;)]TJ/F8 9.9626 Tf 18.477 0 Td [(1\051;)-301(m)27(u)1(s)-1(t)-285(ha)28(v)28(e)-285(the)-286(same)-285(v)55(al)1(ue)]TJ -193.905 -11.955 Td [(on)-333(sending)-334(and)-333(receiving)-333(pro)-28(cesses.)]TJ 0 g 0 G - 0 -19.925 Td [(b)]TJ +/F27 9.9626 Tf -24.907 -21.918 Td [(On)-383(Return)]TJ 0 g 0 G -/F8 9.9626 Tf 11.347 0 Td [(Rigth)-333(hand)-333(s)-1(i)1(de\050s)-1(\051.)]TJ 13.56 -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)-310(arra)28(y)-310(of)-310(t)28(yp)-28(e)-310(real)-310(or)-310(complex,)-315(rank)-309(1)-310(or)-310(2)-310(and)-310(ha)28(ving)-310(the)-310(ALLOCA)83(T-)]TJ 0 -11.955 Td [(ABLE)-334(attribute;)-334(will)-333(b)-28(e)-334(allo)-28(cated)-333(and)-334(\014lled)-334(in)-333(if)-334(the)-334(input)-333(\014le)-334(con)28(tains)-334(a)]TJ 0 -11.955 Td [(righ)28(t)-333(hand)-334(side,)-333(otherwise)-333(will)-334(b)-27(e)-334(left)-333(in)-333(the)-334(UNALLOCA)84(TED)-334(state.)]TJ 0 g 0 G -/F27 9.9626 Tf -24.907 -19.925 Td [(iret)]TJ + 0 -19.926 Td [(dat)]TJ 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 +/F8 9.9626 Tf 21.371 0 Td [(The)-333(data)-334(to)-333(b)-28(e)-333(receiv)28(ed.)]TJ 3.536 -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 [(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(teg)-1(er,)-341(real)-340(or)-339(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)-381(a)-381(rank)-381(1)-381(or)-381(2)-381(arra)28(y)83(,)-393(or)-381(a)-381(c)27(h)1(aracte)-1(r)-381(or)-381(logical)-381(scalar.)-968(T)27(yp)-27(e,)-393(kind)-381(and)]TJ 0 -11.956 Td [(rank)-327(m)27(ust)-327(agree)-328(on)-327(sender)-328(and)-327(receiv)27(er)-327(pro)-28(cess;)-329(if)]TJ/F11 9.9626 Tf 220.724 0 Td [(m)]TJ/F8 9.9626 Tf 12.01 0 Td [(is)-328(not)-327(sp)-28(eci\014ed,)-328(s)-1(ize)]TJ -232.734 -11.955 Td [(m)28(ust)-334(agree)-333(as)-333(w)27(ell.)]TJ/F16 11.9552 Tf -24.907 -21.918 Td [(Notes)]TJ +0 g 0 G +/F8 9.9626 Tf 12.177 -19.925 Td [(1.)]TJ +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(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 [(126)]TJ +0 g 0 G +ET + +endstream +endobj +1742 0 obj +<< +/Length 6381 +>> +stream +0 g 0 G +0 g 0 G +BT +/F16 14.3462 Tf 99.895 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(me)-1(ssages)-491(on)-491(a)-492(stac)28(k)-491(allo)28(wing)-492(the)-491(user)-491(to)-491(trace)-492(bac)28(k)-491(up)-492(to)]TJ 0 -11.956 Td [(the)-401(p)-27(oin)27(t)-400(where)-401(the)-400(\014rst)-401(error)-400(me)-1(ssage)-400(has)-401(b)-28(een)-400(generated.)-646(Ev)27(ery)-400(routine)-401(in)]TJ 0 -11.955 Td [(the)-442(PS)1(B)-1(LAS)1(-)-1(2.0)-441(library)-441(has,)-469(as)-442(last)-441(non-optional)-441(argume)-1(n)28(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(ariable)-367(is)-368(set)]TJ 0 -11.955 Td [(to)-381(a)-380(v)55(alue)-380(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(trol)-245(is)-245(return)1(e)-1(d)-245(to)-245(the)-245(caller)-245(routine)]TJ 0 -11.955 Td [(or)-372(the)-372(execution)-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)-328(v)56(alue)-328(retur)1(ned)-328(in)-328(the)]TJ/F30 9.9626 Tf 285.46 0 Td [(info)]TJ/F8 9.9626 Tf 24.185 0 Td [(v)56(ariable)]TJ -309.645 -11.955 Td [(and,)-359(if)-354(not)-354(zero,)-359(an)-353(e)-1(r)1(ror)-354(condition)-354(is)-354(raised.)-506(This)-354(pro)-28(cess)-354(con)28(tin)28(ues)-354(on)-354(all)-354(the)]TJ 0 -11.955 Td [(lev)28(els)-297(of)-297(nested)-296(calls)-297(un)28(til)-297(the)-296(lev)28(e)-1(l)-296(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 +0 g 0 G + [-353(sho)28(ws)-353(the)-353(la)28(y)27(out)-353(of)-353(a)-353(generic)]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(handl)1(ing)-326(p)-28(olicy)83(.)-442(It)-325(is)-326(p)-28(ossible)-326(to)-326(see)-326(ho)28(w,)-327(whenev)27(er)-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.703 0 Td [(psb_errpush)]TJ/F8 9.9626 Tf 57.533 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(hec)28(king)]TJ 0 -11.956 Td [(the)-462(error)-461(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)-434(b)-27(een)-434(pushed)-434(on)-434(stac)28(k,)-459(the)-434(program)-433(exec)-1(u)1(tion)-434(skips)]TJ 0 -11.955 Td [(to)-356(a)-356(p)-27(oin)28(t)-356(where)-356(the)-356(error)-355(c)-1(on)1(dition)-356(is)-356(handled;)-367(the)-355(e)-1(r)1(ror)-356(condition)-356(is)-356(hand)1(le)-1(d)]TJ 0 -11.955 Td [(either)-392(b)28(y)-392(returning)-392(con)28(trol)-392(to)-392(the)-392(caller)-392(r)1(outine)-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(prin)28(ts)-478(the)-478(con)28(ten)27(t)-478(of)-478(the)-478(error)-479(stac)28(k)-478(and)-478(ab)-28(orts)-478(the)-478(program)]TJ 0 -11.955 Td [(execution,)-330(accordin)1(g)-329(to)-329(th)1(e)-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 +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(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(ib)1(le)-248(to)-248(see)-248(that)-248(the)-248(error)-247(has)-248(b)-28(een)-248(detected)-248(inside)-248(the)]TJ/F30 9.9626 Tf 301.869 0 Td [(psb_cest)]TJ/F8 9.9626 Tf -301.869 -11.956 Td [(subroutine)-333(called)-334(b)28(y)]TJ/F30 9.9626 Tf 91.408 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 - 139.477 -294.437 Td [(131)]TJ + 22.582 -211.304 Td [(127)]TJ 0 g 0 G ET endstream endobj -1747 0 obj +1749 0 obj << -/Length 4185 +/Length 7207 >> stream 0 g 0 G 0 g 0 G +0 g 0 G +0 g 0 G +0 g 0 G +BT +/F53 8.9664 Tf 159.61 680.066 Td [(s)-60(u)-60(b)-60(r)-60(o)-59(u)-60(t)-60(i)-60(n)-60(e)]TJ/F46 8.9664 Tf 61.471 0 Td [(p)-132(s)-132(b)]TJ +ET +q +1 0 0 1 239.064 680.265 cm +[]0 d 0 J 0.398 w 0 0 m 2.765 0 l S +Q +BT +/F46 8.9664 Tf 243.014 680.066 Td [(f)-132(o)-132(o)-241(\050)-155(s)-47(o)-47(m)-46(e)-769(a)-105(r)-106(g)-105(s)-376(,)-939(i)-156(n)-156(f)-157(o)-265(\051)]TJ -65.126 -10.959 Td [(.)-248(.)-249(.)]TJ/F53 8.9664 Tf -0.604 -10.959 Td [(i)-181(f)]TJ/F46 8.9664 Tf 10.409 0 Td [(\050)-259(e)-152(r)-151(r)-151(o)-151(r)-897(d)-129(e)-129(t)-129(e)-130(c)-129(t)-129(e)-130(d)-237(\051)]TJ/F53 8.9664 Tf 93.291 0 Td [(t)-30(h)-30(e)-29(n)]TJ/F46 8.9664 Tf -87.332 -10.959 Td [(i)-156(n)-157(f)-156(o)-65(=)-38(e)-129(r)-129(r)-128(c)-129(o)-129(d)-129(e)-129(1)]TJ/F53 8.9664 Tf -0.133 -10.959 Td [(c)-142(a)-141(l)-142(l)]TJ/F46 8.9664 Tf 27.487 0 Td [(p)-124(s)-124(b)]TJ +ET +q +1 0 0 1 238.765 636.429 cm +[]0 d 0 J 0.398 w 0 0 m 2.765 0 l S +Q +BT +/F46 8.9664 Tf 242.641 636.23 Td [(e)-124(r)-124(r)-124(p)-123(u)-124(s)-124(h)-232(\050)-330(')-242(p)-132(s)-133(b)]TJ +ET +q +1 0 0 1 310.944 636.429 cm +[]0 d 0 J 0.398 w 0 0 m 2.765 0 l S +Q +BT +/F46 8.9664 Tf 314.894 636.23 Td [(f)-132(o)-132(o)-353(')-332(,)-855(e)-129(r)-129(r)-129(c)-129(o)-129(d)-128(e)-129(1)-237(\051)]TJ/F53 8.9664 Tf -122.23 -10.959 Td [(g)-46(o)-47(t)-46(o)]TJ/F46 8.9664 Tf 27.969 0 Td [(9)-82(9)-82(9)-83(9)]TJ/F53 8.9664 Tf -44.989 -10.959 Td [(e)2(n)2(d)-796(i)-181(f)]TJ/F46 8.9664 Tf 2.244 -10.959 Td [(.)-248(.)-249(.)]TJ/F53 8.9664 Tf -0.957 -10.959 Td [(c)-142(a)-141(l)-142(l)]TJ/F46 8.9664 Tf 27.399 0 Td [(p)-114(s)-114(b)]TJ +ET +q +1 0 0 1 221.826 592.594 cm +[]0 d 0 J 0.398 w 0 0 m 2.765 0 l S +Q +BT +/F46 8.9664 Tf 225.613 592.394 Td [(b)-114(a)-114(r)-223(\050)-155(s)-47(o)-46(m)-47(e)-769(a)-105(r)-105(g)-105(s)-376(,)-939(i)-157(n)-156(f)-157(o)-264(\051)]TJ/F53 8.9664 Tf -48.329 -10.958 Td [(i)-181(f)]TJ/F46 8.9664 Tf 10.409 0 Td [(\050)-265(i)-156(n)-157(f)-156(o)-939(.)]TJ/F53 8.9664 Tf 37.83 0 Td [(n)-11(e)]TJ/F46 8.9664 Tf 12.445 0 Td [(.)-910(z)-127(e)-127(r)-128(o)-236(\051)]TJ/F53 8.9664 Tf 43.016 0 Td [(t)-30(h)-30(e)-29(n)]TJ/F46 8.9664 Tf -87.332 -10.959 Td [(i)-156(n)-157(f)-156(o)-65(=)-38(e)-129(r)-129(r)-128(c)-129(o)-129(d)-129(e)-129(2)]TJ/F53 8.9664 Tf -0.133 -10.959 Td [(c)-142(a)-141(l)-142(l)]TJ/F46 8.9664 Tf 27.487 0 Td [(p)-124(s)-124(b)]TJ +ET +q +1 0 0 1 238.765 559.717 cm +[]0 d 0 J 0.398 w 0 0 m 2.765 0 l S +Q +BT +/F46 8.9664 Tf 242.641 559.518 Td [(e)-124(r)-124(r)-124(p)-123(u)-124(s)-124(h)-232(\050)-330(')-242(p)-132(s)-133(b)]TJ +ET +q +1 0 0 1 310.944 559.717 cm +[]0 d 0 J 0.398 w 0 0 m 2.765 0 l S +Q +BT +/F46 8.9664 Tf 314.894 559.518 Td [(f)-132(o)-132(o)-353(')-332(,)-855(e)-129(r)-129(r)-129(c)-129(o)-129(d)-128(e)-129(2)-237(\051)]TJ/F53 8.9664 Tf -122.23 -10.959 Td [(g)-46(o)-47(t)-46(o)]TJ/F46 8.9664 Tf 27.969 0 Td [(9)-82(9)-82(9)-83(9)]TJ/F53 8.9664 Tf -44.989 -10.959 Td [(e)2(n)2(d)-796(i)-181(f)]TJ/F46 8.9664 Tf 2.244 -10.959 Td [(.)-248(.)-249(.)]TJ -18.077 -10.959 Td [(9)-82(9)-82(9)-83(9)]TJ/F53 8.9664 Tf 27.419 0 Td [(c)-57(o)-57(n)-57(t)-56(i)-57(n)-57(u)-57(e)]TJ -9.946 -10.959 Td [(i)-181(f)]TJ/F46 8.9664 Tf 15.938 0 Td [(\050)-273(e)-164(r)-165(r)]TJ +ET +q +1 0 0 1 215.536 504.923 cm +[]0 d 0 J 0.398 w 0 0 m 2.765 0 l S +Q +BT +/F46 8.9664 Tf 219.774 504.723 Td [(a)-164(c)-165(t)-946(.)]TJ/F53 8.9664 Tf 27.965 0 Td [(e)-22(q)]TJ/F46 8.9664 Tf 12.346 0 Td [(.)-923(a)-141(c)-141(t)]TJ +ET +q +1 0 0 1 287.553 504.923 cm +[]0 d 0 J 0.398 w 0 0 m 2.765 0 l S +Q BT -/F16 11.9552 Tf 150.705 706.129 Td [(mm)]TJ +/F46 8.9664 Tf 291.582 504.723 Td [(a)-141(b)-141(o)-141(r)-141(t)-249(\051)]TJ/F53 8.9664 Tf 39.166 0 Td [(t)-30(h)-29(e)-30(n)]TJ -142.758 -10.959 Td [(c)-142(a)-141(l)-142(l)]TJ/F46 8.9664 Tf 27.681 0 Td [(p)-146(s)-145(b)]TJ ET q -1 0 0 1 173.928 706.328 cm -[]0 d 0 J 0.398 w 0 0 m 4.035 0 l S +1 0 0 1 234.014 493.964 cm +[]0 d 0 J 0.398 w 0 0 m 2.765 0 l S Q BT -/F16 11.9552 Tf 177.963 706.129 Td [(mat)]TJ +/F46 8.9664 Tf 238.084 493.764 Td [(e)-146(r)-145(r)-146(o)-145(r)-254(\050)-252(i)-144(c)-143(o)-144(n)-143(t)-143(x)-144(t)-252(\051)]TJ/F53 8.9664 Tf -50.844 -10.959 Td [(r)-58(e)-58(t)-58(u)-58(r)-58(n)]TJ -10.529 -10.958 Td [(e)-117(l)-117(s)-117(e)]TJ 10.529 -10.959 Td [(r)-58(e)-58(t)-58(u)-58(r)-58(n)]TJ -11.596 -10.959 Td [(e)2(n)2(d)-796(i)-181(f)]TJ -16.588 -21.918 Td [(e)2(n)2(d)-675(s)-60(u)-59(b)-60(r)-60(o)-60(u)-60(t)-60(i)-60(n)-60(e)]TJ/F46 8.9664 Tf 84.142 0 Td [(p)-132(s)-132(b)]TJ ET q -1 0 0 1 201.746 706.328 cm -[]0 d 0 J 0.398 w 0 0 m 4.035 0 l S +1 0 0 1 261.181 428.21 cm +[]0 d 0 J 0.398 w 0 0 m 2.765 0 l S Q BT -/F16 11.9552 Tf 205.781 706.129 Td [(write)-531(|)-532(W)94(rite)-531(a)-532(sparse)-531(matrix)-532(to)-531(a)-532(\014le)-531(in)-531(the)]TJ -55.076 -13.948 Td [(MatrixMark)31(et)-375(format)]TJ/F27 9.9626 Tf 1.377 -24.367 Td [(c)-138(a)-138(l)-139(l)]TJ/F8 9.9626 Tf 29.175 0 Td [(m)-67(m)]TJ +/F46 8.9664 Tf 265.131 428.011 Td [(f)-132(o)-132(o)]TJ +0 g 0 G +0 g 0 G ET q -1 0 0 1 199.787 668.014 cm -[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +1 0 0 1 150.705 701.884 cm +[]0 d 0 J 0.398 w 0 0 m 346.583 0 l S +Q +q +1 0 0 1 150.904 410.576 cm +[]0 d 0 J 0.398 w 0 0 m 0 291.308 l S +Q +q +1 0 0 1 497.088 410.576 cm +[]0 d 0 J 0.398 w 0 0 m 0 291.308 l S +Q +q +1 0 0 1 150.705 410.576 cm +[]0 d 0 J 0.398 w 0 0 m 346.583 0 l S Q BT -/F8 9.9626 Tf 203.439 667.814 Td [(m)-67(a)-66(t)]TJ +/F8 9.9626 Tf 150.705 382.537 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 ET q -1 0 0 1 223.186 668.014 cm -[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +1 0 0 1 314.468 382.736 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F8 9.9626 Tf 226.839 667.814 Td [(w)-67(r)-66(i)-67(t)-66(e)-173(\050)-139(a)-227(,)-885(m)-124(t)-123(i)-124(t)-124(l)-123(e)-409(,)-910(i)-150(r)-149(e)-150(t)-460(,)-896(i)-135(u)-135(n)-135(i)-135(t)-431(,)-890(f)-129(i)-129(l)-129(e)-129(n)-129(a)-129(m)-129(e)-234(\051)]TJ -0 g 0 G -0 g 0 G +/F30 9.9626 Tf 317.606 382.537 Td [(foo)]TJ/F8 9.9626 Tf 18.974 0 Td [(routine)-329(with)-330(resp)-28(ect)-329(to)-329(PSBLAS-2.0)]TJ -185.875 -11.955 Td [(error)-333(handling)-333(p)-28(olicy)83(.)]TJ 0 g 0 G -/F27 9.9626 Tf -76.134 -17.933 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)-333(to)-333(b)-28(e)-333(written.)]TJ 14.356 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.183 0 Td [(required)]TJ/F8 9.9626 Tf 41.898 0 Td [(.)]TJ -67.081 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-444(a)-334(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.914 0 Td [(psb)]TJ +/F30 9.9626 Tf 8.368 -39.475 Td [(==========================================================)]TJ 0 -11.955 Td [(Process:)-525(0.)-1050(PSBLAS)-525(Error)-525(\0504010\051)-525(in)-525(subroutine:)-525(df_sample)]TJ 0 -11.955 Td [(Error)-525(from)-525(call)-525(to)-525(subroutine)-525(mat)-525(dist)]TJ 0 -11.955 Td [(==========================================================)]TJ 0 -11.955 Td [(Process:)-525(0.)-1050(PSBLAS)-525(Error)-525(\0504010\051)-525(in)-525(subroutine:)-525(mat_distv)]TJ 0 -11.956 Td [(Error)-525(from)-525(call)-525(to)-525(subroutine)-525(psb_spasb)]TJ 0 -11.955 Td [(==========================================================)]TJ 0 -11.955 Td [(Process:)-525(0.)-1050(PSBLAS)-525(Error)-525(\0504010\051)-525(in)-525(subroutine:)-525(psb_spasb)]TJ 0 -11.955 Td [(Error)-525(from)-525(call)-525(to)-525(subroutine)-525(psb_cest)]TJ 0 -11.955 Td [(==========================================================)]TJ 0 -11.955 Td [(Process:)-525(0.)-1050(PSBLAS)-525(Error)-525(\050136\051)-525(in)-525(subroutine:)-525(psb_cest)]TJ 0 -11.956 Td [(Format)-525(FOO)-525(is)-525(unknown)]TJ 0 -11.955 Td [(==========================================================)]TJ 0 -11.955 Td [(Aborting...)]TJ ET q -1 0 0 1 362.845 586.32 cm -[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +1 0 0 1 150.705 343.417 cm +[]0 d 0 J 0.398 w 0 0 m 346.583 0 l S +Q +q +1 0 0 1 150.904 165.307 cm +[]0 d 0 J 0.398 w 0 0 m 0 178.111 l S +Q +q +1 0 0 1 497.088 165.307 cm +[]0 d 0 J 0.398 w 0 0 m 0 178.111 l S +Q +q +1 0 0 1 150.705 165.307 cm +[]0 d 0 J 0.398 w 0 0 m 346.583 0 l S Q BT -/F30 9.9626 Tf 365.983 586.121 Td [(Tspmat)]TJ +/F8 9.9626 Tf 150.705 137.267 Td [(Figure)-386(10:)-551(A)-386(sample)-386(PSBLAS-2.0)-387(err)1(or)-387(message.)-603(Pro)-28(cess)-387(0)-386(detected)-386(an)-387(error)]TJ 0 -11.955 Td [(condition)-333(inside)-334(t)1(he)-334(psb)]TJ ET q -1 0 0 1 397.993 586.32 cm -[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +1 0 0 1 255.468 125.512 cm +[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F30 9.9626 Tf 401.131 586.121 Td [(type)]TJ -0 g 0 G -/F8 9.9626 Tf 20.921 0 Td [(.)]TJ -0 g 0 G -/F27 9.9626 Tf -271.347 -19.926 Td [(m)32(title)]TJ -0 g 0 G -/F8 9.9626 Tf 34.737 0 Td [(Matrix)-333(title.)]TJ -9.831 -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 [(A)-299(c)28(harac)28(h)27(t)1(e)-1(r)-298(v)55(ariable)-299(hold)1(ing)-299(a)-299(descriptiv)28(e)-299(title)-299(for)-299(the)-299(matrix)-298(to)-299(b)-28(e)-299(writ-)]TJ 0 -11.955 Td [(ten)-333(to)-334(\014le.)]TJ -0 g 0 G -/F27 9.9626 Tf -24.906 -19.925 Td [(\014lename)]TJ -0 g 0 G -/F8 9.9626 Tf 46.513 0 Td [(The)-333(name)-334(of)-333(the)-333(\014le)-334(to)-333(b)-28(e)-333(written)-333(to.)]TJ -21.607 -11.956 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.184 0 Td [(optional)]TJ/F8 9.9626 Tf 40.577 0 Td [(.)]TJ -65.761 -11.955 Td [(Sp)-28(eci\014ed)-435(as:)-648(a)-435(c)27(haracter)-435(v)56(ariable)-435(con)27(tain)1(ing)-436(a)-435(v)56(alid)-435(\014le)-435(name)-1(,)-460(or)]TJ/F30 9.9626 Tf 297.916 0 Td [(-)]TJ/F8 9.9626 Tf 5.23 0 Td [(,)-461(in)]TJ -303.146 -11.955 Td [(whic)28(h)-281(case)-280(the)-281(d)1(e)-1(f)1(ault)-281(output)-280(unit)-280(6)-281(\050i.e.)-427(stand)1(ard)-281(output)-280(in)-280(Unix)-281(jargon\051)]TJ 0 -11.955 Td [(is)-333(used.)-445(Default:)]TJ/F30 9.9626 Tf 76.076 0 Td [(-)]TJ/F8 9.9626 Tf 5.231 0 Td [(.)]TJ -0 g 0 G -/F27 9.9626 Tf -106.213 -19.925 Td [(iunit)]TJ -0 g 0 G -/F8 9.9626 Tf 28.532 0 Td [(The)-333(F)83(ortran)-333(\014le)-334(u)1(nit)-334(n)28(um)28(b)-28(er.)]TJ -3.626 -11.956 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.184 0 Td [(optional)]TJ/F8 9.9626 Tf 40.577 0 Td [(.)]TJ -65.761 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(in)28(teger)-333(v)55(alue.)-444(Only)-334(meaningf)1(ul)-334(if)-333(\014lename)-333(is)-334(not)]TJ/F30 9.9626 Tf 286.289 0 Td [(-)]TJ/F8 9.9626 Tf 5.23 0 Td [(.)]TJ -0 g 0 G -/F27 9.9626 Tf -316.425 -21.918 Td [(On)-383(Return)]TJ -0 g 0 G -0 g 0 G - 0 -19.925 Td [(iret)]TJ +/F8 9.9626 Tf 258.457 125.312 Td [(cest)-333(subroutine)]TJ 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(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 - 139.476 -262.557 Td [(132)]TJ + 56.631 -34.874 Td [(128)]TJ 0 g 0 G ET endstream endobj -1753 0 obj +1779 0 obj << -/Length 3381 +/Length 3730 >> stream 0 g 0 G 0 g 0 G BT -/F16 11.9552 Tf 99.895 706.129 Td [(mm)]TJ +/F16 11.9552 Tf 99.895 706.129 Td [(8.1)-1125(psb)]TJ ET q -1 0 0 1 123.118 706.328 cm +1 0 0 1 151.587 706.328 cm []0 d 0 J 0.398 w 0 0 m 4.035 0 l S Q BT -/F16 11.9552 Tf 127.153 706.129 Td [(arra)31(y)]TJ +/F16 11.9552 Tf 155.621 706.129 Td [(errpush)-469(|)-468(Pushes)-469(an)-469(error)-468(co)-31(de)-469(on)31(to)-468(the)-469(error)]TJ -25.091 -13.948 Td [(stac)31(k)]TJ/F27 9.9626 Tf -29.258 -24.367 Td [(c)-138(a)-138(l)-139(l)]TJ/F8 9.9626 Tf 29.712 0 Td [(p)-120(s)-121(b)]TJ ET q -1 0 0 1 158.747 706.328 cm -[]0 d 0 J 0.398 w 0 0 m 4.035 0 l S +1 0 0 1 150.181 668.014 cm +[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F16 11.9552 Tf 162.782 706.129 Td [(write)-438(|)-438(W)93(rite)-438(a)-438(dense)-438(arra)31(y)-438(from)-438(a)-438(\014le)-439(in)-438(the)]TJ -62.887 -13.948 Td [(MatrixMark)31(et)-375(format)]TJ/F27 9.9626 Tf 1.377 -24.367 Td [(c)-138(a)-138(l)-139(l)]TJ/F8 9.9626 Tf 29.493 0 Td [(m)-99(m)]TJ +/F8 9.9626 Tf 154.37 667.814 Td [(e)-121(r)-120(r)-120(p)-121(u)-120(s)-121(h)-226(\050)-244(e)-138(r)-138(r)]TJ ET q -1 0 0 1 149.929 668.014 cm +1 0 0 1 219.855 668.014 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 153.899 667.814 Td [(a)-99(r)-98(r)-98(a)-99(y)]TJ +/F8 9.9626 Tf 224.221 667.814 Td [(c)-438(,)-825(r)]TJ ET q -1 0 0 1 182.428 668.014 cm +1 0 0 1 249.141 668.014 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 186.398 667.814 Td [(w)-98(r)-99(i)-98(t)-99(e)-204(\050)-120(b)-191(,)-911(i)-149(r)-150(e)-149(t)-461(,)-896(i)-134(u)-135(n)-135(i)-135(t)-431(,)-890(f)-129(i)-129(l)-129(e)-129(n)-129(a)-129(m)-129(e)-235(\051)]TJ -0 g 0 G -0 g 0 G -0 g 0 G -/F27 9.9626 Tf -86.503 -17.933 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 [(b)]TJ -0 g 0 G -/F8 9.9626 Tf 11.347 0 Td [(Rigth)-333(hand)-333(s)-1(i)1(de\050s)-1(\051.)]TJ 13.56 -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(arra)28(y)-334(of)-333(t)28(yp)-28(e)-333(real)-334(or)-333(complex,)-333(rank)-334(1)-333(or)-333(2;)-334(will)-333(b)-28(e)-333(written..)]TJ -0 g 0 G -/F27 9.9626 Tf -24.907 -19.926 Td [(\014lename)]TJ -0 g 0 G -/F8 9.9626 Tf 46.513 0 Td [(The)-333(name)-334(of)-333(the)-333(\014le)-334(to)-333(b)-28(e)-333(written.)]TJ -21.606 -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 [(Sp)-28(eci\014ed)-435(as:)-648(a)-435(c)27(h)1(arac)-1(ter)-435(v)56(ariable)-435(con)28(taining)-436(a)-435(v)56(alid)-435(\014le)-435(name,)-461(or)]TJ/F30 9.9626 Tf 297.915 0 Td [(-)]TJ/F8 9.9626 Tf 5.231 0 Td [(,)-461(in)]TJ -303.146 -11.955 Td [(whic)28(h)-302(cas)-1(e)-302(the)-302(default)-302(input)-302(unit)-302(5)-303(\050i.e.)-434(standard)-302(input)-302(in)-302(Unix)-302(jargon\051)-302(is)]TJ 0 -11.955 Td [(used.)-444(Default:)]TJ/F30 9.9626 Tf 66.058 0 Td [(-)]TJ/F8 9.9626 Tf 5.23 0 Td [(.)]TJ -0 g 0 G -/F27 9.9626 Tf -96.195 -19.926 Td [(iunit)]TJ -0 g 0 G -/F8 9.9626 Tf 28.532 0 Td [(The)-333(F)83(ortran)-333(\014le)-334(un)1(it)-334(n)28(um)28(b)-28(er.)]TJ -3.625 -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 [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(in)28(teger)-333(v)55(alue.)-444(Only)-333(me)-1(ani)1(ngful)-334(if)-333(\014lename)-333(is)-334(not)]TJ/F30 9.9626 Tf 286.288 0 Td [(-)]TJ/F8 9.9626 Tf 5.23 0 Td [(.)]TJ -0 g 0 G -/F27 9.9626 Tf -316.425 -21.918 Td [(On)-383(Return)]TJ -0 g 0 G -0 g 0 G - 0 -19.925 Td [(iret)]TJ -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 -318.348 Td [(133)]TJ -0 g 0 G +/F8 9.9626 Tf 252.772 667.814 Td [(n)-64(a)-65(m)-64(e)-290(,)-923(i)]TJ ET - -endstream -endobj -1760 0 obj -<< -/Length 1215 ->> -stream -0 g 0 G -0 g 0 G +q +1 0 0 1 297.774 668.014 cm +[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +Q BT -/F16 14.3462 Tf 150.705 706.129 Td [(10)-1125(Preconditioner)-375(routines)]TJ/F8 9.9626 Tf 0 -21.821 Td [(The)-310(base)-310(PSBLAS)-310(library)-310(con)28(tains)-310(the)-310(implemen)28(tation)-310(of)-310(t)28(w)27(o)-310(simple)-310(precondi-)]TJ 0 -11.955 Td [(tioning)-333(tec)28(hniques:)]TJ -0 g 0 G -/F14 9.9626 Tf 14.944 -19.925 Td [(\017)]TJ -0 g 0 G -/F8 9.9626 Tf 9.962 0 Td [(Diagonal)-333(Scaling)]TJ -0 g 0 G -/F14 9.9626 Tf -9.962 -19.926 Td [(\017)]TJ -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 [(.)-844(The)-466(old)-466(in)27(terfaces)]TJ/F30 9.9626 Tf 96.594 0 Td [(psb_precinit)]TJ/F8 9.9626 Tf 67.411 0 Td [(and)]TJ/F30 9.9626 Tf 20.697 0 Td [(psb_precbld)]TJ/F8 9.9626 Tf 62.181 0 Td [(are)-466(still)]TJ -309.647 -11.955 Td [(supp)-28(orted)-333(for)-333(bac)28(kw)27(ard)-333(compatibilit)28(y)]TJ -0 g 0 G - 164.383 -498.229 Td [(134)]TJ -0 g 0 G +/F8 9.9626 Tf 302.378 667.814 Td [(e)-162(r)-162(r)-485(,)-913(a)]TJ ET - -endstream -endobj -1766 0 obj -<< -/Length 5078 ->> -stream -0 g 0 G -0 g 0 G +q +1 0 0 1 341.632 668.014 cm +[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +Q BT -/F16 11.9552 Tf 99.895 706.129 Td [(init)-375(|)-375(Initialize)-375(a)-375(preconditioner)]TJ +/F8 9.9626 Tf 346.136 667.814 Td [(e)-152(r)-152(r)-258(\051)]TJ 0 g 0 G 0 g 0 G -/F30 9.9626 Tf 0 -18.389 Td [(call)-525(prec%init\050icontxt,ptype,)-525(info\051)]TJ 0 g 0 G -/F27 9.9626 Tf 0 -21.918 Td [(T)32(yp)-32(e:)]TJ +/F27 9.9626 Tf -246.241 -17.933 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.926 Td [(On)-383(En)32(try)]TJ -0 g 0 G -0 g 0 G - 0 -19.925 Td [(icon)32(txt)]TJ -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 27.951 0 Td [(global)]TJ/F8 9.9626 Tf 29.756 0 Td [(.)]TJ -57.707 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.183 0 Td [(required)]TJ/F8 9.9626 Tf 41.899 0 Td [(.)]TJ -67.082 -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(an)-333(in)28(teger)-333(v)55(alue.)]TJ -0 g 0 G -/F27 9.9626 Tf -24.907 -19.925 Td [(pt)32(yp)-32(e)]TJ -0 g 0 G -/F8 9.9626 Tf 33.465 0 Td [(the)-333(t)27(yp)-27(e)-334(of)-333(preconditioner.)-444(Scop)-28(e:)]TJ/F27 9.9626 Tf 153.093 0 Td [(global)]TJ/F8 9.9626 Tf -161.651 -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 [(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(c)28(haracter)-333(s)-1(t)1(ring,)-334(see)-333(usage)-334(notes.)]TJ -0 g 0 G -/F27 9.9626 Tf -24.907 -19.926 Td [(On)-383(Exit)]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 -19.925 Td [(prec)]TJ 0 g 0 G -/F8 9.9626 Tf 26.408 0 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -33.88 -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.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(preconditioner)-333(data)-333(structure)]TJ -0 0 1 rg 0 0 1 RG -/F30 9.9626 Tf 197.537 0 Td [(psb)]TJ + 0 -19.925 Td [(err)]TJ ET q -1 0 0 1 338.658 446.843 cm -[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +1 0 0 1 115.271 610.23 cm +[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F30 9.9626 Tf 341.796 446.644 Td [(prec)]TJ +/F27 9.9626 Tf 118.708 610.031 Td [(c)]TJ +0 g 0 G +/F8 9.9626 Tf 10.073 0 Td [(the)-333(error)-334(co)-27(de)]TJ -3.979 -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 [(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 +/F27 9.9626 Tf -24.907 -19.925 Td [(r)]TJ ET q -1 0 0 1 363.345 446.843 cm -[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +1 0 0 1 105.301 542.484 cm +[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F30 9.9626 Tf 366.483 446.644 Td [(type)]TJ -0 g 0 G -/F8 9.9626 Tf 20.922 0 Td [(.)]TJ -0 g 0 G -/F27 9.9626 Tf -287.51 -19.926 Td [(info)]TJ -0 g 0 G -/F8 9.9626 Tf 23.758 0 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(global)]TJ/F8 9.9626 Tf -31.23 -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 [(Error)-333(co)-28(de:)-444(if)-334(no)-333(error,)-333(0)-334(is)-333(returned.)]TJ/F16 11.9552 Tf -24.907 -21.918 Td [(Notes)]TJ/F8 9.9626 Tf 37.059 0 Td [(Legal)-316(inputs)-315(to)-316(this)-316(subroutine)-315(are)-316(in)28(terpreted)-316(dep)-28(ending)-315(on)-316(the)]TJ/F11 9.9626 Tf 283.149 0 Td [(pty)-36(pe)]TJ/F8 9.9626 Tf -320.208 -11.955 Td [(string)-333(as)-334(follo)28(ws)]TJ -0 0 1 rg 0 0 1 RG -/F7 6.9738 Tf 69.933 3.615 Td [(4)]TJ -0 g 0 G -/F8 9.9626 Tf 4.469 -3.615 Td [(:)]TJ -0 g 0 G -/F27 9.9626 Tf -74.402 -19.925 Td [(NONE)]TJ -0 g 0 G -/F8 9.9626 Tf 39.048 0 Td [(No)-333(preconditioning,)-333(i.e.)-445(the)-333(preconditioner)-333(is)-334(just)-333(a)-333(cop)27(y)-333(op)-28(erator.)]TJ -0 g 0 G -/F27 9.9626 Tf -39.048 -19.926 Td [(DIA)32(G)]TJ +/F27 9.9626 Tf 108.738 542.285 Td [(name)]TJ 0 g 0 G -/F8 9.9626 Tf 35.464 0 Td [(Diagonal)-441(scaling;)-496(eac)28(h)-442(en)28(try)-441(of)-442(th)1(e)-442(input)-441(v)28(ec)-1(tor)-441(is)-441(m)27(ultip)1(lied)-442(b)28(y)-441(the)]TJ -10.557 -11.955 Td [(recipro)-28(cal)-346(of)-346(the)-346(sum)-346(of)-345(the)-346(absolute)-346(v)55(alues)-346(of)-346(the)-346(co)-27(e\016cien)27(ts)-346(in)-346(th)1(e)-346(c)-1(or)1(-)]TJ 0 -11.955 Td [(resp)-28(onding)-333(ro)28(w)-334(of)-333(matrix)]TJ/F11 9.9626 Tf 113.602 0 Td [(A)]TJ/F8 9.9626 Tf 7.472 0 Td [(;)]TJ +/F8 9.9626 Tf 31.715 0 Td [(the)-333(soutine)-334(where)-333(the)-333(error)-334(has)-333(b)-28(een)-333(caugh)28(t.)]TJ -15.651 -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 [(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(string.)]TJ 0 g 0 G -/F27 9.9626 Tf -145.981 -19.925 Td [(BJA)32(C)]TJ +/F27 9.9626 Tf -24.907 -31.88 Td [(i)]TJ +ET +q +1 0 0 1 103.765 462.783 cm +[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S +Q +BT +/F27 9.9626 Tf 107.202 462.584 Td [(err)]TJ 0 g 0 G -/F8 9.9626 Tf 35.672 0 Td [(Precondition)-249(b)28(y)-249(a)-249(factorization)-248(of)-249(the)-249(blo)-28(c)28(k-diagonal)-249(of)-249(matrix)]TJ/F11 9.9626 Tf 269.665 0 Td [(A)]TJ/F8 9.9626 Tf 7.472 0 Td [(,)-266(where)]TJ -287.902 -11.956 Td [(blo)-28(c)28(k)-457(b)-28(oundaries)-457(are)-457(determined)-457(b)28(y)-457(the)-457(data)-457(allo)-28(cation)-457(b)-28(oundaries)-457(for)]TJ 0 -11.955 Td [(eac)28(h)-347(pro)-28(cess;)-353(requires)-346(no)-347(comm)28(unication.)-484(Only)-347(the)-346(incomplete)-347(factoriza-)]TJ 0 -11.955 Td [(tion)]TJ/F11 9.9626 Tf 20.479 0 Td [(I)-78(LU)]TJ/F8 9.9626 Tf 19.83 0 Td [(\0500\051)-333(is)-334(curren)28(tly)-333(implemen)28(ted.)]TJ +/F8 9.9626 Tf 19.67 0 Td [(addional)-333(info)-333(for)-334(error)-333(co)-28(de)]TJ -2.07 -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.956 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(in)28(teger)-333(arra)27(y)]TJ 0 g 0 G +/F27 9.9626 Tf -24.907 -31.88 Td [(a)]TJ ET q -1 0 0 1 99.895 129.78 cm -[]0 d 0 J 0.398 w 0 0 m 137.482 0 l S +1 0 0 1 106.152 395.037 cm +[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F32 5.9776 Tf 110.987 123.138 Td [(4)]TJ/F31 7.9701 Tf 4.151 -2.812 Td [(The)-354(string)-354(is)-355(case-insensitiv)30(e)]TJ +/F27 9.9626 Tf 109.589 394.838 Td [(err)]TJ 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.456 -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.956 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(string.)]TJ 0 g 0 G -/F8 9.9626 Tf 149.141 -29.888 Td [(135)]TJ + 139.477 -268.534 Td [(129)]TJ 0 g 0 G ET endstream endobj -1687 0 obj +1675 0 obj << /Type /ObjStm /N 100 -/First 967 -/Length 8778 +/First 973 +/Length 8840 >> stream -1667 0 1668 59 1669 117 1670 176 1671 235 1672 294 1673 353 1674 412 1675 471 1676 530 -1677 589 1678 646 1679 705 1680 764 1681 823 1682 882 1683 941 1684 1000 1685 1059 1686 1118 -1655 1176 1656 1235 1657 1294 1689 1402 1691 1520 473 1578 1692 1635 1693 1692 1688 1749 1695 1842 -1697 1960 477 2019 1698 2077 1699 2135 1694 2193 1701 2286 1703 2404 481 2462 1704 2519 1705 2576 -1700 2633 1707 2726 1709 2844 485 2903 1710 2961 1711 3019 1706 3077 1713 3183 1715 3301 489 3359 -1712 3416 1719 3509 1717 3648 1721 3792 493 3851 1722 3909 1723 3968 1718 4027 1726 4133 1724 4272 -1728 4416 497 4474 1729 4531 1730 4589 1725 4647 1733 4753 1731 4892 1735 5036 501 5095 1736 5153 -1737 5212 1732 5271 1739 5377 1741 5495 505 5553 1742 5610 1743 5668 1738 5726 1746 5832 1744 5971 -1748 6114 509 6173 1749 6231 1750 6290 1745 6349 1752 6455 1754 6573 513 6631 1755 6688 1756 6746 -1751 6804 1759 6910 1761 7028 517 7087 1758 7145 1765 7251 1762 7399 1763 7546 1767 7696 521 7754 -% 1667 0 obj +1672 0 1674 118 445 176 1671 233 1678 339 1680 457 449 516 1677 574 1682 680 1684 798 +453 856 1681 913 1686 1019 1688 1137 457 1196 1685 1254 1690 1386 1692 1504 461 1562 1693 1619 +1694 1677 1689 1735 1696 1867 1698 1985 465 2044 1699 2102 1700 2161 1695 2220 1702 2352 1704 2470 +469 2528 1705 2585 1706 2643 1701 2701 1709 2833 1711 2951 473 3010 1712 3068 1713 3127 1708 3186 +1715 3318 1717 3436 477 3494 1718 3551 1719 3609 1714 3667 1721 3799 1723 3917 481 3976 1724 4034 +1725 4092 1727 4151 1720 4209 1729 4379 1731 4497 485 4555 1732 4612 1728 4669 1734 4801 1736 4919 +489 4978 1737 5036 1733 5094 1741 5226 1738 5374 1739 5520 1743 5667 493 5725 1740 5782 1748 5875 +1750 5993 1751 6052 1752 6111 1754 6170 1755 6229 1756 6288 1757 6347 1758 6406 1759 6464 1760 6523 +1761 6582 1762 6641 1763 6700 1764 6759 1765 6818 1766 6877 1767 6936 1768 6993 1769 7052 1770 7111 +1771 7170 1772 7229 1773 7288 1774 7347 1775 7406 1776 7465 1745 7523 1746 7582 1747 7641 1778 7749 +% 1672 0 obj +<< +/Type /Page +/Contents 1673 0 R +/Resources 1671 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1676 0 R +>> +% 1674 0 obj << -/D [1658 0 R /XYZ 159.073 647.189 null] +/D [1672 0 R /XYZ 98.895 753.953 null] >> -% 1668 0 obj +% 445 0 obj << -/D [1658 0 R /XYZ 159.073 636.23 null] +/D [1672 0 R /XYZ 99.895 716.092 null] >> -% 1669 0 obj +% 1671 0 obj << -/D [1658 0 R /XYZ 159.073 625.271 null] +/Font << /F16 582 0 R /F30 811 0 R /F8 585 0 R /F27 584 0 R >> +/ProcSet [ /PDF /Text ] >> -% 1670 0 obj +% 1678 0 obj << -/D [1658 0 R /XYZ 159.073 614.312 null] +/Type /Page +/Contents 1679 0 R +/Resources 1677 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1676 0 R >> -% 1671 0 obj +% 1680 0 obj << -/D [1658 0 R /XYZ 159.073 603.353 null] +/D [1678 0 R /XYZ 149.705 753.953 null] >> -% 1672 0 obj +% 449 0 obj +<< +/D [1678 0 R /XYZ 150.705 716.092 null] +>> +% 1677 0 obj +<< +/Font << /F16 582 0 R /F30 811 0 R /F8 585 0 R /F27 584 0 R >> +/ProcSet [ /PDF /Text ] +>> +% 1682 0 obj +<< +/Type /Page +/Contents 1683 0 R +/Resources 1681 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1676 0 R +>> +% 1684 0 obj +<< +/D [1682 0 R /XYZ 98.895 753.953 null] +>> +% 453 0 obj << -/D [1658 0 R /XYZ 159.073 592.394 null] +/D [1682 0 R /XYZ 99.895 716.092 null] >> -% 1673 0 obj +% 1681 0 obj << -/D [1658 0 R /XYZ 159.073 581.436 null] +/Font << /F16 582 0 R /F30 811 0 R /F8 585 0 R /F27 584 0 R >> +/ProcSet [ /PDF /Text ] >> -% 1674 0 obj +% 1686 0 obj << -/D [1658 0 R /XYZ 159.073 570.477 null] +/Type /Page +/Contents 1687 0 R +/Resources 1685 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1676 0 R >> -% 1675 0 obj +% 1688 0 obj << -/D [1658 0 R /XYZ 159.073 559.518 null] +/D [1686 0 R /XYZ 149.705 753.953 null] >> -% 1676 0 obj +% 457 0 obj << -/D [1658 0 R /XYZ 159.073 548.559 null] +/D [1686 0 R /XYZ 150.705 716.092 null] >> -% 1677 0 obj +% 1685 0 obj << -/D [1658 0 R /XYZ 159.073 537.6 null] +/Font << /F16 582 0 R /F30 811 0 R /F8 585 0 R /F27 584 0 R /F11 797 0 R /F14 814 0 R >> +/ProcSet [ /PDF /Text ] >> -% 1678 0 obj +% 1690 0 obj << -/D [1658 0 R /XYZ 159.073 526.641 null] +/Type /Page +/Contents 1691 0 R +/Resources 1689 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1676 0 R >> -% 1679 0 obj +% 1692 0 obj << -/D [1658 0 R /XYZ 159.073 515.682 null] +/D [1690 0 R /XYZ 98.895 753.953 null] >> -% 1680 0 obj +% 461 0 obj << -/D [1658 0 R /XYZ 159.073 504.723 null] +/D [1690 0 R /XYZ 99.895 716.092 null] >> -% 1681 0 obj +% 1693 0 obj << -/D [1658 0 R /XYZ 159.073 493.764 null] +/D [1690 0 R /XYZ 99.895 247.391 null] >> -% 1682 0 obj +% 1694 0 obj << -/D [1658 0 R /XYZ 159.073 482.805 null] +/D [1690 0 R /XYZ 99.895 213.573 null] >> -% 1683 0 obj +% 1689 0 obj << -/D [1658 0 R /XYZ 159.073 471.847 null] +/Font << /F16 582 0 R /F30 811 0 R /F8 585 0 R /F27 584 0 R /F14 814 0 R /F11 797 0 R >> +/ProcSet [ /PDF /Text ] >> -% 1684 0 obj +% 1696 0 obj << -/D [1658 0 R /XYZ 159.073 460.888 null] +/Type /Page +/Contents 1697 0 R +/Resources 1695 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1676 0 R >> -% 1685 0 obj +% 1698 0 obj << -/D [1658 0 R /XYZ 159.073 449.929 null] +/D [1696 0 R /XYZ 149.705 753.953 null] >> -% 1686 0 obj +% 465 0 obj << -/D [1658 0 R /XYZ 159.073 438.97 null] +/D [1696 0 R /XYZ 150.705 716.092 null] >> -% 1655 0 obj +% 1699 0 obj << -/D [1658 0 R /XYZ 194.261 394.492 null] +/D [1696 0 R /XYZ 150.705 247.391 null] >> -% 1656 0 obj +% 1700 0 obj << -/D [1658 0 R /XYZ 200.884 149.223 null] +/D [1696 0 R /XYZ 150.705 213.573 null] >> -% 1657 0 obj +% 1695 0 obj << -/Font << /F53 1663 0 R /F46 1211 0 R /F8 561 0 R /F30 769 0 R >> +/Font << /F16 582 0 R /F30 811 0 R /F8 585 0 R /F27 584 0 R /F14 814 0 R /F11 797 0 R >> /ProcSet [ /PDF /Text ] >> -% 1689 0 obj +% 1702 0 obj << /Type /Page -/Contents 1690 0 R -/Resources 1688 0 R +/Contents 1703 0 R +/Resources 1701 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1654 0 R +/Parent 1707 0 R >> -% 1691 0 obj +% 1704 0 obj << -/D [1689 0 R /XYZ 98.895 753.953 null] +/D [1702 0 R /XYZ 98.895 753.953 null] >> -% 473 0 obj +% 469 0 obj << -/D [1689 0 R /XYZ 99.895 724.062 null] +/D [1702 0 R /XYZ 99.895 716.092 null] >> -% 1692 0 obj +% 1705 0 obj << -/D [1689 0 R /XYZ 99.895 638.48 null] +/D [1702 0 R /XYZ 99.895 247.391 null] >> -% 1693 0 obj +% 1706 0 obj << -/D [1689 0 R /XYZ 99.895 638.48 null] +/D [1702 0 R /XYZ 99.895 213.573 null] >> -% 1688 0 obj +% 1701 0 obj << -/Font << /F16 558 0 R /F27 560 0 R /F8 561 0 R >> +/Font << /F16 582 0 R /F30 811 0 R /F8 585 0 R /F27 584 0 R /F14 814 0 R /F11 797 0 R >> /ProcSet [ /PDF /Text ] >> -% 1695 0 obj +% 1709 0 obj << /Type /Page -/Contents 1696 0 R -/Resources 1694 0 R +/Contents 1710 0 R +/Resources 1708 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1654 0 R +/Parent 1707 0 R >> -% 1697 0 obj +% 1711 0 obj << -/D [1695 0 R /XYZ 149.705 753.953 null] +/D [1709 0 R /XYZ 149.705 753.953 null] >> -% 477 0 obj +% 473 0 obj << -/D [1695 0 R /XYZ 150.705 724.062 null] +/D [1709 0 R /XYZ 150.705 716.092 null] >> -% 1698 0 obj +% 1712 0 obj << -/D [1695 0 R /XYZ 150.705 638.48 null] +/D [1709 0 R /XYZ 150.705 235.436 null] >> -% 1699 0 obj +% 1713 0 obj << -/D [1695 0 R /XYZ 150.705 638.48 null] +/D [1709 0 R /XYZ 150.705 201.618 null] >> -% 1694 0 obj +% 1708 0 obj << -/Font << /F16 558 0 R /F27 560 0 R /F8 561 0 R >> +/Font << /F16 582 0 R /F30 811 0 R /F8 585 0 R /F27 584 0 R /F14 814 0 R /F11 797 0 R >> /ProcSet [ /PDF /Text ] >> -% 1701 0 obj +% 1715 0 obj << /Type /Page -/Contents 1702 0 R -/Resources 1700 0 R +/Contents 1716 0 R +/Resources 1714 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1654 0 R +/Parent 1707 0 R >> -% 1703 0 obj +% 1717 0 obj << -/D [1701 0 R /XYZ 98.895 753.953 null] +/D [1715 0 R /XYZ 98.895 753.953 null] >> -% 481 0 obj +% 477 0 obj << -/D [1701 0 R /XYZ 99.895 724.062 null] +/D [1715 0 R /XYZ 99.895 716.092 null] >> -% 1704 0 obj +% 1718 0 obj << -/D [1701 0 R /XYZ 99.895 635.69 null] +/D [1715 0 R /XYZ 99.895 235.436 null] >> -% 1705 0 obj +% 1719 0 obj << -/D [1701 0 R /XYZ 99.895 638.48 null] +/D [1715 0 R /XYZ 99.895 201.618 null] >> -% 1700 0 obj +% 1714 0 obj << -/Font << /F16 558 0 R /F27 560 0 R /F8 561 0 R >> +/Font << /F16 582 0 R /F30 811 0 R /F8 585 0 R /F27 584 0 R /F14 814 0 R /F11 797 0 R >> /ProcSet [ /PDF /Text ] >> -% 1707 0 obj +% 1721 0 obj << /Type /Page -/Contents 1708 0 R -/Resources 1706 0 R +/Contents 1722 0 R +/Resources 1720 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1654 0 R +/Parent 1707 0 R >> -% 1709 0 obj +% 1723 0 obj << -/D [1707 0 R /XYZ 149.705 753.953 null] +/D [1721 0 R /XYZ 149.705 753.953 null] >> -% 485 0 obj +% 481 0 obj +<< +/D [1721 0 R /XYZ 150.705 716.092 null] +>> +% 1724 0 obj << -/D [1707 0 R /XYZ 150.705 724.062 null] +/D [1721 0 R /XYZ 150.705 272.94 null] >> -% 1710 0 obj +% 1725 0 obj << -/D [1707 0 R /XYZ 150.705 635.69 null] +/D [1721 0 R /XYZ 150.705 239.973 null] >> -% 1711 0 obj +% 1727 0 obj << -/D [1707 0 R /XYZ 150.705 638.48 null] +/D [1721 0 R /XYZ 150.705 152.13 null] >> -% 1706 0 obj +% 1720 0 obj << -/Font << /F16 558 0 R /F27 560 0 R /F8 561 0 R /F30 769 0 R >> +/Font << /F16 582 0 R /F30 811 0 R /F8 585 0 R /F27 584 0 R /F14 814 0 R /F11 797 0 R /F10 813 0 R /F1 1726 0 R /F7 812 0 R >> /ProcSet [ /PDF /Text ] >> -% 1713 0 obj +% 1729 0 obj << /Type /Page -/Contents 1714 0 R -/Resources 1712 0 R +/Contents 1730 0 R +/Resources 1728 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1716 0 R +/Parent 1707 0 R >> -% 1715 0 obj +% 1731 0 obj << -/D [1713 0 R /XYZ 98.895 753.953 null] +/D [1729 0 R /XYZ 98.895 753.953 null] >> -% 489 0 obj +% 485 0 obj << -/D [1713 0 R /XYZ 99.895 716.092 null] +/D [1729 0 R /XYZ 99.895 716.092 null] >> -% 1712 0 obj +% 1732 0 obj +<< +/D [1729 0 R /XYZ 99.895 223.48 null] +>> +% 1728 0 obj << -/Font << /F16 558 0 R /F8 561 0 R /F30 769 0 R >> +/Font << /F16 582 0 R /F30 811 0 R /F8 585 0 R /F27 584 0 R /F11 797 0 R /F14 814 0 R >> /ProcSet [ /PDF /Text ] >> -% 1719 0 obj +% 1734 0 obj << /Type /Page -/Contents 1720 0 R -/Resources 1718 0 R +/Contents 1735 0 R +/Resources 1733 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1716 0 R -/Annots [ 1717 0 R ] ->> -% 1717 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [345.53 449.411 423.049 460.536] -/A << /S /GoTo /D (spdata) >> ->> -% 1721 0 obj -<< -/D [1719 0 R /XYZ 149.705 753.953 null] +/Parent 1707 0 R >> -% 493 0 obj +% 1736 0 obj << -/D [1719 0 R /XYZ 150.705 720.077 null] +/D [1734 0 R /XYZ 149.705 753.953 null] >> -% 1722 0 obj +% 489 0 obj << -/D [1719 0 R /XYZ 150.705 677.445 null] +/D [1734 0 R /XYZ 150.705 716.092 null] >> -% 1723 0 obj +% 1737 0 obj << -/D [1719 0 R /XYZ 150.705 679.769 null] +/D [1734 0 R /XYZ 150.705 223.48 null] >> -% 1718 0 obj +% 1733 0 obj << -/Font << /F16 558 0 R /F27 560 0 R /F8 561 0 R /F30 769 0 R >> +/Font << /F16 582 0 R /F30 811 0 R /F8 585 0 R /F27 584 0 R /F11 797 0 R /F14 814 0 R >> /ProcSet [ /PDF /Text ] >> -% 1726 0 obj +% 1741 0 obj << /Type /Page -/Contents 1727 0 R -/Resources 1725 0 R +/Contents 1742 0 R +/Resources 1740 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1716 0 R -/Annots [ 1724 0 R ] +/Parent 1744 0 R +/Annots [ 1738 0 R 1739 0 R ] >> -% 1724 0 obj +% 1738 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [294.721 582.91 372.239 594.035] -/A << /S /GoTo /D (spdata) >> ->> -% 1728 0 obj -<< -/D [1726 0 R /XYZ 98.895 753.953 null] +/Rect [145.477 501.77 152.451 512.895] +/A << /S /GoTo /D (figure.9) >> >> -% 497 0 obj +% 1739 0 obj << -/D [1726 0 R /XYZ 99.895 720.077 null] +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [146.734 346.63 158.689 357.478] +/A << /S /GoTo /D (figure.10) >> >> -% 1729 0 obj +% 1743 0 obj << -/D [1726 0 R /XYZ 99.895 677.445 null] +/D [1741 0 R /XYZ 98.895 753.953 null] >> -% 1730 0 obj +% 493 0 obj << -/D [1726 0 R /XYZ 99.895 679.769 null] +/D [1741 0 R /XYZ 99.895 716.092 null] >> -% 1725 0 obj +% 1740 0 obj << -/Font << /F16 558 0 R /F27 560 0 R /F8 561 0 R /F30 769 0 R >> +/Font << /F16 582 0 R /F8 585 0 R /F30 811 0 R >> /ProcSet [ /PDF /Text ] >> -% 1733 0 obj +% 1748 0 obj << /Type /Page -/Contents 1734 0 R -/Resources 1732 0 R +/Contents 1749 0 R +/Resources 1747 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1716 0 R -/Annots [ 1731 0 R ] +/Parent 1744 0 R >> -% 1731 0 obj +% 1750 0 obj << -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [345.53 449.411 423.049 460.536] -/A << /S /GoTo /D (spdata) >> +/D [1748 0 R /XYZ 149.705 753.953 null] >> -% 1735 0 obj +% 1751 0 obj << -/D [1733 0 R /XYZ 149.705 753.953 null] +/D [1748 0 R /XYZ 159.073 687.737 null] >> -% 501 0 obj +% 1752 0 obj << -/D [1733 0 R /XYZ 150.705 720.077 null] +/D [1748 0 R /XYZ 159.073 691.025 null] >> -% 1736 0 obj +% 1754 0 obj << -/D [1733 0 R /XYZ 150.705 679.769 null] +/D [1748 0 R /XYZ 159.073 680.066 null] >> -% 1737 0 obj +% 1755 0 obj << -/D [1733 0 R /XYZ 150.705 679.769 null] +/D [1748 0 R /XYZ 159.073 669.107 null] >> -% 1732 0 obj +% 1756 0 obj << -/Font << /F16 558 0 R /F27 560 0 R /F8 561 0 R /F30 769 0 R >> -/ProcSet [ /PDF /Text ] +/D [1748 0 R /XYZ 159.073 658.148 null] >> -% 1739 0 obj +% 1757 0 obj << -/Type /Page -/Contents 1740 0 R -/Resources 1738 0 R -/MediaBox [0 0 595.276 841.89] -/Parent 1716 0 R +/D [1748 0 R /XYZ 159.073 647.189 null] >> -% 1741 0 obj +% 1758 0 obj << -/D [1739 0 R /XYZ 98.895 753.953 null] +/D [1748 0 R /XYZ 159.073 636.23 null] >> -% 505 0 obj +% 1759 0 obj << -/D [1739 0 R /XYZ 99.895 720.077 null] +/D [1748 0 R /XYZ 159.073 625.271 null] >> -% 1742 0 obj +% 1760 0 obj << -/D [1739 0 R /XYZ 99.895 679.769 null] +/D [1748 0 R /XYZ 159.073 614.312 null] >> -% 1743 0 obj +% 1761 0 obj << -/D [1739 0 R /XYZ 99.895 679.769 null] +/D [1748 0 R /XYZ 159.073 603.353 null] >> -% 1738 0 obj +% 1762 0 obj << -/Font << /F16 558 0 R /F27 560 0 R /F8 561 0 R /F30 769 0 R >> -/ProcSet [ /PDF /Text ] +/D [1748 0 R /XYZ 159.073 592.394 null] >> -% 1746 0 obj +% 1763 0 obj << -/Type /Page -/Contents 1747 0 R -/Resources 1745 0 R -/MediaBox [0 0 595.276 841.89] -/Parent 1716 0 R -/Annots [ 1744 0 R ] +/D [1748 0 R /XYZ 159.073 581.436 null] >> -% 1744 0 obj +% 1764 0 obj << -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [345.53 582.91 423.049 594.035] -/A << /S /GoTo /D (spdata) >> +/D [1748 0 R /XYZ 159.073 570.477 null] >> -% 1748 0 obj +% 1765 0 obj << -/D [1746 0 R /XYZ 149.705 753.953 null] +/D [1748 0 R /XYZ 159.073 559.518 null] >> -% 509 0 obj +% 1766 0 obj << -/D [1746 0 R /XYZ 150.705 720.077 null] +/D [1748 0 R /XYZ 159.073 548.559 null] >> -% 1749 0 obj +% 1767 0 obj << -/D [1746 0 R /XYZ 150.705 679.769 null] +/D [1748 0 R /XYZ 159.073 537.6 null] >> -% 1750 0 obj +% 1768 0 obj << -/D [1746 0 R /XYZ 150.705 679.769 null] +/D [1748 0 R /XYZ 159.073 526.641 null] >> -% 1745 0 obj +% 1769 0 obj << -/Font << /F16 558 0 R /F27 560 0 R /F8 561 0 R /F30 769 0 R >> -/ProcSet [ /PDF /Text ] +/D [1748 0 R /XYZ 159.073 515.682 null] >> -% 1752 0 obj +% 1770 0 obj << -/Type /Page -/Contents 1753 0 R -/Resources 1751 0 R -/MediaBox [0 0 595.276 841.89] -/Parent 1757 0 R +/D [1748 0 R /XYZ 159.073 504.723 null] >> -% 1754 0 obj +% 1771 0 obj << -/D [1752 0 R /XYZ 98.895 753.953 null] +/D [1748 0 R /XYZ 159.073 493.764 null] >> -% 513 0 obj +% 1772 0 obj << -/D [1752 0 R /XYZ 99.895 720.077 null] +/D [1748 0 R /XYZ 159.073 482.805 null] >> -% 1755 0 obj +% 1773 0 obj << -/D [1752 0 R /XYZ 99.895 679.769 null] +/D [1748 0 R /XYZ 159.073 471.847 null] >> -% 1756 0 obj +% 1774 0 obj << -/D [1752 0 R /XYZ 99.895 679.769 null] +/D [1748 0 R /XYZ 159.073 460.888 null] >> -% 1751 0 obj +% 1775 0 obj << -/Font << /F16 558 0 R /F27 560 0 R /F8 561 0 R /F30 769 0 R >> -/ProcSet [ /PDF /Text ] +/D [1748 0 R /XYZ 159.073 449.929 null] >> -% 1759 0 obj +% 1776 0 obj << -/Type /Page -/Contents 1760 0 R -/Resources 1758 0 R -/MediaBox [0 0 595.276 841.89] -/Parent 1757 0 R +/D [1748 0 R /XYZ 159.073 438.97 null] >> -% 1761 0 obj +% 1745 0 obj << -/D [1759 0 R /XYZ 149.705 753.953 null] +/D [1748 0 R /XYZ 194.261 394.492 null] >> -% 517 0 obj +% 1746 0 obj << -/D [1759 0 R /XYZ 150.705 716.092 null] +/D [1748 0 R /XYZ 200.884 149.223 null] >> -% 1758 0 obj +% 1747 0 obj << -/Font << /F16 558 0 R /F8 561 0 R /F14 772 0 R /F30 769 0 R >> +/Font << /F53 1753 0 R /F46 1301 0 R /F8 585 0 R /F30 811 0 R >> /ProcSet [ /PDF /Text ] >> -% 1765 0 obj +% 1778 0 obj << /Type /Page -/Contents 1766 0 R -/Resources 1764 0 R +/Contents 1779 0 R +/Resources 1777 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1757 0 R -/Annots [ 1762 0 R 1763 0 R ] ->> -% 1762 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [321.343 443.433 388.401 454.558] -/A << /S /GoTo /D (precdata) >> ->> -% 1763 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [168.831 354.046 175.293 366.086] -/A << /S /GoTo /D (Hfootnote.4) >> ->> -% 1767 0 obj -<< -/D [1765 0 R /XYZ 98.895 753.953 null] +/Parent 1744 0 R >> -% 521 0 obj + +endstream +endobj +1786 0 obj << -/D [1765 0 R /XYZ 99.895 720.077 null] +/Length 1408 >> +stream +0 g 0 G +0 g 0 G +BT +/F16 11.9552 Tf 150.705 706.129 Td [(8.2)-1125(psb)]TJ +ET +q +1 0 0 1 202.396 706.328 cm +[]0 d 0 J 0.398 w 0 0 m 4.035 0 l S +Q +BT +/F16 11.9552 Tf 206.431 706.129 Td [(error)-304(|)-304(Prin)31(ts)-304(the)-304(error)-304(stac)32(k)-304(con)31(ten)31(t)-304(and)-304(ab)-31(orts)]TJ -25.091 -13.948 Td [(execution)]TJ/F27 9.9626 Tf -29.258 -24.367 Td [(c)-138(a)-138(l)-139(l)]TJ/F8 9.9626 Tf 29.921 0 Td [(p)-141(s)-142(b)]TJ +ET +q +1 0 0 1 201.829 668.014 cm +[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +Q +BT +/F8 9.9626 Tf 206.228 667.814 Td [(e)-142(r)-141(r)-141(o)-142(r)-247(\050)-245(i)-140(c)-139(o)-140(n)-139(t)-140(x)-140(t)-245(\051)]TJ +0 g 0 G +0 g 0 G +0 g 0 G +/F27 9.9626 Tf -55.523 -17.933 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 [(icon)32(txt)]TJ +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.378 0 Td [(global)]TJ/F8 9.9626 Tf -32.378 -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.956 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.)]TJ +0 g 0 G + 139.476 -471.772 Td [(130)]TJ +0 g 0 G +ET endstream endobj -1776 0 obj +1792 0 obj << -/Length 7727 +/Length 1645 >> stream 0 g 0 G 0 g 0 G BT -/F16 11.9552 Tf 150.705 706.129 Td [(build)-375(|)-375(Builds)-375(a)-375(preconditioner)]TJ +/F16 11.9552 Tf 99.895 706.129 Td [(8.3)-1125(psb)]TJ +ET +q +1 0 0 1 151.587 706.328 cm +[]0 d 0 J 0.398 w 0 0 m 4.035 0 l S +Q +BT +/F16 11.9552 Tf 155.621 706.129 Td [(set)]TJ +ET +q +1 0 0 1 173.101 706.328 cm +[]0 d 0 J 0.398 w 0 0 m 4.035 0 l S +Q +BT +/F16 11.9552 Tf 177.135 706.129 Td [(errv)31(erb)-31(osit)31(y)-250(|)-250(Sets)-250(the)-250(v)31(erb)-31(osit)31(y)-250(of)-250(error)-250(mes-)]TJ -46.605 -13.948 Td [(sages)]TJ/F27 9.9626 Tf -29.258 -24.367 Td [(c)-138(a)-138(l)-139(l)]TJ/F8 9.9626 Tf 30.082 0 Td [(p)-158(s)-157(b)]TJ +ET +q +1 0 0 1 151.663 668.014 cm +[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +Q +BT +/F8 9.9626 Tf 156.223 667.814 Td [(s)-158(e)-157(t)]TJ +ET +q +1 0 0 1 173.764 668.014 cm +[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +Q +BT +/F8 9.9626 Tf 178.324 667.814 Td [(e)-158(r)-157(r)-158(v)-158(e)-157(r)-158(b)-157(o)-158(s)-158(i)-157(t)-158(y)-263(\050)-142(v)-142(\051)]TJ 0 g 0 G 0 g 0 G -/F30 9.9626 Tf 0 -19.764 Td [(call)-525(prec%build\050a,)-525(desc_a,)-525(info[,amold,vmold,imold]\051)]TJ 0 g 0 G -/F27 9.9626 Tf 0 -24.132 Td [(T)32(yp)-32(e:)]TJ +/F27 9.9626 Tf -78.429 -17.933 Td [(T)32(yp)-32(e:)]TJ 0 g 0 G -/F8 9.9626 Tf 33.797 0 Td [(Sync)28(hronous.)]TJ +/F8 9.9626 Tf 33.797 0 Td [(Async)28(hronous.)]TJ 0 g 0 G -/F27 9.9626 Tf -33.797 -22.879 Td [(On)-383(En)32(try)]TJ +/F27 9.9626 Tf -33.797 -19.925 Td [(On)-383(En)32(try)]TJ 0 g 0 G 0 g 0 G - 0 -22.879 Td [(a)]TJ + 0 -19.925 Td [(v)]TJ 0 g 0 G -/F8 9.9626 Tf 10.551 0 Td [(the)-333(system)-334(sparse)-333(matrix.)-445(Scop)-27(e:)]TJ/F27 9.9626 Tf 148.886 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -134.53 -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 [(in)]TJ/F8 9.9626 Tf 9.548 0 Td [(,)-333(target.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-444(a)-334(sparse)-333(matrix)-334(d)1(ata)-334(structure)]TJ -0 0 1 rg 0 0 1 RG -/F30 9.9626 Tf 194.05 0 Td [(psb)]TJ +/F8 9.9626 Tf 11.028 0 Td [(the)-333(v)27(erb)-27(osit)27(y)-333(lev)28(el)]TJ 13.879 -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 [(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 [(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 -471.772 Td [(131)]TJ +0 g 0 G +ET + +endstream +endobj +1798 0 obj +<< +/Length 2111 +>> +stream +0 g 0 G +0 g 0 G +BT +/F16 11.9552 Tf 150.705 706.129 Td [(8.4)-1125(psb)]TJ ET q -1 0 0 1 385.981 580.809 cm -[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +1 0 0 1 202.396 706.328 cm +[]0 d 0 J 0.398 w 0 0 m 4.035 0 l S Q BT -/F30 9.9626 Tf 389.119 580.61 Td [(Tspmat)]TJ +/F16 11.9552 Tf 206.431 706.129 Td [(set)]TJ ET q -1 0 0 1 421.128 580.809 cm -[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +1 0 0 1 223.91 706.328 cm +[]0 d 0 J 0.398 w 0 0 m 4.035 0 l S Q BT -/F30 9.9626 Tf 424.267 580.61 Td [(type)]TJ -0 g 0 G -/F8 9.9626 Tf 20.921 0 Td [(.)]TJ -0 g 0 G -/F27 9.9626 Tf -294.483 -22.879 Td [(prec)]TJ -0 g 0 G -/F8 9.9626 Tf 26.408 0 Td [(the)-333(preconditioner.)]TJ -1.501 -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 [(inout)]TJ/F8 9.9626 Tf 26.097 0 Td [(.)]TJ -59.582 -11.956 Td [(Sp)-28(eci\014ed)-222(as:)-389(an)-222(already)-222(initialized)-222(precondtioner)-222(data)-223(structure)]TJ -0 0 1 rg 0 0 1 RG -/F30 9.9626 Tf 273.115 0 Td [(psb)]TJ +/F16 11.9552 Tf 227.945 706.129 Td [(erraction)-298(|)-298(Set)-298(the)-298(t)32(yp)-32(e)-297(of)-298(action)-298(to)-298(b)-31(e)-298(tak)31(en)]TJ -46.605 -13.948 Td [(up)-31(on)-375(error)-375(condition)]TJ/F27 9.9626 Tf -29.258 -24.367 Td [(c)-138(a)-138(l)-139(l)]TJ/F8 9.9626 Tf 30.09 0 Td [(p)-158(s)-159(b)]TJ ET q -1 0 0 1 465.045 510.11 cm -[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +1 0 0 1 202.505 668.014 cm +[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F30 9.9626 Tf 468.184 509.91 Td [(prec)]TJ +/F8 9.9626 Tf 207.072 667.814 Td [(s)-159(e)-158(t)]TJ ET q -1 0 0 1 489.733 510.11 cm -[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +1 0 0 1 224.638 668.014 cm +[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F30 9.9626 Tf 492.871 509.91 Td [(type)]TJ -0 g 0 G -0 g 0 G -/F27 9.9626 Tf -342.166 -34.833 Td [(desc)]TJ +/F8 9.9626 Tf 229.206 667.814 Td [(e)-158(r)-159(r)-158(a)-159(c)-158(t)-159(i)-158(o)-159(n)-264(\050)-265(e)-160(r)-160(r)]TJ ET q -1 0 0 1 172.619 475.276 cm -[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S +1 0 0 1 307.391 668.014 cm +[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F27 9.9626 Tf 176.057 475.077 Td [(a)]TJ +/F8 9.9626 Tf 311.973 667.814 Td [(a)-160(c)-160(t)-265(\051)]TJ 0 g 0 G -/F8 9.9626 Tf 10.55 0 Td [(the)-333(problem)-334(comm)28(unication)-333(descriptor.)-445(Scop)-27(e:)]TJ/F27 9.9626 Tf 208.247 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -219.243 -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 [(,)-333(target.)]TJ -43.034 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(comm)28(unication)-333(des)-1(crip)1(tor)-334(data)-333(structure)]TJ -0 0 1 rg 0 0 1 RG -/F30 9.9626 Tf 247.683 0 Td [(psb)]TJ +0 g 0 G +0 g 0 G +/F27 9.9626 Tf -161.268 -17.933 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 [(err)]TJ ET q -1 0 0 1 439.613 439.41 cm -[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +1 0 0 1 166.08 610.23 cm +[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F30 9.9626 Tf 442.751 439.211 Td [(desc)]TJ +/F27 9.9626 Tf 169.517 610.031 Td [(act)]TJ +0 g 0 G +/F8 9.9626 Tf 20.098 0 Td [(the)-333(t)27(yp)-27(e)-334(of)-333(action.)]TJ -14.004 -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.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.)-445(P)28(ossible)-333(v)55(alu)1(e)-1(s:)]TJ/F30 9.9626 Tf 180.269 0 Td [(psb_act_ret)]TJ/F8 9.9626 Tf 57.534 0 Td [(,)]TJ/F30 9.9626 Tf 6.088 0 Td [(psb_act_abort)]TJ/F8 9.9626 Tf 67.995 0 Td [(.)]TJ +0 g 0 G + -172.409 -471.772 Td [(132)]TJ +0 g 0 G ET -q -1 0 0 1 464.3 439.41 cm -[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S -Q + +endstream +endobj +1804 0 obj +<< +/Length 537 +>> +stream +0 g 0 G +0 g 0 G BT -/F30 9.9626 Tf 467.438 439.211 Td [(type)]TJ +/F16 14.3462 Tf 99.895 706.129 Td [(9)-1125(Utilities)]TJ/F8 9.9626 Tf 0 -21.821 Td [(W)83(e)-412(ha)27(v)28(e)-412(s)-1(ome)-412(utilities)-413(a)28(v)55(ailab)1(le)-413(for)-413(input)-412(and)-413(output)-412(of)-413(sparse)-413(matrices;)-452(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.844 0 Td [(psb_util_mod)]TJ/F8 9.9626 Tf 62.764 0 Td [(.)]TJ 0 g 0 G -/F8 9.9626 Tf 20.922 0 Td [(.)]TJ + -140.224 -581.915 Td [(133)]TJ 0 g 0 G -/F27 9.9626 Tf -337.655 -22.879 Td [(amold)]TJ +ET + +endstream +endobj +1810 0 obj +<< +/Length 4784 +>> +stream 0 g 0 G -/F8 9.9626 Tf 35.374 0 Td [(The)-333(desired)-334(dynamic)-333(t)28(yp)-28(e)-333(for)-334(the)-333(in)28(ternal)-333(matrix)-334(storage.)]TJ -10.467 -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 [(optional)]TJ/F8 9.9626 Tf 40.577 0 Td [(.)]TJ -70.188 -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(ob)-55(ject)-334(of)-333(a)-333(class)-334(deriv)28(ed)-333(from)]TJ/F30 9.9626 Tf 203.348 0 Td [(psb)]TJ +0 g 0 G +BT +/F16 11.9552 Tf 150.705 706.129 Td [(9.1)-1588(h)32(b)]TJ ET q -1 0 0 1 395.279 368.711 cm -[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +1 0 0 1 202.248 706.328 cm +[]0 d 0 J 0.398 w 0 0 m 4.035 0 l S Q BT -/F30 9.9626 Tf 398.417 368.512 Td [(T)]TJ +/F16 11.9552 Tf 206.283 706.129 Td [(read)-463(|)-462(Read)-463(a)-462(sparse)-463(matrix)-463(from)-462(a)-463(\014le)-463(in)-462(the)]TJ -24.943 -13.948 Td [(Harw)31(ell{Bo)-31(eing)-375(format)]TJ/F27 9.9626 Tf -29.258 -24.367 Td [(c)-138(a)-138(l)-139(l)]TJ/F8 9.9626 Tf 29.554 0 Td [(h)-105(b)]TJ ET q -1 0 0 1 404.275 368.711 cm -[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +1 0 0 1 195.388 668.014 cm +[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F30 9.9626 Tf 407.413 368.512 Td [(base)]TJ +/F8 9.9626 Tf 199.42 667.814 Td [(r)-105(e)-104(a)-105(d)-210(\050)-139(a)-228(,)-910(i)-150(r)-150(e)-149(t)-460(,)-896(i)-135(u)-135(n)-135(i)-135(t)-431(,)-877(f)-116(i)-116(l)-116(e)-116(n)-117(a)-116(m)-116(e)-393(,)-776(b)-191(,)-902(m)-142(t)-141(i)-141(t)-141(l)-142(e)-246(\051)]TJ +0 g 0 G +0 g 0 G +0 g 0 G +/F27 9.9626 Tf -48.715 -17.933 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 [(\014lename)]TJ +0 g 0 G +/F8 9.9626 Tf 46.513 0 Td [(The)-333(name)-334(of)-333(the)-333(\014le)-334(to)-333(b)-28(e)-333(read.)]TJ -21.606 -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 [(Sp)-28(eci\014ed)-435(as:)-648(a)-435(c)28(haracte)-1(r)-435(v)56(ariable)-435(con)28(taining)-435(a)-436(v)56(alid)-435(\014le)-435(name,)-461(or)]TJ/F30 9.9626 Tf 297.915 0 Td [(-)]TJ/F8 9.9626 Tf 5.23 0 Td [(,)-461(in)]TJ -303.145 -11.956 Td [(whic)28(h)-302(case)-303(the)-302(default)-302(input)-302(unit)-302(5)-303(\050i.e.)-434(standard)-302(input)-302(in)-302(Unix)-302(jargon\051)-302(is)]TJ 0 -11.955 Td [(used.)-444(Default:)]TJ/F30 9.9626 Tf 66.057 0 Td [(-)]TJ/F8 9.9626 Tf 5.231 0 Td [(.)]TJ +0 g 0 G +/F27 9.9626 Tf -96.195 -19.925 Td [(iunit)]TJ +0 g 0 G +/F8 9.9626 Tf 28.532 0 Td [(The)-333(F)83(ortran)-333(\014le)-334(u)1(nit)-334(n)28(um)28(b)-28(er.)]TJ -3.625 -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 [(Sp)-28(eci\014ed)-333(as:)-444(an)-334(in)28(teger)-333(v)55(alue.)-444(Only)-333(me)-1(an)1(ingful)-334(if)-333(\014lename)-333(is)-334(not)]TJ/F30 9.9626 Tf 286.288 0 Td [(-)]TJ/F8 9.9626 Tf 5.23 0 Td [(.)]TJ +0 g 0 G +/F27 9.9626 Tf -316.425 -21.918 Td [(On)-383(Return)]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)-333(read)-333(from)-334(\014le.)]TJ 14.356 -11.956 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.183 0 Td [(required)]TJ/F8 9.9626 Tf 41.898 0 Td [(.)]TJ -67.081 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-444(a)-334(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 428.962 368.711 cm +1 0 0 1 362.845 452.82 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 432.101 368.512 Td [(sparse)]TJ +/F30 9.9626 Tf 365.983 452.621 Td [(Tspmat)]TJ ET q -1 0 0 1 464.11 368.711 cm +1 0 0 1 397.993 452.82 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 467.248 368.512 Td [(mat)]TJ/F8 9.9626 Tf 15.691 0 Td [(.)]TJ +/F30 9.9626 Tf 401.131 452.621 Td [(type)]TJ 0 g 0 G -/F27 9.9626 Tf -332.234 -22.879 Td [(vmold)]TJ +/F8 9.9626 Tf 20.921 0 Td [(.)]TJ 0 g 0 G -/F8 9.9626 Tf 35.851 0 Td [(The)-333(desired)-334(dynamic)-333(t)28(yp)-28(e)-333(for)-334(the)-333(in)28(ternal)-333(v)27(ector)-333(storage.)]TJ -10.945 -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 [(optional)]TJ/F8 9.9626 Tf 40.576 0 Td [(.)]TJ -70.188 -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.956 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(ob)-55(ject)-334(of)-333(a)-333(class)-334(deriv)28(ed)-333(from)]TJ/F30 9.9626 Tf 203.349 0 Td [(psb)]TJ +/F27 9.9626 Tf -271.347 -19.925 Td [(b)]TJ +0 g 0 G +/F8 9.9626 Tf 11.346 0 Td [(Rigth)-333(hand)-334(sid)1(e)-1(\050s\051.)]TJ 13.56 -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 [(An)-282(arr)1(a)27(y)-281(of)-282(t)28(yp)-28(e)-281(real)-282(or)-281(complex,)-292(rank)-282(2)-281(and)-282(ha)28(ving)-281(the)-282(ALLOCA)83(T)84(ABLE)]TJ 0 -11.956 Td [(attribute;)-409(will)-384(b)-28(e)-384(allo)-28(cated)-384(and)-383(\014lled)-384(in)-384(if)-384(the)-384(input)-384(\014le)-384(con)28(tains)-384(a)-384(righ)28(t)]TJ 0 -11.955 Td [(hand)-333(side,)-334(otherwise)-333(will)-333(b)-28(e)-333(left)-334(in)-333(the)-333(UNALLOCA)83(TED)-333(state.)]TJ +0 g 0 G +/F27 9.9626 Tf -24.906 -19.925 Td [(m)32(title)]TJ +0 g 0 G +/F8 9.9626 Tf 34.737 0 Td [(Matrix)-333(title.)]TJ -9.831 -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 [(A)-405(c)28(harac)28(h)28(ter)-405(v)56(ariable)-405(of)-405(length)-404(72)-405(holding)-405(a)-404(cop)27(y)-404(of)-405(the)-405(matrix)-404(title)-405(as)]TJ 0 -11.956 Td [(sp)-28(eci\014ed)-333(b)28(y)-334(the)-333(Harw)28(ell-Bo)-28(eing)-333(format)-334(and)-333(con)28(tained)-333(in)-334(the)-333(input)-333(\014le.)]TJ +0 g 0 G +/F27 9.9626 Tf -24.906 -19.925 Td [(iret)]TJ +0 g 0 G +/F8 9.9626 Tf 22.589 0 Td [(Error)-333(co)-28(de.)]TJ 2.317 -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 [(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 [(134)]TJ +0 g 0 G +ET + +endstream +endobj +1817 0 obj +<< +/Length 5264 +>> +stream +0 g 0 G +0 g 0 G +BT +/F16 11.9552 Tf 99.895 706.129 Td [(9.2)-1125(h)31(b)]TJ ET q -1 0 0 1 395.279 298.012 cm -[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +1 0 0 1 145.908 706.328 cm +[]0 d 0 J 0.398 w 0 0 m 4.035 0 l S Q BT -/F30 9.9626 Tf 398.417 297.812 Td [(T)]TJ +/F16 11.9552 Tf 149.943 706.129 Td [(write)-573(|)-574(W)94(rite)-574(a)-573(sparse)-574(matrix)-573(to)-574(a)-573(\014le)-574(in)-573(the)]TJ -19.412 -13.948 Td [(Harw)31(ell{Bo)-31(eing)-375(format)]TJ/F27 9.9626 Tf -29.259 -24.367 Td [(c)-138(a)-138(l)-139(l)]TJ/F8 9.9626 Tf 29.734 0 Td [(h)-123(b)]TJ ET q -1 0 0 1 404.275 298.012 cm -[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +1 0 0 1 145.117 668.014 cm +[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F30 9.9626 Tf 407.413 297.812 Td [(base)]TJ +/F8 9.9626 Tf 149.328 667.814 Td [(w)-123(r)-122(i)-123(t)-123(e)-228(\050)-139(a)-228(,)-910(i)-150(r)-149(e)-150(t)-460(,)-896(i)-135(u)-135(n)-135(i)-135(t)-431(,)-877(f)-116(i)-116(l)-116(e)-116(n)-116(a)-116(m)-117(e)-393(,)-821(k)-60(e)-60(y)-281(,)-853(r)-92(h)-91(s)-345(,)-902(m)-141(t)-142(i)-141(t)-141(l)-141(e)-247(\051)]TJ +0 g 0 G +0 g 0 G +0 g 0 G +/F27 9.9626 Tf -49.433 -17.933 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)-333(to)-333(b)-28(e)-333(written.)]TJ 14.356 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.183 0 Td [(required)]TJ/F8 9.9626 Tf 41.899 0 Td [(.)]TJ -67.082 -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 428.962 298.012 cm +1 0 0 1 312.036 586.32 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 432.101 297.812 Td [(vect)]TJ +/F30 9.9626 Tf 315.174 586.121 Td [(Tspmat)]TJ ET q -1 0 0 1 453.65 298.012 cm +1 0 0 1 347.183 586.32 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 456.788 297.812 Td [(type)]TJ/F8 9.9626 Tf 20.921 0 Td [(.)]TJ +/F30 9.9626 Tf 350.322 586.121 Td [(type)]TJ +0 g 0 G +/F8 9.9626 Tf 20.921 0 Td [(.)]TJ +0 g 0 G +/F27 9.9626 Tf -271.348 -19.926 Td [(b)]TJ +0 g 0 G +/F8 9.9626 Tf 11.347 0 Td [(Rigth)-333(hand)-333(s)-1(i)1(de.)]TJ 13.56 -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)-282(ar)1(ra)27(y)-281(of)-282(t)28(yp)-28(e)-281(real)-282(or)-281(complex,)-292(rank)-282(1)-281(and)-282(ha)28(ving)-281(the)-282(ALLOCA)83(T)84(ABLE)]TJ 0 -11.955 Td [(attribute;)-409(will)-384(b)-28(e)-384(allo)-28(cated)-384(an)1(d)-384(\014lled)-384(in)-384(if)-384(the)-384(input)-384(\014le)-384(con)28(tains)-384(a)-384(righ)28(t)]TJ 0 -11.955 Td [(hand)-333(side.)]TJ +0 g 0 G +/F27 9.9626 Tf -24.907 -19.926 Td [(\014lename)]TJ +0 g 0 G +/F8 9.9626 Tf 46.513 0 Td [(The)-333(name)-334(of)-333(the)-333(\014le)-334(to)-333(b)-28(e)-333(written)-333(to.)]TJ -21.606 -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 [(Sp)-28(eci\014ed)-435(as:)-648(a)-435(c)27(h)1(arac)-1(ter)-435(v)56(ariable)-435(con)28(taining)-436(a)-435(v)56(alid)-435(\014le)-435(name,)-461(or)]TJ/F30 9.9626 Tf 297.915 0 Td [(-)]TJ/F8 9.9626 Tf 5.231 0 Td [(,)-461(in)]TJ -303.146 -11.955 Td [(whic)28(h)-281(case)-280(the)-280(default)-281(output)-280(unit)-280(6)-281(\050i.e.)-426(s)-1(t)1(andard)-281(output)-280(in)-280(Unix)-281(jargon\051)]TJ 0 -11.955 Td [(is)-333(used.)-445(Default:)]TJ/F30 9.9626 Tf 76.076 0 Td [(-)]TJ/F8 9.9626 Tf 5.23 0 Td [(.)]TJ +0 g 0 G +/F27 9.9626 Tf -106.213 -19.926 Td [(iunit)]TJ +0 g 0 G +/F8 9.9626 Tf 28.532 0 Td [(The)-333(F)83(ortran)-333(\014le)-334(un)1(it)-334(n)28(um)28(b)-28(er.)]TJ -3.625 -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 [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(in)28(teger)-333(v)55(alue.)-444(Only)-333(me)-1(ani)1(ngful)-334(if)-333(\014lename)-333(is)-334(not)]TJ/F30 9.9626 Tf 286.288 0 Td [(-)]TJ/F8 9.9626 Tf 5.23 0 Td [(.)]TJ +0 g 0 G +/F27 9.9626 Tf -316.425 -19.925 Td [(k)32(ey)]TJ +0 g 0 G +/F8 9.9626 Tf 22.008 0 Td [(Matrix)-333(k)28(ey)83(.)]TJ 2.899 -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.956 Td [(A)-385(c)28(harac)28(h)28(ter)-385(v)56(ariable)-385(of)-385(length)-384(8)-385(holding)-385(the)-384(m)-1(atri)1(x)-385(k)28(ey)-385(as)-385(sp)-28(eci\014ed)-384(b)27(y)]TJ 0 -11.955 Td [(the)-333(Harw)27(ell-Bo)-27(eing)-334(format)-333(and)-333(to)-334(b)-27(e)-334(written)-333(to)-333(\014le.)]TJ +0 g 0 G +/F27 9.9626 Tf -24.907 -19.925 Td [(m)32(title)]TJ +0 g 0 G +/F8 9.9626 Tf 34.738 0 Td [(Matrix)-333(title.)]TJ -9.831 -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 [(A)-318(c)28(harac)28(h)28(ter)-318(v)56(ariable)-318(of)-317(length)-318(72)-317(holding)-318(the)-317(m)-1(atr)1(ix)-318(title)-318(as)-317(sp)-28(eci\014ed)-318(b)28(y)]TJ 0 -11.956 Td [(the)-333(Harw)27(ell-Bo)-27(eing)-334(format)-333(and)-333(to)-334(b)-27(e)-334(written)-333(to)-333(\014le.)]TJ +0 g 0 G +/F27 9.9626 Tf -24.907 -21.917 Td [(On)-383(Return)]TJ +0 g 0 G +0 g 0 G + 0 -19.926 Td [(iret)]TJ +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 -139.02 Td [(135)]TJ 0 g 0 G -/F27 9.9626 Tf -327.004 -22.878 Td [(imold)]TJ +ET + +endstream +endobj +1824 0 obj +<< +/Length 3666 +>> +stream 0 g 0 G -/F8 9.9626 Tf 32.987 0 Td [(The)-333(desired)-334(dynamic)-333(t)28(yp)-28(e)-333(for)-334(the)-333(in)28(ternal)-333(in)27(teger)-333(v)28(ector)-334(storage.)]TJ -8.081 -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.612 0 Td [(optional)]TJ/F8 9.9626 Tf 40.576 0 Td [(.)]TJ -70.188 -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)-222(as:)-389(an)-222(ob)-56(ject)-222(of)-222(a)-222(class)-223(deriv)28(ed)-222(from)-222(\050in)28(teger\051)]TJ/F30 9.9626 Tf 233.542 0 Td [(psb)]TJ +0 g 0 G +BT +/F16 11.9552 Tf 150.705 706.129 Td [(9.3)-1125(mm)]TJ ET q -1 0 0 1 425.471 227.312 cm -[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +1 0 0 1 204.563 706.328 cm +[]0 d 0 J 0.398 w 0 0 m 4.035 0 l S Q BT -/F30 9.9626 Tf 428.61 227.113 Td [(T)]TJ +/F16 11.9552 Tf 208.598 706.129 Td [(mat)]TJ ET q -1 0 0 1 434.468 227.312 cm -[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +1 0 0 1 232.381 706.328 cm +[]0 d 0 J 0.398 w 0 0 m 4.035 0 l S Q BT -/F30 9.9626 Tf 437.606 227.113 Td [(base)]TJ +/F16 11.9552 Tf 236.416 706.129 Td [(read)-409(|)-409(Read)-409(a)-409(sparse)-409(matrix)-409(from)-409(a)-410(\014le)-409(in)]TJ -55.076 -13.948 Td [(the)-375(MatrixMark)31(et)-375(format)]TJ/F27 9.9626 Tf -29.258 -24.367 Td [(c)-138(a)-138(l)-139(l)]TJ/F8 9.9626 Tf 29.009 0 Td [(m)-50(m)]TJ ET q -1 0 0 1 459.155 227.312 cm -[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +1 0 0 1 199.288 668.014 cm +[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F30 9.9626 Tf 462.293 227.113 Td [(vect)]TJ +/F8 9.9626 Tf 202.775 667.814 Td [(m)-50(a)-50(t)]TJ ET q -1 0 0 1 483.842 227.312 cm -[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +1 0 0 1 222.024 668.014 cm +[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F30 9.9626 Tf 486.98 227.113 Td [(type)]TJ/F8 9.9626 Tf 20.921 0 Td [(.)]TJ +/F8 9.9626 Tf 225.51 667.814 Td [(r)-50(e)-50(a)-50(d)-155(\050)-139(a)-228(,)-911(i)-149(r)-150(e)-149(t)-461(,)-896(i)-134(u)-135(n)-135(i)-135(t)-431(,)-890(f)-129(i)-129(l)-129(e)-129(n)-129(a)-129(m)-129(e)-235(\051)]TJ 0 g 0 G -/F27 9.9626 Tf -357.196 -24.133 Td [(On)-383(Return)]TJ 0 g 0 G 0 g 0 G - 0 -22.879 Td [(prec)]TJ +/F27 9.9626 Tf -74.805 -17.933 Td [(T)32(yp)-32(e:)]TJ 0 g 0 G -/F8 9.9626 Tf 26.408 0 Td [(the)-333(preconditioner.)]TJ -1.502 -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 [(inout)]TJ/F8 9.9626 Tf 26.096 0 Td [(.)]TJ -59.582 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(precondtioner)-333(data)-333(structure)]TJ +/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 [(\014lename)]TJ +0 g 0 G +/F8 9.9626 Tf 46.513 0 Td [(The)-333(name)-334(of)-333(the)-333(\014le)-334(to)-333(b)-28(e)-333(read.)]TJ -21.607 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.184 0 Td [(optional)]TJ/F8 9.9626 Tf 40.577 0 Td [(.)]TJ -65.76 -11.955 Td [(Sp)-28(eci\014ed)-435(as:)-648(a)-435(c)28(haracte)-1(r)-435(v)56(ariable)-435(con)28(taining)-435(a)-436(v)56(alid)-435(\014le)-435(name,)-461(or)]TJ/F30 9.9626 Tf 297.915 0 Td [(-)]TJ/F8 9.9626 Tf 5.23 0 Td [(,)-461(in)]TJ -303.145 -11.956 Td [(whic)28(h)-302(case)-303(the)-302(default)-302(input)-302(unit)-302(5)-303(\050i.e.)-434(standard)-302(input)-302(in)-302(Unix)-302(jargon\051)-302(is)]TJ 0 -11.955 Td [(used.)-444(Default:)]TJ/F30 9.9626 Tf 66.057 0 Td [(-)]TJ/F8 9.9626 Tf 5.231 0 Td [(.)]TJ +0 g 0 G +/F27 9.9626 Tf -96.195 -19.925 Td [(iunit)]TJ +0 g 0 G +/F8 9.9626 Tf 28.532 0 Td [(The)-333(F)83(ortran)-333(\014le)-334(u)1(nit)-334(n)28(um)28(b)-28(er.)]TJ -3.625 -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 [(Sp)-28(eci\014ed)-333(as:)-444(an)-334(in)28(teger)-333(v)55(alue.)-444(Only)-333(me)-1(an)1(ingful)-334(if)-333(\014lename)-333(is)-334(not)]TJ/F30 9.9626 Tf 286.288 0 Td [(-)]TJ/F8 9.9626 Tf 5.23 0 Td [(.)]TJ +0 g 0 G +/F27 9.9626 Tf -316.425 -21.918 Td [(On)-383(Return)]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)-333(read)-333(from)-334(\014le.)]TJ 14.356 -11.956 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.183 0 Td [(required)]TJ/F8 9.9626 Tf 41.898 0 Td [(.)]TJ -67.081 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-444(a)-334(structured)-333(data)-333(of)-334(t)28(yp)-28(e)]TJ 0 0 1 rg 0 0 1 RG -/F30 9.9626 Tf 194.77 0 Td [(psb)]TJ +/F30 9.9626 Tf 170.915 0 Td [(psb)]TJ ET q -1 0 0 1 386.7 132.48 cm +1 0 0 1 362.845 452.82 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 389.838 132.281 Td [(prec)]TJ +/F30 9.9626 Tf 365.983 452.621 Td [(Tspmat)]TJ ET q -1 0 0 1 411.387 132.48 cm +1 0 0 1 397.993 452.82 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 414.525 132.281 Td [(type)]TJ -0 g 0 G -0 g 0 G -/F8 9.9626 Tf -99.437 -41.843 Td [(136)]TJ -0 g 0 G -ET - -endstream -endobj -1780 0 obj -<< -/Length 1094 ->> -stream -0 g 0 G +/F30 9.9626 Tf 401.131 452.621 Td [(type)]TJ 0 g 0 G +/F8 9.9626 Tf 20.921 0 Td [(.)]TJ 0 g 0 G -BT -/F27 9.9626 Tf 99.895 706.129 Td [(info)]TJ +/F27 9.9626 Tf -271.347 -19.925 Td [(iret)]TJ 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 -24.907 -21.918 Td [(The)]TJ/F30 9.9626 Tf 21.638 0 Td [(amold)]TJ/F8 9.9626 Tf 26.152 0 Td [(,)]TJ/F30 9.9626 Tf 7.536 0 Td [(vmold)]TJ/F8 9.9626 Tf 30.631 0 Td [(and)]TJ/F30 9.9626 Tf 20.531 0 Td [(imold)]TJ/F8 9.9626 Tf 30.631 0 Td [(argumen)28(ts)-450(ma)28(y)-450(b)-27(e)-450(emplo)28(y)27(ed)-449(to)-450(in)28(terface)-450(with)]TJ -137.119 -11.955 Td [(sp)-28(ecial)-333(devices,)-334(suc)28(h)-333(as)-334(GPUs)-333(and)-333(other)-333(ac)-1(celerators.)]TJ +/F8 9.9626 Tf 22.589 0 Td [(Error)-333(co)-28(de.)]TJ 2.317 -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 [(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 - 164.384 -533.997 Td [(137)]TJ + 139.477 -318.348 Td [(136)]TJ 0 g 0 G ET endstream endobj -1788 0 obj +1830 0 obj << -/Length 5851 +/Length 3717 >> stream 0 g 0 G 0 g 0 G BT -/F16 11.9552 Tf 150.705 706.129 Td [(apply)-375(|)-375(Preconditioner)-375(application)-375(routine)]TJ -0 g 0 G -0 g 0 G -/F30 9.9626 Tf 0 -18.389 Td [(call)-525(prec%apply\050x,y,desc_a,info,trans,work\051)]TJ 0 -11.956 Td [(call)-525(prec%apply\050x,desc_a,info,trans\051)]TJ -0 g 0 G -/F27 9.9626 Tf 0 -21.917 Td [(T)32(yp)-32(e:)]TJ -0 g 0 G -/F8 9.9626 Tf 33.797 0 Td [(Sync)28(hronous.)]TJ -0 g 0 G -/F27 9.9626 Tf -33.797 -19.926 Td [(On)-383(En)32(try)]TJ -0 g 0 G -0 g 0 G - 0 -19.925 Td [(prec)]TJ -0 g 0 G -/F8 9.9626 Tf 26.408 0 Td [(the)-333(preconditioner.)-445(Scop)-27(e:)]TJ/F27 9.9626 Tf 119.33 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -120.832 -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.956 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(preconditioner)-333(data)-333(structure)]TJ -0 0 1 rg 0 0 1 RG -/F30 9.9626 Tf 197.538 0 Td [(psb)]TJ +/F16 11.9552 Tf 99.895 706.129 Td [(9.4)-1125(mm)]TJ ET q -1 0 0 1 389.467 578.35 cm -[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +1 0 0 1 153.753 706.328 cm +[]0 d 0 J 0.398 w 0 0 m 4.035 0 l S Q BT -/F30 9.9626 Tf 392.606 578.15 Td [(prec)]TJ +/F16 11.9552 Tf 157.788 706.129 Td [(arra)31(y)]TJ ET q -1 0 0 1 414.155 578.35 cm -[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +1 0 0 1 189.383 706.328 cm +[]0 d 0 J 0.398 w 0 0 m 4.035 0 l S Q BT -/F30 9.9626 Tf 417.293 578.15 Td [(type)]TJ -0 g 0 G -/F8 9.9626 Tf 20.921 0 Td [(.)]TJ -0 g 0 G -/F27 9.9626 Tf -287.509 -19.925 Td [(x)]TJ -0 g 0 G -/F8 9.9626 Tf 11.028 0 Td [(the)-333(source)-334(v)28(ector.)-444(Scop)-28(e:)]TJ/F27 9.9626 Tf 113.851 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -99.972 -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 [(inout)]TJ/F8 9.9626 Tf 26.097 0 Td [(.)]TJ -59.582 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-444(a)-334(rank)-333(one)-333(arra)27(y)-333(or)-333(an)-334(ob)-55(ject)-333(of)-334(t)28(yp)-28(e)]TJ -0 0 1 rg 0 0 1 RG -/F30 9.9626 Tf 223.495 0 Td [(psb)]TJ +/F16 11.9552 Tf 193.417 706.129 Td [(read)-450(|)-451(Read)-450(a)-450(dense)-450(arra)31(y)-450(from)-451(a)-450(\014le)-450(in)]TJ -62.887 -13.948 Td [(the)-375(MatrixMark)31(et)-375(format)]TJ/F27 9.9626 Tf -29.258 -24.367 Td [(c)-138(a)-138(l)-139(l)]TJ/F8 9.9626 Tf 29.373 0 Td [(m)-87(m)]TJ ET q -1 0 0 1 415.426 522.559 cm -[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +1 0 0 1 149.57 668.014 cm +[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F30 9.9626 Tf 418.564 522.36 Td [(T)]TJ +/F8 9.9626 Tf 153.421 667.814 Td [(a)-86(r)-87(r)-86(a)-87(y)]TJ ET q -1 0 0 1 424.422 522.559 cm -[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +1 0 0 1 181.351 668.014 cm +[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F30 9.9626 Tf 427.56 522.36 Td [(vect)]TJ +/F8 9.9626 Tf 185.201 667.814 Td [(r)-86(e)-87(a)-86(d)-192(\050)-121(b)-191(,)-910(i)-150(r)-149(e)-150(t)-460(,)-896(i)-135(u)-135(n)-135(i)-135(t)-431(,)-890(f)-129(i)-129(l)-129(e)-129(n)-129(a)-129(m)-129(e)-234(\051)]TJ +0 g 0 G +0 g 0 G +0 g 0 G +/F27 9.9626 Tf -85.306 -17.933 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 [(\014lename)]TJ +0 g 0 G +/F8 9.9626 Tf 46.513 0 Td [(The)-333(name)-334(of)-333(the)-333(\014le)-334(to)-333(b)-28(e)-333(read.)]TJ -21.606 -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 [(Sp)-28(eci\014ed)-435(as:)-648(a)-435(c)27(h)1(arac)-1(ter)-435(v)56(ariable)-435(con)28(taining)-436(a)-435(v)56(alid)-435(\014le)-435(name,)-461(or)]TJ/F30 9.9626 Tf 297.915 0 Td [(-)]TJ/F8 9.9626 Tf 5.231 0 Td [(,)-461(in)]TJ -303.146 -11.956 Td [(whic)28(h)-302(cas)-1(e)-302(the)-302(default)-302(input)-302(unit)-302(5)-303(\050i.e.)-434(standard)-302(input)-302(in)-302(Unix)-302(jargon\051)-302(is)]TJ 0 -11.955 Td [(used.)-444(Default:)]TJ/F30 9.9626 Tf 66.058 0 Td [(-)]TJ/F8 9.9626 Tf 5.23 0 Td [(.)]TJ +0 g 0 G +/F27 9.9626 Tf -96.195 -19.925 Td [(iunit)]TJ +0 g 0 G +/F8 9.9626 Tf 28.532 0 Td [(The)-333(F)83(ortran)-333(\014le)-334(un)1(it)-334(n)28(um)28(b)-28(er.)]TJ -3.625 -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 [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(in)28(teger)-333(v)55(alue.)-444(Only)-333(me)-1(ani)1(ngful)-334(if)-333(\014lename)-333(is)-334(not)]TJ/F30 9.9626 Tf 286.288 0 Td [(-)]TJ/F8 9.9626 Tf 5.23 0 Td [(.)]TJ +0 g 0 G +/F27 9.9626 Tf -316.425 -21.918 Td [(On)-383(Return)]TJ +0 g 0 G +0 g 0 G + 0 -19.925 Td [(b)]TJ +0 g 0 G +/F8 9.9626 Tf 11.347 0 Td [(Rigth)-333(hand)-333(s)-1(i)1(de\050s)-1(\051.)]TJ 13.56 -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)-310(arra)28(y)-310(of)-310(t)28(yp)-28(e)-310(real)-310(or)-310(complex,)-315(rank)-309(1)-310(or)-310(2)-310(and)-310(ha)28(ving)-310(the)-310(ALLOCA)83(T-)]TJ 0 -11.955 Td [(ABLE)-334(attribute;)-334(will)-333(b)-28(e)-334(allo)-28(cated)-333(and)-334(\014lled)-334(in)-333(if)-334(the)-334(input)-333(\014le)-334(con)28(tains)-334(a)]TJ 0 -11.955 Td [(righ)28(t)-333(hand)-334(side,)-333(otherwise)-333(will)-334(b)-27(e)-334(left)-333(in)-333(the)-334(UNALLOCA)84(TED)-334(state.)]TJ +0 g 0 G +/F27 9.9626 Tf -24.907 -19.925 Td [(iret)]TJ +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 -294.437 Td [(137)]TJ +0 g 0 G +ET + +endstream +endobj +1837 0 obj +<< +/Length 4197 +>> +stream +0 g 0 G +0 g 0 G +BT +/F16 11.9552 Tf 150.705 706.129 Td [(9.5)-1125(mm)]TJ ET q -1 0 0 1 449.109 522.559 cm -[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +1 0 0 1 204.563 706.328 cm +[]0 d 0 J 0.398 w 0 0 m 4.035 0 l S Q BT -/F30 9.9626 Tf 452.247 522.36 Td [(type)]TJ -0 g 0 G -/F8 9.9626 Tf 20.922 0 Td [(.)]TJ -0 g 0 G -/F27 9.9626 Tf -322.464 -19.926 Td [(desc)]TJ +/F16 11.9552 Tf 208.598 706.129 Td [(mat)]TJ ET q -1 0 0 1 172.619 502.634 cm -[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S +1 0 0 1 232.381 706.328 cm +[]0 d 0 J 0.398 w 0 0 m 4.035 0 l S Q BT -/F27 9.9626 Tf 176.057 502.434 Td [(a)]TJ -0 g 0 G -/F8 9.9626 Tf 10.55 0 Td [(the)-333(problem)-334(comm)28(unication)-333(descriptor.)-445(Scop)-27(e:)]TJ/F27 9.9626 Tf 208.247 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -219.243 -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(comm)28(unication)-333(data)-334(structure)]TJ -0 0 1 rg 0 0 1 RG -/F30 9.9626 Tf 201.08 0 Td [(psb)]TJ +/F16 11.9552 Tf 236.416 706.129 Td [(write)-481(|)-481(W)94(rite)-481(a)-481(sparse)-480(matrix)-481(to)-481(a)-481(\014le)-481(in)]TJ -55.076 -13.948 Td [(the)-375(MatrixMark)31(et)-375(format)]TJ/F27 9.9626 Tf -29.258 -24.367 Td [(c)-138(a)-138(l)-139(l)]TJ/F8 9.9626 Tf 29.175 0 Td [(m)-67(m)]TJ ET q -1 0 0 1 393.01 466.768 cm -[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +1 0 0 1 199.787 668.014 cm +[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F30 9.9626 Tf 396.148 466.569 Td [(desc)]TJ +/F8 9.9626 Tf 203.439 667.814 Td [(m)-67(a)-66(t)]TJ ET q -1 0 0 1 417.697 466.768 cm -[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +1 0 0 1 223.186 668.014 cm +[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F30 9.9626 Tf 420.835 466.569 Td [(type)]TJ -0 g 0 G -/F8 9.9626 Tf 20.922 0 Td [(.)]TJ +/F8 9.9626 Tf 226.839 667.814 Td [(w)-67(r)-66(i)-67(t)-66(e)-173(\050)-139(a)-227(,)-885(m)-124(t)-123(i)-124(t)-124(l)-123(e)-409(,)-910(i)-150(r)-149(e)-150(t)-460(,)-896(i)-135(u)-135(n)-135(i)-135(t)-431(,)-890(f)-129(i)-129(l)-129(e)-129(n)-129(a)-129(m)-129(e)-234(\051)]TJ 0 g 0 G -/F27 9.9626 Tf -291.052 -19.925 Td [(trans)]TJ 0 g 0 G -/F8 9.9626 Tf 30.609 0 Td [(Scop)-28(e:)]TJ -5.702 -11.956 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.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(a)-334(c)28(haracter.)]TJ 0 g 0 G -/F27 9.9626 Tf -24.907 -19.925 Td [(w)32(ork)]TJ +/F27 9.9626 Tf -76.134 -17.933 Td [(T)32(yp)-32(e:)]TJ 0 g 0 G -/F8 9.9626 Tf 29.431 0 Td [(an)-333(optional)-334(w)28(ork)-333(space)-333(Scop)-28(e:)]TJ/F27 9.9626 Tf 135.963 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -140.487 -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.956 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)-333(as:)-444(a)-334(double)-333(precision)-333(arra)27(y)84(.)]TJ +/F8 9.9626 Tf 33.797 0 Td [(Async)28(hronous.)]TJ 0 g 0 G -/F27 9.9626 Tf -24.907 -21.918 Td [(On)-383(Return)]TJ +/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 [(y)]TJ + 0 -19.925 Td [(a)]TJ 0 g 0 G -/F8 9.9626 Tf 11.028 0 Td [(the)-333(destination)-334(v)28(ector.)-444(Scop)-28(e:)]TJ/F27 9.9626 Tf 134.856 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -120.977 -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 [(inout)]TJ/F8 9.9626 Tf 26.097 0 Td [(.)]TJ -59.582 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-444(a)-334(rank)-333(one)-333(arra)27(y)-333(or)-333(an)-334(ob)-55(ject)-333(of)-334(t)28(yp)-28(e)]TJ +/F8 9.9626 Tf 10.551 0 Td [(the)-333(sparse)-334(matrix)-333(to)-333(b)-28(e)-333(written.)]TJ 14.356 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.183 0 Td [(required)]TJ/F8 9.9626 Tf 41.898 0 Td [(.)]TJ -67.081 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-444(a)-334(structured)-333(data)-333(of)-334(t)28(yp)-28(e)]TJ 0 0 1 rg 0 0 1 RG -/F30 9.9626 Tf 223.495 0 Td [(psb)]TJ -ET -q -1 0 0 1 415.426 277.478 cm -[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S -Q -BT -/F30 9.9626 Tf 418.564 277.279 Td [(T)]TJ +/F30 9.9626 Tf 170.914 0 Td [(psb)]TJ ET q -1 0 0 1 424.422 277.478 cm +1 0 0 1 362.845 586.32 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 427.56 277.279 Td [(vect)]TJ +/F30 9.9626 Tf 365.983 586.121 Td [(Tspmat)]TJ ET q -1 0 0 1 449.109 277.478 cm +1 0 0 1 397.993 586.32 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 452.247 277.279 Td [(type)]TJ +/F30 9.9626 Tf 401.131 586.121 Td [(type)]TJ 0 g 0 G -/F8 9.9626 Tf 20.922 0 Td [(.)]TJ +/F8 9.9626 Tf 20.921 0 Td [(.)]TJ 0 g 0 G -/F27 9.9626 Tf -322.464 -19.926 Td [(info)]TJ +/F27 9.9626 Tf -271.347 -19.926 Td [(m)32(title)]TJ 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 +/F8 9.9626 Tf 34.737 0 Td [(Matrix)-333(title.)]TJ -9.831 -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 [(A)-299(c)28(harac)28(h)27(t)1(e)-1(r)-298(v)55(ariable)-299(hold)1(ing)-299(a)-299(descriptiv)28(e)-299(title)-299(for)-299(the)-299(matrix)-298(to)-299(b)-28(e)-299(writ-)]TJ 0 -11.955 Td [(ten)-333(to)-334(\014le.)]TJ 0 g 0 G - 139.477 -119.095 Td [(138)]TJ +/F27 9.9626 Tf -24.906 -19.925 Td [(\014lename)]TJ 0 g 0 G -ET - -endstream -endobj -1793 0 obj -<< -/Length 2947 ->> -stream +/F8 9.9626 Tf 46.513 0 Td [(The)-333(name)-334(of)-333(the)-333(\014le)-334(to)-333(b)-28(e)-333(written)-333(to.)]TJ -21.607 -11.956 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.184 0 Td [(optional)]TJ/F8 9.9626 Tf 40.577 0 Td [(.)]TJ -65.761 -11.955 Td [(Sp)-28(eci\014ed)-435(as:)-648(a)-435(c)27(haracter)-435(v)56(ariable)-435(con)27(tain)1(ing)-436(a)-435(v)56(alid)-435(\014le)-435(name)-1(,)-460(or)]TJ/F30 9.9626 Tf 297.916 0 Td [(-)]TJ/F8 9.9626 Tf 5.23 0 Td [(,)-461(in)]TJ -303.146 -11.955 Td [(whic)28(h)-281(case)-280(the)-281(d)1(e)-1(f)1(ault)-281(output)-280(unit)-280(6)-281(\050i.e.)-427(stand)1(ard)-281(output)-280(in)-280(Unix)-281(jargon\051)]TJ 0 -11.955 Td [(is)-333(used.)-445(Default:)]TJ/F30 9.9626 Tf 76.076 0 Td [(-)]TJ/F8 9.9626 Tf 5.231 0 Td [(.)]TJ 0 g 0 G +/F27 9.9626 Tf -106.213 -19.925 Td [(iunit)]TJ 0 g 0 G -BT -/F16 11.9552 Tf 99.895 706.129 Td [(descr)-375(|)-375(Prin)31(ts)-375(a)-375(description)-375(of)-375(curren)31(t)-375(preconditioner)]TJ +/F8 9.9626 Tf 28.532 0 Td [(The)-333(F)83(ortran)-333(\014le)-334(u)1(nit)-334(n)28(um)28(b)-28(er.)]TJ -3.626 -11.956 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.184 0 Td [(optional)]TJ/F8 9.9626 Tf 40.577 0 Td [(.)]TJ -65.761 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(in)28(teger)-333(v)55(alue.)-444(Only)-334(meaningf)1(ul)-334(if)-333(\014lename)-333(is)-334(not)]TJ/F30 9.9626 Tf 286.289 0 Td [(-)]TJ/F8 9.9626 Tf 5.23 0 Td [(.)]TJ 0 g 0 G +/F27 9.9626 Tf -316.425 -21.918 Td [(On)-383(Return)]TJ 0 g 0 G -/F30 9.9626 Tf 0 -18.389 Td [(call)-525(prec%descr\050\051)]TJ 0 -11.956 Td [(call)-525(prec%descr\050iout,)-525(root\051)]TJ 0 g 0 G -/F27 9.9626 Tf 0 -21.917 Td [(T)32(yp)-32(e:)]TJ + 0 -19.925 Td [(iret)]TJ 0 g 0 G -/F8 9.9626 Tf 33.797 0 Td [(Async)28(hronous.)]TJ +/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(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 -/F27 9.9626 Tf -33.797 -19.926 Td [(On)-383(En)32(try)]TJ + 139.476 -262.557 Td [(138)]TJ 0 g 0 G +ET + +endstream +endobj +1843 0 obj +<< +/Length 3393 +>> +stream 0 g 0 G - 0 -19.925 Td [(prec)]TJ 0 g 0 G -/F8 9.9626 Tf 26.408 0 Td [(the)-333(preconditioner.)-445(Scop)-27(e:)]TJ/F27 9.9626 Tf 119.331 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -120.832 -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 [(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(preconditioner)-333(data)-333(structure)]TJ -0 0 1 rg 0 0 1 RG -/F30 9.9626 Tf 197.537 0 Td [(psb)]TJ +BT +/F16 11.9552 Tf 99.895 706.129 Td [(9.6)-1125(mm)]TJ ET q -1 0 0 1 338.658 578.35 cm -[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +1 0 0 1 153.753 706.328 cm +[]0 d 0 J 0.398 w 0 0 m 4.035 0 l S Q BT -/F30 9.9626 Tf 341.796 578.15 Td [(prec)]TJ +/F16 11.9552 Tf 157.788 706.129 Td [(arra)31(y)]TJ ET q -1 0 0 1 363.345 578.35 cm -[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +1 0 0 1 189.383 706.328 cm +[]0 d 0 J 0.398 w 0 0 m 4.035 0 l S Q BT -/F30 9.9626 Tf 366.483 578.15 Td [(type)]TJ +/F16 11.9552 Tf 193.417 706.129 Td [(write)-377(|)-377(W)93(rite)-377(a)-377(dense)-377(arra)31(y)-377(from)-378(a)-377(\014le)-377(in)]TJ -62.887 -13.948 Td [(the)-375(MatrixMark)31(et)-375(format)]TJ/F27 9.9626 Tf -29.258 -24.367 Td [(c)-138(a)-138(l)-139(l)]TJ/F8 9.9626 Tf 29.493 0 Td [(m)-99(m)]TJ +ET +q +1 0 0 1 149.929 668.014 cm +[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +Q +BT +/F8 9.9626 Tf 153.899 667.814 Td [(a)-99(r)-98(r)-98(a)-99(y)]TJ +ET +q +1 0 0 1 182.428 668.014 cm +[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +Q +BT +/F8 9.9626 Tf 186.398 667.814 Td [(w)-98(r)-99(i)-98(t)-99(e)-204(\050)-120(b)-191(,)-911(i)-149(r)-150(e)-149(t)-461(,)-896(i)-134(u)-135(n)-135(i)-135(t)-431(,)-890(f)-129(i)-129(l)-129(e)-129(n)-129(a)-129(m)-129(e)-235(\051)]TJ 0 g 0 G -/F8 9.9626 Tf 20.922 0 Td [(.)]TJ 0 g 0 G -/F27 9.9626 Tf -287.51 -19.925 Td [(iout)]TJ 0 g 0 G -/F8 9.9626 Tf 24.713 0 Td [(output)-333(unit.)-445(S)1(c)-1(op)-27(e:)]TJ/F27 9.9626 Tf 89.941 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -89.747 -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)-333(n)27(um)28(b)-28(er.)-444(Default:)-444(default)-334(outp)1(ut)-334(unit.)]TJ +/F27 9.9626 Tf -86.503 -17.933 Td [(T)32(yp)-32(e:)]TJ 0 g 0 G -/F27 9.9626 Tf -24.907 -19.926 Td [(ro)-32(ot)]TJ +/F8 9.9626 Tf 33.797 0 Td [(Async)28(hronous.)]TJ 0 g 0 G -/F8 9.9626 Tf 25.931 0 Td [(Pro)-28(cess)-333(from)-334(wh)1(ic)27(h)-333(to)-333(prin)28(t)-334(Scop)-28(e:)]TJ/F27 9.9626 Tf 157.244 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -158.268 -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)-478(as:)-733(an)-478(in)28(teger)-478(n)28(um)28(b)-28(er)-478(b)-28(et)28(w)28(een)-478(0)-478(and)]TJ/F11 9.9626 Tf 220.072 0 Td [(np)]TJ/F14 9.9626 Tf 14.166 0 Td [(\000)]TJ/F8 9.9626 Tf 10.923 0 Td [(1,)-514(in)-478(whic)28(h)-478(case)]TJ -245.161 -11.955 Td [(the)-410(sp)-28(eci\014ed)-410(pro)-28(cess)-410(will)-411(pr)1(in)27(t)-410(the)-410(description,)-429(or)]TJ/F14 9.9626 Tf 225 0 Td [(\000)]TJ/F8 9.9626 Tf 7.748 0 Td [(1,)-429(in)-411(whic)28(h)-410(case)-410(all)]TJ -232.748 -11.955 Td [(pro)-28(cesses)-333(will)-334(prin)28(t.)-444(Default:)-444(0.)]TJ +/F27 9.9626 Tf -33.797 -19.925 Td [(On)-383(En)32(try)]TJ 0 g 0 G - 139.477 -352.221 Td [(139)]TJ 0 g 0 G -ET - -endstream -endobj -1798 0 obj -<< -/Length 987 ->> -stream + 0 -19.925 Td [(b)]TJ 0 g 0 G +/F8 9.9626 Tf 11.347 0 Td [(Rigth)-333(hand)-333(s)-1(i)1(de\050s)-1(\051.)]TJ 13.56 -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(arra)28(y)-334(of)-333(t)28(yp)-28(e)-333(real)-334(or)-333(complex,)-333(rank)-334(1)-333(or)-333(2;)-334(will)-333(b)-28(e)-333(written..)]TJ 0 g 0 G -BT -/F16 11.9552 Tf 150.705 706.129 Td [(clone)-375(|)-375(clone)-375(curren)31(t)-375(preconditioner)]TJ +/F27 9.9626 Tf -24.907 -19.926 Td [(\014lename)]TJ 0 g 0 G +/F8 9.9626 Tf 46.513 0 Td [(The)-333(name)-334(of)-333(the)-333(\014le)-334(to)-333(b)-28(e)-333(written.)]TJ -21.606 -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 [(Sp)-28(eci\014ed)-435(as:)-648(a)-435(c)27(h)1(arac)-1(ter)-435(v)56(ariable)-435(con)28(taining)-436(a)-435(v)56(alid)-435(\014le)-435(name,)-461(or)]TJ/F30 9.9626 Tf 297.915 0 Td [(-)]TJ/F8 9.9626 Tf 5.231 0 Td [(,)-461(in)]TJ -303.146 -11.955 Td [(whic)28(h)-302(cas)-1(e)-302(the)-302(default)-302(input)-302(unit)-302(5)-303(\050i.e.)-434(standard)-302(input)-302(in)-302(Unix)-302(jargon\051)-302(is)]TJ 0 -11.955 Td [(used.)-444(Default:)]TJ/F30 9.9626 Tf 66.058 0 Td [(-)]TJ/F8 9.9626 Tf 5.23 0 Td [(.)]TJ 0 g 0 G -/F30 9.9626 Tf 0 -18.389 Td [(call)-1050(prec%clone\050precout,info\051)]TJ +/F27 9.9626 Tf -96.195 -19.926 Td [(iunit)]TJ 0 g 0 G -/F27 9.9626 Tf 0 -21.918 Td [(T)32(yp)-32(e:)]TJ +/F8 9.9626 Tf 28.532 0 Td [(The)-333(F)83(ortran)-333(\014le)-334(un)1(it)-334(n)28(um)28(b)-28(er.)]TJ -3.625 -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 [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(in)28(teger)-333(v)55(alue.)-444(Only)-333(me)-1(ani)1(ngful)-334(if)-333(\014lename)-333(is)-334(not)]TJ/F30 9.9626 Tf 286.288 0 Td [(-)]TJ/F8 9.9626 Tf 5.23 0 Td [(.)]TJ 0 g 0 G -/F8 9.9626 Tf 33.797 0 Td [(Async)28(hronous.)]TJ +/F27 9.9626 Tf -316.425 -21.918 Td [(On)-383(Return)]TJ 0 g 0 G -/F27 9.9626 Tf -33.797 -19.926 Td [(On)-383(En)32(try)]TJ 0 g 0 G + 0 -19.925 Td [(iret)]TJ 0 g 0 G - 0 -19.925 Td [(prec)]TJ +/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 -/F8 9.9626 Tf 26.408 0 Td [(the)-333(preconditioner.)]TJ -1.501 -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 + 139.477 -318.348 Td [(139)]TJ 0 g 0 G -/F27 9.9626 Tf -80.358 -33.873 Td [(On)-383(Return)]TJ +ET + +endstream +endobj +1850 0 obj +<< +/Length 1215 +>> +stream 0 g 0 G 0 g 0 G - 0 -19.925 Td [(precout)]TJ +BT +/F16 14.3462 Tf 150.705 706.129 Td [(10)-1125(Preconditioner)-375(routines)]TJ/F8 9.9626 Tf 0 -21.821 Td [(The)-310(base)-310(PSBLAS)-310(library)-310(con)28(tains)-310(the)-310(implemen)28(tation)-310(of)-310(t)28(w)27(o)-310(simple)-310(precondi-)]TJ 0 -11.955 Td [(tioning)-333(tec)28(hniques:)]TJ 0 g 0 G -/F8 9.9626 Tf 42.957 0 Td [(A)-333(cop)27(y)-333(of)-333(the)-333(input)-334(ob)-55(ject.)]TJ +/F14 9.9626 Tf 14.944 -19.925 Td [(\017)]TJ 0 g 0 G -/F27 9.9626 Tf -42.957 -19.926 Td [(info)]TJ +/F8 9.9626 Tf 9.962 0 Td [(Diagonal)-333(Scaling)]TJ 0 g 0 G -/F8 9.9626 Tf 23.758 0 Td [(Return)-333(co)-28(de.)]TJ +/F14 9.9626 Tf -9.962 -19.926 Td [(\017)]TJ +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 [(.)-844(The)-466(old)-466(in)27(terfaces)]TJ/F30 9.9626 Tf 96.594 0 Td [(psb_precinit)]TJ/F8 9.9626 Tf 67.411 0 Td [(and)]TJ/F30 9.9626 Tf 20.697 0 Td [(psb_precbld)]TJ/F8 9.9626 Tf 62.181 0 Td [(are)-466(still)]TJ -309.647 -11.955 Td [(supp)-28(orted)-333(for)-333(bac)28(kw)27(ard)-333(compatibilit)28(y)]TJ 0 g 0 G - 140.625 -449.854 Td [(140)]TJ + 164.383 -498.229 Td [(140)]TJ 0 g 0 G ET endstream endobj -1804 0 obj +1856 0 obj << -/Length 2725 +/Length 5089 >> stream 0 g 0 G 0 g 0 G BT -/F16 11.9552 Tf 99.895 706.129 Td [(free)-375(|)-375(F)94(ree)-375(a)-375(preconditioner)]TJ +/F16 11.9552 Tf 99.895 706.129 Td [(10.1)-1125(init)-375(|)-375(Initialize)-375(a)-375(preconditioner)]TJ 0 g 0 G 0 g 0 G -/F30 9.9626 Tf 0 -18.389 Td [(call)-525(prec%free\050info\051)]TJ +/F30 9.9626 Tf 0 -18.389 Td [(call)-525(prec%init\050icontxt,ptype,)-525(info\051)]TJ 0 g 0 G /F27 9.9626 Tf 0 -21.918 Td [(T)32(yp)-32(e:)]TJ 0 g 0 G @@ -22764,1105 +23151,1700 @@ BT /F27 9.9626 Tf -33.797 -19.926 Td [(On)-383(En)32(try)]TJ 0 g 0 G 0 g 0 G - 0 -19.925 Td [(prec)]TJ + 0 -19.925 Td [(icon)32(txt)]TJ 0 g 0 G -/F8 9.9626 Tf 26.408 0 Td [(the)-333(preconditioner.)]TJ -1.501 -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 -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(preconditioner)-333(data)-333(structure)]TJ -0 0 1 rg 0 0 1 RG -/F30 9.9626 Tf 197.537 0 Td [(psb)]TJ -ET -q -1 0 0 1 338.658 578.35 cm -[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S -Q -BT -/F30 9.9626 Tf 341.796 578.15 Td [(prec)]TJ -ET -q -1 0 0 1 363.345 578.35 cm -[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S -Q -BT -/F30 9.9626 Tf 366.483 578.15 Td [(type)]TJ +/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 27.951 0 Td [(global)]TJ/F8 9.9626 Tf 29.756 0 Td [(.)]TJ -57.707 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.183 0 Td [(required)]TJ/F8 9.9626 Tf 41.899 0 Td [(.)]TJ -67.082 -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(an)-333(in)28(teger)-333(v)55(alue.)]TJ 0 g 0 G -/F8 9.9626 Tf 20.922 0 Td [(.)]TJ +/F27 9.9626 Tf -24.907 -19.925 Td [(pt)32(yp)-32(e)]TJ 0 g 0 G -/F27 9.9626 Tf -287.51 -19.925 Td [(On)-383(Exit)]TJ +/F8 9.9626 Tf 33.465 0 Td [(the)-333(t)27(yp)-27(e)-334(of)-333(preconditioner.)-444(Scop)-28(e:)]TJ/F27 9.9626 Tf 153.093 0 Td [(global)]TJ/F8 9.9626 Tf -161.651 -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 [(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(c)28(haracter)-333(s)-1(t)1(ring,)-334(see)-333(usage)-334(notes.)]TJ +0 g 0 G +/F27 9.9626 Tf -24.907 -19.926 Td [(On)-383(Exit)]TJ 0 g 0 G 0 g 0 G 0 -19.925 Td [(prec)]TJ 0 g 0 G -/F8 9.9626 Tf 26.408 0 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -33.88 -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(preconditioner)-333(data)-333(structure)]TJ +/F8 9.9626 Tf 26.408 0 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -33.88 -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.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(preconditioner)-333(data)-333(structure)]TJ 0 0 1 rg 0 0 1 RG /F30 9.9626 Tf 197.537 0 Td [(psb)]TJ ET q -1 0 0 1 338.658 502.634 cm +1 0 0 1 338.658 446.843 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 341.796 502.434 Td [(prec)]TJ +/F30 9.9626 Tf 341.796 446.644 Td [(prec)]TJ ET q -1 0 0 1 363.345 502.634 cm +1 0 0 1 363.345 446.843 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 366.483 502.434 Td [(type)]TJ +/F30 9.9626 Tf 366.483 446.644 Td [(type)]TJ 0 g 0 G /F8 9.9626 Tf 20.922 0 Td [(.)]TJ 0 g 0 G -/F27 9.9626 Tf -287.51 -19.925 Td [(info)]TJ +/F27 9.9626 Tf -287.51 -19.926 Td [(info)]TJ 0 g 0 G -/F8 9.9626 Tf 23.758 0 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(global)]TJ/F8 9.9626 Tf -31.23 -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 [(Error)-333(co)-28(de:)-444(if)-334(no)-333(error,)-333(0)-334(is)-333(returned.)]TJ/F16 11.9552 Tf -24.907 -21.918 Td [(Notes)]TJ/F8 9.9626 Tf 37.234 0 Td [(Releases)-334(all)-333(in)28(ternal)-333(storage.)]TJ +/F8 9.9626 Tf 23.758 0 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(global)]TJ/F8 9.9626 Tf -31.23 -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 [(Error)-333(co)-28(de:)-444(if)-334(no)-333(error,)-333(0)-334(is)-333(returned.)]TJ/F16 11.9552 Tf -24.907 -21.918 Td [(Notes)]TJ/F8 9.9626 Tf 37.059 0 Td [(Legal)-316(inputs)-315(to)-316(this)-316(subroutine)-315(are)-316(in)28(terpreted)-316(dep)-28(ending)-315(on)-316(the)]TJ/F11 9.9626 Tf 283.149 0 Td [(pty)-36(pe)]TJ/F8 9.9626 Tf -320.208 -11.955 Td [(string)-333(as)-334(follo)28(ws)]TJ +0 0 1 rg 0 0 1 RG +/F7 6.9738 Tf 69.933 3.615 Td [(4)]TJ 0 g 0 G - 127.15 -334.288 Td [(141)]TJ +/F8 9.9626 Tf 4.469 -3.615 Td [(:)]TJ 0 g 0 G -ET - -endstream -endobj -1808 0 obj -<< -/Length 608 ->> -stream +/F27 9.9626 Tf -74.402 -19.925 Td [(NONE)]TJ +0 g 0 G +/F8 9.9626 Tf 39.048 0 Td [(No)-333(preconditioning,)-333(i.e.)-445(the)-333(preconditioner)-333(is)-334(just)-333(a)-333(cop)27(y)-333(op)-28(erator.)]TJ +0 g 0 G +/F27 9.9626 Tf -39.048 -19.926 Td [(DIA)32(G)]TJ 0 g 0 G +/F8 9.9626 Tf 35.464 0 Td [(Diagonal)-441(scaling;)-496(eac)28(h)-442(en)28(try)-441(of)-442(th)1(e)-442(input)-441(v)28(ec)-1(tor)-441(is)-441(m)27(ultip)1(lied)-442(b)28(y)-441(the)]TJ -10.557 -11.955 Td [(recipro)-28(cal)-346(of)-346(the)-346(sum)-346(of)-345(the)-346(absolute)-346(v)55(alues)-346(of)-346(the)-346(co)-27(e\016cien)27(ts)-346(in)-346(th)1(e)-346(c)-1(or)1(-)]TJ 0 -11.955 Td [(resp)-28(onding)-333(ro)28(w)-334(of)-333(matrix)]TJ/F11 9.9626 Tf 113.602 0 Td [(A)]TJ/F8 9.9626 Tf 7.472 0 Td [(;)]TJ +0 g 0 G +/F27 9.9626 Tf -145.981 -19.925 Td [(BJA)32(C)]TJ +0 g 0 G +/F8 9.9626 Tf 35.672 0 Td [(Precondition)-249(b)28(y)-249(a)-249(factorization)-248(of)-249(the)-249(blo)-28(c)28(k-diagonal)-249(of)-249(matrix)]TJ/F11 9.9626 Tf 269.665 0 Td [(A)]TJ/F8 9.9626 Tf 7.472 0 Td [(,)-266(where)]TJ -287.902 -11.956 Td [(blo)-28(c)28(k)-457(b)-28(oundaries)-457(are)-457(determined)-457(b)28(y)-457(the)-457(data)-457(allo)-28(cation)-457(b)-28(oundaries)-457(for)]TJ 0 -11.955 Td [(eac)28(h)-347(pro)-28(cess;)-353(requires)-346(no)-347(comm)28(unication.)-484(Only)-347(the)-346(incomplete)-347(factoriza-)]TJ 0 -11.955 Td [(tion)]TJ/F11 9.9626 Tf 20.479 0 Td [(I)-78(LU)]TJ/F8 9.9626 Tf 19.83 0 Td [(\0500\051)-333(is)-334(curren)28(tly)-333(implemen)28(ted.)]TJ 0 g 0 G +ET +q +1 0 0 1 99.895 129.78 cm +[]0 d 0 J 0.398 w 0 0 m 137.482 0 l S +Q BT -/F16 14.3462 Tf 150.705 706.129 Td [(11)-1125(Iterativ)31(e)-375(Metho)-31(ds)]TJ/F8 9.9626 Tf 0 -21.821 Td [(In)-519(thi)1(s)-519(c)28(hapter)-519(w)28(e)-519(pro)28(vide)-519(routi)1(nes)-519(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(Kr)1(ylo)27(v)-401(sub)1(s)-1(p)1(ac)-1(e)-400(metho)-28(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 +/F32 5.9776 Tf 110.987 123.138 Td [(4)]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 - 91.158 -569.96 Td [(142)]TJ +0 g 0 G +/F8 9.9626 Tf 149.141 -29.888 Td [(141)]TJ 0 g 0 G ET endstream endobj -1815 0 obj +1865 0 obj << -/Length 8313 +/Length 7738 >> stream 0 g 0 G 0 g 0 G BT -/F16 11.9552 Tf 99.895 706.129 Td [(psb)]TJ -ET -q -1 0 0 1 120.951 706.328 cm -[]0 d 0 J 0.398 w 0 0 m 4.035 0 l S -Q -BT -/F16 11.9552 Tf 124.986 706.129 Td [(krylo)31(v)-375(|)-375(Krylo)31(v)-375(Metho)-31(ds)-375(Driv)31(er)-375(Routine)]TJ/F8 9.9626 Tf -25.091 -18.389 Td [(This)-343(subroutine)-342(is)-343(a)-343(driv)28(er)-343(that)-342(pro)27(vid)1(e)-1(s)-342(a)-343(general)-343(in)28(terface)-343(for)-342(all)-343(the)-343(Krylo)28(v-)]TJ 0 -11.956 Td [(Subspace)-333(family)-334(metho)-27(ds)-334(implemen)28(ted)-333(in)-334(PSBLAS)-333(v)28(ersion)-333(2.)]TJ 14.944 -11.955 Td [(The)-333(stopping)-334(criterion)-333(can)-333(tak)28(e)-334(the)-333(follo)28(wing)-334(v)56(alues:)]TJ +/F16 11.9552 Tf 150.705 706.129 Td [(10.2)-1125(build)-375(|)-375(Builds)-375(a)-375(preconditioner)]TJ 0 g 0 G -/F27 9.9626 Tf -14.944 -19.102 Td [(1)]TJ 0 g 0 G -/F8 9.9626 Tf 10.71 0 Td [(norm)28(wise)-334(bac)28(kw)28(ard)-333(error)-334(in)-333(the)-333(in\014nit)28(y)-334(norm;)-333(the)-333(iteration)-334(i)1(s)-334(stopp)-28(ed)-333(when)]TJ/F11 9.9626 Tf 109.583 -26.078 Td [(er)-28(r)]TJ/F8 9.9626 Tf 16.949 0 Td [(=)]TJ/F14 9.9626 Tf 38.11 6.74 Td [(k)]TJ/F11 9.9626 Tf 4.982 0 Td [(r)]TJ/F10 6.9738 Tf 4.494 -1.495 Td [(i)]TJ/F14 9.9626 Tf 3.317 1.495 Td [(k)]TJ -ET -q -1 0 0 1 248.849 621.14 cm -[]0 d 0 J 0.398 w 0 0 m 70.572 0 l S -Q -BT -/F8 9.9626 Tf 248.849 611.815 Td [(\050)]TJ/F14 9.9626 Tf 3.874 0 Td [(k)]TJ/F11 9.9626 Tf 4.981 0 Td [(A)]TJ/F14 9.9626 Tf 7.472 0 Td [(kk)]TJ/F11 9.9626 Tf 9.963 0 Td [(x)]TJ/F10 6.9738 Tf 5.694 -1.494 Td [(i)]TJ/F14 9.9626 Tf 3.317 1.494 Td [(k)]TJ/F8 9.9626 Tf 7.195 0 Td [(+)]TJ/F14 9.9626 Tf 9.963 0 Td [(k)]TJ/F11 9.9626 Tf 4.981 0 Td [(b)]TJ/F14 9.9626 Tf 4.276 0 Td [(k)]TJ/F8 9.9626 Tf 4.981 0 Td [(\051)]TJ/F11 9.9626 Tf 7.837 6.834 Td [(<)-278(eps)]TJ +/F30 9.9626 Tf 0 -19.764 Td [(call)-525(prec%build\050a,)-525(desc_a,)-525(info[,amold,vmold,imold]\051)]TJ 0 g 0 G -/F27 9.9626 Tf -223.488 -29.952 Td [(2)]TJ +/F27 9.9626 Tf 0 -24.132 Td [(T)32(yp)-32(e:)]TJ 0 g 0 G -/F8 9.9626 Tf 10.71 0 Td [(Relativ)28(e)-334(residual)-333(in)-333(the)-333(2-)-1(n)1(orm)-1(;)-333(the)-333(iteration)-333(is)-334(stopp)-28(ed)-333(when)]TJ/F11 9.9626 Tf 135.515 -26.078 Td [(er)-28(r)]TJ/F8 9.9626 Tf 16.949 0 Td [(=)]TJ/F14 9.9626 Tf 12.178 6.74 Td [(k)]TJ/F11 9.9626 Tf 4.982 0 Td [(r)]TJ/F10 6.9738 Tf 4.494 -1.495 Td [(i)]TJ/F14 9.9626 Tf 3.317 1.495 Td [(k)]TJ -ET -q -1 0 0 1 274.781 565.11 cm -[]0 d 0 J 0.398 w 0 0 m 18.708 0 l S -Q -BT -/F14 9.9626 Tf 274.781 555.785 Td [(k)]TJ/F11 9.9626 Tf 4.981 0 Td [(b)]TJ/F14 9.9626 Tf 4.276 0 Td [(k)]TJ/F7 6.9738 Tf 4.981 -1.494 Td [(2)]TJ/F11 9.9626 Tf 8.432 8.328 Td [(<)-278(eps)]TJ +/F8 9.9626 Tf 33.797 0 Td [(Sync)28(hronous.)]TJ 0 g 0 G -/F27 9.9626 Tf -197.556 -29.952 Td [(3)]TJ +/F27 9.9626 Tf -33.797 -22.879 Td [(On)-383(En)32(try)]TJ 0 g 0 G -/F8 9.9626 Tf 10.71 0 Td [(Relativ)28(e)-334(residual)-333(reduction)-333(in)-333(the)-334(2-norm;)-333(the)-333(iteration)-334(is)-333(stopp)-28(ed)-333(when)]TJ/F11 9.9626 Tf 133.171 -26.078 Td [(er)-28(r)]TJ/F8 9.9626 Tf 16.949 0 Td [(=)]TJ/F14 9.9626 Tf 14.522 6.74 Td [(k)]TJ/F11 9.9626 Tf 4.982 0 Td [(r)]TJ/F10 6.9738 Tf 4.494 -1.495 Td [(i)]TJ/F14 9.9626 Tf 3.317 1.495 Td [(k)]TJ -ET -q -1 0 0 1 272.436 509.08 cm -[]0 d 0 J 0.398 w 0 0 m 23.396 0 l S -Q -BT -/F14 9.9626 Tf 272.436 499.755 Td [(k)]TJ/F11 9.9626 Tf 4.982 0 Td [(r)]TJ/F7 6.9738 Tf 4.494 -1.494 Td [(0)]TJ/F14 9.9626 Tf 4.47 1.494 Td [(k)]TJ/F7 6.9738 Tf 4.981 -1.494 Td [(2)]TJ/F11 9.9626 Tf 8.432 8.328 Td [(<)-278(eps)]TJ/F8 9.9626 Tf -199.9 -30.505 Td [(The)-443(b)-27(eha)28(viour)-443(is)-442(con)27(troll)1(e)-1(d)-442(b)28(y)-443(the)-442(istop)-442(argumen)27(t)-442(\050see)-443(later\051.)-771(In)-443(the)-442(ab)-28(o)28(v)27(e)]TJ 0 -11.955 Td [(form)28(ulae,)]TJ/F11 9.9626 Tf 43.127 0 Td [(x)]TJ/F10 6.9738 Tf 5.694 -1.495 Td [(i)]TJ/F8 9.9626 Tf 5.856 1.495 Td [(is)-255(the)-255(ten)28(tativ)28(e)-255(solution)-255(and)]TJ/F11 9.9626 Tf 122.117 0 Td [(r)]TJ/F10 6.9738 Tf 4.495 -1.495 Td [(i)]TJ/F8 9.9626 Tf 6.084 1.495 Td [(=)]TJ/F11 9.9626 Tf 10.516 0 Td [(b)]TJ/F14 9.9626 Tf 4.925 0 Td [(\000)]TJ/F11 9.9626 Tf 8.399 0 Td [(Ax)]TJ/F10 6.9738 Tf 13.166 -1.495 Td [(i)]TJ/F8 9.9626 Tf 5.856 1.495 Td [(the)-255(corresp)-28(ondin)1(g)-255(residual)]TJ -230.235 -11.956 Td [(at)-333(the)]TJ/F11 9.9626 Tf 29.335 0 Td [(i)]TJ/F8 9.9626 Tf 3.432 0 Td [(-th)-333(iteration.)]TJ/F27 9.9626 Tf -31.39 -17.52 Td [(c)-138(a)-138(l)-139(l)]TJ/F8 9.9626 Tf 29.763 0 Td [(p)-126(s)-125(b)]TJ +0 g 0 G + 0 -22.879 Td [(a)]TJ +0 g 0 G +/F8 9.9626 Tf 10.551 0 Td [(the)-333(system)-334(sparse)-333(matrix.)-445(Scop)-27(e:)]TJ/F27 9.9626 Tf 148.886 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -134.53 -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 [(in)]TJ/F8 9.9626 Tf 9.548 0 Td [(,)-333(target.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-444(a)-334(sparse)-333(matrix)-334(d)1(ata)-334(structure)]TJ +0 0 1 rg 0 0 1 RG +/F30 9.9626 Tf 194.05 0 Td [(psb)]TJ ET q -1 0 0 1 150.386 434.852 cm -[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +1 0 0 1 385.981 580.809 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F8 9.9626 Tf 154.627 434.653 Td [(k)-126(r)-125(y)-126(l)-125(o)-126(v)-231(\050)-146(m)-40(e)-41(t)-40(h)-40(o)-40(d)-242(,)-194(a)-228(,)-255(p)-94(r)-94(e)-94(c)-349(,)-176(b)-191(,)-185(x)-209(,)-243(e)-81(p)-81(s)-323(,)-274(d)-113(e)-112(s)-113(c)]TJ +/F30 9.9626 Tf 389.119 580.61 Td [(Tspmat)]TJ ET q -1 0 0 1 351.575 434.852 cm -[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +1 0 0 1 421.128 580.809 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F8 9.9626 Tf 355.686 434.653 Td [(a)-386(,)-288(i)-127(n)-127(f)-127(o)-302(,)-48(&)]TJ -226.788 -11.956 Td [(&)-579(i)-67(t)-67(m)-68(a)-67(x)-296(,)-311(i)-150(t)-149(e)-150(r)-460(,)]TJ/F27 9.9626 Tf 79.244 0 Td [(e)-65(r)-65(r)]TJ/F8 9.9626 Tf 18.889 0 Td [(,)-305(i)-144(t)-144(r)-144(a)-145(c)-144(e)-449(,)-319(i)-158(r)-158(s)-158(t)-477(,)-287(i)-126(s)-126(t)-126(o)-127(p)-413(,)-230(c)-69(o)-69(n)-69(d)-174(\051)]TJ -0 g 0 G -0 g 0 G -0 g 0 G -/F27 9.9626 Tf -127.136 -26.454 Td [(T)32(yp)-32(e:)]TJ -0 g 0 G -/F8 9.9626 Tf 33.797 0 Td [(Sync)28(hronous.)]TJ -0 g 0 G -/F27 9.9626 Tf -33.797 -19.513 Td [(On)-383(En)32(try)]TJ -0 g 0 G -0 g 0 G - 0 -19.514 Td [(metho)-32(d)]TJ -0 g 0 G -/F8 9.9626 Tf 43.012 0 Td [(a)-235(string)-235(that)-235(de\014nes)-236(th)1(e)-236(iterativ)28(e)-235(metho)-28(d)-235(to)-235(b)-28(e)-235(used.)-412(Supp)-27(orted)-235(v)55(alues)]TJ -18.105 -11.955 Td [(are:)]TJ -0 g 0 G -/F27 9.9626 Tf 0 -19.513 Td [(CG:)]TJ -0 g 0 G -/F8 9.9626 Tf 25.446 0 Td [(the)-333(Conjugate)-334(Gradien)28(t)-333(metho)-28(d;)]TJ -0 g 0 G -/F27 9.9626 Tf -25.446 -15.529 Td [(CGS:)]TJ -0 g 0 G -/F8 9.9626 Tf 31.811 0 Td [(the)-333(Conjugate)-334(Gradien)28(t)-333(Stabilized)-333(metho)-28(d;)]TJ -0 g 0 G -/F27 9.9626 Tf -31.811 -15.528 Td [(GCR:)]TJ -0 g 0 G -/F8 9.9626 Tf 34.039 0 Td [(the)-333(Generalized)-334(Conjugate)-333(Residual)-333(metho)-28(d;)]TJ -0 g 0 G -/F27 9.9626 Tf -34.039 -15.529 Td [(F)32(CG:)]TJ -0 g 0 G -/F8 9.9626 Tf 32.337 0 Td [(the)-333(Flexible)-334(Conjugate)-333(Gradien)28(t)-333(metho)-28(d)]TJ -0 0 1 rg 0 0 1 RG -/F7 6.9738 Tf 177.626 3.616 Td [(5)]TJ -0 g 0 G -/F8 9.9626 Tf 4.469 -3.616 Td [(;)]TJ -0 g 0 G -/F27 9.9626 Tf -214.432 -15.528 Td [(BICG:)]TJ -0 g 0 G -/F8 9.9626 Tf 37.941 0 Td [(the)-333(Bi-Conjugate)-334(Gradien)28(t)-333(metho)-28(d;)]TJ -0 g 0 G -/F27 9.9626 Tf -37.941 -15.529 Td [(BICGST)96(AB:)]TJ -0 g 0 G -/F8 9.9626 Tf 68.133 0 Td [(the)-333(Bi-Conjugate)-334(Gradien)28(t)-333(Stabilized)-333(metho)-28(d;)]TJ -0 g 0 G -/F27 9.9626 Tf -68.133 -15.528 Td [(BICGST)96(ABL:)]TJ -0 g 0 G -/F8 9.9626 Tf 75.024 0 Td [(the)-222(Bi-Conjugate)-222(Gradien)27(t)-222(Stabilized)-222(metho)-28(d)-222(with)-222(restart-)]TJ -53.106 -11.955 Td [(ing;)]TJ -0 g 0 G -/F27 9.9626 Tf -21.918 -15.529 Td [(R)32(GMRES:)]TJ +/F30 9.9626 Tf 424.267 580.61 Td [(type)]TJ 0 g 0 G -/F8 9.9626 Tf 58.807 0 Td [(the)-333(Generalized)-334(Minimal)-333(Residual)-333(metho)-28(d)-333(with)-334(restarting.)]TJ +/F8 9.9626 Tf 20.921 0 Td [(.)]TJ 0 g 0 G -/F27 9.9626 Tf -83.714 -19.513 Td [(a)]TJ +/F27 9.9626 Tf -294.483 -22.879 Td [(prec)]TJ 0 g 0 G -/F8 9.9626 Tf 10.551 0 Td [(the)-333(lo)-28(cal)-333(p)-28(ortion)-333(of)-334(global)-333(sparse)-333(matrix)]TJ/F11 9.9626 Tf 178.968 0 Td [(A)]TJ/F8 9.9626 Tf 7.472 0 Td [(.)]TJ -172.084 -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 +/F8 9.9626 Tf 26.408 0 Td [(the)-333(preconditioner.)]TJ -1.501 -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 [(inout)]TJ/F8 9.9626 Tf 26.097 0 Td [(.)]TJ -59.582 -11.956 Td [(Sp)-28(eci\014ed)-222(as:)-389(an)-222(already)-222(initialized)-222(precondtioner)-222(data)-223(structure)]TJ 0 0 1 rg 0 0 1 RG -/F30 9.9626 Tf 170.915 0 Td [(psb)]TJ +/F30 9.9626 Tf 273.115 0 Td [(psb)]TJ ET q -1 0 0 1 312.036 137.958 cm +1 0 0 1 465.045 510.11 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 315.174 137.759 Td [(Tspmat)]TJ +/F30 9.9626 Tf 468.184 509.91 Td [(prec)]TJ ET q -1 0 0 1 347.183 137.958 cm +1 0 0 1 489.733 510.11 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 350.322 137.759 Td [(type)]TJ +/F30 9.9626 Tf 492.871 509.91 Td [(type)]TJ 0 g 0 G -/F8 9.9626 Tf 20.921 0 Td [(.)]TJ 0 g 0 G +/F27 9.9626 Tf -342.166 -34.833 Td [(desc)]TJ ET q -1 0 0 1 99.895 129.78 cm -[]0 d 0 J 0.398 w 0 0 m 137.482 0 l S +1 0 0 1 172.619 475.276 cm +[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F32 5.9776 Tf 110.987 123.138 Td [(5)]TJ/F31 7.9701 Tf 4.151 -2.812 Td [(Note:)-472(the)-355(implemen)30(tation)-354(is)-355(f)1(or)]TJ/F33 7.9701 Tf 120.25 0 Td [(F)-148(C)-70(G)]TJ/F31 7.9701 Tf 19.732 0 Td [(\0501\051.)]TJ -0 g 0 G -0 g 0 G -/F8 9.9626 Tf 9.159 -29.888 Td [(143)]TJ -0 g 0 G -ET - -endstream -endobj -1827 0 obj -<< -/Length 7123 ->> -stream -0 g 0 G -0 g 0 G -0 g 0 G -BT -/F27 9.9626 Tf 150.705 706.129 Td [(prec)]TJ +/F27 9.9626 Tf 176.057 475.077 Td [(a)]TJ 0 g 0 G -/F8 9.9626 Tf 26.408 0 Td [(The)-333(data)-334(structure)-333(con)28(taining)-333(the)-334(preconditioner.)]TJ -1.502 -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 [(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.55 0 Td [(the)-333(problem)-334(comm)28(unication)-333(descriptor.)-445(Scop)-27(e:)]TJ/F27 9.9626 Tf 208.247 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -219.243 -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 [(,)-333(target.)]TJ -43.034 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(comm)28(unication)-333(des)-1(crip)1(tor)-334(data)-333(structure)]TJ 0 0 1 rg 0 0 1 RG -/F30 9.9626 Tf 170.915 0 Td [(psb)]TJ +/F30 9.9626 Tf 247.683 0 Td [(psb)]TJ ET q -1 0 0 1 362.845 658.507 cm +1 0 0 1 439.613 439.41 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 365.983 658.308 Td [(prec)]TJ +/F30 9.9626 Tf 442.751 439.211 Td [(desc)]TJ ET q -1 0 0 1 387.532 658.507 cm +1 0 0 1 464.3 439.41 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 390.67 658.308 Td [(type)]TJ +/F30 9.9626 Tf 467.438 439.211 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.202 Td [(b)]TJ +/F27 9.9626 Tf -337.655 -22.879 Td [(amold)]TJ 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.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(rank)-333(one)-334(ar)1(ra)27(y)-333(or)-333(an)-334(ob)-55(ject)-333(of)-334(t)28(yp)-28(e)]TJ -0 0 1 rg 0 0 1 RG -/F30 9.9626 Tf 223.496 0 Td [(psb)]TJ +/F8 9.9626 Tf 35.374 0 Td [(The)-333(desired)-334(dynamic)-333(t)28(yp)-28(e)-333(for)-334(the)-333(in)28(ternal)-333(matrix)-334(storage.)]TJ -10.467 -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 [(optional)]TJ/F8 9.9626 Tf 40.577 0 Td [(.)]TJ -70.188 -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(ob)-55(ject)-334(of)-333(a)-333(class)-334(deriv)28(ed)-333(from)]TJ/F30 9.9626 Tf 203.348 0 Td [(psb)]TJ ET q -1 0 0 1 415.426 588.484 cm +1 0 0 1 395.279 368.711 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 418.564 588.285 Td [(T)]TJ +/F30 9.9626 Tf 398.417 368.512 Td [(T)]TJ ET q -1 0 0 1 424.422 588.484 cm +1 0 0 1 404.275 368.711 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 427.56 588.285 Td [(vect)]TJ +/F30 9.9626 Tf 407.413 368.512 Td [(base)]TJ ET q -1 0 0 1 449.109 588.484 cm +1 0 0 1 428.962 368.711 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 452.247 588.285 Td [(type)]TJ -0 g 0 G -/F8 9.9626 Tf 20.922 0 Td [(.)]TJ +/F30 9.9626 Tf 432.101 368.512 Td [(sparse)]TJ +ET +q +1 0 0 1 464.11 368.711 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +Q +BT +/F30 9.9626 Tf 467.248 368.512 Td [(mat)]TJ/F8 9.9626 Tf 15.691 0 Td [(.)]TJ 0 g 0 G -/F27 9.9626 Tf -322.464 -22.202 Td [(x)]TJ +/F27 9.9626 Tf -332.234 -22.879 Td [(vmold)]TJ 0 g 0 G -/F8 9.9626 Tf 11.028 0 Td [(The)-333(initial)-334(guess.)]TJ 13.878 -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 [(inout)]TJ/F8 9.9626 Tf 26.096 0 Td [(.)]TJ -59.582 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(rank)-333(one)-334(ar)1(ra)27(y)-333(or)-333(an)-334(ob)-55(ject)-333(of)-334(t)28(yp)-28(e)]TJ -0 0 1 rg 0 0 1 RG -/F30 9.9626 Tf 223.496 0 Td [(psb)]TJ +/F8 9.9626 Tf 35.851 0 Td [(The)-333(desired)-334(dynamic)-333(t)28(yp)-28(e)-333(for)-334(the)-333(in)28(ternal)-333(v)27(ector)-333(storage.)]TJ -10.945 -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 [(optional)]TJ/F8 9.9626 Tf 40.576 0 Td [(.)]TJ -70.188 -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.956 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(ob)-55(ject)-334(of)-333(a)-333(class)-334(deriv)28(ed)-333(from)]TJ/F30 9.9626 Tf 203.349 0 Td [(psb)]TJ ET q -1 0 0 1 415.426 518.461 cm +1 0 0 1 395.279 298.012 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 418.564 518.262 Td [(T)]TJ +/F30 9.9626 Tf 398.417 297.812 Td [(T)]TJ ET q -1 0 0 1 424.422 518.461 cm +1 0 0 1 404.275 298.012 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 427.56 518.262 Td [(vect)]TJ +/F30 9.9626 Tf 407.413 297.812 Td [(base)]TJ ET q -1 0 0 1 449.109 518.461 cm +1 0 0 1 428.962 298.012 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 452.247 518.262 Td [(type)]TJ -0 g 0 G -/F8 9.9626 Tf 20.922 0 Td [(.)]TJ -0 g 0 G -/F27 9.9626 Tf -322.464 -22.203 Td [(eps)]TJ +/F30 9.9626 Tf 432.101 297.812 Td [(vect)]TJ +ET +q +1 0 0 1 453.65 298.012 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +Q +BT +/F30 9.9626 Tf 456.788 297.812 Td [(type)]TJ/F8 9.9626 Tf 20.921 0 Td [(.)]TJ 0 g 0 G -/F8 9.9626 Tf 21.116 0 Td [(The)-333(stopping)-334(tolerance.)]TJ 3.79 -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(a)-333(real)-333(n)28(um)27(b)-27(er.)]TJ +/F27 9.9626 Tf -327.004 -22.878 Td [(imold)]TJ 0 g 0 G -/F27 9.9626 Tf -24.906 -22.203 Td [(desc)]TJ +/F8 9.9626 Tf 32.987 0 Td [(The)-333(desired)-334(dynamic)-333(t)28(yp)-28(e)-333(for)-334(the)-333(in)28(ternal)-333(in)27(teger)-333(v)28(ector)-334(storage.)]TJ -8.081 -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.612 0 Td [(optional)]TJ/F8 9.9626 Tf 40.576 0 Td [(.)]TJ -70.188 -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)-222(as:)-389(an)-222(ob)-56(ject)-222(of)-222(a)-222(class)-223(deriv)28(ed)-222(from)-222(\050in)28(teger\051)]TJ/F30 9.9626 Tf 233.542 0 Td [(psb)]TJ ET q -1 0 0 1 172.619 426.236 cm -[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S +1 0 0 1 425.471 227.312 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F27 9.9626 Tf 176.057 426.036 Td [(a)]TJ -0 g 0 G -/F8 9.9626 Tf 10.55 0 Td [(con)28(tains)-334(data)-333(structures)-333(for)-333(c)-1(omm)28(unications.)]TJ -10.996 -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 -0 0 1 rg 0 0 1 RG -/F30 9.9626 Tf 170.915 0 Td [(psb)]TJ +/F30 9.9626 Tf 428.61 227.113 Td [(T)]TJ ET q -1 0 0 1 362.845 378.415 cm +1 0 0 1 434.468 227.312 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 365.983 378.216 Td [(desc)]TJ +/F30 9.9626 Tf 437.606 227.113 Td [(base)]TJ ET q -1 0 0 1 387.532 378.415 cm +1 0 0 1 459.155 227.312 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 390.67 378.216 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.203 Td [(itmax)]TJ -0 g 0 G -/F8 9.9626 Tf 33.783 0 Td [(The)-333(maxim)27(um)-333(n)28(um)28(b)-28(er)-333(of)-334(iterations)-333(to)-333(p)-28(erform.)]TJ -8.877 -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 [(optional)]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 [(Default:)]TJ/F11 9.9626 Tf 39.436 0 Td [(itmax)]TJ/F8 9.9626 Tf 29.505 0 Td [(=)-278(1000.)]TJ -68.941 -11.956 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(in)28(teger)-333(v)55(ariable)]TJ/F11 9.9626 Tf 142.079 0 Td [(itmax)]TJ/F14 9.9626 Tf 29.505 0 Td [(\025)]TJ/F8 9.9626 Tf 10.516 0 Td [(1.)]TJ -0 g 0 G -/F27 9.9626 Tf -207.006 -22.202 Td [(itrace)]TJ -0 g 0 G -/F8 9.9626 Tf 33.25 0 Td [(If)]TJ/F11 9.9626 Tf 8.912 0 Td [(>)]TJ/F8 9.9626 Tf 10.516 0 Td [(0)-228(prin)28(t)-228(out)-228(an)-228(i)1(nformational)-228(message)-228(ab)-28(out)-228(con)28(v)28(ergence)-228(ev)27(ery)]TJ/F11 9.9626 Tf 265.015 0 Td [(itr)-28(ace)]TJ/F8 9.9626 Tf -292.787 -11.955 Td [(iterations.)-444(If)-334(=)-278(0)-333(prin)28(t)-333(a)-334(message)-333(in)-333(cas)-1(e)-333(of)-333(con)28(v)27(ergence)-333(failure.)]TJ 0 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(global)]TJ/F8 9.9626 Tf -32.379 -11.956 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 [(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 [(Default:)]TJ/F11 9.9626 Tf 39.436 0 Td [(itr)-28(ace)]TJ/F8 9.9626 Tf 28.785 0 Td [(=)]TJ/F14 9.9626 Tf 10.516 0 Td [(\000)]TJ/F8 9.9626 Tf 7.749 0 Td [(1.)]TJ -0 g 0 G -/F27 9.9626 Tf -111.392 -34.158 Td [(irst)]TJ -0 g 0 G -/F8 9.9626 Tf 21.857 0 Td [(An)-333(in)28(tege)-1(r)-333(sp)-28(ecifying)-333(the)-333(restart)-334(par)1(a)-1(meter.)]TJ 3.049 -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 [(optional)]TJ/F8 9.9626 Tf 40.576 0 Td [(.)]TJ -70.188 -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 [(V)83(alues:)]TJ/F11 9.9626 Tf 37.507 0 Td [(ir)-28(st)-447(>)]TJ/F8 9.9626 Tf 33.134 0 Td [(0.)-750(This)-435(is)-435(emplo)28(y)27(ed)-435(for)-435(the)-435(BiCGST)83(ABL)-435(or)-435(R)28(GMRES)]TJ -70.641 -11.955 Td [(metho)-28(ds,)-333(otherwise)-334(it)-333(is)-333(ignored.)]TJ -0 g 0 G - 139.477 -29.888 Td [(144)]TJ -0 g 0 G +/F30 9.9626 Tf 462.293 227.113 Td [(vect)]TJ ET - -endstream -endobj -1832 0 obj -<< -/Length 4693 ->> -stream -0 g 0 G -0 g 0 G -0 g 0 G +q +1 0 0 1 483.842 227.312 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +Q BT -/F27 9.9626 Tf 99.895 706.129 Td [(istop)]TJ -0 g 0 G -/F8 9.9626 Tf 29.232 0 Td [(An)-333(in)28(te)-1(ger)-333(sp)-28(ecifying)-333(the)-333(stopping)-334(crit)1(e)-1(ri)1(on.)]TJ -4.325 -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 40.577 0 Td [(.)]TJ -70.188 -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 [(V)83(alues:)-478(1:)-479(use)-351(th)1(e)-351(norm)28(wise)-351(bac)28(kw)28(ard)-351(error,)-354(2:)-479(use)-350(the)-351(scaled)-350(2-norm)-351(of)]TJ 0 -11.955 Td [(the)-333(residual,)-334(3:)-444(use)-333(the)-334(residual)-333(reduction)-333(in)-334(th)1(e)-334(2-norm.)-444(Default:)-445(2.)]TJ +/F30 9.9626 Tf 486.98 227.113 Td [(type)]TJ/F8 9.9626 Tf 20.921 0 Td [(.)]TJ 0 g 0 G -/F27 9.9626 Tf -24.907 -19.925 Td [(On)-383(Return)]TJ +/F27 9.9626 Tf -357.196 -24.133 Td [(On)-383(Return)]TJ 0 g 0 G 0 g 0 G - 0 -19.926 Td [(x)]TJ + 0 -22.879 Td [(prec)]TJ 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.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(rank)-333(one)-333(arra)27(y)-333(or)-333(an)-334(ob)-55(ject)-333(of)-334(t)28(yp)-28(e)]TJ +/F8 9.9626 Tf 26.408 0 Td [(the)-333(preconditioner.)]TJ -1.502 -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 [(inout)]TJ/F8 9.9626 Tf 26.096 0 Td [(.)]TJ -59.582 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(precondtioner)-333(data)-333(structure)]TJ 0 0 1 rg 0 0 1 RG -/F30 9.9626 Tf 223.496 0 Td [(psb)]TJ -ET -q -1 0 0 1 364.616 558.881 cm -[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S -Q -BT -/F30 9.9626 Tf 367.754 558.682 Td [(T)]TJ +/F30 9.9626 Tf 194.77 0 Td [(psb)]TJ ET q -1 0 0 1 373.612 558.881 cm +1 0 0 1 386.7 132.48 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 376.751 558.682 Td [(vect)]TJ +/F30 9.9626 Tf 389.838 132.281 Td [(prec)]TJ ET q -1 0 0 1 398.3 558.881 cm +1 0 0 1 411.387 132.48 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 401.438 558.682 Td [(type)]TJ -0 g 0 G -/F8 9.9626 Tf 20.921 0 Td [(.)]TJ -0 g 0 G -/F27 9.9626 Tf -322.464 -19.925 Td [(iter)]TJ -0 g 0 G -/F8 9.9626 Tf 22.589 0 Td [(The)-333(n)27(um)28(b)-28(er)-333(of)-333(iterations)-333(p)-28(erformed.)]TJ 2.318 -11.956 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 [(out)]TJ/F8 9.9626 Tf 16.549 0 Td [(.)]TJ -50.035 -11.955 Td [(Returned)-333(as:)-445(an)-333(in)28(teger)-334(v)56(ariable.)]TJ -0 g 0 G -/F27 9.9626 Tf -24.907 -19.925 Td [(err)]TJ -0 g 0 G -/F8 9.9626 Tf 19.67 0 Td [(The)-333(con)27(v)28(ergence)-333(estimate)-334(on)-333(exit.)]TJ 5.237 -11.956 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 [(out)]TJ/F8 9.9626 Tf 16.549 0 Td [(.)]TJ -50.035 -11.955 Td [(Returned)-333(as:)-445(a)-333(real)-333(n)27(um)28(b)-28(er.)]TJ -0 g 0 G -/F27 9.9626 Tf -24.907 -19.925 Td [(cond)]TJ -0 g 0 G -/F8 9.9626 Tf 28.532 0 Td [(An)-280(estimate)-280(of)-279(the)-280(condition)-280(n)28(um)28(b)-28(er)-280(of)-279(matrix)]TJ/F11 9.9626 Tf 204.226 0 Td [(A)]TJ/F8 9.9626 Tf 7.472 0 Td [(;)-298(only)-279(a)27(v)56(ailable)-280(with)-279(the)]TJ/F11 9.9626 Tf -215.323 -11.956 Td [(C)-72(G)]TJ/F8 9.9626 Tf 18.987 0 Td [(metho)-28(d)-333(on)-333(real)-334(data.)]TJ -18.987 -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 [(out)]TJ/F8 9.9626 Tf 16.549 0 Td [(.)]TJ -50.035 -11.955 Td [(Returned)-287(as:)-421(a)-287(real)-287(n)28(um)28(b)-28(er.)-429(A)-287(correct)-287(result)-286(will)-287(b)-28(e)-287(greater)-287(than)-287(or)-286(equal)]TJ 0 -11.955 Td [(to)-267(on)1(e)-1(;)-288(if)-267(sp)-28(eci\014ed)-266(for)-267(non)1(-)-1(r)1(e)-1(al)-266(data,)-280(or)-266(an)-267(error)-266(o)-28(ccurred,)-280(zero)-267(is)-266(returned.)]TJ -0 g 0 G -/F27 9.9626 Tf -24.907 -19.926 Td [(info)]TJ +/F30 9.9626 Tf 414.525 132.281 Td [(type)]TJ 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 -173.35 Td [(145)]TJ +/F8 9.9626 Tf -99.437 -41.843 Td [(142)]TJ 0 g 0 G ET endstream endobj -1837 0 obj +1869 0 obj << -/Length 80 +/Length 1094 >> stream 0 g 0 G 0 g 0 G 0 g 0 G BT -/F8 9.9626 Tf 315.088 90.438 Td [(146)]TJ +/F27 9.9626 Tf 99.895 706.129 Td [(info)]TJ +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 -24.907 -21.918 Td [(The)]TJ/F30 9.9626 Tf 21.638 0 Td [(amold)]TJ/F8 9.9626 Tf 26.152 0 Td [(,)]TJ/F30 9.9626 Tf 7.536 0 Td [(vmold)]TJ/F8 9.9626 Tf 30.631 0 Td [(and)]TJ/F30 9.9626 Tf 20.531 0 Td [(imold)]TJ/F8 9.9626 Tf 30.631 0 Td [(argumen)28(ts)-450(ma)28(y)-450(b)-27(e)-450(emplo)28(y)27(ed)-449(to)-450(in)28(terface)-450(with)]TJ -137.119 -11.955 Td [(sp)-28(ecial)-333(devices,)-334(suc)28(h)-333(as)-334(GPUs)-333(and)-333(other)-333(ac)-1(celerators.)]TJ +0 g 0 G + 164.384 -533.997 Td [(143)]TJ 0 g 0 G ET endstream endobj -1841 0 obj +1877 0 obj << -/Length 7014 +/Length 5862 >> stream 0 g 0 G 0 g 0 G BT -/F16 14.3462 Tf 99.895 706.129 Td [(References)]TJ +/F16 11.9552 Tf 150.705 706.129 Td [(10.3)-1125(apply)-375(|)-375(Preconditioner)-375(application)-375(routine)]TJ 0 g 0 G -/F8 9.9626 Tf 4.982 -21.821 Td [([1])]TJ 0 g 0 G - [-500(D.)-441(Barbieri,)-468(V.)-441(Cardellini,)-467(S.)-441(Filipp)-28(one)-441(and)-441(D.)-441(Rouson)]TJ/F17 9.9626 Tf 267.833 0 Td [(Design)-457(Patterns)]TJ -252.336 -11.955 Td [(for)-441(S)-1(ci)1(ent)-1(i)1(\014)-1(c)-441(Computations)-442(on)-441(Sp)51(arse)-441(Matric)51(es)]TJ/F8 9.9626 Tf 210.802 0 Td [(,)-447(HPSS)-424(2011,)-447(Algorithms)]TJ -210.802 -11.955 Td [(and)-375(Programming)-374(T)83(o)-28(ols)-375(for)-374(Next-Generation)-375(High-P)28(erformance)-375(Scien)28(ti\014c)]TJ 0 -11.956 Td [(Soft)28(w)28(are,)-334(Bordeaux,)-333(Sep.)-333(2011)]TJ +/F30 9.9626 Tf 0 -18.389 Td [(call)-525(prec%apply\050x,y,desc_a,info,trans,work\051)]TJ 0 -11.956 Td [(call)-525(prec%apply\050x,desc_a,info,trans\051)]TJ 0 g 0 G - -15.497 -18.666 Td [([2])]TJ +/F27 9.9626 Tf 0 -21.917 Td [(T)32(yp)-32(e:)]TJ 0 g 0 G - [-500(G.)-341(Bella,)-343(S.)-341(Filipp)-28(one,)-343(A.)-341(De)-341(Maio)-341(and)-341(M.)-341(T)84(esta,)]TJ/F17 9.9626 Tf 235.488 0 Td [(A)-365(Simulation)-365(Mo)51(del)-364(for)]TJ -219.991 -11.955 Td [(F)77(or)51(est)-365(Fir)51(es)]TJ/F8 9.9626 Tf 52.03 0 Td [(,)-343(in)-341(J.)-340(Dongarra,)-343(K.)-341(Madsen,)-343(J.)-341(W)84(asniewski,)-343(editors,)-343(Pro)-28(ceed-)]TJ -52.03 -11.955 Td [(ings)-394(of)-395(P)84(ARA)-395(04)-394(W)83(orkshop)-394(on)-395(State)-394(of)-395(the)-394(Art)-394(in)-395(Scien)28(ti\014c)-394(Com)-1(p)1(uting,)]TJ 0 -11.955 Td [(pp.)-333(546{553,)-334(Lecture)-333(Notes)-333(in)-334(Computer)-333(Science,)-333(Springer,)-334(2005.)]TJ +/F8 9.9626 Tf 33.797 0 Td [(Sync)28(hronous.)]TJ 0 g 0 G - -15.497 -18.666 Td [([3])]TJ +/F27 9.9626 Tf -33.797 -19.926 Td [(On)-383(En)32(try)]TJ 0 g 0 G - [-500(A.)-316(Buttari,)-320(D.)-317(di)-316(Sera\014no,)-320(P)83(.)-316(D'Am)28(bra,)-320(S.)-317(Filipp)-27(one,)-100(2LEV-D2P4:)-436(a)-316(pac)28(k-)]TJ 15.497 -11.955 Td [(age)-388(of)-388(high-p)-28(erformance)-388(preconditioners,)-218(Applicable)-388(Alge)-1(b)1(ra)-389(in)-388(Engin)1(e)-1(er-)]TJ 0 -11.956 Td [(ing,)-393(Comm)27(un)1(ications)-382(and)-381(Computing,)-393(V)83(olume)-381(18,)-393(Num)27(b)-27(er)-382(3,)-393(Ma)28(y)83(,)-393(2007,)]TJ 0 -11.955 Td [(pp.)-333(223-239)]TJ 0 g 0 G - -15.497 -18.666 Td [([4])]TJ + 0 -19.925 Td [(prec)]TJ 0 g 0 G - [-500(P)83(.)-691(D'Am)28(bra,)-780(S.)-691(Filipp)-28(one,)-780(D.)-691(Di)-691(Sera\014no)-819(On)-691(the)-691(Dev)28(elopmen)28(t)-691(of)]TJ 15.497 -11.955 Td [(PSBLAS-based)-430(P)28(arallel)-430(Tw)28(o-lev)28(el)-430(Sc)27(h)28(w)28(arz)-430(Preconditioners)-731(Applied)-430(Nu-)]TJ 0 -11.955 Td [(merical)-245(Mathematics)-1(,)-262(Elsevier)-246(Science,)-263(V)83(ol)1(ume)-246(57,)-263(Issues)-245(11-12,)-263(No)27(v)28(em)28(b)-28(er-)]TJ 0 -11.955 Td [(Decem)28(b)-28(er)-333(2007)-1(,)-333(P)28(ages)-333(1181-1196.)]TJ +/F8 9.9626 Tf 26.408 0 Td [(the)-333(preconditioner.)-445(Scop)-27(e:)]TJ/F27 9.9626 Tf 119.33 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -120.832 -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.956 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(preconditioner)-333(data)-333(structure)]TJ +0 0 1 rg 0 0 1 RG +/F30 9.9626 Tf 197.538 0 Td [(psb)]TJ +ET +q +1 0 0 1 389.467 578.35 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +Q +BT +/F30 9.9626 Tf 392.606 578.15 Td [(prec)]TJ +ET +q +1 0 0 1 414.155 578.35 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +Q +BT +/F30 9.9626 Tf 417.293 578.15 Td [(type)]TJ 0 g 0 G - -15.497 -18.667 Td [([5])]TJ +/F8 9.9626 Tf 20.921 0 Td [(.)]TJ +0 g 0 G +/F27 9.9626 Tf -287.509 -19.925 Td [(x)]TJ +0 g 0 G +/F8 9.9626 Tf 11.028 0 Td [(the)-333(source)-334(v)28(ector.)-444(Scop)-28(e:)]TJ/F27 9.9626 Tf 113.851 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -99.972 -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 [(inout)]TJ/F8 9.9626 Tf 26.097 0 Td [(.)]TJ -59.582 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-444(a)-334(rank)-333(one)-333(arra)27(y)-333(or)-333(an)-334(ob)-55(ject)-333(of)-334(t)28(yp)-28(e)]TJ +0 0 1 rg 0 0 1 RG +/F30 9.9626 Tf 223.495 0 Td [(psb)]TJ +ET +q +1 0 0 1 415.426 522.559 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +Q +BT +/F30 9.9626 Tf 418.564 522.36 Td [(T)]TJ +ET +q +1 0 0 1 424.422 522.559 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +Q +BT +/F30 9.9626 Tf 427.56 522.36 Td [(vect)]TJ +ET +q +1 0 0 1 449.109 522.559 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +Q +BT +/F30 9.9626 Tf 452.247 522.36 Td [(type)]TJ 0 g 0 G - [-500(Dongarra,)-529(J.)-490(J.,)-529(DuCroz,)-529(J.,)-529(Hammarling,)-529(S.)-490(and)-490(Hanson,)-529(R.,)-529(An)-490(Ex-)]TJ 15.497 -11.955 Td [(tended)-478(Set)-478(of)-478(F)83(ortran)-478(Basic)-478(Linear)-478(Algebra)-478(Subprograms,)-514(A)28(C)-1(M)-477(T)83(rans.)]TJ 0 -11.955 Td [(Math.)-333(Soft)28(w.)-334(v)28(ol.)-333(14,)-334(1{17,)-333(1988.)]TJ +/F8 9.9626 Tf 20.922 0 Td [(.)]TJ 0 g 0 G - -15.497 -18.666 Td [([6])]TJ +/F27 9.9626 Tf -322.464 -19.926 Td [(desc)]TJ +ET +q +1 0 0 1 172.619 502.634 cm +[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S +Q +BT +/F27 9.9626 Tf 176.057 502.434 Td [(a)]TJ 0 g 0 G - [-500(Dongarra,)-444(J.,)-444(DuCroz,)-444(J.,)-445(Hammarling,)-444(S.)-422(and)-422(Du\013,)-444(I.,)-444(A)-422(Set)-422(of)-422(lev)28(el)-422(3)]TJ 15.497 -11.955 Td [(Basic)-357(Linear)-357(Algebra)-357(Subpr)1(ogram)-1(s,)-362(A)27(CM)-356(T)83(rans.)-357(Math.)-357(Soft)28(w.)-357(v)28(ol.)-357(16,)-362(1{)]TJ 0 -11.955 Td [(17,)-333(1990.)]TJ +/F8 9.9626 Tf 10.55 0 Td [(the)-333(problem)-334(comm)28(unication)-333(descriptor.)-445(Scop)-27(e:)]TJ/F27 9.9626 Tf 208.247 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -219.243 -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(comm)28(unication)-333(data)-334(structure)]TJ +0 0 1 rg 0 0 1 RG +/F30 9.9626 Tf 201.08 0 Td [(psb)]TJ +ET +q +1 0 0 1 393.01 466.768 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +Q +BT +/F30 9.9626 Tf 396.148 466.569 Td [(desc)]TJ +ET +q +1 0 0 1 417.697 466.768 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +Q +BT +/F30 9.9626 Tf 420.835 466.569 Td [(type)]TJ 0 g 0 G - -15.497 -18.666 Td [([7])]TJ +/F8 9.9626 Tf 20.922 0 Td [(.)]TJ 0 g 0 G - [-500(J.)-265(J.)-266(Dongarra)-266(and)-265(R.)-266(C.)-265(Whaley)83(,)]TJ/F17 9.9626 Tf 162.063 0 Td [(A)-295(User's)-296(Guide)-295(to)-296(the)-295(BLA)25(CS)-295(v.)-295(1.1)]TJ/F8 9.9626 Tf 156.589 0 Td [(,)-279(La-)]TJ -303.155 -11.956 Td [(pac)28(k)-291(W)84(orking)-291(Note)-290(94,)-299(T)83(ec)28(h.)-290(Rep.)-291(UT-CS-95-281,)-299(Univ)28(ersit)28(y)-290(of)-291(T)84(ennesse)-1(e,)]TJ 0 -11.955 Td [(Marc)28(h)-334(1995)-333(\050up)-28(dated)-333(Ma)28(y)-333(1997\051.)]TJ +/F27 9.9626 Tf -291.052 -19.925 Td [(trans)]TJ 0 g 0 G - -15.497 -18.666 Td [([8])]TJ +/F8 9.9626 Tf 30.609 0 Td [(Scop)-28(e:)]TJ -5.702 -11.956 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.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(a)-334(c)28(haracter.)]TJ 0 g 0 G - [-500(I.)-488(Du\013,)-527(M.)-488(Marrone,)-526(G.)-488(Radicati)-488(and)-488(C.)-488(Vittoli,)]TJ/F17 9.9626 Tf 244.569 0 Td [(L)51(evel)-500(3)-500(Basic)-500(Line)51(ar)]TJ -229.072 -11.955 Td [(A)26(lgebr)51(a)-463(Subpr)52(o)51(gr)51(ams)-463(f)1(or)-463(Sp)51(arse)-462(Matric)51(es:)-669(a)-462(User)-462(L)51(evel)-463(Interfac)52(e)]TJ/F8 9.9626 Tf 292.206 0 Td [(,)-475(A)27(CM)]TJ -292.206 -11.955 Td [(T)83(ransactions)-333(on)-333(Mathematical)-334(Soft)28(w)28(are,)-333(23\0503\051,)-334(pp.)-333(379{401,)-333(1997.)]TJ +/F27 9.9626 Tf -24.907 -19.925 Td [(w)32(ork)]TJ 0 g 0 G - -15.497 -18.666 Td [([9])]TJ +/F8 9.9626 Tf 29.431 0 Td [(an)-333(optional)-334(w)28(ork)-333(space)-333(Scop)-28(e:)]TJ/F27 9.9626 Tf 135.963 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -140.487 -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.956 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)-333(as:)-444(a)-334(double)-333(precision)-333(arra)27(y)84(.)]TJ 0 g 0 G - [-500(I.)-358(Du\013,)-365(M.)-359(Heroux)-358(and)-359(R.)-358(P)27(ozo,)]TJ/F17 9.9626 Tf 162.007 0 Td [(A)26(n)-381(Overview)-381(of)-381(the)-381(Sp)51(arse)-381(Basic)-381(Line)51(ar)]TJ -146.51 -11.956 Td [(A)26(lgebr)51(a)-348(S)-1(u)1(bpr)51(o)51(gr)51(ams:)-455(the)-348(New)-349(Standar)51(d)-348(fr)51(om)-348(the)-348(BLAS)-348(T)76(e)51(chnic)52(al)-349(F)77(orum)]TJ/F8 9.9626 Tf 320.465 0 Td [(,)]TJ -320.465 -11.955 Td [(A)28(CM)-334(T)84(ransactions)-334(on)-333(Mathematical)-333(Soft)28(w)27(are,)-333(28\0502\051,)-333(pp.)-333(23)-1(9{267,)-333(2002.)]TJ +/F27 9.9626 Tf -24.907 -21.918 Td [(On)-383(Return)]TJ 0 g 0 G - -20.479 -18.666 Td [([10])]TJ 0 g 0 G - [-500(S.)-451(Filipp)-28(one)-451(and)-451(M.)-451(Cola)-56(janni,)]TJ/F17 9.9626 Tf 165.708 0 Td [(PSBLAS:)-466(A)-466(Libr)51(ary)-466(for)-467(Par)51(al)-51(lel)-466(Line)51(ar)]TJ -145.229 -11.955 Td [(A)26(lgebr)51(a)-420(Computation)-420(on)-420(Sp)51(arse)-420(Matric)51(es)]TJ/F8 9.9626 Tf 181.375 0 Td [(,)-661(A)27(CM)-400(T)83(ransactions)-401(on)-401(Mathe-)]TJ -181.375 -11.955 Td [(matical)-333(Soft)27(w)28(are,)-333(26\0504\051,)-333(pp.)-334(527{550,)-333(2000.)]TJ + 0 -19.925 Td [(y)]TJ 0 g 0 G - -20.479 -18.666 Td [([11])]TJ +/F8 9.9626 Tf 11.028 0 Td [(the)-333(destination)-334(v)28(ector.)-444(Scop)-28(e:)]TJ/F27 9.9626 Tf 134.856 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -120.977 -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 [(inout)]TJ/F8 9.9626 Tf 26.097 0 Td [(.)]TJ -59.582 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-444(a)-334(rank)-333(one)-333(arra)27(y)-333(or)-333(an)-334(ob)-55(ject)-333(of)-334(t)28(yp)-28(e)]TJ +0 0 1 rg 0 0 1 RG +/F30 9.9626 Tf 223.495 0 Td [(psb)]TJ +ET +q +1 0 0 1 415.426 277.478 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +Q +BT +/F30 9.9626 Tf 418.564 277.279 Td [(T)]TJ +ET +q +1 0 0 1 424.422 277.478 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +Q +BT +/F30 9.9626 Tf 427.56 277.279 Td [(vect)]TJ +ET +q +1 0 0 1 449.109 277.478 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +Q +BT +/F30 9.9626 Tf 452.247 277.279 Td [(type)]TJ 0 g 0 G - [-500(S.)-425(Filipp)-27(one)-425(and)-425(A.)-425(Buttari,)]TJ/F17 9.9626 Tf 152.315 0 Td [(Obje)51(ct-Oriente)51(d)-442(T)77(e)51(chniques)-442(for)-441(Sp)51(arse)-442(Ma-)]TJ -131.836 -11.955 Td [(trix)-407(Computations)-406(in)-407(F)77(ortr)51(an)-407(2003)]TJ/F8 9.9626 Tf 153.485 0 Td [(,)-615(A)28(CM)-387(T)84(ransactions)-387(on)-386(Mathematical)]TJ -153.485 -11.956 Td [(Soft)28(w)28(are,)-334(38\0504\051,)-333(2012.)]TJ +/F8 9.9626 Tf 20.922 0 Td [(.)]TJ 0 g 0 G - -20.479 -18.666 Td [([12])]TJ +/F27 9.9626 Tf -322.464 -19.926 Td [(info)]TJ 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 +/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 - 143.905 -29.888 Td [(147)]TJ + 139.477 -119.095 Td [(144)]TJ 0 g 0 G ET endstream endobj -1849 0 obj +1882 0 obj << -/Length 3124 +/Length 2992 >> stream 0 g 0 G 0 g 0 G -0 g 0 G BT -/F8 9.9626 Tf 150.705 706.129 Td [([13])]TJ +/F16 11.9552 Tf 99.895 706.129 Td [(10.4)-1125(descr)-555(|)-556(Prin)32(ts)-556(a)-555(description)-555(of)-556(curren)32(t)-556(precondi-)]TJ 37.36 -13.948 Td [(tioner)]TJ 0 g 0 G - [-500(Gamma,)-494(E.,)-987(Helm,)-493(R.,)-987(Johnson,)-494(R.,)-987(and)-923(Vlissides,)-494(J.)-461(1995.)]TJ/F17 9.9626 Tf 314.294 0 Td [(Design)]TJ -293.815 -11.955 Td [(Patterns:)-427(Elements)-293(of)-292(R)51(eusable)-293(Obje)51(ct-Oriente)51(d)-292(Softwar)51(e)]TJ/F8 9.9626 Tf 246.617 0 Td [(.)-262(Addison-W)83(esley)83(.)]TJ 0 g 0 G - -267.096 -19.926 Td [([14])]TJ +/F30 9.9626 Tf -37.36 -18.389 Td [(call)-525(prec%descr\050\051)]TJ 0 -11.955 Td [(call)-525(prec%descr\050iout,)-525(root\051)]TJ 0 g 0 G - [-500(Karypis,)-561(G.)-515(and)-515(Kumar,)-561(V.,)]TJ/F17 9.9626 Tf 157.276 0 Td [(METIS:)-525(Unstructur)51(e)51(d)-525(Gr)51(aph)-525(Partitioning)]TJ -136.797 -11.955 Td [(and)-413(Sp)51(arse)-413(Matrix)-414(Or)51(deri)1(ng)-414(System)]TJ/F8 9.9626 Tf 158.597 0 Td [(.)-394(Minneap)-27(olis,)-409(MN)-394(55455:)-565(Univ)28(ersit)28(y)]TJ -158.597 -11.955 Td [(of)-420(Minnesota,)-441(Departmen)27(t)-420(of)-419(Computer)-420(Science,)-442(1995.)-420(In)28(ternet)-420(Address:)]TJ/F30 9.9626 Tf 0 -11.955 Td [(http://www.cs.umn.edu/~karypis)]TJ/F8 9.9626 Tf 156.91 0 Td [(.)]TJ +/F27 9.9626 Tf 0 -21.918 Td [(T)32(yp)-32(e:)]TJ 0 g 0 G - -177.389 -19.925 Td [([15])]TJ +/F8 9.9626 Tf 33.797 0 Td [(Async)28(hronous.)]TJ 0 g 0 G - [-500(La)28(wson,)-339(C.,)-339(Hanson,)-339(R.,)-339(Kincaid,)-339(D.)-338(and)-338(Krogh,)-339(F.,)-339(Basic)-338(Linear)-338(Algebra)]TJ 20.479 -11.956 Td [(Subprograms)-337(for)-336(Fortran)-337(usage,)-338(A)28(CM)-337(T)84(rans.)-337(Math.)-337(Soft)28(w.)-337(v)28(ol.)-337(5,)-337(38{329,)]TJ 0 -11.955 Td [(1979.)]TJ +/F27 9.9626 Tf -33.797 -19.925 Td [(On)-383(En)32(try)]TJ 0 g 0 G - -20.479 -19.925 Td [([16])]TJ 0 g 0 G - [-500(Mac)28(hiels,)-372(L.)-364(and)-364(Deville,)-372(M.)]TJ/F17 9.9626 Tf 148.97 0 Td [(F)77(ortr)51(an)-386(90:)-517(A)26(n)-387(entry)-386(to)-386(obje)51(ct-oriente)51(d)-386(pr)51(o-)]TJ -128.491 -11.955 Td [(gr)51(amming)-492(for)-492(the)-492(soluti)1(on)-492(of)-492(p)51(artial)-492(di\013er)51(ential)-492(e)51(quations.)]TJ/F8 9.9626 Tf 267.456 0 Td [(A)28(CM)-479(T)83(rans.)]TJ -267.456 -11.955 Td [(Math.)-333(Soft)28(w.)-334(v)28(ol.)-333(23,)-334(32{49.)]TJ + 0 -19.926 Td [(prec)]TJ 0 g 0 G - -20.479 -19.926 Td [([17])]TJ +/F8 9.9626 Tf 26.408 0 Td [(the)-333(preconditioner.)-445(Scop)-27(e:)]TJ/F27 9.9626 Tf 119.331 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -120.832 -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 [(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(preconditioner)-333(data)-333(structure)]TJ +0 0 1 rg 0 0 1 RG +/F30 9.9626 Tf 197.537 0 Td [(psb)]TJ +ET +q +1 0 0 1 338.658 564.402 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +Q +BT +/F30 9.9626 Tf 341.796 564.203 Td [(prec)]TJ +ET +q +1 0 0 1 363.345 564.402 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +Q +BT +/F30 9.9626 Tf 366.483 564.203 Td [(type)]TJ 0 g 0 G - [-500(Metcalf,)-434(M.,)-434(Reid,)-433(J.)-414(and)-414(Cohen,)-434(M.)]TJ/F17 9.9626 Tf 189.335 0 Td [(F)77(ortr)51(an)-432(95/2003)-432(explaine)51(d.)]TJ/F8 9.9626 Tf 123.907 0 Td [(Oxford)]TJ -292.763 -11.955 Td [(Univ)28(ersit)28(y)-334(Press,)-333(2004.)]TJ +/F8 9.9626 Tf 20.922 0 Td [(.)]TJ 0 g 0 G - -20.479 -19.925 Td [([18])]TJ +/F27 9.9626 Tf -287.51 -19.925 Td [(iout)]TJ 0 g 0 G - [-500(Rouson,)-374(D.W.I.,)-374(Xia,)-374(J.,)-374(Xu,)-373(X.:)-510(Scien)28(ti\014c)-366(Soft)28(w)28(are)-366(Design:)-510(Th)1(e)-366(Ob)-56(ject-)]TJ 20.479 -11.955 Td [(Orien)28(ted)-333(W)83(a)28(y.)-334(Cam)28(bridge)-333(Univ)28(ersit)27(y)-333(Press)-333(\0502011\051)]TJ +/F8 9.9626 Tf 24.713 0 Td [(output)-333(unit.)-445(S)1(c)-1(op)-27(e:)]TJ/F27 9.9626 Tf 89.941 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.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)-333(n)27(um)28(b)-28(er.)-444(Default:)-444(default)-334(outp)1(ut)-334(unit.)]TJ 0 g 0 G - -20.479 -19.926 Td [([19])]TJ +/F27 9.9626 Tf -24.907 -19.925 Td [(ro)-32(ot)]TJ 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 +/F8 9.9626 Tf 25.931 0 Td [(Pro)-28(cess)-333(from)-334(wh)1(ic)27(h)-333(to)-333(prin)28(t)-334(Scop)-28(e:)]TJ/F27 9.9626 Tf 157.244 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -158.268 -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.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)-478(as:)-733(an)-478(in)28(teger)-478(n)28(um)28(b)-28(er)-478(b)-28(et)28(w)28(een)-478(0)-478(and)]TJ/F11 9.9626 Tf 220.072 0 Td [(np)]TJ/F14 9.9626 Tf 14.166 0 Td [(\000)]TJ/F8 9.9626 Tf 10.923 0 Td [(1,)-514(in)-478(whic)28(h)-478(case)]TJ -245.161 -11.955 Td [(the)-410(sp)-28(eci\014ed)-410(pro)-28(cess)-410(will)-411(pr)1(in)27(t)-410(the)-410(description,)-429(or)]TJ/F14 9.9626 Tf 225 0 Td [(\000)]TJ/F8 9.9626 Tf 7.748 0 Td [(1,)-429(in)-411(whic)28(h)-410(case)-410(all)]TJ -232.748 -11.955 Td [(pro)-28(cesses)-333(will)-334(prin)28(t.)-444(Default:)-444(0.)]TJ 0 g 0 G - 143.905 -352.677 Td [(148)]TJ + 139.477 -338.273 Td [(145)]TJ 0 g 0 G ET endstream endobj -1769 0 obj +1783 0 obj << /Type /ObjStm /N 100 -/First 971 -/Length 11783 +/First 968 +/Length 10034 >> stream -1768 0 1764 58 1775 215 1770 381 1771 524 1772 668 1773 815 1777 962 525 1021 1774 1079 -1779 1185 1781 1303 1778 1361 1787 1454 1782 1620 1783 1766 1784 1909 1785 2056 1789 2200 529 2259 -1786 2317 1792 2423 1790 2562 1794 2708 533 2766 1791 2823 1797 2955 1799 3073 537 3132 1796 3190 -1803 3296 1800 3444 1801 3590 1805 3737 541 3795 1802 3852 1807 3958 1809 4076 545 4135 1806 4193 -1814 4286 1810 4434 1811 4583 1816 4728 549 4786 1817 4843 1818 4901 1819 4959 1820 5017 1813 5075 -1826 5272 1812 5438 1822 5584 1823 5726 1824 5870 1828 6015 1825 6074 1831 6193 1829 6332 1833 6476 -1830 6534 1836 6640 1838 6758 1835 6817 1840 6884 1842 7002 1843 7060 739 7118 1844 7175 790 7232 -789 7289 745 7346 746 7403 762 7460 742 7517 743 7574 1845 7631 738 7689 1846 7746 1839 7804 -1848 7897 1850 8015 902 8074 777 8132 744 8190 741 8248 737 8306 740 8364 1851 8422 1847 8481 -1852 8574 1853 8619 1854 8758 1855 8945 1856 9439 1857 9768 1858 10111 1859 10240 1860 10261 1861 10767 -% 1768 0 obj +1780 0 497 58 1781 115 1782 173 1777 231 1785 324 1787 442 501 501 1788 559 1789 618 +1784 677 1791 770 1793 888 505 946 1794 1003 1795 1061 1790 1119 1797 1212 1799 1330 509 1389 +1800 1447 1801 1506 1796 1565 1803 1671 1805 1789 513 1847 1802 1904 1809 1997 1807 2136 1811 2280 +517 2339 1812 2397 1813 2456 1808 2515 1816 2621 1814 2760 1818 2904 521 2962 1819 3019 1820 3077 +1815 3135 1823 3241 1821 3380 1825 3524 525 3583 1826 3641 1827 3700 1822 3759 1829 3865 1831 3983 +529 4041 1832 4098 1833 4156 1828 4214 1836 4320 1834 4459 1838 4602 533 4661 1839 4719 1840 4778 +1835 4837 1842 4943 1844 5061 537 5119 1845 5176 1846 5234 1841 5292 1849 5398 1851 5516 541 5575 +1848 5633 1855 5739 1852 5887 1853 6034 1857 6184 545 6242 1858 6299 1854 6357 1864 6514 1859 6680 +1860 6823 1861 6967 1862 7114 1866 7261 549 7320 1863 7378 1868 7484 1870 7602 1867 7660 1876 7753 +1871 7919 1872 8065 1873 8208 1874 8355 1878 8499 553 8558 1875 8616 1881 8722 1879 8861 1883 9008 +% 1780 0 obj +<< +/D [1778 0 R /XYZ 98.895 753.953 null] +>> +% 497 0 obj << -/D [1765 0 R /XYZ 115.138 129.79 null] +/D [1778 0 R /XYZ 99.895 716.092 null] >> -% 1764 0 obj +% 1781 0 obj +<< +/D [1778 0 R /XYZ 99.895 679.769 null] +>> +% 1782 0 obj +<< +/D [1778 0 R /XYZ 99.895 679.769 null] +>> +% 1777 0 obj << -/Font << /F16 558 0 R /F30 769 0 R /F27 560 0 R /F8 561 0 R /F11 755 0 R /F7 770 0 R /F32 773 0 R /F31 775 0 R >> +/Font << /F16 582 0 R /F27 584 0 R /F8 585 0 R >> /ProcSet [ /PDF /Text ] >> -% 1775 0 obj +% 1785 0 obj << /Type /Page -/Contents 1776 0 R -/Resources 1774 0 R +/Contents 1786 0 R +/Resources 1784 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1757 0 R -/Annots [ 1770 0 R 1771 0 R 1772 0 R 1773 0 R ] +/Parent 1744 0 R >> -% 1770 0 obj +% 1787 0 obj +<< +/D [1785 0 R /XYZ 149.705 753.953 null] +>> +% 501 0 obj +<< +/D [1785 0 R /XYZ 150.705 716.092 null] +>> +% 1788 0 obj +<< +/D [1785 0 R /XYZ 150.705 679.769 null] +>> +% 1789 0 obj +<< +/D [1785 0 R /XYZ 150.705 679.769 null] +>> +% 1784 0 obj +<< +/Font << /F16 582 0 R /F27 584 0 R /F8 585 0 R >> +/ProcSet [ /PDF /Text ] +>> +% 1791 0 obj +<< +/Type /Page +/Contents 1792 0 R +/Resources 1790 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1744 0 R +>> +% 1793 0 obj +<< +/D [1791 0 R /XYZ 98.895 753.953 null] +>> +% 505 0 obj +<< +/D [1791 0 R /XYZ 99.895 716.092 null] +>> +% 1794 0 obj +<< +/D [1791 0 R /XYZ 99.895 677.445 null] +>> +% 1795 0 obj +<< +/D [1791 0 R /XYZ 99.895 679.769 null] +>> +% 1790 0 obj +<< +/Font << /F16 582 0 R /F27 584 0 R /F8 585 0 R >> +/ProcSet [ /PDF /Text ] +>> +% 1797 0 obj +<< +/Type /Page +/Contents 1798 0 R +/Resources 1796 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1744 0 R +>> +% 1799 0 obj +<< +/D [1797 0 R /XYZ 149.705 753.953 null] +>> +% 509 0 obj +<< +/D [1797 0 R /XYZ 150.705 716.092 null] +>> +% 1800 0 obj +<< +/D [1797 0 R /XYZ 150.705 677.445 null] +>> +% 1801 0 obj +<< +/D [1797 0 R /XYZ 150.705 679.769 null] +>> +% 1796 0 obj +<< +/Font << /F16 582 0 R /F27 584 0 R /F8 585 0 R /F30 811 0 R >> +/ProcSet [ /PDF /Text ] +>> +% 1803 0 obj +<< +/Type /Page +/Contents 1804 0 R +/Resources 1802 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1806 0 R +>> +% 1805 0 obj +<< +/D [1803 0 R /XYZ 98.895 753.953 null] +>> +% 513 0 obj +<< +/D [1803 0 R /XYZ 99.895 716.092 null] +>> +% 1802 0 obj +<< +/Font << /F16 582 0 R /F8 585 0 R /F30 811 0 R >> +/ProcSet [ /PDF /Text ] +>> +% 1809 0 obj +<< +/Type /Page +/Contents 1810 0 R +/Resources 1808 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1806 0 R +/Annots [ 1807 0 R ] +>> +% 1807 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [368.666 577.4 446.184 588.524] +/Rect [345.53 449.411 423.049 460.536] /A << /S /GoTo /D (spdata) >> >> -% 1771 0 obj +% 1811 0 obj << -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [447.73 506.7 514.788 517.825] -/A << /S /GoTo /D (precdata) >> +/D [1809 0 R /XYZ 149.705 753.953 null] >> -% 1772 0 obj +% 517 0 obj << -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [422.298 436.001 489.356 447.126] -/A << /S /GoTo /D (descdata) >> +/D [1809 0 R /XYZ 150.705 716.092 null] >> -% 1773 0 obj +% 1812 0 obj +<< +/D [1809 0 R /XYZ 150.705 677.445 null] +>> +% 1813 0 obj +<< +/D [1809 0 R /XYZ 150.705 679.769 null] +>> +% 1808 0 obj +<< +/Font << /F16 582 0 R /F27 584 0 R /F8 585 0 R /F30 811 0 R >> +/ProcSet [ /PDF /Text ] +>> +% 1816 0 obj +<< +/Type /Page +/Contents 1817 0 R +/Resources 1815 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1806 0 R +/Annots [ 1814 0 R ] +>> +% 1814 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [369.385 129.071 436.443 140.196] -/A << /S /GoTo /D (precdata) >> ->> -% 1777 0 obj -<< -/D [1775 0 R /XYZ 149.705 753.953 null] +/Rect [294.721 582.91 372.239 594.035] +/A << /S /GoTo /D (spdata) >> >> -% 525 0 obj +% 1818 0 obj << -/D [1775 0 R /XYZ 150.705 720.077 null] +/D [1816 0 R /XYZ 98.895 753.953 null] >> -% 1774 0 obj +% 521 0 obj << -/Font << /F16 558 0 R /F30 769 0 R /F27 560 0 R /F8 561 0 R >> -/ProcSet [ /PDF /Text ] +/D [1816 0 R /XYZ 99.895 716.092 null] >> -% 1779 0 obj +% 1819 0 obj << -/Type /Page -/Contents 1780 0 R -/Resources 1778 0 R -/MediaBox [0 0 595.276 841.89] -/Parent 1757 0 R +/D [1816 0 R /XYZ 99.895 677.445 null] >> -% 1781 0 obj +% 1820 0 obj << -/D [1779 0 R /XYZ 98.895 753.953 null] +/D [1816 0 R /XYZ 99.895 679.769 null] >> -% 1778 0 obj +% 1815 0 obj << -/Font << /F27 560 0 R /F8 561 0 R /F30 769 0 R >> +/Font << /F16 582 0 R /F27 584 0 R /F8 585 0 R /F30 811 0 R >> /ProcSet [ /PDF /Text ] >> -% 1787 0 obj +% 1823 0 obj << /Type /Page -/Contents 1788 0 R -/Resources 1786 0 R +/Contents 1824 0 R +/Resources 1822 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1757 0 R -/Annots [ 1782 0 R 1783 0 R 1784 0 R 1785 0 R ] ->> -% 1782 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [372.153 574.94 439.211 586.065] -/A << /S /GoTo /D (precdata) >> +/Parent 1806 0 R +/Annots [ 1821 0 R ] >> -% 1783 0 obj +% 1821 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [398.111 519.15 474.165 530.274] -/A << /S /GoTo /D (vdata) >> +/Rect [345.53 449.411 423.049 460.536] +/A << /S /GoTo /D (spdata) >> >> -% 1784 0 obj +% 1825 0 obj << -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [375.695 463.359 442.753 474.484] -/A << /S /GoTo /D (descdata) >> +/D [1823 0 R /XYZ 149.705 753.953 null] >> -% 1785 0 obj +% 525 0 obj << -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [398.111 274.069 474.165 285.194] -/A << /S /GoTo /D (vdata) >> +/D [1823 0 R /XYZ 150.705 716.092 null] >> -% 1789 0 obj +% 1826 0 obj << -/D [1787 0 R /XYZ 149.705 753.953 null] +/D [1823 0 R /XYZ 150.705 679.769 null] >> -% 529 0 obj +% 1827 0 obj << -/D [1787 0 R /XYZ 150.705 720.077 null] +/D [1823 0 R /XYZ 150.705 679.769 null] >> -% 1786 0 obj +% 1822 0 obj << -/Font << /F16 558 0 R /F30 769 0 R /F27 560 0 R /F8 561 0 R >> +/Font << /F16 582 0 R /F27 584 0 R /F8 585 0 R /F30 811 0 R >> /ProcSet [ /PDF /Text ] >> -% 1792 0 obj +% 1829 0 obj << /Type /Page -/Contents 1793 0 R -/Resources 1791 0 R +/Contents 1830 0 R +/Resources 1828 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1795 0 R -/Annots [ 1790 0 R ] +/Parent 1806 0 R >> -% 1790 0 obj +% 1831 0 obj << -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [321.343 574.94 388.401 586.065] -/A << /S /GoTo /D (precdata) >> +/D [1829 0 R /XYZ 98.895 753.953 null] >> -% 1794 0 obj +% 529 0 obj << -/D [1792 0 R /XYZ 98.895 753.953 null] +/D [1829 0 R /XYZ 99.895 716.092 null] >> -% 533 0 obj +% 1832 0 obj << -/D [1792 0 R /XYZ 99.895 720.077 null] +/D [1829 0 R /XYZ 99.895 679.769 null] >> -% 1791 0 obj +% 1833 0 obj +<< +/D [1829 0 R /XYZ 99.895 679.769 null] +>> +% 1828 0 obj << -/Font << /F16 558 0 R /F30 769 0 R /F27 560 0 R /F8 561 0 R /F11 755 0 R /F14 772 0 R >> +/Font << /F16 582 0 R /F27 584 0 R /F8 585 0 R /F30 811 0 R >> /ProcSet [ /PDF /Text ] >> -% 1797 0 obj +% 1836 0 obj << /Type /Page -/Contents 1798 0 R -/Resources 1796 0 R +/Contents 1837 0 R +/Resources 1835 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1795 0 R +/Parent 1806 0 R +/Annots [ 1834 0 R ] >> -% 1799 0 obj +% 1834 0 obj << -/D [1797 0 R /XYZ 149.705 753.953 null] +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [345.53 582.91 423.049 594.035] +/A << /S /GoTo /D (spdata) >> >> -% 537 0 obj +% 1838 0 obj << -/D [1797 0 R /XYZ 150.705 720.077 null] +/D [1836 0 R /XYZ 149.705 753.953 null] >> -% 1796 0 obj +% 533 0 obj << -/Font << /F16 558 0 R /F30 769 0 R /F27 560 0 R /F8 561 0 R >> +/D [1836 0 R /XYZ 150.705 716.092 null] +>> +% 1839 0 obj +<< +/D [1836 0 R /XYZ 150.705 679.769 null] +>> +% 1840 0 obj +<< +/D [1836 0 R /XYZ 150.705 679.769 null] +>> +% 1835 0 obj +<< +/Font << /F16 582 0 R /F27 584 0 R /F8 585 0 R /F30 811 0 R >> /ProcSet [ /PDF /Text ] >> -% 1803 0 obj +% 1842 0 obj << /Type /Page -/Contents 1804 0 R -/Resources 1802 0 R +/Contents 1843 0 R +/Resources 1841 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1795 0 R -/Annots [ 1800 0 R 1801 0 R ] +/Parent 1847 0 R >> -% 1800 0 obj +% 1844 0 obj << -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [321.343 574.94 388.401 586.065] -/A << /S /GoTo /D (precdata) >> +/D [1842 0 R /XYZ 98.895 753.953 null] >> -% 1801 0 obj +% 537 0 obj << -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [321.343 499.224 388.401 510.349] -/A << /S /GoTo /D (precdata) >> +/D [1842 0 R /XYZ 99.895 716.092 null] >> -% 1805 0 obj +% 1845 0 obj << -/D [1803 0 R /XYZ 98.895 753.953 null] +/D [1842 0 R /XYZ 99.895 679.769 null] >> -% 541 0 obj +% 1846 0 obj << -/D [1803 0 R /XYZ 99.895 720.077 null] +/D [1842 0 R /XYZ 99.895 679.769 null] >> -% 1802 0 obj +% 1841 0 obj << -/Font << /F16 558 0 R /F30 769 0 R /F27 560 0 R /F8 561 0 R >> +/Font << /F16 582 0 R /F27 584 0 R /F8 585 0 R /F30 811 0 R >> /ProcSet [ /PDF /Text ] >> -% 1807 0 obj +% 1849 0 obj << /Type /Page -/Contents 1808 0 R -/Resources 1806 0 R +/Contents 1850 0 R +/Resources 1848 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1795 0 R +/Parent 1847 0 R >> -% 1809 0 obj +% 1851 0 obj << -/D [1807 0 R /XYZ 149.705 753.953 null] +/D [1849 0 R /XYZ 149.705 753.953 null] >> -% 545 0 obj +% 541 0 obj << -/D [1807 0 R /XYZ 150.705 716.092 null] +/D [1849 0 R /XYZ 150.705 716.092 null] >> -% 1806 0 obj +% 1848 0 obj << -/Font << /F16 558 0 R /F8 561 0 R /F30 769 0 R >> +/Font << /F16 582 0 R /F8 585 0 R /F14 814 0 R /F30 811 0 R >> /ProcSet [ /PDF /Text ] >> -% 1814 0 obj +% 1855 0 obj << /Type /Page -/Contents 1815 0 R -/Resources 1813 0 R +/Contents 1856 0 R +/Resources 1854 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1795 0 R -/Annots [ 1810 0 R 1811 0 R ] +/Parent 1847 0 R +/Annots [ 1852 0 R 1853 0 R ] >> -% 1810 0 obj +% 1852 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [333.769 276.229 340.23 288.268] -/A << /S /GoTo /D (Hfootnote.5) >> +/Rect [321.343 443.433 388.401 454.558] +/A << /S /GoTo /D (precdata) >> >> -% 1811 0 obj +% 1853 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [294.721 134.549 372.239 145.674] -/A << /S /GoTo /D (spdata) >> ->> -% 1816 0 obj -<< -/D [1814 0 R /XYZ 98.895 753.953 null] ->> -% 549 0 obj -<< -/D [1814 0 R /XYZ 99.895 720.077 null] ->> -% 1817 0 obj -<< -/D [1814 0 R /XYZ 99.895 446.608 null] +/Rect [168.831 354.046 175.293 366.086] +/A << /S /GoTo /D (Hfootnote.4) >> >> -% 1818 0 obj +% 1857 0 obj << -/D [1814 0 R /XYZ 99.895 446.608 null] +/D [1855 0 R /XYZ 98.895 753.953 null] >> -% 1819 0 obj +% 545 0 obj << -/D [1814 0 R /XYZ 99.895 434.653 null] +/D [1855 0 R /XYZ 99.895 716.092 null] >> -% 1820 0 obj +% 1858 0 obj << -/D [1814 0 R /XYZ 115.138 129.79 null] +/D [1855 0 R /XYZ 115.138 129.79 null] >> -% 1813 0 obj +% 1854 0 obj << -/Font << /F16 558 0 R /F8 561 0 R /F27 560 0 R /F11 755 0 R /F14 772 0 R /F10 771 0 R /F7 770 0 R /F30 769 0 R /F32 773 0 R /F31 775 0 R /F33 1821 0 R >> +/Font << /F16 582 0 R /F30 811 0 R /F27 584 0 R /F8 585 0 R /F11 797 0 R /F7 812 0 R /F32 815 0 R /F31 817 0 R >> /ProcSet [ /PDF /Text ] >> -% 1826 0 obj +% 1864 0 obj << /Type /Page -/Contents 1827 0 R -/Resources 1825 0 R +/Contents 1865 0 R +/Resources 1863 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1795 0 R -/Annots [ 1812 0 R 1822 0 R 1823 0 R 1824 0 R ] +/Parent 1847 0 R +/Annots [ 1859 0 R 1860 0 R 1861 0 R 1862 0 R ] >> -% 1812 0 obj +% 1859 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [345.53 655.098 412.588 666.223] -/A << /S /GoTo /D (precdata) >> +/Rect [368.666 577.4 446.184 588.524] +/A << /S /GoTo /D (spdata) >> >> -% 1822 0 obj +% 1860 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [398.111 585.075 474.165 596.2] -/A << /S /GoTo /D (vdata) >> +/Rect [447.73 506.7 514.788 517.825] +/A << /S /GoTo /D (precdata) >> >> -% 1823 0 obj +% 1861 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [398.111 515.052 474.165 526.177] -/A << /S /GoTo /D (vdata) >> +/Rect [422.298 436.001 489.356 447.126] +/A << /S /GoTo /D (descdata) >> >> -% 1824 0 obj +% 1862 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [345.53 375.006 412.588 386.13] -/A << /S /GoTo /D (descdata) >> ->> -% 1828 0 obj -<< -/D [1826 0 R /XYZ 149.705 753.953 null] ->> -% 1825 0 obj -<< -/Font << /F27 560 0 R /F8 561 0 R /F30 769 0 R /F11 755 0 R /F14 772 0 R >> -/ProcSet [ /PDF /Text ] ->> -% 1831 0 obj -<< -/Type /Page -/Contents 1832 0 R -/Resources 1830 0 R -/MediaBox [0 0 595.276 841.89] -/Parent 1834 0 R -/Annots [ 1829 0 R ] +/Rect [369.385 129.071 436.443 140.196] +/A << /S /GoTo /D (precdata) >> >> -% 1829 0 obj +% 1866 0 obj << -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [347.301 555.472 423.355 566.597] -/A << /S /GoTo /D (vdata) >> +/D [1864 0 R /XYZ 149.705 753.953 null] >> -% 1833 0 obj +% 549 0 obj << -/D [1831 0 R /XYZ 98.895 753.953 null] +/D [1864 0 R /XYZ 150.705 716.092 null] >> -% 1830 0 obj +% 1863 0 obj << -/Font << /F27 560 0 R /F8 561 0 R /F30 769 0 R /F11 755 0 R >> +/Font << /F16 582 0 R /F30 811 0 R /F27 584 0 R /F8 585 0 R >> /ProcSet [ /PDF /Text ] >> -% 1836 0 obj +% 1868 0 obj << /Type /Page -/Contents 1837 0 R -/Resources 1835 0 R +/Contents 1869 0 R +/Resources 1867 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1834 0 R +/Parent 1847 0 R >> -% 1838 0 obj +% 1870 0 obj << -/D [1836 0 R /XYZ 149.705 753.953 null] +/D [1868 0 R /XYZ 98.895 753.953 null] >> -% 1835 0 obj +% 1867 0 obj << -/Font << /F8 561 0 R >> +/Font << /F27 584 0 R /F8 585 0 R /F30 811 0 R >> /ProcSet [ /PDF /Text ] >> -% 1840 0 obj +% 1876 0 obj << /Type /Page -/Contents 1841 0 R -/Resources 1839 0 R +/Contents 1877 0 R +/Resources 1875 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1834 0 R ->> -% 1842 0 obj -<< -/D [1840 0 R /XYZ 98.895 753.953 null] ->> -% 1843 0 obj -<< -/D [1840 0 R /XYZ 99.895 724.062 null] ->> -% 739 0 obj -<< -/D [1840 0 R /XYZ 99.895 699.619 null] ->> -% 1844 0 obj -<< -/D [1840 0 R /XYZ 99.895 643.15 null] ->> -% 790 0 obj -<< -/D [1840 0 R /XYZ 99.895 588.618 null] ->> -% 789 0 obj -<< -/D [1840 0 R /XYZ 99.895 534.087 null] ->> -% 745 0 obj -<< -/D [1840 0 R /XYZ 99.895 479.555 null] ->> -% 746 0 obj -<< -/D [1840 0 R /XYZ 99.895 436.978 null] +/Parent 1847 0 R +/Annots [ 1871 0 R 1872 0 R 1873 0 R 1874 0 R ] >> -% 762 0 obj +% 1871 0 obj << -/D [1840 0 R /XYZ 99.895 394.402 null] +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [372.153 574.94 439.211 586.065] +/A << /S /GoTo /D (precdata) >> >> -% 742 0 obj +% 1872 0 obj << -/D [1840 0 R /XYZ 99.895 351.272 null] +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [398.111 519.15 474.165 530.274] +/A << /S /GoTo /D (vdata) >> >> -% 743 0 obj +% 1873 0 obj << -/D [1840 0 R /XYZ 99.895 308.696 null] +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [375.695 463.359 442.753 474.484] +/A << /S /GoTo /D (descdata) >> >> -% 1845 0 obj +% 1874 0 obj << -/D [1840 0 R /XYZ 99.895 266.119 null] +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [398.111 274.069 474.165 285.194] +/A << /S /GoTo /D (vdata) >> >> -% 738 0 obj +% 1878 0 obj << -/D [1840 0 R /XYZ 99.895 223.543 null] +/D [1876 0 R /XYZ 149.705 753.953 null] >> -% 1846 0 obj +% 553 0 obj << -/D [1840 0 R /XYZ 99.895 180.966 null] +/D [1876 0 R /XYZ 150.705 716.092 null] >> -% 1839 0 obj +% 1875 0 obj << -/Font << /F16 558 0 R /F8 561 0 R /F17 735 0 R >> +/Font << /F16 582 0 R /F30 811 0 R /F27 584 0 R /F8 585 0 R >> /ProcSet [ /PDF /Text ] >> -% 1848 0 obj +% 1881 0 obj << /Type /Page -/Contents 1849 0 R -/Resources 1847 0 R +/Contents 1882 0 R +/Resources 1880 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1834 0 R +/Parent 1884 0 R +/Annots [ 1879 0 R ] >> -% 1850 0 obj +% 1879 0 obj << -/D [1848 0 R /XYZ 149.705 753.953 null] +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [321.343 560.993 388.401 572.118] +/A << /S /GoTo /D (precdata) >> >> -% 902 0 obj +% 1883 0 obj << -/D [1848 0 R /XYZ 150.705 716.092 null] +/D [1881 0 R /XYZ 98.895 753.953 null] >> -% 777 0 obj + +endstream +endobj +1888 0 obj << -/D [1848 0 R /XYZ 150.705 688.251 null] +/Length 998 >> -% 744 0 obj +stream +0 g 0 G +0 g 0 G +BT +/F16 11.9552 Tf 150.705 706.129 Td [(10.5)-1125(clone)-375(|)-375(clone)-375(curren)31(t)-375(preconditioner)]TJ +0 g 0 G +0 g 0 G +/F30 9.9626 Tf 0 -18.389 Td [(call)-1050(prec%clone\050precout,info\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.926 Td [(On)-383(En)32(try)]TJ +0 g 0 G +0 g 0 G + 0 -19.925 Td [(prec)]TJ +0 g 0 G +/F8 9.9626 Tf 26.408 0 Td [(the)-333(preconditioner.)]TJ -1.501 -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 +0 g 0 G +/F27 9.9626 Tf -80.358 -33.873 Td [(On)-383(Return)]TJ +0 g 0 G +0 g 0 G + 0 -19.925 Td [(precout)]TJ +0 g 0 G +/F8 9.9626 Tf 42.957 0 Td [(A)-333(cop)27(y)-333(of)-333(the)-333(input)-334(ob)-55(ject.)]TJ +0 g 0 G +/F27 9.9626 Tf -42.957 -19.926 Td [(info)]TJ +0 g 0 G +/F8 9.9626 Tf 23.758 0 Td [(Return)-333(co)-28(de.)]TJ +0 g 0 G + 140.625 -449.854 Td [(146)]TJ +0 g 0 G +ET + +endstream +endobj +1894 0 obj << -/D [1848 0 R /XYZ 150.705 632.184 null] +/Length 2736 >> -% 741 0 obj +stream +0 g 0 G +0 g 0 G +BT +/F16 11.9552 Tf 99.895 706.129 Td [(10.6)-1125(free)-375(|)-375(F)94(ree)-375(a)-375(preconditioner)]TJ +0 g 0 G +0 g 0 G +/F30 9.9626 Tf 0 -18.389 Td [(call)-525(prec%free\050info\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.926 Td [(On)-383(En)32(try)]TJ +0 g 0 G +0 g 0 G + 0 -19.925 Td [(prec)]TJ +0 g 0 G +/F8 9.9626 Tf 26.408 0 Td [(the)-333(preconditioner.)]TJ -1.501 -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 -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(preconditioner)-333(data)-333(structure)]TJ +0 0 1 rg 0 0 1 RG +/F30 9.9626 Tf 197.537 0 Td [(psb)]TJ +ET +q +1 0 0 1 338.658 578.35 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +Q +BT +/F30 9.9626 Tf 341.796 578.15 Td [(prec)]TJ +ET +q +1 0 0 1 363.345 578.35 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +Q +BT +/F30 9.9626 Tf 366.483 578.15 Td [(type)]TJ +0 g 0 G +/F8 9.9626 Tf 20.922 0 Td [(.)]TJ +0 g 0 G +/F27 9.9626 Tf -287.51 -19.925 Td [(On)-383(Exit)]TJ +0 g 0 G +0 g 0 G + 0 -19.925 Td [(prec)]TJ +0 g 0 G +/F8 9.9626 Tf 26.408 0 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -33.88 -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(preconditioner)-333(data)-333(structure)]TJ +0 0 1 rg 0 0 1 RG +/F30 9.9626 Tf 197.537 0 Td [(psb)]TJ +ET +q +1 0 0 1 338.658 502.634 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +Q +BT +/F30 9.9626 Tf 341.796 502.434 Td [(prec)]TJ +ET +q +1 0 0 1 363.345 502.634 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +Q +BT +/F30 9.9626 Tf 366.483 502.434 Td [(type)]TJ +0 g 0 G +/F8 9.9626 Tf 20.922 0 Td [(.)]TJ +0 g 0 G +/F27 9.9626 Tf -287.51 -19.925 Td [(info)]TJ +0 g 0 G +/F8 9.9626 Tf 23.758 0 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(global)]TJ/F8 9.9626 Tf -31.23 -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 [(Error)-333(co)-28(de:)-444(if)-334(no)-333(error,)-333(0)-334(is)-333(returned.)]TJ/F16 11.9552 Tf -24.907 -21.918 Td [(Notes)]TJ/F8 9.9626 Tf 37.234 0 Td [(Releases)-334(all)-333(in)28(ternal)-333(storage.)]TJ +0 g 0 G + 127.15 -334.288 Td [(147)]TJ +0 g 0 G +ET + +endstream +endobj +1898 0 obj +<< +/Length 608 +>> +stream +0 g 0 G +0 g 0 G +BT +/F16 14.3462 Tf 150.705 706.129 Td [(11)-1125(Iterativ)31(e)-375(Metho)-31(ds)]TJ/F8 9.9626 Tf 0 -21.821 Td [(In)-519(thi)1(s)-519(c)28(hapter)-519(w)28(e)-519(pro)28(vide)-519(routi)1(nes)-519(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(Kr)1(ylo)27(v)-401(sub)1(s)-1(p)1(ac)-1(e)-400(metho)-28(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.158 -569.96 Td [(148)]TJ +0 g 0 G +ET + +endstream +endobj +1905 0 obj +<< +/Length 8324 +>> +stream +0 g 0 G +0 g 0 G +BT +/F16 11.9552 Tf 99.895 706.129 Td [(11.1)-1125(psb)]TJ +ET +q +1 0 0 1 158.311 706.328 cm +[]0 d 0 J 0.398 w 0 0 m 4.035 0 l S +Q +BT +/F16 11.9552 Tf 162.346 706.129 Td [(krylo)31(v)-375(|)-375(Krylo)31(v)-375(Metho)-31(ds)-375(Driv)31(er)-375(Routine)]TJ/F8 9.9626 Tf -62.451 -18.389 Td [(This)-343(subroutine)-342(is)-343(a)-343(driv)28(er)-343(that)-342(pro)27(vid)1(e)-1(s)-342(a)-343(general)-343(in)28(terface)-343(for)-342(all)-343(the)-343(Krylo)28(v-)]TJ 0 -11.956 Td [(Subspace)-333(family)-334(metho)-27(ds)-334(implemen)28(ted)-333(in)-334(PSBLAS)-333(v)28(ersion)-333(2.)]TJ 14.944 -11.955 Td [(The)-333(stopping)-334(criterion)-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 -14.944 -19.102 Td [(1)]TJ +0 g 0 G +/F8 9.9626 Tf 10.71 0 Td [(norm)28(wise)-334(bac)28(kw)28(ard)-333(error)-334(in)-333(the)-333(in\014nit)28(y)-334(norm;)-333(the)-333(iteration)-334(i)1(s)-334(stopp)-28(ed)-333(when)]TJ/F11 9.9626 Tf 109.583 -26.078 Td [(er)-28(r)]TJ/F8 9.9626 Tf 16.949 0 Td [(=)]TJ/F14 9.9626 Tf 38.11 6.74 Td [(k)]TJ/F11 9.9626 Tf 4.982 0 Td [(r)]TJ/F10 6.9738 Tf 4.494 -1.495 Td [(i)]TJ/F14 9.9626 Tf 3.317 1.495 Td [(k)]TJ +ET +q +1 0 0 1 248.849 621.14 cm +[]0 d 0 J 0.398 w 0 0 m 70.572 0 l S +Q +BT +/F8 9.9626 Tf 248.849 611.815 Td [(\050)]TJ/F14 9.9626 Tf 3.874 0 Td [(k)]TJ/F11 9.9626 Tf 4.981 0 Td [(A)]TJ/F14 9.9626 Tf 7.472 0 Td [(kk)]TJ/F11 9.9626 Tf 9.963 0 Td [(x)]TJ/F10 6.9738 Tf 5.694 -1.494 Td [(i)]TJ/F14 9.9626 Tf 3.317 1.494 Td [(k)]TJ/F8 9.9626 Tf 7.195 0 Td [(+)]TJ/F14 9.9626 Tf 9.963 0 Td [(k)]TJ/F11 9.9626 Tf 4.981 0 Td [(b)]TJ/F14 9.9626 Tf 4.276 0 Td [(k)]TJ/F8 9.9626 Tf 4.981 0 Td [(\051)]TJ/F11 9.9626 Tf 7.837 6.834 Td [(<)-278(eps)]TJ +0 g 0 G +/F27 9.9626 Tf -223.488 -29.952 Td [(2)]TJ +0 g 0 G +/F8 9.9626 Tf 10.71 0 Td [(Relativ)28(e)-334(residual)-333(in)-333(the)-333(2-)-1(n)1(orm)-1(;)-333(the)-333(iteration)-333(is)-334(stopp)-28(ed)-333(when)]TJ/F11 9.9626 Tf 135.515 -26.078 Td [(er)-28(r)]TJ/F8 9.9626 Tf 16.949 0 Td [(=)]TJ/F14 9.9626 Tf 12.178 6.74 Td [(k)]TJ/F11 9.9626 Tf 4.982 0 Td [(r)]TJ/F10 6.9738 Tf 4.494 -1.495 Td [(i)]TJ/F14 9.9626 Tf 3.317 1.495 Td [(k)]TJ +ET +q +1 0 0 1 274.781 565.11 cm +[]0 d 0 J 0.398 w 0 0 m 18.708 0 l S +Q +BT +/F14 9.9626 Tf 274.781 555.785 Td [(k)]TJ/F11 9.9626 Tf 4.981 0 Td [(b)]TJ/F14 9.9626 Tf 4.276 0 Td [(k)]TJ/F7 6.9738 Tf 4.981 -1.494 Td [(2)]TJ/F11 9.9626 Tf 8.432 8.328 Td [(<)-278(eps)]TJ +0 g 0 G +/F27 9.9626 Tf -197.556 -29.952 Td [(3)]TJ +0 g 0 G +/F8 9.9626 Tf 10.71 0 Td [(Relativ)28(e)-334(residual)-333(reduction)-333(in)-333(the)-334(2-norm;)-333(the)-333(iteration)-334(is)-333(stopp)-28(ed)-333(when)]TJ/F11 9.9626 Tf 133.171 -26.078 Td [(er)-28(r)]TJ/F8 9.9626 Tf 16.949 0 Td [(=)]TJ/F14 9.9626 Tf 14.522 6.74 Td [(k)]TJ/F11 9.9626 Tf 4.982 0 Td [(r)]TJ/F10 6.9738 Tf 4.494 -1.495 Td [(i)]TJ/F14 9.9626 Tf 3.317 1.495 Td [(k)]TJ +ET +q +1 0 0 1 272.436 509.08 cm +[]0 d 0 J 0.398 w 0 0 m 23.396 0 l S +Q +BT +/F14 9.9626 Tf 272.436 499.755 Td [(k)]TJ/F11 9.9626 Tf 4.982 0 Td [(r)]TJ/F7 6.9738 Tf 4.494 -1.494 Td [(0)]TJ/F14 9.9626 Tf 4.47 1.494 Td [(k)]TJ/F7 6.9738 Tf 4.981 -1.494 Td [(2)]TJ/F11 9.9626 Tf 8.432 8.328 Td [(<)-278(eps)]TJ/F8 9.9626 Tf -199.9 -30.505 Td [(The)-443(b)-27(eha)28(viour)-443(is)-442(con)27(troll)1(e)-1(d)-442(b)28(y)-443(the)-442(istop)-442(argumen)27(t)-442(\050see)-443(later\051.)-771(In)-443(the)-442(ab)-28(o)28(v)27(e)]TJ 0 -11.955 Td [(form)28(ulae,)]TJ/F11 9.9626 Tf 43.127 0 Td [(x)]TJ/F10 6.9738 Tf 5.694 -1.495 Td [(i)]TJ/F8 9.9626 Tf 5.856 1.495 Td [(is)-255(the)-255(ten)28(tativ)28(e)-255(solution)-255(and)]TJ/F11 9.9626 Tf 122.117 0 Td [(r)]TJ/F10 6.9738 Tf 4.495 -1.495 Td [(i)]TJ/F8 9.9626 Tf 6.084 1.495 Td [(=)]TJ/F11 9.9626 Tf 10.516 0 Td [(b)]TJ/F14 9.9626 Tf 4.925 0 Td [(\000)]TJ/F11 9.9626 Tf 8.399 0 Td [(Ax)]TJ/F10 6.9738 Tf 13.166 -1.495 Td [(i)]TJ/F8 9.9626 Tf 5.856 1.495 Td [(the)-255(corresp)-28(ondin)1(g)-255(residual)]TJ -230.235 -11.956 Td [(at)-333(the)]TJ/F11 9.9626 Tf 29.335 0 Td [(i)]TJ/F8 9.9626 Tf 3.432 0 Td [(-th)-333(iteration.)]TJ/F27 9.9626 Tf -31.39 -17.52 Td [(c)-138(a)-138(l)-139(l)]TJ/F8 9.9626 Tf 29.763 0 Td [(p)-126(s)-125(b)]TJ +ET +q +1 0 0 1 150.386 434.852 cm +[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +Q +BT +/F8 9.9626 Tf 154.627 434.653 Td [(k)-126(r)-125(y)-126(l)-125(o)-126(v)-231(\050)-146(m)-40(e)-41(t)-40(h)-40(o)-40(d)-242(,)-194(a)-228(,)-255(p)-94(r)-94(e)-94(c)-349(,)-176(b)-191(,)-185(x)-209(,)-243(e)-81(p)-81(s)-323(,)-274(d)-113(e)-112(s)-113(c)]TJ +ET +q +1 0 0 1 351.575 434.852 cm +[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +Q +BT +/F8 9.9626 Tf 355.686 434.653 Td [(a)-386(,)-288(i)-127(n)-127(f)-127(o)-302(,)-48(&)]TJ -226.788 -11.956 Td [(&)-579(i)-67(t)-67(m)-68(a)-67(x)-296(,)-311(i)-150(t)-149(e)-150(r)-460(,)]TJ/F27 9.9626 Tf 79.244 0 Td [(e)-65(r)-65(r)]TJ/F8 9.9626 Tf 18.889 0 Td [(,)-305(i)-144(t)-144(r)-144(a)-145(c)-144(e)-449(,)-319(i)-158(r)-158(s)-158(t)-477(,)-287(i)-126(s)-126(t)-126(o)-127(p)-413(,)-230(c)-69(o)-69(n)-69(d)-174(\051)]TJ +0 g 0 G +0 g 0 G +0 g 0 G +/F27 9.9626 Tf -127.136 -26.454 Td [(T)32(yp)-32(e:)]TJ +0 g 0 G +/F8 9.9626 Tf 33.797 0 Td [(Sync)28(hronous.)]TJ +0 g 0 G +/F27 9.9626 Tf -33.797 -19.513 Td [(On)-383(En)32(try)]TJ +0 g 0 G +0 g 0 G + 0 -19.514 Td [(metho)-32(d)]TJ +0 g 0 G +/F8 9.9626 Tf 43.012 0 Td [(a)-235(string)-235(that)-235(de\014nes)-236(th)1(e)-236(iterativ)28(e)-235(metho)-28(d)-235(to)-235(b)-28(e)-235(used.)-412(Supp)-27(orted)-235(v)55(alues)]TJ -18.105 -11.955 Td [(are:)]TJ +0 g 0 G +/F27 9.9626 Tf 0 -19.513 Td [(CG:)]TJ +0 g 0 G +/F8 9.9626 Tf 25.446 0 Td [(the)-333(Conjugate)-334(Gradien)28(t)-333(metho)-28(d;)]TJ +0 g 0 G +/F27 9.9626 Tf -25.446 -15.529 Td [(CGS:)]TJ +0 g 0 G +/F8 9.9626 Tf 31.811 0 Td [(the)-333(Conjugate)-334(Gradien)28(t)-333(Stabilized)-333(metho)-28(d;)]TJ +0 g 0 G +/F27 9.9626 Tf -31.811 -15.528 Td [(GCR:)]TJ +0 g 0 G +/F8 9.9626 Tf 34.039 0 Td [(the)-333(Generalized)-334(Conjugate)-333(Residual)-333(metho)-28(d;)]TJ +0 g 0 G +/F27 9.9626 Tf -34.039 -15.529 Td [(F)32(CG:)]TJ +0 g 0 G +/F8 9.9626 Tf 32.337 0 Td [(the)-333(Flexible)-334(Conjugate)-333(Gradien)28(t)-333(metho)-28(d)]TJ +0 0 1 rg 0 0 1 RG +/F7 6.9738 Tf 177.626 3.616 Td [(5)]TJ +0 g 0 G +/F8 9.9626 Tf 4.469 -3.616 Td [(;)]TJ +0 g 0 G +/F27 9.9626 Tf -214.432 -15.528 Td [(BICG:)]TJ +0 g 0 G +/F8 9.9626 Tf 37.941 0 Td [(the)-333(Bi-Conjugate)-334(Gradien)28(t)-333(metho)-28(d;)]TJ +0 g 0 G +/F27 9.9626 Tf -37.941 -15.529 Td [(BICGST)96(AB:)]TJ +0 g 0 G +/F8 9.9626 Tf 68.133 0 Td [(the)-333(Bi-Conjugate)-334(Gradien)28(t)-333(Stabilized)-333(metho)-28(d;)]TJ +0 g 0 G +/F27 9.9626 Tf -68.133 -15.528 Td [(BICGST)96(ABL:)]TJ +0 g 0 G +/F8 9.9626 Tf 75.024 0 Td [(the)-222(Bi-Conjugate)-222(Gradien)27(t)-222(Stabilized)-222(metho)-28(d)-222(with)-222(restart-)]TJ -53.106 -11.955 Td [(ing;)]TJ +0 g 0 G +/F27 9.9626 Tf -21.918 -15.529 Td [(R)32(GMRES:)]TJ +0 g 0 G +/F8 9.9626 Tf 58.807 0 Td [(the)-333(Generalized)-334(Minimal)-333(Residual)-333(metho)-28(d)-333(with)-334(restarting.)]TJ +0 g 0 G +/F27 9.9626 Tf -83.714 -19.513 Td [(a)]TJ +0 g 0 G +/F8 9.9626 Tf 10.551 0 Td [(the)-333(lo)-28(cal)-333(p)-28(ortion)-333(of)-334(global)-333(sparse)-333(matrix)]TJ/F11 9.9626 Tf 178.968 0 Td [(A)]TJ/F8 9.9626 Tf 7.472 0 Td [(.)]TJ -172.084 -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 137.958 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +Q +BT +/F30 9.9626 Tf 315.174 137.759 Td [(Tspmat)]TJ +ET +q +1 0 0 1 347.183 137.958 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +Q +BT +/F30 9.9626 Tf 350.322 137.759 Td [(type)]TJ +0 g 0 G +/F8 9.9626 Tf 20.921 0 Td [(.)]TJ +0 g 0 G +ET +q +1 0 0 1 99.895 129.78 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 [(5)]TJ/F31 7.9701 Tf 4.151 -2.812 Td [(Note:)-472(the)-355(implemen)30(tation)-354(is)-355(f)1(or)]TJ/F33 7.9701 Tf 120.25 0 Td [(F)-148(C)-70(G)]TJ/F31 7.9701 Tf 19.732 0 Td [(\0501\051.)]TJ +0 g 0 G +0 g 0 G +/F8 9.9626 Tf 9.159 -29.888 Td [(149)]TJ +0 g 0 G +ET + +endstream +endobj +1917 0 obj << -/D [1848 0 R /XYZ 150.705 590.562 null] +/Length 7123 >> -% 737 0 obj +stream +0 g 0 G +0 g 0 G +0 g 0 G +BT +/F27 9.9626 Tf 150.705 706.129 Td [(prec)]TJ +0 g 0 G +/F8 9.9626 Tf 26.408 0 Td [(The)-333(data)-334(structure)-333(con)28(taining)-333(the)-334(preconditioner.)]TJ -1.502 -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 [(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 658.507 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +Q +BT +/F30 9.9626 Tf 365.983 658.308 Td [(prec)]TJ +ET +q +1 0 0 1 387.532 658.507 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +Q +BT +/F30 9.9626 Tf 390.67 658.308 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.202 Td [(b)]TJ +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.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(rank)-333(one)-334(ar)1(ra)27(y)-333(or)-333(an)-334(ob)-55(ject)-333(of)-334(t)28(yp)-28(e)]TJ +0 0 1 rg 0 0 1 RG +/F30 9.9626 Tf 223.496 0 Td [(psb)]TJ +ET +q +1 0 0 1 415.426 588.484 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +Q +BT +/F30 9.9626 Tf 418.564 588.285 Td [(T)]TJ +ET +q +1 0 0 1 424.422 588.484 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +Q +BT +/F30 9.9626 Tf 427.56 588.285 Td [(vect)]TJ +ET +q +1 0 0 1 449.109 588.484 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +Q +BT +/F30 9.9626 Tf 452.247 588.285 Td [(type)]TJ +0 g 0 G +/F8 9.9626 Tf 20.922 0 Td [(.)]TJ +0 g 0 G +/F27 9.9626 Tf -322.464 -22.202 Td [(x)]TJ +0 g 0 G +/F8 9.9626 Tf 11.028 0 Td [(The)-333(initial)-334(guess.)]TJ 13.878 -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 [(inout)]TJ/F8 9.9626 Tf 26.096 0 Td [(.)]TJ -59.582 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(rank)-333(one)-334(ar)1(ra)27(y)-333(or)-333(an)-334(ob)-55(ject)-333(of)-334(t)28(yp)-28(e)]TJ +0 0 1 rg 0 0 1 RG +/F30 9.9626 Tf 223.496 0 Td [(psb)]TJ +ET +q +1 0 0 1 415.426 518.461 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +Q +BT +/F30 9.9626 Tf 418.564 518.262 Td [(T)]TJ +ET +q +1 0 0 1 424.422 518.461 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +Q +BT +/F30 9.9626 Tf 427.56 518.262 Td [(vect)]TJ +ET +q +1 0 0 1 449.109 518.461 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +Q +BT +/F30 9.9626 Tf 452.247 518.262 Td [(type)]TJ +0 g 0 G +/F8 9.9626 Tf 20.922 0 Td [(.)]TJ +0 g 0 G +/F27 9.9626 Tf -322.464 -22.203 Td [(eps)]TJ +0 g 0 G +/F8 9.9626 Tf 21.116 0 Td [(The)-333(stopping)-334(tolerance.)]TJ 3.79 -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(a)-333(real)-333(n)28(um)27(b)-27(er.)]TJ +0 g 0 G +/F27 9.9626 Tf -24.906 -22.203 Td [(desc)]TJ +ET +q +1 0 0 1 172.619 426.236 cm +[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S +Q +BT +/F27 9.9626 Tf 176.057 426.036 Td [(a)]TJ +0 g 0 G +/F8 9.9626 Tf 10.55 0 Td [(con)28(tains)-334(data)-333(structures)-333(for)-333(c)-1(omm)28(unications.)]TJ -10.996 -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 +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 378.415 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +Q +BT +/F30 9.9626 Tf 365.983 378.216 Td [(desc)]TJ +ET +q +1 0 0 1 387.532 378.415 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +Q +BT +/F30 9.9626 Tf 390.67 378.216 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.203 Td [(itmax)]TJ +0 g 0 G +/F8 9.9626 Tf 33.783 0 Td [(The)-333(maxim)27(um)-333(n)28(um)28(b)-28(er)-333(of)-334(iterations)-333(to)-333(p)-28(erform.)]TJ -8.877 -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 [(optional)]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 [(Default:)]TJ/F11 9.9626 Tf 39.436 0 Td [(itmax)]TJ/F8 9.9626 Tf 29.505 0 Td [(=)-278(1000.)]TJ -68.941 -11.956 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(in)28(teger)-333(v)55(ariable)]TJ/F11 9.9626 Tf 142.079 0 Td [(itmax)]TJ/F14 9.9626 Tf 29.505 0 Td [(\025)]TJ/F8 9.9626 Tf 10.516 0 Td [(1.)]TJ +0 g 0 G +/F27 9.9626 Tf -207.006 -22.202 Td [(itrace)]TJ +0 g 0 G +/F8 9.9626 Tf 33.25 0 Td [(If)]TJ/F11 9.9626 Tf 8.912 0 Td [(>)]TJ/F8 9.9626 Tf 10.516 0 Td [(0)-228(prin)28(t)-228(out)-228(an)-228(i)1(nformational)-228(message)-228(ab)-28(out)-228(con)28(v)28(ergence)-228(ev)27(ery)]TJ/F11 9.9626 Tf 265.015 0 Td [(itr)-28(ace)]TJ/F8 9.9626 Tf -292.787 -11.955 Td [(iterations.)-444(If)-334(=)-278(0)-333(prin)28(t)-333(a)-334(message)-333(in)-333(cas)-1(e)-333(of)-333(con)28(v)27(ergence)-333(failure.)]TJ 0 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(global)]TJ/F8 9.9626 Tf -32.379 -11.956 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 [(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 [(Default:)]TJ/F11 9.9626 Tf 39.436 0 Td [(itr)-28(ace)]TJ/F8 9.9626 Tf 28.785 0 Td [(=)]TJ/F14 9.9626 Tf 10.516 0 Td [(\000)]TJ/F8 9.9626 Tf 7.749 0 Td [(1.)]TJ +0 g 0 G +/F27 9.9626 Tf -111.392 -34.158 Td [(irst)]TJ +0 g 0 G +/F8 9.9626 Tf 21.857 0 Td [(An)-333(in)28(tege)-1(r)-333(sp)-28(ecifying)-333(the)-333(restart)-334(par)1(a)-1(meter.)]TJ 3.049 -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 [(optional)]TJ/F8 9.9626 Tf 40.576 0 Td [(.)]TJ -70.188 -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 [(V)83(alues:)]TJ/F11 9.9626 Tf 37.507 0 Td [(ir)-28(st)-447(>)]TJ/F8 9.9626 Tf 33.134 0 Td [(0.)-750(This)-435(is)-435(emplo)28(y)27(ed)-435(for)-435(the)-435(BiCGST)83(ABL)-435(or)-435(R)28(GMRES)]TJ -70.641 -11.955 Td [(metho)-28(ds,)-333(otherwise)-334(it)-333(is)-333(ignored.)]TJ +0 g 0 G + 139.477 -29.888 Td [(150)]TJ +0 g 0 G +ET + +endstream +endobj +1922 0 obj << -/D [1848 0 R /XYZ 150.705 544.789 null] +/Length 4693 >> -% 740 0 obj +stream +0 g 0 G +0 g 0 G +0 g 0 G +BT +/F27 9.9626 Tf 99.895 706.129 Td [(istop)]TJ +0 g 0 G +/F8 9.9626 Tf 29.232 0 Td [(An)-333(in)28(te)-1(ger)-333(sp)-28(ecifying)-333(the)-333(stopping)-334(crit)1(e)-1(ri)1(on.)]TJ -4.325 -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 40.577 0 Td [(.)]TJ -70.188 -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 [(V)83(alues:)-478(1:)-479(use)-351(th)1(e)-351(norm)28(wise)-351(bac)28(kw)28(ard)-351(error,)-354(2:)-479(use)-350(the)-351(scaled)-350(2-norm)-351(of)]TJ 0 -11.955 Td [(the)-333(residual,)-334(3:)-444(use)-333(the)-334(residual)-333(reduction)-333(in)-334(th)1(e)-334(2-norm.)-444(Default:)-445(2.)]TJ +0 g 0 G +/F27 9.9626 Tf -24.907 -19.925 Td [(On)-383(Return)]TJ +0 g 0 G +0 g 0 G + 0 -19.926 Td [(x)]TJ +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.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(rank)-333(one)-333(arra)27(y)-333(or)-333(an)-334(ob)-55(ject)-333(of)-334(t)28(yp)-28(e)]TJ +0 0 1 rg 0 0 1 RG +/F30 9.9626 Tf 223.496 0 Td [(psb)]TJ +ET +q +1 0 0 1 364.616 558.881 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +Q +BT +/F30 9.9626 Tf 367.754 558.682 Td [(T)]TJ +ET +q +1 0 0 1 373.612 558.881 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +Q +BT +/F30 9.9626 Tf 376.751 558.682 Td [(vect)]TJ +ET +q +1 0 0 1 398.3 558.881 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +Q +BT +/F30 9.9626 Tf 401.438 558.682 Td [(type)]TJ +0 g 0 G +/F8 9.9626 Tf 20.921 0 Td [(.)]TJ +0 g 0 G +/F27 9.9626 Tf -322.464 -19.925 Td [(iter)]TJ +0 g 0 G +/F8 9.9626 Tf 22.589 0 Td [(The)-333(n)27(um)28(b)-28(er)-333(of)-333(iterations)-333(p)-28(erformed.)]TJ 2.318 -11.956 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 [(out)]TJ/F8 9.9626 Tf 16.549 0 Td [(.)]TJ -50.035 -11.955 Td [(Returned)-333(as:)-445(an)-333(in)28(teger)-334(v)56(ariable.)]TJ +0 g 0 G +/F27 9.9626 Tf -24.907 -19.925 Td [(err)]TJ +0 g 0 G +/F8 9.9626 Tf 19.67 0 Td [(The)-333(con)27(v)28(ergence)-333(estimate)-334(on)-333(exit.)]TJ 5.237 -11.956 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 [(out)]TJ/F8 9.9626 Tf 16.549 0 Td [(.)]TJ -50.035 -11.955 Td [(Returned)-333(as:)-445(a)-333(real)-333(n)27(um)28(b)-28(er.)]TJ +0 g 0 G +/F27 9.9626 Tf -24.907 -19.925 Td [(cond)]TJ +0 g 0 G +/F8 9.9626 Tf 28.532 0 Td [(An)-280(estimate)-280(of)-279(the)-280(condition)-280(n)28(um)28(b)-28(er)-280(of)-279(matrix)]TJ/F11 9.9626 Tf 204.226 0 Td [(A)]TJ/F8 9.9626 Tf 7.472 0 Td [(;)-298(only)-279(a)27(v)56(ailable)-280(with)-279(the)]TJ/F11 9.9626 Tf -215.323 -11.956 Td [(C)-72(G)]TJ/F8 9.9626 Tf 18.987 0 Td [(metho)-28(d)-333(on)-333(real)-334(data.)]TJ -18.987 -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 [(out)]TJ/F8 9.9626 Tf 16.549 0 Td [(.)]TJ -50.035 -11.955 Td [(Returned)-287(as:)-421(a)-287(real)-287(n)28(um)28(b)-28(er.)-429(A)-287(correct)-287(result)-286(will)-287(b)-28(e)-287(greater)-287(than)-287(or)-286(equal)]TJ 0 -11.955 Td [(to)-267(on)1(e)-1(;)-288(if)-267(sp)-28(eci\014ed)-266(for)-267(non)1(-)-1(r)1(e)-1(al)-266(data,)-280(or)-266(an)-267(error)-266(o)-28(ccurred,)-280(zero)-267(is)-266(returned.)]TJ +0 g 0 G +/F27 9.9626 Tf -24.907 -19.926 Td [(info)]TJ +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 -173.35 Td [(151)]TJ +0 g 0 G +ET + +endstream +endobj +1927 0 obj << -/D [1848 0 R /XYZ 150.705 512.909 null] +/Length 80 >> -% 1851 0 obj +stream +0 g 0 G +0 g 0 G +0 g 0 G +BT +/F8 9.9626 Tf 315.088 90.438 Td [(152)]TJ +0 g 0 G +ET + +endstream +endobj +1931 0 obj << -/D [1848 0 R /XYZ 150.705 480.475 null] +/Length 7014 >> -% 1847 0 obj +stream +0 g 0 G +0 g 0 G +BT +/F16 14.3462 Tf 99.895 706.129 Td [(References)]TJ +0 g 0 G +/F8 9.9626 Tf 4.982 -21.821 Td [([1])]TJ +0 g 0 G + [-500(D.)-441(Barbieri,)-468(V.)-441(Cardellini,)-467(S.)-441(Filipp)-28(one)-441(and)-441(D.)-441(Rouson)]TJ/F17 9.9626 Tf 267.833 0 Td [(Design)-457(Patterns)]TJ -252.336 -11.955 Td [(for)-441(S)-1(ci)1(ent)-1(i)1(\014)-1(c)-441(Computations)-442(on)-441(Sp)51(arse)-441(Matric)51(es)]TJ/F8 9.9626 Tf 210.802 0 Td [(,)-447(HPSS)-424(2011,)-447(Algorithms)]TJ -210.802 -11.955 Td [(and)-375(Programming)-374(T)83(o)-28(ols)-375(for)-374(Next-Generation)-375(High-P)28(erformance)-375(Scien)28(ti\014c)]TJ 0 -11.956 Td [(Soft)28(w)28(are,)-334(Bordeaux,)-333(Sep.)-333(2011)]TJ +0 g 0 G + -15.497 -18.666 Td [([2])]TJ +0 g 0 G + [-500(G.)-341(Bella,)-343(S.)-341(Filipp)-28(one,)-343(A.)-341(De)-341(Maio)-341(and)-341(M.)-341(T)84(esta,)]TJ/F17 9.9626 Tf 235.488 0 Td [(A)-365(Simulation)-365(Mo)51(del)-364(for)]TJ -219.991 -11.955 Td [(F)77(or)51(est)-365(Fir)51(es)]TJ/F8 9.9626 Tf 52.03 0 Td [(,)-343(in)-341(J.)-340(Dongarra,)-343(K.)-341(Madsen,)-343(J.)-341(W)84(asniewski,)-343(editors,)-343(Pro)-28(ceed-)]TJ -52.03 -11.955 Td [(ings)-394(of)-395(P)84(ARA)-395(04)-394(W)83(orkshop)-394(on)-395(State)-394(of)-395(the)-394(Art)-394(in)-395(Scien)28(ti\014c)-394(Com)-1(p)1(uting,)]TJ 0 -11.955 Td [(pp.)-333(546{553,)-334(Lecture)-333(Notes)-333(in)-334(Computer)-333(Science,)-333(Springer,)-334(2005.)]TJ +0 g 0 G + -15.497 -18.666 Td [([3])]TJ +0 g 0 G + [-500(A.)-316(Buttari,)-320(D.)-317(di)-316(Sera\014no,)-320(P)83(.)-316(D'Am)28(bra,)-320(S.)-317(Filipp)-27(one,)-100(2LEV-D2P4:)-436(a)-316(pac)28(k-)]TJ 15.497 -11.955 Td [(age)-388(of)-388(high-p)-28(erformance)-388(preconditioners,)-218(Applicable)-388(Alge)-1(b)1(ra)-389(in)-388(Engin)1(e)-1(er-)]TJ 0 -11.956 Td [(ing,)-393(Comm)27(un)1(ications)-382(and)-381(Computing,)-393(V)83(olume)-381(18,)-393(Num)27(b)-27(er)-382(3,)-393(Ma)28(y)83(,)-393(2007,)]TJ 0 -11.955 Td [(pp.)-333(223-239)]TJ +0 g 0 G + -15.497 -18.666 Td [([4])]TJ +0 g 0 G + [-500(P)83(.)-691(D'Am)28(bra,)-780(S.)-691(Filipp)-28(one,)-780(D.)-691(Di)-691(Sera\014no)-819(On)-691(the)-691(Dev)28(elopmen)28(t)-691(of)]TJ 15.497 -11.955 Td [(PSBLAS-based)-430(P)28(arallel)-430(Tw)28(o-lev)28(el)-430(Sc)27(h)28(w)28(arz)-430(Preconditioners)-731(Applied)-430(Nu-)]TJ 0 -11.955 Td [(merical)-245(Mathematics)-1(,)-262(Elsevier)-246(Science,)-263(V)83(ol)1(ume)-246(57,)-263(Issues)-245(11-12,)-263(No)27(v)28(em)28(b)-28(er-)]TJ 0 -11.955 Td [(Decem)28(b)-28(er)-333(2007)-1(,)-333(P)28(ages)-333(1181-1196.)]TJ +0 g 0 G + -15.497 -18.667 Td [([5])]TJ +0 g 0 G + [-500(Dongarra,)-529(J.)-490(J.,)-529(DuCroz,)-529(J.,)-529(Hammarling,)-529(S.)-490(and)-490(Hanson,)-529(R.,)-529(An)-490(Ex-)]TJ 15.497 -11.955 Td [(tended)-478(Set)-478(of)-478(F)83(ortran)-478(Basic)-478(Linear)-478(Algebra)-478(Subprograms,)-514(A)28(C)-1(M)-477(T)83(rans.)]TJ 0 -11.955 Td [(Math.)-333(Soft)28(w.)-334(v)28(ol.)-333(14,)-334(1{17,)-333(1988.)]TJ +0 g 0 G + -15.497 -18.666 Td [([6])]TJ +0 g 0 G + [-500(Dongarra,)-444(J.,)-444(DuCroz,)-444(J.,)-445(Hammarling,)-444(S.)-422(and)-422(Du\013,)-444(I.,)-444(A)-422(Set)-422(of)-422(lev)28(el)-422(3)]TJ 15.497 -11.955 Td [(Basic)-357(Linear)-357(Algebra)-357(Subpr)1(ogram)-1(s,)-362(A)27(CM)-356(T)83(rans.)-357(Math.)-357(Soft)28(w.)-357(v)28(ol.)-357(16,)-362(1{)]TJ 0 -11.955 Td [(17,)-333(1990.)]TJ +0 g 0 G + -15.497 -18.666 Td [([7])]TJ +0 g 0 G + [-500(J.)-265(J.)-266(Dongarra)-266(and)-265(R.)-266(C.)-265(Whaley)83(,)]TJ/F17 9.9626 Tf 162.063 0 Td [(A)-295(User's)-296(Guide)-295(to)-296(the)-295(BLA)25(CS)-295(v.)-295(1.1)]TJ/F8 9.9626 Tf 156.589 0 Td [(,)-279(La-)]TJ -303.155 -11.956 Td [(pac)28(k)-291(W)84(orking)-291(Note)-290(94,)-299(T)83(ec)28(h.)-290(Rep.)-291(UT-CS-95-281,)-299(Univ)28(ersit)28(y)-290(of)-291(T)84(ennesse)-1(e,)]TJ 0 -11.955 Td [(Marc)28(h)-334(1995)-333(\050up)-28(dated)-333(Ma)28(y)-333(1997\051.)]TJ +0 g 0 G + -15.497 -18.666 Td [([8])]TJ +0 g 0 G + [-500(I.)-488(Du\013,)-527(M.)-488(Marrone,)-526(G.)-488(Radicati)-488(and)-488(C.)-488(Vittoli,)]TJ/F17 9.9626 Tf 244.569 0 Td [(L)51(evel)-500(3)-500(Basic)-500(Line)51(ar)]TJ -229.072 -11.955 Td [(A)26(lgebr)51(a)-463(Subpr)52(o)51(gr)51(ams)-463(f)1(or)-463(Sp)51(arse)-462(Matric)51(es:)-669(a)-462(User)-462(L)51(evel)-463(Interfac)52(e)]TJ/F8 9.9626 Tf 292.206 0 Td [(,)-475(A)27(CM)]TJ -292.206 -11.955 Td [(T)83(ransactions)-333(on)-333(Mathematical)-334(Soft)28(w)28(are,)-333(23\0503\051,)-334(pp.)-333(379{401,)-333(1997.)]TJ +0 g 0 G + -15.497 -18.666 Td [([9])]TJ +0 g 0 G + [-500(I.)-358(Du\013,)-365(M.)-359(Heroux)-358(and)-359(R.)-358(P)27(ozo,)]TJ/F17 9.9626 Tf 162.007 0 Td [(A)26(n)-381(Overview)-381(of)-381(the)-381(Sp)51(arse)-381(Basic)-381(Line)51(ar)]TJ -146.51 -11.956 Td [(A)26(lgebr)51(a)-348(S)-1(u)1(bpr)51(o)51(gr)51(ams:)-455(the)-348(New)-349(Standar)51(d)-348(fr)51(om)-348(the)-348(BLAS)-348(T)76(e)51(chnic)52(al)-349(F)77(orum)]TJ/F8 9.9626 Tf 320.465 0 Td [(,)]TJ -320.465 -11.955 Td [(A)28(CM)-334(T)84(ransactions)-334(on)-333(Mathematical)-333(Soft)28(w)27(are,)-333(28\0502\051,)-333(pp.)-333(23)-1(9{267,)-333(2002.)]TJ +0 g 0 G + -20.479 -18.666 Td [([10])]TJ +0 g 0 G + [-500(S.)-451(Filipp)-28(one)-451(and)-451(M.)-451(Cola)-56(janni,)]TJ/F17 9.9626 Tf 165.708 0 Td [(PSBLAS:)-466(A)-466(Libr)51(ary)-466(for)-467(Par)51(al)-51(lel)-466(Line)51(ar)]TJ -145.229 -11.955 Td [(A)26(lgebr)51(a)-420(Computation)-420(on)-420(Sp)51(arse)-420(Matric)51(es)]TJ/F8 9.9626 Tf 181.375 0 Td [(,)-661(A)27(CM)-400(T)83(ransactions)-401(on)-401(Mathe-)]TJ -181.375 -11.955 Td [(matical)-333(Soft)27(w)28(are,)-333(26\0504\051,)-333(pp.)-334(527{550,)-333(2000.)]TJ +0 g 0 G + -20.479 -18.666 Td [([11])]TJ +0 g 0 G + [-500(S.)-425(Filipp)-27(one)-425(and)-425(A.)-425(Buttari,)]TJ/F17 9.9626 Tf 152.315 0 Td [(Obje)51(ct-Oriente)51(d)-442(T)77(e)51(chniques)-442(for)-441(Sp)51(arse)-442(Ma-)]TJ -131.836 -11.955 Td [(trix)-407(Computations)-406(in)-407(F)77(ortr)51(an)-407(2003)]TJ/F8 9.9626 Tf 153.485 0 Td [(,)-615(A)28(CM)-387(T)84(ransactions)-387(on)-386(Mathematical)]TJ -153.485 -11.956 Td [(Soft)28(w)28(are,)-334(38\0504\051,)-333(2012.)]TJ +0 g 0 G + -20.479 -18.666 Td [([12])]TJ +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 [(153)]TJ +0 g 0 G +ET + +endstream +endobj +1939 0 obj << -/Font << /F8 561 0 R /F17 735 0 R /F30 769 0 R >> -/ProcSet [ /PDF /Text ] +/Length 3124 >> -% 1852 0 obj -[757.3 871.7 778.7 672.4 827.9] -% 1853 0 obj -[575.2 657.4 525.9 657.4 543 361.6 591.7 657.4 328.7 361.6 624.5 328.7 986.1 657.4 591.7 657.4 624.5 488.1 466.8 460.2 657.4] -% 1854 0 obj -[1444.5 1277.8 555.6 1111.1 1111.1 1111.1 1111.1 1111.1 944.5 1277.8 555.6 1000 1444.5 555.6 1000 1444.5 472.2 472.2 527.8 527.8 527.8 527.8 666.7 666.7 1000 1000 1000 1000] -% 1855 0 obj -[285.5 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 399.7 571 542.4 742.3 542.4 542.4 456.8] -% 1856 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] -% 1857 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] -% 1858 0 obj -[531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3] -% 1859 0 obj -[533.6] -% 1860 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] -% 1861 0 obj -[611.1 611.1 611.1 611.1 611.1] +stream +0 g 0 G +0 g 0 G +0 g 0 G +BT +/F8 9.9626 Tf 150.705 706.129 Td [([13])]TJ +0 g 0 G + [-500(Gamma,)-494(E.,)-987(Helm,)-493(R.,)-987(Johnson,)-494(R.,)-987(and)-923(Vlissides,)-494(J.)-461(1995.)]TJ/F17 9.9626 Tf 314.294 0 Td [(Design)]TJ -293.815 -11.955 Td [(Patterns:)-427(Elements)-293(of)-292(R)51(eusable)-293(Obje)51(ct-Oriente)51(d)-292(Softwar)51(e)]TJ/F8 9.9626 Tf 246.617 0 Td [(.)-262(Addison-W)83(esley)83(.)]TJ +0 g 0 G + -267.096 -19.926 Td [([14])]TJ +0 g 0 G + [-500(Karypis,)-561(G.)-515(and)-515(Kumar,)-561(V.,)]TJ/F17 9.9626 Tf 157.276 0 Td [(METIS:)-525(Unstructur)51(e)51(d)-525(Gr)51(aph)-525(Partitioning)]TJ -136.797 -11.955 Td [(and)-413(Sp)51(arse)-413(Matrix)-414(Or)51(deri)1(ng)-414(System)]TJ/F8 9.9626 Tf 158.597 0 Td [(.)-394(Minneap)-27(olis,)-409(MN)-394(55455:)-565(Univ)28(ersit)28(y)]TJ -158.597 -11.955 Td [(of)-420(Minnesota,)-441(Departmen)27(t)-420(of)-419(Computer)-420(Science,)-442(1995.)-420(In)28(ternet)-420(Address:)]TJ/F30 9.9626 Tf 0 -11.955 Td [(http://www.cs.umn.edu/~karypis)]TJ/F8 9.9626 Tf 156.91 0 Td [(.)]TJ +0 g 0 G + -177.389 -19.925 Td [([15])]TJ +0 g 0 G + [-500(La)28(wson,)-339(C.,)-339(Hanson,)-339(R.,)-339(Kincaid,)-339(D.)-338(and)-338(Krogh,)-339(F.,)-339(Basic)-338(Linear)-338(Algebra)]TJ 20.479 -11.956 Td [(Subprograms)-337(for)-336(Fortran)-337(usage,)-338(A)28(CM)-337(T)84(rans.)-337(Math.)-337(Soft)28(w.)-337(v)28(ol.)-337(5,)-337(38{329,)]TJ 0 -11.955 Td [(1979.)]TJ +0 g 0 G + -20.479 -19.925 Td [([16])]TJ +0 g 0 G + [-500(Mac)28(hiels,)-372(L.)-364(and)-364(Deville,)-372(M.)]TJ/F17 9.9626 Tf 148.97 0 Td [(F)77(ortr)51(an)-386(90:)-517(A)26(n)-387(entry)-386(to)-386(obje)51(ct-oriente)51(d)-386(pr)51(o-)]TJ -128.491 -11.955 Td [(gr)51(amming)-492(for)-492(the)-492(soluti)1(on)-492(of)-492(p)51(artial)-492(di\013er)51(ential)-492(e)51(quations.)]TJ/F8 9.9626 Tf 267.456 0 Td [(A)28(CM)-479(T)83(rans.)]TJ -267.456 -11.955 Td [(Math.)-333(Soft)28(w.)-334(v)28(ol.)-333(23,)-334(32{49.)]TJ +0 g 0 G + -20.479 -19.926 Td [([17])]TJ +0 g 0 G + [-500(Metcalf,)-434(M.,)-434(Reid,)-433(J.)-414(and)-414(Cohen,)-434(M.)]TJ/F17 9.9626 Tf 189.335 0 Td [(F)77(ortr)51(an)-432(95/2003)-432(explaine)51(d.)]TJ/F8 9.9626 Tf 123.907 0 Td [(Oxford)]TJ -292.763 -11.955 Td [(Univ)28(ersit)28(y)-334(Press,)-333(2004.)]TJ +0 g 0 G + -20.479 -19.925 Td [([18])]TJ +0 g 0 G + [-500(Rouson,)-374(D.W.I.,)-374(Xia,)-374(J.,)-374(Xu,)-373(X.:)-510(Scien)28(ti\014c)-366(Soft)28(w)28(are)-366(Design:)-510(Th)1(e)-366(Ob)-56(ject-)]TJ 20.479 -11.955 Td [(Orien)28(ted)-333(W)83(a)28(y.)-334(Cam)28(bridge)-333(Univ)28(ersit)27(y)-333(Press)-333(\0502011\051)]TJ +0 g 0 G + -20.479 -19.926 Td [([19])]TJ +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 -352.677 Td [(154)]TJ +0 g 0 G +ET endstream endobj -1873 0 obj +1962 0 obj << /Length1 2422 /Length2 20069 @@ -24042,7 +25024,7 @@ h ©ë–} ¸Œhj¬ÑÉ£f/›IV+\}3bGU ý5"©+IU(€oVžNo±íì⮂Øš¢b"Ñð±öÞ¢:’7cÂéx€ås¯t£! ‹@ïÇ%e)òûÀÒ\ /œCÿsoµ^“ªê- qhÏKä¡p Ú€ó&êØ /_Ïü endstream endobj -1875 0 obj +1964 0 obj << /Length1 2382 /Length2 17618 @@ -24231,586 +25213,1154 @@ n òu; endstream endobj -1877 0 obj +1966 0 obj +<< +/Length1 1599 +/Length2 8420 +/Length3 0 +/Length 10019 +>> +stream +%!PS-AdobeFont-1.0: CMBX9 003.002 +%%Title: CMBX9 +%Version: 003.002 +%%CreationDate: Mon Jul 13 16:17:00 2009 +%%Creator: David M. Jones +%Copyright: Copyright (c) 1997, 2009 American Mathematical Society +%Copyright: (), with Reserved Font Name CMBX9. +% This Font Software is licensed under the SIL Open Font License, Version 1.1. +% This license is in the accompanying file OFL.txt, and is also +% available with a FAQ at: http://scripts.sil.org/OFL. +%%EndComments +FontDirectory/CMBX9 known{/CMBX9 findfont dup/UniqueID known{dup +/UniqueID get 5000767 eq exch/FontType get 1 eq and}{pop false}ifelse +{save true}{false}ifelse}{false}ifelse +11 dict begin +/FontType 1 def +/FontMatrix [0.001 0 0 0.001 0 0 ]readonly def +/FontName /VUBHOM+CMBX9 def +/FontBBox {-58 -250 1195 750 }readonly def +/PaintType 0 def +/FontInfo 9 dict dup begin +/version (003.002) readonly def +/Notice (Copyright \050c\051 1997, 2009 American Mathematical Society \050\051, with Reserved Font Name CMBX9.) readonly def +/FullName (CMBX9) readonly def +/FamilyName (Computer Modern) readonly def +/Weight (Bold) readonly def +/ItalicAngle 0 def +/isFixedPitch false def +/UnderlinePosition -100 def +/UnderlineThickness 50 def +end readonly def +/Encoding 256 array +0 1 255 {1 index exch /.notdef put} for +dup 97 /a put +dup 98 /b put +dup 99 /c put +dup 100 /d put +dup 101 /e put +dup 102 /f put +dup 103 /g put +dup 104 /h put +dup 105 /i put +dup 108 /l put +dup 110 /n put +dup 111 /o put +dup 113 /q put +dup 114 /r put +dup 115 /s put +dup 116 /t put +dup 117 /u put +readonly def +currentdict end +currentfile eexec +ÙÖoc;„j²„¼ø°Aw-åÎ=Ó%åW˜)-{Ùr½uú•)¯œ‚ßröA•ÉÂÜãE(õ@Úý{ë¹´‡º“Q»û|ü_‘RÑå» +ØÐÆϤëA³Å -T@æ|ýq|Vk¹¿J% qu8P¢øwÄGx³ÅªÛ̆ÖåQæ¯6K üªÒ-UŒ\§Ô%¡bÕ"t-*ðxÔõöÓŸÏÿJ‘+ +}ì3¥{Zà2ŽùÕzݬT2sÀ$ZõÌÑ&{Bè–J×{¨¦J†‹¦f^Ö·>½aq4±!¿Ù<ªËÏáËé_CªãцcQâ%BÉélSŸ¾ ³7§Òý1_£ +sQ¾çýz‹§î5>­Š¥?™ÛQæñ;8FË}»Q|-Kˆ,}áç>PD +ß65Öü”Ñ~`dU6+[\5Ñ‚qƒFB>œÖ³™¥³Ú1ÿÀ^;´!'ƒVQ!Ÿ<´£$6¦jT¡&ÚÖUV”úÏDq~¯`XhÇZÊwU­Ü çëWÙ67$hV%t°Èjßúâ6¯¿~´hþù<Ÿ5 À6{O¨é¥ .o"×F×—lai‰!ÓNš—;“/­‡ƒi”Ãìe L5s¹h°!¤äù¤÷YîÀBÕ y›Ö»M~“¦Œ|M‘{â\B3¬†Ö‡ÏÓxþYXÞ¨ËmÏê±Ho%l¿¾„)CKF–uŽîÔ´l±Y~ù«<,’•þ&îîöZ#^gîïú‹¨®xà'6w¶B8‘¦IWØ°~Ö÷D.TªPž>¡ÚK¿oN‹çzÏS6ò=¥('a`¢¦°•ÿTÑ seSd¦DVzÛL^¥†«¦Ç|ñ§¶kb=yj‰”öšíaIó>ŘÄÅ(×¥4^í?¢¯ 'KÙnêìˆ`Ð4×Q˜9„… . Éæè`Ý…3oh~äFºq©›¶;‰zJ5à»Ù0“òEÃüýëPûÖÇXæ*ÆšÄQ ÿ¤ã—˜Êk–4]aØÒ¡pM9‰\‡l[žø¸í³Z)uÆ”T\0k´eøèbI±A;Ô/{c âJÿ‘nøÿåâœ^ÔGk÷gQìÍ0Y›'ISD;A¬ÒÃ3‘ë9 €hˆî?ݦ”bÊJU5Ýzw –ŽÝÆj–pJBÎUY{e#ÙFws@ºrá˜I–Sp^YoôZó|µ¬ä5Ÿh2¿*Ù„E¯ËA4W¶?£ù|ÅßÓÎàPC¥Çùx˜' €”¬Ð4 +vÂ0¶U„'J‘#oqœÓ‰¾èÄÿY%egæúg|Ø* )SZo8r;8­žWlv"§r`½¤U¦ÿkÝLùÑ=„Ú=«®~V» +Xµ£Ê` +ÇUvSÿ‚w;8–úw®wH_,­^~Ãq«\á”±3Ê[Ål&8E}®;`ëƒZÚ«)™³·“HZï»á/€¿I ÐÃ;3w +h÷¸$j/z„ºá/^,_ž¼ÔC™ž¿~ç¹A7ŒÃkâÛp·þ‰´RhbK ¦0ŸôŽÓsQrIšæ;YD›4uÝ-:žpÙø×¼V¿1Úy&þò<ÊNïIÓ/i +Û7ê‰è½Þù#‘¶Lµ18éÒó1ñEð@³)T¯`Bßøf%·&Ùdϧ‡^¿ùcÜØöhB:~7MxÌkME1~Jõ˜æmV±ÈeD÷½ÓT<Ê°04­…`ÔPÆ™èLn+Òk®kF£Y‰ž „¬ØÉ8pœ¬8Š´8‡FGS/„àÕsrW1EH=>ñEÑFš¼#RdÈ·nûf©æÅN¦EÆzfL)3Êxg2å3) +p°EYÚ%¹NX›ž”²Aîø¡¹@WQQèÈ À¾Xÿÿ$r d7‰U¦m¢wKÌ6+¿2¥³ÙaÔÄî¦ó •ãà°¢,n·9Vb¦ü…A:’Þ)48ö ÏzŽË>IŸ’mÌ8âŸXCÙ‡LF¹ñʺߦŠŽkôg'fœ 2 ÞÓz?qe3?¬òáž-&1VK´l¥/›>4°(ÑðìÓþ5‹pÁˆ,æJ²àŠÝr6`Š·p–íÔšÇÕÂÇÎd׌çÕÜòü¶^dÞ'Ù;¬©@8ê]”áÜÕmB‰´Ì¾ÍÊ"D®‘—%¸ôµÂ¦Æi¥Ÿ-{™¤tx*yæt:`Œ˜Z]ãKš=.êÈÒ;Tƪ»ãÙX™áômÁÀj‡ÜÛÁ n×ѹ«5ù–&.’¿F~ÄP]^·Š7FoQô‰v3Þ:ƒ2­êÝr˜HS‹7!’SžÒ5Å·Iž›ÍººSvG0;=Ùf€¤/bklî9dÚŒ ñn&CO lªÍ"*e¯@n!6È}Zj´ou #€|è)ýfª*¾Ú¥,E^÷µÄaèø(,ã ’“®ŒLã ¢‡A¡h”þÆ_üâȪ´RlgÊöYhšaÓÆ—±¿½¼i% üö)£¹m`œRÎøDêÓ‡O4;¾‡X© µŠ@Å4â³cÃÝhC.Î4äFc|E—-¿ýøã5¨ OA)R‰3€÷¢–N«{o®Å`aYUrBs -15sÜi%²ZÏY+‘ãW;×þ/J"u¼Îð›;ôåœÌÒÅDgI x9©"rwÉÅh +‡«RŒ®ÊŠ¢·ß~Kh£‰Rê^ÊíÃ44¾Íás‰7MŸÖ’ŽkÖLÐíèÆõ‹¿˜ŸäðÆ%ÙvOqÙT+„o—ºvlo\+õ»pÀãôm\ÑgwÙ§šÓ 9¡¾¢½_–8ižàö-d) Ä©¯±ª#C…M# hã8p±¡žòU"w.WV:Ê Çœã‡Oc #›’Ý%ë€æ^ìoF‘‘ÿxE›§×ßõkl Êȃ°™<à6wyh—[$»fÂðu²¥žqƒö%_ÖCnŠ \ÖÅȪüpœà#ªvøM°ÕªdÒÚ2Û Åg ©•jRÙZ,xœ¶ÄÐrÎF8PŒ<(Fƒô`ÞÁ~ÇW¿ç/dê·CnÖÇ—t˜ÎPÌöÀÃ…³½fÎñ"ä«'nLŒCeÈJ59&yŠÛ„eú^›ËOäþµÔû»IºÇ0\Ÿ¸ß^P¨ºÈõ«KàþÔG¤dó³@2ʨ™ Öü¡󌱇ˆl¸ÌÌW/ÊrZ…ŸÔ\~l·dB (#o}ÍHZsw¦¤™HoÑ܆ÇÉ0Àì%o± ì®E©=’ßä×øp€ãdKž)œ«Ýêæd£/¶güµèYÈR[+7! ‚n´Iýw·Ò8ñª ÊM±F'ü/©ä`6-¼†µd¡9»¯Wt×ß{Ü`>²Pš•)$üéŸw>]ßè{¼¯ ø_JJø[|£°ïaïJçЪCíWk΢gLsà 1/UŒ¼ wÆwßá‹ëKO•w†Zo½Y†þz8gÊŸà821˜ôƒôˆZøöY¾YKÊ%UWˆ`·ß¤þlPâ`óB¾Ö?º1e1 tß­íÏc`jýD]ê¨Òìøñ< j#ìôSúÀkù@_6&ûú…Ä"|Ç ùŸ 135ÿœð†”ë~Üâj–ò¬5“Æjag+PCöTäÐÊo+Lx‰I”–ñ@ùþ¸ÛU‹úÎßo‡ùŸ†W¸.Ÿ‡0ò#íß6ü˜Û!›$‡_ÒùØȧšØû`íárüÊœ{sÔ{]˜ + òÄݤ¢"£žAömÓ©e~]¶iæ ›œáox;½ƒÄ¢ù¦º’)˜Ä„Ÿ™»›vš{¢Ô’¯N…µØË¡ûªôÊ€8z +ØD4º½>Êuäqlž°ôòýêGm¬ËtìŒ +ZбèK±ø’`˜4Ò³WÙL d)yZ£dÆ\mÌÖ: ì·‹Ês€†0Ùj +¶dÍÉŽ±aÇtá@‰ÇÓ™ÕV¢šµö$Kas¶þ)äüÜÒ~Šª‰î$8ò+ê\[‡ýø)ØK9¡«‹§+Ä%?¸‰†à< $_nRÆÌnWQ-ÈùU*ô§ƒu¶pÄà4Š[¦iÐÅï}H=“¥`SUÕPa{¸½í0'ÒQ®æWØ^¬†tªÂæ¨>‹¨.9ñN’ö™zlÉçcª ˜€»ìŸºîð[=“ˆ¨]8õõìæD§À’8"Q±L Òwek\/”°³+w^8 ZLn}Š÷69þÊαù$«Á«uT[®e/šD”€jFš¼åã„hÛGÄŒ3eÅWfÿTf!>ê×è3rçún_&kJ¶ÕÓÝÎne ¯û¯ŒmW%qúƒÒä®*¬óˆ5ÔÿsÒæI³À»³soV™goÍꡯÇéâ+úEàÆ¿RÔ7lðl,#â4¯Ÿ~²â^Ñ$)ÁïCßñÈ—¢¡·`ÿPéƒ{ RóæÅü!›0K?.õ&V˜í—­¢#fR¤Gû/ñ¸Œç0Q îšáSÐÁp›Ç¬e,W¨¨4`W¯ä16» +Bo5@ðñ.Áù{š’±2—°¢7qG°iÊ£T®•µ«Ãðj“âz”pðÝGrb`ìBn] ½5ú§äÑÂEŠŽPƒÂ£*Óœç-f?—Î7¡5k­o2|pw¾lÀeì›P œi׺Iôë—ëö¢ÑÍ’ws†Åz;SfÎT`D•±‹ÕeÙ/:M#,N «ðØçCÒÇú@ÁXrÓÙ“ÉØÃÑnÒ_€Ê´ñMÄì´[HÎãÜ-f4#uûßã/V©€N¡y\#­x[6¹Â§4ÁÌ·Õ,¢Á.aÁIÖ-DŸÍ=œ(ëãˆAo.€‰Q$·-àq ª4Ïù÷rh!¸-ïái Úv¶fèrØ %¦ÿó/^ç…Ú +)úp*d'›D_må±Ó’>l½ÝÒC~¾µ…tþþ/a$Go¡@ÄÏâÜž+ôÆãA¬“9IcUþî!¬£û}“Óê–ê­ž–pI¼G"±RUÓÌòëá)صJ@®ÞÕÿuºÐ†é‘ä`ŸŠYϪ¨C÷uJï‘Uèm8™*8…’ ›>B +tk1”¶¥@Í ¶Y ú¾lWäÏÌ3•[àì¸>[6¸·Ê&ÜìÅpúCÌK¤¤¡Æ£³Ü‰fÜ&N¯0ýª]X?µT¢pŠP YÍöŒƒ¾,y²¶ïç°¢œÑ)4U³Ób»ãj"ðšf«hEWdÄjtŸ_ñ¨8‡ þº†Ô|\òüƒ´šYNÑÿe„–Ô­Öã5쀬·Ñ‹; 44Ye*C#JŽ·aÖhTêØþ±+·vÐÑXý{\6)Ã)ºö´ÒrñfEŒ÷ûS‹¿®Ëд5‡àh±sdŽ°U[YäÅJÅ*ºL µ±|ogó«Æð9³¥õ¾w>!>C4ã?m/ë.qÊÇØ߉½‰K|¸8ôR1!õ>ÄúÇȱÍ:&æ’í ¶·Kù¦k¬Þà¼q ühŸÈ!Ê…ÆC°›µ³‚4Êk<ØÁˆàídq•¤aüeX˜&ÑZ;SRÃMsƒò©ëh>‹<^ìçž.9Ù æ3n5¶‹%ÌÙ +YLjQõ»A4OV‡Î?¾r™%L–¢„¢xÉÑ”*gÃ0f´L¯jl}º«—ùîX€¥©l:áÅD0_Ãë.°4²‡úÀw¿-bm!ÕxMŒá‘˜]&(3C­þÑXj‰Èƒ; ÿµ&t]ÅÊuÕ÷`N¾¬Á ²ŒÐôXïº+]Gê +‚ßÙ.ÅÊÇAnNLZ¿ßLªpF±&¬rwØÉ4?ÇæÇ'YñíÜzBü6ó—Vý‰V¯b“Ä«¡Ì‘uvf „R×~tg£úReOÏbv+~{ñe½Ãç{4Q‰e/éwDÉÏÀákˆ“!øP§¿¿3úF4佑‘\ƒ×ˆ`3LÒ¾5Ü]û(qF‘òðÍø¥:Ðqpæv€ì=ÔÛÄ Bÿº%NQ¨újS.n}‘ù©ýÇß(°úÑ玜hqò‚r fFÎÖu#¦;Œ¿‰ô<¦åW49EùgL¨ŸVd+*J…`(Ê^ZÇnÁ»ðŒqͽ£fˆN_Ö’¹xñƒC²Â×™’F¿Ø¥Í…9È"ĽXˆ9¯qŠlŒô´êyb*4ÜÏÿþ¾¦#ÐÀ+jºc=?gey4¥¾JYa8Öe¨ü€iÔÑöN¶Ï{¹oŒÂ›À#'ÚzsÆ öîv9± Ȗ믊•÷J¨çÉ ‘üv²?Aðu‰~Æ\ú¸psIb +h…'DCöƧ:?®U7á6qmØÛ3r—ÞEv/ÎßÍ`Ÿ»iÓ¼¨~¶m%;æ:šÙî + èj3⋘Žb®oá-ÑÜFë:,ÀóäÄHnSöéaU¾‘Ù­ êQ±;ÆîX +ãF¯a½tòsàÅ°‘uiXÇlfŠÔÇڿ˜ÿ~Ʋo| ³±Ò³?fuq)¿UÕÎ;¡ž‰ÀœIè8ÀÂ#"|-£4ÇêthäÔüâСHM¯Pž‘¨õ¸ãFEñwZy®>ÐF+ëáq8ªJ©h¡á‰Ï2‡°ÄÁ¨k×0u¶C;`ï†dþX„ƒçMKÕà/·WÈË V8 …<_©\¿äÚjùÀ4nv\VäŠádQ¢jôyf|ó@uO€Ñ Îå'Ë%¾(àaq3¼\5L¤â@]줣¤S`êä}E\ÖT@ÜË6 É@aUFñ~#q¡Oÿ‡Íž¢”éÛò¯ê°YþfÉ_1}nb¼jn(™xÕ«É&ê{e#΋u‚˜FP…üÅ0qPQ:ýLrïn;,Ñüz2Vd_6¿«òœ—žl›—2į†GÂÅÂU‰Ð0ÓÞÑç.ã™»i×÷º˜Ü²“«OçØÁÀ¡@R9~¾nïªçy´ª¼%Ú ŒRÄÊÎù÷7o:àoçõC̽E Ä"Ï×Á†À?EEðƒ‘’eBÕ¦¿(V=ù¢ +Öýtºæ‰mîÓ3ÂÂ,¾”ëÚ#/Ø—ý£UõWFú¸lj}ÇıˆNò°”?2Öþ–¿)lIø«ïÉ$-jêƆí|‚ß63vÒêëç oßáóìEù>Ë[þÊàÊÿð†ÞbŽ‰¶hKE]׶8ùÙT3Ãk :¨ Ûæ¥È`v½yé76$Mù-?ScÕ6jýü›™¾Vß §Su4õoçÚªÿç‹¢íAÞX¥mtM/¹zúNF·÷5Q` º=‹ œ‹v ®Ñ9íÀ‘äÜ{ˆ`"pN-:»¸²Ùó MÌîxÇãÎB§ºL!M°áO i™7Ú¢{XIŠåAK@œi#Ì#öúÓ^Ò’]КþÌ)ç~N˜•½Ý õ¹ñ4Âà…FÙät ùpîþBò²îg××0SöxR¹ R#dÇF£ÕÚ;BÕ¯gÙZFêi¢TŽ7ÙBú ¼<~÷X&ky\ó«<'Ü&;-1Œ¥·>ö†_£ko£ö`Ì)t¦»nGuË,ýÈ°Š3Ð2­Y$+2n¢«%Tõ‘$…èì‡ šï\ªÌ×iðˆ¦ ê¶n[´o pßÕ×÷YÜ0ïw?ð=žÂ5i‰h‡_ mtÁåö;žŒ?¨c%VõXÖße3™Z±ED;°°¡lÙ€GJÑ_‰"*¢Ac…ª(Ä4²Q”`Í×ð^"?ªUömßÏ#©©ÞàÎäí`¶ÚòD³'^D)¦ÂÃ×ÍÃ"”M˼$>Ÿ2ÿžõvÚq…þGïšU›Wü} ¹”åe"¬K#ˆh-bÆÌ̸jœ‹9Pñ—ž‘ì(¹ûò±äS÷i9›}kÛõ%|ß78Ã}0ÑEb?VC]P3©Ð6 j…+©­‘¼ç&“ùÜšðrÔM~”/ï7ÅL®a_îèÿ†VC§«g;Lsè1ÙÃ7°A‰©ÅM"ÀÚ±9›hæh‰Tí:/€/Ηýl ‘[Ê2Ì„=Œ©qŒ„Y‹í‘«…Öæ C\‘DŸ[a ’)~“;Ô‡µI \Ý4[|xöÊa^%=kÀù$àÄÆFÒÂâßµÀ x̽€XÅ‹ ^¬g+¤kÖ ÿÌ‘¡ÔÔ‘Þ”{?… XZÈän³-€¿Ó÷ý|ºn|¨ÀÔ7¦cðLÔo³†&kƒ´tÜ4¶”OiÉÜílEøç눼þÈ{*Ö´/tÐe…Å ¢w߀»†bØrð?Úc ;§¸†õ Ô2ºÒáA_çö Ù×;âÇe¼±rqôW:P=Âa‰­‹wà­h'dS½?TåZy¯?‡"<ñ´TÌÝȺDo;È‹Âá C¸ÙˆÞCög®¦Ôž»ôßRÀ™8/úÓ[œ¾×[•tXÕ®vÐÔ>t^o”¸Â¸š!=½0<I¼ÿ^@Æ0¼Ý«„}¼ŒóJYf¹wû—äÚdLÓŠ€É—ˆhÁô¦X/=Ô'ö™±ô&ðŒ{&E +IÉÛ›}«•lª¡|_çŽì;sN‰27v¥X6>¸MÌJƒÅ/Ì…AnVkQ6/#ým,Ù ’Ûé÷Qðè%\{¤Å>Û‹"ö-|KvRUõœò$øÕÅêÆ-ÖQÄ~ÍYӉׇÛ´yMÈvhÂ<•pHŽK­ *"£3Ô¼~«{ +¦sÅ—Œˆy*ÀA’¯Ó›mÛXÖ˜//s +þ¿Tíæ,½€˜à÷oÌãÎ’|> +stream +%!PS-AdobeFont-1.0: CMEX10 003.002 +%%Title: CMEX10 +%Version: 003.002 +%%CreationDate: Mon Jul 13 16:17:00 2009 +%%Creator: David M. Jones +%Copyright: Copyright (c) 1997, 2009 American Mathematical Society +%Copyright: (), with Reserved Font Name CMEX10. +% This Font Software is licensed under the SIL Open Font License, Version 1.1. +% This license is in the accompanying file OFL.txt, and is also +% available with a FAQ at: http://scripts.sil.org/OFL. +%%EndComments +FontDirectory/CMEX10 known{/CMEX10 findfont dup/UniqueID known{dup +/UniqueID get 5092766 eq exch/FontType get 1 eq and}{pop false}ifelse +{save true}{false}ifelse}{false}ifelse +11 dict begin +/FontType 1 def +/FontMatrix [0.001 0 0 0.001 0 0 ]readonly def +/FontName /OUFNAH+CMEX10 def +/FontBBox {-24 -2960 1454 772 }readonly def +/PaintType 0 def +/FontInfo 9 dict dup begin +/version (003.002) readonly def +/Notice (Copyright \050c\051 1997, 2009 American Mathematical Society \050\051, with Reserved Font Name CMEX10.) readonly def +/FullName (CMEX10) readonly def +/FamilyName (Computer Modern) readonly def +/Weight (Medium) readonly def +/ItalicAngle 0 def +/isFixedPitch false def +/UnderlinePosition -100 def +/UnderlineThickness 50 def +end readonly def +/Encoding 256 array +0 1 255 {1 index exch /.notdef put} for +dup 115 /radicalBigg put +dup 88 /summationdisplay put +readonly def +currentdict end +currentfile eexec +ÙÖoc;„j²„¼ø°Aw-åÎ=Ó%åW˜)-{Ùr½uú•)¯œ‚ßröA•ÉÂÜãE(õ@Úý{ë¹´‡º“Q»û|ü_‘RÑå» +ØÐÆϤëA³Å -T@æ|ýq|Vk¹¿J% qu8P¢øwÄGx³ÅªÛ̆ÖåQæ¯6K üªÒ-UŒ\§Ô%¡bÕ"t-*ðxÔõöÓŸÏÿJ‘+ +}ì3¥{Zà2ŽùÕzݬT2sÀ$ZõÌÑ&{Bè–J×{¨¥Þ£Ô!ŽfpÿG?[öTtkuœ'5O P 1òÍ[.®BÉB•ìBo0”Í ÌVoðG;£òwŸëõ¬CMdK†&\YT{#v¬ mÉ ¼E57ºG~ß¡ +‚3[Å¥…š7Œ3Å:&uN¡]Bä Je ¤ÎþvûÂ(âˆ7JIFO/kZ)C¦k“z«™*7¥XuvwšÄ Œ§Ù†øg&Ö‹¬Uüî+D­WA¥ÅàßÔ³íäÇÕPx;£%]r@¤àÿŽŸ¡G•®à€íå~fúJ4„ë8Øù{v”FMô¢øøâ·"›~¬ç’êwšv¬âÇÔ‡þ1µëþÄëI mJXk kŽÕéÅ51DžˆÞÆ[ËWoplã^(íï;Òw‚á\FÖôËIz÷H…©°y$—¢$r ´Ù./±xjÍ83›õÛîá>ƒz>æ½9÷NÑœv-Úòv£à)üTT£D*»IL}Ÿ¶q°â¨Ûbx×>÷öu}½®&é:Îë=l]Õì™Ño:··´‡ê¤E“‹­iÛ§í[A^–Ïýö ˆÇ[—/åERÍ;ÈñRé;”"Æ6(Å©³K?C!Í>;gh)¾Õ Ga¹ï 9nQ©ÝÀ<‚@æð†(<Úˆ›|+†)}ÕPÆˇ2&©±d–qmcüß#ãIh²¶èÃåFöeIû-ˆS³žÙ „näçÌ|{¥cˆfyv40®ûÂë]vO‡?ñÝ‹ZωÊN#Iî®'\9ÜwÉûÃ…P®póþº`ê½i­ì(ä2ËNzf¥¢ò¯ŒA¼Ê‘[?‘ùÊÿ}—Ó7NÛ)Å-tõ)¤^«EI(^Ü’M[ß Ò½¸ëTf¨[¾ë¿ËzÝé{ Ü rCÖ2®¿YócâCŤÇ¥Å¬­ùfåýùvËn­TîgTBgÙ^fº„O¤W¬ …¾3KÝgç³iuðèØ“e>öùN¹…וø¬¦÷q¨1ØS.ËÖ¢+¼0ȉ<á÷§]¶Ìvž®ÖmZ÷î¥ É ›¯û=½WVhY&Rþ{­!2Ûܼè'ëNr6ɱb k¤_ƒÚ©Ñãé°þŸÀ©Íáë'À@ˆ1Æá3µ{ðMKÝ€_öû_ÙÄGaÝT¿AbÊŠÍ0Z¨B{䤡 dÖå½2Jö–®ä>û 7RÓ‰ÎK¬7Œá˜×ÑØÁT;È°èì­+[4Bó*•¿q4~;7 ³D 5…W?S÷»&×3•¨ÑÞñ[Låíù«öð^'{ŒüP)VÌ´~¡B,›10Z]TûÕC2e;=@Ó7Þnú¯6 +|ŸõÕÜ,E µú‚+Ê»%¯ó_B κ7() †û…xK6™”üqÂÃQýðlÝ:® ¦É`qíÔyïiŸó_O£¾7éâMK!¿5°(sêf<ÊE0»HwÞZë>g´§ÄÍH¥Q1N‹9!å;8 @Úß™:€Ï¬&ê-(Dƒ00·ð¨ðfkC[Ÿ®–ÜxŒÝ'=x†ÁWHò© i~ +s§Šý¬w‡ù£³O¤½€Vꮈ…i›ÔJ†LàÓú%’•{ÕyݘFü": +®Ø1[ÜþÃï[ nÖs…ežá]-Då.–ò˜œct&_–CÅ$žãI]Dؘƫª'¢„‘ÎïöDG‡SÄQ$Ò€pªÕ„¿6<ÿçø°~ð"Dé¿gÕž1àoÔ/+8ó®á>ÜY½‚Xœ+®ÏÐê°­öÒ…¾‰¾Á:f«XMÁÜì¡‚(§~t~xŒÄèôc¨+ª`Hc‘äv"œ+Ð!ægãŽl;%kèι #‚Œšvì" ‚¸%ÛM©ÂA’6Ö†N{…È%º•]Dû²`;æ>Ië¼³æ£Æåg¶!œ¡CSièØØofÐÇgŠlu:o3 y–UðÝ¢×ð\aŸÁ;ì'“à‰f«@á›™vØ⬊þZý¯j NB²]ƒ¥ð.y¸iõW3Ãû 5{ˆŒÈ$";é×Yü]«Ž` !i1ñ{ü²±Z„°n|ó¬„VS,v¯6ÜÅâ.Çam$|ã%Ù>ÑÒâí)TC¿ç–Ôk"£‘3ão²@*RU×,ŽÖ6ˆä<#4Â4`ŒxDÆðÄo:EÖtÛ{M„6#:‡—†®š]wçÞžõ›CAªž•'j]¡=ûûK4ˆôîEAÃ=¤±Î:ËMOÔaÆÒ+VXÉ[ã¦b,ÝmaÙ*¹Š’Í69—ZŠ°]ʤ»¼ˆƒ|¯`ÊÏ?‹tvñFè¢wØÎr2)ÆЉÖ/ä-ãOv±5ÅÁ@y©‹‚9 ]º#Ðÿ×ÑÈùóx~†{ï! Ë£zÉ{TÅD]7ºÿëÉðdáì{“ù­ÒãWtòƒMp† iÚ(¡÷+\, pZ]8·¿Ã¢¹­wcl_EìØüÀ¸Î€G#ù×ÔÓ±Á¶ê­š=]Y7*œŽÖrƒQþ !WQÜÓ„rÅõªögàdM9ÀÓn*»P² ´¾ŽœàŠbß3„«éBºxe ö@1RhOjø……ù\÷˜ÍBycw˜zÆÊj eµµÓÓH×?Åé´ •U•~péÌE‚èä¦.¬kÇI“®àc4g<Öé»äÛBêºùZë\¿B«…5h‚r¶†E£ „d^ÅwªÂŠÙiµ·m ¢;õ2 "?Åê +]`_±©Z 8P\éÎôw˜œ)ƒ9%9 ó›d„S6ÔX?}†Œ+ãžLÉY¨JÏ^y@1ùÊè ë(h{U²üÐe²m«í,F/d䘊Ô"H7?Âj œV}‚ö–2 +æl +O´lb(FY8ÍGúß±í4°.Å eS²]¨<±²’b@{ÌɤA.Sˆ Éf>ŒoÀöL£Æ¡6—/Ýç¿”ÃÅOH®eAᤇÇôÎ#:jîå +´7 ¥À6µYäÀÐ^Rvr´é?´NøÖVÒIÑÙz1µ¦x^PAéÎÕÿß~¬æøžKut’Sÿ‘`ZƒàGR`T•g3ìHÁ4á×'ÑeKR `ªÜk+·«ÞáÞj|á¹7Üoà»HNPq‰JgÐ4Òíéà£{ù"ŒçNñÝJïÚØ.éñóôàÐGo[öyv±‘.IS¼+Ç9jÎU´Ld+ˆµ“fu”¼Ë¥Ä~mQ¡±fÃsGñMÎbÐ)êRY2áÄ>®y2d‰=¸ƒÎ»U•ñ¡eíëØüò¹8†@*<*?µäæ!õ.ìyŸ]PhŽNÖЫÑ1Ìq€ÃïærYgî²°MŽ´RÇâ/‹êÁ +ô_XÉØÎ仾ëru'Aßpue+Ë`Y>q† WòXG¼6dïˆ÷¾Z’ ¿ñ«e œå‡ÿ‚”õñúœT¹ø¢Éíï_‡…Âj^‹-æÑ'[n¤nyOZ£:OäþÔ?UŽ”ª§¾3z;Fraᪧ}/_ ›-àÐDŸ'o²!OäQ'‹Ê±LÎö@˜ ©Ø.!UxÐò~eRj=U=Î¥Dqæ±K¦ß’&žu9éûÍq›ÎD<:ß µ¯‹áLb½.3¼ñÿ„cäþ%Úx]«×‰;®­ÁÄ ð½åaí¶˜Ry†Ÿ ÛZÚ:ÕÃl‘Ž¾ö^ùn×z!Ë/rüUŒ¦Õ¦î4)ÅhO·’MMdÄ͹æ’þÖ ë14õ´/Xû‰·sa°0"îA«ë¬µÇõer™á¶’lŽBNŠ rŸ8ÑÝ°Yç~ry9‹h‹Å?êchÙž–!ú„c +Y猅OŒ½Ûúc¤õÜ}q¾5Ÿ—–\¶ú–(ºyÕ!ý¦^âÙë(L§¶ 153Ùjv‡zôhŠÒÕé9é·”®Šæ—7ÖZõCYöå³€¹ÌOÁàª:,!·’ýU…C$*Úh[GÂ%4èO†ô¾#+¤y“–6"Ð>RR-:#ÉXL%¿Yž¢ÉD‰d«­,[Þü¬®®‡F¢Tê ¤ˆgËXc‚б¿½:¤o9LJ•\{î„­ðÿ¼h%v9õ'tÝUB¥´¥QÅ•&ƒúFÿpÅÔ¥ÛÔ,8W‹åë—¶öëF¹ÏFŸ˜“À-Q¤EW¼ÐDE²zÑ5sž#.TD1R0„ÝŠ¬±:û$Ý}+ƒr*é­W”ž›ö€Þ®Ub¿œ\]E¨vs|Ã?Lko²¤ŽO®¤ÔþiÇF‰Šx•Í(8‰z1áùdƒÃú8w .ðb€"œ°%K^i5…Ã9ÁC|÷]Jçä4¡ptjŊÑC”˜È‡”‹Í +Ä­ÔGeè‰å/" #ò ß@!aM†bòE±0ñ­Á›ÒU?¯\ ábY¤Ó½ë‡÷Iƒ¤mÊ—õ.Ç`xò+Ø‚“2qZ:j㱦étWM½°Kª;Æ8¯Æ¦Aœ sì&qü\oq¨ºŽVjQ %i®3k’$nõóõ'Ã=ŒE#*à +WVV ½ IàPQ8ë€ôãý>Ôài Õ4bm ¤miûåšÊ¾Ñ.P`²W0ÍÑ'2ó†0æÖÜÎvûwl.]e‹l™Ð‚íùÝÅ!®Y——z›Ö"ËýƒFßkRÍ™¶ÕÎå,­š`ká%‹˜Iubaün\þRÚ‡udÞ Í:tÜ?·°ìY¦SŽúû¡/WXlOé®]Á{¨j +À±f—•ˆ_‰p|”åê=ZO›Ç(ï+ªý`ëH +º5 ~šœÑ‡7dhÈ¿Ö«]VÛ1´ÕÔ„ìœ2¢ÐD(ÎW[Ã/tG +W ”(µ ìz ŸKø¯ÖèÁª3Z!‹>ôŽL§‹ßW×aF§;®‚w¢0Þäc¿³èA–°”Ü‚ìÍÜLc»Ea;ã° *DGµ5€HXÒ&Æs¸‘wÈ*ñø—¡’ÂËä;êäs(­#PBÙ¾ hoOt%ŠJ»Ã ÃuÑöÞ.:üñô–ˆÛƒƒ ÿ&eãåss¯E¤Æå3aÌ•*™þPê›v”*¥k]5öDû6æ?¬xæ3à{Û%·Ð¯Eó¨µiVÿÀ ÿjÆÓ¨¯¹§”P£ƒNx[šö ïЩnôP×Ú1#WÐv¥›A8Þ¿6¡dz“¸LíñtGîb5Püw,.½#g»«…ŒþÐF:ÙÀîð4ý:uBV÷@aOå•2¥zšn!Á `p»gTwa„GÜ7þ”Ý= bézêsÔФ½¤–Y@«¶}0Š{9üBî6$ʗԧЋ>«Ên4=#|¨hý~ùÞ•4òR_=¯ÒåÌ !៰\Sï‡Nêú˜Ð¼».b³ZÏ&¡z t¿Š~‘^´ûÆ×±¥¨+[Àq'¸ˆ_ `XðüðµÈ›­øÆ›ÅìSš¦]¢LîÛgLovc—ž™È 4×ÒË£kR‰.z›SŽûÒK.µ$ƪ½‚°o³ã”5â™øœänÝŒÖPƒìWÚè Ej I‚ÆSnÚö$I~9VTm'`_‚íöJêMšWýÞ®8ôã·çœë>`ÒQ]K¾_CP°¤(8¢!ÿÎJÙªS׊]líóÞ¯Ó_É“ùBAŽ‰LQºs…&òúž^¯œ +1Ñ_ú%Îù@quu£=‘8ùþèÂLTUÒ§Ùã{]訯-S¢ÂHp‘ׯ‘†â°/[ZÁ +endstream +endobj +1970 0 obj << -/Length1 1599 -/Length2 8420 +/Length1 2045 +/Length2 14638 /Length3 0 -/Length 10019 +/Length 16683 >> stream -%!PS-AdobeFont-1.0: CMBX9 003.002 -%%Title: CMBX9 +%!PS-AdobeFont-1.0: CMMI10 003.002 +%%Title: CMMI10 %Version: 003.002 %%CreationDate: Mon Jul 13 16:17:00 2009 %%Creator: David M. Jones %Copyright: Copyright (c) 1997, 2009 American Mathematical Society -%Copyright: (), with Reserved Font Name CMBX9. +%Copyright: (), with Reserved Font Name CMMI10. % This Font Software is licensed under the SIL Open Font License, Version 1.1. % This license is in the accompanying file OFL.txt, and is also % available with a FAQ at: http://scripts.sil.org/OFL. %%EndComments -FontDirectory/CMBX9 known{/CMBX9 findfont dup/UniqueID known{dup -/UniqueID get 5000767 eq exch/FontType get 1 eq and}{pop false}ifelse +FontDirectory/CMMI10 known{/CMMI10 findfont dup/UniqueID known{dup +/UniqueID get 5087385 eq exch/FontType get 1 eq and}{pop false}ifelse {save true}{false}ifelse}{false}ifelse 11 dict begin /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0 ]readonly def -/FontName /VUBHOM+CMBX9 def -/FontBBox {-58 -250 1195 750 }readonly def +/FontName /HKHZAC+CMMI10 def +/FontBBox {-32 -250 1048 750 }readonly def /PaintType 0 def -/FontInfo 9 dict dup begin +/FontInfo 10 dict dup begin /version (003.002) readonly def -/Notice (Copyright \050c\051 1997, 2009 American Mathematical Society \050\051, with Reserved Font Name CMBX9.) readonly def -/FullName (CMBX9) readonly def +/Notice (Copyright \050c\051 1997, 2009 American Mathematical Society \050\051, with Reserved Font Name CMMI10.) readonly def +/FullName (CMMI10) readonly def /FamilyName (Computer Modern) readonly def -/Weight (Bold) readonly def -/ItalicAngle 0 def +/Weight (Medium) readonly def +/ItalicAngle -14.04 def /isFixedPitch false def /UnderlinePosition -100 def /UnderlineThickness 50 def +/ascent 750 def end readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for +dup 65 /A put +dup 67 /C put +dup 68 /D put +dup 71 /G put +dup 73 /I put +dup 76 /L put +dup 78 /N put +dup 79 /O put +dup 80 /P put +dup 81 /Q put +dup 84 /T put +dup 85 /U put +dup 88 /X put dup 97 /a put +dup 11 /alpha put dup 98 /b put +dup 12 /beta put dup 99 /c put +dup 59 /comma put dup 100 /d put dup 101 /e put dup 102 /f put dup 103 /g put -dup 104 /h put +dup 62 /greater put dup 105 /i put +dup 106 /j put +dup 107 /k put dup 108 /l put +dup 60 /less put +dup 109 /m put dup 110 /n put dup 111 /o put -dup 113 /q put +dup 112 /p put +dup 58 /period put dup 114 /r put dup 115 /s put +dup 61 /slash put dup 116 /t put dup 117 /u put +dup 118 /v put +dup 119 /w put +dup 120 /x put +dup 121 /y put +dup 122 /z put readonly def currentdict end currentfile eexec -ÙÖoc;„j²„¼ø°Aw-åÎ=Ó%åW˜)-{Ùr½uú•)¯œ‚ßröA•ÉÂÜãE(õ@Úý{ë¹´‡º“Q»û|ü_‘RÑå» -ØÐÆϤëA³Å -T@æ|ýq|Vk¹¿J% qu8P¢øwÄGx³ÅªÛ̆ÖåQæ¯6K üªÒ-UŒ\§Ô%¡bÕ"t-*ðxÔõöÓŸÏÿJ‘+ -}ì3¥{Zà2ŽùÕzݬT2sÀ$ZõÌÑ&{Bè–J×{¨¦J†‹¦f^Ö·>½aq4±!¿Ù<ªËÏáËé_CªãцcQâ%BÉélSŸ¾ ³7§Òý1_£ -sQ¾çýz‹§î5>­Š¥?™ÛQæñ;8FË}»Q|-Kˆ,}áç>PD -ß65Öü”Ñ~`dU6+[\5Ñ‚qƒFB>œÖ³™¥³Ú1ÿÀ^;´!'ƒVQ!Ÿ<´£$6¦jT¡&ÚÖUV”úÏDq~¯`XhÇZÊwU­Ü çëWÙ67$hV%t°Èjßúâ6¯¿~´hþù<Ÿ5 À6{O¨é¥ .o"×F×—lai‰!ÓNš—;“/­‡ƒi”Ãìe L5s¹h°!¤äù¤÷YîÀBÕ y›Ö»M~“¦Œ|M‘{â\B3¬†Ö‡ÏÓxþYXÞ¨ËmÏê±Ho%l¿¾„)CKF–uŽîÔ´l±Y~ù«<,’•þ&îîöZ#^gîïú‹¨®xà'6w¶B8‘¦IWØ°~Ö÷D.TªPž>¡ÚK¿oN‹çzÏS6ò=¥('a`¢¦°•ÿTÑ seSd¦DVzÛL^¥†«¦Ç|ñ§¶kb=yj‰”öšíaIó>ŘÄÅ(×¥4^í?¢¯ 'KÙnêìˆ`Ð4×Q˜9„… . Éæè`Ý…3oh~äFºq©›¶;‰zJ5à»Ù0“òEÃüýëPûÖÇXæ*ÆšÄQ ÿ¤ã—˜Êk–4]aØÒ¡pM9‰\‡l[žø¸í³Z)uÆ”T\0k´eøèbI±A;Ô/{c âJÿ‘nøÿåâœ^ÔGk÷gQìÍ0Y›'ISD;A¬ÒÃ3‘ë9 €hˆî?ݦ”bÊJU5Ýzw –ŽÝÆj–pJBÎUY{e#ÙFws@ºrá˜I–Sp^YoôZó|µ¬ä5Ÿh2¿*Ù„E¯ËA4W¶?£ù|ÅßÓÎàPC¥Çùx˜' €”¬Ð4 -vÂ0¶U„'J‘#oqœÓ‰¾èÄÿY%egæúg|Ø* )SZo8r;8­žWlv"§r`½¤U¦ÿkÝLùÑ=„Ú=«®~V» -Xµ£Ê` -ÇUvSÿ‚w;8–úw®wH_,­^~Ãq«\á”±3Ê[Ål&8E}®;`ëƒZÚ«)™³·“HZï»á/€¿I ÐÃ;3w -h÷¸$j/z„ºá/^,_ž¼ÔC™ž¿~ç¹A7ŒÃkâÛp·þ‰´RhbK ¦0ŸôŽÓsQrIšæ;YD›4uÝ-:žpÙø×¼V¿1Úy&þò<ÊNïIÓ/i -Û7ê‰è½Þù#‘¶Lµ18éÒó1ñEð@³)T¯`Bßøf%·&Ùdϧ‡^¿ùcÜØöhB:~7MxÌkME1~Jõ˜æmV±ÈeD÷½ÓT<Ê°04­…`ÔPÆ™èLn+Òk®kF£Y‰ž „¬ØÉ8pœ¬8Š´8‡FGS/„àÕsrW1EH=>ñEÑFš¼#RdÈ·nûf©æÅN¦EÆzfL)3Êxg2å3) -p°EYÚ%¹NX›ž”²Aîø¡¹@WQQèÈ À¾Xÿÿ$r d7‰U¦m¢wKÌ6+¿2¥³ÙaÔÄî¦ó •ãà°¢,n·9Vb¦ü…A:’Þ)48ö ÏzŽË>IŸ’mÌ8âŸXCÙ‡LF¹ñʺߦŠŽkôg'fœ 2 ÞÓz?qe3?¬òáž-&1VK´l¥/›>4°(ÑðìÓþ5‹pÁˆ,æJ²àŠÝr6`Š·p–íÔšÇÕÂÇÎd׌çÕÜòü¶^dÞ'Ù;¬©@8ê]”áÜÕmB‰´Ì¾ÍÊ"D®‘—%¸ôµÂ¦Æi¥Ÿ-{™¤tx*yæt:`Œ˜Z]ãKš=.êÈÒ;Tƪ»ãÙX™áômÁÀj‡ÜÛÁ n×ѹ«5ù–&.’¿F~ÄP]^·Š7FoQô‰v3Þ:ƒ2­êÝr˜HS‹7!’SžÒ5Å·Iž›ÍººSvG0;=Ùf€¤/bklî9dÚŒ ñn&CO lªÍ"*e¯@n!6È}Zj´ou #€|è)ýfª*¾Ú¥,E^÷µÄaèø(,ã ’“®ŒLã ¢‡A¡h”þÆ_üâȪ´RlgÊöYhšaÓÆ—±¿½¼i% üö)£¹m`œRÎøDêÓ‡O4;¾‡X© µŠ@Å4â³cÃÝhC.Î4äFc|E—-¿ýøã5¨ OA)R‰3€÷¢–N«{o®Å`aYUrBs -15sÜi%²ZÏY+‘ãW;×þ/J"u¼Îð›;ôåœÌÒÅDgI x9©"rwÉÅh -‡«RŒ®ÊŠ¢·ß~Kh£‰Rê^ÊíÃ44¾Íás‰7MŸÖ’ŽkÖLÐíèÆõ‹¿˜ŸäðÆ%ÙvOqÙT+„o—ºvlo\+õ»pÀãôm\ÑgwÙ§šÓ 9¡¾¢½_–8ižàö-d) Ä©¯±ª#C…M# hã8p±¡žòU"w.WV:Ê Çœã‡Oc #›’Ý%ë€æ^ìoF‘‘ÿxE›§×ßõkl Êȃ°™<à6wyh—[$»fÂðu²¥žqƒö%_ÖCnŠ \ÖÅȪüpœà#ªvøM°ÕªdÒÚ2Û Åg ©•jRÙZ,xœ¶ÄÐrÎF8PŒ<(Fƒô`ÞÁ~ÇW¿ç/dê·CnÖÇ—t˜ÎPÌöÀÃ…³½fÎñ"ä«'nLŒCeÈJ59&yŠÛ„eú^›ËOäþµÔû»IºÇ0\Ÿ¸ß^P¨ºÈõ«KàþÔG¤dó³@2ʨ™ Öü¡󌱇ˆl¸ÌÌW/ÊrZ…ŸÔ\~l·dB (#o}ÍHZsw¦¤™HoÑ܆ÇÉ0Àì%o± ì®E©=’ßä×øp€ãdKž)œ«Ýêæd£/¶güµèYÈR[+7! ‚n´Iýw·Ò8ñª ÊM±F'ü/©ä`6-¼†µd¡9»¯Wt×ß{Ü`>²Pš•)$üéŸw>]ßè{¼¯ ø_JJø[|£°ïaïJçЪCíWk΢gLsà 1/UŒ¼ wÆwßá‹ëKO•w†Zo½Y†þz8gÊŸà821˜ôƒôˆZøöY¾YKÊ%UWˆ`·ß¤þlPâ`óB¾Ö?º1e1 tß­íÏc`jýD]ê¨Òìøñ< j#ìôSúÀkù@_6&ûú…Ä"|Ç ùŸ 135ÿœð†”ë~Üâj–ò¬5“Æjag+PCöTäÐÊo+Lx‰I”–ñ@ùþ¸ÛU‹úÎßo‡ùŸ†W¸.Ÿ‡0ò#íß6ü˜Û!›$‡_ÒùØȧšØû`íárüÊœ{sÔ{]˜ - òÄݤ¢"£žAömÓ©e~]¶iæ ›œáox;½ƒÄ¢ù¦º’)˜Ä„Ÿ™»›vš{¢Ô’¯N…µØË¡ûªôÊ€8z -ØD4º½>Êuäqlž°ôòýêGm¬ËtìŒ -ZбèK±ø’`˜4Ò³WÙL d)yZ£dÆ\mÌÖ: ì·‹Ês€†0Ùj -¶dÍÉŽ±aÇtá@‰ÇÓ™ÕV¢šµö$Kas¶þ)äüÜÒ~Šª‰î$8ò+ê\[‡ýø)ØK9¡«‹§+Ä%?¸‰†à< $_nRÆÌnWQ-ÈùU*ô§ƒu¶pÄà4Š[¦iÐÅï}H=“¥`SUÕPa{¸½í0'ÒQ®æWØ^¬†tªÂæ¨>‹¨.9ñN’ö™zlÉçcª ˜€»ìŸºîð[=“ˆ¨]8õõìæD§À’8"Q±L Òwek\/”°³+w^8 ZLn}Š÷69þÊαù$«Á«uT[®e/šD”€jFš¼åã„hÛGÄŒ3eÅWfÿTf!>ê×è3rçún_&kJ¶ÕÓÝÎne ¯û¯ŒmW%qúƒÒä®*¬óˆ5ÔÿsÒæI³À»³soV™goÍꡯÇéâ+úEàÆ¿RÔ7lðl,#â4¯Ÿ~²â^Ñ$)ÁïCßñÈ—¢¡·`ÿPéƒ{ RóæÅü!›0K?.õ&V˜í—­¢#fR¤Gû/ñ¸Œç0Q îšáSÐÁp›Ç¬e,W¨¨4`W¯ä16» +Bo5@ðñ.Áù{š’±2—°¢7qG°iÊ£T®•µ«Ãðj“âz”pðÝGrb`ìBn] ½5ú§äÑÂEŠŽPƒÂ£*Óœç-f?—Î7¡5k­o2|pw¾lÀeì›P œi׺Iôë—ëö¢ÑÍ’ws†Åz;SfÎT`D•±‹ÕeÙ/:M#,N «ðØçCÒÇú@ÁXrÓÙ“ÉØÃÑnÒ_€Ê´ñMÄì´[HÎãÜ-f4#uûßã/V©€N¡y\#­x[6¹Â§4ÁÌ·Õ,¢Á.aÁIÖ-DŸÍ=œ(ëãˆAo.€‰Q$·-àq ª4Ïù÷rh!¸-ïái Úv¶fèrØ %¦ÿó/^ç…Ú -)úp*d'›D_må±Ó’>l½ÝÒC~¾µ…tþþ/a$Go¡@ÄÏâÜž+ôÆãA¬“9IcUþî!¬£û}“Óê–ê­ž–pI¼G"±RUÓÌòëá)صJ@®ÞÕÿuºÐ†é‘ä`ŸŠYϪ¨C÷uJï‘Uèm8™*8…’ ›>B -tk1”¶¥@Í ¶Y ú¾lWäÏÌ3•[àì¸>[6¸·Ê&ÜìÅpúCÌK¤¤¡Æ£³Ü‰fÜ&N¯0ýª]X?µT¢pŠP YÍöŒƒ¾,y²¶ïç°¢œÑ)4U³Ób»ãj"ðšf«hEWdÄjtŸ_ñ¨8‡ þº†Ô|\òüƒ´šYNÑÿe„–Ô­Öã5쀬·Ñ‹; 44Ye*C#JŽ·aÖhTêØþ±+·vÐÑXý{\6)Ã)ºö´ÒrñfEŒ÷ûS‹¿®Ëд5‡àh±sdŽ°U[YäÅJÅ*ºL µ±|ogó«Æð9³¥õ¾w>!>C4ã?m/ë.qÊÇØ߉½‰K|¸8ôR1!õ>ÄúÇȱÍ:&æ’í ¶·Kù¦k¬Þà¼q ühŸÈ!Ê…ÆC°›µ³‚4Êk<ØÁˆàídq•¤aüeX˜&ÑZ;SRÃMsƒò©ëh>‹<^ìçž.9Ù æ3n5¶‹%ÌÙ +YLjQõ»A4OV‡Î?¾r™%L–¢„¢xÉÑ”*gÃ0f´L¯jl}º«—ùîX€¥©l:áÅD0_Ãë.°4²‡úÀw¿-bm!ÕxMŒá‘˜]&(3C­þÑXj‰Èƒ; ÿµ&t]ÅÊuÕ÷`N¾¬Á ²ŒÐôXïº+]Gê -‚ßÙ.ÅÊÇAnNLZ¿ßLªpF±&¬rwØÉ4?ÇæÇ'YñíÜzBü6ó—Vý‰V¯b“Ä«¡Ì‘uvf „R×~tg£úReOÏbv+~{ñe½Ãç{4Q‰e/éwDÉÏÀákˆ“!øP§¿¿3úF4佑‘\ƒ×ˆ`3LÒ¾5Ü]û(qF‘òðÍø¥:Ðqpæv€ì=ÔÛÄ Bÿº%NQ¨újS.n}‘ù©ýÇß(°úÑ玜hqò‚r fFÎÖu#¦;Œ¿‰ô<¦åW49EùgL¨ŸVd+*J…`(Ê^ZÇnÁ»ðŒqͽ£fˆN_Ö’¹xñƒC²Â×™’F¿Ø¥Í…9È"ĽXˆ9¯qŠlŒô´êyb*4ÜÏÿþ¾¦#ÐÀ+jºc=?gey4¥¾JYa8Öe¨ü€iÔÑöN¶Ï{¹oŒÂ›À#'ÚzsÆ öîv9± Ȗ믊•÷J¨çÉ ‘üv²?Aðu‰~Æ\ú¸psIb -h…'DCöƧ:?®U7á6qmØÛ3r—ÞEv/ÎßÍ`Ÿ»iÓ¼¨~¶m%;æ:šÙî - èj3⋘Žb®oá-ÑÜFë:,ÀóäÄHnSöéaU¾‘Ù­ êQ±;ÆîX -ãF¯a½tòsàÅ°‘uiXÇlfŠÔÇڿ˜ÿ~Ʋo| ³±Ò³?fuq)¿UÕÎ;¡ž‰ÀœIè8ÀÂ#"|-£4ÇêthäÔüâСHM¯Pž‘¨õ¸ãFEñwZy®>ÐF+ëáq8ªJ©h¡á‰Ï2‡°ÄÁ¨k×0u¶C;`ï†dþX„ƒçMKÕà/·WÈË V8 …<_©\¿äÚjùÀ4nv\VäŠádQ¢jôyf|ó@uO€Ñ Îå'Ë%¾(àaq3¼\5L¤â@]줣¤S`êä}E\ÖT@ÜË6 É@aUFñ~#q¡Oÿ‡Íž¢”éÛò¯ê°YþfÉ_1}nb¼jn(™xÕ«É&ê{e#΋u‚˜FP…üÅ0qPQ:ýLrïn;,Ñüz2Vd_6¿«òœ—žl›—2į†GÂÅÂU‰Ð0ÓÞÑç.ã™»i×÷º˜Ü²“«OçØÁÀ¡@R9~¾nïªçy´ª¼%Ú ŒRÄÊÎù÷7o:àoçõC̽E Ä"Ï×Á†À?EEðƒ‘’eBÕ¦¿(V=ù¢ -Öýtºæ‰mîÓ3ÂÂ,¾”ëÚ#/Ø—ý£UõWFú¸lj}ÇıˆNò°”?2Öþ–¿)lIø«ïÉ$-jêƆí|‚ß63vÒêëç oßáóìEù>Ë[þÊàÊÿð†ÞbŽ‰¶hKE]׶8ùÙT3Ãk :¨ Ûæ¥È`v½yé76$Mù-?ScÕ6jýü›™¾Vß §Su4õoçÚªÿç‹¢íAÞX¥mtM/¹zúNF·÷5Q` º=‹ œ‹v ®Ñ9íÀ‘äÜ{ˆ`"pN-:»¸²Ùó MÌîxÇãÎB§ºL!M°áO i™7Ú¢{XIŠåAK@œi#Ì#öúÓ^Ò’]КþÌ)ç~N˜•½Ý õ¹ñ4Âà…FÙät ùpîþBò²îg××0SöxR¹ R#dÇF£ÕÚ;BÕ¯gÙZFêi¢TŽ7ÙBú ¼<~÷X&ky\ó«<'Ü&;-1Œ¥·>ö†_£ko£ö`Ì)t¦»nGuË,ýÈ°Š3Ð2­Y$+2n¢«%Tõ‘$…èì‡ šï\ªÌ×iðˆ¦ ê¶n[´o pßÕ×÷YÜ0ïw?ð=žÂ5i‰h‡_ mtÁåö;žŒ?¨c%VõXÖße3™Z±ED;°°¡lÙ€GJÑ_‰"*¢Ac…ª(Ä4²Q”`Í×ð^"?ªUömßÏ#©©ÞàÎäí`¶ÚòD³'^D)¦ÂÃ×ÍÃ"”M˼$>Ÿ2ÿžõvÚq…þGïšU›Wü} ¹”åe"¬K#ˆh-bÆÌ̸jœ‹9Pñ—ž‘ì(¹ûò±äS÷i9›}kÛõ%|ß78Ã}0ÑEb?VC]P3©Ð6 j…+©­‘¼ç&“ùÜšðrÔM~”/ï7ÅL®a_îèÿ†VC§«g;Lsè1ÙÃ7°A‰©ÅM"ÀÚ±9›hæh‰Tí:/€/Ηýl ‘[Ê2Ì„=Œ©qŒ„Y‹í‘«…Öæ C\‘DŸ[a ’)~“;Ô‡µI \Ý4[|xöÊa^%=kÀù$àÄÆFÒÂâßµÀ x̽€XÅ‹ ^¬g+¤kÖ ÿÌ‘¡ÔÔ‘Þ”{?… XZÈän³-€¿Ó÷ý|ºn|¨ÀÔ7¦cðLÔo³†&kƒ´tÜ4¶”OiÉÜílEøç눼þÈ{*Ö´/tÐe…Å ¢w߀»†bØrð?Úc ;§¸†õ Ô2ºÒáA_çö Ù×;âÇe¼±rqôW:P=Âa‰­‹wà­h'dS½?TåZy¯?‡"<ñ´TÌÝȺDo;È‹Âá C¸ÙˆÞCög®¦Ôž»ôßRÀ™8/úÓ[œ¾×[•tXÕ®vÐÔ>t^o”¸Â¸š!=½0<I¼ÿ^@Æ0¼Ý«„}¼ŒóJYf¹wû—äÚdLÓŠ€É—ˆhÁô¦X/=Ô'ö™±ô&ðŒ{&E -IÉÛ›}«•lª¡|_çŽì;sN‰27v¥X6>¸MÌJƒÅ/Ì…AnVkQ6/#ým,Ù ’Ûé÷Qðè%\{¤Å>Û‹"ö-|KvRUõœò$øÕÅêÆ-ÖQÄ~ÍYӉׇÛ´yMÈvhÂ<•pHŽK­ *"£3Ô¼~«{ -¦sÅ—Œˆy*ÀA’¯Ó›mÛXÖ˜//s -þ¿Tíæ,½€˜à÷oÌãÎ’|“÷sVÙiHÂÞ­âkJ‡…KyÚÔÃÑàüuK—I[ÏÆ„(,M’=þ¬äì}µ%½vf†º'°–äE+œ)ê}fƒ¢Æ$lÜö(…ÔW2[8˜h¼T>¦Ü9„º€X33 vi˜®U/µçÇ¥Yö{z4þ¢ó¾¾B&Úq¯‹nŒzà³Ü|š¤¡úï1/É´c™±ŒCzwmáö|¯xá]LÇmo¥}­z¼m5íà׎Œo: ž©ê¿Š„.º‰"­ÛãĈõ¬d¨N «úôÍÆo¼3 +v¨Œúëzýëš N +p´zªP;VÒ¿g6ǢŠ>Ù,ÿñ>º—O€J4mA0ÌýR3¶Ö¹*È{¾+¢ºä9á…iuåÏM”äO@h}-Û(Ž ‚Qȃ钌¼Aàô¹Ÿ‹)Ó±Ôí ¼¨=.9©çœëô3góœ=[¾_ÿbÿo_ðBV¤ßúƂ˶òW"í䶛ÂàaòéoZFsO‘)„”¤%ïd2ò¹wŒN»­ÓH>õD}õðÛ‘ÅY•¼í´±1jZ®ƒg¨¿1b¾¹œJªa|`¾h§b)ÁwYƒïc[&0j”ð²X7yøg +˜hS·…¢&}pþ-ÒêfÖ^ aûÖ_ +Ål4zVéóènRóà¿_e@¯³*z|–‘•Wi.·9Ì)ŽÇ™›B†SŽßs3Ïk ,^Œb’šðz˹a Ë…4_BãêÜûÆÎú1ï+ÑÚÓìWµ²2ÊpoœDûœ«‰¾x>Êf×H³ú[]TEöÁjšRÈŠ~/+û ääê š˜Ýl8äzXÜ’p²ôŸ›H!V÷Üd¶!¶€;d4¢£T¥Ù5:,ãúv#cK*ÜÖ;+zÏXŒ¯z k ¤QÓßwÅ>aqÆb6å1Iú¹ÎK&…?eÐÕ÷‘=ˆêf¹¶<ðjKüŽÓ$k¸löÞ%_ôm$]™9ã-ă åkaLËÜù˜TÏP1{Ðn ‰ŽÕžFÚ{bT½Ì¼f†âí ­{‰LÒë&ˆÀÀ +ÊX9ãʦàú÷îµß>?Úä´T ØÈoîRwšÓá: +‡›e¹ï +/ò ‰ºèÁyûí¸}„ ‡tæÚX¢ƒº"7€òqt„àfú}ÀæÑ”)°†8SRÓX•y<œs´2j•O^¼áƒº%À Uº…à{>Ô/ ¬¯©Cmoßå0Î%¬}¡pÛdç{h4>ŠŠ^wD¦ð@eQôdÄêaidYÑ^à@¿µ?p i3;²BŹAeûûÇôõ Ñ"­Kcéæ_ + +ô>üÉüToÑ=¤*¸ÉËúy¤€Ù#p$™UÎa¦€²€5Q2Z3:·Èw’ÞXê<âHY°Æxv½}€äF-$›"›b!(µzkDQRbt;³Çéj¤¸Äk äNö4­Ó4ù™ôß³ÜÿjA*›`gÒ‡Qª±² (¦ç;Ë°Q U„CpbèÍ@;øÃC9eé&F[(‹ +¢ü…ùù¦?ÎrŠí˜¼º_ô®…ÒfOWÞÐ㨟¨uù0Ý÷‘k/’®&¯5õ ÉÒ¨ùµÕØ ±-ßLYVZªbì4Xž[Ì0uÌj>EÔk²€²!XÅÀL¾¶ø¡Ç‘U—°ö›ã M‡lúTHÈnÒþy›ÄeUÆÆÿüs…AÜœŠo…3Î|] ¯]™äæz¹ÝN®&•”GÕU1@µ†./9;ÇÑIêÏFz”$¦¾€UØ/Kl×f6xqà  y +²w}±‚HH/³*%úÛb•k“¯üY±yoxжj®î—x£²S½˜\yµ)n?ºžVè‚J¶ù+Èka… [zÜÌf˜±€—×fI*Ý[f=M3Ó)%¼ñ©®“qª®¶O(¿\-Z!ŒžëJà +H)rQöµQ5ö£TbL}/>Î5kì÷=Qw¢Oþ75üˆ#:•×,¢U_LP?‘µÇÊNC®æSMöÕiïÕ Ú>•ÆÏ÷ˆå åñ3*×j#WÃDê8è‹$òÓ|òž!·FŠßÊÌŠ¸þéÚL“;_ +dQ–JI$¶º–ÃYÈ(ØmRqè÷£J[’~fÖ9,–«6³â_1ú£Ó~w »ë©S,?1?ƒ óÖAÔÅßyl(‚ãL¹Ït» ïUîìè À«m@Ò*ûT9ÛE¹¥WOg-Ú–ÖÁŒ°HépæaH"\z¤ýÂ/ÒÓ„EjV{1‰ó1̃T±•VLýÒ5yWK|z€Òóã—ð|Ú¶t¤jBdé…V=®zÙ3ÚÀTÖJ~¼æ[²¾µþÕ3`ýv þpnrƒU MVWª›ö.çY-t虘鰭²2zÕñ‘„¥‡ +«ìKxq3Ã¥àÉ_t§­›éÐ|ÑW×%ˆ0£Ì=æE‘@¯º”.ï2^àr³¥:Ÿ(H>¬eèÚPÌݳÔ;¯÷ØÇס„}mWœé-ñµMáAÎzs`sb}žŒÙýÃs¸@_“s¼/—žãFˆ¿„O’E«—lî‹Þh\G`böa8¤š·$(ÞòÈ^U3¯qš´ÔõïãóC"«ÿv¿‹¸õjþ?˜ŸúÜËAÓ·æ5.¨s:¾]Ç;H2®…½²?l¿´²cäþP¥÷ô!e£Ûê-t1ŽØ//Ç‘b<†•“Üýkû/å{ßéÑ”o›Î „ÍÆãì¥8G%‰pμÉëÆ·Mñ:Ó•únýÂ$cS€ë5!ª’žº0•ŠâÚ@…!–¶~äD Ó#8; ¡ò´ÿósŸ^ê°=gC𢑴Ý?ùèë×z;_]“¼r~ef H“¯‰/tü Ãóè6C©7GgŽ¹˜ùÉ:ùB=9$õñÇë$›*·6‘õúÈhrõ!ƒ e¬;èË€ÒWÅ.¨d~÷Gþ0E˜áÎ ¤Þ@1䶥xi°ŠVªq ‘̸¯«”­Öpçg¤Nwy]ßÖ\œÜs2qmîþ?ž.Ø¥K¶úö;{õõT¹4‚†ÀŸÂ§N¢ïÔà¾këàÄdàxÁIhE=ǃ§ˆ¥]’]r T’À} ºîI‚ûí›2Ý®# ¥‡™þêÅ[ °— +Õ’cuýy¹URkàQRbµÊ‰«Í¿†„|¼XPÔ V½Å(ézÞÑêm{v½ŽÃNt*ŸÌñšcD™±Ì’ _;tkÔÞ-›ê4%§§¶F¨ùï™ øÝí²AOŸ(®†sÉf±%(ÜûpÎDÛH"2&˜-pŠ Kï~°‰bãô3!=uEóQé”—(ëD<;³j°ÄÊ·úßÙIåù2s¢¶ßûA´g†G“ÍNSÇŠcÆ2Ôüº×r.†Ýã7ÕCŽ^CB á‹è°=ÝrÑ`–òœlq­(2]Ý¿™NeKè”0³ì?§Òp1–÷ñ ^˜ò`P~Sÿ=KÝÿ?EùæK››&³+ó‰£r\$2 $[׌/xÖp3¾ëâYU¡¬qƒµ*` r ©÷A ­“U8ÆÇÅo*ps ù E¥ölk§b@nQ+óÌ;R‘Œnž’‰2yφ¯„Ù¶}»èKéØKVTƒ#«8ጞ•pE:¾wÊžÑEc “ŸÃ¬Ã=Iõ鉧JÇ`ðÉ”X)RxïÞ’éÄx 5Ñ.Úh¨#ºDHêŸÙ0Ècµ~Á¹J¥ ㆸï¥:qÆÈhyKÝ´þF;Œ‰‡K› @û3Õ\îSN:8¡£'gé¦ßU?Þ)äÔRb%ÑûÚoŒ·€˜è>Š6 ãÄÇ~)˜ O’ +«©ÇXw5Í/"Ëá|k™¨(e$/ÞJ«¾G ¸à“ÇõÁž0Mõo#hpÑTé%Äòå-R (>¥*Îú Ò¨ìÈ25ˆh¼èïº|I.5uÁ`QP£÷Ö‚)`ñ©—QQǶé(ü÷4“5•³^§ƒÞ„‚M߯oˆ5G*`?ÍRFM¨ àÀþÕÌgãŽêpÀfÚßnþ¾5Æ1d¬¤¹‘íKÄë[L +y¸q ´BÀ¶$Ã@'ˆÊ6é!Wëà +ÎúE¶ÆI¹ï6ø,ûITÁ$‡þÎy›Ù‡î“H–pi¹æÿVchž]l&Ûß¡FÃÝ:¹ÂO¤é$#ÈŠ!D:¨‹…%)aã›Mx“ýÈÇ"_L—ú?Âd*ú:‡Ö0ï2]7x(ìº4p ®P8¼*.v5žsËb<õŽ³]LQ†0ï*ø¶Kí•×+·@>e.-ÚoªÓèþC®–¡Æ€lÊïÆÑ\~R+$vÃo–D¥™Úg†ßþyùê èaÛ|nŸ“)>1–¡°©£_ù|hv‹D5²"Pt#'ò†å¾¹‰.G¢EîSJÏW˕̪N AZâÑr…ùâã!Éoí¸ì¤"ŸƒXýFÒÃ-øò) $^Yá±|i R©ÆA5ÿ=OgêÍCna8z*¬2Ïeþ6¤Ü]Ô‚œpóc&•ŒIJn=½/¢KzÑÿÎb +Ì´3Ö'‚@ü{VÊR&go·Iaª˜;ÛýäÑÃØÉçânI¾_áš™Á Í| $xf¢Â@½µÒ¾¡¯úÙdôGëÖõ7x jUö8¯ RCÓ¿?¤A• X9Âüݾ#½»ƒQÇõÁÃÓ×|¶ÀÖ°\ŒW +× \·]äû€4Ô/R™H$ˆkítv>8]ÀªôQ,1ã¾ÎH¬ÿ€Ñ9` ’¬å¬O˜@›&]—å×zŽP§OÞ(5{OÞ!’ç F!Òs‰‚`qlÅøûè´ƒ8ànûr°ò¿9Ž9:˜Óݹ6SH u:е “Ü´ø§J¬/bK¡¡§¸‡ÚáQ ‡;2~tã¦|CASÁ~/ð¡–T Ï>¬úŽ8¬ë™á‹Q“ÛÃN–+~©g-|‹¹zØÓÁ4™ZK˜ +ßx%½ÝVp˜‚=ÐÉŠ´µNú-É"í{L}C˜mÆ4ï}kÍw~enÒœ.´fƒYpg¨‡‚½!°œË[t_7.ã×ÍsIw¯4 ¯}cøOŠ;”*iz§•è2”m/ÌÅ™…ïÕ…Û*¤¿ ¨å4¥¹yžÝ*u3È^ÍNƒÝ£’ù;ëÅ”Ð+ɧSd¿ÿMá:)2øúé—Í ;B¨Æáþ Ü"Åß4æß—PÌÆmG‡MÌwÎU§Œ$fÛ=µÄ„{A»yè<\.|L5ƒ³”ÐLèî:Ý­ßZ: Ï>f>proyjÂÎØ’* '²XK.šO³]Hù¾_mâÅãüíkÍh׺{š”ŸªpMqhéXW‰}ƒÝÏå8ôeä1°ÂÀ؆ÚBüØ,V´%°úuÊö ¦Uï?Ö•XO†Ûh“Íf÷ïH]Q¦¯œ&Ã=®ã?^ušâæRxѹr«'š åž@ f9æÞÈSêJ%î©ÿ©$÷C¿ÓÃÍ’:bg-úY›ßkÆi¬Ž…É26fýÖ;ŠòLËÉŒ+à24Bn°ÈÄ:/û€ß›¬*£úÐæ8w«¹w,ˆt»Z×v+…'Ëã8ó:I´ÅjMóÁ^I¸>¡›Èñ+Û†&¦WœÚTÁ¤ûhpÝŸâZ‰×Ë;^úühµKÛlËe,»öÏBtÚó8žãõLϲr¸B#ý ÏާÆÓ.L¿¿¡Y°~ÕÉèzé¡&é§$TzÌð0Ünߘà©Zç¼ÊwrC͵‹åÅñ»ÝaX#€¶bBŸ÷žñâàRjÂ)%`–Yü4·G¾Ï ]»ÎÁSžV¥Ý‘ ÇÏM™¼48ú4ýéñ–R%©¶š¿eÛ¨”ö-O—´’Ï©™Ôü…ƒãð]l2IÔs$Npë0§7"&Œ@L/}f“_À¡õÍ ¬F0nÄ"Ôm¤õ0qê£Ý)‡µYëù’ïzö©¢“ÑÜϼӔǧÁUv=ÉË”Š¹‚­pïq’K´Iú^³ƒ#Ö§O÷ÌI &~Un´Á û^éHܵî<$,,¦û"º×ŒÀW¤«?_¶Ðuôë§z//ôz w™ðè×}¬ª¯ÒXo=qD-¾•äÉp/Ǻ¥A÷-0MîÛÛ+}²'s»à¬¹¾+DßÐÆ4ti~÷å$<@1d#]ö;HÏ™ÿˆš, av·Œ­ö›Þc>h$Gð! ¯RwÑ’x€Êß®W¯œù@Îy©¶1ѧ~º5“/_pfÚª`O!ÇVxçñ(D¡³·¶ÓܪØ4µì¶°ã…z|pºš3Üç íÌ8r¾Ra\¼\•`¦ñ_¡¶ÂÍCBEW…‘z†ý ‚hÌŒ¡ä…¤Ðô5Ê&Y°ºó8çèŸ ~D¯t ´ðEwÎ{ 7Äȱֿæ~ht Oú0u'M§´9WSGŠ’ñz°ß¹ê|¯£ö»5\ðT§®mÂì.=Ä»tG+^å Ìøëi•…½œ•ŽVÓzrøº™–TetÑ]Ô†žm±§í7"”úwcÛ¹.ÿ‰Sñn¾"H]ôYzàÕ}"®÷fÂ,\éð>ßT‡ÞñUqKr}suïÜüIã˜×óÇ×Âé ®ßØŸÍùÏ\°û5*(!'u0 ßF>u§±ÁMÍ¥5+1‘Æp,é%m1raŠ• pàYúF0#G±¨¼~Íá|\6+TÖOJ"g¢-®ÿ]÷:«D¬SºŽÔë¸V5,]Ácù\ND{耻õ§¾§B:Æõ»_Í«èy‘šîÙNz.À­94’@¡cj\ŸqƒGHº+zr‡È ~_)¶»è×ßW˯kÃí%ΰ´|@ôÛöy¼£´oÜït7â-¦•®õ–B<-¨F¹E¯Åd‰X=Ï°êOF?ŸÃŽÂ³‹ <öÝ Ê©Œ‘Ýùáņ€*‰„J~;JÓqÉ™ŠH~°¦Ç$³èÝrZ8@dšžolþo´vú&³Ž`ÊééÖaÆYëQ#ù¨šÇ(À‰`Áè/5“ÑËn¦–¬vXõb°c¼ñ®Õ°Ç€§T+ÿ>uÌîî¤Áùª€§Íl%°ÑD/ÁØí +G´/.¬Ê£xx"ÜF´ µáe ]/4±°‚f}!•ß‰Ò,Hƒ¼ÊëlH÷íÛq«Ðª F_×7‰“膪,É~‚mA(Qb5I׎Ç*…€í<<î_³@!‡¬¿Iˆ¿Gäñ#!hT YÛdO·Z€˜aÕüžŒLÐQˆHZ}¤ìü·ÿÆÑgýŸÿgɳc°è¤`”Ö{‰dM 7Y’‘Oÿs.g0"ò]™\lý·˜±F_ýöÑÙ¬joèD8‚­•½æÀ\ÁÔ`°¼:a=W%FU¿Š{©Ÿ’wZ\RXWlN’ÐÊ66I ÈèkÜ)˜”ඉÊc‡êPÈO +ÝbbÓ€¾->£Àé ×yx'0 f;6lÁBðXG³ÛWRA€í+5‘¤‘ˆÛk¹ÐrÝ=[ÖšQ{ vxb@±^R¡ýž0øFH»VŒ&ø +¤ÿËzô*ÞÕAzíd,]ê§ì›j ­Þ¢ð„r/øq+˜Ñ@I°µJÞäR7.îû‹±R¯(pco!jÈzÊ™š«³ÛRÑŽ€ •×•#>#àg –•D CSÔæ¹pœ¥W¾Nn‡N-D¹ó+ØòcÌúXF„Þƒ‰#4-‹#®±I3±&·ê%¿jäÊŸÐv³càl tí­_Û¤1ó~v«¼çñX+_wbVØvzEgY·›^Oº[¼†–Ý$ýÛWº*dåÛ Ð ¹l,èê¡­]ä“[Ö3[™q IÈÓw1u›c]Xƒ4Fì“cj×5Ï+!- lMoá~š‡Z*±ùfâ'·iŠeýÛ¾ˆËéé=ø͵hN¾$Ææ”î]¾»}^Ç~Ž2}oÓêˆhÔ/rhò~^BâFyñ<Ñ•JÖîô˜U24-ØIB è·^‚y-åM¦5k7ôaÕ÷˜o6 ­¿®pûidS=ÆáÞY!rºßú†—eL‡o±R|D€@)¢Í®N®\Ž•f«©Õ AsZtL*KZÂG4}o&DǸ\ní/èÁ†¨ýÍí­{ZZ¨Cý¶0ÕìÌQè\A#exÇÀè ­ aAäì±6ŠšÅĘHƒ‡Ö°<Ÿv ÷ÈÕ6Þr§Iª6øC9ôþâŽ/ªh/‹`køê^%Jz˜É°hR{‚éÎùÖEhØœt Rä±7\¶ên½Q‘ÖEó±ËßJÆêûp3E2ÈÕ³ÔÈ¥ÍÔ+'vmy³Òý þA"noLå5D‹âöœ­qn/øp4¹voÌÚxVbÜ';©ÓµD Œƒ`äå !å9 t/ë OÍû†¥¯Aìnkibí Ö*Úø;$GØÇë¾N•ÙxUÄS† QÓ©„oÃ]Œ¹EKا Ršx-yÖÇ”»,ˆw§Cö›Äêîñ™ÃŠ0£r¨‚ n2ß„5 +¦t1]‰ÅIdK^³§ S^›¹•°êž«é:Ø^­•ß!aÔz¯dí2s@„z=3S8I2™ÆFìçTKò¿ 3Ûƒ]-Ûe)žû³†þ"W·CÝÅ’KŒ +cÜëŠá]¢²þ¹¾q;¥V^¶=íÍ.TÉ.õxM¨¬÷„¶ï«C@¸ZG|ÑÈ닸Žà½™>šže7o‹@†í¾Žs…¼ 1ܺWÕO`D£¢†z.x—kû,¶õmðæï*fô«Œ•j‹Ñ VÛ½Ñ(â!³ ¹ßûõr˜ó(˜cnøNÕ{{¤ž‡÷ç)¦[A¨ä†1ërÄ°ÁÆS/F?·êý¤æÙÜùRˆD7ûð×Æ çŸ2f/ÞB¯l±I#dãö W³Œîƒáñ›sò»oY .ìA¯1W™LP¸,7 Qì¥(PÝdÄÕ°¢îà(Ì£‚àKüÛž‰íû®9\…¤ÙÔ8„SËZb^—ê+Øàaƒ\®à½Êú]!.Âc÷cõµ|ûÂý›~ûC3¼äSþ¯žúò#ö~ñ˜pÎÁo–žõ—¬Wòùσ†f´™+6Ĉ(”¾‹ ëT!g>؉$…Ç°u¼‰ÜíËYèKïÜ2$ú¶ŸO;h‡qV)k‘D†„Aõ¼ŒÄËYõGø|Ê TkdES„ͯü4ûqáÉ3Yi®ÎOºîuÖI‡W¤4ûÒrÇÌJOIá~ƒi½¡nÀzzÚhœE¶TCuÎTÑîI7ºEãq S"gGÆPª’ç31‘êQ²™Ü +þ9ä{¨É  ex¦ÊºZD_Y4¶Ñ³¾þd.åBñ± *` *ü›R)ä‘I—ÀæÈ‘3£ÌŸYf¤N ¤ç¢×%ØÉÕ˜ê;íÊ`Ê)›DA¥JGZÙñ¹vëi\û¦òE@܈õãR† öOGr®âiÐëÿŽ?^DfRê‹Azð7jœí©ëÕÜŽÒnÉGqä\2¦ÝìôÝÀ<íµÕwvV¦T¶ ¥¯kQ‘¬Â½Ø6H"§TÁ=s¶=\ˆÙü®»­Ú|õ’h©½Ð@ WÛŒ[sŒCn Üõµ!7ž¹‡¹èfT^âË÷4 ü"a[¦7ºæ-åPby$AU+ |G:ðö®G«k>©Àö»BëWü0öqtÑhÕŽöv=5÷‚n$ h^7ºn®}1!ÐSI²é>¬h'ŠæÓþ½¡÷}ÂþSx˜Âóïô`1TŸUW›“õy¿`PÊ|+Oý4Uö<§µÛTÙ'ÿª²F‰\‘ÉÔÅbóŒõ9ÏeƯ>Ib;‰X‡Xõõ÷)Xµo“EÙ,Fœšq>÷ù³¬‰Âò~(yª9ƒ‘ôô¦¥‡õ9¥› +É—>¦ÍO“\nÝ[׃5¤û"Ä-é© ó¿Év}–aãRîj+fkY¡­­ÀȺ6˜ú™Å56ííÖ~@t^»} ¦¼ËìV3ÇOK|g^E¯¸#:µÒLeÿ›® )|—9Þ”š9(®»ë%¤+‚†FIZÎA?¼J}á(BTápÉý!ö̯”DxÒé²ÄѸ©X,É <&Ú&ZP¸c»ßQ©WGö}à¯sKHù|XÁ†Ñ­u3‡%‹˜Çÿ”¼ú€ú«a˜^þæôG”÷šw¦w![oµKQ>s‚ìb pC&ZéÛ‹™²€¾7Ùhp¼n +wæqÁA|ÞX4xÈ'\U_§ß_wŸnû5ã0Þ,~b‡FÞÐúAªY­èp_OŽ ~o +„ NL›HÌzÀ}öø²ñeª ”¨ï-µtx£bη!ñX³/i*uyÏx†þ:(ëÌØ(úÖe)ýÍ-ð;›àEu¨eÈÞ†dÍÙ—c.õ6Í,rPíÕ\ +Áˆ¼K: û'FÞÂ'’5ãî ¨Ë +/ Cf*DŽýUÖ= Mî:焯»˜͈%\å•/ÖÞS8¿•  +BÁqªŽŽú,–…s!úSæF¥ÐB±3“¹=­Ö`˨ÊôÞŽåìºaí ñ\-ÿ ø/ðŽÃ"±ØnXÎþÇ=áë»þ¹¼œP5Xiq©²ÖÓƒ,¿2üF‰ÿÏ"Ë+Q_ÓÁ-éU9 +g•tüE>ÔíaŸTác›ýþ”EøÞɧYf¿à¬té*ˆÊB=oLš¼½Þ<É%ÓHï4Mø>…’båÖ&&½åîð’ùô©äJ×öÐïÄ– _âÚKæàÒZ˜0jÑíÿÀ[yájÛ1 æ» Çò³Š)dŽ@~‚\­ßÁ¨ó à29?ïDjD(Û²äú]ºý’)[¾OTd¿å<‚áh+Ž§\íW(Á°ëóRªv\¹$ Åc‡¨¡€ì»x^‚1O Þ9Cù”£xÐ,-‚‰ œ}2§‚voB…“ +îàjÜyÓÌN4‰‡9AJ@*×&‘ÆJ—Š7ìxÛ×U]ÅG<˶6yo"fÕu?èŽâd-»›“½7šÜªfÈeþ£$”K7ÑŒÎàÓ 6´yÂŽÊÆšn¨ga˜GT”Ë k`Åå¯,Ö ‹4×0Y‚ž%]2k +{,+E¿ú§FÈåµ»Ò;îÙGç2%’â I Ýf žôJ>“’»}n‰°ˆM†¶áI7x—ÅÐ…b7ß 3ø=ÛBEѤeºÂ‚òEB8?÷ ìûÎ6zÜ[óv©ÎŽKlBËm Ä“É$9 ßûW}1é®\¨Âlž~tŽÙÈ™wECN¤3éþ|Á³(Œ"öÈfù–Õ%{Ç©¥Ëv1ßø¯CÊä +H;ìf“ø7¾Â&”î°ÜÆpõÞm:g›š*sÍæ³yrÅͲæÑãýäÄX9flâ4ôö3P­>óÝTÙò¯“×wJñ7(Ë|Úˆ.J¨î>.îàïc+V.]E56!â»îEW7© Ašƒ>ÿ¢È^¿¨¹YfäTˆ€š<¶¡á‡à'ðD>?¥ÎBÏN“Î xÅa9RäìàI$š¾ñ¦e$6Õï$mçe0½ç?#ýìžF‹ÁÅ,bn]ÞÀ +i¯L‹ÃtGtu9GÂIjù'ÐZ1 ¤ZÊNQØ5Mwܯä"Ÿ°×ž- qÝ\K¬¯æäËfœy¾úÎdvZN;µî«%ÛÔfB$k«»Úâ”»x§n2ÖYîâŸËf‡ñÔxwh£6*¥‰‰ñµ̃鹿+> y‰óK@¿÷šQ§Ã1S?è±#“PÃâùž™ˆm9Fsà@ѤQ€¹zˆÏIWPN@e0’!ï!R~C[ûJÚ{>›Ëýó{öĶ¬eþ,R¯~ºÞf1ë¸+’~rá÷Ú=ÍŽ¹¡ ø¤ê…îœ.Y™Œ¯†€E÷vT’!å8%×±ŸÚê¶×+nÞRuîBd5Qˆ¥úZ§ŠmøÈ•­Ë8¨ƒcî¿Ñj¬ú¥}–wèÇB½Yú°Ã!(  Ý'f6ç-9 +(cŸ”Á‡LÚøÏEOŒCB­­ƒõÂZâöVýÏ]»ôk=Q[F‚²fp NQxN§߈ ˜¥IÒb®µ(°»=h +J´6Á£·/Î|Å[nÀ¬ìÇÒ¸? MqåMÈ^û™RÛ¯:aPا´S¤¡^7Sñª»¤±jy"ƒ¸ÄQž;2ä†@,ÆÏÃÑ& +iü¯½³78Àí²ÄÌwŸ~RHôyzËï]‘4ÌRÔ<^|žØ$T5å'¹9¾ þR +ʳ-@z+´Vù@NP’ƒ\w´ìxËÕT†`‘xX4„Ù:$.¤¸š1YC|¶ÿ9O€E¼ÞàÊþîÝüû9ì<ŠÒá½Et³ Ǻꛗÿh¢áÐ]$oÙÜtE +†(Ü‚ÊìA¿ì17§«Ë¡ÃŒB +¡¦Jô! ]!{¬¶%£¸s„—Ÿu¿½X‹|Ö& +“ƒÿ³c`YÑ9"%¡w†q5íLyYöu:lÉïdžPC¡àjŠv³1N •S"þS´Á‹Sšº"Ñ’Úu¦˜}µüò~øRÌ_D{çwšÖ;]éî^øW¼­—Á7‚yÕÑËýªqôì?¼VÖðM2"›÷ÜpêÇ£Ðà8~ ØÅŽÔlê©''<ù¸ l°’e—ówÌÔôÅ·6LÒÕòhToÎ €âƈA Oe:3„–›ˆd,±ö`RD9 ËJpC +Zõ 8éôͦ Û à }âÁ*ø:ݺh—»¤è%+t§[ï[+åð•þ‚[×`Ì7ö:Έ þ&nàFyÅñŠžRØíSxÚjqâyN¥”ì²tGåd`”¦"=ì5Ì%»Òr™'~&k½œñíå÷$û‰7éV£òOïh÷jm¯‹¡4y<7ô-@€¨Ûâ Վכþ–aàÂCᦻŠN.³c»‹ŸºLCàG,%Ѭj ž“ 6 °ÞM=±\:£Î·Ie» ï›qfêÝ÷𺧘8÷~O%w$7gä*Óƒ…5¢£ + fÜ»:d…c|¢ÕŸgoà=–I2îF'ALb(“G5*STJYìÖbb]lFåR±Ð§¼Ìd©`,qG«z˜!‘„bplº¢: YÓé¿üÊö4®zAb£7Q¤ï +ϯ˜¿ +‘Z},¡~v9ðR¢W³BÕh˜¹Y'N& ù·•‚nvÉ£#¨î½¾ÊCcóçåÅ(ø¯¿‹én÷gÑúñInâ[l'8|s.xãØTÐù.›'b'8t ìö1x®Aßêª1õäØ„€ð¯UØHA'‘g–Å oŽšSC2¥Å˜¤Ø~Í|¬Åc˜dá,ù»Jçíªô§…[)¡ +aÙìèC¡:ºÄ¿ú¼fús:ÿè'wµHŸ}ùJè€;Á™ú‡£ö°] ë¹¹«5¬_°¡wVþl }ÍñêFí}~Ý +<…¾°ÐøHá…½k!‹žl¸‰ƒ¯¹–8nÙ‹ØÕU™Í`ùO<·¤ÔÇíStÉàûÔK•yHl†rò!D·jÃã­ˆ0/Ëö8)µLàûcÈ¢¾‚m–ßú.Å„§è‡Ü ¡le„,/%I²Þ֌޸Ԧlq¯ÂyÐõ³Ìâtåòǧ-îÂÿ"MÖ0Q‡…²œ´°,XÁ¶ÇFß᪆šÃõŸŒÇ +-/Àƒ·šE©®v£(Õ‡„©,ÿ\( +]²Dg­ºÂÒü1‘U:„áàŒ¡âƒãEŒ)ÓrkED¥öÑ–…ëõÍšò”ì=ù|EæE³[òc†$“—5ÎÄ ãABHÏ£?Á¯çøÁùÛAß‚Ñýÿ¢"°;Ëè¯F ù‘yX%3ŒäJ¼ÎDäi±Né›vhŠ"èI¡~‘=\r7CóK¬ŠËG°EÎ’/yDw½ÏM‡äìËößzì’y±Í$Ëo—ªªzè#ãîÜt&ß³„ïÓ®Ò8WœÁébÒ·F(”" +©[Yß±LTö^JZIJÿ`²ûYâÔ—¸g+8˜*µ7˜JÅŠ%ãƒvdša[°Ç—Ü—U5¹Ú^2ߺªŠ4ɦ`|Èê\ý+qËR¹´•’è=wN‰‰b×;Hd¶w‰Á°Š¬žSÂ7Û¡˜Ï4¾’„X0·qv˜òo1³Y˜méôegG½¦ÒOýFg4TÇ]2€•UÏÍîšÖ‘ȃۆOž:w8Í6ë,Pú»’íZ«9=»½ç³.Y ”lp÷¬\.^„œ›©Nqµ˜ÆP£@ƒe` œEH :堊胦,{ò›gs/ä8’ *íxÊ ¨™Ô²ñ•Cœº Ü^8i7(ñu¬Ð¬Å"tSmh»¹‹‹Gewû•0Ïä nó¬,[a¡ƒóÉÛ~w×›ù57¶½ÄªX~q½\g‡„µQ3>Èl|w © ’R ƃ9Âh±ÝæS6c€ sÄw[ôBä^‹]Nð8Z¾‹Žiu@cB¾¬­ãÇDQ®iHºÛ_HWA…±h¡ãÀÂA~5wå¦Mîñ’ÉUP1!ƒ\Ó¹LµüÒ#aŸ‡‘ÿ ÑV‰J)í‰öÉFÞƒT ßÏÆĆe‰7è}aáþ„¬ì·êîŒu°Oµ´žÎµŒøÈC wåÖ m„'ûFü @´(Ý´ì 5 èí&ÎR +4&Fi‡ÙÔ!§&C×P‹¤Ÿ tæ#+µ72èpÔ%ê´ùaÅ5K<#ÇsºFëÉSUh–̺d*l¼4h¯çA'7 =ß× ¥o^škõÿ 4kŒQæ­´¶ø‘Rýp5Ö±ýñÁ*–h]ÇJ­âçß¡âqæ¿è?â#æÝ‚ÅÅ7qéA’žÏøçàÎgã9ñðàuè³q5ˆ/±= 4Eú­CËc2Ü1m ´>×Q¤OŽ9m©2E'ϯHõ!üyÀ>–Y`EüýîË`jà=­‚–¿ÖðÚƒ,Hì½;ã ß3òh|êX‡yö c­Oõ¡Gb„5Ôïß$R”ߘ´§Ð؉48CD #…_K|DÑ Â\"x·n[#Ï0Ê=viñ—ÚO÷ÞZ²`ã¤òI`˜ñ øW"YÛ.÷Óêô½ïÆøn¯ý¼Ã2Ï5*<Û*3±ˆÖâ0ŠEÆ8ðÏ ´©÷×¼øCˆ‰•Í5;Hþ,êõè ðÁ²FCí‡|h4﬚˜A¼_ïS¨À‘´Æ]!`àÀÌôä\㸌Å7äËêTç¥â*{W "« À‚e9•OŠ7íˆÑ@#u¿ëeÆmþVÚÃÆá  /š1‹VúðóÄHûFR7ÃïÈgd׈U¸·t³Ýª7‚¦Æoˆg¼mç[Ú¥E|WÌíPö «{oþu=“2k¤ŠººÄÉz†´`§@ ;ÁÈØMKt¾W‡HôÚä±¹Lì縚ݪW.¶GÄ7^7S_½i´áL°BWÊ.î‹\w¸Y¸±-í0ñÿd#š¬{¸cŸ#žX·B²u˜%ÌH6Ýæ³î®t§rD’žJm-¼‘ãuû¸¾ug9°+wOÿ³¯Üì[€ð‡$þ”â‘I°¤>Åi)“$)ÃØä«T4»mÇ{3W³Çœ¼ŽÒG-g>ç?_ý+¡a„ï©Îç¥4¼<Ý¥.öeØ»D r!QÇ¥Å(|ü|À«Å&gô MZÔ]y%ó/LQÚËÄÛIˆDYýºû0 ÃЮÒÔèûè?š€‡]¬ˆ~On6Ûº•hQ¸:ød@'—¯!ø¸@š*IsPlH¸xû¨_ÓÁjDô±\˜Ýƒg3.«fß»ƒ0„i‰}¡= 3àºñåbPõ™7¬Ûkö4DŸ•rߘº5Ëù¼—zW~Z®BbŠZ$TCW¨Ýµ? +endstream +endobj +1972 0 obj +<< +/Length1 1385 +/Length2 6193 +/Length3 0 +/Length 7578 +>> +stream +%!PS-AdobeFont-1.0: CMMI5 003.002 +%%Title: CMMI5 +%Version: 003.002 +%%CreationDate: Mon Jul 13 16:17:00 2009 +%%Creator: David M. Jones +%Copyright: Copyright (c) 1997, 2009 American Mathematical Society +%Copyright: (), with Reserved Font Name CMMI5. +% This Font Software is licensed under the SIL Open Font License, Version 1.1. +% This license is in the accompanying file OFL.txt, and is also +% available with a FAQ at: http://scripts.sil.org/OFL. +%%EndComments +FontDirectory/CMMI5 known{/CMMI5 findfont dup/UniqueID known{dup +/UniqueID get 5087380 eq exch/FontType get 1 eq and}{pop false}ifelse +{save true}{false}ifelse}{false}ifelse +11 dict begin +/FontType 1 def +/FontMatrix [0.001 0 0 0.001 0 0 ]readonly def +/FontName /RVPZIX+CMMI5 def +/FontBBox {37 -250 1349 750 }readonly def +/PaintType 0 def +/FontInfo 10 dict dup begin +/version (003.002) readonly def +/Notice (Copyright \050c\051 1997, 2009 American Mathematical Society \050\051, with Reserved Font Name CMMI5.) readonly def +/FullName (CMMI5) readonly def +/FamilyName (Computer Modern) readonly def +/Weight (Medium) readonly def +/ItalicAngle -14.04 def +/isFixedPitch false def +/UnderlinePosition -100 def +/UnderlineThickness 50 def +/ascent 750 def +end readonly def +/Encoding 256 array +0 1 255 {1 index exch /.notdef put} for +dup 105 /i put +readonly def +currentdict end +currentfile eexec +ÙÖoc;„j²„¼ø°Aw-åÎ<ï˜øX2-Τ^tÅEÒ_á’SœÚKªFÙÄ1F^j¿NBqøžÞ×ó{ä³´y4ö-FègbÖÿöÔ“{÷"Ö¸¡W–B:§rÅP‹À ?dgÅS%|'²ÃØ“w&¨F7J…¼N¾À°¨œL9VìâRt¹bÈTå5ô'ŸâmƒãŒ\‰—Nš"K<¾ù +’w¯àÇÊÈÜÄÁ‹Jv‚åð$†tE;ÈD4¯VÜ¢üŸ§vëš{bG@ëdÅ«ß)–ø²Nòhäòë]!*qÄž·Äì¥LG’~š¡ŽÊ’@Í‘°ó‘\Ö¬‡nÞx1ο?nÌ!ÑÒû4;æM~Qy ÁÛÒŒå4ï÷ÁÔu¡ö«×òî:ªVÝÔÞ‰„„Ž·‚OGþ(mË™³¨3¤¯£õ~Š—q†ŠÓ‡eìéç­rÚ«ÔãlðW=ãWjÅ=’£4ða&öêb2§”¥ÆøЊ«ÃõA•r)Éà7ûû|Òp\W;C|Oà­0zó Üw²Q² ÝÖR”(ƒWð¤?2ܰ㋈ˆi®N3ñŠmõÊŠÒ æPÊYAª9I\î–’ý_#öι~û £ò.& «Ã°eì˜Å8ãô¹v¥aIýS‰«h:}x¹ß±/ºj¼Ò¿ä—§Ì‹ò[ +éHl³u|GKKŦ’À‘kŸçù[&îÎq&0ë@ÀYôEΰGòÇG‹OÖñ‘µË²@3…ãlÎ=¢„ZF™ê΂³š~Ê=&‚Î#1'ù>vÁÿFZn9tb´p¤i›5l»A·zÛ²¦êu§Å:®@9“î¹ïÀ_¨ÍöTÎ +¼B›ŽŒÙ:ÐEílÏׯȳÔL4 + +]hlTö;öÞzf™qãøy¬û¥>8 ¤1 ÅŒ[)¸¼°L!l°Úô›ßAUý@°…LÔÖÙÐ^;Ƚû3yAèE†`‚Gv'›¯ÍÎEÌɘ斆Êßgï¡ ²U c´wKõ0‰Æ2ÓþÿÿÇ8zŒèp¤ÌÀ"·Eçâèü( UbÞbE™øãåÏV‹Oϼ2ˆj’X„F%îôþ.L|cézW¥e)ý% y‹^÷Ö˜tY =ÒV?z FÍÅ»ÂDPøÄE®L8¤½Lñ(Ef ­`Ä7’ Sc]YDrGüLA@çc‰-ÎN; XÐa 9OÄÃNLm¥5#+ñYÓ)›>wl©ûl†ìô„¥¶Ð¸ß)gŽµ Ò>ø½ Í*™ŠJ½!qòäÿ£P¯€¡`µ÷çé“^„ CIû âÚÂÍÏ}ça5ª,-ñ·ÞÄ;ºý$¥CÚÅÃúÂî£ØuW]q.J€g¦%V[á!!ˆȱ%T]fËa +)§‚ãþ¥Ò 1n§¼×FóaD`°<„À/(Èð¬ÙFøKv•3ÑC †ØƒþcŠ…·ž}®úí:,f±ú«4ý‚›"†¨8 ¯Ø^fìÁØ䣴Ws•žO’ÍìQžÄ¦´êÅ0õ·[Æ%CZ;‰ðê¦ñ¸‡w€…, n¾W‘«ñ±˜¹²!âú/´¯çù»-8`ÍӢ̿Q:¡èÖŸ¢{ÅíZ!D[ð Âù—³VÙJñ76ÆÓ°a>¶ôÍ–¦…þ¶rfÊ aíÃÊvë/«7ô.‚½áF8”Ú<[ˆ¬éÓ¯iH]z8K‰'øÚ+ã`&i÷€hnB9Q4çzÜƺ‘­Kz7!<`Ï,SYÉ•#DüáE¹ÿœsæ@ü*εÆa‘Œî·bLØf[.THdÑ20°Xq{ }<ÅÖd}SCÛMV#’‡ÿ¨–c~ dw”+c t©¤ï{ Ôp9º«N¤›T§¤øEÍcøˆ1ëúO¸G„|¹4UËYWòà õb6EÛµÅVL‹}n'æ\>¨æ{Jä²çÄû +ƒdþSõA§ÎƒL,K2( ³S¥æ;º{ó·Ü…êp ҇½?È(2°»F•ü“õïüØ}Îm瓱îæERÁw&_" U YáZ²ÁÕ–ŽRÈ Ò€é<Ì€Âï‹¿Ù`¢&þísï´¶BKUz‡sy¡[ÊTx ÒÌ ¹³˜kU*ý%Ѳ6úšæØ<׊„‚ËAlÎb¹’43}PZ@xq;½‘åS[ÕŽð5½ÍtœÂMJÓŸŒì×ÖÈ—Vh +L¥‹3tÎÆXÓ`®Hc£“Š‰µœ¾»E¤²¶æŠ¶ë…ù^<›‹fâ ¹ñ‚€'Ÿ÷ <Ü +SÕBðqÌ +Zø4Üs]Ö*Usè„áÿÒ+Ø‚Š¤‚ÁZ.—ËÆ ’}£Ì+€.¤ ×ëWb|^;Yùu—Ø¢ÅÌo2ŠÒZÑ¥Oæ7˜ ttÖøZR’ûr˜š«ëà*-þˆ¦özŸ]ßíªôeÄ9˜ <–gy{´v¶`TîÄþÄ\Áºè­V° 2?Ë'Dðaúáa˜‡A£±VNº! –OŸ£&Œ«äPÑf§cõ(ITVJ†·eDÅõ¬ßà×XÛ†ZüùþŒÕùò™ŒVFÕ-øî`Æ“Z="®ÇqN;0qÇÝ °:$#+GºÓ¢ÅˆmõiZùÈz†KH;³þ 5^íTTµ›% Ø¡¸ËÓVÂOdÙµ^à eÉ€u;£íÀ†‡ˆÕõ “SÐ"{Îá¾6™‹&"Àu›ÖkäDBPXŸœíçfع@w ¶¸•é%³\Ëì(sÒÜJ)#ûz7¶š}íº®ÌyI“'(è›îÊ©㯛ðp¹À0îúŒ +UÈ8Œª/‘\˜æ •»˜–}°Ü¯©b.N.¿ÇhØ…¬ß(إ¶î/çªö/ûõiøJ ™mðÁÕr3fÄ6ä>+¹´—‰*qÏ\IŒÜÚKû‰×ã×Ô×*ÖÿØ0>å©zq¸¸½ò®Fo1¿]zJDø0»â´V¢!â÷*‹Yøþ¨ÓŠZ[Ù;ŸIÏÜ=ÌÎ+g `ö2'qW½Âð[ÂtŸÕbü(h*ajRѶvTßx·„:žÂj}âë‡I‘[—SK-MŸt©W:w4Ÿ{ÈUè÷”bö­GÌ4~-õö õ ã:L¿¨Zê‡D’§sBÝ3ïa_ó@7Ö`·Éxm"‚R&TX'£*Ñ°]eM¶æÒa´è¯ 3­ÏÇ |A™ñ`Æv!«¢ÝñζU³ì2&à±"—nê™zRAðbåJÑßÖí&GÉšCž +éT‘y†|Ý?÷Qó ô¦Ç„3äöI¼ÕÚ¦AwXÄ•î{ËÌ_¿M¯6 Âq†e[&ùÓI؇î³*ÞYRAVÕ’JE¢.jÛœ(^ñE–ëÿón²à§Ã†Ož÷°…Q!)-IH/jUÍrqþð.¥ˆhdÙØì"¦Œ#ž®ÿð=íd„ØÃA†ø¶ý<[ßZÈ5-¤á:0ÐËqàéϹ«,¯ÐÊ|4®}Ž;.´fh4½œÍƒH¯ï`qyoK²ÿ¤¦~ÙçjŸ¢Ü*0×D šæS§HÁѵ%•ØN‡ñÁûk/2fâ&,fbzïþÓ’²8aåë#‹´íÎ ÚáÆ[¯Á˜ÍÑ´]BÍù>»‚Ó_‚žI~–jú²«R’Ö5™„Ãz¦RûƒJ 当:úáatÆSA>»üB¿è¤d·±ØÊ©;3׼ðGÇîüÓéüòoùDÙ½æw­rQÀk»š!žˆ'Êðòkï3öV¦#]îÆ#ÌQšú‚Þ*áo¹Ÿx×Ø) ¤ ›`Jï6µ)ýB9çÕa t(ÒŽQµUFY +êÔ·ò±«Œ["Áúã?@›$‘¸¿Ïnô¨ä&qÀ‘ ÂGF“€·üë‡ÔÎ×ô£aå‹aÉü«£\ùx¹ûRWÃWîHPL5\è“þÁÞªîò( D¡R î/?Áwhu0ŒêÓ…q翈Ÿ(~E”—ƒ`^ AiÔ¢>çQR#߇$NÚÙõyü ÆO–QKK÷Ü›§žv<"ÉwûaF± &þ¡º§ºò÷%§Ž$-t4qÛX!@Š·†ä§ê5ã…SÈð'¶ï’Ʀ·-Ô¬ºÌä)©£õòœ162øÁÉ:Ë"ø¸m)i§HHobøH‹îÇL,ñ;¹+ÅxèÍ0¾¦¼Œ¶Ž×0õLíg`_§j×·èŒzçhŽY‘Äq½e¥Bémd±êñŸ´ñ#CÄŒ-Èn!“«ÛLa‰Æòb|i6‘¨mÐõ\0ý³÷#àœ`€ý|‘‚v.PãR¢à·M-N/; ù]ó¡Û-+[_ªfÄb&ÕàÇpf4—pQNVuU¬“”û'Í,/—OÕŒ£õ:Š³² ,Êï¦b(áH + ClD½3Ä øˆ®F’]»µ+Ï:Qbg!5¢M]¹²ëïÈ`®Ï#»Z;õmÌÕç/ä¶Ý)è–ih§ÞA ­¬W?V¸D›8ç ë\Ú?”$‚êysfpøÈTÝ[’2?Fø3ߧW~žö*GÌPú¡¶ŽÕ5Ãàá52 ^Ó9È× ;˜d€ŠºÍ#ª•éý¤=TÆjg_ tॸw}<… + 6…+SQó]‹ÄÝü£\òœÕãÞŠt¬Mí6„.,lþf“r-”7oT ‚•€tçñ8<@–RöÉ£Ÿé 8"u¼Ë“«ö°A + VQÛA…f«5Ú‰¯Ø‚†¯;ËB¹ƒ†÷¼KÞ¸” ¦³/ BDê¼P’3Oz‹¬ÃÞEnVJ”-‡ñħk Mh®y,Êã›òSh³jÕGo½;ÿ—YïF>õ玷¿d[*¾ˆ• +¡€…‡©Ž!ÐÝuÕè'Yè]ŠD»°ø d„ª68‹d=1˜5 ˆG½®ço¥¿>:sÃ#Î =ÌŽ<ÂÞ&ÉMZ@ìƒì°/÷Ý좠ÜtÔå‡ñ +>óIè(öŸÓ‰b/ tÕÚ³ílÉùp¬ÎtÀ†¥”ï¯Xü‹ìp<Ó`Ó ˜¥jÇv±½D R¢¤ïl‡˜÷ÍÁ¯ erTv*“÷š9ÜÖ­º¥ì„§í`»ç'åÔw‰=„ñWK$Á>HÇߊÜë Ø—Eï“·anÅ5V» +c +«£Ï)F¯ý +rNðòƒ“öXñ°Ô`.2iaYÉ1|ÁÍ-àæ©~;ÁHpþÛ(ЈîŠv€°¬õxU +U¶ËJ1h¥ Ô*¦Òõi bì `©ôI$LIoåAÖYÊŒ±Ã“6ª…f?è¶#áêsƒÎûÈñ÷pâš}l‰ÉhىϚ1æ¸õ^Év8lBV’­yA®ïå#º7… *ä ”˜×k¼fe„ÒZ…™qžùjÿ¾J’¾gƒ§þI錔÷šÛ(\ÃŽjðüv¼Ô •yúar÷[džT… jÏ=ÒDÃ*žFÿ@IJq€¢8r1ŸTéàWUðG¡Eø gc1#UÒ…æ®%ž Áàò×÷='V&‘ÀYôf">ØMê0wX2ÊÚùBOÙ÷44÷bZEý Š+#;}zeÊÓFZñà{´%½k¨§ pðéŒès|Ï×ÁŸŒi( +á7]Ô癓 —ÍACÀ +úßÙnÁ®«ºàå€MÅŠ[ÿ6 3³÷PWo ™yÊŒÝîR\ËB;ªÇáª4¾-¬|±+=F¬dr·5œFÓ#[ÁH…T| ÖË ª¦­D@Û!ª§qž\`R LkwY[­¡<âìÁî”BˆšÒQˆ|ÊÐ!–±ù\ŽË%0¼èà­:$â½s×'X‡í/ +Å[ì,T>c·ÛØ.I£%\FÂœ û_àí€I q!¬W&|÷F;„Ëûw•C¢äÀ;zBìi*¢ü7au¨‘-¾Ì¹˜±Ñ-þªþÁòóX[1``X/cã0èú@WÕ€;¢y€_¯Z~×` +endstream +endobj +1974 0 obj +<< +/Length1 1519 +/Length2 8224 +/Length3 0 +/Length 9743 +>> +stream +%!PS-AdobeFont-1.0: CMMI7 003.002 +%%Title: CMMI7 +%Version: 003.002 +%%CreationDate: Mon Jul 13 16:17:00 2009 +%%Creator: David M. Jones +%Copyright: Copyright (c) 1997, 2009 American Mathematical Society +%Copyright: (), with Reserved Font Name CMMI7. +% This Font Software is licensed under the SIL Open Font License, Version 1.1. +% This license is in the accompanying file OFL.txt, and is also +% available with a FAQ at: http://scripts.sil.org/OFL. +%%EndComments +FontDirectory/CMMI7 known{/CMMI7 findfont dup/UniqueID known{dup +/UniqueID get 5087382 eq exch/FontType get 1 eq and}{pop false}ifelse +{save true}{false}ifelse}{false}ifelse +11 dict begin +/FontType 1 def +/FontMatrix [0.001 0 0 0.001 0 0 ]readonly def +/FontName /ZUYGVH+CMMI7 def +/FontBBox {-1 -250 1171 750 }readonly def +/PaintType 0 def +/FontInfo 10 dict dup begin +/version (003.002) readonly def +/Notice (Copyright \050c\051 1997, 2009 American Mathematical Society \050\051, with Reserved Font Name CMMI7.) readonly def +/FullName (CMMI7) readonly def +/FamilyName (Computer Modern) readonly def +/Weight (Medium) readonly def +/ItalicAngle -14.04 def +/isFixedPitch false def +/UnderlinePosition -100 def +/UnderlineThickness 50 def +/ascent 750 def +end readonly def +/Encoding 256 array +0 1 255 {1 index exch /.notdef put} for +dup 72 /H put +dup 73 /I put +dup 84 /T put +dup 97 /a put +dup 59 /comma put +dup 105 /i put +dup 106 /j put +dup 107 /k put +dup 109 /m put +dup 110 /n put +readonly def +currentdict end +currentfile eexec +ÙÖoc;„j²„¼ø°Aw-åÎ<ï˜øX2-Τ^tÅEÒ_á’SœÚKªFÙÄ1F^j¿NBqøžÞ×ó{ä³´y4ö-FègbÖÿöÔ“{÷"Ö¸¡W–B:§rÅP‹À ?dgÅS%|'²ÃØ“w&¨F7J…¼N¾À°¨œL9VìâRt¹bÈTå5ô'ŸâmƒãŒ\‰—Nš"K<¾ù +’w¯àÇÊÈÜÄÁ‹Jv‚åð$†tE;ÈD4¯VÜ¢üŸ§vëš{bGBH)[Ò)“¨å›ÅW뇯Êmææu£;€jëªüœAÝ„´6pœ`QÌÆåî³±óÜJôÿʼ®3ð@žì¤òH¼0¯lÄ« Uâ=Sún1:ôš ×zU2Ž!¬×ʯ +å̹Ç¥ì6Üï&íX!d”[ª~‹Ãg“Ý°Òù¥Š—gëZþTd?´}*‰BükÓ¨È%>€ÑCËc…Ì-ˆA¢MMغ¤8_¹/99PR· lñf£±-ôd]‚ ¬ýß­EUÅýÄ_Ñ~fÝë*új÷­ù‘  ‰~`º(k‘s@è(šYH¶è©µˆ¾{é©>ÀsÔب¤Ÿ9³Þ÷Ï—Q'”%¤^Œ Ï©µ‰'­åqžT ÔLõB‘%…°ˆiñWlï½;,ƤL<ÄP_ Ô=Š¯†Íùž09i‡|Å©èÁX7PR¤:'ÓÄì<߉’=–¿Fbñá¬4Ÿ›NÇ{Iûc V[ÊîR\ 4YŒ®IÜ‹+±| ß (1B‹QR&o¬¸„d¬ª\™ƒµß{D¸sz £¢ Þc¢ õNf½N¢ò¼(¤‚£Ë9æü)bWz"süZó9¯È7&÷Q¶&þæÏvøü/_“2{û3Ú€©íËÝ·‰†.'Ã`’o8‡Í ƒí¿ÿ\)<ñáŠ|ª3òD:4âVû°Ãw$ÛqPŸsc·Âé釧Ÿ%E¨«gO|îz2rÝQÖäÓBÃcúg˜Ò=ž’ÿ@ã\Žg^ ÿÎE4óG9æ2šÚß!AÓÚö´eI–7Uw5hË+U`Nßû©ñ<q{ØäÆù€ò§Ží/–ˆ„•Kûýë8ÄyÊêØ"ÚÆU¡þ +›Ç•Ú:­½„¢[?üœ|Ém;<ßM/ÚÖga‘ìï ohœ +™:WvÌ´ÉÜ"ÿ¬²)j˜¡ÒQ¼éü©Ôwµš¡!e¹‰‹;³ØFP6H²MmGZXÿ9Qvdqþç7C[©4ÈœžW]"¢b“1ŠœcNüŠIý/%-îžßû>³¹›&Ëö¶¼ºœ[Í“ûL§ø´YÍÉÀ!¿L.¾Eáe_¢CžÈrcóI"Ú#5pl†$¼äÁ‡#WüÇëýô×Å®¢V*œ^-ZHh]ùýˆMÃdÏ&°wfoƒäµZ³_x™¶O¢µÓøGoV“á%i×8z`ž<dž¼†SàÇð{(jÏ.KRYŒõ¿ü#u†î•¹Â㔦—nRÎÕÖ”ˆÄLe¶xë¿ÕçŸþ„¡W½2N ܸmÿ {âƒY2rêÌpFSÀ¯f§ ÷¢Ô(§¯¨5b4…;2º}$ñ +Cq^Ó`ÕV´x_-Ü‚ß—p\ÅÚ¥ÿŽú…Ððf6ÈÕk¸ÓE±WáÚ맺1Îxìônùn™ñXÇ£j‰?°cB۬᠘õºïð4NwŽ¼á7t4-x”OK|.ÂJH—%Í™6.j÷…Hiªýð¡>lgî&þÙw°¦ïˆ…Ô|†5CW)¢Œ—‚¥úòˆÍ×6™v}ô¦42Bˆ>ŨÒÌóq¬%ñ~ã<­­xÍ4`ÊAoÃΡl¯¿•RØN×èµÃHý+Á%-¦“†—»öVÒr‹©¡W*dn©tœÕ­áæDj…1à›½ërþÛ¨=n ±­™nÐ.©Mº¼•¯$ŽJS™©Nh¢áü¯ ÆdÙÇš—öÈXC,‰/$ðk½ Ï9F5ÎÄ%AåÀà‚Þ‡¿7§ºÉàÔ·±på@¡á«‡tÿ +ÔŽ§Ž‰«~¿óã^4 »,˜Î"„#˜n!µ½õ¥ËTqI¾C$*±87ýrø˹·6…V¤@¸}Müm0<ëêO Keå'§i­}‹ïJ3PO–OžB3oÆêWbqÿ+5xÝyUÙs>AßO.b¶¸‰B!dMýKKס!´RÖù\¢-ö9ë›;…©ÇQ +w¹‚ˆL%j¯<áfÒmt,˜×;ðB‚P=ʦGÌÔ4A0Þ‰3IZ™UÕø?ìGÜdvÚ(ÀbÔr‡€²ú´^Š9ø¸e‚Mì)ˆ#þà­ÂäÔòê+«msæ:ªæ„0šUU½Ç….¹’Š|ÛA^ºn…5n³‘ËÄs„HaßYÆ +x0é<ÏK¤Ò…Åì&KnË_·Êý°©ÚŽä¼‚·=íÄmNÙS­:¸W<ÃÔ:Š:oú’18ŠÖM˜ ûi'Bõ3½6t»¡‹Ó`à·ük*?^Sb=¸’¢â¥è¥»þk,)8¢ÓÇÊÒ ç´w_C·N:ÒæY~‰%d 'Böö†Úåœ1³ƒ6ïó®ø9ÌR°Ó?œìÕvqu |A·×¹zºÇNæD°5^¨ûöÍI¹‚G šçÚeÉôàƒ`–¯×˜ÏÆiÿŠ‚:¥ô½Ûz6Š5¿”挩ͪз<ók Ÿ×RÈð:í»“èaJj=·…ÎØCmÑd›ÌHPÔ¶mcƒ¦V÷ýQãñ‚;iªih,Ärtœ¼ÛߠΓÁö¨~c‹äë0ZìØ#»b™‹úp±rg3„jN—'<¿;–TÚâÄ“ƒž-ÑX¦týÖF!Œ…¾Ú +? Ë¢[2Æ}+-P ûõéìLÛ9FæÆâfVÝŽ÷¤¾4ÆÉò4 X¿°)³Ðñ+g-ËÙËÙ±*‰má}(’U¾ÏYÄ‘U^ÒÉ> ++À¥JFd“Ï%¾³Š«Ìç:=ÈègEM‹ä±uÿQ’pVp&7[9qÛQoIîýüµV–M2]aÄù Á(­üá€ý|±fÙ/âFrªù”RVvü‘^ôóð® öÌ|Ä©-”pØxGíýï«?'ç‹g¿zØl²¨“‡øðê, åγ#¸¦š¹A¶CF­™–Ymž…^ ì@Œ.¦ØsÖºï>f!]Ø×J ÒÓCGý°uºéÕQŽÒyC¼®WsÙã ðâ&‰²ITFÍ€Jí¾eËóè&-²e$V Ïk%² ÄÜí–vl#ö'6ñ› ‹³8ø“‹ Hß¾A‚Ø7›£]°i׈3eYÚxËÌäåˆ/yf]ð +ê>øq^å`’òú²Âæ~'³}`ó3þÁéòÔ(æä1«ÖÛ~ÂézÔRjAwøu®a8#tNÊ°q¡ïѧ‚¤$Þ•ƒ‘SOœÐO¢ê@‘­¿‹µ»äy{1íFÅ«Ì–Ã)Š^FK€}J.øÐ@Ê4zßÚ1¾”ãD3$k,0ð¦Á›µIaÖ8¡«Šù¯‘†pPÝQrµCÂi¬™ÈØk]qB~&¥ƒˆ®ýž”\·PTW\}'º5Æê ÇÚCŸze<ï(¹ÝÀsk¢¤èoñ´9!„øØ?x„Ñ—âEµ”µ­[¿Ãâ’žö¸J>&à"‰B‚ñ Scš×ŠôÊ}5DåmDU–¼hÔéK1M)kÆðØ)Pö%-/l|t븘þc½û“áT _hÀßh±ñkò—‡¿¼Ü‘¶‡ÉCµ±l ôàai&k'0½ï˜µ—ì ï°vYˆok9&ÊØ3ö³®52ØXÇ8rüÍé]6ç1*E–£‡Xk„ ‘ÛÇd`-sWã´‘`é\Ò‹'ÆþéËí½!âF´ÕÑ™f±8B¸ÖfÙ…Äܧ()³¯™"Qà%bÑ@Åq+’^P·6AÐäuªÄ}à„P:G(jƒÚH*J}a"`RÚÔ_ŸµtÉźGôœ¦ë{Mß8D*²R,øä%-«þ®RÖÞÖ_Ï¢PzÅQÌkåßqÔM)Vt8 ¾^çê÷ ²\lKŸ­‚t7#]ä뢪xN•AVDPjt‡QµA°TÙ8ÔaðˆšÎ ªBEÖ¹…å_c®RŽ›2vNÆlFÞ›U'¸äy|æÊE£öÙ3ü±YFo `Â]ps +Š ‰•%¼ôÉåzÛD ¾6‡¤Ó¬É˜ìà”ZÀ\{²ºëD-pOÉ<ŽÑº……Ý}™ÐKÿÈQ&U ¤äÈÈ/ ¹Õ;y¤•£ýÄÑezFL˜y%”ôçŒLïùg®NÚ»¥ûn¦½Kö#꾫ùôÖ_¿:ˆG^±)âS8ȼÊZ#©´Ah)±ê<®\Ö‹æ\£&’Ú–Svºöþ%K—QêŠâ' 棱ý49$½ÕHDÉ0Yyh)(Êç;ñ[;–¨˜¹°ÑüÔçy,EàñùàÕVûÅÐÈJ‰Í÷ÅóúäO-Ü+i&ltit$زÎþ… ¡Ô,ˆ}æñ²<àú[Ïä$yÇŸÚ©+‹)(’xq0KõäéÄýÜÑ×½t­‰ t›“¦¼"/t„/M“­ÖËw»Úõù +eÉ7+dW~¢õb(6ÏLj?Ùc_Îj¢ú +]Û½VÕh=-¢‚(ü_Ç^ªŒ:`{Í?¦ÿB¿Uû×&¡ºåÜôöÔþ Ù9HÄqU2òù-é1—c¦€¼dðD¶ ¤CåÀRø5vKæEúiVÞ!ú¸çù¹´±;q•’ætüO%7Wz“ó—íj~±ÂïUgYq¼„åíçŽSÁ–´ßðWÍ¥XKŽLï2"Å>9¯$‰:Ýð­;ã™ `k +E5 F°ÁBjl›|D×ú<ªu´¾KÚïì"=ü88+.3ý»º^Ø.ë4Ð÷`œæ”Cz’~щâŠÔø¬Û3Â{$ÉUº~û¨™iåÕ.4#͆ïÇζ&=m ÏT²÷Û,çðŒÑ=ͨ«šC^¢âj ûæàFâg²ñ¸{YÊùlµeÖv/wßpņ{õðÎë`Ï»}»›˜43µFÁ²Ã3(Ô,có“I"Ϋ?Ÿ£=að@܆´dÆÊE}›P‰Q*R*$×Ôc¬üÁÚÙ ÂI‡Ø -Ä›€íóPÑÌ"t"Á<ן•J¹y•çÆ.^M˜ +ù`Û¯ôÔ@Þ+ib¤³q»‹fkytL®ìbsX±¡0…_¤HñÈ+Ž ™¨·Ç%L‹Þ|úqlw¥Ÿ†ÿ;òu-,%ÍПl"Qo),´öÀ!¬¬¥î£œÛ  ýHšŽË¹óQ:£Éž è0Öî·DÞ1ââK:Å+=ü(ô؈ê„X÷ «´±3ãØ-\i5"l¦°Äa×¥Œi'zM›?íùkÅ\0sM|nw‹ÙËÔE??øµ8{›*݅ÊX ²¦—”æ1‚,ßJÂò©ˆOúR´¬ó·¥¼¬0¦Ð:òò:¾  `¤éjV3㡶Ymñ#u#¹ŠL`Ü·O§Aª>ôe: +ÍAkÿNÊ4í¶©NÍðºkcOqøŒ"Š‚8§&)IÚê’@’¬ Œ¥ +m(=¨[44q·qZuÊå0P_/‘Ù§ë?Ú"u“¹í…¶½¤;@Œ´ ¯ÎÕØ柊–‰"b6(NŽÿ}dV&iöá%*%5«£,.å狨ËV’ofö…c.;¤ÁÐ aù/‹¯p%Èçl¨ ÿÛ *u"MÌhù6˜,äü¦‰6ÅÞ¥Q>jfôR§õTÁîLçíŧÚ´Ô{sŧj(Áæ©«“¶2%éï0Å‚.‘`o³{N‚)öeðug¶è“B'âúb!„)<–„‡!@È*9 ú¤Ù,— +-5ú<¯{„zrÀ•ç_„(&Èh€wÍ1<ágAÜîÇ­ÉÛ8»_V7“¬Êe*ê#ôñ÷Pðp­b-H“_ŒxòË´¾þ8‚ˆð,#›\òG®ÌØ15 +‡åÜ=#-箂Ã)2ÙGÄé¸ \n1Dƒ£÷Í<_Ûzˆc·s⇕šþ)"Ѧ±;;åö“|3þªP„.j€´æ÷1{îüIž öŽp#“c>iPÛOYL–^p²e®¤¬çBxÒ´@y,4Î#**¼PY2 ªâ™®È€ÎöyâgØT>«ôø$ø[­–X“{D1étð?K®vý ±Ë{þ¢×ºÒjÞœ™þé‡"É4%{Cë{ógŪP¹iÖ;T¡M"_<.HNUF˜Ø“‡ñψÄĈ•Ü0N™L+/l¹ãQËì­q¾X× +²ï›wôÑÍ^WëwÄüðªQD]›Ã~@8~(”"þZÒýU5ÁšK"Ò5DTþó +i—˜ur!†lF,jð<¯XQfxC㼕X: óœ%Ól€•É»q˸ÙþÑìn¡“ +꾸¿aò† ZƒˆÀSMéâ¿aîøù8ÅÅ"k™gCLÔ +ÓØû"¨Ï“ Ïl#œê¢9“B€Mj½XÀê3Ò­Ú°ÈöënEº`Tës¨[µ¶ÍڟвN¯ßÕ—ejâ.DèËu§ 2OQ„ÎaŸôjcS˜d#¨´ùo[]í"Áðë}’µÃ‘:ë…ï*íµy0 ë¿}î˜ëíþ©D],2OQ¼ãà—^E:íMmXS7ÇU&®倧›ì6µhäøÂfƒ‰ù½@mųue[°Ã‰1.X¯gåˆ@ð çè¨kQHÒNV¼ìQú¿ŒaTÊb8åM¸­J}ppÇ»ë++¥iéSä¿Sjú@9Ö™\Ýgó7Û—Jˆúï>Öš>†Z ûËaD˜ïرµÔŽ@zØ›qÔ2ÐØù±Œ–¿Ô—9{V÷kÁ2`-öʶ‹5 WC!ÝíÖ×ß2 5¦BŽwRü«þÁ&û¯,¯%5ê%ì"è@‚LîJαmé W™{•8ùÁ)›¯$U?zð×h×X¼ {Ó³‘]P-ík¹º?žœžSîíÏp"€…¾3H SN ¹QQuŸ°ý‡b RqsÐ/¹( øMÉ©#ÿ1YV}Eãé/¡Jáö4óÿoË»YxÔב™i“šÌ“¿­På_ü”+Œ Ï ¸¸“ÁÁÏ?¿ó’æÕ&$,£:»©3û9|ðãË~Ôw†Ü¨.á°G‡Êsi@Cê”{25‚Üü¨Œ;´Ü®2ÊÕG¼UI8¤,”€“b—ÙA|Z:œV Sôì|:U¦%pkôÒèRÛ=‹‹GŠ #Õº¥6š,8íf‹™Bƒqb•ºh?&wOV,ïpMýƒñù?n\kz/šJ|ü;áhh3g…w ”gäh6QÀÞ’Nêøë¼þYwRñRÙãÕfrè¦ÅÛ€¤!(užØçfˆ3eͤ±òbP FMÜ9üŽ¤¶Uk +곡g”µêëy7ä5"Ri¦]Q¥Ñ"^·Äl%ܲL©Ï쫙ă~…ì<†ãø¹“}±uGO´¹ãqE`qÌê=d`’–¸‡L­N*‡È‘mãÕ< üžñ_Ìo…eI¢X,º¶'Ýù¢ÞŠu)\]$›-J{tXg½«ömêC—¶c÷ÓWįø![^2&NÏ+ÿãæo¾×¼°*Um"°Œ,b¢$@ì½_¶ÿZ‘Ù¡©¾ªð“|¿L?zœ­p§¹Cª¦KéAºdvÀ<·ÂÜ£Û ƒ…¯ ‘w$M a}×7+ñMi“ÏgGðfàrŒH•¿Ý âIÁ¤©û¶Þ¥”¸ø Émæ[D]È’ÉÔç¸(33Æ­úò"&‘Ûù ®ªJM^z`‹Ý‘Øî5! ›ÚwÂó€…–Èð"úꛨé®u‚:ÝIÝÃ?_ñ…‚`Œg¹'I’£´•j×þ}­ýË2ZïålÀöæè[x…莙¦ ü›ÉÜͦé›Þ,Yø_ë 혋¿ùãžÐ_A¦M^zìNLa‚/W´ +¨Z³êÿ…êX4·g› XšÛó@6Æ +zñqÇç°UK¡]Éåp*§K9º54·ð´ä~¤ êñ×ÛFÔß$Y¤'VzV´;ââi¿J#´9¡=ã*‹Xv£˜ é-=3c @.ÿ>LXÛš¯B«2Ùå€6i[˜ÀV¿è¿'?ÉqÇÉQoAÓ +Áæô‚á·ºïôàú‘±î'Ð× cVÕáîÆ(-ØX_{®´]K Fݹ/©0ù¸Ý®¢C궨ñ7Õ¾5ò_µ„ `䎼PØ5˜Ã)Ô³š*WË ¶ÎÈZÿºU"ë€,~”‡Ü_âWÝjáéëÃSFð ó^BB¡KØüâ&îm¥Ó'3¶ê¢a:‰ýx6ƒefEVïícÛë{n8+Iw…rf±ˆwË(ÊDV¯Ö‘}> Ñ/ò› _Q)ü£ußæÄ&¤ƒAÝ][§ç:ûÿ5ÜføÊD#< ˜·|¸úi"Ú#Ù½˜AGUô¬¯–'ÿØŽøãõèùÞX—˜‘nWU.÷ÅFõܲ xP Æ„±–Xºw×H »aû ·«KPuü+ã/…¬Ì +t¯ãÙ妅?Ãq×nËýu€Iží:¸ Œ×°~‰¨KJ~x|~+ú™I ¥»w3xRã~κ°Ù&ŽYœÂª.—Zu¨ñ^ZÉööÚ/âmêÎË–fƒz¬°?ÅfŽŠ_+¶³öüup³üôÕà}Y5N(æB®û^®šF” F‘nòèSÚË-…$~™u¥†á(Táj$J%ÍêN-HÏ8ý˜¤_ª²Uò} }FO½sÙ[¡z Ö%3+[§l×â¬Rou<̪Ðn.à 3®b2’ø’5èñ|ñíç +Ùf;á¤&ú}t”áu®"@H¡ƒD¤ë¯¡u1­Ãj+?9>oÝç>D¬qN6®Áyµ ¹K‘Ÿn”;…þøÿÍp9cS&Ü…ŒŽaö¥¨wœX§0i°~ο;°6v¿_ɵ|ªŠW$ÓÓ=;Û ÞîÍí ¿û—²Ñ>®‹ƒd‰oý\ŠhÀ6’³z¡†x-à ÜÓ &Ñ=¼ ¬š—‡AÅä!ž¯:–Àç`bùЂ÷™BÇJ…æ:Y_†±íÊ Í¯Æj$>*ÏX»ßqäBù›ùÀCauFöõ[Ì€ÛŠŸ%ýÂZì¼ …ú×ÀÙH2 (F]9ëCf2!®9}º  㣽i üÌŒ{éb՛جDS`s‰Z§<ïÝV솀(”zí4ÈŠkŽ‡yý 7nW˜Ç2hî`Ïç=0ÚlVMlƘÀ%21öè,ªê3Ä«:”Ù«ÁýSåö+E4 ‘Ïr©J?¿ïƒ·ýêzÞQbÇ^Î-— ÿÄ„÷f(˹jÙUqÓ¹f-q, ì)KŽßAžú«¦N endstream endobj -1879 0 obj +1976 0 obj << -/Length1 1412 -/Length2 6095 +/Length1 1413 +/Length2 6524 /Length3 0 -/Length 7507 +/Length 7937 >> stream -%!PS-AdobeFont-1.0: CMEX10 003.002 -%%Title: CMEX10 +%!PS-AdobeFont-1.0: CMMI8 003.002 +%%Title: CMMI8 %Version: 003.002 %%CreationDate: Mon Jul 13 16:17:00 2009 %%Creator: David M. Jones %Copyright: Copyright (c) 1997, 2009 American Mathematical Society -%Copyright: (), with Reserved Font Name CMEX10. +%Copyright: (), with Reserved Font Name CMMI8. % This Font Software is licensed under the SIL Open Font License, Version 1.1. % This license is in the accompanying file OFL.txt, and is also % available with a FAQ at: http://scripts.sil.org/OFL. %%EndComments -FontDirectory/CMEX10 known{/CMEX10 findfont dup/UniqueID known{dup -/UniqueID get 5092766 eq exch/FontType get 1 eq and}{pop false}ifelse +FontDirectory/CMMI8 known{/CMMI8 findfont dup/UniqueID known{dup +/UniqueID get 5087383 eq exch/FontType get 1 eq and}{pop false}ifelse {save true}{false}ifelse}{false}ifelse 11 dict begin /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0 ]readonly def -/FontName /OUFNAH+CMEX10 def -/FontBBox {-24 -2960 1454 772 }readonly def +/FontName /ZOAUSA+CMMI8 def +/FontBBox {-24 -250 1110 750 }readonly def /PaintType 0 def -/FontInfo 9 dict dup begin +/FontInfo 10 dict dup begin /version (003.002) readonly def -/Notice (Copyright \050c\051 1997, 2009 American Mathematical Society \050\051, with Reserved Font Name CMEX10.) readonly def -/FullName (CMEX10) readonly def +/Notice (Copyright \050c\051 1997, 2009 American Mathematical Society \050\051, with Reserved Font Name CMMI8.) readonly def +/FullName (CMMI8) readonly def /FamilyName (Computer Modern) readonly def /Weight (Medium) readonly def -/ItalicAngle 0 def +/ItalicAngle -14.04 def /isFixedPitch false def /UnderlinePosition -100 def /UnderlineThickness 50 def +/ascent 750 def end readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for -dup 115 /radicalBigg put -dup 88 /summationdisplay put +dup 67 /C put +dup 70 /F put +dup 71 /G put readonly def currentdict end currentfile eexec -ÙÖoc;„j²„¼ø°Aw-åÎ=Ó%åW˜)-{Ùr½uú•)¯œ‚ßröA•ÉÂÜãE(õ@Úý{ë¹´‡º“Q»û|ü_‘RÑå» -ØÐÆϤëA³Å -T@æ|ýq|Vk¹¿J% qu8P¢øwÄGx³ÅªÛ̆ÖåQæ¯6K üªÒ-UŒ\§Ô%¡bÕ"t-*ðxÔõöÓŸÏÿJ‘+ -}ì3¥{Zà2ŽùÕzݬT2sÀ$ZõÌÑ&{Bè–J×{¨¥Þ£Ô!ŽfpÿG?[öTtkuœ'5O P 1òÍ[.®BÉB•ìBo0”Í ÌVoðG;£òwŸëõ¬CMdK†&\YT{#v¬ mÉ ¼E57ºG~ß¡ +‚3[Å¥…š7Œ3Å:&uN¡]Bä Je ¤ÎþvûÂ(âˆ7JIFO/kZ)C¦k“z«™*7¥XuvwšÄ Œ§Ù†øg&Ö‹¬Uüî+D­WA¥ÅàßÔ³íäÇÕPx;£%]r@¤àÿŽŸ¡G•®à€íå~fúJ4„ë8Øù{v”FMô¢øøâ·"›~¬ç’êwšv¬âÇÔ‡þ1µëþÄëI mJXk kŽÕéÅ51DžˆÞÆ[ËWoplã^(íï;Òw‚á\FÖôËIz÷H…©°y$—¢$r ´Ù./±xjÍ83›õÛîá>ƒz>æ½9÷NÑœv-Úòv£à)üTT£D*»IL}Ÿ¶q°â¨Ûbx×>÷öu}½®&é:Îë=l]Õì™Ño:··´‡ê¤E“‹­iÛ§í[A^–Ïýö ˆÇ[—/åERÍ;ÈñRé;”"Æ6(Å©³K?C!Í>;gh)¾Õ Ga¹ï 9nQ©ÝÀ<‚@æð†(<Úˆ›|+†)}ÕPÆˇ2&©±d–qmcüß#ãIh²¶èÃåFöeIû-ˆS³žÙ „näçÌ|{¥cˆfyv40®ûÂë]vO‡?ñÝ‹ZωÊN#Iî®'\9ÜwÉûÃ…P®póþº`ê½i­ì(ä2ËNzf¥¢ò¯ŒA¼Ê‘[?‘ùÊÿ}—Ó7NÛ)Å-tõ)¤^«EI(^Ü’M[ß Ò½¸ëTf¨[¾ë¿ËzÝé{ Ü rCÖ2®¿YócâCŤÇ¥Å¬­ùfåýùvËn­TîgTBgÙ^fº„O¤W¬ …¾3KÝgç³iuðèØ“e>öùN¹…וø¬¦÷q¨1ØS.ËÖ¢+¼0ȉ<á÷§]¶Ìvž®ÖmZ÷î¥ É ›¯û=½WVhY&Rþ{­!2Ûܼè'ëNr6ɱb k¤_ƒÚ©Ñãé°þŸÀ©Íáë'À@ˆ1Æá3µ{ðMKÝ€_öû_ÙÄGaÝT¿AbÊŠÍ0Z¨B{䤡 dÖå½2Jö–®ä>û 7RÓ‰ÎK¬7Œá˜×ÑØÁT;È°èì­+[4Bó*•¿q4~;7 ³D 5…W?S÷»&×3•¨ÑÞñ[Låíù«öð^'{ŒüP)VÌ´~¡B,›10Z]TûÕC2e;=@Ó7Þnú¯6 -|ŸõÕÜ,E µú‚+Ê»%¯ó_B κ7() †û…xK6™”üqÂÃQýðlÝ:® ¦É`qíÔyïiŸó_O£¾7éâMK!¿5°(sêf<ÊE0»HwÞZë>g´§ÄÍH¥Q1N‹9!å;8 @Úß™:€Ï¬&ê-(Dƒ00·ð¨ðfkC[Ÿ®–ÜxŒÝ'=x†ÁWHò© i~ -s§Šý¬w‡ù£³O¤½€Vꮈ…i›ÔJ†LàÓú%’•{ÕyݘFü": -®Ø1[ÜþÃï[ nÖs…ežá]-Då.–ò˜œct&_–CÅ$žãI]Dؘƫª'¢„‘ÎïöDG‡SÄQ$Ò€pªÕ„¿6<ÿçø°~ð"Dé¿gÕž1àoÔ/+8ó®á>ÜY½‚Xœ+®ÏÐê°­öÒ…¾‰¾Á:f«XMÁÜì¡‚(§~t~xŒÄèôc¨+ª`Hc‘äv"œ+Ð!ægãŽl;%kèι #‚Œšvì" ‚¸%ÛM©ÂA’6Ö†N{…È%º•]Dû²`;æ>Ië¼³æ£Æåg¶!œ¡CSièØØofÐÇgŠlu:o3 y–UðÝ¢×ð\aŸÁ;ì'“à‰f«@á›™vØ⬊þZý¯j NB²]ƒ¥ð.y¸iõW3Ãû 5{ˆŒÈ$";é×Yü]«Ž` !i1ñ{ü²±Z„°n|ó¬„VS,v¯6ÜÅâ.Çam$|ã%Ù>ÑÒâí)TC¿ç–Ôk"£‘3ão²@*RU×,ŽÖ6ˆä<#4Â4`ŒxDÆðÄo:EÖtÛ{M„6#:‡—†®š]wçÞžõ›CAªž•'j]¡=ûûK4ˆôîEAÃ=¤±Î:ËMOÔaÆÒ+VXÉ[ã¦b,ÝmaÙ*¹Š’Í69—ZŠ°]ʤ»¼ˆƒ|¯`ÊÏ?‹tvñFè¢wØÎr2)ÆЉÖ/ä-ãOv±5ÅÁ@y©‹‚9 ]º#Ðÿ×ÑÈùóx~†{ï! Ë£zÉ{TÅD]7ºÿëÉðdáì{“ù­ÒãWtòƒMp† iÚ(¡÷+\, pZ]8·¿Ã¢¹­wcl_EìØüÀ¸Î€G#ù×ÔÓ±Á¶ê­š=]Y7*œŽÖrƒQþ !WQÜÓ„rÅõªögàdM9ÀÓn*»P² ´¾ŽœàŠbß3„«éBºxe ö@1RhOjø……ù\÷˜ÍBycw˜zÆÊj eµµÓÓH×?Åé´ •U•~péÌE‚èä¦.¬kÇI“®àc4g<Öé»äÛBêºùZë\¿B«…5h‚r¶†E£ „d^ÅwªÂŠÙiµ·m ¢;õ2 "?Åê -]`_±©Z 8P\éÎôw˜œ)ƒ9%9 ó›d„S6ÔX?}†Œ+ãžLÉY¨JÏ^y@1ùÊè ë(h{U²üÐe²m«í,F/d䘊Ô"H7?Âj œV}‚ö–2 -æl -O´lb(FY8ÍGúß±í4°.Å eS²]¨<±²’b@{ÌɤA.Sˆ Éf>ŒoÀöL£Æ¡6—/Ýç¿”ÃÅOH®eAᤇÇôÎ#:jîå -´7 ¥À6µYäÀÐ^Rvr´é?´NøÖVÒIÑÙz1µ¦x^PAéÎÕÿß~¬æøžKut’Sÿ‘`ZƒàGR`T•g3ìHÁ4á×'ÑeKR `ªÜk+·«ÞáÞj|á¹7Üoà»HNPq‰JgÐ4Òíéà£{ù"ŒçNñÝJïÚØ.éñóôàÐGo[öyv±‘.IS¼+Ç9jÎU´Ld+ˆµ“fu”¼Ë¥Ä~mQ¡±fÃsGñMÎbÐ)êRY2áÄ>®y2d‰=¸ƒÎ»U•ñ¡eíëØüò¹8†@*<*?µäæ!õ.ìyŸ]PhŽNÖЫÑ1Ìq€ÃïærYgî²°MŽ´RÇâ/‹êÁ -ô_XÉØÎ仾ëru'Aßpue+Ë`Y>q† WòXG¼6dïˆ÷¾Z’ ¿ñ«e œå‡ÿ‚”õñúœT¹ø¢Éíï_‡…Âj^‹-æÑ'[n¤nyOZ£:OäþÔ?UŽ”ª§¾3z;Fraᪧ}/_ ›-àÐDŸ'o²!OäQ'‹Ê±LÎö@˜ ©Ø.!UxÐò~eRj=U=Î¥Dqæ±K¦ß’&žu9éûÍq›ÎD<:ß µ¯‹áLb½.3¼ñÿ„cäþ%Úx]«×‰;®­ÁÄ ð½åaí¶˜Ry†Ÿ ÛZÚ:ÕÃl‘Ž¾ö^ùn×z!Ë/rüUŒ¦Õ¦î4)ÅhO·’MMdÄ͹æ’þÖ ë14õ´/Xû‰·sa°0"îA«ë¬µÇõer™á¶’lŽBNŠ rŸ8ÑÝ°Yç~ry9‹h‹Å?êchÙž–!ú„c -Y猅OŒ½Ûúc¤õÜ}q¾5Ÿ—–\¶ú–(ºyÕ!ý¦^âÙë(L§¶ 153Ùjv‡zôhŠÒÕé9é·”®Šæ—7ÖZõCYöå³€¹ÌOÁàª:,!·’ýU…C$*Úh[GÂ%4èO†ô¾#+¤y“–6"Ð>RR-:#ÉXL%¿Yž¢ÉD‰d«­,[Þü¬®®‡F¢Tê ¤ˆgËXc‚б¿½:¤o9LJ•\{î„­ðÿ¼h%v9õ'tÝUB¥´¥QÅ•&ƒúFÿpÅÔ¥ÛÔ,8W‹åë—¶öëF¹ÏFŸ˜“À-Q¤EW¼ÐDE²zÑ5sž#.TD1R0„ÝŠ¬±:û$Ý}+ƒr*é­W”ž›ö€Þ®Ub¿œ\]E¨vs|Ã?Lko²¤ŽO®¤ÔþiÇF‰Šx•Í(8‰z1áùdƒÃú8w .ðb€"œ°%K^i5…Ã9ÁC|÷]Jçä4¡ptjŊÑC”˜È‡”‹Í -Ä­ÔGeè‰å/" #ò ß@!aM†bòE±0ñ­Á›ÒU?¯\ ábY¤Ó½ë‡÷Iƒ¤mÊ—õ.Ç`xò+Ø‚“2qZ:j㱦étWM½°Kª;Æ8¯Æ¦Aœ sì&qü\oq¨ºŽVjQ %i®3k’$nõóõ'Ã=ŒE#*à -WVV ½ IàPQ8ë€ôãý>Ôài Õ4bm ¤miûåšÊ¾Ñ.P`²W0ÍÑ'2ó†0æÖÜÎvûwl.]e‹l™Ð‚íùÝÅ!®Y——z›Ö"ËýƒFßkRÍ™¶ÕÎå,­š`ká%‹˜Iubaün\þRÚ‡udÞ Í:tÜ?·°ìY¦SŽúû¡/WXlOé®]Á{¨j -À±f—•ˆ_‰p|”åê=ZO›Ç(ï+ªý`ëH -º5 ~šœÑ‡7dhÈ¿Ö«]VÛ1´ÕÔ„ìœ2¢ÐD(ÎW[Ã/tG -W ”(µ ìz ŸKø¯ÖèÁª3Z!‹>ôŽL§‹ßW×aF§;®‚w¢0Þäc¿³èA–°”Ü‚ìÍÜLc»Ea;ã° *DGµ5€HXÒ&Æs¸‘wÈ*ñø—¡’ÂËä;êäs(­#PBÙ¾ hoOt%ŠJ»Ã ÃuÑöÞ.:üñô–ˆÛƒƒ ÿ&eãåss¯E¤Æå3aÌ•*™þPê›v”*¥k]5öDû6æ?¬xæ3à{Û%·Ð¯Eó¨µiVÿÀ ÿjÆÓ¨¯¹§”P£ƒNx[šö ïЩnôP×Ú1#WÐv¥›A8Þ¿6¡dz“¸LíñtGîb5Püw,.½#g»«…ŒþÐF:ÙÀîð4ý:uBV÷@aOå•2¥zšn!Á `p»gTwa„GÜ7þ”Ý= bézêsÔФ½¤–Y@«¶}0Š{9üBî6$ʗԧЋ>«Ên4=#|¨hý~ùÞ•4òR_=¯ÒåÌ !៰\Sï‡Nêú˜Ð¼».b³ZÏ&¡z t¿Š~‘^´ûÆ×±¥¨+[Àq'¸ˆ_ `XðüðµÈ›­øÆ›ÅìSš¦]¢LîÛgLovc—ž™È 4×ÒË£kR‰.z›SŽûÒK.µ$ƪ½‚°o³ã”5â™øœänÝŒÖPƒìWÚè Ej I‚ÆSnÚö$I~9VTm'`_‚íöJêMšWýÞ®8ôã·çœë>`ÒQ]K¾_CP°¤(8¢!ÿÎJÙªS׊]líóÞ¯Ó_É“ùBAŽ‰LQºs…&òúž^¯œ -1Ñ_ú%Îù@quu£=‘8ùþèÂLTUÒ§Ùã{]訯-S¢ÂHp‘ׯ‘†â°/[ZÁ +ÙÖoc;„j²„¼ø°Aw-åÎ<ï˜øX2-Τ^tÅEÒ_á’SœÚKªFÙÄ1F^j¿NBqøžÞ×ó{ä³´y4ö-FègbÖÿöÔ“{÷"Ö¸¡W–B:§rÅP‹À ?dgÅS%|'²ÃØ“w&¨F7J…¼N¾À°¨œL9VìâRt¹bÈTå5ô'ŸâmƒãŒ\‰—Nš"K<¾ù +’w¯àÇÊÈÜÄÁ‹Jv‚åð$†tE;ÈD4¯VÜ¢üŸ§vëš{bGCSM¡!R +ÈC¢”¹ï\ü#Xjœ‰h“ +ë½¢šç¥ho€—ù35ƒ8—ŸÔ"‡gŠ{d<ÝFR€¾¹×‡ÊÒ÷ÙàÊäl Àл(œ#|h¬¨ò~ËAS‹j˜®cZ-.W eÖ¡Ä*wc0 ÷¹G1—N×…è‰sˆ'î&X8ó»ôüÛ°²ö3º¡˜—¸/¿¿`±C37ôVl"Ê€ÚéöùbªÕNeP@K»VcžR„8Dh89ªëûõ¢ pzã šLï›F]Õ䘼¼m[Yüö¡èùÕ´]Ô÷ óöŠ_òhV`×I1íJöäýÍÙª¦*<ÄpŸ{v?÷ \»G¿—]øééœ>D tÍ U¦#þï8̓,®Úûe½¢èG- )Ö1Cÿ4#è9âÕ¶B~—ª”èD‹Ibþõ_ 6,Ž=;Ü‹o,ÐNõIMœj_üvVoå%Èh¡§ÈQi ¹›5X<Þƪ¬l“0šLƒ„Ä ËöºÞï’âc0+$ÊcŸ:íÕ4#Ì3R+h~y35±®ýâ42K„©¶ƒ´ömåêÝWz.¢gå!jA¡|ÓÏvŽ9—eqöËÝÆyF[qÂÙÆ—lj… +éö姓œæ)jÒ™¦s>l§°¨–2²ªgçјpTæ¿@M/{[»bîK1NWžý½ú^×t€D§É$Ûò;áÄŒ,,ý…­ê¶BYQ53˜}ÀQ7¾sR »Ë|4aĹ‹û¯ˆ=8ש1• Yï‚´ 'ò;lÖ3#pK‰›Ñdo‰ 2{ÁPÆ?ÖÜkùÊýµKuÄU%Ú¨»5@_ÏBa˜*ïÔ{U’¼›ƒ-ǸÝG¢†«1ÁL‰5UÀF0éûÒ„>êMR ×Ð1)dqž÷a,<ׂR–•ÒÂB§YÙ_¡²– ·¹Ôø1;¢V©ÉWú*]X©?û ?÷"KZ¸ˆƒ†j@Q8'ƒeÞ»tâX»µè¸<ÜØùºë•kæ{öÉs-ZŸ¡mqq…rÄImÝÔqt/9aŸ†N‹gcZïÔF‡f®D|l¨êLYùÁBj÷g­ú…°›§}`¯ð‚㜰h$šæ$šTHÅ-'<Ãg_FXz:mä÷Ì÷û¿#[:·~ +=\¨EöäõÓ«bÇëÙªáwÝ´Žyó¡ý%Й!{fª~(wU}MÆ„6üB™0Ú¢íëÅÞ°&¢oËM°B0Ew¬xHŽ_%/?·ÖËc5ÉxòJúÑÍIÐTý;~”;&\ú‘( MzÜkS(ˆù¸ŠJ£Ñ1^Ujäbèeƒ62‚+¯:?¸ó ¯È3&ÿä-ðE½Xò/[¼ý£vÁ›z·@Kñ¾Œf#ê»ýôÜ+sF;Ì}0¨KQŸ¯\¿Ü¢Zœ!ÌC~è4%÷€ÛßÿàFÿûG­ÑNü2êUŠ’9‚IÔBç€56ò#ãû¬Þ#ZÞ5&"'†öÚ¯}…Ág¬[çç~á³»âH)}íSÓƒÖííÔy*¢ÆL <ÁSÉÐÈ|)`€ÅlGáXØùÉä²öò´Ÿ.}Á/{]¤Öl®¶ ѧ"$QvEÒÓV½àÆYŸ@ËíÂç}+%9ùÓýU0òÆßÞÿMc ÃâÄ»„½1^ý¯ ×Ôd«Y|'ƒ“ùƒ«<üôYŸEO¤‹‘ö‘RàÀuV×x#òœ>ym‹ºÖ›&àõxºŸï‹”œôy †kù¶¾ÿÔkxHÒ73_‹ë؉յ^0¡Z‚SÏ%Ý–Ú«=—jx5XWYDœ¢è!ˆõ¸<(ùeÖhÃ6‰£µh· ¶×B¶û@‡ æ2OêÉR(!éK*°Ü¯Žý˜¸”tÃÊ^çØñí";!0*Ê +tG³û +¾ÿl¯8JY|’Ú +º«5K9‹„ïÕÜñòmœYÓ©ÇÌn FÈ÷>-?)¶"ȧ·9V”ÇÓ*¦wj ÔËgøËÚ•–ŒoœLåÁ%Y~ZMËýÁ : ¥ž´¸Ì »ÆçÀ …Ïð÷½¡Œžè¼!P!¾Ïl10{FÁtê'Xꤞ‘»çKÄEM×8ÒáåtõÖˈ(üŸQ3kZ¨ ˜ˆÞ›ê¡4²ŸÐi_9Ï&y£ˆsÊlAÔÊ—3*ˆâ@xk,@|xÀäÜ/ „ÙÑÓÊ–×)OÖc©*ûDeE¥| fü° Gv6\„‡ÐÁU8ë"½ÄÐm1õaè0ýhÛeA·fCÈÕ+œï¢5àìËÇ5 oéÃN¾–wÍ^‹kœ¼:ßG û\û0a#ž ˆ¿Šî}]xü‚vRf·)t££sLÎè¤ûÝCs_W@#Ä赡7iO–¾¿ÊX§Ùà”t&{€biÒ¢»»YnVÁq¸‚Ì à!Xƒ[oíÍ£wü_î "«@àäÑ]Ñ J4 ‡êÒrSE±Í +®,µ0–Í9¬¦–DWþF²"†‡CÿÍ@iÜæ[Ô— @í~8”öxtvžª.ŠfU³$ ^xÄ{mé³`†ŽŠú#èZÛå,ÍñýQûþR² ­ÏÚ¶Æ ‰€ˆ® %„SÈcí0á»G¢¢æ.ÚÓæ;Û=÷î”ê°8ösy뿶'óZ]Ax³ÊwZÖêjGµžOIƆ7Š¦,Ì5åoæö©ß¿±Â<Òk@¦%sI\``AI±F-•Hëãb`¬áën€Ñú80¾¥ñ%ÛQ¹^p›ÏÆÄu‚s]”³S4›/³Ùu¿Cé³ó4+‹ŒSZ€qðp`Ñ®£ðŠlD®à”Ò™04-RwÜ$0•:ýØêÂÒþ#ÏzðÁŠ,GLÍLwüÒ¡šK^ÖNÐŽÿªbñ•)à¿èQ˜o•Ê5²ôãU7‚æãÿˈ*ÏAG¨4Â1rmŽéÿ íÍœ=`ÐÛƒI<ó*V­=(Ë8¢ø#+ø+åy7é?n?Ð%DA€s¥G­Þ˜;3žáþ5^*jÈœHëùUŠ1nÅ/˜°w³`S¶›’gª@a¬'sÒHv¼x EæüÚ^)•ºp‚ÒÓóœð¨)$ú—³ÅéZv¡FBºLG—8v2«¿#a5X +çÏÇ4Ú„žô9ødNÉ@3›\9Wtžš¯ÖTL÷ð%:íäқأÐÔX9õ-]{&_ùæ1b7}z&†«#4]fÉ5(°l<© Í +ÀD&-]° Ó;±‘OŘR6ò¾“Ïô—êBo†;£’˜ ƒ–Ž%.a4/»Á-[zòp_d—³âSÇä2åßka½PŽo)za}†>Ú焘kGïØ~D˜5¿ñ5Ôo>@]AI¾m_Ò¶“¬ ïÄªJ¤°‚oìŠ^É’m·Ï†o‹¾‹#6PUA"XÙ꛸ÌûˆÜ/B^ùÁ(Œ•@n$#ŠÒïHÁÞÝ褔0ã´»fÁÖr,ÖädáòÌÜ"±„ëïq½ø+˜sü? n¤¨½~ŒÈùD’˜LŒ¯ò z’CÙ ­œ‹ûâ’ŽŒy¨CEËþñJߢØÐx«Ò¯šJs÷›!§òèü(ЕԘ>âÚgs]÷Î8`;›Ô­V=¸Ýhk²…“TJøöXM*•8Ì^Ùzëce™²Ñ…E)ªR• ¿!—6Åw¶ñ¡…âñ›Ô3–½''6"sɾméƒI`=0c%gÐxúƒfð‘2(g1íþæQ&#þšpˆOŒ¶óvY@ HÿÔb‘ûÕˆG[÷ï$Ñš\L5Ê¢–ÎúÚûÕˆ +f¥/Â6Oööy”‘щƒTãÌ9˜|û]OÖÇ`”j­éÙ³1+ˆ‡šWƒ'd¦NšãÙÃ(Œ§lßÅ1ª®BÉÚD^]᣼zò+ÁL4°1—†¢Q™Uq +ŒªõGš“B¼ÿ Ü“VA'¡îSõ§üqÓ• jvåøÁƒ)Ž³4î°ñÓЋ¼ e|ÕiÅ¿l`uƒ/‹æ”o»u>_سT)^SÑ-…nw}ý, ˆZN¸EÐCô¯÷ Y ReµzÂÔöð3¼øs¶p€ÐúÅ$ îý2…ÍRH?. ¡p…¦Ÿ#Á+N—úÝe>Pò£rÛóIÈ%yëù@©n-«°¥®ÄâS4±Ù¶Ô{·ÎÖ¥Yð[ÃOîh„¥E©ßiŒŸé\*Bx‰CÖЙ#©Ì(~Ò#=ÆÁÏ‘ õ“ÃÆX\§ÈÖyàQζ5éìª_ýp&R5‰SJÖ^ šÎäÔ·rô•X¿æu׊¢ŽÞ œ’ã¢)žÆ”1¬,B§7îG„±OÕDÇE åÎk¾ÎË\³ÌO…ȧòYŒ@øhn˜•:*ñ§æ´Š@Q?š•ƒµPED€Só\¯‹ú©ê Ýؠ䟥°„¯C³úó…óMhQQ“ŸÒxMÏ—™DvØ]錻 ×öú®Ò¦«áJª*¹Tâ¢#Ü"óÒhÛ…×ñiW_5Ê™•aKÍT¨ªó$×#‡‡¹.êî Æ—ð Yamç€Ã=ÏfòWâ#ÄétÆj&zl…IàX@t›Å߸ඔ°*úïî½'>`rÂ/XšµV(ísoª…G„ÂR¥…ñÀÕe'´Ââú ¤,ž˜q6Že: 5làûþÑPî½ÂÌ&•7‰ù/®œ²šöì +E“x*Y›÷ï¨$ØåÂÅݦÀáÓ¢¦ ížóï1”5ÿÈœ\>¦Óöh°#æ1ÑFÌ\ž`A­kÇS?j¸Hâ–Ø:+S D·:]+H¥TÅ5‹f‘\V:\Êg­õ0Èﮩ⠔IÒ²t} +ôoDÃkòsÿ>+ÔÉÄDØý8Üú5ß}•láŒí‚S,@ï¢\.ÁöX ÞÝÈê:éÏ;ˆš¶Í Þ}# z—;d?=èérXB›¢ÆPuŸcjbß=ÆäÚ$˜ E,cŠš2{Æ«ëÇ-æ·1,ÒÌtœUj¬34sí¯„ 1à€1ÛhmQ­Úøñ4¿Å¨ŠSÄxLÀÐL‹I‡Q–ÈMýšh„Æ­¬Õ¨‘—XTœ†3(3®o«×†Š0É£“ À¤òº¥‰ÚY±'=—¢‘g²‡O.*õ¨„V˼ü5Ÿ$àõÿ´Íú•Z[ÑÅ‚s`\T¸¡xyÖx{baã-:'c˜p{m¢å.z~4âÆ_Ÿ2ŽŒôa½œ¹#ÿ²ä[¶é@±?cÖséƒ 9A‚s‹·Óɦk Ž*çú +¤0Ɔ>C§È’¬hå¦ÚÕ®Ô)n‚Îb¢ÐF6&þ—tR† +±ï¾ƒ»ÔØúe„‹ylµyQ( ³Èã)©6¤ð +‚üܾ³¡SÀãý³)q‚|/†`ó>èœß÷ +±!ÏÉ[+ÑAz¸cÂa_š—t!ý4©§Ût%œzv@’6‹ná+•-ga”,ð_ ŒzkÊ :×¹¾ó»EÿNyX/ë5 }“nœµŒ¾+,´Y– ÁáÝTrÛ“7—hޛȕ4°Z†õBœ3„¹$çñM'Š¢Q6AÛuŠÂ«T.œCá ,ÐyP?æ%›ÂnÀœIÜcñeõOWUxŠ …9Xœ€Î–  Âü7aªJnä»]øôœÜµkÉÝÙ‚e1Õóóð«[Äå+JIsXñW¹Â°¯?m‰T ™_ôàð×\ «Q‰…á.²(®úÌÅCa1¯¾e2XrÖ¸õ—Ø88}~Ÿ~ÆàH¹Qüñ¹ $»\w;?°§4â¡Bþ‘žû?³ûR±B6!Y6ãnýŒ9MŽç¼ð˜¤ÒWÑ\6Üâ}©Ë–kxwn—ëEÀÁ¼ˆÃöB êÉ+õ!î±Òëâ_>;Ú½(°Uå«Î Áfu—݉#nÇÅÎWòÚv)…!dTˆÍ@Aæ!ò3xmü×Å(ÊÑ0¦–,ø§ä^>¾T¸mqŠO^‘“-{íâí7)ò0µÙšcé2 +B9V{‚7-cOgm6×=Uÿqí¼Zþ¤ÕUkew·ƒƒ>øùx^[.ZÜGçýPËn!‹¦–'¥FÛ÷þUÏ-]1‘fj 6OŸóR®fäWg$·œˆr›ädVÕ+ø&K7I¹R„Í°d «à©!ðH„Qéêð: øÎYGdsª† ‰Óz_”üå| endstream endobj -1881 0 obj +1978 0 obj << -/Length1 2027 -/Length2 14551 +/Length1 2668 +/Length2 23077 /Length3 0 -/Length 16578 +/Length 25745 >> stream -%!PS-AdobeFont-1.0: CMMI10 003.002 -%%Title: CMMI10 +%!PS-AdobeFont-1.0: CMR10 003.002 +%%Title: CMR10 %Version: 003.002 %%CreationDate: Mon Jul 13 16:17:00 2009 %%Creator: David M. Jones %Copyright: Copyright (c) 1997, 2009 American Mathematical Society -%Copyright: (), with Reserved Font Name CMMI10. +%Copyright: (), with Reserved Font Name CMR10. % This Font Software is licensed under the SIL Open Font License, Version 1.1. % This license is in the accompanying file OFL.txt, and is also % available with a FAQ at: http://scripts.sil.org/OFL. %%EndComments -FontDirectory/CMMI10 known{/CMMI10 findfont dup/UniqueID known{dup -/UniqueID get 5087385 eq exch/FontType get 1 eq and}{pop false}ifelse +FontDirectory/CMR10 known{/CMR10 findfont dup/UniqueID known{dup +/UniqueID get 5000793 eq exch/FontType get 1 eq and}{pop false}ifelse {save true}{false}ifelse}{false}ifelse 11 dict begin /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0 ]readonly def -/FontName /PUWBWT+CMMI10 def -/FontBBox {-32 -250 1048 750 }readonly def +/FontName /WUKOCR+CMR10 def +/FontBBox {-40 -250 1009 750 }readonly def /PaintType 0 def -/FontInfo 10 dict dup begin +/FontInfo 9 dict dup begin /version (003.002) readonly def -/Notice (Copyright \050c\051 1997, 2009 American Mathematical Society \050\051, with Reserved Font Name CMMI10.) readonly def -/FullName (CMMI10) readonly def +/Notice (Copyright \050c\051 1997, 2009 American Mathematical Society \050\051, with Reserved Font Name CMR10.) readonly def +/FullName (CMR10) readonly def /FamilyName (Computer Modern) readonly def /Weight (Medium) readonly def -/ItalicAngle -14.04 def +/ItalicAngle 0 def /isFixedPitch false def /UnderlinePosition -100 def /UnderlineThickness 50 def -/ascent 750 def end readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 65 /A put +dup 66 /B put dup 67 /C put dup 68 /D put +dup 69 /E put +dup 70 /F put dup 71 /G put +dup 72 /H put dup 73 /I put +dup 74 /J put +dup 75 /K put dup 76 /L put +dup 77 /M put dup 78 /N put dup 79 /O put dup 80 /P put -dup 81 /Q put +dup 82 /R put +dup 83 /S put dup 84 /T put dup 85 /U put +dup 86 /V put +dup 87 /W put dup 88 /X put dup 97 /a put -dup 11 /alpha put +dup 38 /ampersand put dup 98 /b put -dup 12 /beta put +dup 91 /bracketleft put +dup 93 /bracketright put dup 99 /c put -dup 59 /comma put +dup 58 /colon put +dup 44 /comma put dup 100 /d put dup 101 /e put +dup 56 /eight put +dup 124 /emdash put +dup 123 /endash put +dup 61 /equal put dup 102 /f put +dup 11 /ff put +dup 14 /ffi put +dup 12 /fi put +dup 53 /five put +dup 13 /fl put +dup 52 /four put dup 103 /g put -dup 62 /greater put +dup 104 /h put +dup 45 /hyphen put dup 105 /i put dup 106 /j put dup 107 /k put dup 108 /l put -dup 60 /less put dup 109 /m put dup 110 /n put +dup 57 /nine put dup 111 /o put +dup 49 /one put dup 112 /p put -dup 58 /period put +dup 40 /parenleft put +dup 41 /parenright put +dup 46 /period put +dup 43 /plus put +dup 113 /q put +dup 92 /quotedblleft put +dup 34 /quotedblright put +dup 39 /quoteright put dup 114 /r put dup 115 /s put +dup 59 /semicolon put +dup 55 /seven put +dup 54 /six put +dup 47 /slash put dup 116 /t put +dup 51 /three put +dup 50 /two put dup 117 /u put dup 118 /v put dup 119 /w put dup 120 /x put dup 121 /y put dup 122 /z put +dup 48 /zero put readonly def currentdict end currentfile eexec -ÙÖoc;„j²„¼ø°Aw-åÎ<ï˜øX2-Τ^tÅEÒ_á’SœÚKªFÙÄ1F^j¿NBqøžÞ×ó{ä³´y4ö-FègbÖÿöÔ“{÷"Ö¸¡W–B:§rÅP‹À ?dgÅS%|'²ÃØ“w&¨F7J…¼N¾À°¨œL9VìâRt¹bÈTå5ô'ŸâmƒãŒ\‰—Nš"K<¾ù -’w¯àÇÊÈÜÄÁ‹Jv‚åð$†tE;ÈD4¯VÜ¢üŸ§vëš{bG@ëdÅ«ß)–ø²Nòhäòë]!(”À7h`”fŒ1ìzùpÜB˜r £æŠdÛž‡·Ç>“÷sVÙiHÂÞ­âkJ‡…KyÚÔÃÑàüuK—I[ÏÆ„(,M’=þ¬äì}µ%½vf†º'°–äE+œ)ê}fƒ¢Æ$lÜö(…ÔW2[8˜h¼T>¦Ü9„º€X33 vi˜®U/µçÇ¥Yö{z4þ¢ó¾¾B&Úq¯‹nŒzà³Ü|š¤¡úï1/É´c™±ŒCzwmáö|¯xá]LÇmo¥}­z¼m5íà׎Œo: ž©ê¿Š„.º‰"­ÛãĈõ¬d¨N «úôÍÆo¼3 -v¨Œúëzýëš N -p´zªP;VÒ¿g6ǢŠ>Ù,ÿñ>º—O€J4mA0ÌýR3¶Ö¹*È{¾+¢ºä9á…iuåÏM”äO@h}-Û(Ž ‚Qȃ钌¼Aàô¹Ÿ‹)Ó±Ôí ¼¨=.9©çœëô3góœ=[¾_ÿbÿo_ðBV¤ßúƂ˶òW"í䶛ÂàaòéoZFsO‘)„”¤%ïd2ò¹wŒN»­ÓH>õD}õðÛ‘ÅY•¼í´±1jZ®ƒg¨¿1b¾¹œJªa|`¾h§b)ÁwYƒïc[&0j”ð²X7yøg -˜hS·…¢&}pþ-ÒêfÖ^ aûÖ_ -Ål4zVéóènRóà¿_e@¯³*z|–‘•Wi.·9Ì)ŽÇ™›B†SŽßs3Ïk ,^Œb’šðz˹a Ë…4_BãêÜûÆÎú1ï+ÑÚÓìWµ²2ÊpoœDûœ«‰¾x>Êf×H³ú[]TEöÁjšRÈŠ~/+û ääê š˜Ýl8äzXÜ’p²ôŸ›H!V÷Üd¶!¶€;d4¢£T¥Ù5:,ãúv#cK*ÜÖ;+zÏXŒ¯z k ¤QÓßwÅ>aqÆb6å1Iú¹ÎK&…?eÐÕ÷‘=ˆêf¹¶<ðjKüŽÓ$k¸löÞ%_ôm$]™9ã-ă åkaLËÜù˜TÏP1{Ðn ‰ŽÕžFÚ{bT½Ì¼f†âí ­{‰LÒë&ˆÀÀ -ÊX9ãʦàú÷îµß>?Úä´T ØÈoîRwšÓá: -‡›e¹ï -/ò ‰ºèÁyûí¸}„ ‡tæÚX¢ƒº"7€òqt„àfú}ÀæÑ”)°†8SRÓX•y<œs´2j•O^¼áƒº%À Uº…à{>Ô/ ¬¯©Cmoßå0Î%¬}¡pÛdç{h4>ŠŠ^wD¦ð@eQôdÄêaidYÑ^à@¿µ?p i3;²BŹAeûûÇôõ Ñ"­Kcéæ_ +ÙÖoc;„j²„¼ø°Aw-åÎ=Ó%åW˜)-{Ùr½uú•)¯œ‚ßröA•ÉÂÜãE(õ@Úý{ë¹´‡º“Q»û|ü_‘RÑå» +ØÐÆϤëA³Å -T@æ|ýq|Vk¹¿J% qu8P¢øwÄGx³ÅªÛ̆ÖåQæ¯6K üªÒ-UŒ\§Ô%¡bÕ"t-*ðxÔõöÓŸÏÿJ‘+ +}ì3¥{Zà2ŽùÕzݬT2sÀ$ZõÌÑ&{Bè–J×{¨¥ÜÆØx¹<¥Ÿ ,—Ü-.è2›¯iR‹n·Ã±vÌÙ¾1ä • „'Æ䓱©·_r"O¯»_‹t±3keè¾fBݼöVÁfj—Ú9Ò³ÿ Ô Yh뀸Á{û´qÝÉÊÆ-÷†—ºøÉ·ÊãÁ}W§?Å?gw1*Eh[ŠÜÛ:›—ªtÍÀWeI,Úv•8üa…<{‚ñBú1â¤00Z8ÃÌî5 |ñŽ}­µðN¾àÔ×lw]ƒÿƒ6Nÿb¿—ðð¤h3E`œ†(¡›EÁ‰¡Þ'Q;²eµÔƒª/ðà­.D©yL’â5ØñÇ$¥4IGÃå׮Ɋ\‚yjù9£.îV­U»5£Q!äì‹-ÍèµÈBƒ…Ä9ödèâö««B^éoVùð­wˆBÉŽáT7„¡‰¾R€ŸÀsO™GA‹¦÷ãÕà b#íTBv!m·WT=úãÍÀ¦üw,ªID%'¥ÙMÅKé<‡|Ù]ØD¥Ã°€@‰õ·€2²½Oø( œÝŽ%œæÛ#_½É·VñþBSTø¢#zàÃ×ÒÍã!ËÑã${l­\§4ĸ ;5Œ™l‘&!×〚óß=(ŒŠþfŠ¸ÞUwA´Ú±›ÔÆeßìÈÌB#½30>ÎìH ¤©'œÞL¥+ÿÖ“žjâz@ú¸=®s\²Þõ<…«=\ÀY$ßD?ˆUê Ðæü6•ŸÒxG¡QnÇ«šŠäi¯%Ö”ž!×Ñ +L2±[žšôã¥)!Œf…X‚cè‹ã<Õ'Ȳ–ñRP3E¡!„-:±'àþÐAJ¯.ÙIJCJÎJtª&Ã{76± +#VÐÃÐÀëÕÖHÕ“ó‹/©ÊF×gw"F5”wñSˆ$|¯ÿoQ<ÎçΗ Ñ`~¶<10©|™ÿ<»émï´·ùØœÞÉhðÞ „߭逵µ°°›?É`?ó7–ë _Ì [•¾ó8xP<41Õó=tÏøHÚ ;6™¹¸}rKu1é3ûšUCiš´Ht­²ÑÓ}öyÖþ~c%\ßqï€\ººæ4O4v![›_÷Iº¢°ï³¯üÆæc‹0ß«òMJùMŸY0¬Ìv{6ß”Ö\øà rŸqÉš"3=÷”TÒYK.ÜKêÉ)Á,GÊK{aˆCZBGž½ +yÛ(ŠK'†Ã2O0ÓV—®6IP$$lûéú¬¸-“à[ÀëÔeÍÉ‹øÇKÌ×&2%g”b¯z‡÷JÌ™,uo~M¬2ÄzÞu’™ ‡Ô6*š»*¦ Å «Ñÿ9¿Î¨ß?Ä£K”c)ËÏ÷á\ðgŸt­&?©ãŽÏÄôûnTëw½“æ¼$ dN\C¸›¤ÎÚOöÖÏ@¥W2xè8q!LdÒ®ãoë~ä1V/ŒÈB=@±ôúí!0’ÁY¡ozù$íùÐ÷Ç€%Ä­¿ÑÉwáÞá2]oªÃß ®_ý?IhËuè¡BmîF:µ1Ø–d©Èy6÷‚ÀÚÞ F ¨„Ln5Sòw&©-ëÓ°¯žGzø¨9ê=È'’ä(Ìý¼IühNú´Ö{äO ˜1LvcÕmiµ¦À&È"MìêmÄ@·WÕ†­¤­mÜb%0Ù˜*ú`šëÄ¡“ß“/fõÃl½%PE2¡:VA)SBL/æ<ªî5ªCžA£ß÷l;®{ËÀ (#ºØXnF’"‹˜„8{RØo’ÁÄT(ä_WðbAþK|oM _ÖÓ—Wßþ‘½ yäMèÿ6€« ±^½÷atž@O1ë¡/Fñ”¶3y#™ãcMM×ÐGÅZýÝ[m¬ÿºzÏŒF lªù«"ÂJ>®eØVBWB}çV)ÜSÈÛi,¡ïÞ§ïR¸¥½»FǪ½P.è½LÑ€xø¦_[ÎXVˆÇóôQ ¯ TPÿõvƒ ù +eÊ,’pþÚƒrh“ú¸“uñ„Œ`+l{÷eQ÷Ö_@f63HßPavÑzUÍ_°ŸÍÆZ«1*ªäǯM+Çbp€†;{ÝªÌ ­Q3èVV;Ø¡¼ÍˆÓ ®O.Ožài,¼88«ÖƒìÆ…gŸ=\=à@"FàúKFøT¡bû˜‘¾VŽl(lg®ÁÚbÒ­Ý!¸èªÕ–ÕË\áýùa4Q1°Ì~ «9âqV¥¸§Ì¥ ’s^kí¢sdŽ›nz‘Á­£ç¤:ÖLžz]Žðªr Š¥¢ªƒvND¾‹MG79$ILiþ&“AØgánl6y‡J FOµò;ð,zÉ´Ñ% +o»¯ß xÈ0˜s‚ÖÈW1FxÏîÔè—ß gþm‘µxVyõµÚÑ"]#z~—§pvòÁ †‘™öØŨ.rB9‰$n¸YC­C1úÄtªd@#÷¨8ÐkN‡Ô‹K° Ó;£ÀêÔ“lFú( ØŒNóŠ¦;àá¥dþ¬Âûí’­üß*¼Š<Ʀ¡•ãÅ„ªsÀ¦9<µG CE`…Vé¢hà½ÉÄ%Q“ÎF¥oP½Äâу$ª½"Ñ33¼÷P9×9ìZs9‡'`ã­ ìrÚWù:N”¥ìÈsÓõÇ”·@fƒ œ^WÝ…&24w©lz æ$Ô2Wï²wÝ…ÆìO9bÿ£å"O¦ŸÊÍWÃ*F]Ý/¦`yªŒQ± ˆÉ”\Q•ÂF*ªÜiTñè^N öd_£M`ƒ¤†S%T³NºK7¯+R™Öì[r¥›üÈYõÅíYqe}¼±Ø ¥‹÷ØY‡Púô +ÎFUE¢ìóþŒðÓKƒÀÕHŒ'²µ>ZQ@ÎIÙàt%£äÿ–œÀ[¨)7Ä&¾ü hÎn ±éY'ÔÛa¶TÃñ'XrÔß™/n_n•JL¡ (–@ +²ç ËК +­µN{KFµßÛð^k›bÞÂnê~í`L¯£]Ûa¤U¡¹Å{üˆvâïLßܺæ¢4“ô1˜$rmAÿîs•ÂÆóònZß*™»=©÷Êsõðo›b@{‘yÖ !CC‹{c.WZ¶ìïæ0n àbp…gsP˜d$-Ñ\ö¯ÎÔ›&L27J»Býóµs/g(ô©xQ,t>[®â8Í“GsŸ:R$9]6&ˆúmy®)iµŠvÉéjÂöW¨‹LÄRB^RBal¿ëx³_ ×Y:²5M§¯ßæîÛ»­µ¨û/j¤…àÅÙ¡!}Þ`”îëD&W€ÈªäÖQX¹$HߧçÌtI¤­¼ ÈÕ.ÙYñ@Øn«r–_ôìnÜ ¾OüãtAN-L n–‹—?_Þ^_…Ûg’µ~žÆ;`°Ðí¨KB‡Þð6eĶÁܯ‘¸ +>”èl¿Qp‘†«¢Ó)À†¶ùµ¥ò/;S' ^¹õ:ätJ±j@êx«³ƒE(0GÊ;κÛQqŽ©Ç”kT'¹ðž;ž ÷ÉDHj‡¢ãsr‚xÜ– +æ.Â>ÚÐÖ¯¯¡Ïk—®ÚlÄ;&–¯#<çÚš°òe)fÑäFz›`·Ç·?¢ãIc@SH&–<ÿ¼’îevn8F‚\ãV±ª3Åóa­A!yy¼ã:ñÓ+žc!£xð–‚bÏMþÖ‰á/f}3ß–›ë˦Çã"G©–­ç'fMsÑÔXWUý}üöµ·¸Yĵ^ €Ô×%jÍÇ!H¾ï‹OHÿÉÍŽ_ù¶‹;臲Îò‘âJ¸v¡²]Ü# +$ÙªÛ'Ch?5™<„Sý»íË°Áñ@“­ ša¬´€-™AcŠ†éloW´M(òr·§#Û`×ÐnY{jÛ`3|lv®`º'Il ýà±!å´ü¡õÓPÂÊì{”¢E¯˜ï=Îpaè^ ØhëOk`·î›ãpøú ­8uyÜ$rò–Ýó•u +f}cqÃ+5Áy~!ýÝ]ÕúøÀìU,­¾t )æi:Hò ¾O…ÄÛ(®_eOéFV¾þqÐ>¬uèàÄ-G:ˆáñÄzƒž…›HZ\%UívØÀ Ðzã^àËBy%€NT⸶3=®Xëà?¼mJ’ø-Ó3„÷iã×H@Üfσýk¸R.ë›õýv'€Çm.'ÍSãÂD»ÌÙlyü7“¢ YõÖC³­Åméµ^¶¯Gu5_G›øµÙ1¦ût/ŒÔ þàÌâð +à4‰±1­nˆ_ûD>}p+æfªg9h$ú¨Å]@ïMù`Ø^Ò¹GKö;5«¤wÇë»äIrqïA¨3fA‚ßYiu¬€ÂÝäÃò½ÑïìÒYréDõö:ÚdR¥Ý “At ë-ª,)âºaª¤ÉºhâÏ9[Ô§uÿSç9K’„ÄTK©aX$äwgÉ“¶Oƒ[âx‹qǃ£yI(–ÿ¼j5L§ªIÀcµ}|hÀ$‘zDâUÏÂw»Y+½ý¬Z:ÎïçÄϤŜ1¿òµlÙeÀÇ`uø@|¬ìÖ܈贚Æ^Ú6î/žyÑû`að¡¦È Š[¯ÎŠ`Ò¾ÌEž£ÂwÁìa ¡zæiòLa„}jÊ°çÉ@û£Šå}ÅxæïW¶™ån‡sŽ˜0n*{¯l?Z©zó‹•Ê‹>¸ç8íp-LÑ&È£ûïK`> `´¨%Â`–¢îÝ¿Ésª?ºvË»Æ^\ü‰*’ÖýQÊá¨Nbf…+Û¼¾Þ„žo" Ù§U ¼zÑógêgÍaäŽu´F Ñ™<ÃXúyݸª¬Ðú*¼Ègöÿ4?X2]Â4¨HšÍ¢›×òš^ÁÐqLeo²œ˜Uíó~ ÷¥’’Ð7>ì)Ƥó™Hnžº¨­A7"é{D†Rj)ÿ×¢Éÿ~áeàíVDJÕ|—ººX}ѧCrŠÈÆTÈAÈè fý˜£’”P};Š"Ó¼KöÓ#ΑT ·F÷ú\çý÷^Ô“ ;™ À|êR D\Ä‚ HuÔ6ÿQÅýИ'Q3Èb;x#¸Ž3óSÌ:ªjbíÛ%¸tJ‘/>Ê¡OÿîœrVÞÂx]°¹¼>)âïŸÁµ]€lù5o¾[ç¡ÐF;,N&¨'i©Š\±NQÁIòHÔÍôÐÀ?T:í@ØFïçNÿ SXÁÝ0±<¬)»hàWÖ½4f¹FD·hÛ.سT)^SÑ-…nw}ý, ˆZN¸EÐCô¯÷ Y ReµzÂÔöð3¼Ò\ +¶ØtíþþYá5`F~_›xÁƒUž|‹'X’µÇ‡„G@UÖ6I \™„çÜö>ü:ÉV_ûÉ>Õ¦9*I0}Óµ\"{Øï3UÚzÆñÉuäFœfÌÙ¤…õPߨÊ)Eˆ8‚üU¥œúw)®ðgŠËqÔ:àdj#¥¹¯ÜˆhqÇ ¥œ¼so -¹@’ +KG7ã"­|QЇæªúå Zòzs|…‚}£ÄLÕ´SŠ¥:€fªÕm¼§ÂA3ïÖðS 2Ä=‘Ö[³d·Ø“üJœ\ܳ­òcìÚ€üù|Ët¾j1ÑÆ›AçrþŠ®ÀÑ®þÌJvÂ,K| ò´…Ï•VÞœ +˜ü›Q„´[ÜÞë¹^9# ‰ •TÏ¿Ì–µ\u˜Ö×Ñaá2ÄSU;·}Çw„–ѧ š‘]*êz24©c÷öÇL4$ñ2ÛF±«ëw<Ø`â¨à7)¬«_ÃÙ 0 IÐóïØZƒ»lf¹˜¯Ý5¾ïà\èítî~V= ʼ&Ü£þâ²3V›ÿÖY‹ãvEæ9cé7xßûXÄ ïçy’ß ´>}žÄ·e½Œ½Ä­ç&ÖÜnðúµe½4{ºçíù…£YÑÓ êë÷ا‹½i£6*Ö¡gC¿Vÿj81aÕÂG­É[°‘ßQU ƒXú×âW'~³7?7ÜKO»   wƒÍ¯6ˆåudsl¦wSÙ+B”¼ÊHÏubÕÖœ»¤ò`à©Z„¤‹Í“e”wOŒ±ò†X ú&¦¬l~3ê—÷ÓÔ¸f¦G±¥‰”k⬈¿ËD¿Dr)»}皶ë!úm[ ʪˆp^êá"ƒeš*EϨ´±]\YW¼\k’sˆBÃ,íIQ ²ÎZì1IàÝ”Q'™oTž´4„a¼` ÐáìV‚öF Œ)¬ëapËL|y ÌÅî6>àu\"$¯(WB¼ÝòòA«&|Ùa§ MÒ+8¶.¢/Ò¸rkõd¬ã)íZ«|*û_?ÿf[;Wä ó£{‡^*Zl3:Syáw{Ý¿åÿ‹õ[8}JëSÆÐwþ¼¨÷dšò«ÿ?ûÈQ‹Ý©ÄÑpžœ…+4 ÑÃá!!÷P—°å³C@Í{Âû:E@’NÔí©øóp2á„þ{²Ž&BÜ‘0%ô–f žrJ ŠLW³Ím_ ¦Áî)uv–Ãñ32²öH¿¿¡Y°~ÕÉCSå“xÏÑŒ]2YÞ7÷å]ÁNÇãŒÀ¸ˆ3*g˜5g›LI§þÊÁîSVZÍWÌ7è1Ÿê™èKÑAØkA£"]†Ny¦mœÊ Ñ0ùþ/;“ü?gþÄWCHº‹êñ%´å4<¶ç¹;sL¦?bSK!À”Ò!‡K0$h±ï4Ñ÷=‰œ±(¬€’ F»¡¦÷¿–V®4©é…çAA-ôL'Pv&Ë Ü„À )GÞ(&ê ¯Œþ9ÙUþA¨“Bv«NŽW[d&¨/QŒY7VÑ£[¤#íð›dèÆ {R`'|½ªtº^+«&y]ו¦µ7€Â‘Ôò`å.˜/Ú|žüÜo¼þÞIÿ¨GeOVNêM.Âßb*#{ËÐŽ¥¬ ôã•ëziÜáj÷yÛ\?‘}í$â]²ä~=ÈRˆ¹;¶5þÔìßþ\ŸÓθbÇ i)bböôþOßL Š¹ÛNß‚SŸ»Ø\å¦rºSk8òT§Kÿò>ÎýbcOטBk-Vðs¾,ibék…£Q(vÓÌ)çb-Ò·ý&ù¼PmzÔé5µAõÚT#Dmcýïý°J³FPߧQ/7¢Y ÑÐØ•¡}¿ã îd¥)H ÔZϬCE{5Üt˜z›€ }ä¶aŠßÕêmâgß±¯Rÿ€§¶·ŸÞØ¿n«R¾O¯ôø×F-^Rnwì3íßywtÖýkÁIÞiþé¾Ï^¯Äv«úÊYì«1Ð[’ü€Ò5ÑìxŸ>œ2 W¯»ÃDÀkÌX×7÷Ò9ëãîá¤ù·“+]MÉ°êì}$5‘Úà)KÄN™¥€:Uĵ‘»Tb;P1à'V4‘`õ¿pNuÁO(#«9™bà°Y¤ŽLþ¥7Ìس!2ÜW9±ê@,ʵÑ30Ð3F:|8U E¹‚vŸYüQ +nׂv›‰AÅ:(îQÕã´ÖƒðÜ*¥1*ÊjS×±Ÿ„‰‡Á¯E?¬Ò0hñ„r¤yI·7¢º<¹éÙU†ü]Ú±MÁ.&:2.z€ª€áJÉÙ8ݾ +¨ä’Çaן-ѱ¾½n]C«†.¾„µÖWŒ*õcšŽedF ¾M^àl$Äõäë`% òÀʨ†k!¹Ù +‹‹ÝXpNoY.em0N‹²ÛÉwˆ¥hƒnÏÔ¨ÔýÒëL箆ðÚŠaA€Mn1ͯŠ +¨èÇu²s8~E¿Ÿ’ý-³8ÝteÄ``œ'`Àû^IÔ=ÉÑTZô¿†\§y^ßAØ{æ±F' ´ Y1«$ðiíR)7!åf’ܤR”Y‡hðƒ¨ôºBIÌzÓ‡´Ü@BfÇ-ˆc"!\8Ž_™¶H¢‘¾¶òЋö]üü¸O}¢çoB9!9¬‚ÔLî«:ƨ-fzÇŠ §€°¸¡G‡tîë‚FH7¶Àûôß“È´§·R ªO(ñT`qâBŒ¯ÒY±jOe_|O•2*fA»¥g +x[`çyZN;#LAýE àbQo' ƒ+øŽå4×À,ÁŒYyÑ4>VYdæX”á†1ŽÅM}Ä«’O˜^D9GrhÚévO ÃâêÁØ!J†QØX¯Ði'mj'Ë+ôLµ*ÜG$cáÙú„Â<%ï:6Xs¡+{4KÒ ‘ø`Fq@üÇæ|”eÁž/&¶¾³°S©ñ$ïب© +—´„è¯ …ãüZøèk.ºdCg{ãu»xÁAS­‘¬Þ[’è)i ÆWWÉÿ ³3Ae€~§]á îí¤—*mŠÎÐgœEÏÙèGe*vÆÛÖ£ÊN| z -æEm¾-e_L”ümªÿªi9wV²Ëþ‡Äùd¨#œÛͧNüP1)å5¢C\<5L€ã¿ønè>l€åÙbb…oê+lÐÿªn¸ñ{µF#ß +Ä“H@Tƒç~–=\eÌ ÍÊÓˆÎû=©4t7×v¨|p³§ EuqŒñ,*JÜ~|Ÿ¤¿7B6™‚ü¯ÊœÊsßÌPý14†*<à{]ÐEÜÎSnè‘J8ª0îXØCMÿ!áí3Éï«‘YÉZlþÙâŸTÌô-‰.ˆN:üAŸ},®·’$‚PãpƒÆJ"9ä•_ Ñ7Ô+e½šÕc­Çá¢Ã{â§{-·ñÞŒ1zeÕ~„*cš=~ë£jVÇá#ļÓДû6>(È«ÜϹ¨}g°U-ÄÓIÄxÎðÝ\¥¶ðð‚¿?ualQÜ»>Ž¶Â2T;á⟽ eÔF(][‰Îr‹áéd–fðÆdõbƒP¹£Z5’.9~‚±éyûüç1ÍÚáÙtHŒ1"Á#BïVñ4«%ÜcŸOP|Àù,idŽ"bGŸ/« +Ð]ñº”W.SãáÓ‘P:>R+ÈQ®{×!‡ðWcñÔ ¡º*¢MgäνbÏc3Í9$eV6ƒÚÚµ´&xîcÊé‚œ½]NˆiÙ¼:êPŸL¡³¾'~€Lk^+H5)4»TµÃ †, 1yÅöŒ2Ï®e‘‹ñ‘¦å‹äñÖLÍóU/.SV â]7/f“Û[ÿvRœsø;‹ÒBʧǥ.ôTð…‚‰o¸ïiù àß@;Í;È’ ç¨VmOðÈpg’|½I1€m +HPí^JŸ^Gcþ¨Ó†~d1–WÉ! Rzi&ÇÚMæõ-ÿT…û~6D‹ƒ"­­Ÿk5p5V‰üB@çiã}¯†_óöquÌ*!~à‹‹q¢GS˜{’ÁU$™ácHK¸ŸPø%n–N‡ùš¶(Ó½Ñÿ¨üJ|ãtjö~˜˜x•¢˜ºÉÚ‹³EÆæöKîd4µIw9¯3ïdþiSùa©5P«’_$Ä,ù-&nödüÿºá¯eG4ÒÜàÝɉ×dÅGƒg¯¯±ßjªl(òŒ%ö<®e#zàVŒûnjȃ_Oooç>–¥•¼Õ¶S´õbL’émÑßUÏ–ÔQ(8-Žêu±Ò/hpfÄݸXb›Õ¡}ÂPVo¥M–¡>*Éë­X p©å #„Ó˜¨'ä±5Ñ©R¢Â7ô%éUD1ʇ>}沦–òõ”Ü}3õäÍêÖ) 2j>8ðŠSƒ„¼ 8Öx|ž ó:1cPrVì7¼‚£t¼ž¹ Ge¶jP‘6V)œ£\Vf›¥ö>0Y TÃÓ½¤ø÷If£­šÃ¦=WŽÒš?îÛ¨¯ ‘á¯Hh{<"L¦S©& C¶·ü¹½cJL™Ë_±›»rsuõpxä .Ýxö»sTÓŒíÙ!´øÒSÏûýÕpÄȉRl^Ý®ô˜D7hÒï#]¥*Qwm&MÓV¯tøj¸ú¿!Û÷¦¶2KƒbÄæzøۘщûÅr·'¬|G †“vV—!¹,¿Ó‡ï=µ-¸QZï —0.è¶zµvB¹m•ÍûãK¶{KìNX~ã‚Wßøš»*[’Ý„®¹`—±>ÞØ¥±:¡RbJe\"¤]—š†Tç÷Š(nOhïcC?×*+1In %=¸ýYkøžc3ËOë¹bðÌ+s|̺]!(Y¢M²¼Æå=õ}cZ{öu ⤯ýO ‘lNDä3P–øZY øÍV0GJ¢—Öc ÞrOÙý¦¿9c»æ ºµE˜'çûÉh؇rsø‹ÿ÷lì‘ã“6 +¦:$.’Õ¡¥æ/Y“þõ@y(«ñg#§Õ,À·ñZŸJ–o?ÕÛàÚb¦QVwزuÞm9€rñ3ë½·B›/Ÿ (7º­¥PVÁcÓ˜–ÝW•0“Z>r…§|¡î~^ø¹†§ð0SÿjŒ«MÅÃ}%Ž¯4ª ú%ÜóRÚK–¿ÊPœ ;û/M%<ÉE‡8P4AõˆF­@ÝHKؤ#«®œõó¯Ù‘ZÕ´±eþ[öûÝáòû››ž?4áwŒ sï翶óä@ãzBçÔ!æÊ¡ˆAu‚J) ÿýÛƦ[)ëYɲHÝ¿y¡˜èlS|æi3aOïüQ _&È0à A¹A1TUU`*¬Ç/£±k*-Ä~Y‚É}a_ë- dÅÞú¸_×æ¯{ÿ¬gdHCdûÎÓ¶ ¼Ôðëuá]vÉ£–³Y›Ë¿²LT̓) +ÇE­×óKÈEO#l]M)Ý$¥@`T¼Ð,¹¸5E«vø»¡G—#w—¼G]•Ž¾-€Ñ™ï¯t¸¶ˆ––.ù^À›ÃÇ«/’°jÐÔ9ÉÄ:³¯<㹸ÉM³,Ò28¼þâ–#* èÉd峉aùQŠ]˜ªÆÂà¨*ªµDÏ¡½»Ù7K‰v0>  áO 4’ÄPM£Ë|ê¸Y´‹Ùë¿Dås ©ÐPVüƒÊ®þ1鞣´²ÄЖSÅåLJŒ“ÜÅ¢S'­n3cÑgJ×w·¨¾“0¥eŽÉ°Lñ«0hWX#-V.òÙs0«ÌûÛu¨Åå¼àï­}(:ªsªAe=7PÍis&¯…/,âCRˆ ™W@èÍ‘"Ö‚-ÏZ)‡°æ\`=w:¼Áw ½#7$ÛÑËŽJ†¢«zH6¨™Ÿf†uŸ] Ê×F¦lߥ< ¢Œ-a Y6S«OfÎðh‡ §c¯þ盲”M5§Ä&)çœ%õXÅhj´QAÔZ÷:?¾Æ'©,_y‹'Ùºö€søèuIqa1-DåJõf8Ñ=×ZR,œY?ÑÔ¥–à8‹ÑèüsVü2#És£P)€î4 §¨9¼‰•‚¬ç†GÔ0 `«Pbn•/1ÛËHO€Òz2PŸk7ÊF°o÷¥_ýÞå"o»% ucÓ柼̑ôdoJïH45ÄBU¬µèËÌ&·ÛÚ·nôµ!½cóÔµÅÍ—˜#ÎH‚VCÈïgPázBü‡íŠÑXFy~‡-CT …–äö_S$t ,{e0΃ +£~‰ ÝlàmÁþ¸÷Â$3cK€Nïã¨ÂtL@›FlÕ4½ŸRýÐ\Án` )ËSå“`„nu—Þ Ö6†ÿ. „í83:ŒÑ¨˜øpW Šëý6fDù:I±š;6Oï;—d@SbËš|:%µÛdžýk)´}NÀØ8{èuì&gÅŽï¿H}êñÙàäªl:ê—åò+¾|×VKª½²š*”v0vIº DåYã=‡°Q¥ÊU"°ø6 zñ@ÖìEÎ?SöØ9.ó°§ùdu |,A¶>‡¢+ÕL)Á@ŸãFR~_SóãlöÎ:œ5±¯­*ô[$Qƒ$Å÷=™K¶gèÁÎåj:¤%„cO1±ó.ÃC¢ñ µíã-å½Éžý±u²-ŸutGW‡™5©.ÅjSé]@è'ÄEÿ‹ÒçV“~Æj¿?Ŷc?LxÐ'Í—V]|ŽìF¿ QcÒc”R¦Õö̃AIÑü+ó!ò~&ÃT‡š  pI¥e‚‰Ø¡(€ÉcÔ[Šúï Øã4¬˜`Ë?ç¡XeØ°L¨Óò0|`f£¿C\QðÏ[žcõÉYÉ“2Šçèu~ÈaNÏÌ>ßÞøÞ}Dvþ§Í%¸ÐéBL‰˜-qDˆ±S÷Ëò‘úUä=ºn$Þ—ÇFï@þRhÀÉ}t©›`JWm] ?áLo"EëäþLC+á”Ò"7$Ö÷<:Ä–Çî…ÛT¥%z2wˆƒU—tÕ*=ñGÊtÄjš1a6ò¼KZ¯Ó¨mwŠdgè/ÍüSóû&y¢ÝM‘AdñI©và–OºuÜ©R’•|Œ—e¯R 7¡ÝÆ"‹Zmû@.C +¥TÅCSho/`"㩽‰wE-öü5õ|\õm¤žjªkÐñ÷^^–mû`ãb Õ±ª{uÇz]@þV6?­Kí_¦èõx¦Sa㺥/PÎÛù~&3¬,Þ–oüLâsU¤ž?šp$ûEX‡ëjªch–Ê;ŸiŠ°%BNÉ‚4¦9n¡ ãîþyh¸©†–kÑxjïšÌŸg,ý½!_ X_óù9W¹»öÍS}²Q8÷¤Åß‚)BQbŸTcfÈ7ZÓ€½é7Øz†ÈµðÈÔôxÐby ô\«ÜèFäP¯pºÆ½ƒêz<“\™ qÝ'„¾“[?¸ý9¶GÃP ò¡á 7Êÿp°¹ &c PFz +¥üÙ@I-¢E +N´2½…r À&™}¾Í‹ˆ WK$z–3‹qrgô¹R^˜ñ×P£%Yå3j÷þÄ‹ÚŦ•„©)úƒ ÆÒõ‘yV^.Z6¸uw4Í ¥˜* *Ù.“ €*FéEA)ÐKa$7•_dK£"¢[·3«'•¢-á&_7¯óF£«¬̸bS´²\ŠÚ^×(¼®P =6*&¾`çl¹‰Ïý÷·¿y­ŠÔ;Bëö#/?:­<|*¹páÔYLýôýwÏ»“¥ÂÛ»ÇçB@kºŸ·{?áÖ~[´ýÅIÄ|…¤ôxÇÓ²Ö#r/p‹å}QrV©û¶^¼:úža[ÙᦳBì’¢û-dJù–þ² ‹Uo4xLaøÔô a¨RMË$½$Ñ VjzpŒïÌN +™¾I´»G¤3s¢‹îiö)yrd +ë²b?<ך „l3Ë}•üÌ’Š‰n©ˆ‡"OеŸ¼Þ‘bæk½T<åÈ ¨rM±ƒ§9ðíú‚VÞÞ³NUªr*.îòÉqˆ°ú³UÞ) @*TX¼°€:}˜†'¿u~~òû ßçKÁÚAÒ<©¤´‡Ÿ>jœD% ĶR¦l{EgF%ŽjÌ  ëšØ=ç ½Á ’[…Ój÷ÑîéÌ­Ï|†â³F‡}.þS5ìŒúbª=¸hTæ>(¢åÿ§Îu3kBÂäÅ]­ ε¶žÓDÿ¦'T©þ(› Ã<W¤nVõsÖƒÍ1·}¾¡êKáý-·Œ¾A'‘;Žã»ÜÊ®! ÄÇÀ—…©‚M7-AòkQ¼1ãÙÇ™j FÉåk SÌáâÃÒ½‚½//jÐែ³ÒlךÔÆÞʱ¨˜r½0h&ÒíVJè+-y/^â´!t<$DSî +°¸í0“—šñ !Ø^BWüÅ9ÓYì“pu (´[R¸âŠöÆ;¸ÚLí–ÀÓ¸šuMšÍá« T„O‚9çpOdiõ>ÀUi£ÿö&ºÐzã(]æB}bxÿ'ø&ÙU–…ý;c–×Öe“‘‘Û™¥têJ=ë +ûÓ!Ó׈‡¶Ó=¬ûŸªÁQʺKý9°ÆÙºØÏ.̬Eÿ ÒŠwF2ZÝ+K€øq²EÀlh²‰”Ë#&ŠÜ«Ó€ì£]Ï€Áå *œý=¬te!½mfƒ9s$»êËÂŽ&س—*{õS[)¯r’/À*‘wÐbÞÑüER*¥G”®•]òŠù ¤oÉRñùKm€a‹TU·há%ïåSßØáYŠ¹´vZý£7Žõ‚=õáCqóid‡)ñ]0Œ$hH™µþ‹éŠþk¡ +<ÚzÖ ðü°XPT…OI8Œÿ‹I¸ª"^5Lï3 ɘ^øÞFCtÒ`‡¾àÛ½ê §²âL)ÔTªxÔܲð>$„)¦BwC’`´áOÃJh†ß‹ý½åH}ÂU×da[[ +BÎG4Žk¸–¢~@Ä¿Pt¥’‚¥ÆyN‹sêw+/÷µ/±æí!¢OR2ŽhO¦™DwùB>š®W7ja¼ÏušZåÔ +èc!ÞpI í²Nz1h¾õ¬BÍÍÌjßP ž‚âý*Z˜xéÅñeöšŒ#üC*è,˜7«>ã&¦ÒÜ“@¿¤[°»'Õû±d"Ëü#mß5±Ù‚îO¶’ŒüŒÁWÄ°Ÿø®$’`A(ܬ1¡¾ãpVÀBPä±»U"k’¶œ.PK2Š"2ÀdîÒƒ.ÆQΛ¿>žPqÕ½m\4Ž7="-ð·up¥q‰C@†uˆ‚uÔ}PK[ê¸÷Õ€Û>1½2)Åø“Ñ'$\r}½w! +*nìýFO®¦.»u¨“MT¯XWGεbôüa[–ð6ÿ+cÅAûº­dycžÜÏÅ ‡¨ªHqÐZ@%¸ôÁçf[dnô÷¢xB«D,-äD‹§aÐÁøõ“›ãmûrŠ#Á¶1PfÀ’ðÀ-ÿ˜\Qú «~|k_ËPÎ ÷ü ?‹Øy•bPÿƒÐ¢i%q›ì6ñ±ÿ·ëOóÓ`°bí†rÌVÍõ]p† ;Y©þ×D0È( +© :§€6(é§fK ç{æ’ˆkfão,klT˜CÌBÍ~nQŽ¡¶ ¾©uŽ­:Y%™tùD.\–?,°XÞ¡5…ëækäÚÞ z†R³ +Ù‚¢»Ò½X‚o?†®sþcdo]p0h u¶þ“ЪØ® ‡Õ9É÷óôùß“~†ë˜¹Â™Ö3¼´þ¼< ¯%.ÊPxxëûµùÈÁ]I¦U.y ý‘%”9´è¡’h,F(W Q`Iœ{ž\K˜xR~²ÞåÁ!邶ôE{¾v7DK¡¿00¨ÝéKpIdåÎ|« GW0 }ìÔ) +_,—Qf ]mÍœbQoLÒ…Ô1ýlŒŒSGé8Ÿ7Æ›YµIW·¬S¥9Í:&ÁnÜY÷³€§•„hÂ+uÏÖ)ŸÅd(yjãÅ{A„æ:Oë1Ö7àHúcQ]õÞ%)Í¿ ʶ Ã^3¨m´² ÓºH"ã’;Y¥Z‹bôi“ôKïËÙ°i‡ðjø¬)­Rû»¡èm5/øaUD]ÚO²CŒ-A8 (Õ`øäFm‡¥ÀÆ!Š­9ë«Xï/ùïñ<›J/xàôÏ Èš|Áí±sXð$Ì­*0Jo«¦áCR~¦}öÿ”i…ƒDVi±t÷‹ìCŽ„uÐT†•EÅ°é¶{æ”%Py1 É\Z»æý‡p_B¿h\9¢•Kõ3‚¼»\ÕÁð*ÍBÓiÎh¸šnpáò§ÃÍ+HÖþ‹¯Ðœ®üÁPM­L3¨ËJ²XeZº[£½e[ aöÿ•ývÚpórÞÝ¥k‡“Yâa ˜îÛMŽZíXRR§CÍ +zò¶ £-BnÌÈH¶ãðä}€}¥"Q<9¹†U‘ð"Ð4‘ÓõYI×Z¹ñi¤Ør8’ý´>©–I”AeEt 7ÛYä +/9l½š¿Wt}St˽sèYè,ŠÇŸír~<D ¿ÊW +c˜!ˆOÖ¤‚ÌYbßld¿ä¹&¦®{`m»–õ§ßýY+.úœ;xÔÛÝcÛU«+¥t»5å4‘€Sâ³J7Êšxìì‚²Û ãNÉæR—WB1!<™_ÐC(üæÄÅ»æ/„Q÷ƒËÁ¦½r“Poµê`p¨É lKq‹…ÙŠy>·Å<6 f XCofT™£<¸34JÓ„–üYŒ»«1ìäD9“´­ÞS$:WÁ泥ŠòÂÀ¥\ýŸ#˜kaT¿ÝT˜T2ÍñÄ<“µr:3 +& \}œ…~sz¥vtJ~šRçÉ«-’PçZ.÷݉fˆ\˜a¥¹¼/B“ÏUFaXqŸ (cJ{»D¼Å„.8µF*Yp¶—*?%q;íìÇh%ôqvˆå•aFeYG£g¤T,‡md!7;À%÷ûXeN‚b’Ò Vð4'#^^&mÑ P,±]GËcR÷ŸH€Õ;pHtç,q<Ãæ¶×ã?¨Ø¬°t1ÕOô ƒ©„'É·›¼`ÀìiïQ¤KÂÍÞÜäï„eã#—\%.8ù©ÄHÿ”—Æ‘Ò'ú,Ô!­Á$ëÙ¬+%ôŒ6fæ@ƒ\))‘Žuv«£vf—À3<wq£’K{Û?ºÉFë×1…‰ÆŸR¦³éÈNë¸îa‚Â}NVÒØ= ù&N%7‹Dz%åJ¯²»¦8˜z¹ÞÞ¥ûY›tèÍ9>íæä +&»1 bœï—-­<­‡œW*Éï1aA•ïéÐ@;²ŸlŸÁvšÁ¨â¥Ù¡¶yX3g«™4P*Š:ͱY–Ôô/¯"1A'ëèk›œ³QÛÎÆzA Ïu,ÇNêcçQže¹Mœ¿“MóP€«Dˤ ÝêÕž•ç®1×ëúÇUÚó¥ÏWú>T@Àѯâ·ÜÿñG §í ÒBÍ.)Gð\?Ћ€îÈG1–~™m‰kÝ d±]8ç±Î‡ßdÇOEf¿Cáy ‡¡ìFIÚTœï©¿V²F Ÿ]¬Ë,ϼâñŠµØ=ÕõàðدܶtžÀ›%ÊaÛtÅwbyÁ­M#)wÒ§%möëÕáÚ)s:í'P½ûÂmcU¿BÙžP +G~Ç"ÿdpÅJj„Ÿ æ'm Nµ7@|û* #Lq/Ö˜¥Ð‘ièÑi‹Á¥D¬ÜhÅ4‘#fচ.ÍønèxÕá×Úd| ­ÀŽiží²Ư›vðJÝÄx·øb½éÎ(g‘Ðô¾*Mü¡<ÎÝkM¤I(ª?€Ay¨à;Ö•4§íÓº~hüoñï)ñ¥¦±û!¬z:0—.\’` Mžg/1{X¿G“2EÇŸâ1mº¸œ,¸e `å¶dÌK˜÷å +òÊÏ-/‚Žò 8®€RûòÜ|ghüš¹µ"Œ»M0.]?B\ò%"ºYœ‹y¶öœÉÂÕwŸ¢N)®$:6|ëÊŸBùÆE›ê·ÓôñaQ.ŠÛöûÄË­ ól…1€WMÇ}µu oâ½T5ç¨Ã£ˆÖŸèd8«AÏÖÖ@ ö>A‚K…,Äu~Ll¨p\&?õHV(ç@iQ<’T¼»^ýo>’÷ÄŒWaÑë!ºº±Gï`ž©p‹¨¾QÚ!*ôÕùäí2ê€Í®.È +„7©Œ£KØg„.¤€WJRVÚK³‹Å ^]ao¶^ñÕ(šS§‰ià¦í6DùE1wQË +^ѧ©ëÇ^Úƒ’”È•lb^Œ€oȯMŠoUÏ;¶’M¼¬ÉSŸˆSy•àV·XgZÇ^ºzrâ†ÓBw Ž^õ¨&’7â Ÿ—ãÙB>Â}'RB÷Z§#”Z”ñàЈ8‚‹»¤3†Þõ¸´(&ÂÊEÁälïò.ÑÇw½ +áûd¥Å\áŸÐ‡nÝ9çZÁV{ÔP± ¨rZ´[Dn_9DBSl‘m߹NJ‹<”oÇrm¡D^IQý:}ýd ÍÞèp¨›Jp'¶žüF(ÒcíŠcéîøËŽ*PD'Ä0_Þâg‹£oÌlö1©œXR\$5®{m +®[£Ð5ffUjé3>’€"QŒ žÌ¿2Ã1ìÇk=–Î"h{?FŽ¬ícÐDm­ÿÞ¼ÿÿ­˜yŽ`h‘*ó&2\RÔÞI?9 ¯Fo¥¶ +Äì­âè³ÛóÞ›ÞÌûÝzRêÈØ#ùZ®o˜ò[F§ÃœIÅ’¾“"_WÇÃͱJ^ÇqhMÊD¯/–u¶Öç0 9ÆþâDŽiž˜ Ö|z¸¥%Ñ„‘LS8· û7åQ®&ÿ×nÝÒŽl7’rix¯Ì“TÖ±7ʹtø™È0gZ +ו½†çŸ…Ã’}¢[:Të2£¬ÐĺïtŠ‰LïfâîìëÝÂ-~€y¬°ŸÀ“]ÿ­ Z‚ù?¯lø‚¯§€ÃAù´ +Î9™—]·›=DÛe°ê$J6$¬î“‘ ÞøVÄõ¿j-ÛàG>SÙúV?cW Ã÷L¼ët],n8ÔʹAtzI5œœ''/=ÞÍÏu÷¬˜ àwW4;é¶ü1[ŠÝ†Õ·'+Ü·\ûð%Ë„çêª<ŽÎôà¥-®O·ÃÖéöIAK üáæó‰úuì©^;6¨ ;Ü–²TÛì† ò_ÊTA»ÑïˆFq7ÿ +*ŸF4©º®žHrÝá‰Ëiˆ(-ÏD­;b( ï¡ŸÝ"^‚p¤*¿ZDFƒ¸"î¹,ØÝõI_?VÁ'ãfmøãr½þIjÓ¹œ%,'v 2/¼ý„+>ø¡«³]Ie4³–;-Áu?½KëgHŸ}=ÁÐBÓÿwR‚$3Ë¿¶´ÄqÏRˆé ·yà“¹'‘¨HáÙ¶} `š9ù¿nb°!”YíДÆPI÷öÏ#zÏÙiÜF…¶Eâp0A¸Ù +`5ða½ ÄçŽíùþgôÝu|ÌjC_$—ª[ôªöípG^$z†o}’ÞΔT„D1)0a{ª"Ô־π'܆YCõ—Ъ¬ðuêÕr£ÿ•ì§b±¬ÜÉÞ«ÜæÊX›6ëbT¨̃/cò’Bø52úL€Àu—ɹfu˜ŠߎEÓ²s݆¤µ +„4®ÁmµÙt|㢋‰Š€|gH³í6}•E¼»M¤¸g÷¢œµMDX¡wŽ;ì^*Ì-× o„ iržÊÚVâmå›ú—Û“üѾKͨ´[ø£¡¼|sÿòè«î{((;ŒJÞÙ»j&u=«ë‹tRükúüR–]^ù¢±±ÕúGp>mÀ¿ó™·,yÞ)NS¼æ˜Ý ßÖ[x V6²ÎÜL¬˜±/e¬;TúòÒŽlC­„YŽËEXhê0½I¯YÌ”È >ŽÎ_f 7Ï¡%=Îð-dÖªtŸøCè) 6‰­"RÛ7 áÒÞŠEíwoä’ íZ¼:½k÷°TáÁÏ8>885’þÕV|n_¶G‡þöè†Z>ŸÂSè-qßþhzò• {¢Ì5ˆ Ö‘$“.’›?ŽhàOj÷G²ÊzH¼è 7XÁnÔp.Ò’…èÆã¶Rµ­ÛM^Ç¥jÁÆìuÜê¯iµé´– +¼Æ2ü0Ûiþ ACZ8ËäéC3 Á„Zjù3ƒ¾ÿ®ºà×=åB5 ­r`ß¹R¶ +…;Í„Þ)•g èÛñ™\eÄ88°§ ¾YÙ.¨M¸¶³…¤µî4`p¢»6IêO©ìh'ÐzÄ'ká`'>-ø Ý3oúeú˜Ñ9µ *¯²5íÐlÜHGL¨ÌB‹£rmöÊBż×ÛÁÈšòZ§ LRÊ?dë¶oÜ -ô>üÉüToÑ=¤*¸ÉËúy¤€Ù#p$™UÎa¦€²€5Q2Z3:·Èw’ÞXê<âHY°Æxv½}€äF-$›"›b!(µzkDQRbt;³Çéj¤¸Äk äNö4­Ó4ù™ôß³ÜÿjA*›`gÒ‡Qª±² (¦ç;Ë°Q U„CpbèÍ@;øÃC9eé&F[(‹ -¢ü…ùù¦?ÎrŠí˜¼º_ô®…ÒfOWÞÐ㨟¨uù0Ý÷‘k/’®&¯5õ ÉÒ¨ùµÕØ ±-ßLYVZªbì4Xž[Ì0uÌj>EÔk²€²!XÅÀL¾¶ø¡Ç‘U—°ö›ã M‡lúTHÈnÒþy›ÄeUÆÆÿüs…AÜœŠo…3Î|] ¯]™äæz¹ÝN®&•”GÕU1@µ†./9;ÇÑIêÏFz”$¦¾€UØ/Kl×f6xqà  y -²w}±‚HH/³*%úÛb•k“¯üY±yoxжj®î—x£²S½˜\yµ)n?ºžVè‚J¶ù+Èka… [zÜÌf˜±€—×fI*Ý[f=M3Ó)%¼ñ©®“qª®¶O(¿\-Z!ŒžëJà -H)rQöµQ5ö£TbL}/>Î5kì÷=Qw¢Oþ75üˆ#:•×,¢U_LP?‘µÇÊNC®æSMöÕiïÕ Ú>•ÆÏ÷ˆå åñ3*×j#WÃDê8è‹$òÓ|òž!·FŠßÊÌŠ¸þéÚL“;_ -dQ–JI$¶º–ÃYÈ(ØmRqè÷£J[’~fÖ9,–«6³â_1ú£Ó~w »ë©S,?1?ƒ óÖAÔÅßyl(‚ãL¹Ït» ïUîìè À«m@Ò*ûT9ÛE¹¥WOg-Ú–ÖÁŒ°HépæaH"\z¤ýÂ/ÒÓ„EjV{1‰ó1̃T±•VLýÒ5yWK|z€Òóã—ð|Ú¶t¤jBdé…V=®zÙ3ÚÀTÖJ~¼æ[²¾µþÕ3`ýv þpnrƒU MVWª›ö.çY-t虘鰭²2zÕñ‘„¥‡ -«ìKxq3Ã¥àÉ_t§­›éÐ|ÑW×%ˆ0£Ì=æE‘@¯º”.ï2^àr³¥:Ÿ(H>¬eèÚPÌݳÔ;¯÷ØÇס„}mWœé-ñµMáAÎzs`sb}žŒÙýÃs¸@_“s¼/—žãFˆ¿„O’E«—lî‹Þh\G`böa8¤š·$(ÞòÈ^U3¯qš´ÔõïãóC"«ÿv¿‹¸õjþ?˜ŸúÜËAÓ·æ5.¨s:¾]Ç;H2®…½²?l¿´²cäþP¥÷ô!e£Ûê-t1ŽØ//Ç‘b<†•“Üýkû/å{ßéÑ”o›Î „ÍÆãì¥8G%‰pμÉëÆ·Mñ:Ó•únýÂ$cS€ë5!ª’žº0•ŠâÚ@…!–¶~äD Ó#8; ¡ò´ÿósŸ^ê°=gC𢑴Ý?ùèë×z;_]“¼r~ef H“¯‰/tü Ãóè6C©7GgŽ¹˜ùÉ:ùB=9$õñÇë$›*·6‘õúÈhrõ!ƒ e¬;èË€ÒWÅ.¨d~÷Gþ0E˜áÎ ¤Þ@1䶥xi°ŠVªq ‘̸¯«”­Öpçg¤Nwy]ßÖ\œÜs2qmîþ?ž.Ø¥K¶úö;{õõT¹4‚†ÀŸÂ§N¢ïÔà¾këàÄdàxÁIhE=ǃ§ˆ¥]’]r T’À} ºîI‚ûí›2Ý®# ¥‡™þêÅ[ °— -Õ’cuýy¹URkàQRbµÊ‰«Í¿†„|¼XPÔ V½Å(ézÞÑêm{v½ŽÃNt*ŸÌñšcD™±Ì’ _;tkÔÞ-›ê4%§§¶F¨ùï™ øÝí²AOŸ(®†sÉf±%(ÜûpÎDÛH"2&˜-pŠ Kï~°‰bãô3!=uEóQé”—(ëD<;³j°ÄÊ·úßÙIåù2s¢¶ßûA´g†G“ÍNSÇŠcÆ2Ôüº×r.†Ýã7ÕCŽ^CB á‹è°=ÝrÑ`–òœlq­(2]Ý¿™NeKè”0³ì?§Òp1–÷ñ ^˜ò`P~Sÿ=KÝÿ?EùæK››&³+ó‰£r\$2 $[׌/xÖp3¾ëâYU¡¬qƒµ*` r ©÷A ­“U8ÆÇÅo*ps ù E¥ölk§b@nQ+óÌ;R‘Œnž’‰2yφ¯„Ù¶}»èKéØKVTƒ#«8ጞ•pE:¾wÊžÑEc “ŸÃ¬Ã=Iõ鉧JÇ`ðÉ”X)RxïÞ’éÄx 5Ñ.Úh¨#ºDHêŸÙ0Ècµ~Á¹J¥ ㆸï¥:qÆÈhyKÝ´þF;Œ‰‡K› @û3Õ\îSN:8¡£'gé¦ßU?Þ)äÔRb%ÑûÚoŒ·€˜è>Š6 ãÄÇ~)˜ O’ -«©ÇXw5Í/"Ëá|k™¨(e$/ÞJ«¾G ¸à“ÇõÁž0Mõo#hpÑTé%Äòå-R (>¥*Îú Ò¨ìÈ25ˆh¼èïº|I.5uÁ`QP£÷Ö‚)`ñ©—QQǶé(ü÷4“5•³^§ƒÞ„‚M߯oˆ5G*`?ÍRFM¨ àÀþÕÌgãŽêpÀfÚßnþ¾5Æ1d¬¤¹‘íKÄë[L -y¸q ´BÀ¶$Ã@'ˆÊ6é!Wëà -ÎúE¶ÆI¹ï6ø,ûITÁ$‡þÎy›Ù‡î“H–pi¹æÿVchž]l&Ûß¡FÃÝ:¹ÂO¤é$#ÈŠ!D:¨‹…%)aã›Mx“ýÈÇ"_L—ú?Âd*ú:‡Ö0ï2]7x(ìº4p ®P8¼*.v5žsËb<õŽ³]LQ†0ï*ø¶Kí•×+·@>e.-ÚoªÓèþC®–¡Æ€lÊïÆÑ\~R+$vÃo–D¥™Úg†ßþyùê èaÛ|nŸ“)>1–¡°©£_ù|hv‹D5²"Pt#'ò†å¾¹‰.G¢EîSJÏW˕̪N AZâÑr…ùâã!Éoí¸ì¤"ŸƒXýFÒÃ-øò) $^Yá±|i R©ÆA5ÿ=OgêÍCna8z*¬2Ïeþ6¤Ü]Ô‚œpóc&•ŒIJn=½/¢KzÑÿÎb -Ì´3Ö'‚@ü{VÊR&go·Iaª˜;ÛýäÑÃØÉçânI¾_áš™Á Í| $xf¢Â@½µÒ¾¡¯úÙdôGëÖõ7x jUö8¯ RCÓ¿?¤A• X9Âüݾ#½»ƒQÇõÁÃÓ×|¶ÀÖ°\ŒW -× \·]äû€4Ô/R™H$ˆkítv>8]ÀªôQ,1ã¾ÎH¬ÿ€Ñ9` ’¬å¬O˜@›&]—å×zŽP§OÞ(5{OÞ!’ç F!Òs‰‚`qlÅøûè´ƒ8ànûr°ò¿9Ž9:˜Óݹ6SH u:е “Ü´ø§J¬/bK¡¡§¸‡ÚáQø‡æ¥¿¿a­,?Ëx'·Pãàû˜èò €\› Œkå÷¾l’à.9¢lëd•›è|G:ï«* -©´Ë d.årG´jùKrUû °c§Ì“îño6±¨=$øç_]_½ÀŽŸXëØÖwÙhJ™mHëe§Bbµjûè?|ÓB w9òp€€áä›ò& Å1jü®"+ÜÌ÷ŶÍMf‡ ™q®öP8#K -"̸-Lß÷X[{Ĺìç©;Z³Õ, Sõ[[¨F} ÒN؈¾*éíìgòµTC¢”÷E¹Òqâl{á¤/§pWSmÂñ¡p·ûRÄûžOU+zÙ\)5õ–J&Ä5*NG_»žº7ÇÔ†¨9GvG›œËŒ€îø<ʤ…$Ÿ¬·ËïL¬{ÓM¯,1´ÛÒ¾¶¿3fRY-'Š…øŒ+Üv™WÊEÉ+-â¤2ÿÈ~¦EèÂãMA€5Z;©· ®Ä¤¡\3>b¿ø>óKûRc-™8ÀX)2/Ê<,ÓèâÎ2þ¶†žØctæÑÙ/CžkŠ²·Rûø«r\n2¬û¯(ª¹]¯Êyp[ÜÏac‹Yêìì{˜Ö–Ÿ]Š@)×ó"uÜW"§V@´¤aéMm…¦* -:{°eNFARnË -[4¦H¯mƒQZ _«j—f¿Ð›Å!ë’‹êbºµ˜‹l'›÷7L—‘“i„™>ÚnùöÉy»Šp°½UN­/XDa\ø«‚­ Œ ¯pXF\ÊÚ¤S®†Îð}“¸ö³%`òÞòÂV ¯…ÄoØHÿP5ŽK«€‡Ü?º¬X¿ôKĤòƒpPÀwCª\®õÇaל…1†bI°$Z|ç}ÄwiïùS~[CêExáô¨aW‘¯?{ÍŽ×ÆÐèøM£{Â8Þaßž Ńœ‹«°f“fç€AãÁ‘^Ð n*{±nžU…Ñ&g‚Í}Cµ1±ÖÉV¡VÇÐR T…u¤ú‡LS-=Çñ$YÔ©†Âtd)' }~`Ñ}˜$}ÿ… ¬xˆ05igü2ò%ˆòâ¹ ì[ ÆqW™Y—g]x9$eL¢[ó½÷0Ø?꿼ÚÞi§*r ­Ð D¯]öyà| ªóHwn.³çÜÑüÄ·#Úx”QôÀ+ 9/®ð—ë7"§'¦£-^4Lp+é3yVqªÓD7™X°ÝusFŠ°7Øá1UΊNÌ£ÎR÷ø1ÐÀZ83ŒºãÕÖ«÷ZF‚1í2Œ Õ÷QjŒÇx¦i+Sóçø†i~u$vìT²éýwds~wm¬­Íä±K;²r@ÀQ¼„–#´Î!•ôå²J•¬ë"µÓ”:ž#&ç#`všŽ†ÄÆ{”QïRܸrí¼ ŸóÉÈÀ@uÛhî˜Iâ‡dgnê7bkÉ2koó³ùé¥'îšÔ+ì»aÉ -[œñ»´^kY3‰=ñÒqº}EÜ9ëÂRjzææ5<Í+S -+âðñʉè©RŸZÑ9@-¦%˜ ÷fÆg®Mp’Üz<…† -ÌnŠIã-n'd[2õ$A¤dÓí>ìÕåù¨pBZ"$rÃ?÷Ý©®ÖÈ…˜÷.œ0N3ˆS§ˆdk^ºñÂø÷é¿ñaóPwÞ@Òų.šý±ÓˆaòýÙ1CÇ'—6-‚¼©‚óFRº{·¾B0 £‰[W*vÅ@¢(GÄY |Ü£¶1ýmR²a¼š0Ù3öùh¿æBF$g/oº© ±­ƒsž¤bôk—eù6¸ßÇ÷ W%b!“ bB1-)2í;§¸As‚nX‡†öçPúÜ·i|—:Ž~gûÁp¡6]`QÑîêÌGìi/~q|ÀÀhªPŠóâþâÛ«>áÀe³‘zÇ»ÃCUÊ[•Ž‚;HCƒî¥k"©,‡ÓÓÊׇD\¸Þ;£ ×YõùÄÓof@ü¾ŠÛ1t°ãŒxge”Ћ My³£"º@øªŒí]Aîq˜>õåW´O7&ä7ÆÒÔ7‚Äf|„<çà7¤ìì‡z/Û!,”`–vHÙýZÇYYç.2-Ôh1%F®T?f?ëº^õ!œø!:.[ãxžDaï¶jG "ÔÁjÐÄ^'Øz‚šÿå¿Î§I+E[ K=àuØŸB^¬hx"½EWY×g«t“½Û?KÖõ™G÷¬RŽiÕb+®ËWœOÇô%À²oeB|R‹¡¦šÌI š¥>|R -#Ù‡èú—eîô¾{(geç)_Ù.÷ƒËv±ßÓÃM¶‘œ!;»û–AuWæ*¡Mcžà+ÊþsÆZpy•Š+ªNz*] é&PÌgÞzã ècqkgÌ4'9«•Vi´ ©³GiiõdU‘Ûý -wË÷¢ÇŒ¯tò|tøóP!g§äßXÄ d׈ªô[|-Fšëß f²?ÆÊuËò|ÊÖúžçŒœdê¸Î†Ø,h˧¿ÑkRÎO”Þ"}Ç“Î'ï³%”¨>Ê×—=TÙÖ›ßrd\{ CBs3æS&qâö±Û0KTrjU…îËc‡ŽáÆìb¨HFù”[õ—»PÏ^u—úI9žuÙ-è…ÃƱ3GäZôf-ðó6¹Š• iÆ‚ú=Ô¬™rRùoÉÖñÉZ€æ~ ·¹ö@Ê•+¾X–^^8¤]]ï0DKgÉ@Ó;â™ ¾LÕÜéžnDù@KMÁf¼–è—ëâ;öhl’.à乑N”]' ™“YŇ"ý•ÔþŽ)Ò:öðâ‚>­`búþ7©´©\³g¾Ñ%`_»—˜w˜K+yÀ!_^wQŽC ¦»Úb­#;Ì÷WnÃζ ¸‹b´‡Â þCO_0ü´q¢}ؒߊÀ÷Yé•Ù»3Ç0L[<,ÊhÒÕUGvîÒZyûHb@û9[M‚¡SA£Çãz¯Y@±|.rBP÷h]®þU\:wñ%„bv Ì -`1ÂZºé9 À‰Ê -æÛ"aJÉïé_ÉXHë-÷¹2¯Ñã‹«·y 2QþÙŽ˜“ éﺋ¼5…ËnÌPíïÏ?ß9ò"Ôg…÷îj"šPÔÒ#Ür™®A)a — -<W><ð_ k#[wÔʲÍBA^¶©†ˆ¬íÛ…<ì¶~µ¼fç‘£U¿P¦OI_µù¿u‚”Eh,ýkb·ËcíÅrÙ‡#ÆCÄà•a]¬‰)y]ƒ¼j–b_‰YÌqìÖ bÝ/Ž's+0· d•ÿzFõmqU̓æJ -Á«æ¯_¤è¨øÐ]N¹é|û9vvýD‚½»uÚ«ÕYæÁ¹ ›ûŸ©$Á¹ù–uÔ®—n#4(g•µÝXª‘Ü>œ”¾VÁ„Uë]3-SïÖæ£ð«9NšŸÉ#ª¨¿<¤Y–ŒÃ,ƒóâÇW¾ZM®‰š$52+³³…ŸÖ¡ã•oP>—§I¬ùšŸŒgs3Í û K{©fKÚû»„—UŒò«!Å^øêJbüV—}u¹±‡È_æ¹ÜEŠ\XQŒ=ª×aÆÓ2d:rñ|Dãf†pöö‘È ™}yò5ÆåKôµú¼Kü± z!ŠGÛõS•ÀJç]äYÖÙxÏí³ÏÛÈÊ=z»‡2êOÚîij.n øœ‹#=¸€¿ìUX‡BÕÇùÜL;槯O€PôI€ÃnŠ_È ë±×%>o€Ò‚A-%*ÖžN€—WÌž9…þã5‚…^ÏSˆ¾ã³•Ñ‹o ô\[ú”MuJ+²|©ÓÈÒªŠ½ÖJËFú‡¦Öµ9Zî½%X9ŠRÎò]ZÂ\]L`­(¨ŽÍ ò̯ý¼u•O¹1ñ; (c×íÐmÆÑb\ôaônïK‚‚Mâ{"LêØOÒŠ€+Ëx3lóÀ6¤¯~yÙå¢f'z_Dg¸ƒùêþM]b”8Ûõ‚9N,Äž²ÒªøÞÍ {-JF hó+! ÷]»¦!yfPÀ8㢇µGš:zth‡°ˆÚæSdC q¬Í‹ü¼w™ Ž]˜ €qj˱¬YêújGZSøoðø“[%Ã_©©Ï—Á9öŠ°ñà>q©í{Ñ87%+[š`|«%øÌ,‰~EDOk9£z,bP‚é1:´÷lHÕu×ã’Ô¦Œ¨Ü 3^+½i[W¤£o“”¹ÓN $uˆy -‹ÓMÅÃJtH"b´dž²¥Sõ‰ºoEEɺÛhYÖIÂqˆÎÕÓIëQ—-š17qÚQ¤@ö#γ=£ =âú•b&WllˆÚj²r®¥¸cÇŽO”®²µ¯ÑÌíRd •ñ#•9Ô¨™=ß(‹†ò& n¦p¶m«ìbtyÀ°+‡…–Ÿg,Ó%ÊÁKmª±_Zd·X±R|©s1!4 CÙÕ–£‰n5ëoG]’eùÿ8»Úp„Šú,ºXȦ“¼4*e–Ü)ØTjƒêÓÃYZ<i†˜¬R‰ˆà5BA%Gøöœ¤¹ 4˜G‘r:“ü§Bÿ¬0}49nôîù~=ƒ’¢T[õ ØØÁÜ¡ŸÞ‘KG‰VÉ߆¨´ñ–Ô®5Ô­Ë­>”E¥®†O’ŽJwf^Z„IP -p_”õ*¢×ݶÛ@Ì>“$¹æõ·£O÷sD¡>,zõþÔçèçõÒò¥4Œ«ýÌQOuø5< ®±]ø1Oqyá@»úôó0Ã8P¤ðøJѪŠëïC„%Êtá¹d9õqN©C=J¯´('‘ª’gÿîI_LP¼Þ¯ÿ³`ÄU@„)ÉCÃè#†Ó;Ì¢á&ìÖW²Ô»õ„k%1&«1ÂI± Ñþ,:YVÑ ßãv.ñf"0 ‹E0ìÔ¸´¸ÝlÎ ¾÷vBÚ首¨­’®¢¯¿hLÆŸò_D´ ¹OS¤£«£ÞÞÜ“}‹–\’»ëTí ækúÒöÐ -ߣíc<3Èä‚6 ]°ò$Žø¬L,/›Iç%û0yS&~œð˜Ä ÷NmÙN¹l ãÃßÔRzyQôã’ù‚#ÝæOUDRË)üÚ‘'-ix!šŠü]ä´Àr!†¬±1ÁÃÖ¾!jD5Èþ˜–cQ¸â}â—sFŽz+#”UAüùÉvˆÎÐÞ±üç²â«¡{ÿ”~y èyè=¦û•8xi•‘š¦Ó´âi¦9\”Ú;‹Æh†ùþ3añ?ê -ÜLj635BŽ`˜ßjÉ»s„ÉÓº¼r¹ªu€9øKBräWÒÑÊa7ÁV€p@±û´Ä7Ýȹ³·ðy{ÂŒ˜œÉ",‘*Þ×Ûg›ò:§=0-»ÞQùb˜Ž1Ží¢g2š¨>V!V ¦\&$í“j q)Õ%¥°jÐ}:½Ü4ä¿ng:ÅKüqâDd025 Ç"‚)ØÝtÚš¨#¾ŸÒb~^#ªFVf!ÔèY«z"!¤HtÈj;D²Èe™Hø@ôÁÏïxóÙx6‡uø]±›ˆ±^£Žš^<½ý.·Êê)Ô2 Q“Œ»ð—e`ƒ>¹ƒKF/ó,m¯¾šðÇ -tngŠMƒÎ± K:ünA—ž%,mn;Ö&FAÅO(戔¥ŠýV•(®4ë’í¨­QÀi (~€Í÷Îi -„t+¿÷„?M•þ÷} ÈWˆ@H}•÷™Ä^Œà …’Þ?ÕÅß–êçXDN1²O™sæœÉyªø‰{#˜DÍ)GÔ® -ý°­¾:؈DìçW*ˆ¼i¹™"¦¾ÄÈe5œéó-&èÃÇã"#ë1µ δ:Óuïr\dIåß\æ2o°/- ²b ’~ö -@[8Ć¼Ó|_¨°n8žH÷Õß]UÝ™ÅEÅÚÑÛ}aý…),m€¦ ˜^3l’•K¨²]÷I2D’Ѷ· -BÖÆøB>½L»Ézÿ( <ô²®({>aÙXiÏ -à“î7”°ûÄ@OÒ²È%ÔAeë•S6½ÎÄW„-\°[y·Š=Öa¯ªêtæÕ!š#ÅÈ¡`SÒÑx,2©TÏ—!T!;î;MäF@$\“£ùäɳ7ëê˜À³WªU8VY Äu¬\ÖÕ½(g¿ g/5$Á l¶€ßŠ£8̆ ”òd/“MyÞ·§¢ð-è]ý¬ÿ±ŽIï*ð‰Ä7·Ø+¦1e˜ì!Ô{Nê-»;Âq.Ñ„3$ÁL_VUŸE„¨¾:&ájÛqPq;ÑRbaúªwBzQ §ð€â™MºÜ\Îý¯€Ñè» -ž™:éo侦5lbr¾]"ûŒ -ˆßý£÷Nê†8+æR´Çõã¸{¿˜UWËîlT-Ê+ŠØ?"¼:FZ¦ôN~»5!Ç"°Ô?ß0÷zÊrÔó®s$ï‚VEþ”¤gp²X×ʼn§xNÿ(Ï -ß¿ô¯kY90Ê,> ?rgs.ÔèI C8ôRÓ;} -§èNÕÌøx'qœþ/Hå*Èa 2—ñ–©) ü®­yYÀÿ{ijB‡;ô 6¯p&|Ý%n&È*ºQ´š‚}óáCƒ3–ôg•nóNð¯Í]æø6.aø§x”–RÀ•ªÁ!ÑA™jú†]ì“ûžÍ$‰Uà 5­¹ÃáWMÚ Ö8š™ï×SNT½ã)ÏÓHÓÝZ‰<-þúÜl’±ôÚSS%éžõN#ÎÑ®«Q¶Ê[JÊü­ÅŒQÝëÍ,ÔW± «zçÜb³^-ì]Aê?=6–¬ðÿCÊfßm(dÑ#…»–¨…šƒKB­hÜJLWyb³DtMÕbVU¾‚ì´Oþœu÷T,] È»DÂý S¥©jÂÏÿP¹ËÜ¥(Ùª{”O!ål6~EH§*Ìw‚Û 6ŽzÚŠ6ªÑ~«Çã^U›"í…õË\Ö–×\û rÀl`ÒÎu¥îíIèýþ8ß_:À£-¸Ø-ZEMqüï‹c¢^¯{uTÑ•´Ó0]/?J+¥¨9  \/ ™¥jÑ¢ïÃÍi/~p/IB@LF”:v¸í…cn£…+—Y5—':îûãþ­ò¶5º7Á%PÞ' CTëg+ÓáѬoDf€äÓ~AK•ÁúÙc©ªŒi7 ñxÿlbj9ÕŽ–\XqY¤ŽÕâψ¥5“Ä6ó-|­’ Ü%œÒ;!çI Úö”_'OˆÓdï+‰œ{ž9ÐfÀ…ëRLÀ³ù# ðHˆÇhU­NÜlsúêZ ¥høÖýħçi(áfÚÚpå×K˜7‚×kÁ$@)SåDC[SJØ?DPØ­ÇƧj×ùO’K£»£Üˆã™Îêl\f<õ«2Ê7Fø¦°É!YS l0lÝy’Õ×ë„”’àÊQµX½®Œèp’ÂG‘p~íÑ^aî(o%I¨yá¶Ýä ÷b7¦0ò²$ ÜžÍ +¡[úáЯ·åóN³¾8Ã~W +¸|4^1uuc»ÿí?3úJ—:¾!ZJÞÁr*?кë\›"p…4nñi¬§ןÇß'3ùóhŸŒ¢ó›ï˜MLÙA÷<„[ 4¤q§ð\@x @Y̸w£gËi<Û(›7ØuŒ{‘¼¦M…Ò®V“‰ŸyËwjýŠŽ\$¥ú¼×!‹wKýXY¦‰‘B$Ä‹&tÝbÜ|Ú–¸„‘Û)kM7w5‚$Õ ÑS c - ¿Õ°¦ª‹Âª7_už Uê3#ÐoA+7âý°&}n(j½3¨jßcNÏ9cqä[ãAÖÂS»õ/yk˜ÒÓûß1|…®Ñ)`šv«Ÿ#kjQ5#'÷Á8â䔞Ú=ìR :¡=É[ôÒ€½ðHraÚ‘5©»ëBÊö¥Ã„ +ÓG$#«µxòÄæ1*é L=ÇK³a6î‘n“ŽcÄš„ÝåÕÿ™]GæÿIÌÌú%Üux__2‘<-Eröå\Fïû @×>¿a9> +\¤$ZQ¹ÜÙ°ø¨ÔÖ°ò}+;Ô„vÕH§Ð ¶u®>ÚÄÞ% ©ZÓ´å$&ÊFÂå^E¢Ä3ƒõ† ŠD`×µìÏ­’6PŠ“ƺBâéÐÿ”Nþ³½Î:!åç««°”óþÆŠcÓŒw㌄)zúóóaÖÙw=á–„ƒ,gôÅë³A{ê¨'Vé|nµ–¦JÛÝ…N³r†½‰«1 à·kez€?])ó'ÇC|"å›ù¶Ã‚ QiõÁì)ªZ.»!‹ùu$cã))Î4/ȘДñ6UGÊJrXb âZR¦C¶°_^ìáýåĈŠlƒ:ºìã¨3á5hGÕTsŠ˜AD•Ãä!óýñî°´Î2ÕkP˜?`²Pp…ËXùk*;XœjÉ#@á>2„Ë’ÀÑ}݈f}œ¾³MVm³YŹï/q@ÁÏ©÷=@slqÅYˆ™UéÕ–ZâhÖ±ˆà·—ýˆ§™ºöT÷ B¢OÏL†X lH•Jªí²ÜñÁöºpŒ—¯ ´Ä#ËsyÆeù>—ìÌ ÀÀÿýÒÍÂvû£§Ï#{ÝÆFñVöÑ!ªu}Ì+8Œné<•ÞÞÌfé«X¤rã@ã×['¹”PŽwF$7Ä~Çc+F.øªìÜÌž¹}Y£°€ÇLßËæM[a˜sî9Œp HúÞzÂök{›Üû6’GÝDg§C /¦ +äè¡&êê•Ï ¼w@Ê' +rgµ¬ç–Õñ-'?äBXÞ¶›üéÀ=/Å#z½¨Êç*¬ºÍ=(ãÇ ¶I‘“©±¸s½ÀŸµî…1îô"Ö>€ž¦‰Ïfšo]$wúfðJíOÜf4åwfÔ˜VËNÌÎü0ü°K+[|ý…lën8¯7“á‚0¢ SG˜ +ü È–í¬Ü3¹ûÉù{Þ+´×'‚Ï»Ôq:[—ƒÿ¯²×Hµ>*ûa:ƒ:+ÏñÛ[¿ :åÔ))½Ô×òçÇUY‡Leq–ÏwwÈç¬e”t–Ož©Ã¹g"¢MZ!©ÿüZªPr¾yetšP)ÂÀS÷'nCÏIÐ9ÿ¸•ÀùÍÝW¬)É'j±gnÝ›èýMÉrkÙ<E–bÓt_Œ_ç¢AË%o IyMJ‚ÖÜ[ÈKTòýœÜbªí5qtó(—5ú$ÙÎtUPœÕt‰ðq¨ffýuÕT0té”´šÚö©4}dÎmÂ8¥ÌtoÏ/æƒsê‘á*.©é`ÎbXÖé\'½>‰¬4ì-5Ï~ v*¸«ÀŸV²ÎVY>­Rø˜ƒšáx$Û"óŒÇQ RG¡,¿®Õ¶ØŒãÎZ¹Nõo$Z›®¦iQAp¡:§—+„S]Ûè+¦IÞkoþu= )áqÿ45ÈL©KH:—J-wä‡oÅÌTŠÉêº7ÛiúU” ;Waû¿ÅåÖû’D#ßZ²+‹ððªâ$¼îÏî”ÓKGNÃÌøÓ`… ñt)J®< ¢òÂ×k!öí˜áaCÔ@örl—*…+Ú>ù¸Ük—õ+‹ ¿IóeÉpcŸ:óÿ ¯.Y‰ž6>VgϵbAjtíÑ€u·GZK`Óz]¶Å]òäDHý"Àùú)my‘+Ù˜ß7ç«Œ¯œÎh·±¯ˆ×ÞEe(¤ÐS¬º"•i~½Ö׸ Î6ËðwJz¢ÑCßïbBþD#ºZùL§/Ñ&2cÝo”¿²´‹®Æ˜! +ñ‚鱜ݡ$E/äYðßfr¶Ÿ³Áˆoà•œcµšŒÇBb²ppŽu`$<£pµ +fé <ä2_zã°Ÿbb«ˆIç¤æ3']1Mvâ æb¿þÊy_°dšÚïV¶´a$ÛxLÝ®ÃZñ_»I{øj´-Ó’êÑqù%Gï÷+ü_Žä\É­Ð&ÝëÝ–9 +Rþñð¯ÿÅrÆñM_U†Cùõåöv2?†´N÷A©3…Д-ÖëºëÒ-Íò[‡±Ã$2HQUùäÞvq–ŠøAÂ+8à&¤†$iÔ^>¬] .ÿŸêø½<ÛmÞ^õ¿pê‹Ö¼ó /D +íN´z[[Aª`lüaϪÿÔŒúlÎéù¨Õœ–L y|§È @&Æ[›Š4Ôצ!ªÛ§rTâézAdm¿}%%ÏDøïÜQ¿)Ø  +u8ƒ~à€Qa¦ÝqÔɔӼҽœ0 €”‘öd{ÙtŒÛ^ÅÑäµM4t(bÄ&f(),[ìŠF^Ú@ÿ3ù8˜ÿÔ6ÀëyF¼TÂo;åuŒ|Î&P³e$UºÙî@eu^¦# c;Ðk}Tî9ÔáÂËw§žÁ£©zrwU$ܦX £¯i‘ºM©˜ƒ^bpi«ð¯ vüjåÅHx À0QÅÖ3s¬DÙ»~·­®Cº2xX¼¶t‰ÏÁ$jȶ-‰äRØh ï³XP@¼˜ŸÛDrUhgÊ*YŸK 9…Ò+‰ ŸÆH·Ý7ÓUÙJLØFÝ^À…ÖÒ¤%þ¿ÖðyåôµL¦›v‘‚Q‘öŸDÈ&L@Ñ~Ö© Umè Co*?%Ð*ö2¿›ÂO¤¿m1æÿM“Kmˆ¯ _Ü‚X[ ŒÛ“½OHáõ‡êÖ†¨-…9F´˜Î( ¾ýÛä΃•X½NýM]tù’§‡Õ÷›se9íÂÏɸ›í„çeÖÜ€¶vÈÅÓççØBrk3â)vßìíÈ› ¢ 쪼`î—­că ?±¾à/Rãý›èj!;·¦°d:Š ø¨:êfÂ5ì¼ó ×xíÖ˜ZP +É£ÃKa©VHÚèJ¢¤I¶-î£Ð·4šöÒ>ÛPx(…:®·øƒÎº 1ÙŽ`¾k?&íê€÷°ÇÁ=k÷?LÓÞ &gÏzÜ’oHØ&{*çݹ•ä7‹äð¹ž& xp#µŸÆÛž «> >e´œ9}þ*Å·ên‹ó_†<:*晎9ÒÝ|7¤²sŽœ"“#½´§Ò”C7ŽÆ)¾6øƒ|ϳ7åƒ äi–€»övÚ„6ÃÑÕ„qäͼ›‚Oî3Eƒx-0¼SJYeÔ{Ƹ´— ØTqÇ*u Ð2½%I +¾{ûÜžæ+§³Ç÷Š®œyÀϦ£ªâûb`€ý‘\ ì+ÇFc¿&çh01`.=„ñ„1í´cb˜Ê0»Úþbm˺m{5Rg—¨\ƃÐûuQÃå‘ZÕøëx Õÿ~âwÉx§þ_4ã^‘ î÷ýåŠi½=XmÙ×:Àdü§(Z}ÀЯ0½}l ë®*T]²hÉ°Tz,l…(#ª3Þ’Sý%n®A&íÄIãã‹qÏCñ®¯šW´éáthDÒîÏZ`Áõ%¦Tùú§*ë´…¼-0+#3jê€Ò¢´ÇaÙß¾êøK91»ª¿i‡2¿Ò¼›û=nÞe\¨¨Æ‰JL̯l?#›?Ý´Ô Ž^,CåÃÇ•÷ö,Á¶u³+Ø%óûb­Ù£ë&¼ëtÞÓxžæʹe—ʨŽÓQÚŠ¢ˆ†87kZûô0€jDZÀ&”ÅÚúßQíám0ó"fSî€öósDÆnT†Ê|™¢àbÝPzê!†f~¯zÄ`ïF9[>‰ú2öVC#z·0ªÒáÍp`åR*9¡ÀJ‚ÛåA¬Öž( 9Ôe‰œüv¿'¬ŒàáO^úÎW-0¡¯œ‡Rw&¼åÌ¡35Oôù£Æ'ˆT¥%8¤†ÖË%YêžsÆYè†?jV{ÒÑUpí¤„óÛx×ÀNÖÆ G¡›JWÈ4oEn}/jÕîŸÅšôytMõ]yö_û©þ†¨nª%ZwpÍ…“@çú}EÎÇ9Ç{¢,9Y”xa`Nn\èàÕÔtÓšü½¼œÓu0¬š#äÈ/†nÆ6Ò€^_ƒáœÎ<5¸›Ec]F‹KRÇ_,ÐÛ¡ ¼¹)p>¬Ü{>>¸‰€‰X@zÎî¯@Œ2·ŸÆjfÍëò¸-+#?â÷N­Æy}ÍÌý¨?Fêñûàvmp“<Ûq!‹©!²« ?5z“ÊÀö“Ò¾ÐtqÃ>Ÿsnã:j°,‰/6¯z¥‡àèM”Ÿq3iDÈAd@èxÍùnrq´ÄÑÝŽÀFw1!'ð7 v µÞXø!p—%Èå£xF9²//NuÞˆwƒ@_c†ìh‰k lÛõä±1{)8$uzë1<®àé¼ 1xÛ•‚ÀÉrväŽ7üHGµÚc¬‚ §.!b0()f©6nü ± ¬iv°]4áähß¿LÆàoN·Y¥['mpÔ%ÊhŒ/%”ó¤tÍF!g5ÙÂ’¬dÞòÊßÓâßÇ`¿õ #?ƒòøþ¦Lï»J2LÞ`z +æ‰J9¸ˆ#‰ Þ×»-ÅKË•þq ‡B쟭4>lA9¶PNܸ_*ÐQvv?ãÐl¼Ó$´Ü fÌ ¤¬rk¯‚%·à_«,Í ósiùMu„3ñEc⡇P ªÑ1jÑOSf·û 6r±;Ù®,è }WÑÿ44bgå–ØÙÌ!ÝÙÇÇÌCÇw»LÑi­âsãqFPÔ<²»Ê-©.i£T´,‰ut/Ùï +[‚ +…+ õ {½þ ÆÅ;³ 'O5ÞñCpþ”õïªq:tV²%.(:X›"°ÔšþÁLã[Ÿ6^˜>ζþdó"ëží–X›ùgY±wõ®ÎDæ›ÒJÕ¾Õ_C¾ +Ò™F÷i“ÏM“Tj)9Z[fÃÿ¦©ƒš +HÖ‡X:îâO¹Lƒè-‘W=5.ÊÁØ3l.ßÓdëµ0D>šìÉ’@(˜Å9NÊŠ¦Æ»úo!É£ø»2¨fE%ZIöŒc¢h[© +ÃeâÇIJ֋œé +†PíÙh;™³Î–Ñ öV*W ›Á;–ã—¯%¯'©RÒ¬`†šù³#—EáX +hì¬ °¸Ò¬—±Æ šf]SL endstream endobj -1883 0 obj +1980 0 obj << -/Length1 1385 -/Length2 6193 +/Length1 1425 +/Length2 6648 /Length3 0 -/Length 7578 +/Length 8073 >> stream -%!PS-AdobeFont-1.0: CMMI5 003.002 -%%Title: CMMI5 +%!PS-AdobeFont-1.0: CMR6 003.002 +%%Title: CMR6 %Version: 003.002 %%CreationDate: Mon Jul 13 16:17:00 2009 %%Creator: David M. Jones %Copyright: Copyright (c) 1997, 2009 American Mathematical Society -%Copyright: (), with Reserved Font Name CMMI5. +%Copyright: (), with Reserved Font Name CMR6. % This Font Software is licensed under the SIL Open Font License, Version 1.1. % This license is in the accompanying file OFL.txt, and is also % available with a FAQ at: http://scripts.sil.org/OFL. %%EndComments -FontDirectory/CMMI5 known{/CMMI5 findfont dup/UniqueID known{dup -/UniqueID get 5087380 eq exch/FontType get 1 eq and}{pop false}ifelse +FontDirectory/CMR6 known{/CMR6 findfont dup/UniqueID known{dup +/UniqueID get 5000789 eq exch/FontType get 1 eq and}{pop false}ifelse {save true}{false}ifelse}{false}ifelse 11 dict begin /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0 ]readonly def -/FontName /RVPZIX+CMMI5 def -/FontBBox {37 -250 1349 750 }readonly def +/FontName /UJRPBG+CMR6 def +/FontBBox {-20 -250 1193 750 }readonly def /PaintType 0 def -/FontInfo 10 dict dup begin +/FontInfo 9 dict dup begin /version (003.002) readonly def -/Notice (Copyright \050c\051 1997, 2009 American Mathematical Society \050\051, with Reserved Font Name CMMI5.) readonly def -/FullName (CMMI5) readonly def +/Notice (Copyright \050c\051 1997, 2009 American Mathematical Society \050\051, with Reserved Font Name CMR6.) readonly def +/FullName (CMR6) readonly def /FamilyName (Computer Modern) readonly def /Weight (Medium) readonly def -/ItalicAngle -14.04 def +/ItalicAngle 0 def /isFixedPitch false def /UnderlinePosition -100 def /UnderlineThickness 50 def -/ascent 750 def end readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for -dup 105 /i put +dup 53 /five put +dup 52 /four put +dup 49 /one put +dup 51 /three put +dup 50 /two put readonly def currentdict end currentfile eexec -ÙÖoc;„j²„¼ø°Aw-åÎ<ï˜øX2-Τ^tÅEÒ_á’SœÚKªFÙÄ1F^j¿NBqøžÞ×ó{ä³´y4ö-FègbÖÿöÔ“{÷"Ö¸¡W–B:§rÅP‹À ?dgÅS%|'²ÃØ“w&¨F7J…¼N¾À°¨œL9VìâRt¹bÈTå5ô'ŸâmƒãŒ\‰—Nš"K<¾ù -’w¯àÇÊÈÜÄÁ‹Jv‚åð$†tE;ÈD4¯VÜ¢üŸ§vëš{bG@ëdÅ«ß)–ø²Nòhäòë]!*qÄž·Äì¥LG’~š¡ŽÊ’@Í‘°ó‘\Ö¬‡nÞx1ο?nÌ!ÑÒû4;æM~Qy ÁÛÒŒå4ï÷ÁÔu¡ö«×òî:ªVÝÔÞ‰„„Ž·‚OGþ(mË™³¨3¤¯£õ~Š—q†ŠÓ‡eìéç­rÚ«ÔãlðW=ãWjÅ=’£4ða&öêb2§”¥ÆøЊ«ÃõA•r)Éà7ûû|Òp\W;C|Oà­0zó Üw²Q² ÝÖR”(ƒWð¤?2ܰ㋈ˆi®N3ñŠmõÊŠÒ æPÊYAª9I\î–’ý_#öι~û £ò.& «Ã°eì˜Å8ãô¹v¥aIýS‰«h:}x¹ß±/ºj¼Ò¿ä—§Ì‹ò[ -éHl³u|GKKŦ’À‘kŸçù[&îÎq&0ë@ÀYôEΰGòÇG‹OÖñ‘µË²@3…ãlÎ=¢„ZF™ê΂³š~Ê=&‚Î#1'ù>vÁÿFZn9tb´p¤i›5l»A·zÛ²¦êu§Å:®@9“î¹ïÀ_¨ÍöTÎ -¼B›ŽŒÙ:ÐEílÏׯȳÔL4 - -]hlTö;öÞzf™qãøy¬û¥>8 ¤1 ÅŒ[)¸¼°L!l°Úô›ßAUý@°…LÔÖÙÐ^;Ƚû3yAèE†`‚Gv'›¯ÍÎEÌɘ斆Êßgï¡ ²U c´wKõ0‰Æ2ÓþÿÿÇ8zŒèp¤ÌÀ"·Eçâèü( UbÞbE™øãåÏV‹Oϼ2ˆj’X„F%îôþ.L|cézW¥e)ý% y‹^÷Ö˜tY =ÒV?z FÍÅ»ÂDPøÄE®L8¤½Lñ(Ef ­`Ä7’ Sc]YDrGüLA@çc‰-ÎN; XÐa 9OÄÃNLm¥5#+ñYÓ)›>wl©ûl†ìô„¥¶Ð¸ß)gŽµ Ò>ø½ Í*™ŠJ½!qòäÿ£P¯€¡`µ÷çé“^„ CIû âÚÂÍÏ}ça5ª,-ñ·ÞÄ;ºý$¥CÚÅÃúÂî£ØuW]q.J€g¦%V[á!!ˆȱ%T]fËa -)§‚ãþ¥Ò 1n§¼×FóaD`°<„À/(Èð¬ÙFøKv•3ÑC †ØƒþcŠ…·ž}®úí:,f±ú«4ý‚›"†¨8 ¯Ø^fìÁØ䣴Ws•žO’ÍìQžÄ¦´êÅ0õ·[Æ%CZ;‰ðê¦ñ¸‡w€…, n¾W‘«ñ±˜¹²!âú/´¯çù»-8`ÍӢ̿Q:¡èÖŸ¢{ÅíZ!D[ð Âù—³VÙJñ76ÆÓ°a>¶ôÍ–¦…þ¶rfÊ aíÃÊvë/«7ô.‚½áF8”Ú<[ˆ¬éÓ¯iH]z8K‰'øÚ+ã`&i÷€hnB9Q4çzÜƺ‘­Kz7!<`Ï,SYÉ•#DüáE¹ÿœsæ@ü*εÆa‘Œî·bLØf[.THdÑ20°Xq{ }<ÅÖd}SCÛMV#’‡ÿ¨–c~ dw”+c t©¤ï{ Ôp9º«N¤›T§¤øEÍcøˆ1ëúO¸G„|¹4UËYWòà õb6EÛµÅVL‹}n'æ\>¨æ{Jä²çÄû -ƒdþSõA§ÎƒL,K2( ³S¥æ;º{ó·Ü…êp ҇½?È(2°»F•ü“õïüØ}Îm瓱îæERÁw&_" U YáZ²ÁÕ–ŽRÈ Ò€é<Ì€Âï‹¿Ù`¢&þísï´¶BKUz‡sy¡[ÊTx ÒÌ ¹³˜kU*ý%Ѳ6úšæØ<׊„‚ËAlÎb¹’43}PZ@xq;½‘åS[ÕŽð5½ÍtœÂMJÓŸŒì×ÖÈ—Vh -L¥‹3tÎÆXÓ`®Hc£“Š‰µœ¾»E¤²¶æŠ¶ë…ù^<›‹fâ ¹ñ‚€'Ÿ÷ <Ü -SÕBðqÌ -Zø4Üs]Ö*Usè„áÿÒ+Ø‚Š¤‚ÁZ.—ËÆ ’}£Ì+€.¤ ×ëWb|^;Yùu—Ø¢ÅÌo2ŠÒZÑ¥Oæ7˜ ttÖøZR’ûr˜š«ëà*-þˆ¦özŸ]ßíªôeÄ9˜ <–gy{´v¶`TîÄþÄ\Áºè­V° 2?Ë'Dðaúáa˜‡A£±VNº! –OŸ£&Œ«äPÑf§cõ(ITVJ†·eDÅõ¬ßà×XÛ†ZüùþŒÕùò™ŒVFÕ-øî`Æ“Z="®ÇqN;0qÇÝ °:$#+GºÓ¢ÅˆmõiZùÈz†KH;³þ 5^íTTµ›% Ø¡¸ËÓVÂOdÙµ^à eÉ€u;£íÀ†‡ˆÕõ “SÐ"{Îá¾6™‹&"Àu›ÖkäDBPXŸœíçfع@w ¶¸•é%³\Ëì(sÒÜJ)#ûz7¶š}íº®ÌyI“'(è›îÊ©㯛ðp¹À0îúŒ -UÈ8Œª/‘\˜æ •»˜–}°Ü¯©b.N.¿ÇhØ…¬ß(إ¶î/çªö/ûõiøJ ™mðÁÕr3fÄ6ä>+¹´—‰*qÏ\IŒÜÚKû‰×ã×Ô×*ÖÿØ0>å©zq¸¸½ò®Fo1¿]zJDø0»â´V¢!â÷*‹Yøþ¨ÓŠZ[Ù;ŸIÏÜ=ÌÎ+g `ö2'qW½Âð[ÂtŸÕbü(h*ajRѶvTßx·„:žÂj}âë‡I‘[—SK-MŸt©W:w4Ÿ{ÈUè÷”bö­GÌ4~-õö õ ã:L¿¨Zê‡D’§sBÝ3ïa_ó@7Ö`·Éxm"‚R&TX'£*Ñ°]eM¶æÒa´è¯ 3­ÏÇ |A™ñ`Æv!«¢ÝñζU³ì2&à±"—nê™zRAðbåJÑßÖí&GÉšCž -éT‘y†|Ý?÷Qó ô¦Ç„3äöI¼ÕÚ¦AwXÄ•î{ËÌ_¿M¯6 Âq†e[&ùÓI؇î³*ÞYRAVÕ’JE¢.jÛœ(^ñE–ëÿón²à§Ã†Ož÷°…Q!)-IH/jUÍrqþð.¥ˆhdÙØì"¦Œ#ž®ÿð=íd„ØÃA†ø¶ý<[ßZÈ5-¤á:0ÐËqàéϹ«,¯ÐÊ|4®}Ž;.´fh4½œÍƒH¯ï`qyoK²ÿ¤¦~ÙçjŸ¢Ü*0×D šæS§HÁѵ%•ØN‡ñÁûk/2fâ&,fbzïþÓ’²8aåë#‹´íÎ ÚáÆ[¯Á˜ÍÑ´]BÍù>»‚Ó_‚žI~–jú²«R’Ö5™„Ãz¦RûƒJ 当:úáatÆSA>»üB¿è¤d·±ØÊ©;3׼ðGÇîüÓéüòoùDÙ½æw­rQÀk»š!žˆ'Êðòkï3öV¦#]îÆ#ÌQšú‚Þ*áo¹Ÿx×Ø) ¤ ›`Jï6µ)ýB9çÕa t(ÒŽQµUFY -êÔ·ò±«Œ["Áúã?@›$‘¸¿Ïnô¨ä&qÀ‘ ÂGF“€·üë‡ÔÎ×ô£aå‹aÉü«£\ùx¹ûRWÃWîHPL5\è“þÁÞªîò( D¡R î/?Áwhu0ŒêÓ…q翈Ÿ(~E”—ƒ`^ AiÔ¢>çQR#߇$NÚÙõyü ÆO–QKK÷Ü›§žv<"ÉwûaF± &þ¡º§ºò÷%§Ž$-t4qÛX!@Š·†ä§ê5ã…SÈð'¶ï’Ʀ·-Ô¬ºÌä)©£õòœ162øÁÉ:Ë"ø¸m)i§HHobøH‹îÇL,ñ;¹+ÅxèÍ0¾¦¼Œ¶Ž×0õLíg`_§j×·èŒzçhŽY‘Äq½e¥Bémd±êñŸ´ñ#CÄŒ-Èn!“«ÛLa‰Æòb|i6‘¨mÐõ\0ý³÷#àœ`€ý|‘‚v.PãR¢à·M-N/; ù]ó¡Û-+[_ªfÄb&ÕàÇpf4—pQNVuU¬“”û'Í,/—OÕŒ£õ:Š³² ,Êï¦b(áH - ClD½3Ä øˆ®F’]»µ+Ï:Qbg!5¢M]¹²ëïÈ`®Ï#»Z;õmÌÕç/ä¶Ý)è–ih§ÞA ­¬W?V¸D›8ç ë\Ú?”$‚êysfpøÈTÝ[’2?Fø3ߧW~žö*GÌPú¡¶ŽÕ5Ãàá52 ^Ó9È× ;˜d€ŠºÍ#ª•éý¤=TÆjg_ tॸw}<… - 6…+SQó]‹ÄÝü£\òœÕãÞŠt¬Mí6„.,lþf“r-”7oT ‚•€tçñ8<@–RöÉ£Ÿé 8"u¼Ë“«ö°A - VQÛA…f«5Ú‰¯Ø‚†¯;ËB¹ƒ†÷¼KÞ¸” ¦³/ BDê¼P’3Oz‹¬ÃÞEnVJ”-‡ñħk Mh®y,Êã›òSh³jÕGo½;ÿ—YïF>õ玷¿d[*¾ˆ• -¡€…‡©Ž!ÐÝuÕè'Yè]ŠD»°ø d„ª68‹d=1˜5 ˆG½®ço¥¿>:sÃ#Î =ÌŽ<ÂÞ&ÉMZ@ìƒì°/÷Ý좠ÜtÔå‡ñ ->óIè(öŸÓ‰b/ tÕÚ³ílÉùp¬ÎtÀ†¥”ï¯Xü‹ìp<Ó`Ó ˜¥jÇv±½D R¢¤ïl‡˜÷ÍÁ¯ erTv*“÷š9ÜÖ­º¥ì„§í`»ç'åÔw‰=„ñWK$Á>HÇߊÜë Ø—Eï“·anÅ5V» +c -«£Ï)F¯ý +rNðòƒ“öXñ°Ô`.2iaYÉ1|ÁÍ-àæ©~;ÁHpþÛ(ЈîŠv€°¬õxU -U¶ËJ1h¥ Ô*¦Òõi bì `©ôI$LIoåAÖYÊŒ±Ã“6ª…f?è¶#áêsƒÎûÈñ÷pâš}l‰ÉhىϚ1æ¸õ^Év8lBV’­yA®ïå#º7… *ä ”˜×k¼fe„ÒZ…™qžùjÿ¾J’¾gƒ§þI錔÷šÛ(\ÃŽjðüv¼Ô •yúar÷[džT… jÏ=ÒDÃ*žFÿ@IJq€¢8r1ŸTéàWUðG¡Eø gc1#UÒ…æ®%ž Áàò×÷='V&‘ÀYôf">ØMê0wX2ÊÚùBOÙ÷44÷bZEý Š+#;}zeÊÓFZñà{´%½k¨§ pðéŒès|Ï×ÁŸŒi( -á7]Ô癓 —ÍACÀ -úßÙnÁ®«ºàå€MÅŠ[ÿ6 3³÷PWo ™yÊŒÝîR\ËB;ªÇáª4¾-¬|±+=F¬dr·5œFÓ#[ÁH…T| ÖË ª¦­D@Û!ª§qž\`R LkwY[­¡<âìÁî”BˆšÒQˆ|ÊÐ!–±ù\ŽË%0¼èà­:$â½s×'X‡í/ -Å[ì,T>c·ÛØ.I£%\FÂœ û_àí€I q!¬W&|÷F;„Ëûw•C¢äÀ;zBìi*¢ü7au¨‘-¾Ì¹˜±Ñ-þªþÁòóX[1``X/cã0èú@WÕ€;¢y€_¯Z~×` +ÙÖoc;„j²„¼ø°Aw-åÎ=Ó%åW˜)-{Ùr½uú•)¯œ‚ßröA•ÉÂÜãE(õ@Úý{ë¹´‡º“Q»û|ü_‘RÑå» +ØÐÆϤëA³Å -T@æ|ýq|Vk¹¿J% qu8P¢øwÄGx³ÅªÛ̆ÖåQæ¯6K üªÒ-UŒ\§Ô%¡bÕ"t-*ðxÔõöÓŸÏÿJ‘+ +}ì3¥{Zà2ŽùÕzݬT2sÀ$ZõÌÑ&{Bè–J×{¨¥ßrÌ—Õ½Íám”1lè(zåNRøréò^&%Ï:(/I‹ŒßºH’m§!’4ðÜJßxIò7¹bs,O’iÿOl7²¬Ó¦!æbî^ëßæÑ´Î-êE>3§t;GŒ<å;lñ:à ø¥OS•¢áS*O?Ã9¼ ÏßÙáà—ô°ŸøŒÑ-þ‡û©øw yg8LsYtÖ¸E” qH°p0¤>ˇÇå +è,qàêÛŠ¹”q°† ¬mZD]7ʺ¹Ok-G_Ý\âSË°yGœõLžôý”š†N8úg›ì2Q}:éäæ|úC/ÿ  Ÿ´ÌûÔÉ‘l Ñ“ÄCðÝ2`À€ŽLu3ÍÝà»DÎ*ÕCÇ©5½Ñ™åsÔÑLƒUkmH« FqÛTfÊZ$èôð­Ò|™Üæ¸2ÌxlÚ®O‡u×x¾’gGè/|:ì&Nnð$JÉEQæïyüçÞƒ4ÿóÔ>©py'ä3˜ƒÿjiÝ.ÛüÓǦXË9~ŠãÎÍb0 uæb;Fª8(PFY|×DS%’y=þ†gn!QZ–‡Ð˜ž°ªOi¨ˆ†öæ­¨H,†ça7`õ–æ_Z<ñgñZ¿ýëÍÍ´ª˜eߟŸÕŸ‚q•ˆ/~j'[E1Ý Éwg,ÈK­€”ôomÖ>M8´;°r© ŠCX¶‡VkgØ-/„¬ôêR@ÒÙ|lñbC/¼Ïz‚°K¡_ª®i,'Ö1ÏQñ™7^“3ºE¹øÓªïì‹9$ÀZòÕdy]ltŽr =ŸššÊ>ŒK€%ÌÒa1½\î(tã.EzW(ˆ#‚MNÌ‘¶6Ú~*×E;Ö¿ÿÐCÆ¢¯a^1÷y5§Ý¿'h¹yf +±sÚ.8Ï°5®ÀciG$5Ëg0ïKTlþpü×@Ù>]ÿfâÙWÒç„Û7QGVë”à¬n¤~ËŸ=]éZ`Œ¢î“†*æ~7 è"ž ÚŒcæØ÷w0¸¡§ŠýU{Yn.Ê_xI¿P ­§Y¦Q]`µ‘©ÆMN!ГõÁáXwé:ðæ³R;†t­šØœ“+]g‘°êZÔÉ…þ ýoswª“èQU)œ·8‹®ÈaŠâA^aÇv>xÆÄËH‚¼_nÊÙ~™‹}ïÿÜ‹StšÊGŠ7¬ ÒK¼7ˆ2¾f­CžØi0Gm1u?‚ƒÕ4‰&–]ëçÚ˜¯dÍÿF€Üpmê¸U¯h¸ Ó²ŸÁ$w¥\¯Jd8+ÀS E=§ÀX‰ÿn·ËV‘%ÓÛ?Ò¯ÖŸGÊ[4ƒŒÃDÏ)ÛíÒ‘}êƒ<µ)ì%pÿD%qrkÑoò„X(&‘¾Ç¶cŠ<^ÔºOƒ;FI¤¡·RC™çKú-fõj¼õî—Üzλ·¡ÑÐÜ œëìühãŒs+à*“U-œ¯ß\Äý(Á=D[d)@üÞ%t€õ–)#¨Ù’‰MÙ—A=ù5N$¨1Q—k­h«æÄ|¯½)ZÈcïÜ×¼‹=}•Ï6À^Ìw¤'euÔfH¯ p!x.ôÀ"s!ùÖS¨pزvNÈ—y8•~ö%šž‡…Ð_ímÔD8Ǹˆré°É³h‹wWu_ÁãÕ6Â[¶’=¶ +ŽVÇ]Y«¸2?%¼ +­ºÅê)Š/KR”¹|e=îÛͪ¡‰b_„ÿ¶0Sè„Ê–5ºŠ…31Ø¿mÉxæ>– Õ˜´Oú°ÀX![ã‚ÙØ Ž`ùÉvfò|}áRú 4"‹~)uív ßE$U«™¾\‹µW;댞ÒK0­ 6»$Ö¥§æ‹­Pk?ÅÍy»yÿˆ4…º<öÝÞðË’q=CG$ ð–¸@dÙÁ±·~óÉA1Q8‚A-|߉b1`z­±j ´–Û¦üZ\¢.Çrï©  ~äÇs¿™"µbê]Ry™™™&rÈD0hLšSÕ)ê¬z6Mæ=â—þ"'¹OOè–þÆQ—k {2+•$Óô}°<×à»’òÊW`ö²ùÔà É1²='ðœ,ÖÝh©ÃòƒkÆÙëCfEœ5úF]ŠÐ‹y–nh|ÌdÐ/(¿~&þçÀP°¥B9µCÿx€Œ9 +ùÞê %á÷,9ŸÏOKìÓíL˜ÜvH,Œ>ÒŽ…ôŒ,6´”"+DƸórhL<]A+6æJÂJµ9çåÛ¿î2÷jQ}b…F¡[êó©zó'p &S½*U´$³Ø–£Ž‚a`RÑI=Õždív”_Ø\ÛW©÷Bàºõ±_½5¶§Ån[™ñß&òUêý¶Xi­ðâ‘N»¯cuοrðvI—]VI¨ß®†\Sîî"IŽ®ævŸs ’qYpœÏP]ÿ5|ÿ|rOÚ‰€ccéB0óKV|× ë†4÷Þ0Cajpâ¦ësÉ8AÆè»—çãÍêµÿ¡Y4-ìÓëL´åç ³Í¯Äði ïÝîFV±{%ÆxE_ ­œ*`ÐLOÃUìó +Ç”K¿­GÊÉs|ªmJ£Â%5ݯ’Ïï¦dAv<jா‚²-Wží:ß,=BYê¬þm¡ªà˜ìe"r5t­®¢€Éíúŧ²ì>,àwÙxI_ õe³s‰·áÌÙx–Rt¢´¥Qe‰¼h;ÿ -[œGf”Ò„(`¡*ùñ/ã¼I²{wð4i˜Oa"ûÿÄï\Ÿà¹%{-ø+¡ú`«8Ýá@;ÃdZ¡ñÈÞxŸóW'àðgA‘à$vÀqÐ%“=@« Py_w§Ð駾€{Š¬¹pÁ6œßÑìþL¢M–ýmM#ý +R +…éY›´¼œ«Ñ$Р쭀ï†ôÆ|¦6¹™|å™ÈGI—·`Äfkqa}@t¸Z&'‘Â=ä3¥„ÔbI§gUž5ƒe€­ÈÆý©A½¯ä },ü§ò)ç:iÆcðhZ:l¿é¯Ò‚ 2W#¨3¬0çërM$­a ÿ Imv›ÐòúOê¾"¨, +ƒ:( %CëºÞï©Mi·@ïÍ\õ[±ô +Üõ‰t•Òà=èUMñn[B_È2–_@nu˜?LÒ,DWUÌþŒÔx¸=u}•#m¶•6ÓxA x^QZû+% ë‰*{ÏŠÕ·r RH [*Yy—º0åiÇ­0abýP7©ÉyÖ¾‰pvk§TÚÌ×TR+%Å7îü²Ü!‰±Úfø´F gGÞàPÀ‹2?S%|¶b%°ãþý—¢ìN&tÆ:>EOÊYJJïJÿ¤’ZŽ“ªéÿBH-!~y¼ÒpÕ̊Ҭ㠄ˆàÖ¯dí z/ê¤úß3¤àj‘¤*À(JP›Å$'¯¤­AäTø¶·˪x"¶Åôb˜4~4]Xպ撾÷˜9®9T<½ÔŸÊ›Kꣅȟ9[I{˜Pú>ƒƒ5Ruc&(îªöÓ0ܪv²ñ Ÿ;ð{é3ýx}»_%.¾bŸeW îª¢2eSxìD‚8£«oì™èá{Û»Àé·èœ}¿wn,WPð ®z›–Œœ;Ö+Rˆt…VÍXñã=Í \Òu¦ºB•ÅíóU(CvÆw?H× jtÿ~DŸ¤xtíúÓƒºúŠEP’[Èx«Ó/²„¡2·‚)®Ñ+à´·™ŸÑʱÉx…Ì4·÷©6IHg°oEÖ'‡¢Øn²bæÄ\l­ÌL’hcëüb/ªK}kêVšþÞD u 6#+Ûé9o¬îÂÍi³(gy5lS‹ñ‡¸û{¾Ç Z½ÎQ‰ Œ·0µdõp‹Wg-Lb¥Ÿp÷ûy\Ûz(gR§6àeïÇÎÀ¬KµþG¦=9U2ݧæჳ¹C°ý¦óÕH âÁopŽr'ùÚFSëÉ+ U½ÉËÜ$ø¶Çκ ¹h;Ù ÐI¡~Ζ¤‚:oDøÈU½­E«ùF¸yo;0Úþ€ð?ÞÛÒÛmPÐ>"Ë#Ç•Æú° ŽT5J!*øåùS@§Mæ7#8&Öì-¦§ù ynúÄ9›Þôù“Ò5·°G„±TÞÕÔÉ„Vô +÷«—í+W±S[Oêm3‘Pmd‰é,«+”S€ÐÁý§ñT졆køyõR<$ ÍäÝ€ á2ÿa&Òö¸ŸØ=¥CÔ öï°áNÎ 97¶#ª²â~ÊÆM‹õõœÜT±À?´Bzò×RÑ͹ ¢Q²z«©×]s‹ªTëðôÓP@P„™ …G-ÇÞ R9M¿€åz­åó€å)3šîM¼ö¥H­žxÂÿV'’¥.(Ós°ú;àË|ß_OTŸÕžXëÒ9`G„ ü$PWÙ¤eYïƒñÛÑ=fE%Ô¤OŽpdD¥ÝmôzÈ©ÖÄ]Ṇ²µÖ¥zÀ‡K”+xIVk +w±:ôôMº mÑ×4ËüªYV¾#¡ù⺸š¹Mü¢ð]¦ø*Ç¢×£9ãˆtù5#rmÚâ'E×eo$Κ¢§•ÝÒ+z8n/=?njѳžÑ(­×ÄË(,š¦O2w é<6¡Fnc 1!åA¹zVÐRúÄI™»êز+TkÀo9®˜Û:ßÉW\ùˆv.y€A5”æÆÂgòf]?j6)ÿÆx›ªyÛ!N5¢‹g,Ó:2‹šˆîF¼%çuÕE`î®íÓBèxw÷(ݯɆš&´^šóÍ‚‚‹N¦õVÏè±Ûž¤ÏAÈB k+&Â@É'Ïј†sƒ†º†_;º™¬·Šqõ(_©ý¸:í¼.Ù:)î‚[Ñ ?bþtÅ.Nð¦|ÀÔPÙmÆ}ÂÀ/ˆu¯à#7A"U«Ã)¶„T\×ZxëH ro}o2ÛXŸÑÄËa/ùvñ½D3kU•ô[ÀÒ×+,뫲ÖÃ,ËO í4%߇$H'üűC/´þ¶‹‘ Œü¢ÁÕ|,¢v=¹ï}醜Cˆªœœy`6YP*¸æô“rÞÀ8%{o4c”1æºOSñB¶!dA6ë­]W%gÀcåT òœÞŸ¶©dÿ>Mˆ2Á¹^NjîÁ[NÕ@• *Zµöæ;#hhÜK7ç#2;¯Cݶ¢‚û±2 wC¯Ž‘"ÓÆ[´yD«JÈ,#Íb‰Z„ˆV*7 xߘKä;ž‹ŽÐ”yËv€•96I)I" $!‘ÄÕ/¨ùµ8¾õo’(P¢yRêÁ´ƒUS£`<ù!{ŠG¦ÐÁe¼+‚ƒæ(C‚³uA°ÂqÐlèTcu[– ø•jÖ=EšñÕŸ2øC4%Ëó´¬°2+drQîºÒ¢/;Á‘ Ú‘ù}C`µ‘©@|ÿ&c„Å¿ï1ûIÈO}º5áî& ‚!v,+MÞñ1êçÀpp‰_㯎ì­0ðiP€þÍ••ïŒ‚¼¬ñ‡¸g¥¾Z1ˆ:€…~æi(’lŒŠã=kq®a¯¬ð.À1äœØÞ':;)ÖÞ]4ð,ë6uxcçLÙA±aƒÙ^!©ôL²‰’" už›â +Éœ~=¥ÏCÐ3„[¾ .18ýÜjIùúTOØQ +Qƒÿž”yÜ(¥E*Àû>¿¬'߇߃5ˆ h „V€—Ý`,èõvr3TŽTÓ{ßÿ½3O¾Ûýï_¶Ž<ë΄ÓDì+ §ÿÞhÞ‰²3Ê‚<áåi.êðwH:°ÓÎ$¼2D(·ý¦=«­î«ÓKo¬k$ȧ¿*;‰NÐÍ“ #WF &©÷#Òû³è4}¢zrZ?ÉÉ#ó#cñõ ñÏ›È åaåæ’Œp÷~‹mšôz‘µìK(²Eeô%†fÙSåwdùv|—J¾ ©e‡“üOoC€ïü,0Qti$Œ}Ö‚"|"gÄO›I® +/±‡<™²EPª*×ß&æzh棷šD¼JˆÝ.öʃcDÇZñâ +„¹ÿZiÎê±÷ß“Åhšû [<TÆe²| „ÚT)Î"Aê½Øá1W*Gà|t Ví\]Ÿ£•¾¥?»MàaˆõøuåÌOu…®9‰Ú äééü«òþè8ÑêL~'jÛöÛ¢îþÆ›>¤pSýV#“Áu:>½f`Ï"_Bon”!wN¾— Ïy/C5£Ïrb?Ú7ûÎ@£?+…V5‹ÕÏëØ®­¡ +BŒ…6ºÊöíoYÃñqÄ^­5”Zp ·r,ÜB’^â:NÅJÀ´˜¥ÿ0ó7Aϊߧr‘Õ§}E4 ÉzA­èÞWrÌä%`ÖHÙpZº÷p=É{ŸoÃ.À{ç#'ªõ³uMèŽT±àòÕÅ[‚góI{ÃdLAN’Æ }beì†/F? A¸]buÖvÉÁ«¤qÝ“[3<Ï4MBT¤pa·àrN½[­0…ßüO€4\Û¤识BoƸÌãšF¬ ¨ýÛð>’Ë'Åd®nx¼N—#i k_AÞ›¶Õ³ƒ°¢s#;¼ÚwÈöÍ‘2¥Ô³LëüÒ˜ÐE‚üD†s ‰†¢ÿ©=Ö±¸ÆU§#Tâ¶{\âÊ! ^CǺnaæ£A2EÈŽ +¼, øt.UÖä½´ÍÈr§&Bըϲ³Ü”'Lû²U +?d1¢t>” +¬}tjìèH´ë# iaÚ‡^œ!¸Ýø[!BQhTÙ1%r<é´Ô¶éšcñNP+îP¥äŽ ê¹x@k}cd¼çp"Ýú/n}ŸïÀ£Ø—I£ ç¾j‹XÏ=謀dA'¼ôTŽ&`妺MÔ]ä¦'–|ãÅg®4¿çó•b -J‘4˜Y´·•ëЄ ]Ž³´1ÜcY#@·zG6ÉKó1&C'èÄ«7¨Pܺ—åtu.¿)O¡“·D-›>`xû€AåóvÚ&ÿlNO5ù%ªew@?–r½,糉#®¢çÓ*Ÿ•gzl>1Ø-Ä–VKŠmz)œcQu%jf3¡>‡Î³Ž?{\£ f> +÷WœÚ®;¯5Ú]ØEÔ‘4*,•?‚B 9• + ÞµCˆÒaô•I¯Üð$°éÙ8]F 6'Æd€ÏXL¬‚k•RüÞRzÖ\°›¼ÖXp_lÇv Ä¡ï·?Én¼?T#ˆGɪªÞuáú\ªì%(N!aD§)¦cÎh1­ÿ¹EÃz``êË•/å&$ŽS }S]¼g¨({ˆjB“nkém*u5'­k +8Í«ÔQøx&,$>„;¡v  YÐÏ<qVp·Ù¯M_¬é¼F|y4ƨ≦cQC%ŠŒ`øܨPòDŒè†{ϼ’¶!àÛ±)«Ã™rùVv^«AÆÆ^º›Ôoh…lÎùQ¡Äı\¼ØC<[¨ÿc•¥´­‰6<¿à^&g€•_šŸø›s4ö¹˜oÔÉ ]_|CýúK +äï’,-ܸ,ôZkËØ +!ç> stream -%!PS-AdobeFont-1.0: CMMI7 003.002 -%%Title: CMMI7 +%!PS-AdobeFont-1.0: CMR7 003.002 +%%Title: CMR7 %Version: 003.002 %%CreationDate: Mon Jul 13 16:17:00 2009 %%Creator: David M. Jones %Copyright: Copyright (c) 1997, 2009 American Mathematical Society -%Copyright: (), with Reserved Font Name CMMI7. +%Copyright: (), with Reserved Font Name CMR7. % This Font Software is licensed under the SIL Open Font License, Version 1.1. % This license is in the accompanying file OFL.txt, and is also % available with a FAQ at: http://scripts.sil.org/OFL. %%EndComments -FontDirectory/CMMI7 known{/CMMI7 findfont dup/UniqueID known{dup -/UniqueID get 5087382 eq exch/FontType get 1 eq and}{pop false}ifelse +FontDirectory/CMR7 known{/CMR7 findfont dup/UniqueID known{dup +/UniqueID get 5000790 eq exch/FontType get 1 eq and}{pop false}ifelse {save true}{false}ifelse}{false}ifelse 11 dict begin /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0 ]readonly def -/FontName /ZUYGVH+CMMI7 def -/FontBBox {-1 -250 1171 750 }readonly def +/FontName /GIODUE+CMR7 def +/FontBBox {-27 -250 1122 750 }readonly def /PaintType 0 def -/FontInfo 10 dict dup begin +/FontInfo 9 dict dup begin /version (003.002) readonly def -/Notice (Copyright \050c\051 1997, 2009 American Mathematical Society \050\051, with Reserved Font Name CMMI7.) readonly def -/FullName (CMMI7) readonly def +/Notice (Copyright \050c\051 1997, 2009 American Mathematical Society \050\051, with Reserved Font Name CMR7.) readonly def +/FullName (CMR7) readonly def /FamilyName (Computer Modern) readonly def /Weight (Medium) readonly def -/ItalicAngle -14.04 def +/ItalicAngle 0 def /isFixedPitch false def /UnderlinePosition -100 def /UnderlineThickness 50 def -/ascent 750 def end readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for -dup 72 /H put -dup 73 /I put -dup 84 /T put -dup 97 /a put -dup 59 /comma put -dup 105 /i put -dup 106 /j put -dup 107 /k put -dup 109 /m put -dup 110 /n put +dup 58 /colon put +dup 53 /five put +dup 52 /four put +dup 49 /one put +dup 51 /three put +dup 50 /two put +dup 48 /zero put readonly def currentdict end currentfile eexec -ÙÖoc;„j²„¼ø°Aw-åÎ<ï˜øX2-Τ^tÅEÒ_á’SœÚKªFÙÄ1F^j¿NBqøžÞ×ó{ä³´y4ö-FègbÖÿöÔ“{÷"Ö¸¡W–B:§rÅP‹À ?dgÅS%|'²ÃØ“w&¨F7J…¼N¾À°¨œL9VìâRt¹bÈTå5ô'ŸâmƒãŒ\‰—Nš"K<¾ù -’w¯àÇÊÈÜÄÁ‹Jv‚åð$†tE;ÈD4¯VÜ¢üŸ§vëš{bGBH)[Ò)“¨å›ÅW뇯Êmææu£;€jëªüœAÝ„´6pœ`QÌÆåî³±óÜJôÿʼ®3ð@žì¤òH¼0¯lÄ« Uâ=Sún1:ôš ×zU2Ž!¬×ʯ -å̹Ç¥ì6Üï&íX!d”[ª~‹Ãg“Ý°Òù¥Š—gëZþTd?´}*‰BükÓ¨È%>€ÑCËc…Ì-ˆA¢MMغ¤8_¹/99PR· lñf£±-ôd]‚ ¬ýß­EUÅýÄ_Ñ~fÝë*új÷­ù‘  ‰~`º(k‘s@è(šYH¶è©µˆ¾{é©>ÀsÔب¤Ÿ9³Þ÷Ï—Q'”%¤^Œ Ï©µ‰'­åqžT ÔLõB‘%…°ˆiñWlï½;,ƤL<ÄP_ Ô=Š¯†Íùž09i‡|Å©èÁX7PR¤:'ÓÄì<߉’=–¿Fbñá¬4Ÿ›NÇ{Iûc V[ÊîR\ 4YŒ®IÜ‹+±| ß (1B‹QR&o¬¸„d¬ª\™ƒµß{D¸sz £¢ Þc¢ õNf½N¢ò¼(¤‚£Ë9æü)bWz"süZó9¯È7&÷Q¶&þæÏvøü/_“2{û3Ú€©íËÝ·‰†.'Ã`’o8‡Í ƒí¿ÿ\)<ñáŠ|ª3òD:4âVû°Ãw$ÛqPŸsc·Âé釧Ÿ%E¨«gO|îz2rÝQÖäÓBÃcúg˜Ò=ž’ÿ@ã\Žg^ ÿÎE4óG9æ2šÚß!AÓÚö´eI–7Uw5hË+U`Nßû©ñ<q{ØäÆù€ò§Ží/–ˆ„•Kûýë8ÄyÊêØ"ÚÆU¡þ +›Ç•Ú:­½„¢[?üœ|Ém;<ßM/ÚÖga‘ìï ohœ -™:WvÌ´ÉÜ"ÿ¬²)j˜¡ÒQ¼éü©Ôwµš¡!e¹‰‹;³ØFP6H²MmGZXÿ9Qvdqþç7C[©4ÈœžW]"¢b“1ŠœcNüŠIý/%-îžßû>³¹›&Ëö¶¼ºœ[Í“ûL§ø´YÍÉÀ!¿L.¾Eáe_¢CžÈrcóI"Ú#5pl†$¼äÁ‡#WüÇëýô×Å®¢V*œ^-ZHh]ùýˆMÃdÏ&°wfoƒäµZ³_x™¶O¢µÓøGoV“á%i×8z`ž<dž¼†SàÇð{(jÏ.KRYŒõ¿ü#u†î•¹Â㔦—nRÎÕÖ”ˆÄLe¶xë¿ÕçŸþ„¡W½2N ܸmÿ {âƒY2rêÌpFSÀ¯f§ ÷¢Ô(§¯¨5b4…;2º}$ñ -Cq^Ó`ÕV´x_-Ü‚ß—p\ÅÚ¥ÿŽú…Ððf6ÈÕk¸ÓE±WáÚ맺1Îxìônùn™ñXÇ£j‰?°cB۬᠘õºïð4NwŽ¼á7t4-x”OK|.ÂJH—%Í™6.j÷…Hiªýð¡>lgî&þÙw°¦ïˆ…Ô|†5CW)¢Œ—‚¥úòˆÍ×6™v}ô¦42Bˆ>ŨÒÌóq¬%ñ~ã<­­xÍ4`ÊAoÃΡl¯¿•RØN×èµÃHý+Á%-¦“†—»öVÒr‹©¡W*dn©tœÕ­áæDj…1à›½ërþÛ¨=n ±­™nÐ.©Mº¼•¯$ŽJS™©Nh¢áü¯ ÆdÙÇš—öÈXC,‰/$ðk½ Ï9F5ÎÄ%AåÀà‚Þ‡¿7§ºÉàÔ·±på@¡á«‡tÿ +ÔŽ§Ž‰«~¿óã^4 »,˜Î"„#˜n!µ½õ¥ËTqI¾C$*±87ýrø˹·6…V¤@¸}Müm0<ëêO Keå'§i­}‹ïJ3PO–OžB3oÆêWbqÿ+5xÝyUÙs>AßO.b¶¸‰B!dMýKKס!´RÖù\¢-ö9ë›;…©ÇQ -w¹‚ˆL%j¯<áfÒmt,˜×;ðB‚P=ʦGÌÔ4A0Þ‰3IZ™UÕø?ìGÜdvÚ(ÀbÔr‡€²ú´^Š9ø¸e‚Mì)ˆ#þà­ÂäÔòê+«msæ:ªæ„0šUU½Ç….¹’Š|ÛA^ºn…5n³‘ËÄs„HaßYÆ -x0é<ÏK¤Ò…Åì&KnË_·Êý°©ÚŽä¼‚·=íÄmNÙS­:¸W<ÃÔ:Š:oú’18ŠÖM˜ ûi'Bõ3½6t»¡‹Ó`à·ük*?^Sb=¸’¢â¥è¥»þk,)8¢ÓÇÊÒ ç´w_C·N:ÒæY~‰%d 'Böö†Úåœ1³ƒ6ïó®ø9ÌR°Ó?œìÕvqu |A·×¹zºÇNæD°5^¨ûöÍI¹‚G šçÚeÉôàƒ`–¯×˜ÏÆiÿŠ‚:¥ô½Ûz6Š5¿”挩ͪз<ók Ÿ×RÈð:í»“èaJj=·…ÎØCmÑd›ÌHPÔ¶mcƒ¦V÷ýQãñ‚;iªih,Ärtœ¼ÛߠΓÁö¨~c‹äë0ZìØ#»b™‹úp±rg3„jN—'<¿;–TÚâÄ“ƒž-ÑX¦týÖF!Œ…¾Ú -? Ë¢[2Æ}+-P ûõéìLÛ9FæÆâfVÝŽ÷¤¾4ÆÉò4 X¿°)³Ðñ+g-ËÙËÙ±*‰má}(’U¾ÏYÄ‘U^ÒÉ> -+À¥JFd“Ï%¾³Š«Ìç:=ÈègEM‹ä±uÿQ’pVp&7[9qÛQoIîýüµV–M2]aÄù Á(­üá€ý|±fÙ/âFrªù”RVvü‘^ôóð® öÌ|Ä©-”pØxGíýï«?'ç‹g¿zØl²¨“‡øðê, åγ#¸¦š¹A¶CF­™–Ymž…^ ì@Œ.¦ØsÖºï>f!]Ø×J ÒÓCGý°uºéÕQŽÒyC¼®WsÙã ðâ&‰²ITFÍ€Jí¾eËóè&-²e$V Ïk%² ÄÜí–vl#ö'6ñ› ‹³8ø“‹ Hß¾A‚Ø7›£]°i׈3eYÚxËÌäåˆ/yf]ð -ê>øq^å`’òú²Âæ~'³}`ó3þÁéòÔ(æä1«ÖÛ~ÂézÔRjAwøu®a8#tNÊ°q¡ïѧ‚¤$Þ•ƒ‘SOœÐO¢ê@‘­¿‹µ»äy{1íFÅ«Ì–Ã)Š^FK€}J.øÐ@Ê4zßÚ1¾”ãD3$k,0ð¦Á›µIaÖ8¡«Šù¯‘†pPÝQrµCÂi¬™ÈØk]qB~&¥ƒˆ®ýž”\·PTW\}'º5Æê ÇÚCŸze<ï(¹ÝÀsk¢¤èoñ´9!„øØ?x„Ñ—âEµ”µ­[¿Ãâ’žö¸J>&à"‰B‚ñ Scš×ŠôÊ}5DåmDU–¼hÔéK1M)kÆðØ)Pö%-/l|t븘þc½û“áT _hÀßh±ñkò—‡¿¼Ü‘¶‡ÉCµ±l ôàai&k'0½ï˜µ—ì ï°vYˆok9&ÊØ3ö³®52ØXÇ8rüÍé]6ç1*E–£‡Xk„ ‘ÛÇd`-sWã´‘`é\Ò‹'ÆþéËí½!âF´ÕÑ™f±8B¸ÖfÙ…Äܧ()³¯™"Qà%bÑ@Åq+’^P·6AÐäuªÄ}à„P:G(jƒÚH*J}a"`RÚÔ_ŸµtÉźGôœ¦ë{Mß8D*²R,øä%-«þ®RÖÞÖ_Ï¢PzÅQÌkåßqÔM)Vt8 ¾^çê÷ ²\lKŸ­‚t7#]ä뢪xN•AVDPjt‡QµA°TÙ8ÔaðˆšÎ ªBEÖ¹…å_c®RŽ›2vNÆlFÞ›U'¸äy|æÊE£öÙ3ü±YFo `Â]ps -Š ‰•%¼ôÉåzÛD ¾6‡¤Ó¬É˜ìà”ZÀ\{²ºëD-pOÉ<ŽÑº……Ý}™ÐKÿÈQ&U ¤äÈÈ/ ¹Õ;y¤•£ýÄÑezFL˜y%”ôçŒLïùg®NÚ»¥ûn¦½Kö#꾫ùôÖ_¿:ˆG^±)âS8ȼÊZ#©´Ah)±ê<®\Ö‹æ\£&’Ú–Svºöþ%K—QêŠâ' 棱ý49$½ÕHDÉ0Yyh)(Êç;ñ[;–¨˜¹°ÑüÔçy,EàñùàÕVûÅÐÈJ‰Í÷ÅóúäO-Ü+i&ltit$زÎþ… ¡Ô,ˆ}æñ²<àú[Ïä$yÇŸÚ©+‹)(’xq0KõäéÄýÜÑ×½t­‰ t›“¦¼"/t„/M“­ÖËw»Úõù -eÉ7+dW~¢õb(6ÏLj?Ùc_Îj¢ú -]Û½VÕh=-¢‚(ü_Ç^ªŒ:`{Í?¦ÿB¿Uû×&¡ºåÜôöÔþ Ù9HÄqU2òù-é1—c¦€¼dðD¶ ¤CåÀRø5vKæEúiVÞ!ú¸çù¹´±;q•’ætüO%7Wz“ó—íj~±ÂïUgYq¼„åíçŽSÁ–´ßðWÍ¥XKŽLï2"Å>9¯$‰:Ýð­;ã™ `k -E5 F°ÁBjl›|D×ú<ªu´¾KÚïì"=ü88+.3ý»º^Ø.ë4Ð÷`œæ”Cz’~щâŠÔø¬Û3Â{$ÉUº~û¨™iåÕ.4#͆ïÇζ&=m ÏT²÷Û,çðŒÑ=ͨ«šC^¢âj ûæàFâg²ñ¸{YÊùlµeÖv/wßpņ{õðÎë`Ï»}»›˜43µFÁ²Ã3(Ô,có“I"Ϋ?Ÿ£=að@܆´dÆÊE}›P‰Q*R*$×Ôc¬üÁÚÙ ÂI‡Ø -Ä›€íóPÑÌ"t"Á<ן•J¹y•çÆ.^M˜ -ù`Û¯ôÔ@Þ+ib¤³q»‹fkytL®ìbsX±¡0…_¤HñÈ+Ž ™¨·Ç%L‹Þ|úqlw¥Ÿ†ÿ;òu-,%ÍПl"Qo),´öÀ!¬¬¥î£œÛ  ýHšŽË¹óQ:£Éž è0Öî·DÞ1ââK:Å+=ü(ô؈ê„X÷ «´±3ãØ-\i5"l¦°Äa×¥Œi'zM›?íùkÅ\0sM|nw‹ÙËÔE??øµ8{›*݅ÊX ²¦—”æ1‚,ßJÂò©ˆOúR´¬ó·¥¼¬0¦Ð:òò:¾  `¤éjV3㡶Ymñ#u#¹ŠL`Ü·O§Aª>ôe: -ÍAkÿNÊ4í¶©NÍðºkcOqøŒ"Š‚8§&)IÚê’@’¬ Œ¥ -m(=¨[44q·qZuÊå0P_/‘Ù§ë?Ú"u“¹í…¶½¤;@Œ´ ¯ÎÕØ柊–‰"b6(NŽÿ}dV&iöá%*%5«£,.å狨ËV’ofö…c.;¤ÁÐ aù/‹¯p%Èçl¨ ÿÛ *u"MÌhù6˜,äü¦‰6ÅÞ¥Q>jfôR§õTÁîLçíŧÚ´Ô{sŧj(Áæ©«“¶2%éï0Å‚.‘`o³{N‚)öeðug¶è“B'âúb!„)<–„‡!@È*9 ú¤Ù,— --5ú<¯{„zrÀ•ç_„(&Èh€wÍ1<ágAÜîÇ­ÉÛ8»_V7“¬Êe*ê#ôñ÷Pðp­b-H“_ŒxòË´¾þ8‚ˆð,#›\òG®ÌØ15 -‡åÜ=#-箂Ã)2ÙGÄé¸ \n1Dƒ£÷Í<_Ûzˆc·s⇕šþ)"Ѧ±;;åö“|3þªP„.j€´æ÷1{îüIž öŽp#“c>iPÛOYL–^p²e®¤¬çBxÒ´@y,4Î#**¼PY2 ªâ™®È€ÎöyâgØT>«ôø$ø[­–X“{D1étð?K®vý ±Ë{þ¢×ºÒjÞœ™þé‡"É4%{Cë{ógŪP¹iÖ;T¡M"_<.HNUF˜Ø“‡ñψÄĈ•Ü0N™L+/l¹ãQËì­q¾X× -²ï›wôÑÍ^WëwÄüðªQD]›Ã~@8~(”"þZÒýU5ÁšK"Ò5DTþó -i—˜ur!†lF,jð<¯XQfxC㼕X: óœ%Ól€•É»q˸ÙþÑìn¡“ -꾸¿aò† ZƒˆÀSMéâ¿aîøù8ÅÅ"k™gCLÔ -ÓØû"¨Ï“ Ïl#œê¢9“B€Mj½XÀê3Ò­Ú°ÈöënEº`Tës¨[µ¶ÍڟвN¯ßÕ—ejâ.DèËu§ 2OQ„ÎaŸôjcS˜d#¨´ùo[]í"Áðë}’µÃ‘:ë…ï*íµy0 ë¿}î˜ëíþ©D],2OQ¼ãà—^E:íMmXS7ÇU&®倧›ì6µhäøÂfƒ‰ù½@mųue[°Ã‰1.X¯gåˆ@ð çè¨kQHÒNV¼ìQú¿ŒaTÊb8åM¸­J}ppÇ»ë++¥iéSä¿Sjú@9Ö™\Ýgó7Û—Jˆúï>Öš>†Z ûËaD˜ïرµÔŽ@zØ›qÔ2ÐØù±Œ–¿Ô—9{V÷kÁ2`-öʶ‹5 WC!ÝíÖ×ß2 5¦BŽwRü«þÁ&û¯,¯%5ê%ì"è@‚LîJαmé W™{•8ùÁ)›¯$U?zð×h×X¼ {Ó³‘]P-ík¹º?žœžSîíÏp"€…¾3H SN ¹QQuŸ°ý‡b RqsÐ/¹( øMÉ©#ÿ1YV}Eãé/¡Jáö4óÿoË»YxÔב™i“šÌ“¿­På_ü”+Œ Ï ¸¸“ÁÁÏ?¿ó’æÕ&$,£:»©3û9|ðãË~Ôw†Ü¨.á°G‡Êsi@Cê”{25‚Üü¨Œ;´Ü®2ÊÕG¼UI8¤,”€“b—ÙA|Z:œV Sôì|:U¦%pkôÒèRÛ=‹‹GŠ #Õº¥6š,8íf‹™Bƒqb•ºh?&wOV,ïpMýƒñù?n\kz/šJ|ü;áhh3g…w ”gäh6QÀÞ’Nêøë¼þYwRñRÙãÕfrè¦ÅÛ€¤!(užØçfˆ3eͤ±òbP FMÜ9üŽ¤¶Uk -곡g”µêëy7ä5"Ri¦]Q¥Ñ"^·Äl%ܲL©Ï쫙ă~…ì<†ãø¹“}±uGO´¹ãqE`qÌê=d`’–¸‡L­N*‡È‘mãÕ< üžñ_Ìo…eI¢X,º¶'Ýù¢ÞŠu)\]$›-J{tXg½«ömêC—¶c÷ÓWįø![^2&NÏ+ÿãæo¾×¼°*Um"°Œ,b¢$@ì½_¶ÿZ‘Ù¡©¾ªð“|¿L?zœ­p§¹Cª¦KéAºdvÀ<·ÂÜ£Û ƒ…¯ ‘w$M a}×7+ñMi“ÏgGðfàrŒH•¿Ý âIÁ¤©û¶Þ¥”¸ø Émæ[D]È’ÉÔç¸(33Æ­úò"&‘Ûù ®ªJM^z`‹Ý‘Øî5! ›ÚwÂó€…–Èð"úꛨé®u‚:ÝIÝÃ?_ñ…‚`Œg¹'I’£´•j×þ}­ýË2ZïålÀöæè[x…莙¦ ü›ÉÜͦé›Þ,Yø_ë 혋¿ùãžÐ_A¦M^zìNLa‚/W´ -¨Z³êÿ…êX4·g› XšÛó@6Æ -zñqÇç°UK¡]Éåp*§K9º54·ð´ä~¤ êñ×ÛFÔß$Y¤'VzV´;ââi¿J#´9¡=ã*‹Xv£˜ é-=3c @.ÿ>LXÛš¯B«2Ùå€6i[˜ÀV¿è¿'?ÉqÇÉQoAÓ -Áæô‚á·ºïôàú‘±î'Ð× cVÕáîÆ(-ØX_{®´]K Fݹ/©0ù¸Ý®¢C궨ñ7Õ¾5ò_µ„ `䎼PØ5˜Ã)Ô³š*WË ¶ÎÈZÿºU"ë€,~”‡Ü_âWÝjáéëÃSFð ó^BB¡KØüâ&îm¥Ó'3¶ê¢a:‰ýx6ƒefEVïícÛë{n8+Iw…rf±ˆwË(ÊDV¯Ö‘}> Ñ/ò› _Q)ü£ußæÄ&¤ƒAÝ][§ç:ûÿ5ÜføÊD#< ˜·|¸úi"Ú#Ù½˜AGUô¬¯–'ÿØŽøãõèùÞX—˜‘nWU.÷ÅFõܲ xP Æ„±–Xºw×H »aû ·«KPuü+ã/…¬Ì -t¯ãÙ妅?Ãq×nËýu€Iží:¸ Œ×°~‰¨KJ~x|~+ú™I ¥»w3xRã~κ°Ù&ŽYœÂª.—Zu¨ñ^ZÉööÚ/âmêÎË–fƒz¬°?ÅfŽŠ_+¶³öüup³üôÕà}Y5N(æB®û^®šF” F‘nòèSÚË-…$~™u¥†á(Táj$J%ÍêN-HÏ8ý˜¤_ª²Uò} }FO½sÙ[¡z Ö%3+[§l×â¬Rou<̪Ðn.à 3®b2’ø’5èñ|ñíç -Ùf;á¤&ú}t”áu®"@H¡ƒD¤ë¯¡u1­Ãj+?9>oÝç>D¬qN6®Áyµ ¹K‘Ÿn”;…þøÿÍp9cS&Ü…ŒŽaö¥¨wœX§0i°~ο;°6v¿_ɵ|ªŠW$ÓÓ=;Û ÞîÍí ¿û—²Ñ>®‹ƒd‰oý\ŠhÀ6’³z¡†x-à ÜÓ &Ñ=¼ ¬š—‡AÅä!ž¯:–Àç`bùЂ÷™BÇJ…æ:Y_†±íÊ Í¯Æj$>*ÏX»ßqäBù›ùÀCauFöõ[Ì€ÛŠŸ%ýÂZì¼ …ú×ÀÙH2 (F]9ëCf2!®9}º  㣽i üÌŒ{éb՛جDS`s‰Z§<ïÝV솀(”zí4ÈŠkŽ‡yý 7nW˜Ç2hî`Ïç=0ÚlVMlƘÀ%21öè,ªê3Ä«:”Ù«ÁýSåö+E4 ‘Ïr©J?¿ïƒ·ýêzÞQbÇ^Î-— ÿÄ„÷f(˹jÙUqÓ¹f-q, ì)KŽßAžú«¦N +ÙÖoc;„j²„¼ø°Aw-åÎ=Ó%åW˜)-{Ùr½uú•)¯œ‚ßröA•ÉÂÜãE(õ@Úý{ë¹´‡º“Q»û|ü_‘RÑå» +ØÐÆϤëA³Å -T@æ|ýq|Vk¹¿J% qu8P¢øwÄGx³ÅªÛ̆ÖåQæ¯6K üªÒ-UŒ\§Ô%¡bÕ"t-*ðxÔõöÓŸÏÿJ‘+ +}ì3¥{Zà2ŽùÕzݬT2sÀ$ZõÌÑ&{Bè–J×{¨¥Þ£Ô\u¦‰3ÜÀ]G~Öâ 7ÚGô–®!†/ Q FM´~Åf/m*¡i‹(ž"!i©ÁŸ +K€5> Å£ü d“,J^«µ…,ðÏ]‚^¢ +zçÒ* òµ+ˆkh©ÓjOwè½Üqì ðk&,“æ_?€™ÌþɈc"“n?ö¦ÎÕWˆ“)ž“–Õ‹ÀΦ kÖ投`íZ­·”Ã/ôS –*Í?•µc|ä”åWÅgo¾‘î‘ýÕÊ®²bÁi8hesø¾°Qiú„ɺ4)F¡‘ùv¸Êöš€P Vîå¨ØÀpik‘¸`jïÕðä`À›µÁE«U)oîêµWð jBNf‹ÁÛÀ¸ƒPÉTŒØº¦Òa_$ïé­ ÉuDd†Ø3ŽQö—BZSfyu4 螨xÂ঺áßÑNù<þŸŒ1ØÒâ¡Xák•7ÓI›¹>%üè}Ó +Ø'ÛåT™ÿ)©~$I%Îÿqà’PI#³-M“ÏèVxkÎÂxÅì@Þ¼ÔÛœZßJ6h€ï­âÚ=hAÚ°ßÎÌ:¿#obÖvºÞ0e¾\ýô¡í¡Å0“ÉèõcP¯Bz{Å¢f=ßø¶d1ŠêÝGš'{Ã1×À@dÎD~yXr¾•D®OZ¨EÉ.ÏÜ=ë“(%^¨½/2VÀ¸)¸¾êÒÅÇä(ßðímïºfºRŽ20`Þ‰·TLmô/öäQŽL’Ê‚ zKØMm±Í¥±¥œðüØ +^é¸ÖvA³¼ +oEËþGxªvìíX·IxAÉóW´Ÿ¤ÈúÕ>xÚCª¿ë5у”ôï!w¡Ó^é“ ùØÄ¥Øv”(ôÑ4,-£‚eÂñ¼Ó»£?/R‰ãì—?ŽD³qeqÁ–«³-¡ ¨xEíî $õܘ¢*3o¼á®˜‚YÔ+0{+N.úýµ€Å>ψˆ'= ·ÇIJûà +f]̇C"spn‚° 2‚1 {3ú=EüÚj®ë4õÔZNÊ2 +¯õK~*wº?þô¤èî#–´ †9ª;ô +´A)šPy 7ˆ}Ü^µmuFîœØÇ2úŠ¡”¬°x~m6Âä«4&GÅ?r¥\|6›¨™ÈL)ew¦‘ÜØB+rÔBcçÛž 3…Áv +›—à!´¬:0{uL +âÐAÛj}{q3W^B©'Ý(ýY¥Èhn0ÖWÄRèSá?uùÚÄ ýì—ZÅ°¶•ˆi‘n´ãÕÊ=Ù½¸Ú Ç˜)ë“{µs¯=èm\‚‚•¿ul^GhNÈØ@ûëà(—s x»ú6“Ù±búM‡'*ê¶'ª¦Å6å?äåën¿A ¹{œž°™,»™1ˆ{›Eöˆì.ÖRxmN4ºkßæ(w›¹l30Mùª¿ŸÛæá\EŠ³r +ÿè´ß™õpýíÍtíyÝ ßoí>ù +{§þa_—¯·SöÀÁª +[D™«.–îtÑI˜EÓ½îË ‰]fÅúçVê®Õ“«Þj7Va_aÉÀóõ"-{#íÓíæ§-ú +ö:çbO—Û[ñ)îH­¼ÔAXÚEë»”Äÿ§÷UgŸÔÓ2zO•q槧q°ƒ£Œ"ž …þrIÉ~ÉÜ$§>sæÞíõ£0°Y@¨ùºÈ¨5ú©è·{I½ŽØ>Ìy炲oÐC´ÝìƒA2=ÀBù?Á"Rˆ° +Ág_É,~¶û÷q.E| noÌÏ—T6;i?XŠbÌ4ƒÝô}t÷ežÀþÔÚÿ·LÏ1~ë&“LdZÍ}ô2†Wó›.ë4§Žƒ.î»^%Í*¥Ð³ËDÙ|ïZ?³í„7„ŽW1ð­ * DñDŸ?P_ÿïtÐo¡ÍóKŠ•LŠ'cªŠõ·õÞ Ü߇ ‹mS>Á-ŒØ#|‘Ž ;Îâ[R1åÚ¢‹•`ô +µ@@o¶Înøhð¼.ÔÅVÖÝF+Ëw3ÝŸ—ä)RX#¸¦ù¢9¥sz4ñX‰"²#bâwL{žc†F€N­áj'›ÆŒ QŠÔ‘t¹öù2×TÚn~î.í«ƒ „¿Ë•|ª_Åð߸þkÏ(­Fÿm +nã8*žüY3ù".g~é3SBج!Í—òÍsÞ8¼ +Îã݆ –•i˜¸ÙéD7¹ÉDü»ù®ó#å¯õÛÀoEûMP0Ó0p©nªÌ‹E\ÄÙ®û+Ø7–Ê_ »Q÷zƒRĉ ÏiDoB’œ=|  n$2bVÛ¾WôïµRðuðš^ì¹]´72#†­¿‡ð¬ +x7å·SE»5°£•OžØÐïUÊ:?o­q ³W\þÊñåŸqŠ¦PßÊt<õhãµÂÇÍáR,v¯7‹Eb‚ÅæºZ5=õ>Ûù—™ðÅÖœø£#»hSRA³ì>2ÄÞƒOÕ?l"qÞ(ÑDêO†‡õukõ4_}ÛÇž#© ¥`N¿ˆú0N«‚»_Cå¬ÙB<â=«gëKO1/úa½!í!‡Ô“(`JË­×9.‡ÇR£Ë¨y1j¦ñln—L³÷`úfùÏ€ª‚­Ö~ͪu»ŠJ±jwDÏ19ðÈK^W7Lÿ(µÒ¿kHè8rÅìC/ŒÇ_…«éÑã! ½„†1gÃg` ·Òbñ¶u– ¶ûâVdoT¹_«E$†§† ÑLZCëbêàÎ)§#uþe£èÝàè*<¢mÅ}ÿ}‰‹<Z´·1¬ôø•]7¶—ãnè…ý•æ¿=6‰öëc~#`­oM`¸Iàä’GCŠcÅàIRÂ(f´ 1?â•é>+YKCZ…%ª”s)pÒÏ÷ÞxðöÿHODR×h„Lû‰Œ‡Ûâ©©? +F,êö@Û·šÇÃl-â%xµWàuçÆLÀT— –ˆ7a Í5 +åÑÈþ‰b=âoøÑŽ¸¨cœ‰aþ +ærPYq¶·ÂfŸØ3Ue¦žQ6j’uî‰!µ ‘¦tåYL,#EêþvƒËÖý¸8?€@Ð<éÿm?©ïÄšâ¸ýÓ¿Yî—À7Õ^U0‡ÇñM`¾ÙX,ÙÉöoz¦š ÛN]†¨þÜûCSð¢pbÖËÓ¿Èÿ\ÈÏ{ˆùÅ2,1ߣT&JRïCu& ý/D#°e¾Î“|Ëû}Jû„éâÓ-o›zOÎYT–C]æiÔÇ/úÆêû K^µ¦‡QaÈCi¡{Œ;ᤩ„`§‡í; +@³WCÝË÷k‰2YHà”G$ëJÙÄõÔ“—Oµ>K+ +FÛó. %KÜí¢ÿ×WÚÚéÞWZ •ucQ¢ûÕRŽ¦çT¤1žµ¤ Ý>ïrèƒö›–튌;FÐGÖ§ñ'ý¾:²Å©£dìX‡Ïn|I¼õ]ͨ£xq/ç1‡üºsi¦N$bp–€Òp· 0µt¦_ã *`O§:5¼ ‰Mìžšã}‘|øåZN»UÇ÷Žë!#ß QÒ½C°–žI¿ +¹~æo÷ |žŠâ$K1nÇ|x9œºˆíÕ9¤áò{aPµbK/fmÑ,0?üf9p¨m8-6zUÎÈgê˜.çGd¢è‹€AJç%4 <ÛÐ~¨lÓÖ_2Ëí”Wµjª»dMOÿäŠåSÛme©Â"Ã½ß Ï=¢mª9“ŠcófÉb|…‡?ß å•¶ +YQ@Àƒ]›õ´P2h¥/×Wë‚)XñvÛ¿“Y +ÉüòÙ+À“;nKœß9¸LÁŒ®*«`º-1 €+±Áò—›ï®jÅÐÌÛHòóWt\Œ÷îÆÐòGÀJƒflìå¾ëA™òfôf>a5DC$©6¹âlg¾ý•¶*4ï/¡*˜ã$M૦þmâd$³“¨$0ŒeæÖl7aaÜü®ˆ (îw3ˆ\é™\XžãAÈ¿›4›`Ì]¯í–|“v†ãƒÚ21¿) žý…Ÿd½6.7FºkCæ/à1ØJ5d›æeœGñ‰úƒq‚®–¹€áv‚TßÀßžNÇÏè|@\½%ƆeC_ì>Ã$Xõ8cBò¸'f{ ¥ŸnŸQ²ZNÆr R³nŸ¦}R½1ÞBz æé™_ÐœŒ×šçÂç-ÓE£õkjæÏëÜmnk"’×5§jö/2Œ~¬ãb‹õE®…9óˆ#ÁF–mYÛ©ç~|NDp­—TT6Z%ñûÐH cüÅtjªòz3ŸœÚ\ *”³/0º¥9R[›Æ¢3ÃÕ/àcé4ÙÖªí‘KÞü¯^³ á3bï%B@$ªMd¶ì$8(ës“‹PÊWc¦Yÿð:2•ÑN&òqÍÜ4˜õ$¡ +¨VYv³ÂÆH¶¹S ‚Gr +?«©6Éä>âs{ð&·®©@ Xz äû²#äxHH+D%ŒvZ~WO?V3Å3N F…Óœ9Р +[" "»µrm¬eœˆ—ë˜Ë{ØÔþ3L7çgœÇ³—¼ëR`QK8±\øðîÚ•€f0hõ ± €<®ÿ8¡… yƒØÆ +9ˆË\¼PßùìD†¹^­Ç1LÞ1Ì„\…$°C¾FbïólMQz.ºËâ¡ðIÛ¯°8¸fv «-ÙÎà%Úž¥OÓBTV’H©ÛY+ÀpJ}S +ßɲmp¾J3†¨ÉY…ýa¢s ݟµ*SQYLºBP_[‚HWBÄQgfæ `ð¾~¨Žì[xÌÛ/ypã +‘v i ¸>›zxÊØÇåuÐËp^ľ@™#uwÐ<4ãb,m*}ªp­Â…N‘{»fô E€ˆ@fN àg¡.`d"ŵƒ¨¬r âåØsrº45ŒS-ÃUÉ_xšàÿ`ÌF#ßå¿{ÎuŠýÉÆDÌ[ðK»íf4¯à²ÂIéIïóº‡xzɯrøfÄéÊb[³Bkˆ£9¤k”¾lª¢ Áô8úU‹¾÷/àW:—šþ‹ÕZ9ºµÿÇä4'`–´†3£ˆ‡íTð+–)0ÓÐê¼ç¿„ +z_,Å{áuC-óÈù4i ü¾¶7Ó˜,g¦_H”§‹ÇÜå9gQrHAÝ8]E6AúÅÁQ¼°sÿif½“*×l©ôI$LIï¯`@ ?d/]åJèTºàg¦óZÛÙY3¹’´Þ.S^+õ +¢ü}KM*×¢úŒGt836ß@Ý<§1ãø®.bJÝX†™`y<®ËŸ«D®t2ïÿ¹XJ“QÜhiËûí1kÆîµÄpŒ Q²ŒTµS¢Óž´ú;çò9Óv¶˜_áýÕè}$qﱡÓ¡L—TÔ@ç-ëpÒ˧а#‚¶ ÚקìÕ—ªØ‡®h»íÌgà@6“vŠw1AmlGh?º®ª›z6º„8N`@ôèUä»X×´>êPn¿Ã¹À÷ôø.›ò}­âùU¹ÐÕoLR° ˜·šWw×þ«…})[N[?—²ƒ¦ô6× ÖÖ$öT˜œ¥•«ÅÈeǵþÍY ÛŸè¹Ãb>ubi&›[©¸•£*Bî^=bˆ0×´úøEq[·Û…Ü㪂uËZrÙŸìªç;†càìm;m`Ò6Áh~ßn·“GžX¾c¥ûsÚçN=íúêq¨²´v{ÇYŠ®+K‚Ö¾Ñ*cbž>˜ñ扶½ÑÆá{ŒÊÀ$y\›k4ïŽà+U7Šé é2|X¸;6y”v+Ì#zcåâì)h´C]z2*¬SI¬ÁˆßA­¸]ÿ„²Ö!ÂÝÀ=[·Xÿ:¬eä¨ÓÃØ⬇Öñnes Å¸S"3hnhP}±ßƒhå7éÚðöK«² :BŒÜ‘xygÞåòä’(“Î2V}žþă—4ÒTó¼nÖ¦y-„v†ÒBö•ÚRéæŒB8zþ¶ãÁë¢òZÀ-)š¶û’‹‡>£Ó›Ò¸¡°xpã¥"½ëóË¢Q‚ãù“ÿ²iýâ&ˆëóªÅ3Yt÷ä +ó…͉EÍWÓ6‹w-ùƒ"¼;º ‹³D!£I‰dh±:|¿E D2¤SòþÓf"•Á¯[윌åø WMÝó@)xóß<ý[åÞýdj-ØÒ3ø„ÉÇ> +ÆÓðk}¯ ‹T‰°Èòiì䪻ñJâºÏ +Æ÷ªç¡³†ñà%<[â«×{ i*y2ü^.ËЀgìÍ«bêÔ‹U:‡^I£í†UCðxmT£?—F,Ùá=¹¿[0ì O•è”R=ìÝwÖô|¥í8O¼<ßÔýbÉÂ%âÏ$c 6aÛ†|ê¨Á™çöCŸ—¢©Ðk¶£§v)«î×°Q¿²Lð,1¿á:lÔæ”F¨9p´™`ºªF/DV׃ø`ÕŽBšÖ,Xyáà 4¦«àŽH//=àg8¬%ÀZ”\ú,j£6‹ÓY,b‡¢ápTÙ`K#{_2®¯$€˜ÆÎÔèèaÁƒVUsc2ûfe1 ~PêsÐϬ_ç–' +Uò,yÁ°¥VÁz½dó¡ŸCÙéÇæXµ(Y»`wç±%ŽoìPr‹A ktˆ›n,D?L'X„Ý#U¤Bô—ä† ÖΡ +¡ÐÜÔªÈÅä‚l‚-ž¿,xu+…¤ù¢÷æªk;ßïøHÚø;w\1šm¹¬m†Di|{5·-ú®‚ï»=i"R#{P !%U¶§±™j=«F2æ.¬c/‡Qâƒbø ‡á¼M É“«àÊ.sФxN8àtÊbøvVþ0¥ÖÁ2+à¨Ø€7k?‡šuË©™x›²Þaz*iD DXû{i}t½3F§i +OΣ§_ØíöûÖº/ä! endstream endobj -1887 0 obj +1984 0 obj << -/Length1 1413 -/Length2 6524 +/Length1 2131 +/Length2 14577 /Length3 0 -/Length 7937 +/Length 16708 >> stream -%!PS-AdobeFont-1.0: CMMI8 003.002 -%%Title: CMMI8 +%!PS-AdobeFont-1.0: CMR8 003.002 +%%Title: CMR8 %Version: 003.002 %%CreationDate: Mon Jul 13 16:17:00 2009 %%Creator: David M. Jones %Copyright: Copyright (c) 1997, 2009 American Mathematical Society -%Copyright: (), with Reserved Font Name CMMI8. +%Copyright: (), with Reserved Font Name CMR8. % This Font Software is licensed under the SIL Open Font License, Version 1.1. % This license is in the accompanying file OFL.txt, and is also % available with a FAQ at: http://scripts.sil.org/OFL. %%EndComments -FontDirectory/CMMI8 known{/CMMI8 findfont dup/UniqueID known{dup -/UniqueID get 5087383 eq exch/FontType get 1 eq and}{pop false}ifelse +FontDirectory/CMR8 known{/CMR8 findfont dup/UniqueID known{dup +/UniqueID get 5000791 eq exch/FontType get 1 eq and}{pop false}ifelse {save true}{false}ifelse}{false}ifelse 11 dict begin /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0 ]readonly def -/FontName /ZOAUSA+CMMI8 def -/FontBBox {-24 -250 1110 750 }readonly def +/FontName /HFTEUS+CMR8 def +/FontBBox {-36 -250 1070 750 }readonly def /PaintType 0 def -/FontInfo 10 dict dup begin +/FontInfo 9 dict dup begin /version (003.002) readonly def -/Notice (Copyright \050c\051 1997, 2009 American Mathematical Society \050\051, with Reserved Font Name CMMI8.) readonly def -/FullName (CMMI8) readonly def +/Notice (Copyright \050c\051 1997, 2009 American Mathematical Society \050\051, with Reserved Font Name CMR8.) readonly def +/FullName (CMR8) readonly def /FamilyName (Computer Modern) readonly def /Weight (Medium) readonly def -/ItalicAngle -14.04 def +/ItalicAngle 0 def /isFixedPitch false def /UnderlinePosition -100 def /UnderlineThickness 50 def -/ascent 750 def end readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for -dup 67 /C put -dup 70 /F put +dup 66 /B put dup 71 /G put +dup 73 /I put +dup 76 /L put +dup 78 /N put +dup 79 /O put +dup 80 /P put +dup 84 /T put +dup 88 /X put +dup 97 /a put +dup 98 /b put +dup 99 /c put +dup 58 /colon put +dup 44 /comma put +dup 100 /d put +dup 101 /e put +dup 56 /eight put +dup 102 /f put +dup 53 /five put +dup 52 /four put +dup 103 /g put +dup 104 /h put +dup 45 /hyphen put +dup 105 /i put +dup 107 /k put +dup 108 /l put +dup 109 /m put +dup 110 /n put +dup 57 /nine put +dup 111 /o put +dup 49 /one put +dup 112 /p put +dup 40 /parenleft put +dup 41 /parenright put +dup 46 /period put +dup 113 /q put +dup 114 /r put +dup 115 /s put +dup 55 /seven put +dup 54 /six put +dup 47 /slash put +dup 116 /t put +dup 51 /three put +dup 50 /two put +dup 117 /u put +dup 118 /v put +dup 119 /w put +dup 120 /x put +dup 121 /y put +dup 48 /zero put readonly def currentdict end currentfile eexec -ÙÖoc;„j²„¼ø°Aw-åÎ<ï˜øX2-Τ^tÅEÒ_á’SœÚKªFÙÄ1F^j¿NBqøžÞ×ó{ä³´y4ö-FègbÖÿöÔ“{÷"Ö¸¡W–B:§rÅP‹À ?dgÅS%|'²ÃØ“w&¨F7J…¼N¾À°¨œL9VìâRt¹bÈTå5ô'ŸâmƒãŒ\‰—Nš"K<¾ù -’w¯àÇÊÈÜÄÁ‹Jv‚åð$†tE;ÈD4¯VÜ¢üŸ§vëš{bGCSM¡!R -ÈC¢”¹ï\ü#Xjœ‰h“ -ë½¢šç¥ho€—ù35ƒ8—ŸÔ"‡gŠ{d<ÝFR€¾¹×‡ÊÒ÷ÙàÊäl Àл(œ#|h¬¨ò~ËAS‹j˜®cZ-.W eÖ¡Ä*wc0 ÷¹G1—N×…è‰sˆ'î&X8ó»ôüÛ°²ö3º¡˜—¸/¿¿`±C37ôVl"Ê€ÚéöùbªÕNeP@K»VcžR„8Dh89ªëûõ¢ pzã šLï›F]Õ䘼¼m[Yüö¡èùÕ´]Ô÷ óöŠ_òhV`×I1íJöäýÍÙª¦*<ÄpŸ{v?÷ \»G¿—]øééœ>D tÍ U¦#þï8̓,®Úûe½¢èG- )Ö1Cÿ4#è9âÕ¶B~—ª”èD‹Ibþõ_ 6,Ž=;Ü‹o,ÐNõIMœj_üvVoå%Èh¡§ÈQi ¹›5X<Þƪ¬l“0šLƒ„Ä ËöºÞï’âc0+$ÊcŸ:íÕ4#Ì3R+h~y35±®ýâ42K„©¶ƒ´ömåêÝWz.¢gå!jA¡|ÓÏvŽ9—eqöËÝÆyF[qÂÙÆ—lj… -éö姓œæ)jÒ™¦s>l§°¨–2²ªgçјpTæ¿@M/{[»bîK1NWžý½ú^×t€D§É$Ûò;áÄŒ,,ý…­ê¶BYQ53˜}ÀQ7¾sR »Ë|4aĹ‹û¯ˆ=8ש1• Yï‚´ 'ò;lÖ3#pK‰›Ñdo‰ 2{ÁPÆ?ÖÜkùÊýµKuÄU%Ú¨»5@_ÏBa˜*ïÔ{U’¼›ƒ-ǸÝG¢†«1ÁL‰5UÀF0éûÒ„>êMR ×Ð1)dqž÷a,<ׂR–•ÒÂB§YÙ_¡²– ·¹Ôø1;¢V©ÉWú*]X©?û ?÷"KZ¸ˆƒ†j@Q8'ƒeÞ»tâX»µè¸<ÜØùºë•kæ{öÉs-ZŸ¡mqq…rÄImÝÔqt/9aŸ†N‹gcZïÔF‡f®D|l¨êLYùÁBj÷g­ú…°›§}`¯ð‚㜰h$šæ$šTHÅ-'<Ãg_FXz:mä÷Ì÷û¿#[:·~ -=\¨EöäõÓ«bÇëÙªáwÝ´Žyó¡ý%Й!{fª~(wU}MÆ„6üB™0Ú¢íëÅÞ°&¢oËM°B0Ew¬xHŽ_%/?·ÖËc5ÉxòJúÑÍIÐTý;~”;&\ú‘( MzÜkS(ˆù¸ŠJ£Ñ1^Ujäbèeƒ62‚+¯:?¸ó ¯È3&ÿä-ðE½Xò/[¼ý£vÁ›z·@Kñ¾Œf#ê»ýôÜ+sF;Ì}0¨KQŸ¯\¿Ü¢Zœ!ÌC~è4%÷€ÛßÿàFÿûG­ÑNü2êUŠ’9‚IÔBç€56ò#ãû¬Þ#ZÞ5&"'†öÚ¯}…Ág¬[çç~á³»âH)}íSÓƒÖííÔy*¢ÆL <ÁSÉÐÈ|)`€ÅlGáXØùÉä²öò´Ÿ.}Á/{]¤Öl®¶ ѧ"$QvEÒÓV½àÆYŸ@ËíÂç}+%9ùÓýU0òÆßÞÿMc ÃâÄ»„½1^ý¯ ×Ôd«Y|'ƒ“ùƒ«<üôYŸEO¤‹‘ö‘RàÀuV×x#òœ>ym‹ºÖ›&àõxºŸï‹”œôy †kù¶¾ÿÔkxHÒ73_‹ë؉յ^0¡Z‚SÏ%Ý–Ú«=—jx5XWYDœ¢è!ˆõ¸<(ùeÖhÃ6‰£µh· ¶×B¶û@‡ æ2OêÉR(!éK*°Ü¯Žý˜¸”tÃÊ^çØñí";!0*Ê -tG³û -¾ÿl¯8JY|’Ú -º«5K9‹„ïÕÜñòmœYÓ©ÇÌn FÈ÷>-?)¶"ȧ·9V”ÇÓ*¦wj ÔËgøËÚ•–ŒoœLåÁ%Y~ZMËýÁ : ¥ž´¸Ì »ÆçÀ …Ïð÷½¡Œžè¼!P!¾Ïl10{FÁtê'Xꤞ‘»çKÄEM×8ÒáåtõÖˈ(üŸQ3kZ¨ ˜ˆÞ›ê¡4²ŸÐi_9Ï&y£ˆsÊlAÔÊ—3*ˆâ@xk,@|xÀäÜ/ „ÙÑÓÊ–×)OÖc©*ûDeE¥| fü° Gv6\„‡ÐÁU8ë"½ÄÐm1õaè0ýhÛeA·fCÈÕ+œï¢5àìËÇ5 oéÃN¾–wÍ^‹kœ¼:ßG û\û0a#ž ˆ¿Šî}]xü‚vRf·)t££sLÎè¤ûÝCs_W@#Ä赡7iO–¾¿ÊX§Ùà”t&{€biÒ¢»»YnVÁq¸‚Ì à!Xƒ[oíÍ£wü_î "«@àäÑ]Ñ J4 ‡êÒrSE±Í +®,µ0–Í9¬¦–DWþF²"†‡CÿÍ@iÜæ[Ô— @í~8”öxtvžª.ŠfU³$ ^xÄ{mé³`†ŽŠú#èZÛå,ÍñýQûþR² ­ÏÚ¶Æ ‰€ˆ® %„SÈcí0á»G¢¢æ.ÚÓæ;Û=÷î”ê°8ösy뿶'óZ]Ax³ÊwZÖêjGµžOIƆ7Š¦,Ì5åoæö©ß¿±Â<Òk@¦%sI\``AI±F-•Hëãb`¬áën€Ñú80¾¥ñ%ÛQ¹^p›ÏÆÄu‚s]”³S4›/³Ùu¿Cé³ó4+‹ŒSZ€qðp`Ñ®£ðŠlD®à”Ò™04-RwÜ$0•:ýØêÂÒþ#ÏzðÁŠ,GLÍLwüÒ¡šK^ÖNÐŽÿªbñ•)à¿èQ˜o•Ê5²ôãU7‚æãÿˈ*ÏAG¨4Â1rmŽéÿ íÍœ=`ÐÛƒI<ó*V­=(Ë8¢ø#+ø+åy7é?n?Ð%DA€s¥G­Þ˜;3žáþ5^*jÈœHëùUŠ1nÅ/˜°w³`S¶›’gª@a¬'sÒHv¼x EæüÚ^)•ºp‚ÒÓóœð¨)$ú—³ÅéZv¡FBºLG—8v2«¿#a5X -çÏÇ4Ú„žô9ødNÉ@3›\9Wtžš¯ÖTL÷ð%:íäқأÐÔX9õ-]{&_ùæ1b7}z&†«#4]fÉ5(°l<© Í -ÀD&-]° Ó;±‘OŘR6ò¾“Ïô—êBo†;£’˜ ƒ–Ž%.a4/»Á-[zòp_d—³âSÇä2åßka½PŽo)za}†>Ú焘kGïØ~D˜5¿ñ5Ôo>@]AI¾m_Ò¶“¬ ïÄªJ¤°‚oìŠ^É’m·Ï†o‹¾‹#6PUA"XÙ꛸ÌûˆÜ/B^ùÁ(Œ•@n$#ŠÒïHÁÞÝ褔0ã´»fÁÖr,ÖädáòÌÜ"±„ëïq½ø+˜sü? n¤¨½~ŒÈùD’˜LŒ¯ò z’CÙ ­œ‹ûâ’ŽŒy¨CEËþñJߢØÐx«Ò¯šJs÷›!§òèü(ЕԘ>âÚgs]÷Î8`;›Ô­V=¸Ýhk²…“TJøöXM*•8Ì^Ùzëce™²Ñ…E)ªR• ¿!—6Åw¶ñ¡…âñ›Ô3–½''6"sɾméƒI`=0c%gÐxúƒfð‘2(g1íþæQ&#þšpˆOŒ¶óvY@ HÿÔb‘ûÕˆG[÷ï$Ñš\L5Ê¢–ÎúÚûÕˆ -f¥/Â6Oööy”‘щƒTãÌ9˜|û]OÖÇ`”j­éÙ³1+ˆ‡šWƒ'd¦NšãÙÃ(Œ§lßÅ1ª®BÉÚD^]᣼zò+ÁL4°1—†¢Q™Uq -ŒªõGš“B¼ÿ Ü“VA'¡îSõ§üqÓ• jvåøÁƒ)Ž³4î°ñÓЋ¼ e|ÕiÅ¿l`uƒ/‹æ”o»u>_سT)^SÑ-…nw}ý, ˆZN¸EÐCô¯÷ Y ReµzÂÔöð3¼øs¶p€ÐúÅ$ îý2…ÍRH?. ¡p…¦Ÿ#Á+N—úÝe>Pò£rÛóIÈ%yëù@©n-«°¥®ÄâS4±Ù¶Ô{·ÎÖ¥Yð[ÃOîh„¥E©ßiŒŸé\*Bx‰CÖЙ#©Ì(~Ò#=ÆÁÏ‘ õ“ÃÆX\§ÈÖyàQζ5éìª_ýp&R5‰SJÖ^ šÎäÔ·rô•X¿æu׊¢ŽÞ œ’ã¢)žÆ”1¬,B§7îG„±OÕDÇE åÎk¾ÎË\³ÌO…ȧòYŒ@øhn˜•:*ñ§æ´Š@Q?š•ƒµPED€Só\¯‹ú©ê Ýؠ䟥°„¯C³úó…óMhQQ“ŸÒxMÏ—™DvØ]錻 ×öú®Ò¦«áJª*¹Tâ¢#Ü"óÒhÛ…×ñiW_5Ê™•aKÍT¨ªó$×#‡‡¹.êî Æ—ð Yamç€Ã=ÏfòWâ#ÄétÆj&zl…IàX@t›Å߸ඔ°*úïî½'>`rÂ/XšµV(ísoª…G„ÂR¥…ñÀÕe'´Ââú ¤,ž˜q6Že: 5làûþÑPî½ÂÌ&•7‰ù/®œ²šöì -E“x*Y›÷ï¨$ØåÂÅݦÀáÓ¢¦ ížóï1”5ÿÈœ\>¦Óöh°#æ1ÑFÌ\ž`A­kÇS?j¸Hâ–Ø:+S D·:]+H¥TÅ5‹f‘\V:\Êg­õ0Èﮩ⠔IÒ²t} -ôoDÃkòsÿ>+ÔÉÄDØý8Üú5ß}•láŒí‚S,@ï¢\.ÁöX ÞÝÈê:éÏ;ˆš¶Í Þ}# z—;d?=èérXB›¢ÆPuŸcjbß=ÆäÚ$˜ E,cŠš2{Æ«ëÇ-æ·1,ÒÌtœUj¬34sí¯„ 1à€1ÛhmQ­Úøñ4¿Å¨ŠSÄxLÀÐL‹I‡Q–ÈMýšh„Æ­¬Õ¨‘—XTœ†3(3®o«×†Š0É£“ À¤òº¥‰ÚY±'=—¢‘g²‡O.*õ¨„V˼ü5Ÿ$àõÿ´Íú•Z[ÑÅ‚s`\T¸¡xyÖx{baã-:'c˜p{m¢å.z~4âÆ_Ÿ2ŽŒôa½œ¹#ÿ²ä[¶é@±?cÖséƒ 9A‚s‹·Óɦk Ž*çú -¤0Ɔ>C§È’¬hå¦ÚÕ®Ô)n‚Îb¢ÐF6&þ—tR† +±ï¾ƒ»ÔØúe„‹ylµyQ( ³Èã)©6¤ð -‚üܾ³¡SÀãý³)q‚|/†`ó>èœß÷ -±!ÏÉ[+ÑAz¸cÂa_š—t!ý4©§Ût%œzv@’6‹ná+•-ga”,ð_ ŒzkÊ :×¹¾ó»EÿNyX/ë5 }“nœµŒ¾+,´Y– ÁáÝTrÛ“7—hޛȕ4°Z†õBœ3„¹$çñM'Š¢Q6AÛuŠÂ«T.œCá ,ÐyP?æ%›ÂnÀœIÜcñeõOWUxŠ …9Xœ€Î–  Âü7aªJnä»]øôœÜµkÉÝÙ‚e1Õóóð«[Äå+JIsXñW¹Â°¯?m‰T ™_ôàð×\ «Q‰…á.²(®úÌÅCa1¯¾e2XrÖ¸õ—Ø88}~Ÿ~ÆàH¹Qüñ¹ $»\w;?°§4â¡Bþ‘žû?³ûR±B6!Y6ãnýŒ9MŽç¼ð˜¤ÒWÑ\6Üâ}©Ë–kxwn—ëEÀÁ¼ˆÃöB êÉ+õ!î±Òëâ_>;Ú½(°Uå«Î Áfu—݉#nÇÅÎWòÚv)…!dTˆÍ@Aæ!ò3xmü×Å(ÊÑ0¦–,ø§ä^>¾T¸mqŠO^‘“-{íâí7)ò0µÙšcé2 -B9V{‚7-cOgm6×=Uÿqí¼Zþ¤ÕUkew·ƒƒ>øùx^[.ZÜGçýPËn!‹¦–'¥FÛ÷þUÏ-]1‘fj 6OŸóR®fäWg$·œˆr›ädVÕ+ø&K7I¹R„Í°d «à©!ðH„Qéêð: øÎYGdsª† ‰Óz_”üå| +ÙÖoc;„j²„¼ø°Aw-åÎ=Ó%åW˜)-{Ùr½uú•)¯œ‚ßröA•ÉÂÜãE(õ@Úý{ë¹´‡º“Q»û|ü_‘RÑå» +ØÐÆϤëA³Å -T@æ|ýq|Vk¹¿J% qu8P¢øwÄGx³ÅªÛ̆ÖåQæ¯6K üªÒ-UŒ\§Ô%¡bÕ"t-*ðxÔõöÓŸÏÿJ‘+ +}ì3¥{Zà2ŽùÕzݬT2sÀ$ZõÌÑ&{Bè–J×{¨¥ßrÌ—Õ½Íám”1lè(zåNRøréò^&%Ï:(/I‹ŒßºH’m§!’4ðÜJßxIò7¹bs,O’iÿOl7²_Äógѳ˜½s6;æ•ÂP—€—´¸­}tx´,ÀIvJŠ3ÄYžìÊ«]ò +û=Üí~ª¶™çHârl;H :Ì(x‘P/PÉû”ÿL™òÇÍSøI'sbÞ»£×~—|P¿p•NcO¸®­Aͧõõ±B°VÆãÃ")Th‘¦Ï^Cx–(Rãy•,Às)+Hß‹;ãmÂ*?ç>Hœ½"‡Ì%N»;8'bóÚGZÕÀ“bÇdà ^iì$­¸ðºôiaeö”s ·ÄÞáƒF)l:}ÿ¯3äX +‘ Mvø¨%GNð¾×Å,Ò¦½/~`Љ÷"›ìJO238Úi Œ-]IG‚cä½f7äÔ€¦Ìò2×Í‘Ú£}T þçÆ ©Ã@ó &xß³8h +„Ù{ga´5ßL€ÇÕw'~=O¹ôLcgøPâ±êv‘9±FË›zú%‚ªø„e|ýˆO—/Ób‡¾ØûêêV «K â’^¹¸Ä†8Ô‡»<)M­À…Œ†ã<mߨ;Ìç–‘’­}Od1]ZSÎçmPƒfÍ4°Ôº)˜}M‰›P¦Éèg2вl1gÌâFõÎéšïÞ¢p —V·}òŒ{¶§<[5iJOYª>ÍÕ5XŠZ¾€$ìöÞ15’ï7à~¹èZž©Ú•Ïí¦¤-U…DÁÑm?3δ쩄'ìùˆ¾£¹â¨VÏ+RÙGýpžyDHÏvx{p€cL¢÷1w¼è¾ÝÒĉ ¸FéMNg(SŠâ ‡?Ô)ìº?;¼@MÌ£íBN߬G¾XõDiêo n P®ÙS¼ÂSXÛD[këöŒgÇ[îtœÁÃó±U^?‘ðÊÉÑf2Š¸žËñ7÷ö‰#€xíUèýmºŽ½õ`j¥cÉk´$u:¸RªÙ…ŠiEçUº»Õ¡ÎŸ<ì¼â¶Õ.^Y&±˜Û†oÞ9s>¤ ùËû¾‘ºå +¯8j¾zIÓÛéC—%o»Óü«ŽšOn8òRg#–;D¼–ËžÐ2‘(J+ƒËó|ÙÑÁGœ“§èÕíœëàk9Ú²Öƒóey¢ý¨/È9+,-b3w¹9Wø7}×êÛ íëzÕ᣹¸¥þÍÓ©UyýTpúÀt×û¸Ž‰ñ_ü•24¨ça6Òs¨’‡ç!ÔO› #Ìi׌$Þ³\àAópr$w5”¨\Ëplˆ ˆYn1u¤pd[îËílkÁ!lRìävò€‹4Œ_x…¼è_$V[ïû“HZýž÷K¯ûr\wõ¡¼’u%î_²šF ^ º=£ä‘è•ÔȆC†f½˜%-×Û·¿³R>¼âŠQÎt@ôËÇÄ<¹‡Cr´üàîz£æä“DÑ…˜(öe}¯ê:EÏ?E€…¾õg =óÁÚèbö0"…аqTO]L\€¾ +AÌ›øѬÒÄMÍ“õMŽ•…o«ŸxLº¾‹‰Ò~uÉ]ƒ»_ÑÑÚç 9Ð.ɪ@Ó·š‹Ç/oøÆžI$[¢ÜY,H†Š¥¾ÅIÚ>2šÙ )ë üº©®¿¥´Å~z‹xŒ6¿¦m“…XöFVŠ”öCEOxJ†ú +jFm¦„h)Xɽ¡ÕЇ‹8¶ƒÇ‹Úé–{ãuà ‹…c£*å;¨Ëe?ÚbåßÇlV¬þ|÷Î@¤ÄÑ-¢jëAfâ9µ¾Vübô¡³ 8TûÛd²j4!éV¼º˜äe²õrŠZvÔZ,eV¦Ò†?0 +ZÝíWÅG¤ùvÿÛl´~éîÆÙˆ°[5rL‡}qTðvmjCÖå«bMÄ:gžáíÁÇö ÄVOëiÎæç“Úª­#|Ñym÷-4Í-,Ëñœ f…FöxWú½«½µps¸X!6q-„M'îý¡ÅÚß"1ÇÆ,óºsxɵIS£—›ÄœøVÿ"^íj7å3œEÊvV™™(¢T^îKö-¢k?ŒñÉïšÓ’.á;d{)ÕápBh+4¬èuU *²«èá:úm“¥;<%s‚±!- +¥âÉ8X›Í+p&4öj™ä¶öO^¼1±¥TpvD…^—ÄÄŒšÛ ôx$˜µí+flôäx’‘¡æ7Á¯=â1S6>ðrúM‡z 4àß0]ÿ —£ÍX™…C¦ÞËÜêÁ 2ƺ_sÿ5uD¬^ú'?ãß ýjeqøèÁúõ§ °¼(½ùÓ“ÙQEuf%xÂè(m"B (brqYqu]ΫHgÇÙĤp7 “¢­:±NÙQAd¼í†ÕÕY•ñïQk(|ÐÂ_÷S£/ÈË÷8a“VùÈ%'oÚv"U2Ž!¬ì§kh5Q?ó¡ª)投g&J¡$ÔË,àÇÛjS]&Ê1ìFqÐÌ*Èê*ÛÉXš*Žiªl‡òSfN”—{qZ ¯'@Çàdønl¸{ý"KÄDô¢ÿÅš Ö4tÛTY9šÿX}4heQ lÁ_7@”ZUÄ©¾/¥Acº*ЩAÁ\4;NÓ{´4ÿí¡ü5õ¬äÀL¯ÁÙ=!V5. ¾}rKáû¥q‚äS™*'Rú=ž€:¾ÉtF_}OV-î€ÙýšF‘=ñâŽ;*ZŸ»„ÞÁ ŠGoŒe÷ +EŽ×D,A$ì Ïó˜Ôùêí…C¦ÃÅâÂÚƒI€9Ü: ¯Fω·/%`,m«³ižìæSàâs1—M>lóÍÝæ£úZâÕŸì_tJ«qÇ™ÁJôž¡”kuÈBy²#+ª°©1HìLaëbÊLŽ ”剙šñƒõåÆ Wb°])Q×jfnËphåt­™;Î\ÜŒö8:ê,{ˆ²²=ýJEƒ2[W®Dº{DÅ7Ü»9Áö'J€Þž÷Ðåû#1ôÏ1j—:Ñn+õG¢,×ÅÏ,•ålsþ3¼Ý‚FIÿTHàH…`’öšvœ¾•ë©å=%Ó.aæyK†‰­yMBùn!½Sukyv"5±ÛDz +Ö§Ü'4É÷ß΄Q| &Ö¨ºÈÀÓ·ºRc3k&Ó¼ÙJ   4mÎ ó[ØÀ[“Èh|Î]œ5äßÌ +9J¶È¹ÈõÕÖÓ +0­ÕãŸgòäÁ_ +wná¿{é¼QA·n§©¹Gg“IH–Œ]E ù°ó‘oÅVÿ·å€¼4:(‡Ë\ãT¤Ys<¿³ ¸à–ÃN¹?à +MŸÈ í é'°Ê_¶-šT&mC\vpáøª5¶¯™_ÖI ÿ.uANËÂ4®Ñt@üè¥uš¢æ`YßÔÈ»ÊAÿá€ón£Äqá¬À®GÌï¤7Ï,¬m²ãE§ê¸69>•Óü¨7H†A—Õ½eÑô­{ãЮ ?VÓËN£,pPöT“ÞlΟ fgž;Iþ½ßÁ•?¢"™ÛBÓÖÓDyв LìM> +EÝ,Å4c¦ÖÁ|é +}‘ˆå=úç°¶ÍxbKî2üû^åî^W÷UAV7®xQ~e#îEJÌf/5R2§ j›ÞÇ´Ôn@FÔšI&d|º•+.á;b^†ÉºN¨(S ÚkõšæØ<׊„ƒ ¬€ºš ¬qÑ/·’Þ3?×Æš~¿Ö¤s°ÄS}Vœ7+’ûúóvÏ8ä‡ÝkáÜ©ñ!È¿ŸÊí}x =7Zò}ƒÇœ´éž]c–¦ë!Öj~ª?}&bX¤˜¸q×iE‹3x‘mýÎùûZ6Õ¦Eô7¢³Cå+:K‘Ôꉓ±áùÝ~FdNgª1Gκæ%ö’Íר”µìÛÏÞäÅÛƒ1yâ³Þ嫈Ìw½Clí檬±žÌq1FÁQf 1àÅ»‹•9\•ïê@¼›çÚå(ň¶^ŒšEгý%¸±( fJz‰Ìã^ ›´'•³²ð· R ´2͆a„¼ǃ¢îYÖ†Z¸¡ôýZƒÓÑg…dà U9Ó/ã|¡ôÓVϽT_Ý&$_›¬…=1™ûzÎG×GáxÇè /‰"²¶¦¯F÷õo¨³<,*‘¯ØöÙ#×Yño×:ßa&jCÝȯťuíõK½`ª°ËuÂŽÚÑ /öœuúwaEtž¼ #l!€}‚ó« áýž¹Œü…j؇†œˆ§'*eRhå-.h¨;hM¥oÆجc¯ÏöÅxú(ðiÀŠw ¸ùN̸uâ•Ø öTîõ=¨º6^ V™˜þ¤$²Œð[’fäÎíÖì–ú@[sÖk÷4kJ»ð@/®SOªÏnYJ\"mÈåîz{1¡³”µþœå*ˆJüKîÙ’|(¾¢n¾wCÖ¸ È4É&j_¾½G¬Þ.¯YŽ­üb[ð¹Jæ8§•ð7*"&!€Îάø&$ñ{Gùî¦?`l½ŸÃª)ƒŒ;&|v†MºøÀÞ\öžSSE£Loðkè.ýˆÄÑNž&@`ÒSšŒ9õe£Ëõ´–ñ°†ÈÑÏ‹—¶•cœ›Ýi½ž Çn ôŠ¾¾½î"*õþ¨z(N(žÎÃûª™`îš(»ªÒj–>CŠ—1*CÉš¨ßIbtûr‡jc—Wq¾÷t€?[Ii5ûáþ‡Œ6ß«AÚšIJ‹'{-Al²$h;ïm#­Q¸5dd0u3+ªÖCcªõZÓÑ‹Ô|1¿BÄ];æ¶á  Tˆ°ºÑ}¾‹Ý¼êó{*ôŸ¶!O^É5é ;¦À6ßÆÔÄIË‘Œ™m-Æx@óÓÛÊsÒ[¿2¼‰ ŒNCÙb–˜+£iæ»›¢+ÉŒø«Únu}àŸŒ®ðŒîjl¼””Dµ=É_ž}‰Ù¹Ü*1Š3?â9©Ér5Òð¯“ä\Ê¥±†ÈB¢ÿ‰ß24É"ïF#¤ÞKœ­LÿE*Bém©Üw ¢Ýc,É°h,Ÿ<#f»x%þ+ßL54 •yûé¿R#Ž—óSs¸Ž…+Ðôjª%½ÆÈáÖû×èÃrqåŸJ°¿²‚°ÁäÊ÷å÷Hì—®`ÜS|•õ'a!7[öÖZ&€.BvK9ƒ4{~ͯ'E”läö¦ßÝùB9 6gŠnS&}íÌFL›5r1}Xè»?;ÏHǯßPO*E4%_ÓÍQy‰. +1½ƒðÊ}Þõ;ÍÎ\S˜lKE@¬Ê%ŤQ"ÔäÞóí%VD󩉬‹Žº›†Òæ¹yí!ˆ;0§j`.©·•ê(ù9²Üâüd !§”0;–/[Ä‹ó>#qoâdŽ]O>À=z-)«ÿ«¶dø¦gWl|n€LÕ² ñãFEHÒ›\~l'ÿÒ„’˹áñïÎåuûã6U©e¦ÅüîG®B¾n·ÂKM̉üOûŒšeôüÝž€Ó‘ëÃV?hoR5y„?Ý™v Ä¸Zþ@'´î+Àmy˜5ä@:pžÒÅðéq»U`yÍ +2à¡þ~&@Í´Nt;ƒŒ þø=ΰ ðÚõoëÁ¿Y+ªKÆÛ›ŠFÃÅt…zÄ/·zRk€ù]z,žlÃ93Â&´ ^Ž «ÿyûÄ&¸¬\ +¡‡´v+£vXêºëuC2úI® ì~Ÿôgƒ™’s=ø"(påQ¼§ö "RQÀé§Sq1x‰Ì¦,çé1fɈ[G‚¾]x&Í•kŸ˜º5Eü¨' üzŽFm—ú™]­‰ðÜmTÃ{Ï‚h™1ÄZŠ‘˜(ƯývœtOÀ:¡kТ›4oðÁPÿ~Ô¢ «è±Ÿl;â‹÷ݳÝþË1È`³ôyI@šŠŽ!fð·L†ô§E6£×<ƒÎ+Ýãwœ š/_¥+XNó†VÎLéÀTI?YÈæœuk6Æràg¨ºa”‡ tq=ùçM=¯þ?úuç4~h7ajGÿ©wÖ–†¤Ë£Õ™°ýb8Ø|7éÃèê_•ÄAòǵ2s>@írØkŽ&$nåÔ·n­Ù¿`û‹Ï¼dKDNf… ¯ä60Æ€4#»&6“õ³49ß®ÌÓþõÍàãXG®OUÿS¯Vƒ9©ž'š&FŒ#ðUÏá@VŒô½ÁrùeN)Þt§šÊXªÍÌôž¿{báõæn³ÓÆà”Ì·Û|áC'Obý^ÏJóp$ª·ýâ:ˆ2‹}os£ré†Éeý å¥Ä3ꈺ#R¥÷²ªµ@áÃD eܾª-¦¸Þì°®Ð-#<<\ìü-8Å·©ã‘‰:Ws}±w Ó¦\ˆóé×|¦J¢íÆyª€ßÛ:,xfÉ÷À~X0ôO @¦œ˜ý³xLcfÄ¡ë9Pj'7a¨˜öš3A Öó«}~Pœ]¤©T#ZWðõ™Ào TÈ?2#ƒ”©È[Ï=¤ äU‹N3¿ÊJM‚NäÊSƒÆë‰Ï_•{/,Ó›÷kGííÍZ$ãFë¯G„ÔÅÌß[ÞÃB{SÂ[Þ¬¢VUŒIa'ÉÜJÖïnœƒ˜Ú4´\[ŠpØ÷Tp@ nnÀÏÂÊg?>íÀxÁ!`ò†NH÷«<£xýÈèI¨c‚R +Å3.ùt]cI ƒv€vM”þŠtoÐlñ_—:Rƒ,îxûÍU¯Õû0”Näñ‚d…ÖW\¤xxJ΋§îi-¼ô<ˆSæà—¯ãÊ{XoKcŽ ¥ÄµÓ +½¹[oèTƒ(gv¼ŽÔ¤„ÛJø5â÷Z†Ó¦r\©"ã 2GO¸Dèý´ª ¡|íĹ×ÐqXEEKB µPÚ¥)EµÚ¸È>Ý ‚¨É5×LIõîÊ;ɧ@#c…Ìš¨ÇÃùp 7 9·f%Ó…(ß ¬å@’¯ó¢"_ó‡,•…Ci4œmïûÆJ°úª æÅbhh&Öy‚+©Š\/áÔ^äfÞÍáËP¾²ßñ1'¼kÃÙŽ dý€êìOu¯:”`ïa‚»Y~ˆšC«ì1éz!™®.刊n=À&XË/¡‰ÑxþvðK¨~³Ûâ2‹:pÚÄSs–ø+RJvu$¥ñ÷¤í2Nï3QGçI/ §,Ÿ°â_Y퀖¦°ÁŸ÷`0Þ¬}¸/öÅ›Ž=% (†Àº=*ødœåF#Õ¤r~›â7÷%ŒbŠ¶¦cm¤^qA©È%CîÙDåp'Uá…Ú¤ %Ê;á¦Ðx«®4Å@†±¶‚5a/uëRÁ"ÙaÌaëÐ'ÖhS +¼- ê™r7â-öU¹Ê%e|¹ಠ+$Ös¼Äà­¡¥2Ê7Jf,ñ†dy+r ®¬DÇHÒ‹°¹H$ÅبàbQ8æ®ì§(kú+AæðáFˆÂM­3ÁNïaM;c3èpK]Q' %¹tÔô k™¶>Ô‰¶šØj+=ð"zàÂVœ68šu–ŠfUr!HÆ>pŸ­×¥ð‹òžà(•ç¡ˆþàKý°ÓƾÎ+b¦3ͶÝyA¦Ä3ÃÆ¿4ûwÑe+iáÙ²¢ÛE(lPê! z¤'ßkA÷é9uµÐØÊàr‡G–ù- +ÈA‡ÕBz©c-ãØM3ì׶TqÖÏŒú†”eycˆeW‡EÈÓª{Ÿ’„y=ÞW÷ +- ïx«-0ò-Ú}ÄÒ U±Xl?ãÐíÄepò}z5Rh ?, ÉÔó“UØ ¶õôl¢b ˜ü‡žâÆÊ]Sé6Hc:fšNå-dVNж¢nn­·•AŒVÜî¾­T&é™SKÒ³Ù¬:UFÙAœºw…½æ.ÍÒ@JV…:Ñ|¿cš&Ázuj½&wÿ;þšxÆà¼dâàW“„¯]ß(©}•âŒuΚ¸ø±lè^Äò"XõÕøÃhy„cˆn×·&ƒ_Ò?á¸7¯ÎgÍ +fá€.Œz—qÌè»jÊså¿Ña±Ì,ðfžèXR¶ŠäÎm ZpÍѪPÈtõÍ3C=?:„|õðö,a¸’ÓÃñ»4¼âéáàã˜ÈZý¥3e¸Pàd‡–jëL&pz©…í pul6_Á†âQñ­ðu‰ûˆè"ÓF&küwPP¿OPô‘'·œPs ;¶-a(s6D¨ˆ¼Ù†ÿÂûÅØI¯=º÷½\ }Ó>bÙÝû:ÎTÏ(°Âð‘ÔÊ·«îzÔ zŽ¿ÉXG ’2/?ë2ÔIŠã÷?Iž9‹8¸^õÖçbDiý6Äåã1Ï5ÇÉÐ6Ÿ øv®ê rÄ:ÿºÿÞ}r·±yÅü̹u1„ûÈË¡}Cÿ³QgPLJ¼y +Epó®ê.øSaÇœ°ý,Wí…ðq¡AXŠå\8Üì[oì¯lÎîÝÙ˜î®p*XxÈò¦|'£ÛG&¨ñêºaﱘ7Ôp ÖÊ^ VhmJ¶:ÞŽOPÔ©•×ƒ¼Ñˆ¬²Ù<§–4{YO‘1j¢îlðϵ†Ñ—  7$Z¦u`¦ ü˜|$ ë6¿Uçf8¼þPӛȰ˜Ì}uƾéh™*` .—ƒ¾±AØUŽŠëpagŠÇ;æš.ƒ‚JÒ‰´°áÄ'2ãoÓ<`d¢Ù ÷ÖTL¯€M¢ž¾[Gî-ƒÀ„ Cœ1±TÈy]¨«?5ætø'VÙeƒš•‚zî»|Ù"+ÍUúDmY‹¬‰±v'F ¨Vò6Û‚”L¼?ë0¢ÐßX‹ŸŽ,$ñ8e‚JAMÜûd%wE‡ƒmÝýÙRÿÎÕ|µDnï*è5²y¶á‰èøØVu÷ #½@;Ÿ¼Nû—˜7~^Øòbê` :¤oÃÉ a™&ß^È@ 9þ¦]äý®‚§§«‚]wöD|òÊ5¿)“¬©t-á/ªhŠnüI\â÷U3%Ð$fT‘»_£]ˆãòû⋳"QÆwNHÑ(jw‡—¸òýˆŸø­‹‰âàüà×+ž+i–Ùò"kS»“Hÿñî.-ìT¶Æ²<þJw«±ÿSÖw;oÑÍ!û8ððý"¢ ôWLÂÍýA ?æ¼Àgv«Ô܆·>º/íŽzá{¾WmXÈÁ>oýjSE³ Ö›‡þ´øÃù=ßÇ^F—Ø‚±ÏÙ™‰´É§_^ý.."ÊÒóbëÞ²ôlWQÏG5<,“ªÞ(0î}›§”HÔáT›c´ÓýŒ\/2‚›p¯ ÷DDM©—êpu-oháßîŒæÈÍU¸žá¦½»w P8vnM·©kpËø‘áíÑ[ŠW‘ü<À±¯_õ­$ÁÉ*z««žÕlâÞÙ€_ynw ÔRºÙ;BR^Ú¤ÊËI£ßÈãCëOû"s7 ù{áöD¼~¬Ñ?K±ÆÙ¼yì° žPÕ®“¢D!¨»   5ý×i‚µæ´gj¢“ñŒEý) +>“…ç4ØvŽ}êJúv±“AÏùÓÉFLï¯ï6¹¶Ôï„…µ,Ž˜ßI¹žqIìjº‘è_ucžƒ>õÝŽ¬yôþ]K̬XU±¿±?T?ÙM!^lˆˆ¿ÿé| ­#êÃø¸‡ãu«f¶^ n…t«[1,B—Xž¹¦*Ãã{ùN: KKX•¦­ƒƒzr5”Ò}M›ï¯rƒü¦¡¡¥«€ˆ8¿Ä=Ž£†ßéçqÛÁK½]„Ü$wæÂæt#´¨Æ/Þs>Ý•Q +$ìy +ÕÆrBõ7Å—‡g)!´UŽªm^šŒbKfë¯=³ä éâ-¾”Ž\Ž³òêÓñ°æüç²¥æ'-0ÌGN® RÁtù§÷ ¢è +³?ÁzãÏÔ—™ÊÑŸ:r2'GÂYÆ6zÓJÉÂ5ˆž=$ÇÜ×!Ÿ¶÷á‘pq\ÙUÔo] +(d¾Ô ¹³A ))jV¦;r^Ížð1Dí³!6´­OÝðX³¡i§}gš‚5;[îéílujh®JºAqu[úäºoHzËÃ\seZnSˆ±”$ õ_C+›¨eºž +¢:+.㣙µFºfà%ììA‚üž{R>XÒ0¡O˜4,fÄ´›lÁ„°݉Ñæ lXÅðyåp( Sþ¢² #}¢MþçÕÑ̓1á–G”«ÎÕž‚œ¨!Wx3Õõ¯”¡†„hcÕC³ÐhÈ*Iˆ>jÝy«¨8Nn +5|†ñP·—½9Ø*±ÊOé Q¥¢}IÿžR‹ã8„>ÜÔËÿ Bk®Zt%Õ!MÛ3õåJhåѯȂ‡[u?Ã+‰ÄÓ‚ÓÃÇ´3 É´Ô¤–³žñD†-{ çÛ®ö“:u’‘Š9K‡ <–Êe +Yf ×²ê,ÝævdÏ<ž'PGJ©U±Äwt#-†~ùc²~°²ŸÌ*qëì0Ù ôe†ùÛ ;ªTr¸„Õ½þfa9Ä\Ð_ËÜTI÷xJظ>ÑÑ`d€ax‚ DÓMøÞ]績.,ü¥NQÈöËàÔ ²ØÀœÆ›p™•&ß-Yagh”oç°2´G h'.R©•ãÿçÄûi©ÒûZÁÂ|?\ãôg»{2`’zÒàÁþ!‹éòÒI¥âD³æ £^ø£^d©ó—2e|®Õÿ³Š?ˆåÒä¡`ŒðKì¯hŒZæÖÜêqr0³'˜[Éhi‘¨yWB9¡¹Œñ †ž*É"h D!‹Iœ4Û#ÍšaLÃ,ÄÐÞp¨v{Jî•þ¨¡žÙÎî*ÀàΧRÒDyh66¡.(ƒ-ˆš\Ä!‡ißþCÞ¾Èïä–›1ôL§â“Žs/ñ=K,¿äÒ 5Ô‰;µÕí +ÔÆe;lGÅÛ­ ’.väß!Ò #À½“¹ðdÖÆ";ȬÑãÝm¥Y>¥ÞÁ–½Þ̶%í¸{0-ÑŒƒèŸþcŠEZJjl¼¥ë@>rÆísJ%I>rÿ¶ ·Ú‚3‚î|)¼‡Ï²Ú0ó©º*ÿW«¿=ÛË|_'ÔAYU{s5Ùß}3Yo–SD]™ó…I\cÏ.YÓ#âêreéúàÿNV¢;ÄìCi2_213¥„÷v ¶[ëÁ«‰œbPÑ>ƒ&”¿x*Dêõ°q…Ôj‘¤I…=ñTZ“ ˆ´`5Ö›‹E,`¸Ùd¹ ¬¢§‰„x§E þÔ6Y¢ÂÖØj(>I<“h~óÃ=4–„ Ù~ÁŒdM“Ya_NCØŽÞ°z´µB!„Ak±Ã¶ººòŽð&±y2G·1÷êR³ –õMçˆ +ÍD´7_›í‘n›ýø)>¾Ôê^÷I0üósæ•M‘$)«¶â3¨@nµ§ ÑÔ4þõÂÀ*-­±‡éâÝÞjÌÏaGD´žò°œ·ßf}æDkã¯?ËÞWaú0S [××æ5âœ;¥§ôÇè»iwU.C„-Y™óuÆ +í¡sÅ‘ëáñ¦£ÜÕçnB!Šu!N&öY|Ûœj;©[ýšC„gÛ¼x—K’ÜÙ‰3ø ß`,ó”ª/ŒÃbBÞèñáÏ]Ú¹áLyáE oLTþ)ü«€7ºµ¾T¡áÔ›Öˆu¹ QŽ/¯³CÆåÐ`!$¢´”M;¸¡—BÍÒ[ß̦Õ0/s¡=“v­Ÿ´àJs„‡K™Åì:KSýó4‡ŒÎéÉ]²w®¬Dñþòš \&Mæ\äÍ_;KŒÇIóŸëƒl£]Ûý.P2¬Ñ?YÊVSp80Lß7w¬&ãèYm-G«ÀÔ#_ë¬ðh!Q[X0ÑwÇÔ–%!ø¼P}y9¸NŠ*-ûkü¶wn£5,Øy¢fçô;x"O=Yjn~¿Ñ‰ËAJ˼øTBÓúêÞ§±ð3]'«»x UͶPøð/=Û2Š^Dý gBé+0Žs¾PŽ‹Þ%0¬3ª³7}í°&ÛÊŽ†¹COCa»Iœz`à8É·Ÿƒ…Ä-EYUæ¨Ü¿œšq͘i’Ra/iìÆ+Œ@û‡²IæX c@ì ¥(ò;W$ì +7°/5@XY ýx…á\„YcMmÒ"Á´1ÓÌÑVtê¡ì¾&‰|ª*Ë9û ]cŸiÆæÁ±~þj–:-Àr¤Yiú¾<²sÝFàõYÛ•¬¢ºÍë!Y ô^òï÷&wuOYÔcXxñ1Ûã‹gíŽnÃ9Η~1ú;ŽK†õÍYsb£5$t#JÉJsf<ÏèøtÞ÷]BYàJP~˜Ð_Æü¤GÞü!ûÔ×¼õ¤ÒÞÇ]†¡í´Îsíf>b¡evÖ~ øOÄ Ã©má¥bXب2‡ÖÖ¡Ù:M×&ýéÒ=ª“º›ß¿ã·eØoN0(Ÿ!ɱx¸©jŽú÷šgŠ)¹ÛñMx 1X6åæÔê6ÛfÖQ@Á_m'|·ÓÆ‚øÝQ Óƪb_™v5ssöüÊ}XŠ1º+çÔ³·¤\ÐÜ2rÃç¥MvEB1jûF¿ú|ÿo‰‹µnãÖ&æ:‡N­!ÙäÕ{sÃzE<çsø\àYòOˆ¬œçPãá‡ß%È ‘¥œê§¯[”:Ðô ŽØŽs·™¯bçÃÿ£ ²}ºFî ­“g‘².ÞHSâ|0çÔ³I"Ã9Õ¬è™}÷¦ClL§Ò<„A B}Þðt!™<~Y…õ·)§Ç_…ˆ”¼/L0P+/áù¿õµ´øùl‘ºRóˆ¼=zÇ‚”ø·cW`–ž´ñAêñ„ÖBÛ¶fnÔý<þÁã>—;u{):´ o™TF1ÂEÔºžLYßY…nB\Æy)ÿNÒöh—Á™¹nÍ@0&ÅíU¬Ñ7å P£ñ,$òê{†´„W­G›ñð½ŽÁ¦…0֡תoë˜tÏn å„‘_ŒWA|ÙX ܺ¦ ‚¨©§h^KßX@@;i‡q­;YFA$íÚÊræåÊŽ”ê¥:‡L»"ªéÜÄNxy*!¦h<\ÂâP˜ŠÐ?I×þºyÔQ· l£f‰©;3òϼ”o³}$Åÿ×5ýøõE¾¨Ê“êsfW›‘³âo©Œ3$ÎXïö~‘´Í[8뎋lí• É›á;|g«˜ÕýÑzÒLÕAµ‰Å…$P$2‚-½ÒÈ “FŠ ÅŸ© VáY¼rkzdÁn9¬ŽÇõ\1{µEüñÔÌ)m…7~ªÙëœz Y2çìïÆ´h +1m‡¹O8É ênà#p2ð¹™ +î‰Ïõ¹-`æ BR8÷~»ŒygÙÇ©~øåþ3\Ë^tS ÅØW+ÅN¸Q,ƒ¼\T1`/ +D¯TvJ{J|¨8ÝÄFÜ>¨&ˆâø݃нÑâµ0ÄÎ_ ¡IÈ|²²Œ4¶òqeœï“še" uÙ™(dx›ÈQ|Ç*/ïËÅU*wXÅŒ#¤ t-Ç$O(קÒã"lø<”Û§±‰ýfXì5ý öëì(mnà©Ý¦'i ÒFTU=M"ÖzåŠ>âÓ]P¡|øàÊSƒ®Û`ôz8…ÊÛÚ®×çæÍÃ]éÏDEHº¼s˜õ¨e·¤“«þ+°ÆyrÙdל憟ùKóÝ%šÏ¤íÝÜÛ©Ø ›N Àž¿ãø cÌ›…Î 7Ë!°>V°fšÆ¢¢hà!„HßR=Ð Àcm$m ìN¼z/z É£;ß/S¹æD»äò·VXDPÁ¤·«QŸXÍ~7Ú?DÑÅÄzU*¯ íÎà +¬ÄÅ“ Eñ¶¥a$k’kDÏÒcK+ñ ‚H¨DR–$›:§Û÷ƒÏŸ±çO8ñ{è=Ív¿£êKîW^ÖÔÝöÙ¨Í#U–¼oé9­_OjÕ6ɧ&ut¿OôãÓûzœ,Ÿ\áuzåÈ[E'ú]ÊäìYlr¦ÃnY`QÕ#øGƒ©Öî¯O$åDGÔju‚Þ¦yŒdU¯ÇÆY¹®L9#¨¿´D,Sð¢cT«wƒŒëž„:?(†ù`Ò gÔÜU0uB+˜²]fª« .fß7ßÙà­F0ξ*°1~! ,ûøgHÚ´9æ]3sKX\m¢BxKkƒ®ÐFAô ¥!èAk÷RJnWþ¸¾)o\ŒØ¶Â̬ͽÞtÒÐÉDÌÌ¢eú6ã|xÿm—šÖñC à6ù —ðñv˜ˆ, ¿ñ×Ñ2ššC“ÏÆO—@~ª¶™‚JÏÏ;­ãM7¾ì˧—®D^Êu¶Æß j·¿I6!Á0«G^÷#t—yq܈ŸÅ$æ›|Ae$¸ž¢÷"9¯@vNNzçáÀŠÍÚ6*^–4zw÷Ð?N x°D18o·ÔU_—ú)ÙÉiÉÖôÈBªYsÿ6V¿ržb¤«ÜF­óU϶UÊy70ÈårêÐyjc+ZŽðé;ò`Û‹Ú< ý¤ÆÇÛÉcÚ$¹I b‰R¨Åüçòú™e“g\äšÂŒöñ‚š¦ +wge‰£ç»Q˜$B®™+”9ÐWlVìþ½[ÉågÚ5™yîÍ[£DùNçT)1Ñ•YÒ?6Û ¼Tnÿö×>n2ýÖ +½mÅ{ endstream endobj -1889 0 obj +1986 0 obj << -/Length1 2668 -/Length2 23272 +/Length1 2014 +/Length2 14211 /Length3 0 -/Length 25940 +/Length 16225 >> stream -%!PS-AdobeFont-1.0: CMR10 003.002 -%%Title: CMR10 +%!PS-AdobeFont-1.0: CMR9 003.002 +%%Title: CMR9 %Version: 003.002 %%CreationDate: Mon Jul 13 16:17:00 2009 %%Creator: David M. Jones %Copyright: Copyright (c) 1997, 2009 American Mathematical Society -%Copyright: (), with Reserved Font Name CMR10. +%Copyright: (), with Reserved Font Name CMR9. % This Font Software is licensed under the SIL Open Font License, Version 1.1. % This license is in the accompanying file OFL.txt, and is also % available with a FAQ at: http://scripts.sil.org/OFL. %%EndComments -FontDirectory/CMR10 known{/CMR10 findfont dup/UniqueID known{dup -/UniqueID get 5000793 eq exch/FontType get 1 eq and}{pop false}ifelse +FontDirectory/CMR9 known{/CMR9 findfont dup/UniqueID known{dup +/UniqueID get 5000792 eq exch/FontType get 1 eq and}{pop false}ifelse {save true}{false}ifelse}{false}ifelse 11 dict begin /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0 ]readonly def -/FontName /SEWPRR+CMR10 def -/FontBBox {-40 -250 1009 750 }readonly def +/FontName /KKURMF+CMR9 def +/FontBBox {-39 -250 1036 750 }readonly def /PaintType 0 def /FontInfo 9 dict dup begin /version (003.002) readonly def -/Notice (Copyright \050c\051 1997, 2009 American Mathematical Society \050\051, with Reserved Font Name CMR10.) readonly def -/FullName (CMR10) readonly def +/Notice (Copyright \050c\051 1997, 2009 American Mathematical Society \050\051, with Reserved Font Name CMR9.) readonly def +/FullName (CMR9) readonly def /FamilyName (Computer Modern) readonly def /Weight (Medium) readonly def /ItalicAngle 0 def @@ -24820,56 +26370,27 @@ FontDirectory/CMR10 known{/CMR10 findfont dup/UniqueID known{dup end readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for -dup 65 /A put dup 66 /B put -dup 67 /C put -dup 68 /D put -dup 69 /E put -dup 70 /F put dup 71 /G put -dup 72 /H put dup 73 /I put -dup 74 /J put -dup 75 /K put dup 76 /L put -dup 77 /M put -dup 78 /N put dup 79 /O put dup 80 /P put -dup 82 /R put -dup 83 /S put -dup 84 /T put -dup 85 /U put -dup 86 /V put -dup 87 /W put dup 88 /X put dup 97 /a put -dup 38 /ampersand put dup 98 /b put -dup 91 /bracketleft put -dup 93 /bracketright put dup 99 /c put -dup 58 /colon put dup 44 /comma put dup 100 /d put dup 101 /e put dup 56 /eight put -dup 123 /endash put dup 61 /equal put dup 102 /f put -dup 11 /ff put -dup 14 /ffi put -dup 12 /fi put dup 53 /five put -dup 13 /fl put dup 52 /four put dup 103 /g put dup 104 /h put -dup 45 /hyphen put dup 105 /i put -dup 106 /j put -dup 107 /k put -dup 108 /l put dup 109 /m put dup 110 /n put dup 57 /nine put @@ -24878,708 +26399,804 @@ dup 49 /one put dup 112 /p put dup 40 /parenleft put dup 41 /parenright put -dup 37 /percent put dup 46 /period put -dup 43 /plus put -dup 113 /q put -dup 92 /quotedblleft put -dup 34 /quotedblright put dup 39 /quoteright put dup 114 /r put dup 115 /s put -dup 59 /semicolon put dup 55 /seven put dup 54 /six put -dup 47 /slash put dup 116 /t put dup 51 /three put dup 50 /two put dup 117 /u put -dup 118 /v put -dup 119 /w put dup 120 /x put -dup 121 /y put dup 122 /z put dup 48 /zero put readonly def currentdict end currentfile eexec -ÙÖoc;„j²„¼ø°Aw-åÎ=Ó%åW˜)-{Ùr½uú•)¯œ‚ßröA•ÉÂÜãE(õ@Úý{ë¹´‡º“Q»û|ü_‘RÑå» -ØÐÆϤëA³Å -T@æ|ýq|Vk¹¿J% qu8P¢øwÄGx³ÅªÛ̆ÖåQæ¯6K üªÒ-UŒ\§Ô%¡bÕ"t-*ðxÔõöÓŸÏÿJ‘+ -}ì3¥{Zà2ŽùÕzݬT2sÀ$ZõÌÑ&{Bè–J×{¨¥ÜÆØx¹<¥Ÿ ,—Ü-.è2›¯iR‹n·Ã±vÌÙ¾1ä • „'Æ䓱©·_r"O¯»_‹t±3keè¾fBݼöVÁfj—Ú9Ò³ÿ Ô Yh뀸Á{û´qÝÉÊÆ-÷†—ºøÉ·ÊãÁ}W§?Å?gw1*Eh[ŠÜÛ:›—ªtÍÀWeI,Úv•8üa…<{‚ñBú1â¤00Z8ÃÌî5 |ñŽ}­µðN¾àÔ×lw]ƒÿƒ6Nÿb¿—ðð¤h3E`œ†(¡›EÁ‰¡Þ'Q;²eµÔƒª/ðà­.D©yL’â5ØñÇ$¥4IGÃå׮Ɋ\‚yjù9£.îV­U»5£Q!äì‹-ÍèµÈBƒ…Ä9ödèâö««B^éoVùð­wˆBÉŽáT7„¡‰¾R€ŸÀsO™GA‹¦÷ãÕà b#íTBv!m·WT=úãÍÀ¦üw,ªID%'¥ÙMÅKé<‡|Ù]ØD¥Ã°€@‰õ·€2²½Oø( œÝŽ%œæÛ#_½É·VñþBSTø¢#zàÃ×ÒÍã!ËÑã${l­\§4ĸ ;5Œ™l‘&!×〚óß=(ŒŠþfŠ¸ÞUwA´Ú±›ÔÆeßìÈÌB#½30>ÎìH ¤©'œÞL¥+ÿÖ“žjâz@ú¸=®s\²Þõ<…«=\ÀY$ßD?ˆUê Ðæü6•ŸÒxG¡QnÇ«šŠäi¯%Ö”ž!×Ñ -L2±[žšôã¥)!Œf…X‚cè‹ã<Õ'Ȳ–ñRP3E¡!„-:±'àþÐAJ¯.ÙIJCJÎJtª&Ã{76± -#VÐÃÐÀëÕÖHÕ“ó‹/©ÊF×gw"F5”wñSˆ$|¯ÿoQ<ÎçΗ Ñ`~¶<10©|™ÿ<»émï´·ùØœÞÉhðÞ „߭逵µ°°›?É`?ó7–ë _Ì [•¾ó8xP<41Õó=tÏøHÚ ;6™¹¸}rKu1é3ûšUCiš´Ht­²ÑÓ}öyÖþ~c%\ßqï€\ººæ4O4v![›_÷Iº¢°ï³¯üÆæc‹0ß«òMJùMŸY0¬Ìv{6ß”Ö\øà rŸqÉš"3=÷”TÒYK.ÜKêÉ)Á,GÊK{aˆCZBGž½ -yÛ(ŠK'†Ã2O0ÓV—®6IP$$lûéú¬¸-“à[ÀëÔeÍÉ‹øÇKÌ×&2%g”b¯z‡÷JÌ™,uo~M¬2ÄzÞu’™ ‡Ô6*š»*¦ Å «Ñÿ9¿Î¨ß?Ä£K”c)ËÏ÷á\ðgŸt­&?©ãŽÏÄôûnTëw½“æ¼$ dN\C¸›¤ÎÚOöÖÏ@¥W2xè8q!LdÒ®ãoë~ä1V/ŒÈB=@±ôúí!0’ÁY¡ozù$íùÐ÷Ç€%Ä­¿ÑÉwáÞá2]oªÃß ®_ý?IhËuè¡BmîF:µ1Ø–d©Èy6÷‚ÀÚÞ F ¨„Ln5Sòw&©-ëÓ°¯žGzø¨9ê=È'’ä(Ìý¼IühNú´Ö{äO ˜1LvcÕmiµ¦À&È"MìêmÄ@·WÕ†­¤­mÜb%0Ù˜*ú`šëÄ¡“ß“/fõÃl½%PE2¡:VA)SBL/æ<ªî5ªCžA£ß÷l;®{ËÀ (#ºØXnF’"‹˜„8{RØo’ÁÄT(ä_WðbAþK|oM _ÖÓ—Wßþ‘½ yäMèÿ6€« ±^½÷atž@O1ë¡/Fñ”¶3y#™ãcMM×ÐGÅZýÝ[m¬ÿºzÏŒF lªù«"ÂJ>®eØVBWB}çV)ÜSÈÛi,¡ïÞ§ïR¸¥½»FǪ½P.è½LÑ€xø¦_[ÎXVˆÇóôQ ¯ TPÿõvƒ ù -eÊ,’pþÚƒrh“ú¸“uñ„Œ`+l{÷eQ÷Ö_@f63HßPavÑzUÍ_°ŸÍÆZ«1*ªäǯM+Çbp€†;{ÝªÌ ­Q3èVV;Ø¡¼ÍˆÓ ®O.Ožài,¼88«ÖƒìÆ…gŸ=\=à@"FàúKFøT¡bû˜‘¾VŽl(lg®ÁÚbÒ­Ý!¸èªÕ–ÕË\áýùa4Q1°Ì~ «9âqV¥¸§Ì¥ ’s^kí¢sdŽ›nz‘Á­£ç¤:ÖLžz]Žðªr Š¥¢ªƒvND¾‹MG79$ILiþ&“AØgánl6y‡J FOµò;ð,zÉ´Ñ% -o»¯ß xÈ0˜s‚ÖÈW1FxÏîÔè—ß gþm‘µxVyõµÚÑ"]#z~—§pvòÁ †‘™öØŨ.rB9‰$n¸YC­C1úÄtªd@#÷¨8ÐkN‡Ô‹K° Ó;£ÀêÔ“lFú( ØŒNóŠ¦;àá¥dþ¬Âûí’­üß*¼Š<Ʀ¡•ãÅ„ªsÀ¦9<µG CE`…Vé¢hà½ÉÄ%Q“ÎF¥oP½Äâу$ª½"Ñ33¼÷P9×9ìZs9‡'`ã­ ìrÚWù:N”¥ìÈsÓõÇ”·@fƒ œ^WÝ…&24w©lz æ$Ô2Wï²wÝ…ÆìO9bÿ£å"O¦ŸÊÍWÃ*F]Ý/¦`yªŒQ± ˆÉ”\Q•ÂF*ªÜiTñè^N öd_£M`ƒ¤†S%T³NºK7¯+R™Öì[r¥›üÈYõÅíYqe}¼±Ø ¥‹÷ØY‡Púô -ÎFUE¢ìóþŒðÓKƒÀÕHŒ'²µ>ZQ@ÎIÙàt%£äÿ–œÀ[¨)7Ä&¾ü hÎn ±éY'ÔÛa¶TÃñ'XrÔß™/n_n•JL¡ (–@ -²ç ËК -­µN{KFµßÛð^k›bÞÂnê~í`L¯£]Ûa¤U¡¹Å{üˆvâïLßܺæ¢4“ô1˜$rmAÿîs•ÂÆóònZß*™»=©÷Êsõðo›b@{‘yÖ !CC‹{c.WZ¶ìïæ0n àbp…gsP˜d$-Ñ\ö¯ÎÔ›&L27J»Býóµs/g(ô©xQ,t>[®â8Í“GsŸ:R$9]6&ˆúmy®)iµŠvÉéjÂöW¨‹LÄRB^RBal¿ëx³_ ×Y:²5M§¯ßæîÛ»­µ¨û/j¤…àÅÙ¡!}Þ`”îëD&W€ÈªäÖQX¹$HߧçÌtI¤­¼ ÈÕ.ÙYñ@Øn«r–_ôìnÜ ¾OüãtAN-L n–‹—?_Þ^_…Ûg’µ~žÆ;`°Ðí¨KB‡Þð6eĶÁܯ‘¸ ->”èl¿Qp‘†«¢Ó)À†¶ùµ¥ò/;S' ^¹õ:ätJ±j@êx«³ƒE(0GÊ;κÛQqŽ©Ç”kT'¹ðž;ž ÷ÉDHj‡¢ãsr‚xÜ– -æ.Â>ÚÐÖ¯¯¡Ïk—®ÚlÄ;&–¯#<çÚš°òe)fÑäFz›`·Ç·?¢ãIc@SH&–<ÿ¼’îevn8F‚\ãV±ª3Åóa­A!yy¼ã:ñÓ+žc!£xð–‚bÏMþÖ‰á/f}3ß–›ë˦Çã"G©–­ç'fMsÑÔXWUý}üöµ·¸Yĵ^ €Ô×%jÍÇ!H¾ï‹OHÿÉÍŽ_ù¶‹;臲Îò‘âJ¸v¡²]Ü# -$ÙªÛ'Ch?5™<„Sý»íË°Áñ@“­ ša¬´€-™AcŠ†éloW´M(òr·§#Û`×ÐnY{jÛ`3|lv®`º'Il ýà±!å´ü¡õÓPÂÊì{”¢E¯˜ï=Îpaè^ ØhëOk`·î›ãpøú ­8uyÜ$rò–Ýó•u -f}cqÃ+5Áy~!ýÝ]ÕúøÀìU,­¾t )æi:Hò ¾O…ÄÛ(®_eOéFV¾þqÐ>¬uèàÄ-G:ˆáñÄzƒž…›HZ\%UívØÀ Ðzã^àËBy%€NT⸶3=®Xëà?¼mJ’ø-Ó3„÷iã×H@Üfσýk¸R.ë›õýv'€Çm.'ÍSãÂD»ÌÙlyü7“¢ YõÖC³­Åméµ^¶¯Gu5_G›øµÙ1¦ût/ŒÔ þàÌâð -à4‰±1­nˆ_ûD>}p+æfªg9h$ú¨Å]@ïMù`Ø^Ò¹GKö;5«¤wÇë»äIrqïA¨3fA‚ßYiu¬€ÂÝäÃò½ÑïìÒYréDõö:ÚdR¥Ý “At ë-ª,)âºaª¤ÉºhâÏ9[Ô§uÿSç9K’„ÄTK©aX$äwgÉ“¶Oƒ[âx‹qǃ£yI(–ÿ¼j5L§ªIÀcµ}|hÀ$‘zDâUÏÂw»Y+½ý¬Z:ÎïçÄϤŜ1¿òµlÙeÀÇ`uø@|¬ìÖ܈贚Æ^Ú6î/žyÑû`að¡¦È Š[¯ÎŠ`Ò¾ÌEž£ÂwÁìa ¡zæiòLa„}jÊ°çÉ@û£Šå}ÅxæïW¶™ån‡sŽ˜0n*{¯l?Z©zó‹•Ê‹>¸ç8íp-LÑ&È£ûïK`> `´¨%Â`–¢îÝ¿Ésª?ºvË»Æ^\ü‰*’ÖýQÊá¨Nbf…+Û¼¾Þ„žo" Ù§U ¼zÑógêgÍaäŽu´F Ñ™<ÃXúyݸª¬Ðú*¼Ègöÿ4?X2]Â4¨HšÍ¢›×òš^ÁÐqLeo²œ˜Uíó~ ÷¥’’Ð7>ì)Ƥó™Hnžº¨­A7"é{D†Rj)ÿ×¢Éÿ~áeàíVDJÕ|—ººX}ѧCrŠÈÆTÈAÈè fý˜£’”P};Š"Ó¼KöÓ#ΑT ·F÷ú\çý÷^Ô“ ;™ À|êR D\Ä‚ HuÔ6ÿQÅýИ'Q3Èb;x#¸Ž3óSÌ:ªjbíÛ%¸tJ‘/>Ê¡OÿîœrVÞÂx]°¹¼>)âïŸÁµ]€lù5o¾[ç¡ÐF;,N&¨'i©Š\±NQÁIòHÔÍôÐÀ?T:í@ØFïçNÿ SXÁÝ0±<¬)»hàWÖ½4f¹FD·hÛ.سT)^SÑ-…nw}ý, ˆZN¸EÐCô¯÷ Y ReµzÂÔöð3¼Ò\ -¶ØtíþþYá5`F~_›xÁƒUž|‹'X’µÇ‡„G@UÖ6I \™„çÜö>ü:ÉV_ûÉ>Õ¦9*I0}Óµ\"{Øï3UÚzÆñÉuäFœfÌÙ¤…õPߨÊ)Eˆ8‚üU¥œúw)®ðgŠËqÔ:àdj#¥¹¯ÜˆhqÇ ¥œ¼so -¹@’ -KG7ã"­|QЇæªúå Zòzs|…‚}£ÄLÕ´SŠ¥:€fªÕm¼§ÂA3ïÖðS 2Ä=‘Ö[³d·Ø“üJœ\ܳ­òcìÚ€üù|Ët¾j1ÑÆ›AçrþŠ®ÀÑ®þÌJvÂ,K| ò´…Ï•VÞœ -˜ü›Q„´[ÜÞë¹^9# ‰ •TÏ¿Ì–µ\u˜Ö×Ñaá2ÄSU;·}Çw„–ѧ š‘]*êz24©c÷öÇL4$ñ2ÛF±«ëw<Ø`â¨à7)¬«_ÃÙ 0 IÐóïØZƒ»lf¹˜¯Ý5¾ïà\èítî~V= ʼ&Ü£þâ²3V›ÿÖY‹ãvEæ9cé7xßûXÄ ïçy’ß ´>}žÄ·e½Œ½Ä­ç&ÖÜnðúµe½4{ºçíù…£YÑÓ êë÷ا‹½i£6*Ö¡gC¿Vÿj81aÕÂG­É[°‘ßQU ƒXú×âW'~³7?7ÜKO»   wƒÍ¯6ˆåudsl¦wSÙ+B”¼ÊHÏubÕÖœ»¤ò`à©Z„¤‹Í“e”wOŒ±ò†X ú&¦¬l~3ê—÷ÓÔ¸f¦G±¥‰”k⬈¿ËD¿Dr)»}皶ë!úm[ ʪˆp^êá"ƒeš*EϨ´±]\YW¼\k’sˆBÃ,íIQ ²ÎZì1IàÝ”Q'™oTž´4„a¼` ÐáìV‚öF Œ)¬ëapËL|y ÌÅî6>àu\"$¯(WB¼ÝòòA«&|Ùa§ MÒ+8¶.¢/Ò¸rkõd¬ã)íZ«|*û_?ÿf[;Wä ó£{‡^*Zl3:Syáw{Ý¿åÿ‹õ[8}JëSÆÐwþ¼¨÷dšò«ÿ?ûÈQ‹Ý©ÄÑpžœ…+4 ÑÃá!!÷P—°å³C@Í{Âû:E@’NÔí©øóp2á„þ{²Ž&BÜ‘0%ô–f žrJ ŠLW³Ím_ ¦Áî)uv–Ãñ32²öH¿¿¡Y°~ÕÉCSå“xÏÑŒ]2YÞ7÷å]ÁNÇãŒÀ¸ˆ3*g˜5g›LI§þÊÁîSVZÍWÌ7è1Ÿê™èKÑAØkA£"]†Ny¦mœÊ Ñ0ùþ/;“ü?gþÄWCHº‹êñ%´å4<¶ç¹;sL¦?bSK!À”Ò!‡K0$h±ï4Ñ÷=‰œ±(¬€’ F»¡¦÷¿–V®4©é…çAA-ôL'Pv&Ë Ü„À )GÞ(&ê ¯Œþ9ÙUþA¨“Bv«NŽW[d&¨/QŒY7VÑ£[¤#íð›dèÆ {R`'|½ªtº^+«&y]ו¦µ7€Â‘Ôò`å.˜/Ú|žüÜo¼þÞIÿ¨GeOVNêM.Âßb*#{ËÐŽ¥¬ ôã•ëziÜáj÷yÛ\?‘}í$â]²ä~=ÈRˆ¹;¶5þÔìßþ\ŸÓθbÇ i)bböôþOßL Š¹ÛNß‚SŸ»Ø\å¦rºSk8òT§Kÿò>ÎýbcOטBk-Vðs¾,ibék…£Q(vÓÌ)çb-Ò·ý&ù¼PmzÔé5µAõÚT#Dmcýïý°J³FPߧQ/7¢Y ÑÐØ•¡}¿ã îd¥)H ÔZϬCE{5Üt˜z›€ }ä¶aŠßÕêmâgß±¯Rÿ€§¶·ŸÞØ¿n«R¾O¯ôø×F-^Rnwì3íßywtÖýkÁIÞiþé¾Ï^¯Äv«úÊYì«1Ð[’ü€Ò5ÑìxŸ>œ2 W¯»ÃDÀkÌX×7÷Ò9ëãîá¤ù·“+]MÉ°êì}$5‘Úà)KÄN™¥€:Uĵ‘»Tb;P1à'V4‘`õ¿pNuÁO(#«9™bà°Y¤ŽLþ¥7Ìس!2ÜW9±ê@,ʵÑ30Ð3F:|8U E¹‚vŸYüQ -nׂv›‰AÅ:(îQÕã´ÖƒðÜ*¥1*ÊjS×±Ÿ„‰‡Á¯E?¬Ò0hñ„r¤yI·7¢º<¹éÙU†ü]Ú±MÁ.&:2.z€ª€áJÉÙ8ݾ -¨ä’Çaן-ѱ¾½n]C«†.¾„µÖWŒ*õcšŽedF ¾M^àl$Äõäë`% òÀʨ†k!¹Ù -‹‹ÝXpNoY.em0N‹²ÛÉwˆ¥hƒnÏÔ¨ÔýÒëL箆ðÚŠaA€Mn1ͯŠ -¨èÇu²s8~E¿Ÿ’ý-³8ÝteÄ``œ'`Àû^IÔ=ÉÑTZô¿†\§y^ßAØ{æ±F' ´ Y1«$ðiíR)7!åf’ܤR”Y‡hðƒ¨ôºBIÌzÓ‡´Ü@BfÇ-ˆc"!\8Ž_™¶H¢‘¾¶òЋö]üü¸O}¢çoB9!9¬‚ÔLî«:ƨ-fzÇŠ §€°¸¡G‡tîë‚FH7¶Àûôß“È´§·R ªO(ñT`qâBŒ¯ÒY±jOe_|O•2*fA»¥g -x[`çyZN;#LAýE àbQo' ƒ+øŽå4×À,ÁŒYyÑ4>VYdæX”á†1ŽÅM}Ä«’O˜^D9GrhÚévO ÃâêÁØ!J†QØX¯Ði'mj'Ë+ôLµ*ÜG$cáÙú„Â<%ï:6Xs¡+{4KÒ ‘ø`Fq@üÇæ|”eÁž/&¶¾³°S©ñ$ïب© -—´„è¯ …ãüZøèk.ºdCg{ãu»xÁAS­‘¬Þ[’è)i ÆWWÉÿ ³3Ae€~§]á îí¤—*mŠÎÐgœEÏÙèGe*vÆÛÖ£ÊN| z -æEm¾-e_L”ümªÿªi9wV²Ëþ‡Äùd¨#œÛͧNüP1)å5¢C\<5L€ã¿ønè>l€åÙbb…oê+lÐÿªn¸ñ{µF#ß -Ä“H@Tƒç~–=\eÌ ÍÊÓˆÎû=©4t7×v¨|p³§ EuqŒñ,*JÜ~|Ÿ¤¿7B6™‚ü¯ÊœÊsßÌPý14†*<à{]ÐEÜÎSnè‘J8ª0îXØCMÿ!áí3Éï«‘YÉZlþÙâŸTÌô-‰.ˆN:üAŸ},®·’$‚PãpƒÆJ"9ä•_ Ñ7Ô+e½šÕc­Çá¢Ã{â§{-·ñÞŒ1zeÕ~„*cš=~ë£jVÇá#ļÓДû6>(È«ÜϹ¨}g°U-ÄÓIÄxÎðÝ\¥¶ðð‚¿?ualQÜ»>Ž¶Â2T;á⟽ eÔF(][‰Îr‹áéd–fðÆdõbƒP¹£Z5’.9y 0ÃÌqѶ¨»-“ˆ™Ð cxPq,¸•ÈrK€ÿe'tø ^C‘¸ê–Æ“¸Ÿ‰dÓXªvÞßÁ B…³p”Žsj'eKÂí OüË9x™“[Øxë£0(é5\€×ÔÕì‰à$d 6ãYXè±þPl«Œ*³£êBIÛó—OÛ2ÒÓöë+â#öÁ.‡)4‡*ÂÐäçRÈ F–àtJ§8aú)·þÐa‚ý>k³"#¾Ðâß :Œ»qÛG]PeuõZÍ; *åÁÞ&Þpz¯œûÁÁKK~!€Jž¯Z-¤t’-‰UMÞá|Ë`„êÕ/L¿É.½Âá+Eè3|ÂV;ú· `=cbªÈ6’ˆ3c^6¨×®‘Š¥µæ«ÝÓºŽ€T¶.Ï®Ž‘*?f—ÞšZãJ)ë”â'è¡Gß\/°±t)û€êö¨Xó§‚PºþÁ&HÌju—«™u–)³?šçu‡çj8´¹5k‚’h°Kßd é+WI—"~b¤%}¶4›~µÂS¿i÷H³rÒo5¤j%öèöÀüñWõÒ~ -š[j_©!ž†Ø× j¯YGdÍÕÓ‰< ¾ë{}Ý—ûoŽq ?ºˆj6ï`PBiè†1 ˆm>Ô—=C°ü:Mλ©Ä8â`::w–òí£þ’QtuE_kÈP¥Al‚WðêJ~Ž0ZäõéD{Äæ¸Ñœu[¡2LÀ‡kwË°ïiîãP»ÇP…ÑÍ•Úa\0½pŠ1w7¹è¡ãHÒÐI žNÙ{*ÕF½¨œ‘jîÕ¹Õ‡ÒcÇ/Ó%)[VSô²{–?"1ÞË„É}XM\”û39O¤†výVìÂö½ÖXw[\ßà« Mˆ,K™×/birÓ9‰bÊá\U¼_då=m…xÛ¥{· 8€LD§‡ÐeøÌá±*çBÓ4CB¯¨øyÅDc‡[‹ -ÓK –oÌ“Ì8J°€`Ug€Ýd!rÅPÐW¦t¡uY´˜ú£C0ýdÍ ~†–5_€ûñÖQCÃÂ=µ€;x3¬é6O¹ô«C‡ù¬µ)BÃ>Ýßgùð›ÀÁz·LáHz@³‡¨&(} +Üý&ozE|èdUè€T˜ÿd¤ÁQ@j<+¯L톤%L‚Z(À ´Hj®ûM®ui¾qßjˆ6œÔ˜ù`å;ð÷ˆåOžàA;Š¤éŸO~ú÷Š¼Þh‹g+Q´gÆ®AUŒ.óö .öD´Ï¸}Rb¯q¶Ë¡Eá¾â âß"`šÌqð2îLí?/Ì,NÐóëEìì‡å8Í'ød·(뽃A¤t -aøÙehd%Îä”P ðcñF -ÆejK31¤ê~CÜJ±@JÍðœæ~-hÈ„`ôNWmÓÀ9¥Ã3öbàŒ{ø7E€±þ’‘ ‚og¦tœ |4Ò— rÕRÉen—ܸvu(5m\d'×ψcð7>­ËcPhlVµPiP¹çòH=²~¸¦{f‡¦\RŽO¦_º‚5)Nt ¯tœÒÁk›’<¨A…Ž9½Ì ÜoÃ)­Å™=ÊÇ? ÆÅ KlŸ˜„÷0¨áâ5Z`ÂD— -çÁ¨HÝ21RŒû‚¯{§Î?®)rpÈvÃo¹·o¤Ûx*Oå7Ë~—'ãeK¿àpŠTeÔrÌ­™ëø¸Û³™‹)ÐѦÎ_ùÿˆVËÕŸ;˜„vßTM°è>{ÅdKä¸[ãy/ñˆˆrÕ.Š=-8§Q®ˆ/L}3i<âë -ç¥x<`t­õÐŽÕ!i.|wìè(lúMëz©fêzÝX@’˜‡r!ø´?,_°°eâˆSñÞtmN®MaOè&Bn`0ï¸G·à­:¢ÅŸ%N£omX:e0;ß"©öF&HÓ~!£€BÀl 1¢ÔmÉÀX=õÉ¡ÿ½*ÿeÛH¢$þIûÎb¿õJŠkøÄe}à>œ™Éà'É[°ÆäGXEM·qûuµ(s)•íÝ~Å4»{æ¯ÊÈrß(A™éÆr,y/½4@ˆD }É3–Fs©f~£.Å'r¾¨Y8LøMq‘ªt ßh^” Pº×Ü[g~ôà4Ö›&…2&&ŠØ´Û‡u²j­õò½Ò×®ÊH%èËà;‘¨^¿Î 1Ä©wÚÍŽ1}($e~¾cKìTÇl©ÂŸ¼u9FfÃ'°‚†ÙGA>¢lo¡0èsœþé 1@N+…€ÊoîÇí’5é(뢈C¥Õåb$RãˆM[ƒñ1aø–`ÆHÿBYÂír¨nï$îWh^ž¾WÓꟾÉôÐòqìfês†¹ÉÿÕ6|”á³´J­-ÜBŽš³_‚N‘I7j}q(HeÊeÀìö}¥Ç>± ýåg€ÀÈp{¾£­~;µôwÔmÑ5‹3ƒ_ÒšE-³Ókæ“”áI`bIQÉIªÈp‹2#Ü™çà`tM{=tŠ$5­áΪ<>’?´¬~ô¥²y€ß’97š¢"[j"=ÓÚp ÜU|$¨§#»ú -ªùpe¢¹Ç@.$û¤¶Ú‡\bß~Q'¡qºÏ­9'_S¤kS3j¦SˆPNzpYh/;$à%~øÁ%¨BFÚ<Äà/t¶ný!!„ šk”ñÛ -ÀA¶Ó ×'<(b®7Š²î½ÿR— ‡+&—Út¡L ¦‚T2 L nª2Äúô^lhIÝ% DÊÂfÚa®×SÔrÓGò|ÓÍÚr qÀD.³TLcßç RZCC‘ç™ÛÎò7íL‘à %¥Ö]\Ctùر°<óˆÄ-}Õy×7Œ^0D µº]IXC|×ã¨gø²4ùsƒisèÛ8„e} -^¤àe‹"sÜôË:~3ÐÙ¨›„Â#j°rM ¦ûàG«Höò‰¥‘_䶇ëèÕRtì -$âE’ÍɧÏÛ¨+ ‡%ù‘Y×p¢” AQ~W¥¦(†EqܽoTÚ‰ìºB•I¯…â½;ž½V3\míÖðG¼ƒ÷íf¼•\¸à*´e½U‚¾²ö]Þ³¬~µ;Æõnb9X?Ù÷B -„!±ª±«Ìh’…¦ÇòO×ǬèÑ?ꙕ¸¬—"ÚÈ8ÎËÕ«M’Y·H9GöR§Éê.ô€Ýpò®ðe >Ý5¥´<& ¢¹ãxUê-~ÌÞ¤cv…ÐZäÇú†Y¦¤L³QŸÁõÌHGìt¥VUBlÿÀÜ2 ·ˆiUlu¡La"—ÃŽ«Y`ªÓ{E{s‰³äîŠ ù2Ú±„)‰ŽMJÁŠèº9 Šª!Æò ñ%xx[…&éLPЖ‡Ôõ<¹3”›…>måA¿¤ŽÉCã†iŽÒ–ìým¹¥¯~—ÌÄ}öß?K!†q3©WF…`›<0±ÆYèœò8f/ßa楮}~}^ÆQEM`V»bs­Ø_+;Pá¯ÕÖ†ë³+†½êòsÅUBÍͱž$ÏÛÞIfœºŽµÖ¸ØF6¤ý‰ Ê/43à’‘5zXe«íÏHe]öÑÊŠS£c}ôzÇ˨¹ë¢pÜôaqëõºì'ÞÜ׎ SÃÅÀ.Ù|Iq+úÙ`½ÖÛÇ-,‹äOú:*€ö"EØÉ:•ÙªŸb·s_0å~m«×Èu^sål=Á*³ÇÒÿà*Ùko KQKr&Ahâ‘V -Z`tÛ:ÍK"fy¡Ón5×-i7±$&m¼È7©Öfþ`d‡\ë5tRfán¶S‰ÑxÏÍ1`z×Ðe·0êI|ï˜Y‰\ÛÿuþU0óâ‚[FÌúݲšÚOVƒµ´-™t¢ß•g8í‹ó°æ–Âã†Mì‡8fS=„±1©ZÛ\ž`‘.@u4¾àìð¶ímòØ~ØÇP¾ÌXÆú! -ø±Ã•iA;_ n{ûbÏú„lÕÑ¥, 9†a(ÏT*Q{€R¢xqë«I±å’¤‡þäƒ.†Y¶£¦áØú+|þÉÑZD|rl槚%ü)aÎ2 -ø(”Ì¡MÜ7¢ð¨Ì†¿hcPW2U©Ìã„ÄPÌ ÉdøýYÝ)ÀŸ1¦Ç¥î¯ðz5/Þ4§ÀZþ̇8ï'ãÿüº HcÄ*Aè űµ–âX¥g…úw^½º¾Œx«z›bòvÖñ(=6ûJ°ÀÎ'Û¢nÉŸvLÏã)e›shì\Mè5§8uí<ØÖ©Æ 3LÓÅ Áš';aœLG´íØ—Žz3®\7¬¡|˜J'š‡C¸NåÕLݘ®|]´ Î’6æb– œxA€˜ÿçâ‘þÙ‹,÷ƒxÀÜ«êÂ¥ê!Æ÷·n±úC>™Ïm-7=™E=€ßÕ†ßÏÎFãëÙò™£TÜ»‹"¸±Ø»ÓVÓ@"ƒÎë“ ×U¸lp캓Žû_-™¸7.$ü¼öÈ4´Œ§ÜÜ¥Ý ¬PÊ9Xo(¹Ò¥*Ê…s'e¬òG¼ÿÄ¿¤ß]÷)_eˬřÕ “ROÓd)å -k„Ó‹ _}*^!ô˜)íETÄ,èÿcÐH‘(Ðô\Éx™·R/¹Ûo?˜ËÄæ‘õã!$áÇ(ô ì`.HÙ´ u¶œñÃî;tR#‘í)>0A?–¾$à‡,†ñ>äÁŠrýW¦?¿¾âÚºÝ9›égÙàtz%‡Ÿ`,º+ ìºÁcîÖu cfØŸ«ï8»­Qf†‡Ǿ¹ÑûÀëp*2÷‡Ç™\pËÊ*f;E‚ï±DMò8Ûêö¦œ6”†·.‚;=Öóà¼ÝS¹-²öt.†[N[!.d ã:Í°óü|Xš§TóÍcê÷NéËÓ_\¸VŽ›Ü‰µÄ"EÉIÔåÿë*º+àËü“{ HËG+9¯¸|‰b®ohÁs‰Oùv¿ŽO ¨ÀŽ”«ñ:û—™’»Ý ¯·- Öá Ó/äm$O•áê‡D6R‡ pÄÁ!_¦âÑó«ÓvôÒ‰¢Ÿ™°´ŸG(št‹P+î'¯¶¥SÜŒ) ±W.Áà$¹Ovä5.‹žëÈaöÑ¿¾ïòÜ3³_—üH[Ûñ£Á[§B›'Åù,A7{X(_etWÎEô>"‚›°àŒýíuœ3¯-£4qqØú·Ýçôaó™×wkëÑdkJrèÚ.k7ѱj»£Z†Ø2&yc 6ä :ЛÛ -3[~t½ë9ï>VÇ"øDf㽉ßB>4b×`0Àº §xÿ Þ¯xY°ÊGT1s‹:Öb­Ýì -¨{v4p~ø´Ç 'ÙÇAŒ¥½È¦o@°Ù&ö^–/ LåÈé4 Ô'ï[fÔ2+’_høÊÍ<½§º6iû…A«Ž!‹Ó§#É} Oˆ¤@Û."ˆÈp2`ˆ«¬NÏþ/õ©.4¶Hø ¸ÍT8„…L­m"»‡·cëbÚ¶g °k¿-Ô ü1¡³kÖYKL¶ãT}¦×û%'ós D÷ä5/tRhJa^Áyi¼Ýë]{ý:í¿§§ÌÑð!Û«ç°{¦ô~HNÄà‹Ü«ePJÀ%íÓ¥3Ù¡ÚŒõÜýð“â™hÛ³!ÃOcÏææ&?‹ûÝÔ&^Ë\2 p‹y8L¥[es#æ¹i9L#0SýyÐ6lS)QÛøÏÓe~_NTM±»EöØçàL?_ô³]›Å§0•èŒ Ùx=Yq%!÷³dîqa5¢D.®'ÒD=GÒæS…ÃTÌtEÕ­R£Ñœ,ç@Yäq­u×äaAóâ¾ö y:éÜᬠˆí]7óñßärð²FÄ…BDz!š3œFü'~Éê£ 0ä¬HÙ Ó²ß²Ê ¯SÛ*´ÉÁ›r$ªÃÆÈ”¹ZÂýn¦®¹G„½u£¸±ÆôCï‹Â`kÓ: g¼:K©Cá&SjÙ|Þi4o ‡I÷P˜Ch]©Þ„10ßs­:Ÿ‡¡cØS_W·¿O…ûÊÅ×SOÁêÄÇÁÿAH}Ð`è_È#›u$ófÓÕ wE’¥´ßå“ü+Ùbø”vÕ¿Öɦ|éJØÐÓ6&Å^zWA(Ó¦sUÊLÉÎ ÞB“ç«·RX)V4F`å‰lÑö@*ï,W‰õÇ^z\Æhã2¯®½*ÓP±:NÐxD”HöšÃ³À{V[7œqä3)níNó˜óGD;XÎÜxëØØücÆb”-Ú¯éá` –7Ù¶*¨)ŸGÔĶsmگذÙn¾SŠ@p—õb2ò¤äO±)Dÿ"\iNÕ΀aðyÖƒòŸôM»y}u%½Š³“ÊQ|!̺Óåhw€ˆìÖí§«ÂUî 7ÅÙîº$—6ƨž‘ÈâQöÜèEÌseýTÊ :¡3B‹Ó‘ùÃC%½†¤‰‹™¦&fV­=×’Æ°óÔX¥PHþ¾˜i p—„¶¼ñ`A\Ï—] ~ì.ͼ*(Þ( 7ô©½K»«‹¨iâg¤1º”š1¦™Ê¿çRl=AÎàªÑÆâ[Ÿ8Žý)ñ‘}Xâ¯Ê‚KæãþÚ$‚÷iî@ü=0Y붙ÓÇ¥­%^{‚¢ñß½Á]À¨;Á9KzÉAN}Ô‘\é("©ƒî£Öšn×/þLu0@ñ¼¶_èHص­Õ„4ÎK!Yäç¶çO.Ï@¹ÂeËÕN ѯåïlRUÉwß-€r'Ô[½94)lÍÐ@ÙEÞáãq'ó/ÿéCwªuˆ3Z’šèXÓ—ûSœæÒWs›eõ)k´WJDAJ·£Á®¶jžÇywOÐBÅ`¬ƒÒÒºx/Ĥ@ÛÈþ+ÂDÁdC\â“ÙÄ‚,ž?7– Á¹8+Á<[Ìv4æÅd‘¸ì ³I« 0ú¸}íe©V·ÞÒþE“Š?¶( e^’(‰À‘A-ÅÈÎc”‘ÒHu §7Ãù]´ekáµ½¨™ø«Vª=Ã>†9d„Cñ]kO¥Âα³Äo±ûøº¢¢M ~ÒŸzŒàˆùY‰YÑQÀÓëÏ.Ü-ŠZѺwt_ „–qm®7«‚b¾_î. k΄.TÁçꦈnrÎ>ÛJ€Wü.o ¯‘“ƒ”ѵûðMç‘<ÒÇѬ+êqeÜñl­Ðã¦ý8@¼µ³SÃAÔ””:‚ñ‘ðÔ+"9м¿îjY¹³!¾Bïåä³Þà<Ü?ᔇ6Ï9¯^Îã¸0žq¦›fžÁ''€Ž¿3&‰îW5 -EÏß© k¡íˆk©OÙ†ðêŸ:icÈ@‘s9W©ãO±XôJ!tëÇ–y/Þ€­Yw‹Ü£í^$3(^Ëé p‘I7«J¤)ôÑbrÝÌ_X×åc²gc'ì!-†èÙ}„¯oÝýTrUøÔ¦YêõfÈÕÒ…¡c$±vƒÎ# *Ø ]›ùÈ/NaEŒôî8æÎT×Û‰¥GSlú GtÉ^ãË*ËêÔö fŽï‚Xÿäô®@CˆÌÂϲxR&û4*ä÷2†ô¤çÚ°ícÒøïS¶èMjƒKf©ºÍÒà `ù6×&›¦päE—:*þ ¿Ëìk? -€ -ªiæ_w„`ß‚•…•b‹Î Á˜,àíƒW³(I–¤Ëé³Sûa†g ;à»háÞ£dJKù¯_%Ša ªç€‡f’Gì¥ÊF®oÍ8Š×¶ƒRÊÌ¢×ú’«ÁE)yVå5­Å²šš#®ç¹cÖOO³[·¨í; C‹µ´'r1ÜG—üúŒ(A©heý%L}Š×o$GQXhûrIoÈmº3]ÁÑ÷ t=!ÅS¡Ó´æ¥pô_h2ëŠy\Ë‘º j!Š>«u˜<ŠÊÿ'÷ßúÚª”¢3j½qÆôë`VeH§È^¸T<©ËÛEó™X†#"DmŽ¢$“<¶œRö½4-°M÷öõÕ+`Ï«¢,G}Û!m?¹‰þçÀB9ÿ/CxHœÈ_®Ršì~PA‰1]à!ŸãÓðg¥4JQƒq«ƒíiã/_ Eȇõ@µÞë.K# „iœ±ú#ÚÁ³5ìÕÛØ/I§îªtý|¿ƒ·ZºµÉÞóD›éÃ2Žºì@¬‘‡ÊPž£ÒIѦíÀ oøÓ·1Z¸ûC^m6À('ÀÓ‰AeñäÆ@QiYFS¼Ä`»ª/cLJó><º0<ôĉ–Þ±¢yä ífi_Çö#{™ïUŠ’gþäÛÜ×¢«ºÜü£¨ Ð+ñ^Þ«9tÊ]Ž7 &~ÄK{A•2n—'L²rö,Ÿ/5_°ƒN‚ãnš"ÑL7ªž¬ÿÙÑã^d¢w¤wF§ìcÓB¹F YŸÔ* Ñ±§‚crJ.Ežó›<ûÙ‹J¤qÕms½µ¡Þ:»TMFËâp_€¸¹A|ÉÌa7+°&—½¤ G÷ƒúÂm¸Ètʃ후æšÁößÞ`ÞÓ)— bꉔÜùü\RkˆÅ®ÿ—ò)âr$ë‘ð±ní’;=88ZG@bŒ%솥ñ½X;á;Ûé9Čڋk?GK17 t2ÛsSî®ññßý4ø[Ó¦C5 -åTE‡U…5ÂWsBy+_p=ô–$%m¸7Y#_ôÃ,<)‡"á ˜vI:4q©{‡ÑDÔ$!FÝ B£~ÆP|Å'rµKXZ‰¥…*lÚ%Mw}-R[%Œ[ˆþÓ†‹µéI´iMõxa>ñÅcñW'\Ò¨F¢yBש«g„…õUíדHÍÁª @ŠÙt²fô,ר·ãŽø{èÚÜP -@å*Ù{Âè°S–»ÝÞ\£ÍÉ:›>%É‹r8Ÿýª¡-@BÁØšà–õðºVA—ª)M™éB·§ª‹q$óµ=I؆îäm•åFCÈ,b§ÈnIcq<»·üÝzezê–…Á`â%Q¡]®—Y°›–¼ÎæÐ@ƒ.ÃÝÓy1ß8êH>süa¾\õ]`ï±¼÷Î.ÆG<6JÌþâÏê3á±#Êê˜ì-¬¸[¢9ô™e„Qäg‹ ªÅ……i ÎYàã6?³žÌhÒ™¦¡uš«Q_σQtIe¬ëù-£ï ¢R5¯J«3®Ö[ßFu§T]î4yntçƵê¹ñ Ãl‘·wÈxA¼ˆ‘š Ôh•ÎÕ‡õ—#5xØy bƒž¿ÍµØ±Úª13wrŽÑ–pü «Þ\ÏÅf8ÄüÆHþÁ(5þä'ØÙñ`Ÿ"å`\ïN¿&(¬Ñ\&'É"6d1´Œ@ÄÓýMKÔÀ²{]hûÊðäÒÛ®ô@݉ª‚¯…vŽdX»9Öïž~p’ ¥g8\?±'#ªÅî,"Tõ¦OØÅ‹ñ*£¤¦ØÛ;~+H|ÆUlkdƒŒ¼´#§Wú9ÇáËÛ*E 0<¡ìí_ë':dólè£#æa¼-uâº5]pŒ@3¦EƒÐr`_»_€µO¹ …œAºÒo4R^£=y%' ñ’:Ôð -=õµ‰¼!†÷h¤t%x¤ œµ¿CÓ qùP¤Yä ´ÕÔµ2áqœ²zRUÓh?v0ÃúøJƒM£Q¡odÕ^Ø zœ\˜’”ÖÃøƒó7aïH’·Q6¹jf$öl×~õ‰½çøC»ÂÆ¿ÃÍ  ?jë\š8+‚«\Gmà…¼5ÂEžVϳ¾#a4É*¼|ÓŸIldÈ›T]¡T¤jbíüÐ\¿ÿ@yÜ”êífl=βzÍU”±(„VÉ_½Ÿ>ï“”Y -z¤Ç¹ÿppÖÓŽòlÚ¸4 -(Ù]4/G:uUB£‰ê‡Xö— ݇öDýüu4¬ÔN͈ž -owêòÅ^‰'Ø‚ØEI -Seè›9÷Ÿ;Øu¿òjÆ2ØØûý „ tðÔD5Ú‹~$¬eµ‹—aú@Ç>–w±Q#ƒI™èXÇÕd¶êCδ“Y¬É…N E[¸ëáªm"XÊrWÌ×ÃEœ21fCÔ”p]¯±ÁXé{‹´8Ü´ƒéü†:~] ’nÞEÝ{ç½”0gÒ*rëm3·rè¨ Gå½ÄuôûäÝÔ«Kú|N Z¡¼'„à“•\o¶ßŸ¥3êAµ:™ÿ®žûµC{¾ ½º’å@œapæO>*J{Õï8Ãï)’Œ¿½â lc¤ËðÈV*Ÿ<àÆò$€ü @_#[$FÒµg«§$-­®eàýZ""ã Zųpª#úñI…b ‰%íäe¼â;œã¯—$' n¥=’“|b΢£gȲmßLä90ŸŽ*šúSË9¥‹!,ÒÇïJ­ÏQœýìóŽFéž‚´e¸Î.%=ì…Í!=YS·½-uäèÒrÐ6î›U&E¸=›ÊYIã ÿ”GzYETà1ü8dQ5ÆÕD€¢s\hÂÉ"fñuͯið¡@|í«ÃWéÍŠÙ–h¿&ä ]TR,ð çœÍŸÍ®—çÎÜ aD–þYwOœ¹TR¢¦)/ÖøÈxö¥öœžJÞ<±ÅP9sŸÐ›X@;aX¨åEeÏC¡«Î€0Ei…-¿9B»yTñŠÞº¡’tf„§˜´Z( °()»òB‰Ö«‹É¼ˆ1k|µÊCw9ñDj7J—Šàòií;Ñ·Ãv’ú)“‘,UQú`¢P°J5¶Øj¡#: ÐS>BƒpPܺËíñ!‚½HÄ%¹x߃“tðß30„@}S\>Áeý‰©k)•­ ÉX»¶{2±I!8ªî‰RÞ5—nϺxgHu+"S2½dÆ{z̲¨­MêX‚ƒê?!#©u•¦­£ŸñÍ6ur±rw1”®«ã}f;úß 6¦\ÖÄÔ±8Ì u+ªðá°i-#9 ób×èÖcZösWÐ=QR¢=`QUÞ‘œI;CÁgj®¿rVÔE.Æõõ›Kµ•¾2P“'ÚÙ0_<ÎÞ}o¹i³l^ :,¸‡ÑšQ¡çú‰µ¥ŸÜy.eèÖDÚüB wÈmí~åe‘ýx¾Å'ÂI©ý6¦yŒÐUR4 -5¬¨–.­¦]¿ ë©К4ž¸¸FóÄ5¼³ ©)sJô¤G)¬zÈd WEò§º}ÃÙ`Yp±Ò±8)î5ë=3"æl¬KvÎ8hÑdÆ üÿâ¾Å¢oèȇ(0Ôù}Æé‹’ïT?ßë­|e©ƒ§] ÉP7ÆÚ¶vökïáÞ´½Èmô9½ñä/9öF¦щ=R‚ZÓÏ7HcqRžrëò§…„€$”Al³… -£ÚzCD(]p©ùõ -qxìÞàŠ¨ -3Ê+RÚÆÔHäÇ¥ -*õüE1R²z"þ²~hl ºÑ£°EÉȤ]8ðô´âEäö³€È¶ŸJô)DÖ~3XQ ÍŒÁ§N/BòÒ¹žAjÖTç{4_ µ€ˆzM|1V)½4¸)ÔO`id>wöȉHÆ~þÛ¿ ¡0‘z"50Ìt‹õ6jTrSvúíŸÔ³¤9a8¸ÜªõÓ#ßtñû½ýPtÜŒÜ/³kec†ö{6Ñ¥Óy¢³Õ: ÛÑÏ ¿Š†>ÁÅê¬^½ÖYý¯7‰3›] þ§™¡=ƒq|¯£»3ZÈ7ÿ ‹¡SÞuA¨5Íßìæ–7‚‡5ß5 %9\AŽø œé -öw«Ž^Ÿú—ÀºÜÁéNs×5)¤âKU¢‹z%ƒeªxÚ@Õ>û`#0 9eq´Ôø‚è1Ìê`Øè‚éþ¨¨~fÒŽã¿úÛ§÷WaÏ€¸IÂ÷cÇSýƒŒåá -µóÞFêóR9”Õ}ªî9òÔQ3¶˜¶0üþv5Èk IâFw#"∬Ç-à)ö®ùÅáÉj0ºX™Û&" YÌï.1…³E挰L¬œ“Ñ^gÊ÷ƒI°h±ÜM·<ÈDÄâ ûiìÜy)kâMÁMZB›b¹~MÐc‡J"þ&GĬ)U·Ñƒ>„ÉF2y"ÖÙ†…pÑ]ÏëvÅ}ùECÅç(¥ -¡ &æé•êïF 1DÂW¨Ø í~VÚ¦1D`â‰Ðïc½i÷½@O´¬¤ÜèNÆx¾˜'Á4¿9K”Ǫ&©b;gãÿÌB¥[?¹ªNBO¥mCŸ?æ½DÈœ-ìhzѳv¼“JB'ÎÖc!›ž§>JÈPàŽô¡2ãš·¶ÐnƼ£y½œUôùx¯‘6ÌÞ˜oÆqLø`Š(çºÝ~ö7oµÇÆŸc{±êêT“/QjCPÒ–¼Ù³,0êÖ¤ÍôêFû -R—Ez!oÃp9Cˤ¸z¨Qh& ëñ¯f8®xãL &íÙ—`^$kµŽêlJK¤* 3Ac5¯Êˆ,´qp¿Ru`Àç*Æô^¦3ˆàî7È&´·];C¯<ç¹âï”8ÒÔ+õTªÎšˆîk3éfôí–àœOÝ&&çO€¬Æ¡ý¹<; f$¥Ìv¾a˜ñ½'%…=3º„NÏ4öGöµ÷Š ïqüíÛ¬SýýAá¼¢{¬˜¾R‘~ˆH1æã ®qZû”ì<»H$qLK*´³j.O÷i†$’=ÏMJ©óŠÐzÉ»€Ü΋ -ó“ɘs&¹¯‚þ5î@”W$ÆÍ&ûÎàdc!Sñ -HÀ²˜Ð£w Ž NÂ&Ä’ØûlÉË&⸴™¬8n—m%¦î…ν !­ó@U3‰/…•yöìÐãG@±j}ßüæ58`'Uµ$Í%LØ¡×Ú¾ì:OÅÇËÑõ„|׺7LHLòcŽÃ¾^)8RcªØ0ñû˜kÎ`šÇr@sBòe²îÚÂVcS -¸^È*úἘòS~é¢Ëi0õ¢böòpåó]XUB¬dÎî-2bÚ—^lŸO×r0ƒ€Ä«¡±,áŠ÷°ÕtB¨"¶•.f¿ŸdÂÛà‡ñC¹"Þ£TÊã£Ü½¯\ÄÄé~P‘”\†‡–gW W™ŠÍØ ?V SÛçMÖ.›·wÐUÕÇž‘cœSçù$}š²…²-wÈ‹¹@‚A"rÆ‘ -öpw„®ïÜØc©S´LÓÈL*D:;Q2“Lúá¦Þ³>tµH£½ Ñl&o¶e -Ø£DŒ >ù:òŠ%ĭP ­tz%̪ҮgEª]Qˆç#*cö½Á˜Z³ªcËÈ2C¹!¦p?ë’d®SÃx íx‰^Í2“ -6º -ˆÄïÄ“IHŸ+°Z[fÀWóÙø!±¥1ÅÆ×lÆ»6W––«SF oœ´cL\>iÁ…ªß¢õþûË03ªØ¢ÙTµ©Z▶܀°ölŽ#…""ÁÈS2Ü\”«1¼¶q²ðË?¿y¾ÓÒÂ7îªí} ;£“sXœŸÞ¹-ÝI° ñ(PCσ÷ƒrWñ”k{•:C›þ¥4õo†E«7bò&˜öQ«øµxiÞXJoŽ -pc £àÑxI–#Öe]8»RcÏwž(Í/õiŽ<¨ß89k3›ØËD©LåñÚE¿¡Ø”þCåþ»5ª!ɾxYâjun†¦¬ÒeEUgUµãæJA›âºC«sÑfÕ—g‹(¤nµ&úÿwIÔÊõÛXn1¥7Ý-]¸s=– ×ÓQÏHEz<¨R×4ÓFRoŠ“_íNžû³M£A”n.bœ~7ûÂü>{‡,‘€µ¤â/wº–;;a”j=Êß#;–Öÿ Û -Œæõ?¹Ú¢JÆ4›¦La,Ç‚AÂBéO¦_4‘"Á’«lËÄ=~¡”zªa}M@.™r˹Þ̽´Ü8Yââ5øºÊ—ƒÂÆVRï ï€Å×"u$ªS"Fèж5V}TS·w|+ßÕw|]5ÎÄnä p./ùæK\J|~²4ü¯.ú*AR^ÑO¥W¦oC m,]Ü4s+¨#ò?ûÓSæ…E/¯'¢3,¨÷AÙvœ¡Á}{·§×q܈ ˆ“Ýõ1aU“ä@ÍJ¡Ywfã=ä"sW‰¼ÿȳÈÇOðdMåžDmM5ž´µd]6: ß«Ÿ-¤?¥í¾m -Q µôÎ0¶Á™Ü4àY˜-GóþÝ3¬ô:˜â•BÐAÃöÒÀu˜IŠHHÜ_äôg.eÆørËò/½øÇUÌeÂÓE7t)4;ÒLXK·™{i:þhÍb§84—QÑ nÆ}$©0:x£2’MnªÚY^/° ÚgéKäw[ãÖRg'}sARâ÷ ßø£Qåôª8:9e {5œO"a³‚WìVuPYå}6+u.ï­[ 5Gî¾æ|*.g©PÚFÅ“Qµ%I½w$ÎÉRK‘wçë}3x½á–œ4ûSiy[Á¶ÞÞ.›ZÃË—¨¥5¸¥KÄ6œ™A#ÃÜV»¾š$üTH©z0Ý Üit vœ‹Àá‚8XÆÉO•‘ñÞ?–N^w®áþ77 ciÆ߇n -OË„8kÛ¨‹,™ëu /õÞp»’÷ÿˆX¹gë‘ìó¶kmjz³ÁbËKÙæ(û“áQ*rèÄOXÐ<ú%Š4âèuL{8,7,Ç:»ŽL§ŒüAw{X–,…äXø_ q#oSˆç™£Me¡ž·6…µ…@^9dû˜‚£Ì¶ãr|À§¨d›ÿ¤Õ¹öìRä)ô²k³-N–ír¯ª½%õQæíÙ¹ÞZk‘`v2µÔ¡ýTlAÝ2­d-†QššBûK¥êPC–œÔSÚáUr. ¸[è[FÔ™kR¯C;pS·žËäŽeŠv—aÁd¯Ì1£Ëð#ÒÀaȾd]íirS(Ê)Jܸ֓Üý–6ê2¥0"VOMÁ-æ5´ü–÷?–ÜÁõKz‡S¢¯ÐS{)&ÊôäWu¥µš)|%¼ÀjÙ1d]–ì#¥ [Ž6ÒÂ:K¢GÄ…4ëÎüF‰Ï³f’uF1AWœ8fÄÿŽhõRB{&ÚN?Íâ0¶…Ss‰¦BR·t¨C|&3+‘õå?BœçA4ÆaB¶KÑÜÁ‰¨¿Æ{Gg·!N]’š-Ziù¶AÛ2£Ã(-ÓZ6>¡3E`ò2«Ú(å—I"Y£Úo>O¥”\.)¡³k6ö‹.%ûTa¶JÉõÏÿ@ÿȧ ™ÅdŽS>]ƒ5»‚"vVhD©êA»/ñj—W¢}ù—ZA2º )>°5Ä4¹ß­S´E»‘Ó÷f9¦G f‡:Eyî>¬µüš‚»Åfì%Â[›¥Q2³g³Ó†˜[ªÛpƒ»ªX­µd6.a1%ÓÉÏ?$tºJ(^Ï$ñ2M—/ÓJßy\8=nÉêT€Â ëÃþª‡Œr xyEû‰:ó·ÖtW=^;ÔÍÇ9ÛËÓæ¥ÎÞ^@&{Yw¹Ö’Ó"³³´rf´¡KáäçÆœtw¹ÜèÿŠ'¯ö¦LP;È33jM}„"ú”ø)¡¶báç„AöÑgÄ ~¨›'ª¶Bc(”­j™è#3ÞØjÖ(üZ·—LÓTøÍ81|’M]2¥F5FËòÄR[z ”ñ¦I)ÙK -,fÍ0²GÄ:»4KORŠÖ‹Wô³]¡1NnÌ ¸#ãÛû–ö§<ùnöº·ƒ,a8rhuäØóNàšC«J"ã”عÓrú#tf¤ß®l¤\Rj«—*–WZÃø?ÿF1²Ð -Ì÷î2øO?áV¤…ŠW o· 5kx…ÁõÛ®C…-Ä"bÇm­|˜ß,*PÜœ‰”B>;“ípþxâ󰀊7Þ|ÓMtº­ä© ០Õñ•ÆT“"z²ÊË‹=p‘nZ7üt¸óßçÛlxøz,&ù>Émëê3é,Ý£¬l ÖÄ8Ï˛Ԟ‡ZrK {±?á6Ù’5Üã £TK*‡6j‘ª(ÀÔ>B´Cü½B’_à‹0Ÿò×ßû1ÍÁÏ5o`òBî! äx:mí•U ïFÔ>t„ -ôiÃÁe~xž,”„¦ë 2¼ç÷«!`z@r +ÙÖoc;„j²„¼ø°Aw-åÎ=Ó%åW˜)-{Ùr½uú•)¯œ‚ßröA•ÉÂÜãE(õ@Úý{ë¹´‡º“Q»û|ü_‘RÑå» +ØÐÆϤëA³Å -T@æ|ýq|Vk¹¿J% qu8P¢øwÄGx³ÅªÛ̆ÖåQæ¯6K üªÒ-UŒ\§Ô%¡bÕ"t-*ðxÔõöÓŸÏÿJ‘+ +}ì3¥{Zà2ŽùÕzݬT2sÀ$ZõÌÑ&{Bè–J×{¨¥ÜÆØx¹<¥Ÿ ,—Ü-.è2›¯iR‹n·Ã±vÌÙ¾1ä • „'Æ䓱©·_r"O¯»_‹t±3keè¾fBݼöVÁfj—Ú9Ò³ÿ Õ7!“± ž‰wÍÝX:À 3¡Ÿ¤Jwïͤ푘IKjáûfWüýIì.kvCËÌW_Ý5±§gÛWZõ—WöOü~Ü]!K"xÈÃÇ؉ÑruìJÔ¥Œ?FÍÚ6ëùJq‰>¤ñB^£Ñf'<2¾‘b‘ä’S­z>/¹kßæa½âɾP­"jñÂ’Ütà}[Ú#—[pæ‘å__ íñ¢@éYíÙö!ɹûsÐÎu~Ü×/ˆ8MeC2+{‘Öx$*´ì|¥û܆k)·°DúìÇÉ 3CÒŠ”ŠU–½DwËùðé“/Õъ’¬£7u”S2ÿôv»ÝÎì ~ˆæytöËKd"Êåf!ZÏ…?.ê¶ÇÇ¥îÌõTmµ¢BýlæHôœ ËEU[„ZF‚²©`Qôy)`ÞÑÜøgdeFI—¥rU-ÆJ~ÿ‹xõgí4†KXî­ {ÁÙ¬³÷“š• „æ7é$þ´åñ˜O@Mûª£?\›Ë(L‰â©Žšz%ŸÕKNJü“`Ä«¤Ò}ÖW6¸¢Ä AP6N錛"Š7`»¼Ü“uÕN +£SîX@ò*iÓÄ,þxIÛœ*O/"–À · +t1;$l‚ÈÌÿ% Å Ž¡Öûp#¡B+¢}×Ú€»ûø'Ʊ²¦RS^ ¥ÓP˵™a‡Fõé°(¾~²´ö#¹À©„„ݬۿ„ªØB(ÑI&@ŸæãÍä}‰-á˜:{åyA$¸m:ø‚‰'Ê}¦Ó§j^\êÿĺ>ãsýçe–ÈgÅáz!,ܵÝ/”uð·-9¶u}’¥e‘µIyÏpÓ¶s$ŽdçÈ×NQ/ÐÓ9¬<ŸÒ`ïÁ _`„™m;Ú4uacxr­!¿ÝLB CÀ¼u"‡KDêŽPo–Ѽcùz·¹ÞãþÇض„g„”£Ó…j=>1±”Im9ú!`ûZ&¡U¡SYœQËoeåȲ ׿è 0G¦> ý±›?:ì.ñæ£ éNdÆ¡]–¿øU’5¯«ª=î¤:ÒÕ-©ÝÔz6‘gÜ&Qã°ZI[µœ)Á©(ØÌ QÅ ‰À^6¹GB϶)CfœÆl‰Àg¸=УéŒý³Ä¬¥º +Çp#E …뎶º–o%iiþ•½T8Âv,%&{6Ø"I"Pu>Ul Ò¦n›}ïžéŸâÇ㪣ê×uêèj¡ÜyžH^^‚ž›?€"8A±Ã†ŽŒ¾ÞKþh_´°WÔÜqæÍÂÜ(W©êiš¸4Ÿs_Þ¾«"¬/êÉb,ãÑܪãèzšžëåæ¾V‚Âg£lµøÛ8_¹G¨jjÏxCFT¬Ä£W"¼1v&—“V@}B8”W§§¢ºÉt 9fggü÷Þãs× ÝKm }x[õÇ!.ZCgÝAŸùÛ¬Ìõô<9vÏD(Ñdh9Ï,‹oKÑ4Ѐ?¿Xe^ÔÄEïÀ>‰”¶miQÓË>žLÿ¨œ›üí +‰Éó¨|(é—2>à!*'Š%芡N Ö7Ô¢p> òWr¿1½É N{LÙ:+°>Ãý¥ó+ÃÍ––õ¸:UŽËö)ëhòË<§ÝtÚØ~¥j1 Qž®-3}™•£ÜT +Su-]*ð`{,µ(V¶Ð»ç ߦ,Úv´¿Ã„!+ÔÖZ]¦ô(í"Xn‡iÂ%¯ƒ”§YÇóN=Dy¹3`LuŠ3×¹ËüÚ»õŠç¯cØ:5‚ÉT âÕî&( Ì(Y./õZ¿V|‹‹+7AÑ‚}4ª¶€ +ûßé¹ à°y¼¹ÛÒ3ù&)Øã5Ø"OUpš|Ém³¡J²:UŽëcQ”CÛd<9^Ï ]µýÜÞÞ8Õ}Òîêÿ«÷¤½q¤¸uQŠŸÒŒÙr/jLÏñ¼Œ-A°Þ­?@„ΚqÎõ°øV½Å(éaõ#«8yàV<4H)UÃIú’8¶k´ËÄÍRûõ|;ôÎz+H›Ì¥[[ž !i÷2BÌ7| ,_™˜Ÿ²’0ùÑ-.MŒnÙv‘L,Ö#È–ÏÌSM}b÷Õ¦NùMªõÓÌa¬½û×KçâùߦóQ@á¶ÿ?ùvP0\HÞ¼n~¡î0õŸ~²4'æÒÝÀG¸Àf +¥4ýi9«¬Xho«½šÏ4PÓ²zÔZ1ÐÙXîãÎð …0€²Éw°ÇÃN?«3.ËÔbÁH­Å+,Næ_ë…1|Š…s²±‚Û0.TÉÞÇá7iP½ôòˆ–kçrþ£œiËæ›Ó—þ×;«Ù`C^ÍiÈdõkÀ --OyŒ^3œŸN‚^oE·Áû©Q^Úx7õ3‚½?]2„Aм›:bʤq®;Ùžýl†òÿvÇVˆ‡Šäý´¨á “çÍï5hÓÓ $YÚëíSàG׃ sSû~D¥®/ƒ#J·ÜŒMÅxœ+Å&áªdT€.¡‘hÆŽk¤z ÝwĹ+  +Ε +9w5™p»â>|‚NS¹&V©ÿý<¹Cì.¦¨¢šê¬¼šì¶Vûݦ®mwÒ§Gƒ0Á6RYœ éH&9g‰„¢>ùÙ1ÌiÉW¯—ÃI?Æ—„ųȦ2†Â•ðY;yÓ‚goùÙ§º±û»j‰iç¸]¥­WûQ®Ây_¿6K 1Æ_@H{`xçxó° +_g²g\ÅI·t‰î›±Ž‹ˆ5mÄ%Ÿe÷|0íÀ/3Tizwìƒäíq}Ê–¥Nõæù§þà³þžIAeG÷ ='ŽXCÑÎ8¨ŒëoŒ]?ÕüªŒeåw—™(m*>[ÄøG9è´°îÁc.b7EÙ…}­¾­Sò(E¤ÕÍJ~ÐDRb…x `bnµ*ðˆ°•³ ·Gë—oB)²Ÿˆ7!’SƒêÔ¦Îþß`o ?9ù®‰§h{çFk9B +L1®÷ë­yo(QG‘$0™×°]3­#ê,OJ¦8|~áî"ŒïÏî¹ÕÇÃO²og(Ä»xèâCßgí”»4}Pe &ol¼0’Ê÷'À ·%Y>úÎV»NoìÇØ‹„ôlÆÝjž=;xïŒþÄ­ô›ÊÂ3å)Ù!Gót²»ØfJ]…(õÊ2{Ü)ir18/–dœYÅÈY1AgÇq¹Hƒus®×'3;ÂÇí‘’ËžRæNt(n> +"ª Ê +Oÿº`A—‹oxbÉïE ôÒš›O(JŽÝ¸ô²tÉG•„Çhacb-ióëw´S9϶]š(?#·½ë#ͬðø7ÍÛ†DÕh,,#œ–¸á¬É×ìX=Ûò@Œc“Œ®…Î “4?q>ä‹!ìå7›'CRÏ ²:†p\(órGV±Iʵh3̓§¯1•_ƒÙ¡ø +‡Õ¿Ó„ôÈQ‰sbv» +tˆÑüÄ$>yî=ë-â|犬D¿ÜHB«þºÌ·Ë//ÂäÝå‚gÑmÖù?SÄFùOEÁn7ÓÅÞìUߎŠU“êfÙÝ¢×¼EÐxý­m¥»Ã¾†ÚÔ_™†§D¤Raë×øßnÁÎ*Õ=øâ¯vß•ß2ý’ìÇèàõ¦×têÍçe拼ßX|ujŽ 5Θ*·{“—ñtx·ÈbÖÁÒl“&VÖ¥ !ÅQ¦éŒñz²ó>!)™x[œ£ÞÝ5&ãÀþ\#@a§gü$5Î$hƒÏ;Öm€Ux©)|™ÅåR¦pf *YFË•HÀs-ƒ +*‚ç¾Å=,”$4zëåk„bkðv?ˆJTEz0ßX_gS"ÞTÝ¿E¾Ô“ÍfÝü´˜Y— Sî`9œ—Ú³¤s‹ pÿøc<ÅʨØ?DÑÔô]¯ùöšå å¿šÿBÇG?²8"´"¨tÒ9EøS)ÈÒÅBäx:oaáê…f诋D&—_<þ( 7õÿ›N–L'º%Ó_1û¿Tá®69ypFŠ¸òÄ>àð\ß'Cx~LN»)ÒÅïVæÞ”õ³ïO0Ý"û°¡šô‰ÓA \•Å©ðÈÄwšþÍéyõzN"3“ƒ‘¡+aYïI"" [‰©U¾w4GÂׇ–(Îáឳدõ4drÚ†ÿªÚ¨a›ò*ˆR+dèÀ,w• ÇâV§m ´~¼óAÑþÔ)íø|Iäyœ¥·š@ +¢ÿA%š0nje‡¶<Ž3D]ª‹=KðÔªZ})Biå#y÷cJ&ëkáuÖêsþgØWÝE[Rw;Ô)¤úTFYß΃Á0u, LˆT—ÞËŽìŽ÷Ã!l6pÏ(øRJ&4‰Ò§å·zD(÷8eWõé•E¸O –í¹(bHN9íê¤IÎô2qÉMž"ˆJp÷ß³¼iÌÂL×x9ë1( j„{x^P@õ×ïÔÒXÝgS*íHX–÷bÂe&Š©¥óhZ_O¨å¤VQ#žêJ;ĬªÉ3q6ØKXQf©ÊÌ üËM¨<±ú˜üéP¸dÐÄhæJ†½‚ iåJÈÚ@YoJ‡¨ åÙŸÑfÃÚƒAyÏuVi#Ïóé8ÿ4&¯D:·dO&ÀFB+0MŠñ\Œ5bDl[ÞW¸»œjé>Jåuñ(RܨàЗŇÃMûîœ;ƒUF°Ðíßµ©Ø»6ctÄ(óÀËÀ³Qmé})mh »´éº½i¶1ràÝn’)œQžï‰Ø´¿À³Î¾ëw/”{ê»ó¤‘üైI3;Ï4Žgáôs,±Ðæå‰Á™ÁÛídQs æ¼kˆì…_S+ƒy‹’°¦…ñ>{ØðD¥K3Å-z'C…íˆ,‘b!©HfYLAÑ~ýqƒçÖ0íÛ.fšŽ2nõco,‹®gÝ5¯rÉ#†¸ö|é„m¯05ÞËåÒoJôpÄHŒñC´·ou{ í¤þP1}Ö i&T kÁ¢!ðkZe¼ÌÊniŠ0ù€ó8…amqØlš¹!‹2à´ðþ‘ŧY›š‚»s}—°ELD¯GÏS*)@N8‰5)CÆÛ,›wõøµÒš4=½Ô6"MztŽž]ÛAJ)]L“œrŒ*In–¯ŸC^çQ!I½§QV’œ°ð™ŠåŒZ²ücŠ2ÚÕU†¤Õ;ÎBŒ—¿FbñFÕ¯•‘8ônXŸµ—I’AL ^Œõ‘*‚›„o.é–\úSîáöåÙYIuìyXs­? Ì1žÀ¿óÐ:¤G®d¯çq¨ôN$JgªúnLsä{BqYÊ]j•µfþYBÚr뎊í„õòi¾Ëó5²pSŒ«ÁC³² q: +‚99xec]RÓ{zC±‡º?yOºSÖ.æ+àT#`üJ*´‚*¨®OrÍ×: 1-²¼Ga"FXb¼2˜ÅOF+< ãPpÇT)Y(a‚VÿK +¥±»Z’Ñ¡Ìû@ˆˆÝ¾O:²är±^Žæ:M¦9sª þ…ŸÑq@„*D’úY˜_Ó<Ib>Cñe[@Ч]%‚¦È€#K7‹ÔêúèÈRj‘œk2A›>å&ƒ^²ÝèRzÑ=f‰é–)øgjAÝ“'x‡bBPd<¯ã¥^ÒŽ,Ó!ávÕåmØ J!‘±*<®±/S²ÈÂ=MÌ9}X[ÛR3áúA2+Nƒdë"âvF6 Eõ’[ï.¡ÎÓZNN‚DãÂçhŒ£|ðKç>5Ò‹.5(KáúÓ>+†ƒ+4»yÕ@¨ÞŽÐBÕî[Y¸¼”õ ¬-`üŒ•‰”‘ñÍ‘!¥§-|©õRVMr6 d$j÷«w®eŸº­í(%.`.öò tÀ“ +`ñȈžèö´n1åh nzÑÛeRà€#nùmäÞO°þÙ†wÂwOu*NÇøkxcŠ™ÿV£ÔÁ9¬HÂq8°2ɤÏ3ñ¢Îòò×Õ›ô¢ƒ.Sš+È@&½Š‘\ÄÑ]ÀbWß¡!¢NÞ¥pÙaÃî0’f¼lÝn»Ó +ED ´pèCr:ñ°óåÔìQ=£ä‘èâÌWµ8{‘mCUØ·;·Qtþã[®ŠZߪjÆš´|YQ4ÈæC<ZeÏØîoäåúD>소óV@©ÁR6‡÷¦¡IÝ+ÅjiŒ¥M½â×.Ž;}ßRÖ0û!ë3+B04Oúqߤy²ëDåpäúk~rVUÖlÂòF‘þ=ÏÃá ~Kî,Ü Ð„Ê³rèðe!‹¨…3wír |fж’þ|l°À2×4"÷låeÖ™¶é'èINÑ,5ö®LÌkME(9Îh¥RªGó…M'Wõ ò±vnvq“7R½ö7Áì¨nmpX±“rëú§º‰8Ò&§kŸÝfÂLSHJ¬£ÏXiÁouGö”åü­}þRóʵV'v-L¿Ùò¨X‡“ri'®±ÏUylÿõ]œMœQhšýÙ Œï`(iÂ4˜¨,Ùíp&\3}õÁvÄ-'Æé’ùȳ•½äž=´“¨s¢…7Fyv·Í_aªÖuL¯BDMþ›½Ú¸²ù€æä÷{“©%¿ ip=^ç±\FœïíR%Ôéæ˜-4›¿3}´¾žH†üoîm7vÑ“/ÒWJœ MÎ×õ›Uf‘#œü[¢\8¿iPæóʹÎuÞ:ƇûtMI2û!:1 åEjW˜DÜYvv‰´ü—ÌEîÙÛPrwÅíÙÑù«MÄS-¼Þµà~î`§Yü„ãÜæi +èûÈ}TK¢1B +AÏ•‹Þe¨(ߥ²«Çi¤U enŒç«7ª,–›û¸Äz r|G¬Vd¼µ§c¸°dK÷åµ{@$¿„± +ž Õã`/€¬ W[ŠØ­FÞÿŒë+ö}¬SS%l4¥!®“_'ã#í´•š'0ç¨âô ™ ¼S +|t\´Bl XÂë}¦Ž{¡5D|5äîÊî$¾§Yõ†­…µ‹Ï®8¹1ÌØÅ©Iûµ[Ø̉b·¯zE …Ú/–T?=ˆë‰Þôø X»‰Äd +‡Ò‚Ù'˜ pÁô)Þl¶Á^í@*F}ÞaêÐ>çî>3+fÞ±âÅ2mÍä +QëH·y•‡[*ÿð²x'M^)D~)\š¨im ·hÍà×ð>¯I¾ˆšå}«¸äÑÁd¤@ñ§BÖûÜ®|ßî_¸2_ÿºÂàø¬ þ‚ÝWÑ3w¿ÇÅ­8¼$µ&ìÜ +ßIôõäë<¯ŽÇÚ.Ö\p£ÔPx~“¸‡G<š°n/CRNVð1,“oJ0ñƒ¦k͈9QcÞ#¨P°rKÅ!ÙÀŽFn(3a…Jã»­üF˜§âôQ› +ÀR!ïëÈ9neÉUŸþ{ªuKR;dÎZ9@úGº¤ðòÈØŽ‘µ…Î’çJIú +%/Ë bcªéÂÄú”(#9´k˜Øö‹Ü¬zvµ÷„I,Šx›{¼'ªòBd!ð <`;Ö8'âÕ|íâ9ÕÙœ¿–7±«äb"¶×65:Ää‡XG)Rpw,<‘QH„`»õdŸ)+GùÎu=熪GÅî#<šÔg´qÏ¡ÜB›NÁ@†_V×!ª)ø‚¦­ØEãsáSX‰™U…øŸâ› ¢ÎÈo¾IdI}rì)O ec㘱,V…è6ÕUà +‹Nôð§¿Ë7‡2I’x Zr£ ùi=À×l@ÞnY½”]ÚUGö“ ußÝxªÿ#ø€¿ò«…?(p€Jt}q=îá¥sòÐ;™ð¼ÚüD‘ê‰EÕ»g¨¡#È*t|mX7*à™]€É>Ëm̘߈QGFs&ZôÓÙ¿Ø=Bg¡2 ‹œ vgá3mÝÿ¨7è¡w«hHËÈA¢¤ *'àClP”¹Cqv)×åÏjÕgîÎBþuª"û´WÉŠ>l]ælA`‰=R>·†Ïtü¬F7Y3;'ߊ5ôÿøÿÛ@Tç¬ê†’x…N¨ýáÄÆ@€;ã +¬Œ®±ž«x²«AfaËìõsÏô‡xÓgòŒs@s;h»<ºb::˜5·tk¶/å<ª½‰Õ HÚîùËÓC¸Ò0¯vêH†›%M93i~ÉÈ% +Õ6ƒƒwÓˆMÏz¸ÈÞ^:FÝøXÆ +n®`1jiäafå1£Žˆˆ2+qSÁ%Z‘º BÏ#ôR¬æô`QšûÿD1ƒÌ1»Eúº.rlz‰¤6OÑb +åGwqŒ'®¾ÎZ;¬ÑÉx + ò_Aè|!Kb2Ø'R¯¾ðlØ!–1ae·VΧâDÿvr!K˜gê¯vݤŽ`‹6sÀƒª°ŠÙ/%\ËóAZáÉ¡pÓP"±%{æèÇ\–ƒ¥ŸôuêW„¯’“ûÐw^t4Sãá•8ó{iÌ%Z +˜ˆ Ù5ìšvxñEP*x5xÆùNXë›ìŠýÖ\g ©p%W)†ÜE¥Ò'µCìËò1Ô~ Mþ}`ì…Š!ì•\%2±¨J­i›M.<ëqÛ'΋Zý,&+rü hŸy-– +f62­‡nª~Ýðö³mÁ‰ÙœeÑ‚ Ïînê}ScÛa+ùç’­59#^Ë6G-[‚§e\Š ôb·üJÐÉþ'Ò2P¿oÓ­‡BÑ»$KQAîl©§\A7±o‘BbÕ"ªø×Nósmj1È ~J¶îÙ¡-MÔrt³.ö‰–’|íØÅ%8&2£RÇh³(òé.7ü§Ak–­+Y@_lš¢ÞP>•[¹?A’p¶ e:ô÷+¦uî©[÷±¨€tKˆ ÓЮÂYj¶^ŒŠ +¬)&Žè©D-/``>düÙSãAé^šØäÖ€ÞÓímçWºðÌrL€„-vNI*®]F´•ç7µ-QƒórÊT‚ÉÎ;SŸjPÊ —…°[~ª,×+/1©ÅÞ~ƒŒNJƒÈ¯_ìÏR)S‘ÿ¸TZ–ʼn°úx‹E¶ªø"ìQ«ý§½Šª+gHž +•5ËózÿªÁúÜú÷ˆGohHçÜì—s<ÜHDºNÎŽõç¯Ìanœš/ºq6&*ÿàô +eDh²Ðè×o׬ùá1˜~ÿ£U´E<4»·R‚+s}_t>AKÌÆ*mˆ5cЃ&3($ª¸ƒ~¿~‹\Ʀâ«Õìél‘°ø#u¶7ÙٶױuÜÕ$vqê‡!ì§ÍËÀÐ…{Î+Ú¥¦ë+è»ëÑ_:ÌðÊGØ<‘unôÍ×™ÐBñãß øˆõýuKÌTµÐµ)Ëa‚§[Kbã}³Â®@§_#!¿ö¾±¨€ÒÿÔUÁùL«êWÐlÏYQ¦Ÿƒøðâòm+XÅ©éÓ0gçóo9--?{¢ šOð·ÀD5Ø,'p 1Qüzr–QBíKUiq7—Àû×Úgf@á‡0‚³RÜtÑŠŒ¦[ËñÉÒ%zí\\|å½À¦’:ØTpŽpÜE4>:ÎxГ­Ò‹JÚõ÷ùAÓºçï==ê¥fî0ÉIÃ$µ“ + 1ÊuŸå¼H¾åýí.X¹žQÿg+™©ãó'â?bà+wĈˆc`ÿ« OK¼So©4óŽóºG .¬´’_Só°Ø7Î9ø¢öuÃ+~UX ÈC’]qîÔÜ´; iá½¼“±\»h–gÌI×Ìgêí…¬•ÉAÉ…}BEh´.þž”¥zzá†ÒNp×&»úC&':žG°œ2­$ÄÿVÐIMYú^®W=æön1¤qßÊQä­]¶8þFf/iÏ×ävCCµ€SþøJC:_à¹<õ6ÑaõÉÑh&ÃLÀå'Ÿ¥.êd„´U½F¨”æª8nGù”½0Õd5½eö‘«_VnëÊ_÷¶~ßç‘% ñö6IØÀ±x.‚|-uKMQµ'V@Œ:é"vzsMGÄBúØ;þ.×»Ü,yD—!{ß'ØÝÜ`ŠÆæJ1Yø×Ó|øØÄXV¤áF•Ï€V§pºK›>X‰ä ùSá‰.4œyã]lÓ‡'xaù+R<+TGF ‘«lGêQOÕòõß—ûß¾úiW·”+TãõNÔ3–Ù>õt²¼>‡‘ôý±ø<×ëtÔIjCèG Ëcz&1Á®‡iùÊSW_Ú(Á#9ø7'©¿É¢ºÄ³É›÷Lg°¤¦Þ:v‘Ü«áT ¬ëVÕW*7 ×Ȳ¢~VêἪŠª€¸0öëΪCFÏvÎ\ñ>ü#*“¿P›ñÿ‘QÔŒÎÁ+lþWQ†G©°°1ä¼剘õdÚPøÎY‰”Õ»?“&éä"ÅW]®V–TXº‰ÿˆyM‰_„ÞËGY_ ò AÕàïœa4ŸDþ‰ÿ_É4¨v‡\‹/¸¤˜T™^…·u‚4sòUw ;‡'¥¦ ìá|þi$V0åTOÓ”!±Ú>9¹€·•wõ™˜Çs9\@Cµ°¼‚üµ"€¼Wªp¢ U u'¢u†îû>û<Šá¦!-×/ ‡×€Ëÿ„S4¹îDz‹IyÒ<ä;k)NììrÇ|JÕ€S¶Åc‘÷sò¨'‚a¸+?JƒP‹CÁmêGMßÛZLŽó-ëüwfó“tXþË<Í8“3¤<EjIZhè:{4þA'ÈûÉkÈ…Q[‚”$ql‹šÈDÉŠ‰„³ +L¿Æ??˜ì™·dðïÚAÁ6=ŽO³E@öu!ô!P•<˜fQ¥1 a7ZÛk­ÉæG°“:”V9-—n ê™õoņ1~÷òkëT’]nþsZÐNÔ‰é*d½ü¬Œ_bg4!¿d0vŠ#A7P!™ñÛö1‘Ò¨u¦'jÐ!øO!*9ÌÆáñ=’L´”]ì¹ÕU¸^‹§‘+ž:w‚¯éd,_G¡dfHÂéw–•Nu¬–Úd¤ÎÑG¨sôgüÒ㧺ò{YµÁêúpþzt›qvI˜.W¸#ôœb•êSe"\Â/dè`«q› ó©ÖUêB.©3vC®ëiu;èOùkk4çJuÅù¾ëyñøLô@e[ªe÷´ÿ•¹îRm-*²û4&;¸–ïMZ"šÕ{q[%ÕmµFý70úˆt3o”sÇ]z‚>U$i5qg¦“O²ž—5ÜüÒòÁ§SkFl¶íÕ‚ý"´x»Ø ­ +h–RŸcË$Чd5»Å.nžt™òí“vŽòM‘ØVYCBqÆÈö·í4ë•€NÉjú%:”™F®i¶p8¬e¾EÉaž©9Œy£Ê$·a²³MÇP +ý´êu^ú¥Å +<6S ¸O(}¥ÈBÇ÷·T´cN­­Çü„{=÷REKë°ÿ*ò[£hqocåˆÍQÎM£=q…ú!’ˆà&Éi ¹jÙ9Ñи˜,P•Ûö©2à°×?ø:î +§ís1­¶Ö΄™>pr—á!yÓ`#ó }Ù¿mzí…0ÂAñÑuÞ; +è%nÑƺÈ6ظvcrcé•ÚCMÝëÞ}’ß37ñðýE×v}»H~×éÎþ}ê8üØ´¦Dáè8x¶ Tí=ª{žmÓó=å}0¥²èUÑŽ¦ÉÂQiÑUº”©‘ÓçÀB¿NléòìU`¬u8ër0{b +z¤f«ÐŒA8¼Ž†µ7 Ì'æ"òÐ|Æ~*o6ˆGŠuæ4²Ô¢Æ vé×~õ8l¹A—Æÿ+¥©¬ÔÔW«ÑüuÚîä‘;a²Mî‚ÂÔ·ésMÄKm¦ÓK'O.PM +èiÆ AWîl’¬ýP„x*¶2²äaÓËõK—©ô(ÃÅn8è÷S®½ì46áŠV:ûpÌ¥í±OXÌNt0”vG¨°òým‘C gZv¾†‘†œ3ÃdÊH`ŽPPM0?ùÛßá ؘM†ña ë&o¦Gï}¢XUÔ}ñžã ð´7PŽ¤þ’œ—˜~XÁõ~¯jþë‚úì†ædí6žtIÅï‹UÅ*á³"‡ÑrCuDÇsMæ(¯ôU½A4Œ|¢¸¯ú#,Üa( ä•Ð¢§¬ °2Œ0nÿ†4Ù w*h{qîÂĵ0dIµÚaq´«N$Èœñ'³1t2F,”Ê´˜ÃòŽ¡dÐä ÜX"¶àzÓ%ËL/­å+í¸ƒfÏvÏô··ÁOß‚×WÎÓ»2]z’à9% Xµ±Êi;ëÄWV›/hP—µß0×[$ NÀäí ¾6`àui@|¹§Oí®J¤ºú8ø¢*>˜²pÒ[d_'ÛEH(U?ot~}7Û dÌäUa¡ìZh_B‰˜ìÚiOE'FjÖ™xØÚ'¬(›Rs=Jtâ2®«'ky:ÏjK1ƒ²Zã¥n˳/ +W=”USŽ‘ˆDÏ dUÒÁ!`ö +EîßÆ|”I rªJ­ý¿vžã2“†®Îý« C¡ÝZQ³Á3“qÅ7Z³ef‹$ pèäׂº«ÛÑ6ôP–Ù*Fzc‘¶`À±½{OyC™±fçk ¢6‹­wÓ•u£Ô93NSM'mËþë‡ Ofu/l÷^Ë!ˆKpøºÁûɺÙi̬îÕUQĽÄðyÁ 3£[øÏp’3â@1£'OnÌáeA0N ' ¼äËìÔ¹ÞUھܹ#尵˅î>‰ÎõûâðbB&вÆ}(}‘\5i [«(’Œ#/àä¡SäF¶)Æ­öÑ]¨¯ET•n– NŒSëdâ±dÉÔ‹7½Ñ|©.~.·`é·lΈ)}ÛF+ºÐ¸]™03æ…µ˜›Ì݈“xü$Ý ‰èº•Éjø%ýÇëÏ +¸}uLÌØU¾c m(de_õ7cséeµçv °ûႲ o[æ<Õ}¡ ‹;ÿJ»ÿµ +ƒ +ØE¦Ç”ÝÐúͤØ|ÈgÍJÅ;uô¾w9ÂÁYØPîÖšJ 癳kükbO }˦‘Ó™îMÖ¹1{ Oå/ðª6åzå1!Ó¬Œ]Û——wh+žˆ9‹9ž¦5º'³VÁŽååŸâGÓŽ^P¬÷$´#þs:åè—0aùí­fðØö¯Äm#ÏMtêr•¹Þ6ë—äéÅï;èüÔ“â×| °rm4fŠ{ãC“›&Öqh¡ÕN=…Ñ6ä¥MÂÿ­$hªò´˜ÿnN¾(öjà±e‰² +ÂáÎÍ\®†«+¤Tžårq/—÷ü¡itBaôùœÀÊI=X OŠh·#%6nN½.|Nq¯,T""´ÜÝ÷*t,M{Î(Œh¨ð‘s¯Ë €ê [gM¨Ó;<6È +©Â€“'îOJJ¯Y#6G¼S&vˆàÄ“çÊåÍ–‹áú%=’CÔdü‹7†]Ìn²<Ýtt}jër?ç•d×µâóˆŠÒßï-E#ãTLºZ›É†e¬@¯~­qiÎ ¬—§cûRñÌÉ7Ïíwßa×9¶Í³nNð*ÛTe-¤áÁÂFB_u” BÄ?ôþ]7JÖ‚ ÄL‡J:þÞ!Ãц'¤‹„½[c +éé_ªvòw?z­œ1‹£©³¶`À,Ñ‚6O8Îù@óÝóP~'ñÊ?E[Á>ó""h’š´$nØ6ôT^8|“í~ꛩ¶q©ãÁq½~sÈb‡ù$¼7³û¦ë|šv.Ù ÑïæàÿZÁ)-¿³Íà…¡e)¯òå—ó*¾‹ÌSh½Æ€ú‰QÝ^Zw…'žF#²XA¶¯Hªèjòf‚A<º)W%uCF/ȨPöSøV~î>AQÜê›üôx—˜¶gªµ¬Ù^„¦Ä囯?qD~b̆Rt@4í€$½Î¦Ýû2;n}]ÎëMîr¥Zuk +Ãó¥Ûþ)O>Ñ´ÙãY%†@koårÈ!%è©böÙ5/í;Èå3YÊó~ŽÌ¬“jêï&“«UùÝxÑ{¡¤úLï)21”'qP£{ºïárÓÇqJ]2/2k˜ ùÐ9†Ô/_ݵ§ý}¸„ŠYa¤\éýg]+-fÛ«r§EÐ}Ñ72z.ÒÏkfp4ߑ軫4wu'Iê$—¿V òT†,®OÅAhÖ°Ìç:9’™nÓ:ΛÍ#6íV^= â‡Š$»5#kŽ|Š¾Ž¨}fV>ÿºOÙg늤+ˆÓèâ Ãí¹‚ÎðÝx´5çéh”¡XÛy•Ýñk +ÖIPÑE^-\ºÅ¡†de ûó÷Ò-ñˆ›T©5¶Ümy€Ž`g<î ë­_^†vÌa‹¹Úwõ™n‡„n^²K½ŽÐÞ¿eýyt¬jN> +¢a/z6|[”cŽêŒè{ý'±3©µ­`h+ÌFsé>Jåuäþšò´ÖÌà]| +ºË8'úSGó¢G 2 +endstream +endobj +1988 0 obj +<< +/Length1 1681 +/Length2 8374 +/Length3 0 +/Length 10055 +>> +stream +%!PS-AdobeFont-1.0: CMSY10 003.002 +%%Title: CMSY10 +%Version: 003.002 +%%CreationDate: Mon Jul 13 16:17:00 2009 +%%Creator: David M. Jones +%Copyright: Copyright (c) 1997, 2009 American Mathematical Society +%Copyright: (), with Reserved Font Name CMSY10. +% This Font Software is licensed under the SIL Open Font License, Version 1.1. +% This license is in the accompanying file OFL.txt, and is also +% available with a FAQ at: http://scripts.sil.org/OFL. +%%EndComments +FontDirectory/CMSY10 known{/CMSY10 findfont dup/UniqueID known{dup +/UniqueID get 5096651 eq exch/FontType get 1 eq and}{pop false}ifelse +{save true}{false}ifelse}{false}ifelse +11 dict begin +/FontType 1 def +/FontMatrix [0.001 0 0 0.001 0 0 ]readonly def +/FontName /IMOIOS+CMSY10 def +/FontBBox {-29 -960 1116 775 }readonly def +/PaintType 0 def +/FontInfo 9 dict dup begin +/version (003.002) readonly def +/Notice (Copyright \050c\051 1997, 2009 American Mathematical Society \050\051, with Reserved Font Name CMSY10.) readonly def +/FullName (CMSY10) readonly def +/FamilyName (Computer Modern) readonly def +/Weight (Medium) readonly def +/ItalicAngle -14.04 def +/isFixedPitch false def +/UnderlinePosition -100 def +/UnderlineThickness 50 def +end readonly def +/Encoding 256 array +0 1 255 {1 index exch /.notdef put} for +dup 66 /B put +dup 72 /H put +dup 73 /I put +dup 32 /arrowleft put +dup 106 /bar put +dup 107 /bardbl put +dup 102 /braceleft put +dup 103 /braceright put +dup 15 /bullet put +dup 50 /element put +dup 21 /greaterequal put +dup 20 /lessequal put +dup 0 /minus put +dup 54 /negationslash put +dup 112 /radical put +dup 120 /section put +readonly def +currentdict end +currentfile eexec +ÙÖoc;„j²„¼ø°Aw-åÍßᾉYň5t&× {hLšGÒqB`d­Ë—PØ©†ÑÖ|*îøÎx\ÁœÞ–HŸtEÅãBð-¡ÉùóÁgedogÏ7—‰ãï‘Q`[['“WÖü…7Â3ç®æ¤ý¾sçZ9ë m ¦ö!–tAž¾ë‹Y!$átÊY\Žr[˜uTIUÏý‹iŽ÷B¼Œùyã[Ž™ÊÝÝÈœÆÅ—3ò¢Kï6­†zJ!žË’Ç‘œJ·s&B5öC©•"¥m†&Þ`7ÞûӢƻ‘Ç3uµgNC O~̶u³o5Ö=žÂÞò_ä›Tù/ ¸’‰h,°—$B%¯döʘï¯3lŸÃ ³¾ÛÿMÓo§¨÷YLÚ¶Œ~ƒ3^æÐø`š‘12]•=l8Çà£B6PlpËfWÚü<• %PIN!jáuË#,.õ£Åi«X“nôè¸È¼Ê‡ðo$îÒX½šëÄê‘·I5öÔV*E6t±K×o¿_)žÓRŸžP»¾G;Z@9ØÐ"V3¡T×TLç˜N Y:…A€Ókî©®Ú¬6Ì =‚¸=•8€0~ÛÐðDQì±ã QÂù^brð/2^KŸ¾Zh`§N'Jt4i¶ëüèBYÒð7ÖÞŸBþU_¨~\ŸfûŽõçôµïŸXA³ˆZl‰”¿Òã_£Ì½ZÆŽ˜ÀÐìý'•çxHµúöðbÊG:Ç"„¥l«¶5ºCÝƉU[ÆaL¼ô¸rÂÌf¶ôù 1[÷;4äp^èµNïpûªqBD 'Ø…93ã­M€&9{ ˆVD õ8 aе‚2Ön.hf¶ +äl?KÚ¢ë[$‹¸Š³úGpðöÃݺ±/JÇzc÷¥‚F8ûvP3Üà/XO6ÈyAo¿±î~ëç]WqD‚M¹ˆY4ߧ󆸢YÕÌ¢XPEðLý2ã_2¹ ­¹©oH•{ +1xÒÉê'¿¼u|»o øöúWNRšE”ò¦í™¹Óôû&”ã˜lFÿ\LRh1®Fžbñ¦­Ï}+‡l Cø] ¦¥ÛÂ(„vfÕoƒ+fÏœMëí³}÷l?c*Þˆ"î­^R¬æ]ªm†äÔi§„KªOÉÒŽ!I Œ²Ó²ûçõRþ_tÓW;™¿Ìñ˜Çu@(#ªt*̧Ó U œ{|ãõõQ}a3åF¨l•¾ó8x¬¤Òt’HWA¨Â­â;³!ÚVÞÐþ CºÊƒVo³—Ûvºžì’?³”;”œ±=ËÜ>,„Æ㧫¾\"«ù¶•šÑRívRC•Ø¥œQDh +Ó@_,žÇËœ½kbflçAIøP^ª³™wÙš¦dIÉHzk(c÷3ƒxûŠÉìSÊUPI³f{KΩÍs… îÍY¯¼¡í/ìvÁÏ[¡¹ûظL%O¡@ë™Hƒ†“<ÞP'ŽJ£ËÛv‘Õ,Æ$´"hU§M?ô³ë?á“p*Ö„7v×=ÛP1s}ãG“@¤N’5^ð3•‰Tå³8fº† yQ¦‡ƒ¹O)„´ ¬07ÓæÒ%… „G ¤ú’Rz£óófé{‡Ð^DhÜô<ä¢{™™âB•ËêÖ}úÀÆÙžs2f'CóyÞâ°_ǮӮ@]c8“±n7q'ƒæKˆü4kO=íþ«@ÖU ’¨Ül,ÝPoE‹ÞækÔ™*7q[Ú!ì÷ú·ÎØèÓ\o»‚^×$·&Œåóò]8l•ä·s¹&„„Á/ââ^)š!TåÄ€a óá¬îÙгá½S"¡;è•üu^S‰ +A5ò™6B=Û¢vnÛ™Tã­™±Ï¼"…Ñ÷©]/Í-}{ˆÑÆÉ@ŸÓ–+‹šiý©caÎpnÉÛã´ÓàÕ{ª N©‚ïh%sùªéðž ¹×áN¤‚äå¬VÚäÎǃ¿a©š]ôè?Õ, íòbt¡l“˜h6‘ÿOˆvÂ_§Ré̳9S ^Pí!Qp÷ Á÷¹r6÷¼Á;¥³Z–è¿ÆävØ9k yŽµH’yp;DÉ×ã “jí1œÐ:ðR„]¬Ý›bzGC?"%‚|eÝ¥w!è±–Í6Ë¥RPè$æ·¹:ÿ½Ô)ɽŽE#Øè¥d'¬Ãå¿-¹¶ È2/Å %ñŽ}‡Ù¿ŒØÜ mË…¯ZüÄ¢L8ÏÀôÙcËóµÏoÙ¬Š›LH¥ÔºKÜôó¶ž)˜õqž+×ÛcYy•ÅÍ»¥Ÿ› +_MÌŒý`-@³0Vý'ôœÏ±Ðö©tS¨É¤d?ݱX(ƒYƒ…Ä÷kNWµYÀíFØ<èB}³–ék³ÛÃßRí(ÚÕÏ^2Ø%0Aüýìm„»ŒÎél|mƒoÓÈì©4Q庭„¡y|“Úvï+~¤ŸÄ”EµcŽÔ²Ù’MÆë×/­öëtØ…üHeš†ÙPC´évNîç"G6} ¦ì ]µ1¡AÀŒ”+|ç°(ä¹VÕñߊG¨¬l7‚KfWzÞrŸ_í=ûG"{'ª4ˆXM ¦(¿Õ±†ïz/ܳ¶ÙzÒLÃZ„|¹‰DÆ4-ùá0Eíp¶ŠZSú¸óAÇᇬˆ³ÈáظA䔹Á½tl¾±ÎHý¡[TxsÎM¢…P‰*´ ee©¦f¦¾wkÚ‡øH1)7¨i"ÐÃï‚$0Øþ´«ÃV?i¿‰zóç8ÆÅ|¿¥>dÿjyTšÃµVmÇæ—áq§ÌgCÊ‘ó‘ïØÀºš9z»åTˆCÞ/Ät~º‘؆§o*í—9ŒÆrÏÕI‹¡oj¯UíKöxj¡º. ,Íø+b1°Ö²ñ ÃI›lDLïQZ3÷¶P-noô¼ò½'<ÐY½ße-ì1/øŒŸ7Œ*E5#—d‡ñ¤oŽ–{]Cª>$þF zg!Ј*£oºÓjŠÔ-Nûíͥͭoò8ÅKwQgÝpœ*1^‚.ÖŠˆÎÂë± LV‰~ôÈÿüøm laÎ ]%ì."¦`»©_®Q·iäpÀöÅŽÊs’5y.XƒÒÍ®)ñæ¢T¡í¦öd1KŸ¢k««ÌŠjÝ«¢n0zªG®áq‰·ëa©WQé%z„ÓJ²¹ØX¤¢Â3tIy0ľ£.Ó#‰Å[“#¤ƒD#EÔ‚’pp¯F*«¨õ±Þ˜vïrOÓdÎn7n ¤Òf9ƒ*¯ìX:õ¾ç>Ǽš:*ÍÞLfÍÃ9’&a’j;+{»0‡ )ÐÚA’gðK*êXKÂÛV¶'zÙZóÌAÚ) nîöÏ ³ÕT¼”ÙÛLÎßJëïòé^Di¨ý[¦ð:s<ܸ2Â!ñÞU‡ú|›–#ù5V„ëfÑUŠêqP}÷üÒ|=ÿŒš»¾GÂ5O|PÃèsš9ñ§Ž}äå“* ++gpA€,°,Á=|j«25CÉ‚7›õÕ ’ï–¯µ—Ø.é/F¨ɹË0¢–tRœáºŠ."we h¿P€ eäÖmpòîJ‡o´@°±â–ÿ_ðêAÒ3§âQé¿BVô~$ð9E¢ºj= +‹]? «è{w¯_53÷¥FîgÓ¿³4B™èä›ìA¨«á½q²ÏðËßÀÞÑ4µŠ‡¤Ðî1®PfÔ ¬ó,ÖSÅŸ6ôã¼ r¤§[‘ÝÁv`à ¼µ±ûô¿x÷G$ÿŸ„¥êÏ.}¡¹Î Ì”·¨ÜϾFÍ™”c°±š‘‚=­Áf!*˽ª./çwĉR8º(@ÙÙ‹šz c¸½@ÃN&Im—žÝ£>X!Èm•eñÊ@ÎlWÿ"ÒVCHèø8ÔkÕ‘ŨÍÀj]´nó3X>J¡z?ÙDí€=Nø…½bn {qbY(>"Ù8*苾ÉÍk¨y3øoâŠøÜ €ó‰Hã Dwâ¹ø]¤€ ½ëd {E’ʥËwÙá™.$Váçhtœözk$kk$]4ë¯ðcf¸¡ú¯»CW–@òËóû3ö—plQ¯ “Q晉bá¨/póµó T“q¾FÑ8_þÕA’¿nëQÔÿ¢mKŽ{&z;<Õ¿žmòã[i7Ìϴ뜣ñ'*ýqX€Tnòt<ÕŒkò/?©2m)žËÏfô¹¯í•áâ¢øy#(ã¯`%Ú{ª§!¼Qœ/0&sßx¹ôfçB«+¬Õr‹ïEßï[tÑÚgOKQ£$ú$²=à‚ל?êd@3c)]3ª–êÕÕ%*M}HÙ饞;Cd£á˜Érp½°1jýŸF¿ˆc…st•íG'÷âC\–ºp)­)öþœ_š¢)±Õ(¹ú›¥µ MMº +µ³„ qÆv&¶¯Ê÷Cßå3N¶LZs³wTPu{‘s¼ºÏ°øPž‹+-­©¡U‹—±FõUøP"»KΆ†+«¼ÒY¾e7?0«(•öidšL´;gk9Á(YI-Œl`®õî;`ÕçæAÐH:´® áYHb1“µâ»HÇ{¸wƒÇR^YÑš, + $F¨Ô–HDÙòV?pòyÑ—¹PÞ%F=»‚ÂÇÆB‡öÙö¡GKØPh³~N´[¸IÊ_ꈀCðTzÞÒf ç <Ó–”Œü`4|mƒE1ÖJ'¼ýáÝ$`}R ‚Ú\¨€âN2kf¢aóouJ73ê´òváê¿ôKÛW{œMÓÞ3?שMò]ù:W;v…˜Xâ;„B’ ‰§X.PáI;?Ÿ!T¤ˆ . ·sìöU]䮃’=ÑXŠþ ý’5´ÀŠ€r€Mt>y=¯†*ãbC¾~^ ½tÅAr±¡l'¶øŦ•üó\ô÷ØŸÉL냡P“&7ttöuGz;Kg4ÚóÑ;·u)"é³;úÜS•–Âv½ËðüõC~³?¿Jƒ»/’F"6U.°0>çô+ÜKQÓ„0"ÊÓ«Ñ=ëñséÞíƒxoJ]áת!Ìwü6OÝ.}‹ž€tëË5ð¢VâË©³+¬¥·¬­Àü7Š³Us‚š®Ö©ÆyçåÊÄ“TŸŒC5üGrgâUÄ5Ì$‡—Œ&|°µ¿Š~•ÝGªäØ8ž—ê ¡¯Mvåß(jt§ƒãß ñÏ¢nñí›]Î]ÅQÌW…OØ‘ˆm.Œ£Ž­ð R[¾ИoNÐngô IFç:?Ât”ØSUOÎcÆj2Cm[¥à«O7>kWúk¥¢©½ËX¯'ƒ²î¦œ ™#ñ–Ñt'X•d9+E7±ðNä™dŒ8{Å]òŒm¹/‡ Æñž»×Ž¥dv‹Y†Y–öþwopôé™!™EÄP7F?oÏÄjP9âò­"›Ág“BŠŒÎÅÙPîŽô;B^QO©“3ù¿*B 3³ƒun»$·ßIÆêÿŸ_Oeþ`Ô +˜$Àß`‚}-9Q/Ä¥åM³e€ž?ØÁÇÉêÒ°µìhä]Š¦bð¿ ýé»ê«_ê2<ÑøÍ–Æ+ìtª°[Ïœ±ˆJ¡þ©O@¤%M‘I‚Þé t¦µØvƒ†Õ\¹/bãÑÃòMVFÊ05ÿÎ+kIå2W9>f–}©· ÐøĶô3t‡¶«ÿº¡jª†¦Ã|"§´æôîÖ +ŸÇÉ[ÓLŠhŸŽY³)Øo57kßþ“#%H’\,¬xÎ|ôs¯sxí¥HžÍ†|¶;`Å vû%øÚ¯T[ícÖ]ï‚eŠ"G—Ujß«„yŠðtvxÕ:udQ‘uZy_²Td"“ª£b+çÁO†]Øl¯xà'6wòã6X²C¿DKOÁ‡f›(g@w]f¦V™ËÂ[ê~ëŒ1Fùé^A3v¬ ÇâO›vÒ¯¶2v +zúåT¸ÞúË0ÙÝb#ö›[›zyÏ’Õ$e1¬ÛkÕ5—dRAì`(Å…@{=yW>¿ðˆä>ú‘¯çy@æÅÿ¹Uáú;”œ±=ÃH;Çc{–ðÛ3û0´ü£^Õ®”)Õ™-{·O¹°OÖú2R¨Â´xÈèëˆQÅôwBgБâ¼ýSý»ž›"תl›bðöz;¹±˜IyÕ\E×ÁËê‰pr¨kM ·@@Âe&À 3•˜lÃʉtS÷æÄ%í)è/pRÇøÞÙÀª"2µu +˜Ee’5ø+ÄÙ°s§Zò'±¹§õ˜àçbˆQ²ôð°SlŸjÅö zvÞ€â~%.Kz\N¡Š„çüã÷Eê,ãeV2Ò=Mo)-JcÇVà¤:ÒUÙ2Ѹ>É1ˆ×È“"¿QWº ƒOýõÑ‘4*Ozûº.c¸ójc”«Y&üßÜØØÏìê=ë7”Y™´öøÈðê,A5nÊIßFŠ•/œ?üÌŠ™á ]as.´N/þCÕ»tÜýH…G50x}eb9—S&ùœ¬é0år¾à«J§H€‘ôN­\¿?^4'îœèb©É»ÏÀ':KÒ`wpcÏT–!ÜÛ_ÿ öH˜°øŠ¹ÝŠ†‘óþ{–ÅÚ}þH¿mZto”àÞê7Ê«¾ß‘ŸQžÇ·¾Ùbi>ÜœZO¤§ „Š“dºdFÕ¿cc +$"«˜ |ðhJQvB'\³Í%Ì6Âä²3è¯J)A‚g²+TÂò‰ªÀî§ø¼†Êrnß&^ÖÂܼt,Ks+ñ½,溛ïÝ8t:EFH«ˆ9žÈ‡ORžJö3©ž­*³RŽ…âç €!Ò .í-uàr\96@3ãj&íâSШOÒÞ(?iI•d‚±Y°íFÇCžã™¥mÆ©(#Ÿ©µ¿ÚõºzÁ¨©Lajƒ†Çß3°ÀHÛÔ½XÍ}/äÌ-ñÅú«ŸÙ(ëošôZI|^–¸ÅVqPLH+Õ|ü:%Ȉÿ£¼!I¦,ç–¨0Ni;"–‹%ûûèˆáÖå ³xî¼a¾ö»¸Iº‰ò®X¾ÿóúÕü’wˆlˆ¹ò¿Šr²}µ¦½apÿ• ÷~/ÉðÚéçý¿è`¯YÛ}K_z®¼LÈźL'íBHúÜ:)Ï\¶íE^ùNôa>ão­Ú¿WRy1k Zix^’7}X\Xzy4^ÖoÃb«rÏswÃ~óúÀ:Êí?8×ø`òI#¡x’Â=î´ÛšF¶b7>&Ÿ l[äcdh׉¯3‚/cJ–ÅÑ’âòøŽkrÉ- ~êñ âí kŽ±÷·R8+Ó|^H|œö©e‹dêhíB†à¾I*w2eà+l© Oì0þ×E¹éŠRóÃŽXधÁÁæ²1Ip v‹ïŽŸaŠXÀuÞ±—.9¾2®‡«^:žpòño1æ-<z÷ù:½•sA!¥Œ;åQg}u^½zŒ‚«º8ÿüuzç"kÀs?]-¨^f·ï°¥=a˜÷aq/mpȺàhBþZ—X<,O«([E&•á ¼ÔÎê+§ˆòÁÜÒU;œ.µ[xUˆÏïÍè7†:‚¡¶SK¼~3çÊF†‚?æ=w£ü1¡_„Ÿ—æ׫„¥Jgë!¼k“ûžL;i÷þ¾û@žW€+v5økþñ¤phññë@âî“ùM0ëöÆnb»~¥ïÏ]tîöV¬~8èn?V¼Y}~L…ÐÁ.üÅÕ`”x7¹oŸŠñ§\/íçú[ž“ò=šø3}#[_ü|Ø8‹64à±ôÝ)_¯™æKI“h• + +'ÊXF¨€X©©ÿ•ÕâC`äÃ(Ü4‹œ”\ËÖQÓ£õªšWSÄB§ä_Ù"D€Rö“ ìѲônéx +Rµ +i³Â­HMU{â™Ù.Whv7|¯+¾Õó°-Ø`X½¦lý(q˜!ÛW½éô­®°DC¼›Ã²ˆè((¹Ô,‹þ=+DJ+˜ÁÐí8{*¹`a&¹Ï<'?ÓÁQªáZ½7íEyÕ§3t9XæÓ¥¥f®:yöpÌÌ©ÖR¹ËêF3ÌÏ GÀÙº‹?G”À!7„©ï>™u˜´[IÑ;ñèþØy¹»šŽ6ë…Å¿ ªr.Ì¡„÷K½ûæ7x)­ŒÆ@ïGdÄ¿æÑܶr0ïóYƒuŠŽà¥%wükl³#KÄ +Ñ+|¸•;üŸùð{àÑ5YÒõ]RMjÛéøf¹v×V+Ò¼¸þ-‡ ›¡ÞQxhVL¬pÜy$§ã!2^¹(äÄeÉ8–ÓKÊñ )Ö_¾fQýéópcçA;©£ãM +×dµ¿ +b­Ï›a•ã¬ÈZ``Z@—ô¥œæ™A]Kƒ¡ÊG…² L­V„øSÝý ®ñÔ{oÏ¥~ä¿ÌÔ±k±ý—Ø’=æAƒOG…™V\IEA +Uìäi +¥&µ‹)®67Ãêûî\œn:ß-êZêyP³C‘ª0¿’ãCcÒ6šIS¶ÙAd¾¦x–!Î’áw9@@°ÃÃJ—`ó«û¡{?mTæ0j©áñÿVäÍEšá²oyPÉ’&rfH«˜ãt@ÖÄD ý`lË®8Wëpéz€€àF㸠³üÖ]¢‡Ù£pÛ‰7Û†Ì؆6‹¾…”iVÎ2º[¸zEP££}[N-*º÷ðbˆ¦Kù¢âpGx¢:üSLLö]`Ø_¡CÊâ[^^ÐiÓxÛ*]ûôi»Ûð#43&­äb1Ûý#Ú;G¶ò•nmŸT$ímžjdLØxYlä&¾h´'¬9gƒc[º@àoŒ«‘†BëlÒgôf¯°2©ÖOîÔZ5/ô"Ò¦ Ê>6yâsLŠDÊa=6/†”2i|£âœök\F‹ä±ç`‘eÃwŠ`„Íä÷Ä·gL²“﯆%5 áð5'l÷þfGÄ'½x‘ò:? ÆUã¿PÊC³ŸÏÎ0^ '±§¢Ùß\$lÁGɺ'vCš©+@lqså5ëWçöW±sTXÁ§J°iÆÒpÂ%R„ ACQ¹¶_¥O…AÝa,1[ÎŒ>m´®í33t¹ gX¹Üõæœí•)87p¥ža·Ê ¤à4Ѩv‹z™ÊÇýô1É|qéÊøä‘}z!Z£Ø ‰.³è ìÑi©âgÅkä!^£OÓ·<(Çtêú¼-ÈBmhutïît‘Ûu9îìm#@l«]YØûHQê6ͦںGAüç´{2çڿzâíZ„ÿ¡P0ád=îžÔ-Ltê Q©Òy)ŸlZ7Ie +òu +%d›¹´èö$ endstream endobj -1891 0 obj +1885 0 obj +<< +/Type /ObjStm +/N 100 +/First 986 +/Length 18475 +>> +stream +557 0 1880 57 1887 189 1889 307 561 366 1886 424 1893 530 1890 678 1891 824 1895 971 +565 1029 1892 1086 1897 1192 1899 1310 569 1369 1896 1427 1904 1520 1900 1668 1901 1817 1906 1962 +573 2020 1907 2077 1908 2135 1909 2193 1910 2251 1903 2309 1916 2506 1902 2672 1912 2818 1913 2960 +1914 3104 1918 3249 1915 3308 1921 3427 1919 3566 1923 3710 1920 3768 1926 3874 1928 3992 1925 4051 +1930 4118 1932 4236 1933 4294 781 4352 1934 4409 833 4466 831 4523 787 4580 788 4637 804 4694 +784 4751 785 4808 1935 4865 780 4923 1936 4980 1929 5038 1938 5131 1940 5249 949 5308 819 5366 +786 5424 783 5482 779 5540 782 5598 1941 5656 1937 5715 1942 5808 1943 5853 1944 5992 1945 6179 +1946 6673 1947 7002 1948 7345 1949 7474 1950 7495 1951 8001 1952 8046 1953 8736 1954 9064 1955 9145 +1956 9520 1957 10157 1958 10816 1959 11444 1960 12088 1961 12373 1963 13021 1965 13451 1967 13878 1969 14127 +1971 14369 1973 14703 1975 14920 1977 15159 1979 15381 1981 15917 1983 16154 1985 16402 1987 16784 1989 17150 +% 557 0 obj +<< +/D [1881 0 R /XYZ 99.895 716.092 null] +>> +% 1880 0 obj +<< +/Font << /F16 582 0 R /F30 811 0 R /F27 584 0 R /F8 585 0 R /F11 797 0 R /F14 814 0 R >> +/ProcSet [ /PDF /Text ] +>> +% 1887 0 obj +<< +/Type /Page +/Contents 1888 0 R +/Resources 1886 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1884 0 R +>> +% 1889 0 obj +<< +/D [1887 0 R /XYZ 149.705 753.953 null] +>> +% 561 0 obj +<< +/D [1887 0 R /XYZ 150.705 716.092 null] +>> +% 1886 0 obj +<< +/Font << /F16 582 0 R /F30 811 0 R /F27 584 0 R /F8 585 0 R >> +/ProcSet [ /PDF /Text ] +>> +% 1893 0 obj +<< +/Type /Page +/Contents 1894 0 R +/Resources 1892 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1884 0 R +/Annots [ 1890 0 R 1891 0 R ] +>> +% 1890 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [321.343 574.94 388.401 586.065] +/A << /S /GoTo /D (precdata) >> +>> +% 1891 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [321.343 499.224 388.401 510.349] +/A << /S /GoTo /D (precdata) >> +>> +% 1895 0 obj +<< +/D [1893 0 R /XYZ 98.895 753.953 null] +>> +% 565 0 obj +<< +/D [1893 0 R /XYZ 99.895 716.092 null] +>> +% 1892 0 obj +<< +/Font << /F16 582 0 R /F30 811 0 R /F27 584 0 R /F8 585 0 R >> +/ProcSet [ /PDF /Text ] +>> +% 1897 0 obj +<< +/Type /Page +/Contents 1898 0 R +/Resources 1896 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1884 0 R +>> +% 1899 0 obj +<< +/D [1897 0 R /XYZ 149.705 753.953 null] +>> +% 569 0 obj +<< +/D [1897 0 R /XYZ 150.705 716.092 null] +>> +% 1896 0 obj +<< +/Font << /F16 582 0 R /F8 585 0 R /F30 811 0 R >> +/ProcSet [ /PDF /Text ] +>> +% 1904 0 obj +<< +/Type /Page +/Contents 1905 0 R +/Resources 1903 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1884 0 R +/Annots [ 1900 0 R 1901 0 R ] +>> +% 1900 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [333.769 276.229 340.23 288.268] +/A << /S /GoTo /D (Hfootnote.5) >> +>> +% 1901 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [294.721 134.549 372.239 145.674] +/A << /S /GoTo /D (spdata) >> +>> +% 1906 0 obj +<< +/D [1904 0 R /XYZ 98.895 753.953 null] +>> +% 573 0 obj +<< +/D [1904 0 R /XYZ 99.895 716.092 null] +>> +% 1907 0 obj +<< +/D [1904 0 R /XYZ 99.895 446.608 null] +>> +% 1908 0 obj +<< +/D [1904 0 R /XYZ 99.895 446.608 null] +>> +% 1909 0 obj +<< +/D [1904 0 R /XYZ 99.895 434.653 null] +>> +% 1910 0 obj +<< +/D [1904 0 R /XYZ 115.138 129.79 null] +>> +% 1903 0 obj +<< +/Font << /F16 582 0 R /F8 585 0 R /F27 584 0 R /F11 797 0 R /F14 814 0 R /F10 813 0 R /F7 812 0 R /F30 811 0 R /F32 815 0 R /F31 817 0 R /F33 1911 0 R >> +/ProcSet [ /PDF /Text ] +>> +% 1916 0 obj +<< +/Type /Page +/Contents 1917 0 R +/Resources 1915 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1884 0 R +/Annots [ 1902 0 R 1912 0 R 1913 0 R 1914 0 R ] +>> +% 1902 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [345.53 655.098 412.588 666.223] +/A << /S /GoTo /D (precdata) >> +>> +% 1912 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [398.111 585.075 474.165 596.2] +/A << /S /GoTo /D (vdata) >> +>> +% 1913 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [398.111 515.052 474.165 526.177] +/A << /S /GoTo /D (vdata) >> +>> +% 1914 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [345.53 375.006 412.588 386.13] +/A << /S /GoTo /D (descdata) >> +>> +% 1918 0 obj +<< +/D [1916 0 R /XYZ 149.705 753.953 null] +>> +% 1915 0 obj +<< +/Font << /F27 584 0 R /F8 585 0 R /F30 811 0 R /F11 797 0 R /F14 814 0 R >> +/ProcSet [ /PDF /Text ] +>> +% 1921 0 obj +<< +/Type /Page +/Contents 1922 0 R +/Resources 1920 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1924 0 R +/Annots [ 1919 0 R ] +>> +% 1919 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [347.301 555.472 423.355 566.597] +/A << /S /GoTo /D (vdata) >> +>> +% 1923 0 obj << -/Length1 1425 -/Length2 6648 -/Length3 0 -/Length 8073 +/D [1921 0 R /XYZ 98.895 753.953 null] >> -stream -%!PS-AdobeFont-1.0: CMR6 003.002 -%%Title: CMR6 -%Version: 003.002 -%%CreationDate: Mon Jul 13 16:17:00 2009 -%%Creator: David M. Jones -%Copyright: Copyright (c) 1997, 2009 American Mathematical Society -%Copyright: (), with Reserved Font Name CMR6. -% This Font Software is licensed under the SIL Open Font License, Version 1.1. -% This license is in the accompanying file OFL.txt, and is also -% available with a FAQ at: http://scripts.sil.org/OFL. -%%EndComments -FontDirectory/CMR6 known{/CMR6 findfont dup/UniqueID known{dup -/UniqueID get 5000789 eq exch/FontType get 1 eq and}{pop false}ifelse -{save true}{false}ifelse}{false}ifelse -11 dict begin -/FontType 1 def -/FontMatrix [0.001 0 0 0.001 0 0 ]readonly def -/FontName /UJRPBG+CMR6 def -/FontBBox {-20 -250 1193 750 }readonly def -/PaintType 0 def -/FontInfo 9 dict dup begin -/version (003.002) readonly def -/Notice (Copyright \050c\051 1997, 2009 American Mathematical Society \050\051, with Reserved Font Name CMR6.) readonly def -/FullName (CMR6) readonly def -/FamilyName (Computer Modern) readonly def -/Weight (Medium) readonly def -/ItalicAngle 0 def -/isFixedPitch false def -/UnderlinePosition -100 def -/UnderlineThickness 50 def -end readonly def -/Encoding 256 array -0 1 255 {1 index exch /.notdef put} for -dup 53 /five put -dup 52 /four put -dup 49 /one put -dup 51 /three put -dup 50 /two put -readonly def -currentdict end -currentfile eexec -ÙÖoc;„j²„¼ø°Aw-åÎ=Ó%åW˜)-{Ùr½uú•)¯œ‚ßröA•ÉÂÜãE(õ@Úý{ë¹´‡º“Q»û|ü_‘RÑå» -ØÐÆϤëA³Å -T@æ|ýq|Vk¹¿J% qu8P¢øwÄGx³ÅªÛ̆ÖåQæ¯6K üªÒ-UŒ\§Ô%¡bÕ"t-*ðxÔõöÓŸÏÿJ‘+ -}ì3¥{Zà2ŽùÕzݬT2sÀ$ZõÌÑ&{Bè–J×{¨¥ßrÌ—Õ½Íám”1lè(zåNRøréò^&%Ï:(/I‹ŒßºH’m§!’4ðÜJßxIò7¹bs,O’iÿOl7²¬Ó¦!æbî^ëßæÑ´Î-êE>3§t;GŒ<å;lñ:à ø¥OS•¢áS*O?Ã9¼ ÏßÙáà—ô°ŸøŒÑ-þ‡û©øw yg8LsYtÖ¸E” qH°p0¤>ˇÇå -è,qàêÛŠ¹”q°† ¬mZD]7ʺ¹Ok-G_Ý\âSË°yGœõLžôý”š†N8úg›ì2Q}:éäæ|úC/ÿ  Ÿ´ÌûÔÉ‘l Ñ“ÄCðÝ2`À€ŽLu3ÍÝà»DÎ*ÕCÇ©5½Ñ™åsÔÑLƒUkmH« FqÛTfÊZ$èôð­Ò|™Üæ¸2ÌxlÚ®O‡u×x¾’gGè/|:ì&Nnð$JÉEQæïyüçÞƒ4ÿóÔ>©py'ä3˜ƒÿjiÝ.ÛüÓǦXË9~ŠãÎÍb0 uæb;Fª8(PFY|×DS%’y=þ†gn!QZ–‡Ð˜ž°ªOi¨ˆ†öæ­¨H,†ça7`õ–æ_Z<ñgñZ¿ýëÍÍ´ª˜eߟŸÕŸ‚q•ˆ/~j'[E1Ý Éwg,ÈK­€”ôomÖ>M8´;°r© ŠCX¶‡VkgØ-/„¬ôêR@ÒÙ|lñbC/¼Ïz‚°K¡_ª®i,'Ö1ÏQñ™7^“3ºE¹øÓªïì‹9$ÀZòÕdy]ltŽr =ŸššÊ>ŒK€%ÌÒa1½\î(tã.EzW(ˆ#‚MNÌ‘¶6Ú~*×E;Ö¿ÿÐCÆ¢¯a^1÷y5§Ý¿'h¹yf -±sÚ.8Ï°5®ÀciG$5Ëg0ïKTlþpü×@Ù>]ÿfâÙWÒç„Û7QGVë”à¬n¤~ËŸ=]éZ`Œ¢î“†*æ~7 è"ž ÚŒcæØ÷w0¸¡§ŠýU{Yn.Ê_xI¿P ­§Y¦Q]`µ‘©ÆMN!ГõÁáXwé:ðæ³R;†t­šØœ“+]g‘°êZÔÉ…þ ýoswª“èQU)œ·8‹®ÈaŠâA^aÇv>xÆÄËH‚¼_nÊÙ~™‹}ïÿÜ‹StšÊGŠ7¬ ÒK¼7ˆ2¾f­CžØi0Gm1u?‚ƒÕ4‰&–]ëçÚ˜¯dÍÿF€Üpmê¸U¯h¸ Ó²ŸÁ$w¥\¯Jd8+ÀS E=§ÀX‰ÿn·ËV‘%ÓÛ?Ò¯ÖŸGÊ[4ƒŒÃDÏ)ÛíÒ‘}êƒ<µ)ì%pÿD%qrkÑoò„X(&‘¾Ç¶cŠ<^ÔºOƒ;FI¤¡·RC™çKú-fõj¼õî—Üzλ·¡ÑÐÜ œëìühãŒs+à*“U-œ¯ß\Äý(Á=D[d)@üÞ%t€õ–)#¨Ù’‰MÙ—A=ù5N$¨1Q—k­h«æÄ|¯½)ZÈcïÜ×¼‹=}•Ï6À^Ìw¤'euÔfH¯ p!x.ôÀ"s!ùÖS¨pزvNÈ—y8•~ö%šž‡…Ð_ímÔD8Ǹˆré°É³h‹wWu_ÁãÕ6Â[¶’=¶ -ŽVÇ]Y«¸2?%¼ -­ºÅê)Š/KR”¹|e=îÛͪ¡‰b_„ÿ¶0Sè„Ê–5ºŠ…31Ø¿mÉxæ>– Õ˜´Oú°ÀX![ã‚ÙØ Ž`ùÉvfò|}áRú 4"‹~)uív ßE$U«™¾\‹µW;댞ÒK0­ 6»$Ö¥§æ‹­Pk?ÅÍy»yÿˆ4…º<öÝÞðË’q=CG$ ð–¸@dÙÁ±·~óÉA1Q8‚A-|߉b1`z­±j ´–Û¦üZ\¢.Çrï©  ~äÇs¿™"µbê]Ry™™™&rÈD0hLšSÕ)ê¬z6Mæ=â—þ"'¹OOè–þÆQ—k {2+•$Óô}°<×à»’òÊW`ö²ùÔà É1²='ðœ,ÖÝh©ÃòƒkÆÙëCfEœ5úF]ŠÐ‹y–nh|ÌdÐ/(¿~&þçÀP°¥B9µCÿx€Œ9 -ùÞê %á÷,9ŸÏOKìÓíL˜ÜvH,Œ>ÒŽ…ôŒ,6´”"+DƸórhL<]A+6æJÂJµ9çåÛ¿î2÷jQ}b…F¡[êó©zó'p &S½*U´$³Ø–£Ž‚a`RÑI=Õždív”_Ø\ÛW©÷Bàºõ±_½5¶§Ån[™ñß&òUêý¶Xi­ðâ‘N»¯cuοrðvI—]VI¨ß®†\Sîî"IŽ®ævŸs ’qYpœÏP]ÿ5|ÿ|rOÚ‰€ccéB0óKV|× ë†4÷Þ0Cajpâ¦ësÉ8AÆè»—çãÍêµÿ¡Y4-ìÓëL´åç ³Í¯Äði ïÝîFV±{%ÆxE_ ­œ*`ÐLOÃUìó -Ç”K¿­GÊÉs|ªmJ£Â%5ݯ’Ïï¦dAv<jா‚²-Wží:ß,=BYê¬þm¡ªà˜ìe"r5t­®¢€Éíúŧ²ì>,àwÙxI_ õe³s‰·áÌÙx–Rt¢´¥Qe‰¼h;ÿ -[œGf”Ò„(`¡*ùñ/ã¼I²{wð4i˜Oa"ûÿÄï\Ÿà¹%{-ø+¡ú`«8Ýá@;ÃdZ¡ñÈÞxŸóW'àðgA‘à$vÀqÐ%“=@« Py_w§Ð駾€{Š¬¹pÁ6œßÑìþL¢M–ýmM#ý -R -…éY›´¼œ«Ñ$Р쭀ï†ôÆ|¦6¹™|å™ÈGI—·`Äfkqa}@t¸Z&'‘Â=ä3¥„ÔbI§gUž5ƒe€­ÈÆý©A½¯ä },ü§ò)ç:iÆcðhZ:l¿é¯Ò‚ 2W#¨3¬0çërM$­a ÿ Imv›ÐòúOê¾"¨, -ƒ:( %CëºÞï©Mi·@ïÍ\õ[±ô -Üõ‰t•Òà=èUMñn[B_È2–_@nu˜?LÒ,DWUÌþŒÔx¸=u}•#m¶•6ÓxA x^QZû+% ë‰*{ÏŠÕ·r RH [*Yy—º0åiÇ­0abýP7©ÉyÖ¾‰pvk§TÚÌ×TR+%Å7îü²Ü!‰±Úfø´F gGÞàPÀ‹2?S%|¶b%°ãþý—¢ìN&tÆ:>EOÊYJJïJÿ¤’ZŽ“ªéÿBH-!~y¼ÒpÕ̊Ҭ㠄ˆàÖ¯dí z/ê¤úß3¤àj‘¤*À(JP›Å$'¯¤­AäTø¶·˪x"¶Åôb˜4~4]Xպ撾÷˜9®9T<½ÔŸÊ›Kꣅȟ9[I{˜Pú>ƒƒ5Ruc&(îªöÓ0ܪv²ñ Ÿ;ð{é3ýx}»_%.¾bŸeW îª¢2eSxìD‚8£«oì™èá{Û»Àé·èœ}¿wn,WPð ®z›–Œœ;Ö+Rˆt…VÍXñã=Í \Òu¦ºB•ÅíóU(CvÆw?H× jtÿ~DŸ¤xtíúÓƒºúŠEP’[Èx«Ó/²„¡2·‚)®Ñ+à´·™ŸÑʱÉx…Ì4·÷©6IHg°oEÖ'‡¢Øn²bæÄ\l­ÌL’hcëüb/ªK}kêVšþÞD u 6#+Ûé9o¬îÂÍi³(gy5lS‹ñ‡¸û{¾Ç Z½ÎQ‰ Œ·0µdõp‹Wg-Lb¥Ÿp÷ûy\Ûz(gR§6àeïÇÎÀ¬KµþG¦=9U2ݧæჳ¹C°ý¦óÕH âÁopŽr'ùÚFSëÉ+ U½ÉËÜ$ø¶Çκ ¹h;Ù ÐI¡~Ζ¤‚:oDøÈU½­E«ùF¸yo;0Úþ€ð?ÞÛÒÛmPÐ>"Ë#Ç•Æú° ŽT5J!*øåùS@§Mæ7#8&Öì-¦§ù ynúÄ9›Þôù“Ò5·°G„±TÞÕÔÉ„Vô -÷«—í+W±S[Oêm3‘Pmd‰é,«+”S€ÐÁý§ñT졆køyõR<$ ÍäÝ€ á2ÿa&Òö¸ŸØ=¥CÔ öï°áNÎ 97¶#ª²â~ÊÆM‹õõœÜT±À?´Bzò×RÑ͹ ¢Q²z«©×]s‹ªTëðôÓP@P„™ …G-ÇÞ R9M¿€åz­åó€å)3šîM¼ö¥H­žxÂÿV'’¥.(Ós°ú;àË|ß_OTŸÕžXëÒ9`G„ ü$PWÙ¤eYïƒñÛÑ=fE%Ô¤OŽpdD¥ÝmôzÈ©ÖÄ]Ṇ²µÖ¥zÀ‡K”+xIVk -w±:ôôMº mÑ×4ËüªYV¾#¡ù⺸š¹Mü¢ð]¦ø*Ç¢×£9ãˆtù5#rmÚâ'E×eo$Κ¢§•ÝÒ+z8n/=?njѳžÑ(­×ÄË(,š¦O2w é<6¡Fnc 1!åA¹zVÐRúÄI™»êز+TkÀo9®˜Û:ßÉW\ùˆv.y€A5”æÆÂgòf]?j6)ÿÆx›ªyÛ!N5¢‹g,Ó:2‹šˆîF¼%çuÕE`î®íÓBèxw÷(ݯɆš&´^šóÍ‚‚‹N¦õVÏè±Ûž¤ÏAÈB k+&Â@É'Ïј†sƒ†º†_;º™¬·Šqõ(_©ý¸:í¼.Ù:)î‚[Ñ ?bþtÅ.Nð¦|ÀÔPÙmÆ}ÂÀ/ˆu¯à#7A"U«Ã)¶„T\×ZxëH ro}o2ÛXŸÑÄËa/ùvñ½D3kU•ô[ÀÒ×+,뫲ÖÃ,ËO í4%߇$H'üűC/´þ¶‹‘ Œü¢ÁÕ|,¢v=¹ï}醜Cˆªœœy`6YP*¸æô“rÞÀ8%{o4c”1æºOSñB¶!dA6ë­]W%gÀcåT òœÞŸ¶©dÿ>Mˆ2Á¹^NjîÁ[NÕ@• *Zµöæ;#hhÜK7ç#2;¯Cݶ¢‚û±2 wC¯Ž‘"ÓÆ[´yD«JÈ,#Íb‰Z„ˆV*7 xߘKä;ž‹ŽÐ”yËv€•96I)I" $!‘ÄÕ/¨ùµ8¾õo’(P¢yRêÁ´ƒUS£`<ù!{ŠG¦ÐÁe¼+‚ƒæ(C‚³uA°ÂqÐlèTcu[– ø•jÖ=EšñÕŸ2øC4%Ëó´¬°2+drQîºÒ¢/;Á‘ Ú‘ù}C`µ‘©@|ÿ&c„Å¿ï1ûIÈO}º5áî& ‚!v,+MÞñ1êçÀpp‰_㯎ì­0ðiP€þÍ••ïŒ‚¼¬ñ‡¸g¥¾Z1ˆ:€…~æi(’lŒŠã=kq®a¯¬ð.À1äœØÞ':;)ÖÞ]4ð,ë6uxcçLÙA±aƒÙ^!©ôL²‰’" už›â -Éœ~=¥ÏCÐ3„[¾ .18ýÜjIùúTOØQ -Qƒÿž”yÜ(¥E*Àû>¿¬'߇߃5ˆ h „V€—Ý`,èõvr3TŽTÓ{ßÿ½3O¾Ûýï_¶Ž<ë΄ÓDì+ §ÿÞhÞ‰²3Ê‚<áåi.êðwH:°ÓÎ$¼2D(·ý¦=«­î«ÓKo¬k$ȧ¿*;‰NÐÍ“ #WF &©÷#Òû³è4}¢zrZ?ÉÉ#ó#cñõ ñÏ›È åaåæ’Œp÷~‹mšôz‘µìK(²Eeô%†fÙSåwdùv|—J¾ ©e‡“üOoC€ïü,0Qti$Œ}Ö‚"|"gÄO›I® -/±‡<™²EPª*×ß&æzh棷šD¼JˆÝ.öʃcDÇZñâ -„¹ÿZiÎê±÷ß“Åhšû [<TÆe²| „ÚT)Î"Aê½Øá1W*Gà|t Ví\]Ÿ£•¾¥?»MàaˆõøuåÌOu…®9‰Ú äééü«òþè8ÑêL~'jÛöÛ¢îþÆ›>¤pSýV#“Áu:>½f`Ï"_Bon”!wN¾— Ïy/C5£Ïrb?Ú7ûÎ@£?+…V5‹ÕÏëØ®­¡ -BŒ…6ºÊöíoYÃñqÄ^­5”Zp ·r,ÜB’^â:NÅJÀ´˜¥ÿ0ó7Aϊߧr‘Õ§}E4 ÉzA­èÞWrÌä%`ÖHÙpZº÷p=É{ŸoÃ.À{ç#'ªõ³uMèŽT±àòÕÅ[‚góI{ÃdLAN’Æ }beì†/F? A¸]buÖvÉÁ«¤qÝ“[3<Ï4MBT¤pa·àrN½[­0…ßüO€4\Û¤识BoƸÌãšF¬ ¨ýÛð>’Ë'Åd®nx¼N—#i k_AÞ›¶Õ³ƒ°¢s#;¼ÚwÈöÍ‘2¥Ô³LëüÒ˜ÐE‚üD†s ‰†¢ÿ©=Ö±¸ÆU§#Tâ¶{\âÊ! ^CǺnaæ£A2EÈŽ -¼, øt.UÖä½´ÍÈr§&Bըϲ³Ü”'Lû²U -?d1¢t>” -¬}tjìèH´ë# iaÚ‡^œ!¸Ýø[!BQhTÙ1%r<é´Ô¶éšcñNP+îP¥äŽ ê¹x@k}cd¼çp"Ýú/n}ŸïÀ£Ø—I£ ç¾j‹XÏ=謀dA'¼ôTŽ&`妺MÔ]ä¦'–|ãÅg®4¿çó•b -J‘4˜Y´·•ëЄ ]Ž³´1ÜcY#@·zG6ÉKó1&C'èÄ«7¨Pܺ—åtu.¿)O¡“·D-›>`xû€AåóvÚ&ÿlNO5ù%ªew@?–r½,糉#®¢çÓ*Ÿ•gzl>1Ø-Ä–VKŠmz)œcQu%jf3¡>‡Î³Ž?{\£ f> -÷WœÚ®;¯5Ú]ØEÔ‘4*,•?‚B 9• - ÞµCˆÒaô•I¯Üð$°éÙ8]F 6'Æd€ÏXL¬‚k•RüÞRzÖ\°›¼ÖXp_lÇv Ä¡ï·?Én¼?T#ˆGɪªÞuáú\ªì%(N!aD§)¦cÎh1­ÿ¹EÃz``êË•/å&$ŽS }S]¼g¨({ˆjB“nkém*u5'­k -8Í«ÔQøx&,$>„;¡v  YÐÏ<qVp·Ù¯M_¬é¼F|y4ƨ≦cQC%ŠŒ`øܨPòDŒè†{ϼ’¶!àÛ±)«Ã™rùVv^«AÆÆ^º›Ôoh…lÎùQ¡Äı\¼ØC<[¨ÿc•¥´­‰6<¿à^&g€•_šŸø›s4ö¹˜oÔÉ ]_|CýúK -äï’,-ܸ,ôZkËØ -!ç> +/ProcSet [ /PDF /Text ] >> -stream -%!PS-AdobeFont-1.0: CMR7 003.002 -%%Title: CMR7 -%Version: 003.002 -%%CreationDate: Mon Jul 13 16:17:00 2009 -%%Creator: David M. Jones -%Copyright: Copyright (c) 1997, 2009 American Mathematical Society -%Copyright: (), with Reserved Font Name CMR7. -% This Font Software is licensed under the SIL Open Font License, Version 1.1. -% This license is in the accompanying file OFL.txt, and is also -% available with a FAQ at: http://scripts.sil.org/OFL. -%%EndComments -FontDirectory/CMR7 known{/CMR7 findfont dup/UniqueID known{dup -/UniqueID get 5000790 eq exch/FontType get 1 eq and}{pop false}ifelse -{save true}{false}ifelse}{false}ifelse -11 dict begin -/FontType 1 def -/FontMatrix [0.001 0 0 0.001 0 0 ]readonly def -/FontName /GIODUE+CMR7 def -/FontBBox {-27 -250 1122 750 }readonly def -/PaintType 0 def -/FontInfo 9 dict dup begin -/version (003.002) readonly def -/Notice (Copyright \050c\051 1997, 2009 American Mathematical Society \050\051, with Reserved Font Name CMR7.) readonly def -/FullName (CMR7) readonly def -/FamilyName (Computer Modern) readonly def -/Weight (Medium) readonly def -/ItalicAngle 0 def -/isFixedPitch false def -/UnderlinePosition -100 def -/UnderlineThickness 50 def -end readonly def -/Encoding 256 array -0 1 255 {1 index exch /.notdef put} for -dup 58 /colon put -dup 53 /five put -dup 52 /four put -dup 49 /one put -dup 51 /three put -dup 50 /two put -dup 48 /zero put -readonly def -currentdict end -currentfile eexec -ÙÖoc;„j²„¼ø°Aw-åÎ=Ó%åW˜)-{Ùr½uú•)¯œ‚ßröA•ÉÂÜãE(õ@Úý{ë¹´‡º“Q»û|ü_‘RÑå» -ØÐÆϤëA³Å -T@æ|ýq|Vk¹¿J% qu8P¢øwÄGx³ÅªÛ̆ÖåQæ¯6K üªÒ-UŒ\§Ô%¡bÕ"t-*ðxÔõöÓŸÏÿJ‘+ -}ì3¥{Zà2ŽùÕzݬT2sÀ$ZõÌÑ&{Bè–J×{¨¥Þ£Ô\u¦‰3ÜÀ]G~Öâ 7ÚGô–®!†/ Q FM´~Åf/m*¡i‹(ž"!i©ÁŸ -K€5> Å£ü d“,J^«µ…,ðÏ]‚^¢ -zçÒ* òµ+ˆkh©ÓjOwè½Üqì ðk&,“æ_?€™ÌþɈc"“n?ö¦ÎÕWˆ“)ž“–Õ‹ÀΦ kÖ投`íZ­·”Ã/ôS –*Í?•µc|ä”åWÅgo¾‘î‘ýÕÊ®²bÁi8hesø¾°Qiú„ɺ4)F¡‘ùv¸Êöš€P Vîå¨ØÀpik‘¸`jïÕðä`À›µÁE«U)oîêµWð jBNf‹ÁÛÀ¸ƒPÉTŒØº¦Òa_$ïé­ ÉuDd†Ø3ŽQö—BZSfyu4 螨xÂ঺áßÑNù<þŸŒ1ØÒâ¡Xák•7ÓI›¹>%üè}Ó -Ø'ÛåT™ÿ)©~$I%Îÿqà’PI#³-M“ÏèVxkÎÂxÅì@Þ¼ÔÛœZßJ6h€ï­âÚ=hAÚ°ßÎÌ:¿#obÖvºÞ0e¾\ýô¡í¡Å0“ÉèõcP¯Bz{Å¢f=ßø¶d1ŠêÝGš'{Ã1×À@dÎD~yXr¾•D®OZ¨EÉ.ÏÜ=ë“(%^¨½/2VÀ¸)¸¾êÒÅÇä(ßðímïºfºRŽ20`Þ‰·TLmô/öäQŽL’Ê‚ zKØMm±Í¥±¥œðüØ +^é¸ÖvA³¼ -oEËþGxªvìíX·IxAÉóW´Ÿ¤ÈúÕ>xÚCª¿ë5у”ôï!w¡Ó^é“ ùØÄ¥Øv”(ôÑ4,-£‚eÂñ¼Ó»£?/R‰ãì—?ŽD³qeqÁ–«³-¡ ¨xEíî $õܘ¢*3o¼á®˜‚YÔ+0{+N.úýµ€Å>ψˆ'= ·ÇIJûà -f]̇C"spn‚° 2‚1 {3ú=EüÚj®ë4õÔZNÊ2 -¯õK~*wº?þô¤èî#–´ †9ª;ô -´A)šPy 7ˆ}Ü^µmuFîœØÇ2úŠ¡”¬°x~m6Âä«4&GÅ?r¥\|6›¨™ÈL)ew¦‘ÜØB+rÔBcçÛž 3…Áv -›—à!´¬:0{uL -âÐAÛj}{q3W^B©'Ý(ýY¥Èhn0ÖWÄRèSá?uùÚÄ ýì—ZÅ°¶•ˆi‘n´ãÕÊ=Ù½¸Ú Ç˜)ë“{µs¯=èm\‚‚•¿ul^GhNÈØ@ûëà(—s x»ú6“Ù±búM‡'*ê¶'ª¦Å6å?äåën¿A ¹{œž°™,»™1ˆ{›Eöˆì.ÖRxmN4ºkßæ(w›¹l30Mùª¿ŸÛæá\EŠ³r -ÿè´ß™õpýíÍtíyÝ ßoí>ù -{§þa_—¯·SöÀÁª -[D™«.–îtÑI˜EÓ½îË ‰]fÅúçVê®Õ“«Þj7Va_aÉÀóõ"-{#íÓíæ§-ú -ö:çbO—Û[ñ)îH­¼ÔAXÚEë»”Äÿ§÷UgŸÔÓ2zO•q槧q°ƒ£Œ"ž …þrIÉ~ÉÜ$§>sæÞíõ£0°Y@¨ùºÈ¨5ú©è·{I½ŽØ>Ìy炲oÐC´ÝìƒA2=ÀBù?Á"Rˆ° -Ág_É,~¶û÷q.E| noÌÏ—T6;i?XŠbÌ4ƒÝô}t÷ežÀþÔÚÿ·LÏ1~ë&“LdZÍ}ô2†Wó›.ë4§Žƒ.î»^%Í*¥Ð³ËDÙ|ïZ?³í„7„ŽW1ð­ * DñDŸ?P_ÿïtÐo¡ÍóKŠ•LŠ'cªŠõ·õÞ Ü߇ ‹mS>Á-ŒØ#|‘Ž ;Îâ[R1åÚ¢‹•`ô -µ@@o¶Înøhð¼.ÔÅVÖÝF+Ëw3ÝŸ—ä)RX#¸¦ù¢9¥sz4ñX‰"²#bâwL{žc†F€N­áj'›ÆŒ QŠÔ‘t¹öù2×TÚn~î.í«ƒ „¿Ë•|ª_Åð߸þkÏ(­Fÿm -nã8*žüY3ù".g~é3SBج!Í—òÍsÞ8¼ +Îã݆ –•i˜¸ÙéD7¹ÉDü»ù®ó#å¯õÛÀoEûMP0Ó0p©nªÌ‹E\ÄÙ®û+Ø7–Ê_ »Q÷zƒRĉ ÏiDoB’œ=|  n$2bVÛ¾WôïµRðuðš^ì¹]´72#†­¿‡ð¬ -x7å·SE»5°£•OžØÐïUÊ:?o­q ³W\þÊñåŸqŠ¦PßÊt<õhãµÂÇÍáR,v¯7‹Eb‚ÅæºZ5=õ>Ûù—™ðÅÖœø£#»hSRA³ì>2ÄÞƒOÕ?l"qÞ(ÑDêO†‡õukõ4_}ÛÇž#© ¥`N¿ˆú0N«‚»_Cå¬ÙB<â=«gëKO1/úa½!í!‡Ô“(`JË­×9.‡ÇR£Ë¨y1j¦ñln—L³÷`úfùÏ€ª‚­Ö~ͪu»ŠJ±jwDÏ19ðÈK^W7Lÿ(µÒ¿kHè8rÅìC/ŒÇ_…«éÑã! ½„†1gÃg` ·Òbñ¶u– ¶ûâVdoT¹_«E$†§† ÑLZCëbêàÎ)§#uþe£èÝàè*<¢mÅ}ÿ}‰‹<Z´·1¬ôø•]7¶—ãnè…ý•æ¿=6‰öëc~#`­oM`¸Iàä’GCŠcÅàIRÂ(f´ 1?â•é>+YKCZ…%ª”s)pÒÏ÷ÞxðöÿHODR×h„Lû‰Œ‡Ûâ©©? -F,êö@Û·šÇÃl-â%xµWàuçÆLÀT— –ˆ7a Í5 -åÑÈþ‰b=âoøÑŽ¸¨cœ‰aþ -ærPYq¶·ÂfŸØ3Ue¦žQ6j’uî‰!µ ‘¦tåYL,#EêþvƒËÖý¸8?€@Ð<éÿm?©ïÄšâ¸ýÓ¿Yî—À7Õ^U0‡ÇñM`¾ÙX,ÙÉöoz¦š ÛN]†¨þÜûCSð¢pbÖËÓ¿Èÿ\ÈÏ{ˆùÅ2,1ߣT&JRïCu& ý/D#°e¾Î“|Ëû}Jû„éâÓ-o›zOÎYT–C]æiÔÇ/úÆêû K^µ¦‡QaÈCi¡{Œ;ᤩ„`§‡í; -@³WCÝË÷k‰2YHà”G$ëJÙÄõÔ“—Oµ>K+ +FÛó. %KÜí¢ÿ×WÚÚéÞWZ •ucQ¢ûÕRŽ¦çT¤1žµ¤ Ý>ïrèƒö›–튌;FÐGÖ§ñ'ý¾:²Å©£dìX‡Ïn|I¼õ]ͨ£xq/ç1‡üºsi¦N$bp–€Òp· 0µt¦_ã *`O§:5¼ ‰Mìžšã}‘|øåZN»UÇ÷Žë!#ß QÒ½C°–žI¿ -¹~æo÷ |žŠâ$K1nÇ|x9œºˆíÕ9¤áò{aPµbK/fmÑ,0?üf9p¨m8-6zUÎÈgê˜.çGd¢è‹€AJç%4 <ÛÐ~¨lÓÖ_2Ëí”Wµjª»dMOÿäŠåSÛme©Â"Ã½ß Ï=¢mª9“ŠcófÉb|…‡?ß å•¶ -YQ@Àƒ]›õ´P2h¥/×Wë‚)XñvÛ¿“Y -ÉüòÙ+À“;nKœß9¸LÁŒ®*«`º-1 €+±Áò—›ï®jÅÐÌÛHòóWt\Œ÷îÆÐòGÀJƒflìå¾ëA™òfôf>a5DC$©6¹âlg¾ý•¶*4ï/¡*˜ã$M૦þmâd$³“¨$0ŒeæÖl7aaÜü®ˆ (îw3ˆ\é™\XžãAÈ¿›4›`Ì]¯í–|“v†ãƒÚ21¿) žý…Ÿd½6.7FºkCæ/à1ØJ5d›æeœGñ‰úƒq‚®–¹€áv‚TßÀßžNÇÏè|@\½%ƆeC_ì>Ã$Xõ8cBò¸'f{ ¥ŸnŸQ²ZNÆr R³nŸ¦}R½1ÞBz æé™_ÐœŒ×šçÂç-ÓE£õkjæÏëÜmnk"’×5§jö/2Œ~¬ãb‹õE®…9óˆ#ÁF–mYÛ©ç~|NDp­—TT6Z%ñûÐH cüÅtjªòz3ŸœÚ\ *”³/0º¥9R[›Æ¢3ÃÕ/àcé4ÙÖªí‘KÞü¯^³ á3bï%B@$ªMd¶ì$8(ës“‹PÊWc¦Yÿð:2•ÑN&òqÍÜ4˜õ$¡ -¨VYv³ÂÆH¶¹S ‚Gr +?«©6Éä>âs{ð&·®©@ Xz äû²#äxHH+D%ŒvZ~WO?V3Å3N F…Óœ9Р -[" "»µrm¬eœˆ—ë˜Ë{ØÔþ3L7çgœÇ³—¼ëR`QK8±\øðîÚ•€f0hõ ± €<®ÿ8¡… yƒØÆ -9ˆË\¼PßùìD†¹^­Ç1LÞ1Ì„\…$°C¾FbïólMQz.ºËâ¡ðIÛ¯°8¸fv «-ÙÎà%Úž¥OÓBTV’H©ÛY+ÀpJ}S -ßɲmp¾J3†¨ÉY…ýa¢s ݟµ*SQYLºBP_[‚HWBÄQgfæ `ð¾~¨Žì[xÌÛ/ypã -‘v i ¸>›zxÊØÇåuÐËp^ľ@™#uwÐ<4ãb,m*}ªp­Â…N‘{»fô E€ˆ@fN àg¡.`d"ŵƒ¨¬r âåØsrº45ŒS-ÃUÉ_xšàÿ`ÌF#ßå¿{ÎuŠýÉÆDÌ[ðK»íf4¯à²ÂIéIïóº‡xzɯrøfÄéÊb[³Bkˆ£9¤k”¾lª¢ Áô8úU‹¾÷/àW:—šþ‹ÕZ9ºµÿÇä4'`–´†3£ˆ‡íTð+–)0ÓÐê¼ç¿„ -z_,Å{áuC-óÈù4i ü¾¶7Ó˜,g¦_H”§‹ÇÜå9gQrHAÝ8]E6AúÅÁQ¼°sÿif½“*×l©ôI$LIï¯`@ ?d/]åJèTºàg¦óZÛÙY3¹’´Þ.S^+õ -¢ü}KM*×¢úŒGt836ß@Ý<§1ãø®.bJÝX†™`y<®ËŸ«D®t2ïÿ¹XJ“QÜhiËûí1kÆîµÄpŒ Q²ŒTµS¢Óž´ú;çò9Óv¶˜_áýÕè}$qﱡÓ¡L—TÔ@ç-ëpÒ˧а#‚¶ ÚקìÕ—ªØ‡®h»íÌgà@6“vŠw1AmlGh?º®ª›z6º„8N`@ôèUä»X×´>êPn¿Ã¹À÷ôø.›ò}­âùU¹ÐÕoLR° ˜·šWw×þ«…})[N[?—²ƒ¦ô6× ÖÖ$öT˜œ¥•«ÅÈeǵþÍY ÛŸè¹Ãb>ubi&›[©¸•£*Bî^=bˆ0×´úøEq[·Û…Ü㪂uËZrÙŸìªç;†càìm;m`Ò6Áh~ßn·“GžX¾c¥ûsÚçN=íúêq¨²´v{ÇYŠ®+K‚Ö¾Ñ*cbž>˜ñ扶½ÑÆá{ŒÊÀ$y\›k4ïŽà+U7Šé é2|X¸;6y”v+Ì#zcåâì)h´C]z2*¬SI¬ÁˆßA­¸]ÿ„²Ö!ÂÝÀ=[·Xÿ:¬eä¨ÓÃØ⬇Öñnes Å¸S"3hnhP}±ßƒhå7éÚðöK«² :BŒÜ‘xygÞåòä’(“Î2V}žþă—4ÒTó¼nÖ¦y-„v†ÒBö•ÚRéæŒB8zþ¶ãÁë¢òZÀ-)š¶û’‹‡>£Ó›Ò¸¡°xpã¥"½ëóË¢Q‚ãù“ÿ²iýâ&ˆëóªÅ3Yt÷ä -ó…͉EÍWÓ6‹w-ùƒ"¼;º ‹³D!£I‰dh±:|¿E D2¤SòþÓf"•Á¯[윌åø WMÝó@)xóß<ý[åÞýdj-ØÒ3ø„ÉÇ> -ÆÓðk}¯ ‹T‰°Èòiì䪻ñJâºÏ -Æ÷ªç¡³†ñà%<[â«×{ i*y2ü^.ËЀgìÍ«bêÔ‹U:‡^I£í†UCðxmT£?—F,Ùá=¹¿[0ì O•è”R=ìÝwÖô|¥í8O¼<ßÔýbÉÂ%âÏ$c 6aÛ†|ê¨Á™çöCŸ—¢©Ðk¶£§v)«î×°Q¿²Lð,1¿á:lÔæ”F¨9p´™`ºªF/DV׃ø`ÕŽBšÖ,Xyáà 4¦«àŽH//=àg8¬%ÀZ”\ú,j£6‹ÓY,b‡¢ápTÙ`K#{_2®¯$€˜ÆÎÔèèaÁƒVUsc2ûfe1 ~PêsÐϬ_ç–' -Uò,yÁ°¥VÁz½dó¡ŸCÙéÇæXµ(Y»`wç±%ŽoìPr‹A ktˆ›n,D?L'X„Ý#U¤Bô—ä† ÖΡ -¡ÐÜÔªÈÅä‚l‚-ž¿,xu+…¤ù¢÷æªk;ßïøHÚø;w\1šm¹¬m†Di|{5·-ú®‚ï»=i"R#{P !%U¶§±™j=«F2æ.¬c/‡Qâƒbø ‡á¼M É“«àÊ.sФxN8àtÊbøvVþ0¥ÖÁ2+à¨Ø€7k?‡šuË©™x›²Þaz*iD DXû{i}t½3F§i -OΣ§_ØíöûÖº/ä! -endstream -endobj -1895 0 obj +% 1926 0 obj +<< +/Type /Page +/Contents 1927 0 R +/Resources 1925 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1924 0 R +>> +% 1928 0 obj +<< +/D [1926 0 R /XYZ 149.705 753.953 null] +>> +% 1925 0 obj +<< +/Font << /F8 585 0 R >> +/ProcSet [ /PDF /Text ] +>> +% 1930 0 obj +<< +/Type /Page +/Contents 1931 0 R +/Resources 1929 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1924 0 R +>> +% 1932 0 obj +<< +/D [1930 0 R /XYZ 98.895 753.953 null] +>> +% 1933 0 obj +<< +/D [1930 0 R /XYZ 99.895 724.062 null] +>> +% 781 0 obj +<< +/D [1930 0 R /XYZ 99.895 699.619 null] +>> +% 1934 0 obj +<< +/D [1930 0 R /XYZ 99.895 643.15 null] +>> +% 833 0 obj +<< +/D [1930 0 R /XYZ 99.895 588.618 null] +>> +% 831 0 obj +<< +/D [1930 0 R /XYZ 99.895 534.087 null] +>> +% 787 0 obj +<< +/D [1930 0 R /XYZ 99.895 479.555 null] +>> +% 788 0 obj +<< +/D [1930 0 R /XYZ 99.895 436.978 null] +>> +% 804 0 obj +<< +/D [1930 0 R /XYZ 99.895 394.402 null] +>> +% 784 0 obj +<< +/D [1930 0 R /XYZ 99.895 351.272 null] +>> +% 785 0 obj +<< +/D [1930 0 R /XYZ 99.895 308.696 null] +>> +% 1935 0 obj +<< +/D [1930 0 R /XYZ 99.895 266.119 null] +>> +% 780 0 obj +<< +/D [1930 0 R /XYZ 99.895 223.543 null] +>> +% 1936 0 obj +<< +/D [1930 0 R /XYZ 99.895 180.966 null] +>> +% 1929 0 obj +<< +/Font << /F16 582 0 R /F8 585 0 R /F17 777 0 R >> +/ProcSet [ /PDF /Text ] +>> +% 1938 0 obj +<< +/Type /Page +/Contents 1939 0 R +/Resources 1937 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1924 0 R +>> +% 1940 0 obj +<< +/D [1938 0 R /XYZ 149.705 753.953 null] +>> +% 949 0 obj +<< +/D [1938 0 R /XYZ 150.705 716.092 null] +>> +% 819 0 obj +<< +/D [1938 0 R /XYZ 150.705 688.251 null] +>> +% 786 0 obj +<< +/D [1938 0 R /XYZ 150.705 632.184 null] +>> +% 783 0 obj +<< +/D [1938 0 R /XYZ 150.705 590.562 null] +>> +% 779 0 obj << -/Length1 2131 -/Length2 14577 -/Length3 0 -/Length 16708 +/D [1938 0 R /XYZ 150.705 544.789 null] >> -stream -%!PS-AdobeFont-1.0: CMR8 003.002 -%%Title: CMR8 -%Version: 003.002 -%%CreationDate: Mon Jul 13 16:17:00 2009 -%%Creator: David M. Jones -%Copyright: Copyright (c) 1997, 2009 American Mathematical Society -%Copyright: (), with Reserved Font Name CMR8. -% This Font Software is licensed under the SIL Open Font License, Version 1.1. -% This license is in the accompanying file OFL.txt, and is also -% available with a FAQ at: http://scripts.sil.org/OFL. -%%EndComments -FontDirectory/CMR8 known{/CMR8 findfont dup/UniqueID known{dup -/UniqueID get 5000791 eq exch/FontType get 1 eq and}{pop false}ifelse -{save true}{false}ifelse}{false}ifelse -11 dict begin -/FontType 1 def -/FontMatrix [0.001 0 0 0.001 0 0 ]readonly def -/FontName /HFTEUS+CMR8 def -/FontBBox {-36 -250 1070 750 }readonly def -/PaintType 0 def -/FontInfo 9 dict dup begin -/version (003.002) readonly def -/Notice (Copyright \050c\051 1997, 2009 American Mathematical Society \050\051, with Reserved Font Name CMR8.) readonly def -/FullName (CMR8) readonly def -/FamilyName (Computer Modern) readonly def -/Weight (Medium) readonly def -/ItalicAngle 0 def -/isFixedPitch false def -/UnderlinePosition -100 def -/UnderlineThickness 50 def -end readonly def -/Encoding 256 array -0 1 255 {1 index exch /.notdef put} for -dup 66 /B put -dup 71 /G put -dup 73 /I put -dup 76 /L put -dup 78 /N put -dup 79 /O put -dup 80 /P put -dup 84 /T put -dup 88 /X put -dup 97 /a put -dup 98 /b put -dup 99 /c put -dup 58 /colon put -dup 44 /comma put -dup 100 /d put -dup 101 /e put -dup 56 /eight put -dup 102 /f put -dup 53 /five put -dup 52 /four put -dup 103 /g put -dup 104 /h put -dup 45 /hyphen put -dup 105 /i put -dup 107 /k put -dup 108 /l put -dup 109 /m put -dup 110 /n put -dup 57 /nine put -dup 111 /o put -dup 49 /one put -dup 112 /p put -dup 40 /parenleft put -dup 41 /parenright put -dup 46 /period put -dup 113 /q put -dup 114 /r put -dup 115 /s put -dup 55 /seven put -dup 54 /six put -dup 47 /slash put -dup 116 /t put -dup 51 /three put -dup 50 /two put -dup 117 /u put -dup 118 /v put -dup 119 /w put -dup 120 /x put -dup 121 /y put -dup 48 /zero put -readonly def -currentdict end -currentfile eexec -ÙÖoc;„j²„¼ø°Aw-åÎ=Ó%åW˜)-{Ùr½uú•)¯œ‚ßröA•ÉÂÜãE(õ@Úý{ë¹´‡º“Q»û|ü_‘RÑå» -ØÐÆϤëA³Å -T@æ|ýq|Vk¹¿J% qu8P¢øwÄGx³ÅªÛ̆ÖåQæ¯6K üªÒ-UŒ\§Ô%¡bÕ"t-*ðxÔõöÓŸÏÿJ‘+ -}ì3¥{Zà2ŽùÕzݬT2sÀ$ZõÌÑ&{Bè–J×{¨¥ßrÌ—Õ½Íám”1lè(zåNRøréò^&%Ï:(/I‹ŒßºH’m§!’4ðÜJßxIò7¹bs,O’iÿOl7²_Äógѳ˜½s6;æ•ÂP—€—´¸­}tx´,ÀIvJŠ3ÄYžìÊ«]ò -û=Üí~ª¶™çHârl;H :Ì(x‘P/PÉû”ÿL™òÇÍSøI'sbÞ»£×~—|P¿p•NcO¸®­Aͧõõ±B°VÆãÃ")Th‘¦Ï^Cx–(Rãy•,Às)+Hß‹;ãmÂ*?ç>Hœ½"‡Ì%N»;8'bóÚGZÕÀ“bÇdà ^iì$­¸ðºôiaeö”s ·ÄÞáƒF)l:}ÿ¯3äX -‘ Mvø¨%GNð¾×Å,Ò¦½/~`Љ÷"›ìJO238Úi Œ-]IG‚cä½f7äÔ€¦Ìò2×Í‘Ú£}T þçÆ ©Ã@ó &xß³8h -„Ù{ga´5ßL€ÇÕw'~=O¹ôLcgøPâ±êv‘9±FË›zú%‚ªø„e|ýˆO—/Ób‡¾ØûêêV «K â’^¹¸Ä†8Ô‡»<)M­À…Œ†ã<mߨ;Ìç–‘’­}Od1]ZSÎçmPƒfÍ4°Ôº)˜}M‰›P¦Éèg2вl1gÌâFõÎéšïÞ¢p —V·}òŒ{¶§<[5iJOYª>ÍÕ5XŠZ¾€$ìöÞ15’ï7à~¹èZž©Ú•Ïí¦¤-U…DÁÑm?3δ쩄'ìùˆ¾£¹â¨VÏ+RÙGýpžyDHÏvx{p€cL¢÷1w¼è¾ÝÒĉ ¸FéMNg(SŠâ ‡?Ô)ìº?;¼@MÌ£íBN߬G¾XõDiêo n P®ÙS¼ÂSXÛD[këöŒgÇ[îtœÁÃó±U^?‘ðÊÉÑf2Š¸žËñ7÷ö‰#€xíUèýmºŽ½õ`j¥cÉk´$u:¸RªÙ…ŠiEçUº»Õ¡ÎŸ<ì¼â¶Õ.^Y&±˜Û†oÞ9s>¤ ùËû¾‘ºå -¯8j¾zIÓÛéC—%o»Óü«ŽšOn8òRg#–;D¼–ËžÐ2‘(J+ƒËó|ÙÑÁGœ“§èÕíœëàk9Ú²Öƒóey¢ý¨/È9+,-b3w¹9Wø7}×êÛ íëzÕ᣹¸¥þÍÓ©UyýTpúÀt×û¸Ž‰ñ_ü•24¨ça6Òs¨’‡ç!ÔO› #Ìi׌$Þ³\àAópr$w5”¨\Ëplˆ ˆYn1u¤pd[îËílkÁ!lRìävò€‹4Œ_x…¼è_$V[ïû“HZýž÷K¯ûr\wõ¡¼’u%î_²šF ^ º=£ä‘è•ÔȆC†f½˜%-×Û·¿³R>¼âŠQÎt@ôËÇÄ<¹‡Cr´üàîz£æä“DÑ…˜(öe}¯ê:EÏ?E€…¾õg =óÁÚèbö0"…аqTO]L\€¾ -AÌ›øѬÒÄMÍ“õMŽ•…o«ŸxLº¾‹‰Ò~uÉ]ƒ»_ÑÑÚç 9Ð.ɪ@Ó·š‹Ç/oøÆžI$[¢ÜY,H†Š¥¾ÅIÚ>2šÙ )ë üº©®¿¥´Å~z‹xŒ6¿¦m“…XöFVŠ”öCEOxJ†ú -jFm¦„h)Xɽ¡ÕЇ‹8¶ƒÇ‹Úé–{ãuà ‹…c£*å;¨Ëe?ÚbåßÇlV¬þ|÷Î@¤ÄÑ-¢jëAfâ9µ¾Vübô¡³ 8TûÛd²j4!éV¼º˜äe²õrŠZvÔZ,eV¦Ò†?0 -ZÝíWÅG¤ùvÿÛl´~éîÆÙˆ°[5rL‡}qTðvmjCÖå«bMÄ:gžáíÁÇö ÄVOëiÎæç“Úª­#|Ñym÷-4Í-,Ëñœ f…FöxWú½«½µps¸X!6q-„M'îý¡ÅÚß"1ÇÆ,óºsxɵIS£—›ÄœøVÿ"^íj7å3œEÊvV™™(¢T^îKö-¢k?ŒñÉïšÓ’.á;d{)ÕápBh+4¬èuU *²«èá:úm“¥;<%s‚±!- -¥âÉ8X›Í+p&4öj™ä¶öO^¼1±¥TpvD…^—ÄÄŒšÛ ôx$˜µí+flôäx’‘¡æ7Á¯=â1S6>ðrúM‡z 4àß0]ÿ —£ÍX™…C¦ÞËÜêÁ 2ƺ_sÿ5uD¬^ú'?ãß ýjeqøèÁúõ§ °¼(½ùÓ“ÙQEuf%xÂè(m"B (brqYqu]ΫHgÇÙĤp7 “¢­:±NÙQAd¼í†ÕÕY•ñïQk(|ÐÂ_÷S£/ÈË÷8a“VùÈ%'oÚv"U2Ž!¬ì§kh5Q?ó¡ª)投g&J¡$ÔË,àÇÛjS]&Ê1ìFqÐÌ*Èê*ÛÉXš*Žiªl‡òSfN”—{qZ ¯'@Çàdønl¸{ý"KÄDô¢ÿÅš Ö4tÛTY9šÿX}4heQ lÁ_7@”ZUÄ©¾/¥Acº*ЩAÁ\4;NÓ{´4ÿí¡ü5õ¬äÀL¯ÁÙ=!V5. ¾}rKáû¥q‚äS™*'Rú=ž€:¾ÉtF_}OV-î€ÙýšF‘=ñâŽ;*ZŸ»„ÞÁ ŠGoŒe÷ -EŽ×D,A$ì Ïó˜Ôùêí…C¦ÃÅâÂÚƒI€9Ü: ¯Fω·/%`,m«³ižìæSàâs1—M>lóÍÝæ£úZâÕŸì_tJ«qÇ™ÁJôž¡”kuÈBy²#+ª°©1HìLaëbÊLŽ ”剙šñƒõåÆ Wb°])Q×jfnËphåt­™;Î\ÜŒö8:ê,{ˆ²²=ýJEƒ2[W®Dº{DÅ7Ü»9Áö'J€Þž÷Ðåû#1ôÏ1j—:Ñn+õG¢,×ÅÏ,•ålsþ3¼Ý‚FIÿTHàH…`’öšvœ¾•ë©å=%Ó.aæyK†‰­yMBùn!½Sukyv"5±ÛDz -Ö§Ü'4É÷ß΄Q| &Ö¨ºÈÀÓ·ºRc3k&Ó¼ÙJ   4mÎ ó[ØÀ[“Èh|Î]œ5äßÌ -9J¶È¹ÈõÕÖÓ -0­ÕãŸgòäÁ_ -wná¿{é¼QA·n§©¹Gg“IH–Œ]E ù°ó‘oÅVÿ·å€¼4:(‡Ë\ãT¤Ys<¿³ ¸à–ÃN¹?à -MŸÈ í é'°Ê_¶-šT&mC\vpáøª5¶¯™_ÖI ÿ.uANËÂ4®Ñt@üè¥uš¢æ`YßÔÈ»ÊAÿá€ón£Äqá¬À®GÌï¤7Ï,¬m²ãE§ê¸69>•Óü¨7H†A—Õ½eÑô­{ãЮ ?VÓËN£,pPöT“ÞlΟ fgž;Iþ½ßÁ•?¢"™ÛBÓÖÓDyв LìM> -EÝ,Å4c¦ÖÁ|é -}‘ˆå=úç°¶ÍxbKî2üû^åî^W÷UAV7®xQ~e#îEJÌf/5R2§ j›ÞÇ´Ôn@FÔšI&d|º•+.á;b^†ÉºN¨(S ÚkõšæØ<׊„ƒ ¬€ºš ¬qÑ/·’Þ3?×Æš~¿Ö¤s°ÄS}Vœ7+’ûúóvÏ8ä‡ÝkáÜ©ñ!È¿ŸÊí}x =7Zò}ƒÇœ´éž]c–¦ë!Öj~ª?}&bX¤˜¸q×iE‹3x‘mýÎùûZ6Õ¦Eô7¢³Cå+:K‘Ôꉓ±áùÝ~FdNgª1Gκæ%ö’Íר”µìÛÏÞäÅÛƒ1yâ³Þ嫈Ìw½Clí檬±žÌq1FÁQf 1àÅ»‹•9\•ïê@¼›çÚå(ň¶^ŒšEгý%¸±( fJz‰Ìã^ ›´'•³²ð· R ´2͆a„¼ǃ¢îYÖ†Z¸¡ôýZƒÓÑg…dà U9Ó/ã|¡ôÓVϽT_Ý&$_›¬…=1™ûzÎG×GáxÇè /‰"²¶¦¯F÷õo¨³<,*‘¯ØöÙ#×Yño×:ßa&jCÝȯťuíõK½`ª°ËuÂŽÚÑ /öœuúwaEtž¼ #l!€}‚ó« áýž¹Œü…j؇†œˆ§'*eRhå-.h¨;hM¥oÆجc¯ÏöÅxú(ðiÀŠw ¸ùN̸uâ•Ø öTîõ=¨º6^ V™˜þ¤$²Œð[’fäÎíÖì–ú@[sÖk÷4kJ»ð@/®SOªÏnYJ\"mÈåîz{1¡³”µþœå*ˆJüKîÙ’|(¾¢n¾wCÖ¸ È4É&j_¾½G¬Þ.¯YŽ­üb[ð¹Jæ8§•ð7*"&!€Îάø&$ñ{Gùî¦?`l½ŸÃª)ƒŒ;&|v†MºøÀÞ\öžSSE£Loðkè.ýˆÄÑNž&@`ÒSšŒ9õe£Ëõ´–ñ°†ÈÑÏ‹—¶•cœ›Ýi½ž Çn ôŠ¾¾½î"*õþ¨z(N(žÎÃûª™`îš(»ªÒj–>CŠ—1*CÉš¨ßIbtûr‡jc—Wq¾÷t€?[Ii5ûáþ‡Œ6ß«AÚšIJ‹'{-Al²$h;ïm#­Q¸5dd0u3+ªÖCcªõZÓÑ‹Ô|1¿BÄ];æ¶á  Tˆ°ºÑ}¾‹Ý¼êó{*ôŸ¶!O^É5é ;¦À6ßÆÔÄIË‘Œ™m-Æx@óÓÛÊsÒ[¿2¼‰ ŒNCÙb–˜+£iæ»›¢+ÉŒø«Únu}àŸŒ®ðŒîjl¼””Dµ=É_ž}‰Ù¹Ü*1Š3?â9©Ér5Òð¯“ä\Ê¥±†ÈB¢ÿ‰ß24É"ïF#¤ÞKœ­LÿE*Bém©Üw ¢Ýc,É°h,Ÿ<#f»x%þ+ßL54 •yûé¿R#Ž—óSs¸Ž…+Ðôjª%½ÆÈáÖû×èÃrqåŸJ°¿²‚°ÁäÊ÷å÷Hì—®`ÜS|•õ'a!7[öÖZ&€.BvK9ƒ4{~ͯ'E”läö¦ßÝùB9 6gŠnS&}íÌFL›5r1}Xè»?;ÏHǯßPO*E4%_ÓÍQy‰. +1½ƒðÊ}Þõ;ÍÎ\S˜lKE@¬Ê%ŤQ"ÔäÞóí%VD󩉬‹Žº›†Òæ¹yí!ˆ;0§j`.©·•ê(ù9²Üâüd !§”0;–/[Ä‹ó>#qoâdŽ]O>À=z-)«ÿ«¶dø¦gWl|n€LÕ² ñãFEHÒ›\~l'ÿÒ„’˹áñïÎåuûã6U©e¦ÅüîG®B¾n·ÂKM̉üOûŒšeôüÝž€Ó‘ëÃV?hoR5y„?Ý™v Ä¸Zþ@'´î+Àmy˜5ä@:pžÒÅðéq»U`yÍ -2à¡þ~&@Í´Nt;ƒŒ þø=ΰ ðÚõoëÁ¿Y+ªKÆÛ›ŠFÃÅt…zÄ/·zRk€ù]z,žlÃ93Â&´ ^Ž «ÿyûÄ&¸¬\ -¡‡´v+£vXêºëuC2úI® ì~Ÿôgƒ™’s=ø"(påQ¼§ö "RQÀé§Sq1x‰Ì¦,çé1fɈ[G‚¾]x&Í•kŸ˜º5Eü¨' üzŽFm—ú™]­‰ðÜmTÃ{Ï‚h™1ÄZŠ‘˜(ƯývœtOÀ:¡kТ›4oðÁPÿ~Ô¢ «è±Ÿl;â‹÷ݳÝþË1È`³ôyI@šŠŽ!fð·L†ô§E6£×<ƒÎ+Ýãwœ š/_¥+XNó†VÎLéÀTI?YÈæœuk6Æràg¨ºa”‡ tq=ùçM=¯þ?úuç4~h7ajGÿ©wÖ–†¤Ë£Õ™°ýb8Ø|7éÃèê_•ÄAòǵ2s>@írØkŽ&$nåÔ·n­Ù¿`û‹Ï¼dKDNf… ¯ä60Æ€4#»&6“õ³49ß®ÌÓþõÍàãXG®OUÿS¯Vƒ9©ž'š&FŒ#ðUÏá@VŒô½ÁrùeN)Þt§šÊXªÍÌôž¿{báõæn³ÓÆà”Ì·Û|áC'Obý^ÏJóp$ª·ýâ:ˆ2‹}os£ré†Éeý å¥Ä3ꈺ#R¥÷²ªµ@áÃD eܾª-¦¸Þì°®Ð-#<<\ìü-8Å·©ã‘‰:Ws}±w Ó¦\ˆóé×|¦J¢íÆyª€ßÛ:,xfÉ÷À~X0ôO @¦œ˜ý³xLcfÄ¡ë9Pj'7a¨˜öš3A Öó«}~Pœ]¤©T#ZWðõ™Ào TÈ?2#ƒ”©È[Ï=¤ äU‹N3¿ÊJM‚NäÊSƒÆë‰Ï_•{/,Ó›÷kGííÍZ$ãFë¯G„ÔÅÌß[ÞÃB{SÂ[Þ¬¢VUŒIa'ÉÜJÖïnœƒ˜Ú4´\[ŠpØ÷Tp@ nnÀÏÂÊg?>íÀxÁ!`ò†NH÷«<£xýÈèI¨c‚R -Å3.ùt]cI ƒv€vM”þŠtoÐlñ_—:Rƒ,îxûÍU¯Õû0”Näñ‚d…ÖW\¤xxJ΋§îi-¼ô<ˆSæà—¯ãÊ{XoKcŽ ¥ÄµÓ -½¹[oèTƒ(gv¼ŽÔ¤„ÛJø5â÷Z†Ó¦r\©"ã 2GO¸Dèý´ª ¡|íĹ×ÐqXEEKB µPÚ¥)EµÚ¸È>Ý ‚¨É5×LIõîÊ;ɧ@#c…Ìš¨ÇÃùp 7 9·f%Ó…(ß ¬å@’¯ó¢"_ó‡,•…Ci4œmïûÆJ°úª æÅbhh&Öy‚+©Š\/áÔ^äfÞÍáËP¾²ßñ1'¼kÃÙŽ dý€êìOu¯:”`ïa‚»Y~ˆšC«ì1éz!™®.刊n=À&XË/¡‰ÑxþvðK¨~³Ûâ2‹:pÚÄSs–ø+RJvu$¥ñ÷¤í2Nï3QGçI/ §,Ÿ°â_Y퀖¦°ÁŸ÷`0Þ¬}¸/öÅ›Ž=% (†Àº=*ødœåF#Õ¤r~›â7÷%ŒbŠ¶¦cm¤^qA©È%CîÙDåp'Uá…Ú¤ %Ê;á¦Ðx«®4Å@†±¶‚5a/uëRÁ"ÙaÌaëÐ'ÖhS -¼- ê™r7â-öU¹Ê%e|¹ಠ-$Ös¼Äà­¡¥2Ê7Jf,ñ†dy+r ®¬DÇHÒ‹°¹H$ÅبàbQ8æ®ì§(kú+AæðáFˆÂM­3ÁNïaM;c3èpK]Q' %¹tÔô k™¶>Ô‰¶šØj+=ð"zàÂVœ68šu–ŠfUr!HÆ>pŸ­×¥ð‹òžà(•ç¡ˆþàKý°ÓƾÎ+b¦3ͶÝyA¦Ä3ÃÆ¿4ûwÑe+iáÙ²¢ÛE(lPê! z¤'ßkA÷é9uµÐØÊàr‡G–ù- -ÈA‡ÕBz©c-ãØM3ì׶TqÖÏŒú†”eycˆeW‡EÈÓª{Ÿ’„y=ÞW÷ -- ïx«-0ò-Ú}ÄÒ U±Xl?ãÐíÄepò}z5Rh ?, ÉÔó“UØ ¶õôl¢b ˜ü‡žâÆÊ]Sé6Hc:fšNå-dVNж¢nn­·•AŒVÜî¾­T&é™SKÒ³Ù¬:UFÙAœºw…½æ.ÍÒ@JV…:Ñ|¿cš&Ázuj½&wÿ;þšxÆà¼dâàW“„¯]ß(©}•âŒuΚ¸ø±lè^Äò"XõÕøÃhy„cˆn×·&ƒ_Ò?á¸7¯ÎgÍ -fá€.Œz—qÌè»jÊså¿Ña±Ì,ðfžèXR¶ŠäÎm ZpÍѪPÈtõÍ3C=?:„|õðö,a¸’ÓÃñ»4¼âéáàã˜ÈZý¥3e¸Pàd‡–jëL&pz©…í pul6_Á†âQñ­ðu‰ûˆè"ÓF&küwPP¿OPô‘'·œPs ;¶-a(s6D¨ˆ¼Ù†ÿÂûÅØI¯=º÷½\ }Ó>bÙÝû:ÎTÏ(°Âð‘ÔÊ·«îzÔ zŽ¿ÉXG ’2/?ë2ÔIŠã÷?Iž9‹8¸^õÖçbDiý6Äåã1Ï5ÇÉÐ6Ÿ øv®ê rÄ:ÿºÿÞ}r·±yÅü̹u1„ûÈË¡}Cÿ³QgPLJ¼y -Epó®ê.øSaÇœ°ý,Wí…ðq¡AXŠå\8Üì[oì¯lÎîÝÙ˜î®p*XxÈò¦|'£ÛG&¨ñêºaﱘ7Ôp ÖÊ^ VhmJ¶:ÞŽOPÔ©•×ƒ¼Ñˆ¬²Ù<§–4{YO‘1j¢îlðϵ†Ñ—  7$Z¦u`¦ ü˜|$ ë6¿Uçf8¼þPӛȰ˜Ì}uƾéh™*` .—ƒ¾±AØUŽŠëpagŠÇ;æš.ƒ‚JÒ‰´°áÄ'2ãoÓ<`d¢Ù ÷ÖTL¯€M¢ž¾[Gî-ƒÀ„ Cœ1±TÈy]¨«?5ætø'VÙeƒš•‚zî»|Ù"+ÍUúDmY‹¬‰±v'F ¨Vò6Û‚”L¼?ë0¢ÐßX‹ŸŽ,$ñ8e‚JAMÜûd%wE‡ƒmÝýÙRÿÎÕ|µDnï*è5²y¶á‰èøØVu÷ #½@;Ÿ¼Nû—˜7~^Øòbê` :¤oÃÉ a™&ß^È@ 9þ¦]äý®‚§§«‚]wöD|òÊ5¿)“¬©t-á/ªhŠnüI\â÷U3%Ð$fT‘»_£]ˆãòû⋳"QÆwNHÑ(jw‡—¸òýˆŸø­‹‰âàüà×+ž+i–Ùò"kS»“Hÿñî.-ìT¶Æ²<þJw«±ÿSÖw;oÑÍ!û8ððý"¢ ôWLÂÍýA ?æ¼Àgv«Ô܆·>º/íŽzá{¾WmXÈÁ>oýjSE³ Ö›‡þ´øÃù=ßÇ^F—Ø‚±ÏÙ™‰´É§_^ý.."ÊÒóbëÞ²ôlWQÏG5<,“ªÞ(0î}›§”HÔáT›c´ÓýŒ\/2‚›p¯ ÷DDM©—êpu-oháßîŒæÈÍU¸žá¦½»w P8vnM·©kpËø‘áíÑ[ŠW‘ü<À±¯_õ­$ÁÉ*z««žÕlâÞÙ€_ynw ÔRºÙ;BR^Ú¤ÊËI£ßÈãCëOû"s7 ù{áöD¼~¬Ñ?K±ÆÙ¼yì° žPÕ®“¢D!¨»   5ý×i‚µæ´gj¢“ñŒEý) ->“…ç4ØvŽ}êJúv±“AÏùÓÉFLï¯ï6¹¶Ôï„…µ,Ž˜ßI¹žqIìjº‘è_ucžƒ>õÝŽ¬yôþ]K̬XU±¿±?T?ÙM!^lˆˆ¿ÿé| ­#êÃø¸‡ãu«f¶^ n…t«[1,B—Xž¹¦*Ãã{ùN: KKX•¦­ƒƒzr5”Ò}M›ï¯rƒü¦¡¡¥«€ˆ8¿Ä=Ž£†ßéçqÛÁK½]„Ü$wæÂæt#´¨Æ/Þs>Ý•Q -$ìy -ÕÆrBõ7Å—‡g)!´UŽªm^šŒbKfë¯=³ä éâ-¾”Ž\Ž³òêÓñ°æüç²¥æ'-0ÌGN® RÁtù§÷ ¢è -³?ÁzãÏÔ—™ÊÑŸ:r2'GÂYÆ6zÓJÉÂ5ˆž=$ÇÜ×!Ÿ¶÷á‘pq\ÙUÔo] -(d¾Ô ¹³A ))jV¦;r^Ížð1Dí³!6´­OÝðX³¡i§}gš‚5;[îéílujh®JºAqu[úäºoHzËÃ\seZnSˆ±”$ õ_C+›¨eºž -¢:+.㣙µFºfà%ììA‚üž{R>XÒ0¡O˜4,fÄ´›lÁ„°݉Ñæ lXÅðyåp( Sþ¢² #}¢MþçÕÑ̓1á–G”«ÎÕž‚œ¨!Wx3Õõ¯”¡†„hcÕC³ÐhÈ*Iˆ>jÝy«¨8Nn -5|†ñP·—½9Ø*±ÊOé Q¥¢}IÿžR‹ã8„>ÜÔËÿ Bk®Zt%Õ!MÛ3õåJhåѯȂ‡[u?Ã+‰ÄÓ‚ÓÃÇ´3 É´Ô¤–³žñD†-{ çÛ®ö“:u’‘Š9K‡ <–Êe -Yf ×²ê,ÝævdÏ<ž'PGJ©U±Äwt#-†~ùc²~°²ŸÌ*qëì0Ù ôe†ùÛ ;ªTr¸„Õ½þfa9Ä\Ð_ËÜTI÷xJظ>ÑÑ`d€ax‚ DÓMøÞ]績.,ü¥NQÈöËàÔ ²ØÀœÆ›p™•&ß-Yagh”oç°2´G h'.R©•ãÿçÄûi©ÒûZÁÂ|?\ãôg»{2`’zÒàÁþ!‹éòÒI¥âD³æ £^ø£^d©ó—2e|®Õÿ³Š?ˆåÒä¡`ŒðKì¯hŒZæÖÜêqr0³'˜[Éhi‘¨yWB9¡¹Œñ †ž*É"h D!‹Iœ4Û#ÍšaLÃ,ÄÐÞp¨v{Jî•þ¨¡žÙÎî*ÀàΧRÒDyh66¡.(ƒ-ˆš\Ä!‡ißþCÞ¾Èïä–›1ôL§â“Žs/ñ=K,¿äÒ 5Ô‰;µÕí -ÔÆe;lGÅÛ­ ’.väß!Ò #À½“¹ðdÖÆ";ȬÑãÝm¥Y>¥ÞÁ–½Þ̶%í¸{0-ÑŒƒèŸþcŠEZJjl¼¥ë@>rÆísJ%I>rÿ¶ ·Ú‚3‚î|)¼‡Ï²Ú0ó©º*ÿW«¿=ÛË|_'ÔAYU{s5Ùß}3Yo–SD]™ó…I\cÏ.YÓ#âêreéúàÿNV¢;ÄìCi2_213¥„÷v ¶[ëÁ«‰œbPÑ>ƒ&”¿x*Dêõ°q…Ôj‘¤I…=ñTZ“ ˆ´`5Ö›‹E,`¸Ùd¹ ¬¢§‰„x§E þÔ6Y¢ÂÖØj(>I<“h~óÃ=4–„ Ù~ÁŒdM“Ya_NCØŽÞ°z´µB!„Ak±Ã¶ººòŽð&±y2G·1÷êR³ –õMçˆ -ÍD´7_›í‘n›ýø)>¾Ôê^÷I0üósæ•M‘$)«¶â3¨@nµ§ ÑÔ4þõÂÀ*-­±‡éâÝÞjÌÏaGD´žò°œ·ßf}æDkã¯?ËÞWaú0S [××æ5âœ;¥§ôÇè»iwU.C„-Y™óuÆ -í¡sÅ‘ëáñ¦£ÜÕçnB!Šu!N&öY|Ûœj;©[ýšC„gÛ¼x—K’ÜÙ‰3ø ß`,ó”ª/ŒÃbBÞèñáÏ]Ú¹áLyáE oLTþ)ü«€7ºµ¾T¡áÔ›Öˆu¹ QŽ/¯³CÆåÐ`!$¢´”M;¸¡—BÍÒ[ß̦Õ0/s¡=“v­Ÿ´àJs„‡K™Åì:KSýó4‡ŒÎéÉ]²w®¬Dñþòš \&Mæ\äÍ_;KŒÇIóŸëƒl£]Ûý.P2¬Ñ?YÊVSp80Lß7w¬&ãèYm-G«ÀÔ#_ë¬ðh!Q[X0ÑwÇÔ–%!ø¼P}y9¸NŠ*-ûkü¶wn£5,Øy¢fçô;x"O=Yjn~¿Ñ‰ËAJ˼øTBÓúêÞ§±ð3]'«»x UͶPøð/=Û2Š^Dý gBé+0Žs¾PŽ‹Þ%0¬3ª³7}í°&ÛÊŽ†¹COCa»Iœz`à8É·Ÿƒ…Ä-EYUæ¨Ü¿œšq͘i’Ra/iìÆ+Œ@û‡²IæX c@ì ¥(ò;W$ì -7°/5@XY ýx…á\„YcMmÒ"Á´1ÓÌÑVtê¡ì¾&‰|ª*Ë9û ]cŸiÆæÁ±~þj–:-Àr¤Yiú¾<²sÝFàõYÛ•¬¢ºÍë!Y ô^òï÷&wuOYÔcXxñ1Ûã‹gíŽnÃ9Η~1ú;ŽK†õÍYsb£5$t#JÉJsf<ÏèøtÞ÷]BYàJP~˜Ð_Æü¤GÞü!ûÔ×¼õ¤ÒÞÇ]†¡í´Îsíf>b¡evÖ~ øOÄ Ã©má¥bXب2‡ÖÖ¡Ù:M×&ýéÒ=ª“º›ß¿ã·eØoN0(Ÿ!ɱx¸©jŽú÷šgŠ)¹ÛñMx 1X6åæÔê6ÛfÖQ@Á_m'|·ÓÆ‚øÝQ Óƪb_™v5ssöüÊ}XŠ1º+çÔ³·¤\ÐÜ2rÃç¥MvEB1jûF¿ú|ÿo‰‹µnãÖ&æ:‡N­!ÙäÕ{sÃzE<çsø\àYòOˆ¬œçPãá‡ß%È ‘¥œê§¯[”:Ðô ŽØŽs·™¯bçÃÿ£ ²}ºFî ­“g‘².ÞHSâ|0çÔ³I"Ã9Õ¬è™}÷¦ClL§Ò<„A B}Þðt!™<~Y…õ·)§Ç_…ˆ”¼/L0P+/áù¿õµ´øùl‘ºRóˆ¼=zÇ‚”ø·cW`–ž´ñAêñ„ÖBÛ¶fnÔý<þÁã>—;u{):´ o™TF1ÂEÔºžLYßY…nB\Æy)ÿNÒöh—Á™¹nÍ@0&ÅíU¬Ñ7å P£ñ,$òê{†´„W­G›ñð½ŽÁ¦…0֡תoë˜tÏn å„‘_ŒWA|ÙX ܺ¦ ‚¨©§h^KßX@@;i‡q­;YFA$íÚÊræåÊŽ”ê¥:‡L»"ªéÜÄNxy*!¦h<\ÂâP˜ŠÐ?I×þºyÔQ· l£f‰©;3òϼ”o³}$Åÿ×5ýøõE¾¨Ê“êsfW›‘³âo©Œ3$ÎXïö~‘´Í[8뎋lí• É›á;|g«˜ÕýÑzÒLÕAµ‰Å…$P$2‚-½ÒÈ “FŠ ÅŸ© VáY¼rkzdÁn9¬ŽÇõ\1{µEüñÔÌ)m…7~ªÙëœz Y2çìïÆ´h -1m‡¹O8É ênà#p2ð¹™ -î‰Ïõ¹-`æ BR8÷~»ŒygÙÇ©~øåþ3\Ë^tS ÅØW+ÅN¸Q,ƒ¼\T1`/ -D¯TvJ{J|¨8ÝÄFÜ>¨&ˆâø݃нÑâµ0ÄÎ_ ¡IÈ|²²Œ4¶òqeœï“še" uÙ™(dx›ÈQ|Ç*/ïËÅU*wXÅŒ#¤ t-Ç$O(קÒã"lø<”Û§±‰ýfXì5ý öëì(mnà©Ý¦'i ÒFTU=M"ÖzåŠ>âÓ]P¡|øàÊSƒ®Û`ôz8…ÊÛÚ®×çæÍÃ]éÏDEHº¼s˜õ¨e·¤“«þ+°ÆyrÙdל憟ùKóÝ%šÏ¤íÝÜÛ©Ø ›N Àž¿ãø cÌ›…Î 7Ë!°>V°fšÆ¢¢hà!„HßR=Ð Àcm$m ìN¼z/z É£;ß/S¹æD»äò·VXDPÁ¤·«QŸXÍ~7Ú?DÑÅÄzU*¯ íÎà -¬ÄÅ“ Eñ¶¥a$k’kDÏÒcK+ñ ‚H¨DR–$›:§Û÷ƒÏŸ±çO8ñ{è=Ív¿£êKîW^ÖÔÝöÙ¨Í#U–¼oé9­_OjÕ6ɧ&ut¿OôãÓûzœ,Ÿ\áuzåÈ[E'ú]ÊäìYlr¦ÃnY`QÕ#øGƒ©Öî¯O$åDGÔju‚Þ¦yŒdU¯ÇÆY¹®L9#¨¿´D,Sð¢cT«wƒŒëž„:?(†ù`Ò gÔÜU0uB+˜²]fª« .fß7ßÙà­F0ξ*°1~! ,ûøgHÚ´9æ]3sKX\m¢BxKkƒ®ÐFAô ¥!èAk÷RJnWþ¸¾)o\ŒØ¶Â̬ͽÞtÒÐÉDÌÌ¢eú6ã|xÿm—šÖñC à6ù —ðñv˜ˆ, ¿ñ×Ñ2ššC“ÏÆO—@~ª¶™‚JÏÏ;­ãM7¾ì˧—®D^Êu¶Æß j·¿I6!Á0«G^÷#t—yq܈ŸÅ$æ›|Ae$¸ž¢÷"9¯@vNNzçáÀŠÍÚ6*^–4zw÷Ð?N x°D18o·ÔU_—ú)ÙÉiÉÖôÈBªYsÿ6V¿ržb¤«ÜF­óU϶UÊy70ÈårêÐyjc+ZŽðé;ò`Û‹Ú< ý¤ÆÇÛÉcÚ$¹I b‰R¨Åüçòú™e“g\äšÂŒöñ‚š¦ -wge‰£ç»Q˜$B®™+”9ÐWlVìþ½[ÉågÚ5™yîÍ[£DùNçT)1Ñ•YÒ?6Û ¼Tnÿö×>n2ýÖ -½mÅ{ -endstream -endobj -1897 0 obj +% 782 0 obj +<< +/D [1938 0 R /XYZ 150.705 512.909 null] +>> +% 1941 0 obj +<< +/D [1938 0 R /XYZ 150.705 480.475 null] +>> +% 1937 0 obj +<< +/Font << /F8 585 0 R /F17 777 0 R /F30 811 0 R >> +/ProcSet [ /PDF /Text ] +>> +% 1942 0 obj +[757.3 871.7 778.7 672.4 827.9] +% 1943 0 obj +[575.2 657.4 525.9 657.4 543 361.6 591.7 657.4 328.7 361.6 624.5 328.7 986.1 657.4 591.7 657.4 624.5 488.1 466.8 460.2 657.4] +% 1944 0 obj +[1444.5 1277.8 555.6 1111.1 1111.1 1111.1 1111.1 1111.1 944.5 1277.8 555.6 1000 1444.5 555.6 1000 1444.5 472.2 472.2 527.8 527.8 527.8 527.8 666.7 666.7 1000 1000 1000 1000] +% 1945 0 obj +[285.5 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 399.7 571 542.4 742.3 542.4 542.4 456.8] +% 1946 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] +% 1947 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] +% 1948 0 obj +[531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3] +% 1949 0 obj +[533.6] +% 1950 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] +% 1951 0 obj +[611.1 611.1 611.1 611.1 611.1] +% 1952 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] +% 1953 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] +% 1954 0 obj +[569.5 569.5 569.5 569.5 569.5 569.5 569.5 569.5 569.5 569.5 323.4] +% 1955 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] +% 1956 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] +% 1957 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] +% 1958 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 1000] +% 1959 0 obj +[670.8 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] +% 1960 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] +% 1961 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] +% 1963 0 obj +<< +/Type /FontDescriptor +/FontName /RAJOBS+CMBX10 +/Flags 4 +/FontBBox [-56 -250 1164 750] +/Ascent 694 +/CapHeight 686 +/Descent -194 +/ItalicAngle 0 +/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/Z/a/b/c/colon/comma/d/e/eight/emdash/endash/equal/f/ff/ffi/fi/five/fl/four/g/h/hyphen/i/j/k/l/m/n/nine/o/one/p/period/q/quoteright/r/s/seven/six/t/three/two/u/v/w/x/y/z/zero) +/FontFile 1962 0 R +>> +% 1965 0 obj +<< +/Type /FontDescriptor +/FontName /BWDLNI+CMBX12 +/Flags 4 +/FontBBox [-53 -251 1139 750] +/Ascent 694 +/CapHeight 686 +/Descent -194 +/ItalicAngle 0 +/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/ffi/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 1964 0 R +>> +% 1967 0 obj +<< +/Type /FontDescriptor +/FontName /VUBHOM+CMBX9 +/Flags 4 +/FontBBox [-58 -250 1195 750] +/Ascent 694 +/CapHeight 686 +/Descent -194 +/ItalicAngle 0 +/StemV 117 +/XHeight 444 +/CharSet (/a/b/c/d/e/f/g/h/i/l/n/o/q/r/s/t/u) +/FontFile 1966 0 R +>> +% 1969 0 obj +<< +/Type /FontDescriptor +/FontName /OUFNAH+CMEX10 +/Flags 4 +/FontBBox [-24 -2960 1454 772] +/Ascent 40 +/CapHeight 0 +/Descent -600 +/ItalicAngle 0 +/StemV 47 +/XHeight 431 +/CharSet (/radicalBigg/summationdisplay) +/FontFile 1968 0 R +>> +% 1971 0 obj << -/Length1 2014 -/Length2 14211 -/Length3 0 -/Length 16225 +/Type /FontDescriptor +/FontName /HKHZAC+CMMI10 +/Flags 4 +/FontBBox [-32 -250 1048 750] +/Ascent 694 +/CapHeight 683 +/Descent -194 +/ItalicAngle -14 +/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/i/j/k/l/less/m/n/o/p/period/r/s/slash/t/u/v/w/x/y/z) +/FontFile 1970 0 R >> -stream -%!PS-AdobeFont-1.0: CMR9 003.002 -%%Title: CMR9 -%Version: 003.002 -%%CreationDate: Mon Jul 13 16:17:00 2009 -%%Creator: David M. Jones -%Copyright: Copyright (c) 1997, 2009 American Mathematical Society -%Copyright: (), with Reserved Font Name CMR9. -% This Font Software is licensed under the SIL Open Font License, Version 1.1. -% This license is in the accompanying file OFL.txt, and is also -% available with a FAQ at: http://scripts.sil.org/OFL. -%%EndComments -FontDirectory/CMR9 known{/CMR9 findfont dup/UniqueID known{dup -/UniqueID get 5000792 eq exch/FontType get 1 eq and}{pop false}ifelse -{save true}{false}ifelse}{false}ifelse -11 dict begin -/FontType 1 def -/FontMatrix [0.001 0 0 0.001 0 0 ]readonly def -/FontName /KKURMF+CMR9 def -/FontBBox {-39 -250 1036 750 }readonly def -/PaintType 0 def -/FontInfo 9 dict dup begin -/version (003.002) readonly def -/Notice (Copyright \050c\051 1997, 2009 American Mathematical Society \050\051, with Reserved Font Name CMR9.) readonly def -/FullName (CMR9) readonly def -/FamilyName (Computer Modern) readonly def -/Weight (Medium) readonly def -/ItalicAngle 0 def -/isFixedPitch false def -/UnderlinePosition -100 def -/UnderlineThickness 50 def -end readonly def -/Encoding 256 array -0 1 255 {1 index exch /.notdef put} for -dup 66 /B put -dup 71 /G put -dup 73 /I put -dup 76 /L put -dup 79 /O put -dup 80 /P put -dup 88 /X put -dup 97 /a put -dup 98 /b put -dup 99 /c put -dup 44 /comma put -dup 100 /d put -dup 101 /e put -dup 56 /eight put -dup 61 /equal put -dup 102 /f put -dup 53 /five put -dup 52 /four put -dup 103 /g put -dup 104 /h put -dup 105 /i put -dup 109 /m put -dup 110 /n put -dup 57 /nine put -dup 111 /o put -dup 49 /one put -dup 112 /p put -dup 40 /parenleft put -dup 41 /parenright put -dup 46 /period put -dup 39 /quoteright put -dup 114 /r put -dup 115 /s put -dup 55 /seven put -dup 54 /six put -dup 116 /t put -dup 51 /three put -dup 50 /two put -dup 117 /u put -dup 120 /x put -dup 122 /z put -dup 48 /zero put -readonly def -currentdict end -currentfile eexec -ÙÖoc;„j²„¼ø°Aw-åÎ=Ó%åW˜)-{Ùr½uú•)¯œ‚ßröA•ÉÂÜãE(õ@Úý{ë¹´‡º“Q»û|ü_‘RÑå» -ØÐÆϤëA³Å -T@æ|ýq|Vk¹¿J% qu8P¢øwÄGx³ÅªÛ̆ÖåQæ¯6K üªÒ-UŒ\§Ô%¡bÕ"t-*ðxÔõöÓŸÏÿJ‘+ -}ì3¥{Zà2ŽùÕzݬT2sÀ$ZõÌÑ&{Bè–J×{¨¥ÜÆØx¹<¥Ÿ ,—Ü-.è2›¯iR‹n·Ã±vÌÙ¾1ä • „'Æ䓱©·_r"O¯»_‹t±3keè¾fBݼöVÁfj—Ú9Ò³ÿ Õ7!“± ž‰wÍÝX:À 3¡Ÿ¤Jwïͤ푘IKjáûfWüýIì.kvCËÌW_Ý5±§gÛWZõ—WöOü~Ü]!K"xÈÃÇ؉ÑruìJÔ¥Œ?FÍÚ6ëùJq‰>¤ñB^£Ñf'<2¾‘b‘ä’S­z>/¹kßæa½âɾP­"jñÂ’Ütà}[Ú#—[pæ‘å__ íñ¢@éYíÙö!ɹûsÐÎu~Ü×/ˆ8MeC2+{‘Öx$*´ì|¥û܆k)·°DúìÇÉ 3CÒŠ”ŠU–½DwËùðé“/Õъ’¬£7u”S2ÿôv»ÝÎì ~ˆæytöËKd"Êåf!ZÏ…?.ê¶ÇÇ¥îÌõTmµ¢BýlæHôœ ËEU[„ZF‚²©`Qôy)`ÞÑÜøgdeFI—¥rU-ÆJ~ÿ‹xõgí4†KXî­ {ÁÙ¬³÷“š• „æ7é$þ´åñ˜O@Mûª£?\›Ë(L‰â©Žšz%ŸÕKNJü“`Ä«¤Ò}ÖW6¸¢Ä AP6N錛"Š7`»¼Ü“uÕN -£SîX@ò*iÓÄ,þxIÛœ*O/"–À · -t1;$l‚ÈÌÿ% Å Ž¡Öûp#¡B+¢}×Ú€»ûø'Ʊ²¦RS^ ¥ÓP˵™a‡Fõé°(¾~²´ö#¹À©„„ݬۿ„ªØB(ÑI&@ŸæãÍä}‰-á˜:{åyA$¸m:ø‚‰'Ê}¦Ó§j^\êÿĺ>ãsýçe–ÈgÅáz!,ܵÝ/”uð·-9¶u}’¥e‘µIyÏpÓ¶s$ŽdçÈ×NQ/ÐÓ9¬<ŸÒ`ïÁ _`„™m;Ú4uacxr­!¿ÝLB CÀ¼u"‡KDêŽPo–Ѽcùz·¹ÞãþÇض„g„”£Ó…j=>1±”Im9ú!`ûZ&¡U¡SYœQËoeåȲ ׿è 0G¦> ý±›?:ì.ñæ£ éNdÆ¡]–¿øU’5¯«ª=î¤:ÒÕ-©ÝÔz6‘gÜ&Qã°ZI[µœ)Á©(ØÌ QÅ ‰À^6¹GB϶)CfœÆl‰Àg¸=УéŒý³Ä¬¥º -Çp#E …뎶º–o%iiþ•½T8Âv,%&{6Ø"I"Pu>Ul Ò¦n›}ïžéŸâÇ㪣ê×uêèj¡ÜyžH^^‚ž›?€"8A±Ã†ŽŒ¾ÞKþh_´°WÔÜqæÍÂÜ(W©êiš¸4Ÿs_Þ¾«"¬/êÉb,ãÑܪãèzšžëåæ¾V‚Âg£lµøÛ8_¹G¨jjÏxCFT¬Ä£W"¼1v&—“V@}B8”W§§¢ºÉt 9fggü÷Þãs× ÝKm }x[õÇ!.ZCgÝAŸùÛ¬Ìõô<9vÏD(Ñdh9Ï,‹oKÑ4Ѐ?¿Xe^ÔÄEïÀ>‰”¶miQÓË>žLÿ¨œ›üí -‰Éó¨|(é—2>à!*'Š%芡N Ö7Ô¢p> òWr¿1½É N{LÙ:+°>Ãý¥ó+ÃÍ––õ¸:UŽËö)ëhòË<§ÝtÚØ~¥j1 Qž®-3}™•£ÜT -Su-]*ð`{,µ(V¶Ð»ç ߦ,Úv´¿Ã„!+ÔÖZ]¦ô(í"Xn‡iÂ%¯ƒ”§YÇóN=Dy¹3`LuŠ3×¹ËüÚ»õŠç¯cØ:5‚ÉT âÕî&( Ì(Y./õZ¿V|‹‹+7AÑ‚}4ª¶€ -ûßé¹ à°y¼¹ÛÒ3ù&)Øã5Ø"OUpš|Ém³¡J²:UŽëcQ”CÛd<9^Ï ]µýÜÞÞ8Õ}Òîêÿ«÷¤½q¤¸uQŠŸÒŒÙr/jLÏñ¼Œ-A°Þ­?@„ΚqÎõ°øV½Å(éaõ#«8yàV<4H)UÃIú’8¶k´ËÄÍRûõ|;ôÎz+H›Ì¥[[ž !i÷2BÌ7| ,_™˜Ÿ²’0ùÑ-.MŒnÙv‘L,Ö#È–ÏÌSM}b÷Õ¦NùMªõÓÌa¬½û×KçâùߦóQ@á¶ÿ?ùvP0\HÞ¼n~¡î0õŸ~²4'æÒÝÀG¸Àf -¥4ýi9«¬Xho«½šÏ4PÓ²zÔZ1ÐÙXîãÎð …0€²Éw°ÇÃN?«3.ËÔbÁH­Å+,Næ_ë…1|Š…s²±‚Û0.TÉÞÇá7iP½ôòˆ–kçrþ£œiËæ›Ó—þ×;«Ù`C^ÍiÈdõkÀ --OyŒ^3œŸN‚^oE·Áû©Q^Úx7õ3‚½?]2„Aм›:bʤq®;Ùžýl†òÿvÇVˆ‡Šäý´¨á “çÍï5hÓÓ $YÚëíSàG׃ sSû~D¥®/ƒ#J·ÜŒMÅxœ+Å&áªdT€.¡‘hÆŽk¤z ÝwĹ+  -Ε -9w5™p»â>|‚NS¹&V©ÿý<¹Cì.¦¨¢šê¬¼šì¶Vûݦ®mwÒ§Gƒ0Á6RYœ éH&9g‰„¢>ùÙ1ÌiÉW¯—ÃI?Æ—„ųȦ2†Â•ðY;yÓ‚goùÙ§º±û»j‰iç¸]¥­WûQ®Ây_¿6K 1Æ_@H{`xçxó° -_g²g\ÅI·t‰î›±Ž‹ˆ5mÄ%Ÿe÷|0íÀ/3Tizwìƒäíq}Ê–¥Nõæù§þà³þžIAeG÷ ='ŽXCÑÎ8¨ŒëoŒ]?ÕüªŒeåw—™(m*>[ÄøG9è´°îÁc.b7EÙ…}­¾­Sò(E¤ÕÍJ~ÐDRb…x `bnµ*ðˆ°•³ ·Gë—oB)²Ÿˆ7!’SƒêÔ¦Îþß`o ?9ù®‰§h{çFk9B -L1®÷ë­yo(QG‘$0™×°]3­#ê,OJ¦8|~áî"ŒïÏî¹ÕÇÃO²og(Ä»xèâCßgí”»4}Pe &ol¼0’Ê÷'À ·%Y>úÎV»NoìÇØ‹„ôlÆÝjž=;xïŒþÄ­ô›ÊÂ3å)Ù!Gót²»ØfJ]…(õÊ2{Ü)ir18/–dœYÅÈY1AgÇq¹Hƒus®×'3;ÂÇí‘’ËžRæNt(n> -"ª Ê -Oÿº`A—‹oxbÉïE ôÒš›O(JŽÝ¸ô²tÉG•„Çhacb-ióëw´S9϶]š(?#·½ë#ͬðø7ÍÛ†DÕh,,#œ–¸á¬É×ìX=Ûò@Œc“Œ®…Î “4?q>ä‹!ìå7›'CRÏ ²:†p\(órGV±Iʵh3̓§¯1•_ƒÙ¡ø -‡Õ¿Ó„ôÈQ‰sbv» -tˆÑüÄ$>yî=ë-â|犬D¿ÜHB«þºÌ·Ë//ÂäÝå‚gÑmÖù?SÄFùOEÁn7ÓÅÞìUߎŠU“êfÙÝ¢×¼EÐxý­m¥»Ã¾†ÚÔ_™†§D¤Raë×øßnÁÎ*Õ=øâ¯vß•ß2ý’ìÇèàõ¦×têÍçe拼ßX|ujŽ 5Θ*·{“—ñtx·ÈbÖÁÒl“&VÖ¥ !ÅQ¦éŒñz²ó>!)™x[œ£ÞÝ5&ãÀþ\#@a§gü$5Î$hƒÏ;Öm€Ux©)|™ÅåR¦pf *YFË•HÀs-ƒ -*‚ç¾Å=,”$4zëåk„bkðv?ˆJTEz0ßX_gS"ÞTÝ¿E¾Ô“ÍfÝü´˜Y— Sî`9œ—Ú³¤s‹ pÿøc<ÅʨØ?DÑÔô]¯ùöšå å¿šÿBÇG?²8"´"¨tÒ9EøS)ÈÒÅBäx:oaáê…f诋D&—_<þ( 7õÿ›N–L'º%Ó_1û¿Tá®69ypFŠ¸òÄ>àð\ß'Cx~LN»)ÒÅïVæÞ”õ³ïO0Ý"û°¡šô‰ÓA \•Å©ðÈÄwšþÍéyõzN"3“ƒ‘¡+aYïI"" [‰©U¾w4GÂׇ–(Îáឳدõ4drÚ†ÿªÚ¨a›ò*ˆR+dèÀ,w• ÇâV§m ´~¼óAÑþÔ)íø|Iäyœ¥·š@ -¢ÿA%š0nje‡¶<Ž3D]ª‹=KðÔªZ})Biå#y÷cJ&ëkáuÖêsþgØWÝE[Rw;Ô)¤úTFYß΃Á0u, LˆT—ÞËŽìŽ÷Ã!l6pÏ(øRJ&4‰Ò§å·zD(÷8eWõé•E¸O –í¹(bHN9íê¤IÎô2qÉMž"ˆJp÷ß³¼iÌÂL×x9ë1( j„{x^P@õ×ïÔÒXÝgS*íHX–÷bÂe&Š©¥óhZ_O¨å¤VQ#žêJ;ĬªÉ3q6ØKXQf©ÊÌ üËM¨<±ú˜üéP¸dÐÄhæJ†½‚ iåJÈÚ@YoJ‡¨ åÙŸÑfÃÚƒAyÏuVi#Ïóé8ÿ4&¯D:·dO&ÀFB+0MŠñ\Œ5bDl[ÞW¸»œjé>Jåuñ(RܨàЗŇÃMûîœ;ƒUF°Ðíßµ©Ø»6ctÄ(óÀËÀ³Qmé})mh »´éº½i¶1ràÝn’)œQžï‰Ø´¿À³Î¾ëw/”{ê»ó¤‘üైI3;Ï4Žgáôs,±Ðæå‰Á™ÁÛídQs æ¼kˆì…_S+ƒy‹’°¦…ñ>{ØðD¥K3Å-z'C…íˆ,‘b!©HfYLAÑ~ýqƒçÖ0íÛ.fšŽ2nõco,‹®gÝ5¯rÉ#†¸ö|é„m¯05ÞËåÒoJôpÄHŒñC´·ou{ í¤þP1}Ö i&T kÁ¢!ðkZe¼ÌÊniŠ0ù€ó8…amqØlš¹!‹2à´ðþ‘ŧY›š‚»s}—°ELD¯GÏS*)@N8‰5)CÆÛ,›wõøµÒš4=½Ô6"MztŽž]ÛAJ)]L“œrŒ*In–¯ŸC^çQ!I½§QV’œ°ð™ŠåŒZ²ücŠ2ÚÕU†¤Õ;ÎBŒ—¿FbñFÕ¯•‘8ônXŸµ—I’AL ^Œõ‘*‚›„o.é–\úSîáöåÙYIuìyXs­? Ì1žÀ¿óÐ:¤G®d¯çq¨ôN$JgªúnLsä{BqYÊ]j•µfþYBÚr뎊í„õòi¾Ëó5²pSŒ«ÁC³² q: -‚99xec]RÓ{zC±‡º?yOºSÖ.æ+àT#`üJ*´‚*¨®OrÍ×: 1-²¼Ga"FXb¼2˜ÅOF+< ãPpÇT)Y(a‚VÿK -¥±»Z’Ñ¡Ìû@ˆˆÝ¾O:²är±^Žæ:M¦9sª þ…ŸÑq@„*D’úY˜_Ó<Ib>Cñe[@Ч]%‚¦È€#K7‹ÔêúèÈRj‘œk2A›>å&ƒ^²ÝèRzÑ=f‰é–)øgjAÝ“'x‡bBPd<¯ã¥^ÒŽ,Ó!ávÕåmØ J!‘±*<®±/S²ÈÂ=MÌ9}X[ÛR3áúA2+Nƒdë"âvF6 Eõ’[ï.¡ÎÓZNN‚DãÂçhŒ£|ðKç>5Ò‹.5(KáúÓ>+†ƒ+4»yÕ@¨ÞŽÐBÕî[Y¸¼”õ ¬-`üŒ•‰”‘ñÍ‘!¥§-|©õRVMr6 d$j÷«w®eŸº­í(%.`.öò tÀ“ -`ñȈžèö´n1åh nzÑÛeRà€#nùmäÞO°þÙ†wÂwOu*NÇøkxcŠ™ÿV£ÔÁ9¬HÂq8°2ɤÏ3ñ¢Îòò×Õ›ô¢ƒ.Sš+È@&½Š‘\ÄÑ]ÀbWß¡!¢NÞ¥pÙaÃî0’f¼lÝn»Ó -ED ´pèCr:ñ°óåÔìQ=£ä‘èâÌWµ8{‘mCUØ·;·Qtþã[®ŠZߪjÆš´|YQ4ÈæC<ZeÏØîoäåúD>소óV@©ÁR6‡÷¦¡IÝ+ÅjiŒ¥M½â×.Ž;}ßRÖ0û!ë3+B04Oúqߤy²ëDåpäúk~rVUÖlÂòF‘þ=ÏÃá ~Kî,Ü Ð„Ê³rèðe!‹¨…3wír |fж’þ|l°À2×4"÷låeÖ™¶é'èINÑ,5ö®LÌkME(9Îh¥RªGó…M'Wõ ò±vnvq“7R½ö7Áì¨nmpX±“rëú§º‰8Ò&§kŸÝfÂLSHJ¬£ÏXiÁouGö”åü­}þRóʵV'v-L¿Ùò¨X‡“ri'®±ÏUylÿõ]œMœQhšýÙ Œï`(iÂ4˜¨,Ùíp&\3}õÁvÄ-'Æé’ùȳ•½äž=´“¨s¢…7Fyv·Í_aªÖuL¯BDMþ›½Ú¸²ù€æä÷{“©%¿ ip=^ç±\FœïíR%Ôéæ˜-4›¿3}´¾žH†üoîm7vÑ“/ÒWJœ MÎ×õ›Uf‘#œü[¢\8¿iPæóʹÎuÞ:ƇûtMI2û!:1 åEjW˜DÜYvv‰´ü—ÌEîÙÛPrwÅíÙÑù«MÄS-¼Þµà~î`§Yü„ãÜæi -èûÈ}TK¢1B -AÏ•‹Þe¨(ߥ²«Çi¤U enŒç«7ª,–›û¸Äz r|G¬Vd¼µ§c¸°dK÷åµ{@$¿„± -ž Õã`/€¬ W[ŠØ­FÞÿŒë+ö}¬SS%l4¥!®“_'ã#í´•š'0ç¨âô ™ ¼S -|t\´Bl XÂë}¦Ž{¡5D|5äîÊî$¾§Yõ†­…µ‹Ï®8¹1ÌØÅ©Iûµ[Ø̉b·¯zE …Ú/–T?=ˆë‰Þôø X»‰Äd -‡Ò‚Ù'˜ pÁô)Þl¶Á^í@*F}ÞaêÐ>çî>3+fÞ±âÅ2mÍä -QëH·y•‡[*ÿð²x'M^)D~)\š¨im ·hÍà×ð>¯I¾ˆšå}«¸äÑÁd¤@ñ§BÖûÜ®|ßî_¸2_ÿºÂàø¬ þ‚ÝWÑ3w¿ÇÅ­8¼$µ&ìÜ -ßIôõäë<¯ŽÇÚ.Ö\p£ÔPx~“¸‡G<š°n/CRNVð1,“oJ0ñƒ¦k͈9QcÞ#¨P°rKÅ!ÙÀŽFn(3a…Jã»­üF˜§âôQ› -ÀR!ïëÈ9neÉUŸþ{ªuKR;dÎZ9@úGº¤ðòÈØŽ‘µ…Î’çJIú -%/Ë bcªéÂÄú”(#9´k˜Øö‹Ü¬zvµ÷„I,Šx›{¼'ªòBd!ð <`;Ö8'âÕ|íâ9ÕÙœ¿–7±«äb"¶×65:Ää‡XG)Rpw,<‘QH„`»õdŸ)+GùÎu=熪GÅî#<šÔg´qÏ¡ÜB›NÁ@†_V×!ª)ø‚¦­ØEãsáSX‰™U…øŸâ› ¢ÎÈo¾IdI}rì)O ec㘱,V…è6ÕUà -‹Nôð§¿Ë7‡2I’x Zr£ ùi=À×l@ÞnY½”]ÚUGö“ ußÝxªÿ#ø€¿ò«…?(p€Jt}q=îá¥sòÐ;™ð¼ÚüD‘ê‰EÕ»g¨¡#È*t|mX7*à™]€É>Ëm̘߈QGFs&ZôÓÙ¿Ø=Bg¡2 ‹œ vgá3mÝÿ¨7è¡w«hHËÈA¢¤ *'àClP”¹Cqv)×åÏjÕgîÎBþuª"û´WÉŠ>l]ælA`‰=R>·†Ïtü¬F7Y3;'ߊ5ôÿøÿÛ@Tç¬ê†’x…N¨ýáÄÆ@€;ã -¬Œ®±ž«x²«AfaËìõsÏô‡xÓgòŒs@s;h»<ºb::˜5·tk¶/å<ª½‰Õ HÚîùËÓC¸Ò0¯vêH†›%M93i~ÉÈ% -Õ6ƒƒwÓˆMÏz¸ÈÞ^:FÝøXÆ -n®`1jiäafå1£Žˆˆ2+qSÁ%Z‘º BÏ#ôR¬æô`QšûÿD1ƒÌ1»Eúº.rlz‰¤6OÑb -åGwqŒ'®¾ÎZ;¬ÑÉx - ò_Aè|!Kb2Ø'R¯¾ðlØ!–1ae·VΧâDÿvr!K˜gê¯vݤŽ`‹6sÀƒª°ŠÙ/%\ËóAZáÉ¡pÓP"±%{æèÇ\–ƒ¥ŸôuêW„¯’“ûÐw^t4Sãá•8ó{iÌ%Z -˜ˆ Ù5ìšvxñEP*x5xÆùNXë›ìŠýÖ\g ©p%W)†ÜE¥Ò'µCìËò1Ô~ Mþ}`ì…Š!ì•\%2±¨J­i›M.<ëqÛ'΋Zý,&+rü hŸy-– -f62­‡nª~Ýðö³mÁ‰ÙœeÑ‚ Ïînê}ScÛa+ùç’­59#^Ë6G-[‚§e\Š ôb·üJÐÉþ'Ò2P¿oÓ­‡BÑ»$KQAîl©§\A7±o‘BbÕ"ªø×Nósmj1È ~J¶îÙ¡-MÔrt³.ö‰–’|íØÅ%8&2£RÇh³(òé.7ü§Ak–­+Y@_lš¢ÞP>•[¹?A’p¶ e:ô÷+¦uî©[÷±¨€tKˆ ÓЮÂYj¶^ŒŠ -¬)&Žè©D-/``>düÙSãAé^šØäÖ€ÞÓímçWºðÌrL€„-vNI*®]F´•ç7µ-QƒórÊT‚ÉÎ;SŸjPÊ —…°[~ª,×+/1©ÅÞ~ƒŒNJƒÈ¯_ìÏR)S‘ÿ¸TZ–ʼn°úx‹E¶ªø"ìQ«ý§½Šª+gHž -•5ËózÿªÁúÜú÷ˆGohHçÜì—s<ÜHDºNÎŽõç¯Ìanœš/ºq6&*ÿàô -eDh²Ðè×o׬ùá1˜~ÿ£U´E<4»·R‚+s}_t>AKÌÆ*mˆ5cЃ&3($ª¸ƒ~¿~‹\Ʀâ«Õìél‘°ø#u¶7ÙٶױuÜÕ$vqê‡!ì§ÍËÀÐ…{Î+Ú¥¦ë+è»ëÑ_:ÌðÊGØ<‘unôÍ×™ÐBñãß øˆõýuKÌTµÐµ)Ëa‚§[Kbã}³Â®@§_#!¿ö¾±¨€ÒÿÔUÁùL«êWÐlÏYQ¦Ÿƒøðâòm+XÅ©éÓ0gçóo9--?{¢ šOð·ÀD5Ø,'p 1Qüzr–QBíKUiq7—Àû×Úgf@á‡0‚³RÜtÑŠŒ¦[ËñÉÒ%zí\\|å½À¦’:ØTpŽpÜE4>:ÎxГ­Ò‹JÚõ÷ùAÓºçï==ê¥fî0ÉIÃ$µ“ - 1ÊuŸå¼H¾åýí.X¹žQÿg+™©ãó'â?bà+wĈˆc`ÿ« OK¼So©4óŽóºG .¬´’_Só°Ø7Î9ø¢öuÃ+~UX ÈC’]qîÔÜ´; iá½¼“±\»h–gÌI×Ìgêí…¬•ÉAÉ…}BEh´.þž”¥zzá†ÒNp×&»úC&':žG°œ2­$ÄÿVÐIMYú^®W=æön1¤qßÊQä­]¶8þFf/iÏ×ävCCµ€SþøJC:_à¹<õ6ÑaõÉÑh&ÃLÀå'Ÿ¥.êd„´U½F¨”æª8nGù”½0Õd5½eö‘«_VnëÊ_÷¶~ßç‘% ñö6IØÀ±x.‚|-uKMQµ'V@Œ:é"vzsMGÄBúØ;þ.×»Ü,yD—!{ß'ØÝÜ`ŠÆæJ1Yø×Ó|øØÄXV¤áF•Ï€V§pºK›>X‰ä ùSá‰.4œyã]lÓ‡'xaù+R<+TGF ‘«lGêQOÕòõß—ûß¾úiW·”+TãõNÔ3–Ù>õt²¼>‡‘ôý±ø<×ëtÔIjCèG Ëcz&1Á®‡iùÊSW_Ú(Á#9ø7'©¿É¢ºÄ³É›÷Lg°¤¦Þ:v‘Ü«áT ¬ëVÕW*7 ×Ȳ¢~VêἪŠª€¸0öëΪCFÏvÎ\ñ>ü#*“¿P›ñÿ‘QÔŒÎÁ+lþWQ†G©°°1ä¼剘õdÚPøÎY‰”Õ»?“&éä"ÅW]®V–TXº‰ÿˆyM‰_„ÞËGY_ ò AÕàïœa4ŸDþ‰ÿ_É4¨v‡\‹/¸¤˜T™^…·u‚4sòUw ;‡'¥¦ ìá|þi$V0åTOÓ”!±Ú>9¹€·•wõ™˜Çs9\@Cµ°¼‚üµ"€¼Wªp¢ U u'¢u†îû>û<Šá¦!-×/ ‡×€Ëÿ„S4¹îDz‹IyÒ<ä;k)NììrÇ|JÕ€S¶Åc‘÷sò¨'‚a¸+?JƒP‹CÁmêGMßÛZLŽó-ëüwfó“tXþË<Í8“3¤<EjIZhè:{4þA'ÈûÉkÈ…Q[‚”$ql‹šÈDÉŠ‰„³ -L¿Æ??˜ì™·dðïÚAÁ6=ŽO³E@öu!ô!P•<˜fQ¥1 a7ZÛk­ÉæG°“:”V9-—n ê™õoņ1~÷òkëT’]nþsZÐNÔ‰é*d½ü¬Œ_bg4!¿d0vŠ#A7P!™ñÛö1‘Ò¨u¦'jÐ!øO!*9ÌÆáñ=’L´”]ì¹ÕU¸^‹§‘+ž:w‚¯éd,_G¡dfHÂéw–•Nu¬–Úd¤ÎÑG¨sôgüÒ㧺ò{YµÁêúpþzt›qvI˜.W¸#ôœb•êSe"\Â/dè`«q› ó©ÖUêB.©3vC®ëiu;èOùkk4çJuÅù¾ëyñøLô@e[ªe÷´ÿ•¹îRm-*²û4&;¸–ïMZ"šÕ{q[%ÕmµFý70úˆt3o”sÇ]z‚>U$i5qg¦“O²ž—5ÜüÒòÁ§SkFl¶íÕ‚ý"´x»Ø ­ +h–RŸcË$Чd5»Å.nžt™òí“vŽòM‘ØVYCBqÆÈö·í4ë•€NÉjú%:”™F®i¶p8¬e¾EÉaž©9Œy£Ê$·a²³MÇP -ý´êu^ú¥Å -<6S ¸O(}¥ÈBÇ÷·T´cN­­Çü„{=÷REKë°ÿ*ò[£hqocåˆÍQÎM£=q…ú!’ˆà&Éi ¹jÙ9Ñи˜,P•Ûö©2à°×?ø:î -§ís1­¶Ö΄™>pr—á!yÓ`#ó }Ù¿mzí…0ÂAñÑuÞ; -è%nÑƺÈ6ظvcrcé•ÚCMÝëÞ}’ß37ñðýE×v}»H~×éÎþ}ê8üØ´¦Dáè8x¶ Tí=ª{žmÓó=å}0¥²èUÑŽ¦ÉÂQiÑUº”©‘ÓçÀB¿NléòìU`¬u8ër0{b -z¤f«ÐŒA8¼Ž†µ7 Ì'æ"òÐ|Æ~*o6ˆGŠuæ4²Ô¢Æ vé×~õ8l¹A—Æÿ+¥©¬ÔÔW«ÑüuÚîä‘;a²Mî‚ÂÔ·ésMÄKm¦ÓK'O.PM -èiÆ AWîl’¬ýP„x*¶2²äaÓËõK—©ô(ÃÅn8è÷S®½ì46áŠV:ûpÌ¥í±OXÌNt0”vG¨°òým‘C gZv¾†‘†œ3ÃdÊH`ŽPPM0?ùÛßá ؘM†ña ë&o¦Gï}¢XUÔ}ñžã ð´7PŽ¤þ’œ—˜~XÁõ~¯jþë‚úì†ædí6žtIÅï‹UÅ*á³"‡ÑrCuDÇsMæ(¯ôU½A4Œ|¢¸¯ú#,Üa( ä•Ð¢§¬ °2Œ0nÿ†4Ù w*h{qîÂĵ0dIµÚaq´«N$Èœñ'³1t2F,”Ê´˜ÃòŽ¡dÐä ÜX"¶àzÓ%ËL/­å+í¸ƒfÏvÏô··ÁOß‚×WÎÓ»2]z’à9% Xµ±Êi;ëÄWV›/hP—µß0×[$ NÀäí ¾6`àui@|¹§Oí®J¤ºú8ø¢*>˜²pÒ[d_'ÛEH(U?ot~}7Û dÌäUa¡ìZh_B‰˜ìÚiOE'FjÖ™xØÚ'¬(›Rs=Jtâ2®«'ky:ÏjK1ƒ²Zã¥n˳/ -W=”USŽ‘ˆDÏ dUÒÁ!`ö -EîßÆ|”I rªJ­ý¿vžã2“†®Îý« C¡ÝZQ³Á3“qÅ7Z³ef‹$ pèäׂº«ÛÑ6ôP–Ù*Fzc‘¶`À±½{OyC™±fçk ¢6‹­wÓ•u£Ô93NSM'mËþë‡ Ofu/l÷^Ë!ˆKpøºÁûɺÙi̬îÕUQĽÄðyÁ 3£[øÏp’3â@1£'OnÌáeA0N ' ¼äËìÔ¹ÞUھܹ#尵˅î>‰ÎõûâðbB&вÆ}(}‘\5i [«(’Œ#/àä¡SäF¶)Æ­öÑ]¨¯ET•n– NŒSëdâ±dÉÔ‹7½Ñ|©.~.·`é·lΈ)}ÛF+ºÐ¸]™03æ…µ˜›Ì݈“xü$Ý ‰èº•Éjø%ýÇëÏ -¸}uLÌØU¾c m(de_õ7cséeµçv °ûႲ o[æ<Õ}¡ ‹;ÿJ»ÿµ -ƒ -ØE¦Ç”ÝÐúͤØ|ÈgÍJÅ;uô¾w9ÂÁYØPîÖšJ 癳kükbO }˦‘Ó™îMÖ¹1{ Oå/ðª6åzå1!Ó¬Œ]Û——wh+žˆ9‹9ž¦5º'³VÁŽååŸâGÓŽ^P¬÷$´#þs:åè—0aùí­fðØö¯Äm#ÏMtêr•¹Þ6ë—äéÅï;èüÔ“â×| °rm4fŠ{ãC“›&Öqh¡ÕN=…Ñ6ä¥MÂÿ­$hªò´˜ÿnN¾(öjà±e‰² -ÂáÎÍ\®†«+¤Tžårq/—÷ü¡itBaôùœÀÊI=X OŠh·#%6nN½.|Nq¯,T""´ÜÝ÷*t,M{Î(Œh¨ð‘s¯Ë €ê [gM¨Ó;<6È -©Â€“'îOJJ¯Y#6G¼S&vˆàÄ“çÊåÍ–‹áú%=’CÔdü‹7†]Ìn²<Ýtt}jër?ç•d×µâóˆŠÒßï-E#ãTLºZ›É†e¬@¯~­qiÎ ¬—§cûRñÌÉ7Ïíwßa×9¶Í³nNð*ÛTe-¤áÁÂFB_u” BÄ?ôþ]7JÖ‚ ÄL‡J:þÞ!Ãц'¤‹„½[c -éé_ªvòw?z­œ1‹£©³¶`À,Ñ‚6O8Îù@óÝóP~'ñÊ?E[Á>ó""h’š´$nØ6ôT^8|“í~ꛩ¶q©ãÁq½~sÈb‡ù$¼7³û¦ë|šv.Ù ÑïæàÿZÁ)-¿³Íà…¡e)¯òå—ó*¾‹ÌSh½Æ€ú‰QÝ^Zw…'žF#²XA¶¯Hªèjòf‚A<º)W%uCF/ȨPöSøV~î>AQÜê›üôx—˜¶gªµ¬Ù^„¦Ä囯?qD~b̆Rt@4í€$½Î¦Ýû2;n}]ÎëMîr¥Zuk -Ãó¥Ûþ)O>Ñ´ÙãY%†@koårÈ!%è©böÙ5/í;Èå3YÊó~ŽÌ¬“jêï&“«UùÝxÑ{¡¤úLï)21”'qP£{ºïárÓÇqJ]2/2k˜ ùÐ9†Ô/_ݵ§ý}¸„ŠYa¤\éýg]+-fÛ«r§EÐ}Ñ72z.ÒÏkfp4ߑ軫4wu'Iê$—¿V òT†,®OÅAhÖ°Ìç:9’™nÓ:ΛÍ#6íV^= â‡Š$»5#kŽ|Š¾Ž¨}fV>ÿºOÙg늤+ˆÓèâ Ãí¹‚ÎðÝx´5çéh”¡XÛy•Ýñk -ÖIPÑE^-\ºÅ¡†de ûó÷Ò-ñˆ›T©5¶Ümy€Ž`g<î ë­_^†vÌa‹¹Úwõ™n‡„n^²K½ŽÐÞ¿eýyt¬jN> -¢a/z6|[”cŽêŒè{ý'±3©µ­`h+ÌFsé>Jåuäþšò´ÖÌà]| -ºË8'úSGó¢G 2 -endstream -endobj -1899 0 obj +% 1973 0 obj +<< +/Type /FontDescriptor +/FontName /RVPZIX+CMMI5 +/Flags 4 +/FontBBox [37 -250 1349 750] +/Ascent 694 +/CapHeight 683 +/Descent -194 +/ItalicAngle -14 +/StemV 90 +/XHeight 431 +/CharSet (/i) +/FontFile 1972 0 R +>> +% 1975 0 obj +<< +/Type /FontDescriptor +/FontName /ZUYGVH+CMMI7 +/Flags 4 +/FontBBox [-1 -250 1171 750] +/Ascent 694 +/CapHeight 683 +/Descent -194 +/ItalicAngle -14 +/StemV 81 +/XHeight 431 +/CharSet (/H/I/T/a/comma/i/j/k/m/n) +/FontFile 1974 0 R +>> +% 1977 0 obj +<< +/Type /FontDescriptor +/FontName /ZOAUSA+CMMI8 +/Flags 4 +/FontBBox [-24 -250 1110 750] +/Ascent 694 +/CapHeight 683 +/Descent -194 +/ItalicAngle -14 +/StemV 78 +/XHeight 431 +/CharSet (/C/F/G) +/FontFile 1976 0 R +>> +% 1979 0 obj +<< +/Type /FontDescriptor +/FontName /WUKOCR+CMR10 +/Flags 4 +/FontBBox [-40 -250 1009 750] +/Ascent 694 +/CapHeight 683 +/Descent -194 +/ItalicAngle 0 +/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/emdash/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 1978 0 R +>> +% 1981 0 obj +<< +/Type /FontDescriptor +/FontName /UJRPBG+CMR6 +/Flags 4 +/FontBBox [-20 -250 1193 750] +/Ascent 694 +/CapHeight 683 +/Descent -194 +/ItalicAngle 0 +/StemV 83 +/XHeight 431 +/CharSet (/five/four/one/three/two) +/FontFile 1980 0 R +>> +% 1983 0 obj +<< +/Type /FontDescriptor +/FontName /GIODUE+CMR7 +/Flags 4 +/FontBBox [-27 -250 1122 750] +/Ascent 694 +/CapHeight 683 +/Descent -194 +/ItalicAngle 0 +/StemV 79 +/XHeight 431 +/CharSet (/colon/five/four/one/three/two/zero) +/FontFile 1982 0 R +>> +% 1985 0 obj +<< +/Type /FontDescriptor +/FontName /HFTEUS+CMR8 +/Flags 4 +/FontBBox [-36 -250 1070 750] +/Ascent 694 +/CapHeight 683 +/Descent -194 +/ItalicAngle 0 +/StemV 76 +/XHeight 431 +/CharSet (/B/G/I/L/N/O/P/T/X/a/b/c/colon/comma/d/e/eight/f/five/four/g/h/hyphen/i/k/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 1984 0 R +>> +% 1987 0 obj << -/Length1 1681 -/Length2 8374 -/Length3 0 -/Length 10055 +/Type /FontDescriptor +/FontName /KKURMF+CMR9 +/Flags 4 +/FontBBox [-39 -250 1036 750] +/Ascent 694 +/CapHeight 683 +/Descent -194 +/ItalicAngle 0 +/StemV 74 +/XHeight 431 +/CharSet (/B/G/I/L/O/P/X/a/b/c/comma/d/e/eight/equal/f/five/four/g/h/i/m/n/nine/o/one/p/parenleft/parenright/period/quoteright/r/s/seven/six/t/three/two/u/x/z/zero) +/FontFile 1986 0 R +>> +% 1989 0 obj +<< +/Type /FontDescriptor +/FontName /IMOIOS+CMSY10 +/Flags 4 +/FontBBox [-29 -960 1116 775] +/Ascent 750 +/CapHeight 683 +/Descent -194 +/ItalicAngle -14 +/StemV 40 +/XHeight 431 +/CharSet (/B/H/I/arrowleft/bar/bardbl/braceleft/braceright/bullet/element/greaterequal/lessequal/minus/negationslash/radical/section) +/FontFile 1988 0 R >> -stream -%!PS-AdobeFont-1.0: CMSY10 003.002 -%%Title: CMSY10 -%Version: 003.002 -%%CreationDate: Mon Jul 13 16:17:00 2009 -%%Creator: David M. Jones -%Copyright: Copyright (c) 1997, 2009 American Mathematical Society -%Copyright: (), with Reserved Font Name CMSY10. -% This Font Software is licensed under the SIL Open Font License, Version 1.1. -% This license is in the accompanying file OFL.txt, and is also -% available with a FAQ at: http://scripts.sil.org/OFL. -%%EndComments -FontDirectory/CMSY10 known{/CMSY10 findfont dup/UniqueID known{dup -/UniqueID get 5096651 eq exch/FontType get 1 eq and}{pop false}ifelse -{save true}{false}ifelse}{false}ifelse -11 dict begin -/FontType 1 def -/FontMatrix [0.001 0 0 0.001 0 0 ]readonly def -/FontName /IMOIOS+CMSY10 def -/FontBBox {-29 -960 1116 775 }readonly def -/PaintType 0 def -/FontInfo 9 dict dup begin -/version (003.002) readonly def -/Notice (Copyright \050c\051 1997, 2009 American Mathematical Society \050\051, with Reserved Font Name CMSY10.) readonly def -/FullName (CMSY10) readonly def -/FamilyName (Computer Modern) readonly def -/Weight (Medium) readonly def -/ItalicAngle -14.04 def -/isFixedPitch false def -/UnderlinePosition -100 def -/UnderlineThickness 50 def -end readonly def -/Encoding 256 array -0 1 255 {1 index exch /.notdef put} for -dup 66 /B put -dup 72 /H put -dup 73 /I put -dup 32 /arrowleft put -dup 106 /bar put -dup 107 /bardbl put -dup 102 /braceleft put -dup 103 /braceright put -dup 15 /bullet put -dup 50 /element put -dup 21 /greaterequal put -dup 20 /lessequal put -dup 0 /minus put -dup 54 /negationslash put -dup 112 /radical put -dup 120 /section put -readonly def -currentdict end -currentfile eexec -ÙÖoc;„j²„¼ø°Aw-åÍßᾉYň5t&× {hLšGÒqB`d­Ë—PØ©†ÑÖ|*îøÎx\ÁœÞ–HŸtEÅãBð-¡ÉùóÁgedogÏ7—‰ãï‘Q`[['“WÖü…7Â3ç®æ¤ý¾sçZ9ë m ¦ö!–tAž¾ë‹Y!$átÊY\Žr[˜uTIUÏý‹iŽ÷B¼Œùyã[Ž™ÊÝÝÈœÆÅ—3ò¢Kï6­†zJ!žË’Ç‘œJ·s&B5öC©•"¥m†&Þ`7ÞûӢƻ‘Ç3uµgNC O~̶u³o5Ö=žÂÞò_ä›Tù/ ¸’‰h,°—$B%¯döʘï¯3lŸÃ ³¾ÛÿMÓo§¨÷YLÚ¶Œ~ƒ3^æÐø`š‘12]•=l8Çà£B6PlpËfWÚü<• %PIN!jáuË#,.õ£Åi«X“nôè¸È¼Ê‡ðo$îÒX½šëÄê‘·I5öÔV*E6t±K×o¿_)žÓRŸžP»¾G;Z@9ØÐ"V3¡T×TLç˜N Y:…A€Ókî©®Ú¬6Ì =‚¸=•8€0~ÛÐðDQì±ã QÂù^brð/2^KŸ¾Zh`§N'Jt4i¶ëüèBYÒð7ÖÞŸBþU_¨~\ŸfûŽõçôµïŸXA³ˆZl‰”¿Òã_£Ì½ZÆŽ˜ÀÐìý'•çxHµúöðbÊG:Ç"„¥l«¶5ºCÝƉU[ÆaL¼ô¸rÂÌf¶ôù 1[÷;4äp^èµNïpûªqBD 'Ø…93ã­M€&9{ ˆVD õ8 aе‚2Ön.hf¶ -äl?KÚ¢ë[$‹¸Š³úGpðöÃݺ±/JÇzc÷¥‚F8ûvP3Üà/XO6ÈyAo¿±î~ëç]WqD‚M¹ˆY4ߧ󆸢YÕÌ¢XPEðLý2ã_2¹ ­¹©oH•{ -1xÒÉê'¿¼u|»o øöúWNRšE”ò¦í™¹Óôû&”ã˜lFÿ\LRh1®Fžbñ¦­Ï}+‡l Cø] ¦¥ÛÂ(„vfÕoƒ+fÏœMëí³}÷l?c*Þˆ"î­^R¬æ]ªm†äÔi§„KªOÉÒŽ!I Œ²Ó²ûçõRþ_tÓW;™¿Ìñ˜Çu@(#ªt*̧Ó U œ{|ãõõQ}a3åF¨l•¾ó8x¬¤Òt’HWA¨Â­â;³!ÚVÞÐþ CºÊƒVo³—Ûvºžì’?³”;”œ±=ËÜ>,„Æ㧫¾\"«ù¶•šÑRívRC•Ø¥œQDh -Ó@_,žÇËœ½kbflçAIøP^ª³™wÙš¦dIÉHzk(c÷3ƒxûŠÉìSÊUPI³f{KΩÍs… îÍY¯¼¡í/ìvÁÏ[¡¹ûظL%O¡@ë™Hƒ†“<ÞP'ŽJ£ËÛv‘Õ,Æ$´"hU§M?ô³ë?á“p*Ö„7v×=ÛP1s}ãG“@¤N’5^ð3•‰Tå³8fº† yQ¦‡ƒ¹O)„´ ¬07ÓæÒ%… „G ¤ú’Rz£óófé{‡Ð^DhÜô<ä¢{™™âB•ËêÖ}úÀÆÙžs2f'CóyÞâ°_ǮӮ@]c8“±n7q'ƒæKˆü4kO=íþ«@ÖU ’¨Ül,ÝPoE‹ÞækÔ™*7q[Ú!ì÷ú·ÎØèÓ\o»‚^×$·&Œåóò]8l•ä·s¹&„„Á/ââ^)š!TåÄ€a óá¬îÙгá½S"¡;è•üu^S‰ -A5ò™6B=Û¢vnÛ™Tã­™±Ï¼"…Ñ÷©]/Í-}{ˆÑÆÉ@ŸÓ–+‹šiý©caÎpnÉÛã´ÓàÕ{ª N©‚ïh%sùªéðž ¹×áN¤‚äå¬VÚäÎǃ¿a©š]ôè?Õ, íòbt¡l“˜h6‘ÿOˆvÂ_§Ré̳9S ^Pí!Qp÷ Á÷¹r6÷¼Á;¥³Z–è¿ÆävØ9k yŽµH’yp;DÉ×ã “jí1œÐ:ðR„]¬Ý›bzGC?"%‚|eÝ¥w!è±–Í6Ë¥RPè$æ·¹:ÿ½Ô)ɽŽE#Øè¥d'¬Ãå¿-¹¶ È2/Å %ñŽ}‡Ù¿ŒØÜ mË…¯ZüÄ¢L8ÏÀôÙcËóµÏoÙ¬Š›LH¥ÔºKÜôó¶ž)˜õqž+×ÛcYy•ÅÍ»¥Ÿ› -_MÌŒý`-@³0Vý'ôœÏ±Ðö©tS¨É¤d?ݱX(ƒYƒ…Ä÷kNWµYÀíFØ<èB}³–ék³ÛÃßRí(ÚÕÏ^2Ø%0Aüýìm„»ŒÎél|mƒoÓÈì©4Q庭„¡y|“Úvï+~¤ŸÄ”EµcŽÔ²Ù’MÆë×/­öëtØ…üHeš†ÙPC´évNîç"G6} ¦ì ]µ1¡AÀŒ”+|ç°(ä¹VÕñߊG¨¬l7‚KfWzÞrŸ_í=ûG"{'ª4ˆXM ¦(¿Õ±†ïz/ܳ¶ÙzÒLÃZ„|¹‰DÆ4-ùá0Eíp¶ŠZSú¸óAÇᇬˆ³ÈáظA䔹Á½tl¾±ÎHý¡[TxsÎM¢…P‰*´ ee©¦f¦¾wkÚ‡øH1)7¨i"ÐÃï‚$0Øþ´«ÃV?i¿‰zóç8ÆÅ|¿¥>dÿjyTšÃµVmÇæ—áq§ÌgCÊ‘ó‘ïØÀºš9z»åTˆCÞ/Ät~º‘؆§o*í—9ŒÆrÏÕI‹¡oj¯UíKöxj¡º. ,Íø+b1°Ö²ñ ÃI›lDLïQZ3÷¶P-noô¼ò½'<ÐY½ße-ì1/øŒŸ7Œ*E5#—d‡ñ¤oŽ–{]Cª>$þF zg!Ј*£oºÓjŠÔ-Nûíͥͭoò8ÅKwQgÝpœ*1^‚.ÖŠˆÎÂë± LV‰~ôÈÿüøm laÎ ]%ì."¦`»©_®Q·iäpÀöÅŽÊs’5y.XƒÒÍ®)ñæ¢T¡í¦öd1KŸ¢k««ÌŠjÝ«¢n0zªG®áq‰·ëa©WQé%z„ÓJ²¹ØX¤¢Â3tIy0ľ£.Ó#‰Å[“#¤ƒD#EÔ‚’pp¯F*«¨õ±Þ˜vïrOÓdÎn7n ¤Òf9ƒ*¯ìX:õ¾ç>Ǽš:*ÍÞLfÍÃ9’&a’j;+{»0‡ )ÐÚA’gðK*êXKÂÛV¶'zÙZóÌAÚ) nîöÏ ³ÕT¼”ÙÛLÎßJëïòé^Di¨ý[¦ð:s<ܸ2Â!ñÞU‡ú|›–#ù5V„ëfÑUŠêqP}÷üÒ|=ÿŒš»¾GÂ5O|PÃèsš9ñ§Ž}äå“* -+gpA€,°,Á=|j«25CÉ‚7›õÕ ’ï–¯µ—Ø.é/F¨ɹË0¢–tRœáºŠ."we h¿P€ eäÖmpòîJ‡o´@°±â–ÿ_ðêAÒ3§âQé¿BVô~$ð9E¢ºj= -‹]? «è{w¯_53÷¥FîgÓ¿³4B™èä›ìA¨«á½q²ÏðËßÀÞÑ4µŠ‡¤Ðî1®PfÔ ¬ó,ÖSÅŸ6ôã¼ r¤§[‘ÝÁv`à ¼µ±ûô¿x÷G$ÿŸ„¥êÏ.}¡¹Î Ì”·¨ÜϾFÍ™”c°±š‘‚=­Áf!*˽ª./çwĉR8º(@ÙÙ‹šz c¸½@ÃN&Im—žÝ£>X!Èm•eñÊ@ÎlWÿ"ÒVCHèø8ÔkÕ‘ŨÍÀj]´nó3X>J¡z?ÙDí€=Nø…½bn {qbY(>"Ù8*苾ÉÍk¨y3øoâŠøÜ €ó‰Hã Dwâ¹ø]¤€ ½ëd {E’ʥËwÙá™.$Váçhtœözk$kk$]4ë¯ðcf¸¡ú¯»CW–@òËóû3ö—plQ¯ “Q晉bá¨/póµó T“q¾FÑ8_þÕA’¿nëQÔÿ¢mKŽ{&z;<Õ¿žmòã[i7Ìϴ뜣ñ'*ýqX€Tnòt<ÕŒkò/?©2m)žËÏfô¹¯í•áâ¢øy#(ã¯`%Ú{ª§!¼Qœ/0&sßx¹ôfçB«+¬Õr‹ïEßï[tÑÚgOKQ£$ú$²=à‚ל?êd@3c)]3ª–êÕÕ%*M}HÙ饞;Cd£á˜Érp½°1jýŸF¿ˆc…st•íG'÷âC\–ºp)­)öþœ_š¢)±Õ(¹ú›¥µ MMº -µ³„ qÆv&¶¯Ê÷Cßå3N¶LZs³wTPu{‘s¼ºÏ°øPž‹+-­©¡U‹—±FõUøP"»KΆ†+«¼ÒY¾e7?0«(•öidšL´;gk9Á(YI-Œl`®õî;`ÕçæAÐH:´® áYHb1“µâ»HÇ{¸wƒÇR^YÑš, - $F¨Ô–HDÙòV?pòyÑ—¹PÞ%F=»‚ÂÇÆB‡öÙö¡GKØPh³~N´[¸IÊ_ꈀCðTzÞÒf ç <Ó–”Œü`4|mƒE1ÖJ'¼ýáÝ$`}R ‚Ú\¨€âN2kf¢aóouJ73ê´òváê¿ôKÛW{œMÓÞ3?שMò]ù:W;v…˜Xâ;„B’ ‰§X.PáI;?Ÿ!T¤ˆ . ·sìöU]䮃’=ÑXŠþ ý’5´ÀŠ€r€Mt>y=¯†*ãbC¾~^ ½tÅAr±¡l'¶øŦ•üó\ô÷ØŸÉL냡P“&7ttöuGz;Kg4ÚóÑ;·u)"é³;úÜS•–Âv½ËðüõC~³?¿Jƒ»/’F"6U.°0>çô+ÜKQÓ„0"ÊÓ«Ñ=ëñséÞíƒxoJ]áת!Ìwü6OÝ.}‹ž€tëË5ð¢VâË©³+¬¥·¬­Àü7Š³Us‚š®Ö©ÆyçåÊÄ“TŸŒC5üGrgâUÄ5Ì$‡—Œ&|°µ¿Š~•ÝGªäØ8ž—ê ¡¯Mvåß(jt§ƒãß ñÏ¢nñí›]Î]ÅQÌW…OØ‘ˆm.Œ£Ž­ð R[¾ИoNÐngô IFç:?Ât”ØSUOÎcÆj2Cm[¥à«O7>kWúk¥¢©½ËX¯'ƒ²î¦œ ™#ñ–Ñt'X•d9+E7±ðNä™dŒ8{Å]òŒm¹/‡ Æñž»×Ž¥dv‹Y†Y–öþwopôé™!™EÄP7F?oÏÄjP9âò­"›Ág“BŠŒÎÅÙPîŽô;B^QO©“3ù¿*B 3³ƒun»$·ßIÆêÿŸ_Oeþ`Ô -˜$Àß`‚}-9Q/Ä¥åM³e€ž?ØÁÇÉêÒ°µìhä]Š¦bð¿ ýé»ê«_ê2<ÑøÍ–Æ+ìtª°[Ïœ±ˆJ¡þ©O@¤%M‘I‚Þé t¦µØvƒ†Õ\¹/bãÑÃòMVFÊ05ÿÎ+kIå2W9>f–}©· ÐøĶô3t‡¶«ÿº¡jª†¦Ã|"§´æôîÖ -ŸÇÉ[ÓLŠhŸŽY³)Øo57kßþ“#%H’\,¬xÎ|ôs¯sxí¥HžÍ†|¶;`Å vû%øÚ¯T[ícÖ]ï‚eŠ"G—Ujß«„yŠðtvxÕ:udQ‘uZy_²Td"“ª£b+çÁO†]Øl¯xà'6wòã6X²C¿DKOÁ‡f›(g@w]f¦V™ËÂ[ê~ëŒ1Fùé^A3v¬ ÇâO›vÒ¯¶2v -zúåT¸ÞúË0ÙÝb#ö›[›zyÏ’Õ$e1¬ÛkÕ5—dRAì`(Å…@{=yW>¿ðˆä>ú‘¯çy@æÅÿ¹Uáú;”œ±=ÃH;Çc{–ðÛ3û0´ü£^Õ®”)Õ™-{·O¹°OÖú2R¨Â´xÈèëˆQÅôwBgБâ¼ýSý»ž›"תl›bðöz;¹±˜IyÕ\E×ÁËê‰pr¨kM ·@@Âe&À 3•˜lÃʉtS÷æÄ%í)è/pRÇøÞÙÀª"2µu -˜Ee’5ø+ÄÙ°s§Zò'±¹§õ˜àçbˆQ²ôð°SlŸjÅö zvÞ€â~%.Kz\N¡Š„çüã÷Eê,ãeV2Ò=Mo)-JcÇVà¤:ÒUÙ2Ѹ>É1ˆ×È“"¿QWº ƒOýõÑ‘4*Ozûº.c¸ójc”«Y&üßÜØØÏìê=ë7”Y™´öøÈðê,A5nÊIßFŠ•/œ?üÌŠ™á ]as.´N/þCÕ»tÜýH…G50x}eb9—S&ùœ¬é0år¾à«J§H€‘ôN­\¿?^4'îœèb©É»ÏÀ':KÒ`wpcÏT–!ÜÛ_ÿ öH˜°øŠ¹ÝŠ†‘óþ{–ÅÚ}þH¿mZto”àÞê7Ê«¾ß‘ŸQžÇ·¾Ùbi>ÜœZO¤§ „Š“dºdFÕ¿cc -$"«˜ |ðhJQvB'\³Í%Ì6Âä²3è¯J)A‚g²+TÂò‰ªÀî§ø¼†Êrnß&^ÖÂܼt,Ks+ñ½,溛ïÝ8t:EFH«ˆ9žÈ‡ORžJö3©ž­*³RŽ…âç €!Ò .í-uàr\96@3ãj&íâSШOÒÞ(?iI•d‚±Y°íFÇCžã™¥mÆ©(#Ÿ©µ¿ÚõºzÁ¨©Lajƒ†Çß3°ÀHÛÔ½XÍ}/äÌ-ñÅú«ŸÙ(ëošôZI|^–¸ÅVqPLH+Õ|ü:%Ȉÿ£¼!I¦,ç–¨0Ni;"–‹%ûûèˆáÖå ³xî¼a¾ö»¸Iº‰ò®X¾ÿóúÕü’wˆlˆ¹ò¿Šr²}µ¦½apÿ• ÷~/ÉðÚéçý¿è`¯YÛ}K_z®¼LÈźL'íBHúÜ:)Ï\¶íE^ùNôa>ão­Ú¿WRy1k Zix^’7}X\Xzy4^ÖoÃb«rÏswÃ~óúÀ:Êí?8×ø`òI#¡x’Â=î´ÛšF¶b7>&Ÿ l[äcdh׉¯3‚/cJ–ÅÑ’âòøŽkrÉ- ~êñ âí kŽ±÷·R8+Ó|^H|œö©e‹dêhíB†à¾I*w2eà+l© Oì0þ×E¹éŠRóÃŽXधÁÁæ²1Ip v‹ïŽŸaŠXÀuÞ±—.9¾2®‡«^:žpòño1æ-<z÷ù:½•sA!¥Œ;åQg}u^½zŒ‚«º8ÿüuzç"kÀs?]-¨^f·ï°¥=a˜÷aq/mpȺàhBþZ—X<,O«([E&•á ¼ÔÎê+§ˆòÁÜÒU;œ.µ[xUˆÏïÍè7†:‚¡¶SK¼~3çÊF†‚?æ=w£ü1¡_„Ÿ—æ׫„¥Jgë!¼k“ûžL;i÷þ¾û@žW€+v5økþñ¤phññë@âî“ùM0ëöÆnb»~¥ïÏ]tîöV¬~8èn?V¼Y}~L…ÐÁ.üÅÕ`”x7¹oŸŠñ§\/íçú[ž“ò=šø3}#[_ü|Ø8‹64à±ôÝ)_¯™æKI“h• -'ÊXF¨€X©©ÿ•ÕâC`äÃ(Ü4‹œ”\ËÖQÓ£õªšWSÄB§ä_Ù"D€Rö“ ìѲônéx -Rµ -i³Â­HMU{â™Ù.Whv7|¯+¾Õó°-Ø`X½¦lý(q˜!ÛW½éô­®°DC¼›Ã²ˆè((¹Ô,‹þ=+DJ+˜ÁÐí8{*¹`a&¹Ï<'?ÓÁQªáZ½7íEyÕ§3t9XæÓ¥¥f®:yöpÌÌ©ÖR¹ËêF3ÌÏ GÀÙº‹?G”À!7„©ï>™u˜´[IÑ;ñèþØy¹»šŽ6ë…Å¿ ªr.Ì¡„÷K½ûæ7x)­ŒÆ@ïGdÄ¿æÑܶr0ïóYƒuŠŽà¥%wükl³#KÄ -Ñ+|¸•;üŸùð{àÑ5YÒõ]RMjÛéøf¹v×V+Ò¼¸þ-‡ ›¡ÞQxhVL¬pÜy$§ã!2^¹(äÄeÉ8–ÓKÊñ )Ö_¾fQýéópcçA;©£ãM -×dµ¿ -b­Ï›a•ã¬ÈZ``Z@—ô¥œæ™A]Kƒ¡ÊG…² L­V„øSÝý ®ñÔ{oÏ¥~ä¿ÌÔ±k±ý—Ø’=æAƒOG…™V\IEA -Uìäi -¥&µ‹)®67Ãêûî\œn:ß-êZêyP³C‘ª0¿’ãCcÒ6šIS¶ÙAd¾¦x–!Î’áw9@@°ÃÃJ—`ó«û¡{?mTæ0j©áñÿVäÍEšá²oyPÉ’&rfH«˜ãt@ÖÄD ý`lË®8Wëpéz€€àF㸠³üÖ]¢‡Ù£pÛ‰7Û†Ì؆6‹¾…”iVÎ2º[¸zEP££}[N-*º÷ðbˆ¦Kù¢âpGx¢:üSLLö]`Ø_¡CÊâ[^^ÐiÓxÛ*]ûôi»Ûð#43&­äb1Ûý#Ú;G¶ò•nmŸT$ímžjdLØxYlä&¾h´'¬9gƒc[º@àoŒ«‘†BëlÒgôf¯°2©ÖOîÔZ5/ô"Ò¦ Ê>6yâsLŠDÊa=6/†”2i|£âœök\F‹ä±ç`‘eÃwŠ`„Íä÷Ä·gL²“﯆%5 áð5'l÷þfGÄ'½x‘ò:? ÆUã¿PÊC³ŸÏÎ0^ '±§¢Ùß\$lÁGɺ'vCš©+@lqså5ëWçöW±sTXÁ§J°iÆÒpÂ%R„ ACQ¹¶_¥O…AÝa,1[ÎŒ>m´®í33t¹ gX¹Üõæœí•)87p¥ža·Ê ¤à4Ѩv‹z™ÊÇýô1É|qéÊøä‘}z!Z£Ø ‰.³è ìÑi©âgÅkä!^£OÓ·<(Çtêú¼-ÈBmhutïît‘Ûu9îìm#@l«]YØûHQê6ͦںGAüç´{2çڿzâíZ„ÿ¡P0ád=îžÔ-Ltê Q©Òy)ŸlZ7Ie -òu -%d›¹´èö$ endstream endobj -1901 0 obj +1990 0 obj << /Length1 1392 /Length2 6093 @@ -25650,7 +27267,7 @@ H C¸FíÕHo¢v¬ÎBõé:T~5©|AšQÙ31åõ7 [¬ä'ñAO&VP2,‹Ã©– ×$Ä;_Á K«×ùM“+ã‘eô÷ý..ÁA¼Mó&’O{®Îx=––r"]߆B‡¬º„ÿ¶M«ÑÚ3?†eÌÁŒá‡“QÞÈmÚ¯„Á6&3»eäNušÁŠ·³U`¤ðN6Ê@ |õ^ö(Ì®‡Pˆr@¸Í€ endstream endobj -1903 0 obj +1993 0 obj << /Length1 2199 /Length2 18119 @@ -25822,7 +27439,7 @@ s Xjç ?ñi•zâDRuõêøsuaÑSÔàT­ÃßkÀ;¢ÝÖ§_‚Í+_2(ï*O¦¢Ÿ+5HM¢“¥Ê膽A1ë‹IYÚªÀl9%—d½~QŠc,óAeÃ[€Þ»wIÝ¢f(ß'BTn˜nŠ³g¶ôÿ endstream endobj -1905 0 obj +1995 0 obj << /Length1 1699 /Length2 10351 @@ -25929,7 +27546,7 @@ qO' ÔX¦Ç ë¾A±©µ ÷•©SÞt²•äoC‹Kžr 0ìE·½õ1”O®&é ò™\e;HË lüqάa]Ÿ´þ_i0yÏ4Þ ^2’™Óè0‘ endstream endobj -1907 0 obj +1997 0 obj << /Length1 2460 /Length2 17290 @@ -26117,7 +27734,7 @@ e s£7ƒæM9-‘ùÆìª@¯Ð®R³±îB#„:Þ‰À×£‚lÉV÷ÌŒÜeƒ¶üUw²ÚÄ¿J·"™1 ×C±W|M`¯/ˆ©ïÑÕn­Æ$è”õÎÓÏw³½íΛ_®×7SŸ£¬›¹¿ `²Îkss½Þ‰o1½,ÈíÂؽ„­IIøßÏäŠÁÖs>9y U.Ï&†²Ëï:Ü.mQG-+ñ´N‚êÌM¢91 endstream endobj -1909 0 obj +1999 0 obj << /Length1 1494 /Length2 2555 @@ -26149,397 +27766,167 @@ FontDirectory/CMTT8 known{/CMTT8 findfont dup/UniqueID known{dup /version (003.002) readonly def /Notice (Copyright \050c\051 1997, 2009 American Mathematical Society \050\051, with Reserved Font Name CMTT8.) readonly def /FullName (CMTT8) readonly def -/FamilyName (Computer Modern) readonly def -/Weight (Medium) readonly def -/ItalicAngle 0 def -/isFixedPitch true def -/UnderlinePosition -100 def -/UnderlineThickness 50 def -end readonly def -/Encoding 256 array -0 1 255 {1 index exch /.notdef put} for -dup 98 /b put -dup 99 /c put -dup 101 /e put -dup 105 /i put -dup 108 /l put -dup 110 /n put -dup 112 /p put -dup 114 /r put -dup 115 /s put -dup 116 /t put -readonly def -currentdict end -currentfile eexec -ÙÖoc;„j²„¼ø°Aw-åÎ24 ÆòŠôWäEvçQ‚C<ùó3£‹ØAÀÔæ‹ùàë2¨ÿ·kX0k^ß|™‹:Ù´¼fbã,|Ð=úësLu2æK¿¿Z`3ndgï¸RÈwô@Ó),qñåÕœéG<&¸®÷­hï'¶ì. ΋883 „½Aœ½®B±AÓÔ¾I$sò@Îí“Féù™ÅË25âÆÚª,iá™êê pKôœê>˜èÂ6K`Ð Ó%äÂEû(‚ô¼„(bsÌP’ù,‰‚…³âW‹K¼T"0KDǯæ¯Ò–Š›¤‹kIU–ܨf/+WN/ƒÐr’±Ú4÷¨½qðÕW@À¹d³­ÌO ŽÅá¦G|Babhyè52+ÙÌ2›¿up·a²,-ôIÅ"‰³ðü±ŸMC㉮à0×’v\’›ÝàäG’‰\¯% ØŠZ\+;í7t›‹ÊaßmŒJsX÷€Œ´Pcû0ÛNqËL¬ÌÙÄì%®‚tãW‡tåį,ëœ×Çñ ‹);âbÈë»õõ&L¸î}NœÖ²òGÒi$ß²:[´<+s\6qõG•úq° Ô±%E~@‹kÖ´ðøÉÖÎþ„÷[iYKÆq[Ž‡× Pvø£brÒÔ~ÍÇã™Æà1zŽ¼6‚ð>)廄¾\û¯o¶xob÷Bi€n\!¸[ï(;¼"0¸¾ª:È÷7w…Ð yqMom¥D‰$cºqÎKRXr šÿÁc¶À3–m¢½ƒ‘œx]Ï€¦òï†â‚F†Ð…»í4_~nµ} VìF¤çuM;¹²[¹©)(6!^c«0Ü?;´´ïÜmÖXþ¯æBö󈊄±èÐ<ür#£ƒæ5ªö\ÇÖýAµÎçþÝzñ­‰¢ÄÝ!»±C`0î~°îȾÆUt[¡ijÛÏÖAsÞÅТ3X¥ñº´‘ûh‹ ŸQ‹;l:²´†hAßyÑPñw¢Š_R˜4žEwv½a¿XåäI› Íf£ö”JÀ{‰ï“ùþc -©šû“ÓTƒXЂ¯?6ß_×ãe—–?[=‰Ük³§ºDÅC³ÌàDר-'íÜþ¶Þ¥²_:mȹw‡à¬i)EÝ -É!Ã.¬â(’4G¶Å×gÿÐMwùÀÜŠeŸªãoðtn“¹Eí§Êy¡xÕ<ý¼PqÝ;AÌ÷Üâê >OÍÈ8‚}y•€f€2r¹ÏÇD§˜Õ’ù%Æs¾}w`À ÛÓ°ß’Ö/3x”Œ®‡Á6& ¨?ügçÙ‰¦óÊ.Ö\YEIIö~Å:Iß`àÔ‰ôŽž—Òµläæ±WI1‚{6oy"˜®Þ¤ûüW[ Í—¢#@xsä*¨·å®“dæÎ4]'oK·è›%~%j¼Ã{ž|FA1¨àà´@Æ*z}òÔ\1±ì3©¤%ÑÍuÖ}jyÌ<=í/Þ ê6l§@CC³À \+ýÄFè!} †kåŠ9ÓI ”F _’›îW˜ùÚª+Ìš~Ø"'K²È["ŞР˜öººß4§³±]#)Ÿ±¥»ý l'ª¹iÓ¥Úì¡åj§I:]Ïe± '®{—°½åͲ™}ÃÏÙÀŸïü¶Ù|€+¾ÁÙn­ Ð³Î™Yçòé0ܬªs¦d¨u¦;?äDz~Å!À3È·gÒÎǯ^@œ³¼Üe¥Ã×xƒ¯òÔVa؉ýåH±aÄŽqO*K{ŸÚà¼Ú‰¼ó Ð%½8;'FJŠ`‰K¼»!-%l•ëR,áܽ†x!öòÅz¤÷á ‡óóCêB!ê1¾ß@÷¾ãùÍ K¾=\ßߪðb•(m¿Å4ôwÇPòZh6?@„L½C@²äÊ8uwç1ÆrÇ¿è¶ù©Ì$ïÊBóKÅ„ÂØ -&Ì¡‰ç·Y5<1B îdlaà;À«9^¿'l„Hn,³ÛúºW˜÷ƒ{ÐÊY³µ¬Ô[œvñ -endstream -endobj -1911 0 obj -<< -/Length1 1656 -/Length2 8404 -/Length3 0 -/Length 10060 ->> -stream -%!PS-AdobeFont-1.0: CMTT9 003.002 -%%Title: CMTT9 -%Version: 003.002 -%%CreationDate: Mon Jul 13 16:17:00 2009 -%%Creator: David M. Jones -%Copyright: Copyright (c) 1997, 2009 American Mathematical Society -%Copyright: (), with Reserved Font Name CMTT9. -% This Font Software is licensed under the SIL Open Font License, Version 1.1. -% This license is in the accompanying file OFL.txt, and is also -% available with a FAQ at: http://scripts.sil.org/OFL. -%%EndComments -FontDirectory/CMTT9 known{/CMTT9 findfont dup/UniqueID known{dup -/UniqueID get 5000831 eq exch/FontType get 1 eq and}{pop false}ifelse -{save true}{false}ifelse}{false}ifelse -11 dict begin -/FontType 1 def -/FontMatrix [0.001 0 0 0.001 0 0 ]readonly def -/FontName /KMUHVJ+CMTT9 def -/FontBBox {-6 -233 542 698 }readonly def -/PaintType 0 def -/FontInfo 9 dict dup begin -/version (003.002) readonly def -/Notice (Copyright \050c\051 1997, 2009 American Mathematical Society \050\051, with Reserved Font Name CMTT9.) readonly def -/FullName (CMTT9) readonly def -/FamilyName (Computer Modern) readonly def -/Weight (Medium) readonly def -/ItalicAngle 0 def -/isFixedPitch true def -/UnderlinePosition -100 def -/UnderlineThickness 50 def -end readonly def -/Encoding 256 array -0 1 255 {1 index exch /.notdef put} for -dup 84 /T put -dup 97 /a put -dup 98 /b put -dup 99 /c put -dup 58 /colon put -dup 44 /comma put -dup 100 /d put -dup 101 /e put -dup 108 /l put -dup 110 /n put -dup 111 /o put -dup 112 /p put -dup 40 /parenleft put -dup 41 /parenright put -dup 114 /r put -dup 115 /s put -dup 116 /t put -dup 95 /underscore put -dup 121 /y put -readonly def -currentdict end -currentfile eexec -ÙÖoc;„j²„¼ø°Aw-åÎ=Ó%åW˜)-{Ùr½uú•)¯œ‚ßröA•ÉÂÜãE(õ@Úý{ë¹´‡º“Q»û|ü_‘RÑå» -ØÐÆϤëA³Å -T@æ|ýq|Vk¹¿J% qu8P¢øwÄGx³ÅªÛ̆ÖåQæ¯6K üªÒ-UŒ\§Ô%¡bÕ"t-*ðxÔõöÓŸÏÿJ‘+ -}ì3¥{Zà2ŽùÕzݬT2sÀ$ZõÌÑ&{Bè–J×{¨¦Œß=מ0).ØnÁ¢ðBd^ö/¥!2-G×+~ò¦bÑ7³ Nø&lƒþdsõ˜á%o5·ð3N¸ûÍÐP±c9îU,”Y뱂0L²¿öç±Ê+OAÁd<¹Pgqíê‚!i\žhßx¤;B+üµX¹&ÜŸ)o²™ -û­¾aIñ`¥¦Aï.ËÁ…o_Å Ò‚«d™]Ùì©@s—p!ÃÛ×—;¿ù¿+üàî c¨M›)U *m¥žÁÒ‘¢4+o$¢U´ƒEc”E*­ü_G -‘õÊd.¬»U£Ó9ÏøöÚ¥#˜]æ8! —S}/a—§»¤«é"ÈöÒ48EV< >™N;œ¶ÓžÜåö½[9Ë“!¥"¤k_‹Ó†$RÑÓbÕ˜ÑgÅó ÉuŽx¨ÓVMhìÔL$3P˜ÛíÒÙy»5œ¬,¿o"Ð7'ˆçº*íE¤„<±ZÿÓé§c»ñªÍb8r$`FÀäÞ§/±úröôí¼…ÝøÂ]€“:BõóåI\$~—=Ô‘¢´ê€Ïˆƒ·¢Ž˜ÙËøȜȿ!äê–²Á±QÀ´S*_LÎyäXÊg*½!#B;Fdyú9 vF.ºxÂ&WÜ€ÏçÒc‰K[Òé¾­újô­ -ƒÜñ ²ßTœ-hj¸˜ÔÀ’:Ö²êÌbcÅÓ¢xù~Ðgk0š^£Z–]Ψ´&Œ33gŒñ3æêwm2÷ÀŽpBŒœIÌ€‰:~q¬Fà邉u<Ý^ðIE=Ï*ÑJÐ.­Zw†Òcî3Ö8ìY±Ö.1jKAs;¹¥ðÄ»Ž÷`ÎR^ÔyCQ4y»ˆŽÞÈå ¶Ç&{uðQgF -Ð¥vl²P¡ï¸©°¢ÌÁÀ -ÊeçÄ=Gylw -x]v¤ºŠ£&ú¿o9f·ÚiQ¼p´ÂÅÞÑymQÔrijËFÛ\ÍÀUBuª :sé燭™„Çy7ë䢼R'åT½‰»…ÐÐ{crœ/ðbìŠzfuÌyõ¸ÞÆ-_KýhÚ~ž sö‘£¬¸Ó­>a(—z•–‹fz!#ý¦…vÝZu¼ßZæ"VÃUEÉŸúw­øý-ô@»ã é¶Ùi äûaI+˜ RêÌ¿±P–ÿ¦¾;X¼C 6e½ë›À+îj‰e×Ê[µÀ7ñö-^j’¢â[ïÚ -g‰Ž°9‹‰3­ ØÃ…ÆD©Á’ùˆ‰ c% ±¸Ø™Ûy¯JC=©zê”íÒ[t v™™”Ê©>‚VæÅ3¨m™ÿ®9Á‚ð=Wp¦ˆ+ãlÖÁnׇ3g ¨#7Æ:ÊQÁ@µP~Ò-ìu@Ó±DïV\sS©’;þx; -ƒJ®¬Ï ®'p—ò -ºy?Ìþ^CÉõòùI ¶$HGY tÓ` „é\ÛLœj%ýf¬œÎxÇéìS›ÚŒrìÝܾ¨0þ;=žl;°äÀ MÑI>o Céµ" - mÆÞ³»ôªI•^:ÊO|¿u.^âÑNçuóœwb`ìÑ9º5>²¤øÞdJJ… °Äð0íôóX¦ðÉpöŸ[ÎtóÝàÉuè^%ئò`'õ -0T¡ I{ …6j=¡úÌwŠØ ɽ¥¿Ú‰»ËÅ7†øȘý¾ÏÛìÅùÚ:{ú¦©õŸº‡?lH´¼™)ò—ç8O®f¤¢mXn,Š³˜Ëß— Pš½iiþØÉ]X&•íBûx{˜5ǬfE¾ˆÞ®¾DtàçzÖ9nËy¡B…ÅÄ ›ãt+ ä4ŒˆþÊ, p×$¢@x&ý|ïĨ4H~4îŒJ7¨B‚àš<¢›Ð«C±ÉPæÐœÁ}uzèÂ|÷gÃr-š: èuäó¡ôà[ÃDè\; } ±bUûIS{™É27Ú=ñ©Òì FB›k„Þ' -¦ç€ ‡.~"ÄÈôätŸíOz-3RûŠæÙ·ZÍ[——‘“&ÒãÉhDþ÷|°AQßGCH :\'Š¸`aуã2¹ö{=o >uÐ&Ž0ý¹ß»”;e†®01]VÎÅ2c¨ø¤œŽ³`š †“CÄJ1/ŸÑL¯Wþ ˜Yckɲ¤¤‰Ð õÃ}c§8ÚLC|¨±Ågƒ%¼Y«9.Œ‘òµ?›óš»e‰²Ð+€‚ÕÃPÒöïI4,}# yE؇™ö]%TÌ>ÌýƒðÚ},ÁS ¤!*Á.ó¤ “˜v˜tåÐ7†÷ó[O·£Â±Rø«Y¶‡†Éìõ–SœSÔª5Õžl+>ÍŽ¼±¸l6¯åU®Yºï©'­¨ù_¢p%ï=°ü]^:k2 Åb¿3Ò²vu\þƒ—k!š†®çnúõ2Ì‹ƒ@Q‘*vÑ}Ô5z3màØšò/Æõ¨¯³¬Ÿ´_‰ó~¿éÐGfðG쪑“4”‚,¥­‹ê=¦5ûø%¡Ú¹]äEHŠfnÉÛ€x‹ÆR´òúŸL/'¹ 7.œ·ãñe÷Ͻ§„¯‡‡aÒG}å…èÂr²¡ -~÷) «]<$•ð¯2uµ¤<ýv<ò×NP|¢AÈüGk¤Ì .PY­ÆÑÓO;¨»½BRœ)­©o¬éVê°ÃðSþæ<Ä‚˜;aÅQ1Œuz0ˆKÄ%RÉvng;‘{®võk«ÅîÐä~؉nË^…‰À8@Þ»ªYö·Õ¸(Ø®xðÙ•(tÇ&XYò-»­7*«ò0ïx“)ÌEîtC¿w;ga"15Ä][f³l. àèZæ¤ÌIbŽgÕswàT&«©¦Z̸ý)D…H­†tªe ¶Ì6¢¸ ~Â5÷׶?œØ® ´ÏÇûáÁÂßkˆä…r.)¶•l´ö¡•Èx_²?ˆQ­WÑ32…š(l¨ãë ŠæÑ|O×b-F–çÑ].–®RPD”<Ô±ãDûOàD¸›]D®ÂL=/å™È¢ÀõÁKîÇõ­°¤`ÖàÉFƒgQ_ÊI -ânûqP¯»º·«_(˜gØGK&mĺt¸zÂéü­_ªo ×`4§z4¤-71kïds•w¨\x ZŸ’8´ éy\™šR¶¢ßÒìðÏlÌ@Ô€Û›…óÜæµ´$¨¯ðÍ#‹ÉÂa'·{Ô‚i³~KljÑåVBîñî“zU´/X1 S¡äq=¸þh&7uó«GôV¨èA_ÔÁ3ÄMüùâá~Â^…›tæ0‡²G&<ÇÈûÔו}Òðøh޵Ëäú0„ɤcÙÒ°ë•>„¶ô‘o6ˆ½)ß{QB”¬X[#ÞCÄI3jƒþeó’ˆ/N€ŸºUX+¤ëÖ`‡è‘"ŠP[\ûàƒºäAXºa|i¤–” Hn­k¹,· Ó? ‘J_y3^ÂcÍø}|at½ ü<â;1v’@¡Þ{EÒ¬«ÈË š¢Á/šEì7+?`µÔ+7ÂTԘɈ/¢Ÿ~£2’¢Fe匊·I›ó5)S®XÙvNŠ´eƒœ“…È BÒ®¿my‰Ä_1Ö4tüÅñí ÷Ôl—0w–ÿ -3Kq -TâùÜÏ­ÌÃ\¬Ó¼zlª‡]%b¥pýgÜ7G)½tâ°[àV‰ÑN¡¾Øþ~ÇO^¦‡˜çŒÔ v`Š«üv`чm -ňX h¸¨ý—>r±¿:ƒ9e1SôNCìà$cæØø% ‰Ìõ$¦,T¡M2ŠÏCOÝüV¡eŸ=•øÇS7áu£•_„{xœ •Ú$ì:#Zòi¾1ʇªlœ y ö^|Qûž¡°Lψc¿&ÐHn’)Ü ϨÊùÈ|heÃÝ À}ñ›IøºMÏô¢Ç•WÕð*+-Z¬ëß,dÞªyf¡¨mvÔ›]t þ;`Úo´Ø]”ŠWH¬°íàYÝ}'PN`ºSuBf$,ïÕ•ÓLöÔäó·=úwm³0mVÔå –l™ ˆTOnt£6×M"X˃ãöq¼åDŽf0Êms9?Äžš_šæmnH`ãA…A×mÒšº -ÖÜ­“a’èŒîjfnÌUØÛ™ŒÃCž›¹a£t·/ŒÜçÄæ½òvÛÜ×ßÚPqE$NP^_Ù…‚dùèv±¸ö§"TŸC[ þ¿|¨½¦wÒ1|7ô—B%Óÿ¶èf‚£W­"dÀá6QIa½÷Ò†ÅE.á<¾SiœùÁ—Õ™)Õ+µž Ì%ÐÅY`; —Š®5!‡KoLS»—NÕ’öhPhäDðÚ¶R‘™-¾„®¹Sòéæ‹„ç»? ò¦åÕ¤S8ûŠ!ª—,ÊÏ „«vÏN²[¼ `É"Baæ’Â5ÖÂ#ŽdwºéW%Yl‰¾~:/´‚>®Z¨;eÔFÁ{N# {Òí}Ê?7yøg -˜hS·…¢ à`tZ¦" *èQC&KsulÊÔJ·š|6×iÞ$rˆEÖFXggξß&vÊÈH_I«¦)³ÇÝLRá*Ž±·QÂgÉX¯ušV,Ð’"ª%_©L΄¤"4vܹ¥ÂÙ©v€Ã»ZÇõ! -åÕÌîûßY@øLŠ‰{Ìvߺ‘+‹ÎN*Y“Ë+qi]øî/^L)㊴Š’myß1=óˆ‡K굎 ™¯~{iµt{ÒnÚ?'†‡2²d,µä½›ÎÐrˆît‘ß³É÷”ö-¼FÜ…­¦Š¤ˆFl L y‰fÆæF?Mè€_¢‚Ý*aÁ–Œ¹ØÄÁ5ÕºäÓ½•ÂŒ!»¬‰£d§ 2‹ãΛiú¨w/"Ï;qfWò"Ž—^®ã0$go„ï¯aWó¡vêm.üÍ¢BÛÀ/c@ž{:¿d"€Aú·vÏø]P}Cð*&kxÊ;ô¡k€6܆ÒxɃ%ºÕ ^X2ÑLŒg]¡’øó…ÌVm¯·­¦Mhx÷äŸP&ï(Ð{Ÿæò‚gû¢Ð^Ö£Èý ĤԒË|í±º(ìdkÈå¿ì/¡ÎܺH€Ô”qÏJ'w¬Bî£t®½§€—žgOÝ`O± ¥ßcÔô¹“ ®\œK*ó/˜Íû´®¸™¼g²9Zö<0väB‘·ôWK=—äQ‘]a9<ÏÀV<-­Meb^|Þ€£q£À"Ä^ÏÌ×&l |ésêgiÿÑQ=¶ÀéõrÓå m[Ò:rL(Ó¸ó…„aXÂœšÃIlµ«eŠøÓý€wƽÑ?Z®Nm‚CU†´úØ ü‘Ö•;l€Àc;^=§ª÷¼/ÊE#ëà…q$SpÕ TÀð /.qKAEÍ æ6–ñ­¦ËêÃ`ÍQDAϪÐ'Ön¦6O¨ýGÒã$áDÍ’ô[Q»ç8s'rÇo+&ßw—@^élåÿ2Ü?½JVS…åVBîç]üžG ¿Ìû•©µÉGï ¯OÚ¡=wf X`¬N²ño{‚PIlY°dfoêY½ L?Å! íb'UL%l±Ÿ tdNXF;Mv&¬ì»Dà Eäc#‹ÈïG¨K™öøúžâˆ‚ ‹_-ÖL‹ÝŸG¥þö¦’'æÑr‘ª )êŠÞÈÐà~O÷*ê† -“ƨµ„éŸ01SÚ7<¶¢ä¬Q¨ÞèÂಸ½*ÓL"ž+l²k÷:zë@°N_ŒqNªyàF@UZÙW0bBÿk/³ÑÏ«h:»ôýp!L^9<ÔË,ÈÁ_–,&_x^1;ØÔt¶å,_ÌàÎ -Qn1:ü .>úàÿî…ý4S†,ß -K2~ŠGLU3‡]º¦÷Œ¼¾q/GÑ­…FLmι?qˆ9Or‡‡-½s*|ëý°Vô;ÙQ†Ž>ÈWaPÁãyè¾Ö -¨õ²¾Œ!×È?9%÷´ž­ýÞ%ç: ¸f²Ô2h~å†ì·²ðžVÖÞFI#ÜOvÞÝŒ¸E4r +Ž]ÇÚÊa見3pƒ<ÇG¬~tl3Hh^Ä0Ïɯk˜Z¸®Õ< -ö/Îê(˦¾@¨Êè¼'bÀSi\)N»ü¢LúÌeÿ–ImzGÚHã)¶Ëô(»8ªå+°PdTMÎN&çЦ‰&C÷‹|ÖÖ_]ÜÜ -Œo™qh– oŠL7|¨Î.2ñ9ØË*!“ÛA®Ê†­RŒiV£iëß1qc‚Œ8¦—°Ó÷à#¨B°âUö9ŽMKEúVþP¶»›®õ'ÆO|еÒÀ= ; -ýÏl2¦âYLë|Z¸ëÉsÍŸdó|*.K4éËœm ­”»¤åX¥c{G¹dpñH³Jx ¡Ü÷F¨«4VMw–/óÈTÆ•S$øE0¹Ê}ŠŽXZj°Ò$"È#´NöJFF’Šè> -RòÖ¿bOªˆ]­ÂóÜØk;èeE2ôóeÌiÙ0é‡gªÂ©X}í aUå —j•ª¼Â†U…*ܤ泔üÞ½¡“ûè'ó´ö[œÃ¬£óÄÍ ¡˜IÄ86´®Ö>SàÑ©ÄjÑO&“¸Ô@;_ꛪ ï1¶,üé0‘gdöÃ3 r¨¸(×L”]iRëlWŠÔ’±ÄX´.ˆåƒðîõô›aAÞ¤eã‚…~#‹~>ý v>x›4º],î¨^­fÌ÷{kµ«ÄoO\ŒAü°ãY<é|/ˆüŸd¸!nt*ßôHNy*sk@å–@"JQ‹óx-mYw_ÃÐM Tnlÿ­Y>½ˆ©¿µ(aO,QÊeJ± ï’ ;Ï™•bŒÅÙ¡A“þÔ𚔿\—¨Úù¢Ú¶ÊïRË,ÍÝ„?NýU÷™„÷Ì~×÷Sø-!ðåz˜Ì׶ý‹¼Â$OÒƒ'–µS;?¹;ùb†a.Ô% Ó³@ÛðïÊËžåX{ëÙ­ÝñÓÉãV¥£ŸŽ?-ú.=xMÖšÒòJä•ímPPÞí{# 'ÞÞÙ½¾ðàiDåšÛL¸TIÄ_}¤g·Ù [Vé¸,á -)”ñO¾¨ÙÐŽúøÄK ƒ_̤VBôEè öigd¡#A\&Ž–Ò飢„DË#JÊÞZcf¼ÄW­U^å*WBç·lŸ£_AØI-a ¼)¾5¾Ùðˆ©³|›%X·³¹óõΗøš(‘ÊVp<”O¯â)APk¬'{îÈ丂ó­Àâh#PíxãeAT˜Yt›wÈt´D¢—ªã#¹ ‘Gt´úH|T|„®oÔøaµ,¸j©-Ñ÷ÔAþÑ8o½”‘FµöÕ*ŠTÇ7Ô7t›'<¤Jíøø×¼»ÓÆ£KKjšÆ]ûã!À“¥!ÈÐ7»Öpê]zù#ð8î±ìîââóƒßý…N|ŽÌ¸¶6·Ž¬ãcF!À‚ºÂ—ëÆ'`eÈM‚o°¨Hª£['>QˆFë07Ü"W›ueÑÝ ŠÛdDŒÎØ©– ›õŠ ÈR§Ýæ#æ 52"Tû&DmIÅJºËï1{@iö6KQÎ>D[ê>2@¤÷ìñ„‘']}Uopż\š‘îm²ÃGŸå^tUäp¹ nðþ¨oðq¼;€#ù[ô¾u -e¦x˜à³ -cEÃCêÃkÝâ y9Ú·Ò‡½VVןÜ/"™ CÇÍ—4§*78€*`Š1Þ©ñ©Sî2 ·¨Q8Iù&ʺ3Ýf7Ä3«üus¡>ÍXgÜéì*ùº#zˆi'ô“$îƒZáÆYßH2æÙ|™œÊóˆ?¶ÿc^¡øå2•sK„ʇÄæXØûcERNpeëºv5ÅE–>åûy\ñï1ù€`ÀkÝi~~÷B¾¯,ùÝÅâ ðÍ -§Öga!.ΘÍþâ:Øâܨ+. +/FamilyName (Computer Modern) readonly def +/Weight (Medium) readonly def +/ItalicAngle 0 def +/isFixedPitch true def +/UnderlinePosition -100 def +/UnderlineThickness 50 def +end readonly def +/Encoding 256 array +0 1 255 {1 index exch /.notdef put} for +dup 98 /b put +dup 99 /c put +dup 101 /e put +dup 105 /i put +dup 108 /l put +dup 110 /n put +dup 112 /p put +dup 114 /r put +dup 115 /s put +dup 116 /t put +readonly def +currentdict end +currentfile eexec +ÙÖoc;„j²„¼ø°Aw-åÎ24 ÆòŠôWäEvçQ‚C<ùó3£‹ØAÀÔæ‹ùàë2¨ÿ·kX0k^ß|™‹:Ù´¼fbã,|Ð=úësLu2æK¿¿Z`3ndgï¸RÈwô@Ó),qñåÕœéG<&¸®÷­hï'¶ì. ΋883 „½Aœ½®B±AÓÔ¾I$sò@Îí“Féù™ÅË25âÆÚª,iá™êê pKôœê>˜èÂ6K`Ð Ó%äÂEû(‚ô¼„(bsÌP’ù,‰‚…³âW‹K¼T"0KDǯæ¯Ò–Š›¤‹kIU–ܨf/+WN/ƒÐr’±Ú4÷¨½qðÕW@À¹d³­ÌO ŽÅá¦G|Babhyè52+ÙÌ2›¿up·a²,-ôIÅ"‰³ðü±ŸMC㉮à0×’v\’›ÝàäG’‰\¯% ØŠZ\+;í7t›‹ÊaßmŒJsX÷€Œ´Pcû0ÛNqËL¬ÌÙÄì%®‚tãW‡tåį,ëœ×Çñ ‹);âbÈë»õõ&L¸î}NœÖ²òGÒi$ß²:[´<+s\6qõG•úq° Ô±%E~@‹kÖ´ðøÉÖÎþ„÷[iYKÆq[Ž‡× Pvø£brÒÔ~ÍÇã™Æà1zŽ¼6‚ð>)廄¾\û¯o¶xob÷Bi€n\!¸[ï(;¼"0¸¾ª:È÷7w…Ð yqMom¥D‰$cºqÎKRXr šÿÁc¶À3–m¢½ƒ‘œx]Ï€¦òï†â‚F†Ð…»í4_~nµ} VìF¤çuM;¹²[¹©)(6!^c«0Ü?;´´ïÜmÖXþ¯æBö󈊄±èÐ<ür#£ƒæ5ªö\ÇÖýAµÎçþÝzñ­‰¢ÄÝ!»±C`0î~°îȾÆUt[¡ijÛÏÖAsÞÅТ3X¥ñº´‘ûh‹ ŸQ‹;l:²´†hAßyÑPñw¢Š_R˜4žEwv½a¿XåäI› Íf£ö”JÀ{‰ï“ùþc +©šû“ÓTƒXЂ¯?6ß_×ãe—–?[=‰Ük³§ºDÅC³ÌàDר-'íÜþ¶Þ¥²_:mȹw‡à¬i)EÝ +É!Ã.¬â(’4G¶Å×gÿÐMwùÀÜŠeŸªãoðtn“¹Eí§Êy¡xÕ<ý¼PqÝ;AÌ÷Üâê >OÍÈ8‚}y•€f€2r¹ÏÇD§˜Õ’ù%Æs¾}w`À ÛÓ°ß’Ö/3x”Œ®‡Á6& ¨?ügçÙ‰¦óÊ.Ö\YEIIö~Å:Iß`àÔ‰ôŽž—Òµläæ±WI1‚{6oy"˜®Þ¤ûüW[ Í—¢#@xsä*¨·å®“dæÎ4]'oK·è›%~%j¼Ã{ž|FA1¨àà´@Æ*z}òÔ\1±ì3©¤%ÑÍuÖ}jyÌ<=í/Þ ê6l§@CC³À \+ýÄFè!} †kåŠ9ÓI ”F _’›îW˜ùÚª+Ìš~Ø"'K²È["ŞР˜öººß4§³±]#)Ÿ±¥»ý l'ª¹iÓ¥Úì¡åj§I:]Ïe± '®{—°½åͲ™}ÃÏÙÀŸïü¶Ù|€+¾ÁÙn­ Ð³Î™Yçòé0ܬªs¦d¨u¦;?äDz~Å!À3È·gÒÎǯ^@œ³¼Üe¥Ã×xƒ¯òÔVa؉ýåH±aÄŽqO*K{ŸÚà¼Ú‰¼ó Ð%½8;'FJŠ`‰K¼»!-%l•ëR,áܽ†x!öòÅz¤÷á ‡óóCêB!ê1¾ß@÷¾ãùÍ K¾=\ßߪðb•(m¿Å4ôwÇPòZh6?@„L½C@²äÊ8uwç1ÆrÇ¿è¶ù©Ì$ïÊBóKÅ„ÂØ +&Ì¡‰ç·Y5<1B îdlaà;À«9^¿'l„Hn,³ÛúºW˜÷ƒ{ÐÊY³µ¬Ô[œvñ endstream endobj -1863 0 obj +2001 0 obj << -/Type /ObjStm -/N 100 -/First 1031 -/Length 20410 +/Length1 1656 +/Length2 8404 +/Length3 0 +/Length 10060 >> stream -1862 0 1864 690 1865 1018 1866 1099 1867 1474 1868 2111 1869 2770 1870 3393 1871 4037 1872 4322 -1874 4970 1876 5400 1878 5827 1880 6076 1882 6318 1884 6646 1886 6863 1888 7102 1890 7324 1892 7861 -1894 8098 1896 8346 1898 8728 1900 9094 1902 9433 1904 9664 1906 10037 1908 10300 1910 10779 1912 11011 -560 11295 558 11436 1663 11577 1636 11718 755 11860 802 12001 771 12142 1821 12282 561 12422 773 12562 -770 12700 775 12838 1211 12977 772 13117 1125 13257 735 13396 559 13537 769 13678 830 13819 967 13959 -562 14099 736 14212 831 14325 887 14438 922 14551 953 14664 999 14777 1053 14895 1102 15015 1158 15135 -1212 15255 1268 15375 1309 15495 1348 15615 1396 15735 1438 15855 1473 15975 1512 16095 1553 16215 1586 16335 -1617 16455 1654 16575 1716 16695 1757 16815 1795 16935 1834 17055 1913 17157 1914 17272 1915 17392 1916 17513 -1917 17634 1918 17719 1919 17815 550 17884 546 17944 542 18055 538 18129 534 18217 530 18305 526 18393 -522 18481 518 18555 514 18680 510 18754 506 18842 502 18930 498 19018 494 19106 490 19180 486 19305 -% 1862 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] -% 1864 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] -% 1865 0 obj -[569.5 569.5 569.5 569.5 569.5 569.5 569.5 569.5 569.5 569.5 323.4] -% 1866 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] -% 1867 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] -% 1868 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] -% 1869 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] -% 1870 0 obj -[670.8 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] -% 1871 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] -% 1872 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] -% 1874 0 obj -<< -/Type /FontDescriptor -/FontName /RAJOBS+CMBX10 -/Flags 4 -/FontBBox [-56 -250 1164 750] -/Ascent 694 -/CapHeight 686 -/Descent -194 -/ItalicAngle 0 -/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/Z/a/b/c/colon/comma/d/e/eight/emdash/endash/equal/f/ff/ffi/fi/five/fl/four/g/h/hyphen/i/j/k/l/m/n/nine/o/one/p/period/q/quoteright/r/s/seven/six/t/three/two/u/v/w/x/y/z/zero) -/FontFile 1873 0 R ->> -% 1876 0 obj -<< -/Type /FontDescriptor -/FontName /BWDLNI+CMBX12 -/Flags 4 -/FontBBox [-53 -251 1139 750] -/Ascent 694 -/CapHeight 686 -/Descent -194 -/ItalicAngle 0 -/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/ffi/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 1875 0 R ->> -% 1878 0 obj -<< -/Type /FontDescriptor -/FontName /VUBHOM+CMBX9 -/Flags 4 -/FontBBox [-58 -250 1195 750] -/Ascent 694 -/CapHeight 686 -/Descent -194 -/ItalicAngle 0 -/StemV 117 -/XHeight 444 -/CharSet (/a/b/c/d/e/f/g/h/i/l/n/o/q/r/s/t/u) -/FontFile 1877 0 R ->> -% 1880 0 obj -<< -/Type /FontDescriptor -/FontName /OUFNAH+CMEX10 -/Flags 4 -/FontBBox [-24 -2960 1454 772] -/Ascent 40 -/CapHeight 0 -/Descent -600 -/ItalicAngle 0 -/StemV 47 -/XHeight 431 -/CharSet (/radicalBigg/summationdisplay) -/FontFile 1879 0 R ->> -% 1882 0 obj -<< -/Type /FontDescriptor -/FontName /PUWBWT+CMMI10 -/Flags 4 -/FontBBox [-32 -250 1048 750] -/Ascent 694 -/CapHeight 683 -/Descent -194 -/ItalicAngle -14 -/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/i/j/k/l/less/m/n/o/p/period/r/s/t/u/v/w/x/y/z) -/FontFile 1881 0 R ->> -% 1884 0 obj -<< -/Type /FontDescriptor -/FontName /RVPZIX+CMMI5 -/Flags 4 -/FontBBox [37 -250 1349 750] -/Ascent 694 -/CapHeight 683 -/Descent -194 -/ItalicAngle -14 -/StemV 90 -/XHeight 431 -/CharSet (/i) -/FontFile 1883 0 R ->> -% 1886 0 obj -<< -/Type /FontDescriptor -/FontName /ZUYGVH+CMMI7 -/Flags 4 -/FontBBox [-1 -250 1171 750] -/Ascent 694 -/CapHeight 683 -/Descent -194 -/ItalicAngle -14 -/StemV 81 -/XHeight 431 -/CharSet (/H/I/T/a/comma/i/j/k/m/n) -/FontFile 1885 0 R ->> -% 1888 0 obj -<< -/Type /FontDescriptor -/FontName /ZOAUSA+CMMI8 -/Flags 4 -/FontBBox [-24 -250 1110 750] -/Ascent 694 -/CapHeight 683 -/Descent -194 -/ItalicAngle -14 -/StemV 78 -/XHeight 431 -/CharSet (/C/F/G) -/FontFile 1887 0 R ->> -% 1890 0 obj -<< -/Type /FontDescriptor -/FontName /SEWPRR+CMR10 -/Flags 4 -/FontBBox [-40 -250 1009 750] -/Ascent 694 -/CapHeight 683 -/Descent -194 -/ItalicAngle 0 -/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/percent/period/plus/q/quotedblleft/quotedblright/quoteright/r/s/semicolon/seven/six/slash/t/three/two/u/v/w/x/y/z/zero) -/FontFile 1889 0 R ->> -% 1892 0 obj -<< -/Type /FontDescriptor -/FontName /UJRPBG+CMR6 -/Flags 4 -/FontBBox [-20 -250 1193 750] -/Ascent 694 -/CapHeight 683 -/Descent -194 -/ItalicAngle 0 -/StemV 83 -/XHeight 431 -/CharSet (/five/four/one/three/two) -/FontFile 1891 0 R ->> -% 1894 0 obj -<< -/Type /FontDescriptor -/FontName /GIODUE+CMR7 -/Flags 4 -/FontBBox [-27 -250 1122 750] -/Ascent 694 -/CapHeight 683 -/Descent -194 -/ItalicAngle 0 -/StemV 79 -/XHeight 431 -/CharSet (/colon/five/four/one/three/two/zero) -/FontFile 1893 0 R ->> -% 1896 0 obj -<< -/Type /FontDescriptor -/FontName /HFTEUS+CMR8 -/Flags 4 -/FontBBox [-36 -250 1070 750] -/Ascent 694 -/CapHeight 683 -/Descent -194 -/ItalicAngle 0 -/StemV 76 -/XHeight 431 -/CharSet (/B/G/I/L/N/O/P/T/X/a/b/c/colon/comma/d/e/eight/f/five/four/g/h/hyphen/i/k/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 1895 0 R ->> -% 1898 0 obj -<< -/Type /FontDescriptor -/FontName /KKURMF+CMR9 -/Flags 4 -/FontBBox [-39 -250 1036 750] -/Ascent 694 -/CapHeight 683 -/Descent -194 -/ItalicAngle 0 -/StemV 74 -/XHeight 431 -/CharSet (/B/G/I/L/O/P/X/a/b/c/comma/d/e/eight/equal/f/five/four/g/h/i/m/n/nine/o/one/p/parenleft/parenright/period/quoteright/r/s/seven/six/t/three/two/u/x/z/zero) -/FontFile 1897 0 R ->> -% 1900 0 obj +%!PS-AdobeFont-1.0: CMTT9 003.002 +%%Title: CMTT9 +%Version: 003.002 +%%CreationDate: Mon Jul 13 16:17:00 2009 +%%Creator: David M. Jones +%Copyright: Copyright (c) 1997, 2009 American Mathematical Society +%Copyright: (), with Reserved Font Name CMTT9. +% This Font Software is licensed under the SIL Open Font License, Version 1.1. +% This license is in the accompanying file OFL.txt, and is also +% available with a FAQ at: http://scripts.sil.org/OFL. +%%EndComments +FontDirectory/CMTT9 known{/CMTT9 findfont dup/UniqueID known{dup +/UniqueID get 5000831 eq exch/FontType get 1 eq and}{pop false}ifelse +{save true}{false}ifelse}{false}ifelse +11 dict begin +/FontType 1 def +/FontMatrix [0.001 0 0 0.001 0 0 ]readonly def +/FontName /KMUHVJ+CMTT9 def +/FontBBox {-6 -233 542 698 }readonly def +/PaintType 0 def +/FontInfo 9 dict dup begin +/version (003.002) readonly def +/Notice (Copyright \050c\051 1997, 2009 American Mathematical Society \050\051, with Reserved Font Name CMTT9.) readonly def +/FullName (CMTT9) readonly def +/FamilyName (Computer Modern) readonly def +/Weight (Medium) readonly def +/ItalicAngle 0 def +/isFixedPitch true def +/UnderlinePosition -100 def +/UnderlineThickness 50 def +end readonly def +/Encoding 256 array +0 1 255 {1 index exch /.notdef put} for +dup 84 /T put +dup 97 /a put +dup 98 /b put +dup 99 /c put +dup 58 /colon put +dup 44 /comma put +dup 100 /d put +dup 101 /e put +dup 108 /l put +dup 110 /n put +dup 111 /o put +dup 112 /p put +dup 40 /parenleft put +dup 41 /parenright put +dup 114 /r put +dup 115 /s put +dup 116 /t put +dup 95 /underscore put +dup 121 /y put +readonly def +currentdict end +currentfile eexec +ÙÖoc;„j²„¼ø°Aw-åÎ=Ó%åW˜)-{Ùr½uú•)¯œ‚ßröA•ÉÂÜãE(õ@Úý{ë¹´‡º“Q»û|ü_‘RÑå» +ØÐÆϤëA³Å -T@æ|ýq|Vk¹¿J% qu8P¢øwÄGx³ÅªÛ̆ÖåQæ¯6K üªÒ-UŒ\§Ô%¡bÕ"t-*ðxÔõöÓŸÏÿJ‘+ +}ì3¥{Zà2ŽùÕzݬT2sÀ$ZõÌÑ&{Bè–J×{¨¦Œß=מ0).ØnÁ¢ðBd^ö/¥!2-G×+~ò¦bÑ7³ Nø&lƒþdsõ˜á%o5·ð3N¸ûÍÐP±c9îU,”Y뱂0L²¿öç±Ê+OAÁd<¹Pgqíê‚!i\žhßx¤;B+üµX¹&ÜŸ)o²™ +û­¾aIñ`¥¦Aï.ËÁ…o_Å Ò‚«d™]Ùì©@s—p!ÃÛ×—;¿ù¿+üàî c¨M›)U *m¥žÁÒ‘¢4+o$¢U´ƒEc”E*­ü_G +‘õÊd.¬»U£Ó9ÏøöÚ¥#˜]æ8! —S}/a—§»¤«é"ÈöÒ48EV< >™N;œ¶ÓžÜåö½[9Ë“!¥"¤k_‹Ó†$RÑÓbÕ˜ÑgÅó ÉuŽx¨ÓVMhìÔL$3P˜ÛíÒÙy»5œ¬,¿o"Ð7'ˆçº*íE¤„<±ZÿÓé§c»ñªÍb8r$`FÀäÞ§/±úröôí¼…ÝøÂ]€“:BõóåI\$~—=Ô‘¢´ê€Ïˆƒ·¢Ž˜ÙËøȜȿ!äê–²Á±QÀ´S*_LÎyäXÊg*½!#B;Fdyú9 vF.ºxÂ&WÜ€ÏçÒc‰K[Òé¾­újô­ +ƒÜñ ²ßTœ-hj¸˜ÔÀ’:Ö²êÌbcÅÓ¢xù~Ðgk0š^£Z–]Ψ´&Œ33gŒñ3æêwm2÷ÀŽpBŒœIÌ€‰:~q¬Fà邉u<Ý^ðIE=Ï*ÑJÐ.­Zw†Òcî3Ö8ìY±Ö.1jKAs;¹¥ðÄ»Ž÷`ÎR^ÔyCQ4y»ˆŽÞÈå ¶Ç&{uðQgF +Ð¥vl²P¡ï¸©°¢ÌÁÀ +ÊeçÄ=Gylw +x]v¤ºŠ£&ú¿o9f·ÚiQ¼p´ÂÅÞÑymQÔrijËFÛ\ÍÀUBuª :sé燭™„Çy7ë䢼R'åT½‰»…ÐÐ{crœ/ðbìŠzfuÌyõ¸ÞÆ-_KýhÚ~ž sö‘£¬¸Ó­>a(—z•–‹fz!#ý¦…vÝZu¼ßZæ"VÃUEÉŸúw­øý-ô@»ã é¶Ùi äûaI+˜ RêÌ¿±P–ÿ¦¾;X¼C 6e½ë›À+îj‰e×Ê[µÀ7ñö-^j’¢â[ïÚ +g‰Ž°9‹‰3­ ØÃ…ÆD©Á’ùˆ‰ c% ±¸Ø™Ûy¯JC=©zê”íÒ[t v™™”Ê©>‚VæÅ3¨m™ÿ®9Á‚ð=Wp¦ˆ+ãlÖÁnׇ3g ¨#7Æ:ÊQÁ@µP~Ò-ìu@Ó±DïV\sS©’;þx; +ƒJ®¬Ï ®'p—ò +ºy?Ìþ^CÉõòùI ¶$HGY tÓ` „é\ÛLœj%ýf¬œÎxÇéìS›ÚŒrìÝܾ¨0þ;=žl;°äÀ MÑI>o Céµ" + mÆÞ³»ôªI•^:ÊO|¿u.^âÑNçuóœwb`ìÑ9º5>²¤øÞdJJ… °Äð0íôóX¦ðÉpöŸ[ÎtóÝàÉuè^%ئò`'õ +0T¡ I{ …6j=¡úÌwŠØ ɽ¥¿Ú‰»ËÅ7†øȘý¾ÏÛìÅùÚ:{ú¦©õŸº‡?lH´¼™)ò—ç8O®f¤¢mXn,Š³˜Ëß— Pš½iiþØÉ]X&•íBûx{˜5ǬfE¾ˆÞ®¾DtàçzÖ9nËy¡B…ÅÄ ›ãt+ ä4ŒˆþÊ, p×$¢@x&ý|ïĨ4H~4îŒJ7¨B‚àš<¢›Ð«C±ÉPæÐœÁ}uzèÂ|÷gÃr-š: èuäó¡ôà[ÃDè\; } ±bUûIS{™É27Ú=ñ©Òì FB›k„Þ' +¦ç€ ‡.~"ÄÈôätŸíOz-3RûŠæÙ·ZÍ[——‘“&ÒãÉhDþ÷|°AQßGCH :\'Š¸`aуã2¹ö{=o >uÐ&Ž0ý¹ß»”;e†®01]VÎÅ2c¨ø¤œŽ³`š †“CÄJ1/ŸÑL¯Wþ ˜Yckɲ¤¤‰Ð õÃ}c§8ÚLC|¨±Ågƒ%¼Y«9.Œ‘òµ?›óš»e‰²Ð+€‚ÕÃPÒöïI4,}# yE؇™ö]%TÌ>ÌýƒðÚ},ÁS ¤!*Á.ó¤ “˜v˜tåÐ7†÷ó[O·£Â±Rø«Y¶‡†Éìõ–SœSÔª5Õžl+>ÍŽ¼±¸l6¯åU®Yºï©'­¨ù_¢p%ï=°ü]^:k2 Åb¿3Ò²vu\þƒ—k!š†®çnúõ2Ì‹ƒ@Q‘*vÑ}Ô5z3màØšò/Æõ¨¯³¬Ÿ´_‰ó~¿éÐGfðG쪑“4”‚,¥­‹ê=¦5ûø%¡Ú¹]äEHŠfnÉÛ€x‹ÆR´òúŸL/'¹ 7.œ·ãñe÷Ͻ§„¯‡‡aÒG}å…èÂr²¡ +~÷) «]<$•ð¯2uµ¤<ýv<ò×NP|¢AÈüGk¤Ì .PY­ÆÑÓO;¨»½BRœ)­©o¬éVê°ÃðSþæ<Ä‚˜;aÅQ1Œuz0ˆKÄ%RÉvng;‘{®võk«ÅîÐä~؉nË^…‰À8@Þ»ªYö·Õ¸(Ø®xðÙ•(tÇ&XYò-»­7*«ò0ïx“)ÌEîtC¿w;ga"15Ä][f³l. àèZæ¤ÌIbŽgÕswàT&«©¦Z̸ý)D…H­†tªe ¶Ì6¢¸ ~Â5÷׶?œØ® ´ÏÇûáÁÂßkˆä…r.)¶•l´ö¡•Èx_²?ˆQ­WÑ32…š(l¨ãë ŠæÑ|O×b-F–çÑ].–®RPD”<Ô±ãDûOàD¸›]D®ÂL=/å™È¢ÀõÁKîÇõ­°¤`ÖàÉFƒgQ_ÊI +ânûqP¯»º·«_(˜gØGK&mĺt¸zÂéü­_ªo ×`4§z4¤-71kïds•w¨\x ZŸ’8´ éy\™šR¶¢ßÒìðÏlÌ@Ô€Û›…óÜæµ´$¨¯ðÍ#‹ÉÂa'·{Ô‚i³~KljÑåVBîñî“zU´/X1 S¡äq=¸þh&7uó«GôV¨èA_ÔÁ3ÄMüùâá~Â^…›tæ0‡²G&<ÇÈûÔו}Òðøh޵Ëäú0„ɤcÙÒ°ë•>„¶ô‘o6ˆ½)ß{QB”¬X[#ÞCÄI3jƒþeó’ˆ/N€ŸºUX+¤ëÖ`‡è‘"ŠP[\ûàƒºäAXºa|i¤–” Hn­k¹,· Ó? ‘J_y3^ÂcÍø}|at½ ü<â;1v’@¡Þ{EÒ¬«ÈË š¢Á/šEì7+?`µÔ+7ÂTԘɈ/¢Ÿ~£2’¢Fe匊·I›ó5)S®XÙvNŠ´eƒœ“…È BÒ®¿my‰Ä_1Ö4tüÅñí ÷Ôl—0w–ÿ +3Kq +TâùÜÏ­ÌÃ\¬Ó¼zlª‡]%b¥pýgÜ7G)½tâ°[àV‰ÑN¡¾Øþ~ÇO^¦‡˜çŒÔ v`Š«üv`чm +ňX h¸¨ý—>r±¿:ƒ9e1SôNCìà$cæØø% ‰Ìõ$¦,T¡M2ŠÏCOÝüV¡eŸ=•øÇS7áu£•_„{xœ •Ú$ì:#Zòi¾1ʇªlœ y ö^|Qûž¡°Lψc¿&ÐHn’)Ü ϨÊùÈ|heÃÝ À}ñ›IøºMÏô¢Ç•WÕð*+-Z¬ëß,dÞªyf¡¨mvÔ›]t þ;`Úo´Ø]”ŠWH¬°íàYÝ}'PN`ºSuBf$,ïÕ•ÓLöÔäó·=úwm³0mVÔå –l™ ˆTOnt£6×M"X˃ãöq¼åDŽf0Êms9?Äžš_šæmnH`ãA…A×mÒšº +ÖÜ­“a’èŒîjfnÌUØÛ™ŒÃCž›¹a£t·/ŒÜçÄæ½òvÛÜ×ßÚPqE$NP^_Ù…‚dùèv±¸ö§"TŸC[ þ¿|¨½¦wÒ1|7ô—B%Óÿ¶èf‚£W­"dÀá6QIa½÷Ò†ÅE.á<¾SiœùÁ—Õ™)Õ+µž Ì%ÐÅY`; —Š®5!‡KoLS»—NÕ’öhPhäDðÚ¶R‘™-¾„®¹Sòéæ‹„ç»? ò¦åÕ¤S8ûŠ!ª—,ÊÏ „«vÏN²[¼ `É"Baæ’Â5ÖÂ#ŽdwºéW%Yl‰¾~:/´‚>®Z¨;eÔFÁ{N# {Òí}Ê?7yøg +˜hS·…¢ à`tZ¦" *èQC&KsulÊÔJ·š|6×iÞ$rˆEÖFXggξß&vÊÈH_I«¦)³ÇÝLRá*Ž±·QÂgÉX¯ušV,Ð’"ª%_©L΄¤"4vܹ¥ÂÙ©v€Ã»ZÇõ! +åÕÌîûßY@øLŠ‰{Ìvߺ‘+‹ÎN*Y“Ë+qi]øî/^L)㊴Š’myß1=óˆ‡K굎 ™¯~{iµt{ÒnÚ?'†‡2²d,µä½›ÎÐrˆît‘ß³É÷”ö-¼FÜ…­¦Š¤ˆFl L y‰fÆæF?Mè€_¢‚Ý*aÁ–Œ¹ØÄÁ5ÕºäÓ½•ÂŒ!»¬‰£d§ 2‹ãΛiú¨w/"Ï;qfWò"Ž—^®ã0$go„ï¯aWó¡vêm.üÍ¢BÛÀ/c@ž{:¿d"€Aú·vÏø]P}Cð*&kxÊ;ô¡k€6܆ÒxɃ%ºÕ ^X2ÑLŒg]¡’øó…ÌVm¯·­¦Mhx÷äŸP&ï(Ð{Ÿæò‚gû¢Ð^Ö£Èý ĤԒË|í±º(ìdkÈå¿ì/¡ÎܺH€Ô”qÏJ'w¬Bî£t®½§€—žgOÝ`O± ¥ßcÔô¹“ ®\œK*ó/˜Íû´®¸™¼g²9Zö<0väB‘·ôWK=—äQ‘]a9<ÏÀV<-­Meb^|Þ€£q£À"Ä^ÏÌ×&l |ésêgiÿÑQ=¶ÀéõrÓå m[Ò:rL(Ó¸ó…„aXÂœšÃIlµ«eŠøÓý€wƽÑ?Z®Nm‚CU†´úØ ü‘Ö•;l€Àc;^=§ª÷¼/ÊE#ëà…q$SpÕ TÀð /.qKAEÍ æ6–ñ­¦ËêÃ`ÍQDAϪÐ'Ön¦6O¨ýGÒã$áDÍ’ô[Q»ç8s'rÇo+&ßw—@^élåÿ2Ü?½JVS…åVBîç]üžG ¿Ìû•©µÉGï ¯OÚ¡=wf X`¬N²ño{‚PIlY°dfoêY½ L?Å! íb'UL%l±Ÿ tdNXF;Mv&¬ì»Dà Eäc#‹ÈïG¨K™öøúžâˆ‚ ‹_-ÖL‹ÝŸG¥þö¦’'æÑr‘ª )êŠÞÈÐà~O÷*ê† +“ƨµ„éŸ01SÚ7<¶¢ä¬Q¨ÞèÂಸ½*ÓL"ž+l²k÷:zë@°N_ŒqNªyàF@UZÙW0bBÿk/³ÑÏ«h:»ôýp!L^9<ÔË,ÈÁ_–,&_x^1;ØÔt¶å,_ÌàÎ +Qn1:ü .>úàÿî…ý4S†,ß +K2~ŠGLU3‡]º¦÷Œ¼¾q/GÑ­…FLmι?qˆ9Or‡‡-½s*|ëý°Vô;ÙQ†Ž>ÈWaPÁãyè¾Ö +¨õ²¾Œ!×È?9%÷´ž­ýÞ%ç: ¸f²Ô2h~å†ì·²ðžVÖÞFI#ÜOvÞÝŒ¸E4r +Ž]ÇÚÊa見3pƒ<ÇG¬~tl3Hh^Ä0Ïɯk˜Z¸®Õ< +ö/Îê(˦¾@¨Êè¼'bÀSi\)N»ü¢LúÌeÿ–ImzGÚHã)¶Ëô(»8ªå+°PdTMÎN&çЦ‰&C÷‹|ÖÖ_]ÜÜ +Œo™qh– oŠL7|¨Î.2ñ9ØË*!“ÛA®Ê†­RŒiV£iëß1qc‚Œ8¦—°Ó÷à#¨B°âUö9ŽMKEúVþP¶»›®õ'ÆO|еÒÀ= ; +ýÏl2¦âYLë|Z¸ëÉsÍŸdó|*.K4éËœm ­”»¤åX¥c{G¹dpñH³Jx ¡Ü÷F¨«4VMw–/óÈTÆ•S$øE0¹Ê}ŠŽXZj°Ò$"È#´NöJFF’Šè> +RòÖ¿bOªˆ]­ÂóÜØk;èeE2ôóeÌiÙ0é‡gªÂ©X}í aUå —j•ª¼Â†U…*ܤ泔üÞ½¡“ûè'ó´ö[œÃ¬£óÄÍ ¡˜IÄ86´®Ö>SàÑ©ÄjÑO&“¸Ô@;_ꛪ ï1¶,üé0‘gdöÃ3 r¨¸(×L”]iRëlWŠÔ’±ÄX´.ˆåƒðîõô›aAÞ¤eã‚…~#‹~>ý v>x›4º],î¨^­fÌ÷{kµ«ÄoO\ŒAü°ãY<é|/ˆüŸd¸!nt*ßôHNy*sk@å–@"JQ‹óx-mYw_ÃÐM Tnlÿ­Y>½ˆ©¿µ(aO,QÊeJ± ï’ ;Ï™•bŒÅÙ¡A“þÔ𚔿\—¨Úù¢Ú¶ÊïRË,ÍÝ„?NýU÷™„÷Ì~×÷Sø-!ðåz˜Ì׶ý‹¼Â$OÒƒ'–µS;?¹;ùb†a.Ô% Ó³@ÛðïÊËžåX{ëÙ­ÝñÓÉãV¥£ŸŽ?-ú.=xMÖšÒòJä•ímPPÞí{# 'ÞÞÙ½¾ðàiDåšÛL¸TIÄ_}¤g·Ù [Vé¸,á +)”ñO¾¨ÙÐŽúøÄK ƒ_̤VBôEè öigd¡#A\&Ž–Ò飢„DË#JÊÞZcf¼ÄW­U^å*WBç·lŸ£_AØI-a ¼)¾5¾Ùðˆ©³|›%X·³¹óõΗøš(‘ÊVp<”O¯â)APk¬'{îÈ丂ó­Àâh#PíxãeAT˜Yt›wÈt´D¢—ªã#¹ ‘Gt´úH|T|„®oÔøaµ,¸j©-Ñ÷ÔAþÑ8o½”‘FµöÕ*ŠTÇ7Ô7t›'<¤Jíøø×¼»ÓÆ£KKjšÆ]ûã!À“¥!ÈÐ7»Öpê]zù#ð8î±ìîââóƒßý…N|ŽÌ¸¶6·Ž¬ãcF!À‚ºÂ—ëÆ'`eÈM‚o°¨Hª£['>QˆFë07Ü"W›ueÑÝ ŠÛdDŒÎØ©– ›õŠ ÈR§Ýæ#æ 52"Tû&DmIÅJºËï1{@iö6KQÎ>D[ê>2@¤÷ìñ„‘']}Uopż\š‘îm²ÃGŸå^tUäp¹ nðþ¨oðq¼;€#ù[ô¾u +e¦x˜à³ +cEÃCêÃkÝâ y9Ú·Ò‡½VVןÜ/"™ CÇÍ—4§*78€*`Š1Þ©ñ©Sî2 ·¨Q8Iù&ʺ3Ýf7Ä3«üus¡>ÍXgÜéì*ùº#zˆi'ô“$îƒZáÆYßH2æÙ|™œÊóˆ?¶ÿc^¡øå2•sK„ʇÄæXØûcERNpeëºv5ÅE–>åûy\ñï1ù€`ÀkÝi~~÷B¾¯,ùÝÅâ ðÍ +§Öga!.ΘÍþâ:Øâܨ+. +endstream +endobj +1992 0 obj << -/Type /FontDescriptor -/FontName /IMOIOS+CMSY10 -/Flags 4 -/FontBBox [-29 -960 1116 775] -/Ascent 750 -/CapHeight 683 -/Descent -194 -/ItalicAngle -14 -/StemV 40 -/XHeight 431 -/CharSet (/B/H/I/arrowleft/bar/bardbl/braceleft/braceright/bullet/element/greaterequal/lessequal/minus/negationslash/radical/section) -/FontFile 1899 0 R +/Type /ObjStm +/N 100 +/First 958 +/Length 13084 >> -% 1902 0 obj +stream +1991 0 1994 231 1996 604 1998 867 2000 1346 2002 1578 584 1862 582 2003 1753 2144 1726 2285 +797 2427 845 2568 813 2709 1911 2849 585 2989 815 3129 812 3267 817 3405 1301 3544 814 3684 +1171 3824 777 3963 583 4104 811 4245 873 4386 1013 4526 586 4667 778 4780 874 4893 929 5006 +964 5119 993 5232 1036 5349 1091 5469 1139 5589 1197 5709 1250 5829 1302 5949 1358 6069 1399 6189 +1437 6309 1486 6429 1528 6549 1562 6669 1602 6789 1643 6909 1676 7029 1707 7149 1744 7269 1806 7389 +1847 7509 1884 7629 1924 7749 2003 7851 2004 7966 2005 8087 2006 8208 2007 8329 2008 8423 2009 8519 +574 8588 570 8648 566 8759 562 8833 558 8921 554 9009 550 9097 546 9185 542 9259 538 9384 +534 9458 530 9546 526 9634 522 9722 518 9810 514 9884 510 10009 506 10083 502 10171 498 10259 +494 10333 490 10458 486 10532 482 10620 478 10708 474 10796 470 10884 466 10972 462 11060 458 11148 +454 11236 450 11324 446 11412 442 11500 438 11588 434 11676 430 11764 426 11852 422 11926 418 12052 +% 1991 0 obj << /Type /FontDescriptor /FontName /XNLILI+CMSY7 @@ -26552,9 +27939,9 @@ stream /StemV 49 /XHeight 431 /CharSet (/infinity/minus) -/FontFile 1901 0 R +/FontFile 1990 0 R >> -% 1904 0 obj +% 1994 0 obj << /Type /FontDescriptor /FontName /HBJLDT+CMTI10 @@ -26567,9 +27954,9 @@ stream /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 1903 0 R +/FontFile 1993 0 R >> -% 1906 0 obj +% 1996 0 obj << /Type /FontDescriptor /FontName /OZJPZO+CMTI12 @@ -26582,9 +27969,9 @@ stream /StemV 63 /XHeight 431 /CharSet (/A/B/L/P/S/a/b/c/d/e/f/g/h/i/l/n/o/p/r/s/t/u/y) -/FontFile 1905 0 R +/FontFile 1995 0 R >> -% 1908 0 obj +% 1998 0 obj << /Type /FontDescriptor /FontName /TJSMYH+CMTT10 @@ -26597,9 +27984,9 @@ stream /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/four/g/h/hyphen/i/j/k/l/m/n/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 1907 0 R +/FontFile 1997 0 R >> -% 1910 0 obj +% 2000 0 obj << /Type /FontDescriptor /FontName /HZGQIC+CMTT8 @@ -26612,9 +27999,9 @@ stream /StemV 76 /XHeight 431 /CharSet (/b/c/e/i/l/n/p/r/s/t) -/FontFile 1909 0 R +/FontFile 1999 0 R >> -% 1912 0 obj +% 2002 0 obj << /Type /FontDescriptor /FontName /KMUHVJ+CMTT9 @@ -26627,474 +28014,530 @@ stream /StemV 74 /XHeight 431 /CharSet (/T/a/b/c/colon/comma/d/e/l/n/o/p/parenleft/parenright/r/s/t/underscore/y) -/FontFile 1911 0 R +/FontFile 2001 0 R >> -% 560 0 obj +% 584 0 obj << /Type /Font /Subtype /Type1 /BaseFont /RAJOBS+CMBX10 -/FontDescriptor 1874 0 R +/FontDescriptor 1963 0 R /FirstChar 11 /LastChar 124 -/Widths 1870 0 R +/Widths 1959 0 R >> -% 558 0 obj +% 582 0 obj << /Type /Font /Subtype /Type1 /BaseFont /BWDLNI+CMBX12 -/FontDescriptor 1876 0 R +/FontDescriptor 1965 0 R /FirstChar 12 /LastChar 124 -/Widths 1872 0 R +/Widths 1961 0 R >> -% 1663 0 obj +% 1753 0 obj << /Type /Font /Subtype /Type1 /BaseFont /VUBHOM+CMBX9 -/FontDescriptor 1878 0 R +/FontDescriptor 1967 0 R /FirstChar 97 /LastChar 117 -/Widths 1853 0 R +/Widths 1943 0 R >> -% 1636 0 obj +% 1726 0 obj << /Type /Font /Subtype /Type1 /BaseFont /OUFNAH+CMEX10 -/FontDescriptor 1880 0 R +/FontDescriptor 1969 0 R /FirstChar 88 /LastChar 115 -/Widths 1854 0 R +/Widths 1944 0 R >> -% 755 0 obj +% 797 0 obj << /Type /Font /Subtype /Type1 -/BaseFont /PUWBWT+CMMI10 -/FontDescriptor 1882 0 R +/BaseFont /HKHZAC+CMMI10 +/FontDescriptor 1971 0 R /FirstChar 11 /LastChar 122 -/Widths 1867 0 R +/Widths 1956 0 R >> -% 802 0 obj +% 845 0 obj << /Type /Font /Subtype /Type1 /BaseFont /RVPZIX+CMMI5 -/FontDescriptor 1884 0 R +/FontDescriptor 1973 0 R /FirstChar 105 /LastChar 105 -/Widths 1859 0 R +/Widths 1949 0 R >> -% 771 0 obj +% 813 0 obj << /Type /Font /Subtype /Type1 /BaseFont /ZUYGVH+CMMI7 -/FontDescriptor 1886 0 R +/FontDescriptor 1975 0 R /FirstChar 59 /LastChar 110 -/Widths 1864 0 R +/Widths 1953 0 R >> -% 1821 0 obj +% 1911 0 obj << /Type /Font /Subtype /Type1 /BaseFont /ZOAUSA+CMMI8 -/FontDescriptor 1888 0 R +/FontDescriptor 1977 0 R /FirstChar 67 /LastChar 71 -/Widths 1852 0 R +/Widths 1942 0 R >> -% 561 0 obj +% 585 0 obj << /Type /Font /Subtype /Type1 -/BaseFont /SEWPRR+CMR10 -/FontDescriptor 1890 0 R +/BaseFont /WUKOCR+CMR10 +/FontDescriptor 1979 0 R /FirstChar 11 -/LastChar 123 -/Widths 1869 0 R +/LastChar 124 +/Widths 1958 0 R >> -% 773 0 obj +% 815 0 obj << /Type /Font /Subtype /Type1 /BaseFont /UJRPBG+CMR6 -/FontDescriptor 1892 0 R +/FontDescriptor 1981 0 R /FirstChar 49 /LastChar 53 -/Widths 1861 0 R +/Widths 1951 0 R >> -% 770 0 obj +% 812 0 obj << /Type /Font /Subtype /Type1 /BaseFont /GIODUE+CMR7 -/FontDescriptor 1894 0 R +/FontDescriptor 1983 0 R /FirstChar 48 /LastChar 58 -/Widths 1865 0 R +/Widths 1954 0 R >> -% 775 0 obj +% 817 0 obj << /Type /Font /Subtype /Type1 /BaseFont /HFTEUS+CMR8 -/FontDescriptor 1896 0 R +/FontDescriptor 1985 0 R /FirstChar 40 /LastChar 121 -/Widths 1860 0 R +/Widths 1950 0 R >> -% 1211 0 obj +% 1301 0 obj << /Type /Font /Subtype /Type1 /BaseFont /KKURMF+CMR9 -/FontDescriptor 1898 0 R +/FontDescriptor 1987 0 R /FirstChar 39 /LastChar 122 -/Widths 1855 0 R +/Widths 1945 0 R >> -% 772 0 obj +% 814 0 obj << /Type /Font /Subtype /Type1 /BaseFont /IMOIOS+CMSY10 -/FontDescriptor 1900 0 R +/FontDescriptor 1989 0 R /FirstChar 0 /LastChar 120 -/Widths 1862 0 R +/Widths 1952 0 R >> -% 1125 0 obj +% 1171 0 obj << /Type /Font /Subtype /Type1 /BaseFont /XNLILI+CMSY7 -/FontDescriptor 1902 0 R +/FontDescriptor 1991 0 R /FirstChar 0 /LastChar 49 -/Widths 1856 0 R +/Widths 1946 0 R >> -% 735 0 obj +% 777 0 obj << /Type /Font /Subtype /Type1 /BaseFont /HBJLDT+CMTI10 -/FontDescriptor 1904 0 R +/FontDescriptor 1994 0 R /FirstChar 11 /LastChar 121 -/Widths 1868 0 R +/Widths 1957 0 R >> -% 559 0 obj +% 583 0 obj << /Type /Font /Subtype /Type1 /BaseFont /OZJPZO+CMTI12 -/FontDescriptor 1906 0 R +/FontDescriptor 1996 0 R /FirstChar 65 /LastChar 121 -/Widths 1871 0 R +/Widths 1960 0 R >> -% 769 0 obj +% 811 0 obj << /Type /Font /Subtype /Type1 /BaseFont /TJSMYH+CMTT10 -/FontDescriptor 1908 0 R +/FontDescriptor 1998 0 R /FirstChar 37 /LastChar 126 -/Widths 1866 0 R +/Widths 1955 0 R >> -% 830 0 obj +% 873 0 obj << /Type /Font /Subtype /Type1 /BaseFont /HZGQIC+CMTT8 -/FontDescriptor 1910 0 R +/FontDescriptor 2000 0 R /FirstChar 98 /LastChar 116 -/Widths 1858 0 R +/Widths 1948 0 R >> -% 967 0 obj +% 1013 0 obj << /Type /Font /Subtype /Type1 /BaseFont /KMUHVJ+CMTT9 -/FontDescriptor 1912 0 R +/FontDescriptor 2002 0 R /FirstChar 40 /LastChar 121 -/Widths 1857 0 R +/Widths 1947 0 R >> -% 562 0 obj +% 586 0 obj << /Type /Pages /Count 6 -/Parent 1913 0 R -/Kids [553 0 R 564 0 R 615 0 R 668 0 R 714 0 R 719 0 R] +/Parent 2003 0 R +/Kids [577 0 R 588 0 R 635 0 R 692 0 R 737 0 R 758 0 R] >> -% 736 0 obj +% 778 0 obj << /Type /Pages /Count 6 -/Parent 1913 0 R -/Kids [733 0 R 753 0 R 766 0 R 782 0 R 794 0 R 799 0 R] +/Parent 2003 0 R +/Kids [775 0 R 795 0 R 808 0 R 824 0 R 837 0 R 842 0 R] >> -% 831 0 obj +% 874 0 obj << /Type /Pages /Count 6 -/Parent 1913 0 R -/Kids [813 0 R 835 0 R 846 0 R 854 0 R 865 0 R 880 0 R] +/Parent 2003 0 R +/Kids [856 0 R 877 0 R 888 0 R 896 0 R 907 0 R 922 0 R] >> -% 887 0 obj +% 929 0 obj << /Type /Pages /Count 6 -/Parent 1913 0 R -/Kids [884 0 R 889 0 R 897 0 R 905 0 R 909 0 R 915 0 R] +/Parent 2003 0 R +/Kids [926 0 R 931 0 R 937 0 R 944 0 R 952 0 R 956 0 R] >> -% 922 0 obj +% 964 0 obj << /Type /Pages /Count 6 -/Parent 1913 0 R -/Kids [919 0 R 924 0 R 928 0 R 932 0 R 938 0 R 944 0 R] +/Parent 2003 0 R +/Kids [961 0 R 966 0 R 970 0 R 974 0 R 978 0 R 984 0 R] >> -% 953 0 obj +% 993 0 obj << /Type /Pages /Count 6 -/Parent 1913 0 R -/Kids [950 0 R 958 0 R 964 0 R 969 0 R 980 0 R 986 0 R] +/Parent 2003 0 R +/Kids [990 0 R 997 0 R 1004 0 R 1010 0 R 1015 0 R 1027 0 R] >> -% 999 0 obj +% 1036 0 obj << /Type /Pages /Count 6 -/Parent 1914 0 R -/Kids [995 0 R 1002 0 R 1019 0 R 1024 0 R 1031 0 R 1036 0 R] +/Parent 2004 0 R +/Kids [1033 0 R 1043 0 R 1049 0 R 1065 0 R 1070 0 R 1077 0 R] >> -% 1053 0 obj +% 1091 0 obj << /Type /Pages /Count 6 -/Parent 1914 0 R -/Kids [1049 0 R 1058 0 R 1063 0 R 1076 0 R 1081 0 R 1088 0 R] +/Parent 2004 0 R +/Kids [1082 0 R 1096 0 R 1104 0 R 1109 0 R 1122 0 R 1128 0 R] >> -% 1102 0 obj +% 1139 0 obj << /Type /Pages /Count 6 -/Parent 1914 0 R -/Kids [1093 0 R 1107 0 R 1114 0 R 1122 0 R 1133 0 R 1148 0 R] +/Parent 2004 0 R +/Kids [1135 0 R 1141 0 R 1154 0 R 1161 0 R 1168 0 R 1179 0 R] >> -% 1158 0 obj +% 1197 0 obj << /Type /Pages /Count 6 -/Parent 1914 0 R -/Kids [1154 0 R 1166 0 R 1172 0 R 1177 0 R 1185 0 R 1195 0 R] +/Parent 2004 0 R +/Kids [1194 0 R 1201 0 R 1212 0 R 1218 0 R 1229 0 R 1235 0 R] >> -% 1212 0 obj +% 1250 0 obj << /Type /Pages /Count 6 -/Parent 1914 0 R -/Kids [1208 0 R 1217 0 R 1229 0 R 1238 0 R 1242 0 R 1257 0 R] +/Parent 2004 0 R +/Kids [1246 0 R 1252 0 R 1261 0 R 1267 0 R 1275 0 R 1285 0 R] >> -% 1268 0 obj +% 1302 0 obj << /Type /Pages /Count 6 -/Parent 1914 0 R -/Kids [1265 0 R 1272 0 R 1281 0 R 1285 0 R 1290 0 R 1296 0 R] +/Parent 2004 0 R +/Kids [1298 0 R 1307 0 R 1319 0 R 1327 0 R 1331 0 R 1346 0 R] >> -% 1309 0 obj +% 1358 0 obj << /Type /Pages /Count 6 -/Parent 1915 0 R -/Kids [1301 0 R 1312 0 R 1317 0 R 1326 0 R 1333 0 R 1338 0 R] +/Parent 2005 0 R +/Kids [1355 0 R 1362 0 R 1371 0 R 1375 0 R 1380 0 R 1386 0 R] >> -% 1348 0 obj +% 1399 0 obj << /Type /Pages /Count 6 -/Parent 1915 0 R -/Kids [1344 0 R 1350 0 R 1358 0 R 1366 0 R 1372 0 R 1381 0 R] +/Parent 2005 0 R +/Kids [1391 0 R 1402 0 R 1407 0 R 1416 0 R 1423 0 R 1428 0 R] >> -% 1396 0 obj +% 1437 0 obj << /Type /Pages /Count 6 -/Parent 1915 0 R -/Kids [1393 0 R 1398 0 R 1410 0 R 1416 0 R 1423 0 R 1429 0 R] +/Parent 2005 0 R +/Kids [1434 0 R 1439 0 R 1447 0 R 1455 0 R 1461 0 R 1471 0 R] >> -% 1438 0 obj +% 1486 0 obj << /Type /Pages /Count 6 -/Parent 1915 0 R -/Kids [1433 0 R 1443 0 R 1449 0 R 1454 0 R 1459 0 R 1463 0 R] +/Parent 2005 0 R +/Kids [1483 0 R 1488 0 R 1500 0 R 1506 0 R 1513 0 R 1519 0 R] >> -% 1473 0 obj +% 1528 0 obj << /Type /Pages /Count 6 -/Parent 1915 0 R -/Kids [1470 0 R 1476 0 R 1482 0 R 1488 0 R 1494 0 R 1500 0 R] +/Parent 2005 0 R +/Kids [1523 0 R 1533 0 R 1539 0 R 1543 0 R 1548 0 R 1552 0 R] >> -% 1512 0 obj +% 1562 0 obj << /Type /Pages /Count 6 -/Parent 1915 0 R -/Kids [1507 0 R 1515 0 R 1519 0 R 1529 0 R 1533 0 R 1537 0 R] +/Parent 2005 0 R +/Kids [1559 0 R 1565 0 R 1572 0 R 1578 0 R 1584 0 R 1590 0 R] >> -% 1553 0 obj +% 1602 0 obj << /Type /Pages /Count 6 -/Parent 1916 0 R -/Kids [1550 0 R 1555 0 R 1562 0 R 1568 0 R 1575 0 R 1579 0 R] +/Parent 2006 0 R +/Kids [1597 0 R 1605 0 R 1609 0 R 1619 0 R 1623 0 R 1627 0 R] >> -% 1586 0 obj +% 1643 0 obj << /Type /Pages /Count 6 -/Parent 1916 0 R -/Kids [1583 0 R 1588 0 R 1592 0 R 1596 0 R 1600 0 R 1606 0 R] +/Parent 2006 0 R +/Kids [1640 0 R 1645 0 R 1651 0 R 1657 0 R 1664 0 R 1668 0 R] >> -% 1617 0 obj +% 1676 0 obj << /Type /Pages /Count 6 -/Parent 1916 0 R -/Kids [1612 0 R 1619 0 R 1625 0 R 1631 0 R 1639 0 R 1644 0 R] +/Parent 2006 0 R +/Kids [1672 0 R 1678 0 R 1682 0 R 1686 0 R 1690 0 R 1696 0 R] >> -% 1654 0 obj +% 1707 0 obj +<< +/Type /Pages +/Count 6 +/Parent 2006 0 R +/Kids [1702 0 R 1709 0 R 1715 0 R 1721 0 R 1729 0 R 1734 0 R] +>> +% 1744 0 obj << /Type /Pages /Count 6 -/Parent 1916 0 R -/Kids [1651 0 R 1658 0 R 1689 0 R 1695 0 R 1701 0 R 1707 0 R] +/Parent 2006 0 R +/Kids [1741 0 R 1748 0 R 1778 0 R 1785 0 R 1791 0 R 1797 0 R] >> -% 1716 0 obj +% 1806 0 obj << /Type /Pages /Count 6 -/Parent 1916 0 R -/Kids [1713 0 R 1719 0 R 1726 0 R 1733 0 R 1739 0 R 1746 0 R] +/Parent 2006 0 R +/Kids [1803 0 R 1809 0 R 1816 0 R 1823 0 R 1829 0 R 1836 0 R] >> -% 1757 0 obj +% 1847 0 obj << /Type /Pages /Count 6 -/Parent 1916 0 R -/Kids [1752 0 R 1759 0 R 1765 0 R 1775 0 R 1779 0 R 1787 0 R] +/Parent 2007 0 R +/Kids [1842 0 R 1849 0 R 1855 0 R 1864 0 R 1868 0 R 1876 0 R] >> -% 1795 0 obj +% 1884 0 obj << /Type /Pages /Count 6 -/Parent 1917 0 R -/Kids [1792 0 R 1797 0 R 1803 0 R 1807 0 R 1814 0 R 1826 0 R] +/Parent 2007 0 R +/Kids [1881 0 R 1887 0 R 1893 0 R 1897 0 R 1904 0 R 1916 0 R] >> -% 1834 0 obj +% 1924 0 obj << /Type /Pages /Count 4 -/Parent 1917 0 R -/Kids [1831 0 R 1836 0 R 1840 0 R 1848 0 R] +/Parent 2007 0 R +/Kids [1921 0 R 1926 0 R 1930 0 R 1938 0 R] >> -% 1913 0 obj +% 2003 0 obj << /Type /Pages /Count 36 -/Parent 1918 0 R -/Kids [562 0 R 736 0 R 831 0 R 887 0 R 922 0 R 953 0 R] +/Parent 2008 0 R +/Kids [586 0 R 778 0 R 874 0 R 929 0 R 964 0 R 993 0 R] >> -% 1914 0 obj +% 2004 0 obj << /Type /Pages /Count 36 -/Parent 1918 0 R -/Kids [999 0 R 1053 0 R 1102 0 R 1158 0 R 1212 0 R 1268 0 R] +/Parent 2008 0 R +/Kids [1036 0 R 1091 0 R 1139 0 R 1197 0 R 1250 0 R 1302 0 R] >> -% 1915 0 obj +% 2005 0 obj << /Type /Pages /Count 36 -/Parent 1918 0 R -/Kids [1309 0 R 1348 0 R 1396 0 R 1438 0 R 1473 0 R 1512 0 R] +/Parent 2008 0 R +/Kids [1358 0 R 1399 0 R 1437 0 R 1486 0 R 1528 0 R 1562 0 R] >> -% 1916 0 obj +% 2006 0 obj << /Type /Pages /Count 36 -/Parent 1918 0 R -/Kids [1553 0 R 1586 0 R 1617 0 R 1654 0 R 1716 0 R 1757 0 R] +/Parent 2008 0 R +/Kids [1602 0 R 1643 0 R 1676 0 R 1707 0 R 1744 0 R 1806 0 R] >> -% 1917 0 obj +% 2007 0 obj << /Type /Pages -/Count 10 -/Parent 1918 0 R -/Kids [1795 0 R 1834 0 R] +/Count 16 +/Parent 2008 0 R +/Kids [1847 0 R 1884 0 R 1924 0 R] >> -% 1918 0 obj +% 2008 0 obj << /Type /Pages -/Count 154 -/Kids [1913 0 R 1914 0 R 1915 0 R 1916 0 R 1917 0 R] +/Count 160 +/Kids [2003 0 R 2004 0 R 2005 0 R 2006 0 R 2007 0 R] >> -% 1919 0 obj +% 2009 0 obj << /Type /Outlines /First 4 0 R /Last 4 0 R /Count 1 >> +% 574 0 obj +<< +/Title 575 0 R +/A 572 0 R +/Parent 570 0 R +>> +% 570 0 obj +<< +/Title 571 0 R +/A 568 0 R +/Parent 4 0 R +/Prev 542 0 R +/First 574 0 R +/Last 574 0 R +/Count -1 +>> +% 566 0 obj +<< +/Title 567 0 R +/A 564 0 R +/Parent 542 0 R +/Prev 562 0 R +>> +% 562 0 obj +<< +/Title 563 0 R +/A 560 0 R +/Parent 542 0 R +/Prev 558 0 R +/Next 566 0 R +>> +% 558 0 obj +<< +/Title 559 0 R +/A 556 0 R +/Parent 542 0 R +/Prev 554 0 R +/Next 562 0 R +>> +% 554 0 obj +<< +/Title 555 0 R +/A 552 0 R +/Parent 542 0 R +/Prev 550 0 R +/Next 558 0 R +>> % 550 0 obj << /Title 551 0 R /A 548 0 R -/Parent 546 0 R +/Parent 542 0 R +/Prev 546 0 R +/Next 554 0 R >> % 546 0 obj << /Title 547 0 R /A 544 0 R -/Parent 4 0 R -/Prev 518 0 R -/First 550 0 R -/Last 550 0 R -/Count -1 +/Parent 542 0 R +/Next 550 0 R >> % 542 0 obj << /Title 543 0 R /A 540 0 R -/Parent 518 0 R -/Prev 538 0 R +/Parent 4 0 R +/Prev 514 0 R +/Next 570 0 R +/First 546 0 R +/Last 566 0 R +/Count -6 >> % 538 0 obj << /Title 539 0 R /A 536 0 R -/Parent 518 0 R +/Parent 514 0 R /Prev 534 0 R -/Next 542 0 R >> % 534 0 obj << /Title 535 0 R /A 532 0 R -/Parent 518 0 R +/Parent 514 0 R /Prev 530 0 R /Next 538 0 R >> @@ -27102,7 +28545,7 @@ stream << /Title 531 0 R /A 528 0 R -/Parent 518 0 R +/Parent 514 0 R /Prev 526 0 R /Next 534 0 R >> @@ -27110,7 +28553,7 @@ stream << /Title 527 0 R /A 524 0 R -/Parent 518 0 R +/Parent 514 0 R /Prev 522 0 R /Next 530 0 R >> @@ -27118,40 +28561,40 @@ stream << /Title 523 0 R /A 520 0 R -/Parent 518 0 R +/Parent 514 0 R +/Prev 518 0 R /Next 526 0 R >> % 518 0 obj << /Title 519 0 R /A 516 0 R -/Parent 4 0 R -/Prev 490 0 R -/Next 546 0 R -/First 522 0 R -/Last 542 0 R -/Count -6 +/Parent 514 0 R +/Next 522 0 R >> % 514 0 obj << /Title 515 0 R /A 512 0 R -/Parent 490 0 R -/Prev 510 0 R +/Parent 4 0 R +/Prev 494 0 R +/Next 542 0 R +/First 518 0 R +/Last 538 0 R +/Count -6 >> % 510 0 obj << /Title 511 0 R /A 508 0 R -/Parent 490 0 R +/Parent 494 0 R /Prev 506 0 R -/Next 514 0 R >> % 506 0 obj << /Title 507 0 R /A 504 0 R -/Parent 490 0 R +/Parent 494 0 R /Prev 502 0 R /Next 510 0 R >> @@ -27159,7 +28602,7 @@ stream << /Title 503 0 R /A 500 0 R -/Parent 490 0 R +/Parent 494 0 R /Prev 498 0 R /Next 506 0 R >> @@ -27167,61 +28610,40 @@ stream << /Title 499 0 R /A 496 0 R -/Parent 490 0 R -/Prev 494 0 R +/Parent 494 0 R /Next 502 0 R >> % 494 0 obj << /Title 495 0 R /A 492 0 R -/Parent 490 0 R -/Next 498 0 R +/Parent 4 0 R +/Prev 422 0 R +/Next 514 0 R +/First 498 0 R +/Last 510 0 R +/Count -4 >> % 490 0 obj << /Title 491 0 R /A 488 0 R -/Parent 4 0 R -/Prev 470 0 R -/Next 518 0 R -/First 494 0 R -/Last 514 0 R -/Count -6 +/Parent 422 0 R +/Prev 486 0 R >> % 486 0 obj << /Title 487 0 R /A 484 0 R -/Parent 470 0 R +/Parent 422 0 R /Prev 482 0 R +/Next 490 0 R >> - -endstream -endobj -1920 0 obj -<< -/Type /ObjStm -/N 100 -/First 881 -/Length 9701 ->> -stream -482 0 478 88 474 176 470 250 466 375 462 449 458 537 454 625 450 713 446 801 -442 889 438 977 434 1065 430 1153 426 1241 422 1329 418 1417 414 1505 410 1593 406 1681 -401 1769 397 1843 393 1969 389 2043 385 2131 381 2219 377 2307 373 2395 369 2483 365 2571 -361 2659 357 2747 353 2835 349 2923 345 3011 341 3099 337 3187 333 3275 329 3363 325 3451 -321 3539 317 3627 313 3715 309 3803 305 3891 301 3979 297 4067 293 4155 289 4243 285 4317 -281 4443 277 4517 273 4605 269 4693 265 4767 261 4892 257 4966 253 5054 249 5142 245 5230 -241 5318 237 5406 233 5494 229 5582 225 5670 221 5758 217 5846 213 5934 209 6008 205 6133 -200 6206 196 6293 192 6367 188 6455 184 6543 180 6631 176 6705 172 6804 168 6929 164 7001 -160 7074 156 7161 152 7248 148 7335 144 7422 140 7509 136 7596 132 7683 128 7770 124 7857 -120 7944 116 8031 112 8118 108 8205 104 8292 100 8379 96 8451 92 8561 88 8682 84 8751 % 482 0 obj << /Title 483 0 R /A 480 0 R -/Parent 470 0 R +/Parent 422 0 R /Prev 478 0 R /Next 486 0 R >> @@ -27229,7 +28651,7 @@ stream << /Title 479 0 R /A 476 0 R -/Parent 470 0 R +/Parent 422 0 R /Prev 474 0 R /Next 482 0 R >> @@ -27237,32 +28659,31 @@ stream << /Title 475 0 R /A 472 0 R -/Parent 470 0 R +/Parent 422 0 R +/Prev 470 0 R /Next 478 0 R >> % 470 0 obj << /Title 471 0 R /A 468 0 R -/Parent 4 0 R -/Prev 397 0 R -/Next 490 0 R -/First 474 0 R -/Last 486 0 R -/Count -4 +/Parent 422 0 R +/Prev 466 0 R +/Next 474 0 R >> % 466 0 obj << /Title 467 0 R /A 464 0 R -/Parent 397 0 R +/Parent 422 0 R /Prev 462 0 R +/Next 470 0 R >> % 462 0 obj << /Title 463 0 R /A 460 0 R -/Parent 397 0 R +/Parent 422 0 R /Prev 458 0 R /Next 466 0 R >> @@ -27270,7 +28691,7 @@ stream << /Title 459 0 R /A 456 0 R -/Parent 397 0 R +/Parent 422 0 R /Prev 454 0 R /Next 462 0 R >> @@ -27278,7 +28699,7 @@ stream << /Title 455 0 R /A 452 0 R -/Parent 397 0 R +/Parent 422 0 R /Prev 450 0 R /Next 458 0 R >> @@ -27286,7 +28707,7 @@ stream << /Title 451 0 R /A 448 0 R -/Parent 397 0 R +/Parent 422 0 R /Prev 446 0 R /Next 454 0 R >> @@ -27294,7 +28715,7 @@ stream << /Title 447 0 R /A 444 0 R -/Parent 397 0 R +/Parent 422 0 R /Prev 442 0 R /Next 450 0 R >> @@ -27302,7 +28723,7 @@ stream << /Title 443 0 R /A 440 0 R -/Parent 397 0 R +/Parent 422 0 R /Prev 438 0 R /Next 446 0 R >> @@ -27310,7 +28731,7 @@ stream << /Title 439 0 R /A 436 0 R -/Parent 397 0 R +/Parent 422 0 R /Prev 434 0 R /Next 442 0 R >> @@ -27318,7 +28739,7 @@ stream << /Title 435 0 R /A 432 0 R -/Parent 397 0 R +/Parent 422 0 R /Prev 430 0 R /Next 438 0 R >> @@ -27326,7 +28747,7 @@ stream << /Title 431 0 R /A 428 0 R -/Parent 397 0 R +/Parent 422 0 R /Prev 426 0 R /Next 434 0 R >> @@ -27334,31 +28755,53 @@ stream << /Title 427 0 R /A 424 0 R -/Parent 397 0 R -/Prev 422 0 R +/Parent 422 0 R /Next 430 0 R >> % 422 0 obj << /Title 423 0 R /A 420 0 R -/Parent 397 0 R -/Prev 418 0 R -/Next 426 0 R +/Parent 4 0 R +/Prev 309 0 R +/Next 494 0 R +/First 426 0 R +/Last 490 0 R +/Count -17 >> % 418 0 obj << /Title 419 0 R /A 416 0 R -/Parent 397 0 R +/Parent 309 0 R /Prev 414 0 R -/Next 422 0 R >> + +endstream +endobj +2010 0 obj +<< +/Type /ObjStm +/N 100 +/First 864 +/Length 9605 +>> +stream +414 0 410 88 406 176 401 264 397 352 393 440 389 528 385 616 381 704 377 792 +373 880 369 968 365 1056 361 1144 357 1232 353 1320 349 1408 345 1496 341 1584 337 1672 +333 1760 329 1848 325 1936 321 2024 317 2112 313 2200 309 2274 305 2400 301 2474 297 2562 +293 2650 289 2724 285 2849 281 2923 277 3011 273 3099 269 3187 265 3275 261 3363 257 3451 +253 3539 249 3627 245 3715 241 3803 237 3891 233 3979 229 4067 225 4155 221 4229 217 4354 +213 4427 209 4514 205 4588 200 4676 196 4764 192 4852 188 4940 184 5014 180 5140 176 5214 +172 5302 168 5390 164 5478 160 5566 156 5654 152 5742 148 5830 144 5918 140 6006 136 6094 +132 6182 128 6270 124 6358 120 6446 116 6534 112 6622 108 6710 104 6784 100 6910 96 6981 +92 7064 88 7146 84 7228 80 7310 76 7392 72 7474 68 7556 64 7638 60 7720 56 7802 +52 7884 48 7966 44 8048 40 8117 36 8226 32 8346 28 8415 24 8471 20 8590 16 8672 % 414 0 obj << /Title 415 0 R /A 412 0 R -/Parent 397 0 R +/Parent 309 0 R /Prev 410 0 R /Next 418 0 R >> @@ -27366,7 +28809,7 @@ stream << /Title 411 0 R /A 408 0 R -/Parent 397 0 R +/Parent 309 0 R /Prev 406 0 R /Next 414 0 R >> @@ -27374,7 +28817,7 @@ stream << /Title 407 0 R /A 403 0 R -/Parent 397 0 R +/Parent 309 0 R /Prev 401 0 R /Next 410 0 R >> @@ -27382,32 +28825,31 @@ stream << /Title 402 0 R /A 399 0 R -/Parent 397 0 R +/Parent 309 0 R +/Prev 397 0 R /Next 406 0 R >> % 397 0 obj << /Title 398 0 R /A 395 0 R -/Parent 4 0 R -/Prev 285 0 R -/Next 470 0 R -/First 401 0 R -/Last 466 0 R -/Count -17 +/Parent 309 0 R +/Prev 393 0 R +/Next 401 0 R >> % 393 0 obj << /Title 394 0 R /A 391 0 R -/Parent 285 0 R +/Parent 309 0 R /Prev 389 0 R +/Next 397 0 R >> % 389 0 obj << /Title 390 0 R /A 387 0 R -/Parent 285 0 R +/Parent 309 0 R /Prev 385 0 R /Next 393 0 R >> @@ -27415,7 +28857,7 @@ stream << /Title 386 0 R /A 383 0 R -/Parent 285 0 R +/Parent 309 0 R /Prev 381 0 R /Next 389 0 R >> @@ -27423,7 +28865,7 @@ stream << /Title 382 0 R /A 379 0 R -/Parent 285 0 R +/Parent 309 0 R /Prev 377 0 R /Next 385 0 R >> @@ -27431,7 +28873,7 @@ stream << /Title 378 0 R /A 375 0 R -/Parent 285 0 R +/Parent 309 0 R /Prev 373 0 R /Next 381 0 R >> @@ -27439,7 +28881,7 @@ stream << /Title 374 0 R /A 371 0 R -/Parent 285 0 R +/Parent 309 0 R /Prev 369 0 R /Next 377 0 R >> @@ -27447,7 +28889,7 @@ stream << /Title 370 0 R /A 367 0 R -/Parent 285 0 R +/Parent 309 0 R /Prev 365 0 R /Next 373 0 R >> @@ -27455,7 +28897,7 @@ stream << /Title 366 0 R /A 363 0 R -/Parent 285 0 R +/Parent 309 0 R /Prev 361 0 R /Next 369 0 R >> @@ -27463,7 +28905,7 @@ stream << /Title 362 0 R /A 359 0 R -/Parent 285 0 R +/Parent 309 0 R /Prev 357 0 R /Next 365 0 R >> @@ -27471,7 +28913,7 @@ stream << /Title 358 0 R /A 355 0 R -/Parent 285 0 R +/Parent 309 0 R /Prev 353 0 R /Next 361 0 R >> @@ -27479,7 +28921,7 @@ stream << /Title 354 0 R /A 351 0 R -/Parent 285 0 R +/Parent 309 0 R /Prev 349 0 R /Next 357 0 R >> @@ -27487,7 +28929,7 @@ stream << /Title 350 0 R /A 347 0 R -/Parent 285 0 R +/Parent 309 0 R /Prev 345 0 R /Next 353 0 R >> @@ -27495,7 +28937,7 @@ stream << /Title 346 0 R /A 343 0 R -/Parent 285 0 R +/Parent 309 0 R /Prev 341 0 R /Next 349 0 R >> @@ -27503,7 +28945,7 @@ stream << /Title 342 0 R /A 339 0 R -/Parent 285 0 R +/Parent 309 0 R /Prev 337 0 R /Next 345 0 R >> @@ -27511,7 +28953,7 @@ stream << /Title 338 0 R /A 335 0 R -/Parent 285 0 R +/Parent 309 0 R /Prev 333 0 R /Next 341 0 R >> @@ -27519,7 +28961,7 @@ stream << /Title 334 0 R /A 331 0 R -/Parent 285 0 R +/Parent 309 0 R /Prev 329 0 R /Next 337 0 R >> @@ -27527,7 +28969,7 @@ stream << /Title 330 0 R /A 327 0 R -/Parent 285 0 R +/Parent 309 0 R /Prev 325 0 R /Next 333 0 R >> @@ -27535,7 +28977,7 @@ stream << /Title 326 0 R /A 323 0 R -/Parent 285 0 R +/Parent 309 0 R /Prev 321 0 R /Next 329 0 R >> @@ -27543,7 +28985,7 @@ stream << /Title 322 0 R /A 319 0 R -/Parent 285 0 R +/Parent 309 0 R /Prev 317 0 R /Next 325 0 R >> @@ -27551,7 +28993,7 @@ stream << /Title 318 0 R /A 315 0 R -/Parent 285 0 R +/Parent 309 0 R /Prev 313 0 R /Next 321 0 R >> @@ -27559,31 +29001,32 @@ stream << /Title 314 0 R /A 311 0 R -/Parent 285 0 R -/Prev 309 0 R +/Parent 309 0 R /Next 317 0 R >> % 309 0 obj << /Title 310 0 R /A 307 0 R -/Parent 285 0 R -/Prev 305 0 R -/Next 313 0 R +/Parent 4 0 R +/Prev 289 0 R +/Next 422 0 R +/First 313 0 R +/Last 418 0 R +/Count -27 >> % 305 0 obj << /Title 306 0 R /A 303 0 R -/Parent 285 0 R +/Parent 289 0 R /Prev 301 0 R -/Next 309 0 R >> % 301 0 obj << /Title 302 0 R /A 299 0 R -/Parent 285 0 R +/Parent 289 0 R /Prev 297 0 R /Next 305 0 R >> @@ -27591,7 +29034,7 @@ stream << /Title 298 0 R /A 295 0 R -/Parent 285 0 R +/Parent 289 0 R /Prev 293 0 R /Next 301 0 R >> @@ -27599,40 +29042,40 @@ stream << /Title 294 0 R /A 291 0 R -/Parent 285 0 R -/Prev 289 0 R +/Parent 289 0 R /Next 297 0 R >> % 289 0 obj << /Title 290 0 R /A 287 0 R -/Parent 285 0 R -/Next 293 0 R +/Parent 4 0 R +/Prev 221 0 R +/Next 309 0 R +/First 293 0 R +/Last 305 0 R +/Count -4 >> % 285 0 obj << /Title 286 0 R /A 283 0 R -/Parent 4 0 R -/Prev 265 0 R -/Next 397 0 R -/First 289 0 R -/Last 393 0 R -/Count -27 +/Parent 221 0 R +/Prev 281 0 R >> % 281 0 obj << /Title 282 0 R /A 279 0 R -/Parent 265 0 R +/Parent 221 0 R /Prev 277 0 R +/Next 285 0 R >> % 277 0 obj << /Title 278 0 R /A 275 0 R -/Parent 265 0 R +/Parent 221 0 R /Prev 273 0 R /Next 281 0 R >> @@ -27640,7 +29083,7 @@ stream << /Title 274 0 R /A 271 0 R -/Parent 265 0 R +/Parent 221 0 R /Prev 269 0 R /Next 277 0 R >> @@ -27648,32 +29091,31 @@ stream << /Title 270 0 R /A 267 0 R -/Parent 265 0 R +/Parent 221 0 R +/Prev 265 0 R /Next 273 0 R >> % 265 0 obj << /Title 266 0 R /A 263 0 R -/Parent 4 0 R -/Prev 209 0 R -/Next 285 0 R -/First 269 0 R -/Last 281 0 R -/Count -4 +/Parent 221 0 R +/Prev 261 0 R +/Next 269 0 R >> % 261 0 obj << /Title 262 0 R /A 259 0 R -/Parent 209 0 R +/Parent 221 0 R /Prev 257 0 R +/Next 265 0 R >> % 257 0 obj << /Title 258 0 R /A 255 0 R -/Parent 209 0 R +/Parent 221 0 R /Prev 253 0 R /Next 261 0 R >> @@ -27681,7 +29123,7 @@ stream << /Title 254 0 R /A 251 0 R -/Parent 209 0 R +/Parent 221 0 R /Prev 249 0 R /Next 257 0 R >> @@ -27689,7 +29131,7 @@ stream << /Title 250 0 R /A 247 0 R -/Parent 209 0 R +/Parent 221 0 R /Prev 245 0 R /Next 253 0 R >> @@ -27697,7 +29139,7 @@ stream << /Title 246 0 R /A 243 0 R -/Parent 209 0 R +/Parent 221 0 R /Prev 241 0 R /Next 249 0 R >> @@ -27705,7 +29147,7 @@ stream << /Title 242 0 R /A 239 0 R -/Parent 209 0 R +/Parent 221 0 R /Prev 237 0 R /Next 245 0 R >> @@ -27713,7 +29155,7 @@ stream << /Title 238 0 R /A 235 0 R -/Parent 209 0 R +/Parent 221 0 R /Prev 233 0 R /Next 241 0 R >> @@ -27721,7 +29163,7 @@ stream << /Title 234 0 R /A 231 0 R -/Parent 209 0 R +/Parent 221 0 R /Prev 229 0 R /Next 237 0 R >> @@ -27729,7 +29171,7 @@ stream << /Title 230 0 R /A 227 0 R -/Parent 209 0 R +/Parent 221 0 R /Prev 225 0 R /Next 233 0 R >> @@ -27737,71 +29179,71 @@ stream << /Title 226 0 R /A 223 0 R -/Parent 209 0 R -/Prev 221 0 R +/Parent 221 0 R /Next 229 0 R >> % 221 0 obj << /Title 222 0 R /A 219 0 R -/Parent 209 0 R -/Prev 217 0 R -/Next 225 0 R +/Parent 4 0 R +/Prev 36 0 R +/Next 289 0 R +/First 225 0 R +/Last 285 0 R +/Count -16 >> % 217 0 obj << /Title 218 0 R /A 215 0 R -/Parent 209 0 R +/Parent 36 0 R /Prev 213 0 R -/Next 221 0 R >> % 213 0 obj << /Title 214 0 R /A 211 0 R -/Parent 209 0 R +/Parent 36 0 R +/Prev 184 0 R /Next 217 0 R >> % 209 0 obj << /Title 210 0 R /A 207 0 R -/Parent 4 0 R -/Prev 36 0 R -/Next 265 0 R -/First 213 0 R -/Last 261 0 R -/Count -13 +/Parent 184 0 R +/Prev 205 0 R >> % 205 0 obj << /Title 206 0 R /A 202 0 R -/Parent 36 0 R +/Parent 184 0 R /Prev 200 0 R +/Next 209 0 R >> % 200 0 obj << /Title 201 0 R /A 198 0 R -/Parent 36 0 R -/Prev 172 0 R +/Parent 184 0 R +/Prev 196 0 R /Next 205 0 R >> % 196 0 obj << /Title 197 0 R /A 194 0 R -/Parent 176 0 R +/Parent 184 0 R /Prev 192 0 R +/Next 200 0 R >> % 192 0 obj << /Title 193 0 R /A 190 0 R -/Parent 176 0 R +/Parent 184 0 R /Prev 188 0 R /Next 196 0 R >> @@ -27809,64 +29251,64 @@ stream << /Title 189 0 R /A 186 0 R -/Parent 176 0 R -/Prev 184 0 R +/Parent 184 0 R /Next 192 0 R >> % 184 0 obj << /Title 185 0 R /A 182 0 R -/Parent 176 0 R -/Prev 180 0 R -/Next 188 0 R +/Parent 36 0 R +/Prev 104 0 R +/Next 213 0 R +/First 188 0 R +/Last 209 0 R +/Count -6 >> % 180 0 obj << /Title 181 0 R /A 178 0 R -/Parent 176 0 R -/Next 184 0 R +/Parent 104 0 R +/Prev 176 0 R >> % 176 0 obj << /Title 177 0 R /A 174 0 R -/Parent 172 0 R -/First 180 0 R -/Last 196 0 R -/Count -5 +/Parent 104 0 R +/Prev 172 0 R +/Next 180 0 R >> % 172 0 obj << /Title 173 0 R /A 170 0 R -/Parent 36 0 R -/Prev 92 0 R -/Next 200 0 R -/First 176 0 R -/Last 176 0 R -/Count -1 +/Parent 104 0 R +/Prev 168 0 R +/Next 176 0 R >> % 168 0 obj << /Title 169 0 R /A 166 0 R -/Parent 92 0 R -/Prev 96 0 R +/Parent 104 0 R +/Prev 164 0 R +/Next 172 0 R >> % 164 0 obj << /Title 165 0 R /A 162 0 R -/Parent 96 0 R +/Parent 104 0 R /Prev 160 0 R +/Next 168 0 R >> % 160 0 obj << /Title 161 0 R /A 158 0 R -/Parent 96 0 R +/Parent 104 0 R /Prev 156 0 R /Next 164 0 R >> @@ -27874,7 +29316,7 @@ stream << /Title 157 0 R /A 154 0 R -/Parent 96 0 R +/Parent 104 0 R /Prev 152 0 R /Next 160 0 R >> @@ -27882,7 +29324,7 @@ stream << /Title 153 0 R /A 150 0 R -/Parent 96 0 R +/Parent 104 0 R /Prev 148 0 R /Next 156 0 R >> @@ -27890,7 +29332,7 @@ stream << /Title 149 0 R /A 146 0 R -/Parent 96 0 R +/Parent 104 0 R /Prev 144 0 R /Next 152 0 R >> @@ -27898,7 +29340,7 @@ stream << /Title 145 0 R /A 142 0 R -/Parent 96 0 R +/Parent 104 0 R /Prev 140 0 R /Next 148 0 R >> @@ -27906,7 +29348,7 @@ stream << /Title 141 0 R /A 138 0 R -/Parent 96 0 R +/Parent 104 0 R /Prev 136 0 R /Next 144 0 R >> @@ -27914,7 +29356,7 @@ stream << /Title 137 0 R /A 134 0 R -/Parent 96 0 R +/Parent 104 0 R /Prev 132 0 R /Next 140 0 R >> @@ -27922,7 +29364,7 @@ stream << /Title 133 0 R /A 130 0 R -/Parent 96 0 R +/Parent 104 0 R /Prev 128 0 R /Next 136 0 R >> @@ -27930,7 +29372,7 @@ stream << /Title 129 0 R /A 126 0 R -/Parent 96 0 R +/Parent 104 0 R /Prev 124 0 R /Next 132 0 R >> @@ -27938,7 +29380,7 @@ stream << /Title 125 0 R /A 122 0 R -/Parent 96 0 R +/Parent 104 0 R /Prev 120 0 R /Next 128 0 R >> @@ -27946,7 +29388,7 @@ stream << /Title 121 0 R /A 118 0 R -/Parent 96 0 R +/Parent 104 0 R /Prev 116 0 R /Next 124 0 R >> @@ -27954,7 +29396,7 @@ stream << /Title 117 0 R /A 114 0 R -/Parent 96 0 R +/Parent 104 0 R /Prev 112 0 R /Next 120 0 R >> @@ -27962,7 +29404,7 @@ stream << /Title 113 0 R /A 110 0 R -/Parent 96 0 R +/Parent 104 0 R /Prev 108 0 R /Next 116 0 R >> @@ -27970,86 +29412,64 @@ stream << /Title 109 0 R /A 106 0 R -/Parent 96 0 R -/Prev 104 0 R +/Parent 104 0 R /Next 112 0 R >> % 104 0 obj << /Title 105 0 R /A 102 0 R -/Parent 96 0 R -/Prev 100 0 R -/Next 108 0 R +/Parent 36 0 R +/Prev 40 0 R +/Next 184 0 R +/First 108 0 R +/Last 180 0 R +/Count -19 >> % 100 0 obj << /Title 101 0 R /A 98 0 R -/Parent 96 0 R -/Next 104 0 R +/Parent 40 0 R +/Prev 96 0 R >> % 96 0 obj << /Title 97 0 R /A 94 0 R -/Parent 92 0 R -/Next 168 0 R -/First 100 0 R -/Last 164 0 R -/Count -17 +/Parent 40 0 R +/Prev 92 0 R +/Next 100 0 R >> % 92 0 obj << /Title 93 0 R /A 90 0 R -/Parent 36 0 R -/Prev 40 0 R -/Next 172 0 R -/First 96 0 R -/Last 168 0 R -/Count -2 +/Parent 40 0 R +/Prev 88 0 R +/Next 96 0 R >> % 88 0 obj << /Title 89 0 R /A 86 0 R /Parent 40 0 R -/Prev 44 0 R +/Prev 84 0 R +/Next 92 0 R >> % 84 0 obj << /Title 85 0 R /A 82 0 R -/Parent 44 0 R +/Parent 40 0 R /Prev 80 0 R +/Next 88 0 R >> - -endstream -endobj -1921 0 obj -<< -/Type /ObjStm -/N 100 -/First 980 -/Length 17749 ->> -stream -80 0 76 82 72 164 68 246 64 328 60 410 56 492 52 574 48 656 44 725 -40 832 36 938 32 1058 28 1127 24 1183 20 1302 16 1384 12 1453 8 1570 4 1635 -1922 1728 1923 1924 1924 2097 1925 2277 1926 2454 1927 2631 1928 2811 1929 2984 1930 3149 1931 3315 -1932 3480 1933 3646 1934 3812 1935 3984 1936 4154 1937 4326 1938 4495 1939 4664 1940 4836 1941 5006 -1942 5178 1943 5348 1944 5520 1945 5703 1946 5913 1947 6127 1948 6331 1949 6516 1950 6704 1951 6932 -1952 7159 1953 7379 1954 7607 1955 7843 1956 8075 1957 8305 1958 8533 1959 8761 1960 8995 1961 9229 -1962 9463 1963 9691 1964 9864 1965 10044 1966 10221 1967 10398 1968 10578 1969 10756 1970 10936 1971 11114 -1972 11294 1973 11463 1974 11627 1975 11791 1976 11961 1977 12131 1978 12303 1979 12473 1980 12645 1981 12815 -1982 12987 1983 13157 1984 13329 1985 13498 1986 13667 1987 13839 1988 14008 1989 14193 1990 14399 1991 14603 -1992 14803 1993 14999 1994 15197 1995 15393 1996 15591 1997 15787 1998 15985 1999 16180 2000 16375 2001 16573 % 80 0 obj << /Title 81 0 R /A 78 0 R -/Parent 44 0 R +/Parent 40 0 R /Prev 76 0 R /Next 84 0 R >> @@ -28057,7 +29477,7 @@ stream << /Title 77 0 R /A 74 0 R -/Parent 44 0 R +/Parent 40 0 R /Prev 72 0 R /Next 80 0 R >> @@ -28065,7 +29485,7 @@ stream << /Title 73 0 R /A 70 0 R -/Parent 44 0 R +/Parent 40 0 R /Prev 68 0 R /Next 76 0 R >> @@ -28073,7 +29493,7 @@ stream << /Title 69 0 R /A 66 0 R -/Parent 44 0 R +/Parent 40 0 R /Prev 64 0 R /Next 72 0 R >> @@ -28081,7 +29501,7 @@ stream << /Title 65 0 R /A 62 0 R -/Parent 44 0 R +/Parent 40 0 R /Prev 60 0 R /Next 68 0 R >> @@ -28089,7 +29509,7 @@ stream << /Title 61 0 R /A 58 0 R -/Parent 44 0 R +/Parent 40 0 R /Prev 56 0 R /Next 64 0 R >> @@ -28097,7 +29517,7 @@ stream << /Title 57 0 R /A 54 0 R -/Parent 44 0 R +/Parent 40 0 R /Prev 52 0 R /Next 60 0 R >> @@ -28105,7 +29525,7 @@ stream << /Title 53 0 R /A 50 0 R -/Parent 44 0 R +/Parent 40 0 R /Prev 48 0 R /Next 56 0 R >> @@ -28113,7 +29533,8 @@ stream << /Title 49 0 R /A 46 0 R -/Parent 44 0 R +/Parent 40 0 R +/Prev 44 0 R /Next 52 0 R >> % 44 0 obj @@ -28121,20 +29542,17 @@ stream /Title 45 0 R /A 42 0 R /Parent 40 0 R -/Next 88 0 R -/First 48 0 R -/Last 84 0 R -/Count -10 +/Next 48 0 R >> % 40 0 obj << /Title 41 0 R /A 38 0 R /Parent 36 0 R -/Next 92 0 R +/Next 104 0 R /First 44 0 R -/Last 88 0 R -/Count -2 +/Last 100 0 R +/Count -15 >> % 36 0 obj << @@ -28142,9 +29560,9 @@ stream /A 34 0 R /Parent 4 0 R /Prev 12 0 R -/Next 209 0 R +/Next 221 0 R /First 40 0 R -/Last 205 0 R +/Last 217 0 R /Count -5 >> % 32 0 obj @@ -28186,6 +29604,27 @@ stream /Parent 12 0 R /Next 20 0 R >> + +endstream +endobj +2011 0 obj +<< +/Type /ObjStm +/N 100 +/First 1029 +/Length 20277 +>> +stream +12 0 8 117 4 182 2012 275 2013 471 2014 644 2015 824 2016 1001 2017 1178 2018 1358 +2019 1531 2020 1696 2021 1862 2022 2027 2023 2193 2024 2359 2025 2531 2026 2701 2027 2873 2028 3042 +2029 3211 2030 3383 2031 3553 2032 3725 2033 3895 2034 4067 2035 4250 2036 4460 2037 4674 2038 4878 +2039 5063 2040 5252 2041 5480 2042 5707 2043 5927 2044 6155 2045 6391 2046 6623 2047 6853 2048 7081 +2049 7309 2050 7543 2051 7777 2052 8011 2053 8239 2054 8412 2055 8592 2056 8769 2057 8946 2058 9126 +2059 9304 2060 9484 2061 9662 2062 9842 2063 10020 2064 10191 2065 10355 2066 10522 2067 10694 2068 10864 +2069 11036 2070 11206 2071 11378 2072 11548 2073 11720 2074 11890 2075 12062 2076 12231 2077 12400 2078 12572 +2079 12741 2080 12920 2081 13103 2082 13280 2083 13510 2084 13729 2085 13953 2086 14183 2087 14405 2088 14627 +2089 14855 2090 15083 2091 15313 2092 15538 2093 15763 2094 15993 2095 16215 2096 16437 2097 16659 2098 16920 +2099 17179 2100 17439 2101 17709 2102 17975 2103 18237 2104 18476 2105 18656 2106 18835 2107 19007 2108 19134 % 12 0 obj << /Title 13 0 R @@ -28208,671 +29647,681 @@ stream << /Title 5 0 R /A 1 0 R -/Parent 1919 0 R +/Parent 2009 0 R /First 8 0 R -/Last 546 0 R +/Last 570 0 R /Count -11 >> -% 1922 0 obj +% 2012 0 obj << -/Names [(Doc-Start) 557 0 R (Hfootnote.1) 774 0 R (Hfootnote.2) 776 0 R (Hfootnote.3) 829 0 R (Hfootnote.4) 1768 0 R (Hfootnote.5) 1820 0 R] +/Names [(Doc-Start) 581 0 R (Hfootnote.1) 816 0 R (Hfootnote.2) 818 0 R (Hfootnote.3) 872 0 R (Hfootnote.4) 1858 0 R (Hfootnote.5) 1910 0 R] /Limits [(Doc-Start) (Hfootnote.5)] >> -% 1923 0 obj +% 2013 0 obj << -/Names [(Item.1) 803 0 R (Item.10) 817 0 R (Item.100) 1542 0 R (Item.101) 1543 0 R (Item.102) 1544 0 R (Item.103) 1545 0 R] +/Names [(Item.1) 846 0 R (Item.10) 860 0 R (Item.100) 1632 0 R (Item.101) 1633 0 R (Item.102) 1634 0 R (Item.103) 1635 0 R] /Limits [(Item.1) (Item.103)] >> -% 1924 0 obj +% 2014 0 obj << -/Names [(Item.104) 1546 0 R (Item.105) 1547 0 R (Item.106) 1548 0 R (Item.107) 1558 0 R (Item.108) 1559 0 R (Item.109) 1565 0 R] +/Names [(Item.104) 1636 0 R (Item.105) 1637 0 R (Item.106) 1638 0 R (Item.107) 1648 0 R (Item.108) 1649 0 R (Item.109) 1654 0 R] /Limits [(Item.104) (Item.109)] >> -% 1925 0 obj +% 2015 0 obj << -/Names [(Item.11) 818 0 R (Item.110) 1566 0 R (Item.111) 1571 0 R (Item.112) 1572 0 R (Item.113) 1573 0 R (Item.114) 1603 0 R] +/Names [(Item.11) 861 0 R (Item.110) 1655 0 R (Item.111) 1660 0 R (Item.112) 1661 0 R (Item.113) 1662 0 R (Item.114) 1693 0 R] /Limits [(Item.11) (Item.114)] >> -% 1926 0 obj +% 2016 0 obj << -/Names [(Item.115) 1604 0 R (Item.116) 1609 0 R (Item.117) 1610 0 R (Item.118) 1615 0 R (Item.119) 1616 0 R (Item.12) 819 0 R] +/Names [(Item.115) 1694 0 R (Item.116) 1699 0 R (Item.117) 1700 0 R (Item.118) 1705 0 R (Item.119) 1706 0 R (Item.12) 862 0 R] /Limits [(Item.115) (Item.12)] >> -% 1927 0 obj +% 2017 0 obj << -/Names [(Item.120) 1622 0 R (Item.121) 1623 0 R (Item.122) 1628 0 R (Item.123) 1629 0 R (Item.124) 1634 0 R (Item.125) 1635 0 R] +/Names [(Item.120) 1712 0 R (Item.121) 1713 0 R (Item.122) 1718 0 R (Item.123) 1719 0 R (Item.124) 1724 0 R (Item.125) 1725 0 R] /Limits [(Item.120) (Item.125)] >> -% 1928 0 obj +% 2018 0 obj << -/Names [(Item.126) 1637 0 R (Item.127) 1642 0 R (Item.128) 1647 0 R (Item.13) 820 0 R (Item.14) 821 0 R (Item.15) 822 0 R] +/Names [(Item.126) 1727 0 R (Item.127) 1732 0 R (Item.128) 1737 0 R (Item.13) 863 0 R (Item.14) 864 0 R (Item.15) 865 0 R] /Limits [(Item.126) (Item.15)] >> -% 1929 0 obj +% 2019 0 obj << -/Names [(Item.16) 823 0 R (Item.17) 824 0 R (Item.18) 825 0 R (Item.19) 826 0 R (Item.2) 804 0 R (Item.20) 827 0 R] +/Names [(Item.16) 866 0 R (Item.17) 867 0 R (Item.18) 868 0 R (Item.19) 869 0 R (Item.2) 847 0 R (Item.20) 870 0 R] /Limits [(Item.16) (Item.20)] >> -% 1930 0 obj +% 2020 0 obj << -/Names [(Item.21) 828 0 R (Item.22) 838 0 R (Item.23) 839 0 R (Item.24) 840 0 R (Item.25) 841 0 R (Item.26) 842 0 R] +/Names [(Item.21) 871 0 R (Item.22) 880 0 R (Item.23) 881 0 R (Item.24) 882 0 R (Item.25) 883 0 R (Item.26) 884 0 R] /Limits [(Item.21) (Item.26)] >> -% 1931 0 obj +% 2021 0 obj << -/Names [(Item.27) 843 0 R (Item.28) 857 0 R (Item.29) 858 0 R (Item.3) 805 0 R (Item.30) 859 0 R (Item.31) 860 0 R] +/Names [(Item.27) 885 0 R (Item.28) 899 0 R (Item.29) 900 0 R (Item.3) 848 0 R (Item.30) 901 0 R (Item.31) 902 0 R] /Limits [(Item.27) (Item.31)] >> -% 1932 0 obj +% 2022 0 obj << -/Names [(Item.32) 861 0 R (Item.33) 868 0 R (Item.34) 869 0 R (Item.35) 870 0 R (Item.36) 871 0 R (Item.37) 872 0 R] +/Names [(Item.32) 903 0 R (Item.33) 910 0 R (Item.34) 911 0 R (Item.35) 912 0 R (Item.36) 913 0 R (Item.37) 914 0 R] /Limits [(Item.32) (Item.37)] >> -% 1933 0 obj +% 2023 0 obj << -/Names [(Item.38) 873 0 R (Item.39) 874 0 R (Item.4) 806 0 R (Item.40) 875 0 R (Item.41) 912 0 R (Item.42) 1005 0 R] +/Names [(Item.38) 915 0 R (Item.39) 916 0 R (Item.4) 849 0 R (Item.40) 917 0 R (Item.41) 959 0 R (Item.42) 1052 0 R] /Limits [(Item.38) (Item.42)] >> -% 1934 0 obj +% 2024 0 obj << -/Names [(Item.43) 1039 0 R (Item.44) 1066 0 R (Item.45) 1096 0 R (Item.46) 1232 0 R (Item.47) 1233 0 R (Item.48) 1234 0 R] +/Names [(Item.43) 1085 0 R (Item.44) 1112 0 R (Item.45) 1144 0 R (Item.46) 1322 0 R (Item.47) 1323 0 R (Item.48) 1324 0 R] /Limits [(Item.43) (Item.48)] >> -% 1935 0 obj +% 2025 0 obj << -/Names [(Item.49) 1293 0 R (Item.5) 807 0 R (Item.50) 1299 0 R (Item.51) 1304 0 R (Item.52) 1305 0 R (Item.53) 1306 0 R] +/Names [(Item.49) 1383 0 R (Item.5) 850 0 R (Item.50) 1389 0 R (Item.51) 1394 0 R (Item.52) 1395 0 R (Item.53) 1396 0 R] /Limits [(Item.49) (Item.53)] >> -% 1936 0 obj +% 2026 0 obj << -/Names [(Item.54) 1307 0 R (Item.55) 1308 0 R (Item.56) 1320 0 R (Item.57) 1321 0 R (Item.58) 1322 0 R (Item.59) 1329 0 R] +/Names [(Item.54) 1397 0 R (Item.55) 1398 0 R (Item.56) 1410 0 R (Item.57) 1411 0 R (Item.58) 1412 0 R (Item.59) 1419 0 R] /Limits [(Item.54) (Item.59)] >> -% 1937 0 obj +% 2027 0 obj << -/Names [(Item.6) 808 0 R (Item.60) 1353 0 R (Item.61) 1354 0 R (Item.62) 1361 0 R (Item.63) 1362 0 R (Item.64) 1363 0 R] +/Names [(Item.6) 851 0 R (Item.60) 1442 0 R (Item.61) 1443 0 R (Item.62) 1450 0 R (Item.63) 1451 0 R (Item.64) 1452 0 R] /Limits [(Item.6) (Item.64)] >> -% 1938 0 obj +% 2028 0 obj << -/Names [(Item.65) 1375 0 R (Item.66) 1376 0 R (Item.67) 1377 0 R (Item.68) 1378 0 R (Item.69) 1379 0 R (Item.7) 809 0 R] +/Names [(Item.65) 1464 0 R (Item.66) 1465 0 R (Item.67) 1466 0 R (Item.68) 1467 0 R (Item.69) 1468 0 R (Item.7) 852 0 R] /Limits [(Item.65) (Item.7)] >> -% 1939 0 obj +% 2029 0 obj << -/Names [(Item.70) 1384 0 R (Item.71) 1385 0 R (Item.72) 1386 0 R (Item.73) 1387 0 R (Item.74) 1388 0 R (Item.75) 1389 0 R] +/Names [(Item.70) 1474 0 R (Item.71) 1475 0 R (Item.72) 1476 0 R (Item.73) 1477 0 R (Item.74) 1478 0 R (Item.75) 1479 0 R] /Limits [(Item.70) (Item.75)] >> -% 1940 0 obj +% 2030 0 obj << -/Names [(Item.76) 1401 0 R (Item.77) 1402 0 R (Item.78) 1403 0 R (Item.79) 1404 0 R (Item.8) 810 0 R (Item.80) 1405 0 R] +/Names [(Item.76) 1491 0 R (Item.77) 1492 0 R (Item.78) 1493 0 R (Item.79) 1494 0 R (Item.8) 853 0 R (Item.80) 1495 0 R] /Limits [(Item.76) (Item.80)] >> -% 1941 0 obj +% 2031 0 obj << -/Names [(Item.81) 1406 0 R (Item.82) 1419 0 R (Item.83) 1436 0 R (Item.84) 1437 0 R (Item.85) 1466 0 R (Item.86) 1467 0 R] +/Names [(Item.81) 1496 0 R (Item.82) 1509 0 R (Item.83) 1526 0 R (Item.84) 1527 0 R (Item.85) 1555 0 R (Item.86) 1556 0 R] /Limits [(Item.81) (Item.86)] >> -% 1942 0 obj +% 2032 0 obj << -/Names [(Item.87) 1479 0 R (Item.88) 1485 0 R (Item.89) 1491 0 R (Item.9) 816 0 R (Item.90) 1497 0 R (Item.91) 1503 0 R] +/Names [(Item.87) 1568 0 R (Item.88) 1575 0 R (Item.89) 1581 0 R (Item.9) 859 0 R (Item.90) 1587 0 R (Item.91) 1593 0 R] /Limits [(Item.87) (Item.91)] >> -% 1943 0 obj +% 2033 0 obj << -/Names [(Item.92) 1504 0 R (Item.93) 1510 0 R (Item.94) 1511 0 R (Item.95) 1522 0 R (Item.96) 1523 0 R (Item.97) 1524 0 R] +/Names [(Item.92) 1594 0 R (Item.93) 1600 0 R (Item.94) 1601 0 R (Item.95) 1612 0 R (Item.96) 1613 0 R (Item.97) 1614 0 R] /Limits [(Item.92) (Item.97)] >> -% 1944 0 obj +% 2034 0 obj << -/Names [(Item.98) 1540 0 R (Item.99) 1541 0 R (cite.2007c) 789 0 R (cite.2007d) 790 0 R (cite.BLACS) 762 0 R (cite.BLAS1) 744 0 R] +/Names [(Item.98) 1630 0 R (Item.99) 1631 0 R (cite.2007c) 831 0 R (cite.2007d) 833 0 R (cite.BLACS) 804 0 R (cite.BLAS1) 786 0 R] /Limits [(Item.98) (cite.BLAS1)] >> -% 1945 0 obj +% 2035 0 obj << -/Names [(cite.BLAS2) 745 0 R (cite.BLAS3) 746 0 R (cite.DesPat:11) 739 0 R (cite.DesignPatterns) 902 0 R (cite.KIVA3PSBLAS) 1846 0 R (cite.METIS) 777 0 R] +/Names [(cite.BLAS2) 787 0 R (cite.BLAS3) 788 0 R (cite.DesPat:11) 781 0 R (cite.DesignPatterns) 949 0 R (cite.KIVA3PSBLAS) 1936 0 R (cite.METIS) 819 0 R] /Limits [(cite.BLAS2) (cite.METIS)] >> -% 1946 0 obj +% 2036 0 obj << -/Names [(cite.MPI1) 1851 0 R (cite.PARA04FOREST) 1844 0 R (cite.PSBLAS) 1845 0 R (cite.RouXiaXu:11) 740 0 R (cite.Sparse03) 738 0 R (cite.machiels) 741 0 R] +/Names [(cite.MPI1) 1941 0 R (cite.PARA04FOREST) 1934 0 R (cite.PSBLAS) 1935 0 R (cite.RouXiaXu:11) 782 0 R (cite.Sparse03) 780 0 R (cite.machiels) 783 0 R] /Limits [(cite.MPI1) (cite.machiels)] >> -% 1947 0 obj +% 2037 0 obj << -/Names [(cite.metcalf) 737 0 R (cite.sblas02) 743 0 R (cite.sblas97) 742 0 R (descdata) 849 0 R (equation.4.1) 1136 0 R (equation.4.2) 1137 0 R] +/Names [(cite.metcalf) 779 0 R (cite.sblas02) 785 0 R (cite.sblas97) 784 0 R (descdata) 891 0 R (equation.4.1) 1182 0 R (equation.4.2) 1183 0 R] /Limits [(cite.metcalf) (equation.4.2)] >> -% 1948 0 obj +% 2038 0 obj << -/Names [(equation.4.3) 1138 0 R (figure.1) 756 0 R (figure.10) 1656 0 R (figure.2) 785 0 R (figure.3) 876 0 R (figure.4) 903 0 R] +/Names [(equation.4.3) 1184 0 R (figure.1) 798 0 R (figure.10) 1746 0 R (figure.2) 827 0 R (figure.3) 918 0 R (figure.4) 950 0 R] /Limits [(equation.4.3) (figure.4)] >> -% 1949 0 obj +% 2039 0 obj << -/Names [(figure.5) 942 0 R (figure.6) 962 0 R (figure.7) 1198 0 R (figure.8) 1235 0 R (figure.9) 1655 0 R (lstlisting.-1) 1006 0 R] +/Names [(figure.5) 988 0 R (figure.6) 1008 0 R (figure.7) 1288 0 R (figure.8) 1325 0 R (figure.9) 1745 0 R (lstlisting.-1) 1053 0 R] /Limits [(figure.5) (lstlisting.-1)] >> -% 1950 0 obj +% 2040 0 obj << -/Names [(lstlisting.-10) 1692 0 R (lstlisting.-11) 1698 0 R (lstlisting.-12) 1704 0 R (lstlisting.-13) 1710 0 R (lstlisting.-14) 1722 0 R (lstlisting.-15) 1729 0 R] +/Names [(lstlisting.-10) 1781 0 R (lstlisting.-11) 1788 0 R (lstlisting.-12) 1794 0 R (lstlisting.-13) 1800 0 R (lstlisting.-14) 1812 0 R (lstlisting.-15) 1819 0 R] /Limits [(lstlisting.-10) (lstlisting.-15)] >> -% 1951 0 obj +% 2041 0 obj << -/Names [(lstlisting.-16) 1736 0 R (lstlisting.-17) 1742 0 R (lstlisting.-18) 1749 0 R (lstlisting.-19) 1755 0 R (lstlisting.-2) 1040 0 R (lstlisting.-20) 1817 0 R] +/Names [(lstlisting.-16) 1826 0 R (lstlisting.-17) 1832 0 R (lstlisting.-18) 1839 0 R (lstlisting.-19) 1845 0 R (lstlisting.-2) 1086 0 R (lstlisting.-20) 1907 0 R] /Limits [(lstlisting.-16) (lstlisting.-20)] >> -% 1952 0 obj +% 2042 0 obj << -/Names [(lstlisting.-3) 1067 0 R (lstlisting.-4) 1097 0 R (lstlisting.-5) 1189 0 R (lstlisting.-6) 1221 0 R (lstlisting.-7) 1261 0 R (lstlisting.-8) 1276 0 R] +/Names [(lstlisting.-3) 1113 0 R (lstlisting.-4) 1145 0 R (lstlisting.-5) 1279 0 R (lstlisting.-6) 1311 0 R (lstlisting.-7) 1350 0 R (lstlisting.-8) 1366 0 R] /Limits [(lstlisting.-3) (lstlisting.-8)] >> -% 1953 0 obj +% 2043 0 obj << -/Names [(lstlisting.-9) 1661 0 R (lstnumber.-1.1) 1007 0 R (lstnumber.-1.2) 1008 0 R (lstnumber.-1.3) 1009 0 R (lstnumber.-1.4) 1010 0 R (lstnumber.-10.1) 1693 0 R] +/Names [(lstlisting.-9) 1751 0 R (lstnumber.-1.1) 1054 0 R (lstnumber.-1.2) 1055 0 R (lstnumber.-1.3) 1056 0 R (lstnumber.-1.4) 1057 0 R (lstnumber.-10.1) 1782 0 R] /Limits [(lstlisting.-9) (lstnumber.-10.1)] >> -% 1954 0 obj +% 2044 0 obj << -/Names [(lstnumber.-11.1) 1699 0 R (lstnumber.-12.1) 1705 0 R (lstnumber.-13.1) 1711 0 R (lstnumber.-14.1) 1723 0 R (lstnumber.-15.1) 1730 0 R (lstnumber.-16.1) 1737 0 R] +/Names [(lstnumber.-11.1) 1789 0 R (lstnumber.-12.1) 1795 0 R (lstnumber.-13.1) 1801 0 R (lstnumber.-14.1) 1813 0 R (lstnumber.-15.1) 1820 0 R (lstnumber.-16.1) 1827 0 R] /Limits [(lstnumber.-11.1) (lstnumber.-16.1)] >> -% 1955 0 obj +% 2045 0 obj << -/Names [(lstnumber.-17.1) 1743 0 R (lstnumber.-18.1) 1750 0 R (lstnumber.-19.1) 1756 0 R (lstnumber.-2.1) 1041 0 R (lstnumber.-2.2) 1042 0 R (lstnumber.-2.3) 1043 0 R] +/Names [(lstnumber.-17.1) 1833 0 R (lstnumber.-18.1) 1840 0 R (lstnumber.-19.1) 1846 0 R (lstnumber.-2.1) 1087 0 R (lstnumber.-2.2) 1088 0 R (lstnumber.-2.3) 1089 0 R] /Limits [(lstnumber.-17.1) (lstnumber.-2.3)] >> -% 1956 0 obj +% 2046 0 obj << -/Names [(lstnumber.-2.4) 1044 0 R (lstnumber.-20.1) 1818 0 R (lstnumber.-20.2) 1819 0 R (lstnumber.-3.1) 1068 0 R (lstnumber.-3.2) 1069 0 R (lstnumber.-3.3) 1070 0 R] +/Names [(lstnumber.-2.4) 1090 0 R (lstnumber.-20.1) 1908 0 R (lstnumber.-20.2) 1909 0 R (lstnumber.-3.1) 1114 0 R (lstnumber.-3.2) 1115 0 R (lstnumber.-3.3) 1116 0 R] /Limits [(lstnumber.-2.4) (lstnumber.-3.3)] >> -% 1957 0 obj +% 2047 0 obj << -/Names [(lstnumber.-3.4) 1071 0 R (lstnumber.-4.1) 1098 0 R (lstnumber.-4.2) 1099 0 R (lstnumber.-4.3) 1100 0 R (lstnumber.-4.4) 1101 0 R (lstnumber.-5.1) 1190 0 R] +/Names [(lstnumber.-3.4) 1117 0 R (lstnumber.-4.1) 1146 0 R (lstnumber.-4.2) 1147 0 R (lstnumber.-4.3) 1148 0 R (lstnumber.-4.4) 1149 0 R (lstnumber.-5.1) 1280 0 R] /Limits [(lstnumber.-3.4) (lstnumber.-5.1)] >> -% 1958 0 obj +% 2048 0 obj << -/Names [(lstnumber.-5.2) 1191 0 R (lstnumber.-6.1) 1222 0 R (lstnumber.-6.2) 1223 0 R (lstnumber.-7.1) 1262 0 R (lstnumber.-7.2) 1263 0 R (lstnumber.-8.1) 1277 0 R] +/Names [(lstnumber.-5.2) 1281 0 R (lstnumber.-6.1) 1312 0 R (lstnumber.-6.2) 1313 0 R (lstnumber.-7.1) 1351 0 R (lstnumber.-7.2) 1352 0 R (lstnumber.-8.1) 1367 0 R] /Limits [(lstnumber.-5.2) (lstnumber.-8.1)] >> -% 1959 0 obj +% 2049 0 obj << -/Names [(lstnumber.-9.1) 1662 0 R (lstnumber.-9.10) 1672 0 R (lstnumber.-9.11) 1673 0 R (lstnumber.-9.12) 1674 0 R (lstnumber.-9.13) 1675 0 R (lstnumber.-9.14) 1676 0 R] +/Names [(lstnumber.-9.1) 1752 0 R (lstnumber.-9.10) 1762 0 R (lstnumber.-9.11) 1763 0 R (lstnumber.-9.12) 1764 0 R (lstnumber.-9.13) 1765 0 R (lstnumber.-9.14) 1766 0 R] /Limits [(lstnumber.-9.1) (lstnumber.-9.14)] >> -% 1960 0 obj +% 2050 0 obj << -/Names [(lstnumber.-9.15) 1677 0 R (lstnumber.-9.16) 1678 0 R (lstnumber.-9.17) 1679 0 R (lstnumber.-9.18) 1680 0 R (lstnumber.-9.19) 1681 0 R (lstnumber.-9.2) 1664 0 R] +/Names [(lstnumber.-9.15) 1767 0 R (lstnumber.-9.16) 1768 0 R (lstnumber.-9.17) 1769 0 R (lstnumber.-9.18) 1770 0 R (lstnumber.-9.19) 1771 0 R (lstnumber.-9.2) 1754 0 R] /Limits [(lstnumber.-9.15) (lstnumber.-9.2)] >> -% 1961 0 obj +% 2051 0 obj << -/Names [(lstnumber.-9.20) 1682 0 R (lstnumber.-9.21) 1683 0 R (lstnumber.-9.22) 1684 0 R (lstnumber.-9.23) 1685 0 R (lstnumber.-9.24) 1686 0 R (lstnumber.-9.3) 1665 0 R] +/Names [(lstnumber.-9.20) 1772 0 R (lstnumber.-9.21) 1773 0 R (lstnumber.-9.22) 1774 0 R (lstnumber.-9.23) 1775 0 R (lstnumber.-9.24) 1776 0 R (lstnumber.-9.3) 1755 0 R] /Limits [(lstnumber.-9.20) (lstnumber.-9.3)] >> -% 1962 0 obj +% 2052 0 obj << -/Names [(lstnumber.-9.4) 1666 0 R (lstnumber.-9.5) 1667 0 R (lstnumber.-9.6) 1668 0 R (lstnumber.-9.7) 1669 0 R (lstnumber.-9.8) 1670 0 R (lstnumber.-9.9) 1671 0 R] +/Names [(lstnumber.-9.4) 1756 0 R (lstnumber.-9.5) 1757 0 R (lstnumber.-9.6) 1758 0 R (lstnumber.-9.7) 1759 0 R (lstnumber.-9.8) 1760 0 R (lstnumber.-9.9) 1761 0 R] /Limits [(lstnumber.-9.4) (lstnumber.-9.9)] >> -% 1963 0 obj +% 2053 0 obj << -/Names [(page.1) 556 0 R (page.10) 856 0 R (page.100) 1531 0 R (page.101) 1535 0 R (page.102) 1539 0 R (page.103) 1552 0 R] +/Names [(page.1) 580 0 R (page.10) 898 0 R (page.100) 1580 0 R (page.101) 1586 0 R (page.102) 1592 0 R (page.103) 1599 0 R] /Limits [(page.1) (page.103)] >> -% 1964 0 obj +% 2054 0 obj << -/Names [(page.104) 1557 0 R (page.105) 1564 0 R (page.106) 1570 0 R (page.107) 1577 0 R (page.108) 1581 0 R (page.109) 1585 0 R] +/Names [(page.104) 1607 0 R (page.105) 1611 0 R (page.106) 1621 0 R (page.107) 1625 0 R (page.108) 1629 0 R (page.109) 1642 0 R] /Limits [(page.104) (page.109)] >> -% 1965 0 obj +% 2055 0 obj << -/Names [(page.11) 867 0 R (page.110) 1590 0 R (page.111) 1594 0 R (page.112) 1598 0 R (page.113) 1602 0 R (page.114) 1608 0 R] +/Names [(page.11) 909 0 R (page.110) 1647 0 R (page.111) 1653 0 R (page.112) 1659 0 R (page.113) 1666 0 R (page.114) 1670 0 R] /Limits [(page.11) (page.114)] >> -% 1966 0 obj +% 2056 0 obj << -/Names [(page.115) 1614 0 R (page.116) 1621 0 R (page.117) 1627 0 R (page.118) 1633 0 R (page.119) 1641 0 R (page.12) 882 0 R] +/Names [(page.115) 1674 0 R (page.116) 1680 0 R (page.117) 1684 0 R (page.118) 1688 0 R (page.119) 1692 0 R (page.12) 924 0 R] /Limits [(page.115) (page.12)] >> -% 1967 0 obj +% 2057 0 obj << -/Names [(page.120) 1646 0 R (page.121) 1653 0 R (page.122) 1660 0 R (page.123) 1691 0 R (page.124) 1697 0 R (page.125) 1703 0 R] +/Names [(page.120) 1698 0 R (page.121) 1704 0 R (page.122) 1711 0 R (page.123) 1717 0 R (page.124) 1723 0 R (page.125) 1731 0 R] /Limits [(page.120) (page.125)] >> -% 1968 0 obj +% 2058 0 obj << -/Names [(page.126) 1709 0 R (page.127) 1715 0 R (page.128) 1721 0 R (page.129) 1728 0 R (page.13) 886 0 R (page.130) 1735 0 R] +/Names [(page.126) 1736 0 R (page.127) 1743 0 R (page.128) 1750 0 R (page.129) 1780 0 R (page.13) 928 0 R (page.130) 1787 0 R] /Limits [(page.126) (page.130)] >> -% 1969 0 obj +% 2059 0 obj << -/Names [(page.131) 1741 0 R (page.132) 1748 0 R (page.133) 1754 0 R (page.134) 1761 0 R (page.135) 1767 0 R (page.136) 1777 0 R] +/Names [(page.131) 1793 0 R (page.132) 1799 0 R (page.133) 1805 0 R (page.134) 1811 0 R (page.135) 1818 0 R (page.136) 1825 0 R] /Limits [(page.131) (page.136)] >> -% 1970 0 obj +% 2060 0 obj << -/Names [(page.137) 1781 0 R (page.138) 1789 0 R (page.139) 1794 0 R (page.14) 891 0 R (page.140) 1799 0 R (page.141) 1805 0 R] +/Names [(page.137) 1831 0 R (page.138) 1838 0 R (page.139) 1844 0 R (page.14) 933 0 R (page.140) 1851 0 R (page.141) 1857 0 R] /Limits [(page.137) (page.141)] >> -% 1971 0 obj +% 2061 0 obj << -/Names [(page.142) 1809 0 R (page.143) 1816 0 R (page.144) 1828 0 R (page.145) 1833 0 R (page.146) 1838 0 R (page.147) 1842 0 R] +/Names [(page.142) 1866 0 R (page.143) 1870 0 R (page.144) 1878 0 R (page.145) 1883 0 R (page.146) 1889 0 R (page.147) 1895 0 R] /Limits [(page.142) (page.147)] >> -% 1972 0 obj +% 2062 0 obj << -/Names [(page.148) 1850 0 R (page.15) 899 0 R (page.16) 907 0 R (page.17) 911 0 R (page.18) 917 0 R (page.19) 921 0 R] -/Limits [(page.148) (page.19)] +/Names [(page.148) 1899 0 R (page.149) 1906 0 R (page.15) 939 0 R (page.150) 1918 0 R (page.151) 1923 0 R (page.152) 1928 0 R] +/Limits [(page.148) (page.152)] >> -% 1973 0 obj +% 2063 0 obj +<< +/Names [(page.153) 1932 0 R (page.154) 1940 0 R (page.16) 946 0 R (page.17) 954 0 R (page.18) 958 0 R (page.19) 963 0 R] +/Limits [(page.153) (page.19)] +>> +% 2064 0 obj << -/Names [(page.2) 566 0 R (page.20) 926 0 R (page.21) 930 0 R (page.22) 934 0 R (page.23) 940 0 R (page.24) 946 0 R] +/Names [(page.2) 590 0 R (page.20) 968 0 R (page.21) 972 0 R (page.22) 976 0 R (page.23) 980 0 R (page.24) 986 0 R] /Limits [(page.2) (page.24)] >> -% 1974 0 obj +% 2065 0 obj << -/Names [(page.25) 952 0 R (page.26) 960 0 R (page.27) 966 0 R (page.28) 971 0 R (page.29) 982 0 R (page.3) 768 0 R] +/Names [(page.25) 992 0 R (page.26) 999 0 R (page.27) 1006 0 R (page.28) 1012 0 R (page.29) 1017 0 R (page.3) 810 0 R] /Limits [(page.25) (page.3)] >> -% 1975 0 obj +% 2066 0 obj << -/Names [(page.30) 988 0 R (page.31) 997 0 R (page.32) 1004 0 R (page.33) 1021 0 R (page.34) 1026 0 R (page.35) 1033 0 R] +/Names [(page.30) 1029 0 R (page.31) 1035 0 R (page.32) 1045 0 R (page.33) 1051 0 R (page.34) 1067 0 R (page.35) 1072 0 R] /Limits [(page.30) (page.35)] >> -% 1976 0 obj +% 2067 0 obj << -/Names [(page.36) 1038 0 R (page.37) 1051 0 R (page.38) 1060 0 R (page.39) 1065 0 R (page.4) 784 0 R (page.40) 1078 0 R] +/Names [(page.36) 1079 0 R (page.37) 1084 0 R (page.38) 1098 0 R (page.39) 1106 0 R (page.4) 826 0 R (page.40) 1111 0 R] /Limits [(page.36) (page.40)] >> -% 1977 0 obj +% 2068 0 obj << -/Names [(page.41) 1083 0 R (page.42) 1090 0 R (page.43) 1095 0 R (page.44) 1109 0 R (page.45) 1116 0 R (page.46) 1124 0 R] +/Names [(page.41) 1124 0 R (page.42) 1130 0 R (page.43) 1137 0 R (page.44) 1143 0 R (page.45) 1156 0 R (page.46) 1163 0 R] /Limits [(page.41) (page.46)] >> -% 1978 0 obj +% 2069 0 obj << -/Names [(page.47) 1135 0 R (page.48) 1150 0 R (page.49) 1156 0 R (page.5) 796 0 R (page.50) 1168 0 R (page.51) 1174 0 R] +/Names [(page.47) 1170 0 R (page.48) 1181 0 R (page.49) 1196 0 R (page.5) 839 0 R (page.50) 1203 0 R (page.51) 1214 0 R] /Limits [(page.47) (page.51)] >> -% 1979 0 obj +% 2070 0 obj << -/Names [(page.52) 1179 0 R (page.53) 1187 0 R (page.54) 1197 0 R (page.55) 1210 0 R (page.56) 1219 0 R (page.57) 1231 0 R] +/Names [(page.52) 1220 0 R (page.53) 1231 0 R (page.54) 1237 0 R (page.55) 1248 0 R (page.56) 1254 0 R (page.57) 1263 0 R] /Limits [(page.52) (page.57)] >> -% 1980 0 obj +% 2071 0 obj << -/Names [(page.58) 1240 0 R (page.59) 1244 0 R (page.6) 801 0 R (page.60) 1259 0 R (page.61) 1267 0 R (page.62) 1274 0 R] +/Names [(page.58) 1269 0 R (page.59) 1277 0 R (page.6) 844 0 R (page.60) 1287 0 R (page.61) 1300 0 R (page.62) 1309 0 R] /Limits [(page.58) (page.62)] >> -% 1981 0 obj +% 2072 0 obj << -/Names [(page.63) 1283 0 R (page.64) 1287 0 R (page.65) 1292 0 R (page.66) 1298 0 R (page.67) 1303 0 R (page.68) 1314 0 R] +/Names [(page.63) 1321 0 R (page.64) 1329 0 R (page.65) 1333 0 R (page.66) 1348 0 R (page.67) 1357 0 R (page.68) 1364 0 R] /Limits [(page.63) (page.68)] >> -% 1982 0 obj +% 2073 0 obj << -/Names [(page.69) 1319 0 R (page.7) 815 0 R (page.70) 1328 0 R (page.71) 1335 0 R (page.72) 1340 0 R (page.73) 1346 0 R] +/Names [(page.69) 1373 0 R (page.7) 858 0 R (page.70) 1377 0 R (page.71) 1382 0 R (page.72) 1388 0 R (page.73) 1393 0 R] /Limits [(page.69) (page.73)] >> -% 1983 0 obj +% 2074 0 obj << -/Names [(page.74) 1352 0 R (page.75) 1360 0 R (page.76) 1368 0 R (page.77) 1374 0 R (page.78) 1383 0 R (page.79) 1395 0 R] +/Names [(page.74) 1404 0 R (page.75) 1409 0 R (page.76) 1418 0 R (page.77) 1425 0 R (page.78) 1430 0 R (page.79) 1436 0 R] /Limits [(page.74) (page.79)] >> -% 1984 0 obj +% 2075 0 obj << -/Names [(page.8) 837 0 R (page.80) 1400 0 R (page.81) 1412 0 R (page.82) 1418 0 R (page.83) 1425 0 R (page.84) 1431 0 R] +/Names [(page.8) 879 0 R (page.80) 1441 0 R (page.81) 1449 0 R (page.82) 1457 0 R (page.83) 1463 0 R (page.84) 1473 0 R] /Limits [(page.8) (page.84)] >> -% 1985 0 obj +% 2076 0 obj << -/Names [(page.85) 1435 0 R (page.86) 1445 0 R (page.87) 1451 0 R (page.88) 1456 0 R (page.89) 1461 0 R (page.9) 848 0 R] +/Names [(page.85) 1485 0 R (page.86) 1490 0 R (page.87) 1502 0 R (page.88) 1508 0 R (page.89) 1515 0 R (page.9) 890 0 R] /Limits [(page.85) (page.9)] >> -% 1986 0 obj +% 2077 0 obj << -/Names [(page.90) 1465 0 R (page.91) 1472 0 R (page.92) 1478 0 R (page.93) 1484 0 R (page.94) 1490 0 R (page.95) 1496 0 R] +/Names [(page.90) 1521 0 R (page.91) 1525 0 R (page.92) 1535 0 R (page.93) 1541 0 R (page.94) 1545 0 R (page.95) 1550 0 R] /Limits [(page.90) (page.95)] >> -% 1987 0 obj +% 2078 0 obj << -/Names [(page.96) 1502 0 R (page.97) 1509 0 R (page.98) 1517 0 R (page.99) 1521 0 R (page.i) 617 0 R (page.ii) 670 0 R] +/Names [(page.96) 1554 0 R (page.97) 1561 0 R (page.98) 1567 0 R (page.99) 1574 0 R (page.i) 637 0 R (page.ii) 694 0 R] /Limits [(page.96) (page.ii)] >> -% 1988 0 obj +% 2079 0 obj << -/Names [(page.iii) 716 0 R (page.iv) 721 0 R (precdata) 961 0 R (section*.1) 618 0 R (section*.10) 79 0 R (section*.100) 497 0 R] -/Limits [(page.iii) (section*.100)] +/Names [(page.iii) 739 0 R (page.iv) 760 0 R (precdata) 1007 0 R (section*.1) 638 0 R (section*.2) 1933 0 R (section.1) 7 0 R] +/Limits [(page.iii) (section.1)] >> -% 1989 0 obj -<< -/Names [(section*.101) 501 0 R (section*.102) 505 0 R (section*.103) 509 0 R (section*.104) 513 0 R (section*.105) 521 0 R (section*.106) 525 0 R] -/Limits [(section*.101) (section*.106)] ->> -% 1990 0 obj +% 2080 0 obj << -/Names [(section*.107) 529 0 R (section*.108) 533 0 R (section*.109) 537 0 R (section*.11) 83 0 R (section*.110) 541 0 R (section*.111) 549 0 R] -/Limits [(section*.107) (section*.111)] +/Names [(section.10) 541 0 R (section.11) 569 0 R (section.2) 11 0 R (section.3) 35 0 R (section.4) 220 0 R (section.5) 288 0 R] +/Limits [(section.10) (section.5)] >> -% 1991 0 obj +% 2081 0 obj << -/Names [(section*.112) 1843 0 R (section*.12) 99 0 R (section*.13) 103 0 R (section*.14) 107 0 R (section*.15) 111 0 R (section*.16) 115 0 R] -/Limits [(section*.112) (section*.16)] +/Names [(section.6) 308 0 R (section.7) 421 0 R (section.8) 493 0 R (section.9) 513 0 R (spbasedata) 948 0 R (spdata) 947 0 R] +/Limits [(section.6) (spdata)] >> -% 1992 0 obj +% 2082 0 obj << -/Names [(section*.17) 119 0 R (section*.18) 123 0 R (section*.19) 127 0 R (section*.2) 47 0 R (section*.20) 131 0 R (section*.21) 135 0 R] -/Limits [(section*.17) (section*.21)] +/Names [(subsection.10.1) 545 0 R (subsection.10.2) 549 0 R (subsection.10.3) 553 0 R (subsection.10.4) 557 0 R (subsection.10.5) 561 0 R (subsection.10.6) 565 0 R] +/Limits [(subsection.10.1) (subsection.10.6)] >> -% 1993 0 obj +% 2083 0 obj << -/Names [(section*.22) 139 0 R (section*.23) 143 0 R (section*.24) 147 0 R (section*.25) 151 0 R (section*.26) 155 0 R (section*.27) 159 0 R] -/Limits [(section*.22) (section*.27)] +/Names [(subsection.11.1) 573 0 R (subsection.2.1) 15 0 R (subsection.2.2) 19 0 R (subsection.2.3) 23 0 R (subsection.2.4) 31 0 R (subsection.3.1) 39 0 R] +/Limits [(subsection.11.1) (subsection.3.1)] >> -% 1994 0 obj +% 2084 0 obj << -/Names [(section*.28) 163 0 R (section*.29) 179 0 R (section*.3) 51 0 R (section*.30) 183 0 R (section*.31) 187 0 R (section*.32) 191 0 R] -/Limits [(section*.28) (section*.32)] +/Names [(subsection.3.2) 103 0 R (subsection.3.3) 183 0 R (subsection.3.4) 212 0 R (subsection.3.5) 216 0 R (subsection.4.1) 224 0 R (subsection.4.10) 260 0 R] +/Limits [(subsection.3.2) (subsection.4.10)] >> -% 1995 0 obj +% 2085 0 obj << -/Names [(section*.33) 195 0 R (section*.34) 212 0 R (section*.35) 216 0 R (section*.36) 220 0 R (section*.37) 224 0 R (section*.38) 228 0 R] -/Limits [(section*.33) (section*.38)] +/Names [(subsection.4.11) 264 0 R (subsection.4.12) 268 0 R (subsection.4.13) 272 0 R (subsection.4.14) 276 0 R (subsection.4.15) 280 0 R (subsection.4.16) 284 0 R] +/Limits [(subsection.4.11) (subsection.4.16)] >> -% 1996 0 obj +% 2086 0 obj << -/Names [(section*.39) 232 0 R (section*.4) 55 0 R (section*.40) 236 0 R (section*.41) 240 0 R (section*.42) 244 0 R (section*.43) 248 0 R] -/Limits [(section*.39) (section*.43)] +/Names [(subsection.4.2) 228 0 R (subsection.4.3) 232 0 R (subsection.4.4) 236 0 R (subsection.4.5) 240 0 R (subsection.4.6) 244 0 R (subsection.4.7) 248 0 R] +/Limits [(subsection.4.2) (subsection.4.7)] >> -% 1997 0 obj +% 2087 0 obj << -/Names [(section*.44) 252 0 R (section*.45) 256 0 R (section*.46) 260 0 R (section*.47) 268 0 R (section*.48) 272 0 R (section*.49) 276 0 R] -/Limits [(section*.44) (section*.49)] +/Names [(subsection.4.8) 252 0 R (subsection.4.9) 256 0 R (subsection.5.1) 292 0 R (subsection.5.2) 296 0 R (subsection.5.3) 300 0 R (subsection.5.4) 304 0 R] +/Limits [(subsection.4.8) (subsection.5.4)] >> -% 1998 0 obj +% 2088 0 obj << -/Names [(section*.5) 59 0 R (section*.50) 280 0 R (section*.51) 288 0 R (section*.52) 292 0 R (section*.53) 296 0 R (section*.54) 300 0 R] -/Limits [(section*.5) (section*.54)] +/Names [(subsection.6.1) 312 0 R (subsection.6.10) 348 0 R (subsection.6.11) 352 0 R (subsection.6.12) 356 0 R (subsection.6.13) 360 0 R (subsection.6.14) 364 0 R] +/Limits [(subsection.6.1) (subsection.6.14)] >> -% 1999 0 obj +% 2089 0 obj << -/Names [(section*.55) 304 0 R (section*.56) 308 0 R (section*.57) 312 0 R (section*.58) 316 0 R (section*.59) 320 0 R (section*.6) 63 0 R] -/Limits [(section*.55) (section*.6)] +/Names [(subsection.6.15) 368 0 R (subsection.6.16) 372 0 R (subsection.6.17) 376 0 R (subsection.6.18) 380 0 R (subsection.6.19) 384 0 R (subsection.6.2) 316 0 R] +/Limits [(subsection.6.15) (subsection.6.2)] >> -% 2000 0 obj +% 2090 0 obj << -/Names [(section*.60) 324 0 R (section*.61) 328 0 R (section*.62) 332 0 R (section*.63) 336 0 R (section*.64) 340 0 R (section*.65) 344 0 R] -/Limits [(section*.60) (section*.65)] +/Names [(subsection.6.20) 388 0 R (subsection.6.21) 392 0 R (subsection.6.22) 396 0 R (subsection.6.23) 400 0 R (subsection.6.24) 405 0 R (subsection.6.25) 409 0 R] +/Limits [(subsection.6.20) (subsection.6.25)] >> -% 2001 0 obj +% 2091 0 obj << -/Names [(section*.66) 348 0 R (section*.67) 352 0 R (section*.68) 356 0 R (section*.69) 360 0 R (section*.7) 67 0 R (section*.70) 364 0 R] -/Limits [(section*.66) (section*.70)] +/Names [(subsection.6.26) 413 0 R (subsection.6.27) 417 0 R (subsection.6.3) 320 0 R (subsection.6.4) 324 0 R (subsection.6.5) 328 0 R (subsection.6.6) 332 0 R] +/Limits [(subsection.6.26) (subsection.6.6)] >> - -endstream -endobj -2039 0 obj +% 2092 0 obj << - /Title (Parallel Sparse BLAS V. 3.6.0) /Subject (Parallel Sparse Basic Linear Algebra Subroutines) /Keywords (Computer Science Linear Algebra Fluid Dynamics Parallel Linux MPI PSBLAS Iterative Solvers Preconditioners) /Creator (pdfLaTeX) /Producer ($Id$) /Author()/Title()/Subject()/Creator(LaTeX with hyperref package)/Producer(pdfTeX-1.40.17)/Keywords() -/CreationDate (D:20191120134929Z) -/ModDate (D:20191120134929Z) -/Trapped /False -/PTEX.Fullbanner (This is pdfTeX, Version 3.14159265-2.6-1.40.17 (TeX Live 2016) kpathsea version 6.2.2) +/Names [(subsection.6.7) 336 0 R (subsection.6.8) 340 0 R (subsection.6.9) 344 0 R (subsection.7.1) 425 0 R (subsection.7.10) 461 0 R (subsection.7.11) 465 0 R] +/Limits [(subsection.6.7) (subsection.7.11)] >> -endobj -2003 0 obj +% 2093 0 obj << -/Type /ObjStm -/N 36 -/First 352 -/Length 5456 +/Names [(subsection.7.12) 469 0 R (subsection.7.13) 473 0 R (subsection.7.14) 477 0 R (subsection.7.15) 481 0 R (subsection.7.16) 485 0 R (subsection.7.17) 489 0 R] +/Limits [(subsection.7.12) (subsection.7.17)] >> -stream -2002 0 2004 198 2005 394 2006 592 2007 788 2008 986 2009 1170 2010 1352 2011 1554 2012 1783 -2013 2018 2014 2198 2015 2372 2016 2544 2017 2614 2018 2728 2019 2840 2020 2951 2021 3065 2022 3185 -2023 3309 2024 3428 2025 3541 2026 3653 2027 3764 2028 3875 2029 3991 2030 4109 2031 4228 2032 4343 -2033 4435 2034 4555 2035 4677 2036 4772 2037 4856 2038 4891 -% 2002 0 obj +% 2094 0 obj << -/Names [(section*.71) 368 0 R (section*.72) 372 0 R (section*.73) 376 0 R (section*.74) 380 0 R (section*.75) 384 0 R (section*.76) 388 0 R] -/Limits [(section*.71) (section*.76)] +/Names [(subsection.7.2) 429 0 R (subsection.7.3) 433 0 R (subsection.7.4) 437 0 R (subsection.7.5) 441 0 R (subsection.7.6) 445 0 R (subsection.7.7) 449 0 R] +/Limits [(subsection.7.2) (subsection.7.7)] >> -% 2004 0 obj +% 2095 0 obj << -/Names [(section*.77) 392 0 R (section*.78) 400 0 R (section*.79) 405 0 R (section*.8) 71 0 R (section*.80) 409 0 R (section*.81) 413 0 R] -/Limits [(section*.77) (section*.81)] +/Names [(subsection.7.8) 453 0 R (subsection.7.9) 457 0 R (subsection.8.1) 497 0 R (subsection.8.2) 501 0 R (subsection.8.3) 505 0 R (subsection.8.4) 509 0 R] +/Limits [(subsection.7.8) (subsection.8.4)] >> -% 2005 0 obj +% 2096 0 obj << -/Names [(section*.82) 417 0 R (section*.83) 421 0 R (section*.84) 425 0 R (section*.85) 429 0 R (section*.86) 433 0 R (section*.87) 437 0 R] -/Limits [(section*.82) (section*.87)] +/Names [(subsection.9.1) 517 0 R (subsection.9.2) 521 0 R (subsection.9.3) 525 0 R (subsection.9.4) 529 0 R (subsection.9.5) 533 0 R (subsection.9.6) 537 0 R] +/Limits [(subsection.9.1) (subsection.9.6)] >> -% 2006 0 obj +% 2097 0 obj << -/Names [(section*.88) 441 0 R (section*.89) 445 0 R (section*.9) 75 0 R (section*.90) 449 0 R (section*.91) 453 0 R (section*.92) 457 0 R] -/Limits [(section*.88) (section*.92)] +/Names [(subsubsection.2.3.1) 27 0 R (subsubsection.3.1.1) 43 0 R (subsubsection.3.1.10) 79 0 R (subsubsection.3.1.11) 83 0 R (subsubsection.3.1.12) 87 0 R (subsubsection.3.1.13) 91 0 R] +/Limits [(subsubsection.2.3.1) (subsubsection.3.1.13)] >> -% 2007 0 obj +% 2098 0 obj << -/Names [(section*.93) 461 0 R (section*.94) 465 0 R (section*.95) 473 0 R (section*.96) 477 0 R (section*.97) 481 0 R (section*.98) 485 0 R] -/Limits [(section*.93) (section*.98)] +/Names [(subsubsection.3.1.14) 95 0 R (subsubsection.3.1.15) 99 0 R (subsubsection.3.1.2) 47 0 R (subsubsection.3.1.3) 51 0 R (subsubsection.3.1.4) 55 0 R (subsubsection.3.1.5) 59 0 R] +/Limits [(subsubsection.3.1.14) (subsubsection.3.1.5)] >> -% 2008 0 obj +% 2099 0 obj << -/Names [(section*.99) 493 0 R (section.1) 7 0 R (section.10) 517 0 R (section.11) 545 0 R (section.2) 11 0 R (section.3) 35 0 R] -/Limits [(section*.99) (section.3)] +/Names [(subsubsection.3.1.6) 63 0 R (subsubsection.3.1.7) 67 0 R (subsubsection.3.1.8) 71 0 R (subsubsection.3.1.9) 75 0 R (subsubsection.3.2.1) 107 0 R (subsubsection.3.2.10) 143 0 R] +/Limits [(subsubsection.3.1.6) (subsubsection.3.2.10)] >> -% 2009 0 obj +% 2100 0 obj << -/Names [(section.4) 208 0 R (section.5) 264 0 R (section.6) 284 0 R (section.7) 396 0 R (section.8) 469 0 R (section.9) 489 0 R] -/Limits [(section.4) (section.9)] +/Names [(subsubsection.3.2.11) 147 0 R (subsubsection.3.2.12) 151 0 R (subsubsection.3.2.13) 155 0 R (subsubsection.3.2.14) 159 0 R (subsubsection.3.2.15) 163 0 R (subsubsection.3.2.16) 167 0 R] +/Limits [(subsubsection.3.2.11) (subsubsection.3.2.16)] >> -% 2010 0 obj +% 2101 0 obj << -/Names [(spbasedata) 901 0 R (spdata) 900 0 R (subsection.2.1) 15 0 R (subsection.2.2) 19 0 R (subsection.2.3) 23 0 R (subsection.2.4) 31 0 R] -/Limits [(spbasedata) (subsection.2.4)] +/Names [(subsubsection.3.2.17) 171 0 R (subsubsection.3.2.18) 175 0 R (subsubsection.3.2.19) 179 0 R (subsubsection.3.2.2) 111 0 R (subsubsection.3.2.3) 115 0 R (subsubsection.3.2.4) 119 0 R] +/Limits [(subsubsection.3.2.17) (subsubsection.3.2.4)] >> -% 2011 0 obj +% 2102 0 obj << -/Names [(subsection.3.1) 39 0 R (subsection.3.2) 91 0 R (subsection.3.3) 171 0 R (subsection.3.4) 199 0 R (subsection.3.5) 204 0 R (subsubsection.2.3.1) 27 0 R] -/Limits [(subsection.3.1) (subsubsection.2.3.1)] +/Names [(subsubsection.3.2.5) 123 0 R (subsubsection.3.2.6) 127 0 R (subsubsection.3.2.7) 131 0 R (subsubsection.3.2.8) 135 0 R (subsubsection.3.2.9) 139 0 R (subsubsection.3.3.1) 187 0 R] +/Limits [(subsubsection.3.2.5) (subsubsection.3.3.1)] >> -% 2012 0 obj +% 2103 0 obj << -/Names [(subsubsection.3.1.1) 43 0 R (subsubsection.3.1.2) 87 0 R (subsubsection.3.2.1) 95 0 R (subsubsection.3.2.2) 167 0 R (subsubsection.3.3.1) 175 0 R (table.1) 954 0 R] -/Limits [(subsubsection.3.1.1) (table.1)] +/Names [(subsubsection.3.3.2) 191 0 R (subsubsection.3.3.3) 195 0 R (subsubsection.3.3.4) 199 0 R (subsubsection.3.3.5) 204 0 R (subsubsection.3.3.6) 208 0 R (table.1) 1000 0 R] +/Limits [(subsubsection.3.3.2) (table.1)] >> -% 2013 0 obj +% 2104 0 obj << -/Names [(table.10) 1117 0 R (table.11) 1126 0 R (table.12) 1139 0 R (table.13) 1157 0 R (table.14) 1188 0 R (table.15) 1220 0 R] +/Names [(table.10) 1164 0 R (table.11) 1172 0 R (table.12) 1185 0 R (table.13) 1204 0 R (table.14) 1232 0 R (table.15) 1249 0 R] /Limits [(table.10) (table.15)] >> -% 2014 0 obj +% 2105 0 obj << -/Names [(table.16) 1260 0 R (table.17) 1275 0 R (table.2) 998 0 R (table.3) 1022 0 R (table.4) 1034 0 R (table.5) 1052 0 R] -/Limits [(table.16) (table.5)] +/Names [(table.16) 1264 0 R (table.17) 1278 0 R (table.18) 1310 0 R (table.19) 1349 0 R (table.2) 1046 0 R (table.20) 1365 0 R] +/Limits [(table.16) (table.20)] >> -% 2015 0 obj +% 2106 0 obj << -/Names [(table.6) 1061 0 R (table.7) 1079 0 R (table.8) 1091 0 R (table.9) 1110 0 R (title.0) 3 0 R (vbasedata) 892 0 R] -/Limits [(table.6) (vbasedata)] +/Names [(table.3) 1068 0 R (table.4) 1080 0 R (table.5) 1099 0 R (table.6) 1107 0 R (table.7) 1125 0 R (table.8) 1138 0 R] +/Limits [(table.3) (table.8)] >> -% 2016 0 obj +% 2107 0 obj << -/Names [(vdata) 941 0 R] -/Limits [(vdata) (vdata)] +/Names [(table.9) 1157 0 R (title.0) 3 0 R (vbasedata) 934 0 R (vdata) 987 0 R] +/Limits [(table.9) (vdata)] >> -% 2017 0 obj +% 2108 0 obj << -/Kids [1922 0 R 1923 0 R 1924 0 R 1925 0 R 1926 0 R 1927 0 R] +/Kids [2012 0 R 2013 0 R 2014 0 R 2015 0 R 2016 0 R 2017 0 R] /Limits [(Doc-Start) (Item.125)] >> -% 2018 0 obj + +endstream +endobj +2131 0 obj +<< + /Title (Parallel Sparse BLAS V. 3.7.0) /Subject (Parallel Sparse Basic Linear Algebra Subroutines) /Keywords (Computer Science Linear Algebra Fluid Dynamics Parallel Linux MPI PSBLAS Iterative Solvers Preconditioners) /Creator (pdfLaTeX) /Producer ($Id$) /Author()/Title()/Subject()/Creator(LaTeX with hyperref package)/Producer(pdfTeX-1.40.19)/Keywords() +/CreationDate (D:20191218141557Z) +/ModDate (D:20191218141557Z) +/Trapped /False +/PTEX.Fullbanner (This is pdfTeX, Version 3.14159265-2.6-1.40.19 (TeX Live 2018) kpathsea version 6.3.0) +>> +endobj +2110 0 obj << -/Kids [1928 0 R 1929 0 R 1930 0 R 1931 0 R 1932 0 R 1933 0 R] +/Type /ObjStm +/N 21 +/First 199 +/Length 2640 +>> +stream +2109 0 2111 112 2112 223 2113 337 2114 457 2115 581 2116 700 2117 813 2118 924 2119 1035 +2120 1146 2121 1264 2122 1389 2123 1515 2124 1645 2125 1766 2126 1886 2127 2011 2128 2109 2129 2193 +2130 2228 +% 2109 0 obj +<< +/Kids [2018 0 R 2019 0 R 2020 0 R 2021 0 R 2022 0 R 2023 0 R] /Limits [(Item.126) (Item.42)] >> -% 2019 0 obj +% 2111 0 obj << -/Kids [1934 0 R 1935 0 R 1936 0 R 1937 0 R 1938 0 R 1939 0 R] +/Kids [2024 0 R 2025 0 R 2026 0 R 2027 0 R 2028 0 R 2029 0 R] /Limits [(Item.43) (Item.75)] >> -% 2020 0 obj +% 2112 0 obj << -/Kids [1940 0 R 1941 0 R 1942 0 R 1943 0 R 1944 0 R 1945 0 R] +/Kids [2030 0 R 2031 0 R 2032 0 R 2033 0 R 2034 0 R 2035 0 R] /Limits [(Item.76) (cite.METIS)] >> -% 2021 0 obj +% 2113 0 obj << -/Kids [1946 0 R 1947 0 R 1948 0 R 1949 0 R 1950 0 R 1951 0 R] +/Kids [2036 0 R 2037 0 R 2038 0 R 2039 0 R 2040 0 R 2041 0 R] /Limits [(cite.MPI1) (lstlisting.-20)] >> -% 2022 0 obj +% 2114 0 obj << -/Kids [1952 0 R 1953 0 R 1954 0 R 1955 0 R 1956 0 R 1957 0 R] +/Kids [2042 0 R 2043 0 R 2044 0 R 2045 0 R 2046 0 R 2047 0 R] /Limits [(lstlisting.-3) (lstnumber.-5.1)] >> -% 2023 0 obj +% 2115 0 obj << -/Kids [1958 0 R 1959 0 R 1960 0 R 1961 0 R 1962 0 R 1963 0 R] +/Kids [2048 0 R 2049 0 R 2050 0 R 2051 0 R 2052 0 R 2053 0 R] /Limits [(lstnumber.-5.2) (page.103)] >> -% 2024 0 obj +% 2116 0 obj << -/Kids [1964 0 R 1965 0 R 1966 0 R 1967 0 R 1968 0 R 1969 0 R] +/Kids [2054 0 R 2055 0 R 2056 0 R 2057 0 R 2058 0 R 2059 0 R] /Limits [(page.104) (page.136)] >> -% 2025 0 obj +% 2117 0 obj << -/Kids [1970 0 R 1971 0 R 1972 0 R 1973 0 R 1974 0 R 1975 0 R] -/Limits [(page.137) (page.35)] +/Kids [2060 0 R 2061 0 R 2062 0 R 2063 0 R 2064 0 R 2065 0 R] +/Limits [(page.137) (page.3)] >> -% 2026 0 obj +% 2118 0 obj << -/Kids [1976 0 R 1977 0 R 1978 0 R 1979 0 R 1980 0 R 1981 0 R] -/Limits [(page.36) (page.68)] +/Kids [2066 0 R 2067 0 R 2068 0 R 2069 0 R 2070 0 R 2071 0 R] +/Limits [(page.30) (page.62)] >> -% 2027 0 obj +% 2119 0 obj << -/Kids [1982 0 R 1983 0 R 1984 0 R 1985 0 R 1986 0 R 1987 0 R] -/Limits [(page.69) (page.ii)] +/Kids [2072 0 R 2073 0 R 2074 0 R 2075 0 R 2076 0 R 2077 0 R] +/Limits [(page.63) (page.95)] >> -% 2028 0 obj +% 2120 0 obj << -/Kids [1988 0 R 1989 0 R 1990 0 R 1991 0 R 1992 0 R 1993 0 R] -/Limits [(page.iii) (section*.27)] +/Kids [2078 0 R 2079 0 R 2080 0 R 2081 0 R 2082 0 R 2083 0 R] +/Limits [(page.96) (subsection.3.1)] >> -% 2029 0 obj +% 2121 0 obj << -/Kids [1994 0 R 1995 0 R 1996 0 R 1997 0 R 1998 0 R 1999 0 R] -/Limits [(section*.28) (section*.6)] +/Kids [2084 0 R 2085 0 R 2086 0 R 2087 0 R 2088 0 R 2089 0 R] +/Limits [(subsection.3.2) (subsection.6.2)] >> -% 2030 0 obj +% 2122 0 obj << -/Kids [2000 0 R 2001 0 R 2002 0 R 2004 0 R 2005 0 R 2006 0 R] -/Limits [(section*.60) (section*.92)] +/Kids [2090 0 R 2091 0 R 2092 0 R 2093 0 R 2094 0 R 2095 0 R] +/Limits [(subsection.6.20) (subsection.8.4)] >> -% 2031 0 obj +% 2123 0 obj << -/Kids [2007 0 R 2008 0 R 2009 0 R 2010 0 R 2011 0 R 2012 0 R] -/Limits [(section*.93) (table.1)] +/Kids [2096 0 R 2097 0 R 2098 0 R 2099 0 R 2100 0 R 2101 0 R] +/Limits [(subsection.9.1) (subsubsection.3.2.4)] >> -% 2032 0 obj +% 2124 0 obj << -/Kids [2013 0 R 2014 0 R 2015 0 R 2016 0 R] -/Limits [(table.10) (vdata)] +/Kids [2102 0 R 2103 0 R 2104 0 R 2105 0 R 2106 0 R 2107 0 R] +/Limits [(subsubsection.3.2.5) (vdata)] >> -% 2033 0 obj +% 2125 0 obj << -/Kids [2017 0 R 2018 0 R 2019 0 R 2020 0 R 2021 0 R 2022 0 R] +/Kids [2108 0 R 2109 0 R 2111 0 R 2112 0 R 2113 0 R 2114 0 R] /Limits [(Doc-Start) (lstnumber.-5.1)] >> -% 2034 0 obj +% 2126 0 obj << -/Kids [2023 0 R 2024 0 R 2025 0 R 2026 0 R 2027 0 R 2028 0 R] -/Limits [(lstnumber.-5.2) (section*.27)] +/Kids [2115 0 R 2116 0 R 2117 0 R 2118 0 R 2119 0 R 2120 0 R] +/Limits [(lstnumber.-5.2) (subsection.3.1)] >> -% 2035 0 obj +% 2127 0 obj << -/Kids [2029 0 R 2030 0 R 2031 0 R 2032 0 R] -/Limits [(section*.28) (vdata)] +/Kids [2121 0 R 2122 0 R 2123 0 R 2124 0 R] +/Limits [(subsection.3.2) (vdata)] >> -% 2036 0 obj +% 2128 0 obj << -/Kids [2033 0 R 2034 0 R 2035 0 R] +/Kids [2125 0 R 2126 0 R 2127 0 R] /Limits [(Doc-Start) (vdata)] >> -% 2037 0 obj +% 2129 0 obj << -/Dests 2036 0 R +/Dests 2128 0 R >> -% 2038 0 obj +% 2130 0 obj << /Type /Catalog -/Pages 1918 0 R -/Outlines 1919 0 R -/Names 2037 0 R +/Pages 2008 0 R +/Outlines 2009 0 R +/Names 2129 0 R /URI (http://ce.uniroma2.it/psblas) /PageMode/UseOutlines/PageLabels<>2<>6<>]>> -/OpenAction 552 0 R +/OpenAction 576 0 R >> endstream endobj -2040 0 obj +2132 0 obj << /Type /XRef -/Index [0 2041] -/Size 2041 +/Index [0 2133] +/Size 2133 /W [1 3 1] -/Root 2038 0 R -/Info 2039 0 R -/ID [<3E2A82116FCF1FDC3F29F720B9A71E82> <3E2A82116FCF1FDC3F29F720B9A71E82>] -/Length 10205 +/Root 2130 0 R +/Info 2131 0 R +/ID [<6B1E8680CFEF4C06C14E8290AA58B896> <6B1E8680CFEF4C06C14E8290AA58B896>] +/Length 10665 >> stream -ÿ”NÍ+Í5Í=ÍI  -ÍR  @  @ @ @ -@; @<@=@>@B@C @D!"@H#$@I%&@K'(@L€c)*@S€b+,@T€a-.@[€`/0@\€_12@]€^34@a€]56@c€\78‘€[9:‘€Z;<‘€Y=>‘ €X?@‘ -€WAB‘€VCD‘€UEF‘€TGH‘€SIJ‘€RKL‘€QMN‘€POP‘ €OQR‘!€NST‘"€MUV‘(€LWX‘)€KYZ‘*€J[\‘0€I]^‘5€H_`‘6€Gab‘7€Fc˼‘>€EËË‘B€DËË‘L€CËË‘\€BËËó €AË Ë -ó€@Ë Ë ó)€?Ë Ëó1€>ËËóB€=ËËóM€<ËËó^€;ËË^€:ËË^€9ËË^€8ËË^%€7ËË^:€6ËË ^A€5Ë!Ë"^[€4Ë#Ë$Ô€3Ë%Ë&Ô$€2Ë'Ë(Ô1€1Ë)Ë*Ô2€0Ë+Ë,ÔI€/Ë-Ë.ÔV€.Ë/Ë0Ô]€-Ë1Ë2Ôb€,Ë3Ë4C€+Ë5Ë6C€*Ë7Ë8C€)Ë9Ë:C0€(Ë;Ë<C?€'Ë=Ë>CE€&Ë?Ë@CL€%ËAËBCR€$ËCËDC^€#ËEËF¬€"ËGËH¬€!ËIËJ¬ € ËKËL¬€ËMËN¬€ËOËP¬€ËQËR¬$€ËSËT¬*€ËUËV¬0€ËWËX¬7€ËYËZ¬>€Ë[Ë\¬K€Ë]Ë^¬O€Ë_Ë`¬_€ËaËb¬c€Ëc”j €”” €””€””€””€” ” -€” ” "€ ” ”&€ ””*€ ””0€ -””6€ ””<€””B€””H€””O€””T€”” [€”!”"—€”#”$—€”%”&—%€”'”(—+Gc”)”*—1Gb”+”,—6Ga”-”.—=G`”/”0—DG_”1”2—JG^”3”4—QG]”5”6—WG\”7”8—]G[”9”:—cGZ”;”<éGY”=”>éGX”?”@éGW”A”BéGV”C”Dé"GU”E”Fé&GT”G”Hé,GS”I”J”K”O$ÿ”L”MGG.GG&G2”R”P'„”Q”T”U”V”W”X”Y”Z”[”\”]”^”_”`”a”b”ckkkkkkkkkk k -k k k kkkkkkkkkkkkkkkkk"k ”S( kkmk#k$k%k&k'k(k)k*k+k,k-k.k/k0k1k2k3k4k5k6k7k8k9k:k;k<k=k>k?k@kAkBkCkDkEkFkGkHkIkJkKkLkMkNkOkPkTkRk!†ÓkQkUkVkWkXkYkZk[k\k]k^k_k`kakbkcÍÍÍÍÍÍÍÍÍÍ Í -Í Í Í ÍÍÍÍÍÍÍÍÍÍÍÍÍÍkS×ÏÍ:­ÍÍ]¢ÍÍ!Í"Í#Í$Í%Í&Í'Í(Í)Í*Í,Í ^-G-G3éVéMéCéWéUéJéKéTéGéHÍ2Í3Í4•¶Í9Í7Í-¯G"Í6Í.Í/Í0Í1šléIÍ:Í;Í@Í8¦Í<G/G(G$G+G'Í>G)Í?éSÍEÍFÝÿÍJÍAÈáÍGÍHÍBÍCÍDéFéEÍLÍMÍOÍKä©ÍNÍ]Í[ÍPú;ÍQG#ÍSÍTÍUÍVÍWÍXÍYÍZ@ @ Í\JÍ^Í_Í`ÍaÍbÍc@@@@@@@@@G0G4]L@ @@ -mª@ @@@@@@@@@‹@@@@ @!@(@¬c@"@#@$@%@&@'@*@+@6@)ÇJ@,@-@.@/@0@1@2@3@4@5@8@9@?@7ÛÀ@:@E@@ðK@AG5@M@F_@G@J@O@P@Q@W@NŽ@R@U@VéR@Z@^@X:9@Y‘@_Oe@`@bª‘‘€±‘‘ ‘h‘G6‘‘ ¡‘ ‘‘±Å‘‘‘ÁÁ‘‘‘‘$‘׆‘‘#‘'‘+‘%õÜ‘&‘-‘.‘1‘,Œ‘/G7‘M‘3‘;‘9‘2Å‘4‘8‘=‘?‘:&-‘<G1‘C‘@4±‘A‘E‘F‘G‘H‘I‘J‘P‘N‘D5‹‘K‘Q‘R‘T‘ORˆ‘S‘V‘W‘X‘Y‘Z‘^‘U]#‘[‘]G8‘`ó‘_{s‘a‘b‘cóóóóÇ -óóóó ó -ó óó·ñó óóóÙ<óóóóóóÛêóóó#óöñóóóóó ó!ó"ó%ó&ó'ó+ó$ ó(ó*G9ó-ó.ó/ó3ó,!ôó0ó2ó<ó4>ó5ó6ó7ó8ó9ó:ó;ó>ó?ó@óDó=M€óAóCóGóEjtóFóIóJóKóOóHm!óLóNóXóP†œóQóRóSóTóUóVóWG:óZó[ó\ó`óY˜òó]ó_óbóc^óa±A^^lÙ^^^ -^òª^G,^ ^ ^ ^^^^^ z^^^^^^^^^^^^^!^%W^ ^#^)^'^"@Ó^$^&G;^*^+^,^-^.^/^1^([“^0^3^4^6^2z=^5^8^;^7Œ±^9^=^>^?^N^F^<y^@^B^C^D^E¸Ê^O^R^G¬^P^Q^H^I^J^K^L^MÇ%ú”^U^S(,^TG*G<^W^X^Y^`^V4S^Z^\^]^^^_^b®Æ^cÔÔ^aU²ÔÔÔÔÔ 0*ÔÔžäÔÔÔ ­DÔÔ -Ô Ô Ô ÔÔ½dðÓÔÔÔÔÔkÔÔÔÔÔÔ ÔC>ÔG=Ô"Ô*Ô(Ô!I*Ô#Ô%Ô&Ô'Ô+Ô,Ô.Ô)gâÔ-Ô3Ô/xtÔ0Ô5Ô8Ô4’=Ô6Ô7Ô:Ô=Ô9¬hÔ;Ô<ÔEÔ>ÓæÔ?Ô@ÔAÔBÔCÔDG>ÔGÔJÔFÞ‡ÔHÔLÔQÔKúÇÔMÔNÔOÔPÔSÔTÔXÔR XÔUÔWÔZÔ[Ô^ÔY  Ô\Ô`ÔcÔ_ '*ÔaCCCC \C -eG?C -C szCCC C C CC  yêCCCCCCC >CCCC"C £ØCCCCC C!C+C# ÀçC$C%C&C'C(C)C*C-C.C1C, ÐC/G@C:C2 ê4C3C4C5C6C7C8C9C<C=C@C; ó@C>CBCCCGCA ÿ‹CDCFCICJCMCH -PCKCOCPCSCN -#€CQCXCT ->vCUCVCWGACZC[C\C_CY -C -C]CaCb¬C` -W¦Cc ®¬¬ -Žð¬¬¬ -¬ -œ›¬¬¬  -¶d¬ ¬ ¬¬¬¬ -¹b¬GB¬¬¬ -Ïø¬¬¬¬ ¬ -ݬ¬¬"¬&¬! -ð´¬#¬%¬(¬,¬' -ý ¬)¬+¬.¬3¬- @¬/¬1¬2¬5¬:¬4 Y¬6¬8¬9GC¬<¬?¬; .ܬ=¬E¬@ E·¬A¬B¬C¬D¬G¬H¬I¬L¬F Ti¬J¬P¬M dŬN¬\¬Q {„¬R¬S¬T¬U¬V¬W¬X¬Y¬Z¬[¬`¬] —¬^GD¬a ˜¬b ° Õ‡  çë -   ù+ ü GE ÷#  ö!'$ ƒ%-( 0u)+,3. DÌ/1294 YJ578GF?: m¯;=>E@ ‚‰ACDLF —FGIJG!KQM ¯ÒNPVR ÄñSUXY\W Ú"ZGG———] óL^_`G abc—————————— — -— — — —————— ÖC—— 4]————"— C'—— —!—(—# HÜ—$—&—'—.—) Ox—*—,—-—2—/ Wï—0GH—4—9—3 ZE—5—7—8—;—@—: m,—<—>—?—B—G—A ó—C—E—F—M—H v—I—K—L—O—T—N Ÿ,—P—R—S—Z—U ¯Â—V—X—YGI—^—[ ½4—\—`—aé—_ Â0—béÈAééééé é øêéé é -Vé éééééé Ùéééé2ñéGJéé>±ééé é#éBÉé!é'é$M«é%é)é*é3é1é(PHé+é-é.é/é0G%é4é5é6é8é2pþé7é:é<é9é;GKé?é=Ÿ é>éOé@ -éAéBéDéLéNéYéP»ÐéQéXéZé[é\é]é^é_é`éaébécGú‹GGGGGGGGG ö¥G -NåG jG ÄñG â¨G#ÏGAÍGh@G‡¥Gí^G KG/&GpÏG°•GØ@GõáGE¤GuG¦GÒÛGGLGMGNGOGPGQGRJ£på !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcÓ¸ÌÓÓÓÓÓÓÓÓÓ Ó -Ó Ó Ó ÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓ Ó!Ó"Ó#¶—Îx +ÿ”ZÛéIÛéSÛé[Úc@Úb  +@ Úa  @,Ú` @3Ú_@8Ú^@9Ú]@YÚ\@ZÚ[@[ÚZ@\ÚY@`ÚX@aÚW @bÚV!"§ÚU#$§ÚT%&§ÚS'(§ÚR)*§ +ÚQ+,§ ÚP-.§ ÚO/0§ÚN12§ÚM34§ÚL56§ÚK78§ÚJ9:§!ÚI;<§#ÚH=>§'ÚG?@§(ÚFAB§)ÚECD§-ÚDEF§.ÚCGH§2ÚBIJ§3ÚAKL§7Ú@MN§8Ú?OP§9Ú>QR§=Ú=ST§CÚ<UV§DÚ;WX§EÚ:YZ§FÚ9[\§LÚ8]^§MÚ7_`§NÚ6ab§TÚ5cËR§YÚ4Ë˧ZÚ3Ë˧[Ú2Ë˧bÚ1ËËúÚ0Ë Ë +ú Ú/Ë Ë úÚ.Ë Ëú1Ú-ËËú<Ú,ËËúMÚ+ËËúUÚ*ËËfÚ)ËËf Ú(ËËfÚ'ËËf%Ú&ËËf,Ú%ËË f5Ú$Ë!Ë"fIÚ#Ë#Ë$ÑÚ"Ë%Ë&Ñ Ú!Ë'Ë(ÑÚ Ë)Ë*Ñ"ÚË+Ë,Ñ)ÚË-Ë.ÑCÚË/Ë0IÚË1Ë2I ÚË3Ë4IÚË5Ë6IÚË7Ë8I1ÚË9Ë:I>ÚË;Ë<IEÚË=Ë>IJÚË?Ë@IPÚËAËBI[ÚËCËDIbÚËEËF½ÚËGËH½'ÚËIËJ½-ÚËKËL½4ÚËMËN½:Ú ËOËP½FÚ ËQËR½LÚ ËSËT½PÚ +ËUËV½UÚ ËWËX½_ÚËYËZ!ÚË[Ë\!ÚË]Ë^! ÚË_Ë`!ÚËaËb!ÚËc”sü!Ú””!&Ú””!3Ú””!7Èc””!GÈb” ” +!KÈa” ” !QÈ`” ”!WÈ_””!^È^””!bÈ]””‹È\””‹È[””‹ +ÈZ””‹ÈY””‹ÈX””‹ÈW”” ‹ÈV”!”"‹$ÈU”#”$‹*ÈT”%”&‹0ÈS”'”(‹7ÈR”)”*‹<ÈQ”+”,‹CÈP”-”.÷ÈO”/”0÷ÈN”1”2÷ ÈM”3”4÷ÈL”5”6÷ÈK”7”8÷ÈJ”9”:÷%ÈI”;”<÷,ÈH”=”>÷2ÈG”?”@÷9ÈF”A”B÷?ÈE”C”D÷EÈD”E”F÷KÈC”G”H÷TÈB”I”J÷_ÈA”K”L]È@”M”N]È?”O”P] +È>”Q”R]È=”S”T]È<”U”V”W”[2}”X”YÈÈÈÈÈ”^”\5”]”`”a”b”cƒƒƒƒƒƒƒƒƒƒ ƒ +ƒ ƒ ƒ ƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒ ƒ!ƒ"ƒ#ƒ$ƒ%ƒ&ƒ'ƒ(ƒ)ƒ.ƒ,”_5Šƒ*ƒ+ƒƒƒƒæƒ/ƒ0ƒ1ƒ2ƒ3ƒ4ƒ5ƒ6ƒ7ƒ8ƒ9ƒ:ƒ;ƒ<ƒ=ƒ>ƒ?ƒ@ƒAƒBƒCƒDƒEƒFƒGƒHƒIƒJƒKƒLƒMƒNƒOƒPƒQƒRƒSƒTƒUƒVƒWƒXƒYƒZƒ[ƒ\ƒ`ƒ^ƒ-‘ʃ]ƒaƒbƒcéééééééééé é +é é ééééééééééééééééééé é!é#é$é&é(é-é+ƒ_ÏÄé*é é"é%é'é)îýé/é1é3é4é5é6é7é8é9é:é;é=é,Wé<é.é0é2é?é@éAéBéCéDéEéFéGéHéJé>hÈÈ]>]5]+]?]=]2]3]<]/]0éPéQéR  +éWéUéKŠÈ +éTéLéMéNéO¤À]1éXéYé^éV°céZÈÈÈ ÈÈé\Èé]];éc@èS@é_Ó5@@é`éaéb].A]-@@@ @*è@@@@ +@z@ È @ @@@@@@@@)@'@b‰@@@@@@@@@ @!@"@#@$@%@&ÈÈ@*@4@(€ì@+@-@.@/@0@1@2@6@;@5žY@7@:@=@>@?@F@<¿¥@@@A@B@C@D@E@H@I@T@GÚŒ@J@K@L@M@N@O@P@Q@R@S@V@W@]@Uï@X@c@^²@_ȧ§9<§§b„§ §LÔ§ §§§§§d.§§§]:§§§ˆ9§§$§ŸÀ§ §"§*§%­Ó§&ȧ/§+¼´§,§4§0ϧ1§:§5ßV§6§>§;ïo§<§@§A§H§?$§B§G§K§O§I#‹§JȧQ§R§U§P2M§Sú §W§_§]§VA‰§X§\§a§c§^Sô§`Èúú…òú“Gúúúúú ú +úúú†Ìú úúúú£¬úÈ úúúúúúú®Lúúú ú(ú̦ú!ú"ú#ú$ú%ú&ú'ú*ú+ú,ú-ú.ú/ú3ú)àèú0ú2ú6ú4ú5ú8ú9ú:ú>ú7¼ú;ú=úGú?Ôú@úAúBúCúDúEúFÈ!úIúJúKúOúH1ÖúLúNúQúRúSúWúPJÃúTúVú`úXgúYúZú[ú\ú]ú^ú_úbúcffúavjffÔûffÀ¿ff f +f ffÃmf fÈ"ffÜ÷fffffffffff fïWfff"f#f'f!f$f&f)f*f.f(]f+Èf-f0f1f2f3f<f:f/3Of4f6f7f8f9f=f>f?f@fAfBfCfEf;P2fDÈ#fGfMfKfFkÀfHfJfNfOfPfQfRfSfUfL†|fTfWfXfZfV¥'fYf\f]f^f_f`fafbÑf[·ªfcÑÎÑÑîÑÑÑÑ Ñ +Ñ ÑÑÑÑœÑ ÑÈ$ÑÑ%áÑÑÑÑÑÑÑÑ+ëÑÑÑ Ñ#ÑIsÑ!Ñ%Ñ&Ñ'Ñ6Ñ.Ñ$L;Ñ(Ñ*Ñ+Ñ,Ñ-u–Ñ7Ñ:Ñ/hÝÑ8Ñ9Ñ0Ñ1Ñ2Ñ3Ñ4Ñ5ƒñ·`Ñ=Ñ;äøÑ<ÈÈ%Ñ?Ñ@ÑAÑHÑ>ñÑBÑDÑEÑFÑGÑJ9‘ÑKÑLÑQÑIˆÑMÑNÑOÑPÑ]ÑTÑR)¯ÑSÑ^ÑU8Ñ\ÑVÑWÑXÑYÑZÑ[H/{žÑ`ÑaÑbIÑ_©6ÑcIIII +:4IIÿŠIÈ&I +III  vI I IIIIII $8III 4ÊIII I NIII"I%I! hÈI#I$I-I& FI'I(I)I*I+I,È'I/I2I. šçI0I4I9I3 ·1I5I6I7I8I;I<I@I: ÃÂI=I?IBICIFIA ÜNIDIHIKIG ébIIIMINIQIL òlIOÈ(IVIR + ÕISITIUIXIYI_IW +EIZI\I]I^½IcI` +#£Ia½½½ +½ +c±½½½½½½  sŒ½½  +€À½ ½ ½½½½½½½½½ +ß½È)½"½ +ª½½½½½½ ½!½$½%½(½# +³#½&½*½+½/½) +¿y½,½.½1½2½5½0 +ÏG½3½7½8½;½6 +ソ9½@½< +þƒ½=½>½?È*½B½C½D½G½A ½E½I½J½M½H ¾½K½Q½N %8½O½S½V½R 2ÿ½T½[½W LÔ½X½Y½Z½]½`½\ OÒ½^È+½b!½a fq½c! «1!!! ‚!!! +!!  ±>! ! !!! ¾:!!!!! Ñæ!!!!!"! á)!! !!È,!$!'!# ï¸!%!-!( ¹!)!*!+!,!/!0!1!4!. l!2!8!5 %Ó!6!D!9 <!:!;!<!=!>!?!@!A!B!C!H!E X*!FÈ-!N!I Y!J!L!M!T!O o*!P!R!S![!U ¢!V!X!Y!Z!_!\ ’ì!]!c!` f!a‹‹ Ñ}‹ â’È.‹‹ Öa‹‹ ‹ Ü…‹ ‹‹  â‹ ‹‹ ô‹‹‹‹‹ z‹‹‹‹!‹ ‹‹‹ È/‹'‹" 1s‹#‹%‹&‹-‹( FX‹)‹+‹,‹4‹. [ ‹/‹1‹2È ‹3‹9‹5 sÏ‹6‹8‹>‹: ˆù‹;‹=‹@‹A‹D‹? ž5‹BÈ0‹`‹a‹b‹E ·_‹F‹G‹HÈ‹I‹J‹K‹L‹M‹N‹O‹P‹Q‹R‹S‹T‹U‹V‹W‹X‹Y‹Z‹[‹\‹]‹^‹_÷‹c ÓÃ÷÷÷Þÿ÷ +÷w÷÷÷ ÷÷  4÷ ÷÷÷÷Þ÷÷÷÷÷Z÷È1÷÷!÷°÷÷÷ ÷#÷(÷"/÷$÷&÷'÷*÷/÷)Dj÷+÷-÷.÷5÷0Rù÷1÷3÷4÷7÷<÷6a»÷8÷:÷;÷B÷=r]÷>÷@÷AÈ2÷F÷CÛ÷D÷H÷I÷M÷G„×÷J÷L÷O÷P÷Q÷R÷U÷N˜õ÷S÷X÷V·l÷W÷Z÷[÷\÷]÷`÷Y»ï÷^÷b]÷aÓ÷cÈ3q€]]Ž]]]] ] +±] ]] ž] ]]]]];]]]]]È ]]]] ]8ü]]"]$]!U ]#È4]']%gž]&]7](h+])]*],]4]6]A]8ƒÎ]9]@]B]C]D]E]F]G]H]I]J]K]L]M]N]O]P]Q]R]S]T]U?]Vè]W7]X^‹]Y|B]Z½Ò][ÛÐ]\C]]!¨]^†ž]_¦‹]`Èf]a +]bIÕ]cºÈÜSשÈ'lÈVãȤnÈ´£ÈÈ5È6È7È8È9È:È;Ì5®ÛÛÛÛÛÛÛ Û +Û Û Û ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ Û!Û"Û#Û$Û%Û&Û'Û(Û)Û*Û+Û,Û-Û.Û/Û0Û1Û2Û3Û4Û5Û6Û7Û8Û9Û:Û;Û<Û=Û>Û?Û@ÛAÛBÛCÛDÛEÛFÛGÛHÛIÛJÛKÛLÛMÛNÛOÛPÛQÛRÛSÛTÛUÛVÛWÛXÛYÛZÛ[Û\Û]Û^Û_Û`ÛaÛbÛc>‡v>>>>>>>>> > +> > > >>>>>>>…A’" endstream endobj startxref -1298040 +1348130 %%EOF diff --git a/docs/src/Makefile b/docs/src/Makefile index 65574507..78c2bc85 100644 --- a/docs/src/Makefile +++ b/docs/src/Makefile @@ -113,6 +113,7 @@ DATE = $(shell date +%Y-%m-%d) # LATEX = latex LTX2HTML = latex2html -local_icons +LTX2HTML = htlatex PDFLATEX = pdflatex ACRO = evince XPDF = xpdf @@ -138,11 +139,12 @@ PDF = $(join $(BASEFILE),.pdf) PS = $(join $(BASEFILE),.ps) GXS = $(join $(BASEFILE),.gxs) GLX = $(join $(BASEFILE),.glx) -TARGETPDF= ../psblas-3.6.pdf +TARGETPDF= ../psblas-3.7.pdf BASEHTML = $(patsubst %.tex,%,$(HTMLFILE)) -HTML = $(join $(HTMLFILE),.html) +HTML = $(join $(BASEHTML),.html) HTMLDIR = ../html HTMLFLAGS = -noaddress +HTMLFLAGS = "html,3" FIGURES = $(sort $(wildcard $(FIGDIR)/*)) GLOFILES:= $(sort $(wildcard lib/*.gdf)) @@ -159,9 +161,9 @@ TEXLNFIL = $(addprefix $(PWD)/,$(TEXFILES)) #============================================================================ all: pdf html - + pdf: $(PDF) copypdf -html: $(HTML) +html: $(HTML) copyhtml $(PDF): $(TEXFILES) $(LIBFILES) $(FIGURES) Makefile $(header) @@ -184,19 +186,21 @@ copypdf: $(HTML): $(TEXFILES) $(LIBFILES) $(FIGURES) Makefile $(header) $(initialize) - $(latex-filter) + $(pdflatex-filter) ifneq ($(BIBFILES),) $(bibtex) - $(latex-filter) + $(pdflatex-filter) endif ifneq ($(GLOFILES),) $(glosstex) - $(latex-filter) + $(pdflatex-filter) endif # $(makeindex) - $(latex-filter) $(ltx2html-filter) +copyhtml: + $(ltx2html-cpy) + $(PS): $(PDF) $(PDF2PS) $< $(PS) @@ -285,6 +289,7 @@ define initialize @ln -sf $(TEXLNFIL) tmp @ln -sf $(PWD)/lib/* tmp @ln -sf $(PWD)/$(FIGDIR) tmp + @ln -sf $(PWD)/$(FIGDIR)/*png tmp endef #---------------------------------------------------------------------------- @@ -328,7 +333,16 @@ define ltx2html-filter @echo "----- latex -------------------------------------------------------" @echo -n "Starting: "; date @echo - cd tmp; ($(LTX2HTML) $(HTMLFLAGS) -dir ../$(HTMLDIR) $(HTMLFILE) 2>&1) | $(FILTER) +# cd tmp; ($(LTX2HTML) $(HTMLFLAGS) -dir ../$(HTMLDIR) $(HTMLFILE) 2>&1) | $(FILTER) + cd tmp; ($(LTX2HTML) $(HTMLFILE) $(HTMLFLAGS) 2>&1) | $(FILTER) +endef + +define ltx2html-cpy + @echo + @echo "----- latex -------------------------------------------------------" + @echo -n "Starting: "; date + @echo + cd tmp; (cp *.css *.html *.png ../$(HTMLDIR)); (cp $(HTML) ../$(HTMLDIR)/index.html) endef #---------------------------------------------------------------------------- diff --git a/docs/src/commrout.tex b/docs/src/commrout.tex index 1c66b2fb..bdfd7c1c 100644 --- a/docs/src/commrout.tex +++ b/docs/src/commrout.tex @@ -8,8 +8,7 @@ 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~\ref{sec:toolsrout}. -\clearpage\subsection*{psb\_halo --- Halo Data Communication} -\addcontentsline{toc}{subsection}{psb\_halo} +\clearpage\subsection{psb\_halo --- Halo Data Communication} These subroutines gathers the values of the halo @@ -88,7 +87,7 @@ An integer value that contains an error code. \begin{figure}[h] \begin{center} \ifcase\pdfoutput -\includegraphics[scale=0.45]{figures/try8x8.eps} +\includegraphics[scale=0.45]{try8x8.png} \or \includegraphics[scale=0.45]{figures/try8x8} \fi @@ -162,8 +161,7 @@ following: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\clearpage\subsection*{psb\_ovrl --- Overlap Update} -\addcontentsline{toc}{subsection}{psb\_ovrl} +\clearpage\subsection{psb\_ovrl --- Overlap Update} These subroutines applies an overlap operator to the input vector: @@ -267,7 +265,7 @@ their instances. \begin{figure}[h] \begin{center} \ifcase\pdfoutput -\includegraphics[scale=0.65]{figures/try8x8_ov.eps} +\includegraphics[scale=0.65]{try8x8_ov.png} \or {\includegraphics[scale=0.65]{figures/try8x8_ov}} \fi @@ -354,8 +352,7 @@ following (showing a transition among the two subdomains) % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\clearpage\subsection*{psb\_gather --- Gather Global Dense Matrix} -\addcontentsline{toc}{subsection}{psb\_gather} +\clearpage\subsection{psb\_gather --- Gather Global Dense Matrix} These subroutines collect the portions of global dense matrix distributed over all process into one single array stored on one @@ -456,8 +453,7 @@ An integer value; 0 means no error has been detected. % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\clearpage\subsection*{psb\_scatter --- Scatter Global Dense Matrix} -\addcontentsline{toc}{subsection}{psb\_scatter} +\clearpage\subsection{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. diff --git a/docs/src/datastruct.tex b/docs/src/datastruct.tex index 210476ea..72ee814b 100644 --- a/docs/src/datastruct.tex +++ b/docs/src/datastruct.tex @@ -182,8 +182,7 @@ state, which can take the following values: \subsubsection{Descriptor Methods} -\subsubsection*{get\_local\_rows --- Get number of local rows} -\addcontentsline{toc}{paragraph}{get\_local\_rows} +\subsubsection{get\_local\_rows --- Get number of local rows} \begin{verbatim} nr = desc%get_local_rows() @@ -208,8 +207,7 @@ Scope: {\bf local}.\\ \end{description} -\subsubsection*{get\_local\_cols --- Get number of local cols} -\addcontentsline{toc}{paragraph}{get\_local\_cols} +\subsubsection{get\_local\_cols --- Get number of local cols} \begin{verbatim} nc = desc%get_local_cols() @@ -235,8 +233,7 @@ Scope: {\bf local}.\\ \end{description} -\subsubsection*{get\_global\_rows --- Get number of global rows} -\addcontentsline{toc}{paragraph}{get\_global\_rows} +\subsubsection{get\_global\_rows --- Get number of global rows} \begin{verbatim} nr = desc%get_global_rows() @@ -258,8 +255,7 @@ Scope: {\bf local}.\\ global index space. \end{description} -\subsubsection*{get\_global\_cols --- Get number of global cols} -\addcontentsline{toc}{paragraph}{get\_global\_cols} +\subsubsection{get\_global\_cols --- Get number of global cols} \begin{verbatim} nr = desc%get_global_cols() @@ -282,8 +278,7 @@ Scope: {\bf local}.\\ \end{description} -\subsubsection*{get\_global\_indices --- Get vector of global indices} -\addcontentsline{toc}{paragraph}{get\_global\_indices} +\subsubsection{get\_global\_indices --- Get vector of global indices} \begin{verbatim} myidx = desc%get_global_indices([owned]) @@ -306,13 +301,12 @@ Type: {\bf optional}; default: \verb|.true.|.\\ \begin{description} \item[\bf On Return] \item[Function value] The global indices, returned as an allocatable - integer array of rank 1. + integer array of kind \verb|psb_lpk_| and rank 1. \end{description} -\subsubsection*{get\_context --- Get communication context} -\addcontentsline{toc}{paragraph}{get\_context} +\subsubsection{get\_context --- Get communication context} \begin{verbatim} ictxt = desc%get_context() @@ -333,8 +327,7 @@ Scope: {\bf local}.\\ \item[Function value] The communication context. \end{description} -\subsubsection*{Clone --- clone current object} -\addcontentsline{toc}{paragraph}{Clone} +\subsubsection{Clone --- clone current object} \begin{verbatim} call desc%clone(descout,info) @@ -357,8 +350,7 @@ Scope: {\bf local}.\\ \end{description} -\subsubsection*{CNV --- convert internal storage format} -\addcontentsline{toc}{paragraph}{CNV} +\subsubsection{CNV --- convert internal storage format} \begin{verbatim} call desc%cnv(mold) @@ -369,7 +361,7 @@ call desc%cnv(mold) \item[\bf On Entry] \item[desc] the communication descriptor.\\ Scope: {\bf local}.\\ -\item[mold] the desred integer storage format.\\ +\item[mold] the desired integer storage format.\\ Scope: {\bf local}.\\ % Type: {\bf required}.\\ % Intent: {\bf in}.\\ @@ -381,9 +373,8 @@ accelerators. -\subsubsection*{psb\_cd\_get\_large\_threshold --- Get threshold for +\subsubsection{psb\_cd\_get\_large\_threshold --- Get threshold for index mapping switch} -\addcontentsline{toc}{paragraph}{psb\_cd\_get\_large\_threshold} \begin{verbatim} ith = psb_cd_get_large_threshold() @@ -398,9 +389,9 @@ ith = psb_cd_get_large_threshold() -\subsubsection*{psb\_cd\_set\_large\_threshold --- Set threshold for +\subsubsection{psb\_cd\_set\_large\_threshold --- Set threshold for index mapping switch} -\addcontentsline{toc}{paragraph}{psb\_cd\_set\_large\_threshold} +%\addcontentsline{toc}{paragraph}{psb\_cd\_set\_large\_threshold} \begin{verbatim} call psb_cd_set_large_threshold(ith) @@ -421,6 +412,76 @@ has no effect on communication descriptors that have already been initialized. Moreover the threshold must have the same value on all processes. + +\subsubsection{get\_p\_adjcncy --- Get process adjacency list} +%\addcontentsline{toc}{paragraph}{get\_p\_adjcncy} + +\begin{verbatim} +list = desc%get_p_adjcncy() +\end{verbatim} + +\begin{description} +\item[Type:] Asynchronous. +\item[\bf On Return] +\item[Function value] The current list of adjacent processes, + i.e. processes with which the current one has to exchange halo + data. + +\end{description} + +\subsubsection{set\_p\_adjcncy --- Set process adjacency list} +%\addcontentsline{toc}{paragraph}{set\_p\_adjcncy} + +\begin{verbatim} +call desc%set_p_adjcncy(list) +\end{verbatim} + +\begin{description} +\item[Type:] Asynchronous. +\item[\bf On Entry] +\item[list] the list of adjacent processes.\\ +Scope: {\bf local}.\\ +Type: {\bf required}.\\ +Intent: {\bf in}.\\ +Specified as: a one-dimensional array of integers of kind \verb|psb_ipk_|. +\end{description} +Note: this method can be called after a call to \verb|psb_cdall| and +before a call to \verb|psb_cdasb|. The user is specifying here some +knowledge about which processes are topological neighbours of the +current process. The availability of this information may speed up the +execution of the assembly call \verb|psb_cdasb|. + + +\subsubsection{fnd\_owner --- Find the owner process of a set of indices} +%\addcontentsline{toc}{paragraph}{fnd\_owner} + +\begin{verbatim} +call desc%fnd_owner(idx,iprc,info) +\end{verbatim} + +\begin{description} +\item[Type:] Synchronous. +\item[\bf On Entry] +\item[idx] the list of global indices for which we need the owning processes.\\ +Scope: {\bf local}.\\ +Type: {\bf required}.\\ +Intent: {\bf in}.\\ +Specified as: a one-dimensional array of integers of kind \verb|psb_lpk_|. +\item[\bf On Return] +\item[iprc] the list of processes owning the indices in \verb|idx|.\\ +Scope: {\bf local}.\\ +Type: {\bf required}.\\ +Intent: {\bf in}.\\ +Specified as: an allocatable one-dimensional array of integers of kind \verb|psb_ipk_|. +\end{description} +Note: this method may or may not actually require communications, depending on +the exact internal data storage; given that the choice of storage may +be altered by runtime parameters, it is necessary for safety that this +method is called by all processes. + + + + \subsubsection{Named Constants} \label{sec:cd_constants} \begin{description} @@ -521,8 +582,8 @@ variants are obtained by conversion to/from it. \subsubsection{Sparse Matrix Methods} -\subsubsection*{get\_nrows --- Get number of rows in a sparse matrix} -\addcontentsline{toc}{paragraph}{get\_nrows} +\subsubsection{get\_nrows --- Get number of rows in a sparse matrix} +%\addcontentsline{toc}{paragraph}{get\_nrows} \begin{verbatim} nr = a%get_nrows() @@ -544,9 +605,9 @@ Scope: {\bf local}\\ \end{description} -\subsubsection*{get\_ncols --- Get number of columns in a sparse +\subsubsection{get\_ncols --- Get number of columns in a sparse matrix} -\addcontentsline{toc}{paragraph}{get\_ncols} +%\addcontentsline{toc}{paragraph}{get\_ncols} \begin{verbatim} nc = a%get_ncols() @@ -568,9 +629,9 @@ Scope: {\bf local}\\ \end{description} -\subsubsection*{get\_nnzeros --- Get number of nonzero elements +\subsubsection{get\_nnzeros --- Get number of nonzero elements in a sparse matrix} -\addcontentsline{toc}{paragraph}{get\_nnzeros} +%\addcontentsline{toc}{paragraph}{get\_nnzeros} \begin{verbatim} nz = a%get_nnzeros() @@ -598,9 +659,9 @@ Scope: {\bf local}\\ value for the same matrix may be different for different storage choices. \end{enumerate} -\subsubsection*{get\_size --- Get maximum number of nonzero elements +\subsubsection{get\_size --- Get maximum number of nonzero elements in a sparse matrix} -\addcontentsline{toc}{paragraph}{get\_size } +%\addcontentsline{toc}{paragraph}{get\_size } \begin{verbatim} maxnz = a%get_size() @@ -622,9 +683,9 @@ Scope: {\bf local}\\ be stored in sparse matrix \verb|a| using its current memory allocation. \end{description} -\subsubsection*{sizeof --- Get memory occupation in bytes +\subsubsection{sizeof --- Get memory occupation in bytes of a sparse matrix} -\addcontentsline{toc}{paragraph}{sizeof } +%\addcontentsline{toc}{paragraph}{sizeof } \begin{verbatim} memory_size = a%sizeof() @@ -646,8 +707,8 @@ Scope: {\bf local}\\ \end{description} -\subsubsection*{get\_fmt --- Short description of the dynamic type} -\addcontentsline{toc}{paragraph}{get\_fmt } +\subsubsection{get\_fmt --- Short description of the dynamic type} +%\addcontentsline{toc}{paragraph}{get\_fmt } \begin{verbatim} write(*,*) a%get_fmt() @@ -670,8 +731,8 @@ Scope: {\bf local}\\ \verb|CSR| and \verb|CSC|. \end{description} -\subsubsection*{is\_bld, is\_upd, is\_asb --- Status check} -\addcontentsline{toc}{paragraph}{is\_bld, is\_upd, is\_asb } +\subsubsection{is\_bld, is\_upd, is\_asb --- Status check} +%\addcontentsline{toc}{paragraph}{is\_bld, is\_upd, is\_asb } \begin{verbatim} if (a%is_bld()) then @@ -695,9 +756,9 @@ Scope: {\bf local}\\ matrix is in the Build, Update or Assembled state, respectively. \end{description} -\subsubsection*{is\_lower, is\_upper, is\_triangle, is\_unit --- +\subsubsection{is\_lower, is\_upper, is\_triangle, is\_unit --- Format check} -\addcontentsline{toc}{paragraph}{is\_lower, is\_upper, is\_triangle, is\_unit} +%\addcontentsline{toc}{paragraph}{is\_lower, is\_upper, is\_triangle, is\_unit} \begin{verbatim} if (a%is_triangle()) then @@ -725,8 +786,8 @@ Scope: {\bf local}\\ \end{description} -\subsubsection*{cscnv --- Convert to a different storage format} -\addcontentsline{toc}{paragraph}{cscnv} +\subsubsection{cscnv --- Convert to a different storage format} +%\addcontentsline{toc}{paragraph}{cscnv} \begin{verbatim} call a%cscnv(b,info [, type, mold, dupl]) @@ -758,8 +819,8 @@ employed to interface with special devices, such as GPUs and other accelerators. -\subsubsection*{csclip --- Reduce to a submatrix} -\addcontentsline{toc}{paragraph}{csclip} +\subsubsection{csclip --- Reduce to a submatrix} +%\addcontentsline{toc}{paragraph}{csclip} \begin{verbatim} call a%csclip(b,info[,& & imin,imax,jmin,jmax,rscale,cscale]) @@ -786,8 +847,8 @@ A variable of type \verb|psb_Tspmat_type|. \item[info] Return code. \end{description} -\subsubsection*{clean\_zeros --- Eliminate zero coefficients} -\addcontentsline{toc}{paragraph}{clean\_zeros} +\subsubsection{clean\_zeros --- Eliminate zero coefficients} +%\addcontentsline{toc}{paragraph}{clean\_zeros} \begin{verbatim} call a%clean_zeros(info) \end{verbatim} @@ -810,8 +871,8 @@ A variable of type \verb|psb_Tspmat_type|. \item[info] Return code. \end{description} -\subsubsection*{get\_diag --- Get main diagonal} -\addcontentsline{toc}{paragraph}{get\_diag} +\subsubsection{get\_diag --- Get main diagonal} +%\addcontentsline{toc}{paragraph}{get\_diag} \begin{verbatim} call a%get_diag(d,info) \end{verbatim} @@ -832,8 +893,8 @@ A one-dimensional array of the appropriate type. \end{description} -\subsubsection*{clip\_diag --- Cut out main diagonal} -\addcontentsline{toc}{paragraph}{clip\_diag} +\subsubsection{clip\_diag --- Cut out main diagonal} +%\addcontentsline{toc}{paragraph}{clip\_diag} \begin{verbatim} call a%clip_diag(b,info) \end{verbatim} @@ -854,8 +915,8 @@ A variable of type \verb|psb_Tspmat_type|. \end{description} -\subsubsection*{tril --- Return the lower triangle} -\addcontentsline{toc}{paragraph}{tril} +\subsubsection{tril --- Return the lower triangle} +%\addcontentsline{toc}{paragraph}{tril} \begin{verbatim} call a%tril(l,info[,& & diag,imin,imax,jmin,jmax,rscale,cscale,u]) @@ -888,8 +949,8 @@ A variable of type \verb|psb_Tspmat_type|. \item[info] Return code. \end{description} -\subsubsection*{triu --- Return the upper triangle} -\addcontentsline{toc}{paragraph}{triu} +\subsubsection{triu --- Return the upper triangle} +%\addcontentsline{toc}{paragraph}{triu} \begin{verbatim} call a%triu(u,info[,& & diag,imin,imax,jmin,jmax,rscale,cscale,l]) @@ -925,8 +986,8 @@ A variable of type \verb|psb_Tspmat_type|. -\subsubsection*{psb\_set\_mat\_default --- Set default storage format} -\addcontentsline{toc}{paragraph}{psb\_set\_mat\_default} +\subsubsection{psb\_set\_mat\_default --- Set default storage format} +%\addcontentsline{toc}{paragraph}{psb\_set\_mat\_default} \begin{verbatim} @@ -945,8 +1006,8 @@ Type: required. -\subsubsection*{clone --- Clone current object} -\addcontentsline{toc}{paragraph}{clone} +\subsubsection{clone --- Clone current object} +%\addcontentsline{toc}{paragraph}{clone} \begin{verbatim} call a%clone(b,info) @@ -1042,8 +1103,8 @@ private memory. \end{figure} \subsubsection{Vector Methods} -\subsubsection*{get\_nrows --- Get number of rows in a dense vector} -\addcontentsline{toc}{paragraph}{get\_nrows} +\subsubsection{get\_nrows --- Get number of rows in a dense vector} +%\addcontentsline{toc}{paragraph}{get\_nrows} \begin{verbatim} nr = v%get_nrows() @@ -1065,9 +1126,9 @@ Scope: {\bf local}\\ \end{description} -\subsubsection*{sizeof --- Get memory occupation in bytes +\subsubsection{sizeof --- Get memory occupation in bytes of a dense vector} -\addcontentsline{toc}{paragraph}{sizeof } +%\addcontentsline{toc}{paragraph}{sizeof } \begin{verbatim} memory_size = v%sizeof() @@ -1089,8 +1150,8 @@ Scope: {\bf local}\\ \end{description} -\subsubsection*{set --- Set contents of the vector} -\addcontentsline{toc}{paragraph}{set } +\subsubsection{set --- Set contents of the vector} +%\addcontentsline{toc}{paragraph}{set } \begin{verbatim} call v%set(alpha[,first,last]) @@ -1127,8 +1188,8 @@ constant having the appropriate type and kind. Scope: {\bf local}\\ \end{description} -\subsubsection*{get\_vect --- Get a copy of the vector contents} -\addcontentsline{toc}{paragraph}{get\_vect } +\subsubsection{get\_vect --- Get a copy of the vector contents} +%\addcontentsline{toc}{paragraph}{get\_vect } \begin{verbatim} extv = v%get_vect([n]) @@ -1157,8 +1218,8 @@ Type: {\bf optional}; default: entire vector.\\ array is the same as the internal size of the vector. \end{description} -\subsubsection*{clone --- Clone current object} -\addcontentsline{toc}{paragraph}{clone} +\subsubsection{clone --- Clone current object} +%\addcontentsline{toc}{paragraph}{clone} \begin{verbatim} call x%clone(y,info) \end{verbatim} diff --git a/docs/src/error.tex b/docs/src/error.tex index bbef2da4..a483d3d1 100644 --- a/docs/src/error.tex +++ b/docs/src/error.tex @@ -119,9 +119,10 @@ Aborting... \end{figure} -\clearpage\subroutine{psb\_errpush}{Pushes an error code onto the error +\clearpage\subsection{psb\_errpush --- Pushes an error code onto the error stack} + \begin{lstlisting} call psb_errpush(err_c, r_name, i_err, a_err) \end{lstlisting} @@ -149,7 +150,7 @@ Type: {\bf optional}\\ Specified as: a string.\\ \end{description} -\clearpage\subroutine{psb\_error}{Prints the error stack content and aborts +\clearpage\subsection{psb\_error --- Prints the error stack content and aborts execution} \begin{lstlisting} @@ -168,8 +169,9 @@ Specified as: an integer. -\clearpage\subroutine{psb\_set\_errverbosity}{Sets the verbosity of error - messages.} +\clearpage\subsection{psb\_set\_errverbosity --- Sets the verbosity of error + messages} + \begin{lstlisting} call psb_set_errverbosity(v) @@ -185,9 +187,8 @@ Intent: {\bf in}.\\ Specified as: an integer. \end{description} -\clearpage\subroutine{psb\_set\_erraction}{Set the type of action to be - taken upon error condition.} - +\clearpage\subsection{psb\_set\_erraction --- Set the type of action to be + taken upon error condition} \begin{lstlisting} call psb_set_erraction(err_act) @@ -205,27 +206,6 @@ Specified as: an integer. Possible values: \verb|psb_act_ret|, \end{description} - -%% \clearpage\subroutine{psb\_errcomm}{Error communication routine} - -%% \begin{lstlisting} -%% call psb_errcomm(icontxt, err) -%% \end{lstlisting} - -%% \begin{description} -%% \item[\bf On Entry] -%% \item[icontxt] the communication context.\\ -%% Scope: {\bf global} \\ -%% Type: {\bf required}\\ -%% Intent: {\bf in}.\\ -%% Specified as: an integer. -%% \item[err] the error code to be communicated\\ -%% Scope: {\bf global} \\ -%% Type: {\bf required}\\ -%% Intent: {\bf inout}.\\ -%% Specified as: an integer.\\ -%% \end{description} - %%% Local Variables: %%% mode: latex %%% TeX-master: "userguide" diff --git a/docs/src/figures/points.png b/docs/src/figures/points.png new file mode 100644 index 00000000..097201d3 Binary files /dev/null and b/docs/src/figures/points.png differ diff --git a/docs/src/figures/psblas.png b/docs/src/figures/psblas.png new file mode 100644 index 00000000..c904340d Binary files /dev/null and b/docs/src/figures/psblas.png differ diff --git a/docs/src/figures/try8x8.png b/docs/src/figures/try8x8.png new file mode 100644 index 00000000..4ff4882c Binary files /dev/null and b/docs/src/figures/try8x8.png differ diff --git a/docs/src/figures/try8x8_ov.png b/docs/src/figures/try8x8_ov.png new file mode 100644 index 00000000..a5025abe Binary files /dev/null and b/docs/src/figures/try8x8_ov.png differ diff --git a/docs/src/intro.tex b/docs/src/intro.tex index d0fb9b8c..0ee391a5 100644 --- a/docs/src/intro.tex +++ b/docs/src/intro.tex @@ -101,7 +101,7 @@ further details on our communication layer see Sec.~\ref{sec:parenv}. \begin{figure}[h] \begin{center} \ifcase\pdfoutput -\includegraphics[scale=0.65]{figures/psblas.eps} +\includegraphics[scale=0.65]{psblas.png} \or \includegraphics[scale=0.65]{figures/psblas} \fi @@ -218,7 +218,7 @@ local rows) is $|{\cal I}_i| + |{\cal B}_i| +|{\cal H}_i|$. \begin{center} \ifcase\pdfoutput %\rotatebox{-90}{ -\includegraphics[scale=0.65]{figures/points.eps}%} +\includegraphics[scale=0.65]{points.png}%} \or \rotatebox{-90}{\includegraphics[scale=0.65]{figures/points}} \fi diff --git a/docs/src/methods.tex b/docs/src/methods.tex index 6a80f92c..4b2f8b66 100644 --- a/docs/src/methods.tex +++ b/docs/src/methods.tex @@ -11,9 +11,8 @@ the module \verb|psb_krylov_mod|. % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\clearpage\subsection*{psb\_krylov \label{krylov} --- Krylov Methods Driver +\clearpage\subsection{psb\_krylov \label{krylov} --- Krylov Methods Driver Routine} -\addcontentsline{toc}{subsection}{psb\_krylov} This subroutine is a driver that provides a general interface for all the Krylov-Subspace family methods implemented in PSBLAS version 2. diff --git a/docs/src/penv.tex b/docs/src/penv.tex index 9fd2c968..9465c8b3 100644 --- a/docs/src/penv.tex +++ b/docs/src/penv.tex @@ -1,10 +1,10 @@ + \section{Parallel environment routines} \label{sec:parenv} -\clearpage\subsection*{psb\_init --- Initializes PSBLAS parallel +\clearpage\subsection{psb\_init --- Initializes PSBLAS parallel environment} -\addcontentsline{toc}{subsection}{psb\_init} \begin{verbatim} call psb_init(icontxt, np, basectxt, ids) @@ -61,9 +61,8 @@ Specified as: an integer variable. \end{enumerate} -\clearpage\subsection*{psb\_info --- Return information about PSBLAS parallel +\clearpage\subsection{psb\_info --- Return information about PSBLAS parallel environment} -\addcontentsline{toc}{subsection}{psb\_info} \begin{verbatim} call psb_info(icontxt, iam, np) @@ -109,9 +108,8 @@ Specified as: an integer variable. \ \end{enumerate} -\clearpage\subsection*{psb\_exit --- Exit from PSBLAS parallel +\clearpage\subsection{psb\_exit --- Exit from PSBLAS parallel environment} -\addcontentsline{toc}{subsection}{psb\_exit} \begin{verbatim} call psb_exit(icontxt) @@ -153,14 +151,13 @@ Specified as: a logical variable, default value: true. \end{enumerate} -\clearpage\subsection*{psb\_get\_mpicomm --- Get the MPI communicator} -\addcontentsline{toc}{subsection}{psb\_get\_mpicomm} +\clearpage\subsection{psb\_get\_mpi\_comm --- Get the MPI communicator} \begin{verbatim} -icomm = psb_get_mpicomm(icontxt) +icomm = psb_get_mpi_comm(icontxt) \end{verbatim} -This subroutine returns the MPI communicator associated with a PSBLAS context +This function returns the MPI communicator associated with a PSBLAS context \begin{description} \item[Type:] Asynchronous. \item[\bf On Entry ] @@ -180,15 +177,17 @@ Type: {\bf required}.\\ Intent: {\bf out}.\\ \end{description} +{\par\noindent\large\bfseries Notes} +The subroutine version \verb|psb_get_mpicomm| is still available but +is deprecated. -\clearpage\subsection*{psb\_get\_rank --- Get the MPI rank} -\addcontentsline{toc}{subsection}{psb\_get\_rank} +\clearpage\subsection{psb\_get\_mpi\_rank --- Get the MPI rank} \begin{verbatim} -rank = psb_get_rank(icontxt, id) +rank = psb_get_mpi_rank(icontxt, id) \end{verbatim} -This subroutine returns the MPI rank of the PSBLAS process $id$ +This function returns the MPI rank of the PSBLAS process $id$ \begin{description} \item[Type:] Asynchronous. \item[\bf On Entry ] @@ -213,11 +212,13 @@ Type: {\bf required}.\\ Intent: {\bf out}.\\ \end{description} +{\par\noindent\large\bfseries Notes} +The subroutine version \verb|psb_get_rank| is still available but is +deprecated. -\clearpage\subsection*{psb\_wtime --- Wall clock timing} -\addcontentsline{toc}{subsection}{psb\_wtime} +\clearpage\subsection{psb\_wtime --- Wall clock timing} \begin{verbatim} time = psb_wtime() @@ -233,9 +234,8 @@ Returned as: a \verb|real(psb_dpk_)| variable. \end{description} -\clearpage\subsection*{psb\_barrier --- Sinchronization point parallel +\clearpage\subsection{psb\_barrier --- Sinchronization point parallel environment} -\addcontentsline{toc}{subsection}{psb\_barrier} \begin{verbatim} call psb_barrier(icontxt) @@ -255,8 +255,7 @@ Specified as: an integer variable. \end{description} -\clearpage\subsection*{psb\_abort --- Abort a computation} -\addcontentsline{toc}{subsection}{psb\_abort} +\clearpage\subsection{psb\_abort --- Abort a computation} \begin{verbatim} call psb_abort(icontxt) @@ -278,8 +277,7 @@ Specified as: an integer variable. -\clearpage\subsection*{psb\_bcast --- Broadcast data} -\addcontentsline{toc}{subsection}{psb\_bcast} +\clearpage\subsection{psb\_bcast --- Broadcast data} \begin{verbatim} call psb_bcast(icontxt, dat, root) @@ -324,8 +322,7 @@ Type, kind, rank and size must agree on all processes. \end{description} -\clearpage\subsection*{psb\_sum --- Global sum} -\addcontentsline{toc}{subsection}{psb\_sum} +\clearpage\subsection{psb\_sum --- Global sum} \begin{verbatim} call psb_sum(icontxt, dat, root) @@ -379,8 +376,7 @@ Type, kind, rank and size must agree on all processes. -\clearpage\subsection*{psb\_max --- Global maximum} -\addcontentsline{toc}{subsection}{psb\_max} +\clearpage\subsection{psb\_max --- Global maximum} \begin{verbatim} call psb_max(icontxt, dat, root) @@ -433,8 +429,7 @@ Type, kind, rank and size must agree on all processes. \item The \verb|dat| argument may also be a long integer scalar. \end{enumerate} -\clearpage\subsection*{psb\_min --- Global minimum} -\addcontentsline{toc}{subsection}{psb\_min} +\clearpage\subsection{psb\_min --- Global minimum} \begin{verbatim} call psb_min(icontxt, dat, root) @@ -487,8 +482,7 @@ Type, kind, rank and size must agree on all processes. \item The \verb|dat| argument may also be a long integer scalar. \end{enumerate} -\clearpage\subsection*{psb\_amx --- Global maximum absolute value} -\addcontentsline{toc}{subsection}{psb\_amx} +\clearpage\subsection{psb\_amx --- Global maximum absolute value} \begin{verbatim} call psb_amx(icontxt, dat, root) @@ -541,8 +535,7 @@ Type, kind, rank and size must agree on all processes. \item The \verb|dat| argument may also be a long integer scalar. \end{enumerate} -\clearpage\subsection*{psb\_amn --- Global minimum absolute value} -\addcontentsline{toc}{subsection}{psb\_amn} +\clearpage\subsection{psb\_amn --- Global minimum absolute value} \begin{verbatim} call psb_amn(icontxt, dat, root) @@ -595,8 +588,7 @@ Type, kind, rank and size must agree on all processes. \item The \verb|dat| argument may also be a long integer scalar. \end{enumerate} -\clearpage\subsection*{psb\_nrm2 --- Global 2-norm reduction} -\addcontentsline{toc}{subsection}{psb\_nrm2} +\clearpage\subsection{psb\_nrm2 --- Global 2-norm reduction} \begin{verbatim} call psb_nrm2(icontxt, dat, root) @@ -656,8 +648,7 @@ Kind, rank and size must agree on all processes. -\clearpage\subsection*{psb\_snd --- Send data} -\addcontentsline{toc}{subsection}{psb\_snd} +\clearpage\subsection{psb\_snd --- Send data} \begin{verbatim} call psb_snd(icontxt, dat, dst, m) @@ -708,8 +699,7 @@ same value on sending and receiving processes. \end{enumerate} -\clearpage\subsection*{psb\_rcv --- Receive data} -\addcontentsline{toc}{subsection}{psb\_rcv} +\clearpage\subsection{psb\_rcv --- Receive data} \begin{verbatim} call psb_rcv(icontxt, dat, src, m) diff --git a/docs/src/precs.tex b/docs/src/precs.tex index 6c58bbc0..b976b7ad 100644 --- a/docs/src/precs.tex +++ b/docs/src/precs.tex @@ -23,9 +23,7 @@ backward compatibility %% package, which will characterize release 2.1 of our library. - -\clearpage\subsection*{init --- Initialize a preconditioner} -\addcontentsline{toc}{subsection}{prec\%init} +\clearpage\subsection{init --- Initialize a preconditioner} \begin{verbatim} call prec%init(icontxt,ptype, info) @@ -86,8 +84,7 @@ $ptype$ string as follows\footnote{The string is case-insensitive}: \end{description} -\clearpage\subsection*{build --- Builds a preconditioner} -\addcontentsline{toc}{subsection}{prec\%build} +\clearpage\subsection{build --- Builds a preconditioner} \begin{verbatim} call prec%build(a, desc_a, info[,amold,vmold,imold]) @@ -152,9 +149,8 @@ accelerators. -\clearpage\subsection*{apply --- Preconditioner application +\clearpage\subsection{apply --- Preconditioner application routine} -\addcontentsline{toc}{subsection}{prec\%apply} \begin{verbatim} call prec%apply(x,y,desc_a,info,trans,work) @@ -207,9 +203,8 @@ An integer value; 0 means no error has been detected. -\clearpage\subsection*{descr --- Prints a description of current +\clearpage\subsection{descr --- Prints a description of current preconditioner} -\addcontentsline{toc}{subsection}{prec\%descr} \begin{verbatim} call prec%descr() @@ -240,9 +235,8 @@ all processes will print. Default: 0. -\clearpage\subsection*{clone --- clone current +\clearpage\subsection{clone --- clone current preconditioner} -\addcontentsline{toc}{subsection}{clone} \begin{verbatim} call prec%clone(precout,info) \end{verbatim} @@ -264,8 +258,7 @@ Scope: {\bf local}.\\ \end{description} -\clearpage\subsection*{free --- Free a preconditioner} -\addcontentsline{toc}{subsection}{prec\%free} +\clearpage\subsection{free --- Free a preconditioner} \begin{verbatim} call prec%free(info) diff --git a/docs/src/psbrout.tex b/docs/src/psbrout.tex index d8288093..fbe0d3da 100644 --- a/docs/src/psbrout.tex +++ b/docs/src/psbrout.tex @@ -5,8 +5,7 @@ % DENSE MATRIX SUM % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\clearpage\subsection*{psb\_geaxpby --- General Dense Matrix Sum} -\addcontentsline{toc}{subsection}{psb\_geaxpby} +\clearpage\subsection{psb\_geaxpby --- General Dense Matrix Sum} This subroutine is an interface to the computational kernel for dense matrix sum: @@ -111,8 +110,7 @@ An integer value; 0 means no error has been detected. % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\clearpage\subsection*{psb\_gedot --- Dot Product} -\addcontentsline{toc}{subsection}{psb\_gedot} +\clearpage\subsection{psb\_gedot --- Dot Product} This function computes dot product between two vectors $x$ and $y$.\\ @@ -229,8 +227,7 @@ An integer value; 0 means no error has been detected. % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\clearpage\subsection*{psb\_gedots --- Generalized Dot Product} -\addcontentsline{toc}{subsection}{psb\_gedots} +\clearpage\subsection{psb\_gedots --- Generalized Dot Product} This subroutine computes a series of dot products among the columns of two dense matrices $x$ and $y$: @@ -303,8 +300,7 @@ An integer value; 0 means no error has been detected. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\clearpage\subsection*{psb\_normi --- Infinity-Norm of Vector} -\addcontentsline{toc}{subsection}{psb\_normi} +\clearpage\subsection{psb\_normi --- Infinity-Norm of Vector} This function computes the infinity-norm of a vector $x$.\\ @@ -407,8 +403,7 @@ An integer value; 0 means no error has been detected. % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\clearpage\subsection*{psb\_geamaxs --- Generalized Infinity Norm} -\addcontentsline{toc}{subsection}{psb\_geamaxs} +\clearpage\subsection{psb\_geamaxs --- Generalized Infinity Norm} This subroutine computes a series of infinity norms on the columns of a dense matrix $x$: @@ -469,8 +464,7 @@ An integer value; 0 means no error has been detected. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\clearpage\subsection*{psb\_norm1 --- 1-Norm of Vector} -\addcontentsline{toc}{subsection}{psb\_norm1} +\clearpage\subsection{psb\_norm1 --- 1-Norm of Vector} This function computes the 1-norm of a vector $x$.\\ If $x$ is a real vector @@ -557,8 +551,7 @@ An integer value; 0 means no error has been detected. \end{enumerate} -\clearpage\subsection*{psb\_geasums --- Generalized 1-Norm of Vector} -\addcontentsline{toc}{subsection}{psb\_geasums} +\clearpage\subsection{psb\_geasums --- Generalized 1-Norm of Vector} This subroutine computes a series of 1-norms on the columns of a dense matrix $x$: @@ -631,8 +624,7 @@ An integer value; 0 means no error has been detected. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\clearpage\subsection*{psb\_norm2 --- 2-Norm of Vector} -\addcontentsline{toc}{subsection}{psb\_norm2} +\clearpage\subsection{psb\_norm2 --- 2-Norm of Vector} This function computes the 2-norm of a vector $x$.\\ If $x$ is a real vector @@ -730,8 +722,7 @@ An integer value; 0 means no error has been detected. -\clearpage\subsection*{psb\_genrm2s --- Generalized 2-Norm of Vector} -\addcontentsline{toc}{subsection}{psb\_genrm2s} +\clearpage\subsection{psb\_genrm2s --- Generalized 2-Norm of Vector} This subroutine computes a series of 2-norms on the columns of a dense matrix $x$: @@ -798,8 +789,7 @@ An integer value; 0 means no error has been detected. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\clearpage\subsection*{psb\_norm1 --- 1-Norm of Sparse Matrix} -\addcontentsline{toc}{subsection}{psb\_norm1} +\clearpage\subsection{psb\_norm1 --- 1-Norm of Sparse Matrix} This function computes the 1-norm of a matrix $A$:\\ @@ -863,8 +853,7 @@ An integer value; 0 means no error has been detected. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\clearpage\subsection*{psb\_normi --- Infinity Norm of Sparse Matrix} -\addcontentsline{toc}{subsection}{psb\_normi} +\clearpage\subsection{psb\_normi --- Infinity Norm of Sparse Matrix} This function computes the infinity-norm of a matrix $A$:\\ @@ -928,9 +917,8 @@ An integer value; 0 means no error has been detected. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\clearpage\subsection*{psb\_spmm --- Sparse Matrix by Dense Matrix +\clearpage\subsection{psb\_spmm --- Sparse Matrix by Dense Matrix Product} -\addcontentsline{toc}{subsection}{psb\_spmm} This subroutine computes the Sparse Matrix by Dense Matrix Product: @@ -1081,8 +1069,7 @@ An integer value; 0 means no error has been detected. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\clearpage\subsection*{psb\_spsm --- Triangular System Solve} -\addcontentsline{toc}{subsection}{psb\_spsm} +\clearpage\subsection{psb\_spsm --- Triangular System Solve} This subroutine computes the Triangular System Solve: @@ -1244,8 +1231,216 @@ Intent: {\bf out}.\\ An integer value; 0 means no error has been detected. \end{description} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% VECTOR VECTOR OPERATIONS +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +\clearpage\subsection{psb\_gemlt --- Entrywise Product} + +This function computes the entrywise product between two vectors $x$ and +$y$ +\[dot \leftarrow x(i) y(i).\] + +\begin{verbatim} +psb_gemlt(x, y, desc_a, info) +\end{verbatim} +%% \syntax*{psb\_gedot}{x, y, desc\_a, info, jx, jy} +\begin{table}[h] + \begin{center} + \begin{tabular}{ll} + \hline + $dot$, $x$, $y$ & {\bf Function}\\ + \hline + Short Precision Real & psb\_gemlt \\ + Long Precision Real & psb\_gemlt \\ + Short Precision Complex & psb\_gemlt \\ + Long Precision Complex & psb\_gemlt \\ + \hline + \end{tabular} + \end{center} + \caption{Data types\label{tab:f90mlt}} +\end{table} + +\begin{description} + \item[Type:] Synchronous. + \item[\bf On Entry] + \item[x] the local portion of global dense vector + $x$.\\ + %% This function computes the location of the first element of + %% local subarray used, based on $jx$ and the field $matrix\_data$ of $desc\_a$ . \\ + Scope: {\bf local} \\ + Type: {\bf required} \\ + Intent: {\bf in}.\\ + Specified as: an object of type \vdata\ + containing numbers of type specified in + Table~\ref{tab:f90dot}. + \item[y] the local portion of global dense vector + $y$. \\ + %% This function computes the location of the first element of + %% local subarray used, based on $iy, jy$ and the field $matrix\_data$ of $desc\_a$ . \\ + Scope: {\bf local} \\ + Type: {\bf required} \\ + Intent: {\bf in}.\\ + Specified as: an object of type \vdata\ + containing numbers of type specified in + Table~\ref{tab:f90dot}. + \item[desc\_a] contains data structures for communications.\\ + Scope: {\bf local} \\ + Type: {\bf required}\\ + Intent: {\bf in}.\\ + Specified as: an object of type \descdata. + \item[\bf On Return] + \item[y] the local portion of result submatrix $y$.\\ + Scope: {\bf local} \\ + Type: {\bf required} \\ + Intent: {\bf inout}.\\ + Specified as: an object of type \vdata\ containing numbers of the type + indicated in Table~\ref{tab:f90mlt}. + \item[info] Error code.\\ + Scope: {\bf local} \\ + Type: {\bf required} \\ + Intent: {\bf out}.\\ + An integer value; 0 means no error has been detected. +\end{description} + +\clearpage\subsection{psb\_gediv --- Entrywise Division} + +This function computes the entrywise division between two vectors $x$ and +$y$ +\[/ \leftarrow x(i)/y(i).\] +\begin{verbatim} +psb_gediv(x, y, desc_a, info, [flag) +\end{verbatim} +%% \syntax*{psb\_gedot}{x, y, desc\_a, info, jx, jy} +\begin{table}[h] + \begin{center} + \begin{tabular}{ll} + \hline + $/$, $x$, $y$ & {\bf Function}\\ + \hline + Short Precision Real & psb\_gediv \\ + Long Precision Real & psb\_gediv \\ + Short Precision Complex & psb\_gediv \\ + Long Precision Complex & psb\_gediv \\ + \hline + \end{tabular} + \end{center} + \caption{Data types\label{tab:f90div}} +\end{table} + +\begin{description} + \item[Type:] Synchronous. + \item[\bf On Entry] + \item[x] the local portion of global dense vector + $x$.\\ + %% This function computes the location of the first element of + %% local subarray used, based on $jx$ and the field $matrix\_data$ of $desc\_a$ . \\ + Scope: {\bf local} \\ + Type: {\bf required} \\ + Intent: {\bf in}.\\ + Specified as: an object of type \vdata\ + containing numbers of type specified in + Table~\ref{tab:f90dot}. + \item[y] the local portion of global dense vector + $y$. \\ + %% This function computes the location of the first element of + %% local subarray used, based on $iy, jy$ and the field $matrix\_data$ of $desc\_a$ . \\ + Scope: {\bf local} \\ + Type: {\bf required} \\ + Intent: {\bf in}.\\ + Specified as: an object of type \vdata\ + containing numbers of type specified in + Table~\ref{tab:f90dot}. + \item[desc\_a] contains data structures for communications.\\ + Scope: {\bf local} \\ + Type: {\bf required}\\ + Intent: {\bf in}.\\ + Specified as: an object of type \descdata. + \item[flag] check if any of the $y(i) = 0$, and in case returns error halting the computation.\\ + Scope: {\bf local} \\ + Type: {\bf optional} + Intent: {\bf in}.\\ + Specified as: the logical value \verb|flag=.true.| + \item[\bf On Return] + \item[x] the local portion of result submatrix $x$.\\ + Scope: {\bf local} \\ + Type: {\bf required} \\ + Intent: {\bf inout}.\\ + Specified as: an object of type \vdata\ containing numbers of the type + indicated in Table~\ref{tab:f90mlt}. + \item[info] Error code.\\ + Scope: {\bf local} \\ + Type: {\bf required} \\ + Intent: {\bf out}.\\ + An integer value; 0 means no error has been detected. +\end{description} + +\clearpage\subsection{psb\_geinv --- Entrywise Inversion} +This function computes the entrywise inverse of a vector $x$ and puts it into +$y$ +\[/ \leftarrow 1/x(i).\] + +\begin{verbatim} +psb_geinv(x, y, desc_a, info, [flag) +\end{verbatim} +%% \syntax*{psb\_gedot}{x, y, desc\_a, info, jx, jy} +\begin{table}[h] + \begin{center} + \begin{tabular}{ll} + \hline + $/$, $x$, $y$ & {\bf Function}\\ + \hline + Short Precision Real & psb\_geinv \\ + Long Precision Real & psb\_geinv \\ + Short Precision Complex & psb\_geinv \\ + Long Precision Complex & psb\_geinv \\ + \hline + \end{tabular} + \end{center} + \caption{Data types\label{tab:f90inv}} +\end{table} + +\begin{description} + \item[Type:] Synchronous. + \item[\bf On Entry] + \item[x] the local portion of global dense vector + $x$.\\ + %% This function computes the location of the first element of + %% local subarray used, based on $jx$ and the field $matrix\_data$ of $desc\_a$ . \\ + Scope: {\bf local} \\ + Type: {\bf required} \\ + Intent: {\bf in}.\\ + Specified as: an object of type \vdata\ + containing numbers of type specified in + Table~\ref{tab:f90dot}. + \item[desc\_a] contains data structures for communications.\\ + Scope: {\bf local} \\ + Type: {\bf required}\\ + Intent: {\bf in}.\\ + Specified as: an object of type \descdata. + \item[flag] check if any of the $x(i) = 0$, and in case returns error halting the computation.\\ + Scope: {\bf local} \\ + Type: {\bf optional} + Intent: {\bf in}.\\ + Specified as: the logical value \verb|flag=.true.| + \item[\bf On Return] + \item[y] the local portion of result submatrix $x$.\\ + Scope: {\bf local} \\ + Type: {\bf required} \\ + Intent: {\bf out}.\\ + Specified as: an object of type \vdata\ containing numbers of the type + indicated in Table~\ref{tab:f90inv}. + \item[info] Error code.\\ + Scope: {\bf local} \\ + Type: {\bf required} \\ + Intent: {\bf out}.\\ + An integer value; 0 means no error has been detected. +\end{description} %%% Local Variables: %%% mode: latex diff --git a/docs/src/toolsrout.tex b/docs/src/toolsrout.tex index 68554c40..95639b84 100644 --- a/docs/src/toolsrout.tex +++ b/docs/src/toolsrout.tex @@ -5,8 +5,7 @@ % %% psb_cdall %% % -\subsection*{psb\_cdall --- Allocates a communication descriptor} -\addcontentsline{toc}{subsection}{psb\_cdall} +\subsection{psb\_cdall --- Allocates a communication descriptor} \begin{verbatim} call psb_cdall(icontxt, desc_a, info,mg=mg,parts=parts) @@ -196,9 +195,8 @@ An integer value; 0 means no error has been detected. % %% psb_cdins %% % -\clearpage\subsection*{psb\_cdins --- Communication descriptor insert +\clearpage\subsection{psb\_cdins --- Communication descriptor insert routine} -\addcontentsline{toc}{subsection}{psb\_cdins} \begin{verbatim} call psb_cdins(nz, ia, ja, desc_a, info [,ila,jla]) @@ -292,9 +290,8 @@ nor the end vertex belong to the current process. % %% psb_cdasb %% % -\clearpage\subsection*{psb\_cdasb --- Communication descriptor assembly +\clearpage\subsection{psb\_cdasb --- Communication descriptor assembly routine} -\addcontentsline{toc}{subsection}{psb\_cdasb} \begin{verbatim} call psb_cdasb(desc_a, info [, mold]) @@ -334,14 +331,20 @@ An integer value; 0 means no error has been detected. \item On exit from this routine the descriptor is in the assembled state. \end{enumerate} - - +This call will set up all the necessary information for the halo data +exchanges. In doing so, the library will need to identify the set of +processes owning the halo indices through the use of the +\verb|desc%fnd_owner()| method; the owning processes are the +topological neighbours of the calling process. If the user has some +background information on the processes that are neighbours of the +current one, it is possible to specify explicitly the list of adjacent +processes with a call to \verb|desc%set_p_adjcncy(list)|; this will +speed up the subsequent call to \verb|psb_cdasb|. % %% psb_cdcpy %% % -\clearpage\subsection*{psb\_cdcpy --- Copies a communication descriptor} -\addcontentsline{toc}{subsection}{psb\_cdcpy} +\clearpage\subsection{psb\_cdcpy --- Copies a communication descriptor} \begin{verbatim} call psb_cdcpy(desc_in, desc_out, info) @@ -376,8 +379,7 @@ An integer value; 0 means no error has been detected. % %% psb_cdfree %% % -\clearpage\subsection*{psb\_cdfree --- Frees a communication descriptor} -\addcontentsline{toc}{subsection}{psb\_cdfree} +\clearpage\subsection{psb\_cdfree --- Frees a communication descriptor} \begin{verbatim} call psb_cdfree(desc_a, info) @@ -407,9 +409,8 @@ An integer value; 0 means no error has been detected. % %% psb_cdcpy %% % -\clearpage\subsection*{psb\_cdbldext --- Build an extended communication +\clearpage\subsection{psb\_cdbldext --- Build an extended communication descriptor} -\addcontentsline{toc}{subsection}{psb\_cdbldext} \begin{verbatim} call psb_cdbldext(a,desc_a,nl,desc_out, info, extype) @@ -477,9 +478,9 @@ An integer value; 0 means no error has been detected. %% % %% %% psb_cdren %% %% % -%% \subsection*{psb\_cdren --- Applies a renumeration to a +%% \subsection{psb\_cdren --- Applies a renumeration to a %% communication descriptor} -%% \addcontentsline{toc}{subsection}{psb\_cdren} +%%% \addcontentsline{toc}{subsection}{psb\_cdren} %% \syntax{call psb\_cdren}{trans, iperm, desc\_a, info} @@ -514,8 +515,7 @@ An integer value; 0 means no error has been detected. % %% psb_descprt %% % -%% \subsection*{psb\_cdprt --- Prints a descriptor} -%%\addcontentsline{toc}{subsection}{psb\_cdprt} +%% \subsection{psb\_cdprt --- Prints a descriptor} %% \syntax{call psb\_cdprt}{iout, desc\_a, glob, short} @@ -544,8 +544,7 @@ An integer value; 0 means no error has been detected. % %% psb_spalloc %% % -\clearpage\subsection*{psb\_spall --- Allocates a sparse matrix} -\addcontentsline{toc}{subsection}{psb\_spall} +\clearpage\subsection{psb\_spall --- Allocates a sparse matrix} \begin{verbatim} call psb_spall(a, desc_a, info, nnz) @@ -596,9 +595,8 @@ An integer value; 0 means no error has been detected. % %% psb_spins %% % -\clearpage\subsection*{psb\_spins --- Insert a set of coefficients into a sparse +\clearpage\subsection{psb\_spins --- Insert a set of coefficients into a sparse matrix} -\addcontentsline{toc}{subsection}{psb\_spins} \begin{verbatim} call psb_spins(nz, ia, ja, val, a, desc_a, info [,local]) @@ -723,8 +721,7 @@ An integer value; 0 means no error has been detected. % %% psb_spasb %% % -\clearpage\subsection*{psb\_spasb --- Sparse matrix assembly routine} -\addcontentsline{toc}{subsection}{psb\_spasb} +\clearpage\subsection{psb\_spasb --- Sparse matrix assembly routine} \begin{verbatim} call psb_spasb(a, desc_a, info, afmt, upd, dupl, mold) @@ -798,9 +795,8 @@ An integer value; 0 means no error has been detected. %% % %% %% psb_spcnv %% %% % -%% \subsection*{psb\_spcnv --- Converts a sparse matrix storage +%% \subsection{psb\_spcnv --- Converts a sparse matrix storage %% format} -%%\addcontentsline{toc}{subsection}{psb\_spcnv} %% \syntax{call psb\_spcnv}{a, b, desc\_a, info} @@ -833,8 +829,7 @@ An integer value; 0 means no error has been detected. % %% psb_spfree %% % -\clearpage\subsection*{psb\_spfree --- Frees a sparse matrix} -\addcontentsline{toc}{subsection}{psb\_spfree} +\clearpage\subsection{psb\_spfree --- Frees a sparse matrix} \begin{verbatim} call psb_spfree(a, desc_a, info) @@ -870,9 +865,8 @@ An integer value; 0 means no error has been detected. % %% psb_sprn %% % -\clearpage\subsection*{psb\_sprn --- Reinit sparse matrix structure for psblas +\clearpage\subsection{psb\_sprn --- Reinit sparse matrix structure for psblas routines.} -\addcontentsline{toc}{subsection}{psb\_sprn} \begin{verbatim} call psb_sprn(a, decsc_a, info, clear) @@ -914,8 +908,7 @@ An integer value; 0 means no error has been detected. % %% psb_spupdate %% % -%% \subsection*{psb\_spupdate --- Updates a sparse matrix.} -%%\addcontentsline{toc}{subsection}{psb\_spupdate} +%% \subsection{psb\_spupdate --- Updates a sparse matrix.} %% \syntax{call psb\_spupdate}{a, ia, ja, blck, desc\_a, info, ix, jx, updflag} @@ -929,9 +922,8 @@ An integer value; 0 means no error has been detected. %% % %% %% psb_csrp %% %% % -%% \subsection*{psb\_csrp --- Applies a right permutation to a sparse +%% \subsection{psb\_csrp --- Applies a right permutation to a sparse %% matrix} -%%\addcontentsline{toc}{subsection}{psb\_csrp} %% \syntax{call psb\_csrp}{trans, iperm, a, info} @@ -961,8 +953,8 @@ An integer value; 0 means no error has been detected. % %% psb_alloc %% % -\clearpage\subsection*{psb\_geall --- Allocates a dense matrix} -\addcontentsline{toc}{subsection}{psb\_geall} +\clearpage\subsection{psb\_geall --- Allocates a dense matrix} +%\addcontentsline{toc}{subsection}{psb\_geall} \begin{verbatim} call psb_geall(x, desc_a, info, n, lb) @@ -1009,8 +1001,8 @@ An integer value; 0 means no error has been detected. % %% psb_ins %% % -\clearpage\subsection*{psb\_geins --- Dense matrix insertion routine} -\addcontentsline{toc}{subsection}{psb\_geins} +\clearpage\subsection{psb\_geins --- Dense matrix insertion routine} +%\addcontentsline{toc}{subsection}{psb\_geins} \begin{verbatim} call psb_geins(m, irw, val, x, desc_a, info [,dupl,local]) @@ -1082,8 +1074,8 @@ An integer value; 0 means no error has been detected. % %% psb_asb %% % -\clearpage\subsection*{psb\_geasb --- Assembly a dense matrix} -\addcontentsline{toc}{subsection}{psb\_geasb} +\clearpage\subsection{psb\_geasb --- Assembly a dense matrix} +%\addcontentsline{toc}{subsection}{psb\_geasb} \begin{verbatim} call psb_geasb(x, desc_a, info, mold) @@ -1122,8 +1114,8 @@ An integer value; 0 means no error has been detected. % %% psb_free %% % -\clearpage\subsection*{psb\_gefree --- Frees a dense matrix} -\addcontentsline{toc}{subsection}{psb\_gefree} +\clearpage\subsection{psb\_gefree --- Frees a dense matrix} +%\addcontentsline{toc}{subsection}{psb\_gefree} \begin{verbatim} call psb_gefree(x, desc_a, info) @@ -1160,9 +1152,9 @@ An integer value; 0 means no error has been detected. % %% psb_gelp %% % -\clearpage\subsection*{psb\_gelp --- Applies a left permutation to a dense +\clearpage\subsection{psb\_gelp --- Applies a left permutation to a dense matrix} -\addcontentsline{toc}{subsection}{psb\_gelp} +%\addcontentsline{toc}{subsection}{psb\_gelp} \begin{verbatim} call psb_gelp(trans, iperm, x, info) @@ -1201,9 +1193,9 @@ An integer value; 0 means no error has been detected. % %% psb_glob_to_loc %% % -\clearpage\subsection*{psb\_glob\_to\_loc --- Global to local indices +\clearpage\subsection{psb\_glob\_to\_loc --- Global to local indices convertion} -\addcontentsline{toc}{subsection}{psb\_glob\_to\_loc} +%\addcontentsline{toc}{subsection}{psb\_glob\_to\_loc} \begin{verbatim} call psb_glob_to_loc(x, y, desc_a, info, iact,owned) @@ -1269,9 +1261,9 @@ An integer value; 0 means no error has been detected. \end{enumerate} -\clearpage\subsection*{psb\_loc\_to\_glob --- Local to global indices +\clearpage\subsection{psb\_loc\_to\_glob --- Local to global indices conversion} -\addcontentsline{toc}{subsection}{psb\_loc\_to\_glob} +%\addcontentsline{toc}{subsection}{psb\_loc\_to\_glob} \begin{verbatim} call psb_loc_to_glob(x, y, desc_a, info, iact) @@ -1326,8 +1318,8 @@ An integer value; 0 means no error has been detected. % %% psb_loc_to_glob %% % -\clearpage\subsection*{psb\_is\_owned --- } -\addcontentsline{toc}{subsection}{psb\_is\_owned } +\clearpage\subsection{psb\_is\_owned --- } +%\addcontentsline{toc}{subsection}{psb\_is\_owned } \begin{verbatim} call psb_is_owned(x, desc_a) @@ -1366,8 +1358,8 @@ Intent: {\bf out}.\\ \end{enumerate} -\clearpage\subsection*{psb\_owned\_index --- } -\addcontentsline{toc}{subsection}{psb\_owned\_index } +\clearpage\subsection{psb\_owned\_index --- } +%\addcontentsline{toc}{subsection}{psb\_owned\_index } \begin{verbatim} call psb_owned_index(y, x, desc_a, info) @@ -1418,8 +1410,8 @@ An integer value; 0 means no error has been detected. \end{enumerate} -\clearpage\subsection*{psb\_is\_local --- } -\addcontentsline{toc}{subsection}{psb\_is\_local } +\clearpage\subsection{psb\_is\_local --- } +%\addcontentsline{toc}{subsection}{psb\_is\_local } \begin{verbatim} call psb_is_local(x, desc_a) @@ -1457,8 +1449,8 @@ Intent: {\bf out}.\\ indices \end{enumerate} -\clearpage\subsection*{psb\_local\_index --- } -\addcontentsline{toc}{subsection}{psb\_local\_index } +\clearpage\subsection{psb\_local\_index --- } +%\addcontentsline{toc}{subsection}{psb\_local\_index } \begin{verbatim} call psb_local_index(y, x, desc_a, info) @@ -1513,9 +1505,9 @@ An integer value; 0 means no error has been detected. % %% psb_ins %% % -\clearpage\subsection*{psb\_get\_boundary --- Extract list of boundary +\clearpage\subsection{psb\_get\_boundary --- Extract list of boundary elements} -\addcontentsline{toc}{subsection}{psb\_get\_boundary} +%\addcontentsline{toc}{subsection}{psb\_get\_boundary} \begin{verbatim} call psb_get_boundary(bndel, desc, info) @@ -1556,9 +1548,9 @@ An integer value; 0 means no error has been detected. number of boundary elements. \end{enumerate} -\clearpage\subsection*{psb\_get\_overlap --- Extract list of overlap +\clearpage\subsection{psb\_get\_overlap --- Extract list of overlap elements} -\addcontentsline{toc}{subsection}{psb\_get\_overlap} +%\addcontentsline{toc}{subsection}{psb\_get\_overlap} \begin{verbatim} call psb_get_overlap(ovrel, desc, info) @@ -1600,9 +1592,9 @@ An integer value; 0 means no error has been detected. -\clearpage\subsection*{psb\_sp\_getrow --- Extract row(s) from a sparse +\clearpage\subsection{psb\_sp\_getrow --- Extract row(s) from a sparse matrix} -\addcontentsline{toc}{subsection}{psb\_sp\_getrow} +%\addcontentsline{toc}{subsection}{psb\_sp\_getrow} \begin{verbatim} call psb_sp_getrow(row, a, nz, ia, ja, val, info, & @@ -1694,8 +1686,8 @@ An integer value; 0 means no error has been detected. -\clearpage\subsection*{psb\_sizeof --- Memory occupation} -\addcontentsline{toc}{subsection}{psb\_sizeof} +\clearpage\subsection{psb\_sizeof --- Memory occupation} +%\addcontentsline{toc}{subsection}{psb\_sizeof} This function computes the memory occupation of a PSBLAS object. @@ -1733,8 +1725,8 @@ Returned as: an \verb|integer(psb_long_int_k_)| number. \end{description} -\clearpage\subsection*{Sorting utilities --- } -\addcontentsline{toc}{subsection}{Sorting utilities} +\clearpage\subsection{Sorting utilities --- } +%\addcontentsline{toc}{subsection}{Sorting utilities} {\par\noindent\large\bfseries psb\_msort --- Sorting by the Merge-sort algorithm} diff --git a/docs/src/userguide.tex b/docs/src/userguide.tex index a3a9c0bd..c98f7d75 100644 --- a/docs/src/userguide.tex +++ b/docs/src/userguide.tex @@ -25,7 +25,7 @@ \relax \pdfcompresslevel=0 %-- 0 = none, 9 = best \pdfinfo{ %-- Info dictionary of PDF output /Author (Alfredo Buttari) - /Title (Parallel Sparse BLAS V. 3.6.0) + /Title (Parallel Sparse BLAS V. 3.7.0) /Subject (Parallel Sparse Basic Linear Algebra Subroutines) /Keywords (Computer Science Linear Algebra Fluid Dynamics Parallel Linux MPI PSBLAS Iterative Solvers Preconditioners) /Creator (pdfLaTeX) @@ -88,7 +88,7 @@ \begin{document} -\pdfbookmark{PSBLAS-v3.6.0 User's Guide}{title} +\pdfbookmark{PSBLAS-v3.7.0 User's Guide}{title} \lstset{language=Fortran} \newlength{\centeroffset} \setlength{\centeroffset}{-0.5\oddsidemargin} @@ -98,7 +98,7 @@ \vspace*{\stretch{1}} \noindent\hspace*{\centeroffset}\makebox[0pt][l]{\begin{minipage}{\textwidth} \flushright -{\Huge\bfseries PSBLAS 3.6.0 User's guide +{\Huge\bfseries PSBLAS 3.7.0 User's guide } \noindent\rule[-1ex]{\textwidth}{5pt}\\[2.5ex] \hfill\emph{\Large A reference guide for the Parallel Sparse BLAS library} @@ -110,7 +110,7 @@ {\bfseries by Salvatore Filippone\\ and Alfredo Buttari}\\ -Dec 1st, 2018 +Jan 7th, 2020 \end{minipage}} %\addtolength{\textwidth}{\centeroffset} diff --git a/docs/src/userhtml.tex b/docs/src/userhtml.tex index dd21efbe..77f52d6f 100644 --- a/docs/src/userhtml.tex +++ b/docs/src/userhtml.tex @@ -8,7 +8,6 @@ bookmarksnumbered=true, bookmarksopen=false, plainpages=false, - pdfpagelabels, colorlinks, linkcolor=blue]{hyperref} \usepackage{ifthen} @@ -21,18 +20,6 @@ %\setboolean{mtc}{true} \pdfoutput=0 -% \relax -% \pdfcompresslevel=0 %-- 0 = none, 9 = best -% \pdfinfo{ %-- Info dictionary of PDF output /Author (Alfredo Buttari) -% /Title (Parallel Sparse BLAS V. 3.6.0) -% /Subject (Parallel Sparse Basic Linear Algebra Subroutines) -% /Keywords (Computer Science Linear Algebra Fluid Dynamics Parallel Linux MPI PSBLAS Iterative Solvers Preconditioners) -% /Creator (pdfLaTeX) -% /Producer ($Id: userguide.tex 1978 2007-10-19 14:51:12Z sfilippo $) -% } -% \pdfcatalog{ %-- Catalog dictionary of PDF output. -% /URI (http://ce.uniroma2.it/psblas) -% } \newcounter{subroutine}[subsection] \newcounter{example}[subroutine] @@ -93,9 +80,9 @@ Alfredo Buttari } \\ %\\[10ex] %\today -Software version: 3.6.0\\ +Software version: 3.7.0\\ %\today -Dec 1st, 2018 +Jan 7th, 2020 \cleardoublepage \begingroup \renewcommand*{\thepage}{toc} diff --git a/docs/src/util.tex b/docs/src/util.tex index 4d1ba295..fdd7d01d 100644 --- a/docs/src/util.tex +++ b/docs/src/util.tex @@ -9,9 +9,8 @@ module \verb|psb_util_mod|. %\subroutine{PSB\_HBIO\_MOD}{Input/Output in Harwell-Boeing format} -\clearpage\subsection*{ hb\_read --- Read a sparse matrix from a file in the +\clearpage\subsection{ hb\_read --- Read a sparse matrix from a file in the Harwell--Boeing format} -\addcontentsline{toc}{subsection}{hb\_read} \begin{lstlisting} @@ -53,9 +52,8 @@ An integer value; 0 means no error has been detected. -\clearpage\subsection*{hb\_write --- Write a sparse matrix to a file +\clearpage\subsection{hb\_write --- Write a sparse matrix to a file in the Harwell--Boeing format} -\addcontentsline{toc}{subsection}{hb\_write} \begin{lstlisting} @@ -107,9 +105,8 @@ An integer value; 0 means no error has been detected. %\subroutine{PSB\_MMIO\_MOD}{Input/Output in MatrixMarket format} -\clearpage\subsection*{mm\_mat\_read --- Read a sparse matrix from a +\clearpage\subsection{mm\_mat\_read --- Read a sparse matrix from a file in the MatrixMarket format} -\addcontentsline{toc}{subsection}{mm\_mat\_read} \begin{lstlisting} call mm_mat_read(a, iret, iunit, filename) @@ -139,9 +136,8 @@ An integer value; 0 means no error has been detected. \end{description} -\clearpage\subsection*{mm\_array\_read --- Read a dense array from a +\clearpage\subsection{mm\_array\_read --- Read a dense array from a file in the MatrixMarket format} -\addcontentsline{toc}{subsection}{mm\_array\_read} \begin{lstlisting} call mm_array_read(b, iret, iunit, filename) @@ -174,9 +170,8 @@ An integer value; 0 means no error has been detected. -\clearpage\subsection*{mm\_mat\_write --- Write a sparse matrix to a +\clearpage\subsection{mm\_mat\_write --- Write a sparse matrix to a file in the MatrixMarket format} -\addcontentsline{toc}{subsection}{mm\_mat\_write} \begin{lstlisting} @@ -210,9 +205,8 @@ An integer value; 0 means no error has been detected. \end{description} -\clearpage\subsection*{mm\_array\_write --- Write a dense array from a +\clearpage\subsection{mm\_array\_write --- Write a dense array from a file in the MatrixMarket format} -\addcontentsline{toc}{subsection}{mm\_array\_write} \begin{lstlisting} call mm_array_write(b, iret, iunit, filename) diff --git a/krylov/psb_ccgstabl.f90 b/krylov/psb_ccgstabl.f90 index cbad3d91..4c6dc896 100644 --- a/krylov/psb_ccgstabl.f90 +++ b/krylov/psb_ccgstabl.f90 @@ -198,7 +198,7 @@ Subroutine psb_ccgstabl_vect(a,prec,b,x,eps,desc_a,info,& & ' not present: irst: ',irst,nl endif if (nl <=0 ) then - info=psb_err_invalid_istop_ + info=psb_err_invalid_irst_ err=info call psb_errpush(info,name,i_err=(/nl/)) goto 9999 diff --git a/krylov/psb_ckrylov.f90 b/krylov/psb_ckrylov.f90 index 2aae7913..e9f12ea1 100644 --- a/krylov/psb_ckrylov.f90 +++ b/krylov/psb_ckrylov.f90 @@ -211,7 +211,8 @@ Subroutine psb_ckrylov_vect(method,a,prec,b,x,eps,desc_a,info,& if ((info==psb_success_).and.do_alloc_wrk) call prec%free_wrk(info) if(info /= psb_success_) then - call psb_errpush(info,name) + info = psb_err_from_subroutine_ + call psb_errpush(info,name,a_err=trim(method)) goto 9999 end if diff --git a/krylov/psb_crgmres.f90 b/krylov/psb_crgmres.f90 index 4f44b4db..9e20350f 100644 --- a/krylov/psb_crgmres.f90 +++ b/krylov/psb_crgmres.f90 @@ -209,7 +209,7 @@ subroutine psb_crgmres_vect(a,prec,b,x,eps,desc_a,info,& & ' not present: irst: ',irst,nl endif if (nl <=0 ) then - info=psb_err_invalid_istop_ + info=psb_err_invalid_irst_ err=info call psb_errpush(info,name,i_err=(/nl/)) goto 9999 diff --git a/krylov/psb_dcgstabl.f90 b/krylov/psb_dcgstabl.f90 index ef57df92..ca8a6fe0 100644 --- a/krylov/psb_dcgstabl.f90 +++ b/krylov/psb_dcgstabl.f90 @@ -198,7 +198,7 @@ Subroutine psb_dcgstabl_vect(a,prec,b,x,eps,desc_a,info,& & ' not present: irst: ',irst,nl endif if (nl <=0 ) then - info=psb_err_invalid_istop_ + info=psb_err_invalid_irst_ err=info call psb_errpush(info,name,i_err=(/nl/)) goto 9999 diff --git a/krylov/psb_dkrylov.f90 b/krylov/psb_dkrylov.f90 index 1f887299..a1fe405a 100644 --- a/krylov/psb_dkrylov.f90 +++ b/krylov/psb_dkrylov.f90 @@ -211,7 +211,8 @@ Subroutine psb_dkrylov_vect(method,a,prec,b,x,eps,desc_a,info,& if ((info==psb_success_).and.do_alloc_wrk) call prec%free_wrk(info) if(info /= psb_success_) then - call psb_errpush(info,name) + info = psb_err_from_subroutine_ + call psb_errpush(info,name,a_err=trim(method)) goto 9999 end if diff --git a/krylov/psb_drgmres.f90 b/krylov/psb_drgmres.f90 index 7bf72c6b..f30b3391 100644 --- a/krylov/psb_drgmres.f90 +++ b/krylov/psb_drgmres.f90 @@ -209,7 +209,7 @@ subroutine psb_drgmres_vect(a,prec,b,x,eps,desc_a,info,& & ' not present: irst: ',irst,nl endif if (nl <=0 ) then - info=psb_err_invalid_istop_ + info=psb_err_invalid_irst_ err=info call psb_errpush(info,name,i_err=(/nl/)) goto 9999 diff --git a/krylov/psb_scgstabl.f90 b/krylov/psb_scgstabl.f90 index 82cbadc7..5c53781d 100644 --- a/krylov/psb_scgstabl.f90 +++ b/krylov/psb_scgstabl.f90 @@ -198,7 +198,7 @@ Subroutine psb_scgstabl_vect(a,prec,b,x,eps,desc_a,info,& & ' not present: irst: ',irst,nl endif if (nl <=0 ) then - info=psb_err_invalid_istop_ + info=psb_err_invalid_irst_ err=info call psb_errpush(info,name,i_err=(/nl/)) goto 9999 diff --git a/krylov/psb_skrylov.f90 b/krylov/psb_skrylov.f90 index 2dc20812..e2c02732 100644 --- a/krylov/psb_skrylov.f90 +++ b/krylov/psb_skrylov.f90 @@ -211,7 +211,8 @@ Subroutine psb_skrylov_vect(method,a,prec,b,x,eps,desc_a,info,& if ((info==psb_success_).and.do_alloc_wrk) call prec%free_wrk(info) if(info /= psb_success_) then - call psb_errpush(info,name) + info = psb_err_from_subroutine_ + call psb_errpush(info,name,a_err=trim(method)) goto 9999 end if diff --git a/krylov/psb_srgmres.f90 b/krylov/psb_srgmres.f90 index 88443d3f..f6443c30 100644 --- a/krylov/psb_srgmres.f90 +++ b/krylov/psb_srgmres.f90 @@ -209,7 +209,7 @@ subroutine psb_srgmres_vect(a,prec,b,x,eps,desc_a,info,& & ' not present: irst: ',irst,nl endif if (nl <=0 ) then - info=psb_err_invalid_istop_ + info=psb_err_invalid_irst_ err=info call psb_errpush(info,name,i_err=(/nl/)) goto 9999 diff --git a/krylov/psb_zcgstabl.f90 b/krylov/psb_zcgstabl.f90 index e2519fea..bcb4b652 100644 --- a/krylov/psb_zcgstabl.f90 +++ b/krylov/psb_zcgstabl.f90 @@ -198,7 +198,7 @@ Subroutine psb_zcgstabl_vect(a,prec,b,x,eps,desc_a,info,& & ' not present: irst: ',irst,nl endif if (nl <=0 ) then - info=psb_err_invalid_istop_ + info=psb_err_invalid_irst_ err=info call psb_errpush(info,name,i_err=(/nl/)) goto 9999 diff --git a/krylov/psb_zkrylov.f90 b/krylov/psb_zkrylov.f90 index 626499df..48371920 100644 --- a/krylov/psb_zkrylov.f90 +++ b/krylov/psb_zkrylov.f90 @@ -211,7 +211,8 @@ Subroutine psb_zkrylov_vect(method,a,prec,b,x,eps,desc_a,info,& if ((info==psb_success_).and.do_alloc_wrk) call prec%free_wrk(info) if(info /= psb_success_) then - call psb_errpush(info,name) + info = psb_err_from_subroutine_ + call psb_errpush(info,name,a_err=trim(method)) goto 9999 end if diff --git a/krylov/psb_zrgmres.f90 b/krylov/psb_zrgmres.f90 index 0d065c0a..73d7f08b 100644 --- a/krylov/psb_zrgmres.f90 +++ b/krylov/psb_zrgmres.f90 @@ -209,7 +209,7 @@ subroutine psb_zrgmres_vect(a,prec,b,x,eps,desc_a,info,& & ' not present: irst: ',irst,nl endif if (nl <=0 ) then - info=psb_err_invalid_istop_ + info=psb_err_invalid_irst_ err=info call psb_errpush(info,name,i_err=(/nl/)) goto 9999 diff --git a/prec/impl/psb_cprecinit.f90 b/prec/impl/psb_cprecinit.f90 index 7f6da35f..9f0b4d68 100644 --- a/prec/impl/psb_cprecinit.f90 +++ b/prec/impl/psb_cprecinit.f90 @@ -65,7 +65,7 @@ subroutine psb_cprecinit(ictxt,p,ptype,info) case default write(psb_err_unit,*) 'Unknown preconditioner type request "',ptype,'"' - info = psb_err_pivot_too_small_ + info = psb_err_invalid_preca_ end select if (info == psb_success_) call p%prec%precinit(info) diff --git a/prec/impl/psb_dprecinit.f90 b/prec/impl/psb_dprecinit.f90 index 70f7c05a..f28bd446 100644 --- a/prec/impl/psb_dprecinit.f90 +++ b/prec/impl/psb_dprecinit.f90 @@ -65,7 +65,7 @@ subroutine psb_dprecinit(ictxt,p,ptype,info) case default write(psb_err_unit,*) 'Unknown preconditioner type request "',ptype,'"' - info = psb_err_pivot_too_small_ + info = psb_err_invalid_preca_ end select if (info == psb_success_) call p%prec%precinit(info) diff --git a/prec/impl/psb_sprecinit.f90 b/prec/impl/psb_sprecinit.f90 index 46ab547a..fa5b83c2 100644 --- a/prec/impl/psb_sprecinit.f90 +++ b/prec/impl/psb_sprecinit.f90 @@ -65,7 +65,7 @@ subroutine psb_sprecinit(ictxt,p,ptype,info) case default write(psb_err_unit,*) 'Unknown preconditioner type request "',ptype,'"' - info = psb_err_pivot_too_small_ + info = psb_err_invalid_preca_ end select if (info == psb_success_) call p%prec%precinit(info) diff --git a/prec/impl/psb_zprecinit.f90 b/prec/impl/psb_zprecinit.f90 index 200e36dd..d9f5aa01 100644 --- a/prec/impl/psb_zprecinit.f90 +++ b/prec/impl/psb_zprecinit.f90 @@ -65,7 +65,7 @@ subroutine psb_zprecinit(ictxt,p,ptype,info) case default write(psb_err_unit,*) 'Unknown preconditioner type request "',ptype,'"' - info = psb_err_pivot_too_small_ + info = psb_err_invalid_preca_ end select if (info == psb_success_) call p%prec%precinit(info) diff --git a/test/pargen/psb_d_pde3d.f90 b/test/pargen/psb_d_pde3d.f90 index 60cb9e9e..429e9a0e 100644 --- a/test/pargen/psb_d_pde3d.f90 +++ b/test/pargen/psb_d_pde3d.f90 @@ -214,8 +214,7 @@ contains ! Note: integer control variables going directly into an MPI call ! must be 4 bytes, i.e. psb_mpk_ integer(psb_mpk_) :: npdims(3), npp, minfo - integer(psb_mpk_) :: npx,npy,npz, iamx,iamy,iamz - integer(psb_ipk_) :: mynx,myny,mynz + integer(psb_ipk_) :: npx,npy,npz, iamx,iamy,iamz,mynx,myny,mynz integer(psb_ipk_), allocatable :: bndx(:),bndy(:),bndz(:) ! Process grid integer(psb_ipk_) :: np, iam @@ -236,9 +235,8 @@ contains call psb_erractionsave(err_act) call psb_info(ictxt, iam, np) - call psb_cd_set_large_threshold(1000) - call psb_cd_set_maxspace(-1) - + + if (present(f)) then f_ => f else @@ -373,49 +371,7 @@ contains ! the set of global indices it owns. ! call psb_cdall(ictxt,desc_a,info,vl=myidx) - - block - ! - ! Test adjcncy methods - ! - integer(psb_mpk_), allocatable :: neighbours(:) - integer(psb_mpk_) :: cnt - logical, parameter :: debug_adj=.false. - if (debug_adj.and.(np > 1)) then - cnt = 0 - allocate(neighbours(np)) - if (iamx < npx-1) then - cnt = cnt + 1 - call ijk2idx(neighbours(cnt),iamx+1,iamy,iamz,npx,npy,npz,base=0) - end if - if (iamy < npy-1) then - cnt = cnt + 1 - call ijk2idx(neighbours(cnt),iamx,iamy+1,iamz,npx,npy,npz,base=0) - end if - if (iamz < npz-1) then - cnt = cnt + 1 - call ijk2idx(neighbours(cnt),iamx,iamy,iamz+1,npx,npy,npz,base=0) - end if - if (iamx >0) then - cnt = cnt + 1 - call ijk2idx(neighbours(cnt),iamx-1,iamy,iamz,npx,npy,npz,base=0) - end if - if (iamy >0) then - cnt = cnt + 1 - call ijk2idx(neighbours(cnt),iamx,iamy-1,iamz,npx,npy,npz,base=0) - end if - if (iamz >0) then - cnt = cnt + 1 - call ijk2idx(neighbours(cnt),iamx,iamy,iamz-1,npx,npy,npz,base=0) - end if - call psb_realloc(cnt, neighbours,info) - call desc_a%set_p_adjcncy(neighbours) - write(0,*) iam,' Check on neighbours: ',desc_a%get_p_adjcncy() - end if - end block - - case default write(psb_err_unit,*) iam, 'Initialization error: should not get here' info = -1 diff --git a/test/pargen/runs/ppde.inp b/test/pargen/runs/ppde.inp index 82f0bce6..a0f28e99 100644 --- a/test/pargen/runs/ppde.inp +++ b/test/pargen/runs/ppde.inp @@ -2,7 +2,7 @@ BICGSTAB Iterative method BICGSTAB CGS BICG BICGSTABL RGMRES FCG CGR BJAC Preconditioner NONE DIAG BJAC CSR Storage format for matrix A: CSR COO -040 Domain size (acutal system is this**3 (pde3d) or **2 (pde2d) ) +080 Domain size (acutal system is this**3 (pde3d) or **2 (pde2d) ) 3 Partition: 1 BLOCK 3 3D 2 Stopping criterion 1 2 0100 MAXIT