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 4b5e0f61..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_ - call psb_get_rank(prcid(i),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_) - call psb_get_rank(prcid(i),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 d0b06fa3..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_) - call psb_get_rank(prcid(proc_to_comm),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_) - call psb_get_rank(prcid(i),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_) - call psb_get_rank(prcid(proc_to_comm),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_) - call psb_get_rank(prcid(i),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 2953783a..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_ - call psb_get_rank(prcid(i),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_) - call psb_get_rank(prcid(i),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 4a8b2595..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_) - call psb_get_rank(prcid(proc_to_comm),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_) - call psb_get_rank(prcid(i),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_) - call psb_get_rank(prcid(proc_to_comm),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_) - call psb_get_rank(prcid(i),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 ff0845e6..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_ - call psb_get_rank(prcid(i),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_) - call psb_get_rank(prcid(i),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 ec330ef7..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_) - call psb_get_rank(prcid(proc_to_comm),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_) - call psb_get_rank(prcid(i),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_) - call psb_get_rank(prcid(proc_to_comm),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_) - call psb_get_rank(prcid(i),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 179e083a..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_ - call psb_get_rank(prcid(i),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_) - call psb_get_rank(prcid(i),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 ba648a15..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_) - call psb_get_rank(prcid(proc_to_comm),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_) - call psb_get_rank(prcid(i),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_) - call psb_get_rank(prcid(proc_to_comm),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_) - call psb_get_rank(prcid(i),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 a697ad91..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_) - call psb_get_rank(prcid(proc_to_comm),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_) - call psb_get_rank(prcid(i),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_) - call psb_get_rank(prcid(proc_to_comm),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_) - call psb_get_rank(prcid(i),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 dec5932e..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_) - call psb_get_rank(prcid(proc_to_comm),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_) - call psb_get_rank(prcid(i),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_) - call psb_get_rank(prcid(proc_to_comm),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_) - call psb_get_rank(prcid(i),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 4fa0fffb..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_ - call psb_get_rank(prcid(i),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_) - call psb_get_rank(prcid(i),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 6985b7c5..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_ - call psb_get_rank(prcid(i),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_) - call psb_get_rank(prcid(i),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 b409dd40..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_ - call psb_get_rank(prcid(i),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_) - call psb_get_rank(prcid(i),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 89ae0441..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_ - call psb_get_rank(prcid(i),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_) - call psb_get_rank(prcid(i),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 e0f5eeb0..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_) - call psb_get_rank(prcid(proc_to_comm),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_) - call psb_get_rank(prcid(i),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_) - call psb_get_rank(prcid(proc_to_comm),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_) - call psb_get_rank(prcid(i),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 2283de0b..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_) - call psb_get_rank(prcid(proc_to_comm),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_) - call psb_get_rank(prcid(i),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_) - call psb_get_rank(prcid(proc_to_comm),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_) - call psb_get_rank(prcid(i),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 56face25..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_ - call psb_get_rank(prcid(i),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_) - call psb_get_rank(prcid(i),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 599c4cfd..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_) - call psb_get_rank(prcid(proc_to_comm),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_) - call psb_get_rank(prcid(i),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_) - call psb_get_rank(prcid(proc_to_comm),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_) - call psb_get_rank(prcid(i),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 fc998061..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_ - call psb_get_rank(prcid(i),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_) - call psb_get_rank(prcid(i),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 1eb8d227..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_) - call psb_get_rank(prcid(proc_to_comm),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_) - call psb_get_rank(prcid(i),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_) - call psb_get_rank(prcid(proc_to_comm),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_) - call psb_get_rank(prcid(i),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 c3b46b80..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_ - call psb_get_rank(prcid(i),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_) - call psb_get_rank(prcid(i),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 1021c976..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_) - call psb_get_rank(prcid(proc_to_comm),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_) - call psb_get_rank(prcid(i),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_) - call psb_get_rank(prcid(proc_to_comm),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_) - call psb_get_rank(prcid(i),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 9be2722d..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_ - call psb_get_rank(prcid(i),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_) - call psb_get_rank(prcid(i),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 7388c3b4..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_) - call psb_get_rank(prcid(proc_to_comm),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_) - call psb_get_rank(prcid(i),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_) - call psb_get_rank(prcid(proc_to_comm),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_) - call psb_get_rank(prcid(i),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 3d29dd37..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() - call psb_get_mpicomm(ictxt,icomm) - call psb_get_rank(myrank,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 - call psb_get_rank(rootrank,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 - call psb_get_mpicomm(ictxt,icomm) - call psb_get_rank(myrank,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 - call psb_get_rank(rootrank,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 e8d53a62..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() - call psb_get_mpicomm(ictxt,icomm) - call psb_get_rank(myrank,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 - call psb_get_rank(rootrank,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 - call psb_get_mpicomm(ictxt,icomm) - call psb_get_rank(myrank,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 - call psb_get_rank(rootrank,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 62bc5734..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() - call psb_get_mpicomm(ictxt,icomm) - call psb_get_rank(myrank,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 - call psb_get_rank(rootrank,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 - call psb_get_mpicomm(ictxt,icomm) - call psb_get_rank(myrank,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 - call psb_get_rank(rootrank,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 4778c63f..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() - call psb_get_mpicomm(ictxt,icomm) - call psb_get_rank(myrank,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 - call psb_get_rank(rootrank,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 - call psb_get_mpicomm(ictxt,icomm) - call psb_get_rank(myrank,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 - call psb_get_rank(rootrank,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 e908a823..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() - call psb_get_mpicomm(ictxt,icomm) - call psb_get_rank(myrank,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 - call psb_get_rank(rootrank,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 - call psb_get_mpicomm(ictxt,icomm) - call psb_get_rank(myrank,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 - call psb_get_rank(rootrank,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 557166d8..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() - call psb_get_mpicomm(ictxt,icomm) - call psb_get_rank(myrank,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 - call psb_get_rank(rootrank,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 - call psb_get_mpicomm(ictxt,icomm) - call psb_get_rank(myrank,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 - call psb_get_rank(rootrank,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/Makefile b/base/internals/Makefile index 471fc383..1ebdbcc0 100644 --- a/base/internals/Makefile +++ b/base/internals/Makefile @@ -3,10 +3,11 @@ include ../../Make.inc FOBJS = psi_compute_size.o psi_crea_bnd_elem.o psi_crea_index.o \ psi_crea_ovr_elem.o psi_bld_tmpovrl.o psi_dl_check.o \ psi_bld_tmphalo.o psi_sort_dl.o \ - psi_desc_impl.o psi_list_search.o psi_srtlist.o + psi_indx_map_fnd_owner.o \ + psi_desc_impl.o psi_hash_impl.o psi_list_search.o psi_srtlist.o -MPFOBJS = psi_desc_index.o psi_extrct_dl.o \ - psi_fnd_owner.o psb_indx_map_fnd_owner.o +MPFOBJS = psi_desc_index.o psi_extrct_dl.o psi_fnd_owner.o psi_a2a_fnd_owner.o \ + psi_graph_fnd_owner.o psi_adjcncy_fnd_owner.o psi_symm_dep_list.o LIBDIR=.. INCDIR=.. diff --git a/base/internals/psb_indx_map_fnd_owner.F90 b/base/internals/psb_indx_map_fnd_owner.F90 deleted file mode 100644 index b6b870fa..00000000 --- a/base/internals/psb_indx_map_fnd_owner.F90 +++ /dev/null @@ -1,325 +0,0 @@ -! -! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006-2018 -! Salvatore Filippone -! 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. -! -! -! -! File: psi_fnd_owner.f90 -! -! Subroutine: psi_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. -! info - integer. return code. -! -subroutine psb_indx_map_fnd_owner(idx,iprc,idxmap,info) - use psb_serial_mod - use psb_const_mod - use psb_error_mod - use psb_penv_mod - use psb_realloc_mod - use psb_indx_map_mod, psb_protect_name => psb_indx_map_fnd_owner -#ifdef MPI_MOD - use mpi -#endif - - implicit none -#ifdef MPI_H - include 'mpif.h' -#endif - integer(psb_lpk_), intent(in) :: idx(:) - integer(psb_ipk_), allocatable, intent(out) :: iprc(:) - class(psb_indx_map), intent(in) :: idxmap - integer(psb_ipk_), intent(out) :: info - - - integer(psb_lpk_), allocatable :: answers(:,:), idxsrch(:,:), hproc(:) - integer(psb_ipk_), allocatable :: helem(:), hhidx(:) - integer(psb_mpk_), allocatable :: hsz(:),hidx(:), & - & sdsz(:),sdidx(:), rvsz(:), rvidx(:) - integer(psb_mpk_) :: icomm, minfo, iictxt - integer(psb_ipk_) :: i,n_row,n_col,err_act,hsize,ip,isz,j, k,& - & last_ih, last_j, nv - integer(psb_lpk_) :: mglob, ih - integer(psb_ipk_) :: ictxt,np,me, nresp - logical, parameter :: gettime=.false. - real(psb_dpk_) :: t0, t1, t2, t3, t4, tamx, tidx - character(len=20) :: name - - info = psb_success_ - name = 'psb_indx_map_fnd_owner' - call psb_erractionsave(err_act) - - ictxt = idxmap%get_ctxt() - icomm = idxmap%get_mpic() - mglob = idxmap%get_gr() - n_row = idxmap%get_lr() - n_col = idxmap%get_lc() - iictxt = ictxt - - 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.(idxmap%is_valid())) then - call psb_errpush(psb_err_from_subroutine_,name,a_err='invalid idxmap') - goto 9999 - end if - - if (gettime) then - t0 = psb_wtime() - end if - - nv = size(idx) - call psb_realloc(nv,iprc,info) - if (info /= psb_success_) then - call psb_errpush(psb_err_from_subroutine_,name,a_err='psb_realloc') - goto 9999 - end if - - if (associated(idxmap%parts)) then - ! Use function shortcut -!!$ write(0,*) me,trim(name),' indxmap%parts shortcut' - Allocate(hhidx(np), stat=info) - if (info /= psb_success_) then - call psb_errpush(psb_err_from_subroutine_,name,a_err='Allocate') - goto 9999 - end if - do i=1, nv - call idxmap%parts(idx(i),mglob,np,hhidx,nresp) - if (nresp > 0) then - iprc(i) = hhidx(1) - else - iprc(i) = -1 - end if - end do - - else if (allocated(idxmap%tempvg)) then -!!$ write(0,*) me,trim(name),' indxmap%tempvg shortcut' - ! Use temporary vector - do i=1, nv - iprc(i) = idxmap%tempvg(idx(i)) - end do - - else - - ! - ! The basic idea is very simple. - ! First we collect (to all) all the requests. - Allocate(hidx(np+1),hsz(np),& - & sdsz(0:np-1),sdidx(0:np-1),& - & rvsz(0:np-1),rvidx(0:np-1),& - & stat=info) - if (info /= psb_success_) then - call psb_errpush(psb_err_from_subroutine_,name,a_err='Allocate') - goto 9999 - end if - - hsz = 0 - hsz(me+1) = nv - call psb_amx(iictxt,hsz) - hidx(1) = 0 - do i=1, np - hidx(i+1) = hidx(i) + hsz(i) - end do - hsize = hidx(np+1) - Allocate(helem(hsize),hproc(hsize),stat=info) - if (info /= psb_success_) then - call psb_errpush(psb_err_from_subroutine_,name,a_err='Allocate') - goto 9999 - end if - - if (gettime) then - t3 = psb_wtime() - end if - - call mpi_allgatherv(idx,hsz(me+1),psb_mpi_lpk_,& - & hproc,hsz,hidx,psb_mpi_lpk_,& - & icomm,minfo) - if (gettime) then - tamx = psb_wtime() - t3 - end if - - ! Second, we figure out locally whether we own the indices (whoever is - ! asking for them). - if (gettime) then - t3 = psb_wtime() - end if - - call idxmap%g2l(hproc(1:hsize),helem(1:hsize),info,owned=.true.) - if (gettime) then - tidx = psb_wtime()-t3 - end if - if (info == psb_err_iarray_outside_bounds_) info = psb_success_ - if (info /= psb_success_) then - call psb_errpush(psb_err_from_subroutine_,name,a_err='psi_idx_cnv') - goto 9999 - end if - - ! Third: we build the answers for those indices we own, - ! with a section for each process asking. - hidx = hidx +1 - j = 0 - do ip = 0, np-1 - sdidx(ip) = j - sdsz(ip) = 0 - do i=hidx(ip+1), hidx(ip+1+1)-1 - if ((0 < helem(i)).and. (helem(i) <= n_row)) then - j = j + 1 - hproc(j) = hproc(i) - sdsz(ip) = sdsz(ip) + 1 - end if - end do - end do - - if (gettime) then - t3 = psb_wtime() - end if - - ! Collect all the answers with alltoallv (need sizes) - call mpi_alltoall(sdsz,1,psb_mpi_mpk_,& - & rvsz,1,psb_mpi_mpk_,icomm,minfo) - - isz = sum(rvsz) - - allocate(answers(isz,2),idxsrch(nv,2),stat=info) - if (info /= psb_success_) then - call psb_errpush(psb_err_from_subroutine_,name,a_err='Allocate') - goto 9999 - end if - j = 0 - do ip=0, np-1 - rvidx(ip) = j - j = j + rvsz(ip) - end do - call mpi_alltoallv(hproc,sdsz,sdidx,psb_mpi_lpk_,& - & answers(:,1),rvsz,rvidx,psb_mpi_lpk_,& - & icomm,minfo) - if (gettime) then - tamx = psb_wtime() - t3 + tamx - end if - j = 1 - do ip = 0,np-1 - do k=1,rvsz(ip) - answers(j,2) = ip - j = j + 1 - end do - end do - ! Sort the answers and the requests, so we can - ! match them efficiently - call psb_msort(answers(:,1),ix=answers(:,2),& - & flag=psb_sort_keep_idx_) - idxsrch(1:nv,1) = idx(1:nv) - call psb_msort(idxsrch(1:nv,1),ix=idxsrch(1:nv,2)) - - ! Now extract the answers for our local query - last_ih = -1 - last_j = -1 - j = 1 - do i=1, nv - ih = idxsrch(i,1) - if (ih == last_ih) then - iprc(idxsrch(i,2)) = answers(last_j,2) - else - - do - if (j > size(answers,1)) then - ! Last resort attempt. - j = psb_bsrch(ih,size(answers,1,kind=psb_ipk_),answers(:,1)) - if (j == -1) then - write(psb_err_unit,*) me,'psi_fnd_owner: searching for ',ih, & - & 'not found : ',size(answers,1),':',answers(:,1) - info = psb_err_internal_error_ - call psb_errpush(psb_err_internal_error_,& - & name,a_err='out bounds srch ih') - goto 9999 - end if - end if - if (answers(j,1) == ih) exit - if (answers(j,1) > ih) then - k = j - j = psb_bsrch(ih,k,answers(1:k,1)) - if (j == -1) then - write(psb_err_unit,*) me,'psi_fnd_owner: searching for ',ih, & - & 'not found : ',size(answers,1),':',answers(:,1) - info = psb_err_internal_error_ - call psb_errpush(psb_err_internal_error_,name,a_err='out bounds srch ih') - goto 9999 - end if - end if - - j = j + 1 - end do - ! Note that the answers here are given in order - ! of sending process, so we are implicitly getting - ! the max process index in case of overlap. - last_ih = ih - do - last_j = j - iprc(idxsrch(i,2)) = answers(j,2) - j = j + 1 - if (j > size(answers,1)) exit - if (answers(j,1) /= ih) exit - end do - end if - end do - end if - if (gettime) then - call psb_barrier(ictxt) - t1 = psb_wtime() - t1 = t1 -t0 - tamx - tidx - call psb_amx(ictxt,tamx) - call psb_amx(ictxt,tidx) - call psb_amx(ictxt,t1) - if (me == psb_root_) then - write(psb_out_unit,'(" fnd_owner idx time : ",es10.4)') tidx - write(psb_out_unit,'(" fnd_owner amx time : ",es10.4)') tamx - write(psb_out_unit,'(" fnd_owner remainedr : ",es10.4)') t1 - endif - end if - - call psb_erractionrestore(err_act) - return - -9999 call psb_error_handler(ictxt,err_act) - - return - -end subroutine psb_indx_map_fnd_owner diff --git a/base/internals/psi_a2a_fnd_owner.F90 b/base/internals/psi_a2a_fnd_owner.F90 new file mode 100644 index 00000000..52e8b0ae --- /dev/null +++ b/base/internals/psi_a2a_fnd_owner.F90 @@ -0,0 +1,120 @@ +! +! Parallel Sparse BLAS version 3.5 +! (C) Copyright 2006-2018 +! Salvatore Filippone +! 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. +! +! +! +! File: psi_a2a_fnd_owner.f90 +! +! Subroutine: psi_a2a_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 +! 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 + use psb_const_mod + use psb_error_mod + use psb_penv_mod + use psb_realloc_mod + use psb_indx_map_mod, psb_protect_name => psi_a2a_fnd_owner +#ifdef MPI_MOD + use mpi +#endif + + implicit none +#ifdef MPI_H + include 'mpif.h' +#endif + integer(psb_lpk_), intent(in) :: idx(:) + integer(psb_ipk_), allocatable, intent(out) :: iprc(:) + class(psb_indx_map), intent(in) :: idxmap + integer(psb_ipk_), intent(out) :: info + + + integer(psb_ipk_), allocatable :: tmpadj(:) + integer(psb_mpk_) :: icomm, minfo, iictxt + integer(psb_ipk_) :: i,n_row,n_col,err_act,nv + integer(psb_lpk_) :: mglob, ih + integer(psb_ipk_) :: ictxt,np,me, nresp + real(psb_dpk_) :: t0, t1, t2, t3, t4, tamx, tidx + character(len=20) :: name + + info = psb_success_ + name = 'psi_a2a_fnd_owner' + call psb_erractionsave(err_act) + + ictxt = idxmap%get_ctxt() + icomm = idxmap%get_mpic() + mglob = idxmap%get_gr() + n_row = idxmap%get_lr() + n_col = idxmap%get_lc() + iictxt = ictxt + + 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.(idxmap%is_valid())) then + call psb_errpush(psb_err_from_subroutine_,name,a_err='invalid idxmap') + goto 9999 + end if + + ! + ! Reuse the adjcncy version by tricking it with an adjcncy list + ! that contains everybody but ME. + ! + nv = size(idx) + call psb_realloc(np-1,tmpadj,info) + tmpadj(1:me) = [(i,i=0,me-1)] + tmpadj(me+1:np-1) = [(i,i=me+1,np-1)] + call psi_adjcncy_fnd_owner(idx,iprc,tmpadj,idxmap,info) + + call psb_erractionrestore(err_act) + return + +9999 call psb_error_handler(ictxt,err_act) + + return + +end subroutine psi_a2a_fnd_owner diff --git a/base/internals/psi_adjcncy_fnd_owner.F90 b/base/internals/psi_adjcncy_fnd_owner.F90 new file mode 100644 index 00000000..ed244554 --- /dev/null +++ b/base/internals/psi_adjcncy_fnd_owner.F90 @@ -0,0 +1,398 @@ +! +! Parallel Sparse BLAS version 3.5 +! (C) Copyright 2006-2018 +! Salvatore Filippone +! 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. +! +! +! +! +! File: psi_adjcncy_fnd_owner.f90 +! +! 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 + use psb_const_mod + use psb_error_mod + use psb_penv_mod + use psb_realloc_mod + use psb_indx_map_mod, psb_protect_name => psi_adjcncy_fnd_owner +#ifdef MPI_MOD + use mpi +#endif + + implicit none +#ifdef MPI_H + include 'mpif.h' +#endif + integer(psb_lpk_), intent(in) :: idx(:) + integer(psb_ipk_), allocatable, intent(out) :: iprc(:) + integer(psb_ipk_), intent(in) :: adj(:) + class(psb_indx_map), intent(in) :: idxmap + integer(psb_ipk_), intent(out) :: info + + + integer(psb_lpk_), allocatable :: rmtidx(:) + integer(psb_ipk_), allocatable :: tproc(:), lclidx(:) + integer(psb_mpk_), allocatable :: hsz(:),hidx(:), sdidx(:), rvidx(:),& + & sdsz(:), rvsz(:), sdhd(:), rvhd(:), p2pstat(:,:) + integer(psb_mpk_) :: prc, p2ptag, iret + integer(psb_mpk_) :: icomm, minfo, iictxt + integer(psb_ipk_) :: i,n_row,n_col,err_act,hsize,ip,isz,j, k,& + & last_ih, last_j, nidx, nrecv, nadj + integer(psb_lpk_) :: mglob, ih + integer(psb_ipk_) :: ictxt,np,me + logical, parameter :: gettime=.false., debug=.false. + logical, parameter :: a2av_impl=.true. + logical, parameter :: mpi_irecv_impl=.false. + logical, parameter :: psb_rcv_impl=.false. + real(psb_dpk_) :: t0, t1, t2, t3, t4, tamx, tidx + character(len=20) :: name + + info = psb_success_ + name = 'psi_adjcncy_fnd_owner' + call psb_erractionsave(err_act) + + ictxt = idxmap%get_ctxt() + icomm = idxmap%get_mpic() + mglob = idxmap%get_gr() + n_row = idxmap%get_lr() + n_col = idxmap%get_lc() + iictxt = ictxt + + 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.(idxmap%is_valid())) then + call psb_errpush(psb_err_from_subroutine_,name,a_err='invalid idxmap') + goto 9999 + end if + + if (gettime) then + t0 = psb_wtime() + end if + + nadj = size(adj) + nidx = size(idx) + call psb_realloc(nidx,iprc,info) + if (info /= psb_success_) then + call psb_errpush(psb_err_from_subroutine_,name,a_err='psb_realloc') + goto 9999 + end if + iprc = -1 + ! write(0,*) me,name,' Going through ',nidx,nadj + + if (a2av_impl) then + ! + ! First simple minded version with auxiliary arrays + ! dimensioned on NP. + ! Do the exchange with an alltoallv + ! + ! + Allocate(hidx(0:np),hsz(np),sdsz(0:np-1),rvsz(0:np-1), & + & sdidx(0:np),rvidx(0:np),stat=info) + ! + ! Same send buffer for everybody + ! + sdidx(:) = 0 + ! + ! 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) + 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 + ! + 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 + + call mpi_alltoallv(idx,sdsz,sdidx,psb_mpi_lpk_,& + & rmtidx,rvsz,rvidx,psb_mpi_lpk_,icomm,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 + + ! + ! Fourth, exchange the answers + ! + ! Adjust sdidx for reuse in receiving lclidx array + do i=0,np-1 + sdidx(i+1) = sdidx(i) + sdsz(i) + end do + 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 (debug) write(0,*) me,' End of adjcncy_fnd ',iprc(1:nidx) + + else if (mpi_irecv_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 + 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 + 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 + 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_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 + 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 + 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 if (psb_rcv_impl) then + + 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 + 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 + else + info = psb_err_internal_error_ + call psb_errpush(info,name,a_err='invalid exchange alg choice') + goto 9999 + end if + + call psb_erractionrestore(err_act) + return + +9999 call psb_error_handler(ictxt,err_act) + + return + +end subroutine psi_adjcncy_fnd_owner diff --git a/base/internals/psi_crea_index.f90 b/base/internals/psi_crea_index.f90 index 56be421e..ec783899 100644 --- a/base/internals/psi_crea_index.f90 +++ b/base/internals/psi_crea_index.f90 @@ -85,17 +85,6 @@ subroutine psi_i_crea_index(desc_a,index_in,index_out,nxch,nsnd,nrcv,info) goto 9999 endif - ! allocate dependency list - ! This should be computed more efficiently to save space when - ! the number of processors becomes very high - dl_lda=np+1 - - allocate(dep_list(max(1,dl_lda),0:np),length_dl(0:np),stat=info) - if (info /= psb_success_) then - call psb_errpush(psb_err_from_subroutine_,name,a_err='Allocate') - goto 9999 - end if - ! ...extract dependence list (ordered list of identifer process ! which every process must communcate with... if (debug_level >= psb_debug_inner_) & @@ -104,7 +93,7 @@ subroutine psi_i_crea_index(desc_a,index_in,index_out,nxch,nsnd,nrcv,info) call psi_extract_dep_list(ictxt,& & desc_a%is_bld(), desc_a%is_upd(),& - & index_in, dep_list,length_dl,np,max(1,dl_lda),mode,info) + & index_in, dep_list,length_dl,dl_lda,mode,info) if (info /= psb_success_) then call psb_errpush(psb_err_from_subroutine_,name,a_err='extrct_dl') goto 9999 @@ -117,7 +106,7 @@ subroutine psi_i_crea_index(desc_a,index_in,index_out,nxch,nsnd,nrcv,info) if (debug_level >= psb_debug_inner_) & & write(debug_unit,*) me,' ',trim(name),': root sorting dep list' - call psi_dl_check(dep_list,max(1,dl_lda),np,length_dl) + call psi_dl_check(dep_list,dl_lda,np,length_dl) ! ....now i can sort dependency lists. call psi_sort_dl(dep_list,length_dl,np,info) diff --git a/base/internals/psi_desc_impl.f90 b/base/internals/psi_desc_impl.f90 index 6cd294f8..b552a8ad 100644 --- a/base/internals/psi_desc_impl.f90 +++ b/base/internals/psi_desc_impl.f90 @@ -187,267 +187,6 @@ subroutine psi_i_cnv_dsc(halo_in,ovrlap_in,ext_in,cdesc, info, mold) end subroutine psi_i_cnv_dsc - -subroutine psi_i_inner_cnvs(x,hashmask,hashv,glb_lc) - use psi_mod, psi_protect_name => psi_i_inner_cnvs - - integer(psb_ipk_), intent(in) :: hashmask,hashv(0:),glb_lc(:,:) - integer(psb_ipk_), intent(inout) :: x - - integer(psb_ipk_) :: i, ih, key, idx,nh,tmp,lb,ub,lm - ! - ! When a large descriptor is assembled the indices - ! are kept in a (hashed) list of ordered lists. - ! Thus we first hash the index, then we do a binary search on the - ! ordered sublist. The hashing is based on the low-order bits - ! for a width of psb_hash_bits - ! - - key = x - ih = iand(key,hashmask) - idx = hashv(ih) - nh = hashv(ih+1) - hashv(ih) - if (nh > 0) then - tmp = -1 - lb = idx - ub = idx+nh-1 - do - if (lb>ub) exit - lm = (lb+ub)/2 - if (key == glb_lc(lm,1)) then - tmp = lm - exit - else if (key 0) then - x = glb_lc(tmp,2) - else - x = tmp - end if -end subroutine psi_i_inner_cnvs - -subroutine psi_i_inner_cnvs2(x,y,hashmask,hashv,glb_lc) - use psi_mod, psi_protect_name => psi_i_inner_cnvs2 - integer(psb_ipk_), intent(in) :: hashmask,hashv(0:),glb_lc(:,:) - integer(psb_ipk_), intent(in) :: x - integer(psb_ipk_), intent(out) :: y - - integer(psb_ipk_) :: i, ih, key, idx,nh,tmp,lb,ub,lm - ! - ! When a large descriptor is assembled the indices - ! are kept in a (hashed) list of ordered lists. - ! Thus we first hash the index, then we do a binary search on the - ! ordered sublist. The hashing is based on the low-order bits - ! for a width of psb_hash_bits - ! - - key = x - ih = iand(key,hashmask) - idx = hashv(ih) - nh = hashv(ih+1) - hashv(ih) - if (nh > 0) then - tmp = -1 - lb = idx - ub = idx+nh-1 - do - if (lb>ub) exit - lm = (lb+ub)/2 - if (key == glb_lc(lm,1)) then - tmp = lm - exit - else if (key 0) then - y = glb_lc(tmp,2) - else - y = tmp - end if -end subroutine psi_i_inner_cnvs2 - - -subroutine psi_i_inner_cnv1(n,x,hashmask,hashv,glb_lc,mask) - use psi_mod, psi_protect_name => psi_i_inner_cnv1 - integer(psb_ipk_), intent(in) :: n,hashmask,hashv(0:),glb_lc(:,:) - logical, intent(in), optional :: mask(:) - integer(psb_ipk_), intent(inout) :: x(:) - - integer(psb_ipk_) :: i, ih, key, idx,nh,tmp,lb,ub,lm - ! - ! When a large descriptor is assembled the indices - ! are kept in a (hashed) list of ordered lists. - ! Thus we first hash the index, then we do a binary search on the - ! ordered sublist. The hashing is based on the low-order bits - ! for a width of psb_hash_bits - ! - if (present(mask)) then - do i=1, n - if (mask(i)) then - key = x(i) - ih = iand(key,hashmask) - idx = hashv(ih) - nh = hashv(ih+1) - hashv(ih) - if (nh > 0) then - tmp = -1 - lb = idx - ub = idx+nh-1 - do - if (lb>ub) exit - lm = (lb+ub)/2 - if (key == glb_lc(lm,1)) then - tmp = lm - exit - else if (key 0) then - x(i) = glb_lc(tmp,2) - else - x(i) = tmp - end if - end if - end do - else - do i=1, n - key = x(i) - ih = iand(key,hashmask) - idx = hashv(ih) - nh = hashv(ih+1) - hashv(ih) - if (nh > 0) then - tmp = -1 - lb = idx - ub = idx+nh-1 - do - if (lb>ub) exit - lm = (lb+ub)/2 - if (key == glb_lc(lm,1)) then - tmp = lm - exit - else if (key 0) then - x(i) = glb_lc(tmp,2) - else - x(i) = tmp - end if - end do - end if -end subroutine psi_i_inner_cnv1 - -subroutine psi_i_inner_cnv2(n,x,y,hashmask,hashv,glb_lc,mask) - use psi_mod, psi_protect_name => psi_i_inner_cnv2 - integer(psb_ipk_), intent(in) :: n, hashmask,hashv(0:),glb_lc(:,:) - logical, intent(in),optional :: mask(:) - integer(psb_ipk_), intent(in) :: x(:) - integer(psb_ipk_), intent(out) :: y(:) - - integer(psb_ipk_) :: i, ih, key, idx,nh,tmp,lb,ub,lm - ! - ! When a large descriptor is assembled the indices - ! are kept in a (hashed) list of ordered lists. - ! Thus we first hash the index, then we do a binary search on the - ! ordered sublist. The hashing is based on the low-order bits - ! for a width of psb_hash_bits - ! - if (present(mask)) then - do i=1, n - if (mask(i)) then - key = x(i) - ih = iand(key,hashmask) - if (ih > ubound(hashv,1) ) then - write(psb_err_unit,*) ' In inner cnv: ',ih,ubound(hashv) - end if - idx = hashv(ih) - nh = hashv(ih+1) - hashv(ih) - if (nh > 0) then - tmp = -1 - lb = idx - ub = idx+nh-1 - do - if (lb>ub) exit - lm = (lb+ub)/2 - if (key == glb_lc(lm,1)) then - tmp = lm - exit - else if (key 0) then - y(i) = glb_lc(tmp,2) - else - y(i) = tmp - end if - end if - end do - else - do i=1, n - key = x(i) - ih = iand(key,hashmask) - if (ih > ubound(hashv,1) ) then - write(psb_err_unit,*) ' In inner cnv: ',ih,ubound(hashv) - end if - idx = hashv(ih) - nh = hashv(ih+1) - hashv(ih) - if (nh > 0) then - tmp = -1 - lb = idx - ub = idx+nh-1 - do - if (lb>ub) exit - lm = (lb+ub)/2 - if (key == glb_lc(lm,1)) then - tmp = lm - exit - else if (key 0) then - y(i) = glb_lc(tmp,2) - else - y(i) = tmp - end if - end do - end if -end subroutine psi_i_inner_cnv2 - subroutine psi_i_bld_ovr_mst(me,ovrlap_elem,mst_idx,info) use psi_mod, psi_protect_name => psi_i_bld_ovr_mst diff --git a/base/internals/psi_extrct_dl.F90 b/base/internals/psi_extrct_dl.F90 index 5edbd9ad..95086408 100644 --- a/base/internals/psi_extrct_dl.F90 +++ b/base/internals/psi_extrct_dl.F90 @@ -30,7 +30,7 @@ ! ! subroutine psi_i_extract_dep_list(ictxt,is_bld,is_upd,desc_str,dep_list,& - & length_dl,np,dl_lda,mode,info) + & length_dl,dl_lda,mode,info) ! internal routine ! == = ============= @@ -126,27 +126,28 @@ subroutine psi_i_extract_dep_list(ictxt,is_bld,is_upd,desc_str,dep_list,& use psb_const_mod use psb_error_mod use psb_desc_mod + use psb_sort_mod implicit none #ifdef MPI_H include 'mpif.h' #endif ! ....scalar parameters... - logical :: is_bld, is_upd - integer(psb_ipk_) :: ictxt - integer(psb_ipk_) :: np,dl_lda,mode, info - - ! ....array parameters.... - integer(psb_ipk_) :: desc_str(*) - integer(psb_ipk_) :: dep_list(dl_lda,0:np),length_dl(0:np) - integer(psb_ipk_), allocatable :: itmp(:) + 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_), intent(out) :: info ! .....local arrays.... integer(psb_ipk_) :: int_err(5) + integer(psb_ipk_), allocatable :: itmp(:) ! .....local scalars... integer(psb_ipk_) :: i,pointer_dep_list,proc,j,err_act integer(psb_ipk_) :: err integer(psb_ipk_) :: debug_level, debug_unit - integer(psb_mpk_) :: iictxt, icomm, me, npr, dl_mpi, minfo + integer(psb_mpk_) :: iictxt, icomm, me, np, minfo + logical, parameter :: dist_symm_list=.false., print_dl=.false. character name*20 name='psi_extrct_dl' @@ -156,9 +157,15 @@ subroutine psi_i_extract_dep_list(ictxt,is_bld,is_upd,desc_str,dep_list,& iictxt = ictxt info = psb_success_ - call psb_info(iictxt,me,npr) + call psb_info(iictxt,me,np) + allocate(itmp(2*np+1),length_dl(0:np),stat=info) + if (info /= psb_success_) then + info=psb_err_alloc_dealloc_ + goto 9999 + end if do i=0,np length_dl(i) = 0 + itmp(i+1) = -1 enddo i=1 if (debug_level >= psb_debug_inner_)& @@ -176,41 +183,39 @@ subroutine psi_i_extract_dep_list(ictxt,is_bld,is_upd,desc_str,dep_list,& if ((desc_str(i+1) /= 0).or.(desc_str(i+2) /= 0)) then ! ..if number of element to be exchanged !=0 proc=desc_str(i) - if ((proc < 0).or.(proc >= npr)) then + if ((proc < 0).or.(proc >= np)) then if (debug_level >= psb_debug_inner_)& & write(debug_unit,*) me,' ',trim(name),': error ',i,desc_str(i) info = 9999 int_err(1) = i int_err(2) = desc_str(i) - goto 998 + goto 9999 endif ! if((me == 1).and.(proc == 3))write(psb_err_unit,*)'found 3' if (mode == 1) then ! ...search if already exist proc - ! in dep_list(*,me)... + ! in itmp(*)... j=1 do while ((j < pointer_dep_list).and.& - & (dep_list(j,me) /= proc)) + & (itmp(j) /= proc)) j=j+1 enddo if (j == pointer_dep_list) then ! ...if not found..... - dep_list(pointer_dep_list,me)=proc + itmp(pointer_dep_list)=proc pointer_dep_list=pointer_dep_list+1 endif else if (mode == 0) then - if (pointer_dep_list > dl_lda) then - info = psb_err_alloc_dealloc_ - goto 998 - endif - dep_list(pointer_dep_list,me)=proc + itmp(pointer_dep_list)=proc pointer_dep_list=pointer_dep_list+1 endif endif i=i+desc_str(i+1)+2 enddo + else if (is_upd) then + do while (desc_str(i) /= -1) if (debug_level >= psb_debug_inner_) & & write(debug_unit,*) me,' ',trim(name),': looping ',i,desc_str(i) @@ -226,24 +231,16 @@ subroutine psi_i_extract_dep_list(ictxt,is_bld,is_upd,desc_str,dep_list,& ! ...search if already exist proc.... j=1 do while ((j < pointer_dep_list).and.& - & (dep_list(j,me) /= proc)) + & (itmp(j) /= proc)) j=j+1 enddo if (j == pointer_dep_list) then ! ...if not found..... - if (pointer_dep_list > dl_lda) then - info = psb_err_alloc_dealloc_ - goto 998 - endif - dep_list(pointer_dep_list,me)=proc + itmp(pointer_dep_list)=proc pointer_dep_list=pointer_dep_list+1 endif else if (mode == 0) then - if (pointer_dep_list > dl_lda) then - info = psb_err_alloc_dealloc_ - goto 998 - endif - dep_list(pointer_dep_list,me)=proc + itmp(pointer_dep_list)=proc pointer_dep_list=pointer_dep_list+1 endif endif @@ -255,32 +252,116 @@ subroutine psi_i_extract_dep_list(ictxt,is_bld,is_upd,desc_str,dep_list,& endif length_dl(me)=pointer_dep_list-1 + if (dist_symm_list) then + call psb_realloc(length_dl(me),itmp,info) + call psi_symm_dep_list(itmp,ictxt,info) + dl_lda = max(size(itmp),1) + call psb_max(iictxt, dl_lda) + call psb_realloc(dl_lda,itmp,info) + ! dl_lda = min(np,2*dl_lda) + allocate(dep_list(dl_lda,0:np),stat=info) + if (info /= psb_success_) then + call psb_errpush(psb_err_from_subroutine_,name,a_err='Allocate') + goto 9999 + end if - ! ... check for errors... -998 continue - if (debug_level >= psb_debug_inner_)& - & write(debug_unit,*) me,' ',trim(name),': info ',info - err = info - - if (err /= 0) goto 9999 + call psb_sum(iictxt,length_dl(0:np)) + 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 + if (info == 0) deallocate(itmp,stat=info) + if (info /= psb_success_) then + info=psb_err_alloc_dealloc_ + goto 9999 + endif + else + block + integer(psb_ipk_), allocatable :: list1(:,:), ldl2(:), list2(:,:) + integer(psb_ipk_) :: i,j,ip,dlsym, ldu, mdl, l1, l2 - call psb_sum(iictxt,length_dl(0:np)) - call psb_get_mpicomm(iictxt,icomm ) - allocate(itmp(dl_lda),stat=info) - if (info /= psb_success_) then - info=psb_err_alloc_dealloc_ - goto 9999 - endif - itmp(1:dl_lda) = dep_list(1:dl_lda,me) - dl_mpi = dl_lda - call mpi_allgather(itmp,dl_mpi,psb_mpi_ipk_,& - & dep_list,dl_mpi,psb_mpi_ipk_,icomm,minfo) - info = minfo - if (info == 0) deallocate(itmp,stat=info) - if (info /= psb_success_) then - info=psb_err_alloc_dealloc_ - goto 9999 + dl_lda = max(length_dl(me),1) + call psb_max(iictxt, dl_lda) + allocate(dep_list(dl_lda,0:np),stat=info) + if (info /= psb_success_) then + call psb_errpush(psb_err_from_subroutine_,name,a_err='Allocate') + goto 9999 + end if + call psb_sum(iictxt,length_dl(0:np)) + 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 + if (info /= psb_success_) then + info=psb_err_alloc_dealloc_ + goto 9999 + endif + allocate(ldl2(0:np),stat=info) + ldl2 = 0 + do j=0, np-1 + do i=1,length_dl(j) + ip = dep_list(i,j) + ldl2(ip) = ldl2(ip) + 1 + end do + end do + dlsym = maxval(ldl2) + allocate(list2(dlsym,0:np),stat=info) + call move_alloc(dep_list,list1) + if (info /= psb_success_) then + call psb_errpush(psb_err_from_subroutine_,name,a_err='Allocate') + goto 9999 + end if + ldl2 = 0 + do j=0, np-1 + do i=1,length_dl(j) + ip = list1(i,j) + ldl2(ip) = ldl2(ip) + 1 + list2(ldl2(ip),ip) = j + end do + end do + mdl = 0 + do j = 0, np-1 + l1 = length_dl(j) + l2 = ldl2(j) + itmp(1:l1) = list1(1:l1,j) + itmp(l1+1:l1+l2) = list2(1:l2,j) + ldu = l1 + l2 + !if (me == 0) write(0,*) 'Iter ',j,':',l1,l2,':',itmp(1:l1),':',itmp(l1+1:l1+l2) + call psb_msort_unique(itmp(1:l1+l2),ldu) + mdl = max(mdl, ldu) + !if (me == 0) write(0,*) 'Iter ',j,':',ldu,':',itmp(1:ldu) + end do + dl_lda = mdl + allocate(dep_list(dl_lda,0:np),stat=info) + dep_list = -1 + if (info /= psb_success_) then + call psb_errpush(psb_err_from_subroutine_,name,a_err='Allocate') + goto 9999 + end if + do j = 0, np-1 + l1 = length_dl(j) + l2 = ldl2(j) + itmp(1:l1) = list1(1:l1,j) + itmp(l1+1:l1+l2) = list2(1:l2,j) + ldu = l1 + l2 + call psb_msort_unique(itmp(1:l1+l2),ldu) + length_dl(j) = ldu + dep_list(1:ldu,j) = itmp(1:ldu) + end do + + end block endif + if (print_dl) then + if (me == 0) then + write(0,*) ' Dep_list ' + do i=0,np-1 + j = length_dl(i) + write(0,*) 'Proc ',i,':',dep_list(1:j,i) + end do + flush(0) + end if + call psb_barrier(ictxt) + end if call psb_erractionrestore(err_act) return diff --git a/base/internals/psi_fnd_owner.F90 b/base/internals/psi_fnd_owner.F90 index 456dd4d4..f2a22e0e 100644 --- a/base/internals/psi_fnd_owner.F90 +++ b/base/internals/psi_fnd_owner.F90 @@ -62,11 +62,11 @@ subroutine psi_fnd_owner(nv,idx,iprc,desc,info) #ifdef MPI_H include 'mpif.h' #endif - integer(psb_ipk_), intent(in) :: nv - integer(psb_lpk_), intent(in) :: idx(:) + integer(psb_ipk_), intent(in) :: nv + integer(psb_lpk_), intent(in) :: idx(:) integer(psb_ipk_), allocatable, intent(out) :: iprc(:) - type(psb_desc_type), intent(in) :: desc - integer(psb_ipk_), intent(out) :: info + type(psb_desc_type), intent(inout) :: desc + integer(psb_ipk_), intent(out) :: info integer(psb_ipk_), allocatable :: hsz(:),hidx(:),helem(:),hproc(:),& diff --git a/base/internals/psi_graph_fnd_owner.F90 b/base/internals/psi_graph_fnd_owner.F90 new file mode 100644 index 00000000..7e69c1ef --- /dev/null +++ b/base/internals/psi_graph_fnd_owner.F90 @@ -0,0 +1,362 @@ +! +! Parallel Sparse BLAS version 3.5 +! (C) Copyright 2006-2018 +! Salvatore Filippone +! 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. +! +! +! +! +! File: psi_graph_fnd_owner.f90 +! +! Subroutine: psi_graph_fnd_owner +! Figure out who owns global indices. +! +! Arguments: +! idx(:) - integer Required indices on the calling process. +! +! iprc(:) - integer(psb_ipk_), allocatable Output: process identifiers for the corresponding +! indices +! 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 + use psb_const_mod + 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 +#endif + + implicit none +#ifdef MPI_H + include 'mpif.h' +#endif + integer(psb_lpk_), intent(in) :: idx(:) + integer(psb_ipk_), allocatable, intent(out) :: iprc(:) + class(psb_indx_map), intent(inout) :: idxmap + integer(psb_ipk_), intent(out) :: info + + + integer(psb_lpk_), allocatable :: tidx(:) + integer(psb_ipk_), allocatable :: tprc(:), tsmpl(:), ladj(:) + integer(psb_mpk_) :: icomm, minfo, iictxt + integer(psb_ipk_) :: i,n_row,n_col,err_act,ip,j,ipnt, nsampl_out,& + & nv, n_answers, n_rest, nsampl_in, locr_max, & + & nrest_max, nadj, maxspace, mxnsin + integer(psb_lpk_) :: mglob, ih + integer(psb_ipk_) :: ictxt,np,me, nresp + integer(psb_ipk_), parameter :: nt=4 + 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 + + info = psb_success_ + name = 'psi_graph_fnd_owner' + call psb_erractionsave(err_act) + + ictxt = idxmap%get_ctxt() + icomm = idxmap%get_mpic() + mglob = idxmap%get_gr() + 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) + + if (np == -1) then + info = psb_err_context_error_ + call psb_errpush(info,name) + goto 9999 + endif + + if (.not.(idxmap%is_valid())) then + call psb_errpush(psb_err_from_subroutine_,name,a_err='invalid idxmap') + goto 9999 + end if + + ! + ! + ! + nv = size(idx) + call psb_realloc(nv,iprc,info) + if (info == psb_success_) call psb_realloc(nv,tidx,info) + if (info == psb_success_) call psb_realloc(nv,tprc,info) + if (info == psb_success_) call psb_realloc(nv,tsmpl,info) + if (info /= psb_success_) then + call psb_errpush(psb_err_from_subroutine_,name,a_err='psb_realloc') + goto 9999 + end if + iprc(:) = -1 + n_answers = 0 + ! + ! Start from the adjacncy list + ! + call psb_safe_ab_cpy(idxmap%p_adjcncy,ladj,info) + nadj = psb_size(ladj) + ! This makes ladj allocated with size 0 just in case + call psb_realloc(nadj,ladj,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 + ! + if (trace.and.(me == 0)) write(0,*) ' Initial sweep on user-defined topology' + nsampl_in = min(n_rest,max(1,(maxspace+max(1,nadj)-1))/(max(1,nadj))) + call psi_adj_fnd_sweep(idx,iprc,ladj,idxmap,nsampl_in,n_answers) + call idxmap%xtnd_p_adjcncy(ladj) + n_rest = nv - n_answers + nrest_max = n_rest + 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 + ! in the neighbourood. + ! + ! 1. Select a sample such that the total size is <= maxspace + ! sample query is then sent to all processes + ! + ! 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)) + ! + ! Choose a sample, should it be done in this simplistic way? + ! Note: nsampl_in is a hint, not an absolute, hence nsampl_out + ! + ipnt = 1 +!!$ write(0,*) me,' Into first sampling ',nsampl_in + call psi_get_sample(ipnt, idx,iprc,tidx,tsmpl,nsampl_in,nsampl_out) + nsampl_in = min(nsampl_out,nsampl_in) +!!$ write(0,*) me,' From first sampling ',nsampl_in + ! + ! 2. Do a search on all processes; this is supposed to find + ! the owning process for all inputs; + ! + call psi_a2a_fnd_owner(tidx(1:nsampl_in),tprc,idxmap,info) + call psi_cpy_out(iprc,tprc,tsmpl,nsampl_in,nsampl_out) + if (nsampl_out /= nsampl_in) then + write(0,*) me,'Warning: indices not found by a2a_fnd_owner ',nsampl_out,nsampl_in + end if + n_answers = n_answers + nsampl_out + n_rest = nv - n_answers + ! + ! 3. Extract the resulting adjacency list and add it to the + ! indxmap; + ! + 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 + ! (will not be exact since nadj varies with process) + ! Need to set up a proper loop here to have a complete + ! sweep over the input vector. Done inside adj_fnd_sweep. + ! +!!$ write(0,*) me,' After a2a ',n_rest + nsampl_in = min(n_rest,max(1,(maxspace+max(1,nadj)-1))/(max(1,nadj))) + mxnsin = nsampl_in + call psb_max(ictxt,mxnsin) +!!$ write(0,*) me, ' mxnsin ',mxnsin + if (mxnsin>0) call psi_adj_fnd_sweep(idx,iprc,ladj,idxmap,nsampl_in,n_answers) + call idxmap%xtnd_p_adjcncy(ladj) + + n_rest = nv - n_answers + 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) + return + +9999 call psb_error_handler(ictxt,err_act) + + return + +contains + + subroutine psi_get_sample(ipntidx,idx,iprc,tidx,tsmpl,ns_in,ns_out) + implicit none + integer(psb_ipk_), intent(inout) :: ipntidx + integer(psb_lpk_), intent(in) :: idx(:) + integer(psb_ipk_), intent(in) :: ns_in, iprc(:) + integer(psb_lpk_), intent(out) :: tidx(:) + integer(psb_ipk_), intent(out) :: tsmpl(:), ns_out + ! + integer(psb_ipk_) :: nv, ns + + nv = size(idx) + ! + ! Choose a sample, should it be done in this simplistic way? + ! + ns = ns_in + ! + ! ns_in == 0 means that on the outside we figure there's + ! nothing left, but we are here because we have to synchronize. + ! Make sure we sweep through the entire vector immediately + ! + if (ns == 0) ns = nv + ns_out = 0 + + do while (ipntidx<= nv) + if (iprc(ipntidx) == -1) then + ns_out = ns_out + 1 + tsmpl(ns_out) = ipntidx + tidx(ns_out) = idx(ipntidx) + end if + ipntidx = ipntidx + 1 + if (ns_out >= ns) exit + end do + + end subroutine psi_get_sample + + subroutine psi_cpy_out(iprc,tprc,tsmpl,ns_in,ns_out) + implicit none + integer(psb_ipk_), intent(out) :: iprc(:) + integer(psb_ipk_), intent(in) :: ns_in + integer(psb_ipk_), intent(in) :: tprc(:), tsmpl(:) + integer(psb_ipk_), intent(out) :: ns_out + + integer(psb_ipk_) :: j + + ns_out = 0 + do j=1, ns_in + if (tprc(j) /= -1) then + ns_out = ns_out + 1 + iprc(tsmpl(j)) = tprc(j) + end if + end do + end subroutine psi_cpy_out + + subroutine psi_adj_fnd_sweep(idx,iprc,adj,idxmap,n_samples,n_answers) + implicit none + integer(psb_lpk_), intent(in) :: idx(:) + integer(psb_ipk_), intent(in) :: n_samples + integer(psb_ipk_), intent(inout) :: iprc(:), n_answers + integer(psb_ipk_), intent(in) :: adj(:) + class(psb_indx_map), intent(inout) :: idxmap + ! + integer(psb_ipk_) :: ipnt, ns_in, ns_out, n_rem, ictxt, me, np, isw + integer(psb_lpk_), allocatable :: tidx(:) + integer(psb_ipk_), allocatable :: tsmpl(:) + + ictxt = idxmap%get_ctxt() + call psb_info(ictxt,me,np) + call psb_realloc(n_samples,tidx,info) + call psb_realloc(n_samples,tsmpl,info) + ipnt = 1 + isw = 1 + do + !write(0,*) me,' Into sampling ',n_samples + call psi_get_sample(ipnt, idx,iprc,tidx,tsmpl,n_samples,ns_out) + ns_in = min(n_samples,ns_out) + !write(0,*) me,' From second sampling ',ns_out + call psi_adjcncy_fnd_owner(tidx(1:ns_in),tprc,ladj,idxmap,info) + call psi_cpy_out(iprc,tprc,tsmpl,ns_in,ns_out) + !write(0,*) me,' Sweep ',isw,' answers:',ns_out + n_answers = n_answers + ns_out + n_rem = size(idx)-ipnt + call psb_max(ictxt,n_rem) + !write(0,*) me,' Sweep ',isw,n_rem, ipnt, n_samples + if (n_rem <= 0) exit + isw = isw + 1 + end do + + + end subroutine psi_adj_fnd_sweep + +end subroutine psi_graph_fnd_owner diff --git a/base/internals/psi_hash_impl.f90 b/base/internals/psi_hash_impl.f90 new file mode 100644 index 00000000..ed650e62 --- /dev/null +++ b/base/internals/psi_hash_impl.f90 @@ -0,0 +1,291 @@ +! +! Parallel Sparse BLAS version 3.5 +! (C) Copyright 2006-2018 +! Salvatore Filippone +! 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 psi_i_inner_cnvs(x,hashmask,hashv,glb_lc) + use psi_mod, psi_protect_name => psi_i_inner_cnvs + + integer(psb_ipk_), intent(in) :: hashmask,hashv(0:),glb_lc(:,:) + integer(psb_ipk_), intent(inout) :: x + + integer(psb_ipk_) :: i, ih, key, idx,nh,tmp,lb,ub,lm + ! + ! When a large descriptor is assembled the indices + ! are kept in a (hashed) list of ordered lists. + ! Thus we first hash the index, then we do a binary search on the + ! ordered sublist. The hashing is based on the low-order bits + ! for a width of psb_hash_bits + ! + + key = x + ih = iand(key,hashmask) + idx = hashv(ih) + nh = hashv(ih+1) - hashv(ih) + if (nh > 0) then + tmp = -1 + lb = idx + ub = idx+nh-1 + do + if (lb>ub) exit + lm = (lb+ub)/2 + if (key == glb_lc(lm,1)) then + tmp = lm + exit + else if (key 0) then + x = glb_lc(tmp,2) + else + x = tmp + end if +end subroutine psi_i_inner_cnvs + +subroutine psi_i_inner_cnvs2(x,y,hashmask,hashv,glb_lc) + use psi_mod, psi_protect_name => psi_i_inner_cnvs2 + integer(psb_ipk_), intent(in) :: hashmask,hashv(0:),glb_lc(:,:) + integer(psb_ipk_), intent(in) :: x + integer(psb_ipk_), intent(out) :: y + + integer(psb_ipk_) :: i, ih, key, idx,nh,tmp,lb,ub,lm + ! + ! When a large descriptor is assembled the indices + ! are kept in a (hashed) list of ordered lists. + ! Thus we first hash the index, then we do a binary search on the + ! ordered sublist. The hashing is based on the low-order bits + ! for a width of psb_hash_bits + ! + + key = x + ih = iand(key,hashmask) + idx = hashv(ih) + nh = hashv(ih+1) - hashv(ih) + if (nh > 0) then + tmp = -1 + lb = idx + ub = idx+nh-1 + do + if (lb>ub) exit + lm = (lb+ub)/2 + if (key == glb_lc(lm,1)) then + tmp = lm + exit + else if (key 0) then + y = glb_lc(tmp,2) + else + y = tmp + end if +end subroutine psi_i_inner_cnvs2 + + +subroutine psi_i_inner_cnv1(n,x,hashmask,hashv,glb_lc,mask) + use psi_mod, psi_protect_name => psi_i_inner_cnv1 + integer(psb_ipk_), intent(in) :: n,hashmask,hashv(0:),glb_lc(:,:) + logical, intent(in), optional :: mask(:) + integer(psb_ipk_), intent(inout) :: x(:) + + integer(psb_ipk_) :: i, ih, key, idx,nh,tmp,lb,ub,lm + ! + ! When a large descriptor is assembled the indices + ! are kept in a (hashed) list of ordered lists. + ! Thus we first hash the index, then we do a binary search on the + ! ordered sublist. The hashing is based on the low-order bits + ! for a width of psb_hash_bits + ! + if (present(mask)) then + do i=1, n + if (mask(i)) then + key = x(i) + ih = iand(key,hashmask) + idx = hashv(ih) + nh = hashv(ih+1) - hashv(ih) + if (nh > 0) then + tmp = -1 + lb = idx + ub = idx+nh-1 + do + if (lb>ub) exit + lm = (lb+ub)/2 + if (key == glb_lc(lm,1)) then + tmp = lm + exit + else if (key 0) then + x(i) = glb_lc(tmp,2) + else + x(i) = tmp + end if + end if + end do + else + do i=1, n + key = x(i) + ih = iand(key,hashmask) + idx = hashv(ih) + nh = hashv(ih+1) - hashv(ih) + if (nh > 0) then + tmp = -1 + lb = idx + ub = idx+nh-1 + do + if (lb>ub) exit + lm = (lb+ub)/2 + if (key == glb_lc(lm,1)) then + tmp = lm + exit + else if (key 0) then + x(i) = glb_lc(tmp,2) + else + x(i) = tmp + end if + end do + end if +end subroutine psi_i_inner_cnv1 + +subroutine psi_i_inner_cnv2(n,x,y,hashmask,hashv,glb_lc,mask) + use psi_mod, psi_protect_name => psi_i_inner_cnv2 + integer(psb_ipk_), intent(in) :: n, hashmask,hashv(0:),glb_lc(:,:) + logical, intent(in),optional :: mask(:) + integer(psb_ipk_), intent(in) :: x(:) + integer(psb_ipk_), intent(out) :: y(:) + + integer(psb_ipk_) :: i, ih, key, idx,nh,tmp,lb,ub,lm + ! + ! When a large descriptor is assembled the indices + ! are kept in a (hashed) list of ordered lists. + ! Thus we first hash the index, then we do a binary search on the + ! ordered sublist. The hashing is based on the low-order bits + ! for a width of psb_hash_bits + ! + if (present(mask)) then + do i=1, n + if (mask(i)) then + key = x(i) + ih = iand(key,hashmask) + if (ih > ubound(hashv,1) ) then + write(psb_err_unit,*) ' In inner cnv: ',ih,ubound(hashv) + end if + idx = hashv(ih) + nh = hashv(ih+1) - hashv(ih) + if (nh > 0) then + tmp = -1 + lb = idx + ub = idx+nh-1 + do + if (lb>ub) exit + lm = (lb+ub)/2 + if (key == glb_lc(lm,1)) then + tmp = lm + exit + else if (key 0) then + y(i) = glb_lc(tmp,2) + else + y(i) = tmp + end if + end if + end do + else + do i=1, n + key = x(i) + ih = iand(key,hashmask) + if (ih > ubound(hashv,1) ) then + write(psb_err_unit,*) ' In inner cnv: ',ih,ubound(hashv) + end if + idx = hashv(ih) + nh = hashv(ih+1) - hashv(ih) + if (nh > 0) then + tmp = -1 + lb = idx + ub = idx+nh-1 + do + if (lb>ub) exit + lm = (lb+ub)/2 + if (key == glb_lc(lm,1)) then + tmp = lm + exit + else if (key 0) then + y(i) = glb_lc(tmp,2) + else + y(i) = tmp + end if + end do + end if +end subroutine psi_i_inner_cnv2 diff --git a/base/internals/psi_indx_map_fnd_owner.F90 b/base/internals/psi_indx_map_fnd_owner.F90 new file mode 100644 index 00000000..0aee0806 --- /dev/null +++ b/base/internals/psi_indx_map_fnd_owner.F90 @@ -0,0 +1,168 @@ +! +! Parallel Sparse BLAS version 3.5 +! (C) Copyright 2006-2018 +! Salvatore Filippone +! 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. +! +! +! +! File: psi_indx_map_fnd_owner.f90 +! +! Subroutine: psi_indx_map_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 +! 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 + use psb_const_mod + use psb_error_mod + use psb_penv_mod + use psb_realloc_mod + use psb_indx_map_mod, psb_protect_name => psi_indx_map_fnd_owner +#ifdef MPI_MOD + use mpi +#endif + + implicit none +#ifdef MPI_H + include 'mpif.h' +#endif + integer(psb_lpk_), intent(in) :: idx(:) + integer(psb_ipk_), allocatable, intent(out) :: iprc(:) + class(psb_indx_map), intent(inout) :: idxmap + integer(psb_ipk_), intent(out) :: info + + + integer(psb_ipk_), allocatable :: hhidx(:) + integer(psb_mpk_) :: icomm, minfo, iictxt + integer(psb_ipk_) :: i, err_act, hsize, nv + integer(psb_lpk_) :: mglob + integer(psb_ipk_) :: ictxt,np,me, nresp + logical, parameter :: gettime=.false. + real(psb_dpk_) :: t0, t1, t2, t3, t4, tamx, tidx + character(len=20) :: name + + info = psb_success_ + name = 'psb_indx_map_fnd_owner' + call psb_erractionsave(err_act) + + ictxt = idxmap%get_ctxt() + icomm = idxmap%get_mpic() + mglob = idxmap%get_gr() + iictxt = ictxt + + 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.(idxmap%is_valid())) then + call psb_errpush(psb_err_from_subroutine_,name,a_err='invalid idxmap') + goto 9999 + end if + + if (gettime) then + t0 = psb_wtime() + end if + + nv = size(idx) + call psb_realloc(nv,iprc,info) + if (info /= psb_success_) then + call psb_errpush(psb_err_from_subroutine_,name,a_err='psb_realloc') + goto 9999 + end if + + if (associated(idxmap%parts)) then + ! Use function shortcut +!!$ write(0,*) me,trim(name),' indxmap%parts shortcut' + Allocate(hhidx(np), stat=info) + if (info /= psb_success_) then + call psb_errpush(psb_err_from_subroutine_,name,a_err='Allocate') + goto 9999 + end if + do i=1, nv + call idxmap%parts(idx(i),mglob,np,hhidx,nresp) + if (nresp > 0) then + iprc(i) = hhidx(1) + else + iprc(i) = -1 + end if + end do + + else if (allocated(idxmap%tempvg)) then +!!$ write(0,*) me,trim(name),' indxmap%tempvg shortcut' + ! Use temporary vector + do i=1, nv + iprc(i) = idxmap%tempvg(idx(i)) + end do + + else + + call psi_graph_fnd_owner(idx,iprc,idxmap,info) + + end if + + if (gettime) then + call psb_barrier(ictxt) + t1 = psb_wtime() + t1 = t1 -t0 - tamx - tidx + call psb_amx(ictxt,tamx) + call psb_amx(ictxt,tidx) + call psb_amx(ictxt,t1) + if (me == psb_root_) then + write(psb_out_unit,'(" fnd_owner idx time : ",es10.4)') tidx + write(psb_out_unit,'(" fnd_owner amx time : ",es10.4)') tamx + write(psb_out_unit,'(" fnd_owner remainedr : ",es10.4)') t1 + endif + end if + + call psb_erractionrestore(err_act) + return + +9999 call psb_error_handler(ictxt,err_act) + + return + +end subroutine psi_indx_map_fnd_owner diff --git a/base/internals/psi_symm_dep_list.F90 b/base/internals/psi_symm_dep_list.F90 new file mode 100644 index 00000000..cd2894c1 --- /dev/null +++ b/base/internals/psi_symm_dep_list.F90 @@ -0,0 +1,193 @@ +! +! Parallel Sparse BLAS version 3.5 +! (C) Copyright 2006-2018 +! Salvatore Filippone +! 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. +! +! +! +! File: psi_fnd_owner.f90 +! +! Subroutine: psi_fnd_owner +! Figure out who owns global indices. +! +! Arguments: +! +subroutine psi_symm_dep_list_inrv(rvsz,adj,ictxt,info) + use psb_serial_mod + use psb_const_mod + use psb_error_mod + use psb_penv_mod + use psb_realloc_mod + use psb_indx_map_mod, psb_protect_name => psi_symm_dep_list_inrv +#ifdef MPI_MOD + use mpi +#endif + + implicit none +#ifdef MPI_H + include 'mpif.h' +#endif + integer(psb_mpk_), intent(inout) :: rvsz(0:) + integer(psb_ipk_), allocatable, intent(inout) :: adj(:) + integer(psb_ipk_), intent(in) :: ictxt + integer(psb_ipk_), intent(out) :: info + + ! + integer(psb_ipk_), allocatable :: ladj(:) + integer(psb_mpk_) :: icomm, minfo + integer(psb_ipk_) :: i,n_row,n_col,err_act,hsize,ip,& + & last_ih, last_j, nidx, nrecv, nadj, flag_ + integer(psb_lpk_) :: mglob, ih + integer(psb_ipk_) :: np,me + character(len=20) :: name + + info = psb_success_ + name = 'psi_symm_dep_list' + call psb_erractionsave(err_act) + + icomm = psb_get_mpi_comm(ictxt) + + call psb_info(ictxt, me, np) + + if (np == -1) then + info = psb_err_context_error_ + call psb_errpush(info,name) + goto 9999 + endif + + nadj = size(adj) + + ! + ! Am getting this from the outside, possibly from the wrapper call + ! + if (size(rvsz) 0) nrecv = nrecv + 1 + end do + + ! + ! Now fix adj to be symmetric + ! + call psb_realloc(nadj+nrecv,ladj,info) + ladj(1:nadj) = adj(1:nadj) + do ip=0, np-1 + if (rvsz(ip)>0) then + nadj = nadj + 1 + ladj(nadj) = ip + end if + end do + call psb_msort_unique(ladj,nadj) + call psb_realloc(nadj,adj,info) + if (info == 0) adj(1:nadj) = ladj(1:nadj) + + call psb_erractionrestore(err_act) + return + +9999 call psb_error_handler(ictxt,err_act) + + return + +end subroutine psi_symm_dep_list_inrv + +subroutine psi_symm_dep_list_norv(adj,ictxt,info) + use psb_serial_mod + use psb_const_mod + use psb_error_mod + use psb_penv_mod + use psb_realloc_mod + use psb_indx_map_mod, psb_protect_name => psi_symm_dep_list_norv +#ifdef MPI_MOD + use mpi +#endif + + implicit none +#ifdef MPI_H + include 'mpif.h' +#endif + integer(psb_ipk_), allocatable, intent(inout) :: adj(:) + integer(psb_ipk_), intent(in) :: ictxt + integer(psb_ipk_), intent(out) :: info + + ! + integer(psb_mpk_), allocatable :: rvsz(:), sdsz(:) + + integer(psb_mpk_) :: icomm, minfo + integer(psb_ipk_) :: i,n_row,n_col,err_act,hsize,ip,& + & last_ih, last_j, nidx, nrecv, nadj + integer(psb_ipk_) :: mglob, ih + integer(psb_ipk_) :: np,me + character(len=20) :: name + + info = psb_success_ + name = 'psi_symm_dep_list' + call psb_erractionsave(err_act) + + icomm = psb_get_mpi_comm(ictxt) + + call psb_info(ictxt, me, np) + + if (np == -1) then + info = psb_err_context_error_ + call psb_errpush(info,name) + goto 9999 + endif + + nadj = size(adj) + + ! write(0,*) me,name,' Going through ',nidx,nadj + + Allocate(sdsz(0:np-1), rvsz(0:np-1), stat=info) + ! + ! First, send sizes according to adjcncy list + ! + sdsz = 0 + do i=1, nadj + sdsz(adj(i)) = 1 + 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) + if (minfo == 0) call psi_symm_dep_list(rvsz,adj,ictxt,info) + if ((minfo /=0).or.(info /= 0)) then + call psb_errpush(psb_err_from_subroutine_,name,a_err='inner call symm_dep') + goto 9999 + end if + + call psb_erractionrestore(err_act) + return + +9999 call psb_error_handler(ictxt,err_act) + + return + +end subroutine psi_symm_dep_list_norv diff --git a/base/modules/Makefile b/base/modules/Makefile index b6ab52ea..21525a3c 100644 --- a/base/modules/Makefile +++ b/base/modules/Makefile @@ -261,7 +261,7 @@ psi_z_mod.o: desc/psb_desc_mod.o serial/psb_z_vect_mod.o comm/psi_z_comm_a_mod.o psi_mod.o: psb_penv_mod.o desc/psb_desc_mod.o auxil/psi_serial_mod.o serial/psb_serial_mod.o\ psi_i_mod.o psi_l_mod.o psi_s_mod.o psi_d_mod.o psi_c_mod.o psi_z_mod.o -desc/psb_indx_map_mod.o: desc/psb_desc_const_mod.o psb_error_mod.o psb_penv_mod.o psb_realloc_mod.o +desc/psb_indx_map_mod.o: desc/psb_desc_const_mod.o psb_error_mod.o psb_penv_mod.o psb_realloc_mod.o auxil/psb_sort_mod.o desc/psb_hash_map_mod.o desc/psb_list_map_mod.o desc/psb_repl_map_mod.o desc/psb_gen_block_map_mod.o:\ desc/psb_indx_map_mod.o desc/psb_desc_const_mod.o \ auxil/psb_sort_mod.o psb_penv_mod.o diff --git a/base/modules/desc/psb_desc_mod.F90 b/base/modules/desc/psb_desc_mod.F90 index 7170af96..fbc64c8c 100644 --- a/base/modules/desc/psb_desc_mod.F90 +++ b/base/modules/desc/psb_desc_mod.F90 @@ -233,6 +233,9 @@ module psb_desc_mod procedure, pass(desc) :: get_global_rows => psb_cd_get_global_rows procedure, pass(desc) :: get_global_cols => psb_cd_get_global_cols procedure, pass(desc) :: get_global_indices => psb_cd_get_global_indices + procedure, pass(desc) :: get_p_adjcncy => cd_get_p_adjcncy + procedure, pass(desc) :: set_p_adjcncy => cd_set_p_adjcncy + procedure, pass(desc) :: xtnd_p_adjcncy => cd_xtnd_p_adjcncy procedure, pass(desc) :: a_get_list => psb_cd_get_list procedure, pass(desc) :: v_get_list => psb_cd_v_get_list generic, public :: get_list => a_get_list, v_get_list @@ -282,6 +285,14 @@ module psb_desc_mod module procedure psb_cdfree end interface psb_free + interface psb_cd_set_maxspace + module procedure psb_cd_set_maxspace + end interface psb_cd_set_maxspace + + interface psb_cd_get_maxspace + module procedure psb_cd_get_maxspace + end interface psb_cd_get_maxspace + interface psb_cd_set_large_threshold module procedure psb_i_cd_set_large_threshold end interface psb_cd_set_large_threshold @@ -298,7 +309,8 @@ module psb_desc_mod & cd_g2ls2_ins, cd_g2lv1_ins, cd_g2lv2_ins, cd_fnd_owner - integer(psb_lpk_), private, save :: cd_large_threshold=psb_default_large_threshold + integer(psb_lpk_), private, save :: cd_large_threshold = psb_default_large_threshold + integer(psb_ipk_), private, save :: cd_maxspace = -1 contains @@ -347,10 +359,25 @@ contains function psb_cd_get_large_threshold() result(val) implicit none - integer(psb_ipk_) :: val + integer(psb_lpk_) :: val val = cd_large_threshold end function psb_cd_get_large_threshold + + subroutine psb_cd_set_maxspace(ith) + implicit none + integer(psb_ipk_), intent(in) :: ith + if (ith > 0) then + cd_maxspace = ith + end if + end subroutine psb_cd_set_maxspace + + function psb_cd_get_maxspace() result(val) + implicit none + integer(psb_ipk_) :: val + val = cd_maxspace + end function psb_cd_get_maxspace + function psb_cd_is_large_size(m) result(val) use psb_penv_mod @@ -557,9 +584,7 @@ contains end function psb_cd_get_global_indices - - - + function cd_get_fmt(desc) result(val) implicit none character(len=5) :: val @@ -620,6 +645,35 @@ contains end function psb_cd_get_mpic + function cd_get_p_adjcncy(desc) result(val) + implicit none + integer(psb_ipk_), allocatable :: val(:) + class(psb_desc_type), intent(in) :: desc + + if (allocated(desc%indxmap)) then + val = desc%indxmap%get_p_adjcncy() + endif + + end function cd_get_p_adjcncy + + subroutine cd_set_p_adjcncy(desc,val) + implicit none + class(psb_desc_type), intent(inout) :: desc + integer(psb_ipk_), intent(in) :: val(:) + if (allocated(desc%indxmap)) then + call desc%indxmap%xtnd_p_adjcncy(val) + endif + end subroutine cd_set_p_adjcncy + + subroutine cd_xtnd_p_adjcncy(desc,val) + implicit none + class(psb_desc_type), intent(inout) :: desc + integer(psb_ipk_), intent(in) :: val(:) + if (allocated(desc%indxmap)) then + call desc%indxmap%xtnd_p_adjcncy(val) + endif + end subroutine cd_xtnd_p_adjcncy + subroutine psb_cd_set_ovl_asb(desc,info) ! ! Change state of a descriptor into ovl_build. @@ -1716,10 +1770,10 @@ contains subroutine cd_fnd_owner(idx,iprc,desc,info) use psb_error_mod implicit none - integer(psb_lpk_), intent(in) :: idx(:) + integer(psb_lpk_), intent(in) :: idx(:) integer(psb_ipk_), allocatable, intent(out) :: iprc(:) - class(psb_desc_type), intent(in) :: desc - integer(psb_ipk_), intent(out) :: info + class(psb_desc_type), intent(inout) :: desc + integer(psb_ipk_), intent(out) :: info integer(psb_ipk_) :: err_act character(len=20) :: name='cd_fnd_owner' logical, parameter :: debug=.false. diff --git a/base/modules/desc/psb_gen_block_map_mod.F90 b/base/modules/desc/psb_gen_block_map_mod.F90 index 15eb0939..255b05d1 100644 --- a/base/modules/desc/psb_gen_block_map_mod.F90 +++ b/base/modules/desc/psb_gen_block_map_mod.F90 @@ -1934,10 +1934,10 @@ contains subroutine block_fnd_owner(idx,iprc,idxmap,info) use psb_penv_mod implicit none - integer(psb_lpk_), intent(in) :: idx(:) + integer(psb_lpk_), intent(in) :: idx(:) integer(psb_ipk_), allocatable, intent(out) :: iprc(:) - class(psb_gen_block_map), intent(in) :: idxmap - integer(psb_ipk_), intent(out) :: info + class(psb_gen_block_map), intent(inout) :: idxmap + integer(psb_ipk_), intent(out) :: info integer(psb_ipk_) :: ictxt, iam, np, nv, ip, i integer(psb_lpk_) :: tidx @@ -2005,7 +2005,7 @@ contains idxmap%local_cols = nl idxmap%ictxt = ictxt idxmap%state = psb_desc_bld_ - call psb_get_mpicomm(ictxt,idxmap%mpic) + 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 fe585f1b..3298291a 100644 --- a/base/modules/desc/psb_glist_map_mod.f90 +++ b/base/modules/desc/psb_glist_map_mod.f90 @@ -124,9 +124,9 @@ contains return end if - idxmap%ictxt = ictxt - idxmap%state = psb_desc_bld_ - call psb_get_mpicomm(ictxt,idxmap%mpic) + idxmap%ictxt = ictxt + idxmap%state = psb_desc_bld_ + idxmap%mpic = psb_get_mpi_comm(ictxt) nl = 0 do i=1, n @@ -154,10 +154,10 @@ contains use psb_penv_mod use psb_sort_mod implicit none - integer(psb_lpk_), intent(in) :: idx(:) + integer(psb_lpk_), intent(in) :: idx(:) integer(psb_ipk_), allocatable, intent(out) :: iprc(:) - class(psb_glist_map), intent(in) :: idxmap - integer(psb_ipk_), intent(out) :: info + class(psb_glist_map), intent(inout) :: idxmap + integer(psb_ipk_), intent(out) :: info integer(psb_mpk_) :: ictxt, iam, np integer(psb_lpk_) :: nv, i, ngp diff --git a/base/modules/desc/psb_hash_map_mod.f90 b/base/modules/desc/psb_hash_map_mod.f90 index 6e98af2f..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_ - call psb_get_mpicomm(ictxt,idxmap%mpic) + 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 12c8d242..378b38af 100644 --- a/base/modules/desc/psb_indx_map_mod.f90 +++ b/base/modules/desc/psb_indx_map_mod.f90 @@ -127,7 +127,9 @@ module psb_indx_map_mod integer(psb_ipk_), allocatable :: oracle(:,:) !> Halo owners integer(psb_ipk_), allocatable :: halo_owner(:) - + !> Adjacency list for processes + integer(psb_ipk_), allocatable :: p_adjcncy(:) + contains procedure, pass(idxmap) :: get_state => base_get_state @@ -144,6 +146,8 @@ module psb_indx_map_mod procedure, pass(idxmap) :: get_lr => base_get_lr procedure, pass(idxmap) :: get_lc => base_get_lc + procedure, pass(idxmap) :: get_p_adjcncy => base_get_p_adjcncy + procedure, pass(idxmap) :: set_gri => base_set_gri procedure, pass(idxmap) :: set_gci => base_set_gci @@ -155,6 +159,9 @@ module psb_indx_map_mod procedure, pass(idxmap) :: set_lr => base_set_lr procedure, pass(idxmap) :: set_lc => base_set_lc + procedure, pass(idxmap) :: set_p_adjcncy => base_set_p_adjcncy + procedure, pass(idxmap) :: xtnd_p_adjcncy => base_xtnd_p_adjcncy + procedure, pass(idxmap) :: set_ctxt => base_set_ctxt procedure, pass(idxmap) :: set_mpic => base_set_mpic procedure, pass(idxmap) :: get_ctxt => base_get_ctxt @@ -216,7 +223,7 @@ module psb_indx_map_mod procedure, pass(idxmap) :: fnd_halo_owner_v => base_fnd_halo_owner_v generic, public :: fnd_halo_owner => fnd_halo_owner_s, fnd_halo_owner_v - procedure, pass(idxmap) :: fnd_owner => psb_indx_map_fnd_owner + procedure, pass(idxmap) :: fnd_owner => psi_indx_map_fnd_owner procedure, pass(idxmap) :: init_vl => base_init_vl generic, public :: init => init_vl @@ -238,9 +245,10 @@ module psb_indx_map_mod & base_lg2lv2_ins, base_init_vl, base_is_null,& & base_row_extendable, base_clone, base_cpy, base_reinit, & & base_set_halo_owner, base_get_halo_owner, & - & base_fnd_halo_owner_s, base_fnd_halo_owner_v + & base_fnd_halo_owner_s, base_fnd_halo_owner_v,& + & base_get_p_adjcncy, base_set_p_adjcncy, base_xtnd_p_adjcncy - !> Function: psb_indx_map_fnd_owner + !> Function: psi_indx_map_fnd_owner !! \memberof psb_indx_map !! \brief Find the process owning indices !! @@ -259,16 +267,70 @@ module psb_indx_map_mod !! interface - subroutine psb_indx_map_fnd_owner(idx,iprc,idxmap,info) + subroutine psi_indx_map_fnd_owner(idx,iprc,idxmap,info) + import :: psb_indx_map, psb_ipk_, psb_lpk_ + implicit none + integer(psb_lpk_), intent(in) :: idx(:) + integer(psb_ipk_), allocatable, intent(out) :: iprc(:) + class(psb_indx_map), intent(inout) :: idxmap + integer(psb_ipk_), intent(out) :: info + end subroutine psi_indx_map_fnd_owner + end interface + + interface + subroutine psi_a2a_fnd_owner(idx,iprc,idxmap,info) import :: psb_indx_map, psb_ipk_, psb_lpk_ implicit none - integer(psb_lpk_), intent(in) :: idx(:) + integer(psb_lpk_), intent(in) :: idx(:) integer(psb_ipk_), allocatable, intent(out) :: iprc(:) + class(psb_indx_map), intent(in) :: idxmap + integer(psb_ipk_), intent(out) :: info + end subroutine psi_a2a_fnd_owner + end interface + + interface + subroutine psi_adjcncy_fnd_owner(idx,iprc,adj,idxmap,info) + import :: psb_indx_map, psb_ipk_, psb_lpk_ + implicit none + integer(psb_lpk_), intent(in) :: idx(:) + integer(psb_ipk_), allocatable, intent(out) :: iprc(:) + integer(psb_ipk_), allocatable, intent(inout) :: adj(:) class(psb_indx_map), intent(in) :: idxmap - integer(psb_ipk_), intent(out) :: info - end subroutine psb_indx_map_fnd_owner + integer(psb_ipk_), intent(out) :: info + end subroutine psi_adjcncy_fnd_owner + end interface + + interface + subroutine psi_graph_fnd_owner(idx,iprc,idxmap,info) + import :: psb_indx_map, psb_ipk_, psb_lpk_ + implicit none + integer(psb_lpk_), intent(in) :: idx(:) + integer(psb_ipk_), allocatable, intent(out) :: iprc(:) + class(psb_indx_map), intent(inout) :: idxmap + integer(psb_ipk_), intent(out) :: info + end subroutine psi_graph_fnd_owner end interface + integer, parameter :: psi_symm_flag_norv_ = 0 + integer, parameter :: psi_symm_flag_inrv_ = 1 + interface psi_symm_dep_list + subroutine psi_symm_dep_list_inrv(rvsz,adj,ictxt,info) + import :: psb_indx_map, psb_ipk_, psb_lpk_, psb_mpk_ + implicit none + integer(psb_mpk_), intent(inout) :: rvsz(0:) + integer(psb_ipk_), allocatable, intent(inout) :: adj(:) + integer(psb_ipk_), intent(in) :: ictxt + integer(psb_ipk_), intent(out) :: info + end subroutine psi_symm_dep_list_inrv + subroutine psi_symm_dep_list_norv(adj,ictxt,info) + import :: psb_indx_map, psb_ipk_, psb_lpk_, psb_mpk_ + implicit none + integer(psb_ipk_), allocatable, intent(inout) :: adj(:) + integer(psb_ipk_), intent(in) :: ictxt + integer(psb_ipk_), intent(out) :: info + end subroutine psi_symm_dep_list_norv + end interface psi_symm_dep_list + contains @@ -331,6 +393,16 @@ contains end function base_get_lc + function base_get_p_adjcncy(idxmap) result(val) + use psb_realloc_mod + implicit none + class(psb_indx_map), intent(in) :: idxmap + integer(psb_ipk_), allocatable :: val(:) + integer(psb_ipk_) :: info + + call psb_safe_ab_cpy(idxmap%p_adjcncy,val,info) + + end function base_get_p_adjcncy function base_get_ctxt(idxmap) result(val) implicit none @@ -416,6 +488,35 @@ contains idxmap%local_cols = val end subroutine base_set_lc + subroutine base_set_p_adjcncy(idxmap,val) + use psb_realloc_mod + use psb_sort_mod + implicit none + class(psb_indx_map), intent(inout) :: idxmap + integer(psb_ipk_), intent(in) :: val(:) + + call idxmap%xtnd_p_adjcncy(val) + + end subroutine base_set_p_adjcncy + + subroutine base_xtnd_p_adjcncy(idxmap,val) + use psb_realloc_mod + use psb_sort_mod + implicit none + class(psb_indx_map), intent(inout) :: idxmap + integer(psb_ipk_), intent(in) :: val(:) + integer(psb_ipk_) :: info, nv, nx + + nv = size(val) + nx = psb_size(idxmap%p_adjcncy) + call psb_realloc(nv+nx,idxmap%p_adjcncy,info) + idxmap%p_adjcncy(nx+1:nx+nv) = val(1:nv) + nx = size(idxmap%p_adjcncy) + call psb_msort_unique(idxmap%p_adjcncy,nx,dir=psb_sort_up_) + call psb_realloc(nx,idxmap%p_adjcncy,info) + + end subroutine base_xtnd_p_adjcncy + subroutine base_set_mpic(idxmap,val) implicit none class(psb_indx_map), intent(inout) :: idxmap @@ -1244,6 +1345,8 @@ contains & call psb_safe_ab_cpy(idxmap%oracle,outmap%oracle,info) if (info == psb_success_)& & call psb_safe_ab_cpy(idxmap%halo_owner,outmap%halo_owner,info) + if (info == psb_success_)& + & call psb_safe_ab_cpy(idxmap%p_adjcncy,outmap%p_adjcncy,info) if (info /= 0) goto 9999 diff --git a/base/modules/desc/psb_list_map_mod.f90 b/base/modules/desc/psb_list_map_mod.f90 index ccf89ca2..68223682 100644 --- a/base/modules/desc/psb_list_map_mod.f90 +++ b/base/modules/desc/psb_list_map_mod.f90 @@ -1117,9 +1117,9 @@ contains return end if - idxmap%ictxt = ictxt - idxmap%state = psb_desc_bld_ - call psb_get_mpicomm(ictxt,idxmap%mpic) + idxmap%ictxt = ictxt + idxmap%state = psb_desc_bld_ + 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 e68f8509..f262c8f5 100644 --- a/base/modules/desc/psb_repl_map_mod.f90 +++ b/base/modules/desc/psb_repl_map_mod.f90 @@ -699,10 +699,10 @@ contains subroutine repl_fnd_owner(idx,iprc,idxmap,info) use psb_penv_mod implicit none - integer(psb_lpk_), intent(in) :: idx(:) + integer(psb_lpk_), intent(in) :: idx(:) integer(psb_ipk_), allocatable, intent(out) :: iprc(:) - class(psb_repl_map), intent(in) :: idxmap - integer(psb_ipk_), intent(out) :: info + class(psb_repl_map), intent(inout) :: idxmap + integer(psb_ipk_), intent(out) :: info integer(psb_ipk_) :: nv integer(psb_mpk_) :: ictxt, iam, np @@ -746,7 +746,7 @@ contains idxmap%local_cols = nl idxmap%ictxt = ictxt idxmap%state = psb_desc_bld_ - call psb_get_mpicomm(ictxt,idxmap%mpic) + 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 31dfd0b8..4d7be808 100644 --- a/base/modules/penv/psi_penv_mod.F90 +++ b/base/modules/penv/psi_penv_mod.F90 @@ -563,16 +563,29 @@ contains end subroutine psb_info_mpik - subroutine psb_get_mpicomm(ictxt,comm) + function psb_get_mpi_comm(ictxt) result(comm) integer(psb_mpk_) :: ictxt, comm comm = ictxt + end function psb_get_mpi_comm + + function psb_get_mpi_rank(ictxt,id) result(rank) + integer(psb_mpk_) :: rank,ictxt,id + + rank = id + 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 = 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 b41f20b5..ac2fcf06 100644 --- a/base/modules/psi_i_mod.F90 +++ b/base/modules/psi_i_mod.F90 @@ -115,15 +115,15 @@ module psi_i_mod interface psi_extract_dep_list subroutine psi_i_extract_dep_list(ictxt,is_bld,is_upd,desc_str,dep_list,& - & length_dl,np,dl_lda,mode,info) + & length_dl,dl_lda,mode,info) import implicit none - logical :: is_bld, is_upd - integer(psb_ipk_) :: ictxt - integer(psb_ipk_) :: dl_lda,mode - integer(psb_ipk_) :: desc_str(*),dep_list(dl_lda,0:np),length_dl(0:np) - integer(psb_ipk_) :: np - integer(psb_ipk_) :: info + 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_), intent(out) :: info end subroutine psi_i_extract_dep_list end interface 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 1e62ebec..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_) - call psb_get_rank(prcid(ip+1),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) call psb_get_rank(prcid(ip+1),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 7efb8244..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_) - call psb_get_rank(prcid(ip+1),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) call psb_get_rank(prcid(ip+1),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 b1b2d5d7..7176d185 100644 --- a/base/tools/psb_icdasb.F90 +++ b/base/tools/psb_icdasb.F90 @@ -80,7 +80,7 @@ subroutine psb_icdasb(desc,info,ext_hv,mold) dectype = desc%get_dectype() n_row = desc%get_local_rows() n_col = desc%get_local_cols() - call psb_get_mpicomm(ictxt,icomm ) + icomm = desc%get_mpic() ! check on blacs grid call psb_info(ictxt, me, np) 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 c5d4e602..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_) - call psb_get_rank(prcid(ip+1),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) call psb_get_rank(prcid(ip+1),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 b6427ec1..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_) - call psb_get_rank(prcid(ip+1),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) call psb_get_rank(prcid(ip+1),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/index.html b/docs/html/index.html new file mode 100644 index 00000000..b53f97f3 --- /dev/null +++ b/docs/html/index.html @@ -0,0 +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 + + + + + + +

+ 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 +
 8.2 psb_error +
 8.3 psb_set_errverbosity +
 8.4 psb_set_erraction +
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 +
+ + + + + + + + + + + + + + + + + diff --git a/docs/html/userhtml.css b/docs/html/userhtml.css new file mode 100644 index 00000000..201b1c23 --- /dev/null +++ b/docs/html/userhtml.css @@ -0,0 +1,157 @@ + +/* 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 */ + diff --git a/docs/html/userhtml.html b/docs/html/userhtml.html new file mode 100644 index 00000000..b53f97f3 --- /dev/null +++ b/docs/html/userhtml.html @@ -0,0 +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 + + + + + + +

+ 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 +
 8.2 psb_error +
 8.3 psb_set_errverbosity +
 8.4 psb_set_erraction +
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 +
+ + + + + + + + + + + + + + + + + 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/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..86b796a5 --- /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 +
 8.2 psb_error +
 8.3 psb_set_errverbosity +
 8.4 psb_set_erraction +
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..58beb7ad --- /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..9cd1aec0 --- /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
+ + + +


+ + + +
+  8.1 psb_errpush +
 8.2 psb_error +
 8.3 psb_set_errverbosity +
 8.4 psb_set_erraction +
+ + + + + + + +

+ 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..eb0b2090 --- /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..913b6f6a --- /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..60e72cae --- /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..97ce49ad --- /dev/null +++ b/docs/html/userhtmlsu74.html @@ -0,0 +1,97 @@ + + +psb_errpush + + + + + + + +

+

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..ef69584e --- /dev/null +++ b/docs/html/userhtmlsu75.html @@ -0,0 +1,62 @@ + + +psb_error + + + + + + + +

+

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..4300ad8f --- /dev/null +++ b/docs/html/userhtmlsu76.html @@ -0,0 +1,62 @@ + + +psb_set_errverbosity + + + + + + + +

+

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..312f8ad0 --- /dev/null +++ b/docs/html/userhtmlsu77.html @@ -0,0 +1,63 @@ + + +psb_set_erraction + + + + + + + +

+

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..751fcd56 --- /dev/null +++ b/docs/html/userhtmlsu90.html @@ -0,0 +1,357 @@ + + +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 53% rename from docs/psblas-3.6.pdf rename to docs/psblas-3.7.pdf index b6830872..6ce20a28 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,6 +225,7 @@ endobj << /Type /ObjStm /N 100 +<<<<<<< HEAD:docs/psblas-3.6.pdf /First 869 /Length 4562 >> @@ -239,67 +240,84 @@ stream 343 2543 346 2587 347 2614 350 2658 351 2685 354 2729 355 2756 358 2800 359 2828 362 2872 363 2898 366 2942 367 2981 370 3025 371 3064 374 3108 375 3142 378 3186 379 3223 382 3267 383 3301 386 3345 387 3382 390 3426 391 3463 394 3507 395 3543 398 3587 399 3621 402 3665 +======= +/First 877 +/Length 6351 +>> +stream +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 +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf % 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 +<<<<<<< HEAD:docs/psblas-3.6.pdf << /S /GoTo /D (section*.47) >> % 266 0 obj (psb\137gemlt) @@ -315,9 +333,27 @@ stream << /S /GoTo /D (section.5) >> % 278 0 obj (5 Communication routines) +======= +<< /S /GoTo /D (subsection.4.11) >> +% 266 0 obj +(4.11 psb\137normi \204 Infinity Norm of Sparse Matrix) +% 267 0 obj +<< /S /GoTo /D (subsection.4.12) >> +% 270 0 obj +(4.12 psb\137spmm \204 Sparse Matrix by Dense Matrix Product) +% 271 0 obj +<< /S /GoTo /D (subsection.4.13) >> +% 274 0 obj +(4.13 psb\137spsm \204 Triangular System Solve) +% 275 0 obj +<< /S /GoTo /D (subsection.4.14) >> +% 278 0 obj +(4.14 psb\137gemlt \204 Entrywise Product) +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf % 279 0 obj -<< /S /GoTo /D (section*.50) >> +<< /S /GoTo /D (subsection.4.15) >> % 282 0 obj +<<<<<<< HEAD:docs/psblas-3.6.pdf (psb\137halo) % 283 0 obj << /S /GoTo /D (section*.51) >> @@ -335,101 +371,213 @@ stream << /S /GoTo /D (section.6) >> % 298 0 obj (6 Data management routines) +======= +(4.15 psb\137gediv \204 Entrywise Division) +% 283 0 obj +<< /S /GoTo /D (subsection.4.16) >> +% 286 0 obj +(4.16 psb\137geinv \204 Entrywise Inversion) +% 287 0 obj +<< /S /GoTo /D (section.5) >> +% 290 0 obj +(5 Communication routines) +% 291 0 obj +<< /S /GoTo /D (subsection.5.1) >> +% 294 0 obj +(5.1 psb\137halo \204 Halo Data Communication) +% 295 0 obj +<< /S /GoTo /D (subsection.5.2) >> +% 298 0 obj +(5.2 psb\137ovrl \204 Overlap Update) +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf % 299 0 obj -<< /S /GoTo /D (section*.54) >> +<< /S /GoTo /D (subsection.5.3) >> % 302 0 obj +<<<<<<< HEAD:docs/psblas-3.6.pdf (psb\137cdall) +======= +(5.3 psb\137gather \204 Gather Global Dense Matrix) +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf % 303 0 obj -<< /S /GoTo /D (section*.55) >> +<< /S /GoTo /D (subsection.5.4) >> % 306 0 obj +<<<<<<< HEAD:docs/psblas-3.6.pdf (psb\137cdins) +======= +(5.4 psb\137scatter \204 Scatter Global Dense Matrix) +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf % 307 0 obj -<< /S /GoTo /D (section*.56) >> +<< /S /GoTo /D (section.6) >> % 310 0 obj +<<<<<<< HEAD:docs/psblas-3.6.pdf (psb\137cdasb) +======= +(6 Data management routines) +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf % 311 0 obj -<< /S /GoTo /D (section*.57) >> +<< /S /GoTo /D (subsection.6.1) >> % 314 0 obj +<<<<<<< HEAD:docs/psblas-3.6.pdf (psb\137cdcpy) +======= +(6.1 psb\137cdall \204 Allocates a communication descriptor) +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf % 315 0 obj -<< /S /GoTo /D (section*.58) >> +<< /S /GoTo /D (subsection.6.2) >> % 318 0 obj +<<<<<<< HEAD:docs/psblas-3.6.pdf (psb\137cdfree) +======= +(6.2 psb\137cdins \204 Communication descriptor insert routine) +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf % 319 0 obj -<< /S /GoTo /D (section*.59) >> +<< /S /GoTo /D (subsection.6.3) >> % 322 0 obj +<<<<<<< HEAD:docs/psblas-3.6.pdf (psb\137cdbldext) +======= +(6.3 psb\137cdasb \204 Communication descriptor assembly routine) +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf % 323 0 obj -<< /S /GoTo /D (section*.60) >> +<< /S /GoTo /D (subsection.6.4) >> % 326 0 obj +<<<<<<< HEAD:docs/psblas-3.6.pdf (psb\137spall) +======= +(6.4 psb\137cdcpy \204 Copies a communication descriptor) +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf % 327 0 obj -<< /S /GoTo /D (section*.61) >> +<< /S /GoTo /D (subsection.6.5) >> % 330 0 obj +<<<<<<< HEAD:docs/psblas-3.6.pdf (psb\137spins) +======= +(6.5 psb\137cdfree \204 Frees a communication descriptor) +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf % 331 0 obj -<< /S /GoTo /D (section*.62) >> +<< /S /GoTo /D (subsection.6.6) >> % 334 0 obj +<<<<<<< HEAD:docs/psblas-3.6.pdf (psb\137spasb) +======= +(6.6 psb\137cdbldext \204 Build an extended communication descriptor) +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf % 335 0 obj -<< /S /GoTo /D (section*.63) >> +<< /S /GoTo /D (subsection.6.7) >> % 338 0 obj +<<<<<<< HEAD:docs/psblas-3.6.pdf (psb\137spfree) +======= +(6.7 psb\137spall \204 Allocates a sparse matrix) +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf % 339 0 obj -<< /S /GoTo /D (section*.64) >> +<< /S /GoTo /D (subsection.6.8) >> % 342 0 obj +<<<<<<< HEAD:docs/psblas-3.6.pdf (psb\137sprn) +======= +(6.8 psb\137spins \204 Insert a set of coefficients into a sparse matrix) +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf % 343 0 obj -<< /S /GoTo /D (section*.65) >> +<< /S /GoTo /D (subsection.6.9) >> % 346 0 obj +<<<<<<< HEAD:docs/psblas-3.6.pdf (psb\137geall) +======= +(6.9 psb\137spasb \204 Sparse matrix assembly routine) +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf % 347 0 obj -<< /S /GoTo /D (section*.66) >> +<< /S /GoTo /D (subsection.6.10) >> % 350 0 obj +<<<<<<< HEAD:docs/psblas-3.6.pdf (psb\137geins) +======= +(6.10 psb\137spfree \204 Frees a sparse matrix) +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf % 351 0 obj -<< /S /GoTo /D (section*.67) >> +<< /S /GoTo /D (subsection.6.11) >> % 354 0 obj +<<<<<<< HEAD:docs/psblas-3.6.pdf (psb\137geasb) +======= +(6.11 psb\137sprn \204 Reinit sparse matrix structure for psblas routines.) +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf % 355 0 obj -<< /S /GoTo /D (section*.68) >> +<< /S /GoTo /D (subsection.6.12) >> % 358 0 obj +<<<<<<< HEAD:docs/psblas-3.6.pdf (psb\137gefree) +======= +(6.12 psb\137geall \204 Allocates a dense matrix) +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf % 359 0 obj -<< /S /GoTo /D (section*.69) >> +<< /S /GoTo /D (subsection.6.13) >> % 362 0 obj +<<<<<<< HEAD:docs/psblas-3.6.pdf (psb\137gelp) +======= +(6.13 psb\137geins \204 Dense matrix insertion routine) +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf % 363 0 obj -<< /S /GoTo /D (section*.70) >> +<< /S /GoTo /D (subsection.6.14) >> % 366 0 obj +<<<<<<< HEAD:docs/psblas-3.6.pdf (psb\137glob\137to\137loc) +======= +(6.14 psb\137geasb \204 Assembly a dense matrix) +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf % 367 0 obj -<< /S /GoTo /D (section*.71) >> +<< /S /GoTo /D (subsection.6.15) >> % 370 0 obj +<<<<<<< HEAD:docs/psblas-3.6.pdf (psb\137loc\137to\137glob) +======= +(6.15 psb\137gefree \204 Frees a dense matrix) +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf % 371 0 obj -<< /S /GoTo /D (section*.72) >> +<< /S /GoTo /D (subsection.6.16) >> % 374 0 obj +<<<<<<< HEAD:docs/psblas-3.6.pdf (psb\137is\137owned ) +======= +(6.16 psb\137gelp \204 Applies a left permutation to a dense matrix) +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf % 375 0 obj -<< /S /GoTo /D (section*.73) >> +<< /S /GoTo /D (subsection.6.17) >> % 378 0 obj +<<<<<<< HEAD:docs/psblas-3.6.pdf (psb\137owned\137index ) +======= +(6.17 psb\137glob\137to\137loc \204 Global to local indices convertion) +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf % 379 0 obj -<< /S /GoTo /D (section*.74) >> +<< /S /GoTo /D (subsection.6.18) >> % 382 0 obj +<<<<<<< HEAD:docs/psblas-3.6.pdf (psb\137is\137local ) +======= +(6.18 psb\137loc\137to\137glob \204 Local to global indices conversion) +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf % 383 0 obj -<< /S /GoTo /D (section*.75) >> +<< /S /GoTo /D (subsection.6.19) >> % 386 0 obj +<<<<<<< HEAD:docs/psblas-3.6.pdf (psb\137local\137index ) +======= +(6.19 psb\137is\137owned \204 ) +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf % 387 0 obj -<< /S /GoTo /D (section*.76) >> +<< /S /GoTo /D (subsection.6.20) >> % 390 0 obj +<<<<<<< HEAD:docs/psblas-3.6.pdf (psb\137get\137boundary) +======= +(6.20 psb\137owned\137index \204 ) +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf % 391 0 obj -<< /S /GoTo /D (section*.77) >> +<< /S /GoTo /D (subsection.6.21) >> % 394 0 obj +<<<<<<< HEAD:docs/psblas-3.6.pdf (psb\137get\137overlap) % 395 0 obj << /S /GoTo /D (section*.78) >> @@ -443,8 +591,23 @@ stream endstream endobj 567 0 obj +======= +(6.21 psb\137is\137local \204 ) +% 395 0 obj +<< /S /GoTo /D (subsection.6.22) >> +% 398 0 obj +(6.22 psb\137local\137index \204 ) +% 399 0 obj +<< /S /GoTo /D (subsection.6.23) >> +% 402 0 obj +(6.23 psb\137get\137boundary \204 Extract list of boundary elements) + +endstream +endobj +579 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << -/Length 585 +/Length 584 >> stream 0 g 0 G @@ -453,7 +616,11 @@ stream 0 g 0 G 0 g 0 G BT +<<<<<<< HEAD:docs/psblas-3.6.pdf /F16 24.7871 Tf 135.453 563.395 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 +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf ET q 1 0 0 1 125.3 547.151 cm @@ -463,14 +630,22 @@ BT /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 +<<<<<<< HEAD:docs/psblas-3.6.pdf /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 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 +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 0 g 0 G 0 g 0 G ET endstream endobj +<<<<<<< HEAD:docs/psblas-3.6.pdf 577 0 obj +======= +589 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << /Length 77 >> @@ -485,9 +660,13 @@ ET endstream endobj +<<<<<<< HEAD:docs/psblas-3.6.pdf 628 0 obj +======= +636 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << -/Length 16983 +/Length 15926 >> stream 0 g 0 G @@ -495,586 +674,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 - [-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 + [-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 + [-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 + 0 -12.091 Td [(3.2.17)-644(psb)]TJ ET q -1 0 0 1 185.231 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 188.22 204.884 Td [(set)]TJ +/F8 9.9626 Tf 188.22 120.326 Td [(set)]TJ ET q -1 0 0 1 201.05 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 204.038 204.884 Td [(mat)]TJ +/F8 9.9626 Tf 204.038 120.326 Td [(mat)]TJ ET q -1 0 0 1 221.794 205.083 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 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 +/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 -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 + [-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 - 31.88 -12.08 Td [(get)]TJ -ET -q -1 0 0 1 183.515 144.684 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 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(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,6 +1262,7 @@ endobj << /Type /ObjStm /N 100 +<<<<<<< HEAD:docs/psblas-3.6.pdf /First 866 /Length 6480 >> @@ -1106,61 +1285,138 @@ stream << /S /GoTo /D (section.7) >> % 411 0 obj (7 Parallel environment routines) +======= +/First 877 +/Length 7331 +>> +stream +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 2547 503 2594 +504 2625 507 2672 508 2717 511 2764 512 2806 515 2848 516 2874 519 2921 520 3024 523 3071 +524 3170 527 3217 528 3318 531 3365 532 3466 535 3513 536 3614 539 3661 540 3764 543 3807 +544 3848 547 3896 548 3953 551 4001 552 4055 555 4103 556 4168 559 4216 560 4293 563 4341 +564 4400 567 4448 568 4499 571 4542 572 4577 575 4625 576 4697 577 4742 580 4856 581 4912 +3 4968 578 5022 588 5127 590 5241 587 5298 635 5364 591 5858 592 6004 593 6150 594 6302 +% 403 0 obj +<< /S /GoTo /D (subsection.6.24) >> +% 407 0 obj +(6.24 psb\137get\137overlap \204 Extract list of overlap elements) +% 408 0 obj +<< /S /GoTo /D (subsection.6.25) >> +% 411 0 obj +(6.25 psb\137sp\137getrow \204 Extract row\(s\) from a sparse matrix) +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf % 412 0 obj -<< /S /GoTo /D (section*.81) >> +<< /S /GoTo /D (subsection.6.26) >> % 415 0 obj +<<<<<<< HEAD:docs/psblas-3.6.pdf (psb\137init) +======= +(6.26 psb\137sizeof \204 Memory occupation) +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf % 416 0 obj -<< /S /GoTo /D (section*.82) >> +<< /S /GoTo /D (subsection.6.27) >> % 419 0 obj +<<<<<<< HEAD:docs/psblas-3.6.pdf (psb\137info) +======= +(6.27 Sorting utilities \204 ) +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf % 420 0 obj -<< /S /GoTo /D (section*.83) >> +<< /S /GoTo /D (section.7) >> % 423 0 obj +<<<<<<< HEAD:docs/psblas-3.6.pdf (psb\137exit) +======= +(7 Parallel environment routines) +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf % 424 0 obj -<< /S /GoTo /D (section*.84) >> +<< /S /GoTo /D (subsection.7.1) >> % 427 0 obj +<<<<<<< HEAD:docs/psblas-3.6.pdf (psb\137get\137mpicomm) +======= +(7.1 psb\137init \204 Initializes PSBLAS parallel environment) +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf % 428 0 obj -<< /S /GoTo /D (section*.85) >> +<< /S /GoTo /D (subsection.7.2) >> % 431 0 obj +<<<<<<< HEAD:docs/psblas-3.6.pdf (psb\137get\137rank) +======= +(7.2 psb\137info \204 Return information about PSBLAS parallel environment) +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf % 432 0 obj -<< /S /GoTo /D (section*.86) >> +<< /S /GoTo /D (subsection.7.3) >> % 435 0 obj +<<<<<<< HEAD:docs/psblas-3.6.pdf (psb\137wtime) +======= +(7.3 psb\137exit \204 Exit from PSBLAS parallel environment) +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf % 436 0 obj -<< /S /GoTo /D (section*.87) >> +<< /S /GoTo /D (subsection.7.4) >> % 439 0 obj +<<<<<<< HEAD:docs/psblas-3.6.pdf (psb\137barrier) +======= +(7.4 psb\137get\137mpi\137comm \204 Get the MPI communicator) +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf % 440 0 obj -<< /S /GoTo /D (section*.88) >> +<< /S /GoTo /D (subsection.7.5) >> % 443 0 obj +<<<<<<< HEAD:docs/psblas-3.6.pdf (psb\137abort) +======= +(7.5 psb\137get\137mpi\137rank \204 Get the MPI rank) +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf % 444 0 obj -<< /S /GoTo /D (section*.89) >> +<< /S /GoTo /D (subsection.7.6) >> % 447 0 obj +<<<<<<< HEAD:docs/psblas-3.6.pdf (psb\137bcast) +======= +(7.6 psb\137wtime \204 Wall clock timing) +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf % 448 0 obj -<< /S /GoTo /D (section*.90) >> +<< /S /GoTo /D (subsection.7.7) >> % 451 0 obj +<<<<<<< HEAD:docs/psblas-3.6.pdf (psb\137sum) +======= +(7.7 psb\137barrier \204 Sinchronization point parallel environment) +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf % 452 0 obj -<< /S /GoTo /D (section*.91) >> +<< /S /GoTo /D (subsection.7.8) >> % 455 0 obj +<<<<<<< HEAD:docs/psblas-3.6.pdf (psb\137max) +======= +(7.8 psb\137abort \204 Abort a computation) +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf % 456 0 obj -<< /S /GoTo /D (section*.92) >> +<< /S /GoTo /D (subsection.7.9) >> % 459 0 obj +<<<<<<< HEAD:docs/psblas-3.6.pdf (psb\137min) +======= +(7.9 psb\137bcast \204 Broadcast data) +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf % 460 0 obj -<< /S /GoTo /D (section*.93) >> +<< /S /GoTo /D (subsection.7.10) >> % 463 0 obj +<<<<<<< HEAD:docs/psblas-3.6.pdf (psb\137amx) +======= +(7.10 psb\137sum \204 Global sum) +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf % 464 0 obj -<< /S /GoTo /D (section*.94) >> +<< /S /GoTo /D (subsection.7.11) >> % 467 0 obj +<<<<<<< HEAD:docs/psblas-3.6.pdf (psb\137amn) % 468 0 obj << /S /GoTo /D (section*.95) >> @@ -1178,9 +1434,29 @@ stream << /S /GoTo /D (section.8) >> % 483 0 obj (8 Error handling) +======= +(7.11 psb\137max \204 Global maximum) +% 468 0 obj +<< /S /GoTo /D (subsection.7.12) >> +% 471 0 obj +(7.12 psb\137min \204 Global minimum) +% 472 0 obj +<< /S /GoTo /D (subsection.7.13) >> +% 475 0 obj +(7.13 psb\137amx \204 Global maximum absolute value) +% 476 0 obj +<< /S /GoTo /D (subsection.7.14) >> +% 479 0 obj +(7.14 psb\137amn \204 Global minimum absolute value) +% 480 0 obj +<< /S /GoTo /D (subsection.7.15) >> +% 483 0 obj +(7.15 psb\137nrm2 \204 Global 2-norm reduction) +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf % 484 0 obj -<< /S /GoTo /D (section*.98) >> +<< /S /GoTo /D (subsection.7.16) >> % 487 0 obj +<<<<<<< HEAD:docs/psblas-3.6.pdf (psb\137errpush) % 488 0 obj << /S /GoTo /D (section*.99) >> @@ -1198,17 +1474,45 @@ stream << /S /GoTo /D (section.9) >> % 503 0 obj (9 Utilities) +======= +(7.16 psb\137snd \204 Send data) +% 488 0 obj +<< /S /GoTo /D (subsection.7.17) >> +% 491 0 obj +(7.17 psb\137rcv \204 Receive data) +% 492 0 obj +<< /S /GoTo /D (section.8) >> +% 495 0 obj +(8 Error handling) +% 496 0 obj +<< /S /GoTo /D (subsection.8.1) >> +% 499 0 obj +(8.1 psb\137errpush) +% 500 0 obj +<< /S /GoTo /D (subsection.8.2) >> +% 503 0 obj +(8.2 psb\137error) +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf % 504 0 obj -<< /S /GoTo /D (section*.102) >> +<< /S /GoTo /D (subsection.8.3) >> % 507 0 obj +<<<<<<< HEAD:docs/psblas-3.6.pdf (hb\137read) +======= +(8.3 psb\137set\137errverbosity) +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf % 508 0 obj -<< /S /GoTo /D (section*.103) >> +<< /S /GoTo /D (subsection.8.4) >> % 511 0 obj +<<<<<<< HEAD:docs/psblas-3.6.pdf (hb\137write) +======= +(8.4 psb\137set\137erraction) +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf % 512 0 obj -<< /S /GoTo /D (section*.104) >> +<< /S /GoTo /D (section.9) >> % 515 0 obj +<<<<<<< HEAD:docs/psblas-3.6.pdf (mm\137mat\137read) % 516 0 obj << /S /GoTo /D (section*.105) >> @@ -1226,17 +1530,45 @@ stream << /S /GoTo /D (section.10) >> % 531 0 obj (10 Preconditioner routines) +======= +(9 Utilities) +% 516 0 obj +<< /S /GoTo /D (subsection.9.1) >> +% 519 0 obj +(9.1 \040hb\137read \204 Read a sparse matrix from a file in the Harwell\205Boeing format) +% 520 0 obj +<< /S /GoTo /D (subsection.9.2) >> +% 523 0 obj +(9.2 hb\137write \204 Write a sparse matrix to a file in the Harwell\205Boeing format) +% 524 0 obj +<< /S /GoTo /D (subsection.9.3) >> +% 527 0 obj +(9.3 mm\137mat\137read \204 Read a sparse matrix from a file in the MatrixMarket format) +% 528 0 obj +<< /S /GoTo /D (subsection.9.4) >> +% 531 0 obj +(9.4 mm\137array\137read \204 Read a dense array from a file in the MatrixMarket format) +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf % 532 0 obj -<< /S /GoTo /D (section*.108) >> +<< /S /GoTo /D (subsection.9.5) >> % 535 0 obj +<<<<<<< HEAD:docs/psblas-3.6.pdf (prec\045init) +======= +(9.5 mm\137mat\137write \204 Write a sparse matrix to a file in the MatrixMarket format) +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf % 536 0 obj -<< /S /GoTo /D (section*.109) >> +<< /S /GoTo /D (subsection.9.6) >> % 539 0 obj +<<<<<<< HEAD:docs/psblas-3.6.pdf (prec\045build) +======= +(9.6 mm\137array\137write \204 Write a dense array from a file in the MatrixMarket format) +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf % 540 0 obj -<< /S /GoTo /D (section*.110) >> +<< /S /GoTo /D (section.10) >> % 543 0 obj +<<<<<<< HEAD:docs/psblas-3.6.pdf (prec\045apply) % 544 0 obj << /S /GoTo /D (section*.111) >> @@ -1312,37 +1644,139 @@ stream /Annots [ 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 613 0 R 614 0 R 615 0 R 616 0 R 617 0 R 618 0 R 619 0 R 620 0 R 621 0 R 622 0 R 623 0 R 624 0 R ] >> % 579 0 obj +======= +(10 Preconditioner routines) +% 544 0 obj +<< /S /GoTo /D (subsection.10.1) >> +% 547 0 obj +(10.1 init \204 Initialize a preconditioner) +% 548 0 obj +<< /S /GoTo /D (subsection.10.2) >> +% 551 0 obj +(10.2 build \204 Builds a preconditioner) +% 552 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 579 0 R +/Resources 578 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 586 0 R +>> +% 580 0 obj +<< +/D [577 0 R /XYZ 98.895 753.953 null] +>> +% 581 0 obj +<< +/D [577 0 R /XYZ 99.895 716.092 null] +>> +% 3 0 obj +<< +/D [577 0 R /XYZ 99.895 716.092 null] +>> +% 578 0 obj +<< +/Font << /F16 582 0 R /F18 583 0 R /F27 584 0 R /F8 585 0 R >> +/ProcSet [ /PDF /Text ] +>> +% 588 0 obj +<< +/Type /Page +/Contents 589 0 R +/Resources 587 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 586 0 R +>> +% 590 0 obj +<< +/D [588 0 R /XYZ 149.705 753.953 null] +>> +% 587 0 obj +<< +/Font << /F8 585 0 R >> +/ProcSet [ /PDF /Text ] +>> +% 635 0 obj +<< +/Type /Page +/Contents 636 0 R +/Resources 634 0 R +/MediaBox [0 0 595.276 841.89] +/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 ] +>> +% 591 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << /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) >> >> +<<<<<<< HEAD:docs/psblas-3.6.pdf % 580 0 obj +======= +% 592 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << /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) >> >> +<<<<<<< HEAD:docs/psblas-3.6.pdf % 581 0 obj +======= +% 593 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << /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) >> >> +<<<<<<< HEAD:docs/psblas-3.6.pdf % 582 0 obj +======= +% 594 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << /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) >> >> +<<<<<<< HEAD:docs/psblas-3.6.pdf % 583 0 obj << /Type /Annot @@ -1397,233 +1831,297 @@ endobj 681 0 obj << /Length 20368 +======= + +endstream +endobj +693 0 obj +<< +/Length 15806 +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> 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 - [-1084(26)]TJ + [-1083(25)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG - -16.871 -12.08 Td [(clone)]TJ + -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 - [-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 +0 g 0 G + [-550(25)]TJ +0 g 0 G +0 0 1 rg 0 0 1 RG + 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 + [-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 +<<<<<<< HEAD:docs/psblas-3.6.pdf -18.586 -12.079 Td [(psb)]TJ ET q @@ -1678,12 +2176,23 @@ q Q BT /F8 9.9626 Tf 184.235 420.284 Td [(halo)]TJ +======= + -41.5 -12.079 Td [(4.14)-522(psb)]TJ +ET +q +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 207.149 394.091 Td [(gemlt)-333(|)-334(En)28(trywise)-333(Pro)-28(duct)]TJ +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 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(58)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG +<<<<<<< HEAD:docs/psblas-3.6.pdf -18.586 -12.08 Td [(psb)]TJ ET q @@ -1692,9 +2201,20 @@ q Q BT /F8 9.9626 Tf 184.235 408.204 Td [(o)28(vrl)]TJ +======= + -41.5 -12.08 Td [(4.15)-522(psb)]TJ +ET +q +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 207.149 382.011 Td [(gediv)-333(|)-334(En)28(trywise)-333(Division)]TJ +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 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 +<<<<<<< HEAD:docs/psblas-3.6.pdf [-1084(61)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG @@ -1706,23 +2226,53 @@ q Q BT /F8 9.9626 Tf 184.235 396.125 Td [(gather)]TJ +======= + [-1084(55)]TJ +0 g 0 G +0 0 1 rg 0 0 1 RG + -41.5 -12.08 Td [(4.16)-522(psb)]TJ +ET +q +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 207.149 369.931 Td [(gein)28(v)-334(|)-333(En)28(trywise)-333(In)27(v)28(ersion)]TJ +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 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 +<<<<<<< HEAD:docs/psblas-3.6.pdf [-1084(65)]TJ +======= + [-1084(57)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG - -18.586 -12.08 Td [(psb)]TJ +/F27 9.9626 Tf -56.444 -22.125 Td [(5)-925(Comm)32(unication)-383(r)-1(ou)1(t)-1(ines)]TJ +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf +0 g 0 G + [-19454(58)]TJ +0 0 1 rg 0 0 1 RG +/F8 9.9626 Tf 14.944 -12.08 Td [(5.1)-1022(psb)]TJ ET q +<<<<<<< HEAD:docs/psblas-3.6.pdf 1 0 0 1 181.246 384.244 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT /F8 9.9626 Tf 184.235 384.045 Td [(scatter)]TJ +======= +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 207.149 335.726 Td [(halo)-333(|)-334(Halo)-333(Data)-333(Comm)27(un)1(ic)-1(ati)1(o)-1(n)]TJ +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 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 +<<<<<<< HEAD:docs/psblas-3.6.pdf [-1083(67)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG @@ -1738,65 +2288,131 @@ q Q BT /F8 9.9626 Tf 184.235 349.84 Td [(cdall)]TJ +======= + [-1084(59)]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 +0 0 1 rg 0 0 1 RG + -41.5 -12.08 Td [(5.2)-1022(psb)]TJ +ET +q +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 207.149 323.647 Td [(o)28(vrl)-333(|)-334(Ov)28(erlap)-333(Up)-28(date)]TJ +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 0 g 0 G + [-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 +<<<<<<< HEAD:docs/psblas-3.6.pdf [-1084(69)]TJ +======= + [-1084(62)]TJ +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 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 +<<<<<<< HEAD:docs/psblas-3.6.pdf 1 0 0 1 181.246 337.96 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 [(cdins)]TJ +======= +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 207.149 311.567 Td [(gather)-333(|)-334(Gather)-333(Global)-333(Dense)-334(Matrix)]TJ +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 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 +<<<<<<< HEAD:docs/psblas-3.6.pdf [-1084(73)]TJ +======= + [-1084(66)]TJ +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 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 +<<<<<<< HEAD:docs/psblas-3.6.pdf 1 0 0 1 181.246 325.88 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 [(cdasb)]TJ +======= +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 207.149 299.487 Td [(scatter)-333(|)-334(Scatter)-333(Global)-333(Dense)-334(Matrix)]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 + [-682(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 0 g 0 G + [-1084(68)]TJ +0 g 0 G +<<<<<<< HEAD:docs/psblas-3.6.pdf [-1083(75)]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 +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 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 +<<<<<<< HEAD:docs/psblas-3.6.pdf 1 0 0 1 181.246 313.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 313.601 Td [(cdcp)28(y)]TJ +======= +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 207.149 265.282 Td [(cdall)-333(|)-334(Allo)-27(cates)-334(a)-333(comm)27(u)1(nication)-334(descriptor)]TJ +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 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 +<<<<<<< HEAD:docs/psblas-3.6.pdf [-1084(76)]TJ +======= + [-1084(70)]TJ +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 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 +<<<<<<< HEAD:docs/psblas-3.6.pdf 1 0 0 1 181.246 301.72 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 [(cdfree)]TJ +======= +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 207.149 253.202 Td [(cdins)-333(|)-334(Comm)28(unication)-333(descriptor)-333(inse)-1(r)1(t)-334(routine)]TJ +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 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 +<<<<<<< HEAD:docs/psblas-3.6.pdf [-1084(77)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG @@ -1808,9 +2424,23 @@ q Q BT /F8 9.9626 Tf 184.235 289.441 Td [(cdbldext)]TJ +======= + [-1084(74)]TJ +0 g 0 G +0 0 1 rg 0 0 1 RG + -41.5 -12.079 Td [(6.3)-1022(psb)]TJ +ET +q +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 207.149 241.123 Td [(cdasb)-333(|)-334(Comm)28(unication)-333(descriptor)-334(assem)28(bly)-333(routine)]TJ +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 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 +<<<<<<< HEAD:docs/psblas-3.6.pdf [-1084(78)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG @@ -1822,121 +2452,223 @@ q Q BT /F8 9.9626 Tf 184.235 277.362 Td [(spall)]TJ +======= + [-1084(76)]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 +0 0 1 rg 0 0 1 RG + -41.5 -12.08 Td [(6.4)-1022(psb)]TJ +ET +q +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 207.149 229.043 Td [(cdcp)28(y)-334(|)-333(Copies)-333(a)-334(comm)28(unication)-333(descriptor)]TJ +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf +0 g 0 G + [-706(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G +<<<<<<< HEAD:docs/psblas-3.6.pdf [-1084(80)]TJ +======= + [-1084(77)]TJ +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 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 +<<<<<<< HEAD:docs/psblas-3.6.pdf 1 0 0 1 181.246 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 265.282 Td [(spins)]TJ +======= +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 207.149 216.963 Td [(cdfree)-333(|)-334(F)84(rees)-334(a)-333(comm)28(unication)-334(descriptor)]TJ +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 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 +<<<<<<< HEAD:docs/psblas-3.6.pdf [-1084(81)]TJ +======= + [-1084(78)]TJ +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 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 +<<<<<<< HEAD:docs/psblas-3.6.pdf 1 0 0 1 181.246 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 253.202 Td [(spasb)]TJ +======= +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 207.149 204.884 Td [(cdbldext)-333(|)-334(Build)-333(an)-333(extended)-333(co)-1(mm)28(unication)-333(descriptor)]TJ +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 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 +<<<<<<< HEAD:docs/psblas-3.6.pdf [-1083(84)]TJ +======= + [-1084(79)]TJ +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 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 +<<<<<<< HEAD:docs/psblas-3.6.pdf 1 0 0 1 181.246 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 241.123 Td [(spfree)]TJ +======= +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 207.149 192.804 Td [(spall)-333(|)-334(Allo)-27(cates)-334(a)-333(sparse)-334(matrix)]TJ +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 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(86)]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 +<<<<<<< HEAD:docs/psblas-3.6.pdf 1 0 0 1 181.246 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 229.043 Td [(sprn)]TJ +======= +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 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 +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 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(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.9)-1022(psb)]TJ ET q +<<<<<<< HEAD:docs/psblas-3.6.pdf 1 0 0 1 181.246 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 216.963 Td [(geall)]TJ +======= +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 207.149 168.644 Td [(spasb)-333(|)-334(Sparse)-333(matrix)-333(assem)27(bly)-333(routine)]TJ +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 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 +<<<<<<< HEAD:docs/psblas-3.6.pdf [-1084(88)]TJ +======= + [-1084(85)]TJ +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 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 +<<<<<<< HEAD:docs/psblas-3.6.pdf 1 0 0 1 181.246 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 204.884 Td [(geins)]TJ +======= +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 207.149 156.565 Td [(spfree)-333(|)-334(F)84(rees)-334(a)-333(sparse)-334(matri)1(x)]TJ +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 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 +<<<<<<< HEAD:docs/psblas-3.6.pdf [-1084(89)]TJ +======= + [-1084(87)]TJ +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 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 +<<<<<<< HEAD:docs/psblas-3.6.pdf 1 0 0 1 181.246 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 192.804 Td [(geasb)]TJ +======= +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 207.149 144.485 Td [(sprn)-333(|)-334(Reinit)-333(sparse)-333(matrix)-334(structure)-333(for)-333(psblas)-333(routines.)]TJ +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 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 +<<<<<<< HEAD:docs/psblas-3.6.pdf [-1084(91)]TJ +======= + [-1084(88)]TJ +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 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 +<<<<<<< HEAD:docs/psblas-3.6.pdf 1 0 0 1 181.246 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 180.724 Td [(gefree)]TJ +======= +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 207.149 132.405 Td [(geall)-333(|)-334(Allo)-27(cates)-334(a)-333(dense)-334(matrix)]TJ +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 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 +<<<<<<< HEAD:docs/psblas-3.6.pdf [-1084(92)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG @@ -1948,9 +2680,38 @@ q Q BT /F8 9.9626 Tf 184.235 168.644 Td [(gelp)]TJ +======= + [-1084(89)]TJ +0 g 0 G +0 0 1 rg 0 0 1 RG + -41.5 -12.079 Td [(6.13)-522(psb)]TJ +ET +q +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 207.149 120.326 Td [(geins)-333(|)-334(Dense)-333(matrix)-333(insertion)-334(routine)]TJ +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 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 +739 0 obj +<< +/Length 18635 +>> +stream +0 g 0 G +<<<<<<< HEAD:docs/psblas-3.6.pdf [-1084(93)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG @@ -1976,15 +2737,61 @@ q Q BT /F8 9.9626 Tf 218.528 156.565 Td [(lo)-28(c)]TJ +======= +0 g 0 G +0 0 1 rg 0 0 1 RG +BT +/F8 9.9626 Tf 114.839 706.129 Td [(6.14)-522(psb)]TJ +ET +q +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 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.094 Td [(6.15)-522(psb)]TJ +ET +q +1 0 0 1 153.351 694.234 cm +[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +Q +BT +/F8 9.9626 Tf 156.339 694.035 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.094 Td [(6.16)-522(psb)]TJ +ET +q +1 0 0 1 153.351 682.14 cm +[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +Q +BT +/F8 9.9626 Tf 156.339 681.941 Td [(gelp)-333(|)-334(Applies)-333(a)-333(left)-334(p)-27(erm)27(utation)-333(to)-333(a)-334(dense)-333(matrix)]TJ +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 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 +<<<<<<< HEAD:docs/psblas-3.6.pdf [-1083(94)]TJ +======= + [-1084(94)]TJ +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 0 g 0 G 0 0 1 rg 0 0 1 RG - -52.879 -12.08 Td [(psb)]TJ + -41.5 -12.095 Td [(6.17)-522(psb)]TJ ET q +<<<<<<< HEAD:docs/psblas-3.6.pdf 1 0 0 1 181.246 144.684 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q @@ -2004,15 +2811,48 @@ q Q BT /F8 9.9626 Tf 212.717 144.485 Td [(glob)]TJ +======= +1 0 0 1 153.351 670.046 cm +[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +Q +BT +/F8 9.9626 Tf 156.339 669.846 Td [(glob)]TJ +ET +q +1 0 0 1 175.202 670.046 cm +[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +Q +BT +/F8 9.9626 Tf 178.191 669.846 Td [(to)]TJ +ET +q +1 0 0 1 187.644 670.046 cm +[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +Q +BT +/F8 9.9626 Tf 190.633 669.846 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 +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 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 +<<<<<<< HEAD:docs/psblas-3.6.pdf [-1083(96)]TJ +======= + [-1083(95)]TJ +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 0 g 0 G 0 0 1 rg 0 0 1 RG - -47.068 -12.08 Td [(psb)]TJ + -75.794 -12.094 Td [(6.18)-522(psb)]TJ +ET +q +1 0 0 1 153.351 657.951 cm +[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +Q +BT +/F8 9.9626 Tf 156.339 657.752 Td [(lo)-28(c)]TJ ET q +<<<<<<< HEAD:docs/psblas-3.6.pdf 1 0 0 1 181.246 132.605 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q @@ -2025,15 +2865,30 @@ q Q BT /F8 9.9626 Tf 194.518 132.405 Td [(o)28(wned)]TJ +======= +1 0 0 1 169.39 657.951 cm +[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +Q +BT +/F8 9.9626 Tf 172.379 657.752 Td [(to)]TJ +ET +q +1 0 0 1 181.833 657.951 cm +[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +Q +BT +/F8 9.9626 Tf 184.822 657.752 Td [(glob)-333(|)-334(Lo)-27(cal)-334(to)-333(global)-333(indices)-334(con)28(v)28(ersion)]TJ +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 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(97)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG - -28.869 -12.079 Td [(psb)]TJ + -69.983 -12.094 Td [(6.19)-522(psb)]TJ ET q +<<<<<<< HEAD:docs/psblas-3.6.pdf 1 0 0 1 181.246 120.525 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q @@ -2046,9 +2901,24 @@ q Q BT /F8 9.9626 Tf 215.219 120.326 Td [(index)]TJ +======= +1 0 0 1 153.351 645.857 cm +[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +Q +BT +/F8 9.9626 Tf 156.339 645.658 Td [(is)]TJ +ET +q +1 0 0 1 163.634 645.857 cm +[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +Q +BT +/F8 9.9626 Tf 166.623 645.658 Td [(o)28(wned)-334(|)]TJ +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 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 +<<<<<<< HEAD:docs/psblas-3.6.pdf [-1083(98)]TJ 0 g 0 G 0 g 0 G @@ -2105,10 +2975,54 @@ BT /F8 9.9626 Tf 157.214 693.476 Td [(index)]TJ 0 g 0 G [-691(.)-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 +======= + [-1084(98)]TJ +0 g 0 G +0 0 1 rg 0 0 1 RG + -51.784 -12.094 Td [(6.20)-522(psb)]TJ +ET +q +1 0 0 1 153.351 633.763 cm +[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +Q +BT +/F8 9.9626 Tf 156.339 633.564 Td [(o)28(wned)]TJ +ET +q +1 0 0 1 184.334 633.763 cm +[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +Q +BT +/F8 9.9626 Tf 187.323 633.564 Td [(index)-333(|)]TJ +0 g 0 G + [-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 + [-1083(99)]TJ +0 g 0 G +0 0 1 rg 0 0 1 RG + -72.484 -12.094 Td [(6.21)-522(psb)]TJ +ET +q +1 0 0 1 153.351 621.669 cm +[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +Q +BT +/F8 9.9626 Tf 156.339 621.47 Td [(is)]TJ +ET +q +1 0 0 1 163.634 621.669 cm +[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +Q +BT +/F8 9.9626 Tf 166.623 621.47 Td [(lo)-28(cal)-333(|)]TJ +0 g 0 G + [-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 +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 0 g 0 G [-584(100)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG +<<<<<<< HEAD:docs/psblas-3.6.pdf -42.375 -12.654 Td [(psb)]TJ ET q @@ -2124,9 +3038,27 @@ q Q BT /F8 9.9626 Tf 150.295 680.822 Td [(b)-28(oundary)]TJ +======= + -51.784 -12.095 Td [(6.22)-522(psb)]TJ +ET +q +1 0 0 1 153.351 609.575 cm +[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +Q +BT +/F8 9.9626 Tf 156.339 609.375 Td [(lo)-28(cal)]TJ +ET +q +1 0 0 1 177.139 609.575 cm +[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +Q +BT +/F8 9.9626 Tf 180.128 609.375 Td [(index)-333(|)]TJ +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 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 + [-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 +<<<<<<< HEAD:docs/psblas-3.6.pdf [-583(101)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG @@ -2145,9 +3077,51 @@ q Q BT /F8 9.9626 Tf 150.295 668.169 Td [(o)28(v)28(e)-1(r)1(lap)]TJ +======= + [-584(101)]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 +0 0 1 rg 0 0 1 RG + -65.289 -12.094 Td [(6.23)-522(psb)]TJ +ET +q +1 0 0 1 153.351 597.481 cm +[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +Q +BT +/F8 9.9626 Tf 156.339 597.281 Td [(get)]TJ +ET +q +1 0 0 1 170.221 597.481 cm +[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +Q +BT +/F8 9.9626 Tf 173.209 597.281 Td [(b)-28(oundary)-333(|)-333(Extract)-334(list)-333(of)-333(b)-28(oundary)-333(elemen)28(ts)]TJ +0 g 0 G + [-330(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ +0 g 0 G + [-584(102)]TJ +0 g 0 G +0 0 1 rg 0 0 1 RG + -58.37 -12.094 Td [(6.24)-522(psb)]TJ +ET +q +1 0 0 1 153.351 585.386 cm +[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +Q +BT +/F8 9.9626 Tf 156.339 585.187 Td [(get)]TJ +ET +q +1 0 0 1 170.221 585.386 cm +[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +Q +BT +/F8 9.9626 Tf 173.209 585.187 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 +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 0 g 0 G + [-830(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)]TJ +0 g 0 G +<<<<<<< HEAD:docs/psblas-3.6.pdf [-584(102)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG @@ -2166,9 +3140,30 @@ q Q BT /F8 9.9626 Tf 146.476 655.516 Td [(getro)28(w)]TJ +======= + [-584(103)]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 +0 0 1 rg 0 0 1 RG + -58.37 -12.094 Td [(6.25)-522(psb)]TJ +ET +q +1 0 0 1 153.351 573.292 cm +[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +Q +BT +/F8 9.9626 Tf 156.339 573.093 Td [(sp)]TJ +ET +q +1 0 0 1 166.402 573.292 cm +[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +Q +BT +/F8 9.9626 Tf 169.39 573.093 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 +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 0 g 0 G + [-810(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ +0 g 0 G +<<<<<<< HEAD:docs/psblas-3.6.pdf [-584(103)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG @@ -2180,16 +3175,37 @@ q Q BT /F8 9.9626 Tf 133.425 642.862 Td [(sizeof)]TJ +======= + [-584(104)]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 0 1 rg 0 0 1 RG + -54.551 -12.094 Td [(6.26)-522(psb)]TJ +ET +q +1 0 0 1 153.351 561.198 cm +[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +Q +BT +/F8 9.9626 Tf 156.339 560.999 Td [(sizeof)-333(|)-334(Memory)-333(o)-28(ccupation)]TJ +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf +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 +<<<<<<< HEAD:docs/psblas-3.6.pdf [-584(105)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG -18.586 -12.653 Td [(Sorting)-333(utilities)]TJ +======= + [-583(106)]TJ +0 g 0 G +0 0 1 rg 0 0 1 RG + -41.5 -12.094 Td [(6.27)-522(Sorting)-333(utilities)-334(|)]TJ +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 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 + [-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 +<<<<<<< HEAD:docs/psblas-3.6.pdf [-583(106)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG @@ -2205,9 +3221,27 @@ q Q BT /F8 9.9626 Tf 133.425 594.475 Td [(init)]TJ +======= + [-584(107)]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 +0 0 1 rg 0 0 1 RG +/F27 9.9626 Tf -14.944 -22.15 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 +/F8 9.9626 Tf 14.944 -12.094 Td [(7.1)-1022(psb)]TJ +ET +q +1 0 0 1 153.351 514.86 cm +[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +Q +BT +/F8 9.9626 Tf 156.339 514.661 Td [(init)-333(|)-334(Initializes)-333(PSBLAS)-333(parallel)-333(e)-1(n)28(vironmen)28(t)]TJ +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf +0 g 0 G + [-920(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ +0 g 0 G +<<<<<<< HEAD:docs/psblas-3.6.pdf [-583(109)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG @@ -2219,9 +3253,23 @@ q Q BT /F8 9.9626 Tf 133.425 581.821 Td [(info)]TJ +======= + [-584(110)]TJ +0 g 0 G +0 0 1 rg 0 0 1 RG + -41.5 -12.094 Td [(7.2)-1022(psb)]TJ +ET +q +1 0 0 1 153.351 502.766 cm +[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +Q +BT +/F8 9.9626 Tf 156.339 502.567 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.956 Td [(men)28(t)]TJ +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 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 + [-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 +<<<<<<< HEAD:docs/psblas-3.6.pdf [-584(110)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG @@ -2233,9 +3281,23 @@ q Q BT /F8 9.9626 Tf 133.425 569.168 Td [(exit)]TJ +======= + [-584(111)]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 +0 0 1 rg 0 0 1 RG + -22.914 -12.094 Td [(7.3)-1022(psb)]TJ +ET +q +1 0 0 1 153.351 478.717 cm +[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +Q +BT +/F8 9.9626 Tf 156.339 478.517 Td [(exit)-333(|)-334(Exit)-333(from)-333(PSBLAS)-334(p)1(arallel)-334(en)28(vironmen)28(t)]TJ +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 0 g 0 G + [-742(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ +0 g 0 G +<<<<<<< HEAD:docs/psblas-3.6.pdf [-584(111)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG @@ -2254,9 +3316,37 @@ q Q BT /F8 9.9626 Tf 150.295 556.515 Td [(mpicomm)]TJ +======= + [-584(112)]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 +0 0 1 rg 0 0 1 RG + -41.5 -12.094 Td [(7.4)-1022(psb)]TJ +ET +q +1 0 0 1 153.351 466.622 cm +[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +Q +BT +/F8 9.9626 Tf 156.339 466.423 Td [(get)]TJ +ET +q +1 0 0 1 170.221 466.622 cm +[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +Q +BT +/F8 9.9626 Tf 173.209 466.423 Td [(mpi)]TJ +ET +q +1 0 0 1 190.412 466.622 cm +[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +Q +BT +/F8 9.9626 Tf 193.4 466.423 Td [(comm)-334(|)-333(Get)-333(the)-334(MPI)-333(comm)28(unicator)]TJ +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf +0 g 0 G + [-868(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G +<<<<<<< HEAD:docs/psblas-3.6.pdf [-583(112)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG @@ -2289,12 +3379,40 @@ q Q BT /F8 9.9626 Tf 133.425 531.208 Td [(wtime)]TJ +======= + [-584(113)]TJ +0 g 0 G +0 0 1 rg 0 0 1 RG + -78.561 -12.094 Td [(7.5)-1022(psb)]TJ +ET +q +1 0 0 1 153.351 454.528 cm +[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +Q +BT +/F8 9.9626 Tf 156.339 454.329 Td [(get)]TJ +ET +q +1 0 0 1 170.221 454.528 cm +[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +Q +BT +/F8 9.9626 Tf 173.209 454.329 Td [(mpi)]TJ +ET +q +1 0 0 1 190.412 454.528 cm +[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +Q +BT +/F8 9.9626 Tf 193.4 454.329 Td [(rank)-333(|)-334(Get)-333(the)-333(MPI)-334(rank)]TJ +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 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 + [-282(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G [-584(114)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG +<<<<<<< HEAD:docs/psblas-3.6.pdf -18.586 -12.653 Td [(psb)]TJ ET q @@ -2303,12 +3421,23 @@ q Q BT /F8 9.9626 Tf 133.425 518.555 Td [(barrier)]TJ +======= + -78.561 -12.094 Td [(7.6)-1022(psb)]TJ +ET +q +1 0 0 1 153.351 442.434 cm +[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +Q +BT +/F8 9.9626 Tf 156.339 442.235 Td [(wtime)-333(|)-334(W)84(all)-334(clo)-28(c)28(k)-333(timing)]TJ +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 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 + [-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(115)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG +<<<<<<< HEAD:docs/psblas-3.6.pdf -18.586 -12.653 Td [(psb)]TJ ET q @@ -2317,12 +3446,23 @@ q Q BT /F8 9.9626 Tf 133.425 505.902 Td [(ab)-28(ort)]TJ +======= + -41.5 -12.094 Td [(7.7)-1022(psb)]TJ +ET +q +1 0 0 1 153.351 430.34 cm +[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +Q +BT +/F8 9.9626 Tf 156.339 430.141 Td [(barrier)-333(|)-334(Sinc)28(hronization)-333(p)-28(oin)28(t)-333(parallel)-333(en)27(vironmen)28(t)]TJ +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 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 + [-845(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G [-584(116)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG +<<<<<<< HEAD:docs/psblas-3.6.pdf -18.586 -12.654 Td [(psb)]TJ ET q @@ -2331,9 +3471,20 @@ q Q BT /F8 9.9626 Tf 133.425 493.248 Td [(b)-28(cast)]TJ +======= + -41.5 -12.095 Td [(7.8)-1022(psb)]TJ +ET +q +1 0 0 1 153.351 418.246 cm +[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +Q +BT +/F8 9.9626 Tf 156.339 418.046 Td [(ab)-28(ort)-333(|)-333(Ab)-28(ort)-333(a)-334(computation)]TJ +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 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 + [-717(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G +<<<<<<< HEAD:docs/psblas-3.6.pdf [-584(117)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG @@ -2345,12 +3496,26 @@ q Q BT /F8 9.9626 Tf 133.425 480.595 Td [(sum)]TJ +======= + [-583(117)]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 +0 0 1 rg 0 0 1 RG + -41.5 -12.094 Td [(7.9)-1022(psb)]TJ +ET +q +1 0 0 1 153.351 406.151 cm +[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +Q +BT +/F8 9.9626 Tf 156.339 405.952 Td [(b)-28(cast)-333(|)-334(Broadcast)-333(data)]TJ +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf +0 g 0 G + [-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 [-584(118)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG +<<<<<<< HEAD:docs/psblas-3.6.pdf -18.586 -12.653 Td [(psb)]TJ ET q @@ -2359,9 +3524,20 @@ q Q BT /F8 9.9626 Tf 133.425 467.942 Td [(max)]TJ +======= + -41.5 -12.094 Td [(7.10)-522(psb)]TJ +ET +q +1 0 0 1 153.351 394.057 cm +[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +Q +BT +/F8 9.9626 Tf 156.339 393.858 Td [(sum)-333(|)-334(Global)-333(sum)]TJ +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 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 + [-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 +<<<<<<< HEAD:docs/psblas-3.6.pdf [-583(119)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG @@ -2373,9 +3549,23 @@ q Q BT /F8 9.9626 Tf 133.425 455.289 Td [(min)]TJ +======= + [-584(119)]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 +0 0 1 rg 0 0 1 RG + -41.5 -12.094 Td [(7.11)-522(psb)]TJ +ET +q +1 0 0 1 153.351 381.963 cm +[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +Q +BT +/F8 9.9626 Tf 156.339 381.764 Td [(max)-333(|)-334(Global)-333(maxim)28(um)]TJ +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf +0 g 0 G + [-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 +<<<<<<< HEAD:docs/psblas-3.6.pdf [-584(120)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG @@ -2387,9 +3577,23 @@ q Q BT /F8 9.9626 Tf 133.425 442.635 Td [(amx)]TJ +======= + [-583(120)]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 +0 0 1 rg 0 0 1 RG + -41.5 -12.094 Td [(7.12)-522(psb)]TJ +ET +q +1 0 0 1 153.351 369.869 cm +[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +Q +BT +/F8 9.9626 Tf 156.339 369.67 Td [(min)-333(|)-334(Global)-333(minim)28(um)]TJ +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 0 g 0 G + [-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 +<<<<<<< HEAD:docs/psblas-3.6.pdf [-583(121)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG @@ -2401,12 +3605,26 @@ q Q BT /F8 9.9626 Tf 133.425 429.982 Td [(amn)]TJ +======= + [-584(121)]TJ +0 g 0 G +0 0 1 rg 0 0 1 RG + -41.5 -12.094 Td [(7.13)-522(psb)]TJ +ET +q +1 0 0 1 153.351 357.775 cm +[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +Q +BT +/F8 9.9626 Tf 156.339 357.576 Td [(amx)-333(|)-334(Global)-333(maxim)28(um)-334(absolute)-333(v)56(alue)]TJ +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 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 + [-294(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G [-584(122)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG +<<<<<<< HEAD:docs/psblas-3.6.pdf -18.586 -12.653 Td [(psb)]TJ ET q @@ -2415,12 +3633,23 @@ q Q BT /F8 9.9626 Tf 133.425 417.329 Td [(nrm2)]TJ +======= + -41.5 -12.095 Td [(7.14)-522(psb)]TJ +ET +q +1 0 0 1 153.351 345.681 cm +[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +Q +BT +/F8 9.9626 Tf 156.339 345.481 Td [(amn)-333(|)-334(Global)-333(minim)28(um)-334(absolu)1(te)-334(v)56(alue)]TJ +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 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 + [-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 +<<<<<<< HEAD:docs/psblas-3.6.pdf -18.586 -12.654 Td [(psb)]TJ ET q @@ -2429,12 +3658,23 @@ q Q BT /F8 9.9626 Tf 133.425 404.675 Td [(snd)]TJ +======= + -41.5 -12.094 Td [(7.15)-522(psb)]TJ +ET +q +1 0 0 1 153.351 333.586 cm +[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +Q +BT +/F8 9.9626 Tf 156.339 333.387 Td [(nrm2)-333(|)-334(Global)-333(2-norm)-333(reduction)]TJ +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 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 + [-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 +<<<<<<< HEAD:docs/psblas-3.6.pdf -18.586 -12.653 Td [(psb)]TJ ET q @@ -2443,10 +3683,21 @@ q Q BT /F8 9.9626 Tf 133.425 392.022 Td [(rcv)]TJ +======= + -41.5 -12.094 Td [(7.16)-522(psb)]TJ +ET +q +1 0 0 1 153.351 321.492 cm +[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +Q +BT +/F8 9.9626 Tf 156.339 321.293 Td [(snd)-333(|)-334(Send)-333(data)]TJ +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 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 + [-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 +<<<<<<< HEAD:docs/psblas-3.6.pdf 0 g 0 G 0 0 1 rg 0 0 1 RG /F27 9.9626 Tf -33.53 -23.081 Td [(8)-925(Error)-383(handling)]TJ @@ -2461,9 +3712,22 @@ q Q BT /F8 9.9626 Tf 133.425 356.288 Td [(errpush)]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 +0 0 1 rg 0 0 1 RG + -41.5 -12.094 Td [(7.17)-522(psb)]TJ +ET +q +1 0 0 1 153.351 309.398 cm +[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +Q +BT +/F8 9.9626 Tf 156.339 309.199 Td [(rcv)-333(|)-334(Receiv)28(e)-333(data)]TJ +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 0 g 0 G + [-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 +<<<<<<< HEAD:docs/psblas-3.6.pdf [-584(128)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG @@ -2475,12 +3739,30 @@ q Q BT /F8 9.9626 Tf 133.425 343.634 Td [(error)]TJ +======= + [-583(126)]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 +0 0 1 rg 0 0 1 RG +/F27 9.9626 Tf -56.444 -22.15 Td [(8)-925(Error)-383(handling)]TJ +0 g 0 G + [-23812(127)]TJ +0 0 1 rg 0 0 1 RG +/F8 9.9626 Tf 14.944 -12.094 Td [(8.1)-1022(psb)]TJ +ET +q +1 0 0 1 153.351 275.154 cm +[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +Q +BT +/F8 9.9626 Tf 156.339 274.955 Td [(errpush)]TJ +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf +0 g 0 G + [-629(.)-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(129)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG +<<<<<<< HEAD:docs/psblas-3.6.pdf -18.586 -12.653 Td [(psb)]TJ ET q @@ -2496,12 +3778,23 @@ q Q BT /F8 9.9626 Tf 149.244 330.981 Td [(errv)28(erb)-28(osit)28(y)]TJ +======= + -41.5 -12.094 Td [(8.2)-1022(psb)]TJ +ET +q +1 0 0 1 153.351 263.06 cm +[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +Q +BT +/F8 9.9626 Tf 156.339 262.861 Td [(error)]TJ +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 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 + [-1020(.)-500(.)-500(.)-500(.)-500(.)-500(.)-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(130)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG +<<<<<<< HEAD:docs/psblas-3.6.pdf -34.405 -12.653 Td [(psb)]TJ ET q @@ -2549,9 +3842,48 @@ q Q BT /F8 9.9626 Tf 129.219 269.94 Td [(write)]TJ +======= + -41.5 -12.094 Td [(8.3)-1022(psb)]TJ +ET +q +1 0 0 1 153.351 250.966 cm +[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +Q +BT +/F8 9.9626 Tf 156.339 250.767 Td [(set)]TJ +ET +q +1 0 0 1 169.169 250.966 cm +[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +Q +BT +/F8 9.9626 Tf 172.158 250.767 Td [(errv)28(erb)-28(osit)28(y)]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 + [-1010(.)-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(131)]TJ +0 g 0 G +0 0 1 rg 0 0 1 RG + -57.319 -12.094 Td [(8.4)-1022(psb)]TJ +ET +q +1 0 0 1 153.351 238.872 cm +[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +Q +BT +/F8 9.9626 Tf 156.339 238.673 Td [(set)]TJ +ET +q +1 0 0 1 169.169 238.872 cm +[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +Q +BT +/F8 9.9626 Tf 172.158 238.673 Td [(erraction)]TJ +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf +0 g 0 G + [-769(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ +0 g 0 G +<<<<<<< HEAD:docs/psblas-3.6.pdf [-584(134)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG @@ -2570,9 +3902,27 @@ q Q BT /F8 9.9626 Tf 155.775 257.286 Td [(read)]TJ +======= + [-584(132)]TJ +0 g 0 G +0 0 1 rg 0 0 1 RG +/F27 9.9626 Tf -72.263 -22.15 Td [(9)-925(Utilities)]TJ +0 g 0 G + [-27238(133)]TJ +0 0 1 rg 0 0 1 RG +/F8 9.9626 Tf 14.944 -12.094 Td [(9.1)-1490(h)28(b)]TJ +ET +q +1 0 0 1 153.803 204.628 cm +[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +Q +BT +/F8 9.9626 Tf 156.792 204.429 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 +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 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 + [-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 +<<<<<<< HEAD:docs/psblas-3.6.pdf [-584(135)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG @@ -2591,9 +3941,23 @@ q Q BT /F8 9.9626 Tf 161.365 244.633 Td [(read)]TJ +======= + [-583(134)]TJ +0 g 0 G +0 0 1 rg 0 0 1 RG + -22.914 -12.094 Td [(9.2)-1022(h)28(b)]TJ +ET +q +1 0 0 1 149.144 180.579 cm +[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +Q +BT +/F8 9.9626 Tf 152.133 180.38 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.956 Td [(format)]TJ +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 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 + [-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 +<<<<<<< HEAD:docs/psblas-3.6.pdf [-584(136)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG @@ -2612,9 +3976,30 @@ q Q BT /F8 9.9626 Tf 155.775 231.98 Td [(write)]TJ +======= + [-584(135)]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 +0 0 1 rg 0 0 1 RG + -22.914 -12.094 Td [(9.3)-1022(mm)]TJ +ET +q +1 0 0 1 154.956 156.529 cm +[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +Q +BT +/F8 9.9626 Tf 157.944 156.33 Td [(mat)]TJ +ET +q +1 0 0 1 175.7 156.529 cm +[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +Q +BT +/F8 9.9626 Tf 178.689 156.33 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 +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 0 g 0 G + [-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 +<<<<<<< HEAD:docs/psblas-3.6.pdf [-583(137)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG @@ -2686,11 +4071,39 @@ BT 0 g 0 G 0 g 0 G 152.761 -29.888 Td [(iii)]TJ +======= + [-584(136)]TJ +0 g 0 G +0 0 1 rg 0 0 1 RG + -22.915 -12.094 Td [(9.4)-1022(mm)]TJ +ET +q +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 157.944 132.281 Td [(arra)28(y)]TJ +ET +q +1 0 0 1 181.29 132.48 cm +[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +Q +BT +/F8 9.9626 Tf 184.279 132.281 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(format)]TJ +0 g 0 G + [-944(.)-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(137)]TJ +0 g 0 G +0 g 0 G + 129.847 -29.888 Td [(iii)]TJ +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 0 g 0 G ET endstream endobj +<<<<<<< HEAD:docs/psblas-3.6.pdf 631 0 obj << /Type /ObjStm @@ -2710,58 +4123,122 @@ stream 671 12038 672 12186 673 12335 674 12484 675 12632 676 12779 677 12927 682 13075 679 13132 729 13211 678 13689 683 13838 684 13986 685 14134 686 14283 687 14432 688 14577 689 14726 690 14872 691 15021 % 589 0 obj +======= +643 0 obj +<< +/Type /ObjStm +/N 100 +/First 927 +/Length 16607 +>> +stream +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 738 14567 690 15069 695 15222 696 15375 697 15527 +% 595 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] +<<<<<<< HEAD:docs/psblas-3.6.pdf /Rect [168.638 540.182 231.021 551.03] /A << /S /GoTo /D (section*.2) >> >> % 590 0 obj +======= +/Rect [113.843 622.634 232.122 633.482] +/A << /S /GoTo /D (subsection.2.3) >> +>> +% 596 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] +<<<<<<< HEAD:docs/psblas-3.6.pdf /Rect [168.638 528.102 227.395 538.95] /A << /S /GoTo /D (section*.3) >> >> % 591 0 obj +======= +/Rect [136.757 610.543 296.409 621.391] +/A << /S /GoTo /D (subsubsection.2.3.1) >> +>> +% 597 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] +<<<<<<< HEAD:docs/psblas-3.6.pdf /Rect [168.638 516.022 236.832 526.871] /A << /S /GoTo /D (section*.4) >> >> % 592 0 obj +======= +/Rect [113.843 598.452 227.777 609.3] +/A << /S /GoTo /D (subsection.2.4) >> +>> +% 598 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] +<<<<<<< HEAD:docs/psblas-3.6.pdf /Rect [168.638 503.943 233.207 514.791] /A << /S /GoTo /D (section*.5) >> >> % 593 0 obj +======= +/Rect [98.899 578.245 258.112 587.156] +/A << /S /GoTo /D (section.3) >> +>> +% 599 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] +<<<<<<< HEAD:docs/psblas-3.6.pdf /Rect [168.638 491.863 246.49 502.711] /A << /S /GoTo /D (section*.6) >> >> % 594 0 obj +======= +/Rect [113.843 564.217 249.529 575.065] +/A << /S /GoTo /D (subsection.3.1) >> +>> +% 600 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] +<<<<<<< HEAD:docs/psblas-3.6.pdf /Rect [168.638 479.783 219.602 490.133] /A << /S /GoTo /D (section*.7) >> >> % 595 0 obj +======= +/Rect [136.757 552.126 257.001 562.974] +/A << /S /GoTo /D (subsubsection.3.1.1) >> +>> +% 601 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] +<<<<<<< HEAD:docs/psblas-3.6.pdf /Rect [168.638 469.641 195.537 478.552] /A << /S /GoTo /D (section*.8) >> >> @@ -2813,150 +4290,196 @@ stream /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) >> +>> +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf % 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) >> >> % 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) >> >> % 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) >> >> % 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) >> >> % 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) >> >> % 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) >> >> % 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) >> >> % 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) >> >> +<<<<<<< HEAD:docs/psblas-3.6.pdf % 610 0 obj +======= +% 639 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << /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) >> >> +<<<<<<< HEAD:docs/psblas-3.6.pdf % 611 0 obj +======= +% 610 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << /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) >> >> +<<<<<<< HEAD:docs/psblas-3.6.pdf % 612 0 obj +======= +% 640 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << /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) >> >> +<<<<<<< HEAD:docs/psblas-3.6.pdf % 613 0 obj +======= +% 611 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << /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) >> >> +<<<<<<< HEAD:docs/psblas-3.6.pdf % 614 0 obj +======= +% 612 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << /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) >> >> +<<<<<<< HEAD:docs/psblas-3.6.pdf % 615 0 obj +======= +% 613 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << /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) >> >> +<<<<<<< HEAD:docs/psblas-3.6.pdf % 616 0 obj +======= +% 614 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << /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) >> >> +<<<<<<< HEAD:docs/psblas-3.6.pdf % 617 0 obj +======= +% 615 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << /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) >> >> +<<<<<<< HEAD:docs/psblas-3.6.pdf % 618 0 obj +======= +% 616 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << /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) >> >> +<<<<<<< HEAD:docs/psblas-3.6.pdf % 619 0 obj +======= +% 617 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << /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) >> >> +<<<<<<< HEAD:docs/psblas-3.6.pdf % 620 0 obj << /Type /Annot @@ -2974,26 +4497,38 @@ stream /A << /S /GoTo /D (subsubsection.3.3.1) >> >> % 622 0 obj +======= +% 618 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << /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) >> >> +<<<<<<< HEAD:docs/psblas-3.6.pdf % 623 0 obj +======= +% 619 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << /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) >> >> +<<<<<<< HEAD:docs/psblas-3.6.pdf % 624 0 obj +======= +% 641 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] +<<<<<<< HEAD:docs/psblas-3.6.pdf /Rect [168.638 119.329 186.183 127.742] /A << /S /GoTo /D (section*.31) >> >> @@ -3020,114 +4555,125 @@ stream /Annots [ 625 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 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 ] >> % 625 0 obj +======= +/Rect [98.899 288.468 199.716 297.114] +/A << /S /GoTo /D (subsubsection.3.2.4) >> +>> +% 620 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << /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) >> >> +<<<<<<< HEAD:docs/psblas-3.6.pdf % 632 0 obj +======= +% 642 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << /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) >> >> % 633 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) >> >> % 634 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) >> >> % 635 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) >> >> % 636 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) >> >> % 637 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) >> >> % 638 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) >> >> % 639 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) >> >> % 640 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) >> >> % 641 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) >> >> % 642 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) >> >> % 643 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) >> >> % 644 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] +<<<<<<< HEAD:docs/psblas-3.6.pdf /Rect [164.653 536.114 221.29 546.962] /A << /S /GoTo /D (section*.42) >> >> @@ -3204,28 +4750,71 @@ stream /A << /S /GoTo /D (section*.50) >> >> % 654 0 obj +======= +/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 +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] +<<<<<<< HEAD:docs/psblas-3.6.pdf /Rect [164.653 405.271 201.863 416.119] /A << /S /GoTo /D (section*.51) >> +======= +/Rect [187.567 703.195 349.903 714.044] +/A << /S /GoTo /D (subsubsection.3.2.18) >> +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> % 655 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] +<<<<<<< HEAD:docs/psblas-3.6.pdf /Rect [164.653 393.191 212.933 404.039] /A << /S /GoTo /D (section*.52) >> +======= +/Rect [187.567 693.053 299.038 701.964] +/A << /S /GoTo /D (subsubsection.3.2.19) >> +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> % 656 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] +<<<<<<< HEAD:docs/psblas-3.6.pdf /Rect [164.653 381.112 214.648 391.96] /A << /S /GoTo /D (section*.53) >> +======= +/Rect [164.653 680.973 316.168 689.774] +/A << /S /GoTo /D (subsection.3.3) >> +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> % 657 0 obj << @@ -3240,167 +4829,276 @@ stream /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] +<<<<<<< HEAD:docs/psblas-3.6.pdf /Rect [164.653 346.906 205.71 357.755] /A << /S /GoTo /D (section*.54) >> +======= +/Rect [187.567 668.894 290.708 677.805] +/A << /S /GoTo /D (subsubsection.3.3.1) >> +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> % 659 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] +<<<<<<< HEAD:docs/psblas-3.6.pdf /Rect [164.653 334.827 207.426 345.675] /A << /S /GoTo /D (section*.55) >> +======= +/Rect [187.567 654.877 443.997 665.725] +/A << /S /GoTo /D (subsubsection.3.3.2) >> +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> % 660 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] +<<<<<<< HEAD:docs/psblas-3.6.pdf /Rect [164.653 322.747 209.639 333.595] /A << /S /GoTo /D (section*.56) >> +======= +/Rect [187.567 642.797 479.97 653.645] +/A << /S /GoTo /D (subsubsection.3.3.3) >> +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> % 661 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] +<<<<<<< HEAD:docs/psblas-3.6.pdf /Rect [164.653 310.667 210.138 321.516] /A << /S /GoTo /D (section*.57) >> +======= +/Rect [187.567 632.654 361.885 641.565] +/A << /S /GoTo /D (subsubsection.3.3.4) >> +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> % 662 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] +<<<<<<< HEAD:docs/psblas-3.6.pdf /Rect [164.653 298.588 210.996 309.436] /A << /S /GoTo /D (section*.58) >> +======= +/Rect [187.567 618.638 418.066 629.486] +/A << /S /GoTo /D (subsubsection.3.3.5) >> +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> % 663 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] +<<<<<<< HEAD:docs/psblas-3.6.pdf /Rect [164.653 286.508 222.591 297.356] /A << /S /GoTo /D (section*.59) >> +======= +/Rect [187.567 606.558 349.903 617.406] +/A << /S /GoTo /D (subsubsection.3.3.6) >> +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> % 664 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] +<<<<<<< HEAD:docs/psblas-3.6.pdf /Rect [164.653 274.428 205.212 285.276] /A << /S /GoTo /D (section*.60) >> +======= +/Rect [164.653 596.415 318.825 605.326] +/A << /S /GoTo /D (subsection.3.4) >> +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> % 665 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] +<<<<<<< HEAD:docs/psblas-3.6.pdf /Rect [164.653 262.349 206.927 273.197] /A << /S /GoTo /D (section*.61) >> +======= +/Rect [164.653 582.398 277.397 593.247] +/A << /S /GoTo /D (subsection.3.5) >> +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> % 666 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] +<<<<<<< HEAD:docs/psblas-3.6.pdf /Rect [164.653 250.269 209.141 261.117] /A << /S /GoTo /D (section*.62) >> +======= +/Rect [149.709 560.273 285.838 571.121] +/A << /S /GoTo /D (section.4) >> +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> % 667 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] +<<<<<<< HEAD:docs/psblas-3.6.pdf /Rect [164.653 238.189 210.497 249.037] /A << /S /GoTo /D (section*.63) >> +======= +/Rect [164.653 548.193 379.489 559.042] +/A << /S /GoTo /D (subsection.4.1) >> +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> % 668 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] +<<<<<<< HEAD:docs/psblas-3.6.pdf /Rect [164.653 226.109 204.132 236.958] /A << /S /GoTo /D (section*.64) >> +======= +/Rect [164.653 536.114 303.648 546.962] +/A << /S /GoTo /D (subsection.4.2) >> +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> % 669 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] +<<<<<<< HEAD:docs/psblas-3.6.pdf /Rect [164.653 214.03 205.156 224.878] /A << /S /GoTo /D (section*.65) >> +======= +/Rect [164.653 524.034 361.916 534.882] +/A << /S /GoTo /D (subsection.4.3) >> +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> % 670 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] +<<<<<<< HEAD:docs/psblas-3.6.pdf /Rect [164.653 201.95 206.872 212.798] /A << /S /GoTo /D (section*.66) >> +======= +/Rect [164.653 511.954 352.963 522.802] +/A << /S /GoTo /D (subsection.4.4) >> +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> % 671 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] +<<<<<<< HEAD:docs/psblas-3.6.pdf /Rect [164.653 189.87 209.086 200.719] /A << /S /GoTo /D (section*.67) >> +======= +/Rect [164.653 499.875 375.753 510.723] +/A << /S /GoTo /D (subsection.4.5) >> +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> % 672 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] +<<<<<<< HEAD:docs/psblas-3.6.pdf /Rect [164.653 177.791 210.442 188.639] /A << /S /GoTo /D (section*.68) >> +======= +/Rect [164.653 487.795 328.334 498.643] +/A << /S /GoTo /D (subsection.4.6) >> +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> % 673 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] +<<<<<<< HEAD:docs/psblas-3.6.pdf /Rect [164.653 165.711 202.942 176.559] /A << /S /GoTo /D (section*.69) >> +======= +/Rect [164.653 475.715 391.057 486.563] +/A << /S /GoTo /D (subsection.4.7) >> +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> % 674 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] +<<<<<<< HEAD:docs/psblas-3.6.pdf /Rect [164.653 153.631 231.978 164.48] /A << /S /GoTo /D (section*.70) >> +======= +/Rect [164.653 463.635 328.334 474.484] +/A << /S /GoTo /D (subsection.4.8) >> +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> % 675 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] +<<<<<<< HEAD:docs/psblas-3.6.pdf /Rect [164.653 141.552 231.978 152.4] /A << /S /GoTo /D (section*.71) >> +======= +/Rect [164.653 451.556 391.029 462.404] +/A << /S /GoTo /D (subsection.4.9) >> +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> % 676 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] +<<<<<<< HEAD:docs/psblas-3.6.pdf /Rect [164.653 129.472 226.233 140.32] /A << /S /GoTo /D (section*.72) >> +======= +/Rect [164.653 439.476 361.625 450.324] +/A << /S /GoTo /D (subsection.4.10) >> +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> % 677 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] +<<<<<<< HEAD:docs/psblas-3.6.pdf /Rect [164.653 117.392 243.059 128.24] /A << /S /GoTo /D (section*.73) >> >> % 682 0 obj << /D [680 0 R /XYZ 149.705 753.953 null] +======= +/Rect [164.653 427.396 386.255 438.245] +/A << /S /GoTo /D (subsection.4.11) >> +>> +% 666 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [164.653 415.317 427.324 426.165] +/A << /S /GoTo /D (subsection.4.12) >> +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> % 679 0 obj << +<<<<<<< HEAD:docs/psblas-3.6.pdf /Font << /F8 573 0 R /F27 572 0 R >> /ProcSet [ /PDF /Text ] >> @@ -3414,90 +5112,176 @@ stream /Annots [ 678 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 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 ] >> % 678 0 obj +======= +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [164.653 403.237 352.825 414.085] +/A << /S /GoTo /D (subsection.4.13) >> +>> +% 668 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [164.653 391.157 331.129 402.005] +/A << /S /GoTo /D (subsection.4.14) >> +>> +% 669 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] +/Rect [164.653 379.078 330.049 389.926] +/A << /S /GoTo /D (subsection.4.15) >> +>> +% 670 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +<<<<<<< HEAD:docs/psblas-3.6.pdf /Rect [113.843 703.195 168.228 714.044] /A << /S /GoTo /D (section*.74) >> +======= +/Rect [164.653 366.998 333.536 377.846] +/A << /S /GoTo /D (subsection.4.16) >> +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> % 683 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] +<<<<<<< HEAD:docs/psblas-3.6.pdf /Rect [113.843 690.542 185.054 701.39] /A << /S /GoTo /D (section*.75) >> +======= +/Rect [149.709 346.81 290.134 355.721] +/A << /S /GoTo /D (section.5) >> +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> % 684 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] +<<<<<<< HEAD:docs/psblas-3.6.pdf /Rect [113.843 677.889 192.83 688.737] /A << /S /GoTo /D (section*.76) >> +======= +/Rect [164.653 332.793 360.214 343.641] +/A << /S /GoTo /D (subsection.5.1) >> +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> % 685 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] +<<<<<<< HEAD:docs/psblas-3.6.pdf /Rect [113.843 665.236 182.591 676.084] /A << /S /GoTo /D (section*.77) >> >> % 686 0 obj +======= +/Rect [164.653 320.713 311.148 331.561] +/A << /S /GoTo /D (subsection.5.2) >> +>> +% 674 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] +/Rect [164.653 308.633 377.649 319.482] +/A << /S /GoTo /D (subsection.5.3) >> +>> +% 675 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +<<<<<<< HEAD:docs/psblas-3.6.pdf /Rect [113.843 652.582 176.558 663.431] /A << /S /GoTo /D (section*.78) >> +======= +/Rect [164.653 296.554 379.849 307.402] +/A << /S /GoTo /D (subsection.5.4) >> +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> % 687 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] +<<<<<<< HEAD:docs/psblas-3.6.pdf /Rect [113.843 639.929 158 650.777] /A << /S /GoTo /D (section*.79) >> +======= +/Rect [149.709 274.428 302.58 285.276] +/A << /S /GoTo /D (section.6) >> +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> % 688 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] +<<<<<<< HEAD:docs/psblas-3.6.pdf /Rect [113.843 627.276 183.443 638.124] /A << /S /GoTo /D (section*.80) >> +======= +/Rect [164.653 262.349 409.502 273.197] +/A << /S /GoTo /D (subsection.6.1) >> +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> % 689 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] +<<<<<<< HEAD:docs/psblas-3.6.pdf /Rect [98.899 606.132 264.868 615.043] /A << /S /GoTo /D (section.7) >> +======= +/Rect [164.653 250.269 424.556 261.117] +/A << /S /GoTo /D (subsection.6.2) >> +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> % 690 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] +<<<<<<< HEAD:docs/psblas-3.6.pdf /Rect [113.843 591.541 149.366 602.389] /A << /S /GoTo /D (section*.81) >> +======= +/Rect [164.653 238.189 441.188 249.037] +/A << /S /GoTo /D (subsection.6.3) >> +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> % 691 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] +<<<<<<< HEAD:docs/psblas-3.6.pdf /Rect [113.843 578.888 150.749 589.736] /A << /S /GoTo /D (section*.82) >> +======= +/Rect [164.653 226.109 402.86 236.958] +/A << /S /GoTo /D (subsection.6.4) >> +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> endstream endobj 735 0 obj << +<<<<<<< HEAD:docs/psblas-3.6.pdf /Length 660 >> stream @@ -3530,6 +5314,253 @@ ET endstream endobj 749 0 obj +======= +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [164.653 214.03 397.242 224.878] +/A << /S /GoTo /D (subsection.6.5) >> +>> +% 682 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [164.653 201.95 458.014 212.798] +/A << /S /GoTo /D (subsection.6.6) >> +>> +% 683 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [164.653 189.87 355.371 200.719] +/A << /S /GoTo /D (subsection.6.7) >> +>> +% 684 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [164.653 177.791 448.273 188.639] +/A << /S /GoTo /D (subsection.6.8) >> +>> +% 685 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [164.653 165.711 385.896 176.559] +/A << /S /GoTo /D (subsection.6.9) >> +>> +% 686 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [164.653 153.631 343.111 164.48] +/A << /S /GoTo /D (subsection.6.10) >> +>> +% 687 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [164.653 141.552 461.805 152.4] +/A << /S /GoTo /D (subsection.6.11) >> +>> +% 688 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [164.653 129.472 352.465 140.32] +/A << /S /GoTo /D (subsection.6.12) >> +>> +% 689 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [164.653 117.392 380.112 128.24] +/A << /S /GoTo /D (subsection.6.13) >> +>> +% 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 ] +>> +% 738 0 obj +<< +/Type /Page +/Contents 739 0 R +/Resources 737 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 741 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 731 0 R 732 0 R 742 0 R 733 0 R 743 0 R 734 0 R 744 0 R 735 0 R 745 0 R ] +>> +% 690 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [113.843 703.195 307.025 714.044] +/A << /S /GoTo /D (subsection.6.14) >> +>> +% 695 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [113.843 691.101 289.396 701.949] +/A << /S /GoTo /D (subsection.6.15) >> +>> +% 696 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [113.843 679.007 386.92 689.855] +/A << /S /GoTo /D (subsection.6.16) >> +>> +% 697 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [113.843 666.913 366.405 677.761] +/A << /S /GoTo /D (subsection.6.17) >> +>> + +endstream +endobj +759 0 obj +<< +/Length 3702 +>> +stream +0 g 0 G +0 g 0 G +0 0 1 rg 0 0 1 RG +BT +/F8 9.9626 Tf 165.649 706.129 Td [(9.5)-1022(mm)]TJ +ET +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 [(mat)]TJ +ET +q +1 0 0 1 226.51 706.328 cm +[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +Q +BT +/F8 9.9626 Tf 229.498 706.129 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.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(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 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 [(arra)28(y)]TJ +ET +q +1 0 0 1 232.1 682.418 cm +[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +Q +BT +/F8 9.9626 Tf 235.089 682.219 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.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(139)]TJ +0 g 0 G +0 0 1 rg 0 0 1 RG +/F27 9.9626 Tf -37.858 -21.917 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.956 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.955 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.956 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.917 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.956 Td [(11.1)-522(psb)]TJ +ET +q +1 0 0 1 204.16 542.941 cm +[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +Q +BT +/F8 9.9626 Tf 207.149 542.742 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 -452.304 Td [(iv)]TJ +0 g 0 G +ET + +endstream +endobj +775 0 obj << /Length 8518 >> @@ -3585,7 +5616,11 @@ ET endstream endobj +<<<<<<< HEAD:docs/psblas-3.6.pdf 769 0 obj +======= +795 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << /Length 5579 >> @@ -3632,20 +5667,33 @@ ET endstream endobj +<<<<<<< HEAD:docs/psblas-3.6.pdf 765 0 obj +======= +791 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (./figures/psblas.pdf) /PTEX.PageNumber 1 +<<<<<<< HEAD:docs/psblas-3.6.pdf /PTEX.InfoDict 772 0 R +======= +/PTEX.InfoDict 798 0 R +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf /BBox [0 0 197 215] /Resources << /ProcSet [ /PDF /Text ] /ExtGState << +<<<<<<< HEAD:docs/psblas-3.6.pdf /R7 773 0 R >>/Font << /R8 774 0 R>> +======= +/R7 799 0 R +>>/Font << /R8 800 0 R>> +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> /Length 898 /Filter /FlateDecode @@ -3666,7 +5714,11 @@ 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 +<<<<<<< HEAD:docs/psblas-3.6.pdf 776 0 obj +======= +802 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << /Filter /FlateDecode /Subtype /Type1C @@ -3686,7 +5738,11 @@ 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 +<<<<<<< HEAD:docs/psblas-3.6.pdf 782 0 obj +======= +808 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << /Length 8854 >> @@ -3735,7 +5791,11 @@ ET endstream endobj +<<<<<<< HEAD:docs/psblas-3.6.pdf 798 0 obj +======= +824 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << /Length 5346 >> @@ -3812,20 +5872,33 @@ ET endstream endobj +<<<<<<< HEAD:docs/psblas-3.6.pdf 795 0 obj +======= +821 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (./figures/points.pdf) /PTEX.PageNumber 1 +<<<<<<< HEAD:docs/psblas-3.6.pdf /PTEX.InfoDict 801 0 R +======= +/PTEX.InfoDict 827 0 R +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf /BBox [0 0 274 308] /Resources << /ProcSet [ /PDF /Text ] /ExtGState << +<<<<<<< HEAD:docs/psblas-3.6.pdf /R7 802 0 R >>/Font << /R8 803 0 R>> +======= +/R7 828 0 R +>>/Font << /R8 829 0 R>> +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> /Length 1397 /Filter /FlateDecode @@ -3835,11 +5908,19 @@ 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 +<<<<<<< HEAD:docs/psblas-3.6.pdf 810 0 obj +======= +746 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << -/Length 5462 +/Type /ObjStm +/N 100 +/First 919 +/Length 15220 >> stream +<<<<<<< HEAD:docs/psblas-3.6.pdf 0 g 0 G 0 g 0 G 0 g 0 G @@ -4016,10 +6097,32 @@ stream /A << /S /GoTo /D (section*.85) >> >> % 695 0 obj +======= +698 0 699 153 700 306 701 458 702 611 703 763 704 916 705 1068 706 1221 707 1374 +708 1527 709 1672 710 1824 741 1976 711 2127 712 2279 713 2430 714 2582 715 2733 716 2884 +717 3035 718 3187 719 3340 720 3492 721 3644 722 3796 723 3949 724 4101 725 4253 726 4406 +727 4552 728 4703 729 4855 730 5007 731 5159 732 5305 742 5457 733 5607 743 5759 734 5910 +744 6062 735 6212 745 6364 740 6514 737 6570 758 6649 736 6879 761 7031 747 7183 762 7335 +748 7487 749 7634 750 7787 751 7939 752 8092 753 8244 754 8396 755 8549 756 8695 760 8848 +757 8905 774 8984 763 9190 764 9339 765 9490 766 9642 767 9796 768 9947 769 10096 770 10245 +771 10393 772 10541 7 10689 773 10743 794 10835 798 10985 799 11226 800 11268 801 11654 788 11954 +789 12099 790 12247 11 12394 797 12450 793 12505 807 12625 792 12775 804 12921 805 13070 809 13218 +15 13274 815 13329 817 13386 806 13443 823 13638 827 13780 828 13894 829 13936 819 14005 820 14153 +% 698 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] +/Rect [113.843 654.819 367.083 665.667] +/A << /S /GoTo /D (subsection.6.18) >> +>> +% 699 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +<<<<<<< HEAD:docs/psblas-3.6.pdf /Rect [113.843 528.275 160.989 539.123] /A << /S /GoTo /D (section*.86) >> >> @@ -4048,170 +6151,325 @@ stream /A << /S /GoTo /D (section*.89) >> >> % 699 0 obj +======= +/Rect [113.843 642.725 211.621 653.573] +/A << /S /GoTo /D (subsection.6.19) >> +>> +% 700 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] +<<<<<<< HEAD:docs/psblas-3.6.pdf /Rect [113.843 477.662 152.188 488.51] /A << /S /GoTo /D (section*.90) >> >> % 700 0 obj +======= +/Rect [113.843 630.63 228.447 641.479] +/A << /S /GoTo /D (subsection.6.20) >> +>> +% 701 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] +<<<<<<< HEAD:docs/psblas-3.6.pdf /Rect [113.843 465.008 152.963 475.857] /A << /S /GoTo /D (section*.91) >> >> % 701 0 obj +======= +/Rect [113.843 618.536 204.426 629.384] +/A << /S /GoTo /D (subsection.6.21) >> +>> +% 702 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] +<<<<<<< HEAD:docs/psblas-3.6.pdf /Rect [113.843 452.355 151.026 463.203] /A << /S /GoTo /D (section*.92) >> >> % 702 0 obj +======= +/Rect [113.843 606.442 221.252 617.29] +/A << /S /GoTo /D (subsection.6.22) >> +>> +% 703 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] +<<<<<<< HEAD:docs/psblas-3.6.pdf /Rect [113.843 439.702 152.963 450.55] /A << /S /GoTo /D (section*.93) >> >> % 703 0 obj +======= +/Rect [113.843 594.348 379.049 605.196] +/A << /S /GoTo /D (subsection.6.23) >> +>> +% 704 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] +<<<<<<< HEAD:docs/psblas-3.6.pdf /Rect [113.843 427.049 153.24 437.897] /A << /S /GoTo /D (section*.94) >> >> % 704 0 obj +======= +/Rect [113.843 582.254 358.57 593.102] +/A << /S /GoTo /D (subsection.6.24) >> +>> +% 705 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [113.843 569.606 374.261 581.561] +/A << /S /GoTo /D (subsection.6.25) >> +>> +% 706 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] +<<<<<<< HEAD:docs/psblas-3.6.pdf /Rect [113.843 414.395 157.142 425.243] /A << /S /GoTo /D (section*.95) >> >> % 705 0 obj +======= +/Rect [113.843 558.065 284.166 568.913] +/A << /S /GoTo /D (subsection.6.26) >> +>> +% 707 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] +<<<<<<< HEAD:docs/psblas-3.6.pdf /Rect [113.843 401.742 149.421 412.59] /A << /S /GoTo /D (section*.96) >> >> % 706 0 obj +======= +/Rect [113.843 545.971 222.962 556.819] +/A << /S /GoTo /D (subsection.6.27) >> +>> +% 708 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] +<<<<<<< HEAD:docs/psblas-3.6.pdf /Rect [113.843 389.089 148.009 399.937] /A << /S /GoTo /D (section*.97) >> >> % 707 0 obj +======= +/Rect [98.899 525.759 264.868 534.67] +/A << /S /GoTo /D (section.7) >> +>> +% 709 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] +<<<<<<< HEAD:docs/psblas-3.6.pdf /Rect [98.899 366.007 190.188 376.856] /A << /S /GoTo /D (section.8) >> >> % 708 0 obj +======= +/Rect [113.843 511.727 365.417 522.576] +/A << /S /GoTo /D (subsection.7.1) >> +>> +% 710 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] +<<<<<<< HEAD:docs/psblas-3.6.pdf /Rect [113.843 353.354 167.188 364.202] /A << /S /GoTo /D (section*.98) >> >> % 709 0 obj +======= +/Rect [113.843 499.633 444.603 510.481] +/A << /S /GoTo /D (subsection.7.2) >> +>> +% 741 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] +<<<<<<< HEAD:docs/psblas-3.6.pdf /Rect [113.843 340.701 155.537 351.549] /A << /S /GoTo /D (section*.99) >> >> % 710 0 obj +======= +/Rect [98.899 489.615 160.612 498.028] +/A << /S /GoTo /D (subsection.7.2) >> +>> +% 711 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] +<<<<<<< HEAD:docs/psblas-3.6.pdf /Rect [113.843 328.048 202.129 338.896] /A << /S /GoTo /D (section*.100) >> >> % 711 0 obj +======= +/Rect [113.843 475.584 367.188 486.432] +/A << /S /GoTo /D (subsection.7.3) >> +>> +% 712 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] +<<<<<<< HEAD:docs/psblas-3.6.pdf /Rect [113.843 315.394 189.039 326.242] /A << /S /GoTo /D (section*.101) >> >> % 712 0 obj +======= +/Rect [113.843 463.49 358.186 474.338] +/A << /S /GoTo /D (subsection.7.4) >> +>> +% 713 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] +<<<<<<< HEAD:docs/psblas-3.6.pdf /Rect [98.899 294.25 156.061 303.161] /A << /S /GoTo /D (section.9) >> >> % 713 0 obj +======= +/Rect [113.843 451.395 309.784 462.244] +/A << /S /GoTo /D (subsection.7.5) >> +>> +% 714 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] +<<<<<<< HEAD:docs/psblas-3.6.pdf /Rect [113.843 281.597 149.061 290.508] /A << /S /GoTo /D (section*.102) >> >> % 714 0 obj +======= +/Rect [113.843 439.301 277.164 450.15] +/A << /S /GoTo /D (subsection.7.6) >> +>> +% 715 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] +<<<<<<< HEAD:docs/psblas-3.6.pdf /Rect [113.843 268.944 152.382 277.855] /A << /S /GoTo /D (section*.103) >> >> % 715 0 obj +======= +/Rect [113.843 427.207 389.41 438.055] +/A << /S /GoTo /D (subsection.7.7) >> +>> +% 716 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] +<<<<<<< HEAD:docs/psblas-3.6.pdf /Rect [113.843 256.29 175.617 265.201] /A << /S /GoTo /D (section*.104) >> >> % 716 0 obj +======= +/Rect [113.843 415.113 289.95 425.961] +/A << /S /GoTo /D (subsection.7.8) >> +>> +% 717 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] +<<<<<<< HEAD:docs/psblas-3.6.pdf /Rect [113.843 241.7 181.207 252.548] /A << /S /GoTo /D (section*.105) >> >> % 717 0 obj +======= +/Rect [113.843 403.019 263.327 413.867] +/A << /S /GoTo /D (subsection.7.9) >> +>> +% 718 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] +<<<<<<< HEAD:docs/psblas-3.6.pdf /Rect [113.843 230.984 178.938 239.63] /A << /S /GoTo /D (section*.106) >> >> % 718 0 obj +======= +/Rect [113.843 390.925 241.645 401.773] +/A << /S /GoTo /D (subsection.7.10) >> +>> +% 719 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] +<<<<<<< HEAD:docs/psblas-3.6.pdf /Rect [113.843 216.393 184.528 226.977] /A << /S /GoTo /D (section*.107) >> >> % 719 0 obj +======= +/Rect [113.843 378.83 267.824 389.679] +/A << /S /GoTo /D (subsection.7.11) >> +>> +% 720 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] +<<<<<<< HEAD:docs/psblas-3.6.pdf /Rect [98.899 195.249 234.475 204.16] /A << /S /GoTo /D (section.10) >> >> @@ -4222,44 +6480,69 @@ stream /Border[0 0 0]/H/I/C[1 0 0] /Rect [113.843 180.659 157.374 192.06] /A << /S /GoTo /D (section*.108) >> +======= +/Rect [113.843 366.736 263.95 377.584] +/A << /S /GoTo /D (subsection.7.12) >> +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> % 721 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] +<<<<<<< HEAD:docs/psblas-3.6.pdf /Rect [113.843 168.005 164.57 179.407] /A << /S /GoTo /D (section*.109) >> +======= +/Rect [113.843 354.642 332.914 365.49] +/A << /S /GoTo /D (subsection.7.13) >> +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> % 722 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] +<<<<<<< HEAD:docs/psblas-3.6.pdf /Rect [113.843 155.352 166.507 166.754] /A << /S /GoTo /D (section*.110) >> +======= +/Rect [113.843 342.548 331.253 353.396] +/A << /S /GoTo /D (subsection.7.14) >> +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> % 723 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] +<<<<<<< HEAD:docs/psblas-3.6.pdf /Rect [113.843 142.699 164.653 154.1] /A << /S /GoTo /D (section*.111) >> +======= +/Rect [113.843 330.454 304.16 341.302] +/A << /S /GoTo /D (subsection.7.15) >> +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> % 724 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] +<<<<<<< HEAD:docs/psblas-3.6.pdf /Rect [113.843 131.983 137.975 140.894] /A << /S /GoTo /D (section*.112) >> +======= +/Rect [113.843 318.36 232.664 329.208] +/A << /S /GoTo /D (subsection.7.16) >> +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> % 725 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] +<<<<<<< HEAD:docs/psblas-3.6.pdf /Rect [113.843 117.392 158.232 128.794] /A << /S /GoTo /D (section*.113) >> >> @@ -4316,6 +6599,271 @@ stream /Annots [ 737 0 R 738 0 R 739 0 R 740 0 R 741 0 R 742 0 R 743 0 R 744 0 R 745 0 R 746 0 R ] >> % 737 0 obj +======= +/Rect [113.843 306.265 243.014 317.114] +/A << /S /GoTo /D (subsection.7.17) >> +>> +% 726 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [98.899 284.116 190.188 294.964] +/A << /S /GoTo /D (section.8) >> +>> +% 727 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [113.843 272.022 190.102 282.87] +/A << /S /GoTo /D (subsection.8.1) >> +>> +% 728 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [113.843 259.927 178.451 270.776] +/A << /S /GoTo /D (subsection.8.2) >> +>> +% 729 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [113.843 247.833 225.043 258.681] +/A << /S /GoTo /D (subsection.8.3) >> +>> +% 730 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [113.843 235.739 211.953 246.587] +/A << /S /GoTo /D (subsection.8.4) >> +>> +% 731 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [98.899 215.527 156.061 224.438] +/A << /S /GoTo /D (section.9) >> +>> +<<<<<<< HEAD:docs/psblas-3.6.pdf +% 738 0 obj +======= +% 732 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [113.843 201.495 444.603 212.344] +/A << /S /GoTo /D (subsection.9.1) >> +>> +<<<<<<< HEAD:docs/psblas-3.6.pdf +% 739 0 obj +======= +% 742 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [98.899 189.54 201.182 200.388] +/A << /S /GoTo /D (subsection.9.1) >> +>> +% 733 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [113.843 177.446 444.603 188.294] +/A << /S /GoTo /D (subsection.9.2) >> +>> +% 743 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [98.899 167.428 167.835 176.339] +/A << /S /GoTo /D (subsection.9.2) >> +>> +% 734 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [113.843 153.397 444.603 164.245] +/A << /S /GoTo /D (subsection.9.3) >> +>> +% 744 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [98.899 143.379 202.455 152.29] +/A << /S /GoTo /D (subsection.9.3) >> +>> +% 735 0 obj +<< +/Type /Annot +/Subtype /Link +/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.4) >> +>> +% 745 0 obj +<< +/Type /Annot +/Subtype /Link +/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.4) >> +>> +% 740 0 obj +<< +/D [738 0 R /XYZ 98.895 753.953 null] +>> +% 737 0 obj +<< +/Font << /F8 585 0 R /F27 584 0 R >> +/ProcSet [ /PDF /Text ] +>> +% 758 0 obj +<< +/Type /Page +/Contents 759 0 R +/Resources 757 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 586 0 R +/Annots [ 736 0 R 761 0 R 747 0 R 762 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 ] +>> +% 736 0 obj +<< +/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.5) >> +>> +% 761 0 obj +<< +/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.5) >> +>> +% 747 0 obj +<< +/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.6) >> +>> +% 762 0 obj +<< +/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.6) >> +>> +% 748 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [149.709 647.349 285.284 656.26] +/A << /S /GoTo /D (section.10) >> +>> +% 749 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [164.653 633.457 333.243 644.305] +/A << /S /GoTo /D (subsection.10.1) >> +>> +% 750 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [164.653 621.502 330.116 632.35] +/A << /S /GoTo /D (subsection.10.2) >> +>> +% 751 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [164.653 609.547 379.901 620.395] +/A << /S /GoTo /D (subsection.10.3) >> +>> +% 752 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [164.653 597.591 426.117 608.44] +/A << /S /GoTo /D (subsection.10.4) >> +>> +% 753 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [164.653 585.636 351.01 596.484] +/A << /S /GoTo /D (subsection.10.5) >> +>> +% 754 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [164.653 573.681 314.618 584.529] +/A << /S /GoTo /D (subsection.10.6) >> +>> +% 755 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [149.709 553.7 257.299 562.611] +/A << /S /GoTo /D (section.11) >> +>> +% 756 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [164.653 539.808 391.237 550.656] +/A << /S /GoTo /D (subsection.11.1) >> +>> +% 760 0 obj +<< +/D [758 0 R /XYZ 149.705 753.953 null] +>> +% 757 0 obj +<< +/Font << /F8 585 0 R /F27 584 0 R >> +/ProcSet [ /PDF /Text ] +>> +% 774 0 obj +<< +/Type /Page +/Contents 775 0 R +/Resources 773 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 777 0 R +/Annots [ 763 0 R 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 ] +>> +% 763 0 obj << /Type /Annot /Subtype /Link @@ -4323,7 +6871,7 @@ stream /Rect [408.982 586.91 420.937 595.323] /A << /S /GoTo /D (cite.metcalf) >> >> -% 738 0 obj +% 764 0 obj << /Type /Annot /Subtype /Link @@ -4331,7 +6879,8 @@ stream /Rect [277.684 514.913 289.639 523.326] /A << /S /GoTo /D (cite.Sparse03) >> >> -% 739 0 obj +% 765 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << /Type /Annot /Subtype /Link @@ -4339,7 +6888,11 @@ stream /Rect [265.763 502.958 272.737 511.371] /A << /S /GoTo /D (cite.DesPat:11) >> >> +<<<<<<< HEAD:docs/psblas-3.6.pdf % 740 0 obj +======= +% 766 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << /Type /Annot /Subtype /Link @@ -4347,7 +6900,11 @@ stream /Rect [276.283 502.958 288.238 511.371] /A << /S /GoTo /D (cite.RouXiaXu:11) >> >> +<<<<<<< HEAD:docs/psblas-3.6.pdf % 741 0 obj +======= +% 767 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << /Type /Annot /Subtype /Link @@ -4355,7 +6912,11 @@ stream /Rect [210.166 442.916 222.121 451.329] /A << /S /GoTo /D (cite.machiels) >> >> +<<<<<<< HEAD:docs/psblas-3.6.pdf % 742 0 obj +======= +% 768 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << /Type /Annot /Subtype /Link @@ -4363,7 +6924,11 @@ stream /Rect [241.566 370.919 248.54 379.332] /A << /S /GoTo /D (cite.sblas97) >> >> +<<<<<<< HEAD:docs/psblas-3.6.pdf % 743 0 obj +======= +% 769 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << /Type /Annot /Subtype /Link @@ -4371,7 +6936,11 @@ stream /Rect [252.056 370.919 259.03 379.332] /A << /S /GoTo /D (cite.sblas02) >> >> +<<<<<<< HEAD:docs/psblas-3.6.pdf % 744 0 obj +======= +% 770 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << /Type /Annot /Subtype /Link @@ -4379,7 +6948,11 @@ stream /Rect [227.473 358.964 239.428 367.377] /A << /S /GoTo /D (cite.BLAS1) >> >> +<<<<<<< HEAD:docs/psblas-3.6.pdf % 745 0 obj +======= +% 771 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << /Type /Annot /Subtype /Link @@ -4387,7 +6960,11 @@ stream /Rect [243.524 358.964 250.498 367.377] /A << /S /GoTo /D (cite.BLAS2) >> >> +<<<<<<< HEAD:docs/psblas-3.6.pdf % 746 0 obj +======= +% 772 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << /Type /Annot /Subtype /Link @@ -4397,6 +6974,7 @@ stream >> % 7 0 obj << +<<<<<<< HEAD:docs/psblas-3.6.pdf /D [748 0 R /XYZ 99.895 716.092 null] >> % 747 0 obj @@ -4414,6 +6992,25 @@ stream /Annots [ 762 0 R 763 0 R 764 0 R ] >> % 772 0 obj +======= +/D [774 0 R /XYZ 99.895 716.092 null] +>> +% 773 0 obj +<< +/Font << /F16 582 0 R /F8 585 0 R /F17 776 0 R >> +/ProcSet [ /PDF /Text ] +>> +% 794 0 obj +<< +/Type /Page +/Contents 795 0 R +/Resources 793 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 777 0 R +/Annots [ 788 0 R 789 0 R 790 0 R ] +>> +% 798 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << /Producer (GPL Ghostscript 9.04) /CreationDate (D:20111215145523+01'00') @@ -4422,15 +7019,26 @@ stream /Creator (fig2dev Version 3.2 Patchlevel 5d) /Author (sfilippo@donald \(Salvatore Filippone\)) >> +<<<<<<< HEAD:docs/psblas-3.6.pdf % 773 0 obj +======= +% 799 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << /Type /ExtGState /OPM 1 >> +<<<<<<< HEAD:docs/psblas-3.6.pdf % 774 0 obj << /BaseFont /JEJNJE+Times-Roman /FontDescriptor 775 0 R +======= +% 800 0 obj +<< +/BaseFont /JEJNJE+Times-Roman +/FontDescriptor 801 0 R +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf /Type /Font /FirstChar 32 /LastChar 116 @@ -4438,7 +7046,11 @@ stream /Encoding /WinAnsiEncoding /Subtype /Type1 >> +<<<<<<< HEAD:docs/psblas-3.6.pdf % 775 0 obj +======= +% 801 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << /Type /FontDescriptor /FontName /JEJNJE+Times-Roman @@ -4452,9 +7064,15 @@ stream /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) +<<<<<<< HEAD:docs/psblas-3.6.pdf /FontFile3 776 0 R >> % 762 0 obj +======= +/FontFile3 802 0 R +>> +% 788 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << /Type /Annot /Subtype /Link @@ -4462,7 +7080,11 @@ stream /Rect [310.543 541.042 317.517 551.89] /A << /S /GoTo /D (figure.1) >> >> +<<<<<<< HEAD:docs/psblas-3.6.pdf % 763 0 obj +======= +% 789 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << /Type /Annot /Subtype /Link @@ -4470,7 +7092,11 @@ stream /Rect [446.018 471.248 452.992 479.661] /A << /S /GoTo /D (cite.BLACS) >> >> +<<<<<<< HEAD:docs/psblas-3.6.pdf % 764 0 obj +======= +% 790 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << /Type /Annot /Subtype /Link @@ -4480,6 +7106,7 @@ stream >> % 11 0 obj << +<<<<<<< HEAD:docs/psblas-3.6.pdf /D [768 0 R /XYZ 150.705 677.433 null] >> % 771 0 obj @@ -4502,6 +7129,30 @@ stream /Annots [ 766 0 R 778 0 R 779 0 R ] >> % 766 0 obj +======= +/D [794 0 R /XYZ 150.705 677.433 null] +>> +% 797 0 obj +<< +/D [794 0 R /XYZ 258.703 263.3 null] +>> +% 793 0 obj +<< +/Font << /F8 585 0 R /F16 582 0 R /F11 796 0 R >> +/XObject << /Im1 791 0 R >> +/ProcSet [ /PDF /Text ] +>> +% 807 0 obj +<< +/Type /Page +/Contents 808 0 R +/Resources 806 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 777 0 R +/Annots [ 792 0 R 804 0 R 805 0 R ] +>> +% 792 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << /Type /Annot /Subtype /Link @@ -4509,7 +7160,11 @@ stream /Rect [219.5 609.491 231.455 617.904] /A << /S /GoTo /D (cite.METIS) >> >> +<<<<<<< HEAD:docs/psblas-3.6.pdf % 778 0 obj +======= +% 804 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << /Type /Annot /Subtype /Link @@ -4517,7 +7172,11 @@ stream /Rect [210.854 546.467 217.316 558.506] /A << /S /GoTo /D (Hfootnote.1) >> >> +<<<<<<< HEAD:docs/psblas-3.6.pdf % 779 0 obj +======= +% 805 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << /Type /Annot /Subtype /Link @@ -4525,6 +7184,7 @@ stream /Rect [155.908 188.124 162.37 200.163] /A << /S /GoTo /D (Hfootnote.2) >> >> +<<<<<<< HEAD:docs/psblas-3.6.pdf % 783 0 obj << /D [781 0 R /XYZ 98.895 753.953 null] @@ -4556,23 +7216,68 @@ stream /Annots [ 793 0 R 794 0 R ] >> % 801 0 obj +======= +% 809 0 obj +<< +/D [807 0 R /XYZ 98.895 753.953 null] +>> +% 15 0 obj +<< +/D [807 0 R /XYZ 99.895 515.919 null] +>> +% 815 0 obj +<< +/D [807 0 R /XYZ 115.138 167.688 null] +>> +% 817 0 obj +<< +/D [807 0 R /XYZ 115.138 158.184 null] +>> +% 806 0 obj +<< +/Font << /F8 585 0 R /F17 776 0 R /F30 810 0 R /F7 811 0 R /F16 582 0 R /F11 796 0 R /F10 812 0 R /F14 813 0 R /F27 584 0 R /F32 814 0 R /F31 816 0 R >> +/ProcSet [ /PDF /Text ] +>> +% 823 0 obj +<< +/Type /Page +/Contents 824 0 R +/Resources 822 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 777 0 R +/Annots [ 819 0 R 820 0 R ] +>> +% 827 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << /Producer (ESP Ghostscript 815.03) /CreationDate (D:20070123225315) /ModDate (D:20070123225315) >> +<<<<<<< HEAD:docs/psblas-3.6.pdf % 802 0 obj +======= +% 828 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << /Type /ExtGState /OPM 1 >> +<<<<<<< HEAD:docs/psblas-3.6.pdf % 803 0 obj +======= +% 829 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << /BaseFont /Times-Roman /Type /Font /Subtype /Type1 >> +<<<<<<< HEAD:docs/psblas-3.6.pdf % 793 0 obj +======= +% 819 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << /Type /Annot /Subtype /Link @@ -4580,7 +7285,11 @@ stream /Rect [294.665 637.885 301.639 646.297] /A << /S /GoTo /D (cite.2007c) >> >> +<<<<<<< HEAD:docs/psblas-3.6.pdf % 794 0 obj +======= +% 820 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << /Type /Annot /Subtype /Link @@ -4588,6 +7297,7 @@ stream /Rect [305.735 637.885 312.709 646.297] /A << /S /GoTo /D (cite.2007d) >> >> +<<<<<<< HEAD:docs/psblas-3.6.pdf % 799 0 obj << /D [797 0 R /XYZ 149.705 753.953 null] @@ -4788,6 +7498,258 @@ endobj 851 0 obj << /Length 7473 +======= + +endstream +endobj +837 0 obj +<< +/Length 5462 +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf +>> +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 +<<<<<<< HEAD:docs/psblas-3.6.pdf +862 0 obj +======= +842 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf +<< +/Length 8659 +>> +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 +<<<<<<< HEAD:docs/psblas-3.6.pdf +870 0 obj +======= +856 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf +<< +/Length 7719 +>> +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 +<<<<<<< HEAD:docs/psblas-3.6.pdf +881 0 obj +======= +877 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf +<< +/Length 7473 >> stream 0 g 0 G @@ -4841,7 +7803,7 @@ ET endstream endobj -862 0 obj +888 0 obj << /Length 8464 >> @@ -4981,7 +7943,7 @@ ET endstream endobj -870 0 obj +896 0 obj << /Length 6827 >> @@ -5108,7 +8070,11 @@ ET endstream endobj -881 0 obj +<<<<<<< HEAD:docs/psblas-3.6.pdf +900 0 obj +======= +907 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << /Length 5178 >> @@ -5219,32 +8185,36 @@ ET endstream endobj -896 0 obj +<<<<<<< HEAD:docs/psblas-3.6.pdf +905 0 obj +======= +922 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << -/Length 5199 +/Length 5236 >> 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 +/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 166.827 687.78 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 170.264 687.58 Td [(lo)-32(cal)]TJ +/F27 9.9626 Tf 205.272 687.58 Td [(lo)-32(cal)]TJ ET q -1 0 0 1 194.025 687.78 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 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 +/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 0 g 0 G -/F30 9.9626 Tf -46.757 -18.548 Td [(nr)-525(=)-525(desc%get_local_rows\050\051)]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 0 -22.174 Td [(T)32(yp)-32(e:)]TJ 0 g 0 G @@ -5266,24 +8236,24 @@ BT 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 + [(,)-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 166.827 489.912 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 170.264 489.712 Td [(lo)-32(cal)]TJ +/F27 9.9626 Tf 205.272 489.712 Td [(lo)-32(cal)]TJ ET q -1 0 0 1 194.025 489.912 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 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 +/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 -46.757 -18.548 Td [(nc)-525(=)-525(desc%get_local_cols\050\051)]TJ +/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 @@ -5305,24 +8275,24 @@ BT 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 [(get)]TJ + [(,)-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 166.827 280.088 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 170.264 279.889 Td [(global)]TJ +/F27 9.9626 Tf 205.272 279.889 Td [(global)]TJ ET q -1 0 0 1 200.708 280.088 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 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 +/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 0 g 0 G -/F30 9.9626 Tf -53.44 -18.548 Td [(nr)-525(=)-525(desc%get_global_rows\050\051)]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 @@ -5348,32 +8318,32 @@ ET endstream endobj -900 0 obj +926 0 obj << -/Length 4312 +/Length 4435 >> stream 0 g 0 G 0 g 0 G BT -/F27 9.9626 Tf 99.895 706.129 Td [(get)]TJ +/F27 9.9626 Tf 99.895 706.129 Td [(3.1.5)-1150(get)]TJ ET q -1 0 0 1 116.018 706.328 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 119.455 706.129 Td [(global)]TJ +/F27 9.9626 Tf 154.462 706.129 Td [(global)]TJ ET q -1 0 0 1 149.899 706.328 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 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 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 0 g 0 G -/F30 9.9626 Tf -53.441 -18.505 Td [(nr)-525(=)-525(desc%get_global_cols\050\051)]TJ +/F30 9.9626 Tf -88.448 -18.505 Td [(nr)-525(=)-525(desc%get_global_cols\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 @@ -5391,24 +8361,24 @@ BT 0 g 0 G 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)-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 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 116.018 520.998 cm +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 -/F27 9.9626 Tf 119.455 520.799 Td [(global)]TJ +/F27 9.9626 Tf 154.462 520.799 Td [(global)]TJ ET q -1 0 0 1 149.899 520.998 cm +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 -/F27 9.9626 Tf 153.336 520.799 Td [(indices)-383(|)-384(Get)-383(v)32(ector)-383(of)-384(global)-383(indices)]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 0 g 0 G -/F30 9.9626 Tf -53.441 -18.505 Td [(myidx)-525(=)-525(desc%get_global_indices\050[owned]\051)]TJ +/F30 9.9626 Tf -88.448 -18.505 Td [(myidx)-525(=)-525(desc%get_global_indices\050[owned]\051)]TJ 0 g 0 G /F27 9.9626 Tf 0 -22.105 Td [(T)32(yp)-32(e:)]TJ 0 g 0 G @@ -5430,17 +8400,17 @@ BT 0 g 0 G 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)-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 +/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 267.673 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 267.474 Td [(con)32(text)-383(|)-384(Get)-383(comm)32(unication)-384(con)32(text)]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 -19.56 -18.505 Td [(ictxt)-525(=)-525(desc%get_context\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 -22.105 Td [(T)32(yp)-32(e:)]TJ 0 g 0 G @@ -5466,165 +8436,169 @@ ET endstream endobj -905 0 obj +<<<<<<< HEAD:docs/psblas-3.6.pdf +913 0 obj +======= +931 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << -/Length 4851 +/Length 4956 >> 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 +/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 -18.844 Td [(call)-1050(desc%clone\050descout,info\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 -22.65 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 -20.902 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 -20.902 Td [(desc)]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.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 +/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.605 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 -20.902 Td [(descout)]TJ + 0 -19.781 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 +/F27 9.9626 Tf -42.757 -19.78 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 -27.192 Td [(CNV)-383(|)-384(con)32(v)32(ert)-383(in)32(ternal)-384(storage)-383(format)]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 0 g 0 G -/F30 9.9626 Tf 0 -18.844 Td [(call)-1050(desc%cnv\050mold\051)]TJ +/F30 9.9626 Tf 0 -18.39 Td [(call)-1050(desc%cnv\050mold\051)]TJ 0 g 0 G -/F27 9.9626 Tf 0 -22.65 Td [(T)32(yp)-32(e:)]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 -/F27 9.9626 Tf -33.797 -20.902 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 -20.902 Td [(desc)]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 -/F27 9.9626 Tf -80.358 -32.858 Td [(mold)]TJ +/F27 9.9626 Tf -80.358 -31.736 Td [(mold)]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 +/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 411.8 355.452 cm +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 -/F30 9.9626 Tf 414.939 355.253 Td [(T)]TJ +/F30 9.9626 Tf 414.939 368.65 Td [(T)]TJ ET q -1 0 0 1 420.797 355.452 cm +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 -/F30 9.9626 Tf 423.935 355.253 Td [(base)]TJ +/F30 9.9626 Tf 423.935 368.65 Td [(base)]TJ ET q -1 0 0 1 445.484 355.452 cm +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 -/F30 9.9626 Tf 448.622 355.253 Td [(vect)]TJ +/F30 9.9626 Tf 448.622 368.65 Td [(vect)]TJ ET q -1 0 0 1 470.171 355.452 cm +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 -/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 +/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 168.641 293.411 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 172.078 293.212 Td [(cd)]TJ +/F27 9.9626 Tf 212.814 309.304 Td [(cd)]TJ ET q -1 0 0 1 184.223 293.411 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 187.66 293.212 Td [(get)]TJ +/F27 9.9626 Tf 228.396 309.304 Td [(get)]TJ ET q -1 0 0 1 203.782 293.411 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 207.22 293.212 Td [(large)]TJ +/F27 9.9626 Tf 247.955 309.304 Td [(large)]TJ ET q -1 0 0 1 232.357 293.411 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 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 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 -85.089 -18.844 Td [(ith)-525(=)-525(psb_cd_get_large_threshold\050\051)]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 -/F27 9.9626 Tf 0 -22.65 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 -20.902 Td [(On)-383(Return)]TJ +/F27 9.9626 Tf -33.797 -19.781 Td [(On)-383(Return)]TJ 0 g 0 G 0 g 0 G - 0 -20.903 Td [(F)96(unction)-384(v)64(alue)]TJ + 0 -19.781 Td [(F)96(unction)-384(v)64(alue)]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 +/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 168.641 182.921 cm +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 172.078 182.722 Td [(cd)]TJ +/F27 9.9626 Tf 212.814 192.008 Td [(cd)]TJ ET q -1 0 0 1 184.223 182.921 cm +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 187.66 182.722 Td [(set)]TJ +/F27 9.9626 Tf 228.396 192.008 Td [(set)]TJ ET q -1 0 0 1 202.573 182.921 cm +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 206.01 182.722 Td [(large)]TJ +/F27 9.9626 Tf 246.746 192.008 Td [(large)]TJ ET q -1 0 0 1 231.147 182.921 cm +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 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 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 0 g 0 G -/F30 9.9626 Tf -83.88 -18.844 Td [(call)-525(psb_cd_set_large_threshold\050ith\051)]TJ +/F30 9.9626 Tf -40.736 -18.389 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 +/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 [(Sync)28(hronous.)]TJ 0 g 0 G -/F27 9.9626 Tf -33.797 -20.902 Td [(On)-383(En)32(try)]TJ +/F27 9.9626 Tf -33.797 -19.78 Td [(On)-383(En)32(try)]TJ 0 g 0 G 0 g 0 G /F8 9.9626 Tf 166.874 -29.888 Td [(14)]TJ @@ -5633,330 +8607,19 @@ ET endstream endobj -913 0 obj -<< -/Length 9583 ->> -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 -ET -q -1 0 0 1 117.832 555.391 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 -ET -q -1 0 0 1 145.666 555.391 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 -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 -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 -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 -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 -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 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 -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 -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 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 -0 g 0 G -/F27 9.9626 Tf -267.377 -20.301 Td [(psb)]TJ -ET -q -1 0 0 1 117.832 413.286 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 -ET -q -1 0 0 1 151.872 413.286 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 -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 -ET -q -1 0 0 1 117.832 392.985 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 -ET -q -1 0 0 1 151.872 392.985 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 -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 -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 -BT -/F27 9.9626 Tf 121.269 372.485 Td [(comm)]TJ -ET -q -1 0 0 1 151.872 372.684 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 -ET -q -1 0 0 1 177.001 372.684 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 -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 -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 -0 g 0 G -/F27 9.9626 Tf -8.552 -20.207 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 -20.301 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 -20.3 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 -20.301 Td [(Z)]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 -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 -Q -BT -/F30 9.9626 Tf 424.32 188.353 Td [(T)]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 -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 +<<<<<<< HEAD:docs/psblas-3.6.pdf 921 0 obj +======= +832 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << -/Length 5360 +/Type /ObjStm +/N 100 +/First 874 +/Length 9084 >> stream +<<<<<<< HEAD:docs/psblas-3.6.pdf 0 g 0 G 0 g 0 G 0 g 0 G @@ -6129,9 +8792,33 @@ stream /MediaBox [0 0 595.276 841.89] /Parent 847 0 R /Annots [ 812 0 R ] +======= +825 0 826 57 19 114 822 170 836 329 833 471 834 617 838 764 835 820 841 925 +843 1039 23 1096 845 1152 846 1209 847 1266 848 1322 849 1379 850 1435 851 1490 852 1547 +840 1604 855 1734 839 1868 857 2016 858 2072 859 2128 860 2184 861 2239 862 2295 863 2351 +864 2407 865 2463 866 2519 867 2575 868 2631 869 2687 870 2743 871 2799 854 2856 876 2986 +853 3128 874 3280 878 3427 27 3484 879 3540 880 3597 881 3654 882 3711 883 3768 884 3825 +31 3882 875 3938 887 4081 885 4215 889 4362 35 4418 39 4473 890 4528 886 4585 895 4703 +891 4853 892 5000 893 5152 897 5304 898 5361 899 5418 900 5475 901 5532 902 5589 894 5646 +906 5738 903 5880 904 6032 908 6184 909 6240 910 6296 911 6352 912 6407 913 6463 914 6519 +915 6575 916 6631 917 6687 905 6744 921 6836 918 6978 919 7124 923 7270 43 7327 47 7383 +51 7439 55 7495 920 7551 925 7669 927 7783 59 7839 63 7894 67 7949 924 8004 930 8096 +% 825 0 obj +<< +/D [823 0 R /XYZ 149.705 753.953 null] +>> +% 826 0 obj +<< +/D [823 0 R /XYZ 303.562 347.015 null] +>> +% 19 0 obj +<< +/D [823 0 R /XYZ 150.705 272.271 null] +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> % 812 0 obj << +<<<<<<< HEAD:docs/psblas-3.6.pdf /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] @@ -6213,6 +8900,191 @@ stream /Annots [ 827 0 R 848 0 R ] >> % 827 0 obj +======= +/Font << /F27 584 0 R /F8 585 0 R /F14 813 0 R /F11 796 0 R /F10 812 0 R /F16 582 0 R >> +/XObject << /Im2 821 0 R >> +/ProcSet [ /PDF /Text ] +>> +% 836 0 obj +<< +/Type /Page +/Contents 837 0 R +/Resources 835 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 777 0 R +/Annots [ 833 0 R 834 0 R ] +>> +% 833 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) >> +>> +% 834 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) >> +>> +% 838 0 obj +<< +/D [836 0 R /XYZ 98.895 753.953 null] +>> +% 835 0 obj +<< +/Font << /F27 584 0 R /F8 585 0 R /F14 813 0 R /F30 810 0 R >> +/ProcSet [ /PDF /Text ] +>> +% 841 0 obj +<< +/Type /Page +/Contents 842 0 R +/Resources 840 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 777 0 R +>> +% 843 0 obj +<< +/D [841 0 R /XYZ 149.705 753.953 null] +>> +% 23 0 obj +<< +/D [841 0 R /XYZ 150.705 716.092 null] +>> +% 845 0 obj +<< +/D [841 0 R /XYZ 150.705 284.758 null] +>> +% 846 0 obj +<< +/D [841 0 R /XYZ 150.705 263.953 null] +>> +% 847 0 obj +<< +/D [841 0 R /XYZ 150.705 242.87 null] +>> +% 848 0 obj +<< +/D [841 0 R /XYZ 150.705 221.788 null] +>> +% 849 0 obj +<< +/D [841 0 R /XYZ 150.705 188.75 null] +>> +% 850 0 obj +<< +/D [841 0 R /XYZ 150.705 167.6 null] +>> +% 851 0 obj +<< +/D [841 0 R /XYZ 150.705 148.591 null] +>> +% 852 0 obj +<< +/D [841 0 R /XYZ 150.705 132.072 null] +>> +% 840 0 obj +<< +/Font << /F16 582 0 R /F8 585 0 R /F11 796 0 R /F30 810 0 R /F9 844 0 R /F17 776 0 R >> +/ProcSet [ /PDF /Text ] +>> +% 855 0 obj +<< +/Type /Page +/Contents 856 0 R +/Resources 854 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 873 0 R +/Annots [ 839 0 R ] +>> +% 839 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) >> +>> +% 857 0 obj +<< +/D [855 0 R /XYZ 98.895 753.953 null] +>> +% 858 0 obj +<< +/D [855 0 R /XYZ 99.895 716.092 null] +>> +% 859 0 obj +<< +/D [855 0 R /XYZ 99.895 686.739 null] +>> +% 860 0 obj +<< +/D [855 0 R /XYZ 99.895 618.93 null] +>> +% 861 0 obj +<< +/D [855 0 R /XYZ 99.895 596.257 null] +>> +% 862 0 obj +<< +/D [855 0 R /XYZ 99.895 573.861 null] +>> +% 863 0 obj +<< +/D [855 0 R /XYZ 99.895 539.509 null] +>> +% 864 0 obj +<< +/D [855 0 R /XYZ 99.895 517.113 null] +>> +% 865 0 obj +<< +/D [855 0 R /XYZ 99.895 494.716 null] +>> +% 866 0 obj +<< +/D [855 0 R /XYZ 99.895 469.986 null] +>> +% 867 0 obj +<< +/D [855 0 R /XYZ 99.895 440.855 null] +>> +% 868 0 obj +<< +/D [855 0 R /XYZ 99.895 411.448 null] +>> +% 869 0 obj +<< +/D [855 0 R /XYZ 99.895 393.995 null] +>> +% 870 0 obj +<< +/D [855 0 R /XYZ 99.895 376.819 null] +>> +% 871 0 obj +<< +/D [855 0 R /XYZ 115.138 139.255 null] +>> +% 854 0 obj +<< +/Font << /F8 585 0 R /F30 810 0 R /F7 811 0 R /F32 814 0 R /F31 816 0 R /F45 872 0 R >> +/ProcSet [ /PDF /Text ] +>> +% 876 0 obj +<< +/Type /Page +/Contents 877 0 R +/Resources 875 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 873 0 R +/Annots [ 853 0 R 874 0 R ] +>> +% 853 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << /Type /Annot /Subtype /Link @@ -6220,7 +9092,11 @@ stream /Rect [269.731 674.788 284.454 683.699] /A << /S /GoTo /D (subsection.2.3) >> >> +<<<<<<< HEAD:docs/psblas-3.6.pdf % 848 0 obj +======= +% 874 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << /Type /Annot /Subtype /Link @@ -6228,6 +9104,7 @@ stream /Rect [169.998 271.903 176.972 282.751] /A << /S /GoTo /D (section.3) >> >> +<<<<<<< HEAD:docs/psblas-3.6.pdf % 852 0 obj << /D [850 0 R /XYZ 149.705 753.953 null] @@ -6279,6 +9156,59 @@ stream /Annots [ 859 0 R ] >> % 859 0 obj +======= +% 878 0 obj +<< +/D [876 0 R /XYZ 149.705 753.953 null] +>> +% 27 0 obj +<< +/D [876 0 R /XYZ 150.705 716.092 null] +>> +% 879 0 obj +<< +/D [876 0 R /XYZ 150.705 671.799 null] +>> +% 880 0 obj +<< +/D [876 0 R /XYZ 150.705 649.383 null] +>> +% 881 0 obj +<< +/D [876 0 R /XYZ 150.705 576.158 null] +>> +% 882 0 obj +<< +/D [876 0 R /XYZ 150.705 530.385 null] +>> +% 883 0 obj +<< +/D [876 0 R /XYZ 150.705 497.951 null] +>> +% 884 0 obj +<< +/D [876 0 R /XYZ 150.705 478.303 null] +>> +% 31 0 obj +<< +/D [876 0 R /XYZ 150.705 424.511 null] +>> +% 875 0 obj +<< +/Font << /F27 584 0 R /F8 585 0 R /F11 796 0 R /F9 844 0 R /F30 810 0 R /F16 582 0 R /F17 776 0 R >> +/ProcSet [ /PDF /Text ] +>> +% 887 0 obj +<< +/Type /Page +/Contents 888 0 R +/Resources 886 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 873 0 R +/Annots [ 885 0 R ] +>> +% 885 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << /Type /Annot /Subtype /Link @@ -6286,6 +9216,7 @@ stream /Rect [269.318 174.287 276.292 185.135] /A << /S /GoTo /D (section.6) >> >> +<<<<<<< HEAD:docs/psblas-3.6.pdf % 863 0 obj << /D [861 0 R /XYZ 98.895 753.953 null] @@ -6317,6 +9248,39 @@ stream /Annots [ 865 0 R 866 0 R 867 0 R ] >> % 865 0 obj +======= +% 889 0 obj +<< +/D [887 0 R /XYZ 98.895 753.953 null] +>> +% 35 0 obj +<< +/D [887 0 R /XYZ 99.895 716.092 null] +>> +% 39 0 obj +<< +/D [887 0 R /XYZ 99.895 280.417 null] +>> +% 890 0 obj +<< +/D [887 0 R /XYZ 342.427 237.273 null] +>> +% 886 0 obj +<< +/Font << /F16 582 0 R /F8 585 0 R /F30 810 0 R /F27 584 0 R /F14 813 0 R >> +/ProcSet [ /PDF /Text ] +>> +% 895 0 obj +<< +/Type /Page +/Contents 896 0 R +/Resources 894 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 873 0 R +/Annots [ 891 0 R 892 0 R 893 0 R ] +>> +% 891 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << /Type /Annot /Subtype /Link @@ -6324,7 +9288,11 @@ stream /Rect [452.103 399.657 459.077 411.612] /A << /S /GoTo /D (section.6) >> >> +<<<<<<< HEAD:docs/psblas-3.6.pdf % 866 0 obj +======= +% 892 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << /Type /Annot /Subtype /Link @@ -6332,7 +9300,11 @@ stream /Rect [356.323 194.074 371.046 204.923] /A << /S /GoTo /D (subsection.3.3) >> >> +<<<<<<< HEAD:docs/psblas-3.6.pdf % 867 0 obj +======= +% 893 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << /Type /Annot /Subtype /Link @@ -6340,6 +9312,7 @@ stream /Rect [356.323 149.756 371.046 160.604] /A << /S /GoTo /D (subsection.3.3) >> >> +<<<<<<< HEAD:docs/psblas-3.6.pdf % 871 0 obj << /D [869 0 R /XYZ 149.705 753.953 null] @@ -6379,6 +9352,47 @@ stream /Annots [ 877 0 R 878 0 R ] >> % 877 0 obj +======= +% 897 0 obj +<< +/D [895 0 R /XYZ 149.705 753.953 null] +>> +% 898 0 obj +<< +/D [895 0 R /XYZ 150.705 294.274 null] +>> +% 899 0 obj +<< +/D [895 0 R /XYZ 150.705 278.093 null] +>> +% 900 0 obj +<< +/D [895 0 R /XYZ 150.705 261.911 null] +>> +% 901 0 obj +<< +/D [895 0 R /XYZ 150.705 245.729 null] +>> +% 902 0 obj +<< +/D [895 0 R /XYZ 150.705 229.547 null] +>> +% 894 0 obj +<< +/Font << /F14 813 0 R /F8 585 0 R /F27 584 0 R >> +/ProcSet [ /PDF /Text ] +>> +% 906 0 obj +<< +/Type /Page +/Contents 907 0 R +/Resources 905 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 873 0 R +/Annots [ 903 0 R 904 0 R ] +>> +% 903 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << /Type /Annot /Subtype /Link @@ -6386,7 +9400,11 @@ stream /Rect [305.513 611.433 320.236 622.281] /A << /S /GoTo /D (subsection.3.3) >> >> +<<<<<<< HEAD:docs/psblas-3.6.pdf % 878 0 obj +======= +% 904 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << /Type /Annot /Subtype /Link @@ -6394,6 +9412,7 @@ stream /Rect [305.513 564.905 320.236 575.753] /A << /S /GoTo /D (subsection.3.3) >> >> +<<<<<<< HEAD:docs/psblas-3.6.pdf % 882 0 obj << /D [880 0 R /XYZ 98.895 753.953 null] @@ -6449,6 +9468,63 @@ stream /Annots [ 892 0 R 893 0 R ] >> % 892 0 obj +======= +% 908 0 obj +<< +/D [906 0 R /XYZ 98.895 753.953 null] +>> +% 909 0 obj +<< +/D [906 0 R /XYZ 99.895 716.092 null] +>> +% 910 0 obj +<< +/D [906 0 R /XYZ 99.895 701.526 null] +>> +% 911 0 obj +<< +/D [906 0 R /XYZ 99.895 684.24 null] +>> +% 912 0 obj +<< +/D [906 0 R /XYZ 99.895 666.954 null] +>> +% 913 0 obj +<< +/D [906 0 R /XYZ 99.895 649.667 null] +>> +% 914 0 obj +<< +/D [906 0 R /XYZ 99.895 535.287 null] +>> +% 915 0 obj +<< +/D [906 0 R /XYZ 99.895 518.001 null] +>> +% 916 0 obj +<< +/D [906 0 R /XYZ 99.895 500.715 null] +>> +% 917 0 obj +<< +/D [906 0 R /XYZ 147.412 273.553 null] +>> +% 905 0 obj +<< +/Font << /F8 585 0 R /F27 584 0 R /F30 810 0 R >> +/ProcSet [ /PDF /Text ] +>> +% 921 0 obj +<< +/Type /Page +/Contents 922 0 R +/Resources 920 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 873 0 R +/Annots [ 918 0 R 919 0 R ] +>> +% 918 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << /Type /Annot /Subtype /Link @@ -6456,7 +9532,11 @@ stream /Rect [351.231 524.53 358.204 536.485] /A << /S /GoTo /D (section.1) >> >> +<<<<<<< HEAD:docs/psblas-3.6.pdf % 893 0 obj +======= +% 919 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << /Type /Annot /Subtype /Link @@ -6464,6 +9544,7 @@ stream /Rect [186.34 314.707 193.314 326.662] /A << /S /GoTo /D (section.1) >> >> +<<<<<<< HEAD:docs/psblas-3.6.pdf % 897 0 obj << /D [895 0 R /XYZ 149.705 753.953 null] @@ -6529,9 +9610,76 @@ stream % 906 0 obj << /D [904 0 R /XYZ 149.705 753.953 null] +======= +% 923 0 obj +<< +/D [921 0 R /XYZ 149.705 753.953 null] >> -% 71 0 obj +% 43 0 obj +<< +/D [921 0 R /XYZ 150.705 716.092 null] +>> +% 47 0 obj +<< +/D [921 0 R /XYZ 150.705 697.684 null] +>> +% 51 0 obj +<< +/D [921 0 R /XYZ 150.705 499.816 null] +>> +% 55 0 obj +<< +/D [921 0 R /XYZ 150.705 289.993 null] +>> +% 920 0 obj +<< +/Font << /F27 584 0 R /F30 810 0 R /F8 585 0 R /F14 813 0 R /F10 812 0 R >> +/ProcSet [ /PDF /Text ] +>> +% 925 0 obj +<< +/Type /Page +/Contents 926 0 R +/Resources 924 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 928 0 R +>> +% 927 0 obj +<< +/D [925 0 R /XYZ 98.895 753.953 null] +>> +% 59 0 obj +<< +/D [925 0 R /XYZ 99.895 716.092 null] +>> +% 63 0 obj +<< +/D [925 0 R /XYZ 99.895 530.879 null] +>> +% 67 0 obj +<< +/D [925 0 R /XYZ 99.895 277.278 null] +>> +% 924 0 obj +<< +/Font << /F27 584 0 R /F30 810 0 R /F8 585 0 R >> +/ProcSet [ /PDF /Text ] +>> +% 930 0 obj +<< +/Type /Page +/Contents 931 0 R +/Resources 929 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 928 0 R +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf +>> + +endstream +endobj +937 0 obj << +<<<<<<< HEAD:docs/psblas-3.6.pdf /D [904 0 R /XYZ 150.705 718.084 null] >> % 75 0 obj @@ -6721,369 +9869,1050 @@ endobj 931 0 obj << /Length 3707 +======= +/Length 5918 +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> 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 -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 -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.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 g 0 G 0 g 0 G - 0 -22.687 Td [(F)96(unction)-384(v)64(alue)]TJ +BT +/F27 9.9626 Tf 99.895 706.129 Td [(ith)]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 +/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 166.827 517.148 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 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 +/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 -19.559 -19.675 Td [(write\050*,*\051)-525(a%get_fmt\050\051)]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 -23.988 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.687 Td [(On)-383(En)32(try)]TJ -0 g 0 G -0 g 0 G - 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.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 +/F27 9.9626 Tf -33.797 -19.757 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 -19.756 Td [(F)96(unction)-384(v)64(alue)]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 -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 -Q -BT -/F27 9.9626 Tf 162.531 315.813 Td [(bld,)-383(is)]TJ +/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 q -1 0 0 1 193.834 316.012 cm +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 197.271 315.813 Td [(up)-32(d,)-383(is)]TJ +/F27 9.9626 Tf 158.982 457.947 Td [(p)]TJ ET q -1 0 0 1 232.075 316.012 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 235.512 315.813 Td [(asb)-383(|)-384(Status)-383(c)32(hec)32(k)]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 -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 +/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 0 -23.989 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 -22.687 Td [(On)-383(En)32(try)]TJ +/F27 9.9626 Tf -33.797 -19.756 Td [(On)-383(En)32(try)]TJ 0 g 0 G 0 g 0 G - 0 -22.686 Td [(a)]TJ + 0 -19.757 Td [(list)]TJ +0 g 0 G +/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 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 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 -/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 +/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 0 -21.496 Td [(T)32(yp)-32(e:)]TJ 0 g 0 G - 0 -22.686 Td [(F)96(unction)-384(v)64(alue)]TJ +/F8 9.9626 Tf 33.797 0 Td [(Sync)28(hronous.)]TJ +0 g 0 G +/F27 9.9626 Tf -33.797 -19.756 Td [(On)-383(En)32(try)]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 -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 + -147.253 -29.888 Td [(15)]TJ 0 g 0 G ET endstream endobj +<<<<<<< HEAD:docs/psblas-3.6.pdf 935 0 obj +======= +944 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << -/Length 4601 +/Length 9167 >> stream 0 g 0 G 0 g 0 G +0 g 0 G BT -/F27 9.9626 Tf 99.895 706.129 Td [(is)]TJ +/F27 9.9626 Tf 150.705 706.129 Td [(On)-383(Return)]TJ +0 g 0 G +0 g 0 G + 0 -19.686 Td [(iprc)]TJ +0 g 0 G +/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 q -1 0 0 1 108.284 706.328 cm +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 111.722 706.129 Td [(lo)32(w)32(er,)-383(is)]TJ +/F27 9.9626 Tf 172.078 525.302 Td [(none)]TJ ET q -1 0 0 1 153.63 706.328 cm +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 -/F27 9.9626 Tf 157.068 706.129 Td [(upp)-32(er,)-383(is)]TJ +/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 201.841 706.328 cm +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 205.278 706.129 Td [(triangle,)-383(i)-1(s)]TJ +/F27 9.9626 Tf 172.078 505.617 Td [(ro)-32(ot)]TJ ET q -1 0 0 1 259.121 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 -BT -/F27 9.9626 Tf 262.558 706.129 Td [(unit)-383(|)-384(F)96(ormat)-383(c)32(hec)32(k)]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 +BT +/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 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 172.078 485.931 Td [(nohalo)]TJ +ET +q +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 - 0 -21.34 Td [(a)]TJ +BT +/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 -/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 +/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 - -57.286 -34.934 Td [(On)-383(Return)]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 -51.325 -19.686 Td [(psb)]TJ +ET +q +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 172.078 446.56 Td [(sum)]TJ +ET +q +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 - 0 -21.341 Td [(F)96(unction)-384(v)64(alue)]TJ +BT +/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 -/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 +/F27 9.9626 Tf -50.911 -19.685 Td [(psb)]TJ +ET +q +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 172.078 426.875 Td [(a)32(vg)]TJ +ET +q +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 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 -/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 +/F27 9.9626 Tf -47.506 -19.685 Td [(psb)]TJ +ET +q +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 172.078 407.19 Td [(comm)]TJ +ET +q +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 206.118 407.19 Td [(halo)]TJ +ET +q +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 -/F27 9.9626 Tf 0 -22.979 Td [(T)32(yp)-32(e:)]TJ +BT +/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 -/F8 9.9626 Tf 33.797 0 Td [(Async)28(hronous.)]TJ +/F27 9.9626 Tf -267.376 -19.686 Td [(psb)]TJ +ET +q +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 172.078 387.504 Td [(comm)]TJ +ET +q +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 206.118 387.504 Td [(ext)]TJ +ET +q +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 -/F27 9.9626 Tf -33.797 -21.34 Td [(On)-383(En)32(try)]TJ +BT +/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 -257.054 -19.685 Td [(psb)]TJ +ET +q +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 172.078 367.819 Td [(comm)]TJ +ET +q +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 206.118 367.819 Td [(o)32(vr)]TJ +ET +q +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 - 0 -21.341 Td [(a)]TJ +BT +/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 -/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 +/F27 9.9626 Tf -273.167 -19.685 Td [(psb)]TJ +ET +q +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 172.078 348.134 Td [(comm)]TJ +ET +q +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 206.118 348.134 Td [(mo)32(v)]TJ +ET +q +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 -/F27 9.9626 Tf -80.359 -33.295 Td [(t)32(yp)-32(e)]TJ +BT +/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 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 190.814 301.959 Td [(Tspmat)]TJ +ET +q +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 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 -/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 + [(])-346(as)-347(detailed)-347(in)-347([)]TJ +1 0 0 rg 1 0 0 RG + [(11)]TJ 0 g 0 G -/F27 9.9626 Tf -24.907 -21.34 Td [(mold)]TJ + [(])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 -/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 + [-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 -24.907 -21.34 Td [(dupl)]TJ +/F27 9.9626 Tf -8.551 -19.445 Td [(S)]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 11.346 0 Td [(Single)-333(precision)-334(real;)]TJ 0 g 0 G -/F27 9.9626 Tf -24.907 -22.979 Td [(On)-383(Return)]TJ +/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 - 0 -21.34 Td [(b,a)]TJ +/F27 9.9626 Tf -13.768 -19.686 Td [(C)]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 13.256 0 Td [(Single)-333(precision)-334(complex;)]TJ 0 g 0 G -/F27 9.9626 Tf -185.305 -21.34 Td [(info)]TJ +/F27 9.9626 Tf -13.256 -19.685 Td [(Z)]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 +/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 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 475.13 168.146 Td [(T)]TJ +ET +q +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 484.126 168.146 Td [(base)]TJ +ET +q +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 508.813 168.146 Td [(sparse)]TJ +ET +q +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 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 - 166.875 -29.888 Td [(19)]TJ + 166.874 -29.888 Td [(16)]TJ 0 g 0 G ET endstream endobj +<<<<<<< HEAD:docs/psblas-3.6.pdf 940 0 obj +======= +952 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << -/Length 4076 +/Length 5963 >> 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 +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 -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 - 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 +/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 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 +/F8 9.9626 Tf 24.554 0 Td [(Co)-28(ordinate)-333(storage;)]TJ 0 g 0 G -/F27 9.9626 Tf -24.907 -22.118 Td [(rscale,cscale)]TJ +/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 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 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 +/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 -65.202 -24.111 Td [(On)-383(Return)]TJ +/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 - 0 -22.118 Td [(b)]TJ +/F27 9.9626 Tf -24.907 -20.183 Td [(Assem)32(bled:)]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 +/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 -185.305 -22.118 Td [(info)]TJ +/F27 9.9626 Tf -24.907 -20.183 Td [(Up)-32(date:)]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 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 176.852 371.924 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 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 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 -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 -54.567 -18.51 Td [(nr)-525(=)-525(a%get_nrows\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 -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 -22.119 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 -22.118 Td [(a)]TJ + 0 -20.184 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 +/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 -80.358 -35.518 Td [(On)-383(Return)]TJ + -57.286 -34.067 Td [(On)-383(Return)]TJ 0 g 0 G 0 g 0 G - 0 -22.119 Td [(a)]TJ + 0 -20.183 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(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 -/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 0 g 0 G -/F27 9.9626 Tf -185.304 -22.118 Td [(info)]TJ +/F30 9.9626 Tf -54.567 -18.51 Td [(nc)-525(=)-525(a%get_ncols\050\051)]TJ 0 g 0 G -/F8 9.9626 Tf 23.758 0 Td [(Return)-333(co)-28(de.)]TJ +/F27 9.9626 Tf 0 -22.111 Td [(T)32(yp)-32(e:)]TJ 0 g 0 G - 143.116 -29.888 Td [(20)]TJ +/F8 9.9626 Tf 33.797 0 Td [(Async)28(hronous.)]TJ +0 g 0 G +/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.875 -29.888 Td [(17)]TJ 0 g 0 G ET endstream endobj +<<<<<<< HEAD:docs/psblas-3.6.pdf 944 0 obj +======= +956 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << -/Length 4032 +/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 [(get)]TJ +/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 [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 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 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 116.018 706.328 cm +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 119.455 706.129 Td [(diag)-383(|)-384(Get)-383(main)-383(diagonal)]TJ +/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 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 -35.007 -20.554 Td [(nz)-525(=)-525(a%get_nnzeros\050\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 -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 -19.878 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 -19.877 Td [(a)]TJ + 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.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 +/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 -/F27 9.9626 Tf -80.359 -33.753 Td [(On)-383(Return)]TJ + -57.285 -37.362 Td [(On)-383(Return)]TJ 0 g 0 G 0 g 0 G - 0 -19.878 Td [(d)]TJ + 0 -24.577 Td [(F)96(unction)-384(v)64(alue)]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 +/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 -/F27 9.9626 Tf -24.907 -19.877 Td [(info)]TJ +/F8 9.9626 Tf 12.176 -23.414 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 -25.876 Td [(clip)]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 118.405 471.307 cm +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 121.842 471.107 Td [(diag)-383(|)-384(Cut)-383(out)-383(main)-384(diagonal)]TJ +/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 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 +/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 -104.248 -19.83 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 -19.877 Td [(On)-383(En)32(try)]TJ -0 g 0 G +/F27 9.9626 Tf -33.797 -24.577 Td [(On)-383(En)32(try)]TJ 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 -24.577 Td [(a)]TJ 0 g 0 G -/F27 9.9626 Tf -80.359 -33.754 Td [(On)-383(Return)]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.285 -37.362 Td [(On)-383(Return)]TJ 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 + 0 -24.577 Td [(F)96(unction)-384(v)64(alue)]TJ 0 g 0 G -/F27 9.9626 Tf -185.305 -19.878 Td [(info)]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 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 + 59.361 -29.888 Td [(18)]TJ 0 g 0 G +ET + +endstream +endobj +<<<<<<< HEAD:docs/psblas-3.6.pdf +948 0 obj +======= +961 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf +<< +/Length 3749 +>> +stream +0 g 0 G +0 g 0 G +BT +/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 0 -19.674 Td [(memory_size)-525(=)-525(a%sizeof\050\051)]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.955 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 +0 g 0 G + 0 -22.687 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 -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 -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.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 -22.687 Td [(On)-383(En)32(try)]TJ +0 g 0 G +0 g 0 G + 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 + -57.286 -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.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 143.292 316.012 cm +[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S +Q +BT +/F27 9.9626 Tf 146.729 315.813 Td [(bld,)-383(is)]TJ +ET +q +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 +/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 +0 g 0 G +/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 +/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 +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.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 + 141.968 -29.888 Td [(19)]TJ +0 g 0 G +ET + +endstream +endobj +<<<<<<< HEAD:docs/psblas-3.6.pdf +954 0 obj +======= +966 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf +<< +/Length 4632 +>> +stream +0 g 0 G +0 g 0 G +BT +/F27 9.9626 Tf 150.705 706.129 Td [(3.2.9)-1150(is)]TJ +ET +q +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 +/F27 9.9626 Tf 197.538 706.129 Td [(lo)32(w)32(er,)-384(is)]TJ +ET +q +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 +/F27 9.9626 Tf 242.884 706.129 Td [(upp)-32(er,)-383(is)]TJ +ET +q +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 +/F27 9.9626 Tf 291.095 706.129 Td [(triangle,)-383(i)-1(s)]TJ +ET +q +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 +/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 +0 g 0 G +/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 +/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.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 -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.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 +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 +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.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 +/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 +<<<<<<< HEAD:docs/psblas-3.6.pdf +960 0 obj +======= +970 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf +<< +/Length 4114 +>> +stream +0 g 0 G +0 g 0 G +BT +/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 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 +/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)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 -34.073 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.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.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 -24.111 Td [(On)-383(Return)]TJ +0 g 0 G +0 g 0 G + 0 -22.118 Td [(b)]TJ +0 g 0 G +/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 +/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 166.779 371.924 cm +[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S +Q +BT +/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 +0 g 0 G +/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 0 -24.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 -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.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 -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.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 + 143.117 -29.888 Td [(21)]TJ +0 g 0 G +ET + +endstream +endobj +<<<<<<< HEAD:docs/psblas-3.6.pdf +966 0 obj +======= +974 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf +<< +/Length 4061 +>> +stream +0 g 0 G +0 g 0 G +BT +/F27 9.9626 Tf 150.705 706.129 Td [(3.2.13)-1150(get)]TJ +ET +q +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 +/F27 9.9626 Tf 211 706.129 Td [(diag)-383(|)-384(Get)-383(main)-383(dia)-1(gonal)]TJ +0 g 0 G +0 g 0 G +/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 +/F8 9.9626 Tf 33.797 0 Td [(Async)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 +/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 209.95 471.307 cm +[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S +Q +BT +/F27 9.9626 Tf 213.387 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 -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 -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 @@ -7092,54 +10921,58 @@ BT /F27 9.9626 Tf -33.797 -19.877 Td [(On)-383(En)32(try)]TJ 0 g 0 G 0 g 0 G -/F8 9.9626 Tf 166.875 -29.888 Td [(21)]TJ +/F8 9.9626 Tf 166.874 -29.888 Td [(22)]TJ 0 g 0 G ET endstream endobj -948 0 obj +<<<<<<< HEAD:docs/psblas-3.6.pdf +974 0 obj +======= +978 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << -/Length 5513 +/Length 5497 >> 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 +/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.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 +/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.358 -30.78 Td [(diag)]TJ +/F27 9.9626 Tf -80.359 -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 +/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.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 +/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.906 -18.824 Td [(rscale,cscale)]TJ +/F27 9.9626 Tf -24.907 -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 +/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.202 -19.165 Td [(On)-383(Return)]TJ +/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)-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 +/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.304 -18.824 Td [(u)]TJ +/F27 9.9626 Tf -185.305 -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 +/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.304 -18.825 Td [(info)]TJ +/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 [(triu)-383(|)-384(Return)-383(the)-383(upp)-32(er)-384(triangle)]TJ +/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.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 +/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 @@ -7150,74 +10983,112 @@ BT 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 +/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 -/F27 9.9626 Tf -80.358 -30.78 Td [(diag)]TJ +/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 -/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 +/F27 9.9626 Tf -64.84 -18.824 Td [(imin,imax,jmin,jma)-1(x)]TJ 0 g 0 G -/F27 9.9626 Tf -64.84 -18.824 Td [(imin,imax,jmin,jmax)]TJ +<<<<<<< HEAD:docs/psblas-3.6.pdf +/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 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 +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 +Q +BT +/F30 9.9626 Tf 327.829 168.146 Td [(prec)]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 +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 +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 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 +ET + +endstream +endobj +980 0 obj +<< +/Length 3656 +>> +stream +======= +/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 +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 0 g 0 G -/F27 9.9626 Tf -24.906 -18.824 Td [(rscale,cscale)]TJ +/F27 9.9626 Tf -24.907 -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 +/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.202 -19.165 Td [(On)-383(Return)]TJ +/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.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 +/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.304 -18.824 Td [(l)]TJ +/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)-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 +/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.304 -18.824 Td [(info)]TJ +/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.116 -29.888 Td [(22)]TJ + 143.117 -29.888 Td [(23)]TJ 0 g 0 G ET endstream endobj -954 0 obj +984 0 obj << -/Length 7706 +/Length 7723 >> stream 0 g 0 G 0 g 0 G BT -/F27 9.9626 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 117.832 706.328 cm +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 121.269 706.129 Td [(set)]TJ +/F27 9.9626 Tf 212.814 706.129 Td [(set)]TJ ET q -1 0 0 1 136.182 706.328 cm +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 139.619 706.129 Td [(mat)]TJ +/F27 9.9626 Tf 231.165 706.129 Td [(mat)]TJ ET q -1 0 0 1 159.879 706.328 cm +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 -/F27 9.9626 Tf 163.316 706.129 Td [(default)-383(|)-384(Set)-383(default)-383(storage)-384(format)]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 -63.421 -18.389 Td [(call)-1050(psb_set_mat_default\050a\051)]TJ +/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 @@ -7228,7 +11099,7 @@ BT 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 +/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 @@ -7240,246 +11111,286 @@ BT /F27 9.9626 Tf -33.797 -19.532 Td [(On)-383(En)32(try)]TJ 0 g 0 G 0 g 0 G +<<<<<<< HEAD:docs/psblas-3.6.pdf +ET + +endstream +endobj +985 0 obj +<< +/Length 158 +>> +stream +======= 0 -19.532 Td [(a)]TJ +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 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 +/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.359 -32.89 Td [(On)-383(Return)]TJ +/F27 9.9626 Tf -80.358 -32.89 Td [(On)-383(Return)]TJ 0 g 0 G 0 g 0 G +<<<<<<< HEAD:docs/psblas-3.6.pdf +ET + +endstream +endobj +996 0 obj +<< +/Length 7361 +>> +stream +======= 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 +/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.347 -19.532 Td [(info)]TJ +/F27 9.9626 Tf -11.346 -19.532 Td [(info)]TJ +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 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 +/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 117.832 371.89 cm +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 -/F27 9.9626 Tf 121.269 371.691 Td [(dupl)]TJ +/F27 9.9626 Tf 172.078 371.691 Td [(dupl)]TJ ET q -1 0 0 1 144.234 371.89 cm +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 -/F27 9.9626 Tf 147.671 371.691 Td [(o)32(vwrt)]TJ +/F27 9.9626 Tf 198.48 371.691 Td [(o)32(vwrt)]TJ ET q -1 0 0 1 177.264 371.89 cm +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 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 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.907 -19.532 Td [(psb)]TJ +/F27 9.9626 Tf -24.906 -19.532 Td [(psb)]TJ ET q -1 0 0 1 117.832 340.403 cm +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 -/F27 9.9626 Tf 121.269 340.204 Td [(dupl)]TJ +/F27 9.9626 Tf 172.078 340.204 Td [(dupl)]TJ ET q -1 0 0 1 144.234 340.403 cm +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 -/F27 9.9626 Tf 147.671 340.204 Td [(add)]TJ +/F27 9.9626 Tf 198.48 340.204 Td [(add)]TJ ET q -1 0 0 1 166.658 340.403 cm +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 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 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 117.832 320.871 cm +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 BT -/F27 9.9626 Tf 121.269 320.672 Td [(dupl)]TJ +/F27 9.9626 Tf 172.078 320.672 Td [(dupl)]TJ ET q -1 0 0 1 144.234 320.871 cm +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 147.671 320.672 Td [(err)]TJ +/F27 9.9626 Tf 198.48 320.672 Td [(err)]TJ ET q -1 0 0 1 163.046 320.871 cm +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 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 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 -/F27 9.9626 Tf -71.57 -19.532 Td [(psb)]TJ +/F27 9.9626 Tf -71.569 -19.532 Td [(psb)]TJ ET q -1 0 0 1 117.832 301.339 cm +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 -/F27 9.9626 Tf 121.269 301.14 Td [(up)-32(d)]TJ +/F27 9.9626 Tf 172.078 301.14 Td [(up)-32(d)]TJ ET q -1 0 0 1 141.37 301.339 cm +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 -/F27 9.9626 Tf 144.807 301.14 Td [(d\015t)]TJ +/F27 9.9626 Tf 195.616 301.14 Td [(d\015t)]TJ ET q -1 0 0 1 162.68 301.339 cm +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 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 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 -/F27 9.9626 Tf -71.203 -19.533 Td [(psb)]TJ +/F27 9.9626 Tf -71.202 -19.533 Td [(psb)]TJ ET q -1 0 0 1 117.832 281.807 cm +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 -/F27 9.9626 Tf 121.269 281.607 Td [(up)-32(d)]TJ +/F27 9.9626 Tf 172.078 281.607 Td [(up)-32(d)]TJ ET q -1 0 0 1 141.37 281.807 cm +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 -/F27 9.9626 Tf 144.807 281.607 Td [(src)32(h)]TJ +/F27 9.9626 Tf 195.616 281.607 Td [(src)32(h)]TJ ET q -1 0 0 1 165.87 281.807 cm +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 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 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 -74.394 -19.532 Td [(psb)]TJ +/F27 9.9626 Tf -74.393 -19.532 Td [(psb)]TJ ET q -1 0 0 1 117.832 262.275 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 121.269 262.075 Td [(up)-32(d)]TJ +/F27 9.9626 Tf 172.078 262.075 Td [(up)-32(d)]TJ ET +<<<<<<< HEAD:docs/psblas-3.6.pdf + +endstream +endobj +1002 0 obj +<< +/Length 2655 +>> +stream +0 g 0 G +======= q -1 0 0 1 141.37 262.275 cm +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 -/F27 9.9626 Tf 144.807 262.075 Td [(p)-32(erm)]TJ +/F27 9.9626 Tf 195.616 262.075 Td [(p)-32(erm)]TJ ET q -1 0 0 1 171.694 262.275 cm +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 +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 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 +/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 137.47 204.211 cm +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 -/F30 9.9626 Tf 140.608 204.012 Td [(T)]TJ +/F30 9.9626 Tf 191.417 204.012 Td [(T)]TJ ET q -1 0 0 1 146.466 204.211 cm +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 -/F30 9.9626 Tf 149.604 204.012 Td [(vect)]TJ +/F30 9.9626 Tf 200.414 204.012 Td [(vect)]TJ ET q -1 0 0 1 171.153 204.211 cm +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 -/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.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 358.409 192.256 cm +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 -/F30 9.9626 Tf 361.547 192.057 Td [(T)]TJ +/F30 9.9626 Tf 412.357 192.057 Td [(T)]TJ ET q -1 0 0 1 367.405 192.256 cm +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 -/F30 9.9626 Tf 370.543 192.057 Td [(base)]TJ +/F30 9.9626 Tf 421.353 192.057 Td [(base)]TJ ET q -1 0 0 1 392.092 192.256 cm +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 -/F30 9.9626 Tf 395.231 192.057 Td [(vect)]TJ +/F30 9.9626 Tf 446.04 192.057 Td [(vect)]TJ ET q -1 0 0 1 416.779 192.256 cm +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 -/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 +/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 - [-304(6)]TJ + [-303(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 + [(.)-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 - [-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 + [-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 - 166.875 -29.888 Td [(23)]TJ + 166.874 -29.888 Td [(24)]TJ 0 g 0 G ET endstream endobj -960 0 obj +<<<<<<< HEAD:docs/psblas-3.6.pdf +1011 0 obj +======= +990 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << -/Length 3700 +/Length 3718 >> 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 +/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.346 0 Td [(Single)-333(precision)-334(real;)]TJ +/F8 9.9626 Tf 11.347 0 Td [(Single)-333(precision)-334(real;)]TJ 0 g 0 G -/F27 9.9626 Tf -11.346 -21.083 Td [(D)]TJ +/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 @@ -7489,7 +11400,7 @@ BT 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)-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 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 @@ -7497,20 +11408,20 @@ BT 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)-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 -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 [(get)]TJ +/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 166.827 362.408 cm +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 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 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 -19.559 -18.927 Td [(nr)-525(=)-525(v%get_nrows\050\051)]TJ +/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 @@ -7521,14 +11432,14 @@ BT 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.878 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ +/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.285 -34.741 Td [(On)-383(Return)]TJ + -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.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(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 @@ -7540,36 +11451,36 @@ BT /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.874 -29.888 Td [(24)]TJ +/F8 9.9626 Tf 166.875 -29.888 Td [(25)]TJ 0 g 0 G ET endstream endobj -966 0 obj +997 0 obj << -/Length 3837 +/Length 3840 >> 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 [(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 +/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.286 -37.007 Td [(On)-383(Return)]TJ + -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.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(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.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 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.231 -25.051 Td [(T)32(yp)-32(e:)]TJ +/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 @@ -7578,60 +11489,60 @@ BT 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.879 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ +/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.286 -36.059 Td [(alpha)]TJ + -57.285 -36.059 Td [(alpha)]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 +/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.907 -24.104 Td [(\014rst,last)]TJ +/F27 9.9626 Tf -24.906 -24.104 Td [(\014rst,last)]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 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.907 -24.104 Td [(v)32(ect)]TJ +/F27 9.9626 Tf -24.906 -24.104 Td [(v)32(ect)]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 +/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.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 + [(.)]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.879 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ +/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 [(25)]TJ +/F8 9.9626 Tf 109.589 -41.843 Td [(26)]TJ 0 g 0 G ET endstream endobj -974 0 obj +1004 0 obj << -/Length 4652 +/Length 4654 >> stream 0 g 0 G 0 g 0 G BT -/F27 9.9626 Tf 150.705 706.129 Td [(get)]TJ +/F27 9.9626 Tf 99.895 706.129 Td [(3.3.5)-1150(get)]TJ ET q -1 0 0 1 166.827 706.328 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 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 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 -19.559 -19.197 Td [(extv)-525(=)-525(v%get_vect\050[n]\051)]TJ +/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 @@ -7642,18 +11553,18 @@ BT 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.878 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ +/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.285 -33.615 Td [(n)]TJ + -57.286 -33.615 Td [(n)]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 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.094 -35.174 Td [(On)-383(Return)]TJ +/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.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 [(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 @@ -7667,46 +11578,123 @@ BT 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.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 +/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.358 -35.174 Td [(On)-383(Return)]TJ +/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)-333(input)-334(ob)-55(ject.)]TJ +/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(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 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 324.691 168.346 cm +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 327.829 168.146 Td [(prec)]TJ +/F30 9.9626 Tf 277.019 168.146 Td [(prec)]TJ ET q -1 0 0 1 349.378 168.346 cm +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 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 +/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.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 + [(.)-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.874 -29.888 Td [(26)]TJ + 166.875 -29.888 Td [(27)]TJ 0 g 0 G ET endstream endobj -980 0 obj +<<<<<<< HEAD:docs/psblas-3.6.pdf +923 0 obj << -/Length 3656 +/Type /ObjStm +/N 100 +/First 889 +/Length 10064 +>> +stream +95 0 99 56 103 112 919 169 925 261 927 375 107 431 928 487 111 543 924 599 +930 691 932 805 115 862 119 919 123 976 929 1033 934 1125 936 1239 127 1295 131 1351 +933 1407 939 1499 941 1613 135 1670 139 1727 938 1783 943 1875 945 1989 143 2045 147 2101 +151 2157 942 2213 947 2305 949 2419 155 2476 946 2533 953 2625 950 2767 951 2914 955 3060 +159 3116 163 3172 167 3228 171 3284 956 3340 952 3397 959 3502 961 3616 957 3673 175 3730 +179 3787 183 3844 958 3901 965 3993 962 4135 963 4280 967 4425 187 4481 964 4537 973 4629 +970 4763 975 4909 191 4966 195 5023 199 5080 976 5137 972 5194 979 5312 971 5446 981 5593 +977 5649 204 5706 978 5762 984 5880 986 5994 208 6051 983 6108 995 6187 987 6361 988 6506 +989 6649 990 6794 991 6939 992 7082 997 7227 212 7283 969 7339 994 7395 1001 7526 993 7679 +998 7825 999 7967 1003 8112 1000 8171 1010 8277 1004 8452 1005 8595 1006 8741 1007 8884 1008 9029 +% 95 0 obj +<< +/D [920 0 R /XYZ 150.705 394.197 null] +>> +% 99 0 obj +<< +/D [920 0 R /XYZ 150.705 377.215 null] +>> +% 103 0 obj +<< +/D [920 0 R /XYZ 150.705 195.871 null] +>> +% 919 0 obj +<< +/Font << /F30 784 0 R /F8 573 0 R /F27 572 0 R >> +/ProcSet [ /PDF /Text ] +>> +% 925 0 obj +<< +/Type /Page +/Contents 926 0 R +/Resources 924 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 902 0 R +>> +% 927 0 obj +<< +/D [925 0 R /XYZ 98.895 753.953 null] +>> +% 107 0 obj +<< +/D [925 0 R /XYZ 99.895 609.837 null] +>> +% 928 0 obj +<< +/D [925 0 R /XYZ 99.895 392.536 null] +>> +% 111 0 obj +<< +/D [925 0 R /XYZ 99.895 328.891 null] +>> +% 924 0 obj +<< +/Font << /F27 572 0 R /F8 573 0 R /F30 784 0 R >> +/ProcSet [ /PDF /Text ] +>> +% 930 0 obj +<< +/Type /Page +/Contents 931 0 R +/Resources 929 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 902 0 R +>> +% 932 0 obj +<< +/D [930 0 R /XYZ 149.705 753.953 null] +======= +1010 0 obj +<< +/Length 3667 >> stream 0 g 0 G @@ -7717,9 +11705,9 @@ stream 0 g 0 G 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 +/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.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 +/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 @@ -7731,68 +11719,68 @@ BT /F30 9.9626 Tf 0 -19.925 Td [(psb)]TJ ET q -1 0 0 1 116.214 562.52 cm +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 119.352 562.321 Td [(T)]TJ +/F30 9.9626 Tf 170.162 562.321 Td [(T)]TJ ET q -1 0 0 1 125.21 562.52 cm +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 128.348 562.321 Td [(heap)]TJ +/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(tege)-1(r)1(,)-334(real)-333(and)-333(complex)-334(data;)]TJ +/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 116.214 530.64 cm +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 119.352 530.441 Td [(T)]TJ +/F30 9.9626 Tf 170.162 530.441 Td [(T)]TJ ET q -1 0 0 1 125.21 530.64 cm +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 128.348 530.441 Td [(idx)]TJ +/F30 9.9626 Tf 179.158 530.441 Td [(idx)]TJ ET q -1 0 0 1 144.667 530.64 cm +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 147.805 530.441 Td [(heap)]TJ +/F30 9.9626 Tf 198.615 530.441 Td [(heap)]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 +/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)-334(ascending)-333(or)-333(descending)-333(order;)]TJ +/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.242 0 Td [(Curren)28(t)-333(heap)-334(o)-28(ccupan)1(c)-1(y;)]TJ +/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.242 -19.925 Td [(insert)]TJ +/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(item)-333(and)-333(its)-334(ind)1(e)-1(x)1(\051;)]TJ +/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 116.018 419.058 cm +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 119.455 418.859 Td [(\014rst)]TJ +/F27 9.9626 Tf 170.264 418.859 Td [(\014rst)]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 +/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 @@ -7800,558 +11788,80 @@ BT 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)-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 +/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.875 -268.645 Td [(27)]TJ + 166.874 -268.645 Td [(28)]TJ 0 g 0 G ET endstream endobj -985 0 obj +1015 0 obj << -/Length 158 +/Length 157 >> stream 0 g 0 G 0 g 0 G BT -/F16 14.3462 Tf 150.705 706.129 Td [(4)-1125(Computational)-375(routines)]TJ +/F16 14.3462 Tf 99.895 706.129 Td [(4)-1125(Computational)-375(routines)]TJ 0 g 0 G -/F8 9.9626 Tf 166.874 -615.691 Td [(28)]TJ +/F8 9.9626 Tf 166.875 -615.691 Td [(29)]TJ 0 g 0 G ET endstream endobj -996 0 obj +934 0 obj << -/Length 7361 +/Type /ObjStm +/N 100 +/First 886 +/Length 8982 >> 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 -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 -0 g 0 G -0 g 0 G -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 -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 g 0 G -0 g 0 G -/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 -20.33 Td [(On)-383(En)32(try)]TJ -0 g 0 G -0 g 0 G - 0 -20.329 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.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 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.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 -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 -Q -BT -/F30 9.9626 Tf 422.685 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 -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 -0 g 0 G -/F27 9.9626 Tf -83.615 -20.33 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.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 -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 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 -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 -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 g 0 G -/F8 9.9626 Tf 109.589 -29.888 Td [(29)]TJ -0 g 0 G -ET - -endstream -endobj -1002 0 obj -<< -/Length 2655 ->> -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 -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 -Q -BT -/F30 9.9626 Tf 355.414 682.219 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.918 Td [(On)-383(Return)]TJ -0 g 0 G -0 g 0 G - 0 -19.926 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.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 -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 -Q -BT -/F30 9.9626 Tf 473.495 592.555 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(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 -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 -422.416 Td [(30)]TJ -0 g 0 G -ET - -endstream -endobj -1011 0 obj -<< -/Length 7700 ->> -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 [(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 -0 g 0 G -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 -0 g 0 G -0 g 0 G -0 g 0 G -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 -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 -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 -Q -BT -/F8 9.9626 Tf 189.642 546.252 Td [(Short)-333(Precision)-334(Real)-3102(psb)]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 -Q -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 -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 -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 -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 -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 -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 -Q -BT -/F8 9.9626 Tf 328.638 510.386 Td [(gedot)]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 -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 -0 g 0 G - 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.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 -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 -Q -BT -/F30 9.9626 Tf 389.002 358.675 Td [(T)]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 -Q -BT -/F30 9.9626 Tf 397.998 358.675 Td [(vect)]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 -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 -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 -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 -Q -BT -/F30 9.9626 Tf 389.002 267.27 Td [(T)]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 -Q -BT -/F30 9.9626 Tf 397.998 267.27 Td [(vect)]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 -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 -0 g 0 G -/F27 9.9626 Tf -84.067 -19.674 Td [(desc)]TJ -ET -q -1 0 0 1 121.81 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 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 -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 -Q -BT -/F30 9.9626 Tf 279.917 175.865 Td [(desc)]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 -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 -923 0 obj -<< -/Type /ObjStm -/N 100 -/First 889 -/Length 10064 ->> -stream -95 0 99 56 103 112 919 169 925 261 927 375 107 431 928 487 111 543 924 599 -930 691 932 805 115 862 119 919 123 976 929 1033 934 1125 936 1239 127 1295 131 1351 -933 1407 939 1499 941 1613 135 1670 139 1727 938 1783 943 1875 945 1989 143 2045 147 2101 -151 2157 942 2213 947 2305 949 2419 155 2476 946 2533 953 2625 950 2767 951 2914 955 3060 -159 3116 163 3172 167 3228 171 3284 956 3340 952 3397 959 3502 961 3616 957 3673 175 3730 -179 3787 183 3844 958 3901 965 3993 962 4135 963 4280 967 4425 187 4481 964 4537 973 4629 -970 4763 975 4909 191 4966 195 5023 199 5080 976 5137 972 5194 979 5312 971 5446 981 5593 -977 5649 204 5706 978 5762 984 5880 986 5994 208 6051 983 6108 995 6187 987 6361 988 6506 -989 6649 990 6794 991 6939 992 7082 997 7227 212 7283 969 7339 994 7395 1001 7526 993 7679 -998 7825 999 7967 1003 8112 1000 8171 1010 8277 1004 8452 1005 8595 1006 8741 1007 8884 1008 9029 -% 95 0 obj -<< -/D [920 0 R /XYZ 150.705 394.197 null] ->> -% 99 0 obj -<< -/D [920 0 R /XYZ 150.705 377.215 null] ->> -% 103 0 obj -<< -/D [920 0 R /XYZ 150.705 195.871 null] ->> -% 919 0 obj -<< -/Font << /F30 784 0 R /F8 573 0 R /F27 572 0 R >> -/ProcSet [ /PDF /Text ] ->> -% 925 0 obj -<< -/Type /Page -/Contents 926 0 R -/Resources 924 0 R -/MediaBox [0 0 595.276 841.89] -/Parent 902 0 R ->> -% 927 0 obj -<< -/D [925 0 R /XYZ 98.895 753.953 null] ->> -% 107 0 obj -<< -/D [925 0 R /XYZ 99.895 609.837 null] ->> -% 928 0 obj -<< -/D [925 0 R /XYZ 99.895 392.536 null] ->> -% 111 0 obj -<< -/D [925 0 R /XYZ 99.895 328.891 null] ->> -% 924 0 obj +932 0 71 57 75 113 933 169 79 225 83 281 929 337 936 429 938 543 87 599 +91 654 95 709 935 764 943 856 939 1006 940 1162 941 1312 945 1457 99 1514 103 1570 +946 1627 947 1684 942 1741 951 1846 953 1960 949 2016 107 2073 111 2129 115 2185 950 2241 +955 2333 957 2447 119 2504 958 2560 123 2617 954 2674 960 2766 962 2880 127 2936 131 2992 +135 3048 959 3104 965 3196 967 3310 139 3367 143 3424 964 3481 969 3573 971 3687 147 3743 +151 3799 968 3855 973 3947 975 4061 155 4118 159 4175 163 4232 972 4289 977 4381 979 4495 +167 4551 976 4607 983 4699 980 4841 981 4988 985 5134 171 5191 175 5248 179 5305 183 5362 +986 5419 982 5476 989 5581 991 5695 987 5751 187 5808 191 5864 195 5920 988 5976 996 6068 +993 6210 994 6355 998 6500 199 6557 995 6614 1003 6706 1000 6844 1005 6991 204 7049 208 7106 +212 7162 1006 7219 1002 7278 1009 7397 1001 7535 1011 7683 1007 7742 216 7801 1008 7859 1014 7979 +% 932 0 obj << -/Font << /F27 572 0 R /F8 573 0 R /F30 784 0 R >> -/ProcSet [ /PDF /Text ] +/D [930 0 R /XYZ 149.705 753.953 null] >> -% 930 0 obj +% 71 0 obj << -/Type /Page -/Contents 931 0 R -/Resources 929 0 R -/MediaBox [0 0 595.276 841.89] -/Parent 902 0 R +/D [930 0 R /XYZ 150.705 716.092 null] >> -% 932 0 obj +% 75 0 obj << -/D [930 0 R /XYZ 149.705 753.953 null] +/D [930 0 R /XYZ 150.705 527.714 null] +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> -% 115 0 obj +% 933 0 obj << +<<<<<<< HEAD:docs/psblas-3.6.pdf /D [930 0 R /XYZ 150.705 718.084 null] +======= +/D [930 0 R /XYZ 395.482 368.65 null] +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> -% 119 0 obj +% 79 0 obj << +<<<<<<< HEAD:docs/psblas-3.6.pdf /D [930 0 R /XYZ 150.705 528.904 null] +======= +/D [930 0 R /XYZ 150.705 321.259 null] +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> -% 123 0 obj +% 83 0 obj << +<<<<<<< HEAD:docs/psblas-3.6.pdf /D [930 0 R /XYZ 150.705 327.768 null] >> % 929 0 obj @@ -8370,13 +11880,38 @@ stream % 936 0 obj << /D [934 0 R /XYZ 98.895 753.953 null] +======= +/D [930 0 R /XYZ 150.705 203.963 null] >> -% 127 0 obj +% 929 0 obj +<< +/Font << /F27 584 0 R /F30 810 0 R /F8 585 0 R >> +/ProcSet [ /PDF /Text ] +>> +% 936 0 obj +<< +/Type /Page +/Contents 937 0 R +/Resources 935 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 928 0 R +>> +% 938 0 obj +<< +/D [936 0 R /XYZ 98.895 753.953 null] +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf +>> +% 87 0 obj << +<<<<<<< HEAD:docs/psblas-3.6.pdf /D [934 0 R /XYZ 99.895 718.084 null] +======= +/D [936 0 R /XYZ 99.895 585.142 null] +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> -% 131 0 obj +% 91 0 obj << +<<<<<<< HEAD:docs/psblas-3.6.pdf /D [934 0 R /XYZ 99.895 477.598 null] >> % 933 0 obj @@ -8395,13 +11930,43 @@ stream % 941 0 obj << /D [939 0 R /XYZ 149.705 753.953 null] +======= +/D [936 0 R /XYZ 99.895 467.965 null] >> -% 135 0 obj +% 95 0 obj +<< +/D [936 0 R /XYZ 99.895 257.286 null] +>> +% 935 0 obj +<< +/Font << /F27 584 0 R /F8 585 0 R /F30 810 0 R >> +/ProcSet [ /PDF /Text ] +>> +% 943 0 obj +<< +/Type /Page +/Contents 944 0 R +/Resources 942 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 928 0 R +/Annots [ 939 0 R 940 0 R 941 0 R ] +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf +>> +% 939 0 obj << +<<<<<<< HEAD:docs/psblas-3.6.pdf /D [939 0 R /XYZ 150.705 718.084 null] +======= +/Type /Annot +/Subtype /Link +/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) >> +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> -% 139 0 obj +% 940 0 obj << +<<<<<<< HEAD:docs/psblas-3.6.pdf /D [939 0 R /XYZ 150.705 383.68 null] >> % 938 0 obj @@ -8420,17 +11985,49 @@ stream % 945 0 obj << /D [943 0 R /XYZ 98.895 753.953 null] +======= +/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) >> >> -% 143 0 obj +% 941 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [459.496 274.562 466.47 286.517] +/A << /S /GoTo /D (figure.4) >> +>> +% 945 0 obj +<< +/D [943 0 R /XYZ 149.705 753.953 null] +>> +% 99 0 obj +<< +/D [943 0 R /XYZ 150.705 553.709 null] +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf +>> +% 103 0 obj << +<<<<<<< HEAD:docs/psblas-3.6.pdf /D [943 0 R /XYZ 99.895 718.084 null] +======= +/D [943 0 R /XYZ 150.705 332.359 null] +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> -% 147 0 obj +% 946 0 obj << +<<<<<<< HEAD:docs/psblas-3.6.pdf /D [943 0 R /XYZ 99.895 483.063 null] +======= +/D [943 0 R /XYZ 171.358 301.959 null] +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> -% 151 0 obj +% 947 0 obj << +<<<<<<< HEAD:docs/psblas-3.6.pdf /D [943 0 R /XYZ 99.895 248.041 null] >> % 942 0 obj @@ -8449,9 +12046,26 @@ stream % 949 0 obj << /D [947 0 R /XYZ 149.705 753.953 null] +======= +/D [943 0 R /XYZ 455.673 168.146 null] >> -% 155 0 obj +% 942 0 obj +<< +/Font << /F27 584 0 R /F8 585 0 R /F30 810 0 R /F16 582 0 R >> +/ProcSet [ /PDF /Text ] +>> +% 951 0 obj +<< +/Type /Page +/Contents 952 0 R +/Resources 950 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 928 0 R +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf +>> +% 953 0 obj << +<<<<<<< HEAD:docs/psblas-3.6.pdf /D [947 0 R /XYZ 150.705 476.867 null] >> % 946 0 obj @@ -8469,39 +12083,72 @@ stream /Annots [ 950 0 R 951 0 R ] >> % 950 0 obj +======= +/D [951 0 R /XYZ 98.895 753.953 null] +>> +% 949 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) >> +/D [951 0 R /XYZ 155.008 667.994 null] +>> +% 107 0 obj +<< +/D [951 0 R /XYZ 99.895 382.599 null] +>> +% 111 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf +<< +/D [951 0 R /XYZ 99.895 364.643 null] >> +<<<<<<< HEAD:docs/psblas-3.6.pdf % 951 0 obj +======= +% 115 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << -/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) >> +/D [951 0 R /XYZ 99.895 191.212 null] >> +<<<<<<< HEAD:docs/psblas-3.6.pdf % 955 0 obj << /D [953 0 R /XYZ 98.895 753.953 null] +======= +% 950 0 obj +<< +/Font << /F30 810 0 R /F8 585 0 R /F27 584 0 R >> +/ProcSet [ /PDF /Text ] +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> -% 159 0 obj +% 955 0 obj << +<<<<<<< HEAD:docs/psblas-3.6.pdf /D [953 0 R /XYZ 99.895 718.084 null] +======= +/Type /Page +/Contents 956 0 R +/Resources 954 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 928 0 R +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> -% 163 0 obj +% 957 0 obj << +<<<<<<< HEAD:docs/psblas-3.6.pdf /D [953 0 R /XYZ 99.895 590.059 null] +======= +/D [955 0 R /XYZ 149.705 753.953 null] +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> -% 167 0 obj +% 119 0 obj << +<<<<<<< HEAD:docs/psblas-3.6.pdf /D [953 0 R /XYZ 99.895 402.035 null] +======= +/D [955 0 R /XYZ 150.705 611.35 null] +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> -% 171 0 obj +% 958 0 obj << +<<<<<<< HEAD:docs/psblas-3.6.pdf /D [953 0 R /XYZ 99.895 233.858 null] >> % 956 0 obj @@ -8528,22 +12175,62 @@ stream % 957 0 obj << /D [959 0 R /XYZ 208.488 433.055 null] +======= +/D [955 0 R /XYZ 150.705 387.487 null] >> -% 175 0 obj +% 123 0 obj +<< +/D [955 0 R /XYZ 150.705 324.426 null] +>> +% 954 0 obj +<< +/Font << /F27 584 0 R /F8 585 0 R /F30 810 0 R >> +/ProcSet [ /PDF /Text ] +>> +% 960 0 obj +<< +/Type /Page +/Contents 961 0 R +/Resources 959 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 963 0 R +>> +% 962 0 obj +<< +/D [960 0 R /XYZ 98.895 753.953 null] +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf +>> +% 127 0 obj << +<<<<<<< HEAD:docs/psblas-3.6.pdf /D [959 0 R /XYZ 150.705 391.443 null] +======= +/D [960 0 R /XYZ 99.895 716.092 null] +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> -% 179 0 obj +% 131 0 obj << +<<<<<<< HEAD:docs/psblas-3.6.pdf /D [959 0 R /XYZ 150.705 374.163 null] +======= +/D [960 0 R /XYZ 99.895 527.657 null] +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> -% 183 0 obj +% 135 0 obj << +<<<<<<< HEAD:docs/psblas-3.6.pdf /D [959 0 R /XYZ 150.705 195.076 null] >> % 958 0 obj << /Font << /F27 572 0 R /F8 573 0 R /F30 784 0 R >> +======= +/D [960 0 R /XYZ 99.895 326.521 null] +>> +% 959 0 obj +<< +/Font << /F27 584 0 R /F30 810 0 R /F8 585 0 R >> +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf /ProcSet [ /PDF /Text ] >> % 965 0 obj @@ -8552,6 +12239,7 @@ stream /Contents 966 0 R /Resources 964 0 R /MediaBox [0 0 595.276 841.89] +<<<<<<< HEAD:docs/psblas-3.6.pdf /Parent 968 0 R /Annots [ 962 0 R 963 0 R ] >> @@ -8564,19 +12252,27 @@ stream /A << /S /GoTo /D (table.1) >> >> % 963 0 obj +======= +/Parent 963 0 R +>> +% 967 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << -/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) >> +/D [965 0 R /XYZ 149.705 753.953 null] >> +<<<<<<< HEAD:docs/psblas-3.6.pdf % 967 0 obj << /D [965 0 R /XYZ 98.895 753.953 null] +======= +% 139 0 obj +<< +/D [965 0 R /XYZ 150.705 716.092 null] +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> -% 187 0 obj +% 143 0 obj << +<<<<<<< HEAD:docs/psblas-3.6.pdf /D [965 0 R /XYZ 99.895 613.581 null] >> % 964 0 obj @@ -8608,13 +12304,34 @@ stream % 191 0 obj << /D [973 0 R /XYZ 150.705 718.084 null] +======= +/D [965 0 R /XYZ 150.705 475.461 null] >> -% 195 0 obj +% 964 0 obj +<< +/Font << /F27 584 0 R /F30 810 0 R /F8 585 0 R >> +/ProcSet [ /PDF /Text ] +>> +% 969 0 obj << +/Type /Page +/Contents 970 0 R +/Resources 968 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 963 0 R +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf +>> +% 971 0 obj +<< +<<<<<<< HEAD:docs/psblas-3.6.pdf /D [973 0 R /XYZ 150.705 430.016 null] +======= +/D [969 0 R /XYZ 98.895 753.953 null] +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> -% 199 0 obj +% 147 0 obj << +<<<<<<< HEAD:docs/psblas-3.6.pdf /D [973 0 R /XYZ 150.705 226.068 null] >> % 976 0 obj @@ -8636,13 +12353,32 @@ stream /Annots [ 971 0 R ] >> % 971 0 obj +======= +/D [969 0 R /XYZ 99.895 716.092 null] +>> +% 151 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 [969 0 R /XYZ 99.895 384.228 null] +>> +% 968 0 obj +<< +/Font << /F27 584 0 R /F30 810 0 R /F8 585 0 R >> +/ProcSet [ /PDF /Text ] >> +% 973 0 obj +<< +/Type /Page +/Contents 974 0 R +/Resources 972 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 963 0 R +>> +% 975 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf +<< +/D [973 0 R /XYZ 149.705 753.953 null] +>> +<<<<<<< HEAD:docs/psblas-3.6.pdf % 981 0 obj << /D [979 0 R /XYZ 98.895 753.953 null] @@ -8650,9 +12386,19 @@ stream % 977 0 obj << /D [979 0 R /XYZ 155.478 656.371 null] +======= +% 155 0 obj +<< +/D [973 0 R /XYZ 150.705 716.092 null] >> -% 204 0 obj +% 159 0 obj << +/D [973 0 R /XYZ 150.705 483.063 null] +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf +>> +% 163 0 obj +<< +<<<<<<< HEAD:docs/psblas-3.6.pdf /D [979 0 R /XYZ 99.895 622.553 null] >> % 978 0 obj @@ -8671,9 +12417,30 @@ stream % 986 0 obj << /D [984 0 R /XYZ 149.705 753.953 null] +======= +/D [973 0 R /XYZ 150.705 248.041 null] >> -% 208 0 obj +% 972 0 obj +<< +/Font << /F27 584 0 R /F30 810 0 R /F8 585 0 R >> +/ProcSet [ /PDF /Text ] +>> +% 977 0 obj << +/Type /Page +/Contents 978 0 R +/Resources 976 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 963 0 R +>> +% 979 0 obj +<< +/D [977 0 R /XYZ 98.895 753.953 null] +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf +>> +% 167 0 obj +<< +<<<<<<< HEAD:docs/psblas-3.6.pdf /D [984 0 R /XYZ 150.705 716.092 null] >> % 983 0 obj @@ -8691,59 +12458,96 @@ stream /Annots [ 987 0 R 988 0 R 989 0 R 990 0 R 991 0 R 992 0 R ] >> % 987 0 obj +======= +/D [977 0 R /XYZ 99.895 476.867 null] +>> +% 976 0 obj +<< +/Font << /F27 584 0 R /F8 585 0 R /F30 810 0 R >> +/ProcSet [ /PDF /Text ] +>> +% 983 0 obj +<< +/Type /Page +/Contents 984 0 R +/Resources 982 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 963 0 R +/Annots [ 980 0 R 981 0 R ] +>> +% 980 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << /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) >> +/Rect [250.191 165.213 257.165 176.061] +/A << /S /GoTo /D (section.6) >> >> +<<<<<<< HEAD:docs/psblas-3.6.pdf % 988 0 obj +======= +% 981 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << /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) >> +/Rect [343.178 129.347 350.152 140.196] +/A << /S /GoTo /D (figure.5) >> >> +<<<<<<< HEAD:docs/psblas-3.6.pdf % 989 0 obj +======= +% 985 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << -/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 [983 0 R /XYZ 149.705 753.953 null] >> +<<<<<<< HEAD:docs/psblas-3.6.pdf % 990 0 obj +======= +% 171 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << -/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 [983 0 R /XYZ 150.705 716.092 null] >> +<<<<<<< HEAD:docs/psblas-3.6.pdf % 991 0 obj +======= +% 175 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << -/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) >> +/D [983 0 R /XYZ 150.705 588.122 null] >> +<<<<<<< HEAD:docs/psblas-3.6.pdf % 992 0 obj +======= +% 179 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << -/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) >> +/D [983 0 R /XYZ 150.705 402.035 null] +>> +% 183 0 obj +<< +/D [983 0 R /XYZ 150.705 233.858 null] +>> +% 986 0 obj +<< +/D [983 0 R /XYZ 171.961 204.012 null] >> % 997 0 obj << +<<<<<<< HEAD:docs/psblas-3.6.pdf /D [995 0 R /XYZ 98.895 753.953 null] +======= +/Font << /F27 584 0 R /F30 810 0 R /F8 585 0 R /F16 582 0 R >> +/ProcSet [ /PDF /Text ] +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> -% 212 0 obj +% 989 0 obj << +<<<<<<< HEAD:docs/psblas-3.6.pdf /D [995 0 R /XYZ 99.895 720.077 null] >> % 969 0 obj @@ -8763,31 +12567,77 @@ stream /MediaBox [0 0 595.276 841.89] /Parent 968 0 R /Annots [ 993 0 R 998 0 R 999 0 R ] +======= +/Type /Page +/Contents 990 0 R +/Resources 988 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 992 0 R +>> +% 991 0 obj +<< +/D [989 0 R /XYZ 98.895 753.953 null] +>> +% 987 0 obj +<< +/D [989 0 R /XYZ 157.678 433.055 null] +>> +% 187 0 obj +<< +/D [989 0 R /XYZ 99.895 391.443 null] +>> +% 191 0 obj +<< +/D [989 0 R /XYZ 99.895 374.453 null] +>> +% 195 0 obj +<< +/D [989 0 R /XYZ 99.895 195.366 null] +>> +% 988 0 obj +<< +/Font << /F27 584 0 R /F8 585 0 R /F30 810 0 R >> +/ProcSet [ /PDF /Text ] +>> +% 996 0 obj +<< +/Type /Page +/Contents 997 0 R +/Resources 995 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 992 0 R +/Annots [ 993 0 R 994 0 R ] +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> % 993 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) >> +/Rect [432.897 385.356 439.871 396.204] +/A << /S /GoTo /D (table.1) >> >> +<<<<<<< HEAD:docs/psblas-3.6.pdf % 998 0 obj +======= +% 994 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << /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 [432.897 241.508 439.871 252.356] +/A << /S /GoTo /D (table.1) >> >> +<<<<<<< HEAD:docs/psblas-3.6.pdf % 999 0 obj +======= +% 998 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << -/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) >> +/D [996 0 R /XYZ 149.705 753.953 null] >> +<<<<<<< HEAD:docs/psblas-3.6.pdf % 1003 0 obj << /D [1001 0 R /XYZ 149.705 753.953 null] @@ -8807,15 +12657,37 @@ stream /Annots [ 1004 0 R 1005 0 R 1006 0 R 1007 0 R 1008 0 R ] >> % 1004 0 obj +======= +% 199 0 obj +<< +/D [996 0 R /XYZ 150.705 612.689 null] +>> +% 995 0 obj +<< +/Font << /F27 584 0 R /F8 585 0 R /F30 810 0 R >> +/ProcSet [ /PDF /Text ] +>> +% 1003 0 obj +<< +/Type /Page +/Contents 1004 0 R +/Resources 1002 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 992 0 R +/Annots [ 1000 0 R ] +>> +% 1000 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << /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) >> +/Rect [126.875 152.981 133.849 164.106] +/A << /S /GoTo /D (figure.6) >> >> % 1005 0 obj << +<<<<<<< HEAD:docs/psblas-3.6.pdf /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] @@ -8839,19 +12711,81 @@ stream /A << /S /GoTo /D (table.2) >> >> % 1008 0 obj +======= +/D [1003 0 R /XYZ 98.895 753.953 null] +>> +% 204 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << -/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) >> +/D [1003 0 R /XYZ 99.895 716.092 null] >> +<<<<<<< HEAD:docs/psblas-3.6.pdf endstream endobj 1019 0 obj << /Length 5114 +======= +% 208 0 obj +<< +/D [1003 0 R /XYZ 99.895 430.45 null] +>> +% 212 0 obj +<< +/D [1003 0 R /XYZ 99.895 226.068 null] +>> +% 1006 0 obj +<< +/D [1003 0 R /XYZ 257.563 168.146 null] +>> +% 1002 0 obj +<< +/Font << /F27 584 0 R /F30 810 0 R /F8 585 0 R /F11 796 0 R /F16 582 0 R >> +/ProcSet [ /PDF /Text ] +>> +% 1009 0 obj +<< +/Type /Page +/Contents 1010 0 R +/Resources 1008 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 992 0 R +/Annots [ 1001 0 R ] +>> +% 1001 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [297.652 591.268 304.626 602.116] +/A << /S /GoTo /D (section.6) >> +>> +% 1011 0 obj +<< +/D [1009 0 R /XYZ 149.705 753.953 null] +>> +% 1007 0 obj +<< +/D [1009 0 R /XYZ 206.288 656.371 null] +>> +% 216 0 obj +<< +/D [1009 0 R /XYZ 150.705 622.553 null] +>> +% 1008 0 obj +<< +/Font << /F47 1012 0 R /F8 585 0 R /F16 582 0 R /F30 810 0 R /F27 584 0 R >> +/ProcSet [ /PDF /Text ] +>> +% 1014 0 obj +<< +/Type /Page +/Contents 1015 0 R +/Resources 1013 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 992 0 R +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> stream 0 g 0 G @@ -8936,197 +12870,229 @@ ET endstream endobj +<<<<<<< HEAD:docs/psblas-3.6.pdf 1035 0 obj +======= +1027 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << -/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 +1033 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 +<<<<<<< HEAD:docs/psblas-3.6.pdf endstream endobj @@ -9135,251 +13101,322 @@ endobj /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 +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 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 +<<<<<<< HEAD:docs/psblas-3.6.pdf 1047 0 obj +======= +1043 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << -/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 -83.615 -19.674 Td [(y)]TJ 0 g 0 G -/F27 9.9626 Tf -24.907 -22.262 Td [(desc)]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 [(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 121.81 284.602 cm +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 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 +/F30 9.9626 Tf 355.414 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 -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 +<<<<<<< HEAD:docs/psblas-3.6.pdf 1052 0 obj +======= +1049 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << -/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 - [-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 +/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)-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 @@ -9387,554 +13424,612 @@ endstream endobj 1065 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 -/F27 9.9626 Tf -24.907 -19.925 Td [(desc)]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 [(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 121.81 372.56 cm +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 + [(.)-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 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 - 141.968 -90.64 Td [(37)]TJ +ET + +endstream +endobj +1070 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 -567.87 Td [(35)]TJ 0 g 0 G ET endstream endobj +<<<<<<< HEAD:docs/psblas-3.6.pdf 1074 0 obj +======= +1077 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << -/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 +<<<<<<< HEAD:docs/psblas-3.6.pdf 1079 0 obj +======= +1082 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << -/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 - [-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 +/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(=)-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 +<<<<<<< HEAD:docs/psblas-3.6.pdf 1092 0 obj +======= +1096 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << -/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 +<<<<<<< HEAD:docs/psblas-3.6.pdf ET endstream @@ -9944,15 +14039,18 @@ endobj /Length 624 >> stream +======= +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 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 @@ -9960,170 +14058,160 @@ endstream endobj 1104 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 -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 -/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.631 -18.818 Td [(global)]TJ 0 g 0 G -/F27 9.9626 Tf -225.63 -22.677 Td [(global)]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 -/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 +/F27 9.9626 Tf -193.719 -30.774 Td [(On)-383(Return)]TJ 0 g 0 G -/F27 9.9626 Tf -193.718 -34.632 Td [(On)-383(Return)]TJ 0 g 0 G + 0 -18.819 Td [(F)96(unction)-384(v)64(alue)]TJ 0 g 0 G -/F8 9.9626 Tf 166.874 -29.888 Td [(42)]TJ +/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 @@ -10131,244 +14219,241 @@ endstream endobj 1109 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 +<<<<<<< HEAD:docs/psblas-3.6.pdf 1123 0 obj +======= +1122 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << -/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 +/F27 9.9626 Tf -24.907 -21.709 Td [(desc)]TJ ET q -1 0 0 1 172.619 376.02 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 176.057 375.82 Td [(a)]TJ +/F27 9.9626 Tf 125.247 259.386 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 328.199 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 330.727 328 Td [(desc)]TJ +/F30 9.9626 Tf 279.917 211.565 Td [(desc)]TJ ET q -1 0 0 1 352.275 328.199 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 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 +/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 - 0 -19.925 Td [(res)]TJ +/F27 9.9626 Tf -225.631 -21.709 Td [(On)-383(Return)]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 -21.71 Td [(res)]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 +/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 -94.1 Td [(44)]TJ + 141.968 -29.888 Td [(41)]TJ 0 g 0 G ET endstream endobj +<<<<<<< HEAD:docs/psblas-3.6.pdf 1015 0 obj << /Type /ObjStm @@ -10464,50 +14549,114 @@ stream /Annots [ 1027 0 R 1028 0 R 1029 0 R 1030 0 R 1031 0 R 1032 0 R ] >> % 1027 0 obj +======= +1017 0 obj +<< +/Type /ObjStm +/N 100 +/First 983 +/Length 11572 +>> +stream +1016 0 220 58 1013 115 1026 195 1018 378 1019 524 1020 668 1021 814 1022 960 1023 1104 +1028 1250 224 1309 999 1367 1025 1424 1032 1556 1024 1713 1029 1860 1030 2003 1034 2149 1031 2207 +1042 2313 1036 2488 1037 2631 1038 2777 1039 2920 1040 3065 1044 3211 228 3270 1045 3328 1041 3387 +1048 3532 1046 3671 1050 3817 1051 3875 1052 3933 1053 3991 1054 4049 1055 4108 1056 4166 1047 4225 +1064 4344 1057 4528 1058 4672 1059 4817 1060 4961 1061 5107 1062 5254 1066 5399 232 5458 1067 5516 +1063 5575 1069 5720 1071 5838 1068 5896 1076 5976 1072 6133 1073 6276 1074 6421 1078 6568 236 6627 +1079 6685 1075 6743 1081 6888 1083 7006 1084 7064 1085 7122 1086 7180 1087 7239 1088 7298 1089 7357 +1080 7416 1095 7535 1091 7692 1092 7836 1093 7982 1097 8128 240 8187 1098 8245 1094 8304 1103 8449 +1099 8606 1100 8750 1101 8896 1105 9043 244 9101 1106 9158 1102 9217 1108 9374 1110 9492 1111 9551 +1112 9610 1113 9669 1114 9728 1115 9787 1116 9846 1107 9905 1121 9998 1117 10155 1118 10298 1119 10443 +% 1016 0 obj +<< +/D [1014 0 R /XYZ 98.895 753.953 null] +>> +% 220 0 obj +<< +/D [1014 0 R /XYZ 99.895 716.092 null] +>> +% 1013 0 obj +<< +/Font << /F16 582 0 R /F8 585 0 R >> +/ProcSet [ /PDF /Text ] +>> +% 1026 0 obj +<< +/Type /Page +/Contents 1027 0 R +/Resources 1025 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 992 0 R +/Annots [ 1018 0 R 1019 0 R 1020 0 R 1021 0 R 1022 0 R 1023 0 R ] +>> +% 1018 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << /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) >> >> +<<<<<<< HEAD:docs/psblas-3.6.pdf % 1028 0 obj +======= +% 1019 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << /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) >> >> +<<<<<<< HEAD:docs/psblas-3.6.pdf % 1029 0 obj +======= +% 1020 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << /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) >> >> +<<<<<<< HEAD:docs/psblas-3.6.pdf % 1030 0 obj +======= +% 1021 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << /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) >> >> +<<<<<<< HEAD:docs/psblas-3.6.pdf % 1031 0 obj +======= +% 1022 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << /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) >> >> +<<<<<<< HEAD:docs/psblas-3.6.pdf % 1032 0 obj +======= +% 1023 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] +<<<<<<< HEAD:docs/psblas-3.6.pdf /Rect [151.203 119.329 158.177 128.24] /A << /S /GoTo /D (table.2) >> >> @@ -10555,26 +14704,67 @@ stream /Annots [ 1042 0 R 1043 0 R 1044 0 R ] >> % 1042 0 obj +======= +/Rect [396.435 161.632 403.409 172.481] +/A << /S /GoTo /D (table.1) >> +>> +% 1028 0 obj +<< +/D [1026 0 R /XYZ 149.705 753.953 null] +>> +% 224 0 obj +<< +/D [1026 0 R /XYZ 150.705 716.092 null] +>> +% 999 0 obj +<< +/D [1026 0 R /XYZ 318.451 539.42 null] +>> +% 1025 0 obj +<< +/Font << /F16 582 0 R /F8 585 0 R /F11 796 0 R /F14 813 0 R /F30 810 0 R /F27 584 0 R >> +/ProcSet [ /PDF /Text ] +>> +% 1032 0 obj +<< +/Type /Page +/Contents 1033 0 R +/Resources 1031 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1035 0 R +/Annots [ 1024 0 R 1029 0 R 1030 0 R ] +>> +% 1024 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << /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) >> >> +<<<<<<< HEAD:docs/psblas-3.6.pdf % 1043 0 obj +======= +% 1029 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << /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) >> >> +<<<<<<< HEAD:docs/psblas-3.6.pdf % 1044 0 obj +======= +% 1030 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] +<<<<<<< HEAD:docs/psblas-3.6.pdf /Rect [259.464 233.372 326.522 244.497] /A << /S /GoTo /D (descdata) >> >> @@ -10585,9 +14775,14 @@ stream % 224 0 obj << /D [1046 0 R /XYZ 99.895 720.077 null] +======= +/Rect [345.558 577.666 352.532 588.514] +/A << /S /GoTo /D (table.1) >> +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> % 1049 0 obj << +<<<<<<< HEAD:docs/psblas-3.6.pdf /D [1046 0 R /XYZ 267.641 459.44 null] >> % 1045 0 obj @@ -10602,17 +14797,67 @@ stream /Resources 1050 0 R /MediaBox [0 0 595.276 841.89] /Parent 1014 0 R +======= +/D [1032 0 R /XYZ 98.895 753.953 null] +>> +% 1031 0 obj +<< +/Font << /F8 585 0 R /F27 584 0 R /F30 810 0 R /F11 796 0 R >> +/ProcSet [ /PDF /Text ] +>> +% 1042 0 obj +<< +/Type /Page +/Contents 1043 0 R +/Resources 1041 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1035 0 R +/Annots [ 1036 0 R 1037 0 R 1038 0 R 1039 0 R 1040 0 R ] +>> +% 1036 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) >> +>> +% 1037 0 obj +<< +/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) >> +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> % 1053 0 obj << +<<<<<<< HEAD:docs/psblas-3.6.pdf /D [1051 0 R /XYZ 149.705 753.953 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) >> +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> % 1054 0 obj << +<<<<<<< HEAD:docs/psblas-3.6.pdf /D [1051 0 R /XYZ 150.705 576.615 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) >> +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> % 1055 0 obj << +<<<<<<< HEAD:docs/psblas-3.6.pdf /D [1051 0 R /XYZ 150.705 516.894 null] >> % 1056 0 obj @@ -10652,29 +14897,67 @@ stream /Border[0 0 0]/H/I/C[1 0 0] /Rect [368.549 401.031 444.603 412.156] /A << /S /GoTo /D (vdata) >> +======= +/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) >> +>> +% 1044 0 obj +<< +/D [1042 0 R /XYZ 149.705 753.953 null] +>> +% 228 0 obj +<< +/D [1042 0 R /XYZ 150.705 716.092 null] +>> +% 1045 0 obj +<< +/D [1042 0 R /XYZ 318.451 490.516 null] +>> +% 1041 0 obj +<< +/Font << /F16 582 0 R /F8 585 0 R /F11 796 0 R /F14 813 0 R /F10 812 0 R /F30 810 0 R /F27 584 0 R >> +/ProcSet [ /PDF /Text ] +>> +% 1048 0 obj +<< +/Type /Page +/Contents 1049 0 R +/Resources 1047 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1035 0 R +/Annots [ 1046 0 R ] +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> % 1061 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) >> +/Rect [382.088 603.569 389.062 614.417] +/A << /S /GoTo /D (table.2) >> >> +<<<<<<< HEAD:docs/psblas-3.6.pdf % 1062 0 obj +======= +% 1050 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << -/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 [1048 0 R /XYZ 98.895 753.953 null] >> % 1066 0 obj << +<<<<<<< HEAD:docs/psblas-3.6.pdf /D [1064 0 R /XYZ 98.895 753.953 null] +======= +/D [1048 0 R /XYZ 99.895 512.854 null] +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> -% 228 0 obj +% 1052 0 obj << +<<<<<<< HEAD:docs/psblas-3.6.pdf /D [1064 0 R /XYZ 99.895 720.077 null] >> % 1067 0 obj @@ -10696,39 +14979,91 @@ stream /Annots [ 1069 0 R 1070 0 R 1071 0 R ] >> % 1069 0 obj +======= +/D [1048 0 R /XYZ 99.895 453.133 null] +>> +% 1053 0 obj +<< +/D [1048 0 R /XYZ 124.802 455.07 null] +>> +% 1054 0 obj +<< +/D [1048 0 R /XYZ 124.802 443.115 null] +>> +% 1055 0 obj +<< +/D [1048 0 R /XYZ 124.802 431.16 null] +>> +% 1056 0 obj +<< +/D [1048 0 R /XYZ 124.802 419.205 null] +>> +% 1047 0 obj +<< +/Font << /F8 585 0 R /F27 584 0 R /F30 810 0 R /F11 796 0 R /F16 582 0 R >> +/ProcSet [ /PDF /Text ] +>> +% 1064 0 obj +<< +/Type /Page +/Contents 1065 0 R +/Resources 1063 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1035 0 R +/Annots [ 1057 0 R 1058 0 R 1059 0 R 1060 0 R 1061 0 R 1062 0 R ] +>> +% 1057 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << /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) >> >> +<<<<<<< HEAD:docs/psblas-3.6.pdf % 1070 0 obj +======= +% 1058 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << /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) >> >> +<<<<<<< HEAD:docs/psblas-3.6.pdf % 1071 0 obj +======= +% 1059 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << /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) >> +/Rect [419.358 291.951 495.412 303.076] +/A << /S /GoTo /D (vdata) >> >> % 1075 0 obj << +<<<<<<< HEAD:docs/psblas-3.6.pdf /D [1073 0 R /XYZ 149.705 753.953 null] >> % 232 0 obj << /D [1073 0 R /XYZ 150.705 720.077 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) >> +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> % 1076 0 obj << +<<<<<<< HEAD:docs/psblas-3.6.pdf /D [1073 0 R /XYZ 318.451 490.109 null] >> % 1072 0 obj @@ -10751,30 +15086,78 @@ stream % 1081 0 obj << /D [1078 0 R /XYZ 99.895 632.405 null] +======= +/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) >> +>> +% 1062 0 obj +<< +/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 +<< +/D [1064 0 R /XYZ 149.705 753.953 null] +>> +% 232 0 obj +<< +/D [1064 0 R /XYZ 150.705 716.092 null] +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> % 1082 0 obj << +<<<<<<< HEAD:docs/psblas-3.6.pdf /D [1078 0 R /XYZ 99.895 572.685 null] >> % 1083 0 obj << /D [1078 0 R /XYZ 124.802 574.622 null] +======= +/D [1064 0 R /XYZ 318.451 510.309 null] +>> +% 1063 0 obj +<< +/Font << /F16 582 0 R /F8 585 0 R /F11 796 0 R /F14 813 0 R /F10 812 0 R /F30 810 0 R /F27 584 0 R >> +/ProcSet [ /PDF /Text ] +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> % 1084 0 obj << +<<<<<<< HEAD:docs/psblas-3.6.pdf /D [1078 0 R /XYZ 124.802 562.667 null] >> % 1085 0 obj << /D [1078 0 R /XYZ 124.802 550.712 null] +======= +/Type /Page +/Contents 1070 0 R +/Resources 1068 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1035 0 R +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> % 1086 0 obj << +<<<<<<< HEAD:docs/psblas-3.6.pdf /D [1078 0 R /XYZ 124.802 538.757 null] >> % 1077 0 obj << /Font << /F27 572 0 R /F8 573 0 R /F16 570 0 R >> +======= +/D [1069 0 R /XYZ 98.895 753.953 null] +>> +% 1068 0 obj +<< +/Font << /F27 584 0 R /F8 585 0 R >> +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf /ProcSet [ /PDF /Text ] >> % 1091 0 obj @@ -10783,15 +15166,20 @@ stream /Contents 1092 0 R /Resources 1090 0 R /MediaBox [0 0 595.276 841.89] +<<<<<<< HEAD:docs/psblas-3.6.pdf /Parent 1068 0 R /Annots [ 1087 0 R 1088 0 R 1089 0 R ] +======= +/Parent 1035 0 R +/Annots [ 1072 0 R 1073 0 R 1074 0 R ] +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> % 1087 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) >> >> % 1088 0 obj @@ -10799,15 +15187,15 @@ stream /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) >> >> % 1089 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) >> >> % 1093 0 obj @@ -10816,15 +15204,27 @@ stream >> % 236 0 obj << +<<<<<<< HEAD:docs/psblas-3.6.pdf /D [1091 0 R /XYZ 150.705 720.077 null] +======= +/D [1076 0 R /XYZ 150.705 716.092 null] +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> % 1094 0 obj << +<<<<<<< HEAD:docs/psblas-3.6.pdf /D [1091 0 R /XYZ 318.451 432.072 null] +======= +/D [1076 0 R /XYZ 318.451 459.44 null] +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> % 1090 0 obj << +<<<<<<< HEAD:docs/psblas-3.6.pdf /Font << /F16 570 0 R /F8 573 0 R /F11 770 0 R /F14 787 0 R /F10 786 0 R /F7 785 0 R /F30 784 0 R /F27 572 0 R >> +======= +/Font << /F16 582 0 R /F8 585 0 R /F11 796 0 R /F14 813 0 R /F10 812 0 R /F30 810 0 R /F27 584 0 R >> +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf /ProcSet [ /PDF /Text ] >> % 1096 0 obj @@ -10833,12 +15233,17 @@ stream /Contents 1097 0 R /Resources 1095 0 R /MediaBox [0 0 595.276 841.89] +<<<<<<< HEAD:docs/psblas-3.6.pdf /Parent 1068 0 R +======= +/Parent 1090 0 R +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> % 1098 0 obj << /D [1096 0 R /XYZ 98.895 753.953 null] >> +<<<<<<< HEAD:docs/psblas-3.6.pdf % 1095 0 obj << /Font << /F27 572 0 R /F8 573 0 R >> @@ -10854,35 +15259,33 @@ stream /Annots [ 1099 0 R 1100 0 R 1101 0 R ] >> % 1099 0 obj +======= +% 1084 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [419.358 316.653 495.412 327.778] -/A << /S /GoTo /D (vdata) >> +/D [1081 0 R /XYZ 99.895 576.615 null] >> % 1100 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) >> +/D [1081 0 R /XYZ 99.895 516.894 null] >> % 1101 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] -/A << /S /GoTo /D (descdata) >> +/D [1081 0 R /XYZ 124.802 518.831 null] >> +<<<<<<< HEAD:docs/psblas-3.6.pdf % 1105 0 obj << /D [1103 0 R /XYZ 149.705 753.953 null] +======= +% 1087 0 obj +<< +/D [1081 0 R /XYZ 124.802 506.876 null] +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> -% 240 0 obj +% 1088 0 obj << +<<<<<<< HEAD:docs/psblas-3.6.pdf /D [1103 0 R /XYZ 150.705 720.077 null] >> % 1106 0 obj @@ -10945,19 +15348,201 @@ stream /Annots [ 1118 0 R 1119 0 R 1120 0 R ] >> % 1118 0 obj +======= +/D [1081 0 R /XYZ 124.802 494.921 null] +>> +% 1089 0 obj +<< +/D [1081 0 R /XYZ 124.802 482.966 null] +>> +% 1080 0 obj +<< +/Font << /F27 584 0 R /F8 585 0 R /F11 796 0 R /F30 810 0 R /F16 582 0 R >> +/ProcSet [ /PDF /Text ] +>> +% 1095 0 obj +<< +/Type /Page +/Contents 1096 0 R +/Resources 1094 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1090 0 R +/Annots [ 1091 0 R 1092 0 R 1093 0 R ] +>> +% 1091 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [419.358 401.031 495.412 412.156] +/A << /S /GoTo /D (vdata) >> +>> +% 1092 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [376.221 389.353 383.195 400.201] +/A << /S /GoTo /D (table.5) >> +>> +% 1093 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [310.273 321.33 377.331 332.455] +/A << /S /GoTo /D (descdata) >> +>> +% 1097 0 obj +<< +/D [1095 0 R /XYZ 149.705 753.953 null] +>> +% 240 0 obj +<< +/D [1095 0 R /XYZ 150.705 716.092 null] +>> +% 1098 0 obj +<< +/D [1095 0 R /XYZ 318.451 537.464 null] +>> +% 1094 0 obj +<< +/Font << /F16 582 0 R /F8 585 0 R /F11 796 0 R /F14 813 0 R /F10 812 0 R /F30 810 0 R /F27 584 0 R >> +/ProcSet [ /PDF /Text ] +>> +% 1103 0 obj +<< +/Type /Page +/Contents 1104 0 R +/Resources 1102 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1090 0 R +/Annots [ 1099 0 R 1100 0 R 1101 0 R ] +>> +% 1099 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [419.358 404.491 495.412 415.616] +/Rect [368.549 359.763 444.603 370.887] /A << /S /GoTo /D (vdata) >> >> +<<<<<<< HEAD:docs/psblas-3.6.pdf endstream endobj 1131 0 obj << /Length 5516 +======= +% 1100 0 obj +<< +/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) >> +>> +% 1101 0 obj +<< +/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) >> +>> +% 1105 0 obj +<< +/D [1103 0 R /XYZ 98.895 753.953 null] +>> +% 244 0 obj +<< +/D [1103 0 R /XYZ 99.895 716.092 null] +>> +% 1106 0 obj +<< +/D [1103 0 R /XYZ 267.641 490.109 null] +>> +% 1102 0 obj +<< +/Font << /F16 582 0 R /F8 585 0 R /F11 796 0 R /F14 813 0 R /F10 812 0 R /F7 811 0 R /F30 810 0 R /F27 584 0 R >> +/ProcSet [ /PDF /Text ] +>> +% 1108 0 obj +<< +/Type /Page +/Contents 1109 0 R +/Resources 1107 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1090 0 R +>> +% 1110 0 obj +<< +/D [1108 0 R /XYZ 149.705 753.953 null] +>> +% 1111 0 obj +<< +/D [1108 0 R /XYZ 150.705 632.405 null] +>> +% 1112 0 obj +<< +/D [1108 0 R /XYZ 150.705 572.685 null] +>> +% 1113 0 obj +<< +/D [1108 0 R /XYZ 175.611 574.622 null] +>> +% 1114 0 obj +<< +/D [1108 0 R /XYZ 175.611 562.667 null] +>> +% 1115 0 obj +<< +/D [1108 0 R /XYZ 175.611 550.712 null] +>> +% 1116 0 obj +<< +/D [1108 0 R /XYZ 175.611 538.757 null] +>> +% 1107 0 obj +<< +/Font << /F27 584 0 R /F8 585 0 R /F16 582 0 R >> +/ProcSet [ /PDF /Text ] +>> +% 1121 0 obj +<< +/Type /Page +/Contents 1122 0 R +/Resources 1120 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1090 0 R +/Annots [ 1117 0 R 1118 0 R 1119 0 R ] +>> +% 1117 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [368.549 289.84 444.603 300.965] +/A << /S /GoTo /D (vdata) >> +>> +% 1118 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [325.411 278.162 332.385 289.01] +/A << /S /GoTo /D (table.7) >> +>> +% 1119 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [259.464 208.355 326.522 219.48] +/A << /S /GoTo /D (descdata) >> +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> stream 0 g 0 G @@ -11109,327 +15694,357 @@ ET endstream endobj +<<<<<<< HEAD:docs/psblas-3.6.pdf 1138 0 obj +======= +1128 0 obj << -/Length 5523 +/Length 625 >> 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 +/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 +1135 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf +<< +/Length 6477 +>> +stream +0 g 0 G +0 g 0 G +BT +/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 +/F30 9.9626 Tf 397.998 319.864 Td [(vect)]TJ +ET +q +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 +/F30 9.9626 Tf 422.685 319.864 Td [(type)]TJ 0 g 0 G -/F8 9.9626 Tf 20.922 0 Td [(.)]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(8)]TJ 0 g 0 G -/F27 9.9626 Tf -236.091 -19.925 Td [(desc)]TJ + [(.)]TJ +0 g 0 G +/F27 9.9626 Tf -24.907 -22.677 Td [(desc)]TJ ET q -1 0 0 1 172.619 326.206 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 176.057 326.007 Td [(a)]TJ +/F27 9.9626 Tf 125.247 285.231 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 +/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 278.386 cm +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 +<<<<<<< HEAD:docs/psblas-3.6.pdf 1149 0 obj +======= +1141 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << -/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 +1154 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 +/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 -/F30 9.9626 Tf 422.685 144.236 Td [(type)]TJ +/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 -/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 +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 +<<<<<<< HEAD:docs/psblas-3.6.pdf [(.)-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 0 g 0 G 83.26 -29.888 Td [(47)]TJ @@ -11443,25 +16058,31 @@ endobj /Length 6976 >> stream +======= +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 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 +<<<<<<< HEAD:docs/psblas-3.6.pdf /F27 9.9626 Tf -24.906 -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.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.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)-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 -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.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 +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 0 0 1 rg 0 0 1 RG /F30 9.9626 Tf 244.743 0 Td [(psb)]TJ ET q +<<<<<<< HEAD:docs/psblas-3.6.pdf 1 0 0 1 436.673 592.09 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q @@ -11483,11 +16104,35 @@ BT /F30 9.9626 Tf 473.495 591.891 Td [(type)]TJ 0 g 0 G /F8 9.9626 Tf -297.884 -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 +======= +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 389.002 407.701 Td [(T)]TJ +ET +q +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 397.998 407.701 Td [(vect)]TJ +ET +q +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 422.685 407.701 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 +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 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 +<<<<<<< HEAD:docs/psblas-3.6.pdf /F27 9.9626 Tf -84.067 -18.597 Td [(desc)]TJ ET q @@ -11496,12 +16141,23 @@ q Q BT /F27 9.9626 Tf 176.057 549.383 Td [(a)]TJ +======= +/F27 9.9626 Tf -24.907 -19.926 Td [(desc)]TJ +ET +q +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 125.247 375.82 Td [(a)]TJ +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 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 +<<<<<<< HEAD:docs/psblas-3.6.pdf 1 0 0 1 327.588 501.762 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q @@ -11548,324 +16204,416 @@ BT /F8 9.9626 Tf 29.431 0 Td [(w)28(ork)-334(arr)1(a)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.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.597 Td [(On)-383(Return)]TJ +======= +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 279.917 328 Td [(desc)]TJ +ET +q +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 304.604 328 Td [(type)]TJ 0 g 0 G +/F8 9.9626 Tf 20.922 0 Td [(.)]TJ +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf +0 g 0 G +/F27 9.9626 Tf -225.631 -19.926 Td [(On)-383(Return)]TJ 0 g 0 G +<<<<<<< HEAD:docs/psblas-3.6.pdf 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.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.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(12)]TJ +======= 0 g 0 G - [(.)]TJ + 0 -19.925 Td [(res)]TJ +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 0 g 0 G +/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 +<<<<<<< HEAD:docs/psblas-3.6.pdf /F27 9.9626 Tf -24.906 -18.597 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(t)1(e)-1(d.)]TJ 0 g 0 G 141.968 -36.529 Td [(48)]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.149 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(out)]TJ/F8 9.9626 Tf 16.549 0 Td [(.)]TJ -50.035 -11.955 Td [(An)-333(in)28(tege)-1(r)-333(v)56(alue;)-334(0)-333(means)-333(no)-334(error)-333(has)-333(b)-28(een)-333(detecte)-1(d)1(.)]TJ +0 g 0 G + 141.968 -94.1 Td [(45)]TJ +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 0 g 0 G ET endstream endobj +<<<<<<< HEAD:docs/psblas-3.6.pdf 1170 0 obj +======= +1161 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << -/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 +/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 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 +/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 - 0 -21.442 Td [(alpha)]TJ +/F8 9.9626 Tf 33.797 0 Td [(Sync)28(hronous.)]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 +/F27 9.9626 Tf -33.797 -19.926 Td [(On)-383(En)32(try)]TJ 0 g 0 G - [(.)]TJ 0 g 0 G - 141.968 -29.888 Td [(49)]TJ + 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.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 135.658 0 Td [(psb)]TJ ET - -endstream -endobj -1182 0 obj -<< -/Length 7789 ->> -stream -0 g 0 G -0 g 0 G -0 g 0 G +q +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 -/F27 9.9626 Tf 150.705 706.129 Td [(t)]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 -0 g 0 G - [(.)]TJ +/F30 9.9626 Tf 330.727 345.932 Td [(Tspmat)]TJ +ET +q +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 365.874 345.932 Td [(type)]TJ 0 g 0 G -/F27 9.9626 Tf -208.773 -20.65 Td [(x)]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 [(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 -0 0 1 rg 0 0 1 RG -/F30 9.9626 Tf 244.743 0 Td [(psb)]TJ +/F27 9.9626 Tf -236.091 -19.925 Td [(desc)]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 +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 589.838 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 590.037 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 589.838 Td [(vect)]TJ +/F30 9.9626 Tf 330.727 278.186 Td [(desc)]TJ ET q -1 0 0 1 470.356 590.037 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 589.838 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)-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 +/F8 9.9626 Tf 20.921 0 Td [(.)]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 +/F27 9.9626 Tf -225.63 -19.925 Td [(On)-383(Return)]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 -19.925 Td [(F)96(unction)-384(v)64(alue)]TJ 0 g 0 G - [(.)]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 -24.907 -20.65 Td [(y)]TJ +/F27 9.9626 Tf -24.906 -19.926 Td [(info)]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 +/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 -56.242 Td [(46)]TJ +0 g 0 G +ET + +endstream +endobj +<<<<<<< HEAD:docs/psblas-3.6.pdf +1182 0 obj +======= +1168 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf +<< +/Length 5557 +>> +stream +0 g 0 G +0 g 0 G +BT +/F16 11.9552 Tf 99.895 706.129 Td [(4.11)-1125(psb)]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 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 439.811 428.986 Td [(T)]TJ +/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 +/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 445.669 429.186 cm -[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +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 -/F30 9.9626 Tf 448.807 428.986 Td [(vect)]TJ +/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 470.356 429.186 cm -[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +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 -/F30 9.9626 Tf 473.495 428.986 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 -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 -0 g 0 G -/F27 9.9626 Tf -84.067 -20.65 Td [(desc)]TJ +/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 172.619 384.625 cm -[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S +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 -/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 +/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 327.588 336.805 cm -[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +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 -/F30 9.9626 Tf 330.727 336.605 Td [(desc)]TJ +/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 352.275 336.805 cm -[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +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 -/F30 9.9626 Tf 355.414 336.605 Td [(type)]TJ +/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 -/F8 9.9626 Tf 20.921 0 Td [(.)]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 -/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 +/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 -62.489 -16.303 Td [(trans)-383(=)-384('T')]TJ +/F27 9.9626 Tf 0 -21.917 Td [(T)32(yp)-32(e:)]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 +/F8 9.9626 Tf 33.797 0 Td [(Sync)28(hronous.)]TJ 0 g 0 G -/F27 9.9626 Tf -61.493 -16.302 Td [(trans)-383(=)-384('C')]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 [(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 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 +/F8 9.9626 Tf 20.921 0 Td [(.)]TJ 0 g 0 G -/F27 9.9626 Tf -24.906 -20.65 Td [(unitd)]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 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 +/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 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 -87.577 -20.649 Td [(unitd)-383(=)-384('U')]TJ +/F8 9.9626 Tf 20.922 0 Td [(.)]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 +/F27 9.9626 Tf -225.631 -19.925 Td [(On)-383(Return)]TJ 0 g 0 G -/F27 9.9626 Tf -63.443 -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 -19.925 Td [(F)96(unction)-384(v)64(alue)]TJ 0 g 0 G -/F27 9.9626 Tf -61.519 -16.302 Td [(unitd)-383(=)-384('R')]TJ +/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 -/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 +/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 - 78.747 -29.888 Td [(50)]TJ + 141.968 -56.242 Td [(47)]TJ 0 g 0 G ET endstream endobj +<<<<<<< HEAD:docs/psblas-3.6.pdf 1188 0 obj +======= +1179 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << -/Length 4663 +/Length 7334 >> 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 150.705 706.129 Td [(4.12)-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 [(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 -/F27 9.9626 Tf -24.907 -19.925 Td [(c)32(hoice)]TJ +/F8 9.9626 Tf 138.581 0 Td [(\0501\051)]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 +/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 -/F30 9.9626 Tf -5.487 -19.925 Td [(psb_none_)]TJ +/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 - 0 -15.941 Td [(psb_sum_)]TJ + -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 - 0 -15.94 Td [(psb_avg_)]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.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 - 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 +/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.907 -19.925 Td [(diag)]TJ +/F11 9.9626 Tf -135.822 -17.433 Td [(A)]TJ 0 g 0 G +<<<<<<< HEAD:docs/psblas-3.6.pdf /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 @@ -11916,11 +16664,15 @@ BT 0 g 0 G 0 g 0 G /F30 9.9626 Tf -201.675 -24.145 Td [(psb_gemlt\050x,)-525(y,)-525(desc_a,)-525(info\051)]TJ +======= +/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 +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 0 g 0 G 0 g 0 G 0 g 0 G ET q +<<<<<<< HEAD:docs/psblas-3.6.pdf 1 0 0 1 234.474 610.766 cm []0 d 0 J 0.398 w 0 0 m 176.173 0 l S Q @@ -12009,16 +16761,170 @@ BT /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 [(t)28(yp)-28(e)-333(sp)-28(eci\014ed)-334(i)1(n)-334(T)84(able)]TJ 0 0 1 rg 0 0 1 RG [-334(2)]TJ +======= +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 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 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 234.775 504.806 Td [(Short)-333(Precision)-334(Real)-3102(psb)]TJ +ET +q +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 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 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 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 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 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 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 373.771 468.941 Td [(spmm)]TJ +ET +q +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 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 +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 327.588 211.183 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +Q +BT +/F30 9.9626 Tf 330.727 210.983 Td [(Tspmat)]TJ +ET +q +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 +/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 +/F27 9.9626 Tf -236.091 -18.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.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.742 0 Td [(psb)]TJ +ET +q +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 439.811 144.236 Td [(T)]TJ +ET +q +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 448.807 144.236 Td [(vect)]TJ +ET +q +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 473.495 144.236 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(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 +1194 0 obj +<< +/Length 6993 +>> +stream +0 g 0 G +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 0 g 0 G [(.)]TJ 0 g 0 G +<<<<<<< HEAD:docs/psblas-3.6.pdf /F27 9.9626 Tf -24.906 -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.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 [(in)]TJ/F8 9.9626 Tf 9.548 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-424(as:)-627(an)-425(ob)-56(ject)-424(of)-425(t)28(yp)-28(e)]TJ +======= +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 -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 +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 0 0 1 rg 0 0 1 RG /F30 9.9626 Tf 142.027 0 Td [(psb)]TJ ET q +<<<<<<< HEAD:docs/psblas-3.6.pdf 1 0 0 1 333.957 308.762 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q @@ -12042,9 +16948,35 @@ BT /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 [(t)28(yp)-28(e)-333(sp)-28(eci\014ed)-334(i)1(n)-334(T)84(able)]TJ 0 0 1 rg 0 0 1 RG [-334(2)]TJ +======= +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 - [(.)]TJ +/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 +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf +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 +<<<<<<< HEAD:docs/psblas-3.6.pdf /F27 9.9626 Tf -24.906 -22.895 Td [(desc)]TJ ET q @@ -12071,12 +17003,112 @@ q Q BT /F30 9.9626 Tf 355.414 225.892 Td [(type)]TJ +======= +/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 549.383 Td [(a)]TJ 0 g 0 G -/F8 9.9626 Tf 20.921 0 Td [(.)]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.658 0 Td [(psb)]TJ +ET +q +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 279.917 501.563 Td [(desc)]TJ +ET +q +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 304.604 501.563 Td [(type)]TJ +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 0 g 0 G +/F8 9.9626 Tf 20.922 0 Td [(.)]TJ +0 g 0 G +<<<<<<< HEAD:docs/psblas-3.6.pdf /F27 9.9626 Tf -225.63 -22.895 Td [(On)-383(Return)]TJ +======= +/F27 9.9626 Tf -225.631 -18.597 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)-334(p)-27(erform.)]TJ +0 g 0 G +/F27 9.9626 Tf -5.702 -18.597 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)-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 +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 +1201 0 obj +<< +/Length 6783 +>> +stream +0 g 0 G +0 g 0 G +BT +/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 +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf +0 g 0 G +/F11 9.9626 Tf -14.944 -21.063 Td [(x)]TJ 0 g 0 G +<<<<<<< HEAD:docs/psblas-3.6.pdf 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.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)-424(as:)-627(an)-425(ob)-56(ject)-424(of)-425(t)28(yp)-28(e)]TJ @@ -12121,27 +17153,124 @@ endobj /Length 624 >> stream +======= +/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 +/F11 9.9626 Tf -137.083 -19.948 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 -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(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 +q +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 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 +BT +/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 0 g 0 G +/F27 9.9626 Tf -125.681 -35.492 Td [(T)32(yp)-32(e:)]TJ +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf +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 +<<<<<<< HEAD:docs/psblas-3.6.pdf 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 -567.87 Td [(53)]TJ +======= +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 + [-333(13)]TJ +0 g 0 G + [(.)]TJ +0 g 0 G + 141.968 -29.888 Td [(50)]TJ +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 0 g 0 G ET endstream endobj +<<<<<<< HEAD:docs/psblas-3.6.pdf 1215 0 obj << /Length 7410 +======= +1212 0 obj +<< +/Length 7790 +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> stream 0 g 0 G 0 g 0 G +<<<<<<< HEAD:docs/psblas-3.6.pdf BT /F16 11.9552 Tf 150.705 706.129 Td [(psb)]TJ ET @@ -12154,11 +17283,26 @@ BT 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 +BT +/F27 9.9626 Tf 99.895 706.129 Td [(t)]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.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 +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf +0 g 0 G + [(.)]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 +<<<<<<< HEAD:docs/psblas-3.6.pdf 1 0 0 1 234.474 620.263 cm []0 d 0 J 0.398 w 0 0 m 176.173 0 l S Q @@ -12247,90 +17391,396 @@ BT /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 [(t)28(yp)-28(e)-333(sp)-28(eci\014ed)-334(i)1(n)-334(T)84(able)]TJ 0 0 1 rg 0 0 1 RG [-334(2)]TJ +======= +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 +/F30 9.9626 Tf 389.002 589.838 Td [(T)]TJ +ET +q +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 +/F30 9.9626 Tf 422.685 589.838 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(13)]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.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 +/F27 9.9626 Tf -83.615 -20.649 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.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.906 -19.844 Td [(y)]TJ +/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(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.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 [(in)]TJ/F8 9.9626 Tf 9.548 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-424(as:)-627(an)-425(ob)-56(ject)-424(of)-425(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 [(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 142.027 0 Td [(psb)]TJ +/F30 9.9626 Tf 244.743 0 Td [(psb)]TJ ET q -1 0 0 1 333.957 331.408 cm +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 -/F30 9.9626 Tf 337.095 331.209 Td [(T)]TJ +/F30 9.9626 Tf 389.002 428.986 Td [(T)]TJ ET q -1 0 0 1 342.953 331.408 cm +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 -/F30 9.9626 Tf 346.092 331.209 Td [(vect)]TJ +/F30 9.9626 Tf 397.998 428.986 Td [(vect)]TJ ET q -1 0 0 1 367.64 331.408 cm +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 -/F30 9.9626 Tf 370.779 331.209 Td [(type)]TJ +/F30 9.9626 Tf 422.685 428.986 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.32 -11.955 Td [(t)28(yp)-28(e)-333(sp)-28(eci\014ed)-334(i)1(n)-334(T)84(able)]TJ +/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 - [-334(2)]TJ + [-345(13)]TJ 0 g 0 G - [(.)]TJ + [(.)-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 -24.906 -19.844 Td [(desc)]TJ +/F27 9.9626 Tf -84.067 -20.65 Td [(desc)]TJ ET q -1 0 0 1 172.619 299.609 cm +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 -/F27 9.9626 Tf 176.057 299.41 Td [(a)]TJ +/F27 9.9626 Tf 125.247 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.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 +/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.659 0 Td [(psb)]TJ +/F30 9.9626 Tf 135.658 0 Td [(psb)]TJ ET q -1 0 0 1 327.588 251.788 cm +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 -/F30 9.9626 Tf 330.727 251.589 Td [(desc)]TJ +/F30 9.9626 Tf 279.917 336.605 Td [(desc)]TJ ET q -1 0 0 1 352.275 251.788 cm +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 -/F30 9.9626 Tf 355.414 251.589 Td [(type)]TJ +/F30 9.9626 Tf 304.604 336.605 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 -19.844 Td [(\015ag)]TJ +/F27 9.9626 Tf -225.631 -20.649 Td [(trans)]TJ 0 g 0 G -/F8 9.9626 Tf 22.644 0 Td [(c)28(hec)27(k)-351(if)-352(an)28(y)-352(of)-351(the)]TJ/F11 9.9626 Tf 84.211 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.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.612 0 Td [(optional)]TJ/F8 9.9626 Tf 43.897 0 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 -116.542 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(the)-333(logical)-333(v)55(alue)]TJ/F30 9.9626 Tf 131.784 0 Td [(flag=.true.)]TJ +/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 -156.69 -19.844 Td [(On)-383(Return)]TJ +/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 - 0 -19.844 Td [(x)]TJ +/F27 9.9626 Tf -62.489 -16.303 Td [(trans)-383(=)-384('T')]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.693 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.612 0 Td [(required)]TJ +/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 -/F8 9.9626 Tf 112.356 -29.888 Td [(54)]TJ +/F27 9.9626 Tf -61.493 -16.302 Td [(trans)-383(=)-384('C')]TJ 0 g 0 G -ET - -endstream -endobj -1220 0 obj -<< +/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 +1218 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 +1229 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 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 [(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 +ET +q +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 +/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 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 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 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 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 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 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 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 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 +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 -22.895 Td [(On)-383(En)32(try)]TJ +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf +0 g 0 G + [(.)]TJ +0 g 0 G +<<<<<<< HEAD:docs/psblas-3.6.pdf +/F27 9.9626 Tf -24.906 -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.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 [(in)]TJ/F8 9.9626 Tf 9.548 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-424(as:)-627(an)-425(ob)-56(ject)-424(of)-425(t)28(yp)-28(e)]TJ +======= + 0 -22.895 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 +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf +0 0 1 rg 0 0 1 RG +/F30 9.9626 Tf 142.027 0 Td [(psb)]TJ +ET +q +<<<<<<< HEAD:docs/psblas-3.6.pdf +1 0 0 1 333.957 331.408 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +Q +BT +/F30 9.9626 Tf 337.095 331.209 Td [(T)]TJ +ET +q +1 0 0 1 342.953 331.408 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +Q +BT +/F30 9.9626 Tf 346.092 331.209 Td [(vect)]TJ +ET +q +1 0 0 1 367.64 331.408 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +Q +BT +/F30 9.9626 Tf 370.779 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.32 -11.955 Td [(t)28(yp)-28(e)-333(sp)-28(eci\014ed)-334(i)1(n)-334(T)84(able)]TJ +======= +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 286.286 391.234 Td [(T)]TJ +ET +q +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 295.282 391.234 Td [(vect)]TJ +ET +q +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 319.969 391.234 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 +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf +0 0 1 rg 0 0 1 RG + [-334(2)]TJ +0 g 0 G + [(.)]TJ +0 g 0 G +<<<<<<< HEAD:docs/psblas-3.6.pdf +/F27 9.9626 Tf -24.906 -19.844 Td [(desc)]TJ +ET +q +1 0 0 1 172.619 299.609 cm +[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S +Q +BT +/F27 9.9626 Tf 176.057 299.41 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(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 251.788 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +Q +BT +/F30 9.9626 Tf 330.727 251.589 Td [(desc)]TJ +ET +q +1 0 0 1 352.275 251.788 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +Q +BT +/F30 9.9626 Tf 355.414 251.589 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.844 Td [(\015ag)]TJ +0 g 0 G +/F8 9.9626 Tf 22.644 0 Td [(c)28(hec)27(k)-351(if)-352(an)28(y)-352(of)-351(the)]TJ/F11 9.9626 Tf 84.211 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.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.612 0 Td [(optional)]TJ/F8 9.9626 Tf 43.897 0 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 -116.542 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(the)-333(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.69 -19.844 Td [(On)-383(Return)]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(result)-333(submatrix)]TJ/F11 9.9626 Tf 162.364 0 Td [(x)]TJ/F8 9.9626 Tf 5.693 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.612 0 Td [(required)]TJ +0 g 0 G +/F8 9.9626 Tf 112.356 -29.888 Td [(54)]TJ +0 g 0 G +ET + +endstream +endobj +1220 0 obj +<< /Length 1487 >> stream @@ -12568,10 +18018,113 @@ BT 0 g 0 G 141.968 -35.732 Td [(56)]TJ 0 g 0 G +======= +/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 283.148 308.762 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +Q +BT +/F30 9.9626 Tf 286.286 308.563 Td [(T)]TJ +ET +q +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 295.282 308.563 Td [(vect)]TJ +ET +q +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 319.969 308.563 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 -22.895 Td [(desc)]TJ +ET +q +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 +BT +/F27 9.9626 Tf 125.247 273.713 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 276.779 226.091 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +Q +BT +/F30 9.9626 Tf 279.917 225.892 Td [(desc)]TJ +ET +q +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 +BT +/F30 9.9626 Tf 304.604 225.892 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 -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 283.148 132.48 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +Q +BT +/F30 9.9626 Tf 286.286 132.281 Td [(T)]TJ +ET +q +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 +/F30 9.9626 Tf 295.282 132.281 Td [(vect)]TJ +ET +q +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 +/F30 9.9626 Tf 319.969 132.281 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(14)]TJ +0 g 0 G + [(.)]TJ +0 g 0 G + 141.968 -29.888 Td [(53)]TJ +0 g 0 G +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf ET endstream endobj +<<<<<<< HEAD:docs/psblas-3.6.pdf 1126 0 obj << /Type /ObjStm @@ -12591,6 +18144,211 @@ stream 1206 9528 1207 9672 1208 9817 1209 9961 1210 10106 1216 10253 268 10312 1217 10370 1213 10429 1219 10561 1211 10709 1212 10853 1221 11000 1218 11058 1229 11151 1223 11326 1224 11470 1225 11616 1226 11762 1227 11906 % 1119 0 obj +======= +1125 0 obj +<< +/Type /ObjStm +/N 100 +/First 989 +/Length 12346 +>> +stream +1123 0 248 58 1124 115 1120 174 1127 331 1129 449 1126 508 1134 588 1130 745 1131 889 +1132 1035 1136 1182 252 1240 1137 1297 1133 1356 1140 1501 1142 1619 1143 1678 1144 1737 1145 1796 +1146 1855 1147 1914 1148 1973 1139 2032 1153 2151 1149 2308 1150 2452 1151 2597 1155 2744 256 2802 +1156 2859 1152 2918 1160 3062 1157 3210 1158 3355 1162 3502 260 3561 1163 3619 1159 3678 1167 3822 +1164 3970 1165 4115 1169 4262 264 4320 1171 4377 1166 4436 1178 4582 1172 4748 1173 4895 1174 5040 +1175 5184 1180 5331 268 5390 1181 5448 1182 5507 1183 5566 1184 5625 1177 5684 1193 5841 1176 6043 +1185 6190 1186 6333 1187 6479 1188 6626 1189 6777 1190 6928 1191 7078 1195 7223 1192 7281 1200 7387 +1197 7526 1202 7672 272 7731 1203 7789 1199 7848 1211 8019 1198 8212 1204 8360 1205 8504 1206 8651 +1207 8798 1208 8942 1209 9089 1213 9235 1210 9293 1217 9425 1214 9573 1215 9720 1219 9867 1216 9926 +1228 10032 1220 10225 1221 10369 1222 10515 1223 10659 1224 10805 1225 10952 1226 11096 1230 11242 276 11300 +% 1123 0 obj +<< +/D [1121 0 R /XYZ 98.895 753.953 null] +>> +% 248 0 obj +<< +/D [1121 0 R /XYZ 99.895 716.092 null] +>> +% 1124 0 obj +<< +/D [1121 0 R /XYZ 267.641 432.072 null] +>> +% 1120 0 obj +<< +/Font << /F16 582 0 R /F8 585 0 R /F11 796 0 R /F14 813 0 R /F10 812 0 R /F7 811 0 R /F30 810 0 R /F27 584 0 R >> +/ProcSet [ /PDF /Text ] +>> +% 1127 0 obj +<< +/Type /Page +/Contents 1128 0 R +/Resources 1126 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1090 0 R +>> +% 1129 0 obj +<< +/D [1127 0 R /XYZ 149.705 753.953 null] +>> +% 1126 0 obj +<< +/Font << /F27 584 0 R /F8 585 0 R >> +/ProcSet [ /PDF /Text ] +>> +% 1134 0 obj +<< +/Type /Page +/Contents 1135 0 R +/Resources 1133 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1138 0 R +/Annots [ 1130 0 R 1131 0 R 1132 0 R ] +>> +% 1130 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [368.549 316.653 444.603 327.778] +/A << /S /GoTo /D (vdata) >> +>> +% 1131 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [325.411 304.975 332.385 315.823] +/A << /S /GoTo /D (table.8) >> +>> +% 1132 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [259.464 234.201 326.522 245.325] +/A << /S /GoTo /D (descdata) >> +>> +% 1136 0 obj +<< +/D [1134 0 R /XYZ 98.895 753.953 null] +>> +% 252 0 obj +<< +/D [1134 0 R /XYZ 99.895 716.092 null] +>> +% 1137 0 obj +<< +/D [1134 0 R /XYZ 267.641 500.643 null] +>> +% 1133 0 obj +<< +/Font << /F16 582 0 R /F8 585 0 R /F11 796 0 R /F14 813 0 R /F10 812 0 R /F27 584 0 R /F30 810 0 R >> +/ProcSet [ /PDF /Text ] +>> +% 1140 0 obj +<< +/Type /Page +/Contents 1141 0 R +/Resources 1139 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1138 0 R +>> +% 1142 0 obj +<< +/D [1140 0 R /XYZ 149.705 753.953 null] +>> +% 1143 0 obj +<< +/D [1140 0 R /XYZ 150.705 564.659 null] +>> +% 1144 0 obj +<< +/D [1140 0 R /XYZ 150.705 504.939 null] +>> +% 1145 0 obj +<< +/D [1140 0 R /XYZ 175.611 506.876 null] +>> +% 1146 0 obj +<< +/D [1140 0 R /XYZ 175.611 494.921 null] +>> +% 1147 0 obj +<< +/D [1140 0 R /XYZ 175.611 482.966 null] +>> +% 1148 0 obj +<< +/D [1140 0 R /XYZ 175.611 471.011 null] +>> +% 1139 0 obj +<< +/Font << /F27 584 0 R /F8 585 0 R /F11 796 0 R /F30 810 0 R /F16 582 0 R >> +/ProcSet [ /PDF /Text ] +>> +% 1153 0 obj +<< +/Type /Page +/Contents 1154 0 R +/Resources 1152 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1138 0 R +/Annots [ 1149 0 R 1150 0 R 1151 0 R ] +>> +% 1149 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [368.549 404.491 444.603 415.616] +/A << /S /GoTo /D (vdata) >> +>> +% 1150 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [325.411 392.812 332.385 403.66] +/A << /S /GoTo /D (table.9) >> +>> +% 1151 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [259.464 324.789 326.522 335.914] +/A << /S /GoTo /D (descdata) >> +>> +% 1155 0 obj +<< +/D [1153 0 R /XYZ 98.895 753.953 null] +>> +% 256 0 obj +<< +/D [1153 0 R /XYZ 99.895 716.092 null] +>> +% 1156 0 obj +<< +/D [1153 0 R /XYZ 267.641 540.923 null] +>> +% 1152 0 obj +<< +/Font << /F16 582 0 R /F8 585 0 R /F11 796 0 R /F14 813 0 R /F7 811 0 R /F30 810 0 R /F27 584 0 R >> +/ProcSet [ /PDF /Text ] +>> +% 1160 0 obj +<< +/Type /Page +/Contents 1161 0 R +/Resources 1159 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1138 0 R +/Annots [ 1157 0 R 1158 0 R ] +>> +% 1157 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << /Type /Annot /Subtype /Link @@ -12598,7 +18356,7 @@ stream /Rect [376.221 392.812 383.195 403.66] /A << /S /GoTo /D (table.9) >> >> -% 1120 0 obj +% 1158 0 obj << /Type /Annot /Subtype /Link @@ -12606,20 +18364,31 @@ stream /Rect [310.273 324.789 377.331 335.914] /A << /S /GoTo /D (descdata) >> >> -% 1124 0 obj +% 1162 0 obj << -/D [1122 0 R /XYZ 149.705 753.953 null] +/D [1160 0 R /XYZ 149.705 753.953 null] >> +<<<<<<< HEAD:docs/psblas-3.6.pdf % 244 0 obj +======= +% 260 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << -/D [1122 0 R /XYZ 150.705 720.077 null] +/D [1160 0 R /XYZ 150.705 716.092 null] >> +<<<<<<< HEAD:docs/psblas-3.6.pdf % 1125 0 obj << /D [1122 0 R /XYZ 318.451 540.923 null] +======= +% 1163 0 obj +<< +/D [1160 0 R /XYZ 320.941 513.305 null] +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> -% 1121 0 obj +% 1159 0 obj << +<<<<<<< HEAD:docs/psblas-3.6.pdf /Font << /F16 570 0 R /F8 573 0 R /F11 770 0 R /F14 787 0 R /F7 785 0 R /F30 784 0 R /F27 572 0 R >> /ProcSet [ /PDF /Text ] >> @@ -12631,20 +18400,81 @@ stream /MediaBox [0 0 595.276 841.89] /Parent 1117 0 R /Annots [ 1127 0 R 1128 0 R ] +======= +/Font << /F16 582 0 R /F8 585 0 R /F11 796 0 R /F14 813 0 R /F7 811 0 R /F27 584 0 R /F30 810 0 R >> +/ProcSet [ /PDF /Text ] >> -% 1127 0 obj +% 1167 0 obj +<< +/Type /Page +/Contents 1168 0 R +/Resources 1166 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1138 0 R +/Annots [ 1164 0 R 1165 0 R ] +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf +>> +% 1164 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) >> +>> +% 1165 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) >> +>> +% 1169 0 obj +<< +/D [1167 0 R /XYZ 98.895 753.953 null] +>> +% 264 0 obj +<< +/D [1167 0 R /XYZ 99.895 716.092 null] +>> +% 1171 0 obj +<< +/D [1167 0 R /XYZ 270.132 513.305 null] +>> +% 1166 0 obj +<< +/Font << /F16 582 0 R /F8 585 0 R /F11 796 0 R /F14 813 0 R /F13 1170 0 R /F27 584 0 R /F30 810 0 R >> +/ProcSet [ /PDF /Text ] +>> +% 1178 0 obj +<< +/Type /Page +/Contents 1179 0 R +/Resources 1177 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1138 0 R +/Annots [ 1172 0 R 1173 0 R 1174 0 R 1175 0 R ] +>> +% 1172 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] +<<<<<<< HEAD:docs/psblas-3.6.pdf /Rect [259.464 342.722 336.983 353.847] /A << /S /GoTo /D (spdata) >> +======= +/Rect [432.897 274.798 444.852 285.646] +/A << /S /GoTo /D (table.12) >> +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> -% 1128 0 obj +% 1173 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] +<<<<<<< HEAD:docs/psblas-3.6.pdf /Rect [259.464 274.976 326.522 286.101] /A << /S /GoTo /D (descdata) >> >> @@ -12659,8 +18489,12 @@ stream % 1133 0 obj << /D [1130 0 R /XYZ 270.132 513.305 null] +======= +/Rect [310.273 207.773 387.792 218.898] +/A << /S /GoTo /D (spdata) >> +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> -% 1129 0 obj +% 1174 0 obj << /Font << /F16 570 0 R /F8 573 0 R /F11 770 0 R /F14 787 0 R /F7 785 0 R /F27 572 0 R /F30 784 0 R >> /ProcSet [ /PDF /Text ] @@ -12679,14 +18513,22 @@ stream /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] +<<<<<<< HEAD:docs/psblas-3.6.pdf /Rect [310.273 342.722 387.792 353.847] /A << /S /GoTo /D (spdata) >> >> % 1135 0 obj +======= +/Rect [419.358 141.026 495.412 152.151] +/A << /S /GoTo /D (vdata) >> +>> +% 1175 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] +<<<<<<< HEAD:docs/psblas-3.6.pdf /Rect [310.273 274.976 377.331 286.101] /A << /S /GoTo /D (descdata) >> >> @@ -12787,66 +18629,157 @@ stream /Annots [ 1146 0 R 1155 0 R 1156 0 R 1157 0 R 1158 0 R 1159 0 R 1160 0 R 1161 0 R ] >> % 1146 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] +======= +/Rect [376.818 129.347 388.773 140.196] /A << /S /GoTo /D (table.12) >> >> -% 1155 0 obj +% 1180 0 obj << -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [419.358 588.68 495.412 599.805] -/A << /S /GoTo /D (vdata) >> +/D [1178 0 R /XYZ 149.705 753.953 null] >> -% 1156 0 obj +% 268 0 obj << -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [377.029 577.002 388.984 587.85] -/A << /S /GoTo /D (table.12) >> +/D [1178 0 R /XYZ 150.705 716.092 null] >> -% 1157 0 obj +% 1181 0 obj << -/Type /Annot +/D [1178 0 R /XYZ 290.613 661.837 null] +>> +% 1182 0 obj +<< +/D [1178 0 R /XYZ 287.475 645.402 null] +>> +% 1183 0 obj +<< +/D [1178 0 R /XYZ 286.835 628.966 null] +>> +% 1184 0 obj +<< +/D [1178 0 R /XYZ 320.941 449.071 null] +>> +% 1177 0 obj +<< +/Font << /F16 582 0 R /F8 585 0 R /F11 796 0 R /F14 813 0 R /F10 812 0 R /F7 811 0 R /F27 584 0 R /F30 810 0 R >> +/ProcSet [ /PDF /Text ] +>> +% 1193 0 obj +<< +/Type /Page +/Contents 1194 0 R +/Resources 1192 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1196 0 R +/Annots [ 1176 0 R 1185 0 R 1186 0 R 1187 0 R 1188 0 R 1189 0 R 1190 0 R 1191 0 R ] +>> +% 1176 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [382.088 655.375 394.043 666.223] +/A << /S /GoTo /D (table.12) >> +>> +<<<<<<< HEAD:docs/psblas-3.6.pdf +% 1155 0 obj +======= +% 1185 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf +<< +/Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] +<<<<<<< HEAD:docs/psblas-3.6.pdf +/Rect [419.358 588.68 495.412 599.805] +/A << /S /GoTo /D (vdata) >> +>> +% 1156 0 obj +======= +/Rect [368.549 588.68 444.603 599.805] +/A << /S /GoTo /D (vdata) >> +>> +% 1186 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +<<<<<<< HEAD:docs/psblas-3.6.pdf +/Rect [377.029 577.002 388.984 587.85] +/A << /S /GoTo /D (table.12) >> +>> +% 1157 0 obj +======= +/Rect [326.219 577.002 338.174 587.85] +/A << /S /GoTo /D (table.12) >> +>> +% 1187 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +<<<<<<< HEAD:docs/psblas-3.6.pdf /Rect [310.273 498.352 377.331 509.477] /A << /S /GoTo /D (descdata) >> >> % 1158 0 obj +======= +/Rect [259.464 498.352 326.522 509.477] +/A << /S /GoTo /D (descdata) >> +>> +% 1188 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] +<<<<<<< HEAD:docs/psblas-3.6.pdf /Rect [397.199 461.435 404.172 472.284] /A << /S /GoTo /D (equation.4.1) >> >> % 1159 0 obj +======= +/Rect [346.389 461.435 353.363 472.284] +/A << /S /GoTo /D (equation.4.1) >> +>> +% 1189 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] +<<<<<<< HEAD:docs/psblas-3.6.pdf /Rect [396.202 446.823 403.176 457.672] /A << /S /GoTo /D (equation.4.2) >> >> % 1160 0 obj +======= +/Rect [345.393 446.823 352.367 457.672] +/A << /S /GoTo /D (equation.4.2) >> +>> +% 1190 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] +<<<<<<< HEAD:docs/psblas-3.6.pdf /Rect [396.507 432.212 403.481 443.06] /A << /S /GoTo /D (equation.4.3) >> >> % 1161 0 obj +======= +/Rect [345.697 432.212 352.671 443.06] +/A << /S /GoTo /D (equation.4.3) >> +>> +% 1191 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] +<<<<<<< HEAD:docs/psblas-3.6.pdf /Rect [253.818 190.452 265.774 201.3] /A << /S /GoTo /D (table.12) >> >> @@ -12869,19 +18802,50 @@ stream /Annots [ 1166 0 R ] >> % 1166 0 obj +======= +/Rect [203.009 190.452 214.964 201.3] +/A << /S /GoTo /D (table.12) >> +>> +% 1195 0 obj +<< +/D [1193 0 R /XYZ 98.895 753.953 null] +>> +% 1192 0 obj +<< +/Font << /F27 584 0 R /F8 585 0 R /F11 796 0 R /F30 810 0 R >> +/ProcSet [ /PDF /Text ] +>> +% 1200 0 obj +<< +/Type /Page +/Contents 1201 0 R +/Resources 1199 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1196 0 R +/Annots [ 1197 0 R ] +>> +% 1197 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [382.088 117.392 394.043 128.24] +/Rect [432.897 117.392 444.852 128.24] /A << /S /GoTo /D (table.13) >> >> +<<<<<<< HEAD:docs/psblas-3.6.pdf % 1171 0 obj << /D [1169 0 R /XYZ 98.895 753.953 null] +======= +% 1202 0 obj +<< +/D [1200 0 R /XYZ 149.705 753.953 null] +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> -% 260 0 obj +% 272 0 obj << +<<<<<<< HEAD:docs/psblas-3.6.pdf /D [1169 0 R /XYZ 99.895 720.077 null] >> % 1172 0 obj @@ -12903,61 +18867,109 @@ stream /Annots [ 1167 0 R 1174 0 R 1175 0 R 1176 0 R 1177 0 R 1178 0 R 1179 0 R ] >> % 1167 0 obj +======= +/D [1200 0 R /XYZ 150.705 716.092 null] +>> +% 1203 0 obj +<< +/D [1200 0 R /XYZ 320.941 258.477 null] +>> +% 1199 0 obj +<< +/Font << /F16 582 0 R /F8 585 0 R /F11 796 0 R /F14 813 0 R /F13 1170 0 R /F7 811 0 R /F10 812 0 R /F30 810 0 R /F27 584 0 R >> +/ProcSet [ /PDF /Text ] +>> +% 1211 0 obj +<< +/Type /Page +/Contents 1212 0 R +/Resources 1210 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1196 0 R +/Annots [ 1198 0 R 1204 0 R 1205 0 R 1206 0 R 1207 0 R 1208 0 R 1209 0 R ] +>> +% 1198 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [358.482 655.375 365.455 666.223] +/Rect [307.672 655.375 314.646 666.223] /A << /S /GoTo /D (section.3) >> >> +<<<<<<< HEAD:docs/psblas-3.6.pdf % 1174 0 obj +======= +% 1204 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [419.358 586.627 495.412 597.752] +/Rect [368.549 586.627 444.603 597.752] /A << /S /GoTo /D (vdata) >> >> +<<<<<<< HEAD:docs/psblas-3.6.pdf % 1175 0 obj +======= +% 1205 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [376.818 574.949 388.773 585.797] +/Rect [326.008 574.949 337.963 585.797] /A << /S /GoTo /D (table.13) >> >> +<<<<<<< HEAD:docs/psblas-3.6.pdf % 1176 0 obj +======= +% 1206 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [432.897 494.523 444.852 505.372] +/Rect [382.088 494.523 394.043 505.372] /A << /S /GoTo /D (table.13) >> >> +<<<<<<< HEAD:docs/psblas-3.6.pdf % 1177 0 obj +======= +% 1207 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [419.358 425.776 495.412 436.901] +/Rect [368.549 425.776 444.603 436.901] /A << /S /GoTo /D (vdata) >> >> +<<<<<<< HEAD:docs/psblas-3.6.pdf % 1178 0 obj +======= +% 1208 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [377.029 414.098 388.984 424.946] +/Rect [326.219 414.098 338.174 424.946] /A << /S /GoTo /D (table.13) >> >> +<<<<<<< HEAD:docs/psblas-3.6.pdf % 1179 0 obj +======= +% 1209 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [310.273 333.395 377.331 344.52] +/Rect [259.464 333.395 326.522 344.52] /A << /S /GoTo /D (descdata) >> >> +<<<<<<< HEAD:docs/psblas-3.6.pdf % 1183 0 obj << /D [1181 0 R /XYZ 149.705 753.953 null] @@ -12977,21 +18989,47 @@ stream /Annots [ 1184 0 R 1185 0 R ] >> % 1184 0 obj +======= +% 1213 0 obj +<< +/D [1211 0 R /XYZ 98.895 753.953 null] +>> +% 1210 0 obj +<< +/Font << /F27 584 0 R /F8 585 0 R /F11 796 0 R /F14 813 0 R /F30 810 0 R /F17 776 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 1196 0 R +/Annots [ 1214 0 R 1215 0 R ] +>> +% 1214 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [162.826 410.238 174.781 419.149] +/Rect [213.636 410.238 225.591 419.149] /A << /S /GoTo /D (table.13) >> >> +<<<<<<< HEAD:docs/psblas-3.6.pdf % 1185 0 obj +======= +% 1215 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [203.009 228.974 214.964 239.822] +/Rect [253.818 228.974 265.774 239.822] /A << /S /GoTo /D (table.13) >> >> +<<<<<<< HEAD:docs/psblas-3.6.pdf % 1189 0 obj << /D [1187 0 R /XYZ 98.895 753.953 null] @@ -13027,26 +19065,62 @@ stream /A << /S /GoTo /D (table.2) >> >> % 1192 0 obj +======= +% 1219 0 obj +<< +/D [1217 0 R /XYZ 149.705 753.953 null] +>> +% 1216 0 obj +<< +/Font << /F8 585 0 R /F27 584 0 R /F11 796 0 R /F30 810 0 R >> +/ProcSet [ /PDF /Text ] +>> +% 1228 0 obj +<< +/Type /Page +/Contents 1229 0 R +/Resources 1227 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1196 0 R +/Annots [ 1220 0 R 1221 0 R 1222 0 R 1223 0 R 1224 0 R 1225 0 R 1226 0 R ] +>> +% 1220 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] +<<<<<<< HEAD:docs/psblas-3.6.pdf /Rect [316.642 305.353 392.696 316.478] /A << /S /GoTo /D (vdata) >> >> % 1193 0 obj +======= +/Rect [265.833 388.024 341.887 399.149] +/A << /S /GoTo /D (vdata) >> +>> +% 1221 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] +<<<<<<< HEAD:docs/psblas-3.6.pdf /Rect [276.234 293.674 283.208 304.523] /A << /S /GoTo /D (table.2) >> >> % 1194 0 obj +======= +/Rect [225.425 376.346 232.399 387.194] +/A << /S /GoTo /D (table.2) >> +>> +% 1222 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] +<<<<<<< HEAD:docs/psblas-3.6.pdf /Rect [310.273 222.682 377.331 233.807] /A << /S /GoTo /D (descdata) >> >> @@ -13118,18 +19192,32 @@ stream /A << /S /GoTo /D (vdata) >> >> % 1207 0 obj +======= +/Rect [265.833 305.353 341.887 316.478] +/A << /S /GoTo /D (vdata) >> +>> +% 1223 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] +<<<<<<< HEAD:docs/psblas-3.6.pdf /Rect [276.234 395.94 283.208 406.789] /A << /S /GoTo /D (table.2) >> >> % 1208 0 obj +======= +/Rect [225.425 293.674 232.399 304.523] +/A << /S /GoTo /D (table.2) >> +>> +% 1224 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] +<<<<<<< HEAD:docs/psblas-3.6.pdf /Rect [316.642 327.999 392.696 339.124] /A << /S /GoTo /D (vdata) >> >> @@ -13176,18 +19264,32 @@ stream /Annots [ 1211 0 R 1212 0 R ] >> % 1211 0 obj +======= +/Rect [259.464 222.682 326.522 233.807] +/A << /S /GoTo /D (descdata) >> +>> +% 1225 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] +<<<<<<< HEAD:docs/psblas-3.6.pdf /Rect [265.833 690.964 341.887 702.088] /A << /S /GoTo /D (vdata) >> >> % 1212 0 obj +======= +/Rect [265.833 129.071 341.887 140.196] +/A << /S /GoTo /D (vdata) >> +>> +% 1226 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] +<<<<<<< HEAD:docs/psblas-3.6.pdf /Rect [245.572 679.285 257.527 690.133] /A << /S /GoTo /D (table.14) >> >> @@ -13216,9 +19318,14 @@ stream /Border[0 0 0]/H/I/C[1 0 0] /Rect [316.642 429.544 392.696 440.669] /A << /S /GoTo /D (vdata) >> +======= +/Rect [245.572 117.392 257.527 128.24] +/A << /S /GoTo /D (table.14) >> +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> -% 1224 0 obj +% 1230 0 obj << +<<<<<<< HEAD:docs/psblas-3.6.pdf /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] @@ -13232,9 +19339,13 @@ stream /Border[0 0 0]/H/I/C[1 0 0] /Rect [310.273 351.49 377.331 362.615] /A << /S /GoTo /D (descdata) >> +======= +/D [1228 0 R /XYZ 98.895 753.953 null] +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> -% 1226 0 obj +% 276 0 obj << +<<<<<<< HEAD:docs/psblas-3.6.pdf /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] @@ -13255,6 +19366,9 @@ endobj 1237 0 obj << /Length 632 +======= +/D [1228 0 R /XYZ 99.895 716.092 null] +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> stream 0 g 0 G @@ -13272,9 +19386,15 @@ ET endstream endobj +<<<<<<< HEAD:docs/psblas-3.6.pdf 1245 0 obj << /Length 7227 +======= +1235 0 obj +<< +/Length 625 +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> stream 0 g 0 G @@ -13424,6 +19544,7 @@ BT 0 0 1 rg 0 0 1 RG [-333(17)]TJ 0 g 0 G +<<<<<<< HEAD:docs/psblas-3.6.pdf [(.)]TJ 0 g 0 G /F27 9.9626 Tf -24.906 -19.658 Td [(desc)]TJ @@ -13464,18 +19585,44 @@ BT /F8 9.9626 Tf 26.94 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.612 0 Td [(optional)]TJ/F8 9.9626 Tf -29.612 -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.48 0 Td [(psb_comm_halo_)]TJ/F8 9.9626 Tf 73.224 0 Td [(,)]TJ/F30 9.9626 Tf 2.768 0 Td [(psb_comm_mov_)]TJ/F8 9.9626 Tf 67.994 0 Td [(,)]TJ/F30 9.9626 Tf 5.203 0 Td [(psb_comm_ext_)]TJ/F8 9.9626 Tf 67.994 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.225 0 Td [(.)-705(Cho)-27(ose)-1(s)-420(the)-420(index)-420(list)-420(on)-420(whic)28(h)-420(to)-420(base)-420(the)]TJ -112.314 -11.955 Td [(data)-333(exc)27(hange.)]TJ 0 g 0 G 141.968 -29.888 Td [(58)]TJ +======= +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 [(54)]TJ +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 0 g 0 G ET endstream endobj +<<<<<<< HEAD:docs/psblas-3.6.pdf 1255 0 obj << /Length 3199 +======= +1246 0 obj +<< +/Length 7432 +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> 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 BT /F27 9.9626 Tf 99.895 706.129 Td [(On)-383(Return)]TJ @@ -13496,14 +19643,34 @@ BT 0 g 0 G 0 g 0 G ET +<<<<<<< HEAD:docs/psblas-3.6.pdf 1 0 0 1 159.702 337.279 cm q .45 0 0 .45 0 0 cm q 1 0 0 1 0 0 cm /Im3 Do +======= +q +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 183.665 607.909 cm +[]0 d 0 J 0.398 w 0 0 m 176.173 0 l S +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 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 +<<<<<<< HEAD:docs/psblas-3.6.pdf 0 g 0 G 1 0 0 1 -159.702 -337.279 cm BT @@ -13723,11 +19890,57 @@ BT -141.768 -19.214 Td [(Q)]TJ 0 g 0 G /F8 9.9626 Tf 12.858 0 Td [(is)-333(the)-334(o)28(v)28(erlap)-333(op)-28(erator;)-333(it)-334(is)-333(the)-333(comp)-28(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.14 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 +======= +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 +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 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 +<<<<<<< HEAD:docs/psblas-3.6.pdf 1 0 0 1 177.988 587.879 cm []0 d 0 J 0.398 w 0 0 m 187.526 0 l S Q @@ -13772,9 +19985,86 @@ ET q 1 0 0 1 177.988 527.306 cm []0 d 0 J 0.398 w 0 0 m 187.526 0 l S +======= +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 +/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 +/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 +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf +Q BT +<<<<<<< HEAD:docs/psblas-3.6.pdf /F8 9.9626 Tf 225.577 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 @@ -13814,9 +20104,160 @@ q Q BT /F8 9.9626 Tf 368.634 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 +======= +/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 +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 +1252 0 obj +<< +/Length 1485 +>> +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 [(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 333.957 694.373 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +Q +BT +/F30 9.9626 Tf 337.095 694.174 Td [(T)]TJ +ET +q +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 +/F30 9.9626 Tf 346.092 694.174 Td [(vect)]TJ +ET +q +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 +/F30 9.9626 Tf 370.779 694.174 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.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 +ET + +endstream +endobj +1261 0 obj +<< +/Length 7499 +>> +stream +0 g 0 G +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 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 [(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 +0 g 0 G +/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 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 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 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 189.642 612.652 Td [(Short)-333(Precision)-334(Real)-3102(psb)]TJ +ET +q +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 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 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 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 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 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 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 328.638 576.787 Td [(gein)28(v)]TJ +ET +q +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 +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf +0 g 0 G +BT +/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 +<<<<<<< HEAD:docs/psblas-3.6.pdf /F27 9.9626 Tf -268.739 -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 @@ -13827,10 +20268,24 @@ BT 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.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 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 +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 0 0 1 rg 0 0 1 RG -/F30 9.9626 Tf 244.743 0 Td [(psb)]TJ +/F30 9.9626 Tf 142.027 0 Td [(psb)]TJ ET q +<<<<<<< HEAD:docs/psblas-3.6.pdf 1 0 0 1 385.864 347.39 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q @@ -13867,10 +20322,49 @@ BT /F27 9.9626 Tf 125.247 316.022 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(a)-333(structured)-333(data)-333(of)-334(t)28(yp)-28(e)]TJ +======= +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 +BT +/F30 9.9626 Tf 286.286 432.754 Td [(T)]TJ +ET +q +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 +/F30 9.9626 Tf 295.282 432.754 Td [(vect)]TJ +ET +q +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 +/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 -/F30 9.9626 Tf 170.915 0 Td [(psb)]TJ + [-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 121.81 402.72 cm +[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S +Q +BT +/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 +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf +0 0 1 rg 0 0 1 RG +/F30 9.9626 Tf 135.658 0 Td [(psb)]TJ +ET +q +<<<<<<< HEAD:docs/psblas-3.6.pdf 1 0 0 1 312.036 268.401 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q @@ -13919,9 +20413,131 @@ ET q 1 0 0 1 216.4 202.789 cm []0 d 0 J 0.398 w 0 0 m 3.437 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 +/F30 9.9626 Tf 279.917 354.7 Td [(desc)]TJ +ET +q +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 +/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 283.148 204.424 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +Q BT +/F30 9.9626 Tf 286.286 204.224 Td [(T)]TJ +ET +q +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 +/F30 9.9626 Tf 295.282 204.224 Td [(vect)]TJ +ET +q +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 +/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 + [(.)]TJ +0 g 0 G +/F27 9.9626 Tf -24.907 -18.278 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 -35.732 Td [(57)]TJ +0 g 0 G +ET + +endstream +endobj +1267 0 obj +<< +/Length 651 +>> +stream +0 g 0 G +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 +0 g 0 G + [(.)]TJ +0 g 0 G + 166.874 -569.96 Td [(58)]TJ +0 g 0 G +ET + +endstream +endobj +1275 0 obj +<< +/Length 7269 +>> +stream +0 g 0 G +0 g 0 G +BT +/F16 11.9552 Tf 99.895 706.129 Td [(5.1)-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 [(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 0 -19.391 Td [(x)]TJ +0 g 0 G +/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 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 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 177.988 590.295 cm +[]0 d 0 J 0.398 w 0 0 m 187.526 0 l S +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf +Q +0 g 0 G +BT +<<<<<<< HEAD:docs/psblas-3.6.pdf /F8 9.9626 Tf 224.819 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 /F27 9.9626 Tf -250.617 -15.229 Td [(up)-32(date)-383(=)-384(psb)]TJ @@ -13936,9 +20552,24 @@ ET q 1 0 0 1 215.127 187.56 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S +======= +/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 +ET +q +1 0 0 1 319.972 569.971 cm +[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf Q 0 g 0 G BT +<<<<<<< HEAD:docs/psblas-3.6.pdf /F8 9.9626 Tf 223.546 187.36 Td [(Av)28(erage)-334(o)28(v)28(erlap)-333(en)27(tri)1(e)-1(s,)-333(i.e.)-444(apply)]TJ/F11 9.9626 Tf 152.345 0 Td [(P)]TJ/F10 6.9738 Tf 6.397 -1.494 Td [(a)]TJ/F11 9.9626 Tf 4.819 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.361 -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 @@ -13978,14 +20609,82 @@ stream 0 g 0 G BT /F27 9.9626 Tf 150.705 706.129 Td [(w)32(ork)]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 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 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 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 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 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 322.961 533.906 Td [(halo)]TJ +ET +q +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 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.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 +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 +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 +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 +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 +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 0 g 0 G /F8 9.9626 Tf 29.431 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.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 [(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(arr)1(a)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.209 -19.925 Td [(On)-383(Return)]TJ 0 g 0 G +<<<<<<< HEAD:docs/psblas-3.6.pdf +======= +/F27 9.9626 Tf -246.135 -26.961 Td [(T)32(yp)-32(e:)]TJ +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 0 g 0 G 0 -19.925 Td [(x)]TJ 0 g 0 G +<<<<<<< HEAD:docs/psblas-3.6.pdf /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 [(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(18)]TJ @@ -14296,8 +20995,45 @@ BT 0 g 0 G /F8 9.9626 Tf 33.007 0 Td [(is)-333(the)-334(collect)-333(function.)]TJ 0 g 0 G +======= +/F27 9.9626 Tf -33.797 -19.659 Td [(On)-383(En)32(try)]TJ +0 g 0 G +0 g 0 G + 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 385.864 346.872 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 +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 -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 +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 0 g 0 G + [(.)]TJ 0 g 0 G +<<<<<<< HEAD:docs/psblas-3.6.pdf ET q 1 0 0 1 177.988 555.154 cm @@ -14356,9 +21092,50 @@ Q BT /F8 9.9626 Tf 225.577 454.587 Td [(T)83(able)-333(19:)-444(Data)-334(t)28(yp)-28(es)]TJ 0 g 0 G +======= +/F27 9.9626 Tf -24.907 -19.658 Td [(desc)]TJ +ET +q +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 125.247 315.06 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 +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 267.438 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 +ET +q +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 339.861 267.239 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.658 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.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 +/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 +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 0 g 0 G /F27 9.9626 Tf -124.305 -30.984 Td [(c)-138(a)-138(l)-139(l)]TJ/F8 9.9626 Tf 29.738 0 Td [(p)-123(s)-123(b)]TJ ET +<<<<<<< HEAD:docs/psblas-3.6.pdf q 1 0 0 1 150.286 423.802 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S @@ -14613,8 +21390,448 @@ ET q 1 0 0 1 177.988 539.65 cm []0 d 0 J 0.398 w 0 0 m 187.526 0 l S +======= + +endstream +endobj +1285 0 obj +<< +/Length 3196 +>> +stream +0 g 0 G +0 g 0 G +0 g 0 G +BT +/F27 9.9626 Tf 150.705 706.129 Td [(On)-383(Return)]TJ +0 g 0 G +0 g 0 G + 0 -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 + [-333(17)]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 [(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 g 0 G +ET +1 0 0 1 210.511 337.279 cm +q +.45 0 0 .45 0 0 cm +q +1 0 0 1 0 0 cm +/Im3 Do +Q +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 +0 g 0 G +0 g 0 G +/F16 11.9552 Tf -89.373 -23.91 Td [(Usage)-381(Example)]TJ/F8 9.9626 Tf 93.98 0 Td [(Consider)-338(the)-339(discretization)-338(mesh)-339(depicted)-338(in)-338(\014g.)]TJ +0 0 1 rg 0 0 1 RG + [-339(7)]TJ +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 +0 g 0 G + 166.874 -119.319 Td [(60)]TJ +0 g 0 G +ET + +endstream +endobj +1281 0 obj +<< +/Type /XObject +/Subtype /Form +/FormType 1 +/PTEX.FileName (./figures/try8x8.pdf) +/PTEX.PageNumber 1 +/PTEX.InfoDict 1288 0 R +/BBox [0 0 498 439] +/Resources << +/ProcSet [ /PDF /Text ] +/ExtGState << +/R7 1289 0 R +>>/Font << /R8 1290 0 R/R10 1291 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 +1294 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 +1295 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 +1298 0 obj +<< +/Length 3050 +>> +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 +0 g 0 G +/F8 9.9626 Tf 100.66 -105.903 Td [(61)]TJ +0 g 0 G +ET + +endstream +endobj +1307 0 obj +<< +/Length 8492 +>> +stream +0 g 0 G +0 g 0 G +BT +/F16 11.9552 Tf 150.705 706.129 Td [(5.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 [(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 +/F11 9.9626 Tf 0 -18.503 Td [(x)]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 +0 g 0 G + -141.767 -19.214 Td [(Q)]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 +0 g 0 G +0 g 0 G +0 g 0 G +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 +Q +BT +/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 228.797 575.525 cm +[]0 d 0 J 0.398 w 0 0 m 187.526 0 l S +Q +BT +/F8 9.9626 Tf 234.775 566.957 Td [(Short)-333(Precision)-334(Real)-3102(psb)]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 +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 +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 +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 +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 +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 +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 +Q +BT +/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 +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 +/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 +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 +ET +q +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 +/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 201.669 459.045 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 +ET +q +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 +/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 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 439.811 347.191 Td [(T)]TJ +ET +q +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.807 347.191 Td [(vect)]TJ +ET +q +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.495 347.191 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 +0 0 1 rg 0 0 1 RG + [-333(18)]TJ +0 g 0 G + [(.)]TJ +0 g 0 G +/F27 9.9626 Tf -24.906 -19.214 Td [(desc)]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 +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 +ET +q +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 268.201 Td [(desc)]TJ +ET +q +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 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.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 +/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 +ET +q +1 0 0 1 272.62 218.017 cm +[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf Q +0 g 0 G BT +<<<<<<< HEAD:docs/psblas-3.6.pdf /F11 9.9626 Tf 183.966 531.082 Td [(x)]TJ/F10 6.9738 Tf 5.693 -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 @@ -14666,8 +21883,28 @@ Q 0 g 0 G BT /F8 9.9626 Tf 225.577 439.083 Td [(T)83(able)-333(20:)-444(Data)-334(t)28(yp)-28(es)]TJ +======= +/F8 9.9626 Tf 281.039 217.818 Td [(Do)-333(nothing;)]TJ +0 g 0 G +/F27 9.9626 Tf -105.428 -15.229 Td [(up)-32(date)-383(=)-384(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 +Q +BT +/F27 9.9626 Tf 248.223 202.589 Td [(add)]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 +Q +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 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 +<<<<<<< HEAD:docs/psblas-3.6.pdf /F27 9.9626 Tf -124.305 -33.261 Td [(c)-138(a)-138(l)-139(l)]TJ/F8 9.9626 Tf 29.991 0 Td [(p)-148(s)-149(b)]TJ ET q @@ -14734,8 +21971,24 @@ ET q 1 0 0 1 312.036 214.095 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S +======= +/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 +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf Q +0 g 0 G BT +<<<<<<< HEAD:docs/psblas-3.6.pdf /F30 9.9626 Tf 315.174 213.896 Td [(desc)]TJ ET q @@ -14752,20 +22005,53 @@ BT /F8 9.9626 Tf 25.931 0 Td [(The)-420(pro)-27(ces)-1(s)-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.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)-344(as:)-468(an)-344(in)28(teger)-345(v)55(ariab)1(le)]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.704 0 Td [(r)-28(oot)]TJ/F14 9.9626 Tf 20.983 0 Td [(\024)]TJ/F11 9.9626 Tf 10.705 0 Td [(np)]TJ/F14 9.9626 Tf 13.281 0 Td [(\000)]TJ/F8 9.9626 Tf 10.038 0 Td [(1,)-348(defau)1(lt)]TJ/F30 9.9626 Tf 44.81 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 141.968 -29.888 Td [(67)]TJ +======= +/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 245.048 144.435 cm +[]0 d 0 J 0.398 w 0 0 m 2.989 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 +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 +Q +BT +/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 + 141.968 -29.888 Td [(62)]TJ +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 0 g 0 G ET endstream endobj +<<<<<<< HEAD:docs/psblas-3.6.pdf 1340 0 obj << /Length 4181 +======= +1319 0 obj +<< +/Length 5866 +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> stream 0 g 0 G 0 g 0 G 0 g 0 G BT +<<<<<<< HEAD:docs/psblas-3.6.pdf /F27 9.9626 Tf 150.705 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(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.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)-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 @@ -14827,12 +22113,38 @@ q Q BT /F30 9.9626 Tf 390.468 646.353 Td [(type)]TJ +======= +/F27 9.9626 Tf 99.895 706.129 Td [(w)32(ork)]TJ 0 g 0 G -/F8 9.9626 Tf 20.921 0 Td [(.)]TJ +/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 +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 +0 0 1 rg 0 0 1 RG + [-333(18)]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 +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 0 g 0 G +/F8 9.9626 Tf 12.177 -19.925 Td [(1.)]TJ +0 g 0 G +<<<<<<< HEAD:docs/psblas-3.6.pdf /F27 9.9626 Tf -260.684 -19.925 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 +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 0 g 0 G + -12.73 -19.926 Td [(2.)]TJ 0 g 0 G +<<<<<<< HEAD:docs/psblas-3.6.pdf 0 -19.926 Td [(lo)-32(c)]TJ ET q @@ -14885,19 +22197,46 @@ BT /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 -388.543 Td [(68)]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 + -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 [(63)]TJ +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 0 g 0 G ET endstream endobj +<<<<<<< HEAD:docs/psblas-3.6.pdf 1344 0 obj << /Length 6538 +======= +1327 0 obj +<< +/Length 3619 +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> stream 0 g 0 G 0 g 0 G +0 g 0 G +0 g 0 G +0 g 0 G BT +<<<<<<< HEAD:docs/psblas-3.6.pdf /F16 14.3462 Tf 99.895 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 @@ -14914,13 +22253,32 @@ BT 0 g 0 G 0 g 0 G 0 -19.201 Td [(T)32(yp)-32(e:)]TJ +======= +/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 +1331 0 obj +<< +/Length 325 +>> +stream +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 0 g 0 G -/F8 9.9626 Tf 33.797 0 Td [(Sync)28(hronous.)]TJ 0 g 0 G +<<<<<<< HEAD:docs/psblas-3.6.pdf /F27 9.9626 Tf -33.797 -19.201 Td [(icon)32(txt)]TJ +======= +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 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.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(in)28(teger)-333(v)55(alue.)]TJ 0 g 0 G +<<<<<<< HEAD:docs/psblas-3.6.pdf /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(e)-1(ac)28(h)-333(index)]TJ/F11 9.9626 Tf 123.565 0 Td [(i)]TJ/F14 9.9626 Tf 6.199 0 Td [(2)-278(f)]TJ/F8 9.9626 Tf 14.391 0 Td [(1)]TJ/F11 9.9626 Tf 6.641 0 Td [(:)-167(:)-166(:)-167(mg)]TJ/F14 9.9626 Tf 27.14 0 Td [(g)]TJ/F8 9.9626 Tf 8.303 0 Td [(is)-333(allo)-28(cated)-333(to)-334(pro)-27(c)-1(ess)]TJ/F11 9.9626 Tf 99.266 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.)]TJ -294.958 -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(an)-333(in)28(teger)-333(arra)27(y)84(.)]TJ @@ -14942,11 +22300,31 @@ BT /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.151 0 Td [(nl)]TJ/F8 9.9626 Tf 9.148 0 Td [(\051)-363(b)-28(elonging)-363(to)-363(the)-364(calling)]TJ -207.747 -11.955 Td [(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.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 141.968 -29.888 Td [(69)]TJ +======= +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 +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 0 g 0 G ET endstream endobj +<<<<<<< HEAD:docs/psblas-3.6.pdf 1233 0 obj << /Type /ObjStm @@ -15010,8 +22388,24 @@ stream % 1235 0 obj << /Font << /F16 570 0 R /F8 573 0 R >> +======= +1314 0 obj +<< +/Type /XObject +/Subtype /Form +/FormType 1 +/PTEX.FileName (./figures/try8x8_ov.pdf) +/PTEX.PageNumber 1 +/PTEX.InfoDict 1333 0 R +/BBox [0 0 516 439] +/Resources << +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf /ProcSet [ /PDF /Text ] +/ExtGState << +/R7 1334 0 R +>>/Font << /R8 1335 0 R/R10 1336 0 R>> >> +<<<<<<< HEAD:docs/psblas-3.6.pdf % 1244 0 obj << /Type /Page @@ -15265,260 +22659,1218 @@ stream /Annots [ 1283 0 R 1285 0 R 1286 0 R ] >> % 1283 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [253.818 555.748 265.774 566.597] -/A << /S /GoTo /D (table.18) >> ->> -% 1285 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [457.829 326.22 464.803 338.84] -/A << /S /GoTo /D (figure.8) >> ->> -% 1286 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [357.569 302.697 364.543 313.546] -/A << /S /GoTo /D (figure.7) >> ->> -% 1290 0 obj -<< -/D [1288 0 R /XYZ 149.705 753.953 null] ->> -% 1291 0 obj -<< -/D [1288 0 R /XYZ 150.705 465.033 null] +======= +/Length 3413 +/Filter /FlateDecode >> -% 1292 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 +1339 0 obj << -/D [1288 0 R /XYZ 150.705 431.215 null] +/Filter /FlateDecode +/Subtype /Type1C +/Length 13073 >> -% 1293 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 +1340 0 obj << -/D [1288 0 R /XYZ 150.705 387.38 null] +/Filter /FlateDecode +/Subtype /Type1C +/Length 11578 >> -% 1287 0 obj +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 +1346 0 obj << -/Font << /F27 572 0 R /F8 573 0 R /F11 770 0 R /F16 570 0 R /F10 786 0 R /F30 784 0 R >> -/ProcSet [ /PDF /Text ] +/Length 9376 >> -% 1296 0 obj +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 +1232 0 obj << -/Type /Page -/Contents 1297 0 R -/Resources 1295 0 R -/MediaBox [0 0 595.276 841.89] -/Parent 1282 0 R +/Type /ObjStm +/N 100 +/First 993 +/Length 12573 >> -% 1298 0 obj +stream +1231 0 1227 59 1234 191 1236 309 1233 368 1245 448 1237 623 1238 767 1239 912 1240 1056 +1241 1201 1247 1348 280 1406 1248 1463 1244 1522 1251 1654 1242 1802 1243 1946 1253 2093 1250 2152 +1260 2245 1254 2420 1255 2564 1256 2710 1257 2856 1258 3000 1262 3147 284 3205 1263 3262 1259 3321 +1266 3453 1264 3592 1268 3740 288 3799 1265 3857 1274 3937 1269 4094 1270 4238 1271 4385 1276 4532 +292 4590 1277 4647 1278 4706 1279 4764 1280 4822 1273 4880 1284 5012 1288 5160 1289 5287 1290 5330 +1291 5537 1292 5775 1293 6051 1272 6287 1282 6434 1286 6580 1287 6639 1283 6698 1297 6846 1299 6964 +1296 7022 1306 7103 1302 7260 1303 7404 1304 7551 1308 7697 296 7756 1309 7814 1310 7873 1311 7932 +1312 7991 1305 8050 1318 8195 1313 8352 1315 8499 1316 8644 1320 8791 1321 8849 1322 8907 1323 8965 +1317 9022 1326 9154 1328 9272 1325 9331 1330 9411 1333 9529 1334 9656 1335 9699 1336 9906 1337 10144 +1338 10420 1332 10656 1324 10714 1329 10773 1345 10869 1341 11026 1342 11170 1343 11317 1347 11463 300 11522 +% 1231 0 obj << -/D [1296 0 R /XYZ 98.895 753.953 null] +/D [1228 0 R /XYZ 270.132 534.109 null] >> -% 1295 0 obj +% 1227 0 obj << -/Font << /F31 790 0 R /F8 573 0 R >> +/Font << /F16 582 0 R /F8 585 0 R /F11 796 0 R /F14 813 0 R /F30 810 0 R /F27 584 0 R >> /ProcSet [ /PDF /Text ] >> -% 1300 0 obj +% 1234 0 obj << /Type /Page -/Contents 1301 0 R -/Resources 1299 0 R +/Contents 1235 0 R +/Resources 1233 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1282 0 R ->> -% 1303 0 obj -<< -/Producer (GPL Ghostscript 9.22) -/CreationDate (D:20180323100658Z00'00') -/ModDate (D:20180323100658Z00'00') ->> -% 1304 0 obj -<< -/Type /ExtGState -/OPM 1 ->> -% 1305 0 obj -<< -/BaseFont /XYUGDR+Times-Roman -/FontDescriptor 1307 0 R -/Type /Font -/FirstChar 48 -/LastChar 57 -/Widths [ 500 500 500 500 500 500 500 500 500 500] -/Encoding /WinAnsiEncoding -/Subtype /Type1 ->> -% 1306 0 obj -<< -/BaseFont /XISTAL+Times-Bold -/FontDescriptor 1308 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 ->> -% 1307 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 1309 0 R ->> -% 1308 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 1310 0 R ->> -% 1302 0 obj -<< -/D [1300 0 R /XYZ 149.705 753.953 null] +/Parent 1196 0 R >> -% 1294 0 obj +% 1236 0 obj << -/D [1300 0 R /XYZ 283.692 272.519 null] +/D [1234 0 R /XYZ 149.705 753.953 null] >> -% 1299 0 obj +% 1233 0 obj << -/Font << /F8 573 0 R >> -/XObject << /Im4 1284 0 R >> +/Font << /F27 584 0 R /F8 585 0 R >> /ProcSet [ /PDF /Text ] >> -% 1315 0 obj +% 1245 0 obj << /Type /Page -/Contents 1316 0 R -/Resources 1314 0 R +/Contents 1246 0 R +/Resources 1244 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1282 0 R -/Annots [ 1311 0 R 1312 0 R 1313 0 R ] +/Parent 1249 0 R +/Annots [ 1237 0 R 1238 0 R 1239 0 R 1240 0 R 1241 0 R ] >> -% 1311 0 obj +% 1237 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [368.549 295.182 444.603 306.307] +/Rect [265.833 407.619 341.887 418.744] /A << /S /GoTo /D (vdata) >> >> -% 1312 0 obj +% 1238 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [205.998 285.441 217.953 294.352] -/A << /S /GoTo /D (table.19) >> +/Rect [225.425 395.94 232.399 406.789] +/A << /S /GoTo /D (table.2) >> >> -% 1313 0 obj +% 1239 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [294.721 215.901 361.779 227.026] -/A << /S /GoTo /D (descdata) >> ->> -% 1317 0 obj -<< -/D [1315 0 R /XYZ 98.895 753.953 null] +/Rect [265.833 327.999 341.887 339.124] +/A << /S /GoTo /D (vdata) >> >> -% 288 0 obj +% 1240 0 obj << -/D [1315 0 R /XYZ 99.895 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) >> >> -% 1318 0 obj +% 1241 0 obj << -/D [1315 0 R /XYZ 270.132 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) >> >> -% 1319 0 obj +% 1247 0 obj << -/D [1315 0 R /XYZ 99.895 435.558 null] +/D [1245 0 R /XYZ 98.895 753.953 null] >> -% 1320 0 obj +% 280 0 obj << -/D [1315 0 R /XYZ 99.895 435.558 null] +/D [1245 0 R /XYZ 99.895 716.092 null] >> -% 1321 0 obj +% 1248 0 obj << -/D [1315 0 R /XYZ 99.895 423.603 null] +/D [1245 0 R /XYZ 270.132 543.606 null] >> -% 1314 0 obj +% 1244 0 obj << -/Font << /F16 570 0 R /F8 573 0 R /F11 770 0 R /F14 787 0 R /F10 786 0 R /F7 785 0 R /F27 572 0 R /F30 784 0 R >> +/Font << /F16 582 0 R /F8 585 0 R /F11 796 0 R /F14 813 0 R /F30 810 0 R /F27 584 0 R >> /ProcSet [ /PDF /Text ] >> -% 1323 0 obj +% 1251 0 obj << /Type /Page -/Contents 1324 0 R -/Resources 1322 0 R +/Contents 1252 0 R +/Resources 1250 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1282 0 R +/Parent 1249 0 R +/Annots [ 1242 0 R 1243 0 R ] >> -% 1325 0 obj +% 1242 0 obj << -/D [1323 0 R /XYZ 149.705 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) >> >> -% 1322 0 obj +% 1243 0 obj << -/Font << /F27 572 0 R /F8 573 0 R /F30 784 0 R >> +/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) >> +>> +% 1253 0 obj +<< +/D [1251 0 R /XYZ 149.705 753.953 null] +>> +% 1250 0 obj +<< +/Font << /F8 585 0 R /F27 584 0 R /F30 810 0 R >> /ProcSet [ /PDF /Text ] >> -% 1329 0 obj +% 1260 0 obj << /Type /Page -/Contents 1330 0 R -/Resources 1328 0 R +/Contents 1261 0 R +/Resources 1259 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1335 0 R -/Annots [ 1326 0 R ] +/Parent 1249 0 R +/Annots [ 1254 0 R 1255 0 R 1256 0 R 1257 0 R 1258 0 R ] >> -% 1326 0 obj +% 1254 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [294.721 210.686 361.779 221.811] -/A << /S /GoTo /D (descdata) >> +<<<<<<< HEAD:docs/psblas-3.6.pdf +/Rect [253.818 555.748 265.774 566.597] +/A << /S /GoTo /D (table.18) >> >> -% 1331 0 obj -<< -/D [1329 0 R /XYZ 98.895 753.953 null] +% 1285 0 obj +======= +/Rect [265.833 429.544 341.887 440.669] +/A << /S /GoTo /D (vdata) >> +>> +% 1255 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +<<<<<<< HEAD:docs/psblas-3.6.pdf +/Rect [457.829 326.22 464.803 338.84] +/A << /S /GoTo /D (figure.8) >> +>> +% 1286 0 obj +======= +/Rect [225.425 417.865 232.399 428.713] +/A << /S /GoTo /D (table.2) >> +>> +% 1256 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) >> +>> +% 1257 0 obj +<< +/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) >> +>> +% 1258 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +<<<<<<< HEAD:docs/psblas-3.6.pdf +/Rect [357.569 302.697 364.543 313.546] +/A << /S /GoTo /D (figure.7) >> +======= +/Rect [245.572 189.336 257.527 200.184] +/A << /S /GoTo /D (table.16) >> +>> +% 1262 0 obj +<< +/D [1260 0 R /XYZ 98.895 753.953 null] +>> +% 284 0 obj +<< +/D [1260 0 R /XYZ 99.895 716.092 null] +>> +% 1263 0 obj +<< +/D [1260 0 R /XYZ 270.132 556.917 null] +>> +% 1259 0 obj +<< +/Font << /F16 582 0 R /F8 585 0 R /F11 796 0 R /F14 813 0 R /F30 810 0 R /F27 584 0 R >> +/ProcSet [ /PDF /Text ] +>> +% 1266 0 obj +<< +/Type /Page +/Contents 1267 0 R +/Resources 1265 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1249 0 R +/Annots [ 1264 0 R ] +>> +% 1264 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) >> +>> +% 1268 0 obj +<< +/D [1266 0 R /XYZ 149.705 753.953 null] +>> +% 288 0 obj +<< +/D [1266 0 R /XYZ 150.705 716.092 null] +>> +% 1265 0 obj +<< +/Font << /F16 582 0 R /F8 585 0 R >> +/ProcSet [ /PDF /Text ] +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf +>> +% 1274 0 obj +<< +<<<<<<< HEAD:docs/psblas-3.6.pdf +/D [1288 0 R /XYZ 149.705 753.953 null] +>> +% 1291 0 obj +<< +/D [1288 0 R /XYZ 150.705 465.033 null] +======= +/Type /Page +/Contents 1275 0 R +/Resources 1273 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1249 0 R +/Annots [ 1269 0 R 1270 0 R 1271 0 R ] +>> +% 1269 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) >> +>> +% 1270 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.17) >> +>> +% 1271 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) >> +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf +>> +% 1276 0 obj +<< +<<<<<<< HEAD:docs/psblas-3.6.pdf +/D [1288 0 R /XYZ 150.705 431.215 null] +======= +/D [1274 0 R /XYZ 98.895 753.953 null] +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf +>> +% 292 0 obj +<< +<<<<<<< HEAD:docs/psblas-3.6.pdf +/D [1288 0 R /XYZ 150.705 387.38 null] +>> +% 1287 0 obj +<< +/Font << /F27 572 0 R /F8 573 0 R /F11 770 0 R /F16 570 0 R /F10 786 0 R /F30 784 0 R >> +======= +/D [1274 0 R /XYZ 99.895 716.092 null] +>> +% 1277 0 obj +<< +/D [1274 0 R /XYZ 270.132 514.036 null] +>> +% 1278 0 obj +<< +/D [1274 0 R /XYZ 99.895 482.745 null] +>> +% 1279 0 obj +<< +/D [1274 0 R /XYZ 99.895 484.682 null] +>> +% 1280 0 obj +<< +/D [1274 0 R /XYZ 99.895 472.727 null] +>> +% 1273 0 obj +<< +/Font << /F16 582 0 R /F8 585 0 R /F11 796 0 R /F14 813 0 R /F27 584 0 R /F30 810 0 R >> +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf +/ProcSet [ /PDF /Text ] +>> +% 1284 0 obj +<< +/Type /Page +/Contents 1285 0 R +/Resources 1283 0 R +/MediaBox [0 0 595.276 841.89] +<<<<<<< HEAD:docs/psblas-3.6.pdf +/Parent 1282 0 R +======= +/Parent 1249 0 R +/Annots [ 1272 0 R 1282 0 R ] +>> +% 1288 0 obj +<< +/Producer (GPL Ghostscript 9.22) +/CreationDate (D:20180323100645Z00'00') +/ModDate (D:20180323100645Z00'00') +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf +>> +% 1289 0 obj +<< +<<<<<<< HEAD:docs/psblas-3.6.pdf +/D [1296 0 R /XYZ 98.895 753.953 null] +======= +/Type /ExtGState +/OPM 1 +>> +% 1290 0 obj +<< +/BaseFont /XYUGDR+Times-Roman +/FontDescriptor 1292 0 R +/Type /Font +/FirstChar 48 +/LastChar 57 +/Widths [ 500 500 500 500 500 500 500 500 500 500] +/Encoding /WinAnsiEncoding +/Subtype /Type1 +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf +>> +% 1291 0 obj +<< +<<<<<<< HEAD:docs/psblas-3.6.pdf +/Font << /F31 790 0 R /F8 573 0 R >> +/ProcSet [ /PDF /Text ] +>> +% 1300 0 obj +<< +/Type /Page +/Contents 1301 0 R +/Resources 1299 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1282 0 R +======= +/BaseFont /XISTAL+Times-Bold +/FontDescriptor 1293 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 +>> +% 1292 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 1294 0 R +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf +>> +% 1293 0 obj +<< +<<<<<<< HEAD:docs/psblas-3.6.pdf +/Producer (GPL Ghostscript 9.22) +/CreationDate (D:20180323100658Z00'00') +/ModDate (D:20180323100658Z00'00') +======= +/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 1295 0 R +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf +>> +% 1272 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) >> +>> +% 1282 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) >> +>> +% 1286 0 obj +<< +<<<<<<< HEAD:docs/psblas-3.6.pdf +/Type /ExtGState +/OPM 1 +======= +/D [1284 0 R /XYZ 149.705 753.953 null] +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf +>> +% 1287 0 obj +<< +<<<<<<< HEAD:docs/psblas-3.6.pdf +/BaseFont /XYUGDR+Times-Roman +/FontDescriptor 1307 0 R +/Type /Font +/FirstChar 48 +/LastChar 57 +/Widths [ 500 500 500 500 500 500 500 500 500 500] +/Encoding /WinAnsiEncoding +/Subtype /Type1 +======= +/D [1284 0 R /XYZ 283.692 317.353 null] +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf +>> +% 1283 0 obj +<< +<<<<<<< HEAD:docs/psblas-3.6.pdf +/BaseFont /XISTAL+Times-Bold +/FontDescriptor 1308 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 +======= +/Font << /F27 584 0 R /F8 585 0 R /F11 796 0 R /F16 582 0 R /F30 810 0 R >> +/XObject << /Im3 1281 0 R >> +/ProcSet [ /PDF /Text ] +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf +>> +% 1297 0 obj +<< +<<<<<<< HEAD:docs/psblas-3.6.pdf +/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 1309 0 R +======= +/Type /Page +/Contents 1298 0 R +/Resources 1296 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1301 0 R +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf +>> +% 1299 0 obj +<< +<<<<<<< HEAD:docs/psblas-3.6.pdf +/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 1310 0 R +>> +% 1302 0 obj +<< +/D [1300 0 R /XYZ 149.705 753.953 null] +>> +% 1294 0 obj +<< +/D [1300 0 R /XYZ 283.692 272.519 null] +>> +% 1299 0 obj +<< +/Font << /F8 573 0 R >> +/XObject << /Im4 1284 0 R >> +/ProcSet [ /PDF /Text ] +>> +% 1315 0 obj +<< +/Type /Page +/Contents 1316 0 R +/Resources 1314 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1282 0 R +/Annots [ 1311 0 R 1312 0 R 1313 0 R ] +>> +% 1311 0 obj +======= +/D [1297 0 R /XYZ 98.895 753.953 null] +>> +% 1296 0 obj +<< +/Font << /F46 1300 0 R /F8 585 0 R >> +/ProcSet [ /PDF /Text ] +>> +% 1306 0 obj +<< +/Type /Page +/Contents 1307 0 R +/Resources 1305 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1301 0 R +/Annots [ 1302 0 R 1303 0 R 1304 0 R ] +>> +% 1302 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +<<<<<<< HEAD:docs/psblas-3.6.pdf +/Rect [368.549 295.182 444.603 306.307] +/A << /S /GoTo /D (vdata) >> +>> +% 1312 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [205.998 285.441 217.953 294.352] +/A << /S /GoTo /D (table.19) >> +>> +% 1313 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [294.721 215.901 361.779 227.026] +/A << /S /GoTo /D (descdata) >> +======= +/Rect [419.358 343.981 495.412 355.106] +/A << /S /GoTo /D (vdata) >> +>> +% 1303 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.18) >> +>> +% 1304 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) >> +>> +% 1308 0 obj +<< +/D [1306 0 R /XYZ 149.705 753.953 null] +>> +% 296 0 obj +<< +/D [1306 0 R /XYZ 150.705 716.092 null] +>> +% 1309 0 obj +<< +/D [1306 0 R /XYZ 320.941 511.222 null] +>> +% 1310 0 obj +<< +/D [1306 0 R /XYZ 150.705 480.819 null] +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf +>> +% 1317 0 obj +<< +<<<<<<< HEAD:docs/psblas-3.6.pdf +/D [1315 0 R /XYZ 98.895 753.953 null] +>> +% 288 0 obj +<< +/D [1315 0 R /XYZ 99.895 720.077 null] +======= +/D [1306 0 R /XYZ 150.705 482.756 null] +>> +% 1312 0 obj +<< +/D [1306 0 R /XYZ 150.705 470.801 null] +>> +% 1305 0 obj +<< +/Font << /F16 582 0 R /F8 585 0 R /F11 796 0 R /F14 813 0 R /F10 812 0 R /F27 584 0 R /F30 810 0 R >> +/ProcSet [ /PDF /Text ] +>> +% 1318 0 obj +<< +/Type /Page +/Contents 1319 0 R +/Resources 1317 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1301 0 R +/Annots [ 1313 0 R 1315 0 R 1316 0 R ] +>> +% 1313 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.18) >> +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf +>> +% 1318 0 obj +<< +<<<<<<< HEAD:docs/psblas-3.6.pdf +/D [1315 0 R /XYZ 270.132 466.542 null] +======= +/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) >> +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf +>> +% 1316 0 obj +<< +<<<<<<< HEAD:docs/psblas-3.6.pdf +/D [1315 0 R /XYZ 99.895 435.558 null] +>> +% 1320 0 obj +<< +/D [1315 0 R /XYZ 99.895 435.558 null] +>> +% 1321 0 obj +<< +/D [1315 0 R /XYZ 99.895 423.603 null] +======= +/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) >> +>> +% 1320 0 obj +<< +/D [1318 0 R /XYZ 98.895 753.953 null] +>> +% 1321 0 obj +<< +/D [1318 0 R /XYZ 99.895 465.033 null] +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf +>> +% 1314 0 obj +<< +<<<<<<< HEAD:docs/psblas-3.6.pdf +/Font << /F16 570 0 R /F8 573 0 R /F11 770 0 R /F14 787 0 R /F10 786 0 R /F7 785 0 R /F27 572 0 R /F30 784 0 R >> +/ProcSet [ /PDF /Text ] +>> +% 1323 0 obj +<< +/Type /Page +/Contents 1324 0 R +/Resources 1322 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1282 0 R +>> +% 1325 0 obj +<< +/D [1323 0 R /XYZ 149.705 753.953 null] +>> +% 1322 0 obj +<< +/Font << /F27 572 0 R /F8 573 0 R /F30 784 0 R >> +======= +/D [1318 0 R /XYZ 99.895 431.215 null] +>> +% 1323 0 obj +<< +/D [1318 0 R /XYZ 99.895 387.38 null] +>> +% 1317 0 obj +<< +/Font << /F27 584 0 R /F8 585 0 R /F11 796 0 R /F16 582 0 R /F10 812 0 R /F30 810 0 R >> +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf +/ProcSet [ /PDF /Text ] +>> +% 1329 0 obj +<< +/Type /Page +/Contents 1330 0 R +/Resources 1328 0 R +/MediaBox [0 0 595.276 841.89] +<<<<<<< HEAD:docs/psblas-3.6.pdf +/Parent 1335 0 R +/Annots [ 1326 0 R ] +>> +% 1326 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [294.721 210.686 361.779 221.811] +/A << /S /GoTo /D (descdata) >> +>> +% 1331 0 obj +<< +/D [1329 0 R /XYZ 98.895 753.953 null] >> % 292 0 obj << /D [1329 0 R /XYZ 99.895 720.077 null] +======= +/Parent 1301 0 R +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> % 1332 0 obj << /D [1329 0 R /XYZ 270.132 451.038 null] >> +<<<<<<< HEAD:docs/psblas-3.6.pdf % 1333 0 obj << /D [1329 0 R /XYZ 99.895 417.777 null] @@ -15556,9 +23908,35 @@ stream /Border[0 0 0]/H/I/C[1 0 0] /Rect [174.615 543.516 250.669 554.641] /A << /S /GoTo /D (vdata) >> +======= +% 1325 0 obj +<< +/Font << /F31 816 0 R /F8 585 0 R >> +/ProcSet [ /PDF /Text ] +>> +% 1330 0 obj +<< +/Type /Page +/Contents 1331 0 R +/Resources 1329 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1301 0 R +>> +% 1333 0 obj +<< +/Producer (GPL Ghostscript 9.22) +/CreationDate (D:20180323100658Z00'00') +/ModDate (D:20180323100658Z00'00') +>> +% 1334 0 obj +<< +/Type /ExtGState +/OPM 1 +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> % 1337 0 obj << +<<<<<<< HEAD:docs/psblas-3.6.pdf /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] @@ -15568,44 +23946,187 @@ stream % 1341 0 obj << /D [1339 0 R /XYZ 149.705 753.953 null] +======= +/BaseFont /XYUGDR+Times-Roman +/FontDescriptor 1337 0 R +/Type /Font +/FirstChar 48 +/LastChar 57 +/Widths [ 500 500 500 500 500 500 500 500 500 500] +/Encoding /WinAnsiEncoding +/Subtype /Type1 >> -% 1338 0 obj -<< -/Font << /F27 572 0 R /F8 573 0 R /F30 784 0 R /F11 770 0 R >> -/ProcSet [ /PDF /Text ] ->> -% 1343 0 obj -<< -/Type /Page -/Contents 1344 0 R -/Resources 1342 0 R -/MediaBox [0 0 595.276 841.89] -/Parent 1335 0 R ->> -% 1345 0 obj +% 1336 0 obj << -/D [1343 0 R /XYZ 98.895 753.953 null] +/BaseFont /XISTAL+Times-Bold +/FontDescriptor 1338 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 >> -% 296 0 obj +% 1337 0 obj << -/D [1343 0 R /XYZ 99.895 716.092 null] +/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 1339 0 R +>> +% 1338 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 1340 0 R +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf +>> +% 1338 0 obj +<< +<<<<<<< HEAD:docs/psblas-3.6.pdf +/Font << /F27 572 0 R /F8 573 0 R /F30 784 0 R /F11 770 0 R >> +/ProcSet [ /PDF /Text ] +>> +% 1343 0 obj +<< +/Type /Page +/Contents 1344 0 R +/Resources 1342 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1335 0 R +>> +% 1345 0 obj +<< +/D [1343 0 R /XYZ 98.895 753.953 null] +>> +% 296 0 obj +<< +/D [1343 0 R /XYZ 99.895 716.092 null] >> % 300 0 obj << /D [1343 0 R /XYZ 99.895 696.263 null] +======= +/D [1330 0 R /XYZ 98.895 753.953 null] +>> +% 1324 0 obj +<< +/D [1330 0 R /XYZ 232.883 272.519 null] +>> +% 1329 0 obj +<< +/Font << /F8 585 0 R >> +/XObject << /Im4 1314 0 R >> +/ProcSet [ /PDF /Text ] +>> +% 1345 0 obj +<< +/Type /Page +/Contents 1346 0 R +/Resources 1344 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1301 0 R +/Annots [ 1341 0 R 1342 0 R 1343 0 R ] +>> +% 1341 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] +/A << /S /GoTo /D (vdata) >> >> +% 1342 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.19) >> +>> +% 1343 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) >> +>> +% 1347 0 obj +<< +/D [1345 0 R /XYZ 149.705 753.953 null] +>> +% 300 0 obj +<< +/D [1345 0 R /XYZ 150.705 716.092 null] +>> + +endstream +endobj +1355 0 obj +<< +/Length 1455 +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf +>> +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 +<<<<<<< HEAD:docs/psblas-3.6.pdf 1350 0 obj << /Length 6631 +======= +1362 0 obj +<< +/Length 7813 +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> stream 0 g 0 G 0 g 0 G 0 g 0 G BT +<<<<<<< HEAD:docs/psblas-3.6.pdf /F27 9.9626 Tf 150.705 706.129 Td [(nl)]TJ 0 g 0 G /F8 9.9626 Tf 14.529 0 Td [(Data)-223(allo)-28(cation)1(:)-390(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.377 -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.184 0 Td [(optional)]TJ/F8 9.9626 Tf 40.577 0 Td [(.)]TJ -65.761 -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.)-444(Ma)28(y)-334(b)-28(e)-333(sp)-28(eci\014ed)-333(together)-333(with)]TJ/F30 9.9626 Tf 272.479 0 Td [(vl)]TJ/F8 9.9626 Tf 10.461 0 Td [(.)]TJ @@ -15741,20 +24262,230 @@ BT [-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 [(71)]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 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 +0 g 0 G +/F11 9.9626 Tf -268.562 -21.839 Td [(scatter)]TJ +0 g 0 G +/F8 9.9626 Tf 35.834 0 Td [(is)-333(the)-334(scatter)-333(function.)]TJ +0 g 0 G +0 g 0 G +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 +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 +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 +ET +q +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 +/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 276.66 406.021 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 +ET +q +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 +/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 +0 g 0 G +0 g 0 G +/F27 9.9626 Tf -219.925 -30.766 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 +0 g 0 G +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 +/F27 9.9626 Tf -24.906 -21.839 Td [(desc)]TJ +ET +q +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 176.057 261.717 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 +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 +[]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 +ET +q +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 390.67 213.896 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.839 Td [(ro)-32(ot)]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 +0 g 0 G + 141.968 -29.888 Td [(68)]TJ +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 0 g 0 G ET endstream endobj +<<<<<<< HEAD:docs/psblas-3.6.pdf 1361 0 obj << /Length 2667 +======= +1371 0 obj +<< +/Length 4181 +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> stream 0 g 0 G 0 g 0 G 0 g 0 G BT +<<<<<<< HEAD:docs/psblas-3.6.pdf /F8 9.9626 Tf 162.881 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(e)-1(ry)-339(pro)-27(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)-334(t)1(he)-334(lo)-28(cal)-333(indices.)]TJ @@ -15776,8 +24507,13 @@ BT [-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.308 0 Td [(nl)]TJ/F8 9.9626 Tf 13.781 0 Td [(\050alone\051,)-333(or)]TJ/F30 9.9626 Tf 48.734 0 Td [(vg)]TJ/F8 9.9626 Tf 10.461 0 Td [(.)]TJ 0 g 0 G -34.316 -452.304 Td [(72)]TJ +======= +/F27 9.9626 Tf 99.895 706.129 Td [(mold)]TJ +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 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 +<<<<<<< HEAD:docs/psblas-3.6.pdf endstream endobj @@ -15788,14 +24524,21 @@ endobj 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 +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 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 +<<<<<<< HEAD:docs/psblas-3.6.pdf /F16 11.9552 Tf 124.986 706.129 Td [(cdins)-375(|)-375(Comm)31(unication)-375(descriptor)-375(insert)-375(routine)]TJ 0 g 0 G 0 g 0 G @@ -15857,22 +24600,191 @@ q Q BT /F30 9.9626 Tf 339.861 120.326 Td [(type)]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 20.922 0 Td [(.)]TJ +0 g 0 G +/F27 9.9626 Tf -260.685 -19.925 Td [(On)-383(Return)]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 +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 +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 +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(20)]TJ +0 g 0 G + [(.)]TJ +0 g 0 G +/F27 9.9626 Tf -102.289 -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 -388.543 Td [(69)]TJ +0 g 0 G +ET + +endstream +endobj +1375 0 obj +<< +/Length 6550 +>> +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 [(6.1)-1125(psb)]TJ +ET +q +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 206.431 682.315 Td [(cdall)-375(|)-375(Allo)-31(cates)-375(a)-375(comm)31(unication)-375(descriptor)]TJ +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 0 g 0 G -/F8 9.9626 Tf 20.921 0 Td [(.)]TJ 0 g 0 G +<<<<<<< HEAD:docs/psblas-3.6.pdf -94.012 -29.888 Td [(73)]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 -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 [(70)]TJ +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 0 g 0 G ET endstream endobj +<<<<<<< HEAD:docs/psblas-3.6.pdf 1377 0 obj << /Length 3163 +======= +1380 0 obj +<< +/Length 6638 +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> stream 0 g 0 G 0 g 0 G +<<<<<<< HEAD:docs/psblas-3.6.pdf 0 g 0 G BT /F27 9.9626 Tf 150.705 706.129 Td [(info)]TJ @@ -15904,6 +24816,74 @@ BT [(.)]TJ 0 g 0 G 141.968 -314.819 Td [(74)]TJ +======= +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 [(71)]TJ +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 0 g 0 G ET @@ -15911,11 +24891,16 @@ endstream endobj 1386 0 obj << +<<<<<<< HEAD:docs/psblas-3.6.pdf /Length 4740 +======= +/Length 10049 +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> stream 0 g 0 G 0 g 0 G +<<<<<<< HEAD:docs/psblas-3.6.pdf BT /F16 11.9552 Tf 99.895 706.129 Td [(psb)]TJ ET @@ -15934,8 +24919,29 @@ BT /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 +======= +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 +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 0 g 0 G +/F27 9.9626 Tf -17.712 -13.774 Td [(mg)]TJ 0 g 0 G +<<<<<<< HEAD:docs/psblas-3.6.pdf 0 -19.925 Td [(desc)]TJ ET q @@ -15962,9 +24968,15 @@ q Q BT /F30 9.9626 Tf 339.861 578.15 Td [(type)]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 -/F8 9.9626 Tf 20.921 0 Td [(.)]TJ +/F27 9.9626 Tf 0 -15.594 Td [(n)32(v)]TJ +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 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 +<<<<<<< HEAD:docs/psblas-3.6.pdf /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(the)-333(in)28(ternal)-333(index)-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.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)-222(as:)-389(a)-222(ob)-56(ject)-222(of)-222(t)28(yp)-28(e)-222(deriv)28(ed)-223(from)-222(\050in)28(teger\051)]TJ/F30 9.9626 Tf 219.87 0 Td [(psb)]TJ @@ -16038,19 +25050,96 @@ BT [-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 [(75)]TJ +======= +/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 [(72)]TJ +0 g 0 G +ET + +endstream +endobj +1391 0 obj +<< +/Length 2660 +>> +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 +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 [(73)]TJ +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 0 g 0 G ET endstream endobj +<<<<<<< HEAD:docs/psblas-3.6.pdf 1393 0 obj << /Length 3278 +======= +1402 0 obj +<< +/Length 7181 +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> stream 0 g 0 G 0 g 0 G BT +<<<<<<< HEAD:docs/psblas-3.6.pdf /F16 11.9552 Tf 150.705 706.129 Td [(psb)]TJ ET q @@ -16112,62 +25201,192 @@ BT /F27 9.9626 Tf 176.057 536.307 Td [(out)]TJ 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.976 -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.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 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 488.487 Td [(desc)]TJ +======= +/F16 11.9552 Tf 150.705 706.129 Td [(6.2)-1125(psb)]TJ ET q -1 0 0 1 387.532 488.686 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 390.67 488.487 Td [(type)]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 -/F8 9.9626 Tf 20.922 0 Td [(.)]TJ 0 g 0 G -/F27 9.9626 Tf -260.887 -19.926 Td [(info)]TJ +/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 +/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 +0 g 0 G +/F27 9.9626 Tf -208.505 -19.344 Td [(mask)]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 +0 g 0 G +/F27 9.9626 Tf -271.962 -19.344 Td [(lidx)]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 +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 +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 +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf +0 0 1 rg 0 0 1 RG +/F30 9.9626 Tf 170.915 0 Td [(psb)]TJ +ET +q +<<<<<<< HEAD:docs/psblas-3.6.pdf +1 0 0 1 362.845 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 488.487 Td [(desc)]TJ +ET +q +1 0 0 1 387.532 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 488.487 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 0 g 0 G 141.968 -330.303 Td [(76)]TJ +======= +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 365.983 120.326 Td [(desc)]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 +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 [(74)]TJ +0 g 0 G +ET + +endstream +endobj +1407 0 obj +<< +/Length 3156 +>> +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 +/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 [(75)]TJ +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 0 g 0 G ET endstream endobj +<<<<<<< HEAD:docs/psblas-3.6.pdf 1398 0 obj << /Length 2243 +======= +1416 0 obj +<< +/Length 6223 +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> 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 +<<<<<<< HEAD:docs/psblas-3.6.pdf /F16 11.9552 Tf 124.986 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_cdfree\050desc_a,)-525(info\051)]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 -30.635 -18.389 Td [(call)-525(psb_cdasb\050desc_a,)-525(info)-525([,)-525(mold]\051)]TJ +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 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 +<<<<<<< HEAD:docs/psblas-3.6.pdf 0 -19.925 Td [(desc)]TJ ET q @@ -16178,10 +25397,87 @@ BT /F27 9.9626 Tf 125.247 625.971 Td [(a)]TJ 0 g 0 G /F8 9.9626 Tf 10.551 0 Td [(the)-333(comm)27(unication)-333(descriptor)-333(to)-333(b)-28(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.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.956 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(structured)-333(data)-333(of)-334(t)28(yp)-28(e)]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.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 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 [(desc)]TJ +ET +q +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 390.67 564.203 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.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 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 176.057 454.614 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.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 +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 0 0 1 rg 0 0 1 RG /F30 9.9626 Tf 170.915 0 Td [(psb)]TJ ET q +<<<<<<< HEAD:docs/psblas-3.6.pdf 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 @@ -16194,46 +25490,83 @@ q Q BT /F30 9.9626 Tf 339.861 578.15 Td [(type)]TJ +======= +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 365.983 406.793 Td [(desc)]TJ +ET +q +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 390.67 406.793 Td [(type)]TJ +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 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 +<<<<<<< HEAD:docs/psblas-3.6.pdf /F27 9.9626 Tf -260.887 -21.917 Td [(On)-383(Return)]TJ +======= +/F27 9.9626 Tf -260.887 -19.925 Td [(info)]TJ +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 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 +<<<<<<< HEAD:docs/psblas-3.6.pdf 141.968 -398.049 Td [(77)]TJ +======= + 119.801 -103.154 Td [(76)]TJ +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 0 g 0 G ET endstream endobj +<<<<<<< HEAD:docs/psblas-3.6.pdf 1404 0 obj << /Length 5916 +======= +1423 0 obj +<< +/Length 3287 +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> 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 +<<<<<<< HEAD:docs/psblas-3.6.pdf /F16 11.9552 Tf 175.796 706.129 Td [(cdbldext)-282(|)-283(Build)-282(an)-282(extended)-283(comm)31(unication)-282(descrip-)]TJ -25.091 -13.948 Td [(tor)]TJ 0 g 0 G 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(subroutin)1(e)-298(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.287 0 Td [(desc_a)]TJ/F8 9.9626 Tf 35.261 0 Td [(and)-389(on)-390(the)-389(stencil)-390(sp)-27(eci\014ed)-390(through)-389(the)-389(input)-390(sparse)]TJ -109.548 -11.956 Td [(matrix)]TJ/F30 9.9626 Tf 32.406 0 Td [(a)]TJ/F8 9.9626 Tf 5.231 0 Td [(.)]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 -55.726 -18.389 Td [(call)-525(psb_cdcpy\050desc_in,)-525(desc_out,)-525(info\051)]TJ +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 0 g 0 G /F27 9.9626 Tf -37.637 -21.094 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 +<<<<<<< HEAD:docs/psblas-3.6.pdf /F27 9.9626 Tf -33.797 -21.483 Td [(On)-383(En)32(try)]TJ 0 g 0 G 0 g 0 G @@ -16251,10 +25584,26 @@ BT /F27 9.9626 Tf 176.057 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.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 -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 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 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 +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 0 0 1 rg 0 0 1 RG /F30 9.9626 Tf 170.915 0 Td [(psb)]TJ ET q +<<<<<<< HEAD:docs/psblas-3.6.pdf 1 0 0 1 362.845 456.649 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q @@ -16291,10 +25640,41 @@ BT /F27 9.9626 Tf 176.057 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.976 -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 [(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 +======= +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 +/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 [(desc)]TJ +ET +q +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 125.247 536.307 Td [(out)]TJ +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 +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 0 0 1 rg 0 0 1 RG /F30 9.9626 Tf 170.915 0 Td [(psb)]TJ ET q +<<<<<<< HEAD:docs/psblas-3.6.pdf 1 0 0 1 362.845 213.305 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q @@ -16315,20 +25695,49 @@ BT /F8 9.9626 Tf 23.758 0 Td [(Error)-333(co)-28(de.)]TJ 1.148 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.612 0 Td [(required)]TJ/F8 9.9626 Tf -29.612 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(out)]TJ/F8 9.9626 Tf 16.549 0 Td [(.)]TJ -50.035 -11.955 Td [(An)-333(in)27(t)1(e)-1(ger)-333(v)56(alue;)-334(0)-333(means)-333(no)-334(error)-333(has)-333(b)-28(een)-333(detec)-1(ted.)]TJ/F16 11.9552 Tf -24.906 -23.476 Td [(Notes)]TJ 0 g 0 G /F8 9.9626 Tf 166.874 -29.888 Td [(78)]TJ +======= +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 315.174 488.487 Td [(desc)]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 +Q +BT +/F30 9.9626 Tf 339.861 488.487 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.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 [(77)]TJ +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 0 g 0 G ET endstream endobj +<<<<<<< HEAD:docs/psblas-3.6.pdf 1408 0 obj << /Length 1591 +======= +1428 0 obj +<< +/Length 2253 +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> stream 0 g 0 G 0 g 0 G 0 g 0 G BT +<<<<<<< HEAD:docs/psblas-3.6.pdf /F8 9.9626 Tf 112.072 706.129 Td [(1.)]TJ 0 g 0 G [-500(Sp)-28(ecifying)]TJ/F30 9.9626 Tf 60.091 0 Td [(psb_ovt_xhal_)]TJ/F8 9.9626 Tf 70.801 0 Td [(for)-282(the)]TJ/F30 9.9626 Tf 31.377 0 Td [(extype)]TJ/F8 9.9626 Tf 34.188 0 Td [(argumen)28(t)-282(the)-282(user)-281(will)-282(obtain)-281(a)]TJ -183.727 -11.955 Td [(descriptor)-258(f)1(o)-1(r)-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(t)1(o)-334(that)-333(of)-333(the)-334(base)-333(descriptor;)]TJ @@ -16362,6 +25771,19 @@ BT 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 +======= +/F16 11.9552 Tf 150.705 706.129 Td [(6.5)-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 [(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 -55.726 -18.389 Td [(call)-525(psb_cdfree\050desc_a,)-525(info\051)]TJ +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 0 g 0 G /F27 9.9626 Tf 0 -21.918 Td [(T)32(yp)-32(e:)]TJ 0 g 0 G @@ -16379,7 +25801,11 @@ Q BT /F27 9.9626 Tf 176.057 625.971 Td [(a)]TJ 0 g 0 G +<<<<<<< HEAD:docs/psblas-3.6.pdf /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.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 +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 0 0 1 rg 0 0 1 RG /F30 9.9626 Tf 170.915 0 Td [(psb)]TJ ET @@ -16399,6 +25825,7 @@ BT 0 g 0 G /F8 9.9626 Tf 20.922 0 Td [(.)]TJ 0 g 0 G +<<<<<<< HEAD:docs/psblas-3.6.pdf /F27 9.9626 Tf -260.887 -19.925 Td [(nnz)]TJ 0 g 0 G /F8 9.9626 Tf 22.803 0 Td [(An)-309(estimate)-309(of)-308(the)-309(n)28(um)27(b)-27(er)-309(of)-309(nonzero)-28(es)-308(in)-309(the)-309(lo)-28(cal)-308(part)-309(of)-309(the)-309(assem)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.612 0 Td [(optional)]TJ/F8 9.9626 Tf 40.576 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 @@ -16445,19 +25872,36 @@ BT [-500(Pro)28(viding)-307(a)-308(go)-27(o)-28(d)-307(e)-1(stimate)-307(for)-307(the)-307(n)27(um)28(b)-28(er)-307(of)-307(nonzero)-28(es)]TJ/F11 9.9626 Tf 254.288 0 Td [(nnz)]TJ/F8 9.9626 Tf 20.093 0 Td [(in)-307(the)-308(assem-)]TJ -261.651 -11.955 Td [(bled)-402(matrix)-401(ma)28(y)-402(substan)28(tially)-401(impro)27(v)28(e)-401(p)-28(erformance)-402(in)-401(the)-402(matrix)-401(build)]TJ 0 -11.955 Td [(phase,)-458(as)-433(it)-432(will)-433(reduce)-433(or)-433(eliminate)-433(the)-433(need)-432(for)-433(\050p)-28(oten)28(tially)-433(m)28(ultiple\051)]TJ 0 -11.956 Td [(data)-333(reallo)-28(cations.)]TJ 0 g 0 G 141.968 -133.042 Td [(80)]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 [(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 -398.049 Td [(78)]TJ +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 0 g 0 G ET endstream endobj +<<<<<<< HEAD:docs/psblas-3.6.pdf 1425 0 obj << /Length 5704 +======= +1434 0 obj +<< +/Length 5932 +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> stream 0 g 0 G 0 g 0 G BT +<<<<<<< HEAD:docs/psblas-3.6.pdf /F16 11.9552 Tf 99.895 706.129 Td [(psb)]TJ ET q @@ -16475,8 +25919,21 @@ BT /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 +======= +/F16 11.9552 Tf 99.895 706.129 Td [(6.6)-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 [(cdbldext)-597(|)-597(Build)-597(an)-598(extended)-597(comm)31(unication)]TJ -25.091 -13.948 Td [(descriptor)]TJ +0 g 0 G +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 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 +<<<<<<< HEAD:docs/psblas-3.6.pdf 0 -22.903 Td [(nz)]TJ 0 g 0 G /F8 9.9626 Tf 16.439 0 Td [(the)-333(n)28(um)27(b)-27(er)-334(of)-333(co)-28(e\016cien)28(ts)-334(to)-333(b)-28(e)-333(inserted.)]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.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(an)-333(in)28(teger)-333(scalar.)]TJ @@ -16530,10 +25987,34 @@ BT /F27 9.9626 Tf 176.057 706.129 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 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 [(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 +======= +/F27 9.9626 Tf -37.637 -21.094 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.483 Td [(On)-383(En)32(try)]TJ +0 g 0 G +0 g 0 G + 0 -21.484 Td [(a)]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 +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 +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 +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 0 0 1 rg 0 0 1 RG /F30 9.9626 Tf 137.347 0 Td [(psb)]TJ ET q +<<<<<<< HEAD:docs/psblas-3.6.pdf 1 0 0 1 329.276 658.507 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q @@ -16554,8 +26035,34 @@ BT /F8 9.9626 Tf 28.054 0 Td [(Whether)-465(the)-464(en)27(tries)-464(in)-465(the)-465(ind)1(ic)-1(es)-464(v)28(e)-1(ctors)]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.184 0 Td [(optional)]TJ/F8 9.9626 Tf 40.577 0 Td [(.)]TJ -65.761 -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 /F27 9.9626 Tf -224.574 -20.589 Td [(On)-383(Return)]TJ +======= +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 315.174 456.45 Td [(Tspmat)]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 +Q +BT +/F30 9.9626 Tf 350.322 456.45 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 -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 0 g 0 G +/F27 9.9626 Tf -177.767 -21.483 Td [(ext)32(yp)-32(e)]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 +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf +0 g 0 G +/F27 9.9626 Tf -24.907 -23.476 Td [(On)-383(Return)]TJ +0 g 0 G +<<<<<<< HEAD:docs/psblas-3.6.pdf 0 -19.394 Td [(a)]TJ 0 g 0 G /F8 9.9626 Tf 10.55 0 Td [(the)-333(matrix)-334(in)28(to)-333(whic)28(h)-334(co)-28(e\016cien)28(ts)-333(will)-334(b)-27(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.184 0 Td [(required)]TJ/F8 9.9626 Tf -25.184 -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 @@ -16632,20 +26139,64 @@ BT [-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(te)-1(d)-367(b)28(y)-368(the)-367(or-)]TJ 12.73 -11.955 Td [(dered)-358(triples)]TJ/F11 9.9626 Tf 58.163 0 Td [(ia)]TJ/F8 9.9626 Tf 8.698 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 [(;)-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)]TJ/F11 9.9626 Tf 3.874 0 Td [(;)-167(v)-36(al)]TJ/F8 9.9626 Tf 18.049 0 Td [(\050)]TJ/F11 9.9626 Tf 3.875 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.607 0 Td [(=)-319(1)]TJ/F11 9.9626 Tf 15.906 0 Td [(;)-167(:)-166(:)-167(:)-167(;)-166(nz)]TJ/F8 9.9626 Tf 33.19 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)27(t)-384(pro)-28(cess,)-397(i.e.)]TJ/F11 9.9626 Tf 144.426 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)-384(s)-1(h)1(ould)-385(b)-28(e)-384(one)-385(of)-384(the)-384(lo)-28(cal)-385(indices,)]TJ -160.431 -11.955 Td [(but)-333(are)-334(otherwise)-333(arbitrary;)]TJ 0 g 0 G 141.968 -29.888 Td [(82)]TJ +======= +0 g 0 G + 0 -21.484 Td [(desc)]TJ +ET +q +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 +/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 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 315.174 213.106 Td [(desc)]TJ +ET +q +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 339.861 213.106 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.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 +/F8 9.9626 Tf 166.875 -29.888 Td [(79)]TJ +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 0 g 0 G ET endstream endobj +<<<<<<< HEAD:docs/psblas-3.6.pdf 1440 0 obj << /Length 3795 +======= +1439 0 obj +<< +/Length 1587 +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> stream 0 g 0 G 0 g 0 G 0 g 0 G BT +<<<<<<< HEAD:docs/psblas-3.6.pdf /F8 9.9626 Tf 112.072 706.129 Td [(6.)]TJ 0 g 0 G [-500(In)-497(CS)1(R)-497(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.876 0 Td [(i)]TJ/F8 9.9626 Tf 8.91 0 Td [(=)]TJ -311.056 -11.955 Td [(1)]TJ/F11 9.9626 Tf 4.981 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)-313(\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.555 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.855 0 Td [(;)-167(j)-57(a)]TJ/F8 9.9626 Tf 14.367 0 Td [(\050)]TJ/F11 9.9626 Tf 3.875 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.049 0 Td [(\050)]TJ/F11 9.9626 Tf 3.875 0 Td [(j)]TJ/F8 9.9626 Tf 4.672 0 Td [(\051,)-317(for)]TJ/F11 9.9626 Tf -297.077 -11.955 Td [(j)]TJ/F8 9.9626 Tf 8.598 0 Td [(=)]TJ/F11 9.9626 Tf 11.674 0 Td [(ir)-28(p)]TJ/F8 9.9626 Tf 13.217 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(:)-166(:)-167(:)-167(;)-166(ir)-28(p)]TJ/F8 9.9626 Tf 35.355 0 Td [(\050)]TJ/F11 9.9626 Tf 3.874 0 Td [(i)]TJ/F8 9.9626 Tf 6.11 0 Td [(+)-269(1\051)]TJ/F14 9.9626 Tf 21.958 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.393 -11.956 Td [(pro)-28(cess,)-272(i.e.)]TJ/F11 9.9626 Tf 53.793 0 Td [(i)]TJ/F8 9.9626 Tf 4.124 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)-27(e)-257(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 @@ -16671,30 +26222,54 @@ BT [-500(If)-308(the)-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(th)1(at)-309(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 141.968 -384.558 Td [(83)]TJ +======= +/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 [(80)]TJ +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 0 g 0 G ET endstream endobj +<<<<<<< HEAD:docs/psblas-3.6.pdf 1452 0 obj << /Length 6648 +======= +1447 0 obj +<< +/Length 4897 +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> 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 +<<<<<<< HEAD:docs/psblas-3.6.pdf /F16 11.9552 Tf 175.796 706.129 Td [(spasb)-375(|)-375(Sparse)-375(matrix)-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_spasb\050a,)-525(desc_a,)-525(info,)-525(afmt,)-525(upd,)-525(dupl,)-525(mold\051)]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 -55.726 -18.389 Td [(call)-525(psb_spall\050a,)-525(desc_a,)-525(info,)-525(nnz\051)]TJ +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 0 g 0 G /F27 9.9626 Tf 0 -21.202 Td [(T)32(yp)-32(e:)]TJ 0 g 0 G @@ -16706,6 +26281,7 @@ BT 0 -19.638 Td [(desc)]TJ ET q +<<<<<<< HEAD:docs/psblas-3.6.pdf 1 0 0 1 172.619 627.46 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q @@ -16713,10 +26289,20 @@ BT /F27 9.9626 Tf 176.057 627.261 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.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 +======= +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 [(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 +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 0 0 1 rg 0 0 1 RG /F30 9.9626 Tf 170.915 0 Td [(psb)]TJ ET q +<<<<<<< HEAD:docs/psblas-3.6.pdf 1 0 0 1 362.845 579.639 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q @@ -16729,9 +26315,24 @@ q Q BT /F30 9.9626 Tf 390.67 579.44 Td [(type)]TJ +======= +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 +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 0 g 0 G /F8 9.9626 Tf 20.922 0 Td [(.)]TJ 0 g 0 G +<<<<<<< HEAD:docs/psblas-3.6.pdf /F27 9.9626 Tf -260.887 -19.639 Td [(afm)32(t)]TJ 0 g 0 G /F8 9.9626 Tf 27.736 0 Td [(the)-333(storage)-334(format)-333(for)-333(the)-334(sparse)-333(matrix.)]TJ -2.829 -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(arra)28(y)-333(of)-334(c)28(haracters.)-444(Defalt:)-445('CSR'.)]TJ @@ -16777,8 +26378,42 @@ BT /F30 9.9626 Tf 467.248 297.647 Td [(mat)]TJ/F8 9.9626 Tf 15.691 0 Td [(.)]TJ 0 g 0 G /F27 9.9626 Tf -332.234 -21.201 Td [(On)-383(Return)]TJ +======= +/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 +ET +q +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 315.174 408.786 Td [(Tspmat)]TJ +ET +q +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 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 +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 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 +<<<<<<< HEAD:docs/psblas-3.6.pdf 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.355 -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 [(required)]TJ/F8 9.9626 Tf -25.184 -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 @@ -16806,24 +26441,57 @@ BT /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.201 Td [(Notes)]TJ 0 g 0 G /F8 9.9626 Tf 166.874 -29.888 Td [(84)]TJ +======= +/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 +0 g 0 G + 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 + 0 -19.925 Td [(3.)]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 +0 g 0 G + 141.968 -133.042 Td [(81)]TJ +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 0 g 0 G ET endstream endobj +<<<<<<< HEAD:docs/psblas-3.6.pdf 1456 0 obj << /Length 2248 +======= +1455 0 obj +<< +/Length 5716 +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> stream 0 g 0 G 0 g 0 G 0 g 0 G BT +<<<<<<< HEAD:docs/psblas-3.6.pdf /F8 9.9626 Tf 112.072 706.129 Td [(1.)]TJ +======= +/F16 11.9552 Tf 150.705 706.129 Td [(6.8)-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 [(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 +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 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)28(bled)-406(state)-1(,)]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 +<<<<<<< HEAD:docs/psblas-3.6.pdf -80.282 -19.926 Td [(2.)]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 @@ -16831,9 +26499,19 @@ BT 0 -19.925 Td [(3.)]TJ 0 g 0 G [-500(Duplicate)-250(en)28(tries)-250(are)-249(detec)-1(ted)-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(i)1(s)-283(only)-282(tak)28(en)-283(in)-282(the)-282(build)-282(s)-1(tate,)]TJ 0 -11.955 Td [(i.e.)-444(on)-334(the)-333(\014rst)-333(assem)27(bly;)]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 -23.016 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.39 Td [(On)-383(En)32(try)]TJ +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 0 g 0 G -12.73 -19.925 Td [(4.)]TJ 0 g 0 G +<<<<<<< HEAD:docs/psblas-3.6.pdf [-500(If)-224(the)-224(up)-28(d)1(ate)-224(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.951 0 Td [(psb_spins)]TJ/F8 9.9626 Tf -271.731 -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)28(t)-229(v)56(alues)-228(as)-229(encoun)28(tered)-228(at)-229(the)-228(\014rst)-228(assem)28(bly;)]TJ 0 g 0 G -12.73 -19.925 Td [(5.)]TJ @@ -16845,11 +26523,169 @@ BT [-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,)-379(and)-370(th)27(us)]TJ 12.73 -11.956 Td [(is)-333(suitable)-334(for)-333(the)-333(computational)-334(r)1(outines.)]TJ 0 g 0 G 141.968 -444.333 Td [(85)]TJ +======= + 0 -21.389 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(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 +/F27 9.9626 Tf -24.907 -21.389 Td [(nr)]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.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 +/F27 9.9626 Tf -24.907 -21.389 Td [(irw)]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.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 -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 +/F27 9.9626 Tf -196.938 -21.39 Td [(irp)]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.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 +/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 +1461 0 obj +<< +/Length 7378 +>> +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 +ET +q +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 +/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 278.467 658.507 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 +ET +q +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 +/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 +/F27 9.9626 Tf -227.319 -31.349 Td [(lo)-32(cal)]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 +0 g 0 G +/F27 9.9626 Tf -224.575 -20.589 Td [(On)-383(Return)]TJ +0 g 0 G +0 g 0 G + 0 -19.394 Td [(a)]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 +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 +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 +BT +/F30 9.9626 Tf 281.605 424.12 Td [(desc)]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 +Q +BT +/F30 9.9626 Tf 306.292 424.12 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.349 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/F16 11.9552 Tf -24.907 -20.59 Td [(Notes)]TJ +0 g 0 G +/F8 9.9626 Tf 12.177 -18.862 Td [(1.)]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 +0 g 0 G + -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 + -12.73 -19.394 Td [(3.)]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 +0 g 0 G + -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 +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 0 g 0 G ET endstream endobj +<<<<<<< HEAD:docs/psblas-3.6.pdf 1346 0 obj << /Type /ObjStm @@ -16893,9 +26729,58 @@ stream % 1351 0 obj << /D [1349 0 R /XYZ 149.705 753.953 null] +======= +1352 0 obj +<< +/Type /ObjStm +/N 100 +/First 976 +/Length 10628 +>> +stream +1348 0 1349 59 1350 118 1351 177 1344 236 1354 393 1356 511 1353 569 1361 662 1358 801 +1363 947 304 1006 1364 1064 1365 1123 1366 1182 1360 1241 1370 1398 1359 1555 1367 1699 1368 1842 +1372 1988 1369 2046 1374 2152 1376 2270 308 2329 312 2387 1373 2445 1379 2577 1377 2716 1381 2863 +1382 2921 1378 2979 1385 3098 1383 3237 1387 3395 1388 3454 1384 3513 1390 3645 1392 3763 1393 3821 +1394 3879 1395 3937 1396 3995 1397 4053 1389 4109 1401 4189 1399 4328 1403 4473 316 4532 1400 4590 +1406 4709 1404 4848 1408 5006 1409 5064 1410 5122 1411 5180 1405 5238 1415 5344 1412 5492 1413 5638 +1417 5784 320 5843 1418 5901 1414 5960 1422 6066 1419 6214 1420 6360 1424 6507 324 6565 1421 6622 +1427 6728 1425 6867 1429 7012 328 7071 1426 7129 1433 7235 1430 7383 1431 7527 1435 7674 332 7732 +1432 7789 1438 7921 1440 8039 1441 8098 1442 8157 1437 8216 1446 8296 1443 8444 1444 8590 1448 8733 +336 8791 1449 8848 1450 8906 1451 8964 1445 9022 1454 9141 1456 9259 340 9318 1453 9376 1460 9495 +% 1348 0 obj +<< +/D [1345 0 R /XYZ 320.941 466.542 null] +>> +% 1349 0 obj +<< +/D [1345 0 R /XYZ 150.705 435.558 null] +>> +% 1350 0 obj +<< +/D [1345 0 R /XYZ 150.705 435.558 null] >> -% 1352 0 obj +% 1351 0 obj +<< +/D [1345 0 R /XYZ 150.705 423.603 null] +>> +% 1344 0 obj +<< +/Font << /F16 582 0 R /F8 585 0 R /F11 796 0 R /F14 813 0 R /F10 812 0 R /F7 811 0 R /F27 584 0 R /F30 810 0 R >> +/ProcSet [ /PDF /Text ] +>> +% 1354 0 obj +<< +/Type /Page +/Contents 1355 0 R +/Resources 1353 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1357 0 R +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf +>> +% 1356 0 obj << +<<<<<<< HEAD:docs/psblas-3.6.pdf /D [1349 0 R /XYZ 150.705 234.372 null] >> % 1348 0 obj @@ -16913,10 +26798,30 @@ stream /Annots [ 1353 0 R ] >> % 1353 0 obj +======= +/D [1354 0 R /XYZ 98.895 753.953 null] +>> +% 1353 0 obj << -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] +/Font << /F27 584 0 R /F8 585 0 R /F30 810 0 R >> +/ProcSet [ /PDF /Text ] +>> +% 1361 0 obj +<< +/Type /Page +/Contents 1362 0 R +/Resources 1360 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1357 0 R +/Annots [ 1358 0 R ] +>> +% 1358 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +<<<<<<< HEAD:docs/psblas-3.6.pdf /Rect [357.982 215.702 380.454 226.827] /A << /S /GoTo /D (subsubsection.2.3.1) >> >> @@ -16940,13 +26845,34 @@ stream /Resources 1359 0 R /MediaBox [0 0 595.276 841.89] /Parent 1335 0 R +======= +/Rect [345.53 210.686 412.588 221.811] +/A << /S /GoTo /D (descdata) >> +>> +% 1363 0 obj +<< +/D [1361 0 R /XYZ 149.705 753.953 null] +>> +% 304 0 obj +<< +/D [1361 0 R /XYZ 150.705 716.092 null] +>> +% 1364 0 obj +<< +/D [1361 0 R /XYZ 320.941 451.038 null] +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> -% 1362 0 obj +% 1365 0 obj << +<<<<<<< HEAD:docs/psblas-3.6.pdf /D [1360 0 R /XYZ 149.705 753.953 null] +======= +/D [1361 0 R /XYZ 150.705 417.777 null] +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> -% 1363 0 obj +% 1366 0 obj << +<<<<<<< HEAD:docs/psblas-3.6.pdf /D [1360 0 R /XYZ 150.705 716.092 null] >> % 1364 0 obj @@ -16956,9 +26882,43 @@ stream % 1365 0 obj << /D [1360 0 R /XYZ 150.705 668.049 null] +======= +/D [1361 0 R /XYZ 150.705 417.777 null] +>> +% 1360 0 obj +<< +/Font << /F16 582 0 R /F8 585 0 R /F11 796 0 R /F10 812 0 R /F14 813 0 R /F7 811 0 R /F27 584 0 R /F30 810 0 R >> +/ProcSet [ /PDF /Text ] +>> +% 1370 0 obj +<< +/Type /Page +/Contents 1371 0 R +/Resources 1369 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1357 0 R +/Annots [ 1359 0 R 1367 0 R 1368 0 R ] +>> +% 1359 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] +/A << /S /GoTo /D (vdata) >> +>> +% 1367 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) >> +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> % 1366 0 obj << +<<<<<<< HEAD:docs/psblas-3.6.pdf /D [1360 0 R /XYZ 150.705 626.428 null] >> % 1367 0 obj @@ -16999,9 +26959,76 @@ stream << /Font << /F16 570 0 R /F30 784 0 R /F8 573 0 R /F11 770 0 R /F27 572 0 R >> /ProcSet [ /PDF /Text ] +======= +/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.20) >> +>> +% 1372 0 obj +<< +/D [1370 0 R /XYZ 98.895 753.953 null] +>> +% 1369 0 obj +<< +/Font << /F27 584 0 R /F8 585 0 R /F30 810 0 R /F11 796 0 R >> +/ProcSet [ /PDF /Text ] +>> +% 1374 0 obj +<< +/Type /Page +/Contents 1375 0 R +/Resources 1373 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1357 0 R >> % 1376 0 obj << +/D [1374 0 R /XYZ 149.705 753.953 null] +>> +% 308 0 obj +<< +/D [1374 0 R /XYZ 150.705 716.092 null] +>> +% 312 0 obj +<< +/D [1374 0 R /XYZ 150.705 693.474 null] +>> +% 1373 0 obj +<< +/Font << /F16 582 0 R /F30 810 0 R /F8 585 0 R /F27 584 0 R /F11 796 0 R /F14 813 0 R >> +/ProcSet [ /PDF /Text ] +>> +% 1379 0 obj +<< +/Type /Page +/Contents 1380 0 R +/Resources 1378 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1357 0 R +/Annots [ 1377 0 R ] +>> +% 1377 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) >> +>> +% 1381 0 obj +<< +/D [1379 0 R /XYZ 98.895 753.953 null] +>> +% 1382 0 obj +<< +/D [1379 0 R /XYZ 99.895 234.372 null] +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf +>> +% 1378 0 obj +<< +<<<<<<< HEAD:docs/psblas-3.6.pdf /Type /Page /Contents 1377 0 R /Resources 1375 0 R @@ -17016,21 +27043,56 @@ stream /Border[0 0 0]/H/I/C[1 0 0] /Rect [325.383 402.324 347.855 413.172] /A << /S /GoTo /D (subsubsection.2.3.1) >> +======= +/Font << /F27 584 0 R /F8 585 0 R /F30 810 0 R /F11 796 0 R /F16 582 0 R >> +/ProcSet [ /PDF /Text ] >> -% 1378 0 obj +% 1385 0 obj +<< +/Type /Page +/Contents 1386 0 R +/Resources 1384 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1357 0 R +/Annots [ 1383 0 R ] +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf +>> +% 1383 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) >> +>> +% 1387 0 obj << +<<<<<<< HEAD:docs/psblas-3.6.pdf /D [1376 0 R /XYZ 149.705 753.953 null] +======= +/D [1385 0 R /XYZ 149.705 753.953 null] +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> -% 1379 0 obj +% 1388 0 obj << +<<<<<<< HEAD:docs/psblas-3.6.pdf /D [1376 0 R /XYZ 150.705 496.913 null] >> % 1380 0 obj << /D [1376 0 R /XYZ 150.705 475.051 null] +======= +/D [1385 0 R /XYZ 150.705 134.155 null] >> -% 1381 0 obj +% 1384 0 obj +<< +/Font << /F30 810 0 R /F8 585 0 R /F27 584 0 R /F14 813 0 R /F11 796 0 R /F10 812 0 R >> +/ProcSet [ /PDF /Text ] +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf +>> +% 1390 0 obj << +<<<<<<< HEAD:docs/psblas-3.6.pdf /D [1376 0 R /XYZ 150.705 431.215 null] >> % 1375 0 obj @@ -17062,17 +27124,49 @@ stream /Border[0 0 0]/H/I/C[1 0 0] /Rect [294.721 417.531 361.779 428.656] /A << /S /GoTo /D (descdata) >> +======= +/Type /Page +/Contents 1391 0 R +/Resources 1389 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1398 0 R >> -% 1387 0 obj +% 1392 0 obj +<< +/D [1390 0 R /XYZ 98.895 753.953 null] +>> +% 1393 0 obj +<< +/D [1390 0 R /XYZ 99.895 716.092 null] +>> +% 1394 0 obj +<< +/D [1390 0 R /XYZ 99.895 688.251 null] +>> +% 1395 0 obj +<< +/D [1390 0 R /XYZ 99.895 668.049 null] +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf +>> +% 1396 0 obj << +<<<<<<< HEAD:docs/psblas-3.6.pdf /D [1385 0 R /XYZ 98.895 753.953 null] >> % 308 0 obj << /D [1385 0 R /XYZ 99.895 720.077 null] +======= +/D [1390 0 R /XYZ 99.895 626.428 null] +>> +% 1397 0 obj +<< +/D [1390 0 R /XYZ 99.895 568.7 null] +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> % 1388 0 obj << +<<<<<<< HEAD:docs/psblas-3.6.pdf /D [1385 0 R /XYZ 99.895 327.092 null] >> % 1384 0 obj @@ -17090,10 +27184,26 @@ stream /Annots [ 1389 0 R 1390 0 R ] >> % 1389 0 obj +======= +/Font << /F8 585 0 R /F30 810 0 R >> +/ProcSet [ /PDF /Text ] +>> +% 1401 0 obj +<< +/Type /Page +/Contents 1402 0 R +/Resources 1400 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1398 0 R +/Annots [ 1399 0 R ] +>> +% 1399 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] +<<<<<<< HEAD:docs/psblas-3.6.pdf /Rect [345.53 574.94 412.588 586.065] /A << /S /GoTo /D (descdata) >> >> @@ -17134,9 +27244,60 @@ stream /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 117.115 412.588 128.24] +/A << /S /GoTo /D (descdata) >> +>> +% 1403 0 obj +<< +/D [1401 0 R /XYZ 149.705 753.953 null] +>> +% 316 0 obj +<< +/D [1401 0 R /XYZ 150.705 716.092 null] +>> +% 1400 0 obj +<< +/Font << /F16 582 0 R /F30 810 0 R /F8 585 0 R /F11 796 0 R /F27 584 0 R >> +/ProcSet [ /PDF /Text ] +>> +% 1406 0 obj +<< +/Type /Page +/Contents 1407 0 R +/Resources 1405 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1398 0 R +/Annots [ 1404 0 R ] +>> +% 1404 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) >> +>> +% 1408 0 obj +<< +/D [1406 0 R /XYZ 98.895 753.953 null] +>> +% 1409 0 obj +<< +/D [1406 0 R /XYZ 99.895 496.913 null] +>> +% 1410 0 obj +<< +/D [1406 0 R /XYZ 99.895 475.051 null] +>> +% 1411 0 obj +<< +/D [1406 0 R /XYZ 99.895 431.215 null] +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> % 1399 0 obj << +<<<<<<< HEAD:docs/psblas-3.6.pdf /D [1397 0 R /XYZ 98.895 753.953 null] >> % 316 0 obj @@ -17158,18 +27319,41 @@ stream /Annots [ 1400 0 R 1401 0 R ] >> % 1400 0 obj +======= +/Font << /F27 584 0 R /F8 585 0 R /F11 796 0 R /F16 582 0 R >> +/ProcSet [ /PDF /Text ] +>> +% 1415 0 obj +<< +/Type /Page +/Contents 1416 0 R +/Resources 1414 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1398 0 R +/Annots [ 1412 0 R 1413 0 R ] +>> +% 1412 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] +<<<<<<< HEAD:docs/psblas-3.6.pdf /Rect [345.53 453.24 423.049 464.364] /A << /S /GoTo /D (spdata) >> >> % 1401 0 obj +======= +/Rect [345.53 560.993 412.588 572.118] +/A << /S /GoTo /D (descdata) >> +>> +% 1413 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] +<<<<<<< HEAD:docs/psblas-3.6.pdf /Rect [345.53 209.896 412.588 221.021] /A << /S /GoTo /D (descdata) >> >> @@ -17193,9 +27377,26 @@ stream /Resources 1406 0 R /MediaBox [0 0 595.276 841.89] /Parent 1412 0 R +======= +/Rect [345.53 403.583 412.588 414.708] +/A << /S /GoTo /D (descdata) >> >> -% 1409 0 obj +% 1417 0 obj +<< +/D [1415 0 R /XYZ 149.705 753.953 null] +>> +% 320 0 obj +<< +/D [1415 0 R /XYZ 150.705 716.092 null] +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf +>> +% 1418 0 obj +<< +/D [1415 0 R /XYZ 150.705 313.144 null] +>> +% 1414 0 obj << +<<<<<<< HEAD:docs/psblas-3.6.pdf /D [1407 0 R /XYZ 98.895 753.953 null] >> % 1410 0 obj @@ -17209,30 +27410,43 @@ stream % 1406 0 obj << /Font << /F8 573 0 R /F30 784 0 R >> +======= +/Font << /F16 582 0 R /F30 810 0 R /F27 584 0 R /F8 585 0 R >> +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf /ProcSet [ /PDF /Text ] >> -% 1416 0 obj +% 1422 0 obj << /Type /Page -/Contents 1417 0 R -/Resources 1415 0 R +/Contents 1423 0 R +/Resources 1421 0 R /MediaBox [0 0 595.276 841.89] +<<<<<<< HEAD:docs/psblas-3.6.pdf /Parent 1412 0 R /Annots [ 1413 0 R 1414 0 R ] +======= +/Parent 1398 0 R +/Annots [ 1419 0 R 1420 0 R ] +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> -% 1413 0 obj +% 1419 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] +<<<<<<< HEAD:docs/psblas-3.6.pdf /Rect [345.53 574.94 412.588 586.065] +======= +/Rect [294.721 574.94 361.779 586.065] +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf /A << /S /GoTo /D (descdata) >> >> -% 1414 0 obj +% 1420 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] +<<<<<<< HEAD:docs/psblas-3.6.pdf /Rect [345.53 405.575 423.049 416.7] /A << /S /GoTo /D (spdata) >> >> @@ -17241,11 +27455,18 @@ stream /D [1416 0 R /XYZ 149.705 753.953 null] >> % 324 0 obj +======= +/Rect [294.721 485.277 361.779 496.401] +/A << /S /GoTo /D (descdata) >> +>> +% 1424 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << -/D [1416 0 R /XYZ 150.705 720.077 null] +/D [1422 0 R /XYZ 98.895 753.953 null] >> -% 1419 0 obj +% 324 0 obj << +<<<<<<< HEAD:docs/psblas-3.6.pdf /D [1416 0 R /XYZ 150.705 315.137 null] >> % 1420 0 obj @@ -17255,9 +27476,13 @@ stream % 1421 0 obj << /D [1416 0 R /XYZ 150.705 273.349 null] +======= +/D [1422 0 R /XYZ 99.895 716.092 null] +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> -% 1415 0 obj +% 1421 0 obj << +<<<<<<< HEAD:docs/psblas-3.6.pdf /Font << /F16 570 0 R /F30 784 0 R /F27 572 0 R /F8 573 0 R /F11 770 0 R >> /ProcSet [ /PDF /Text ] >> @@ -17278,6 +27503,12 @@ stream /D [1424 0 R /XYZ 99.895 720.077 null] >> % 1423 0 obj +======= +/Font << /F16 582 0 R /F30 810 0 R /F27 584 0 R /F8 585 0 R >> +/ProcSet [ /PDF /Text ] +>> +% 1427 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << /Font << /F16 570 0 R /F30 784 0 R /F27 572 0 R /F8 573 0 R /F11 770 0 R >> /ProcSet [ /PDF /Text ] @@ -17285,6 +27516,7 @@ stream % 1430 0 obj << /Type /Page +<<<<<<< HEAD:docs/psblas-3.6.pdf /Contents 1431 0 R /Resources 1429 0 R /MediaBox [0 0 595.276 841.89] @@ -17292,10 +27524,20 @@ stream /Annots [ 1422 0 R 1427 0 R 1428 0 R ] >> % 1422 0 obj +======= +/Contents 1428 0 R +/Resources 1426 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1398 0 R +/Annots [ 1425 0 R ] +>> +% 1425 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] +<<<<<<< HEAD:docs/psblas-3.6.pdf /Rect [311.962 655.098 379.019 666.223] /A << /S /GoTo /D (descdata) >> >> @@ -17308,10 +27550,39 @@ stream /A << /S /GoTo /D (spdata) >> >> % 1428 0 obj +======= +/Rect [345.53 574.94 412.588 586.065] +/A << /S /GoTo /D (descdata) >> +>> +% 1429 0 obj +<< +/D [1427 0 R /XYZ 149.705 753.953 null] +>> +% 328 0 obj +<< +/D [1427 0 R /XYZ 150.705 716.092 null] +>> +% 1426 0 obj +<< +/Font << /F16 582 0 R /F30 810 0 R /F27 584 0 R /F8 585 0 R >> +/ProcSet [ /PDF /Text ] +>> +% 1433 0 obj +<< +/Type /Page +/Contents 1434 0 R +/Resources 1432 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1436 0 R +/Annots [ 1430 0 R 1431 0 R ] +>> +% 1430 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] +<<<<<<< HEAD:docs/psblas-3.6.pdf /Rect [311.962 420.91 379.019 432.035] /A << /S /GoTo /D (descdata) >> >> @@ -17326,17 +27597,59 @@ stream % 1434 0 obj << /D [1430 0 R /XYZ 150.705 289.823 null] +======= +/Rect [294.721 453.24 372.239 464.364] +/A << /S /GoTo /D (spdata) >> +>> +% 1431 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) >> >> % 1435 0 obj << +/D [1433 0 R /XYZ 98.895 753.953 null] +>> +% 332 0 obj +<< +/D [1433 0 R /XYZ 99.895 716.092 null] +>> +% 1432 0 obj +<< +/Font << /F16 582 0 R /F30 810 0 R /F8 585 0 R /F27 584 0 R /F11 796 0 R /F14 813 0 R >> +/ProcSet [ /PDF /Text ] +>> +% 1438 0 obj +<< +/Type /Page +/Contents 1439 0 R +/Resources 1437 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1436 0 R +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf +>> +% 1440 0 obj +<< +<<<<<<< HEAD:docs/psblas-3.6.pdf /D [1430 0 R /XYZ 150.705 256.537 null] +======= +/D [1438 0 R /XYZ 149.705 753.953 null] +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> -% 1436 0 obj +% 1441 0 obj << +<<<<<<< HEAD:docs/psblas-3.6.pdf /D [1430 0 R /XYZ 150.705 189.322 null] +======= +/D [1438 0 R /XYZ 150.705 716.092 null] +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> -% 1437 0 obj +% 1442 0 obj << +<<<<<<< HEAD:docs/psblas-3.6.pdf /D [1430 0 R /XYZ 150.705 169.929 null] >> % 1429 0 obj @@ -17367,9 +27680,47 @@ stream % 1444 0 obj << /D [1439 0 R /XYZ 99.895 607.997 null] +======= +/D [1438 0 R /XYZ 150.705 664.341 null] >> -% 1445 0 obj +% 1437 0 obj +<< +/Font << /F8 585 0 R /F30 810 0 R >> +/ProcSet [ /PDF /Text ] +>> +% 1446 0 obj +<< +/Type /Page +/Contents 1447 0 R +/Resources 1445 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1436 0 R +/Annots [ 1443 0 R 1444 0 R ] +>> +% 1443 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) >> +>> +% 1444 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) >> +>> +% 1448 0 obj +<< +/D [1446 0 R /XYZ 98.895 753.953 null] +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf +>> +% 336 0 obj << +<<<<<<< HEAD:docs/psblas-3.6.pdf /D [1439 0 R /XYZ 99.895 576.67 null] >> % 1446 0 obj @@ -17430,17 +27781,74 @@ stream /Resources 1454 0 R /MediaBox [0 0 595.276 841.89] /Parent 1464 0 R +======= +/D [1446 0 R /XYZ 99.895 716.092 null] +>> +% 1449 0 obj +<< +/D [1446 0 R /XYZ 99.895 315.137 null] +>> +% 1450 0 obj +<< +/D [1446 0 R /XYZ 99.895 293.274 null] +>> +% 1451 0 obj +<< +/D [1446 0 R /XYZ 99.895 273.349 null] +>> +% 1445 0 obj +<< +/Font << /F16 582 0 R /F30 810 0 R /F27 584 0 R /F8 585 0 R /F11 796 0 R >> +/ProcSet [ /PDF /Text ] +>> +% 1454 0 obj +<< +/Type /Page +/Contents 1455 0 R +/Resources 1453 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1436 0 R +>> +% 1456 0 obj +<< +/D [1454 0 R /XYZ 149.705 753.953 null] +>> +% 340 0 obj +<< +/D [1454 0 R /XYZ 150.705 716.092 null] +>> +% 1453 0 obj +<< +/Font << /F16 582 0 R /F30 810 0 R /F27 584 0 R /F8 585 0 R /F11 796 0 R >> +/ProcSet [ /PDF /Text ] +>> +% 1460 0 obj +<< +/Type /Page +/Contents 1461 0 R +/Resources 1459 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1436 0 R +/Annots [ 1452 0 R 1457 0 R 1458 0 R ] +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> endstream endobj +<<<<<<< HEAD:docs/psblas-3.6.pdf 1470 0 obj << /Length 3084 +======= +1471 0 obj +<< +/Length 3810 +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> stream 0 g 0 G 0 g 0 G +<<<<<<< HEAD:docs/psblas-3.6.pdf BT /F16 11.9552 Tf 150.705 706.129 Td [(psb)]TJ ET @@ -17457,10 +27865,15 @@ BT /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 +======= +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 0 g 0 G -/F27 9.9626 Tf -33.797 -19.926 Td [(On)-383(En)32(try)]TJ +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 +<<<<<<< HEAD:docs/psblas-3.6.pdf 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.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.956 Td [(Sp)-28(eci\014ed)-333(as:)-444(a)-334(structured)-333(data)-333(of)-334(t)28(yp)-28(e)]TJ @@ -17493,10 +27906,76 @@ BT /F27 9.9626 Tf 176.057 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.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(structured)-333(data)-333(of)-334(t)28(yp)-28(e)]TJ +======= + -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 + [-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 + -17.711 -19.925 Td [(11.)]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 +0 g 0 G + 141.968 -384.558 Td [(84)]TJ +0 g 0 G +ET + +endstream +endobj +1483 0 obj +<< +/Length 6651 +>> +stream +0 g 0 G +0 g 0 G +BT +/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 +0 g 0 G +/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 +/F27 9.9626 Tf 0 -21.202 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.639 Td [(On)-383(En)32(try)]TJ +0 g 0 G +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 +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 +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 0 0 1 rg 0 0 1 RG /F30 9.9626 Tf 170.915 0 Td [(psb)]TJ ET q +<<<<<<< HEAD:docs/psblas-3.6.pdf 1 0 0 1 362.845 510.604 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q @@ -17530,8 +28009,38 @@ endobj /Length 3991 >> stream +======= +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 +0 g 0 G +/F8 9.9626 Tf 20.921 0 Td [(.)]TJ +0 g 0 G +/F27 9.9626 Tf -260.887 -19.639 Td [(afm)32(t)]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 0 g 0 G +/F27 9.9626 Tf -24.907 -19.639 Td [(up)-32(d)]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 +0 g 0 G +/F27 9.9626 Tf -263.623 -19.639 Td [(dupl)]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 +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 0 g 0 G +/F27 9.9626 Tf -92.901 -19.639 Td [(mold)]TJ +0 g 0 G +<<<<<<< HEAD:docs/psblas-3.6.pdf BT /F16 11.9552 Tf 99.895 706.129 Td [(psb)]TJ ET @@ -17584,10 +28093,49 @@ BT /F27 9.9626 Tf 125.247 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.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 +======= +/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 +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 +/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 +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 0 0 1 rg 0 0 1 RG /F30 9.9626 Tf 170.915 0 Td [(psb)]TJ ET q +<<<<<<< HEAD:docs/psblas-3.6.pdf 1 0 0 1 312.036 496.656 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q @@ -17619,19 +28167,87 @@ BT [-500(On)-333(exit)-334(from)-333(this)-333(routine)-333(the)-334(sparse)-333(matrix)-333(is)-334(in)-333(the)-333(up)-28(date)-333(s)-1(tat)1(e)-1(.)]TJ 0 g 0 G 154.698 -206.766 Td [(87)]TJ +======= +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 208.986 Td [(Tspmat)]TJ +ET +q +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 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 +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 +0 g 0 G +/F8 9.9626 Tf 166.875 -29.888 Td [(85)]TJ +0 g 0 G +ET + +endstream +endobj +1488 0 obj +<< +/Length 2255 +>> +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(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 + -80.282 -19.926 Td [(2.)]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 +0 g 0 G + 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 +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 0 g 0 G ET endstream endobj +<<<<<<< HEAD:docs/psblas-3.6.pdf 1483 0 obj << /Length 5111 +======= +1500 0 obj +<< +/Length 3097 +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> stream 0 g 0 G 0 g 0 G BT +<<<<<<< HEAD:docs/psblas-3.6.pdf /F16 11.9552 Tf 150.705 706.129 Td [(psb)]TJ ET q @@ -17643,6 +28259,19 @@ BT 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 +======= +/F16 11.9552 Tf 99.895 706.129 Td [(6.10)-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 [(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 -62.451 -18.389 Td [(call)-525(psb_spfree\050a,)-525(desc_a,)-525(info\051)]TJ +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 0 g 0 G /F27 9.9626 Tf 0 -21.918 Td [(T)32(yp)-32(e:)]TJ 0 g 0 G @@ -17651,6 +28280,7 @@ BT /F27 9.9626 Tf -33.797 -19.926 Td [(On)-383(En)32(try)]TJ 0 g 0 G 0 g 0 G +<<<<<<< HEAD:docs/psblas-3.6.pdf 0 -19.925 Td [(desc)]TJ ET q @@ -17661,10 +28291,45 @@ 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 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 -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 20.921 0 Td [(.)]TJ +0 g 0 G +/F27 9.9626 Tf -271.348 -19.925 Td [(desc)]TJ +ET +q +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 125.247 558.225 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 +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 0 0 1 rg 0 0 1 RG /F30 9.9626 Tf 137.347 0 Td [(psb)]TJ ET q +<<<<<<< HEAD:docs/psblas-3.6.pdf 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 @@ -17725,19 +28390,51 @@ BT /F8 9.9626 Tf 23.758 0 Td [(Error)-333(co)-28(de.)]TJ 1.148 -11.956 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.612 0 Td [(required)]TJ/F8 9.9626 Tf -29.612 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(out)]TJ/F8 9.9626 Tf 16.549 0 Td [(.)]TJ -50.035 -11.955 Td [(An)-333(in)27(t)1(e)-1(ger)-333(v)56(alue;)-334(0)-333(means)-333(no)-334(error)-333(has)-333(b)-28(een)-333(detec)-1(ted.)]TJ 0 g 0 G 141.968 -123.08 Td [(88)]TJ -0 g 0 G +======= +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 315.174 510.405 Td [(desc)]TJ ET - -endstream -endobj -1489 0 obj -<< -/Length 6817 ->> -stream +q +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 339.861 510.405 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.918 Td [(On)-383(Return)]TJ +0 g 0 G +0 g 0 G + 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.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 [(87)]TJ +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf +0 g 0 G +ET + +endstream +endobj +<<<<<<< HEAD:docs/psblas-3.6.pdf +1489 0 obj +<< +/Length 6817 +======= +1506 0 obj +<< +/Length 3985 +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf +>> +stream 0 g 0 G 0 g 0 G BT +<<<<<<< HEAD:docs/psblas-3.6.pdf /F16 11.9552 Tf 99.895 706.129 Td [(psb)]TJ ET q @@ -17749,11 +28446,25 @@ BT 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 +======= +/F16 11.9552 Tf 150.705 706.129 Td [(6.11)-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 [(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 -37.36 -18.389 Td [(call)-525(psb_sprn\050a,)-525(decsc_a,)-525(info,)-525(clear\051)]TJ +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 0 g 0 G /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 +/F8 9.9626 Tf 33.797 0 Td [(Sync)28(hronous.)]TJ 0 g 0 G +<<<<<<< HEAD:docs/psblas-3.6.pdf /F27 9.9626 Tf -33.797 -19.43 Td [(On)-383(En)32(try)]TJ 0 g 0 G 0 g 0 G @@ -17777,12 +28488,48 @@ q Q BT /F27 9.9626 Tf 125.247 414.49 Td [(a)]TJ +======= +/F27 9.9626 Tf -33.797 -19.925 Td [(On)-383(En)32(try)]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 g 0 G + 0 -19.926 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(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 +/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 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 176.057 544.278 Td [(a)]TJ +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf +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 0 0 1 rg 0 0 1 RG /F30 9.9626 Tf 170.915 0 Td [(psb)]TJ ET q +<<<<<<< HEAD:docs/psblas-3.6.pdf 1 0 0 1 312.036 366.869 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q @@ -17839,20 +28586,60 @@ BT /F8 9.9626 Tf 20.921 0 Td [(,)]TJ -316.037 -11.955 Td [(of)-333(t)27(y)1(p)-28(e)-334(real,)-333(complex)-333(or)-334(in)28(teger.)]TJ 0 g 0 G 141.968 -41.843 Td [(89)]TJ +======= +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 365.983 496.457 Td [(desc)]TJ +ET +q +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 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 +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 +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)-334(t)1(he)-334(sparse)-333(matrix)-334(is)-333(in)-333(the)-333(up)-28(date)-334(state.)]TJ +0 g 0 G + 154.698 -206.766 Td [(88)]TJ +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 0 g 0 G ET endstream endobj +<<<<<<< HEAD:docs/psblas-3.6.pdf 1493 0 obj << /Length 1115 +======= +1513 0 obj +<< +/Length 5118 +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> stream 0 g 0 G 0 g 0 G 0 g 0 G BT +<<<<<<< HEAD:docs/psblas-3.6.pdf /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/F16 11.9552 Tf -24.906 -21.918 Td [(Notes)]TJ @@ -17890,6 +28677,19 @@ BT 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 +======= +/F16 11.9552 Tf 99.895 706.129 Td [(6.12)-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 [(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 -62.451 -18.389 Td [(call)-525(psb_geall\050x,)-525(desc_a,)-525(info,)-525(n,)-525(lb\051)]TJ +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 0 g 0 G /F27 9.9626 Tf 0 -21.918 Td [(T)32(yp)-32(e:)]TJ 0 g 0 G @@ -17927,10 +28727,59 @@ BT 0 g 0 G /F8 9.9626 Tf 20.922 0 Td [(.)]TJ 0 g 0 G +<<<<<<< HEAD:docs/psblas-3.6.pdf /F27 9.9626 Tf -227.319 -31.88 Td [(mold)]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 +/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 +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 +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 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.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)-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 +<<<<<<< HEAD:docs/psblas-3.6.pdf q 1 0 0 1 339.381 498.649 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S @@ -17958,10 +28807,65 @@ q Q BT /F30 9.9626 Tf 400.89 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 +======= + +endstream +endobj +1519 0 obj +<< +/Length 6852 +>> +stream +0 g 0 G +0 g 0 G +BT +/F16 11.9552 Tf 150.705 706.129 Td [(6.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 [(geins)-375(|)-375(Dense)-375(matrix)-375(insertion)-375(routine)]TJ +0 g 0 G +0 g 0 G +/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 -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.43 Td [(On)-383(En)32(try)]TJ +0 g 0 G +0 g 0 G + 0 -19.431 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)-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.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 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 176.057 414.49 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 +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 0 0 1 rg 0 0 1 RG /F30 9.9626 Tf 43.78 0 Td [(psb)]TJ ET q +<<<<<<< HEAD:docs/psblas-3.6.pdf 1 0 0 1 287.233 486.693 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q @@ -18031,8 +28935,37 @@ endobj /Length 3379 >> stream +======= +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 365.983 366.669 Td [(desc)]TJ +ET +q +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 390.67 366.669 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.43 Td [(dupl)]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 +0 g 0 G +/F27 9.9626 Tf -340.944 -19.43 Td [(lo)-32(cal)]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 0 g 0 G +/F27 9.9626 Tf -224.574 -20.68 Td [(On)-383(Return)]TJ 0 g 0 G +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf +0 g 0 G + 0 -19.43 Td [(x)]TJ +0 g 0 G +<<<<<<< HEAD:docs/psblas-3.6.pdf BT /F16 11.9552 Tf 150.705 706.129 Td [(psb)]TJ ET @@ -18119,19 +29052,83 @@ BT /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 -294.437 Td [(92)]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 433.906 144.435 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +Q +BT +/F30 9.9626 Tf 437.044 144.236 Td [(T)]TJ +ET +q +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 446.04 144.236 Td [(vect)]TJ +ET +q +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 470.727 144.236 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 +0 g 0 G + 141.968 -41.843 Td [(90)]TJ +0 g 0 G +ET + +endstream +endobj +1523 0 obj +<< +/Length 1111 +>> +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 +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 +0 g 0 G + 0 -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 +0 g 0 G + 141.968 -494.147 Td [(91)]TJ +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 0 g 0 G ET endstream endobj +<<<<<<< HEAD:docs/psblas-3.6.pdf 1513 0 obj << /Length 3437 +======= +1533 0 obj +<< +/Length 5226 +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> stream 0 g 0 G 0 g 0 G BT +<<<<<<< HEAD:docs/psblas-3.6.pdf /F16 11.9552 Tf 99.895 706.129 Td [(psb)]TJ ET q @@ -18143,14 +29140,28 @@ BT 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 +======= +/F16 11.9552 Tf 150.705 706.129 Td [(6.14)-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 [(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 -62.451 -18.389 Td [(call)-525(psb_geasb\050x,)-525(desc_a,)-525(info,)-525(mold\051)]TJ +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 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 +<<<<<<< HEAD:docs/psblas-3.6.pdf 0 -19.925 Td [(trans)]TJ 0 g 0 G /F8 9.9626 Tf 30.609 0 Td [(A)-333(c)27(haracter)-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.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(single)-333(c)28(haracte)-1(r)-333(with)-333(v)55(alu)1(e)-334('N')-333(for)]TJ/F11 9.9626 Tf 217.435 0 Td [(A)]TJ/F8 9.9626 Tf 10.793 0 Td [(or)-333('T')-334(for)]TJ/F11 9.9626 Tf 43.503 0 Td [(A)]TJ/F10 6.9738 Tf 7.472 3.616 Td [(T)]TJ/F8 9.9626 Tf 6.277 -3.616 Td [(.)]TJ @@ -18171,8 +29182,42 @@ BT /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 -226.691 Td [(93)]TJ +======= + 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 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 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 +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf +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 +<<<<<<< HEAD:docs/psblas-3.6.pdf endstream endobj @@ -18183,14 +29228,21 @@ endobj stream 0 g 0 G 0 g 0 G +======= +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 +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf BT -/F16 11.9552 Tf 150.705 706.129 Td [(psb)]TJ +/F30 9.9626 Tf 393.329 498.449 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 399.186 498.649 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT +<<<<<<< HEAD:docs/psblas-3.6.pdf /F16 11.9552 Tf 175.796 706.129 Td [(glob)]TJ ET q @@ -18291,32 +29343,119 @@ BT /F8 9.9626 Tf 112.072 706.129 Td [(1.)]TJ 0 g 0 G [-500(If)-352(an)-353(input)-352(index)-352(is)-353(out)-352(of)-352(range,)-358(then)-352(the)-352(corresp)-28(onding)-352(output)-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 +======= +/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 +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 +ET +q +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 +/F30 9.9626 Tf 350.177 486.494 Td [(vect)]TJ +ET +q +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 +/F30 9.9626 Tf 374.864 486.494 Td [(type)]TJ 0 g 0 G - -12.73 -19.926 Td [(2.)]TJ +/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 +0 g 0 G +0 g 0 G + 0 -19.925 Td [(x)]TJ +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf +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 0 g 0 G +<<<<<<< HEAD:docs/psblas-3.6.pdf [-500(The)-476(default)]TJ/F30 9.9626 Tf 69.542 0 Td [(I)]TJ/F8 9.9626 Tf 5.231 0 Td [(gnore)-476(means)-477(th)1(at)-477(the)-476(negativ)28(e)-476(output)-477(is)-476(the)-476(only)-476(action)]TJ -62.043 -11.955 Td [(tak)28(en)-334(on)-333(an)-333(out-of-range)-333(input.)]TJ 0 g 0 G 141.968 -571.855 Td [(95)]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 +/F27 9.9626 Tf -162.895 -31.88 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 +0 g 0 G + 141.968 -214.736 Td [(92)]TJ +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 0 g 0 G ET endstream endobj +<<<<<<< HEAD:docs/psblas-3.6.pdf 1529 0 obj << /Length 5736 +======= +1539 0 obj +<< +/Length 3389 +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> 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 +<<<<<<< HEAD:docs/psblas-3.6.pdf /F16 11.9552 Tf 175.796 706.129 Td [(lo)-31(c)]TJ ET q @@ -18335,15 +29474,22 @@ BT 0 g 0 G 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 +======= +/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 -/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 +/F30 9.9626 Tf -62.451 -18.389 Td [(call)-525(psb_gefree\050x,)-525(desc_a,)-525(info\051)]TJ +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf +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 0 g 0 G 0 g 0 G 0 -19.925 Td [(x)]TJ +<<<<<<< HEAD:docs/psblas-3.6.pdf 0 g 0 G /F8 9.9626 Tf 11.028 0 Td [(An)-333(in)28(tege)-1(r)-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.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,)-383(inout)]TJ/F8 9.9626 Tf 42.646 0 Td [(.)]TJ -76.131 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-444(a)-334(rank)-333(one)-333(in)27(teger)-333(arra)28(y)83(.)]TJ 0 g 0 G @@ -18357,10 +29503,51 @@ BT /F27 9.9626 Tf 176.057 534.315 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.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 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 170.915 0 Td [(psb)]TJ +/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 +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 +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 +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 +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf +0 0 1 rg 0 0 1 RG +/F30 9.9626 Tf 137.346 0 Td [(psb)]TJ ET q +<<<<<<< HEAD:docs/psblas-3.6.pdf 1 0 0 1 362.845 486.693 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q @@ -18396,19 +29583,101 @@ BT /F8 9.9626 Tf 23.758 0 Td [(Error)-333(co)-28(de.)]TJ 1.148 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.612 0 Td [(required)]TJ/F8 9.9626 Tf -29.612 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(out)]TJ/F8 9.9626 Tf 16.549 0 Td [(.)]TJ -50.035 -11.955 Td [(An)-333(in)28(te)-1(ger)-333(v)56(alue;)-334(0)-333(means)-333(no)-334(error)-333(has)-333(b)-28(een)-333(detec)-1(t)1(e)-1(d.)]TJ 0 g 0 G 141.968 -115.11 Td [(96)]TJ +======= +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 +0 g 0 G +/F8 9.9626 Tf 20.922 0 Td [(.)]TJ +0 g 0 G +/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 +ET + +endstream +endobj +1543 0 obj +<< +/Length 3466 +>> +stream +0 g 0 G +0 g 0 G +BT +/F16 11.9552 Tf 150.705 706.129 Td [(6.16)-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 [(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 +0 g 0 G +/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 +/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.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 + 141.967 -212.744 Td [(94)]TJ +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 0 g 0 G ET endstream endobj -1534 0 obj +1548 0 obj << +<<<<<<< HEAD:docs/psblas-3.6.pdf /Length 3271 +======= +/Length 6552 +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> stream 0 g 0 G 0 g 0 G BT +<<<<<<< HEAD:docs/psblas-3.6.pdf /F16 11.9552 Tf 99.895 706.129 Td [(psb)]TJ ET q @@ -18469,8 +29738,90 @@ BT /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 +======= +/F16 11.9552 Tf 99.895 706.129 Td [(6.17)-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 [(glob)]TJ +ET +q +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 191.846 706.129 Td [(to)]TJ +ET +q +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 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 -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.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 -19.639 Td [(On)-383(En)32(try)]TJ +0 g 0 G +0 g 0 G + 0 -19.639 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.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 +/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 +/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 20.921 0 Td [(.)]TJ +0 g 0 G +/F27 9.9626 Tf -260.887 -19.638 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.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 -317.117 -19.639 Td [(o)32(wned)]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 0 g 0 G +/F27 9.9626 Tf -24.907 -21.202 Td [(On)-383(Return)]TJ +0 g 0 G +0 g 0 G + 0 -19.639 Td [(x)]TJ +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf +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 +<<<<<<< HEAD:docs/psblas-3.6.pdf 0 -19.926 Td [(F)96(unction)-384(v)64(alue)]TJ 0 g 0 G /F8 9.9626 Tf 78.387 0 Td [(A)-302(logical)-301(mask)-302(whic)28(h)-302(is)-302(t)1(rue)-302(if)]TJ/F11 9.9626 Tf 134.085 0 Td [(x)]TJ/F8 9.9626 Tf 8.699 0 Td [(is)-302(o)28(wned)-302(b)28(y)-301(the)-302(curren)28(t)-302(pro-)]TJ -196.264 -11.955 Td [(cess)-334(S)1(c)-1(op)-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.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/F16 11.9552 Tf -74.942 -33.873 Td [(Notes)]TJ @@ -18480,18 +29831,36 @@ BT [-500(This)-300(routine)-299(returns)-300(a)]TJ/F30 9.9626 Tf 111.213 0 Td [(.true.)]TJ/F8 9.9626 Tf 34.369 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)28(t)-334(pro)-28(cess,)-333(excluding)-333(the)-334(halo)-333(indices)]TJ 0 g 0 G 141.968 -264.549 Td [(97)]TJ +======= +/F27 9.9626 Tf -24.907 -19.639 Td [(y)]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 +0 g 0 G +/F27 9.9626 Tf -24.907 -19.638 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/F16 11.9552 Tf -24.907 -21.202 Td [(Notes)]TJ +0 g 0 G +/F8 9.9626 Tf 166.875 -29.887 Td [(95)]TJ +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 0 g 0 G ET endstream endobj +<<<<<<< HEAD:docs/psblas-3.6.pdf 1541 0 obj << /Length 4983 +======= +1552 0 obj +<< +/Length 705 +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> stream 0 g 0 G 0 g 0 G +<<<<<<< HEAD:docs/psblas-3.6.pdf BT /F16 11.9552 Tf 150.705 706.129 Td [(psb)]TJ ET @@ -18666,8 +30035,116 @@ endobj /Length 4993 >> stream +======= +0 g 0 G +BT +/F8 9.9626 Tf 162.881 706.129 Td [(1.)]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 +0 g 0 G + [-500(The)-476(default)]TJ/F30 9.9626 Tf 69.543 0 Td [(I)]TJ/F8 9.9626 Tf 5.23 0 Td [(gnore)-476(means)-477(that)-476(the)-476(negativ)28(e)-477(out)1(put)-477(is)-476(the)-476(only)-476(action)]TJ -62.043 -11.955 Td [(tak)28(en)-334(on)-333(an)-333(out-of-range)-333(input.)]TJ +0 g 0 G + 141.968 -571.855 Td [(96)]TJ +0 g 0 G +ET + +endstream +endobj +1559 0 obj +<< +/Length 5730 +>> +stream +0 g 0 G +0 g 0 G +BT +/F16 11.9552 Tf 99.895 706.129 Td [(6.18)-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 [(lo)-31(c)]TJ +ET +q +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 +/F16 11.9552 Tf 184 706.129 Td [(to)]TJ +ET +q +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 +/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 +0 g 0 G +/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 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 +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 312.036 486.693 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 +ET +q +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 +/F30 9.9626 Tf 339.861 486.494 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.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 +/F27 9.9626 Tf -317.117 -21.917 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 [(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 +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 +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf +0 g 0 G +/F27 9.9626 Tf -24.907 -19.926 Td [(info)]TJ 0 g 0 G +<<<<<<< HEAD:docs/psblas-3.6.pdf BT /F16 11.9552 Tf 150.705 706.129 Td [(psb)]TJ ET @@ -18748,19 +30225,31 @@ BT [-500(This)-308(routine)-309(return)1(s)-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)-334(p)1(ro)-28(cess,)-334(including)-333(the)-333(halo)-334(i)1(ndices)-1(.)]TJ 0 g 0 G 139.477 -141.013 Td [(100)]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 -115.11 Td [(97)]TJ +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 0 g 0 G ET endstream endobj +<<<<<<< HEAD:docs/psblas-3.6.pdf 1559 0 obj << /Length 3822 +======= +1565 0 obj +<< +/Length 3294 +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> stream 0 g 0 G 0 g 0 G BT +<<<<<<< HEAD:docs/psblas-3.6.pdf /F16 11.9552 Tf 99.895 706.129 Td [(psb)]TJ ET q @@ -18781,19 +30270,63 @@ BT /F30 9.9626 Tf -48.025 -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 +======= +/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 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 227.039 706.129 Td [(o)31(wned)-375(|)]TJ +0 g 0 G +0 g 0 G +/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 -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 +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 0 g 0 G /F8 9.9626 Tf 33.797 0 Td [(Async)28(hronous.)]TJ 0 g 0 G +<<<<<<< HEAD:docs/psblas-3.6.pdf /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.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 -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.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.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 +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 0 0 1 rg 0 0 1 RG /F30 9.9626 Tf 170.915 0 Td [(psb)]TJ ET q +<<<<<<< HEAD:docs/psblas-3.6.pdf 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 @@ -18811,15 +30344,40 @@ BT 0 g 0 G /F27 9.9626 Tf -260.887 -21.917 Td [(On)-383(Return)]TJ 0 g 0 G +======= +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 +/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 +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 0 g 0 G 0 -19.926 Td [(bndel)]TJ 0 g 0 G +<<<<<<< HEAD:docs/psblas-3.6.pdf /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.603 -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 -19.926 Td [(F)96(unction)-384(v)64(alue)]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 +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 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 +<<<<<<< HEAD:docs/psblas-3.6.pdf /F8 9.9626 Tf 12.177 -19.926 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)-269(c)-1(onn)1(e)-1(ctivi)1(t)27(y)]TJ 12.73 -11.955 Td [(graph)-449(is)-450(self-con)28(tained\051)-450(the)-449(output)-449(v)27(ector)-449(is)-450(set)-449(to)-450(the)-449(\134not)-450(allo)-27(c)-1(ated")]TJ 0 -11.955 Td [(state.)]TJ @@ -18829,11 +30387,17 @@ BT [-500(Otherwise)-288(the)-289(size)-288(of)]TJ/F30 9.9626 Tf 105.44 0 Td [(bndel)]TJ/F8 9.9626 Tf 29.023 0 Td [(will)-288(b)-28(e)-288(exactly)-289(equal)-288(to)-288(the)-288(n)28(um)27(b)-27(er)-289(of)-288(b)-28(ound)1(-)]TJ -121.733 -11.956 Td [(ary)-333(elemen)27(ts.)]TJ 0 g 0 G 139.477 -208.758 Td [(101)]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 + 141.968 -264.549 Td [(98)]TJ +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 0 g 0 G ET endstream endobj +<<<<<<< HEAD:docs/psblas-3.6.pdf 1465 0 obj << /Type /ObjStm @@ -18893,6 +30457,33 @@ stream /MediaBox [0 0 595.276 841.89] /Parent 1464 0 R /Annots [ 1466 0 R 1467 0 R ] +======= +1468 0 obj +<< +/Type /ObjStm +/N 100 +/First 976 +/Length 10549 +>> +stream +1452 0 1457 146 1458 291 1462 436 1463 494 1464 552 1465 610 1466 668 1467 726 1459 784 +1470 903 1472 1021 1473 1080 1474 1139 1475 1198 1476 1257 1477 1315 1478 1374 1469 1433 1482 1526 +1479 1674 1480 1820 1484 1965 344 2023 1481 2080 1487 2186 1489 2304 1490 2363 1491 2422 1492 2481 +1493 2540 1494 2599 1495 2658 1486 2716 1499 2796 1496 2944 1497 3088 1501 3235 348 3293 1498 3350 +1505 3456 1502 3604 1503 3748 1507 3894 352 3953 1508 4011 1504 4070 1512 4176 1509 4324 1510 4469 +1514 4613 356 4671 1511 4728 1518 4847 1515 4995 1516 5141 1520 5285 360 5344 1517 5402 1522 5521 +1524 5639 1525 5697 1526 5755 1521 5813 1532 5906 1528 6063 1529 6209 1530 6353 1534 6496 364 6555 +1531 6613 1538 6732 1535 6880 1536 7023 1540 7169 368 7227 1537 7284 1542 7390 1544 7508 372 7567 +1541 7625 1547 7757 1545 7896 1549 8042 376 8100 1546 8157 1551 8276 1553 8394 1554 8453 1555 8512 +1550 8571 1558 8651 1556 8790 1560 8937 380 8995 1557 9052 1564 9171 1562 9310 1566 9456 384 9515 +% 1452 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) >> +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> % 1466 0 obj << @@ -18907,6 +30498,7 @@ stream /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] +<<<<<<< HEAD:docs/psblas-3.6.pdf /Rect [345.53 507.194 412.588 518.319] /A << /S /GoTo /D (descdata) >> >> @@ -18931,25 +30523,58 @@ stream /MediaBox [0 0 595.276 841.89] /Parent 1464 0 R /Annots [ 1472 0 R 1473 0 R ] +======= +/Rect [294.721 488.124 372.239 499.249] +/A << /S /GoTo /D (spdata) >> +>> +% 1458 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) >> +>> +% 1462 0 obj +<< +/D [1460 0 R /XYZ 98.895 753.953 null] +>> +% 1463 0 obj +<< +/D [1460 0 R /XYZ 99.895 321.172 null] +>> +% 1464 0 obj +<< +/D [1460 0 R /XYZ 99.895 289.823 null] +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> % 1472 0 obj << +<<<<<<< HEAD:docs/psblas-3.6.pdf /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [294.721 560.993 372.239 572.118] /A << /S /GoTo /D (spdata) >> +======= +/D [1460 0 R /XYZ 99.895 256.537 null] +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> % 1473 0 obj << +<<<<<<< HEAD:docs/psblas-3.6.pdf /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [294.721 493.247 361.779 504.372] /A << /S /GoTo /D (descdata) >> +======= +/D [1460 0 R /XYZ 99.895 189.322 null] +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> % 1477 0 obj << +<<<<<<< HEAD:docs/psblas-3.6.pdf /D [1475 0 R /XYZ 98.895 753.953 null] >> % 340 0 obj @@ -18963,6 +30588,13 @@ stream % 1474 0 obj << /Font << /F16 570 0 R /F30 784 0 R /F27 572 0 R /F8 573 0 R >> +======= +/D [1460 0 R /XYZ 99.895 169.929 null] +>> +% 1459 0 obj +<< +/Font << /F27 584 0 R /F8 585 0 R /F30 810 0 R /F16 582 0 R /F11 796 0 R >> +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf /ProcSet [ /PDF /Text ] >> % 1482 0 obj @@ -18971,6 +30603,7 @@ stream /Contents 1483 0 R /Resources 1481 0 R /MediaBox [0 0 595.276 841.89] +<<<<<<< HEAD:docs/psblas-3.6.pdf /Parent 1464 0 R /Annots [ 1479 0 R 1480 0 R ] >> @@ -18983,15 +30616,68 @@ stream /A << /S /GoTo /D (descdata) >> >> % 1480 0 obj +======= +/Parent 1436 0 R +>> +% 1472 0 obj +<< +/D [1470 0 R /XYZ 149.705 753.953 null] +>> +% 1473 0 obj +<< +/D [1470 0 R /XYZ 150.705 716.092 null] +>> +% 1474 0 obj +<< +/D [1470 0 R /XYZ 150.705 652.386 null] +>> +% 1475 0 obj +<< +/D [1470 0 R /XYZ 150.705 607.997 null] +>> +% 1476 0 obj +<< +/D [1470 0 R /XYZ 150.705 576.67 null] +>> +% 1477 0 obj +<< +/D [1470 0 R /XYZ 150.705 544.789 null] +>> +% 1478 0 obj +<< +/D [1470 0 R /XYZ 150.705 500.954 null] +>> +% 1469 0 obj +<< +/Font << /F8 585 0 R /F11 796 0 R /F14 813 0 R >> +/ProcSet [ /PDF /Text ] +>> +% 1482 0 obj +<< +/Type /Page +/Contents 1483 0 R +/Resources 1481 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1485 0 R +/Annots [ 1479 0 R 1480 0 R ] +>> +% 1479 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] +<<<<<<< HEAD:docs/psblas-3.6.pdf /Rect [264.584 290.009 340.638 301.134] /A << /S /GoTo /D (vdata) >> +======= +/Rect [294.721 576.23 361.779 587.355] +/A << /S /GoTo /D (descdata) >> +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> -% 1484 0 obj +% 1480 0 obj << +<<<<<<< HEAD:docs/psblas-3.6.pdf /D [1482 0 R /XYZ 149.705 753.953 null] >> % 344 0 obj @@ -19001,14 +30687,34 @@ stream % 1481 0 obj << /Font << /F16 570 0 R /F30 784 0 R /F27 572 0 R /F8 573 0 R /F11 770 0 R >> +======= +/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) >> +>> +% 1484 0 obj +<< +/D [1482 0 R /XYZ 98.895 753.953 null] +>> +% 344 0 obj +<< +/D [1482 0 R /XYZ 99.895 716.092 null] +>> +% 1481 0 obj +<< +/Font << /F16 582 0 R /F30 810 0 R /F27 584 0 R /F8 585 0 R >> +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf /ProcSet [ /PDF /Text ] >> -% 1488 0 obj +% 1487 0 obj << /Type /Page -/Contents 1489 0 R -/Resources 1487 0 R +/Contents 1488 0 R +/Resources 1486 0 R /MediaBox [0 0 595.276 841.89] +<<<<<<< HEAD:docs/psblas-3.6.pdf /Parent 1464 0 R /Annots [ 1485 0 R 1486 0 R ] >> @@ -19019,9 +30725,17 @@ stream /Border[0 0 0]/H/I/C[1 0 0] /Rect [294.721 363.459 361.779 374.584] /A << /S /GoTo /D (descdata) >> +======= +/Parent 1485 0 R +>> +% 1489 0 obj +<< +/D [1487 0 R /XYZ 149.705 753.953 null] +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> % 1486 0 obj << +<<<<<<< HEAD:docs/psblas-3.6.pdf /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] @@ -19035,15 +30749,44 @@ stream % 348 0 obj << /D [1488 0 R /XYZ 99.895 720.077 null] +======= +/D [1487 0 R /XYZ 150.705 716.092 null] >> -% 1487 0 obj +% 1491 0 obj +<< +/D [1487 0 R /XYZ 150.705 687.975 null] +>> +% 1492 0 obj +<< +/D [1487 0 R /XYZ 150.705 668.326 null] +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf +>> +% 1493 0 obj << +<<<<<<< HEAD:docs/psblas-3.6.pdf /Font << /F16 570 0 R /F30 784 0 R /F27 572 0 R /F8 573 0 R /F11 770 0 R >> /ProcSet [ /PDF /Text ] +======= +/D [1487 0 R /XYZ 150.705 624.491 null] +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> % 1492 0 obj << +/D [1487 0 R /XYZ 150.705 580.655 null] +>> +% 1495 0 obj +<< +/D [1487 0 R /XYZ 150.705 560.73 null] +>> +% 1486 0 obj +<< +/Font << /F8 585 0 R /F30 810 0 R >> +/ProcSet [ /PDF /Text ] +>> +% 1499 0 obj +<< /Type /Page +<<<<<<< HEAD:docs/psblas-3.6.pdf /Contents 1493 0 R /Resources 1491 0 R /MediaBox [0 0 595.276 841.89] @@ -19076,18 +30819,73 @@ stream /Annots [ 1497 0 R 1498 0 R 1499 0 R ] >> % 1497 0 obj +======= +/Contents 1500 0 R +/Resources 1498 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1485 0 R +/Annots [ 1496 0 R 1497 0 R ] +>> +% 1496 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) >> +>> +% 1497 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) >> +>> +% 1501 0 obj +<< +/D [1499 0 R /XYZ 98.895 753.953 null] +>> +% 348 0 obj +<< +/D [1499 0 R /XYZ 99.895 716.092 null] +>> +% 1498 0 obj +<< +/Font << /F16 582 0 R /F30 810 0 R /F27 584 0 R /F8 585 0 R >> +/ProcSet [ /PDF /Text ] +>> +% 1505 0 obj +<< +/Type /Page +/Contents 1506 0 R +/Resources 1504 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1485 0 R +/Annots [ 1502 0 R 1503 0 R ] +>> +% 1502 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] +<<<<<<< HEAD:docs/psblas-3.6.pdf /Rect [261.152 574.94 328.21 586.065] /A << /S /GoTo /D (descdata) >> >> % 1498 0 obj +======= +/Rect [345.53 560.993 423.049 572.118] +/A << /S /GoTo /D (spdata) >> +>> +% 1503 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] +<<<<<<< HEAD:docs/psblas-3.6.pdf /Rect [269.918 483.284 345.972 494.409] /A << /S /GoTo /D (vdata) >> >> @@ -19098,9 +30896,18 @@ stream /Border[0 0 0]/H/I/C[1 0 0] /Rect [187.733 381.665 263.787 392.79] /A << /S /GoTo /D (vdata) >> +======= +/Rect [345.53 493.247 412.588 504.372] +/A << /S /GoTo /D (descdata) >> >> -% 1503 0 obj +% 1507 0 obj +<< +/D [1505 0 R /XYZ 149.705 753.953 null] +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf +>> +% 352 0 obj << +<<<<<<< HEAD:docs/psblas-3.6.pdf /D [1501 0 R /XYZ 98.895 753.953 null] >> % 352 0 obj @@ -19120,12 +30927,34 @@ stream /MediaBox [0 0 595.276 841.89] /Parent 1504 0 R /Annots [ 1505 0 R 1506 0 R ] +======= +/D [1505 0 R /XYZ 150.705 716.092 null] >> -% 1505 0 obj +% 1508 0 obj +<< +/D [1505 0 R /XYZ 150.705 313.144 null] +>> +% 1504 0 obj +<< +/Font << /F16 582 0 R /F30 810 0 R /F27 584 0 R /F8 585 0 R >> +/ProcSet [ /PDF /Text ] +>> +% 1512 0 obj +<< +/Type /Page +/Contents 1513 0 R +/Resources 1511 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1485 0 R +/Annots [ 1509 0 R 1510 0 R ] +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf +>> +% 1509 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] +<<<<<<< HEAD:docs/psblas-3.6.pdf /Rect [238.542 562.985 314.596 574.11] /A << /S /GoTo /D (vdata) >> >> @@ -19135,10 +30964,14 @@ stream /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [311.962 483.284 379.019 494.409] +======= +/Rect [261.152 574.94 328.21 586.065] +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf /A << /S /GoTo /D (descdata) >> >> % 1510 0 obj << +<<<<<<< HEAD:docs/psblas-3.6.pdf /D [1508 0 R /XYZ 149.705 753.953 null] >> % 356 0 obj @@ -19149,9 +30982,25 @@ stream << /Font << /F16 570 0 R /F30 784 0 R /F27 572 0 R /F8 573 0 R >> /ProcSet [ /PDF /Text ] +======= +/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) >> +>> +% 1514 0 obj +<< +/D [1512 0 R /XYZ 98.895 753.953 null] +>> +% 356 0 obj +<< +/D [1512 0 R /XYZ 99.895 716.092 null] +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> % 1512 0 obj << +<<<<<<< HEAD:docs/psblas-3.6.pdf /Type /Page /Contents 1513 0 R /Resources 1511 0 R @@ -19181,10 +31030,34 @@ stream /Annots [ 1515 0 R ] >> % 1515 0 obj +======= +/Font << /F16 582 0 R /F30 810 0 R /F27 584 0 R /F8 585 0 R /F11 796 0 R >> +/ProcSet [ /PDF /Text ] +>> +% 1518 0 obj << -/Type /Annot +/Type /Page +/Contents 1519 0 R +/Resources 1517 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1485 0 R +/Annots [ 1515 0 R 1516 0 R ] +>> +% 1515 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] +/A << /S /GoTo /D (descdata) >> +>> +% 1516 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf +<< +/Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] +<<<<<<< HEAD:docs/psblas-3.6.pdf /Rect [345.53 484.86 412.588 495.985] /A << /S /GoTo /D (descdata) >> >> @@ -19208,13 +31081,47 @@ stream /Resources 1520 0 R /MediaBox [0 0 595.276 841.89] /Parent 1504 0 R +======= +/Rect [416.591 141.026 492.645 152.151] +/A << /S /GoTo /D (vdata) >> >> -% 1523 0 obj +% 1520 0 obj << -/D [1521 0 R /XYZ 98.895 753.953 null] +/D [1518 0 R /XYZ 149.705 753.953 null] +>> +% 360 0 obj +<< +/D [1518 0 R /XYZ 150.705 716.092 null] +>> +% 1517 0 obj +<< +/Font << /F16 582 0 R /F30 810 0 R /F27 584 0 R /F8 585 0 R /F11 796 0 R >> +/ProcSet [ /PDF /Text ] +>> +% 1522 0 obj +<< +/Type /Page +/Contents 1523 0 R +/Resources 1521 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1527 0 R >> % 1524 0 obj << +/D [1522 0 R /XYZ 98.895 753.953 null] +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf +>> +% 1525 0 obj +<< +<<<<<<< HEAD:docs/psblas-3.6.pdf +/D [1521 0 R /XYZ 98.895 753.953 null] +======= +/D [1522 0 R /XYZ 99.895 632.405 null] +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf +>> +% 1526 0 obj +<< +<<<<<<< HEAD:docs/psblas-3.6.pdf /D [1521 0 R /XYZ 99.895 716.092 null] >> % 1525 0 obj @@ -19234,12 +31141,38 @@ stream /MediaBox [0 0 595.276 841.89] /Parent 1504 0 R /Annots [ 1526 0 R ] +======= +/D [1522 0 R /XYZ 99.895 609.989 null] >> -% 1526 0 obj +% 1521 0 obj +<< +/Font << /F27 584 0 R /F8 585 0 R /F16 582 0 R >> +/ProcSet [ /PDF /Text ] +>> +% 1532 0 obj +<< +/Type /Page +/Contents 1533 0 R +/Resources 1531 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1527 0 R +/Annots [ 1528 0 R 1529 0 R 1530 0 R ] +>> +% 1528 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] +/A << /S /GoTo /D (descdata) >> +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf +>> +% 1529 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] +<<<<<<< HEAD:docs/psblas-3.6.pdf /Rect [345.53 483.284 412.588 494.409] /A << /S /GoTo /D (descdata) >> >> @@ -19254,14 +31187,39 @@ stream % 1527 0 obj << /Font << /F16 570 0 R /F30 784 0 R /F27 572 0 R /F8 573 0 R /F11 770 0 R >> +======= +/Rect [320.727 483.284 396.781 494.409] +/A << /S /GoTo /D (vdata) >> +>> +% 1530 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) >> +>> +% 1534 0 obj +<< +/D [1532 0 R /XYZ 149.705 753.953 null] +>> +% 364 0 obj +<< +/D [1532 0 R /XYZ 150.705 716.092 null] +>> +% 1531 0 obj +<< +/Font << /F16 582 0 R /F30 810 0 R /F27 584 0 R /F8 585 0 R /F11 796 0 R >> +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf /ProcSet [ /PDF /Text ] >> -% 1533 0 obj +% 1538 0 obj << /Type /Page -/Contents 1534 0 R -/Resources 1532 0 R +/Contents 1539 0 R +/Resources 1537 0 R /MediaBox [0 0 595.276 841.89] +<<<<<<< HEAD:docs/psblas-3.6.pdf /Parent 1537 0 R /Annots [ 1531 0 R ] >> @@ -19272,15 +31230,32 @@ stream /Border[0 0 0]/H/I/C[1 0 0] /Rect [294.721 495.239 361.779 506.364] /A << /S /GoTo /D (descdata) >> +======= +/Parent 1527 0 R +/Annots [ 1535 0 R 1536 0 R ] +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> % 1535 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) >> >> +<<<<<<< HEAD:docs/psblas-3.6.pdf % 372 0 obj +======= +% 1536 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << -/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) >> >> +<<<<<<< HEAD:docs/psblas-3.6.pdf % 1536 0 obj << /D [1533 0 R /XYZ 99.895 382.883 null] @@ -19289,10 +31264,25 @@ stream << /Font << /F16 570 0 R /F30 784 0 R /F27 572 0 R /F8 573 0 R /F11 770 0 R >> /ProcSet [ /PDF /Text ] +======= +% 1540 0 obj +<< +/D [1538 0 R /XYZ 98.895 753.953 null] +>> +% 368 0 obj +<< +/D [1538 0 R /XYZ 99.895 716.092 null] +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> % 1540 0 obj << +/Font << /F16 582 0 R /F30 810 0 R /F27 584 0 R /F8 585 0 R >> +/ProcSet [ /PDF /Text ] +>> +% 1542 0 obj +<< /Type /Page +<<<<<<< HEAD:docs/psblas-3.6.pdf /Contents 1541 0 R /Resources 1539 0 R /MediaBox [0 0 595.276 841.89] @@ -19310,9 +31300,24 @@ stream % 1542 0 obj << /D [1540 0 R /XYZ 149.705 753.953 null] +======= +/Contents 1543 0 R +/Resources 1541 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1527 0 R +>> +% 1544 0 obj +<< +/D [1542 0 R /XYZ 149.705 753.953 null] +>> +% 372 0 obj +<< +/D [1542 0 R /XYZ 150.705 716.092 null] +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> % 376 0 obj << +<<<<<<< HEAD:docs/psblas-3.6.pdf /D [1540 0 R /XYZ 150.705 720.077 null] >> % 1543 0 obj @@ -19340,9 +31345,39 @@ stream /Border[0 0 0]/H/I/C[1 0 0] /Rect [294.721 495.239 361.779 506.364] /A << /S /GoTo /D (descdata) >> +======= +/Font << /F16 582 0 R /F30 810 0 R /F27 584 0 R /F8 585 0 R /F11 796 0 R /F10 812 0 R >> +/ProcSet [ /PDF /Text ] +>> +% 1547 0 obj +<< +/Type /Page +/Contents 1548 0 R +/Resources 1546 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1527 0 R +/Annots [ 1545 0 R ] +>> +% 1545 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] +/A << /S /GoTo /D (descdata) >> +>> +% 1549 0 obj +<< +/D [1547 0 R /XYZ 98.895 753.953 null] +>> +% 376 0 obj +<< +/D [1547 0 R /XYZ 99.895 716.092 null] +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> % 1548 0 obj << +<<<<<<< HEAD:docs/psblas-3.6.pdf /D [1546 0 R /XYZ 98.895 753.953 null] >> % 380 0 obj @@ -19357,10 +31392,40 @@ stream << /Font << /F16 570 0 R /F30 784 0 R /F27 572 0 R /F8 573 0 R /F11 770 0 R >> /ProcSet [ /PDF /Text ] +======= +/Font << /F16 582 0 R /F30 810 0 R /F27 584 0 R /F8 585 0 R /F11 796 0 R >> +/ProcSet [ /PDF /Text ] +>> +% 1551 0 obj +<< +/Type /Page +/Contents 1552 0 R +/Resources 1550 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1527 0 R +>> +% 1553 0 obj +<< +/D [1551 0 R /XYZ 149.705 753.953 null] +>> +% 1554 0 obj +<< +/D [1551 0 R /XYZ 150.705 716.092 null] +>> +% 1555 0 obj +<< +/D [1551 0 R /XYZ 150.705 688.251 null] +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> % 1552 0 obj << +/Font << /F8 585 0 R /F30 810 0 R >> +/ProcSet [ /PDF /Text ] +>> +% 1558 0 obj +<< /Type /Page +<<<<<<< HEAD:docs/psblas-3.6.pdf /Contents 1553 0 R /Resources 1551 0 R /MediaBox [0 0 595.276 841.89] @@ -19368,10 +31433,20 @@ stream /Annots [ 1550 0 R ] >> % 1550 0 obj +======= +/Contents 1559 0 R +/Resources 1557 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1561 0 R +/Annots [ 1556 0 R ] +>> +% 1556 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] +<<<<<<< HEAD:docs/psblas-3.6.pdf /Rect [345.53 495.239 412.588 506.364] /A << /S /GoTo /D (descdata) >> >> @@ -19382,8 +31457,25 @@ stream % 384 0 obj << /D [1552 0 R /XYZ 150.705 720.077 null] +======= +/Rect [294.721 483.284 361.779 494.409] +/A << /S /GoTo /D (descdata) >> >> -% 1555 0 obj +% 1560 0 obj +<< +/D [1558 0 R /XYZ 98.895 753.953 null] +>> +% 380 0 obj +<< +/D [1558 0 R /XYZ 99.895 716.092 null] +>> +% 1557 0 obj +<< +/Font << /F16 582 0 R /F30 810 0 R /F27 584 0 R /F8 585 0 R /F11 796 0 R >> +/ProcSet [ /PDF /Text ] +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf +>> +% 1564 0 obj << /D [1552 0 R /XYZ 150.705 259.346 null] >> @@ -19395,6 +31487,7 @@ stream % 1558 0 obj << /Type /Page +<<<<<<< HEAD:docs/psblas-3.6.pdf /Contents 1559 0 R /Resources 1557 0 R /MediaBox [0 0 595.276 841.89] @@ -19402,10 +31495,20 @@ stream /Annots [ 1556 0 R ] >> % 1556 0 obj +======= +/Contents 1565 0 R +/Resources 1563 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1561 0 R +/Annots [ 1562 0 R ] +>> +% 1562 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] +<<<<<<< HEAD:docs/psblas-3.6.pdf /Rect [294.721 574.94 361.779 586.065] /A << /S /GoTo /D (descdata) >> >> @@ -19424,18 +31527,129 @@ stream % 1562 0 obj << /D [1558 0 R /XYZ 99.895 327.092 null] +======= +/Rect [345.53 495.239 412.588 506.364] +/A << /S /GoTo /D (descdata) >> +>> +% 1566 0 obj +<< +/D [1564 0 R /XYZ 149.705 753.953 null] +>> +% 384 0 obj +<< +/D [1564 0 R /XYZ 150.705 716.092 null] +>> + +endstream +endobj +1572 0 obj +<< +/Length 4991 +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> +stream +0 g 0 G +0 g 0 G +BT +/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 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 204.333 706.129 Td [(index)-375(|)]TJ +0 g 0 G +0 g 0 G +/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 -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 [(x)]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 +0 g 0 G +/F27 9.9626 Tf -24.907 -31.88 Td [(desc)]TJ +ET +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 +/F30 9.9626 Tf 315.174 498.449 Td [(desc)]TJ +ET +q +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 +/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 +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 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(This)-475(routine)-474(returns)-475(a)]TJ/F30 9.9626 Tf 118.186 0 Td [(.true.)]TJ/F8 9.9626 Tf 36.111 0 Td [(v)56(alue)-475(for)-475(those)-475(indices)-474(that)-475(are)-475(strictly)]TJ -141.567 -11.955 Td [(o)28(wned)-334(b)28(y)-333(the)-333(curren)27(t)-333(pro)-28(cess,)-333(excluding)-333(the)-334(halo)-333(indices)]TJ +0 g 0 G + 141.968 -141.013 Td [(99)]TJ +0 g 0 G +ET endstream endobj +<<<<<<< HEAD:docs/psblas-3.6.pdf 1567 0 obj << /Length 3655 +======= +1578 0 obj +<< +/Length 3263 +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> stream 0 g 0 G 0 g 0 G BT +<<<<<<< HEAD:docs/psblas-3.6.pdf /F16 11.9552 Tf 150.705 706.129 Td [(psb)]TJ ET q @@ -19463,11 +31677,85 @@ BT 0 g 0 G 0 g 0 G 0 -19.925 Td [(desc)]TJ +======= +/F16 11.9552 Tf 150.705 706.129 Td [(6.21)-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 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 227.039 706.129 Td [(lo)-31(cal)-375(|)]TJ +0 g 0 G +0 g 0 G +/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 -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 [(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.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.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 +/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.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 + 139.477 -264.549 Td [(100)]TJ +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 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 ET +<<<<<<< HEAD:docs/psblas-3.6.pdf 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 @@ -19504,8 +31792,52 @@ BT [-500(Otherwise)-284(the)-284(size)-283(of)]TJ/F30 9.9626 Tf 105.262 0 Td [(ovrel)]TJ/F8 9.9626 Tf 28.978 0 Td [(will)-284(b)-27(e)-284(exactly)-284(equal)-284(to)-284(the)-283(n)27(u)1(m)27(b)-27(e)-1(r)-283(of)-284(o)28(v)28(erlap)]TJ -121.51 -11.955 Td [(elemen)28(ts.)]TJ 0 g 0 G 139.477 -220.714 Td [(102)]TJ +======= + +endstream +endobj +1584 0 obj +<< +/Length 4975 +>> +stream +0 g 0 G +0 g 0 G +BT +/F16 11.9552 Tf 99.895 706.129 Td [(6.22)-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 [(lo)-31(cal)]TJ +ET +q +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 194.274 706.129 Td [(index)-375(|)]TJ 0 g 0 G +0 g 0 G +/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 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 [(x)]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 +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf +0 g 0 G +/F27 9.9626 Tf -24.907 -31.88 Td [(desc)]TJ ET +<<<<<<< HEAD:docs/psblas-3.6.pdf endstream endobj @@ -19516,14 +31848,25 @@ endobj stream 0 g 0 G 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 +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf BT -/F16 11.9552 Tf 99.895 706.129 Td [(psb)]TJ +/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 120.951 706.328 cm -[]0 d 0 J 0.398 w 0 0 m 4.035 0 l S +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 +<<<<<<< HEAD:docs/psblas-3.6.pdf /F16 11.9552 Tf 124.986 706.129 Td [(sp)]TJ ET q @@ -19537,18 +31880,62 @@ BT /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 +======= +/F30 9.9626 Tf 315.174 498.449 Td [(desc)]TJ +ET +q +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 +/F30 9.9626 Tf 339.861 498.449 Td [(type)]TJ 0 g 0 G -/F8 9.9626 Tf 33.797 0 Td [(Async)28(hronous.)]TJ +/F8 9.9626 Tf 20.921 0 Td [(.)]TJ +0 g 0 G +/F27 9.9626 Tf -260.887 -19.925 Td [(iact)]TJ +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf +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 +<<<<<<< HEAD:docs/psblas-3.6.pdf /F27 9.9626 Tf -33.797 -20.479 Td [(On)-383(En)32(try)]TJ 0 g 0 G 0 g 0 G 0 -20.479 Td [(ro)32(w)]TJ 0 g 0 G /F8 9.9626 Tf 23.385 0 Td [(The)-333(\050\014rst\051)-334(ro)28(w)-333(to)-334(b)-27(e)-334(extracted.)]TJ 1.522 -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.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 [(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.)]TJ +======= +/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 +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 +/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(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 +1590 0 obj +<< +/Length 3846 +>> +stream +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 0 g 0 G /F27 9.9626 Tf -140.114 -20.479 Td [(a)]TJ 0 g 0 G +<<<<<<< HEAD:docs/psblas-3.6.pdf /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.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 [(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 @@ -19570,6 +31957,29 @@ BT /F8 9.9626 Tf 20.921 0 Td [(.)]TJ 0 g 0 G /F27 9.9626 Tf -271.348 -20.479 Td [(app)-32(end)]TJ +======= +BT +/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 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 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 -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 -21.918 Td [(T)32(yp)-32(e:)]TJ +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 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.673 -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.183 0 Td [(optional)]TJ/F8 9.9626 Tf -25.183 -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(v)55(alue)-333(default:)-444(false)-334(\050o)28(v)28(erwrite\051.)]TJ 0 g 0 G @@ -19577,6 +31987,7 @@ BT 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.079 -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.183 0 Td [(optional)]TJ/F8 9.9626 Tf -25.183 -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.907 0 Td [(>)]TJ/F8 9.9626 Tf 11.589 0 Td [(0.)-638(When)-398(app)-28(end)-398(i)1(s)-398(true,)-414(sp)-28(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 +<<<<<<< HEAD:docs/psblas-3.6.pdf /F27 9.9626 Tf -24.907 -20.479 Td [(lrw)]TJ 0 g 0 G /F8 9.9626 Tf 21.157 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.183 0 Td [(optional)]TJ/F8 9.9626 Tf -25.183 -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 @@ -19593,32 +32004,107 @@ BT /F8 9.9626 Tf 13.734 0 Td [(the)-333(ro)28(w)-334(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.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.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 -91.988 -29.887 Td [(103)]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 +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 [(desc)]TJ +ET +q +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 390.67 564.203 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.918 Td [(On)-383(Return)]TJ +0 g 0 G +0 g 0 G + 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 +/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 + -12.73 -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.955 Td [(ary)-333(elemen)27(ts.)]TJ +0 g 0 G + 139.477 -194.811 Td [(102)]TJ +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 0 g 0 G ET endstream endobj +<<<<<<< HEAD:docs/psblas-3.6.pdf 1579 0 obj << /Length 3712 +======= +1597 0 obj +<< +/Length 3666 +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> stream 0 g 0 G 0 g 0 G 0 g 0 G BT +<<<<<<< HEAD:docs/psblas-3.6.pdf /F27 9.9626 Tf 150.705 706.129 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(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.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 [(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.611 0 Td [(ALLOCATABLE)]TJ/F8 9.9626 Tf 60.855 0 Td [(attribute.)]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 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 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 +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 0 g 0 G /F27 9.9626 Tf -256.372 -19.925 Td [(v)64(al)]TJ 0 g 0 G +<<<<<<< HEAD:docs/psblas-3.6.pdf /F8 9.9626 Tf 19.143 0 Td [(the)-333(elemen)27(ts)-333(to)-333(b)-28(e)-333(inse)-1(r)1(te)-1(d)1(.)]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.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.516 0 Td [(ALLOCATABLE)]TJ/F8 9.9626 Tf 60.854 0 Td [(attribute.)]TJ 0 g 0 G /F27 9.9626 Tf -237.276 -19.925 Td [(info)]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 -21.918 Td [(T)32(yp)-32(e:)]TJ +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 0 g 0 G /F8 9.9626 Tf 23.758 0 Td [(Error)-333(co)-28(de.)]TJ 1.148 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.612 0 Td [(required)]TJ/F8 9.9626 Tf -29.612 -11.956 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(out)]TJ/F8 9.9626 Tf 16.549 0 Td [(.)]TJ -50.035 -11.955 Td [(An)-333(in)28(te)-1(ger)-333(v)56(alue;)-334(0)-333(means)-333(no)-334(error)-333(has)-333(b)-28(een)-333(detec)-1(t)1(e)-1(d.)]TJ/F16 11.9552 Tf -24.906 -21.918 Td [(Notes)]TJ 0 g 0 G +<<<<<<< HEAD:docs/psblas-3.6.pdf /F8 9.9626 Tf 12.176 -19.925 Td [(1.)]TJ 0 g 0 G [-500(The)-368(output)]TJ/F11 9.9626 Tf 66.553 0 Td [(nz)]TJ/F8 9.9626 Tf 14.716 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)27(t)]TJ -68.539 -11.955 Td [(call;)-314(th)28(us,)-309(if)]TJ/F30 9.9626 Tf 54.124 0 Td [(append=.true.)]TJ/F8 9.9626 Tf 67.994 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)-334(ar)1(gume)-1(n)28(ts;)]TJ @@ -19632,8 +32118,18 @@ BT [-500(The)-253(ro)28(w)-252(and)-253(column)-253(indices)-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(the)-333(output.)]TJ 0 g 0 G 139.477 -290.909 Td [(104)]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 [(desc)]TJ +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 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 +0 0 1 rg 0 0 1 RG +/F30 9.9626 Tf 170.915 0 Td [(psb)]TJ ET +<<<<<<< HEAD:docs/psblas-3.6.pdf endstream endobj @@ -19653,8 +32149,25 @@ q Q BT /F16 11.9552 Tf 124.986 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)-28(ccupation)-333(of)-333(a)-333(PSBLAS)-334(ob)-55(ject.)]TJ +======= +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 +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 0 g 0 G +/F8 9.9626 Tf 20.921 0 Td [(.)]TJ 0 g 0 G +<<<<<<< HEAD:docs/psblas-3.6.pdf /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 /F27 9.9626 Tf 0 -21.917 Td [(T)32(yp)-32(e:)]TJ @@ -19662,8 +32175,18 @@ BT /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 -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 +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf +0 g 0 G +/F27 9.9626 Tf -24.907 -31.881 Td [(info)]TJ 0 g 0 G +<<<<<<< HEAD:docs/psblas-3.6.pdf 0 -19.925 Td [(a)]TJ 0 g 0 G /F8 9.9626 Tf 10.551 0 Td [(A)-333(sparse)-334(matrix)]TJ/F11 9.9626 Tf 73.226 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.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(structured)-333(data)-333(of)-334(t)28(yp)-28(e)]TJ @@ -19685,15 +32208,40 @@ BT /F30 9.9626 Tf 350.322 532.322 Td [(type)]TJ 0 g 0 G /F8 9.9626 Tf 20.921 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.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 + 139.477 -220.714 Td [(103)]TJ +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 0 g 0 G /F27 9.9626 Tf -271.348 -19.925 Td [(desc)]TJ ET +<<<<<<< HEAD:docs/psblas-3.6.pdf q 1 0 0 1 121.81 512.596 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT /F27 9.9626 Tf 125.247 512.397 Td [(a)]TJ +======= + +endstream +endobj +1605 0 obj +<< +/Length 5828 +>> +stream +0 g 0 G +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 0 g 0 G /F8 9.9626 Tf 10.551 0 Td [(Comm)28(unication)-334(d)1(e)-1(scriptor)1(.)]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(structured)-333(data)-333(of)-334(t)28(yp)-28(e)]TJ 0 0 1 rg 0 0 1 RG @@ -19704,6 +32252,7 @@ q []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT +<<<<<<< HEAD:docs/psblas-3.6.pdf /F30 9.9626 Tf 315.174 464.576 Td [(desc)]TJ ET q @@ -19712,9 +32261,27 @@ q Q BT /F30 9.9626 Tf 339.861 464.576 Td [(type)]TJ +======= +/F16 11.9552 Tf 150.705 706.129 Td [(6.25)-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 [(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 +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 0 g 0 G /F8 9.9626 Tf 20.921 0 Td [(.)]TJ 0 g 0 G +<<<<<<< HEAD:docs/psblas-3.6.pdf /F27 9.9626 Tf -260.887 -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 [(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 @@ -19734,9 +32301,15 @@ q Q BT /F30 9.9626 Tf 366.483 408.786 Td [(type)]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 -73.225 -20.298 Td [(T)32(yp)-32(e:)]TJ +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 0 g 0 G /F8 9.9626 Tf 20.922 0 Td [(.)]TJ 0 g 0 G +<<<<<<< HEAD:docs/psblas-3.6.pdf /F27 9.9626 Tf -287.51 -19.926 Td [(On)-383(Return)]TJ 0 g 0 G 0 g 0 G @@ -19745,8 +32318,22 @@ BT /F8 9.9626 Tf 78.387 0 Td [(The)-332(memory)-331(o)-28(ccupation)-332(of)-331(the)-332(ob)-55(ject)-332(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.834 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 -63.206 -242.632 Td [(105)]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.277 Td [(ro)32(w)]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.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 -140.114 -19.277 Td [(a)]TJ +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf +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.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 +<<<<<<< HEAD:docs/psblas-3.6.pdf endstream endobj @@ -19780,8 +32367,27 @@ q Q BT /F16 11.9552 Tf 175.796 661.333 Td [(hsort)-375(|)-375(Sorting)-375(b)31(y)-375(the)-375(Heapsort)-375(algorithm)]TJ +======= +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 +/F8 9.9626 Tf 20.921 0 Td [(.)]TJ +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 0 g 0 G +/F27 9.9626 Tf -271.347 -19.277 Td [(app)-32(end)]TJ 0 g 0 G +<<<<<<< HEAD:docs/psblas-3.6.pdf /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(r)1(outines)-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(th)1(ree)-321(calls;)-324(the)-320(only)-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)-333(Us)-1(age)-333(Notes)-333(b)-28(elo)28(w\051.)]TJ 0 g 0 G /F27 9.9626 Tf 0 -21.865 Td [(T)32(yp)-32(e:)]TJ @@ -19789,9 +32395,50 @@ BT /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 +======= +/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 -22.511 Td [(x)]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 +/F27 9.9626 Tf -24.906 -19.277 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.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 +/F27 9.9626 Tf -205.544 -20.297 Td [(On)-383(Return)]TJ +0 g 0 G +0 g 0 G + 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 + -91.988 -29.887 Td [(104)]TJ +0 g 0 G +ET + +endstream +endobj +1609 0 obj +<< +/Length 3702 +>> +stream +0 g 0 G +0 g 0 G +0 g 0 G +BT +/F27 9.9626 Tf 99.895 706.129 Td [(ja)]TJ +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf +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 +<<<<<<< HEAD:docs/psblas-3.6.pdf + 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.898 0 Td [(.)]TJ -67.081 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-444(an)-334(in)28(teger,)-333(real)-334(or)-333(complex)-333(arra)27(y)-333(of)-333(rank)-333(1.)]TJ 0 g 0 G @@ -19827,19 +32474,49 @@ BT /F8 9.9626 Tf 14.211 0 Td [(A)-333(v)28(e)-1(ctor)-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)-332(1,)-333(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)-27(onding)-334(en)28(tries)-333(in)]TJ/F11 9.9626 Tf 136.958 0 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(.)]TJ 0 g 0 G -3.175 -43.727 Td [(106)]TJ +======= +/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 +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 +0 g 0 G + -113.103 -19.925 Td [(3.)]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 +0 g 0 G + 139.477 -290.909 Td [(105)]TJ +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 0 g 0 G ET endstream endobj +<<<<<<< HEAD:docs/psblas-3.6.pdf 1597 0 obj << /Length 6995 +======= +1619 0 obj +<< +/Length 4138 +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> stream 0 g 0 G 0 g 0 G BT +<<<<<<< HEAD:docs/psblas-3.6.pdf /F16 11.9552 Tf 99.895 706.129 Td [(Notes)]TJ 0 g 0 G /F8 9.9626 Tf 12.177 -19.925 Td [(1.)]TJ @@ -19935,35 +32612,222 @@ BT [-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(d)1(e)-1(sired)-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)-301(is)-302(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)-248(the)-249(library)83(.)]TJ 0 g 0 G 117.559 -205.23 Td [(107)]TJ +======= +/F16 11.9552 Tf 150.705 706.129 Td [(6.26)-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 [(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 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 +/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 [(a)]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 +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 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 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 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 +/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 +/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 20.921 0 Td [(.)]TJ +0 g 0 G +/F27 9.9626 Tf -287.509 -19.926 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 [(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 + -63.207 -242.632 Td [(106)]TJ +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 0 g 0 G ET endstream endobj +<<<<<<< HEAD:docs/psblas-3.6.pdf 1610 0 obj << /Length 187 +======= +1623 0 obj +<< +/Length 5773 +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> stream 0 g 0 G 0 g 0 G BT +<<<<<<< HEAD:docs/psblas-3.6.pdf /F16 14.3462 Tf 150.705 706.129 Td [(7)-1125(P)31(arallel)-375(en)32(v)-1(ironmen)32(t)-375(routines)]TJ 0 g 0 G /F8 9.9626 Tf 164.383 -615.691 Td [(108)]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 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 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 -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 -21.865 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 +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 -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 +/F27 9.9626 Tf -292.501 -22.511 Td [(dir)]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 +0 g 0 G +/F27 9.9626 Tf 0 -22.511 Td [(In)32(teger)-383(and)-384(real)-383(data:)]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 +0 g 0 G +/F27 9.9626 Tf -202.711 -17.233 Td [(Complex)-383(data:)]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 +0 g 0 G +/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 +/F27 9.9626 Tf -147.308 -24.503 Td [(On)-383(Return)]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(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 +/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 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 + -3.176 -43.727 Td [(107)]TJ +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 0 g 0 G ET endstream endobj +<<<<<<< HEAD:docs/psblas-3.6.pdf 1614 0 obj << /Length 5567 +======= +1627 0 obj +<< +/Length 6992 +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> stream 0 g 0 G 0 g 0 G BT +<<<<<<< HEAD:docs/psblas-3.6.pdf /F16 11.9552 Tf 99.895 706.129 Td [(psb)]TJ ET q @@ -19975,14 +32839,19 @@ BT 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(initializes)-294(th)1(e)-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 +======= +/F16 11.9552 Tf 150.705 706.129 Td [(Notes)]TJ +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 0 g 0 G -/F27 9.9626 Tf 0 -19.926 Td [(T)32(yp)-32(e:)]TJ +/F8 9.9626 Tf 12.176 -19.925 Td [(1.)]TJ 0 g 0 G -/F8 9.9626 Tf 33.797 0 Td [(Sync)28(hronous.)]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 -33.797 -19.925 Td [(On)-383(En)32(try)]TJ + -12.73 -19.925 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 0 g 0 G +<<<<<<< HEAD:docs/psblas-3.6.pdf 0 -19.925 Td [(np)]TJ 0 g 0 G /F8 9.9626 Tf 17.712 0 Td [(Num)28(b)-28(er)-333(of)-334(pr)1(o)-28(cesses)-334(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.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(in)28(teger)-333(v)55(alue.)-778(Default)1(:)-445(use)-333(all)-334(a)28(v)56(ailable)-334(p)1(ro)-28(cesses)-1(.)]TJ @@ -20010,8 +32879,81 @@ BT /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)-498(n)1(e)-1(w)-497(con)28(text;)-579(the)-497(argumen)28(t)-497(is)]TJ 5.859 -11.956 Td [(ignored)-428(when)]TJ/F30 9.9626 Tf 63.346 0 Td [(np)]TJ/F8 9.9626 Tf 14.722 0 Td [(is)-428(not)-428(sp)-27(eci\014ed.)-728(This)-428(allo)28(ws)-428(the)-428(pro)-27(ce)-1(sses)-427(in)-428(the)-428(new)]TJ -78.068 -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(fr)1(om)-334(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.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(arra)27(y)84(.)-778(Default:)-444(use)-334(the)-333(indices)-333(\0500)]TJ/F11 9.9626 Tf 254.158 0 Td [(:)-167(:)-166(:)-167(np)]TJ/F14 9.9626 Tf 26.49 0 Td [(\000)]TJ/F8 9.9626 Tf 9.963 0 Td [(1\051.)]TJ 0 g 0 G /F27 9.9626 Tf -315.518 -21.918 Td [(On)-383(Return)]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 + -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 +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 + -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 +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 + -21.857 -19.926 Td [(6.)]TJ +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 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 0 g 0 G +<<<<<<< HEAD:docs/psblas-3.6.pdf 0 -19.925 Td [(icon)32(txt)]TJ 0 g 0 G /F8 9.9626 Tf 39.989 0 Td [(the)-458(comm)28(unication)-457(con)27(text)-457(iden)28(tifying)-458(the)-457(virtual)-458(paral)1(le)-1(l)-457(mac)28(hine.)]TJ -15.082 -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.952 0 Td [(basectxt)]TJ/F8 9.9626 Tf 41.843 0 Td [(,)-336(so)-335(that)-335(library)-335(comm)28(u-)]TJ -211.795 -11.955 Td [(nications)-305(are)-305(completely)-305(s)-1(eparated)-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.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.956 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.917 Td [(Notes)]TJ @@ -20025,19 +32967,41 @@ BT [-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.869 0 Td [(np)]TJ/F8 9.9626 Tf 13.603 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(un)1(derlying)-334(base)-333(parallel)-333(en)27(vir)1(onme)-1(n)28(t.)]TJ 0 g 0 G 139.477 -97.177 Td [(109)]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 + -18.265 -15.94 Td [(\050b\051)]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 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 +0 g 0 G + 117.559 -205.23 Td [(108)]TJ +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 0 g 0 G ET endstream endobj +<<<<<<< HEAD:docs/psblas-3.6.pdf 1621 0 obj << /Length 4639 +======= +1640 0 obj +<< +/Length 182 +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> stream 0 g 0 G 0 g 0 G BT +<<<<<<< HEAD:docs/psblas-3.6.pdf /F16 11.9552 Tf 150.705 706.129 Td [(psb)]TJ ET q @@ -20081,30 +33045,48 @@ BT [-500(If)-432(the)-433(user)-432(has)-433(requested)-432(on)]TJ/F30 9.9626 Tf 143.131 0 Td [(psb_init)]TJ/F8 9.9626 Tf 46.15 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.487 0 Td [(iam)]TJ/F8 9.9626 Tf 20.638 0 Td [(=)]TJ/F14 9.9626 Tf 10.942 0 Td [(\000)]TJ/F8 9.9626 Tf 7.749 0 Td [(1;)-372(the)-359(only)-359(call)-359(i)1(n)27(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.842 0 Td [(.)]TJ 0 g 0 G -79.452 -174.885 Td [(110)]TJ +======= +/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 +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 0 g 0 G ET endstream endobj +<<<<<<< HEAD:docs/psblas-3.6.pdf 1627 0 obj << /Length 4356 +======= +1645 0 obj +<< +/Length 5584 +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> 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 [(7.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 +<<<<<<< HEAD:docs/psblas-3.6.pdf /F16 11.9552 Tf 124.986 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(PSBLAS)-333(parallel)-333(virtual)-333(mac)27(hine.)]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 -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 +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 0 g 0 G /F27 9.9626 Tf -14.944 -19.926 Td [(T)32(yp)-32(e:)]TJ 0 g 0 G @@ -20113,6 +33095,7 @@ BT /F27 9.9626 Tf -33.797 -19.925 Td [(On)-383(En)32(try)]TJ 0 g 0 G 0 g 0 G +<<<<<<< HEAD:docs/psblas-3.6.pdf 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 @@ -20134,8 +33117,17 @@ BT [-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(e)-1(xi)1(t)-455(m)27(ul)1(tiple)-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)-463(th)1(e)-462(c)-1(on)28(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.328 0 Td [(close=.true.)]TJ/F8 9.9626 Tf -262.322 -11.955 Td [(to)-333(sh)27(utd)1(o)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 139.477 -212.744 Td [(111)]TJ +======= + 0 -19.925 Td [(np)]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 +0 g 0 G +/F27 9.9626 Tf -24.907 -19.925 Td [(basectxt)]TJ +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 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 ET +<<<<<<< HEAD:docs/psblas-3.6.pdf endstream endobj @@ -20146,14 +33138,21 @@ endobj stream 0 g 0 G 0 g 0 G +======= +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 +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf BT -/F16 11.9552 Tf 150.705 706.129 Td [(psb)]TJ +/F8 9.9626 Tf 392.98 466.569 Td [(COMM)]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 426.787 466.768 cm +[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT +<<<<<<< HEAD:docs/psblas-3.6.pdf /F16 11.9552 Tf 175.796 706.129 Td [(get)]TJ ET q @@ -20171,10 +33170,20 @@ BT /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 +======= +/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 +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 +/F27 9.9626 Tf -315.517 -21.918 Td [(On)-383(Return)]TJ +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 0 g 0 G 0 g 0 G 0 -19.925 Td [(icon)32(txt)]TJ 0 g 0 G +<<<<<<< HEAD:docs/psblas-3.6.pdf /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 -21.918 Td [(On)-383(Return)]TJ @@ -20185,26 +33194,46 @@ BT /F8 9.9626 Tf 38.079 0 Td [(The)-377(MPI)-378(comm)28(unicator)-378(asso)-27(ciated)-378(with)-377(the)-378(PSBLAS)-377(virtual)-377(parallel)]TJ -13.172 -11.955 Td [(mac)28(hine.)]TJ 0 -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 [(out)]TJ/F8 9.9626 Tf 16.549 0 Td [(.)]TJ 0 g 0 G 89.442 -366.168 Td [(112)]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 +/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 +0 g 0 G + 139.477 -97.177 Td [(110)]TJ +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 0 g 0 G ET endstream endobj +<<<<<<< HEAD:docs/psblas-3.6.pdf 1638 0 obj << /Length 3020 +======= +1651 0 obj +<< +/Length 4667 +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> 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 +<<<<<<< HEAD:docs/psblas-3.6.pdf /F16 11.9552 Tf 124.986 706.129 Td [(get)]TJ ET q @@ -20218,16 +33247,25 @@ BT /F30 9.9626 Tf -48.025 -18.389 Td [(call)-525(psb_get_rank\050rank,)-525(icontxt,)-525(id\051)]TJ/F8 9.9626 Tf 14.944 -21.918 Td [(This)-333(subroutine)-334(return)1(s)-334(the)-333(MPI)-333(rank)-334(of)-333(the)-333(PSBLAS)-334(pro)-27(cess)]TJ/F11 9.9626 Tf 274.665 0 Td [(id)]TJ 0 g 0 G /F27 9.9626 Tf -289.609 -19.926 Td [(T)32(yp)-32(e:)]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 -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 0 -19.925 Td [(T)32(yp)-32(e:)]TJ +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 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 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 +<<<<<<< HEAD:docs/psblas-3.6.pdf /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.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf 23.073 0 Td [(.)]TJ -55.452 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf 41.898 0 Td [(.)]TJ -71.509 -11.956 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(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.206 0 Td [(\000)]TJ/F8 9.9626 Tf 9.963 0 Td [(1)]TJ @@ -20240,26 +33278,55 @@ BT /F8 9.9626 Tf 27.681 0 Td [(The)-333(MPI)-334(rank)-333(asso)-28(ciated)-333(with)-333(the)-334(PSBLAS)-333(pro)-28(cess)]TJ/F11 9.9626 Tf 230.248 0 Td [(id)]TJ/F8 9.9626 Tf 8.618 0 Td [(.)]TJ -241.64 -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 0 g 0 G 89.442 -322.333 Td [(113)]TJ +======= +/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 g 0 G + -79.452 -174.885 Td [(111)]TJ +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 0 g 0 G ET endstream endobj +<<<<<<< HEAD:docs/psblas-3.6.pdf 1642 0 obj << /Length 1202 +======= +1657 0 obj +<< +/Length 4365 +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> 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 +<<<<<<< HEAD:docs/psblas-3.6.pdf /F16 11.9552 Tf 175.796 706.129 Td [(wtime)-375(|)-375(W)94(all)-375(clo)-31(c)31(k)-375(timing)]TJ 0 g 0 G 0 g 0 G @@ -20287,8 +33354,35 @@ endobj /Length 1484 >> stream +======= +/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 -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.)]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 [(close)]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 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 +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf +0 g 0 G + -97.246 -19.925 Td [(2.)]TJ +0 g 0 G +<<<<<<< HEAD:docs/psblas-3.6.pdf BT /F16 11.9552 Tf 99.895 706.129 Td [(psb)]TJ ET @@ -20314,18 +33408,34 @@ BT /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 139.477 -455.832 Td [(115)]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 + -12.73 -19.925 Td [(3.)]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 +0 g 0 G + 139.477 -212.744 Td [(112)]TJ +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 0 g 0 G ET endstream endobj +<<<<<<< HEAD:docs/psblas-3.6.pdf 1651 0 obj << /Length 1357 +======= +1664 0 obj +<< +/Length 2621 +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> stream 0 g 0 G 0 g 0 G +<<<<<<< HEAD:docs/psblas-3.6.pdf BT /F16 11.9552 Tf 150.705 706.129 Td [(psb)]TJ ET @@ -20340,6 +33450,36 @@ BT /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(p)1(arallel)-334(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 +======= +BT +/F16 11.9552 Tf 99.895 706.129 Td [(7.4)-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 [(get)]TJ +ET +q +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 +/F16 11.9552 Tf 178.555 706.129 Td [(mpi)]TJ +ET +q +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 +/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 +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 0 g 0 G /F8 9.9626 Tf 33.797 0 Td [(Async)28(hronous.)]TJ 0 g 0 G @@ -20348,22 +33488,42 @@ BT 0 g 0 G 0 -19.925 Td [(icon)32(txt)]TJ 0 g 0 G +<<<<<<< HEAD:docs/psblas-3.6.pdf /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 -467.787 Td [(116)]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 +/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 +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 0 g 0 G ET endstream endobj +<<<<<<< HEAD:docs/psblas-3.6.pdf 1655 0 obj << /Length 4552 +======= +1668 0 obj +<< +/Length 3470 +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> stream 0 g 0 G 0 g 0 G BT +<<<<<<< HEAD:docs/psblas-3.6.pdf /F16 11.9552 Tf 99.895 706.129 Td [(psb)]TJ ET q @@ -20440,9 +33600,34 @@ BT /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 +======= +/F16 11.9552 Tf 150.705 706.129 Td [(7.5)-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 [(get)]TJ +ET +q +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 +/F16 11.9552 Tf 229.365 706.129 Td [(mpi)]TJ +ET +q +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 +/F16 11.9552 Tf 256.622 706.129 Td [(rank)-375(|)-375(Get)-375(the)-375(MPI)-375(rank)]TJ +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 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(sum.)]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)-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 +<<<<<<< HEAD:docs/psblas-3.6.pdf /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)-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.749 0 Td [(1)-310(to)-310(mak)28(e)-310(it)-309(a)27(v)56(ailable)-310(on)-310(al)1(l)-310(pro)-28(cesses.)]TJ -152.825 -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.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 @@ -20463,19 +33648,53 @@ BT [-500(The)]TJ/F30 9.9626 Tf 33.208 0 Td [(dat)]TJ/F8 9.9626 Tf 19.012 0 Td [(argumen)28(t)-334(ma)28(y)-333(also)-334(b)-27(e)-334(a)-333(long)-333(in)28(teger)-334(scalar.)]TJ 0 g 0 G 99.987 -109.132 Td [(118)]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 +/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 +/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 +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 0 g 0 G ET endstream endobj +<<<<<<< HEAD:docs/psblas-3.6.pdf 1665 0 obj << /Length 5151 +======= +1672 0 obj +<< +/Length 1191 +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> stream 0 g 0 G 0 g 0 G BT +<<<<<<< HEAD:docs/psblas-3.6.pdf /F16 11.9552 Tf 99.895 706.129 Td [(psb)]TJ ET q @@ -20523,11 +33742,38 @@ BT [-500(The)]TJ/F30 9.9626 Tf 33.209 0 Td [(dat)]TJ/F8 9.9626 Tf 19.012 0 Td [(argumen)28(t)-333(m)-1(a)28(y)-333(also)-333(b)-28(e)-334(a)-333(long)-333(in)28(teger)-334(scalar.)]TJ 0 g 0 G 99.986 -109.132 Td [(119)]TJ +======= +/F16 11.9552 Tf 99.895 706.129 Td [(7.6)-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 [(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 +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 0 g 0 G ET endstream endobj +<<<<<<< HEAD:docs/psblas-3.6.pdf 1563 0 obj << /Type /ObjStm @@ -20630,9 +33876,89 @@ stream % 1580 0 obj << /D [1578 0 R /XYZ 149.705 753.953 null] +======= +1568 0 obj +<< +/Type /ObjStm +/N 100 +/First 973 +/Length 9773 +>> +stream +1567 0 1563 59 1571 178 1569 317 1573 464 388 522 1574 579 1570 637 1577 756 1575 895 +1579 1041 392 1100 1580 1158 1576 1217 1583 1336 1581 1475 1585 1622 396 1680 1586 1737 1582 1795 +1589 1914 1587 2053 1591 2199 400 2258 1592 2316 1593 2374 1588 2433 1596 2539 1594 2678 1598 2824 +405 2882 1599 2939 1600 2997 1595 3055 1604 3161 1602 3300 1606 3444 409 3503 1603 3561 1608 3680 +1610 3798 1611 3856 1612 3914 1613 3972 1607 4030 1618 4149 1614 4306 1615 4450 1616 4596 1620 4741 +413 4800 1617 4858 1622 4977 1624 5095 417 5153 1621 5210 1626 5329 1628 5447 1629 5506 1630 5565 +1631 5624 1632 5683 1633 5742 1634 5801 1635 5859 1636 5918 1637 5977 1625 6036 1639 6154 1641 6272 +421 6330 1638 6387 1644 6467 1646 6585 425 6644 1647 6702 1648 6761 1643 6820 1650 6952 1652 7070 +429 7128 1653 7185 1654 7242 1649 7300 1656 7432 1658 7550 433 7609 1659 7667 1660 7726 1661 7785 +1655 7844 1663 7976 1665 8094 437 8152 1662 8209 1667 8315 1669 8433 441 8492 1666 8550 1671 8682 +% 1567 0 obj +<< +/D [1564 0 R /XYZ 150.705 382.883 null] +>> +% 1563 0 obj +<< +/Font << /F16 582 0 R /F30 810 0 R /F27 584 0 R /F8 585 0 R /F11 796 0 R >> +/ProcSet [ /PDF /Text ] +>> +% 1571 0 obj +<< +/Type /Page +/Contents 1572 0 R +/Resources 1570 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1561 0 R +/Annots [ 1569 0 R ] +>> +% 1569 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) >> +>> +% 1573 0 obj +<< +/D [1571 0 R /XYZ 98.895 753.953 null] +>> +% 388 0 obj +<< +/D [1571 0 R /XYZ 99.895 716.092 null] +>> +% 1574 0 obj +<< +/D [1571 0 R /XYZ 99.895 259.346 null] +>> +% 1570 0 obj +<< +/Font << /F16 582 0 R /F30 810 0 R /F27 584 0 R /F8 585 0 R /F11 796 0 R >> +/ProcSet [ /PDF /Text ] +>> +% 1577 0 obj +<< +/Type /Page +/Contents 1578 0 R +/Resources 1576 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1561 0 R +/Annots [ 1575 0 R ] +>> +% 1575 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) >> +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> % 1581 0 obj << +<<<<<<< HEAD:docs/psblas-3.6.pdf /D [1578 0 R /XYZ 150.705 496.913 null] >> % 1582 0 obj @@ -20646,6 +33972,21 @@ stream % 1577 0 obj << /Font << /F27 572 0 R /F8 573 0 R /F30 784 0 R /F16 570 0 R /F11 770 0 R >> +======= +/D [1577 0 R /XYZ 149.705 753.953 null] +>> +% 392 0 obj +<< +/D [1577 0 R /XYZ 150.705 716.092 null] +>> +% 1580 0 obj +<< +/D [1577 0 R /XYZ 150.705 382.883 null] +>> +% 1576 0 obj +<< +/Font << /F16 582 0 R /F30 810 0 R /F27 584 0 R /F8 585 0 R /F11 796 0 R >> +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf /ProcSet [ /PDF /Text ] >> % 1588 0 obj @@ -20654,6 +33995,7 @@ stream /Contents 1589 0 R /Resources 1587 0 R /MediaBox [0 0 595.276 841.89] +<<<<<<< HEAD:docs/psblas-3.6.pdf /Parent 1576 0 R /Annots [ 1584 0 R 1585 0 R 1586 0 R ] >> @@ -20664,9 +34006,34 @@ stream /Border[0 0 0]/H/I/C[1 0 0] /Rect [294.721 529.112 372.239 540.237] /A << /S /GoTo /D (spdata) >> +======= +/Parent 1561 0 R +/Annots [ 1581 0 R ] +>> +% 1581 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) >> +>> +% 1585 0 obj +<< +/D [1583 0 R /XYZ 98.895 753.953 null] +>> +% 396 0 obj +<< +/D [1583 0 R /XYZ 99.895 716.092 null] +>> +% 1586 0 obj +<< +/D [1583 0 R /XYZ 99.895 259.346 null] +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> % 1585 0 obj << +<<<<<<< HEAD:docs/psblas-3.6.pdf /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] @@ -20680,17 +34047,43 @@ stream /Border[0 0 0]/H/I/C[1 0 0] /Rect [321.343 405.575 388.401 416.7] /A << /S /GoTo /D (precdata) >> +======= +/Font << /F16 582 0 R /F30 810 0 R /F27 584 0 R /F8 585 0 R /F11 796 0 R >> +/ProcSet [ /PDF /Text ] >> -% 1590 0 obj +% 1589 0 obj << +/Type /Page +/Contents 1590 0 R +/Resources 1588 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1561 0 R +/Annots [ 1587 0 R ] +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf +>> +% 1587 0 obj +<< +<<<<<<< HEAD:docs/psblas-3.6.pdf /D [1588 0 R /XYZ 98.895 753.953 null] >> % 400 0 obj << /D [1588 0 R /XYZ 99.895 720.077 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) >> >> -% 1587 0 obj +% 1591 0 obj +<< +/D [1589 0 R /XYZ 149.705 753.953 null] +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf +>> +% 400 0 obj << +<<<<<<< HEAD:docs/psblas-3.6.pdf /Font << /F16 570 0 R /F8 573 0 R /F30 784 0 R /F27 572 0 R /F11 770 0 R >> /ProcSet [ /PDF /Text ] >> @@ -20709,10 +34102,25 @@ stream % 405 0 obj << /D [1592 0 R /XYZ 150.705 720.077 null] +======= +/D [1589 0 R /XYZ 150.705 716.092 null] >> -% 1591 0 obj +% 1592 0 obj << +/D [1589 0 R /XYZ 150.705 356.98 null] +>> +% 1593 0 obj +<< +/D [1589 0 R /XYZ 150.705 313.144 null] +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf +>> +% 1588 0 obj +<< +<<<<<<< HEAD:docs/psblas-3.6.pdf /Font << /F16 570 0 R /F30 784 0 R /F8 573 0 R /F11 770 0 R /F27 572 0 R >> +======= +/Font << /F16 582 0 R /F30 810 0 R /F27 584 0 R /F8 585 0 R >> +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf /ProcSet [ /PDF /Text ] >> % 1596 0 obj @@ -20721,42 +34129,106 @@ stream /Contents 1597 0 R /Resources 1595 0 R /MediaBox [0 0 595.276 841.89] +<<<<<<< HEAD:docs/psblas-3.6.pdf /Parent 1576 0 R +======= +/Parent 1601 0 R +/Annots [ 1594 0 R ] +>> +% 1594 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) >> +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> % 1598 0 obj << /D [1596 0 R /XYZ 98.895 753.953 null] +<<<<<<< HEAD:docs/psblas-3.6.pdf +======= +>> +% 405 0 obj +<< +/D [1596 0 R /XYZ 99.895 716.092 null] >> % 1599 0 obj << -/D [1596 0 R /XYZ 99.895 702.144 null] +/D [1596 0 R /XYZ 99.895 370.928 null] >> % 1600 0 obj << +/D [1596 0 R /XYZ 99.895 339.047 null] +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf +>> +% 1599 0 obj +<< +<<<<<<< HEAD:docs/psblas-3.6.pdf +/D [1596 0 R /XYZ 99.895 702.144 null] +======= +/Font << /F16 582 0 R /F30 810 0 R /F27 584 0 R /F8 585 0 R >> +/ProcSet [ /PDF /Text ] +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf +>> +% 1604 0 obj +<< +<<<<<<< HEAD:docs/psblas-3.6.pdf /D [1596 0 R /XYZ 99.895 668.326 null] +======= +/Type /Page +/Contents 1605 0 R +/Resources 1603 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1601 0 R +/Annots [ 1602 0 R ] +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> % 1601 0 obj << +<<<<<<< HEAD:docs/psblas-3.6.pdf /D [1596 0 R /XYZ 99.895 624.491 null] >> % 1602 0 obj << /D [1596 0 R /XYZ 99.895 556.745 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) >> +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> -% 1603 0 obj +% 1606 0 obj << +<<<<<<< HEAD:docs/psblas-3.6.pdf /D [1596 0 R /XYZ 99.895 500.954 null] +======= +/D [1604 0 R /XYZ 149.705 753.953 null] +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> -% 1604 0 obj +% 409 0 obj << +<<<<<<< HEAD:docs/psblas-3.6.pdf /D [1596 0 R /XYZ 99.895 468.52 null] >> % 1605 0 obj << /D [1596 0 R /XYZ 99.895 425.182 null] +======= +/D [1604 0 R /XYZ 150.705 716.092 null] >> -% 1606 0 obj +% 1603 0 obj +<< +/Font << /F16 582 0 R /F30 810 0 R /F27 584 0 R /F8 585 0 R /F11 796 0 R >> +/ProcSet [ /PDF /Text ] +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf +>> +% 1608 0 obj << +<<<<<<< HEAD:docs/psblas-3.6.pdf /D [1596 0 R /XYZ 99.895 383.395 null] >> % 1607 0 obj @@ -20767,9 +34239,25 @@ stream << /Font << /F16 570 0 R /F8 573 0 R /F11 770 0 R /F14 787 0 R /F7 785 0 R >> /ProcSet [ /PDF /Text ] +======= +/Type /Page +/Contents 1609 0 R +/Resources 1607 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1601 0 R +>> +% 1610 0 obj +<< +/D [1608 0 R /XYZ 98.895 753.953 null] +>> +% 1611 0 obj +<< +/D [1608 0 R /XYZ 99.895 496.913 null] +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> -% 1609 0 obj +% 1612 0 obj << +<<<<<<< HEAD:docs/psblas-3.6.pdf /Type /Page /Contents 1610 0 R /Resources 1608 0 R @@ -20796,21 +34284,59 @@ stream /Resources 1612 0 R /MediaBox [0 0 595.276 841.89] /Parent 1618 0 R +======= +/D [1608 0 R /XYZ 99.895 439.185 null] +>> +% 1613 0 obj +<< +/D [1608 0 R /XYZ 99.895 418.983 null] +>> +% 1607 0 obj +<< +/Font << /F27 584 0 R /F8 585 0 R /F30 810 0 R /F16 582 0 R /F11 796 0 R >> +/ProcSet [ /PDF /Text ] +>> +% 1618 0 obj +<< +/Type /Page +/Contents 1619 0 R +/Resources 1617 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1601 0 R +/Annots [ 1614 0 R 1615 0 R 1616 0 R ] +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> % 1615 0 obj << +<<<<<<< HEAD:docs/psblas-3.6.pdf /D [1613 0 R /XYZ 98.895 753.953 null] >> % 413 0 obj << /D [1613 0 R /XYZ 99.895 720.077 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) >> +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> % 1616 0 obj << +<<<<<<< HEAD:docs/psblas-3.6.pdf /D [1613 0 R /XYZ 99.895 235.436 null] +======= +/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) >> +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> % 1617 0 obj << +<<<<<<< HEAD:docs/psblas-3.6.pdf /D [1613 0 R /XYZ 99.895 213.573 null] >> % 1612 0 obj @@ -20845,6 +34371,46 @@ stream % 1619 0 obj << /Font << /F16 570 0 R /F30 784 0 R /F8 573 0 R /F27 572 0 R /F14 787 0 R /F11 770 0 R >> +======= +/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) >> +>> +% 1620 0 obj +<< +/D [1618 0 R /XYZ 149.705 753.953 null] +>> +% 413 0 obj +<< +/D [1618 0 R /XYZ 150.705 716.092 null] +>> +% 1617 0 obj +<< +/Font << /F16 582 0 R /F8 585 0 R /F30 810 0 R /F27 584 0 R /F11 796 0 R >> +/ProcSet [ /PDF /Text ] +>> +% 1622 0 obj +<< +/Type /Page +/Contents 1623 0 R +/Resources 1621 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1601 0 R +>> +% 1624 0 obj +<< +/D [1622 0 R /XYZ 98.895 753.953 null] +>> +% 417 0 obj +<< +/D [1622 0 R /XYZ 99.895 716.092 null] +>> +% 1621 0 obj +<< +/Font << /F16 582 0 R /F30 810 0 R /F8 585 0 R /F11 796 0 R /F27 584 0 R >> +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf /ProcSet [ /PDF /Text ] >> % 1626 0 obj @@ -20853,6 +34419,7 @@ stream /Contents 1627 0 R /Resources 1625 0 R /MediaBox [0 0 595.276 841.89] +<<<<<<< HEAD:docs/psblas-3.6.pdf /Parent 1618 0 R >> % 1628 0 obj @@ -20862,13 +34429,21 @@ stream % 421 0 obj << /D [1626 0 R /XYZ 99.895 720.077 null] +======= +/Parent 1601 0 R +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> % 1629 0 obj << +<<<<<<< HEAD:docs/psblas-3.6.pdf /D [1626 0 R /XYZ 99.895 442.659 null] +======= +/D [1626 0 R /XYZ 149.705 753.953 null] +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> % 1630 0 obj << +<<<<<<< HEAD:docs/psblas-3.6.pdf /D [1626 0 R /XYZ 99.895 396.886 null] >> % 1631 0 obj @@ -20879,9 +34454,17 @@ stream << /Font << /F16 570 0 R /F30 784 0 R /F8 573 0 R /F27 572 0 R /F11 770 0 R /F14 787 0 R >> /ProcSet [ /PDF /Text ] +======= +/D [1626 0 R /XYZ 150.705 702.144 null] +>> +% 1630 0 obj +<< +/D [1626 0 R /XYZ 150.705 668.326 null] +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> % 1633 0 obj << +<<<<<<< HEAD:docs/psblas-3.6.pdf /Type /Page /Contents 1634 0 R /Resources 1632 0 R @@ -20895,32 +34478,72 @@ stream % 425 0 obj << /D [1633 0 R /XYZ 150.705 720.077 null] +======= +/D [1626 0 R /XYZ 150.705 624.491 null] +>> +% 1632 0 obj +<< +/D [1626 0 R /XYZ 150.705 556.745 null] +>> +% 1633 0 obj +<< +/D [1626 0 R /XYZ 150.705 500.954 null] +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> % 1632 0 obj << +<<<<<<< HEAD:docs/psblas-3.6.pdf /Font << /F16 570 0 R /F30 784 0 R /F8 573 0 R /F27 572 0 R >> /ProcSet [ /PDF /Text ] +======= +/D [1626 0 R /XYZ 150.705 468.52 null] +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> % 1637 0 obj << +<<<<<<< HEAD:docs/psblas-3.6.pdf /Type /Page /Contents 1638 0 R /Resources 1636 0 R /MediaBox [0 0 595.276 841.89] /Parent 1618 0 R +======= +/D [1626 0 R /XYZ 150.705 425.182 null] +>> +% 1636 0 obj +<< +/D [1626 0 R /XYZ 150.705 383.395 null] +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> % 1639 0 obj << +<<<<<<< HEAD:docs/psblas-3.6.pdf /D [1637 0 R /XYZ 98.895 753.953 null] >> % 429 0 obj << /D [1637 0 R /XYZ 99.895 720.077 null] +======= +/D [1626 0 R /XYZ 150.705 355.499 null] +>> +% 1625 0 obj +<< +/Font << /F16 582 0 R /F8 585 0 R /F11 796 0 R /F14 813 0 R /F7 811 0 R >> +/ProcSet [ /PDF /Text ] +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> % 1636 0 obj << +<<<<<<< HEAD:docs/psblas-3.6.pdf /Font << /F16 570 0 R /F30 784 0 R /F8 573 0 R /F11 770 0 R /F27 572 0 R /F14 787 0 R >> /ProcSet [ /PDF /Text ] +======= +/Type /Page +/Contents 1640 0 R +/Resources 1638 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1642 0 R +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> % 1641 0 obj << @@ -20930,6 +34553,7 @@ stream /MediaBox [0 0 595.276 841.89] /Parent 1618 0 R >> +<<<<<<< HEAD:docs/psblas-3.6.pdf % 1643 0 obj << /D [1641 0 R /XYZ 149.705 753.953 null] @@ -20937,10 +34561,19 @@ stream % 433 0 obj << /D [1641 0 R /XYZ 150.705 720.077 null] +======= +% 421 0 obj +<< +/D [1639 0 R /XYZ 99.895 716.092 null] +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> % 1640 0 obj << +<<<<<<< HEAD:docs/psblas-3.6.pdf /Font << /F16 570 0 R /F30 784 0 R /F8 573 0 R /F27 572 0 R >> +======= +/Font << /F16 582 0 R /F8 585 0 R >> +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf /ProcSet [ /PDF /Text ] >> % 1645 0 obj @@ -20949,19 +34582,43 @@ stream /Contents 1646 0 R /Resources 1644 0 R /MediaBox [0 0 595.276 841.89] +<<<<<<< HEAD:docs/psblas-3.6.pdf /Parent 1648 0 R >> % 1647 0 obj << /D [1645 0 R /XYZ 98.895 753.953 null] +======= +/Parent 1642 0 R +>> +% 1646 0 obj +<< +/D [1644 0 R /XYZ 149.705 753.953 null] +>> +% 425 0 obj +<< +/D [1644 0 R /XYZ 150.705 716.092 null] +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> % 437 0 obj << +<<<<<<< HEAD:docs/psblas-3.6.pdf /D [1645 0 R /XYZ 99.895 720.077 null] +======= +/D [1644 0 R /XYZ 150.705 235.436 null] +>> +% 1648 0 obj +<< +/D [1644 0 R /XYZ 150.705 213.573 null] +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> % 1644 0 obj << +<<<<<<< HEAD:docs/psblas-3.6.pdf /Font << /F16 570 0 R /F30 784 0 R /F8 573 0 R /F27 572 0 R >> +======= +/Font << /F16 582 0 R /F30 810 0 R /F8 585 0 R /F27 584 0 R /F11 796 0 R /F14 813 0 R >> +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf /ProcSet [ /PDF /Text ] >> % 1650 0 obj @@ -20970,6 +34627,7 @@ stream /Contents 1651 0 R /Resources 1649 0 R /MediaBox [0 0 595.276 841.89] +<<<<<<< HEAD:docs/psblas-3.6.pdf /Parent 1648 0 R >> % 1652 0 obj @@ -20979,14 +34637,26 @@ stream % 441 0 obj << /D [1650 0 R /XYZ 150.705 720.077 null] +======= +/Parent 1642 0 R >> -% 1649 0 obj +% 1652 0 obj +<< +/D [1650 0 R /XYZ 98.895 753.953 null] +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf +>> +% 429 0 obj << +<<<<<<< HEAD:docs/psblas-3.6.pdf /Font << /F16 570 0 R /F30 784 0 R /F8 573 0 R /F27 572 0 R >> /ProcSet [ /PDF /Text ] +======= +/D [1650 0 R /XYZ 99.895 716.092 null] +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> % 1654 0 obj << +<<<<<<< HEAD:docs/psblas-3.6.pdf /Type /Page /Contents 1655 0 R /Resources 1653 0 R @@ -21004,19 +34674,46 @@ stream % 1653 0 obj << /Font << /F16 570 0 R /F30 784 0 R /F8 573 0 R /F27 572 0 R /F11 770 0 R /F14 787 0 R >> +======= +/D [1650 0 R /XYZ 99.895 349.01 null] +>> +% 1654 0 obj +<< +/D [1650 0 R /XYZ 99.895 315.192 null] +>> +% 1649 0 obj +<< +/Font << /F16 582 0 R /F30 810 0 R /F8 585 0 R /F27 584 0 R /F14 813 0 R /F11 796 0 R >> +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf /ProcSet [ /PDF /Text ] >> -% 1658 0 obj +% 1656 0 obj << /Type /Page -/Contents 1659 0 R -/Resources 1657 0 R +/Contents 1657 0 R +/Resources 1655 0 R /MediaBox [0 0 595.276 841.89] +<<<<<<< HEAD:docs/psblas-3.6.pdf /Parent 1648 0 R +======= +/Parent 1642 0 R +>> +% 1658 0 obj +<< +/D [1656 0 R /XYZ 149.705 753.953 null] +>> +% 433 0 obj +<< +/D [1656 0 R /XYZ 150.705 716.092 null] +>> +% 1659 0 obj +<< +/D [1656 0 R /XYZ 150.705 442.659 null] +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> % 1660 0 obj << -/D [1658 0 R /XYZ 149.705 753.953 null] +/D [1656 0 R /XYZ 150.705 396.886 null] >> % 449 0 obj << @@ -21024,19 +34721,37 @@ stream >> % 1661 0 obj << +<<<<<<< HEAD:docs/psblas-3.6.pdf /D [1658 0 R /XYZ 150.705 247.391 null] +======= +/D [1656 0 R /XYZ 150.705 365.005 null] +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> -% 1662 0 obj +% 1655 0 obj << +<<<<<<< HEAD:docs/psblas-3.6.pdf /D [1658 0 R /XYZ 150.705 213.573 null] >> % 1657 0 obj << /Font << /F16 570 0 R /F30 784 0 R /F8 573 0 R /F27 572 0 R /F14 787 0 R /F11 770 0 R >> /ProcSet [ /PDF /Text ] +======= +/Font << /F16 582 0 R /F30 810 0 R /F8 585 0 R /F27 584 0 R /F11 796 0 R /F14 813 0 R >> +/ProcSet [ /PDF /Text ] +>> +% 1663 0 obj +<< +/Type /Page +/Contents 1664 0 R +/Resources 1662 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1642 0 R +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> % 1664 0 obj << +<<<<<<< HEAD:docs/psblas-3.6.pdf /Type /Page /Contents 1665 0 R /Resources 1663 0 R @@ -21058,17 +34773,65 @@ stream % 1668 0 obj << /D [1664 0 R /XYZ 99.895 213.573 null] +======= +/D [1663 0 R /XYZ 98.895 753.953 null] +>> +% 437 0 obj +<< +/D [1663 0 R /XYZ 99.895 716.092 null] +>> +% 1662 0 obj +<< +/Font << /F16 582 0 R /F30 810 0 R /F8 585 0 R /F27 584 0 R >> +/ProcSet [ /PDF /Text ] +>> +% 1667 0 obj +<< +/Type /Page +/Contents 1668 0 R +/Resources 1666 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1642 0 R +>> +% 1669 0 obj +<< +/D [1667 0 R /XYZ 149.705 753.953 null] +>> +% 441 0 obj +<< +/D [1667 0 R /XYZ 150.705 716.092 null] +>> +% 1666 0 obj +<< +/Font << /F16 582 0 R /F30 810 0 R /F8 585 0 R /F11 796 0 R /F27 584 0 R /F14 813 0 R >> +/ProcSet [ /PDF /Text ] +>> +% 1671 0 obj +<< +/Type /Page +/Contents 1672 0 R +/Resources 1670 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1674 0 R +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> endstream endobj +<<<<<<< HEAD:docs/psblas-3.6.pdf 1672 0 obj << /Length 5183 +======= +1678 0 obj +<< +/Length 1511 +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> stream 0 g 0 G 0 g 0 G +<<<<<<< HEAD:docs/psblas-3.6.pdf BT /F16 11.9552 Tf 150.705 706.129 Td [(psb)]TJ ET @@ -21081,6 +34844,94 @@ BT 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)-311(v)55(alue)-311(reduction)-312(op)-27(eration)-312(based)-311(on)]TJ -14.944 -11.955 Td [(the)-333(underlying)-333(com)-1(m)28(unication)-333(library)83(.)]TJ +======= +BT +/F16 11.9552 Tf 150.705 706.129 Td [(7.7)-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 [(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 + +endstream +endobj +1682 0 obj +<< +/Length 1370 +>> +stream +0 g 0 G +0 g 0 G +BT +/F16 11.9552 Tf 99.895 706.129 Td [(7.8)-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 [(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 +1686 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 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 [(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 +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 0 g 0 G /F27 9.9626 Tf 0 -19.926 Td [(T)32(yp)-32(e:)]TJ 0 g 0 G @@ -21090,6 +34941,7 @@ BT 0 g 0 G 0 g 0 G 0 -19.925 Td [(icon)32(txt)]TJ +<<<<<<< HEAD:docs/psblas-3.6.pdf 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 @@ -21117,6 +34969,87 @@ BT [-500(The)]TJ/F30 9.9626 Tf 33.208 0 Td [(dat)]TJ/F8 9.9626 Tf 19.012 0 Td [(argumen)28(t)-334(ma)28(y)-333(also)-334(b)-27(e)-334(a)-333(long)-333(in)28(teger)-334(scalar.)]TJ 0 g 0 G 99.987 -109.132 Td [(120)]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 [(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 [(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 g 0 G +/F27 9.9626 Tf -243.576 -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 [(On)-333(pro)-28(cesses)-334(other)-333(than)-333(ro)-28(ot,)-333(the)-334(dat)1(a)-334(to)-333(b)-28(e)-333(broadcast.)]TJ 3.536 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.378 0 Td [(global)]TJ/F8 9.9626 Tf 29.757 0 Td [(.)]TJ -62.135 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf 41.898 0 Td [(.)]TJ -71.509 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.485 0 Td [(inout)]TJ/F8 9.9626 Tf 26.097 0 Td [(.)]TJ -59.582 -11.955 Td [(Sp)-28(eci\014ed)-339(as:)-458(an)-339(in)28(tege)-1(r,)-341(real)-339(or)-340(complex)-340(v)56(ariable,)-342(whic)28(h)-339(m)-1(a)28(y)-339(b)-28(e)-340(a)-340(scalar,)]TJ 0 -11.955 Td [(or)-346(a)-346(rank)-347(1)-346(or)-346(2)-346(arra)28(y)83(,)-349(or)-347(a)-346(c)28(haracter)-346(or)-346(logical)-347(scalar.)-829(T)28(yp)-28(e,)-349(kind,)-350(rank)]TJ 0 -11.956 Td [(and)-333(size)-334(m)28(ust)-333(agree)-334(on)-333(all)-333(pro)-28(cesses.)]TJ +0 g 0 G + 139.477 -170.9 Td [(118)]TJ +0 g 0 G +ET + +endstream +endobj +1690 0 obj +<< +/Length 5157 +>> +stream +0 g 0 G +0 g 0 G +BT +/F16 11.9552 Tf 99.895 706.129 Td [(7.10)-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 [(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 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(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 + [-500(The)]TJ/F30 9.9626 Tf 33.209 0 Td [(dat)]TJ/F8 9.9626 Tf 19.012 0 Td [(argumen)28(t)-333(m)-1(a)28(y)-333(also)-333(b)-28(e)-334(a)-333(long)-333(in)28(teger)-334(scalar.)]TJ +0 g 0 G + 99.986 -109.132 Td [(119)]TJ +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 0 g 0 G ET @@ -21124,12 +35057,17 @@ endstream endobj 1678 0 obj << +<<<<<<< HEAD:docs/psblas-3.6.pdf /Length 5239 +======= +/Length 5196 +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> stream 0 g 0 G 0 g 0 G BT +<<<<<<< HEAD:docs/psblas-3.6.pdf /F16 11.9552 Tf 99.895 706.129 Td [(psb)]TJ ET q @@ -21141,6 +35079,19 @@ BT 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 +======= +/F16 11.9552 Tf 150.705 706.129 Td [(7.11)-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 [(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 +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 0 g 0 G /F27 9.9626 Tf 0 -19.926 Td [(T)32(yp)-32(e:)]TJ 0 g 0 G @@ -21150,46 +35101,142 @@ BT 0 g 0 G 0 g 0 G 0 -19.925 Td [(icon)32(txt)]TJ +<<<<<<< HEAD:docs/psblas-3.6.pdf 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 +/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 + [-500(The)]TJ/F30 9.9626 Tf 33.208 0 Td [(dat)]TJ/F8 9.9626 Tf 19.012 0 Td [(argumen)28(t)-334(ma)28(y)-333(also)-334(b)-27(e)-334(a)-333(long)-333(in)28(teger)-334(scalar.)]TJ +0 g 0 G + 99.987 -109.132 Td [(120)]TJ +0 g 0 G +ET + +endstream +endobj +1702 0 obj +<< +/Length 5171 +>> +stream +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 0 g 0 G /F27 9.9626 Tf -24.907 -19.925 Td [(dat)]TJ 0 g 0 G +<<<<<<< HEAD:docs/psblas-3.6.pdf /F8 9.9626 Tf 21.371 0 Td [(The)-333(lo)-28(cal)-334(con)28(tribution)-333(to)-333(the)-334(global)-333(maxim)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 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 +======= +BT +/F16 11.9552 Tf 99.895 706.129 Td [(7.12)-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 [(min)-375(|)-375(Global)-375(minim)31(um)]TJ +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 0 g 0 G /F27 9.9626 Tf -251.325 -33.873 Td [(On)-383(Return)]TJ 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 +<<<<<<< HEAD:docs/psblas-3.6.pdf 0 -19.926 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(maxim)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)-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.956 Td [(pro)-28(cesses.)]TJ/F16 11.9552 Tf -24.907 -21.917 Td [(Notes)]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 +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 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.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 +<<<<<<< HEAD:docs/psblas-3.6.pdf +======= + 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)-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 +/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 +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf -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 +<<<<<<< HEAD:docs/psblas-3.6.pdf 99.986 -97.177 Td [(121)]TJ +======= + 99.986 -109.132 Td [(121)]TJ +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 0 g 0 G ET endstream endobj +<<<<<<< HEAD:docs/psblas-3.6.pdf 1685 0 obj << /Length 5273 +======= +1709 0 obj +<< +/Length 5288 +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> stream 0 g 0 G 0 g 0 G BT +<<<<<<< HEAD:docs/psblas-3.6.pdf /F16 11.9552 Tf 150.705 706.129 Td [(psb)]TJ ET q @@ -21201,6 +35248,19 @@ BT 0 g 0 G 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(subroutine)-337(implemen)28(ts)-337(a)-336(minim)28(um)-337(absolute)-336(v)55(al)1(ue)-337(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 +======= +/F16 11.9552 Tf 150.705 706.129 Td [(7.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 [(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 +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 0 g 0 G /F27 9.9626 Tf 0 -19.926 Td [(T)32(yp)-32(e:)]TJ 0 g 0 G @@ -21215,7 +35275,11 @@ BT 0 g 0 G /F27 9.9626 Tf -24.907 -19.925 Td [(dat)]TJ 0 g 0 G +<<<<<<< HEAD:docs/psblas-3.6.pdf /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.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 +======= +/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 +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 0 g 0 G /F27 9.9626 Tf -24.907 -19.926 Td [(ro)-32(ot)]TJ 0 g 0 G @@ -21226,7 +35290,11 @@ BT 0 g 0 G 0 -19.926 Td [(dat)]TJ 0 g 0 G +<<<<<<< HEAD:docs/psblas-3.6.pdf /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(minim)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)-333(a)-334(rank)-333(1)-333(or)-333(2)-334(arra)28(y)83(.)]TJ 0 -11.956 Td [(T)28(yp)-28(e,)-333(kind,)-333(rank)-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 +======= +/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 +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 0 g 0 G /F8 9.9626 Tf 12.177 -19.926 Td [(1.)]TJ 0 g 0 G @@ -21242,14 +35310,21 @@ ET endstream endobj +<<<<<<< HEAD:docs/psblas-3.6.pdf 1691 0 obj << /Length 6213 +======= +1715 0 obj +<< +/Length 5259 +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> stream 0 g 0 G 0 g 0 G BT +<<<<<<< HEAD:docs/psblas-3.6.pdf /F16 11.9552 Tf 99.895 706.129 Td [(psb)]TJ ET q @@ -21263,12 +35338,28 @@ BT /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.794 Td [(This)-425(subroutine)-426(imp)1(le)-1(men)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)-334(comm)28(unication)-333(library)83(.)]TJ 0 g 0 G /F27 9.9626 Tf 0 -18.226 Td [(T)32(yp)-32(e:)]TJ +======= +/F16 11.9552 Tf 99.895 706.129 Td [(7.14)-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 [(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 +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 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.076 Td [(On)-383(En)32(try)]TJ 0 g 0 G 0 g 0 G +<<<<<<< HEAD:docs/psblas-3.6.pdf 0 -19.076 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.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 @@ -21308,38 +35399,93 @@ BT [-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 139.477 -36.158 Td [(123)]TJ +======= + 0 -19.925 Td [(icon)32(txt)]TJ 0 g 0 G -ET - -endstream -endobj -1699 0 obj -<< -/Length 5369 ->> -stream +/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 -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 [(snd)-375(|)-375(Send)-375(data)]TJ +/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 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 -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.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 +/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.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 + 99.986 -97.177 Td [(123)]TJ +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf +0 g 0 G +ET + +endstream +endobj +<<<<<<< HEAD:docs/psblas-3.6.pdf +1699 0 obj +<< +/Length 5369 +======= +1721 0 obj +<< +/Length 6258 +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf +>> +stream +0 g 0 G +0 g 0 G +BT +<<<<<<< HEAD:docs/psblas-3.6.pdf +/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 [(snd)-375(|)-375(Send)-375(data)]TJ +0 g 0 G +======= +/F16 11.9552 Tf 150.705 706.129 Td [(7.15)-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 [(nrm2)-375(|)-375(Global)-375(2-norm)-375(reduction)]TJ +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 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)28(k)27(et)-333(of)-333(data)-334(to)-333(a)-333(destination.)]TJ 0 g 0 G +<<<<<<< HEAD:docs/psblas-3.6.pdf /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 +======= +/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 -33.797 -19.925 Td [(On)-383(En)32(try)]TJ +/F27 9.9626 Tf 0 -18.226 Td [(T)32(yp)-32(e:)]TJ +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf +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.076 Td [(On)-383(En)32(try)]TJ 0 g 0 G +<<<<<<< HEAD:docs/psblas-3.6.pdf 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 @@ -21365,19 +35511,68 @@ BT [-500(This)-402(subroutine)-403(implies)-402(a)-402(sync)27(hronization,)-419(but)-403(on)1(ly)-403(b)-28(et)28(w)28(een)-403(th)1(e)-403(calling)]TJ 12.73 -11.955 Td [(pro)-28(cess)-333(and)-333(the)-334(destination)-333(pro)-28(cess)]TJ/F11 9.9626 Tf 157.52 0 Td [(dst)]TJ/F8 9.9626 Tf 13.453 0 Td [(.)]TJ 0 g 0 G -31.496 -105.147 Td [(124)]TJ +======= +0 g 0 G + 0 -19.076 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.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.076 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(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.075 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.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 -251.325 -31.749 Td [(On)-383(Return)]TJ +0 g 0 G +0 g 0 G + 0 -19.076 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(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 +/F8 9.9626 Tf 12.177 -18.226 Td [(1.)]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 +0 g 0 G + -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 + -12.73 -19.075 Td [(3.)]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.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 -36.158 Td [(124)]TJ +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 0 g 0 G ET endstream endobj +<<<<<<< HEAD:docs/psblas-3.6.pdf 1704 0 obj << /Length 5352 +======= +1729 0 obj +<< +/Length 5357 +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> stream 0 g 0 G 0 g 0 G BT +<<<<<<< HEAD:docs/psblas-3.6.pdf /F16 11.9552 Tf 99.895 706.129 Td [(psb)]TJ ET q @@ -21389,6 +35584,19 @@ BT 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 +======= +/F16 11.9552 Tf 99.895 706.129 Td [(7.16)-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 [(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 +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 0 g 0 G /F27 9.9626 Tf -14.944 -19.926 Td [(T)32(yp)-32(e:)]TJ 0 g 0 G @@ -21401,6 +35609,7 @@ BT 0 g 0 G /F8 9.9626 Tf 39.989 0 Td [(the)-333(comm)27(unication)-333(con)28(text)-333(iden)27(tifyin)1(g)-334(the)-333(virtual)-333(parallel)-334(mac)28(hine.)]TJ -15.082 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(global)]TJ/F8 9.9626 Tf 29.756 0 Td [(.)]TJ -62.135 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf 41.898 0 Td [(.)]TJ -71.509 -11.956 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(in)28(teger)-333(v)55(ariable.)]TJ 0 g 0 G +<<<<<<< HEAD:docs/psblas-3.6.pdf /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.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(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 @@ -21445,14 +35654,43 @@ BT [-479(rep)-28(orts)-479(a)-479(sample)-480(error)-479(message)-479(generated)-479(b)28(y)-480(the)-479(PSBLAS-2.0)]TJ -14.944 -11.955 Td [(library)83(.)-451(This)-335(error)-336(has)-335(b)-28(een)-336(generated)-335(b)27(y)-335(the)-336(fact)-335(that)-336(the)-335(use)-1(r)-335(has)-336(c)28(hosen)-336(th)1(e)]TJ 0 -11.955 Td [(in)28(v)55(alid)-367(\134F)28(OO")-368(storage)-367(format)-368(to)-367(represen)27(t)-367(the)-368(sparse)-367(matrix.)-547(F)83(rom)-367(this)-368(error)]TJ 0 -11.955 Td [(message)-248(it)-248(is)-248(p)-27(oss)-1(i)1(ble)-248(to)-248(see)-248(that)-248(the)-248(error)-247(has)-248(b)-28(een)-248(detected)-248(inside)-248(th)1(e)]TJ/F30 9.9626 Tf 301.868 0 Td [(psb_cest)]TJ/F8 9.9626 Tf -301.868 -11.956 Td [(subroutine)-333(called)-334(b)28(y)]TJ/F30 9.9626 Tf 91.407 0 Td [(psb_spasb)]TJ/F8 9.9626 Tf 50.394 0 Td [(...)-444(b)27(y)-333(pro)-28(cess)-333(0)-333(\050i.e.)-445(the)-333(ro)-28(ot)-333(pro)-28(cess\051.)]TJ 0 g 0 G 22.583 -211.304 Td [(126)]TJ +======= +/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(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 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 +/F27 9.9626 Tf -239.002 -31.881 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.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 +/F27 9.9626 Tf -24.907 -21.918 Td [(On)-383(Return)]TJ +0 g 0 G +/F16 11.9552 Tf 0 -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(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 +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 0 g 0 G ET endstream endobj +<<<<<<< HEAD:docs/psblas-3.6.pdf 1717 0 obj << /Length 7220 +======= +1734 0 obj +<< +/Length 5375 +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> stream 0 g 0 G @@ -21461,6 +35699,7 @@ stream 0 g 0 G 0 g 0 G BT +<<<<<<< HEAD:docs/psblas-3.6.pdf /F53 8.9664 Tf 108.801 680.066 Td [(s)-60(u)-60(b)-60(r)-59(o)-60(u)-60(t)-60(i)-60(n)-60(e)]TJ/F46 8.9664 Tf 61.47 0 Td [(p)-132(s)-132(b)]TJ ET q @@ -21596,14 +35835,240 @@ BT 0 g 0 G 0 g 0 G 56.632 -34.874 Td [(127)]TJ +======= +/F16 11.9552 Tf 150.705 706.129 Td [(7.17)-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 [(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 -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 +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 +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 +1741 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 + 22.582 -211.304 Td [(127)]TJ +0 g 0 G +ET + +endstream +endobj +1748 0 obj +<< +/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 +/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 234.014 493.964 cm +[]0 d 0 J 0.398 w 0 0 m 2.765 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 +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 +Q +BT +/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 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 +0 g 0 G +0 g 0 G +0 g 0 G +0 g 0 G +0 g 0 G +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 +0 g 0 G +0 g 0 G + 56.631 -34.874 Td [(128)]TJ +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 0 g 0 G ET endstream endobj +<<<<<<< HEAD:docs/psblas-3.6.pdf 1748 0 obj << /Length 3723 +======= +1778 0 obj +<< +/Length 3734 +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> stream 0 g 0 G @@ -21611,6 +36076,7 @@ stream 0 g 0 G 0 g 0 G BT +<<<<<<< HEAD:docs/psblas-3.6.pdf /F16 14.3462 Tf 150.705 680.226 Td [(psb)]TJ ET q @@ -21802,10 +36268,60 @@ BT 0 g 0 G 0 g 0 G /F27 9.9626 Tf -78.428 -17.933 Td [(T)32(yp)-32(e:)]TJ +======= +/F16 11.9552 Tf 99.895 706.129 Td [(8.1)-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 [(errpush)]TJ/F8 9.9626 Tf -55.726 -18.389 Td [(Pushes)-333(an)-334(error)-333(co)-28(de)-333(on)28(to)-334(the)-333(error)-333(stac)27(k)]TJ/F27 9.9626 Tf 1.377 -17.933 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 150.181 670.006 cm +[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +Q +BT +/F8 9.9626 Tf 154.37 669.807 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 219.855 670.006 cm +[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +Q +BT +/F8 9.9626 Tf 224.221 669.807 Td [(c)-438(,)-825(r)]TJ +ET +q +1 0 0 1 249.141 670.006 cm +[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +Q +BT +/F8 9.9626 Tf 252.772 669.807 Td [(n)-64(a)-65(m)-64(e)-290(,)-923(i)]TJ +ET +q +1 0 0 1 297.774 670.006 cm +[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +Q +BT +/F8 9.9626 Tf 302.378 669.807 Td [(e)-162(r)-162(r)-485(,)-913(a)]TJ +ET +q +1 0 0 1 341.632 670.006 cm +[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +Q +BT +/F8 9.9626 Tf 346.136 669.807 Td [(e)-152(r)-152(r)-258(\051)]TJ +0 g 0 G +0 g 0 G +0 g 0 G +/F27 9.9626 Tf -246.241 -27.896 Td [(T)32(yp)-32(e:)]TJ +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 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 +<<<<<<< HEAD:docs/psblas-3.6.pdf 0 g 0 G 0 g 0 G 0 -19.926 Td [(v)]TJ @@ -21886,11 +36402,61 @@ BT /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.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.)-444(P)27(ossible)-333(v)56(alues)-1(:)]TJ/F30 9.9626 Tf 180.269 0 Td [(psb_act_ret)]TJ/F8 9.9626 Tf 57.533 0 Td [(,)]TJ/F30 9.9626 Tf 6.089 0 Td [(psb_act_abort)]TJ/F8 9.9626 Tf 67.994 0 Td [(.)]TJ 0 g 0 G -172.408 -430.483 Td [(131)]TJ +======= +0 g 0 G +0 g 0 G + 0 -19.925 Td [(err)]TJ +ET +q +1 0 0 1 115.271 602.26 cm +[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S +Q +BT +/F27 9.9626 Tf 118.708 602.061 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.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(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 105.301 534.514 cm +[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S +Q +BT +/F27 9.9626 Tf 108.738 534.315 Td [(name)]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.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 -24.907 -31.88 Td [(i)]TJ +ET +q +1 0 0 1 103.765 454.813 cm +[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S +Q +BT +/F27 9.9626 Tf 107.202 454.614 Td [(err)]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.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 [(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 106.152 387.067 cm +[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S +Q +BT +/F27 9.9626 Tf 109.589 386.868 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.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 [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(string.)]TJ +0 g 0 G + 139.477 -260.564 Td [(129)]TJ +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 0 g 0 G ET endstream endobj +<<<<<<< HEAD:docs/psblas-3.6.pdf 1772 0 obj << /Length 538 @@ -21957,6 +36523,37 @@ stream % 1670 0 obj << /Font << /F16 570 0 R /F30 784 0 R /F8 573 0 R /F27 572 0 R /F14 787 0 R /F11 770 0 R >> +======= +1675 0 obj +<< +/Type /ObjStm +/N 100 +/First 972 +/Length 8779 +>> +stream +1673 0 445 58 1670 115 1677 221 1679 339 449 398 1676 456 1681 562 1683 680 453 738 +1680 795 1685 901 1687 1019 457 1078 1684 1136 1689 1268 1691 1386 461 1444 1692 1501 1693 1559 +1688 1617 1695 1749 1697 1867 465 1926 1698 1984 1699 2043 1694 2102 1701 2234 1703 2352 469 2410 +1704 2467 1705 2525 1700 2583 1708 2715 1710 2833 473 2892 1711 2950 1712 3009 1707 3068 1714 3200 +1716 3318 477 3376 1717 3433 1718 3491 1713 3549 1720 3681 1722 3799 481 3858 1723 3916 1724 3974 +1726 4033 1719 4091 1728 4261 1730 4379 485 4437 1731 4494 1727 4551 1733 4683 1735 4801 489 4860 +1736 4918 1732 4976 1740 5108 1737 5256 1738 5402 1742 5549 493 5607 1739 5664 1747 5757 1749 5875 +1750 5934 1751 5993 1753 6052 1754 6111 1755 6170 1756 6229 1757 6288 1758 6346 1759 6405 1760 6464 +1761 6523 1762 6582 1763 6641 1764 6700 1765 6759 1766 6818 1767 6875 1768 6934 1769 6993 1770 7052 +1771 7111 1772 7170 1773 7229 1774 7288 1775 7347 1744 7405 1745 7464 1746 7523 1777 7631 1779 7749 +% 1673 0 obj +<< +/D [1671 0 R /XYZ 98.895 753.953 null] +>> +% 445 0 obj +<< +/D [1671 0 R /XYZ 99.895 716.092 null] +>> +% 1670 0 obj +<< +/Font << /F16 582 0 R /F30 810 0 R /F8 585 0 R /F27 584 0 R >> +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf /ProcSet [ /PDF /Text ] >> % 1677 0 obj @@ -21965,31 +36562,61 @@ stream /Contents 1678 0 R /Resources 1676 0 R /MediaBox [0 0 595.276 841.89] +<<<<<<< HEAD:docs/psblas-3.6.pdf /Parent 1682 0 R >> % 1679 0 obj << /D [1677 0 R /XYZ 98.895 753.953 null] +======= +/Parent 1674 0 R +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> % 461 0 obj << +<<<<<<< HEAD:docs/psblas-3.6.pdf /D [1677 0 R /XYZ 99.895 720.077 null] +======= +/D [1677 0 R /XYZ 149.705 753.953 null] +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> -% 1680 0 obj +% 449 0 obj << +<<<<<<< HEAD:docs/psblas-3.6.pdf /D [1677 0 R /XYZ 99.895 235.436 null] +======= +/D [1677 0 R /XYZ 150.705 716.092 null] +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> -% 1681 0 obj +% 1676 0 obj << +<<<<<<< HEAD:docs/psblas-3.6.pdf /D [1677 0 R /XYZ 99.895 201.618 null] +======= +/Font << /F16 582 0 R /F30 810 0 R /F8 585 0 R /F27 584 0 R >> +/ProcSet [ /PDF /Text ] +>> +% 1681 0 obj +<< +/Type /Page +/Contents 1682 0 R +/Resources 1680 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1674 0 R +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> % 1676 0 obj << +<<<<<<< HEAD:docs/psblas-3.6.pdf /Font << /F16 570 0 R /F30 784 0 R /F8 573 0 R /F27 572 0 R /F14 787 0 R /F11 770 0 R >> /ProcSet [ /PDF /Text ] +======= +/D [1681 0 R /XYZ 98.895 753.953 null] +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> -% 1684 0 obj +% 453 0 obj << +<<<<<<< HEAD:docs/psblas-3.6.pdf /Type /Page /Contents 1685 0 R /Resources 1683 0 R @@ -22015,6 +36642,34 @@ stream % 1683 0 obj << /Font << /F16 570 0 R /F30 784 0 R /F8 573 0 R /F27 572 0 R /F14 787 0 R /F11 770 0 R >> +======= +/D [1681 0 R /XYZ 99.895 716.092 null] +>> +% 1680 0 obj +<< +/Font << /F16 582 0 R /F30 810 0 R /F8 585 0 R /F27 584 0 R >> +/ProcSet [ /PDF /Text ] +>> +% 1685 0 obj +<< +/Type /Page +/Contents 1686 0 R +/Resources 1684 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1674 0 R +>> +% 1687 0 obj +<< +/D [1685 0 R /XYZ 149.705 753.953 null] +>> +% 457 0 obj +<< +/D [1685 0 R /XYZ 150.705 716.092 null] +>> +% 1684 0 obj +<< +/Font << /F16 582 0 R /F30 810 0 R /F8 585 0 R /F27 584 0 R /F11 796 0 R /F14 813 0 R >> +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf /ProcSet [ /PDF /Text ] >> % 1690 0 obj @@ -22023,23 +36678,41 @@ stream /Contents 1691 0 R /Resources 1689 0 R /MediaBox [0 0 595.276 841.89] +<<<<<<< HEAD:docs/psblas-3.6.pdf /Parent 1682 0 R +======= +/Parent 1674 0 R +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> % 1692 0 obj << /D [1690 0 R /XYZ 98.895 753.953 null] >> +<<<<<<< HEAD:docs/psblas-3.6.pdf % 469 0 obj << /D [1690 0 R /XYZ 99.895 720.077 null] +======= +% 461 0 obj +<< +/D [1689 0 R /XYZ 99.895 716.092 null] +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> % 1693 0 obj << +<<<<<<< HEAD:docs/psblas-3.6.pdf /D [1690 0 R /XYZ 99.895 272.94 null] +======= +/D [1689 0 R /XYZ 99.895 247.391 null] +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> % 1694 0 obj << +<<<<<<< HEAD:docs/psblas-3.6.pdf /D [1690 0 R /XYZ 99.895 239.973 null] +======= +/D [1689 0 R /XYZ 99.895 213.573 null] +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> % 1696 0 obj << @@ -22047,7 +36720,11 @@ stream >> % 1689 0 obj << +<<<<<<< HEAD:docs/psblas-3.6.pdf /Font << /F16 570 0 R /F30 784 0 R /F8 573 0 R /F27 572 0 R /F14 787 0 R /F11 770 0 R /F10 786 0 R /F1 1695 0 R /F7 785 0 R >> +======= +/Font << /F16 582 0 R /F30 810 0 R /F8 585 0 R /F27 584 0 R /F14 813 0 R /F11 796 0 R >> +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf /ProcSet [ /PDF /Text ] >> % 1698 0 obj @@ -22056,23 +36733,47 @@ stream /Contents 1699 0 R /Resources 1697 0 R /MediaBox [0 0 595.276 841.89] +<<<<<<< HEAD:docs/psblas-3.6.pdf /Parent 1682 0 R >> % 1700 0 obj << /D [1698 0 R /XYZ 149.705 753.953 null] +======= +/Parent 1674 0 R +>> +% 1697 0 obj +<< +/D [1695 0 R /XYZ 149.705 753.953 null] +>> +% 465 0 obj +<< +/D [1695 0 R /XYZ 150.705 716.092 null] +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> % 473 0 obj << +<<<<<<< HEAD:docs/psblas-3.6.pdf /D [1698 0 R /XYZ 150.705 720.077 null] +======= +/D [1695 0 R /XYZ 150.705 247.391 null] +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> % 1701 0 obj << +<<<<<<< HEAD:docs/psblas-3.6.pdf /D [1698 0 R /XYZ 150.705 223.48 null] +======= +/D [1695 0 R /XYZ 150.705 213.573 null] +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> % 1697 0 obj << +<<<<<<< HEAD:docs/psblas-3.6.pdf /Font << /F16 570 0 R /F30 784 0 R /F8 573 0 R /F27 572 0 R /F11 770 0 R /F14 787 0 R >> +======= +/Font << /F16 582 0 R /F30 810 0 R /F8 585 0 R /F27 584 0 R /F14 813 0 R /F11 796 0 R >> +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf /ProcSet [ /PDF /Text ] >> % 1703 0 obj @@ -22081,28 +36782,114 @@ stream /Contents 1704 0 R /Resources 1702 0 R /MediaBox [0 0 595.276 841.89] +<<<<<<< HEAD:docs/psblas-3.6.pdf /Parent 1682 0 R >> % 1705 0 obj << /D [1703 0 R /XYZ 98.895 753.953 null] +======= +/Parent 1706 0 R +>> +% 1703 0 obj +<< +/D [1701 0 R /XYZ 98.895 753.953 null] +>> +% 469 0 obj +<< +/D [1701 0 R /XYZ 99.895 716.092 null] +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> % 477 0 obj << +<<<<<<< HEAD:docs/psblas-3.6.pdf /D [1703 0 R /XYZ 99.895 720.077 null] +======= +/D [1701 0 R /XYZ 99.895 247.391 null] +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> % 1706 0 obj << +<<<<<<< HEAD:docs/psblas-3.6.pdf /D [1703 0 R /XYZ 99.895 223.48 null] +======= +/D [1701 0 R /XYZ 99.895 213.573 null] +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> % 1702 0 obj << +<<<<<<< HEAD:docs/psblas-3.6.pdf /Font << /F16 570 0 R /F30 784 0 R /F8 573 0 R /F27 572 0 R /F11 770 0 R /F14 787 0 R >> /ProcSet [ /PDF /Text ] >> % 1710 0 obj +======= +/Font << /F16 582 0 R /F30 810 0 R /F8 585 0 R /F27 584 0 R /F14 813 0 R /F11 796 0 R >> +/ProcSet [ /PDF /Text ] +>> +% 1708 0 obj +<< +/Type /Page +/Contents 1709 0 R +/Resources 1707 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1706 0 R +>> +% 1710 0 obj +<< +/D [1708 0 R /XYZ 149.705 753.953 null] +>> +% 473 0 obj +<< +/D [1708 0 R /XYZ 150.705 716.092 null] +>> +% 1711 0 obj +<< +/D [1708 0 R /XYZ 150.705 235.436 null] +>> +% 1712 0 obj +<< +/D [1708 0 R /XYZ 150.705 201.618 null] +>> +% 1707 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf +<< +/Font << /F16 582 0 R /F30 810 0 R /F8 585 0 R /F27 584 0 R /F14 813 0 R /F11 796 0 R >> +/ProcSet [ /PDF /Text ] +>> +% 1714 0 obj +<< +/Type /Page +/Contents 1715 0 R +/Resources 1713 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1706 0 R +>> +% 1716 0 obj +<< +/D [1714 0 R /XYZ 98.895 753.953 null] +>> +% 477 0 obj +<< +/D [1714 0 R /XYZ 99.895 716.092 null] +>> +% 1717 0 obj +<< +/D [1714 0 R /XYZ 99.895 235.436 null] +>> +% 1718 0 obj +<< +/D [1714 0 R /XYZ 99.895 201.618 null] +>> +% 1713 0 obj +<< +/Font << /F16 582 0 R /F30 810 0 R /F8 585 0 R /F27 584 0 R /F14 813 0 R /F11 796 0 R >> +/ProcSet [ /PDF /Text ] +>> +% 1720 0 obj << /Type /Page +<<<<<<< HEAD:docs/psblas-3.6.pdf /Contents 1711 0 R /Resources 1709 0 R /MediaBox [0 0 595.276 841.89] @@ -22149,21 +36936,94 @@ stream % 1718 0 obj << /D [1716 0 R /XYZ 98.895 753.953 null] +======= +/Contents 1721 0 R +/Resources 1719 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1706 0 R +>> +% 1722 0 obj +<< +/D [1720 0 R /XYZ 149.705 753.953 null] +>> +% 481 0 obj +<< +/D [1720 0 R /XYZ 150.705 716.092 null] +>> +% 1723 0 obj +<< +/D [1720 0 R /XYZ 150.705 272.94 null] +>> +% 1724 0 obj +<< +/D [1720 0 R /XYZ 150.705 239.973 null] +>> +% 1726 0 obj +<< +/D [1720 0 R /XYZ 150.705 152.13 null] >> % 1719 0 obj << +/Font << /F16 582 0 R /F30 810 0 R /F8 585 0 R /F27 584 0 R /F14 813 0 R /F11 796 0 R /F10 812 0 R /F1 1725 0 R /F7 811 0 R >> +/ProcSet [ /PDF /Text ] +>> +% 1728 0 obj +<< +/Type /Page +/Contents 1729 0 R +/Resources 1727 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1706 0 R +>> +% 1730 0 obj +<< +/D [1728 0 R /XYZ 98.895 753.953 null] +>> +% 485 0 obj +<< +/D [1728 0 R /XYZ 99.895 716.092 null] +>> +% 1731 0 obj +<< +/D [1728 0 R /XYZ 99.895 223.48 null] +>> +% 1727 0 obj +<< +/Font << /F16 582 0 R /F30 810 0 R /F8 585 0 R /F27 584 0 R /F11 796 0 R /F14 813 0 R >> +/ProcSet [ /PDF /Text ] +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf +>> +% 1733 0 obj +<< +<<<<<<< HEAD:docs/psblas-3.6.pdf /D [1716 0 R /XYZ 108.264 687.737 null] >> % 1720 0 obj << /D [1716 0 R /XYZ 108.264 691.025 null] +======= +/Type /Page +/Contents 1734 0 R +/Resources 1732 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1706 0 R >> -% 1722 0 obj +% 1735 0 obj +<< +/D [1733 0 R /XYZ 149.705 753.953 null] +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf +>> +% 489 0 obj << +<<<<<<< HEAD:docs/psblas-3.6.pdf /D [1716 0 R /XYZ 108.264 680.066 null] +======= +/D [1733 0 R /XYZ 150.705 716.092 null] +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> -% 1723 0 obj +% 1736 0 obj << +<<<<<<< HEAD:docs/psblas-3.6.pdf /D [1716 0 R /XYZ 108.264 669.107 null] >> % 1724 0 obj @@ -22185,13 +37045,51 @@ stream % 1728 0 obj << /D [1716 0 R /XYZ 108.264 614.312 null] +======= +/D [1733 0 R /XYZ 150.705 223.48 null] +>> +% 1732 0 obj +<< +/Font << /F16 582 0 R /F30 810 0 R /F8 585 0 R /F27 584 0 R /F11 796 0 R /F14 813 0 R >> +/ProcSet [ /PDF /Text ] +>> +% 1740 0 obj +<< +/Type /Page +/Contents 1741 0 R +/Resources 1739 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1743 0 R +/Annots [ 1737 0 R 1738 0 R ] +>> +% 1737 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) >> +>> +% 1738 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) >> +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> -% 1729 0 obj +% 1742 0 obj << +<<<<<<< HEAD:docs/psblas-3.6.pdf /D [1716 0 R /XYZ 108.264 603.353 null] +======= +/D [1740 0 R /XYZ 98.895 753.953 null] +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> -% 1730 0 obj +% 493 0 obj << +<<<<<<< HEAD:docs/psblas-3.6.pdf /D [1716 0 R /XYZ 108.264 592.394 null] >> % 1731 0 obj @@ -22213,21 +37111,62 @@ stream % 1735 0 obj << /D [1716 0 R /XYZ 108.264 537.6 null] +======= +/D [1740 0 R /XYZ 99.895 716.092 null] >> -% 1736 0 obj +% 1739 0 obj << -/D [1716 0 R /XYZ 108.264 526.641 null] +/Font << /F16 582 0 R /F8 585 0 R /F30 810 0 R >> +/ProcSet [ /PDF /Text ] >> -% 1737 0 obj +% 1747 0 obj +<< +/Type /Page +/Contents 1748 0 R +/Resources 1746 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1743 0 R +>> +% 1749 0 obj << +/D [1747 0 R /XYZ 149.705 753.953 null] +>> +% 1750 0 obj +<< +/D [1747 0 R /XYZ 159.073 687.737 null] +>> +% 1751 0 obj +<< +/D [1747 0 R /XYZ 159.073 691.025 null] +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf +>> +% 1753 0 obj +<< +<<<<<<< HEAD:docs/psblas-3.6.pdf +/D [1716 0 R /XYZ 108.264 526.641 null] +======= +/D [1747 0 R /XYZ 159.073 680.066 null] +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf +>> +% 1754 0 obj +<< +<<<<<<< HEAD:docs/psblas-3.6.pdf /D [1716 0 R /XYZ 108.264 515.682 null] >> % 1738 0 obj << /D [1716 0 R /XYZ 108.264 504.723 null] +======= +/D [1747 0 R /XYZ 159.073 669.107 null] >> -% 1739 0 obj +% 1755 0 obj +<< +/D [1747 0 R /XYZ 159.073 658.148 null] +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf +>> +% 1756 0 obj << +<<<<<<< HEAD:docs/psblas-3.6.pdf /D [1716 0 R /XYZ 108.264 493.764 null] >> % 1740 0 obj @@ -22237,13 +37176,29 @@ stream % 1741 0 obj << /D [1716 0 R /XYZ 108.264 471.847 null] +======= +/D [1747 0 R /XYZ 159.073 647.189 null] >> -% 1742 0 obj +% 1757 0 obj +<< +/D [1747 0 R /XYZ 159.073 636.23 null] +>> +% 1758 0 obj +<< +/D [1747 0 R /XYZ 159.073 625.271 null] +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf +>> +% 1759 0 obj << +<<<<<<< HEAD:docs/psblas-3.6.pdf /D [1716 0 R /XYZ 108.264 460.888 null] +======= +/D [1747 0 R /XYZ 159.073 614.312 null] +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> -% 1743 0 obj +% 1760 0 obj << +<<<<<<< HEAD:docs/psblas-3.6.pdf /D [1716 0 R /XYZ 108.264 449.929 null] >> % 1744 0 obj @@ -22270,17 +37225,45 @@ stream /Resources 1746 0 R /MediaBox [0 0 595.276 841.89] /Parent 1745 0 R +======= +/D [1747 0 R /XYZ 159.073 603.353 null] >> -% 1749 0 obj +% 1761 0 obj +<< +/D [1747 0 R /XYZ 159.073 592.394 null] +>> +% 1762 0 obj +<< +/D [1747 0 R /XYZ 159.073 581.436 null] +>> +% 1763 0 obj +<< +/D [1747 0 R /XYZ 159.073 570.477 null] +>> +% 1764 0 obj +<< +/D [1747 0 R /XYZ 159.073 559.518 null] +>> +% 1765 0 obj << +/D [1747 0 R /XYZ 159.073 548.559 null] +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf +>> +% 1766 0 obj +<< +<<<<<<< HEAD:docs/psblas-3.6.pdf /D [1747 0 R /XYZ 149.705 753.953 null] >> % 485 0 obj << /D [1747 0 R /XYZ 150.705 724.062 null] +======= +/D [1747 0 R /XYZ 159.073 537.6 null] +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> -% 1750 0 obj +% 1767 0 obj << +<<<<<<< HEAD:docs/psblas-3.6.pdf /D [1747 0 R /XYZ 150.705 638.48 null] >> % 1751 0 obj @@ -22320,19 +37303,55 @@ stream << /Font << /F16 570 0 R /F27 572 0 R /F8 573 0 R >> /ProcSet [ /PDF /Text ] +======= +/D [1747 0 R /XYZ 159.073 526.641 null] >> -% 1759 0 obj +% 1768 0 obj +<< +/D [1747 0 R /XYZ 159.073 515.682 null] +>> +% 1769 0 obj +<< +/D [1747 0 R /XYZ 159.073 504.723 null] +>> +% 1770 0 obj +<< +/D [1747 0 R /XYZ 159.073 493.764 null] +>> +% 1771 0 obj +<< +/D [1747 0 R /XYZ 159.073 482.805 null] +>> +% 1772 0 obj << +/D [1747 0 R /XYZ 159.073 471.847 null] +>> +% 1773 0 obj +<< +/D [1747 0 R /XYZ 159.073 460.888 null] +>> +% 1774 0 obj +<< +/D [1747 0 R /XYZ 159.073 449.929 null] +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf +>> +% 1775 0 obj +<< +<<<<<<< HEAD:docs/psblas-3.6.pdf /Type /Page /Contents 1760 0 R /Resources 1758 0 R /MediaBox [0 0 595.276 841.89] /Parent 1745 0 R +======= +/D [1747 0 R /XYZ 159.073 438.97 null] +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> -% 1761 0 obj +% 1744 0 obj << -/D [1759 0 R /XYZ 149.705 753.953 null] +/D [1747 0 R /XYZ 194.261 394.492 null] >> +<<<<<<< HEAD:docs/psblas-3.6.pdf % 493 0 obj << /D [1759 0 R /XYZ 150.705 724.062 null] @@ -22344,18 +37363,28 @@ stream % 1763 0 obj << /D [1759 0 R /XYZ 150.705 638.48 null] +======= +% 1745 0 obj +<< +/D [1747 0 R /XYZ 200.884 149.223 null] +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> -% 1758 0 obj +% 1746 0 obj << +<<<<<<< HEAD:docs/psblas-3.6.pdf /Font << /F16 570 0 R /F27 572 0 R /F8 573 0 R >> +======= +/Font << /F53 1752 0 R /F46 1300 0 R /F8 585 0 R /F30 810 0 R >> +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf /ProcSet [ /PDF /Text ] >> -% 1765 0 obj +% 1777 0 obj << /Type /Page -/Contents 1766 0 R -/Resources 1764 0 R +/Contents 1778 0 R +/Resources 1776 0 R /MediaBox [0 0 595.276 841.89] +<<<<<<< HEAD:docs/psblas-3.6.pdf /Parent 1745 0 R >> % 1767 0 obj @@ -22834,11 +37863,26 @@ endobj 1812 0 obj << /Length 3364 +======= +/Parent 1743 0 R +>> +% 1779 0 obj +<< +/D [1777 0 R /XYZ 98.895 753.953 null] +>> + +endstream +endobj +1785 0 obj +<< +/Length 1412 +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> stream 0 g 0 G 0 g 0 G BT +<<<<<<< HEAD:docs/psblas-3.6.pdf /F16 11.9552 Tf 150.705 706.129 Td [(mm)]TJ ET q @@ -22872,12 +37916,34 @@ BT 0 g 0 G 0 g 0 G /F27 9.9626 Tf -86.502 -17.933 Td [(T)32(yp)-32(e:)]TJ +======= +/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)]TJ/F8 9.9626 Tf -55.726 -18.389 Td [(Prin)28(ts)-333(the)-334(error)-333(stac)28(k)-334(con)28(ten)28(t)-333(and)-334(ab)-27(orts)-334(execution)]TJ/F27 9.9626 Tf 1.377 -17.933 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 670.006 cm +[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +Q +BT +/F8 9.9626 Tf 206.228 669.807 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 -27.896 Td [(T)32(yp)-32(e:)]TJ +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 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 +<<<<<<< HEAD:docs/psblas-3.6.pdf 0 -19.925 Td [(b)]TJ 0 g 0 G /F8 9.9626 Tf 11.346 0 Td [(Rigth)-333(hand)-334(side\050s\051.)]TJ 13.56 -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(arra)27(y)-333(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 @@ -22898,19 +37964,33 @@ BT /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 [(138)]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.)]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.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(an)-334(in)28(teger.)]TJ +0 g 0 G + 139.476 -463.802 Td [(130)]TJ +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 0 g 0 G ET endstream endobj +<<<<<<< HEAD:docs/psblas-3.6.pdf 1818 0 obj << /Length 1212 +======= +1791 0 obj +<< +/Length 1641 +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> stream 0 g 0 G 0 g 0 G BT +<<<<<<< HEAD:docs/psblas-3.6.pdf /F16 14.3462 Tf 99.895 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)27(hn)1(iques:)]TJ 0 g 0 G /F14 9.9626 Tf 14.944 -19.925 Td [(\017)]TJ @@ -22922,19 +38002,72 @@ BT /F8 9.9626 Tf 9.963 0 Td [(Blo)-28(c)28(k)-333(Jacobi)-334(with)-333(ILU\0500\051)-333(factorization)]TJ -24.907 -19.925 Td [(The)-364(supp)-27(orting)-364(data)-364(t)28(yp)-27(e)-364(and)-364(subroutine)-363(in)28(terfaces)-364(are)-364(de\014ned)-363(in)-364(the)-364(mo)-27(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.595 0 Td [(psb_precinit)]TJ/F8 9.9626 Tf 67.41 0 Td [(and)]TJ/F30 9.9626 Tf 20.698 0 Td [(psb_precbld)]TJ/F8 9.9626 Tf 62.18 0 Td [(are)-466(still)]TJ -309.647 -11.955 Td [(supp)-28(orted)-333(for)-333(bac)27(kw)28(ard)-333(compatibilit)28(y)]TJ 0 g 0 G 164.384 -498.229 Td [(139)]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)]TJ/F8 9.9626 Tf -77.24 -18.389 Td [(Sets)-333(the)-334(v)28(erb)-28(osit)28(y)-333(of)-334(error)-333(messages)]TJ/F27 9.9626 Tf 1.377 -17.933 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 670.006 cm +[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +Q +BT +/F8 9.9626 Tf 156.223 669.807 Td [(s)-158(e)-157(t)]TJ +ET +q +1 0 0 1 173.764 670.006 cm +[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +Q +BT +/F8 9.9626 Tf 178.324 669.807 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 +0 g 0 G +/F27 9.9626 Tf -78.429 -27.896 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 [(v)]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.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(in)28(teger.)]TJ +0 g 0 G + 139.477 -463.802 Td [(131)]TJ +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 0 g 0 G ET endstream endobj +<<<<<<< HEAD:docs/psblas-3.6.pdf 1825 0 obj << /Length 5089 +======= +1797 0 obj +<< +/Length 2114 +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> stream 0 g 0 G 0 g 0 G BT +<<<<<<< HEAD:docs/psblas-3.6.pdf /F16 11.9552 Tf 150.705 706.129 Td [(init)-375(|)-375(Initialize)-375(a)-375(preconditioner)]TJ 0 g 0 G 0 g 0 G @@ -23010,19 +38143,86 @@ BT 0 g 0 G 0 g 0 G /F8 9.9626 Tf 149.14 -29.888 Td [(140)]TJ +======= +/F16 11.9552 Tf 150.705 706.129 Td [(8.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 [(set)]TJ +ET +q +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 +/F16 11.9552 Tf 227.945 706.129 Td [(erraction)]TJ/F8 9.9626 Tf -77.24 -18.389 Td [(Set)-333(the)-334(t)28(yp)-28(e)-333(of)-333(action)-334(to)-333(b)-28(e)-333(tak)28(en)-334(up)-27(on)-334(error)-333(condition)]TJ/F27 9.9626 Tf 1.377 -17.933 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 670.006 cm +[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +Q +BT +/F8 9.9626 Tf 207.072 669.807 Td [(s)-159(e)-158(t)]TJ +ET +q +1 0 0 1 224.638 670.006 cm +[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +Q +BT +/F8 9.9626 Tf 229.206 669.807 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 307.391 670.006 cm +[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +Q +BT +/F8 9.9626 Tf 311.973 669.807 Td [(a)-160(c)-160(t)-265(\051)]TJ +0 g 0 G +0 g 0 G +0 g 0 G +/F27 9.9626 Tf -161.268 -27.896 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 166.08 602.26 cm +[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S +Q +BT +/F27 9.9626 Tf 169.517 602.061 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.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.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 -463.802 Td [(132)]TJ +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 0 g 0 G ET endstream endobj +<<<<<<< HEAD:docs/psblas-3.6.pdf 1834 0 obj << /Length 7751 +======= +1803 0 obj +<< +/Length 537 +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> stream 0 g 0 G 0 g 0 G BT +<<<<<<< HEAD:docs/psblas-3.6.pdf /F16 11.9552 Tf 99.895 706.129 Td [(build)-375(|)-375(Builds)-375(a)-375(preconditioner)]TJ 0 g 0 G 0 g 0 G @@ -23031,12 +38231,24 @@ BT /F27 9.9626 Tf 0 -24.132 Td [(T)32(yp)-32(e:)]TJ 0 g 0 G /F8 9.9626 Tf 33.797 0 Td [(Sync)28(hronous.)]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 +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 0 g 0 G -/F27 9.9626 Tf -33.797 -22.879 Td [(On)-383(En)32(try)]TJ + -140.224 -581.915 Td [(133)]TJ 0 g 0 G +ET + +endstream +endobj +1809 0 obj +<< +/Length 4784 +>> +stream 0 g 0 G - 0 -22.879 Td [(a)]TJ 0 g 0 G +<<<<<<< HEAD:docs/psblas-3.6.pdf /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.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(,)-333(target.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(sparse)-333(matrix)-334(data)-333(structure)]TJ 0 0 1 rg 0 0 1 RG /F30 9.9626 Tf 194.05 0 Td [(psb)]TJ @@ -23060,10 +38272,53 @@ BT /F27 9.9626 Tf -294.484 -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.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)-222(as:)-389(an)-222(already)-222(initialized)-222(precondtioner)-222(data)-223(structure)]TJ +======= +BT +/F16 11.9552 Tf 150.705 706.129 Td [(9.1)-1588(h)32(b)]TJ +ET +q +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 +/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 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 +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 +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 0 0 1 rg 0 0 1 RG -/F30 9.9626 Tf 273.115 0 Td [(psb)]TJ +/F30 9.9626 Tf 170.915 0 Td [(psb)]TJ ET q +<<<<<<< HEAD:docs/psblas-3.6.pdf 1 0 0 1 414.236 510.11 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q @@ -23076,10 +38331,39 @@ q Q BT /F30 9.9626 Tf 442.061 509.91 Td [(type)]TJ +======= +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 +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 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 [(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 -/F27 9.9626 Tf -342.166 -34.833 Td [(desc)]TJ ET +<<<<<<< HEAD:docs/psblas-3.6.pdf q 1 0 0 1 121.81 475.276 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S @@ -23106,9 +38390,38 @@ BT /F30 9.9626 Tf 416.629 439.211 Td [(type)]TJ 0 g 0 G /F8 9.9626 Tf 20.921 0 Td [(.)]TJ +======= + +endstream +endobj +1816 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 145.908 706.328 cm +[]0 d 0 J 0.398 w 0 0 m 4.035 0 l S +Q +BT +/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 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 +0 g 0 G +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 0 g 0 G -/F27 9.9626 Tf -337.655 -22.879 Td [(amold)]TJ 0 g 0 G +<<<<<<< HEAD:docs/psblas-3.6.pdf /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.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(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 @@ -23238,9 +38551,205 @@ endobj /Length 1097 >> stream +======= +/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 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 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 +ET + +endstream +endobj +1823 0 obj +<< +/Length 3666 +>> +stream +0 g 0 G +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 204.563 706.328 cm +[]0 d 0 J 0.398 w 0 0 m 4.035 0 l S +Q +BT +/F16 11.9552 Tf 208.598 706.129 Td [(mat)]TJ +ET +q +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 +/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 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 +0 g 0 G +0 g 0 G +0 g 0 G +/F27 9.9626 Tf -74.805 -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.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 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 +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 [(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 -318.348 Td [(136)]TJ +0 g 0 G +ET + +endstream +endobj +1829 0 obj +<< +/Length 3717 +>> +stream +0 g 0 G +0 g 0 G +BT +/F16 11.9552 Tf 99.895 706.129 Td [(9.4)-1125(mm)]TJ +ET +q +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 +/F16 11.9552 Tf 157.788 706.129 Td [(arra)31(y)]TJ +ET +q +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 +/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 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 +0 g 0 G +0 g 0 G +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf +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 +<<<<<<< HEAD:docs/psblas-3.6.pdf BT /F27 9.9626 Tf 150.705 706.129 Td [(info)]TJ 0 g 0 G @@ -23257,23 +38766,38 @@ endobj /Length 5847 >> stream +======= +/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 +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 0 g 0 G +/F27 9.9626 Tf -96.195 -19.925 Td [(iunit)]TJ 0 g 0 G +<<<<<<< HEAD:docs/psblas-3.6.pdf BT /F16 11.9552 Tf 99.895 706.129 Td [(apply)-375(|)-375(Preconditioner)-375(application)-375(routine)]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 +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 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%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 -19.925 Td [(b)]TJ 0 g 0 G -/F8 9.9626 Tf 33.797 0 Td [(Sync)28(hronous.)]TJ +/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 -33.797 -19.926 Td [(On)-383(En)32(try)]TJ +/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 - 0 -19.925 Td [(prec)]TJ + 139.477 -294.437 Td [(137)]TJ 0 g 0 G +<<<<<<< HEAD:docs/psblas-3.6.pdf /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 @@ -23333,10 +38857,67 @@ BT /F27 9.9626 Tf 125.247 502.434 Td [(a)]TJ 0 g 0 G /F8 9.9626 Tf 10.551 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.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(comm)28(unication)-333(data)-334(structure)]TJ +======= +ET + +endstream +endobj +1836 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 204.563 706.328 cm +[]0 d 0 J 0.398 w 0 0 m 4.035 0 l S +Q +BT +/F16 11.9552 Tf 208.598 706.129 Td [(mat)]TJ +ET +q +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 +/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 199.787 668.014 cm +[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +Q +BT +/F8 9.9626 Tf 203.439 667.814 Td [(m)-67(a)-66(t)]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 +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 +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 +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 0 0 1 rg 0 0 1 RG -/F30 9.9626 Tf 201.08 0 Td [(psb)]TJ +/F30 9.9626 Tf 170.914 0 Td [(psb)]TJ ET q +<<<<<<< HEAD:docs/psblas-3.6.pdf 1 0 0 1 342.2 466.768 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q @@ -23351,20 +38932,44 @@ BT /F30 9.9626 Tf 370.026 466.569 Td [(type)]TJ 0 g 0 G /F8 9.9626 Tf 20.921 0 Td [(.)]TJ +======= +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 365.983 586.121 Td [(Tspmat)]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 +Q +BT +/F30 9.9626 Tf 401.131 586.121 Td [(type)]TJ +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 0 g 0 G -/F27 9.9626 Tf -291.052 -19.925 Td [(trans)]TJ +/F8 9.9626 Tf 20.921 0 Td [(.)]TJ 0 g 0 G +<<<<<<< HEAD:docs/psblas-3.6.pdf /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.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.)]TJ +======= +/F27 9.9626 Tf -271.347 -19.926 Td [(m)32(title)]TJ +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 0 g 0 G -/F27 9.9626 Tf -24.907 -19.925 Td [(w)32(ork)]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 +<<<<<<< HEAD:docs/psblas-3.6.pdf /F8 9.9626 Tf 29.432 0 Td [(an)-333(optional)-333(w)27(ork)-333(space)-333(Scop)-28(e:)]TJ/F27 9.9626 Tf 135.962 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.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(double)-333(precision)-333(arra)27(y)84(.)]TJ +======= +/F27 9.9626 Tf -24.906 -19.925 Td [(\014lename)]TJ +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 0 g 0 G -/F27 9.9626 Tf -24.907 -21.918 Td [(On)-383(Return)]TJ +/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 - 0 -19.925 Td [(y)]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 +<<<<<<< HEAD:docs/psblas-3.6.pdf /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.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 @@ -23391,25 +38996,42 @@ BT /F30 9.9626 Tf 401.438 277.279 Td [(type)]TJ 0 g 0 G /F8 9.9626 Tf 20.921 0 Td [(.)]TJ +======= +/F27 9.9626 Tf -316.425 -21.918 Td [(On)-383(Return)]TJ 0 g 0 G -/F27 9.9626 Tf -322.464 -19.926 Td [(info)]TJ +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf +0 g 0 G + 0 -19.925 Td [(iret)]TJ 0 g 0 G +<<<<<<< HEAD:docs/psblas-3.6.pdf /F8 9.9626 Tf 23.758 0 Td [(Error)-333(co)-28(de.)]TJ 1.149 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(out)]TJ/F8 9.9626 Tf 16.549 0 Td [(.)]TJ -50.035 -11.955 Td [(An)-333(in)28(tege)-1(r)-333(v)56(alue;)-334(0)-333(means)-333(no)-334(error)-333(has)-333(b)-28(een)-333(detecte)-1(d)1(.)]TJ 0 g 0 G 139.477 -119.095 Td [(143)]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 + 139.476 -262.557 Td [(138)]TJ +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 0 g 0 G ET endstream endobj +<<<<<<< HEAD:docs/psblas-3.6.pdf 1851 0 obj << /Length 2936 +======= +1842 0 obj +<< +/Length 3393 +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> stream 0 g 0 G 0 g 0 G BT +<<<<<<< HEAD:docs/psblas-3.6.pdf /F16 11.9552 Tf 150.705 706.129 Td [(descr)-375(|)-375(Prin)31(ts)-375(a)-375(description)-375(of)-375(curren)31(t)-375(preconditioner)]TJ 0 g 0 G 0 g 0 G @@ -23453,19 +39075,87 @@ BT /F8 9.9626 Tf 25.93 0 Td [(Pro)-28(cess)-333(from)-334(whic)28(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.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)-478(as:)-733(an)-478(in)28(teger)-478(n)28(um)27(b)-27(er)-478(b)-28(et)28(w)28(een)-478(0)-478(and)]TJ/F11 9.9626 Tf 220.073 0 Td [(np)]TJ/F14 9.9626 Tf 14.166 0 Td [(\000)]TJ/F8 9.9626 Tf 10.922 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(pri)1(n)27(t)-410(the)-410(description,)-429(or)]TJ/F14 9.9626 Tf 225 0 Td [(\000)]TJ/F8 9.9626 Tf 7.749 0 Td [(1,)-429(in)-411(whic)28(h)-410(case)-410(all)]TJ -232.749 -11.955 Td [(pro)-28(cesses)-333(will)-334(prin)28(t.)-444(Default:)-445(0.)]TJ 0 g 0 G 139.477 -352.221 Td [(144)]TJ +======= +/F16 11.9552 Tf 99.895 706.129 Td [(9.6)-1125(mm)]TJ +ET +q +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 +/F16 11.9552 Tf 157.788 706.129 Td [(arra)31(y)]TJ +ET +q +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 +/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 +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 [(139)]TJ +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 0 g 0 G ET endstream endobj +<<<<<<< HEAD:docs/psblas-3.6.pdf 1855 0 obj << /Length 989 +======= +1849 0 obj +<< +/Length 1215 +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> stream 0 g 0 G 0 g 0 G BT +<<<<<<< HEAD:docs/psblas-3.6.pdf /F16 11.9552 Tf 99.895 706.129 Td [(clone)-375(|)-375(clone)-375(curren)31(t)-375(preconditioner)]TJ 0 g 0 G 0 g 0 G @@ -23484,33 +39174,54 @@ BT 0 g 0 G /F27 9.9626 Tf -80.359 -33.873 Td [(On)-383(Return)]TJ 0 g 0 G +======= +/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 +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 0 g 0 G - 0 -19.925 Td [(precout)]TJ +/F14 9.9626 Tf 14.944 -19.925 Td [(\017)]TJ 0 g 0 G +<<<<<<< HEAD:docs/psblas-3.6.pdf /F8 9.9626 Tf 42.957 0 Td [(A)-333(cop)27(y)-333(of)-333(the)-334(in)1(put)-334(ob)-55(ject.)]TJ +======= +/F8 9.9626 Tf 9.962 0 Td [(Diagonal)-333(Scaling)]TJ +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 0 g 0 G -/F27 9.9626 Tf -42.957 -19.926 Td [(info)]TJ +/F14 9.9626 Tf -9.962 -19.926 Td [(\017)]TJ 0 g 0 G -/F8 9.9626 Tf 23.758 0 Td [(Return)-333(co)-28(de.)]TJ +/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 +<<<<<<< HEAD:docs/psblas-3.6.pdf 140.626 -449.854 Td [(145)]TJ +======= + 164.383 -498.229 Td [(140)]TJ +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 0 g 0 G ET endstream endobj +<<<<<<< HEAD:docs/psblas-3.6.pdf 1862 0 obj << /Length 2730 +======= +1855 0 obj +<< +/Length 5089 +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> stream 0 g 0 G 0 g 0 G BT +<<<<<<< HEAD:docs/psblas-3.6.pdf /F16 11.9552 Tf 150.705 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 +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 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 @@ -23519,8 +39230,9 @@ 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 +<<<<<<< HEAD:docs/psblas-3.6.pdf /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 -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 -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:)-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 @@ -23542,15 +39254,29 @@ BT /F8 9.9626 Tf 20.921 0 Td [(.)]TJ 0 g 0 G /F27 9.9626 Tf -287.509 -19.925 Td [(On)-383(Exit)]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 +/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 +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 0 g 0 G 0 g 0 G 0 -19.925 Td [(prec)]TJ 0 g 0 G +<<<<<<< HEAD:docs/psblas-3.6.pdf /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 [(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(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 +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 0 0 1 rg 0 0 1 RG /F30 9.9626 Tf 197.537 0 Td [(psb)]TJ ET q +<<<<<<< HEAD:docs/psblas-3.6.pdf 1 0 0 1 389.467 502.634 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q @@ -23563,9 +39289,24 @@ q Q BT /F30 9.9626 Tf 417.293 502.434 Td [(type)]TJ +======= +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 446.644 Td [(prec)]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 +Q +BT +/F30 9.9626 Tf 366.483 446.644 Td [(type)]TJ +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 0 g 0 G /F8 9.9626 Tf 20.921 0 Td [(.)]TJ 0 g 0 G +<<<<<<< HEAD:docs/psblas-3.6.pdf /F27 9.9626 Tf -287.509 -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.485 0 Td [(out)]TJ/F8 9.9626 Tf 16.549 0 Td [(.)]TJ -50.034 -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 @@ -23581,25 +39322,64 @@ endobj /Length 598 >> stream +======= +/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 +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 +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 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 +<<<<<<< HEAD:docs/psblas-3.6.pdf /F16 14.3462 Tf 99.895 706.129 Td [(11)-1125(Iterativ)31(e)-375(Metho)-31(ds)]TJ/F8 9.9626 Tf 0 -21.821 Td [(In)-519(this)-518(c)28(hapter)-519(w)28(e)-519(pro)28(vide)-519(routin)1(e)-1(s)-518(for)-519(preconditioners)-518(and)-519(iterativ)28(e)-519(meth-)]TJ 0 -11.955 Td [(o)-28(ds.)-647(The)-401(in)28(terfaces)-401(for)-401(Kryl)1(o)27(v)-401(subspace)-400(m)-1(etho)-27(ds)-401(are)-401(a)28(v)55(ailable)-400(in)-401(the)-401(mo)-28(dule)]TJ/F30 9.9626 Tf 0 -11.955 Td [(psb_krylov_mod)]TJ/F8 9.9626 Tf 73.225 0 Td [(.)]TJ 0 g 0 G 91.159 -569.96 Td [(147)]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 +0 g 0 G +/F8 9.9626 Tf 149.141 -29.888 Td [(141)]TJ +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 0 g 0 G ET endstream endobj +<<<<<<< HEAD:docs/psblas-3.6.pdf 1873 0 obj << /Length 8299 +======= +1864 0 obj +<< +/Length 7738 +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> stream 0 g 0 G 0 g 0 G BT +<<<<<<< HEAD:docs/psblas-3.6.pdf /F16 11.9552 Tf 150.705 706.129 Td [(psb)]TJ ET q @@ -23608,9 +39388,12 @@ q Q BT /F16 11.9552 Tf 175.796 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(vi)1(des)-343(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 +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 0 g 0 G -/F27 9.9626 Tf -14.944 -19.102 Td [(1)]TJ 0 g 0 G +<<<<<<< HEAD:docs/psblas-3.6.pdf /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)-333(is)-334(stopp)-28(ed)-333(when)]TJ/F11 9.9626 Tf 109.582 -26.078 Td [(er)-28(r)]TJ/F8 9.9626 Tf 16.95 0 Td [(=)]TJ/F14 9.9626 Tf 38.11 6.74 Td [(k)]TJ/F11 9.9626 Tf 4.981 0 Td [(r)]TJ/F10 6.9738 Tf 4.495 -1.495 Td [(i)]TJ/F14 9.9626 Tf 3.317 1.495 Td [(k)]TJ ET q @@ -23619,9 +39402,13 @@ q Q BT /F8 9.9626 Tf 299.658 611.815 Td [(\050)]TJ/F14 9.9626 Tf 3.875 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.693 -1.494 Td [(i)]TJ/F14 9.9626 Tf 3.317 1.494 Td [(k)]TJ/F8 9.9626 Tf 7.196 0 Td [(+)]TJ/F14 9.9626 Tf 9.962 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.838 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 +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 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 +<<<<<<< HEAD:docs/psblas-3.6.pdf /F8 9.9626 Tf 10.71 0 Td [(Relativ)28(e)-334(residual)-333(in)-333(the)-333(2-norm;)-334(the)-333(iteration)-333(is)-334(stopp)-27(ed)-334(when)]TJ/F11 9.9626 Tf 135.514 -26.078 Td [(er)-28(r)]TJ/F8 9.9626 Tf 16.95 0 Td [(=)]TJ/F14 9.9626 Tf 12.178 6.74 Td [(k)]TJ/F11 9.9626 Tf 4.981 0 Td [(r)]TJ/F10 6.9738 Tf 4.495 -1.495 Td [(i)]TJ/F14 9.9626 Tf 3.317 1.495 Td [(k)]TJ ET q @@ -23630,9 +39417,13 @@ q Q BT /F14 9.9626 Tf 325.59 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.433 8.328 Td [(<)-278(eps)]TJ +======= +/F8 9.9626 Tf 33.797 0 Td [(Sync)28(hronous.)]TJ +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 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 +<<<<<<< HEAD:docs/psblas-3.6.pdf /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.17 -26.078 Td [(er)-28(r)]TJ/F8 9.9626 Tf 16.949 0 Td [(=)]TJ/F14 9.9626 Tf 14.523 6.74 Td [(k)]TJ/F11 9.9626 Tf 4.981 0 Td [(r)]TJ/F10 6.9738 Tf 4.495 -1.495 Td [(i)]TJ/F14 9.9626 Tf 3.317 1.495 Td [(k)]TJ ET q @@ -23702,16 +39493,45 @@ BT /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 -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 385.981 580.809 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +Q +BT +/F30 9.9626 Tf 389.119 580.61 Td [(Tspmat)]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 +Q +BT +/F30 9.9626 Tf 424.267 580.61 Td [(type)]TJ +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf +0 g 0 G +/F8 9.9626 Tf 20.921 0 Td [(.)]TJ +0 g 0 G +<<<<<<< HEAD:docs/psblas-3.6.pdf /F27 9.9626 Tf -83.713 -19.513 Td [(a)]TJ 0 g 0 G /F8 9.9626 Tf 10.55 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.969 0 Td [(A)]TJ/F8 9.9626 Tf 7.472 0 Td [(.)]TJ -172.085 -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.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 -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 +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 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 +<<<<<<< HEAD:docs/psblas-3.6.pdf 1 0 0 1 362.845 137.958 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q @@ -23724,11 +39544,26 @@ q Q BT /F30 9.9626 Tf 401.131 137.759 Td [(type)]TJ +======= +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 468.184 509.91 Td [(prec)]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 +Q +BT +/F30 9.9626 Tf 492.871 509.91 Td [(type)]TJ +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 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 +<<<<<<< HEAD:docs/psblas-3.6.pdf 1 0 0 1 150.705 129.78 cm []0 d 0 J 0.398 w 0 0 m 137.482 0 l S Q @@ -23754,10 +39589,20 @@ BT /F27 9.9626 Tf 99.895 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.501 -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(structured)-333(data)-333(of)-334(t)28(yp)-28(e)]TJ +======= +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 +/F27 9.9626 Tf 176.057 475.077 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.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 +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 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 +<<<<<<< HEAD:docs/psblas-3.6.pdf 1 0 0 1 312.036 658.507 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q @@ -23770,11 +39615,26 @@ q Q BT /F30 9.9626 Tf 339.861 658.308 Td [(type)]TJ +======= +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 442.751 439.211 Td [(desc)]TJ +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 +BT +/F30 9.9626 Tf 467.438 439.211 Td [(type)]TJ +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 0 g 0 G /F8 9.9626 Tf 20.921 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 +<<<<<<< HEAD:docs/psblas-3.6.pdf /F8 9.9626 Tf 11.347 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.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(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 @@ -23801,9 +39661,41 @@ BT /F30 9.9626 Tf 401.438 588.285 Td [(type)]TJ 0 g 0 G /F8 9.9626 Tf 20.921 0 Td [(.)]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 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 398.417 368.512 Td [(T)]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 +Q +BT +/F30 9.9626 Tf 407.413 368.512 Td [(base)]TJ +ET +q +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 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 +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 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 +<<<<<<< HEAD:docs/psblas-3.6.pdf /F8 9.9626 Tf 11.028 0 Td [(The)-333(initial)-334(guess.)]TJ 13.879 -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)-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 @@ -23932,42 +39824,396 @@ stream % 1780 0 obj << /D [1776 0 R /XYZ 99.895 679.769 null] ->> -% 1775 0 obj -<< -/Font << /F16 570 0 R /F27 572 0 R /F8 573 0 R /F30 784 0 R >> -/ProcSet [ /PDF /Text ] ->> -% 1785 0 obj -<< -/Type /Page -/Contents 1786 0 R -/Resources 1784 0 R -/MediaBox [0 0 595.276 841.89] -/Parent 1782 0 R -/Annots [ 1783 0 R ] ->> -% 1783 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) >> ->> -% 1787 0 obj -<< -/D [1785 0 R /XYZ 149.705 753.953 null] ->> -% 509 0 obj +======= +/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 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 398.417 297.812 Td [(T)]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 +Q +BT +/F30 9.9626 Tf 407.413 297.812 Td [(base)]TJ +ET +q +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 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 +/F27 9.9626 Tf -327.004 -22.878 Td [(imold)]TJ +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 +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 +Q +BT +/F30 9.9626 Tf 428.61 227.113 Td [(T)]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 +Q +BT +/F30 9.9626 Tf 437.606 227.113 Td [(base)]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 +Q +BT +/F30 9.9626 Tf 462.293 227.113 Td [(vect)]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 +Q +BT +/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 -357.196 -24.133 Td [(On)-383(Return)]TJ +0 g 0 G +0 g 0 G + 0 -22.879 Td [(prec)]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 +0 0 1 rg 0 0 1 RG +/F30 9.9626 Tf 194.77 0 Td [(psb)]TJ +ET +q +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 389.838 132.281 Td [(prec)]TJ +ET +q +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 414.525 132.281 Td [(type)]TJ +0 g 0 G +0 g 0 G +/F8 9.9626 Tf -99.437 -41.843 Td [(142)]TJ +0 g 0 G +ET + +endstream +endobj +1868 0 obj << -/D [1785 0 R /XYZ 150.705 720.077 null] +/Length 1094 >> -% 1788 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 [(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 +1876 0 obj << -/D [1785 0 R /XYZ 150.705 677.445 null] +/Length 5862 >> -% 1789 0 obj +stream +0 g 0 G +0 g 0 G +BT +/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 +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 +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 +/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 +/F8 9.9626 Tf 20.922 0 Td [(.)]TJ +0 g 0 G +/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 +/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 +/F8 9.9626 Tf 20.922 0 Td [(.)]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 +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 +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 [(y)]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 +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 +/F8 9.9626 Tf 20.922 0 Td [(.)]TJ +0 g 0 G +/F27 9.9626 Tf -322.464 -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 + 139.477 -119.095 Td [(144)]TJ +0 g 0 G +ET + +endstream +endobj +1881 0 obj +<< +/Length 2992 +>> +stream +0 g 0 G +0 g 0 G +BT +/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 +0 g 0 G +/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 +/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.926 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.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 +/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.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 +/F27 9.9626 Tf -24.907 -19.925 Td [(ro)-32(ot)]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.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 + 139.477 -338.273 Td [(145)]TJ +0 g 0 G +ET + +endstream +endobj +1782 0 obj +<< +/Type /ObjStm +/N 100 +/First 967 +/Length 10032 +>> +stream +497 0 1780 57 1781 115 1776 173 1784 266 1786 384 501 443 1787 501 1788 560 1783 619 +1790 712 1792 830 505 888 1793 945 1794 1003 1789 1061 1796 1154 1798 1272 509 1331 1799 1389 +1800 1448 1795 1507 1802 1613 1804 1731 513 1789 1801 1846 1808 1939 1806 2078 1810 2222 517 2281 +1811 2339 1812 2398 1807 2457 1815 2563 1813 2702 1817 2846 521 2904 1818 2961 1819 3019 1814 3077 +1822 3183 1820 3322 1824 3466 525 3525 1825 3583 1826 3642 1821 3701 1828 3807 1830 3925 529 3983 +1831 4040 1832 4098 1827 4156 1835 4262 1833 4401 1837 4544 533 4603 1838 4661 1839 4720 1834 4779 +1841 4885 1843 5003 537 5061 1844 5118 1845 5176 1840 5234 1848 5340 1850 5458 541 5517 1847 5575 +1854 5681 1851 5829 1852 5976 1856 6126 545 6184 1857 6241 1853 6299 1863 6456 1858 6622 1859 6765 +1860 6909 1861 7056 1865 7203 549 7262 1862 7320 1867 7426 1869 7544 1866 7602 1875 7695 1870 7861 +1871 8007 1872 8150 1873 8297 1877 8441 553 8500 1874 8558 1880 8664 1878 8803 1882 8950 557 9008 +% 497 0 obj +<< +/D [1777 0 R /XYZ 99.895 716.092 null] +>> +% 1780 0 obj +<< +/D [1777 0 R /XYZ 99.895 681.762 null] +>> +% 1781 0 obj +<< +/D [1777 0 R /XYZ 99.895 681.762 null] +>> +% 1776 0 obj +<< +/Font << /F16 582 0 R /F8 585 0 R /F27 584 0 R >> +/ProcSet [ /PDF /Text ] +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf +>> +% 1784 0 obj +<< +/Font << /F16 570 0 R /F27 572 0 R /F8 573 0 R /F30 784 0 R >> +/ProcSet [ /PDF /Text ] +>> +% 1785 0 obj +<< +/Type /Page +<<<<<<< HEAD:docs/psblas-3.6.pdf +/Contents 1786 0 R +/Resources 1784 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1782 0 R +/Annots [ 1783 0 R ] +>> +% 1783 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) >> +>> +% 1787 0 obj +<< +/D [1785 0 R /XYZ 149.705 753.953 null] +>> +% 509 0 obj +<< +/D [1785 0 R /XYZ 150.705 720.077 null] +>> +% 1788 0 obj +<< +/D [1785 0 R /XYZ 150.705 677.445 null] +>> +% 1789 0 obj << /D [1785 0 R /XYZ 150.705 679.769 null] >> @@ -24053,10 +40299,128 @@ stream /Annots [ 1803 0 R ] >> % 1803 0 obj +======= +/Contents 1785 0 R +/Resources 1783 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1743 0 R +>> +% 1786 0 obj +<< +/D [1784 0 R /XYZ 149.705 753.953 null] +>> +% 501 0 obj +<< +/D [1784 0 R /XYZ 150.705 716.092 null] +>> +% 1787 0 obj +<< +/D [1784 0 R /XYZ 150.705 681.762 null] +>> +% 1788 0 obj +<< +/D [1784 0 R /XYZ 150.705 681.762 null] +>> +% 1783 0 obj +<< +/Font << /F16 582 0 R /F8 585 0 R /F27 584 0 R >> +/ProcSet [ /PDF /Text ] +>> +% 1790 0 obj +<< +/Type /Page +/Contents 1791 0 R +/Resources 1789 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1743 0 R +>> +% 1792 0 obj +<< +/D [1790 0 R /XYZ 98.895 753.953 null] +>> +% 505 0 obj +<< +/D [1790 0 R /XYZ 99.895 716.092 null] +>> +% 1793 0 obj +<< +/D [1790 0 R /XYZ 99.895 679.825 null] +>> +% 1794 0 obj +<< +/D [1790 0 R /XYZ 99.895 681.762 null] +>> +% 1789 0 obj +<< +/Font << /F16 582 0 R /F8 585 0 R /F27 584 0 R >> +/ProcSet [ /PDF /Text ] +>> +% 1796 0 obj +<< +/Type /Page +/Contents 1797 0 R +/Resources 1795 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1743 0 R +>> +% 1798 0 obj +<< +/D [1796 0 R /XYZ 149.705 753.953 null] +>> +% 509 0 obj +<< +/D [1796 0 R /XYZ 150.705 716.092 null] +>> +% 1799 0 obj +<< +/D [1796 0 R /XYZ 150.705 679.825 null] +>> +% 1800 0 obj +<< +/D [1796 0 R /XYZ 150.705 681.762 null] +>> +% 1795 0 obj +<< +/Font << /F16 582 0 R /F8 585 0 R /F27 584 0 R /F30 810 0 R >> +/ProcSet [ /PDF /Text ] +>> +% 1802 0 obj +<< +/Type /Page +/Contents 1803 0 R +/Resources 1801 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1805 0 R +>> +% 1804 0 obj +<< +/D [1802 0 R /XYZ 98.895 753.953 null] +>> +% 513 0 obj +<< +/D [1802 0 R /XYZ 99.895 716.092 null] +>> +% 1801 0 obj +<< +/Font << /F16 582 0 R /F8 585 0 R /F30 810 0 R >> +/ProcSet [ /PDF /Text ] +>> +% 1808 0 obj +<< +/Type /Page +/Contents 1809 0 R +/Resources 1807 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1805 0 R +/Annots [ 1806 0 R ] +>> +% 1806 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] +<<<<<<< HEAD:docs/psblas-3.6.pdf /Rect [294.721 582.91 372.239 594.035] /A << /S /GoTo /D (spdata) >> >> @@ -24071,9 +40435,123 @@ stream % 1808 0 obj << /D [1805 0 R /XYZ 99.895 679.769 null] +======= +/Rect [345.53 449.411 423.049 460.536] +/A << /S /GoTo /D (spdata) >> +>> +% 1810 0 obj +<< +/D [1808 0 R /XYZ 149.705 753.953 null] +>> +% 517 0 obj +<< +/D [1808 0 R /XYZ 150.705 716.092 null] +>> +% 1811 0 obj +<< +/D [1808 0 R /XYZ 150.705 677.445 null] +>> +% 1812 0 obj +<< +/D [1808 0 R /XYZ 150.705 679.769 null] +>> +% 1807 0 obj +<< +/Font << /F16 582 0 R /F27 584 0 R /F8 585 0 R /F30 810 0 R >> +/ProcSet [ /PDF /Text ] +>> +% 1815 0 obj +<< +/Type /Page +/Contents 1816 0 R +/Resources 1814 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1805 0 R +/Annots [ 1813 0 R ] +>> +% 1813 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) >> +>> +% 1817 0 obj +<< +/D [1815 0 R /XYZ 98.895 753.953 null] +>> +% 521 0 obj +<< +/D [1815 0 R /XYZ 99.895 716.092 null] +>> +% 1818 0 obj +<< +/D [1815 0 R /XYZ 99.895 677.445 null] +>> +% 1819 0 obj +<< +/D [1815 0 R /XYZ 99.895 679.769 null] +>> +% 1814 0 obj +<< +/Font << /F16 582 0 R /F27 584 0 R /F8 585 0 R /F30 810 0 R >> +/ProcSet [ /PDF /Text ] +>> +% 1822 0 obj +<< +/Type /Page +/Contents 1823 0 R +/Resources 1821 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1805 0 R +/Annots [ 1820 0 R ] +>> +% 1820 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) >> +>> +% 1824 0 obj +<< +/D [1822 0 R /XYZ 149.705 753.953 null] +>> +% 525 0 obj +<< +/D [1822 0 R /XYZ 150.705 716.092 null] +>> +% 1825 0 obj +<< +/D [1822 0 R /XYZ 150.705 679.769 null] +>> +% 1826 0 obj +<< +/D [1822 0 R /XYZ 150.705 679.769 null] +>> +% 1821 0 obj +<< +/Font << /F16 582 0 R /F27 584 0 R /F8 585 0 R /F30 810 0 R >> +/ProcSet [ /PDF /Text ] +>> +% 1828 0 obj +<< +/Type /Page +/Contents 1829 0 R +/Resources 1827 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1805 0 R +>> +% 1830 0 obj +<< +/D [1828 0 R /XYZ 98.895 753.953 null] +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> % 1809 0 obj << +<<<<<<< HEAD:docs/psblas-3.6.pdf /D [1805 0 R /XYZ 99.895 679.769 null] >> % 1804 0 obj @@ -24096,9 +40574,47 @@ stream % 525 0 obj << /D [1811 0 R /XYZ 150.705 720.077 null] +======= +/D [1828 0 R /XYZ 99.895 716.092 null] +>> +% 1831 0 obj +<< +/D [1828 0 R /XYZ 99.895 679.769 null] +>> +% 1832 0 obj +<< +/D [1828 0 R /XYZ 99.895 679.769 null] +>> +% 1827 0 obj +<< +/Font << /F16 582 0 R /F27 584 0 R /F8 585 0 R /F30 810 0 R >> +/ProcSet [ /PDF /Text ] +>> +% 1835 0 obj +<< +/Type /Page +/Contents 1836 0 R +/Resources 1834 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1805 0 R +/Annots [ 1833 0 R ] +>> +% 1833 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) >> +>> +% 1837 0 obj +<< +/D [1835 0 R /XYZ 149.705 753.953 null] +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> % 1814 0 obj << +<<<<<<< HEAD:docs/psblas-3.6.pdf /D [1811 0 R /XYZ 150.705 679.769 null] >> % 1815 0 obj @@ -24183,18 +40699,103 @@ stream /Annots [ 1828 0 R 1829 0 R 1830 0 R 1831 0 R ] >> % 1828 0 obj +======= +/D [1835 0 R /XYZ 150.705 716.092 null] +>> +% 1838 0 obj +<< +/D [1835 0 R /XYZ 150.705 679.769 null] +>> +% 1839 0 obj +<< +/D [1835 0 R /XYZ 150.705 679.769 null] +>> +% 1834 0 obj +<< +/Font << /F16 582 0 R /F27 584 0 R /F8 585 0 R /F30 810 0 R >> +/ProcSet [ /PDF /Text ] +>> +% 1841 0 obj +<< +/Type /Page +/Contents 1842 0 R +/Resources 1840 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1846 0 R +>> +% 1843 0 obj +<< +/D [1841 0 R /XYZ 98.895 753.953 null] +>> +% 537 0 obj +<< +/D [1841 0 R /XYZ 99.895 716.092 null] +>> +% 1844 0 obj +<< +/D [1841 0 R /XYZ 99.895 679.769 null] +>> +% 1845 0 obj +<< +/D [1841 0 R /XYZ 99.895 679.769 null] +>> +% 1840 0 obj +<< +/Font << /F16 582 0 R /F27 584 0 R /F8 585 0 R /F30 810 0 R >> +/ProcSet [ /PDF /Text ] +>> +% 1848 0 obj +<< +/Type /Page +/Contents 1849 0 R +/Resources 1847 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1846 0 R +>> +% 1850 0 obj +<< +/D [1848 0 R /XYZ 149.705 753.953 null] +>> +% 541 0 obj +<< +/D [1848 0 R /XYZ 150.705 716.092 null] +>> +% 1847 0 obj +<< +/Font << /F16 582 0 R /F8 585 0 R /F14 813 0 R /F30 810 0 R >> +/ProcSet [ /PDF /Text ] +>> +% 1854 0 obj +<< +/Type /Page +/Contents 1855 0 R +/Resources 1853 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1846 0 R +/Annots [ 1851 0 R 1852 0 R ] +>> +% 1851 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] +<<<<<<< HEAD:docs/psblas-3.6.pdf /Rect [317.856 577.4 395.375 588.524] /A << /S /GoTo /D (spdata) >> >> % 1829 0 obj +======= +/Rect [321.343 443.433 388.401 454.558] +/A << /S /GoTo /D (precdata) >> +>> +% 1852 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] +<<<<<<< HEAD:docs/psblas-3.6.pdf /Rect [396.921 506.7 463.979 517.825] /A << /S /GoTo /D (precdata) >> >> @@ -24254,34 +40855,88 @@ stream /Annots [ 1840 0 R 1841 0 R 1842 0 R 1843 0 R ] >> % 1840 0 obj +======= +/Rect [168.831 354.046 175.293 366.086] +/A << /S /GoTo /D (Hfootnote.4) >> +>> +% 1856 0 obj +<< +/D [1854 0 R /XYZ 98.895 753.953 null] +>> +% 545 0 obj +<< +/D [1854 0 R /XYZ 99.895 716.092 null] +>> +% 1857 0 obj +<< +/D [1854 0 R /XYZ 115.138 129.79 null] +>> +% 1853 0 obj +<< +/Font << /F16 582 0 R /F30 810 0 R /F27 584 0 R /F8 585 0 R /F11 796 0 R /F7 811 0 R /F32 814 0 R /F31 816 0 R >> +/ProcSet [ /PDF /Text ] +>> +% 1863 0 obj +<< +/Type /Page +/Contents 1864 0 R +/Resources 1862 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1846 0 R +/Annots [ 1858 0 R 1859 0 R 1860 0 R 1861 0 R ] +>> +% 1858 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] +<<<<<<< HEAD:docs/psblas-3.6.pdf /Rect [321.343 574.94 388.401 586.065] /A << /S /GoTo /D (precdata) >> >> % 1841 0 obj +======= +/Rect [368.666 577.4 446.184 588.524] +/A << /S /GoTo /D (spdata) >> +>> +% 1859 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] +<<<<<<< HEAD:docs/psblas-3.6.pdf /Rect [347.301 519.15 423.355 530.274] /A << /S /GoTo /D (vdata) >> >> % 1842 0 obj +======= +/Rect [447.73 506.7 514.788 517.825] +/A << /S /GoTo /D (precdata) >> +>> +% 1860 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] +<<<<<<< HEAD:docs/psblas-3.6.pdf /Rect [324.885 463.359 391.943 474.484] /A << /S /GoTo /D (descdata) >> >> % 1843 0 obj +======= +/Rect [422.298 436.001 489.356 447.126] +/A << /S /GoTo /D (descdata) >> +>> +% 1861 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] +<<<<<<< HEAD:docs/psblas-3.6.pdf /Rect [347.301 274.069 423.355 285.194] /A << /S /GoTo /D (vdata) >> >> @@ -24605,83 +41260,1734 @@ ET endstream endobj -1904 0 obj +1904 0 obj +<< +/Length 3124 +>> +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 [(152)]TJ +0 g 0 G +ET + +endstream +endobj +1927 0 obj +======= +/Rect [369.385 129.071 436.443 140.196] +/A << /S /GoTo /D (precdata) >> +>> +% 1865 0 obj +<< +/D [1863 0 R /XYZ 149.705 753.953 null] +>> +% 549 0 obj +<< +/D [1863 0 R /XYZ 150.705 716.092 null] +>> +% 1862 0 obj +<< +/Font << /F16 582 0 R /F30 810 0 R /F27 584 0 R /F8 585 0 R >> +/ProcSet [ /PDF /Text ] +>> +% 1867 0 obj +<< +/Type /Page +/Contents 1868 0 R +/Resources 1866 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1846 0 R +>> +% 1869 0 obj +<< +/D [1867 0 R /XYZ 98.895 753.953 null] +>> +% 1866 0 obj +<< +/Font << /F27 584 0 R /F8 585 0 R /F30 810 0 R >> +/ProcSet [ /PDF /Text ] +>> +% 1875 0 obj +<< +/Type /Page +/Contents 1876 0 R +/Resources 1874 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1846 0 R +/Annots [ 1870 0 R 1871 0 R 1872 0 R 1873 0 R ] +>> +% 1870 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) >> +>> +% 1871 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) >> +>> +% 1872 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) >> +>> +% 1873 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) >> +>> +% 1877 0 obj +<< +/D [1875 0 R /XYZ 149.705 753.953 null] +>> +% 553 0 obj +<< +/D [1875 0 R /XYZ 150.705 716.092 null] +>> +% 1874 0 obj +<< +/Font << /F16 582 0 R /F30 810 0 R /F27 584 0 R /F8 585 0 R >> +/ProcSet [ /PDF /Text ] +>> +% 1880 0 obj +<< +/Type /Page +/Contents 1881 0 R +/Resources 1879 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1883 0 R +/Annots [ 1878 0 R ] +>> +% 1878 0 obj +<< +/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) >> +>> +% 1882 0 obj +<< +/D [1880 0 R /XYZ 98.895 753.953 null] +>> +% 557 0 obj +<< +/D [1880 0 R /XYZ 99.895 716.092 null] +>> + +endstream +endobj +1887 0 obj +<< +/Length 998 +>> +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 +1893 0 obj +<< +/Length 2736 +>> +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 +1897 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 +1904 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 +1916 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 +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 +1921 0 obj +<< +/Length 4693 +>> +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 +1926 0 obj +<< +/Length 80 +>> +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 +1930 0 obj +<< +/Length 7014 +>> +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 +1938 0 obj +<< +/Length 3124 +>> +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 +1961 0 obj +<< +/Length1 2422 +/Length2 20069 +/Length3 0 +/Length 22491 +>> +stream +%!PS-AdobeFont-1.0: CMBX10 003.002 +%%Title: CMBX10 +%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 CMBX10. +% 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/CMBX10 known{/CMBX10 findfont dup/UniqueID known{dup +/UniqueID get 5000768 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 /RAJOBS+CMBX10 def +/FontBBox {-56 -250 1164 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 CMBX10.) readonly def +/FullName (CMBX10) 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 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 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 90 /Z 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 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 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 +dup 111 /o put +dup 49 /one put +dup 112 /p put +dup 46 /period put +dup 113 /q 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 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×{¨¦Œß=מ7‰ÈÚ„Ä’ÕKV"~Pr„©-=›€L¿$ÀŸwc›rlVcÏN &'³{…%¨Gf“®#ɨ_iùý#S’Xd+½ÁÀìîU¿*|’:1çÎmö=â¾~6üù/«aÑGL•fÞ#ÚNOÒÍS¡}ERÉs´¤{[Åÿ¡.¦÷-jj‡|¦tm\Þ:Ä x8PÎûbP´è“ïíý¥¿hÉ[µ°õƒÐ_¾9ˆãÐt2þ3“¶7ñ„,I2Bí«8ÈJ˜ß0ÕmsUWÐQúdXì!ÑÅ?Óý¾íª?ÛQîì4íeR‹H ]ÓŠ.™p_ÐÍ?œä8îž:oé:·Uu¤D“Z[m™^/ÈaµÓÜæÖ4—µlô4È’ÕåtL<~&Wš…¬wLa9gPÁqháQ€šÎ Àjv®Ñ)…ï]s±qR"ýЯDž#üeîÀ·•ùýZKPHð‘rF›<÷EJ¢²ûš;àÑ.N~ë©€VÓ°qLJ+_ÑjÓ´â +tþYvKÙ¢½e\u™LðQqŽ"«ž£tì–Éw;*Ñåˆl5 ¿ FF BWäú1…S!þŤ2*µìÔÍ`Œ8:XºòlU«¸„I¢ô?[w«âÌc &Zç`§Ñ©Ÿ¾Þ° sdHeF¦—'¸*sæè ÒÐTd9ÔBaऋ‚…Ú[ŽÌa‘$–g²1»üf\è•0é 7íaRÏ^(šüLj#Ë!mwÞ2»#»nËrá$|‹ÿÑTíL”“]Ð{«X§`ÿú4Å.G•w¶¬äÛ|Pø2BêgÜ´wóbkÀF°ž N¬§fj;Žd?#l"+6ì«Âgæ{ùõ*ùÞîí—Ñ ,SQä2¦»¢û¬&'¨n­\`²]Q‹„ƒ:èâݹÂ6ln0b9†m]¼ðñ,ë/Ú¨¥\Y$6[+UEŠ#ƸŒM¡Oì( ϲ.DüáL¯âª\õ*á@øz3'§¦&Е6¦„ð2—ÜŠ¿%+(•ôšk€`²Dßþ/²È•k(É’Žk˜p¯t`ö^éBÃú‡âÕ±\H~êY_ö©Ë’´þûc%À~(!Ú +Jv×s}˜Ç9qÖwæÐà{ã 6†®ÎsΓM„™ ø&Q-Ãp‚ç'‰&Š™M&²7´¹–tZßû\r|5•M§¸5"³‚*¾¯¿ìÚê<°ŒÎ•DŽŒ³,»Lófj+”‘ìʾ½¿ËöëŸÉ"x0Â÷h#«ßu[@Ú}áèÙ"Öƒ +ÉdI‘E* , j¿æ]æÅv.Átx¹© ï’kEÁYl¢¯¦}d‡.-eJ ç³ÇõC•¦=©KãµD jn¯I"yX‡ ÜD¶|ø&¼¡ˆÃõk>èi¼ÂÙìx°Œëb¹uÂ?¦†Ñ±’È ,™ïV¹szÀ•üåAc » GÓ ¢Æßà7HŸ »`ÄŽ¼'Ķ)r +ºâ¶ÒŽ³ŸGÉÖ¯¥¢Z~›Cç— +‹U. E‹C»á3Ÿ}Öhen–ħâE‘¬!ùCü[xÌÍx®nÂCq#µ#Tiº.ôiøW×/ñiå*ƒ?K`ÚÉž¡ÄÙýÿ}ég;ο‘²¬“@¤½Œ>ÖH¯€¬Áëûùï©Ûmn9Ì1™ú-‡÷å û©[’¬íÅ Ã çtj7 3ÅMÝyâz¦„æ,á?Zð·@æúRPBi>óäÐë¥ïìÛvˆVFÕ\Ahk±o˜¶®àœ8™ïï*¿Æ‰NIQv§94z»ÿ‰4×÷m n8)Dêßb]ÇÙžÿ<ïÍU(gåõØùÞ(¤`O2—‹¹ý¤Ûzb30ã Ëõ-TV°{¼¯ ø_Hï‹^‡[¾elBÇââ —Žü4ŒNñ… äÀúˆ¹>>¿=eŸ§3Q“Ð-š'0yÑßí©ŸŽ#õJW 0ß݈7\û…tð5®Ü3”=ŽÃμغ¨ÂÖ|[Ršá±>5I„ªr·õ xh®hy!ãkVËSÈ®7‡I øThÈaT“õÝoëÉ÷„Ž(® WdsUIø=ï]úÓ™M|Óš‘dJø\YªR«Gy€·4d(ßNã¸{"lù\Š ]kÈ®8V +™øïðAï==Ïørõ Vä^ö*åmxõ(e÷¬ò=\ÆÊ°!ùþ ÃB¶žb8€Ð¹ÑX Ö™M©°½´Œ­اâi +pŽà˜‹)Çrï©  ~äÝ1óš Âך<;d,¯^Ó6¥åf,PÀpΨ|ð®k¼R8º7µô>i ˆˆ¶±e ^¿„³œNÒ¢@»°hè`¯[BF‡¾Þ,L%ÔmUœ¼è´Be€¼*$°noxá3K õÂóV$¾[¢[ÁŒý…˜fU;4þ‹²žQj¹ó’ú„³‘Šg»‡g—ßoÞÜ !%UÀ¼h‰¥©»Ü(Ô 2õè¹×Ÿ³¿±ƒ¢§, á´à™½O[Ј’Î_\?ŽWtË<È…/;¹ µ"æR­mÝ®Ÿ›)®ö©›EŽ\rÈW1 ÁÓÑ’o”¥ÐyãÖ‰Ù)BÌŠð\¾@ÚgéŒÏJ?m EqqÙ”„ô84^ÖÑÊâ¿ÑDŸ¶aü97 㤸ÀÐ{­É§›«Z!´_`-rÚlÙ*ï»q‚›žäٺ؊¡t LCgÒ +:nbJ ˆúLºÄq”Çrçj5^Ä9ªNRV³Jç­7eàòn²%ìáÏ°YÆ•uÈtÖ–Ûˆ4Ƹ‹ãF΋ėŠv’Q‡ÉjŸþ’ú®6%žc€#¤Ç~µ —ŠËOæ eÒ‰‘‡'aÙS1šòÏe‡ æÂF u s^i"éê…y´w,”µƒ~ Cð¥’~âRÆ’`¼,ýj"ƒ+ÙȬKk Q5‰œÊIƒªjËüE†ñbT)"†³>µwéÝvû³á|$.4ê“*@Ós?Û +iøˆÏp´bÅâ\r 9A«ÃàZ<ùv+ªÊ¯LC仕Î+¨Û8–ùy‹.xCÒÙÆŸ&‚¿U¨•}Ù\IåˆrÊúÊJg Àá:æÛD?©Ê ’(›òÁ.–ì5XR `/Ûú½¨{9`®8à‹âÄÚFD&L‚Ì|_Õþ.ɬ ’vaêàSå—;7U%Ìk;ãL BB`îtk¤} EÂåµ€\ˆHR ÆÍ"F™êíX°‡|ÜyÏïu~åQh«k¿v4VÓ¤ éKWºÎ8ñ¨”Â3ŽûÕYü^Ø‘-íNÙ(}˜} Õ“.ó‘Wi«a¤Ò„=wƒ§?«~ÌœZ4¬ îîµïNÍ>x;ÞÉ +§~ˆœc/ HèÏ«+ŽÌ%Bmé¶-7Ð žSš2ïý†*ñÅE”Çoq;¿ˆÕ»Ï/掺6ê[¨ LÖîo¸Á·T òÜ©¡F‰”²>=¼ñØ8ð¶Š$žŸdå‹�Ñoø”tu[´ÓQÍÌûEUÇ!ÅË\ÞswEÿóø¬¯Ùì6º«W× †Q8 í³< %xl&§ +Öô­î~Bhâ=àF´¢ß"2\¹],äÓ±@re(¨lFç*ÅŠY7üÙÚØ`¤ ±pS?%¸i|Ë‹ùt|[÷b<ù7M=ùœÒ7sÉÐnµ‚жѪw24Þ×…Àd/bîD~[)¯ùg4§¡3èýÝG&/pNƒÂ%•Ù;­¼t“æ —:Œpèê êùÂ}wMš/{ ¥Ï¬€£0.b©—ãj!ZãŽ@<‹¤æ ‚öþzyÖlÔ)ÿý"² ÛðõK¡ÏãƒÀÝUmoÒ™îÙ2¤c—})€ãçz“à:<±÷ïõÛ„Fù  oÂðŃ©žäèGLyÊTÚ7òÿ¦;ß¿··$äñ^Π>,Yœ.FûÜ”¤šŸ%”Gúj¾,&îU&ÎS¬ª0Ꙍ«˜S­Íg¾\ã¸ÂûŠ™ëÝÑ+h8.‡!ɧ´?‘ÿ4}+ÅÌÉô¡˜ïdCÌÖ¡;öëGľ°£€¤ÆÅZ#A´’¡©³ïÒeqE¹>¿RLª ‚þ€KØ@$|ÙDW­™‹Óô/PN³^Е3*0KõäéÄýÜÆ·)}Ó®JéMg"Ò$5ú8ñ_¾g«Cs2Cµ7,KŸÕž?λÎÏ) æ•ˆ4Þ úÜ1#Âoº«–¹·IXcP÷Ø~‰·1 £éaò‚ä^¥Å4ýÉ6Ó”)jO¦Úa Äa ^oyý^ «Ò&9ß—‰õçÇ«%¢¿<mLÃLNã9÷y‰ë³Á†ì a×)ÏUü)D.?ÍÖÖ9¼¯f4Rö2ªïŽÑX¹¹Ì w#_RzZÌu)qáà{ úöõ3hãSìß›çPàDÊÅ’x)8ÓìÄ“%Ö—ÂåQ]<ÔoÄÌfЋ~Öf›=qœ½·JÄ«¬D!ZÛ¾ÕKDÉÒcÁ÷ê(å<¢XÇ.èÐHé¹ 3HˆÇ…©JõÂP7ø’•#ËR+¸cUá«TTá(ž)¶üEK^dÛ%´À"òþS‹.KŪŸ&|7q‡wÕGýØ›úž$àV‰ÑN¡¾ØþlmÒ6q2\I†à—ŒºÜÍ¿ì¤"ˆ@a3)Ä +  N7èJ7³Ôá17©åÖK´z*E;ßùÊÍ`o%sÉR?&%yÁˆªXW—MVÙ°}C©ÍùÍËg¿è©f&,È\ØÖïóà<\/Äì€Û´X¢­?6’oÏîÃáG_þÞ€ üÖmð“ö±»ìNl!(ÓÙ–ïRûÔDÕ¼ž]-‡÷äPóf)'ìvü4ŠÏ«ÁEJVÎ[9¿m¥;ˆìrr!eìÍì;´x^ÒîƒÜNƒ˜Ì™é¬‘j7W¦ê#›³Ò’Ó”×ʳÉǺBVG(àiä[äI§WA<@¸èã›=°6ö?¯égŒ$ TÊG©ë¡0NsL5õÙÎé‘LóuŠ-Ž6Ög_vú +Læo¥E¯¸Æ¢~I)´K!3XñÎw½ LQ÷å{÷Á˜tÎe”.öcÆ\-§AŸA˜Á'3MÉ|ݲãÝe¤©pô±s^8K1˜ûy*g/”ïĨÚ7¬êS 9©÷ÐÍ ÜrÍf!ƒ:£×wànÚ;¹• é@AúK š?gŽÂN‘q†ê—4²8)ÄT¥Í ÅcÀݨ˜RS¹ÏKÊÍ:ëk4£óÜS–}Ù;3<–Ûêʵ<ê— SU^΋opô´ÿf"5@A‹ ¢æñbqê]ö¾WÖ*VOM­tÚÖ,Sðg__]µ 0…Š®ê-GÊXÕøz³è+G|’¡f_’r]EG‘ÛßaqÛœŽg§m Õ]µMn£ÿ—v(°D²/´ôÚLb«é‹×dâïÙR­;ÛG›??aJÃVTáþy^èÛ­ÿ·g£m~àš`²Z2ŒèáЈ|‹Ð{äAJc—QRø¤ qnd(ÞÛœy™ò·öoDÍ`TªJCÜóH‡zRaÜôÇÓPü²ý£×”×ê‰ÊxÆœC@»þŒ“MpÎ<[0Ï?¨ýeÇ;ZTêô+…©R[¢køgÅϧÿƒÑ”a…¿"ªq^±bÖð°¾ßÙÈ *ãüþìr÷ìÙñ|®::·VNBOÁUzÉÜHbðaG¯DH¯í$6$4tL¼µ¯Jbµ +¼IîNICÖœqµa.K™,Æ­ >€C’y +l•7'žmf“ &´oÊ1Åá©:…æiþÒ…©åu² mÁÝeNÏ€Ÿ™@1; BBûìî}Z(¡ÔP3À>f‰ä`ªômwûyج²à¿]“}L0qoáJ×íÇ ™ôÙïà4äÝVCBB©LçûxÍ1s_©¬(\2ÊãZä¾Z.ÓÜ +G?÷ÝâêeŒ´u¶¶8é 3àp–ü8Dq,“ƾ&øÝ[3M ôásÄtÖ/ϪÁ¸T ;çî’û¶C;”]DD±u0Ý£ Õ¤Qü[=z€þÊ¥P¡*KCUq’k ”ƒã#Ï?çk¹° )M ñíûGR°ÇWI "RY7ð§Wþ»ÜÒÓêÖÆ°ë‰ï™ã0+@γÕTÝNTÇ?ôŒ¤Ûîa»J«xy~¹8Èupµ¢| º?5ï°ÿ$[)sýNd<#Ž¯ÐàéU«MÔ(8Ð ™bE¿QëHåt.Âf6çìÖ¡ÃUÌØ ÇŸ*å¡xãÏŸOi×`·r/\coωS:Ì#D÷=@KöAå2Ÿ·¦äžé ­gLHmOÙ˜«ª b9P ¾¸ûoÂÇ•Ñ +•ÉÚ„ÐOiÛÆI¨ÂNtVןV8½û/{ )NÄ8Ùè(‡ßÀgØ]Œ´PìÄî .'À9·šXâË[úèú}ö[…6 !Â$>ɹk^ sô2$ÆQ{–1(^¿ï\äÒ«›‡Ø…ÖNþúQ@ŸÄÕÅ ïR5áêÞЮgÚ4vÌèH2½¡¶»RDßMÍe­õ}…6‰ #¸QLiälœ" ŠfEág*€·½!k2h#ußg¨n¨‹Ëð Nä¡rKíIíªŠF£7êSà‡‡ýÓ)ËÌíqŸÓÅ=Uð»ùƒ‹’F–…ÔqmYu®Ã},Êf,üd»«±Õ²4~ÐÒÏ×î‚‹­ÁjSì°‰Jz:dV–™ÁÀ…³Ïmoa3_úIbŒÜ*´¿ÈPÅ ÿ^ëNŒ¥]wì ÉÓ×h̪ÓAí€æ6ýúÒ" èCCI³ÝÞŒ½¥¯Û$dƒ,»$ž¡¦¥¼}¨F3,N«ÁýåÃTŠ!ªWN3“Rà¸u+}©M=ž†; ¨1è®ØxHO­4Hô»üÖZòŽ¢HˆfO‚gZ=ÓØC¯ù¾ˆkÜã>kÃRŸãU…ÊóIwÛá·ý9ŒxäÁ)Ìž†á6:*Û¥ |âhÜáYNûHeÏ96sŠ½ñκÿN¤îIïŒIüËÆ> Î5l0y²U±ŒY˜nÏŠ £¬¸áKÐ@çÃiåO5àÒÖR1ŸŸ^¹ÆЧ†12r;ýôX‹¡0HXµqP©ç1¯—KÒp5ú¶¾{(ãÌ,ÄiétŽÓL¬¿È®òÔƒrQ»4-öFÏð Æ• Áæx¿hVg2{1x±nÅNŒû?3ø9årËjuP5±°_—銖YÅ=µ$]K†ª<ñïMx¬B_P­Ñ¬pD¤!jÆäú¨0´‡„méH§ð«TÚ©r ' Lçcž›·F•øa0ŽÞ£/<4¯ûgªBŽwRü«þSìÐSm%XÈ€êÏ÷ÿy‰à·Î뮧pÄÝÑ^à³x´”Å óп­¡Í¦)¥í;éqEÊ××Q)DÚãJ×LOnäSMÉæn(”øb£ Iôt;w–ªŒX€DNk|ç8QŒ)—}­„Oio>Ê9L(A L›¡Û^ý¾hÞõ…À‚Ï7ÔPÿxH7¹v“…ž¼a„¼žýj‘‚¦‡´=Y´ë*•¿.~r[?Qtf‘ƒŽ`FöÈŽé”ɼ e\Uµ™ÃêJ[CïÓˆÒÚ¸›½Îf¼kÀŒÝµAµq”˜Ù]/›f2DŽ ŒÍ(¼d%ÃÐ(‡è^)ùÆ8\¤Úª©¨ìùÖä:^1§·Gø* +w8~¨ìA„UÝÕ\N‚JŽ¸F¥iÔè;ŸT‹0–$|c¥—k‚·¨æGŠßAg¡¨ÆVÛW¬—õ¨ •/%²leÙì zrœ%9îñøG¿— i†[ H¥œÁˆ2! @ üà§ôX˜ï}”Ø XÁ™ÿY}NÞ9ÂL鉚ŠØÉçânI¾_âÃÁøî5©;~'©¿·Ñ^«îârÄÆà´¿åp±í¼#Zøž{ÖO7µJþú¬!èR;‡ºýýO¼[Ûîô—a ù-§D'w„x ÇƸùí¸¢a‡öwËISPf¢þF“¢Iùë‚'TÞÚãÌr¬c¯:ÅgÈW7 +VƒX{rb<È#ÖøNc¥AsbôÃÜÆpF}1ŒO-KyJ[«Usä¢Ä½r£9$Ozi½\ûÁrøHÙA^s¾Å0ñì’Ëûí1kÆîµÃG°ˆÇ—qÉÄÒçÍÔ9öVû.}NfaNŽ|ñ~RŠž‘ÙnÈßÁn— ›û1˾Ù©=ñêŠJÑ°[€¦ÿ0*äµ­ôÔQ•cÂçMSF³Oà÷O[ðv›¬âî},¦À°M›ëÀ+ ý„˜aÉÊ÷SµðÏqŠög iƘa¤ÃÝ&¡X¥‘ù2Ù0Dv÷Y¼ðJõXOkÌ +|ñUÔŸ¸æEÿ@î—%‡¢LW¯´%Þ­,I0LÑÅk0…ªùÚ pù­=s÷n3g¥Ç÷²6x°Ld`¹|%"VðhÒ·Ò\ÌS…â!”¤Üû¯9åÎvÒ!ÿ‘ÿË Ï÷¯•lH©y0XÆ!‰´"—†ŠÕZÞLÉ` „yøvÎ' Íy +uïi.6)›1u¿·ÚóàZó…°mó\)›ØÅûf@Þ½¬Ä]G8–ŽY÷— ³¨‘M'—³ä¸"õ›É«Ö$-œ¬Ý» HH°û¼Y d£'ÕµœåÄõ™7ý¯8öðuÜQ oníî‘ÄxÒ¯ÒÀ!1% ÞgaQ·>{ƒH$íÚ4‘Š’°…ôâºÉ⺭BˆÛIWÝ(mÅô ä© Yô=EØà rÙúŸóyÇ ŽBáÙ@#l¼ÇŠ“B2úD3û¼[jíMf?aÇžq½åå"LÉ>oéE ½æ=CÒ­u¾§ê†’ñÃå£Ïí¨u“'_óV)”ŃÔÅ~T=Ùwáˆõ]–.HHi×LÙr YµÜÔe'o´û]Ðÿ'oã`‚-30­ýrÏnàõo»ÍߔñíhÀ(É»—0ÄSš88³=†ù¿¸",Y(G!â¯Vóâ0~ŸBf«°õ¯ ;Ð4 +Ö¶t‘¨˜Yf\Éóþ?šÅ©f£œÄêá¬FÄ¥üÒIdϳZ­aÉl¥œŸÁ1Ã]Õïçˆ$’³¨D'(€ëŒ@#µÿãO ù·ôvÇ,Ibg½Œ¶Ûa øwõ´åŃ\µ¬ö\=&[ù|#Òôž¾i¼4, TkÌk°– éÈv€»'›Èµ‹ü[ÛXnšR侧—ÆÛâï»ñy^1ªž„v&U%.N¥ îë$•¾mß|qÆo>ö¨ŸnæŸl¯j9<Š (°Ý&e7áä _—í~ºôAåÝpîü¬×Ch½ ­i±ÛÀþ‚9m³‰ÈIŽñx(6.²6RmÏLm+ó¬|,¤bL{Ðè~?HˆÂnB®3?¨þh%­ ªÂ*ã·»éî`‘5Ç Ð!LðJNÅ­ I/%Ín! rÎeÊAÓV/‰¤[ð÷,jM.-âW×hä–Ÿß}Dzá×¾*4ƒjÝ|ßRfï7ɤ’EÚÃ4P¤NF|Ý.¤œá’Pµ³´¼»káô/u¬|{ßÍdMy&­ÕZyÁÏHWB rÑi=¡0çÔY÷ßœ•ŸÃ7tG™^²î°ÝgµÒxçþÏ:ã =£4Ç7_ë¼õ–u楶d²]ÁPhòRc†œ!éç¶Öæ ÜCì™4ÓÌihªÍqªPÄÜ3Ùš÷D2Q¢æxøàMPD™™SµË°ïú‚¥†UCnºÚÎ Ðz¾ú+ö³†¤¶<x]òËô˜q¬_ö?ïŒÄè c\¡útÇ4¤Õbê/7r=(†0¶Q+cÕñLÆDuçmØÙ6(΂|yÁXa‚Lèj˜µ??Òy««Í½C~â/ˆÆ&ø-_¾MD[5V <^»È:¨ê¾.¹RÀ”€V»Ö=þVƒaï—³Lœ8—òºÚt²m枣‘!Ññ½Ã|Œ ßéÃð_î:¼7|ZðÚ³¿Ý<wå™åÇjÕv>*9ÈáÿÔºwýhƒçØd黎Z‘ŠšdûêH«Â.̤÷9~9ŽsšålùT¦m~íjè©&@ Öä­!¯2q‰®Ç€y ü~Õ†á:#2Ij`àÄ#O›€(…äøEH&:@¿Á!Ë•÷O^Ú¿­µBä:rƒgE-õ©ÂòâEECã[ÖéåN·wãB±¾¿·‰ Åbj'^!q/¥™*šEîª[Ú9‰¾pÆKH-Žç´•Ê˜<¸n˼ö“ÔüWͺÙÆJ]B$(¸?žð_ ž¦Nc’`˜â+Aj-ì¬ta—п?(¼;ªÇ”·×ØüÞnsùµ‹Û'©Í'¹E–=d±Ð£¶¸ÛðÉf#3êl¶>,Yå£Zm—|èpéî“'\e©fõc<žï‹®.ùÿtæµRéïŒ +$¨Ÿ¡ÿ|eO°ž¥­+ºo–{özJÉI»sõ + +}D5·¿ò +ÂÐNúnë‰øtÊûöq¼Ûà3!Í\ÂUcÆé>Mp_¦¦ù}2 /6¬Ê v<ËMzÌ4Q´é¶B¦[Wê+}´¯*„Šk'¿5Bk¥ß µéø‚$šDÔÏNì[*¿(9dˆ‹ 7–2š:‡MúAc½u,3Öº¢†½mk2à pöÃh‚#p"Ý a²U—ƒ­=ÌžèϹËÔ–R…òþfç$c&Ö(àúâWlb§ÈAb­J»±}‹´sˆ± Š¤¹#ε =œãëŒJ”Á†‹‡ÐVAÉu8âê¹{†üy¶‘}rRh÷¸kðÍ„Ù:Ë9×Ýë£Þ ü Ð‰[«ä-9Ê¿ ¥ ‘YMö94Ôß;`  ºnK¥ìÕq4~s”xtôÓðg¬€R÷z„ríâ}³FŸà•Àö¯%‡=FE¸²ã÷!UK}wÄÉw±@tøñ5s.CÿeÙ~§C6‘5ÿÃ0JiÂ’ð½‰ù™— ì.ÃÕK}°/;²šãÇ·Rò†gP-nºŽBbŽµÿ=ÞæKRÒ „ÞÏNÿÕu|.ŽYñf‚¦5l›^V9T3$쥕±b„>,…Ñü5”²Ÿ¯Óa!l‡¹;PEŸö3¹Ç}J>ÕXè:‘`¹MÃ¥ótÕvW6àõ&“¼úØRjz Ò~ Â@©úþåß‘zf×–rxFŸQÕ š;?Û)ê¤'6FàÚA…†¶Ý{^›ïdÈ» ùŒÝ}âÝ(Í_õ@vnƒ°YZ^k +IŽ_}×£± ü[ÌØé‡J¥)uTÒ.¡látç¹úGѪ.rjãE‹A5‘ƒÿC?£÷ ÀÇ;"¿äI ”¹r»¢L©‘ ô¯®¤wÕoÎ(Õ=¥ðàåJ92˜«á^8ö/Çí;>ùn>º¸÷³íö€Ì%c‹ÜoæY!ûëæ¡\„~*DÓ‡5K…åÂfÛO¢þ Á¤yü¸öÌ;(3¯cö ÄQ!uF«â]«¬ª»€ÆóàIoL.Ɉ"}c"¯¶ÕŠX}ZTA×=¹s+H摞͸ÓáCm:ÊuXbž?ÔßGýü}œ£1Þ5-ÖW˜ŠNç¯ï_úIeè‰Tn²Òkÿ*[<‰Ââ˜wˆª^©/fu™Š"—GœçL^£aZöÙª€©Û×NŸ™‘L^ '’bý%ôsžFYìq`OP€kÌǾÐóI.(qT÷Åã¥â„S^ï\ýÁÈ1²~Z@L ò—å#ã~;÷[<£ðÄËqáËÚhõ·÷qFUäóE³l¡Sý›òÓ©¿Örwfcp·ñKZÚ؈ŒdæÐ@¹Â¥ØMwÞ›ÞÕmßq})Dôª¡€5¦£–oqH ru! …<\LØpñÙ€¥Pfa[ûƒBä"g1 ¿m™qt÷nç*½g,{éKW;Þ³Ñäu&$‰$ç§ÒÕ¿sR³þ¿ˆA¸7!YL )¢NóG~¨»1Ø;„Ž‘uÄY,:óŠôÂõ]íwOîÍÁÿµåèÚµíjð¿@~P¯ËîEÉöò!qûM6%N¡•¨àX!õ§DØâþýÈNÈÑ/V«•1Ñ,ïˆ+oD’RüzóU²Í¼åoøþ}Ó¹hÿí.²ƒÒ¿Uíô„}4‚[§¤Ì§}P²@*?®.¬Z. +õ ½`R:˜²¿CQÏO#Ûwœh·0ÒÓv*ØIFbÑW ˆ·, Îx·¥²w^GŸ’tñ×sØÿ¥ž€„jw®¿ìubIÐ /O,œÓ÷U àù&¾ÅÝ¸ï‘ óß@ñ®U/+Y©ô“Â02ç|N¢KÍ3ºÄ<z6Œ×!ËtÅÀ3ûJ«ì¼Ý=‹ŽLaÈƎ¨$ND³er0ö #¦J¼ëdÿƒ®ÀÂ@iê²¼ñ ¢be'ª(¼žg ýíñ/áüd5+xª±ü¹¥›ãSr oqh ûõNÒÁ™gLR•>PœÖßOêWlá]Á›ÞJµä4zPE"–R§3É’–‚胖RiS>:B.KCIRÀ{£³ï¼¯›Vx°H€ B’‹˜T„A¬Fd—öZé`7i›ÏàQ Z¯*'¸ ¾t}«î+DÃÖsB Ð’ÝôBÀÆÈ¿rÍ&'!lYxÝäšî)AYeuWÊwv¼™dÑhÉÙ»c¿j¶Ykb!sÏ+4¸R¹G{Xâ±±6±Û–Àe¥ØÙŽ,AÜ¿OÇ‚ #«W éÚàoúªÕ²5•†ë`ÅuyðÐcä‡8%ÌÀ¼BŽÖ!"˜A;}£|A•+@V/Õ +Këp›¦$øh´KæºSôû1H‡È\ʪ¦Npš“ìr)¶ÔëFù0]¡‰Ãej}•ZQ?a´9àFjÈ%<Ž%ýˆºd Å sÑ”ó”¼ïiê””›b«oRЮUW®ez(Ìþ#§Ë7ß-óãX°^A?'7°îLSf6‹P6&JpÉ<—ÜcNur—…œÎ…ZÝŽc<]Hƒþ°ÕÐË}YhºB´#'›™!Ôþ5¯ ±wÃuFÿ>½†“:=€²KøiM“6˜n‰TNôÀ÷QÖIOÎe–PþªØ‚í:ƒ–ÁçpÞO´:¹òˆ~¥¯°€#â$CærJ²²\ˇHc–(¬ÑÅñ¶_V~ÕHw,¸„6Í…_­ +Y¹ö§/ç}kºæb­Õ‘ÂÖfåÏã²o]öXkd~Å-‹jÌ<§Ûã±™q–E?«¢’’)(ÑÌ. +íÀã™odéYêTŒøÓŒÁÑ£€Iji(æú«Üø†õÖ!E{ƒá£§Šæ°°·ÅÅ¡ñ†7ñd†ÏU4ð­É†=Õ_)-+ ÉÝ(€á¦Ù—a_þC@ )àl÷{Â÷çVíÜhvDowJج~9ñÍÒäÀ²y·‡éWNQ J‘)óªåì™&Ù&_·z¯bˆ§Û ©Hayôv×Rj¼특žL{.ûE™0¡Þ+—>gC¨ùê Ï®0óz-Šg†é?jTœæËÚXþÿÛ|Úf˜k=©l¡©ÏZ:Òm‘Ý/´P^}ŸGëÈ›á:F,9¨ñ1Û¹ó홨47´T%ßÛUµóè&kÔXW™1d|o§ì+À;yÄÇ cýé†Þq¿+>M¦Hw(Uÿ±<‹ (hv Ú=9曺˜¥&\sÍñ‘õÉ¿3?>Š•pw›$y¨Ü²êÍóÜ@ý¿Ý:+F÷f«zt£( +›‘É·ÎO„>P©°MF$laÆå<{&eÉè‘{´«† ^g@mÆf=†«»GüˆWûs‘OáàÃ4ýXëùb; äkÒ™ì™îD2ºjöú¯èµÅÿS©}˜·’'L ‡“7pãêÑÕm¤ c¯Zý!DÆídjØÓ6Q"Fòךš› g›°`zÊLU§B¯%"„Gÿþƒ ¯¿zm]’$ýÕrØÛÒ«~Ð.Š+?eØstí¢uFg©«ë¸í«×ú×T‡(OÅX2„ÿÈN§Öïh=vþI†KÅraSFëp¸êûã?К^t®¶c^Ó;ëXJ t?yµy @3"ïÀvµ¼¢Uçr_ê \“Õç,™Ù˜gR¬Ã¯éŸà:6>'~d²5YøÝfvYô5bX²“ä((VüâØý"¿1œQÎØŽ“7@7( i;e¼sYÍ6 +„Ú ãj&Z–tÊo>]m:3´®–ì"Y $CbºÏ3g© úQ 3é¾k2–<1kÈÚ„q†2O˜eC˜õ’U]´ hBìÁøDÔ }~ 2ô`° 4|sM:«J舟 kÓ{ ÀÈm…4¢–ºÉÌ3lššI½Æ™A´»@r ì°åùâ¤{¦*îG‰¸ÃësŽ4¢þ^ŸžÇ +é§3šX +²í`ð–Ü)Ù·ì—2x #ä«Aši°¬¢(~‰¯o`Pg·Aæ%Ð;럀,gÜuôâ64JS KoößÐûEß¼OG~ÿô0˜,¾u"ë-WJAìÚ…¡yj²Ê¿€³®[3Ði¤?6ˆË`÷¥ñŸfR/ÙŒ|U$BÅŽkŽ¨j\fä ÛÆËVïIÊ ßæÖäçŒy7¬Â‡`-dwDk÷›Oiůß’nµHn'W À@û¸Püf ²3‹*¬ª_ÒÛ‘µS4øzù–(Ãù”Ðw¶²%É %ò· ƒûþ’'zçj.COU*MNüƒª9çœáÑÏDF2Í].!>¥1ÕIBàp7z0šcžƒ˜J_u.š|é"0Î6äN#ÕIdP£ƒ=2Nîá¨Ö6W(—ïsI_Ý^€i£ñY2 +ŸC! ü9š:.ê‡i›pˆ c:é!…P… Mgæ²d7ÅrØ5ÌŠ%$fî7­±˜Át#C€ NAXnÜãØîJÊ׃$®VØÚ>”*>©ËnÙ>oM×íÇz.*n8´AwxvÝ·²3Š‰(9Fn1H±-RycráM<ãe±ŽR†2ëpY™ü¹‘ƒY×èhÓü¥OßçBu˜ãúEQå#Æ£IºŸº <x£:žÚÉFšÔ ÷Å%_§”®—LÆI®­(êªÐú~ ¸9Z‡Û# L¤[}¯ë/ÕÔ~BR939§„º"°ÍÆOír“éxTùž³Èô}]Š>]ŽÔbv!ì?Œæüô†Ñ91éä¤r£ýb5º WlÎv¬êc ÁÞ:|…Óúèïªv‡î/ÚdLTd>³{”XWcî¹ $Ý‘__c)0ŽD’\‚À¶?’©6erÛFÞŒww5ùî£$ÚŒõà7|fÉ0<;ž4B +•ëÑ£rú<’:#&ÊîÙGêí¡ºAú9&í•â¥.ËÆ€ÛŒ–SYl”Q ä³·ÿªßåïˆà«½ª +^I&+׃,Æc²eÖÜhoÊƈ%žç¢ù&Ÿ8Ù5h”ÝH&ÀuN±…dàSY’ôEý'¼‘"«f/bC«M›†û…øÅjžÈ ¥¹abVY¾ŸÃÛûÔsjbˆt ï0ŸtÈM«¾ôº ¶óg=À5Ïý« ÎGV_ì(ÔʈÇH†Ÿ¢ºë–…ùD«’Þžl‡RŽš•5ÿŽ÷( —Y蕧ñ‹—ÎÝâr\íÑÂŒ«­)ïR> Æ^Ò°„ûük/®¿åÎ>Šª£ëÿ 8,‘€O'žo|˜ÛÁ»ÌC?s-é,³AAÒ”4‚*º/ç¼Bâ}aІp|™båÂ3G¿ƒÛ8_" ó³µ^0øë-|xK¶²Ó¹ Óú•áCªr~3.îƒ(I¥ïmä+gˆ_½\Ô#o!Ì3Úëó©[µß1u°Óìî½7}Š¯9Ç é{²*ñ_² ±uJio¥Þ&÷®Žp•oÍsÍmtŸèaCC6Æeu4²S*Û @w¶öîe0 ï±ú®L•Ÿÿ„F?šŠÎz?ó2çê{ +ûçÉ·cà.º´Ri=žý.¯A:ƲÙ¼pêËÿ!\O4j|ÄëŒ Ô!¬»ž Tß)f‘š6ñ €ò—»½é´!8ðEÃQ¥ìl€dVƒ²“â„™±5´Þ™®jpU¦A„¼àÇß{y-}É£NÓʲØÏôp­7m!W²úÎC¸Ýðôê}¦þóçãJÒkIôi[³|(Ú,NŽ¢w±—òdüwSõ ×}VZ_Öùýå[wT|)½ÝÛ…X˜˜Æ<«…N€pa”ç—`0®\À°=3J  M6~µ)œ˜-"®©u&ZÜÙËOËí´CaûNg§è¡õ‚aÆf¸$ß ™ç¤ÙÝÌ?éêmܚД°ØµËe@ÄÝ¥6õ ¬©´=ôdYdŠÛ"ç·@^åc´´”F“à¹ÑŠIc8è†K £nù©ˆÙ&t¯ÚÚÑ?Êá«{{BŠmOL‹‰9­ßaf±ÐüÆ7©ÿo³Cüø/u½VÁò3?~d«¯Úµô+®þΞ53MTa5û¶Ü:´³ÍV‘,æPL‹K ]³_¤Çh¹ÜqÍFrÚš`NªÎs IN*·wõ&yYMJ)ÏTâ6ñÝV} ÊuèÆá¯ã¬w å¡zElD«s–Z¤Žƒ«S•x¼ÿ'iÖgO·ïüq†Ý ¼hÙ +ÇôŠoËù­Dx” ©Â¢ôœ­vâaÚÙÝ™"dm¹.Þ@C’ÖéÒÔ£Úòÿ<9ôÓNdT}s¥•ÃL¸‚º3¼¦ft}ä5Þ”(áŠ%yª›’@ÒqÁ¹|$…³SÎ>|”TY£Œà?HÏ€¦ÆqO:î)4Ù^\•Ë¿‰@š¸0*¡¾tÿЬœä•,£ï^O’â•S°PœY¬^êy*uÆ1¢[~ôܱ÷wåÓY?56î„Pºäi‹‘7‚fIj•¼ñÉÛQ‚OJíEE… +™#¼íˆÎYØP„°¾Ÿ2´÷Ò÷41IëõmŸ"}Xg€ã¤Êcâõ£c‹Ü¸â˜Z<°âKj Õ Cc-"·Sj]tK‡äz8âÍnÖ?¯îìgtêζM”R:+Ò ƒRò€¦†ŽÈÌ íÍ™^¹—øcÀ[D;<‡ òs#£»Rªyj>×p*»ZyÕ\™}¨˜ðÈ~Æ$Ì™¬ovËÔa«Þ”4†×8þ•_×wöRPÔPI˜BQ3Ëù¼F‡×¥“Öì¦(š¼T¬è_2Ìž‰ ܘÞy¯*GçN ·4dzL ØítAl<(i¤ÏÊg/Ç +]ç´üšêʬ6 +®]ß +áëi – Ȥ«7{P'×cºGžh$}ó&ãZÈ/€ºf_}H…À[(‹IVÖÕì·|’„?ÏC®7—ÍûßÜjýÿË?A7;ܱ`r»–жë+¹RØÛŒ>)WÕ÷ò¯ç©wP¯-ÿ†íMòHÏ۠̃@Û5L´#ŒÀi\î}öš©Î5ÜÐ[½ó!~…/;ò0Ÿéìg7M™€±@)(Z>ÂjTiµ0^¡Œ›e¼¢5Ÿ‰©"ª ˜½9'QòYND¢ ‘>ãGZäp® 4P¶äôXù ÎÙ +q| +hÂêpûUñ}^ÐÄœ&=•Lïl¿ Š$š{“ˆ*Ï8Üf\n+³ Ÿ”1bZ>Öúxþí&Y£RFÃ*]a©ÌX×ÏÇ&·äb¯ÿ´×z 6G“Û'‡u/Vzgí §’6ÚÖÂAÑ ú,Ät3)ݶ v5|“VJi|Ëkz‘®]'¬n”=1ÓÉüä9¸Ì(G"Â^l”?0ãÌò*çÝ‚cÓd "¤òþ`KK‡xrx+‘Üê¿Ç/À¤ëhRCð«ËÈ‚‡…\ûªUUm~ï{ú㤄 +œ‡X?åfD8^«Ÿ®Ëès>}ïñ + yêqÖC¢iç]~g7ͼøó:f…Pþ }Ç1‹ Y,óϧ”%y¡ôÊ-U“À-ü—dv¢ÁIâarT'x„Ž˜„kÑ­àÒ6Y§\©¯âcíDG·Ý°ë‹™k%YÔøfÑãÜ©×ûÍæãJszàÝûb Lêk+:0&€ðkYÁþbýíƒc")AÃ[·ÒÊàör0¯[±­¹ä¢hpC/èÀ}\¯@@2ß!ËvÅÚš[àÍ´…êT²wQuµ™«¬ìŸµÔæ@mÍáÑÂîüÍâ¹l©Èý)8¼ÞSGÿ{3õ?Ć;`ºmqíGµLˆÑPø^Ü«¾Å"3éã%ÉGÕ?°¥ˆä4IËÓ8þ-¦…¹)%cÞ4铺“÷íâ Ø÷w²â2×r%¯”H°Å”°t­`nvlä©€*/¯çë¾ÊFøñ ´…£a1úÔ¾:°#`Ím•´ÁŠªm¹ >åkü;eìëÿ˜ÔŠh$Œ<®E²µLïW:Ä|‘rŽÕ]Ps] ®¶5Ü#¯OÜXëuÂ?ßs«.‹šÞrÈàÔ%°‰õ-Èâjåy´¤½Zžø¿ªMÓ„qÛ=ª:³ôb輄+Q˜Žæ·•Á„÷ +%€Toɀəqµ€—<íòïí$ßùsôv“C»¦8t-eé5E×c…~qW€Ž>Uu$„#ý6À·ñìKœ1€¡þ­•a=ð~­z?κœžwˆPrQ#ì{sÎɆEÿàöHd×l"|¡oMµì…åƒ 6{ê—¡“ïz–3×3XXåv 0ãrç8rkk9YÈù8béÊ?Ù*}†R[nµ©u¡óD ‹Í8_orË>J“å1²‚ÝÎùq;,ߢª˜‚©…èªÂÃÓ­7mÊ ÉRÛÌÏMoc䀚Káê†Ö‰^€ÝG9Òöˆï¤æFªD¦†AÝðÞÃ@1MKšŠ_ÁܱóÄG=r-"aÒVKÁ¸9,KpjÌoo›nÌ­/½\ŸfSÓŠe@x‚j èË[äáÎèèÔÃÐ F­p÷ÇÏFQ3 +ô#•Í‡©ŽÛݧ…÷c¬ã£öT7)=ÈvÐÇ–`¶|2xäØR”lêRÓ3kÿùCÌ{Ž*†ÚõôûuèîL€Ãt•3ÊrLpíuq¿¸@ Ûö^×aìÍú³°þEnš šÐ²á¶……Ñ?|I;g@ Ö$‚Ö=›Ò{úþ´bÌCúޣíVÛJn'ð î­Î{mÅð9±Õ_)ÖH3Š¼ó;Š/9ŽpbJ•œoÀÜ—ŸS/ûÚ¢)˜ÍšNŽgoñE(ý\Äõ;"€>M <î3ÌßÄÍT¯+$+‹Àl’AÞpk)öÒžê(¡j”ŸäÅk!9†vE²¾žÀXðâÕ'8Øõ¸1½X=ªw·*nš°´¶r¢û^£YÁÛ0¢Y:ŠxºÒóåþÁ&óиMÐnQqÐÁTÎö±õ|¦M,%7@4^D”¬žQ‹Ï2¾SÙ0rY˜3‰€)wRŸâ-ˆ™| 7¬Ð ÂÅ U·Mªô×–hȼ´:\ hÙ?šä´Ì¸.msÚ"a¶Ô>šßÈpb}ˆi¹©/}ÃSwÑ»B—dQj4Úˆ¯cªe²à¬g¦"þ&Zðd+BØ¡l~¡„œŽðM}¿Z_“r©ØCñeÛý¥asÇR´µÕ2L îK#²NO’“z)ê…Ýåy «ˆ44^³÷Äÿ&,K<Ë:ó§vø½MKÞ9Â!+E;b¬ÀXñÝ>ßÏÌC»AU|–xhTºˆ&uf0x[å5'zkÔ~bucN–ÏyÖªZ™M´ +ýõDé ÑŽ¨rêu–[m™ áVÜûøRsº?ß·啌͟¼ºÊÔñËà ª6 n9 +á©õɘÌ*ú ¨·aîexGÀ«ç̹­!J@=/YUœªôžæ†’©äÁ?‰Õªü6í$Kþôz76}šJè?©Í7àÉOkµˆæ(ÚJ9aû™™K¬Á ˜Î%¸Œm-ê#´ ºït›~„ÎXÒ„H1º° èžÊW«–Ùè(š9[jfà“ó:õ$Çá;DeK¹ÓŠgU^Å(_£tÒ¬ª©;kq¨—avûdÐ|æñ5¯w2 žEÎœ " 7žyY£–cM¯]GB´:ƒy0&ŸmjÛVŽØ­‘ +©ë–} ¸Œhj¬ÑÉ£f/›IV+\}3bGU ý5"©+IU(€oVžNo±íì⮂Øš¢b"Ñð±öÞ¢:’7cÂéx€ås¯t£! ‹@ïÇ%e)òûÀÒ\ /œCÿsoµ^“ªê- qhÏKä¡p Ú€ó&êØ /_Ïü +endstream +endobj +1963 0 obj +<< +/Length1 2382 +/Length2 17618 +/Length3 0 +/Length 20000 +>> +stream +%!PS-AdobeFont-1.0: CMBX12 003.002 +%%Title: CMBX12 +%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 CMBX12. +% 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/CMBX12 known{/CMBX12 findfont dup/UniqueID known{dup +/UniqueID get 5000769 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 /BWDLNI+CMBX12 def +/FontBBox {-53 -251 1139 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 CMBX12.) readonly def +/FullName (CMBX12) 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 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 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 97 /a put +dup 98 /b put +dup 99 /c put +dup 100 /d put +dup 101 /e put +dup 56 /eight put +dup 124 /emdash put +dup 123 /endash put +dup 102 /f put +dup 14 /ffi put +dup 12 /fi 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 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 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×{¨¦J†‹¦f^Ö·>½aq4±!¿Ù<ªËÏáËé_CªãцcQâ%BÉélSŸ¾ ³7§Òý1_£ +sQ¾çýz‹­Ôœrƒ?ÆktíP2‡™Ã’l„õ(?¾è‡è–×6Ø¢ÆÅ9~Ò'´’ÿ@‘Ø2b¡t[Á{ax í¾7øñ}ÏÏGnž[ôTYí>TÐÉ#aÊ1h!Ÿ;`ížWÈÆ®ÿk>©ÑKj̱ßJ¿zÿÃNžëcƒ?Ú^<æù@ à×qTåu„Ødª[eÑŽšj:JÁnËKûŠ#2S¢°[”ëÅBb?̬M‚o„²7¯¨aa¤–‰¢'¸‡gô§÷P:δѩ҈ éd¯Bd’|ÑIªÐî…H^wˆM®«Ïe#DDï1«3W“£À‰.ÌÐó¿J.6×®Ô<˜TMÉì"µ>„r(¬N‚Çž– âƒ#›>·ZjÁöh¢Éµ+˜Uþw¯ÿñã +ü´$äÃÐâ\áWN.C¥(VÒ\ïNæ栽¸3ÔA?òl_sÁ©M†P·÷ª ¾ŽyfSy¨áÖ¿bàÍÃ`9upŽÆöPâÈ°NurÖ)L=uh©ŽÕ‚ÒÈDÎÙ¡ºÁPÔ‹^§}·¸ÀÀÔ +ä-¨ÎzU*ÍÛ3¬ç~öãH¥wƒzåQ:ÕÉ»ÖáÍ.”Ñcxºª£v—ª(š‚Pê¯}F¤©ö­>Ø昕¶˜å4“¼8zeU+Jíùk <>,H~®^«ÈU>¯~Þ~)9–GŸ-_„+ÏÔ‡—2ø¼mšiæùÎ1r±•©ìôÅ>Z«îÌÞ?ÏŽÍ8âPZmè#meDPôÑš¨ˆ6º‘”ù9¦v=hEÀ_X(Æy†Nø˜(9§çd5Ö<¢ÞX4ª»5!ð XC›°EJöŽ«¾·\ØÔ]X¡º–´®›üÙl*¸ÔÌ:Yµ->pÉ7ö•¸Lºû´ÇØZžÇC~³Çlõùõ¬Š»d™1¤Í:/ú g!,Ç +½Ü}¡QÎ+ð93V{ ¾•QlÖëG®µ¶â 7!;yq+áæ«ñ ÒJ´•Aë æv÷j/rÐÕÚœƒZP)4°fÖ+OpX_ˆt~ 5–[RZ$Ò¹¤˜=#®e@K*W¼E‰¯t_É-J½”Ç bΣ‡£óZdð©h‡–²‹Ä>xNí©¢Þpãs¦¹GL€ÙO¥h>óŸÓoôÓë ¨ÀÚJ;ðJ+\m +ÎJû6ÊÂkŽÖm9"N `DÒÁ[½ð èh6w{Ac<=Þ®v}›ÌPC¥ßÒ*Š|sA×—ìfKÆ+ô­1!­§“Snù¤Åã~#_*†]žµ\ið!ùJÍiœÊq˘mJ K³ f½ ˆy*Sù}ö‰iGV6wa·á$m²†v<zZQ^LÕç0NêRqšö!Û*7ÉuLO¼Î=bÍ~îü_ÝJ ýC‚I?<5ñ¥ T zs§´í}uL`–MØ€ª¾"7žK¾Ó î÷ç»òä†Ý8yO ‹{òò¤| v`)Â.D†3¡Ùæ•K$•£è ™¼ ,3²š–ÒÝsÃD»àÓRÿ‰“¥ÂT ¶€Ìc±«2쑃%üyD\M´S9HØðQ¼ÕrfôG§^ü\55‡•#ãÙv[…YÏ´)çKäS¥^´~n¹™­MXû,8&£7a Æd$þ—Ý• ^t/WØyÏ¿¿Ä§ó¬4¸QK{)Ù=Í…WD¼d>»oeêÚZ›pÙ•i„-e@P’Lÿb|¬ö#p"6¿KLPXËßzb¦ŸZ†cÒ÷}ÿí)%LØKfO2Ý®âà (NÔ´U¯-´eÿ½rŸŒòu R«¹yŒTkl>º'à²HíÓ Þ9Ñ‚-”)ù¿ûu± +Àu+l´dõä4µé¸z©cLs‡“øTJ[:¬vÎü…æŒ?W‰Nø‹M*º °NiïîLfófFÔ/§? £Ì”oÎÌ_aÍ! Ü âBêt]õz‚\½›¬Þ”R/™r4¤ëèëMú¨–Õ›×FwÈïe5'Ž]ò´ZÀPÍpÈŽ×׶¦r¯?ÈPa„ÉÎL“'-Å +Ïcª‹Ü÷3G}¥Tç'šÚ¡nÀ#È^>Ò Ö' -›¸€Þ€ÜFø¾wMOT¯DsJ˜ËQº´úÁƒ{ û½TÞ¾·ô2®V‘®NsßÒŽûò¾%BƒÚhŒòÛ$×,áó>Ÿæ‡óoéK—Ú"HϯÔ  ¸«2ÎB¨UÍ7'J±(¶ï»Ç›Ñò­c1PIÝá÷.l QÔjÉF%jŸ¨P´ +1î»zb2É®±W€ÞM+mK·„¹ÆÇf,"Ü/3~£Ä¯;ûö–7¢/7Á­=Ëo-çR%€Šæàn–JB¶@næÿ6A0éÂhÀRF9°ŸTÖ {(¢&˜ð$ß…:Ëôh¿÷ÿõMÿjÀ稟 Øì%FV„ÿÚˆGâÈv·‚?`S:àë:JepRÆ̶Éøâ9›«Œ ËÝy?šO_ɼ4—ü:╱bEç V]„1¶ÒVðùb,ƒ"‡KoF0dbaºìÿÌŸÞf4G^̬k’({çÃÍ:Ü +™µþÞ]-eJ·Øb•ËcÕ?±ŸüÌhÉ÷s+΢ŠúÆ_µs›žÆS²è,at¨yi±ñÑÌrþ¹%´òF3üg¥Ÿ¥Þ‹&¢M}ØÛ¨È3ŸDkÈh`\Ÿrud>ßñ;÷i¹A_¾î‰ +oF_Ñ™ckõN›Ô‹øn`¢úv×Õ)2š•Û™’ä$#í 6ùÑ{þïü«ç⮶\FvõUìW ¿€lî +%x[g´Ôí…j6~¥C ÔÜ"’’^klC²ïyºÜ%þ)Ð%n¶WÕFœO/M™y­ÉÔç~óZq½í©ÚiI¢…$¦ŸCËT›*xƒªÅ]ûªç–)ôiŸt4Z›–VÔ]må‰VÓ‘ÚOû“€®õ¼)giþ¹ +ò%-JUÆ [f°TX7Ô/.…c‡‹Uˆ,÷h7ï8M¢4Ïê zè9:ã̳ájþmrvõ›PôŽ# >’ b€xò»ã_÷»¦ËLøğ y«†ª“ƒ°ôÏ5ÑR@/{fëQCñ}«dÊÀÈ×ö~Øãr³é!¯4»ýŸÑõ»ŒfP£o·í€¿MÓ+^',˜î6_/ÛW{hØÍÉïÉ/‰ÑšêÌjç³S}ÒþíJ‡z Ñs†ŠÕ¶äŠáÖj ¨Þ³~z›L{qA\RÒh$)‹:zNSJLÝyj^žÄ”Ç’µÆ)ÒTÐ~ÐKZAúP0‚JP~(>~9â&Ã¥ÞvÁâ^ÿ"ƒ¾)½‡X5ç=hNÒ‚aNز©%1âÖv1Ügv?ç€46³7Hö‘ë!þóµNôýÁj¢âO4¨½Ù¾bÝÿ夹t¡Fòyòæ³åõñ&ï{ówQ[+ZŠJ’¢q¸ ++¹á@ ïãmn,ßjMnEfI m ¨RG¯U­´Y¯8šøN…¨£ÿKŠ:]ĤB!ªÅN?€JŠïç'×A.ökÀ{¶üç­ác㣆À+/lB Ñ~z…÷-æ  ¾NœWWc»rÐé…‰Œ?ÂV,d€\$;¦¬tTRÀ%M8ÁDì¸ÐLŸsY{‰D´#4 øƒD{a©\j;·$n¥dÊŸ'ÍÍKE –'p“å aÓöÜ_C1ÖdüÊüaEEÜ4"¿¦<[êɬ}7€7%غ™ç€k/2I¶k‰'­§wb<ÌB•ö|Ç;Yâ‘ ®¿lÀF{ت,öœæ¥9 +',>ƒlë£Zqq@°`‰C‹°î,6Ú|òUè²[2Ç©{ø¸Ìåæ{ô_³ŠÛW{l¼[À(õ˜ÜE¬ã…œ&´K!.0té)¬¥fðõÕÔó7•ŽlÑnšMwåX<œ |É ¿ø¡¸ðÞw2#»Ê:|Ëм6Þ¡×4Hù°¥Ôkrñ~I„EŽ¥môÔñšv­‰¯b,Â[šxª‚áÈY…@·˜àrL·À'ú3Ë:`¥A7C~X+_显R#GäAVÄt]ŠDÞd ¾´! Ö0€â*ußÛzôbä°‚˜°ë«rYÑí¦²NŠ°Ÿ¶%óÑgòÈUX&h͈6ØO¾çóúàÔWÎ2±^ÚøzG¯íü iN ÒΫýýyf½_Sÿ"Ù>û.g`öB6Gç +ýÈëB•üÈdXîµõŽ¹XE}±œí……æeW»_èŸllQ©6ýio¨„’F<³3Ô™üZþÝâN%ÞQ^wÎ݃‹Ã{›&E­Œ:¢k= ‰éñšB¨±·I|¥• +Ÿ~ÕÚ›¯fK©ikx¥ îzÁmµ¸ Ó3úÙ³~mík +R£-¥·ãr»H±ës–Ú‰ÚüZ§å¬ª.]þÁ]¢Mmëјrx¼ñâ±÷ùÁ„{%ðìu_†p²Õ[ +µ¼5£~`3ë1>pßíaë­jûdoTÎÇê™&Ø]à¿J[Èþ°Ý[è€@Ç¿&#F8iã ^9›¶<“Œ„wÑe+¡-§l·½B¡dœ›vï>äB©2pá["ój×aƯ˜²ÚÏeskƒþ40­?‚ô­`××ož£Ñ‘L^Õe‰™† OƒÐÙa¯ÇgçJãQóIs[lôõˆyZ¥ž·&C´®•í×X”ŠO—­»3¼UjtY¸èVÄm£öEß!¿Ø“ jyÙåfØnš¦(³Rv64‰Ÿ‰‹•÷£ê¾™o^vŸ„îÑXárˆG˜‹ËÎ\³PidD‡·†¦FO‹"ˆpMåx +Âz¶M¡¬"tì@¿€ª-:C.R<ÂɱƒL?˜èl)†ÃLdè£*v9l¨$›ÞÙ¨‹‹{þK4™ð‚ìuåþ)šPyœºhù(ËÐÇÐaÔÑ…=žµ.¯Á+¿Årc[Š3—(_«»5&Ò 'ÔâÖâ,Ý[ýwN´øÚäÓ¾AìsqÒ;eÃÖcµITW<1ó>‰±i¤pÛ×!þñ©A˜3²`TyR^ÖÅ"nBØ…W>FgI³Ìh“¥”!ßri7?ƒŠôK!—Ìn$içáQw‘?P îé„÷|”–‰å£zZ´I0ž7h³9WÝàèð´$uã™ ò]ˆ|lì´š¿hNˆ/쎻š~zà gxæ ,àšþ>f‰´åÑáI„àÑHÐU*“ŠÙ#CuJšB8ÌH±ß“¾6Ì'bmêO½¦qèIhz®áëVÀ[ 3ãmÔE)Îô”®ûª˜ôwÙÐÜÄM“Ä15 7ÒDP¿Û ’± ´ÖÔpSÏå¬E”-Ñ«u8°¯ýOZ(Â׆ZЀ³|(ØìÿT¸ak(.QMCê“ô´Ët‹t®Fs +óÃäß‘±3)‡a¶¹B¨þÖvöñ‹ +µ :’&Ø!ñ%Ý›C–:0Ë`(Ë}SùFI´‚ìЧÔÚà<´yŽ%H0TíŽIrwr)­Ÿ1PKˆâT¨9tÒ¼ü}ñò>/ÄòÄä³Ü©ûƒ@A“GY™CvÙÐv+«ûYyô°Ü6 æÓs¡åƒÈ6†kaIñâJŽ;óÁ`µpCˆº|3¨GŒÜXÓåU/¦-mפՉâ)†þ*‡rÎ…¢UÒXJÒ”i“´íî*k6ÿGi†ÜõKõìc0˜õyË:ñe±ž–eâ{…bçf]. si›/ž+"÷ή,ÓFâÿ‘mÕUˆŠòëHýB¼¯4¡ìŸœâ0v¯I”µA4½ØaÝ0)‰rZÞ¦ä Lm"‰2ËC(6‰Óç7ÿ´ØÃœ¼´`¡¨ç:R¯0=_}¢ ¤5Æê0›ý¡(EMè`þiB4-O*løW«„MÆÜ´¹[?œæIeÄ3LtM‰)l¹Ð²>Vc8½j^R°z_Vßq\c6aÚÔ¾Sný6†VË +³8EÕLG´å! ;Ì$jHìŒC‘> +U]o fÛKÚž +ƒàÝ1yœ—‹&ä8µ³ŸªÙÝ›!al Jü ‚$$óÁ0×X0Ž|øÉ^K)§"×ñE)­É‘ÕÏÌ`pûƒL±.¤Š±›M×!L"4­0ðaW/ª7åÞú·è±[¡Š +«½º¤UèT•V×F "Öf¬• G +©xàaöËkî+´!ÙµuæÁ²„z¡ø"J6¬§œ¹7Ȳ‡Y¶z=ožNÑ©Y€XMËø»Õ.?§G¼Ì‚\ ÐîA†¿ööGv$ߦoƒQ±³ÒÝ7@~™nÉ@Y„›ŠxKûéÅo^PetWÎEô>`o1ƨð=øŠŽ‚ôô‰ -~xÄy†¥œv®¬qeÑ.£=7µ0"øL3v€Žp£6 ãtA ìEó&îEõ®à3U@¯VG•ƒ±÷Õí DÏ‹=|Ð([<2GeTÁ +âDõOÑ6O«õ@ïxÔ*ØA(ÃæËTع·bHЯ'–æYmî-¼£_÷X@qžÌs÷[^’8ÁaŽ”5†e@@ˆlÙ\T>oOHf‚©µ¡R»¾,i¹”†ê½Ž+rá[»‹&ðôß—€y·™.ƒbF/ßçµÙÌm±Mš—†­çÉ•—ß©!’q'£R[d[CÅð£‰Èð§6ê|okÈŸßeÂÿºfJq‰ËCóœli¸—|%ˆ§[XDeÔ6frHÇ{\mÁƒÌ½lˆÑbwnW Œ€¤¨b˜e8JomT]Š¾jÓ´G,‡çƒH6ìJrý‹<ܯ”08öy+eF3{&üFÍá'k³‘Õ<_›`M’8Ž.ø]î5*ƒ44ª–™Ôñ½,Š“U›Lç‡Ü†—è…%™GDcÙ“Ph1ëö_‰E^n2ÖÝgV™„˜Ñˆÿ&ÍÇ€Ÿ(U"à¨ÙàT3dPD ²b´güºoùÑ—-|”|î⯋l’@º(à +‡\k”]´¶È¡²n”÷ Ç*¦dh´…!bJìSaœUU;tV?)º˜j~…—©ŸJÈb"¤œ2\vLóp]24=4i ÜwÒÎäEëÇø%w^»é#0¼ \Ì+kIÉc>:¸“­;Í=3J‚î#ñ¦éÿ‚ëJ|5U~±yO÷×iC2åÂáÌÝöU7:wÏï¹rIDšsœ.¨ãÞÞ)%R°@d²÷„0®a;‹Ç=ûM ÁÙ¥ÿ¯ŒÅçWi!á÷µPœJ¾úÇš¾_©*¤ª (½øìéôŠKW­æÉ#©õÅ!éªSQ!C­Ü½Èî2g„§ ߊl“ÓÛYð›rdw?¿Q¼}>pTLžWÞݸihw77çÔÄ»¸ŒŸ\>è³PhKm„UBCñRu„~—ºÅ•äf»™Ì®cèeèågûÝ÷Ä3åg$¦¸ìÂÀÀôÊKú¡¯©ÿð_DsÍ™9(¯ûSo,ò„êFÂ,®9æ…™¦r¦¡¿G +¿” ·¨6zšÞ.õŸøº(zê°4¿~ ™^)e÷9$ñÒt?QžÌÜd@GýÝÅRÞöÓ¢ƒUÆKÂÖnÝ.†¢æ84]6 \°‚ /梖7à"Vx¥Â¿o¶˜_Eeâ–äR¶$è:â«çÛ{r s2.¦ÔT®¸‹“Lf:Pcç9‚„ žÁo/€‡ËùO¢ +ò |2åVsx¬<‡±ôb¡YÎ%Çj;«•Å§\Aí”u9Ü’z€Bi#½mþh?T‹™ GüÌqÌ wø+CŠ›x°Ì\Íox$X×0YKu›{§µLÁ3è]¡jÀÒ{â‚Ciý}X ¢¿¬ŠUÚ¬ý±+pV½8.G–ï>D3K7Ÿ5S‚À2 t ècìÈg-¬Ì†aÛÞs{€Tª-S’aK†ÃÆŠ”ÓUþÖàôš¸6æÜ1vjßn9èp¥&aÉøý®ãæÐ+#:òC¤êæi…ªè¥Ïÿ ÌwÇ ’28·‹Ö7 8¶+î1zI "~GüÚ§t/r6ö©3 (AhG‘£M€3ëFA+ïSáÀ•Èàz’ÀÉd³'ãôj–_Õúðéž|b2*; ìOɲš2o(LWÜ›ÍÄy€‰ ƒá½¬WÒ|Å +æV„.byö™ÕŠ\äZ¾F=ðßðn=í Jí4"ä5ÉkªYî*u dÛzÂ[-–hôŒ]*—òÄÃɤÜË¡0B}ñ¿_ÝÈ€ócJÚŠÆ|n^ÓÃÚk˜æûEÑäá!Ù€™˜÷:' ÿ@1óÇ ·Bžø8M*zôüžlUØ‚Éî”1â2ß…R+á`ÙòB£#™´§PðlÈ©¼lº¾#¢ öbžá:XF3 —à\•"ØéƤgcF6È¢gˆ4 ³YË&N±eÈ\SŸ™{Y&¯öÉĸ{n.ìölX³™Å4 ·êÌ=…:ÁŽ˜@:L%þ0¹‰:`.t·Ó‰–À«%«€i☠Xš¦¶L›K¬>©+a|˜ó»G‚Ÿ³ ØN™«Ký£Š&‹¾þC7R_ rç?(°}44‰ªô*ÌäwTðþm¼lZ†ÌDظ 9vê+üÛ´›í c¿ºDní¶WÖ‹K}>ö%9 Q¨dþ6¶³ÿ•?[Ç¡A¡¯/nJRù^è@‘Rï3(˜gü­ +¡¨ŠRR³ß´Eó&‡ƒØN,¤ë$›vFÅäüåeŽWO“ÃzÓHU¾Ÿ£³á0ȉ,&ïi¡w{ñ1™… 2£½´ô“6å +I€Õh½g2§ûÅJè;ûL} 3Ï>Ì»‰”ìñ,½¥ùÄßúf…0úÒ§À¯D£v(_4«}¦ã;"¡_,ùkÐÏr7&*­¼1:œËâõ¬nú%ÝÜÈVNªF/nùÎ{hc87P¢Îö‚M9¹ílûŒZàcd^C¢7NO¼…c{:ODç€Ež)ž”Èï>:5r³Ê Iúå",(ö%Lb“ë9T[p…ÙÊóå£Ñ)¢ B8i¾)«í1ü*Qiþ‰É¸â£…l®ä)OêΩc„LK?‘ Ë_ŠªUt/®éŽ5¥б6&ŒÏû:‚£ig~½luK%6-…Åõº™ZŠÎKÕZ„P°cð,fo £\L…TžÉ®òœ"¿§BÄ~ ¦‹àu÷\T× "|Å^ÀñšôcP?µÈYJíx$]‰‚7ƒ™XÉÍŽÁ¬L21X-q}Êȇø°QöU$î´·dÀªW½ÙZ‰9 ØÔÑ‘nٺÄ÷“­ G\Æ/©Ý÷=Dën› }‹”ž¬Eᄹ’ÔZ&€º|4\óÄʸ:I÷“GÅK ^}ð¸߮H:$»4ß1¹Ô·1 Ä÷Ž—)OZeÐÈ¥3V\Éw:ZR¬`SÄF¸&´´ê (ˆeWþWFx´‹Î~úïÌ 2K‘¯•x|ðÚÓò6¹Á{^3˜—@)ÀÐ0¨Ôùæ®ášž©uÎ_]á®_æ…cOÕ:ú»Ú°&*‹$“-tÛ9&1©ÍÆZW¼Qj¢éœ3;È\/:XSŸ3¢ï,eÉ^Ì#µgiSÖJwÛ‘ô\fPn4Al¯Úæv Þ,¢_ãéá“ClK²DWƒ3¯^Ø nB¡0B`TûÀóÇ +…Àìdj7–~Lék·ð§ ¤êj_¼X‘…fåÛÖ+2 tø‚ƒh/ƒ<©÷`u'‚؉-.Ø$‡Ù`°RÄXu{×æ§úŽu ž<"mÀÄÇ94°ÀÍŒ+Šïï]¦eü›ák5:OWȼ–‡TŒì¼°•›5N\™Zâáø(÷[U¼šÅ^€¯¬Ž÷»ÑH[pxëôªòÜYù%îzØ’dóøï®—^#<_óŽûDéÚYk& G_ä$;ÄÆÁ ˆj:K _ö,”Þ“—}µ_fµZ÷¸_&Z>ˆ= +ZÎtÿ‘wRî:ÞÒôp7äÁ•ºl²=œF;¸Sš³?™PÇ÷!ª7?­`Þp«›0¿0½pÐ2–ìºÂ1!øøg+!røGˆ†Ž°¹ÜR\¥kn'ÕŒ;í'usðnÒ²1HÿUó ÄëAòìæ_Ю#ökø·Š—sÒÌéß^zD÷EhO˜V&OÁË pÂÃ7¯jd]“FàÁM¼ºXeùZ¾˜¹6Bü°0Ћ»*ã›\&Ï?{#Šd ÃT8Ý€ šgäklY<¶kd¸ +{w˜ãÑôcp +“Ž÷sOßõwqþ°4˜m@©‹Éï(W_9®JKḃ\q„„ ûõƒ'%UKCÉÅH*ú ÎŽtÊH¼—s¥(e-‹oÿî'Ï=„+™c Œ:Wýâ3yÞ°C÷“ÐÓí¡J“Εa/{~#+4%/»©I„ê L:ˆ²˜O¤Va“à3ÜZ!¨Ò-Ö¥VVÁð«/¿Ü¹éRdÆ ð,æÚðÿo§E¾oÙÒv§‚8• Bi´HbEÐ5>cÝE¬ÆÿÜò.^’Iu­œó>™uhÞ#fF±aLMÆ‚;TdÛµ\é=#fQr¨+Æþ_uº²3³Á¸––³âŽÓËÝé©uÏ–!  M©;Ëk1R_eCµÚ<>éåÆ)ZÕˆwÈKF¬:”ÇJ@à£Ö-þküŠ³Ëh*?%R0˜|tºîc™fEÊ;šN÷ò#§NéÄ_»VEÎ^ÔQÔ4FßÔ67?`áŒùê(bTè/ö¹Ô]€DÅý=±Ç”¹SŠtC=¾]xÿ ä"m¤Ì9¡@­MîDé1ApªÅ>Z‚F_¡VÒÉI€õ£·p&ðaµ0ÀÃL:“íZ— CAý:pûoZ¯Uy’7·B0&c©ÙÁßGñŸ¿í•B[_Û^’^½,7Žb8^h³¡–Ô˜xÐôÝ;;#Ö¹é@‹uTÞ_¶ü…é9i¯ÃÎòÙ H$øu¯d‰Ò_@›Zd,æy0x°‡T2a.îq>*‘%™ayËBü^ÁQËU +Hk=ɹ–Jx`ç Œ/K„8Æ3`J€|ên^’ŸMH%¤÷ØùÆPtƒX¦sº=¯Žë~zS£'ª]-SÜý¢Ÿá [߀£ž³Š™¯UÿÑ%&†ŠÊ³Oè¦k×8Ë#0“ªúTÿ¥«‚Â=éüÇZ¿ïõWÀ§˜øöë†ëòa¢öêÉmócBß;}ÑÆO‰¾‹HÃÌ>Èʤûؘ±#GËEňËëc²Õ±¥ó¡ÓPÅݬäú·¼ôg4Ý|žgáüûrÀ Æ”®ÄšR +á¤Ñx€œY³,©¾ôæXÂ_¾‡Ïjcþ’†sX[4Ú¦vé–.&¡¼ü²KP¨D=^†âÞfÂsÉðòÞ‡¢àçÛ!レû¿Vä[Ôhûd¹×MàU¥T;—Þ˜9?4I¢V÷f¥©VáMeùy.pÓ[FÕÁÑ]…ÂWUVpFYÛÐ4¶©®)“&ú‡b#“ÃÔFô ì³ÈÈ4ÎHëy~þákèqµ›èZ\‚ºb›@QUSÛ?qQùÏ/W)Ä/~F¢ÄY¢J˜™Ì˜^™ÂÕ¥TåW I»ˆmåvjåAš6aŠ³×EÊEr=N1Qiã/U<îîP¶rÍâU¬*|¯Ï9²ÀD&yk%>qïg(|å1Mô#d6užölcT ’IWxùK¯ÍÖf›Ùe“›¹ªJKÞ­±­w™žO‚ }Â^”þßM{!âã„C +ˆŒ²a “FÆBx$ÃŽÑ]4mÙÂNè.„}"m<.<É>aíF2H |Ú.§Õçì!6‘-ÛˆR¦:¤òŠZŽhèˆò]¤mnúÞZêILÂÐØUÅãž0éÛV¹1¯rj^Aëg"E3KÞ +\ø[~Oß0q.-X%Ò€¸¸©J \ Í®œ›˜aÞ°YŸå¯ãQ=¨&àŽáw,œcX\³8 —±ÒϢȭXCD˜JG]صvHüÔuÖkZ 5èŒùO7k¶¿Dž6á,?†Ôê N+ø);mÕÖBÏt|ý] +(ºó( ð†ô6„F,?¯*æMúuƒ;M3¤‹`(·Á•Æ}ÃK ‘_øYï[ðñ®qxÀEÍà{}>D<üžŒ2½>%,¯îGTzΔ³eßL+ã °,#<=³vÁ%JÇêwʶ`½?¼õ»ýÒ=Žý”2~4%4®Çò~4Ü_t0ø¶^KŽÐ™¥M+†qÃè¼ +ݲŽ%E®íJl$ÞÉCtßñ¿šxÒë¾®ÜÀ¸ú^ׄV¯¯Ö°+D;»kcï#9¢‘!œb9XF"•ŒýÙoMÇWC§¨îÄQÊúHëð÷gÍ-#’©ÆÐ÷Mb‚dè=ÉG6 ‡Þ‰i? +ŠˆðL;ef”\ÃÀþâM˜î&pwój<$7½u¹ÊSB¸þgÍ… úP™ßi"µW¥¬ìòCÒ¯ÑÞÒé id¹‚Õ_SÚ¯FÂßgE^ÎJ¦íEn`¯ïù=°—’…Å +A*à8G¸`µ©Åð¾O¾CÉòï)ÁKc_–pýµŠê(‰Ž¼ÆcñŠf…­/2ža±×ò¢¡¡*áø"½A1ïµc«zá.^`WîZ^!µjõÓ Á£ òÞ°íE’·[âpQŒÛ¤¥*Š*ŒHÿI½åã t7Ì]´ü)ës÷}‡x;L¤\~M1’•pÏtc½ÿm3ÐE%Ào{.ÂïÂBvå΃™Nv´ñ^…³+¬+ìŽO¾„„–=GXñ<«&j¿0[ §om¨ô¨Ç˜ui}ïÇ‹4[Ù|7yÁ˜çYÃ/×¥ªÅQ+¥+¶%1[tS¿*lÐÖ—eñ2'UT ã%Tn5R*ݾÝMWˆ·ò&ÇFL/—å6p±LAÒÛÏk»ˆwcZ…ÍVŒ‡‚T¬öp¨kzG<ªT¯2ݘEîovª‰ß +!`‘ãÄí×Õàµ'TV4ÌãߦþÃë©°.“Ä™ËòæƒÌÁ Î:K<÷jpô†Ìô:’%ú‹uÅ]v"zP…”$ü¡ee?È‘²4üMd– +­S¥b‚A#úJx@;ÄDZòw†îòrçe³hö©"„½mÞaåÍ»ìî×uqðY¼Å÷ص±8G›C–úêú ¿säõÆ&bHÑtFÔ÷*ÞzÜjÖÓ|¼ï&_™þ’T‰ 7—vÊgøÕÊ@™cÕo<.S㈻, +Ûêõ *pÕŽZEvë÷Áôæ–·%ÅX5¿IYJW|ˆ›¯{É]\DÜ!£A|>)»1µ àsà´Ë§îßÐÉfEÔ9 uçéÌÝ{G¨toŸT +y¢\Èûz‘h^¸!Õ›!€Ö$¶_Ò™ÀXƒ +U÷æLßÒ‘ÀôÎák…HLõ Ü󤽓®fëÐU ¾¡u!úh lûM¥E§Ý¦BU#5☦Ԅ &‹$«Õâè&™ÂLV%F$è{/¦:ªÀÂÞÉ¢üÒâ²S}¥cÙÛÃi2¾1ÙÇH9·5à7waç‹‚™¾ßqvL¶€ 5((ÈâÍW¥±{Y„5Ž%zÛJ{0ZvjTËFgÔ›Tâ}S?hiKGfƒC2›³‰¿=ºßÙdHγ_ š¶Z$sêLÖèÐlœª³Ê”¿ƒ½:ò¬~.M÷¶BÜ~¦-ZñÀå—œ~i?_æ(%}4âå]´pj´ê„`^´æpII²ÌGêÍó€>ƒýÔÔ{^@´.­·ËåN@cb?íúSãQŠ"q)€& î)U&Âvhßõ´t—¿ c£¿~ÿ,£XFþ?=8ÑÌí£¯hûìt7wÂ’Hßèâé襽Âöhö]"ŽÃãÆw”æþ ÒßÅjy6y‰B ‚—”–Ò–ÁljÜ]ó¤õ‚”M·?xq…ùôºƒNa‰y\ÎÍÃ/yýáÌ›|WÈ¥!5ÊÝðÂ~ëe¬Œs2Ó•ÏAÁ /OòÐ=A!7h»Öæ +=ù/c‹xn4ÃmÛ¸/ÆÊ=T'žÛ:â;®F‡3¨o¤Ÿâž`sø†óÀ›œ.ò¾UIEâÖµè‡,è¼Fð ;µ´Ò>XÐ Ê'ò¾VÔ—C€-]ŒËPA ÛíòNûþÈ7-¨mK¢ §Ň·óø»6o!*õ…>2tˆè£\wëƸþk7_D™MÓ€G©W[È3ew§)|žc¡:»_,à|8dLeÁã"fû—Îpû »™ß#$ ˆ°‚¡o µkø'9DïÂEýA ?æ‚;.dT,JM’w ½N9õ‰zp´ÁéŽçÅþ—Hx²6 Ÿ¨4Lþ¤eAgØ.e%‡”è´pÛÖ$DèçŠ/[øÒ¬Œ&« ¼¦}?æ­]0tVAàÎ$ 8xb•Ùð¯öYåâ/PÄPhwÛsAAvŒeãÌ÷R£;.8>·xj2ÃR—¨»)Må|ÎH†HT®ƒ™ò¥‹jùTùÎK¦ÚÄ”Ô +²Ö-ÊüÊ+m쟟¤}™–4¸šÚ/2O÷i¢6È2XèÔκÄéî“ÞÀÏë±8½ÙlcàËfUÕ +nâOX Ýè—9ã'†î鹇¹æÒ8"QÓâ(£‘KŽå„š¡=„Ÿ„½P_¾‘””#ƒßˆôKŸœÁâLÀÚ¬$Aå¶&[m¥×Euu€#†G=ì¾{ M ¿Ð^O›ÌæM¨>}°zc#ñåsh®mD?Ù%o‚UqöØ +ï·€wÂä!Ø4ø/÷*Ç1Y®# …^Lã+SÆm+¹÷œ}ö_FƒÓòtõ³K‰š|2Ÿ#+äC]—¿D„ã¯è½ BíÊaGÆ%«ä¡35‹Ñ%/–ß'Ú Â>7W_¾ÓXˆöïF˜÷6¼º$+¾`^?0´Co2¬j)JníÑýõNQ6‡“4³0C‡CdeZ¾Œ?¬UÇÍ£=‘¹¸‰—{ Q˜dÙþœ[X tìY÷€SÉ–¨°ê<9¼h üPÉõ=78ÿAé3pçšêb¹§s8Nî†L´5½²xGÓ[déuË–gªaéí_†ûz¤÷ukÓ´÷™ _¦=æwˆöœ{ìøËöü”ÍA H72ÇìRÛ!‰°©~Ì %Äý|€¨VY¹2IJO^Q±ŠCÊ/Z<í.ù|+¢!£]¡ç‹—<+*Zƒ…`g"¢¬f*òƒjr¼d:-ôxñE…”Þ]±;ÍOXScsŒðWç‘ûÇ'Ë_HÈ&pu`sÕÎ -½Ê—®yx|ÒäMÃXF¶‡mœùg›|h¥ÖŠGJ°d_}áSGï–?(Æ>Ž8Ö*’õ`T¶H|à¨ù1³š49±wŠl«/,y‘ßË^6²Jä]¨â!T[nÙV‘Ž¶•%$œÌd­ÜÊZb½U4C¢T$é)«þ˜€ð%ùiP€#vR7A™T¶Ÿe6s·²²q@ñ—üN¾‘¤½|j§À¨t +òu; +endstream +endobj +1965 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 +1969 0 obj +<< +/Length1 2045 +/Length2 14638 +/Length3 0 +/Length 16683 +>> +stream +%!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 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/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 /HKHZAC+CMMI10 def +/FontBBox {-32 -250 1048 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 CMMI10.) readonly def +/FullName (CMMI10) 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 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 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 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-åÎ<ï˜ø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éæ_ + +ô>üÉü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 +1971 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 +1973 0 obj << -/Length 3124 +/Length1 1519 +/Length2 8224 +/Length3 0 +/Length 9743 >> 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 [(152)]TJ -0 g 0 G -ET - +%!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 -1927 0 obj +1975 0 obj << -/Length1 2422 -/Length2 20069 +/Length1 1413 +/Length2 6524 /Length3 0 -/Length 22491 +/Length 7937 >> stream -%!PS-AdobeFont-1.0: CMBX10 003.002 -%%Title: CMBX10 +%!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 CMBX10. +%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/CMBX10 known{/CMBX10 findfont dup/UniqueID known{dup -/UniqueID get 5000768 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 /RAJOBS+CMBX10 def -/FontBBox {-56 -250 1164 750 }readonly def +/FontName /ZOAUSA+CMMI8 def +/FontBBox {-24 -250 1110 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 CMMI8.) readonly def +/FullName (CMMI8) 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 67 /C put +dup 70 /F put +dup 71 /G 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_”üå| +endstream +endobj +1977 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf +<< +/Length1 2668 +/Length2 23077 +/Length3 0 +/Length 25745 +>> +stream +%!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 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/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 /WUKOCR+CMR10 def +/FontBBox {-40 -250 1009 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 CMBX10.) readonly def -/FullName (CMBX10) 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 (Bold) readonly def +/Weight (Medium) readonly def /ItalicAngle 0 def /isFixedPitch false def /UnderlinePosition -100 def @@ -24699,6 +43005,7 @@ 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 @@ -24709,9 +43016,13 @@ dup 83 /S put dup 84 /T put dup 85 /U put dup 86 /V put -dup 90 /Z 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 @@ -24741,13 +43052,20 @@ 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 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 @@ -24763,105 +43081,331 @@ 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×{¨¦Œß=מ7‰ÈÚ„Ä’ÕKV"~Pr„©-=›€L¿$ÀŸwc›rlVcÏN &'³{…%¨Gf“®#ɨ_iùý#S’Xd+½ÁÀìîU¿*|’:1çÎmö=â¾~6üù/«aÑGL•fÞ#ÚNOÒÍS¡}ERÉs´¤{[Åÿ¡.¦÷-jj‡|¦tm\Þ:Ä x8PÎûbP´è“ïíý¥¿hÉ[µ°õƒÐ_¾9ˆãÐt2þ3“¶7ñ„,I2Bí«8ÈJ˜ß0ÕmsUWÐQúdXì!ÑÅ?Óý¾íª?ÛQîì4íeR‹H ]ÓŠ.™p_ÐÍ?œä8îž:oé:·Uu¤D“Z[m™^/ÈaµÓÜæÖ4—µlô4È’ÕåtL<~&Wš…¬wLa9gPÁqháQ€šÎ Àjv®Ñ)…ï]s±qR"ýЯDž#üeîÀ·•ùýZKPHð‘rF›<÷EJ¢²ûš;àÑ.N~ë©€VÓ°qLJ+_ÑjÓ´â -tþYvKÙ¢½e\u™LðQqŽ"«ž£tì–Éw;*Ñåˆl5 ¿ FF BWäú1…S!þŤ2*µìÔÍ`Œ8:XºòlU«¸„I¢ô?[w«âÌc &Zç`§Ñ©Ÿ¾Þ° sdHeF¦—'¸*sæè ÒÐTd9ÔBaऋ‚…Ú[ŽÌa‘$–g²1»üf\è•0é 7íaRÏ^(šüLj#Ë!mwÞ2»#»nËrá$|‹ÿÑTíL”“]Ð{«X§`ÿú4Å.G•w¶¬äÛ|Pø2BêgÜ´wóbkÀF°ž N¬§fj;Žd?#l"+6ì«Âgæ{ùõ*ùÞîí—Ñ ,SQä2¦»¢û¬&'¨n­\`²]Q‹„ƒ:èâݹÂ6ln0b9†m]¼ðñ,ë/Ú¨¥\Y$6[+UEŠ#ƸŒM¡Oì( ϲ.DüáL¯âª\õ*á@øz3'§¦&Е6¦„ð2—ÜŠ¿%+(•ôšk€`²Dßþ/²È•k(É’Žk˜p¯t`ö^éBÃú‡âÕ±\H~êY_ö©Ë’´þûc%À~(!Ú -Jv×s}˜Ç9qÖwæÐà{ã 6†®ÎsΓM„™ ø&Q-Ãp‚ç'‰&Š™M&²7´¹–tZßû\r|5•M§¸5"³‚*¾¯¿ìÚê<°ŒÎ•DŽŒ³,»Lófj+”‘ìʾ½¿ËöëŸÉ"x0Â÷h#«ßu[@Ú}áèÙ"Öƒ -ÉdI‘E* , j¿æ]æÅv.Átx¹© ï’kEÁYl¢¯¦}d‡.-eJ ç³ÇõC•¦=©KãµD jn¯I"yX‡ ÜD¶|ø&¼¡ˆÃõk>èi¼ÂÙìx°Œëb¹uÂ?¦†Ñ±’È ,™ïV¹szÀ•üåAc » GÓ ¢Æßà7HŸ »`ÄŽ¼'Ķ)r -ºâ¶ÒŽ³ŸGÉÖ¯¥¢Z~›Cç— -‹U. E‹C»á3Ÿ}Öhen–ħâE‘¬!ùCü[xÌÍx®nÂCq#µ#Tiº.ôiøW×/ñiå*ƒ?K`ÚÉž¡ÄÙýÿ}ég;ο‘²¬“@¤½Œ>ÖH¯€¬Áëûùï©Ûmn9Ì1™ú-‡÷å û©[’¬íÅ Ã çtj7 3ÅMÝyâz¦„æ,á?Zð·@æúRPBi>óäÐë¥ïìÛvˆVFÕ\Ahk±o˜¶®àœ8™ïï*¿Æ‰NIQv§94z»ÿ‰4×÷m n8)Dêßb]ÇÙžÿ<ïÍU(gåõØùÞ(¤`O2—‹¹ý¤Ûzb30ã Ëõ-TV°{¼¯ ø_Hï‹^‡[¾elBÇââ —Žü4ŒNñ… äÀúˆ¹>>¿=eŸ§3Q“Ð-š'0yÑßí©ŸŽ#õJW 0ß݈7\û…tð5®Ü3”=ŽÃμغ¨ÂÖ|[Ršá±>5I„ªr·õ xh®hy!ãkVËSÈ®7‡I øThÈaT“õÝoëÉ÷„Ž(® WdsUIø=ï]úÓ™M|Óš‘dJø\YªR«Gy€·4d(ßNã¸{"lù\Š ]kÈ®8V -™øïðAï==Ïørõ Vä^ö*åmxõ(e÷¬ò=\ÆÊ°!ùþ ÃB¶žb8€Ð¹ÑX Ö™M©°½´Œ­اâi -pŽà˜‹)Çrï©  ~äÝ1óš Âך<;d,¯^Ó6¥åf,PÀpΨ|ð®k¼R8º7µô>i ˆˆ¶±e ^¿„³œNÒ¢@»°hè`¯[BF‡¾Þ,L%ÔmUœ¼è´Be€¼*$°noxá3K õÂóV$¾[¢[ÁŒý…˜fU;4þ‹²žQj¹ó’ú„³‘Šg»‡g—ßoÞÜ !%UÀ¼h‰¥©»Ü(Ô 2õè¹×Ÿ³¿±ƒ¢§, á´à™½O[Ј’Î_\?ŽWtË<È…/;¹ µ"æR­mÝ®Ÿ›)®ö©›EŽ\rÈW1 ÁÓÑ’o”¥ÐyãÖ‰Ù)BÌŠð\¾@ÚgéŒÏJ?m EqqÙ”„ô84^ÖÑÊâ¿ÑDŸ¶aü97 㤸ÀÐ{­É§›«Z!´_`-rÚlÙ*ï»q‚›žäٺ؊¡t LCgÒ -:nbJ ˆúLºÄq”Çrçj5^Ä9ªNRV³Jç­7eàòn²%ìáÏ°YÆ•uÈtÖ–Ûˆ4Ƹ‹ãF΋ėŠv’Q‡ÉjŸþ’ú®6%žc€#¤Ç~µ —ŠËOæ eÒ‰‘‡'aÙS1šòÏe‡ æÂF u s^i"éê…y´w,”µƒ~ Cð¥’~âRÆ’`¼,ýj"ƒ+ÙȬKk Q5‰œÊIƒªjËüE†ñbT)"†³>µwéÝvû³á|$.4ê“*@Ós?Û -iøˆÏp´bÅâ\r 9A«ÃàZ<ùv+ªÊ¯LC仕Î+¨Û8–ùy‹.xCÒÙÆŸ&‚¿U¨•}Ù\IåˆrÊúÊJg Àá:æÛD?©Ê ’(›òÁ.–ì5XR `/Ûú½¨{9`®8à‹âÄÚFD&L‚Ì|_Õþ.ɬ ’vaêàSå—;7U%Ìk;ãL BB`îtk¤} EÂåµ€\ˆHR ÆÍ"F™êíX°‡|ÜyÏïu~åQh«k¿v4VÓ¤ éKWºÎ8ñ¨”Â3ŽûÕYü^Ø‘-íNÙ(}˜} Õ“.ó‘Wi«a¤Ò„=wƒ§?«~ÌœZ4¬ îîµïNÍ>x;ÞÉ -§~ˆœc/ HèÏ«+ŽÌ%Bmé¶-7Ð žSš2ïý†*ñÅE”Çoq;¿ˆÕ»Ï/掺6ê[¨ LÖîo¸Á·T òÜ©¡F‰”²>=¼ñØ8ð¶Š$žŸdå‹�Ñoø”tu[´ÓQÍÌûEUÇ!ÅË\ÞswEÿóø¬¯Ùì6º«W× †Q8 í³< %xl&§ -Öô­î~Bhâ=àF´¢ß"2\¹],äÓ±@re(¨lFç*ÅŠY7üÙÚØ`¤ ±pS?%¸i|Ë‹ùt|[÷b<ù7M=ùœÒ7sÉÐnµ‚жѪw24Þ×…Àd/bîD~[)¯ùg4§¡3èýÝG&/pNƒÂ%•Ù;­¼t“æ —:Œpèê êùÂ}wMš/{ ¥Ï¬€£0.b©—ãj!ZãŽ@<‹¤æ ‚öþzyÖlÔ)ÿý"² ÛðõK¡ÏãƒÀÝUmoÒ™îÙ2¤c—})€ãçz“à:<±÷ïõÛ„Fù  oÂðŃ©žäèGLyÊTÚ7òÿ¦;ß¿··$äñ^Π>,Yœ.FûÜ”¤šŸ%”Gúj¾,&îU&ÎS¬ª0Ꙍ«˜S­Íg¾\ã¸ÂûŠ™ëÝÑ+h8.‡!ɧ´?‘ÿ4}+ÅÌÉô¡˜ïdCÌÖ¡;öëGľ°£€¤ÆÅZ#A´’¡©³ïÒeqE¹>¿RLª ‚þ€KØ@$|ÙDW­™‹Óô/PN³^Е3*0KõäéÄýÜÆ·)}Ó®JéMg"Ò$5ú8ñ_¾g«Cs2Cµ7,KŸÕž?λÎÏ) æ•ˆ4Þ úÜ1#Âoº«–¹·IXcP÷Ø~‰·1 £éaò‚ä^¥Å4ýÉ6Ó”)jO¦Úa Äa ^oyý^ «Ò&9ß—‰õçÇ«%¢¿<mLÃLNã9÷y‰ë³Á†ì a×)ÏUü)D.?ÍÖÖ9¼¯f4Rö2ªïŽÑX¹¹Ì w#_RzZÌu)qáà{ úöõ3hãSìß›çPàDÊÅ’x)8ÓìÄ“%Ö—ÂåQ]<ÔoÄÌfЋ~Öf›=qœ½·JÄ«¬D!ZÛ¾ÕKDÉÒcÁ÷ê(å<¢XÇ.èÐHé¹ 3HˆÇ…©JõÂP7ø’•#ËR+¸cUá«TTá(ž)¶üEK^dÛ%´À"òþS‹.KŪŸ&|7q‡wÕGýØ›úž$àV‰ÑN¡¾ØþlmÒ6q2\I†à—ŒºÜÍ¿ì¤"ˆ@a3)Ä -  N7èJ7³Ôá17©åÖK´z*E;ßùÊÍ`o%sÉR?&%yÁˆªXW—MVÙ°}C©ÍùÍËg¿è©f&,È\ØÖïóà<\/Äì€Û´X¢­?6’oÏîÃáG_þÞ€ üÖmð“ö±»ìNl!(ÓÙ–ïRûÔDÕ¼ž]-‡÷äPóf)'ìvü4ŠÏ«ÁEJVÎ[9¿m¥;ˆìrr!eìÍì;´x^ÒîƒÜNƒ˜Ì™é¬‘j7W¦ê#›³Ò’Ó”×ʳÉǺBVG(àiä[äI§WA<@¸èã›=°6ö?¯égŒ$ TÊG©ë¡0NsL5õÙÎé‘LóuŠ-Ž6Ög_vú -Læo¥E¯¸Æ¢~I)´K!3XñÎw½ LQ÷å{÷Á˜tÎe”.öcÆ\-§AŸA˜Á'3MÉ|ݲãÝe¤©pô±s^8K1˜ûy*g/”ïĨÚ7¬êS 9©÷ÐÍ ÜrÍf!ƒ:£×wànÚ;¹• é@AúK š?gŽÂN‘q†ê—4²8)ÄT¥Í ÅcÀݨ˜RS¹ÏKÊÍ:ëk4£óÜS–}Ù;3<–Ûêʵ<ê— SU^΋opô´ÿf"5@A‹ ¢æñbqê]ö¾WÖ*VOM­tÚÖ,Sðg__]µ 0…Š®ê-GÊXÕøz³è+G|’¡f_’r]EG‘ÛßaqÛœŽg§m Õ]µMn£ÿ—v(°D²/´ôÚLb«é‹×dâïÙR­;ÛG›??aJÃVTáþy^èÛ­ÿ·g£m~àš`²Z2ŒèáЈ|‹Ð{äAJc—QRø¤ qnd(ÞÛœy™ò·öoDÍ`TªJCÜóH‡zRaÜôÇÓPü²ý£×”×ê‰ÊxÆœC@»þŒ“MpÎ<[0Ï?¨ýeÇ;ZTêô+…©R[¢køgÅϧÿƒÑ”a…¿"ªq^±bÖð°¾ßÙÈ *ãüþìr÷ìÙñ|®::·VNBOÁUzÉÜHbðaG¯DH¯í$6$4tL¼µ¯Jbµ -¼IîNICÖœqµa.K™,Æ­ >€C’y -l•7'žmf“ &´oÊ1Åá©:…æiþÒ…©åu² mÁÝeNÏ€Ÿ™@1; BBûìî}Z(¡ÔP3À>f‰ä`ªômwûyج²à¿]“}L0qoáJ×íÇ ™ôÙïà4äÝVCBB©LçûxÍ1s_©¬(\2ÊãZä¾Z.ÓÜ -G?÷ÝâêeŒ´u¶¶8é 3àp–ü8Dq,“ƾ&øÝ[3M ôásÄtÖ/ϪÁ¸T ;çî’û¶C;”]DD±u0Ý£ Õ¤Qü[=z€þÊ¥P¡*KCUq’k ”ƒã#Ï?çk¹° )M ñíûGR°ÇWI "RY7ð§Wþ»ÜÒÓêÖÆ°ë‰ï™ã0+@γÕTÝNTÇ?ôŒ¤Ûîa»J«xy~¹8Èupµ¢| º?5ï°ÿ$[)sýNd<#Ž¯ÐàéU«MÔ(8Ð ™bE¿QëHåt.Âf6çìÖ¡ÃUÌØ ÇŸ*å¡xãÏŸOi×`·r/\coωS:Ì#D÷=@KöAå2Ÿ·¦äžé ­gLHmOÙ˜«ª b9P ¾¸ûoÂÇ•Ñ -•ÉÚ„ÐOiÛÆI¨ÂNtVןV8½û/{ )NÄ8Ùè(‡ßÀgØ]Œ´PìÄî .'À9·šXâË[úèú}ö[…6 !Â$>ɹk^ sô2$ÆQ{–1(^¿ï\äÒ«›‡Ø…ÖNþúQ@ŸÄÕÅ ïR5áêÞЮgÚ4vÌèH2½¡¶»RDßMÍe­õ}…6‰ #¸QLiälœ" ŠfEág*€·½!k2h#ußg¨n¨‹Ëð Nä¡rKíIíªŠF£7êSà‡‡ýÓ)ËÌíqŸÓÅ=Uð»ùƒ‹’F–…ÔqmYu®Ã},Êf,üd»«±Õ²4~ÐÒÏ×î‚‹­ÁjSì°‰Jz:dV–™ÁÀ…³Ïmoa3_úIbŒÜ*´¿ÈPÅ ÿ^ëNŒ¥]wì ÉÓ×h̪ÓAí€æ6ýúÒ" èCCI³ÝÞŒ½¥¯Û$dƒ,»$ž¡¦¥¼}¨F3,N«ÁýåÃTŠ!ªWN3“Rà¸u+}©M=ž†; ¨1è®ØxHO­4Hô»üÖZòŽ¢HˆfO‚gZ=ÓØC¯ù¾ˆkÜã>kÃRŸãU…ÊóIwÛá·ý9ŒxäÁ)Ìž†á6:*Û¥ |âhÜáYNûHeÏ96sŠ½ñκÿN¤îIïŒIüËÆ> Î5l0y²U±ŒY˜nÏŠ £¬¸áKÐ@çÃiåO5àÒÖR1ŸŸ^¹ÆЧ†12r;ýôX‹¡0HXµqP©ç1¯—KÒp5ú¶¾{(ãÌ,ÄiétŽÓL¬¿È®òÔƒrQ»4-öFÏð Æ• Áæx¿hVg2{1x±nÅNŒû?3ø9årËjuP5±°_—銖YÅ=µ$]K†ª<ñïMx¬B_P­Ñ¬pD¤!jÆäú¨0´‡„méH§ð«TÚ©r ' Lçcž›·F•øa0ŽÞ£/<4¯ûgªBŽwRü«þSìÐSm%XÈ€êÏ÷ÿy‰à·Î뮧pÄÝÑ^à³x´”Å óп­¡Í¦)¥í;éqEÊ××Q)DÚãJ×LOnäSMÉæn(”øb£ Iôt;w–ªŒX€DNk|ç8QŒ)—}­„Oio>Ê9L(A L›¡Û^ý¾hÞõ…À‚Ï7ÔPÿxH7¹v“…ž¼a„¼žýj‘‚¦‡´=Y´ë*•¿.~r[?Qtf‘ƒŽ`FöÈŽé”ɼ e\Uµ™ÃêJ[CïÓˆÒÚ¸›½Îf¼kÀŒÝµAµq”˜Ù]/›f2DŽ ŒÍ(¼d%ÃÐ(‡è^)ùÆ8\¤Úª©¨ìùÖä:^1§·Gø* -w8~¨ìA„UÝÕ\N‚JŽ¸F¥iÔè;ŸT‹0–$|c¥—k‚·¨æGŠßAg¡¨ÆVÛW¬—õ¨ •/%²leÙì zrœ%9îñøG¿— i†[ H¥œÁˆ2! @ üà§ôX˜ï}”Ø XÁ™ÿY}NÞ9ÂL鉚ŠØÉçânI¾_âÃÁøî5©;~'©¿·Ñ^«îârÄÆà´¿åp±í¼#Zøž{ÖO7µJþú¬!èR;‡ºýýO¼[Ûîô—a ù-§D'w„x ÇƸùí¸¢a‡öwËISPf¢þF“¢Iùë‚'TÞÚãÌr¬c¯:ÅgÈW7 +VƒX{rb<È#ÖøNc¥AsbôÃÜÆpF}1ŒO-KyJ[«Usä¢Ä½r£9$Ozi½\ûÁrøHÙA^s¾Å0ñì’Ëûí1kÆîµÃG°ˆÇ—qÉÄÒçÍÔ9öVû.}NfaNŽ|ñ~RŠž‘ÙnÈßÁn— ›û1˾Ù©=ñêŠJÑ°[€¦ÿ0*äµ­ôÔQ•cÂçMSF³Oà÷O[ðv›¬âî},¦À°M›ëÀ+ ý„˜aÉÊ÷SµðÏqŠög iƘa¤ÃÝ&¡X¥‘ù2Ù0Dv÷Y¼ðJõXOkÌ -|ñUÔŸ¸æEÿ@î—%‡¢LW¯´%Þ­,I0LÑÅk0…ªùÚ pù­=s÷n3g¥Ç÷²6x°Ld`¹|%"VðhÒ·Ò\ÌS…â!”¤Üû¯9åÎvÒ!ÿ‘ÿË Ï÷¯•lH©y0XÆ!‰´"—†ŠÕZÞLÉ` „yøvÎ' Íy -uïi.6)›1u¿·ÚóàZó…°mó\)›ØÅûf@Þ½¬Ä]G8–ŽY÷— ³¨‘M'—³ä¸"õ›É«Ö$-œ¬Ý» HH°û¼Y d£'ÕµœåÄõ™7ý¯8öðuÜQ oníî‘ÄxÒ¯ÒÀ!1% ÞgaQ·>{ƒH$íÚ4‘Š’°…ôâºÉ⺭BˆÛIWÝ(mÅô ä© Yô=EØà rÙúŸóyÇ ŽBáÙ@#l¼ÇŠ“B2úD3û¼[jíMf?aÇžq½åå"LÉ>oéE ½æ=CÒ­u¾§ê†’ñÃå£Ïí¨u“'_óV)”ŃÔÅ~T=Ùwáˆõ]–.HHi×LÙr YµÜÔe'o´û]Ðÿ'oã`‚-30­ýrÏnàõo»ÍߔñíhÀ(É»—0ÄSš88³=†ù¿¸",Y(G!â¯Vóâ0~ŸBf«°õ¯ ;Ð4 -Ö¶t‘¨˜Yf\Éóþ?šÅ©f£œÄêá¬FÄ¥üÒIdϳZ­aÉl¥œŸÁ1Ã]Õïçˆ$’³¨D'(€ëŒ@#µÿãO ù·ôvÇ,Ibg½Œ¶Ûa øwõ´åŃ\µ¬ö\=&[ù|#Òôž¾i¼4, TkÌk°– éÈv€»'›Èµ‹ü[ÛXnšR侧—ÆÛâï»ñy^1ªž„v&U%.N¥ îë$•¾mß|qÆo>ö¨ŸnæŸl¯j9<Š (°Ý&e7áä _—í~ºôAåÝpîü¬×Ch½ ­i±ÛÀþ‚9m³‰ÈIŽñx(6.²6RmÏLm+ó¬|,¤bL{Ðè~?HˆÂnB®3?¨þh%­ ªÂ*ã·»éî`‘5Ç Ð!LðJNÅ­ I/%Ín! rÎeÊAÓV/‰¤[ð÷,jM.-âW×hä–Ÿß}Dzá×¾*4ƒjÝ|ßRfï7ɤ’EÚÃ4P¤NF|Ý.¤œá’Pµ³´¼»káô/u¬|{ßÍdMy&­ÕZyÁÏHWB rÑi=¡0çÔY÷ßœ•ŸÃ7tG™^²î°ÝgµÒxçþÏ:ã =£4Ç7_ë¼õ–u楶d²]ÁPhòRc†œ!éç¶Öæ ÜCì™4ÓÌihªÍqªPÄÜ3Ùš÷D2Q¢æxøàMPD™™SµË°ïú‚¥†UCnºÚÎ Ðz¾ú+ö³†¤¶<x]òËô˜q¬_ö?ïŒÄè c\¡útÇ4¤Õbê/7r=(†0¶Q+cÕñLÆDuçmØÙ6(΂|yÁXa‚Lèj˜µ??Òy««Í½C~â/ˆÆ&ø-_¾MD[5V <^»È:¨ê¾.¹RÀ”€V»Ö=þVƒaï—³Lœ8—òºÚt²m枣‘!Ññ½Ã|Œ ßéÃð_î:¼7|ZðÚ³¿Ý<wå™åÇjÕv>*9ÈáÿÔºwýhƒçØd黎Z‘ŠšdûêH«Â.̤÷9~9ŽsšålùT¦m~íjè©&@ Öä­!¯2q‰®Ç€y ü~Õ†á:#2Ij`àÄ#O›€(…äøEH&:@¿Á!Ë•÷O^Ú¿­µBä:rƒgE-õ©ÂòâEECã[ÖéåN·wãB±¾¿·‰ Åbj'^!q/¥™*šEîª[Ú9‰¾pÆKH-Žç´•Ê˜<¸n˼ö“ÔüWͺÙÆJ]B$(¸?žð_ ž¦Nc’`˜â+Aj-ì¬ta—п?(¼;ªÇ”·×ØüÞnsùµ‹Û'©Í'¹E–=d±Ð£¶¸ÛðÉf#3êl¶>,Yå£Zm—|èpéî“'\e©fõc<žï‹®.ùÿtæµRéïŒ -$¨Ÿ¡ÿ|eO°ž¥­+ºo–{özJÉI»sõ +}ì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Ü -}D5·¿ò -ÂÐNúnë‰øtÊûöq¼Ûà3!Í\ÂUcÆé>Mp_¦¦ù}2 /6¬Ê v<ËMzÌ4Q´é¶B¦[Wê+}´¯*„Šk'¿5Bk¥ß µéø‚$šDÔÏNì[*¿(9dˆ‹ 7–2š:‡MúAc½u,3Öº¢†½mk2à pöÃh‚#p"Ý a²U—ƒ­=ÌžèϹËÔ–R…òþfç$c&Ö(àúâWlb§ÈAb­J»±}‹´sˆ± Š¤¹#ε =œãëŒJ”Á†‹‡ÐVAÉu8âê¹{†üy¶‘}rRh÷¸kðÍ„Ù:Ë9×Ýë£Þ ü Ð‰[«ä-9Ê¿ ¥ ‘YMö94Ôß;`  ºnK¥ìÕq4~s”xtôÓðg¬€R÷z„ríâ}³FŸà•Àö¯%‡=FE¸²ã÷!UK}wÄÉw±@tøñ5s.CÿeÙ~§C6‘5ÿÃ0JiÂ’ð½‰ù™— ì.ÃÕK}°/;²šãÇ·Rò†gP-nºŽBbŽµÿ=ÞæKRÒ „ÞÏNÿÕu|.ŽYñf‚¦5l›^V9T3$쥕±b„>,…Ñü5”²Ÿ¯Óa!l‡¹;PEŸö3¹Ç}J>ÕXè:‘`¹MÃ¥ótÕvW6àõ&“¼úØRjz Ò~ Â@©úþåß‘zf×–rxFŸQÕ š;?Û)ê¤'6FàÚA…†¶Ý{^›ïdÈ» ùŒÝ}âÝ(Í_õ@vnƒ°YZ^k -IŽ_}×£± ü[ÌØé‡J¥)uTÒ.¡látç¹úGѪ.rjãE‹A5‘ƒÿC?£÷ ÀÇ;"¿äI ”¹r»¢L©‘ ô¯®¤wÕoÎ(Õ=¥ðàåJ92˜«á^8ö/Çí;>ùn>º¸÷³íö€Ì%c‹ÜoæY!ûëæ¡\„~*DÓ‡5K…åÂfÛO¢þ Á¤yü¸öÌ;(3¯cö ÄQ!uF«â]«¬ª»€ÆóàIoL.Ɉ"}c"¯¶ÕŠX}ZTA×=¹s+H摞͸ÓáCm:ÊuXbž?ÔßGýü}œ£1Þ5-ÖW˜ŠNç¯ï_úIeè‰Tn²Òkÿ*[<‰Ââ˜wˆª^©/fu™Š"—GœçL^£aZöÙª€©Û×NŸ™‘L^ '’bý%ôsžFYìq`OP€kÌǾÐóI.(qT÷Åã¥â„S^ï\ýÁÈ1²~Z@L ò—å#ã~;÷[<£ðÄËqáËÚhõ·÷qFUäóE³l¡Sý›òÓ©¿Örwfcp·ñKZÚ؈ŒdæÐ@¹Â¥ØMwÞ›ÞÕmßq})Dôª¡€5¦£–oqH ru! …<\LØpñÙ€¥Pfa[ûƒBä"g1 ¿m™qt÷nç*½g,{éKW;Þ³Ñäu&$‰$ç§ÒÕ¿sR³þ¿ˆA¸7!YL )¢NóG~¨»1Ø;„Ž‘uÄY,:óŠôÂõ]íwOîÍÁÿµåèÚµíjð¿@~P¯ËîEÉöò!qûM6%N¡•¨àX!õ§DØâþýÈNÈÑ/V«•1Ñ,ïˆ+oD’RüzóU²Í¼åoøþ}Ó¹hÿí.²ƒÒ¿Uíô„}4‚[§¤Ì§}P²@*?®.¬Z. -õ ½`R:˜²¿CQÏO#Ûwœh·0ÒÓv*ØIFbÑW ˆ·, Îx·¥²w^GŸ’tñ×sØÿ¥ž€„jw®¿ìubIÐ /O,œÓ÷U àù&¾ÅÝ¸ï‘ óß@ñ®U/+Y©ô“Â02ç|N¢KÍ3ºÄ<z6Œ×!ËtÅÀ3ûJ«ì¼Ý=‹ŽLaÈƎ¨$ND³er0ö #¦J¼ëdÿƒ®ÀÂ@iê²¼ñ ¢be'ª(¼žg ýíñ/áüd5+xª±ü¹¥›ãSr oqh ûõNÒÁ™gLR•>PœÖßOêWlá]Á›ÞJµä4zPE"–R§3É’–‚胖RiS>:B.KCIRÀ{£³ï¼¯›Vx°H€ B’‹˜T„A¬Fd—öZé`7i›ÏàQ Z¯*'¸ ¾t}«î+DÃÖsB Ð’ÝôBÀÆÈ¿rÍ&'!lYxÝäšî)AYeuWÊwv¼™dÑhÉÙ»c¿j¶Ykb!sÏ+4¸R¹G{Xâ±±6±Û–Àe¥ØÙŽ,AÜ¿OÇ‚ #«W éÚàoúªÕ²5•†ë`ÅuyðÐcä‡8%ÌÀ¼BŽÖ!"˜A;}£|A•+@V/Õ -Këp›¦$øh´KæºSôû1H‡È\ʪ¦Npš“ìr)¶ÔëFù0]¡‰Ãej}•ZQ?a´9àFjÈ%<Ž%ýˆºd Å sÑ”ó”¼ïiê””›b«oRЮUW®ez(Ìþ#§Ë7ß-óãX°^A?'7°îLSf6‹P6&JpÉ<—ÜcNur—…œÎ…ZÝŽc<]Hƒþ°ÕÐË}YhºB´#'›™!Ôþ5¯ ±wÃuFÿ>½†“:=€²KøiM“6˜n‰TNôÀ÷QÖIOÎe–PþªØ‚í:ƒ–ÁçpÞO´:¹òˆ~¥¯°€#â$CærJ²²\ˇHc–(¬ÑÅñ¶_V~ÕHw,¸„6Í…_­ -Y¹ö§/ç}kºæb­Õ‘ÂÖfåÏã²o]öXkd~Å-‹jÌ<§Ûã±™q–E?«¢’’)(ÑÌ. -íÀã™odéYêTŒøÓŒÁÑ£€Iji(æú«Üø†õÖ!E{ƒá£§Šæ°°·ÅÅ¡ñ†7ñd†ÏU4ð­É†=Õ_)-+ ÉÝ(€á¦Ù—a_þC@ )àl÷{Â÷çVíÜhvDowJج~9ñÍÒäÀ²y·‡éWNQ J‘)óªåì™&Ù&_·z¯bˆ§Û ©Hayôv×Rj¼특žL{.ûE™0¡Þ+—>gC¨ùê Ï®0óz-Šg†é?jTœæËÚXþÿÛ|Úf˜k=©l¡©ÏZ:Òm‘Ý/´P^}ŸGëÈ›á:F,9¨ñ1Û¹ó홨47´T%ßÛUµóè&kÔXW™1d|o§ì+À;yÄÇ cýé†Þq¿+>M¦Hw(Uÿ±<‹ (hv Ú=9曺˜¥&\sÍñ‘õÉ¿3?>Š•pw›$y¨Ü²êÍóÜ@ý¿Ý:+F÷f«zt£( -›‘É·ÎO„>P©°MF$laÆå<{&eÉè‘{´«† ^g@mÆf=†«»GüˆWûs‘OáàÃ4ýXëùb; äkÒ™ì™îD2ºjöú¯èµÅÿS©}˜·’'L ‡“7pãêÑÕm¤ c¯Zý!DÆídjØÓ6Q"Fòךš› g›°`zÊLU§B¯%"„Gÿþƒ ¯¿zm]’$ýÕrØÛÒ«~Ð.Š+?eØstí¢uFg©«ë¸í«×ú×T‡(OÅX2„ÿÈN§Öïh=vþI†KÅraSFëp¸êûã?К^t®¶c^Ó;ëXJ t?yµy @3"ïÀvµ¼¢Uçr_ê \“Õç,™Ù˜gR¬Ã¯éŸà:6>'~d²5YøÝfvYô5bX²“ä((VüâØý"¿1œQÎØŽ“7@7( i;e¼sYÍ6 -„Ú ãj&Z–tÊo>]m:3´®–ì"Y $CbºÏ3g© úQ 3é¾k2–<1kÈÚ„q†2O˜eC˜õ’U]´ hBìÁøDÔ }~ 2ô`° 4|sM:«J舟 kÓ{ ÀÈm…4¢–ºÉÌ3lššI½Æ™A´»@r ì°åùâ¤{¦*îG‰¸ÃësŽ4¢þ^ŸžÇ -é§3šX -²í`ð–Ü)Ù·ì—2x #ä«Aši°¬¢(~‰¯o`Pg·Aæ%Ð;럀,gÜuôâ64JS KoößÐûEß¼OG~ÿô0˜,¾u"ë-WJAìÚ…¡yj²Ê¿€³®[3Ði¤?6ˆË`÷¥ñŸfR/ÙŒ|U$BÅŽkŽ¨j\fä ÛÆËVïIÊ ßæÖäçŒy7¬Â‡`-dwDk÷›Oiůß’nµHn'W À@û¸Püf ²3‹*¬ª_ÒÛ‘µS4øzù–(Ãù”Ðw¶²%É %ò· ƒûþ’'zçj.COU*MNüƒª9çœáÑÏDF2Í].!>¥1ÕIBàp7z0šcžƒ˜J_u.š|é"0Î6äN#ÕIdP£ƒ=2Nîá¨Ö6W(—ïsI_Ý^€i£ñY2 -ŸC! ü9š:.ê‡i›pˆ c:é!…P… Mgæ²d7ÅrØ5ÌŠ%$fî7­±˜Át#C€ NAXnÜãØîJÊ׃$®VØÚ>”*>©ËnÙ>oM×íÇz.*n8´AwxvÝ·²3Š‰(9Fn1H±-RycráM<ãe±ŽR†2ëpY™ü¹‘ƒY×èhÓü¥OßçBu˜ãúEQå#Æ£IºŸº <x£:žÚÉFšÔ ÷Å%_§”®—LÆI®­(êªÐú~ ¸9Z‡Û# L¤[}¯ë/ÕÔ~BR939§„º"°ÍÆOír“éxTùž³Èô}]Š>]ŽÔbv!ì?Œæüô†Ñ91éä¤r£ýb5º WlÎv¬êc ÁÞ:|…Óúèïªv‡î/ÚdLTd>³{”XWcî¹ $Ý‘__c)0ŽD’\‚À¶?’©6erÛFÞŒww5ùî£$ÚŒõà7|fÉ0<;ž4B -•ëÑ£rú<’:#&ÊîÙGêí¡ºAú9&í•â¥.ËÆ€ÛŒ–SYl”Q ä³·ÿªßåïˆà«½ª -^I&+׃,Æc²eÖÜhoÊƈ%žç¢ù&Ÿ8Ù5h”ÝH&ÀuN±…dàSY’ôEý'¼‘"«f/bC«M›†û…øÅjžÈ ¥¹abVY¾ŸÃÛûÔsjbˆt ï0ŸtÈM«¾ôº ¶óg=À5Ïý« ÎGV_ì(ÔʈÇH†Ÿ¢ºë–…ùD«’Þžl‡RŽš•5ÿŽ÷( —Y蕧ñ‹—ÎÝâr\íÑÂŒ«­)ïR> Æ^Ò°„ûük/®¿åÎ>Šª£ëÿ 8,‘€O'žo|˜ÛÁ»ÌC?s-é,³AAÒ”4‚*º/ç¼Bâ}aІp|™båÂ3G¿ƒÛ8_" ó³µ^0øë-|xK¶²Ó¹ Óú•áCªr~3.îƒ(I¥ïmä+gˆ_½\Ô#o!Ì3Úëó©[µß1u°Óìî½7}Š¯9Ç é{²*ñ_² ±uJio¥Þ&÷®Žp•oÍsÍmtŸèaCC6Æeu4²S*Û @w¶öîe0 ï±ú®L•Ÿÿ„F?šŠÎz?ó2çê{ -ûçÉ·cà.º´Ri=žý.¯A:ƲÙ¼pêËÿ!\O4j|ÄëŒ Ô!¬»ž Tß)f‘š6ñ €ò—»½é´!8ðEÃQ¥ìl€dVƒ²“â„™±5´Þ™®jpU¦A„¼àÇß{y-}É£NÓʲØÏôp­7m!W²úÎC¸Ýðôê}¦þóçãJÒkIôi[³|(Ú,NŽ¢w±—òdüwSõ ×}VZ_Öùýå[wT|)½ÝÛ…X˜˜Æ<«…N€pa”ç—`0®\À°=3J  M6~µ)œ˜-"®©u&ZÜÙËOËí´CaûNg§è¡õ‚aÆf¸$ß ™ç¤ÙÝÌ?éêmܚД°ØµËe@ÄÝ¥6õ ¬©´=ôdYdŠÛ"ç·@^åc´´”F“à¹ÑŠIc8è†K £nù©ˆÙ&t¯ÚÚÑ?Êá«{{BŠmOL‹‰9­ßaf±ÐüÆ7©ÿo³Cüø/u½VÁò3?~d«¯Úµô+®þΞ53MTa5û¶Ü:´³ÍV‘,æPL‹K ]³_¤Çh¹ÜqÍFrÚš`NªÎs IN*·wõ&yYMJ)ÏTâ6ñÝV} ÊuèÆá¯ã¬w å¡zElD«s–Z¤Žƒ«S•x¼ÿ'iÖgO·ïüq†Ý ¼hÙ -ÇôŠoËù­Dx” ©Â¢ôœ­vâaÚÙÝ™"dm¹.Þ@C’ÖéÒÔ£Úòÿ<9ôÓNdT}s¥•ÃL¸‚º3¼¦ft}ä5Þ”(áŠ%yª›’@ÒqÁ¹|$…³SÎ>|”TY£Œà?HÏ€¦ÆqO:î)4Ù^\•Ë¿‰@š¸0*¡¾tÿЬœä•,£ï^O’â•S°PœY¬^êy*uÆ1¢[~ôܱ÷wåÓY?56î„Pºäi‹‘7‚fIj•¼ñÉÛQ‚OJíEE… -™#¼íˆÎYØP„°¾Ÿ2´÷Ò÷41IëõmŸ"}Xg€ã¤Êcâõ£c‹Ü¸â˜Z<°âKj Õ Cc-"·Sj]tK‡äz8âÍnÖ?¯îìgtêζM”R:+Ò ƒRò€¦†ŽÈÌ íÍ™^¹—øcÀ[D;<‡ òs#£»Rªyj>×p*»ZyÕ\™}¨˜ðÈ~Æ$Ì™¬ovËÔa«Þ”4†×8þ•_×wöRPÔPI˜BQ3Ëù¼F‡×¥“Öì¦(š¼T¬è_2Ìž‰ ܘÞy¯*GçN ·4dzL ØítAl<(i¤ÏÊg/Ç +]ç´üšêʬ6 -®]ß -áëi – Ȥ«7{P'×cºGžh$}ó&ãZÈ/€ºf_}H…À[(‹IVÖÕì·|’„?ÏC®7—ÍûßÜjýÿË?A7;ܱ`r»–жë+¹RØÛŒ>)WÕ÷ò¯ç©wP¯-ÿ†íMòHÏ۠̃@Û5L´#ŒÀi\î}öš©Î5ÜÐ[½ó!~…/;ò0Ÿéìg7M™€±@)(Z>ÂjTiµ0^¡Œ›e¼¢5Ÿ‰©"ª ˜½9'QòYND¢ ‘>ãGZäp® 4P¶äôXù ÎÙ -q| -hÂêpûUñ}^ÐÄœ&=•Lïl¿ Š$š{“ˆ*Ï8Üf\n+³ Ÿ”1bZ>Öúxþí&Y£RFÃ*]a©ÌX×ÏÇ&·äb¯ÿ´×z 6G“Û'‡u/Vzgí §’6ÚÖÂAÑ ú,Ät3)ݶ v5|“VJi|Ëkz‘®]'¬n”=1ÓÉüä9¸Ì(G"Â^l”?0ãÌò*çÝ‚cÓd "¤òþ`KK‡xrx+‘Üê¿Ç/À¤ëhRCð«ËÈ‚‡…\ûªUUm~ï{ú㤄 -œ‡X?åfD8^«Ÿ®Ëès>}ïñ - yêqÖC¢iç]~g7ͼøó:f…Pþ }Ç1‹ Y,óϧ”%y¡ôÊ-U“À-ü—dv¢ÁIâarT'x„Ž˜„kÑ­àÒ6Y§\©¯âcíDG·Ý°ë‹™k%YÔøfÑãÜ©×ûÍæãJszàÝûb Lêk+:0&€ðkYÁþbýíƒc")AÃ[·ÒÊàör0¯[±­¹ä¢hpC/èÀ}\¯@@2ß!ËvÅÚš[àÍ´…êT²wQuµ™«¬ìŸµÔæ@mÍáÑÂîüÍâ¹l©Èý)8¼ÞSGÿ{3õ?Ć;`ºmqíGµLˆÑPø^Ü«¾Å"3éã%ÉGÕ?°¥ˆä4IËÓ8þ-¦…¹)%cÞ4铺“÷íâ Ø÷w²â2×r%¯”H°Å”°t­`nvlä©€*/¯çë¾ÊFøñ ´…£a1úÔ¾:°#`Ím•´ÁŠªm¹ >åkü;eìëÿ˜ÔŠh$Œ<®E²µLïW:Ä|‘rŽÕ]Ps] ®¶5Ü#¯OÜXëuÂ?ßs«.‹šÞrÈàÔ%°‰õ-Èâjåy´¤½Zžø¿ªMÓ„qÛ=ª:³ôb輄+Q˜Žæ·•Á„÷ -%€Toɀəqµ€—<íòïí$ßùsôv“C»¦8t-eé5E×c…~qW€Ž>Uu$„#ý6À·ñìKœ1€¡þ­•a=ð~­z?κœžwˆPrQ#ì{sÎɆEÿàöHd×l"|¡oMµì…åƒ 6{ê—¡“ïz–3×3XXåv 0ãrç8rkk9YÈù8béÊ?Ù*}†R[nµ©u¡óD ‹Í8_orË>J“å1²‚ÝÎùq;,ߢª˜‚©…èªÂÃÓ­7mÊ ÉRÛÌÏMoc䀚Káê†Ö‰^€ÝG9Òöˆï¤æFªD¦†AÝðÞÃ@1MKšŠ_ÁܱóÄG=r-"aÒVKÁ¸9,KpjÌoo›nÌ­/½\ŸfSÓŠe@x‚j èË[äáÎèèÔÃÐ F­p÷ÇÏFQ3 +ô#•Í‡©ŽÛݧ…÷c¬ã£öT7)=ÈvÐÇ–`¶|2xäØR”lêRÓ3kÿùCÌ{Ž*†ÚõôûuèîL€Ãt•3ÊrLpíuq¿¸@ Ûö^×aìÍú³°þEnš šÐ²á¶……Ñ?|I;g@ Ö$‚Ö=›Ò{úþ´bÌCúޣíVÛJn'ð î­Î{mÅð9±Õ_)ÖH3Š¼ó;Š/9ŽpbJ•œoÀÜ—ŸS/ûÚ¢)˜ÍšNŽgoñE(ý\Äõ;"€>M <î3ÌßÄÍT¯+$+‹Àl’AÞpk)öÒžê(¡j”ŸäÅk!9†vE²¾žÀXðâÕ'8Øõ¸1½X=ªw·*nš°´¶r¢û^£YÁÛ0¢Y:ŠxºÒóåþÁ&óиMÐnQqÐÁTÎö±õ|¦M,%7@4^D”¬žQ‹Ï2¾SÙ0rY˜3‰€)wRŸâ-ˆ™| 7¬Ð ÂÅ U·Mªô×–hȼ´:\ hÙ?šä´Ì¸.msÚ"a¶Ô>šßÈpb}ˆi¹©/}ÃSwÑ»B—dQj4Úˆ¯cªe²à¬g¦"þ&Zðd+BØ¡l~¡„œŽðM}¿Z_“r©ØCñeÛý¥asÇR´µÕ2L îK#²NO’“z)ê…Ýåy «ˆ44^³÷Äÿ&,K<Ë:ó§vø½MKÞ9Â!+E;b¬ÀXñÝ>ßÏÌC»AU|–xhTºˆ&uf0x[å5'zkÔ~bucN–ÏyÖªZ™M´ -ýõDé ÑŽ¨rêu–[m™ áVÜûøRsº?ß·啌͟¼ºÊÔñËà ª6 n9 -á©õɘÌ*ú ¨·aîexGÀ«ç̹­!J@=/YUœªôžæ†’©äÁ?‰Õªü6í$Kþôz76}šJè?©Í7àÉOkµˆæ(ÚJ9aû™™K¬Á ˜Î%¸Œm-ê#´ ºït›~„ÎXÒ„H1º° èžÊW«–Ùè(š9[jfà“ó:õ$Çá;DeK¹ÓŠgU^Å(_£tÒ¬ª©;kq¨—avûdÐ|æñ5¯w2 žEÎœ " 7žyY£–cM¯]GB´:ƒy0&ŸmjÛVŽØ­‘ -©ë–} ¸Œhj¬ÑÉ£f/›IV+\}3bGU ý5"©+IU(€oVžNo±íì⮂Øš¢b"Ñð±öÞ¢:’7cÂéx€ås¯t£! ‹@ïÇ%e)òûÀÒ\ /œCÿsoµ^“ªê- qhÏKä¡p Ú€ó&êØ /_Ïü +cü· ú¦‚†Àð[ƒÒó}Íú»H~vÔ˜¢ñ†~s›˜I« ƒ¿“Ò8¤Ð¯wªjådrìR6¸v¥E#U?9¦Õ3Xaò“g9riM›Éþ™ˆá`Ýä¹jî7P˜ÏJ“éà=®¯¨ûg]Y€ëým×½—±ÏR  r*b›z© ŸaÖÐW›¡;‰íÜPUf6;‚ …{3O€FÅ%Ík]Ýkœù¢»íå­0“™„‡km=?èVäÚ%N"6_N{(WLJHßû—5kp;.™VT33³ƒ3Þ–wX® UB`Öß[5¼Ó}ת裸Ï·áU;É9•®Ögó.a(ÙéàµQîÃαþîßÈ€oVöãÚ>!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 +1979 0 obj +<< +/Length1 1425 +/Length2 6648 +/Length3 0 +/Length 8073 +>> +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ËØ +!ç>>>>>> merge-paraggr:docs/psblas-3.7.pdf +<< +/Length1 1460 +/Length2 7107 +/Length3 0 +/Length 8567 +>> +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 -1929 0 obj +<<<<<<< HEAD:docs/psblas-3.6.pdf +1931 0 obj +======= +1983 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << -/Length1 2382 -/Length2 17618 +/Length1 2131 +/Length2 14577 /Length3 0 -/Length 20000 +/Length 16708 >> stream -%!PS-AdobeFont-1.0: CMBX12 003.002 -%%Title: CMBX12 +%!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 CMBX12. +%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/CMBX12 known{/CMBX12 findfont dup/UniqueID known{dup -/UniqueID get 5000769 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 /BWDLNI+CMBX12 def -/FontBBox {-53 -251 1139 750 }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 CMBX12.) readonly def -/FullName (CMBX12) 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 (Bold) readonly def +/Weight (Medium) readonly def /ItalicAngle 0 def /isFixedPitch false def /UnderlinePosition -100 def @@ -24869,39 +43413,24 @@ FontDirectory/CMBX12 known{/CMBX12 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 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 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 124 /emdash put -dup 123 /endash put dup 102 /f put -dup 14 /ffi put -dup 12 /fi put dup 53 /five put dup 52 /four put dup 103 /g put @@ -24920,11 +43449,11 @@ dup 40 /parenleft put dup 41 /parenright put dup 46 /period put dup 113 /q put -dup 39 /quoteright 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 @@ -24933,153 +43462,13 @@ 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×{¨¦J†‹¦f^Ö·>½aq4±!¿Ù<ªËÏáËé_CªãцcQâ%BÉélSŸ¾ ³7§Òý1_£ -sQ¾çýz‹­Ôœrƒ?ÆktíP2‡™Ã’l„õ(?¾è‡è–×6Ø¢ÆÅ9~Ò'´’ÿ@‘Ø2b¡t[Á{ax í¾7øñ}ÏÏGnž[ôTYí>TÐÉ#aÊ1h!Ÿ;`ížWÈÆ®ÿk>©ÑKj̱ßJ¿zÿÃNžëcƒ?Ú^<æù@ à×qTåu„Ødª[eÑŽšj:JÁnËKûŠ#2S¢°[”ëÅBb?̬M‚o„²7¯¨aa¤–‰¢'¸‡gô§÷P:δѩ҈ éd¯Bd’|ÑIªÐî…H^wˆM®«Ïe#DDï1«3W“£À‰.ÌÐó¿J.6×®Ô<˜TMÉì"µ>„r(¬N‚Çž– âƒ#›>·ZjÁöh¢Éµ+˜Uþw¯ÿñã -ü´$äÃÐâ\áWN.C¥(VÒ\ïNæ栽¸3ÔA?òl_sÁ©M†P·÷ª ¾ŽyfSy¨áÖ¿bàÍÃ`9upŽÆöPâÈ°NurÖ)L=uh©ŽÕ‚ÒÈDÎÙ¡ºÁPÔ‹^§}·¸ÀÀÔ -ä-¨ÎzU*ÍÛ3¬ç~öãH¥wƒzåQ:ÕÉ»ÖáÍ.”Ñcxºª£v—ª(š‚Pê¯}F¤©ö­>Ø昕¶˜å4“¼8zeU+Jíùk <>,H~®^«ÈU>¯~Þ~)9–GŸ-_„+ÏÔ‡—2ø¼mšiæùÎ1r±•©ìôÅ>Z«îÌÞ?ÏŽÍ8âPZmè#meDPôÑš¨ˆ6º‘”ù9¦v=hEÀ_X(Æy†Nø˜(9§çd5Ö<¢ÞX4ª»5!ð XC›°EJöŽ«¾·\ØÔ]X¡º–´®›üÙl*¸ÔÌ:Yµ->pÉ7ö•¸Lºû´ÇØZžÇC~³Çlõùõ¬Š»d™1¤Í:/ú g!,Ç -½Ü}¡QÎ+ð93V{ ¾•QlÖëG®µ¶â 7!;yq+áæ«ñ ÒJ´•Aë æv÷j/rÐÕÚœƒZP)4°fÖ+OpX_ˆt~ 5–[RZ$Ò¹¤˜=#®e@K*W¼E‰¯t_É-J½”Ç bΣ‡£óZdð©h‡–²‹Ä>xNí©¢Þpãs¦¹GL€ÙO¥h>óŸÓoôÓë ¨ÀÚJ;ðJ+\m -ÎJû6ÊÂkŽÖm9"N `DÒÁ[½ð èh6w{Ac<=Þ®v}›ÌPC¥ßÒ*Š|sA×—ìfKÆ+ô­1!­§“Snù¤Åã~#_*†]žµ\ið!ùJÍiœÊq˘mJ K³ f½ ˆy*Sù}ö‰iGV6wa·á$m²†v<zZQ^LÕç0NêRqšö!Û*7ÉuLO¼Î=bÍ~îü_ÝJ ýC‚I?<5ñ¥ T zs§´í}uL`–MØ€ª¾"7žK¾Ó î÷ç»òä†Ý8yO ‹{òò¤| v`)Â.D†3¡Ùæ•K$•£è ™¼ ,3²š–ÒÝsÃD»àÓRÿ‰“¥ÂT ¶€Ìc±«2쑃%üyD\M´S9HØðQ¼ÕrfôG§^ü\55‡•#ãÙv[…YÏ´)çKäS¥^´~n¹™­MXû,8&£7a Æd$þ—Ý• ^t/WØyÏ¿¿Ä§ó¬4¸QK{)Ù=Í…WD¼d>»oeêÚZ›pÙ•i„-e@P’Lÿb|¬ö#p"6¿KLPXËßzb¦ŸZ†cÒ÷}ÿí)%LØKfO2Ý®âà (NÔ´U¯-´eÿ½rŸŒòu R«¹yŒTkl>º'à²HíÓ Þ9Ñ‚-”)ù¿ûu± -Àu+l´dõä4µé¸z©cLs‡“øTJ[:¬vÎü…æŒ?W‰Nø‹M*º °NiïîLfófFÔ/§? £Ì”oÎÌ_aÍ! Ü âBêt]õz‚\½›¬Þ”R/™r4¤ëèëMú¨–Õ›×FwÈïe5'Ž]ò´ZÀPÍpÈŽ×׶¦r¯?ÈPa„ÉÎL“'-Å -Ïcª‹Ü÷3G}¥Tç'šÚ¡nÀ#È^>Ò Ö' -›¸€Þ€ÜFø¾wMOT¯DsJ˜ËQº´úÁƒ{ û½TÞ¾·ô2®V‘®NsßÒŽûò¾%BƒÚhŒòÛ$×,áó>Ÿæ‡óoéK—Ú"HϯÔ  ¸«2ÎB¨UÍ7'J±(¶ï»Ç›Ñò­c1PIÝá÷.l QÔjÉF%jŸ¨P´ -1î»zb2É®±W€ÞM+mK·„¹ÆÇf,"Ü/3~£Ä¯;ûö–7¢/7Á­=Ëo-çR%€Šæàn–JB¶@næÿ6A0éÂhÀRF9°ŸTÖ {(¢&˜ð$ß…:Ëôh¿÷ÿõMÿjÀ稟 Øì%FV„ÿÚˆGâÈv·‚?`S:àë:JepRÆ̶Éøâ9›«Œ ËÝy?šO_ɼ4—ü:╱bEç V]„1¶ÒVðùb,ƒ"‡KoF0dbaºìÿÌŸÞf4G^̬k’({çÃÍ:Ü -™µþÞ]-eJ·Øb•ËcÕ?±ŸüÌhÉ÷s+΢ŠúÆ_µs›žÆS²è,at¨yi±ñÑÌrþ¹%´òF3üg¥Ÿ¥Þ‹&¢M}ØÛ¨È3ŸDkÈh`\Ÿrud>ßñ;÷i¹A_¾î‰ -oF_Ñ™ckõN›Ô‹øn`¢úv×Õ)2š•Û™’ä$#í 6ùÑ{þïü«ç⮶\FvõUìW ¿€lî -%x[g´Ôí…j6~¥C ÔÜ"’’^klC²ïyºÜ%þ)Ð%n¶WÕFœO/M™y­ÉÔç~óZq½í©ÚiI¢…$¦ŸCËT›*xƒªÅ]ûªç–)ôiŸt4Z›–VÔ]må‰VÓ‘ÚOû“€®õ¼)giþ¹ -ò%-JUÆ [f°TX7Ô/.…c‡‹Uˆ,÷h7ï8M¢4Ïê zè9:ã̳ájþmrvõ›PôŽ# >’ b€xò»ã_÷»¦ËLøğ y«†ª“ƒ°ôÏ5ÑR@/{fëQCñ}«dÊÀÈ×ö~Øãr³é!¯4»ýŸÑõ»ŒfP£o·í€¿MÓ+^',˜î6_/ÛW{hØÍÉïÉ/‰ÑšêÌjç³S}ÒþíJ‡z Ñs†ŠÕ¶äŠáÖj ¨Þ³~z›L{qA\RÒh$)‹:zNSJLÝyj^žÄ”Ç’µÆ)ÒTÐ~ÐKZAúP0‚JP~(>~9â&Ã¥ÞvÁâ^ÿ"ƒ¾)½‡X5ç=hNÒ‚aNز©%1âÖv1Ügv?ç€46³7Hö‘ë!þóµNôýÁj¢âO4¨½Ù¾bÝÿ夹t¡Fòyòæ³åõñ&ï{ówQ[+ZŠJ’¢q¸ -+¹á@ ïãmn,ßjMnEfI m ¨RG¯U­´Y¯8šøN…¨£ÿKŠ:]ĤB!ªÅN?€JŠïç'×A.ökÀ{¶üç­ác㣆À+/lB Ñ~z…÷-æ  ¾NœWWc»rÐé…‰Œ?ÂV,d€\$;¦¬tTRÀ%M8ÁDì¸ÐLŸsY{‰D´#4 øƒD{a©\j;·$n¥dÊŸ'ÍÍKE –'p“å aÓöÜ_C1ÖdüÊüaEEÜ4"¿¦<[êɬ}7€7%غ™ç€k/2I¶k‰'­§wb<ÌB•ö|Ç;Yâ‘ ®¿lÀF{ت,öœæ¥9 -',>ƒlë£Zqq@°`‰C‹°î,6Ú|òUè²[2Ç©{ø¸Ìåæ{ô_³ŠÛW{l¼[À(õ˜ÜE¬ã…œ&´K!.0té)¬¥fðõÕÔó7•ŽlÑnšMwåX<œ |É ¿ø¡¸ðÞw2#»Ê:|Ëм6Þ¡×4Hù°¥Ôkrñ~I„EŽ¥môÔñšv­‰¯b,Â[šxª‚áÈY…@·˜àrL·À'ú3Ë:`¥A7C~X+_显R#GäAVÄt]ŠDÞd ¾´! Ö0€â*ußÛzôbä°‚˜°ë«rYÑí¦²NŠ°Ÿ¶%óÑgòÈUX&h͈6ØO¾çóúàÔWÎ2±^ÚøzG¯íü iN ÒΫýýyf½_Sÿ"Ù>û.g`öB6Gç -ýÈëB•üÈdXîµõŽ¹XE}±œí……æeW»_èŸllQ©6ýio¨„’F<³3Ô™üZþÝâN%ÞQ^wÎ݃‹Ã{›&E­Œ:¢k= ‰éñšB¨±·I|¥• -Ÿ~ÕÚ›¯fK©ikx¥ îzÁmµ¸ Ó3úÙ³~mík -R£-¥·ãr»H±ës–Ú‰ÚüZ§å¬ª.]þÁ]¢Mmëјrx¼ñâ±÷ùÁ„{%ðìu_†p²Õ[ -µ¼5£~`3ë1>pßíaë­jûdoTÎÇê™&Ø]à¿J[Èþ°Ý[è€@Ç¿&#F8iã ^9›¶<“Œ„wÑe+¡-§l·½B¡dœ›vï>äB©2pá["ój×aƯ˜²ÚÏeskƒþ40­?‚ô­`××ož£Ñ‘L^Õe‰™† OƒÐÙa¯ÇgçJãQóIs[lôõˆyZ¥ž·&C´®•í×X”ŠO—­»3¼UjtY¸èVÄm£öEß!¿Ø“ jyÙåfØnš¦(³Rv64‰Ÿ‰‹•÷£ê¾™o^vŸ„îÑXárˆG˜‹ËÎ\³PidD‡·†¦FO‹"ˆpMåx -Âz¶M¡¬"tì@¿€ª-:C.R<ÂɱƒL?˜èl)†ÃLdè£*v9l¨$›ÞÙ¨‹‹{þK4™ð‚ìuåþ)šPyœºhù(ËÐÇÐaÔÑ…=žµ.¯Á+¿Årc[Š3—(_«»5&Ò 'ÔâÖâ,Ý[ýwN´øÚäÓ¾AìsqÒ;eÃÖcµITW<1ó>‰±i¤pÛ×!þñ©A˜3²`TyR^ÖÅ"nBØ…W>FgI³Ìh“¥”!ßri7?ƒŠôK!—Ìn$içáQw‘?P îé„÷|”–‰å£zZ´I0ž7h³9WÝàèð´$uã™ ò]ˆ|lì´š¿hNˆ/쎻š~zà gxæ ,àšþ>f‰´åÑáI„àÑHÐU*“ŠÙ#CuJšB8ÌH±ß“¾6Ì'bmêO½¦qèIhz®áëVÀ[ 3ãmÔE)Îô”®ûª˜ôwÙÐÜÄM“Ä15 7ÒDP¿Û ’± ´ÖÔpSÏå¬E”-Ñ«u8°¯ýOZ(Â׆ZЀ³|(ØìÿT¸ak(.QMCê“ô´Ët‹t®Fs -óÃäß‘±3)‡a¶¹B¨þÖvöñ‹ -µ :’&Ø!ñ%Ý›C–:0Ë`(Ë}SùFI´‚ìЧÔÚà<´yŽ%H0TíŽIrwr)­Ÿ1PKˆâT¨9tÒ¼ü}ñò>/ÄòÄä³Ü©ûƒ@A“GY™CvÙÐv+«ûYyô°Ü6 æÓs¡åƒÈ6†kaIñâJŽ;óÁ`µpCˆº|3¨GŒÜXÓåU/¦-mפՉâ)†þ*‡rÎ…¢UÒXJÒ”i“´íî*k6ÿGi†ÜõKõìc0˜õyË:ñe±ž–eâ{…bçf]. si›/ž+"÷ή,ÓFâÿ‘mÕUˆŠòëHýB¼¯4¡ìŸœâ0v¯I”µA4½ØaÝ0)‰rZÞ¦ä Lm"‰2ËC(6‰Óç7ÿ´ØÃœ¼´`¡¨ç:R¯0=_}¢ ¤5Æê0›ý¡(EMè`þiB4-O*løW«„MÆÜ´¹[?œæIeÄ3LtM‰)l¹Ð²>Vc8½j^R°z_Vßq\c6aÚÔ¾Sný6†VË -³8EÕLG´å! ;Ì$jHìŒC‘> -U]o fÛKÚž -ƒàÝ1yœ—‹&ä8µ³ŸªÙÝ›!al Jü ‚$$óÁ0×X0Ž|øÉ^K)§"×ñE)­É‘ÕÏÌ`pûƒL±.¤Š±›M×!L"4­0ðaW/ª7åÞú·è±[¡Š -«½º¤UèT•V×F "Öf¬• G -©xàaöËkî+´!ÙµuæÁ²„z¡ø"J6¬§œ¹7Ȳ‡Y¶z=ožNÑ©Y€XMËø»Õ.?§G¼Ì‚\ ÐîA†¿ööGv$ߦoƒQ±³ÒÝ7@~™nÉ@Y„›ŠxKûéÅo^PetWÎEô>`o1ƨð=øŠŽ‚ôô‰ -~xÄy†¥œv®¬qeÑ.£=7µ0"øL3v€Žp£6 ãtA ìEó&îEõ®à3U@¯VG•ƒ±÷Õí DÏ‹=|Ð([<2GeTÁ -âDõOÑ6O«õ@ïxÔ*ØA(ÃæËTع·bHЯ'–æYmî-¼£_÷X@qžÌs÷[^’8ÁaŽ”5†e@@ˆlÙ\T>oOHf‚©µ¡R»¾,i¹”†ê½Ž+rá[»‹&ðôß—€y·™.ƒbF/ßçµÙÌm±Mš—†­çÉ•—ß©!’q'£R[d[CÅð£‰Èð§6ê|okÈŸßeÂÿºfJq‰ËCóœli¸—|%ˆ§[XDeÔ6frHÇ{\mÁƒÌ½lˆÑbwnW Œ€¤¨b˜e8JomT]Š¾jÓ´G,‡çƒH6ìJrý‹<ܯ”08öy+eF3{&üFÍá'k³‘Õ<_›`M’8Ž.ø]î5*ƒ44ª–™Ôñ½,Š“U›Lç‡Ü†—è…%™GDcÙ“Ph1ëö_‰E^n2ÖÝgV™„˜Ñˆÿ&ÍÇ€Ÿ(U"à¨ÙàT3dPD ²b´güºoùÑ—-|”|î⯋l’@º(à -‡\k”]´¶È¡²n”÷ Ç*¦dh´…!bJìSaœUU;tV?)º˜j~…—©ŸJÈb"¤œ2\vLóp]24=4i ÜwÒÎäEëÇø%w^»é#0¼ \Ì+kIÉc>:¸“­;Í=3J‚î#ñ¦éÿ‚ëJ|5U~±yO÷×iC2åÂáÌÝöU7:wÏï¹rIDšsœ.¨ãÞÞ)%R°@d²÷„0®a;‹Ç=ûM ÁÙ¥ÿ¯ŒÅçWi!á÷µPœJ¾úÇš¾_©*¤ª (½øìéôŠKW­æÉ#©õÅ!éªSQ!C­Ü½Èî2g„§ ߊl“ÓÛYð›rdw?¿Q¼}>pTLžWÞݸihw77çÔÄ»¸ŒŸ\>è³PhKm„UBCñRu„~—ºÅ•äf»™Ì®cèeèågûÝ÷Ä3åg$¦¸ìÂÀÀôÊKú¡¯©ÿð_DsÍ™9(¯ûSo,ò„êFÂ,®9æ…™¦r¦¡¿G -¿” ·¨6zšÞ.õŸøº(zê°4¿~ ™^)e÷9$ñÒt?QžÌÜd@GýÝÅRÞöÓ¢ƒUÆKÂÖnÝ.†¢æ84]6 \°‚ /梖7à"Vx¥Â¿o¶˜_Eeâ–äR¶$è:â«çÛ{r s2.¦ÔT®¸‹“Lf:Pcç9‚„ žÁo/€‡ËùO¢ -ò |2åVsx¬<‡±ôb¡YÎ%Çj;«•Å§\Aí”u9Ü’z€Bi#½mþh?T‹™ GüÌqÌ wø+CŠ›x°Ì\Íox$X×0YKu›{§µLÁ3è]¡jÀÒ{â‚Ciý}X ¢¿¬ŠUÚ¬ý±+pV½8.G–ï>D3K7Ÿ5S‚À2 t ècìÈg-¬Ì†aÛÞs{€Tª-S’aK†ÃÆŠ”ÓUþÖàôš¸6æÜ1vjßn9èp¥&aÉøý®ãæÐ+#:òC¤êæi…ªè¥Ïÿ ÌwÇ ’28·‹Ö7 8¶+î1zI "~GüÚ§t/r6ö©3 (AhG‘£M€3ëFA+ïSáÀ•Èàz’ÀÉd³'ãôj–_Õúðéž|b2*; ìOɲš2o(LWÜ›ÍÄy€‰ ƒá½¬WÒ|Å -æV„.byö™ÕŠ\äZ¾F=ðßðn=í Jí4"ä5ÉkªYî*u dÛzÂ[-–hôŒ]*—òÄÃɤÜË¡0B}ñ¿_ÝÈ€ócJÚŠÆ|n^ÓÃÚk˜æûEÑäá!Ù€™˜÷:' ÿ@1óÇ ·Bžø8M*zôüžlUØ‚Éî”1â2ß…R+á`ÙòB£#™´§PðlÈ©¼lº¾#¢ öbžá:XF3 —à\•"ØéƤgcF6È¢gˆ4 ³YË&N±eÈ\SŸ™{Y&¯öÉĸ{n.ìölX³™Å4 ·êÌ=…:ÁŽ˜@:L%þ0¹‰:`.t·Ó‰–À«%«€i☠Xš¦¶L›K¬>©+a|˜ó»G‚Ÿ³ ØN™«Ký£Š&‹¾þC7R_ rç?(°}44‰ªô*ÌäwTðþm¼lZ†ÌDظ 9vê+üÛ´›í c¿ºDní¶WÖ‹K}>ö%9 Q¨dþ6¶³ÿ•?[Ç¡A¡¯/nJRù^è@‘Rï3(˜gü­ -¡¨ŠRR³ß´Eó&‡ƒØN,¤ë$›vFÅäüåeŽWO“ÃzÓHU¾Ÿ£³á0ȉ,&ïi¡w{ñ1™… 2£½´ô“6å -I€Õh½g2§ûÅJè;ûL} 3Ï>Ì»‰”ìñ,½¥ùÄßúf…0úÒ§À¯D£v(_4«}¦ã;"¡_,ùkÐÏr7&*­¼1:œËâõ¬nú%ÝÜÈVNªF/nùÎ{hc87P¢Îö‚M9¹ílûŒZàcd^C¢7NO¼…c{:ODç€Ež)ž”Èï>:5r³Ê Iúå",(ö%Lb“ë9T[p…ÙÊóå£Ñ)¢ B8i¾)«í1ü*Qiþ‰É¸â£…l®ä)OêΩc„LK?‘ Ë_ŠªUt/®éŽ5¥б6&ŒÏû:‚£ig~½luK%6-…Åõº™ZŠÎKÕZ„P°cð,fo £\L…TžÉ®òœ"¿§BÄ~ ¦‹àu÷\T× "|Å^ÀñšôcP?µÈYJíx$]‰‚7ƒ™XÉÍŽÁ¬L21X-q}Êȇø°QöU$î´·dÀªW½ÙZ‰9 ØÔÑ‘nٺÄ÷“­ G\Æ/©Ý÷=Dën› }‹”ž¬Eᄹ’ÔZ&€º|4\óÄʸ:I÷“GÅK ^}ð¸߮H:$»4ß1¹Ô·1 Ä÷Ž—)OZeÐÈ¥3V\Éw:ZR¬`SÄF¸&´´ê (ˆeWþWFx´‹Î~úïÌ 2K‘¯•x|ðÚÓò6¹Á{^3˜—@)ÀÐ0¨Ôùæ®ášž©uÎ_]á®_æ…cOÕ:ú»Ú°&*‹$“-tÛ9&1©ÍÆZW¼Qj¢éœ3;È\/:XSŸ3¢ï,eÉ^Ì#µgiSÖJwÛ‘ô\fPn4Al¯Úæv Þ,¢_ãéá“ClK²DWƒ3¯^Ø nB¡0B`TûÀóÇ -…Àìdj7–~Lék·ð§ ¤êj_¼X‘…fåÛÖ+2 tø‚ƒh/ƒ<©÷`u'‚؉-.Ø$‡Ù`°RÄXu{×æ§úŽu ž<"mÀÄÇ94°ÀÍŒ+Šïï]¦eü›ák5:OWȼ–‡TŒì¼°•›5N\™Zâáø(÷[U¼šÅ^€¯¬Ž÷»ÑH[pxëôªòÜYù%îzØ’dóøï®—^#<_óŽûDéÚYk& G_ä$;ÄÆÁ ˆj:K _ö,”Þ“—}µ_fµZ÷¸_&Z>ˆ= -ZÎtÿ‘wRî:ÞÒôp7äÁ•ºl²=œF;¸Sš³?™PÇ÷!ª7?­`Þp«›0¿0½pÐ2–ìºÂ1!øøg+!røGˆ†Ž°¹ÜR\¥kn'ÕŒ;í'usðnÒ²1HÿUó ÄëAòìæ_Ю#ökø·Š—sÒÌéß^zD÷EhO˜V&OÁË pÂÃ7¯jd]“FàÁM¼ºXeùZ¾˜¹6Bü°0Ћ»*ã›\&Ï?{#Šd ÃT8Ý€ šgäklY<¶kd¸ -{w˜ãÑôcp -“Ž÷sOßõwqþ°4˜m@©‹Éï(W_9®JKḃ\q„„ ûõƒ'%UKCÉÅH*ú ÎŽtÊH¼—s¥(e-‹oÿî'Ï=„+™c Œ:Wýâ3yÞ°C÷“ÐÓí¡J“Εa/{~#+4%/»©I„ê L:ˆ²˜O¤Va“à3ÜZ!¨Ò-Ö¥VVÁð«/¿Ü¹éRdÆ ð,æÚðÿo§E¾oÙÒv§‚8• Bi´HbEÐ5>cÝE¬ÆÿÜò.^’Iu­œó>™uhÞ#fF±aLMÆ‚;TdÛµ\é=#fQr¨+Æþ_uº²3³Á¸––³âŽÓËÝé©uÏ–!  M©;Ëk1R_eCµÚ<>éåÆ)ZÕˆwÈKF¬:”ÇJ@à£Ö-þküŠ³Ëh*?%R0˜|tºîc™fEÊ;šN÷ò#§NéÄ_»VEÎ^ÔQÔ4FßÔ67?`áŒùê(bTè/ö¹Ô]€DÅý=±Ç”¹SŠtC=¾]xÿ ä"m¤Ì9¡@­MîDé1ApªÅ>Z‚F_¡VÒÉI€õ£·p&ðaµ0ÀÃL:“íZ— CAý:pûoZ¯Uy’7·B0&c©ÙÁßGñŸ¿í•B[_Û^’^½,7Žb8^h³¡–Ô˜xÐôÝ;;#Ö¹é@‹uTÞ_¶ü…é9i¯ÃÎòÙ H$øu¯d‰Ò_@›Zd,æy0x°‡T2a.îq>*‘%™ayËBü^ÁQËU +Hk=ɹ–Jx`ç Œ/K„8Æ3`J€|ên^’ŸMH%¤÷ØùÆPtƒX¦sº=¯Žë~zS£'ª]-SÜý¢Ÿá [߀£ž³Š™¯UÿÑ%&†ŠÊ³Oè¦k×8Ë#0“ªúTÿ¥«‚Â=éüÇZ¿ïõWÀ§˜øöë†ëòa¢öêÉmócBß;}ÑÆO‰¾‹HÃÌ>Èʤûؘ±#GËEňËëc²Õ±¥ó¡ÓPÅݬäú·¼ôg4Ý|žgáüûrÀ Æ”®ÄšR -á¤Ñx€œY³,©¾ôæXÂ_¾‡Ïjcþ’†sX[4Ú¦vé–.&¡¼ü²KP¨D=^†âÞfÂsÉðòÞ‡¢àçÛ!レû¿Vä[Ôhûd¹×MàU¥T;—Þ˜9?4I¢V÷f¥©VáMeùy.pÓ[FÕÁÑ]…ÂWUVpFYÛÐ4¶©®)“&ú‡b#“ÃÔFô ì³ÈÈ4ÎHëy~þákèqµ›èZ\‚ºb›@QUSÛ?qQùÏ/W)Ä/~F¢ÄY¢J˜™Ì˜^™ÂÕ¥TåW I»ˆmåvjåAš6aŠ³×EÊEr=N1Qiã/U<îîP¶rÍâU¬*|¯Ï9²ÀD&yk%>qïg(|å1Mô#d6užölcT ’IWxùK¯ÍÖf›Ùe“›¹ªJKÞ­±­w™žO‚ }Â^”þßM{!âã„C -ˆŒ²a “FÆBx$ÃŽÑ]4mÙÂNè.„}"m<.<É>aíF2H |Ú.§Õçì!6‘-ÛˆR¦:¤òŠZŽhèˆò]¤mnúÞZêILÂÐØUÅãž0éÛV¹1¯rj^Aëg"E3KÞ -\ø[~Oß0q.-X%Ò€¸¸©J \ Í®œ›˜aÞ°YŸå¯ãQ=¨&àŽáw,œcX\³8 —±ÒϢȭXCD˜JG]صvHüÔuÖkZ 5èŒùO7k¶¿Dž6á,?†Ôê N+ø);mÕÖBÏt|ý] -(ºó( ð†ô6„F,?¯*æMúuƒ;M3¤‹`(·Á•Æ}ÃK ‘_øYï[ðñ®qxÀEÍà{}>D<üžŒ2½>%,¯îGTzΔ³eßL+ã °,#<=³vÁ%JÇêwʶ`½?¼õ»ýÒ=Žý”2~4%4®Çò~4Ü_t0ø¶^KŽÐ™¥M+†qÃè¼ -ݲŽ%E®íJl$ÞÉCtßñ¿šxÒë¾®ÜÀ¸ú^ׄV¯¯Ö°+D;»kcï#9¢‘!œb9XF"•ŒýÙoMÇWC§¨îÄQÊúHëð÷gÍ-#’©ÆÐ÷Mb‚dè=ÉG6 ‡Þ‰i? -ŠˆðL;ef”\ÃÀþâM˜î&pwój<$7½u¹ÊSB¸þgÍ… úP™ßi"µW¥¬ìòCÒ¯ÑÞÒé id¹‚Õ_SÚ¯FÂßgE^ÎJ¦íEn`¯ïù=°—’…Å -A*à8G¸`µ©Åð¾O¾CÉòï)ÁKc_–pýµŠê(‰Ž¼ÆcñŠf…­/2ža±×ò¢¡¡*áø"½A1ïµc«zá.^`WîZ^!µjõÓ Á£ òÞ°íE’·[âpQŒÛ¤¥*Š*ŒHÿI½åã t7Ì]´ü)ës÷}‡x;L¤\~M1’•pÏtc½ÿm3ÐE%Ào{.ÂïÂBvå΃™Nv´ñ^…³+¬+ìŽO¾„„–=GXñ<«&j¿0[ §om¨ô¨Ç˜ui}ïÇ‹4[Ù|7yÁ˜çYÃ/×¥ªÅQ+¥+¶%1[tS¿*lÐÖ—eñ2'UT ã%Tn5R*ݾÝMWˆ·ò&ÇFL/—å6p±LAÒÛÏk»ˆwcZ…ÍVŒ‡‚T¬öp¨kzG<ªT¯2ݘEîovª‰ß -!`‘ãÄí×Õàµ'TV4ÌãߦþÃë©°.“Ä™ËòæƒÌÁ Î:K<÷jpô†Ìô:’%ú‹uÅ]v"zP…”$ü¡ee?È‘²4üMd– -­S¥b‚A#úJx@;ÄDZòw†îòrçe³hö©"„½mÞaåÍ»ìî×uqðY¼Å÷ص±8G›C–úêú ¿säõÆ&bHÑtFÔ÷*ÞzÜjÖÓ|¼ï&_™þ’T‰ 7—vÊgøÕÊ@™cÕo<.S㈻, -Ûêõ *pÕŽZEvë÷Áôæ–·%ÅX5¿IYJW|ˆ›¯{É]\DÜ!£A|>)»1µ àsà´Ë§îßÐÉfEÔ9 uçéÌÝ{G¨toŸT -y¢\Èûz‘h^¸!Õ›!€Ö$¶_Ò™ÀXƒ -U÷æLßÒ‘ÀôÎák…HLõ Ü󤽓®fëÐU ¾¡u!úh lûM¥E§Ý¦BU#5☦Ԅ &‹$«Õâè&™ÂLV%F$è{/¦:ªÀÂÞÉ¢üÒâ²S}¥cÙÛÃi2¾1ÙÇH9·5à7waç‹‚™¾ßqvL¶€ 5((ÈâÍW¥±{Y„5Ž%zÛJ{0ZvjTËFgÔ›Tâ}S?hiKGfƒC2›³‰¿=ºßÙdHγ_ š¶Z$sêLÖèÐlœª³Ê”¿ƒ½:ò¬~.M÷¶BÜ~¦-ZñÀå—œ~i?_æ(%}4âå]´pj´ê„`^´æpII²ÌGêÍó€>ƒýÔÔ{^@´.­·ËåN@cb?íúSãQŠ"q)€& î)U&Âvhßõ´t—¿ c£¿~ÿ,£XFþ?=8ÑÌí£¯hûìt7wÂ’Hßèâé襽Âöhö]"ŽÃãÆw”æþ ÒßÅjy6y‰B ‚—”–Ò–ÁljÜ]ó¤õ‚”M·?xq…ùôºƒNa‰y\ÎÍÃ/yýáÌ›|WÈ¥!5ÊÝðÂ~ëe¬Œs2Ó•ÏAÁ /OòÐ=A!7h»Öæ -=ù/c‹xn4ÃmÛ¸/ÆÊ=T'žÛ:â;®F‡3¨o¤Ÿâž`sø†óÀ›œ.ò¾UIEâÖµè‡,è¼Fð ;µ´Ò>XÐ Ê'ò¾VÔ—C€-]ŒËPA ÛíòNûþÈ7-¨mK¢ §Ň·óø»6o!*õ…>2tˆè£\wëƸþk7_D™MÓ€G©W[È3ew§)|žc¡:»_,à|8dLeÁã"fû—Îpû »™ß#$ ˆ°‚¡o µkø'9DïÂEýA ?æ‚;.dT,JM’w ½N9õ‰zp´ÁéŽçÅþ—Hx²6 Ÿ¨4Lþ¤eAgØ.e%‡”è´pÛÖ$DèçŠ/[øÒ¬Œ&« ¼¦}?æ­]0tVAàÎ$ 8xb•Ùð¯öYåâ/PÄPhwÛsAAvŒeãÌ÷R£;.8>·xj2ÃR—¨»)Må|ÎH†HT®ƒ™ò¥‹jùTùÎK¦ÚÄ”Ô -²Ö-ÊüÊ+m쟟¤}™–4¸šÚ/2O÷i¢6È2XèÔκÄéî“ÞÀÏë±8½ÙlcàËfUÕ -nâOX Ýè—9ã'†î鹇¹æÒ8"QÓâ(£‘KŽå„š¡=„Ÿ„½P_¾‘””#ƒßˆôKŸœÁâLÀÚ¬$Aå¶&[m¥×Euu€#†G=ì¾{ M ¿Ð^O›ÌæM¨>}°zc#ñåsh®mD?Ù%o‚UqöØ -ï·€wÂä!Ø4ø/÷*Ç1Y®# …^Lã+SÆm+¹÷œ}ö_FƒÓòtõ³K‰š|2Ÿ#+äC]—¿D„ã¯è½ BíÊaGÆ%«ä¡35‹Ñ%/–ß'Ú Â>7W_¾ÓXˆöïF˜÷6¼º$+¾`^?0´Co2¬j)JníÑýõNQ6‡“4³0C‡CdeZ¾Œ?¬UÇÍ£=‘¹¸‰—{ Q˜dÙþœ[X tìY÷€SÉ–¨°ê<9¼h üPÉõ=78ÿAé3pçšêb¹§s8Nî†L´5½²xGÓ[déuË–gªaéí_†ûz¤÷ukÓ´÷™ _¦=æwˆöœ{ìøËöü”ÍA H72ÇìRÛ!‰°©~Ì %Äý|€¨VY¹2IJO^Q±ŠCÊ/Z<í.ù|+¢!£]¡ç‹—<+*Zƒ…`g"¢¬f*òƒjr¼d:-ôxñE…”Þ]±;ÍOXScsŒðWç‘ûÇ'Ë_HÈ&pu`sÕÎ -½Ê—®yx|ÒäMÃXF¶‡mœùg›|h¥ÖŠGJ°d_}áSGï–?(Æ>Ž8Ö*’õ`T¶H|à¨ù1³š49±wŠl«/,y‘ßË^6²Jä]¨â!T[nÙV‘Ž¶•%$œÌd­ÜÊZb½U4C¢T$é)«þ˜€ð%ùiP€#vR7A™T¶Ÿe6s·²²q@ñ—üN¾‘¤½|j§À¨t -òu; -endstream -endobj -1931 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‘+ +<<<<<<< HEAD:docs/psblas-3.6.pdf }ì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 @@ -25187,89 +43576,163 @@ endobj /Length2 14638 /Length3 0 /Length 16683 +======= +}ì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 +1985 0 obj +<< +/Length1 2014 +/Length2 14211 +/Length3 0 +/Length 16225 +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> stream -%!PS-AdobeFont-1.0: CMMI10 003.002 -%%Title: CMMI10 +%!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 CMMI10. +%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/CMMI10 known{/CMMI10 findfont dup/UniqueID known{dup -/UniqueID get 5087385 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 +<<<<<<< HEAD:docs/psblas-3.6.pdf /FontName /HKHZAC+CMMI10 def /FontBBox {-32 -250 1048 750 }readonly def +======= +/FontName /KKURMF+CMR9 def +/FontBBox {-39 -250 1036 750 }readonly def +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf /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 CMR9.) readonly def +/FullName (CMR9) 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 67 /C put -dup 68 /D 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 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 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 62 /greater put +dup 104 /h 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 39 /quoteright put dup 114 /r put dup 115 /s put +<<<<<<< HEAD:docs/psblas-3.6.pdf dup 61 /slash put +======= +dup 55 /seven put +dup 54 /six put +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf 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 +<<<<<<< HEAD:docs/psblas-3.6.pdf ÙÖ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 @@ -25335,172 +43798,514 @@ a endstream endobj 1937 0 obj +======= +ÙÖ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 +1987 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << -/Length1 1385 -/Length2 6193 +/Length1 1681 +/Length2 8374 /Length3 0 -/Length 7578 +/Length 10055 >> stream -%!PS-AdobeFont-1.0: CMMI5 003.002 -%%Title: CMMI5 +%!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 CMMI5. +%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/CMMI5 known{/CMMI5 findfont dup/UniqueID known{dup -/UniqueID get 5087380 eq exch/FontType get 1 eq and}{pop false}ifelse +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 /RVPZIX+CMMI5 def -/FontBBox {37 -250 1349 750 }readonly def +/FontName /IMOIOS+CMSY10 def +/FontBBox {-29 -960 1116 775 }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 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 -/ascent 750 def end readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for -dup 105 /i put +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-åÎ<ï˜ø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 +ÙÖ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• -]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~×` +'Ê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 +<<<<<<< HEAD:docs/psblas-3.6.pdf 1939 0 obj +======= +1989 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << -/Length1 1519 -/Length2 8224 +/Length1 1392 +/Length2 6093 /Length3 0 -/Length 9743 +/Length 7485 >> stream -%!PS-AdobeFont-1.0: CMMI7 003.002 -%%Title: CMMI7 +%!PS-AdobeFont-1.0: CMSY7 003.002 +%%Title: CMSY7 %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 CMSY7. % 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/CMSY7 known{/CMSY7 findfont dup/UniqueID known{dup +/UniqueID get 5096648 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 /XNLILI+CMSY7 def +/FontBBox {-15 -951 1251 782 }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 CMSY7.) readonly def +/FullName (CMSY7) 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 +dup 49 /infinity put +dup 0 /minus 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-åÍßᾉ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†&Þm²Ô1$ŽÄ0m §jËAiˆ’rOJÏ´»¼ÑÌ2&Ȉ7.æíBb¾RŒ±{Þ媀E² SÄ.´9ÊÝ/w¸òˆGÑ<#¶éž/[Ó™4Ø»§jz½zqàÑ,I•¥¶Ë‚Ú£zê¯xáþ b˜-ûNH“Êïa§?C*¥‹ÝüÖ¨i´Ö•,þ'ê°u˜ò›ÿ?§(ë£y‘¸³ßÓù/$pì…sÅÜrψSCùo&¸ÓÆÍ°BZËÆŽŠàJ¼ãV¥õ)Hɳøõqa•˜?ÀÂ;× Ž¦j¸²¢­!8‰™·'(zr>0t~‡@B7Òýž´­¼>°Êt«ð®ËXv=Ö»Ìt*˜c·ÄñÇâá´¾þ¢h,ß­…™Ïy‘Æ%b¢ù¹wáøÐbc€2 +Atñ5£åäqm#O:JjÝ’‡ÄcõZÐζÚô$4H¼Pv£-ðV[(èa7ÇÞ5fe–LÔÛ±»2_xgçc†^¨LÕ|Þ_ 7Bcì½1¡ßÄ'mùŽÔ‚ÅÕ ®W +¡³o €bKP¿©ÛfÊAOÜ‘`Ax2zÓËl ÁÜ6 Ü„x}NܱǞëÚÌ–cv[ç^†ñ….ò"ùþcvc¸$Þ#™ÿ›Öï;ša$3ú½õ§|4—xàõß½ ÿ˪ +§„©(¦˜”a@cíRÌÛn6phØšZfzzò?ŠKÊ Ùú$ˆYù¶Jo/ŠqòÊÌ¿”æÍòî.ó1fñ¿÷º„ ’JBÓw'4¸µ?ý}Dò/™& „ÈZ=V—–•¦âͪã7·E ± °ÉŒ¯}€ÞÊœöØD‰ÉíŸöçt÷ÿäǪëÛ…éÄ¿Ìì!ÖX96E'<é•êÂm&)îŽJ¾ÍSw4!3δìí¬áͺ«àž³ÎÌϳ…†—V¹êJ–åq,ƒŽU­ZÄÝ[›JÕ½QK Œž*L—8¯â…³Ó£@0°–ÈûþÚÛg|È°F±`Táåkï•–2˜Ò›»×Ƈð­#ŠÌÉéxbÅ`ƒY@ «Éžno{žÔÓÆäa÷vûXi±…k$È°i='C”áûPEís&>#æšMÌX6­EÌ!‘Hô5é&Bc+ø.s1ï(º’±ˆR9 PZ¨SßIŒÑAˆ »Hï)‡{y,Ñ䲚Üé¶9˜®»’›Ó¨©Òè ‚˜èðÓŽ€TÝ­sŸ9hoq“Va#âûai×Ç$þ•% +eqÀ#*Ö!2þÝ4«S™å"¬xSMò¦GËd£ô‚Á+ˆ×¼”¸d.0r›MVBÚhQzо;7õæíXÎìµbG‰Ç€e4oúxõðu$]ÞŒ'­eÖU„5 v«Ÿi Un…2šˆ\ð¿=6ðXƒÌáFí%Úd蛳¬F!Ï@ßï}}¨ŠqEÍ•¬yb¤†aWà!iúzs¾KöÆB/¯)Pþ»È€œ(eÇK¢Ï¯Ìý˜Í–Xt-}V$è3·Ly¤Úg¦ÕÓX£ù½Ó4ÝÖÏrGæ[‹Úïãó~WñÊÔ 3d<î‡D£it\_†°¥ÿ~ƒ¿/©ŸŠ‘̦ŽîŸ¦š2a(ŸïV2Ú¼N5>DôLødËušN7…:~%Ç|4þ=R/ÕßXÞ)$èIÕ—â- oZ’k~%E ‘:ûÍA@¦äÏ%!&ìŸÑ¯–…•3f8ŸÖlúédƒüMR›-é,0©Fùnœ'YöGwÑëuîÃ_*ÿbä³X®w­=AYq>ý\;B£ÙÅÌ´ *ÏPsç:÷ê Á–·¾«ykç X`§Æ—ŠX¼²¤){—qbudùo›ÿg6€ÒáÅ…)YÎ>6Ð!ëX ä]|VÊmöb¬y1\2=謫Âpƒ‘Ы@ôÖæBo†=E¼pV5Ü%C±Wš¿ÃÐñT©nˆ´ó*q 24»L&’}¤™5VÌ ý$1Æ0›åGô^ëZÔ–,ä´§yu÷¼’êUö¥ÔCFD¥å‡»cl|ˆNz žLÖì‹j-³ÃÖw¿>çO`"'ň"pù=Ÿ ãä¹yz! Ó¡ >ÃèokökTeAÍ\-îïUŽÉuC6˜b•²¹áïlÌÀa÷‡pº¯ ¿à— !²]Šõ˜±/üi¹kêqÂU—ÿ2ä¥Ï¡í¸¿Äq¸Èˆ¯‹G¨‚™G¾5fW Iä2S5ž…6½ÿž k¼€‘äDò6Ø¢š=rE1?tÉÂê×0õ_L‰4*+þQ‡AQîê02|Û–Ž»ª¶]IXá‚Û«çÕ‹ Þœ* ”Å_R߉£Y%´N5Éâ‡6ìÓ_쾦f•¬‡r[pSH1Üë+ÎÌÑ Vs¯«€Ä¤À÷­èQ/ÅyepƒÔˆ+Ó ZÜ50Z·à‚ô7àsk¦{1²5ÖˆÚ’ _‘pÆ´Ÿzò ¸hêñ¨ÄN ­ž“áÑ ÃkÔC˜Ý¬Jÿ±é èLgàNÍOýMê\2³¼ âgË+<’}Ä?ãj|¦;âœOzÀ´^”hÅÆâÀ‹™¥‘Í3Ø»$6˜8ŠF~g?_8öú{ôõuhØx%Ò4‘â|€¿BÝæ‡ôáAiÁj¸Ó%Q8[ÅúŠÿ¶Í7 ¶ŠgëT{Ò5Œp~ktGÛwÔˆò2O«3 ò¥èf’XµµMõßßû‘EO¤¬€Ž¨³ ‡ÞŒPÛ“«‚‹Hb;'5Õðõ¯ºÓíÔ 5ÂAMþ#ÃßЯÐSShÂᘣ²’¬ v‹»q-DnÏZ£;å³Ú¶€ãøϪMÕ€¼ X_ý²IѲ¥Opš¥5À¡a¨ †Bë%ÆØ9¨û£]êZ!ÞØÚ; vý ž°K‹4PmbÒÐ%Û¦Å{) s´—âq¹H”­õ‹¡;ƒj”vÑÉ{î÷ìß{Ûè-‡k+HOï°ßýWͦÿŠòOÌ:G2ïyŒ>®q¬(ÝÞð94Ò(k¾BóúŠ^·oRÒöíÞÌ[/~±C2Ý ²òèí%k M¶ƒà{Ž¶pƒØ„¬Õç5@ew·Œ?ù¼÷›ÙO|¸²;ä¾–ÀdžàyFÛìê1ðª ðN/×òh¦Xj‚ëlhw“TM¶â·Â^™Ê^ÇóòmeH À˜èa…Ø@lU"Ï!ZØÈkÄ>-= IÉJæ-RA*P@·!u¿‰ð¶í)ÊÛÃÖv]e“£µýý$zû_…˜¿®;Wü¥r¬œþ‡³<øËE Å:L=uîD æIßõ0¾•±üéCÆœäzÚÇ¿è«Ö7ÏòŒÚÃ0vãR[`¹´Œü÷ÚÅ)+»:|ú©n–t²sŽyÏ1§~u +|Sž¡‰YÈi`éÙzrFÃ{jGE^WH‹ª7(¤g}MÒÙÔV-²¯*øùdqα[êŠÃ^Ï ˆ×ˆä¼/ÙyÄ‘ Û'T’±i°¨½³:üy’LiêeIµÝFÿxpQõ•,¶iMN¨ñçþc šòËgW³ãK’<þñ½¢ÿêUÄ­Orèå-Š-øï¢t +žcÆ%WR?7PQƒ¼å4ý™µR‹ Mù6‚¤½ÙÔz…ƒ³Ô^(?ÁâµNJiw†ïü¯ŽÒ/µSæõßäfòר® +ì~æ‘õ'Ÿ|à·•N5"ï~ È 2’µòH†*Ùù¡ãŽå/ ~/ÿbÆ=Â/¦j1>~DgÑ(ˉËÌ^¥`eðvs $tñ=EÒ¢õÝ÷;e„ÛÔ.Æ\ü-ʱGÍñ kÀ!*5vèóžºÙ¿N¤¤PÅZ²Kkü^wöc/ÝáBî·!úùÙÞcœoœ +ךkC96M­д…Áð1€®z.ÂÂú‹`õCúŸþÂMkfQ9¹b}L&>¤‚}Œïxƒ^¼³b°aŽÉØÑ™0ìVOH:‹·^ŒjJ¡ÁŠ ¿7kÑw‘–†V‚ëD=Öù§ ÷ÂI˪|Å΄Ä·ÉׄBÄ|ùñ‡ºûÅ¥”“ Ãô¦¯—eêJÜç¹+ë7‚lZ¡MÒó¥Ú³7A4ÁT“Pœp°œžMΩURÀ°–Ä€fìˆÛ+»•‘¾Œ1å•¿Ç*»wΫ‚ËyÍw×f#§²Î†)á }Tn˜®ž$LXãÇP¾Y“ž8ƒ0m]Ð-Ši)e‡S2Œo§›¹Yl¢›u[|0j\¾Ü<­’ûˆ<[²™ì@ wò)Ä8Ãðoœ¿Ü€ Ú¿()íH)g=èÁ{ßøѵŸ¹]?E~T¶¬(õþñÙXˆ'´Š`Tú¿âáÊ—¨£"à ÈA@a8€S$Sçá-ãU¤¼Ã% +ë‰i!äÀú£PƒVy—ZésÖ’uRáÀŠ}ýïùÙ(tºê¦?–ˆi_èÜa³¯|Š„­ Õh¶…Û{Ú¹®õJó²-سì`“x±VDü¬&™`pï +ó óıâjO-N5¬ùV±FG¾ã½•¿ìþ§•Š*KÛûÄ£‡\Çkä.°íõ ál¤X³Scã|rþ[]͘îûQ&‡¬‹!Úa¢ÈX®t­œõ½ñ[ršKR¹_4¶ÙÅRÒ {£“!Ð%3Ý.ƒ}ß +×-BÊ+„ÌÃÞ™ÿã”ûÆiÚýÃ~Õƒ¹•þhÍ îKòç*,ö/h³³Pjæ¾{ä`ƒ ¿DCôw_hô¸/°p3eH/IœAªÉ)iðÂk#û¸U ]`­&oð(Ìk3½>aÔl¼Œ˜ìøÑ=‰‚K½ +ß/î3@¶AÐ|³G+ÞTB‹éRæð׃ 3OÖñAãB¸lÂÑ{æsl"Îñ1÷7 ãÎkÊÒ_‘eäÑ-ÿQ†N¬FQ›€Õ› +”î–ð*i¾Ä=é·ƒÜF8ì*²¡à%=M­m†À[§Í¡]7·H‚ƒ/éÓÈ«e”­/•·c‘“Eãr\4tE>×I2»8ݳT fØÖó‡L ÷C“#Ñhš +wBóÅ«d™rÏØ|ø´{ÈTå5¡QoÝ2¾í¾ë?P§çmeˆÐ„žÛ.-ËϬå]l²Æ¿Éò­8¡ÿ4šþ<ÎJë-G§ÑÄ@z¿ñ¼Îˬðõ^€ocž@â‚o‚Zò´´´Ün"yréÁègÎeÙá£Â¬bÓ$É)§2ž¬¥Q½8ÛR‹åïóÈDdCXÒ› +´FÅêHzÍ©¤îàÍ£ã‡õfˆ±%PJQ¬Ûƒ“!ÇZÛ‰ù 0ÅzÜA_ò – wóÉ +WA#¡dÔç±\ä^>¤c:ü‘SôÔ¬R(éþñíéŒî$Žt}ñ< +Hú ˆ¦Îy·Y>f.–ðÇ’ñ©RÇâ…¬ºj© }ª+P®ñjE.£€¦³§ÔøX¸ ¬Ëg8KG_î0³!Öoôz¦Wƒü*4]xÂìĪçÁ³ ëÙ3mñ½6¢÷ rèj¡¹Í˜çuvª>lLWw¥PNqåGÞu2ô þ”îÿp;ÝzÄ I³h¥¤=ìIÀJ³  +ÝóRüœÀœæX+¶®%FÄÖR1ôz¬ +ÒDÈ:âg²‹ò{°Yò}3‚ÿ>úî6ïÝç ÆK—ðQhõl §ØÅÿ“¦[§»Ä†‰èŸ.^^c}.s§«¥à^ÖœG>ÿ?÷±þîËWJÌãõXeô Ñ–ÒŒ{*òënÆxÒzî¨vÀ–±Îæ¢4ÈyÛ«tQ/àòÿx`î¿k4çÙžÉvqK_âÀù<-à­Ûk¸{‚怣;€-ëĦ©fÚ˜ nοHÌ–cò]rj þ†N ?ãHvl‡Yng–:ñ®W u"Þk%õòðN6Ê@ |õ^ö(Ì®‡Pˆr@¸Í€ endstream endobj +<<<<<<< HEAD:docs/psblas-3.6.pdf 1941 0 obj +======= +1884 0 obj << -/Length1 1413 -/Length2 6524 -/Length3 0 -/Length 7937 +/Type /ObjStm +/N 100 +/First 989 +/Length 18652 +>> +stream +1879 0 1886 132 1888 250 561 309 1885 367 1892 473 1889 621 1890 767 1894 914 565 972 +1891 1029 1896 1135 1898 1253 569 1312 1895 1370 1903 1463 1899 1611 1900 1760 1905 1905 573 1963 +1906 2020 1907 2078 1908 2136 1909 2194 1902 2252 1915 2449 1901 2615 1911 2761 1912 2903 1913 3047 +1917 3192 1914 3251 1920 3370 1918 3509 1922 3653 1919 3711 1925 3817 1927 3935 1924 3994 1929 4061 +1931 4179 1932 4237 780 4295 1933 4352 831 4409 830 4466 786 4523 787 4580 803 4637 783 4694 +784 4751 1934 4808 779 4866 1935 4923 1928 4981 1937 5074 1939 5192 948 5251 818 5309 785 5367 +782 5425 778 5483 781 5541 1940 5599 1936 5658 1941 5751 1942 5796 1943 5935 1944 6122 1945 6616 +1946 6945 1947 7288 1948 7417 1949 7438 1950 7944 1951 7989 1952 8679 1953 9007 1954 9088 1955 9463 +1956 10100 1957 10759 1958 11387 1959 12031 1960 12316 1962 12964 1964 13394 1966 13821 1968 14070 1970 14312 +1972 14646 1974 14863 1976 15102 1978 15324 1980 15860 1982 16097 1984 16345 1986 16727 1988 17093 1990 17432 +% 1879 0 obj +<< +/Font << /F16 582 0 R /F30 810 0 R /F27 584 0 R /F8 585 0 R /F11 796 0 R /F14 813 0 R >> +/ProcSet [ /PDF /Text ] +>> +% 1886 0 obj +<< +/Type /Page +/Contents 1887 0 R +/Resources 1885 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1883 0 R +>> +% 1888 0 obj +<< +/D [1886 0 R /XYZ 149.705 753.953 null] +>> +% 561 0 obj +<< +/D [1886 0 R /XYZ 150.705 716.092 null] +>> +% 1885 0 obj +<< +/Font << /F16 582 0 R /F30 810 0 R /F27 584 0 R /F8 585 0 R >> +/ProcSet [ /PDF /Text ] +>> +% 1892 0 obj +<< +/Type /Page +/Contents 1893 0 R +/Resources 1891 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1883 0 R +/Annots [ 1889 0 R 1890 0 R ] +>> +% 1889 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) >> +>> +% 1890 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) >> +>> +% 1894 0 obj +<< +/D [1892 0 R /XYZ 98.895 753.953 null] +>> +% 565 0 obj +<< +/D [1892 0 R /XYZ 99.895 716.092 null] +>> +% 1891 0 obj +<< +/Font << /F16 582 0 R /F30 810 0 R /F27 584 0 R /F8 585 0 R >> +/ProcSet [ /PDF /Text ] +>> +% 1896 0 obj +<< +/Type /Page +/Contents 1897 0 R +/Resources 1895 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1883 0 R +>> +% 1898 0 obj +<< +/D [1896 0 R /XYZ 149.705 753.953 null] +>> +% 569 0 obj +<< +/D [1896 0 R /XYZ 150.705 716.092 null] +>> +% 1895 0 obj +<< +/Font << /F16 582 0 R /F8 585 0 R /F30 810 0 R >> +/ProcSet [ /PDF /Text ] +>> +% 1903 0 obj +<< +/Type /Page +/Contents 1904 0 R +/Resources 1902 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1883 0 R +/Annots [ 1899 0 R 1900 0 R ] +>> +% 1899 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) >> +>> +% 1900 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) >> +>> +% 1905 0 obj +<< +/D [1903 0 R /XYZ 98.895 753.953 null] +>> +% 573 0 obj +<< +/D [1903 0 R /XYZ 99.895 716.092 null] +>> +% 1906 0 obj +<< +/D [1903 0 R /XYZ 99.895 446.608 null] +>> +% 1907 0 obj +<< +/D [1903 0 R /XYZ 99.895 446.608 null] +>> +% 1908 0 obj +<< +/D [1903 0 R /XYZ 99.895 434.653 null] +>> +% 1909 0 obj +<< +/D [1903 0 R /XYZ 115.138 129.79 null] +>> +% 1902 0 obj +<< +/Font << /F16 582 0 R /F8 585 0 R /F27 584 0 R /F11 796 0 R /F14 813 0 R /F10 812 0 R /F7 811 0 R /F30 810 0 R /F32 814 0 R /F31 816 0 R /F33 1910 0 R >> +/ProcSet [ /PDF /Text ] +>> +% 1915 0 obj +<< +/Type /Page +/Contents 1916 0 R +/Resources 1914 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1883 0 R +/Annots [ 1901 0 R 1911 0 R 1912 0 R 1913 0 R ] +>> +% 1901 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) >> +>> +% 1911 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) >> +>> +% 1912 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) >> +>> +% 1913 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) >> +>> +% 1917 0 obj +<< +/D [1915 0 R /XYZ 149.705 753.953 null] +>> +% 1914 0 obj +<< +/Font << /F27 584 0 R /F8 585 0 R /F30 810 0 R /F11 796 0 R /F14 813 0 R >> +/ProcSet [ /PDF /Text ] +>> +% 1920 0 obj +<< +/Type /Page +/Contents 1921 0 R +/Resources 1919 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1923 0 R +/Annots [ 1918 0 R ] +>> +% 1918 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) >> +>> +% 1922 0 obj +<< +/D [1920 0 R /XYZ 98.895 753.953 null] +>> +% 1919 0 obj +<< +/Font << /F27 584 0 R /F8 585 0 R /F30 810 0 R /F11 796 0 R >> +/ProcSet [ /PDF /Text ] +>> +% 1925 0 obj +<< +/Type /Page +/Contents 1926 0 R +/Resources 1924 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1923 0 R +>> +% 1927 0 obj +<< +/D [1925 0 R /XYZ 149.705 753.953 null] +>> +% 1924 0 obj +<< +/Font << /F8 585 0 R >> +/ProcSet [ /PDF /Text ] >> +% 1929 0 obj +<< +/Type /Page +/Contents 1930 0 R +/Resources 1928 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1923 0 R +>> +% 1931 0 obj +<< +/D [1929 0 R /XYZ 98.895 753.953 null] +>> +% 1932 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf +<< +/D [1929 0 R /XYZ 99.895 724.062 null] +>> +<<<<<<< HEAD:docs/psblas-3.6.pdf stream %!PS-AdobeFont-1.0: CMMI8 003.002 %%Title: CMMI8 @@ -25569,12 +44374,13 @@ B9V{ endstream endobj 1943 0 obj +======= +% 780 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << -/Length1 2668 -/Length2 23272 -/Length3 0 -/Length 25940 +/D [1929 0 R /XYZ 99.895 699.619 null] >> +<<<<<<< HEAD:docs/psblas-3.6.pdf stream %!PS-AdobeFont-1.0: CMR10 003.002 %%Title: CMR10 @@ -25792,12 +44598,49 @@ A endstream endobj 1945 0 obj +======= +% 1933 0 obj << -/Length1 1425 -/Length2 6648 -/Length3 0 -/Length 8073 +/D [1929 0 R /XYZ 99.895 643.15 null] >> +% 831 0 obj +<< +/D [1929 0 R /XYZ 99.895 588.618 null] +>> +% 830 0 obj +<< +/D [1929 0 R /XYZ 99.895 534.087 null] +>> +% 786 0 obj +<< +/D [1929 0 R /XYZ 99.895 479.555 null] +>> +% 787 0 obj +<< +/D [1929 0 R /XYZ 99.895 436.978 null] +>> +% 803 0 obj +<< +/D [1929 0 R /XYZ 99.895 394.402 null] +>> +% 783 0 obj +<< +/D [1929 0 R /XYZ 99.895 351.272 null] +>> +% 784 0 obj +<< +/D [1929 0 R /XYZ 99.895 308.696 null] +>> +% 1934 0 obj +<< +/D [1929 0 R /XYZ 99.895 266.119 null] +>> +% 779 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf +<< +/D [1929 0 R /XYZ 99.895 223.543 null] +>> +<<<<<<< HEAD:docs/psblas-3.6.pdf stream %!PS-AdobeFont-1.0: CMR6 003.002 %%Title: CMR6 @@ -25871,12 +44714,13 @@ B endstream endobj 1947 0 obj +======= +% 1935 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << -/Length1 1460 -/Length2 7107 -/Length3 0 -/Length 8567 +/D [1929 0 R /XYZ 99.895 180.966 null] >> +<<<<<<< HEAD:docs/psblas-3.6.pdf stream %!PS-AdobeFont-1.0: CMR7 003.002 %%Title: CMR7 @@ -25968,12 +44812,129 @@ OΣ endstream endobj 1949 0 obj +======= +% 1928 0 obj << -/Length1 2131 -/Length2 14577 -/Length3 0 -/Length 16708 +/Font << /F16 582 0 R /F8 585 0 R /F17 776 0 R >> +/ProcSet [ /PDF /Text ] +>> +% 1937 0 obj +<< +/Type /Page +/Contents 1938 0 R +/Resources 1936 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1923 0 R +>> +% 1939 0 obj +<< +/D [1937 0 R /XYZ 149.705 753.953 null] +>> +% 948 0 obj +<< +/D [1937 0 R /XYZ 150.705 716.092 null] +>> +% 818 0 obj +<< +/D [1937 0 R /XYZ 150.705 688.251 null] +>> +% 785 0 obj +<< +/D [1937 0 R /XYZ 150.705 632.184 null] +>> +% 782 0 obj +<< +/D [1937 0 R /XYZ 150.705 590.562 null] +>> +% 778 0 obj +<< +/D [1937 0 R /XYZ 150.705 544.789 null] +>> +% 781 0 obj +<< +/D [1937 0 R /XYZ 150.705 512.909 null] +>> +% 1940 0 obj +<< +/D [1937 0 R /XYZ 150.705 480.475 null] +>> +% 1936 0 obj +<< +/Font << /F8 585 0 R /F17 776 0 R /F30 810 0 R >> +/ProcSet [ /PDF /Text ] +>> +% 1941 0 obj +[757.3 871.7 778.7 672.4 827.9] +% 1942 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] +% 1943 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] +% 1944 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] +% 1945 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] +% 1946 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] +% 1947 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] +% 1948 0 obj +[533.6] +% 1949 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] +% 1950 0 obj +[611.1 611.1 611.1 611.1 611.1] +% 1951 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] +% 1952 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] +% 1953 0 obj +[569.5 569.5 569.5 569.5 569.5 569.5 569.5 569.5 569.5 569.5 323.4] +% 1954 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] +% 1955 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] +% 1956 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] +% 1957 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] +% 1958 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] +% 1959 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] +% 1960 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] +% 1962 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 1961 0 R +>> +% 1964 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf +<< +/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 1963 0 R >> +<<<<<<< HEAD:docs/psblas-3.6.pdf stream %!PS-AdobeFont-1.0: CMR8 003.002 %%Title: CMR8 @@ -26123,12 +45084,99 @@ wge endstream endobj 1951 0 obj +======= +% 1966 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << -/Length1 2014 -/Length2 14211 -/Length3 0 -/Length 16225 +/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 1965 0 R +>> +% 1968 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 1967 0 R +>> +% 1970 0 obj +<< +/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 1969 0 R +>> +% 1972 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 1971 0 R +>> +% 1974 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 1973 0 R +>> +% 1976 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 1975 0 R >> +<<<<<<< HEAD:docs/psblas-3.6.pdf stream %!PS-AdobeFont-1.0: CMR9 003.002 %%Title: CMR9 @@ -26278,12 +45326,24 @@ sR( endstream endobj 1953 0 obj +======= +% 1978 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << -/Length1 1681 -/Length2 8374 -/Length3 0 -/Length 10055 +/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 1977 0 R >> +<<<<<<< HEAD:docs/psblas-3.6.pdf stream %!PS-AdobeFont-1.0: CMSY10 003.002 %%Title: CMSY10 @@ -26369,77 +45429,106 @@ hX䶫 endstream endobj 1955 0 obj +======= +% 1980 0 obj << -/Length1 1392 -/Length2 6093 -/Length3 0 -/Length 7485 +/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 1979 0 R >> -stream -%!PS-AdobeFont-1.0: CMSY7 003.002 -%%Title: CMSY7 -%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 CMSY7. -% 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/CMSY7 known{/CMSY7 findfont dup/UniqueID known{dup -/UniqueID get 5096648 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 /XNLILI+CMSY7 def -/FontBBox {-15 -951 1251 782 }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 CMSY7.) readonly def -/FullName (CMSY7) 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 49 /infinity put -dup 0 /minus 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†&Þm²Ô1$ŽÄ0m §jËAiˆ’rOJÏ´»¼ÑÌ2&Ȉ7.æíBb¾RŒ±{Þ媀E² SÄ.´9ÊÝ/w¸òˆGÑ<#¶éž/[Ó™4Ø»§jz½zqàÑ,I•¥¶Ë‚Ú£zê¯xáþ b˜-ûNH“Êïa§?C*¥‹ÝüÖ¨i´Ö•,þ'ê°u˜ò›ÿ?§(ë£y‘¸³ßÓù/$pì…sÅÜrψSCùo&¸ÓÆÍ°BZËÆŽŠàJ¼ãV¥õ)Hɳøõqa•˜?ÀÂ;× Ž¦j¸²¢­!8‰™·'(zr>0t~‡@B7Òýž´­¼>°Êt«ð®ËXv=Ö»Ìt*˜c·ÄñÇâá´¾þ¢h,ß­…™Ïy‘Æ%b¢ù¹wáøÐbc€2 -Atñ5£åäqm#O:JjÝ’‡ÄcõZÐζÚô$4H¼Pv£-ðV[(èa7ÇÞ5fe–LÔÛ±»2_xgçc†^¨LÕ|Þ_ 7Bcì½1¡ßÄ'mùŽÔ‚ÅÕ ®W -¡³o €bKP¿©ÛfÊAOÜ‘`Ax2zÓËl ÁÜ6 Ü„x}NܱǞëÚÌ–cv[ç^†ñ….ò"ùþcvc¸$Þ#™ÿ›Öï;ša$3ú½õ§|4—xàõß½ ÿ˪ -§„©(¦˜”a@cíRÌÛn6phØšZfzzò?ŠKÊ Ùú$ˆYù¶Jo/ŠqòÊÌ¿”æÍòî.ó1fñ¿÷º„ ’JBÓw'4¸µ?ý}Dò/™& „ÈZ=V—–•¦âͪã7·E ± °ÉŒ¯}€ÞÊœöØD‰ÉíŸöçt÷ÿäǪëÛ…éÄ¿Ìì!ÖX96E'<é•êÂm&)îŽJ¾ÍSw4!3δìí¬áͺ«àž³ÎÌϳ…†—V¹êJ–åq,ƒŽU­ZÄÝ[›JÕ½QK Œž*L—8¯â…³Ó£@0°–ÈûþÚÛg|È°F±`Táåkï•–2˜Ò›»×Ƈð­#ŠÌÉéxbÅ`ƒY@ «Éžno{žÔÓÆäa÷vûXi±…k$È°i='C”áûPEís&>#æšMÌX6­EÌ!‘Hô5é&Bc+ø.s1ï(º’±ˆR9 PZ¨SßIŒÑAˆ »Hï)‡{y,Ñ䲚Üé¶9˜®»’›Ó¨©Òè ‚˜èðÓŽ€TÝ­sŸ9hoq“Va#âûai×Ç$þ•% -eqÀ#*Ö!2þÝ4«S™å"¬xSMò¦GËd£ô‚Á+ˆ×¼”¸d.0r›MVBÚhQzо;7õæíXÎìµbG‰Ç€e4oúxõðu$]ÞŒ'­eÖU„5 v«Ÿi Un…2šˆ\ð¿=6ðXƒÌáFí%Úd蛳¬F!Ï@ßï}}¨ŠqEÍ•¬yb¤†aWà!iúzs¾KöÆB/¯)Pþ»È€œ(eÇK¢Ï¯Ìý˜Í–Xt-}V$è3·Ly¤Úg¦ÕÓX£ù½Ó4ÝÖÏrGæ[‹Úïãó~WñÊÔ 3d<î‡D£it\_†°¥ÿ~ƒ¿/©ŸŠ‘̦ŽîŸ¦š2a(ŸïV2Ú¼N5>DôLødËušN7…:~%Ç|4þ=R/ÕßXÞ)$èIÕ—â- oZ’k~%E ‘:ûÍA@¦äÏ%!&ìŸÑ¯–…•3f8ŸÖlúédƒüMR›-é,0©Fùnœ'YöGwÑëuîÃ_*ÿbä³X®w­=AYq>ý\;B£ÙÅÌ´ *ÏPsç:÷ê Á–·¾«ykç X`§Æ—ŠX¼²¤){—qbudùo›ÿg6€ÒáÅ…)YÎ>6Ð!ëX ä]|VÊmöb¬y1\2=謫Âpƒ‘Ы@ôÖæBo†=E¼pV5Ü%C±Wš¿ÃÐñT©nˆ´ó*q 24»L&’}¤™5VÌ ý$1Æ0›åGô^ëZÔ–,ä´§yu÷¼’êUö¥ÔCFD¥å‡»cl|ˆNz žLÖì‹j-³ÃÖw¿>çO`"'ň"pù=Ÿ ãä¹yz! Ó¡ >ÃèokökTeAÍ\-îïUŽÉuC6˜b•²¹áïlÌÀa÷‡pº¯ ¿à— !²]Šõ˜±/üi¹kêqÂU—ÿ2ä¥Ï¡í¸¿Äq¸Èˆ¯‹G¨‚™G¾5fW Iä2S5ž…6½ÿž k¼€‘äDò6Ø¢š=rE1?tÉÂê×0õ_L‰4*+þQ‡AQîê02|Û–Ž»ª¶]IXá‚Û«çÕ‹ Þœ* ”Å_R߉£Y%´N5Éâ‡6ìÓ_쾦f•¬‡r[pSH1Üë+ÎÌÑ Vs¯«€Ä¤À÷­èQ/ÅyepƒÔˆ+Ó ZÜ50Z·à‚ô7àsk¦{1²5ÖˆÚ’ _‘pÆ´Ÿzò ¸hêñ¨ÄN ­ž“áÑ ÃkÔC˜Ý¬Jÿ±é èLgàNÍOýMê\2³¼ âgË+<’}Ä?ãj|¦;âœOzÀ´^”hÅÆâÀ‹™¥‘Í3Ø»$6˜8ŠF~g?_8öú{ôõuhØx%Ò4‘â|€¿BÝæ‡ôáAiÁj¸Ó%Q8[ÅúŠÿ¶Í7 ¶ŠgëT{Ò5Œp~ktGÛwÔˆò2O«3 ò¥èf’XµµMõßßû‘EO¤¬€Ž¨³ ‡ÞŒPÛ“«‚‹Hb;'5Õðõ¯ºÓíÔ 5ÂAMþ#ÃßЯÐSShÂᘣ²’¬ v‹»q-DnÏZ£;å³Ú¶€ãøϪMÕ€¼ X_ý²IѲ¥Opš¥5À¡a¨ †Bë%ÆØ9¨û£]êZ!ÞØÚ; vý ž°K‹4PmbÒÐ%Û¦Å{) s´—âq¹H”­õ‹¡;ƒj”vÑÉ{î÷ìß{Ûè-‡k+HOï°ßýWͦÿŠòOÌ:G2ïyŒ>®q¬(ÝÞð94Ò(k¾BóúŠ^·oRÒöíÞÌ[/~±C2Ý ²òèí%k M¶ƒà{Ž¶pƒØ„¬Õç5@ew·Œ?ù¼÷›ÙO|¸²;ä¾–ÀdžàyFÛìê1ðª ðN/×òh¦Xj‚ëlhw“TM¶â·Â^™Ê^ÇóòmeH À˜èa…Ø@lU"Ï!ZØÈkÄ>-= IÉJæ-RA*P@·!u¿‰ð¶í)ÊÛÃÖv]e“£µýý$zû_…˜¿®;Wü¥r¬œþ‡³<øËE Å:L=uîD æIßõ0¾•±üéCÆœäzÚÇ¿è«Ö7ÏòŒÚÃ0vãR[`¹´Œü÷ÚÅ)+»:|ú©n–t²sŽyÏ1§~u -|Sž¡‰YÈi`éÙzrFÃ{jGE^WH‹ª7(¤g}MÒÙÔV-²¯*øùdqα[êŠÃ^Ï ˆ×ˆä¼/ÙyÄ‘ Û'T’±i°¨½³:üy’LiêeIµÝFÿxpQõ•,¶iMN¨ñçþc šòËgW³ãK’<þñ½¢ÿêUÄ­Orèå-Š-øï¢t -žcÆ%WR?7PQƒ¼å4ý™µR‹ Mù6‚¤½ÙÔz…ƒ³Ô^(?ÁâµNJiw†ïü¯ŽÒ/µSæõßäfòר® -ì~æ‘õ'Ÿ|à·•N5"ï~ È 2’µòH†*Ùù¡ãŽå/ ~/ÿbÆ=Â/¦j1>~DgÑ(ˉËÌ^¥`eðvs $tñ=EÒ¢õÝ÷;e„ÛÔ.Æ\ü-ʱGÍñ kÀ!*5vèóžºÙ¿N¤¤PÅZ²Kkü^wöc/ÝáBî·!úùÙÞcœoœ -ךkC96M­д…Áð1€®z.ÂÂú‹`õCúŸþÂMkfQ9¹b}L&>¤‚}Œïxƒ^¼³b°aŽÉØÑ™0ìVOH:‹·^ŒjJ¡ÁŠ ¿7kÑw‘–†V‚ëD=Öù§ ÷ÂI˪|Å΄Ä·ÉׄBÄ|ùñ‡ºûÅ¥”“ Ãô¦¯—eêJÜç¹+ë7‚lZ¡MÒó¥Ú³7A4ÁT“Pœp°œžMΩURÀ°–Ä€fìˆÛ+»•‘¾Œ1å•¿Ç*»wΫ‚ËyÍw×f#§²Î†)á }Tn˜®ž$LXãÇP¾Y“ž8ƒ0m]Ð-Ši)e‡S2Œo§›¹Yl¢›u[|0j\¾Ü<­’ûˆ<[²™ì@ wò)Ä8Ãðoœ¿Ü€ Ú¿()íH)g=èÁ{ßøѵŸ¹]?E~T¶¬(õþñÙXˆ'´Š`Tú¿âáÊ—¨£"à ÈA@a8€S$Sçá-ãU¤¼Ã% -ë‰i!äÀú£PƒVy—ZésÖ’uRáÀŠ}ýïùÙ(tºê¦?–ˆi_èÜa³¯|Š„­ Õh¶…Û{Ú¹®õJó²-سì`“x±VDü¬&™`pï +ó óıâjO-N5¬ùV±FG¾ã½•¿ìþ§•Š*KÛûÄ£‡\Çkä.°íõ ál¤X³Scã|rþ[]͘îûQ&‡¬‹!Úa¢ÈX®t­œõ½ñ[ršKR¹_4¶ÙÅRÒ {£“!Ð%3Ý.ƒ}ß -×-BÊ+„ÌÃÞ™ÿã”ûÆiÚýÃ~Õƒ¹•þhÍ îKòç*,ö/h³³Pjæ¾{ä`ƒ ¿DCôw_hô¸/°p3eH/IœAªÉ)iðÂk#û¸U ]`­&oð(Ìk3½>aÔl¼Œ˜ìøÑ=‰‚K½ -ß/î3@¶AÐ|³G+ÞTB‹éRæð׃ 3OÖñAãB¸lÂÑ{æsl"Îñ1÷7 ãÎkÊÒ_‘eäÑ-ÿQ†N¬FQ›€Õ› -”î–ð*i¾Ä=é·ƒÜF8ì*²¡à%=M­m†À[§Í¡]7·H‚ƒ/éÓÈ«e”­/•·c‘“Eãr\4tE>×I2»8ݳT fØÖó‡L ÷C“#Ñhš -wBóÅ«d™rÏØ|ø´{ÈTå5¡QoÝ2¾í¾ë?P§çmeˆÐ„žÛ.-ËϬå]l²Æ¿Éò­8¡ÿ4šþ<ÎJë-G§ÑÄ@z¿ñ¼Îˬðõ^€ocž@â‚o‚Zò´´´Ün"yréÁègÎeÙá£Â¬bÓ$É)§2ž¬¥Q½8ÛR‹åïóÈDdCXÒ› -´FÅêHzÍ©¤îàÍ£ã‡õfˆ±%PJQ¬Ûƒ“!ÇZÛ‰ù 0ÅzÜA_ò – wóÉ -WA#¡dÔç±\ä^>¤c:ü‘SôÔ¬R(éþñíéŒî$Žt}ñ< -Hú ˆ¦Îy·Y>f.–ðÇ’ñ©RÇâ…¬ºj© }ª+P®ñjE.£€¦³§ÔøX¸ ¬Ëg8KG_î0³!Öoôz¦Wƒü*4]xÂìĪçÁ³ ëÙ3mñ½6¢÷ rèj¡¹Í˜çuvª>lLWw¥PNqåGÞu2ô þ”îÿp;ÝzÄ I³h¥¤=ìIÀJ³  -ÝóRüœÀœæX+¶®%FÄÖR1ôz¬ -ÒDÈ:âg²‹ò{°Yò}3‚ÿ>úî6ïÝç ÆK—ðQhõl §ØÅÿ“¦[§»Ä†‰èŸ.^^c}.s§«¥à^ÖœG>ÿ?÷±þîËWJÌãõXeô Ñ–ÒŒ{*òënÆxÒzî¨vÀ–±Îæ¢4ÈyÛ«tQ/àòÿx`î¿k4çÙžÉvqK_âÀù<-à­Ûk¸{‚怣;€-ëĦ©fÚ˜ nοHÌ–cò]rj þ†N ?ãHvl‡Yng–:ñ®W u"Þk%õòðN6Ê@ |õ^ö(Ì®‡Pˆr@¸Í€ +% 1982 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf +<< +/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 1981 0 R +>> +% 1984 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 1983 0 R +>> +% 1986 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 1985 0 R +>> +% 1988 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 1987 0 R +>> +% 1990 0 obj +<< +/Type /FontDescriptor +/FontName /XNLILI+CMSY7 +/Flags 4 +/FontBBox [-15 -951 1251 782] +/Ascent 750 +/CapHeight 683 +/Descent -194 +/ItalicAngle -14 +/StemV 49 +/XHeight 431 +/CharSet (/infinity/minus) +/FontFile 1989 0 R +>> + endstream endobj +<<<<<<< HEAD:docs/psblas-3.6.pdf 1957 0 obj +======= +1991 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << /Length1 2199 /Length2 18119 @@ -26611,7 +45700,11 @@ 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 +<<<<<<< HEAD:docs/psblas-3.6.pdf 1959 0 obj +======= +1994 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << /Length1 1699 /Length2 10351 @@ -26718,7 +45811,11 @@ qO' ÔX¦Ç ë¾A±©µ ÷•©SÞt²•äoC‹Kžr 0ìE·½õ1”O®&é ò™\e;HË lüqάa]Ÿ´þ_i0yÏ4Þ ^2’™Óè0‘ endstream endobj +<<<<<<< HEAD:docs/psblas-3.6.pdf 1961 0 obj +======= +1996 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << /Length1 2460 /Length2 17290 @@ -26906,7 +46003,11 @@ 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 +<<<<<<< HEAD:docs/psblas-3.6.pdf 1963 0 obj +======= +1998 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << /Length1 1494 /Length2 2555 @@ -26968,6 +46069,7 @@ currentfile eexec ê6Å s*«%‰Soôõ'°eÖ绩òÄY¨­°) Œyà,Tàà´@Æ*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ñ +<<<<<<< HEAD:docs/psblas-3.6.pdf endstream endobj 1965 0 obj @@ -27545,6 +46647,139 @@ stream /FontFile 1955 0 R >> % 1958 0 obj +======= +endstream +endobj +2000 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!.ΘÍþâ:Øâܨ+. +endstream +endobj +1993 0 obj +<< +/Type /ObjStm +/N 100 +/First 956 +/Length 12939 +>> +stream +1992 0 1995 373 1997 636 1999 1115 2001 1347 584 1631 582 1772 1752 1913 1725 2054 796 2196 +844 2337 812 2478 1910 2618 585 2758 814 2898 811 3036 816 3174 1300 3313 813 3453 1170 3593 +776 3732 583 3873 810 4014 872 4155 1012 4295 586 4436 777 4549 873 4662 928 4775 963 4888 +992 5001 1035 5118 1090 5238 1138 5358 1196 5478 1249 5598 1301 5718 1357 5838 1398 5958 1436 6078 +1485 6198 1527 6318 1561 6438 1601 6558 1642 6678 1674 6798 1706 6918 1743 7038 1805 7158 1846 7278 +1883 7398 1923 7518 2002 7620 2003 7735 2004 7856 2005 7977 2006 8098 2007 8192 2008 8288 574 8357 +570 8417 566 8528 562 8602 558 8690 554 8778 550 8866 546 8954 542 9028 538 9153 534 9227 +530 9315 526 9403 522 9491 518 9579 514 9653 510 9778 506 9852 502 9940 498 10028 494 10102 +490 10227 486 10301 482 10389 478 10477 474 10565 470 10653 466 10741 462 10829 458 10917 454 11005 +450 11093 446 11181 442 11269 438 11357 434 11445 430 11533 426 11621 422 11695 418 11821 414 11895 +% 1992 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << /Type /FontDescriptor /FontName /HBJLDT+CMTI10 @@ -27557,9 +46792,15 @@ 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) +<<<<<<< HEAD:docs/psblas-3.6.pdf /FontFile 1957 0 R >> % 1960 0 obj +======= +/FontFile 1991 0 R +>> +% 1995 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << /Type /FontDescriptor /FontName /OZJPZO+CMTI12 @@ -27572,9 +46813,15 @@ 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) +<<<<<<< HEAD:docs/psblas-3.6.pdf /FontFile 1959 0 R >> % 1962 0 obj +======= +/FontFile 1994 0 R +>> +% 1997 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << /Type /FontDescriptor /FontName /TJSMYH+CMTT10 @@ -27587,9 +46834,15 @@ 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) +<<<<<<< HEAD:docs/psblas-3.6.pdf /FontFile 1961 0 R >> % 1964 0 obj +======= +/FontFile 1996 0 R +>> +% 1999 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << /Type /FontDescriptor /FontName /HZGQIC+CMTT8 @@ -27602,9 +46855,15 @@ stream /StemV 76 /XHeight 431 /CharSet (/b/c/e/i/l/n/p/r/s/t) +<<<<<<< HEAD:docs/psblas-3.6.pdf /FontFile 1963 0 R >> % 1966 0 obj +======= +/FontFile 1998 0 R +>> +% 2001 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << /Type /FontDescriptor /FontName /KMUHVJ+CMTT9 @@ -27617,83 +46876,153 @@ 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) +<<<<<<< HEAD:docs/psblas-3.6.pdf /FontFile 1965 0 R >> % 572 0 obj +======= +/FontFile 2000 0 R +>> +% 584 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << /Type /Font /Subtype /Type1 /BaseFont /RAJOBS+CMBX10 +<<<<<<< HEAD:docs/psblas-3.6.pdf /FontDescriptor 1928 0 R /FirstChar 11 /LastChar 124 /Widths 1924 0 R >> % 570 0 obj +======= +/FontDescriptor 1962 0 R +/FirstChar 11 +/LastChar 124 +/Widths 1958 0 R +>> +% 582 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << /Type /Font /Subtype /Type1 /BaseFont /BWDLNI+CMBX12 +<<<<<<< HEAD:docs/psblas-3.6.pdf /FontDescriptor 1930 0 R /FirstChar 12 /LastChar 124 /Widths 1926 0 R >> % 1721 0 obj +======= +/FontDescriptor 1964 0 R +/FirstChar 12 +/LastChar 124 +/Widths 1960 0 R +>> +% 1752 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << /Type /Font /Subtype /Type1 /BaseFont /VUBHOM+CMBX9 +<<<<<<< HEAD:docs/psblas-3.6.pdf /FontDescriptor 1932 0 R /FirstChar 97 /LastChar 117 /Widths 1908 0 R >> % 1695 0 obj +======= +/FontDescriptor 1966 0 R +/FirstChar 97 +/LastChar 117 +/Widths 1942 0 R +>> +% 1725 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << /Type /Font /Subtype /Type1 /BaseFont /OUFNAH+CMEX10 +<<<<<<< HEAD:docs/psblas-3.6.pdf /FontDescriptor 1934 0 R /FirstChar 88 /LastChar 115 /Widths 1909 0 R >> % 770 0 obj +======= +/FontDescriptor 1968 0 R +/FirstChar 88 +/LastChar 115 +/Widths 1943 0 R +>> +% 796 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << /Type /Font /Subtype /Type1 /BaseFont /HKHZAC+CMMI10 +<<<<<<< HEAD:docs/psblas-3.6.pdf /FontDescriptor 1936 0 R /FirstChar 11 /LastChar 122 /Widths 1921 0 R >> % 817 0 obj +======= +/FontDescriptor 1970 0 R +/FirstChar 11 +/LastChar 122 +/Widths 1955 0 R +>> +% 844 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << /Type /Font /Subtype /Type1 /BaseFont /RVPZIX+CMMI5 +<<<<<<< HEAD:docs/psblas-3.6.pdf /FontDescriptor 1938 0 R /FirstChar 105 /LastChar 105 /Widths 1914 0 R >> % 786 0 obj +======= +/FontDescriptor 1972 0 R +/FirstChar 105 +/LastChar 105 +/Widths 1948 0 R +>> +% 812 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << /Type /Font /Subtype /Type1 /BaseFont /ZUYGVH+CMMI7 +<<<<<<< HEAD:docs/psblas-3.6.pdf /FontDescriptor 1940 0 R /FirstChar 59 /LastChar 110 /Widths 1918 0 R >> % 1879 0 obj +======= +/FontDescriptor 1974 0 R +/FirstChar 59 +/LastChar 110 +/Widths 1952 0 R +>> +% 1910 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << /Type /Font /Subtype /Type1 /BaseFont /ZOAUSA+CMMI8 +<<<<<<< HEAD:docs/psblas-3.6.pdf /FontDescriptor 1942 0 R /FirstChar 67 /LastChar 71 @@ -27710,110 +47039,219 @@ stream /Widths 1923 0 R >> % 788 0 obj +======= +/FontDescriptor 1976 0 R +/FirstChar 67 +/LastChar 71 +/Widths 1941 0 R +>> +% 585 0 obj +<< +/Type /Font +/Subtype /Type1 +/BaseFont /WUKOCR+CMR10 +/FontDescriptor 1978 0 R +/FirstChar 11 +/LastChar 124 +/Widths 1957 0 R +>> +% 814 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << /Type /Font /Subtype /Type1 /BaseFont /UJRPBG+CMR6 +<<<<<<< HEAD:docs/psblas-3.6.pdf /FontDescriptor 1946 0 R /FirstChar 49 /LastChar 53 /Widths 1916 0 R >> % 785 0 obj +======= +/FontDescriptor 1980 0 R +/FirstChar 49 +/LastChar 53 +/Widths 1950 0 R +>> +% 811 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << /Type /Font /Subtype /Type1 /BaseFont /GIODUE+CMR7 +<<<<<<< HEAD:docs/psblas-3.6.pdf /FontDescriptor 1948 0 R /FirstChar 48 /LastChar 58 /Widths 1919 0 R >> % 790 0 obj +======= +/FontDescriptor 1982 0 R +/FirstChar 48 +/LastChar 58 +/Widths 1953 0 R +>> +% 816 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << /Type /Font /Subtype /Type1 /BaseFont /HFTEUS+CMR8 +<<<<<<< HEAD:docs/psblas-3.6.pdf /FontDescriptor 1950 0 R /FirstChar 40 /LastChar 121 /Widths 1915 0 R >> % 1270 0 obj +======= +/FontDescriptor 1984 0 R +/FirstChar 40 +/LastChar 121 +/Widths 1949 0 R +>> +% 1300 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << /Type /Font /Subtype /Type1 /BaseFont /KKURMF+CMR9 +<<<<<<< HEAD:docs/psblas-3.6.pdf /FontDescriptor 1952 0 R /FirstChar 39 /LastChar 122 /Widths 1910 0 R >> % 787 0 obj +======= +/FontDescriptor 1986 0 R +/FirstChar 39 +/LastChar 122 +/Widths 1944 0 R +>> +% 813 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << /Type /Font /Subtype /Type1 /BaseFont /IMOIOS+CMSY10 +<<<<<<< HEAD:docs/psblas-3.6.pdf /FontDescriptor 1954 0 R /FirstChar 0 /LastChar 120 /Widths 1917 0 R >> % 1140 0 obj +======= +/FontDescriptor 1988 0 R +/FirstChar 0 +/LastChar 120 +/Widths 1951 0 R +>> +% 1170 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << /Type /Font /Subtype /Type1 /BaseFont /XNLILI+CMSY7 +<<<<<<< HEAD:docs/psblas-3.6.pdf /FontDescriptor 1956 0 R /FirstChar 0 /LastChar 49 /Widths 1911 0 R >> % 750 0 obj +======= +/FontDescriptor 1990 0 R +/FirstChar 0 +/LastChar 49 +/Widths 1945 0 R +>> +% 776 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << /Type /Font /Subtype /Type1 /BaseFont /HBJLDT+CMTI10 +<<<<<<< HEAD:docs/psblas-3.6.pdf /FontDescriptor 1958 0 R /FirstChar 11 /LastChar 121 /Widths 1922 0 R >> % 571 0 obj +======= +/FontDescriptor 1992 0 R +/FirstChar 11 +/LastChar 121 +/Widths 1956 0 R +>> +% 583 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << /Type /Font /Subtype /Type1 /BaseFont /OZJPZO+CMTI12 +<<<<<<< HEAD:docs/psblas-3.6.pdf /FontDescriptor 1960 0 R /FirstChar 65 /LastChar 121 /Widths 1925 0 R >> % 784 0 obj +======= +/FontDescriptor 1995 0 R +/FirstChar 65 +/LastChar 121 +/Widths 1959 0 R +>> +% 810 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << /Type /Font /Subtype /Type1 /BaseFont /TJSMYH+CMTT10 +<<<<<<< HEAD:docs/psblas-3.6.pdf /FontDescriptor 1962 0 R /FirstChar 37 /LastChar 126 /Widths 1920 0 R >> % 846 0 obj +======= +/FontDescriptor 1997 0 R +/FirstChar 37 +/LastChar 126 +/Widths 1954 0 R +>> +% 872 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << /Type /Font /Subtype /Type1 /BaseFont /HZGQIC+CMTT8 +<<<<<<< HEAD:docs/psblas-3.6.pdf /FontDescriptor 1964 0 R /FirstChar 98 /LastChar 116 /Widths 1913 0 R >> % 982 0 obj +======= +/FontDescriptor 1999 0 R +/FirstChar 98 +/LastChar 116 +/Widths 1947 0 R +>> +% 1012 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << /Type /Font /Subtype /Type1 /BaseFont /KMUHVJ+CMTT9 +<<<<<<< HEAD:docs/psblas-3.6.pdf /FontDescriptor 1966 0 R /FirstChar 40 /LastChar 121 @@ -28071,40 +47509,326 @@ stream /Kids [1967 0 R 1969 0 R 1970 0 R 1971 0 R 1972 0 R] >> % 1974 0 obj +======= +/FontDescriptor 2001 0 R +/FirstChar 40 +/LastChar 121 +/Widths 1946 0 R +>> +% 586 0 obj +<< +/Type /Pages +/Count 6 +/Parent 2002 0 R +/Kids [577 0 R 588 0 R 635 0 R 692 0 R 738 0 R 758 0 R] +>> +% 777 0 obj +<< +/Type /Pages +/Count 6 +/Parent 2002 0 R +/Kids [774 0 R 794 0 R 807 0 R 823 0 R 836 0 R 841 0 R] +>> +% 873 0 obj +<< +/Type /Pages +/Count 6 +/Parent 2002 0 R +/Kids [855 0 R 876 0 R 887 0 R 895 0 R 906 0 R 921 0 R] +>> +% 928 0 obj +<< +/Type /Pages +/Count 6 +/Parent 2002 0 R +/Kids [925 0 R 930 0 R 936 0 R 943 0 R 951 0 R 955 0 R] +>> +% 963 0 obj +<< +/Type /Pages +/Count 6 +/Parent 2002 0 R +/Kids [960 0 R 965 0 R 969 0 R 973 0 R 977 0 R 983 0 R] +>> +% 992 0 obj +<< +/Type /Pages +/Count 6 +/Parent 2002 0 R +/Kids [989 0 R 996 0 R 1003 0 R 1009 0 R 1014 0 R 1026 0 R] +>> +% 1035 0 obj +<< +/Type /Pages +/Count 6 +/Parent 2003 0 R +/Kids [1032 0 R 1042 0 R 1048 0 R 1064 0 R 1069 0 R 1076 0 R] +>> +% 1090 0 obj +<< +/Type /Pages +/Count 6 +/Parent 2003 0 R +/Kids [1081 0 R 1095 0 R 1103 0 R 1108 0 R 1121 0 R 1127 0 R] +>> +% 1138 0 obj +<< +/Type /Pages +/Count 6 +/Parent 2003 0 R +/Kids [1134 0 R 1140 0 R 1153 0 R 1160 0 R 1167 0 R 1178 0 R] +>> +% 1196 0 obj +<< +/Type /Pages +/Count 6 +/Parent 2003 0 R +/Kids [1193 0 R 1200 0 R 1211 0 R 1217 0 R 1228 0 R 1234 0 R] +>> +% 1249 0 obj +<< +/Type /Pages +/Count 6 +/Parent 2003 0 R +/Kids [1245 0 R 1251 0 R 1260 0 R 1266 0 R 1274 0 R 1284 0 R] +>> +% 1301 0 obj +<< +/Type /Pages +/Count 6 +/Parent 2003 0 R +/Kids [1297 0 R 1306 0 R 1318 0 R 1326 0 R 1330 0 R 1345 0 R] +>> +% 1357 0 obj +<< +/Type /Pages +/Count 6 +/Parent 2004 0 R +/Kids [1354 0 R 1361 0 R 1370 0 R 1374 0 R 1379 0 R 1385 0 R] +>> +% 1398 0 obj +<< +/Type /Pages +/Count 6 +/Parent 2004 0 R +/Kids [1390 0 R 1401 0 R 1406 0 R 1415 0 R 1422 0 R 1427 0 R] +>> +% 1436 0 obj +<< +/Type /Pages +/Count 6 +/Parent 2004 0 R +/Kids [1433 0 R 1438 0 R 1446 0 R 1454 0 R 1460 0 R 1470 0 R] +>> +% 1485 0 obj +<< +/Type /Pages +/Count 6 +/Parent 2004 0 R +/Kids [1482 0 R 1487 0 R 1499 0 R 1505 0 R 1512 0 R 1518 0 R] +>> +% 1527 0 obj +<< +/Type /Pages +/Count 6 +/Parent 2004 0 R +/Kids [1522 0 R 1532 0 R 1538 0 R 1542 0 R 1547 0 R 1551 0 R] +>> +% 1561 0 obj +<< +/Type /Pages +/Count 6 +/Parent 2004 0 R +/Kids [1558 0 R 1564 0 R 1571 0 R 1577 0 R 1583 0 R 1589 0 R] +>> +% 1601 0 obj +<< +/Type /Pages +/Count 6 +/Parent 2005 0 R +/Kids [1596 0 R 1604 0 R 1608 0 R 1618 0 R 1622 0 R 1626 0 R] +>> +% 1642 0 obj +<< +/Type /Pages +/Count 6 +/Parent 2005 0 R +/Kids [1639 0 R 1644 0 R 1650 0 R 1656 0 R 1663 0 R 1667 0 R] +>> +% 1674 0 obj +<< +/Type /Pages +/Count 6 +/Parent 2005 0 R +/Kids [1671 0 R 1677 0 R 1681 0 R 1685 0 R 1689 0 R 1695 0 R] +>> +% 1706 0 obj +<< +/Type /Pages +/Count 6 +/Parent 2005 0 R +/Kids [1701 0 R 1708 0 R 1714 0 R 1720 0 R 1728 0 R 1733 0 R] +>> +% 1743 0 obj +<< +/Type /Pages +/Count 6 +/Parent 2005 0 R +/Kids [1740 0 R 1747 0 R 1777 0 R 1784 0 R 1790 0 R 1796 0 R] +>> +% 1805 0 obj +<< +/Type /Pages +/Count 6 +/Parent 2005 0 R +/Kids [1802 0 R 1808 0 R 1815 0 R 1822 0 R 1828 0 R 1835 0 R] +>> +% 1846 0 obj +<< +/Type /Pages +/Count 6 +/Parent 2006 0 R +/Kids [1841 0 R 1848 0 R 1854 0 R 1863 0 R 1867 0 R 1875 0 R] +>> +% 1883 0 obj +<< +/Type /Pages +/Count 6 +/Parent 2006 0 R +/Kids [1880 0 R 1886 0 R 1892 0 R 1896 0 R 1903 0 R 1915 0 R] +>> +% 1923 0 obj +<< +/Type /Pages +/Count 4 +/Parent 2006 0 R +/Kids [1920 0 R 1925 0 R 1929 0 R 1937 0 R] +>> +% 2002 0 obj +<< +/Type /Pages +/Count 36 +/Parent 2007 0 R +/Kids [586 0 R 777 0 R 873 0 R 928 0 R 963 0 R 992 0 R] +>> +% 2003 0 obj +<< +/Type /Pages +/Count 36 +/Parent 2007 0 R +/Kids [1035 0 R 1090 0 R 1138 0 R 1196 0 R 1249 0 R 1301 0 R] +>> +% 2004 0 obj +<< +/Type /Pages +/Count 36 +/Parent 2007 0 R +/Kids [1357 0 R 1398 0 R 1436 0 R 1485 0 R 1527 0 R 1561 0 R] +>> +% 2005 0 obj +<< +/Type /Pages +/Count 36 +/Parent 2007 0 R +/Kids [1601 0 R 1642 0 R 1674 0 R 1706 0 R 1743 0 R 1805 0 R] +>> +% 2006 0 obj +<< +/Type /Pages +/Count 16 +/Parent 2007 0 R +/Kids [1846 0 R 1883 0 R 1923 0 R] +>> +% 2007 0 obj +<< +/Type /Pages +/Count 160 +/Kids [2002 0 R 2003 0 R 2004 0 R 2005 0 R 2006 0 R] +>> +% 2008 0 obj +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf << /Type /Outlines /First 4 0 R /Last 4 0 R /Count 1 >> +<<<<<<< HEAD:docs/psblas-3.6.pdf +======= +% 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 +>> +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf % 562 0 obj << /Title 563 0 R /A 560 0 R +<<<<<<< HEAD:docs/psblas-3.6.pdf /Parent 558 0 R +======= +/Parent 542 0 R +/Prev 558 0 R +/Next 566 0 R +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> % 558 0 obj << /Title 559 0 R /A 556 0 R +<<<<<<< HEAD:docs/psblas-3.6.pdf /Parent 4 0 R /Prev 530 0 R /First 562 0 R /Last 562 0 R /Count -1 +======= +/Parent 542 0 R +/Prev 554 0 R +/Next 562 0 R +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> % 554 0 obj << /Title 555 0 R /A 552 0 R +<<<<<<< HEAD:docs/psblas-3.6.pdf /Parent 530 0 R /Prev 550 0 R +======= +/Parent 542 0 R +/Prev 550 0 R +/Next 558 0 R +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> % 550 0 obj << /Title 551 0 R /A 548 0 R +<<<<<<< HEAD:docs/psblas-3.6.pdf /Parent 530 0 R +======= +/Parent 542 0 R +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf /Prev 546 0 R /Next 554 0 R >> @@ -28112,56 +47836,91 @@ stream << /Title 547 0 R /A 544 0 R +<<<<<<< HEAD:docs/psblas-3.6.pdf /Parent 530 0 R /Prev 542 0 R +======= +/Parent 542 0 R +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf /Next 550 0 R >> % 542 0 obj << /Title 543 0 R /A 540 0 R +<<<<<<< HEAD:docs/psblas-3.6.pdf /Parent 530 0 R /Prev 538 0 R /Next 546 0 R +======= +/Parent 4 0 R +/Prev 514 0 R +/Next 570 0 R +/First 546 0 R +/Last 566 0 R +/Count -6 +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> % 538 0 obj << /Title 539 0 R /A 536 0 R +<<<<<<< HEAD:docs/psblas-3.6.pdf /Parent 530 0 R +======= +/Parent 514 0 R +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf /Prev 534 0 R -/Next 542 0 R >> % 534 0 obj << /Title 535 0 R /A 532 0 R +<<<<<<< HEAD:docs/psblas-3.6.pdf /Parent 530 0 R +======= +/Parent 514 0 R +/Prev 530 0 R +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf /Next 538 0 R >> % 530 0 obj << /Title 531 0 R /A 528 0 R +<<<<<<< HEAD:docs/psblas-3.6.pdf /Parent 4 0 R /Prev 502 0 R /Next 558 0 R /First 534 0 R /Last 554 0 R /Count -6 +======= +/Parent 514 0 R +/Prev 526 0 R +/Next 534 0 R +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> % 526 0 obj << /Title 527 0 R /A 524 0 R +<<<<<<< HEAD:docs/psblas-3.6.pdf /Parent 502 0 R +======= +/Parent 514 0 R +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf /Prev 522 0 R >> % 522 0 obj << /Title 523 0 R /A 520 0 R +<<<<<<< HEAD:docs/psblas-3.6.pdf /Parent 502 0 R +======= +/Parent 514 0 R +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf /Prev 518 0 R /Next 526 0 R >> @@ -28169,97 +47928,162 @@ stream << /Title 519 0 R /A 516 0 R +<<<<<<< HEAD:docs/psblas-3.6.pdf /Parent 502 0 R /Prev 514 0 R +======= +/Parent 514 0 R +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf /Next 522 0 R >> % 514 0 obj << /Title 515 0 R /A 512 0 R +<<<<<<< HEAD:docs/psblas-3.6.pdf /Parent 502 0 R /Prev 510 0 R /Next 518 0 R +======= +/Parent 4 0 R +/Prev 494 0 R +/Next 542 0 R +/First 518 0 R +/Last 538 0 R +/Count -6 +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> % 510 0 obj << /Title 511 0 R /A 508 0 R +<<<<<<< HEAD:docs/psblas-3.6.pdf /Parent 502 0 R +======= +/Parent 494 0 R +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf /Prev 506 0 R -/Next 514 0 R >> % 506 0 obj << /Title 507 0 R /A 504 0 R +<<<<<<< HEAD:docs/psblas-3.6.pdf /Parent 502 0 R +======= +/Parent 494 0 R +/Prev 502 0 R +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf /Next 510 0 R >> % 502 0 obj << /Title 503 0 R /A 500 0 R +<<<<<<< HEAD:docs/psblas-3.6.pdf /Parent 4 0 R /Prev 482 0 R /Next 530 0 R /First 506 0 R /Last 526 0 R /Count -6 +======= +/Parent 494 0 R +/Prev 498 0 R +/Next 506 0 R +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> % 498 0 obj << /Title 499 0 R /A 496 0 R +<<<<<<< HEAD:docs/psblas-3.6.pdf /Parent 482 0 R /Prev 494 0 R +======= +/Parent 494 0 R +/Next 502 0 R +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> % 494 0 obj << /Title 495 0 R /A 492 0 R +<<<<<<< HEAD:docs/psblas-3.6.pdf /Parent 482 0 R /Prev 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 +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> % 490 0 obj << /Title 491 0 R /A 488 0 R +<<<<<<< HEAD:docs/psblas-3.6.pdf /Parent 482 0 R /Prev 486 0 R /Next 494 0 R +======= +/Parent 422 0 R +/Prev 486 0 R +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> % 486 0 obj << /Title 487 0 R /A 484 0 R +<<<<<<< HEAD:docs/psblas-3.6.pdf /Parent 482 0 R +======= +/Parent 422 0 R +/Prev 482 0 R +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf /Next 490 0 R >> % 482 0 obj << /Title 483 0 R /A 480 0 R +<<<<<<< HEAD:docs/psblas-3.6.pdf /Parent 4 0 R /Prev 410 0 R /Next 502 0 R /First 486 0 R /Last 498 0 R /Count -4 +======= +/Parent 422 0 R +/Prev 478 0 R +/Next 486 0 R +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> % 478 0 obj << /Title 479 0 R /A 476 0 R +<<<<<<< HEAD:docs/psblas-3.6.pdf /Parent 410 0 R +======= +/Parent 422 0 R +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf /Prev 474 0 R >> % 474 0 obj << /Title 475 0 R /A 472 0 R +<<<<<<< HEAD:docs/psblas-3.6.pdf /Parent 410 0 R +======= +/Parent 422 0 R +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf /Prev 470 0 R /Next 478 0 R >> @@ -28267,7 +48091,11 @@ stream << /Title 471 0 R /A 468 0 R +<<<<<<< HEAD:docs/psblas-3.6.pdf /Parent 410 0 R +======= +/Parent 422 0 R +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf /Prev 466 0 R /Next 474 0 R >> @@ -28275,7 +48103,11 @@ stream << /Title 467 0 R /A 464 0 R +<<<<<<< HEAD:docs/psblas-3.6.pdf /Parent 410 0 R +======= +/Parent 422 0 R +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf /Prev 462 0 R /Next 470 0 R >> @@ -28283,7 +48115,11 @@ stream << /Title 463 0 R /A 460 0 R +<<<<<<< HEAD:docs/psblas-3.6.pdf /Parent 410 0 R +======= +/Parent 422 0 R +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf /Prev 458 0 R /Next 466 0 R >> @@ -28291,7 +48127,11 @@ stream << /Title 459 0 R /A 456 0 R +<<<<<<< HEAD:docs/psblas-3.6.pdf /Parent 410 0 R +======= +/Parent 422 0 R +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf /Prev 454 0 R /Next 462 0 R >> @@ -28299,7 +48139,11 @@ stream << /Title 455 0 R /A 452 0 R +<<<<<<< HEAD:docs/psblas-3.6.pdf /Parent 410 0 R +======= +/Parent 422 0 R +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf /Prev 450 0 R /Next 458 0 R >> @@ -28307,7 +48151,11 @@ stream << /Title 451 0 R /A 448 0 R +<<<<<<< HEAD:docs/psblas-3.6.pdf /Parent 410 0 R +======= +/Parent 422 0 R +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf /Prev 446 0 R /Next 454 0 R >> @@ -28315,7 +48163,11 @@ stream << /Title 447 0 R /A 444 0 R +<<<<<<< HEAD:docs/psblas-3.6.pdf /Parent 410 0 R +======= +/Parent 422 0 R +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf /Prev 442 0 R /Next 450 0 R >> @@ -28323,7 +48175,11 @@ stream << /Title 443 0 R /A 440 0 R +<<<<<<< HEAD:docs/psblas-3.6.pdf /Parent 410 0 R +======= +/Parent 422 0 R +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf /Prev 438 0 R /Next 446 0 R >> @@ -28331,7 +48187,11 @@ stream << /Title 439 0 R /A 436 0 R +<<<<<<< HEAD:docs/psblas-3.6.pdf /Parent 410 0 R +======= +/Parent 422 0 R +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf /Prev 434 0 R /Next 442 0 R >> @@ -28339,7 +48199,11 @@ stream << /Title 435 0 R /A 432 0 R +<<<<<<< HEAD:docs/psblas-3.6.pdf /Parent 410 0 R +======= +/Parent 422 0 R +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf /Prev 430 0 R /Next 438 0 R >> @@ -28347,7 +48211,11 @@ stream << /Title 431 0 R /A 428 0 R +<<<<<<< HEAD:docs/psblas-3.6.pdf /Parent 410 0 R +======= +/Parent 422 0 R +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf /Prev 426 0 R /Next 434 0 R >> @@ -28355,56 +48223,112 @@ stream << /Title 427 0 R /A 424 0 R +<<<<<<< HEAD:docs/psblas-3.6.pdf /Parent 410 0 R /Prev 422 0 R +======= +/Parent 422 0 R +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf /Next 430 0 R >> % 422 0 obj << /Title 423 0 R /A 420 0 R +<<<<<<< HEAD:docs/psblas-3.6.pdf /Parent 410 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 +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> % 418 0 obj << /Title 419 0 R /A 416 0 R +<<<<<<< HEAD:docs/psblas-3.6.pdf /Parent 410 0 R +======= +/Parent 309 0 R +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf /Prev 414 0 R -/Next 422 0 R >> % 414 0 obj << /Title 415 0 R /A 412 0 R +<<<<<<< HEAD:docs/psblas-3.6.pdf /Parent 410 0 R +======= +/Parent 309 0 R +/Prev 410 0 R +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf /Next 418 0 R >> + +endstream +endobj +2009 0 obj +<< +/Type /ObjStm +/N 100 +/First 863 +/Length 9633 +>> +stream +410 0 406 88 401 176 397 264 393 352 389 440 385 528 381 616 377 704 373 792 +369 880 365 968 361 1056 357 1144 353 1232 349 1320 345 1408 341 1496 337 1584 333 1672 +329 1760 325 1848 321 1936 317 2024 313 2112 309 2186 305 2312 301 2386 297 2474 293 2562 +289 2636 285 2761 281 2835 277 2923 273 3011 269 3099 265 3187 261 3275 257 3363 253 3451 +249 3539 245 3627 241 3715 237 3803 233 3891 229 3979 225 4067 221 4141 217 4266 213 4339 +209 4426 205 4500 200 4588 196 4676 192 4764 188 4852 184 4926 180 5052 176 5126 172 5214 +168 5302 164 5390 160 5478 156 5566 152 5654 148 5742 144 5830 140 5918 136 6006 132 6094 +128 6182 124 6270 120 6358 116 6446 112 6534 108 6622 104 6696 100 6822 96 6893 92 6976 +88 7058 84 7140 80 7222 76 7304 72 7386 68 7468 64 7550 60 7632 56 7714 52 7796 +48 7878 44 7960 40 8029 36 8138 32 8258 28 8327 24 8383 20 8502 16 8584 12 8653 % 410 0 obj << /Title 411 0 R /A 408 0 R +<<<<<<< HEAD:docs/psblas-3.6.pdf /Parent 4 0 R /Prev 297 0 R /Next 482 0 R /First 414 0 R /Last 478 0 R /Count -17 +======= +/Parent 309 0 R +/Prev 406 0 R +/Next 414 0 R +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> % 406 0 obj << /Title 407 0 R /A 403 0 R +<<<<<<< HEAD:docs/psblas-3.6.pdf /Parent 297 0 R +======= +/Parent 309 0 R +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf /Prev 401 0 R >> % 401 0 obj << /Title 402 0 R /A 399 0 R +<<<<<<< HEAD:docs/psblas-3.6.pdf /Parent 297 0 R +======= +/Parent 309 0 R +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf /Prev 397 0 R /Next 406 0 R >> @@ -28412,7 +48336,11 @@ stream << /Title 398 0 R /A 395 0 R +<<<<<<< HEAD:docs/psblas-3.6.pdf /Parent 297 0 R +======= +/Parent 309 0 R +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf /Prev 393 0 R /Next 401 0 R >> @@ -28420,7 +48348,11 @@ stream << /Title 394 0 R /A 391 0 R +<<<<<<< HEAD:docs/psblas-3.6.pdf /Parent 297 0 R +======= +/Parent 309 0 R +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf /Prev 389 0 R /Next 397 0 R >> @@ -28428,7 +48360,11 @@ stream << /Title 390 0 R /A 387 0 R +<<<<<<< HEAD:docs/psblas-3.6.pdf /Parent 297 0 R +======= +/Parent 309 0 R +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf /Prev 385 0 R /Next 393 0 R >> @@ -28436,7 +48372,11 @@ stream << /Title 386 0 R /A 383 0 R +<<<<<<< HEAD:docs/psblas-3.6.pdf /Parent 297 0 R +======= +/Parent 309 0 R +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf /Prev 381 0 R /Next 389 0 R >> @@ -28444,7 +48384,11 @@ stream << /Title 382 0 R /A 379 0 R +<<<<<<< HEAD:docs/psblas-3.6.pdf /Parent 297 0 R +======= +/Parent 309 0 R +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf /Prev 377 0 R /Next 385 0 R >> @@ -28452,7 +48396,11 @@ stream << /Title 378 0 R /A 375 0 R +<<<<<<< HEAD:docs/psblas-3.6.pdf /Parent 297 0 R +======= +/Parent 309 0 R +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf /Prev 373 0 R /Next 381 0 R >> @@ -28460,7 +48408,11 @@ stream << /Title 374 0 R /A 371 0 R +<<<<<<< HEAD:docs/psblas-3.6.pdf /Parent 297 0 R +======= +/Parent 309 0 R +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf /Prev 369 0 R /Next 377 0 R >> @@ -28468,7 +48420,11 @@ stream << /Title 370 0 R /A 367 0 R +<<<<<<< HEAD:docs/psblas-3.6.pdf /Parent 297 0 R +======= +/Parent 309 0 R +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf /Prev 365 0 R /Next 373 0 R >> @@ -28476,7 +48432,11 @@ stream << /Title 366 0 R /A 363 0 R +<<<<<<< HEAD:docs/psblas-3.6.pdf /Parent 297 0 R +======= +/Parent 309 0 R +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf /Prev 361 0 R /Next 369 0 R >> @@ -28484,7 +48444,11 @@ stream << /Title 362 0 R /A 359 0 R +<<<<<<< HEAD:docs/psblas-3.6.pdf /Parent 297 0 R +======= +/Parent 309 0 R +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf /Prev 357 0 R /Next 365 0 R >> @@ -28492,7 +48456,11 @@ stream << /Title 358 0 R /A 355 0 R +<<<<<<< HEAD:docs/psblas-3.6.pdf /Parent 297 0 R +======= +/Parent 309 0 R +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf /Prev 353 0 R /Next 361 0 R >> @@ -28500,7 +48468,11 @@ stream << /Title 354 0 R /A 351 0 R +<<<<<<< HEAD:docs/psblas-3.6.pdf /Parent 297 0 R +======= +/Parent 309 0 R +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf /Prev 349 0 R /Next 357 0 R >> @@ -28508,7 +48480,11 @@ stream << /Title 350 0 R /A 347 0 R +<<<<<<< HEAD:docs/psblas-3.6.pdf /Parent 297 0 R +======= +/Parent 309 0 R +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf /Prev 345 0 R /Next 353 0 R >> @@ -28516,7 +48492,11 @@ stream << /Title 346 0 R /A 343 0 R +<<<<<<< HEAD:docs/psblas-3.6.pdf /Parent 297 0 R +======= +/Parent 309 0 R +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf /Prev 341 0 R /Next 349 0 R >> @@ -28524,7 +48504,11 @@ stream << /Title 342 0 R /A 339 0 R +<<<<<<< HEAD:docs/psblas-3.6.pdf /Parent 297 0 R +======= +/Parent 309 0 R +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf /Prev 337 0 R /Next 345 0 R >> @@ -28532,7 +48516,11 @@ stream << /Title 338 0 R /A 335 0 R +<<<<<<< HEAD:docs/psblas-3.6.pdf /Parent 297 0 R +======= +/Parent 309 0 R +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf /Prev 333 0 R /Next 341 0 R >> @@ -28540,7 +48528,11 @@ stream << /Title 334 0 R /A 331 0 R +<<<<<<< HEAD:docs/psblas-3.6.pdf /Parent 297 0 R +======= +/Parent 309 0 R +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf /Prev 329 0 R /Next 337 0 R >> @@ -28548,7 +48540,11 @@ stream << /Title 330 0 R /A 327 0 R +<<<<<<< HEAD:docs/psblas-3.6.pdf /Parent 297 0 R +======= +/Parent 309 0 R +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf /Prev 325 0 R /Next 333 0 R >> @@ -28556,7 +48552,11 @@ stream << /Title 326 0 R /A 323 0 R +<<<<<<< HEAD:docs/psblas-3.6.pdf /Parent 297 0 R +======= +/Parent 309 0 R +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf /Prev 321 0 R /Next 329 0 R >> @@ -28564,7 +48564,11 @@ stream << /Title 322 0 R /A 319 0 R +<<<<<<< HEAD:docs/psblas-3.6.pdf /Parent 297 0 R +======= +/Parent 309 0 R +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf /Prev 317 0 R /Next 325 0 R >> @@ -28572,7 +48576,11 @@ stream << /Title 318 0 R /A 315 0 R +<<<<<<< HEAD:docs/psblas-3.6.pdf /Parent 297 0 R +======= +/Parent 309 0 R +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf /Prev 313 0 R /Next 321 0 R >> @@ -28580,66 +48588,112 @@ stream << /Title 314 0 R /A 311 0 R +<<<<<<< HEAD:docs/psblas-3.6.pdf /Parent 297 0 R /Prev 309 0 R +======= +/Parent 309 0 R +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf /Next 317 0 R >> % 309 0 obj << /Title 310 0 R /A 307 0 R +<<<<<<< HEAD:docs/psblas-3.6.pdf /Parent 297 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 +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> % 305 0 obj << /Title 306 0 R /A 303 0 R +<<<<<<< HEAD:docs/psblas-3.6.pdf /Parent 297 0 R +======= +/Parent 289 0 R +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf /Prev 301 0 R -/Next 309 0 R >> % 301 0 obj << /Title 302 0 R /A 299 0 R +<<<<<<< HEAD:docs/psblas-3.6.pdf /Parent 297 0 R +======= +/Parent 289 0 R +/Prev 297 0 R +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf /Next 305 0 R >> % 297 0 obj << /Title 298 0 R /A 295 0 R +<<<<<<< HEAD:docs/psblas-3.6.pdf /Parent 4 0 R /Prev 277 0 R /Next 410 0 R /First 301 0 R /Last 406 0 R /Count -27 +======= +/Parent 289 0 R +/Prev 293 0 R +/Next 301 0 R +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> % 293 0 obj << /Title 294 0 R /A 291 0 R +<<<<<<< HEAD:docs/psblas-3.6.pdf /Parent 277 0 R /Prev 289 0 R +======= +/Parent 289 0 R +/Next 297 0 R +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> % 289 0 obj << /Title 290 0 R /A 287 0 R +<<<<<<< HEAD:docs/psblas-3.6.pdf /Parent 277 0 R /Prev 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 +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> % 285 0 obj << /Title 286 0 R /A 283 0 R +<<<<<<< HEAD:docs/psblas-3.6.pdf /Parent 277 0 R /Prev 281 0 R /Next 289 0 R +======= +/Parent 221 0 R +/Prev 281 0 R +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> endstream @@ -28666,32 +48720,51 @@ stream << /Title 282 0 R /A 279 0 R +<<<<<<< HEAD:docs/psblas-3.6.pdf /Parent 277 0 R +======= +/Parent 221 0 R +/Prev 277 0 R +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf /Next 285 0 R >> % 277 0 obj << /Title 278 0 R /A 275 0 R +<<<<<<< HEAD:docs/psblas-3.6.pdf /Parent 4 0 R /Prev 209 0 R /Next 297 0 R /First 281 0 R /Last 293 0 R /Count -4 +======= +/Parent 221 0 R +/Prev 273 0 R +/Next 281 0 R +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> % 273 0 obj << /Title 274 0 R /A 271 0 R +<<<<<<< HEAD:docs/psblas-3.6.pdf /Parent 209 0 R +======= +/Parent 221 0 R +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf /Prev 269 0 R >> % 269 0 obj << /Title 270 0 R /A 267 0 R +<<<<<<< HEAD:docs/psblas-3.6.pdf /Parent 209 0 R +======= +/Parent 221 0 R +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf /Prev 265 0 R /Next 273 0 R >> @@ -28699,7 +48772,11 @@ stream << /Title 266 0 R /A 263 0 R +<<<<<<< HEAD:docs/psblas-3.6.pdf /Parent 209 0 R +======= +/Parent 221 0 R +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf /Prev 261 0 R /Next 269 0 R >> @@ -28707,7 +48784,7 @@ stream << /Title 262 0 R /A 259 0 R -/Parent 209 0 R +/Parent 221 0 R /Prev 257 0 R /Next 265 0 R >> @@ -28715,7 +48792,7 @@ stream << /Title 258 0 R /A 255 0 R -/Parent 209 0 R +/Parent 221 0 R /Prev 253 0 R /Next 261 0 R >> @@ -28723,7 +48800,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 >> @@ -28731,7 +48808,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 >> @@ -28739,7 +48816,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 >> @@ -28747,7 +48824,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 >> @@ -28755,7 +48832,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 >> @@ -28763,7 +48840,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 >> @@ -28771,7 +48848,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 >> @@ -28779,71 +48856,80 @@ 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 +<<<<<<< HEAD:docs/psblas-3.6.pdf /Parent 4 0 R /Prev 36 0 R /Next 277 0 R /First 213 0 R /Last 273 0 R /Count -16 +======= +/Parent 184 0 R +/Prev 205 0 R +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf >> % 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 >> @@ -28851,64 +48937,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 >> @@ -28916,7 +49002,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 >> @@ -28924,7 +49010,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 >> @@ -28932,7 +49018,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 >> @@ -28940,7 +49026,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 >> @@ -28948,7 +49034,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 >> @@ -28956,7 +49042,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 >> @@ -28964,7 +49050,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 >> @@ -28972,7 +49058,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 >> @@ -28980,7 +49066,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 >> @@ -28988,7 +49074,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 >> @@ -28996,7 +49082,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 >> @@ -29004,7 +49090,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 >> @@ -29012,65 +49098,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 >> % 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 >> @@ -29078,7 +49163,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 >> @@ -29086,7 +49171,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 >> @@ -29094,7 +49179,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 >> @@ -29102,7 +49187,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 >> @@ -29110,7 +49195,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 >> @@ -29118,7 +49203,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 >> @@ -29126,7 +49211,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 >> @@ -29134,7 +49219,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 @@ -29142,20 +49228,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 << @@ -29163,9 +49246,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 @@ -29218,6 +49301,27 @@ stream /Last 32 0 R /Count -4 >> + +endstream +endobj +2010 0 obj +<< +/Type /ObjStm +/N 100 +/First 1030 +/Length 20272 +>> +stream +8 0 4 65 2011 158 2012 354 2013 527 2014 707 2015 884 2016 1061 2017 1241 2018 1414 +2019 1579 2020 1745 2021 1910 2022 2076 2023 2242 2024 2414 2025 2584 2026 2756 2027 2925 2028 3094 +2029 3266 2030 3436 2031 3608 2032 3778 2033 3950 2034 4133 2035 4343 2036 4557 2037 4761 2038 4946 +2039 5135 2040 5363 2041 5590 2042 5810 2043 6038 2044 6274 2045 6506 2046 6736 2047 6964 2048 7192 +2049 7426 2050 7660 2051 7894 2052 8122 2053 8295 2054 8475 2055 8652 2056 8829 2057 9009 2058 9187 +2059 9367 2060 9545 2061 9725 2062 9903 2063 10074 2064 10238 2065 10405 2066 10577 2067 10747 2068 10919 +2069 11089 2070 11261 2071 11431 2072 11603 2073 11773 2074 11945 2075 12114 2076 12283 2077 12455 2078 12624 +2079 12803 2080 12986 2081 13163 2082 13393 2083 13612 2084 13836 2085 14066 2086 14288 2087 14510 2088 14738 +2089 14966 2090 15196 2091 15421 2092 15646 2093 15876 2094 16098 2095 16320 2096 16542 2097 16803 2098 17062 +2099 17322 2100 17592 2101 17858 2102 18120 2103 18358 2104 18538 2105 18717 2106 18889 2107 19016 2108 19130 % 8 0 obj << /Title 9 0 R @@ -29229,6 +49333,7 @@ stream << /Title 5 0 R /A 1 0 R +<<<<<<< HEAD:docs/psblas-3.6.pdf /Parent 1974 0 R /First 8 0 R /Last 558 0 R @@ -29850,10 +49955,632 @@ stream /Names 2092 0 R /URI (http://ce.uniroma2.it/psblas) /PageMode/UseOutlines/PageLabels<>2<>6<>]>> /OpenAction 564 0 R +======= +/Parent 2008 0 R +/First 8 0 R +/Last 570 0 R +/Count -11 +>> +% 2011 0 obj +<< +/Names [(Doc-Start) 581 0 R (Hfootnote.1) 815 0 R (Hfootnote.2) 817 0 R (Hfootnote.3) 871 0 R (Hfootnote.4) 1857 0 R (Hfootnote.5) 1909 0 R] +/Limits [(Doc-Start) (Hfootnote.5)] +>> +% 2012 0 obj +<< +/Names [(Item.1) 845 0 R (Item.10) 859 0 R (Item.100) 1631 0 R (Item.101) 1632 0 R (Item.102) 1633 0 R (Item.103) 1634 0 R] +/Limits [(Item.1) (Item.103)] +>> +% 2013 0 obj +<< +/Names [(Item.104) 1635 0 R (Item.105) 1636 0 R (Item.106) 1637 0 R (Item.107) 1647 0 R (Item.108) 1648 0 R (Item.109) 1653 0 R] +/Limits [(Item.104) (Item.109)] +>> +% 2014 0 obj +<< +/Names [(Item.11) 860 0 R (Item.110) 1654 0 R (Item.111) 1659 0 R (Item.112) 1660 0 R (Item.113) 1661 0 R (Item.114) 1692 0 R] +/Limits [(Item.11) (Item.114)] +>> +% 2015 0 obj +<< +/Names [(Item.115) 1693 0 R (Item.116) 1698 0 R (Item.117) 1699 0 R (Item.118) 1704 0 R (Item.119) 1705 0 R (Item.12) 861 0 R] +/Limits [(Item.115) (Item.12)] +>> +% 2016 0 obj +<< +/Names [(Item.120) 1711 0 R (Item.121) 1712 0 R (Item.122) 1717 0 R (Item.123) 1718 0 R (Item.124) 1723 0 R (Item.125) 1724 0 R] +/Limits [(Item.120) (Item.125)] +>> +% 2017 0 obj +<< +/Names [(Item.126) 1726 0 R (Item.127) 1731 0 R (Item.128) 1736 0 R (Item.13) 862 0 R (Item.14) 863 0 R (Item.15) 864 0 R] +/Limits [(Item.126) (Item.15)] +>> +% 2018 0 obj +<< +/Names [(Item.16) 865 0 R (Item.17) 866 0 R (Item.18) 867 0 R (Item.19) 868 0 R (Item.2) 846 0 R (Item.20) 869 0 R] +/Limits [(Item.16) (Item.20)] +>> +% 2019 0 obj +<< +/Names [(Item.21) 870 0 R (Item.22) 879 0 R (Item.23) 880 0 R (Item.24) 881 0 R (Item.25) 882 0 R (Item.26) 883 0 R] +/Limits [(Item.21) (Item.26)] +>> +% 2020 0 obj +<< +/Names [(Item.27) 884 0 R (Item.28) 898 0 R (Item.29) 899 0 R (Item.3) 847 0 R (Item.30) 900 0 R (Item.31) 901 0 R] +/Limits [(Item.27) (Item.31)] +>> +% 2021 0 obj +<< +/Names [(Item.32) 902 0 R (Item.33) 909 0 R (Item.34) 910 0 R (Item.35) 911 0 R (Item.36) 912 0 R (Item.37) 913 0 R] +/Limits [(Item.32) (Item.37)] +>> +% 2022 0 obj +<< +/Names [(Item.38) 914 0 R (Item.39) 915 0 R (Item.4) 848 0 R (Item.40) 916 0 R (Item.41) 958 0 R (Item.42) 1051 0 R] +/Limits [(Item.38) (Item.42)] +>> +% 2023 0 obj +<< +/Names [(Item.43) 1084 0 R (Item.44) 1111 0 R (Item.45) 1143 0 R (Item.46) 1321 0 R (Item.47) 1322 0 R (Item.48) 1323 0 R] +/Limits [(Item.43) (Item.48)] +>> +% 2024 0 obj +<< +/Names [(Item.49) 1382 0 R (Item.5) 849 0 R (Item.50) 1388 0 R (Item.51) 1393 0 R (Item.52) 1394 0 R (Item.53) 1395 0 R] +/Limits [(Item.49) (Item.53)] +>> +% 2025 0 obj +<< +/Names [(Item.54) 1396 0 R (Item.55) 1397 0 R (Item.56) 1409 0 R (Item.57) 1410 0 R (Item.58) 1411 0 R (Item.59) 1418 0 R] +/Limits [(Item.54) (Item.59)] +>> +% 2026 0 obj +<< +/Names [(Item.6) 850 0 R (Item.60) 1441 0 R (Item.61) 1442 0 R (Item.62) 1449 0 R (Item.63) 1450 0 R (Item.64) 1451 0 R] +/Limits [(Item.6) (Item.64)] +>> +% 2027 0 obj +<< +/Names [(Item.65) 1463 0 R (Item.66) 1464 0 R (Item.67) 1465 0 R (Item.68) 1466 0 R (Item.69) 1467 0 R (Item.7) 851 0 R] +/Limits [(Item.65) (Item.7)] +>> +% 2028 0 obj +<< +/Names [(Item.70) 1473 0 R (Item.71) 1474 0 R (Item.72) 1475 0 R (Item.73) 1476 0 R (Item.74) 1477 0 R (Item.75) 1478 0 R] +/Limits [(Item.70) (Item.75)] +>> +% 2029 0 obj +<< +/Names [(Item.76) 1490 0 R (Item.77) 1491 0 R (Item.78) 1492 0 R (Item.79) 1493 0 R (Item.8) 852 0 R (Item.80) 1494 0 R] +/Limits [(Item.76) (Item.80)] +>> +% 2030 0 obj +<< +/Names [(Item.81) 1495 0 R (Item.82) 1508 0 R (Item.83) 1525 0 R (Item.84) 1526 0 R (Item.85) 1554 0 R (Item.86) 1555 0 R] +/Limits [(Item.81) (Item.86)] +>> +% 2031 0 obj +<< +/Names [(Item.87) 1567 0 R (Item.88) 1574 0 R (Item.89) 1580 0 R (Item.9) 858 0 R (Item.90) 1586 0 R (Item.91) 1592 0 R] +/Limits [(Item.87) (Item.91)] +>> +% 2032 0 obj +<< +/Names [(Item.92) 1593 0 R (Item.93) 1599 0 R (Item.94) 1600 0 R (Item.95) 1611 0 R (Item.96) 1612 0 R (Item.97) 1613 0 R] +/Limits [(Item.92) (Item.97)] +>> +% 2033 0 obj +<< +/Names [(Item.98) 1629 0 R (Item.99) 1630 0 R (cite.2007c) 830 0 R (cite.2007d) 831 0 R (cite.BLACS) 803 0 R (cite.BLAS1) 785 0 R] +/Limits [(Item.98) (cite.BLAS1)] +>> +% 2034 0 obj +<< +/Names [(cite.BLAS2) 786 0 R (cite.BLAS3) 787 0 R (cite.DesPat:11) 780 0 R (cite.DesignPatterns) 948 0 R (cite.KIVA3PSBLAS) 1935 0 R (cite.METIS) 818 0 R] +/Limits [(cite.BLAS2) (cite.METIS)] +>> +% 2035 0 obj +<< +/Names [(cite.MPI1) 1940 0 R (cite.PARA04FOREST) 1933 0 R (cite.PSBLAS) 1934 0 R (cite.RouXiaXu:11) 781 0 R (cite.Sparse03) 779 0 R (cite.machiels) 782 0 R] +/Limits [(cite.MPI1) (cite.machiels)] +>> +% 2036 0 obj +<< +/Names [(cite.metcalf) 778 0 R (cite.sblas02) 784 0 R (cite.sblas97) 783 0 R (descdata) 890 0 R (equation.4.1) 1181 0 R (equation.4.2) 1182 0 R] +/Limits [(cite.metcalf) (equation.4.2)] +>> +% 2037 0 obj +<< +/Names [(equation.4.3) 1183 0 R (figure.1) 797 0 R (figure.10) 1745 0 R (figure.2) 826 0 R (figure.3) 917 0 R (figure.4) 949 0 R] +/Limits [(equation.4.3) (figure.4)] +>> +% 2038 0 obj +<< +/Names [(figure.5) 987 0 R (figure.6) 1007 0 R (figure.7) 1287 0 R (figure.8) 1324 0 R (figure.9) 1744 0 R (lstlisting.-1) 1052 0 R] +/Limits [(figure.5) (lstlisting.-1)] +>> +% 2039 0 obj +<< +/Names [(lstlisting.-10) 1780 0 R (lstlisting.-11) 1787 0 R (lstlisting.-12) 1793 0 R (lstlisting.-13) 1799 0 R (lstlisting.-14) 1811 0 R (lstlisting.-15) 1818 0 R] +/Limits [(lstlisting.-10) (lstlisting.-15)] +>> +% 2040 0 obj +<< +/Names [(lstlisting.-16) 1825 0 R (lstlisting.-17) 1831 0 R (lstlisting.-18) 1838 0 R (lstlisting.-19) 1844 0 R (lstlisting.-2) 1085 0 R (lstlisting.-20) 1906 0 R] +/Limits [(lstlisting.-16) (lstlisting.-20)] +>> +% 2041 0 obj +<< +/Names [(lstlisting.-3) 1112 0 R (lstlisting.-4) 1144 0 R (lstlisting.-5) 1278 0 R (lstlisting.-6) 1310 0 R (lstlisting.-7) 1349 0 R (lstlisting.-8) 1365 0 R] +/Limits [(lstlisting.-3) (lstlisting.-8)] +>> +% 2042 0 obj +<< +/Names [(lstlisting.-9) 1750 0 R (lstnumber.-1.1) 1053 0 R (lstnumber.-1.2) 1054 0 R (lstnumber.-1.3) 1055 0 R (lstnumber.-1.4) 1056 0 R (lstnumber.-10.1) 1781 0 R] +/Limits [(lstlisting.-9) (lstnumber.-10.1)] +>> +% 2043 0 obj +<< +/Names [(lstnumber.-11.1) 1788 0 R (lstnumber.-12.1) 1794 0 R (lstnumber.-13.1) 1800 0 R (lstnumber.-14.1) 1812 0 R (lstnumber.-15.1) 1819 0 R (lstnumber.-16.1) 1826 0 R] +/Limits [(lstnumber.-11.1) (lstnumber.-16.1)] +>> +% 2044 0 obj +<< +/Names [(lstnumber.-17.1) 1832 0 R (lstnumber.-18.1) 1839 0 R (lstnumber.-19.1) 1845 0 R (lstnumber.-2.1) 1086 0 R (lstnumber.-2.2) 1087 0 R (lstnumber.-2.3) 1088 0 R] +/Limits [(lstnumber.-17.1) (lstnumber.-2.3)] +>> +% 2045 0 obj +<< +/Names [(lstnumber.-2.4) 1089 0 R (lstnumber.-20.1) 1907 0 R (lstnumber.-20.2) 1908 0 R (lstnumber.-3.1) 1113 0 R (lstnumber.-3.2) 1114 0 R (lstnumber.-3.3) 1115 0 R] +/Limits [(lstnumber.-2.4) (lstnumber.-3.3)] +>> +% 2046 0 obj +<< +/Names [(lstnumber.-3.4) 1116 0 R (lstnumber.-4.1) 1145 0 R (lstnumber.-4.2) 1146 0 R (lstnumber.-4.3) 1147 0 R (lstnumber.-4.4) 1148 0 R (lstnumber.-5.1) 1279 0 R] +/Limits [(lstnumber.-3.4) (lstnumber.-5.1)] +>> +% 2047 0 obj +<< +/Names [(lstnumber.-5.2) 1280 0 R (lstnumber.-6.1) 1311 0 R (lstnumber.-6.2) 1312 0 R (lstnumber.-7.1) 1350 0 R (lstnumber.-7.2) 1351 0 R (lstnumber.-8.1) 1366 0 R] +/Limits [(lstnumber.-5.2) (lstnumber.-8.1)] +>> +% 2048 0 obj +<< +/Names [(lstnumber.-9.1) 1751 0 R (lstnumber.-9.10) 1761 0 R (lstnumber.-9.11) 1762 0 R (lstnumber.-9.12) 1763 0 R (lstnumber.-9.13) 1764 0 R (lstnumber.-9.14) 1765 0 R] +/Limits [(lstnumber.-9.1) (lstnumber.-9.14)] +>> +% 2049 0 obj +<< +/Names [(lstnumber.-9.15) 1766 0 R (lstnumber.-9.16) 1767 0 R (lstnumber.-9.17) 1768 0 R (lstnumber.-9.18) 1769 0 R (lstnumber.-9.19) 1770 0 R (lstnumber.-9.2) 1753 0 R] +/Limits [(lstnumber.-9.15) (lstnumber.-9.2)] +>> +% 2050 0 obj +<< +/Names [(lstnumber.-9.20) 1771 0 R (lstnumber.-9.21) 1772 0 R (lstnumber.-9.22) 1773 0 R (lstnumber.-9.23) 1774 0 R (lstnumber.-9.24) 1775 0 R (lstnumber.-9.3) 1754 0 R] +/Limits [(lstnumber.-9.20) (lstnumber.-9.3)] +>> +% 2051 0 obj +<< +/Names [(lstnumber.-9.4) 1755 0 R (lstnumber.-9.5) 1756 0 R (lstnumber.-9.6) 1757 0 R (lstnumber.-9.7) 1758 0 R (lstnumber.-9.8) 1759 0 R (lstnumber.-9.9) 1760 0 R] +/Limits [(lstnumber.-9.4) (lstnumber.-9.9)] +>> +% 2052 0 obj +<< +/Names [(page.1) 580 0 R (page.10) 897 0 R (page.100) 1579 0 R (page.101) 1585 0 R (page.102) 1591 0 R (page.103) 1598 0 R] +/Limits [(page.1) (page.103)] +>> +% 2053 0 obj +<< +/Names [(page.104) 1606 0 R (page.105) 1610 0 R (page.106) 1620 0 R (page.107) 1624 0 R (page.108) 1628 0 R (page.109) 1641 0 R] +/Limits [(page.104) (page.109)] +>> +% 2054 0 obj +<< +/Names [(page.11) 908 0 R (page.110) 1646 0 R (page.111) 1652 0 R (page.112) 1658 0 R (page.113) 1665 0 R (page.114) 1669 0 R] +/Limits [(page.11) (page.114)] +>> +% 2055 0 obj +<< +/Names [(page.115) 1673 0 R (page.116) 1679 0 R (page.117) 1683 0 R (page.118) 1687 0 R (page.119) 1691 0 R (page.12) 923 0 R] +/Limits [(page.115) (page.12)] +>> +% 2056 0 obj +<< +/Names [(page.120) 1697 0 R (page.121) 1703 0 R (page.122) 1710 0 R (page.123) 1716 0 R (page.124) 1722 0 R (page.125) 1730 0 R] +/Limits [(page.120) (page.125)] +>> +% 2057 0 obj +<< +/Names [(page.126) 1735 0 R (page.127) 1742 0 R (page.128) 1749 0 R (page.129) 1779 0 R (page.13) 927 0 R (page.130) 1786 0 R] +/Limits [(page.126) (page.130)] +>> +% 2058 0 obj +<< +/Names [(page.131) 1792 0 R (page.132) 1798 0 R (page.133) 1804 0 R (page.134) 1810 0 R (page.135) 1817 0 R (page.136) 1824 0 R] +/Limits [(page.131) (page.136)] +>> +% 2059 0 obj +<< +/Names [(page.137) 1830 0 R (page.138) 1837 0 R (page.139) 1843 0 R (page.14) 932 0 R (page.140) 1850 0 R (page.141) 1856 0 R] +/Limits [(page.137) (page.141)] +>> +% 2060 0 obj +<< +/Names [(page.142) 1865 0 R (page.143) 1869 0 R (page.144) 1877 0 R (page.145) 1882 0 R (page.146) 1888 0 R (page.147) 1894 0 R] +/Limits [(page.142) (page.147)] +>> +% 2061 0 obj +<< +/Names [(page.148) 1898 0 R (page.149) 1905 0 R (page.15) 938 0 R (page.150) 1917 0 R (page.151) 1922 0 R (page.152) 1927 0 R] +/Limits [(page.148) (page.152)] +>> +% 2062 0 obj +<< +/Names [(page.153) 1931 0 R (page.154) 1939 0 R (page.16) 945 0 R (page.17) 953 0 R (page.18) 957 0 R (page.19) 962 0 R] +/Limits [(page.153) (page.19)] +>> +% 2063 0 obj +<< +/Names [(page.2) 590 0 R (page.20) 967 0 R (page.21) 971 0 R (page.22) 975 0 R (page.23) 979 0 R (page.24) 985 0 R] +/Limits [(page.2) (page.24)] +>> +% 2064 0 obj +<< +/Names [(page.25) 991 0 R (page.26) 998 0 R (page.27) 1005 0 R (page.28) 1011 0 R (page.29) 1016 0 R (page.3) 809 0 R] +/Limits [(page.25) (page.3)] +>> +% 2065 0 obj +<< +/Names [(page.30) 1028 0 R (page.31) 1034 0 R (page.32) 1044 0 R (page.33) 1050 0 R (page.34) 1066 0 R (page.35) 1071 0 R] +/Limits [(page.30) (page.35)] +>> +% 2066 0 obj +<< +/Names [(page.36) 1078 0 R (page.37) 1083 0 R (page.38) 1097 0 R (page.39) 1105 0 R (page.4) 825 0 R (page.40) 1110 0 R] +/Limits [(page.36) (page.40)] +>> +% 2067 0 obj +<< +/Names [(page.41) 1123 0 R (page.42) 1129 0 R (page.43) 1136 0 R (page.44) 1142 0 R (page.45) 1155 0 R (page.46) 1162 0 R] +/Limits [(page.41) (page.46)] +>> +% 2068 0 obj +<< +/Names [(page.47) 1169 0 R (page.48) 1180 0 R (page.49) 1195 0 R (page.5) 838 0 R (page.50) 1202 0 R (page.51) 1213 0 R] +/Limits [(page.47) (page.51)] +>> +% 2069 0 obj +<< +/Names [(page.52) 1219 0 R (page.53) 1230 0 R (page.54) 1236 0 R (page.55) 1247 0 R (page.56) 1253 0 R (page.57) 1262 0 R] +/Limits [(page.52) (page.57)] +>> +% 2070 0 obj +<< +/Names [(page.58) 1268 0 R (page.59) 1276 0 R (page.6) 843 0 R (page.60) 1286 0 R (page.61) 1299 0 R (page.62) 1308 0 R] +/Limits [(page.58) (page.62)] +>> +% 2071 0 obj +<< +/Names [(page.63) 1320 0 R (page.64) 1328 0 R (page.65) 1332 0 R (page.66) 1347 0 R (page.67) 1356 0 R (page.68) 1363 0 R] +/Limits [(page.63) (page.68)] +>> +% 2072 0 obj +<< +/Names [(page.69) 1372 0 R (page.7) 857 0 R (page.70) 1376 0 R (page.71) 1381 0 R (page.72) 1387 0 R (page.73) 1392 0 R] +/Limits [(page.69) (page.73)] +>> +% 2073 0 obj +<< +/Names [(page.74) 1403 0 R (page.75) 1408 0 R (page.76) 1417 0 R (page.77) 1424 0 R (page.78) 1429 0 R (page.79) 1435 0 R] +/Limits [(page.74) (page.79)] +>> +% 2074 0 obj +<< +/Names [(page.8) 878 0 R (page.80) 1440 0 R (page.81) 1448 0 R (page.82) 1456 0 R (page.83) 1462 0 R (page.84) 1472 0 R] +/Limits [(page.8) (page.84)] +>> +% 2075 0 obj +<< +/Names [(page.85) 1484 0 R (page.86) 1489 0 R (page.87) 1501 0 R (page.88) 1507 0 R (page.89) 1514 0 R (page.9) 889 0 R] +/Limits [(page.85) (page.9)] +>> +% 2076 0 obj +<< +/Names [(page.90) 1520 0 R (page.91) 1524 0 R (page.92) 1534 0 R (page.93) 1540 0 R (page.94) 1544 0 R (page.95) 1549 0 R] +/Limits [(page.90) (page.95)] +>> +% 2077 0 obj +<< +/Names [(page.96) 1553 0 R (page.97) 1560 0 R (page.98) 1566 0 R (page.99) 1573 0 R (page.i) 637 0 R (page.ii) 694 0 R] +/Limits [(page.96) (page.ii)] +>> +% 2078 0 obj +<< +/Names [(page.iii) 740 0 R (page.iv) 760 0 R (precdata) 1006 0 R (section*.1) 638 0 R (section*.2) 1932 0 R (section.1) 7 0 R] +/Limits [(page.iii) (section.1)] +>> +% 2079 0 obj +<< +/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)] +>> +% 2080 0 obj +<< +/Names [(section.6) 308 0 R (section.7) 421 0 R (section.8) 493 0 R (section.9) 513 0 R (spbasedata) 947 0 R (spdata) 946 0 R] +/Limits [(section.6) (spdata)] +>> +% 2081 0 obj +<< +/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)] +>> +% 2082 0 obj +<< +/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)] +>> +% 2083 0 obj +<< +/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)] +>> +% 2084 0 obj +<< +/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)] +>> +% 2085 0 obj +<< +/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)] +>> +% 2086 0 obj +<< +/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)] +>> +% 2087 0 obj +<< +/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)] +>> +% 2088 0 obj +<< +/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)] +>> +% 2089 0 obj +<< +/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)] +>> +% 2090 0 obj +<< +/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)] +>> +% 2091 0 obj +<< +/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)] +>> +% 2092 0 obj +<< +/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)] +>> +% 2093 0 obj +<< +/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)] +>> +% 2094 0 obj +<< +/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)] +>> +% 2095 0 obj +<< +/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)] +>> +% 2096 0 obj +<< +/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)] +>> +% 2097 0 obj +<< +/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)] +>> +% 2098 0 obj +<< +/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)] +>> +% 2099 0 obj +<< +/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)] +>> +% 2100 0 obj +<< +/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)] +>> +% 2101 0 obj +<< +/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)] +>> +% 2102 0 obj +<< +/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) 999 0 R] +/Limits [(subsubsection.3.3.2) (table.1)] +>> +% 2103 0 obj +<< +/Names [(table.10) 1163 0 R (table.11) 1171 0 R (table.12) 1184 0 R (table.13) 1203 0 R (table.14) 1231 0 R (table.15) 1248 0 R] +/Limits [(table.10) (table.15)] +>> +% 2104 0 obj +<< +/Names [(table.16) 1263 0 R (table.17) 1277 0 R (table.18) 1309 0 R (table.19) 1348 0 R (table.2) 1045 0 R (table.20) 1364 0 R] +/Limits [(table.16) (table.20)] +>> +% 2105 0 obj +<< +/Names [(table.3) 1067 0 R (table.4) 1079 0 R (table.5) 1098 0 R (table.6) 1106 0 R (table.7) 1124 0 R (table.8) 1137 0 R] +/Limits [(table.3) (table.8)] +>> +% 2106 0 obj +<< +/Names [(table.9) 1156 0 R (title.0) 3 0 R (vbasedata) 933 0 R (vdata) 986 0 R] +/Limits [(table.9) (vdata)] +>> +% 2107 0 obj +<< +/Kids [2011 0 R 2012 0 R 2013 0 R 2014 0 R 2015 0 R 2016 0 R] +/Limits [(Doc-Start) (Item.125)] +>> +% 2108 0 obj +<< +/Kids [2017 0 R 2018 0 R 2019 0 R 2020 0 R 2021 0 R 2022 0 R] +/Limits [(Item.126) (Item.42)] >> endstream endobj +2130 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:20191217193209Z) +/ModDate (D:20191217193209Z) +/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 +<< +/Type /ObjStm +/N 20 +/First 189 +/Length 2518 +>> +stream +2109 0 2111 111 2112 225 2113 345 2114 469 2115 588 2116 701 2117 812 2118 923 2119 1034 +2120 1152 2121 1277 2122 1403 2123 1533 2124 1654 2125 1774 2126 1899 2127 1997 2128 2081 2129 2116 +% 2109 0 obj +<< +/Kids [2023 0 R 2024 0 R 2025 0 R 2026 0 R 2027 0 R 2028 0 R] +/Limits [(Item.43) (Item.75)] +>> +% 2111 0 obj +<< +/Kids [2029 0 R 2030 0 R 2031 0 R 2032 0 R 2033 0 R 2034 0 R] +/Limits [(Item.76) (cite.METIS)] +>> +% 2112 0 obj +<< +/Kids [2035 0 R 2036 0 R 2037 0 R 2038 0 R 2039 0 R 2040 0 R] +/Limits [(cite.MPI1) (lstlisting.-20)] +>> +% 2113 0 obj +<< +/Kids [2041 0 R 2042 0 R 2043 0 R 2044 0 R 2045 0 R 2046 0 R] +/Limits [(lstlisting.-3) (lstnumber.-5.1)] +>> +% 2114 0 obj +<< +/Kids [2047 0 R 2048 0 R 2049 0 R 2050 0 R 2051 0 R 2052 0 R] +/Limits [(lstnumber.-5.2) (page.103)] +>> +% 2115 0 obj +<< +/Kids [2053 0 R 2054 0 R 2055 0 R 2056 0 R 2057 0 R 2058 0 R] +/Limits [(page.104) (page.136)] +>> +% 2116 0 obj +<< +/Kids [2059 0 R 2060 0 R 2061 0 R 2062 0 R 2063 0 R 2064 0 R] +/Limits [(page.137) (page.3)] +>> +% 2117 0 obj +<< +/Kids [2065 0 R 2066 0 R 2067 0 R 2068 0 R 2069 0 R 2070 0 R] +/Limits [(page.30) (page.62)] +>> +% 2118 0 obj +<< +/Kids [2071 0 R 2072 0 R 2073 0 R 2074 0 R 2075 0 R 2076 0 R] +/Limits [(page.63) (page.95)] +>> +% 2119 0 obj +<< +/Kids [2077 0 R 2078 0 R 2079 0 R 2080 0 R 2081 0 R 2082 0 R] +/Limits [(page.96) (subsection.3.1)] +>> +% 2120 0 obj +<< +/Kids [2083 0 R 2084 0 R 2085 0 R 2086 0 R 2087 0 R 2088 0 R] +/Limits [(subsection.3.2) (subsection.6.2)] +>> +% 2121 0 obj +<< +/Kids [2089 0 R 2090 0 R 2091 0 R 2092 0 R 2093 0 R 2094 0 R] +/Limits [(subsection.6.20) (subsection.8.4)] +>> +% 2122 0 obj +<< +/Kids [2095 0 R 2096 0 R 2097 0 R 2098 0 R 2099 0 R 2100 0 R] +/Limits [(subsection.9.1) (subsubsection.3.2.4)] +>> +% 2123 0 obj +<< +/Kids [2101 0 R 2102 0 R 2103 0 R 2104 0 R 2105 0 R 2106 0 R] +/Limits [(subsubsection.3.2.5) (vdata)] +>> +% 2124 0 obj +<< +/Kids [2107 0 R 2108 0 R 2109 0 R 2111 0 R 2112 0 R 2113 0 R] +/Limits [(Doc-Start) (lstnumber.-5.1)] +>> +% 2125 0 obj +<< +/Kids [2114 0 R 2115 0 R 2116 0 R 2117 0 R 2118 0 R 2119 0 R] +/Limits [(lstnumber.-5.2) (subsection.3.1)] +>> +% 2126 0 obj +<< +/Kids [2120 0 R 2121 0 R 2122 0 R 2123 0 R] +/Limits [(subsection.3.2) (vdata)] +>> +% 2127 0 obj +<< +/Kids [2124 0 R 2125 0 R 2126 0 R] +/Limits [(Doc-Start) (vdata)] +>> +% 2128 0 obj +<< +/Dests 2127 0 R +>> +% 2129 0 obj +<< +/Type /Catalog +/Pages 2007 0 R +/Outlines 2008 0 R +/Names 2128 0 R + /URI (http://ce.uniroma2.it/psblas) /PageMode/UseOutlines/PageLabels<>2<>6<>]>> +/OpenAction 576 0 R +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf +>> + +endstream +endobj +<<<<<<< HEAD:docs/psblas-3.6.pdf 2095 0 obj << /Type /XRef @@ -29904,4 +50631,58 @@ endstream endobj startxref 1330558 +======= +2131 0 obj +<< +/Type /XRef +/Index [0 2132] +/Size 2132 +/W [1 3 1] +/Root 2129 0 R +/Info 2130 0 R +/ID [<3B79E1E6431616BF39FA9DB2C0ED2BAF> <3B79E1E6431616BF39FA9DB2C0ED2BAF>] +/Length 10660 +>> +stream +ÿ”ZÚêHÚêRÙcêZÙb@Ùa  +@ Ù`  @+Ù_ @2Ù^@7Ù]@8Ù\@XÙ[@YÙZ@ZÙY@[ÙX@_ÙW@`ÙV @aÙU!"¦ÙT#$¦ÙS%&¦ÙR'(¦ÙQ)*¦ ÙP+,¦ +ÙO-.¦ ÙN/0¦ÙM12¦ÙL34¦ÙK56¦ÙJ78¦ÙI9:¦ ÙH;<¦"ÙG=>¦&ÙF?@¦'ÙEAB¦(ÙDCD¦,ÙCEF¦-ÙBGH¦1ÙAIJ¦2Ù@KL¦6Ù?MN¦7Ù>OP¦8Ù=QR¦<Ù<ST¦BÙ;UV¦CÙ:WX¦DÙ9YZ¦EÙ8[\¦KÙ7]^¦LÙ6_`¦MÙ5ab¦SÙ4cËR¦XÙ3Ë˦YÙ2Ë˦ZÙ1Ë˦aÙ0ËËùÙ/Ë Ë +ù Ù.Ë Ë ùÙ-Ë Ëù0Ù,ËËù;Ù+ËËùLÙ*ËËùTÙ)ËËeÙ(ËËe Ù'ËËeÙ&ËËe$Ù%ËËe+Ù$ËË e4Ù#Ë!Ë"eHÙ"Ë#Ë$ecÙ!Ë%Ë&Ð Ù Ë'Ë(ÐÙË)Ë*Ð!ÙË+Ë,Ð(ÙË-Ë.ÐBÙË/Ë0ÐcÙË1Ë2H ÙË3Ë4HÙË5Ë6HÙË7Ë8H0ÙË9Ë:H=ÙË;Ë<HDÙË=Ë>HIÙË?Ë@HOÙËAËBHZÙËCËDHaÙËEËF¼ÙËGËH¼&ÙËIËJ¼,ÙËKËL¼3Ù ËMËN¼9Ù ËOËP¼EÙ ËQËR¼KÙ +ËSËT¼OÙ ËUËV¼TÙËWËX¼^ÙËYËZ¼cÙË[Ë\ ÙË]Ë^ ÙË_Ë` ÙËaËb ÙËc”sü Ù”” %Ù”” 2Éc”” 6Éb”” FÉa” ” + JÉ`” ”  PÉ_” ” VÉ^”” ]É]”” aÉ\””‹É[””‹ÉZ””‹ ÉY””‹ ÉX””‹ÉW””‹ÉV”” ‹ÉU”!”"‹#ÉT”#”$‹)ÉS”%”&‹/ÉR”'”(‹6ÉQ”)”*‹;ÉP”+”,‹BÉO”-”.öÉN”/”0öÉM”1”2ö ÉL”3”4öÉK”5”6öÉJ”7”8öÉI”9”:ö$ÉH”;”<ö+ÉG”=”>ö1ÉF”?”@ö8ÉE”A”Bö>ÉD”C”DöDÉC”E”FöJÉB”G”HöSÉA”I”Jö^É@”K”LöcÉ?”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êêêêêêêêêê ê +ê ê êêêêêêêêêêêêêêêêêêê ê!ê"ê#ê%ê'ê)ê.ê,ƒ_Îõê+ê ê$ê&ê(ê*îeê0ê2ê3ê4ê5ê6ê7ê8ê9ê:ê<ê-Y7ê;ê/ê1ê>ê?ê@êAêBêCêDêEêFêGêIê=géÉÉ\=\4\*\>\<\1\2\;\.\/êOêPêQŸrêVêTêJ‰kÉ êSêKêLêMêN¤(\0êWêXê]êU¯ËêYÉÉÉ ÉÉê[Éê\\:êbêcç»@ê^Ò@@ê_ê`êa\-\,(&@@@@*5@@@@ ?Ç@ +É +@ @ @@@@@@@(@&@aÖ@@@@@@@@@@ @!@"@#@$@%ÉÉ@)@3@'€9@*@,@-@.@/@0@1@5@:@4¦@6@9@<@=@>@E@;¾ò@?@@@A@B@C@D@G@H@S@FÙÙ@I@J@K@L@M@N@O@P@Q@R@U@V@\@TîO@W@b@]ÿ@^ɦ@cŽ¦¦bˆ¦ ¦Kþ¦¦¦¦¦¦ cX¦¦¦\9¦¦¦‡c¦¦#¦žê¦¦!¦)¦$¬ý¦%ɦ.¦*»Þ¦+¦3¦/Î2¦0¦9¦4Þ€¦5¦=¦:;¦?¦@¦G¦>N¦A¦F¦J¦N¦H"µ¦IɦP¦Q¦T¦O1w¦Rù ¦V¦^¦\¦U@³¦W¦[¦`¦b¦]S¦_Éù¦ca®ù’uùùùùùù ùù ù…úù +ùùùù¢ÚùÉùùùùùùù­zùùùù'ùËÔù ù!ù"ù#ù$ù%ù&ù)ù*ù+ù,ù-ù.ù2ù(àù/ù1ù5ù3=ù4ù7ù8ù9ù=ù6êù:ù<ùFù>ù?ù@ùAùBùCùDùEÉ ùHùIùJùNùG1ùKùMùPùQùRùVùOIñùSùUù_ùWf.ùXùYùZù[ù\ù]ù^ùaùbùceù`u˜eeÔBeeÀeee e +ee´e e É!eeÜ>eeeeeeeeeeeeîžeee!e"e&e ×e#e%e(e)e-e'¤e*Ée,e/e0e1e2e;e9e.2–e3e5e6e7e8e<e=e>e?e@eAeBeDe:OyeCÉ"eFeLeJeEkeGeIeMeNeOePeQeReTeK…ÃeSeVeWeYeU¤neXe[e\e]e^e_e`eaÐeZ¶ñebÐÌþÐÐÙÐÐÐÐÐ Ð +ÐÐÐЇРРÉ#ÐÐ$ÌÐÐÐÐÐÐÐÐ*ÖÐÐÐÐ"ÐH^Ð Ð$Ð%Ð&Ð5Ð-Ð#K&Ð'Ð)Ð*Ð+Ð,tÐ6Ð9Ð.gÈÐ7Ð8Ð/Ð0Ð1Ð2Ð3Ð4‚ܶKÐ<Ð:ããÐ;ÉÉ$Ð>Ð?Ð@ÐGÐ=ð +ÐAÐCÐDÐEÐFÐI8|ÐJÐKÐPÐHsÐLÐMÐNÐOÐ\ÐSÐQ(šÐRÐ]ÐT6úÐ[ÐUÐVÐWÐXÐYÐZGz‰Ð_Ð`ÐaHÐ^¨!ÐbHHHH +V1HHþxHÉ%H HHH dH +H H HHHHH #&HHH 3¸HHHH M‹HHH!H$H  g¶H"H#H,H% 4H&H'H(H)H*H+É&H.H1H- ™ÕH/H3H8H2 ¶H4H5H6H7H:H;H?H9 °H<H>HAHBHEH@ Û<HCHGHJHF èPHHHLHMHPHK ñZHNÉ'HUHQ +ÃHRHSHTHWHXH^HV +3HYH[H\H]¼HbH_ +"‘H`¼¼¼ Hc +9"¼¼¼¼¼¼ rÞ¼¼ + +€¼ ¼ ¼ ¼¼¼¼¼¼¼¼ +1¼É(¼!¼ +©i¼¼¼¼¼¼¼ ¼#¼$¼'¼" +²u¼%¼)¼*¼.¼( +¾Ë¼+¼-¼0¼1¼4¼/ +Ι¼2¼6¼7¼:¼5 +âÔ¼8¼?¼; +ýÕ¼<¼=¼>É)¼A¼B¼C¼F¼@ i¼D¼H¼I¼L¼G ¼J¼P¼M $Š¼N¼R¼U¼Q 2Q¼S¼Z¼V L&¼W¼X¼Y¼\¼_¼[ O$¼]É*¼a ¼` eüb  ¯    œp      °, +     ½(      ÐÔ     !  à   É+ # & " î¦ $ , ' § ( ) * + . / 0 3 - Z 1 7 4 $Á 5 C 8 ;‹ 9 : ; < = > ? @ A B G D W EÉ, M H X  I K L S N n O Q R Z T € U W X Y ^ [ ‘Ú \ b _ œT `‹ c ª‹É- á‹‹ Õ‹‹ +‹ Û±‹‹‹  áH‹ ‹‹ óD‹‹‹‹‹ ¦‹‹‹‹ ‹ /‹‹‹É.‹&‹! 0Ÿ‹"‹$‹%‹,‹' E„‹(‹*‹+‹3‹- ZL‹.‹0‹1É‹2‹8‹4 rû‹5‹7‹=‹9 ˆ%‹:‹<‹?‹@‹C‹> a‹AÉ/‹_‹`‹a‹D ¶‹‹E‹F‹GÉ‹H‹I‹J‹K‹L‹M‹N‹O‹P‹Q‹R‹S‹T‹U‹V‹W‹X‹Y‹Z‹[‹\‹]‹^ö‹b Òï‹cööÝõö öjööööö + ++ö ö öööÑöööööPöÉ0öö ö¦öööö"ö'ö!.“ö#ö%ö&ö)ö.ö(C`ö*ö,ö-ö4ö/Qïö0ö2ö3ö6ö;ö5`±ö7ö9ö:öAö<qSö=ö?ö@É1öEöB~ÑöCöGöHöLöFƒÍöIöKöNöOöPöQöTöM—ëöRöWöU¶böVöYöZö[ö\ö_öXºåö]öa\ö`ÒöbÉ2Ž\\‚\\\\ +\ ¥\\\ ’\ \\\\\/\\\\\É \\\\\7ð\\!\#\ T\"É3\&\$f’\%\6\'g\(\)\+\3\5\@\7‚Â\8\?\A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T3\Uçs\V5ø\W]\X{6\Y¼Æ\ZÚÄ\[7\\ œ\]…’\^¥\_ÇZ\` \aHÉ\bpt\c×NÉÛø'ÉVˆÉ¤É´HÉÉ4É5É6É7É8É9É:à4ÞÚÚÚÚÚÚÚÚ Ú +Ú Ú Ú ÚÚÚÚÚÚÚÚÚÚÚÚÚÚÚÚÚÚÚ Ú!Ú"Ú#Ú$Ú%Ú&Ú'Ú(Ú)Ú*Ú+Ú,Ú-Ú.Ú/Ú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>†¡>>>>>>>>> > +> > > >>>>>>„lÓ +endstream +endobj +startxref +1347795 +>>>>>>> merge-paraggr:docs/psblas-3.7.pdf %%EOF diff --git a/docs/src/Makefile b/docs/src/Makefile index 65574507..41c75116 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) @@ -328,7 +332,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..93a6102f 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]{figures/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]{figures/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..f1fbc3c6 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/intro.tex b/docs/src/intro.tex index d0fb9b8c..16cdd969 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]{figures/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]{figures/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 91f010ef..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} -call psb_get_mpicomm(icontxt, icomm) +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 ] @@ -174,21 +171,23 @@ Specified as: an integer variable. \begin{description} \item[\bf On Return] -\item[icomm] The MPI communicator associated with the PSBLAS virtual parallel machine.\\ +\item[Function value] The MPI communicator associated with the PSBLAS virtual parallel machine.\\ Scope: {\bf global}.\\ 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} -call psb_get_rank(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 ] @@ -207,17 +206,19 @@ Specified as: an integer value. $0 \le id \le np-1$\ \begin{description} \item[\bf On Return] -\item[rank] The MPI rank associated with the PSBLAS process $id$.\\ +\item[Funciton value] The MPI rank associated with the PSBLAS process $id$.\\ Scope: {\bf local}.\\ 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 f1063068..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: @@ -1251,8 +1238,7 @@ An integer value; 0 means no error has been detected. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\clearpage\subsection*{psb\_gemlt --- Entrywise Product} -\addcontentsline{toc}{subsection}{psb\_gemlt} +\clearpage\subsection{psb\_gemlt --- Entrywise Product} This function computes the entrywise product between two vectors $x$ and $y$ @@ -1320,8 +1306,7 @@ psb_gemlt(x, y, desc_a, info) An integer value; 0 means no error has been detected. \end{description} -\clearpage\subsection*{psb\_gediv --- Entrywise Division} -\addcontentsline{toc}{subsection}{psb\_gediv} +\clearpage\subsection{psb\_gediv --- Entrywise Division} This function computes the entrywise division between two vectors $x$ and $y$ @@ -1394,8 +1379,7 @@ psb_gediv(x, y, desc_a, info, [flag) An integer value; 0 means no error has been detected. \end{description} -\clearpage\subsection*{psb\_geinv --- Entrywise Inversion} -\addcontentsline{toc}{subsection}{psb\_geinv} +\clearpage\subsection{psb\_geinv --- Entrywise Inversion} This function computes the entrywise inverse of a vector $x$ and puts it into $y$ 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/cdasb/Makefile b/test/cdasb/Makefile new file mode 100644 index 00000000..a4a677f5 --- /dev/null +++ b/test/cdasb/Makefile @@ -0,0 +1,38 @@ +INSTALLDIR=../.. +INCDIR=$(INSTALLDIR)/include +MODDIR=$(INSTALLDIR)/modules/ +include $(INCDIR)/Make.inc.psblas +# +# Libraries used +LIBDIR=$(INSTALLDIR)/lib +PSBLAS_LIB= -L$(LIBDIR) -lpsb_util -lpsb_krylov -lpsb_prec -lpsb_base +LDLIBS=$(PSBLDLIBS) +# +# Compilers and such +# +CCOPT= -g +FINCLUDES=$(FMFLAG)$(MODDIR) $(FMFLAG). + + +EXEDIR=./runs + +all: exed psb_d_pde3d + +exed: + (if test ! -d $(EXEDIR) ; then mkdir $(EXEDIR); fi) + +psb_d_pde3d: psb_d_pde3d.o + $(FLINK) psb_d_pde3d.o -o psb_d_pde3d $(PSBLAS_LIB) $(LDLIBS) + /bin/mv psb_d_pde3d $(EXEDIR) + + + +clean: + /bin/rm -f psb_d_pde3d.o *$(.mod) $(EXEDIR)/psb_d_pde3d +verycleanlib: + (cd ../..; make veryclean) +lib: + (cd ../../; make library) + + + diff --git a/test/cdasb/psb_d_pde3d.f90 b/test/cdasb/psb_d_pde3d.f90 new file mode 100644 index 00000000..c14f8446 --- /dev/null +++ b/test/cdasb/psb_d_pde3d.f90 @@ -0,0 +1,848 @@ +! +! Parallel Sparse BLAS version 3.5 +! (C) Copyright 2006-2018 +! Salvatore Filippone +! 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. +! +! +! File: psb_d_pde3d.f90 +! +! Program: psb_d_pde3d +! This sample program solves a linear system obtained by discretizing a +! PDE with Dirichlet BCs. +! +! +! The PDE is a general second order equation in 3d +! +! a1 dd(u) a2 dd(u) a3 dd(u) b1 d(u) b2 d(u) b3 d(u) +! - ------ - ------ - ------ + ----- + ------ + ------ + c u = f +! dxdx dydy dzdz dx dy dz +! +! with Dirichlet boundary conditions +! u = g +! +! on the unit cube 0<=x,y,z<=1. +! +! +! Note that if b1=b2=b3=c=0., the PDE is the Laplace equation. +! +! There are three choices available for data distribution: +! 1. A simple BLOCK distribution +! 2. A ditribution based on arbitrary assignment of indices to processes, +! typically from a graph partitioner +! 3. A 3D distribution in which the unit cube is partitioned +! into subcubes, each one assigned to a process. +! +! +module psb_d_pde3d_mod + + + use psb_base_mod, only : psb_dpk_, psb_ipk_, psb_lpk_, psb_desc_type,& + & psb_dspmat_type, psb_d_vect_type, dzero,& + & psb_d_base_sparse_mat, psb_d_base_vect_type, & + & psb_i_base_vect_type, psb_l_base_vect_type + + interface + function d_func_3d(x,y,z) result(val) + import :: psb_dpk_ + real(psb_dpk_), intent(in) :: x,y,z + real(psb_dpk_) :: val + end function d_func_3d + end interface + + interface psb_gen_pde3d + module procedure psb_d_gen_pde3d + end interface psb_gen_pde3d + +contains + + function d_null_func_3d(x,y,z) result(val) + + real(psb_dpk_), intent(in) :: x,y,z + real(psb_dpk_) :: val + + val = dzero + + end function d_null_func_3d + ! + ! functions parametrizing the differential equation + ! + + ! + ! Note: b1, b2 and b3 are the coefficients of the first + ! derivative of the unknown function. The default + ! we apply here is to have them zero, so that the resulting + ! matrix is symmetric/hermitian and suitable for + ! testing with CG and FCG. + ! When testing methods for non-hermitian matrices you can + ! change the B1/B2/B3 functions to e.g. done/sqrt((3*done)) + ! + function b1(x,y,z) + use psb_base_mod, only : psb_dpk_, done, dzero + implicit none + real(psb_dpk_) :: b1 + real(psb_dpk_), intent(in) :: x,y,z + b1=dzero + end function b1 + function b2(x,y,z) + use psb_base_mod, only : psb_dpk_, done, dzero + implicit none + real(psb_dpk_) :: b2 + real(psb_dpk_), intent(in) :: x,y,z + b2=dzero + end function b2 + function b3(x,y,z) + use psb_base_mod, only : psb_dpk_, done, dzero + implicit none + real(psb_dpk_) :: b3 + real(psb_dpk_), intent(in) :: x,y,z + b3=dzero + end function b3 + function c(x,y,z) + use psb_base_mod, only : psb_dpk_, done, dzero + implicit none + real(psb_dpk_) :: c + real(psb_dpk_), intent(in) :: x,y,z + c=dzero + end function c + function a1(x,y,z) + use psb_base_mod, only : psb_dpk_, done, dzero + implicit none + real(psb_dpk_) :: a1 + real(psb_dpk_), intent(in) :: x,y,z + a1=done/80 + end function a1 + function a2(x,y,z) + use psb_base_mod, only : psb_dpk_, done, dzero + implicit none + real(psb_dpk_) :: a2 + real(psb_dpk_), intent(in) :: x,y,z + a2=done/80 + end function a2 + function a3(x,y,z) + use psb_base_mod, only : psb_dpk_, done, dzero + implicit none + real(psb_dpk_) :: a3 + real(psb_dpk_), intent(in) :: x,y,z + a3=done/80 + end function a3 + function g(x,y,z) + use psb_base_mod, only : psb_dpk_, done, dzero + implicit none + real(psb_dpk_) :: g + real(psb_dpk_), intent(in) :: x,y,z + g = dzero + if (x == done) then + g = done + else if (x == dzero) then + g = exp(y**2-z**2) + end if + end function g + + + ! + ! subroutine to allocate and fill in the coefficient matrix and + ! the rhs. + ! + subroutine psb_d_gen_pde3d(ictxt,idim,a,bv,xv,desc_a,afmt,info,& + & f,amold,vmold,imold,partition,nrl,iv) + use psb_base_mod + use psb_util_mod + ! + ! Discretizes the partial differential equation + ! + ! a1 dd(u) a2 dd(u) a3 dd(u) b1 d(u) b2 d(u) b3 d(u) + ! - ------ - ------ - ------ + ----- + ------ + ------ + c u = f + ! dxdx dydy dzdz dx dy dz + ! + ! with Dirichlet boundary conditions + ! u = g + ! + ! on the unit cube 0<=x,y,z<=1. + ! + ! + ! Note that if b1=b2=b3=c=0., the PDE is the Laplace equation. + ! + implicit none + integer(psb_ipk_) :: idim + type(psb_dspmat_type) :: a + type(psb_d_vect_type) :: xv,bv + type(psb_desc_type) :: desc_a + integer(psb_ipk_) :: ictxt, info + character(len=*) :: afmt + procedure(d_func_3d), optional :: f + class(psb_d_base_sparse_mat), optional :: amold + class(psb_d_base_vect_type), optional :: vmold + class(psb_i_base_vect_type), optional :: imold + integer(psb_ipk_), optional :: partition, nrl,iv(:) + + ! Local variables. + + integer(psb_ipk_), parameter :: nb=20 + type(psb_d_csc_sparse_mat) :: acsc + type(psb_d_coo_sparse_mat) :: acoo + type(psb_d_csr_sparse_mat) :: acsr + real(psb_dpk_) :: zt(nb),x,y,z + integer(psb_ipk_) :: nnz,nr,nlr,i,j,ii,ib,k, partition_ + integer(psb_lpk_) :: m,n,glob_row,nt + integer(psb_ipk_) :: ix,iy,iz,ia,indx_owner + ! For 3D partition + ! 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_), allocatable :: bndx(:),bndy(:),bndz(:) + ! Process grid + integer(psb_ipk_) :: np, iam + integer(psb_ipk_) :: icoeff + integer(psb_lpk_), allocatable :: irow(:),icol(:),myidx(:) + real(psb_dpk_), allocatable :: val(:) + ! deltah dimension of each grid cell + ! deltat discretization time + real(psb_dpk_) :: deltah, sqdeltah, deltah2 + real(psb_dpk_), parameter :: rhs=dzero,one=done,zero=dzero + real(psb_dpk_) :: t0, t1, t2, t3, tasb, talc, ttot, tgen, tcdasb + integer(psb_ipk_) :: err_act + procedure(d_func_3d), pointer :: f_ + character(len=20) :: name, ch_err,tmpfmt + + info = psb_success_ + name = 'create_matrix' + call psb_erractionsave(err_act) + + call psb_info(ictxt, iam, np) + call psb_cd_set_large_threshold(1000) + call psb_cd_set_maxspace(10000) + + if (present(f)) then + f_ => f + else + f_ => d_null_func_3d + end if + + deltah = done/(idim+1) + sqdeltah = deltah*deltah + deltah2 = (2*done)* deltah + + if (present(partition)) then + if ((1<= partition).and.(partition <= 3)) then + partition_ = partition + else + write(*,*) 'Invalid partition choice ',partition,' defaulting to 3' + partition_ = 3 + end if + else + partition_ = 3 + end if + + ! initialize array descriptor and sparse matrix storage. provide an + ! estimate of the number of non zeroes + + m = (1_psb_lpk_*idim)*idim*idim + n = m + nnz = ((n*7)/(np)) + if(iam == psb_root_) write(psb_out_unit,'("Generating Matrix (size=",i0,")...")')n + t0 = psb_wtime() + select case(partition_) + case(1) + ! A BLOCK partition + if (present(nrl)) then + nr = nrl + else + ! + ! Using a simple BLOCK distribution. + ! + nt = (m+np-1)/np + nr = max(0,min(nt,m-(iam*nt))) + end if + + nt = nr + call psb_sum(ictxt,nt) + if (nt /= m) then + write(psb_err_unit,*) iam, 'Initialization error ',nr,nt,m + info = -1 + call psb_barrier(ictxt) + call psb_abort(ictxt) + return + end if + + ! + ! First example of use of CDALL: specify for each process a number of + ! contiguous rows + ! + call psb_cdall(ictxt,desc_a,info,nl=nr) + myidx = desc_a%get_global_indices() + nlr = size(myidx) + + case(2) + ! A partition defined by the user through IV + + if (present(iv)) then + if (size(iv) /= m) then + write(psb_err_unit,*) iam, 'Initialization error: wrong IV size',size(iv),m + info = -1 + call psb_barrier(ictxt) + call psb_abort(ictxt) + return + end if + else + write(psb_err_unit,*) iam, 'Initialization error: IV not present' + info = -1 + call psb_barrier(ictxt) + call psb_abort(ictxt) + return + end if + + ! + ! Second example of use of CDALL: specify for each row the + ! process that owns it + ! + call psb_cdall(ictxt,desc_a,info,vg=iv) + myidx = desc_a%get_global_indices() + nlr = size(myidx) + + case(3) + ! A 3-dimensional partition + + ! A nifty MPI function will split the process list + npdims = 0 + call mpi_dims_create(np,3,npdims,info) + npx = npdims(1) + npy = npdims(2) + npz = npdims(3) + + allocate(bndx(0:npx),bndy(0:npy),bndz(0:npz)) + ! We can reuse idx2ijk for process indices as well. + call idx2ijk(iamx,iamy,iamz,iam,npx,npy,npz,base=0) + ! Now let's split the 3D cube in hexahedra + call dist1Didx(bndx,idim,npx) + mynx = bndx(iamx+1)-bndx(iamx) + call dist1Didx(bndy,idim,npy) + myny = bndy(iamy+1)-bndy(iamy) + call dist1Didx(bndz,idim,npz) + mynz = bndz(iamz+1)-bndz(iamz) + + ! How many indices do I own? + nlr = mynx*myny*mynz + allocate(myidx(nlr)) + ! Now, let's generate the list of indices I own + nr = 0 + do i=bndx(iamx),bndx(iamx+1)-1 + do j=bndy(iamy),bndy(iamy+1)-1 + do k=bndz(iamz),bndz(iamz+1)-1 + nr = nr + 1 + call ijk2idx(myidx(nr),i,j,k,idim,idim,idim) + end do + end do + end do + if (nr /= nlr) then + write(psb_err_unit,*) iam,iamx,iamy,iamz, 'Initialization error: NR vs NLR ',& + & nr,nlr,mynx,myny,mynz + info = -1 + call psb_barrier(ictxt) + call psb_abort(ictxt) + end if + + ! + ! Third example of use of CDALL: specify for each process + ! 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 + call psb_barrier(ictxt) + call psb_abort(ictxt) + return + end select + + + if (info == psb_success_) call psb_spall(a,desc_a,info,nnz=nnz) + ! define rhs from boundary conditions; also build initial guess + if (info == psb_success_) call psb_geall(xv,desc_a,info) + if (info == psb_success_) call psb_geall(bv,desc_a,info) + + call psb_barrier(ictxt) + talc = psb_wtime()-t0 + + if (info /= psb_success_) then + info=psb_err_from_subroutine_ + ch_err='allocation rout.' + call psb_errpush(info,name,a_err=ch_err) + goto 9999 + end if + + ! we build an auxiliary matrix consisting of one row at a + ! time; just a small matrix. might be extended to generate + ! a bunch of rows per call. + ! + allocate(val(20*nb),irow(20*nb),& + &icol(20*nb),stat=info) + if (info /= psb_success_ ) then + info=psb_err_alloc_dealloc_ + call psb_errpush(info,name) + goto 9999 + endif + + + ! loop over rows belonging to current process in a block + ! distribution. + + call psb_barrier(ictxt) + t1 = psb_wtime() + do ii=1, nlr,nb + ib = min(nb,nlr-ii+1) + icoeff = 1 + do k=1,ib + i=ii+k-1 + ! local matrix pointer + glob_row=myidx(i) + ! compute gridpoint coordinates + call idx2ijk(ix,iy,iz,glob_row,idim,idim,idim) + ! x, y, z coordinates + x = (ix-1)*deltah + y = (iy-1)*deltah + z = (iz-1)*deltah + zt(k) = f_(x,y,z) + ! internal point: build discretization + ! + ! term depending on (x-1,y,z) + ! + val(icoeff) = -a1(x,y,z)/sqdeltah-b1(x,y,z)/deltah2 + if (ix == 1) then + zt(k) = g(dzero,y,z)*(-val(icoeff)) + zt(k) + else + call ijk2idx(icol(icoeff),ix-1,iy,iz,idim,idim,idim) + irow(icoeff) = glob_row + icoeff = icoeff+1 + endif + ! term depending on (x,y-1,z) + val(icoeff) = -a2(x,y,z)/sqdeltah-b2(x,y,z)/deltah2 + if (iy == 1) then + zt(k) = g(x,dzero,z)*(-val(icoeff)) + zt(k) + else + call ijk2idx(icol(icoeff),ix,iy-1,iz,idim,idim,idim) + irow(icoeff) = glob_row + icoeff = icoeff+1 + endif + ! term depending on (x,y,z-1) + val(icoeff)=-a3(x,y,z)/sqdeltah-b3(x,y,z)/deltah2 + if (iz == 1) then + zt(k) = g(x,y,dzero)*(-val(icoeff)) + zt(k) + else + call ijk2idx(icol(icoeff),ix,iy,iz-1,idim,idim,idim) + irow(icoeff) = glob_row + icoeff = icoeff+1 + endif + + ! term depending on (x,y,z) + val(icoeff)=(2*done)*(a1(x,y,z)+a2(x,y,z)+a3(x,y,z))/sqdeltah & + & + c(x,y,z) + call ijk2idx(icol(icoeff),ix,iy,iz,idim,idim,idim) + irow(icoeff) = glob_row + icoeff = icoeff+1 + ! term depending on (x,y,z+1) + val(icoeff)=-a3(x,y,z)/sqdeltah+b3(x,y,z)/deltah2 + if (iz == idim) then + zt(k) = g(x,y,done)*(-val(icoeff)) + zt(k) + else + call ijk2idx(icol(icoeff),ix,iy,iz+1,idim,idim,idim) + irow(icoeff) = glob_row + icoeff = icoeff+1 + endif + ! term depending on (x,y+1,z) + val(icoeff)=-a2(x,y,z)/sqdeltah+b2(x,y,z)/deltah2 + if (iy == idim) then + zt(k) = g(x,done,z)*(-val(icoeff)) + zt(k) + else + call ijk2idx(icol(icoeff),ix,iy+1,iz,idim,idim,idim) + irow(icoeff) = glob_row + icoeff = icoeff+1 + endif + ! term depending on (x+1,y,z) + val(icoeff)=-a1(x,y,z)/sqdeltah+b1(x,y,z)/deltah2 + if (ix==idim) then + zt(k) = g(done,y,z)*(-val(icoeff)) + zt(k) + else + call ijk2idx(icol(icoeff),ix+1,iy,iz,idim,idim,idim) + irow(icoeff) = glob_row + icoeff = icoeff+1 + endif + + end do + call psb_spins(icoeff-1,irow,icol,val,a,desc_a,info) + if(info /= psb_success_) exit + call psb_geins(ib,myidx(ii:ii+ib-1),zt(1:ib),bv,desc_a,info) + if(info /= psb_success_) exit + zt(:)=dzero + call psb_geins(ib,myidx(ii:ii+ib-1),zt(1:ib),xv,desc_a,info) + if(info /= psb_success_) exit + end do + + tgen = psb_wtime()-t1 + if(info /= psb_success_) then + info=psb_err_from_subroutine_ + ch_err='insert rout.' + call psb_errpush(info,name,a_err=ch_err) + goto 9999 + end if + + deallocate(val,irow,icol) + + call psb_barrier(ictxt) + t1 = psb_wtime() + call psb_cdasb(desc_a,info,mold=imold) + tcdasb = psb_wtime()-t1 + call psb_barrier(ictxt) + t1 = psb_wtime() + if (info == psb_success_) then + if (present(amold)) then + call psb_spasb(a,desc_a,info,dupl=psb_dupl_err_,mold=amold) + else + call psb_spasb(a,desc_a,info,dupl=psb_dupl_err_,afmt=afmt) + end if + end if + call psb_barrier(ictxt) + if(info /= psb_success_) then + info=psb_err_from_subroutine_ + ch_err='asb rout.' + call psb_errpush(info,name,a_err=ch_err) + goto 9999 + end if + if (info == psb_success_) call psb_geasb(xv,desc_a,info,mold=vmold) + if (info == psb_success_) call psb_geasb(bv,desc_a,info,mold=vmold) + if(info /= psb_success_) then + info=psb_err_from_subroutine_ + ch_err='asb rout.' + call psb_errpush(info,name,a_err=ch_err) + goto 9999 + end if + tasb = psb_wtime()-t1 + call psb_barrier(ictxt) + ttot = psb_wtime() - t0 + + call psb_amx(ictxt,talc) + call psb_amx(ictxt,tgen) + call psb_amx(ictxt,tasb) + call psb_amx(ictxt,ttot) + if(iam == psb_root_) then + tmpfmt = a%get_fmt() + write(psb_out_unit,'("The matrix has been generated and assembled in ",a3," format.")')& + & tmpfmt + write(psb_out_unit,'("-allocation time : ",es12.5)') talc + write(psb_out_unit,'("-coeff. gen. time : ",es12.5)') tgen + write(psb_out_unit,'("-desc asbly time : ",es12.5)') tcdasb + write(psb_out_unit,'("- mat asbly time : ",es12.5)') tasb + write(psb_out_unit,'("-total time : ",es12.5)') ttot + + end if + call psb_erractionrestore(err_act) + return + +9999 call psb_error_handler(ictxt,err_act) + + return + end subroutine psb_d_gen_pde3d + + +end module psb_d_pde3d_mod + +program psb_d_pde3d + use psb_base_mod + use psb_prec_mod + use psb_krylov_mod + use psb_util_mod + use psb_d_pde3d_mod + implicit none + + ! input parameters + character(len=20) :: kmethd, ptype + character(len=5) :: afmt + integer(psb_ipk_) :: idim + integer(psb_epk_) :: system_size + + ! miscellaneous + real(psb_dpk_), parameter :: one = done + real(psb_dpk_) :: t1, t2, tprec + + ! sparse matrix and preconditioner + type(psb_dspmat_type) :: a + type(psb_dprec_type) :: prec + ! descriptor + type(psb_desc_type) :: desc_a + ! dense vectors + type(psb_d_vect_type) :: xxv,bv + ! parallel environment + integer(psb_ipk_) :: ictxt, iam, np + + ! solver parameters + integer(psb_ipk_) :: iter, itmax,itrace, istopc, irst, ipart + integer(psb_epk_) :: amatsize, precsize, descsize, d2size + real(psb_dpk_) :: err, eps + + ! other variables + integer(psb_ipk_) :: info, i + character(len=20) :: name,ch_err + character(len=40) :: fname + + info=psb_success_ + + + call psb_init(ictxt) + call psb_info(ictxt,iam,np) + + if (iam < 0) then + ! This should not happen, but just in case + call psb_exit(ictxt) + stop + endif + if(psb_errstatus_fatal()) goto 9999 + name='pde3d90' + call psb_set_errverbosity(itwo) + ! + ! Hello world + ! + if (iam == psb_root_) then + write(*,*) 'Welcome to PSBLAS version: ',psb_version_string_ + write(*,*) 'This is the ',trim(name),' sample program' + end if + ! + ! get parameters + ! + call get_parms(ictxt,kmethd,ptype,afmt,idim,istopc,itmax,itrace,irst,ipart) + + ! + ! allocate and fill in the coefficient matrix, rhs and initial guess + ! + call psb_barrier(ictxt) + t1 = psb_wtime() + call psb_gen_pde3d(ictxt,idim,a,bv,xxv,desc_a,afmt,info,partition=ipart) + call psb_barrier(ictxt) + t2 = psb_wtime() - t1 + if(info /= psb_success_) then + info=psb_err_from_subroutine_ + ch_err='psb_gen_pde3d' + call psb_errpush(info,name,a_err=ch_err) + goto 9999 + end if + if (iam == psb_root_) write(psb_out_unit,'("Overall matrix creation time : ",es12.5)')t2 + if (iam == psb_root_) write(psb_out_unit,'(" ")') + + ! + ! cleanup storage and exit + ! + call psb_gefree(bv,desc_a,info) + call psb_gefree(xxv,desc_a,info) + call psb_spfree(a,desc_a,info) + call psb_cdfree(desc_a,info) + if(info /= psb_success_) then + info=psb_err_from_subroutine_ + ch_err='free routine' + call psb_errpush(info,name,a_err=ch_err) + goto 9999 + end if + + call psb_exit(ictxt) + stop + +9999 call psb_error(ictxt) + + stop + +contains + ! + ! get iteration parameters from standard input + ! + subroutine get_parms(ictxt,kmethd,ptype,afmt,idim,istopc,itmax,itrace,irst,ipart) + integer(psb_ipk_) :: ictxt + character(len=*) :: kmethd, ptype, afmt + integer(psb_ipk_) :: idim, istopc,itmax,itrace,irst,ipart + integer(psb_ipk_) :: np, iam + integer(psb_ipk_) :: ip, inp_unit + character(len=1024) :: filename + + call psb_info(ictxt, iam, np) + + if (iam == 0) then + if (command_argument_count()>0) then + call get_command_argument(1,filename) + inp_unit = 30 + open(inp_unit,file=filename,action='read',iostat=info) + if (info /= 0) then + write(psb_err_unit,*) 'Could not open file ',filename,' for input' + call psb_abort(ictxt) + stop + else + write(psb_err_unit,*) 'Opened file ',trim(filename),' for input' + end if + else + inp_unit=psb_inp_unit + end if + read(inp_unit,*) ip + if (ip >= 3) then + read(inp_unit,*) kmethd + read(inp_unit,*) ptype + read(inp_unit,*) afmt + + read(inp_unit,*) idim + if (ip >= 4) then + read(inp_unit,*) ipart + else + ipart = 3 + endif + if (ip >= 5) then + read(inp_unit,*) istopc + else + istopc=1 + endif + if (ip >= 6) then + read(inp_unit,*) itmax + else + itmax=500 + endif + if (ip >= 7) then + read(inp_unit,*) itrace + else + itrace=-1 + endif + if (ip >= 8) then + read(inp_unit,*) irst + else + irst=1 + endif + + write(psb_out_unit,'("Solving matrix : ell1")') + write(psb_out_unit,& + & '("Grid dimensions : ",i4," x ",i4," x ",i4)') & + & idim,idim,idim + write(psb_out_unit,'("Number of processors : ",i0)')np + select case(ipart) + case(1) + write(psb_out_unit,'("Data distribution : BLOCK")') + case(3) + write(psb_out_unit,'("Data distribution : 3D")') + case default + ipart = 3 + write(psb_out_unit,'("Unknown data distrbution, defaulting to 3D")') + end select + write(psb_out_unit,'("Preconditioner : ",a)') ptype + write(psb_out_unit,'("Iterative method : ",a)') kmethd + write(psb_out_unit,'(" ")') + else + ! wrong number of parameter, print an error message and exit + call pr_usage(izero) + call psb_abort(ictxt) + stop 1 + endif + if (inp_unit /= psb_inp_unit) then + close(inp_unit) + end if + + end if + ! broadcast parameters to all processors + call psb_bcast(ictxt,kmethd) + call psb_bcast(ictxt,afmt) + call psb_bcast(ictxt,ptype) + call psb_bcast(ictxt,idim) + call psb_bcast(ictxt,ipart) + call psb_bcast(ictxt,istopc) + call psb_bcast(ictxt,itmax) + call psb_bcast(ictxt,itrace) + call psb_bcast(ictxt,irst) + + return + + end subroutine get_parms + ! + ! print an error message + ! + subroutine pr_usage(iout) + integer(psb_ipk_) :: iout + write(iout,*)'incorrect parameter(s) found' + write(iout,*)' usage: pde3d90 methd prec dim & + &[istop itmax itrace]' + write(iout,*)' where:' + write(iout,*)' methd: cgstab cgs rgmres bicgstabl' + write(iout,*)' prec : bjac diag none' + write(iout,*)' dim number of points along each axis' + write(iout,*)' the size of the resulting linear ' + write(iout,*)' system is dim**3' + write(iout,*)' ipart data partition 1 3 ' + write(iout,*)' istop stopping criterion 1, 2 ' + write(iout,*)' itmax maximum number of iterations [500] ' + write(iout,*)' itrace <=0 (no tracing, default) or ' + write(iout,*)' >= 1 do tracing every itrace' + write(iout,*)' iterations ' + end subroutine pr_usage + +end program psb_d_pde3d + + diff --git a/test/cdasb/runs/tcd.inp b/test/cdasb/runs/tcd.inp new file mode 100644 index 00000000..ae5c50cf --- /dev/null +++ b/test/cdasb/runs/tcd.inp @@ -0,0 +1,12 @@ +8 Number of entries below this +BICGSTAB Iterative method BICGSTAB CGS BICG BICGSTABL RGMRES FCG CGR +BJAC Preconditioner NONE DIAG BJAC +CSR Storage format for matrix A: CSR COO +100 Domain size (acutal system is this**3 (pde3d) or **2 (pde2d) ) +3 Partition: 1 BLOCK 3 3D +2 Stopping criterion 1 2 +0100 MAXIT +-1 ITRACE +002 IRST restart for RGMRES and BiCGSTABL + + 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