diff --git a/Changelog b/Changelog
index 14021522..4790da3d 100644
--- a/Changelog
+++ b/Changelog
@@ -1,5 +1,7 @@
Changelog. A lot less detailed than usual, at least for past
history.
+2018/04/23: Change default for CDALL with VL. New GLOBAL argument for
+ reductions.
2018/04/15: Fixed pargen benchmark programs. Made MOLD mandatory.
2018/01/10: Updated docs.
2017/12/15: Fixed preconditioner build.
diff --git a/base/internals/Makefile b/base/internals/Makefile
index de55e4b1..471fc383 100644
--- a/base/internals/Makefile
+++ b/base/internals/Makefile
@@ -3,7 +3,7 @@ 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_exist_ovr_elem.o psi_list_search.o psi_srtlist.o
+ psi_desc_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
diff --git a/base/internals/psi_crea_index.f90 b/base/internals/psi_crea_index.f90
index 7025413f..6c88ae2d 100644
--- a/base/internals/psi_crea_index.f90
+++ b/base/internals/psi_crea_index.f90
@@ -44,16 +44,12 @@
! mapping parts are used.
! index_in(:) - integer The index list, build format
! index_out(:) - integer(psb_ipk_), allocatable The index list, assembled format
-! glob_idx - logical Whether the input indices are in local or global
-! numbering; the global numbering is used when
-! converting the overlap exchange lists.
! nxch - integer The number of data exchanges on the calling process
! nsnd - integer Total send buffer size on the calling process
! nrcv - integer Total receive buffer size on the calling process
!
!
-subroutine psi_crea_index(desc_a,index_in,index_out,glob_idx,nxch,nsnd,nrcv,info)
-
+subroutine psi_crea_index(desc_a,index_in,index_out,nxch,nsnd,nrcv,info)
use psb_realloc_mod
use psb_desc_mod
use psb_error_mod
@@ -65,7 +61,6 @@ subroutine psi_crea_index(desc_a,index_in,index_out,glob_idx,nxch,nsnd,nrcv,info
integer(psb_ipk_), intent(out) :: info,nxch,nsnd,nrcv
integer(psb_ipk_), intent(in) :: index_in(:)
integer(psb_ipk_), allocatable, intent(inout) :: index_out(:)
- logical :: glob_idx
! ....local scalars...
integer(psb_ipk_) :: ictxt, me, np, mode, err_act, dl_lda
@@ -135,7 +130,7 @@ subroutine psi_crea_index(desc_a,index_in,index_out,glob_idx,nxch,nsnd,nrcv,info
& write(debug_unit,*) me,' ',trim(name),': calling psi_desc_index'
! Do the actual format conversion.
call psi_desc_index(desc_a,index_in,dep_list(1:,me),&
- & length_dl(me),nsnd,nrcv, index_out,glob_idx,info)
+ & length_dl(me),nsnd,nrcv, index_out,info)
if(debug_level >= psb_debug_inner_) &
& write(debug_unit,*) me,' ',trim(name),': out of psi_desc_index',&
& size(index_out)
diff --git a/base/internals/psi_crea_ovr_elem.f90 b/base/internals/psi_crea_ovr_elem.f90
index 13bf8af1..9fd69247 100644
--- a/base/internals/psi_crea_ovr_elem.f90
+++ b/base/internals/psi_crea_ovr_elem.f90
@@ -61,10 +61,6 @@ subroutine psi_crea_ovr_elem(me,desc_overlap,ovr_elem,info)
integer(psb_ipk_) :: dim_ovr_elem
integer(psb_ipk_) :: pairtree(2)
- ! ...external function...
- integer(psb_ipk_) :: psi_exist_ovr_elem
- external :: psi_exist_ovr_elem
-
integer(psb_ipk_) :: nel, ip, ix, iel, insize, err_act, iproc
integer(psb_ipk_), allocatable :: telem(:,:)
diff --git a/base/internals/psi_desc_impl.f90 b/base/internals/psi_desc_impl.f90
index 8ab3bd0f..977af721 100644
--- a/base/internals/psi_desc_impl.f90
+++ b/base/internals/psi_desc_impl.f90
@@ -102,7 +102,7 @@ subroutine psi_cnv_dsc(halo_in,ovrlap_in,ext_in,cdesc, info, mold)
! first the halo index
if (debug_level>0) write(debug_unit,*) me,'Calling crea_index on halo',&
& size(halo_in)
- call psi_crea_index(cdesc,halo_in, idx_out,.false.,nxch,nsnd,nrcv,info)
+ call psi_crea_index(cdesc,halo_in, idx_out,nxch,nsnd,nrcv,info)
if (info /= psb_success_) then
call psb_errpush(psb_err_from_subroutine_,name,a_err='psi_crea_index')
goto 9999
@@ -115,7 +115,7 @@ subroutine psi_cnv_dsc(halo_in,ovrlap_in,ext_in,cdesc, info, mold)
! then ext index
if (debug_level>0) write(debug_unit,*) me,'Calling crea_index on ext'
- call psi_crea_index(cdesc,ext_in, idx_out,.false.,nxch,nsnd,nrcv,info)
+ call psi_crea_index(cdesc,ext_in, idx_out,nxch,nsnd,nrcv,info)
if (info /= psb_success_) then
call psb_errpush(psb_err_from_subroutine_,name,a_err='psi_crea_index')
goto 9999
@@ -126,7 +126,7 @@ subroutine psi_cnv_dsc(halo_in,ovrlap_in,ext_in,cdesc, info, mold)
if (debug_level>0) write(debug_unit,*) me,'Calling crea_index on ovrlap'
! then the overlap index
- call psi_crea_index(cdesc,ovrlap_in, idx_out,.true.,nxch,nsnd,nrcv,info)
+ call psi_crea_index(cdesc,ovrlap_in, idx_out,nxch,nsnd,nrcv,info)
if (info /= psb_success_) then
call psb_errpush(psb_err_from_subroutine_,name,a_err='psi_crea_index')
goto 9999
@@ -150,7 +150,7 @@ subroutine psi_cnv_dsc(halo_in,ovrlap_in,ext_in,cdesc, info, mold)
if (debug_level>0) write(debug_unit,*) me,'Calling bld_ovr_mst'
call psi_bld_ovr_mst(me,cdesc%ovrlap_elem,tmp_mst_idx,info)
if (info == psb_success_) call psi_crea_index(cdesc,&
- & tmp_mst_idx,idx_out,.false.,nxch,nsnd,nrcv,info)
+ & tmp_mst_idx,idx_out,nxch,nsnd,nrcv,info)
if (debug_level>0) write(debug_unit,*) me,'Done crea_indx'
if (info /= psb_success_) then
call psb_errpush(psb_err_from_subroutine_,name,a_err='psi_bld_ovr_mst')
diff --git a/base/internals/psi_desc_index.F90 b/base/internals/psi_desc_index.F90
index 386b89af..e5a890f4 100644
--- a/base/internals/psi_desc_index.F90
+++ b/base/internals/psi_desc_index.F90
@@ -38,16 +38,13 @@
! See below for a description of the formats.
!
! Arguments:
-! desc_a - type(psb_desc_type) The descriptor; in this context only the index
-! mapping parts are used.
-! index_in(:) - integer The index list, build format
+! desc_a - type(psb_desc_type) The descriptor; in this context only the index
+! mapping parts are used.
+! index_in(:) - integer The index list, build format
! index_out(:) - integer(psb_ipk_), allocatable The index list, assembled format
-! glob_idx - logical Whether the input indices are in local or global
-! numbering; the global numbering is used when
-! converting the overlap exchange lists.
-! nxch - integer The number of data exchanges on the calling process
-! nsnd - integer Total send buffer size on the calling process
-! nrcv - integer Total receive buffer size on the calling process
+! nxch - integer The number of data exchanges on the calling process
+! nsnd - integer Total send buffer size on the calling process
+! nrcv - integer Total receive buffer size on the calling process
!
! The format of the index lists. Copied from base/modules/psb_desc_type
!
@@ -99,7 +96,7 @@
!
!
subroutine psi_desc_index(desc,index_in,dep_list,&
- & length_dl,nsnd,nrcv,desc_index,isglob_in,info)
+ & length_dl,nsnd,nrcv,desc_index,info)
use psb_desc_mod
use psb_realloc_mod
use psb_error_mod
@@ -119,7 +116,6 @@ subroutine psi_desc_index(desc,index_in,dep_list,&
integer(psb_ipk_) :: index_in(:),dep_list(:)
integer(psb_ipk_),allocatable :: desc_index(:)
integer(psb_ipk_) :: length_dl,nsnd,nrcv,info
- logical :: isglob_in
! ....local scalars...
integer(psb_ipk_) :: j,me,np,i,proc
! ...parameters...
@@ -255,22 +251,15 @@ subroutine psi_desc_index(desc,index_in,dep_list,&
!
! note that here bsdinx is zero-based, hence the following loop
!
- if (isglob_in) then
- do j=1, nerv
- sndbuf(bsdindx(proc+1)+j) = (index_in(i+j))
- end do
- else
-
- call desc%indxmap%l2g(index_in(i+1:i+nerv),&
- & sndbuf(bsdindx(proc+1)+1:bsdindx(proc+1)+nerv),&
- & info)
-
- if (info /= psb_success_) then
- call psb_errpush(psb_err_from_subroutine_,name,a_err='l2g')
- goto 9999
- end if
-
- endif
+ call desc%indxmap%l2g(index_in(i+1:i+nerv),&
+ & sndbuf(bsdindx(proc+1)+1:bsdindx(proc+1)+nerv),&
+ & info)
+
+ if (info /= psb_success_) then
+ call psb_errpush(psb_err_from_subroutine_,name,a_err='l2g')
+ goto 9999
+ end if
+
bsdindx(proc+1) = bsdindx(proc+1) + nerv
i = i + nerv + 1
end do
diff --git a/base/internals/psi_exist_ovr_elem.f90 b/base/internals/psi_exist_ovr_elem.f90
deleted file mode 100644
index cd7d4712..00000000
--- a/base/internals/psi_exist_ovr_elem.f90
+++ /dev/null
@@ -1,73 +0,0 @@
-!
-! Parallel Sparse BLAS version 3.5
-! (C) Copyright 2006, 2010, 2015, 2017
-! Salvatore Filippone
-! Alfredo Buttari CNRS-IRIT, Toulouse
-!
-! 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.
-!
-!
-integer function psi_exist_ovr_elem(ovr_elem, dim_list,elem_searched)
- use psb_const_mod
- ! PURPOSE:
- ! == = ====
- !
- ! If ELEM_SEARCHED exist in the list OVR_ELEM returns its position in
- ! the list, else returns -1
- !
- !
- ! INPUT
- ! == = ===
- ! OVRLAP_ELEMENT_D.: Contains for all overlap points belonging to
- ! the current process:
- ! 1. overlap point index
- ! 2. Number of domains sharing that overlap point
- ! the end is marked by a -1...............................
- !
- ! DIM_LIST..........: Dimension of list OVRLAP_ELEMENT_D
- !
- ! ELEM_SEARCHED.....:point's Local index identifier to be searched.
-
- implicit none
-
- ! ....Scalars parameters....
- integer(psb_ipk_) :: dim_list,elem_searched
- ! ...array parameters....
- integer(psb_ipk_) :: ovr_elem(dim_list,*)
-
- ! ...local scalars....
- integer(psb_ipk_) :: i
-
- i=1
- do while ((i.le.dim_list).and.(ovr_elem(i,1).ne.elem_searched))
- i=i+1
- enddo
- if ((i.le.dim_list).and.(ovr_elem(i,1).eq.elem_searched)) then
- psi_exist_ovr_elem=i
- else
- psi_exist_ovr_elem=-1
- endif
-end function psi_exist_ovr_elem
-
diff --git a/base/modules/desc/psb_desc_mod.F90 b/base/modules/desc/psb_desc_mod.F90
index 5d5b22a7..41893ff2 100644
--- a/base/modules/desc/psb_desc_mod.F90
+++ b/base/modules/desc/psb_desc_mod.F90
@@ -1,4 +1,4 @@
-!
+
! Parallel Sparse BLAS version 3.5
! (C) Copyright 2006-2018
! Salvatore Filippone
@@ -142,9 +142,9 @@ module psb_desc_mod
! psb_ovrl subroutine.
!
! 8. When the descriptor is in the BLD state the INDEX vectors contains only
- ! the indices to be received, organized as a sequence
- ! of entries of the form (proc,N,(lx1,lx2,...,lxn)) with owning process,
- ! number of indices (most often but not necessarily N=1), list of local indices.
+ ! the indices to be received, organized as a sequence of entries of
+ ! the form (proc,N,(lx1,lx2,...,lxn)) with owning process, number of indices
+ ! (most often but not necessarily N=1), list of local indices.
! This is because we only know the list of halo indices to be received
! as we go about building the sparse matrix pattern, and we want the build
! phase to be loosely synchronized. Thus we record the indices we have to ask
@@ -334,11 +334,23 @@ contains
val = cd_large_threshold
end function psb_cd_get_large_threshold
- logical function psb_cd_choose_large_state(ictxt,m)
+ function psb_cd_is_large_size(m) result(val)
use psb_penv_mod
implicit none
- integer(psb_ipk_), intent(in) :: ictxt,m
+ integer(psb_ipk_), intent(in) :: m
+ logical :: val
+ !locals
+ val = (m > psb_cd_get_large_threshold())
+ end function psb_cd_is_large_size
+
+ function psb_cd_choose_large_state(ictxt,m) result(val)
+ use psb_penv_mod
+
+ implicit none
+ integer(psb_ipk_), intent(in) :: ictxt
+ integer(psb_ipk_), intent(in) :: m
+ logical :: val
!locals
integer(psb_ipk_) :: np,me
@@ -348,9 +360,7 @@ contains
! it makes no sense to use them if you don't have at least
! 3 processes, no matter what the size of the process.
!
- psb_cd_choose_large_state = &
- & (m > psb_cd_get_large_threshold()) .and. &
- & (np > 2)
+ val = psb_cd_is_large_size(m) .and. (np > 2)
end function psb_cd_choose_large_state
subroutine psb_nullify_desc(desc)
@@ -1072,7 +1082,7 @@ contains
end subroutine psb_cd_clone
- Subroutine psb_cd_get_recv_idx(tmp,desc,data,info,toglob)
+ Subroutine psb_cd_get_recv_idx(tmp,desc,data,info)
use psb_error_mod
use psb_penv_mod
@@ -1082,7 +1092,6 @@ contains
integer(psb_ipk_), intent(in) :: data
Type(psb_desc_type), Intent(in), target :: desc
integer(psb_ipk_), intent(out) :: info
- logical, intent(in) :: toglob
! .. Local Scalars ..
integer(psb_ipk_) :: incnt, outcnt, j, np, me, ictxt, l_tmp,&
@@ -1141,23 +1150,10 @@ contains
call psb_errpush(info,name,a_err='psb_ensure_size')
goto 9999
end if
- if (toglob) then
- call desc%indxmap%l2g(idx,gidx,info)
- If (gidx < 0) then
- info=-3
- call psb_errpush(info,name)
- goto 9999
- endif
- tmp(outcnt) = proc
- tmp(outcnt+1) = 1
- tmp(outcnt+2) = gidx
- tmp(outcnt+3) = -1
- else
- tmp(outcnt) = proc
- tmp(outcnt+1) = 1
- tmp(outcnt+2) = idx
- tmp(outcnt+3) = -1
- end if
+ tmp(outcnt) = proc
+ tmp(outcnt+1) = 1
+ tmp(outcnt+2) = idx
+ tmp(outcnt+3) = -1
outcnt = outcnt+3
end Do
incnt = incnt+n_elem_recv+n_elem_send+3
diff --git a/base/modules/psblas/psb_c_psblas_mod.F90 b/base/modules/psblas/psb_c_psblas_mod.F90
index 22a1d82e..53271ea9 100644
--- a/base/modules/psblas/psb_c_psblas_mod.F90
+++ b/base/modules/psblas/psb_c_psblas_mod.F90
@@ -35,50 +35,55 @@ module psb_c_psblas_mod
use psb_c_mat_mod, only : psb_cspmat_type
interface psb_gedot
- function psb_cdot_vect(x, y, desc_a,info) result(res)
+ function psb_cdot_vect(x, y, desc_a,info,global) result(res)
import :: psb_desc_type, psb_spk_, psb_ipk_, &
& psb_c_vect_type, psb_cspmat_type
complex(psb_spk_) :: res
type(psb_c_vect_type), intent(inout) :: x, y
type(psb_desc_type), intent(in) :: desc_a
- integer(psb_ipk_), intent(out) :: info
+ integer(psb_ipk_), intent(out) :: info
+ logical, intent(in), optional :: global
end function psb_cdot_vect
- function psb_cdotv(x, y, desc_a,info)
+ function psb_cdotv(x, y, desc_a,info,global)
import :: psb_desc_type, psb_spk_, psb_ipk_, &
& psb_c_vect_type, psb_cspmat_type
complex(psb_spk_) :: psb_cdotv
complex(psb_spk_), intent(in) :: x(:), y(:)
type(psb_desc_type), intent(in) :: desc_a
- integer(psb_ipk_), intent(out) :: info
+ integer(psb_ipk_), intent(out) :: info
+ logical, intent(in), optional :: global
end function psb_cdotv
- function psb_cdot(x, y, desc_a, info, jx, jy)
+ function psb_cdot(x, y, desc_a, info, jx, jy,global)
import :: psb_desc_type, psb_spk_, psb_ipk_, &
& psb_c_vect_type, psb_cspmat_type
complex(psb_spk_) :: psb_cdot
complex(psb_spk_), intent(in) :: x(:,:), y(:,:)
type(psb_desc_type), intent(in) :: desc_a
integer(psb_ipk_), optional, intent(in) :: jx, jy
- integer(psb_ipk_), intent(out) :: info
+ integer(psb_ipk_), intent(out) :: info
+ logical, intent(in), optional :: global
end function psb_cdot
end interface
interface psb_gedots
- subroutine psb_cdotvs(res,x, y, desc_a, info)
+ subroutine psb_cdotvs(res,x, y, desc_a, info,global)
import :: psb_desc_type, psb_spk_, psb_ipk_, &
& psb_c_vect_type, psb_cspmat_type
complex(psb_spk_), intent(out) :: res
complex(psb_spk_), intent(in) :: x(:), y(:)
type(psb_desc_type), intent(in) :: desc_a
- integer(psb_ipk_), intent(out) :: info
+ integer(psb_ipk_), intent(out) :: info
+ logical, intent(in), optional :: global
end subroutine psb_cdotvs
- subroutine psb_cmdots(res,x, y, desc_a,info)
+ subroutine psb_cmdots(res,x, y, desc_a,info,global)
import :: psb_desc_type, psb_spk_, psb_ipk_, &
& psb_c_vect_type, psb_cspmat_type
complex(psb_spk_), intent(out) :: res(:)
complex(psb_spk_), intent(in) :: x(:,:), y(:,:)
type(psb_desc_type), intent(in) :: desc_a
- integer(psb_ipk_), intent(out) :: info
+ integer(psb_ipk_), intent(out) :: info
+ logical, intent(in), optional :: global
end subroutine psb_cmdots
end interface
@@ -91,7 +96,7 @@ module psb_c_psblas_mod
type(psb_c_vect_type), intent (inout) :: y
complex(psb_spk_), intent (in) :: alpha, beta
type(psb_desc_type), intent (in) :: desc_a
- integer(psb_ipk_), intent(out) :: info
+ integer(psb_ipk_), intent(out) :: info
end subroutine psb_caxpby_vect
subroutine psb_caxpbyv(alpha, x, beta, y,&
& desc_a, info)
@@ -112,35 +117,38 @@ module psb_c_psblas_mod
complex(psb_spk_), intent (in) :: alpha, beta
type(psb_desc_type), intent (in) :: desc_a
integer(psb_ipk_), optional, intent(in) :: n, jx, jy
- integer(psb_ipk_), intent(out) :: info
+ integer(psb_ipk_), intent(out) :: info
end subroutine psb_caxpby
end interface
interface psb_geamax
- function psb_camax(x, desc_a, info, jx)
+ function psb_camax(x, desc_a, info, jx,global)
import :: psb_desc_type, psb_spk_, psb_ipk_, &
& psb_c_vect_type, psb_cspmat_type
real(psb_spk_) psb_camax
complex(psb_spk_), intent (in) :: x(:,:)
type(psb_desc_type), intent (in) :: desc_a
integer(psb_ipk_), optional, intent (in) :: jx
- integer(psb_ipk_), intent(out) :: info
+ integer(psb_ipk_), intent(out) :: info
+ logical, intent(in), optional :: global
end function psb_camax
- function psb_camaxv(x, desc_a,info)
+ function psb_camaxv(x, desc_a,info,global)
import :: psb_desc_type, psb_spk_, psb_ipk_, &
& psb_c_vect_type, psb_cspmat_type
real(psb_spk_) psb_camaxv
complex(psb_spk_), intent (in) :: x(:)
type(psb_desc_type), intent (in) :: desc_a
- integer(psb_ipk_), intent(out) :: info
+ integer(psb_ipk_), intent(out) :: info
+ logical, intent(in), optional :: global
end function psb_camaxv
- function psb_camax_vect(x, desc_a, info) result(res)
+ function psb_camax_vect(x, desc_a, info,global) result(res)
import :: psb_desc_type, psb_spk_, psb_ipk_, &
& psb_c_vect_type, psb_cspmat_type
real(psb_spk_) :: res
type(psb_c_vect_type), intent (inout) :: x
- type(psb_desc_type), intent (in) :: desc_a
- integer(psb_ipk_), intent(out) :: info
+ type(psb_desc_type), intent (in) :: desc_a
+ integer(psb_ipk_), intent(out) :: info
+ logical, intent(in), optional :: global
end function psb_camax_vect
end interface
@@ -154,69 +162,76 @@ module psb_c_psblas_mod
#endif
interface psb_geamaxs
- subroutine psb_camaxvs(res,x,desc_a,info)
+ subroutine psb_camaxvs(res,x,desc_a,info,global)
import :: psb_desc_type, psb_spk_, psb_ipk_, &
& psb_c_vect_type, psb_cspmat_type
real(psb_spk_), intent (out) :: res
complex(psb_spk_), intent (in) :: x(:)
type(psb_desc_type), intent (in) :: desc_a
- integer(psb_ipk_), intent(out) :: info
+ integer(psb_ipk_), intent(out) :: info
+ logical, intent(in), optional :: global
end subroutine psb_camaxvs
- subroutine psb_cmamaxs(res,x,desc_a,info,jx)
+ subroutine psb_cmamaxs(res,x,desc_a,info,jx,global)
import :: psb_desc_type, psb_spk_, psb_ipk_, &
& psb_c_vect_type, psb_cspmat_type
real(psb_spk_), intent (out) :: res(:)
complex(psb_spk_), intent (in) :: x(:,:)
type(psb_desc_type), intent (in) :: desc_a
- integer(psb_ipk_), intent(out) :: info
+ integer(psb_ipk_), intent(out) :: info
integer(psb_ipk_), optional, intent(in) :: jx
+ logical, intent(in), optional :: global
end subroutine psb_cmamaxs
end interface
interface psb_geasum
- function psb_casum_vect(x, desc_a, info) result(res)
+ function psb_casum_vect(x, desc_a, info,global) result(res)
import :: psb_desc_type, psb_spk_, psb_ipk_, &
& psb_c_vect_type, psb_cspmat_type
real(psb_spk_) :: res
type(psb_c_vect_type), intent (inout) :: x
- type(psb_desc_type), intent (in) :: desc_a
- integer(psb_ipk_), intent(out) :: info
+ type(psb_desc_type), intent (in) :: desc_a
+ integer(psb_ipk_), intent(out) :: info
+ logical, intent(in), optional :: global
end function psb_casum_vect
- function psb_casum(x, desc_a, info, jx)
+ function psb_casum(x, desc_a, info, jx,global)
import :: psb_desc_type, psb_spk_, psb_ipk_, &
& psb_c_vect_type, psb_cspmat_type
real(psb_spk_) psb_casum
complex(psb_spk_), intent (in) :: x(:,:)
type(psb_desc_type), intent (in) :: desc_a
integer(psb_ipk_), optional, intent (in) :: jx
- integer(psb_ipk_), intent(out) :: info
+ integer(psb_ipk_), intent(out) :: info
+ logical, intent(in), optional :: global
end function psb_casum
- function psb_casumv(x, desc_a, info)
+ function psb_casumv(x, desc_a, info,global)
import :: psb_desc_type, psb_spk_, psb_ipk_, &
& psb_c_vect_type, psb_cspmat_type
real(psb_spk_) psb_casumv
complex(psb_spk_), intent (in) :: x(:)
type(psb_desc_type), intent (in) :: desc_a
- integer(psb_ipk_), intent(out) :: info
+ integer(psb_ipk_), intent(out) :: info
+ logical, intent(in), optional :: global
end function psb_casumv
end interface
interface psb_geasums
- subroutine psb_casumvs(res,x,desc_a,info)
+ subroutine psb_casumvs(res,x,desc_a,info,global)
import :: psb_desc_type, psb_spk_, psb_ipk_, &
& psb_c_vect_type, psb_cspmat_type
real(psb_spk_), intent (out) :: res
complex(psb_spk_), intent (in) :: x(:)
type(psb_desc_type), intent (in) :: desc_a
- integer(psb_ipk_), intent(out) :: info
+ integer(psb_ipk_), intent(out) :: info
+ logical, intent(in), optional :: global
end subroutine psb_casumvs
- subroutine psb_cmasum(res,x,desc_a,info)
+ subroutine psb_cmasum(res,x,desc_a,info,global)
import :: psb_desc_type, psb_spk_, psb_ipk_, &
& psb_c_vect_type, psb_cspmat_type
real(psb_spk_), intent (out) :: res(:)
complex(psb_spk_), intent (in) :: x(:,:)
type(psb_desc_type), intent (in) :: desc_a
- integer(psb_ipk_), intent(out) :: info
+ integer(psb_ipk_), intent(out) :: info
+ logical, intent(in), optional :: global
end subroutine psb_cmasum
end interface
@@ -230,30 +245,33 @@ module psb_c_psblas_mod
#endif
interface psb_genrm2
- function psb_cnrm2(x, desc_a, info, jx)
+ function psb_cnrm2(x, desc_a, info, jx,global)
import :: psb_desc_type, psb_spk_, psb_ipk_, &
& psb_c_vect_type, psb_cspmat_type
real(psb_spk_) psb_cnrm2
complex(psb_spk_), intent (in) :: x(:,:)
type(psb_desc_type), intent (in) :: desc_a
integer(psb_ipk_), optional, intent (in) :: jx
- integer(psb_ipk_), intent(out) :: info
+ integer(psb_ipk_), intent(out) :: info
+ logical, intent(in), optional :: global
end function psb_cnrm2
- function psb_cnrm2v(x, desc_a, info)
+ function psb_cnrm2v(x, desc_a, info,global)
import :: psb_desc_type, psb_spk_, psb_ipk_, &
& psb_c_vect_type, psb_cspmat_type
real(psb_spk_) psb_cnrm2v
complex(psb_spk_), intent (in) :: x(:)
type(psb_desc_type), intent (in) :: desc_a
integer(psb_ipk_), intent(out) :: info
+ logical, intent(in), optional :: global
end function psb_cnrm2v
- function psb_cnrm2_vect(x, desc_a, info) result(res)
+ function psb_cnrm2_vect(x, desc_a, info,global) result(res)
import :: psb_desc_type, psb_spk_, psb_ipk_, &
& psb_c_vect_type, psb_cspmat_type
real(psb_spk_) :: res
type(psb_c_vect_type), intent (inout) :: x
type(psb_desc_type), intent (in) :: desc_a
- integer(psb_ipk_), intent(out) :: info
+ integer(psb_ipk_), intent(out) :: info
+ logical, intent(in), optional :: global
end function psb_cnrm2_vect
end interface
@@ -264,25 +282,27 @@ module psb_c_psblas_mod
#endif
interface psb_genrm2s
- subroutine psb_cnrm2vs(res,x,desc_a,info)
+ subroutine psb_cnrm2vs(res,x,desc_a,info,global)
import :: psb_desc_type, psb_spk_, psb_ipk_, &
& psb_c_vect_type, psb_cspmat_type
real(psb_spk_), intent (out) :: res
complex(psb_spk_), intent (in) :: x(:)
type(psb_desc_type), intent (in) :: desc_a
- integer(psb_ipk_), intent(out) :: info
+ integer(psb_ipk_), intent(out) :: info
+ logical, intent(in), optional :: global
end subroutine psb_cnrm2vs
end interface
interface psb_spnrmi
- function psb_cnrmi(a, desc_a,info)
+ function psb_cnrmi(a, desc_a,info,global)
import :: psb_desc_type, psb_spk_, psb_ipk_, &
& psb_c_vect_type, psb_cspmat_type
real(psb_spk_) :: psb_cnrmi
type(psb_cspmat_type), intent (in) :: a
type(psb_desc_type), intent (in) :: desc_a
- integer(psb_ipk_), intent(out) :: info
+ integer(psb_ipk_), intent(out) :: info
+ logical, intent(in), optional :: global
end function psb_cnrmi
end interface
@@ -293,13 +313,14 @@ module psb_c_psblas_mod
#endif
interface psb_spnrm1
- function psb_cspnrm1(a, desc_a,info)
+ function psb_cspnrm1(a, desc_a,info,global)
import :: psb_desc_type, psb_spk_, psb_ipk_, &
& psb_c_vect_type, psb_cspmat_type
- real(psb_spk_) :: psb_cspnrm1
+ real(psb_spk_) :: psb_cspnrm1
type(psb_cspmat_type), intent (in) :: a
- type(psb_desc_type), intent (in) :: desc_a
- integer(psb_ipk_), intent(out) :: info
+ type(psb_desc_type), intent (in) :: desc_a
+ integer(psb_ipk_), intent(out) :: info
+ logical, intent(in), optional :: global
end function psb_cspnrm1
end interface
diff --git a/base/modules/psblas/psb_d_psblas_mod.F90 b/base/modules/psblas/psb_d_psblas_mod.F90
index ece28141..56386f92 100644
--- a/base/modules/psblas/psb_d_psblas_mod.F90
+++ b/base/modules/psblas/psb_d_psblas_mod.F90
@@ -35,50 +35,55 @@ module psb_d_psblas_mod
use psb_d_mat_mod, only : psb_dspmat_type
interface psb_gedot
- function psb_ddot_vect(x, y, desc_a,info) result(res)
+ function psb_ddot_vect(x, y, desc_a,info,global) result(res)
import :: psb_desc_type, psb_dpk_, psb_ipk_, &
& psb_d_vect_type, psb_dspmat_type
real(psb_dpk_) :: res
type(psb_d_vect_type), intent(inout) :: x, y
type(psb_desc_type), intent(in) :: desc_a
- integer(psb_ipk_), intent(out) :: info
+ integer(psb_ipk_), intent(out) :: info
+ logical, intent(in), optional :: global
end function psb_ddot_vect
- function psb_ddotv(x, y, desc_a,info)
+ function psb_ddotv(x, y, desc_a,info,global)
import :: psb_desc_type, psb_dpk_, psb_ipk_, &
& psb_d_vect_type, psb_dspmat_type
real(psb_dpk_) :: psb_ddotv
real(psb_dpk_), intent(in) :: x(:), y(:)
type(psb_desc_type), intent(in) :: desc_a
- integer(psb_ipk_), intent(out) :: info
+ integer(psb_ipk_), intent(out) :: info
+ logical, intent(in), optional :: global
end function psb_ddotv
- function psb_ddot(x, y, desc_a, info, jx, jy)
+ function psb_ddot(x, y, desc_a, info, jx, jy,global)
import :: psb_desc_type, psb_dpk_, psb_ipk_, &
& psb_d_vect_type, psb_dspmat_type
real(psb_dpk_) :: psb_ddot
real(psb_dpk_), intent(in) :: x(:,:), y(:,:)
type(psb_desc_type), intent(in) :: desc_a
integer(psb_ipk_), optional, intent(in) :: jx, jy
- integer(psb_ipk_), intent(out) :: info
+ integer(psb_ipk_), intent(out) :: info
+ logical, intent(in), optional :: global
end function psb_ddot
end interface
interface psb_gedots
- subroutine psb_ddotvs(res,x, y, desc_a, info)
+ subroutine psb_ddotvs(res,x, y, desc_a, info,global)
import :: psb_desc_type, psb_dpk_, psb_ipk_, &
& psb_d_vect_type, psb_dspmat_type
real(psb_dpk_), intent(out) :: res
real(psb_dpk_), intent(in) :: x(:), y(:)
type(psb_desc_type), intent(in) :: desc_a
- integer(psb_ipk_), intent(out) :: info
+ integer(psb_ipk_), intent(out) :: info
+ logical, intent(in), optional :: global
end subroutine psb_ddotvs
- subroutine psb_dmdots(res,x, y, desc_a,info)
+ subroutine psb_dmdots(res,x, y, desc_a,info,global)
import :: psb_desc_type, psb_dpk_, psb_ipk_, &
& psb_d_vect_type, psb_dspmat_type
real(psb_dpk_), intent(out) :: res(:)
real(psb_dpk_), intent(in) :: x(:,:), y(:,:)
type(psb_desc_type), intent(in) :: desc_a
- integer(psb_ipk_), intent(out) :: info
+ integer(psb_ipk_), intent(out) :: info
+ logical, intent(in), optional :: global
end subroutine psb_dmdots
end interface
@@ -91,7 +96,7 @@ module psb_d_psblas_mod
type(psb_d_vect_type), intent (inout) :: y
real(psb_dpk_), intent (in) :: alpha, beta
type(psb_desc_type), intent (in) :: desc_a
- integer(psb_ipk_), intent(out) :: info
+ integer(psb_ipk_), intent(out) :: info
end subroutine psb_daxpby_vect
subroutine psb_daxpbyv(alpha, x, beta, y,&
& desc_a, info)
@@ -112,35 +117,38 @@ module psb_d_psblas_mod
real(psb_dpk_), intent (in) :: alpha, beta
type(psb_desc_type), intent (in) :: desc_a
integer(psb_ipk_), optional, intent(in) :: n, jx, jy
- integer(psb_ipk_), intent(out) :: info
+ integer(psb_ipk_), intent(out) :: info
end subroutine psb_daxpby
end interface
interface psb_geamax
- function psb_damax(x, desc_a, info, jx)
+ function psb_damax(x, desc_a, info, jx,global)
import :: psb_desc_type, psb_dpk_, psb_ipk_, &
& psb_d_vect_type, psb_dspmat_type
real(psb_dpk_) psb_damax
real(psb_dpk_), intent (in) :: x(:,:)
type(psb_desc_type), intent (in) :: desc_a
integer(psb_ipk_), optional, intent (in) :: jx
- integer(psb_ipk_), intent(out) :: info
+ integer(psb_ipk_), intent(out) :: info
+ logical, intent(in), optional :: global
end function psb_damax
- function psb_damaxv(x, desc_a,info)
+ function psb_damaxv(x, desc_a,info,global)
import :: psb_desc_type, psb_dpk_, psb_ipk_, &
& psb_d_vect_type, psb_dspmat_type
real(psb_dpk_) psb_damaxv
real(psb_dpk_), intent (in) :: x(:)
type(psb_desc_type), intent (in) :: desc_a
- integer(psb_ipk_), intent(out) :: info
+ integer(psb_ipk_), intent(out) :: info
+ logical, intent(in), optional :: global
end function psb_damaxv
- function psb_damax_vect(x, desc_a, info) result(res)
+ function psb_damax_vect(x, desc_a, info,global) result(res)
import :: psb_desc_type, psb_dpk_, psb_ipk_, &
& psb_d_vect_type, psb_dspmat_type
real(psb_dpk_) :: res
type(psb_d_vect_type), intent (inout) :: x
- type(psb_desc_type), intent (in) :: desc_a
- integer(psb_ipk_), intent(out) :: info
+ type(psb_desc_type), intent (in) :: desc_a
+ integer(psb_ipk_), intent(out) :: info
+ logical, intent(in), optional :: global
end function psb_damax_vect
end interface
@@ -154,69 +162,76 @@ module psb_d_psblas_mod
#endif
interface psb_geamaxs
- subroutine psb_damaxvs(res,x,desc_a,info)
+ subroutine psb_damaxvs(res,x,desc_a,info,global)
import :: psb_desc_type, psb_dpk_, psb_ipk_, &
& psb_d_vect_type, psb_dspmat_type
real(psb_dpk_), intent (out) :: res
real(psb_dpk_), intent (in) :: x(:)
type(psb_desc_type), intent (in) :: desc_a
- integer(psb_ipk_), intent(out) :: info
+ integer(psb_ipk_), intent(out) :: info
+ logical, intent(in), optional :: global
end subroutine psb_damaxvs
- subroutine psb_dmamaxs(res,x,desc_a,info,jx)
+ subroutine psb_dmamaxs(res,x,desc_a,info,jx,global)
import :: psb_desc_type, psb_dpk_, psb_ipk_, &
& psb_d_vect_type, psb_dspmat_type
real(psb_dpk_), intent (out) :: res(:)
real(psb_dpk_), intent (in) :: x(:,:)
type(psb_desc_type), intent (in) :: desc_a
- integer(psb_ipk_), intent(out) :: info
+ integer(psb_ipk_), intent(out) :: info
integer(psb_ipk_), optional, intent(in) :: jx
+ logical, intent(in), optional :: global
end subroutine psb_dmamaxs
end interface
interface psb_geasum
- function psb_dasum_vect(x, desc_a, info) result(res)
+ function psb_dasum_vect(x, desc_a, info,global) result(res)
import :: psb_desc_type, psb_dpk_, psb_ipk_, &
& psb_d_vect_type, psb_dspmat_type
real(psb_dpk_) :: res
type(psb_d_vect_type), intent (inout) :: x
- type(psb_desc_type), intent (in) :: desc_a
- integer(psb_ipk_), intent(out) :: info
+ type(psb_desc_type), intent (in) :: desc_a
+ integer(psb_ipk_), intent(out) :: info
+ logical, intent(in), optional :: global
end function psb_dasum_vect
- function psb_dasum(x, desc_a, info, jx)
+ function psb_dasum(x, desc_a, info, jx,global)
import :: psb_desc_type, psb_dpk_, psb_ipk_, &
& psb_d_vect_type, psb_dspmat_type
real(psb_dpk_) psb_dasum
real(psb_dpk_), intent (in) :: x(:,:)
type(psb_desc_type), intent (in) :: desc_a
integer(psb_ipk_), optional, intent (in) :: jx
- integer(psb_ipk_), intent(out) :: info
+ integer(psb_ipk_), intent(out) :: info
+ logical, intent(in), optional :: global
end function psb_dasum
- function psb_dasumv(x, desc_a, info)
+ function psb_dasumv(x, desc_a, info,global)
import :: psb_desc_type, psb_dpk_, psb_ipk_, &
& psb_d_vect_type, psb_dspmat_type
real(psb_dpk_) psb_dasumv
real(psb_dpk_), intent (in) :: x(:)
type(psb_desc_type), intent (in) :: desc_a
- integer(psb_ipk_), intent(out) :: info
+ integer(psb_ipk_), intent(out) :: info
+ logical, intent(in), optional :: global
end function psb_dasumv
end interface
interface psb_geasums
- subroutine psb_dasumvs(res,x,desc_a,info)
+ subroutine psb_dasumvs(res,x,desc_a,info,global)
import :: psb_desc_type, psb_dpk_, psb_ipk_, &
& psb_d_vect_type, psb_dspmat_type
real(psb_dpk_), intent (out) :: res
real(psb_dpk_), intent (in) :: x(:)
type(psb_desc_type), intent (in) :: desc_a
- integer(psb_ipk_), intent(out) :: info
+ integer(psb_ipk_), intent(out) :: info
+ logical, intent(in), optional :: global
end subroutine psb_dasumvs
- subroutine psb_dmasum(res,x,desc_a,info)
+ subroutine psb_dmasum(res,x,desc_a,info,global)
import :: psb_desc_type, psb_dpk_, psb_ipk_, &
& psb_d_vect_type, psb_dspmat_type
real(psb_dpk_), intent (out) :: res(:)
real(psb_dpk_), intent (in) :: x(:,:)
type(psb_desc_type), intent (in) :: desc_a
- integer(psb_ipk_), intent(out) :: info
+ integer(psb_ipk_), intent(out) :: info
+ logical, intent(in), optional :: global
end subroutine psb_dmasum
end interface
@@ -230,30 +245,33 @@ module psb_d_psblas_mod
#endif
interface psb_genrm2
- function psb_dnrm2(x, desc_a, info, jx)
+ function psb_dnrm2(x, desc_a, info, jx,global)
import :: psb_desc_type, psb_dpk_, psb_ipk_, &
& psb_d_vect_type, psb_dspmat_type
real(psb_dpk_) psb_dnrm2
real(psb_dpk_), intent (in) :: x(:,:)
type(psb_desc_type), intent (in) :: desc_a
integer(psb_ipk_), optional, intent (in) :: jx
- integer(psb_ipk_), intent(out) :: info
+ integer(psb_ipk_), intent(out) :: info
+ logical, intent(in), optional :: global
end function psb_dnrm2
- function psb_dnrm2v(x, desc_a, info)
+ function psb_dnrm2v(x, desc_a, info,global)
import :: psb_desc_type, psb_dpk_, psb_ipk_, &
& psb_d_vect_type, psb_dspmat_type
real(psb_dpk_) psb_dnrm2v
real(psb_dpk_), intent (in) :: x(:)
type(psb_desc_type), intent (in) :: desc_a
integer(psb_ipk_), intent(out) :: info
+ logical, intent(in), optional :: global
end function psb_dnrm2v
- function psb_dnrm2_vect(x, desc_a, info) result(res)
+ function psb_dnrm2_vect(x, desc_a, info,global) result(res)
import :: psb_desc_type, psb_dpk_, psb_ipk_, &
& psb_d_vect_type, psb_dspmat_type
real(psb_dpk_) :: res
type(psb_d_vect_type), intent (inout) :: x
type(psb_desc_type), intent (in) :: desc_a
- integer(psb_ipk_), intent(out) :: info
+ integer(psb_ipk_), intent(out) :: info
+ logical, intent(in), optional :: global
end function psb_dnrm2_vect
end interface
@@ -264,25 +282,27 @@ module psb_d_psblas_mod
#endif
interface psb_genrm2s
- subroutine psb_dnrm2vs(res,x,desc_a,info)
+ subroutine psb_dnrm2vs(res,x,desc_a,info,global)
import :: psb_desc_type, psb_dpk_, psb_ipk_, &
& psb_d_vect_type, psb_dspmat_type
real(psb_dpk_), intent (out) :: res
real(psb_dpk_), intent (in) :: x(:)
type(psb_desc_type), intent (in) :: desc_a
- integer(psb_ipk_), intent(out) :: info
+ integer(psb_ipk_), intent(out) :: info
+ logical, intent(in), optional :: global
end subroutine psb_dnrm2vs
end interface
interface psb_spnrmi
- function psb_dnrmi(a, desc_a,info)
+ function psb_dnrmi(a, desc_a,info,global)
import :: psb_desc_type, psb_dpk_, psb_ipk_, &
& psb_d_vect_type, psb_dspmat_type
real(psb_dpk_) :: psb_dnrmi
type(psb_dspmat_type), intent (in) :: a
type(psb_desc_type), intent (in) :: desc_a
- integer(psb_ipk_), intent(out) :: info
+ integer(psb_ipk_), intent(out) :: info
+ logical, intent(in), optional :: global
end function psb_dnrmi
end interface
@@ -293,13 +313,14 @@ module psb_d_psblas_mod
#endif
interface psb_spnrm1
- function psb_dspnrm1(a, desc_a,info)
+ function psb_dspnrm1(a, desc_a,info,global)
import :: psb_desc_type, psb_dpk_, psb_ipk_, &
& psb_d_vect_type, psb_dspmat_type
- real(psb_dpk_) :: psb_dspnrm1
+ real(psb_dpk_) :: psb_dspnrm1
type(psb_dspmat_type), intent (in) :: a
- type(psb_desc_type), intent (in) :: desc_a
- integer(psb_ipk_), intent(out) :: info
+ type(psb_desc_type), intent (in) :: desc_a
+ integer(psb_ipk_), intent(out) :: info
+ logical, intent(in), optional :: global
end function psb_dspnrm1
end interface
diff --git a/base/modules/psblas/psb_s_psblas_mod.F90 b/base/modules/psblas/psb_s_psblas_mod.F90
index fae7aaf0..a764bb40 100644
--- a/base/modules/psblas/psb_s_psblas_mod.F90
+++ b/base/modules/psblas/psb_s_psblas_mod.F90
@@ -35,50 +35,55 @@ module psb_s_psblas_mod
use psb_s_mat_mod, only : psb_sspmat_type
interface psb_gedot
- function psb_sdot_vect(x, y, desc_a,info) result(res)
+ function psb_sdot_vect(x, y, desc_a,info,global) result(res)
import :: psb_desc_type, psb_spk_, psb_ipk_, &
& psb_s_vect_type, psb_sspmat_type
real(psb_spk_) :: res
type(psb_s_vect_type), intent(inout) :: x, y
type(psb_desc_type), intent(in) :: desc_a
- integer(psb_ipk_), intent(out) :: info
+ integer(psb_ipk_), intent(out) :: info
+ logical, intent(in), optional :: global
end function psb_sdot_vect
- function psb_sdotv(x, y, desc_a,info)
+ function psb_sdotv(x, y, desc_a,info,global)
import :: psb_desc_type, psb_spk_, psb_ipk_, &
& psb_s_vect_type, psb_sspmat_type
real(psb_spk_) :: psb_sdotv
real(psb_spk_), intent(in) :: x(:), y(:)
type(psb_desc_type), intent(in) :: desc_a
- integer(psb_ipk_), intent(out) :: info
+ integer(psb_ipk_), intent(out) :: info
+ logical, intent(in), optional :: global
end function psb_sdotv
- function psb_sdot(x, y, desc_a, info, jx, jy)
+ function psb_sdot(x, y, desc_a, info, jx, jy,global)
import :: psb_desc_type, psb_spk_, psb_ipk_, &
& psb_s_vect_type, psb_sspmat_type
real(psb_spk_) :: psb_sdot
real(psb_spk_), intent(in) :: x(:,:), y(:,:)
type(psb_desc_type), intent(in) :: desc_a
integer(psb_ipk_), optional, intent(in) :: jx, jy
- integer(psb_ipk_), intent(out) :: info
+ integer(psb_ipk_), intent(out) :: info
+ logical, intent(in), optional :: global
end function psb_sdot
end interface
interface psb_gedots
- subroutine psb_sdotvs(res,x, y, desc_a, info)
+ subroutine psb_sdotvs(res,x, y, desc_a, info,global)
import :: psb_desc_type, psb_spk_, psb_ipk_, &
& psb_s_vect_type, psb_sspmat_type
real(psb_spk_), intent(out) :: res
real(psb_spk_), intent(in) :: x(:), y(:)
type(psb_desc_type), intent(in) :: desc_a
- integer(psb_ipk_), intent(out) :: info
+ integer(psb_ipk_), intent(out) :: info
+ logical, intent(in), optional :: global
end subroutine psb_sdotvs
- subroutine psb_smdots(res,x, y, desc_a,info)
+ subroutine psb_smdots(res,x, y, desc_a,info,global)
import :: psb_desc_type, psb_spk_, psb_ipk_, &
& psb_s_vect_type, psb_sspmat_type
real(psb_spk_), intent(out) :: res(:)
real(psb_spk_), intent(in) :: x(:,:), y(:,:)
type(psb_desc_type), intent(in) :: desc_a
- integer(psb_ipk_), intent(out) :: info
+ integer(psb_ipk_), intent(out) :: info
+ logical, intent(in), optional :: global
end subroutine psb_smdots
end interface
@@ -91,7 +96,7 @@ module psb_s_psblas_mod
type(psb_s_vect_type), intent (inout) :: y
real(psb_spk_), intent (in) :: alpha, beta
type(psb_desc_type), intent (in) :: desc_a
- integer(psb_ipk_), intent(out) :: info
+ integer(psb_ipk_), intent(out) :: info
end subroutine psb_saxpby_vect
subroutine psb_saxpbyv(alpha, x, beta, y,&
& desc_a, info)
@@ -112,35 +117,38 @@ module psb_s_psblas_mod
real(psb_spk_), intent (in) :: alpha, beta
type(psb_desc_type), intent (in) :: desc_a
integer(psb_ipk_), optional, intent(in) :: n, jx, jy
- integer(psb_ipk_), intent(out) :: info
+ integer(psb_ipk_), intent(out) :: info
end subroutine psb_saxpby
end interface
interface psb_geamax
- function psb_samax(x, desc_a, info, jx)
+ function psb_samax(x, desc_a, info, jx,global)
import :: psb_desc_type, psb_spk_, psb_ipk_, &
& psb_s_vect_type, psb_sspmat_type
real(psb_spk_) psb_samax
real(psb_spk_), intent (in) :: x(:,:)
type(psb_desc_type), intent (in) :: desc_a
integer(psb_ipk_), optional, intent (in) :: jx
- integer(psb_ipk_), intent(out) :: info
+ integer(psb_ipk_), intent(out) :: info
+ logical, intent(in), optional :: global
end function psb_samax
- function psb_samaxv(x, desc_a,info)
+ function psb_samaxv(x, desc_a,info,global)
import :: psb_desc_type, psb_spk_, psb_ipk_, &
& psb_s_vect_type, psb_sspmat_type
real(psb_spk_) psb_samaxv
real(psb_spk_), intent (in) :: x(:)
type(psb_desc_type), intent (in) :: desc_a
- integer(psb_ipk_), intent(out) :: info
+ integer(psb_ipk_), intent(out) :: info
+ logical, intent(in), optional :: global
end function psb_samaxv
- function psb_samax_vect(x, desc_a, info) result(res)
+ function psb_samax_vect(x, desc_a, info,global) result(res)
import :: psb_desc_type, psb_spk_, psb_ipk_, &
& psb_s_vect_type, psb_sspmat_type
real(psb_spk_) :: res
type(psb_s_vect_type), intent (inout) :: x
- type(psb_desc_type), intent (in) :: desc_a
- integer(psb_ipk_), intent(out) :: info
+ type(psb_desc_type), intent (in) :: desc_a
+ integer(psb_ipk_), intent(out) :: info
+ logical, intent(in), optional :: global
end function psb_samax_vect
end interface
@@ -154,69 +162,76 @@ module psb_s_psblas_mod
#endif
interface psb_geamaxs
- subroutine psb_samaxvs(res,x,desc_a,info)
+ subroutine psb_samaxvs(res,x,desc_a,info,global)
import :: psb_desc_type, psb_spk_, psb_ipk_, &
& psb_s_vect_type, psb_sspmat_type
real(psb_spk_), intent (out) :: res
real(psb_spk_), intent (in) :: x(:)
type(psb_desc_type), intent (in) :: desc_a
- integer(psb_ipk_), intent(out) :: info
+ integer(psb_ipk_), intent(out) :: info
+ logical, intent(in), optional :: global
end subroutine psb_samaxvs
- subroutine psb_smamaxs(res,x,desc_a,info,jx)
+ subroutine psb_smamaxs(res,x,desc_a,info,jx,global)
import :: psb_desc_type, psb_spk_, psb_ipk_, &
& psb_s_vect_type, psb_sspmat_type
real(psb_spk_), intent (out) :: res(:)
real(psb_spk_), intent (in) :: x(:,:)
type(psb_desc_type), intent (in) :: desc_a
- integer(psb_ipk_), intent(out) :: info
+ integer(psb_ipk_), intent(out) :: info
integer(psb_ipk_), optional, intent(in) :: jx
+ logical, intent(in), optional :: global
end subroutine psb_smamaxs
end interface
interface psb_geasum
- function psb_sasum_vect(x, desc_a, info) result(res)
+ function psb_sasum_vect(x, desc_a, info,global) result(res)
import :: psb_desc_type, psb_spk_, psb_ipk_, &
& psb_s_vect_type, psb_sspmat_type
real(psb_spk_) :: res
type(psb_s_vect_type), intent (inout) :: x
- type(psb_desc_type), intent (in) :: desc_a
- integer(psb_ipk_), intent(out) :: info
+ type(psb_desc_type), intent (in) :: desc_a
+ integer(psb_ipk_), intent(out) :: info
+ logical, intent(in), optional :: global
end function psb_sasum_vect
- function psb_sasum(x, desc_a, info, jx)
+ function psb_sasum(x, desc_a, info, jx,global)
import :: psb_desc_type, psb_spk_, psb_ipk_, &
& psb_s_vect_type, psb_sspmat_type
real(psb_spk_) psb_sasum
real(psb_spk_), intent (in) :: x(:,:)
type(psb_desc_type), intent (in) :: desc_a
integer(psb_ipk_), optional, intent (in) :: jx
- integer(psb_ipk_), intent(out) :: info
+ integer(psb_ipk_), intent(out) :: info
+ logical, intent(in), optional :: global
end function psb_sasum
- function psb_sasumv(x, desc_a, info)
+ function psb_sasumv(x, desc_a, info,global)
import :: psb_desc_type, psb_spk_, psb_ipk_, &
& psb_s_vect_type, psb_sspmat_type
real(psb_spk_) psb_sasumv
real(psb_spk_), intent (in) :: x(:)
type(psb_desc_type), intent (in) :: desc_a
- integer(psb_ipk_), intent(out) :: info
+ integer(psb_ipk_), intent(out) :: info
+ logical, intent(in), optional :: global
end function psb_sasumv
end interface
interface psb_geasums
- subroutine psb_sasumvs(res,x,desc_a,info)
+ subroutine psb_sasumvs(res,x,desc_a,info,global)
import :: psb_desc_type, psb_spk_, psb_ipk_, &
& psb_s_vect_type, psb_sspmat_type
real(psb_spk_), intent (out) :: res
real(psb_spk_), intent (in) :: x(:)
type(psb_desc_type), intent (in) :: desc_a
- integer(psb_ipk_), intent(out) :: info
+ integer(psb_ipk_), intent(out) :: info
+ logical, intent(in), optional :: global
end subroutine psb_sasumvs
- subroutine psb_smasum(res,x,desc_a,info)
+ subroutine psb_smasum(res,x,desc_a,info,global)
import :: psb_desc_type, psb_spk_, psb_ipk_, &
& psb_s_vect_type, psb_sspmat_type
real(psb_spk_), intent (out) :: res(:)
real(psb_spk_), intent (in) :: x(:,:)
type(psb_desc_type), intent (in) :: desc_a
- integer(psb_ipk_), intent(out) :: info
+ integer(psb_ipk_), intent(out) :: info
+ logical, intent(in), optional :: global
end subroutine psb_smasum
end interface
@@ -230,30 +245,33 @@ module psb_s_psblas_mod
#endif
interface psb_genrm2
- function psb_snrm2(x, desc_a, info, jx)
+ function psb_snrm2(x, desc_a, info, jx,global)
import :: psb_desc_type, psb_spk_, psb_ipk_, &
& psb_s_vect_type, psb_sspmat_type
real(psb_spk_) psb_snrm2
real(psb_spk_), intent (in) :: x(:,:)
type(psb_desc_type), intent (in) :: desc_a
integer(psb_ipk_), optional, intent (in) :: jx
- integer(psb_ipk_), intent(out) :: info
+ integer(psb_ipk_), intent(out) :: info
+ logical, intent(in), optional :: global
end function psb_snrm2
- function psb_snrm2v(x, desc_a, info)
+ function psb_snrm2v(x, desc_a, info,global)
import :: psb_desc_type, psb_spk_, psb_ipk_, &
& psb_s_vect_type, psb_sspmat_type
real(psb_spk_) psb_snrm2v
real(psb_spk_), intent (in) :: x(:)
type(psb_desc_type), intent (in) :: desc_a
integer(psb_ipk_), intent(out) :: info
+ logical, intent(in), optional :: global
end function psb_snrm2v
- function psb_snrm2_vect(x, desc_a, info) result(res)
+ function psb_snrm2_vect(x, desc_a, info,global) result(res)
import :: psb_desc_type, psb_spk_, psb_ipk_, &
& psb_s_vect_type, psb_sspmat_type
real(psb_spk_) :: res
type(psb_s_vect_type), intent (inout) :: x
type(psb_desc_type), intent (in) :: desc_a
- integer(psb_ipk_), intent(out) :: info
+ integer(psb_ipk_), intent(out) :: info
+ logical, intent(in), optional :: global
end function psb_snrm2_vect
end interface
@@ -264,25 +282,27 @@ module psb_s_psblas_mod
#endif
interface psb_genrm2s
- subroutine psb_snrm2vs(res,x,desc_a,info)
+ subroutine psb_snrm2vs(res,x,desc_a,info,global)
import :: psb_desc_type, psb_spk_, psb_ipk_, &
& psb_s_vect_type, psb_sspmat_type
real(psb_spk_), intent (out) :: res
real(psb_spk_), intent (in) :: x(:)
type(psb_desc_type), intent (in) :: desc_a
- integer(psb_ipk_), intent(out) :: info
+ integer(psb_ipk_), intent(out) :: info
+ logical, intent(in), optional :: global
end subroutine psb_snrm2vs
end interface
interface psb_spnrmi
- function psb_snrmi(a, desc_a,info)
+ function psb_snrmi(a, desc_a,info,global)
import :: psb_desc_type, psb_spk_, psb_ipk_, &
& psb_s_vect_type, psb_sspmat_type
real(psb_spk_) :: psb_snrmi
type(psb_sspmat_type), intent (in) :: a
type(psb_desc_type), intent (in) :: desc_a
- integer(psb_ipk_), intent(out) :: info
+ integer(psb_ipk_), intent(out) :: info
+ logical, intent(in), optional :: global
end function psb_snrmi
end interface
@@ -293,13 +313,14 @@ module psb_s_psblas_mod
#endif
interface psb_spnrm1
- function psb_sspnrm1(a, desc_a,info)
+ function psb_sspnrm1(a, desc_a,info,global)
import :: psb_desc_type, psb_spk_, psb_ipk_, &
& psb_s_vect_type, psb_sspmat_type
- real(psb_spk_) :: psb_sspnrm1
+ real(psb_spk_) :: psb_sspnrm1
type(psb_sspmat_type), intent (in) :: a
- type(psb_desc_type), intent (in) :: desc_a
- integer(psb_ipk_), intent(out) :: info
+ type(psb_desc_type), intent (in) :: desc_a
+ integer(psb_ipk_), intent(out) :: info
+ logical, intent(in), optional :: global
end function psb_sspnrm1
end interface
diff --git a/base/modules/psblas/psb_z_psblas_mod.F90 b/base/modules/psblas/psb_z_psblas_mod.F90
index b218ce5b..08ee92a7 100644
--- a/base/modules/psblas/psb_z_psblas_mod.F90
+++ b/base/modules/psblas/psb_z_psblas_mod.F90
@@ -35,50 +35,55 @@ module psb_z_psblas_mod
use psb_z_mat_mod, only : psb_zspmat_type
interface psb_gedot
- function psb_zdot_vect(x, y, desc_a,info) result(res)
+ function psb_zdot_vect(x, y, desc_a,info,global) result(res)
import :: psb_desc_type, psb_dpk_, psb_ipk_, &
& psb_z_vect_type, psb_zspmat_type
complex(psb_dpk_) :: res
type(psb_z_vect_type), intent(inout) :: x, y
type(psb_desc_type), intent(in) :: desc_a
- integer(psb_ipk_), intent(out) :: info
+ integer(psb_ipk_), intent(out) :: info
+ logical, intent(in), optional :: global
end function psb_zdot_vect
- function psb_zdotv(x, y, desc_a,info)
+ function psb_zdotv(x, y, desc_a,info,global)
import :: psb_desc_type, psb_dpk_, psb_ipk_, &
& psb_z_vect_type, psb_zspmat_type
complex(psb_dpk_) :: psb_zdotv
complex(psb_dpk_), intent(in) :: x(:), y(:)
type(psb_desc_type), intent(in) :: desc_a
- integer(psb_ipk_), intent(out) :: info
+ integer(psb_ipk_), intent(out) :: info
+ logical, intent(in), optional :: global
end function psb_zdotv
- function psb_zdot(x, y, desc_a, info, jx, jy)
+ function psb_zdot(x, y, desc_a, info, jx, jy,global)
import :: psb_desc_type, psb_dpk_, psb_ipk_, &
& psb_z_vect_type, psb_zspmat_type
complex(psb_dpk_) :: psb_zdot
complex(psb_dpk_), intent(in) :: x(:,:), y(:,:)
type(psb_desc_type), intent(in) :: desc_a
integer(psb_ipk_), optional, intent(in) :: jx, jy
- integer(psb_ipk_), intent(out) :: info
+ integer(psb_ipk_), intent(out) :: info
+ logical, intent(in), optional :: global
end function psb_zdot
end interface
interface psb_gedots
- subroutine psb_zdotvs(res,x, y, desc_a, info)
+ subroutine psb_zdotvs(res,x, y, desc_a, info,global)
import :: psb_desc_type, psb_dpk_, psb_ipk_, &
& psb_z_vect_type, psb_zspmat_type
complex(psb_dpk_), intent(out) :: res
complex(psb_dpk_), intent(in) :: x(:), y(:)
type(psb_desc_type), intent(in) :: desc_a
- integer(psb_ipk_), intent(out) :: info
+ integer(psb_ipk_), intent(out) :: info
+ logical, intent(in), optional :: global
end subroutine psb_zdotvs
- subroutine psb_zmdots(res,x, y, desc_a,info)
+ subroutine psb_zmdots(res,x, y, desc_a,info,global)
import :: psb_desc_type, psb_dpk_, psb_ipk_, &
& psb_z_vect_type, psb_zspmat_type
complex(psb_dpk_), intent(out) :: res(:)
complex(psb_dpk_), intent(in) :: x(:,:), y(:,:)
type(psb_desc_type), intent(in) :: desc_a
- integer(psb_ipk_), intent(out) :: info
+ integer(psb_ipk_), intent(out) :: info
+ logical, intent(in), optional :: global
end subroutine psb_zmdots
end interface
@@ -91,7 +96,7 @@ module psb_z_psblas_mod
type(psb_z_vect_type), intent (inout) :: y
complex(psb_dpk_), intent (in) :: alpha, beta
type(psb_desc_type), intent (in) :: desc_a
- integer(psb_ipk_), intent(out) :: info
+ integer(psb_ipk_), intent(out) :: info
end subroutine psb_zaxpby_vect
subroutine psb_zaxpbyv(alpha, x, beta, y,&
& desc_a, info)
@@ -112,35 +117,38 @@ module psb_z_psblas_mod
complex(psb_dpk_), intent (in) :: alpha, beta
type(psb_desc_type), intent (in) :: desc_a
integer(psb_ipk_), optional, intent(in) :: n, jx, jy
- integer(psb_ipk_), intent(out) :: info
+ integer(psb_ipk_), intent(out) :: info
end subroutine psb_zaxpby
end interface
interface psb_geamax
- function psb_zamax(x, desc_a, info, jx)
+ function psb_zamax(x, desc_a, info, jx,global)
import :: psb_desc_type, psb_dpk_, psb_ipk_, &
& psb_z_vect_type, psb_zspmat_type
real(psb_dpk_) psb_zamax
complex(psb_dpk_), intent (in) :: x(:,:)
type(psb_desc_type), intent (in) :: desc_a
integer(psb_ipk_), optional, intent (in) :: jx
- integer(psb_ipk_), intent(out) :: info
+ integer(psb_ipk_), intent(out) :: info
+ logical, intent(in), optional :: global
end function psb_zamax
- function psb_zamaxv(x, desc_a,info)
+ function psb_zamaxv(x, desc_a,info,global)
import :: psb_desc_type, psb_dpk_, psb_ipk_, &
& psb_z_vect_type, psb_zspmat_type
real(psb_dpk_) psb_zamaxv
complex(psb_dpk_), intent (in) :: x(:)
type(psb_desc_type), intent (in) :: desc_a
- integer(psb_ipk_), intent(out) :: info
+ integer(psb_ipk_), intent(out) :: info
+ logical, intent(in), optional :: global
end function psb_zamaxv
- function psb_zamax_vect(x, desc_a, info) result(res)
+ function psb_zamax_vect(x, desc_a, info,global) result(res)
import :: psb_desc_type, psb_dpk_, psb_ipk_, &
& psb_z_vect_type, psb_zspmat_type
real(psb_dpk_) :: res
type(psb_z_vect_type), intent (inout) :: x
- type(psb_desc_type), intent (in) :: desc_a
- integer(psb_ipk_), intent(out) :: info
+ type(psb_desc_type), intent (in) :: desc_a
+ integer(psb_ipk_), intent(out) :: info
+ logical, intent(in), optional :: global
end function psb_zamax_vect
end interface
@@ -154,69 +162,76 @@ module psb_z_psblas_mod
#endif
interface psb_geamaxs
- subroutine psb_zamaxvs(res,x,desc_a,info)
+ subroutine psb_zamaxvs(res,x,desc_a,info,global)
import :: psb_desc_type, psb_dpk_, psb_ipk_, &
& psb_z_vect_type, psb_zspmat_type
real(psb_dpk_), intent (out) :: res
complex(psb_dpk_), intent (in) :: x(:)
type(psb_desc_type), intent (in) :: desc_a
- integer(psb_ipk_), intent(out) :: info
+ integer(psb_ipk_), intent(out) :: info
+ logical, intent(in), optional :: global
end subroutine psb_zamaxvs
- subroutine psb_zmamaxs(res,x,desc_a,info,jx)
+ subroutine psb_zmamaxs(res,x,desc_a,info,jx,global)
import :: psb_desc_type, psb_dpk_, psb_ipk_, &
& psb_z_vect_type, psb_zspmat_type
real(psb_dpk_), intent (out) :: res(:)
complex(psb_dpk_), intent (in) :: x(:,:)
type(psb_desc_type), intent (in) :: desc_a
- integer(psb_ipk_), intent(out) :: info
+ integer(psb_ipk_), intent(out) :: info
integer(psb_ipk_), optional, intent(in) :: jx
+ logical, intent(in), optional :: global
end subroutine psb_zmamaxs
end interface
interface psb_geasum
- function psb_zasum_vect(x, desc_a, info) result(res)
+ function psb_zasum_vect(x, desc_a, info,global) result(res)
import :: psb_desc_type, psb_dpk_, psb_ipk_, &
& psb_z_vect_type, psb_zspmat_type
real(psb_dpk_) :: res
type(psb_z_vect_type), intent (inout) :: x
- type(psb_desc_type), intent (in) :: desc_a
- integer(psb_ipk_), intent(out) :: info
+ type(psb_desc_type), intent (in) :: desc_a
+ integer(psb_ipk_), intent(out) :: info
+ logical, intent(in), optional :: global
end function psb_zasum_vect
- function psb_zasum(x, desc_a, info, jx)
+ function psb_zasum(x, desc_a, info, jx,global)
import :: psb_desc_type, psb_dpk_, psb_ipk_, &
& psb_z_vect_type, psb_zspmat_type
real(psb_dpk_) psb_zasum
complex(psb_dpk_), intent (in) :: x(:,:)
type(psb_desc_type), intent (in) :: desc_a
integer(psb_ipk_), optional, intent (in) :: jx
- integer(psb_ipk_), intent(out) :: info
+ integer(psb_ipk_), intent(out) :: info
+ logical, intent(in), optional :: global
end function psb_zasum
- function psb_zasumv(x, desc_a, info)
+ function psb_zasumv(x, desc_a, info,global)
import :: psb_desc_type, psb_dpk_, psb_ipk_, &
& psb_z_vect_type, psb_zspmat_type
real(psb_dpk_) psb_zasumv
complex(psb_dpk_), intent (in) :: x(:)
type(psb_desc_type), intent (in) :: desc_a
- integer(psb_ipk_), intent(out) :: info
+ integer(psb_ipk_), intent(out) :: info
+ logical, intent(in), optional :: global
end function psb_zasumv
end interface
interface psb_geasums
- subroutine psb_zasumvs(res,x,desc_a,info)
+ subroutine psb_zasumvs(res,x,desc_a,info,global)
import :: psb_desc_type, psb_dpk_, psb_ipk_, &
& psb_z_vect_type, psb_zspmat_type
real(psb_dpk_), intent (out) :: res
complex(psb_dpk_), intent (in) :: x(:)
type(psb_desc_type), intent (in) :: desc_a
- integer(psb_ipk_), intent(out) :: info
+ integer(psb_ipk_), intent(out) :: info
+ logical, intent(in), optional :: global
end subroutine psb_zasumvs
- subroutine psb_zmasum(res,x,desc_a,info)
+ subroutine psb_zmasum(res,x,desc_a,info,global)
import :: psb_desc_type, psb_dpk_, psb_ipk_, &
& psb_z_vect_type, psb_zspmat_type
real(psb_dpk_), intent (out) :: res(:)
complex(psb_dpk_), intent (in) :: x(:,:)
type(psb_desc_type), intent (in) :: desc_a
- integer(psb_ipk_), intent(out) :: info
+ integer(psb_ipk_), intent(out) :: info
+ logical, intent(in), optional :: global
end subroutine psb_zmasum
end interface
@@ -230,30 +245,33 @@ module psb_z_psblas_mod
#endif
interface psb_genrm2
- function psb_znrm2(x, desc_a, info, jx)
+ function psb_znrm2(x, desc_a, info, jx,global)
import :: psb_desc_type, psb_dpk_, psb_ipk_, &
& psb_z_vect_type, psb_zspmat_type
real(psb_dpk_) psb_znrm2
complex(psb_dpk_), intent (in) :: x(:,:)
type(psb_desc_type), intent (in) :: desc_a
integer(psb_ipk_), optional, intent (in) :: jx
- integer(psb_ipk_), intent(out) :: info
+ integer(psb_ipk_), intent(out) :: info
+ logical, intent(in), optional :: global
end function psb_znrm2
- function psb_znrm2v(x, desc_a, info)
+ function psb_znrm2v(x, desc_a, info,global)
import :: psb_desc_type, psb_dpk_, psb_ipk_, &
& psb_z_vect_type, psb_zspmat_type
real(psb_dpk_) psb_znrm2v
complex(psb_dpk_), intent (in) :: x(:)
type(psb_desc_type), intent (in) :: desc_a
integer(psb_ipk_), intent(out) :: info
+ logical, intent(in), optional :: global
end function psb_znrm2v
- function psb_znrm2_vect(x, desc_a, info) result(res)
+ function psb_znrm2_vect(x, desc_a, info,global) result(res)
import :: psb_desc_type, psb_dpk_, psb_ipk_, &
& psb_z_vect_type, psb_zspmat_type
real(psb_dpk_) :: res
type(psb_z_vect_type), intent (inout) :: x
type(psb_desc_type), intent (in) :: desc_a
- integer(psb_ipk_), intent(out) :: info
+ integer(psb_ipk_), intent(out) :: info
+ logical, intent(in), optional :: global
end function psb_znrm2_vect
end interface
@@ -264,25 +282,27 @@ module psb_z_psblas_mod
#endif
interface psb_genrm2s
- subroutine psb_znrm2vs(res,x,desc_a,info)
+ subroutine psb_znrm2vs(res,x,desc_a,info,global)
import :: psb_desc_type, psb_dpk_, psb_ipk_, &
& psb_z_vect_type, psb_zspmat_type
real(psb_dpk_), intent (out) :: res
complex(psb_dpk_), intent (in) :: x(:)
type(psb_desc_type), intent (in) :: desc_a
- integer(psb_ipk_), intent(out) :: info
+ integer(psb_ipk_), intent(out) :: info
+ logical, intent(in), optional :: global
end subroutine psb_znrm2vs
end interface
interface psb_spnrmi
- function psb_znrmi(a, desc_a,info)
+ function psb_znrmi(a, desc_a,info,global)
import :: psb_desc_type, psb_dpk_, psb_ipk_, &
& psb_z_vect_type, psb_zspmat_type
real(psb_dpk_) :: psb_znrmi
type(psb_zspmat_type), intent (in) :: a
type(psb_desc_type), intent (in) :: desc_a
- integer(psb_ipk_), intent(out) :: info
+ integer(psb_ipk_), intent(out) :: info
+ logical, intent(in), optional :: global
end function psb_znrmi
end interface
@@ -293,13 +313,14 @@ module psb_z_psblas_mod
#endif
interface psb_spnrm1
- function psb_zspnrm1(a, desc_a,info)
+ function psb_zspnrm1(a, desc_a,info,global)
import :: psb_desc_type, psb_dpk_, psb_ipk_, &
& psb_z_vect_type, psb_zspmat_type
- real(psb_dpk_) :: psb_zspnrm1
+ real(psb_dpk_) :: psb_zspnrm1
type(psb_zspmat_type), intent (in) :: a
- type(psb_desc_type), intent (in) :: desc_a
- integer(psb_ipk_), intent(out) :: info
+ type(psb_desc_type), intent (in) :: desc_a
+ integer(psb_ipk_), intent(out) :: info
+ logical, intent(in), optional :: global
end function psb_zspnrm1
end interface
diff --git a/base/modules/psi_i_mod.f90 b/base/modules/psi_i_mod.f90
index 76d73726..c6e65f26 100644
--- a/base/modules/psi_i_mod.f90
+++ b/base/modules/psi_i_mod.f90
@@ -53,13 +53,12 @@ module psi_i_mod
end interface
interface
- subroutine psi_crea_index(desc_a,index_in,index_out,glob_idx,nxch,nsnd,nrcv,info)
+ subroutine psi_crea_index(desc_a,index_in,index_out,nxch,nsnd,nrcv,info)
import
type(psb_desc_type), intent(in) :: desc_a
integer(psb_ipk_), intent(out) :: info,nxch,nsnd,nrcv
integer(psb_ipk_), intent(in) :: index_in(:)
integer(psb_ipk_), allocatable, intent(inout) :: index_out(:)
- logical :: glob_idx
end subroutine psi_crea_index
end interface
@@ -74,13 +73,12 @@ module psi_i_mod
interface
subroutine psi_desc_index(desc,index_in,dep_list,&
- & length_dl,nsnd,nrcv,desc_index,isglob_in,info)
+ & length_dl,nsnd,nrcv,desc_index,info)
import
type(psb_desc_type) :: desc
integer(psb_ipk_) :: index_in(:),dep_list(:)
integer(psb_ipk_),allocatable :: desc_index(:)
integer(psb_ipk_) :: length_dl,nsnd,nrcv,info
- logical :: isglob_in
end subroutine psi_desc_index
end interface
diff --git a/base/psblas/psb_camax.f90 b/base/psblas/psb_camax.f90
index fea7798e..f9a11055 100644
--- a/base/psblas/psb_camax.f90
+++ b/base/psblas/psb_camax.f90
@@ -44,7 +44,7 @@
! info - integer. Return code
! jx - integer(optional). The column offset.
!
-function psb_camax(x,desc_a, info, jx) result(res)
+function psb_camax(x,desc_a, info, jx,global) result(res)
use psb_base_mod, psb_protect_name => psb_camax
implicit none
@@ -54,10 +54,12 @@ function psb_camax(x,desc_a, info, jx) result(res)
integer(psb_ipk_), intent(out) :: info
integer(psb_ipk_), optional, intent(in) :: jx
real(psb_spk_) :: res
+ logical, intent(in), optional :: global
! locals
integer(psb_ipk_) :: ictxt, np, me,&
& err_act, iix, jjx, ix, ijx, m, ldx
+ logical :: global_
character(len=20) :: name, ch_err
name='psb_camax'
@@ -82,6 +84,12 @@ function psb_camax(x,desc_a, info, jx) result(res)
ijx = 1
endif
+ if (present(global)) then
+ global_ = global
+ else
+ global_ = .true.
+ end if
+
m = desc_a%get_global_rows()
ldx = size(x,1)
@@ -107,7 +115,7 @@ function psb_camax(x,desc_a, info, jx) result(res)
end if
! compute global max
- call psb_amx(ictxt, res)
+ if (global_) call psb_amx(ictxt, res)
call psb_erractionrestore(err_act)
return
@@ -162,7 +170,7 @@ end function psb_camax
! desc_a - type(psb_desc_type). The communication descriptor.
! info - integer. Return code
!
-function psb_camaxv (x,desc_a, info) result(res)
+function psb_camaxv (x,desc_a, info,global) result(res)
use psb_base_mod, psb_protect_name => psb_camaxv
implicit none
@@ -171,11 +179,12 @@ function psb_camaxv (x,desc_a, info) result(res)
type(psb_desc_type), intent(in) :: desc_a
integer(psb_ipk_), intent(out) :: info
real(psb_spk_) :: res
+ logical, intent(in), optional :: global
! locals
integer(psb_ipk_) :: ictxt, np, me,&
& err_act, iix, jjx, jx, ix, m, ldx
-
+ logical :: global_
character(len=20) :: name, ch_err
name='psb_camaxv'
@@ -193,6 +202,12 @@ function psb_camaxv (x,desc_a, info) result(res)
goto 9999
endif
+ if (present(global)) then
+ global_ = global
+ else
+ global_ = .true.
+ end if
+
ix = 1
jx = 1
@@ -221,7 +236,7 @@ function psb_camaxv (x,desc_a, info) result(res)
end if
! compute global max
- call psb_amx(ictxt, res)
+ if (global_) call psb_amx(ictxt, res)
call psb_erractionrestore(err_act)
return
@@ -232,7 +247,7 @@ function psb_camaxv (x,desc_a, info) result(res)
end function psb_camaxv
-function psb_camax_vect(x, desc_a, info) result(res)
+function psb_camax_vect(x, desc_a, info,global) result(res)
use psb_penv_mod
use psb_serial_mod
use psb_desc_mod
@@ -245,10 +260,12 @@ function psb_camax_vect(x, desc_a, info) result(res)
type(psb_c_vect_type), intent (inout) :: x
type(psb_desc_type), intent (in) :: desc_a
integer(psb_ipk_), intent(out) :: info
+ logical, intent(in), optional :: global
! locals
integer(psb_ipk_) :: ictxt, np, me,&
& err_act, iix, jjx, jx, ix, m
+ logical :: global_
character(len=20) :: name, ch_err
name='psb_camaxv'
@@ -271,6 +288,12 @@ function psb_camax_vect(x, desc_a, info) result(res)
goto 9999
endif
+ if (present(global)) then
+ global_ = global
+ else
+ global_ = .true.
+ end if
+
ix = 1
jx = 1
@@ -297,7 +320,7 @@ function psb_camax_vect(x, desc_a, info) result(res)
end if
! compute global max
- call psb_amx(ictxt, res)
+ if (global_) call psb_amx(ictxt, res)
call psb_erractionrestore(err_act)
return
@@ -355,7 +378,7 @@ end function psb_camax_vect
! info - integer. Return code
! jx - integer(optional). The column offset.
!
-subroutine psb_camaxvs(res,x,desc_a, info)
+subroutine psb_camaxvs(res,x,desc_a, info,global)
use psb_base_mod, psb_protect_name => psb_camaxvs
implicit none
@@ -364,10 +387,12 @@ subroutine psb_camaxvs(res,x,desc_a, info)
type(psb_desc_type), intent(in) :: desc_a
integer(psb_ipk_), intent(out) :: info
real(psb_spk_), intent(out) :: res
+ logical, intent(in), optional :: global
! locals
integer(psb_ipk_) :: ictxt, np, me,&
& err_act, iix, jjx, ix, ijx, m, ldx
+ logical :: global_
character(len=20) :: name, ch_err
name='psb_camaxvs'
@@ -385,6 +410,12 @@ subroutine psb_camaxvs(res,x,desc_a, info)
goto 9999
endif
+ if (present(global)) then
+ global_ = global
+ else
+ global_ = .true.
+ end if
+
ix = 1
ijx=1
@@ -412,7 +443,7 @@ subroutine psb_camaxvs(res,x,desc_a, info)
end if
! compute global max
- call psb_amx(ictxt, res)
+ if (global_) call psb_amx(ictxt, res)
call psb_erractionrestore(err_act)
return
@@ -466,7 +497,7 @@ end subroutine psb_camaxvs
! desc_a - type(psb_desc_type). The communication descriptor.
! info - integer. Return code
!
-subroutine psb_cmamaxs(res,x,desc_a, info,jx)
+subroutine psb_cmamaxs(res,x,desc_a, info,jx,global)
use psb_base_mod, psb_protect_name => psb_cmamaxs
implicit none
@@ -476,10 +507,12 @@ subroutine psb_cmamaxs(res,x,desc_a, info,jx)
integer(psb_ipk_), intent(out) :: info
integer(psb_ipk_), optional, intent(in) :: jx
real(psb_spk_), intent(out) :: res(:)
+ logical, intent(in), optional :: global
! locals
integer(psb_ipk_) :: ictxt, np, me,&
& err_act, iix, jjx, ix, ijx, m, ldx, i, k
+ logical :: global_
character(len=20) :: name, ch_err
name='psb_cmamaxs'
@@ -503,6 +536,12 @@ subroutine psb_cmamaxs(res,x,desc_a, info,jx)
ijx = 1
endif
+ if (present(global)) then
+ global_ = global
+ else
+ global_ = .true.
+ end if
+
m = desc_a%get_global_rows()
k = min(size(x,2),size(res,1))
ldx = size(x,1)
@@ -529,7 +568,7 @@ subroutine psb_cmamaxs(res,x,desc_a, info,jx)
end if
! compute global max
- call psb_amx(ictxt, res(1:k))
+ if (global_) call psb_amx(ictxt, res(1:k))
call psb_erractionrestore(err_act)
return
diff --git a/base/psblas/psb_casum.f90 b/base/psblas/psb_casum.f90
index bd77453f..c9e29461 100644
--- a/base/psblas/psb_casum.f90
+++ b/base/psblas/psb_casum.f90
@@ -44,7 +44,7 @@
! info - integer. Return code
! jx - integer(optional). The column offset.
!
-function psb_casum (x,desc_a, info, jx) result(res)
+function psb_casum (x,desc_a, info, jx,global) result(res)
use psb_base_mod, psb_protect_name => psb_casum
implicit none
@@ -54,10 +54,12 @@ function psb_casum (x,desc_a, info, jx) result(res)
integer(psb_ipk_), intent(out) :: info
integer(psb_ipk_), optional, intent(in) :: jx
real(psb_spk_) :: res
+ logical, intent(in), optional :: global
! locals
integer(psb_ipk_) :: ictxt, np, me, &
& err_act, iix, jjx, ix, ijx, m, i, idx, ndm, ldx
+ logical :: global_
character(len=20) :: name, ch_err
name='psb_casum'
@@ -82,6 +84,12 @@ function psb_casum (x,desc_a, info, jx) result(res)
ijx = 1
endif
+ if (present(global)) then
+ global_ = global
+ else
+ global_ = .true.
+ end if
+
m = desc_a%get_global_rows()
ldx = size(x,1)
! check vector correctness
@@ -114,7 +122,7 @@ function psb_casum (x,desc_a, info, jx) result(res)
res = szero
end if
! compute global sum
- call psb_sum(ictxt, res)
+ if (global_) call psb_sum(ictxt, res)
call psb_erractionrestore(err_act)
return
@@ -125,7 +133,7 @@ function psb_casum (x,desc_a, info, jx) result(res)
end function psb_casum
-function psb_casum_vect(x, desc_a, info) result(res)
+function psb_casum_vect(x, desc_a, info,global) result(res)
use psb_base_mod, psb_protect_name => psb_casum_vect
implicit none
@@ -133,10 +141,12 @@ function psb_casum_vect(x, desc_a, info) result(res)
type(psb_c_vect_type), intent (inout) :: x
type(psb_desc_type), intent (in) :: desc_a
integer(psb_ipk_), intent(out) :: info
+ logical, intent(in), optional :: global
! locals
integer(psb_ipk_) :: ictxt, np, me,&
- & err_act, iix, jjx, jx, ix, m, imax
+ & err_act, iix, jjx, jx, ix, m, imax, i, idx, ndm
+ logical :: global_
character(len=20) :: name, ch_err
name='psb_casumv'
@@ -160,6 +170,11 @@ function psb_casum_vect(x, desc_a, info) result(res)
goto 9999
endif
+ if (present(global)) then
+ global_ = global
+ else
+ global_ = .true.
+ end if
ix = 1
jx = 1
@@ -182,12 +197,21 @@ function psb_casum_vect(x, desc_a, info) result(res)
! compute local max
if ((desc_a%get_local_rows() > 0).and.(m /= 0)) then
res = x%asum(desc_a%get_local_rows())
+ if (size(desc_a%ovrlap_elem,1)>0) then
+ if (x%is_dev()) call x%sync()
+ ! adjust res because overlapped elements are computed more than once
+ do i=1,size(desc_a%ovrlap_elem,1)
+ idx = desc_a%ovrlap_elem(i,1)
+ ndm = desc_a%ovrlap_elem(i,2)
+ res = res - (real(ndm-1)/real(ndm))*abs(x%v%v(idx))
+ end do
+ end if
else
res = szero
end if
! compute global sum
- call psb_sum(ictxt, res)
+ if (global_) call psb_sum(ictxt, res)
call psb_erractionrestore(err_act)
return
@@ -242,7 +266,7 @@ end function psb_casum_vect
! desc_a - type(psb_desc_type). The communication descriptor.
! info - integer. Return code
!
-function psb_casumv(x,desc_a, info) result(res)
+function psb_casumv(x,desc_a, info,global) result(res)
use psb_base_mod, psb_protect_name => psb_casumv
implicit none
@@ -251,10 +275,12 @@ function psb_casumv(x,desc_a, info) result(res)
type(psb_desc_type), intent(in) :: desc_a
integer(psb_ipk_), intent(out) :: info
real(psb_spk_) :: res
+ logical, intent(in), optional :: global
! locals
integer(psb_ipk_) :: ictxt, np, me,&
& err_act, iix, jjx, jx, ix, m, i, idx, ndm, ldx
+ logical :: global_
character(len=20) :: name, ch_err
name='psb_casumv'
@@ -271,6 +297,12 @@ function psb_casumv(x,desc_a, info) result(res)
goto 9999
endif
+ if (present(global)) then
+ global_ = global
+ else
+ global_ = .true.
+ end if
+
ix = 1
jx=1
@@ -307,7 +339,7 @@ function psb_casumv(x,desc_a, info) result(res)
end if
! compute global sum
- call psb_sum(ictxt, res)
+ if (global_) call psb_sum(ictxt, res)
call psb_erractionrestore(err_act)
return
@@ -362,7 +394,7 @@ end function psb_casumv
! info - integer. Return code
! jx - integer(optional). The column offset.
!
-subroutine psb_casumvs(res,x,desc_a, info)
+subroutine psb_casumvs(res,x,desc_a, info,global)
use psb_base_mod, psb_protect_name => psb_casumvs
implicit none
@@ -371,10 +403,12 @@ subroutine psb_casumvs(res,x,desc_a, info)
real(psb_spk_), intent(out) :: res
type(psb_desc_type), intent(in) :: desc_a
integer(psb_ipk_), intent(out) :: info
+ logical, intent(in), optional :: global
! locals
integer(psb_ipk_) :: ictxt, np, me,&
& err_act, iix, jjx, ix, jx, m, i, idx, ndm, ldx
+ logical :: global_
character(len=20) :: name, ch_err
name='psb_casumvs'
@@ -391,6 +425,12 @@ subroutine psb_casumvs(res,x,desc_a, info)
goto 9999
endif
+ if (present(global)) then
+ global_ = global
+ else
+ global_ = .true.
+ end if
+
ix = 1
jx = 1
@@ -427,7 +467,7 @@ subroutine psb_casumvs(res,x,desc_a, info)
end if
! compute global sum
- call psb_sum(ictxt,res)
+ if (global_) call psb_sum(ictxt,res)
call psb_erractionrestore(err_act)
return
diff --git a/base/psblas/psb_cdot.f90 b/base/psblas/psb_cdot.f90
index cf7d5f01..c6d545c6 100644
--- a/base/psblas/psb_cdot.f90
+++ b/base/psblas/psb_cdot.f90
@@ -48,7 +48,7 @@
! jx - integer(optional). The column offset for sub( X ).
! jy - integer(optional). The column offset for sub( Y ).
!
-function psb_cdot_vect(x, y, desc_a,info) result(res)
+function psb_cdot_vect(x, y, desc_a,info,global) result(res)
use psb_desc_mod
use psb_c_base_mat_mod
use psb_check_mod
@@ -61,10 +61,12 @@ function psb_cdot_vect(x, y, desc_a,info) result(res)
type(psb_c_vect_type), intent(inout) :: x, y
type(psb_desc_type), intent(in) :: desc_a
integer(psb_ipk_), intent(out) :: info
+ logical, intent(in), optional :: global
! locals
integer(psb_ipk_) :: ictxt, np, me, idx, ndm,&
& err_act, iix, jjx, ix, ijx, iy, ijy, iiy, jjy, i, m, nr
+ logical :: global_
character(len=20) :: name, ch_err
name='psb_cdot_vect'
@@ -91,6 +93,11 @@ function psb_cdot_vect(x, y, desc_a,info) result(res)
goto 9999
endif
+ if (present(global)) then
+ global_ = global
+ else
+ global_ = .true.
+ end if
ix = ione
ijx = ione
@@ -122,17 +129,21 @@ function psb_cdot_vect(x, y, desc_a,info) result(res)
res = x%dot(nr,y)
! FIXME
! adjust dot_local because overlapped elements are computed more than once
-!!$ do i=1,size(desc_a%ovrlap_elem,1)
-!!$ idx = desc_a%ovrlap_elem(i,1)
-!!$ ndm = desc_a%ovrlap_elem(i,2)
-!!$ dot_local = dot_local - (real(ndm-1)/real(ndm))*(x(idx)*y(idx))
-!!$ end do
+ if (size(desc_a%ovrlap_elem,1)>0) then
+ if (x%is_dev()) call x%sync()
+ if (y%is_dev()) call y%sync()
+ do i=1,size(desc_a%ovrlap_elem,1)
+ idx = desc_a%ovrlap_elem(i,1)
+ ndm = desc_a%ovrlap_elem(i,2)
+ res = res - (real(ndm-1)/real(ndm))*(x%v%v(idx)*y%v%v(idx))
+ end do
+ end if
else
res = czero
end if
! compute global sum
- call psb_sum(ictxt, res)
+ if (global_) call psb_sum(ictxt, res)
call psb_erractionrestore(err_act)
return
@@ -143,7 +154,7 @@ function psb_cdot_vect(x, y, desc_a,info) result(res)
end function psb_cdot_vect
-function psb_cdot(x, y,desc_a, info, jx, jy) result(res)
+function psb_cdot(x, y,desc_a, info, jx, jy,global) result(res)
use psb_base_mod, psb_protect_name => psb_cdot
implicit none
@@ -152,12 +163,14 @@ function psb_cdot(x, y,desc_a, info, jx, jy) result(res)
integer(psb_ipk_), intent(in), optional :: jx, jy
integer(psb_ipk_), intent(out) :: info
complex(psb_spk_) :: res
+ logical, intent(in), optional :: global
! locals
integer(psb_ipk_) :: ictxt, np, me, idx, ndm,&
& err_act, iix, jjx, ix, ijx, iy, ijy, iiy, jjy, i, m, nr, &
& lldx, lldy
complex(psb_spk_) :: cdotc
+ logical :: global_
character(len=20) :: name, ch_err
name='psb_cdot'
@@ -193,6 +206,12 @@ function psb_cdot(x, y,desc_a, info, jx, jy) result(res)
goto 9999
end if
+ if (present(global)) then
+ global_ = global
+ else
+ global_ = .true.
+ end if
+
m = desc_a%get_global_rows()
lldx = size(x,1)
lldy = size(y,1)
@@ -228,7 +247,7 @@ function psb_cdot(x, y,desc_a, info, jx, jy) result(res)
end if
! compute global sum
- call psb_sum(ictxt, res)
+ if (global_) call psb_sum(ictxt, res)
call psb_erractionrestore(err_act)
return
@@ -284,7 +303,7 @@ end function psb_cdot
! desc_a - type(psb_desc_type). The communication descriptor.
! info - integer. Return code
!
-function psb_cdotv(x, y,desc_a, info) result(res)
+function psb_cdotv(x, y,desc_a, info,global) result(res)
use psb_base_mod, psb_protect_name => psb_cdotv
implicit none
@@ -292,11 +311,13 @@ function psb_cdotv(x, y,desc_a, info) result(res)
type(psb_desc_type), intent(in) :: desc_a
integer(psb_ipk_), intent(out) :: info
complex(psb_spk_) :: res
+ logical, intent(in), optional :: global
! locals
integer(psb_ipk_) :: ictxt, np, me, idx, ndm,&
& err_act, iix, jjx, ix, jx, iy, jy, iiy, jjy, i, m, nr, &
& lldx, lldy
+ logical :: global_
complex(psb_spk_) :: cdotc
character(len=20) :: name, ch_err
@@ -314,6 +335,12 @@ function psb_cdotv(x, y,desc_a, info) result(res)
goto 9999
endif
+ if (present(global)) then
+ global_ = global
+ else
+ global_ = .true.
+ end if
+
ix = ione
iy = ione
jx = ione
@@ -352,7 +379,7 @@ function psb_cdotv(x, y,desc_a, info) result(res)
end if
! compute global sum
- call psb_sum(ictxt, res)
+ if (global_) call psb_sum(ictxt, res)
call psb_erractionrestore(err_act)
@@ -409,7 +436,7 @@ end function psb_cdotv
! desc_a - type(psb_desc_type). The communication descriptor.
! info - integer. Return code
!
-subroutine psb_cdotvs(res, x, y,desc_a, info)
+subroutine psb_cdotvs(res, x, y,desc_a, info,global)
use psb_base_mod, psb_protect_name => psb_cdotvs
implicit none
@@ -417,11 +444,13 @@ subroutine psb_cdotvs(res, x, y,desc_a, info)
complex(psb_spk_), intent(out) :: res
type(psb_desc_type), intent(in) :: desc_a
integer(psb_ipk_), intent(out) :: info
+ logical, intent(in), optional :: global
! locals
integer(psb_ipk_) :: ictxt, np, me, idx, ndm,&
& err_act, iix, jjx, ix, iy, iiy, jjy, i, m,nr, &
& lldx, lldy
+ logical :: global_
complex(psb_spk_) :: cdotc
character(len=20) :: name, ch_err
@@ -439,6 +468,12 @@ subroutine psb_cdotvs(res, x, y,desc_a, info)
goto 9999
endif
+ if (present(global)) then
+ global_ = global
+ else
+ global_ = .true.
+ end if
+
ix = ione
iy = ione
m = desc_a%get_global_rows()
@@ -475,7 +510,7 @@ subroutine psb_cdotvs(res, x, y,desc_a, info)
end if
! compute global sum
- call psb_sum(ictxt, res)
+ if (global_) call psb_sum(ictxt, res)
call psb_erractionrestore(err_act)
return
@@ -532,7 +567,7 @@ end subroutine psb_cdotvs
! desc_a - type(psb_desc_type). The communication descriptor.
! info - integer. Return code
!
-subroutine psb_cmdots(res, x, y, desc_a, info)
+subroutine psb_cmdots(res, x, y, desc_a, info,global)
use psb_base_mod, psb_protect_name => psb_cmdots
implicit none
@@ -540,11 +575,13 @@ subroutine psb_cmdots(res, x, y, desc_a, info)
complex(psb_spk_), intent(out) :: res(:)
type(psb_desc_type), intent(in) :: desc_a
integer(psb_ipk_), intent(out) :: info
+ logical, intent(in), optional :: global
! locals
integer(psb_ipk_) :: ictxt, np, me, idx, ndm,&
& err_act, iix, jjx, ix, iy, iiy, jjy, i, m, j, k, nr, &
& lldx, lldy
+ logical :: global_
complex(psb_spk_) :: cdotc
character(len=20) :: name, ch_err
@@ -562,6 +599,11 @@ subroutine psb_cmdots(res, x, y, desc_a, info)
goto 9999
endif
+ if (present(global)) then
+ global_ = global
+ else
+ global_ = .true.
+ end if
ix = ione
iy = ione
@@ -611,7 +653,7 @@ subroutine psb_cmdots(res, x, y, desc_a, info)
! compute global sum
- call psb_sum(ictxt, res(1:k))
+ if (global_) call psb_sum(ictxt, res(1:k))
call psb_erractionrestore(err_act)
return
diff --git a/base/psblas/psb_cnrm2.f90 b/base/psblas/psb_cnrm2.f90
index 893e3843..f54db995 100644
--- a/base/psblas/psb_cnrm2.f90
+++ b/base/psblas/psb_cnrm2.f90
@@ -44,7 +44,7 @@
! info - integer. Return code
! jx - integer(optional). The column offset for sub( X ).
!
-function psb_cnrm2(x, desc_a, info, jx) result(res)
+function psb_cnrm2(x, desc_a, info, jx,global) result(res)
use psb_desc_mod
use psb_check_mod
use psb_error_mod
@@ -56,10 +56,12 @@ function psb_cnrm2(x, desc_a, info, jx) result(res)
integer(psb_ipk_), intent(in), optional :: jx
integer(psb_ipk_), intent(out) :: info
real(psb_spk_) :: res
+ logical, intent(in), optional :: global
! locals
integer(psb_ipk_) :: ictxt, np, me,&
& err_act, iix, jjx, ndim, ix, ijx, i, m, id, idx, ndm, ldx
+ logical :: global_
real(psb_spk_) :: scnrm2, dd
character(len=20) :: name, ch_err
@@ -84,6 +86,12 @@ function psb_cnrm2(x, desc_a, info, jx) result(res)
ijx = 1
endif
+ if (present(global)) then
+ global_ = global
+ else
+ global_ = .true.
+ end if
+
m = desc_a%get_global_rows()
ldx = size(x,1)
call psb_chkvect(m,ione,ldx,ix,ijx,desc_a,info,iix,jjx)
@@ -114,7 +122,7 @@ function psb_cnrm2(x, desc_a, info, jx) result(res)
res = szero
end if
- call psb_nrm2(ictxt,res)
+ if (global_) call psb_nrm2(ictxt,res)
call psb_erractionrestore(err_act)
return
@@ -168,7 +176,7 @@ end function psb_cnrm2
! desc_a - type(psb_desc_type). The communication descriptor.
! info - integer. Return code
!
-function psb_cnrm2v(x, desc_a, info) result(res)
+function psb_cnrm2v(x, desc_a, info,global) result(res)
use psb_desc_mod
use psb_check_mod
use psb_error_mod
@@ -179,13 +187,13 @@ function psb_cnrm2v(x, desc_a, info) result(res)
type(psb_desc_type), intent(in) :: desc_a
integer(psb_ipk_), intent(out) :: info
real(psb_spk_) :: res
+ logical, intent(in), optional :: global
! locals
integer(psb_ipk_) :: ictxt, np, me,&
& err_act, iix, jjx, ndim, ix, jx, i, m, id, idx, ndm, ldx
+ logical :: global_
real(psb_spk_) :: scnrm2, dd
-
-!!$ external scombnrm2
character(len=20) :: name, ch_err
name='psb_cnrm2v'
@@ -202,6 +210,11 @@ function psb_cnrm2v(x, desc_a, info) result(res)
goto 9999
endif
+ if (present(global)) then
+ global_ = global
+ else
+ global_ = .true.
+ end if
ix = 1
jx=1
m = desc_a%get_global_rows()
@@ -233,8 +246,7 @@ function psb_cnrm2v(x, desc_a, info) result(res)
res = szero
end if
- call psb_nrm2(ictxt,res)
-
+ if (global_) call psb_nrm2(ictxt,res)
call psb_erractionrestore(err_act)
return
@@ -246,7 +258,7 @@ end function psb_cnrm2v
-function psb_cnrm2_vect(x, desc_a, info) result(res)
+function psb_cnrm2_vect(x, desc_a, info,global) result(res)
use psb_desc_mod
use psb_check_mod
use psb_error_mod
@@ -258,12 +270,13 @@ function psb_cnrm2_vect(x, desc_a, info) result(res)
type(psb_c_vect_type), intent (inout) :: x
type(psb_desc_type), intent(in) :: desc_a
integer(psb_ipk_), intent(out) :: info
+ logical, intent(in), optional :: global
! locals
integer(psb_ipk_) :: ictxt, np, me,&
& err_act, iix, jjx, ndim, ix, jx, i, m, id, idx, ndm, ldx
+ logical :: global_
real(psb_spk_) :: snrm2, dd
-!!$ external dcombnrm2
character(len=20) :: name, ch_err
name='psb_cnrm2v'
@@ -286,6 +299,11 @@ function psb_cnrm2_vect(x, desc_a, info) result(res)
goto 9999
endif
+ if (present(global)) then
+ global_ = global
+ else
+ global_ = .true.
+ end if
ix = 1
jx=1
@@ -307,18 +325,21 @@ function psb_cnrm2_vect(x, desc_a, info) result(res)
if (desc_a%get_local_rows() > 0) then
ndim = desc_a%get_local_rows()
res = x%nrm2(ndim)
-!!$ ! adjust because overlapped elements are computed more than once
-!!$ do i=1,size(desc_a%ovrlap_elem,1)
-!!$ idx = desc_a%ovrlap_elem(i,1)
-!!$ ndm = desc_a%ovrlap_elem(i,2)
-!!$ dd = dble(ndm-1)/dble(ndm)
-!!$ nrm2 = nrm2 * sqrt(done - dd*(abs(x(idx))/nrm2)**2)
-!!$ end do
- else
+ ! adjust because overlapped elements are computed more than once
+ if (size(desc_a%ovrlap_elem,1)>0) then
+ if (x%is_dev()) call x%sync()
+ do i=1,size(desc_a%ovrlap_elem,1)
+ idx = desc_a%ovrlap_elem(i,1)
+ ndm = desc_a%ovrlap_elem(i,2)
+ dd = dble(ndm-1)/dble(ndm)
+ res = res - sqrt(cone - dd*(abs(x%v%v(idx))/res)**2)
+ end do
+ end if
+ else
res = szero
end if
- call psb_nrm2(ictxt,res)
+ if (global_) call psb_nrm2(ictxt,res)
call psb_erractionrestore(err_act)
return
@@ -329,7 +350,6 @@ function psb_cnrm2_vect(x, desc_a, info) result(res)
end function psb_cnrm2_vect
-
!!$
!!$ Parallel Sparse BLAS version 3.5
!!$ (C) Copyright 2006-2018
@@ -373,7 +393,7 @@ end function psb_cnrm2_vect
! desc_a - type(psb_desc_type). The communication descriptor.
! info - integer. Return code
!
-subroutine psb_cnrm2vs(res, x, desc_a, info)
+subroutine psb_cnrm2vs(res, x, desc_a, info,global)
use psb_desc_mod
use psb_check_mod
use psb_error_mod
@@ -384,13 +404,13 @@ subroutine psb_cnrm2vs(res, x, desc_a, info)
real(psb_spk_), intent(out) :: res
type(psb_desc_type), intent(in) :: desc_a
integer(psb_ipk_), intent(out) :: info
+ logical, intent(in), optional :: global
! locals
integer(psb_ipk_) :: ictxt, np, me,&
& err_act, iix, jjx, ndim, ix, jx, i, m, id, idx, ndm, ldx
+ logical :: global_
real(psb_spk_) :: nrm2, scnrm2, dd
-
-!!$ external scombnrm2
character(len=20) :: name, ch_err
name='psb_cnrm2'
@@ -407,6 +427,12 @@ subroutine psb_cnrm2vs(res, x, desc_a, info)
goto 9999
endif
+ if (present(global)) then
+ global_ = global
+ else
+ global_ = .true.
+ end if
+
ix = 1
jx = 1
m = desc_a%get_global_rows()
@@ -439,7 +465,7 @@ subroutine psb_cnrm2vs(res, x, desc_a, info)
res = szero
end if
- call psb_nrm2(ictxt,res)
+ if (global_) call psb_nrm2(ictxt,res)
call psb_erractionrestore(err_act)
diff --git a/base/psblas/psb_cnrmi.f90 b/base/psblas/psb_cnrmi.f90
index fced0cbd..9a89a02a 100644
--- a/base/psblas/psb_cnrmi.f90
+++ b/base/psblas/psb_cnrmi.f90
@@ -41,7 +41,7 @@
! desc_a - type(psb_desc_type). The communication descriptor.
! info - integer. Return code
!
-function psb_cnrmi(a,desc_a,info) result(res)
+function psb_cnrmi(a,desc_a,info,global) result(res)
use psb_base_mod, psb_protect_name => psb_cnrmi
implicit none
@@ -49,10 +49,12 @@ function psb_cnrmi(a,desc_a,info) result(res)
integer(psb_ipk_), intent(out) :: info
type(psb_desc_type), intent(in) :: desc_a
real(psb_spk_) :: res
+ logical, intent(in), optional :: global
! locals
integer(psb_ipk_) :: ictxt, np, me,&
& err_act, n, iia, jja, ia, ja, mdim, ndim, m
+ logical :: global_
character(len=20) :: name, ch_err
name='psb_cnrmi'
@@ -69,6 +71,12 @@ function psb_cnrmi(a,desc_a,info) result(res)
goto 9999
endif
+ if (present(global)) then
+ global_ = global
+ else
+ global_ = .true.
+ end if
+
ia = 1
ja = 1
m = desc_a%get_global_rows()
@@ -101,7 +109,7 @@ function psb_cnrmi(a,desc_a,info) result(res)
end if
! compute global max
- call psb_amx(ictxt, res)
+ if (global_) call psb_amx(ictxt, res)
call psb_erractionrestore(err_act)
return
diff --git a/base/psblas/psb_cspnrm1.f90 b/base/psblas/psb_cspnrm1.f90
index 02a98424..79907295 100644
--- a/base/psblas/psb_cspnrm1.f90
+++ b/base/psblas/psb_cspnrm1.f90
@@ -41,7 +41,7 @@
! desc_a - type(psb_desc_type). The communication descriptor.
! info - integer. Return code
!
-function psb_cspnrm1(a,desc_a,info) result(res)
+function psb_cspnrm1(a,desc_a,info,global) result(res)
use psb_base_mod, psb_protect_name => psb_cspnrm1
implicit none
@@ -49,10 +49,12 @@ function psb_cspnrm1(a,desc_a,info) result(res)
integer(psb_ipk_), intent(out) :: info
type(psb_desc_type), intent(in) :: desc_a
real(psb_spk_) :: res
+ logical, intent(in), optional :: global
! locals
integer(psb_ipk_) :: ictxt, np, me, nr,nc,&
& err_act, n, iia, jja, ia, ja, mdim, ndim, m
+ logical :: global_
character(len=20) :: name, ch_err
real(psb_spk_), allocatable :: v(:)
@@ -70,6 +72,12 @@ function psb_cspnrm1(a,desc_a,info) result(res)
goto 9999
endif
+ if (present(global)) then
+ global_ = global
+ else
+ global_ = .true.
+ end if
+
ia = 1
ja = 1
m = desc_a%get_global_rows()
@@ -119,7 +127,7 @@ function psb_cspnrm1(a,desc_a,info) result(res)
res = szero
end if
! compute global max
- call psb_amx(ictxt, res)
+ if (global_) call psb_amx(ictxt, res)
call psb_erractionrestore(err_act)
return
diff --git a/base/psblas/psb_damax.f90 b/base/psblas/psb_damax.f90
index b04e9646..4307ba08 100644
--- a/base/psblas/psb_damax.f90
+++ b/base/psblas/psb_damax.f90
@@ -44,7 +44,7 @@
! info - integer. Return code
! jx - integer(optional). The column offset.
!
-function psb_damax(x,desc_a, info, jx) result(res)
+function psb_damax(x,desc_a, info, jx,global) result(res)
use psb_base_mod, psb_protect_name => psb_damax
implicit none
@@ -54,10 +54,12 @@ function psb_damax(x,desc_a, info, jx) result(res)
integer(psb_ipk_), intent(out) :: info
integer(psb_ipk_), optional, intent(in) :: jx
real(psb_dpk_) :: res
+ logical, intent(in), optional :: global
! locals
integer(psb_ipk_) :: ictxt, np, me,&
& err_act, iix, jjx, ix, ijx, m, ldx
+ logical :: global_
character(len=20) :: name, ch_err
name='psb_damax'
@@ -82,6 +84,12 @@ function psb_damax(x,desc_a, info, jx) result(res)
ijx = 1
endif
+ if (present(global)) then
+ global_ = global
+ else
+ global_ = .true.
+ end if
+
m = desc_a%get_global_rows()
ldx = size(x,1)
@@ -107,7 +115,7 @@ function psb_damax(x,desc_a, info, jx) result(res)
end if
! compute global max
- call psb_amx(ictxt, res)
+ if (global_) call psb_amx(ictxt, res)
call psb_erractionrestore(err_act)
return
@@ -162,7 +170,7 @@ end function psb_damax
! desc_a - type(psb_desc_type). The communication descriptor.
! info - integer. Return code
!
-function psb_damaxv (x,desc_a, info) result(res)
+function psb_damaxv (x,desc_a, info,global) result(res)
use psb_base_mod, psb_protect_name => psb_damaxv
implicit none
@@ -171,11 +179,12 @@ function psb_damaxv (x,desc_a, info) result(res)
type(psb_desc_type), intent(in) :: desc_a
integer(psb_ipk_), intent(out) :: info
real(psb_dpk_) :: res
+ logical, intent(in), optional :: global
! locals
integer(psb_ipk_) :: ictxt, np, me,&
& err_act, iix, jjx, jx, ix, m, ldx
-
+ logical :: global_
character(len=20) :: name, ch_err
name='psb_damaxv'
@@ -193,6 +202,12 @@ function psb_damaxv (x,desc_a, info) result(res)
goto 9999
endif
+ if (present(global)) then
+ global_ = global
+ else
+ global_ = .true.
+ end if
+
ix = 1
jx = 1
@@ -221,7 +236,7 @@ function psb_damaxv (x,desc_a, info) result(res)
end if
! compute global max
- call psb_amx(ictxt, res)
+ if (global_) call psb_amx(ictxt, res)
call psb_erractionrestore(err_act)
return
@@ -232,7 +247,7 @@ function psb_damaxv (x,desc_a, info) result(res)
end function psb_damaxv
-function psb_damax_vect(x, desc_a, info) result(res)
+function psb_damax_vect(x, desc_a, info,global) result(res)
use psb_penv_mod
use psb_serial_mod
use psb_desc_mod
@@ -245,10 +260,12 @@ function psb_damax_vect(x, desc_a, info) result(res)
type(psb_d_vect_type), intent (inout) :: x
type(psb_desc_type), intent (in) :: desc_a
integer(psb_ipk_), intent(out) :: info
+ logical, intent(in), optional :: global
! locals
integer(psb_ipk_) :: ictxt, np, me,&
& err_act, iix, jjx, jx, ix, m
+ logical :: global_
character(len=20) :: name, ch_err
name='psb_damaxv'
@@ -271,6 +288,12 @@ function psb_damax_vect(x, desc_a, info) result(res)
goto 9999
endif
+ if (present(global)) then
+ global_ = global
+ else
+ global_ = .true.
+ end if
+
ix = 1
jx = 1
@@ -297,7 +320,7 @@ function psb_damax_vect(x, desc_a, info) result(res)
end if
! compute global max
- call psb_amx(ictxt, res)
+ if (global_) call psb_amx(ictxt, res)
call psb_erractionrestore(err_act)
return
@@ -355,7 +378,7 @@ end function psb_damax_vect
! info - integer. Return code
! jx - integer(optional). The column offset.
!
-subroutine psb_damaxvs(res,x,desc_a, info)
+subroutine psb_damaxvs(res,x,desc_a, info,global)
use psb_base_mod, psb_protect_name => psb_damaxvs
implicit none
@@ -364,10 +387,12 @@ subroutine psb_damaxvs(res,x,desc_a, info)
type(psb_desc_type), intent(in) :: desc_a
integer(psb_ipk_), intent(out) :: info
real(psb_dpk_), intent(out) :: res
+ logical, intent(in), optional :: global
! locals
integer(psb_ipk_) :: ictxt, np, me,&
& err_act, iix, jjx, ix, ijx, m, ldx
+ logical :: global_
character(len=20) :: name, ch_err
name='psb_damaxvs'
@@ -385,6 +410,12 @@ subroutine psb_damaxvs(res,x,desc_a, info)
goto 9999
endif
+ if (present(global)) then
+ global_ = global
+ else
+ global_ = .true.
+ end if
+
ix = 1
ijx=1
@@ -412,7 +443,7 @@ subroutine psb_damaxvs(res,x,desc_a, info)
end if
! compute global max
- call psb_amx(ictxt, res)
+ if (global_) call psb_amx(ictxt, res)
call psb_erractionrestore(err_act)
return
@@ -466,7 +497,7 @@ end subroutine psb_damaxvs
! desc_a - type(psb_desc_type). The communication descriptor.
! info - integer. Return code
!
-subroutine psb_dmamaxs(res,x,desc_a, info,jx)
+subroutine psb_dmamaxs(res,x,desc_a, info,jx,global)
use psb_base_mod, psb_protect_name => psb_dmamaxs
implicit none
@@ -476,10 +507,12 @@ subroutine psb_dmamaxs(res,x,desc_a, info,jx)
integer(psb_ipk_), intent(out) :: info
integer(psb_ipk_), optional, intent(in) :: jx
real(psb_dpk_), intent(out) :: res(:)
+ logical, intent(in), optional :: global
! locals
integer(psb_ipk_) :: ictxt, np, me,&
& err_act, iix, jjx, ix, ijx, m, ldx, i, k
+ logical :: global_
character(len=20) :: name, ch_err
name='psb_dmamaxs'
@@ -503,6 +536,12 @@ subroutine psb_dmamaxs(res,x,desc_a, info,jx)
ijx = 1
endif
+ if (present(global)) then
+ global_ = global
+ else
+ global_ = .true.
+ end if
+
m = desc_a%get_global_rows()
k = min(size(x,2),size(res,1))
ldx = size(x,1)
@@ -529,7 +568,7 @@ subroutine psb_dmamaxs(res,x,desc_a, info,jx)
end if
! compute global max
- call psb_amx(ictxt, res(1:k))
+ if (global_) call psb_amx(ictxt, res(1:k))
call psb_erractionrestore(err_act)
return
diff --git a/base/psblas/psb_dasum.f90 b/base/psblas/psb_dasum.f90
index 4871c29f..654df8ef 100644
--- a/base/psblas/psb_dasum.f90
+++ b/base/psblas/psb_dasum.f90
@@ -44,7 +44,7 @@
! info - integer. Return code
! jx - integer(optional). The column offset.
!
-function psb_dasum (x,desc_a, info, jx) result(res)
+function psb_dasum (x,desc_a, info, jx,global) result(res)
use psb_base_mod, psb_protect_name => psb_dasum
implicit none
@@ -54,10 +54,12 @@ function psb_dasum (x,desc_a, info, jx) result(res)
integer(psb_ipk_), intent(out) :: info
integer(psb_ipk_), optional, intent(in) :: jx
real(psb_dpk_) :: res
+ logical, intent(in), optional :: global
! locals
integer(psb_ipk_) :: ictxt, np, me, &
& err_act, iix, jjx, ix, ijx, m, i, idx, ndm, ldx
+ logical :: global_
character(len=20) :: name, ch_err
name='psb_dasum'
@@ -82,6 +84,12 @@ function psb_dasum (x,desc_a, info, jx) result(res)
ijx = 1
endif
+ if (present(global)) then
+ global_ = global
+ else
+ global_ = .true.
+ end if
+
m = desc_a%get_global_rows()
ldx = size(x,1)
! check vector correctness
@@ -114,7 +122,7 @@ function psb_dasum (x,desc_a, info, jx) result(res)
res = dzero
end if
! compute global sum
- call psb_sum(ictxt, res)
+ if (global_) call psb_sum(ictxt, res)
call psb_erractionrestore(err_act)
return
@@ -125,7 +133,7 @@ function psb_dasum (x,desc_a, info, jx) result(res)
end function psb_dasum
-function psb_dasum_vect(x, desc_a, info) result(res)
+function psb_dasum_vect(x, desc_a, info,global) result(res)
use psb_base_mod, psb_protect_name => psb_dasum_vect
implicit none
@@ -133,10 +141,12 @@ function psb_dasum_vect(x, desc_a, info) result(res)
type(psb_d_vect_type), intent (inout) :: x
type(psb_desc_type), intent (in) :: desc_a
integer(psb_ipk_), intent(out) :: info
+ logical, intent(in), optional :: global
! locals
integer(psb_ipk_) :: ictxt, np, me,&
- & err_act, iix, jjx, jx, ix, m, imax
+ & err_act, iix, jjx, jx, ix, m, imax, i, idx, ndm
+ logical :: global_
character(len=20) :: name, ch_err
name='psb_dasumv'
@@ -160,6 +170,11 @@ function psb_dasum_vect(x, desc_a, info) result(res)
goto 9999
endif
+ if (present(global)) then
+ global_ = global
+ else
+ global_ = .true.
+ end if
ix = 1
jx = 1
@@ -182,12 +197,21 @@ function psb_dasum_vect(x, desc_a, info) result(res)
! compute local max
if ((desc_a%get_local_rows() > 0).and.(m /= 0)) then
res = x%asum(desc_a%get_local_rows())
+ if (size(desc_a%ovrlap_elem,1)>0) then
+ if (x%is_dev()) call x%sync()
+ ! adjust res because overlapped elements are computed more than once
+ do i=1,size(desc_a%ovrlap_elem,1)
+ idx = desc_a%ovrlap_elem(i,1)
+ ndm = desc_a%ovrlap_elem(i,2)
+ res = res - (real(ndm-1)/real(ndm))*abs(x%v%v(idx))
+ end do
+ end if
else
res = dzero
end if
! compute global sum
- call psb_sum(ictxt, res)
+ if (global_) call psb_sum(ictxt, res)
call psb_erractionrestore(err_act)
return
@@ -242,7 +266,7 @@ end function psb_dasum_vect
! desc_a - type(psb_desc_type). The communication descriptor.
! info - integer. Return code
!
-function psb_dasumv(x,desc_a, info) result(res)
+function psb_dasumv(x,desc_a, info,global) result(res)
use psb_base_mod, psb_protect_name => psb_dasumv
implicit none
@@ -251,10 +275,12 @@ function psb_dasumv(x,desc_a, info) result(res)
type(psb_desc_type), intent(in) :: desc_a
integer(psb_ipk_), intent(out) :: info
real(psb_dpk_) :: res
+ logical, intent(in), optional :: global
! locals
integer(psb_ipk_) :: ictxt, np, me,&
& err_act, iix, jjx, jx, ix, m, i, idx, ndm, ldx
+ logical :: global_
character(len=20) :: name, ch_err
name='psb_dasumv'
@@ -271,6 +297,12 @@ function psb_dasumv(x,desc_a, info) result(res)
goto 9999
endif
+ if (present(global)) then
+ global_ = global
+ else
+ global_ = .true.
+ end if
+
ix = 1
jx=1
@@ -307,7 +339,7 @@ function psb_dasumv(x,desc_a, info) result(res)
end if
! compute global sum
- call psb_sum(ictxt, res)
+ if (global_) call psb_sum(ictxt, res)
call psb_erractionrestore(err_act)
return
@@ -362,7 +394,7 @@ end function psb_dasumv
! info - integer. Return code
! jx - integer(optional). The column offset.
!
-subroutine psb_dasumvs(res,x,desc_a, info)
+subroutine psb_dasumvs(res,x,desc_a, info,global)
use psb_base_mod, psb_protect_name => psb_dasumvs
implicit none
@@ -371,10 +403,12 @@ subroutine psb_dasumvs(res,x,desc_a, info)
real(psb_dpk_), intent(out) :: res
type(psb_desc_type), intent(in) :: desc_a
integer(psb_ipk_), intent(out) :: info
+ logical, intent(in), optional :: global
! locals
integer(psb_ipk_) :: ictxt, np, me,&
& err_act, iix, jjx, ix, jx, m, i, idx, ndm, ldx
+ logical :: global_
character(len=20) :: name, ch_err
name='psb_dasumvs'
@@ -391,6 +425,12 @@ subroutine psb_dasumvs(res,x,desc_a, info)
goto 9999
endif
+ if (present(global)) then
+ global_ = global
+ else
+ global_ = .true.
+ end if
+
ix = 1
jx = 1
@@ -427,7 +467,7 @@ subroutine psb_dasumvs(res,x,desc_a, info)
end if
! compute global sum
- call psb_sum(ictxt,res)
+ if (global_) call psb_sum(ictxt,res)
call psb_erractionrestore(err_act)
return
diff --git a/base/psblas/psb_ddot.f90 b/base/psblas/psb_ddot.f90
index 2a2b00f3..a679003f 100644
--- a/base/psblas/psb_ddot.f90
+++ b/base/psblas/psb_ddot.f90
@@ -48,7 +48,7 @@
! jx - integer(optional). The column offset for sub( X ).
! jy - integer(optional). The column offset for sub( Y ).
!
-function psb_ddot_vect(x, y, desc_a,info) result(res)
+function psb_ddot_vect(x, y, desc_a,info,global) result(res)
use psb_desc_mod
use psb_d_base_mat_mod
use psb_check_mod
@@ -61,10 +61,12 @@ function psb_ddot_vect(x, y, desc_a,info) result(res)
type(psb_d_vect_type), intent(inout) :: x, y
type(psb_desc_type), intent(in) :: desc_a
integer(psb_ipk_), intent(out) :: info
+ logical, intent(in), optional :: global
! locals
integer(psb_ipk_) :: ictxt, np, me, idx, ndm,&
& err_act, iix, jjx, ix, ijx, iy, ijy, iiy, jjy, i, m, nr
+ logical :: global_
character(len=20) :: name, ch_err
name='psb_ddot_vect'
@@ -91,6 +93,11 @@ function psb_ddot_vect(x, y, desc_a,info) result(res)
goto 9999
endif
+ if (present(global)) then
+ global_ = global
+ else
+ global_ = .true.
+ end if
ix = ione
ijx = ione
@@ -122,17 +129,21 @@ function psb_ddot_vect(x, y, desc_a,info) result(res)
res = x%dot(nr,y)
! FIXME
! adjust dot_local because overlapped elements are computed more than once
-!!$ do i=1,size(desc_a%ovrlap_elem,1)
-!!$ idx = desc_a%ovrlap_elem(i,1)
-!!$ ndm = desc_a%ovrlap_elem(i,2)
-!!$ dot_local = dot_local - (real(ndm-1)/real(ndm))*(x(idx)*y(idx))
-!!$ end do
+ if (size(desc_a%ovrlap_elem,1)>0) then
+ if (x%is_dev()) call x%sync()
+ if (y%is_dev()) call y%sync()
+ do i=1,size(desc_a%ovrlap_elem,1)
+ idx = desc_a%ovrlap_elem(i,1)
+ ndm = desc_a%ovrlap_elem(i,2)
+ res = res - (real(ndm-1)/real(ndm))*(x%v%v(idx)*y%v%v(idx))
+ end do
+ end if
else
res = dzero
end if
! compute global sum
- call psb_sum(ictxt, res)
+ if (global_) call psb_sum(ictxt, res)
call psb_erractionrestore(err_act)
return
@@ -143,7 +154,7 @@ function psb_ddot_vect(x, y, desc_a,info) result(res)
end function psb_ddot_vect
-function psb_ddot(x, y,desc_a, info, jx, jy) result(res)
+function psb_ddot(x, y,desc_a, info, jx, jy,global) result(res)
use psb_base_mod, psb_protect_name => psb_ddot
implicit none
@@ -152,12 +163,14 @@ function psb_ddot(x, y,desc_a, info, jx, jy) result(res)
integer(psb_ipk_), intent(in), optional :: jx, jy
integer(psb_ipk_), intent(out) :: info
real(psb_dpk_) :: res
+ logical, intent(in), optional :: global
! locals
integer(psb_ipk_) :: ictxt, np, me, idx, ndm,&
& err_act, iix, jjx, ix, ijx, iy, ijy, iiy, jjy, i, m, nr, &
& lldx, lldy
real(psb_dpk_) :: ddot
+ logical :: global_
character(len=20) :: name, ch_err
name='psb_ddot'
@@ -193,6 +206,12 @@ function psb_ddot(x, y,desc_a, info, jx, jy) result(res)
goto 9999
end if
+ if (present(global)) then
+ global_ = global
+ else
+ global_ = .true.
+ end if
+
m = desc_a%get_global_rows()
lldx = size(x,1)
lldy = size(y,1)
@@ -228,7 +247,7 @@ function psb_ddot(x, y,desc_a, info, jx, jy) result(res)
end if
! compute global sum
- call psb_sum(ictxt, res)
+ if (global_) call psb_sum(ictxt, res)
call psb_erractionrestore(err_act)
return
@@ -284,7 +303,7 @@ end function psb_ddot
! desc_a - type(psb_desc_type). The communication descriptor.
! info - integer. Return code
!
-function psb_ddotv(x, y,desc_a, info) result(res)
+function psb_ddotv(x, y,desc_a, info,global) result(res)
use psb_base_mod, psb_protect_name => psb_ddotv
implicit none
@@ -292,11 +311,13 @@ function psb_ddotv(x, y,desc_a, info) result(res)
type(psb_desc_type), intent(in) :: desc_a
integer(psb_ipk_), intent(out) :: info
real(psb_dpk_) :: res
+ logical, intent(in), optional :: global
! locals
integer(psb_ipk_) :: ictxt, np, me, idx, ndm,&
& err_act, iix, jjx, ix, jx, iy, jy, iiy, jjy, i, m, nr, &
& lldx, lldy
+ logical :: global_
real(psb_dpk_) :: ddot
character(len=20) :: name, ch_err
@@ -314,6 +335,12 @@ function psb_ddotv(x, y,desc_a, info) result(res)
goto 9999
endif
+ if (present(global)) then
+ global_ = global
+ else
+ global_ = .true.
+ end if
+
ix = ione
iy = ione
jx = ione
@@ -352,7 +379,7 @@ function psb_ddotv(x, y,desc_a, info) result(res)
end if
! compute global sum
- call psb_sum(ictxt, res)
+ if (global_) call psb_sum(ictxt, res)
call psb_erractionrestore(err_act)
@@ -409,7 +436,7 @@ end function psb_ddotv
! desc_a - type(psb_desc_type). The communication descriptor.
! info - integer. Return code
!
-subroutine psb_ddotvs(res, x, y,desc_a, info)
+subroutine psb_ddotvs(res, x, y,desc_a, info,global)
use psb_base_mod, psb_protect_name => psb_ddotvs
implicit none
@@ -417,11 +444,13 @@ subroutine psb_ddotvs(res, x, y,desc_a, info)
real(psb_dpk_), intent(out) :: res
type(psb_desc_type), intent(in) :: desc_a
integer(psb_ipk_), intent(out) :: info
+ logical, intent(in), optional :: global
! locals
integer(psb_ipk_) :: ictxt, np, me, idx, ndm,&
& err_act, iix, jjx, ix, iy, iiy, jjy, i, m,nr, &
& lldx, lldy
+ logical :: global_
real(psb_dpk_) :: ddot
character(len=20) :: name, ch_err
@@ -439,6 +468,12 @@ subroutine psb_ddotvs(res, x, y,desc_a, info)
goto 9999
endif
+ if (present(global)) then
+ global_ = global
+ else
+ global_ = .true.
+ end if
+
ix = ione
iy = ione
m = desc_a%get_global_rows()
@@ -475,7 +510,7 @@ subroutine psb_ddotvs(res, x, y,desc_a, info)
end if
! compute global sum
- call psb_sum(ictxt, res)
+ if (global_) call psb_sum(ictxt, res)
call psb_erractionrestore(err_act)
return
@@ -532,7 +567,7 @@ end subroutine psb_ddotvs
! desc_a - type(psb_desc_type). The communication descriptor.
! info - integer. Return code
!
-subroutine psb_dmdots(res, x, y, desc_a, info)
+subroutine psb_dmdots(res, x, y, desc_a, info,global)
use psb_base_mod, psb_protect_name => psb_dmdots
implicit none
@@ -540,11 +575,13 @@ subroutine psb_dmdots(res, x, y, desc_a, info)
real(psb_dpk_), intent(out) :: res(:)
type(psb_desc_type), intent(in) :: desc_a
integer(psb_ipk_), intent(out) :: info
+ logical, intent(in), optional :: global
! locals
integer(psb_ipk_) :: ictxt, np, me, idx, ndm,&
& err_act, iix, jjx, ix, iy, iiy, jjy, i, m, j, k, nr, &
& lldx, lldy
+ logical :: global_
real(psb_dpk_) :: ddot
character(len=20) :: name, ch_err
@@ -562,6 +599,11 @@ subroutine psb_dmdots(res, x, y, desc_a, info)
goto 9999
endif
+ if (present(global)) then
+ global_ = global
+ else
+ global_ = .true.
+ end if
ix = ione
iy = ione
@@ -611,7 +653,7 @@ subroutine psb_dmdots(res, x, y, desc_a, info)
! compute global sum
- call psb_sum(ictxt, res(1:k))
+ if (global_) call psb_sum(ictxt, res(1:k))
call psb_erractionrestore(err_act)
return
diff --git a/base/psblas/psb_dnrm2.f90 b/base/psblas/psb_dnrm2.f90
index 14e83d00..66eeca93 100644
--- a/base/psblas/psb_dnrm2.f90
+++ b/base/psblas/psb_dnrm2.f90
@@ -44,7 +44,7 @@
! info - integer. Return code
! jx - integer(optional). The column offset for sub( X ).
!
-function psb_dnrm2(x, desc_a, info, jx) result(res)
+function psb_dnrm2(x, desc_a, info, jx,global) result(res)
use psb_desc_mod
use psb_check_mod
use psb_error_mod
@@ -56,10 +56,12 @@ function psb_dnrm2(x, desc_a, info, jx) result(res)
integer(psb_ipk_), intent(in), optional :: jx
integer(psb_ipk_), intent(out) :: info
real(psb_dpk_) :: res
+ logical, intent(in), optional :: global
! locals
integer(psb_ipk_) :: ictxt, np, me,&
& err_act, iix, jjx, ndim, ix, ijx, i, m, id, idx, ndm, ldx
+ logical :: global_
real(psb_dpk_) :: dnrm2, dd
character(len=20) :: name, ch_err
@@ -84,6 +86,12 @@ function psb_dnrm2(x, desc_a, info, jx) result(res)
ijx = 1
endif
+ if (present(global)) then
+ global_ = global
+ else
+ global_ = .true.
+ end if
+
m = desc_a%get_global_rows()
ldx = size(x,1)
call psb_chkvect(m,ione,ldx,ix,ijx,desc_a,info,iix,jjx)
@@ -114,7 +122,7 @@ function psb_dnrm2(x, desc_a, info, jx) result(res)
res = dzero
end if
- call psb_nrm2(ictxt,res)
+ if (global_) call psb_nrm2(ictxt,res)
call psb_erractionrestore(err_act)
return
@@ -168,7 +176,7 @@ end function psb_dnrm2
! desc_a - type(psb_desc_type). The communication descriptor.
! info - integer. Return code
!
-function psb_dnrm2v(x, desc_a, info) result(res)
+function psb_dnrm2v(x, desc_a, info,global) result(res)
use psb_desc_mod
use psb_check_mod
use psb_error_mod
@@ -179,13 +187,13 @@ function psb_dnrm2v(x, desc_a, info) result(res)
type(psb_desc_type), intent(in) :: desc_a
integer(psb_ipk_), intent(out) :: info
real(psb_dpk_) :: res
+ logical, intent(in), optional :: global
! locals
integer(psb_ipk_) :: ictxt, np, me,&
& err_act, iix, jjx, ndim, ix, jx, i, m, id, idx, ndm, ldx
+ logical :: global_
real(psb_dpk_) :: dnrm2, dd
-
-!!$ external scombnrm2
character(len=20) :: name, ch_err
name='psb_dnrm2v'
@@ -202,6 +210,11 @@ function psb_dnrm2v(x, desc_a, info) result(res)
goto 9999
endif
+ if (present(global)) then
+ global_ = global
+ else
+ global_ = .true.
+ end if
ix = 1
jx=1
m = desc_a%get_global_rows()
@@ -233,8 +246,7 @@ function psb_dnrm2v(x, desc_a, info) result(res)
res = dzero
end if
- call psb_nrm2(ictxt,res)
-
+ if (global_) call psb_nrm2(ictxt,res)
call psb_erractionrestore(err_act)
return
@@ -246,7 +258,7 @@ end function psb_dnrm2v
-function psb_dnrm2_vect(x, desc_a, info) result(res)
+function psb_dnrm2_vect(x, desc_a, info,global) result(res)
use psb_desc_mod
use psb_check_mod
use psb_error_mod
@@ -258,12 +270,13 @@ function psb_dnrm2_vect(x, desc_a, info) result(res)
type(psb_d_vect_type), intent (inout) :: x
type(psb_desc_type), intent(in) :: desc_a
integer(psb_ipk_), intent(out) :: info
+ logical, intent(in), optional :: global
! locals
integer(psb_ipk_) :: ictxt, np, me,&
& err_act, iix, jjx, ndim, ix, jx, i, m, id, idx, ndm, ldx
+ logical :: global_
real(psb_dpk_) :: snrm2, dd
-!!$ external dcombnrm2
character(len=20) :: name, ch_err
name='psb_dnrm2v'
@@ -286,6 +299,11 @@ function psb_dnrm2_vect(x, desc_a, info) result(res)
goto 9999
endif
+ if (present(global)) then
+ global_ = global
+ else
+ global_ = .true.
+ end if
ix = 1
jx=1
@@ -307,18 +325,21 @@ function psb_dnrm2_vect(x, desc_a, info) result(res)
if (desc_a%get_local_rows() > 0) then
ndim = desc_a%get_local_rows()
res = x%nrm2(ndim)
-!!$ ! adjust because overlapped elements are computed more than once
-!!$ do i=1,size(desc_a%ovrlap_elem,1)
-!!$ idx = desc_a%ovrlap_elem(i,1)
-!!$ ndm = desc_a%ovrlap_elem(i,2)
-!!$ dd = dble(ndm-1)/dble(ndm)
-!!$ nrm2 = nrm2 * sqrt(done - dd*(abs(x(idx))/nrm2)**2)
-!!$ end do
- else
+ ! adjust because overlapped elements are computed more than once
+ if (size(desc_a%ovrlap_elem,1)>0) then
+ if (x%is_dev()) call x%sync()
+ do i=1,size(desc_a%ovrlap_elem,1)
+ idx = desc_a%ovrlap_elem(i,1)
+ ndm = desc_a%ovrlap_elem(i,2)
+ dd = dble(ndm-1)/dble(ndm)
+ res = res - sqrt(done - dd*(abs(x%v%v(idx))/res)**2)
+ end do
+ end if
+ else
res = dzero
end if
- call psb_nrm2(ictxt,res)
+ if (global_) call psb_nrm2(ictxt,res)
call psb_erractionrestore(err_act)
return
@@ -329,7 +350,6 @@ function psb_dnrm2_vect(x, desc_a, info) result(res)
end function psb_dnrm2_vect
-
!!$
!!$ Parallel Sparse BLAS version 3.5
!!$ (C) Copyright 2006-2018
@@ -373,7 +393,7 @@ end function psb_dnrm2_vect
! desc_a - type(psb_desc_type). The communication descriptor.
! info - integer. Return code
!
-subroutine psb_dnrm2vs(res, x, desc_a, info)
+subroutine psb_dnrm2vs(res, x, desc_a, info,global)
use psb_desc_mod
use psb_check_mod
use psb_error_mod
@@ -384,13 +404,13 @@ subroutine psb_dnrm2vs(res, x, desc_a, info)
real(psb_dpk_), intent(out) :: res
type(psb_desc_type), intent(in) :: desc_a
integer(psb_ipk_), intent(out) :: info
+ logical, intent(in), optional :: global
! locals
integer(psb_ipk_) :: ictxt, np, me,&
& err_act, iix, jjx, ndim, ix, jx, i, m, id, idx, ndm, ldx
+ logical :: global_
real(psb_dpk_) :: nrm2, dnrm2, dd
-
-!!$ external scombnrm2
character(len=20) :: name, ch_err
name='psb_dnrm2'
@@ -407,6 +427,12 @@ subroutine psb_dnrm2vs(res, x, desc_a, info)
goto 9999
endif
+ if (present(global)) then
+ global_ = global
+ else
+ global_ = .true.
+ end if
+
ix = 1
jx = 1
m = desc_a%get_global_rows()
@@ -439,7 +465,7 @@ subroutine psb_dnrm2vs(res, x, desc_a, info)
res = dzero
end if
- call psb_nrm2(ictxt,res)
+ if (global_) call psb_nrm2(ictxt,res)
call psb_erractionrestore(err_act)
diff --git a/base/psblas/psb_dnrmi.f90 b/base/psblas/psb_dnrmi.f90
index 1dca687d..9cb0edfe 100644
--- a/base/psblas/psb_dnrmi.f90
+++ b/base/psblas/psb_dnrmi.f90
@@ -41,7 +41,7 @@
! desc_a - type(psb_desc_type). The communication descriptor.
! info - integer. Return code
!
-function psb_dnrmi(a,desc_a,info) result(res)
+function psb_dnrmi(a,desc_a,info,global) result(res)
use psb_base_mod, psb_protect_name => psb_dnrmi
implicit none
@@ -49,10 +49,12 @@ function psb_dnrmi(a,desc_a,info) result(res)
integer(psb_ipk_), intent(out) :: info
type(psb_desc_type), intent(in) :: desc_a
real(psb_dpk_) :: res
+ logical, intent(in), optional :: global
! locals
integer(psb_ipk_) :: ictxt, np, me,&
& err_act, n, iia, jja, ia, ja, mdim, ndim, m
+ logical :: global_
character(len=20) :: name, ch_err
name='psb_dnrmi'
@@ -69,6 +71,12 @@ function psb_dnrmi(a,desc_a,info) result(res)
goto 9999
endif
+ if (present(global)) then
+ global_ = global
+ else
+ global_ = .true.
+ end if
+
ia = 1
ja = 1
m = desc_a%get_global_rows()
@@ -101,7 +109,7 @@ function psb_dnrmi(a,desc_a,info) result(res)
end if
! compute global max
- call psb_amx(ictxt, res)
+ if (global_) call psb_amx(ictxt, res)
call psb_erractionrestore(err_act)
return
diff --git a/base/psblas/psb_dspnrm1.f90 b/base/psblas/psb_dspnrm1.f90
index 9afab5e9..dff6a232 100644
--- a/base/psblas/psb_dspnrm1.f90
+++ b/base/psblas/psb_dspnrm1.f90
@@ -41,7 +41,7 @@
! desc_a - type(psb_desc_type). The communication descriptor.
! info - integer. Return code
!
-function psb_dspnrm1(a,desc_a,info) result(res)
+function psb_dspnrm1(a,desc_a,info,global) result(res)
use psb_base_mod, psb_protect_name => psb_dspnrm1
implicit none
@@ -49,10 +49,12 @@ function psb_dspnrm1(a,desc_a,info) result(res)
integer(psb_ipk_), intent(out) :: info
type(psb_desc_type), intent(in) :: desc_a
real(psb_dpk_) :: res
+ logical, intent(in), optional :: global
! locals
integer(psb_ipk_) :: ictxt, np, me, nr,nc,&
& err_act, n, iia, jja, ia, ja, mdim, ndim, m
+ logical :: global_
character(len=20) :: name, ch_err
real(psb_dpk_), allocatable :: v(:)
@@ -70,6 +72,12 @@ function psb_dspnrm1(a,desc_a,info) result(res)
goto 9999
endif
+ if (present(global)) then
+ global_ = global
+ else
+ global_ = .true.
+ end if
+
ia = 1
ja = 1
m = desc_a%get_global_rows()
@@ -119,7 +127,7 @@ function psb_dspnrm1(a,desc_a,info) result(res)
res = dzero
end if
! compute global max
- call psb_amx(ictxt, res)
+ if (global_) call psb_amx(ictxt, res)
call psb_erractionrestore(err_act)
return
diff --git a/base/psblas/psb_samax.f90 b/base/psblas/psb_samax.f90
index 456be8c6..a92ceb91 100644
--- a/base/psblas/psb_samax.f90
+++ b/base/psblas/psb_samax.f90
@@ -44,7 +44,7 @@
! info - integer. Return code
! jx - integer(optional). The column offset.
!
-function psb_samax(x,desc_a, info, jx) result(res)
+function psb_samax(x,desc_a, info, jx,global) result(res)
use psb_base_mod, psb_protect_name => psb_samax
implicit none
@@ -54,10 +54,12 @@ function psb_samax(x,desc_a, info, jx) result(res)
integer(psb_ipk_), intent(out) :: info
integer(psb_ipk_), optional, intent(in) :: jx
real(psb_spk_) :: res
+ logical, intent(in), optional :: global
! locals
integer(psb_ipk_) :: ictxt, np, me,&
& err_act, iix, jjx, ix, ijx, m, ldx
+ logical :: global_
character(len=20) :: name, ch_err
name='psb_samax'
@@ -82,6 +84,12 @@ function psb_samax(x,desc_a, info, jx) result(res)
ijx = 1
endif
+ if (present(global)) then
+ global_ = global
+ else
+ global_ = .true.
+ end if
+
m = desc_a%get_global_rows()
ldx = size(x,1)
@@ -107,7 +115,7 @@ function psb_samax(x,desc_a, info, jx) result(res)
end if
! compute global max
- call psb_amx(ictxt, res)
+ if (global_) call psb_amx(ictxt, res)
call psb_erractionrestore(err_act)
return
@@ -162,7 +170,7 @@ end function psb_samax
! desc_a - type(psb_desc_type). The communication descriptor.
! info - integer. Return code
!
-function psb_samaxv (x,desc_a, info) result(res)
+function psb_samaxv (x,desc_a, info,global) result(res)
use psb_base_mod, psb_protect_name => psb_samaxv
implicit none
@@ -171,11 +179,12 @@ function psb_samaxv (x,desc_a, info) result(res)
type(psb_desc_type), intent(in) :: desc_a
integer(psb_ipk_), intent(out) :: info
real(psb_spk_) :: res
+ logical, intent(in), optional :: global
! locals
integer(psb_ipk_) :: ictxt, np, me,&
& err_act, iix, jjx, jx, ix, m, ldx
-
+ logical :: global_
character(len=20) :: name, ch_err
name='psb_samaxv'
@@ -193,6 +202,12 @@ function psb_samaxv (x,desc_a, info) result(res)
goto 9999
endif
+ if (present(global)) then
+ global_ = global
+ else
+ global_ = .true.
+ end if
+
ix = 1
jx = 1
@@ -221,7 +236,7 @@ function psb_samaxv (x,desc_a, info) result(res)
end if
! compute global max
- call psb_amx(ictxt, res)
+ if (global_) call psb_amx(ictxt, res)
call psb_erractionrestore(err_act)
return
@@ -232,7 +247,7 @@ function psb_samaxv (x,desc_a, info) result(res)
end function psb_samaxv
-function psb_samax_vect(x, desc_a, info) result(res)
+function psb_samax_vect(x, desc_a, info,global) result(res)
use psb_penv_mod
use psb_serial_mod
use psb_desc_mod
@@ -245,10 +260,12 @@ function psb_samax_vect(x, desc_a, info) result(res)
type(psb_s_vect_type), intent (inout) :: x
type(psb_desc_type), intent (in) :: desc_a
integer(psb_ipk_), intent(out) :: info
+ logical, intent(in), optional :: global
! locals
integer(psb_ipk_) :: ictxt, np, me,&
& err_act, iix, jjx, jx, ix, m
+ logical :: global_
character(len=20) :: name, ch_err
name='psb_samaxv'
@@ -271,6 +288,12 @@ function psb_samax_vect(x, desc_a, info) result(res)
goto 9999
endif
+ if (present(global)) then
+ global_ = global
+ else
+ global_ = .true.
+ end if
+
ix = 1
jx = 1
@@ -297,7 +320,7 @@ function psb_samax_vect(x, desc_a, info) result(res)
end if
! compute global max
- call psb_amx(ictxt, res)
+ if (global_) call psb_amx(ictxt, res)
call psb_erractionrestore(err_act)
return
@@ -355,7 +378,7 @@ end function psb_samax_vect
! info - integer. Return code
! jx - integer(optional). The column offset.
!
-subroutine psb_samaxvs(res,x,desc_a, info)
+subroutine psb_samaxvs(res,x,desc_a, info,global)
use psb_base_mod, psb_protect_name => psb_samaxvs
implicit none
@@ -364,10 +387,12 @@ subroutine psb_samaxvs(res,x,desc_a, info)
type(psb_desc_type), intent(in) :: desc_a
integer(psb_ipk_), intent(out) :: info
real(psb_spk_), intent(out) :: res
+ logical, intent(in), optional :: global
! locals
integer(psb_ipk_) :: ictxt, np, me,&
& err_act, iix, jjx, ix, ijx, m, ldx
+ logical :: global_
character(len=20) :: name, ch_err
name='psb_samaxvs'
@@ -385,6 +410,12 @@ subroutine psb_samaxvs(res,x,desc_a, info)
goto 9999
endif
+ if (present(global)) then
+ global_ = global
+ else
+ global_ = .true.
+ end if
+
ix = 1
ijx=1
@@ -412,7 +443,7 @@ subroutine psb_samaxvs(res,x,desc_a, info)
end if
! compute global max
- call psb_amx(ictxt, res)
+ if (global_) call psb_amx(ictxt, res)
call psb_erractionrestore(err_act)
return
@@ -466,7 +497,7 @@ end subroutine psb_samaxvs
! desc_a - type(psb_desc_type). The communication descriptor.
! info - integer. Return code
!
-subroutine psb_smamaxs(res,x,desc_a, info,jx)
+subroutine psb_smamaxs(res,x,desc_a, info,jx,global)
use psb_base_mod, psb_protect_name => psb_smamaxs
implicit none
@@ -476,10 +507,12 @@ subroutine psb_smamaxs(res,x,desc_a, info,jx)
integer(psb_ipk_), intent(out) :: info
integer(psb_ipk_), optional, intent(in) :: jx
real(psb_spk_), intent(out) :: res(:)
+ logical, intent(in), optional :: global
! locals
integer(psb_ipk_) :: ictxt, np, me,&
& err_act, iix, jjx, ix, ijx, m, ldx, i, k
+ logical :: global_
character(len=20) :: name, ch_err
name='psb_smamaxs'
@@ -503,6 +536,12 @@ subroutine psb_smamaxs(res,x,desc_a, info,jx)
ijx = 1
endif
+ if (present(global)) then
+ global_ = global
+ else
+ global_ = .true.
+ end if
+
m = desc_a%get_global_rows()
k = min(size(x,2),size(res,1))
ldx = size(x,1)
@@ -529,7 +568,7 @@ subroutine psb_smamaxs(res,x,desc_a, info,jx)
end if
! compute global max
- call psb_amx(ictxt, res(1:k))
+ if (global_) call psb_amx(ictxt, res(1:k))
call psb_erractionrestore(err_act)
return
diff --git a/base/psblas/psb_sasum.f90 b/base/psblas/psb_sasum.f90
index 10a1b987..e4fe548e 100644
--- a/base/psblas/psb_sasum.f90
+++ b/base/psblas/psb_sasum.f90
@@ -44,7 +44,7 @@
! info - integer. Return code
! jx - integer(optional). The column offset.
!
-function psb_sasum (x,desc_a, info, jx) result(res)
+function psb_sasum (x,desc_a, info, jx,global) result(res)
use psb_base_mod, psb_protect_name => psb_sasum
implicit none
@@ -54,10 +54,12 @@ function psb_sasum (x,desc_a, info, jx) result(res)
integer(psb_ipk_), intent(out) :: info
integer(psb_ipk_), optional, intent(in) :: jx
real(psb_spk_) :: res
+ logical, intent(in), optional :: global
! locals
integer(psb_ipk_) :: ictxt, np, me, &
& err_act, iix, jjx, ix, ijx, m, i, idx, ndm, ldx
+ logical :: global_
character(len=20) :: name, ch_err
name='psb_sasum'
@@ -82,6 +84,12 @@ function psb_sasum (x,desc_a, info, jx) result(res)
ijx = 1
endif
+ if (present(global)) then
+ global_ = global
+ else
+ global_ = .true.
+ end if
+
m = desc_a%get_global_rows()
ldx = size(x,1)
! check vector correctness
@@ -114,7 +122,7 @@ function psb_sasum (x,desc_a, info, jx) result(res)
res = szero
end if
! compute global sum
- call psb_sum(ictxt, res)
+ if (global_) call psb_sum(ictxt, res)
call psb_erractionrestore(err_act)
return
@@ -125,7 +133,7 @@ function psb_sasum (x,desc_a, info, jx) result(res)
end function psb_sasum
-function psb_sasum_vect(x, desc_a, info) result(res)
+function psb_sasum_vect(x, desc_a, info,global) result(res)
use psb_base_mod, psb_protect_name => psb_sasum_vect
implicit none
@@ -133,10 +141,12 @@ function psb_sasum_vect(x, desc_a, info) result(res)
type(psb_s_vect_type), intent (inout) :: x
type(psb_desc_type), intent (in) :: desc_a
integer(psb_ipk_), intent(out) :: info
+ logical, intent(in), optional :: global
! locals
integer(psb_ipk_) :: ictxt, np, me,&
- & err_act, iix, jjx, jx, ix, m, imax
+ & err_act, iix, jjx, jx, ix, m, imax, i, idx, ndm
+ logical :: global_
character(len=20) :: name, ch_err
name='psb_sasumv'
@@ -160,6 +170,11 @@ function psb_sasum_vect(x, desc_a, info) result(res)
goto 9999
endif
+ if (present(global)) then
+ global_ = global
+ else
+ global_ = .true.
+ end if
ix = 1
jx = 1
@@ -182,12 +197,21 @@ function psb_sasum_vect(x, desc_a, info) result(res)
! compute local max
if ((desc_a%get_local_rows() > 0).and.(m /= 0)) then
res = x%asum(desc_a%get_local_rows())
+ if (size(desc_a%ovrlap_elem,1)>0) then
+ if (x%is_dev()) call x%sync()
+ ! adjust res because overlapped elements are computed more than once
+ do i=1,size(desc_a%ovrlap_elem,1)
+ idx = desc_a%ovrlap_elem(i,1)
+ ndm = desc_a%ovrlap_elem(i,2)
+ res = res - (real(ndm-1)/real(ndm))*abs(x%v%v(idx))
+ end do
+ end if
else
res = szero
end if
! compute global sum
- call psb_sum(ictxt, res)
+ if (global_) call psb_sum(ictxt, res)
call psb_erractionrestore(err_act)
return
@@ -242,7 +266,7 @@ end function psb_sasum_vect
! desc_a - type(psb_desc_type). The communication descriptor.
! info - integer. Return code
!
-function psb_sasumv(x,desc_a, info) result(res)
+function psb_sasumv(x,desc_a, info,global) result(res)
use psb_base_mod, psb_protect_name => psb_sasumv
implicit none
@@ -251,10 +275,12 @@ function psb_sasumv(x,desc_a, info) result(res)
type(psb_desc_type), intent(in) :: desc_a
integer(psb_ipk_), intent(out) :: info
real(psb_spk_) :: res
+ logical, intent(in), optional :: global
! locals
integer(psb_ipk_) :: ictxt, np, me,&
& err_act, iix, jjx, jx, ix, m, i, idx, ndm, ldx
+ logical :: global_
character(len=20) :: name, ch_err
name='psb_sasumv'
@@ -271,6 +297,12 @@ function psb_sasumv(x,desc_a, info) result(res)
goto 9999
endif
+ if (present(global)) then
+ global_ = global
+ else
+ global_ = .true.
+ end if
+
ix = 1
jx=1
@@ -307,7 +339,7 @@ function psb_sasumv(x,desc_a, info) result(res)
end if
! compute global sum
- call psb_sum(ictxt, res)
+ if (global_) call psb_sum(ictxt, res)
call psb_erractionrestore(err_act)
return
@@ -362,7 +394,7 @@ end function psb_sasumv
! info - integer. Return code
! jx - integer(optional). The column offset.
!
-subroutine psb_sasumvs(res,x,desc_a, info)
+subroutine psb_sasumvs(res,x,desc_a, info,global)
use psb_base_mod, psb_protect_name => psb_sasumvs
implicit none
@@ -371,10 +403,12 @@ subroutine psb_sasumvs(res,x,desc_a, info)
real(psb_spk_), intent(out) :: res
type(psb_desc_type), intent(in) :: desc_a
integer(psb_ipk_), intent(out) :: info
+ logical, intent(in), optional :: global
! locals
integer(psb_ipk_) :: ictxt, np, me,&
& err_act, iix, jjx, ix, jx, m, i, idx, ndm, ldx
+ logical :: global_
character(len=20) :: name, ch_err
name='psb_sasumvs'
@@ -391,6 +425,12 @@ subroutine psb_sasumvs(res,x,desc_a, info)
goto 9999
endif
+ if (present(global)) then
+ global_ = global
+ else
+ global_ = .true.
+ end if
+
ix = 1
jx = 1
@@ -427,7 +467,7 @@ subroutine psb_sasumvs(res,x,desc_a, info)
end if
! compute global sum
- call psb_sum(ictxt,res)
+ if (global_) call psb_sum(ictxt,res)
call psb_erractionrestore(err_act)
return
diff --git a/base/psblas/psb_sdot.f90 b/base/psblas/psb_sdot.f90
index 86627f07..5afb520d 100644
--- a/base/psblas/psb_sdot.f90
+++ b/base/psblas/psb_sdot.f90
@@ -48,7 +48,7 @@
! jx - integer(optional). The column offset for sub( X ).
! jy - integer(optional). The column offset for sub( Y ).
!
-function psb_sdot_vect(x, y, desc_a,info) result(res)
+function psb_sdot_vect(x, y, desc_a,info,global) result(res)
use psb_desc_mod
use psb_s_base_mat_mod
use psb_check_mod
@@ -61,10 +61,12 @@ function psb_sdot_vect(x, y, desc_a,info) result(res)
type(psb_s_vect_type), intent(inout) :: x, y
type(psb_desc_type), intent(in) :: desc_a
integer(psb_ipk_), intent(out) :: info
+ logical, intent(in), optional :: global
! locals
integer(psb_ipk_) :: ictxt, np, me, idx, ndm,&
& err_act, iix, jjx, ix, ijx, iy, ijy, iiy, jjy, i, m, nr
+ logical :: global_
character(len=20) :: name, ch_err
name='psb_sdot_vect'
@@ -91,6 +93,11 @@ function psb_sdot_vect(x, y, desc_a,info) result(res)
goto 9999
endif
+ if (present(global)) then
+ global_ = global
+ else
+ global_ = .true.
+ end if
ix = ione
ijx = ione
@@ -122,17 +129,21 @@ function psb_sdot_vect(x, y, desc_a,info) result(res)
res = x%dot(nr,y)
! FIXME
! adjust dot_local because overlapped elements are computed more than once
-!!$ do i=1,size(desc_a%ovrlap_elem,1)
-!!$ idx = desc_a%ovrlap_elem(i,1)
-!!$ ndm = desc_a%ovrlap_elem(i,2)
-!!$ dot_local = dot_local - (real(ndm-1)/real(ndm))*(x(idx)*y(idx))
-!!$ end do
+ if (size(desc_a%ovrlap_elem,1)>0) then
+ if (x%is_dev()) call x%sync()
+ if (y%is_dev()) call y%sync()
+ do i=1,size(desc_a%ovrlap_elem,1)
+ idx = desc_a%ovrlap_elem(i,1)
+ ndm = desc_a%ovrlap_elem(i,2)
+ res = res - (real(ndm-1)/real(ndm))*(x%v%v(idx)*y%v%v(idx))
+ end do
+ end if
else
res = szero
end if
! compute global sum
- call psb_sum(ictxt, res)
+ if (global_) call psb_sum(ictxt, res)
call psb_erractionrestore(err_act)
return
@@ -143,7 +154,7 @@ function psb_sdot_vect(x, y, desc_a,info) result(res)
end function psb_sdot_vect
-function psb_sdot(x, y,desc_a, info, jx, jy) result(res)
+function psb_sdot(x, y,desc_a, info, jx, jy,global) result(res)
use psb_base_mod, psb_protect_name => psb_sdot
implicit none
@@ -152,12 +163,14 @@ function psb_sdot(x, y,desc_a, info, jx, jy) result(res)
integer(psb_ipk_), intent(in), optional :: jx, jy
integer(psb_ipk_), intent(out) :: info
real(psb_spk_) :: res
+ logical, intent(in), optional :: global
! locals
integer(psb_ipk_) :: ictxt, np, me, idx, ndm,&
& err_act, iix, jjx, ix, ijx, iy, ijy, iiy, jjy, i, m, nr, &
& lldx, lldy
real(psb_spk_) :: sdot
+ logical :: global_
character(len=20) :: name, ch_err
name='psb_sdot'
@@ -193,6 +206,12 @@ function psb_sdot(x, y,desc_a, info, jx, jy) result(res)
goto 9999
end if
+ if (present(global)) then
+ global_ = global
+ else
+ global_ = .true.
+ end if
+
m = desc_a%get_global_rows()
lldx = size(x,1)
lldy = size(y,1)
@@ -228,7 +247,7 @@ function psb_sdot(x, y,desc_a, info, jx, jy) result(res)
end if
! compute global sum
- call psb_sum(ictxt, res)
+ if (global_) call psb_sum(ictxt, res)
call psb_erractionrestore(err_act)
return
@@ -284,7 +303,7 @@ end function psb_sdot
! desc_a - type(psb_desc_type). The communication descriptor.
! info - integer. Return code
!
-function psb_sdotv(x, y,desc_a, info) result(res)
+function psb_sdotv(x, y,desc_a, info,global) result(res)
use psb_base_mod, psb_protect_name => psb_sdotv
implicit none
@@ -292,11 +311,13 @@ function psb_sdotv(x, y,desc_a, info) result(res)
type(psb_desc_type), intent(in) :: desc_a
integer(psb_ipk_), intent(out) :: info
real(psb_spk_) :: res
+ logical, intent(in), optional :: global
! locals
integer(psb_ipk_) :: ictxt, np, me, idx, ndm,&
& err_act, iix, jjx, ix, jx, iy, jy, iiy, jjy, i, m, nr, &
& lldx, lldy
+ logical :: global_
real(psb_spk_) :: sdot
character(len=20) :: name, ch_err
@@ -314,6 +335,12 @@ function psb_sdotv(x, y,desc_a, info) result(res)
goto 9999
endif
+ if (present(global)) then
+ global_ = global
+ else
+ global_ = .true.
+ end if
+
ix = ione
iy = ione
jx = ione
@@ -352,7 +379,7 @@ function psb_sdotv(x, y,desc_a, info) result(res)
end if
! compute global sum
- call psb_sum(ictxt, res)
+ if (global_) call psb_sum(ictxt, res)
call psb_erractionrestore(err_act)
@@ -409,7 +436,7 @@ end function psb_sdotv
! desc_a - type(psb_desc_type). The communication descriptor.
! info - integer. Return code
!
-subroutine psb_sdotvs(res, x, y,desc_a, info)
+subroutine psb_sdotvs(res, x, y,desc_a, info,global)
use psb_base_mod, psb_protect_name => psb_sdotvs
implicit none
@@ -417,11 +444,13 @@ subroutine psb_sdotvs(res, x, y,desc_a, info)
real(psb_spk_), intent(out) :: res
type(psb_desc_type), intent(in) :: desc_a
integer(psb_ipk_), intent(out) :: info
+ logical, intent(in), optional :: global
! locals
integer(psb_ipk_) :: ictxt, np, me, idx, ndm,&
& err_act, iix, jjx, ix, iy, iiy, jjy, i, m,nr, &
& lldx, lldy
+ logical :: global_
real(psb_spk_) :: sdot
character(len=20) :: name, ch_err
@@ -439,6 +468,12 @@ subroutine psb_sdotvs(res, x, y,desc_a, info)
goto 9999
endif
+ if (present(global)) then
+ global_ = global
+ else
+ global_ = .true.
+ end if
+
ix = ione
iy = ione
m = desc_a%get_global_rows()
@@ -475,7 +510,7 @@ subroutine psb_sdotvs(res, x, y,desc_a, info)
end if
! compute global sum
- call psb_sum(ictxt, res)
+ if (global_) call psb_sum(ictxt, res)
call psb_erractionrestore(err_act)
return
@@ -532,7 +567,7 @@ end subroutine psb_sdotvs
! desc_a - type(psb_desc_type). The communication descriptor.
! info - integer. Return code
!
-subroutine psb_smdots(res, x, y, desc_a, info)
+subroutine psb_smdots(res, x, y, desc_a, info,global)
use psb_base_mod, psb_protect_name => psb_smdots
implicit none
@@ -540,11 +575,13 @@ subroutine psb_smdots(res, x, y, desc_a, info)
real(psb_spk_), intent(out) :: res(:)
type(psb_desc_type), intent(in) :: desc_a
integer(psb_ipk_), intent(out) :: info
+ logical, intent(in), optional :: global
! locals
integer(psb_ipk_) :: ictxt, np, me, idx, ndm,&
& err_act, iix, jjx, ix, iy, iiy, jjy, i, m, j, k, nr, &
& lldx, lldy
+ logical :: global_
real(psb_spk_) :: sdot
character(len=20) :: name, ch_err
@@ -562,6 +599,11 @@ subroutine psb_smdots(res, x, y, desc_a, info)
goto 9999
endif
+ if (present(global)) then
+ global_ = global
+ else
+ global_ = .true.
+ end if
ix = ione
iy = ione
@@ -611,7 +653,7 @@ subroutine psb_smdots(res, x, y, desc_a, info)
! compute global sum
- call psb_sum(ictxt, res(1:k))
+ if (global_) call psb_sum(ictxt, res(1:k))
call psb_erractionrestore(err_act)
return
diff --git a/base/psblas/psb_snrm2.f90 b/base/psblas/psb_snrm2.f90
index f9a35313..f5ef9cb2 100644
--- a/base/psblas/psb_snrm2.f90
+++ b/base/psblas/psb_snrm2.f90
@@ -44,7 +44,7 @@
! info - integer. Return code
! jx - integer(optional). The column offset for sub( X ).
!
-function psb_snrm2(x, desc_a, info, jx) result(res)
+function psb_snrm2(x, desc_a, info, jx,global) result(res)
use psb_desc_mod
use psb_check_mod
use psb_error_mod
@@ -56,10 +56,12 @@ function psb_snrm2(x, desc_a, info, jx) result(res)
integer(psb_ipk_), intent(in), optional :: jx
integer(psb_ipk_), intent(out) :: info
real(psb_spk_) :: res
+ logical, intent(in), optional :: global
! locals
integer(psb_ipk_) :: ictxt, np, me,&
& err_act, iix, jjx, ndim, ix, ijx, i, m, id, idx, ndm, ldx
+ logical :: global_
real(psb_spk_) :: snrm2, dd
character(len=20) :: name, ch_err
@@ -84,6 +86,12 @@ function psb_snrm2(x, desc_a, info, jx) result(res)
ijx = 1
endif
+ if (present(global)) then
+ global_ = global
+ else
+ global_ = .true.
+ end if
+
m = desc_a%get_global_rows()
ldx = size(x,1)
call psb_chkvect(m,ione,ldx,ix,ijx,desc_a,info,iix,jjx)
@@ -114,7 +122,7 @@ function psb_snrm2(x, desc_a, info, jx) result(res)
res = szero
end if
- call psb_nrm2(ictxt,res)
+ if (global_) call psb_nrm2(ictxt,res)
call psb_erractionrestore(err_act)
return
@@ -168,7 +176,7 @@ end function psb_snrm2
! desc_a - type(psb_desc_type). The communication descriptor.
! info - integer. Return code
!
-function psb_snrm2v(x, desc_a, info) result(res)
+function psb_snrm2v(x, desc_a, info,global) result(res)
use psb_desc_mod
use psb_check_mod
use psb_error_mod
@@ -179,13 +187,13 @@ function psb_snrm2v(x, desc_a, info) result(res)
type(psb_desc_type), intent(in) :: desc_a
integer(psb_ipk_), intent(out) :: info
real(psb_spk_) :: res
+ logical, intent(in), optional :: global
! locals
integer(psb_ipk_) :: ictxt, np, me,&
& err_act, iix, jjx, ndim, ix, jx, i, m, id, idx, ndm, ldx
+ logical :: global_
real(psb_spk_) :: snrm2, dd
-
-!!$ external scombnrm2
character(len=20) :: name, ch_err
name='psb_snrm2v'
@@ -202,6 +210,11 @@ function psb_snrm2v(x, desc_a, info) result(res)
goto 9999
endif
+ if (present(global)) then
+ global_ = global
+ else
+ global_ = .true.
+ end if
ix = 1
jx=1
m = desc_a%get_global_rows()
@@ -233,8 +246,7 @@ function psb_snrm2v(x, desc_a, info) result(res)
res = szero
end if
- call psb_nrm2(ictxt,res)
-
+ if (global_) call psb_nrm2(ictxt,res)
call psb_erractionrestore(err_act)
return
@@ -246,7 +258,7 @@ end function psb_snrm2v
-function psb_snrm2_vect(x, desc_a, info) result(res)
+function psb_snrm2_vect(x, desc_a, info,global) result(res)
use psb_desc_mod
use psb_check_mod
use psb_error_mod
@@ -258,12 +270,13 @@ function psb_snrm2_vect(x, desc_a, info) result(res)
type(psb_s_vect_type), intent (inout) :: x
type(psb_desc_type), intent(in) :: desc_a
integer(psb_ipk_), intent(out) :: info
+ logical, intent(in), optional :: global
! locals
integer(psb_ipk_) :: ictxt, np, me,&
& err_act, iix, jjx, ndim, ix, jx, i, m, id, idx, ndm, ldx
+ logical :: global_
real(psb_spk_) :: snrm2, dd
-!!$ external dcombnrm2
character(len=20) :: name, ch_err
name='psb_snrm2v'
@@ -286,6 +299,11 @@ function psb_snrm2_vect(x, desc_a, info) result(res)
goto 9999
endif
+ if (present(global)) then
+ global_ = global
+ else
+ global_ = .true.
+ end if
ix = 1
jx=1
@@ -307,18 +325,21 @@ function psb_snrm2_vect(x, desc_a, info) result(res)
if (desc_a%get_local_rows() > 0) then
ndim = desc_a%get_local_rows()
res = x%nrm2(ndim)
-!!$ ! adjust because overlapped elements are computed more than once
-!!$ do i=1,size(desc_a%ovrlap_elem,1)
-!!$ idx = desc_a%ovrlap_elem(i,1)
-!!$ ndm = desc_a%ovrlap_elem(i,2)
-!!$ dd = dble(ndm-1)/dble(ndm)
-!!$ nrm2 = nrm2 * sqrt(done - dd*(abs(x(idx))/nrm2)**2)
-!!$ end do
- else
+ ! adjust because overlapped elements are computed more than once
+ if (size(desc_a%ovrlap_elem,1)>0) then
+ if (x%is_dev()) call x%sync()
+ do i=1,size(desc_a%ovrlap_elem,1)
+ idx = desc_a%ovrlap_elem(i,1)
+ ndm = desc_a%ovrlap_elem(i,2)
+ dd = dble(ndm-1)/dble(ndm)
+ res = res - sqrt(sone - dd*(abs(x%v%v(idx))/res)**2)
+ end do
+ end if
+ else
res = szero
end if
- call psb_nrm2(ictxt,res)
+ if (global_) call psb_nrm2(ictxt,res)
call psb_erractionrestore(err_act)
return
@@ -329,7 +350,6 @@ function psb_snrm2_vect(x, desc_a, info) result(res)
end function psb_snrm2_vect
-
!!$
!!$ Parallel Sparse BLAS version 3.5
!!$ (C) Copyright 2006-2018
@@ -373,7 +393,7 @@ end function psb_snrm2_vect
! desc_a - type(psb_desc_type). The communication descriptor.
! info - integer. Return code
!
-subroutine psb_snrm2vs(res, x, desc_a, info)
+subroutine psb_snrm2vs(res, x, desc_a, info,global)
use psb_desc_mod
use psb_check_mod
use psb_error_mod
@@ -384,13 +404,13 @@ subroutine psb_snrm2vs(res, x, desc_a, info)
real(psb_spk_), intent(out) :: res
type(psb_desc_type), intent(in) :: desc_a
integer(psb_ipk_), intent(out) :: info
+ logical, intent(in), optional :: global
! locals
integer(psb_ipk_) :: ictxt, np, me,&
& err_act, iix, jjx, ndim, ix, jx, i, m, id, idx, ndm, ldx
+ logical :: global_
real(psb_spk_) :: nrm2, snrm2, dd
-
-!!$ external scombnrm2
character(len=20) :: name, ch_err
name='psb_snrm2'
@@ -407,6 +427,12 @@ subroutine psb_snrm2vs(res, x, desc_a, info)
goto 9999
endif
+ if (present(global)) then
+ global_ = global
+ else
+ global_ = .true.
+ end if
+
ix = 1
jx = 1
m = desc_a%get_global_rows()
@@ -439,7 +465,7 @@ subroutine psb_snrm2vs(res, x, desc_a, info)
res = szero
end if
- call psb_nrm2(ictxt,res)
+ if (global_) call psb_nrm2(ictxt,res)
call psb_erractionrestore(err_act)
diff --git a/base/psblas/psb_snrmi.f90 b/base/psblas/psb_snrmi.f90
index eaeaf127..ecabd400 100644
--- a/base/psblas/psb_snrmi.f90
+++ b/base/psblas/psb_snrmi.f90
@@ -41,7 +41,7 @@
! desc_a - type(psb_desc_type). The communication descriptor.
! info - integer. Return code
!
-function psb_snrmi(a,desc_a,info) result(res)
+function psb_snrmi(a,desc_a,info,global) result(res)
use psb_base_mod, psb_protect_name => psb_snrmi
implicit none
@@ -49,10 +49,12 @@ function psb_snrmi(a,desc_a,info) result(res)
integer(psb_ipk_), intent(out) :: info
type(psb_desc_type), intent(in) :: desc_a
real(psb_spk_) :: res
+ logical, intent(in), optional :: global
! locals
integer(psb_ipk_) :: ictxt, np, me,&
& err_act, n, iia, jja, ia, ja, mdim, ndim, m
+ logical :: global_
character(len=20) :: name, ch_err
name='psb_snrmi'
@@ -69,6 +71,12 @@ function psb_snrmi(a,desc_a,info) result(res)
goto 9999
endif
+ if (present(global)) then
+ global_ = global
+ else
+ global_ = .true.
+ end if
+
ia = 1
ja = 1
m = desc_a%get_global_rows()
@@ -101,7 +109,7 @@ function psb_snrmi(a,desc_a,info) result(res)
end if
! compute global max
- call psb_amx(ictxt, res)
+ if (global_) call psb_amx(ictxt, res)
call psb_erractionrestore(err_act)
return
diff --git a/base/psblas/psb_sspnrm1.f90 b/base/psblas/psb_sspnrm1.f90
index ea7cd618..b8f2a4b7 100644
--- a/base/psblas/psb_sspnrm1.f90
+++ b/base/psblas/psb_sspnrm1.f90
@@ -41,7 +41,7 @@
! desc_a - type(psb_desc_type). The communication descriptor.
! info - integer. Return code
!
-function psb_sspnrm1(a,desc_a,info) result(res)
+function psb_sspnrm1(a,desc_a,info,global) result(res)
use psb_base_mod, psb_protect_name => psb_sspnrm1
implicit none
@@ -49,10 +49,12 @@ function psb_sspnrm1(a,desc_a,info) result(res)
integer(psb_ipk_), intent(out) :: info
type(psb_desc_type), intent(in) :: desc_a
real(psb_spk_) :: res
+ logical, intent(in), optional :: global
! locals
integer(psb_ipk_) :: ictxt, np, me, nr,nc,&
& err_act, n, iia, jja, ia, ja, mdim, ndim, m
+ logical :: global_
character(len=20) :: name, ch_err
real(psb_spk_), allocatable :: v(:)
@@ -70,6 +72,12 @@ function psb_sspnrm1(a,desc_a,info) result(res)
goto 9999
endif
+ if (present(global)) then
+ global_ = global
+ else
+ global_ = .true.
+ end if
+
ia = 1
ja = 1
m = desc_a%get_global_rows()
@@ -119,7 +127,7 @@ function psb_sspnrm1(a,desc_a,info) result(res)
res = szero
end if
! compute global max
- call psb_amx(ictxt, res)
+ if (global_) call psb_amx(ictxt, res)
call psb_erractionrestore(err_act)
return
diff --git a/base/psblas/psb_zamax.f90 b/base/psblas/psb_zamax.f90
index b2032264..e601725e 100644
--- a/base/psblas/psb_zamax.f90
+++ b/base/psblas/psb_zamax.f90
@@ -44,7 +44,7 @@
! info - integer. Return code
! jx - integer(optional). The column offset.
!
-function psb_zamax(x,desc_a, info, jx) result(res)
+function psb_zamax(x,desc_a, info, jx,global) result(res)
use psb_base_mod, psb_protect_name => psb_zamax
implicit none
@@ -54,10 +54,12 @@ function psb_zamax(x,desc_a, info, jx) result(res)
integer(psb_ipk_), intent(out) :: info
integer(psb_ipk_), optional, intent(in) :: jx
real(psb_dpk_) :: res
+ logical, intent(in), optional :: global
! locals
integer(psb_ipk_) :: ictxt, np, me,&
& err_act, iix, jjx, ix, ijx, m, ldx
+ logical :: global_
character(len=20) :: name, ch_err
name='psb_zamax'
@@ -82,6 +84,12 @@ function psb_zamax(x,desc_a, info, jx) result(res)
ijx = 1
endif
+ if (present(global)) then
+ global_ = global
+ else
+ global_ = .true.
+ end if
+
m = desc_a%get_global_rows()
ldx = size(x,1)
@@ -107,7 +115,7 @@ function psb_zamax(x,desc_a, info, jx) result(res)
end if
! compute global max
- call psb_amx(ictxt, res)
+ if (global_) call psb_amx(ictxt, res)
call psb_erractionrestore(err_act)
return
@@ -162,7 +170,7 @@ end function psb_zamax
! desc_a - type(psb_desc_type). The communication descriptor.
! info - integer. Return code
!
-function psb_zamaxv (x,desc_a, info) result(res)
+function psb_zamaxv (x,desc_a, info,global) result(res)
use psb_base_mod, psb_protect_name => psb_zamaxv
implicit none
@@ -171,11 +179,12 @@ function psb_zamaxv (x,desc_a, info) result(res)
type(psb_desc_type), intent(in) :: desc_a
integer(psb_ipk_), intent(out) :: info
real(psb_dpk_) :: res
+ logical, intent(in), optional :: global
! locals
integer(psb_ipk_) :: ictxt, np, me,&
& err_act, iix, jjx, jx, ix, m, ldx
-
+ logical :: global_
character(len=20) :: name, ch_err
name='psb_zamaxv'
@@ -193,6 +202,12 @@ function psb_zamaxv (x,desc_a, info) result(res)
goto 9999
endif
+ if (present(global)) then
+ global_ = global
+ else
+ global_ = .true.
+ end if
+
ix = 1
jx = 1
@@ -221,7 +236,7 @@ function psb_zamaxv (x,desc_a, info) result(res)
end if
! compute global max
- call psb_amx(ictxt, res)
+ if (global_) call psb_amx(ictxt, res)
call psb_erractionrestore(err_act)
return
@@ -232,7 +247,7 @@ function psb_zamaxv (x,desc_a, info) result(res)
end function psb_zamaxv
-function psb_zamax_vect(x, desc_a, info) result(res)
+function psb_zamax_vect(x, desc_a, info,global) result(res)
use psb_penv_mod
use psb_serial_mod
use psb_desc_mod
@@ -245,10 +260,12 @@ function psb_zamax_vect(x, desc_a, info) result(res)
type(psb_z_vect_type), intent (inout) :: x
type(psb_desc_type), intent (in) :: desc_a
integer(psb_ipk_), intent(out) :: info
+ logical, intent(in), optional :: global
! locals
integer(psb_ipk_) :: ictxt, np, me,&
& err_act, iix, jjx, jx, ix, m
+ logical :: global_
character(len=20) :: name, ch_err
name='psb_zamaxv'
@@ -271,6 +288,12 @@ function psb_zamax_vect(x, desc_a, info) result(res)
goto 9999
endif
+ if (present(global)) then
+ global_ = global
+ else
+ global_ = .true.
+ end if
+
ix = 1
jx = 1
@@ -297,7 +320,7 @@ function psb_zamax_vect(x, desc_a, info) result(res)
end if
! compute global max
- call psb_amx(ictxt, res)
+ if (global_) call psb_amx(ictxt, res)
call psb_erractionrestore(err_act)
return
@@ -355,7 +378,7 @@ end function psb_zamax_vect
! info - integer. Return code
! jx - integer(optional). The column offset.
!
-subroutine psb_zamaxvs(res,x,desc_a, info)
+subroutine psb_zamaxvs(res,x,desc_a, info,global)
use psb_base_mod, psb_protect_name => psb_zamaxvs
implicit none
@@ -364,10 +387,12 @@ subroutine psb_zamaxvs(res,x,desc_a, info)
type(psb_desc_type), intent(in) :: desc_a
integer(psb_ipk_), intent(out) :: info
real(psb_dpk_), intent(out) :: res
+ logical, intent(in), optional :: global
! locals
integer(psb_ipk_) :: ictxt, np, me,&
& err_act, iix, jjx, ix, ijx, m, ldx
+ logical :: global_
character(len=20) :: name, ch_err
name='psb_zamaxvs'
@@ -385,6 +410,12 @@ subroutine psb_zamaxvs(res,x,desc_a, info)
goto 9999
endif
+ if (present(global)) then
+ global_ = global
+ else
+ global_ = .true.
+ end if
+
ix = 1
ijx=1
@@ -412,7 +443,7 @@ subroutine psb_zamaxvs(res,x,desc_a, info)
end if
! compute global max
- call psb_amx(ictxt, res)
+ if (global_) call psb_amx(ictxt, res)
call psb_erractionrestore(err_act)
return
@@ -466,7 +497,7 @@ end subroutine psb_zamaxvs
! desc_a - type(psb_desc_type). The communication descriptor.
! info - integer. Return code
!
-subroutine psb_zmamaxs(res,x,desc_a, info,jx)
+subroutine psb_zmamaxs(res,x,desc_a, info,jx,global)
use psb_base_mod, psb_protect_name => psb_zmamaxs
implicit none
@@ -476,10 +507,12 @@ subroutine psb_zmamaxs(res,x,desc_a, info,jx)
integer(psb_ipk_), intent(out) :: info
integer(psb_ipk_), optional, intent(in) :: jx
real(psb_dpk_), intent(out) :: res(:)
+ logical, intent(in), optional :: global
! locals
integer(psb_ipk_) :: ictxt, np, me,&
& err_act, iix, jjx, ix, ijx, m, ldx, i, k
+ logical :: global_
character(len=20) :: name, ch_err
name='psb_zmamaxs'
@@ -503,6 +536,12 @@ subroutine psb_zmamaxs(res,x,desc_a, info,jx)
ijx = 1
endif
+ if (present(global)) then
+ global_ = global
+ else
+ global_ = .true.
+ end if
+
m = desc_a%get_global_rows()
k = min(size(x,2),size(res,1))
ldx = size(x,1)
@@ -529,7 +568,7 @@ subroutine psb_zmamaxs(res,x,desc_a, info,jx)
end if
! compute global max
- call psb_amx(ictxt, res(1:k))
+ if (global_) call psb_amx(ictxt, res(1:k))
call psb_erractionrestore(err_act)
return
diff --git a/base/psblas/psb_zasum.f90 b/base/psblas/psb_zasum.f90
index 3b4fadee..9d49881b 100644
--- a/base/psblas/psb_zasum.f90
+++ b/base/psblas/psb_zasum.f90
@@ -44,7 +44,7 @@
! info - integer. Return code
! jx - integer(optional). The column offset.
!
-function psb_zasum (x,desc_a, info, jx) result(res)
+function psb_zasum (x,desc_a, info, jx,global) result(res)
use psb_base_mod, psb_protect_name => psb_zasum
implicit none
@@ -54,10 +54,12 @@ function psb_zasum (x,desc_a, info, jx) result(res)
integer(psb_ipk_), intent(out) :: info
integer(psb_ipk_), optional, intent(in) :: jx
real(psb_dpk_) :: res
+ logical, intent(in), optional :: global
! locals
integer(psb_ipk_) :: ictxt, np, me, &
& err_act, iix, jjx, ix, ijx, m, i, idx, ndm, ldx
+ logical :: global_
character(len=20) :: name, ch_err
name='psb_zasum'
@@ -82,6 +84,12 @@ function psb_zasum (x,desc_a, info, jx) result(res)
ijx = 1
endif
+ if (present(global)) then
+ global_ = global
+ else
+ global_ = .true.
+ end if
+
m = desc_a%get_global_rows()
ldx = size(x,1)
! check vector correctness
@@ -114,7 +122,7 @@ function psb_zasum (x,desc_a, info, jx) result(res)
res = dzero
end if
! compute global sum
- call psb_sum(ictxt, res)
+ if (global_) call psb_sum(ictxt, res)
call psb_erractionrestore(err_act)
return
@@ -125,7 +133,7 @@ function psb_zasum (x,desc_a, info, jx) result(res)
end function psb_zasum
-function psb_zasum_vect(x, desc_a, info) result(res)
+function psb_zasum_vect(x, desc_a, info,global) result(res)
use psb_base_mod, psb_protect_name => psb_zasum_vect
implicit none
@@ -133,10 +141,12 @@ function psb_zasum_vect(x, desc_a, info) result(res)
type(psb_z_vect_type), intent (inout) :: x
type(psb_desc_type), intent (in) :: desc_a
integer(psb_ipk_), intent(out) :: info
+ logical, intent(in), optional :: global
! locals
integer(psb_ipk_) :: ictxt, np, me,&
- & err_act, iix, jjx, jx, ix, m, imax
+ & err_act, iix, jjx, jx, ix, m, imax, i, idx, ndm
+ logical :: global_
character(len=20) :: name, ch_err
name='psb_zasumv'
@@ -160,6 +170,11 @@ function psb_zasum_vect(x, desc_a, info) result(res)
goto 9999
endif
+ if (present(global)) then
+ global_ = global
+ else
+ global_ = .true.
+ end if
ix = 1
jx = 1
@@ -182,12 +197,21 @@ function psb_zasum_vect(x, desc_a, info) result(res)
! compute local max
if ((desc_a%get_local_rows() > 0).and.(m /= 0)) then
res = x%asum(desc_a%get_local_rows())
+ if (size(desc_a%ovrlap_elem,1)>0) then
+ if (x%is_dev()) call x%sync()
+ ! adjust res because overlapped elements are computed more than once
+ do i=1,size(desc_a%ovrlap_elem,1)
+ idx = desc_a%ovrlap_elem(i,1)
+ ndm = desc_a%ovrlap_elem(i,2)
+ res = res - (real(ndm-1)/real(ndm))*abs(x%v%v(idx))
+ end do
+ end if
else
res = dzero
end if
! compute global sum
- call psb_sum(ictxt, res)
+ if (global_) call psb_sum(ictxt, res)
call psb_erractionrestore(err_act)
return
@@ -242,7 +266,7 @@ end function psb_zasum_vect
! desc_a - type(psb_desc_type). The communication descriptor.
! info - integer. Return code
!
-function psb_zasumv(x,desc_a, info) result(res)
+function psb_zasumv(x,desc_a, info,global) result(res)
use psb_base_mod, psb_protect_name => psb_zasumv
implicit none
@@ -251,10 +275,12 @@ function psb_zasumv(x,desc_a, info) result(res)
type(psb_desc_type), intent(in) :: desc_a
integer(psb_ipk_), intent(out) :: info
real(psb_dpk_) :: res
+ logical, intent(in), optional :: global
! locals
integer(psb_ipk_) :: ictxt, np, me,&
& err_act, iix, jjx, jx, ix, m, i, idx, ndm, ldx
+ logical :: global_
character(len=20) :: name, ch_err
name='psb_zasumv'
@@ -271,6 +297,12 @@ function psb_zasumv(x,desc_a, info) result(res)
goto 9999
endif
+ if (present(global)) then
+ global_ = global
+ else
+ global_ = .true.
+ end if
+
ix = 1
jx=1
@@ -307,7 +339,7 @@ function psb_zasumv(x,desc_a, info) result(res)
end if
! compute global sum
- call psb_sum(ictxt, res)
+ if (global_) call psb_sum(ictxt, res)
call psb_erractionrestore(err_act)
return
@@ -362,7 +394,7 @@ end function psb_zasumv
! info - integer. Return code
! jx - integer(optional). The column offset.
!
-subroutine psb_zasumvs(res,x,desc_a, info)
+subroutine psb_zasumvs(res,x,desc_a, info,global)
use psb_base_mod, psb_protect_name => psb_zasumvs
implicit none
@@ -371,10 +403,12 @@ subroutine psb_zasumvs(res,x,desc_a, info)
real(psb_dpk_), intent(out) :: res
type(psb_desc_type), intent(in) :: desc_a
integer(psb_ipk_), intent(out) :: info
+ logical, intent(in), optional :: global
! locals
integer(psb_ipk_) :: ictxt, np, me,&
& err_act, iix, jjx, ix, jx, m, i, idx, ndm, ldx
+ logical :: global_
character(len=20) :: name, ch_err
name='psb_zasumvs'
@@ -391,6 +425,12 @@ subroutine psb_zasumvs(res,x,desc_a, info)
goto 9999
endif
+ if (present(global)) then
+ global_ = global
+ else
+ global_ = .true.
+ end if
+
ix = 1
jx = 1
@@ -427,7 +467,7 @@ subroutine psb_zasumvs(res,x,desc_a, info)
end if
! compute global sum
- call psb_sum(ictxt,res)
+ if (global_) call psb_sum(ictxt,res)
call psb_erractionrestore(err_act)
return
diff --git a/base/psblas/psb_zdot.f90 b/base/psblas/psb_zdot.f90
index a9cd1d98..9006a08b 100644
--- a/base/psblas/psb_zdot.f90
+++ b/base/psblas/psb_zdot.f90
@@ -48,7 +48,7 @@
! jx - integer(optional). The column offset for sub( X ).
! jy - integer(optional). The column offset for sub( Y ).
!
-function psb_zdot_vect(x, y, desc_a,info) result(res)
+function psb_zdot_vect(x, y, desc_a,info,global) result(res)
use psb_desc_mod
use psb_z_base_mat_mod
use psb_check_mod
@@ -61,10 +61,12 @@ function psb_zdot_vect(x, y, desc_a,info) result(res)
type(psb_z_vect_type), intent(inout) :: x, y
type(psb_desc_type), intent(in) :: desc_a
integer(psb_ipk_), intent(out) :: info
+ logical, intent(in), optional :: global
! locals
integer(psb_ipk_) :: ictxt, np, me, idx, ndm,&
& err_act, iix, jjx, ix, ijx, iy, ijy, iiy, jjy, i, m, nr
+ logical :: global_
character(len=20) :: name, ch_err
name='psb_zdot_vect'
@@ -91,6 +93,11 @@ function psb_zdot_vect(x, y, desc_a,info) result(res)
goto 9999
endif
+ if (present(global)) then
+ global_ = global
+ else
+ global_ = .true.
+ end if
ix = ione
ijx = ione
@@ -122,17 +129,21 @@ function psb_zdot_vect(x, y, desc_a,info) result(res)
res = x%dot(nr,y)
! FIXME
! adjust dot_local because overlapped elements are computed more than once
-!!$ do i=1,size(desc_a%ovrlap_elem,1)
-!!$ idx = desc_a%ovrlap_elem(i,1)
-!!$ ndm = desc_a%ovrlap_elem(i,2)
-!!$ dot_local = dot_local - (real(ndm-1)/real(ndm))*(x(idx)*y(idx))
-!!$ end do
+ if (size(desc_a%ovrlap_elem,1)>0) then
+ if (x%is_dev()) call x%sync()
+ if (y%is_dev()) call y%sync()
+ do i=1,size(desc_a%ovrlap_elem,1)
+ idx = desc_a%ovrlap_elem(i,1)
+ ndm = desc_a%ovrlap_elem(i,2)
+ res = res - (real(ndm-1)/real(ndm))*(x%v%v(idx)*y%v%v(idx))
+ end do
+ end if
else
res = zzero
end if
! compute global sum
- call psb_sum(ictxt, res)
+ if (global_) call psb_sum(ictxt, res)
call psb_erractionrestore(err_act)
return
@@ -143,7 +154,7 @@ function psb_zdot_vect(x, y, desc_a,info) result(res)
end function psb_zdot_vect
-function psb_zdot(x, y,desc_a, info, jx, jy) result(res)
+function psb_zdot(x, y,desc_a, info, jx, jy,global) result(res)
use psb_base_mod, psb_protect_name => psb_zdot
implicit none
@@ -152,12 +163,14 @@ function psb_zdot(x, y,desc_a, info, jx, jy) result(res)
integer(psb_ipk_), intent(in), optional :: jx, jy
integer(psb_ipk_), intent(out) :: info
complex(psb_dpk_) :: res
+ logical, intent(in), optional :: global
! locals
integer(psb_ipk_) :: ictxt, np, me, idx, ndm,&
& err_act, iix, jjx, ix, ijx, iy, ijy, iiy, jjy, i, m, nr, &
& lldx, lldy
complex(psb_dpk_) :: zdotc
+ logical :: global_
character(len=20) :: name, ch_err
name='psb_zdot'
@@ -193,6 +206,12 @@ function psb_zdot(x, y,desc_a, info, jx, jy) result(res)
goto 9999
end if
+ if (present(global)) then
+ global_ = global
+ else
+ global_ = .true.
+ end if
+
m = desc_a%get_global_rows()
lldx = size(x,1)
lldy = size(y,1)
@@ -228,7 +247,7 @@ function psb_zdot(x, y,desc_a, info, jx, jy) result(res)
end if
! compute global sum
- call psb_sum(ictxt, res)
+ if (global_) call psb_sum(ictxt, res)
call psb_erractionrestore(err_act)
return
@@ -284,7 +303,7 @@ end function psb_zdot
! desc_a - type(psb_desc_type). The communication descriptor.
! info - integer. Return code
!
-function psb_zdotv(x, y,desc_a, info) result(res)
+function psb_zdotv(x, y,desc_a, info,global) result(res)
use psb_base_mod, psb_protect_name => psb_zdotv
implicit none
@@ -292,11 +311,13 @@ function psb_zdotv(x, y,desc_a, info) result(res)
type(psb_desc_type), intent(in) :: desc_a
integer(psb_ipk_), intent(out) :: info
complex(psb_dpk_) :: res
+ logical, intent(in), optional :: global
! locals
integer(psb_ipk_) :: ictxt, np, me, idx, ndm,&
& err_act, iix, jjx, ix, jx, iy, jy, iiy, jjy, i, m, nr, &
& lldx, lldy
+ logical :: global_
complex(psb_dpk_) :: zdotc
character(len=20) :: name, ch_err
@@ -314,6 +335,12 @@ function psb_zdotv(x, y,desc_a, info) result(res)
goto 9999
endif
+ if (present(global)) then
+ global_ = global
+ else
+ global_ = .true.
+ end if
+
ix = ione
iy = ione
jx = ione
@@ -352,7 +379,7 @@ function psb_zdotv(x, y,desc_a, info) result(res)
end if
! compute global sum
- call psb_sum(ictxt, res)
+ if (global_) call psb_sum(ictxt, res)
call psb_erractionrestore(err_act)
@@ -409,7 +436,7 @@ end function psb_zdotv
! desc_a - type(psb_desc_type). The communication descriptor.
! info - integer. Return code
!
-subroutine psb_zdotvs(res, x, y,desc_a, info)
+subroutine psb_zdotvs(res, x, y,desc_a, info,global)
use psb_base_mod, psb_protect_name => psb_zdotvs
implicit none
@@ -417,11 +444,13 @@ subroutine psb_zdotvs(res, x, y,desc_a, info)
complex(psb_dpk_), intent(out) :: res
type(psb_desc_type), intent(in) :: desc_a
integer(psb_ipk_), intent(out) :: info
+ logical, intent(in), optional :: global
! locals
integer(psb_ipk_) :: ictxt, np, me, idx, ndm,&
& err_act, iix, jjx, ix, iy, iiy, jjy, i, m,nr, &
& lldx, lldy
+ logical :: global_
complex(psb_dpk_) :: zdotc
character(len=20) :: name, ch_err
@@ -439,6 +468,12 @@ subroutine psb_zdotvs(res, x, y,desc_a, info)
goto 9999
endif
+ if (present(global)) then
+ global_ = global
+ else
+ global_ = .true.
+ end if
+
ix = ione
iy = ione
m = desc_a%get_global_rows()
@@ -475,7 +510,7 @@ subroutine psb_zdotvs(res, x, y,desc_a, info)
end if
! compute global sum
- call psb_sum(ictxt, res)
+ if (global_) call psb_sum(ictxt, res)
call psb_erractionrestore(err_act)
return
@@ -532,7 +567,7 @@ end subroutine psb_zdotvs
! desc_a - type(psb_desc_type). The communication descriptor.
! info - integer. Return code
!
-subroutine psb_zmdots(res, x, y, desc_a, info)
+subroutine psb_zmdots(res, x, y, desc_a, info,global)
use psb_base_mod, psb_protect_name => psb_zmdots
implicit none
@@ -540,11 +575,13 @@ subroutine psb_zmdots(res, x, y, desc_a, info)
complex(psb_dpk_), intent(out) :: res(:)
type(psb_desc_type), intent(in) :: desc_a
integer(psb_ipk_), intent(out) :: info
+ logical, intent(in), optional :: global
! locals
integer(psb_ipk_) :: ictxt, np, me, idx, ndm,&
& err_act, iix, jjx, ix, iy, iiy, jjy, i, m, j, k, nr, &
& lldx, lldy
+ logical :: global_
complex(psb_dpk_) :: zdotc
character(len=20) :: name, ch_err
@@ -562,6 +599,11 @@ subroutine psb_zmdots(res, x, y, desc_a, info)
goto 9999
endif
+ if (present(global)) then
+ global_ = global
+ else
+ global_ = .true.
+ end if
ix = ione
iy = ione
@@ -611,7 +653,7 @@ subroutine psb_zmdots(res, x, y, desc_a, info)
! compute global sum
- call psb_sum(ictxt, res(1:k))
+ if (global_) call psb_sum(ictxt, res(1:k))
call psb_erractionrestore(err_act)
return
diff --git a/base/psblas/psb_znrm2.f90 b/base/psblas/psb_znrm2.f90
index 40e2156b..b3fd48df 100644
--- a/base/psblas/psb_znrm2.f90
+++ b/base/psblas/psb_znrm2.f90
@@ -44,7 +44,7 @@
! info - integer. Return code
! jx - integer(optional). The column offset for sub( X ).
!
-function psb_znrm2(x, desc_a, info, jx) result(res)
+function psb_znrm2(x, desc_a, info, jx,global) result(res)
use psb_desc_mod
use psb_check_mod
use psb_error_mod
@@ -56,10 +56,12 @@ function psb_znrm2(x, desc_a, info, jx) result(res)
integer(psb_ipk_), intent(in), optional :: jx
integer(psb_ipk_), intent(out) :: info
real(psb_dpk_) :: res
+ logical, intent(in), optional :: global
! locals
integer(psb_ipk_) :: ictxt, np, me,&
& err_act, iix, jjx, ndim, ix, ijx, i, m, id, idx, ndm, ldx
+ logical :: global_
real(psb_dpk_) :: dznrm2, dd
character(len=20) :: name, ch_err
@@ -84,6 +86,12 @@ function psb_znrm2(x, desc_a, info, jx) result(res)
ijx = 1
endif
+ if (present(global)) then
+ global_ = global
+ else
+ global_ = .true.
+ end if
+
m = desc_a%get_global_rows()
ldx = size(x,1)
call psb_chkvect(m,ione,ldx,ix,ijx,desc_a,info,iix,jjx)
@@ -114,7 +122,7 @@ function psb_znrm2(x, desc_a, info, jx) result(res)
res = dzero
end if
- call psb_nrm2(ictxt,res)
+ if (global_) call psb_nrm2(ictxt,res)
call psb_erractionrestore(err_act)
return
@@ -168,7 +176,7 @@ end function psb_znrm2
! desc_a - type(psb_desc_type). The communication descriptor.
! info - integer. Return code
!
-function psb_znrm2v(x, desc_a, info) result(res)
+function psb_znrm2v(x, desc_a, info,global) result(res)
use psb_desc_mod
use psb_check_mod
use psb_error_mod
@@ -179,13 +187,13 @@ function psb_znrm2v(x, desc_a, info) result(res)
type(psb_desc_type), intent(in) :: desc_a
integer(psb_ipk_), intent(out) :: info
real(psb_dpk_) :: res
+ logical, intent(in), optional :: global
! locals
integer(psb_ipk_) :: ictxt, np, me,&
& err_act, iix, jjx, ndim, ix, jx, i, m, id, idx, ndm, ldx
+ logical :: global_
real(psb_dpk_) :: dznrm2, dd
-
-!!$ external scombnrm2
character(len=20) :: name, ch_err
name='psb_znrm2v'
@@ -202,6 +210,11 @@ function psb_znrm2v(x, desc_a, info) result(res)
goto 9999
endif
+ if (present(global)) then
+ global_ = global
+ else
+ global_ = .true.
+ end if
ix = 1
jx=1
m = desc_a%get_global_rows()
@@ -233,8 +246,7 @@ function psb_znrm2v(x, desc_a, info) result(res)
res = dzero
end if
- call psb_nrm2(ictxt,res)
-
+ if (global_) call psb_nrm2(ictxt,res)
call psb_erractionrestore(err_act)
return
@@ -246,7 +258,7 @@ end function psb_znrm2v
-function psb_znrm2_vect(x, desc_a, info) result(res)
+function psb_znrm2_vect(x, desc_a, info,global) result(res)
use psb_desc_mod
use psb_check_mod
use psb_error_mod
@@ -258,12 +270,13 @@ function psb_znrm2_vect(x, desc_a, info) result(res)
type(psb_z_vect_type), intent (inout) :: x
type(psb_desc_type), intent(in) :: desc_a
integer(psb_ipk_), intent(out) :: info
+ logical, intent(in), optional :: global
! locals
integer(psb_ipk_) :: ictxt, np, me,&
& err_act, iix, jjx, ndim, ix, jx, i, m, id, idx, ndm, ldx
+ logical :: global_
real(psb_dpk_) :: snrm2, dd
-!!$ external dcombnrm2
character(len=20) :: name, ch_err
name='psb_znrm2v'
@@ -286,6 +299,11 @@ function psb_znrm2_vect(x, desc_a, info) result(res)
goto 9999
endif
+ if (present(global)) then
+ global_ = global
+ else
+ global_ = .true.
+ end if
ix = 1
jx=1
@@ -307,18 +325,21 @@ function psb_znrm2_vect(x, desc_a, info) result(res)
if (desc_a%get_local_rows() > 0) then
ndim = desc_a%get_local_rows()
res = x%nrm2(ndim)
-!!$ ! adjust because overlapped elements are computed more than once
-!!$ do i=1,size(desc_a%ovrlap_elem,1)
-!!$ idx = desc_a%ovrlap_elem(i,1)
-!!$ ndm = desc_a%ovrlap_elem(i,2)
-!!$ dd = dble(ndm-1)/dble(ndm)
-!!$ nrm2 = nrm2 * sqrt(done - dd*(abs(x(idx))/nrm2)**2)
-!!$ end do
- else
+ ! adjust because overlapped elements are computed more than once
+ if (size(desc_a%ovrlap_elem,1)>0) then
+ if (x%is_dev()) call x%sync()
+ do i=1,size(desc_a%ovrlap_elem,1)
+ idx = desc_a%ovrlap_elem(i,1)
+ ndm = desc_a%ovrlap_elem(i,2)
+ dd = dble(ndm-1)/dble(ndm)
+ res = res - sqrt(zone - dd*(abs(x%v%v(idx))/res)**2)
+ end do
+ end if
+ else
res = dzero
end if
- call psb_nrm2(ictxt,res)
+ if (global_) call psb_nrm2(ictxt,res)
call psb_erractionrestore(err_act)
return
@@ -329,7 +350,6 @@ function psb_znrm2_vect(x, desc_a, info) result(res)
end function psb_znrm2_vect
-
!!$
!!$ Parallel Sparse BLAS version 3.5
!!$ (C) Copyright 2006-2018
@@ -373,7 +393,7 @@ end function psb_znrm2_vect
! desc_a - type(psb_desc_type). The communication descriptor.
! info - integer. Return code
!
-subroutine psb_znrm2vs(res, x, desc_a, info)
+subroutine psb_znrm2vs(res, x, desc_a, info,global)
use psb_desc_mod
use psb_check_mod
use psb_error_mod
@@ -384,13 +404,13 @@ subroutine psb_znrm2vs(res, x, desc_a, info)
real(psb_dpk_), intent(out) :: res
type(psb_desc_type), intent(in) :: desc_a
integer(psb_ipk_), intent(out) :: info
+ logical, intent(in), optional :: global
! locals
integer(psb_ipk_) :: ictxt, np, me,&
& err_act, iix, jjx, ndim, ix, jx, i, m, id, idx, ndm, ldx
+ logical :: global_
real(psb_dpk_) :: nrm2, dznrm2, dd
-
-!!$ external scombnrm2
character(len=20) :: name, ch_err
name='psb_znrm2'
@@ -407,6 +427,12 @@ subroutine psb_znrm2vs(res, x, desc_a, info)
goto 9999
endif
+ if (present(global)) then
+ global_ = global
+ else
+ global_ = .true.
+ end if
+
ix = 1
jx = 1
m = desc_a%get_global_rows()
@@ -439,7 +465,7 @@ subroutine psb_znrm2vs(res, x, desc_a, info)
res = dzero
end if
- call psb_nrm2(ictxt,res)
+ if (global_) call psb_nrm2(ictxt,res)
call psb_erractionrestore(err_act)
diff --git a/base/psblas/psb_znrmi.f90 b/base/psblas/psb_znrmi.f90
index c917b784..c0d169b9 100644
--- a/base/psblas/psb_znrmi.f90
+++ b/base/psblas/psb_znrmi.f90
@@ -41,7 +41,7 @@
! desc_a - type(psb_desc_type). The communication descriptor.
! info - integer. Return code
!
-function psb_znrmi(a,desc_a,info) result(res)
+function psb_znrmi(a,desc_a,info,global) result(res)
use psb_base_mod, psb_protect_name => psb_znrmi
implicit none
@@ -49,10 +49,12 @@ function psb_znrmi(a,desc_a,info) result(res)
integer(psb_ipk_), intent(out) :: info
type(psb_desc_type), intent(in) :: desc_a
real(psb_dpk_) :: res
+ logical, intent(in), optional :: global
! locals
integer(psb_ipk_) :: ictxt, np, me,&
& err_act, n, iia, jja, ia, ja, mdim, ndim, m
+ logical :: global_
character(len=20) :: name, ch_err
name='psb_znrmi'
@@ -69,6 +71,12 @@ function psb_znrmi(a,desc_a,info) result(res)
goto 9999
endif
+ if (present(global)) then
+ global_ = global
+ else
+ global_ = .true.
+ end if
+
ia = 1
ja = 1
m = desc_a%get_global_rows()
@@ -101,7 +109,7 @@ function psb_znrmi(a,desc_a,info) result(res)
end if
! compute global max
- call psb_amx(ictxt, res)
+ if (global_) call psb_amx(ictxt, res)
call psb_erractionrestore(err_act)
return
diff --git a/base/psblas/psb_zspnrm1.f90 b/base/psblas/psb_zspnrm1.f90
index 19b5164c..95796ff5 100644
--- a/base/psblas/psb_zspnrm1.f90
+++ b/base/psblas/psb_zspnrm1.f90
@@ -41,7 +41,7 @@
! desc_a - type(psb_desc_type). The communication descriptor.
! info - integer. Return code
!
-function psb_zspnrm1(a,desc_a,info) result(res)
+function psb_zspnrm1(a,desc_a,info,global) result(res)
use psb_base_mod, psb_protect_name => psb_zspnrm1
implicit none
@@ -49,10 +49,12 @@ function psb_zspnrm1(a,desc_a,info) result(res)
integer(psb_ipk_), intent(out) :: info
type(psb_desc_type), intent(in) :: desc_a
real(psb_dpk_) :: res
+ logical, intent(in), optional :: global
! locals
integer(psb_ipk_) :: ictxt, np, me, nr,nc,&
& err_act, n, iia, jja, ia, ja, mdim, ndim, m
+ logical :: global_
character(len=20) :: name, ch_err
real(psb_dpk_), allocatable :: v(:)
@@ -70,6 +72,12 @@ function psb_zspnrm1(a,desc_a,info) result(res)
goto 9999
endif
+ if (present(global)) then
+ global_ = global
+ else
+ global_ = .true.
+ end if
+
ia = 1
ja = 1
m = desc_a%get_global_rows()
@@ -119,7 +127,7 @@ function psb_zspnrm1(a,desc_a,info) result(res)
res = dzero
end if
! compute global max
- call psb_amx(ictxt, res)
+ if (global_) call psb_amx(ictxt, res)
call psb_erractionrestore(err_act)
return
diff --git a/base/tools/psb_ccdbldext.F90 b/base/tools/psb_ccdbldext.F90
index 0792222e..705e82af 100644
--- a/base/tools/psb_ccdbldext.F90
+++ b/base/tools/psb_ccdbldext.F90
@@ -84,7 +84,8 @@ Subroutine psb_ccdbldext(a,desc_a,novr,desc_ov,info, extype)
integer(psb_ipk_) :: i, j, err_act,m,&
& lovr, lworks,lworkr, n_row,n_col, n_col_prev, &
& index_dim,elem_dim, l_tmp_ovr_idx,l_tmp_halo, nztot,nhalo
- integer(psb_ipk_) :: counter,counter_h, counter_o, counter_e,idx,gidx,proc,n_elem_recv,&
+ integer(psb_ipk_) :: counter,counter_h, counter_o, counter_e,&
+ & idx,proc,n_elem_recv,&
& n_elem_send,tot_recv,tot_elem,cntov_o,&
& counter_t,n_elem,i_ovr,jj,proc_id,isz, &
& idxr, idxs, iszr, iszs, nxch, nsnd, nrcv,lidx, extype_
@@ -255,12 +256,6 @@ Subroutine psb_ccdbldext(a,desc_a,novr,desc_ov,info, extype)
Do j=0,n_elem_recv-1
idx = ovrlap(counter+psb_elem_recv_+j)
- call desc_ov%indxmap%l2g(idx,gidx,info)
- If (gidx < 0) then
- info=-3
- call psb_errpush(info,name)
- goto 9999
- endif
call psb_ensure_size((cntov_o+3),orig_ovr,info,pad=-ione)
if (info /= psb_success_) then
info=psb_err_from_subroutine_
@@ -269,7 +264,7 @@ Subroutine psb_ccdbldext(a,desc_a,novr,desc_ov,info, extype)
end if
orig_ovr(cntov_o)=proc
orig_ovr(cntov_o+1)=1
- orig_ovr(cntov_o+2)=gidx
+ orig_ovr(cntov_o+2)=idx
orig_ovr(cntov_o+3)=-1
cntov_o=cntov_o+3
end Do
@@ -356,12 +351,6 @@ Subroutine psb_ccdbldext(a,desc_a,novr,desc_ov,info, extype)
end If
idx = halo(counter+psb_elem_recv_+j)
- call desc_ov%l2g(idx,gidx,info)
- If (gidx < 0) then
- info=-3
- call psb_errpush(info,name)
- goto 9999
- endif
call psb_ensure_size((counter_o+3),tmp_ovr_idx,info,pad=-ione)
if (info /= psb_success_) then
info=psb_err_from_subroutine_
@@ -371,7 +360,7 @@ Subroutine psb_ccdbldext(a,desc_a,novr,desc_ov,info, extype)
tmp_ovr_idx(counter_o) = proc
tmp_ovr_idx(counter_o+1) = 1
- tmp_ovr_idx(counter_o+2) = gidx
+ tmp_ovr_idx(counter_o+2) = idx
tmp_ovr_idx(counter_o+3) = -1
counter_o=counter_o+3
call psb_ensure_size((counter_h+3),tmp_halo,info,pad=-ione)
@@ -400,12 +389,6 @@ Subroutine psb_ccdbldext(a,desc_a,novr,desc_ov,info, extype)
Do j=0,n_elem_send-1
idx = halo(counter+psb_elem_send_+j)
- call desc_ov%l2g(idx,gidx,info)
- If (gidx < 0) then
- info=-3
- call psb_errpush(info,name)
- goto 9999
- endif
call psb_ensure_size((counter_o+3),tmp_ovr_idx,info,pad=-ione)
if (info /= psb_success_) then
info=psb_err_from_subroutine_
@@ -415,7 +398,7 @@ Subroutine psb_ccdbldext(a,desc_a,novr,desc_ov,info, extype)
tmp_ovr_idx(counter_o) = proc
tmp_ovr_idx(counter_o+1) = 1
- tmp_ovr_idx(counter_o+2) = gidx
+ tmp_ovr_idx(counter_o+2) = idx
tmp_ovr_idx(counter_o+3) = -1
counter_o=counter_o+3
@@ -599,7 +582,7 @@ Subroutine psb_ccdbldext(a,desc_a,novr,desc_ov,info, extype)
write(debug_unit,*) me,' ',trim(name),':Calling Crea_index'
end if
- call psi_crea_index(desc_ov,t_halo_in,t_halo_out,.false.,&
+ call psi_crea_index(desc_ov,t_halo_in,t_halo_out,&
& nxch,nsnd,nrcv,info)
if (debug_level >= psb_debug_outer_) then
diff --git a/base/tools/psb_cd_inloc.f90 b/base/tools/psb_cd_inloc.f90
index 0310a7d9..6ea184d1 100644
--- a/base/tools/psb_cd_inloc.f90
+++ b/base/tools/psb_cd_inloc.f90
@@ -82,19 +82,15 @@ subroutine psb_cd_inloc(v, ictxt, desc, info, globalcheck,idx)
iictxt = ictxt
loc_row = size(v)
- if (.false.) then
- m = loc_row
- call psb_sum(ictxt,m)
- else
- m = maxval(v)
- nrt = loc_row
- call psb_sum(ictxt,nrt)
- call psb_max(ictxt,m)
- end if
+ m = maxval(v)
+ nrt = loc_row
+ call psb_sum(ictxt,nrt)
+ call psb_max(ictxt,m)
+
if (present(globalcheck)) then
check_ = globalcheck
else
- check_ = .true.
+ check_ = .false.
end if
n = m
@@ -138,7 +134,7 @@ subroutine psb_cd_inloc(v, ictxt, desc, info, globalcheck,idx)
if (debug_level >= psb_debug_ext_) &
& write(debug_unit,*) me,' ',trim(name),': doing global checks'
- islarge = psb_cd_choose_large_state(ictxt,m)
+ islarge = psb_cd_is_large_size(m)
allocate(vl(loc_row),ix(loc_row),stat=info)
if (info /= psb_success_) then
@@ -369,6 +365,22 @@ subroutine psb_cd_inloc(v, ictxt, desc, info, globalcheck,idx)
call aa%init(iictxt,vl(1:nlu),info)
end select
+
+ !
+ ! Now that we have initialized indxmap we can convert the
+ ! indices to local numbering.
+ !
+ block
+ integer(psb_ipk_) :: i,nprocs
+ i = 1
+ do while (temp_ovrlap(i) /= -1)
+ call desc%indxmap%g2lip(temp_ovrlap(i),info)
+ i = i + 1
+ nprocs = temp_ovrlap(i)
+ i = i + 1
+ i = i + nprocs
+ enddo
+ end block
call psi_bld_tmpovrl(temp_ovrlap,desc,info)
if (info == psb_success_) deallocate(temp_ovrlap,vl,ix,stat=info)
diff --git a/base/tools/psb_cd_reinit.f90 b/base/tools/psb_cd_reinit.f90
index f790218a..d579ba95 100644
--- a/base/tools/psb_cd_reinit.f90
+++ b/base/tools/psb_cd_reinit.f90
@@ -61,9 +61,9 @@ Subroutine psb_cd_reinit(desc,info)
if (debug_level >= psb_debug_outer_) &
& write(debug_unit,*) me,' ',trim(name),': start'
if (desc%is_asb()) then
- call psb_cd_get_recv_idx(tmp_ovr,desc,psb_comm_ovr_,info,toglob=.true.)
- call psb_cd_get_recv_idx(tmp_halo,desc,psb_comm_halo_,info,toglob=.false.)
- call psb_cd_get_recv_idx(tmp_ext,desc,psb_comm_ext_,info,toglob=.false.)
+ call psb_cd_get_recv_idx(tmp_ovr,desc,psb_comm_ovr_,info)
+ call psb_cd_get_recv_idx(tmp_halo,desc,psb_comm_halo_,info)
+ call psb_cd_get_recv_idx(tmp_ext,desc,psb_comm_ext_,info)
call psb_move_alloc(tmp_ovr,desc%ovrlap_index,info)
call psb_move_alloc(tmp_halo,desc%halo_index,info)
diff --git a/base/tools/psb_cdals.f90 b/base/tools/psb_cdals.f90
index 4c7131c7..e141a427 100644
--- a/base/tools/psb_cdals.f90
+++ b/base/tools/psb_cdals.f90
@@ -267,7 +267,21 @@ subroutine psb_cdals(m, n, parts, ictxt, desc, info)
if (debug_level >= psb_debug_ext_) &
& write(debug_unit,*) me,' ',trim(name),': error check:' ,err
-
+ !
+ ! Now that we have initialized indxmap we can convert the
+ ! indices to local numbering.
+ !
+ block
+ integer(psb_ipk_) :: i,nprocs
+ i = 1
+ do while (temp_ovrlap(i) /= -1)
+ call desc%indxmap%g2lip(temp_ovrlap(i),info)
+ i = i + 1
+ nprocs = temp_ovrlap(i)
+ i = i + 1
+ i = i + nprocs
+ enddo
+ end block
call psi_bld_tmpovrl(temp_ovrlap,desc,info)
if (info == psb_success_) deallocate(prc_v,temp_ovrlap,stat=info)
diff --git a/base/tools/psb_dcdbldext.F90 b/base/tools/psb_dcdbldext.F90
index 14aa6976..99610cc3 100644
--- a/base/tools/psb_dcdbldext.F90
+++ b/base/tools/psb_dcdbldext.F90
@@ -84,7 +84,8 @@ Subroutine psb_dcdbldext(a,desc_a,novr,desc_ov,info, extype)
integer(psb_ipk_) :: i, j, err_act,m,&
& lovr, lworks,lworkr, n_row,n_col, n_col_prev, &
& index_dim,elem_dim, l_tmp_ovr_idx,l_tmp_halo, nztot,nhalo
- integer(psb_ipk_) :: counter,counter_h, counter_o, counter_e,idx,gidx,proc,n_elem_recv,&
+ integer(psb_ipk_) :: counter,counter_h, counter_o, counter_e,&
+ & idx,proc,n_elem_recv,&
& n_elem_send,tot_recv,tot_elem,cntov_o,&
& counter_t,n_elem,i_ovr,jj,proc_id,isz, &
& idxr, idxs, iszr, iszs, nxch, nsnd, nrcv,lidx, extype_
@@ -255,12 +256,6 @@ Subroutine psb_dcdbldext(a,desc_a,novr,desc_ov,info, extype)
Do j=0,n_elem_recv-1
idx = ovrlap(counter+psb_elem_recv_+j)
- call desc_ov%indxmap%l2g(idx,gidx,info)
- If (gidx < 0) then
- info=-3
- call psb_errpush(info,name)
- goto 9999
- endif
call psb_ensure_size((cntov_o+3),orig_ovr,info,pad=-ione)
if (info /= psb_success_) then
info=psb_err_from_subroutine_
@@ -269,7 +264,7 @@ Subroutine psb_dcdbldext(a,desc_a,novr,desc_ov,info, extype)
end if
orig_ovr(cntov_o)=proc
orig_ovr(cntov_o+1)=1
- orig_ovr(cntov_o+2)=gidx
+ orig_ovr(cntov_o+2)=idx
orig_ovr(cntov_o+3)=-1
cntov_o=cntov_o+3
end Do
@@ -356,12 +351,6 @@ Subroutine psb_dcdbldext(a,desc_a,novr,desc_ov,info, extype)
end If
idx = halo(counter+psb_elem_recv_+j)
- call desc_ov%l2g(idx,gidx,info)
- If (gidx < 0) then
- info=-3
- call psb_errpush(info,name)
- goto 9999
- endif
call psb_ensure_size((counter_o+3),tmp_ovr_idx,info,pad=-ione)
if (info /= psb_success_) then
info=psb_err_from_subroutine_
@@ -371,7 +360,7 @@ Subroutine psb_dcdbldext(a,desc_a,novr,desc_ov,info, extype)
tmp_ovr_idx(counter_o) = proc
tmp_ovr_idx(counter_o+1) = 1
- tmp_ovr_idx(counter_o+2) = gidx
+ tmp_ovr_idx(counter_o+2) = idx
tmp_ovr_idx(counter_o+3) = -1
counter_o=counter_o+3
call psb_ensure_size((counter_h+3),tmp_halo,info,pad=-ione)
@@ -400,12 +389,6 @@ Subroutine psb_dcdbldext(a,desc_a,novr,desc_ov,info, extype)
Do j=0,n_elem_send-1
idx = halo(counter+psb_elem_send_+j)
- call desc_ov%l2g(idx,gidx,info)
- If (gidx < 0) then
- info=-3
- call psb_errpush(info,name)
- goto 9999
- endif
call psb_ensure_size((counter_o+3),tmp_ovr_idx,info,pad=-ione)
if (info /= psb_success_) then
info=psb_err_from_subroutine_
@@ -415,7 +398,7 @@ Subroutine psb_dcdbldext(a,desc_a,novr,desc_ov,info, extype)
tmp_ovr_idx(counter_o) = proc
tmp_ovr_idx(counter_o+1) = 1
- tmp_ovr_idx(counter_o+2) = gidx
+ tmp_ovr_idx(counter_o+2) = idx
tmp_ovr_idx(counter_o+3) = -1
counter_o=counter_o+3
@@ -599,7 +582,7 @@ Subroutine psb_dcdbldext(a,desc_a,novr,desc_ov,info, extype)
write(debug_unit,*) me,' ',trim(name),':Calling Crea_index'
end if
- call psi_crea_index(desc_ov,t_halo_in,t_halo_out,.false.,&
+ call psi_crea_index(desc_ov,t_halo_in,t_halo_out,&
& nxch,nsnd,nrcv,info)
if (debug_level >= psb_debug_outer_) then
diff --git a/base/tools/psb_scdbldext.F90 b/base/tools/psb_scdbldext.F90
index 20fda8dc..d4dd77c2 100644
--- a/base/tools/psb_scdbldext.F90
+++ b/base/tools/psb_scdbldext.F90
@@ -84,7 +84,8 @@ Subroutine psb_scdbldext(a,desc_a,novr,desc_ov,info, extype)
integer(psb_ipk_) :: i, j, err_act,m,&
& lovr, lworks,lworkr, n_row,n_col, n_col_prev, &
& index_dim,elem_dim, l_tmp_ovr_idx,l_tmp_halo, nztot,nhalo
- integer(psb_ipk_) :: counter,counter_h, counter_o, counter_e,idx,gidx,proc,n_elem_recv,&
+ integer(psb_ipk_) :: counter,counter_h, counter_o, counter_e,&
+ & idx,proc,n_elem_recv,&
& n_elem_send,tot_recv,tot_elem,cntov_o,&
& counter_t,n_elem,i_ovr,jj,proc_id,isz, &
& idxr, idxs, iszr, iszs, nxch, nsnd, nrcv,lidx, extype_
@@ -255,12 +256,6 @@ Subroutine psb_scdbldext(a,desc_a,novr,desc_ov,info, extype)
Do j=0,n_elem_recv-1
idx = ovrlap(counter+psb_elem_recv_+j)
- call desc_ov%indxmap%l2g(idx,gidx,info)
- If (gidx < 0) then
- info=-3
- call psb_errpush(info,name)
- goto 9999
- endif
call psb_ensure_size((cntov_o+3),orig_ovr,info,pad=-ione)
if (info /= psb_success_) then
info=psb_err_from_subroutine_
@@ -269,7 +264,7 @@ Subroutine psb_scdbldext(a,desc_a,novr,desc_ov,info, extype)
end if
orig_ovr(cntov_o)=proc
orig_ovr(cntov_o+1)=1
- orig_ovr(cntov_o+2)=gidx
+ orig_ovr(cntov_o+2)=idx
orig_ovr(cntov_o+3)=-1
cntov_o=cntov_o+3
end Do
@@ -356,12 +351,6 @@ Subroutine psb_scdbldext(a,desc_a,novr,desc_ov,info, extype)
end If
idx = halo(counter+psb_elem_recv_+j)
- call desc_ov%l2g(idx,gidx,info)
- If (gidx < 0) then
- info=-3
- call psb_errpush(info,name)
- goto 9999
- endif
call psb_ensure_size((counter_o+3),tmp_ovr_idx,info,pad=-ione)
if (info /= psb_success_) then
info=psb_err_from_subroutine_
@@ -371,7 +360,7 @@ Subroutine psb_scdbldext(a,desc_a,novr,desc_ov,info, extype)
tmp_ovr_idx(counter_o) = proc
tmp_ovr_idx(counter_o+1) = 1
- tmp_ovr_idx(counter_o+2) = gidx
+ tmp_ovr_idx(counter_o+2) = idx
tmp_ovr_idx(counter_o+3) = -1
counter_o=counter_o+3
call psb_ensure_size((counter_h+3),tmp_halo,info,pad=-ione)
@@ -400,12 +389,6 @@ Subroutine psb_scdbldext(a,desc_a,novr,desc_ov,info, extype)
Do j=0,n_elem_send-1
idx = halo(counter+psb_elem_send_+j)
- call desc_ov%l2g(idx,gidx,info)
- If (gidx < 0) then
- info=-3
- call psb_errpush(info,name)
- goto 9999
- endif
call psb_ensure_size((counter_o+3),tmp_ovr_idx,info,pad=-ione)
if (info /= psb_success_) then
info=psb_err_from_subroutine_
@@ -415,7 +398,7 @@ Subroutine psb_scdbldext(a,desc_a,novr,desc_ov,info, extype)
tmp_ovr_idx(counter_o) = proc
tmp_ovr_idx(counter_o+1) = 1
- tmp_ovr_idx(counter_o+2) = gidx
+ tmp_ovr_idx(counter_o+2) = idx
tmp_ovr_idx(counter_o+3) = -1
counter_o=counter_o+3
@@ -599,7 +582,7 @@ Subroutine psb_scdbldext(a,desc_a,novr,desc_ov,info, extype)
write(debug_unit,*) me,' ',trim(name),':Calling Crea_index'
end if
- call psi_crea_index(desc_ov,t_halo_in,t_halo_out,.false.,&
+ call psi_crea_index(desc_ov,t_halo_in,t_halo_out,&
& nxch,nsnd,nrcv,info)
if (debug_level >= psb_debug_outer_) then
diff --git a/base/tools/psb_zcdbldext.F90 b/base/tools/psb_zcdbldext.F90
index 355d540c..e967190d 100644
--- a/base/tools/psb_zcdbldext.F90
+++ b/base/tools/psb_zcdbldext.F90
@@ -84,7 +84,8 @@ Subroutine psb_zcdbldext(a,desc_a,novr,desc_ov,info, extype)
integer(psb_ipk_) :: i, j, err_act,m,&
& lovr, lworks,lworkr, n_row,n_col, n_col_prev, &
& index_dim,elem_dim, l_tmp_ovr_idx,l_tmp_halo, nztot,nhalo
- integer(psb_ipk_) :: counter,counter_h, counter_o, counter_e,idx,gidx,proc,n_elem_recv,&
+ integer(psb_ipk_) :: counter,counter_h, counter_o, counter_e,&
+ & idx,proc,n_elem_recv,&
& n_elem_send,tot_recv,tot_elem,cntov_o,&
& counter_t,n_elem,i_ovr,jj,proc_id,isz, &
& idxr, idxs, iszr, iszs, nxch, nsnd, nrcv,lidx, extype_
@@ -255,12 +256,6 @@ Subroutine psb_zcdbldext(a,desc_a,novr,desc_ov,info, extype)
Do j=0,n_elem_recv-1
idx = ovrlap(counter+psb_elem_recv_+j)
- call desc_ov%indxmap%l2g(idx,gidx,info)
- If (gidx < 0) then
- info=-3
- call psb_errpush(info,name)
- goto 9999
- endif
call psb_ensure_size((cntov_o+3),orig_ovr,info,pad=-ione)
if (info /= psb_success_) then
info=psb_err_from_subroutine_
@@ -269,7 +264,7 @@ Subroutine psb_zcdbldext(a,desc_a,novr,desc_ov,info, extype)
end if
orig_ovr(cntov_o)=proc
orig_ovr(cntov_o+1)=1
- orig_ovr(cntov_o+2)=gidx
+ orig_ovr(cntov_o+2)=idx
orig_ovr(cntov_o+3)=-1
cntov_o=cntov_o+3
end Do
@@ -356,12 +351,6 @@ Subroutine psb_zcdbldext(a,desc_a,novr,desc_ov,info, extype)
end If
idx = halo(counter+psb_elem_recv_+j)
- call desc_ov%l2g(idx,gidx,info)
- If (gidx < 0) then
- info=-3
- call psb_errpush(info,name)
- goto 9999
- endif
call psb_ensure_size((counter_o+3),tmp_ovr_idx,info,pad=-ione)
if (info /= psb_success_) then
info=psb_err_from_subroutine_
@@ -371,7 +360,7 @@ Subroutine psb_zcdbldext(a,desc_a,novr,desc_ov,info, extype)
tmp_ovr_idx(counter_o) = proc
tmp_ovr_idx(counter_o+1) = 1
- tmp_ovr_idx(counter_o+2) = gidx
+ tmp_ovr_idx(counter_o+2) = idx
tmp_ovr_idx(counter_o+3) = -1
counter_o=counter_o+3
call psb_ensure_size((counter_h+3),tmp_halo,info,pad=-ione)
@@ -400,12 +389,6 @@ Subroutine psb_zcdbldext(a,desc_a,novr,desc_ov,info, extype)
Do j=0,n_elem_send-1
idx = halo(counter+psb_elem_send_+j)
- call desc_ov%l2g(idx,gidx,info)
- If (gidx < 0) then
- info=-3
- call psb_errpush(info,name)
- goto 9999
- endif
call psb_ensure_size((counter_o+3),tmp_ovr_idx,info,pad=-ione)
if (info /= psb_success_) then
info=psb_err_from_subroutine_
@@ -415,7 +398,7 @@ Subroutine psb_zcdbldext(a,desc_a,novr,desc_ov,info, extype)
tmp_ovr_idx(counter_o) = proc
tmp_ovr_idx(counter_o+1) = 1
- tmp_ovr_idx(counter_o+2) = gidx
+ tmp_ovr_idx(counter_o+2) = idx
tmp_ovr_idx(counter_o+3) = -1
counter_o=counter_o+3
@@ -599,7 +582,7 @@ Subroutine psb_zcdbldext(a,desc_a,novr,desc_ov,info, extype)
write(debug_unit,*) me,' ',trim(name),':Calling Crea_index'
end if
- call psi_crea_index(desc_ov,t_halo_in,t_halo_out,.false.,&
+ call psi_crea_index(desc_ov,t_halo_in,t_halo_out,&
& nxch,nsnd,nrcv,info)
if (debug_level >= psb_debug_outer_) then
diff --git a/docs/html/footnode.html b/docs/html/footnode.html
index 408c91fe..37fb0814 100644
--- a/docs/html/footnode.html
+++ b/docs/html/footnode.html
@@ -14,7 +14,7 @@
-
+
@@ -137,8 +137,8 @@ sample scatter/gather routines.
.
-
... follows 4
+... follows 4
The string is case-insensitive
.
@@ -173,12 +173,12 @@ sample scatter/gather routines.
.
-... method 5
+... method 5
Note:
the implementation is for .
.
diff --git a/docs/html/img100.png b/docs/html/img100.png
index 86b732f9..fe961f95 100644
Binary files a/docs/html/img100.png and b/docs/html/img100.png differ
diff --git a/docs/html/img101.png b/docs/html/img101.png
index 757d9601..183814e1 100644
Binary files a/docs/html/img101.png and b/docs/html/img101.png differ
diff --git a/docs/html/img102.png b/docs/html/img102.png
index 504bcd98..01d4adf8 100644
Binary files a/docs/html/img102.png and b/docs/html/img102.png differ
diff --git a/docs/html/img103.png b/docs/html/img103.png
index 76aba149..493bdcc4 100644
Binary files a/docs/html/img103.png and b/docs/html/img103.png differ
diff --git a/docs/html/img104.png b/docs/html/img104.png
index dca74259..86b732f9 100644
Binary files a/docs/html/img104.png and b/docs/html/img104.png differ
diff --git a/docs/html/img105.png b/docs/html/img105.png
index 17a85bde..757d9601 100644
Binary files a/docs/html/img105.png and b/docs/html/img105.png differ
diff --git a/docs/html/img106.png b/docs/html/img106.png
index 53d08568..504bcd98 100644
Binary files a/docs/html/img106.png and b/docs/html/img106.png differ
diff --git a/docs/html/img107.png b/docs/html/img107.png
index 7b1b50e6..76aba149 100644
Binary files a/docs/html/img107.png and b/docs/html/img107.png differ
diff --git a/docs/html/img108.png b/docs/html/img108.png
index 8ca3ed43..dca74259 100644
Binary files a/docs/html/img108.png and b/docs/html/img108.png differ
diff --git a/docs/html/img109.png b/docs/html/img109.png
index 596d7002..17a85bde 100644
Binary files a/docs/html/img109.png and b/docs/html/img109.png differ
diff --git a/docs/html/img110.png b/docs/html/img110.png
index 449a3c08..53d08568 100644
Binary files a/docs/html/img110.png and b/docs/html/img110.png differ
diff --git a/docs/html/img111.png b/docs/html/img111.png
index 0f22ca53..7b1b50e6 100644
Binary files a/docs/html/img111.png and b/docs/html/img111.png differ
diff --git a/docs/html/img112.png b/docs/html/img112.png
index bec89570..8ca3ed43 100644
Binary files a/docs/html/img112.png and b/docs/html/img112.png differ
diff --git a/docs/html/img113.png b/docs/html/img113.png
index 7174a30a..596d7002 100644
Binary files a/docs/html/img113.png and b/docs/html/img113.png differ
diff --git a/docs/html/img114.png b/docs/html/img114.png
index 47a31088..449a3c08 100644
Binary files a/docs/html/img114.png and b/docs/html/img114.png differ
diff --git a/docs/html/img115.png b/docs/html/img115.png
index 1dc3fc97..0f22ca53 100644
Binary files a/docs/html/img115.png and b/docs/html/img115.png differ
diff --git a/docs/html/img116.png b/docs/html/img116.png
index 303731c2..bec89570 100644
Binary files a/docs/html/img116.png and b/docs/html/img116.png differ
diff --git a/docs/html/img117.png b/docs/html/img117.png
index 05296cb1..7174a30a 100644
Binary files a/docs/html/img117.png and b/docs/html/img117.png differ
diff --git a/docs/html/img118.png b/docs/html/img118.png
index 54b8b872..47a31088 100644
Binary files a/docs/html/img118.png and b/docs/html/img118.png differ
diff --git a/docs/html/img119.png b/docs/html/img119.png
index 288b4a80..1dc3fc97 100644
Binary files a/docs/html/img119.png and b/docs/html/img119.png differ
diff --git a/docs/html/img120.png b/docs/html/img120.png
index a802fa08..303731c2 100644
Binary files a/docs/html/img120.png and b/docs/html/img120.png differ
diff --git a/docs/html/img121.png b/docs/html/img121.png
index 88a40ab1..05296cb1 100644
Binary files a/docs/html/img121.png and b/docs/html/img121.png differ
diff --git a/docs/html/img122.png b/docs/html/img122.png
index 2c8ee64c..54b8b872 100644
Binary files a/docs/html/img122.png and b/docs/html/img122.png differ
diff --git a/docs/html/img123.png b/docs/html/img123.png
index 395516d9..288b4a80 100644
Binary files a/docs/html/img123.png and b/docs/html/img123.png differ
diff --git a/docs/html/img124.png b/docs/html/img124.png
index 1cfdaf8a..a802fa08 100644
Binary files a/docs/html/img124.png and b/docs/html/img124.png differ
diff --git a/docs/html/img125.png b/docs/html/img125.png
index 97bf0767..88a40ab1 100644
Binary files a/docs/html/img125.png and b/docs/html/img125.png differ
diff --git a/docs/html/img126.png b/docs/html/img126.png
index 2990ab49..2c8ee64c 100644
Binary files a/docs/html/img126.png and b/docs/html/img126.png differ
diff --git a/docs/html/img127.png b/docs/html/img127.png
index 85cad49a..395516d9 100644
Binary files a/docs/html/img127.png and b/docs/html/img127.png differ
diff --git a/docs/html/img128.png b/docs/html/img128.png
index 8569567c..1cfdaf8a 100644
Binary files a/docs/html/img128.png and b/docs/html/img128.png differ
diff --git a/docs/html/img129.png b/docs/html/img129.png
index 9cf86be4..97bf0767 100644
Binary files a/docs/html/img129.png and b/docs/html/img129.png differ
diff --git a/docs/html/img130.png b/docs/html/img130.png
index 5d5f1071..2990ab49 100644
Binary files a/docs/html/img130.png and b/docs/html/img130.png differ
diff --git a/docs/html/img131.png b/docs/html/img131.png
index 3a1efe12..85cad49a 100644
Binary files a/docs/html/img131.png and b/docs/html/img131.png differ
diff --git a/docs/html/img132.png b/docs/html/img132.png
index 4d735b64..8569567c 100644
Binary files a/docs/html/img132.png and b/docs/html/img132.png differ
diff --git a/docs/html/img133.png b/docs/html/img133.png
index f98b00f1..9cf86be4 100644
Binary files a/docs/html/img133.png and b/docs/html/img133.png differ
diff --git a/docs/html/img134.png b/docs/html/img134.png
index 34eb289a..5d5f1071 100644
Binary files a/docs/html/img134.png and b/docs/html/img134.png differ
diff --git a/docs/html/img135.png b/docs/html/img135.png
index 9639222b..3a1efe12 100644
Binary files a/docs/html/img135.png and b/docs/html/img135.png differ
diff --git a/docs/html/img136.png b/docs/html/img136.png
index 15edd122..4d735b64 100644
Binary files a/docs/html/img136.png and b/docs/html/img136.png differ
diff --git a/docs/html/img137.png b/docs/html/img137.png
deleted file mode 100644
index 32ad73cd..00000000
Binary files a/docs/html/img137.png and /dev/null differ
diff --git a/docs/html/img138.png b/docs/html/img138.png
index 838a32b2..15edd122 100644
Binary files a/docs/html/img138.png and b/docs/html/img138.png differ
diff --git a/docs/html/img139.png b/docs/html/img139.png
index 1d74314f..e69de29b 100644
Binary files a/docs/html/img139.png and b/docs/html/img139.png differ
diff --git a/docs/html/img140.png b/docs/html/img140.png
index c1ed1d0f..f98b00f1 100644
Binary files a/docs/html/img140.png and b/docs/html/img140.png differ
diff --git a/docs/html/img141.png b/docs/html/img141.png
index e69de29b..34eb289a 100644
Binary files a/docs/html/img141.png and b/docs/html/img141.png differ
diff --git a/docs/html/img142.png b/docs/html/img142.png
index db35e8ed..9639222b 100644
Binary files a/docs/html/img142.png and b/docs/html/img142.png differ
diff --git a/docs/html/img143.png b/docs/html/img143.png
index e69de29b..32ad73cd 100644
Binary files a/docs/html/img143.png and b/docs/html/img143.png differ
diff --git a/docs/html/img144.png b/docs/html/img144.png
index d69addb3..838a32b2 100644
Binary files a/docs/html/img144.png and b/docs/html/img144.png differ
diff --git a/docs/html/img145.png b/docs/html/img145.png
index 7e4038a8..1d74314f 100644
Binary files a/docs/html/img145.png and b/docs/html/img145.png differ
diff --git a/docs/html/img146.png b/docs/html/img146.png
index 789a7c2b..c1ed1d0f 100644
Binary files a/docs/html/img146.png and b/docs/html/img146.png differ
diff --git a/docs/html/img147.png b/docs/html/img147.png
index 4254c267..e69de29b 100644
Binary files a/docs/html/img147.png and b/docs/html/img147.png differ
diff --git a/docs/html/img148.png b/docs/html/img148.png
index 4092180a..db35e8ed 100644
Binary files a/docs/html/img148.png and b/docs/html/img148.png differ
diff --git a/docs/html/img149.png b/docs/html/img149.png
index 048420fa..e69de29b 100644
Binary files a/docs/html/img149.png and b/docs/html/img149.png differ
diff --git a/docs/html/img150.png b/docs/html/img150.png
index d02b8235..d69addb3 100644
Binary files a/docs/html/img150.png and b/docs/html/img150.png differ
diff --git a/docs/html/img151.png b/docs/html/img151.png
index aef24ec9..7e4038a8 100644
Binary files a/docs/html/img151.png and b/docs/html/img151.png differ
diff --git a/docs/html/img152.png b/docs/html/img152.png
index ce7361fa..789a7c2b 100644
Binary files a/docs/html/img152.png and b/docs/html/img152.png differ
diff --git a/docs/html/img153.png b/docs/html/img153.png
index ea23ca58..4254c267 100644
Binary files a/docs/html/img153.png and b/docs/html/img153.png differ
diff --git a/docs/html/img154.png b/docs/html/img154.png
index 8388c21d..4092180a 100644
Binary files a/docs/html/img154.png and b/docs/html/img154.png differ
diff --git a/docs/html/img155.png b/docs/html/img155.png
index 49303763..048420fa 100644
Binary files a/docs/html/img155.png and b/docs/html/img155.png differ
diff --git a/docs/html/img156.png b/docs/html/img156.png
index b59c8d89..d02b8235 100644
Binary files a/docs/html/img156.png and b/docs/html/img156.png differ
diff --git a/docs/html/img157.png b/docs/html/img157.png
index bbd4a64a..aef24ec9 100644
Binary files a/docs/html/img157.png and b/docs/html/img157.png differ
diff --git a/docs/html/img158.png b/docs/html/img158.png
index 53e8bebb..ce7361fa 100644
Binary files a/docs/html/img158.png and b/docs/html/img158.png differ
diff --git a/docs/html/img159.png b/docs/html/img159.png
index cc511c98..ea23ca58 100644
Binary files a/docs/html/img159.png and b/docs/html/img159.png differ
diff --git a/docs/html/img160.png b/docs/html/img160.png
index 3905cce7..8388c21d 100644
Binary files a/docs/html/img160.png and b/docs/html/img160.png differ
diff --git a/docs/html/img161.png b/docs/html/img161.png
index 007f4bd1..49303763 100644
Binary files a/docs/html/img161.png and b/docs/html/img161.png differ
diff --git a/docs/html/img162.png b/docs/html/img162.png
index b415b470..b59c8d89 100644
Binary files a/docs/html/img162.png and b/docs/html/img162.png differ
diff --git a/docs/html/img163.png b/docs/html/img163.png
index 6a11e661..bbd4a64a 100644
Binary files a/docs/html/img163.png and b/docs/html/img163.png differ
diff --git a/docs/html/img164.png b/docs/html/img164.png
index 384de393..53e8bebb 100644
Binary files a/docs/html/img164.png and b/docs/html/img164.png differ
diff --git a/docs/html/img165.png b/docs/html/img165.png
index 93e93d68..cc511c98 100644
Binary files a/docs/html/img165.png and b/docs/html/img165.png differ
diff --git a/docs/html/img166.png b/docs/html/img166.png
index 340afd48..3905cce7 100644
Binary files a/docs/html/img166.png and b/docs/html/img166.png differ
diff --git a/docs/html/img167.png b/docs/html/img167.png
index d894ba94..007f4bd1 100644
Binary files a/docs/html/img167.png and b/docs/html/img167.png differ
diff --git a/docs/html/img168.png b/docs/html/img168.png
index 558f7c1e..b415b470 100644
Binary files a/docs/html/img168.png and b/docs/html/img168.png differ
diff --git a/docs/html/img27.png b/docs/html/img27.png
index febfe5af..632b6b74 100644
Binary files a/docs/html/img27.png and b/docs/html/img27.png differ
diff --git a/docs/html/img28.png b/docs/html/img28.png
index f4843d98..febfe5af 100644
Binary files a/docs/html/img28.png and b/docs/html/img28.png differ
diff --git a/docs/html/img29.png b/docs/html/img29.png
index 4b6d5f61..f4843d98 100644
Binary files a/docs/html/img29.png and b/docs/html/img29.png differ
diff --git a/docs/html/img30.png b/docs/html/img30.png
index c0a7d73d..4b6d5f61 100644
Binary files a/docs/html/img30.png and b/docs/html/img30.png differ
diff --git a/docs/html/img31.png b/docs/html/img31.png
index dc5293d0..c0a7d73d 100644
Binary files a/docs/html/img31.png and b/docs/html/img31.png differ
diff --git a/docs/html/img32.png b/docs/html/img32.png
index 3f29355a..dc5293d0 100644
Binary files a/docs/html/img32.png and b/docs/html/img32.png differ
diff --git a/docs/html/img33.png b/docs/html/img33.png
index 7833852c..903173fb 100644
Binary files a/docs/html/img33.png and b/docs/html/img33.png differ
diff --git a/docs/html/img34.png b/docs/html/img34.png
index f0d95692..3f29355a 100644
Binary files a/docs/html/img34.png and b/docs/html/img34.png differ
diff --git a/docs/html/img35.png b/docs/html/img35.png
index 4b88fc0b..7833852c 100644
Binary files a/docs/html/img35.png and b/docs/html/img35.png differ
diff --git a/docs/html/img36.png b/docs/html/img36.png
index 5f399631..f0d95692 100644
Binary files a/docs/html/img36.png and b/docs/html/img36.png differ
diff --git a/docs/html/img37.png b/docs/html/img37.png
index 8ee6a7ae..4b88fc0b 100644
Binary files a/docs/html/img37.png and b/docs/html/img37.png differ
diff --git a/docs/html/img38.png b/docs/html/img38.png
index 7af0b547..737adb03 100644
Binary files a/docs/html/img38.png and b/docs/html/img38.png differ
diff --git a/docs/html/img39.png b/docs/html/img39.png
index b693f7e5..5f399631 100644
Binary files a/docs/html/img39.png and b/docs/html/img39.png differ
diff --git a/docs/html/img40.png b/docs/html/img40.png
index ec712e54..8ee6a7ae 100644
Binary files a/docs/html/img40.png and b/docs/html/img40.png differ
diff --git a/docs/html/img41.png b/docs/html/img41.png
index 38034143..7af0b547 100644
Binary files a/docs/html/img41.png and b/docs/html/img41.png differ
diff --git a/docs/html/img42.png b/docs/html/img42.png
index 6a1cb856..b693f7e5 100644
Binary files a/docs/html/img42.png and b/docs/html/img42.png differ
diff --git a/docs/html/img43.png b/docs/html/img43.png
index 94aa220b..ec712e54 100644
Binary files a/docs/html/img43.png and b/docs/html/img43.png differ
diff --git a/docs/html/img44.png b/docs/html/img44.png
index c4c08188..3c259f79 100644
Binary files a/docs/html/img44.png and b/docs/html/img44.png differ
diff --git a/docs/html/img45.png b/docs/html/img45.png
index 81170511..38034143 100644
Binary files a/docs/html/img45.png and b/docs/html/img45.png differ
diff --git a/docs/html/img46.png b/docs/html/img46.png
index a2b5d2b9..6a1cb856 100644
Binary files a/docs/html/img46.png and b/docs/html/img46.png differ
diff --git a/docs/html/img47.png b/docs/html/img47.png
index a5da47f0..94aa220b 100644
Binary files a/docs/html/img47.png and b/docs/html/img47.png differ
diff --git a/docs/html/img48.png b/docs/html/img48.png
index 4694a8cc..c4c08188 100644
Binary files a/docs/html/img48.png and b/docs/html/img48.png differ
diff --git a/docs/html/img49.png b/docs/html/img49.png
index 98ba300c..81170511 100644
Binary files a/docs/html/img49.png and b/docs/html/img49.png differ
diff --git a/docs/html/img50.png b/docs/html/img50.png
index 14fd3ea0..a2b5d2b9 100644
Binary files a/docs/html/img50.png and b/docs/html/img50.png differ
diff --git a/docs/html/img51.png b/docs/html/img51.png
index 7553b4a8..a5da47f0 100644
Binary files a/docs/html/img51.png and b/docs/html/img51.png differ
diff --git a/docs/html/img52.png b/docs/html/img52.png
index 4f54c6e9..4694a8cc 100644
Binary files a/docs/html/img52.png and b/docs/html/img52.png differ
diff --git a/docs/html/img53.png b/docs/html/img53.png
index 3016a54a..98ba300c 100644
Binary files a/docs/html/img53.png and b/docs/html/img53.png differ
diff --git a/docs/html/img54.png b/docs/html/img54.png
index 31995149..14fd3ea0 100644
Binary files a/docs/html/img54.png and b/docs/html/img54.png differ
diff --git a/docs/html/img55.png b/docs/html/img55.png
index 69185636..7553b4a8 100644
Binary files a/docs/html/img55.png and b/docs/html/img55.png differ
diff --git a/docs/html/img56.png b/docs/html/img56.png
index 3a198f85..4f54c6e9 100644
Binary files a/docs/html/img56.png and b/docs/html/img56.png differ
diff --git a/docs/html/img57.png b/docs/html/img57.png
index a166a3f6..3016a54a 100644
Binary files a/docs/html/img57.png and b/docs/html/img57.png differ
diff --git a/docs/html/img58.png b/docs/html/img58.png
index 34a1d289..31995149 100644
Binary files a/docs/html/img58.png and b/docs/html/img58.png differ
diff --git a/docs/html/img59.png b/docs/html/img59.png
index bb04ee28..69185636 100644
Binary files a/docs/html/img59.png and b/docs/html/img59.png differ
diff --git a/docs/html/img60.png b/docs/html/img60.png
index 1450f40c..3a198f85 100644
Binary files a/docs/html/img60.png and b/docs/html/img60.png differ
diff --git a/docs/html/img61.png b/docs/html/img61.png
index 840e9850..a166a3f6 100644
Binary files a/docs/html/img61.png and b/docs/html/img61.png differ
diff --git a/docs/html/img62.png b/docs/html/img62.png
index 0cb6f7f2..34a1d289 100644
Binary files a/docs/html/img62.png and b/docs/html/img62.png differ
diff --git a/docs/html/img63.png b/docs/html/img63.png
index 8be79679..bb04ee28 100644
Binary files a/docs/html/img63.png and b/docs/html/img63.png differ
diff --git a/docs/html/img64.png b/docs/html/img64.png
index 0cb6f7f2..1450f40c 100644
Binary files a/docs/html/img64.png and b/docs/html/img64.png differ
diff --git a/docs/html/img65.png b/docs/html/img65.png
index 9e29b601..840e9850 100644
Binary files a/docs/html/img65.png and b/docs/html/img65.png differ
diff --git a/docs/html/img66.png b/docs/html/img66.png
index 20b3af47..0cb6f7f2 100644
Binary files a/docs/html/img66.png and b/docs/html/img66.png differ
diff --git a/docs/html/img67.png b/docs/html/img67.png
index a9a08bc8..8be79679 100644
Binary files a/docs/html/img67.png and b/docs/html/img67.png differ
diff --git a/docs/html/img68.png b/docs/html/img68.png
index 75cf0140..0cb6f7f2 100644
Binary files a/docs/html/img68.png and b/docs/html/img68.png differ
diff --git a/docs/html/img69.png b/docs/html/img69.png
index 2b37abe9..9e29b601 100644
Binary files a/docs/html/img69.png and b/docs/html/img69.png differ
diff --git a/docs/html/img70.png b/docs/html/img70.png
index 0da309de..20b3af47 100644
Binary files a/docs/html/img70.png and b/docs/html/img70.png differ
diff --git a/docs/html/img71.png b/docs/html/img71.png
index 4131707b..a9a08bc8 100644
Binary files a/docs/html/img71.png and b/docs/html/img71.png differ
diff --git a/docs/html/img72.png b/docs/html/img72.png
index ba3d4c05..75cf0140 100644
Binary files a/docs/html/img72.png and b/docs/html/img72.png differ
diff --git a/docs/html/img73.png b/docs/html/img73.png
index 7f9a996c..2b37abe9 100644
Binary files a/docs/html/img73.png and b/docs/html/img73.png differ
diff --git a/docs/html/img74.png b/docs/html/img74.png
index b57bf530..0da309de 100644
Binary files a/docs/html/img74.png and b/docs/html/img74.png differ
diff --git a/docs/html/img75.png b/docs/html/img75.png
index 499ac4c5..4131707b 100644
Binary files a/docs/html/img75.png and b/docs/html/img75.png differ
diff --git a/docs/html/img76.png b/docs/html/img76.png
index 10647c53..ba3d4c05 100644
Binary files a/docs/html/img76.png and b/docs/html/img76.png differ
diff --git a/docs/html/img77.png b/docs/html/img77.png
index b5548477..7f9a996c 100644
Binary files a/docs/html/img77.png and b/docs/html/img77.png differ
diff --git a/docs/html/img78.png b/docs/html/img78.png
index d162475d..b57bf530 100644
Binary files a/docs/html/img78.png and b/docs/html/img78.png differ
diff --git a/docs/html/img79.png b/docs/html/img79.png
index 9c2f557f..499ac4c5 100644
Binary files a/docs/html/img79.png and b/docs/html/img79.png differ
diff --git a/docs/html/img80.png b/docs/html/img80.png
index 707525d8..10647c53 100644
Binary files a/docs/html/img80.png and b/docs/html/img80.png differ
diff --git a/docs/html/img81.png b/docs/html/img81.png
index 0630d10e..b5548477 100644
Binary files a/docs/html/img81.png and b/docs/html/img81.png differ
diff --git a/docs/html/img82.png b/docs/html/img82.png
index ff0dce4a..d162475d 100644
Binary files a/docs/html/img82.png and b/docs/html/img82.png differ
diff --git a/docs/html/img83.png b/docs/html/img83.png
index 0763c952..9c2f557f 100644
Binary files a/docs/html/img83.png and b/docs/html/img83.png differ
diff --git a/docs/html/img84.png b/docs/html/img84.png
index e16a2af2..707525d8 100644
Binary files a/docs/html/img84.png and b/docs/html/img84.png differ
diff --git a/docs/html/img85.png b/docs/html/img85.png
index 17e67867..0630d10e 100644
Binary files a/docs/html/img85.png and b/docs/html/img85.png differ
diff --git a/docs/html/img86.png b/docs/html/img86.png
index f110f1aa..ff0dce4a 100644
Binary files a/docs/html/img86.png and b/docs/html/img86.png differ
diff --git a/docs/html/img87.png b/docs/html/img87.png
index 68a5bd7a..0763c952 100644
Binary files a/docs/html/img87.png and b/docs/html/img87.png differ
diff --git a/docs/html/img88.png b/docs/html/img88.png
index f47c9093..e16a2af2 100644
Binary files a/docs/html/img88.png and b/docs/html/img88.png differ
diff --git a/docs/html/img89.png b/docs/html/img89.png
index 79daf797..17e67867 100644
Binary files a/docs/html/img89.png and b/docs/html/img89.png differ
diff --git a/docs/html/img90.png b/docs/html/img90.png
index 23d1fd06..f110f1aa 100644
Binary files a/docs/html/img90.png and b/docs/html/img90.png differ
diff --git a/docs/html/img91.png b/docs/html/img91.png
index b7f166e9..68a5bd7a 100644
Binary files a/docs/html/img91.png and b/docs/html/img91.png differ
diff --git a/docs/html/img92.png b/docs/html/img92.png
index 448dd74a..f47c9093 100644
Binary files a/docs/html/img92.png and b/docs/html/img92.png differ
diff --git a/docs/html/img93.png b/docs/html/img93.png
index 619cdc20..79daf797 100644
Binary files a/docs/html/img93.png and b/docs/html/img93.png differ
diff --git a/docs/html/img94.png b/docs/html/img94.png
index 656e7068..23d1fd06 100644
Binary files a/docs/html/img94.png and b/docs/html/img94.png differ
diff --git a/docs/html/img95.png b/docs/html/img95.png
index 64a22610..b7f166e9 100644
Binary files a/docs/html/img95.png and b/docs/html/img95.png differ
diff --git a/docs/html/img96.png b/docs/html/img96.png
index fe961f95..448dd74a 100644
Binary files a/docs/html/img96.png and b/docs/html/img96.png differ
diff --git a/docs/html/img97.png b/docs/html/img97.png
index 183814e1..619cdc20 100644
Binary files a/docs/html/img97.png and b/docs/html/img97.png differ
diff --git a/docs/html/img98.png b/docs/html/img98.png
index 01d4adf8..656e7068 100644
Binary files a/docs/html/img98.png and b/docs/html/img98.png differ
diff --git a/docs/html/img99.png b/docs/html/img99.png
index 493bdcc4..64a22610 100644
Binary files a/docs/html/img99.png and b/docs/html/img99.png differ
diff --git a/docs/html/index.html b/docs/html/index.html
index c99b1d18..eba632d1 100644
--- a/docs/html/index.html
+++ b/docs/html/index.html
@@ -338,68 +338,70 @@ of a dense vector
psb_amn -- Global minimum absolute value
psb_snd -- Send data
+ HREF="node114.html">psb_nrm2 -- Global 2-norm reduction
psb_rcv -- Receive data
+ HREF="node115.html">psb_snd -- Send data
+psb_rcv -- Receive data
-Error handling
Utilities
-
@@ -139,7 +139,7 @@ Specified as: an integer variable.
It is an error to specify a value for greater than the
number of processes available in the underlying base parallel
environment.
@@ -150,26 +150,26 @@ Specified as: an integer variable.
diff --git a/docs/html/node101.html b/docs/html/node101.html
index dfd0a604..5b1d6453 100644
--- a/docs/html/node101.html
+++ b/docs/html/node101.html
@@ -23,26 +23,26 @@
@@ -101,7 +101,7 @@ Specified as: an integer value.
np
Number of processes in the PSBLAS virtual parallel machine.
@@ -125,14 +125,14 @@ Specified as: an integer variable.
-->
;
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 ;
the only call involving icontxt
that any such process may
execute is to psb_exit
.
diff --git a/docs/html/node102.html b/docs/html/node102.html
index 5f8dc244..a47b5306 100644
--- a/docs/html/node102.html
+++ b/docs/html/node102.html
@@ -23,26 +23,26 @@
@@ -101,7 +101,7 @@ Specified as: a logical variable, default value: true.
This routine may be called even if a previous call to
psb_info
has returned with ; indeed, it it is the only
routine that may be called with argument icontxt
in this
situation.
@@ -122,26 +122,26 @@ Specified as: a logical variable, default value: true.
diff --git a/docs/html/node103.html b/docs/html/node103.html
index 4dc35680..cfea712f 100644
--- a/docs/html/node103.html
+++ b/docs/html/node103.html
@@ -23,26 +23,26 @@
diff --git a/docs/html/node104.html b/docs/html/node104.html
index d63914d6..0598f739 100644
--- a/docs/html/node104.html
+++ b/docs/html/node104.html
@@ -23,26 +23,26 @@
@@ -60,7 +60,7 @@ call psb_get_rank(rank, icontxt, id)
This subroutine returns the MPI rank of the PSBLAS process
Type:
@@ -95,7 +95,7 @@ Specified as: an integer value.
@@ -107,7 +107,7 @@ Specified as: an integer value.
-
-
-
-
- Next: Next: psb_barrier Sinchronization
- Up: Up: Parallel environment routines
- Previous: Previous: psb_get_rank Get
- Contents
diff --git a/docs/html/node106.html b/docs/html/node106.html
index e3f33617..b3fa7726 100644
--- a/docs/html/node106.html
+++ b/docs/html/node106.html
@@ -23,26 +23,26 @@
diff --git a/docs/html/node107.html b/docs/html/node107.html
index 4ed9556c..38a9b41c 100644
--- a/docs/html/node107.html
+++ b/docs/html/node107.html
@@ -23,26 +23,26 @@
diff --git a/docs/html/node108.html b/docs/html/node108.html
index 6c4c6cf1..08c7ae18 100644
--- a/docs/html/node108.html
+++ b/docs/html/node108.html
@@ -23,26 +23,26 @@
@@ -106,7 +106,7 @@ Specified as: an integer value
, default 0
diff --git a/docs/html/node109.html b/docs/html/node109.html
index 551dbe87..4db84594 100644
--- a/docs/html/node109.html
+++ b/docs/html/node109.html
@@ -23,26 +23,26 @@
@@ -94,7 +94,7 @@ scalar, or a rank 1 or 2 array. Type, kind, rank and size must agree on all pro
root
Process to hold the final sum, or to make it available
on all processes.
@@ -109,7 +109,7 @@ Specified as: an integer value
, default -1.
@@ -150,26 +150,26 @@ Type, kind, rank and size must agree on all processes.
diff --git a/docs/html/node11.html b/docs/html/node11.html
index 45baf9c6..4b9ac393 100644
--- a/docs/html/node11.html
+++ b/docs/html/node11.html
@@ -23,26 +23,26 @@
diff --git a/docs/html/node110.html b/docs/html/node110.html
index 1b4376d1..38ebc06e 100644
--- a/docs/html/node110.html
+++ b/docs/html/node110.html
@@ -23,26 +23,26 @@
@@ -94,7 +94,7 @@ scalar, or a rank 1 or 2 array. Type, kind, rank and size must agree on all pro
root
Process to hold the final maximum, or to make it available
on all processes.
@@ -109,7 +109,7 @@ Specified as: an integer value
, default -1.
@@ -149,26 +149,26 @@ scalar, or a rank 1 or 2 array. Type, kind, rank and size must agree on all pro
diff --git a/docs/html/node111.html b/docs/html/node111.html
index e02d317b..7d6b75e5 100644
--- a/docs/html/node111.html
+++ b/docs/html/node111.html
@@ -23,26 +23,26 @@
@@ -94,7 +94,7 @@ scalar, or a rank 1 or 2 array. Type, kind, rank and size must agree on all pro
root
Process to hold the final value, or to make it available
on all processes.
@@ -109,7 +109,7 @@ Specified as: an integer value
, default -1.
@@ -151,26 +151,26 @@ Type, kind, rank and size must agree on all processes.
diff --git a/docs/html/node112.html b/docs/html/node112.html
index ac2d00ad..1caffe50 100644
--- a/docs/html/node112.html
+++ b/docs/html/node112.html
@@ -23,26 +23,26 @@
@@ -94,7 +94,7 @@ scalar, or a rank 1 or 2 array. Type, kind, rank and size must agree on all pro
root
Process to hold the final value, or to make it available
on all processes.
@@ -109,7 +109,7 @@ Specified as: an integer value
, default -1.
@@ -149,26 +149,26 @@ scalar, or a rank 1 or 2 array. Type, kind, rank and size must agree on all pro
diff --git a/docs/html/node113.html b/docs/html/node113.html
index fa016fed..ed8dd494 100644
--- a/docs/html/node113.html
+++ b/docs/html/node113.html
@@ -23,26 +23,26 @@
@@ -94,7 +94,7 @@ scalar, or a rank 1 or 2 array. Type, kind, rank and size must agree on all pro
root
Process to hold the final value, or to make it available
on all processes.
@@ -109,7 +109,7 @@ Specified as: an integer value
, default -1.
@@ -151,26 +151,26 @@ Type, kind, rank and size must agree on all processes.
diff --git a/docs/html/node114.html b/docs/html/node114.html
index efbd8b82..8705ed4b 100644
--- a/docs/html/node114.html
+++ b/docs/html/node114.html
@@ -3,8 +3,8 @@
-psb_snd -- Send data
-
+psb_nrm2 -- Global 2-norm reduction
+
@@ -23,45 +23,46 @@
-call psb_snd(icontxt, dat, dst, m)
+call psb_nrm2(icontxt, dat, root)
-This subroutine sends a packet of data to a destination.
+This subroutine implements a 2-norm value reduction
+operation based on the underlying communication library.
Type:
-Synchronous: see usage notes.
+Synchronous.
On Entry
@@ -79,65 +80,38 @@ Intent: in .
Specified as: an integer variable.
dat
-The data to be sent.
+The local contribution to the global minimum.
Scope: local .
Type: required .
-Intent: in .
+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 is
-not specified, size must agree as well.
+Specified as: a real variable, which may be a
+scalar, or a rank 1 array. Kind, rank and size must agree on all processes.
- dst
-Destination process.
-
-Scope: global .
-
-Type: required .
-
-Intent: in .
-
-Specified as: an integer value
- .
-
-m
-Number of rows.
+ root
+Process to hold the final value, or to make it available
+ on all processes.
Scope: global .
-Type: Optional .
+Type: optional .
Intent: in .
Specified as: an integer value
.
-
-When is a rank 2 array, specifies the number of rows to be sent
-independently of the leading dimension ; must have the
-same value on sending and receiving processes.
-
+ ALT="$-1<= root <= np-1$">, default -1.
+
@@ -145,17 +119,57 @@ same value on sending and receiving processes.
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
-This subroutine implies a synchronization, but only between the
- calling process and the destination process This reduction is appropriate to compute the results of multiple
+ (local) NRM2 operations at the same time.
+
+Denoting by the value of the variable .
+ ALT="$dat$"> on process
+ , the output is equivalent to the computation of
+
+
+
+
+
+
+
+
+with care taken to avoid unnecessary overflow.
+
+The dat
argument is both input and output, and its
+ value may be changed even on processes different from the final
+ result destination.
@@ -163,26 +177,26 @@ same value on sending and receiving processes.
diff --git a/docs/html/node115.html b/docs/html/node115.html
index fe5ecb79..6cec0e29 100644
--- a/docs/html/node115.html
+++ b/docs/html/node115.html
@@ -3,8 +3,8 @@
-psb_rcv -- Receive data
-
+psb_snd -- Send data
+
@@ -14,6 +14,7 @@
+
@@ -22,45 +23,45 @@
-call psb_rcv(icontxt, dat, src, m)
+call psb_snd(icontxt, dat, dst, m)
-This subroutine receives a packet of data to a destination.
+This subroutine sends a packet of data to a destination.
Type:
-Synchronous: see usage notes.
+Synchronous: see usage notes.
On Entry
@@ -77,8 +78,24 @@ Intent: in .
Specified as: an integer variable.
-src
-Source process.
+ 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 is
+not specified, size must agree as well.
+
+dst
+Destination process.
Scope: global .
@@ -87,12 +104,12 @@ Type: required .
Intent: in .
Specified as: an integer value
.
+ WIDTH="145" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
+ SRC="img141.png"
+ ALT="$0<= dst <= np-1$">.
m
Number of rows.
@@ -108,16 +125,16 @@ Specified as: an integer value
.
When is a rank 2 array, specifies the number of rows to be sent
independently of the leading dimension ; must have the
same value on sending and receiving processes.
@@ -128,22 +145,6 @@ 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 is
-not specified, size must agree as well.
-
@@ -151,10 +152,10 @@ not specified, size must agree as well.
This subroutine implies a synchronization, but only between the
- calling process and the source process .
+ calling process and the destination process .
@@ -162,26 +163,26 @@ not specified, size must agree as well.
diff --git a/docs/html/node116.html b/docs/html/node116.html
index 722847c9..36fffd05 100644
--- a/docs/html/node116.html
+++ b/docs/html/node116.html
@@ -3,8 +3,8 @@
-Error handling
-
+psb_rcv -- Receive data
+
@@ -14,327 +14,174 @@
-
-
-
+
+
-
-
-
-The PSBLAS library error handling policy has been completely rewritten
-in version 2.0. The idea behind the design of this new error handling
-strategy is to keep error messages on a stack allowing the user to
-trace back up to the point where the first error message has been
-generated. Every routine in the PSBLAS-2.0 library has, as last
-non-optional argument, an integer info
variable; whenever,
-inside the routine, an error is detected, this variable is set to a
-value corresponding to a specific error code. Then this error code is
-also pushed on the error stack and then either control is returned to
-the caller routine or the execution is aborted, depending on the users
-choice. At the time when the execution is aborted, an error message is
-printed on standard output with a level of verbosity than can be
-chosen by the user. If the execution is not aborted, then, the caller
-routine checks the value returned in the info
variable and, if
-not zero, an error condition is raised. This process continues on all the
-levels of nested calls until the level where the user decides to abort
-the program execution.
-
-
-Figure 9 shows the layout of a generic psb_foo
-routine with respect to the PSBLAS-2.0 error handling policy. It is
-possible to see how, whenever an error condition is detected, the
-info
variable is set to the corresponding error code which is,
-then, pushed on top of the stack by means of the
-psb_errpush
. An error condition may be directly detected inside
-a routine or indirectly checking the error code returned returned by a
-called routine. Whenever an error is encountered, after it has been
-pushed on stack, the program execution skips to a point where the
-error condition is handled; the error condition is handled either by
-returning control to the caller routine or by calling the
-psb\_error
routine which prints the content of the error stack
-and aborts the program execution, according to the choice made by the
-user with psb_set_erraction
. The default is to print the error
-and terminate the program, but the user may choose to handle the error
-explicitly.
-
-
-
-
-
-Figure 9:
-The layout of a generic psb_foo
- routine with respect to PSBLAS-2.0 error handling policy.
-
-
-
-
-
-
-
-
-
-
-
-Figure 10 reports a sample error message generated by
-the PSBLAS-2.0 library. This error has been generated by the fact that
-the user has chosen the invalid “FOO” storage format to represent
-the sparse matrix. From this error message it is possible to see that
-the error has been detected inside the psb_cest
subroutine
-called by psb_spasb
... by process 0 (i.e. the root process).
-
-
-
-
-
-Figure 10:
-A sample PSBLAS-2.0 error
- message. Process 0 detected an error condition inside the psb_cest subroutine
-
-
-
-
-
-
-
-
-
-
-
-ifstarsubroutinesubroutinepsb_errpushPushes an error code onto the error
- stack
+
-
-
-
+
+call psb_rcv(icontxt, dat, src, m)
+
+This subroutine receives a packet of data to a destination.
Type:
-Asynchronous.
+Synchronous: see usage notes.
- On Entry
+On Entry
-err_c
-the error code
+ icontxt
+the communication context identifying the virtual
+ parallel machine.
-Scope: local
+Scope: global .
-Type: required
+Type: required .
Intent: in .
-Specified as: an integer.
+Specified as: an integer variable.
-r_name
-the soutine where the error has been caught.
+ src
+Source process.
-Scope: local
+Scope: global .
-Type: required
+Type: required .
Intent: in .
-Specified as: a string.
-
-i_err
-addional info for error code
-
-Scope: local
-
-Type: optional
-
-Specified as: an integer array
-
-a_err
-addional info for error code
-
-Scope: local
-
-Type: optional
-
-Specified as: a string.
-
-
-
-
-ifstarsubroutinesubroutinepsb_errorPrints the error stack content and aborts
- execution
-
-
-
-
+
-
-
-
-
-Type:
-Asynchronous.
-
-On Entry
-
-
-icontxt
-the communication context.
+ ALT="$0<= src <= np-1$"> .
+
+
m
+Number of rows.
-Scope: global
+Scope: global .
-Type: optional
+Type: Optional .
Intent: in .
-Specified as: an integer.
+Specified as: an integer value
+ .
+
+When is a rank 2 array, specifies the number of rows to be sent
+independently of the leading dimension ; must have the
+same value on sending and receiving processes.
-
-ifstarsubroutinesubroutinepsb_set_errverbositySets the verbosity of error
- messages.
-
-
-
-
-
-
-Type:
-Asynchronous.
-
-On Entry
+On Return
-v
-the verbosity level
+ dat
+The data to be received.
-Scope: global
+Scope: local .
-Type: required
+Type: required .
-Intent: in .
+Intent: inout .
-Specified as: an integer.
+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 is
+not specified, size must agree as well.
-ifstarsubroutinesubroutinepsb_set_erractionSet the type of action to be
- taken upon error condition.
-
-
-
-
-
+Notes
-
-
-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
.
-
-
+
+This subroutine implies a synchronization, but only between the
+ calling process and the source process .
+
+
diff --git a/docs/html/node117.html b/docs/html/node117.html
index 6d648c85..0372bfcb 100644
--- a/docs/html/node117.html
+++ b/docs/html/node117.html
@@ -3,8 +3,8 @@
-Utilities
-
+Error handling
+
@@ -14,8 +14,8 @@
-
-
+
+
@@ -23,69 +23,320 @@
-
-We have some utilities available for input and output of
-sparse matrices; the interfaces to these routines are available in the
-module psb_util_mod
.
-
-
-
-
-Subsections
-
-
-
-
+The PSBLAS library error handling policy has been completely rewritten
+in version 2.0. The idea behind the design of this new error handling
+strategy is to keep error messages on a stack allowing the user to
+trace back up to the point where the first error message has been
+generated. Every routine in the PSBLAS-2.0 library has, as last
+non-optional argument, an integer info
variable; whenever,
+inside the routine, an error is detected, this variable is set to a
+value corresponding to a specific error code. Then this error code is
+also pushed on the error stack and then either control is returned to
+the caller routine or the execution is aborted, depending on the users
+choice. At the time when the execution is aborted, an error message is
+printed on standard output with a level of verbosity than can be
+chosen by the user. If the execution is not aborted, then, the caller
+routine checks the value returned in the info
variable and, if
+not zero, an error condition is raised. This process continues on all the
+levels of nested calls until the level where the user decides to abort
+the program execution.
+
+
+Figure 9 shows the layout of a generic psb_foo
+routine with respect to the PSBLAS-2.0 error handling policy. It is
+possible to see how, whenever an error condition is detected, the
+info
variable is set to the corresponding error code which is,
+then, pushed on top of the stack by means of the
+psb_errpush
. An error condition may be directly detected inside
+a routine or indirectly checking the error code returned returned by a
+called routine. Whenever an error is encountered, after it has been
+pushed on stack, the program execution skips to a point where the
+error condition is handled; the error condition is handled either by
+returning control to the caller routine or by calling the
+psb\_error
routine which prints the content of the error stack
+and aborts the program execution, according to the choice made by the
+user with psb_set_erraction
. The default is to print the error
+and terminate the program, but the user may choose to handle the error
+explicitly.
+
+
+
+
+
+Figure 9:
+The layout of a generic psb_foo
+ routine with respect to PSBLAS-2.0 error handling policy.
+
+
+
+
+
+
+
+
+
+
+
+Figure 10 reports a sample error message generated by
+the PSBLAS-2.0 library. This error has been generated by the fact that
+the user has chosen the invalid “FOO” storage format to represent
+the sparse matrix. From this error message it is possible to see that
+the error has been detected inside the psb_cest
subroutine
+called by psb_spasb
... by process 0 (i.e. the root process).
+
+
+
+
+
+Figure 10:
+A sample PSBLAS-2.0 error
+ message. Process 0 detected an error condition inside the psb_cest subroutine
+
+
+
+
+
+
+
+
+
+
+
+ifstarsubroutinesubroutinepsb_errpushPushes an error code onto the error
+ stack
+
+
+
+
+
+
+
+
+Type:
+Asynchronous.
+
+On Entry
+
+
+err_c
+the error code
+
+Scope: local
+
+Type: required
+
+Intent: in .
+
+Specified as: an integer.
+
+r_name
+the soutine where the error has been caught.
+
+Scope: local
+
+Type: required
+
+Intent: in .
+
+Specified as: a string.
+
+i_err
+addional info for error code
+
+Scope: local
+
+Type: optional
+
+Specified as: an integer array
+
+a_err
+addional info for error code
+
+Scope: local
+
+Type: optional
+
+Specified as: a string.
+
+
+
+
+ifstarsubroutinesubroutinepsb_errorPrints the error stack content and aborts
+ execution
+
+
+
+
+
+
+
+
+Type:
+Asynchronous.
+
+On Entry
+
+
+icontxt
+the communication context.
+
+Scope: global
+
+Type: optional
+
+Intent: in .
+
+Specified as: an integer.
+
+
+
+
+ifstarsubroutinesubroutinepsb_set_errverbositySets the verbosity of error
+ messages.
+
+
+
+
+
+
+
+
+Type:
+Asynchronous.
+
+On Entry
+
+
+v
+the verbosity level
+
+Scope: global
+
+Type: required
+
+Intent: in .
+
+Specified as: an integer.
+
+
+
+
+ifstarsubroutinesubroutinepsb_set_erractionSet the type of action to be
+ taken upon error condition.
+
+
+
+
+
+
+
+
+Type:
+Asynchronous.
+
+On Entry
+
+
+err_act
+the type of action.
+
+Scope: global
+
+Type: required
+
+Intent: in .
+
+Specified as: an integer. Possible values: psb_act_ret
,
+psb_act_abort
.
+
+
+
+
+
+
+
diff --git a/docs/html/node118.html b/docs/html/node118.html
index 599c2e06..51ceff35 100644
--- a/docs/html/node118.html
+++ b/docs/html/node118.html
@@ -3,8 +3,8 @@
-hb_read -- Read a sparse matrix from a file in the Harwell-Boeing format
-
+Utilities
+
@@ -14,146 +14,78 @@
-
+
-
+
-
- hb_read -- Read a sparse matrix from a file in the
- Harwell-Boeing format
-
-
-
-
-
+
+
+Utilities
+
-
-Type:
-Asynchronous.
-
-On Entry
-
-
-filename
-The name of the file to be read.
-
-Type:optional .
-
-Specified as: a character variable containing a valid file name, or
--
, in which case the default input unit 5 (i.e. standard input
-in Unix jargon) is used. Default: -
.
-
-iunit
-The Fortran file unit number.
-
-Type:optional .
-
-Specified as: an integer value. Only meaningful if filename is not -
.
-
-
-
-
-
-On Return
-
-
-a
-the sparse matrix read from file.
-
-Type:required .
-
-Specified as: a structured data of type spdatapsb_Tspmat_type .
-
-b
-Rigth hand side(s).
-
-Type: Optional
-
-An array of type real or complex, rank 2 and having the ALLOCATABLE
-attribute; will be allocated and filled in if the input file contains
-a right hand side, otherwise will be left in the UNALLOCATED state.
-
-mtitle
-Matrix title.
-
-Type: Optional
-
-A charachter variable of length 72 holding a copy of the
-matrix title as specified by the Harwell-Boeing format and contained
-in the input file.
-
-iret
-Error code.
-
-Type: required
-
-An integer value; 0 means no error has been detected.
-
-
+We have some utilities available for input and output of
+sparse matrices; the interfaces to these routines are available in the
+module psb_util_mod
.
+
+
+Subsections
-
-
+
+
+
diff --git a/docs/html/node119.html b/docs/html/node119.html
index cd4e702c..6610f191 100644
--- a/docs/html/node119.html
+++ b/docs/html/node119.html
@@ -3,8 +3,8 @@
-hb_write -- Write a sparse matrix to a file in the Harwell-Boeing format
-
+hb_read -- Read a sparse matrix from a file in the Harwell-Boeing format
+
@@ -16,50 +16,50 @@
-
+
-
-hb_write -- Write a sparse matrix to a file
- in the Harwell-Boeing format
+
+ hb_read -- Read a sparse matrix from a file in the
+ Harwell-Boeing format
@@ -71,29 +71,13 @@ call hb_write(a, iret, iunit, filename, key, rhs, mtitle)
On Entry
-a
-the sparse matrix to be written.
-
-Type:required .
-
-Specified as: a structured data of type spdatapsb_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.
+The name of the file to be read.
Type:optional .
Specified as: a character variable containing a valid file name, or
--
, in which case the default output unit 6 (i.e. standard output
+-
, in which case the default input unit 5 (i.e. standard input
in Unix jargon) is used. Default: -
.
iunit
@@ -103,30 +87,37 @@ Type:optional .
Specified as: an integer value. Only meaningful if filename is not -
.
-key
-Matrix key.
+
+
+
+
+On Return
+
+
+a
+the sparse matrix read from file.
+
+Type:required .
+
+Specified as: a structured data of type spdatapsb_Tspmat_type .
+
+b
+Rigth hand side(s).
Type: Optional
-A charachter variable of length 8 holding the
-matrix key as specified by the Harwell-Boeing format and to be
-written to file.
+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 the
-matrix title as specified by the Harwell-Boeing format and to be
-written to file.
-
-
-
-
-
-On Return
-
+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.
@@ -141,26 +132,26 @@ An integer value; 0 means no error has been detected.
diff --git a/docs/html/node12.html b/docs/html/node12.html
index 3b5d602d..c6856edc 100644
--- a/docs/html/node12.html
+++ b/docs/html/node12.html
@@ -23,26 +23,26 @@
diff --git a/docs/html/node120.html b/docs/html/node120.html
index d3692040..b796086e 100644
--- a/docs/html/node120.html
+++ b/docs/html/node120.html
@@ -3,8 +3,8 @@
-mm_mat_read -- Read a sparse matrix from a file in the MatrixMarket format
-
+hb_write -- Write a sparse matrix to a file in the Harwell-Boeing format
+
@@ -16,50 +16,50 @@
-
+
-
-mm_mat_read -- Read a sparse matrix from a
- file in the MatrixMarket format
+
+hb_write -- Write a sparse matrix to a file
+ in the Harwell-Boeing format
@@ -71,13 +71,29 @@ call mm_mat_read(a, iret, iunit, filename)
On Entry
+a
+the sparse matrix to be written.
+
+Type:required .
+
+Specified as: a structured data of type spdatapsb_Tspmat_type .
+
+b
+Rigth hand side.
+
+Type: Optional
+
+An array of type real or complex, rank 1 and having the ALLOCATABLE
+attribute; will be allocated and filled in if the input file contains
+a right hand side.
+
filename
-The name of the file to be read.
+The name of the file to be written to.
Type:optional .
Specified as: a character variable containing a valid file name, or
--
, in which case the default input unit 5 (i.e. standard input
+-
, in which case the default output unit 6 (i.e. standard output
in Unix jargon) is used. Default: -
.
iunit
@@ -87,6 +103,24 @@ 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.
+
@@ -94,13 +128,6 @@ Specified as: an integer value. Only meaningful if filename is not -
On Return
-a
-the sparse matrix read from file.
-
-Type:required .
-
-Specified as: a structured data of type spdatapsb_Tspmat_type .
-
iret
Error code.
@@ -111,7 +138,31 @@ An integer value; 0 means no error has been detected.
-
+
+
+
diff --git a/docs/html/node121.html b/docs/html/node121.html
index dacbb994..52f273d2 100644
--- a/docs/html/node121.html
+++ b/docs/html/node121.html
@@ -3,8 +3,8 @@
-mm_array_read -- Read a dense array from a file in the MatrixMarket format
-
+mm_mat_read -- Read a sparse matrix from a file in the MatrixMarket format
+
@@ -16,50 +16,50 @@
-
+
-
-mm_array_read -- Read a dense array from a
+
+mm_mat_read -- Read a sparse matrix from a
file in the MatrixMarket format
@@ -94,14 +94,12 @@ Specified as: an integer value. Only meaningful if filename is not -
On Return
-b
-Rigth hand side(s).
+ a
+the sparse matrix read from file.
-Type: required
+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.
+Specified as: a structured data of type spdatapsb_Tspmat_type .
iret
Error code.
diff --git a/docs/html/node122.html b/docs/html/node122.html
index 27dc3d18..557f80d0 100644
--- a/docs/html/node122.html
+++ b/docs/html/node122.html
@@ -3,8 +3,8 @@
-mm_mat_write -- Write a sparse matrix to a file in the MatrixMarket format
-
+mm_array_read -- Read a dense array from a file in the MatrixMarket format
+
@@ -16,52 +16,54 @@
-
+
-
-mm_mat_write -- Write a sparse matrix to a
+
+mm_array_read -- Read a dense array from a
file in the MatrixMarket format
+
+
Type:
Asynchronous.
@@ -69,28 +71,13 @@ call mm_mat_write(a, mtitle, iret, iunit, filename)
On Entry
-a
-the sparse matrix to be written.
-
-Type:required .
-
-Specified as: a structured data of type spdatapsb_Tspmat_type .
-
-mtitle
-Matrix title.
-
-Type: required
-
-A charachter variable holding a descriptive title for the matrix to be
- written to file.
-
filename
-The name of the file to be written to.
+The name of the file to be read.
Type:optional .
Specified as: a character variable containing a valid file name, or
--
, in which case the default output unit 6 (i.e. standard output
+-
, in which case the default input unit 5 (i.e. standard input
in Unix jargon) is used. Default: -
.
iunit
@@ -107,6 +94,15 @@ 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.
diff --git a/docs/html/node123.html b/docs/html/node123.html
index 1dc181f9..bcd55f5e 100644
--- a/docs/html/node123.html
+++ b/docs/html/node123.html
@@ -3,8 +3,8 @@
-mm_array_write -- Write a dense array from a file in the MatrixMarket format
-
+mm_mat_write -- Write a sparse matrix to a file in the MatrixMarket format
+
@@ -14,55 +14,54 @@
+
-
+
-
-mm_array_write -- Write a dense array from a
+
+mm_mat_write -- Write a sparse matrix to a
file in the MatrixMarket format
-
-
Type:
Asynchronous.
@@ -70,19 +69,28 @@ call mm_array_write(b, iret, iunit, filename)
On Entry
-b
-Rigth hand side(s).
+ a
+the sparse matrix to be written.
+
+Type:required .
+
+Specified as: a structured data of type spdatapsb_Tspmat_type .
+
+mtitle
+Matrix title.
Type: required
-An array of type real or complex, rank 1 or 2; will be written..
+A charachter variable holding a descriptive title for the matrix to be
+ written to file.
+
filename
-The name of the file to be written.
+The name of the file to be written to.
Type:optional .
Specified as: a character variable containing a valid file name, or
--
, in which case the default input unit 5 (i.e. standard input
+-
, in which case the default output unit 6 (i.e. standard output
in Unix jargon) is used. Default: -
.
iunit
diff --git a/docs/html/node124.html b/docs/html/node124.html
index 56ba1c09..1ea293a1 100644
--- a/docs/html/node124.html
+++ b/docs/html/node124.html
@@ -3,8 +3,8 @@
-Preconditioner routines
-
+mm_array_write -- Write a dense array from a file in the MatrixMarket format
+
@@ -14,84 +14,101 @@
-
-
-
+
+
-
-
-
-Preconditioner routines
-
+
+mm_array_write -- Write a dense array from a
+ file in the MatrixMarket format
+
- 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
+
+
+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 -
.
+
+
-
-
-Subsections
+
+On Return
+
+
+iret
+Error code.
+
+Type: required
+
+An integer value; 0 means no error has been detected.
+
+
-
-
+
diff --git a/docs/html/node125.html b/docs/html/node125.html
index ff0b640a..8457a092 100644
--- a/docs/html/node125.html
+++ b/docs/html/node125.html
@@ -3,8 +3,8 @@
-init -- Initialize a preconditioner
-
+Preconditioner routines
+
@@ -14,126 +14,85 @@
-
-
-
+
+
+
-
-init -- Initialize a preconditioner
-
+
+
+
+Preconditioner routines
+
-
-call prec%init(ptype, info)
-
+ The base PSBLAS library contains the implementation of two simple
+preconditioning techniques:
-
-
-Type:
-Asynchronous.
-
-On Entry
-
-
-ptype
-the type of preconditioner.
-Scope: global
-
-Type: required
-
-Intent: in .
-
-Specified as: a character string, see usage notes.
-
-On Exit
-
-
-prec
-Scope: local
-
-Type: required
-
-Intent: inout .
-
-Specified as: a preconditioner data structure precdatapsb_prec_type .
-
-info
-Scope: global
-
-Type: required
-
-Intent: out .
-
-Error code: if no error, 0 is returned.
-
-
-Notes
-Legal inputs to this subroutine are interpreted depending on the
- 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 ;
-
-BJAC
-Precondition by a factorization of the
- block-diagonal of matrix , where block boundaries are determined
- by the data allocation boundaries for each process; requires no
- communication. Only the incomplete factorization is
- currently implemented.
-
-
+
+Diagonal Scaling
+
+Block Jacobi with ILU(0) factorization
+
+
+The supporting data type and subroutine interfaces are defined in the
+module psb_prec_mod
.
+The old interfaces psb_precinit
and psb_precbld
are still supported for
+backward compatibility
+
+Subsections
+
+
+
+
diff --git a/docs/html/node126.html b/docs/html/node126.html
index deaa93f6..911c5042 100644
--- a/docs/html/node126.html
+++ b/docs/html/node126.html
@@ -3,8 +3,8 @@
-build -- Builds a preconditioner
-
+init -- Initialize a preconditioner
+
@@ -16,179 +16,124 @@
-
+
-
-build -- Builds a preconditioner
+
+init -- Initialize a preconditioner
-call prec%build(a, desc_a, info[,amold,vmold,imold])
+call prec%init(ptype, info)
Type:
-Synchronous.
+Asynchronous.
On Entry
-a
-the system sparse matrix.
-Scope: local
+ ptype
+the type of preconditioner.
+Scope: global
Type: required
-Intent: in , target.
+Intent: in .
-Specified as: a sparse matrix data structure spdatapsb_Tspmat_type .
+Specified as: a character string, see usage notes.
+
+On Exit
+
prec
-the preconditioner.
-
-Scope: local
+Scope: local
Type: required
Intent: inout .
-Specified as: an already initialized precondtioner data structure precdatapsb_prec_type
-
- desc_a
-the problem communication descriptor.
-Scope: local
-
-Type: required
-
-Intent: in , target.
-
-Specified as: a communication descriptor data structure descdatapsb_desc_type .
+Specified as: a preconditioner data structure precdatapsb_prec_type .
-amold
-The desired dynamic type for the internal matrix storage.
-
-Scope: local .
-
-Type: optional .
-
-Intent: in .
-
-Specified as: an object of a class derived from spbasedatapsb_T_base_sparse_mat .
-
-vmold
-The desired dynamic type for the internal vector storage.
-
-Scope: local .
-
-Type: optional .
-
-Intent: in .
-
-Specified as: an object of a class derived from vbasedatapsb_T_base_vect_type .
-
-imold
-The desired dynamic type for the internal integer vector storage.
-
-Scope: local .
+ info
+Scope: global
-Type: optional .
+Type: required
-Intent: in .
+Intent: out .
-Specified as: an object of a class derived from (integer) vbasedatapsb_T_base_vect_type .
+Error code: if no error, 0 is returned.
-
-
+Notes
+Legal inputs to this subroutine are interpreted depending on the
+ string as follows4 :
-On Return
-
+ NONE
+No preconditioning, i.e. the preconditioner is just a copy
+ operator.
-prec
-the preconditioner.
-
-Scope: local
-
-Type: required
-
-Intent: inout .
-
-Specified as: a precondtioner data structure precdatapsb_prec_type
-
-info
-Error code.
-
-Scope: local
-
-Type: required
-
-Intent: out .
-
-An integer value; 0 means no error has been detected.
+ 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 ;
+
+BJAC
+Precondition by a factorization of the
+ block-diagonal of matrix , where block boundaries are determined
+ by the data allocation boundaries for each process; requires no
+ communication. Only the incomplete factorization is
+ currently implemented.
-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/node127.html b/docs/html/node127.html
index 01d2e04c..8b9f0e3d 100644
--- a/docs/html/node127.html
+++ b/docs/html/node127.html
@@ -3,8 +3,8 @@
-apply -- Preconditioner application routine
-
+build -- Builds a preconditioner
+
@@ -16,47 +16,45 @@
-
+
-
-apply -- Preconditioner application
- routine
+
+build -- Builds a preconditioner
-call prec%apply(x,y,desc_a,info,trans,work)
-call prec%apply(x,desc_a,info,trans)
+call prec%build(a, desc_a, info[,amold,vmold,imold])
@@ -67,54 +65,69 @@ call prec%apply(x,desc_a,info,trans)
On Entry
-prec
-the preconditioner.
+ a
+the system sparse matrix.
Scope: local
Type: required
-Intent: in .
+Intent: in , target.
-Specified as: a preconditioner data structure precdatapsb_prec_type .
+Specified as: a sparse matrix data structure spdatapsb_Tspmat_type .
-x
-the source vector.
+ prec
+the preconditioner.
+
Scope: local
Type: required
Intent: inout .
-Specified as: a rank one array or an object of type vdatapsb_T_vect_type .
-
+Specified as: an already initialized precondtioner data structure precdatapsb_prec_type
+
desc_a
-the problem communication descriptor.
+the problem communication descriptor.
Scope: local
Type: required
+Intent: in , target.
+
+Specified as: a communication descriptor data structure descdatapsb_desc_type .
+
+ amold
+The desired dynamic type for the internal matrix storage.
+
+Scope: local .
+
+Type: optional .
+
Intent: in .
-Specified as: a communication data structure descdatapsb_desc_type .
+Specified as: an object of a class derived from spbasedatapsb_T_base_sparse_mat .
-trans
-Scope:
+ vmold
+The desired dynamic type for the internal vector storage.
+
+Scope: local .
-Type: optional
+Type: optional .
Intent: in .
-Specified as: a character.
+Specified as: an object of a class derived from vbasedatapsb_T_base_vect_type .
-work
-an optional work space
-Scope: local
+ imold
+The desired dynamic type for the internal integer vector storage.
-Type: optional
+Scope: local .
-Intent: inout .
+Type: optional .
-Specified as: a double precision array.
+Intent: in .
+
+Specified as: an object of a class derived from (integer) vbasedatapsb_T_base_vect_type .
@@ -123,16 +136,17 @@ Specified as: a double precision array.
On Return
-y
-the destination vector.
+ prec
+the preconditioner.
+
Scope: local
Type: required
Intent: inout .
-Specified as: a rank one array or an object of type vdatapsb_T_vect_type .
-
+Specified as: a precondtioner data structure precdatapsb_prec_type
+
info
Error code.
@@ -145,9 +159,36 @@ Intent: out .
An integer value; 0 means no error has been detected.
+The amold
, vmold
and imold
arguments may be
+employed to interface with special devices, such as GPUs and other
+accelerators.
-
+
+
+
diff --git a/docs/html/node128.html b/docs/html/node128.html
index 1fe31481..8905355e 100644
--- a/docs/html/node128.html
+++ b/docs/html/node128.html
@@ -3,8 +3,8 @@
-descr -- Prints a description of current preconditioner
-
+apply -- Preconditioner application routine
+
@@ -16,53 +16,53 @@
-
+
-
-descr -- Prints a description of current
- preconditioner
+
+apply -- Preconditioner application
+ routine
-call prec%descr()
-call prec%descr(iout, root)
+call prec%apply(x,y,desc_a,info,trans,work)
+call prec%apply(x,desc_a,info,trans)
Type:
-Asynchronous.
+Synchronous.
On Entry
@@ -77,33 +77,72 @@ Intent: in .
Specified as: a preconditioner data structure precdatapsb_prec_type .
-iout
-output unit.
+ x
+the source vector.
+Scope: local
+
+Type: required
+
+Intent: inout .
+
+Specified as: a rank one array or an object of type vdatapsb_T_vect_type .
+
+desc_a
+the problem communication descriptor.
Scope: local
+Type: required
+
+Intent: in .
+
+Specified as: a communication data structure descdatapsb_desc_type .
+
+trans
+Scope:
+
Type: optional
Intent: in .
-Specified as: an integer number. Default: default output unit.
+Specified as: a character.
-root
-Process from which to print
+ work
+an optional work space
Scope: local
Type: optional
-Intent: in .
+Intent: inout .
+
+Specified as: a double precision array.
+
+
+
+
+
+On Return
+
+
+y
+the destination vector.
+Scope: local
+
+Type: required
+
+Intent: inout .
+
+Specified as: a rank one array or an object of type vdatapsb_T_vect_type .
+
+info
+Error code.
+
+Scope: local
+
+Type: required
+
+Intent: out .
-Specified as: an integer number between 0 and , in which case
-the specified process will print the description, or , in which case
-all processes will print. Default: 0.
+An integer value; 0 means no error has been detected.
diff --git a/docs/html/node129.html b/docs/html/node129.html
index a2c27a0a..618c5cc7 100644
--- a/docs/html/node129.html
+++ b/docs/html/node129.html
@@ -3,8 +3,8 @@
-clone -- clone current preconditioner
-
+descr -- Prints a description of current preconditioner
+
@@ -16,45 +16,47 @@
-
+
-
-clone -- clone current
+
+descr -- Prints a description of current
preconditioner
+
-call prec%clone(precout,info)
+call prec%descr()
+call prec%descr(iout, root)
@@ -67,21 +69,41 @@ call prec%clone(precout,info)
prec
the preconditioner.
+Scope: local
-Scope: local .
-
-
-
-
-
-On Return
-
+Type: required
+
+Intent: in .
+
+Specified as: a preconditioner data structure precdatapsb_prec_type .
-precout
-A copy of the input object.
+ iout
+output unit.
+Scope: local
+
+Type: optional
+
+Intent: in .
+
+Specified as: an integer number. Default: default output unit.
-info
-Return code.
+ root
+Process from which to print
+Scope: local
+
+Type: optional
+
+Intent: in .
+
+Specified as: an integer number between 0 and , in which case
+the specified process will print the description, or , in which case
+all processes will print. Default: 0.
diff --git a/docs/html/node13.html b/docs/html/node13.html
index 41f19a65..f4ae181b 100644
--- a/docs/html/node13.html
+++ b/docs/html/node13.html
@@ -23,26 +23,26 @@
diff --git a/docs/html/node130.html b/docs/html/node130.html
index 417e761a..ef704e03 100644
--- a/docs/html/node130.html
+++ b/docs/html/node130.html
@@ -3,8 +3,8 @@
-free -- Free a preconditioner
-
+clone -- clone current preconditioner
+
@@ -14,46 +14,47 @@
+
-
+
-
-free -- Free a preconditioner
+
+clone -- clone current
+ preconditioner
-
-call prec%free(info)
+call prec%clone(precout,info)
@@ -68,37 +69,21 @@ call prec%free(info)
the preconditioner.
Scope: local .
-
-Type: required
-
-Intent: inout .
-
-Specified as: a preconditioner data structure precdatapsb_prec_type .
-
-On Exit
-
+
+
+
+
+
+On Return
+
-prec
-Scope: local
-
-Type: required
-
-Intent: inout .
-
-Specified as: a preconditioner data structure precdatapsb_prec_type .
+ precout
+A copy of the input object.
info
-Scope: global
-
-Type: required
-
-Intent: out .
-
-Error code: if no error, 0 is returned.
+Return code.
-Notes
-Releases all internal storage.
diff --git a/docs/html/node131.html b/docs/html/node131.html
index 1426c2f7..6ffd6d59 100644
--- a/docs/html/node131.html
+++ b/docs/html/node131.html
@@ -3,8 +3,8 @@
-Iterative Methods
-
+free -- Free a preconditioner
+
@@ -14,62 +14,93 @@
-
-
-
+
+
-
-
-
-Iterative Methods
-
+
+free -- Free a preconditioner
+
-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
.
+
+call prec%free(info)
+
-
-
- Subsections
+
+Type:
+Asynchronous.
+
+On Entry
+
+
+prec
+the preconditioner.
+
+Scope: local .
+
+Type: required
+
+Intent: inout .
+
+Specified as: a preconditioner data structure precdatapsb_prec_type .
+
+On Exit
+
+
+prec
+Scope: local
+
+Type: required
+
+Intent: inout .
+
+Specified as: a preconditioner data structure precdatapsb_prec_type .
+
+info
+Scope: global
+
+Type: required
+
+Intent: out .
+
+Error code: if no error, 0 is returned.
+
+
+Notes
+Releases all internal storage.
-
-
+
diff --git a/docs/html/node132.html b/docs/html/node132.html
index 0da8f1c1..9e339e70 100644
--- a/docs/html/node132.html
+++ b/docs/html/node132.html
@@ -3,8 +3,8 @@
-psb_krylov -- Krylov Methods Driver Routine
-
+Iterative Methods
+
@@ -14,418 +14,63 @@
-
-
+
+
+
-
-
-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
-
-
-
-
-
-
-
-
-
-2
-Relative residual in the 2-norm; the iteration is stopped
-when
-
-
-
-
-
-
-
-
-
-3
-Relative residual reduction in the 2-norm; the iteration is stopped
-when
-
-
-
-
-
-
-
-
-
-
-The behaviour is controlled by the istop argument (see
-later). In the above formulae, is the tentative solution and
- the corresponding residual at the -th iteration.
-
-
-
-
+
+
+Iterative Methods
+
-
-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;
+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
.
-
-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
- .
-
-Scope: local
-
-Type: required
-
-Intent: in .
-
-Specified as: a structured data of type spdatapsb_Tspmat_type .
-
-prec
-The data structure containing the preconditioner.
-
-Scope: local
-
-Type: required
-
-Intent: in .
-
-Specified as: a structured data of type precdatapsb_prec_type .
-
-b
-The RHS vector.
-
-Scope: local
-
-Type: required
-
-Intent: in .
-
-Specified as: a rank one array or an object of type vdatapsb_T_vect_type .
-
-x
-The initial guess.
-
-Scope: local
-
-Type: required
-
-Intent: inout .
-
-Specified as: a rank one array or an object of type vdatapsb_T_vect_type .
-
-eps
-The stopping tolerance.
-
-Scope: global
-
-Type: required
-
-Intent: in .
-
-Specified as: a real number.
-
-desc_a
-contains data structures for communications.
-
-Scope: local
-
-Type: required
-
-Intent: in .
-
-Specified as: a structured data of type descdatapsb_desc_type .
-
-itmax
-The maximum number of iterations to perform.
-
-Scope: global
-
-Type: optional
-
-Intent: in .
-
-Default: .
-
-Specified as: an integer variable .
-
-itrace
-If print out an informational message about
- convergence every iterations.
-
-Scope: global
-
-Type: optional
-
-Intent: in .
-
-irst
-An integer specifying the restart parameter.
-
-Scope: global
-
-Type: optional .
-
-Intent: in .
-
-Values: . This is employed for the BiCGSTABL or RGMRES
-methods, otherwise it is ignored.
-
-
-
-istop
-An integer specifying the stopping criterion.
-
-Scope: global
-
-Type: optional .
-
-Intent: in .
-
-Values: 1: use the normwise backward error, 2: use the scaled 2-norm
-of the residual, 3: use the residual reduction in the 2-norm. Default: 2.
-
-On Return
-
-
-x
-The computed solution.
-
-Scope: local
-
-Type: required
-
-Intent: inout .
-
-Specified as: a rank one array or an object of type vdatapsb_T_vect_type .
-
-iter
-The number of iterations performed.
-
-Scope: global
-
-Type: optional
-
-Intent: out .
-
-Returned as: an integer variable.
-
-err
-The convergence estimate on exit.
-
-Scope: global
-
-Type: optional
-
-Intent: out .
-
-Returned as: a real number.
-
-cond
-An estimate of the condition number of matrix ; only
- available with the 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.
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+Subsections
+
+
+
+
diff --git a/docs/html/node133.html b/docs/html/node133.html
index 60673a69..810fbf44 100644
--- a/docs/html/node133.html
+++ b/docs/html/node133.html
@@ -3,8 +3,8 @@
-Bibliography
-
+psb_krylov -- Krylov Methods Driver Routine
+
@@ -14,167 +14,418 @@
-
-
-
+
+
+
+
-
-
-Bibliography
-
1
-
- D. Barbieri, V. Cardellini, S. Filippone and D. Rouson
-Design Patterns for Scientific Computations on Sparse Matrices ,
- HPSS 2011, Algorithms and Programming Tools for Next-Generation High-Performance Scientific Software, Bordeaux, Sep. 2011
+
+
+
+psb_krylov -- Krylov Methods Driver
+ Routine
+
-
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.
+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
+
+
+
+
+
+
+
+
+
+2
+Relative residual in the 2-norm; the iteration is stopped
+when
+
+
+
+
+
+
+
+
+
+3
+Relative residual reduction in the 2-norm; the iteration is stopped
+when
+
+
+
+
+
+
+
+
+
+
+The behaviour is controlled by the istop argument (see
+later). In the above formulae, is the tentative solution and
+ the corresponding residual at the -th iteration.
-
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
+
+Type:
+Synchronous.
+
+On Entry
-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.
+
+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;
-
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)
+
+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
+ .
+
+Scope: local
+
+Type: required
+
+Intent: in .
+
+Specified as: a structured data of type spdatapsb_Tspmat_type .
+
+prec
+The data structure containing the preconditioner.
+
+Scope: local
+
+Type: required
+
+Intent: in .
+
+Specified as: a structured data of type precdatapsb_prec_type .
+
+b
+The RHS vector.
+
+Scope: local
+
+Type: required
+
+Intent: in .
+
+Specified as: a rank one array or an object of type vdatapsb_T_vect_type .
+
+x
+The initial guess.
+
+Scope: local
+
+Type: required
+
+Intent: inout .
+
+Specified as: a rank one array or an object of type vdatapsb_T_vect_type .
+
+eps
+The stopping tolerance.
+
+Scope: global
+
+Type: required
+
+Intent: in .
+
+Specified as: a real number.
+
+desc_a
+contains data structures for communications.
+
+Scope: local
+
+Type: required
+
+Intent: in .
+
+Specified as: a structured data of type descdatapsb_desc_type .
+
+itmax
+The maximum number of iterations to perform.
+
+Scope: global
+
+Type: optional
+
+Intent: in .
+
+Default: .
+
+Specified as: an integer variable .
+
+itrace
+If print out an informational message about
+ convergence every iterations.
+
+Scope: global
+
+Type: optional
+
+Intent: in .
+
+irst
+An integer specifying the restart parameter.
+
+Scope: global
+
+Type: optional .
+
+Intent: in .
+
+Values: . This is employed for the BiCGSTABL or RGMRES
+methods, otherwise it is ignored.
-
19
+
+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
-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.
+
+x
+The computed solution.
+
+Scope: local
+
+Type: required
+
+Intent: inout .
+
+Specified as: a rank one array or an object of type vdatapsb_T_vect_type .
+
+iter
+The number of iterations performed.
+
+Scope: global
+
+Type: optional
+
+Intent: out .
+
+Returned as: an integer variable.
+
+err
+The convergence estimate on exit.
+
+Scope: global
+
+Type: optional
+
+Intent: out .
+
+Returned as: a real number.
+
+cond
+An estimate of the condition number of matrix ; only
+ available with the method on real data.
+
+Scope: global
+
+Type: optional
+
+Intent: out .
+
+Returned as: a real number. A correct result will be greater than or
+equal to one; if specified for non-real data, or an error occurred,
+zero is returned.
+
+info
+Error code.
+
+Scope: local
+
+Type: required
+
+Intent: out .
+
+An integer value; 0 means no error has been detected.
+
-
+
+
+
+
+
+
+
+
+
diff --git a/docs/html/node14.html b/docs/html/node14.html
index 071e643d..1b308c1c 100644
--- a/docs/html/node14.html
+++ b/docs/html/node14.html
@@ -23,26 +23,26 @@
diff --git a/docs/html/node15.html b/docs/html/node15.html
index fedad50b..735ad45e 100644
--- a/docs/html/node15.html
+++ b/docs/html/node15.html
@@ -23,26 +23,26 @@
diff --git a/docs/html/node16.html b/docs/html/node16.html
index e084853d..1310193d 100644
--- a/docs/html/node16.html
+++ b/docs/html/node16.html
@@ -23,26 +23,26 @@
diff --git a/docs/html/node17.html b/docs/html/node17.html
index dafa0487..2be31ac9 100644
--- a/docs/html/node17.html
+++ b/docs/html/node17.html
@@ -23,26 +23,26 @@
diff --git a/docs/html/node18.html b/docs/html/node18.html
index 3183fca1..311565c5 100644
--- a/docs/html/node18.html
+++ b/docs/html/node18.html
@@ -23,26 +23,26 @@
diff --git a/docs/html/node19.html b/docs/html/node19.html
index 928541fa..ff38f45c 100644
--- a/docs/html/node19.html
+++ b/docs/html/node19.html
@@ -23,26 +23,26 @@
diff --git a/docs/html/node2.html b/docs/html/node2.html
index 8e0073d4..49fdb96e 100644
--- a/docs/html/node2.html
+++ b/docs/html/node2.html
@@ -23,26 +23,26 @@
@@ -68,7 +68,7 @@ passing.
The PSBLAS library version 3 is implemented in
the Fortran 2003 [17 ] programming language, with reuse and/or
+ HREF="node134.html#metcalf">17] programming language, with reuse and/or
adaptation of existing Fortran 77 and Fortran 95 software, plus a
handful of C routines.
@@ -78,11 +78,11 @@ mostly in the handling of requirements for evolution and adaptation of
the library to new computing architectures and integration of
new algorithms.
For a detailed discussion of our design see [11 ]; other
+ HREF="node134.html#Sparse03">11]; other
works discussing advanced programming in Fortran 2003
include [1 ,18 ]; sufficient support for
+ HREF="node134.html#DesPat:11">1,18 ]; sufficient support for
Fortran 2003 is now available from many compilers, including the GNU
Fortran compiler from the Free Software Foundation (as of version 4.8).
@@ -91,7 +91,7 @@ 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
+ HREF="node134.html#machiels">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
@@ -102,12 +102,12 @@ implementation or compilation time.
The presentation of the
PSBLAS library follows the general structure of the proposal for
serial Sparse BLAS [8 ,9 ], which in its turn is based on the
+ HREF="node134.html#sblas97">8,9 ], which in its turn is based on the
proposal for BLAS on dense matrices [15 ,5 ,6 ].
+ HREF="node134.html#BLAS1">15,5 ,6 ].
The applicability of sparse iterative solvers to many different areas
@@ -142,26 +142,26 @@ computational fluid dynamics applications.
diff --git a/docs/html/node20.html b/docs/html/node20.html
index de929193..2661f1dc 100644
--- a/docs/html/node20.html
+++ b/docs/html/node20.html
@@ -23,26 +23,26 @@
diff --git a/docs/html/node21.html b/docs/html/node21.html
index e8c89960..0f35d26b 100644
--- a/docs/html/node21.html
+++ b/docs/html/node21.html
@@ -23,26 +23,26 @@
diff --git a/docs/html/node22.html b/docs/html/node22.html
index 822a19d7..2834ff8a 100644
--- a/docs/html/node22.html
+++ b/docs/html/node22.html
@@ -22,26 +22,26 @@
diff --git a/docs/html/node23.html b/docs/html/node23.html
index 773886dd..cb1b759b 100644
--- a/docs/html/node23.html
+++ b/docs/html/node23.html
@@ -23,26 +23,26 @@
@@ -57,9 +57,9 @@ The spdatapsb_Tspmat_type class
contains all information about the local portion of the sparse matrix and
its storage mode. Its design is
based on the STATE design pattern [13 ] as detailed
+ HREF="node134.html#DesignPatterns">13] as detailed
in [11 ]; the type declaration is shown in
+ HREF="node134.html#Sparse03">11]; the type declaration is shown in
figure 4 where T
is a placeholder for the
data type and precision variants
@@ -142,74 +142,74 @@ variants are obtained by conversion to/from it.
Subsections
diff --git a/docs/html/node24.html b/docs/html/node24.html
index 40c0a7e9..7c430127 100644
--- a/docs/html/node24.html
+++ b/docs/html/node24.html
@@ -23,26 +23,26 @@
diff --git a/docs/html/node25.html b/docs/html/node25.html
index 124e9ef9..2946e8c2 100644
--- a/docs/html/node25.html
+++ b/docs/html/node25.html
@@ -23,26 +23,26 @@
diff --git a/docs/html/node26.html b/docs/html/node26.html
index 544a3837..017007ef 100644
--- a/docs/html/node26.html
+++ b/docs/html/node26.html
@@ -23,26 +23,26 @@
diff --git a/docs/html/node27.html b/docs/html/node27.html
index ed4ae9d8..632b31ad 100644
--- a/docs/html/node27.html
+++ b/docs/html/node27.html
@@ -23,26 +23,26 @@
diff --git a/docs/html/node28.html b/docs/html/node28.html
index 96260d80..d7c99061 100644
--- a/docs/html/node28.html
+++ b/docs/html/node28.html
@@ -23,26 +23,26 @@
diff --git a/docs/html/node29.html b/docs/html/node29.html
index a025b9aa..3fe8307b 100644
--- a/docs/html/node29.html
+++ b/docs/html/node29.html
@@ -25,26 +25,26 @@ of a sparse matrix">
diff --git a/docs/html/node3.html b/docs/html/node3.html
index 0b33a78c..68ce75bc 100644
--- a/docs/html/node3.html
+++ b/docs/html/node3.html
@@ -23,26 +23,26 @@
@@ -75,7 +75,7 @@ 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 ].
+ HREF="node134.html#BLACS">7].
Usually there is no need to deal directly with MPI; however, in some
cases, MPI routines are used directly to improve efficiency. For
further details on our communication layer see Sec. 7 .
@@ -131,7 +131,7 @@ 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 ].
+ HREF="node134.html#METIS">14].
Dense vectors conform to sparse
matrices, that is, the entries of a vector follow the same distribution
of the matrix rows.
@@ -151,44 +151,44 @@ bottleneck would make this option unattractive in most cases.
Subsections
diff --git a/docs/html/node30.html b/docs/html/node30.html
index 5e0a9949..6747d3ff 100644
--- a/docs/html/node30.html
+++ b/docs/html/node30.html
@@ -23,26 +23,26 @@
diff --git a/docs/html/node31.html b/docs/html/node31.html
index d2698743..717f71d2 100644
--- a/docs/html/node31.html
+++ b/docs/html/node31.html
@@ -23,26 +23,26 @@
diff --git a/docs/html/node32.html b/docs/html/node32.html
index b3137473..552eb010 100644
--- a/docs/html/node32.html
+++ b/docs/html/node32.html
@@ -23,26 +23,26 @@
diff --git a/docs/html/node33.html b/docs/html/node33.html
index 6303a477..d8e5a4df 100644
--- a/docs/html/node33.html
+++ b/docs/html/node33.html
@@ -23,26 +23,26 @@
diff --git a/docs/html/node34.html b/docs/html/node34.html
index 524a0661..ddd40de5 100644
--- a/docs/html/node34.html
+++ b/docs/html/node34.html
@@ -23,26 +23,26 @@
diff --git a/docs/html/node35.html b/docs/html/node35.html
index a3ddef24..f1196058 100644
--- a/docs/html/node35.html
+++ b/docs/html/node35.html
@@ -23,26 +23,26 @@
diff --git a/docs/html/node36.html b/docs/html/node36.html
index 8b3077f7..2245d9bf 100644
--- a/docs/html/node36.html
+++ b/docs/html/node36.html
@@ -23,26 +23,26 @@
diff --git a/docs/html/node37.html b/docs/html/node37.html
index b0ed495c..152d3ad3 100644
--- a/docs/html/node37.html
+++ b/docs/html/node37.html
@@ -23,26 +23,26 @@
diff --git a/docs/html/node38.html b/docs/html/node38.html
index ca301bde..9e05ea68 100644
--- a/docs/html/node38.html
+++ b/docs/html/node38.html
@@ -23,26 +23,26 @@
diff --git a/docs/html/node39.html b/docs/html/node39.html
index 14985dbf..be187000 100644
--- a/docs/html/node39.html
+++ b/docs/html/node39.html
@@ -23,26 +23,26 @@
diff --git a/docs/html/node4.html b/docs/html/node4.html
index 6648616d..d76c8d2d 100644
--- a/docs/html/node4.html
+++ b/docs/html/node4.html
@@ -23,26 +23,26 @@
@@ -123,8 +123,8 @@ Overlap points do not usually exist in the basic data
distributions; however they are a feature of Domain Decomposition
Schwarz preconditioners which are the subject of related research
work [4 ,3 ].
+ HREF="node134.html#2007c">4,3 ].
We denote the sets of internal, boundary and halo points for a given
@@ -195,26 +195,26 @@ points in the literature.
diff --git a/docs/html/node40.html b/docs/html/node40.html
index 624b2ccb..c2dccdae 100644
--- a/docs/html/node40.html
+++ b/docs/html/node40.html
@@ -23,26 +23,26 @@
diff --git a/docs/html/node41.html b/docs/html/node41.html
index 10c1385a..5592942a 100644
--- a/docs/html/node41.html
+++ b/docs/html/node41.html
@@ -23,26 +23,26 @@
diff --git a/docs/html/node42.html b/docs/html/node42.html
index 1f32240d..f9eb9bf9 100644
--- a/docs/html/node42.html
+++ b/docs/html/node42.html
@@ -22,26 +22,26 @@
diff --git a/docs/html/node43.html b/docs/html/node43.html
index 7e01116f..c7ac8e93 100644
--- a/docs/html/node43.html
+++ b/docs/html/node43.html
@@ -23,26 +23,26 @@
@@ -120,44 +120,44 @@ private memory.
Subsections
diff --git a/docs/html/node44.html b/docs/html/node44.html
index 93f06053..47c59af6 100644
--- a/docs/html/node44.html
+++ b/docs/html/node44.html
@@ -23,26 +23,26 @@
diff --git a/docs/html/node45.html b/docs/html/node45.html
index 6cbe9433..62166a2c 100644
--- a/docs/html/node45.html
+++ b/docs/html/node45.html
@@ -23,26 +23,26 @@
diff --git a/docs/html/node46.html b/docs/html/node46.html
index 2321e206..73c5d998 100644
--- a/docs/html/node46.html
+++ b/docs/html/node46.html
@@ -25,26 +25,26 @@ of a dense vector">
diff --git a/docs/html/node47.html b/docs/html/node47.html
index ee7dc916..36a66b41 100644
--- a/docs/html/node47.html
+++ b/docs/html/node47.html
@@ -23,26 +23,26 @@
diff --git a/docs/html/node48.html b/docs/html/node48.html
index 1046887b..5ed4481d 100644
--- a/docs/html/node48.html
+++ b/docs/html/node48.html
@@ -23,26 +23,26 @@
diff --git a/docs/html/node49.html b/docs/html/node49.html
index e800d006..7ecefb7a 100644
--- a/docs/html/node49.html
+++ b/docs/html/node49.html
@@ -22,26 +22,26 @@
diff --git a/docs/html/node5.html b/docs/html/node5.html
index 39e42345..38abd7be 100644
--- a/docs/html/node5.html
+++ b/docs/html/node5.html
@@ -23,26 +23,26 @@
@@ -167,26 +167,26 @@ whose current value is 3.4.0
diff --git a/docs/html/node50.html b/docs/html/node50.html
index 1cc48eea..17b67e03 100644
--- a/docs/html/node50.html
+++ b/docs/html/node50.html
@@ -23,26 +23,26 @@
diff --git a/docs/html/node51.html b/docs/html/node51.html
index 5a3211b2..8bcbb081 100644
--- a/docs/html/node51.html
+++ b/docs/html/node51.html
@@ -22,26 +22,26 @@
diff --git a/docs/html/node52.html b/docs/html/node52.html
index 6ef8884f..c8636525 100644
--- a/docs/html/node52.html
+++ b/docs/html/node52.html
@@ -23,26 +23,26 @@
@@ -58,32 +58,32 @@ Computational routines
Subsections
diff --git a/docs/html/node53.html b/docs/html/node53.html
index 07beea59..72690b09 100644
--- a/docs/html/node53.html
+++ b/docs/html/node53.html
@@ -23,26 +23,26 @@
@@ -78,7 +78,7 @@ call psb_geaxpby(alpha, x, beta, y, desc_a, info)
-
+
Table 1:
Data types
@@ -253,26 +253,26 @@ An integer value; 0 means no error has been detected.
diff --git a/docs/html/node54.html b/docs/html/node54.html
index a5b17d42..ae5d6b92 100644
--- a/docs/html/node54.html
+++ b/docs/html/node54.html
@@ -23,26 +23,26 @@
@@ -110,10 +110,10 @@ dot \leftarrow x^H y
-psb_gedot(x, y, desc_a, info)
+psb_gedot(x, y, desc_a, info [,global])
-
+
Table 2:
Data types
@@ -215,14 +215,27 @@ Type: required
Intent: in .
Specified as: an object of type descdatapsb_desc_type .
-
+
+global
+Specifies whether the computation should include the
+ global reduction across all processes.
+
+Scope: global
+
+Type: optional .
+
+Intent: in .
+
+Specified as: a logical scalar.
+Default: global=.true.
+
On Return
Function value
-is the dot product of subvectors is the dot product of vectors and psb_desc_type.
SRC="img21.png"
ALT="$y$"> .
-Scope: global
+Scope: global unless the optional variable
+global=.false.
has been specified
Specified as: a number of the data type indicated in Table 2 .
@@ -247,30 +261,55 @@ An integer value; 0 means no error has been detected.
+
+Notes
+
+
+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:
+
+
+
+In this way the global communication, which for small sizes is a
+ latency-bound operation, is invoked only once.
+
+
+
diff --git a/docs/html/node55.html b/docs/html/node55.html
index aa9a2014..95cc3e36 100644
--- a/docs/html/node55.html
+++ b/docs/html/node55.html
@@ -23,26 +23,26 @@
@@ -71,7 +71,7 @@ res(i) \leftarrow x(:,i)^T y(:,i)
@@ -89,7 +89,7 @@ used. If are of rank one, then is a scalar, else it
is a rank one array.
@@ -98,7 +98,7 @@ is a rank one array.
call psb_gedots(res, x, y, desc_a, info)
-
+
Table 3:
Data types
@@ -107,7 +107,7 @@ Data types
, psb_desc_type.
res
-is the dot product of subvectors is the dot product of vectors and
-
-
-
-
- Next: Next: psb_normi Infinity-Norm
- Up: Up: Computational routines
- Previous: Previous: psb_gedot Dot
- Contents
diff --git a/docs/html/node56.html b/docs/html/node56.html
index b2816af3..0de3654b 100644
--- a/docs/html/node56.html
+++ b/docs/html/node56.html
@@ -23,26 +23,26 @@
@@ -74,7 +74,7 @@ amax \leftarrow \max_i |x_i|
@@ -93,7 +93,7 @@ amax \leftarrow \max_i {(|re(x_i)| + |im(x_i)|)}
@@ -101,13 +101,13 @@ amax \leftarrow \max_i {(|re(x_i)| + |im(x_i)|)}
-psb_geamax(x, desc_a, info)
-psb_normi(x, desc_a, info)
+psb_geamax(x, desc_a, info [,global])
+psb_normi(x, desc_a, info [,global])
-
+
Table 4:
Data types
@@ -116,7 +116,7 @@ Data types
required
Intent: in .
Specified as: an object of type descdatapsb_desc_type .
+
+global
+Specifies whether the computation should include the
+ global reduction across all processes.
+
+Scope: global
+
+Type: optional .
+
+Intent: in .
+
+Specified as: a logical scalar.
+Default: global=.true.
+
@@ -190,12 +204,13 @@ Specified as: an object of type descdatapsb_desc_type .
Function value
-is the infinity norm of subvector is the infinity norm of vector .
-Scope: global
+Scope: global unless the optional variable
+global=.false.
has been specified
Specified as: a long precision real number.
@@ -212,30 +227,55 @@ An integer value; 0 means no error has been detected.
+
+Notes
+
+
+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:
+
+
+
+In this way the global communication, which for small sizes is a
+ latency-bound operation, is invoked only once.
+
+
+
diff --git a/docs/html/node57.html b/docs/html/node57.html
index d15507ad..b5285a3e 100644
--- a/docs/html/node57.html
+++ b/docs/html/node57.html
@@ -23,26 +23,26 @@
@@ -68,7 +68,7 @@ res(i) \leftarrow \max_k |x(k,i)|
@@ -81,7 +81,7 @@ call psb_geamaxs(res, x, desc_a, info)
-
+
Table 5:
Data types
@@ -90,7 +90,7 @@ Data types
-
-
-
-
- Next: Next: psb_norm1 1-Norm
- Up: Up: Computational routines
- Previous: Previous: psb_normi Infinity-Norm
- Contents
diff --git a/docs/html/node58.html b/docs/html/node58.html
index 53075a58..e31738c2 100644
--- a/docs/html/node58.html
+++ b/docs/html/node58.html
@@ -23,26 +23,26 @@
@@ -73,7 +73,7 @@ asum \leftarrow \|x_i\|
@@ -92,7 +92,7 @@ asum \leftarrow \|re(x)\|_1 + \|im(x)\|_1
@@ -100,13 +100,13 @@ asum \leftarrow \|re(x)\|_1 + \|im(x)\|_1
-psb_geasum(x, desc_a, info)
-psb_norm1(x, desc_a, info)
+psb_geasum(x, desc_a, info [,global])
+psb_norm1(x, desc_a, info [,global])
-
+
Table 6:
Data types
@@ -115,7 +115,7 @@ Data types
required
Intent: in .
Specified as: an object of type descdatapsb_desc_type .
-
+
+global
+Specifies whether the computation should include the
+ global reduction across all processes.
+
+Scope: global
+
+Type: optional .
+
+Intent: in .
+
+Specified as: a logical scalar.
+Default: global=.true.
+
On Return
@@ -194,7 +207,8 @@ Specified as: an object of type descdatapsb_desc_type .
SRC="img20.png"
ALT="$x$"> .
-Scope: global
+Scope: global unless the optional variable
+global=.false.
has been specified
Specified as: a long precision real number.
@@ -211,30 +225,55 @@ An integer value; 0 means no error has been detected.
+
+Notes
+
+
+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:
+
+
+
+In this way the global communication, which for small sizes is a
+ latency-bound operation, is invoked only once.
+
+
+
diff --git a/docs/html/node59.html b/docs/html/node59.html
index 160a0e61..088bd7b3 100644
--- a/docs/html/node59.html
+++ b/docs/html/node59.html
@@ -23,26 +23,26 @@
@@ -68,7 +68,7 @@ res(i) \leftarrow \max_k |x(k,i)|
@@ -93,7 +93,7 @@ res(i) \leftarrow \|x_i\|
@@ -112,7 +112,7 @@ res(i) \leftarrow \|re(x)\|_1 + \|im(x)\|_1
@@ -125,7 +125,7 @@ call psb_geasums(res, x, desc_a, info)
-
+
Table 7:
Data types
@@ -134,7 +134,7 @@ Data types
-
-
-
-
- Next: Next: psb_norm2 2-Norm
- Up: Up: Computational routines
- Previous: Previous: psb_norm1 1-Norm
- Contents
diff --git a/docs/html/node6.html b/docs/html/node6.html
index 911bf87c..c3a74f22 100644
--- a/docs/html/node6.html
+++ b/docs/html/node6.html
@@ -23,26 +23,26 @@
@@ -247,33 +247,33 @@ from optimal.
Subsections
diff --git a/docs/html/node60.html b/docs/html/node60.html
index aee04698..ecce45be 100644
--- a/docs/html/node60.html
+++ b/docs/html/node60.html
@@ -23,26 +23,26 @@
@@ -73,7 +73,7 @@ nrm2 \leftarrow \sqrt{x^T x}
@@ -92,7 +92,7 @@ nrm2 \leftarrow \sqrt{x^H x}
@@ -100,7 +100,7 @@ nrm2 \leftarrow \sqrt{x^H x}
-
+
Table 8:
Data types
@@ -109,7 +109,7 @@ Data types
-psb_genrm2(x, desc_a, info)
-psb_norm2(x, desc_a, info)
+psb_genrm2(x, desc_a, info [,global])
+psb_norm2(x, desc_a, info [,global])
@@ -182,6 +182,20 @@ Type: required
Intent: in .
Specified as: an object of type descdatapsb_desc_type .
+
+
global
+Specifies whether the computation should include the
+ global reduction across all processes.
+
+Scope: global
+
+Type: optional .
+
+Intent: in .
+
+Specified as: a logical scalar.
+Default: global=.true.
+
@@ -189,12 +203,13 @@ Specified as: an object of type descdatapsb_desc_type .
Function Value
-is the 2-norm of subvector is the 2-norm of vector .
-Scope: global
+Scope: global unless the optional variable
+global=.false.
has been specified
Type: required
@@ -213,30 +228,55 @@ An integer value; 0 means no error has been detected.
+
+Notes
+
+
+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:
+
+
+
+In this way the global communication, which for small sizes is a
+ latency-bound operation, is invoked only once.
+
+
+
diff --git a/docs/html/node61.html b/docs/html/node61.html
index b6f55a63..b37cc637 100644
--- a/docs/html/node61.html
+++ b/docs/html/node61.html
@@ -23,26 +23,26 @@
@@ -68,7 +68,7 @@ res(i) \leftarrow \|x(:,i)\|_2
@@ -81,7 +81,7 @@ call psb_genrm2s(res, x, desc_a, info)
-
+
Table 9:
Data types
@@ -90,7 +90,7 @@ Data types
-
-
-
-
- Next: Next: psb_norm1 1-Norm
- Up: Up: Computational routines
- Previous: Previous: psb_norm2 2-Norm
- Contents
diff --git a/docs/html/node62.html b/docs/html/node62.html
index d05c0035..72370acc 100644
--- a/docs/html/node62.html
+++ b/docs/html/node62.html
@@ -23,26 +23,26 @@
@@ -69,7 +69,7 @@ nrm1 \leftarrow \|A\|_1
@@ -89,7 +89,7 @@ where:
-
+
Table 10:
Data types
diff --git a/docs/html/node63.html b/docs/html/node63.html
index 4493b074..8403b32b 100644
--- a/docs/html/node63.html
+++ b/docs/html/node63.html
@@ -23,26 +23,26 @@
@@ -69,7 +69,7 @@ nrmi \leftarrow \|A\|_\infty
@@ -89,7 +89,7 @@ where:
-
+
Table 11:
Data types
diff --git a/docs/html/node64.html b/docs/html/node64.html
index ce477479..c1563adc 100644
--- a/docs/html/node64.html
+++ b/docs/html/node64.html
@@ -23,26 +23,26 @@
@@ -69,7 +69,7 @@ y \leftarrow \alpha A x + \beta y
@@ -89,7 +89,7 @@ y \leftarrow \alpha A^T x + \beta y
@@ -109,7 +109,7 @@ y \leftarrow \alpha A^H x + \beta y
@@ -127,7 +127,7 @@ where:
ALT="$x$">
is the global dense matrix
is the global dense matrix
-
+
Table 12:
Data types
@@ -337,7 +337,7 @@ Intent: in .
Default:
Specified as: a character variable.
@@ -400,26 +400,26 @@ An integer value; 0 means no error has been detected.
diff --git a/docs/html/node65.html b/docs/html/node65.html
index 5a1e9e66..99711134 100644
--- a/docs/html/node65.html
+++ b/docs/html/node65.html
@@ -22,26 +22,26 @@
@@ -72,7 +72,7 @@ y &\leftarrow& \alpha T^{-H} D x + \beta y\\
-->
is the global dense matrix
is the global dense matrix
is the global sparse block triangular submatrix
is the scaling diagonal matrix.
@@ -129,7 +129,7 @@ call psb_spsm(alpha, t, x, beta, y, desc_a, info,&
-
+
Table 13:
Data types
@@ -138,7 +138,7 @@ Data types
,
SRC="img21.png"
ALT="$y$"> , , 13.
the global portion of the sparse matrix
.
Scope: local
@@ -309,7 +309,7 @@ Intent: in .
Default:
Specified as: a character variable.
@@ -335,7 +335,7 @@ Intent: in .
Default:
Specified as: a character variable.
@@ -381,7 +381,7 @@ Default:
Specified as: a rank one array containing numbers of the type
@@ -442,26 +442,26 @@ An integer value; 0 means no error has been detected.
diff --git a/docs/html/node66.html b/docs/html/node66.html
index c051c5e1..cdc88a27 100644
--- a/docs/html/node66.html
+++ b/docs/html/node66.html
@@ -23,26 +23,26 @@
@@ -61,13 +61,13 @@ routines not tied to a discretization space see Subsections
diff --git a/docs/html/node67.html b/docs/html/node67.html
index 086ef163..015b053d 100644
--- a/docs/html/node67.html
+++ b/docs/html/node67.html
@@ -23,26 +23,26 @@
@@ -67,7 +67,7 @@ x \leftarrow x
@@ -84,7 +84,7 @@ where:
-
+
Table 14:
Data types
@@ -126,7 +126,7 @@ Data types
+
Figure 7:
Sample discretization mesh.
@@ -238,12 +238,12 @@ Sample discretization mesh.
@@ -606,26 +606,26 @@ following:
diff --git a/docs/html/node68.html b/docs/html/node68.html
index 02386b3b..3421d633 100644
--- a/docs/html/node68.html
+++ b/docs/html/node68.html
@@ -23,26 +23,26 @@
@@ -66,7 +66,7 @@ x \leftarrow Q x
@@ -84,22 +84,22 @@ where:
is the overlap operator; it is the composition of two
operators and .
-
+
Table 15:
Data types
@@ -135,7 +135,7 @@ Data types
;
update = psb_avg_
Average overlap entries, i.e. apply ;
@@ -205,7 +205,7 @@ Default:
Scope: global
@@ -269,18 +269,18 @@ An integer value; 0 means no error has been detected.
The operator performs the reduction sum of overlap
elements; it is a “prolongation” operator that
replicates overlap elements, accounting for the physical replication
of data;
The operator 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
@@ -290,7 +290,7 @@ their instances.
-
+
Figure 8:
Sample discretization mesh.
@@ -298,12 +298,12 @@ Sample discretization mesh.
@@ -734,26 +734,26 @@ following (showing a transition among the two subdomains)
diff --git a/docs/html/node69.html b/docs/html/node69.html
index 410ac3ae..cadf089f 100644
--- a/docs/html/node69.html
+++ b/docs/html/node69.html
@@ -23,26 +23,26 @@
@@ -68,7 +68,7 @@ glob\_x \leftarrow collect(loc\_x_i)
@@ -77,19 +77,19 @@ where:
is the global submatrix
is the local portion of global dense matrix on
process
is the collect function.
@@ -107,7 +107,7 @@ process
-
+
Table 16:
Data types
@@ -116,7 +116,7 @@ Data types
Subroutine
@@ -146,7 +146,7 @@ Data types
.
Scope: local
@@ -191,7 +191,7 @@ Specified as: a structured data of type descdatapsb_desc_type .
root
The process that holds the global copy. If all
the processes will have a copy of the global vector.
@@ -206,10 +206,10 @@ Specified as: an integer variable
, default .
On Return
@@ -243,26 +243,26 @@ An integer value; 0 means no error has been detected.
diff --git a/docs/html/node7.html b/docs/html/node7.html
index 9f09abe4..db996b73 100644
--- a/docs/html/node7.html
+++ b/docs/html/node7.html
@@ -22,26 +22,26 @@
diff --git a/docs/html/node70.html b/docs/html/node70.html
index ae0bfb6e..1cd035c2 100644
--- a/docs/html/node70.html
+++ b/docs/html/node70.html
@@ -22,26 +22,26 @@
@@ -66,7 +66,7 @@ loc\_x_i \leftarrow scatter(glob\_x)
@@ -75,19 +75,19 @@ where:
is the global matrix
is the local portion of global dense matrix on
process
is the scatter function.
@@ -105,7 +105,7 @@ process
-
+
Table 17:
Data types
@@ -114,7 +114,7 @@ Data types
Subroutine
@@ -144,7 +144,7 @@ Data types
@@ -183,7 +183,7 @@ Specified as: a structured data of type descdatapsb_desc_type .
root
The process that holds the global copy. If all
the processes have a copy of the global vector.
@@ -198,7 +198,7 @@ Specified as: an integer variable
, default
psb_root_
, i.e. process 0.
@@ -221,7 +221,7 @@ only allowed when loc_x is of type vdatapsb_T_vect_type .
the local portion of global dense matrix
.
Scope: local
@@ -250,26 +250,26 @@ An integer value; 0 means no error has been detected.
diff --git a/docs/html/node71.html b/docs/html/node71.html
index f391b28c..7c38ec5a 100644
--- a/docs/html/node71.html
+++ b/docs/html/node71.html
@@ -23,26 +23,26 @@
@@ -60,70 +60,70 @@ Data management routines
Subsections
diff --git a/docs/html/node72.html b/docs/html/node72.html
index 1ba59536..58b79db9 100644
--- a/docs/html/node72.html
+++ b/docs/html/node72.html
@@ -23,26 +23,26 @@
@@ -56,7 +56,7 @@ psb_cdall -- Allocates a communication descriptor
call psb_cdall(icontxt, desc_a, info,mg=mg,parts=parts)
call psb_cdall(icontxt, desc_a, info,vg=vg,[mg=mg,flag=flag])
-call psb_cdall(icontxt, desc_a, info,vl=vl,[nl=nl,globalcheck=.true.,lidx=lidx])
+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.)
@@ -91,11 +91,11 @@ Specified as: an integer value.
-->
is allocated
to process .
Scope:global .
@@ -109,7 +109,7 @@ Specified as: an integer array.
flag
Specifies whether entries in are zero- or one-based.
Scope:global .
@@ -120,10 +120,10 @@ Intent: in .
Specified as: an integer value , default .
@@ -153,7 +153,7 @@ Specified as: a subroutine.
Data allocation: the set of global indices
belonging to the calling process.
Scope:local .
@@ -199,16 +199,16 @@ Type:optional .
Intent: in .
-Specified as: a logical value, default: .true.
+Specified as: a logical value, default: .false.
lidx
Data allocation: the set of local indices
to be assigned to the global indices .
Scope:local .
@@ -301,10 +301,10 @@ An integer value; 0 means no error has been detected.
-->
; if we have an index assigned to multiple
processes, i.e. we have an overlap among the subdomains.
@@ -319,23 +319,23 @@ An integer value; 0 means no error has been detected.
-->
is assigned to process .
The vector vg
must be identical on all
calling processes; its entries may have the ranges
or according to the value of flag
.
The size may be specified via the optional argument mg
;
the default is to use the entire vector vg
, thus having
mg=size(vg)
.
@@ -345,7 +345,7 @@ An integer value; 0 means no error has been detected.
vl(1:nl)
assigned to the current process; thus, the global
problem size 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
@@ -354,7 +354,7 @@ An integer value; 0 means no error has been detected.
If globalcheck=.true.
the subroutine will check how many
times each entry in the global index space is
specified in the input lists vl
, thus allowing for the
presence of overlap in the input, and checking for “orphan”
@@ -378,10 +378,10 @@ An integer value; 0 means no error has been detected.
the result is a generalized row-block distribution in which each
process gets assigned a consecutive chunk of global
indices.
@@ -423,26 +423,26 @@ An integer value; 0 means no error has been detected.
diff --git a/docs/html/node73.html b/docs/html/node73.html
index 185949be..b61c998f 100644
--- a/docs/html/node73.html
+++ b/docs/html/node73.html
@@ -23,26 +23,26 @@
@@ -66,15 +66,15 @@ linear system coefficient matrix), storing them as necessary into the
communication descriptor. In the first form the edges are specified as
pairs of indices ; the starting index should
belong to the current process.
In the second form only the remote indices are specified.
@@ -107,7 +107,7 @@ Intent: in .
Specified as: an integer array of length .
ja
@@ -121,7 +121,7 @@ Intent: in .
Specified as: an integer array of length .
mask
@@ -136,7 +136,7 @@ Intent: in .
Specified as: a logical array of length , default .true.
.
lidx
@@ -150,7 +150,7 @@ Intent: in .
Specified as: an integer array of length .
@@ -193,7 +193,7 @@ Intent: out .
Specified as: an integer array of length .
jla
@@ -207,7 +207,7 @@ Intent: out .
Specified as: an integer array of length .
@@ -232,26 +232,26 @@ nor the end vertex belong to the current process.
diff --git a/docs/html/node74.html b/docs/html/node74.html
index 780ad701..90153fc2 100644
--- a/docs/html/node74.html
+++ b/docs/html/node74.html
@@ -23,26 +23,26 @@
diff --git a/docs/html/node75.html b/docs/html/node75.html
index 60eeb141..c5b2b262 100644
--- a/docs/html/node75.html
+++ b/docs/html/node75.html
@@ -23,26 +23,26 @@
diff --git a/docs/html/node76.html b/docs/html/node76.html
index 76628cf8..d963d0cf 100644
--- a/docs/html/node76.html
+++ b/docs/html/node76.html
@@ -23,26 +23,26 @@
diff --git a/docs/html/node77.html b/docs/html/node77.html
index d3f949e5..0fc117c8 100644
--- a/docs/html/node77.html
+++ b/docs/html/node77.html
@@ -23,26 +23,26 @@
@@ -101,7 +101,7 @@ Intent: in .
Specified as: an integer value .
extype
@@ -171,26 +171,26 @@ An integer value; 0 means no error has been detected.
diff --git a/docs/html/node78.html b/docs/html/node78.html
index de936a1e..a6434f72 100644
--- a/docs/html/node78.html
+++ b/docs/html/node78.html
@@ -23,26 +23,26 @@
@@ -128,7 +128,7 @@ An integer value; 0 means no error has been detected.
Providing a good estimate for the number of nonzeroes in
the assembled matrix may substantially improve performance in the
matrix build phase, as it will reduce or eliminate the need for
diff --git a/docs/html/node79.html b/docs/html/node79.html
index d5c86fdb..985137fd 100644
--- a/docs/html/node79.html
+++ b/docs/html/node79.html
@@ -23,26 +23,26 @@
@@ -88,7 +88,7 @@ Intent: in .
Specified as: an integer array of size .
ja
@@ -102,7 +102,7 @@ Intent: in .
Specified as: an integer array of size .
val
@@ -116,11 +116,11 @@ Intent: in .
Specified as: an array of size . Must be of the same type and kind
of the coefficients of the sparse matrix .
desc_a
@@ -211,14 +211,14 @@ An integer value; 0 means no error has been detected.
-->
, for ; these triples
should belong to the current process, i.e. should be one of
the local indices, but are otherwise arbitrary;
@@ -246,26 +246,26 @@ An integer value; 0 means no error has been detected.
diff --git a/docs/html/node8.html b/docs/html/node8.html
index 9b1e1251..b4bd2652 100644
--- a/docs/html/node8.html
+++ b/docs/html/node8.html
@@ -22,26 +22,26 @@
@@ -94,26 +94,26 @@ as:
diff --git a/docs/html/node80.html b/docs/html/node80.html
index 23728587..0b772b19 100644
--- a/docs/html/node80.html
+++ b/docs/html/node80.html
@@ -23,26 +23,26 @@
@@ -182,26 +182,26 @@ An integer value; 0 means no error has been detected.
diff --git a/docs/html/node81.html b/docs/html/node81.html
index 6e688f10..ad0cecc9 100644
--- a/docs/html/node81.html
+++ b/docs/html/node81.html
@@ -23,26 +23,26 @@
diff --git a/docs/html/node82.html b/docs/html/node82.html
index 245b17c3..178b059d 100644
--- a/docs/html/node82.html
+++ b/docs/html/node82.html
@@ -23,26 +23,26 @@
diff --git a/docs/html/node83.html b/docs/html/node83.html
index a9a4eac7..738de733 100644
--- a/docs/html/node83.html
+++ b/docs/html/node83.html
@@ -23,26 +23,26 @@
@@ -87,7 +87,7 @@ Intent: in .
Specified as: Integer scalar, default . It is not a valid argument if in.
Specified as: Integer scalar, default . It is not a valid argument if
@@ -68,7 +68,7 @@ call psb_geins(m, irw, val, x, desc_a, info [,dupl,local])
m
Number of rows in to be inserted.
Scope:local .
@@ -86,11 +86,11 @@ Specified as: an integer value.
ALT="$i$">
of will be inserted into the local row corresponding to the
global row index .
Scope:local .
@@ -194,26 +194,26 @@ An integer value; 0 means no error has been detected.
diff --git a/docs/html/node85.html b/docs/html/node85.html
index c66eadd8..d398962f 100644
--- a/docs/html/node85.html
+++ b/docs/html/node85.html
@@ -23,26 +23,26 @@
diff --git a/docs/html/node86.html b/docs/html/node86.html
index 887b910b..727ea53c 100644
--- a/docs/html/node86.html
+++ b/docs/html/node86.html
@@ -23,26 +23,26 @@
diff --git a/docs/html/node87.html b/docs/html/node87.html
index 1b2b4598..a2f92e49 100644
--- a/docs/html/node87.html
+++ b/docs/html/node87.html
@@ -23,26 +23,26 @@
@@ -72,7 +72,7 @@ call psb_gelp(trans, iperm, x, info)
SRC="img1.png"
ALT="$A$"> or .
Scope: local
@@ -86,7 +86,7 @@ Specified as: a single character with value 'N' for or 'T' for .
iperm
diff --git a/docs/html/node88.html b/docs/html/node88.html
index 0f4f81e0..dc1ef1f3 100644
--- a/docs/html/node88.html
+++ b/docs/html/node88.html
@@ -23,26 +23,26 @@
@@ -186,26 +186,26 @@ An integer value; 0 means no error has been detected.
diff --git a/docs/html/node89.html b/docs/html/node89.html
index b4ae68ff..8f9fe79e 100644
--- a/docs/html/node89.html
+++ b/docs/html/node89.html
@@ -23,26 +23,26 @@
diff --git a/docs/html/node9.html b/docs/html/node9.html
index d5d0565c..0a5a735c 100644
--- a/docs/html/node9.html
+++ b/docs/html/node9.html
@@ -23,26 +23,26 @@
@@ -109,132 +109,132 @@ developer's documentation.
Subsections
diff --git a/docs/html/node90.html b/docs/html/node90.html
index 84cafa51..06a82601 100644
--- a/docs/html/node90.html
+++ b/docs/html/node90.html
@@ -23,26 +23,26 @@
diff --git a/docs/html/node91.html b/docs/html/node91.html
index 8f42455e..d636cd7a 100644
--- a/docs/html/node91.html
+++ b/docs/html/node91.html
@@ -23,26 +23,26 @@
diff --git a/docs/html/node92.html b/docs/html/node92.html
index 71988886..874ce23a 100644
--- a/docs/html/node92.html
+++ b/docs/html/node92.html
@@ -23,26 +23,26 @@
diff --git a/docs/html/node93.html b/docs/html/node93.html
index 9abcf1fa..675e81fa 100644
--- a/docs/html/node93.html
+++ b/docs/html/node93.html
@@ -23,26 +23,26 @@
diff --git a/docs/html/node94.html b/docs/html/node94.html
index 5d30b949..b58a1ece 100644
--- a/docs/html/node94.html
+++ b/docs/html/node94.html
@@ -23,26 +23,26 @@
diff --git a/docs/html/node95.html b/docs/html/node95.html
index b53e1e39..e82e5e78 100644
--- a/docs/html/node95.html
+++ b/docs/html/node95.html
@@ -23,26 +23,26 @@
diff --git a/docs/html/node96.html b/docs/html/node96.html
index 4d678841..9804dc41 100644
--- a/docs/html/node96.html
+++ b/docs/html/node96.html
@@ -23,26 +23,26 @@
@@ -78,7 +78,7 @@ Intent: in .
Specified as: an integer .
a
@@ -114,7 +114,7 @@ Intent: in .
Specified as: an integer . When append is true, specifies how many
entries in the output vectors are already filled.
@@ -129,10 +129,10 @@ Intent: in .
Specified as: an integer , default: .
@@ -207,12 +207,12 @@ An integer value; 0 means no error has been detected.
The output is always the size of the output generated by
the current call; thus, if append=.true.
, the total output
size will be , with the newly extracted coefficients stored in
entries nzin+1:nzin+nz
of the array arguments;
@@ -229,26 +229,26 @@ An integer value; 0 means no error has been detected.
diff --git a/docs/html/node97.html b/docs/html/node97.html
index ed85f3cd..7f94cf70 100644
--- a/docs/html/node97.html
+++ b/docs/html/node97.html
@@ -23,26 +23,26 @@
diff --git a/docs/html/node98.html b/docs/html/node98.html
index c93a9d41..da637e10 100644
--- a/docs/html/node98.html
+++ b/docs/html/node98.html
@@ -22,26 +22,26 @@
@@ -70,7 +70,7 @@ call psb_hsort(x,ix,dir,flag)
These serial routines sort a sequence into ascending or
descending order. The argument meaning is identical for the three
calls; the only difference is the algorithm used to accomplish the
@@ -96,7 +96,7 @@ Type:optional .
Specified as: an integer array of (at least) the same size as .
dir
@@ -120,7 +120,7 @@ default psb_lsort_up_
.
flag
Whether to keep the original values in .
Type:optional .
@@ -182,10 +182,10 @@ position as the corresponding entries in
then the entries in
where
; thus, upon return from the subroutine, for each
index ; thus, upon return from the subroutine, for each
SRC="img4.png"
ALT="$i$"> we have in the position that the item
occupied in the original data sequence;
@@ -219,16 +219,16 @@ i$"> ; thus, upon return from the subroutine, for each
-->
the routine will assume that
the entries in have already been initialized by the user;
The three sorting algorithms have a similar expected
running time; in the average case quicksort will be the
fastest and merge-sort the slowest. However note that:
@@ -236,7 +236,7 @@ i$">; thus, upon return from the subroutine, for each
The worst case running time for quicksort is ; the algorithm
implemented here follows the well-known median-of-three heuristics,
but the worst case may still apply;
@@ -244,7 +244,7 @@ i$">; thus, upon return from the subroutine, for each
The worst case running time for merge-sort and heap-sort is
as the average case;
The merge-sort algorithm is implemented to take advantage of
@@ -264,26 +264,26 @@ i$">; thus, upon return from the subroutine, for each
diff --git a/docs/html/node99.html b/docs/html/node99.html
index 846e4c02..95f9a443 100644
--- a/docs/html/node99.html
+++ b/docs/html/node99.html
@@ -14,7 +14,7 @@
-
+
@@ -23,26 +23,26 @@
@@ -60,42 +60,44 @@ Parallel environment routines
Subsections
diff --git a/docs/html/userhtml.html b/docs/html/userhtml.html
index c99b1d18..eba632d1 100644
--- a/docs/html/userhtml.html
+++ b/docs/html/userhtml.html
@@ -338,68 +338,70 @@ of a dense vector
psb_amn -- Global minimum absolute value
psb_snd -- Send data
+ HREF="node114.html">psb_nrm2 -- Global 2-norm reduction
psb_rcv -- Receive data
+ HREF="node115.html">psb_snd -- Send data
+psb_rcv -- Receive data
-Error handling
Utilities
-
+ HREF="node117.html">Error handling
hb_read -- Read a sparse matrix from a file in the
- Harwell-Boeing format
+ HREF="node118.html">Utilities
+
-Preconditioner routines
-
init -- Initialize a preconditioner
+ HREF="node125.html">Preconditioner routines
+
-Iterative Methods
-
diff --git a/docs/psblas-3.5.pdf b/docs/psblas-3.5.pdf
index c734bf6e..96e8c452 100644
--- a/docs/psblas-3.5.pdf
+++ b/docs/psblas-3.5.pdf
@@ -442,7 +442,7 @@ stream
endstream
endobj
-551 0 obj
+555 0 obj
<<
/Length 585
>>
@@ -470,7 +470,7 @@ ET
endstream
endobj
-561 0 obj
+565 0 obj
<<
/Length 77
>>
@@ -485,7 +485,7 @@ ET
endstream
endobj
-612 0 obj
+616 0 obj
<<
/Length 16991
>>
@@ -1085,19 +1085,19 @@ endobj
/Type /ObjStm
/N 100
/First 865
-/Length 7353
+/Length 7128
>>
stream
403 0 407 44 408 70 411 114 412 140 415 184 416 220 419 264 420 297 423 341
424 368 427 412 428 441 431 485 432 512 435 556 436 583 439 627 440 652 443 696
-444 721 447 765 448 790 451 834 452 859 455 903 456 928 459 972 460 997 463 1041
-464 1066 467 1108 468 1139 471 1183 472 1212 475 1256 476 1283 479 1327 480 1368 483 1412
-484 1450 487 1492 488 1518 491 1562 492 1587 495 1631 496 1657 499 1702 500 1734 503 1779
-504 1813 507 1858 508 1891 511 1936 512 1971 515 2014 516 2055 519 2100 520 2127 523 2172
-524 2200 527 2245 528 2273 531 2318 532 2346 535 2391 536 2411 539 2456 540 2483 543 2526
-544 2561 547 2606 548 2634 549 2679 552 2793 553 2849 3 2905 550 2959 560 3064 562 3178
-559 3235 611 3301 563 3795 564 3941 565 4087 566 4239 567 4391 568 4543 569 4700 570 4852
-571 4998 572 5150 573 5306 574 5453 575 5600 576 5748 577 5896 578 6044 579 6192 580 6340
+444 721 447 765 448 790 451 834 452 859 455 903 456 928 459 972 460 998 463 1042
+464 1067 467 1111 468 1136 471 1178 472 1209 475 1253 476 1282 479 1326 480 1353 483 1397
+484 1438 487 1482 488 1520 491 1562 492 1588 495 1632 496 1657 499 1702 500 1728 503 1773
+504 1805 507 1850 508 1884 511 1929 512 1962 515 2007 516 2042 519 2085 520 2126 523 2171
+524 2198 527 2243 528 2271 531 2316 532 2344 535 2389 536 2417 539 2462 540 2482 543 2527
+544 2554 547 2597 548 2632 551 2677 552 2705 553 2750 556 2864 557 2920 3 2976 554 3030
+564 3135 566 3249 563 3306 615 3372 567 3866 568 4012 569 4158 570 4310 571 4462 572 4614
+573 4771 574 4923 575 5069 576 5221 577 5377 578 5524 579 5671 580 5819 581 5967 582 6115
% 403 0 obj
<< /S /GoTo /D (section*.79) >>
% 407 0 obj
@@ -1153,149 +1153,153 @@ stream
% 456 0 obj
<< /S /GoTo /D (section*.92) >>
% 459 0 obj
-(psb\137snd)
+(psb\137nrm2)
% 460 0 obj
<< /S /GoTo /D (section*.93) >>
% 463 0 obj
-(psb\137rcv)
+(psb\137snd)
% 464 0 obj
-<< /S /GoTo /D (section.8) >>
+<< /S /GoTo /D (section*.94) >>
% 467 0 obj
-(8 Error handling)
+(psb\137rcv)
% 468 0 obj
-<< /S /GoTo /D (section*.94) >>
+<< /S /GoTo /D (section.8) >>
% 471 0 obj
-(psb\137errpush)
+(8 Error handling)
% 472 0 obj
<< /S /GoTo /D (section*.95) >>
% 475 0 obj
-(psb\137error)
+(psb\137errpush)
% 476 0 obj
<< /S /GoTo /D (section*.96) >>
% 479 0 obj
-(psb\137set\137errverbosity)
+(psb\137error)
% 480 0 obj
<< /S /GoTo /D (section*.97) >>
% 483 0 obj
-(psb\137set\137erraction)
+(psb\137set\137errverbosity)
% 484 0 obj
-<< /S /GoTo /D (section.9) >>
+<< /S /GoTo /D (section*.98) >>
% 487 0 obj
-(9 Utilities)
+(psb\137set\137erraction)
% 488 0 obj
-<< /S /GoTo /D (section*.98) >>
+<< /S /GoTo /D (section.9) >>
% 491 0 obj
-(hb\137read)
+(9 Utilities)
% 492 0 obj
<< /S /GoTo /D (section*.99) >>
% 495 0 obj
-(hb\137write)
+(hb\137read)
% 496 0 obj
<< /S /GoTo /D (section*.100) >>
% 499 0 obj
-(mm\137mat\137read)
+(hb\137write)
% 500 0 obj
<< /S /GoTo /D (section*.101) >>
% 503 0 obj
-(mm\137array\137read)
+(mm\137mat\137read)
% 504 0 obj
<< /S /GoTo /D (section*.102) >>
% 507 0 obj
-(mm\137mat\137write)
+(mm\137array\137read)
% 508 0 obj
<< /S /GoTo /D (section*.103) >>
% 511 0 obj
-(mm\137array\137write)
+(mm\137mat\137write)
% 512 0 obj
-<< /S /GoTo /D (section.10) >>
+<< /S /GoTo /D (section*.104) >>
% 515 0 obj
-(10 Preconditioner routines)
+(mm\137array\137write)
% 516 0 obj
-<< /S /GoTo /D (section*.104) >>
+<< /S /GoTo /D (section.10) >>
% 519 0 obj
-(prec\045init)
+(10 Preconditioner routines)
% 520 0 obj
<< /S /GoTo /D (section*.105) >>
% 523 0 obj
-(prec\045build)
+(prec\045init)
% 524 0 obj
<< /S /GoTo /D (section*.106) >>
% 527 0 obj
-(prec\045apply)
+(prec\045build)
% 528 0 obj
<< /S /GoTo /D (section*.107) >>
% 531 0 obj
-(prec\045descr)
+(prec\045apply)
% 532 0 obj
<< /S /GoTo /D (section*.108) >>
% 535 0 obj
-(clone)
+(prec\045descr)
% 536 0 obj
<< /S /GoTo /D (section*.109) >>
% 539 0 obj
-(prec\045free)
+(clone)
% 540 0 obj
-<< /S /GoTo /D (section.11) >>
+<< /S /GoTo /D (section*.110) >>
% 543 0 obj
-(11 Iterative Methods)
+(prec\045free)
% 544 0 obj
-<< /S /GoTo /D (section*.110) >>
+<< /S /GoTo /D (section.11) >>
% 547 0 obj
-(psb\137krylov)
+(11 Iterative Methods)
% 548 0 obj
-<< /S /GoTo /D [549 0 R /Fit] >>
-% 549 0 obj
+<< /S /GoTo /D (section*.111) >>
+% 551 0 obj
+(psb\137krylov)
+% 552 0 obj
+<< /S /GoTo /D [553 0 R /Fit] >>
+% 553 0 obj
<<
/Type /Page
-/Contents 551 0 R
-/Resources 550 0 R
+/Contents 555 0 R
+/Resources 554 0 R
/MediaBox [0 0 595.276 841.89]
-/Parent 558 0 R
+/Parent 562 0 R
>>
-% 552 0 obj
+% 556 0 obj
<<
-/D [549 0 R /XYZ 98.895 753.953 null]
+/D [553 0 R /XYZ 98.895 753.953 null]
>>
-% 553 0 obj
+% 557 0 obj
<<
-/D [549 0 R /XYZ 99.895 716.092 null]
+/D [553 0 R /XYZ 99.895 716.092 null]
>>
% 3 0 obj
<<
-/D [549 0 R /XYZ 99.895 716.092 null]
+/D [553 0 R /XYZ 99.895 716.092 null]
>>
-% 550 0 obj
+% 554 0 obj
<<
-/Font << /F16 554 0 R /F18 555 0 R /F27 556 0 R /F8 557 0 R >>
+/Font << /F16 558 0 R /F18 559 0 R /F27 560 0 R /F8 561 0 R >>
/ProcSet [ /PDF /Text ]
>>
-% 560 0 obj
+% 564 0 obj
<<
/Type /Page
-/Contents 561 0 R
-/Resources 559 0 R
+/Contents 565 0 R
+/Resources 563 0 R
/MediaBox [0 0 595.276 841.89]
-/Parent 558 0 R
+/Parent 562 0 R
>>
-% 562 0 obj
+% 566 0 obj
<<
-/D [560 0 R /XYZ 149.705 753.953 null]
+/D [564 0 R /XYZ 149.705 753.953 null]
>>
-% 559 0 obj
+% 563 0 obj
<<
-/Font << /F8 557 0 R >>
+/Font << /F8 561 0 R >>
/ProcSet [ /PDF /Text ]
>>
-% 611 0 obj
+% 615 0 obj
<<
/Type /Page
-/Contents 612 0 R
-/Resources 610 0 R
+/Contents 616 0 R
+/Resources 614 0 R
/MediaBox [0 0 595.276 841.89]
-/Parent 558 0 R
-/Annots [ 563 0 R 564 0 R 565 0 R 566 0 R 567 0 R 568 0 R 569 0 R 570 0 R 571 0 R 572 0 R 573 0 R 574 0 R 575 0 R 576 0 R 577 0 R 578 0 R 579 0 R 580 0 R 581 0 R 582 0 R 583 0 R 584 0 R 585 0 R 586 0 R 587 0 R 588 0 R 589 0 R 590 0 R 591 0 R 592 0 R 593 0 R 594 0 R 595 0 R 596 0 R 597 0 R 598 0 R 599 0 R 600 0 R 601 0 R 602 0 R 603 0 R 604 0 R 605 0 R 606 0 R 607 0 R 608 0 R ]
+/Parent 562 0 R
+/Annots [ 567 0 R 568 0 R 569 0 R 570 0 R 571 0 R 572 0 R 573 0 R 574 0 R 575 0 R 576 0 R 577 0 R 578 0 R 579 0 R 580 0 R 581 0 R 582 0 R 583 0 R 584 0 R 585 0 R 586 0 R 587 0 R 588 0 R 589 0 R 590 0 R 591 0 R 592 0 R 593 0 R 594 0 R 595 0 R 596 0 R 597 0 R 598 0 R 599 0 R 600 0 R 601 0 R 602 0 R 603 0 R 604 0 R 605 0 R 606 0 R 607 0 R 608 0 R 609 0 R 610 0 R 611 0 R 612 0 R ]
>>
-% 563 0 obj
+% 567 0 obj
<<
/Type /Annot
/Subtype /Link
@@ -1303,7 +1307,7 @@ stream
/Rect [98.899 683.007 179.001 691.918]
/A << /S /GoTo /D (section.1) >>
>>
-% 564 0 obj
+% 568 0 obj
<<
/Type /Annot
/Subtype /Link
@@ -1311,7 +1315,7 @@ stream
/Rect [98.899 660.882 202.863 669.793]
/A << /S /GoTo /D (section.2) >>
>>
-% 565 0 obj
+% 569 0 obj
<<
/Type /Annot
/Subtype /Link
@@ -1319,7 +1323,7 @@ stream
/Rect [113.843 648.802 225.868 657.713]
/A << /S /GoTo /D (subsection.2.1) >>
>>
-% 566 0 obj
+% 570 0 obj
<<
/Type /Annot
/Subtype /Link
@@ -1327,7 +1331,7 @@ stream
/Rect [113.843 634.785 210.675 645.633]
/A << /S /GoTo /D (subsection.2.2) >>
>>
-% 567 0 obj
+% 571 0 obj
<<
/Type /Annot
/Subtype /Link
@@ -1335,7 +1339,7 @@ stream
/Rect [113.843 622.706 232.122 633.554]
/A << /S /GoTo /D (subsection.2.3) >>
>>
-% 568 0 obj
+% 572 0 obj
<<
/Type /Annot
/Subtype /Link
@@ -1343,7 +1347,7 @@ stream
/Rect [136.757 610.626 296.409 621.474]
/A << /S /GoTo /D (subsubsection.2.3.1) >>
>>
-% 569 0 obj
+% 573 0 obj
<<
/Type /Annot
/Subtype /Link
@@ -1351,7 +1355,7 @@ stream
/Rect [113.843 598.546 227.777 609.394]
/A << /S /GoTo /D (subsection.2.4) >>
>>
-% 570 0 obj
+% 574 0 obj
<<
/Type /Annot
/Subtype /Link
@@ -1359,7 +1363,7 @@ stream
/Rect [98.899 578.358 258.112 587.269]
/A << /S /GoTo /D (section.3) >>
>>
-% 571 0 obj
+% 575 0 obj
<<
/Type /Annot
/Subtype /Link
@@ -1367,7 +1371,7 @@ stream
/Rect [113.843 564.341 249.529 575.189]
/A << /S /GoTo /D (subsection.3.1) >>
>>
-% 572 0 obj
+% 576 0 obj
<<
/Type /Annot
/Subtype /Link
@@ -1375,7 +1379,7 @@ stream
/Rect [136.757 552.261 257.001 563.11]
/A << /S /GoTo /D (subsubsection.3.1.1) >>
>>
-% 573 0 obj
+% 577 0 obj
<<
/Type /Annot
/Subtype /Link
@@ -1383,7 +1387,7 @@ stream
/Rect [168.638 540.182 231.021 551.03]
/A << /S /GoTo /D (section*.2) >>
>>
-% 574 0 obj
+% 578 0 obj
<<
/Type /Annot
/Subtype /Link
@@ -1391,7 +1395,7 @@ stream
/Rect [168.638 528.102 227.395 538.95]
/A << /S /GoTo /D (section*.3) >>
>>
-% 575 0 obj
+% 579 0 obj
<<
/Type /Annot
/Subtype /Link
@@ -1399,7 +1403,7 @@ stream
/Rect [168.638 516.022 236.832 526.871]
/A << /S /GoTo /D (section*.4) >>
>>
-% 576 0 obj
+% 580 0 obj
<<
/Type /Annot
/Subtype /Link
@@ -1407,7 +1411,7 @@ stream
/Rect [168.638 503.943 233.207 514.791]
/A << /S /GoTo /D (section*.5) >>
>>
-% 577 0 obj
+% 581 0 obj
<<
/Type /Annot
/Subtype /Link
@@ -1415,7 +1419,7 @@ stream
/Rect [168.638 491.863 236.832 502.711]
/A << /S /GoTo /D (section*.6) >>
>>
-% 578 0 obj
+% 582 0 obj
<<
/Type /Annot
/Subtype /Link
@@ -1423,26 +1427,10 @@ stream
/Rect [168.638 479.783 219.602 490.133]
/A << /S /GoTo /D (section*.7) >>
>>
-% 579 0 obj
-<<
-/Type /Annot
-/Subtype /Link
-/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [168.638 469.641 195.537 478.552]
-/A << /S /GoTo /D (section*.8) >>
->>
-% 580 0 obj
-<<
-/Type /Annot
-/Subtype /Link
-/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [168.638 457.561 192.769 466.361]
-/A << /S /GoTo /D (section*.9) >>
->>
endstream
endobj
-665 0 obj
+669 0 obj
<<
/Length 20672
>>
@@ -1557,7 +1545,7 @@ BT
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
0 g 0 G
- [-1084(36)]TJ
+ [-1084(37)]TJ
0 g 0 G
0 0 1 rg 0 0 1 RG
-18.586 -12.08 Td [(psb)]TJ
@@ -1571,7 +1559,7 @@ BT
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
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
@@ -1585,7 +1573,7 @@ BT
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
0 g 0 G
- [-1084(38)]TJ
+ [-1084(40)]TJ
0 g 0 G
0 0 1 rg 0 0 1 RG
-18.586 -12.079 Td [(psb)]TJ
@@ -1599,7 +1587,7 @@ BT
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
0 g 0 G
- [-1084(40)]TJ
+ [-1084(42)]TJ
0 g 0 G
0 0 1 rg 0 0 1 RG
-18.586 -12.08 Td [(psb)]TJ
@@ -1613,7 +1601,7 @@ BT
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
0 g 0 G
- [-1084(41)]TJ
+ [-1084(44)]TJ
0 g 0 G
0 0 1 rg 0 0 1 RG
-18.586 -12.08 Td [(psb)]TJ
@@ -1627,7 +1615,7 @@ BT
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
0 g 0 G
- [-1084(42)]TJ
+ [-1084(45)]TJ
0 g 0 G
0 0 1 rg 0 0 1 RG
-18.586 -12.079 Td [(psb)]TJ
@@ -1641,7 +1629,7 @@ BT
0 g 0 G
[-548(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ
0 g 0 G
- [-1084(43)]TJ
+ [-1084(46)]TJ
0 g 0 G
0 0 1 rg 0 0 1 RG
-18.586 -12.08 Td [(psb)]TJ
@@ -1655,7 +1643,7 @@ BT
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
0 g 0 G
- [-1084(44)]TJ
+ [-1084(47)]TJ
0 g 0 G
0 0 1 rg 0 0 1 RG
-18.586 -12.08 Td [(psb)]TJ
@@ -1669,12 +1657,12 @@ BT
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
0 g 0 G
- [-1084(46)]TJ
+ [-1084(49)]TJ
0 g 0 G
0 0 1 rg 0 0 1 RG
/F27 9.9626 Tf -33.53 -22.125 Td [(5)-925(Comm)32(unication)-383(r)-1(ou)1(t)-1(ines)]TJ
0 g 0 G
- [-19454(49)]TJ
+ [-19454(52)]TJ
0 0 1 rg 0 0 1 RG
/F8 9.9626 Tf 14.944 -12.08 Td [(psb)]TJ
ET
@@ -1687,7 +1675,7 @@ BT
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
0 g 0 G
- [-1084(50)]TJ
+ [-1084(53)]TJ
0 g 0 G
0 0 1 rg 0 0 1 RG
-18.586 -12.079 Td [(psb)]TJ
@@ -1701,7 +1689,7 @@ BT
0 g 0 G
[-659(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)]TJ
0 g 0 G
- [-1084(53)]TJ
+ [-1084(56)]TJ
0 g 0 G
0 0 1 rg 0 0 1 RG
-18.586 -12.08 Td [(psb)]TJ
@@ -1715,7 +1703,7 @@ BT
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
0 g 0 G
- [-1084(57)]TJ
+ [-1084(60)]TJ
0 g 0 G
0 0 1 rg 0 0 1 RG
-18.586 -12.08 Td [(psb)]TJ
@@ -1729,12 +1717,12 @@ BT
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
0 g 0 G
- [-1083(59)]TJ
+ [-1083(62)]TJ
0 g 0 G
0 0 1 rg 0 0 1 RG
/F27 9.9626 Tf -33.53 -22.125 Td [(6)-925(Data)-383(managem)-1(e)1(n)31(t)-383(routines)]TJ
0 g 0 G
- [-18205(61)]TJ
+ [-18205(64)]TJ
0 0 1 rg 0 0 1 RG
/F8 9.9626 Tf 14.944 -12.08 Td [(psb)]TJ
ET
@@ -1747,7 +1735,7 @@ BT
0 g 0 G
[-273(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ
0 g 0 G
- [-1084(61)]TJ
+ [-1084(64)]TJ
0 g 0 G
0 0 1 rg 0 0 1 RG
-18.586 -12.08 Td [(psb)]TJ
@@ -1761,7 +1749,7 @@ BT
0 g 0 G
[-879(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ
0 g 0 G
- [-1084(65)]TJ
+ [-1084(68)]TJ
0 g 0 G
0 0 1 rg 0 0 1 RG
-18.586 -12.079 Td [(psb)]TJ
@@ -1775,7 +1763,7 @@ BT
0 g 0 G
[-657(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ
0 g 0 G
- [-1083(67)]TJ
+ [-1083(70)]TJ
0 g 0 G
0 0 1 rg 0 0 1 RG
-18.586 -12.08 Td [(psb)]TJ
@@ -1789,7 +1777,7 @@ BT
0 g 0 G
[-607(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ
0 g 0 G
- [-1084(68)]TJ
+ [-1084(71)]TJ
0 g 0 G
0 0 1 rg 0 0 1 RG
-18.586 -12.08 Td [(psb)]TJ
@@ -1803,7 +1791,7 @@ BT
0 g 0 G
[-520(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)]TJ
0 g 0 G
- [-1084(69)]TJ
+ [-1084(72)]TJ
0 g 0 G
0 0 1 rg 0 0 1 RG
-18.586 -12.079 Td [(psb)]TJ
@@ -1817,7 +1805,7 @@ BT
0 g 0 G
[-912(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ
0 g 0 G
- [-1084(70)]TJ
+ [-1084(73)]TJ
0 g 0 G
0 0 1 rg 0 0 1 RG
-18.586 -12.08 Td [(psb)]TJ
@@ -1831,7 +1819,7 @@ BT
0 g 0 G
[-323(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ
0 g 0 G
- [-1084(72)]TJ
+ [-1084(75)]TJ
0 g 0 G
0 0 1 rg 0 0 1 RG
-18.586 -12.08 Td [(psb)]TJ
@@ -1845,7 +1833,7 @@ BT
0 g 0 G
[-929(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ
0 g 0 G
- [-1084(73)]TJ
+ [-1084(76)]TJ
0 g 0 G
0 0 1 rg 0 0 1 RG
-18.586 -12.08 Td [(psb)]TJ
@@ -1859,7 +1847,7 @@ BT
0 g 0 G
[-707(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ
0 g 0 G
- [-1083(75)]TJ
+ [-1083(78)]TJ
0 g 0 G
0 0 1 rg 0 0 1 RG
-18.586 -12.079 Td [(psb)]TJ
@@ -1873,7 +1861,7 @@ BT
0 g 0 G
[-570(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)]TJ
0 g 0 G
- [-1084(77)]TJ
+ [-1084(80)]TJ
0 g 0 G
0 0 1 rg 0 0 1 RG
-18.586 -12.08 Td [(psb)]TJ
@@ -1887,7 +1875,7 @@ BT
0 g 0 G
[-431(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)]TJ
0 g 0 G
- [-1084(78)]TJ
+ [-1084(81)]TJ
0 g 0 G
0 0 1 rg 0 0 1 RG
-18.586 -12.08 Td [(psb)]TJ
@@ -1901,7 +1889,7 @@ BT
0 g 0 G
[-329(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ
0 g 0 G
- [-1084(79)]TJ
+ [-1084(82)]TJ
0 g 0 G
0 0 1 rg 0 0 1 RG
-18.586 -12.079 Td [(psb)]TJ
@@ -1915,7 +1903,7 @@ BT
0 g 0 G
[-934(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ
0 g 0 G
- [-1084(80)]TJ
+ [-1084(83)]TJ
0 g 0 G
0 0 1 rg 0 0 1 RG
-18.586 -12.08 Td [(psb)]TJ
@@ -1929,7 +1917,7 @@ BT
0 g 0 G
[-712(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ
0 g 0 G
- [-1084(82)]TJ
+ [-1084(85)]TJ
0 g 0 G
0 0 1 rg 0 0 1 RG
-18.586 -12.08 Td [(psb)]TJ
@@ -1943,7 +1931,7 @@ BT
0 g 0 G
[-576(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ
0 g 0 G
- [-1084(83)]TJ
+ [-1084(86)]TJ
0 g 0 G
0 0 1 rg 0 0 1 RG
-18.586 -12.079 Td [(psb)]TJ
@@ -1957,7 +1945,7 @@ BT
0 g 0 G
[-551(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ
0 g 0 G
- [-1084(84)]TJ
+ [-1084(87)]TJ
0 g 0 G
0 0 1 rg 0 0 1 RG
-18.586 -12.08 Td [(psb)]TJ
@@ -1985,7 +1973,7 @@ BT
0 g 0 G
[-747(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ
0 g 0 G
- [-1083(85)]TJ
+ [-1083(88)]TJ
0 g 0 G
0 0 1 rg 0 0 1 RG
-52.879 -12.08 Td [(psb)]TJ
@@ -2013,7 +2001,7 @@ BT
0 g 0 G
[-748(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ
0 g 0 G
- [-1083(87)]TJ
+ [-1083(90)]TJ
0 g 0 G
0 0 1 rg 0 0 1 RG
-47.068 -12.08 Td [(psb)]TJ
@@ -2034,7 +2022,7 @@ BT
0 g 0 G
[-880(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ
0 g 0 G
- [-1084(88)]TJ
+ [-1084(91)]TJ
0 g 0 G
0 0 1 rg 0 0 1 RG
-28.869 -12.079 Td [(psb)]TJ
@@ -2055,7 +2043,7 @@ BT
0 g 0 G
[-746(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ
0 g 0 G
- [-1083(89)]TJ
+ [-1083(92)]TJ
0 g 0 G
0 0 1 rg 0 0 1 RG
-49.57 -12.08 Td [(psb)]TJ
@@ -2076,7 +2064,7 @@ BT
0 g 0 G
[-824(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ
0 g 0 G
- [-1084(90)]TJ
+ [-1084(93)]TJ
0 g 0 G
0 0 1 rg 0 0 1 RG
-28.869 -12.08 Td [(psb)]TJ
@@ -2097,7 +2085,7 @@ BT
0 g 0 G
[-691(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ
0 g 0 G
- [-1084(91)]TJ
+ [-1084(94)]TJ
0 g 0 G
0 0 1 rg 0 0 1 RG
-42.374 -12.079 Td [(psb)]TJ
@@ -2118,7 +2106,7 @@ BT
0 g 0 G
[-354(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ
0 g 0 G
- [-1083(92)]TJ
+ [-1083(95)]TJ
0 g 0 G
0 g 0 G
118.688 -29.888 Td [(ii)]TJ
@@ -2127,9 +2115,9 @@ ET
endstream
endobj
-710 0 obj
+715 0 obj
<<
-/Length 17570
+/Length 18018
>>
stream
0 g 0 G
@@ -2154,7 +2142,7 @@ BT
0 g 0 G
[-605(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)]TJ
0 g 0 G
- [-1084(93)]TJ
+ [-1084(96)]TJ
0 g 0 G
0 0 1 rg 0 0 1 RG
-35.456 -11.955 Td [(psb)]TJ
@@ -2175,7 +2163,7 @@ BT
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 g 0 G
- [-1084(94)]TJ
+ [-1084(97)]TJ
0 g 0 G
0 0 1 rg 0 0 1 RG
-31.637 -11.955 Td [(psb)]TJ
@@ -2189,19 +2177,19 @@ BT
0 g 0 G
[-740(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ
0 g 0 G
- [-1084(96)]TJ
+ [-1084(99)]TJ
0 g 0 G
0 0 1 rg 0 0 1 RG
-18.586 -11.956 Td [(Sorting)-333(utilities)]TJ
0 g 0 G
[-519(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ
0 g 0 G
- [-1083(97)]TJ
+ [-583(100)]TJ
0 g 0 G
0 0 1 rg 0 0 1 RG
/F27 9.9626 Tf -14.944 -21.917 Td [(7)-925(P)32(arallel)-384(en)32(vironmen)32(t)-383(routines)]TJ
0 g 0 G
- [-16891(99)]TJ
+ [-16316(102)]TJ
0 0 1 rg 0 0 1 RG
/F8 9.9626 Tf 14.944 -11.956 Td [(psb)]TJ
ET
@@ -2214,7 +2202,7 @@ BT
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 g 0 G
- [-583(100)]TJ
+ [-583(103)]TJ
0 g 0 G
0 0 1 rg 0 0 1 RG
-18.586 -11.955 Td [(psb)]TJ
@@ -2228,7 +2216,7 @@ BT
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
0 g 0 G
- [-584(101)]TJ
+ [-584(104)]TJ
0 g 0 G
0 0 1 rg 0 0 1 RG
-18.586 -11.955 Td [(psb)]TJ
@@ -2242,7 +2230,7 @@ BT
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 g 0 G
- [-584(102)]TJ
+ [-584(105)]TJ
0 g 0 G
0 0 1 rg 0 0 1 RG
-18.586 -11.955 Td [(psb)]TJ
@@ -2263,7 +2251,7 @@ BT
0 g 0 G
[-1024(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ
0 g 0 G
- [-583(103)]TJ
+ [-583(106)]TJ
0 g 0 G
0 0 1 rg 0 0 1 RG
-35.456 -11.955 Td [(psb)]TJ
@@ -2284,7 +2272,7 @@ BT
0 g 0 G
[-994(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ
0 g 0 G
- [-584(104)]TJ
+ [-584(107)]TJ
0 g 0 G
0 0 1 rg 0 0 1 RG
-35.456 -11.955 Td [(psb)]TJ
@@ -2298,7 +2286,7 @@ BT
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
0 g 0 G
- [-584(105)]TJ
+ [-584(108)]TJ
0 g 0 G
0 0 1 rg 0 0 1 RG
-18.586 -11.956 Td [(psb)]TJ
@@ -2312,7 +2300,7 @@ BT
0 g 0 G
[-931(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)]TJ
0 g 0 G
- [-584(106)]TJ
+ [-584(109)]TJ
0 g 0 G
0 0 1 rg 0 0 1 RG
-18.586 -11.955 Td [(psb)]TJ
@@ -2326,7 +2314,7 @@ BT
0 g 0 G
[-742(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)]TJ
0 g 0 G
- [-584(107)]TJ
+ [-584(110)]TJ
0 g 0 G
0 0 1 rg 0 0 1 RG
-18.586 -11.955 Td [(psb)]TJ
@@ -2340,7 +2328,7 @@ BT
0 g 0 G
[-795(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ
0 g 0 G
- [-584(108)]TJ
+ [-584(111)]TJ
0 g 0 G
0 0 1 rg 0 0 1 RG
-18.586 -11.955 Td [(psb)]TJ
@@ -2354,7 +2342,7 @@ BT
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 g 0 G
- [-584(109)]TJ
+ [-584(112)]TJ
0 g 0 G
0 0 1 rg 0 0 1 RG
-18.586 -11.955 Td [(psb)]TJ
@@ -2368,7 +2356,7 @@ BT
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 g 0 G
- [-583(110)]TJ
+ [-583(113)]TJ
0 g 0 G
0 0 1 rg 0 0 1 RG
-18.586 -11.955 Td [(psb)]TJ
@@ -2382,7 +2370,7 @@ BT
0 g 0 G
[-662(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ
0 g 0 G
- [-584(111)]TJ
+ [-584(114)]TJ
0 g 0 G
0 0 1 rg 0 0 1 RG
-18.586 -11.956 Td [(psb)]TJ
@@ -2396,7 +2384,7 @@ BT
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 g 0 G
- [-583(112)]TJ
+ [-583(115)]TJ
0 g 0 G
0 0 1 rg 0 0 1 RG
-18.586 -11.955 Td [(psb)]TJ
@@ -2410,7 +2398,7 @@ BT
0 g 0 G
[-440(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ
0 g 0 G
- [-584(113)]TJ
+ [-584(116)]TJ
0 g 0 G
0 0 1 rg 0 0 1 RG
-18.586 -11.955 Td [(psb)]TJ
@@ -2420,11 +2408,11 @@ q
[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S
Q
BT
-/F8 9.9626 Tf 133.425 469.018 Td [(snd)]TJ
+/F8 9.9626 Tf 133.425 469.018 Td [(nrm2)]TJ
0 g 0 G
- [-823(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ
+ [-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
0 g 0 G
- [-584(114)]TJ
+ [-584(117)]TJ
0 g 0 G
0 0 1 rg 0 0 1 RG
-18.586 -11.955 Td [(psb)]TJ
@@ -2434,292 +2422,322 @@ q
[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S
Q
BT
-/F8 9.9626 Tf 133.425 457.063 Td [(rcv)]TJ
+/F8 9.9626 Tf 133.425 457.063 Td [(snd)]TJ
+0 g 0 G
+ [-823(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ
+0 g 0 G
+ [-584(118)]TJ
+0 g 0 G
+0 0 1 rg 0 0 1 RG
+ -18.586 -11.955 Td [(psb)]TJ
+ET
+q
+1 0 0 1 130.436 445.307 cm
+[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S
+Q
+BT
+/F8 9.9626 Tf 133.425 445.108 Td [(rcv)]TJ
0 g 0 G
[-965(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ
0 g 0 G
- [-584(115)]TJ
+ [-584(119)]TJ
0 g 0 G
0 0 1 rg 0 0 1 RG
/F27 9.9626 Tf -33.53 -21.918 Td [(8)-925(Error)-383(handling)]TJ
0 g 0 G
- [-23812(116)]TJ
+ [-23812(120)]TJ
0 0 1 rg 0 0 1 RG
/F8 9.9626 Tf 14.944 -11.955 Td [(psb)]TJ
ET
q
-1 0 0 1 130.436 423.389 cm
+1 0 0 1 130.436 411.434 cm
[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S
Q
BT
-/F8 9.9626 Tf 133.425 423.19 Td [(errpush)]TJ
+/F8 9.9626 Tf 133.425 411.235 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 g 0 G
- [-584(118)]TJ
+ [-584(122)]TJ
0 g 0 G
0 0 1 rg 0 0 1 RG
-18.586 -11.955 Td [(psb)]TJ
ET
q
-1 0 0 1 130.436 411.434 cm
+1 0 0 1 130.436 399.479 cm
[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S
Q
BT
-/F8 9.9626 Tf 133.425 411.235 Td [(error)]TJ
+/F8 9.9626 Tf 133.425 399.28 Td [(error)]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 g 0 G
- [-584(119)]TJ
+ [-584(123)]TJ
0 g 0 G
0 0 1 rg 0 0 1 RG
- -18.586 -11.955 Td [(psb)]TJ
+ -18.586 -11.956 Td [(psb)]TJ
ET
q
-1 0 0 1 130.436 399.479 cm
+1 0 0 1 130.436 387.524 cm
[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S
Q
BT
-/F8 9.9626 Tf 133.425 399.28 Td [(set)]TJ
+/F8 9.9626 Tf 133.425 387.324 Td [(set)]TJ
ET
q
-1 0 0 1 146.255 399.479 cm
+1 0 0 1 146.255 387.524 cm
[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S
Q
BT
-/F8 9.9626 Tf 149.244 399.28 Td [(errv)28(erb)-28(osit)28(y)]TJ
+/F8 9.9626 Tf 149.244 387.324 Td [(errv)28(erb)-28(osit)28(y)]TJ
0 g 0 G
[-977(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)]TJ
0 g 0 G
- [-584(120)]TJ
+ [-584(124)]TJ
0 g 0 G
0 0 1 rg 0 0 1 RG
- -34.405 -11.956 Td [(psb)]TJ
+ -34.405 -11.955 Td [(psb)]TJ
ET
q
-1 0 0 1 130.436 387.524 cm
+1 0 0 1 130.436 375.568 cm
[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S
Q
BT
-/F8 9.9626 Tf 133.425 387.324 Td [(set)]TJ
+/F8 9.9626 Tf 133.425 375.369 Td [(set)]TJ
ET
q
-1 0 0 1 146.255 387.524 cm
+1 0 0 1 146.255 375.568 cm
[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S
Q
BT
-/F8 9.9626 Tf 149.244 387.324 Td [(erraction)]TJ
+/F8 9.9626 Tf 149.244 375.369 Td [(erraction)]TJ
0 g 0 G
[-735(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)]TJ
0 g 0 G
- [-584(121)]TJ
+ [-584(125)]TJ
0 g 0 G
0 0 1 rg 0 0 1 RG
-/F27 9.9626 Tf -49.349 -21.917 Td [(9)-925(Utilities)]TJ
+/F27 9.9626 Tf -49.349 -21.918 Td [(9)-925(Utilities)]TJ
0 g 0 G
- [-27238(122)]TJ
+ [-27238(126)]TJ
0 0 1 rg 0 0 1 RG
-/F8 9.9626 Tf 14.944 -11.956 Td [(h)28(b)]TJ
+/F8 9.9626 Tf 14.944 -11.955 Td [(h)28(b)]TJ
ET
q
-1 0 0 1 126.23 353.651 cm
+1 0 0 1 126.23 341.695 cm
[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S
Q
BT
-/F8 9.9626 Tf 129.219 353.451 Td [(read)]TJ
+/F8 9.9626 Tf 129.219 341.496 Td [(read)]TJ
0 g 0 G
[-859(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ
0 g 0 G
- [-584(123)]TJ
+ [-584(127)]TJ
0 g 0 G
0 0 1 rg 0 0 1 RG
-14.38 -11.955 Td [(h)28(b)]TJ
ET
q
-1 0 0 1 126.23 341.695 cm
+1 0 0 1 126.23 329.74 cm
[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S
Q
BT
-/F8 9.9626 Tf 129.219 341.496 Td [(write)]TJ
+/F8 9.9626 Tf 129.219 329.541 Td [(write)]TJ
0 g 0 G
[-526(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ
0 g 0 G
- [-584(124)]TJ
+ [-584(128)]TJ
0 g 0 G
0 0 1 rg 0 0 1 RG
-14.38 -11.955 Td [(mm)]TJ
ET
q
-1 0 0 1 132.042 329.74 cm
+1 0 0 1 132.042 317.785 cm
[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S
Q
BT
-/F8 9.9626 Tf 135.03 329.541 Td [(mat)]TJ
+/F8 9.9626 Tf 135.03 317.586 Td [(mat)]TJ
ET
q
-1 0 0 1 152.786 329.74 cm
+1 0 0 1 152.786 317.785 cm
[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S
Q
BT
-/F8 9.9626 Tf 155.775 329.541 Td [(read)]TJ
+/F8 9.9626 Tf 155.775 317.586 Td [(read)]TJ
0 g 0 G
[-527(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ
0 g 0 G
- [-584(125)]TJ
+ [-584(129)]TJ
0 g 0 G
0 0 1 rg 0 0 1 RG
-40.936 -11.955 Td [(mm)]TJ
ET
q
-1 0 0 1 132.042 317.785 cm
+1 0 0 1 132.042 305.83 cm
[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S
Q
BT
-/F8 9.9626 Tf 135.03 317.586 Td [(arra)28(y)]TJ
+/F8 9.9626 Tf 135.03 305.631 Td [(arra)28(y)]TJ
ET
q
-1 0 0 1 158.376 317.785 cm
+1 0 0 1 158.376 305.83 cm
[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S
Q
BT
-/F8 9.9626 Tf 161.365 317.586 Td [(read)]TJ
+/F8 9.9626 Tf 161.365 305.631 Td [(read)]TJ
0 g 0 G
[-744(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ
0 g 0 G
- [-584(126)]TJ
+ [-584(130)]TJ
0 g 0 G
0 0 1 rg 0 0 1 RG
-46.526 -11.955 Td [(mm)]TJ
ET
q
-1 0 0 1 132.042 305.83 cm
+1 0 0 1 132.042 293.875 cm
[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S
Q
BT
-/F8 9.9626 Tf 135.03 305.631 Td [(mat)]TJ
+/F8 9.9626 Tf 135.03 293.676 Td [(mat)]TJ
ET
q
-1 0 0 1 152.786 305.83 cm
+1 0 0 1 152.786 293.875 cm
[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S
Q
BT
-/F8 9.9626 Tf 155.775 305.631 Td [(write)]TJ
+/F8 9.9626 Tf 155.775 293.676 Td [(write)]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 g 0 G
- [-583(127)]TJ
+ [-583(131)]TJ
0 g 0 G
0 0 1 rg 0 0 1 RG
- -40.936 -11.955 Td [(mm)]TJ
+ -40.936 -11.956 Td [(mm)]TJ
ET
q
-1 0 0 1 132.042 293.875 cm
+1 0 0 1 132.042 281.92 cm
[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S
Q
BT
-/F8 9.9626 Tf 135.03 293.676 Td [(arra)28(y)]TJ
+/F8 9.9626 Tf 135.03 281.72 Td [(arra)28(y)]TJ
ET
q
-1 0 0 1 158.376 293.875 cm
+1 0 0 1 158.376 281.92 cm
[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S
Q
BT
-/F8 9.9626 Tf 161.365 293.676 Td [(write)]TJ
+/F8 9.9626 Tf 161.365 281.72 Td [(write)]TJ
0 g 0 G
[-410(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ
0 g 0 G
- [-583(128)]TJ
+ [-583(132)]TJ
0 g 0 G
0 0 1 rg 0 0 1 RG
-/F27 9.9626 Tf -61.47 -21.918 Td [(10)-350(Preconditioner)-383(routi)-1(n)1(es)]TJ
+/F27 9.9626 Tf -61.47 -21.917 Td [(10)-350(Preconditioner)-383(routi)-1(n)1(es)]TJ
0 g 0 G
- [-19367(129)]TJ
+ [-19367(133)]TJ
0 0 1 rg 0 0 1 RG
-/F8 9.9626 Tf 14.944 -11.955 Td [(prec%init)]TJ
+/F8 9.9626 Tf 14.944 -11.956 Td [(prec%init)]TJ
0 g 0 G
[-803(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ
0 g 0 G
- [-583(130)]TJ
+ [-583(134)]TJ
0 g 0 G
0 0 1 rg 0 0 1 RG
- 0 -11.956 Td [(prec%build)]TJ
+ 0 -11.955 Td [(prec%build)]TJ
0 g 0 G
[-858(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ
0 g 0 G
- [-584(131)]TJ
+ [-584(135)]TJ
0 g 0 G
0 0 1 rg 0 0 1 RG
0 -11.955 Td [(prec%apply)]TJ
0 g 0 G
[-664(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ
0 g 0 G
- [-584(133)]TJ
+ [-584(137)]TJ
0 g 0 G
0 0 1 rg 0 0 1 RG
0 -11.955 Td [(prec%descr)]TJ
0 g 0 G
[-850(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ
0 g 0 G
- [-584(134)]TJ
+ [-584(138)]TJ
0 g 0 G
0 0 1 rg 0 0 1 RG
0 -11.955 Td [(clone)]TJ
0 g 0 G
[-417(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ
0 g 0 G
- [-583(135)]TJ
+ [-583(139)]TJ
0 g 0 G
0 0 1 rg 0 0 1 RG
- 0 -11.955 Td [(prec%free)]TJ
+ 0 -11.956 Td [(prec%free)]TJ
0 g 0 G
[-717(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ
0 g 0 G
- [-583(136)]TJ
+ [-583(140)]TJ
0 g 0 G
0 0 1 rg 0 0 1 RG
-/F27 9.9626 Tf -14.944 -21.918 Td [(11)-350(Iterativ)32(e)-384(Metho)-31(ds)]TJ
+/F27 9.9626 Tf -14.944 -21.917 Td [(11)-350(Iterativ)32(e)-384(Metho)-31(ds)]TJ
0 g 0 G
- [-22176(137)]TJ
+ [-22176(141)]TJ
0 0 1 rg 0 0 1 RG
-/F8 9.9626 Tf 14.944 -11.955 Td [(psb)]TJ
+/F8 9.9626 Tf 14.944 -11.956 Td [(psb)]TJ
ET
q
-1 0 0 1 130.436 166.353 cm
+1 0 0 1 130.436 154.398 cm
[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S
Q
BT
-/F8 9.9626 Tf 133.425 166.154 Td [(krylo)28(v)]TJ
+/F8 9.9626 Tf 133.425 154.199 Td [(krylo)28(v)]TJ
0 g 0 G
[-382(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ
0 g 0 G
- [-583(138)]TJ
+ [-583(142)]TJ
0 g 0 G
0 g 0 G
- 134.175 -75.716 Td [(iii)]TJ
+ 134.175 -63.761 Td [(iii)]TJ
0 g 0 G
ET
endstream
endobj
-615 0 obj
+619 0 obj
<<
/Type /ObjStm
/N 100
/First 924
-/Length 16082
+/Length 16089
>>
stream
-581 0 582 149 583 298 584 455 585 607 586 763 587 912 588 1061 589 1210 590 1358
-591 1507 592 1656 593 1805 594 1954 595 2103 596 2252 597 2401 598 2550 599 2699 600 2848
-601 2997 602 3145 603 3294 604 3451 605 3603 606 3759 607 3908 608 4056 613 4205 614 4261
-610 4317 664 4409 609 4911 616 5060 617 5209 618 5361 619 5513 620 5660 621 5809 622 5957
-623 6104 624 6252 625 6401 626 6550 627 6699 628 6848 629 6996 630 7145 631 7294 632 7441
-633 7590 634 7737 635 7885 636 8033 637 8181 638 8330 639 8476 640 8624 641 8773 642 8922
-643 9071 644 9220 645 9369 646 9518 647 9667 648 9816 649 9965 650 10114 651 10263 652 10412
-653 10561 654 10709 655 10857 656 11005 657 11154 658 11303 659 11451 660 11598 661 11746 666 11893
-663 11950 709 12029 662 12491 667 12640 668 12788 669 12933 670 13081 671 13226 672 13375 673 13523
-674 13672 675 13819 676 13968 677 14117 678 14266 679 14415 680 14564 681 14712 682 14861 683 15009
-% 581 0 obj
+583 0 584 148 585 296 586 445 587 594 588 751 589 903 590 1059 591 1208 592 1357
+593 1506 594 1654 595 1803 596 1952 597 2101 598 2250 599 2399 600 2548 601 2697 602 2846
+603 2995 604 3144 605 3293 606 3441 607 3590 608 3747 609 3899 610 4055 611 4204 612 4352
+617 4501 618 4557 614 4613 668 4705 613 5207 620 5356 621 5505 622 5657 623 5809 624 5956
+625 6105 626 6253 627 6400 628 6548 629 6697 630 6846 631 6995 632 7144 633 7292 634 7441
+635 7590 636 7737 637 7886 638 8033 639 8181 640 8329 641 8477 642 8626 643 8772 644 8920
+645 9069 646 9218 647 9367 648 9516 649 9665 650 9814 651 9963 652 10112 653 10261 654 10410
+655 10559 656 10708 657 10857 658 11005 659 11153 660 11301 661 11450 662 11599 663 11747 664 11894
+665 12042 670 12189 667 12246 714 12325 666 12795 671 12944 672 13092 673 13237 674 13385 675 13530
+676 13679 677 13827 678 13976 679 14123 680 14272 681 14421 682 14570 683 14719 684 14868 685 15016
+% 583 0 obj
+<<
+/Type /Annot
+/Subtype /Link
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [168.638 469.641 195.537 478.552]
+/A << /S /GoTo /D (section*.8) >>
+>>
+% 584 0 obj
+<<
+/Type /Annot
+/Subtype /Link
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [168.638 457.561 192.769 466.361]
+/A << /S /GoTo /D (section*.9) >>
+>>
+% 585 0 obj
<<
/Type /Annot
/Subtype /Link
@@ -2727,7 +2745,7 @@ stream
/Rect [168.638 443.544 284.769 454.392]
/A << /S /GoTo /D (section*.10) >>
>>
-% 582 0 obj
+% 586 0 obj
<<
/Type /Annot
/Subtype /Link
@@ -2735,7 +2753,7 @@ stream
/Rect [168.638 431.464 283.717 442.313]
/A << /S /GoTo /D (section*.11) >>
>>
-% 583 0 obj
+% 587 0 obj
<<
/Type /Annot
/Subtype /Link
@@ -2743,7 +2761,7 @@ stream
/Rect [136.757 421.322 248.228 430.233]
/A << /S /GoTo /D (subsubsection.3.1.2) >>
>>
-% 584 0 obj
+% 588 0 obj
<<
/Type /Annot
/Subtype /Link
@@ -2751,7 +2769,7 @@ stream
/Rect [113.843 407.305 223.654 418.153]
/A << /S /GoTo /D (subsection.3.2) >>
>>
-% 585 0 obj
+% 589 0 obj
<<
/Type /Annot
/Subtype /Link
@@ -2759,7 +2777,7 @@ stream
/Rect [136.757 395.225 273.19 406.074]
/A << /S /GoTo /D (subsubsection.3.2.1) >>
>>
-% 586 0 obj
+% 590 0 obj
<<
/Type /Annot
/Subtype /Link
@@ -2767,7 +2785,7 @@ stream
/Rect [168.638 383.146 212.767 393.496]
/A << /S /GoTo /D (section*.12) >>
>>
-% 587 0 obj
+% 591 0 obj
<<
/Type /Annot
/Subtype /Link
@@ -2775,7 +2793,7 @@ stream
/Rect [168.638 371.066 209.141 381.914]
/A << /S /GoTo /D (section*.13) >>
>>
-% 588 0 obj
+% 592 0 obj
<<
/Type /Annot
/Subtype /Link
@@ -2783,7 +2801,7 @@ stream
/Rect [168.638 358.986 220.239 369.336]
/A << /S /GoTo /D (section*.14) >>
>>
-% 589 0 obj
+% 593 0 obj
<<
/Type /Annot
/Subtype /Link
@@ -2791,7 +2809,7 @@ stream
/Rect [168.638 346.906 206.374 357.49]
/A << /S /GoTo /D (section*.15) >>
>>
-% 590 0 obj
+% 594 0 obj
<<
/Type /Annot
/Subtype /Link
@@ -2799,7 +2817,7 @@ stream
/Rect [168.638 336.764 197.529 345.675]
/A << /S /GoTo /D (section*.16) >>
>>
-% 591 0 obj
+% 595 0 obj
<<
/Type /Annot
/Subtype /Link
@@ -2807,7 +2825,7 @@ stream
/Rect [168.638 322.747 205.765 333.595]
/A << /S /GoTo /D (section*.17) >>
>>
-% 592 0 obj
+% 596 0 obj
<<
/Type /Annot
/Subtype /Link
@@ -2815,7 +2833,7 @@ stream
/Rect [168.638 310.667 262.143 321.516]
/A << /S /GoTo /D (section*.18) >>
>>
-% 593 0 obj
+% 597 0 obj
<<
/Type /Annot
/Subtype /Link
@@ -2823,7 +2841,7 @@ stream
/Rect [168.638 298.588 328.909 309.436]
/A << /S /GoTo /D (section*.19) >>
>>
-% 594 0 obj
+% 598 0 obj
<<
/Type /Annot
/Subtype /Link
@@ -2831,7 +2849,7 @@ stream
/Rect [168.638 288.445 193.932 296.858]
/A << /S /GoTo /D (section*.20) >>
>>
-% 595 0 obj
+% 599 0 obj
<<
/Type /Annot
/Subtype /Link
@@ -2839,7 +2857,7 @@ stream
/Rect [168.638 274.428 194.485 285.276]
/A << /S /GoTo /D (section*.21) >>
>>
-% 596 0 obj
+% 600 0 obj
<<
/Type /Annot
/Subtype /Link
@@ -2847,7 +2865,7 @@ stream
/Rect [168.638 264.286 218.025 273.197]
/A << /S /GoTo /D (section*.22) >>
>>
-% 597 0 obj
+% 601 0 obj
<<
/Type /Annot
/Subtype /Link
@@ -2855,7 +2873,7 @@ stream
/Rect [168.638 250.269 205.765 261.117]
/A << /S /GoTo /D (section*.23) >>
>>
-% 598 0 obj
+% 602 0 obj
<<
/Type /Annot
/Subtype /Link
@@ -2863,7 +2881,7 @@ stream
/Rect [168.638 238.189 207.979 249.037]
/A << /S /GoTo /D (section*.24) >>
>>
-% 599 0 obj
+% 603 0 obj
<<
/Type /Annot
/Subtype /Link
@@ -2871,7 +2889,7 @@ stream
/Rect [168.638 228.047 183.941 236.958]
/A << /S /GoTo /D (section*.25) >>
>>
-% 600 0 obj
+% 604 0 obj
<<
/Type /Annot
/Subtype /Link
@@ -2879,7 +2897,7 @@ stream
/Rect [168.638 215.967 186.709 224.613]
/A << /S /GoTo /D (section*.26) >>
>>
-% 601 0 obj
+% 605 0 obj
<<
/Type /Annot
/Subtype /Link
@@ -2887,7 +2905,7 @@ stream
/Rect [168.638 201.95 255.944 212.798]
/A << /S /GoTo /D (section*.27) >>
>>
-% 602 0 obj
+% 606 0 obj
<<
/Type /Annot
/Subtype /Link
@@ -2895,7 +2913,7 @@ stream
/Rect [168.638 191.808 192.769 200.719]
/A << /S /GoTo /D (section*.28) >>
>>
-% 603 0 obj
+% 607 0 obj
<<
/Type /Annot
/Subtype /Link
@@ -2903,7 +2921,7 @@ stream
/Rect [136.757 179.728 248.228 188.639]
/A << /S /GoTo /D (subsubsection.3.2.2) >>
>>
-% 604 0 obj
+% 608 0 obj
<<
/Type /Annot
/Subtype /Link
@@ -2911,7 +2929,7 @@ stream
/Rect [113.843 167.648 265.358 176.448]
/A << /S /GoTo /D (subsection.3.3) >>
>>
-% 605 0 obj
+% 609 0 obj
<<
/Type /Annot
/Subtype /Link
@@ -2919,7 +2937,7 @@ stream
/Rect [136.757 155.568 239.898 164.48]
/A << /S /GoTo /D (subsubsection.3.3.1) >>
>>
-% 606 0 obj
+% 610 0 obj
<<
/Type /Annot
/Subtype /Link
@@ -2927,7 +2945,7 @@ stream
/Rect [168.638 141.552 212.767 151.902]
/A << /S /GoTo /D (section*.29) >>
>>
-% 607 0 obj
+% 611 0 obj
<<
/Type /Annot
/Subtype /Link
@@ -2935,7 +2953,7 @@ stream
/Rect [168.638 131.409 197.529 140.32]
/A << /S /GoTo /D (section*.30) >>
>>
-% 608 0 obj
+% 612 0 obj
<<
/Type /Annot
/Subtype /Link
@@ -2943,29 +2961,29 @@ stream
/Rect [168.638 119.329 186.183 127.742]
/A << /S /GoTo /D (section*.31) >>
>>
-% 613 0 obj
+% 617 0 obj
<<
-/D [611 0 R /XYZ 98.895 753.953 null]
+/D [615 0 R /XYZ 98.895 753.953 null]
>>
-% 614 0 obj
+% 618 0 obj
<<
-/D [611 0 R /XYZ 99.895 724.062 null]
+/D [615 0 R /XYZ 99.895 724.062 null]
>>
-% 610 0 obj
+% 614 0 obj
<<
-/Font << /F16 554 0 R /F27 556 0 R /F8 557 0 R >>
+/Font << /F16 558 0 R /F27 560 0 R /F8 561 0 R >>
/ProcSet [ /PDF /Text ]
>>
-% 664 0 obj
+% 668 0 obj
<<
/Type /Page
-/Contents 665 0 R
-/Resources 663 0 R
+/Contents 669 0 R
+/Resources 667 0 R
/MediaBox [0 0 595.276 841.89]
-/Parent 558 0 R
-/Annots [ 609 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 625 0 R 626 0 R 627 0 R 628 0 R 629 0 R 630 0 R 631 0 R 632 0 R 633 0 R 634 0 R 635 0 R 636 0 R 637 0 R 638 0 R 639 0 R 640 0 R 641 0 R 642 0 R 643 0 R 644 0 R 645 0 R 646 0 R 647 0 R 648 0 R 649 0 R 650 0 R 651 0 R 652 0 R 653 0 R 654 0 R 655 0 R 656 0 R 657 0 R 658 0 R 659 0 R 660 0 R 661 0 R ]
+/Parent 562 0 R
+/Annots [ 613 0 R 620 0 R 621 0 R 622 0 R 623 0 R 624 0 R 625 0 R 626 0 R 627 0 R 628 0 R 629 0 R 630 0 R 631 0 R 632 0 R 633 0 R 634 0 R 635 0 R 636 0 R 637 0 R 638 0 R 639 0 R 640 0 R 641 0 R 642 0 R 643 0 R 644 0 R 645 0 R 646 0 R 647 0 R 648 0 R 649 0 R 650 0 R 651 0 R 652 0 R 653 0 R 654 0 R 655 0 R 656 0 R 657 0 R 658 0 R 659 0 R 660 0 R 661 0 R 662 0 R 663 0 R 664 0 R 665 0 R ]
>>
-% 609 0 obj
+% 613 0 obj
<<
/Type /Annot
/Subtype /Link
@@ -2973,7 +2991,7 @@ stream
/Rect [219.447 703.195 259.342 713.546]
/A << /S /GoTo /D (section*.32) >>
>>
-% 616 0 obj
+% 620 0 obj
<<
/Type /Annot
/Subtype /Link
@@ -2981,7 +2999,7 @@ stream
/Rect [219.447 693.053 243.579 701.964]
/A << /S /GoTo /D (section*.33) >>
>>
-% 617 0 obj
+% 621 0 obj
<<
/Type /Annot
/Subtype /Link
@@ -2989,7 +3007,7 @@ stream
/Rect [164.653 680.973 318.825 689.884]
/A << /S /GoTo /D (subsection.3.4) >>
>>
-% 618 0 obj
+% 622 0 obj
<<
/Type /Annot
/Subtype /Link
@@ -2997,7 +3015,7 @@ stream
/Rect [164.653 666.956 277.397 677.805]
/A << /S /GoTo /D (subsection.3.5) >>
>>
-% 619 0 obj
+% 623 0 obj
<<
/Type /Annot
/Subtype /Link
@@ -3005,7 +3023,7 @@ stream
/Rect [149.709 644.831 285.838 655.679]
/A << /S /GoTo /D (section.4) >>
>>
-% 620 0 obj
+% 624 0 obj
<<
/Type /Annot
/Subtype /Link
@@ -3013,7 +3031,7 @@ stream
/Rect [164.653 632.751 220.931 643.599]
/A << /S /GoTo /D (section*.34) >>
>>
-% 621 0 obj
+% 625 0 obj
<<
/Type /Annot
/Subtype /Link
@@ -3021,7 +3039,7 @@ stream
/Rect [164.653 620.672 209.031 631.52]
/A << /S /GoTo /D (section*.35) >>
>>
-% 622 0 obj
+% 626 0 obj
<<
/Type /Annot
/Subtype /Link
@@ -3029,7 +3047,7 @@ stream
/Rect [164.653 608.592 212.96 619.44]
/A << /S /GoTo /D (section*.36) >>
>>
-% 623 0 obj
+% 627 0 obj
<<
/Type /Annot
/Subtype /Link
@@ -3037,7 +3055,7 @@ stream
/Rect [164.653 596.512 210.719 607.36]
/A << /S /GoTo /D (section*.37) >>
>>
-% 624 0 obj
+% 628 0 obj
<<
/Type /Annot
/Subtype /Link
@@ -3045,7 +3063,7 @@ stream
/Rect [164.653 584.432 222.093 595.281]
/A << /S /GoTo /D (section*.38) >>
>>
-% 625 0 obj
+% 629 0 obj
<<
/Type /Annot
/Subtype /Link
@@ -3053,7 +3071,7 @@ stream
/Rect [164.653 572.353 212.933 583.201]
/A << /S /GoTo /D (section*.39) >>
>>
-% 626 0 obj
+% 630 0 obj
<<
/Type /Annot
/Subtype /Link
@@ -3061,7 +3079,7 @@ stream
/Rect [164.653 560.273 221.318 571.121]
/A << /S /GoTo /D (section*.40) >>
>>
-% 627 0 obj
+% 631 0 obj
<<
/Type /Annot
/Subtype /Link
@@ -3069,7 +3087,7 @@ stream
/Rect [164.653 548.193 212.933 559.042]
/A << /S /GoTo /D (section*.41) >>
>>
-% 628 0 obj
+% 632 0 obj
<<
/Type /Annot
/Subtype /Link
@@ -3077,7 +3095,7 @@ stream
/Rect [164.653 536.114 221.29 546.962]
/A << /S /GoTo /D (section*.42) >>
>>
-% 629 0 obj
+% 633 0 obj
<<
/Type /Annot
/Subtype /Link
@@ -3085,7 +3103,7 @@ stream
/Rect [164.653 524.034 212.933 534.882]
/A << /S /GoTo /D (section*.43) >>
>>
-% 630 0 obj
+% 634 0 obj
<<
/Type /Annot
/Subtype /Link
@@ -3093,7 +3111,7 @@ stream
/Rect [164.653 511.954 210.719 522.802]
/A << /S /GoTo /D (section*.44) >>
>>
-% 631 0 obj
+% 635 0 obj
<<
/Type /Annot
/Subtype /Link
@@ -3101,7 +3119,7 @@ stream
/Rect [164.653 499.875 211.3 510.723]
/A << /S /GoTo /D (section*.45) >>
>>
-% 632 0 obj
+% 636 0 obj
<<
/Type /Annot
/Subtype /Link
@@ -3109,7 +3127,7 @@ stream
/Rect [164.653 487.795 206.927 498.643]
/A << /S /GoTo /D (section*.46) >>
>>
-% 633 0 obj
+% 637 0 obj
<<
/Type /Annot
/Subtype /Link
@@ -3117,7 +3135,7 @@ stream
/Rect [149.709 467.607 290.134 476.518]
/A << /S /GoTo /D (section.5) >>
>>
-% 634 0 obj
+% 638 0 obj
<<
/Type /Annot
/Subtype /Link
@@ -3125,7 +3143,7 @@ stream
/Rect [164.653 453.59 203.496 464.438]
/A << /S /GoTo /D (section*.47) >>
>>
-% 635 0 obj
+% 639 0 obj
<<
/Type /Annot
/Subtype /Link
@@ -3133,7 +3151,7 @@ stream
/Rect [164.653 441.51 201.863 452.358]
/A << /S /GoTo /D (section*.48) >>
>>
-% 636 0 obj
+% 640 0 obj
<<
/Type /Annot
/Subtype /Link
@@ -3141,7 +3159,7 @@ stream
/Rect [164.653 429.43 212.933 440.279]
/A << /S /GoTo /D (section*.49) >>
>>
-% 637 0 obj
+% 641 0 obj
<<
/Type /Annot
/Subtype /Link
@@ -3149,7 +3167,7 @@ stream
/Rect [164.653 417.351 214.648 428.199]
/A << /S /GoTo /D (section*.50) >>
>>
-% 638 0 obj
+% 642 0 obj
<<
/Type /Annot
/Subtype /Link
@@ -3157,7 +3175,7 @@ stream
/Rect [149.709 395.225 302.58 406.074]
/A << /S /GoTo /D (section.6) >>
>>
-% 639 0 obj
+% 643 0 obj
<<
/Type /Annot
/Subtype /Link
@@ -3165,7 +3183,7 @@ stream
/Rect [164.653 383.146 205.71 393.994]
/A << /S /GoTo /D (section*.51) >>
>>
-% 640 0 obj
+% 644 0 obj
<<
/Type /Annot
/Subtype /Link
@@ -3173,7 +3191,7 @@ stream
/Rect [164.653 371.066 207.426 381.914]
/A << /S /GoTo /D (section*.52) >>
>>
-% 641 0 obj
+% 645 0 obj
<<
/Type /Annot
/Subtype /Link
@@ -3181,7 +3199,7 @@ stream
/Rect [164.653 358.986 209.639 369.834]
/A << /S /GoTo /D (section*.53) >>
>>
-% 642 0 obj
+% 646 0 obj
<<
/Type /Annot
/Subtype /Link
@@ -3189,7 +3207,7 @@ stream
/Rect [164.653 346.906 210.138 357.755]
/A << /S /GoTo /D (section*.54) >>
>>
-% 643 0 obj
+% 647 0 obj
<<
/Type /Annot
/Subtype /Link
@@ -3197,7 +3215,7 @@ stream
/Rect [164.653 334.827 210.996 345.675]
/A << /S /GoTo /D (section*.55) >>
>>
-% 644 0 obj
+% 648 0 obj
<<
/Type /Annot
/Subtype /Link
@@ -3205,7 +3223,7 @@ stream
/Rect [164.653 322.747 222.591 333.595]
/A << /S /GoTo /D (section*.56) >>
>>
-% 645 0 obj
+% 649 0 obj
<<
/Type /Annot
/Subtype /Link
@@ -3213,7 +3231,7 @@ stream
/Rect [164.653 310.667 205.212 321.516]
/A << /S /GoTo /D (section*.57) >>
>>
-% 646 0 obj
+% 650 0 obj
<<
/Type /Annot
/Subtype /Link
@@ -3221,7 +3239,7 @@ stream
/Rect [164.653 298.588 206.927 309.436]
/A << /S /GoTo /D (section*.58) >>
>>
-% 647 0 obj
+% 651 0 obj
<<
/Type /Annot
/Subtype /Link
@@ -3229,7 +3247,7 @@ stream
/Rect [164.653 286.508 209.141 297.356]
/A << /S /GoTo /D (section*.59) >>
>>
-% 648 0 obj
+% 652 0 obj
<<
/Type /Annot
/Subtype /Link
@@ -3237,7 +3255,7 @@ stream
/Rect [164.653 274.428 210.497 285.276]
/A << /S /GoTo /D (section*.60) >>
>>
-% 649 0 obj
+% 653 0 obj
<<
/Type /Annot
/Subtype /Link
@@ -3245,7 +3263,7 @@ stream
/Rect [164.653 262.349 204.132 273.197]
/A << /S /GoTo /D (section*.61) >>
>>
-% 650 0 obj
+% 654 0 obj
<<
/Type /Annot
/Subtype /Link
@@ -3253,7 +3271,7 @@ stream
/Rect [164.653 250.269 205.156 261.117]
/A << /S /GoTo /D (section*.62) >>
>>
-% 651 0 obj
+% 655 0 obj
<<
/Type /Annot
/Subtype /Link
@@ -3261,7 +3279,7 @@ stream
/Rect [164.653 238.189 206.872 249.037]
/A << /S /GoTo /D (section*.63) >>
>>
-% 652 0 obj
+% 656 0 obj
<<
/Type /Annot
/Subtype /Link
@@ -3269,7 +3287,7 @@ stream
/Rect [164.653 226.109 209.086 236.958]
/A << /S /GoTo /D (section*.64) >>
>>
-% 653 0 obj
+% 657 0 obj
<<
/Type /Annot
/Subtype /Link
@@ -3277,7 +3295,7 @@ stream
/Rect [164.653 214.03 210.442 224.878]
/A << /S /GoTo /D (section*.65) >>
>>
-% 654 0 obj
+% 658 0 obj
<<
/Type /Annot
/Subtype /Link
@@ -3285,7 +3303,7 @@ stream
/Rect [164.653 201.95 202.942 212.798]
/A << /S /GoTo /D (section*.66) >>
>>
-% 655 0 obj
+% 659 0 obj
<<
/Type /Annot
/Subtype /Link
@@ -3293,7 +3311,7 @@ stream
/Rect [164.653 189.87 231.978 200.719]
/A << /S /GoTo /D (section*.67) >>
>>
-% 656 0 obj
+% 660 0 obj
<<
/Type /Annot
/Subtype /Link
@@ -3301,7 +3319,7 @@ stream
/Rect [164.653 177.791 231.978 188.639]
/A << /S /GoTo /D (section*.68) >>
>>
-% 657 0 obj
+% 661 0 obj
<<
/Type /Annot
/Subtype /Link
@@ -3309,7 +3327,7 @@ stream
/Rect [164.653 165.711 226.233 176.559]
/A << /S /GoTo /D (section*.69) >>
>>
-% 658 0 obj
+% 662 0 obj
<<
/Type /Annot
/Subtype /Link
@@ -3317,7 +3335,7 @@ stream
/Rect [164.653 153.631 243.059 164.48]
/A << /S /GoTo /D (section*.70) >>
>>
-% 659 0 obj
+% 663 0 obj
<<
/Type /Annot
/Subtype /Link
@@ -3325,7 +3343,7 @@ stream
/Rect [164.653 141.552 219.038 152.4]
/A << /S /GoTo /D (section*.71) >>
>>
-% 660 0 obj
+% 664 0 obj
<<
/Type /Annot
/Subtype /Link
@@ -3333,7 +3351,7 @@ stream
/Rect [164.653 129.472 235.863 140.32]
/A << /S /GoTo /D (section*.72) >>
>>
-% 661 0 obj
+% 665 0 obj
<<
/Type /Annot
/Subtype /Link
@@ -3341,25 +3359,25 @@ stream
/Rect [164.653 117.392 243.64 128.24]
/A << /S /GoTo /D (section*.73) >>
>>
-% 666 0 obj
+% 670 0 obj
<<
-/D [664 0 R /XYZ 149.705 753.953 null]
+/D [668 0 R /XYZ 149.705 753.953 null]
>>
-% 663 0 obj
+% 667 0 obj
<<
-/Font << /F8 557 0 R /F27 556 0 R >>
+/Font << /F8 561 0 R /F27 560 0 R >>
/ProcSet [ /PDF /Text ]
>>
-% 709 0 obj
+% 714 0 obj
<<
/Type /Page
-/Contents 710 0 R
-/Resources 708 0 R
+/Contents 715 0 R
+/Resources 713 0 R
/MediaBox [0 0 595.276 841.89]
-/Parent 558 0 R
-/Annots [ 662 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 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 ]
+/Parent 562 0 R
+/Annots [ 666 0 R 671 0 R 672 0 R 673 0 R 674 0 R 675 0 R 676 0 R 677 0 R 678 0 R 679 0 R 680 0 R 681 0 R 682 0 R 683 0 R 684 0 R 685 0 R 686 0 R 687 0 R 688 0 R 689 0 R 690 0 R 691 0 R 692 0 R 693 0 R 694 0 R 695 0 R 696 0 R 697 0 R 698 0 R 699 0 R 700 0 R 701 0 R 702 0 R 703 0 R 704 0 R 705 0 R 706 0 R 707 0 R 708 0 R 709 0 R 710 0 R 711 0 R 712 0 R ]
>>
-% 662 0 obj
+% 666 0 obj
<<
/Type /Annot
/Subtype /Link
@@ -3367,7 +3385,7 @@ stream
/Rect [113.843 703.195 182.591 714.044]
/A << /S /GoTo /D (section*.74) >>
>>
-% 667 0 obj
+% 671 0 obj
<<
/Type /Annot
/Subtype /Link
@@ -3375,7 +3393,7 @@ stream
/Rect [113.843 691.24 176.558 702.088]
/A << /S /GoTo /D (section*.75) >>
>>
-% 668 0 obj
+% 672 0 obj
<<
/Type /Annot
/Subtype /Link
@@ -3383,7 +3401,7 @@ stream
/Rect [113.843 679.285 158 690.133]
/A << /S /GoTo /D (section*.76) >>
>>
-% 669 0 obj
+% 673 0 obj
<<
/Type /Annot
/Subtype /Link
@@ -3391,7 +3409,7 @@ stream
/Rect [113.843 667.33 183.443 678.178]
/A << /S /GoTo /D (section*.77) >>
>>
-% 670 0 obj
+% 674 0 obj
<<
/Type /Annot
/Subtype /Link
@@ -3399,7 +3417,7 @@ stream
/Rect [98.899 647.349 264.868 656.26]
/A << /S /GoTo /D (section.7) >>
>>
-% 671 0 obj
+% 675 0 obj
<<
/Type /Annot
/Subtype /Link
@@ -3407,7 +3425,7 @@ stream
/Rect [113.843 633.457 149.366 644.305]
/A << /S /GoTo /D (section*.78) >>
>>
-% 672 0 obj
+% 676 0 obj
<<
/Type /Annot
/Subtype /Link
@@ -3415,7 +3433,7 @@ stream
/Rect [113.843 621.502 150.749 632.35]
/A << /S /GoTo /D (section*.79) >>
>>
-% 673 0 obj
+% 677 0 obj
<<
/Type /Annot
/Subtype /Link
@@ -3423,7 +3441,7 @@ stream
/Rect [113.843 609.547 150.749 620.395]
/A << /S /GoTo /D (section*.80) >>
>>
-% 674 0 obj
+% 678 0 obj
<<
/Type /Annot
/Subtype /Link
@@ -3431,7 +3449,7 @@ stream
/Rect [113.843 597.591 193.91 608.44]
/A << /S /GoTo /D (section*.81) >>
>>
-% 675 0 obj
+% 679 0 obj
<<
/Type /Annot
/Subtype /Link
@@ -3439,7 +3457,7 @@ stream
/Rect [113.843 585.636 170.968 596.484]
/A << /S /GoTo /D (section*.82) >>
>>
-% 676 0 obj
+% 680 0 obj
<<
/Type /Annot
/Subtype /Link
@@ -3447,7 +3465,7 @@ stream
/Rect [113.843 573.681 160.989 584.529]
/A << /S /GoTo /D (section*.83) >>
>>
-% 677 0 obj
+% 681 0 obj
<<
/Type /Annot
/Subtype /Link
@@ -3455,7 +3473,7 @@ stream
/Rect [113.843 561.726 163.839 572.574]
/A << /S /GoTo /D (section*.84) >>
>>
-% 678 0 obj
+% 682 0 obj
<<
/Type /Annot
/Subtype /Link
@@ -3463,7 +3481,7 @@ stream
/Rect [113.843 549.771 157.972 560.619]
/A << /S /GoTo /D (section*.85) >>
>>
-% 679 0 obj
+% 683 0 obj
<<
/Type /Annot
/Subtype /Link
@@ -3471,7 +3489,7 @@ stream
/Rect [113.843 537.816 157.446 548.664]
/A << /S /GoTo /D (section*.86) >>
>>
-% 680 0 obj
+% 684 0 obj
<<
/Type /Annot
/Subtype /Link
@@ -3479,7 +3497,7 @@ stream
/Rect [113.843 525.86 152.188 536.709]
/A << /S /GoTo /D (section*.87) >>
>>
-% 681 0 obj
+% 685 0 obj
<<
/Type /Annot
/Subtype /Link
@@ -3487,26 +3505,10 @@ stream
/Rect [113.843 513.905 152.963 524.753]
/A << /S /GoTo /D (section*.88) >>
>>
-% 682 0 obj
-<<
-/Type /Annot
-/Subtype /Link
-/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [113.843 501.95 151.026 512.798]
-/A << /S /GoTo /D (section*.89) >>
->>
-% 683 0 obj
-<<
-/Type /Annot
-/Subtype /Link
-/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [113.843 489.995 152.963 500.843]
-/A << /S /GoTo /D (section*.90) >>
->>
endstream
endobj
-715 0 obj
+720 0 obj
<<
/Length 79
>>
@@ -3521,7 +3523,7 @@ ET
endstream
endobj
-729 0 obj
+734 0 obj
<<
/Length 8518
>>
@@ -3577,7 +3579,7 @@ ET
endstream
endobj
-749 0 obj
+754 0 obj
<<
/Length 5579
>>
@@ -3624,20 +3626,20 @@ ET
endstream
endobj
-745 0 obj
+750 0 obj
<<
/Type /XObject
/Subtype /Form
/FormType 1
/PTEX.FileName (./figures/psblas.pdf)
/PTEX.PageNumber 1
-/PTEX.InfoDict 752 0 R
+/PTEX.InfoDict 757 0 R
/BBox [0 0 197 215]
/Resources <<
/ProcSet [ /PDF /Text ]
/ExtGState <<
-/R7 753 0 R
->>/Font << /R8 754 0 R>>
+/R7 758 0 R
+>>/Font << /R8 759 0 R>>
>>
/Length 898
/Filter /FlateDecode
@@ -3658,7 +3660,7 @@ x
Ͻ'Ǜa>=|9hBu湣$Lq5k^;>NiZ\V+9D8NLG~0+'mw>o;{=EaѲ8S4%ǥ_N#OΏ
endstream
endobj
-756 0 obj
+761 0 obj
<<
/Filter /FlateDecode
/Subtype /Type1C
@@ -3678,7 +3680,7 @@ p
IZt4w!}^gh9@^
҅s2=3B2H>yn7C#h -whGtBVպ`u1F3vo34\z",P&+ڻoB03xs!F/m'~n?vaD+5t0
+ԷsRztJxFzQ`/d2j@7G.?wyc$OI(SMEߌ| ^`2!-"VIN"̂B-e/uV9:6:.ǰMɪH
endstream
endobj
-762 0 obj
+767 0 obj
<<
/Length 8854
>>
@@ -3727,7 +3729,7 @@ ET
endstream
endobj
-778 0 obj
+783 0 obj
<<
/Length 5346
>>
@@ -3804,20 +3806,20 @@ ET
endstream
endobj
-775 0 obj
+780 0 obj
<<
/Type /XObject
/Subtype /Form
/FormType 1
/PTEX.FileName (./figures/points.pdf)
/PTEX.PageNumber 1
-/PTEX.InfoDict 781 0 R
+/PTEX.InfoDict 786 0 R
/BBox [0 0 274 308]
/Resources <<
/ProcSet [ /PDF /Text ]
/ExtGState <<
-/R7 782 0 R
->>/Font << /R8 783 0 R>>
+/R7 787 0 R
+>>/Font << /R8 788 0 R>>
>>
/Length 1397
/Filter /FlateDecode
@@ -3827,7 +3829,7 @@ x
3 B=bAH}ϩc?ׄe]_?dwGad"沾}e4ߠ,s,_x/w~[Z.1uoO*x/22T<ᜇd&o/VC1V^dR9^Ӿ͚zzõ7!SjJRWZSNm
ide3fyRO|J_F~]~z2}VНmsQ<I}y5N
p%UW@E$|pxE`&U %AIU0G]&MJxT.)~C8}~WۢvKK,8͗&`[C*ONs
m9؆u!`{P9mKI7oB*O샹~̳'^IavRy!zw'`x"0.Ѥb'i|sP:-%X/[^#ahdPY/)Zq&-VֽONtnGY& ˒וB̜Mnng%#ǂ"d;)(\X0}Zp#`ӆS%Hvţf``-+ЎQ49Ç,xO/,f,zinv$-܌`?禩|,7c;@!os]?ݲta0yҥZdyORܐ<%9䃀[}拇 6m8uIPhf>m))YꓠҐ<%9䃀[}kWOr=A} 0' 9S,ir+\_uݿѐE?{'ȋB#4_$&`[qq&/>M5^_'`[BO% /]07o[qq &/M
5^_'n4.16sܥ%]!CgVe@ٖ$)5-5}?Lg+|>{>hOjX5~,>0x},1c X5Xb$3 څt=>tp8Շ$i>-%TXJR#gL-J/0jȶw.ickZ,Ԥ^kU
Wjǂ.UEzgP,"e̋:t!*%~
*Q@emPM1:ޒX(4N]J'
endstream
endobj
-790 0 obj
+795 0 obj
<<
/Length 5462
>>
@@ -3917,7 +3919,7 @@ ET
endstream
endobj
-795 0 obj
+800 0 obj
<<
/Length 8659
>>
@@ -3965,7 +3967,7 @@ ET
endstream
endobj
-809 0 obj
+814 0 obj
<<
/Length 7694
>>
@@ -4059,252 +4061,276 @@ ET
endstream
endobj
-712 0 obj
+717 0 obj
<<
/Type /ObjStm
/N 100
/First 910
-/Length 12684
+/Length 12961
>>
stream
-684 0 685 147 686 296 687 445 688 590 689 739 690 888 691 1037 692 1186 693 1331
-694 1480 695 1627 696 1777 697 1927 698 2077 699 2227 700 2374 701 2524 702 2673 703 2822
-704 2972 705 3122 706 3272 707 3418 711 3566 708 3622 714 3701 716 3815 713 3872 728 3938
-717 4144 718 4293 719 4444 720 4596 721 4750 722 4901 723 5050 724 5199 725 5347 726 5495
-7 5643 727 5697 748 5789 752 5939 753 6180 754 6222 755 6608 742 6908 743 7053 744 7201
-11 7348 751 7404 747 7459 761 7579 746 7729 758 7875 759 8024 763 8172 15 8228 769 8283
-771 8340 760 8397 777 8592 781 8734 782 8848 783 8890 773 8959 774 9107 779 9255 780 9312
-19 9369 776 9425 789 9584 786 9726 787 9872 791 10019 788 10075 794 10180 796 10294 23 10351
-798 10407 799 10464 800 10521 801 10577 802 10634 803 10690 804 10745 805 10802 793 10859 808 10989
-792 11123 810 11271 811 11327 812 11383 813 11439 814 11494 815 11550 816 11606 817 11662 818 11718
-% 684 0 obj
-<<
-/Type /Annot
-/Subtype /Link
-/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [113.843 478.04 153.24 488.888]
-/A << /S /GoTo /D (section*.91) >>
->>
-% 685 0 obj
-<<
-/Type /Annot
-/Subtype /Link
-/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [113.843 466.085 149.421 476.933]
-/A << /S /GoTo /D (section*.92) >>
->>
+686 0 687 148 688 297 689 444 690 593 691 742 692 891 693 1037 694 1186 695 1335
+696 1484 697 1633 698 1779 699 1926 700 2076 701 2225 702 2375 703 2525 704 2674 705 2821
+706 2971 707 3119 708 3269 709 3418 710 3567 711 3716 712 3862 716 4011 713 4067 719 4146
+721 4260 718 4317 733 4383 722 4589 723 4738 724 4889 725 5041 726 5195 727 5346 728 5495
+729 5644 730 5792 731 5940 7 6088 732 6142 753 6234 757 6384 758 6625 759 6667 760 7053
+747 7353 748 7498 749 7646 11 7793 756 7849 752 7904 766 8024 751 8174 763 8320 764 8469
+768 8617 15 8673 774 8728 776 8785 765 8842 782 9037 786 9179 787 9293 788 9335 778 9404
+779 9552 784 9700 785 9757 19 9814 781 9870 794 10029 791 10171 792 10317 796 10464 793 10520
+799 10625 801 10739 23 10796 803 10852 804 10909 805 10966 806 11022 807 11079 808 11135 809 11190
+810 11247 798 11304 813 11434 797 11568 815 11716 816 11772 817 11828 818 11884 819 11939 820 11995
% 686 0 obj
<<
/Type /Annot
/Subtype /Link
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [113.843 454.129 148.009 464.978]
-/A << /S /GoTo /D (section*.93) >>
+/Rect [113.843 501.95 151.026 512.798]
+/A << /S /GoTo /D (section*.89) >>
>>
% 687 0 obj
<<
/Type /Annot
/Subtype /Link
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [98.899 432.212 190.188 443.06]
-/A << /S /GoTo /D (section.8) >>
+/Rect [113.843 489.995 152.963 500.843]
+/A << /S /GoTo /D (section*.90) >>
>>
% 688 0 obj
<<
/Type /Annot
/Subtype /Link
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [113.843 420.256 167.188 431.105]
-/A << /S /GoTo /D (section*.94) >>
+/Rect [113.843 478.04 153.24 488.888]
+/A << /S /GoTo /D (section*.91) >>
>>
% 689 0 obj
<<
/Type /Annot
/Subtype /Link
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [113.843 408.301 155.537 419.149]
-/A << /S /GoTo /D (section*.95) >>
+/Rect [113.843 466.085 157.142 476.933]
+/A << /S /GoTo /D (section*.92) >>
>>
% 690 0 obj
<<
/Type /Annot
/Subtype /Link
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [113.843 396.346 202.129 407.194]
-/A << /S /GoTo /D (section*.96) >>
+/Rect [113.843 454.129 149.421 464.978]
+/A << /S /GoTo /D (section*.93) >>
>>
% 691 0 obj
<<
/Type /Annot
/Subtype /Link
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [113.843 384.391 189.039 395.239]
-/A << /S /GoTo /D (section*.97) >>
+/Rect [113.843 442.174 148.009 453.022]
+/A << /S /GoTo /D (section*.94) >>
>>
% 692 0 obj
<<
/Type /Annot
/Subtype /Link
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [98.899 364.41 156.061 373.321]
-/A << /S /GoTo /D (section.9) >>
+/Rect [98.899 420.256 190.188 431.105]
+/A << /S /GoTo /D (section.8) >>
>>
% 693 0 obj
<<
/Type /Annot
/Subtype /Link
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [113.843 352.455 149.061 361.366]
-/A << /S /GoTo /D (section*.98) >>
+/Rect [113.843 408.301 167.188 419.149]
+/A << /S /GoTo /D (section*.95) >>
>>
% 694 0 obj
<<
/Type /Annot
/Subtype /Link
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [113.843 340.5 152.382 349.411]
-/A << /S /GoTo /D (section*.99) >>
+/Rect [113.843 396.346 155.537 407.194]
+/A << /S /GoTo /D (section*.96) >>
>>
% 695 0 obj
<<
/Type /Annot
/Subtype /Link
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [113.843 328.545 175.617 337.456]
-/A << /S /GoTo /D (section*.100) >>
+/Rect [113.843 384.391 202.129 395.239]
+/A << /S /GoTo /D (section*.97) >>
>>
% 696 0 obj
<<
/Type /Annot
/Subtype /Link
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [113.843 314.652 181.207 325.501]
-/A << /S /GoTo /D (section*.101) >>
+/Rect [113.843 372.436 189.039 383.284]
+/A << /S /GoTo /D (section*.98) >>
>>
% 697 0 obj
<<
/Type /Annot
/Subtype /Link
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [113.843 304.634 178.938 313.281]
-/A << /S /GoTo /D (section*.102) >>
+/Rect [98.899 352.455 156.061 361.366]
+/A << /S /GoTo /D (section.9) >>
>>
% 698 0 obj
<<
/Type /Annot
/Subtype /Link
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [113.843 290.742 184.528 301.325]
-/A << /S /GoTo /D (section*.103) >>
+/Rect [113.843 340.5 149.061 349.411]
+/A << /S /GoTo /D (section*.99) >>
>>
% 699 0 obj
<<
/Type /Annot
/Subtype /Link
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [98.899 270.761 234.475 279.672]
-/A << /S /GoTo /D (section.10) >>
+/Rect [113.843 328.545 152.382 337.456]
+/A << /S /GoTo /D (section*.100) >>
>>
% 700 0 obj
<<
/Type /Annot
/Subtype /Link
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [113.843 256.869 157.374 268.271]
-/A << /S /GoTo /D (section*.104) >>
+/Rect [113.843 316.59 175.617 325.501]
+/A << /S /GoTo /D (section*.101) >>
>>
% 701 0 obj
<<
/Type /Annot
/Subtype /Link
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [113.843 244.914 164.57 256.316]
-/A << /S /GoTo /D (section*.105) >>
+/Rect [113.843 302.697 181.207 313.545]
+/A << /S /GoTo /D (section*.102) >>
>>
% 702 0 obj
<<
/Type /Annot
/Subtype /Link
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [113.843 232.959 166.507 244.36]
-/A << /S /GoTo /D (section*.106) >>
+/Rect [113.843 292.679 178.938 301.325]
+/A << /S /GoTo /D (section*.103) >>
>>
% 703 0 obj
<<
/Type /Annot
/Subtype /Link
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [113.843 221.004 164.653 232.405]
-/A << /S /GoTo /D (section*.107) >>
+/Rect [113.843 278.787 184.528 289.37]
+/A << /S /GoTo /D (section*.104) >>
>>
% 704 0 obj
<<
/Type /Annot
/Subtype /Link
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [113.843 210.986 137.975 219.897]
-/A << /S /GoTo /D (section*.108) >>
+/Rect [98.899 258.806 234.475 267.717]
+/A << /S /GoTo /D (section.10) >>
>>
% 705 0 obj
<<
/Type /Annot
/Subtype /Link
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [113.843 197.093 158.232 208.495]
-/A << /S /GoTo /D (section*.109) >>
+/Rect [113.843 244.914 157.374 256.316]
+/A << /S /GoTo /D (section*.105) >>
>>
% 706 0 obj
<<
/Type /Annot
/Subtype /Link
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [98.899 177.113 206.49 186.024]
-/A << /S /GoTo /D (section.11) >>
+/Rect [113.843 232.959 164.57 244.36]
+/A << /S /GoTo /D (section*.106) >>
>>
% 707 0 obj
<<
/Type /Annot
/Subtype /Link
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [113.843 163.22 161.57 174.068]
+/Rect [113.843 221.004 166.507 232.405]
+/A << /S /GoTo /D (section*.107) >>
+>>
+% 708 0 obj
+<<
+/Type /Annot
+/Subtype /Link
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [113.843 209.048 164.653 220.45]
+/A << /S /GoTo /D (section*.108) >>
+>>
+% 709 0 obj
+<<
+/Type /Annot
+/Subtype /Link
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [113.843 199.03 137.975 207.941]
+/A << /S /GoTo /D (section*.109) >>
+>>
+% 710 0 obj
+<<
+/Type /Annot
+/Subtype /Link
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [113.843 185.138 158.232 196.54]
/A << /S /GoTo /D (section*.110) >>
>>
% 711 0 obj
<<
-/D [709 0 R /XYZ 98.895 753.953 null]
+/Type /Annot
+/Subtype /Link
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [98.899 165.157 206.49 174.068]
+/A << /S /GoTo /D (section.11) >>
+>>
+% 712 0 obj
+<<
+/Type /Annot
+/Subtype /Link
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [113.843 151.265 161.57 162.113]
+/A << /S /GoTo /D (section*.111) >>
>>
-% 708 0 obj
+% 716 0 obj
<<
-/Font << /F8 557 0 R /F27 556 0 R >>
+/D [714 0 R /XYZ 98.895 753.953 null]
+>>
+% 713 0 obj
+<<
+/Font << /F8 561 0 R /F27 560 0 R >>
/ProcSet [ /PDF /Text ]
>>
-% 714 0 obj
+% 719 0 obj
<<
/Type /Page
-/Contents 715 0 R
-/Resources 713 0 R
+/Contents 720 0 R
+/Resources 718 0 R
/MediaBox [0 0 595.276 841.89]
-/Parent 558 0 R
+/Parent 562 0 R
>>
-% 716 0 obj
+% 721 0 obj
<<
-/D [714 0 R /XYZ 149.705 753.953 null]
+/D [719 0 R /XYZ 149.705 753.953 null]
>>
-% 713 0 obj
+% 718 0 obj
<<
-/Font << /F8 557 0 R >>
+/Font << /F8 561 0 R >>
/ProcSet [ /PDF /Text ]
>>
-% 728 0 obj
+% 733 0 obj
<<
/Type /Page
-/Contents 729 0 R
-/Resources 727 0 R
+/Contents 734 0 R
+/Resources 732 0 R
/MediaBox [0 0 595.276 841.89]
-/Parent 731 0 R
-/Annots [ 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 ]
+/Parent 736 0 R
+/Annots [ 722 0 R 723 0 R 724 0 R 725 0 R 726 0 R 727 0 R 728 0 R 729 0 R 730 0 R 731 0 R ]
>>
-% 717 0 obj
+% 722 0 obj
<<
/Type /Annot
/Subtype /Link
@@ -4312,7 +4338,7 @@ stream
/Rect [408.982 586.91 420.937 595.323]
/A << /S /GoTo /D (cite.metcalf) >>
>>
-% 718 0 obj
+% 723 0 obj
<<
/Type /Annot
/Subtype /Link
@@ -4320,7 +4346,7 @@ stream
/Rect [277.684 514.913 289.639 523.326]
/A << /S /GoTo /D (cite.Sparse03) >>
>>
-% 719 0 obj
+% 724 0 obj
<<
/Type /Annot
/Subtype /Link
@@ -4328,7 +4354,7 @@ stream
/Rect [265.763 502.958 272.737 511.371]
/A << /S /GoTo /D (cite.DesPat:11) >>
>>
-% 720 0 obj
+% 725 0 obj
<<
/Type /Annot
/Subtype /Link
@@ -4336,7 +4362,7 @@ stream
/Rect [276.283 502.958 288.238 511.371]
/A << /S /GoTo /D (cite.RouXiaXu:11) >>
>>
-% 721 0 obj
+% 726 0 obj
<<
/Type /Annot
/Subtype /Link
@@ -4344,7 +4370,7 @@ stream
/Rect [210.166 442.916 222.121 451.329]
/A << /S /GoTo /D (cite.machiels) >>
>>
-% 722 0 obj
+% 727 0 obj
<<
/Type /Annot
/Subtype /Link
@@ -4352,7 +4378,7 @@ stream
/Rect [241.566 370.919 248.54 379.332]
/A << /S /GoTo /D (cite.sblas97) >>
>>
-% 723 0 obj
+% 728 0 obj
<<
/Type /Annot
/Subtype /Link
@@ -4360,7 +4386,7 @@ stream
/Rect [252.056 370.919 259.03 379.332]
/A << /S /GoTo /D (cite.sblas02) >>
>>
-% 724 0 obj
+% 729 0 obj
<<
/Type /Annot
/Subtype /Link
@@ -4368,7 +4394,7 @@ stream
/Rect [227.473 358.964 239.428 367.377]
/A << /S /GoTo /D (cite.BLAS1) >>
>>
-% 725 0 obj
+% 730 0 obj
<<
/Type /Annot
/Subtype /Link
@@ -4376,7 +4402,7 @@ stream
/Rect [243.524 358.964 250.498 367.377]
/A << /S /GoTo /D (cite.BLAS2) >>
>>
-% 726 0 obj
+% 731 0 obj
<<
/Type /Annot
/Subtype /Link
@@ -4386,23 +4412,23 @@ stream
>>
% 7 0 obj
<<
-/D [728 0 R /XYZ 99.895 716.092 null]
+/D [733 0 R /XYZ 99.895 716.092 null]
>>
-% 727 0 obj
+% 732 0 obj
<<
-/Font << /F16 554 0 R /F8 557 0 R /F17 730 0 R >>
+/Font << /F16 558 0 R /F8 561 0 R /F17 735 0 R >>
/ProcSet [ /PDF /Text ]
>>
-% 748 0 obj
+% 753 0 obj
<<
/Type /Page
-/Contents 749 0 R
-/Resources 747 0 R
+/Contents 754 0 R
+/Resources 752 0 R
/MediaBox [0 0 595.276 841.89]
-/Parent 731 0 R
-/Annots [ 742 0 R 743 0 R 744 0 R ]
+/Parent 736 0 R
+/Annots [ 747 0 R 748 0 R 749 0 R ]
>>
-% 752 0 obj
+% 757 0 obj
<<
/Producer (GPL Ghostscript 9.04)
/CreationDate (D:20111215145523+01'00')
@@ -4411,15 +4437,15 @@ stream
/Creator (fig2dev Version 3.2 Patchlevel 5d)
/Author (sfilippo@donald \(Salvatore Filippone\))
>>
-% 753 0 obj
+% 758 0 obj
<<
/Type /ExtGState
/OPM 1
>>
-% 754 0 obj
+% 759 0 obj
<<
/BaseFont /JEJNJE+Times-Roman
-/FontDescriptor 755 0 R
+/FontDescriptor 760 0 R
/Type /Font
/FirstChar 32
/LastChar 116
@@ -4427,7 +4453,7 @@ stream
/Encoding /WinAnsiEncoding
/Subtype /Type1
>>
-% 755 0 obj
+% 760 0 obj
<<
/Type /FontDescriptor
/FontName /JEJNJE+Times-Roman
@@ -4441,9 +4467,9 @@ 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)
-/FontFile3 756 0 R
+/FontFile3 761 0 R
>>
-% 742 0 obj
+% 747 0 obj
<<
/Type /Annot
/Subtype /Link
@@ -4451,7 +4477,7 @@ stream
/Rect [310.543 541.042 317.517 551.89]
/A << /S /GoTo /D (figure.1) >>
>>
-% 743 0 obj
+% 748 0 obj
<<
/Type /Annot
/Subtype /Link
@@ -4459,7 +4485,7 @@ stream
/Rect [446.018 471.248 452.992 479.661]
/A << /S /GoTo /D (cite.BLACS) >>
>>
-% 744 0 obj
+% 749 0 obj
<<
/Type /Annot
/Subtype /Link
@@ -4469,28 +4495,28 @@ stream
>>
% 11 0 obj
<<
-/D [748 0 R /XYZ 150.705 677.433 null]
+/D [753 0 R /XYZ 150.705 677.433 null]
>>
-% 751 0 obj
+% 756 0 obj
<<
-/D [748 0 R /XYZ 258.703 263.3 null]
+/D [753 0 R /XYZ 258.703 263.3 null]
>>
-% 747 0 obj
+% 752 0 obj
<<
-/Font << /F8 557 0 R /F16 554 0 R /F11 750 0 R >>
-/XObject << /Im1 745 0 R >>
+/Font << /F8 561 0 R /F16 558 0 R /F11 755 0 R >>
+/XObject << /Im1 750 0 R >>
/ProcSet [ /PDF /Text ]
>>
-% 761 0 obj
+% 766 0 obj
<<
/Type /Page
-/Contents 762 0 R
-/Resources 760 0 R
+/Contents 767 0 R
+/Resources 765 0 R
/MediaBox [0 0 595.276 841.89]
-/Parent 731 0 R
-/Annots [ 746 0 R 758 0 R 759 0 R ]
+/Parent 736 0 R
+/Annots [ 751 0 R 763 0 R 764 0 R ]
>>
-% 746 0 obj
+% 751 0 obj
<<
/Type /Annot
/Subtype /Link
@@ -4498,7 +4524,7 @@ stream
/Rect [219.5 609.491 231.455 617.904]
/A << /S /GoTo /D (cite.METIS) >>
>>
-% 758 0 obj
+% 763 0 obj
<<
/Type /Annot
/Subtype /Link
@@ -4506,7 +4532,7 @@ stream
/Rect [210.854 546.467 217.316 558.506]
/A << /S /GoTo /D (Hfootnote.1) >>
>>
-% 759 0 obj
+% 764 0 obj
<<
/Type /Annot
/Subtype /Link
@@ -4514,54 +4540,54 @@ stream
/Rect [155.908 188.124 162.37 200.163]
/A << /S /GoTo /D (Hfootnote.2) >>
>>
-% 763 0 obj
+% 768 0 obj
<<
-/D [761 0 R /XYZ 98.895 753.953 null]
+/D [766 0 R /XYZ 98.895 753.953 null]
>>
% 15 0 obj
<<
-/D [761 0 R /XYZ 99.895 515.919 null]
+/D [766 0 R /XYZ 99.895 515.919 null]
>>
-% 769 0 obj
+% 774 0 obj
<<
-/D [761 0 R /XYZ 115.138 167.688 null]
+/D [766 0 R /XYZ 115.138 167.688 null]
>>
-% 771 0 obj
+% 776 0 obj
<<
-/D [761 0 R /XYZ 115.138 158.184 null]
+/D [766 0 R /XYZ 115.138 158.184 null]
>>
-% 760 0 obj
+% 765 0 obj
<<
-/Font << /F8 557 0 R /F17 730 0 R /F30 764 0 R /F7 765 0 R /F16 554 0 R /F11 750 0 R /F10 766 0 R /F14 767 0 R /F27 556 0 R /F32 768 0 R /F31 770 0 R >>
+/Font << /F8 561 0 R /F17 735 0 R /F30 769 0 R /F7 770 0 R /F16 558 0 R /F11 755 0 R /F10 771 0 R /F14 772 0 R /F27 560 0 R /F32 773 0 R /F31 775 0 R >>
/ProcSet [ /PDF /Text ]
>>
-% 777 0 obj
+% 782 0 obj
<<
/Type /Page
-/Contents 778 0 R
-/Resources 776 0 R
+/Contents 783 0 R
+/Resources 781 0 R
/MediaBox [0 0 595.276 841.89]
-/Parent 731 0 R
-/Annots [ 773 0 R 774 0 R ]
+/Parent 736 0 R
+/Annots [ 778 0 R 779 0 R ]
>>
-% 781 0 obj
+% 786 0 obj
<<
/Producer (ESP Ghostscript 815.03)
/CreationDate (D:20070123225315)
/ModDate (D:20070123225315)
>>
-% 782 0 obj
+% 787 0 obj
<<
/Type /ExtGState
/OPM 1
>>
-% 783 0 obj
+% 788 0 obj
<<
/BaseFont /Times-Roman
/Type /Font
/Subtype /Type1
>>
-% 773 0 obj
+% 778 0 obj
<<
/Type /Annot
/Subtype /Link
@@ -4569,7 +4595,7 @@ stream
/Rect [294.665 637.885 301.639 646.297]
/A << /S /GoTo /D (cite.2007c) >>
>>
-% 774 0 obj
+% 779 0 obj
<<
/Type /Annot
/Subtype /Link
@@ -4577,34 +4603,34 @@ stream
/Rect [305.735 637.885 312.709 646.297]
/A << /S /GoTo /D (cite.2007d) >>
>>
-% 779 0 obj
+% 784 0 obj
<<
-/D [777 0 R /XYZ 149.705 753.953 null]
+/D [782 0 R /XYZ 149.705 753.953 null]
>>
-% 780 0 obj
+% 785 0 obj
<<
-/D [777 0 R /XYZ 303.562 347.015 null]
+/D [782 0 R /XYZ 303.562 347.015 null]
>>
% 19 0 obj
<<
-/D [777 0 R /XYZ 150.705 272.271 null]
+/D [782 0 R /XYZ 150.705 272.271 null]
>>
-% 776 0 obj
+% 781 0 obj
<<
-/Font << /F27 556 0 R /F8 557 0 R /F14 767 0 R /F11 750 0 R /F10 766 0 R /F16 554 0 R >>
-/XObject << /Im2 775 0 R >>
+/Font << /F27 560 0 R /F8 561 0 R /F14 772 0 R /F11 755 0 R /F10 771 0 R /F16 558 0 R >>
+/XObject << /Im2 780 0 R >>
/ProcSet [ /PDF /Text ]
>>
-% 789 0 obj
+% 794 0 obj
<<
/Type /Page
-/Contents 790 0 R
-/Resources 788 0 R
+/Contents 795 0 R
+/Resources 793 0 R
/MediaBox [0 0 595.276 841.89]
-/Parent 731 0 R
-/Annots [ 786 0 R 787 0 R ]
+/Parent 736 0 R
+/Annots [ 791 0 R 792 0 R ]
>>
-% 786 0 obj
+% 791 0 obj
<<
/Type /Annot
/Subtype /Link
@@ -4612,7 +4638,7 @@ stream
/Rect [406.358 354.515 413.331 366.47]
/A << /S /GoTo /D (section.3) >>
>>
-% 787 0 obj
+% 792 0 obj
<<
/Type /Annot
/Subtype /Link
@@ -4620,78 +4646,78 @@ stream
/Rect [173.863 318.352 180.837 330.307]
/A << /S /GoTo /D (section.6) >>
>>
-% 791 0 obj
+% 796 0 obj
<<
-/D [789 0 R /XYZ 98.895 753.953 null]
+/D [794 0 R /XYZ 98.895 753.953 null]
>>
-% 788 0 obj
+% 793 0 obj
<<
-/Font << /F27 556 0 R /F8 557 0 R /F14 767 0 R /F30 764 0 R >>
+/Font << /F27 560 0 R /F8 561 0 R /F14 772 0 R /F30 769 0 R >>
/ProcSet [ /PDF /Text ]
>>
-% 794 0 obj
+% 799 0 obj
<<
/Type /Page
-/Contents 795 0 R
-/Resources 793 0 R
+/Contents 800 0 R
+/Resources 798 0 R
/MediaBox [0 0 595.276 841.89]
-/Parent 731 0 R
+/Parent 736 0 R
>>
-% 796 0 obj
+% 801 0 obj
<<
-/D [794 0 R /XYZ 149.705 753.953 null]
+/D [799 0 R /XYZ 149.705 753.953 null]
>>
% 23 0 obj
<<
-/D [794 0 R /XYZ 150.705 716.092 null]
+/D [799 0 R /XYZ 150.705 716.092 null]
>>
-% 798 0 obj
+% 803 0 obj
<<
-/D [794 0 R /XYZ 150.705 284.758 null]
+/D [799 0 R /XYZ 150.705 284.758 null]
>>
-% 799 0 obj
+% 804 0 obj
<<
-/D [794 0 R /XYZ 150.705 263.953 null]
+/D [799 0 R /XYZ 150.705 263.953 null]
>>
-% 800 0 obj
+% 805 0 obj
<<
-/D [794 0 R /XYZ 150.705 242.87 null]
+/D [799 0 R /XYZ 150.705 242.87 null]
>>
-% 801 0 obj
+% 806 0 obj
<<
-/D [794 0 R /XYZ 150.705 221.788 null]
+/D [799 0 R /XYZ 150.705 221.788 null]
>>
-% 802 0 obj
+% 807 0 obj
<<
-/D [794 0 R /XYZ 150.705 188.75 null]
+/D [799 0 R /XYZ 150.705 188.75 null]
>>
-% 803 0 obj
+% 808 0 obj
<<
-/D [794 0 R /XYZ 150.705 167.6 null]
+/D [799 0 R /XYZ 150.705 167.6 null]
>>
-% 804 0 obj
+% 809 0 obj
<<
-/D [794 0 R /XYZ 150.705 148.591 null]
+/D [799 0 R /XYZ 150.705 148.591 null]
>>
-% 805 0 obj
+% 810 0 obj
<<
-/D [794 0 R /XYZ 150.705 132.072 null]
+/D [799 0 R /XYZ 150.705 132.072 null]
>>
-% 793 0 obj
+% 798 0 obj
<<
-/Font << /F16 554 0 R /F8 557 0 R /F11 750 0 R /F30 764 0 R /F9 797 0 R /F17 730 0 R >>
+/Font << /F16 558 0 R /F8 561 0 R /F11 755 0 R /F30 769 0 R /F9 802 0 R /F17 735 0 R >>
/ProcSet [ /PDF /Text ]
>>
-% 808 0 obj
+% 813 0 obj
<<
/Type /Page
-/Contents 809 0 R
-/Resources 807 0 R
+/Contents 814 0 R
+/Resources 812 0 R
/MediaBox [0 0 595.276 841.89]
-/Parent 826 0 R
-/Annots [ 792 0 R ]
+/Parent 831 0 R
+/Annots [ 797 0 R ]
>>
-% 792 0 obj
+% 797 0 obj
<<
/Type /Annot
/Subtype /Link
@@ -4699,46 +4725,34 @@ stream
/Rect [176.109 690.964 182.571 703.28]
/A << /S /GoTo /D (Hfootnote.3) >>
>>
-% 810 0 obj
-<<
-/D [808 0 R /XYZ 98.895 753.953 null]
->>
-% 811 0 obj
-<<
-/D [808 0 R /XYZ 99.895 716.092 null]
->>
-% 812 0 obj
-<<
-/D [808 0 R /XYZ 99.895 686.739 null]
->>
-% 813 0 obj
-<<
-/D [808 0 R /XYZ 99.895 618.93 null]
->>
-% 814 0 obj
-<<
-/D [808 0 R /XYZ 99.895 596.257 null]
->>
% 815 0 obj
<<
-/D [808 0 R /XYZ 99.895 573.861 null]
+/D [813 0 R /XYZ 98.895 753.953 null]
>>
% 816 0 obj
<<
-/D [808 0 R /XYZ 99.895 539.509 null]
+/D [813 0 R /XYZ 99.895 716.092 null]
>>
% 817 0 obj
<<
-/D [808 0 R /XYZ 99.895 517.113 null]
+/D [813 0 R /XYZ 99.895 686.739 null]
>>
% 818 0 obj
<<
-/D [808 0 R /XYZ 99.895 494.716 null]
+/D [813 0 R /XYZ 99.895 618.93 null]
+>>
+% 819 0 obj
+<<
+/D [813 0 R /XYZ 99.895 596.257 null]
+>>
+% 820 0 obj
+<<
+/D [813 0 R /XYZ 99.895 573.861 null]
>>
endstream
endobj
-831 0 obj
+836 0 obj
<<
/Length 7473
>>
@@ -4794,7 +4808,7 @@ ET
endstream
endobj
-842 0 obj
+847 0 obj
<<
/Length 8440
>>
@@ -4939,7 +4953,7 @@ ET
endstream
endobj
-852 0 obj
+857 0 obj
<<
/Length 6827
>>
@@ -5074,7 +5088,7 @@ ET
endstream
endobj
-865 0 obj
+870 0 obj
<<
/Length 5421
>>
@@ -5193,7 +5207,7 @@ ET
endstream
endobj
-876 0 obj
+881 0 obj
<<
/Length 5152
>>
@@ -5321,7 +5335,7 @@ ET
endstream
endobj
-880 0 obj
+885 0 obj
<<
/Length 4083
>>
@@ -5424,7 +5438,7 @@ ET
endstream
endobj
-885 0 obj
+890 0 obj
<<
/Length 5794
>>
@@ -5584,7 +5598,7 @@ ET
endstream
endobj
-893 0 obj
+898 0 obj
<<
/Length 9961
>>
@@ -5975,7 +5989,7 @@ ET
endstream
endobj
-901 0 obj
+906 0 obj
<<
/Length 4142
>>
@@ -6059,7 +6073,7 @@ ET
endstream
endobj
-905 0 obj
+910 0 obj
<<
/Length 3830
>>
@@ -6156,198 +6170,75 @@ ET
endstream
endobj
-910 0 obj
+832 0 obj
<<
-/Length 4817
+/Type /ObjStm
+/N 100
+/First 865
+/Length 8968
>>
stream
-0 g 0 G
-0 g 0 G
-BT
-/F27 9.9626 Tf 150.705 706.129 Td [(get)]TJ
-ET
-q
-1 0 0 1 166.827 706.328 cm
-[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S
-Q
-BT
-/F27 9.9626 Tf 170.264 706.129 Td [(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 -19.559 -18.389 Td [(write\050*,*\051)-525(a%get_fmt\050\051)]TJ
-0 g 0 G
-/F27 9.9626 Tf 0 -20.78 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.47 Td [(On)-383(En)32(try)]TJ
-0 g 0 G
-0 g 0 G
- 0 -19.47 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 -32.735 Td [(On)-383(Return)]TJ
-0 g 0 G
-0 g 0 G
- 0 -19.47 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.955 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 -25.7 Td [(is)]TJ
-ET
-q
-1 0 0 1 159.094 526.404 cm
-[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S
-Q
-BT
-/F27 9.9626 Tf 162.531 526.205 Td [(bld,)-383(is)]TJ
-ET
-q
-1 0 0 1 193.834 526.404 cm
-[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S
-Q
-BT
-/F27 9.9626 Tf 197.271 526.205 Td [(up)-32(d,)-383(is)]TJ
-ET
-q
-1 0 0 1 232.075 526.404 cm
-[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S
-Q
-BT
-/F27 9.9626 Tf 235.512 526.205 Td [(asb)-383(|)-384(Status)-383(c)32(hec)32(k)]TJ
-0 g 0 G
-0 g 0 G
-/F30 9.9626 Tf -84.807 -18.39 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 -20.78 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.47 Td [(On)-383(En)32(try)]TJ
-0 g 0 G
-0 g 0 G
- 0 -19.47 Td [(a)]TJ
-0 g 0 G
-/F8 9.9626 Tf 10.551 0 Td [(the)-333(sparse)-334(matrix)]TJ 14.356 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.378 0 Td [(lo)-32(cal)]TJ
-0 g 0 G
- -57.285 -32.735 Td [(On)-383(Return)]TJ
-0 g 0 G
-0 g 0 G
- 0 -19.47 Td [(F)96(unction)-384(v)64(alue)]TJ
-0 g 0 G
-/F8 9.9626 Tf 78.386 0 Td [(A)]TJ/F30 9.9626 Tf 9.728 0 Td [(logical)]TJ/F8 9.9626 Tf 38.869 0 Td [(v)56(alue)-227(indicating)-226(whether)-227(the)-226(m)-1(atr)1(ix)-227(is)-227(in)-226(the)-227(Build)1(,)]TJ -102.076 -11.955 Td [(Up)-28(date)-333(or)-333(Assem)27(bled)-333(state,)-333(resp)-28(ectiv)28(e)-1(l)1(y)83(.)]TJ/F27 9.9626 Tf -24.907 -25.7 Td [(is)]TJ
-ET
-q
-1 0 0 1 159.094 322.57 cm
-[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S
-Q
-BT
-/F27 9.9626 Tf 162.531 322.37 Td [(lo)32(w)32(er,)-383(i)-1(s)]TJ
-ET
-q
-1 0 0 1 204.44 322.57 cm
-[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S
-Q
-BT
-/F27 9.9626 Tf 207.877 322.37 Td [(upp)-32(er,)-383(is)]TJ
-ET
-q
-1 0 0 1 252.65 322.57 cm
-[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S
-Q
-BT
-/F27 9.9626 Tf 256.087 322.37 Td [(triangle,)-384(is)]TJ
-ET
-q
-1 0 0 1 309.931 322.57 cm
-[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S
-Q
-BT
-/F27 9.9626 Tf 313.368 322.37 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 -18.389 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 -20.78 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.47 Td [(On)-383(En)32(try)]TJ
-0 g 0 G
-0 g 0 G
- 0 -19.47 Td [(a)]TJ
-0 g 0 G
-/F8 9.9626 Tf 10.551 0 Td [(the)-333(sparse)-334(matrix)]TJ 14.356 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.378 0 Td [(lo)-32(cal)]TJ
-0 g 0 G
- -57.285 -32.735 Td [(On)-383(Return)]TJ
-0 g 0 G
-0 g 0 G
- 0 -19.47 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.849 -11.955 Td [(if)]TJ/F30 9.9626 Tf 8.895 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.629 -11.955 Td [(a)-333(unit)-334(\050i)1(.e)-1(.)-444(assumed\051)-333(diagonal.)]TJ
-0 g 0 G
- 141.967 -29.888 Td [(18)]TJ
-0 g 0 G
-ET
-
-endstream
-endobj
-827 0 obj
+821 0 822 56 823 112 824 168 825 224 826 280 827 336 828 392 829 448 812 505
+835 635 811 777 833 929 837 1076 27 1133 838 1189 839 1246 840 1303 841 1360 842 1417
+843 1474 31 1531 834 1587 846 1730 844 1864 848 2011 35 2067 39 2122 849 2177 845 2234
+856 2352 850 2502 851 2649 852 2800 858 2952 859 3009 860 3066 861 3123 862 3180 863 3237
+864 3294 865 3351 866 3407 867 3464 855 3521 869 3613 853 3755 854 3907 871 4059 872 4115
+873 4171 874 4227 875 4283 876 4339 43 4396 47 4451 868 4504 880 4596 877 4738 878 4884
+882 5030 51 5087 55 5143 59 5199 879 5255 884 5373 886 5487 63 5543 67 5598 71 5653
+883 5708 889 5800 891 5914 75 5971 892 6027 79 6084 83 6140 888 6196 897 6288 893 6438
+894 6595 895 6745 899 6891 87 6947 91 7002 900 7057 901 7114 902 7171 896 7228 905 7333
+907 7447 95 7504 99 7560 103 7616 904 7673 909 7765 911 7879 107 7935 912 7991 111 8047
+% 821 0 obj
<<
-/Type /ObjStm
-/N 100
-/First 866
-/Length 9063
+/D [813 0 R /XYZ 99.895 539.509 null]
>>
-stream
-819 0 820 56 821 112 822 168 823 224 824 280 807 337 830 467 806 609 828 761
-832 908 27 965 833 1021 834 1078 835 1135 836 1192 837 1249 838 1306 31 1363 829 1419
-841 1562 839 1696 843 1843 35 1899 39 1954 844 2009 840 2066 851 2184 845 2334 846 2481
-847 2632 853 2784 854 2841 855 2898 856 2955 857 3012 858 3069 859 3126 860 3183 861 3239
-862 3296 850 3353 864 3445 848 3587 849 3739 866 3891 867 3947 868 4003 869 4059 870 4115
-871 4171 43 4228 47 4283 863 4336 875 4428 872 4570 873 4716 877 4862 51 4919 55 4975
-59 5031 874 5087 879 5205 881 5319 63 5375 67 5430 71 5485 878 5540 884 5632 886 5746
-75 5803 887 5859 79 5916 83 5972 883 6028 892 6120 888 6270 889 6427 890 6577 894 6723
-87 6779 91 6834 895 6889 896 6946 897 7003 891 7060 900 7165 902 7279 95 7336 99 7392
-103 7448 899 7505 904 7597 906 7711 107 7767 907 7823 111 7879 115 7935 903 7991 909 8083
-% 819 0 obj
+% 822 0 obj
<<
-/D [808 0 R /XYZ 99.895 469.986 null]
+/D [813 0 R /XYZ 99.895 517.113 null]
>>
-% 820 0 obj
+% 823 0 obj
<<
-/D [808 0 R /XYZ 99.895 440.855 null]
+/D [813 0 R /XYZ 99.895 494.716 null]
>>
-% 821 0 obj
+% 824 0 obj
<<
-/D [808 0 R /XYZ 99.895 411.448 null]
+/D [813 0 R /XYZ 99.895 469.986 null]
>>
-% 822 0 obj
+% 825 0 obj
<<
-/D [808 0 R /XYZ 99.895 393.995 null]
+/D [813 0 R /XYZ 99.895 440.855 null]
>>
-% 823 0 obj
+% 826 0 obj
<<
-/D [808 0 R /XYZ 99.895 376.819 null]
+/D [813 0 R /XYZ 99.895 411.448 null]
>>
-% 824 0 obj
+% 827 0 obj
<<
-/D [808 0 R /XYZ 115.138 139.255 null]
+/D [813 0 R /XYZ 99.895 393.995 null]
>>
-% 807 0 obj
+% 828 0 obj
+<<
+/D [813 0 R /XYZ 99.895 376.819 null]
+>>
+% 829 0 obj
+<<
+/D [813 0 R /XYZ 115.138 139.255 null]
+>>
+% 812 0 obj
<<
-/Font << /F8 557 0 R /F30 764 0 R /F7 765 0 R /F32 768 0 R /F31 770 0 R /F45 825 0 R >>
+/Font << /F8 561 0 R /F30 769 0 R /F7 770 0 R /F32 773 0 R /F31 775 0 R /F45 830 0 R >>
/ProcSet [ /PDF /Text ]
>>
-% 830 0 obj
+% 835 0 obj
<<
/Type /Page
-/Contents 831 0 R
-/Resources 829 0 R
+/Contents 836 0 R
+/Resources 834 0 R
/MediaBox [0 0 595.276 841.89]
-/Parent 826 0 R
-/Annots [ 806 0 R 828 0 R ]
+/Parent 831 0 R
+/Annots [ 811 0 R 833 0 R ]
>>
-% 806 0 obj
+% 811 0 obj
<<
/Type /Annot
/Subtype /Link
@@ -6355,7 +6246,7 @@ stream
/Rect [269.731 674.788 284.454 683.699]
/A << /S /GoTo /D (subsection.2.3) >>
>>
-% 828 0 obj
+% 833 0 obj
<<
/Type /Annot
/Subtype /Link
@@ -6363,57 +6254,57 @@ stream
/Rect [169.998 271.903 176.972 282.751]
/A << /S /GoTo /D (section.3) >>
>>
-% 832 0 obj
+% 837 0 obj
<<
-/D [830 0 R /XYZ 149.705 753.953 null]
+/D [835 0 R /XYZ 149.705 753.953 null]
>>
% 27 0 obj
<<
-/D [830 0 R /XYZ 150.705 716.092 null]
+/D [835 0 R /XYZ 150.705 716.092 null]
>>
-% 833 0 obj
+% 838 0 obj
<<
-/D [830 0 R /XYZ 150.705 671.799 null]
+/D [835 0 R /XYZ 150.705 671.799 null]
>>
-% 834 0 obj
+% 839 0 obj
<<
-/D [830 0 R /XYZ 150.705 649.383 null]
+/D [835 0 R /XYZ 150.705 649.383 null]
>>
-% 835 0 obj
+% 840 0 obj
<<
-/D [830 0 R /XYZ 150.705 576.158 null]
+/D [835 0 R /XYZ 150.705 576.158 null]
>>
-% 836 0 obj
+% 841 0 obj
<<
-/D [830 0 R /XYZ 150.705 530.385 null]
+/D [835 0 R /XYZ 150.705 530.385 null]
>>
-% 837 0 obj
+% 842 0 obj
<<
-/D [830 0 R /XYZ 150.705 497.951 null]
+/D [835 0 R /XYZ 150.705 497.951 null]
>>
-% 838 0 obj
+% 843 0 obj
<<
-/D [830 0 R /XYZ 150.705 478.303 null]
+/D [835 0 R /XYZ 150.705 478.303 null]
>>
% 31 0 obj
<<
-/D [830 0 R /XYZ 150.705 424.511 null]
+/D [835 0 R /XYZ 150.705 424.511 null]
>>
-% 829 0 obj
+% 834 0 obj
<<
-/Font << /F27 556 0 R /F8 557 0 R /F11 750 0 R /F9 797 0 R /F30 764 0 R /F16 554 0 R /F17 730 0 R >>
+/Font << /F27 560 0 R /F8 561 0 R /F11 755 0 R /F9 802 0 R /F30 769 0 R /F16 558 0 R /F17 735 0 R >>
/ProcSet [ /PDF /Text ]
>>
-% 841 0 obj
+% 846 0 obj
<<
/Type /Page
-/Contents 842 0 R
-/Resources 840 0 R
+/Contents 847 0 R
+/Resources 845 0 R
/MediaBox [0 0 595.276 841.89]
-/Parent 826 0 R
-/Annots [ 839 0 R ]
+/Parent 831 0 R
+/Annots [ 844 0 R ]
>>
-% 839 0 obj
+% 844 0 obj
<<
/Type /Annot
/Subtype /Link
@@ -6421,37 +6312,37 @@ stream
/Rect [269.318 225.936 276.292 236.784]
/A << /S /GoTo /D (section.6) >>
>>
-% 843 0 obj
+% 848 0 obj
<<
-/D [841 0 R /XYZ 98.895 753.953 null]
+/D [846 0 R /XYZ 98.895 753.953 null]
>>
% 35 0 obj
<<
-/D [841 0 R /XYZ 99.895 716.092 null]
+/D [846 0 R /XYZ 99.895 716.092 null]
>>
% 39 0 obj
<<
-/D [841 0 R /XYZ 99.895 331.305 null]
+/D [846 0 R /XYZ 99.895 331.305 null]
>>
-% 844 0 obj
+% 849 0 obj
<<
-/D [841 0 R /XYZ 342.427 288.724 null]
+/D [846 0 R /XYZ 342.427 288.724 null]
>>
-% 840 0 obj
+% 845 0 obj
<<
-/Font << /F16 554 0 R /F8 557 0 R /F30 764 0 R /F27 556 0 R /F14 767 0 R >>
+/Font << /F16 558 0 R /F8 561 0 R /F30 769 0 R /F27 560 0 R /F14 772 0 R >>
/ProcSet [ /PDF /Text ]
>>
-% 851 0 obj
+% 856 0 obj
<<
/Type /Page
-/Contents 852 0 R
-/Resources 850 0 R
+/Contents 857 0 R
+/Resources 855 0 R
/MediaBox [0 0 595.276 841.89]
-/Parent 826 0 R
-/Annots [ 845 0 R 846 0 R 847 0 R ]
+/Parent 831 0 R
+/Annots [ 850 0 R 851 0 R 852 0 R ]
>>
-% 845 0 obj
+% 850 0 obj
<<
/Type /Annot
/Subtype /Link
@@ -6459,7 +6350,7 @@ stream
/Rect [452.103 458.757 459.077 470.712]
/A << /S /GoTo /D (section.6) >>
>>
-% 846 0 obj
+% 851 0 obj
<<
/Type /Annot
/Subtype /Link
@@ -6467,7 +6358,7 @@ stream
/Rect [356.323 258.941 371.046 269.79]
/A << /S /GoTo /D (subsection.3.3) >>
>>
-% 847 0 obj
+% 852 0 obj
<<
/Type /Annot
/Subtype /Link
@@ -6475,61 +6366,61 @@ stream
/Rect [356.323 215.425 371.046 226.273]
/A << /S /GoTo /D (subsection.3.3) >>
>>
-% 853 0 obj
+% 858 0 obj
<<
-/D [851 0 R /XYZ 149.705 753.953 null]
+/D [856 0 R /XYZ 149.705 753.953 null]
>>
-% 854 0 obj
+% 859 0 obj
<<
-/D [851 0 R /XYZ 150.705 355.818 null]
+/D [856 0 R /XYZ 150.705 355.818 null]
>>
-% 855 0 obj
+% 860 0 obj
<<
-/D [851 0 R /XYZ 150.705 340.197 null]
+/D [856 0 R /XYZ 150.705 340.197 null]
>>
-% 856 0 obj
+% 861 0 obj
<<
-/D [851 0 R /XYZ 150.705 324.575 null]
+/D [856 0 R /XYZ 150.705 324.575 null]
>>
-% 857 0 obj
+% 862 0 obj
<<
-/D [851 0 R /XYZ 150.705 308.954 null]
+/D [856 0 R /XYZ 150.705 308.954 null]
>>
-% 858 0 obj
+% 863 0 obj
<<
-/D [851 0 R /XYZ 150.705 293.332 null]
+/D [856 0 R /XYZ 150.705 293.332 null]
>>
-% 859 0 obj
+% 864 0 obj
<<
-/D [851 0 R /XYZ 150.705 179.041 null]
+/D [856 0 R /XYZ 150.705 179.041 null]
>>
-% 860 0 obj
+% 865 0 obj
<<
-/D [851 0 R /XYZ 150.705 163.42 null]
+/D [856 0 R /XYZ 150.705 163.42 null]
>>
-% 861 0 obj
+% 866 0 obj
<<
-/D [851 0 R /XYZ 150.705 147.798 null]
+/D [856 0 R /XYZ 150.705 147.798 null]
>>
-% 862 0 obj
+% 867 0 obj
<<
-/D [851 0 R /XYZ 150.705 132.177 null]
+/D [856 0 R /XYZ 150.705 132.177 null]
>>
-% 850 0 obj
+% 855 0 obj
<<
-/Font << /F27 556 0 R /F8 557 0 R /F14 767 0 R >>
+/Font << /F27 560 0 R /F8 561 0 R /F14 772 0 R >>
/ProcSet [ /PDF /Text ]
>>
-% 864 0 obj
+% 869 0 obj
<<
/Type /Page
-/Contents 865 0 R
-/Resources 863 0 R
+/Contents 870 0 R
+/Resources 868 0 R
/MediaBox [0 0 595.276 841.89]
-/Parent 826 0 R
-/Annots [ 848 0 R 849 0 R ]
+/Parent 831 0 R
+/Annots [ 853 0 R 854 0 R ]
>>
-% 848 0 obj
+% 853 0 obj
<<
/Type /Annot
/Subtype /Link
@@ -6537,7 +6428,7 @@ stream
/Rect [305.513 683.645 320.236 694.494]
/A << /S /GoTo /D (subsection.3.3) >>
>>
-% 849 0 obj
+% 854 0 obj
<<
/Type /Annot
/Subtype /Link
@@ -6545,53 +6436,53 @@ stream
/Rect [305.513 640.185 320.236 651.033]
/A << /S /GoTo /D (subsection.3.3) >>
>>
-% 866 0 obj
+% 871 0 obj
<<
-/D [864 0 R /XYZ 98.895 753.953 null]
+/D [869 0 R /XYZ 98.895 753.953 null]
>>
-% 867 0 obj
+% 872 0 obj
<<
-/D [864 0 R /XYZ 99.895 716.092 null]
+/D [869 0 R /XYZ 99.895 716.092 null]
>>
-% 868 0 obj
+% 873 0 obj
<<
-/D [864 0 R /XYZ 99.895 615.842 null]
+/D [869 0 R /XYZ 99.895 615.842 null]
>>
-% 869 0 obj
+% 874 0 obj
<<
-/D [864 0 R /XYZ 99.895 600.277 null]
+/D [869 0 R /XYZ 99.895 600.277 null]
>>
-% 870 0 obj
+% 875 0 obj
<<
-/D [864 0 R /XYZ 99.895 584.712 null]
+/D [869 0 R /XYZ 99.895 584.712 null]
>>
-% 871 0 obj
+% 876 0 obj
<<
-/D [864 0 R /XYZ 147.412 369.037 null]
+/D [869 0 R /XYZ 147.412 369.037 null]
>>
% 43 0 obj
<<
-/D [864 0 R /XYZ 99.895 209.589 null]
+/D [869 0 R /XYZ 99.895 209.589 null]
>>
% 47 0 obj
<<
-/D [864 0 R /XYZ 99.895 191.2 null]
+/D [869 0 R /XYZ 99.895 191.2 null]
>>
-% 863 0 obj
+% 868 0 obj
<<
-/Font << /F8 557 0 R /F27 556 0 R /F30 764 0 R >>
+/Font << /F8 561 0 R /F27 560 0 R /F30 769 0 R >>
/ProcSet [ /PDF /Text ]
>>
-% 875 0 obj
+% 880 0 obj
<<
/Type /Page
-/Contents 876 0 R
-/Resources 874 0 R
+/Contents 881 0 R
+/Resources 879 0 R
/MediaBox [0 0 595.276 841.89]
-/Parent 826 0 R
-/Annots [ 872 0 R 873 0 R ]
+/Parent 831 0 R
+/Annots [ 877 0 R 878 0 R ]
>>
-% 872 0 obj
+% 877 0 obj
<<
/Type /Annot
/Subtype /Link
@@ -6599,7 +6490,7 @@ stream
/Rect [351.231 623.115 358.204 635.07]
/A << /S /GoTo /D (section.1) >>
>>
-% 873 0 obj
+% 878 0 obj
<<
/Type /Annot
/Subtype /Link
@@ -6607,99 +6498,99 @@ stream
/Rect [186.34 408.904 193.314 420.859]
/A << /S /GoTo /D (section.1) >>
>>
-% 877 0 obj
+% 882 0 obj
<<
-/D [875 0 R /XYZ 149.705 753.953 null]
+/D [880 0 R /XYZ 149.705 753.953 null]
>>
% 51 0 obj
<<
-/D [875 0 R /XYZ 150.705 599.327 null]
+/D [880 0 R /XYZ 150.705 599.327 null]
>>
% 55 0 obj
<<
-/D [875 0 R /XYZ 150.705 385.116 null]
+/D [880 0 R /XYZ 150.705 385.116 null]
>>
% 59 0 obj
<<
-/D [875 0 R /XYZ 150.705 194.815 null]
+/D [880 0 R /XYZ 150.705 194.815 null]
>>
-% 874 0 obj
+% 879 0 obj
<<
-/Font << /F27 556 0 R /F8 557 0 R /F14 767 0 R /F10 766 0 R /F30 764 0 R >>
+/Font << /F27 560 0 R /F8 561 0 R /F14 772 0 R /F10 771 0 R /F30 769 0 R >>
/ProcSet [ /PDF /Text ]
>>
-% 879 0 obj
+% 884 0 obj
<<
/Type /Page
-/Contents 880 0 R
-/Resources 878 0 R
+/Contents 885 0 R
+/Resources 883 0 R
/MediaBox [0 0 595.276 841.89]
-/Parent 882 0 R
+/Parent 887 0 R
>>
-% 881 0 obj
+% 886 0 obj
<<
-/D [879 0 R /XYZ 98.895 753.953 null]
+/D [884 0 R /XYZ 98.895 753.953 null]
>>
% 63 0 obj
<<
-/D [879 0 R /XYZ 99.895 614.689 null]
+/D [884 0 R /XYZ 99.895 614.689 null]
>>
% 67 0 obj
<<
-/D [879 0 R /XYZ 99.895 363.684 null]
+/D [884 0 R /XYZ 99.895 363.684 null]
>>
% 71 0 obj
<<
-/D [879 0 R /XYZ 99.895 192.327 null]
+/D [884 0 R /XYZ 99.895 192.327 null]
>>
-% 878 0 obj
+% 883 0 obj
<<
-/Font << /F27 556 0 R /F8 557 0 R /F30 764 0 R >>
+/Font << /F27 560 0 R /F8 561 0 R /F30 769 0 R >>
/ProcSet [ /PDF /Text ]
>>
-% 884 0 obj
+% 889 0 obj
<<
/Type /Page
-/Contents 885 0 R
-/Resources 883 0 R
+/Contents 890 0 R
+/Resources 888 0 R
/MediaBox [0 0 595.276 841.89]
-/Parent 882 0 R
+/Parent 887 0 R
>>
-% 886 0 obj
+% 891 0 obj
<<
-/D [884 0 R /XYZ 149.705 753.953 null]
+/D [889 0 R /XYZ 149.705 753.953 null]
>>
% 75 0 obj
<<
-/D [884 0 R /XYZ 150.705 611.434 null]
+/D [889 0 R /XYZ 150.705 611.434 null]
>>
-% 887 0 obj
+% 892 0 obj
<<
-/D [884 0 R /XYZ 395.482 457.068 null]
+/D [889 0 R /XYZ 395.482 457.068 null]
>>
% 79 0 obj
<<
-/D [884 0 R /XYZ 150.705 412.181 null]
+/D [889 0 R /XYZ 150.705 412.181 null]
>>
% 83 0 obj
<<
-/D [884 0 R /XYZ 150.705 311.051 null]
+/D [889 0 R /XYZ 150.705 311.051 null]
>>
-% 883 0 obj
+% 888 0 obj
<<
-/Font << /F27 556 0 R /F8 557 0 R /F30 764 0 R >>
+/Font << /F27 560 0 R /F8 561 0 R /F30 769 0 R >>
/ProcSet [ /PDF /Text ]
>>
-% 892 0 obj
+% 897 0 obj
<<
/Type /Page
-/Contents 893 0 R
-/Resources 891 0 R
+/Contents 898 0 R
+/Resources 896 0 R
/MediaBox [0 0 595.276 841.89]
-/Parent 882 0 R
-/Annots [ 888 0 R 889 0 R 890 0 R ]
+/Parent 887 0 R
+/Annots [ 893 0 R 894 0 R 895 0 R ]
>>
-% 888 0 obj
+% 893 0 obj
<<
/Type /Annot
/Subtype /Link
@@ -6707,7 +6598,7 @@ stream
/Rect [137.251 429.829 149.206 438.242]
/A << /S /GoTo /D (cite.DesignPatterns) >>
>>
-% 889 0 obj
+% 894 0 obj
<<
/Type /Annot
/Subtype /Link
@@ -6715,7 +6606,7 @@ stream
/Rect [218.095 429.829 230.05 438.242]
/A << /S /GoTo /D (cite.Sparse03) >>
>>
-% 890 0 obj
+% 895 0 obj
<<
/Type /Annot
/Subtype /Link
@@ -6723,154 +6614,272 @@ stream
/Rect [408.687 427.339 415.661 439.294]
/A << /S /GoTo /D (figure.4) >>
>>
-% 894 0 obj
+% 899 0 obj
<<
-/D [892 0 R /XYZ 98.895 753.953 null]
+/D [897 0 R /XYZ 98.895 753.953 null]
>>
% 87 0 obj
<<
-/D [892 0 R /XYZ 99.895 716.092 null]
+/D [897 0 R /XYZ 99.895 716.092 null]
>>
% 91 0 obj
<<
-/D [892 0 R /XYZ 99.895 485.606 null]
+/D [897 0 R /XYZ 99.895 485.606 null]
>>
-% 895 0 obj
+% 900 0 obj
<<
-/D [892 0 R /XYZ 120.548 454.736 null]
+/D [897 0 R /XYZ 120.548 454.736 null]
>>
-% 896 0 obj
+% 901 0 obj
<<
-/D [892 0 R /XYZ 404.863 316.287 null]
+/D [897 0 R /XYZ 404.863 316.287 null]
>>
-% 897 0 obj
+% 902 0 obj
<<
-/D [892 0 R /XYZ 155.008 217.826 null]
+/D [897 0 R /XYZ 155.008 217.826 null]
>>
-% 891 0 obj
+% 896 0 obj
<<
-/Font << /F27 556 0 R /F8 557 0 R /F30 764 0 R /F16 554 0 R >>
+/Font << /F27 560 0 R /F8 561 0 R /F30 769 0 R /F16 558 0 R >>
/ProcSet [ /PDF /Text ]
>>
-% 900 0 obj
+% 905 0 obj
<<
/Type /Page
-/Contents 901 0 R
-/Resources 899 0 R
+/Contents 906 0 R
+/Resources 904 0 R
/MediaBox [0 0 595.276 841.89]
-/Parent 882 0 R
+/Parent 887 0 R
>>
-% 902 0 obj
+% 907 0 obj
<<
-/D [900 0 R /XYZ 149.705 753.953 null]
+/D [905 0 R /XYZ 149.705 753.953 null]
>>
% 95 0 obj
<<
-/D [900 0 R /XYZ 150.705 509.604 null]
+/D [905 0 R /XYZ 150.705 509.604 null]
>>
% 99 0 obj
<<
-/D [900 0 R /XYZ 150.705 491.094 null]
+/D [905 0 R /XYZ 150.705 491.094 null]
>>
% 103 0 obj
<<
-/D [900 0 R /XYZ 150.705 296.318 null]
+/D [905 0 R /XYZ 150.705 296.318 null]
>>
-% 899 0 obj
+% 904 0 obj
<<
-/Font << /F8 557 0 R /F27 556 0 R /F30 764 0 R >>
+/Font << /F8 561 0 R /F27 560 0 R /F30 769 0 R >>
/ProcSet [ /PDF /Text ]
>>
-% 904 0 obj
+% 909 0 obj
<<
/Type /Page
-/Contents 905 0 R
-/Resources 903 0 R
+/Contents 910 0 R
+/Resources 908 0 R
/MediaBox [0 0 595.276 841.89]
-/Parent 882 0 R
+/Parent 887 0 R
>>
-% 906 0 obj
+% 911 0 obj
<<
-/D [904 0 R /XYZ 98.895 753.953 null]
+/D [909 0 R /XYZ 98.895 753.953 null]
>>
% 107 0 obj
<<
-/D [904 0 R /XYZ 99.895 718.084 null]
+/D [909 0 R /XYZ 99.895 718.084 null]
>>
-% 907 0 obj
+% 912 0 obj
<<
-/D [904 0 R /XYZ 99.895 532.185 null]
+/D [909 0 R /XYZ 99.895 532.185 null]
>>
% 111 0 obj
<<
-/D [904 0 R /XYZ 99.895 477.767 null]
->>
-% 115 0 obj
-<<
-/D [904 0 R /XYZ 99.895 279.894 null]
->>
-% 903 0 obj
-<<
-/Font << /F27 556 0 R /F30 764 0 R /F8 557 0 R >>
-/ProcSet [ /PDF /Text ]
->>
-% 909 0 obj
-<<
-/Type /Page
-/Contents 910 0 R
-/Resources 908 0 R
-/MediaBox [0 0 595.276 841.89]
-/Parent 882 0 R
+/D [909 0 R /XYZ 99.895 477.767 null]
>>
endstream
endobj
-915 0 obj
+916 0 obj
<<
-/Length 4390
+/Length 4817
>>
stream
0 g 0 G
0 g 0 G
BT
-/F27 9.9626 Tf 99.895 706.129 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 150.705 706.129 Td [(get)]TJ
+ET
+q
+1 0 0 1 166.827 706.328 cm
+[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S
+Q
+BT
+/F27 9.9626 Tf 170.264 706.129 Td [(fm)32(t)-383(|)-384(Short)-383(description)-384(of)-383(the)-383(dynamic)-384(t)32(yp)-32(e)]TJ
0 g 0 G
0 g 0 G
-/F30 9.9626 Tf 0 -18.389 Td [(call)-1050(a%cscnv\050b,info)-525([,)-525(type,)-525(mold,)-525(dupl]\051)]TJ 0 -11.956 Td [(call)-1050(a%cscnv\050info)-525([,)-525(type,)-525(mold,)-525(dupl]\051)]TJ
+/F30 9.9626 Tf -19.559 -18.389 Td [(write\050*,*\051)-525(a%get_fmt\050\051)]TJ
0 g 0 G
-/F27 9.9626 Tf 0 -21.446 Td [(T)32(yp)-32(e:)]TJ
+/F27 9.9626 Tf 0 -20.78 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.737 Td [(On)-383(En)32(try)]TJ
-0 g 0 G
-0 g 0 G
- 0 -19.736 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.956 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf 23.073 0 Td [(.)]TJ
-0 g 0 G
-/F27 9.9626 Tf -80.359 -31.691 Td [(t)32(yp)-32(e)]TJ
-0 g 0 G
-/F8 9.9626 Tf 27.1 0 Td [(a)-333(string)-334(requesting)-333(a)-333(new)-334(format.)]TJ -2.193 -11.956 Td [(T)28(yp)-28(e:)-444(optional.)]TJ
-0 g 0 G
-/F27 9.9626 Tf -24.907 -19.736 Td [(mold)]TJ
-0 g 0 G
-/F8 9.9626 Tf 29.805 0 Td [(a)-312(v)56(ariable)-312(of)]TJ/F30 9.9626 Tf 56.396 0 Td [(class\050psb_T_base_sparse_mat\051)]TJ/F8 9.9626 Tf 149.557 0 Td [(requesting)-312(a)-312(new)-312(format.)]TJ -210.851 -11.955 Td [(T)28(yp)-28(e:)-444(optional.)]TJ
-0 g 0 G
-/F27 9.9626 Tf -24.907 -19.737 Td [(dupl)]TJ
-0 g 0 G
-/F8 9.9626 Tf 27.259 0 Td [(an)-268(in)28(teger)-268(v)56(alue)-268(sp)-28(eci\014ng)-267(ho)27(w)-267(to)-268(handle)-268(duplicates)-268(\050see)-268(Named)-267(Constan)27(ts)]TJ -2.352 -11.955 Td [(b)-28(elo)28(w\051)]TJ
+/F27 9.9626 Tf -33.797 -19.47 Td [(On)-383(En)32(try)]TJ
0 g 0 G
-/F27 9.9626 Tf -24.907 -21.446 Td [(On)-383(Return)]TJ
0 g 0 G
+ 0 -19.47 Td [(a)]TJ
0 g 0 G
- 0 -19.737 Td [(b,a)]TJ
+/F8 9.9626 Tf 10.551 0 Td [(the)-333(sparse)-334(matrix)]TJ 14.355 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ
0 g 0 G
-/F8 9.9626 Tf 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
+ -57.285 -32.735 Td [(On)-383(Return)]TJ
0 g 0 G
-/F27 9.9626 Tf -185.305 -19.737 Td [(info)]TJ
0 g 0 G
-/F8 9.9626 Tf 23.758 0 Td [(Return)-333(co)-28(de.)]TJ -23.758 -21.446 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.815 Td [(csclip)-383(|)-384(Reduce)-383(to)-383(a)-384(submatrix)]TJ
+ 0 -19.47 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.955 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 -25.7 Td [(is)]TJ
+ET
+q
+1 0 0 1 159.094 526.404 cm
+[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S
+Q
+BT
+/F27 9.9626 Tf 162.531 526.205 Td [(bld,)-383(is)]TJ
+ET
+q
+1 0 0 1 193.834 526.404 cm
+[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S
+Q
+BT
+/F27 9.9626 Tf 197.271 526.205 Td [(up)-32(d,)-383(is)]TJ
+ET
+q
+1 0 0 1 232.075 526.404 cm
+[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S
+Q
+BT
+/F27 9.9626 Tf 235.512 526.205 Td [(asb)-383(|)-384(Status)-383(c)32(hec)32(k)]TJ
+0 g 0 G
+0 g 0 G
+/F30 9.9626 Tf -84.807 -18.39 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 -20.78 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.47 Td [(On)-383(En)32(try)]TJ
+0 g 0 G
+0 g 0 G
+ 0 -19.47 Td [(a)]TJ
+0 g 0 G
+/F8 9.9626 Tf 10.551 0 Td [(the)-333(sparse)-334(matrix)]TJ 14.356 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.378 0 Td [(lo)-32(cal)]TJ
+0 g 0 G
+ -57.285 -32.735 Td [(On)-383(Return)]TJ
+0 g 0 G
+0 g 0 G
+ 0 -19.47 Td [(F)96(unction)-384(v)64(alue)]TJ
+0 g 0 G
+/F8 9.9626 Tf 78.386 0 Td [(A)]TJ/F30 9.9626 Tf 9.728 0 Td [(logical)]TJ/F8 9.9626 Tf 38.869 0 Td [(v)56(alue)-227(indicating)-226(whether)-227(the)-226(m)-1(atr)1(ix)-227(is)-227(in)-226(the)-227(Build)1(,)]TJ -102.076 -11.955 Td [(Up)-28(date)-333(or)-333(Assem)27(bled)-333(state,)-333(resp)-28(ectiv)28(e)-1(l)1(y)83(.)]TJ/F27 9.9626 Tf -24.907 -25.7 Td [(is)]TJ
+ET
+q
+1 0 0 1 159.094 322.57 cm
+[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S
+Q
+BT
+/F27 9.9626 Tf 162.531 322.37 Td [(lo)32(w)32(er,)-383(i)-1(s)]TJ
+ET
+q
+1 0 0 1 204.44 322.57 cm
+[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S
+Q
+BT
+/F27 9.9626 Tf 207.877 322.37 Td [(upp)-32(er,)-383(is)]TJ
+ET
+q
+1 0 0 1 252.65 322.57 cm
+[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S
+Q
+BT
+/F27 9.9626 Tf 256.087 322.37 Td [(triangle,)-384(is)]TJ
+ET
+q
+1 0 0 1 309.931 322.57 cm
+[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S
+Q
+BT
+/F27 9.9626 Tf 313.368 322.37 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 -18.389 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 -20.78 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.47 Td [(On)-383(En)32(try)]TJ
+0 g 0 G
+0 g 0 G
+ 0 -19.47 Td [(a)]TJ
+0 g 0 G
+/F8 9.9626 Tf 10.551 0 Td [(the)-333(sparse)-334(matrix)]TJ 14.356 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.378 0 Td [(lo)-32(cal)]TJ
+0 g 0 G
+ -57.285 -32.735 Td [(On)-383(Return)]TJ
+0 g 0 G
+0 g 0 G
+ 0 -19.47 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.849 -11.955 Td [(if)]TJ/F30 9.9626 Tf 8.895 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.629 -11.955 Td [(a)-333(unit)-334(\050i)1(.e)-1(.)-444(assumed\051)-333(diagonal.)]TJ
+0 g 0 G
+ 141.967 -29.888 Td [(18)]TJ
+0 g 0 G
+ET
+
+endstream
+endobj
+920 0 obj
+<<
+/Length 4390
+>>
+stream
+0 g 0 G
+0 g 0 G
+BT
+/F27 9.9626 Tf 99.895 706.129 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
+0 g 0 G
+0 g 0 G
+/F30 9.9626 Tf 0 -18.389 Td [(call)-1050(a%cscnv\050b,info)-525([,)-525(type,)-525(mold,)-525(dupl]\051)]TJ 0 -11.956 Td [(call)-1050(a%cscnv\050info)-525([,)-525(type,)-525(mold,)-525(dupl]\051)]TJ
+0 g 0 G
+/F27 9.9626 Tf 0 -21.446 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.737 Td [(On)-383(En)32(try)]TJ
+0 g 0 G
+0 g 0 G
+ 0 -19.736 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.956 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf 23.073 0 Td [(.)]TJ
+0 g 0 G
+/F27 9.9626 Tf -80.359 -31.691 Td [(t)32(yp)-32(e)]TJ
+0 g 0 G
+/F8 9.9626 Tf 27.1 0 Td [(a)-333(string)-334(requesting)-333(a)-333(new)-334(format.)]TJ -2.193 -11.956 Td [(T)28(yp)-28(e:)-444(optional.)]TJ
+0 g 0 G
+/F27 9.9626 Tf -24.907 -19.736 Td [(mold)]TJ
+0 g 0 G
+/F8 9.9626 Tf 29.805 0 Td [(a)-312(v)56(ariable)-312(of)]TJ/F30 9.9626 Tf 56.396 0 Td [(class\050psb_T_base_sparse_mat\051)]TJ/F8 9.9626 Tf 149.557 0 Td [(requesting)-312(a)-312(new)-312(format.)]TJ -210.851 -11.955 Td [(T)28(yp)-28(e:)-444(optional.)]TJ
+0 g 0 G
+/F27 9.9626 Tf -24.907 -19.737 Td [(dupl)]TJ
+0 g 0 G
+/F8 9.9626 Tf 27.259 0 Td [(an)-268(in)28(teger)-268(v)56(alue)-268(sp)-28(eci\014ng)-267(ho)27(w)-267(to)-268(handle)-268(duplicates)-268(\050see)-268(Named)-267(Constan)27(ts)]TJ -2.352 -11.955 Td [(b)-28(elo)28(w\051)]TJ
+0 g 0 G
+/F27 9.9626 Tf -24.907 -21.446 Td [(On)-383(Return)]TJ
+0 g 0 G
+0 g 0 G
+ 0 -19.737 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.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
+0 g 0 G
+/F27 9.9626 Tf -185.305 -19.737 Td [(info)]TJ
+0 g 0 G
+/F8 9.9626 Tf 23.758 0 Td [(Return)-333(co)-28(de.)]TJ -23.758 -21.446 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.815 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.922 -18.389 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 -21.447 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.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
@@ -6903,7 +6912,7 @@ ET
endstream
endobj
-920 0 obj
+925 0 obj
<<
/Length 3769
>>
@@ -6990,7 +6999,7 @@ ET
endstream
endobj
-924 0 obj
+929 0 obj
<<
/Length 4823
>>
@@ -7079,7 +7088,7 @@ ET
endstream
endobj
-928 0 obj
+933 0 obj
<<
/Length 4738
>>
@@ -7181,7 +7190,7 @@ ET
endstream
endobj
-934 0 obj
+939 0 obj
<<
/Length 7666
>>
@@ -7432,7 +7441,7 @@ ET
endstream
endobj
-940 0 obj
+945 0 obj
<<
/Length 3183
>>
@@ -7517,7 +7526,7 @@ ET
endstream
endobj
-946 0 obj
+951 0 obj
<<
/Length 3935
>>
@@ -7591,7 +7600,7 @@ ET
endstream
endobj
-954 0 obj
+959 0 obj
<<
/Length 5381
>>
@@ -7720,7 +7729,7 @@ ET
endstream
endobj
-961 0 obj
+966 0 obj
<<
/Length 758
>>
@@ -7754,7 +7763,7 @@ ET
endstream
endobj
-965 0 obj
+970 0 obj
<<
/Length 158
>>
@@ -7770,7 +7779,7 @@ ET
endstream
endobj
-976 0 obj
+981 0 obj
<<
/Length 7361
>>
@@ -7951,7 +7960,7 @@ ET
endstream
endobj
-982 0 obj
+987 0 obj
<<
/Length 2655
>>
@@ -8025,9 +8034,9 @@ ET
endstream
endobj
-992 0 obj
+996 0 obj
<<
-/Length 7903
+/Length 7700
>>
stream
0 g 0 G
@@ -8040,99 +8049,99 @@ q
[]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 -20.45 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 -20.451 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 -20.451 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
+/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 -20.451 Td [(psb_gedot\050x,)-525(y,)-525(desc_a,)-525(info\051)]TJ
+/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 571.704 cm
+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 563.136 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
+/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 559.35 cm
+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 550.783 Td [(Short)-333(Precision)-334(Real)-3102(psb)]TJ
+/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 550.982 cm
+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 550.783 Td [(gedot)]TJ -138.996 -11.956 Td [(Long)-333(Precision)-334(Real)-3314(psb)]TJ
+/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 539.027 cm
+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 538.827 Td [(gedot)]TJ -138.996 -11.955 Td [(Short)-333(Precision)-334(Complex)-1200(psb)]TJ
+/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 527.071 cm
+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 526.872 Td [(gedot)]TJ -138.996 -11.955 Td [(Long)-333(Precision)-334(Complex)-1411(psb)]TJ
+/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 515.116 cm
+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 514.917 Td [(gedot)]TJ
+/F8 9.9626 Tf 328.638 510.386 Td [(gedot)]TJ
ET
q
-1 0 0 1 183.665 511.131 cm
+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 483.092 Td [(T)83(able)-333(2:)-444(Data)-334(t)28(yp)-28(es)]TJ
+/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 -31.542 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 -19.339 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 -19.338 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.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
+/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 365.251 cm
+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 365.052 Td [(T)]TJ
+/F30 9.9626 Tf 389.002 358.675 Td [(T)]TJ
ET
q
-1 0 0 1 394.86 365.251 cm
+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 365.052 Td [(vect)]TJ
+/F30 9.9626 Tf 397.998 358.675 Td [(vect)]TJ
ET
q
-1 0 0 1 419.547 365.251 cm
+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 365.052 Td [(type)]TJ
+/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
@@ -8140,32 +8149,32 @@ BT
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.339 Td [(y)]TJ
+/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.955 Td [(In)28(ten)28(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
+/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 274.182 cm
+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 273.982 Td [(T)]TJ
+/F30 9.9626 Tf 389.002 267.27 Td [(T)]TJ
ET
q
-1 0 0 1 394.86 274.182 cm
+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 273.982 Td [(vect)]TJ
+/F30 9.9626 Tf 397.998 267.27 Td [(vect)]TJ
ET
q
-1 0 0 1 419.547 274.182 cm
+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 273.982 Td [(type)]TJ
+/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
@@ -8173,418 +8182,302 @@ BT
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.338 Td [(desc)]TJ
+/F27 9.9626 Tf -84.067 -19.674 Td [(desc)]TJ
ET
q
-1 0 0 1 121.81 230.933 cm
+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 230.734 Td [(a)]TJ
+/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.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
+/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 183.112 cm
+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 182.913 Td [(desc)]TJ
+/F30 9.9626 Tf 279.917 175.865 Td [(desc)]TJ
ET
q
-1 0 0 1 301.466 183.112 cm
+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 182.913 Td [(type)]TJ
+/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.339 Td [(On)-383(Return)]TJ
-0 g 0 G
-0 g 0 G
- 0 -19.338 Td [(F)96(unction)-384(v)64(alue)]TJ
-0 g 0 G
-/F8 9.9626 Tf 78.387 0 Td [(is)-333(the)-334(dot)-333(pro)-28(duct)-333(of)-333(sub)28(v)27(ectors)]TJ/F11 9.9626 Tf 142.189 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 -229.297 -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(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
+/F27 9.9626 Tf -225.631 -19.674 Td [(global)]TJ
0 g 0 G
- [(.)]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.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
- 141.968 -29.888 Td [(31)]TJ
+ 71.78 -29.888 Td [(31)]TJ
0 g 0 G
ET
endstream
endobj
-998 0 obj
+1003 0 obj
<<
-/Length 625
+/Length 5114
>>
stream
0 g 0 G
0 g 0 G
-0 g 0 G
BT
-/F27 9.9626 Tf 150.705 706.129 Td [(info)]TJ
-0 g 0 G
-/F8 9.9626 Tf 23.758 0 Td [(Error)-333(co)-28(de.)]TJ 1.148 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.612 0 Td [(required)]TJ/F8 9.9626 Tf -29.612 -11.956 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(out)]TJ/F8 9.9626 Tf 16.549 0 Td [(.)]TJ -50.035 -11.955 Td [(An)-333(in)27(t)1(e)-1(ger)-333(v)56(alue;)-334(0)-333(means)-333(no)-334(error)-333(has)-333(b)-28(een)-333(detec)-1(ted.)]TJ
+/F8 9.9626 Tf 175.611 706.129 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.548 0 Td [(.)]TJ -43.034 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(logical)-333(scalar.)-445(Default:)]TJ/F30 9.9626 Tf 168.812 0 Td [(global=.true.)]TJ
0 g 0 G
- 141.968 -567.87 Td [(32)]TJ
+/F27 9.9626 Tf -193.718 -31.881 Td [(On)-383(Return)]TJ
0 g 0 G
-ET
-
-endstream
-endobj
-1008 0 obj
-<<
-/Length 8468
->>
-stream
0 g 0 G
+ 0 -19.925 Td [(F)96(unction)-384(v)64(alue)]TJ
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 [(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
+/F8 9.9626 Tf 78.386 0 Td [(is)-333(the)-334(dot)-333(pro)-28(duct)-333(of)-333(v)28(e)-1(ctors)]TJ/F11 9.9626 Tf 127.467 0 Td [(x)]TJ/F8 9.9626 Tf 9.014 0 Td [(and)]TJ/F11 9.9626 Tf 19.372 0 Td [(y)]TJ/F8 9.9626 Tf 5.242 0 Td [(.)]TJ -214.575 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 31.841 0 Td [(global)]TJ/F8 9.9626 Tf 32.002 0 Td [(unless)-225(the)-226(optional)-225(v)55(ariable)]TJ/F30 9.9626 Tf 118.434 0 Td [(global=.false.)]TJ/F8 9.9626 Tf 75.471 0 Td [(has)-225(b)-28(een)-226(sp)-27(ec-)]TJ -257.748 -11.955 Td [(i\014ed)]TJ 0 -11.956 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(n)28(um)28(b)-28(er)-333(of)-334(the)-333(data)-333(t)27(yp)-27(e)-334(indicated)-333(in)-333(T)83(able)]TJ
+0 0 1 rg 0 0 1 RG
+ [-333(2)]TJ
0 g 0 G
+ [(.)]TJ
0 g 0 G
-/F30 9.9626 Tf 0 -18.175 Td [(call)-525(psb_gedots\050res,)-525(x,)-525(y,)-525(desc_a,)-525(info\051)]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.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(out)]TJ/F8 9.9626 Tf 16.549 0 Td [(.)]TJ -50.035 -11.956 Td [(An)-333(in)28(te)-1(ger)-333(v)56(alue;)-334(0)-333(means)-333(no)-334(error)-333(has)-333(b)-28(een)-333(detec)-1(ted.)]TJ/F16 11.9552 Tf -24.906 -21.917 Td [(Notes)]TJ
0 g 0 G
+/F8 9.9626 Tf 12.176 -19.926 Td [(1.)]TJ
0 g 0 G
+ [-500(The)-241(computation)-240(of)-241(a)-241(gl)1(obal)-241(result)-241(requires)-240(a)-241(global)-241(comm)28(unication,)-259(whic)28(h)]TJ 12.73 -11.955 Td [(en)28(tails)-421(a)-420(s)-1(i)1(gni\014can)27(t)-420(o)28(v)27(erhead.)-706(It)-420(ma)27(y)-420(b)-28(e)-421(necessary)-420(and/or)-421(advisable)-420(to)]TJ 0 -11.955 Td [(compute)-265(m)27(ultiple)-265(dot)-265(pro)-28(ducts)-265(at)-266(the)-265(same)-266(time;)-288(in)-265(this)-265(case,)-279(it)-266(is)-265(p)-28(ossible)]TJ 0 -11.955 Td [(to)-333(impro)27(v)28(e)-333(the)-333(run)27(time)-333(e\016ciency)-333(b)27(y)-333(using)-333(the)-334(f)1(ollo)27(wing)-333(sc)28(heme:)]TJ 25.19 -17.933 Td [(v)-128(r)-129(e)-128(s)-259(\050)-130(1)-131(\051)-642(=)-625(p)-115(s)-114(b)]TJ
ET
q
-1 0 0 1 177.988 586.966 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
-ET
-q
-1 0 0 1 177.988 574.612 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
-ET
-q
-1 0 0 1 319.972 566.244 cm
+1 0 0 1 279.461 443.314 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 283.591 443.115 Td [(g)-115(e)-114(d)-115(o)-114(t)-220(\050)-149(x)-43(1)-247(,)-204(y)-43(1)-248(,)-273(d)-113(e)-113(s)-112(c)]TJ
ET
q
-1 0 0 1 319.972 554.289 cm
+1 0 0 1 379.47 443.314 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 383.581 443.115 Td [(a)-386(,)-288(i)-127(n)-127(f)-127(o)-415(,)-302(g)-141(l)-142(o)-141(b)-141(a)-141(l)-190(=)-48(.)]TJ/F27 9.9626 Tf 92.224 0 Td [(f)-132(a)-131(l)-132(s)-131(e)]TJ/F8 9.9626 Tf 30.348 0 Td [(.)-178(\051)]TJ -305.352 -11.955 Td [(v)-128(r)-129(e)-128(s)-259(\050)-130(2)-131(\051)-642(=)-625(p)-115(s)-114(b)]TJ
ET
q
-1 0 0 1 319.972 542.333 cm
+1 0 0 1 279.461 431.359 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 283.591 431.16 Td [(g)-115(e)-114(d)-115(o)-114(t)-220(\050)-149(x)-43(2)-247(,)-204(y)-43(2)-248(,)-273(d)-113(e)-113(s)-112(c)]TJ
ET
q
-1 0 0 1 319.972 530.378 cm
+1 0 0 1 379.47 431.359 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
-ET
-q
-1 0 0 1 177.988 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 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 -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 -18.428 Td [(On)-383(En)32(try)]TJ
-0 g 0 G
-0 g 0 G
- 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
-0 0 1 rg 0 0 1 RG
-/F30 9.9626 Tf 244.743 0 Td [(psb)]TJ
+/F8 9.9626 Tf 383.581 431.16 Td [(a)-386(,)-288(i)-127(n)-127(f)-127(o)-415(,)-302(g)-141(l)-142(o)-141(b)-141(a)-141(l)-190(=)-48(.)]TJ/F27 9.9626 Tf 92.224 0 Td [(f)-132(a)-131(l)-132(s)-131(e)]TJ/F8 9.9626 Tf 30.348 0 Td [(.)-178(\051)]TJ -305.352 -11.955 Td [(v)-128(r)-129(e)-128(s)-259(\050)-130(3)-131(\051)-642(=)-625(p)-115(s)-114(b)]TJ
ET
q
-1 0 0 1 385.864 385.52 cm
-[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S
+1 0 0 1 279.461 419.404 cm
+[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S
Q
BT
-/F30 9.9626 Tf 389.002 385.321 Td [(T)]TJ
+/F8 9.9626 Tf 283.591 419.205 Td [(g)-115(e)-114(d)-115(o)-114(t)-220(\050)-149(x)-43(3)-247(,)-204(y)-43(3)-248(,)-273(d)-113(e)-113(s)-112(c)]TJ
ET
q
-1 0 0 1 394.86 385.52 cm
-[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S
+1 0 0 1 379.47 419.404 cm
+[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S
Q
BT
-/F30 9.9626 Tf 397.998 385.321 Td [(vect)]TJ
+/F8 9.9626 Tf 383.581 419.205 Td [(a)-386(,)-288(i)-127(n)-127(f)-127(o)-415(,)-302(g)-141(l)-142(o)-141(b)-141(a)-141(l)-190(=)-48(.)]TJ/F27 9.9626 Tf 92.224 0 Td [(f)-132(a)-131(l)-132(s)-131(e)]TJ/F8 9.9626 Tf 30.348 0 Td [(.)-178(\051)]TJ/F27 9.9626 Tf -305.254 -11.955 Td [(c)-138(a)-138(l)-139(l)]TJ/F8 9.9626 Tf 29.198 0 Td [(p)-69(s)-69(b)]TJ
ET
q
-1 0 0 1 419.547 385.52 cm
-[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S
+1 0 0 1 247.753 407.449 cm
+[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S
Q
BT
-/F30 9.9626 Tf 422.685 385.321 Td [(type)]TJ
+/F8 9.9626 Tf 251.428 407.25 Td [(s)-69(u)-69(m)-174(\050)-245(i)-139(c)-139(t)-138(x)-139(t)-439(,)-290(v)-128(r)-128(e)-129(s)-293(\050)-165(1)-165(:)-165(3)-165(\051)-165(\051)]TJ
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(3)]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
+ -75.817 -21.918 Td [(In)-354(th)1(is)-354(w)28(a)28(y)-354(the)-353(global)-354(comm)28(unication,)-359(whic)28(h)-353(for)-354(small)-353(size)-1(s)-353(is)-354(a)-353(latency-)]TJ 0 -11.955 Td [(b)-28(ound)-333(op)-28(eration,)-333(is)-333(in)27(v)28(ok)28(ed)-333(only)-334(once.)]TJ
0 g 0 G
-/F27 9.9626 Tf -83.615 -18.428 Td [(y)]TJ
-0 g 0 G
-/F8 9.9626 Tf 11.028 0 Td [(the)-333(lo)-28(cal)-333(p)-28(ortion)-333(of)-334(global)-333(dense)-333(matrix)]TJ/F11 9.9626 Tf 176.118 0 Td [(y)]TJ/F8 9.9626 Tf 5.242 0 Td [(.)]TJ -167.481 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-255(as:)-405(a)-255(rank)-254(one)-255(or)-255(t)28(w)27(o)-254(arra)27(y)-254(or)-255(an)-255(ob)-55(jec)-1(t)-254(of)-255(t)28(yp)-28(e)]TJ
-0 0 1 rg 0 0 1 RG
-/F30 9.9626 Tf 244.743 0 Td [(psb)]TJ
-ET
-q
-1 0 0 1 385.864 295.361 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
-ET
-q
-1 0 0 1 394.86 295.361 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
-ET
-q
-1 0 0 1 419.547 295.361 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
-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(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.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
-0 g 0 G
-/F27 9.9626 Tf -84.067 -18.428 Td [(desc)]TJ
-ET
-q
-1 0 0 1 121.81 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 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.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
-[]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
-ET
-q
-1 0 0 1 301.466 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 205.003 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
-0 g 0 G
-0 g 0 G
- 0 -18.428 Td [(res)]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(sub)28(v)27(ectors)]TJ/F11 9.9626 Tf 142.19 0 Td [(x)]TJ/F8 9.9626 Tf 9.014 0 Td [(and)]TJ/F11 9.9626 Tf 19.372 0 Td [(y)]TJ/F8 9.9626 Tf 5.242 0 Td [(.)]TJ -170.381 -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
-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
+ 141.968 -282.939 Td [(32)]TJ
0 g 0 G
ET
endstream
endobj
-912 0 obj
+913 0 obj
<<
/Type /ObjStm
/N 100
-/First 886
-/Length 10464
+/First 888
+/Length 10167
>>
stream
-911 0 119 57 123 114 127 170 908 227 914 319 916 433 131 489 135 545 913 601
-919 693 921 807 139 864 143 920 918 976 923 1068 925 1182 147 1238 151 1294 922 1350
-927 1442 929 1556 155 1613 159 1670 163 1727 926 1784 933 1876 930 2018 931 2165 935 2311
-167 2367 171 2423 936 2479 932 2536 939 2641 941 2755 937 2812 175 2869 179 2926 183 2983
-187 3040 938 3097 945 3189 942 3331 943 3476 947 3621 191 3677 944 3733 953 3825 950 3967
-951 4113 955 4260 195 4317 199 4374 956 4430 958 4487 204 4544 952 4601 960 4719 962 4833
-959 4889 964 4968 966 5082 208 5139 963 5196 975 5275 967 5449 968 5594 969 5737 970 5882
-971 6027 972 6170 977 6315 212 6371 949 6427 974 6483 981 6614 973 6764 978 6910 979 7052
-983 7197 980 7254 991 7359 984 7533 985 7676 986 7821 987 7964 988 8109 989 8255 993 8399
-216 8455 994 8511 990 8568 997 8712 999 8826 996 8883 1007 8962 1000 9145 1001 9289 1002 9434
-% 911 0 obj
+115 0 908 56 915 148 917 262 119 319 123 376 127 432 914 489 919 581 921 695
+131 751 135 807 918 863 924 955 926 1069 139 1126 143 1182 923 1238 928 1330 930 1444
+147 1500 151 1556 927 1612 932 1704 934 1818 155 1875 159 1932 163 1989 931 2046 938 2138
+935 2280 936 2427 940 2573 167 2629 171 2685 941 2741 937 2798 944 2903 946 3017 942 3074
+175 3131 179 3188 183 3245 187 3302 943 3359 950 3451 947 3593 948 3738 952 3883 191 3939
+949 3995 958 4087 955 4229 956 4375 960 4522 195 4579 199 4636 961 4692 963 4749 204 4806
+957 4863 965 4981 967 5095 964 5151 969 5230 971 5344 208 5401 968 5458 980 5537 972 5711
+973 5856 974 5999 975 6144 976 6289 977 6432 982 6577 212 6633 954 6689 979 6745 986 6876
+978 7026 983 7172 984 7314 988 7459 985 7516 995 7621 989 7787 990 7929 991 8074 992 8216
+993 8360 997 8505 216 8561 998 8617 994 8674 1002 8818 1000 8956 1004 9102 1005 9161 1006 9220
+% 115 0 obj
<<
-/D [909 0 R /XYZ 149.705 753.953 null]
+/D [909 0 R /XYZ 99.895 279.894 null]
+>>
+% 908 0 obj
+<<
+/Font << /F27 560 0 R /F30 769 0 R /F8 561 0 R >>
+/ProcSet [ /PDF /Text ]
+>>
+% 915 0 obj
+<<
+/Type /Page
+/Contents 916 0 R
+/Resources 914 0 R
+/MediaBox [0 0 595.276 841.89]
+/Parent 887 0 R
+>>
+% 917 0 obj
+<<
+/D [915 0 R /XYZ 149.705 753.953 null]
>>
% 119 0 obj
<<
-/D [909 0 R /XYZ 150.705 718.084 null]
+/D [915 0 R /XYZ 150.705 718.084 null]
>>
% 123 0 obj
<<
-/D [909 0 R /XYZ 150.705 538.16 null]
+/D [915 0 R /XYZ 150.705 538.16 null]
>>
% 127 0 obj
<<
-/D [909 0 R /XYZ 150.705 334.326 null]
+/D [915 0 R /XYZ 150.705 334.326 null]
>>
-% 908 0 obj
+% 914 0 obj
<<
-/Font << /F27 556 0 R /F30 764 0 R /F8 557 0 R >>
+/Font << /F27 560 0 R /F30 769 0 R /F8 561 0 R >>
/ProcSet [ /PDF /Text ]
>>
-% 914 0 obj
+% 919 0 obj
<<
/Type /Page
-/Contents 915 0 R
-/Resources 913 0 R
+/Contents 920 0 R
+/Resources 918 0 R
/MediaBox [0 0 595.276 841.89]
-/Parent 917 0 R
+/Parent 922 0 R
>>
-% 916 0 obj
+% 921 0 obj
<<
-/D [914 0 R /XYZ 98.895 753.953 null]
+/D [919 0 R /XYZ 98.895 753.953 null]
>>
% 131 0 obj
<<
-/D [914 0 R /XYZ 99.895 718.084 null]
+/D [919 0 R /XYZ 99.895 718.084 null]
>>
% 135 0 obj
<<
-/D [914 0 R /XYZ 99.895 363.788 null]
+/D [919 0 R /XYZ 99.895 363.788 null]
>>
-% 913 0 obj
+% 918 0 obj
<<
-/Font << /F27 556 0 R /F30 764 0 R /F8 557 0 R >>
+/Font << /F27 560 0 R /F30 769 0 R /F8 561 0 R >>
/ProcSet [ /PDF /Text ]
>>
-% 919 0 obj
+% 924 0 obj
<<
/Type /Page
-/Contents 920 0 R
-/Resources 918 0 R
+/Contents 925 0 R
+/Resources 923 0 R
/MediaBox [0 0 595.276 841.89]
-/Parent 917 0 R
+/Parent 922 0 R
>>
-% 921 0 obj
+% 926 0 obj
<<
-/D [919 0 R /XYZ 149.705 753.953 null]
+/D [924 0 R /XYZ 149.705 753.953 null]
>>
% 139 0 obj
<<
-/D [919 0 R /XYZ 150.705 652.99 null]
+/D [924 0 R /XYZ 150.705 652.99 null]
>>
% 143 0 obj
<<
-/D [919 0 R /XYZ 150.705 364.65 null]
+/D [924 0 R /XYZ 150.705 364.65 null]
>>
-% 918 0 obj
+% 923 0 obj
<<
-/Font << /F27 556 0 R /F8 557 0 R /F30 764 0 R >>
+/Font << /F27 560 0 R /F8 561 0 R /F30 769 0 R >>
/ProcSet [ /PDF /Text ]
>>
-% 923 0 obj
+% 928 0 obj
<<
/Type /Page
-/Contents 924 0 R
-/Resources 922 0 R
+/Contents 929 0 R
+/Resources 927 0 R
/MediaBox [0 0 595.276 841.89]
-/Parent 917 0 R
+/Parent 922 0 R
>>
-% 925 0 obj
+% 930 0 obj
<<
-/D [923 0 R /XYZ 98.895 753.953 null]
+/D [928 0 R /XYZ 98.895 753.953 null]
>>
% 147 0 obj
<<
-/D [923 0 R /XYZ 99.895 718.084 null]
+/D [928 0 R /XYZ 99.895 718.084 null]
>>
% 151 0 obj
<<
-/D [923 0 R /XYZ 99.895 487.217 null]
+/D [928 0 R /XYZ 99.895 487.217 null]
>>
-% 922 0 obj
+% 927 0 obj
<<
-/Font << /F27 556 0 R /F30 764 0 R /F8 557 0 R >>
+/Font << /F27 560 0 R /F30 769 0 R /F8 561 0 R >>
/ProcSet [ /PDF /Text ]
>>
-% 927 0 obj
+% 932 0 obj
<<
/Type /Page
-/Contents 928 0 R
-/Resources 926 0 R
+/Contents 933 0 R
+/Resources 931 0 R
/MediaBox [0 0 595.276 841.89]
-/Parent 917 0 R
+/Parent 922 0 R
>>
-% 929 0 obj
+% 934 0 obj
<<
-/D [927 0 R /XYZ 149.705 753.953 null]
+/D [932 0 R /XYZ 149.705 753.953 null]
>>
% 155 0 obj
<<
-/D [927 0 R /XYZ 150.705 718.084 null]
+/D [932 0 R /XYZ 150.705 718.084 null]
>>
% 159 0 obj
<<
-/D [927 0 R /XYZ 150.705 325.491 null]
+/D [932 0 R /XYZ 150.705 325.491 null]
>>
% 163 0 obj
<<
-/D [927 0 R /XYZ 150.705 193.501 null]
+/D [932 0 R /XYZ 150.705 193.501 null]
>>
-% 926 0 obj
+% 931 0 obj
<<
-/Font << /F27 556 0 R /F30 764 0 R /F8 557 0 R >>
+/Font << /F27 560 0 R /F30 769 0 R /F8 561 0 R >>
/ProcSet [ /PDF /Text ]
>>
-% 933 0 obj
+% 938 0 obj
<<
/Type /Page
-/Contents 934 0 R
-/Resources 932 0 R
+/Contents 939 0 R
+/Resources 937 0 R
/MediaBox [0 0 595.276 841.89]
-/Parent 917 0 R
-/Annots [ 930 0 R 931 0 R ]
+/Parent 922 0 R
+/Annots [ 935 0 R 936 0 R ]
>>
-% 930 0 obj
+% 935 0 obj
<<
/Type /Annot
/Subtype /Link
@@ -8592,7 +8485,7 @@ stream
/Rect [199.382 344.354 206.356 355.203]
/A << /S /GoTo /D (section.6) >>
>>
-% 931 0 obj
+% 936 0 obj
<<
/Type /Annot
/Subtype /Link
@@ -8600,74 +8493,74 @@ stream
/Rect [292.368 307.977 299.342 318.825]
/A << /S /GoTo /D (figure.5) >>
>>
-% 935 0 obj
+% 940 0 obj
<<
-/D [933 0 R /XYZ 98.895 753.953 null]
+/D [938 0 R /XYZ 98.895 753.953 null]
>>
% 167 0 obj
<<
-/D [933 0 R /XYZ 99.895 598.678 null]
+/D [938 0 R /XYZ 99.895 598.678 null]
>>
% 171 0 obj
<<
-/D [933 0 R /XYZ 99.895 414.464 null]
+/D [938 0 R /XYZ 99.895 414.464 null]
>>
-% 936 0 obj
+% 941 0 obj
<<
-/D [933 0 R /XYZ 121.151 383.153 null]
+/D [938 0 R /XYZ 121.151 383.153 null]
>>
-% 932 0 obj
+% 937 0 obj
<<
-/Font << /F27 556 0 R /F8 557 0 R /F16 554 0 R /F30 764 0 R >>
+/Font << /F27 560 0 R /F8 561 0 R /F16 558 0 R /F30 769 0 R >>
/ProcSet [ /PDF /Text ]
>>
-% 939 0 obj
+% 944 0 obj
<<
/Type /Page
-/Contents 940 0 R
-/Resources 938 0 R
+/Contents 945 0 R
+/Resources 943 0 R
/MediaBox [0 0 595.276 841.89]
-/Parent 917 0 R
+/Parent 922 0 R
>>
-% 941 0 obj
+% 946 0 obj
<<
-/D [939 0 R /XYZ 149.705 753.953 null]
+/D [944 0 R /XYZ 149.705 753.953 null]
>>
-% 937 0 obj
+% 942 0 obj
<<
-/D [939 0 R /XYZ 208.488 610.432 null]
+/D [944 0 R /XYZ 208.488 610.432 null]
>>
% 175 0 obj
<<
-/D [939 0 R /XYZ 150.705 576.609 null]
+/D [944 0 R /XYZ 150.705 576.609 null]
>>
% 179 0 obj
<<
-/D [939 0 R /XYZ 150.705 560.207 null]
+/D [944 0 R /XYZ 150.705 560.207 null]
>>
% 183 0 obj
<<
-/D [939 0 R /XYZ 150.705 388.328 null]
+/D [944 0 R /XYZ 150.705 388.328 null]
>>
% 187 0 obj
<<
-/D [939 0 R /XYZ 150.705 216.449 null]
+/D [944 0 R /XYZ 150.705 216.449 null]
>>
-% 938 0 obj
+% 943 0 obj
<<
-/Font << /F30 764 0 R /F8 557 0 R /F27 556 0 R >>
+/Font << /F30 769 0 R /F8 561 0 R /F27 560 0 R >>
/ProcSet [ /PDF /Text ]
>>
-% 945 0 obj
+% 950 0 obj
<<
/Type /Page
-/Contents 946 0 R
-/Resources 944 0 R
+/Contents 951 0 R
+/Resources 949 0 R
/MediaBox [0 0 595.276 841.89]
-/Parent 948 0 R
-/Annots [ 942 0 R 943 0 R ]
+/Parent 953 0 R
+/Annots [ 947 0 R 948 0 R ]
>>
-% 942 0 obj
+% 947 0 obj
<<
/Type /Annot
/Subtype /Link
@@ -8675,7 +8568,7 @@ stream
/Rect [382.088 606.388 389.062 617.237]
/A << /S /GoTo /D (table.1) >>
>>
-% 943 0 obj
+% 948 0 obj
<<
/Type /Annot
/Subtype /Link
@@ -8683,29 +8576,29 @@ stream
/Rect [382.088 460.595 389.062 471.443]
/A << /S /GoTo /D (table.1) >>
>>
-% 947 0 obj
+% 952 0 obj
<<
-/D [945 0 R /XYZ 98.895 753.953 null]
+/D [950 0 R /XYZ 98.895 753.953 null]
>>
% 191 0 obj
<<
-/D [945 0 R /XYZ 99.895 315.722 null]
+/D [950 0 R /XYZ 99.895 315.722 null]
>>
-% 944 0 obj
+% 949 0 obj
<<
-/Font << /F27 556 0 R /F8 557 0 R /F30 764 0 R >>
+/Font << /F27 560 0 R /F8 561 0 R /F30 769 0 R >>
/ProcSet [ /PDF /Text ]
>>
-% 953 0 obj
+% 958 0 obj
<<
/Type /Page
-/Contents 954 0 R
-/Resources 952 0 R
+/Contents 959 0 R
+/Resources 957 0 R
/MediaBox [0 0 595.276 841.89]
-/Parent 948 0 R
-/Annots [ 950 0 R 951 0 R ]
+/Parent 953 0 R
+/Annots [ 955 0 R 956 0 R ]
>>
-% 950 0 obj
+% 955 0 obj
<<
/Type /Annot
/Subtype /Link
@@ -8713,7 +8606,7 @@ stream
/Rect [177.685 453.572 184.659 464.697]
/A << /S /GoTo /D (figure.6) >>
>>
-% 951 0 obj
+% 956 0 obj
<<
/Type /Annot
/Subtype /Link
@@ -8721,83 +8614,83 @@ stream
/Rect [297.652 273.706 304.626 284.554]
/A << /S /GoTo /D (section.6) >>
>>
-% 955 0 obj
+% 960 0 obj
<<
-/D [953 0 R /XYZ 149.705 753.953 null]
+/D [958 0 R /XYZ 149.705 753.953 null]
>>
% 195 0 obj
<<
-/D [953 0 R /XYZ 150.705 718.084 null]
+/D [958 0 R /XYZ 150.705 718.084 null]
>>
% 199 0 obj
<<
-/D [953 0 R /XYZ 150.705 525.15 null]
+/D [958 0 R /XYZ 150.705 525.15 null]
>>
-% 956 0 obj
+% 961 0 obj
<<
-/D [953 0 R /XYZ 308.372 468.737 null]
+/D [958 0 R /XYZ 308.372 468.737 null]
>>
-% 958 0 obj
+% 963 0 obj
<<
-/D [953 0 R /XYZ 206.288 347.218 null]
+/D [958 0 R /XYZ 206.288 347.218 null]
>>
% 204 0 obj
<<
-/D [953 0 R /XYZ 150.705 307.161 null]
+/D [958 0 R /XYZ 150.705 307.161 null]
>>
-% 952 0 obj
+% 957 0 obj
<<
-/Font << /F27 556 0 R /F30 764 0 R /F8 557 0 R /F16 554 0 R /F47 957 0 R >>
+/Font << /F27 560 0 R /F30 769 0 R /F8 561 0 R /F16 558 0 R /F47 962 0 R >>
/ProcSet [ /PDF /Text ]
>>
-% 960 0 obj
+% 965 0 obj
<<
/Type /Page
-/Contents 961 0 R
-/Resources 959 0 R
+/Contents 966 0 R
+/Resources 964 0 R
/MediaBox [0 0 595.276 841.89]
-/Parent 948 0 R
+/Parent 953 0 R
>>
-% 962 0 obj
+% 967 0 obj
<<
-/D [960 0 R /XYZ 98.895 753.953 null]
+/D [965 0 R /XYZ 98.895 753.953 null]
>>
-% 959 0 obj
+% 964 0 obj
<<
-/Font << /F27 556 0 R /F8 557 0 R >>
+/Font << /F27 560 0 R /F8 561 0 R >>
/ProcSet [ /PDF /Text ]
>>
-% 964 0 obj
+% 969 0 obj
<<
/Type /Page
-/Contents 965 0 R
-/Resources 963 0 R
+/Contents 970 0 R
+/Resources 968 0 R
/MediaBox [0 0 595.276 841.89]
-/Parent 948 0 R
+/Parent 953 0 R
>>
-% 966 0 obj
+% 971 0 obj
<<
-/D [964 0 R /XYZ 149.705 753.953 null]
+/D [969 0 R /XYZ 149.705 753.953 null]
>>
% 208 0 obj
<<
-/D [964 0 R /XYZ 150.705 716.092 null]
+/D [969 0 R /XYZ 150.705 716.092 null]
>>
-% 963 0 obj
+% 968 0 obj
<<
-/Font << /F16 554 0 R /F8 557 0 R >>
+/Font << /F16 558 0 R /F8 561 0 R >>
/ProcSet [ /PDF /Text ]
>>
-% 975 0 obj
+% 980 0 obj
<<
/Type /Page
-/Contents 976 0 R
-/Resources 974 0 R
+/Contents 981 0 R
+/Resources 979 0 R
/MediaBox [0 0 595.276 841.89]
-/Parent 948 0 R
-/Annots [ 967 0 R 968 0 R 969 0 R 970 0 R 971 0 R 972 0 R ]
+/Parent 953 0 R
+/Annots [ 972 0 R 973 0 R 974 0 R 975 0 R 976 0 R 977 0 R ]
>>
-% 967 0 obj
+% 972 0 obj
<<
/Type /Annot
/Subtype /Link
@@ -8805,7 +8698,7 @@ stream
/Rect [382.088 401.949 389.062 412.798]
/A << /S /GoTo /D (table.1) >>
>>
-% 968 0 obj
+% 973 0 obj
<<
/Type /Annot
/Subtype /Link
@@ -8813,7 +8706,7 @@ stream
/Rect [368.549 333.522 444.603 344.647]
/A << /S /GoTo /D (vdata) >>
>>
-% 969 0 obj
+% 974 0 obj
<<
/Type /Annot
/Subtype /Link
@@ -8821,7 +8714,7 @@ stream
/Rect [328.333 321.844 335.307 332.692]
/A << /S /GoTo /D (table.1) >>
>>
-% 970 0 obj
+% 975 0 obj
<<
/Type /Annot
/Subtype /Link
@@ -8829,7 +8722,7 @@ stream
/Rect [382.088 241.738 389.062 252.586]
/A << /S /GoTo /D (table.1) >>
>>
-% 971 0 obj
+% 976 0 obj
<<
/Type /Annot
/Subtype /Link
@@ -8837,7 +8730,7 @@ stream
/Rect [368.549 173.311 444.603 184.436]
/A << /S /GoTo /D (vdata) >>
>>
-% 972 0 obj
+% 977 0 obj
<<
/Type /Annot
/Subtype /Link
@@ -8845,33 +8738,33 @@ stream
/Rect [345.625 161.632 352.599 172.481]
/A << /S /GoTo /D (table.1) >>
>>
-% 977 0 obj
+% 982 0 obj
<<
-/D [975 0 R /XYZ 98.895 753.953 null]
+/D [980 0 R /XYZ 98.895 753.953 null]
>>
% 212 0 obj
<<
-/D [975 0 R /XYZ 99.895 720.077 null]
+/D [980 0 R /XYZ 99.895 720.077 null]
>>
-% 949 0 obj
+% 954 0 obj
<<
-/D [975 0 R /XYZ 267.641 539.42 null]
+/D [980 0 R /XYZ 267.641 539.42 null]
>>
-% 974 0 obj
+% 979 0 obj
<<
-/Font << /F16 554 0 R /F8 557 0 R /F11 750 0 R /F14 767 0 R /F30 764 0 R /F27 556 0 R >>
+/Font << /F16 558 0 R /F8 561 0 R /F11 755 0 R /F14 772 0 R /F30 769 0 R /F27 560 0 R >>
/ProcSet [ /PDF /Text ]
>>
-% 981 0 obj
+% 986 0 obj
<<
/Type /Page
-/Contents 982 0 R
-/Resources 980 0 R
+/Contents 987 0 R
+/Resources 985 0 R
/MediaBox [0 0 595.276 841.89]
-/Parent 948 0 R
-/Annots [ 973 0 R 978 0 R 979 0 R ]
+/Parent 953 0 R
+/Annots [ 978 0 R 983 0 R 984 0 R ]
>>
-% 973 0 obj
+% 978 0 obj
<<
/Type /Annot
/Subtype /Link
@@ -8879,7 +8772,7 @@ stream
/Rect [310.273 679.008 377.331 690.133]
/A << /S /GoTo /D (descdata) >>
>>
-% 978 0 obj
+% 983 0 obj
<<
/Type /Annot
/Subtype /Link
@@ -8887,7 +8780,7 @@ stream
/Rect [419.358 589.345 495.412 600.47]
/A << /S /GoTo /D (vdata) >>
>>
-% 979 0 obj
+% 984 0 obj
<<
/Type /Annot
/Subtype /Link
@@ -8895,164 +8788,116 @@ stream
/Rect [396.367 577.666 403.341 588.514]
/A << /S /GoTo /D (table.1) >>
>>
-% 983 0 obj
+% 988 0 obj
<<
-/D [981 0 R /XYZ 149.705 753.953 null]
+/D [986 0 R /XYZ 149.705 753.953 null]
>>
-% 980 0 obj
+% 985 0 obj
<<
-/Font << /F8 557 0 R /F27 556 0 R /F30 764 0 R /F11 750 0 R >>
+/Font << /F8 561 0 R /F27 560 0 R /F30 769 0 R /F11 755 0 R >>
/ProcSet [ /PDF /Text ]
>>
-% 991 0 obj
+% 995 0 obj
<<
/Type /Page
-/Contents 992 0 R
-/Resources 990 0 R
+/Contents 996 0 R
+/Resources 994 0 R
/MediaBox [0 0 595.276 841.89]
-/Parent 995 0 R
-/Annots [ 984 0 R 985 0 R 986 0 R 987 0 R 988 0 R 989 0 R ]
+/Parent 999 0 R
+/Annots [ 989 0 R 990 0 R 991 0 R 992 0 R 993 0 R ]
>>
-% 984 0 obj
+% 989 0 obj
<<
/Type /Annot
/Subtype /Link
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [368.549 361.842 444.603 372.967]
+/Rect [368.549 355.465 444.603 366.59]
/A << /S /GoTo /D (vdata) >>
>>
-% 985 0 obj
+% 990 0 obj
<<
/Type /Annot
/Subtype /Link
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [328.333 350.163 335.307 361.011]
+/Rect [328.333 343.787 335.307 354.635]
/A << /S /GoTo /D (table.2) >>
>>
-% 986 0 obj
+% 991 0 obj
<<
/Type /Annot
/Subtype /Link
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [368.549 270.772 444.603 281.897]
+/Rect [368.549 264.06 444.603 275.185]
/A << /S /GoTo /D (vdata) >>
>>
-% 987 0 obj
+% 992 0 obj
<<
/Type /Annot
/Subtype /Link
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [328.544 259.094 335.518 269.942]
+/Rect [328.544 252.382 335.518 263.23]
/A << /S /GoTo /D (table.2) >>
>>
-% 988 0 obj
+% 993 0 obj
<<
/Type /Annot
/Subtype /Link
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [259.464 179.703 326.522 190.828]
+/Rect [259.464 172.655 326.522 183.78]
/A << /S /GoTo /D (descdata) >>
>>
-% 989 0 obj
-<<
-/Type /Annot
-/Subtype /Link
-/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [382.088 117.392 389.062 128.24]
-/A << /S /GoTo /D (table.2) >>
->>
-% 993 0 obj
+% 997 0 obj
<<
-/D [991 0 R /XYZ 98.895 753.953 null]
+/D [995 0 R /XYZ 98.895 753.953 null]
>>
% 216 0 obj
<<
-/D [991 0 R /XYZ 99.895 720.077 null]
->>
-% 994 0 obj
-<<
-/D [991 0 R /XYZ 267.641 495.047 null]
->>
-% 990 0 obj
-<<
-/Font << /F16 554 0 R /F8 557 0 R /F11 750 0 R /F14 767 0 R /F10 766 0 R /F30 764 0 R /F27 556 0 R >>
-/ProcSet [ /PDF /Text ]
->>
-% 997 0 obj
-<<
-/Type /Page
-/Contents 998 0 R
-/Resources 996 0 R
-/MediaBox [0 0 595.276 841.89]
-/Parent 995 0 R
+/D [995 0 R /XYZ 99.895 720.077 null]
>>
-% 999 0 obj
+% 998 0 obj
<<
-/D [997 0 R /XYZ 149.705 753.953 null]
+/D [995 0 R /XYZ 267.641 490.516 null]
>>
-% 996 0 obj
+% 994 0 obj
<<
-/Font << /F27 556 0 R /F8 557 0 R >>
+/Font << /F16 558 0 R /F8 561 0 R /F11 755 0 R /F14 772 0 R /F10 771 0 R /F30 769 0 R /F27 560 0 R >>
/ProcSet [ /PDF /Text ]
>>
-% 1007 0 obj
+% 1002 0 obj
<<
/Type /Page
-/Contents 1008 0 R
-/Resources 1006 0 R
+/Contents 1003 0 R
+/Resources 1001 0 R
/MediaBox [0 0 595.276 841.89]
-/Parent 995 0 R
-/Annots [ 1000 0 R 1001 0 R 1002 0 R 1003 0 R 1004 0 R 1005 0 R ]
+/Parent 999 0 R
+/Annots [ 1000 0 R ]
>>
% 1000 0 obj
<<
/Type /Annot
/Subtype /Link
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [368.549 382.111 444.603 393.236]
-/A << /S /GoTo /D (vdata) >>
+/Rect [432.897 603.569 439.871 614.417]
+/A << /S /GoTo /D (table.2) >>
>>
-% 1001 0 obj
+% 1004 0 obj
<<
-/Type /Annot
-/Subtype /Link
-/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [328.333 370.432 335.307 381.28]
-/A << /S /GoTo /D (table.3) >>
+/D [1002 0 R /XYZ 149.705 753.953 null]
>>
-% 1002 0 obj
+% 1005 0 obj
<<
-/Type /Annot
-/Subtype /Link
-/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [368.549 291.951 444.603 303.076]
-/A << /S /GoTo /D (vdata) >>
+/D [1002 0 R /XYZ 150.705 512.854 null]
>>
-
-endstream
-endobj
-1014 0 obj
+% 1006 0 obj
<<
-/Length 625
+/D [1002 0 R /XYZ 150.705 453.133 null]
>>
-stream
-0 g 0 G
-0 g 0 G
-0 g 0 G
-BT
-/F27 9.9626 Tf 150.705 706.129 Td [(info)]TJ
-0 g 0 G
-/F8 9.9626 Tf 23.758 0 Td [(Error)-333(co)-28(de.)]TJ 1.148 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.612 0 Td [(required)]TJ/F8 9.9626 Tf -29.612 -11.956 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(out)]TJ/F8 9.9626 Tf 16.549 0 Td [(.)]TJ -50.035 -11.955 Td [(An)-333(in)27(t)1(e)-1(ger)-333(v)56(alue;)-334(0)-333(means)-333(no)-334(error)-333(has)-333(b)-28(een)-333(detec)-1(ted.)]TJ
-0 g 0 G
- 141.968 -567.87 Td [(34)]TJ
-0 g 0 G
-ET
endstream
endobj
-1021 0 obj
+1020 0 obj
<<
-/Length 7088
+/Length 8462
>>
stream
0 g 0 G
@@ -9065,316 +8910,443 @@ q
[]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 -18.389 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.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(in\014nit)28(y)-334(norm)-333(as:)]TJ/F11 9.9626 Tf 115.269 -21.138 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.495 Td [(i)]TJ/F14 9.9626 Tf 3.317 1.495 Td [(j)]TJ/F8 9.9626 Tf -206.698 -24.37 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 -21.138 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.495 Td [(i)]TJ/F8 9.9626 Tf 3.317 1.495 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.495 Td [(i)]TJ/F8 9.9626 Tf 3.317 1.495 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 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
0 g 0 G
0 g 0 G
-/F30 9.9626 Tf -241.37 -24.37 Td [(psb_geamax\050x,)-525(desc_a,)-525(info\051)]TJ 0 -11.955 Td [(psb_normi\050x,)-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 129.083 549.573 cm
-[]0 d 0 J 0.398 w 0 0 m 285.336 0 l S
+1 0 0 1 177.988 586.966 cm
+[]0 d 0 J 0.398 w 0 0 m 187.526 0 l S
Q
BT
-/F11 9.9626 Tf 135.06 541.005 Td [(amax)-7677(x)]TJ/F27 9.9626 Tf 221.863 0 Td [(F)96(unction)]TJ
+/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
ET
q
-1 0 0 1 129.083 537.219 cm
-[]0 d 0 J 0.398 w 0 0 m 285.336 0 l S
+1 0 0 1 177.988 574.612 cm
+[]0 d 0 J 0.398 w 0 0 m 187.526 0 l S
Q
BT
-/F8 9.9626 Tf 135.06 528.651 Td [(Short)-333(Precision)-334(Real)-1200(Short)-333(Precision)-333(Real)-3103(psb)]TJ
+/F8 9.9626 Tf 183.966 566.045 Td [(Short)-333(Precision)-333(R)-1(eal)-3102(psb)]TJ
ET
q
-1 0 0 1 372.52 528.851 cm
+1 0 0 1 319.972 566.244 cm
[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S
Q
BT
-/F8 9.9626 Tf 375.509 528.651 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 322.961 566.045 Td [(gedots)]TJ -138.995 -11.956 Td [(Long)-333(Precision)-334(Real)-3314(p)1(s)-1(b)]TJ
ET
q
-1 0 0 1 372.52 516.895 cm
+1 0 0 1 319.972 554.289 cm
[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S
Q
BT
-/F8 9.9626 Tf 375.509 516.696 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 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
ET
q
-1 0 0 1 372.52 504.94 cm
+1 0 0 1 319.972 542.333 cm
[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S
Q
BT
-/F8 9.9626 Tf 375.509 504.741 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 322.961 542.134 Td [(gedots)]TJ -138.995 -11.955 Td [(Long)-333(Precision)-334(Complex)-1411(psb)]TJ
ET
q
-1 0 0 1 372.52 492.985 cm
+1 0 0 1 319.972 530.378 cm
[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S
Q
BT
-/F8 9.9626 Tf 375.509 492.786 Td [(geamax)]TJ
+/F8 9.9626 Tf 322.961 530.179 Td [(gedots)]TJ
ET
q
-1 0 0 1 129.083 489 cm
-[]0 d 0 J 0.398 w 0 0 m 285.336 0 l S
+1 0 0 1 177.988 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 460.961 Td [(T)83(able)-333(4:)-444(Data)-334(t)28(yp)-28(es)]TJ
+/F8 9.9626 Tf 228.067 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 -32.506 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.613 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.614 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.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
+/F8 9.9626 Tf 11.028 0 Td [(the)-333(lo)-28(cal)-333(p)-28(ortion)-333(of)-334(global)-333(dense)-333(matrix)]TJ/F11 9.9626 Tf 176.118 0 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(.)]TJ -167.933 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-255(as:)-405(a)-255(rank)-254(one)-255(or)-255(t)28(w)27(o)-254(arra)27(y)-254(or)-255(an)-255(ob)-55(jec)-1(t)-254(of)-255(t)28(yp)-28(e)]TJ
0 0 1 rg 0 0 1 RG
/F30 9.9626 Tf 244.743 0 Td [(psb)]TJ
ET
q
-1 0 0 1 385.864 341.607 cm
+1 0 0 1 385.864 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 341.407 Td [(T)]TJ
+/F30 9.9626 Tf 389.002 385.321 Td [(T)]TJ
ET
q
-1 0 0 1 394.86 341.607 cm
+1 0 0 1 394.86 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 341.407 Td [(vect)]TJ
+/F30 9.9626 Tf 397.998 385.321 Td [(vect)]TJ
ET
q
-1 0 0 1 419.547 341.607 cm
+1 0 0 1 419.547 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 341.407 Td [(type)]TJ
+/F30 9.9626 Tf 422.685 385.321 Td [(type)]TJ
0 g 0 G
-/F8 9.9626 Tf -297.883 -11.955 Td [(con)28(taining)-333(n)27(um)28(b)-28(ers)-333(of)-333(t)28(yp)-28(e)-334(sp)-27(eci\014ed)-334(in)-333(T)83(able)]TJ
+/F8 9.9626 Tf -297.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
- [-333(4)]TJ
+ [-375(3)]TJ
0 g 0 G
- [(.)]TJ
+ [(.)-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
+0 g 0 G
+/F27 9.9626 Tf -83.615 -18.428 Td [(y)]TJ
+0 g 0 G
+/F8 9.9626 Tf 11.028 0 Td [(the)-333(lo)-28(cal)-333(p)-28(ortion)-333(of)-334(global)-333(dense)-333(matrix)]TJ/F11 9.9626 Tf 176.118 0 Td [(y)]TJ/F8 9.9626 Tf 5.242 0 Td [(.)]TJ -167.481 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-255(as:)-405(a)-255(rank)-254(one)-255(or)-255(t)28(w)27(o)-254(arra)27(y)-254(or)-255(an)-255(ob)-55(jec)-1(t)-254(of)-255(t)28(yp)-28(e)]TJ
+0 0 1 rg 0 0 1 RG
+/F30 9.9626 Tf 244.743 0 Td [(psb)]TJ
+ET
+q
+1 0 0 1 385.864 295.361 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
+ET
+q
+1 0 0 1 394.86 295.361 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
+ET
+q
+1 0 0 1 419.547 295.361 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
+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(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.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
0 g 0 G
-/F27 9.9626 Tf -24.907 -19.613 Td [(desc)]TJ
+/F27 9.9626 Tf -84.067 -18.428 Td [(desc)]TJ
ET
q
-1 0 0 1 121.81 310.038 cm
+1 0 0 1 121.81 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 309.839 Td [(a)]TJ
+/F27 9.9626 Tf 125.247 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.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.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 262.217 cm
+1 0 0 1 276.779 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 262.018 Td [(desc)]TJ
+/F30 9.9626 Tf 279.917 205.003 Td [(desc)]TJ
ET
q
-1 0 0 1 301.466 262.217 cm
+1 0 0 1 301.466 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 262.018 Td [(type)]TJ
+/F30 9.9626 Tf 304.604 205.003 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.614 Td [(On)-383(Return)]TJ
+/F27 9.9626 Tf -225.631 -18.429 Td [(On)-383(Return)]TJ
0 g 0 G
0 g 0 G
- 0 -19.613 Td [(F)96(unction)-384(v)64(alue)]TJ
+ 0 -18.428 Td [(res)]TJ
0 g 0 G
-/F8 9.9626 Tf 78.387 0 Td [(is)-333(the)-334(in\014ni)1(t)27(y)-333(norm)-333(of)-334(sub)28(v)28(ector)]TJ/F11 9.9626 Tf 143.517 0 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(.)]TJ -202.691 -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
+/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
+0 0 1 rg 0 0 1 RG
+ [-333(2)]TJ
0 g 0 G
-/F27 9.9626 Tf -24.907 -19.614 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.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
+ 141.968 -29.888 Td [(33)]TJ
+0 g 0 G
+ET
+
+endstream
+endobj
+1025 0 obj
+<<
+/Length 625
+>>
+stream
+0 g 0 G
+0 g 0 G
+0 g 0 G
+BT
+/F27 9.9626 Tf 150.705 706.129 Td [(info)]TJ
+0 g 0 G
+/F8 9.9626 Tf 23.758 0 Td [(Error)-333(co)-28(de.)]TJ 1.148 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.612 0 Td [(required)]TJ/F8 9.9626 Tf -29.612 -11.956 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(out)]TJ/F8 9.9626 Tf 16.549 0 Td [(.)]TJ -50.035 -11.955 Td [(An)-333(in)27(t)1(e)-1(ger)-333(v)56(alue;)-334(0)-333(means)-333(no)-334(error)-333(has)-333(b)-28(een)-333(detec)-1(ted.)]TJ
0 g 0 G
- 141.968 -41.008 Td [(35)]TJ
+ 141.968 -567.87 Td [(34)]TJ
0 g 0 G
ET
endstream
endobj
-1029 0 obj
+1032 0 obj
<<
-/Length 6310
+/Length 6858
>>
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 [(psb)]TJ
ET
q
-1 0 0 1 171.761 706.328 cm
+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 175.796 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)-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
+/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
0 g 0 G
0 g 0 G
-/F30 9.9626 Tf -215.737 -25.377 Td [(call)-525(psb_geamaxs\050res,)-525(x,)-525(desc_a,)-525(info\051)]TJ
+/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
0 g 0 G
0 g 0 G
0 g 0 G
ET
q
-1 0 0 1 177.927 614.121 cm
-[]0 d 0 J 0.398 w 0 0 m 289.266 0 l S
+1 0 0 1 129.083 536.097 cm
+[]0 d 0 J 0.398 w 0 0 m 285.336 0 l S
Q
BT
-/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
+/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
ET
q
-1 0 0 1 177.927 601.768 cm
-[]0 d 0 J 0.398 w 0 0 m 289.266 0 l S
+1 0 0 1 129.083 523.743 cm
+[]0 d 0 J 0.398 w 0 0 m 285.336 0 l S
Q
BT
-/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
+/F8 9.9626 Tf 135.06 515.175 Td [(Short)-333(Precision)-334(Real)-1200(Short)-333(Precision)-333(Real)-3103(psb)]TJ
ET
q
-1 0 0 1 421.365 593.399 cm
+1 0 0 1 372.52 515.374 cm
[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S
Q
BT
-/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
+/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
ET
q
-1 0 0 1 421.365 581.444 cm
+1 0 0 1 372.52 503.419 cm
[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S
Q
BT
-/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
+/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
ET
q
-1 0 0 1 421.365 569.489 cm
+1 0 0 1 372.52 491.464 cm
[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S
Q
BT
-/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
+/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
ET
q
-1 0 0 1 421.365 557.533 cm
+1 0 0 1 372.52 479.509 cm
[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S
Q
BT
-/F8 9.9626 Tf 424.354 557.334 Td [(geamaxs)]TJ
+/F8 9.9626 Tf 375.509 479.31 Td [(geamax)]TJ
ET
q
-1 0 0 1 177.927 553.548 cm
-[]0 d 0 J 0.398 w 0 0 m 289.266 0 l S
+1 0 0 1 129.083 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 525.509 Td [(T)83(able)-333(5:)-444(Data)-334(t)28(yp)-28(es)]TJ
+/F8 9.9626 Tf 228.067 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 -33.596 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 -19.925 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 -19.926 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
+/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 404.441 cm
+1 0 0 1 385.864 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 404.242 Td [(T)]TJ
+/F30 9.9626 Tf 389.002 318.621 Td [(T)]TJ
ET
q
-1 0 0 1 445.669 404.441 cm
+1 0 0 1 394.86 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 404.242 Td [(vect)]TJ
+/F30 9.9626 Tf 397.998 318.621 Td [(vect)]TJ
ET
q
-1 0 0 1 470.356 404.441 cm
+1 0 0 1 419.547 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 404.242 Td [(type)]TJ
+/F30 9.9626 Tf 422.685 318.621 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.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(5)]TJ
+ [-333(4)]TJ
0 g 0 G
[(.)]TJ
0 g 0 G
-/F27 9.9626 Tf -24.906 -19.925 Td [(desc)]TJ
+/F27 9.9626 Tf -24.907 -22.262 Td [(desc)]TJ
ET
q
-1 0 0 1 172.619 372.56 cm
+1 0 0 1 121.81 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 372.361 Td [(a)]TJ
+/F27 9.9626 Tf 125.247 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.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.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.659 0 Td [(psb)]TJ
+/F30 9.9626 Tf 135.658 0 Td [(psb)]TJ
ET
q
-1 0 0 1 327.588 324.74 cm
+1 0 0 1 276.779 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 324.54 Td [(desc)]TJ
+/F30 9.9626 Tf 279.917 236.582 Td [(desc)]TJ
ET
q
-1 0 0 1 352.275 324.74 cm
+1 0 0 1 301.466 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 324.54 Td [(type)]TJ
+/F30 9.9626 Tf 304.604 236.582 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.925 Td [(On)-383(Return)]TJ
+/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
0 g 0 G
- 0 -19.925 Td [(res)]TJ
+/F27 9.9626 Tf -193.719 -34.217 Td [(On)-383(Return)]TJ
+0 g 0 G
+0 g 0 G
+/F8 9.9626 Tf 166.875 -29.888 Td [(35)]TJ
+0 g 0 G
+ET
+
+endstream
+endobj
+1037 0 obj
+<<
+/Length 4563
+>>
+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
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
+/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
0 g 0 G
/F27 9.9626 Tf -24.906 -19.925 Td [(info)]TJ
0 g 0 G
-/F8 9.9626 Tf 23.758 0 Td [(Error)-333(co)-28(de.)]TJ 1.148 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.612 0 Td [(required)]TJ/F8 9.9626 Tf -29.612 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(out)]TJ/F8 9.9626 Tf 16.549 0 Td [(.)]TJ -50.035 -11.956 Td [(An)-333(in)28(te)-1(ger)-333(v)56(alue;)-334(0)-333(means)-333(no)-334(error)-333(has)-333(b)-28(een)-333(detec)-1(ted.)]TJ
+/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 g 0 G
+/F8 9.9626 Tf 12.176 -19.926 Td [(1.)]TJ
+0 g 0 G
+ [-500(The)-241(computation)-240(of)-241(a)-241(gl)1(obal)-241(result)-241(requires)-240(a)-241(global)-241(comm)28(unication,)-259(whic)28(h)]TJ 12.73 -11.955 Td [(en)28(tails)-421(a)-420(s)-1(i)1(gni\014can)27(t)-420(o)28(v)27(erhead.)-706(It)-420(ma)27(y)-420(b)-28(e)-421(necessary)-420(and/or)-421(advisable)-420(to)]TJ 0 -11.955 Td [(compute)-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
+ET
+q
+1 0 0 1 277.899 507.075 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
+ET
+q
+1 0 0 1 367.515 507.075 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
+ET
+q
+1 0 0 1 277.899 495.12 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
+ET
+q
+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 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
+ET
+q
+1 0 0 1 277.899 483.165 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
+ET
+q
+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 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
+ET
+q
+1 0 0 1 247.365 471.21 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
+0 g 0 G
0 g 0 G
- 141.968 -90.64 Td [(36)]TJ
+ -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
+0 g 0 G
+ 141.968 -346.7 Td [(36)]TJ
0 g 0 G
ET
endstream
endobj
-1037 0 obj
+1050 0 obj
<<
-/Length 6740
+/Length 6326
>>
stream
0 g 0 G
@@ -9387,155 +9359,155 @@ q
[]0 d 0 J 0.398 w 0 0 m 4.035 0 l S
Q
BT
-/F16 11.9552 Tf 124.986 706.129 Td [(norm1)-375(|)-375(1-Norm)-375(of)-375(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)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 -21.772 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 -21.772 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 -21.772 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
+/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
0 g 0 G
0 g 0 G
-/F30 9.9626 Tf -232.086 -20.278 Td [(psb_geasum\050x,)-525(desc_a,)-525(info\051)]TJ 0 -11.955 Td [(psb_norm1\050x,)-525(desc_a,)-525(info\051)]TJ
+/F30 9.9626 Tf -215.738 -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 129.47 552.614 cm
-[]0 d 0 J 0.398 w 0 0 m 284.561 0 l S
+1 0 0 1 127.118 614.121 cm
+[]0 d 0 J 0.398 w 0 0 m 289.266 0 l S
Q
BT
-/F11 9.9626 Tf 135.448 544.046 Td [(asum)-7735(x)]TJ/F27 9.9626 Tf 221.863 0 Td [(F)96(unction)]TJ
+/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
ET
q
-1 0 0 1 129.47 540.26 cm
-[]0 d 0 J 0.398 w 0 0 m 284.561 0 l S
+1 0 0 1 127.118 601.768 cm
+[]0 d 0 J 0.398 w 0 0 m 289.266 0 l S
Q
BT
-/F8 9.9626 Tf 135.448 531.692 Td [(Short)-333(Precision)-334(Real)-1200(Sh)1(o)-1(r)1(t)-334(Precision)-333(Real)-3103(psb)]TJ
+/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
ET
q
-1 0 0 1 372.908 531.891 cm
+1 0 0 1 370.556 593.399 cm
[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S
Q
BT
-/F8 9.9626 Tf 375.897 531.692 Td [(geasum)]TJ -240.449 -11.955 Td [(Long)-333(Precision)-334(Real)-1411(Long)-333(Precision)-333(Real)-3314(psb)]TJ
+/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
ET
q
-1 0 0 1 372.908 519.936 cm
+1 0 0 1 370.556 581.444 cm
[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S
Q
BT
-/F8 9.9626 Tf 375.897 519.737 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
+/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
ET
q
-1 0 0 1 372.908 507.981 cm
+1 0 0 1 370.556 569.489 cm
[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S
Q
BT
-/F8 9.9626 Tf 375.897 507.782 Td [(geasum)]TJ -240.449 -11.955 Td [(Long)-333(Precision)-334(Real)-1411(Long)-333(Precision)-333(Complex)-1412(psb)]TJ
+/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
ET
q
-1 0 0 1 372.908 496.026 cm
+1 0 0 1 370.556 557.533 cm
[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S
Q
BT
-/F8 9.9626 Tf 375.897 495.827 Td [(geasum)]TJ
+/F8 9.9626 Tf 373.544 557.334 Td [(geamaxs)]TJ
ET
q
-1 0 0 1 129.47 492.041 cm
-[]0 d 0 J 0.398 w 0 0 m 284.561 0 l S
+1 0 0 1 127.118 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 228.067 464.002 Td [(T)83(able)-333(6:)-444(Data)-334(t)28(yp)-28(es)]TJ
+/F8 9.9626 Tf 228.067 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 -33.393 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 -19.867 Td [(On)-383(En)32(try)]TJ
+/F27 9.9626 Tf -33.797 -19.925 Td [(On)-383(En)32(try)]TJ
0 g 0 G
0 g 0 G
- 0 -19.867 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.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-255(as:)-405(a)-255(rank)-254(one)-255(or)-255(t)28(w)27(o)-254(arra)27(y)-254(or)-255(an)-255(ob)-55(jec)-1(t)-254(of)-255(t)28(yp)-28(e)]TJ
0 0 1 rg 0 0 1 RG
/F30 9.9626 Tf 244.743 0 Td [(psb)]TJ
ET
q
-1 0 0 1 385.864 343.254 cm
+1 0 0 1 385.864 404.441 cm
[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S
Q
BT
-/F30 9.9626 Tf 389.002 343.055 Td [(T)]TJ
+/F30 9.9626 Tf 389.002 404.242 Td [(T)]TJ
ET
q
-1 0 0 1 394.86 343.254 cm
+1 0 0 1 394.86 404.441 cm
[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S
Q
BT
-/F30 9.9626 Tf 397.998 343.055 Td [(vect)]TJ
+/F30 9.9626 Tf 397.998 404.242 Td [(vect)]TJ
ET
q
-1 0 0 1 419.547 343.254 cm
+1 0 0 1 419.547 404.441 cm
[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S
Q
BT
-/F30 9.9626 Tf 422.685 343.055 Td [(type)]TJ
+/F30 9.9626 Tf 422.685 404.242 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
0 0 1 rg 0 0 1 RG
- [-333(6)]TJ
+ [-333(5)]TJ
0 g 0 G
[(.)]TJ
0 g 0 G
-/F27 9.9626 Tf -24.907 -19.867 Td [(desc)]TJ
+/F27 9.9626 Tf -24.907 -19.925 Td [(desc)]TJ
ET
q
-1 0 0 1 121.81 311.432 cm
+1 0 0 1 121.81 372.56 cm
[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S
Q
BT
-/F27 9.9626 Tf 125.247 311.232 Td [(a)]TJ
+/F27 9.9626 Tf 125.247 372.361 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.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 263.611 cm
+1 0 0 1 276.779 324.74 cm
[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S
Q
BT
-/F30 9.9626 Tf 279.917 263.412 Td [(desc)]TJ
+/F30 9.9626 Tf 279.917 324.54 Td [(desc)]TJ
ET
q
-1 0 0 1 301.466 263.611 cm
+1 0 0 1 301.466 324.74 cm
[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S
Q
BT
-/F30 9.9626 Tf 304.604 263.412 Td [(type)]TJ
+/F30 9.9626 Tf 304.604 324.54 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.867 Td [(On)-383(Return)]TJ
+/F27 9.9626 Tf -225.631 -19.925 Td [(On)-383(Return)]TJ
0 g 0 G
0 g 0 G
- 0 -19.867 Td [(F)96(unction)-384(v)64(alue)]TJ
+ 0 -19.925 Td [(res)]TJ
0 g 0 G
-/F8 9.9626 Tf 78.387 0 Td [(is)-333(the)-334(1-norm)-333(of)-333(v)28(e)-1(ctor)]TJ/F11 9.9626 Tf 102.781 0 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(.)]TJ -161.955 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(global)]TJ/F8 9.9626 Tf -32.379 -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
+/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
0 g 0 G
-/F27 9.9626 Tf -24.907 -19.867 Td [(info)]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.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.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 -41.642 Td [(37)]TJ
+ 141.968 -90.64 Td [(37)]TJ
0 g 0 G
ET
endstream
endobj
-1046 0 obj
+1059 0 obj
<<
-/Length 7351
+/Length 7148
>>
stream
0 g 0 G
@@ -9548,141 +9520,145 @@ q
[]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 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
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 -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 178.071 508.729 cm
-[]0 d 0 J 0.398 w 0 0 m 288.979 0 l S
+1 0 0 1 180.28 566.766 cm
+[]0 d 0 J 0.398 w 0 0 m 284.561 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 186.257 558.198 Td [(asum)-7736(x)]TJ/F27 9.9626 Tf 221.863 0 Td [(F)96(unction)]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 180.28 554.412 cm
+[]0 d 0 J 0.398 w 0 0 m 284.561 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 186.257 545.845 Td [(Short)-333(Precision)-334(Real)-1200(Short)-333(Precision)-333(Real)-3103(psb)]TJ
ET
q
-1 0 0 1 421.508 488.007 cm
+1 0 0 1 423.717 546.044 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 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
ET
q
-1 0 0 1 421.508 476.051 cm
+1 0 0 1 423.717 534.089 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 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
ET
q
-1 0 0 1 421.508 464.096 cm
+1 0 0 1 423.717 522.133 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 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
ET
q
-1 0 0 1 421.508 452.141 cm
+1 0 0 1 423.717 510.178 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 426.706 509.979 Td [(geasum)]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 180.28 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 420.117 Td [(T)83(able)-333(7:)-444(Data)-334(t)28(yp)-28(es)]TJ
+/F8 9.9626 Tf 278.877 478.154 Td [(T)83(able)-333(6:)-444(Data)-334(t)28(yp)-28(es)]TJ
0 g 0 G
0 g 0 G
0 g 0 G
-/F27 9.9626 Tf -128.172 -35.827 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 -21.709 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 -21.71 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
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 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 293.051 Td [(T)]TJ
+/F30 9.9626 Tf 439.811 362.973 Td [(T)]TJ
ET
q
-1 0 0 1 445.669 293.25 cm
+1 0 0 1 445.669 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 293.051 Td [(vect)]TJ
+/F30 9.9626 Tf 448.807 362.973 Td [(vect)]TJ
ET
q
-1 0 0 1 470.356 293.25 cm
+1 0 0 1 470.356 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 293.051 Td [(type)]TJ
+/F30 9.9626 Tf 473.495 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.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(7)]TJ
+ [-333(6)]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 -18.819 Td [(desc)]TJ
ET
q
-1 0 0 1 172.619 259.585 cm
+1 0 0 1 172.619 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 259.386 Td [(a)]TJ
+/F27 9.9626 Tf 176.057 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.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.659 0 Td [(psb)]TJ
ET
q
-1 0 0 1 327.588 211.765 cm
+1 0 0 1 327.588 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 211.565 Td [(desc)]TJ
+/F30 9.9626 Tf 330.727 284.378 Td [(desc)]TJ
ET
q
-1 0 0 1 352.275 211.765 cm
+1 0 0 1 352.275 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 211.565 Td [(type)]TJ
+/F30 9.9626 Tf 355.414 284.378 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
+/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
- 0 -21.71 Td [(res)]TJ
+/F27 9.9626 Tf -193.718 -30.774 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 [(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
+ 0 -18.819 Td [(F)96(unction)-384(v)64(alue)]TJ
+0 g 0 G
+/F8 9.9626 Tf 78.386 0 Td [(is)-333(the)-334(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
0 g 0 G
@@ -9690,9 +9666,9 @@ ET
endstream
endobj
-1051 0 obj
+1064 0 obj
<<
-/Length 624
+/Length 3878
>>
stream
0 g 0 G
@@ -9701,353 +9677,499 @@ stream
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 [(39)]TJ
-0 g 0 G
-ET
-
-endstream
-endobj
-1058 0 obj
-<<
-/Length 6754
->>
-stream
+/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
-BT
-/F16 11.9552 Tf 150.705 706.129 Td [(psb)]TJ
+ [-500(The)-241(computation)-240(of)-241(a)-240(global)-241(result)-241(requires)-240(a)-241(global)-241(comm)28(unication,)-259(whic)28(h)]TJ 12.73 -11.955 Td [(en)28(tails)-421(a)-420(signi\014can)27(t)-420(o)28(v)27(erhead.)-706(It)-420(ma)27(y)-420(b)-28(e)-421(necessary)-420(and/or)-421(advisable)-420(to)]TJ 0 -11.955 Td [(compute)-395(m)28(ultiple)-395(norms)-395(at)-395(the)-395(same)-395(time;)-426(in)-395(this)-395(case,)-410(it)-395(is)-395(p)-28(ossible)-395(to)]TJ 0 -11.955 Td [(impro)28(v)28(e)-334(the)-333(run)28(time)-334(e\016ciency)-333(b)28(y)-334(using)-333(the)-333(follo)28(wing)-334(sc)28(heme:)]TJ 25.189 -17.933 Td [(v)-128(r)-129(e)-128(s)-259(\050)-131(1)-130(\051)-642(=)-593(p)-83(s)-82(b)]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 227.371 562.866 cm
+[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S
Q
BT
-/F16 11.9552 Tf 175.796 706.129 Td [(norm2)-375(|)-375(2-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(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.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(2-norm)-334(as:)]TJ/F11 9.9626 Tf 119.907 -21.496 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.34 Td [(p)]TJ
+/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
ET
q
-1 0 0 1 337.868 663.827 cm
-[]0 d 0 J 0.398 w 0 0 m 17.664 0 l S
+1 0 0 1 316.705 562.866 cm
+[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S
Q
BT
-/F11 9.9626 Tf 337.868 654.288 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 -20.381 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 -21.496 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
+/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
ET
q
-1 0 0 1 337.228 621.949 cm
-[]0 d 0 J 0.398 w 0 0 m 18.944 0 l S
+1 0 0 1 227.371 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.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
+ET
+q
+1 0 0 1 316.705 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 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
+ET
+q
+1 0 0 1 227.371 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.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
+ET
+q
+1 0 0 1 316.705 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 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
+ET
+q
+1 0 0 1 196.943 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.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
+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
+0 g 0 G
+ 141.968 -402.49 Td [(39)]TJ
+0 g 0 G
+ET
+
+endstream
+endobj
+1077 0 obj
+<<
+/Length 7351
+>>
+stream
+0 g 0 G
+0 g 0 G
+BT
+/F16 11.9552 Tf 150.705 706.129 Td [(psb)]TJ
+ET
+q
+1 0 0 1 171.761 706.328 cm
+[]0 d 0 J 0.398 w 0 0 m 4.035 0 l S
Q
BT
-/F11 9.9626 Tf 337.228 612.411 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 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
+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
0 g 0 G
0 g 0 G
0 g 0 G
ET
q
-1 0 0 1 180.294 592.22 cm
-[]0 d 0 J 0.398 w 0 0 m 284.534 0 l S
+1 0 0 1 178.071 508.729 cm
+[]0 d 0 J 0.398 w 0 0 m 288.979 0 l S
Q
BT
-/F11 9.9626 Tf 186.271 583.652 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 184.049 500.161 Td [(r)-28(es)-8770(x)]TJ/F27 9.9626 Tf 221.862 0 Td [(Subroutine)]TJ
ET
q
-1 0 0 1 180.294 579.866 cm
-[]0 d 0 J 0.398 w 0 0 m 284.534 0 l S
+1 0 0 1 178.071 496.375 cm
+[]0 d 0 J 0.398 w 0 0 m 288.979 0 l S
Q
BT
-/F8 9.9626 Tf 186.271 571.298 Td [(Short)-333(Precision)-334(Real)-1200(Shor)1(t)-334(Precision)-333(Real)-3103(psb)]TJ
+/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
ET
q
-1 0 0 1 423.731 571.497 cm
+1 0 0 1 421.508 488.007 cm
[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S
Q
BT
-/F8 9.9626 Tf 426.72 571.298 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 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
ET
q
-1 0 0 1 423.731 559.542 cm
+1 0 0 1 421.508 476.051 cm
[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S
Q
BT
-/F8 9.9626 Tf 426.72 559.343 Td [(genrm2)]TJ -240.449 -11.955 Td [(Short)-333(Precision)-334(Real)-1200(Short)-333(Precision)-333(Complex)-1200(psb)]TJ
+/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
ET
q
-1 0 0 1 423.731 547.587 cm
+1 0 0 1 421.508 464.096 cm
[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S
Q
BT
-/F8 9.9626 Tf 426.72 547.388 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 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
ET
q
-1 0 0 1 423.731 535.632 cm
+1 0 0 1 421.508 452.141 cm
[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S
Q
BT
-/F8 9.9626 Tf 426.72 535.433 Td [(genrm2)]TJ
+/F8 9.9626 Tf 424.497 451.942 Td [(geasums)]TJ
ET
q
-1 0 0 1 180.294 531.647 cm
-[]0 d 0 J 0.398 w 0 0 m 284.534 0 l S
+1 0 0 1 178.071 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 503.608 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 278.877 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
-/F30 9.9626 Tf -128.172 -33.435 Td [(psb_genrm2\050x,)-525(desc_a,)-525(info\051)]TJ 0 -11.955 Td [(psb_norm2\050x,)-525(desc_a,)-525(info\051)]TJ
0 g 0 G
-/F27 9.9626 Tf 0 -20.382 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.31 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.311 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.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
+/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 351.593 cm
+1 0 0 1 436.673 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 351.394 Td [(T)]TJ
+/F30 9.9626 Tf 439.811 293.051 Td [(T)]TJ
ET
q
-1 0 0 1 445.669 351.593 cm
+1 0 0 1 445.669 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 351.394 Td [(vect)]TJ
+/F30 9.9626 Tf 448.807 293.051 Td [(vect)]TJ
ET
q
-1 0 0 1 470.356 351.593 cm
+1 0 0 1 470.356 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 351.394 Td [(type)]TJ
+/F30 9.9626 Tf 473.495 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.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(8)]TJ
+ [-333(7)]TJ
0 g 0 G
[(.)]TJ
0 g 0 G
-/F27 9.9626 Tf -24.906 -19.311 Td [(desc)]TJ
+/F27 9.9626 Tf -24.906 -21.709 Td [(desc)]TJ
ET
q
-1 0 0 1 172.619 320.328 cm
+1 0 0 1 172.619 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 320.128 Td [(a)]TJ
+/F27 9.9626 Tf 176.057 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.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.659 0 Td [(psb)]TJ
ET
q
-1 0 0 1 327.588 272.507 cm
+1 0 0 1 327.588 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 272.308 Td [(desc)]TJ
+/F30 9.9626 Tf 330.727 211.565 Td [(desc)]TJ
ET
q
-1 0 0 1 352.275 272.507 cm
+1 0 0 1 352.275 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 272.308 Td [(type)]TJ
+/F30 9.9626 Tf 355.414 211.565 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.311 Td [(On)-383(Return)]TJ
+/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
0 g 0 G
+ET
+
+endstream
+endobj
+1082 0 obj
+<<
+/Length 624
+>>
+stream
0 g 0 G
- 0 -19.311 Td [(F)96(unction)-384(V)96(alue)]TJ
0 g 0 G
-/F8 9.9626 Tf 80.683 0 Td [(is)-333(the)-334(2-norm)-333(of)-333(sub)27(v)28(ector)]TJ/F11 9.9626 Tf 117.504 0 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(.)]TJ -178.974 -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 [(Sp)-28(eci\014ed)-333(as:)-444(a)-334(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.311 Td [(info)]TJ
+BT
+/F27 9.9626 Tf 99.895 706.129 Td [(info)]TJ
0 g 0 G
-/F8 9.9626 Tf 23.758 0 Td [(Error)-333(co)-28(de.)]TJ 1.149 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.378 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.378 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.956 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.485 0 Td [(out)]TJ/F8 9.9626 Tf 16.549 0 Td [(.)]TJ -50.034 -11.955 Td [(An)-333(in)28(teger)-334(v)56(alue;)-334(0)-333(means)-333(no)-334(error)-333(has)-333(b)-28(een)-333(detected.)]TJ
+/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.967 -40.251 Td [(40)]TJ
+ 141.968 -567.87 Td [(41)]TJ
0 g 0 G
ET
endstream
endobj
-1066 0 obj
+1089 0 obj
<<
-/Length 6130
+/Length 6462
>>
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 [(psb)]TJ
ET
q
-1 0 0 1 120.951 706.328 cm
+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 124.986 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)-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 g 0 G
-/F30 9.9626 Tf -207.017 -20.424 Td [(call)-525(psb_genrm2s\050res,)-525(x,)-525(desc_a,)-525(info\051)]TJ
+/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
0 g 0 G
0 g 0 G
0 g 0 G
ET
q
-1 0 0 1 127.261 617.58 cm
-[]0 d 0 J 0.398 w 0 0 m 288.979 0 l S
+1 0 0 1 180.294 577.3 cm
+[]0 d 0 J 0.398 w 0 0 m 284.534 0 l S
Q
BT
-/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
+/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
ET
q
-1 0 0 1 127.261 605.227 cm
-[]0 d 0 J 0.398 w 0 0 m 288.979 0 l S
+1 0 0 1 180.294 564.947 cm
+[]0 d 0 J 0.398 w 0 0 m 284.534 0 l S
Q
BT
-/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
+/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
ET
q
-1 0 0 1 370.699 596.858 cm
+1 0 0 1 423.731 556.578 cm
[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S
Q
BT
-/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
+/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
ET
q
-1 0 0 1 370.699 584.903 cm
+1 0 0 1 423.731 544.623 cm
[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S
Q
BT
-/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
+/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
ET
q
-1 0 0 1 370.699 572.948 cm
+1 0 0 1 423.731 532.668 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
+/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
ET
q
-1 0 0 1 370.699 560.993 cm
+1 0 0 1 423.731 520.713 cm
[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S
Q
BT
-/F8 9.9626 Tf 373.688 560.793 Td [(genrm2s)]TJ
+/F8 9.9626 Tf 426.72 520.513 Td [(genrm2)]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
+1 0 0 1 180.294 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 228.067 528.968 Td [(T)83(able)-333(9:)-444(Data)-334(t)28(yp)-28(es)]TJ
+/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
0 g 0 G
-/F27 9.9626 Tf -128.172 -33.596 Td [(T)32(yp)-32(e:)]TJ
+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
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 -22.677 Td [(On)-383(En)32(try)]TJ
0 g 0 G
0 g 0 G
- 0 -19.926 Td [(x)]TJ
+ 0 -22.677 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 407.9 cm
+1 0 0 1 436.673 320.063 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
+/F30 9.9626 Tf 439.811 319.864 Td [(T)]TJ
ET
q
-1 0 0 1 394.86 407.9 cm
+1 0 0 1 445.669 320.063 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
+/F30 9.9626 Tf 448.807 319.864 Td [(vect)]TJ
ET
q
-1 0 0 1 419.547 407.9 cm
+1 0 0 1 470.356 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 407.701 Td [(type)]TJ
+/F30 9.9626 Tf 473.495 319.864 Td [(type)]TJ
0 g 0 G
-/F8 9.9626 Tf -297.883 -11.955 Td [(con)28(taining)-333(n)27(um)28(b)-28(ers)-333(of)-333(t)28(yp)-28(e)-334(sp)-27(eci\014ed)-334(in)-333(T)83(able)]TJ
+/F8 9.9626 Tf -297.884 -11.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(9)]TJ
+ [-333(8)]TJ
0 g 0 G
[(.)]TJ
0 g 0 G
-/F27 9.9626 Tf -24.907 -19.926 Td [(desc)]TJ
+/F27 9.9626 Tf -24.906 -22.677 Td [(desc)]TJ
ET
q
-1 0 0 1 121.81 376.02 cm
+1 0 0 1 172.619 285.431 cm
[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S
Q
BT
-/F27 9.9626 Tf 125.247 375.82 Td [(a)]TJ
+/F27 9.9626 Tf 176.057 285.231 Td [(a)]TJ
0 g 0 G
-/F8 9.9626 Tf 10.551 0 Td [(con)28(tains)-334(d)1(ata)-334(structures)-333(for)-333(com)-1(m)28(unications.)]TJ -10.996 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(ob)-55(ject)-334(of)-333(t)28(yp)-28(e)]TJ
+/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 328.199 cm
+1 0 0 1 327.588 237.61 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
+/F30 9.9626 Tf 330.727 237.411 Td [(desc)]TJ
ET
q
-1 0 0 1 301.466 328.199 cm
+1 0 0 1 352.275 237.61 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
+/F30 9.9626 Tf 355.414 237.411 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.926 Td [(On)-383(Return)]TJ
+/F27 9.9626 Tf -225.63 -22.677 Td [(global)]TJ
0 g 0 G
+/F8 9.9626 Tf 34.737 0 Td [(Sp)-28(eci\014es)-357(whether)-357(the)-357(co)-1(mpu)1(tation)-358(should)-357(include)-357(the)-357(global)-357(reduction)]TJ -9.831 -11.955 Td [(across)-333(all)-334(pro)-27(c)-1(esses.)]TJ 0 -11.956 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(global)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.612 0 Td [(optional)]TJ/F8 9.9626 Tf 40.576 0 Td [(.)]TJ -70.188 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.548 0 Td [(.)]TJ -43.034 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(logical)-333(scalar.)-445(Default:)]TJ/F30 9.9626 Tf 168.812 0 Td [(global=.true.)]TJ
0 g 0 G
- 0 -19.925 Td [(res)]TJ
+/F27 9.9626 Tf -193.718 -34.632 Td [(On)-383(Return)]TJ
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
-/F27 9.9626 Tf -24.907 -19.926 Td [(info)]TJ
+/F8 9.9626 Tf 166.874 -29.888 Td [(42)]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
+ET
+
+endstream
+endobj
+1094 0 obj
+<<
+/Length 4633
+>>
+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
+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)-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
+ET
+q
+1 0 0 1 227.381 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.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
+ET
+q
+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 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
+ET
+q
+1 0 0 1 227.381 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.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
+ET
+q
+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 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
+ET
+q
+1 0 0 1 227.381 471.21 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
+ET
+q
+1 0 0 1 316.705 471.21 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
+ET
+q
+1 0 0 1 197.093 459.255 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
+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
0 g 0 G
- 141.968 -94.1 Td [(41)]TJ
+ 141.968 -334.744 Td [(43)]TJ
0 g 0 G
ET
endstream
endobj
-1073 0 obj
+1108 0 obj
<<
-/Length 5509
+/Length 6162
>>
stream
0 g 0 G
@@ -10060,148 +10182,155 @@ q
[]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(Sparse)-375(Matrix)]TJ/F8 9.9626 Tf -25.091 -18.389 Td [(This)-333(function)-334(computes)-333(the)-333(1-norm)-334(of)-333(a)-333(matrix)]TJ/F11 9.9626 Tf 209.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
+/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
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
+/F30 9.9626 Tf -207.016 -20.424 Td [(call)-525(psb_genrm2s\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 230.992 589.962 cm
-[]0 d 0 J 0.398 w 0 0 m 183.136 0 l S
+1 0 0 1 178.071 617.58 cm
+[]0 d 0 J 0.398 w 0 0 m 288.979 0 l S
Q
BT
-/F11 9.9626 Tf 236.97 581.394 Td [(A)]TJ/F27 9.9626 Tf 120.41 0 Td [(F)96(unction)]TJ
+/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
ET
q
-1 0 0 1 230.992 577.608 cm
-[]0 d 0 J 0.398 w 0 0 m 183.136 0 l S
+1 0 0 1 178.071 605.227 cm
+[]0 d 0 J 0.398 w 0 0 m 288.979 0 l S
Q
BT
-/F8 9.9626 Tf 236.97 569.04 Td [(Short)-333(Precision)-334(Real)-3102(psb)]TJ
+/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
ET
q
-1 0 0 1 372.977 569.24 cm
+1 0 0 1 421.508 596.858 cm
[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S
Q
BT
-/F8 9.9626 Tf 375.966 569.04 Td [(spnrm1)]TJ -138.996 -11.955 Td [(Long)-333(Precision)-334(Real)-3314(psb)]TJ
+/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
ET
q
-1 0 0 1 372.977 557.284 cm
+1 0 0 1 421.508 584.903 cm
[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S
Q
BT
-/F8 9.9626 Tf 375.966 557.085 Td [(spnrm1)]TJ -138.996 -11.955 Td [(Short)-333(Precision)-334(Complex)-1200(psb)]TJ
+/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
ET
q
-1 0 0 1 372.977 545.329 cm
+1 0 0 1 421.508 572.948 cm
[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S
Q
BT
-/F8 9.9626 Tf 375.966 545.13 Td [(spnrm1)]TJ -138.996 -11.955 Td [(Long)-333(Precision)-334(Complex)-1411(psb)]TJ
+/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
ET
q
-1 0 0 1 372.977 533.374 cm
+1 0 0 1 421.508 560.993 cm
[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S
Q
BT
-/F8 9.9626 Tf 375.966 533.175 Td [(spnrm1)]TJ
+/F8 9.9626 Tf 424.497 560.793 Td [(genrm2s)]TJ
ET
q
-1 0 0 1 230.992 529.389 cm
-[]0 d 0 J 0.398 w 0 0 m 183.136 0 l S
+1 0 0 1 178.071 557.008 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 276.386 501.35 Td [(T)83(able)-333(10:)-444(Data)-334(t)28(yp)-28(es)]TJ
+/F8 9.9626 Tf 278.877 528.968 Td [(T)83(able)-333(9:)-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_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
+/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 -19.926 Td [(On)-383(En)32(try)]TJ
+/F27 9.9626 Tf -33.797 -19.925 Td [(On)-383(En)32(try)]TJ
0 g 0 G
0 g 0 G
- 0 -19.925 Td [(a)]TJ
+ 0 -19.926 Td [(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.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 135.658 0 Td [(psb)]TJ
+/F30 9.9626 Tf 244.742 0 Td [(psb)]TJ
ET
q
-1 0 0 1 327.588 346.132 cm
+1 0 0 1 436.673 407.9 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 439.811 407.701 Td [(T)]TJ
ET
q
-1 0 0 1 362.736 346.132 cm
+1 0 0 1 445.669 407.9 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 448.807 407.701 Td [(vect)]TJ
+ET
+q
+1 0 0 1 470.356 407.9 cm
+[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S
+Q
+BT
+/F30 9.9626 Tf 473.495 407.701 Td [(type)]TJ
0 g 0 G
-/F8 9.9626 Tf 20.922 0 Td [(.)]TJ
+/F8 9.9626 Tf -297.884 -11.955 Td [(con)28(taining)-333(n)27(um)28(b)-28(ers)-333(of)-333(t)27(yp)-27(e)-334(sp)-27(ec)-1(i)1(\014ed)-334(in)-333(T)83(able)]TJ
+0 0 1 rg 0 0 1 RG
+ [-333(9)]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.906 -19.926 Td [(desc)]TJ
ET
q
-1 0 0 1 172.619 326.206 cm
+1 0 0 1 172.619 376.02 cm
[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S
Q
BT
-/F27 9.9626 Tf 176.057 326.007 Td [(a)]TJ
+/F27 9.9626 Tf 176.057 375.82 Td [(a)]TJ
0 g 0 G
-/F8 9.9626 Tf 10.55 0 Td [(con)28(tains)-334(data)-333(structures)-333(for)-333(c)-1(omm)28(unications.)]TJ -10.996 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.612 0 Td [(required)]TJ/F8 9.9626 Tf -29.612 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.548 0 Td [(.)]TJ -43.034 -11.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.659 0 Td [(psb)]TJ
ET
q
-1 0 0 1 327.588 278.386 cm
+1 0 0 1 327.588 328.199 cm
[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S
Q
BT
-/F30 9.9626 Tf 330.727 278.186 Td [(desc)]TJ
+/F30 9.9626 Tf 330.727 328 Td [(desc)]TJ
ET
q
-1 0 0 1 352.275 278.386 cm
+1 0 0 1 352.275 328.199 cm
[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S
Q
BT
-/F30 9.9626 Tf 355.414 278.186 Td [(type)]TJ
+/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.925 Td [(On)-383(Return)]TJ
+/F27 9.9626 Tf -225.63 -19.926 Td [(On)-383(Return)]TJ
0 g 0 G
0 g 0 G
- 0 -19.925 Td [(F)96(unction)-384(v)64(alue)]TJ
+ 0 -19.925 Td [(res)]TJ
0 g 0 G
-/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
+/F8 9.9626 Tf 19.47 0 Td [(con)28(tains)-334(th)1(e)-334(1-norm)-333(of)-333(\050the)-334(columns)-333(of)-78(\051)]TJ/F11 9.9626 Tf 177.75 0 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(.)]TJ -178.008 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(global)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(out)]TJ/F8 9.9626 Tf 16.549 0 Td [(.)]TJ -50.035 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(long)-333(precision)-334(r)1(e)-1(al)-333(n)28(um)28(b)-28(er.)]TJ
0 g 0 G
/F27 9.9626 Tf -24.906 -19.926 Td [(info)]TJ
0 g 0 G
-/F8 9.9626 Tf 23.758 0 Td [(Error)-333(co)-28(de.)]TJ 1.148 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.612 0 Td [(required)]TJ/F8 9.9626 Tf -29.612 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(out)]TJ/F8 9.9626 Tf 16.549 0 Td [(.)]TJ -50.035 -11.955 Td [(An)-333(in)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.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 [(42)]TJ
+ 141.968 -94.1 Td [(44)]TJ
0 g 0 G
ET
endstream
endobj
-1080 0 obj
+1115 0 obj
<<
-/Length 5546
+/Length 5516
>>
stream
0 g 0 G
@@ -10214,7 +10343,7 @@ q
[]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)-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.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
+/F16 11.9552 Tf 124.986 706.129 Td [(norm1)-375(|)-375(1-Norm)-375(of)-375(Sparse)-375(Matrix)]TJ/F8 9.9626 Tf -25.091 -18.389 Td [(This)-333(function)-334(computes)-333(the)-333(1-norm)-334(of)-333(a)-333(matrix)]TJ/F11 9.9626 Tf 209.659 0 Td [(A)]TJ/F8 9.9626 Tf 7.472 0 Td [(:)]TJ/F11 9.9626 Tf -76.216 -33.873 Td [(nr)-28(m)]TJ/F8 9.9626 Tf 19.499 0 Td [(1)]TJ/F14 9.9626 Tf 7.749 0 Td [(\040)-278(k)]TJ/F11 9.9626 Tf 17.711 0 Td [(A)]TJ/F14 9.9626 Tf 7.472 0 Td [(k)]TJ/F7 6.9738 Tf 4.981 -1.495 Td [(1)]TJ/F8 9.9626 Tf -198.327 -20.423 Td [(where:)]TJ
0 g 0 G
/F11 9.9626 Tf 0 -19.926 Td [(A)]TJ
0 g 0 G
@@ -10224,59 +10353,59 @@ BT
0 g 0 G
ET
q
-1 0 0 1 181.29 589.962 cm
-[]0 d 0 J 0.398 w 0 0 m 180.922 0 l S
+1 0 0 1 180.183 589.962 cm
+[]0 d 0 J 0.398 w 0 0 m 183.136 0 l S
Q
BT
-/F11 9.9626 Tf 187.268 581.394 Td [(A)]TJ/F27 9.9626 Tf 120.409 0 Td [(F)96(unction)]TJ
+/F11 9.9626 Tf 186.161 581.394 Td [(A)]TJ/F27 9.9626 Tf 120.409 0 Td [(F)96(unction)]TJ
ET
q
-1 0 0 1 181.29 577.608 cm
-[]0 d 0 J 0.398 w 0 0 m 180.922 0 l S
+1 0 0 1 180.183 577.608 cm
+[]0 d 0 J 0.398 w 0 0 m 183.136 0 l S
Q
BT
-/F8 9.9626 Tf 187.268 569.04 Td [(Short)-333(Precision)-333(R)-1(eal)-3102(psb)]TJ
+/F8 9.9626 Tf 186.161 569.04 Td [(Short)-333(Precision)-334(Real)-3102(psb)]TJ
ET
q
-1 0 0 1 323.274 569.24 cm
+1 0 0 1 322.167 569.24 cm
[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S
Q
BT
-/F8 9.9626 Tf 326.263 569.04 Td [(spnrmi)]TJ -138.995 -11.955 Td [(Long)-333(Precision)-334(Real)-3314(p)1(s)-1(b)]TJ
+/F8 9.9626 Tf 325.156 569.04 Td [(spnrm1)]TJ -138.995 -11.955 Td [(Long)-333(Precision)-334(Real)-3314(p)1(s)-1(b)]TJ
ET
q
-1 0 0 1 323.274 557.284 cm
+1 0 0 1 322.167 557.284 cm
[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S
Q
BT
-/F8 9.9626 Tf 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
+/F8 9.9626 Tf 325.156 557.085 Td [(spnrm1)]TJ -138.995 -11.955 Td [(Short)-333(Precision)-334(Complex)-1200(psb)]TJ
ET
q
-1 0 0 1 323.274 545.329 cm
+1 0 0 1 322.167 545.329 cm
[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S
Q
BT
-/F8 9.9626 Tf 326.263 545.13 Td [(spnrmi)]TJ -138.995 -11.955 Td [(Long)-333(Precision)-334(Complex)-1411(psb)]TJ
+/F8 9.9626 Tf 325.156 545.13 Td [(spnrm1)]TJ -138.995 -11.955 Td [(Long)-333(Precision)-334(Complex)-1411(psb)]TJ
ET
q
-1 0 0 1 323.274 533.374 cm
+1 0 0 1 322.167 533.374 cm
[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S
Q
BT
-/F8 9.9626 Tf 326.263 533.175 Td [(spnrmi)]TJ
+/F8 9.9626 Tf 325.156 533.175 Td [(spnrm1)]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
+1 0 0 1 180.183 529.389 cm
+[]0 d 0 J 0.398 w 0 0 m 183.136 0 l S
Q
0 g 0 G
BT
-/F8 9.9626 Tf 225.577 501.35 Td [(T)83(able)-333(11:)-444(Data)-334(t)28(yp)-28(es)]TJ
+/F8 9.9626 Tf 225.577 501.35 Td [(T)83(able)-333(10:)-444(Data)-334(t)28(yp)-28(es)]TJ
0 g 0 G
0 g 0 G
0 g 0 G
0 g 0 G
-/F30 9.9626 Tf -125.682 -33.873 Td [(psb_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 -125.682 -33.873 Td [(psb_spnrm1\050A,)-525(desc_a,)-525(info\051)]TJ 0 -11.956 Td [(psb_norm1\050A,)-525(desc_a,)-525(info\051)]TJ
0 g 0 G
/F27 9.9626 Tf 0 -21.917 Td [(T)32(yp)-32(e:)]TJ
0 g 0 G
@@ -10341,454 +10470,91 @@ BT
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 [(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
+/F8 9.9626 Tf 78.387 0 Td [(is)-333(the)-334(1-norm)-333(of)-333(sparse)-334(submatrix)]TJ/F11 9.9626 Tf 150.297 0 Td [(A)]TJ/F8 9.9626 Tf 7.472 0 Td [(.)]TJ -211.249 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(global)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(long)-333(precision)-333(real)-334(n)28(um)28(b)-28(er.)]TJ
0 g 0 G
/F27 9.9626 Tf -24.907 -19.926 Td [(info)]TJ
0 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 -56.242 Td [(43)]TJ
+ 141.968 -56.242 Td [(45)]TJ
0 g 0 G
ET
endstream
endobj
-1092 0 obj
+1011 0 obj
<<
-/Length 7300
+/Type /ObjStm
+/N 100
+/First 980
+/Length 11075
>>
stream
-0 g 0 G
-0 g 0 G
-BT
-/F16 11.9552 Tf 150.705 706.129 Td [(psb)]TJ
-ET
-q
-1 0 0 1 171.761 706.328 cm
-[]0 d 0 J 0.398 w 0 0 m 4.035 0 l S
-Q
-BT
-/F16 11.9552 Tf 175.796 706.129 Td [(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.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
-/F8 9.9626 Tf 138.581 0 Td [(\0501\051)]TJ
-0 g 0 G
-/F11 9.9626 Tf -194.211 -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.963 0 Td [(\014)-53(y)]TJ
-0 g 0 G
-/F8 9.9626 Tf 135.443 0 Td [(\0502\051)]TJ
-0 g 0 G
-/F11 9.9626 Tf -194.851 -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 [(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
-0 g 0 G
-/F8 9.9626 Tf 134.803 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.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 -18.081 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 -18.081 Td [(A)]TJ
-0 g 0 G
-/F8 9.9626 Tf 12.453 0 Td [(is)-333(the)-334(global)-333(sparse)-333(matrix)]TJ/F11 9.9626 Tf 118.943 0 Td [(A)]TJ
-0 g 0 G
-0 g 0 G
-0 g 0 G
-ET
-q
-1 0 0 1 228.797 532.215 cm
-[]0 d 0 J 0.398 w 0 0 m 187.526 0 l S
-Q
-BT
-/F11 9.9626 Tf 234.775 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.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 519.862 cm
-[]0 d 0 J 0.398 w 0 0 m 187.526 0 l S
-Q
-BT
-/F8 9.9626 Tf 234.775 511.294 Td [(Short)-333(Precision)-334(Real)-3102(psb)]TJ
-ET
-q
-1 0 0 1 370.782 511.493 cm
-[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S
-Q
-BT
-/F8 9.9626 Tf 373.771 511.294 Td [(spmm)]TJ -138.996 -11.956 Td [(Long)-333(Precision)-334(Real)-3314(psb)]TJ
-ET
-q
-1 0 0 1 370.782 499.538 cm
-[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S
-Q
-BT
-/F8 9.9626 Tf 373.771 499.338 Td [(spmm)]TJ -138.996 -11.955 Td [(Short)-333(Precision)-334(Complex)-1200(psb)]TJ
-ET
-q
-1 0 0 1 370.782 487.583 cm
-[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S
-Q
-BT
-/F8 9.9626 Tf 373.771 487.383 Td [(spmm)]TJ -138.996 -11.955 Td [(Long)-333(Precision)-334(Complex)-1411(psb)]TJ
-ET
-q
-1 0 0 1 370.782 475.627 cm
-[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S
-Q
-BT
-/F8 9.9626 Tf 373.771 475.428 Td [(spmm)]TJ
-ET
-q
-1 0 0 1 228.797 471.642 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 443.603 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 -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.994 -11.955 Td [(&)-525(trans,)-525(work\051)]TJ
-0 g 0 G
-/F27 9.9626 Tf -67.994 -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
-0 g 0 G
-/F27 9.9626 Tf -33.797 -19.575 Td [(On)-383(En)32(try)]TJ
-0 g 0 G
-0 g 0 G
- 0 -19.576 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.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(12)]TJ
-0 g 0 G
- [(.)]TJ
-0 g 0 G
-/F27 9.9626 Tf -24.906 -19.575 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.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(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.831 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.632 Td [(Tspmat)]TJ
-ET
-q
-1 0 0 1 362.736 211.831 cm
-[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S
-Q
-BT
-/F30 9.9626 Tf 365.874 211.632 Td [(type)]TJ
-0 g 0 G
-/F8 9.9626 Tf 20.922 0 Td [(.)]TJ
-0 g 0 G
-/F27 9.9626 Tf -236.091 -19.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.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 [(44)]TJ
-0 g 0 G
-ET
-
-endstream
-endobj
-1107 0 obj
+1007 0 1008 58 1009 117 1010 175 1001 234 1019 353 1012 536 1013 680 1014 825 1015 969
+1016 1115 1017 1262 1021 1407 220 1465 1022 1522 1018 1581 1024 1726 1026 1843 1023 1902 1031 1982
+1027 2138 1028 2281 1029 2426 1033 2573 224 2631 1034 2688 1030 2746 1036 2891 1038 3008 1039 3067
+1040 3126 1041 3185 1042 3244 1043 3303 1044 3362 1035 3421 1049 3540 1045 3697 1046 3841 1047 3987
+1051 4133 228 4191 1052 4248 1048 4307 1058 4452 1054 4609 1055 4753 1056 4899 1060 5046 232 5105
+1061 5163 1057 5222 1063 5379 1065 5497 1066 5555 1067 5613 1068 5671 1069 5730 1070 5789 1071 5848
+1062 5907 1076 6000 1072 6157 1073 6300 1074 6445 1078 6591 236 6650 1079 6708 1075 6767 1081 6924
+1083 7042 1080 7100 1088 7180 1084 7337 1085 7481 1086 7627 1090 7774 240 7833 1091 7891 1087 7950
+1093 8095 1095 8213 1096 8271 1097 8329 1098 8387 1099 8446 1100 8505 1101 8564 1092 8623 1107 8742
+1103 8899 1104 9043 1105 9188 1109 9335 244 9394 1110 9452 1106 9511 1114 9655 1111 9803 1112 9948
+% 1007 0 obj
<<
-/Length 6992
+/D [1002 0 R /XYZ 175.611 455.07 null]
>>
-stream
-0 g 0 G
-0 g 0 G
-0 g 0 G
-BT
-/F27 9.9626 Tf 99.895 706.129 Td [(b)-32(eta)]TJ
-0 g 0 G
-/F8 9.9626 Tf 26.941 0 Td [(the)-333(scalar)]TJ/F11 9.9626 Tf 45.468 0 Td [(\014)]TJ/F8 9.9626 Tf 6.161 0 Td [(.)]TJ -53.663 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(global)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.956 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(n)28(um)28(b)-28(er)-333(of)-334(the)-333(data)-333(t)28(yp)-28(e)-334(ind)1(ic)-1(ated)-333(in)-333(T)83(able)]TJ
-0 0 1 rg 0 0 1 RG
- [-333(12)]TJ
-0 g 0 G
- [(.)]TJ
-0 g 0 G
-/F27 9.9626 Tf -24.907 -18.453 Td [(y)]TJ
-0 g 0 G
-/F8 9.9626 Tf 11.028 0 Td [(the)-333(lo)-28(cal)-333(p)-28(ortion)-333(of)-334(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.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 [(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 592.233 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.034 Td [(T)]TJ
-ET
-q
-1 0 0 1 394.86 592.233 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.034 Td [(vect)]TJ
-ET
-q
-1 0 0 1 419.547 592.233 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.034 Td [(type)]TJ
-0 g 0 G
-/F8 9.9626 Tf -297.883 -11.955 Td [(con)28(taining)-345(n)28(um)28(b)-28(ers)-345(of)-345(t)28(yp)-28(e)-345(sp)-28(eci\014ed)-345(in)-345(T)84(able)]TJ
-0 0 1 rg 0 0 1 RG
- [-345(12)]TJ
-0 g 0 G
- [(.)-479(The)-345(rank)-345(of)]TJ/F11 9.9626 Tf 275.086 0 Td [(y)]TJ/F8 9.9626 Tf 8.678 0 Td [(m)28(ust)-345(b)-28(e)]TJ -283.764 -11.955 Td [(the)-333(same)-334(of)]TJ/F11 9.9626 Tf 53.466 0 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(.)]TJ
-0 g 0 G
-/F27 9.9626 Tf -84.067 -18.454 Td [(desc)]TJ
-ET
-q
-1 0 0 1 121.81 549.87 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.67 Td [(a)]TJ
-0 g 0 G
-/F8 9.9626 Tf 10.551 0 Td [(con)28(tains)-334(d)1(ata)-334(structures)-333(for)-333(com)-1(m)28(unications.)]TJ -10.996 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(ob)-55(ject)-334(of)-333(t)28(yp)-28(e)]TJ
-0 0 1 rg 0 0 1 RG
-/F30 9.9626 Tf 135.658 0 Td [(psb)]TJ
-ET
-q
-1 0 0 1 276.779 502.049 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.85 Td [(desc)]TJ
-ET
-q
-1 0 0 1 301.466 502.049 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.85 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.454 Td [(trans)]TJ
-0 g 0 G
-/F8 9.9626 Tf 30.609 0 Td [(indicates)-333(what)-334(kind)-333(of)-333(op)-28(eration)-333(to)-334(p)-27(erform.)]TJ
-0 g 0 G
-/F27 9.9626 Tf -5.702 -18.453 Td [(trans)-383(=)-384(N)]TJ
-0 g 0 G
-/F8 9.9626 Tf 56.124 0 Td [(the)-333(op)-28(eration)-333(is)-334(sp)-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.469 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.468 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.453 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(global)]TJ/F8 9.9626 Tf -32.379 -11.956 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.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.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 -18.454 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.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]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.454 Td [(On)-383(Return)]TJ
-0 g 0 G
-0 g 0 G
- 0 -18.453 Td [(y)]TJ
-0 g 0 G
-/F8 9.9626 Tf 11.028 0 Td [(the)-333(lo)-28(cal)-333(p)-28(ortion)-333(of)-334(result)-333(matrix)]TJ/F11 9.9626 Tf 147.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.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 [(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.454 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 -38.108 Td [(45)]TJ
-0 g 0 G
-ET
-
-endstream
-endobj
-1113 0 obj
+% 1008 0 obj
<<
-/Length 6772
+/D [1002 0 R /XYZ 175.611 443.115 null]
>>
-stream
-0 g 0 G
-0 g 0 G
-BT
-/F16 11.9552 Tf 150.705 706.129 Td [(psb)]TJ
-ET
-q
-1 0 0 1 171.761 706.328 cm
-[]0 d 0 J 0.398 w 0 0 m 4.035 0 l S
-Q
-BT
-/F16 11.9552 Tf 175.796 706.129 Td [(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(S)1(o)-1(l)1(v)27(e:)]TJ/F11 9.9626 Tf 121.692 -35.01 Td [(y)]TJ/F14 9.9626 Tf 15.205 0 Td [(\040)]TJ/F11 9.9626 Tf 19.925 0 Td [(\013)-4(T)]TJ/F13 6.9738 Tf 13.616 4.113 Td [(\000)]TJ/F7 6.9738 Tf 6.226 0 Td [(1)]TJ/F11 9.9626 Tf 4.47 -4.113 Td [(x)]TJ/F8 9.9626 Tf 7.907 0 Td [(+)]TJ/F11 9.9626 Tf 9.963 0 Td [(\014)-53(y)]TJ -77.312 -14.944 Td [(y)]TJ/F14 9.9626 Tf 15.205 0 Td [(\040)]TJ/F11 9.9626 Tf 19.925 0 Td [(\013)-4(D)-27(T)]TJ/F13 6.9738 Tf 22.141 4.113 Td [(\000)]TJ/F7 6.9738 Tf 6.226 0 Td [(1)]TJ/F11 9.9626 Tf 4.47 -4.113 Td [(x)]TJ/F8 9.9626 Tf 7.907 0 Td [(+)]TJ/F11 9.9626 Tf 9.963 0 Td [(\014)-53(y)]TJ -85.837 -14.944 Td [(y)]TJ/F14 9.9626 Tf 15.205 0 Td [(\040)]TJ/F11 9.9626 Tf 19.925 0 Td [(\013)-4(T)]TJ/F13 6.9738 Tf 13.616 4.113 Td [(\000)]TJ/F7 6.9738 Tf 6.226 0 Td [(1)]TJ/F11 9.9626 Tf 4.47 -4.113 Td [(D)-28(x)]TJ/F8 9.9626 Tf 16.432 0 Td [(+)]TJ/F11 9.9626 Tf 9.963 0 Td [(\014)-53(y)]TJ -85.837 -14.944 Td [(y)]TJ/F14 9.9626 Tf 15.205 0 Td [(\040)]TJ/F11 9.9626 Tf 19.925 0 Td [(\013)-4(T)]TJ/F13 6.9738 Tf 13.616 4.113 Td [(\000)]TJ/F10 6.9738 Tf 6.226 0 Td [(T)]TJ/F11 9.9626 Tf 6.276 -4.113 Td [(x)]TJ/F8 9.9626 Tf 7.908 0 Td [(+)]TJ/F11 9.9626 Tf 9.963 0 Td [(\014)-53(y)]TJ -79.119 -14.944 Td [(y)]TJ/F14 9.9626 Tf 15.205 0 Td [(\040)]TJ/F11 9.9626 Tf 19.925 0 Td [(\013)-4(D)-27(T)]TJ/F13 6.9738 Tf 22.141 4.113 Td [(\000)]TJ/F10 6.9738 Tf 6.226 0 Td [(T)]TJ/F11 9.9626 Tf 6.276 -4.113 Td [(x)]TJ/F8 9.9626 Tf 7.908 0 Td [(+)]TJ/F11 9.9626 Tf 9.963 0 Td [(\014)-53(y)]TJ -87.644 -14.944 Td [(y)]TJ/F14 9.9626 Tf 15.205 0 Td [(\040)]TJ/F11 9.9626 Tf 19.925 0 Td [(\013)-4(T)]TJ/F13 6.9738 Tf 13.616 4.113 Td [(\000)]TJ/F10 6.9738 Tf 6.226 0 Td [(T)]TJ/F11 9.9626 Tf 6.276 -4.113 Td [(D)-28(x)]TJ/F8 9.9626 Tf 16.433 0 Td [(+)]TJ/F11 9.9626 Tf 9.963 0 Td [(\014)-53(y)]TJ -87.644 -14.944 Td [(y)]TJ/F14 9.9626 Tf 15.205 0 Td [(\040)]TJ/F11 9.9626 Tf 19.925 0 Td [(\013)-4(T)]TJ/F13 6.9738 Tf 13.616 4.113 Td [(\000)]TJ/F10 6.9738 Tf 6.226 0 Td [(H)]TJ/F11 9.9626 Tf 7.557 -4.113 Td [(x)]TJ/F8 9.9626 Tf 7.907 0 Td [(+)]TJ/F11 9.9626 Tf 9.963 0 Td [(\014)-53(y)]TJ -80.399 -14.944 Td [(y)]TJ/F14 9.9626 Tf 15.205 0 Td [(\040)]TJ/F11 9.9626 Tf 19.925 0 Td [(\013)-4(D)-27(T)]TJ/F13 6.9738 Tf 22.141 4.113 Td [(\000)]TJ/F10 6.9738 Tf 6.226 0 Td [(H)]TJ/F11 9.9626 Tf 7.557 -4.113 Td [(x)]TJ/F8 9.9626 Tf 7.907 0 Td [(+)]TJ/F11 9.9626 Tf 9.963 0 Td [(\014)-53(y)]TJ -88.924 -14.944 Td [(y)]TJ/F14 9.9626 Tf 15.205 0 Td [(\040)]TJ/F11 9.9626 Tf 19.925 0 Td [(\013)-4(T)]TJ/F13 6.9738 Tf 13.616 4.113 Td [(\000)]TJ/F10 6.9738 Tf 6.226 0 Td [(H)]TJ/F11 9.9626 Tf 7.557 -4.113 Td [(D)-28(x)]TJ/F8 9.9626 Tf 16.432 0 Td [(+)]TJ/F11 9.9626 Tf 9.963 0 Td [(\014)-53(y)]TJ/F8 9.9626 Tf -195.672 -37.999 Td [(where:)]TJ
-0 g 0 G
-/F11 9.9626 Tf -14.944 -21.063 Td [(x)]TJ
-0 g 0 G
-/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
-0 g 0 G
-/F8 9.9626 Tf 33.797 0 Td [(Sync)28(hronous.)]TJ
-0 g 0 G
-/F27 9.9626 Tf -33.797 -21.442 Td [(On)-383(En)32(try)]TJ
-0 g 0 G
-0 g 0 G
- 0 -21.442 Td [(alpha)]TJ
-0 g 0 G
-/F8 9.9626 Tf 32.032 0 Td [(the)-333(scalar)]TJ/F11 9.9626 Tf 45.469 0 Td [(\013)]TJ/F8 9.9626 Tf 6.41 0 Td [(.)]TJ -59.005 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(global)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.612 0 Td [(required)]TJ/F8 9.9626 Tf -29.612 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.548 0 Td [(.)]TJ -43.034 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(n)28(um)28(b)-28(er)-333(of)-334(the)-333(data)-333(t)27(yp)-27(e)-334(indicated)-333(in)-333(T)83(able)]TJ
-0 0 1 rg 0 0 1 RG
- [-333(13)]TJ
-0 g 0 G
- [(.)]TJ
-0 g 0 G
- 141.968 -29.888 Td [(46)]TJ
-0 g 0 G
-ET
-
-endstream
-endobj
-1011 0 obj
+% 1009 0 obj
<<
-/Type /ObjStm
-/N 100
-/First 988
-/Length 12372
+/D [1002 0 R /XYZ 175.611 431.16 null]
>>
-stream
-1003 0 1004 146 1005 293 1009 438 220 496 1010 553 1006 612 1013 757 1015 874 1012 933
-1020 1013 1016 1169 1017 1313 1018 1459 1022 1606 224 1664 1023 1721 1019 1780 1028 1925 1024 2081
-1025 2225 1026 2371 1030 2517 228 2576 1031 2634 1027 2693 1036 2838 1032 2995 1033 3139 1034 3285
-1038 3432 232 3490 1039 3547 1035 3606 1045 3763 1041 3920 1042 4063 1043 4208 1047 4354 236 4413
-1048 4471 1044 4530 1050 4687 1052 4805 1049 4863 1057 4943 1053 5100 1054 5244 1055 5390 1059 5537
-240 5596 1060 5654 1056 5713 1065 5858 1061 6015 1062 6159 1063 6304 1067 6451 244 6509 1068 6566
-1064 6625 1072 6769 1069 6917 1070 7062 1074 7209 248 7268 1075 7326 1071 7385 1079 7529 1076 7677
-1077 7822 1081 7969 252 8027 1083 8084 1078 8143 1091 8289 1085 8455 1086 8602 1087 8747 1088 8891
-1093 9038 256 9097 1094 9155 1095 9214 1096 9273 1097 9332 1090 9391 1106 9548 1089 9750 1098 9897
-1099 10041 1100 10188 1101 10335 1102 10486 1103 10637 1104 10788 1108 10935 1105 10993 1112 11099 1109 11238
-% 1003 0 obj
+% 1010 0 obj
+<<
+/D [1002 0 R /XYZ 175.611 419.205 null]
+>>
+% 1001 0 obj
+<<
+/Font << /F8 561 0 R /F27 560 0 R /F30 769 0 R /F11 755 0 R /F16 558 0 R >>
+/ProcSet [ /PDF /Text ]
+>>
+% 1019 0 obj
+<<
+/Type /Page
+/Contents 1020 0 R
+/Resources 1018 0 R
+/MediaBox [0 0 595.276 841.89]
+/Parent 999 0 R
+/Annots [ 1012 0 R 1013 0 R 1014 0 R 1015 0 R 1016 0 R 1017 0 R ]
+>>
+% 1012 0 obj
+<<
+/Type /Annot
+/Subtype /Link
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [368.549 382.111 444.603 393.236]
+/A << /S /GoTo /D (vdata) >>
+>>
+% 1013 0 obj
+<<
+/Type /Annot
+/Subtype /Link
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [328.333 370.432 335.307 381.28]
+/A << /S /GoTo /D (table.3) >>
+>>
+% 1014 0 obj
+<<
+/Type /Annot
+/Subtype /Link
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [368.549 291.951 444.603 303.076]
+/A << /S /GoTo /D (vdata) >>
+>>
+% 1015 0 obj
<<
/Type /Annot
/Subtype /Link
@@ -10796,7 +10562,7 @@ stream
/Rect [328.544 280.273 335.518 291.121]
/A << /S /GoTo /D (table.3) >>
>>
-% 1004 0 obj
+% 1016 0 obj
<<
/Type /Annot
/Subtype /Link
@@ -10804,7 +10570,7 @@ stream
/Rect [259.464 201.792 326.522 212.917]
/A << /S /GoTo /D (descdata) >>
>>
-% 1005 0 obj
+% 1017 0 obj
<<
/Type /Annot
/Subtype /Link
@@ -10812,200 +10578,282 @@ stream
/Rect [151.203 119.329 158.177 128.24]
/A << /S /GoTo /D (table.2) >>
>>
-% 1009 0 obj
+% 1021 0 obj
<<
-/D [1007 0 R /XYZ 98.895 753.953 null]
+/D [1019 0 R /XYZ 98.895 753.953 null]
>>
% 220 0 obj
<<
-/D [1007 0 R /XYZ 99.895 720.077 null]
+/D [1019 0 R /XYZ 99.895 720.077 null]
>>
-% 1010 0 obj
+% 1022 0 obj
<<
-/D [1007 0 R /XYZ 267.641 510.309 null]
+/D [1019 0 R /XYZ 267.641 510.309 null]
>>
-% 1006 0 obj
+% 1018 0 obj
<<
-/Font << /F16 554 0 R /F8 557 0 R /F11 750 0 R /F14 767 0 R /F10 766 0 R /F30 764 0 R /F27 556 0 R >>
+/Font << /F16 558 0 R /F8 561 0 R /F11 755 0 R /F14 772 0 R /F10 771 0 R /F30 769 0 R /F27 560 0 R >>
/ProcSet [ /PDF /Text ]
>>
-% 1013 0 obj
+% 1024 0 obj
<<
/Type /Page
-/Contents 1014 0 R
-/Resources 1012 0 R
+/Contents 1025 0 R
+/Resources 1023 0 R
/MediaBox [0 0 595.276 841.89]
-/Parent 995 0 R
+/Parent 999 0 R
>>
-% 1015 0 obj
+% 1026 0 obj
<<
-/D [1013 0 R /XYZ 149.705 753.953 null]
+/D [1024 0 R /XYZ 149.705 753.953 null]
>>
-% 1012 0 obj
+% 1023 0 obj
<<
-/Font << /F27 556 0 R /F8 557 0 R >>
+/Font << /F27 560 0 R /F8 561 0 R >>
/ProcSet [ /PDF /Text ]
>>
-% 1020 0 obj
+% 1031 0 obj
<<
/Type /Page
-/Contents 1021 0 R
-/Resources 1019 0 R
+/Contents 1032 0 R
+/Resources 1030 0 R
/MediaBox [0 0 595.276 841.89]
-/Parent 995 0 R
-/Annots [ 1016 0 R 1017 0 R 1018 0 R ]
+/Parent 999 0 R
+/Annots [ 1027 0 R 1028 0 R 1029 0 R ]
>>
-% 1016 0 obj
+% 1027 0 obj
<<
/Type /Annot
/Subtype /Link
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [368.549 338.197 444.603 349.322]
+/Rect [368.549 315.41 444.603 326.535]
/A << /S /GoTo /D (vdata) >>
>>
-% 1017 0 obj
+% 1028 0 obj
<<
/Type /Annot
/Subtype /Link
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [325.411 326.519 332.385 337.367]
+/Rect [325.411 303.732 332.385 314.58]
/A << /S /GoTo /D (table.4) >>
>>
-% 1018 0 obj
+% 1029 0 obj
<<
/Type /Annot
/Subtype /Link
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [259.464 258.808 326.522 269.933]
+/Rect [259.464 233.372 326.522 244.497]
/A << /S /GoTo /D (descdata) >>
>>
-% 1022 0 obj
+% 1033 0 obj
<<
-/D [1020 0 R /XYZ 98.895 753.953 null]
+/D [1031 0 R /XYZ 98.895 753.953 null]
>>
% 224 0 obj
<<
-/D [1020 0 R /XYZ 99.895 720.077 null]
+/D [1031 0 R /XYZ 99.895 720.077 null]
>>
-% 1023 0 obj
+% 1034 0 obj
<<
-/D [1020 0 R /XYZ 267.641 472.916 null]
+/D [1031 0 R /XYZ 267.641 459.44 null]
>>
-% 1019 0 obj
+% 1030 0 obj
<<
-/Font << /F16 554 0 R /F8 557 0 R /F11 750 0 R /F14 767 0 R /F10 766 0 R /F30 764 0 R /F27 556 0 R >>
+/Font << /F16 558 0 R /F8 561 0 R /F11 755 0 R /F14 772 0 R /F10 771 0 R /F30 769 0 R /F27 560 0 R >>
/ProcSet [ /PDF /Text ]
>>
-% 1028 0 obj
+% 1036 0 obj
<<
/Type /Page
-/Contents 1029 0 R
-/Resources 1027 0 R
+/Contents 1037 0 R
+/Resources 1035 0 R
/MediaBox [0 0 595.276 841.89]
-/Parent 995 0 R
-/Annots [ 1024 0 R 1025 0 R 1026 0 R ]
+/Parent 999 0 R
>>
-% 1024 0 obj
+% 1038 0 obj
+<<
+/D [1036 0 R /XYZ 149.705 753.953 null]
+>>
+% 1039 0 obj
+<<
+/D [1036 0 R /XYZ 150.705 576.615 null]
+>>
+% 1040 0 obj
+<<
+/D [1036 0 R /XYZ 150.705 516.894 null]
+>>
+% 1041 0 obj
+<<
+/D [1036 0 R /XYZ 175.611 518.831 null]
+>>
+% 1042 0 obj
+<<
+/D [1036 0 R /XYZ 175.611 506.876 null]
+>>
+% 1043 0 obj
+<<
+/D [1036 0 R /XYZ 175.611 494.921 null]
+>>
+% 1044 0 obj
+<<
+/D [1036 0 R /XYZ 175.611 482.966 null]
+>>
+% 1035 0 obj
+<<
+/Font << /F27 560 0 R /F8 561 0 R /F11 755 0 R /F30 769 0 R /F16 558 0 R >>
+/ProcSet [ /PDF /Text ]
+>>
+% 1049 0 obj
+<<
+/Type /Page
+/Contents 1050 0 R
+/Resources 1048 0 R
+/MediaBox [0 0 595.276 841.89]
+/Parent 1053 0 R
+/Annots [ 1045 0 R 1046 0 R 1047 0 R ]
+>>
+% 1045 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]
+/Rect [368.549 401.031 444.603 412.156]
/A << /S /GoTo /D (vdata) >>
>>
-% 1025 0 obj
+% 1046 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]
+/Rect [325.411 389.353 332.385 400.201]
/A << /S /GoTo /D (table.5) >>
>>
-% 1026 0 obj
+% 1047 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]
+/Rect [259.464 321.33 326.522 332.455]
/A << /S /GoTo /D (descdata) >>
>>
-% 1030 0 obj
+% 1051 0 obj
<<
-/D [1028 0 R /XYZ 149.705 753.953 null]
+/D [1049 0 R /XYZ 98.895 753.953 null]
>>
% 228 0 obj
<<
-/D [1028 0 R /XYZ 150.705 720.077 null]
+/D [1049 0 R /XYZ 99.895 720.077 null]
>>
-% 1031 0 obj
+% 1052 0 obj
<<
-/D [1028 0 R /XYZ 318.451 537.464 null]
+/D [1049 0 R /XYZ 267.641 537.464 null]
>>
-% 1027 0 obj
+% 1048 0 obj
<<
-/Font << /F16 554 0 R /F8 557 0 R /F11 750 0 R /F14 767 0 R /F10 766 0 R /F30 764 0 R /F27 556 0 R >>
+/Font << /F16 558 0 R /F8 561 0 R /F11 755 0 R /F14 772 0 R /F10 771 0 R /F30 769 0 R /F27 560 0 R >>
/ProcSet [ /PDF /Text ]
>>
-% 1036 0 obj
+% 1058 0 obj
<<
/Type /Page
-/Contents 1037 0 R
-/Resources 1035 0 R
+/Contents 1059 0 R
+/Resources 1057 0 R
/MediaBox [0 0 595.276 841.89]
-/Parent 1040 0 R
-/Annots [ 1032 0 R 1033 0 R 1034 0 R ]
+/Parent 1053 0 R
+/Annots [ 1054 0 R 1055 0 R 1056 0 R ]
>>
-% 1032 0 obj
+% 1054 0 obj
<<
/Type /Annot
/Subtype /Link
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [368.549 339.844 444.603 350.969]
+/Rect [419.358 359.763 495.412 370.887]
/A << /S /GoTo /D (vdata) >>
>>
-% 1033 0 obj
+% 1055 0 obj
<<
/Type /Annot
/Subtype /Link
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [325.411 328.166 332.385 339.014]
+/Rect [376.221 348.084 383.195 358.932]
/A << /S /GoTo /D (table.6) >>
>>
-% 1034 0 obj
+% 1056 0 obj
<<
/Type /Annot
/Subtype /Link
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [259.464 260.202 326.522 271.327]
+/Rect [310.273 281.168 377.331 292.293]
/A << /S /GoTo /D (descdata) >>
>>
-% 1038 0 obj
+% 1060 0 obj
<<
-/D [1036 0 R /XYZ 98.895 753.953 null]
+/D [1058 0 R /XYZ 149.705 753.953 null]
>>
% 232 0 obj
<<
-/D [1036 0 R /XYZ 99.895 720.077 null]
+/D [1058 0 R /XYZ 150.705 720.077 null]
>>
-% 1039 0 obj
+% 1061 0 obj
<<
-/D [1036 0 R /XYZ 267.641 475.957 null]
+/D [1058 0 R /XYZ 318.451 490.109 null]
>>
-% 1035 0 obj
+% 1057 0 obj
<<
-/Font << /F16 554 0 R /F8 557 0 R /F11 750 0 R /F14 767 0 R /F10 766 0 R /F7 765 0 R /F30 764 0 R /F27 556 0 R >>
+/Font << /F16 558 0 R /F8 561 0 R /F11 755 0 R /F14 772 0 R /F10 771 0 R /F7 770 0 R /F30 769 0 R /F27 560 0 R >>
/ProcSet [ /PDF /Text ]
>>
-% 1045 0 obj
+% 1063 0 obj
<<
/Type /Page
-/Contents 1046 0 R
-/Resources 1044 0 R
+/Contents 1064 0 R
+/Resources 1062 0 R
/MediaBox [0 0 595.276 841.89]
-/Parent 1040 0 R
-/Annots [ 1041 0 R 1042 0 R 1043 0 R ]
+/Parent 1053 0 R
>>
-% 1041 0 obj
+% 1065 0 obj
+<<
+/D [1063 0 R /XYZ 98.895 753.953 null]
+>>
+% 1066 0 obj
+<<
+/D [1063 0 R /XYZ 99.895 632.405 null]
+>>
+% 1067 0 obj
+<<
+/D [1063 0 R /XYZ 99.895 572.685 null]
+>>
+% 1068 0 obj
+<<
+/D [1063 0 R /XYZ 124.802 574.622 null]
+>>
+% 1069 0 obj
+<<
+/D [1063 0 R /XYZ 124.802 562.667 null]
+>>
+% 1070 0 obj
+<<
+/D [1063 0 R /XYZ 124.802 550.712 null]
+>>
+% 1071 0 obj
+<<
+/D [1063 0 R /XYZ 124.802 538.757 null]
+>>
+% 1062 0 obj
+<<
+/Font << /F27 560 0 R /F8 561 0 R /F16 558 0 R >>
+/ProcSet [ /PDF /Text ]
+>>
+% 1076 0 obj
+<<
+/Type /Page
+/Contents 1077 0 R
+/Resources 1075 0 R
+/MediaBox [0 0 595.276 841.89]
+/Parent 1053 0 R
+/Annots [ 1072 0 R 1073 0 R 1074 0 R ]
+>>
+% 1072 0 obj
<<
/Type /Annot
/Subtype /Link
@@ -11013,7 +10861,7 @@ stream
/Rect [419.358 289.84 495.412 300.965]
/A << /S /GoTo /D (vdata) >>
>>
-% 1042 0 obj
+% 1073 0 obj
<<
/Type /Annot
/Subtype /Link
@@ -11021,7 +10869,7 @@ stream
/Rect [376.221 278.162 383.195 289.01]
/A << /S /GoTo /D (table.7) >>
>>
-% 1043 0 obj
+% 1074 0 obj
<<
/Type /Annot
/Subtype /Link
@@ -11029,1063 +10877,671 @@ stream
/Rect [310.273 208.355 377.331 219.48]
/A << /S /GoTo /D (descdata) >>
>>
-% 1047 0 obj
+% 1078 0 obj
<<
-/D [1045 0 R /XYZ 149.705 753.953 null]
+/D [1076 0 R /XYZ 149.705 753.953 null]
>>
% 236 0 obj
<<
-/D [1045 0 R /XYZ 150.705 720.077 null]
+/D [1076 0 R /XYZ 150.705 720.077 null]
>>
-% 1048 0 obj
+% 1079 0 obj
<<
-/D [1045 0 R /XYZ 318.451 432.072 null]
+/D [1076 0 R /XYZ 318.451 432.072 null]
>>
-% 1044 0 obj
+% 1075 0 obj
<<
-/Font << /F16 554 0 R /F8 557 0 R /F11 750 0 R /F14 767 0 R /F10 766 0 R /F7 765 0 R /F30 764 0 R /F27 556 0 R >>
+/Font << /F16 558 0 R /F8 561 0 R /F11 755 0 R /F14 772 0 R /F10 771 0 R /F7 770 0 R /F30 769 0 R /F27 560 0 R >>
/ProcSet [ /PDF /Text ]
>>
-% 1050 0 obj
+% 1081 0 obj
<<
/Type /Page
-/Contents 1051 0 R
-/Resources 1049 0 R
+/Contents 1082 0 R
+/Resources 1080 0 R
/MediaBox [0 0 595.276 841.89]
-/Parent 1040 0 R
+/Parent 1053 0 R
>>
-% 1052 0 obj
+% 1083 0 obj
<<
-/D [1050 0 R /XYZ 98.895 753.953 null]
+/D [1081 0 R /XYZ 98.895 753.953 null]
>>
-% 1049 0 obj
+% 1080 0 obj
<<
-/Font << /F27 556 0 R /F8 557 0 R >>
+/Font << /F27 560 0 R /F8 561 0 R >>
/ProcSet [ /PDF /Text ]
>>
-% 1057 0 obj
+% 1088 0 obj
<<
/Type /Page
-/Contents 1058 0 R
-/Resources 1056 0 R
+/Contents 1089 0 R
+/Resources 1087 0 R
/MediaBox [0 0 595.276 841.89]
-/Parent 1040 0 R
-/Annots [ 1053 0 R 1054 0 R 1055 0 R ]
+/Parent 1053 0 R
+/Annots [ 1084 0 R 1085 0 R 1086 0 R ]
>>
-% 1053 0 obj
+% 1084 0 obj
<<
/Type /Annot
/Subtype /Link
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [419.358 348.184 495.412 359.309]
+/Rect [419.358 316.653 495.412 327.778]
/A << /S /GoTo /D (vdata) >>
>>
-% 1054 0 obj
+% 1085 0 obj
<<
/Type /Annot
/Subtype /Link
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [376.221 336.506 383.195 347.354]
+/Rect [376.221 304.975 383.195 315.823]
/A << /S /GoTo /D (table.8) >>
>>
-% 1055 0 obj
+% 1086 0 obj
<<
/Type /Annot
/Subtype /Link
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [310.273 269.097 377.331 280.222]
+/Rect [310.273 234.201 377.331 245.325]
/A << /S /GoTo /D (descdata) >>
>>
-% 1059 0 obj
+% 1090 0 obj
<<
-/D [1057 0 R /XYZ 149.705 753.953 null]
+/D [1088 0 R /XYZ 149.705 753.953 null]
>>
% 240 0 obj
<<
-/D [1057 0 R /XYZ 150.705 720.077 null]
+/D [1088 0 R /XYZ 150.705 720.077 null]
>>
-% 1060 0 obj
+% 1091 0 obj
<<
-/D [1057 0 R /XYZ 318.451 515.563 null]
+/D [1088 0 R /XYZ 318.451 500.643 null]
>>
-% 1056 0 obj
+% 1087 0 obj
<<
-/Font << /F16 554 0 R /F8 557 0 R /F11 750 0 R /F14 767 0 R /F10 766 0 R /F27 556 0 R /F30 764 0 R >>
+/Font << /F16 558 0 R /F8 561 0 R /F11 755 0 R /F14 772 0 R /F10 771 0 R /F27 560 0 R /F30 769 0 R >>
/ProcSet [ /PDF /Text ]
>>
-% 1065 0 obj
+% 1093 0 obj
<<
/Type /Page
-/Contents 1066 0 R
-/Resources 1064 0 R
+/Contents 1094 0 R
+/Resources 1092 0 R
/MediaBox [0 0 595.276 841.89]
-/Parent 1040 0 R
-/Annots [ 1061 0 R 1062 0 R 1063 0 R ]
+/Parent 1102 0 R
>>
-% 1061 0 obj
+% 1095 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) >>
->>
-% 1062 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) >>
->>
-% 1063 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) >>
->>
-% 1067 0 obj
-<<
-/D [1065 0 R /XYZ 98.895 753.953 null]
->>
-% 244 0 obj
-<<
-/D [1065 0 R /XYZ 99.895 720.077 null]
->>
-% 1068 0 obj
-<<
-/D [1065 0 R /XYZ 267.641 540.923 null]
->>
-% 1064 0 obj
-<<
-/Font << /F16 554 0 R /F8 557 0 R /F11 750 0 R /F14 767 0 R /F7 765 0 R /F30 764 0 R /F27 556 0 R >>
-/ProcSet [ /PDF /Text ]
->>
-% 1072 0 obj
-<<
-/Type /Page
-/Contents 1073 0 R
-/Resources 1071 0 R
-/MediaBox [0 0 595.276 841.89]
-/Parent 1040 0 R
-/Annots [ 1069 0 R 1070 0 R ]
->>
-% 1069 0 obj
-<<
-/Type /Annot
-/Subtype /Link
-/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [310.273 342.722 387.792 353.847]
-/A << /S /GoTo /D (spdata) >>
->>
-% 1070 0 obj
-<<
-/Type /Annot
-/Subtype /Link
-/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [310.273 274.976 377.331 286.101]
-/A << /S /GoTo /D (descdata) >>
->>
-% 1074 0 obj
-<<
-/D [1072 0 R /XYZ 149.705 753.953 null]
->>
-% 248 0 obj
-<<
-/D [1072 0 R /XYZ 150.705 720.077 null]
->>
-% 1075 0 obj
-<<
-/D [1072 0 R /XYZ 320.941 513.305 null]
->>
-% 1071 0 obj
-<<
-/Font << /F16 554 0 R /F8 557 0 R /F11 750 0 R /F14 767 0 R /F7 765 0 R /F27 556 0 R /F30 764 0 R >>
-/ProcSet [ /PDF /Text ]
+/D [1093 0 R /XYZ 98.895 753.953 null]
>>
-% 1079 0 obj
+% 1096 0 obj
<<
-/Type /Page
-/Contents 1080 0 R
-/Resources 1078 0 R
-/MediaBox [0 0 595.276 841.89]
-/Parent 1084 0 R
-/Annots [ 1076 0 R 1077 0 R ]
+/D [1093 0 R /XYZ 99.895 564.659 null]
>>
-% 1076 0 obj
+% 1097 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) >>
+/D [1093 0 R /XYZ 99.895 504.939 null]
>>
-% 1077 0 obj
+% 1098 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) >>
+/D [1093 0 R /XYZ 124.802 506.876 null]
>>
-% 1081 0 obj
+% 1099 0 obj
<<
-/D [1079 0 R /XYZ 98.895 753.953 null]
+/D [1093 0 R /XYZ 124.802 494.921 null]
>>
-% 252 0 obj
+% 1100 0 obj
<<
-/D [1079 0 R /XYZ 99.895 720.077 null]
+/D [1093 0 R /XYZ 124.802 482.966 null]
>>
-% 1083 0 obj
+% 1101 0 obj
<<
-/D [1079 0 R /XYZ 270.132 513.305 null]
+/D [1093 0 R /XYZ 124.802 471.011 null]
>>
-% 1078 0 obj
+% 1092 0 obj
<<
-/Font << /F16 554 0 R /F8 557 0 R /F11 750 0 R /F14 767 0 R /F13 1082 0 R /F27 556 0 R /F30 764 0 R >>
+/Font << /F27 560 0 R /F8 561 0 R /F11 755 0 R /F30 769 0 R /F16 558 0 R >>
/ProcSet [ /PDF /Text ]
>>
-% 1091 0 obj
+% 1107 0 obj
<<
/Type /Page
-/Contents 1092 0 R
-/Resources 1090 0 R
+/Contents 1108 0 R
+/Resources 1106 0 R
/MediaBox [0 0 595.276 841.89]
-/Parent 1084 0 R
-/Annots [ 1085 0 R 1086 0 R 1087 0 R 1088 0 R ]
->>
-% 1085 0 obj
-<<
-/Type /Annot
-/Subtype /Link
-/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [432.897 276.095 444.852 286.943]
-/A << /S /GoTo /D (table.12) >>
+/Parent 1102 0 R
+/Annots [ 1103 0 R 1104 0 R 1105 0 R ]
>>
-% 1086 0 obj
+% 1103 0 obj
<<
/Type /Annot
/Subtype /Link
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [310.273 208.422 387.792 219.547]
-/A << /S /GoTo /D (spdata) >>
+/Rect [419.358 404.491 495.412 415.616]
+/A << /S /GoTo /D (vdata) >>
>>
-% 1087 0 obj
+% 1104 0 obj
<<
/Type /Annot
/Subtype /Link
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [419.358 141.026 495.412 152.151]
-/A << /S /GoTo /D (vdata) >>
+/Rect [376.221 392.812 383.195 403.66]
+/A << /S /GoTo /D (table.9) >>
>>
-% 1088 0 obj
+% 1105 0 obj
<<
/Type /Annot
/Subtype /Link
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [376.818 129.347 388.773 140.196]
-/A << /S /GoTo /D (table.12) >>
->>
-% 1093 0 obj
-<<
-/D [1091 0 R /XYZ 149.705 753.953 null]
->>
-% 256 0 obj
-<<
-/D [1091 0 R /XYZ 150.705 720.077 null]
->>
-% 1094 0 obj
-<<
-/D [1091 0 R /XYZ 290.613 675.784 null]
+/Rect [310.273 324.789 377.331 335.914]
+/A << /S /GoTo /D (descdata) >>
>>
-% 1095 0 obj
+% 1109 0 obj
<<
-/D [1091 0 R /XYZ 287.475 658.376 null]
+/D [1107 0 R /XYZ 149.705 753.953 null]
>>
-% 1096 0 obj
+% 244 0 obj
<<
-/D [1091 0 R /XYZ 286.835 640.968 null]
+/D [1107 0 R /XYZ 150.705 720.077 null]
>>
-% 1097 0 obj
+% 1110 0 obj
<<
-/D [1091 0 R /XYZ 320.941 455.558 null]
+/D [1107 0 R /XYZ 318.451 540.923 null]
>>
-% 1090 0 obj
+% 1106 0 obj
<<
-/Font << /F16 554 0 R /F8 557 0 R /F11 750 0 R /F14 767 0 R /F10 766 0 R /F7 765 0 R /F27 556 0 R /F30 764 0 R >>
+/Font << /F16 558 0 R /F8 561 0 R /F11 755 0 R /F14 772 0 R /F7 770 0 R /F30 769 0 R /F27 560 0 R >>
/ProcSet [ /PDF /Text ]
>>
-% 1106 0 obj
+% 1114 0 obj
<<
/Type /Page
-/Contents 1107 0 R
-/Resources 1105 0 R
+/Contents 1115 0 R
+/Resources 1113 0 R
/MediaBox [0 0 595.276 841.89]
-/Parent 1084 0 R
-/Annots [ 1089 0 R 1098 0 R 1099 0 R 1100 0 R 1101 0 R 1102 0 R 1103 0 R 1104 0 R ]
->>
-% 1089 0 obj
-<<
-/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) >>
->>
-% 1098 0 obj
-<<
-/Type /Annot
-/Subtype /Link
-/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [368.549 588.824 444.603 599.949]
-/A << /S /GoTo /D (vdata) >>
->>
-% 1099 0 obj
-<<
-/Type /Annot
-/Subtype /Link
-/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [326.219 577.145 338.174 587.994]
-/A << /S /GoTo /D (table.12) >>
->>
-% 1100 0 obj
-<<
-/Type /Annot
-/Subtype /Link
-/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [259.464 498.639 326.522 509.764]
-/A << /S /GoTo /D (descdata) >>
->>
-% 1101 0 obj
-<<
-/Type /Annot
-/Subtype /Link
-/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [346.389 462.009 353.363 472.858]
-/A << /S /GoTo /D (equation.4.1) >>
->>
-% 1102 0 obj
-<<
-/Type /Annot
-/Subtype /Link
-/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [345.393 447.541 352.367 458.389]
-/A << /S /GoTo /D (equation.4.2) >>
->>
-% 1103 0 obj
-<<
-/Type /Annot
-/Subtype /Link
-/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [345.697 433.073 352.671 443.921]
-/A << /S /GoTo /D (equation.4.3) >>
+/Parent 1102 0 R
+/Annots [ 1111 0 R 1112 0 R ]
>>
-% 1104 0 obj
+% 1111 0 obj
<<
/Type /Annot
/Subtype /Link
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [203.009 191.887 214.964 202.735]
-/A << /S /GoTo /D (table.12) >>
->>
-% 1108 0 obj
-<<
-/D [1106 0 R /XYZ 98.895 753.953 null]
->>
-% 1105 0 obj
-<<
-/Font << /F27 556 0 R /F8 557 0 R /F11 750 0 R /F30 764 0 R >>
-/ProcSet [ /PDF /Text ]
+/Rect [259.464 342.722 336.983 353.847]
+/A << /S /GoTo /D (spdata) >>
>>
% 1112 0 obj
<<
-/Type /Page
-/Contents 1113 0 R
-/Resources 1111 0 R
-/MediaBox [0 0 595.276 841.89]
-/Parent 1084 0 R
-/Annots [ 1109 0 R ]
->>
-% 1109 0 obj
-<<
/Type /Annot
/Subtype /Link
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [432.897 117.392 444.852 128.24]
-/A << /S /GoTo /D (table.13) >>
+/Rect [259.464 274.976 326.522 286.101]
+/A << /S /GoTo /D (descdata) >>
>>
endstream
endobj
-1125 0 obj
+1123 0 obj
<<
-/Length 7790
+/Length 5523
>>
stream
0 g 0 G
0 g 0 G
-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
-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
-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
+/F16 11.9552 Tf 150.705 706.129 Td [(psb)]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
+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
-/F30 9.9626 Tf 422.685 589.838 Td [(type)]TJ
+/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
-/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
+/F11 9.9626 Tf 0 -19.926 Td [(A)]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
+/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
- [(.)]TJ
0 g 0 G
-/F27 9.9626 Tf -24.907 -20.65 Td [(y)]TJ
0 g 0 G
-/F8 9.9626 Tf 11.028 0 Td [(the)-333(lo)-28(cal)-333(p)-28(ortion)-333(of)-334(global)-333(dense)-333(matrix)]TJ/F11 9.9626 Tf 176.118 0 Td [(y)]TJ/F8 9.9626 Tf 5.242 0 Td [(.)]TJ -167.481 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.956 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(inout)]TJ/F8 9.9626 Tf 26.096 0 Td [(.)]TJ -59.582 -11.955 Td [(Sp)-28(eci\014ed)-255(as:)-405(a)-255(rank)-254(one)-255(or)-255(t)28(w)27(o)-254(arra)27(y)-254(or)-255(an)-255(ob)-55(jec)-1(t)-254(of)-255(t)28(yp)-28(e)]TJ
-0 0 1 rg 0 0 1 RG
-/F30 9.9626 Tf 244.743 0 Td [(psb)]TJ
ET
q
-1 0 0 1 385.864 429.186 cm
-[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S
+1 0 0 1 232.099 589.962 cm
+[]0 d 0 J 0.398 w 0 0 m 180.922 0 l S
Q
BT
-/F30 9.9626 Tf 389.002 428.986 Td [(T)]TJ
+/F11 9.9626 Tf 238.077 581.394 Td [(A)]TJ/F27 9.9626 Tf 120.41 0 Td [(F)96(unction)]TJ
ET
q
-1 0 0 1 394.86 429.186 cm
-[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S
+1 0 0 1 232.099 577.608 cm
+[]0 d 0 J 0.398 w 0 0 m 180.922 0 l S
Q
BT
-/F30 9.9626 Tf 397.998 428.986 Td [(vect)]TJ
+/F8 9.9626 Tf 238.077 569.04 Td [(Short)-333(Precision)-334(Real)-3102(psb)]TJ
ET
q
-1 0 0 1 419.547 429.186 cm
-[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S
+1 0 0 1 374.084 569.24 cm
+[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S
Q
BT
-/F30 9.9626 Tf 422.685 428.986 Td [(type)]TJ
-0 g 0 G
-/F8 9.9626 Tf -297.883 -11.955 Td [(con)28(taining)-345(n)28(um)28(b)-28(ers)-345(of)-345(t)28(yp)-28(e)-345(sp)-28(eci\014ed)-345(in)-345(T)84(able)]TJ
-0 0 1 rg 0 0 1 RG
- [-345(13)]TJ
-0 g 0 G
- [(.)-479(The)-345(rank)-345(of)]TJ/F11 9.9626 Tf 275.086 0 Td [(y)]TJ/F8 9.9626 Tf 8.678 0 Td [(m)28(ust)-345(b)-28(e)]TJ -283.764 -11.955 Td [(the)-333(same)-334(of)]TJ/F11 9.9626 Tf 53.466 0 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(.)]TJ
-0 g 0 G
-/F27 9.9626 Tf -84.067 -20.65 Td [(desc)]TJ
+/F8 9.9626 Tf 377.073 569.04 Td [(spnrmi)]TJ -138.996 -11.955 Td [(Long)-333(Precision)-334(Real)-3314(psb)]TJ
ET
q
-1 0 0 1 121.81 384.625 cm
-[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S
+1 0 0 1 374.084 557.284 cm
+[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S
Q
BT
-/F27 9.9626 Tf 125.247 384.426 Td [(a)]TJ
-0 g 0 G
-/F8 9.9626 Tf 10.551 0 Td [(con)28(tains)-334(d)1(ata)-334(structures)-333(for)-333(com)-1(m)28(unications.)]TJ -10.996 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.956 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(ob)-55(ject)-334(of)-333(t)28(yp)-28(e)]TJ
-0 0 1 rg 0 0 1 RG
-/F30 9.9626 Tf 135.658 0 Td [(psb)]TJ
+/F8 9.9626 Tf 377.073 557.085 Td [(spnrmi)]TJ -138.996 -11.955 Td [(Short)-333(Precision)-334(Complex)-1200(psb)]TJ
ET
q
-1 0 0 1 276.779 336.805 cm
-[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S
+1 0 0 1 374.084 545.329 cm
+[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S
Q
BT
-/F30 9.9626 Tf 279.917 336.605 Td [(desc)]TJ
+/F8 9.9626 Tf 377.073 545.13 Td [(spnrmi)]TJ -138.996 -11.955 Td [(Long)-333(Precision)-334(Complex)-1411(psb)]TJ
ET
q
-1 0 0 1 301.466 336.805 cm
-[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S
+1 0 0 1 374.084 533.374 cm
+[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S
Q
BT
-/F30 9.9626 Tf 304.604 336.605 Td [(type)]TJ
-0 g 0 G
-/F8 9.9626 Tf 20.922 0 Td [(.)]TJ
-0 g 0 G
-/F27 9.9626 Tf -225.631 -20.649 Td [(trans)]TJ
-0 g 0 G
-/F8 9.9626 Tf 30.609 0 Td [(sp)-28(ecify)-333(with)]TJ/F17 9.9626 Tf 55.68 0 Td [(unitd)]TJ/F8 9.9626 Tf 25.726 0 Td [(the)-333(op)-28(eration)-333(to)-334(p)-27(erform.)]TJ
-0 g 0 G
-/F27 9.9626 Tf -87.108 -20.65 Td [(trans)-383(=)-384('N')]TJ
-0 g 0 G
-/F8 9.9626 Tf 62.489 0 Td [(the)-333(op)-28(eration)-333(is)-334(with)-333(no)-333(transp)-28(osed)-333(matrix)]TJ
-0 g 0 G
-/F27 9.9626 Tf -62.489 -16.303 Td [(trans)-383(=)-384('T')]TJ
-0 g 0 G
-/F8 9.9626 Tf 61.493 0 Td [(the)-333(op)-28(eration)-333(is)-334(with)-333(transp)-28(osed)-333(matrix.)]TJ
-0 g 0 G
-/F27 9.9626 Tf -61.493 -16.302 Td [(trans)-383(=)-384('C')]TJ
-0 g 0 G
-/F8 9.9626 Tf 61.797 0 Td [(the)-333(op)-28(eration)-333(is)-334(with)-333(conjugate)-333(transp)-28(osed)-333(matrix.)]TJ -61.797 -20.65 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(global)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(optional)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.956 Td [(Default:)]TJ/F11 9.9626 Tf 39.436 0 Td [(tr)-28(ans)]TJ/F8 9.9626 Tf 27.052 0 Td [(=)]TJ/F11 9.9626 Tf 10.516 0 Td [(N)]TJ/F8 9.9626 Tf -77.004 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(c)28(haracter)-333(v)55(ariable.)]TJ
-0 g 0 G
-/F27 9.9626 Tf -24.907 -20.65 Td [(unitd)]TJ
-0 g 0 G
-/F8 9.9626 Tf 31.715 0 Td [(sp)-28(ecify)-333(with)]TJ/F17 9.9626 Tf 55.68 0 Td [(tr)51(ans)]TJ/F8 9.9626 Tf 25.089 0 Td [(the)-333(op)-28(eration)-333(to)-334(p)-27(erform.)]TJ
-0 g 0 G
-/F27 9.9626 Tf -87.577 -20.649 Td [(unitd)-383(=)-384('U')]TJ
-0 g 0 G
-/F8 9.9626 Tf 63.442 0 Td [(the)-333(op)-28(eration)-333(is)-334(with)-333(no)-333(scaling)]TJ
-0 g 0 G
-/F27 9.9626 Tf -63.442 -16.303 Td [(unitd)-383(=)-384('L')]TJ
-0 g 0 G
-/F8 9.9626 Tf 61.519 0 Td [(the)-333(op)-28(eration)-333(is)-334(with)-333(left)-333(scaling)]TJ
-0 g 0 G
-/F27 9.9626 Tf -61.519 -16.302 Td [(unitd)-383(=)-384('R')]TJ
-0 g 0 G
-/F8 9.9626 Tf 63.221 0 Td [(the)-333(op)-28(eration)-333(is)-334(with)-333(righ)28(t)-333(s)-1(calin)1(g.)]TJ
-0 g 0 G
- 78.747 -29.888 Td [(47)]TJ
-0 g 0 G
-ET
-
-endstream
-endobj
-1131 0 obj
-<<
-/Length 4678
->>
-stream
-0 g 0 G
+/F8 9.9626 Tf 377.073 533.175 Td [(spnrmi)]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
+Q
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
+/F8 9.9626 Tf 276.386 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 -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
+/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
0 g 0 G
+/F27 9.9626 Tf 0 -21.917 Td [(T)32(yp)-32(e:)]TJ
0 g 0 G
- 0 -15.94 Td [(psb_avg_)]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 -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 -19.925 Td [(a)]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
+/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
- [-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
+/F30 9.9626 Tf 135.658 0 Td [(psb)]TJ
+ET
+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
+/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
+/F8 9.9626 Tf 20.922 0 Td [(.)]TJ
0 g 0 G
- 0 -19.925 Td [(y)]TJ
+/F27 9.9626 Tf -236.091 -19.925 Td [(desc)]TJ
+ET
+q
+1 0 0 1 172.619 326.206 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
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
+/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
- [-333(13)]TJ
-0 g 0 G
- [(.)]TJ
+/F30 9.9626 Tf 135.659 0 Td [(psb)]TJ
+ET
+q
+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 330.727 278.186 Td [(desc)]TJ
+ET
+q
+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 355.414 278.186 Td [(type)]TJ
0 g 0 G
-/F27 9.9626 Tf -24.906 -19.925 Td [(info)]TJ
+/F8 9.9626 Tf 20.921 0 Td [(.)]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
+/F27 9.9626 Tf -225.63 -19.925 Td [(On)-383(Return)]TJ
0 g 0 G
- 141.968 -73.723 Td [(48)]TJ
0 g 0 G
-ET
-
-endstream
-endobj
-1136 0 obj
-<<
-/Length 632
->>
-stream
+ 0 -19.925 Td [(F)96(unction)-384(v)64(alue)]TJ
0 g 0 G
+/F8 9.9626 Tf 78.386 0 Td [(is)-333(the)-334(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
0 g 0 G
-BT
-/F16 14.3462 Tf 99.895 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)-28(ciated)-343(with)-344(a)-344(discretization)-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(discretization)-333(space)-333(see)]TJ
-0 0 1 rg 0 0 1 RG
- [-334(6)]TJ
+/F27 9.9626 Tf -24.906 -19.926 Td [(info)]TJ
0 g 0 G
- [(.)]TJ
+/F8 9.9626 Tf 23.758 0 Td [(Error)-333(co)-28(de.)]TJ 1.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
- 166.875 -569.96 Td [(49)]TJ
+ 141.968 -56.242 Td [(46)]TJ
0 g 0 G
ET
endstream
endobj
-1145 0 obj
+1134 0 obj
<<
-/Length 7227
+/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 [(psb)]TJ
ET
q
-1 0 0 1 171.761 706.328 cm
+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 175.796 706.129 Td [(halo)-375(|)-375(Halo)-375(Data)-375(Comm)31(unication)]TJ/F8 9.9626 Tf -25.091 -18.389 Td [(These)-333(subroutines)-334(gathers)-333(the)-333(v)55(alues)-333(of)-333(the)-334(halo)-333(elemen)28(ts:)]TJ/F11 9.9626 Tf 158.413 -23.188 Td [(x)]TJ/F14 9.9626 Tf 8.461 0 Td [(\040)]TJ/F11 9.9626 Tf 12.73 0 Td [(x)]TJ/F8 9.9626 Tf -179.604 -21.251 Td [(where:)]TJ
+/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
-/F11 9.9626 Tf 0 -19.391 Td [(x)]TJ
+/F8 9.9626 Tf 138.581 0 Td [(\0501\051)]TJ
+0 g 0 G
+/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.675 0 Td [(is)-333(a)-334(global)-333(dense)-333(submatrix.)]TJ
+/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 -18.081 Td [(A)]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
0 g 0 G
0 g 0 G
0 g 0 G
ET
q
-1 0 0 1 228.797 602.649 cm
+1 0 0 1 177.988 532.215 cm
[]0 d 0 J 0.398 w 0 0 m 187.526 0 l S
Q
BT
-/F11 9.9626 Tf 234.775 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.912 0 Td [(Subroutine)]TJ
+/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
ET
q
-1 0 0 1 228.797 590.295 cm
+1 0 0 1 177.988 519.862 cm
[]0 d 0 J 0.398 w 0 0 m 187.526 0 l S
Q
BT
-/F8 9.9626 Tf 234.775 581.727 Td [(In)28(teger)-9028(psb)]TJ
-ET
-q
-1 0 0 1 370.782 581.926 cm
-[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S
-Q
-BT
-/F8 9.9626 Tf 373.771 581.727 Td [(halo)]TJ -138.996 -11.955 Td [(Short)-333(Precision)-334(Real)-3102(psb)]TJ
+/F8 9.9626 Tf 183.966 511.294 Td [(Short)-333(Precision)-333(R)-1(eal)-3102(psb)]TJ
ET
q
-1 0 0 1 370.782 569.971 cm
+1 0 0 1 319.972 511.493 cm
[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S
Q
BT
-/F8 9.9626 Tf 373.771 569.772 Td [(halo)]TJ -138.996 -11.955 Td [(Long)-333(Precision)-334(Real)-3314(psb)]TJ
+/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
ET
q
-1 0 0 1 370.782 558.016 cm
+1 0 0 1 319.972 499.538 cm
[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S
Q
BT
-/F8 9.9626 Tf 373.771 557.817 Td [(halo)]TJ -138.996 -11.955 Td [(Short)-333(Precision)-334(Complex)-1200(psb)]TJ
+/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
ET
q
-1 0 0 1 370.782 546.061 cm
+1 0 0 1 319.972 487.583 cm
[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S
Q
BT
-/F8 9.9626 Tf 373.771 545.862 Td [(halo)]TJ -138.996 -11.956 Td [(Long)-333(Precision)-334(Complex)-1411(psb)]TJ
+/F8 9.9626 Tf 322.961 487.383 Td [(spmm)]TJ -138.995 -11.955 Td [(Long)-333(Precision)-334(Complex)-1411(psb)]TJ
ET
q
-1 0 0 1 370.782 534.106 cm
+1 0 0 1 319.972 475.627 cm
[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S
Q
BT
-/F8 9.9626 Tf 373.771 533.906 Td [(halo)]TJ
+/F8 9.9626 Tf 322.961 475.428 Td [(spmm)]TJ
ET
q
-1 0 0 1 228.797 530.121 cm
+1 0 0 1 177.988 471.642 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 502.081 Td [(T)83(able)-333(14:)-444(Data)-334(t)28(yp)-28(es)]TJ
+/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
+0 g 0 G
+0 g 0 G
+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
+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
+0 g 0 G
+/F27 9.9626 Tf -33.797 -19.575 Td [(On)-383(En)32(try)]TJ
+0 g 0 G
+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
+0 g 0 G
+ [(.)]TJ
0 g 0 G
+/F27 9.9626 Tf -24.907 -19.575 Td [(a)]TJ
0 g 0 G
-/F27 9.9626 Tf -124.304 -29.354 Td [(c)-138(a)-138(l)-139(l)]TJ/F8 9.9626 Tf 29.73 0 Td [(p)-122(s)-123(b)]TJ
+/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 201.066 472.926 cm
-[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S
+1 0 0 1 276.779 211.831 cm
+[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S
Q
BT
-/F8 9.9626 Tf 205.274 472.727 Td [(h)-122(a)-123(l)-122(o)-228(\050)-129(x)-210(,)-873(d)-113(e)-113(s)-112(c)]TJ
+/F30 9.9626 Tf 279.917 211.632 Td [(Tspmat)]TJ
ET
q
-1 0 0 1 276.854 472.926 cm
-[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S
+1 0 0 1 311.927 211.831 cm
+[]0 d 0 J 0.398 w 0 0 m 3.138 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
+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
Q
BT
-/F8 9.9626 Tf 280.965 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.73 0 Td [(p)-122(s)-123(b)]TJ
+/F30 9.9626 Tf 389.002 144.236 Td [(T)]TJ
ET
q
-1 0 0 1 201.066 460.971 cm
-[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S
+1 0 0 1 394.86 144.435 cm
+[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S
Q
BT
-/F8 9.9626 Tf 205.274 460.772 Td [(h)-122(a)-123(l)-122(o)-228(\050)-129(x)-210(,)-873(d)-113(e)-113(s)-112(c)]TJ
+/F30 9.9626 Tf 397.998 144.236 Td [(vect)]TJ
ET
q
-1 0 0 1 276.854 460.971 cm
-[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S
+1 0 0 1 419.547 144.435 cm
+[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S
Q
BT
-/F8 9.9626 Tf 280.965 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.303 0 Td [(d)-39(a)-39(t)-40(a)]TJ/F8 9.9626 Tf 24.572 0 Td [(\051)]TJ
+/F30 9.9626 Tf 422.685 144.236 Td [(type)]TJ
0 g 0 G
+/F8 9.9626 Tf -297.883 -11.955 Td [(con)28(taining)-342(n)28(um)28(b)-28(ers)-342(of)-342(t)28(yp)-28(e)-342(sp)-28(eci\014ed)-342(in)-341(T)83(able)]TJ
+0 0 1 rg 0 0 1 RG
+ [-342(12)]TJ
0 g 0 G
+ [(.)-470(The)-342(rank)-342(of)]TJ/F11 9.9626 Tf 274.694 0 Td [(x)]TJ/F8 9.9626 Tf 9.101 0 Td [(m)28(ust)-342(b)-28(e)]TJ -283.795 -11.955 Td [(the)-333(same)-334(of)]TJ/F11 9.9626 Tf 53.466 0 Td [(y)]TJ/F8 9.9626 Tf 5.242 0 Td [(.)]TJ
0 g 0 G
-/F27 9.9626 Tf -246.135 -26.961 Td [(T)32(yp)-32(e:)]TJ
+ 83.26 -29.888 Td [(47)]TJ
0 g 0 G
-/F8 9.9626 Tf 33.797 0 Td [(Sync)28(hronous.)]TJ
+ET
+
+endstream
+endobj
+1149 0 obj
+<<
+/Length 6975
+>>
+stream
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
+BT
+/F27 9.9626 Tf 150.705 706.129 Td [(b)-32(eta)]TJ
0 g 0 G
-/F8 9.9626 Tf 11.028 0 Td [(global)-333(dense)-334(matrix)]TJ/F11 9.9626 Tf 88.917 0 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(.)]TJ -80.732 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.378 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.378 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.956 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.485 0 Td [(inout)]TJ/F8 9.9626 Tf 26.097 0 Td [(.)]TJ -59.582 -11.955 Td [(Sp)-28(eci\014ed)-255(as:)-405(a)-255(rank)-254(one)-255(or)-255(t)28(w)28(o)-255(arra)28(y)-255(or)-255(an)-255(ob)-55(ject)-255(of)-255(t)28(yp)-28(e)]TJ
+/F8 9.9626 Tf 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
-/F30 9.9626 Tf 244.742 0 Td [(psb)]TJ
+ [-333(12)]TJ
+0 g 0 G
+ [(.)]TJ
+0 g 0 G
+/F27 9.9626 Tf -24.906 -18.453 Td [(y)]TJ
+0 g 0 G
+/F8 9.9626 Tf 11.028 0 Td [(the)-333(lo)-28(cal)-333(p)-28(ortion)-333(of)-334(global)-333(dense)-333(matrix)]TJ/F11 9.9626 Tf 176.118 0 Td [(y)]TJ/F8 9.9626 Tf 5.242 0 Td [(.)]TJ -167.482 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.956 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.612 0 Td [(required)]TJ/F8 9.9626 Tf -29.612 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(inout)]TJ/F8 9.9626 Tf 26.096 0 Td [(.)]TJ -59.582 -11.955 Td [(Sp)-28(eci\014ed)-255(as:)-405(a)-255(rank)-254(one)-255(or)-255(t)28(w)27(o)-254(arra)27(y)-254(or)-255(an)-255(ob)-56(j)1(e)-1(ct)-254(of)-255(t)28(yp)-28(e)]TJ
+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 346.872 cm
+1 0 0 1 436.673 592.233 cm
[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S
Q
BT
-/F30 9.9626 Tf 439.811 346.673 Td [(T)]TJ
+/F30 9.9626 Tf 439.811 592.034 Td [(T)]TJ
ET
q
-1 0 0 1 445.669 346.872 cm
+1 0 0 1 445.669 592.233 cm
[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S
Q
BT
-/F30 9.9626 Tf 448.807 346.673 Td [(vect)]TJ
+/F30 9.9626 Tf 448.807 592.034 Td [(vect)]TJ
ET
q
-1 0 0 1 470.356 346.872 cm
+1 0 0 1 470.356 592.233 cm
[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S
Q
BT
-/F30 9.9626 Tf 473.495 346.673 Td [(type)]TJ
+/F30 9.9626 Tf 473.495 592.034 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.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
- [-333(14)]TJ
+ [-345(12)]TJ
0 g 0 G
- [(.)]TJ
+ [(.)-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 -24.906 -19.658 Td [(desc)]TJ
+/F27 9.9626 Tf -84.067 -18.454 Td [(desc)]TJ
ET
q
-1 0 0 1 172.619 315.259 cm
+1 0 0 1 172.619 549.87 cm
[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S
Q
BT
-/F27 9.9626 Tf 176.057 315.06 Td [(a)]TJ
+/F27 9.9626 Tf 176.057 549.67 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.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 [(in)]TJ/F8 9.9626 Tf 9.548 0 Td [(.)]TJ -43.034 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(structured)-333(data)-333(of)-334(t)28(yp)-28(e)]TJ
+/F8 9.9626 Tf 10.55 0 Td [(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 170.915 0 Td [(psb)]TJ
+/F30 9.9626 Tf 135.659 0 Td [(psb)]TJ
ET
q
-1 0 0 1 362.845 267.438 cm
+1 0 0 1 327.588 502.049 cm
[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S
Q
BT
-/F30 9.9626 Tf 365.983 267.239 Td [(desc)]TJ
+/F30 9.9626 Tf 330.727 501.85 Td [(desc)]TJ
ET
q
-1 0 0 1 387.532 267.438 cm
+1 0 0 1 352.275 502.049 cm
[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S
Q
BT
-/F30 9.9626 Tf 390.67 267.239 Td [(type)]TJ
+/F30 9.9626 Tf 355.414 501.85 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.658 Td [(w)32(ork)]TJ
-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.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)-333(as:)-445(a)-333(rank)-333(one)-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 220.756 0 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(.)]TJ
+/F8 9.9626 Tf 20.921 0 Td [(.)]TJ
0 g 0 G
-/F27 9.9626 Tf -251.356 -19.659 Td [(data)]TJ
+/F27 9.9626 Tf -225.63 -18.454 Td [(trans)]TJ
0 g 0 G
-/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
+/F8 9.9626 Tf 30.609 0 Td [(indicates)-333(what)-334(kind)-333(of)-333(op)-28(eration)-333(to)-333(p)-28(erform.)]TJ
0 g 0 G
- 141.968 -29.888 Td [(50)]TJ
+/F27 9.9626 Tf -5.703 -18.453 Td [(trans)-383(=)-384(N)]TJ
0 g 0 G
-ET
-
-endstream
-endobj
-1155 0 obj
-<<
-/Length 3199
->>
-stream
+/F8 9.9626 Tf 56.124 0 Td [(the)-333(op)-28(eration)-333(is)-334(sp)-28(eci\014ed)-333(b)28(y)-333(equation)]TJ
+0 0 1 rg 0 0 1 RG
+ [-334(1)]TJ
0 g 0 G
0 g 0 G
+/F27 9.9626 Tf -56.124 -14.469 Td [(trans)-383(=)-384(T)]TJ
0 g 0 G
-BT
-/F27 9.9626 Tf 99.895 706.129 Td [(On)-383(Return)]TJ
+/F8 9.9626 Tf 55.128 0 Td [(the)-333(op)-28(eration)-333(is)-334(sp)-28(eci\014ed)-333(b)28(y)-333(equation)]TJ
+0 0 1 rg 0 0 1 RG
+ [-334(2)]TJ
0 g 0 G
0 g 0 G
- 0 -19.925 Td [(x)]TJ
+/F27 9.9626 Tf -55.128 -14.468 Td [(trans)-383(=)-384(C)]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 [(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
+/F8 9.9626 Tf 55.433 0 Td [(the)-333(op)-28(eration)-333(is)-334(sp)-27(ec)-1(i\014)1(e)-1(d)-333(b)28(y)-333(equation)]TJ
0 0 1 rg 0 0 1 RG
- [-333(14)]TJ
+ [-334(3)]TJ
0 g 0 G
- [(.)]TJ
+ -55.433 -18.453 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(global)]TJ/F8 9.9626 Tf -32.379 -11.956 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.612 0 Td [(optional)]TJ/F8 9.9626 Tf -29.612 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.955 Td [(Default:)]TJ/F11 9.9626 Tf 39.436 0 Td [(tr)-28(ans)]TJ/F8 9.9626 Tf 27.052 0 Td [(=)]TJ/F11 9.9626 Tf 10.517 0 Td [(N)]TJ/F8 9.9626 Tf -77.005 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(c)28(haracter)-334(v)56(ariable.)]TJ
0 g 0 G
-/F27 9.9626 Tf -24.907 -19.926 Td [(info)]TJ
+/F27 9.9626 Tf -24.906 -18.454 Td [(w)32(ork)]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.242 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.611 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(that)-333(con)28(tains)-333(an)-334(error)-333(co)-28(de.)]TJ
+/F8 9.9626 Tf 29.431 0 Td [(w)28(ork)-334(arr)1(a)27(y)84(.)]TJ -4.525 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.612 0 Td [(optional)]TJ/F8 9.9626 Tf -29.612 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(inout)]TJ/F8 9.9626 Tf 26.096 0 Td [(.)]TJ -59.582 -11.955 Td [(Sp)-28(eci\014ed)-487(as:)-753(a)-487(rank)-488(one)-487(arra)28(y)-488(of)-487(the)-488(same)-487(t)27(yp)-27(e)-488(of)]TJ/F11 9.9626 Tf 239.183 0 Td [(x)]TJ/F8 9.9626 Tf 10.551 0 Td [(and)]TJ/F11 9.9626 Tf 20.907 0 Td [(y)]TJ/F8 9.9626 Tf 10.099 0 Td [(with)-487(the)]TJ -280.74 -11.955 Td [(T)83(AR)28(GET)-333(attribute.)]TJ
0 g 0 G
+/F27 9.9626 Tf -24.906 -18.454 Td [(On)-383(Return)]TJ
0 g 0 G
0 g 0 G
-ET
-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
-Q
+ 0 -18.453 Td [(y)]TJ
0 g 0 G
-1 0 0 1 -159.702 -337.279 cm
-BT
-/F8 9.9626 Tf 189.268 305.398 Td [(Figure)-333(7:)-445(Sample)-333(discretization)-333(mes)-1(h)1(.)]TJ
+/F8 9.9626 Tf 11.028 0 Td [(the)-333(lo)-28(cal)-333(p)-28(ortion)-333(of)-334(result)-333(matrix)]TJ/F11 9.9626 Tf 147.364 0 Td [(y)]TJ/F8 9.9626 Tf 5.242 0 Td [(.)]TJ -138.728 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.956 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.612 0 Td [(required)]TJ/F8 9.9626 Tf -29.612 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(inout)]TJ/F8 9.9626 Tf 26.096 0 Td [(.)]TJ -59.582 -11.955 Td [(Sp)-28(eci\014ed)-474(as:)-727(an)-475(arra)28(y)-475(of)-474(rank)-475(one)-474(or)-475(t)28(w)28(o)-475(con)28(taining)-474(n)27(um)28(b)-28(ers)-474(of)-475(t)28(yp)-28(e)]TJ 0 -11.955 Td [(sp)-28(eci\014ed)-333(in)-333(T)83(able)]TJ
+0 0 1 rg 0 0 1 RG
+ [-333(12)]TJ
0 g 0 G
+ [(.)]TJ
0 g 0 G
-/F16 11.9552 Tf -89.373 -23.91 Td [(Usage)-381(Example)]TJ/F8 9.9626 Tf 93.981 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
+/F27 9.9626 Tf -24.906 -18.454 Td [(info)]TJ
0 g 0 G
- [(,)-339(parti-)]TJ -93.981 -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)-422(in)-421(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(ind)1(ice)-1(s)-340(33)-340(through)-341(40.)-465(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.006 0 Td [(x)]TJ/F8 9.9626 Tf 9.913 0 Td [(v)28(ector,)-446(and)-424(pr)1(o)-28(cess)-424(1)-423(assigns)-424(a)-423(v)55(alue)]TJ -178.919 -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(ts)-349(of)-349(the)-349(lo)-27(c)-1(al)-349(v)28(ectors)-349(will)-349(b)-28(e)-349(the)]TJ -153.859 -11.955 Td [(follo)28(wing:)]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)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
- 166.875 -119.319 Td [(51)]TJ
+ 141.968 -38.108 Td [(48)]TJ
0 g 0 G
ET
endstream
endobj
-1151 0 obj
+1155 0 obj
<<
-/Type /XObject
-/Subtype /Form
-/FormType 1
-/PTEX.FileName (./figures/try8x8.pdf)
-/PTEX.PageNumber 1
-/PTEX.InfoDict 1158 0 R
-/BBox [0 0 498 439]
-/Resources <<
-/ProcSet [ /PDF /Text ]
-/ExtGState <<
-/R7 1159 0 R
->>/Font << /R8 1160 0 R/R10 1161 0 R>>
->>
-/Length 3349
-/Filter /FlateDecode
->>
-stream
-x]$~tkXtjY}-qWWfDFr$ɬo1d%gro}=1s<h^ٽ}cVz_=>⩽ǎ'!w;\)n BBZ!-$ 5=OztRZHLk/ DX=&cZ b!r+@x1d-G5 G||7|+_@dn@-Edk ИD-^ {Ldkc"{ˑ=&q