diff --git a/Make.inc.in b/Make.inc.in index 4266526f..cd2d7179 100755 --- a/Make.inc.in +++ b/Make.inc.in @@ -11,10 +11,8 @@ # The following ones are the variables used by the PSBLAS make scripts. -F90=@F90@ FC=@FC@ CC=@CC@ -F90COPT=@F90COPT@ FCOPT=@FCOPT@ CCOPT=@CCOPT@ FMFLAG=@FMFLAG@ @@ -22,12 +20,10 @@ FIFLAG=@FIFLAG@ EXTRA_OPT=@EXTRA_OPT@ # These three should be always set! -MPF90=@MPF90@ -MPF77=@MPF77@ -MPCC=@MPCC@ +MPFC=@MPIFC@ +MPCC=@MPICC@ -F90LINK=$(MPF90) -FLINK=$(MPF77) +FLINK=$(MPFC) LIBS=@LIBS@ diff --git a/base/comm/Makefile b/base/comm/Makefile index ba12bddf..63c46043 100644 --- a/base/comm/Makefile +++ b/base/comm/Makefile @@ -21,7 +21,7 @@ lib: interns mpfobjs $(OBJS) interns: cd internals && $(MAKE) lib mpfobjs: - $(MAKE) $(MPFOBJS) F90="$(MPF90)" FC="$(MPF90)" FCOPT="$(F90COPT)" + $(MAKE) $(MPFOBJS) FC="$(MPFC)" clean: diff --git a/base/internals/Makefile b/base/internals/Makefile index 9ab348be..66276c8a 100644 --- a/base/internals/Makefile +++ b/base/internals/Makefile @@ -2,11 +2,8 @@ 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 - -FOBJS2 = psi_exist_ovr_elem.o psi_list_search.o srtlist.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 MPFOBJS = psi_desc_index.o psi_extrct_dl.o \ psi_fnd_owner.o psb_indx_map_fnd_owner.o @@ -24,7 +21,7 @@ lib: mpfobjs $(FOBJS) $(FOBJS2) $(COBJS) $(MPFOBJS2) $(MPFOBJS) $(FOBJS) $(FBOJS2): $(MODDIR)/psi_mod.o mpfobjs: (make $(MPFOBJS) F90="$(MPF90)" FC="$(MPF90)" FCOPT="$(F90COPT)") - (make $(FOBJS2) F90="$(MPF77)" FC="$(MPF77)" FCOPT="$(FCOPT)") + clean: /bin/rm -f $(MPFOBJS) $(FOBJS) $(COBJS) $(FOBJS2) $(MPFOBJS2) *$(.mod) diff --git a/base/internals/psi_exist_ovr_elem.f b/base/internals/psi_exist_ovr_elem.f deleted file mode 100644 index bbb6f5a3..00000000 --- a/base/internals/psi_exist_ovr_elem.f +++ /dev/null @@ -1,74 +0,0 @@ -C -C Parallel Sparse BLAS version 3.5 -C (C) Copyright 2006, 2010, 2015, 2017 -C Salvatore Filippone Cranfield University -C Alfredo Buttari CNRS-IRIT, Toulouse -C -C Redistribution and use in source and binary forms, with or without -C modification, are permitted provided that the following conditions -C are met: -C 1. Redistributions of source code must retain the above copyright -C notice, this list of conditions and the following disclaimer. -C 2. Redistributions in binary form must reproduce the above copyright -C notice, this list of conditions, and the following disclaimer in the -C documentation and/or other materials provided with the distribution. -C 3. The name of the PSBLAS group or the names of its contributors may -C not be used to endorse or promote products derived from this -C software without specific written permission. -C -C THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -C ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED -C TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -C PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE PSBLAS GROUP OR ITS CONTRIBUTORS -C BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -C CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -C SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -C INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -C CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -C ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -C POSSIBILITY OF SUCH DAMAGE. -C -C - INTEGER FUNCTION PSI_EXIST_OVR_ELEM(OVR_ELEM, - + DIM_LIST,ELEM_SEARCHED) - use psb_const_mod -C PURPOSE: -C == = ==== -C -C If ELEM_SEARCHED exist in the list OVR_ELEM returns its position in -C the list, else returns -1 -C -C -C INPUT -C == = === -C OVRLAP_ELEMENT_D.: Contains for all overlap points belonging to -C the current process: -C 1. overlap point index -C 2. Number of domains sharing that overlap point -C the end is marked by a -1............................... -C -C DIM_LIST..........: Dimension of list OVRLAP_ELEMENT_D -C -C ELEM_SEARCHED.....:point's Local index identifier to be searched. - - IMPLICIT NONE - -C ....Scalars parameters.... - INTEGER(psb_ipk_) :: DIM_LIST,ELEM_SEARCHED -C ...Array Parameters.... - INTEGER(psb_ipk_) :: OVR_ELEM(DIM_LIST,*) - -C ...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 - diff --git a/base/internals/psi_exist_ovr_elem.f90 b/base/internals/psi_exist_ovr_elem.f90 new file mode 100644 index 00000000..bdfc435f --- /dev/null +++ b/base/internals/psi_exist_ovr_elem.f90 @@ -0,0 +1,73 @@ +! +! Parallel Sparse BLAS version 3.5 +! (C) Copyright 2006, 2010, 2015, 2017 +! Salvatore Filippone Cranfield University +! 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/internals/psi_list_search.f b/base/internals/psi_list_search.f deleted file mode 100644 index f08aca12..00000000 --- a/base/internals/psi_list_search.f +++ /dev/null @@ -1,57 +0,0 @@ -C -C Parallel Sparse BLAS version 3.5 -C (C) Copyright 2006, 2010, 2015, 2017 -C Salvatore Filippone Cranfield University -C Alfredo Buttari CNRS-IRIT, Toulouse -C -C Redistribution and use in source and binary forms, with or without -C modification, are permitted provided that the following conditions -C are met: -C 1. Redistributions of source code must retain the above copyright -C notice, this list of conditions and the following disclaimer. -C 2. Redistributions in binary form must reproduce the above copyright -C notice, this list of conditions, and the following disclaimer in the -C documentation and/or other materials provided with the distribution. -C 3. The name of the PSBLAS group or the names of its contributors may -C not be used to endorse or promote products derived from this -C software without specific written permission. -C -C THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -C ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED -C TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -C PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE PSBLAS GROUP OR ITS CONTRIBUTORS -C BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -C CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -C SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -C INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -C CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -C ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -C POSSIBILITY OF SUCH DAMAGE. -C -C - INTEGER FUNCTION PSI_LIST_SEARCH(LIST,LENGHT_LIST,ELEM) - use psb_const_mod -C !RETURNS POSITION OF ELEM IN A ARRAY LIST -C !OF LENGHT LENGHT_LIST, IF THIS ELEMENT NOT EXISTS -C !RETURNS -1 - INTEGER(psb_ipk_) :: LIST(*) - INTEGER(psb_ipk_) :: LENGHT_LIST - INTEGER(psb_ipk_) :: ELEM - - INTEGER(psb_ipk_) :: I - - I=1 - DO WHILE ((I.LE.LENGHT_LIST).AND.(LIST(I).NE.ELEM)) - I=I+1 - ENDDO - IF (I.LE.LENGHT_LIST) THEN - IF (LIST(I).EQ.ELEM) THEN - PSI_LIST_SEARCH=I - ELSE - PSI_LIST_SEARCH=-1 - ENDIF - ELSE - PSI_LIST_SEARCH=-1 - ENDIF - END - diff --git a/base/internals/psi_list_search.f90 b/base/internals/psi_list_search.f90 new file mode 100644 index 00000000..9c66bf61 --- /dev/null +++ b/base/internals/psi_list_search.f90 @@ -0,0 +1,58 @@ +! +! Parallel Sparse BLAS version 3.5 +! (C) Copyright 2006, 2010, 2015, 2017 +! Salvatore Filippone Cranfield University +! 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_list_search(list,lenght_list,elem) + use psb_const_mod + implicit none + !returns position of elem in a array list + !of lenght lenght_list, if this element does not exist + !returns -1 + integer(psb_ipk_) :: list(*) + integer(psb_ipk_) :: lenght_list + integer(psb_ipk_) :: elem + + integer(psb_ipk_) :: i + + i=1 + do while ((i.le.lenght_list).and.(list(i).ne.elem)) + i=i+1 + enddo + if (i.le.lenght_list) then + if (list(i).eq.elem) then + psi_list_search=i + else + psi_list_search=-1 + endif + else + psi_list_search=-1 + endif +end function psi_list_search + diff --git a/base/internals/psi_srtlist.f90 b/base/internals/psi_srtlist.f90 new file mode 100644 index 00000000..a9013e78 --- /dev/null +++ b/base/internals/psi_srtlist.f90 @@ -0,0 +1,203 @@ +! +! Parallel Sparse BLAS version 3.5 +! (C) Copyright 2006, 2010, 2015, 2017 +! Salvatore Filippone Cranfield University +! 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. +! +! +!********************************************************************** +! * +! The communication step among processors at each * +! matrix-vector product is a variable all-to-all * +! collective communication that we reimplement * +! in terms of point-to-point communications. * +! The data in input is a list of dependencies: * +! for each node a list of all the nodes it has to * +! communicate with. The lists are guaranteed to be * +! symmetric, i.e. for each pair (I,J) there is a * +! pair (J,I). The idea is to organize the ordering * +! so that at each communication step as many * +! processors as possible are communicating at the * +! same time, i.e. a step is defined by the fact * +! that all edges (I,J) in it have no common node. * +! * +! Formulation of the problem is: * +! Given an undirected graph (forest): * +! Find the shortest series of steps to cancel all * +! graph edges, where at each step all edges belonging * +! to a matching in the graph are canceled. * +! * +! An obvious lower bound to the optimum number of steps * +! is the largest degree of any node in the graph. * +! * +! The algorithm proceeds as follows: * +! 1. Build a list of all edges, e.g. copy the * +! dependencies lists keeping only (I,J) with Im)) then - write(psb_err_unit,*) - + ' NUMBMM: Problem with A ',i,jj,j,m - endif - - do 20 k = ib(j),ib(j+1)-1 - if((jb(k)<1).or. (jb(k) > maxlmn)) then - write(psb_err_unit,*) - + ' NUMBMM: jb problem',j,k,jb(k),maxlmn - else - temp(jb(k)) = temp(jb(k)) + ajj * b(k) - endif - 20 continue - 30 continue -c c = d + ... - if (diagc.eq.1 .and. i.le.minln) then - c(i) = temp(i) - temp(i) = 0. - endif -c$$$ if (mod(i,100) == 1) -c$$$ + write(psb_err_unit,*) -c$$$ ' NUMBMM: Fixing row ',i,ic(i),ic(i+1)-1 - do 40 j = ic(i),ic(i+1)-1 - if((jc(j)<1).or. (jc(j) > maxlmn)) then - write(psb_err_unit,*) - + ' NUMBMM: output problem',i,j,jc(j),maxlmn - else - c(j) = temp(jc(j)) - temp(jc(j)) = 0. - endif - 40 continue - 50 continue - return - end diff --git a/base/serial/f77/daxpby.f b/base/serial/f77/daxpby.f deleted file mode 100644 index 019f4fe3..00000000 --- a/base/serial/f77/daxpby.f +++ /dev/null @@ -1,198 +0,0 @@ -C -C Parallel Sparse BLAS version 3.5 -C (C) Copyright 2006, 2010, 2015, 2017 -C Salvatore Filippone Cranfield University -C Alfredo Buttari CNRS-IRIT, Toulouse -C -C Redistribution and use in source and binary forms, with or without -C modification, are permitted provided that the following conditions -C are met: -C 1. Redistributions of source code must retain the above copyright -C notice, this list of conditions and the following disclaimer. -C 2. Redistributions in binary form must reproduce the above copyright -C notice, this list of conditions, and the following disclaimer in the -C documentation and/or other materials provided with the distribution. -C 3. The name of the PSBLAS group or the names of its contributors may -C not be used to endorse or promote products derived from this -C software without specific written permission. -C -C THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -C ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED -C TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -C PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE PSBLAS GROUP OR ITS CONTRIBUTORS -C BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -C CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -C SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -C INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -C CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -C ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -C POSSIBILITY OF SUCH DAMAGE. -C -C - subroutine daxpby(m, n, alpha, X, lldx, beta, Y, lldy, info) - use psb_const_mod - integer(psb_ipk_) :: n, m, lldx, lldy, info - real(psb_dpk_) X(lldx,*), Y(lldy,*) - real(psb_dpk_) alpha, beta - integer(psb_ipk_) :: i, j - integer(psb_ipk_) :: int_err(5) - character name*20 - name='daxpby' - - -C -C Error handling -C - info = psb_success_ - if (m.lt.0) then - info=psb_err_iarg_neg_ - int_err(1)=1 - int_err(2)=m - call fcpsb_errpush(info,name,int_err) - goto 9999 - else if (n.lt.0) then - info=psb_err_iarg_neg_ - int_err(1)=1 - int_err(2)=n - call fcpsb_errpush(info,name,int_err) - goto 9999 - else if (lldx.lt.max(1,m)) then - info=psb_err_iarg_not_gtia_ii_ - int_err(1)=5 - int_err(2)=1 - int_err(3)=lldx - int_err(4)=m - call fcpsb_errpush(info,name,int_err) - goto 9999 - else if (lldy.lt.max(1,m)) then - info=psb_err_iarg_not_gtia_ii_ - int_err(1)=8 - int_err(2)=1 - int_err(3)=lldy - int_err(4)=m - call fcpsb_errpush(info,name,int_err) - goto 9999 - endif - - if (alpha.eq.dzero) then - if (beta.eq.dzero) then - do j=1, n - do i=1,m - y(i,j) = dzero - enddo - enddo - else if (beta.eq.done) then -c$$$ -c$$$ Do nothing! -c$$$ - - else if (beta.eq.-done) then - do j=1,n - do i=1,m - y(i,j) = - y(i,j) - enddo - enddo - else - do j=1,n - do i=1,m - y(i,j) = beta*y(i,j) - enddo - enddo - endif - - else if (alpha.eq.done) then - - if (beta.eq.dzero) then - do j=1,n - do i=1,m - y(i,j) = x(i,j) - enddo - enddo - else if (beta.eq.done) then - do j=1,n - do i=1,m - y(i,j) = x(i,j) + y(i,j) - enddo - enddo - - else if (beta.eq.-done) then - do j=1,n - do i=1,m - y(i,j) = x(i,j) - y(i,j) - enddo - enddo - else - do j=1,n - do i=1,m - y(i,j) = x(i,j) + beta*y(i,j) - enddo - enddo - endif - - else if (alpha.eq.-done) then - - if (beta.eq.dzero) then - do j=1,n - do i=1,m - y(i,j) = -x(i,j) - enddo - enddo - else if (beta.eq.done) then - do j=1,n - do i=1,m - y(i,j) = -x(i,j) + y(i,j) - enddo - enddo - - else if (beta.eq.-done) then - do j=1,n - do i=1,m - y(i,j) = -x(i,j) - y(i,j) - enddo - enddo - else - do j=1,n - do i=1,m - y(i,j) = -x(i,j) + beta*y(i,j) - enddo - enddo - endif - - else - - if (beta.eq.dzero) then - do j=1,n - do i=1,m - y(i,j) = alpha*x(i,j) - enddo - enddo - else if (beta.eq.done) then - do j=1,n - do i=1,m - y(i,j) = alpha*x(i,j) + y(i,j) - enddo - enddo - - else if (beta.eq.-done) then - do j=1,n - do i=1,m - y(i,j) = alpha*x(i,j) - y(i,j) - enddo - enddo - else - do j=1,n - do i=1,m - y(i,j) = alpha*x(i,j) + beta*y(i,j) - enddo - enddo - endif - - endif - - return - - 9999 continue - call fcpsb_serror() - return - - end diff --git a/base/serial/f77/dnumbmm.f b/base/serial/f77/dnumbmm.f deleted file mode 100644 index 6f387e0a..00000000 --- a/base/serial/f77/dnumbmm.f +++ /dev/null @@ -1,85 +0,0 @@ -c == ===================================================================== -c Sparse Matrix Multiplication Package -c -c Randolph E. Bank and Craig C. Douglas -c -c na.bank@na-net.ornl.gov and na.cdouglas@na-net.ornl.gov -c -c Compile this with the following command (or a similar one): -c -c f77 -c -O smmp.f -c -c == ===================================================================== - subroutine dnumbmm(n, m, l, - * ia, ja, diaga, a, - * ib, jb, diagb, b, - * ic, jc, diagc, c, - * temp) - use psb_const_mod -c - integer(psb_ipk_) :: ia(*), ja(*), diaga, - * ib(*), jb(*), diagb, - * ic(*), jc(*), diagc -c - real(psb_dpk_) :: a(*), b(*), c(*), temp(*),ajj -c -c numeric matrix multiply c=a*b -c - maxlmn = max(l,m,n) - do 10 i = 1,maxlmn - temp(i) = 0. - 10 continue - minlm = min(l,m) - minln = min(l,n) - minmn = min(m,n) -c -c c = a*b -c - do 50 i = 1,n - do 30 jj = ia(i),ia(i+1) -c a = d + ... - if (jj.eq.ia(i+1)) then - if (diaga.eq.0 .or. i.gt.minmn) goto 30 - j = i - ajj = a(i) - else - j=ja(jj) - ajj = a(jj) - endif -c b = d + ... - if (diagb.eq.1 .and. j.le.minlm) - * temp(j) = temp(j) + ajj * b(j) - if ((j<1).or.(j>m)) then - write(psb_err_unit,*) - + ' NUMBMM: Problem with A ',i,jj,j,m - endif - - do 20 k = ib(j),ib(j+1)-1 - if((jb(k)<1).or. (jb(k) > maxlmn)) then - write(psb_err_unit,*) - + ' NUMBMM: jb problem',j,k,jb(k),maxlmn - else - temp(jb(k)) = temp(jb(k)) + ajj * b(k) - endif - 20 continue - 30 continue -c c = d + ... - if (diagc.eq.1 .and. i.le.minln) then - c(i) = temp(i) - temp(i) = 0. - endif -c$$$ if (mod(i,100) == 1) -c$$$ + write(psb_err_unit,*) -c$$$ ' NUMBMM: Fixing row ',i,ic(i),ic(i+1)-1 - do 40 j = ic(i),ic(i+1)-1 - if((jc(j)<1).or. (jc(j) > maxlmn)) then - write(psb_err_unit,*) - + ' NUMBMM: output problem',i,j,jc(j),maxlmn - else - c(j) = temp(jc(j)) - temp(jc(j)) = 0. - endif - 40 continue - 50 continue - return - end diff --git a/base/serial/f77/iaxpby.f b/base/serial/f77/iaxpby.f deleted file mode 100644 index 5b48c264..00000000 --- a/base/serial/f77/iaxpby.f +++ /dev/null @@ -1,198 +0,0 @@ -C -C Parallel Sparse BLAS version 3.5 -C (C) Copyright 2006, 2010, 2015, 2017 -C Salvatore Filippone Cranfield University -C Alfredo Buttari CNRS-IRIT, Toulouse -C -C Redistribution and use in source and binary forms, with or without -C modification, are permitted provided that the following conditions -C are met: -C 1. Redistributions of source code must retain the above copyright -C notice, this list of conditions and the following disclaimer. -C 2. Redistributions in binary form must reproduce the above copyright -C notice, this list of conditions, and the following disclaimer in the -C documentation and/or other materials provided with the distribution. -C 3. The name of the PSBLAS group or the names of its contributors may -C not be used to endorse or promote products derived from this -C software without specific written permission. -C -C THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -C ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED -C TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -C PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE PSBLAS GROUP OR ITS CONTRIBUTORS -C BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -C CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -C SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -C INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -C CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -C ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -C POSSIBILITY OF SUCH DAMAGE. -C -C - subroutine iaxpby(m, n, alpha, X, lldx, beta, Y, lldy, info) - use psb_const_mod - integer n, m, lldx, lldy, info - integer(psb_ipk_) X(lldx,*), Y(lldy,*) - integer(psb_ipk_) alpha, beta - integer(psb_ipk_) :: i, j - integer(psb_ipk_) :: int_err(5) - character name*20 - name='saxpby' - - -C -C Error handling -C - info = psb_success_ - if (m.lt.0) then - info=psb_err_iarg_neg_ - int_err(1)=1 - int_err(2)=m - call fcpsb_errpush(info,name,int_err) - goto 9999 - else if (n.lt.0) then - info=psb_err_iarg_neg_ - int_err(1)=1 - int_err(2)=n - call fcpsb_errpush(info,name,int_err) - goto 9999 - else if (lldx.lt.max(1,m)) then - info=psb_err_iarg_not_gtia_ii_ - int_err(1)=5 - int_err(2)=1 - int_err(3)=lldx - int_err(4)=m - call fcpsb_errpush(info,name,int_err) - goto 9999 - else if (lldy.lt.max(1,m)) then - info=psb_err_iarg_not_gtia_ii_ - int_err(1)=8 - int_err(2)=1 - int_err(3)=lldy - int_err(4)=m - call fcpsb_errpush(info,name,int_err) - goto 9999 - endif - - if (alpha.eq.izero) then - if (beta.eq.izero) then - do j=1, n - do i=1,m - y(i,j) = izero - enddo - enddo - else if (beta.eq.ione) then -c$$$ -c$$$ Do nothing! -c$$$ - - else if (beta.eq.-ione) then - do j=1,n - do i=1,m - y(i,j) = - y(i,j) - enddo - enddo - else - do j=1,n - do i=1,m - y(i,j) = beta*y(i,j) - enddo - enddo - endif - - else if (alpha.eq.ione) then - - if (beta.eq.izero) then - do j=1,n - do i=1,m - y(i,j) = x(i,j) - enddo - enddo - else if (beta.eq.ione) then - do j=1,n - do i=1,m - y(i,j) = x(i,j) + y(i,j) - enddo - enddo - - else if (beta.eq.-ione) then - do j=1,n - do i=1,m - y(i,j) = x(i,j) - y(i,j) - enddo - enddo - else - do j=1,n - do i=1,m - y(i,j) = x(i,j) + beta*y(i,j) - enddo - enddo - endif - - else if (alpha.eq.-ione) then - - if (beta.eq.izero) then - do j=1,n - do i=1,m - y(i,j) = -x(i,j) - enddo - enddo - else if (beta.eq.ione) then - do j=1,n - do i=1,m - y(i,j) = -x(i,j) + y(i,j) - enddo - enddo - - else if (beta.eq.-ione) then - do j=1,n - do i=1,m - y(i,j) = -x(i,j) - y(i,j) - enddo - enddo - else - do j=1,n - do i=1,m - y(i,j) = -x(i,j) + beta*y(i,j) - enddo - enddo - endif - - else - - if (beta.eq.izero) then - do j=1,n - do i=1,m - y(i,j) = alpha*x(i,j) - enddo - enddo - else if (beta.eq.ione) then - do j=1,n - do i=1,m - y(i,j) = alpha*x(i,j) + y(i,j) - enddo - enddo - - else if (beta.eq.-ione) then - do j=1,n - do i=1,m - y(i,j) = alpha*x(i,j) - y(i,j) - enddo - enddo - else - do j=1,n - do i=1,m - y(i,j) = alpha*x(i,j) + beta*y(i,j) - enddo - enddo - endif - - endif - - return - - 9999 continue - call fcpsb_serror() - return - - end diff --git a/base/serial/f77/saxpby.f b/base/serial/f77/saxpby.f deleted file mode 100644 index 5a999211..00000000 --- a/base/serial/f77/saxpby.f +++ /dev/null @@ -1,198 +0,0 @@ -C -C Parallel Sparse BLAS version 3.5 -C (C) Copyright 2006, 2010, 2015, 2017 -C Salvatore Filippone Cranfield University -C Alfredo Buttari CNRS-IRIT, Toulouse -C -C Redistribution and use in source and binary forms, with or without -C modification, are permitted provided that the following conditions -C are met: -C 1. Redistributions of source code must retain the above copyright -C notice, this list of conditions and the following disclaimer. -C 2. Redistributions in binary form must reproduce the above copyright -C notice, this list of conditions, and the following disclaimer in the -C documentation and/or other materials provided with the distribution. -C 3. The name of the PSBLAS group or the names of its contributors may -C not be used to endorse or promote products derived from this -C software without specific written permission. -C -C THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -C ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED -C TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -C PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE PSBLAS GROUP OR ITS CONTRIBUTORS -C BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -C CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -C SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -C INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -C CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -C ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -C POSSIBILITY OF SUCH DAMAGE. -C -C - subroutine saxpby(m, n, alpha, X, lldx, beta, Y, lldy, info) - use psb_const_mod - integer n, m, lldx, lldy, info - real(psb_spk_) X(lldx,*), Y(lldy,*) - real(psb_spk_) alpha, beta - integer(psb_ipk_) :: i, j - integer(psb_ipk_) :: int_err(5) - character name*20 - name='saxpby' - - -C -C Error handling -C - info = psb_success_ - if (m.lt.0) then - info=psb_err_iarg_neg_ - int_err(1)=1 - int_err(2)=m - call fcpsb_errpush(info,name,int_err) - goto 9999 - else if (n.lt.0) then - info=psb_err_iarg_neg_ - int_err(1)=1 - int_err(2)=n - call fcpsb_errpush(info,name,int_err) - goto 9999 - else if (lldx.lt.max(1,m)) then - info=psb_err_iarg_not_gtia_ii_ - int_err(1)=5 - int_err(2)=1 - int_err(3)=lldx - int_err(4)=m - call fcpsb_errpush(info,name,int_err) - goto 9999 - else if (lldy.lt.max(1,m)) then - info=psb_err_iarg_not_gtia_ii_ - int_err(1)=8 - int_err(2)=1 - int_err(3)=lldy - int_err(4)=m - call fcpsb_errpush(info,name,int_err) - goto 9999 - endif - - if (alpha.eq.szero) then - if (beta.eq.szero) then - do j=1, n - do i=1,m - y(i,j) = szero - enddo - enddo - else if (beta.eq.sone) then -c$$$ -c$$$ Do nothing! -c$$$ - - else if (beta.eq.-sone) then - do j=1,n - do i=1,m - y(i,j) = - y(i,j) - enddo - enddo - else - do j=1,n - do i=1,m - y(i,j) = beta*y(i,j) - enddo - enddo - endif - - else if (alpha.eq.sone) then - - if (beta.eq.szero) then - do j=1,n - do i=1,m - y(i,j) = x(i,j) - enddo - enddo - else if (beta.eq.sone) then - do j=1,n - do i=1,m - y(i,j) = x(i,j) + y(i,j) - enddo - enddo - - else if (beta.eq.-sone) then - do j=1,n - do i=1,m - y(i,j) = x(i,j) - y(i,j) - enddo - enddo - else - do j=1,n - do i=1,m - y(i,j) = x(i,j) + beta*y(i,j) - enddo - enddo - endif - - else if (alpha.eq.-sone) then - - if (beta.eq.szero) then - do j=1,n - do i=1,m - y(i,j) = -x(i,j) - enddo - enddo - else if (beta.eq.sone) then - do j=1,n - do i=1,m - y(i,j) = -x(i,j) + y(i,j) - enddo - enddo - - else if (beta.eq.-sone) then - do j=1,n - do i=1,m - y(i,j) = -x(i,j) - y(i,j) - enddo - enddo - else - do j=1,n - do i=1,m - y(i,j) = -x(i,j) + beta*y(i,j) - enddo - enddo - endif - - else - - if (beta.eq.szero) then - do j=1,n - do i=1,m - y(i,j) = alpha*x(i,j) - enddo - enddo - else if (beta.eq.sone) then - do j=1,n - do i=1,m - y(i,j) = alpha*x(i,j) + y(i,j) - enddo - enddo - - else if (beta.eq.-sone) then - do j=1,n - do i=1,m - y(i,j) = alpha*x(i,j) - y(i,j) - enddo - enddo - else - do j=1,n - do i=1,m - y(i,j) = alpha*x(i,j) + beta*y(i,j) - enddo - enddo - endif - - endif - - return - - 9999 continue - call fcpsb_serror() - return - - end diff --git a/base/serial/f77/snumbmm.f b/base/serial/f77/snumbmm.f deleted file mode 100644 index a3a0e2d7..00000000 --- a/base/serial/f77/snumbmm.f +++ /dev/null @@ -1,85 +0,0 @@ -c == ===================================================================== -c Sparse Matrix Multiplication Package -c -c Randolph E. Bank and Craig C. Douglas -c -c na.bank@na-net.ornl.gov and na.cdouglas@na-net.ornl.gov -c -c Compile this with the following command (or a similar one): -c -c f77 -c -O smmp.f -c -c == ===================================================================== - subroutine snumbmm(n, m, l, - * ia, ja, diaga, a, - * ib, jb, diagb, b, - * ic, jc, diagc, c, - * temp) - use psb_const_mod -c - integer(psb_ipk_) :: ia(*), ja(*), diaga, - * ib(*), jb(*), diagb, - * ic(*), jc(*), diagc -c - real(psb_spk_) :: a(*), b(*), c(*), temp(*),ajj -c -c numeric matrix multiply c=a*b -c - maxlmn = max(l,m,n) - do 10 i = 1,maxlmn - temp(i) = 0. - 10 continue - minlm = min(l,m) - minln = min(l,n) - minmn = min(m,n) -c -c c = a*b -c - do 50 i = 1,n - do 30 jj = ia(i),ia(i+1) -c a = d + ... - if (jj.eq.ia(i+1)) then - if (diaga.eq.0 .or. i.gt.minmn) goto 30 - j = i - ajj = a(i) - else - j=ja(jj) - ajj = a(jj) - endif -c b = d + ... - if (diagb.eq.1 .and. j.le.minlm) - * temp(j) = temp(j) + ajj * b(j) - if ((j<1).or.(j>m)) then - write(psb_err_unit,*) - + ' NUMBMM: Problem with A ',i,jj,j,m - endif - - do 20 k = ib(j),ib(j+1)-1 - if((jb(k)<1).or. (jb(k) > maxlmn)) then - write(psb_err_unit,*) - + ' NUMBMM: jb problem',j,k,jb(k),maxlmn - else - temp(jb(k)) = temp(jb(k)) + ajj * b(k) - endif - 20 continue - 30 continue -c c = d + ... - if (diagc.eq.1 .and. i.le.minln) then - c(i) = temp(i) - temp(i) = 0. - endif -c$$$ if (mod(i,100) == 1) -c$$$ + write(psb_err_unit,*) -c$$$ ' NUMBMM: Fixing row ',i,ic(i),ic(i+1)-1 - do 40 j = ic(i),ic(i+1)-1 - if((jc(j)<1).or. (jc(j) > maxlmn)) then - write(psb_err_unit,*) - + ' NUMBMM: output problem',i,j,jc(j),maxlmn - else - c(j) = temp(jc(j)) - temp(jc(j)) = 0. - endif - 40 continue - 50 continue - return - end diff --git a/base/serial/f77/symbmm.f b/base/serial/f77/symbmm.f deleted file mode 100644 index 1f1c749d..00000000 --- a/base/serial/f77/symbmm.f +++ /dev/null @@ -1,119 +0,0 @@ -c == ===================================================================== -c Sparse Matrix Multiplication Package -c -c Randolph E. Bank and Craig C. Douglas -c -c na.bank@na-net.ornl.gov and na.cdouglas@na-net.ornl.gov -c -c Compile this with the following command (or a similar one): -c -c f77 -c -O smmp.f -c -c == ===================================================================== - subroutine symbmm - * (n, m, l, - * ia, ja, diaga, - * ib, jb, diagb, - * ic, jc, diagc, - * index) - use psb_const_mod - use psb_realloc_mod - use psb_sort_mod, only: psb_msort -c - integer(psb_ipk_) :: ia(*), ja(*), diaga, - * ib(*), jb(*), diagb, diagc, index(*) - integer(psb_ipk_), allocatable :: ic(:),jc(:) - integer(psb_ipk_) :: nze, info - -c -c symbolic matrix multiply c=a*b -c - if (size(ic) < n+1) then - write(psb_err_unit,*) - + 'Called realloc in SYMBMM ' - call psb_realloc(n+1,ic,info) - if (info /= psb_success_) then - write(psb_err_unit,*) - + 'realloc failed in SYMBMM ',info - end if - endif - maxlmn = max(l,m,n) - do 10 i=1,maxlmn - index(i)=0 - 10 continue - if (diagc.eq.0) then - ic(1)=1 - else - ic(1)=n+2 - endif - minlm = min(l,m) - minmn = min(m,n) -c -c main loop -c - do 50 i=1,n - istart=-1 - length=0 -c -c merge row lists -c - do 30 jj=ia(i),ia(i+1) -c a = d + ... - if (jj.eq.ia(i+1)) then - if (diaga.eq.0 .or. i.gt.minmn) goto 30 - j = i - else - j=ja(jj) - endif -c b = d + ... - if (index(j).eq.0 .and. diagb.eq.1 .and. j.le.minlm)then - index(j)=istart - istart=j - length=length+1 - endif - if ((j<1).or.(j>m)) then - write(psb_err_unit,*) - + ' SymbMM: Problem with A ',i,jj,j,m - endif - do 20 k=ib(j),ib(j+1)-1 - if ((jb(k)<1).or.(jb(k)>maxlmn)) then - write(psb_err_unit,*) - + 'Problem in SYMBMM 1:',j,k,jb(k),maxlmn - else - if(index(jb(k)).eq.0) then - index(jb(k))=istart - istart=jb(k) - length=length+1 - endif - endif - 20 continue - 30 continue -c -c row i of jc -c - if (diagc.eq.1 .and. index(i).ne.0) length = length - 1 - ic(i+1)=ic(i)+length - - if (ic(i+1) > size(jc)) then - if (n > (2*i)) then - nze = max(ic(i+1), ic(i)*((n+i-1)/i)) - else - nze = max(ic(i+1), nint((dble(ic(i))*(dble(n)/i))) ) - endif - call psb_realloc(nze,jc,info) - end if - - do 40 j= ic(i),ic(i+1)-1 - if (diagc.eq.1 .and. istart.eq.i) then - istart = index(istart) - index(i) = 0 - endif - jc(j)=istart - istart=index(istart) - index(jc(j))=0 - 40 continue - call psb_msort(jc(ic(i):ic(i)+length -1)) - index(i) = 0 - 50 continue - return - end diff --git a/base/serial/f77/zaxpby.f b/base/serial/f77/zaxpby.f deleted file mode 100644 index 69a1be44..00000000 --- a/base/serial/f77/zaxpby.f +++ /dev/null @@ -1,200 +0,0 @@ -C -C Parallel Sparse BLAS version 3.5 -C (C) Copyright 2006, 2010, 2015, 2017 -C Salvatore Filippone Cranfield University -C Alfredo Buttari CNRS-IRIT, Toulouse -C -C Redistribution and use in source and binary forms, with or without -C modification, are permitted provided that the following conditions -C are met: -C 1. Redistributions of source code must retain the above copyright -C notice, this list of conditions and the following disclaimer. -C 2. Redistributions in binary form must reproduce the above copyright -C notice, this list of conditions, and the following disclaimer in the -C documentation and/or other materials provided with the distribution. -C 3. The name of the PSBLAS group or the names of its contributors may -C not be used to endorse or promote products derived from this -C software without specific written permission. -C -C THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -C ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED -C TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -C PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE PSBLAS GROUP OR ITS CONTRIBUTORS -C BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -C CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -C SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -C INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -C CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -C ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -C POSSIBILITY OF SUCH DAMAGE. -C -C - subroutine zaxpby(m, n, alpha, X, lldx, beta, Y, lldy, info) - use psb_const_mod - complex(psb_dpk_), parameter :: one=(1.0d0,0.0d0) - complex(psb_dpk_), parameter :: zero=(0.0d0,0.0d0) - integer(psb_ipk_) :: n, m, lldx, lldy, info - complex(psb_dpk_) X(lldx,*), Y(lldy,*) - complex(psb_dpk_) alpha, beta - integer(psb_ipk_) :: i, j - integer(psb_ipk_) :: int_err(5) - character name*20 - name='zaxpby' - - -C -C Error handling -C - info = psb_success_ - if (m.lt.0) then - info=psb_err_iarg_neg_ - int_err(1)=1 - int_err(2)=m - call fcpsb_errpush(info,name,int_err) - goto 9999 - else if (n.lt.0) then - info=psb_err_iarg_neg_ - int_err(1)=1 - int_err(2)=n - call fcpsb_errpush(info,name,int_err) - goto 9999 - else if (lldx.lt.max(1,m)) then - info=psb_err_iarg_not_gtia_ii_ - int_err(1)=5 - int_err(2)=1 - int_err(3)=lldx - int_err(4)=m - call fcpsb_errpush(info,name,int_err) - goto 9999 - else if (lldy.lt.max(1,m)) then - info=psb_err_iarg_not_gtia_ii_ - int_err(1)=8 - int_err(2)=1 - int_err(3)=lldy - int_err(4)=m - call fcpsb_errpush(info,name,int_err) - goto 9999 - endif - - if (alpha.eq.zero) then - if (beta.eq.zero) then - do j=1, n - do i=1,m - y(i,j) = zero - enddo - enddo - else if (beta.eq.one) then -c$$$ -c$$$ Do nothing! -c$$$ - - else if (beta.eq.-one) then - do j=1,n - do i=1,m - y(i,j) = - y(i,j) - enddo - enddo - else - do j=1,n - do i=1,m - y(i,j) = beta*y(i,j) - enddo - enddo - endif - - else if (alpha.eq.one) then - - if (beta.eq.zero) then - do j=1,n - do i=1,m - y(i,j) = x(i,j) - enddo - enddo - else if (beta.eq.one) then - do j=1,n - do i=1,m - y(i,j) = x(i,j) + y(i,j) - enddo - enddo - - else if (beta.eq.-one) then - do j=1,n - do i=1,m - y(i,j) = x(i,j) - y(i,j) - enddo - enddo - else - do j=1,n - do i=1,m - y(i,j) = x(i,j) + beta*y(i,j) - enddo - enddo - endif - - else if (alpha.eq.-one) then - - if (beta.eq.zero) then - do j=1,n - do i=1,m - y(i,j) = -x(i,j) - enddo - enddo - else if (beta.eq.one) then - do j=1,n - do i=1,m - y(i,j) = -x(i,j) + y(i,j) - enddo - enddo - - else if (beta.eq.-one) then - do j=1,n - do i=1,m - y(i,j) = -x(i,j) - y(i,j) - enddo - enddo - else - do j=1,n - do i=1,m - y(i,j) = -x(i,j) + beta*y(i,j) - enddo - enddo - endif - - else - - if (beta.eq.zero) then - do j=1,n - do i=1,m - y(i,j) = alpha*x(i,j) - enddo - enddo - else if (beta.eq.one) then - do j=1,n - do i=1,m - y(i,j) = alpha*x(i,j) + y(i,j) - enddo - enddo - - else if (beta.eq.-one) then - do j=1,n - do i=1,m - y(i,j) = alpha*x(i,j) - y(i,j) - enddo - enddo - else - do j=1,n - do i=1,m - y(i,j) = alpha*x(i,j) + beta*y(i,j) - enddo - enddo - endif - - endif - - return - - 9999 continue - call fcpsb_serror() - return - - end diff --git a/base/serial/f77/znumbmm.f b/base/serial/f77/znumbmm.f deleted file mode 100644 index fc76a3fd..00000000 --- a/base/serial/f77/znumbmm.f +++ /dev/null @@ -1,85 +0,0 @@ -c == ===================================================================== -c Sparse Matrix Multiplication Package -c -c Randolph E. Bank and Craig C. Douglas -c -c na.bank@na-net.ornl.gov and na.cdouglas@na-net.ornl.gov -c -c Compile this with the following command (or a similar one): -c -c f77 -c -O smmp.f -c -c == ===================================================================== - subroutine znumbmm(n, m, l, - * ia, ja, diaga, a, - * ib, jb, diagb, b, - * ic, jc, diagc, c, - * temp) -c - use psb_const_mod - integer(psb_ipk_) :: ia(*), ja(*), diaga, - * ib(*), jb(*), diagb, - * ic(*), jc(*), diagc -c - complex(psb_dpk_) :: a(*), b(*), c(*), temp(*),ajj -c -c numeric matrix multiply c=a*b -c - maxlmn = max(l,m,n) - do 10 i = 1,maxlmn - temp(i) = 0. - 10 continue - minlm = min(l,m) - minln = min(l,n) - minmn = min(m,n) -c -c c = a*b -c - do 50 i = 1,n - do 30 jj = ia(i),ia(i+1) -c a = d + ... - if (jj.eq.ia(i+1)) then - if (diaga.eq.0 .or. i.gt.minmn) goto 30 - j = i - ajj = a(i) - else - j=ja(jj) - ajj = a(jj) - endif -c b = d + ... - if (diagb.eq.1 .and. j.le.minlm) - * temp(j) = temp(j) + ajj * b(j) - if ((j<1).or.(j>m)) then - write(psb_err_unit,*) - + ' NUMBMM: Problem with A ',i,jj,j,m - endif - - do 20 k = ib(j),ib(j+1)-1 - if((jb(k)<1).or. (jb(k) > maxlmn)) then - write(psb_err_unit,*) - + ' NUMBMM: jb problem',j,k,jb(k),maxlmn - else - temp(jb(k)) = temp(jb(k)) + ajj * b(k) - endif - 20 continue - 30 continue -c c = d + ... - if (diagc.eq.1 .and. i.le.minln) then - c(i) = temp(i) - temp(i) = 0. - endif -c$$$ if (mod(i,100) == 1) -c$$$ + write(psb_err_unit,*) -c$$$ ' NUMBMM: Fixing row ',i,ic(i),ic(i+1)-1 - do 40 j = ic(i),ic(i+1)-1 - if((jc(j)<1).or. (jc(j) > maxlmn)) then - write(psb_err_unit,*) - + ' NUMBMM: output problem',i,j,jc(j),maxlmn - else - c(j) = temp(jc(j)) - temp(jc(j)) = 0. - endif - 40 continue - 50 continue - return - end diff --git a/base/serial/psb_aspxpby.f90 b/base/serial/psb_aspxpby.f90 index bfa67542..b48a388a 100644 --- a/base/serial/psb_aspxpby.f90 +++ b/base/serial/psb_aspxpby.f90 @@ -1,3 +1,34 @@ +! +! Parallel Sparse BLAS version 3.5 +! (C) Copyright 2006, 2010, 2015, 2017 +! Salvatore Filippone Cranfield University +! 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. +! +! subroutine psb_s_aspxpby(alpha, nx, ix, x, beta, y, info) use psb_const_mod integer(psb_ipk_), intent(in) :: nx diff --git a/base/serial/psi_c_serial_impl.f90 b/base/serial/psi_c_serial_impl.f90 index 6faa5248..a186987e 100644 --- a/base/serial/psi_c_serial_impl.f90 +++ b/base/serial/psi_c_serial_impl.f90 @@ -1,3 +1,34 @@ +! +! Parallel Sparse BLAS version 3.5 +! (C) Copyright 2006, 2010, 2015, 2017 +! Salvatore Filippone Cranfield University +! 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. +! +! subroutine psi_caxpby(m,n,alpha, x, beta, y, info) use psb_const_mod @@ -394,3 +425,174 @@ subroutine psi_csctv(n,idx,x,beta,y) end do end if end subroutine psi_csctv +subroutine caxpby(m, n, alpha, X, lldx, beta, Y, lldy, info) + use psb_const_mod + use psb_error_mod + implicit none + complex(psb_spk_), parameter :: one=(1.0,0.0) + complex(psb_spk_), parameter :: zero=(0.0,0.0) + integer(psb_ipk_) :: n, m, lldx, lldy, info + complex(psb_spk_) X(lldx,*), Y(lldy,*) + complex(psb_spk_) alpha, beta + integer(psb_ipk_) :: i, j + integer(psb_ipk_) :: int_err(5) + character name*20 + name='caxpby' + + + ! + ! Error handling + ! + info = psb_success_ + if (m.lt.0) then + info=psb_err_iarg_neg_ + int_err(1)=1 + int_err(2)=m + call fcpsb_errpush(info,name,int_err) + goto 9999 + else if (n.lt.0) then + info=psb_err_iarg_neg_ + int_err(1)=1 + int_err(2)=n + call fcpsb_errpush(info,name,int_err) + goto 9999 + else if (lldx.lt.max(1,m)) then + info=psb_err_iarg_not_gtia_ii_ + int_err(1)=5 + int_err(2)=1 + int_err(3)=lldx + int_err(4)=m + call fcpsb_errpush(info,name,int_err) + goto 9999 + else if (lldy.lt.max(1,m)) then + info=psb_err_iarg_not_gtia_ii_ + int_err(1)=8 + int_err(2)=1 + int_err(3)=lldy + int_err(4)=m + call fcpsb_errpush(info,name,int_err) + goto 9999 + endif + + if (alpha.eq.zero) then + if (beta.eq.zero) then + do j=1, n + do i=1,m + y(i,j) = zero + enddo + enddo + else if (beta.eq.one) then + !$$$ + !$$$ Do nothing! + !$$$ + + else if (beta.eq.-one) then + do j=1,n + do i=1,m + y(i,j) = - y(i,j) + enddo + enddo + else + do j=1,n + do i=1,m + y(i,j) = beta*y(i,j) + enddo + enddo + endif + + else if (alpha.eq.one) then + + if (beta.eq.zero) then + do j=1,n + do i=1,m + y(i,j) = x(i,j) + enddo + enddo + else if (beta.eq.one) then + do j=1,n + do i=1,m + y(i,j) = x(i,j) + y(i,j) + enddo + enddo + + else if (beta.eq.-one) then + do j=1,n + do i=1,m + y(i,j) = x(i,j) - y(i,j) + enddo + enddo + else + do j=1,n + do i=1,m + y(i,j) = x(i,j) + beta*y(i,j) + enddo + enddo + endif + + else if (alpha.eq.-one) then + + if (beta.eq.zero) then + do j=1,n + do i=1,m + y(i,j) = -x(i,j) + enddo + enddo + else if (beta.eq.one) then + do j=1,n + do i=1,m + y(i,j) = -x(i,j) + y(i,j) + enddo + enddo + + else if (beta.eq.-one) then + do j=1,n + do i=1,m + y(i,j) = -x(i,j) - y(i,j) + enddo + enddo + else + do j=1,n + do i=1,m + y(i,j) = -x(i,j) + beta*y(i,j) + enddo + enddo + endif + + else + + if (beta.eq.zero) then + do j=1,n + do i=1,m + y(i,j) = alpha*x(i,j) + enddo + enddo + else if (beta.eq.one) then + do j=1,n + do i=1,m + y(i,j) = alpha*x(i,j) + y(i,j) + enddo + enddo + + else if (beta.eq.-one) then + do j=1,n + do i=1,m + y(i,j) = alpha*x(i,j) - y(i,j) + enddo + enddo + else + do j=1,n + do i=1,m + y(i,j) = alpha*x(i,j) + beta*y(i,j) + enddo + enddo + endif + + endif + + return + +9999 continue + call fcpsb_serror() + return + +end subroutine caxpby diff --git a/base/serial/psi_d_serial_impl.f90 b/base/serial/psi_d_serial_impl.f90 index 87de71d4..f12e287e 100644 --- a/base/serial/psi_d_serial_impl.f90 +++ b/base/serial/psi_d_serial_impl.f90 @@ -1,3 +1,34 @@ +! +! Parallel Sparse BLAS version 3.5 +! (C) Copyright 2006, 2010, 2015, 2017 +! Salvatore Filippone Cranfield University +! 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. +! +! subroutine psi_daxpby(m,n,alpha, x, beta, y, info) use psb_const_mod @@ -394,3 +425,172 @@ subroutine psi_dsctv(n,idx,x,beta,y) end do end if end subroutine psi_dsctv +subroutine daxpby(m, n, alpha, X, lldx, beta, Y, lldy, info) + use psb_const_mod + use psb_error_mod + implicit none + integer(psb_ipk_) :: n, m, lldx, lldy, info + real(psb_dpk_) X(lldx,*), Y(lldy,*) + real(psb_dpk_) alpha, beta + integer(psb_ipk_) :: i, j + integer(psb_ipk_) :: int_err(5) + character name*20 + name='daxpby' + + + ! + ! Error handling + ! + info = psb_success_ + if (m.lt.0) then + info=psb_err_iarg_neg_ + int_err(1)=1 + int_err(2)=m + call fcpsb_errpush(info,name,int_err) + goto 9999 + else if (n.lt.0) then + info=psb_err_iarg_neg_ + int_err(1)=1 + int_err(2)=n + call fcpsb_errpush(info,name,int_err) + goto 9999 + else if (lldx.lt.max(1,m)) then + info=psb_err_iarg_not_gtia_ii_ + int_err(1)=5 + int_err(2)=1 + int_err(3)=lldx + int_err(4)=m + call fcpsb_errpush(info,name,int_err) + goto 9999 + else if (lldy.lt.max(1,m)) then + info=psb_err_iarg_not_gtia_ii_ + int_err(1)=8 + int_err(2)=1 + int_err(3)=lldy + int_err(4)=m + call fcpsb_errpush(info,name,int_err) + goto 9999 + endif + + if (alpha.eq.dzero) then + if (beta.eq.dzero) then + do j=1, n + do i=1,m + y(i,j) = dzero + enddo + enddo + else if (beta.eq.done) then + ! + ! Do nothing! + ! + + else if (beta.eq.-done) then + do j=1,n + do i=1,m + y(i,j) = - y(i,j) + enddo + enddo + else + do j=1,n + do i=1,m + y(i,j) = beta*y(i,j) + enddo + enddo + endif + + else if (alpha.eq.done) then + + if (beta.eq.dzero) then + do j=1,n + do i=1,m + y(i,j) = x(i,j) + enddo + enddo + else if (beta.eq.done) then + do j=1,n + do i=1,m + y(i,j) = x(i,j) + y(i,j) + enddo + enddo + + else if (beta.eq.-done) then + do j=1,n + do i=1,m + y(i,j) = x(i,j) - y(i,j) + enddo + enddo + else + do j=1,n + do i=1,m + y(i,j) = x(i,j) + beta*y(i,j) + enddo + enddo + endif + + else if (alpha.eq.-done) then + + if (beta.eq.dzero) then + do j=1,n + do i=1,m + y(i,j) = -x(i,j) + enddo + enddo + else if (beta.eq.done) then + do j=1,n + do i=1,m + y(i,j) = -x(i,j) + y(i,j) + enddo + enddo + + else if (beta.eq.-done) then + do j=1,n + do i=1,m + y(i,j) = -x(i,j) - y(i,j) + enddo + enddo + else + do j=1,n + do i=1,m + y(i,j) = -x(i,j) + beta*y(i,j) + enddo + enddo + endif + + else + + if (beta.eq.dzero) then + do j=1,n + do i=1,m + y(i,j) = alpha*x(i,j) + enddo + enddo + else if (beta.eq.done) then + do j=1,n + do i=1,m + y(i,j) = alpha*x(i,j) + y(i,j) + enddo + enddo + + else if (beta.eq.-done) then + do j=1,n + do i=1,m + y(i,j) = alpha*x(i,j) - y(i,j) + enddo + enddo + else + do j=1,n + do i=1,m + y(i,j) = alpha*x(i,j) + beta*y(i,j) + enddo + enddo + endif + + endif + + return + +9999 continue + call fcpsb_serror() + return + +end subroutine daxpby diff --git a/base/serial/psi_i_serial_impl.f90 b/base/serial/psi_i_serial_impl.f90 index c5113eef..116822db 100644 --- a/base/serial/psi_i_serial_impl.f90 +++ b/base/serial/psi_i_serial_impl.f90 @@ -1,3 +1,34 @@ +! +! Parallel Sparse BLAS version 3.5 +! (C) Copyright 2006, 2010, 2015, 2017 +! Salvatore Filippone Cranfield University +! 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. +! +! subroutine psi_iaxpby(m,n,alpha, x, beta, y, info) use psb_const_mod @@ -394,3 +425,172 @@ subroutine psi_isctv(n,idx,x,beta,y) end do end if end subroutine psi_isctv +subroutine iaxpby(m, n, alpha, X, lldx, beta, Y, lldy, info) + use psb_const_mod + use psb_error_mod + implicit none + integer n, m, lldx, lldy, info + integer(psb_ipk_) X(lldx,*), Y(lldy,*) + integer(psb_ipk_) alpha, beta + integer(psb_ipk_) :: i, j + integer(psb_ipk_) :: int_err(5) + character name*20 + name='iaxpby' + + + ! + ! Error handling + ! + info = psb_success_ + if (m.lt.0) then + info=psb_err_iarg_neg_ + int_err(1)=1 + int_err(2)=m + call fcpsb_errpush(info,name,int_err) + goto 9999 + else if (n.lt.0) then + info=psb_err_iarg_neg_ + int_err(1)=1 + int_err(2)=n + call fcpsb_errpush(info,name,int_err) + goto 9999 + else if (lldx.lt.max(1,m)) then + info=psb_err_iarg_not_gtia_ii_ + int_err(1)=5 + int_err(2)=1 + int_err(3)=lldx + int_err(4)=m + call fcpsb_errpush(info,name,int_err) + goto 9999 + else if (lldy.lt.max(1,m)) then + info=psb_err_iarg_not_gtia_ii_ + int_err(1)=8 + int_err(2)=1 + int_err(3)=lldy + int_err(4)=m + call fcpsb_errpush(info,name,int_err) + goto 9999 + endif + + if (alpha.eq.izero) then + if (beta.eq.izero) then + do j=1, n + do i=1,m + y(i,j) = izero + enddo + enddo + else if (beta.eq.ione) then + ! + ! Do nothing! + ! + + else if (beta.eq.-ione) then + do j=1,n + do i=1,m + y(i,j) = - y(i,j) + enddo + enddo + else + do j=1,n + do i=1,m + y(i,j) = beta*y(i,j) + enddo + enddo + endif + + else if (alpha.eq.ione) then + + if (beta.eq.izero) then + do j=1,n + do i=1,m + y(i,j) = x(i,j) + enddo + enddo + else if (beta.eq.ione) then + do j=1,n + do i=1,m + y(i,j) = x(i,j) + y(i,j) + enddo + enddo + + else if (beta.eq.-ione) then + do j=1,n + do i=1,m + y(i,j) = x(i,j) - y(i,j) + enddo + enddo + else + do j=1,n + do i=1,m + y(i,j) = x(i,j) + beta*y(i,j) + enddo + enddo + endif + + else if (alpha.eq.-ione) then + + if (beta.eq.izero) then + do j=1,n + do i=1,m + y(i,j) = -x(i,j) + enddo + enddo + else if (beta.eq.ione) then + do j=1,n + do i=1,m + y(i,j) = -x(i,j) + y(i,j) + enddo + enddo + + else if (beta.eq.-ione) then + do j=1,n + do i=1,m + y(i,j) = -x(i,j) - y(i,j) + enddo + enddo + else + do j=1,n + do i=1,m + y(i,j) = -x(i,j) + beta*y(i,j) + enddo + enddo + endif + + else + + if (beta.eq.izero) then + do j=1,n + do i=1,m + y(i,j) = alpha*x(i,j) + enddo + enddo + else if (beta.eq.ione) then + do j=1,n + do i=1,m + y(i,j) = alpha*x(i,j) + y(i,j) + enddo + enddo + + else if (beta.eq.-ione) then + do j=1,n + do i=1,m + y(i,j) = alpha*x(i,j) - y(i,j) + enddo + enddo + else + do j=1,n + do i=1,m + y(i,j) = alpha*x(i,j) + beta*y(i,j) + enddo + enddo + endif + + endif + + return + +9999 continue + call fcpsb_serror() + return + +end subroutine iaxpby diff --git a/base/serial/psi_s_serial_impl.f90 b/base/serial/psi_s_serial_impl.f90 index 1687405b..25615027 100644 --- a/base/serial/psi_s_serial_impl.f90 +++ b/base/serial/psi_s_serial_impl.f90 @@ -1,3 +1,34 @@ +! +! Parallel Sparse BLAS version 3.5 +! (C) Copyright 2006, 2010, 2015, 2017 +! Salvatore Filippone Cranfield University +! 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. +! +! subroutine psi_saxpby(m,n,alpha, x, beta, y, info) use psb_const_mod @@ -394,3 +425,170 @@ subroutine psi_ssctv(n,idx,x,beta,y) end do end if end subroutine psi_ssctv +subroutine saxpby(m, n, alpha, X, lldx, beta, Y, lldy, info) + use psb_const_mod + integer n, m, lldx, lldy, info + real(psb_spk_) X(lldx,*), Y(lldy,*) + real(psb_spk_) alpha, beta + integer(psb_ipk_) :: i, j + integer(psb_ipk_) :: int_err(5) + character name*20 + name='saxpby' + + + ! + ! Error handling + ! + info = psb_success_ + if (m.lt.0) then + info=psb_err_iarg_neg_ + int_err(1)=1 + int_err(2)=m + call fcpsb_errpush(info,name,int_err) + goto 9999 + else if (n.lt.0) then + info=psb_err_iarg_neg_ + int_err(1)=1 + int_err(2)=n + call fcpsb_errpush(info,name,int_err) + goto 9999 + else if (lldx.lt.max(1,m)) then + info=psb_err_iarg_not_gtia_ii_ + int_err(1)=5 + int_err(2)=1 + int_err(3)=lldx + int_err(4)=m + call fcpsb_errpush(info,name,int_err) + goto 9999 + else if (lldy.lt.max(1,m)) then + info=psb_err_iarg_not_gtia_ii_ + int_err(1)=8 + int_err(2)=1 + int_err(3)=lldy + int_err(4)=m + call fcpsb_errpush(info,name,int_err) + goto 9999 + endif + + if (alpha.eq.szero) then + if (beta.eq.szero) then + do j=1, n + do i=1,m + y(i,j) = szero + enddo + enddo + else if (beta.eq.sone) then + ! + ! Do nothing! + ! + + else if (beta.eq.-sone) then + do j=1,n + do i=1,m + y(i,j) = - y(i,j) + enddo + enddo + else + do j=1,n + do i=1,m + y(i,j) = beta*y(i,j) + enddo + enddo + endif + + else if (alpha.eq.sone) then + + if (beta.eq.szero) then + do j=1,n + do i=1,m + y(i,j) = x(i,j) + enddo + enddo + else if (beta.eq.sone) then + do j=1,n + do i=1,m + y(i,j) = x(i,j) + y(i,j) + enddo + enddo + + else if (beta.eq.-sone) then + do j=1,n + do i=1,m + y(i,j) = x(i,j) - y(i,j) + enddo + enddo + else + do j=1,n + do i=1,m + y(i,j) = x(i,j) + beta*y(i,j) + enddo + enddo + endif + + else if (alpha.eq.-sone) then + + if (beta.eq.szero) then + do j=1,n + do i=1,m + y(i,j) = -x(i,j) + enddo + enddo + else if (beta.eq.sone) then + do j=1,n + do i=1,m + y(i,j) = -x(i,j) + y(i,j) + enddo + enddo + + else if (beta.eq.-sone) then + do j=1,n + do i=1,m + y(i,j) = -x(i,j) - y(i,j) + enddo + enddo + else + do j=1,n + do i=1,m + y(i,j) = -x(i,j) + beta*y(i,j) + enddo + enddo + endif + + else + + if (beta.eq.szero) then + do j=1,n + do i=1,m + y(i,j) = alpha*x(i,j) + enddo + enddo + else if (beta.eq.sone) then + do j=1,n + do i=1,m + y(i,j) = alpha*x(i,j) + y(i,j) + enddo + enddo + + else if (beta.eq.-sone) then + do j=1,n + do i=1,m + y(i,j) = alpha*x(i,j) - y(i,j) + enddo + enddo + else + do j=1,n + do i=1,m + y(i,j) = alpha*x(i,j) + beta*y(i,j) + enddo + enddo + endif + + endif + + return + +9999 continue + call fcpsb_serror() + return + +end subroutine saxpby diff --git a/base/serial/psi_z_serial_impl.f90 b/base/serial/psi_z_serial_impl.f90 index 791b4f05..6f750086 100644 --- a/base/serial/psi_z_serial_impl.f90 +++ b/base/serial/psi_z_serial_impl.f90 @@ -1,3 +1,34 @@ +! +! Parallel Sparse BLAS version 3.5 +! (C) Copyright 2006, 2010, 2015, 2017 +! Salvatore Filippone Cranfield University +! 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. +! +! subroutine psi_zaxpby(m,n,alpha, x, beta, y, info) use psb_const_mod @@ -394,3 +425,174 @@ subroutine psi_zsctv(n,idx,x,beta,y) end do end if end subroutine psi_zsctv +subroutine zaxpby(m, n, alpha, X, lldx, beta, Y, lldy, info) + use psb_const_mod + use psb_error_mod + implicit none + complex(psb_dpk_), parameter :: one=(1.0d0,0.0d0) + complex(psb_dpk_), parameter :: zero=(0.0d0,0.0d0) + integer(psb_ipk_) :: n, m, lldx, lldy, info + complex(psb_dpk_) X(lldx,*), Y(lldy,*) + complex(psb_dpk_) alpha, beta + integer(psb_ipk_) :: i, j + integer(psb_ipk_) :: int_err(5) + character name*20 + name='zaxpby' + + + ! + ! Error handling + ! + info = psb_success_ + if (m.lt.0) then + info=psb_err_iarg_neg_ + int_err(1)=1 + int_err(2)=m + call fcpsb_errpush(info,name,int_err) + goto 9999 + else if (n.lt.0) then + info=psb_err_iarg_neg_ + int_err(1)=1 + int_err(2)=n + call fcpsb_errpush(info,name,int_err) + goto 9999 + else if (lldx.lt.max(1,m)) then + info=psb_err_iarg_not_gtia_ii_ + int_err(1)=5 + int_err(2)=1 + int_err(3)=lldx + int_err(4)=m + call fcpsb_errpush(info,name,int_err) + goto 9999 + else if (lldy.lt.max(1,m)) then + info=psb_err_iarg_not_gtia_ii_ + int_err(1)=8 + int_err(2)=1 + int_err(3)=lldy + int_err(4)=m + call fcpsb_errpush(info,name,int_err) + goto 9999 + endif + + if (alpha.eq.zero) then + if (beta.eq.zero) then + do j=1, n + do i=1,m + y(i,j) = zero + enddo + enddo + else if (beta.eq.one) then + ! + ! Do nothing! + ! + + else if (beta.eq.-one) then + do j=1,n + do i=1,m + y(i,j) = - y(i,j) + enddo + enddo + else + do j=1,n + do i=1,m + y(i,j) = beta*y(i,j) + enddo + enddo + endif + + else if (alpha.eq.one) then + + if (beta.eq.zero) then + do j=1,n + do i=1,m + y(i,j) = x(i,j) + enddo + enddo + else if (beta.eq.one) then + do j=1,n + do i=1,m + y(i,j) = x(i,j) + y(i,j) + enddo + enddo + + else if (beta.eq.-one) then + do j=1,n + do i=1,m + y(i,j) = x(i,j) - y(i,j) + enddo + enddo + else + do j=1,n + do i=1,m + y(i,j) = x(i,j) + beta*y(i,j) + enddo + enddo + endif + + else if (alpha.eq.-one) then + + if (beta.eq.zero) then + do j=1,n + do i=1,m + y(i,j) = -x(i,j) + enddo + enddo + else if (beta.eq.one) then + do j=1,n + do i=1,m + y(i,j) = -x(i,j) + y(i,j) + enddo + enddo + + else if (beta.eq.-one) then + do j=1,n + do i=1,m + y(i,j) = -x(i,j) - y(i,j) + enddo + enddo + else + do j=1,n + do i=1,m + y(i,j) = -x(i,j) + beta*y(i,j) + enddo + enddo + endif + + else + + if (beta.eq.zero) then + do j=1,n + do i=1,m + y(i,j) = alpha*x(i,j) + enddo + enddo + else if (beta.eq.one) then + do j=1,n + do i=1,m + y(i,j) = alpha*x(i,j) + y(i,j) + enddo + enddo + + else if (beta.eq.-one) then + do j=1,n + do i=1,m + y(i,j) = alpha*x(i,j) - y(i,j) + enddo + enddo + else + do j=1,n + do i=1,m + y(i,j) = alpha*x(i,j) + beta*y(i,j) + enddo + enddo + endif + + endif + + return + +9999 continue + call fcpsb_serror() + return + +end subroutine zaxpby diff --git a/base/serial/smmp.f90 b/base/serial/smmp.f90 new file mode 100644 index 00000000..1ab7789c --- /dev/null +++ b/base/serial/smmp.f90 @@ -0,0 +1,477 @@ +! +! Parallel Sparse BLAS version 3.5 +! (C) Copyright 2006, 2010, 2015, 2017 +! Salvatore Filippone Cranfield University +! 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. +! +! +! Original code adapted from: +! == ===================================================================== +! Sparse Matrix Multiplication Package +! +! Randolph E. Bank and Craig C. Douglas +! +! na.bank@na-net.ornl.gov and na.cdouglas@na-net.ornl.gov +! +! Compile this with the following command (or a similar one): +! +! f77 -c -O smmp.f +! +! == ===================================================================== +subroutine symbmm(n, m, l, ia, ja, diaga, ib, jb, diagb,& + & ic, jc, diagc, index) + use psb_const_mod + use psb_realloc_mod + use psb_sort_mod, only: psb_msort + ! + integer(psb_ipk_) :: ia(*), ja(*), diaga, & + & ib(*), jb(*), diagb, diagc, index(*) + integer(psb_ipk_), allocatable :: ic(:),jc(:) + integer(psb_ipk_) :: nze, info + + ! + ! symbolic matrix multiply c=a*b + ! + if (size(ic) < n+1) then + write(psb_err_unit,*)& + & 'Called realloc in SYMBMM ' + call psb_realloc(n+1,ic,info) + if (info /= psb_success_) then + write(psb_err_unit,*)& + & 'realloc failed in SYMBMM ',info + end if + endif + maxlmn = max(l,m,n) + do i=1,maxlmn + index(i)=0 + end do + if (diagc.eq.0) then + ic(1)=1 + else + ic(1)=n+2 + endif + minlm = min(l,m) + minmn = min(m,n) + ! + ! main loop + ! + do i=1,n + istart=-1 + length=0 + ! + ! merge row lists + ! + rowi: do jj=ia(i),ia(i+1) + ! a = d + ... + if (jj.eq.ia(i+1)) then + if (diaga.eq.0 .or. i.gt.minmn) cycle rowi + j = i + else + j=ja(jj) + endif + ! b = d + ... + if (index(j).eq.0 .and. diagb.eq.1 .and. j.le.minlm)then + index(j)=istart + istart=j + length=length+1 + endif + if ((j<1).or.(j>m)) then + write(psb_err_unit,*)& + & ' SymbMM: Problem with A ',i,jj,j,m + endif + do k=ib(j),ib(j+1)-1 + if ((jb(k)<1).or.(jb(k)>maxlmn)) then + write(psb_err_unit,*)& + & 'Problem in SYMBMM 1:',j,k,jb(k),maxlmn + else + if(index(jb(k)).eq.0) then + index(jb(k))=istart + istart=jb(k) + length=length+1 + endif + endif + end do + end do rowi + + ! + ! row i of jc + ! + if (diagc.eq.1 .and. index(i).ne.0) length = length - 1 + ic(i+1)=ic(i)+length + + if (ic(i+1) > size(jc)) then + if (n > (2*i)) then + nze = max(ic(i+1), ic(i)*((n+i-1)/i)) + else + nze = max(ic(i+1), nint((dble(ic(i))*(dble(n)/i))) ) + endif + call psb_realloc(nze,jc,info) + end if + + do j= ic(i),ic(i+1)-1 + if (diagc.eq.1 .and. istart.eq.i) then + istart = index(istart) + index(i) = 0 + endif + jc(j)=istart + istart=index(istart) + index(jc(j))=0 + end do + call psb_msort(jc(ic(i):ic(i)+length -1)) + index(i) = 0 + end do + return +end subroutine symbmm +! == ===================================================================== +! Sparse Matrix Multiplication Package +! +! Randolph E. Bank and Craig C. Douglas +! +! na.bank@na-net.ornl.gov and na.cdouglas@na-net.ornl.gov +! +! Compile this with the following command (or a similar one): +! +! f77 -c -O smmp.f +! +! == ===================================================================== +subroutine cnumbmm(n, m, l, ia, ja, diaga, a, ib, jb, diagb, b,& + & ic, jc, diagc, c, temp) + ! + use psb_const_mod + integer(psb_ipk_) :: ia(*), ja(*), diaga,& + & ib(*), jb(*), diagb, ic(*), jc(*), diagc + ! + complex(psb_spk_) :: a(*), b(*), c(*), temp(*),ajj + ! + ! numeric matrix multiply c=a*b + ! + maxlmn = max(l,m,n) + do i = 1,maxlmn + temp(i) = 0. + end do + minlm = min(l,m) + minln = min(l,n) + minmn = min(m,n) + ! + ! c = a*b + ! + do i = 1,n + rowi: do jj = ia(i),ia(i+1) + ! a = d + ... + if (jj.eq.ia(i+1)) then + if (diaga.eq.0 .or. i.gt.minmn) cycle rowi + j = i + ajj = a(i) + else + j=ja(jj) + ajj = a(jj) + endif + ! b = d + ... + if (diagb.eq.1 .and. j.le.minlm) & + & temp(j) = temp(j) + ajj * b(j) + if ((j<1).or.(j>m)) then + write(psb_err_unit,*)& + & ' NUMBMM: Problem with A ',i,jj,j,m + endif + + do k = ib(j),ib(j+1)-1 + if((jb(k)<1).or. (jb(k) > maxlmn)) then + write(psb_err_unit,*)& + & ' NUMBMM: jb problem',j,k,jb(k),maxlmn + else + temp(jb(k)) = temp(jb(k)) + ajj * b(k) + endif + end do + end do rowi + + ! c = d + ... + if (diagc.eq.1 .and. i.le.minln) then + c(i) = temp(i) + temp(i) = 0. + endif + !$$$ if (mod(i,100) == 1) + !$$$ + write(psb_err_unit,*) + !$$$ ' NUMBMM: Fixing row ',i,ic(i),ic(i+1)-1 + do j = ic(i),ic(i+1)-1 + if((jc(j)<1).or. (jc(j) > maxlmn)) then + write(psb_err_unit,*)& + & ' NUMBMM: output problem',i,j,jc(j),maxlmn + else + c(j) = temp(jc(j)) + temp(jc(j)) = 0. + endif + end do + end do + + return +end subroutine cnumbmm +! == ===================================================================== +! Sparse Matrix Multiplication Package +! +! Randolph E. Bank and Craig C. Douglas +! +! na.bank@na-net.ornl.gov and na.cdouglas@na-net.ornl.gov +! +! Compile this with the following command (or a similar one): +! +! f77 -c -O smmp.f +! +! == ===================================================================== +subroutine dnumbmm(n, m, l, ia, ja, diaga, a, ib, jb, diagb, b,& + & ic, jc, diagc, c, temp) + use psb_const_mod + ! + integer(psb_ipk_) :: ia(*), ja(*), diaga, ib(*), jb(*), diagb,& + & ic(*), jc(*), diagc + ! + real(psb_dpk_) :: a(*), b(*), c(*), temp(*),ajj + ! + ! numeric matrix multiply c=a*b + ! + maxlmn = max(l,m,n) + do i = 1,maxlmn + temp(i) = 0. + end do + minlm = min(l,m) + minln = min(l,n) + minmn = min(m,n) + ! + ! c = a*b + ! + do i = 1,n + rowi: do jj = ia(i),ia(i+1) + ! a = d + ... + if (jj.eq.ia(i+1)) then + if (diaga.eq.0 .or. i.gt.minmn) cycle rowi + j = i + ajj = a(i) + else + j=ja(jj) + ajj = a(jj) + endif + ! b = d + ... + if (diagb.eq.1 .and. j.le.minlm) & + & temp(j) = temp(j) + ajj * b(j) + if ((j<1).or.(j>m)) then + write(psb_err_unit,*)& + & ' NUMBMM: Problem with A ',i,jj,j,m + endif + + do k = ib(j),ib(j+1)-1 + if((jb(k)<1).or. (jb(k) > maxlmn)) then + write(psb_err_unit,*)& + & ' NUMBMM: jb problem',j,k,jb(k),maxlmn + else + temp(jb(k)) = temp(jb(k)) + ajj * b(k) + endif + end do + end do rowi + + ! c = d + ... + if (diagc.eq.1 .and. i.le.minln) then + c(i) = temp(i) + temp(i) = 0. + endif + !$$$ if (mod(i,100) == 1) + !$$$ + write(psb_err_unit,*) + !$$$ ' NUMBMM: Fixing row ',i,ic(i),ic(i+1)-1 + do j = ic(i),ic(i+1)-1 + if((jc(j)<1).or. (jc(j) > maxlmn)) then + write(psb_err_unit,*)& + & ' NUMBMM: output problem',i,j,jc(j),maxlmn + else + c(j) = temp(jc(j)) + temp(jc(j)) = 0. + endif + end do + end do + + return +end subroutine dnumbmm +! == ===================================================================== +! Sparse Matrix Multiplication Package +! +! Randolph E. Bank and Craig C. Douglas +! +! na.bank@na-net.ornl.gov and na.cdouglas@na-net.ornl.gov +! +! Compile this with the following command (or a similar one): +! +! f77 -c -O smmp.f +! +! == ===================================================================== +subroutine snumbmm(n, m, l, ia, ja, diaga, a, ib, jb, diagb, b,& + & ic, jc, diagc, c, temp) + use psb_const_mod + ! + integer(psb_ipk_) :: ia(*), ja(*), diaga, ib(*), jb(*), diagb,& + & ic(*), jc(*), diagc + ! + real(psb_spk_) :: a(*), b(*), c(*), temp(*),ajj + ! + ! numeric matrix multiply c=a*b + ! + maxlmn = max(l,m,n) + do i = 1,maxlmn + temp(i) = 0. + end do + minlm = min(l,m) + minln = min(l,n) + minmn = min(m,n) + ! + ! c = a*b + ! + do i = 1,n + rowi: do jj = ia(i),ia(i+1) + ! a = d + ... + if (jj.eq.ia(i+1)) then + if (diaga.eq.0 .or. i.gt.minmn) cycle rowi + j = i + ajj = a(i) + else + j=ja(jj) + ajj = a(jj) + endif + ! b = d + ... + if (diagb.eq.1 .and. j.le.minlm) & + & temp(j) = temp(j) + ajj * b(j) + if ((j<1).or.(j>m)) then + write(psb_err_unit,*)& + & ' NUMBMM: Problem with A ',i,jj,j,m + endif + + do k = ib(j),ib(j+1)-1 + if((jb(k)<1).or. (jb(k) > maxlmn)) then + write(psb_err_unit,*)& + & ' NUMBMM: jb problem',j,k,jb(k),maxlmn + else + temp(jb(k)) = temp(jb(k)) + ajj * b(k) + endif + end do + end do rowi + + ! c = d + ... + if (diagc.eq.1 .and. i.le.minln) then + c(i) = temp(i) + temp(i) = 0. + endif + !$$$ if (mod(i,100) == 1) + !$$$ + write(psb_err_unit,*) + !$$$ ' NUMBMM: Fixing row ',i,ic(i),ic(i+1)-1 + do j = ic(i),ic(i+1)-1 + if((jc(j)<1).or. (jc(j) > maxlmn)) then + write(psb_err_unit,*)& + & ' NUMBMM: output problem',i,j,jc(j),maxlmn + else + c(j) = temp(jc(j)) + temp(jc(j)) = 0. + endif + end do + end do + + return +end subroutine snumbmm +! == ===================================================================== +! Sparse Matrix Multiplication Package +! +! Randolph E. Bank and Craig C. Douglas +! +! na.bank@na-net.ornl.gov and na.cdouglas@na-net.ornl.gov +! +! Compile this with the following command (or a similar one): +! +! f77 -c -O smmp.f +! +! == ===================================================================== +subroutine znumbmm(n, m, l, ia, ja, diaga, a, ib, jb, diagb, b,& + & ic, jc, diagc, c, temp) + ! + use psb_const_mod + integer(psb_ipk_) :: ia(*), ja(*), diaga, ib(*), jb(*), diagb,& + & ic(*), jc(*), diagc + ! + complex(psb_dpk_) :: a(*), b(*), c(*), temp(*),ajj + ! + ! numeric matrix multiply c=a*b + ! + maxlmn = max(l,m,n) + do i = 1,maxlmn + temp(i) = 0. + end do + minlm = min(l,m) + minln = min(l,n) + minmn = min(m,n) + ! + ! c = a*b + ! + do i = 1,n + rowi: do jj = ia(i),ia(i+1) + ! a = d + ... + if (jj.eq.ia(i+1)) then + if (diaga.eq.0 .or. i.gt.minmn) cycle rowi + j = i + ajj = a(i) + else + j=ja(jj) + ajj = a(jj) + endif + ! b = d + ... + if (diagb.eq.1 .and. j.le.minlm) & + & temp(j) = temp(j) + ajj * b(j) + if ((j<1).or.(j>m)) then + write(psb_err_unit,*)& + & ' NUMBMM: Problem with A ',i,jj,j,m + endif + + do k = ib(j),ib(j+1)-1 + if((jb(k)<1).or. (jb(k) > maxlmn)) then + write(psb_err_unit,*)& + & ' NUMBMM: jb problem',j,k,jb(k),maxlmn + else + temp(jb(k)) = temp(jb(k)) + ajj * b(k) + endif + end do + end do rowi + + ! c = d + ... + if (diagc.eq.1 .and. i.le.minln) then + c(i) = temp(i) + temp(i) = 0. + endif + do j = ic(i),ic(i+1)-1 + if((jc(j)<1).or. (jc(j) > maxlmn)) then + write(psb_err_unit,*)& + & ' NUMBMM: output problem',i,j,jc(j),maxlmn + else + c(j) = temp(jc(j)) + temp(jc(j)) = 0. + endif + end do + end do + + return +end subroutine znumbmm diff --git a/base/tools/Makefile b/base/tools/Makefile index c9d4cf8a..013c1b57 100644 --- a/base/tools/Makefile +++ b/base/tools/Makefile @@ -35,7 +35,7 @@ lib: mpfobjs $(FOBJS) mpfobjs: - (make $(MPFOBJS) F90="$(MPF90)" FC="$(MPF90)" FCOPT="$(F90COPT)") + (make $(MPFOBJS) FC="$(MPFC)") clean: /bin/rm -f $(MPFOBJS) $(FOBJS) diff --git a/configure b/configure index 4dd915f4..8b2612a7 100755 --- a/configure +++ b/configure @@ -1,20 +1,22 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.63 for PSBLAS 3.4. +# Generated by GNU Autoconf 2.69 for PSBLAS 3.5. +# +# Report bugs to . +# +# +# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc. # -# Report bugs to . # -# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, -# 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. # This configure script is free software; the Free Software Foundation # gives unlimited permission to copy, distribute and modify it. -## --------------------- ## -## M4sh Initialization. ## -## --------------------- ## +## -------------------- ## +## M4sh Initialization. ## +## -------------------- ## # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh -if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then +if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which @@ -22,23 +24,15 @@ if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else - case `(set -o) 2>/dev/null` in - *posix*) set -o posix ;; + case `(set -o) 2>/dev/null` in #( + *posix*) : + set -o posix ;; #( + *) : + ;; esac - fi - - -# PATH needs CR -# Avoid depending upon Character Ranges. -as_cr_letters='abcdefghijklmnopqrstuvwxyz' -as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' -as_cr_Letters=$as_cr_letters$as_cr_LETTERS -as_cr_digits='0123456789' -as_cr_alnum=$as_cr_Letters$as_cr_digits - as_nl=' ' export as_nl @@ -46,7 +40,13 @@ export as_nl as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo -if (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then +# Prefer a ksh shell builtin over an external printf program on Solaris, +# but without wasting forks for bash or zsh. +if test -z "$BASH_VERSION$ZSH_VERSION" \ + && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then + as_echo='print -r --' + as_echo_n='print -rn --' +elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='printf %s\n' as_echo_n='printf %s' else @@ -57,7 +57,7 @@ else as_echo_body='eval expr "X$1" : "X\\(.*\\)"' as_echo_n_body='eval arg=$1; - case $arg in + case $arg in #( *"$as_nl"*) expr "X$arg" : "X\\(.*\\)$as_nl"; arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; @@ -80,13 +80,6 @@ if test "${PATH_SEPARATOR+set}" != set; then } fi -# Support unset when possible. -if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then - as_unset=unset -else - as_unset=false -fi - # IFS # We need space, tab and new line, in precisely that order. Quoting is @@ -96,15 +89,16 @@ fi IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. -case $0 in +as_myself= +case $0 in #(( *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break -done + test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break + done IFS=$as_save_IFS ;; @@ -116,12 +110,16 @@ if test "x$as_myself" = x; then fi if test ! -f "$as_myself"; then $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 - { (exit 1); exit 1; } + exit 1 fi -# Work around bugs in pre-3.0 UWIN ksh. -for as_var in ENV MAIL MAILPATH -do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var +# Unset variables that we do not need and which cause bugs (e.g. in +# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" +# suppresses any "Segmentation fault" message there. '((' could +# trigger a bug in pdksh 5.2.14. +for as_var in BASH_ENV ENV MAIL MAILPATH +do eval test x\${$as_var+set} = xset \ + && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : done PS1='$ ' PS2='> ' @@ -133,7 +131,294 @@ export LC_ALL LANGUAGE=C export LANGUAGE -# Required to use basename. +# CDPATH. +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH + +# Use a proper internal environment variable to ensure we don't fall + # into an infinite loop, continuously re-executing ourselves. + if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then + _as_can_reexec=no; export _as_can_reexec; + # We cannot yet assume a decent shell, so we have to provide a +# neutralization value for shells without unset; and this also +# works around shells that cannot unset nonexistent variables. +# Preserve -v and -x to the replacement shell. +BASH_ENV=/dev/null +ENV=/dev/null +(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV +case $- in # (((( + *v*x* | *x*v* ) as_opts=-vx ;; + *v* ) as_opts=-v ;; + *x* ) as_opts=-x ;; + * ) as_opts= ;; +esac +exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} +# Admittedly, this is quite paranoid, since all the known shells bail +# out after a failed `exec'. +$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 +as_fn_exit 255 + fi + # We don't want this to propagate to other subprocesses. + { _as_can_reexec=; unset _as_can_reexec;} +if test "x$CONFIG_SHELL" = x; then + as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then : + emulate sh + NULLCMD=: + # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which + # is contrary to our usage. Disable this feature. + alias -g '\${1+\"\$@\"}'='\"\$@\"' + setopt NO_GLOB_SUBST +else + case \`(set -o) 2>/dev/null\` in #( + *posix*) : + set -o posix ;; #( + *) : + ;; +esac +fi +" + as_required="as_fn_return () { (exit \$1); } +as_fn_success () { as_fn_return 0; } +as_fn_failure () { as_fn_return 1; } +as_fn_ret_success () { return 0; } +as_fn_ret_failure () { return 1; } + +exitcode=0 +as_fn_success || { exitcode=1; echo as_fn_success failed.; } +as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; } +as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; } +as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; } +if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then : + +else + exitcode=1; echo positional parameters were not saved. +fi +test x\$exitcode = x0 || exit 1 +test -x / || exit 1" + as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO + as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO + eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" && + test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1 +test \$(( 1 + 1 )) = 2 || exit 1" + if (eval "$as_required") 2>/dev/null; then : + as_have_required=yes +else + as_have_required=no +fi + if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then : + +else + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +as_found=false +for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + as_found=: + case $as_dir in #( + /*) + for as_base in sh bash ksh sh5; do + # Try only shells that exist, to save several forks. + as_shell=$as_dir/$as_base + if { test -f "$as_shell" || test -f "$as_shell.exe"; } && + { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then : + CONFIG_SHELL=$as_shell as_have_required=yes + if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then : + break 2 +fi +fi + done;; + esac + as_found=false +done +$as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } && + { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then : + CONFIG_SHELL=$SHELL as_have_required=yes +fi; } +IFS=$as_save_IFS + + + if test "x$CONFIG_SHELL" != x; then : + export CONFIG_SHELL + # We cannot yet assume a decent shell, so we have to provide a +# neutralization value for shells without unset; and this also +# works around shells that cannot unset nonexistent variables. +# Preserve -v and -x to the replacement shell. +BASH_ENV=/dev/null +ENV=/dev/null +(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV +case $- in # (((( + *v*x* | *x*v* ) as_opts=-vx ;; + *v* ) as_opts=-v ;; + *x* ) as_opts=-x ;; + * ) as_opts= ;; +esac +exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} +# Admittedly, this is quite paranoid, since all the known shells bail +# out after a failed `exec'. +$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 +exit 255 +fi + + if test x$as_have_required = xno; then : + $as_echo "$0: This script requires a shell more modern than all" + $as_echo "$0: the shells that I found on your system." + if test x${ZSH_VERSION+set} = xset ; then + $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should" + $as_echo "$0: be upgraded to zsh 4.3.4 or later." + else + $as_echo "$0: Please tell bug-autoconf@gnu.org and +$0: salvatore.filippone@cranfield.ac.uk about your system, +$0: including any error possibly output before this +$0: message. Then install a modern shell, or manually run +$0: the script under such a shell if you do have one." + fi + exit 1 +fi +fi +fi +SHELL=${CONFIG_SHELL-/bin/sh} +export SHELL +# Unset more variables known to interfere with behavior of common tools. +CLICOLOR_FORCE= GREP_OPTIONS= +unset CLICOLOR_FORCE GREP_OPTIONS + +## --------------------- ## +## M4sh Shell Functions. ## +## --------------------- ## +# as_fn_unset VAR +# --------------- +# Portably unset VAR. +as_fn_unset () +{ + { eval $1=; unset $1;} +} +as_unset=as_fn_unset + +# as_fn_set_status STATUS +# ----------------------- +# Set $? to STATUS, without forking. +as_fn_set_status () +{ + return $1 +} # as_fn_set_status + +# as_fn_exit STATUS +# ----------------- +# Exit the shell with STATUS, even in a "trap 0" or "set -e" context. +as_fn_exit () +{ + set +e + as_fn_set_status $1 + exit $1 +} # as_fn_exit + +# as_fn_mkdir_p +# ------------- +# Create "$as_dir" as a directory, including parents if necessary. +as_fn_mkdir_p () +{ + + case $as_dir in #( + -*) as_dir=./$as_dir;; + esac + test -d "$as_dir" || eval $as_mkdir_p || { + as_dirs= + while :; do + case $as_dir in #( + *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( + *) as_qdir=$as_dir;; + esac + as_dirs="'$as_qdir' $as_dirs" + as_dir=`$as_dirname -- "$as_dir" || +$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$as_dir" : 'X\(//\)[^/]' \| \ + X"$as_dir" : 'X\(//\)$' \| \ + X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$as_dir" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + test -d "$as_dir" && break + done + test -z "$as_dirs" || eval "mkdir $as_dirs" + } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" + + +} # as_fn_mkdir_p + +# as_fn_executable_p FILE +# ----------------------- +# Test if FILE is an executable regular file. +as_fn_executable_p () +{ + test -f "$1" && test -x "$1" +} # as_fn_executable_p +# as_fn_append VAR VALUE +# ---------------------- +# Append the text in VALUE to the end of the definition contained in VAR. Take +# advantage of any shell optimizations that allow amortized linear growth over +# repeated appends, instead of the typical quadratic growth present in naive +# implementations. +if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : + eval 'as_fn_append () + { + eval $1+=\$2 + }' +else + as_fn_append () + { + eval $1=\$$1\$2 + } +fi # as_fn_append + +# as_fn_arith ARG... +# ------------------ +# Perform arithmetic evaluation on the ARGs, and store the result in the +# global $as_val. Take advantage of shells that can avoid forks. The arguments +# must be portable across $(()) and expr. +if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : + eval 'as_fn_arith () + { + as_val=$(( $* )) + }' +else + as_fn_arith () + { + as_val=`expr "$@" || test $? -eq 1` + } +fi # as_fn_arith + + +# as_fn_error STATUS ERROR [LINENO LOG_FD] +# ---------------------------------------- +# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are +# provided, also output the error to LOG_FD, referencing LINENO. Then exit the +# script with STATUS, using 1 if that was 0. +as_fn_error () +{ + as_status=$1; test $as_status -eq 0 && as_status=1 + if test "$4"; then + as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 + fi + $as_echo "$as_me: error: $2" >&2 + as_fn_exit $as_status +} # as_fn_error + if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr @@ -147,8 +432,12 @@ else as_basename=false fi +if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then + as_dirname=dirname +else + as_dirname=false +fi -# Name of the executable. as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ @@ -168,437 +457,133 @@ $as_echo X/"$0" | } s/.*/./; q'` -# CDPATH. -$as_unset CDPATH +# Avoid depending upon Character Ranges. +as_cr_letters='abcdefghijklmnopqrstuvwxyz' +as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' +as_cr_Letters=$as_cr_letters$as_cr_LETTERS +as_cr_digits='0123456789' +as_cr_alnum=$as_cr_Letters$as_cr_digits -if test "x$CONFIG_SHELL" = x; then - if (eval ":") 2>/dev/null; then - as_have_required=yes -else - as_have_required=no -fi + as_lineno_1=$LINENO as_lineno_1a=$LINENO + as_lineno_2=$LINENO as_lineno_2a=$LINENO + eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" && + test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || { + # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-) + sed -n ' + p + /[$]LINENO/= + ' <$as_myself | + sed ' + s/[$]LINENO.*/&-/ + t lineno + b + :lineno + N + :loop + s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ + t loop + s/-\n.*// + ' >$as_me.lineno && + chmod +x "$as_me.lineno" || + { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; } - if test $as_have_required = yes && (eval ": -(as_func_return () { - (exit \$1) -} -as_func_success () { - as_func_return 0 -} -as_func_failure () { - as_func_return 1 -} -as_func_ret_success () { - return 0 -} -as_func_ret_failure () { - return 1 + # If we had to re-execute with $CONFIG_SHELL, we're ensured to have + # already done that, so ensure we don't try to do so again and fall + # in an infinite loop. This has already happened in practice. + _as_can_reexec=no; export _as_can_reexec + # Don't try to exec as it changes $[0], causing all sort of problems + # (the dirname of $[0] is not the place where we might find the + # original and so on. Autoconf is especially sensitive to this). + . "./$as_me.lineno" + # Exit status is that of the last command. + exit } -exitcode=0 -if as_func_success; then - : +ECHO_C= ECHO_N= ECHO_T= +case `echo -n x` in #((((( +-n*) + case `echo 'xy\c'` in + *c*) ECHO_T=' ';; # ECHO_T is single tab character. + xy) ECHO_C='\c';; + *) echo `echo ksh88 bug on AIX 6.1` > /dev/null + ECHO_T=' ';; + esac;; +*) + ECHO_N='-n';; +esac + +rm -f conf$$ conf$$.exe conf$$.file +if test -d conf$$.dir; then + rm -f conf$$.dir/conf$$.file else - exitcode=1 - echo as_func_success failed. + rm -f conf$$.dir + mkdir conf$$.dir 2>/dev/null fi - -if as_func_failure; then - exitcode=1 - echo as_func_failure succeeded. +if (echo >conf$$.file) 2>/dev/null; then + if ln -s conf$$.file conf$$ 2>/dev/null; then + as_ln_s='ln -s' + # ... but there are two gotchas: + # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. + # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. + # In both cases, we have to default to `cp -pR'. + ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || + as_ln_s='cp -pR' + elif ln conf$$.file conf$$ 2>/dev/null; then + as_ln_s=ln + else + as_ln_s='cp -pR' + fi +else + as_ln_s='cp -pR' fi +rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file +rmdir conf$$.dir 2>/dev/null -if as_func_ret_success; then - : +if mkdir -p . 2>/dev/null; then + as_mkdir_p='mkdir -p "$as_dir"' else - exitcode=1 - echo as_func_ret_success failed. + test -d ./-p && rmdir ./-p + as_mkdir_p=false fi -if as_func_ret_failure; then - exitcode=1 - echo as_func_ret_failure succeeded. -fi +as_test_x='test -x' +as_executable_p=as_fn_executable_p -if ( set x; as_func_ret_success y && test x = \"\$1\" ); then - : -else - exitcode=1 - echo positional parameters were not saved. -fi +# Sed expression to map a string onto a valid CPP name. +as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" -test \$exitcode = 0) || { (exit 1); exit 1; } +# Sed expression to map a string onto a valid variable name. +as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" -( - as_lineno_1=\$LINENO - as_lineno_2=\$LINENO - test \"x\$as_lineno_1\" != \"x\$as_lineno_2\" && - test \"x\`expr \$as_lineno_1 + 1\`\" = \"x\$as_lineno_2\") || { (exit 1); exit 1; } -") 2> /dev/null; then - : -else - as_candidate_shells= - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - case $as_dir in - /*) - for as_base in sh bash ksh sh5; do - as_candidate_shells="$as_candidate_shells $as_dir/$as_base" - done;; - esac -done -IFS=$as_save_IFS +test -n "$DJDIR" || exec 7<&0 &1 - for as_shell in $as_candidate_shells $SHELL; do - # Try only shells that exist, to save several forks. - if { test -f "$as_shell" || test -f "$as_shell.exe"; } && - { ("$as_shell") 2> /dev/null <<\_ASEOF -if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then - emulate sh - NULLCMD=: - # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which - # is contrary to our usage. Disable this feature. - alias -g '${1+"$@"}'='"$@"' - setopt NO_GLOB_SUBST -else - case `(set -o) 2>/dev/null` in - *posix*) set -o posix ;; -esac +# Name of the host. +# hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status, +# so uname gets run too. +ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` -fi +# +# Initializations. +# +ac_default_prefix=/usr/local +ac_clean_files= +ac_config_libobj_dir=. +LIBOBJS= +cross_compiling=no +subdirs= +MFLAGS= +MAKEFLAGS= - -: -_ASEOF -}; then - CONFIG_SHELL=$as_shell - as_have_required=yes - if { "$as_shell" 2> /dev/null <<\_ASEOF -if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then - emulate sh - NULLCMD=: - # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which - # is contrary to our usage. Disable this feature. - alias -g '${1+"$@"}'='"$@"' - setopt NO_GLOB_SUBST -else - case `(set -o) 2>/dev/null` in - *posix*) set -o posix ;; -esac - -fi - - -: -(as_func_return () { - (exit $1) -} -as_func_success () { - as_func_return 0 -} -as_func_failure () { - as_func_return 1 -} -as_func_ret_success () { - return 0 -} -as_func_ret_failure () { - return 1 -} - -exitcode=0 -if as_func_success; then - : -else - exitcode=1 - echo as_func_success failed. -fi - -if as_func_failure; then - exitcode=1 - echo as_func_failure succeeded. -fi - -if as_func_ret_success; then - : -else - exitcode=1 - echo as_func_ret_success failed. -fi - -if as_func_ret_failure; then - exitcode=1 - echo as_func_ret_failure succeeded. -fi - -if ( set x; as_func_ret_success y && test x = "$1" ); then - : -else - exitcode=1 - echo positional parameters were not saved. -fi - -test $exitcode = 0) || { (exit 1); exit 1; } - -( - as_lineno_1=$LINENO - as_lineno_2=$LINENO - test "x$as_lineno_1" != "x$as_lineno_2" && - test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2") || { (exit 1); exit 1; } - -_ASEOF -}; then - break -fi - -fi - - done - - if test "x$CONFIG_SHELL" != x; then - for as_var in BASH_ENV ENV - do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var - done - export CONFIG_SHELL - exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"} -fi - - - if test $as_have_required = no; then - echo This script requires a shell more modern than all the - echo shells that I found on your system. Please install a - echo modern shell, or manually run the script under such a - echo shell if you do have one. - { (exit 1); exit 1; } -fi - - -fi - -fi - - - -(eval "as_func_return () { - (exit \$1) -} -as_func_success () { - as_func_return 0 -} -as_func_failure () { - as_func_return 1 -} -as_func_ret_success () { - return 0 -} -as_func_ret_failure () { - return 1 -} - -exitcode=0 -if as_func_success; then - : -else - exitcode=1 - echo as_func_success failed. -fi - -if as_func_failure; then - exitcode=1 - echo as_func_failure succeeded. -fi - -if as_func_ret_success; then - : -else - exitcode=1 - echo as_func_ret_success failed. -fi - -if as_func_ret_failure; then - exitcode=1 - echo as_func_ret_failure succeeded. -fi - -if ( set x; as_func_ret_success y && test x = \"\$1\" ); then - : -else - exitcode=1 - echo positional parameters were not saved. -fi - -test \$exitcode = 0") || { - echo No shell found that supports shell functions. - echo Please tell bug-autoconf@gnu.org about your system, - echo including any error possibly output before this message. - echo This can help us improve future autoconf versions. - echo Configuration will now proceed without shell functions. -} - - - - as_lineno_1=$LINENO - as_lineno_2=$LINENO - test "x$as_lineno_1" != "x$as_lineno_2" && - test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2" || { - - # Create $as_me.lineno as a copy of $as_myself, but with $LINENO - # uniformly replaced by the line number. The first 'sed' inserts a - # line-number line after each line using $LINENO; the second 'sed' - # does the real work. The second script uses 'N' to pair each - # line-number line with the line containing $LINENO, and appends - # trailing '-' during substitution so that $LINENO is not a special - # case at line end. - # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the - # scripts with optimization help from Paolo Bonzini. Blame Lee - # E. McMahon (1931-1989) for sed's syntax. :-) - sed -n ' - p - /[$]LINENO/= - ' <$as_myself | - sed ' - s/[$]LINENO.*/&-/ - t lineno - b - :lineno - N - :loop - s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ - t loop - s/-\n.*// - ' >$as_me.lineno && - chmod +x "$as_me.lineno" || - { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2 - { (exit 1); exit 1; }; } - - # Don't try to exec as it changes $[0], causing all sort of problems - # (the dirname of $[0] is not the place where we might find the - # original and so on. Autoconf is especially sensitive to this). - . "./$as_me.lineno" - # Exit status is that of the last command. - exit -} - - -if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then - as_dirname=dirname -else - as_dirname=false -fi - -ECHO_C= ECHO_N= ECHO_T= -case `echo -n x` in --n*) - case `echo 'x\c'` in - *c*) ECHO_T=' ';; # ECHO_T is single tab character. - *) ECHO_C='\c';; - esac;; -*) - ECHO_N='-n';; -esac -if expr a : '\(a\)' >/dev/null 2>&1 && - test "X`expr 00001 : '.*\(...\)'`" = X001; then - as_expr=expr -else - as_expr=false -fi - -rm -f conf$$ conf$$.exe conf$$.file -if test -d conf$$.dir; then - rm -f conf$$.dir/conf$$.file -else - rm -f conf$$.dir - mkdir conf$$.dir 2>/dev/null -fi -if (echo >conf$$.file) 2>/dev/null; then - if ln -s conf$$.file conf$$ 2>/dev/null; then - as_ln_s='ln -s' - # ... but there are two gotchas: - # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. - # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. - # In both cases, we have to default to `cp -p'. - ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || - as_ln_s='cp -p' - elif ln conf$$.file conf$$ 2>/dev/null; then - as_ln_s=ln - else - as_ln_s='cp -p' - fi -else - as_ln_s='cp -p' -fi -rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file -rmdir conf$$.dir 2>/dev/null - -if mkdir -p . 2>/dev/null; then - as_mkdir_p=: -else - test -d ./-p && rmdir ./-p - as_mkdir_p=false -fi - -if test -x / >/dev/null 2>&1; then - as_test_x='test -x' -else - if ls -dL / >/dev/null 2>&1; then - as_ls_L_option=L - else - as_ls_L_option= - fi - as_test_x=' - eval sh -c '\'' - if test -d "$1"; then - test -d "$1/."; - else - case $1 in - -*)set "./$1";; - esac; - case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in - ???[sx]*):;;*)false;;esac;fi - '\'' sh - ' -fi -as_executable_p=$as_test_x - -# Sed expression to map a string onto a valid CPP name. -as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" - -# Sed expression to map a string onto a valid variable name. -as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" - - - -exec 7<&0 &1 - -# Name of the host. -# hostname on some systems (SVR3.2, Linux) returns a bogus exit status, -# so uname gets run too. -ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` - -# -# Initializations. -# -ac_default_prefix=/usr/local -ac_clean_files= -ac_config_libobj_dir=. -LIBOBJS= -cross_compiling=no -subdirs= -MFLAGS= -MAKEFLAGS= -SHELL=${CONFIG_SHELL-/bin/sh} - -# Identity of this package. -PACKAGE_NAME='PSBLAS' -PACKAGE_TARNAME='psblas' -PACKAGE_VERSION='3.4' -PACKAGE_STRING='PSBLAS 3.4' -PACKAGE_BUGREPORT='salvatore.filippone@uniroma2.it' +# Identity of this package. +PACKAGE_NAME='PSBLAS' +PACKAGE_TARNAME='psblas' +PACKAGE_VERSION='3.5' +PACKAGE_STRING='PSBLAS 3.5' +PACKAGE_BUGREPORT='salvatore.filippone@cranfield.ac.uk' +PACKAGE_URL='' ac_unique_file="base/modules/psb_base_mod.f90" # Factoring default headers for most tests. @@ -660,7 +645,6 @@ INSTALL_DIR INSTALL MPIFCC AR -F90LINK FLINK MODEXT FMFLAG @@ -669,11 +653,6 @@ FAKEMPI EXTRA_OPT CCOPT FCOPT -MPCC -MPF77 -MPF90 -F90COPT -F90 BASELIBNAME UTILMODNAME METHDMODNAME @@ -685,9 +664,14 @@ LAPACK_LIBS EGREP GREP CPP +AM_BACKSLASH +AM_DEFAULT_VERBOSITY +AM_DEFAULT_V +AM_V am__fastdepCC_FALSE am__fastdepCC_TRUE CCDEPMODE +am__nodep AMDEPBACKSLASH AMDEP_FALSE AMDEP_TRUE @@ -715,7 +699,6 @@ PACKAGE CYGPATH_W am__isrc RANLIB -MPIF77 MPIFC MPILIBS MPICC @@ -723,9 +706,6 @@ ac_ct_CC CPPFLAGS CFLAGS CC -ac_ct_F77 -FFLAGS -F77 OBJEXT EXEEXT ac_ct_FC @@ -765,6 +745,7 @@ bindir program_transform_name prefix exec_prefix +PACKAGE_URL PACKAGE_BUGREPORT PACKAGE_STRING PACKAGE_VERSION @@ -785,6 +766,7 @@ with_library_path with_include_path with_module_path enable_dependency_tracking +enable_silent_rules enable_long_integers with_blas with_blasdir @@ -806,14 +788,11 @@ FC FCFLAGS LDFLAGS LIBS -F77 -FFLAGS CC CFLAGS CPPFLAGS MPICC MPIFC -MPIF77 CPP' @@ -877,8 +856,9 @@ do fi case $ac_option in - *=*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; - *) ac_optarg=yes ;; + *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; + *=) ac_optarg= ;; + *) ac_optarg=yes ;; esac # Accept the important Cygnus configure options, so we can diagnose typos. @@ -923,8 +903,7 @@ do ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && - { $as_echo "$as_me: error: invalid feature name: $ac_useropt" >&2 - { (exit 1); exit 1; }; } + as_fn_error $? "invalid feature name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in @@ -950,8 +929,7 @@ do ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && - { $as_echo "$as_me: error: invalid feature name: $ac_useropt" >&2 - { (exit 1); exit 1; }; } + as_fn_error $? "invalid feature name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in @@ -1155,8 +1133,7 @@ do ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && - { $as_echo "$as_me: error: invalid package name: $ac_useropt" >&2 - { (exit 1); exit 1; }; } + as_fn_error $? "invalid package name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in @@ -1172,8 +1149,7 @@ do ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && - { $as_echo "$as_me: error: invalid package name: $ac_useropt" >&2 - { (exit 1); exit 1; }; } + as_fn_error $? "invalid package name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in @@ -1203,17 +1179,17 @@ do | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) x_libraries=$ac_optarg ;; - -*) { $as_echo "$as_me: error: unrecognized option: $ac_option -Try \`$0 --help' for more information." >&2 - { (exit 1); exit 1; }; } + -*) as_fn_error $? "unrecognized option: \`$ac_option' +Try \`$0 --help' for more information" ;; *=*) ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` # Reject names that are not valid shell variable names. - expr "x$ac_envvar" : ".*[^_$as_cr_alnum]" >/dev/null && - { $as_echo "$as_me: error: invalid variable name: $ac_envvar" >&2 - { (exit 1); exit 1; }; } + case $ac_envvar in #( + '' | [0-9]* | *[!_$as_cr_alnum]* ) + as_fn_error $? "invalid variable name: \`$ac_envvar'" ;; + esac eval $ac_envvar=\$ac_optarg export $ac_envvar ;; @@ -1222,7 +1198,7 @@ Try \`$0 --help' for more information." >&2 $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2 expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2 - : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option} + : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}" ;; esac @@ -1230,15 +1206,13 @@ done if test -n "$ac_prev"; then ac_option=--`echo $ac_prev | sed 's/_/-/g'` - { $as_echo "$as_me: error: missing argument to $ac_option" >&2 - { (exit 1); exit 1; }; } + as_fn_error $? "missing argument to $ac_option" fi if test -n "$ac_unrecognized_opts"; then case $enable_option_checking in no) ;; - fatal) { $as_echo "$as_me: error: unrecognized options: $ac_unrecognized_opts" >&2 - { (exit 1); exit 1; }; } ;; + fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;; *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; esac fi @@ -1261,8 +1235,7 @@ do [\\/$]* | ?:[\\/]* ) continue;; NONE | '' ) case $ac_var in *prefix ) continue;; esac;; esac - { $as_echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2 - { (exit 1); exit 1; }; } + as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val" done # There might be people who depend on the old broken behavior: `$host' @@ -1276,8 +1249,6 @@ target=$target_alias if test "x$host_alias" != x; then if test "x$build_alias" = x; then cross_compiling=maybe - $as_echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host. - If a cross compiler is detected then cross compile mode will be used." >&2 elif test "x$build_alias" != "x$host_alias"; then cross_compiling=yes fi @@ -1292,11 +1263,9 @@ test "$silent" = yes && exec 6>/dev/null ac_pwd=`pwd` && test -n "$ac_pwd" && ac_ls_di=`ls -di .` && ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || - { $as_echo "$as_me: error: working directory cannot be determined" >&2 - { (exit 1); exit 1; }; } + as_fn_error $? "working directory cannot be determined" test "X$ac_ls_di" = "X$ac_pwd_ls_di" || - { $as_echo "$as_me: error: pwd does not report name of working directory" >&2 - { (exit 1); exit 1; }; } + as_fn_error $? "pwd does not report name of working directory" # Find the source files, if location was not specified. @@ -1335,13 +1304,11 @@ else fi if test ! -r "$srcdir/$ac_unique_file"; then test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." - { $as_echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2 - { (exit 1); exit 1; }; } + as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir" fi ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" ac_abs_confdir=`( - cd "$srcdir" && test -r "./$ac_unique_file" || { $as_echo "$as_me: error: $ac_msg" >&2 - { (exit 1); exit 1; }; } + cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg" pwd)` # When building in place, set srcdir=. if test "$ac_abs_confdir" = "$ac_pwd"; then @@ -1367,7 +1334,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures PSBLAS 3.4 to adapt to many kinds of systems. +\`configure' configures PSBLAS 3.5 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1381,7 +1348,7 @@ Configuration: --help=short display options specific to this package --help=recursive display the short help of all the included packages -V, --version display version information and exit - -q, --quiet, --silent do not print \`checking...' messages + -q, --quiet, --silent do not print \`checking ...' messages --cache-file=FILE cache test results in FILE [disabled] -C, --config-cache alias for \`--cache-file=config.cache' -n, --no-create do not create output files @@ -1433,7 +1400,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of PSBLAS 3.4:";; + short | recursive ) echo "Configuration of PSBLAS 3.5:";; esac cat <<\_ACEOF @@ -1443,30 +1410,34 @@ Optional Features: --enable-FEATURE[=ARG] include FEATURE [ARG=yes] --enable-serial Specify whether to enable a fake mpi library to run in serial mode. - --disable-dependency-tracking speeds up one-time build - --enable-dependency-tracking do not reject slow dependency extractors + --enable-dependency-tracking + do not reject slow dependency extractors + --disable-dependency-tracking + speeds up one-time build + --enable-silent-rules less verbose build output (undo: "make V=1") + --disable-silent-rules verbose build output (undo: "make V=0") --enable-long-integers Specify usage of 64 bits integers. Optional Packages: --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) - --with-ccopt additional CCOPT flags to be added: will prepend - to CCOPT - --with-fcopt additional FCOPT flags to be added: will prepend - to FCOPT + --with-ccopt additional [CCOPT] flags to be added: will prepend + to [CCOPT] + --with-fcopt additional [FCOPT] flags to be added: will prepend + to [FCOPT] --with-libs List additional link flags here. For example, --with-libs=-lspecial_system_lib or --with-libs=-L/path/to/libs - --with-clibs additional CLIBS flags to be added: will prepend - to CLIBS - --with-flibs additional FLIBS flags to be added: will prepend - to FLIBS - --with-library-path additional LIBRARYPATH flags to be added: will - prepend to LIBRARYPATH - --with-include-path additional INCLUDEPATH flags to be added: will - prepend to INCLUDEPATH - --with-module-path additional MODULE_PATH flags to be added: will - prepend to MODULE_PATH + --with-clibs additional [CLIBS] flags to be added: will prepend + to [CLIBS] + --with-flibs additional [FLIBS] flags to be added: will prepend + to [FLIBS] + --with-library-path additional [LIBRARYPATH] flags to be added: will + prepend to [LIBRARYPATH] + --with-include-path additional [INCLUDEPATH] flags to be added: will + prepend to [INCLUDEPATH] + --with-module-path additional [MODULE_PATH] flags to be added: will + prepend to [MODULE_PATH] --with-blas= use BLAS library --with-blasdir= search for BLAS library in --with-lapack= use LAPACK library @@ -1494,21 +1465,18 @@ Some influential environment variables: LDFLAGS linker flags, e.g. -L if you have libraries in a nonstandard directory LIBS libraries to pass to the linker, e.g. -l - F77 Fortran 77 compiler command - FFLAGS Fortran 77 compiler flags CC C compiler command CFLAGS C compiler flags - CPPFLAGS C/C++/Objective C preprocessor flags, e.g. -I if + CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I if you have headers in a nonstandard directory MPICC MPI C compiler command MPIFC MPI Fortran compiler command - MPIF77 MPI Fortran 77 compiler command CPP C preprocessor Use these variables to override the choices made by `configure' or to help it to find libraries and programs with nonstandard names/locations. -Report bugs to . +Report bugs to . _ACEOF ac_status=$? fi @@ -1571,380 +1539,982 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -PSBLAS configure 3.4 -generated by GNU Autoconf 2.63 +PSBLAS configure 3.5 +generated by GNU Autoconf 2.69 -Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, -2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. +Copyright (C) 2012 Free Software Foundation, Inc. This configure script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. _ACEOF exit fi -cat >config.log <<_ACEOF -This file contains any messages produced by compilers while -running configure, to aid debugging if configure makes a mistake. -It was created by PSBLAS $as_me 3.4, which was -generated by GNU Autoconf 2.63. Invocation command line was +## ------------------------ ## +## Autoconf initialization. ## +## ------------------------ ## - $ $0 $@ +# ac_fn_fc_try_compile LINENO +# --------------------------- +# Try to compile conftest.$ac_ext, and return whether this succeeded. +ac_fn_fc_try_compile () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + rm -f conftest.$ac_objext + if { { ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_compile") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + grep -v '^ *+' conftest.err >conftest.er1 + cat conftest.er1 >&5 + mv -f conftest.er1 conftest.err + fi + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && { + test -z "$ac_fc_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then : + ac_retval=0 +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 -_ACEOF -exec 5>>config.log + ac_retval=1 +fi + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + as_fn_set_status $ac_retval + +} # ac_fn_fc_try_compile + +# ac_fn_c_try_compile LINENO +# -------------------------- +# Try to compile conftest.$ac_ext, and return whether this succeeded. +ac_fn_c_try_compile () { -cat <<_ASUNAME -## --------- ## -## Platform. ## -## --------- ## + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + rm -f conftest.$ac_objext + if { { ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_compile") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + grep -v '^ *+' conftest.err >conftest.er1 + cat conftest.er1 >&5 + mv -f conftest.er1 conftest.err + fi + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then : + ac_retval=0 +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 -hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` -uname -m = `(uname -m) 2>/dev/null || echo unknown` -uname -r = `(uname -r) 2>/dev/null || echo unknown` -uname -s = `(uname -s) 2>/dev/null || echo unknown` -uname -v = `(uname -v) 2>/dev/null || echo unknown` + ac_retval=1 +fi + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + as_fn_set_status $ac_retval -/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` -/bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` +} # ac_fn_c_try_compile -/bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` -/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` -/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` -/usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown` -/bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` -/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` -/bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` +# ac_fn_c_try_link LINENO +# ----------------------- +# Try to link conftest.$ac_ext, and return whether this succeeded. +ac_fn_c_try_link () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + rm -f conftest.$ac_objext conftest$ac_exeext + if { { ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_link") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + grep -v '^ *+' conftest.err >conftest.er1 + cat conftest.er1 >&5 + mv -f conftest.er1 conftest.err + fi + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + test -x conftest$ac_exeext + }; then : + ac_retval=0 +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 -_ASUNAME + ac_retval=1 +fi + # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information + # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would + # interfere with the next link command; also delete a directory that is + # left behind by Apple's compiler. We do this before executing the actions. + rm -rf conftest.dSYM conftest_ipa8_conftest.oo + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + as_fn_set_status $ac_retval -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - $as_echo "PATH: $as_dir" -done -IFS=$as_save_IFS +} # ac_fn_c_try_link -} >&5 +# ac_fn_c_check_func LINENO FUNC VAR +# ---------------------------------- +# Tests whether FUNC exists, setting the cache variable VAR accordingly +ac_fn_c_check_func () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 +$as_echo_n "checking for $2... " >&6; } +if eval \${$3+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +/* Define $2 to an innocuous variant, in case declares $2. + For example, HP-UX 11i declares gettimeofday. */ +#define $2 innocuous_$2 -cat >&5 <<_ACEOF +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $2 (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ +#ifdef __STDC__ +# include +#else +# include +#endif -## ----------- ## -## Core tests. ## -## ----------- ## +#undef $2 -_ACEOF +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char $2 (); +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined __stub_$2 || defined __stub___$2 +choke me +#endif +int +main () +{ +return $2 (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval "$3=yes" +else + eval "$3=no" +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi +eval ac_res=\$$3 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno -# Keep a trace of the command line. -# Strip out --no-create and --no-recursion so they do not pile up. -# Strip out --silent because we don't want to record it for future runs. -# Also quote any args containing shell meta-characters. -# Make two passes to allow for proper duplicate-argument suppression. -ac_configure_args= -ac_configure_args0= -ac_configure_args1= -ac_must_keep_next=false -for ac_pass in 1 2 -do - for ac_arg - do - case $ac_arg in - -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; - -q | -quiet | --quiet | --quie | --qui | --qu | --q \ - | -silent | --silent | --silen | --sile | --sil) - continue ;; - *\'*) - ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; - esac - case $ac_pass in - 1) ac_configure_args0="$ac_configure_args0 '$ac_arg'" ;; - 2) - ac_configure_args1="$ac_configure_args1 '$ac_arg'" - if test $ac_must_keep_next = true; then - ac_must_keep_next=false # Got value, back to normal. - else - case $ac_arg in - *=* | --config-cache | -C | -disable-* | --disable-* \ - | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ - | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ - | -with-* | --with-* | -without-* | --without-* | --x) - case "$ac_configure_args0 " in - "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; - esac - ;; - -* ) ac_must_keep_next=true ;; - esac - fi - ac_configure_args="$ac_configure_args '$ac_arg'" - ;; - esac - done -done -$as_unset ac_configure_args0 || test "${ac_configure_args0+set}" != set || { ac_configure_args0=; export ac_configure_args0; } -$as_unset ac_configure_args1 || test "${ac_configure_args1+set}" != set || { ac_configure_args1=; export ac_configure_args1; } +} # ac_fn_c_check_func -# When interrupted or exit'd, cleanup temporary files, and complete -# config.log. We remove comments because anyway the quotes in there -# would cause problems or look ugly. -# WARNING: Use '\'' to represent an apostrophe within the trap. -# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug. -trap 'exit_status=$? - # Save into config.log some information that might help in debugging. - { - echo +# ac_fn_fc_try_link LINENO +# ------------------------ +# Try to link conftest.$ac_ext, and return whether this succeeded. +ac_fn_fc_try_link () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + rm -f conftest.$ac_objext conftest$ac_exeext + if { { ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_link") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + grep -v '^ *+' conftest.err >conftest.er1 + cat conftest.er1 >&5 + mv -f conftest.er1 conftest.err + fi + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && { + test -z "$ac_fc_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + test -x conftest$ac_exeext + }; then : + ac_retval=0 +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 - cat <<\_ASBOX -## ---------------- ## -## Cache variables. ## -## ---------------- ## -_ASBOX - echo - # The following way of writing the cache mishandles newlines in values, -( - for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do - eval ac_val=\$$ac_var - case $ac_val in #( - *${as_nl}*) - case $ac_var in #( - *_cv_*) { $as_echo "$as_me:$LINENO: WARNING: cache variable $ac_var contains a newline" >&5 -$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; - esac - case $ac_var in #( - _ | IFS | as_nl) ;; #( - BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( - *) $as_unset $ac_var ;; - esac ;; - esac - done - (set) 2>&1 | - case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #( - *${as_nl}ac_space=\ *) - sed -n \ - "s/'\''/'\''\\\\'\'''\''/g; - s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p" - ;; #( - *) - sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" - ;; - esac | - sort -) - echo + ac_retval=1 +fi + # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information + # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would + # interfere with the next link command; also delete a directory that is + # left behind by Apple's compiler. We do this before executing the actions. + rm -rf conftest.dSYM conftest_ipa8_conftest.oo + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + as_fn_set_status $ac_retval - cat <<\_ASBOX -## ----------------- ## -## Output variables. ## -## ----------------- ## -_ASBOX - echo - for ac_var in $ac_subst_vars - do - eval ac_val=\$$ac_var - case $ac_val in - *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; - esac - $as_echo "$ac_var='\''$ac_val'\''" - done | sort - echo +} # ac_fn_fc_try_link - if test -n "$ac_subst_files"; then - cat <<\_ASBOX -## ------------------- ## -## File substitutions. ## -## ------------------- ## -_ASBOX - echo - for ac_var in $ac_subst_files - do - eval ac_val=\$$ac_var - case $ac_val in - *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; - esac - $as_echo "$ac_var='\''$ac_val'\''" - done | sort - echo - fi +# ac_fn_c_try_run LINENO +# ---------------------- +# Try to link conftest.$ac_ext, and return whether this succeeded. Assumes +# that executables *can* be run. +ac_fn_c_try_run () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + if { { ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && { ac_try='./conftest$ac_exeext' + { { case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; }; then : + ac_retval=0 +else + $as_echo "$as_me: program exited with status $ac_status" >&5 + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 - if test -s confdefs.h; then - cat <<\_ASBOX -## ----------- ## -## confdefs.h. ## -## ----------- ## -_ASBOX - echo - cat confdefs.h - echo - fi - test "$ac_signal" != 0 && - $as_echo "$as_me: caught signal $ac_signal" - $as_echo "$as_me: exit $exit_status" - } >&5 - rm -f core *.core core.conftest.* && - rm -f -r conftest* confdefs* conf$$* $ac_clean_files && - exit $exit_status -' 0 -for ac_signal in 1 2 13 15; do - trap 'ac_signal='$ac_signal'; { (exit 1); exit 1; }' $ac_signal -done -ac_signal=0 + ac_retval=$ac_status +fi + rm -rf conftest.dSYM conftest_ipa8_conftest.oo + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + as_fn_set_status $ac_retval -# confdefs.h avoids OS command line length limits that DEFS can exceed. -rm -f -r conftest* confdefs.h +} # ac_fn_c_try_run -# Predefined preprocessor variables. +# ac_fn_c_compute_int LINENO EXPR VAR INCLUDES +# -------------------------------------------- +# Tries to find the compile-time value of EXPR in a program that includes +# INCLUDES, setting VAR accordingly. Returns whether the value could be +# computed +ac_fn_c_compute_int () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + if test "$cross_compiling" = yes; then + # Depending upon the size, compute the lo and hi bounds. +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$4 +int +main () +{ +static int test_array [1 - 2 * !(($2) >= 0)]; +test_array [0] = 0; +return test_array [0]; -cat >>confdefs.h <<_ACEOF -#define PACKAGE_NAME "$PACKAGE_NAME" + ; + return 0; +} _ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_lo=0 ac_mid=0 + while :; do + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$4 +int +main () +{ +static int test_array [1 - 2 * !(($2) <= $ac_mid)]; +test_array [0] = 0; +return test_array [0]; - -cat >>confdefs.h <<_ACEOF -#define PACKAGE_TARNAME "$PACKAGE_TARNAME" + ; + return 0; +} _ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_hi=$ac_mid; break +else + as_fn_arith $ac_mid + 1 && ac_lo=$as_val + if test $ac_lo -le $ac_mid; then + ac_lo= ac_hi= + break + fi + as_fn_arith 2 '*' $ac_mid + 1 && ac_mid=$as_val +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + done +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$4 +int +main () +{ +static int test_array [1 - 2 * !(($2) < 0)]; +test_array [0] = 0; +return test_array [0]; - -cat >>confdefs.h <<_ACEOF -#define PACKAGE_VERSION "$PACKAGE_VERSION" + ; + return 0; +} _ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_hi=-1 ac_mid=-1 + while :; do + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$4 +int +main () +{ +static int test_array [1 - 2 * !(($2) >= $ac_mid)]; +test_array [0] = 0; +return test_array [0]; - -cat >>confdefs.h <<_ACEOF -#define PACKAGE_STRING "$PACKAGE_STRING" + ; + return 0; +} _ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_lo=$ac_mid; break +else + as_fn_arith '(' $ac_mid ')' - 1 && ac_hi=$as_val + if test $ac_mid -le $ac_hi; then + ac_lo= ac_hi= + break + fi + as_fn_arith 2 '*' $ac_mid && ac_mid=$as_val +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + done +else + ac_lo= ac_hi= +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +# Binary search between lo and hi bounds. +while test "x$ac_lo" != "x$ac_hi"; do + as_fn_arith '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo && ac_mid=$as_val + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$4 +int +main () +{ +static int test_array [1 - 2 * !(($2) <= $ac_mid)]; +test_array [0] = 0; +return test_array [0]; - -cat >>confdefs.h <<_ACEOF -#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" + ; + return 0; +} _ACEOF - - -# Let the site file select an alternate cache file if it wants to. -# Prefer an explicitly selected file to automatically selected ones. -ac_site_file1=NONE -ac_site_file2=NONE -if test -n "$CONFIG_SITE"; then - ac_site_file1=$CONFIG_SITE -elif test "x$prefix" != xNONE; then - ac_site_file1=$prefix/share/config.site - ac_site_file2=$prefix/etc/config.site +if ac_fn_c_try_compile "$LINENO"; then : + ac_hi=$ac_mid else - ac_site_file1=$ac_default_prefix/share/config.site - ac_site_file2=$ac_default_prefix/etc/config.site + as_fn_arith '(' $ac_mid ')' + 1 && ac_lo=$as_val fi -for ac_site_file in "$ac_site_file1" "$ac_site_file2" -do - test "x$ac_site_file" = xNONE && continue - if test -r "$ac_site_file"; then - { $as_echo "$as_me:$LINENO: loading site script $ac_site_file" >&5 -$as_echo "$as_me: loading site script $ac_site_file" >&6;} - sed 's/^/| /' "$ac_site_file" >&5 - . "$ac_site_file" - fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext done +case $ac_lo in #(( +?*) eval "$3=\$ac_lo"; ac_retval=0 ;; +'') ac_retval=1 ;; +esac + else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$4 +static long int longval () { return $2; } +static unsigned long int ulongval () { return $2; } +#include +#include +int +main () +{ -if test -r "$cache_file"; then - # Some versions of bash will fail to source /dev/null (special - # files actually), so we avoid doing that. - if test -f "$cache_file"; then - { $as_echo "$as_me:$LINENO: loading cache $cache_file" >&5 -$as_echo "$as_me: loading cache $cache_file" >&6;} - case $cache_file in - [\\/]* | ?:[\\/]* ) . "$cache_file";; - *) . "./$cache_file";; - esac - fi + FILE *f = fopen ("conftest.val", "w"); + if (! f) + return 1; + if (($2) < 0) + { + long int i = longval (); + if (i != ($2)) + return 1; + fprintf (f, "%ld", i); + } + else + { + unsigned long int i = ulongval (); + if (i != ($2)) + return 1; + fprintf (f, "%lu", i); + } + /* Do not output a trailing newline, as this causes \r\n confusion + on some platforms. */ + return ferror (f) || fclose (f) != 0; + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + echo >>conftest.val; read $3 &5 -$as_echo "$as_me: creating cache $cache_file" >&6;} - >$cache_file + ac_retval=1 fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +rm -f conftest.val -# Check that the precious variables saved in the cache have kept the same -# value. -ac_cache_corrupted=false -for ac_var in $ac_precious_vars; do - eval ac_old_set=\$ac_cv_env_${ac_var}_set - eval ac_new_set=\$ac_env_${ac_var}_set - eval ac_old_val=\$ac_cv_env_${ac_var}_value - eval ac_new_val=\$ac_env_${ac_var}_value - case $ac_old_set,$ac_new_set in - set,) - { $as_echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 -$as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} - ac_cache_corrupted=: ;; - ,set) - { $as_echo "$as_me:$LINENO: error: \`$ac_var' was not set in the previous run" >&5 -$as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} - ac_cache_corrupted=: ;; - ,);; - *) - if test "x$ac_old_val" != "x$ac_new_val"; then - # differences in whitespace do not lead to failure. - ac_old_val_w=`echo x $ac_old_val` - ac_new_val_w=`echo x $ac_new_val` - if test "$ac_old_val_w" != "$ac_new_val_w"; then - { $as_echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5 -$as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} - ac_cache_corrupted=: - else - { $as_echo "$as_me:$LINENO: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5 -$as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;} - eval $ac_var=\$ac_old_val - fi - { $as_echo "$as_me:$LINENO: former value: \`$ac_old_val'" >&5 -$as_echo "$as_me: former value: \`$ac_old_val'" >&2;} - { $as_echo "$as_me:$LINENO: current value: \`$ac_new_val'" >&5 -$as_echo "$as_me: current value: \`$ac_new_val'" >&2;} - fi;; - esac - # Pass precious variables to config.status. - if test "$ac_new_set" = set; then - case $ac_new_val in - *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; - *) ac_arg=$ac_var=$ac_new_val ;; - esac - case " $ac_configure_args " in - *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. - *) ac_configure_args="$ac_configure_args '$ac_arg'" ;; - esac fi -done -if $ac_cache_corrupted; then - { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} - { $as_echo "$as_me:$LINENO: error: changes in the environment can compromise the build" >&5 -$as_echo "$as_me: error: changes in the environment can compromise the build" >&2;} - { { $as_echo "$as_me:$LINENO: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5 -$as_echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;} - { (exit 1); exit 1; }; } -fi + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + as_fn_set_status $ac_retval +} # ac_fn_c_compute_int +# ac_fn_c_try_cpp LINENO +# ---------------------- +# Try to preprocess conftest.$ac_ext, and return whether this succeeded. +ac_fn_c_try_cpp () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + if { { ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + grep -v '^ *+' conftest.err >conftest.er1 + cat conftest.er1 >&5 + mv -f conftest.er1 conftest.err + fi + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } > conftest.i && { + test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || + test ! -s conftest.err + }; then : + ac_retval=0 +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + ac_retval=1 +fi + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + as_fn_set_status $ac_retval +} # ac_fn_c_try_cpp +# ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES +# ------------------------------------------------------- +# Tests whether HEADER exists and can be compiled using the include files in +# INCLUDES, setting the cache variable VAR accordingly. +ac_fn_c_check_header_compile () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 +$as_echo_n "checking for $2... " >&6; } +if eval \${$3+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$4 +#include <$2> +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + eval "$3=yes" +else + eval "$3=no" +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +eval ac_res=\$$3 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno +} # ac_fn_c_check_header_compile +# ac_fn_c_check_header_mongrel LINENO HEADER VAR INCLUDES +# ------------------------------------------------------- +# Tests whether HEADER exists, giving a warning if it cannot be compiled using +# the include files in INCLUDES and setting the cache variable VAR +# accordingly. +ac_fn_c_check_header_mongrel () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + if eval \${$3+:} false; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 +$as_echo_n "checking for $2... " >&6; } +if eval \${$3+:} false; then : + $as_echo_n "(cached) " >&6 +fi +eval ac_res=\$$3 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } +else + # Is the header compilable? +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 usability" >&5 +$as_echo_n "checking $2 usability... " >&6; } +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$4 +#include <$2> +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_header_compiler=yes +else + ac_header_compiler=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_compiler" >&5 +$as_echo "$ac_header_compiler" >&6; } +# Is the header present? +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 presence" >&5 +$as_echo_n "checking $2 presence... " >&6; } +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include <$2> +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : + ac_header_preproc=yes +else + ac_header_preproc=no +fi +rm -f conftest.err conftest.i conftest.$ac_ext +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5 +$as_echo "$ac_header_preproc" >&6; } +# So? What about this header? +case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in #(( + yes:no: ) + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&5 +$as_echo "$as_me: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 +$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} + ;; + no:yes:* ) + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: present but cannot be compiled" >&5 +$as_echo "$as_me: WARNING: $2: present but cannot be compiled" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: check for missing prerequisite headers?" >&5 +$as_echo "$as_me: WARNING: $2: check for missing prerequisite headers?" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: see the Autoconf documentation" >&5 +$as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&5 +$as_echo "$as_me: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 +$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} +( $as_echo "## -------------------------------------------------- ## +## Report this to salvatore.filippone@cranfield.ac.uk ## +## -------------------------------------------------- ##" + ) | sed "s/^/$as_me: WARNING: /" >&2 + ;; +esac + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 +$as_echo_n "checking for $2... " >&6; } +if eval \${$3+:} false; then : + $as_echo_n "(cached) " >&6 +else + eval "$3=\$ac_header_compiler" +fi +eval ac_res=\$$3 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } +fi + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno +} # ac_fn_c_check_header_mongrel +cat >config.log <<_ACEOF +This file contains any messages produced by compilers while +running configure, to aid debugging if configure makes a mistake. +It was created by PSBLAS $as_me 3.5, which was +generated by GNU Autoconf 2.69. Invocation command line was + $ $0 $@ +_ACEOF +exec 5>>config.log +{ +cat <<_ASUNAME +## --------- ## +## Platform. ## +## --------- ## +hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` +uname -m = `(uname -m) 2>/dev/null || echo unknown` +uname -r = `(uname -r) 2>/dev/null || echo unknown` +uname -s = `(uname -s) 2>/dev/null || echo unknown` +uname -v = `(uname -v) 2>/dev/null || echo unknown` +/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` +/bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` +/bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` +/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` +/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` +/usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown` +/bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` +/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` +/bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` +_ASUNAME +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + $as_echo "PATH: $as_dir" + done +IFS=$as_save_IFS +} >&5 +cat >&5 <<_ACEOF +## ----------- ## +## Core tests. ## +## ----------- ## + +_ACEOF + + +# Keep a trace of the command line. +# Strip out --no-create and --no-recursion so they do not pile up. +# Strip out --silent because we don't want to record it for future runs. +# Also quote any args containing shell meta-characters. +# Make two passes to allow for proper duplicate-argument suppression. +ac_configure_args= +ac_configure_args0= +ac_configure_args1= +ac_must_keep_next=false +for ac_pass in 1 2 +do + for ac_arg + do + case $ac_arg in + -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil) + continue ;; + *\'*) + ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; + esac + case $ac_pass in + 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;; + 2) + as_fn_append ac_configure_args1 " '$ac_arg'" + if test $ac_must_keep_next = true; then + ac_must_keep_next=false # Got value, back to normal. + else + case $ac_arg in + *=* | --config-cache | -C | -disable-* | --disable-* \ + | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ + | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ + | -with-* | --with-* | -without-* | --without-* | --x) + case "$ac_configure_args0 " in + "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; + esac + ;; + -* ) ac_must_keep_next=true ;; + esac + fi + as_fn_append ac_configure_args " '$ac_arg'" + ;; + esac + done +done +{ ac_configure_args0=; unset ac_configure_args0;} +{ ac_configure_args1=; unset ac_configure_args1;} + +# When interrupted or exit'd, cleanup temporary files, and complete +# config.log. We remove comments because anyway the quotes in there +# would cause problems or look ugly. +# WARNING: Use '\'' to represent an apostrophe within the trap. +# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug. +trap 'exit_status=$? + # Save into config.log some information that might help in debugging. + { + echo + + $as_echo "## ---------------- ## +## Cache variables. ## +## ---------------- ##" + echo + # The following way of writing the cache mishandles newlines in values, +( + for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do + eval ac_val=\$$ac_var + case $ac_val in #( + *${as_nl}*) + case $ac_var in #( + *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 +$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; + esac + case $ac_var in #( + _ | IFS | as_nl) ;; #( + BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( + *) { eval $ac_var=; unset $ac_var;} ;; + esac ;; + esac + done + (set) 2>&1 | + case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #( + *${as_nl}ac_space=\ *) + sed -n \ + "s/'\''/'\''\\\\'\'''\''/g; + s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p" + ;; #( + *) + sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" + ;; + esac | + sort +) + echo + + $as_echo "## ----------------- ## +## Output variables. ## +## ----------------- ##" + echo + for ac_var in $ac_subst_vars + do + eval ac_val=\$$ac_var + case $ac_val in + *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; + esac + $as_echo "$ac_var='\''$ac_val'\''" + done | sort + echo + + if test -n "$ac_subst_files"; then + $as_echo "## ------------------- ## +## File substitutions. ## +## ------------------- ##" + echo + for ac_var in $ac_subst_files + do + eval ac_val=\$$ac_var + case $ac_val in + *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; + esac + $as_echo "$ac_var='\''$ac_val'\''" + done | sort + echo + fi + + if test -s confdefs.h; then + $as_echo "## ----------- ## +## confdefs.h. ## +## ----------- ##" + echo + cat confdefs.h + echo + fi + test "$ac_signal" != 0 && + $as_echo "$as_me: caught signal $ac_signal" + $as_echo "$as_me: exit $exit_status" + } >&5 + rm -f core *.core core.conftest.* && + rm -f -r conftest* confdefs* conf$$* $ac_clean_files && + exit $exit_status +' 0 +for ac_signal in 1 2 13 15; do + trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal +done +ac_signal=0 + +# confdefs.h avoids OS command line length limits that DEFS can exceed. +rm -f -r conftest* confdefs.h + +$as_echo "/* confdefs.h */" > confdefs.h + +# Predefined preprocessor variables. + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_NAME "$PACKAGE_NAME" +_ACEOF + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_TARNAME "$PACKAGE_TARNAME" +_ACEOF + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_VERSION "$PACKAGE_VERSION" +_ACEOF + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_STRING "$PACKAGE_STRING" +_ACEOF + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" +_ACEOF + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_URL "$PACKAGE_URL" +_ACEOF + + +# Let the site file select an alternate cache file if it wants to. +# Prefer an explicitly selected file to automatically selected ones. +ac_site_file1=NONE +ac_site_file2=NONE +if test -n "$CONFIG_SITE"; then + # We do not want a PATH search for config.site. + case $CONFIG_SITE in #(( + -*) ac_site_file1=./$CONFIG_SITE;; + */*) ac_site_file1=$CONFIG_SITE;; + *) ac_site_file1=./$CONFIG_SITE;; + esac +elif test "x$prefix" != xNONE; then + ac_site_file1=$prefix/share/config.site + ac_site_file2=$prefix/etc/config.site +else + ac_site_file1=$ac_default_prefix/share/config.site + ac_site_file2=$ac_default_prefix/etc/config.site +fi +for ac_site_file in "$ac_site_file1" "$ac_site_file2" +do + test "x$ac_site_file" = xNONE && continue + if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5 +$as_echo "$as_me: loading site script $ac_site_file" >&6;} + sed 's/^/| /' "$ac_site_file" >&5 + . "$ac_site_file" \ + || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "failed to load site script $ac_site_file +See \`config.log' for more details" "$LINENO" 5; } + fi +done +if test -r "$cache_file"; then + # Some versions of bash will fail to source /dev/null (special files + # actually), so we avoid doing that. DJGPP emulates it as a regular file. + if test /dev/null != "$cache_file" && test -f "$cache_file"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5 +$as_echo "$as_me: loading cache $cache_file" >&6;} + case $cache_file in + [\\/]* | ?:[\\/]* ) . "$cache_file";; + *) . "./$cache_file";; + esac + fi +else + { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5 +$as_echo "$as_me: creating cache $cache_file" >&6;} + >$cache_file +fi +# Check that the precious variables saved in the cache have kept the same +# value. +ac_cache_corrupted=false +for ac_var in $ac_precious_vars; do + eval ac_old_set=\$ac_cv_env_${ac_var}_set + eval ac_new_set=\$ac_env_${ac_var}_set + eval ac_old_val=\$ac_cv_env_${ac_var}_value + eval ac_new_val=\$ac_env_${ac_var}_value + case $ac_old_set,$ac_new_set in + set,) + { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 +$as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} + ac_cache_corrupted=: ;; + ,set) + { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5 +$as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} + ac_cache_corrupted=: ;; + ,);; + *) + if test "x$ac_old_val" != "x$ac_new_val"; then + # differences in whitespace do not lead to failure. + ac_old_val_w=`echo x $ac_old_val` + ac_new_val_w=`echo x $ac_new_val` + if test "$ac_old_val_w" != "$ac_new_val_w"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5 +$as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} + ac_cache_corrupted=: + else + { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5 +$as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;} + eval $ac_var=\$ac_old_val + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5 +$as_echo "$as_me: former value: \`$ac_old_val'" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5 +$as_echo "$as_me: current value: \`$ac_new_val'" >&2;} + fi;; + esac + # Pass precious variables to config.status. + if test "$ac_new_set" = set; then + case $ac_new_val in + *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; + *) ac_arg=$ac_var=$ac_new_val ;; + esac + case " $ac_configure_args " in + *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. + *) as_fn_append ac_configure_args " '$ac_arg'" ;; + esac + fi +done +if $ac_cache_corrupted; then + { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5 +$as_echo "$as_me: error: changes in the environment can compromise the build" >&2;} + as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5 +fi +## -------------------- ## +## Main body of script. ## +## -------------------- ## ac_ext=c ac_cpp='$CPP $CPPFLAGS' @@ -1956,14 +2526,14 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu # VERSION is the file containing the PSBLAS version code # FIXME -psblas_cv_version="3.4" +psblas_cv_version="3.5" # A sample source file # Our custom M4 macros are in the 'config' directory -{ $as_echo "$as_me:$LINENO: +{ $as_echo "$as_me:${as_lineno-$LINENO}: -------------------------------------------------------------------------------- Welcome to the $PACKAGE_NAME $psblas_cv_version configure Script. @@ -1972,7 +2542,7 @@ psblas_cv_version="3.4" Be sure to specify the library paths of your interest. Examples: ./configure --with-libs=-L/some/directory/LIB <- will append to LIBS - FC=mpif90 F77=$FC CC=mpicc ./configure <- will force FC,CC,F77 + FC=mpif90 CC=mpicc ./configure <- will force FC,CC See ./configure --help=short fore more info. -------------------------------------------------------------------------------- @@ -1986,13 +2556,13 @@ $as_echo "$as_me: Be sure to specify the library paths of your interest. Examples: ./configure --with-libs=-L/some/directory/LIB <- will append to LIBS - FC=mpif90 F77=$FC CC=mpicc ./configure <- will force FC,CC,F77 + FC=mpif90 CC=mpicc ./configure <- will force FC,CC See ./configure --help=short fore more info. -------------------------------------------------------------------------------- " >&6;} ############################################################################### -# Compilers detection: FC,F77,CC should be set, if found. +# Compilers detection: FC,CC should be set, if found. ############################################################################### # # Installation. @@ -2015,9 +2585,7 @@ for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do fi done if test -z "$ac_aux_dir"; then - { { $as_echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" >&5 -$as_echo "$as_me: error: cannot find install-sh or install.sh in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" >&2;} - { (exit 1); exit 1; }; } + as_fn_error $? "cannot find install-sh, install.sh, or shtool in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" "$LINENO" 5 fi # These three variables are undocumented and unsupported, @@ -2043,10 +2611,10 @@ ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. # OS/2's system install, which has a completely different semantic # ./install, which can be erroneously created by make from ./install.sh. # Reject install programs that cannot install multiple files. -{ $as_echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5 $as_echo_n "checking for a BSD-compatible install... " >&6; } if test -z "$INSTALL"; then -if test "${ac_cv_path_install+set}" = set; then +if ${ac_cv_path_install+:} false; then : $as_echo_n "(cached) " >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -2054,11 +2622,11 @@ for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - # Account for people who put trailing slashes in PATH elements. -case $as_dir/ in - ./ | .// | /cC/* | \ + # Account for people who put trailing slashes in PATH elements. +case $as_dir/ in #(( + ./ | .// | /[cC]/* | \ /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ - ?:\\/os2\\/install\\/* | ?:\\/OS2\\/INSTALL\\/* | \ + ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \ /usr/ucb/* ) ;; *) # OSF1 and SCO ODT 3.0 have their own names for install. @@ -2066,7 +2634,7 @@ case $as_dir/ in # by default. for ac_prog in ginstall scoinst install; do for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then if test $ac_prog = install && grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # AIX install. It has an incompatible calling convention. @@ -2095,7 +2663,7 @@ case $as_dir/ in ;; esac -done + done IFS=$as_save_IFS rm -rf conftest.one conftest.two conftest.dir @@ -2111,7 +2679,7 @@ fi INSTALL=$ac_install_sh fi fi -{ $as_echo "$as_me:$LINENO: result: $INSTALL" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5 $as_echo "$INSTALL" >&6; } # Use test -z because SunOS4 sh mishandles braces in ${var-val}. @@ -2123,7 +2691,7 @@ test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' -{ $as_echo "$as_me:$LINENO: checking where to install" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking where to install" >&5 $as_echo_n "checking where to install... " >&6; } case $prefix in \/* ) eval "INSTALL_DIR=$prefix";; @@ -2145,10 +2713,10 @@ case $samplesdir in \/* ) eval "INSTALL_SAMPLESDIR=$samplesdir";; * ) eval "INSTALL_SAMPLESDIR=$INSTALL_DIR/samples";; esac -{ $as_echo "$as_me:$LINENO: result: $INSTALL_DIR $INSTALL_INCLUDEDIR $INSTALL_LIBDIR $INSTALL_DOCSDIR $INSTALL_SAMPLESDIR" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL_DIR $INSTALL_INCLUDEDIR $INSTALL_LIBDIR $INSTALL_DOCSDIR $INSTALL_SAMPLESDIR" >&5 $as_echo "$INSTALL_DIR $INSTALL_INCLUDEDIR $INSTALL_LIBDIR $INSTALL_DOCSDIR $INSTALL_SAMPLESDIR" >&6; } -# Note that the following line won't save from troubles. +save_FCFLAGS="$FCFLAGS"; ac_ext=${ac_fc_srcext-f} ac_compile='$FC -c $FCFLAGS $ac_fcflags_srcext conftest.$ac_ext >&5' ac_link='$FC -o conftest$ac_exeext $FCFLAGS $LDFLAGS $ac_fcflags_srcext conftest.$ac_ext $LIBS >&5' @@ -2158,9 +2726,9 @@ if test -n "$ac_tool_prefix"; then do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_FC+set}" = set; then +if ${ac_cv_prog_FC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$FC"; then @@ -2171,24 +2739,24 @@ for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_FC="$ac_tool_prefix$ac_prog" - $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done -done + done IFS=$as_save_IFS fi fi FC=$ac_cv_prog_FC if test -n "$FC"; then - { $as_echo "$as_me:$LINENO: result: $FC" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $FC" >&5 $as_echo "$FC" >&6; } else - { $as_echo "$as_me:$LINENO: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi @@ -2202,9 +2770,9 @@ if test -z "$FC"; then do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_ac_ct_FC+set}" = set; then +if ${ac_cv_prog_ac_ct_FC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_FC"; then @@ -2215,24 +2783,24 @@ for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_FC="$ac_prog" - $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done -done + done IFS=$as_save_IFS fi fi ac_ct_FC=$ac_cv_prog_ac_ct_FC if test -n "$ac_ct_FC"; then - { $as_echo "$as_me:$LINENO: result: $ac_ct_FC" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_FC" >&5 $as_echo "$ac_ct_FC" >&6; } else - { $as_echo "$as_me:$LINENO: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi @@ -2245,7 +2813,7 @@ done else case $cross_compiling:$ac_tool_warned in yes:) -{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac @@ -2255,1901 +2823,708 @@ fi # Provide some information about the compiler. -$as_echo "$as_me:$LINENO: checking for Fortran compiler version" >&5 +$as_echo "$as_me:${as_lineno-$LINENO}: checking for Fortran compiler version" >&5 set X $ac_compile ac_compiler=$2 -{ (ac_try="$ac_compiler --version >&5" +for ac_option in --version -v -V -qversion; do + { { ac_try="$ac_compiler $ac_option >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compiler --version >&5") 2>&5 - ac_status=$? - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } -{ (ac_try="$ac_compiler -v >&5" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compiler -v >&5") 2>&5 - ac_status=$? - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } -{ (ac_try="$ac_compiler -V >&5" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compiler -V >&5") 2>&5 - ac_status=$? - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } -rm -f a.out - -cat >conftest.$ac_ext <<_ACEOF - program main - - end -_ACEOF -ac_clean_files_save=$ac_clean_files -ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out" -# Try to create an executable without -o first, disregard a.out. -# It will help us diagnose broken compilers, and finding out an intuition -# of exeext. -{ $as_echo "$as_me:$LINENO: checking for Fortran compiler default output file name" >&5 -$as_echo_n "checking for Fortran compiler default output file name... " >&6; } -ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` - -# The possible output files: -ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*" - -ac_rmfiles= -for ac_file in $ac_files -do - case $ac_file in - *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; - * ) ac_rmfiles="$ac_rmfiles $ac_file";; - esac -done -rm -f $ac_rmfiles - -if { (ac_try="$ac_link_default" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_link_default") 2>&5 - ac_status=$? - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; then - # Autoconf-2.13 could set the ac_cv_exeext variable to `no'. -# So ignore a value of `no', otherwise this would lead to `EXEEXT = no' -# in a Makefile. We should not override ac_cv_exeext if it was cached, -# so that the user can short-circuit this test for compilers unknown to -# Autoconf. -for ac_file in $ac_files '' -do - test -f "$ac_file" || continue - case $ac_file in - *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) - ;; - [ab].out ) - # We found the default executable, but exeext='' is most - # certainly right. - break;; - *.* ) - if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no; - then :; else - ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` - fi - # We set ac_cv_exeext here because the later test for it is not - # safe: cross compilers may not add the suffix if given an `-o' - # argument, so we may need to know it at that point already. - # Even if this section looks crufty: it has the advantage of - # actually working. - break;; - * ) - break;; - esac -done -test "$ac_cv_exeext" = no && ac_cv_exeext= - -else - ac_file='' -fi - -{ $as_echo "$as_me:$LINENO: result: $ac_file" >&5 -$as_echo "$ac_file" >&6; } -if test -z "$ac_file"; then - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -{ { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -{ { $as_echo "$as_me:$LINENO: error: Fortran compiler cannot create executables -See \`config.log' for more details." >&5 -$as_echo "$as_me: error: Fortran compiler cannot create executables -See \`config.log' for more details." >&2;} - { (exit 77); exit 77; }; }; } -fi - -ac_exeext=$ac_cv_exeext - -# Check that the compiler produces executables we can run. If not, either -# the compiler is broken, or we cross compile. -{ $as_echo "$as_me:$LINENO: checking whether the Fortran compiler works" >&5 -$as_echo_n "checking whether the Fortran compiler works... " >&6; } -# FIXME: These cross compiler hacks should be removed for Autoconf 3.0 -# If not cross compiling, check that we can run a simple program. -if test "$cross_compiling" != yes; then - if { ac_try='./$ac_file' - { (case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - cross_compiling=no - else - if test "$cross_compiling" = maybe; then - cross_compiling=yes - else - { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -{ { $as_echo "$as_me:$LINENO: error: cannot run Fortran compiled programs. -If you meant to cross compile, use \`--host'. -See \`config.log' for more details." >&5 -$as_echo "$as_me: error: cannot run Fortran compiled programs. -If you meant to cross compile, use \`--host'. -See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; }; } - fi - fi -fi -{ $as_echo "$as_me:$LINENO: result: yes" >&5 -$as_echo "yes" >&6; } - -rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out -ac_clean_files=$ac_clean_files_save -# Check that the compiler produces executables we can run. If not, either -# the compiler is broken, or we cross compile. -{ $as_echo "$as_me:$LINENO: checking whether we are cross compiling" >&5 -$as_echo_n "checking whether we are cross compiling... " >&6; } -{ $as_echo "$as_me:$LINENO: result: $cross_compiling" >&5 -$as_echo "$cross_compiling" >&6; } - -{ $as_echo "$as_me:$LINENO: checking for suffix of executables" >&5 -$as_echo_n "checking for suffix of executables... " >&6; } -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_link") 2>&5 - ac_status=$? - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; then - # If both `conftest.exe' and `conftest' are `present' (well, observable) -# catch `conftest.exe'. For instance with Cygwin, `ls conftest' will -# work properly (i.e., refer to `conftest.exe'), while it won't with -# `rm'. -for ac_file in conftest.exe conftest conftest.*; do - test -f "$ac_file" || continue - case $ac_file in - *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; - *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` - break;; - * ) break;; - esac -done -else - { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -{ { $as_echo "$as_me:$LINENO: error: cannot compute suffix of executables: cannot compile and link -See \`config.log' for more details." >&5 -$as_echo "$as_me: error: cannot compute suffix of executables: cannot compile and link -See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; }; } -fi - -rm -f conftest$ac_cv_exeext -{ $as_echo "$as_me:$LINENO: result: $ac_cv_exeext" >&5 -$as_echo "$ac_cv_exeext" >&6; } - -rm -f conftest.$ac_ext -EXEEXT=$ac_cv_exeext -ac_exeext=$EXEEXT -{ $as_echo "$as_me:$LINENO: checking for suffix of object files" >&5 -$as_echo_n "checking for suffix of object files... " >&6; } -if test "${ac_cv_objext+set}" = set; then - $as_echo_n "(cached) " >&6 -else - cat >conftest.$ac_ext <<_ACEOF - program main - - end -_ACEOF -rm -f conftest.o conftest.obj -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compile") 2>&5 - ac_status=$? - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; then - for ac_file in conftest.o conftest.obj conftest.*; do - test -f "$ac_file" || continue; - case $ac_file in - *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;; - *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` - break;; - esac -done -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -{ { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -{ { $as_echo "$as_me:$LINENO: error: cannot compute suffix of object files: cannot compile -See \`config.log' for more details." >&5 -$as_echo "$as_me: error: cannot compute suffix of object files: cannot compile -See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; }; } -fi - -rm -f conftest.$ac_cv_objext conftest.$ac_ext -fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_objext" >&5 -$as_echo "$ac_cv_objext" >&6; } -OBJEXT=$ac_cv_objext -ac_objext=$OBJEXT -# If we don't use `.F' as extension, the preprocessor is not run on the -# input file. (Note that this only needs to work for GNU compilers.) -ac_save_ext=$ac_ext -ac_ext=F -{ $as_echo "$as_me:$LINENO: checking whether we are using the GNU Fortran compiler" >&5 -$as_echo_n "checking whether we are using the GNU Fortran compiler... " >&6; } -if test "${ac_cv_fc_compiler_gnu+set}" = set; then - $as_echo_n "(cached) " >&6 -else - cat >conftest.$ac_ext <<_ACEOF - program main -#ifndef __GNUC__ - choke me -#endif - - end -_ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_fc_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - ac_compiler_gnu=yes -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_compiler_gnu=no -fi - -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -ac_cv_fc_compiler_gnu=$ac_compiler_gnu - -fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_fc_compiler_gnu" >&5 -$as_echo "$ac_cv_fc_compiler_gnu" >&6; } -ac_ext=$ac_save_ext -ac_test_FFLAGS=${FCFLAGS+set} -ac_save_FFLAGS=$FCFLAGS -FCFLAGS= -{ $as_echo "$as_me:$LINENO: checking whether $FC accepts -g" >&5 -$as_echo_n "checking whether $FC accepts -g... " >&6; } -if test "${ac_cv_prog_fc_g+set}" = set; then - $as_echo_n "(cached) " >&6 -else - FCFLAGS=-g -cat >conftest.$ac_ext <<_ACEOF - program main - - end -_ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_fc_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - ac_cv_prog_fc_g=yes -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_prog_fc_g=no -fi - -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - -fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_prog_fc_g" >&5 -$as_echo "$ac_cv_prog_fc_g" >&6; } -if test "$ac_test_FFLAGS" = set; then - FCFLAGS=$ac_save_FFLAGS -elif test $ac_cv_prog_fc_g = yes; then - if test "x$ac_cv_fc_compiler_gnu" = xyes; then - FCFLAGS="-g -O2" - else - FCFLAGS="-g" - fi -else - if test "x$ac_cv_fc_compiler_gnu" = xyes; then - FCFLAGS="-O2" - else - FCFLAGS= - fi -fi - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - -ac_ext=f -ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' -ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_f77_compiler_gnu -if test -n "$ac_tool_prefix"; then - for ac_prog in ftn xlf pgf77 ifort ifc nagfor gfortran - do - # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. -set dummy $ac_tool_prefix$ac_prog; ac_word=$2 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_F77+set}" = set; then - $as_echo_n "(cached) " >&6 -else - if test -n "$F77"; then - ac_cv_prog_F77="$F77" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_F77="$ac_tool_prefix$ac_prog" - $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done -IFS=$as_save_IFS - -fi -fi -F77=$ac_cv_prog_F77 -if test -n "$F77"; then - { $as_echo "$as_me:$LINENO: result: $F77" >&5 -$as_echo "$F77" >&6; } -else - { $as_echo "$as_me:$LINENO: result: no" >&5 -$as_echo "no" >&6; } -fi - - - test -n "$F77" && break - done -fi -if test -z "$F77"; then - ac_ct_F77=$F77 - for ac_prog in ftn xlf pgf77 ifort ifc nagfor gfortran -do - # Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_ac_ct_F77+set}" = set; then - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_F77"; then - ac_cv_prog_ac_ct_F77="$ac_ct_F77" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_ac_ct_F77="$ac_prog" - $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done -IFS=$as_save_IFS - -fi -fi -ac_ct_F77=$ac_cv_prog_ac_ct_F77 -if test -n "$ac_ct_F77"; then - { $as_echo "$as_me:$LINENO: result: $ac_ct_F77" >&5 -$as_echo "$ac_ct_F77" >&6; } -else - { $as_echo "$as_me:$LINENO: result: no" >&5 -$as_echo "no" >&6; } -fi - - - test -n "$ac_ct_F77" && break -done - - if test "x$ac_ct_F77" = x; then - F77="" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - F77=$ac_ct_F77 - fi -fi - - -# Provide some information about the compiler. -$as_echo "$as_me:$LINENO: checking for Fortran 77 compiler version" >&5 -set X $ac_compile -ac_compiler=$2 -{ (ac_try="$ac_compiler --version >&5" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compiler --version >&5") 2>&5 - ac_status=$? - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } -{ (ac_try="$ac_compiler -v >&5" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compiler -v >&5") 2>&5 - ac_status=$? - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } -{ (ac_try="$ac_compiler -V >&5" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compiler -V >&5") 2>&5 - ac_status=$? - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } -rm -f a.out - -# If we don't use `.F' as extension, the preprocessor is not run on the -# input file. (Note that this only needs to work for GNU compilers.) -ac_save_ext=$ac_ext -ac_ext=F -{ $as_echo "$as_me:$LINENO: checking whether we are using the GNU Fortran 77 compiler" >&5 -$as_echo_n "checking whether we are using the GNU Fortran 77 compiler... " >&6; } -if test "${ac_cv_f77_compiler_gnu+set}" = set; then - $as_echo_n "(cached) " >&6 -else - cat >conftest.$ac_ext <<_ACEOF - program main -#ifndef __GNUC__ - choke me -#endif - - end -_ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_f77_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - ac_compiler_gnu=yes -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_compiler_gnu=no -fi - -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -ac_cv_f77_compiler_gnu=$ac_compiler_gnu - -fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_f77_compiler_gnu" >&5 -$as_echo "$ac_cv_f77_compiler_gnu" >&6; } -ac_ext=$ac_save_ext -ac_test_FFLAGS=${FFLAGS+set} -ac_save_FFLAGS=$FFLAGS -FFLAGS= -{ $as_echo "$as_me:$LINENO: checking whether $F77 accepts -g" >&5 -$as_echo_n "checking whether $F77 accepts -g... " >&6; } -if test "${ac_cv_prog_f77_g+set}" = set; then - $as_echo_n "(cached) " >&6 -else - FFLAGS=-g -cat >conftest.$ac_ext <<_ACEOF - program main - - end -_ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_f77_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - ac_cv_prog_f77_g=yes -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_prog_f77_g=no -fi - -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - -fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_prog_f77_g" >&5 -$as_echo "$ac_cv_prog_f77_g" >&6; } -if test "$ac_test_FFLAGS" = set; then - FFLAGS=$ac_save_FFLAGS -elif test $ac_cv_prog_f77_g = yes; then - if test "x$ac_cv_f77_compiler_gnu" = xyes; then - FFLAGS="-g -O2" - else - FFLAGS="-g" - fi -else - if test "x$ac_cv_f77_compiler_gnu" = xyes; then - FFLAGS="-O2" - else - FFLAGS= - fi -fi - -if test $ac_compiler_gnu = yes; then - G77=yes -else - G77= -fi -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu -if test -n "$ac_tool_prefix"; then - for ac_prog in xlc pgcc icc gcc cc - do - # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. -set dummy $ac_tool_prefix$ac_prog; ac_word=$2 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_CC+set}" = set; then - $as_echo_n "(cached) " >&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_CC="$ac_tool_prefix$ac_prog" - $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done -IFS=$as_save_IFS - -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - { $as_echo "$as_me:$LINENO: result: $CC" >&5 -$as_echo "$CC" >&6; } -else - { $as_echo "$as_me:$LINENO: result: no" >&5 -$as_echo "no" >&6; } -fi - - - test -n "$CC" && break - done -fi -if test -z "$CC"; then - ac_ct_CC=$CC - for ac_prog in xlc pgcc icc gcc cc -do - # Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_ac_ct_CC+set}" = set; then - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_CC"; then - ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_ac_ct_CC="$ac_prog" - $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done -IFS=$as_save_IFS - -fi -fi -ac_ct_CC=$ac_cv_prog_ac_ct_CC -if test -n "$ac_ct_CC"; then - { $as_echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 -$as_echo "$ac_ct_CC" >&6; } -else - { $as_echo "$as_me:$LINENO: result: no" >&5 -$as_echo "no" >&6; } -fi - - - test -n "$ac_ct_CC" && break -done - - if test "x$ac_ct_CC" = x; then - CC="" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - CC=$ac_ct_CC - fi -fi - - -test -z "$CC" && { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -{ { $as_echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH -See \`config.log' for more details." >&5 -$as_echo "$as_me: error: no acceptable C compiler found in \$PATH -See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; }; } - -# Provide some information about the compiler. -$as_echo "$as_me:$LINENO: checking for C compiler version" >&5 -set X $ac_compile -ac_compiler=$2 -{ (ac_try="$ac_compiler --version >&5" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compiler --version >&5") 2>&5 - ac_status=$? - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } -{ (ac_try="$ac_compiler -v >&5" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compiler -v >&5") 2>&5 - ac_status=$? - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } -{ (ac_try="$ac_compiler -V >&5" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compiler -V >&5") 2>&5 - ac_status=$? - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } - -{ $as_echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5 -$as_echo_n "checking whether we are using the GNU C compiler... " >&6; } -if test "${ac_cv_c_compiler_gnu+set}" = set; then - $as_echo_n "(cached) " >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -int -main () -{ -#ifndef __GNUC__ - choke me -#endif - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - ac_compiler_gnu=yes -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_compiler_gnu=no -fi - -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -ac_cv_c_compiler_gnu=$ac_compiler_gnu - -fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5 -$as_echo "$ac_cv_c_compiler_gnu" >&6; } -if test $ac_compiler_gnu = yes; then - GCC=yes -else - GCC= -fi -ac_test_CFLAGS=${CFLAGS+set} -ac_save_CFLAGS=$CFLAGS -{ $as_echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5 -$as_echo_n "checking whether $CC accepts -g... " >&6; } -if test "${ac_cv_prog_cc_g+set}" = set; then - $as_echo_n "(cached) " >&6 -else - ac_save_c_werror_flag=$ac_c_werror_flag - ac_c_werror_flag=yes - ac_cv_prog_cc_g=no - CFLAGS="-g" - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - ac_cv_prog_cc_g=yes -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - CFLAGS="" - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - : -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_c_werror_flag=$ac_save_c_werror_flag - CFLAGS="-g" - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - ac_cv_prog_cc_g=yes -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - -fi - -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi - -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi - -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - ac_c_werror_flag=$ac_save_c_werror_flag -fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5 -$as_echo "$ac_cv_prog_cc_g" >&6; } -if test "$ac_test_CFLAGS" = set; then - CFLAGS=$ac_save_CFLAGS -elif test $ac_cv_prog_cc_g = yes; then - if test "$GCC" = yes; then - CFLAGS="-g -O2" - else - CFLAGS="-g" - fi -else - if test "$GCC" = yes; then - CFLAGS="-O2" - else - CFLAGS= - fi -fi -{ $as_echo "$as_me:$LINENO: checking for $CC option to accept ISO C89" >&5 -$as_echo_n "checking for $CC option to accept ISO C89... " >&6; } -if test "${ac_cv_prog_cc_c89+set}" = set; then - $as_echo_n "(cached) " >&6 -else - ac_cv_prog_cc_c89=no -ac_save_CC=$CC -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include -#include -#include -#include -/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ -struct buf { int x; }; -FILE * (*rcsopen) (struct buf *, struct stat *, int); -static char *e (p, i) - char **p; - int i; -{ - return p[i]; -} -static char *f (char * (*g) (char **, int), char **p, ...) -{ - char *s; - va_list v; - va_start (v,p); - s = g (p, va_arg (v,int)); - va_end (v); - return s; -} - -/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has - function prototypes and stuff, but not '\xHH' hex character constants. - These don't provoke an error unfortunately, instead are silently treated - as 'x'. The following induces an error, until -std is added to get - proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an - array size at least. It's necessary to write '\x00'==0 to get something - that's true only with -std. */ -int osf4_cc_array ['\x00' == 0 ? 1 : -1]; - -/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters - inside strings and character constants. */ -#define FOO(x) 'x' -int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; - -int test (int i, double x); -struct s1 {int (*f) (int a);}; -struct s2 {int (*f) (double a);}; -int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); -int argc; -char **argv; -int -main () -{ -return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; - ; - return 0; -} -_ACEOF -for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ - -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" -do - CC="$ac_save_CC $ac_arg" - rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - ac_cv_prog_cc_c89=$ac_arg -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - -fi - -rm -f core conftest.err conftest.$ac_objext - test "x$ac_cv_prog_cc_c89" != "xno" && break -done -rm -f conftest.$ac_ext -CC=$ac_save_CC - -fi -# AC_CACHE_VAL -case "x$ac_cv_prog_cc_c89" in - x) - { $as_echo "$as_me:$LINENO: result: none needed" >&5 -$as_echo "none needed" >&6; } ;; - xno) - { $as_echo "$as_me:$LINENO: result: unsupported" >&5 -$as_echo "unsupported" >&6; } ;; - *) - CC="$CC $ac_cv_prog_cc_c89" - { $as_echo "$as_me:$LINENO: result: $ac_cv_prog_cc_c89" >&5 -$as_echo "$ac_cv_prog_cc_c89" >&6; } ;; -esac - - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - - -# Sanity checks, although redundant (useful when debugging this configure.ac)! -if test "X$FC" == "X" ; then - { { $as_echo "$as_me:$LINENO: error: Problem : No Fortran compiler specified nor found!" >&5 -$as_echo "$as_me: error: Problem : No Fortran compiler specified nor found!" >&2;} - { (exit 1); exit 1; }; } -fi - -if test "X$CC" == "X" ; then - { { $as_echo "$as_me:$LINENO: error: Problem : No C compiler specified nor found!" >&5 -$as_echo "$as_me: error: Problem : No C compiler specified nor found!" >&2;} - { (exit 1); exit 1; }; } -fi - case $ac_cv_prog_cc_stdc in - no) ac_cv_prog_cc_c99=no; ac_cv_prog_cc_c89=no ;; - *) { $as_echo "$as_me:$LINENO: checking for $CC option to accept ISO C99" >&5 -$as_echo_n "checking for $CC option to accept ISO C99... " >&6; } -if test "${ac_cv_prog_cc_c99+set}" = set; then - $as_echo_n "(cached) " >&6 -else - ac_cv_prog_cc_c99=no -ac_save_CC=$CC -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include -#include -#include -#include -#include - -// Check varargs macros. These examples are taken from C99 6.10.3.5. -#define debug(...) fprintf (stderr, __VA_ARGS__) -#define showlist(...) puts (#__VA_ARGS__) -#define report(test,...) ((test) ? puts (#test) : printf (__VA_ARGS__)) -static void -test_varargs_macros (void) -{ - int x = 1234; - int y = 5678; - debug ("Flag"); - debug ("X = %d\n", x); - showlist (The first, second, and third items.); - report (x>y, "x is %d but y is %d", x, y); -} - -// Check long long types. -#define BIG64 18446744073709551615ull -#define BIG32 4294967295ul -#define BIG_OK (BIG64 / BIG32 == 4294967297ull && BIG64 % BIG32 == 0) -#if !BIG_OK - your preprocessor is broken; -#endif -#if BIG_OK -#else - your preprocessor is broken; -#endif -static long long int bignum = -9223372036854775807LL; -static unsigned long long int ubignum = BIG64; - -struct incomplete_array -{ - int datasize; - double data[]; -}; - -struct named_init { - int number; - const wchar_t *name; - double average; -}; - -typedef const char *ccp; - -static inline int -test_restrict (ccp restrict text) -{ - // See if C++-style comments work. - // Iterate through items via the restricted pointer. - // Also check for declarations in for loops. - for (unsigned int i = 0; *(text+i) != '\0'; ++i) - continue; - return 0; -} - -// Check varargs and va_copy. -static void -test_varargs (const char *format, ...) -{ - va_list args; - va_start (args, format); - va_list args_copy; - va_copy (args_copy, args); - - const char *str; - int number; - float fnumber; - - while (*format) - { - switch (*format++) - { - case 's': // string - str = va_arg (args_copy, const char *); - break; - case 'd': // int - number = va_arg (args_copy, int); - break; - case 'f': // float - fnumber = va_arg (args_copy, double); - break; - default: - break; - } - } - va_end (args_copy); - va_end (args); -} - -int -main () -{ - - // Check bool. - _Bool success = false; - - // Check restrict. - if (test_restrict ("String literal") == 0) - success = true; - char *restrict newvar = "Another string"; - - // Check varargs. - test_varargs ("s, d' f .", "string", 65, 34.234); - test_varargs_macros (); - - // Check flexible array members. - struct incomplete_array *ia = - malloc (sizeof (struct incomplete_array) + (sizeof (double) * 10)); - ia->datasize = 10; - for (int i = 0; i < ia->datasize; ++i) - ia->data[i] = i * 1.234; - - // Check named initializers. - struct named_init ni = { - .number = 34, - .name = L"Test wide string", - .average = 543.34343, - }; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_compiler $ac_option >&5") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + sed '10a\ +... rest of stderr output deleted ... + 10q' conftest.err >conftest.er1 + cat conftest.er1 >&5 + fi + rm -f conftest.er1 conftest.err + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } +done +rm -f a.out - ni.number = 58; +cat > conftest.$ac_ext <<_ACEOF + program main - int dynamic_array[ni.number]; - dynamic_array[ni.number - 1] = 543; + end +_ACEOF +ac_clean_files_save=$ac_clean_files +ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out" +# Try to create an executable without -o first, disregard a.out. +# It will help us diagnose broken compilers, and finding out an intuition +# of exeext. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the Fortran compiler works" >&5 +$as_echo_n "checking whether the Fortran compiler works... " >&6; } +ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` - // work around unused variable warnings - return (!success || bignum == 0LL || ubignum == 0uLL || newvar[0] == 'x' - || dynamic_array[ni.number - 1] != 543); +# The possible output files: +ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*" - ; - return 0; -} -_ACEOF -for ac_arg in '' -std=gnu99 -std=c99 -c99 -AC99 -xc99=all -qlanglvl=extc99 +ac_rmfiles= +for ac_file in $ac_files do - CC="$ac_save_CC $ac_arg" - rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; + * ) ac_rmfiles="$ac_rmfiles $ac_file";; + esac +done +rm -f $ac_rmfiles + +if { { ac_try="$ac_link_default" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compile") 2>conftest.er1 +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_link_default") 2>&5 ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - ac_cv_prog_cc_c99=$ac_arg + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then : + # Autoconf-2.13 could set the ac_cv_exeext variable to `no'. +# So ignore a value of `no', otherwise this would lead to `EXEEXT = no' +# in a Makefile. We should not override ac_cv_exeext if it was cached, +# so that the user can short-circuit this test for compilers unknown to +# Autoconf. +for ac_file in $ac_files '' +do + test -f "$ac_file" || continue + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) + ;; + [ab].out ) + # We found the default executable, but exeext='' is most + # certainly right. + break;; + *.* ) + if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no; + then :; else + ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` + fi + # We set ac_cv_exeext here because the later test for it is not + # safe: cross compilers may not add the suffix if given an `-o' + # argument, so we may need to know it at that point already. + # Even if this section looks crufty: it has the advantage of + # actually working. + break;; + * ) + break;; + esac +done +test "$ac_cv_exeext" = no && ac_cv_exeext= + else - $as_echo "$as_me: failed program was:" >&5 + ac_file='' +fi +if test -z "$ac_file"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +$as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 - +{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error 77 "Fortran compiler cannot create executables +See \`config.log' for more details" "$LINENO" 5; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for Fortran compiler default output file name" >&5 +$as_echo_n "checking for Fortran compiler default output file name... " >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5 +$as_echo "$ac_file" >&6; } +ac_exeext=$ac_cv_exeext -rm -f core conftest.err conftest.$ac_objext - test "x$ac_cv_prog_cc_c99" != "xno" && break -done -rm -f conftest.$ac_ext -CC=$ac_save_CC - -fi -# AC_CACHE_VAL -case "x$ac_cv_prog_cc_c99" in - x) - { $as_echo "$as_me:$LINENO: result: none needed" >&5 -$as_echo "none needed" >&6; } ;; - xno) - { $as_echo "$as_me:$LINENO: result: unsupported" >&5 -$as_echo "unsupported" >&6; } ;; - *) - CC="$CC $ac_cv_prog_cc_c99" - { $as_echo "$as_me:$LINENO: result: $ac_cv_prog_cc_c99" >&5 -$as_echo "$ac_cv_prog_cc_c99" >&6; } ;; +rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out +ac_clean_files=$ac_clean_files_save +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5 +$as_echo_n "checking for suffix of executables... " >&6; } +if { { ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; esac -if test "x$ac_cv_prog_cc_c99" != xno; then - ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c99 -else - { $as_echo "$as_me:$LINENO: checking for $CC option to accept ISO C89" >&5 -$as_echo_n "checking for $CC option to accept ISO C89... " >&6; } -if test "${ac_cv_prog_cc_c89+set}" = set; then - $as_echo_n "(cached) " >&6 +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then : + # If both `conftest.exe' and `conftest' are `present' (well, observable) +# catch `conftest.exe'. For instance with Cygwin, `ls conftest' will +# work properly (i.e., refer to `conftest.exe'), while it won't with +# `rm'. +for ac_file in conftest.exe conftest conftest.*; do + test -f "$ac_file" || continue + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; + *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` + break;; + * ) break;; + esac +done else - ac_cv_prog_cc_c89=no -ac_save_CC=$CC -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include -#include -#include -#include -/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ -struct buf { int x; }; -FILE * (*rcsopen) (struct buf *, struct stat *, int); -static char *e (p, i) - char **p; - int i; -{ - return p[i]; -} -static char *f (char * (*g) (char **, int), char **p, ...) -{ - char *s; - va_list v; - va_start (v,p); - s = g (p, va_arg (v,int)); - va_end (v); - return s; -} - -/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has - function prototypes and stuff, but not '\xHH' hex character constants. - These don't provoke an error unfortunately, instead are silently treated - as 'x'. The following induces an error, until -std is added to get - proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an - array size at least. It's necessary to write '\x00'==0 to get something - that's true only with -std. */ -int osf4_cc_array ['\x00' == 0 ? 1 : -1]; + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "cannot compute suffix of executables: cannot compile and link +See \`config.log' for more details" "$LINENO" 5; } +fi +rm -f conftest conftest$ac_cv_exeext +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5 +$as_echo "$ac_cv_exeext" >&6; } -/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters - inside strings and character constants. */ -#define FOO(x) 'x' -int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; +rm -f conftest.$ac_ext +EXEEXT=$ac_cv_exeext +ac_exeext=$EXEEXT +cat > conftest.$ac_ext <<_ACEOF + program main + open(unit=9,file='conftest.out') + close(unit=9) -int test (int i, double x); -struct s1 {int (*f) (int a);}; -struct s2 {int (*f) (double a);}; -int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); -int argc; -char **argv; -int -main () -{ -return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; - ; - return 0; -} + end _ACEOF -for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ - -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" -do - CC="$ac_save_CC $ac_arg" - rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" +ac_clean_files="$ac_clean_files conftest.out" +# Check that the compiler produces executables we can run. If not, either +# the compiler is broken, or we cross compile. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5 +$as_echo_n "checking whether we are cross compiling... " >&6; } +if test "$cross_compiling" != yes; then + { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compile") 2>conftest.er1 +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_link") 2>&5 ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - ac_cv_prog_cc_c89=$ac_arg + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + if { ac_try='./conftest$ac_cv_exeext' + { { case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; }; then + cross_compiling=no + else + if test "$cross_compiling" = maybe; then + cross_compiling=yes + else + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "cannot run Fortran compiled programs. +If you meant to cross compile, use \`--host'. +See \`config.log' for more details" "$LINENO" 5; } + fi + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5 +$as_echo "$cross_compiling" >&6; } + +rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out +ac_clean_files=$ac_clean_files_save +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5 +$as_echo_n "checking for suffix of object files... " >&6; } +if ${ac_cv_objext+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat > conftest.$ac_ext <<_ACEOF + program main + + end +_ACEOF +rm -f conftest.o conftest.obj +if { { ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_compile") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then : + for ac_file in conftest.o conftest.obj conftest.*; do + test -f "$ac_file" || continue; + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;; + *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` + break;; + esac +done else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 - +{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "cannot compute suffix of object files: cannot compile +See \`config.log' for more details" "$LINENO" 5; } fi - -rm -f core conftest.err conftest.$ac_objext - test "x$ac_cv_prog_cc_c89" != "xno" && break -done -rm -f conftest.$ac_ext -CC=$ac_save_CC - +rm -f conftest.$ac_cv_objext conftest.$ac_ext fi -# AC_CACHE_VAL -case "x$ac_cv_prog_cc_c89" in - x) - { $as_echo "$as_me:$LINENO: result: none needed" >&5 -$as_echo "none needed" >&6; } ;; - xno) - { $as_echo "$as_me:$LINENO: result: unsupported" >&5 -$as_echo "unsupported" >&6; } ;; - *) - CC="$CC $ac_cv_prog_cc_c89" - { $as_echo "$as_me:$LINENO: result: $ac_cv_prog_cc_c89" >&5 -$as_echo "$ac_cv_prog_cc_c89" >&6; } ;; -esac -if test "x$ac_cv_prog_cc_c89" != xno; then - ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c89 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5 +$as_echo "$ac_cv_objext" >&6; } +OBJEXT=$ac_cv_objext +ac_objext=$OBJEXT +# If we don't use `.F' as extension, the preprocessor is not run on the +# input file. (Note that this only needs to work for GNU compilers.) +ac_save_ext=$ac_ext +ac_ext=F +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU Fortran compiler" >&5 +$as_echo_n "checking whether we are using the GNU Fortran compiler... " >&6; } +if ${ac_cv_fc_compiler_gnu+:} false; then : + $as_echo_n "(cached) " >&6 else - ac_cv_prog_cc_stdc=no -fi - + cat > conftest.$ac_ext <<_ACEOF + program main +#ifndef __GNUC__ + choke me +#endif + end +_ACEOF +if ac_fn_fc_try_compile "$LINENO"; then : + ac_compiler_gnu=yes +else + ac_compiler_gnu=no fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +ac_cv_fc_compiler_gnu=$ac_compiler_gnu - ;; -esac - { $as_echo "$as_me:$LINENO: checking for $CC option to accept ISO Standard C" >&5 -$as_echo_n "checking for $CC option to accept ISO Standard C... " >&6; } - if test "${ac_cv_prog_cc_stdc+set}" = set; then - $as_echo_n "(cached) " >&6 fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_fc_compiler_gnu" >&5 +$as_echo "$ac_cv_fc_compiler_gnu" >&6; } +ac_ext=$ac_save_ext +ac_test_FCFLAGS=${FCFLAGS+set} +ac_save_FCFLAGS=$FCFLAGS +FCFLAGS= +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $FC accepts -g" >&5 +$as_echo_n "checking whether $FC accepts -g... " >&6; } +if ${ac_cv_prog_fc_g+:} false; then : + $as_echo_n "(cached) " >&6 +else + FCFLAGS=-g +cat > conftest.$ac_ext <<_ACEOF + program main - case $ac_cv_prog_cc_stdc in - no) { $as_echo "$as_me:$LINENO: result: unsupported" >&5 -$as_echo "unsupported" >&6; } ;; - '') { $as_echo "$as_me:$LINENO: result: none needed" >&5 -$as_echo "none needed" >&6; } ;; - *) { $as_echo "$as_me:$LINENO: result: $ac_cv_prog_cc_stdc" >&5 -$as_echo "$ac_cv_prog_cc_stdc" >&6; } ;; -esac - - -if test "x$ac_cv_prog_cc_stdc" == "xno" ; then - { { $as_echo "$as_me:$LINENO: error: Problem : Need a C99 compiler ! " >&5 -$as_echo "$as_me: error: Problem : Need a C99 compiler ! " >&2;} - { (exit 1); exit 1; }; } + end +_ACEOF +if ac_fn_fc_try_compile "$LINENO"; then : + ac_cv_prog_fc_g=yes else - C99OPT="$ac_cv_prog_cc_stdc"; + ac_cv_prog_fc_g=no fi - - - -############################################################################### -# Suitable MPI compilers detection -############################################################################### -# Note: Someday we will contemplate a fake MPI - configured version of PSBLAS -############################################################################### -# First check whether the user required our serial (fake) mpi. -{ $as_echo "$as_me:$LINENO: checking whether we want serial mpi stubs" >&5 -$as_echo_n "checking whether we want serial mpi stubs... " >&6; } -# Check whether --enable-serial was given. -if test "${enable_serial+set}" = set; then - enableval=$enable_serial; -pac_cv_serial_mpi="yes"; - +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi - -if test x"$pac_cv_serial_mpi" == x"yes" ; then - { $as_echo "$as_me:$LINENO: result: yes." >&5 -$as_echo "yes." >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_fc_g" >&5 +$as_echo "$ac_cv_prog_fc_g" >&6; } +if test "$ac_test_FCFLAGS" = set; then + FCFLAGS=$ac_save_FCFLAGS +elif test $ac_cv_prog_fc_g = yes; then + if test "x$ac_cv_fc_compiler_gnu" = xyes; then + FCFLAGS="-g -O2" + else + FCFLAGS="-g" + fi else - pac_cv_serial_mpi="no"; - { $as_echo "$as_me:$LINENO: result: no." >&5 -$as_echo "no." >&6; } + if test "x$ac_cv_fc_compiler_gnu" = xyes; then + FCFLAGS="-O2" + else + FCFLAGS= + fi fi - - -#Note : we miss the name of the Intel C compiler -if test x"$pac_cv_serial_mpi" == x"yes" ; then - FAKEMPI="fakempi.o"; - MPIFC="$FC"; - MPIF77="$F77"; - MPICC="$CC"; +if test $ac_compiler_gnu = yes; then + GFC=yes else + GFC= +fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu -if test "X$MPICC" = "X" ; then - # This is our MPICC compiler preference: it will override ACX_MPI's first try. - for ac_prog in mpxlc mpcc mpicc cc -do - # Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +FCFLAGS="$save_FCFLAGS"; +save_CFLAGS="$CFLAGS"; +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu +if test -n "$ac_tool_prefix"; then + for ac_prog in xlc pgcc icc gcc cc + do + # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. +set dummy $ac_tool_prefix$ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_MPICC+set}" = set; then +if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else - if test -n "$MPICC"; then - ac_cv_prog_MPICC="$MPICC" # Let the user override the test. + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_MPICC="$ac_prog" - $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_CC="$ac_tool_prefix$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done -done + done IFS=$as_save_IFS fi fi -MPICC=$ac_cv_prog_MPICC -if test -n "$MPICC"; then - { $as_echo "$as_me:$LINENO: result: $MPICC" >&5 -$as_echo "$MPICC" >&6; } +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +$as_echo "$CC" >&6; } else - { $as_echo "$as_me:$LINENO: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi - test -n "$MPICC" && break -done - + test -n "$CC" && break + done fi - - - - - - - for ac_prog in mpicc hcc mpxlc_r mpxlc mpcc cmpicc +if test -z "$CC"; then + ac_ct_CC=$CC + for ac_prog in xlc pgcc icc gcc cc do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_MPICC+set}" = set; then +if ${ac_cv_prog_ac_ct_CC+:} false; then : $as_echo_n "(cached) " >&6 else - if test -n "$MPICC"; then - ac_cv_prog_MPICC="$MPICC" # Let the user override the test. + if test -n "$ac_ct_CC"; then + ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_MPICC="$ac_prog" - $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_CC="$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done -done + done IFS=$as_save_IFS fi fi -MPICC=$ac_cv_prog_MPICC -if test -n "$MPICC"; then - { $as_echo "$as_me:$LINENO: result: $MPICC" >&5 -$as_echo "$MPICC" >&6; } +ac_ct_CC=$ac_cv_prog_ac_ct_CC +if test -n "$ac_ct_CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 +$as_echo "$ac_ct_CC" >&6; } else - { $as_echo "$as_me:$LINENO: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi - test -n "$MPICC" && break + test -n "$ac_ct_CC" && break done -test -n "$MPICC" || MPICC="$CC" - - acx_mpi_save_CC="$CC" - CC="$MPICC" - - -if test x = x"$MPILIBS"; then - { $as_echo "$as_me:$LINENO: checking for MPI_Init" >&5 -$as_echo_n "checking for MPI_Init... " >&6; } -if test "${ac_cv_func_MPI_Init+set}" = set; then - $as_echo_n "(cached) " >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -/* Define MPI_Init to an innocuous variant, in case declares MPI_Init. - For example, HP-UX 11i declares gettimeofday. */ -#define MPI_Init innocuous_MPI_Init + if test "x$ac_ct_CC" = x; then + CC="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + CC=$ac_ct_CC + fi +fi -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char MPI_Init (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ -#ifdef __STDC__ -# include -#else -# include -#endif +test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "no acceptable C compiler found in \$PATH +See \`config.log' for more details" "$LINENO" 5; } -#undef MPI_Init +# Provide some information about the compiler. +$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 +set X $ac_compile +ac_compiler=$2 +for ac_option in --version -v -V -qversion; do + { { ac_try="$ac_compiler $ac_option >&5" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_compiler $ac_option >&5") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + sed '10a\ +... rest of stderr output deleted ... + 10q' conftest.err >conftest.er1 + cat conftest.er1 >&5 + fi + rm -f conftest.er1 conftest.err + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } +done -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char MPI_Init (); -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined __stub_MPI_Init || defined __stub___MPI_Init -choke me -#endif +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5 +$as_echo_n "checking whether we are using the GNU C compiler... " >&6; } +if ${ac_cv_c_compiler_gnu+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ int main () { -return MPI_Init (); +#ifndef __GNUC__ + choke me +#endif + ; return 0; } _ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && { - test "$cross_compiling" = yes || - $as_test_x conftest$ac_exeext - }; then - ac_cv_func_MPI_Init=yes +if ac_fn_c_try_compile "$LINENO"; then : + ac_compiler_gnu=yes else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_func_MPI_Init=no + ac_compiler_gnu=no fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +ac_cv_c_compiler_gnu=$ac_compiler_gnu -rm -rf conftest.dSYM -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext -fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_func_MPI_Init" >&5 -$as_echo "$ac_cv_func_MPI_Init" >&6; } -if test "x$ac_cv_func_MPI_Init" = x""yes; then - MPILIBS=" " fi - +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 +$as_echo "$ac_cv_c_compiler_gnu" >&6; } +if test $ac_compiler_gnu = yes; then + GCC=yes +else + GCC= fi - -if test x = x"$MPILIBS"; then - { $as_echo "$as_me:$LINENO: checking for MPI_Init in -lmpi" >&5 -$as_echo_n "checking for MPI_Init in -lmpi... " >&6; } -if test "${ac_cv_lib_mpi_MPI_Init+set}" = set; then +ac_test_CFLAGS=${CFLAGS+set} +ac_save_CFLAGS=$CFLAGS +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 +$as_echo_n "checking whether $CC accepts -g... " >&6; } +if ${ac_cv_prog_cc_g+:} false; then : $as_echo_n "(cached) " >&6 else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lmpi $LIBS" -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ + ac_save_c_werror_flag=$ac_c_werror_flag + ac_c_werror_flag=yes + ac_cv_prog_cc_g=no + CFLAGS="-g" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} _ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_prog_cc_g=yes +else + CFLAGS="" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char MPI_Init (); int main () { -return MPI_Init (); + ; return 0; } _ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && { - test "$cross_compiling" = yes || - $as_test_x conftest$ac_exeext - }; then - ac_cv_lib_mpi_MPI_Init=yes +if ac_fn_c_try_compile "$LINENO"; then : + else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 + ac_c_werror_flag=$ac_save_c_werror_flag + CFLAGS="-g" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ - ac_cv_lib_mpi_MPI_Init=no -fi +int +main () +{ -rm -rf conftest.dSYM -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_prog_cc_g=yes fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_mpi_MPI_Init" >&5 -$as_echo "$ac_cv_lib_mpi_MPI_Init" >&6; } -if test "x$ac_cv_lib_mpi_MPI_Init" = x""yes; then - MPILIBS="-lmpi" +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi - +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -if test x = x"$MPILIBS"; then - { $as_echo "$as_me:$LINENO: checking for MPI_Init in -lmpich" >&5 -$as_echo_n "checking for MPI_Init in -lmpich... " >&6; } -if test "${ac_cv_lib_mpich_MPI_Init+set}" = set; then +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + ac_c_werror_flag=$ac_save_c_werror_flag +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 +$as_echo "$ac_cv_prog_cc_g" >&6; } +if test "$ac_test_CFLAGS" = set; then + CFLAGS=$ac_save_CFLAGS +elif test $ac_cv_prog_cc_g = yes; then + if test "$GCC" = yes; then + CFLAGS="-g -O2" + else + CFLAGS="-g" + fi +else + if test "$GCC" = yes; then + CFLAGS="-O2" + else + CFLAGS= + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5 +$as_echo_n "checking for $CC option to accept ISO C89... " >&6; } +if ${ac_cv_prog_cc_c89+:} false; then : $as_echo_n "(cached) " >&6 else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lmpich $LIBS" -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF + ac_cv_prog_cc_c89=no +ac_save_CC=$CC +cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ +#include +#include +struct stat; +/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ +struct buf { int x; }; +FILE * (*rcsopen) (struct buf *, struct stat *, int); +static char *e (p, i) + char **p; + int i; +{ + return p[i]; +} +static char *f (char * (*g) (char **, int), char **p, ...) +{ + char *s; + va_list v; + va_start (v,p); + s = g (p, va_arg (v,int)); + va_end (v); + return s; +} -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char MPI_Init (); +/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has + function prototypes and stuff, but not '\xHH' hex character constants. + These don't provoke an error unfortunately, instead are silently treated + as 'x'. The following induces an error, until -std is added to get + proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an + array size at least. It's necessary to write '\x00'==0 to get something + that's true only with -std. */ +int osf4_cc_array ['\x00' == 0 ? 1 : -1]; + +/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters + inside strings and character constants. */ +#define FOO(x) 'x' +int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; + +int test (int i, double x); +struct s1 {int (*f) (int a);}; +struct s2 {int (*f) (double a);}; +int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); +int argc; +char **argv; int main () { -return MPI_Init (); +return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; ; return 0; } _ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && { - test "$cross_compiling" = yes || - $as_test_x conftest$ac_exeext - }; then - ac_cv_lib_mpich_MPI_Init=yes -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_lib_mpich_MPI_Init=no +for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ + -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" +do + CC="$ac_save_CC $ac_arg" + if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_prog_cc_c89=$ac_arg fi +rm -f core conftest.err conftest.$ac_objext + test "x$ac_cv_prog_cc_c89" != "xno" && break +done +rm -f conftest.$ac_ext +CC=$ac_save_CC -rm -rf conftest.dSYM -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_mpich_MPI_Init" >&5 -$as_echo "$ac_cv_lib_mpich_MPI_Init" >&6; } -if test "x$ac_cv_lib_mpich_MPI_Init" = x""yes; then - MPILIBS="-lmpich" fi +# AC_CACHE_VAL +case "x$ac_cv_prog_cc_c89" in + x) + { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 +$as_echo "none needed" >&6; } ;; + xno) + { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 +$as_echo "unsupported" >&6; } ;; + *) + CC="$CC $ac_cv_prog_cc_c89" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 +$as_echo "$ac_cv_prog_cc_c89" >&6; } ;; +esac +if test "x$ac_cv_prog_cc_c89" != xno; then : fi -if test x != x"$MPILIBS"; then - { $as_echo "$as_me:$LINENO: checking for mpi.h" >&5 -$as_echo_n "checking for mpi.h... " >&6; } - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + +# Expand $ac_aux_dir to an absolute path. +am_aux_dir=`cd "$ac_aux_dir" && pwd` + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC understands -c and -o together" >&5 +$as_echo_n "checking whether $CC understands -c and -o together... " >&6; } +if ${am_cv_prog_cc_c_o+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -#include + int main () { @@ -4158,57 +3533,55 @@ main () return 0; } _ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - { $as_echo "$as_me:$LINENO: result: yes" >&5 -$as_echo "yes" >&6; } -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - MPILIBS="" - { $as_echo "$as_me:$LINENO: result: no" >&5 -$as_echo "no" >&6; } -fi - -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + # Make sure it works both with $CC and with simple cc. + # Following AC_PROG_CC_C_O, we do the test twice because some + # compilers refuse to overwrite an existing .o file with -o, + # though they will create one. + am_cv_prog_cc_c_o=yes + for am_i in 1 2; do + if { echo "$as_me:$LINENO: $CC -c conftest.$ac_ext -o conftest2.$ac_objext" >&5 + ($CC -c conftest.$ac_ext -o conftest2.$ac_objext) >&5 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } \ + && test -f conftest2.$ac_objext; then + : OK + else + am_cv_prog_cc_c_o=no + break + fi + done + rm -f core conftest* + unset am_i +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_cc_c_o" >&5 +$as_echo "$am_cv_prog_cc_c_o" >&6; } +if test "$am_cv_prog_cc_c_o" != yes; then + # Losing compiler, so override with the script. + # FIXME: It is wrong to rewrite CC. + # But if we don't then we get into trouble of one sort or another. + # A longer-term fix would be to have automake use am__CC in this case, + # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)" + CC="$am_aux_dir/compile $CC" fi - -CC="$acx_mpi_save_CC" - +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu -# Finally, execute ACTION-IF-FOUND/ACTION-IF-NOT-FOUND: -if test x = x"$MPILIBS"; then - { { $as_echo "$as_me:$LINENO: error: Cannot find any suitable MPI implementation for C" >&5 -$as_echo "$as_me: error: Cannot find any suitable MPI implementation for C" >&2;} - { (exit 1); exit 1; }; } - : -else +CFLAGS="$save_CFLAGS"; -cat >>confdefs.h <<\_ACEOF -#define HAVE_MPI 1 -_ACEOF - : +# Sanity checks, although redundant (useful when debugging this configure.ac)! +if test "X$FC" == "X" ; then + as_fn_error $? "Problem : No Fortran compiler specified nor found!" "$LINENO" 5 fi +if test "X$CC" == "X" ; then + as_fn_error $? "Problem : No C compiler specified nor found!" "$LINENO" 5 +fi case $ac_cv_prog_cc_stdc in no) ac_cv_prog_cc_c99=no; ac_cv_prog_cc_c89=no ;; *) { $as_echo "$as_me:$LINENO: checking for $CC option to accept ISO C99" >&5 @@ -4554,55 +3927,97 @@ $as_echo "$ac_cv_prog_cc_stdc" >&6; } ;; esac +if test "x$ac_cv_prog_cc_stdc" == "xno" ; then + { { $as_echo "$as_me:$LINENO: error: Problem : Need a C99 compiler ! " >&5 +$as_echo "$as_me: error: Problem : Need a C99 compiler ! " >&2;} + { (exit 1); exit 1; }; } +else + C99OPT="$ac_cv_prog_cc_stdc"; +fi -ac_ext=${ac_fc_srcext-f} -ac_compile='$FC -c $FCFLAGS $ac_fcflags_srcext conftest.$ac_ext >&5' -ac_link='$FC -o conftest$ac_exeext $FCFLAGS $LDFLAGS $ac_fcflags_srcext conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_fc_compiler_gnu -if test "X$MPIFC" = "X" ; then - # This is our MPIFC compiler preference: it will override ACX_MPI's first try. - for ac_prog in mpxlf2003_r mpxlf2003 mpxlf95_r mpxlf90 mpf95 mpf90 mpifort mpif95 mpif90 ftn +############################################################################### +# Suitable MPI compilers detection +############################################################################### +# Note: Someday we will contemplate a fake MPI - configured version of PSBLAS +############################################################################### +# First check whether the user required our serial (fake) mpi. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we want serial mpi stubs" >&5 +$as_echo_n "checking whether we want serial mpi stubs... " >&6; } +# Check whether --enable-serial was given. +if test "${enable_serial+set}" = set; then : + enableval=$enable_serial; +pac_cv_serial_mpi="yes"; + + +fi + +if test x"$pac_cv_serial_mpi" == x"yes" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes." >&5 +$as_echo "yes." >&6; } +else + pac_cv_serial_mpi="no"; + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no." >&5 +$as_echo "no." >&6; } +fi + + + +#Note : we miss the name of the Intel C compiler +if test x"$pac_cv_serial_mpi" == x"yes" ; then + FAKEMPI="fakempi.o"; + MPIFC="$FC"; + MPICC="$CC"; +else +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + +if test "X$MPICC" = "X" ; then + # This is our MPICC compiler preference: it will override ACX_MPI's first try. + for ac_prog in mpxlc mpcc mpicc cc do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_MPIFC+set}" = set; then +if ${ac_cv_prog_MPICC+:} false; then : $as_echo_n "(cached) " >&6 else - if test -n "$MPIFC"; then - ac_cv_prog_MPIFC="$MPIFC" # Let the user override the test. + if test -n "$MPICC"; then + ac_cv_prog_MPICC="$MPICC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_MPIFC="$ac_prog" - $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_MPICC="$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done -done + done IFS=$as_save_IFS fi fi -MPIFC=$ac_cv_prog_MPIFC -if test -n "$MPIFC"; then - { $as_echo "$as_me:$LINENO: result: $MPIFC" >&5 -$as_echo "$MPIFC" >&6; } +MPICC=$ac_cv_prog_MPICC +if test -n "$MPICC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MPICC" >&5 +$as_echo "$MPICC" >&6; } else - { $as_echo "$as_me:$LINENO: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi - test -n "$MPIFC" && break + test -n "$MPICC" && break done fi @@ -4612,327 +4027,460 @@ fi - - for ac_prog in mpif90 hf90 mpxlf90 mpxlf95 mpf90 cmpifc cmpif90c + for ac_prog in mpicc hcc mpxlc_r mpxlc mpcc cmpicc do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_MPIFC+set}" = set; then +if ${ac_cv_prog_MPICC+:} false; then : $as_echo_n "(cached) " >&6 else - if test -n "$MPIFC"; then - ac_cv_prog_MPIFC="$MPIFC" # Let the user override the test. + if test -n "$MPICC"; then + ac_cv_prog_MPICC="$MPICC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_MPIFC="$ac_prog" - $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_MPICC="$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done -done + done IFS=$as_save_IFS fi fi -MPIFC=$ac_cv_prog_MPIFC -if test -n "$MPIFC"; then - { $as_echo "$as_me:$LINENO: result: $MPIFC" >&5 -$as_echo "$MPIFC" >&6; } +MPICC=$ac_cv_prog_MPICC +if test -n "$MPICC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MPICC" >&5 +$as_echo "$MPICC" >&6; } else - { $as_echo "$as_me:$LINENO: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi - test -n "$MPIFC" && break + test -n "$MPICC" && break done -test -n "$MPIFC" || MPIFC="$FC" +test -n "$MPICC" || MPICC="$CC" - acx_mpi_save_FC="$FC" - FC="$MPIFC" + acx_mpi_save_CC="$CC" + CC="$MPICC" if test x = x"$MPILIBS"; then - { $as_echo "$as_me:$LINENO: checking for MPI_Init" >&5 -$as_echo_n "checking for MPI_Init... " >&6; } - cat >conftest.$ac_ext <<_ACEOF - program main - call MPI_Init - end -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_fc_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && { - test "$cross_compiling" = yes || - $as_test_x conftest$ac_exeext - }; then + ac_fn_c_check_func "$LINENO" "MPI_Init" "ac_cv_func_MPI_Init" +if test "x$ac_cv_func_MPI_Init" = xyes; then : MPILIBS=" " - { $as_echo "$as_me:$LINENO: result: yes" >&5 -$as_echo "yes" >&6; } -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - { $as_echo "$as_me:$LINENO: result: no" >&5 -$as_echo "no" >&6; } -fi - -rm -rf conftest.dSYM -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext -fi - - if test x = x"$MPILIBS"; then - { $as_echo "$as_me:$LINENO: checking for MPI_Init in -lfmpi" >&5 -$as_echo_n "checking for MPI_Init in -lfmpi... " >&6; } -if test "${ac_cv_lib_fmpi_MPI_Init+set}" = set; then - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lfmpi $LIBS" -cat >conftest.$ac_ext <<_ACEOF - program main - call MPI_Init - end -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_fc_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && { - test "$cross_compiling" = yes || - $as_test_x conftest$ac_exeext - }; then - ac_cv_lib_fmpi_MPI_Init=yes -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_lib_fmpi_MPI_Init=no -fi - -rm -rf conftest.dSYM -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_fmpi_MPI_Init" >&5 -$as_echo "$ac_cv_lib_fmpi_MPI_Init" >&6; } -if test "x$ac_cv_lib_fmpi_MPI_Init" = x""yes; then - MPILIBS="-lfmpi" -fi - - fi - if test x = x"$MPILIBS"; then - { $as_echo "$as_me:$LINENO: checking for MPI_Init in -lmpichf90" >&5 -$as_echo_n "checking for MPI_Init in -lmpichf90... " >&6; } -if test "${ac_cv_lib_mpichf90_MPI_Init+set}" = set; then - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lmpichf90 $LIBS" -cat >conftest.$ac_ext <<_ACEOF - program main - call MPI_Init - end -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_fc_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && { - test "$cross_compiling" = yes || - $as_test_x conftest$ac_exeext - }; then - ac_cv_lib_mpichf90_MPI_Init=yes -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_lib_mpichf90_MPI_Init=no fi -rm -rf conftest.dSYM -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_mpichf90_MPI_Init" >&5 -$as_echo "$ac_cv_lib_mpichf90_MPI_Init" >&6; } -if test "x$ac_cv_lib_mpichf90_MPI_Init" = x""yes; then - MPILIBS="-lmpichf90" fi - fi - if test x = x"$MPILIBS"; then - { $as_echo "$as_me:$LINENO: checking for MPI_Init in -lmpi" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MPI_Init in -lmpi" >&5 $as_echo_n "checking for MPI_Init in -lmpi... " >&6; } -if test "${ac_cv_lib_mpi_MPI_Init+set}" = set; then +if ${ac_cv_lib_mpi_MPI_Init+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lmpi $LIBS" -cat >conftest.$ac_ext <<_ACEOF - program main - call MPI_Init - end +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char MPI_Init (); +int +main () +{ +return MPI_Init (); + ; + return 0; +} _ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_fc_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && { - test "$cross_compiling" = yes || - $as_test_x conftest$ac_exeext - }; then +if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_mpi_MPI_Init=yes else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_lib_mpi_MPI_Init=no + ac_cv_lib_mpi_MPI_Init=no fi - -rm -rf conftest.dSYM -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_mpi_MPI_Init" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_mpi_MPI_Init" >&5 $as_echo "$ac_cv_lib_mpi_MPI_Init" >&6; } -if test "x$ac_cv_lib_mpi_MPI_Init" = x""yes; then +if test "x$ac_cv_lib_mpi_MPI_Init" = xyes; then : MPILIBS="-lmpi" fi fi if test x = x"$MPILIBS"; then - { $as_echo "$as_me:$LINENO: checking for MPI_Init in -lmpich" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MPI_Init in -lmpich" >&5 $as_echo_n "checking for MPI_Init in -lmpich... " >&6; } -if test "${ac_cv_lib_mpich_MPI_Init+set}" = set; then +if ${ac_cv_lib_mpich_MPI_Init+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lmpich $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char MPI_Init (); +int +main () +{ +return MPI_Init (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_mpich_MPI_Init=yes +else + ac_cv_lib_mpich_MPI_Init=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_mpich_MPI_Init" >&5 +$as_echo "$ac_cv_lib_mpich_MPI_Init" >&6; } +if test "x$ac_cv_lib_mpich_MPI_Init" = xyes; then : + MPILIBS="-lmpich" +fi + +fi + +if test x != x"$MPILIBS"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for mpi.h" >&5 +$as_echo_n "checking for mpi.h... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } +else + MPILIBS="" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi + +CC="$acx_mpi_save_CC" + + + +# Finally, execute ACTION-IF-FOUND/ACTION-IF-NOT-FOUND: +if test x = x"$MPILIBS"; then + as_fn_error $? "Cannot find any suitable MPI implementation for C" "$LINENO" 5 + : +else + +$as_echo "#define HAVE_MPI 1" >>confdefs.h + + : +fi + + case $ac_cv_prog_cc_stdc in + no) ac_cv_prog_cc_c99=no; ac_cv_prog_cc_c89=no ;; + *) { $as_echo "$as_me:$LINENO: checking for $CC option to accept ISO C99" >&5 +$as_echo_n "checking for $CC option to accept ISO C99... " >&6; } +if test "${ac_cv_prog_cc_c99+set}" = set; then + $as_echo_n "(cached) " >&6 +else + ac_cv_prog_cc_c99=no +ac_save_CC=$CC cat >conftest.$ac_ext <<_ACEOF - program main - call MPI_Init - end +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +#include +#include +#include +#include + +// Check varargs macros. These examples are taken from C99 6.10.3.5. +#define debug(...) fprintf (stderr, __VA_ARGS__) +#define showlist(...) puts (#__VA_ARGS__) +#define report(test,...) ((test) ? puts (#test) : printf (__VA_ARGS__)) +static void +test_varargs_macros (void) +{ + int x = 1234; + int y = 5678; + debug ("Flag"); + debug ("X = %d\n", x); + showlist (The first, second, and third items.); + report (x>y, "x is %d but y is %d", x, y); +} + +// Check long long types. +#define BIG64 18446744073709551615ull +#define BIG32 4294967295ul +#define BIG_OK (BIG64 / BIG32 == 4294967297ull && BIG64 % BIG32 == 0) +#if !BIG_OK + your preprocessor is broken; +#endif +#if BIG_OK +#else + your preprocessor is broken; +#endif +static long long int bignum = -9223372036854775807LL; +static unsigned long long int ubignum = BIG64; + +struct incomplete_array +{ + int datasize; + double data[]; +}; + +struct named_init { + int number; + const wchar_t *name; + double average; +}; + +typedef const char *ccp; + +static inline int +test_restrict (ccp restrict text) +{ + // See if C++-style comments work. + // Iterate through items via the restricted pointer. + // Also check for declarations in for loops. + for (unsigned int i = 0; *(text+i) != '\0'; ++i) + continue; + return 0; +} + +// Check varargs and va_copy. +static void +test_varargs (const char *format, ...) +{ + va_list args; + va_start (args, format); + va_list args_copy; + va_copy (args_copy, args); + + const char *str; + int number; + float fnumber; + + while (*format) + { + switch (*format++) + { + case 's': // string + str = va_arg (args_copy, const char *); + break; + case 'd': // int + number = va_arg (args_copy, int); + break; + case 'f': // float + fnumber = va_arg (args_copy, double); + break; + default: + break; + } + } + va_end (args_copy); + va_end (args); +} + +int +main () +{ + + // Check bool. + _Bool success = false; + + // Check restrict. + if (test_restrict ("String literal") == 0) + success = true; + char *restrict newvar = "Another string"; + + // Check varargs. + test_varargs ("s, d' f .", "string", 65, 34.234); + test_varargs_macros (); + + // Check flexible array members. + struct incomplete_array *ia = + malloc (sizeof (struct incomplete_array) + (sizeof (double) * 10)); + ia->datasize = 10; + for (int i = 0; i < ia->datasize; ++i) + ia->data[i] = i * 1.234; + + // Check named initializers. + struct named_init ni = { + .number = 34, + .name = L"Test wide string", + .average = 543.34343, + }; + + ni.number = 58; + + int dynamic_array[ni.number]; + dynamic_array[ni.number - 1] = 543; + + // work around unused variable warnings + return (!success || bignum == 0LL || ubignum == 0uLL || newvar[0] == 'x' + || dynamic_array[ni.number - 1] != 543); + + ; + return 0; +} _ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" +for ac_arg in '' -std=gnu99 -std=c99 -c99 -AC99 -xc99=all -qlanglvl=extc99 +do + CC="$ac_save_CC $ac_arg" + rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 - (eval "$ac_link") 2>conftest.er1 + (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { - test -z "$ac_fc_werror_flag" || + test -z "$ac_c_werror_flag" || test ! -s conftest.err - } && test -s conftest$ac_exeext && { - test "$cross_compiling" = yes || - $as_test_x conftest$ac_exeext - }; then - ac_cv_lib_mpich_MPI_Init=yes + } && test -s conftest.$ac_objext; then + ac_cv_prog_cc_c99=$ac_arg else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 - ac_cv_lib_mpich_MPI_Init=no -fi -rm -rf conftest.dSYM -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_mpich_MPI_Init" >&5 -$as_echo "$ac_cv_lib_mpich_MPI_Init" >&6; } -if test "x$ac_cv_lib_mpich_MPI_Init" = x""yes; then - MPILIBS="-lmpich" fi +rm -f core conftest.err conftest.$ac_objext + test "x$ac_cv_prog_cc_c99" != "xno" && break +done +rm -f conftest.$ac_ext +CC=$ac_save_CC + fi +# AC_CACHE_VAL +case "x$ac_cv_prog_cc_c99" in + x) + { $as_echo "$as_me:$LINENO: result: none needed" >&5 +$as_echo "none needed" >&6; } ;; + xno) + { $as_echo "$as_me:$LINENO: result: unsupported" >&5 +$as_echo "unsupported" >&6; } ;; + *) + CC="$CC $ac_cv_prog_cc_c99" + { $as_echo "$as_me:$LINENO: result: $ac_cv_prog_cc_c99" >&5 +$as_echo "$ac_cv_prog_cc_c99" >&6; } ;; +esac +if test "x$ac_cv_prog_cc_c99" != xno; then + ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c99 +else + { $as_echo "$as_me:$LINENO: checking for $CC option to accept ISO C89" >&5 +$as_echo_n "checking for $CC option to accept ISO C89... " >&6; } +if test "${ac_cv_prog_cc_c89+set}" = set; then + $as_echo_n "(cached) " >&6 +else + ac_cv_prog_cc_c89=no +ac_save_CC=$CC +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +#include +#include +#include +/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ +struct buf { int x; }; +FILE * (*rcsopen) (struct buf *, struct stat *, int); +static char *e (p, i) + char **p; + int i; +{ + return p[i]; +} +static char *f (char * (*g) (char **, int), char **p, ...) +{ + char *s; + va_list v; + va_start (v,p); + s = g (p, va_arg (v,int)); + va_end (v); + return s; +} -if test x != x"$MPILIBS"; then - { $as_echo "$as_me:$LINENO: checking for mpif.h" >&5 -$as_echo_n "checking for mpif.h... " >&6; } - cat >conftest.$ac_ext <<_ACEOF - program main - include 'mpif.h' - end +/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has + function prototypes and stuff, but not '\xHH' hex character constants. + These don't provoke an error unfortunately, instead are silently treated + as 'x'. The following induces an error, until -std is added to get + proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an + array size at least. It's necessary to write '\x00'==0 to get something + that's true only with -std. */ +int osf4_cc_array ['\x00' == 0 ? 1 : -1]; + +/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters + inside strings and character constants. */ +#define FOO(x) 'x' +int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; + +int test (int i, double x); +struct s1 {int (*f) (int a);}; +struct s2 {int (*f) (double a);}; +int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); +int argc; +char **argv; +int +main () +{ +return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; + ; + return 0; +} _ACEOF -rm -f conftest.$ac_objext +for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ + -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" +do + CC="$ac_save_CC $ac_arg" + rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; @@ -4947,90 +4495,113 @@ $as_echo "$ac_try_echo") >&5 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { - test -z "$ac_fc_werror_flag" || + test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then - { $as_echo "$as_me:$LINENO: result: yes" >&5 -$as_echo "yes" >&6; } + ac_cv_prog_cc_c89=$ac_arg else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 - MPILIBS="" - { $as_echo "$as_me:$LINENO: result: no" >&5 -$as_echo "no" >&6; } + fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext + test "x$ac_cv_prog_cc_c89" != "xno" && break +done +rm -f conftest.$ac_ext +CC=$ac_save_CC + +fi +# AC_CACHE_VAL +case "x$ac_cv_prog_cc_c89" in + x) + { $as_echo "$as_me:$LINENO: result: none needed" >&5 +$as_echo "none needed" >&6; } ;; + xno) + { $as_echo "$as_me:$LINENO: result: unsupported" >&5 +$as_echo "unsupported" >&6; } ;; + *) + CC="$CC $ac_cv_prog_cc_c89" + { $as_echo "$as_me:$LINENO: result: $ac_cv_prog_cc_c89" >&5 +$as_echo "$ac_cv_prog_cc_c89" >&6; } ;; +esac +if test "x$ac_cv_prog_cc_c89" != xno; then + ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c89 +else + ac_cv_prog_cc_stdc=no fi -FC="$acx_mpi_save_FC" +fi + ;; +esac + { $as_echo "$as_me:$LINENO: checking for $CC option to accept ISO Standard C" >&5 +$as_echo_n "checking for $CC option to accept ISO Standard C... " >&6; } + if test "${ac_cv_prog_cc_stdc+set}" = set; then + $as_echo_n "(cached) " >&6 +fi -# Finally, execute ACTION-IF-FOUND/ACTION-IF-NOT-FOUND: -if test x = x"$MPILIBS"; then - { { $as_echo "$as_me:$LINENO: error: Cannot find any suitable MPI implementation for Fortran" >&5 -$as_echo "$as_me: error: Cannot find any suitable MPI implementation for Fortran" >&2;} - { (exit 1); exit 1; }; } - : -else + case $ac_cv_prog_cc_stdc in + no) { $as_echo "$as_me:$LINENO: result: unsupported" >&5 +$as_echo "unsupported" >&6; } ;; + '') { $as_echo "$as_me:$LINENO: result: none needed" >&5 +$as_echo "none needed" >&6; } ;; + *) { $as_echo "$as_me:$LINENO: result: $ac_cv_prog_cc_stdc" >&5 +$as_echo "$ac_cv_prog_cc_stdc" >&6; } ;; +esac -cat >>confdefs.h <<\_ACEOF -#define HAVE_MPI 1 -_ACEOF - : -fi +ac_ext=${ac_fc_srcext-f} +ac_compile='$FC -c $FCFLAGS $ac_fcflags_srcext conftest.$ac_ext >&5' +ac_link='$FC -o conftest$ac_exeext $FCFLAGS $LDFLAGS $ac_fcflags_srcext conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_fc_compiler_gnu -ac_ext=f -ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' -ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_f77_compiler_gnu -if test "X$MPIF77" = "X" ; then +if test "X$MPIFC" = "X" ; then # This is our MPIFC compiler preference: it will override ACX_MPI's first try. - for ac_prog in mpxlf mpf77 mpif77 ftn + for ac_prog in mpxlf2003_r mpxlf2003 mpxlf95_r mpxlf90 mpf95 mpf90 mpifort mpif95 mpif90 ftn do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_MPIF77+set}" = set; then +if ${ac_cv_prog_MPIFC+:} false; then : $as_echo_n "(cached) " >&6 else - if test -n "$MPIF77"; then - ac_cv_prog_MPIF77="$MPIF77" # Let the user override the test. + if test -n "$MPIFC"; then + ac_cv_prog_MPIFC="$MPIFC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_MPIF77="$ac_prog" - $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_MPIFC="$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done -done + done IFS=$as_save_IFS fi fi -MPIF77=$ac_cv_prog_MPIF77 -if test -n "$MPIF77"; then - { $as_echo "$as_me:$LINENO: result: $MPIF77" >&5 -$as_echo "$MPIF77" >&6; } +MPIFC=$ac_cv_prog_MPIFC +if test -n "$MPIFC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MPIFC" >&5 +$as_echo "$MPIFC" >&6; } else - { $as_echo "$as_me:$LINENO: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi - test -n "$MPIF77" && break + test -n "$MPIFC" && break done fi @@ -5040,382 +4611,232 @@ fi - for ac_prog in mpif77 hf77 mpxlf mpf77 mpif90 mpf90 mpxlf90 mpxlf95 mpxlf_r cmpifc cmpif90c + + for ac_prog in mpif90 hf90 mpxlf90 mpxlf95 mpf90 cmpifc cmpif90c do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_MPIF77+set}" = set; then +if ${ac_cv_prog_MPIFC+:} false; then : $as_echo_n "(cached) " >&6 else - if test -n "$MPIF77"; then - ac_cv_prog_MPIF77="$MPIF77" # Let the user override the test. + if test -n "$MPIFC"; then + ac_cv_prog_MPIFC="$MPIFC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_MPIF77="$ac_prog" - $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_MPIFC="$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done -done + done IFS=$as_save_IFS fi fi -MPIF77=$ac_cv_prog_MPIF77 -if test -n "$MPIF77"; then - { $as_echo "$as_me:$LINENO: result: $MPIF77" >&5 -$as_echo "$MPIF77" >&6; } +MPIFC=$ac_cv_prog_MPIFC +if test -n "$MPIFC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MPIFC" >&5 +$as_echo "$MPIFC" >&6; } else - { $as_echo "$as_me:$LINENO: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi - test -n "$MPIF77" && break + test -n "$MPIFC" && break done -test -n "$MPIF77" || MPIF77="$F77" +test -n "$MPIFC" || MPIFC="$FC" - acx_mpi_save_F77="$F77" - F77="$MPIF77" + acx_mpi_save_FC="$FC" + FC="$MPIFC" if test x = x"$MPILIBS"; then - { $as_echo "$as_me:$LINENO: checking for MPI_Init" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MPI_Init" >&5 $as_echo_n "checking for MPI_Init... " >&6; } - cat >conftest.$ac_ext <<_ACEOF + cat > conftest.$ac_ext <<_ACEOF program main call MPI_Init end _ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_f77_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && { - test "$cross_compiling" = yes || - $as_test_x conftest$ac_exeext - }; then +if ac_fn_fc_try_link "$LINENO"; then : MPILIBS=" " - { $as_echo "$as_me:$LINENO: result: yes" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - { $as_echo "$as_me:$LINENO: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi - -rm -rf conftest.dSYM -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext fi if test x = x"$MPILIBS"; then - { $as_echo "$as_me:$LINENO: checking for MPI_Init in -lfmpi" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MPI_Init in -lfmpi" >&5 $as_echo_n "checking for MPI_Init in -lfmpi... " >&6; } -if test "${ac_cv_lib_fmpi_MPI_Init+set}" = set; then +if ${ac_cv_lib_fmpi_MPI_Init+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lfmpi $LIBS" -cat >conftest.$ac_ext <<_ACEOF +cat > conftest.$ac_ext <<_ACEOF program main call MPI_Init end _ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_f77_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && { - test "$cross_compiling" = yes || - $as_test_x conftest$ac_exeext - }; then +if ac_fn_fc_try_link "$LINENO"; then : ac_cv_lib_fmpi_MPI_Init=yes else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_lib_fmpi_MPI_Init=no + ac_cv_lib_fmpi_MPI_Init=no fi - -rm -rf conftest.dSYM -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_fmpi_MPI_Init" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_fmpi_MPI_Init" >&5 $as_echo "$ac_cv_lib_fmpi_MPI_Init" >&6; } -if test "x$ac_cv_lib_fmpi_MPI_Init" = x""yes; then +if test "x$ac_cv_lib_fmpi_MPI_Init" = xyes; then : MPILIBS="-lfmpi" fi fi if test x = x"$MPILIBS"; then - { $as_echo "$as_me:$LINENO: checking for MPI_Init in -lfmpich" >&5 -$as_echo_n "checking for MPI_Init in -lfmpich... " >&6; } -if test "${ac_cv_lib_fmpich_MPI_Init+set}" = set; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MPI_Init in -lmpichf90" >&5 +$as_echo_n "checking for MPI_Init in -lmpichf90... " >&6; } +if ${ac_cv_lib_mpichf90_MPI_Init+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS -LIBS="-lfmpich $LIBS" -cat >conftest.$ac_ext <<_ACEOF +LIBS="-lmpichf90 $LIBS" +cat > conftest.$ac_ext <<_ACEOF program main - call MPI_Init - end -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_f77_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && { - test "$cross_compiling" = yes || - $as_test_x conftest$ac_exeext - }; then - ac_cv_lib_fmpich_MPI_Init=yes + call MPI_Init + end +_ACEOF +if ac_fn_fc_try_link "$LINENO"; then : + ac_cv_lib_mpichf90_MPI_Init=yes else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_lib_fmpich_MPI_Init=no + ac_cv_lib_mpichf90_MPI_Init=no fi - -rm -rf conftest.dSYM -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_fmpich_MPI_Init" >&5 -$as_echo "$ac_cv_lib_fmpich_MPI_Init" >&6; } -if test "x$ac_cv_lib_fmpich_MPI_Init" = x""yes; then - MPILIBS="-lfmpich" +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_mpichf90_MPI_Init" >&5 +$as_echo "$ac_cv_lib_mpichf90_MPI_Init" >&6; } +if test "x$ac_cv_lib_mpichf90_MPI_Init" = xyes; then : + MPILIBS="-lmpichf90" fi fi if test x = x"$MPILIBS"; then - { $as_echo "$as_me:$LINENO: checking for MPI_Init in -lmpi" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MPI_Init in -lmpi" >&5 $as_echo_n "checking for MPI_Init in -lmpi... " >&6; } -if test "${ac_cv_lib_mpi_MPI_Init+set}" = set; then +if ${ac_cv_lib_mpi_MPI_Init+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lmpi $LIBS" -cat >conftest.$ac_ext <<_ACEOF +cat > conftest.$ac_ext <<_ACEOF program main call MPI_Init end _ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_f77_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && { - test "$cross_compiling" = yes || - $as_test_x conftest$ac_exeext - }; then +if ac_fn_fc_try_link "$LINENO"; then : ac_cv_lib_mpi_MPI_Init=yes else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_lib_mpi_MPI_Init=no + ac_cv_lib_mpi_MPI_Init=no fi - -rm -rf conftest.dSYM -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_mpi_MPI_Init" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_mpi_MPI_Init" >&5 $as_echo "$ac_cv_lib_mpi_MPI_Init" >&6; } -if test "x$ac_cv_lib_mpi_MPI_Init" = x""yes; then +if test "x$ac_cv_lib_mpi_MPI_Init" = xyes; then : MPILIBS="-lmpi" fi fi if test x = x"$MPILIBS"; then - { $as_echo "$as_me:$LINENO: checking for MPI_Init in -lmpich" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MPI_Init in -lmpich" >&5 $as_echo_n "checking for MPI_Init in -lmpich... " >&6; } -if test "${ac_cv_lib_mpich_MPI_Init+set}" = set; then +if ${ac_cv_lib_mpich_MPI_Init+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lmpich $LIBS" -cat >conftest.$ac_ext <<_ACEOF +cat > conftest.$ac_ext <<_ACEOF program main call MPI_Init end _ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_f77_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && { - test "$cross_compiling" = yes || - $as_test_x conftest$ac_exeext - }; then +if ac_fn_fc_try_link "$LINENO"; then : ac_cv_lib_mpich_MPI_Init=yes else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_lib_mpich_MPI_Init=no + ac_cv_lib_mpich_MPI_Init=no fi - -rm -rf conftest.dSYM -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_mpich_MPI_Init" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_mpich_MPI_Init" >&5 $as_echo "$ac_cv_lib_mpich_MPI_Init" >&6; } -if test "x$ac_cv_lib_mpich_MPI_Init" = x""yes; then +if test "x$ac_cv_lib_mpich_MPI_Init" = xyes; then : MPILIBS="-lmpich" fi fi if test x != x"$MPILIBS"; then - { $as_echo "$as_me:$LINENO: checking for mpif.h" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for mpif.h" >&5 $as_echo_n "checking for mpif.h... " >&6; } - cat >conftest.$ac_ext <<_ACEOF + cat > conftest.$ac_ext <<_ACEOF program main include 'mpif.h' end _ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_f77_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - { $as_echo "$as_me:$LINENO: result: yes" >&5 +if ac_fn_fc_try_compile "$LINENO"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - MPILIBS="" - { $as_echo "$as_me:$LINENO: result: no" >&5 + MPILIBS="" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi - rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -F77="$acx_mpi_save_F77" +FC="$acx_mpi_save_FC" # Finally, execute ACTION-IF-FOUND/ACTION-IF-NOT-FOUND: if test x = x"$MPILIBS"; then - { { $as_echo "$as_me:$LINENO: error: Cannot find any suitable MPI implementation for Fortran 77" >&5 -$as_echo "$as_me: error: Cannot find any suitable MPI implementation for Fortran 77" >&2;} - { (exit 1); exit 1; }; } + as_fn_error $? "Cannot find any suitable MPI implementation for Fortran" "$LINENO" 5 : else -cat >>confdefs.h <<\_ACEOF -#define HAVE_MPI 1 -_ACEOF +$as_echo "#define HAVE_MPI 1" >>confdefs.h : fi + FC="$MPIFC" ; -F77="$MPIF77"; CC="$MPICC"; fi -# We leave a default language for the next checks. ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' @@ -5429,15 +4850,11 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu ############################################################################### if test "X$MPIFC" == "X" ; then - { { $as_echo "$as_me:$LINENO: error: Problem : No MPI Fortran compiler specified nor found!" >&5 -$as_echo "$as_me: error: Problem : No MPI Fortran compiler specified nor found!" >&2;} - { (exit 1); exit 1; }; } + as_fn_error $? "Problem : No MPI Fortran compiler specified nor found!" "$LINENO" 5 fi if test "X$MPICC" == "X" ; then - { { $as_echo "$as_me:$LINENO: error: Problem : No MPI C compiler specified nor found!" >&5 -$as_echo "$as_me: error: Problem : No MPI C compiler specified nor found!" >&2;} - { (exit 1); exit 1; }; } + as_fn_error $? "Problem : No MPI C compiler specified nor found!" "$LINENO" 5 fi ############################################################################### @@ -5445,56 +4862,54 @@ fi ############################################################################### -{ $as_echo "$as_me:$LINENO: checking whether additional CCOPT flags should be added (should be invoked only once)" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether additional CCOPT flags should be added (should be invoked only once)" >&5 $as_echo_n "checking whether additional CCOPT flags should be added (should be invoked only once)... " >&6; } # Check whether --with-ccopt was given. -if test "${with_ccopt+set}" = set; then +if test "${with_ccopt+set}" = set; then : withval=$with_ccopt; CCOPT="${withval} ${CCOPT}" -{ $as_echo "$as_me:$LINENO: result: CCOPT = ${CCOPT}" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: CCOPT = ${CCOPT}" >&5 $as_echo "CCOPT = ${CCOPT}" >&6; } else - { $as_echo "$as_me:$LINENO: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi -{ $as_echo "$as_me:$LINENO: checking whether additional FCOPT flags should be added (should be invoked only once)" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether additional FCOPT flags should be added (should be invoked only once)" >&5 $as_echo_n "checking whether additional FCOPT flags should be added (should be invoked only once)... " >&6; } # Check whether --with-fcopt was given. -if test "${with_fcopt+set}" = set; then +if test "${with_fcopt+set}" = set; then : withval=$with_fcopt; FCOPT="${withval} ${FCOPT}" -{ $as_echo "$as_me:$LINENO: result: FCOPT = ${FCOPT}" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: FCOPT = ${FCOPT}" >&5 $as_echo "FCOPT = ${FCOPT}" >&6; } else - { $as_echo "$as_me:$LINENO: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi -#PAC_ARG_WITH_FLAGS(f90copt,F90COPT) -#PAC_ARG_WITH_FLAGS(ldflags,LDFLAGS) -{ $as_echo "$as_me:$LINENO: checking whether additional libraries are needed" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether additional libraries are needed" >&5 $as_echo_n "checking whether additional libraries are needed... " >&6; } # Check whether --with-libs was given. -if test "${with_libs+set}" = set; then +if test "${with_libs+set}" = set; then : withval=$with_libs; LIBS="${withval} ${LIBS}" -{ $as_echo "$as_me:$LINENO: result: LIBS = ${LIBS}" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: LIBS = ${LIBS}" >&5 $as_echo "LIBS = ${LIBS}" >&6; } else - { $as_echo "$as_me:$LINENO: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi @@ -5502,36 +4917,36 @@ fi -{ $as_echo "$as_me:$LINENO: checking whether additional CLIBS flags should be added (should be invoked only once)" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether additional CLIBS flags should be added (should be invoked only once)" >&5 $as_echo_n "checking whether additional CLIBS flags should be added (should be invoked only once)... " >&6; } # Check whether --with-clibs was given. -if test "${with_clibs+set}" = set; then +if test "${with_clibs+set}" = set; then : withval=$with_clibs; CLIBS="${withval} ${CLIBS}" -{ $as_echo "$as_me:$LINENO: result: CLIBS = ${CLIBS}" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: CLIBS = ${CLIBS}" >&5 $as_echo "CLIBS = ${CLIBS}" >&6; } else - { $as_echo "$as_me:$LINENO: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi -{ $as_echo "$as_me:$LINENO: checking whether additional FLIBS flags should be added (should be invoked only once)" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether additional FLIBS flags should be added (should be invoked only once)" >&5 $as_echo_n "checking whether additional FLIBS flags should be added (should be invoked only once)... " >&6; } # Check whether --with-flibs was given. -if test "${with_flibs+set}" = set; then +if test "${with_flibs+set}" = set; then : withval=$with_flibs; FLIBS="${withval} ${FLIBS}" -{ $as_echo "$as_me:$LINENO: result: FLIBS = ${FLIBS}" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: FLIBS = ${FLIBS}" >&5 $as_echo "FLIBS = ${FLIBS}" >&6; } else - { $as_echo "$as_me:$LINENO: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi @@ -5539,54 +4954,54 @@ fi -{ $as_echo "$as_me:$LINENO: checking whether additional LIBRARYPATH flags should be added (should be invoked only once)" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether additional LIBRARYPATH flags should be added (should be invoked only once)" >&5 $as_echo_n "checking whether additional LIBRARYPATH flags should be added (should be invoked only once)... " >&6; } # Check whether --with-library-path was given. -if test "${with_library_path+set}" = set; then +if test "${with_library_path+set}" = set; then : withval=$with_library_path; LIBRARYPATH="${withval} ${LIBRARYPATH}" -{ $as_echo "$as_me:$LINENO: result: LIBRARYPATH = ${LIBRARYPATH}" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: LIBRARYPATH = ${LIBRARYPATH}" >&5 $as_echo "LIBRARYPATH = ${LIBRARYPATH}" >&6; } else - { $as_echo "$as_me:$LINENO: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi -{ $as_echo "$as_me:$LINENO: checking whether additional INCLUDEPATH flags should be added (should be invoked only once)" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether additional INCLUDEPATH flags should be added (should be invoked only once)" >&5 $as_echo_n "checking whether additional INCLUDEPATH flags should be added (should be invoked only once)... " >&6; } # Check whether --with-include-path was given. -if test "${with_include_path+set}" = set; then +if test "${with_include_path+set}" = set; then : withval=$with_include_path; INCLUDEPATH="${withval} ${INCLUDEPATH}" -{ $as_echo "$as_me:$LINENO: result: INCLUDEPATH = ${INCLUDEPATH}" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: INCLUDEPATH = ${INCLUDEPATH}" >&5 $as_echo "INCLUDEPATH = ${INCLUDEPATH}" >&6; } else - { $as_echo "$as_me:$LINENO: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi -{ $as_echo "$as_me:$LINENO: checking whether additional MODULE_PATH flags should be added (should be invoked only once)" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether additional MODULE_PATH flags should be added (should be invoked only once)" >&5 $as_echo_n "checking whether additional MODULE_PATH flags should be added (should be invoked only once)... " >&6; } # Check whether --with-module-path was given. -if test "${with_module_path+set}" = set; then +if test "${with_module_path+set}" = set; then : withval=$with_module_path; MODULE_PATH="${withval} ${MODULE_PATH}" -{ $as_echo "$as_me:$LINENO: result: MODULE_PATH = ${MODULE_PATH}" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: MODULE_PATH = ${MODULE_PATH}" >&5 $as_echo "MODULE_PATH = ${MODULE_PATH}" >&6; } else - { $as_echo "$as_me:$LINENO: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi @@ -5597,12 +5012,13 @@ fi ############################################################################### + if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. set dummy ${ac_tool_prefix}ranlib; ac_word=$2 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_RANLIB+set}" = set; then +if ${ac_cv_prog_RANLIB+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$RANLIB"; then @@ -5613,24 +5029,24 @@ for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" - $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done -done + done IFS=$as_save_IFS fi fi RANLIB=$ac_cv_prog_RANLIB if test -n "$RANLIB"; then - { $as_echo "$as_me:$LINENO: result: $RANLIB" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5 $as_echo "$RANLIB" >&6; } else - { $as_echo "$as_me:$LINENO: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi @@ -5640,9 +5056,9 @@ if test -z "$ac_cv_prog_RANLIB"; then ac_ct_RANLIB=$RANLIB # Extract the first word of "ranlib", so it can be a program name with args. set dummy ranlib; ac_word=$2 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then +if ${ac_cv_prog_ac_ct_RANLIB+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_RANLIB"; then @@ -5653,24 +5069,24 @@ for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_RANLIB="ranlib" - $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done -done + done IFS=$as_save_IFS fi fi ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB if test -n "$ac_ct_RANLIB"; then - { $as_echo "$as_me:$LINENO: result: $ac_ct_RANLIB" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5 $as_echo "$ac_ct_RANLIB" >&6; } else - { $as_echo "$as_me:$LINENO: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi @@ -5679,7 +5095,7 @@ fi else case $cross_compiling:$ac_tool_warned in yes:) -{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac @@ -5690,70 +5106,75 @@ else fi -am__api_version='1.11' +am__api_version='1.15' -{ $as_echo "$as_me:$LINENO: checking whether build environment is sane" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether build environment is sane" >&5 $as_echo_n "checking whether build environment is sane... " >&6; } -# Just in case -sleep 1 -echo timestamp > conftest.file # Reject unsafe characters in $srcdir or the absolute working directory # name. Accept space and tab only in the latter. am_lf=' ' case `pwd` in *[\\\"\#\$\&\'\`$am_lf]*) - { { $as_echo "$as_me:$LINENO: error: unsafe absolute working directory name" >&5 -$as_echo "$as_me: error: unsafe absolute working directory name" >&2;} - { (exit 1); exit 1; }; };; + as_fn_error $? "unsafe absolute working directory name" "$LINENO" 5;; esac case $srcdir in *[\\\"\#\$\&\'\`$am_lf\ \ ]*) - { { $as_echo "$as_me:$LINENO: error: unsafe srcdir value: \`$srcdir'" >&5 -$as_echo "$as_me: error: unsafe srcdir value: \`$srcdir'" >&2;} - { (exit 1); exit 1; }; };; + as_fn_error $? "unsafe srcdir value: '$srcdir'" "$LINENO" 5;; esac -# Do `set' in a subshell so we don't clobber the current shell's +# Do 'set' in a subshell so we don't clobber the current shell's # arguments. Must try -L first in case configure is actually a # symlink; some systems play weird games with the mod time of symlinks # (eg FreeBSD returns the mod time of the symlink's containing # directory). if ( - set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` - if test "$*" = "X"; then - # -L didn't work. - set X `ls -t "$srcdir/configure" conftest.file` - fi - rm -f conftest.file - if test "$*" != "X $srcdir/configure conftest.file" \ - && test "$*" != "X conftest.file $srcdir/configure"; then - - # If neither matched, then we have a broken ls. This can happen - # if, for instance, CONFIG_SHELL is bash and it inherits a - # broken ls alias from the environment. This has actually - # happened. Such a system could not be considered "sane". - { { $as_echo "$as_me:$LINENO: error: ls -t appears to fail. Make sure there is not a broken -alias in your environment" >&5 -$as_echo "$as_me: error: ls -t appears to fail. Make sure there is not a broken -alias in your environment" >&2;} - { (exit 1); exit 1; }; } - fi - + am_has_slept=no + for am_try in 1 2; do + echo "timestamp, slept: $am_has_slept" > conftest.file + set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` + if test "$*" = "X"; then + # -L didn't work. + set X `ls -t "$srcdir/configure" conftest.file` + fi + if test "$*" != "X $srcdir/configure conftest.file" \ + && test "$*" != "X conftest.file $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + as_fn_error $? "ls -t appears to fail. Make sure there is not a broken + alias in your environment" "$LINENO" 5 + fi + if test "$2" = conftest.file || test $am_try -eq 2; then + break + fi + # Just in case. + sleep 1 + am_has_slept=yes + done test "$2" = conftest.file ) then # Ok. : else - { { $as_echo "$as_me:$LINENO: error: newly created file is older than distributed files! -Check your system clock" >&5 -$as_echo "$as_me: error: newly created file is older than distributed files! -Check your system clock" >&2;} - { (exit 1); exit 1; }; } + as_fn_error $? "newly created file is older than distributed files! +Check your system clock" "$LINENO" 5 fi -{ $as_echo "$as_me:$LINENO: result: yes" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } +# If we didn't sleep, we still need to ensure time stamps of config.status and +# generated files are strictly newer. +am_sleep_pid= +if grep 'slept: no' conftest.file >/dev/null 2>&1; then + ( sleep 1 ) & + am_sleep_pid=$! +fi + +rm -f conftest.file + test "$program_prefix" != NONE && program_transform_name="s&^&$program_prefix&;$program_transform_name" # Use a double $ so make ignores it. @@ -5764,9 +5185,6 @@ test "$program_suffix" != NONE && ac_script='s/[\\$]/&&/g;s/;s,x,x,$//' program_transform_name=`$as_echo "$program_transform_name" | sed "$ac_script"` -# expand $ac_aux_dir to an absolute path -am_aux_dir=`cd $ac_aux_dir && pwd` - if test x"${MISSING+set}" != xset; then case $am_aux_dir in *\ * | *\ *) @@ -5776,15 +5194,15 @@ if test x"${MISSING+set}" != xset; then esac fi # Use eval to expand $SHELL -if eval "$MISSING --run true"; then - am_missing_run="$MISSING --run " +if eval "$MISSING --is-lightweight"; then + am_missing_run="$MISSING " else am_missing_run= - { $as_echo "$as_me:$LINENO: WARNING: \`missing' script is too old or missing" >&5 -$as_echo "$as_me: WARNING: \`missing' script is too old or missing" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: 'missing' script is too old or missing" >&5 +$as_echo "$as_me: WARNING: 'missing' script is too old or missing" >&2;} fi -if test x"${install_sh}" != xset; then +if test x"${install_sh+set}" != xset; then case $am_aux_dir in *\ * | *\ *) install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; @@ -5793,17 +5211,17 @@ if test x"${install_sh}" != xset; then esac fi -# Installed binaries are usually stripped using `strip' when the user -# run `make install-strip'. However `strip' might not be the right +# Installed binaries are usually stripped using 'strip' when the user +# run "make install-strip". However 'strip' might not be the right # tool to use in cross-compilation environments, therefore Automake -# will honor the `STRIP' environment variable to overrule this program. +# will honor the 'STRIP' environment variable to overrule this program. if test "$cross_compiling" != no; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. set dummy ${ac_tool_prefix}strip; ac_word=$2 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_STRIP+set}" = set; then +if ${ac_cv_prog_STRIP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$STRIP"; then @@ -5814,24 +5232,24 @@ for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_STRIP="${ac_tool_prefix}strip" - $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done -done + done IFS=$as_save_IFS fi fi STRIP=$ac_cv_prog_STRIP if test -n "$STRIP"; then - { $as_echo "$as_me:$LINENO: result: $STRIP" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5 $as_echo "$STRIP" >&6; } else - { $as_echo "$as_me:$LINENO: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi @@ -5841,9 +5259,9 @@ if test -z "$ac_cv_prog_STRIP"; then ac_ct_STRIP=$STRIP # Extract the first word of "strip", so it can be a program name with args. set dummy strip; ac_word=$2 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then +if ${ac_cv_prog_ac_ct_STRIP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_STRIP"; then @@ -5854,24 +5272,24 @@ for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_STRIP="strip" - $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done -done + done IFS=$as_save_IFS fi fi ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP if test -n "$ac_ct_STRIP"; then - { $as_echo "$as_me:$LINENO: result: $ac_ct_STRIP" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5 $as_echo "$ac_ct_STRIP" >&6; } else - { $as_echo "$as_me:$LINENO: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi @@ -5880,7 +5298,7 @@ fi else case $cross_compiling:$ac_tool_warned in yes:) -{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac @@ -5893,10 +5311,10 @@ fi fi INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" -{ $as_echo "$as_me:$LINENO: checking for a thread-safe mkdir -p" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a thread-safe mkdir -p" >&5 $as_echo_n "checking for a thread-safe mkdir -p... " >&6; } if test -z "$MKDIR_P"; then - if test "${ac_cv_path_mkdir+set}" = set; then + if ${ac_cv_path_mkdir+:} false; then : $as_echo_n "(cached) " >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -5904,9 +5322,9 @@ for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_prog in mkdir gmkdir; do + for ac_prog in mkdir gmkdir; do for ac_exec_ext in '' $ac_executable_extensions; do - { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; } || continue + as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext" || continue case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #( 'mkdir (GNU coreutils) '* | \ 'mkdir (coreutils) '* | \ @@ -5916,11 +5334,12 @@ do esac done done -done + done IFS=$as_save_IFS fi + test -d ./--version && rmdir ./--version if test "${ac_cv_path_mkdir+set}" = set; then MKDIR_P="$ac_cv_path_mkdir -p" else @@ -5928,26 +5347,19 @@ fi # value for MKDIR_P within a source directory, because that will # break other packages using the cache if that directory is # removed, or if the value is a relative name. - test -d ./--version && rmdir ./--version MKDIR_P="$ac_install_sh -d" fi fi -{ $as_echo "$as_me:$LINENO: result: $MKDIR_P" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5 $as_echo "$MKDIR_P" >&6; } -mkdir_p="$MKDIR_P" -case $mkdir_p in - [\\/$]* | ?:[\\/]*) ;; - */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;; -esac - for ac_prog in gawk mawk nawk awk do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_AWK+set}" = set; then +if ${ac_cv_prog_AWK+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$AWK"; then @@ -5958,24 +5370,24 @@ for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_AWK="$ac_prog" - $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done -done + done IFS=$as_save_IFS fi fi AWK=$ac_cv_prog_AWK if test -n "$AWK"; then - { $as_echo "$as_me:$LINENO: result: $AWK" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5 $as_echo "$AWK" >&6; } else - { $as_echo "$as_me:$LINENO: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi @@ -5983,11 +5395,11 @@ fi test -n "$AWK" && break done -{ $as_echo "$as_me:$LINENO: checking whether ${MAKE-make} sets \$(MAKE)" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5 $as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; } set x ${MAKE-make} ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` -if { as_var=ac_cv_prog_make_${ac_make}_set; eval "test \"\${$as_var+set}\" = set"; }; then +if eval \${ac_cv_prog_make_${ac_make}_set+:} false; then : $as_echo_n "(cached) " >&6 else cat >conftest.make <<\_ACEOF @@ -5995,7 +5407,7 @@ SHELL = /bin/sh all: @echo '@@@%%%=$(MAKE)=@@@%%%' _ACEOF -# GNU make sometimes prints "make[1]: Entering...", which would confuse us. +# GNU make sometimes prints "make[1]: Entering ...", which would confuse us. case `${MAKE-make} -f conftest.make 2>/dev/null` in *@@@%%%=?*=@@@%%%*) eval ac_cv_prog_make_${ac_make}_set=yes;; @@ -6005,11 +5417,11 @@ esac rm -f conftest.make fi if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then - { $as_echo "$as_me:$LINENO: result: yes" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } SET_MAKE= else - { $as_echo "$as_me:$LINENO: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } SET_MAKE="MAKE=${MAKE-make}" fi @@ -6035,14 +5447,14 @@ am__doit: .PHONY: am__doit END # If we don't find an include directive, just comment out the code. -{ $as_echo "$as_me:$LINENO: checking for style of include used by $am_make" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for style of include used by $am_make" >&5 $as_echo_n "checking for style of include used by $am_make... " >&6; } am__include="#" am__quote= _am_result=none # First try GNU make style include. echo "include confinc" > confmf -# Ignore all kinds of additional output from `make'. +# Ignore all kinds of additional output from 'make'. case `$am_make -s -f confmf 2> /dev/null` in #( *the\ am__doit\ target*) am__include=include @@ -6063,18 +5475,19 @@ if test "$am__include" = "#"; then fi -{ $as_echo "$as_me:$LINENO: result: $_am_result" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $_am_result" >&5 $as_echo "$_am_result" >&6; } rm -f confinc confmf # Check whether --enable-dependency-tracking was given. -if test "${enable_dependency_tracking+set}" = set; then +if test "${enable_dependency_tracking+set}" = set; then : enableval=$enable_dependency_tracking; fi if test "x$enable_dependency_tracking" != xno; then am_depcomp="$ac_aux_dir/depcomp" AMDEPBACKSLASH='\' + am__nodep='_no' fi if test "x$enable_dependency_tracking" != xno; then AMDEP_TRUE= @@ -6085,15 +5498,52 @@ else fi +# Check whether --enable-silent-rules was given. +if test "${enable_silent_rules+set}" = set; then : + enableval=$enable_silent_rules; +fi + +case $enable_silent_rules in # ((( + yes) AM_DEFAULT_VERBOSITY=0;; + no) AM_DEFAULT_VERBOSITY=1;; + *) AM_DEFAULT_VERBOSITY=1;; +esac +am_make=${MAKE-make} +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $am_make supports nested variables" >&5 +$as_echo_n "checking whether $am_make supports nested variables... " >&6; } +if ${am_cv_make_support_nested_variables+:} false; then : + $as_echo_n "(cached) " >&6 +else + if $as_echo 'TRUE=$(BAR$(V)) +BAR0=false +BAR1=true +V=1 +am__doit: + @$(TRUE) +.PHONY: am__doit' | $am_make -f - >/dev/null 2>&1; then + am_cv_make_support_nested_variables=yes +else + am_cv_make_support_nested_variables=no +fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_make_support_nested_variables" >&5 +$as_echo "$am_cv_make_support_nested_variables" >&6; } +if test $am_cv_make_support_nested_variables = yes; then + AM_V='$(V)' + AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)' +else + AM_V=$AM_DEFAULT_VERBOSITY + AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY +fi +AM_BACKSLASH='\' + if test "`cd $srcdir && pwd`" != "`pwd`"; then # Use -I$(srcdir) only when $(srcdir) != ., so that make's output # is not polluted with repeated "-I." am__isrc=' -I$(srcdir)' # test to see if srcdir already configured if test -f $srcdir/config.status; then - { { $as_echo "$as_me:$LINENO: error: source directory already configured; run \"make distclean\" there first" >&5 -$as_echo "$as_me: error: source directory already configured; run \"make distclean\" there first" >&2;} - { (exit 1); exit 1; }; } + as_fn_error $? "source directory already configured; run \"make distclean\" there first" "$LINENO" 5 fi fi @@ -6109,7 +5559,7 @@ fi # Define the identity of the package. PACKAGE='psblas' - VERSION='3.4' + VERSION='3.5' cat >>confdefs.h <<_ACEOF @@ -6137,30 +5587,42 @@ AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"} MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"} -# We need awk for the "check" target. The system "awk" is bad on -# some platforms. -# Always define AMTAR for backward compatibility. +# For better backward compatibility. To be removed once Automake 1.9.x +# dies out for good. For more background, see: +# +# +mkdir_p='$(MKDIR_P)' + +# We need awk for the "check" target (and possibly the TAP driver). The +# system "awk" is bad on some platforms. +# Always define AMTAR for backward compatibility. Yes, it's still used +# in the wild :-( We should find a proper way to deprecate it ... +AMTAR='$${TAR-tar}' -AMTAR=${AMTAR-"${am_missing_run}tar"} -am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -' +# We'll loop over all known methods to create a tar archive until one works. +_am_tools='gnutar pax cpio none' + +am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -' + depcc="$CC" am_compiler_list= -{ $as_echo "$as_me:$LINENO: checking dependency style of $depcc" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 $as_echo_n "checking dependency style of $depcc... " >&6; } -if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then +if ${am_cv_CC_dependencies_compiler_type+:} false; then : $as_echo_n "(cached) " >&6 else if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up - # making a dummy file named `D' -- because `-MD' means `put the output - # in D'. + # making a dummy file named 'D' -- because '-MD' means "put the output + # in D". + rm -rf conftest.dir mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. @@ -6194,16 +5656,16 @@ else : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c - # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with - # Solaris 8's {/usr,}/bin/sh. - touch sub/conftst$i.h + # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with + # Solaris 10 /bin/sh. + echo '/* dummy */' > sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf - # We check with `-c' and `-o' for the sake of the "dashmstdout" + # We check with '-c' and '-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly - # handle `-M -o', and we need to detect this. Also, some Intel - # versions had trouble with output in subdirs + # handle '-M -o', and we need to detect this. Also, some Intel + # versions had trouble with output in subdirs. am__obj=sub/conftest.${OBJEXT-o} am__minus_obj="-o $am__obj" case $depmode in @@ -6212,16 +5674,16 @@ else test "$am__universal" = false || continue ;; nosideeffect) - # after this tag, mechanisms are not by side-effect, so they'll - # only be used when explicitly requested + # After this tag, mechanisms are not by side-effect, so they'll + # only be used when explicitly requested. if test "x$enable_dependency_tracking" = xyes; then continue else break fi ;; - msvisualcpp | msvcmsys) - # This compiler won't grok `-c -o', but also, the minuso test has + msvc7 | msvc7msys | msvisualcpp | msvcmsys) + # This compiler won't grok '-c -o', but also, the minuso test has # not run yet. These depmodes are late enough in the game, and # so weak that their functioning should not be impacted. am__obj=conftest.${OBJEXT-o} @@ -6260,7 +5722,7 @@ else fi fi -{ $as_echo "$as_me:$LINENO: result: $am_cv_CC_dependencies_compiler_type" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5 $as_echo "$am_cv_CC_dependencies_compiler_type" >&6; } CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type @@ -6276,6 +5738,48 @@ fi +# POSIX will say in a future version that running "rm -f" with no argument +# is OK; and we want to be able to make that assumption in our Makefile +# recipes. So use an aggressive probe to check that the usage we want is +# actually supported "in the wild" to an acceptable degree. +# See automake bug#10828. +# To make any issue more visible, cause the running configure to be aborted +# by default if the 'rm' program in use doesn't match our expectations; the +# user can still override this though. +if rm -f && rm -fr && rm -rf; then : OK; else + cat >&2 <<'END' +Oops! + +Your 'rm' program seems unable to run without file operands specified +on the command line, even when the '-f' option is present. This is contrary +to the behaviour of most rm programs out there, and not conforming with +the upcoming POSIX standard: + +Please tell bug-automake@gnu.org about your system, including the value +of your $PATH and any error possibly output before this message. This +can help us improve future automake versions. + +END + if test x"$ACCEPT_INFERIOR_RM_PROGRAM" = x"yes"; then + echo 'Configuration will proceed anyway, since you have set the' >&2 + echo 'ACCEPT_INFERIOR_RM_PROGRAM variable to "yes"' >&2 + echo >&2 + else + cat >&2 <<'END' +Aborting the configuration process, to ensure you take notice of the issue. + +You can download and install GNU coreutils to get an 'rm' implementation +that behaves properly: . + +If you want to complete the configuration process using your problematic +'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM +to "yes", and re-run configure. + +END + as_fn_error $? "Your 'rm' program is bad, sorry." "$LINENO" 5 + fi +fi + @@ -6285,7 +5789,7 @@ fi psblas_cv_fc="" -{ $as_echo "$as_me:$LINENO: checking for GNU Fortran" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU Fortran" >&5 $as_echo_n "checking for GNU Fortran... " >&6; } ac_ext=${ac_fc_srcext-f} ac_compile='$FC -c $FCFLAGS $ac_fcflags_srcext conftest.$ac_ext >&5' @@ -6295,7 +5799,7 @@ ac_compiler_gnu=$ac_cv_fc_compiler_gnu ac_exeext='' ac_ext='F90' ac_fc=${MPIFC-$FC}; - cat >conftest.$ac_ext <<_ACEOF + cat > conftest.$ac_ext <<_ACEOF program main #ifdef __GNUC__ @@ -6305,38 +5809,17 @@ ac_compiler_gnu=$ac_cv_fc_compiler_gnu #endif end _ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_fc_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - { $as_echo "$as_me:$LINENO: result: yes" >&5 +if ac_fn_fc_try_compile "$LINENO"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } psblas_cv_fc="gcc" else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - { $as_echo "$as_me:$LINENO: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } echo "configure: failed program was:" >&5 cat conftest.$ac_ext >&5 fi - rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_ext=c ac_cpp='$CPP $CPPFLAGS' @@ -6346,7 +5829,7 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu -{ $as_echo "$as_me:$LINENO: checking for Cray Fortran" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for Cray Fortran" >&5 $as_echo_n "checking for Cray Fortran... " >&6; } ac_ext=${ac_fc_srcext-f} ac_compile='$FC -c $FCFLAGS $ac_fcflags_srcext conftest.$ac_ext >&5' @@ -6356,7 +5839,7 @@ ac_compiler_gnu=$ac_cv_fc_compiler_gnu ac_exeext='' ac_ext='F90' ac_fc=${MPIFC-$FC}; - cat >conftest.$ac_ext <<_ACEOF + cat > conftest.$ac_ext <<_ACEOF program main #ifdef _CRAYFTN @@ -6366,38 +5849,17 @@ ac_compiler_gnu=$ac_cv_fc_compiler_gnu #endif end _ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_fc_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - { $as_echo "$as_me:$LINENO: result: yes" >&5 +if ac_fn_fc_try_compile "$LINENO"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } psblas_cv_fc="cray" else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - { $as_echo "$as_me:$LINENO: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } echo "configure: failed program was:" >&5 cat conftest.$ac_ext >&5 fi - rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_ext=c ac_cpp='$CPP $CPPFLAGS' @@ -6435,16 +5897,15 @@ if test x"$psblas_cv_fc" == "x" ; then elif eval "$MPIFC -v 2>&1 | grep NAG 2>/dev/null" ; then psblas_cv_fc="nag" FC="$MPIFC" - F77="$MPIFC" else psblas_cv_fc="" # unsupported MPI Fortran compiler - { $as_echo "$as_me:$LINENO: Unknown Fortran compiler, proceeding with fingers crossed !" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: Unknown Fortran compiler, proceeding with fingers crossed !" >&5 $as_echo "$as_me: Unknown Fortran compiler, proceeding with fingers crossed !" >&6;} fi fi if test "X$psblas_cv_fc" == "Xgcc" ; then -{ $as_echo "$as_me:$LINENO: checking for recent GNU Fortran" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for recent GNU Fortran" >&5 $as_echo_n "checking for recent GNU Fortran... " >&6; } ac_ext=${ac_fc_srcext-f} ac_compile='$FC -c $FCFLAGS $ac_fcflags_srcext conftest.$ac_ext >&5' @@ -6454,7 +5915,7 @@ ac_compiler_gnu=$ac_cv_fc_compiler_gnu ac_exeext='' ac_ext='F90' ac_fc=${MPIFC-$FC}; - cat >conftest.$ac_ext <<_ACEOF + cat > conftest.$ac_ext <<_ACEOF program main #if ( __GNUC__ >= 4 && __GNUC_MINOR__ >= 8 ) || ( __GNUC__ > 4 ) @@ -6464,43 +5925,20 @@ ac_compiler_gnu=$ac_cv_fc_compiler_gnu #endif end _ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_fc_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - { $as_echo "$as_me:$LINENO: result: yes" >&5 +if ac_fn_fc_try_compile "$LINENO"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } : else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - { $as_echo "$as_me:$LINENO: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } - { $as_echo "$as_me:$LINENO: Sorry, we require GNU Fortran version 4.8.4 or later." >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: Sorry, we require GNU Fortran version 4.8.4 or later." >&5 $as_echo "$as_me: Sorry, we require GNU Fortran version 4.8.4 or later." >&6;} echo "configure: failed program was:" >&5 cat conftest.$ac_ext >&5 - { { $as_echo "$as_me:$LINENO: error: Bailing out." >&5 -$as_echo "$as_me: error: Bailing out." >&2;} - { (exit 1); exit 1; }; } + as_fn_error $? "Bailing out." "$LINENO" 5 fi - rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_ext=c ac_cpp='$CPP $CPPFLAGS' @@ -6510,10 +5948,7 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu fi -# TODO : SEE _AC_PROG_FC_V -# TODO : AC_MSG_ERROR(see "$ac_cv_prog_FC_fc") -# AC_MSG_NOTICE( "ac_cv_prog_FC_fc : $ac_cv_prog_FC_fc") -############################################################################### + ############################################################################### # Linking, symbol mangling, and misc tests @@ -6531,14 +5966,14 @@ ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu -{ $as_echo "$as_me:$LINENO: checking how to run the C preprocessor" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5 $as_echo_n "checking how to run the C preprocessor... " >&6; } # On Suns, sometimes $CPP names a directory. if test -n "$CPP" && test -d "$CPP"; then CPP= fi if test -z "$CPP"; then - if test "${ac_cv_prog_CPP+set}" = set; then + if ${ac_cv_prog_CPP+:} false; then : $as_echo_n "(cached) " >&6 else # Double quotes because CPP needs to be expanded @@ -6553,11 +5988,7 @@ do # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __STDC__ # include @@ -6566,78 +5997,34 @@ cat >>conftest.$ac_ext <<_ACEOF #endif Syntax error _ACEOF -if { (ac_try="$ac_cpp conftest.$ac_ext" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null && { - test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || - test ! -s conftest.err - }; then - : -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 +if ac_fn_c_try_cpp "$LINENO"; then : +else # Broken: fails on valid input. continue fi - -rm -f conftest.err conftest.$ac_ext +rm -f conftest.err conftest.i conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF -if { (ac_try="$ac_cpp conftest.$ac_ext" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null && { - test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || - test ! -s conftest.err - }; then +if ac_fn_c_try_cpp "$LINENO"; then : # Broken: success on invalid input. continue else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - # Passes both tests. ac_preproc_ok=: break fi - -rm -f conftest.err conftest.$ac_ext +rm -f conftest.err conftest.i conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. -rm -f conftest.err conftest.$ac_ext -if $ac_preproc_ok; then +rm -f conftest.i conftest.err conftest.$ac_ext +if $ac_preproc_ok; then : break fi @@ -6649,7 +6036,7 @@ fi else ac_cv_prog_CPP=$CPP fi -{ $as_echo "$as_me:$LINENO: result: $CPP" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5 $as_echo "$CPP" >&6; } ac_preproc_ok=false for ac_c_preproc_warn_flag in '' yes @@ -6657,14 +6044,10 @@ do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since - # exists even on freestanding compilers. - # On the NeXT, cc -E runs the code through the compiler's parser, - # not just through cpp. "Syntax error" is here to catch this case. - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF + # exists even on freestanding compilers. + # On the NeXT, cc -E runs the code through the compiler's parser, + # not just through cpp. "Syntax error" is here to catch this case. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __STDC__ # include @@ -6673,87 +6056,40 @@ cat >>conftest.$ac_ext <<_ACEOF #endif Syntax error _ACEOF -if { (ac_try="$ac_cpp conftest.$ac_ext" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null && { - test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || - test ! -s conftest.err - }; then - : -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 +if ac_fn_c_try_cpp "$LINENO"; then : +else # Broken: fails on valid input. continue fi - -rm -f conftest.err conftest.$ac_ext +rm -f conftest.err conftest.i conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF -if { (ac_try="$ac_cpp conftest.$ac_ext" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null && { - test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || - test ! -s conftest.err - }; then +if ac_fn_c_try_cpp "$LINENO"; then : # Broken: success on invalid input. continue else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - # Passes both tests. ac_preproc_ok=: break fi - -rm -f conftest.err conftest.$ac_ext +rm -f conftest.err conftest.i conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. -rm -f conftest.err conftest.$ac_ext -if $ac_preproc_ok; then - : +rm -f conftest.i conftest.err conftest.$ac_ext +if $ac_preproc_ok; then : + else - { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -{ { $as_echo "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanity check -See \`config.log' for more details." >&5 -$as_echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check -See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; }; } +as_fn_error $? "C preprocessor \"$CPP\" fails sanity check +See \`config.log' for more details" "$LINENO" 5; } fi ac_ext=c @@ -6763,9 +6099,9 @@ ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $ ac_compiler_gnu=$ac_cv_c_compiler_gnu -{ $as_echo "$as_me:$LINENO: checking for grep that handles long lines and -e" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5 $as_echo_n "checking for grep that handles long lines and -e... " >&6; } -if test "${ac_cv_path_GREP+set}" = set; then +if ${ac_cv_path_GREP+:} false; then : $as_echo_n "(cached) " >&6 else if test -z "$GREP"; then @@ -6776,10 +6112,10 @@ for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_prog in grep ggrep; do + for ac_prog in grep ggrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext" - { test -f "$ac_path_GREP" && $as_test_x "$ac_path_GREP"; } || continue + as_fn_executable_p "$ac_path_GREP" || continue # Check for GNU ac_path_GREP and select it if it is found. # Check for GNU $ac_path_GREP case `"$ac_path_GREP" --version 2>&1` in @@ -6796,7 +6132,7 @@ case `"$ac_path_GREP" --version 2>&1` in $as_echo 'GREP' >> "conftest.nl" "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break - ac_count=`expr $ac_count + 1` + as_fn_arith $ac_count + 1 && ac_count=$as_val if test $ac_count -gt ${ac_path_GREP_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_GREP="$ac_path_GREP" @@ -6811,26 +6147,24 @@ esac $ac_path_GREP_found && break 3 done done -done + done IFS=$as_save_IFS if test -z "$ac_cv_path_GREP"; then - { { $as_echo "$as_me:$LINENO: error: no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5 -$as_echo "$as_me: error: no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;} - { (exit 1); exit 1; }; } + as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 fi else ac_cv_path_GREP=$GREP fi fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_path_GREP" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5 $as_echo "$ac_cv_path_GREP" >&6; } GREP="$ac_cv_path_GREP" -{ $as_echo "$as_me:$LINENO: checking for egrep" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5 $as_echo_n "checking for egrep... " >&6; } -if test "${ac_cv_path_EGREP+set}" = set; then +if ${ac_cv_path_EGREP+:} false; then : $as_echo_n "(cached) " >&6 else if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 @@ -6844,10 +6178,10 @@ for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_prog in egrep; do + for ac_prog in egrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext" - { test -f "$ac_path_EGREP" && $as_test_x "$ac_path_EGREP"; } || continue + as_fn_executable_p "$ac_path_EGREP" || continue # Check for GNU ac_path_EGREP and select it if it is found. # Check for GNU $ac_path_EGREP case `"$ac_path_EGREP" --version 2>&1` in @@ -6864,640 +6198,190 @@ case `"$ac_path_EGREP" --version 2>&1` in $as_echo 'EGREP' >> "conftest.nl" "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break - ac_count=`expr $ac_count + 1` + as_fn_arith $ac_count + 1 && ac_count=$as_val if test $ac_count -gt ${ac_path_EGREP_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_EGREP="$ac_path_EGREP" - ac_path_EGREP_max=$ac_count - fi - # 10*(2^10) chars as input seems more than enough - test $ac_count -gt 10 && break - done - rm -f conftest.in conftest.tmp conftest.nl conftest.out;; -esac - - $ac_path_EGREP_found && break 3 - done - done -done -IFS=$as_save_IFS - if test -z "$ac_cv_path_EGREP"; then - { { $as_echo "$as_me:$LINENO: error: no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5 -$as_echo "$as_me: error: no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;} - { (exit 1); exit 1; }; } - fi -else - ac_cv_path_EGREP=$EGREP -fi - - fi -fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_path_EGREP" >&5 -$as_echo "$ac_cv_path_EGREP" >&6; } - EGREP="$ac_cv_path_EGREP" - - -{ $as_echo "$as_me:$LINENO: checking for ANSI C header files" >&5 -$as_echo_n "checking for ANSI C header files... " >&6; } -if test "${ac_cv_header_stdc+set}" = set; then - $as_echo_n "(cached) " >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include -#include -#include -#include - -int -main () -{ - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - ac_cv_header_stdc=yes -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_header_stdc=no -fi - -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - -if test $ac_cv_header_stdc = yes; then - # SunOS 4.x string.h does not declare mem*, contrary to ANSI. - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "memchr" >/dev/null 2>&1; then - : -else - ac_cv_header_stdc=no -fi -rm -f conftest* - -fi - -if test $ac_cv_header_stdc = yes; then - # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "free" >/dev/null 2>&1; then - : -else - ac_cv_header_stdc=no -fi -rm -f conftest* - -fi - -if test $ac_cv_header_stdc = yes; then - # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. - if test "$cross_compiling" = yes; then - : -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include -#include -#if ((' ' & 0x0FF) == 0x020) -# define ISLOWER(c) ('a' <= (c) && (c) <= 'z') -# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) -#else -# define ISLOWER(c) \ - (('a' <= (c) && (c) <= 'i') \ - || ('j' <= (c) && (c) <= 'r') \ - || ('s' <= (c) && (c) <= 'z')) -# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) -#endif - -#define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) -int -main () -{ - int i; - for (i = 0; i < 256; i++) - if (XOR (islower (i), ISLOWER (i)) - || toupper (i) != TOUPPER (i)) - return 2; - return 0; -} -_ACEOF -rm -f conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_link") 2>&5 - ac_status=$? - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - : -else - $as_echo "$as_me: program exited with status $ac_status" >&5 -$as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -( exit $ac_status ) -ac_cv_header_stdc=no -fi -rm -rf conftest.dSYM -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext -fi - - -fi -fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5 -$as_echo "$ac_cv_header_stdc" >&6; } -if test $ac_cv_header_stdc = yes; then - -cat >>confdefs.h <<\_ACEOF -#define STDC_HEADERS 1 -_ACEOF - -fi - -# On IRIX 5.3, sys/types and inttypes.h are conflicting. - - - - - - - - - -for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ - inttypes.h stdint.h unistd.h -do -as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 -$as_echo_n "checking for $ac_header... " >&6; } -if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then - $as_echo_n "(cached) " >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default - -#include <$ac_header> -_ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; + ac_path_EGREP_max=$ac_count + fi + # 10*(2^10) chars as input seems more than enough + test $ac_count -gt 10 && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - eval "$as_ac_Header=yes" -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - eval "$as_ac_Header=no" -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + $ac_path_EGREP_found && break 3 + done + done + done +IFS=$as_save_IFS + if test -z "$ac_cv_path_EGREP"; then + as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 + fi +else + ac_cv_path_EGREP=$EGREP fi -ac_res=`eval 'as_val=${'$as_ac_Header'} - $as_echo "$as_val"'` - { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } -as_val=`eval 'as_val=${'$as_ac_Header'} - $as_echo "$as_val"'` - if test "x$as_val" = x""yes; then - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF + fi fi - -done +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5 +$as_echo "$ac_cv_path_EGREP" >&6; } + EGREP="$ac_cv_path_EGREP" -# The cast to long int works around a bug in the HP C Compiler -# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects -# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. -# This bug is HP SR number 8606223364. -{ $as_echo "$as_me:$LINENO: checking size of void *" >&5 -$as_echo_n "checking size of void *... " >&6; } -if test "${ac_cv_sizeof_void_p+set}" = set; then +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5 +$as_echo_n "checking for ANSI C header files... " >&6; } +if ${ac_cv_header_stdc+:} false; then : $as_echo_n "(cached) " >&6 else - if test "$cross_compiling" = yes; then - # Depending upon the size, compute the lo and hi bounds. -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -$ac_includes_default -int -main () -{ -static int test_array [1 - 2 * !(((long int) (sizeof (void *))) >= 0)]; -test_array [0] = 0 +#include +#include +#include +#include - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - ac_lo=0 ac_mid=0 - while :; do - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default int main () { -static int test_array [1 - 2 * !(((long int) (sizeof (void *))) <= $ac_mid)]; -test_array [0] = 0 ; return 0; } _ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - ac_hi=$ac_mid; break +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_header_stdc=yes else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_lo=`expr $ac_mid + 1` - if test $ac_lo -le $ac_mid; then - ac_lo= ac_hi= - break - fi - ac_mid=`expr 2 '*' $ac_mid + 1` + ac_cv_header_stdc=no fi - rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - done -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -int -main () -{ -static int test_array [1 - 2 * !(((long int) (sizeof (void *))) < 0)]; -test_array [0] = 0 - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - ac_hi=-1 ac_mid=-1 - while :; do - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF +if test $ac_cv_header_stdc = yes; then + # SunOS 4.x string.h does not declare mem*, contrary to ANSI. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -$ac_includes_default -int -main () -{ -static int test_array [1 - 2 * !(((long int) (sizeof (void *))) >= $ac_mid)]; -test_array [0] = 0 +#include - ; - return 0; -} _ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - ac_lo=$ac_mid; break -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_hi=`expr '(' $ac_mid ')' - 1` - if test $ac_mid -le $ac_hi; then - ac_lo= ac_hi= - break - fi - ac_mid=`expr 2 '*' $ac_mid` -fi +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "memchr" >/dev/null 2>&1; then : -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - done else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_lo= ac_hi= + ac_cv_header_stdc=no fi +rm -f conftest* -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -# Binary search between lo and hi bounds. -while test "x$ac_lo" != "x$ac_hi"; do - ac_mid=`expr '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo` - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF +if test $ac_cv_header_stdc = yes; then + # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -$ac_includes_default -int -main () -{ -static int test_array [1 - 2 * !(((long int) (sizeof (void *))) <= $ac_mid)]; -test_array [0] = 0 +#include - ; - return 0; -} _ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - ac_hi=$ac_mid +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "free" >/dev/null 2>&1; then : + else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 + ac_cv_header_stdc=no +fi +rm -f conftest* - ac_lo=`expr '(' $ac_mid ')' + 1` fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -done -case $ac_lo in -?*) ac_cv_sizeof_void_p=$ac_lo;; -'') if test "$ac_cv_type_void_p" = yes; then - { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -{ { $as_echo "$as_me:$LINENO: error: cannot compute sizeof (void *) -See \`config.log' for more details." >&5 -$as_echo "$as_me: error: cannot compute sizeof (void *) -See \`config.log' for more details." >&2;} - { (exit 77); exit 77; }; }; } - else - ac_cv_sizeof_void_p=0 - fi ;; -esac +if test $ac_cv_header_stdc = yes; then + # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. + if test "$cross_compiling" = yes; then : + : else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -$ac_includes_default -static long int longval () { return (long int) (sizeof (void *)); } -static unsigned long int ulongval () { return (long int) (sizeof (void *)); } -#include +#include #include +#if ((' ' & 0x0FF) == 0x020) +# define ISLOWER(c) ('a' <= (c) && (c) <= 'z') +# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) +#else +# define ISLOWER(c) \ + (('a' <= (c) && (c) <= 'i') \ + || ('j' <= (c) && (c) <= 'r') \ + || ('s' <= (c) && (c) <= 'z')) +# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) +#endif + +#define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) int main () { - - FILE *f = fopen ("conftest.val", "w"); - if (! f) - return 1; - if (((long int) (sizeof (void *))) < 0) - { - long int i = longval (); - if (i != ((long int) (sizeof (void *)))) - return 1; - fprintf (f, "%ld", i); - } - else - { - unsigned long int i = ulongval (); - if (i != ((long int) (sizeof (void *)))) - return 1; - fprintf (f, "%lu", i); - } - /* Do not output a trailing newline, as this causes \r\n confusion - on some platforms. */ - return ferror (f) || fclose (f) != 0; - - ; + int i; + for (i = 0; i < 256; i++) + if (XOR (islower (i), ISLOWER (i)) + || toupper (i) != TOUPPER (i)) + return 2; return 0; } _ACEOF -rm -f conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_link") 2>&5 - ac_status=$? - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_sizeof_void_p=`cat conftest.val` +if ac_fn_c_try_run "$LINENO"; then : + else - $as_echo "$as_me: program exited with status $ac_status" >&5 -$as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 + ac_cv_header_stdc=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + +fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5 +$as_echo "$ac_cv_header_stdc" >&6; } +if test $ac_cv_header_stdc = yes; then + +$as_echo "#define STDC_HEADERS 1" >>confdefs.h + +fi + +# On IRIX 5.3, sys/types and inttypes.h are conflicting. +for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ + inttypes.h stdint.h unistd.h +do : + as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` +ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default +" +if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : + cat >>confdefs.h <<_ACEOF +#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + +fi + +done + + +# The cast to long int works around a bug in the HP C Compiler +# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects +# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. +# This bug is HP SR number 8606223364. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of void *" >&5 +$as_echo_n "checking size of void *... " >&6; } +if ${ac_cv_sizeof_void_p+:} false; then : + $as_echo_n "(cached) " >&6 +else + if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (void *))" "ac_cv_sizeof_void_p" "$ac_includes_default"; then : -( exit $ac_status ) -if test "$ac_cv_type_void_p" = yes; then - { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 +else + if test "$ac_cv_type_void_p" = yes; then + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -{ { $as_echo "$as_me:$LINENO: error: cannot compute sizeof (void *) -See \`config.log' for more details." >&5 -$as_echo "$as_me: error: cannot compute sizeof (void *) -See \`config.log' for more details." >&2;} - { (exit 77); exit 77; }; }; } +as_fn_error 77 "cannot compute sizeof (void *) +See \`config.log' for more details" "$LINENO" 5; } else ac_cv_sizeof_void_p=0 fi fi -rm -rf conftest.dSYM -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext -fi -rm -f conftest.val + fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_sizeof_void_p" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_void_p" >&5 $as_echo "$ac_cv_sizeof_void_p" >&6; } @@ -7516,16 +6400,12 @@ ac_compile='$FC -c $FCFLAGS $ac_fcflags_srcext conftest.$ac_ext >&5' ac_link='$FC -o conftest$ac_exeext $FCFLAGS $LDFLAGS $ac_fcflags_srcext conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_fc_compiler_gnu -if test "X$psblas_cv_fc" == X"pg" ; then - save_FC=$FC - FC=$F77 -fi -{ $as_echo "$as_me:$LINENO: checking for Fortran name-mangling scheme" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for Fortran name-mangling scheme" >&5 $as_echo_n "checking for Fortran name-mangling scheme... " >&6; } -if test "${ac_cv_fc_mangling+set}" = set; then +if ${ac_cv_fc_mangling+:} false; then : $as_echo_n "(cached) " >&6 else - cat >conftest.$ac_ext <<_ACEOF + cat > conftest.$ac_ext <<_ACEOF subroutine foobar() return end @@ -7533,24 +6413,7 @@ else return end _ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_fc_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then +if ac_fn_fc_try_compile "$LINENO"; then : mv conftest.$ac_objext cfortran_test.$ac_objext ac_save_LIBS=$LIBS @@ -7565,11 +6428,7 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu for ac_foobar in foobar FOOBAR; do for ac_underscore in "" "_"; do ac_func="$ac_foobar$ac_underscore" - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. @@ -7587,38 +6446,11 @@ return $ac_func (); return 0; } _ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && { - test "$cross_compiling" = yes || - $as_test_x conftest$ac_exeext - }; then +if ac_fn_c_try_link "$LINENO"; then : ac_success=yes; break 2 -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - fi - -rm -rf conftest.dSYM -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext done done ac_ext=${ac_fc_srcext-f} @@ -7646,11 +6478,7 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu ac_success_extra=no for ac_extra in "" "_"; do ac_func="$ac_foo_bar$ac_underscore$ac_extra" - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. @@ -7668,38 +6496,11 @@ return $ac_func (); return 0; } _ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && { - test "$cross_compiling" = yes || - $as_test_x conftest$ac_exeext - }; then +if ac_fn_c_try_link "$LINENO"; then : ac_success_extra=yes; break -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - fi - -rm -rf conftest.dSYM -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext done ac_ext=${ac_fc_srcext-f} ac_compile='$FC -c $FCFLAGS $ac_fcflags_srcext conftest.$ac_ext >&5' @@ -7708,16 +6509,16 @@ ac_compiler_gnu=$ac_cv_fc_compiler_gnu if test "$ac_success_extra" = "yes"; then ac_cv_fc_mangling="$ac_case case" - if test -z "$ac_underscore"; then - ac_cv_fc_mangling="$ac_cv_fc_mangling, no underscore" + if test -z "$ac_underscore"; then + ac_cv_fc_mangling="$ac_cv_fc_mangling, no underscore" else - ac_cv_fc_mangling="$ac_cv_fc_mangling, underscore" - fi - if test -z "$ac_extra"; then - ac_cv_fc_mangling="$ac_cv_fc_mangling, no extra underscore" + ac_cv_fc_mangling="$ac_cv_fc_mangling, underscore" + fi + if test -z "$ac_extra"; then + ac_cv_fc_mangling="$ac_cv_fc_mangling, no extra underscore" else - ac_cv_fc_mangling="$ac_cv_fc_mangling, extra underscore" - fi + ac_cv_fc_mangling="$ac_cv_fc_mangling, extra underscore" + fi else ac_cv_fc_mangling="unknown" fi @@ -7729,22 +6530,15 @@ ac_compiler_gnu=$ac_cv_fc_compiler_gnu rm -rf conftest* rm -f cfortran_test* else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -{ { $as_echo "$as_me:$LINENO: error: cannot compile a simple Fortran program -See \`config.log' for more details." >&5 -$as_echo "$as_me: error: cannot compile a simple Fortran program -See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; }; } +as_fn_error $? "cannot compile a simple Fortran program +See \`config.log' for more details" "$LINENO" 5; } fi - rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_fc_mangling" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_fc_mangling" >&5 $as_echo "$ac_cv_fc_mangling" >&6; } if test "X$psblas_cv_fc" == X"pg" ; then @@ -7762,7 +6556,7 @@ pac_fc_sec_under=${pac_fc_under#*,} pac_fc_sec_under=${pac_fc_sec_under# } pac_fc_under=${pac_fc_under%%,*} pac_fc_under=${pac_fc_under# } -{ $as_echo "$as_me:$LINENO: checking defines for C/Fortran name interfaces" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking defines for C/Fortran name interfaces" >&5 $as_echo_n "checking defines for C/Fortran name interfaces... " >&6; } if test "x$pac_fc_case" == "xlower case"; then if test "x$pac_fc_under" == "xunderscore"; then @@ -7797,14 +6591,16 @@ else fi CDEFINES="$pac_f_c_names $CDEFINES" -{ $as_echo "$as_me:$LINENO: result: $pac_f_c_names " >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $pac_f_c_names " >&5 $as_echo " $pac_f_c_names " >&6; } ############################################################################### # Make.inc generation logic ############################################################################### -F90COPT="$FCOPT" - +# Honor CFLAGS if they were specified explicitly, but --with-ccopt take precedence +if test "X$CCOPT" == "X" ; then + CCOPT="$CFLAGS"; +fi if test "X$CCOPT" == "X" ; then if test "X$psblas_cv_fc" == "Xgcc" ; then # note that no space should be placed around the equality symbol in assignements @@ -7836,6 +6632,10 @@ if test "X$CCOPT" == "X" ; then fi #CFLAGS="${CCOPT}" +# Honor FCFLAGS if they were specified explicitly, but --with-fcopt take precedence +if test "X$FCOPT" == "X" ; then + FCOPT="$FCFLAGS"; +fi if test "X$FCOPT" == "X" ; then if test "X$psblas_cv_fc" == "Xgcc" ; then # note that no space should be placed around the equality symbol in assignations @@ -7867,56 +6667,18 @@ if test "X$FCOPT" == "X" ; then fi if test "X$psblas_cv_fc" == X"nag" ; then # Add needed options - FCOPT="$FCOPT -dcfuns -f2003 -wmismatch=mpi_scatterv,mpi_alltoallv,mpi_gatherv,mpi_allgatherv" -fi -#FFLAGS="${FCOPT}" - -if test "X$F90COPT" == "X" ; then - if test "X$psblas_cv_fc" == "Xgcc" ; then - # note that no space should be placed around the equality symbol in assignations - # Note : 'native' is valid _only_ on GCC/x86 (32/64 bits) - F90COPT="-O3 $F90COPT" - elif test "X$psblas_cv_fc" == X"xlf" ; then - # XL compiler : consider using -qarch=auto - F90COPT="-O3 -qarch=auto -qsuffix=f=f90:cpp=F90 -qlanglvl=extended $F90COPT" - elif test "X$psblas_cv_fc" == X"ifc" ; then - # other compilers .. - F90COPT="-O3 $F90COPT" - elif test "X$psblas_cv_fc" == X"pg" ; then - # other compilers .. - F90COPT="-fast $F90COPT" - elif test "X$psblas_cv_fc" == X"sun" ; then - F90COPT="-fast $F90COPT" - elif test "X$psblas_cv_fc" == X"cray" ; then - MPIFC="ftn" - F90COPT="-O3 -em $F90COPT" - elif test "X$psblas_cv_fc" == X"nag" ; then - # NAG compiler - F90COPT="-O2" - else - # other compilers .. - F90COPT="-O2 $F90COPT" - fi -else - echo "Found FCFLAGS $F90COPT" - #F90COPT="${FCFLAGS}" -fi -if test "X$psblas_cv_fc" == X"nag" ; then - # Add needed options - F90COPT="$F90COPT -dcfuns -f2003 -wmismatch=mpi_scatterv,mpi_alltoallv,mpi_gatherv,mpi_allgatherv" + FCOPT="$FCOPT -dcfuns -f2003 -wmismatch=mpi_scatterv,mpi_alltoallv,mpi_gatherv,mpi_allgatherv" EXTRA_OPT="-mismatch_all" fi +# COPT,FCOPT are aliases for CFLAGS,FCFLAGS . + ############################################################################## # Compilers variables selection ############################################################################## -F90=${FC} -MPF90=${MPIFC} FC=${FC} -MPF77=${MPIFC} CC=${CC} -MPCC=${MPICC} CCOPT="$CCOPT $C99OPT" @@ -7924,11 +6686,7 @@ CCOPT="$CCOPT $C99OPT" # Choice of our compilers, needed by Make.inc ############################################################################## if test "X$FLINK" == "X" ; then - FLINK=${MPF77} -fi - -if test "X$F90LINK" == "X" ; then - F90LINK=${MPF90} + FLINK=${MPF90} fi ############################################################################## @@ -7953,9 +6711,9 @@ then else -{ $as_echo "$as_me:$LINENO: checking fortran 90 modules extension" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking fortran 90 modules extension" >&5 $as_echo_n "checking fortran 90 modules extension... " >&6; } -if test "${ax_cv_f90_modext+set}" = set; then +if ${ax_cv_f90_modext+:} false; then : $as_echo_n "(cached) " >&6 else ac_ext=${ac_fc_srcext-f} @@ -7969,7 +6727,7 @@ while test \( -f tmpdir_$i \) -o \( -d tmpdir_$i \) ; do done mkdir tmpdir_$i cd tmpdir_$i -cat >conftest.$ac_ext <<_ACEOF +cat > conftest.$ac_ext <<_ACEOF module conftest_module contains @@ -7979,24 +6737,7 @@ cat >conftest.$ac_ext <<_ACEOF end module conftest_module _ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_fc_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then +if ac_fn_fc_try_compile "$LINENO"; then : ax_cv_f90_modext=`ls | sed -n 's,conftest_module\.,,p'` if test x$ax_cv_f90_modext = x ; then ax_cv_f90_modext=`ls | sed -n 's,CONFTEST_MODULE\.,,p'` @@ -8006,12 +6747,8 @@ $as_echo "$ac_try_echo") >&5 fi else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ax_cv_f90_modext=unknown + ax_cv_f90_modext=unknown fi - rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext cd .. rm -fr tmpdir_$i @@ -8023,12 +6760,12 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu fi -{ $as_echo "$as_me:$LINENO: result: $ax_cv_f90_modext" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_f90_modext" >&5 $as_echo "$ax_cv_f90_modext" >&6; } -{ $as_echo "$as_me:$LINENO: checking fortran 90 modules inclusion flag" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking fortran 90 modules inclusion flag" >&5 $as_echo_n "checking fortran 90 modules inclusion flag... " >&6; } -if test "${ax_cv_f90_modflag+set}" = set; then +if ${ax_cv_f90_modflag+:} false; then : $as_echo_n "(cached) " >&6 else ac_ext=${ac_fc_srcext-f} @@ -8043,42 +6780,19 @@ done mkdir tmpdir_$i cd tmpdir_$i ac_ext='f90'; -cat >conftest.$ac_ext <<_ACEOF - - module conftest_module - contains - subroutine conftest_routine - write(*,'(a)') 'gotcha!' - end subroutine conftest_routine - end module conftest_module +cat > conftest.$ac_ext <<_ACEOF -_ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_fc_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - : -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 + module conftest_module + contains + subroutine conftest_routine + write(*,'(a)') 'gotcha!' + end subroutine conftest_routine + end module conftest_module +_ACEOF +if ac_fn_fc_try_compile "$LINENO"; then : fi - rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext cd ..; ax_cv_f90_modflag="not found" @@ -8086,7 +6800,7 @@ for ax_flag in "-I " "-M" "-p"; do if test "$ax_cv_f90_modflag" = "not found" ; then ax_save_FCFLAGS="$FCFLAGS" FCFLAGS="$ax_save_FCFLAGS ${ax_flag}tmpdir_$i" - cat >conftest.$ac_ext <<_ACEOF + cat > conftest.$ac_ext <<_ACEOF program conftest_program use conftest_module @@ -8094,41 +6808,16 @@ for ax_flag in "-I " "-M" "-p"; do end program conftest_program _ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_fc_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then +if ac_fn_fc_try_compile "$LINENO"; then : ax_cv_f90_modflag="$ax_flag" -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - fi - rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext FCFLAGS="$ax_save_FCFLAGS" fi done rm -fr tmpdir_$i if test "$ax_cv_f90_modflag" = "not found" ; then - { { $as_echo "$as_me:$LINENO: error: unable to find compiler flag for modules inclusion" >&5 -$as_echo "$as_me: error: unable to find compiler flag for modules inclusion" >&2;} - { (exit 1); exit 1; }; } + as_fn_error $? "unable to find compiler flag for modules inclusion" "$LINENO" 5 fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' @@ -8138,7 +6827,7 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu fi -{ $as_echo "$as_me:$LINENO: result: $ax_cv_f90_modflag" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_f90_modflag" >&5 $as_echo "$ax_cv_f90_modflag" >&6; } MODEXT=".$ax_cv_f90_modext" FMFLAG="${ax_cv_f90_modflag%% *}" @@ -8160,7 +6849,7 @@ fi if test x"$pac_cv_serial_mpi" == x"yes" ; then FDEFINES="$psblas_cv_define_prepend-DSERIAL_MPI $psblas_cv_define_prepend-DMPI_MOD $FDEFINES"; else - { $as_echo "$as_me:$LINENO: checking MPI Fortran 2008 interface" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking MPI Fortran 2008 interface" >&5 $as_echo_n "checking MPI Fortran 2008 interface... " >&6; } ac_ext=${ac_fc_srcext-f} ac_compile='$FC -c $FCFLAGS $ac_fcflags_srcext conftest.$ac_ext >&5' @@ -8170,46 +6859,25 @@ ac_compiler_gnu=$ac_cv_fc_compiler_gnu ac_exeext='' ac_ext='F90' ac_fc=${MPIFC-$FC}; - cat >conftest.$ac_ext <<_ACEOF + cat > conftest.$ac_ext <<_ACEOF program test use mpi_f08 end program test _ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_fc_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - { $as_echo "$as_me:$LINENO: result: yes" >&5 +if ac_fn_fc_try_compile "$LINENO"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } pac_cv_mpi_f08="yes"; : else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - { $as_echo "$as_me:$LINENO: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } pac_cv_mpi_f08="no"; echo "configure: failed program was:" >&5 cat conftest.$ac_ext >&5 fi - rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_ext=c ac_cpp='$CPP $CPPFLAGS' @@ -8221,7 +6889,7 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu if test x"$pac_cv_mpi_f08" == x"yes" ; then FDEFINES="$psblas_cv_define_prepend-DMPI_MOD $FDEFINES"; else - { $as_echo "$as_me:$LINENO: checking for Fortran MPI mod" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Fortran MPI mod" >&5 $as_echo_n "checking for Fortran MPI mod... " >&6; } ac_ext=${ac_fc_srcext-f} ac_compile='$FC -c $FCFLAGS $ac_fcflags_srcext conftest.$ac_ext >&5' @@ -8231,44 +6899,23 @@ ac_compiler_gnu=$ac_cv_fc_compiler_gnu ac_exeext='' ac_ext='F90' ac_fc=${MPIFC-$FC}; - cat >conftest.$ac_ext <<_ACEOF + cat > conftest.$ac_ext <<_ACEOF program test use mpi end program test _ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_fc_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - { $as_echo "$as_me:$LINENO: result: yes" >&5 +if ac_fn_fc_try_compile "$LINENO"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } FDEFINES="$psblas_cv_define_prepend-DMPI_MOD $FDEFINES" else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - { $as_echo "$as_me:$LINENO: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } echo "configure: failed program was:" >&5 cat conftest.$ac_ext >&5 FDEFINES="$psblas_cv_define_prepend-DMPI_H $FDEFINES" fi - rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_ext=c ac_cpp='$CPP $CPPFLAGS' @@ -8281,10 +6928,10 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu fi -{ $as_echo "$as_me:$LINENO: checking whether we want long (8 bytes) integers" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we want long (8 bytes) integers" >&5 $as_echo_n "checking whether we want long (8 bytes) integers... " >&6; } # Check whether --enable-long-integers was given. -if test "${enable_long_integers+set}" = set; then +if test "${enable_long_integers+set}" = set; then : enableval=$enable_long_integers; pac_cv_long_integers="yes"; @@ -8292,11 +6939,11 @@ pac_cv_long_integers="yes"; fi if test x"$pac_cv_long_integers" == x"yes" ; then - { $as_echo "$as_me:$LINENO: result: yes." >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes." >&5 $as_echo "yes." >&6; } else pac_cv_long_integers="no"; - { $as_echo "$as_me:$LINENO: result: no." >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no." >&5 $as_echo "no." >&6; } fi @@ -8314,7 +6961,7 @@ fi # # Critical features # -{ $as_echo "$as_me:$LINENO: checking support for Fortran allocatables TR15581" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking support for Fortran allocatables TR15581" >&5 $as_echo_n "checking support for Fortran allocatables TR15581... " >&6; } ac_ext=${ac_fc_srcext-f} ac_compile='$FC -c $FCFLAGS $ac_fcflags_srcext conftest.$ac_ext >&5' @@ -8324,7 +6971,7 @@ ac_compiler_gnu=$ac_cv_fc_compiler_gnu ac_exeext='' ac_ext='F90' ac_fc=${MPIFC-$FC}; - cat >conftest.$ac_ext <<_ACEOF + cat > conftest.$ac_ext <<_ACEOF module conftest type outer @@ -8376,43 +7023,19 @@ program testtr15581 end program testtr15581 _ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_fc_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - { $as_echo "$as_me:$LINENO: result: yes" >&5 +if ac_fn_fc_try_compile "$LINENO"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } : else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - { $as_echo "$as_me:$LINENO: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } echo "configure: failed program was:" >&5 cat conftest.$ac_ext >&5 - { { $as_echo "$as_me:$LINENO: error: Sorry, cannot build PSBLAS without support for TR15581. - Please get a Fortran compiler that supports it, e.g. GNU Fortran 4.8." >&5 -$as_echo "$as_me: error: Sorry, cannot build PSBLAS without support for TR15581. - Please get a Fortran compiler that supports it, e.g. GNU Fortran 4.8." >&2;} - { (exit 1); exit 1; }; } + as_fn_error $? "Sorry, cannot build PSBLAS without support for TR15581. + Please get a Fortran compiler that supports it, e.g. GNU Fortran 4.8." "$LINENO" 5 fi - rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_ext=c ac_cpp='$CPP $CPPFLAGS' @@ -8425,7 +7048,7 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu ac_exeext='' ac_ext='f90' ac_link='${MPIFC-$FC} -o conftest${ac_exeext} $FCFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' -{ $as_echo "$as_me:$LINENO: checking support for Fortran EXTENDS" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking support for Fortran EXTENDS" >&5 $as_echo_n "checking support for Fortran EXTENDS... " >&6; } ac_ext=${ac_fc_srcext-f} ac_compile='$FC -c $FCFLAGS $ac_fcflags_srcext conftest.$ac_ext >&5' @@ -8435,7 +7058,7 @@ ac_compiler_gnu=$ac_cv_fc_compiler_gnu ac_exeext='' ac_ext='F90' ac_fc=${MPIFC-$FC}; - cat >conftest.$ac_ext <<_ACEOF + cat > conftest.$ac_ext <<_ACEOF program conftest type foo @@ -8447,43 +7070,19 @@ program conftest type(bar) :: barvar end program conftest _ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_fc_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - { $as_echo "$as_me:$LINENO: result: yes" >&5 +if ac_fn_fc_try_compile "$LINENO"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } : else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - { $as_echo "$as_me:$LINENO: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } echo "configure: failed program was:" >&5 cat conftest.$ac_ext >&5 - { { $as_echo "$as_me:$LINENO: error: Sorry, cannot build PSBLAS without support for EXTENDS. - Please get a Fortran compiler that supports it, e.g. GNU Fortran 4.8." >&5 -$as_echo "$as_me: error: Sorry, cannot build PSBLAS without support for EXTENDS. - Please get a Fortran compiler that supports it, e.g. GNU Fortran 4.8." >&2;} - { (exit 1); exit 1; }; } + as_fn_error $? "Sorry, cannot build PSBLAS without support for EXTENDS. + Please get a Fortran compiler that supports it, e.g. GNU Fortran 4.8." "$LINENO" 5 fi - rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_ext=c ac_cpp='$CPP $CPPFLAGS' @@ -8493,7 +7092,7 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu -{ $as_echo "$as_me:$LINENO: checking support for Fortran CLASS TBP" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking support for Fortran CLASS TBP" >&5 $as_echo_n "checking support for Fortran CLASS TBP... " >&6; } ac_ext=${ac_fc_srcext-f} ac_compile='$FC -c $FCFLAGS $ac_fcflags_srcext conftest.$ac_ext >&5' @@ -8503,7 +7102,7 @@ ac_compiler_gnu=$ac_cv_fc_compiler_gnu ac_exeext='' ac_ext='F90' ac_fc=${MPIFC-$FC}; - cat >conftest.$ac_ext <<_ACEOF + cat > conftest.$ac_ext <<_ACEOF module conftest_mod type foo @@ -8534,43 +7133,19 @@ program conftest type(foo) :: foovar end program conftest _ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_fc_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - { $as_echo "$as_me:$LINENO: result: yes" >&5 +if ac_fn_fc_try_compile "$LINENO"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } : else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - { $as_echo "$as_me:$LINENO: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } echo "configure: failed program was:" >&5 cat conftest.$ac_ext >&5 - { { $as_echo "$as_me:$LINENO: error: Sorry, cannot build PSBLAS without support for CLASS and type bound procedures. - Please get a Fortran compiler that supports them, e.g. GNU Fortran 4.8." >&5 -$as_echo "$as_me: error: Sorry, cannot build PSBLAS without support for CLASS and type bound procedures. - Please get a Fortran compiler that supports them, e.g. GNU Fortran 4.8." >&2;} - { (exit 1); exit 1; }; } + as_fn_error $? "Sorry, cannot build PSBLAS without support for CLASS and type bound procedures. + Please get a Fortran compiler that supports them, e.g. GNU Fortran 4.8." "$LINENO" 5 fi - rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_ext=c ac_cpp='$CPP $CPPFLAGS' @@ -8580,7 +7155,7 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu -{ $as_echo "$as_me:$LINENO: checking support for Fortran SOURCE= allocation" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking support for Fortran SOURCE= allocation" >&5 $as_echo_n "checking support for Fortran SOURCE= allocation... " >&6; } ac_ext=${ac_fc_srcext-f} ac_compile='$FC -c $FCFLAGS $ac_fcflags_srcext conftest.$ac_ext >&5' @@ -8590,7 +7165,7 @@ ac_compiler_gnu=$ac_cv_fc_compiler_gnu ac_exeext='' ac_ext='f90' ac_fc=${MPIFC-$FC}; - cat >conftest.$ac_ext <<_ACEOF + cat > conftest.$ac_ext <<_ACEOF program xtt type foo @@ -8607,43 +7182,19 @@ program xtt end program xtt _ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_fc_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - { $as_echo "$as_me:$LINENO: result: yes" >&5 +if ac_fn_fc_try_compile "$LINENO"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } : else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - { $as_echo "$as_me:$LINENO: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } echo "configure: failed program was:" >&5 cat conftest.$ac_ext >&5 - { { $as_echo "$as_me:$LINENO: error: Sorry, cannot build PSBLAS without support for SOURCE= allocation. - Please get a Fortran compiler that supports it, e.g. GNU Fortran 4.8." >&5 -$as_echo "$as_me: error: Sorry, cannot build PSBLAS without support for SOURCE= allocation. - Please get a Fortran compiler that supports it, e.g. GNU Fortran 4.8." >&2;} - { (exit 1); exit 1; }; } + as_fn_error $? "Sorry, cannot build PSBLAS without support for SOURCE= allocation. + Please get a Fortran compiler that supports it, e.g. GNU Fortran 4.8." "$LINENO" 5 fi - rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_ext=c ac_cpp='$CPP $CPPFLAGS' @@ -8653,7 +7204,7 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu -{ $as_echo "$as_me:$LINENO: checking support for Fortran MOVE_ALLOC intrinsic" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking support for Fortran MOVE_ALLOC intrinsic" >&5 $as_echo_n "checking support for Fortran MOVE_ALLOC intrinsic... " >&6; } ac_ext=${ac_fc_srcext-f} ac_compile='$FC -c $FCFLAGS $ac_fcflags_srcext conftest.$ac_ext >&5' @@ -8661,7 +7212,7 @@ ac_link='$FC -o conftest$ac_exeext $FCFLAGS $LDFLAGS $ac_fcflags_srcext conftest ac_compiler_gnu=$ac_cv_fc_compiler_gnu ac_ext='f90'; - cat >conftest.$ac_ext <<_ACEOF + cat > conftest.$ac_ext <<_ACEOF program test_move_alloc integer, allocatable :: a(:), b(:) allocate(a(3)) @@ -8670,43 +7221,19 @@ ac_compiler_gnu=$ac_cv_fc_compiler_gnu print *, b end program test_move_alloc _ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_fc_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - { $as_echo "$as_me:$LINENO: result: yes" >&5 +if ac_fn_fc_try_compile "$LINENO"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } : else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - { $as_echo "$as_me:$LINENO: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } echo "configure: failed program was:" >&5 cat conftest.$ac_ext >&5 - { { $as_echo "$as_me:$LINENO: error: Sorry, cannot build PSBLAS without support for MOVE_ALLOC. - Please get a Fortran compiler that supports it, e.g. GNU Fortran 4.8." >&5 -$as_echo "$as_me: error: Sorry, cannot build PSBLAS without support for MOVE_ALLOC. - Please get a Fortran compiler that supports it, e.g. GNU Fortran 4.8." >&2;} - { (exit 1); exit 1; }; } + as_fn_error $? "Sorry, cannot build PSBLAS without support for MOVE_ALLOC. + Please get a Fortran compiler that supports it, e.g. GNU Fortran 4.8." "$LINENO" 5 fi - rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_ext=c ac_cpp='$CPP $CPPFLAGS' @@ -8716,7 +7243,7 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu -{ $as_echo "$as_me:$LINENO: checking support for Fortran ISO_C_BINDING module" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking support for Fortran ISO_C_BINDING module" >&5 $as_echo_n "checking support for Fortran ISO_C_BINDING module... " >&6; } ac_ext=${ac_fc_srcext-f} ac_compile='$FC -c $FCFLAGS $ac_fcflags_srcext conftest.$ac_ext >&5' @@ -8726,49 +7253,25 @@ ac_compiler_gnu=$ac_cv_fc_compiler_gnu ac_exeext='' ac_ext='f90' ac_fc=${MPIFC-$FC}; - cat >conftest.$ac_ext <<_ACEOF + cat > conftest.$ac_ext <<_ACEOF program conftest use iso_c_binding end program conftest _ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_fc_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - { $as_echo "$as_me:$LINENO: result: yes" >&5 +if ac_fn_fc_try_compile "$LINENO"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } : else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - { $as_echo "$as_me:$LINENO: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } echo "configure: failed program was:" >&5 cat conftest.$ac_ext >&5 - { { $as_echo "$as_me:$LINENO: error: Sorry, cannot build PSBLAS without support for ISO_C_BINDING. - Please get a Fortran compiler that supports it, e.g. GNU Fortran 4.8." >&5 -$as_echo "$as_me: error: Sorry, cannot build PSBLAS without support for ISO_C_BINDING. - Please get a Fortran compiler that supports it, e.g. GNU Fortran 4.8." >&2;} - { (exit 1); exit 1; }; } + as_fn_error $? "Sorry, cannot build PSBLAS without support for ISO_C_BINDING. + Please get a Fortran compiler that supports it, e.g. GNU Fortran 4.8." "$LINENO" 5 fi - rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_ext=c ac_cpp='$CPP $CPPFLAGS' @@ -8782,7 +7285,7 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu # Optional features # -{ $as_echo "$as_me:$LINENO: checking support for Fortran VOLATILE" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking support for Fortran VOLATILE" >&5 $as_echo_n "checking support for Fortran VOLATILE... " >&6; } ac_ext=${ac_fc_srcext-f} ac_compile='$FC -c $FCFLAGS $ac_fcflags_srcext conftest.$ac_ext >&5' @@ -8792,44 +7295,23 @@ ac_compiler_gnu=$ac_cv_fc_compiler_gnu ac_exeext='' ac_ext='F90' ac_fc=${MPIFC-$FC}; - cat >conftest.$ac_ext <<_ACEOF + cat > conftest.$ac_ext <<_ACEOF program conftest integer, volatile :: i, j end program conftest _ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_fc_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - { $as_echo "$as_me:$LINENO: result: yes" >&5 +if ac_fn_fc_try_compile "$LINENO"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } FDEFINES="$psblas_cv_define_prepend-DHAVE_VOLATILE $FDEFINES" else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - { $as_echo "$as_me:$LINENO: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } echo "configure: failed program was:" >&5 cat conftest.$ac_ext >&5 fi - rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_ext=c ac_cpp='$CPP $CPPFLAGS' @@ -8839,7 +7321,7 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu -{ $as_echo "$as_me:$LINENO: checking test GENERIC interfaces" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking test GENERIC interfaces" >&5 $as_echo_n "checking test GENERIC interfaces... " >&6; } ac_ext=${ac_fc_srcext-f} ac_compile='$FC -c $FCFLAGS $ac_fcflags_srcext conftest.$ac_ext >&5' @@ -8849,55 +7331,34 @@ ac_compiler_gnu=$ac_cv_fc_compiler_gnu ac_exeext='' ac_ext='F90' ac_fc=${MPIFC-$FC}; - cat >conftest.$ac_ext <<_ACEOF + cat > conftest.$ac_ext <<_ACEOF module conftest - interface foo - subroutine i_sub_foo(v) - integer, intent(inout) :: v(:) - end subroutine i_sub_foo - end interface foo - - interface bar - procedure i_sub_foo - end interface bar - -end module conftest -_ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_fc_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - { $as_echo "$as_me:$LINENO: result: yes" >&5 + interface foo + subroutine i_sub_foo(v) + integer, intent(inout) :: v(:) + end subroutine i_sub_foo + end interface foo + + interface bar + procedure i_sub_foo + end interface bar + +end module conftest +_ACEOF +if ac_fn_fc_try_compile "$LINENO"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } : else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - { $as_echo "$as_me:$LINENO: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } echo "configure: failed program was:" >&5 cat conftest.$ac_ext >&5 FDEFINES="$psblas_cv_define_prepend-DHAVE_BUGGY_GENERICS $FDEFINES" fi - rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_ext=c ac_cpp='$CPP $CPPFLAGS' @@ -8907,7 +7368,7 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu -{ $as_echo "$as_me:$LINENO: checking support for Fortran FLUSH statement" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking support for Fortran FLUSH statement" >&5 $as_echo_n "checking support for Fortran FLUSH statement... " >&6; } ac_ext=${ac_fc_srcext-f} ac_compile='$FC -c $FCFLAGS $ac_fcflags_srcext conftest.$ac_ext >&5' @@ -8917,7 +7378,7 @@ ac_compiler_gnu=$ac_cv_fc_compiler_gnu ac_exeext='' ac_ext='f90' ac_fc=${MPIFC-$FC}; - cat >conftest.$ac_ext <<_ACEOF + cat > conftest.$ac_ext <<_ACEOF program conftest integer :: iunit=10 @@ -8927,38 +7388,17 @@ program conftest close(10) end program conftest _ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_fc_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - { $as_echo "$as_me:$LINENO: result: yes" >&5 +if ac_fn_fc_try_compile "$LINENO"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } FDEFINES="$psblas_cv_define_prepend-DHAVE_FLUSH_STMT $FDEFINES" else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - { $as_echo "$as_me:$LINENO: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } echo "configure: failed program was:" >&5 cat conftest.$ac_ext >&5 fi - rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_ext=c ac_cpp='$CPP $CPPFLAGS' @@ -8968,7 +7408,7 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu -{ $as_echo "$as_me:$LINENO: checking support for ISO_FORTRAN_ENV" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking support for ISO_FORTRAN_ENV" >&5 $as_echo_n "checking support for ISO_FORTRAN_ENV... " >&6; } ac_ext=${ac_fc_srcext-f} ac_compile='$FC -c $FCFLAGS $ac_fcflags_srcext conftest.$ac_ext >&5' @@ -8978,44 +7418,23 @@ ac_compiler_gnu=$ac_cv_fc_compiler_gnu ac_exeext='' ac_ext='f90' ac_fc=${MPIFC-$FC}; - cat >conftest.$ac_ext <<_ACEOF + cat > conftest.$ac_ext <<_ACEOF program test use iso_fortran_env end program test _ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_fc_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - { $as_echo "$as_me:$LINENO: result: yes" >&5 +if ac_fn_fc_try_compile "$LINENO"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } FDEFINES="$psblas_cv_define_prepend-DHAVE_ISO_FORTRAN_ENV $FDEFINES" else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - { $as_echo "$as_me:$LINENO: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } echo "configure: failed program was:" >&5 cat conftest.$ac_ext >&5 fi - rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_ext=c ac_cpp='$CPP $CPPFLAGS' @@ -9025,7 +7444,7 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu -{ $as_echo "$as_me:$LINENO: checking support for Fortran FINAL" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking support for Fortran FINAL" >&5 $as_echo_n "checking support for Fortran FINAL... " >&6; } ac_ext=${ac_fc_srcext-f} ac_compile='$FC -c $FCFLAGS $ac_fcflags_srcext conftest.$ac_ext >&5' @@ -9035,7 +7454,7 @@ ac_compiler_gnu=$ac_cv_fc_compiler_gnu ac_exeext='' ac_ext='f90' ac_fc=${MPIFC-$FC}; - cat >conftest.$ac_ext <<_ACEOF + cat > conftest.$ac_ext <<_ACEOF module conftest_mod type foo @@ -9056,38 +7475,17 @@ program conftest type(foo) :: foovar end program conftest _ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_fc_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - { $as_echo "$as_me:$LINENO: result: yes" >&5 +if ac_fn_fc_try_compile "$LINENO"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } FDEFINES="$psblas_cv_define_prepend-DHAVE_FINAL $FDEFINES" else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - { $as_echo "$as_me:$LINENO: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } echo "configure: failed program was:" >&5 cat conftest.$ac_ext >&5 fi - rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_ext=c ac_cpp='$CPP $CPPFLAGS' @@ -9097,7 +7495,7 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu -{ $as_echo "$as_me:$LINENO: checking support for Fortran SAME_TYPE_AS" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking support for Fortran SAME_TYPE_AS" >&5 $as_echo_n "checking support for Fortran SAME_TYPE_AS... " >&6; } ac_ext=${ac_fc_srcext-f} ac_compile='$FC -c $FCFLAGS $ac_fcflags_srcext conftest.$ac_ext >&5' @@ -9107,7 +7505,7 @@ ac_compiler_gnu=$ac_cv_fc_compiler_gnu ac_exeext='' ac_ext='f90' ac_fc=${MPIFC-$FC}; - cat >conftest.$ac_ext <<_ACEOF + cat > conftest.$ac_ext <<_ACEOF program stt type foo @@ -9124,38 +7522,17 @@ program stt write(*,*) 'nfv2 == nfv1? ', same_type_as(nfv2,nfv1) end program stt _ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_fc_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - { $as_echo "$as_me:$LINENO: result: yes" >&5 +if ac_fn_fc_try_compile "$LINENO"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } FDEFINES="$psblas_cv_define_prepend-DHAVE_SAME_TYPE_AS $FDEFINES" else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - { $as_echo "$as_me:$LINENO: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } echo "configure: failed program was:" >&5 cat conftest.$ac_ext >&5 fi - rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_ext=c ac_cpp='$CPP $CPPFLAGS' @@ -9165,7 +7542,7 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu -{ $as_echo "$as_me:$LINENO: checking support for Fortran EXTENDS_TYPE_OF" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking support for Fortran EXTENDS_TYPE_OF" >&5 $as_echo_n "checking support for Fortran EXTENDS_TYPE_OF... " >&6; } ac_ext=${ac_fc_srcext-f} ac_compile='$FC -c $FCFLAGS $ac_fcflags_srcext conftest.$ac_ext >&5' @@ -9175,7 +7552,7 @@ ac_compiler_gnu=$ac_cv_fc_compiler_gnu ac_exeext='' ac_ext='f90' ac_fc=${MPIFC-$FC}; - cat >conftest.$ac_ext <<_ACEOF + cat > conftest.$ac_ext <<_ACEOF program xtt type foo @@ -9190,38 +7567,17 @@ program xtt write(*,*) 'nfv1 extends foov? ', extends_type_of(nfv1,foov) end program xtt _ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_fc_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - { $as_echo "$as_me:$LINENO: result: yes" >&5 +if ac_fn_fc_try_compile "$LINENO"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } FDEFINES="$psblas_cv_define_prepend-DHAVE_EXTENDS_TYPE_OF $FDEFINES" else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - { $as_echo "$as_me:$LINENO: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } echo "configure: failed program was:" >&5 cat conftest.$ac_ext >&5 fi - rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_ext=c ac_cpp='$CPP $CPPFLAGS' @@ -9231,7 +7587,7 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu -{ $as_echo "$as_me:$LINENO: checking support for Fortran MOLD= allocation" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking support for Fortran MOLD= allocation" >&5 $as_echo_n "checking support for Fortran MOLD= allocation... " >&6; } ac_ext=${ac_fc_srcext-f} ac_compile='$FC -c $FCFLAGS $ac_fcflags_srcext conftest.$ac_ext >&5' @@ -9241,7 +7597,7 @@ ac_compiler_gnu=$ac_cv_fc_compiler_gnu ac_exeext='' ac_ext='f90' ac_fc=${MPIFC-$FC}; - cat >conftest.$ac_ext <<_ACEOF + cat > conftest.$ac_ext <<_ACEOF program xtt type foo @@ -9258,38 +7614,17 @@ program xtt end program xtt _ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_fc_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - { $as_echo "$as_me:$LINENO: result: yes" >&5 +if ac_fn_fc_try_compile "$LINENO"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } FDEFINES="$psblas_cv_define_prepend-DHAVE_MOLD $FDEFINES" else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - { $as_echo "$as_me:$LINENO: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } echo "configure: failed program was:" >&5 cat conftest.$ac_ext >&5 fi - rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_ext=c ac_cpp='$CPP $CPPFLAGS' @@ -9352,7 +7687,7 @@ pac_blas_ok=no # Check whether --with-blas was given. -if test "${with_blas+set}" = set; then +if test "${with_blas+set}" = set; then : withval=$with_blas; fi @@ -9364,7 +7699,7 @@ case $with_blas in esac # Check whether --with-blasdir was given. -if test "${with_blasdir+set}" = set; then +if test "${with_blasdir+set}" = set; then : withval=$with_blasdir; fi @@ -9390,46 +7725,21 @@ ac_compiler_gnu=$ac_cv_fc_compiler_gnu if test $pac_blas_ok = no; then if test "x$BLAS_LIBS" != x; then save_LIBS="$LIBS"; LIBS="$BLAS_LIBS $BLAS_LIBDIR $LIBS" - { $as_echo "$as_me:$LINENO: checking for sgemm in $BLAS_LIBS" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sgemm in $BLAS_LIBS" >&5 $as_echo_n "checking for sgemm in $BLAS_LIBS... " >&6; } - cat >conftest.$ac_ext <<_ACEOF + cat > conftest.$ac_ext <<_ACEOF program main call sgemm end _ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_fc_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && { - test "$cross_compiling" = yes || - $as_test_x conftest$ac_exeext - }; then +if ac_fn_fc_try_link "$LINENO"; then : pac_blas_ok=yes else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - BLAS_LIBS="" + BLAS_LIBS="" fi - -rm -rf conftest.dSYM -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext - { $as_echo "$as_me:$LINENO: result: $pac_blas_ok" >&5 +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $pac_blas_ok" >&5 $as_echo "$pac_blas_ok" >&6; } LIBS="$save_LIBS" fi @@ -9444,18 +7754,14 @@ ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu - { $as_echo "$as_me:$LINENO: checking for ATL_xerbla in -latlas" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ATL_xerbla in -latlas" >&5 $as_echo_n "checking for ATL_xerbla in -latlas... " >&6; } -if test "${ac_cv_lib_atlas_ATL_xerbla+set}" = set; then +if ${ac_cv_lib_atlas_ATL_xerbla+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-latlas $LIBS" -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF +cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. @@ -9473,115 +7779,61 @@ return ATL_xerbla (); return 0; } _ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && { - test "$cross_compiling" = yes || - $as_test_x conftest$ac_exeext - }; then +if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_atlas_ATL_xerbla=yes else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_lib_atlas_ATL_xerbla=no + ac_cv_lib_atlas_ATL_xerbla=no fi - -rm -rf conftest.dSYM -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_atlas_ATL_xerbla" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_atlas_ATL_xerbla" >&5 $as_echo "$ac_cv_lib_atlas_ATL_xerbla" >&6; } -if test "x$ac_cv_lib_atlas_ATL_xerbla" = x""yes; then +if test "x$ac_cv_lib_atlas_ATL_xerbla" = xyes; then : ac_ext=${ac_fc_srcext-f} ac_compile='$FC -c $FCFLAGS $ac_fcflags_srcext conftest.$ac_ext >&5' ac_link='$FC -o conftest$ac_exeext $FCFLAGS $LDFLAGS $ac_fcflags_srcext conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_fc_compiler_gnu - { $as_echo "$as_me:$LINENO: checking for sgemm in -lf77blas" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sgemm in -lf77blas" >&5 $as_echo_n "checking for sgemm in -lf77blas... " >&6; } -if test "${ac_cv_lib_f77blas_sgemm+set}" = set; then +if ${ac_cv_lib_f77blas_sgemm+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lf77blas -latlas $LIBS" -cat >conftest.$ac_ext <<_ACEOF +cat > conftest.$ac_ext <<_ACEOF program main call sgemm end _ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_fc_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && { - test "$cross_compiling" = yes || - $as_test_x conftest$ac_exeext - }; then +if ac_fn_fc_try_link "$LINENO"; then : ac_cv_lib_f77blas_sgemm=yes else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_lib_f77blas_sgemm=no + ac_cv_lib_f77blas_sgemm=no fi - -rm -rf conftest.dSYM -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_f77blas_sgemm" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_f77blas_sgemm" >&5 $as_echo "$ac_cv_lib_f77blas_sgemm" >&6; } -if test "x$ac_cv_lib_f77blas_sgemm" = x""yes; then +if test "x$ac_cv_lib_f77blas_sgemm" = xyes; then : ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu - { $as_echo "$as_me:$LINENO: checking for cblas_dgemm in -lcblas" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for cblas_dgemm in -lcblas" >&5 $as_echo_n "checking for cblas_dgemm in -lcblas... " >&6; } -if test "${ac_cv_lib_cblas_cblas_dgemm+set}" = set; then +if ${ac_cv_lib_cblas_cblas_dgemm+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lcblas -lf77blas -latlas $LIBS" -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF +cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. @@ -9599,43 +7851,18 @@ return cblas_dgemm (); return 0; } _ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && { - test "$cross_compiling" = yes || - $as_test_x conftest$ac_exeext - }; then +if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_cblas_cblas_dgemm=yes else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_lib_cblas_cblas_dgemm=no + ac_cv_lib_cblas_cblas_dgemm=no fi - -rm -rf conftest.dSYM -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_cblas_cblas_dgemm" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_cblas_cblas_dgemm" >&5 $as_echo "$ac_cv_lib_cblas_cblas_dgemm" >&6; } -if test "x$ac_cv_lib_cblas_cblas_dgemm" = x""yes; then +if test "x$ac_cv_lib_cblas_cblas_dgemm" = xyes; then : pac_blas_ok=yes BLAS_LIBS="-lcblas -lf77blas -latlas $BLAS_LIBDIR" fi @@ -9653,18 +7880,14 @@ ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu - { $as_echo "$as_me:$LINENO: checking for ATL_xerbla in -lsatlas" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ATL_xerbla in -lsatlas" >&5 $as_echo_n "checking for ATL_xerbla in -lsatlas... " >&6; } -if test "${ac_cv_lib_satlas_ATL_xerbla+set}" = set; then +if ${ac_cv_lib_satlas_ATL_xerbla+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lsatlas $LIBS" -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF +cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. @@ -9680,117 +7903,63 @@ main () return ATL_xerbla (); ; return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && { - test "$cross_compiling" = yes || - $as_test_x conftest$ac_exeext - }; then +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_satlas_ATL_xerbla=yes else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_lib_satlas_ATL_xerbla=no + ac_cv_lib_satlas_ATL_xerbla=no fi - -rm -rf conftest.dSYM -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_satlas_ATL_xerbla" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_satlas_ATL_xerbla" >&5 $as_echo "$ac_cv_lib_satlas_ATL_xerbla" >&6; } -if test "x$ac_cv_lib_satlas_ATL_xerbla" = x""yes; then +if test "x$ac_cv_lib_satlas_ATL_xerbla" = xyes; then : ac_ext=${ac_fc_srcext-f} ac_compile='$FC -c $FCFLAGS $ac_fcflags_srcext conftest.$ac_ext >&5' ac_link='$FC -o conftest$ac_exeext $FCFLAGS $LDFLAGS $ac_fcflags_srcext conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_fc_compiler_gnu - { $as_echo "$as_me:$LINENO: checking for sgemm in -lsatlas" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sgemm in -lsatlas" >&5 $as_echo_n "checking for sgemm in -lsatlas... " >&6; } -if test "${ac_cv_lib_satlas_sgemm+set}" = set; then +if ${ac_cv_lib_satlas_sgemm+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lsatlas -lsatlas $LIBS" -cat >conftest.$ac_ext <<_ACEOF +cat > conftest.$ac_ext <<_ACEOF program main call sgemm end _ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_fc_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && { - test "$cross_compiling" = yes || - $as_test_x conftest$ac_exeext - }; then +if ac_fn_fc_try_link "$LINENO"; then : ac_cv_lib_satlas_sgemm=yes else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_lib_satlas_sgemm=no + ac_cv_lib_satlas_sgemm=no fi - -rm -rf conftest.dSYM -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_satlas_sgemm" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_satlas_sgemm" >&5 $as_echo "$ac_cv_lib_satlas_sgemm" >&6; } -if test "x$ac_cv_lib_satlas_sgemm" = x""yes; then +if test "x$ac_cv_lib_satlas_sgemm" = xyes; then : ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu - { $as_echo "$as_me:$LINENO: checking for cblas_dgemm in -lsatlas" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for cblas_dgemm in -lsatlas" >&5 $as_echo_n "checking for cblas_dgemm in -lsatlas... " >&6; } -if test "${ac_cv_lib_satlas_cblas_dgemm+set}" = set; then +if ${ac_cv_lib_satlas_cblas_dgemm+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lsatlas -lsatlas $LIBS" -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF +cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. @@ -9808,43 +7977,18 @@ return cblas_dgemm (); return 0; } _ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && { - test "$cross_compiling" = yes || - $as_test_x conftest$ac_exeext - }; then +if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_satlas_cblas_dgemm=yes else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_lib_satlas_cblas_dgemm=no + ac_cv_lib_satlas_cblas_dgemm=no fi - -rm -rf conftest.dSYM -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_satlas_cblas_dgemm" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_satlas_cblas_dgemm" >&5 $as_echo "$ac_cv_lib_satlas_cblas_dgemm" >&6; } -if test "x$ac_cv_lib_satlas_cblas_dgemm" = x""yes; then +if test "x$ac_cv_lib_satlas_cblas_dgemm" = xyes; then : pac_blas_ok=yes BLAS_LIBS="-lsatlas $BLAS_LIBDIR" fi @@ -9863,153 +8007,78 @@ ac_compile='$FC -c $FCFLAGS $ac_fcflags_srcext conftest.$ac_ext >&5' ac_link='$FC -o conftest$ac_exeext $FCFLAGS $LDFLAGS $ac_fcflags_srcext conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_fc_compiler_gnu - { $as_echo "$as_me:$LINENO: checking for sgemm in -lblas" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sgemm in -lblas" >&5 $as_echo_n "checking for sgemm in -lblas... " >&6; } -if test "${ac_cv_lib_blas_sgemm+set}" = set; then +if ${ac_cv_lib_blas_sgemm+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lblas $LIBS" -cat >conftest.$ac_ext <<_ACEOF +cat > conftest.$ac_ext <<_ACEOF program main call sgemm end _ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_fc_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && { - test "$cross_compiling" = yes || - $as_test_x conftest$ac_exeext - }; then +if ac_fn_fc_try_link "$LINENO"; then : ac_cv_lib_blas_sgemm=yes else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_lib_blas_sgemm=no + ac_cv_lib_blas_sgemm=no fi - -rm -rf conftest.dSYM -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_blas_sgemm" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_blas_sgemm" >&5 $as_echo "$ac_cv_lib_blas_sgemm" >&6; } -if test "x$ac_cv_lib_blas_sgemm" = x""yes; then - { $as_echo "$as_me:$LINENO: checking for dgemm in -ldgemm" >&5 +if test "x$ac_cv_lib_blas_sgemm" = xyes; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dgemm in -ldgemm" >&5 $as_echo_n "checking for dgemm in -ldgemm... " >&6; } -if test "${ac_cv_lib_dgemm_dgemm+set}" = set; then +if ${ac_cv_lib_dgemm_dgemm+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldgemm -lblas $LIBS" -cat >conftest.$ac_ext <<_ACEOF +cat > conftest.$ac_ext <<_ACEOF program main call dgemm end _ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_fc_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && { - test "$cross_compiling" = yes || - $as_test_x conftest$ac_exeext - }; then +if ac_fn_fc_try_link "$LINENO"; then : ac_cv_lib_dgemm_dgemm=yes else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_lib_dgemm_dgemm=no + ac_cv_lib_dgemm_dgemm=no fi - -rm -rf conftest.dSYM -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_dgemm_dgemm" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dgemm_dgemm" >&5 $as_echo "$ac_cv_lib_dgemm_dgemm" >&6; } -if test "x$ac_cv_lib_dgemm_dgemm" = x""yes; then - { $as_echo "$as_me:$LINENO: checking for sgemm in -lsgemm" >&5 +if test "x$ac_cv_lib_dgemm_dgemm" = xyes; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sgemm in -lsgemm" >&5 $as_echo_n "checking for sgemm in -lsgemm... " >&6; } -if test "${ac_cv_lib_sgemm_sgemm+set}" = set; then +if ${ac_cv_lib_sgemm_sgemm+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lsgemm -lblas $LIBS" -cat >conftest.$ac_ext <<_ACEOF +cat > conftest.$ac_ext <<_ACEOF program main call sgemm end _ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_fc_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && { - test "$cross_compiling" = yes || - $as_test_x conftest$ac_exeext - }; then +if ac_fn_fc_try_link "$LINENO"; then : ac_cv_lib_sgemm_sgemm=yes else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_lib_sgemm_sgemm=no + ac_cv_lib_sgemm_sgemm=no fi - -rm -rf conftest.dSYM -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_sgemm_sgemm" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_sgemm_sgemm" >&5 $as_echo "$ac_cv_lib_sgemm_sgemm" >&6; } -if test "x$ac_cv_lib_sgemm_sgemm" = x""yes; then +if test "x$ac_cv_lib_sgemm_sgemm" = xyes; then : pac_blas_ok=yes; BLAS_LIBS="-lsgemm -ldgemm -lblas $BLAS_LIBDIR" fi @@ -10027,110 +8096,60 @@ ac_compile='$FC -c $FCFLAGS $ac_fcflags_srcext conftest.$ac_ext >&5' ac_link='$FC -o conftest$ac_exeext $FCFLAGS $LDFLAGS $ac_fcflags_srcext conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_fc_compiler_gnu - { $as_echo "$as_me:$LINENO: checking for sgemm in -lopenblas" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sgemm in -lopenblas" >&5 $as_echo_n "checking for sgemm in -lopenblas... " >&6; } -if test "${ac_cv_lib_openblas_sgemm+set}" = set; then +if ${ac_cv_lib_openblas_sgemm+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lopenblas $LIBS" -cat >conftest.$ac_ext <<_ACEOF +cat > conftest.$ac_ext <<_ACEOF program main call sgemm end _ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_fc_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && { - test "$cross_compiling" = yes || - $as_test_x conftest$ac_exeext - }; then +if ac_fn_fc_try_link "$LINENO"; then : ac_cv_lib_openblas_sgemm=yes else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_lib_openblas_sgemm=no + ac_cv_lib_openblas_sgemm=no fi - -rm -rf conftest.dSYM -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_openblas_sgemm" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_openblas_sgemm" >&5 $as_echo "$ac_cv_lib_openblas_sgemm" >&6; } -if test "x$ac_cv_lib_openblas_sgemm" = x""yes; then +if test "x$ac_cv_lib_openblas_sgemm" = xyes; then : pac_blas_ok=yes;BLAS_LIBS="-lopenblas $BLAS_LIBDIR" fi fi # BLAS in Alpha CXML library? if test $pac_blas_ok = no; then - { $as_echo "$as_me:$LINENO: checking for sgemm in -lcxml" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sgemm in -lcxml" >&5 $as_echo_n "checking for sgemm in -lcxml... " >&6; } -if test "${ac_cv_lib_cxml_sgemm+set}" = set; then +if ${ac_cv_lib_cxml_sgemm+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lcxml $LIBS" -cat >conftest.$ac_ext <<_ACEOF +cat > conftest.$ac_ext <<_ACEOF program main call sgemm end _ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_fc_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && { - test "$cross_compiling" = yes || - $as_test_x conftest$ac_exeext - }; then +if ac_fn_fc_try_link "$LINENO"; then : ac_cv_lib_cxml_sgemm=yes else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_lib_cxml_sgemm=no + ac_cv_lib_cxml_sgemm=no fi - -rm -rf conftest.dSYM -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_cxml_sgemm" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_cxml_sgemm" >&5 $as_echo "$ac_cv_lib_cxml_sgemm" >&6; } -if test "x$ac_cv_lib_cxml_sgemm" = x""yes; then +if test "x$ac_cv_lib_cxml_sgemm" = xyes; then : pac_blas_ok=yes;BLAS_LIBS="-lcxml $BLAS_LIBDIR" fi @@ -10138,55 +8157,30 @@ fi # BLAS in Alpha DXML library? (now called CXML, see above) if test $pac_blas_ok = no; then - { $as_echo "$as_me:$LINENO: checking for sgemm in -ldxml" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sgemm in -ldxml" >&5 $as_echo_n "checking for sgemm in -ldxml... " >&6; } -if test "${ac_cv_lib_dxml_sgemm+set}" = set; then +if ${ac_cv_lib_dxml_sgemm+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldxml $LIBS" -cat >conftest.$ac_ext <<_ACEOF +cat > conftest.$ac_ext <<_ACEOF program main call sgemm end _ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_fc_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && { - test "$cross_compiling" = yes || - $as_test_x conftest$ac_exeext - }; then +if ac_fn_fc_try_link "$LINENO"; then : ac_cv_lib_dxml_sgemm=yes else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_lib_dxml_sgemm=no + ac_cv_lib_dxml_sgemm=no fi - -rm -rf conftest.dSYM -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_dxml_sgemm" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dxml_sgemm" >&5 $as_echo "$ac_cv_lib_dxml_sgemm" >&6; } -if test "x$ac_cv_lib_dxml_sgemm" = x""yes; then +if test "x$ac_cv_lib_dxml_sgemm" = xyes; then : pac_blas_ok=yes;BLAS_LIBS="-ldxml $BLAS_LIBDIR" fi @@ -10196,104 +8190,54 @@ fi # BLAS in Sun Performance library? if test $pac_blas_ok = no; then if test "x$GCC" != xyes; then # only works with Sun CC - { $as_echo "$as_me:$LINENO: checking for acosp in -lsunmath" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for acosp in -lsunmath" >&5 $as_echo_n "checking for acosp in -lsunmath... " >&6; } -if test "${ac_cv_lib_sunmath_acosp+set}" = set; then +if ${ac_cv_lib_sunmath_acosp+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lsunmath $LIBS" -cat >conftest.$ac_ext <<_ACEOF +cat > conftest.$ac_ext <<_ACEOF program main call acosp end _ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_fc_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && { - test "$cross_compiling" = yes || - $as_test_x conftest$ac_exeext - }; then +if ac_fn_fc_try_link "$LINENO"; then : ac_cv_lib_sunmath_acosp=yes else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_lib_sunmath_acosp=no + ac_cv_lib_sunmath_acosp=no fi - -rm -rf conftest.dSYM -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_sunmath_acosp" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_sunmath_acosp" >&5 $as_echo "$ac_cv_lib_sunmath_acosp" >&6; } -if test "x$ac_cv_lib_sunmath_acosp" = x""yes; then - { $as_echo "$as_me:$LINENO: checking for sgemm in -lsunperf" >&5 +if test "x$ac_cv_lib_sunmath_acosp" = xyes; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sgemm in -lsunperf" >&5 $as_echo_n "checking for sgemm in -lsunperf... " >&6; } -if test "${ac_cv_lib_sunperf_sgemm+set}" = set; then +if ${ac_cv_lib_sunperf_sgemm+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lsunperf -lsunmath $LIBS" -cat >conftest.$ac_ext <<_ACEOF +cat > conftest.$ac_ext <<_ACEOF program main call sgemm end _ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_fc_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && { - test "$cross_compiling" = yes || - $as_test_x conftest$ac_exeext - }; then +if ac_fn_fc_try_link "$LINENO"; then : ac_cv_lib_sunperf_sgemm=yes else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_lib_sunperf_sgemm=no + ac_cv_lib_sunperf_sgemm=no fi - -rm -rf conftest.dSYM -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_sunperf_sgemm" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_sunperf_sgemm" >&5 $as_echo "$ac_cv_lib_sunperf_sgemm" >&6; } -if test "x$ac_cv_lib_sunperf_sgemm" = x""yes; then +if test "x$ac_cv_lib_sunperf_sgemm" = xyes; then : BLAS_LIBS="-xlic_lib=sunperf -lsunmath $BLAS_LIBDIR" pac_blas_ok=yes fi @@ -10301,60 +8245,35 @@ fi fi - fi -fi - -# BLAS in SCSL library? (SGI/Cray Scientific Library) -if test $pac_blas_ok = no; then - { $as_echo "$as_me:$LINENO: checking for sgemm in -lscs" >&5 -$as_echo_n "checking for sgemm in -lscs... " >&6; } -if test "${ac_cv_lib_scs_sgemm+set}" = set; then - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lscs $LIBS" -cat >conftest.$ac_ext <<_ACEOF - program main - call sgemm - end -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_fc_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && { - test "$cross_compiling" = yes || - $as_test_x conftest$ac_exeext - }; then - ac_cv_lib_scs_sgemm=yes -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_lib_scs_sgemm=no + fi fi -rm -rf conftest.dSYM -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext +# BLAS in SCSL library? (SGI/Cray Scientific Library) +if test $pac_blas_ok = no; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sgemm in -lscs" >&5 +$as_echo_n "checking for sgemm in -lscs... " >&6; } +if ${ac_cv_lib_scs_sgemm+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lscs $LIBS" +cat > conftest.$ac_ext <<_ACEOF + program main + call sgemm + end +_ACEOF +if ac_fn_fc_try_link "$LINENO"; then : + ac_cv_lib_scs_sgemm=yes +else + ac_cv_lib_scs_sgemm=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_scs_sgemm" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_scs_sgemm" >&5 $as_echo "$ac_cv_lib_scs_sgemm" >&6; } -if test "x$ac_cv_lib_scs_sgemm" = x""yes; then +if test "x$ac_cv_lib_scs_sgemm" = xyes; then : pac_blas_ok=yes; BLAS_LIBS="-lscs $BLAS_LIBDIR" fi @@ -10363,59 +8282,31 @@ fi # BLAS in SGIMATH library? if test $pac_blas_ok = no; then as_ac_Lib=`$as_echo "ac_cv_lib_complib.sgimath_$sgemm" | $as_tr_sh` -{ $as_echo "$as_me:$LINENO: checking for $sgemm in -lcomplib.sgimath" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $sgemm in -lcomplib.sgimath" >&5 $as_echo_n "checking for $sgemm in -lcomplib.sgimath... " >&6; } -if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then +if eval \${$as_ac_Lib+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lcomplib.sgimath $LIBS" -cat >conftest.$ac_ext <<_ACEOF +cat > conftest.$ac_ext <<_ACEOF program main call $sgemm end _ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_fc_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && { - test "$cross_compiling" = yes || - $as_test_x conftest$ac_exeext - }; then +if ac_fn_fc_try_link "$LINENO"; then : eval "$as_ac_Lib=yes" else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - eval "$as_ac_Lib=no" + eval "$as_ac_Lib=no" fi - -rm -rf conftest.dSYM -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -ac_res=`eval 'as_val=${'$as_ac_Lib'} - $as_echo "$as_val"'` - { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +eval ac_res=\$$as_ac_Lib + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } -as_val=`eval 'as_val=${'$as_ac_Lib'} - $as_echo "$as_val"'` - if test "x$as_val" = x""yes; then +if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then : pac_blas_ok=yes; BLAS_LIBS="-lcomplib.sgimath $BLAS_LIBDIR" fi @@ -10424,108 +8315,55 @@ fi # BLAS in IBM ESSL library? (requires generic BLAS lib, too) if test $pac_blas_ok = no; then as_ac_Lib=`$as_echo "ac_cv_lib_blas_$sgemm" | $as_tr_sh` -{ $as_echo "$as_me:$LINENO: checking for $sgemm in -lblas" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $sgemm in -lblas" >&5 $as_echo_n "checking for $sgemm in -lblas... " >&6; } -if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then +if eval \${$as_ac_Lib+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lblas $LIBS" -cat >conftest.$ac_ext <<_ACEOF +cat > conftest.$ac_ext <<_ACEOF program main call $sgemm end _ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_fc_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && { - test "$cross_compiling" = yes || - $as_test_x conftest$ac_exeext - }; then +if ac_fn_fc_try_link "$LINENO"; then : eval "$as_ac_Lib=yes" else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - eval "$as_ac_Lib=no" + eval "$as_ac_Lib=no" fi - -rm -rf conftest.dSYM -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -ac_res=`eval 'as_val=${'$as_ac_Lib'} - $as_echo "$as_val"'` - { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +eval ac_res=\$$as_ac_Lib + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } -as_val=`eval 'as_val=${'$as_ac_Lib'} - $as_echo "$as_val"'` - if test "x$as_val" = x""yes; then - { $as_echo "$as_me:$LINENO: checking for sgemm in -lessl" >&5 +if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sgemm in -lessl" >&5 $as_echo_n "checking for sgemm in -lessl... " >&6; } -if test "${ac_cv_lib_essl_sgemm+set}" = set; then +if ${ac_cv_lib_essl_sgemm+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lessl -lblas $FLIBS $LIBS" -cat >conftest.$ac_ext <<_ACEOF +cat > conftest.$ac_ext <<_ACEOF program main call sgemm end _ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_fc_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && { - test "$cross_compiling" = yes || - $as_test_x conftest$ac_exeext - }; then +if ac_fn_fc_try_link "$LINENO"; then : ac_cv_lib_essl_sgemm=yes else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_lib_essl_sgemm=no + ac_cv_lib_essl_sgemm=no fi - -rm -rf conftest.dSYM -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_essl_sgemm" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_essl_sgemm" >&5 $as_echo "$ac_cv_lib_essl_sgemm" >&6; } -if test "x$ac_cv_lib_essl_sgemm" = x""yes; then +if test "x$ac_cv_lib_essl_sgemm" = xyes; then : pac_blas_ok=yes; BLAS_LIBS="-lessl -lblas $BLAS_LIBDIR" fi @@ -10539,56 +8377,30 @@ ac_compile='$FC -c $FCFLAGS $ac_fcflags_srcext conftest.$ac_ext >&5' ac_link='$FC -o conftest$ac_exeext $FCFLAGS $LDFLAGS $ac_fcflags_srcext conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_fc_compiler_gnu - -{ $as_echo "$as_me:$LINENO: checking for sgemm in -lblas" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sgemm in -lblas" >&5 $as_echo_n "checking for sgemm in -lblas... " >&6; } -if test "${ac_cv_lib_blas_sgemm+set}" = set; then +if ${ac_cv_lib_blas_sgemm+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lblas $LIBS" -cat >conftest.$ac_ext <<_ACEOF +cat > conftest.$ac_ext <<_ACEOF program main call sgemm end _ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_fc_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && { - test "$cross_compiling" = yes || - $as_test_x conftest$ac_exeext - }; then +if ac_fn_fc_try_link "$LINENO"; then : ac_cv_lib_blas_sgemm=yes else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_lib_blas_sgemm=no + ac_cv_lib_blas_sgemm=no fi - -rm -rf conftest.dSYM -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_blas_sgemm" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_blas_sgemm" >&5 $as_echo "$ac_cv_lib_blas_sgemm" >&6; } -if test "x$ac_cv_lib_blas_sgemm" = x""yes; then +if test "x$ac_cv_lib_blas_sgemm" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_LIBBLAS 1 _ACEOF @@ -10603,43 +8415,18 @@ fi # BLAS linked to by default? (happens on some supercomputers) if test $pac_blas_ok = no; then - cat >conftest.$ac_ext <<_ACEOF + cat > conftest.$ac_ext <<_ACEOF program main call sgemm end _ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_fc_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && { - test "$cross_compiling" = yes || - $as_test_x conftest$ac_exeext - }; then +if ac_fn_fc_try_link "$LINENO"; then : pac_blas_ok=yes else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - BLAS_LIBS="" + BLAS_LIBS="" fi - -rm -rf conftest.dSYM -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext fi # Generic BLAS library? @@ -10649,55 +8436,30 @@ ac_compile='$FC -c $FCFLAGS $ac_fcflags_srcext conftest.$ac_ext >&5' ac_link='$FC -o conftest$ac_exeext $FCFLAGS $LDFLAGS $ac_fcflags_srcext conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_fc_compiler_gnu - { $as_echo "$as_me:$LINENO: checking for sgemm in -lblas" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sgemm in -lblas" >&5 $as_echo_n "checking for sgemm in -lblas... " >&6; } -if test "${ac_cv_lib_blas_sgemm+set}" = set; then +if ${ac_cv_lib_blas_sgemm+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lblas $LIBS" -cat >conftest.$ac_ext <<_ACEOF +cat > conftest.$ac_ext <<_ACEOF program main call sgemm end _ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_fc_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && { - test "$cross_compiling" = yes || - $as_test_x conftest$ac_exeext - }; then +if ac_fn_fc_try_link "$LINENO"; then : ac_cv_lib_blas_sgemm=yes else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_lib_blas_sgemm=no + ac_cv_lib_blas_sgemm=no fi - -rm -rf conftest.dSYM -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_blas_sgemm" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_blas_sgemm" >&5 $as_echo "$ac_cv_lib_blas_sgemm" >&6; } -if test "x$ac_cv_lib_blas_sgemm" = x""yes; then +if test "x$ac_cv_lib_blas_sgemm" = xyes; then : pac_blas_ok=yes; BLAS_LIBS="-lblas $BLAS_LIBDIR" fi @@ -10709,16 +8471,12 @@ LIBS="$pac_blas_save_LIBS" # Finally, execute ACTION-IF-FOUND/ACTION-IF-NOT-FOUND: if test x"$pac_blas_ok" = xyes; then -cat >>confdefs.h <<\_ACEOF -#define HAVE_BLAS 1 -_ACEOF +$as_echo "#define HAVE_BLAS 1" >>confdefs.h : else pac_blas_ok=no - { { $as_echo "$as_me:$LINENO: error: Cannot find BLAS library, specify a path using --with-blas=DIR/LIB (for example --with-blas=/usr/path/lib/libcxml.a)" >&5 -$as_echo "$as_me: error: Cannot find BLAS library, specify a path using --with-blas=DIR/LIB (for example --with-blas=/usr/path/lib/libcxml.a)" >&2;} - { (exit 1); exit 1; }; } + as_fn_error $? "Cannot find BLAS library, specify a path using --with-blas=DIR/LIB (for example --with-blas=/usr/path/lib/libcxml.a)" "$LINENO" 5 fi @@ -10727,7 +8485,7 @@ pac_lapack_ok=no # Check whether --with-lapack was given. -if test "${with_lapack+set}" = set; then +if test "${with_lapack+set}" = set; then : withval=$with_lapack; fi @@ -10749,7 +8507,7 @@ fi # First, check LAPACK_LIBS environment variable if test "x$LAPACK_LIBS" != x; then save_LIBS="$LIBS"; LIBS="$LAPACK_LIBS $BLAS_LIBS $LIBS $FLIBS" - { $as_echo "$as_me:$LINENO: checking for cheev in $LAPACK_LIBS" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for cheev in $LAPACK_LIBS" >&5 $as_echo_n "checking for cheev in $LAPACK_LIBS... " >&6; } ac_ext=${ac_fc_srcext-f} ac_compile='$FC -c $FCFLAGS $ac_fcflags_srcext conftest.$ac_ext >&5' @@ -10761,16 +8519,16 @@ ac_compiler_gnu=$ac_cv_fc_compiler_gnu call cheev end EOF - if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 (eval $ac_link) 2>&5 ac_status=$? - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && test -s conftest${ac_exeext}; then + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && test -s conftest${ac_exeext}; then pac_lapack_ok=yes - { $as_echo "$as_me:$LINENO: result: yes" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else - { $as_echo "$as_me:$LINENO: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } echo "configure: failed program was:" >&5 cat conftest.$ac_ext >&5 @@ -10791,7 +8549,7 @@ fi # LAPACK linked to by default? (is sometimes included in BLAS lib) if test $pac_lapack_ok = no; then save_LIBS="$LIBS"; LIBS="$LIBS $BLAS_LIBS $FLIBS" - { $as_echo "$as_me:$LINENO: checking for cheev in default libs" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for cheev in default libs" >&5 $as_echo_n "checking for cheev in default libs... " >&6; } ac_ext=${ac_fc_srcext-f} ac_compile='$FC -c $FCFLAGS $ac_fcflags_srcext conftest.$ac_ext >&5' @@ -10803,16 +8561,16 @@ ac_compiler_gnu=$ac_cv_fc_compiler_gnu call cheev end EOF - if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 (eval $ac_link) 2>&5 ac_status=$? - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && test -s conftest${ac_exeext}; then + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && test -s conftest${ac_exeext}; then pac_lapack_ok=yes - { $as_echo "$as_me:$LINENO: result: yes" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else - { $as_echo "$as_me:$LINENO: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } echo "configure: failed program was:" >&5 cat conftest.$ac_ext >&5 @@ -10837,59 +8595,31 @@ ac_link='$FC -o conftest$ac_exeext $FCFLAGS $LDFLAGS $ac_fcflags_srcext conftest ac_compiler_gnu=$ac_cv_fc_compiler_gnu as_ac_Lib=`$as_echo "ac_cv_lib_$lapack''_cheev" | $as_tr_sh` -{ $as_echo "$as_me:$LINENO: checking for cheev in -l$lapack" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for cheev in -l$lapack" >&5 $as_echo_n "checking for cheev in -l$lapack... " >&6; } -if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then +if eval \${$as_ac_Lib+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-l$lapack $FLIBS $LIBS" -cat >conftest.$ac_ext <<_ACEOF +cat > conftest.$ac_ext <<_ACEOF program main call cheev end _ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_fc_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && { - test "$cross_compiling" = yes || - $as_test_x conftest$ac_exeext - }; then +if ac_fn_fc_try_link "$LINENO"; then : eval "$as_ac_Lib=yes" else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - eval "$as_ac_Lib=no" + eval "$as_ac_Lib=no" fi - -rm -rf conftest.dSYM -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -ac_res=`eval 'as_val=${'$as_ac_Lib'} - $as_echo "$as_val"'` - { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +eval ac_res=\$$as_ac_Lib + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } -as_val=`eval 'as_val=${'$as_ac_Lib'} - $as_echo "$as_val"'` - if test "x$as_val" = x""yes; then +if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then : pac_lapack_ok=yes; LAPACK_LIBS="-l$lapack" fi @@ -10937,16 +8667,16 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu #fi -{ $as_echo "$as_me:$LINENO: checking for gnumake" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for gnumake" >&5 $as_echo_n "checking for gnumake... " >&6; } MAKE=${MAKE:-make} if $MAKE --version 2>&1 | grep -e"GNU Make" >/dev/null; then - { $as_echo "$as_me:$LINENO: result: yes" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } psblas_make_gnumake='yes' else - { $as_echo "$as_me:$LINENO: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } psblas_make_gnumake='no' fi @@ -10966,7 +8696,7 @@ fi # Check whether --with-rsb was given. -if test "${with_rsb+set}" = set; then +if test "${with_rsb+set}" = set; then : withval=$with_rsb; if test x"$withval" = xno; then want_rsb_libs= ; else if test x"$withval" = xyes ; then want_rsb_libs=yes ; else want_rsb_libs="$withval" ; fi ; fi else @@ -10991,7 +8721,7 @@ LIBS="$RSB_LIBS ${LIBS}" # Check whether --with-metis was given. -if test "${with_metis+set}" = set; then +if test "${with_metis+set}" = set; then : withval=$with_metis; psblas_cv_metis=$withval else psblas_cv_metis='-lmetis' @@ -10999,7 +8729,7 @@ fi # Check whether --with-metisdir was given. -if test "${with_metisdir+set}" = set; then +if test "${with_metisdir+set}" = set; then : withval=$with_metisdir; psblas_cv_metisdir=$withval else psblas_cv_metisdir='' @@ -11007,7 +8737,7 @@ fi # Check whether --with-metisincdir was given. -if test "${with_metisincdir+set}" = set; then +if test "${with_metisincdir+set}" = set; then : withval=$with_metisincdir; psblas_cv_metisincdir=$withval else psblas_cv_metisincdir='' @@ -11015,7 +8745,7 @@ fi # Check whether --with-metislibdir was given. -if test "${with_metislibdir+set}" = set; then +if test "${with_metislibdir+set}" = set; then : withval=$with_metislibdir; psblas_cv_metislibdir=$withval else psblas_cv_metislibdir='' @@ -11044,153 +8774,14 @@ if test "x$psblas_cv_metislibdir" != "x"; then LIBS="-L$psblas_cv_metislibdir $LIBS" METIS_LIBDIR="-L$psblas_cv_metislibdir" fi - -{ $as_echo "$as_me:$LINENO: metis dir $psblas_cv_metisdir" >&5 -$as_echo "$as_me: metis dir $psblas_cv_metisdir" >&6;} - - -for ac_header in limits.h metis.h -do -as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then - { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 -$as_echo_n "checking for $ac_header... " >&6; } -if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then - $as_echo_n "(cached) " >&6 -fi -ac_res=`eval 'as_val=${'$as_ac_Header'} - $as_echo "$as_val"'` - { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } -else - # Is the header compilable? -{ $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5 -$as_echo_n "checking $ac_header usability... " >&6; } -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -#include <$ac_header> -_ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - ac_header_compiler=yes -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_header_compiler=no -fi - -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 -$as_echo "$ac_header_compiler" >&6; } - -# Is the header present? -{ $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5 -$as_echo_n "checking $ac_header presence... " >&6; } -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include <$ac_header> -_ACEOF -if { (ac_try="$ac_cpp conftest.$ac_ext" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null && { - test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || - test ! -s conftest.err - }; then - ac_header_preproc=yes -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_header_preproc=no -fi - -rm -f conftest.err conftest.$ac_ext -{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 -$as_echo "$ac_header_preproc" >&6; } - -# So? What about this header? -case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in - yes:no: ) - { $as_echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 -$as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} - { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 -$as_echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} - ac_header_preproc=yes - ;; - no:yes:* ) - { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 -$as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} - { $as_echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 -$as_echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} - { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 -$as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} - { $as_echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 -$as_echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} - { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 -$as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} - { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 -$as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} - ( cat <<\_ASBOX -## ---------------------------------------------- ## -## Report this to salvatore.filippone@uniroma2.it ## -## ---------------------------------------------- ## -_ASBOX - ) | sed "s/^/$as_me: WARNING: /" >&2 - ;; -esac -{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 -$as_echo_n "checking for $ac_header... " >&6; } -if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then - $as_echo_n "(cached) " >&6 -else - eval "$as_ac_Header=\$ac_header_preproc" -fi -ac_res=`eval 'as_val=${'$as_ac_Header'} - $as_echo "$as_val"'` - { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } - -fi -as_val=`eval 'as_val=${'$as_ac_Header'} - $as_echo "$as_val"'` - if test "x$as_val" = x""yes; then + +{ $as_echo "$as_me:${as_lineno-$LINENO}: metis dir $psblas_cv_metisdir" >&5 +$as_echo "$as_me: metis dir $psblas_cv_metisdir" >&6;} +for ac_header in limits.h metis.h +do : + as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` +ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" +if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF @@ -11206,152 +8797,13 @@ if test "x$pac_metis_header_ok" == "xno" ; then METIS_INCLUDES="-I$psblas_cv_metisdir/include -I$psblas_cv_metisdir/Include " CPPFLAGS="$METIS_INCLUDES $SAVE_CPPFLAGS" - { $as_echo "$as_me:$LINENO: checking for metis_h in $METIS_INCLUDES" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for metis_h in $METIS_INCLUDES" >&5 $as_echo_n "checking for metis_h in $METIS_INCLUDES... " >&6; } - - -for ac_header in limits.h metis.h -do -as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then - { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 -$as_echo_n "checking for $ac_header... " >&6; } -if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then - $as_echo_n "(cached) " >&6 -fi -ac_res=`eval 'as_val=${'$as_ac_Header'} - $as_echo "$as_val"'` - { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } -else - # Is the header compilable? -{ $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5 -$as_echo_n "checking $ac_header usability... " >&6; } -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -#include <$ac_header> -_ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - ac_header_compiler=yes -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_header_compiler=no -fi - -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 -$as_echo "$ac_header_compiler" >&6; } - -# Is the header present? -{ $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5 -$as_echo_n "checking $ac_header presence... " >&6; } -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include <$ac_header> -_ACEOF -if { (ac_try="$ac_cpp conftest.$ac_ext" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null && { - test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || - test ! -s conftest.err - }; then - ac_header_preproc=yes -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_header_preproc=no -fi - -rm -f conftest.err conftest.$ac_ext -{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 -$as_echo "$ac_header_preproc" >&6; } - -# So? What about this header? -case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in - yes:no: ) - { $as_echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 -$as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} - { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 -$as_echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} - ac_header_preproc=yes - ;; - no:yes:* ) - { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 -$as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} - { $as_echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 -$as_echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} - { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 -$as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} - { $as_echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 -$as_echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} - { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 -$as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} - { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 -$as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} - ( cat <<\_ASBOX -## ---------------------------------------------- ## -## Report this to salvatore.filippone@uniroma2.it ## -## ---------------------------------------------- ## -_ASBOX - ) | sed "s/^/$as_me: WARNING: /" >&2 - ;; -esac -{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 -$as_echo_n "checking for $ac_header... " >&6; } -if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then - $as_echo_n "(cached) " >&6 -else - eval "$as_ac_Header=\$ac_header_preproc" -fi -ac_res=`eval 'as_val=${'$as_ac_Header'} - $as_echo "$as_val"'` - { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } - -fi -as_val=`eval 'as_val=${'$as_ac_Header'} - $as_echo "$as_val"'` - if test "x$as_val" = x""yes; then + for ac_header in limits.h metis.h +do : + as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` +ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" +if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF @@ -11367,150 +8819,11 @@ if test "x$pac_metis_header_ok" == "xno" ; then unset ac_cv_header_metis_h METIS_INCLUDES="-I$psblas_cv_metisdir/UFconfig -I$psblas_cv_metisdir/METIS/Include -I$psblas_cv_metisdir/METIS/Include" CPPFLAGS="$METIS_INCLUDES $SAVE_CPPFLAGS" - - -for ac_header in limits.h metis.h -do -as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then - { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 -$as_echo_n "checking for $ac_header... " >&6; } -if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then - $as_echo_n "(cached) " >&6 -fi -ac_res=`eval 'as_val=${'$as_ac_Header'} - $as_echo "$as_val"'` - { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } -else - # Is the header compilable? -{ $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5 -$as_echo_n "checking $ac_header usability... " >&6; } -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -#include <$ac_header> -_ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - ac_header_compiler=yes -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_header_compiler=no -fi - -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 -$as_echo "$ac_header_compiler" >&6; } - -# Is the header present? -{ $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5 -$as_echo_n "checking $ac_header presence... " >&6; } -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include <$ac_header> -_ACEOF -if { (ac_try="$ac_cpp conftest.$ac_ext" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null && { - test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || - test ! -s conftest.err - }; then - ac_header_preproc=yes -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_header_preproc=no -fi - -rm -f conftest.err conftest.$ac_ext -{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 -$as_echo "$ac_header_preproc" >&6; } - -# So? What about this header? -case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in - yes:no: ) - { $as_echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 -$as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} - { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 -$as_echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} - ac_header_preproc=yes - ;; - no:yes:* ) - { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 -$as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} - { $as_echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 -$as_echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} - { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 -$as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} - { $as_echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 -$as_echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} - { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 -$as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} - { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 -$as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} - ( cat <<\_ASBOX -## ---------------------------------------------- ## -## Report this to salvatore.filippone@uniroma2.it ## -## ---------------------------------------------- ## -_ASBOX - ) | sed "s/^/$as_me: WARNING: /" >&2 - ;; -esac -{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 -$as_echo_n "checking for $ac_header... " >&6; } -if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then - $as_echo_n "(cached) " >&6 -else - eval "$as_ac_Header=\$ac_header_preproc" -fi -ac_res=`eval 'as_val=${'$as_ac_Header'} - $as_echo "$as_val"'` - { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } - -fi -as_val=`eval 'as_val=${'$as_ac_Header'} - $as_echo "$as_val"'` - if test "x$as_val" = x""yes; then + for ac_header in limits.h metis.h +do : + as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` +ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" +if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF @@ -11528,76 +8841,9 @@ if test "x$pac_metis_header_ok" == "xyes" ; then psblas_cv_metis_includes="$METIS_INCLUDES" METIS_LIBS="$psblas_cv_metis $METIS_LIBDIR" LIBS="$METIS_LIBS -lm $LIBS"; - { $as_echo "$as_me:$LINENO: checking for METIS_PartGraphKway in $METIS_LIBS" >&5 -$as_echo_n "checking for METIS_PartGraphKway in $METIS_LIBS... " >&6; } - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char METIS_PartGraphKway (); -int -main () -{ -return METIS_PartGraphKway (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && { - test "$cross_compiling" = yes || - $as_test_x conftest$ac_exeext - }; then - psblas_cv_have_metis=yes;pac_metis_lib_ok=yes; -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - psblas_cv_have_metis=no;pac_metis_lib_ok=no; METIS_LIBS="" -fi - -rm -rf conftest.dSYM -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext - { $as_echo "$as_me:$LINENO: result: $pac_metis_lib_ok" >&5 -$as_echo "$pac_metis_lib_ok" >&6; } - if test "x$pac_metis_lib_ok" == "xno" ; then - METIS_LIBDIR="-L$psblas_cv_metisdir/Lib -L$psblas_cv_metisdir/lib" - METIS_LIBS="$psblas_cv_metis $METIS_LIBDIR" - LIBS="$METIS_LIBS -lm $SAVE_LIBS" - - { $as_echo "$as_me:$LINENO: checking for METIS_PartGraphKway in $METIS_LIBS" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for METIS_PartGraphKway in $METIS_LIBS" >&5 $as_echo_n "checking for METIS_PartGraphKway in $METIS_LIBS... " >&6; } - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. @@ -11615,52 +8861,23 @@ return METIS_PartGraphKway (); return 0; } _ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && { - test "$cross_compiling" = yes || - $as_test_x conftest$ac_exeext - }; then +if ac_fn_c_try_link "$LINENO"; then : psblas_cv_have_metis=yes;pac_metis_lib_ok=yes; else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - psblas_cv_have_metis=no;pac_metis_lib_ok=no; METIS_LIBS="" + psblas_cv_have_metis=no;pac_metis_lib_ok=no; METIS_LIBS="" fi - -rm -rf conftest.dSYM -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext - { $as_echo "$as_me:$LINENO: result: $pac_metis_lib_ok" >&5 +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $pac_metis_lib_ok" >&5 $as_echo "$pac_metis_lib_ok" >&6; } - fi if test "x$pac_metis_lib_ok" == "xno" ; then - METIS_LIBDIR="-L$psblas_cv_metisdir/METIS/Lib -L$psblas_cv_metisdir/METIS/Lib" + METIS_LIBDIR="-L$psblas_cv_metisdir/Lib -L$psblas_cv_metisdir/lib" METIS_LIBS="$psblas_cv_metis $METIS_LIBDIR" LIBS="$METIS_LIBS -lm $SAVE_LIBS" - { $as_echo "$as_me:$LINENO: checking for METIS_PartGraphKway in $METIS_LIBS" >&5 + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for METIS_PartGraphKway in $METIS_LIBS" >&5 $as_echo_n "checking for METIS_PartGraphKway in $METIS_LIBS... " >&6; } - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. @@ -11678,50 +8895,23 @@ return METIS_PartGraphKway (); return 0; } _ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && { - test "$cross_compiling" = yes || - $as_test_x conftest$ac_exeext - }; then +if ac_fn_c_try_link "$LINENO"; then : psblas_cv_have_metis=yes;pac_metis_lib_ok=yes; else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - psblas_cv_have_metis=no;pac_metis_lib_ok=no; METIS_LIBS="" + psblas_cv_have_metis=no;pac_metis_lib_ok=no; METIS_LIBS="" fi - -rm -rf conftest.dSYM -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext - { $as_echo "$as_me:$LINENO: result: $pac_metis_lib_ok" >&5 +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $pac_metis_lib_ok" >&5 $as_echo "$pac_metis_lib_ok" >&6; } fi -fi -if test "x$pac_metis_lib_ok" == "xyes" ; then - { $as_echo "$as_me:$LINENO: checking for METIS_SetDefaultOptions in $LIBS" >&5 -$as_echo_n "checking for METIS_SetDefaultOptions in $LIBS... " >&6; } - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF + if test "x$pac_metis_lib_ok" == "xno" ; then + METIS_LIBDIR="-L$psblas_cv_metisdir/METIS/Lib -L$psblas_cv_metisdir/METIS/Lib" + METIS_LIBS="$psblas_cv_metis $METIS_LIBDIR" + LIBS="$METIS_LIBS -lm $SAVE_LIBS" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for METIS_PartGraphKway in $METIS_LIBS" >&5 +$as_echo_n "checking for METIS_PartGraphKway in $METIS_LIBS... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. @@ -11730,540 +8920,154 @@ cat >>conftest.$ac_ext <<_ACEOF #ifdef __cplusplus extern "C" #endif -char METIS_SetDefaultOptions (); +char METIS_PartGraphKway (); int main () { -return METIS_SetDefaultOptions (); +return METIS_PartGraphKway (); ; return 0; } _ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && { - test "$cross_compiling" = yes || - $as_test_x conftest$ac_exeext - }; then +if ac_fn_c_try_link "$LINENO"; then : psblas_cv_have_metis=yes;pac_metis_lib_ok=yes; else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - psblas_cv_have_metis=no;pac_metis_lib_ok="no. Unusable METIS version, sorry."; METIS_LIBS="" + psblas_cv_have_metis=no;pac_metis_lib_ok=no; METIS_LIBS="" fi - -rm -rf conftest.dSYM -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext - { $as_echo "$as_me:$LINENO: result: $pac_metis_lib_ok" >&5 +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $pac_metis_lib_ok" >&5 $as_echo "$pac_metis_lib_ok" >&6; } + fi fi - -LIBS="$SAVE_LIBS"; -CPPFLAGS="$SAVE_CPPFLAGS"; - -if test "x$psblas_cv_have_metis" == "xyes" ; then - FDEFINES="$psblas_cv_define_prepend-DHAVE_METIS $FDEFINES" - CDEFINES="-DHAVE_METIS_ $psblas_cv_metis_includes $CDEFINES" -fi - - -# Check whether --with-amd was given. -if test "${with_amd+set}" = set; then - withval=$with_amd; psblas_cv_amd=$withval -else - psblas_cv_amd='-lamd' -fi - - -# Check whether --with-amddir was given. -if test "${with_amddir+set}" = set; then - withval=$with_amddir; psblas_cv_amddir=$withval -else - psblas_cv_amddir='' -fi - - -# Check whether --with-amdincdir was given. -if test "${with_amdincdir+set}" = set; then - withval=$with_amdincdir; psblas_cv_amdincdir=$withval -else - psblas_cv_amdincdir='' -fi - - -# Check whether --with-amdlibdir was given. -if test "${with_amdlibdir+set}" = set; then - withval=$with_amdlibdir; psblas_cv_amdlibdir=$withval -else - psblas_cv_amdlibdir='' -fi - - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - -SAVE_LIBS="$LIBS" -SAVE_CPPFLAGS="$CPPFLAGS" -if test "x$psblas_cv_amddir" != "x"; then - AMD_LIBDIR="-L$psblas_cv_amddir" - LIBS="-L$psblas_cv_amddir $LIBS" - AMD_INCLUDES="-I$psblas_cv_amddir" - CPPFLAGS="$AMD_INCLUDES $CPPFLAGS" -fi -if test "x$psblas_cv_amdincdir" != "x"; then - AMD_INCLUDES="-I$psblas_cv_amdincdir" - CPPFLAGS="$AMD_INCLUDES $CPPFLAGS" -fi -if test "x$psblas_cv_amdlibdir" != "x"; then - LIBS="-L$psblas_cv_amdlibdir $LIBS" - AMD_LIBDIR="-L$psblas_cv_amdlibdir" -fi - -{ $as_echo "$as_me:$LINENO: amd dir $psblas_cv_amddir" >&5 -$as_echo "$as_me: amd dir $psblas_cv_amddir" >&6;} -if test "${ac_cv_header_amd_h+set}" = set; then - { $as_echo "$as_me:$LINENO: checking for amd.h" >&5 -$as_echo_n "checking for amd.h... " >&6; } -if test "${ac_cv_header_amd_h+set}" = set; then - $as_echo_n "(cached) " >&6 -fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_amd_h" >&5 -$as_echo "$ac_cv_header_amd_h" >&6; } -else - # Is the header compilable? -{ $as_echo "$as_me:$LINENO: checking amd.h usability" >&5 -$as_echo_n "checking amd.h usability... " >&6; } -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -#include -_ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - ac_header_compiler=yes -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_header_compiler=no -fi - -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 -$as_echo "$ac_header_compiler" >&6; } - -# Is the header present? -{ $as_echo "$as_me:$LINENO: checking amd.h presence" >&5 -$as_echo_n "checking amd.h presence... " >&6; } -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF +if test "x$pac_metis_lib_ok" == "xyes" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for METIS_SetDefaultOptions in $LIBS" >&5 +$as_echo_n "checking for METIS_SetDefaultOptions in $LIBS... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -#include -_ACEOF -if { (ac_try="$ac_cpp conftest.$ac_ext" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null && { - test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || - test ! -s conftest.err - }; then - ac_header_preproc=yes -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_header_preproc=no -fi -rm -f conftest.err conftest.$ac_ext -{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 -$as_echo "$ac_header_preproc" >&6; } - -# So? What about this header? -case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in - yes:no: ) - { $as_echo "$as_me:$LINENO: WARNING: amd.h: accepted by the compiler, rejected by the preprocessor!" >&5 -$as_echo "$as_me: WARNING: amd.h: accepted by the compiler, rejected by the preprocessor!" >&2;} - { $as_echo "$as_me:$LINENO: WARNING: amd.h: proceeding with the compiler's result" >&5 -$as_echo "$as_me: WARNING: amd.h: proceeding with the compiler's result" >&2;} - ac_header_preproc=yes - ;; - no:yes:* ) - { $as_echo "$as_me:$LINENO: WARNING: amd.h: present but cannot be compiled" >&5 -$as_echo "$as_me: WARNING: amd.h: present but cannot be compiled" >&2;} - { $as_echo "$as_me:$LINENO: WARNING: amd.h: check for missing prerequisite headers?" >&5 -$as_echo "$as_me: WARNING: amd.h: check for missing prerequisite headers?" >&2;} - { $as_echo "$as_me:$LINENO: WARNING: amd.h: see the Autoconf documentation" >&5 -$as_echo "$as_me: WARNING: amd.h: see the Autoconf documentation" >&2;} - { $as_echo "$as_me:$LINENO: WARNING: amd.h: section \"Present But Cannot Be Compiled\"" >&5 -$as_echo "$as_me: WARNING: amd.h: section \"Present But Cannot Be Compiled\"" >&2;} - { $as_echo "$as_me:$LINENO: WARNING: amd.h: proceeding with the preprocessor's result" >&5 -$as_echo "$as_me: WARNING: amd.h: proceeding with the preprocessor's result" >&2;} - { $as_echo "$as_me:$LINENO: WARNING: amd.h: in the future, the compiler will take precedence" >&5 -$as_echo "$as_me: WARNING: amd.h: in the future, the compiler will take precedence" >&2;} - ( cat <<\_ASBOX -## ---------------------------------------------- ## -## Report this to salvatore.filippone@uniroma2.it ## -## ---------------------------------------------- ## -_ASBOX - ) | sed "s/^/$as_me: WARNING: /" >&2 - ;; -esac -{ $as_echo "$as_me:$LINENO: checking for amd.h" >&5 -$as_echo_n "checking for amd.h... " >&6; } -if test "${ac_cv_header_amd_h+set}" = set; then - $as_echo_n "(cached) " >&6 -else - ac_cv_header_amd_h=$ac_header_preproc -fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_amd_h" >&5 -$as_echo "$ac_cv_header_amd_h" >&6; } - -fi -if test "x$ac_cv_header_amd_h" = x""yes; then - pac_amd_header_ok=yes -else - pac_amd_header_ok=no; AMD_INCLUDES="" -fi - - -if test "x$pac_amd_header_ok" == "xno" ; then - unset ac_cv_header_amd_h - AMD_INCLUDES="-I$psblas_cv_amddir/include -I$psblas_cv_amddir/Include " - CPPFLAGS="$AMD_INCLUDES $SAVE_CPPFLAGS" - - { $as_echo "$as_me:$LINENO: checking for amd_h in $AMD_INCLUDES" >&5 -$as_echo_n "checking for amd_h in $AMD_INCLUDES... " >&6; } - if test "${ac_cv_header_amd_h+set}" = set; then - { $as_echo "$as_me:$LINENO: checking for amd.h" >&5 -$as_echo_n "checking for amd.h... " >&6; } -if test "${ac_cv_header_amd_h+set}" = set; then - $as_echo_n "(cached) " >&6 -fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_amd_h" >&5 -$as_echo "$ac_cv_header_amd_h" >&6; } -else - # Is the header compilable? -{ $as_echo "$as_me:$LINENO: checking amd.h usability" >&5 -$as_echo_n "checking amd.h usability... " >&6; } -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -#include -_ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - ac_header_compiler=yes +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char METIS_SetDefaultOptions (); +int +main () +{ +return METIS_SetDefaultOptions (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + psblas_cv_have_metis=yes;pac_metis_lib_ok=yes; else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 + psblas_cv_have_metis=no;pac_metis_lib_ok="no. Unusable METIS version, sorry."; METIS_LIBS="" +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $pac_metis_lib_ok" >&5 +$as_echo "$pac_metis_lib_ok" >&6; } +fi + +LIBS="$SAVE_LIBS"; +CPPFLAGS="$SAVE_CPPFLAGS"; - ac_header_compiler=no +if test "x$psblas_cv_have_metis" == "xyes" ; then + FDEFINES="$psblas_cv_define_prepend-DHAVE_METIS $FDEFINES" + CDEFINES="-DHAVE_METIS_ $psblas_cv_metis_includes $CDEFINES" fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 -$as_echo "$ac_header_compiler" >&6; } -# Is the header present? -{ $as_echo "$as_me:$LINENO: checking amd.h presence" >&5 -$as_echo_n "checking amd.h presence... " >&6; } -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include -_ACEOF -if { (ac_try="$ac_cpp conftest.$ac_ext" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null && { - test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || - test ! -s conftest.err - }; then - ac_header_preproc=yes +# Check whether --with-amd was given. +if test "${with_amd+set}" = set; then : + withval=$with_amd; psblas_cv_amd=$withval else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_header_preproc=no + psblas_cv_amd='-lamd' fi -rm -f conftest.err conftest.$ac_ext -{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 -$as_echo "$ac_header_preproc" >&6; } -# So? What about this header? -case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in - yes:no: ) - { $as_echo "$as_me:$LINENO: WARNING: amd.h: accepted by the compiler, rejected by the preprocessor!" >&5 -$as_echo "$as_me: WARNING: amd.h: accepted by the compiler, rejected by the preprocessor!" >&2;} - { $as_echo "$as_me:$LINENO: WARNING: amd.h: proceeding with the compiler's result" >&5 -$as_echo "$as_me: WARNING: amd.h: proceeding with the compiler's result" >&2;} - ac_header_preproc=yes - ;; - no:yes:* ) - { $as_echo "$as_me:$LINENO: WARNING: amd.h: present but cannot be compiled" >&5 -$as_echo "$as_me: WARNING: amd.h: present but cannot be compiled" >&2;} - { $as_echo "$as_me:$LINENO: WARNING: amd.h: check for missing prerequisite headers?" >&5 -$as_echo "$as_me: WARNING: amd.h: check for missing prerequisite headers?" >&2;} - { $as_echo "$as_me:$LINENO: WARNING: amd.h: see the Autoconf documentation" >&5 -$as_echo "$as_me: WARNING: amd.h: see the Autoconf documentation" >&2;} - { $as_echo "$as_me:$LINENO: WARNING: amd.h: section \"Present But Cannot Be Compiled\"" >&5 -$as_echo "$as_me: WARNING: amd.h: section \"Present But Cannot Be Compiled\"" >&2;} - { $as_echo "$as_me:$LINENO: WARNING: amd.h: proceeding with the preprocessor's result" >&5 -$as_echo "$as_me: WARNING: amd.h: proceeding with the preprocessor's result" >&2;} - { $as_echo "$as_me:$LINENO: WARNING: amd.h: in the future, the compiler will take precedence" >&5 -$as_echo "$as_me: WARNING: amd.h: in the future, the compiler will take precedence" >&2;} - ( cat <<\_ASBOX -## ---------------------------------------------- ## -## Report this to salvatore.filippone@uniroma2.it ## -## ---------------------------------------------- ## -_ASBOX - ) | sed "s/^/$as_me: WARNING: /" >&2 - ;; -esac -{ $as_echo "$as_me:$LINENO: checking for amd.h" >&5 -$as_echo_n "checking for amd.h... " >&6; } -if test "${ac_cv_header_amd_h+set}" = set; then - $as_echo_n "(cached) " >&6 +# Check whether --with-amddir was given. +if test "${with_amddir+set}" = set; then : + withval=$with_amddir; psblas_cv_amddir=$withval else - ac_cv_header_amd_h=$ac_header_preproc + psblas_cv_amddir='' fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_amd_h" >&5 -$as_echo "$ac_cv_header_amd_h" >&6; } + +# Check whether --with-amdincdir was given. +if test "${with_amdincdir+set}" = set; then : + withval=$with_amdincdir; psblas_cv_amdincdir=$withval +else + psblas_cv_amdincdir='' fi -if test "x$ac_cv_header_amd_h" = x""yes; then - pac_amd_header_ok=yes + + +# Check whether --with-amdlibdir was given. +if test "${with_amdlibdir+set}" = set; then : + withval=$with_amdlibdir; psblas_cv_amdlibdir=$withval else - pac_amd_header_ok=no; AMD_INCLUDES="" + psblas_cv_amdlibdir='' fi +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + +SAVE_LIBS="$LIBS" +SAVE_CPPFLAGS="$CPPFLAGS" +if test "x$psblas_cv_amddir" != "x"; then + AMD_LIBDIR="-L$psblas_cv_amddir" + LIBS="-L$psblas_cv_amddir $LIBS" + AMD_INCLUDES="-I$psblas_cv_amddir" + CPPFLAGS="$AMD_INCLUDES $CPPFLAGS" fi -if test "x$pac_amd_header_ok" == "xno" ; then - unset ac_cv_header_amd_h - AMD_INCLUDES="-I$psblas_cv_amddir/UFconfig -I$psblas_cv_amddir/AMD/Include -I$psblas_cv_amddir/AMD/Include" - CPPFLAGS="$AMD_INCLUDES $SAVE_CPPFLAGS" - if test "${ac_cv_header_amd_h+set}" = set; then - { $as_echo "$as_me:$LINENO: checking for amd.h" >&5 -$as_echo_n "checking for amd.h... " >&6; } -if test "${ac_cv_header_amd_h+set}" = set; then - $as_echo_n "(cached) " >&6 +if test "x$psblas_cv_amdincdir" != "x"; then + AMD_INCLUDES="-I$psblas_cv_amdincdir" + CPPFLAGS="$AMD_INCLUDES $CPPFLAGS" fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_amd_h" >&5 -$as_echo "$ac_cv_header_amd_h" >&6; } -else - # Is the header compilable? -{ $as_echo "$as_me:$LINENO: checking amd.h usability" >&5 -$as_echo_n "checking amd.h usability... " >&6; } -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -#include -_ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - ac_header_compiler=yes -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_header_compiler=no +if test "x$psblas_cv_amdlibdir" != "x"; then + LIBS="-L$psblas_cv_amdlibdir $LIBS" + AMD_LIBDIR="-L$psblas_cv_amdlibdir" fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 -$as_echo "$ac_header_compiler" >&6; } - -# Is the header present? -{ $as_echo "$as_me:$LINENO: checking amd.h presence" >&5 -$as_echo_n "checking amd.h presence... " >&6; } -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include -_ACEOF -if { (ac_try="$ac_cpp conftest.$ac_ext" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null && { - test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || - test ! -s conftest.err - }; then - ac_header_preproc=yes +{ $as_echo "$as_me:${as_lineno-$LINENO}: amd dir $psblas_cv_amddir" >&5 +$as_echo "$as_me: amd dir $psblas_cv_amddir" >&6;} +ac_fn_c_check_header_mongrel "$LINENO" "amd.h" "ac_cv_header_amd_h" "$ac_includes_default" +if test "x$ac_cv_header_amd_h" = xyes; then : + pac_amd_header_ok=yes else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_header_preproc=no + pac_amd_header_ok=no; AMD_INCLUDES="" fi -rm -f conftest.err conftest.$ac_ext -{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 -$as_echo "$ac_header_preproc" >&6; } -# So? What about this header? -case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in - yes:no: ) - { $as_echo "$as_me:$LINENO: WARNING: amd.h: accepted by the compiler, rejected by the preprocessor!" >&5 -$as_echo "$as_me: WARNING: amd.h: accepted by the compiler, rejected by the preprocessor!" >&2;} - { $as_echo "$as_me:$LINENO: WARNING: amd.h: proceeding with the compiler's result" >&5 -$as_echo "$as_me: WARNING: amd.h: proceeding with the compiler's result" >&2;} - ac_header_preproc=yes - ;; - no:yes:* ) - { $as_echo "$as_me:$LINENO: WARNING: amd.h: present but cannot be compiled" >&5 -$as_echo "$as_me: WARNING: amd.h: present but cannot be compiled" >&2;} - { $as_echo "$as_me:$LINENO: WARNING: amd.h: check for missing prerequisite headers?" >&5 -$as_echo "$as_me: WARNING: amd.h: check for missing prerequisite headers?" >&2;} - { $as_echo "$as_me:$LINENO: WARNING: amd.h: see the Autoconf documentation" >&5 -$as_echo "$as_me: WARNING: amd.h: see the Autoconf documentation" >&2;} - { $as_echo "$as_me:$LINENO: WARNING: amd.h: section \"Present But Cannot Be Compiled\"" >&5 -$as_echo "$as_me: WARNING: amd.h: section \"Present But Cannot Be Compiled\"" >&2;} - { $as_echo "$as_me:$LINENO: WARNING: amd.h: proceeding with the preprocessor's result" >&5 -$as_echo "$as_me: WARNING: amd.h: proceeding with the preprocessor's result" >&2;} - { $as_echo "$as_me:$LINENO: WARNING: amd.h: in the future, the compiler will take precedence" >&5 -$as_echo "$as_me: WARNING: amd.h: in the future, the compiler will take precedence" >&2;} - ( cat <<\_ASBOX -## ---------------------------------------------- ## -## Report this to salvatore.filippone@uniroma2.it ## -## ---------------------------------------------- ## -_ASBOX - ) | sed "s/^/$as_me: WARNING: /" >&2 - ;; -esac -{ $as_echo "$as_me:$LINENO: checking for amd.h" >&5 -$as_echo_n "checking for amd.h... " >&6; } -if test "${ac_cv_header_amd_h+set}" = set; then - $as_echo_n "(cached) " >&6 +if test "x$pac_amd_header_ok" == "xno" ; then + unset ac_cv_header_amd_h + AMD_INCLUDES="-I$psblas_cv_amddir/include -I$psblas_cv_amddir/Include " + CPPFLAGS="$AMD_INCLUDES $SAVE_CPPFLAGS" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for amd_h in $AMD_INCLUDES" >&5 +$as_echo_n "checking for amd_h in $AMD_INCLUDES... " >&6; } + ac_fn_c_check_header_mongrel "$LINENO" "amd.h" "ac_cv_header_amd_h" "$ac_includes_default" +if test "x$ac_cv_header_amd_h" = xyes; then : + pac_amd_header_ok=yes else - ac_cv_header_amd_h=$ac_header_preproc + pac_amd_header_ok=no; AMD_INCLUDES="" fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_amd_h" >&5 -$as_echo "$ac_cv_header_amd_h" >&6; } + fi -if test "x$ac_cv_header_amd_h" = x""yes; then +if test "x$pac_amd_header_ok" == "xno" ; then + unset ac_cv_header_amd_h + AMD_INCLUDES="-I$psblas_cv_amddir/UFconfig -I$psblas_cv_amddir/AMD/Include -I$psblas_cv_amddir/AMD/Include" + CPPFLAGS="$AMD_INCLUDES $SAVE_CPPFLAGS" + ac_fn_c_check_header_mongrel "$LINENO" "amd.h" "ac_cv_header_amd_h" "$ac_includes_default" +if test "x$ac_cv_header_amd_h" = xyes; then : pac_amd_header_ok=yes else pac_amd_header_ok=no; AMD_INCLUDES="" @@ -12277,13 +9081,9 @@ if test "x$pac_amd_header_ok" == "xyes" ; then psblas_cv_amd_includes="$AMD_INCLUDES" AMD_LIBS="$psblas_cv_amd $AMD_LIBDIR" LIBS="$AMD_LIBS -lm $LIBS"; - { $as_echo "$as_me:$LINENO: checking for amd_order in $AMD_LIBS" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for amd_order in $AMD_LIBS" >&5 $as_echo_n "checking for amd_order in $AMD_LIBS... " >&6; } - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. @@ -12301,52 +9101,23 @@ return amd_order (); return 0; } _ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && { - test "$cross_compiling" = yes || - $as_test_x conftest$ac_exeext - }; then +if ac_fn_c_try_link "$LINENO"; then : psblas_cv_have_amd=yes;pac_amd_lib_ok=yes; else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - psblas_cv_have_amd=no;pac_amd_lib_ok=no; AMD_LIBS="" + psblas_cv_have_amd=no;pac_amd_lib_ok=no; AMD_LIBS="" fi - -rm -rf conftest.dSYM -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext - { $as_echo "$as_me:$LINENO: result: $pac_amd_lib_ok" >&5 +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $pac_amd_lib_ok" >&5 $as_echo "$pac_amd_lib_ok" >&6; } if test "x$pac_amd_lib_ok" == "xno" ; then AMD_LIBDIR="-L$psblas_cv_amddir/Lib -L$psblas_cv_amddir/lib" AMD_LIBS="$psblas_cv_amd $AMD_LIBDIR" LIBS="$AMD_LIBS -lm $SAVE_LIBS" - { $as_echo "$as_me:$LINENO: checking for amd_order in $AMD_LIBS" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for amd_order in $AMD_LIBS" >&5 $as_echo_n "checking for amd_order in $AMD_LIBS... " >&6; } - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. @@ -12364,52 +9135,23 @@ return amd_order (); return 0; } _ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && { - test "$cross_compiling" = yes || - $as_test_x conftest$ac_exeext - }; then +if ac_fn_c_try_link "$LINENO"; then : psblas_cv_have_amd=yes;pac_amd_lib_ok=yes; else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - psblas_cv_have_amd=no;pac_amd_lib_ok=no; AMD_LIBS="" + psblas_cv_have_amd=no;pac_amd_lib_ok=no; AMD_LIBS="" fi - -rm -rf conftest.dSYM -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext - { $as_echo "$as_me:$LINENO: result: $pac_amd_lib_ok" >&5 +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $pac_amd_lib_ok" >&5 $as_echo "$pac_amd_lib_ok" >&6; } fi if test "x$pac_amd_lib_ok" == "xno" ; then AMD_LIBDIR="-L$psblas_cv_amddir/AMD/Lib -L$psblas_cv_amddir/AMD/Lib" AMD_LIBS="$psblas_cv_amd $AMD_LIBDIR" LIBS="$AMD_LIBS -lm $SAVE_LIBS" - { $as_echo "$as_me:$LINENO: checking for amd_order in $AMD_LIBS" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for amd_order in $AMD_LIBS" >&5 $as_echo_n "checking for amd_order in $AMD_LIBS... " >&6; } - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. @@ -12427,39 +9169,14 @@ return amd_order (); return 0; } _ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && { - test "$cross_compiling" = yes || - $as_test_x conftest$ac_exeext - }; then +if ac_fn_c_try_link "$LINENO"; then : psblas_cv_have_amd=yes;pac_amd_lib_ok=yes; else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - psblas_cv_have_amd=no;pac_amd_lib_ok=no; AMD_LIBS="" + psblas_cv_have_amd=no;pac_amd_lib_ok=no; AMD_LIBS="" fi - -rm -rf conftest.dSYM -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext - { $as_echo "$as_me:$LINENO: result: $pac_amd_lib_ok" >&5 +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $pac_amd_lib_ok" >&5 $as_echo "$pac_amd_lib_ok" >&6; } fi fi @@ -12526,11 +9243,6 @@ UTILLIBNAME=libpsb_util.a - - - - - @@ -12546,14 +9258,10 @@ FDEFINES=$(PSBFDEFINES) # These should be portable rules, arent they? .c.o: $(CC) $(CCOPT) $(CINCLUDES) $(CDEFINES) -c $< -o $@ -.f.o: - $(FC) $(FCOPT) $(FINCLUDES) -c $< -o $@ .f90.o: - $(F90) $(F90COPT) $(FINCLUDES) -c $< -o $@ -.F.o: - $(FC) $(FCOPT) $(FINCLUDES) $(FDEFINES) -c $< -o $@ + $(FC) $(FCOPT) $(FINCLUDES) -c $< -o $@ .F90.o: - $(F90) $(F90COPT) $(FINCLUDES) $(FDEFINES) -c $< -o $@' + $(FC) $(FCOPT) $(FINCLUDES) $(FDEFINES) -c $< -o $@' @@ -12596,13 +9304,13 @@ _ACEOF case $ac_val in #( *${as_nl}*) case $ac_var in #( - *_cv_*) { $as_echo "$as_me:$LINENO: WARNING: cache variable $ac_var contains a newline" >&5 + *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( - *) $as_unset $ac_var ;; + *) { eval $ac_var=; unset $ac_var;} ;; esac ;; esac done @@ -12610,8 +9318,8 @@ $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; (set) 2>&1 | case $as_nl`(ac_space=' '; set) 2>&1` in #( *${as_nl}ac_space=\ *) - # `set' does not quote correctly, so add quotes (double-quote - # substitution turns \\\\ into \\, and sed turns \\ into \). + # `set' does not quote correctly, so add quotes: double-quote + # substitution turns \\\\ into \\, and sed turns \\ into \. sed -n \ "s/'/'\\\\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" @@ -12633,12 +9341,23 @@ $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; :end' >>confcache if diff "$cache_file" confcache >/dev/null 2>&1; then :; else if test -w "$cache_file"; then - test "x$cache_file" != "x/dev/null" && - { $as_echo "$as_me:$LINENO: updating cache $cache_file" >&5 + if test "x$cache_file" != "x/dev/null"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 $as_echo "$as_me: updating cache $cache_file" >&6;} - cat confcache >$cache_file + if test ! -f "$cache_file" || test -h "$cache_file"; then + cat confcache >"$cache_file" + else + case $cache_file in #( + */* | ?:*) + mv -f confcache "$cache_file"$$ && + mv -f "$cache_file"$$ "$cache_file" ;; #( + *) + mv -f confcache "$cache_file" ;; + esac + fi + fi else - { $as_echo "$as_me:$LINENO: not updating unwritable cache $cache_file" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 $as_echo "$as_me: not updating unwritable cache $cache_file" >&6;} fi fi @@ -12688,33 +9407,36 @@ DEFS=`sed -n "$ac_script" confdefs.h` ac_libobjs= ac_ltlibobjs= +U= for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue # 1. Remove the extension, and $U if already installed. ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' ac_i=`$as_echo "$ac_i" | sed "$ac_script"` # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR # will be set to the directory where LIBOBJS objects are built. - ac_libobjs="$ac_libobjs \${LIBOBJDIR}$ac_i\$U.$ac_objext" - ac_ltlibobjs="$ac_ltlibobjs \${LIBOBJDIR}$ac_i"'$U.lo' + as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext" + as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo' done LIBOBJS=$ac_libobjs LTLIBOBJS=$ac_ltlibobjs +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking that generated files are newer than configure" >&5 +$as_echo_n "checking that generated files are newer than configure... " >&6; } + if test -n "$am_sleep_pid"; then + # Hide warnings about reused PIDs. + wait $am_sleep_pid 2>/dev/null + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: done" >&5 +$as_echo "done" >&6; } if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then - { { $as_echo "$as_me:$LINENO: error: conditional \"AMDEP\" was never defined. -Usually this means the macro was only invoked conditionally." >&5 -$as_echo "$as_me: error: conditional \"AMDEP\" was never defined. -Usually this means the macro was only invoked conditionally." >&2;} - { (exit 1); exit 1; }; } + as_fn_error $? "conditional \"AMDEP\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then - { { $as_echo "$as_me:$LINENO: error: conditional \"am__fastdepCC\" was never defined. -Usually this means the macro was only invoked conditionally." >&5 -$as_echo "$as_me: error: conditional \"am__fastdepCC\" was never defined. -Usually this means the macro was only invoked conditionally." >&2;} - { (exit 1); exit 1; }; } + as_fn_error $? "conditional \"am__fastdepCC\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -n "$EXEEXT"; then am__EXEEXT_TRUE= @@ -12725,13 +9447,14 @@ else fi -: ${CONFIG_STATUS=./config.status} +: "${CONFIG_STATUS=./config.status}" ac_write_fail=0 ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files $CONFIG_STATUS" -{ $as_echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5 $as_echo "$as_me: creating $CONFIG_STATUS" >&6;} -cat >$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +as_write_fail=0 +cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1 #! $SHELL # Generated by $as_me. # Run this file to recreate the current configuration. @@ -12741,17 +9464,18 @@ cat >$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 debug=false ac_cs_recheck=false ac_cs_silent=false -SHELL=\${CONFIG_SHELL-$SHELL} -_ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -## --------------------- ## -## M4sh Initialization. ## -## --------------------- ## +SHELL=\${CONFIG_SHELL-$SHELL} +export SHELL +_ASEOF +cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1 +## -------------------- ## +## M4sh Initialization. ## +## -------------------- ## # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh -if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then +if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which @@ -12759,23 +9483,15 @@ if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else - case `(set -o) 2>/dev/null` in - *posix*) set -o posix ;; + case `(set -o) 2>/dev/null` in #( + *posix*) : + set -o posix ;; #( + *) : + ;; esac - fi - - -# PATH needs CR -# Avoid depending upon Character Ranges. -as_cr_letters='abcdefghijklmnopqrstuvwxyz' -as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' -as_cr_Letters=$as_cr_letters$as_cr_LETTERS -as_cr_digits='0123456789' -as_cr_alnum=$as_cr_Letters$as_cr_digits - as_nl=' ' export as_nl @@ -12783,7 +9499,13 @@ export as_nl as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo -if (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then +# Prefer a ksh shell builtin over an external printf program on Solaris, +# but without wasting forks for bash or zsh. +if test -z "$BASH_VERSION$ZSH_VERSION" \ + && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then + as_echo='print -r --' + as_echo_n='print -rn --' +elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='printf %s\n' as_echo_n='printf %s' else @@ -12794,7 +9516,7 @@ else as_echo_body='eval expr "X$1" : "X\\(.*\\)"' as_echo_n_body='eval arg=$1; - case $arg in + case $arg in #( *"$as_nl"*) expr "X$arg" : "X\\(.*\\)$as_nl"; arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; @@ -12817,13 +9539,6 @@ if test "${PATH_SEPARATOR+set}" != set; then } fi -# Support unset when possible. -if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then - as_unset=unset -else - as_unset=false -fi - # IFS # We need space, tab and new line, in precisely that order. Quoting is @@ -12833,15 +9548,16 @@ fi IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. -case $0 in +as_myself= +case $0 in #(( *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break -done + test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break + done IFS=$as_save_IFS ;; @@ -12853,12 +9569,16 @@ if test "x$as_myself" = x; then fi if test ! -f "$as_myself"; then $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 - { (exit 1); exit 1; } + exit 1 fi -# Work around bugs in pre-3.0 UWIN ksh. -for as_var in ENV MAIL MAILPATH -do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var +# Unset variables that we do not need and which cause bugs (e.g. in +# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" +# suppresses any "Segmentation fault" message there. '((' could +# trigger a bug in pdksh 5.2.14. +for as_var in BASH_ENV ENV MAIL MAILPATH +do eval test x\${$as_var+set} = xset \ + && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : done PS1='$ ' PS2='> ' @@ -12870,7 +9590,89 @@ export LC_ALL LANGUAGE=C export LANGUAGE -# Required to use basename. +# CDPATH. +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH + + +# as_fn_error STATUS ERROR [LINENO LOG_FD] +# ---------------------------------------- +# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are +# provided, also output the error to LOG_FD, referencing LINENO. Then exit the +# script with STATUS, using 1 if that was 0. +as_fn_error () +{ + as_status=$1; test $as_status -eq 0 && as_status=1 + if test "$4"; then + as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 + fi + $as_echo "$as_me: error: $2" >&2 + as_fn_exit $as_status +} # as_fn_error + + +# as_fn_set_status STATUS +# ----------------------- +# Set $? to STATUS, without forking. +as_fn_set_status () +{ + return $1 +} # as_fn_set_status + +# as_fn_exit STATUS +# ----------------- +# Exit the shell with STATUS, even in a "trap 0" or "set -e" context. +as_fn_exit () +{ + set +e + as_fn_set_status $1 + exit $1 +} # as_fn_exit + +# as_fn_unset VAR +# --------------- +# Portably unset VAR. +as_fn_unset () +{ + { eval $1=; unset $1;} +} +as_unset=as_fn_unset +# as_fn_append VAR VALUE +# ---------------------- +# Append the text in VALUE to the end of the definition contained in VAR. Take +# advantage of any shell optimizations that allow amortized linear growth over +# repeated appends, instead of the typical quadratic growth present in naive +# implementations. +if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : + eval 'as_fn_append () + { + eval $1+=\$2 + }' +else + as_fn_append () + { + eval $1=\$$1\$2 + } +fi # as_fn_append + +# as_fn_arith ARG... +# ------------------ +# Perform arithmetic evaluation on the ARGs, and store the result in the +# global $as_val. Take advantage of shells that can avoid forks. The arguments +# must be portable across $(()) and expr. +if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : + eval 'as_fn_arith () + { + as_val=$(( $* )) + }' +else + as_fn_arith () + { + as_val=`expr "$@" || test $? -eq 1` + } +fi # as_fn_arith + + if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr @@ -12884,8 +9686,12 @@ else as_basename=false fi +if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then + as_dirname=dirname +else + as_dirname=false +fi -# Name of the executable. as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ @@ -12905,76 +9711,25 @@ $as_echo X/"$0" | } s/.*/./; q'` -# CDPATH. -$as_unset CDPATH - - - - as_lineno_1=$LINENO - as_lineno_2=$LINENO - test "x$as_lineno_1" != "x$as_lineno_2" && - test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2" || { - - # Create $as_me.lineno as a copy of $as_myself, but with $LINENO - # uniformly replaced by the line number. The first 'sed' inserts a - # line-number line after each line using $LINENO; the second 'sed' - # does the real work. The second script uses 'N' to pair each - # line-number line with the line containing $LINENO, and appends - # trailing '-' during substitution so that $LINENO is not a special - # case at line end. - # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the - # scripts with optimization help from Paolo Bonzini. Blame Lee - # E. McMahon (1931-1989) for sed's syntax. :-) - sed -n ' - p - /[$]LINENO/= - ' <$as_myself | - sed ' - s/[$]LINENO.*/&-/ - t lineno - b - :lineno - N - :loop - s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ - t loop - s/-\n.*// - ' >$as_me.lineno && - chmod +x "$as_me.lineno" || - { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2 - { (exit 1); exit 1; }; } - - # Don't try to exec as it changes $[0], causing all sort of problems - # (the dirname of $[0] is not the place where we might find the - # original and so on. Autoconf is especially sensitive to this). - . "./$as_me.lineno" - # Exit status is that of the last command. - exit -} - - -if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then - as_dirname=dirname -else - as_dirname=false -fi +# Avoid depending upon Character Ranges. +as_cr_letters='abcdefghijklmnopqrstuvwxyz' +as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' +as_cr_Letters=$as_cr_letters$as_cr_LETTERS +as_cr_digits='0123456789' +as_cr_alnum=$as_cr_Letters$as_cr_digits ECHO_C= ECHO_N= ECHO_T= -case `echo -n x` in +case `echo -n x` in #((((( -n*) - case `echo 'x\c'` in + case `echo 'xy\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. - *) ECHO_C='\c';; + xy) ECHO_C='\c';; + *) echo `echo ksh88 bug on AIX 6.1` > /dev/null + ECHO_T=' ';; esac;; *) ECHO_N='-n';; esac -if expr a : '\(a\)' >/dev/null 2>&1 && - test "X`expr 00001 : '.*\(...\)'`" = X001; then - as_expr=expr -else - as_expr=false -fi rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then @@ -12989,49 +9744,85 @@ if (echo >conf$$.file) 2>/dev/null; then # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. - # In both cases, we have to default to `cp -p'. + # In both cases, we have to default to `cp -pR'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || - as_ln_s='cp -p' + as_ln_s='cp -pR' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else - as_ln_s='cp -p' + as_ln_s='cp -pR' fi else - as_ln_s='cp -p' + as_ln_s='cp -pR' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null + +# as_fn_mkdir_p +# ------------- +# Create "$as_dir" as a directory, including parents if necessary. +as_fn_mkdir_p () +{ + + case $as_dir in #( + -*) as_dir=./$as_dir;; + esac + test -d "$as_dir" || eval $as_mkdir_p || { + as_dirs= + while :; do + case $as_dir in #( + *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( + *) as_qdir=$as_dir;; + esac + as_dirs="'$as_qdir' $as_dirs" + as_dir=`$as_dirname -- "$as_dir" || +$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$as_dir" : 'X\(//\)[^/]' \| \ + X"$as_dir" : 'X\(//\)$' \| \ + X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$as_dir" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + test -d "$as_dir" && break + done + test -z "$as_dirs" || eval "mkdir $as_dirs" + } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" + + +} # as_fn_mkdir_p if mkdir -p . 2>/dev/null; then - as_mkdir_p=: + as_mkdir_p='mkdir -p "$as_dir"' else test -d ./-p && rmdir ./-p as_mkdir_p=false fi -if test -x / >/dev/null 2>&1; then - as_test_x='test -x' -else - if ls -dL / >/dev/null 2>&1; then - as_ls_L_option=L - else - as_ls_L_option= - fi - as_test_x=' - eval sh -c '\'' - if test -d "$1"; then - test -d "$1/."; - else - case $1 in - -*)set "./$1";; - esac; - case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in - ???[sx]*):;;*)false;;esac;fi - '\'' sh - ' -fi -as_executable_p=$as_test_x + +# as_fn_executable_p FILE +# ----------------------- +# Test if FILE is an executable regular file. +as_fn_executable_p () +{ + test -f "$1" && test -x "$1" +} # as_fn_executable_p +as_test_x='test -x' +as_executable_p=as_fn_executable_p # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" @@ -13041,13 +9832,19 @@ as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" exec 6>&1 +## ----------------------------------- ## +## Main body of $CONFIG_STATUS script. ## +## ----------------------------------- ## +_ASEOF +test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1 -# Save the log message, to keep $[0] and so on meaningful, and to +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +# Save the log message, to keep $0 and so on meaningful, and to # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by PSBLAS $as_me 3.4, which was -generated by GNU Autoconf 2.63. Invocation command line was +This file was extended by PSBLAS $as_me 3.5, which was +generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES CONFIG_HEADERS = $CONFIG_HEADERS @@ -13075,13 +9872,15 @@ _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 ac_cs_usage="\ -\`$as_me' instantiates files from templates according to the -current configuration. +\`$as_me' instantiates files and other configuration actions +from templates according to the current configuration. Unless the files +and actions are specified as TAGs, all are instantiated by default. -Usage: $0 [OPTION]... [FILE]... +Usage: $0 [OPTION]... [TAG]... -h, --help print this help, then exit -V, --version print version number and configuration settings, then exit + --config print configuration, then exit -q, --quiet, --silent do not print progress messages -d, --debug don't remove temporary files @@ -13095,16 +9894,17 @@ $config_files Configuration commands: $config_commands -Report bugs to ." +Report bugs to ." _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -PSBLAS config.status 3.4 -configured by $0, generated by GNU Autoconf 2.63, - with options \\"`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\" +PSBLAS config.status 3.5 +configured by $0, generated by GNU Autoconf 2.69, + with options \\"\$ac_cs_config\\" -Copyright (C) 2008 Free Software Foundation, Inc. +Copyright (C) 2012 Free Software Foundation, Inc. This config.status script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it." @@ -13122,11 +9922,16 @@ ac_need_defaults=: while test $# != 0 do case $1 in - --*=*) + --*=?*) ac_option=`expr "X$1" : 'X\([^=]*\)='` ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'` ac_shift=: ;; + --*=) + ac_option=`expr "X$1" : 'X\([^=]*\)='` + ac_optarg= + ac_shift=: + ;; *) ac_option=$1 ac_optarg=$2 @@ -13140,14 +9945,17 @@ do ac_cs_recheck=: ;; --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) $as_echo "$ac_cs_version"; exit ;; + --config | --confi | --conf | --con | --co | --c ) + $as_echo "$ac_cs_config"; exit ;; --debug | --debu | --deb | --de | --d | -d ) debug=: ;; --file | --fil | --fi | --f ) $ac_shift case $ac_optarg in *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; + '') as_fn_error $? "missing file argument" ;; esac - CONFIG_FILES="$CONFIG_FILES '$ac_optarg'" + as_fn_append CONFIG_FILES " '$ac_optarg'" ac_need_defaults=false;; --he | --h | --help | --hel | -h ) $as_echo "$ac_cs_usage"; exit ;; @@ -13156,11 +9964,10 @@ do ac_cs_silent=: ;; # This is an error. - -*) { $as_echo "$as_me: error: unrecognized option: $1 -Try \`$0 --help' for more information." >&2 - { (exit 1); exit 1; }; } ;; + -*) as_fn_error $? "unrecognized option: \`$1' +Try \`$0 --help' for more information." ;; - *) ac_config_targets="$ac_config_targets $1" + *) as_fn_append ac_config_targets " $1" ac_need_defaults=false ;; esac @@ -13177,7 +9984,7 @@ fi _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 if \$ac_cs_recheck; then - set X '$SHELL' '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion + set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion shift \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6 CONFIG_SHELL='$SHELL' @@ -13214,9 +10021,7 @@ do "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;; "Make.inc") CONFIG_FILES="$CONFIG_FILES Make.inc" ;; - *) { { $as_echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5 -$as_echo "$as_me: error: invalid argument: $ac_config_target" >&2;} - { (exit 1); exit 1; }; };; + *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;; esac done @@ -13238,26 +10043,24 @@ fi # after its creation but before its name has been assigned to `$tmp'. $debug || { - tmp= + tmp= ac_tmp= trap 'exit_status=$? - { test -z "$tmp" || test ! -d "$tmp" || rm -fr "$tmp"; } && exit $exit_status + : "${ac_tmp:=$tmp}" + { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status ' 0 - trap '{ (exit 1); exit 1; }' 1 2 13 15 + trap 'as_fn_exit 1' 1 2 13 15 } # Create a (secure) tmp directory for tmp files. { tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && - test -n "$tmp" && test -d "$tmp" + test -d "$tmp" } || { tmp=./conf$$-$RANDOM (umask 077 && mkdir "$tmp") -} || -{ - $as_echo "$as_me: cannot create a temporary directory in ." >&2 - { (exit 1); exit 1; } -} +} || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5 +ac_tmp=$tmp # Set up the scripts for CONFIG_FILES section. # No need to generate them if there are no CONFIG_FILES. @@ -13265,7 +10068,13 @@ $debug || if test -n "$CONFIG_FILES"; then -ac_cr=' ' +ac_cr=`echo X | tr X '\015'` +# On cygwin, bash can eat \r inside `` if the user requested igncr. +# But we know of no other shell where ac_cr would be empty at this +# point, so we can use a bashism as a fallback. +if test "x$ac_cr" = x; then + eval ac_cr=\$\'\\r\' +fi ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' /dev/null` if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then ac_cs_awk_cr='\\r' @@ -13273,7 +10082,7 @@ else ac_cs_awk_cr=$ac_cr fi -echo 'BEGIN {' >"$tmp/subs1.awk" && +echo 'BEGIN {' >"$ac_tmp/subs1.awk" && _ACEOF @@ -13282,24 +10091,18 @@ _ACEOF echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' && echo "_ACEOF" } >conf$$subs.sh || - { { $as_echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5 -$as_echo "$as_me: error: could not make $CONFIG_STATUS" >&2;} - { (exit 1); exit 1; }; } -ac_delim_num=`echo "$ac_subst_vars" | grep -c '$'` + as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 +ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'` ac_delim='%!_!# ' for ac_last_try in false false false false false :; do . ./conf$$subs.sh || - { { $as_echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5 -$as_echo "$as_me: error: could not make $CONFIG_STATUS" >&2;} - { (exit 1); exit 1; }; } + as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X` if test $ac_delim_n = $ac_delim_num; then break elif $ac_last_try; then - { { $as_echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5 -$as_echo "$as_me: error: could not make $CONFIG_STATUS" >&2;} - { (exit 1); exit 1; }; } + as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 else ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi @@ -13307,7 +10110,7 @@ done rm -f conf$$subs.sh cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -cat >>"\$tmp/subs1.awk" <<\\_ACAWK && +cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK && _ACEOF sed -n ' h @@ -13321,7 +10124,7 @@ s/'"$ac_delim"'$// t delim :nl h -s/\(.\{148\}\).*/\1/ +s/\(.\{148\}\)..*/\1/ t more1 s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/ p @@ -13335,7 +10138,7 @@ s/.\{148\}// t nl :delim h -s/\(.\{148\}\).*/\1/ +s/\(.\{148\}\)..*/\1/ t more2 s/["\\]/\\&/g; s/^/"/; s/$/"/ p @@ -13355,7 +10158,7 @@ t delim rm -f conf$$subs.awk cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 _ACAWK -cat >>"\$tmp/subs1.awk" <<_ACAWK && +cat >>"\$ac_tmp/subs1.awk" <<_ACAWK && for (key in S) S_is_set[key] = 1 FS = "" @@ -13387,23 +10190,29 @@ if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g" else cat -fi < "$tmp/subs1.awk" > "$tmp/subs.awk" \ - || { { $as_echo "$as_me:$LINENO: error: could not setup config files machinery" >&5 -$as_echo "$as_me: error: could not setup config files machinery" >&2;} - { (exit 1); exit 1; }; } +fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \ + || as_fn_error $? "could not setup config files machinery" "$LINENO" 5 _ACEOF -# VPATH may cause trouble with some makes, so we remove $(srcdir), -# ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and +# VPATH may cause trouble with some makes, so we remove sole $(srcdir), +# ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and # trailing colons and then remove the whole line if VPATH becomes empty # (actually we leave an empty line to preserve line numbers). if test "x$srcdir" = x.; then - ac_vpsub='/^[ ]*VPATH[ ]*=/{ -s/:*\$(srcdir):*/:/ -s/:*\${srcdir}:*/:/ -s/:*@srcdir@:*/:/ -s/^\([^=]*=[ ]*\):*/\1/ + ac_vpsub='/^[ ]*VPATH[ ]*=[ ]*/{ +h +s/// +s/^/:/ +s/[ ]*$/:/ +s/:\$(srcdir):/:/g +s/:\${srcdir}:/:/g +s/:@srcdir@:/:/g +s/^:*// s/:*$// +x +s/\(=[ ]*\).*/\1/ +G +s/\n// s/^[^=]*=[ ]*$// }' fi @@ -13421,9 +10230,7 @@ do esac case $ac_mode$ac_tag in :[FHL]*:*);; - :L* | :C*:*) { { $as_echo "$as_me:$LINENO: error: invalid tag $ac_tag" >&5 -$as_echo "$as_me: error: invalid tag $ac_tag" >&2;} - { (exit 1); exit 1; }; };; + :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;; :[FH]-) ac_tag=-:-;; :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; esac @@ -13442,7 +10249,7 @@ $as_echo "$as_me: error: invalid tag $ac_tag" >&2;} for ac_f do case $ac_f in - -) ac_f="$tmp/stdin";; + -) ac_f="$ac_tmp/stdin";; *) # Look for the file first in the build tree, then in the source tree # (if the path is not absolute). The absolute path cannot be DOS-style, # because $ac_f cannot contain `:'. @@ -13451,12 +10258,10 @@ $as_echo "$as_me: error: invalid tag $ac_tag" >&2;} [\\/$]*) false;; *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; esac || - { { $as_echo "$as_me:$LINENO: error: cannot find input file: $ac_f" >&5 -$as_echo "$as_me: error: cannot find input file: $ac_f" >&2;} - { (exit 1); exit 1; }; };; + as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;; esac case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac - ac_file_inputs="$ac_file_inputs '$ac_f'" + as_fn_append ac_file_inputs " '$ac_f'" done # Let's still pretend it is `configure' which instantiates (i.e., don't @@ -13467,7 +10272,7 @@ $as_echo "$as_me: error: cannot find input file: $ac_f" >&2;} `' by configure.' if test x"$ac_file" != x-; then configure_input="$ac_file. $configure_input" - { $as_echo "$as_me:$LINENO: creating $ac_file" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5 $as_echo "$as_me: creating $ac_file" >&6;} fi # Neutralize special characters interpreted by sed in replacement strings. @@ -13479,10 +10284,8 @@ $as_echo "$as_me: creating $ac_file" >&6;} esac case $ac_tag in - *:-:* | *:-) cat >"$tmp/stdin" \ - || { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5 -$as_echo "$as_me: error: could not create $ac_file" >&2;} - { (exit 1); exit 1; }; } ;; + *:-:* | *:-) cat >"$ac_tmp/stdin" \ + || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; esac ;; esac @@ -13510,47 +10313,7 @@ $as_echo X"$ac_file" | q } s/.*/./; q'` - { as_dir="$ac_dir" - case $as_dir in #( - -*) as_dir=./$as_dir;; - esac - test -d "$as_dir" || { $as_mkdir_p && mkdir -p "$as_dir"; } || { - as_dirs= - while :; do - case $as_dir in #( - *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( - *) as_qdir=$as_dir;; - esac - as_dirs="'$as_qdir' $as_dirs" - as_dir=`$as_dirname -- "$as_dir" || -$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$as_dir" : 'X\(//\)[^/]' \| \ - X"$as_dir" : 'X\(//\)$' \| \ - X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$as_dir" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ - s//\1/ - q - } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - test -d "$as_dir" && break - done - test -z "$as_dirs" || eval "mkdir $as_dirs" - } || test -d "$as_dir" || { { $as_echo "$as_me:$LINENO: error: cannot create directory $as_dir" >&5 -$as_echo "$as_me: error: cannot create directory $as_dir" >&2;} - { (exit 1); exit 1; }; }; } + as_dir="$ac_dir"; as_fn_mkdir_p ac_builddir=. case "$ac_dir" in @@ -13607,7 +10370,6 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # If the template does not know about datarootdir, expand it. # FIXME: This hack should be removed a few years after 2.60. ac_datarootdir_hack=; ac_datarootdir_seen= - ac_sed_dataroot=' /datarootdir/ { p @@ -13617,12 +10379,11 @@ ac_sed_dataroot=' /@docdir@/p /@infodir@/p /@localedir@/p -/@mandir@/p -' +/@mandir@/p' case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in *datarootdir*) ac_datarootdir_seen=yes;; *@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) - { $as_echo "$as_me:$LINENO: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 $as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 @@ -13632,7 +10393,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 s&@infodir@&$infodir&g s&@localedir@&$localedir&g s&@mandir@&$mandir&g - s&\\\${datarootdir}&$datarootdir&g' ;; + s&\\\${datarootdir}&$datarootdir&g' ;; esac _ACEOF @@ -13660,31 +10421,28 @@ s&@INSTALL@&$ac_INSTALL&;t t s&@MKDIR_P@&$ac_MKDIR_P&;t t $ac_datarootdir_hack " -eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$tmp/subs.awk" >$tmp/out \ - || { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5 -$as_echo "$as_me: error: could not create $ac_file" >&2;} - { (exit 1); exit 1; }; } +eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \ + >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5 test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && - { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } && - { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } && - { $as_echo "$as_me:$LINENO: WARNING: $ac_file contains a reference to the variable \`datarootdir' -which seems to be undefined. Please make sure it is defined." >&5 + { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } && + { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \ + "$ac_tmp/out"`; test -z "$ac_out"; } && + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir' +which seems to be undefined. Please make sure it is defined" >&5 $as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' -which seems to be undefined. Please make sure it is defined." >&2;} +which seems to be undefined. Please make sure it is defined" >&2;} - rm -f "$tmp/stdin" + rm -f "$ac_tmp/stdin" case $ac_file in - -) cat "$tmp/out" && rm -f "$tmp/out";; - *) rm -f "$ac_file" && mv "$tmp/out" "$ac_file";; + -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";; + *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";; esac \ - || { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5 -$as_echo "$as_me: error: could not create $ac_file" >&2;} - { (exit 1); exit 1; }; } + || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; - :C) { $as_echo "$as_me:$LINENO: executing $ac_file commands" >&5 + :C) { $as_echo "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5 $as_echo "$as_me: executing $ac_file commands" >&6;} ;; esac @@ -13692,7 +10450,7 @@ $as_echo "$as_me: executing $ac_file commands" >&6;} case $ac_file$ac_mode in "depfiles":C) test x"$AMDEP_TRUE" != x"" || { - # Autoconf 2.62 quotes --file arguments for eval, but not when files + # Older Autoconf quotes --file arguments for eval, but not when files # are listed without --file. Let's play safe and only enable the eval # if we detect the quoting. case $CONFIG_FILES in @@ -13705,7 +10463,7 @@ $as_echo "$as_me: executing $ac_file commands" >&6;} # Strip MF so we end up with the name of the file. mf=`echo "$mf" | sed -e 's/:.*$//'` # Check whether this is an Automake generated Makefile or not. - # We used to match only the files named `Makefile.in', but + # We used to match only the files named 'Makefile.in', but # some people rename them; so instead we look at the file content. # Grep'ing the first line is not enough: some people post-process # each Makefile.in and add a new line on top of each file to say so. @@ -13739,21 +10497,19 @@ $as_echo X"$mf" | continue fi # Extract the definition of DEPDIR, am__include, and am__quote - # from the Makefile without running `make'. + # from the Makefile without running 'make'. DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` test -z "$DEPDIR" && continue am__include=`sed -n 's/^am__include = //p' < "$mf"` - test -z "am__include" && continue + test -z "$am__include" && continue am__quote=`sed -n 's/^am__quote = //p' < "$mf"` - # When using ansi2knr, U may be empty or an underscore; expand it - U=`sed -n 's/^U = //p' < "$mf"` # Find all dependency output files, they are included files with # $(DEPDIR) in their names. We invoke sed twice because it is the # simplest approach to changing $(DEPDIR) to its actual value in the # expansion. for file in `sed -n " s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ - sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do + sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g'`; do # Make sure the directory exists. test -f "$dirpart/$file" && continue fdir=`$as_dirname -- "$file" || @@ -13779,47 +10535,7 @@ $as_echo X"$file" | q } s/.*/./; q'` - { as_dir=$dirpart/$fdir - case $as_dir in #( - -*) as_dir=./$as_dir;; - esac - test -d "$as_dir" || { $as_mkdir_p && mkdir -p "$as_dir"; } || { - as_dirs= - while :; do - case $as_dir in #( - *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( - *) as_qdir=$as_dir;; - esac - as_dirs="'$as_qdir' $as_dirs" - as_dir=`$as_dirname -- "$as_dir" || -$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$as_dir" : 'X\(//\)[^/]' \| \ - X"$as_dir" : 'X\(//\)$' \| \ - X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$as_dir" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ - s//\1/ - q - } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - test -d "$as_dir" && break - done - test -z "$as_dirs" || eval "mkdir $as_dirs" - } || test -d "$as_dir" || { { $as_echo "$as_me:$LINENO: error: cannot create directory $as_dir" >&5 -$as_echo "$as_me: error: cannot create directory $as_dir" >&2;} - { (exit 1); exit 1; }; }; } + as_dir=$dirpart/$fdir; as_fn_mkdir_p # echo "creating $dirpart/$file" echo '# dummy' > "$dirpart/$file" done @@ -13831,15 +10547,12 @@ $as_echo "$as_me: error: cannot create directory $as_dir" >&2;} done # for ac_tag -{ (exit 0); exit 0; } +as_fn_exit 0 _ACEOF -chmod +x $CONFIG_STATUS ac_clean_files=$ac_clean_files_save test $ac_write_fail = 0 || - { { $as_echo "$as_me:$LINENO: error: write failure creating $CONFIG_STATUS" >&5 -$as_echo "$as_me: error: write failure creating $CONFIG_STATUS" >&2;} - { (exit 1); exit 1; }; } + as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5 # configure is writing to config.log, and then calls config.status. @@ -13860,40 +10573,35 @@ if test "$no_create" != yes; then exec 5>>config.log # Use ||, not &&, to avoid exiting from the if with $? = 1, which # would make configure fail if this is the last instruction. - $ac_cs_success || { (exit 1); exit 1; } + $ac_cs_success || as_fn_exit 1 fi if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then - { $as_echo "$as_me:$LINENO: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} fi #AC_OUTPUT(Make.inc Makefile) ############################################################################### -{ $as_echo "$as_me:$LINENO: +{ $as_echo "$as_me:${as_lineno-$LINENO}: ${PACKAGE_NAME} ${psblas_cv_version} has been configured as follows: - MPF90 : ${MPF90} - MPF77 : ${MPF77} - MPCC : ${MPICC} + MPIFC : ${MPIFC} + MPICC : ${MPICC} FLINK : ${FLINK} FDEFINES : ${FDEFINES} CDEFINES : ${CDEFINES} MODEXT : ${MODEXT} FMFLAG : ${FMFLAG} - F90COPT : ${F90COPT} FCOPT : ${FCOPT} CCOPT : ${CCOPT} - BLAS : ${BLAS_LIBS} METIS detected : ${psblas_cv_have_metis} AMD detected : ${psblas_cv_have_amd} - LIBS : ${LIBS} - LDLIBS : ${LDLIBS} LIBRARYPATH : ${LIBRARYPATH} @@ -13906,27 +10614,22 @@ fi $as_echo "$as_me: ${PACKAGE_NAME} ${psblas_cv_version} has been configured as follows: - MPF90 : ${MPF90} - MPF77 : ${MPF77} - MPCC : ${MPICC} + MPIFC : ${MPIFC} + MPICC : ${MPICC} FLINK : ${FLINK} FDEFINES : ${FDEFINES} CDEFINES : ${CDEFINES} MODEXT : ${MODEXT} FMFLAG : ${FMFLAG} - F90COPT : ${F90COPT} FCOPT : ${FCOPT} CCOPT : ${CCOPT} - BLAS : ${BLAS_LIBS} METIS detected : ${psblas_cv_have_metis} AMD detected : ${psblas_cv_have_amd} - LIBS : ${LIBS} - LDLIBS : ${LDLIBS} LIBRARYPATH : ${LIBRARYPATH} diff --git a/configure.ac b/configure.ac index 72ea3e35..e9b61e56 100755 --- a/configure.ac +++ b/configure.ac @@ -36,11 +36,11 @@ dnl NOTE : There is no cross compilation support. ############################################################################### # NOTE: the literal for version (the second argument to AC_INIT should be a literal!) -AC_INIT([PSBLAS],3.4, salvatore.filippone@uniroma2.it) +AC_INIT([PSBLAS],3.5, salvatore.filippone@cranfield.ac.uk) # VERSION is the file containing the PSBLAS version code # FIXME -psblas_cv_version="3.4" +psblas_cv_version="3.5" # A sample source file AC_CONFIG_SRCDIR([base/modules/psb_base_mod.f90]) @@ -57,13 +57,13 @@ AC_MSG_NOTICE([ Be sure to specify the library paths of your interest. Examples: ./configure --with-libs=-L/some/directory/LIB <- will append to LIBS - FC=mpif90 F77=$FC CC=mpicc ./configure <- will force FC,CC,F77 + FC=mpif90 CC=mpicc ./configure <- will force FC,CC See ./configure --help=short fore more info. -------------------------------------------------------------------------------- ]) ############################################################################### -# Compilers detection: FC,F77,CC should be set, if found. +# Compilers detection: FC,CC should be set, if found. ############################################################################### # # Installation. @@ -94,10 +94,16 @@ case $samplesdir in esac AC_MSG_RESULT([$INSTALL_DIR $INSTALL_INCLUDEDIR $INSTALL_LIBDIR $INSTALL_DOCSDIR $INSTALL_SAMPLESDIR]) -# Note that the following line won't save from troubles. +dnl +dnl We set our own FC flags, ignore those from AC_PROG_FC but not those from the +dnl environment variable. Same for C +dnl +save_FCFLAGS="$FCFLAGS"; AC_PROG_FC([ftn xlf2003_r xlf2003 xlf95_r xlf95 xlf90 xlf pgf95 pgf90 ifort ifc nagfor gfortran]) -AC_PROG_F77([ftn xlf pgf77 ifort ifc nagfor gfortran]) +FCFLAGS="$save_FCFLAGS"; +save_CFLAGS="$CFLAGS"; AC_PROG_CC([xlc pgcc icc gcc cc ]) +CFLAGS="$save_CFLAGS"; dnl AC_PROG_CXX dnl AC_PROG_F90 doesn't exist, at the time of writing this ! @@ -132,7 +138,6 @@ PAC_ARG_SERIAL_MPI if test x"$pac_cv_serial_mpi" == x"yes" ; then FAKEMPI="fakempi.o"; MPIFC="$FC"; - MPIF77="$F77"; MPICC="$CC"; else AC_LANG([C]) @@ -152,22 +157,13 @@ fi ACX_MPI([], [AC_MSG_ERROR([[Cannot find any suitable MPI implementation for Fortran]])]) -AC_LANG(Fortran 77) -if test "X$MPIF77" = "X" ; then - # This is our MPIFC compiler preference: it will override ACX_MPI's first try. - AC_CHECK_PROGS([MPIF77],[mpxlf mpf77 mpif77 ftn]) -fi -ACX_MPI([], [AC_MSG_ERROR([[Cannot find any suitable MPI implementation for Fortran 77]])]) FC="$MPIFC" ; -F77="$MPIF77"; CC="$MPICC"; fi -# We leave a default language for the next checks. -dnl AC_LANG([Fortran 77]) AC_LANG([C]) -dnl Now on, MPIFC should be set, as MPIF77 and MPICC +dnl Now on, MPIFC should be set, and MPICC ############################################################################### # Sanity checks, although redundant (useful when debugging this configure.ac)! @@ -188,8 +184,6 @@ fi dnl NOTE : no spaces before the comma, and no brackets before the second argument! PAC_ARG_WITH_FLAGS(ccopt,CCOPT) PAC_ARG_WITH_FLAGS(fcopt,FCOPT) -#PAC_ARG_WITH_FLAGS(f90copt,F90COPT) -#PAC_ARG_WITH_FLAGS(ldflags,LDFLAGS) PAC_ARG_WITH_LIBS PAC_ARG_WITH_FLAGS(clibs,CLIBS) PAC_ARG_WITH_FLAGS(flibs,FLIBS) @@ -204,10 +198,8 @@ PAC_ARG_WITH_FLAGS(module-path,MODULE_PATH) ############################################################################### dnl Library oriented Autotools facilities (we don't care about this for now) -dnl AC_PROG_LIBTOOL -dnl AM_MAINTAINER_MODE + AC_PROG_RANLIB -dnl system's ranlib will be found, too AM_INIT_AUTOMAKE dnl Specify required version of autoconf. @@ -258,7 +250,6 @@ if test x"$psblas_cv_fc" == "x" ; then elif eval "$MPIFC -v 2>&1 | grep NAG 2>/dev/null" ; then psblas_cv_fc="nag" FC="$MPIFC" - F77="$MPIFC" else psblas_cv_fc="" # unsupported MPI Fortran compiler @@ -271,10 +262,7 @@ PAC_HAVE_MODERN_GFORTRAN( [AC_MSG_ERROR([Bailing out.])] ) fi -# TODO : SEE _AC_PROG_FC_V -# TODO : AC_MSG_ERROR(see "$ac_cv_prog_FC_fc") -# AC_MSG_NOTICE( "ac_cv_prog_FC_fc : $ac_cv_prog_FC_fc") -############################################################################### + ############################################################################### # Linking, symbol mangling, and misc tests @@ -288,10 +276,6 @@ if test X"$ac_cv_sizeof_void_p" == X"8" ; then CDEFINES="-DPtr64Bits $CDEFINES" fi AC_LANG([Fortran]) -if test "X$psblas_cv_fc" == X"pg" ; then - save_FC=$FC - FC=$F77 -fi __AC_FC_NAME_MANGLING if test "X$psblas_cv_fc" == X"pg" ; then FC=$save_FC @@ -349,8 +333,10 @@ AC_MSG_RESULT([ $pac_f_c_names ]) ############################################################################### # Make.inc generation logic ############################################################################### -F90COPT="$FCOPT" - +# Honor CFLAGS if they were specified explicitly, but --with-ccopt take precedence +if test "X$CCOPT" == "X" ; then + CCOPT="$CFLAGS"; +fi if test "X$CCOPT" == "X" ; then if test "X$psblas_cv_fc" == "Xgcc" ; then # note that no space should be placed around the equality symbol in assignements @@ -382,6 +368,10 @@ if test "X$CCOPT" == "X" ; then fi #CFLAGS="${CCOPT}" +# Honor FCFLAGS if they were specified explicitly, but --with-fcopt take precedence +if test "X$FCOPT" == "X" ; then + FCOPT="$FCFLAGS"; +fi if test "X$FCOPT" == "X" ; then if test "X$psblas_cv_fc" == "Xgcc" ; then # note that no space should be placed around the equality symbol in assignations @@ -413,56 +403,17 @@ if test "X$FCOPT" == "X" ; then fi if test "X$psblas_cv_fc" == X"nag" ; then # Add needed options - FCOPT="$FCOPT -dcfuns -f2003 -wmismatch=mpi_scatterv,mpi_alltoallv,mpi_gatherv,mpi_allgatherv" -fi -#FFLAGS="${FCOPT}" - -if test "X$F90COPT" == "X" ; then - if test "X$psblas_cv_fc" == "Xgcc" ; then - # note that no space should be placed around the equality symbol in assignations - # Note : 'native' is valid _only_ on GCC/x86 (32/64 bits) - F90COPT="-O3 $F90COPT" - elif test "X$psblas_cv_fc" == X"xlf" ; then - # XL compiler : consider using -qarch=auto - F90COPT="-O3 -qarch=auto -qsuffix=f=f90:cpp=F90 -qlanglvl=extended $F90COPT" - elif test "X$psblas_cv_fc" == X"ifc" ; then - # other compilers .. - F90COPT="-O3 $F90COPT" - elif test "X$psblas_cv_fc" == X"pg" ; then - # other compilers .. - F90COPT="-fast $F90COPT" - elif test "X$psblas_cv_fc" == X"sun" ; then - F90COPT="-fast $F90COPT" - elif test "X$psblas_cv_fc" == X"cray" ; then - MPIFC="ftn" - F90COPT="-O3 -em $F90COPT" - elif test "X$psblas_cv_fc" == X"nag" ; then - # NAG compiler - F90COPT="-O2" - else - # other compilers .. - F90COPT="-O2 $F90COPT" - fi -else - echo "Found FCFLAGS $F90COPT" - #F90COPT="${FCFLAGS}" -fi -if test "X$psblas_cv_fc" == X"nag" ; then - # Add needed options - F90COPT="$F90COPT -dcfuns -f2003 -wmismatch=mpi_scatterv,mpi_alltoallv,mpi_gatherv,mpi_allgatherv" + FCOPT="$FCOPT -dcfuns -f2003 -wmismatch=mpi_scatterv,mpi_alltoallv,mpi_gatherv,mpi_allgatherv" EXTRA_OPT="-mismatch_all" fi +# COPT,FCOPT are aliases for CFLAGS,FCFLAGS . ############################################################################## # Compilers variables selection ############################################################################## -F90=${FC} -MPF90=${MPIFC} FC=${FC} -MPF77=${MPIFC} CC=${CC} -MPCC=${MPICC} CCOPT="$CCOPT $C99OPT" @@ -470,11 +421,7 @@ CCOPT="$CCOPT $C99OPT" # Choice of our compilers, needed by Make.inc ############################################################################## if test "X$FLINK" == "X" ; then - FLINK=${MPF77} -fi - -if test "X$F90LINK" == "X" ; then - F90LINK=${MPF90} + FLINK=${MPF90} fi ############################################################################## @@ -759,11 +706,8 @@ AC_SUBST(PRECMODNAME) AC_SUBST(METHDMODNAME) AC_SUBST(UTILMODNAME) AC_SUBST(BASELIBNAME) -AC_SUBST(F90) -AC_SUBST(F90COPT) -AC_SUBST(MPF90) -AC_SUBST(MPF77) -AC_SUBST(MPCC) +AC_SUBST(MPIFC) +AC_SUBST(MPICC) AC_SUBST(FCOPT) AC_SUBST(CCOPT) AC_SUBST(EXTRA_OPT) @@ -771,9 +715,7 @@ AC_SUBST(FAKEMPI) AC_SUBST(FIFLAG) AC_SUBST(FMFLAG) AC_SUBST(MODEXT) -AC_SUBST(MPIF77) AC_SUBST(FLINK) -AC_SUBST(F90LINK) AC_SUBST(LIBS) AC_SUBST(AR) AC_SUBST(RANLIB) @@ -806,14 +748,10 @@ FDEFINES=$(PSBFDEFINES) # These should be portable rules, arent they? .c.o: $(CC) $(CCOPT) $(CINCLUDES) $(CDEFINES) -c $< -o $@ -.f.o: - $(FC) $(FCOPT) $(FINCLUDES) -c $< -o $@ .f90.o: - $(F90) $(F90COPT) $(FINCLUDES) -c $< -o $@ -.F.o: - $(FC) $(FCOPT) $(FINCLUDES) $(FDEFINES) -c $< -o $@ + $(FC) $(FCOPT) $(FINCLUDES) -c $< -o $@ .F90.o: - $(F90) $(F90COPT) $(FINCLUDES) $(FDEFINES) -c $< -o $@' + $(FC) $(FCOPT) $(FINCLUDES) $(FDEFINES) -c $< -o $@' AC_SUBST(PSBLASRULES) @@ -836,55 +774,22 @@ dnl Please note that brackets around variable identifiers are absolutely needed AC_MSG_NOTICE([ ${PACKAGE_NAME} ${psblas_cv_version} has been configured as follows: - MPF90 : ${MPF90} - MPF77 : ${MPF77} - MPCC : ${MPICC} -dnl F90LINK : ${F90LINK} + MPIFC : ${MPIFC} + MPICC : ${MPICC} FLINK : ${FLINK} FDEFINES : ${FDEFINES} CDEFINES : ${CDEFINES} -dnl CFLAGS : ${CFLAGS} -dnl FFLAGS : ${FFLAGS} -dnl FCFLAGS : ${FCFLAGS} MODEXT : ${MODEXT} FMFLAG : ${FMFLAG} - F90COPT : ${F90COPT} FCOPT : ${FCOPT} CCOPT : ${CCOPT} -dnl ESSL/PESSL : ${psblas_cv_have_essl} / ${psblas_cv_have_pessl} - BLAS : ${BLAS_LIBS} -dnl BLACS : ${BLACS_LIBS} METIS detected : ${psblas_cv_have_metis} AMD detected : ${psblas_cv_have_amd} -dnl SuperLU detected : ${psblas_cv_have_superlu} -dnl SuperLU_Dist detected : ${psblas_cv_have_superludist} -dnl UMFPack detected : ${psblas_cv_have_umfpack} -dnl F90 : ${F90} -dnl FC : ${FC} -dnl CC : ${CC} -dnl F77 : ${F77} -dnl FMFLAG : ${FMFLAG} -dnl FIFLAG : ${FIFLAG} - -dnl MPICXX : ${MPICXX} -dnl MPIF77 : ${MPIF77} -dnl MPIFC : ${MPIFC} -dnl MPIF90 : ${MPIF90} -dnl MPCC : ${MPCC} -dnl AR : ${AR} -dnl RANLIB : ${RANLIB} LIBS : ${LIBS} -dnl FIXME : CLIBS seems an useless variable.. -dnl FIXME : FLIBS seems an useless variable.. -dnl FIXME : LIBS seems an useless variable.. -dnl CLIBS : ${CLIBS} -dnl FLIBS : ${CLIBS} -dnl LIBS : ${LIBS} - dnl Note : we should use LDLIBS sooner or later! LDLIBS : ${LDLIBS} diff --git a/docs/html/footnode.html b/docs/html/footnode.html index 291f23d6..086fb082 100644 --- a/docs/html/footnode.html +++ b/docs/html/footnode.html @@ -18,7 +18,7 @@ original version by: Nikos Drakos, CBLU, University of Leeds - + @@ -140,12 +140,12 @@ sample scatter/gather routines. . -
... method4
+
... method4
Note: the implementation is for $FCG(1)$.
.
diff --git a/docs/html/img1.png b/docs/html/img1.png
index 177f5fa0..2bcd8b2c 100644
Binary files a/docs/html/img1.png and b/docs/html/img1.png differ
diff --git a/docs/html/img10.png b/docs/html/img10.png
index a0a82f81..2049ac15 100644
Binary files a/docs/html/img10.png and b/docs/html/img10.png differ
diff --git a/docs/html/img100.png b/docs/html/img100.png
index 5ba455f1..50ce2fc9 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 f8b9fcc7..c44d0691 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 fc57387b..503b1ab6 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 b3574f7c..76aba149 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 a28b05f5..dca74259 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 f748a4ae..6a6e2e7a 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 8c4fdac6..05d4f74a 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 4db90915..de35d7fa 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 ee6a6fa7..e157a61d 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 6335fb67..92823e6a 100644
Binary files a/docs/html/img109.png and b/docs/html/img109.png differ
diff --git a/docs/html/img11.png b/docs/html/img11.png
index faa0ebc9..74543e1c 100644
Binary files a/docs/html/img11.png and b/docs/html/img11.png differ
diff --git a/docs/html/img110.png b/docs/html/img110.png
index 5fabb084..c352f896 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 f63c87ab..f21abed1 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 b6c457e6..bec89570 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 dee32f8a..0f14d830 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 a25634ea..ffb003b8 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 d70029cc..04caf6e5 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 02702497..47f71ed5 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 975b45f1..5cfc2662 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 04ef8edd..988e80e2 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 cc936711..34390973 100644
Binary files a/docs/html/img119.png and b/docs/html/img119.png differ
diff --git a/docs/html/img12.png b/docs/html/img12.png
index 1fc9042c..cd9db22b 100644
Binary files a/docs/html/img12.png and b/docs/html/img12.png differ
diff --git a/docs/html/img120.png b/docs/html/img120.png
index ac3c1854..be0d5a7d 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 25062a00..101ad4d6 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 20fc4dfb..a8d143ed 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 d886b416..faeee6e4 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 cfcff011..18112b72 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 d5118a52..f51cb667 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 66dbff94..83d7a517 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 c357f1d6..4a97c54d 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 a46f77d9..51862530 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 4748cae4..9cf86be4 100644
Binary files a/docs/html/img129.png and b/docs/html/img129.png differ
diff --git a/docs/html/img13.png b/docs/html/img13.png
index c6cffbc0..07d08f0b 100644
Binary files a/docs/html/img13.png and b/docs/html/img13.png differ
diff --git a/docs/html/img130.png b/docs/html/img130.png
index 29fb2ea1..77dcbe5b 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 05328cf8..2dc97d67 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 cb12091b..5976bb15 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 d8c10413..c39d31df 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 5f05f4fd..fad10afc 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 f97dc24a..865798ac 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 ed29c409..a1ce8b14 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
index 07b4ea57..f5338df3 100644
Binary files a/docs/html/img137.png and b/docs/html/img137.png differ
diff --git a/docs/html/img138.png b/docs/html/img138.png
index dd13fe88..838a32b2 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 3d12b834..bb8f30e9 100644
Binary files a/docs/html/img139.png and b/docs/html/img139.png differ
diff --git a/docs/html/img14.png b/docs/html/img14.png
index 9589f72f..4f94ec28 100644
Binary files a/docs/html/img14.png and b/docs/html/img14.png differ
diff --git a/docs/html/img140.png b/docs/html/img140.png
index e6fc4eb4..b553a918 100644
Binary files a/docs/html/img140.png and b/docs/html/img140.png differ
diff --git a/docs/html/img142.png b/docs/html/img142.png
index 11f440af..10db9042 100644
Binary files a/docs/html/img142.png and b/docs/html/img142.png differ
diff --git a/docs/html/img144.png b/docs/html/img144.png
index f87e80b4..8960f51e 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 a7a6994c..d7b41db3 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 e037db82..aeaea35d 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 91b263a9..4254c267 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 36f76c67..4092180a 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 de48105c..048420fa 100644
Binary files a/docs/html/img149.png and b/docs/html/img149.png differ
diff --git a/docs/html/img15.png b/docs/html/img15.png
index a6aebe8b..7448b89a 100644
Binary files a/docs/html/img15.png and b/docs/html/img15.png differ
diff --git a/docs/html/img150.png b/docs/html/img150.png
index 8542684c..d02b8235 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 055fe19c..aef24ec9 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 aac4cb10..ce7361fa 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 de6646f6..ea23ca58 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 b83771c4..4713133c 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 be0a7dc8..0603223e 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 cd02dc97..b59c8d89 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 136f083c..0b4b6c1c 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 cc511c98..f7f0a499 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 21d43da6..cc511c98 100644
Binary files a/docs/html/img159.png and b/docs/html/img159.png differ
diff --git a/docs/html/img16.png b/docs/html/img16.png
index 368563a0..0ee8a950 100644
Binary files a/docs/html/img16.png and b/docs/html/img16.png differ
diff --git a/docs/html/img160.png b/docs/html/img160.png
index f6cf3fb4..3905cce7 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 54c4ceab..007f4bd1 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 e6dd6cbc..4f50eeb0 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 6e126465..4b9596ba 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 43584cdb..0e2bf7fa 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 401770d8..09d1d796 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 34ea6338..41988bf5 100644
Binary files a/docs/html/img166.png and b/docs/html/img166.png differ
diff --git a/docs/html/img17.png b/docs/html/img17.png
index 09665086..47445ae6 100644
Binary files a/docs/html/img17.png and b/docs/html/img17.png differ
diff --git a/docs/html/img18.png b/docs/html/img18.png
index 8cad64c4..5881302d 100644
Binary files a/docs/html/img18.png and b/docs/html/img18.png differ
diff --git a/docs/html/img19.png b/docs/html/img19.png
index e2f64e22..e98a26a4 100644
Binary files a/docs/html/img19.png and b/docs/html/img19.png differ
diff --git a/docs/html/img2.png b/docs/html/img2.png
index ff949da3..5658c465 100644
Binary files a/docs/html/img2.png and b/docs/html/img2.png differ
diff --git a/docs/html/img20.png b/docs/html/img20.png
index 36e2429a..40c59dfd 100644
Binary files a/docs/html/img20.png and b/docs/html/img20.png differ
diff --git a/docs/html/img21.png b/docs/html/img21.png
index 37754daf..bd2bea65 100644
Binary files a/docs/html/img21.png and b/docs/html/img21.png differ
diff --git a/docs/html/img22.png b/docs/html/img22.png
index 3601668f..a7891591 100644
Binary files a/docs/html/img22.png and b/docs/html/img22.png differ
diff --git a/docs/html/img23.png b/docs/html/img23.png
index 5543c394..23642ca7 100644
Binary files a/docs/html/img23.png and b/docs/html/img23.png differ
diff --git a/docs/html/img24.png b/docs/html/img24.png
index 6d6f8d97..1d343a4e 100644
Binary files a/docs/html/img24.png and b/docs/html/img24.png differ
diff --git a/docs/html/img25.png b/docs/html/img25.png
index 0ead1300..06315063 100644
Binary files a/docs/html/img25.png and b/docs/html/img25.png differ
diff --git a/docs/html/img26.png b/docs/html/img26.png
index 36e85bae..8d430d7e 100644
Binary files a/docs/html/img26.png and b/docs/html/img26.png differ
diff --git a/docs/html/img27.png b/docs/html/img27.png
index af516a6f..7dfb3447 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 cf0de654..db98c2fe 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 cf338a2d..e341cc95 100644
Binary files a/docs/html/img29.png and b/docs/html/img29.png differ
diff --git a/docs/html/img3.png b/docs/html/img3.png
index 38d5421f..09ebbe5b 100644
Binary files a/docs/html/img3.png and b/docs/html/img3.png differ
diff --git a/docs/html/img30.png b/docs/html/img30.png
index e2808334..e1c0218c 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 9dfa870e..b48895ac 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 028c9624..e277596f 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 d386eeab..fb967761 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 d2b93919..ef5546ea 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 32b6c22a..5f314377 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 54ed04f5..51da0ffd 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 6e2a075d..8ee6a7ae 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 252f2248..e1a29cbd 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 9d431490..262d8531 100644
Binary files a/docs/html/img39.png and b/docs/html/img39.png differ
diff --git a/docs/html/img4.png b/docs/html/img4.png
index ecdda692..cb98a058 100644
Binary files a/docs/html/img4.png and b/docs/html/img4.png differ
diff --git a/docs/html/img40.png b/docs/html/img40.png
index 30713758..ec712e54 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 a9aaf5fb..38034143 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 d32d251d..6a1cb856 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 b604f4c3..94aa220b 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 b1b43822..3f7ed03f 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 2007d924..ac19136b 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 dbaeec96..698eace9 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 776065bb..15dbb2d1 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 2c192ea1..9849391f 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 f243fa41..98ba300c 100644
Binary files a/docs/html/img49.png and b/docs/html/img49.png differ
diff --git a/docs/html/img5.png b/docs/html/img5.png
index 7d284073..c46a3819 100644
Binary files a/docs/html/img5.png and b/docs/html/img5.png differ
diff --git a/docs/html/img50.png b/docs/html/img50.png
index 70842284..0167f008 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 ab7a4d6f..92679bed 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 9ac27659..94cead1b 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 49405c6c..2bfb5e36 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 9c2c5bda..98a0daec 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 37e1abc9..a7fd3b73 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 12eaee59..7d104962 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 f5804990..6ce9093e 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 7b90b8e3..a166a3f6 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 b35c4640..9eb4538d 100644
Binary files a/docs/html/img59.png and b/docs/html/img59.png differ
diff --git a/docs/html/img6.png b/docs/html/img6.png
index ce3d3afa..28b47786 100644
Binary files a/docs/html/img6.png and b/docs/html/img6.png differ
diff --git a/docs/html/img60.png b/docs/html/img60.png
index 572e92a6..f213c213 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 a2cfc500..d71bd926 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 7ca4eaa1..432763a5 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 29fd520d..8be79679 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 7ca4eaa1..432763a5 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 1869e8a9..0f133fbf 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 24f2520a..33b41c4d 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 987d5e9a..2068bf5d 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 dfab901a..75cf0140 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 ace53cc9..2202ac74 100644
Binary files a/docs/html/img69.png and b/docs/html/img69.png differ
diff --git a/docs/html/img7.png b/docs/html/img7.png
index 274f4cea..34864f25 100644
Binary files a/docs/html/img7.png and b/docs/html/img7.png differ
diff --git a/docs/html/img70.png b/docs/html/img70.png
index 77eadeca..5fd95a8c 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 a6f2cd2a..ab90c16d 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 5ab9f61a..c4b1412a 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 d811ad4a..7f9a996c 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 c04b116c..b286bba5 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 ba2664e1..23795876 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 9ec62343..bfd4b177 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 487129b0..c86cc64f 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 43761162..18b5c0a9 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 cfc70a88..9c2f557f 100644
Binary files a/docs/html/img79.png and b/docs/html/img79.png differ
diff --git a/docs/html/img8.png b/docs/html/img8.png
index 1945f0bf..52f4171f 100644
Binary files a/docs/html/img8.png and b/docs/html/img8.png differ
diff --git a/docs/html/img80.png b/docs/html/img80.png
index d8cb1b07..707525d8 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 cc63fdf4..0630d10e 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 57f66233..3ffa14f5 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 e21e7596..a4793c56 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 c8f7e127..c1e8d746 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 dc5cf6b4..37a6ec01 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 ea21275f..f110f1aa 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 33aa3324..7272efa2 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 dcbb50bf..6205fcae 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 c0a70a7c..79daf797 100644
Binary files a/docs/html/img89.png and b/docs/html/img89.png differ
diff --git a/docs/html/img9.png b/docs/html/img9.png
index ebda7b70..a7b5737a 100644
Binary files a/docs/html/img9.png and b/docs/html/img9.png differ
diff --git a/docs/html/img90.png b/docs/html/img90.png
index 661e0031..d7b63b63 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 25d0e21f..1a5e9297 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 a1f035bb..a96b5b14 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 cc92a9ee..a16e477b 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 58e66791..c7fd4779 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 c4e9e92d..485ba97e 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 2c5bd103..108b51d1 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 a1a60d4b..6a4aacc6 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 ec60e6f9..155fcb94 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 186f369e..75c942c9 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 7e07ec7f..00cf6b85 100644
--- a/docs/html/index.html
+++ b/docs/html/index.html
@@ -59,9 +59,9 @@ University of Rome ``Tor Vergata'', Italy
 


-Software version: 3.4.1 +Software version: 3.5.0
-June 2, 2016. +May 1st, 2017 @@ -377,32 +377,34 @@ of a dense vector HREF="node123.html">Preconditioner routines
-
  • Iterative Methods -

    diff --git a/docs/html/node1.html b/docs/html/node1.html index 6c936e7a..aa41f85b 100644 --- a/docs/html/node1.html +++ b/docs/html/node1.html @@ -26,21 +26,21 @@ original version by: Nikos Drakos, CBLU, University of Leeds - next - up - previous
    - Next: Next: Introduction - Up: Up: userhtml - Previous: Previous: userhtml

    @@ -53,54 +53,54 @@ Contents

    diff --git a/docs/html/node10.html b/docs/html/node10.html index c765c867..d41387d6 100644 --- a/docs/html/node10.html +++ b/docs/html/node10.html @@ -26,26 +26,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds - next - up - previous - contents
    - Next: Next: Descriptor Methods - Up: Up: Data Structures and Classes - Previous: Previous: Data Structures and Classes -   Contents

    @@ -250,54 +250,54 @@ state, which can take the following values: Subsections


    - next - up - previous - contents
    - Next: Next: Descriptor Methods - Up: Up: Data Structures and Classes - Previous: Previous: Data Structures and Classes -   Contents diff --git a/docs/html/node100.html b/docs/html/node100.html index 8926f089..d84c4d40 100644 --- a/docs/html/node100.html +++ b/docs/html/node100.html @@ -26,26 +26,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds - next - up - previous - contents
    - Next: Next: psb_exit Exit - Up: Up: Parallel environment routines - Previous: Previous: psb_init Initializes -   Contents

    @@ -145,26 +145,26 @@ Specified as: an integer variable.

  • - next - up - previous - contents
    - Next: Next: psb_exit Exit - Up: Up: Parallel environment routines - Previous: Previous: psb_init Initializes -   Contents diff --git a/docs/html/node101.html b/docs/html/node101.html index 9df27b81..d961f353 100644 --- a/docs/html/node101.html +++ b/docs/html/node101.html @@ -26,26 +26,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds - next - up - previous - contents
    - Next: Next: psb_get_mpicomm Get - Up: Up: Parallel environment routines - Previous: Previous: psb_info Return -   Contents

    @@ -124,26 +124,26 @@ Specified as: a logical variable, default value: true.


    - next - up - previous - contents
    - Next: Next: psb_get_mpicomm Get - Up: Up: Parallel environment routines - Previous: Previous: psb_info Return -   Contents diff --git a/docs/html/node102.html b/docs/html/node102.html index 41e5a664..5f7db7f7 100644 --- a/docs/html/node102.html +++ b/docs/html/node102.html @@ -26,26 +26,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds - next - up - previous - contents
    - Next: Next: psb_get_rank Get - Up: Up: Parallel environment routines - Previous: Previous: psb_exit Exit -   Contents

    diff --git a/docs/html/node103.html b/docs/html/node103.html index 593c23b6..411d84c0 100644 --- a/docs/html/node103.html +++ b/docs/html/node103.html @@ -26,26 +26,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds - next - up - previous - contents
    - Next: Next: psb_wtime Wall - Up: Up: Parallel environment routines - Previous: Previous: psb_get_mpicomm Get -   Contents

    diff --git a/docs/html/node104.html b/docs/html/node104.html index bf7c024c..a2fbecec 100644 --- a/docs/html/node104.html +++ b/docs/html/node104.html @@ -26,26 +26,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds - next - up - previous - contents
    - Next: Next: psb_barrier Sinchronization - Up: Up: Parallel environment routines - Previous: Previous: psb_get_rank Get -   Contents

    diff --git a/docs/html/node105.html b/docs/html/node105.html index f6fd5967..bccdd543 100644 --- a/docs/html/node105.html +++ b/docs/html/node105.html @@ -26,26 +26,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds - next - up - previous - contents
    - Next: Next: psb_abort Abort - Up: Up: Parallel environment routines - Previous: Previous: psb_wtime Wall -   Contents

    diff --git a/docs/html/node106.html b/docs/html/node106.html index f6c37ad8..cef065b1 100644 --- a/docs/html/node106.html +++ b/docs/html/node106.html @@ -26,26 +26,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds - next - up - previous - contents
    - Next: Next: psb_bcast Broadcast - Up: Up: Parallel environment routines - Previous: Previous: psb_barrier Sinchronization -   Contents

    diff --git a/docs/html/node107.html b/docs/html/node107.html index 940c0a64..3c45916e 100644 --- a/docs/html/node107.html +++ b/docs/html/node107.html @@ -26,26 +26,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds - next - up - previous - contents
    - Next: Next: psb_sum Global - Up: Up: Parallel environment routines - Previous: Previous: psb_abort Abort -   Contents

    @@ -135,26 +135,26 @@ scalar, or a rank 1 or 2 array, or a character or logical scalar. Type, kind, r


    - next - up - previous - contents
    - Next: Next: psb_sum Global - Up: Up: Parallel environment routines - Previous: Previous: psb_abort Abort -   Contents diff --git a/docs/html/node108.html b/docs/html/node108.html index 465e3b1b..e83cff6c 100644 --- a/docs/html/node108.html +++ b/docs/html/node108.html @@ -26,26 +26,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds - next - up - previous - contents
    - Next: Next: psb_max Global - Up: Up: Parallel environment routines - Previous: Previous: psb_bcast Broadcast -   Contents

    @@ -152,26 +152,26 @@ Type, kind, rank and size must agree on all processes.


    - next - up - previous - contents
    - Next: Next: psb_max Global - Up: Up: Parallel environment routines - Previous: Previous: psb_bcast Broadcast -   Contents diff --git a/docs/html/node109.html b/docs/html/node109.html index 3f76fdea..4bfe6ac2 100644 --- a/docs/html/node109.html +++ b/docs/html/node109.html @@ -26,26 +26,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds - next - up - previous - contents
    - Next: Next: psb_min Global - Up: Up: Parallel environment routines - Previous: Previous: psb_sum Global -   Contents

    @@ -151,26 +151,26 @@ scalar, or a rank 1 or 2 array. Type, kind, rank and size must agree on all pro


    - next - up - previous - contents
    - Next: Next: psb_min Global - Up: Up: Parallel environment routines - Previous: Previous: psb_sum Global -   Contents diff --git a/docs/html/node11.html b/docs/html/node11.html index 6de5eb01..3d42b7e7 100644 --- a/docs/html/node11.html +++ b/docs/html/node11.html @@ -26,26 +26,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds - next - up - previous - contents
    - Next: Next: get_local_rows Get - Up: Up: Descriptor data structure - Previous: Previous: Descriptor data structure -   Contents

    diff --git a/docs/html/node110.html b/docs/html/node110.html index 18a0df11..9f71fa1b 100644 --- a/docs/html/node110.html +++ b/docs/html/node110.html @@ -26,26 +26,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds - next - up - previous - contents
    - Next: Next: psb_amx Global - Up: Up: Parallel environment routines - Previous: Previous: psb_max Global -   Contents

    @@ -153,26 +153,26 @@ Type, kind, rank and size must agree on all processes.


    - next - up - previous - contents
    - Next: Next: psb_amx Global - Up: Up: Parallel environment routines - Previous: Previous: psb_max Global -   Contents diff --git a/docs/html/node111.html b/docs/html/node111.html index 987c253d..7f449160 100644 --- a/docs/html/node111.html +++ b/docs/html/node111.html @@ -26,26 +26,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds - next - up - previous - contents
    - Next: Next: psb_amn Global - Up: Up: Parallel environment routines - Previous: Previous: psb_min Global -   Contents

    @@ -151,26 +151,26 @@ scalar, or a rank 1 or 2 array. Type, kind, rank and size must agree on all pro


    - next - up - previous - contents
    - Next: Next: psb_amn Global - Up: Up: Parallel environment routines - Previous: Previous: psb_min Global -   Contents diff --git a/docs/html/node112.html b/docs/html/node112.html index de538b53..61b2d735 100644 --- a/docs/html/node112.html +++ b/docs/html/node112.html @@ -26,26 +26,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds - next - up - previous - contents
    - Next: Next: psb_snd Send - Up: Up: Parallel environment routines - Previous: Previous: psb_amx Global -   Contents

    @@ -153,26 +153,26 @@ Type, kind, rank and size must agree on all processes.


    - next - up - previous - contents
    - Next: Next: psb_snd Send - Up: Up: Parallel environment routines - Previous: Previous: psb_amx Global -   Contents diff --git a/docs/html/node113.html b/docs/html/node113.html index 5182b0a4..d1032a4e 100644 --- a/docs/html/node113.html +++ b/docs/html/node113.html @@ -26,26 +26,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds - next - up - previous - contents
    - Next: Next: psb_rcv Receive - Up: Up: Parallel environment routines - Previous: Previous: psb_amn Global -   Contents

    @@ -132,7 +132,7 @@ Specified as: an integer value - next - up - previous - contents
    - Next: Next: psb_rcv Receive - Up: Up: Parallel environment routines - Previous: Previous: psb_amn Global -   Contents diff --git a/docs/html/node114.html b/docs/html/node114.html index 4e4a7ba7..f61e13d1 100644 --- a/docs/html/node114.html +++ b/docs/html/node114.html @@ -25,26 +25,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds - next - up - previous - contents
    - Next: Next: Error handling - Up: Up: Parallel environment routines - Previous: Previous: psb_snd Send -   Contents

    @@ -115,7 +115,7 @@ Specified as: an integer value - next - up - previous - contents
    - Next: Next: Error handling - Up: Up: Parallel environment routines - Previous: Previous: psb_snd Send -   Contents diff --git a/docs/html/node115.html b/docs/html/node115.html index 251ff792..432e207c 100644 --- a/docs/html/node115.html +++ b/docs/html/node115.html @@ -26,26 +26,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds - next - up - previous - contents
    - Next: Next: Utilities - Up: Up: userhtml - Previous: Previous: psb_rcv Receive -   Contents

    @@ -215,7 +215,7 @@ ifstarsubroutinesubroutinepsb_errorPrints the error stack content and aborts


    \begin{lstlisting}
 call psb_error(icontxt)
@@ -317,26 +317,26 @@ Specified as: an integer. Possible values: <code>psb_act_ret</code>,
 <P>
 <HR>
 <!--Navigation Panel-->
-<A NAME= next - up - previous - contents
    - Next: Next: Utilities - Up: Up: userhtml - Previous: Previous: psb_rcv Receive -   Contents diff --git a/docs/html/node116.html b/docs/html/node116.html index d66f5cc7..8fc649e4 100644 --- a/docs/html/node116.html +++ b/docs/html/node116.html @@ -26,26 +26,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds - next - up - previous - contents
    - Next: Next: hb_read Read - Up: Up: userhtml - Previous: Previous: Error handling -   Contents

    @@ -68,22 +68,22 @@ module psb_util_mod. Subsections

    diff --git a/docs/html/node117.html b/docs/html/node117.html index 97babbaa..3a74a65a 100644 --- a/docs/html/node117.html +++ b/docs/html/node117.html @@ -26,26 +26,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds - next - up - previous - contents
    - Next: Next: hb_write Write - Up: Up: Utilities - Previous: Previous: Utilities -   Contents

    @@ -134,26 +134,26 @@ An integer value; 0 means no error has been detected.


    - next - up - previous - contents
    - Next: Next: hb_write Write - Up: Up: Utilities - Previous: Previous: Utilities -   Contents diff --git a/docs/html/node118.html b/docs/html/node118.html index 6ffc2ef2..18251b61 100644 --- a/docs/html/node118.html +++ b/docs/html/node118.html @@ -26,26 +26,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds - next - up - previous - contents
    - Next: Next: mm_mat_read Read - Up: Up: Utilities - Previous: Previous: hb_read Read -   Contents

    @@ -143,26 +143,26 @@ An integer value; 0 means no error has been detected.


    - next - up - previous - contents
    - Next: Next: mm_mat_read Read - Up: Up: Utilities - Previous: Previous: hb_read Read -   Contents diff --git a/docs/html/node119.html b/docs/html/node119.html index d57f2e6f..65154b48 100644 --- a/docs/html/node119.html +++ b/docs/html/node119.html @@ -26,26 +26,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds - next - up - previous - contents
    - Next: Next: mm_array_read Read - Up: Up: Utilities - Previous: Previous: hb_write Write -   Contents

    diff --git a/docs/html/node12.html b/docs/html/node12.html index 2545d8d0..04dc7c64 100644 --- a/docs/html/node12.html +++ b/docs/html/node12.html @@ -26,26 +26,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds - next - up - previous - contents
    - Next: Next: get_local_cols Get - Up: Up: Descriptor data structure - Previous: Previous: Descriptor Methods -   Contents

    diff --git a/docs/html/node120.html b/docs/html/node120.html index ca74bd06..e86313ca 100644 --- a/docs/html/node120.html +++ b/docs/html/node120.html @@ -26,26 +26,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds - next - up - previous - contents
    - Next: Next: mm_mat_write Write - Up: Up: Utilities - Previous: Previous: mm_mat_read Read -   Contents

    diff --git a/docs/html/node121.html b/docs/html/node121.html index e559692b..b49cf637 100644 --- a/docs/html/node121.html +++ b/docs/html/node121.html @@ -26,26 +26,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds - next - up - previous - contents
    - Next: Next: mm_array_write Write - Up: Up: Utilities - Previous: Previous: mm_array_read Read -   Contents

    diff --git a/docs/html/node122.html b/docs/html/node122.html index a2214668..7460e8c2 100644 --- a/docs/html/node122.html +++ b/docs/html/node122.html @@ -25,26 +25,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds - next - up - previous - contents
    - Next: Next: Preconditioner routines - Up: Up: Utilities - Previous: Previous: mm_mat_write Write -   Contents

    diff --git a/docs/html/node123.html b/docs/html/node123.html index 4d3582a2..22f70f51 100644 --- a/docs/html/node123.html +++ b/docs/html/node123.html @@ -18,7 +18,7 @@ original version by: Nikos Drakos, CBLU, University of Leeds - + @@ -26,26 +26,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds - next - up - previous - contents
    - Next: psb_precinit Initialize - Up: Next: init Initialize + Up: userhtml - Previous: Previous: mm_array_write Write -   Contents

    @@ -76,19 +76,21 @@ module psb_prec_mod. Subsections

    diff --git a/docs/html/node124.html b/docs/html/node124.html index 14a9fea3..93f5f8ef 100644 --- a/docs/html/node124.html +++ b/docs/html/node124.html @@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds Jens Lippmann, Marek Rouchal, Martin Wilck and others --> -psb_precinit -- Initialize a preconditioner - +init -- Initialize a preconditioner + @@ -26,38 +26,38 @@ original version by: Nikos Drakos, CBLU, University of Leeds - next - up - previous - contents
    - Next: psb_precbld Builds - Up: Next: build Builds + Up: Preconditioner routines - Previous: Previous: Preconditioner routines -   Contents

    -psb_precinit -- Initialize a preconditioner +init -- Initialize a preconditioner

    -call psb_precinit(prec, ptype, info)
    +call prec%init(ptype, info)
     

    diff --git a/docs/html/node125.html b/docs/html/node125.html index de5472ff..8865caca 100644 --- a/docs/html/node125.html +++ b/docs/html/node125.html @@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds Jens Lippmann, Marek Rouchal, Martin Wilck and others --> -psb_precbld -- Builds a preconditioner - +build -- Builds a preconditioner + @@ -26,38 +26,38 @@ original version by: Nikos Drakos, CBLU, University of Leeds - next - up - previous - contents
    - Next: psb_precaply Preconditioner - Up: Next: apply Preconditioner + Up: Preconditioner routines - Previous: psb_precinit Initialize -   Previous: init Initialize +   Contents

    -psb_precbld -- Builds a preconditioner +build -- Builds a preconditioner

    -call psb_precbld(a, desc_a, prec, info,amold,vmold)
    +call prec%build(a, desc_a, info,amold,vmold)
     

    diff --git a/docs/html/node126.html b/docs/html/node126.html index e41d4ceb..0ce25844 100644 --- a/docs/html/node126.html +++ b/docs/html/node126.html @@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds Jens Lippmann, Marek Rouchal, Martin Wilck and others --> -psb_precaply -- Preconditioner application routine - +apply -- Preconditioner application routine + @@ -26,40 +26,40 @@ original version by: Nikos Drakos, CBLU, University of Leeds - next - up - previous - contents
    - Next: psb_precdescr Prints - Up: Next: descr Prints + Up: Preconditioner routines - Previous: psb_precbld Builds -   Previous: build Builds +   Contents

    -psb_precaply -- Preconditioner application +apply -- Preconditioner application routine

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

    diff --git a/docs/html/node127.html b/docs/html/node127.html index 353ae910..17183974 100644 --- a/docs/html/node127.html +++ b/docs/html/node127.html @@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds Jens Lippmann, Marek Rouchal, Martin Wilck and others --> -psb_precdescr -- Prints a description of current preconditioner - +descr -- Prints a description of current preconditioner + @@ -26,40 +26,40 @@ original version by: Nikos Drakos, CBLU, University of Leeds - next - up - previous - contents
    - Next: Next: clone clone - Up: Up: Preconditioner routines - Previous: psb_precaply Preconditioner -   Previous: apply Preconditioner +   Contents

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

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

    @@ -84,11 +84,29 @@ Specified as: a preconditioner data structure precdatapsb_prec_type.

    output unit. Scope: local
    -Type: optiona +Type: optional +
    +Intent: in. +
    +Specified as: an integer number. Default: default output unit. +
    +
    root
    +
    Process from which to print +Scope: local +
    +Type: optional
    Intent: in.
    -Specified as: an integer number. +Specified as: an integer number between 0 and $np-1$, in which case +the specified process will print the description, or $-1$, in which case +all processes will print. Default: 0.
    diff --git a/docs/html/node128.html b/docs/html/node128.html index b28cbc15..18febdda 100644 --- a/docs/html/node128.html +++ b/docs/html/node128.html @@ -18,6 +18,7 @@ original version by: Nikos Drakos, CBLU, University of Leeds + @@ -25,26 +26,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds - next - up - previous - contents
    - Next: Iterative Methods - Up: Next: free Free + Up: Preconditioner routines - Previous: psb_precdescr Prints -   Previous: descr Prints +   Contents

    diff --git a/docs/html/node129.html b/docs/html/node129.html index ec4681bb..8ba77d05 100644 --- a/docs/html/node129.html +++ b/docs/html/node129.html @@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds Jens Lippmann, Marek Rouchal, Martin Wilck and others --> -Iterative Methods - +free -- Free a preconditioner + @@ -18,61 +18,91 @@ original version by: Nikos Drakos, CBLU, University of Leeds - - - + + - next - + up - previous - contents
    - Next: psb_krylov Krylov - Up: userhtml - Previous: Next: Iterative Methods + Up: Preconditioner routines + Previous: clone clone -   Contents

    -

    - -
    -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. +
    +
    +NotesReleases all internal storage. - - +



    diff --git a/docs/html/node13.html b/docs/html/node13.html index e46e57ce..caec1354 100644 --- a/docs/html/node13.html +++ b/docs/html/node13.html @@ -26,26 +26,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds - next - up - previous - contents
    - Next: Next: get_global_rows Get - Up: Up: Descriptor data structure - Previous: Previous: get_local_rows Get -   Contents

    diff --git a/docs/html/node130.html b/docs/html/node130.html index 1ea7e9cc..83c400d6 100644 --- a/docs/html/node130.html +++ b/docs/html/node130.html @@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds Jens Lippmann, Marek Rouchal, Martin Wilck and others --> -psb_krylov -- Krylov Methods Driver Routine - +Iterative Methods + @@ -18,416 +18,62 @@ original version by: Nikos Drakos, CBLU, University of Leeds - - + + + - next - + up - previous - contents
    - Next: Bibliography - Up: Iterative Methods - Previous: Iterative Methods -   Next: psb_krylov Krylov + Up: userhtml + Previous: free Free +   Contents

    -

    -
    -psb_krylov -- Krylov Methods Driver - Routine -

    - -

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

    -The stopping criterion can take the following values: -

    -
    1
    -
    normwise backward error in the infinity -norm; the iteration is stopped when -

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

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

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

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

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

    -
    -
    -The behaviour is controlled by the istop argument (see -later). In the above formulae, $x_i$ is the tentative solution and -$r_i=b-Ax_i$ the corresponding residual at the $i$-th iteration. - -

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

    -

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

    -

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

    -

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

    -

    -
    istop
    -
    An integer specifying the stopping criterion. -
    -Scope: global -
    -Type: optional. -
    -Intent: in. -
    -Values: 1: use the normwise backward error, 2: use the scaled 2-norm -of the residual, 3: use the residual reduction in the 2-norm. Default: 2. -
    -
    On Return
    -
    -
    -
    x
    -
    The computed solution. -
    -Scope: local -
    -Type: required -
    -Intent: inout. -
    -Specified as: a rank one array or an object of type vdatapsb_T_vect_type. -
    -
    iter
    -
    The number of iterations performed. -
    -Scope: global -
    -Type: optional -
    -Intent: out. -
    -Returned as: an integer variable. -
    -
    err
    -
    The convergence estimate on exit. -
    -Scope: global -
    -Type: optional -
    -Intent: out. +

    +
    -Returned as: a real number. -

    -
    cond
    -
    An estimate of the condition number of matrix $A$; only - available with the $CG$ method on real data. -
    -Scope: global -
    -Type: optional -
    -Intent: out. -
    -Returned as: a real number. A correct result will be greater than or -equal to one; if specified for non-real data, or an error occurred, -zero is returned. -
    -
    info
    -
    Error code. -
    -Scope: local -
    -Type: required -
    -Intent: out. -
    -An integer value; 0 means no error has been detected. -
    -
    - -

    - -

    +Iterative Methods +

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

    -


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

    + +Subsections + + + +

    diff --git a/docs/html/node14.html b/docs/html/node14.html index a6b134a2..c56100e0 100644 --- a/docs/html/node14.html +++ b/docs/html/node14.html @@ -26,26 +26,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds - next - up - previous - contents
    - Next: Next: get_global_cols Get - Up: Up: Descriptor data structure - Previous: Previous: get_local_cols Get -   Contents

    diff --git a/docs/html/node15.html b/docs/html/node15.html index 989ccdd9..69927654 100644 --- a/docs/html/node15.html +++ b/docs/html/node15.html @@ -26,26 +26,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds - next - up - previous - contents
    - Next: Next: get_global_indices Get - Up: Up: Descriptor data structure - Previous: Previous: get_global_rows Get -   Contents

    diff --git a/docs/html/node16.html b/docs/html/node16.html index 80937a9d..406e307f 100644 --- a/docs/html/node16.html +++ b/docs/html/node16.html @@ -26,26 +26,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds - next - up - previous - contents
    - Next: Next: get_context Get - Up: Up: Descriptor data structure - Previous: Previous: get_global_cols Get -   Contents

    diff --git a/docs/html/node17.html b/docs/html/node17.html index 64433ca3..e83ef757 100644 --- a/docs/html/node17.html +++ b/docs/html/node17.html @@ -26,26 +26,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds - next - up - previous - contents
    - Next: Next: Clone clone - Up: Up: Descriptor data structure - Previous: Previous: get_global_indices Get -   Contents

    diff --git a/docs/html/node18.html b/docs/html/node18.html index 63d75b9d..790d1016 100644 --- a/docs/html/node18.html +++ b/docs/html/node18.html @@ -26,26 +26,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds - next - up - previous - contents
    - Next: Next: psb_cd_get_large_threshold Get - Up: Up: Descriptor data structure - Previous: Previous: get_context Get -   Contents

    diff --git a/docs/html/node19.html b/docs/html/node19.html index 963f7611..a7471b81 100644 --- a/docs/html/node19.html +++ b/docs/html/node19.html @@ -26,26 +26,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds - next - up - previous - contents
    - Next: Next: psb_cd_set_large_threshold Set - Up: Up: Descriptor data structure - Previous: Previous: Clone clone -   Contents

    diff --git a/docs/html/node2.html b/docs/html/node2.html index 4f1c6ecc..d8b38d51 100644 --- a/docs/html/node2.html +++ b/docs/html/node2.html @@ -26,26 +26,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds - next - up - previous - contents
    - Next: Next: General overview - Up: Up: userhtml - Previous: Previous: Contents -   Contents

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

    The PSBLAS library version 3 is implemented in the Fortran 2003 [17] programming language, with reuse and/or + HREF="node132.html#metcalf">17] programming language, with reuse and/or adaptation of existing Fortran 77 and Fortran 95 software, plus a handful of C routines. @@ -81,11 +81,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="node132.html#Sparse03">11]; other works discussing advanced programming in Fortran 2003 include [1,18]; sufficient support for + HREF="node132.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). @@ -94,7 +94,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="node132.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 @@ -105,12 +105,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="node132.html#sblas97">8,9], which in its turn is based on the proposal for BLAS on dense matrices [15,5,6]. + HREF="node132.html#BLAS1">15,5,6].

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


    - next - up - previous - contents
    - Next: Next: General overview - Up: Up: userhtml - Previous: Previous: Contents -   Contents diff --git a/docs/html/node20.html b/docs/html/node20.html index e4f76bdd..f572aa6b 100644 --- a/docs/html/node20.html +++ b/docs/html/node20.html @@ -26,26 +26,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds - next - up - previous - contents
    - Next: Next: Named Constants - Up: Up: Descriptor data structure - Previous: Previous: psb_cd_get_large_threshold Get -   Contents

    diff --git a/docs/html/node21.html b/docs/html/node21.html index 212ac438..d0d38efc 100644 --- a/docs/html/node21.html +++ b/docs/html/node21.html @@ -25,26 +25,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds - next - up - previous - contents
    - Next: Next: Sparse Matrix class - Up: Up: Descriptor data structure - Previous: Previous: psb_cd_set_large_threshold Set -   Contents

    diff --git a/docs/html/node22.html b/docs/html/node22.html index 4f287421..c74849bd 100644 --- a/docs/html/node22.html +++ b/docs/html/node22.html @@ -26,26 +26,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds - next - up - previous - contents
    - Next: Next: Sparse Matrix Methods - Up: Up: Data Structures and Classes - Previous: Previous: Named Constants -   Contents

    @@ -60,9 +60,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="node132.html#DesignPatterns">13] as detailed in [11]; the type declaration is shown in + HREF="node132.html#Sparse03">11]; the type declaration is shown in figure 4 where T is a placeholder for the data type and precision variants
    @@ -145,73 +145,73 @@ variants are obtained by conversion to/from it. Subsections
    - next - up - previous - contents
    - Next: Next: Sparse Matrix Methods - Up: Up: Data Structures and Classes - Previous: Previous: Named Constants -   Contents diff --git a/docs/html/node23.html b/docs/html/node23.html index 8dfe00cd..c4ed5234 100644 --- a/docs/html/node23.html +++ b/docs/html/node23.html @@ -26,26 +26,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds - next - up - previous - contents
    - Next: Next: get_nrows Get - Up: Up: Sparse Matrix class - Previous: Previous: Sparse Matrix class -   Contents

    diff --git a/docs/html/node24.html b/docs/html/node24.html index 12f9ee02..f3881b40 100644 --- a/docs/html/node24.html +++ b/docs/html/node24.html @@ -26,26 +26,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds - next - up - previous - contents
    - Next: Next: get_ncols Get - Up: Up: Sparse Matrix class - Previous: Previous: Sparse Matrix Methods -   Contents

    diff --git a/docs/html/node25.html b/docs/html/node25.html index 32490101..f3b7f72f 100644 --- a/docs/html/node25.html +++ b/docs/html/node25.html @@ -26,26 +26,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds - next - up - previous - contents
    - Next: Next: get_nnzeros Get - Up: Up: Sparse Matrix class - Previous: Previous: get_nrows Get -   Contents

    diff --git a/docs/html/node26.html b/docs/html/node26.html index 973429b3..f947cf04 100644 --- a/docs/html/node26.html +++ b/docs/html/node26.html @@ -26,26 +26,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds - next - up - previous - contents
    - Next: Next: get_size Get - Up: Up: Sparse Matrix class - Previous: Previous: get_ncols Get -   Contents

    diff --git a/docs/html/node27.html b/docs/html/node27.html index 5d49c4a6..0ff47e5b 100644 --- a/docs/html/node27.html +++ b/docs/html/node27.html @@ -26,26 +26,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds - next - up - previous - contents
    - Next: Next: sizeof Get - Up: Up: Sparse Matrix class - Previous: Previous: get_nnzeros Get -   Contents

    diff --git a/docs/html/node28.html b/docs/html/node28.html index c33bd29d..b3624042 100644 --- a/docs/html/node28.html +++ b/docs/html/node28.html @@ -28,26 +28,26 @@ of a sparse matrix"> - next - up - previous - contents
    - Next: Next: get_fmt Short - Up: Up: Sparse Matrix class - Previous: Previous: get_size Get -   Contents

    diff --git a/docs/html/node29.html b/docs/html/node29.html index 083e7119..c49b436a 100644 --- a/docs/html/node29.html +++ b/docs/html/node29.html @@ -26,26 +26,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds - next - up - previous - contents
    - Next: Next: is_bld, is_upd, is_asb - Up: Up: Sparse Matrix class - Previous: Previous: sizeof Get -   Contents

    diff --git a/docs/html/node3.html b/docs/html/node3.html index 303358e5..3a98b635 100644 --- a/docs/html/node3.html +++ b/docs/html/node3.html @@ -26,26 +26,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds - next - up - previous - contents
    - Next: Next: Basic Nomenclature - Up: Up: userhtml - Previous: Previous: Introduction -   Contents

    @@ -78,7 +78,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="node132.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. @@ -132,7 +132,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="node132.html#METIS">14]. Dense vectors conform to sparse matrices, that is, the entries of a vector follow the same distribution of the matrix rows. @@ -152,43 +152,43 @@ bottleneck would make this option unattractive in most cases. Subsections
    - next - up - previous - contents
    - Next: Next: Basic Nomenclature - Up: Up: userhtml - Previous: Previous: Introduction -   Contents diff --git a/docs/html/node30.html b/docs/html/node30.html index b9161298..da8a6073 100644 --- a/docs/html/node30.html +++ b/docs/html/node30.html @@ -26,26 +26,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds - next - up - previous - contents
    - Next: Next: is_lower, is_upper, is_triangle, is_unit - Up: Up: Sparse Matrix class - Previous: Previous: get_fmt Short -   Contents

    diff --git a/docs/html/node31.html b/docs/html/node31.html index f1963925..bf30138e 100644 --- a/docs/html/node31.html +++ b/docs/html/node31.html @@ -26,26 +26,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds - next - up - previous - contents
    - Next: Next: cscnv Convert - Up: Up: Sparse Matrix class - Previous: Previous: is_bld, is_upd, is_asb -   Contents

    diff --git a/docs/html/node32.html b/docs/html/node32.html index 35a98ab2..8b057156 100644 --- a/docs/html/node32.html +++ b/docs/html/node32.html @@ -26,26 +26,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds - next - up - previous - contents
    - Next: Next: csclip Reduce - Up: Up: Sparse Matrix class - Previous: Previous: is_lower, is_upper, is_triangle, is_unit -   Contents

    diff --git a/docs/html/node33.html b/docs/html/node33.html index 1de3f7df..46e6bd0f 100644 --- a/docs/html/node33.html +++ b/docs/html/node33.html @@ -26,26 +26,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds - next - up - previous - contents
    - Next: Next: clean_zeros Eliminate - Up: Up: Sparse Matrix class - Previous: Previous: cscnv Convert -   Contents

    diff --git a/docs/html/node34.html b/docs/html/node34.html index d24b3447..2aa90019 100644 --- a/docs/html/node34.html +++ b/docs/html/node34.html @@ -26,26 +26,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds - next - up - previous - contents
    - Next: Next: get_diag Get - Up: Up: Sparse Matrix class - Previous: Previous: csclip Reduce -   Contents

    diff --git a/docs/html/node35.html b/docs/html/node35.html index 0c564fff..b73fb59e 100644 --- a/docs/html/node35.html +++ b/docs/html/node35.html @@ -26,26 +26,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds - next - up - previous - contents
    - Next: Next: clip_diag Cut - Up: Up: Sparse Matrix class - Previous: Previous: clean_zeros Eliminate -   Contents

    diff --git a/docs/html/node36.html b/docs/html/node36.html index 217885f8..7474e0b6 100644 --- a/docs/html/node36.html +++ b/docs/html/node36.html @@ -26,26 +26,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds - next - up - previous - contents
    - Next: Next: tril Return - Up: Up: Sparse Matrix class - Previous: Previous: get_diag Get -   Contents

    diff --git a/docs/html/node37.html b/docs/html/node37.html index ff09bad3..de737d49 100644 --- a/docs/html/node37.html +++ b/docs/html/node37.html @@ -26,26 +26,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds - next - up - previous - contents
    - Next: Next: triu Return - Up: Up: Sparse Matrix class - Previous: Previous: clip_diag Cut -   Contents

    diff --git a/docs/html/node38.html b/docs/html/node38.html index 4797c4f0..995fd443 100644 --- a/docs/html/node38.html +++ b/docs/html/node38.html @@ -26,26 +26,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds - next - up - previous - contents
    - Next: Next: psb_set_mat_default Set - Up: Up: Sparse Matrix class - Previous: Previous: tril Return -   Contents

    diff --git a/docs/html/node39.html b/docs/html/node39.html index 4b8bafd0..ee2e1b53 100644 --- a/docs/html/node39.html +++ b/docs/html/node39.html @@ -26,26 +26,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds - next - up - previous - contents
    - Next: Next: clone Clone - Up: Up: Sparse Matrix class - Previous: Previous: triu Return -   Contents

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

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

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


    - next - up - previous - contents
    - Next: Next: Library contents - Up: Up: General overview - Previous: Previous: General overview -   Contents diff --git a/docs/html/node40.html b/docs/html/node40.html index 3d00666e..6e74fee8 100644 --- a/docs/html/node40.html +++ b/docs/html/node40.html @@ -26,26 +26,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds - next - up - previous - contents
    - Next: Next: Named Constants - Up: Up: Sparse Matrix class - Previous: Previous: psb_set_mat_default Set -   Contents

    diff --git a/docs/html/node41.html b/docs/html/node41.html index 30ba6090..082b5dad 100644 --- a/docs/html/node41.html +++ b/docs/html/node41.html @@ -25,26 +25,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds - next - up - previous - contents
    - Next: Next: Dense Vector Data Structure - Up: Up: Sparse Matrix class - Previous: Previous: clone Clone -   Contents

    diff --git a/docs/html/node42.html b/docs/html/node42.html index cb47d46c..db6d4247 100644 --- a/docs/html/node42.html +++ b/docs/html/node42.html @@ -26,26 +26,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds - next - up - previous - contents
    - Next: Next: Vector Methods - Up: Up: Data Structures and Classes - Previous: Previous: Named Constants -   Contents

    @@ -123,43 +123,43 @@ private memory. Subsections
    - next - up - previous - contents
    - Next: Next: Vector Methods - Up: Up: Data Structures and Classes - Previous: Previous: Named Constants -   Contents diff --git a/docs/html/node43.html b/docs/html/node43.html index 415a4d43..24f87e68 100644 --- a/docs/html/node43.html +++ b/docs/html/node43.html @@ -26,26 +26,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds - next - up - previous - contents
    - Next: Next: get_nrows Get - Up: Up: Dense Vector Data Structure - Previous: Previous: Dense Vector Data Structure -   Contents

    diff --git a/docs/html/node44.html b/docs/html/node44.html index 4d36916f..ea49ef61 100644 --- a/docs/html/node44.html +++ b/docs/html/node44.html @@ -26,26 +26,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds - next - up - previous - contents
    - Next: Next: sizeof Get - Up: Up: Dense Vector Data Structure - Previous: Previous: Vector Methods -   Contents

    diff --git a/docs/html/node45.html b/docs/html/node45.html index 8822c6c7..515ec37a 100644 --- a/docs/html/node45.html +++ b/docs/html/node45.html @@ -28,26 +28,26 @@ of a dense vector"> - next - up - previous - contents
    - Next: Next: set Set - Up: Up: Dense Vector Data Structure - Previous: Previous: get_nrows Get -   Contents

    diff --git a/docs/html/node46.html b/docs/html/node46.html index edf5cdfa..8e3a3cd4 100644 --- a/docs/html/node46.html +++ b/docs/html/node46.html @@ -26,26 +26,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds - next - up - previous - contents
    - Next: Next: get_vect Get - Up: Up: Dense Vector Data Structure - Previous: Previous: sizeof Get -   Contents

    diff --git a/docs/html/node47.html b/docs/html/node47.html index 9dbe486e..9693149a 100644 --- a/docs/html/node47.html +++ b/docs/html/node47.html @@ -26,26 +26,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds - next - up - previous - contents
    - Next: Next: clone Clone - Up: Up: Dense Vector Data Structure - Previous: Previous: set Set -   Contents

    diff --git a/docs/html/node48.html b/docs/html/node48.html index 9bec26db..4855bfee 100644 --- a/docs/html/node48.html +++ b/docs/html/node48.html @@ -25,26 +25,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds - next - up - previous - contents
    - Next: Next: Preconditioner data structure - Up: Up: Dense Vector Data Structure - Previous: Previous: get_vect Get -   Contents

    diff --git a/docs/html/node49.html b/docs/html/node49.html index 8d5a1665..eb5d357b 100644 --- a/docs/html/node49.html +++ b/docs/html/node49.html @@ -26,26 +26,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds - next - up - previous - contents
    - Next: Next: Heap data structure - Up: Up: Data Structures and Classes - Previous: Previous: clone Clone -   Contents

    diff --git a/docs/html/node5.html b/docs/html/node5.html index cef76fa1..2b1c029f 100644 --- a/docs/html/node5.html +++ b/docs/html/node5.html @@ -26,26 +26,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds - next - up - previous - contents
    - Next: Next: Application structure - Up: Up: General overview - Previous: Previous: Basic Nomenclature -   Contents

    @@ -169,26 +169,26 @@ whose current value is 3.4.0


    - next - up - previous - contents
    - Next: Next: Application structure - Up: Up: General overview - Previous: Previous: Basic Nomenclature -   Contents diff --git a/docs/html/node50.html b/docs/html/node50.html index d3142bcd..1adfd0c3 100644 --- a/docs/html/node50.html +++ b/docs/html/node50.html @@ -25,26 +25,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds - next - up - previous - contents
    - Next: Next: Computational routines - Up: Up: Data Structures and Classes - Previous: Previous: Preconditioner data structure -   Contents

    diff --git a/docs/html/node51.html b/docs/html/node51.html index b2bd0336..c5228263 100644 --- a/docs/html/node51.html +++ b/docs/html/node51.html @@ -26,26 +26,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds - next - up - previous - contents
    - Next: Next: psb_geaxpby General - Up: Up: userhtml - Previous: Previous: Heap data structure -   Contents

    @@ -61,32 +61,32 @@ Computational routines Subsections diff --git a/docs/html/node52.html b/docs/html/node52.html index 3621b330..c1a7d78d 100644 --- a/docs/html/node52.html +++ b/docs/html/node52.html @@ -26,26 +26,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds - next - up - previous - contents
    - Next: Next: psb_gedot Dot - Up: Up: Computational routines - Previous: Previous: Computational routines -   Contents

    @@ -87,7 +87,7 @@ Data types
    $x$, 1.
    x
    the local portion of global dense matrix $x$.
    @@ -159,7 +159,7 @@ Intent: in. Specified as: a rank one or two array or an object of type vdatapsb_T_vect_type containing numbers of type specified in Table 1. The rank of $x$ must be the same of 1. The rank of $y$ must be the same of $x$.
    @@ -252,26 +252,26 @@ An integer value; 0 means no error has been detected.


    - next - up - previous - contents
    - Next: Next: psb_gedot Dot - Up: Up: Computational routines - Previous: Previous: Computational routines -   Contents diff --git a/docs/html/node53.html b/docs/html/node53.html index fc08aaae..5566ad83 100644 --- a/docs/html/node53.html +++ b/docs/html/node53.html @@ -26,26 +26,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds - next - up - previous - contents
    - Next: Next: psb_gedots Generalized - Up: Up: Computational routines - Previous: Previous: psb_geaxpby General -   Contents

    @@ -57,7 +57,7 @@ psb_gedot -- Dot Product

    This function computes dot product between two vectors $x$ and $y$.
    If $x$ and

    Else if $x$ and WIDTH="25" HEIGHT="15" ALIGN="BOTTOM" BORDER="0" SRC="img26.png" ALT="$dot$">, $x$,
    x
    the local portion of global dense matrix $x$.
    @@ -177,7 +177,7 @@ Intent: in. Specified as: a rank one or two array or an object of type vdatapsb_T_vect_type containing numbers of type specified in Table 2. The rank of $x$ must be the same of 2. The rank of $y$ must be the same of $x$.
    @@ -224,7 +224,7 @@ Specified as: an object of type descdatapsb_desc_type.
    Function value
    is the dot product of subvectors $x$ and
    - next - up - previous - contents
    - Next: Next: psb_gedots Generalized - Up: Up: Computational routines - Previous: Previous: psb_geaxpby General -   Contents diff --git a/docs/html/node54.html b/docs/html/node54.html index 467e6699..53c60c62 100644 --- a/docs/html/node54.html +++ b/docs/html/node54.html @@ -26,26 +26,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds - next - up - previous - contents
    - Next: Next: psb_normi Infinity-Norm - Up: Up: Computational routines - Previous: Previous: psb_gedot Dot -   Contents

    @@ -58,7 +58,7 @@ psb_gedots -- Generalized Dot Product

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

    If the matrices are complex, then the usual convention applies, i.e. the conjugate transpose of $x$ is used. If $x$ and $y$ are of rank one, then $res$ is a scalar, else it is a rank one array. @@ -109,10 +109,10 @@ Data types
    $res$, $x$,
    x
    the local portion of global dense matrix $x$.
    @@ -163,7 +163,7 @@ Intent: in. Specified as: a rank one or two array or an object of type vdatapsb_T_vect_type containing numbers of type specified in Table 3. The rank of $x$ must be the same of 3. The rank of $y$ must be the same of $x$.
    @@ -209,7 +209,7 @@ Specified as: an object of type descdatapsb_desc_type.
    res
    is the dot product of subvectors $x$ and
    - next - up - previous - contents
    - Next: Next: psb_normi Infinity-Norm - Up: Up: Computational routines - Previous: Previous: psb_gedot Dot -   Contents diff --git a/docs/html/node55.html b/docs/html/node55.html index ef8215cf..f1f1bc82 100644 --- a/docs/html/node55.html +++ b/docs/html/node55.html @@ -26,26 +26,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds - next - up - previous - contents
    - Next: Next: psb_geamaxs Generalized - Up: Up: Computational routines - Previous: Previous: psb_gedots Generalized -   Contents

    @@ -58,12 +58,12 @@ psb_normi -- Infinity-Norm of Vector

    This function computes the infinity-norm of a vector $x$.
    If $x$ is a real vector it computes infinity norm as: @@ -83,7 +83,7 @@ amax \leftarrow \max_i |x_i|

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

    @@ -116,11 +116,11 @@ Data types
    @@ -159,7 +159,7 @@ Data types
    x
    the local portion of global dense matrix $x$.
    @@ -190,7 +190,7 @@ Specified as: an object of type descdatapsb_desc_type.
    Function value
    is the infinity norm of subvector $x$.
    @@ -213,26 +213,26 @@ An integer value; 0 means no error has been detected.


    - next - up - previous - contents
    - Next: Next: psb_geamaxs Generalized - Up: Up: Computational routines - Previous: Previous: psb_gedots Generalized -   Contents diff --git a/docs/html/node56.html b/docs/html/node56.html index b4508b97..3c6b12b0 100644 --- a/docs/html/node56.html +++ b/docs/html/node56.html @@ -26,26 +26,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds - next - up - previous - contents
    - Next: Next: psb_norm1 1-Norm - Up: Up: Computational routines - Previous: Previous: psb_normi Infinity-Norm -   Contents

    @@ -58,7 +58,7 @@ psb_geamaxs -- Generalized Infinity Norm

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

    @@ -92,11 +92,11 @@ Data types
    $amax$ $x$ Function
    @@ -135,7 +135,7 @@ Data types
    x
    the local portion of global dense matrix $x$.
    @@ -165,7 +165,7 @@ Specified as: an object of type descdatapsb_desc_type.
    res
    is the infinity norm of the columns of $x$.
    @@ -191,26 +191,26 @@ An integer value; 0 means no error has been detected.


    - next - up - previous - contents
    - Next: Next: psb_norm1 1-Norm - Up: Up: Computational routines - Previous: Previous: psb_normi Infinity-Norm -   Contents diff --git a/docs/html/node57.html b/docs/html/node57.html index 11076348..53f40a07 100644 --- a/docs/html/node57.html +++ b/docs/html/node57.html @@ -26,26 +26,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds - next - up - previous - contents
    - Next: Next: psb_geasums Generalized - Up: Up: Computational routines - Previous: Previous: psb_geamaxs Generalized -   Contents

    @@ -57,12 +57,12 @@ psb_norm1 -- 1-Norm of Vector

    This function computes the 1-norm of a vector $x$.
    If $x$ is a real vector it computes 1-norm as: @@ -82,7 +82,7 @@ asum \leftarrow \|x_i\|

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

    @@ -121,7 +121,7 @@ Data types SRC="img35.png" ALT="$asum$">
    @@ -160,7 +160,7 @@ Data types
    x
    the local portion of global dense matrix $x$.
    @@ -192,7 +192,7 @@ Specified as: an object of type descdatapsb_desc_type.
    Function value
    is the 1-norm of vector $x$.
    @@ -216,26 +216,26 @@ An integer value; 0 means no error has been detected.


    - next - up - previous - contents
    - Next: Next: psb_geasums Generalized - Up: Up: Computational routines - Previous: Previous: psb_geamaxs Generalized -   Contents diff --git a/docs/html/node58.html b/docs/html/node58.html index 69c174ae..9b55a521 100644 --- a/docs/html/node58.html +++ b/docs/html/node58.html @@ -26,26 +26,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds - next - up - previous - contents
    - Next: Next: psb_norm2 2-Norm - Up: Up: Computational routines - Previous: Previous: psb_norm1 1-Norm -   Contents

    @@ -58,7 +58,7 @@ psb_geasums -- Generalized 1-Norm of Vector

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

    @@ -77,12 +77,12 @@ res(i) \leftarrow \max_k |x(k,i)|

    This function computes the 1-norm of a vector $x$.
    If $x$ is a real vector it computes 1-norm as: @@ -102,7 +102,7 @@ res(i) \leftarrow \|x_i\|

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

    @@ -136,11 +136,11 @@ Data types
    $res$ $x$ Subroutine $x$ Function
    @@ -179,7 +179,7 @@ Data types
    x
    the local portion of global dense matrix $x$.
    @@ -211,7 +211,7 @@ Specified as: an object of type descdatapsb_desc_type.
    res
    contains the 1-norm of (the columns of) $x$.
    @@ -238,26 +238,26 @@ An integer value; 0 means no error has been detected.


    - next - up - previous - contents
    - Next: Next: psb_norm2 2-Norm - Up: Up: Computational routines - Previous: Previous: psb_norm1 1-Norm -   Contents diff --git a/docs/html/node59.html b/docs/html/node59.html index 6c1f1fef..3c747c6b 100644 --- a/docs/html/node59.html +++ b/docs/html/node59.html @@ -26,26 +26,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds - next - up - previous - contents
    - Next: Next: psb_genrm2s Generalized - Up: Up: Computational routines - Previous: Previous: psb_geasums Generalized -   Contents

    @@ -57,12 +57,12 @@ psb_norm2 -- 2-Norm of Vector

    This function computes the 2-norm of a vector $x$.
    If $x$ is a real vector it computes 2-norm as: @@ -82,7 +82,7 @@ nrm2 \leftarrow \sqrt{x^T x}

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

    @@ -114,7 +114,7 @@ Data types SRC="img40.png" ALT="$nrm2$">
    @@ -158,7 +158,7 @@ psb_norm2(x, desc_a, info)
    x
    the local portion of global dense matrix $x$.
    @@ -189,7 +189,7 @@ Specified as: an object of type descdatapsb_desc_type.
    Function Value
    is the 2-norm of subvector $x$.
    @@ -215,26 +215,26 @@ An integer value; 0 means no error has been detected.


    - next - up - previous - contents
    - Next: Next: psb_genrm2s Generalized - Up: Up: Computational routines - Previous: Previous: psb_geasums Generalized -   Contents diff --git a/docs/html/node6.html b/docs/html/node6.html index 7670e01c..64e74fe5 100644 --- a/docs/html/node6.html +++ b/docs/html/node6.html @@ -26,26 +26,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds - next - up - previous - contents
    - Next: Next: User-defined index mappings - Up: Up: General overview - Previous: Previous: Library contents -   Contents

    @@ -249,32 +249,32 @@ from optimal. Subsections
    - next - up - previous - contents
    - Next: Next: User-defined index mappings - Up: Up: General overview - Previous: Previous: Library contents -   Contents diff --git a/docs/html/node60.html b/docs/html/node60.html index 975441ad..0ede6524 100644 --- a/docs/html/node60.html +++ b/docs/html/node60.html @@ -26,26 +26,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds - next - up - previous - contents
    - Next: Next: psb_norm1 1-Norm - Up: Up: Computational routines - Previous: Previous: psb_norm2 2-Norm -   Contents

    @@ -58,7 +58,7 @@ psb_genrm2s -- Generalized 2-Norm of Vector

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

    @@ -92,11 +92,11 @@ Data types
    $res$ $x$ Subroutine $x$ Function
    @@ -135,7 +135,7 @@ Data types
    x
    the local portion of global dense matrix $x$.
    @@ -167,7 +167,7 @@ Specified as: an object of type descdatapsb_desc_type.
    res
    contains the 1-norm of (the columns of) $x$.
    @@ -193,26 +193,26 @@ An integer value; 0 means no error has been detected.


    - next - up - previous - contents
    - Next: Next: psb_norm1 1-Norm - Up: Up: Computational routines - Previous: Previous: psb_norm2 2-Norm -   Contents diff --git a/docs/html/node61.html b/docs/html/node61.html index 8baae179..b9707887 100644 --- a/docs/html/node61.html +++ b/docs/html/node61.html @@ -26,26 +26,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds - next - up - previous - contents
    - Next: Next: psb_normi Infinity - Up: Up: Computational routines - Previous: Previous: psb_genrm2s Generalized -   Contents

    @@ -193,26 +193,26 @@ An integer value; 0 means no error has been detected.


    - next - up - previous - contents
    - Next: Next: psb_normi Infinity - Up: Up: Computational routines - Previous: Previous: psb_genrm2s Generalized -   Contents diff --git a/docs/html/node62.html b/docs/html/node62.html index 222c186e..cf8550f7 100644 --- a/docs/html/node62.html +++ b/docs/html/node62.html @@ -26,26 +26,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds - next - up - previous - contents
    - Next: Next: psb_spmm Sparse - Up: Up: Computational routines - Previous: Previous: psb_norm1 1-Norm -   Contents

    @@ -193,26 +193,26 @@ An integer value; 0 means no error has been detected.


    - next - up - previous - contents
    - Next: Next: psb_spmm Sparse - Up: Up: Computational routines - Previous: Previous: psb_norm1 1-Norm -   Contents diff --git a/docs/html/node63.html b/docs/html/node63.html index 6a53368e..1c7c14b5 100644 --- a/docs/html/node63.html +++ b/docs/html/node63.html @@ -26,26 +26,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds - next - up - previous - contents
    - Next: Next: psb_spsm Triangular - Up: Up: Computational routines - Previous: Previous: psb_normi Infinity -   Contents

    @@ -89,7 +89,7 @@ y \leftarrow \alpha A^T x + \beta y -->
    $res$ $x$ Subroutine
    @@ -128,7 +128,7 @@ Data types


    \begin{lstlisting}
 call psb_halo(x, desc_a, info)
@@ -146,7 +146,7 @@ call psb_halo(x, desc_a, info, work, data)
 </DD>
 <DT><STRONG>x</STRONG></DT>
 <DD>global dense matrix <IMG
- WIDTH=.
    @@ -181,7 +181,7 @@ Type: optional Intent: inout.
    Specified as: a rank one array of the same type of $x$. @@ -203,7 +203,7 @@ index list on which to base the data exchange.

    x
    global dense result matrix $x$.
    @@ -264,7 +264,7 @@ distribution is such that each process will own 32 entries in the index space, with a halo made of 8 entries placed at local indices 33 through 40. If process 0 assigns an initial value of 1 to its entries in the $x$ vector, and process 1 assigns a value of 2, then after a call to psb_halo the contents of the local vectors will be the @@ -611,26 +611,26 @@ Process 1


    - next - up - previous - contents
    - Next: Next: psb_ovrl Overlap - Up: Up: Communication routines - Previous: Previous: Communication routines -   Contents diff --git a/docs/html/node67.html b/docs/html/node67.html index eb604e9d..bb859657 100644 --- a/docs/html/node67.html +++ b/docs/html/node67.html @@ -26,26 +26,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds - next - up - previous - contents
    - Next: Next: psb_gather Gather - Up: Up: Communication routines - Previous: Previous: psb_halo Halo -   Contents

    @@ -77,11 +77,11 @@ x \leftarrow Q x where:
    $x$
    is the global dense submatrix $x$
    @@ -110,7 +110,7 @@ Data types
    \begin{displaymath}
 y \leftarrow \alpha A^T x + \beta y
@@ -122,7 +122,7 @@ y \leftarrow \alpha A^H x + \beta y
 where:
 <DL>
 <DT><STRONG><IMG
- WIDTH=
    is the global dense matrix WIDTH="16" HEIGHT="14" ALIGN="BOTTOM" BORDER="0" SRC="img1.png" ALT="$A$">, $x$, psb_Tspmat_type.
    x
    the local portion of global dense matrix $x$.
    @@ -257,7 +257,7 @@ Intent: in. Specified as: a rank one or two array or an object of type vdatapsb_T_vect_type containing numbers of type specified in Table 12. The rank of $x$ must be the same of 12. The rank of $y$ must be the same of $x$.
    @@ -351,7 +351,7 @@ Type: optional Intent: inout.
    Specified as: a rank one array of the same type of $x$ and
    - next - up - previous - contents
    - Next: Next: psb_spsm Triangular - Up: Up: Computational routines - Previous: Previous: psb_normi Infinity -   Contents diff --git a/docs/html/node64.html b/docs/html/node64.html index 0d8a09cf..73ab7d94 100644 --- a/docs/html/node64.html +++ b/docs/html/node64.html @@ -25,26 +25,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds - next - up - previous - contents
    - Next: Next: Communication routines - Up: Up: Computational routines - Previous: Previous: psb_spmm Sparse -   Contents

    @@ -88,7 +88,7 @@ y &\leftarrow& \alpha T^{-H} D x + \beta y\\ where:
    $x$
    is the global dense matrix WIDTH="16" HEIGHT="14" ALIGN="BOTTOM" BORDER="0" SRC="img51.png" ALT="$T$">, $x$, x
    the local portion of global dense matrix $x$.
    @@ -233,7 +233,7 @@ Intent: in. Specified as: a rank one or two array or an object of type vdatapsb_T_vect_type containing numbers of type specified in Table 13. The rank of $x$ must be the same of 13. The rank of $y$ must be the same of $x$.
    @@ -397,7 +397,7 @@ Type: optional Intent: inout.
    Specified as: a rank one array of the same type of $x$ with the TARGET attribute. @@ -440,26 +440,26 @@ An integer value; 0 means no error has been detected.


    - next - up - previous - contents
    - Next: Next: Communication routines - Up: Up: Computational routines - Previous: Previous: psb_spmm Sparse -   Contents diff --git a/docs/html/node65.html b/docs/html/node65.html index 33b4b851..b9929f6c 100644 --- a/docs/html/node65.html +++ b/docs/html/node65.html @@ -26,26 +26,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds - next - up - previous - contents
    - Next: Next: psb_halo Halo - Up: Up: userhtml - Previous: Previous: psb_spsm Triangular -   Contents

    @@ -63,13 +63,13 @@ routines not tied to a discretization space see Subsections diff --git a/docs/html/node66.html b/docs/html/node66.html index 443e8ae2..2d143c40 100644 --- a/docs/html/node66.html +++ b/docs/html/node66.html @@ -26,26 +26,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds - next - up - previous - contents
    - Next: Next: psb_ovrl Overlap - Up: Up: Communication routines - Previous: Previous: Communication routines -   Contents

    @@ -78,7 +78,7 @@ x \leftarrow x where:
    $x$
    is a global dense submatrix. @@ -98,7 +98,7 @@ Data types WIDTH="14" HEIGHT="14" ALIGN="BOTTOM" BORDER="0" SRC="img22.png" ALT="$\alpha$">, $x$
    Subroutine
    @@ -155,7 +155,7 @@ call psb_ovrl(x, desc_a, info, update=update_type, work=work)
    x
    global dense matrix $x$.
    @@ -225,7 +225,7 @@ Type: optional Intent: inout.
    Specified as: a one dimensional array of the same type of $x$. @@ -236,7 +236,7 @@ Specified as: a one dimensional array of the same type of
    x
    global dense result matrix $x$.
    @@ -325,7 +325,7 @@ distribution is such that each process will own 40 entries in the index space, with an overlap of 16 entries placed at local indices 25 through 40; the halo will run from local index 41 through local index 48.. If process 0 assigns an initial value of 1 to its entries in the $x$ vector, and process 1 assigns a value of 2, then after a call to psb_ovrl with psb_avg_ and a call to @@ -739,26 +739,26 @@ Process 1


    - next - up - previous - contents
    - Next: Next: psb_gather Gather - Up: Up: Communication routines - Previous: Previous: psb_halo Halo -   Contents diff --git a/docs/html/node68.html b/docs/html/node68.html index 5745b611..d2dacd47 100644 --- a/docs/html/node68.html +++ b/docs/html/node68.html @@ -26,26 +26,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds - next - up - previous - contents
    - Next: Next: psb_scatter Scatter - Up: Up: Communication routines - Previous: Previous: psb_ovrl Overlap -   Contents

    @@ -148,7 +148,7 @@ Data types


    \begin{lstlisting}
 call psb_gather(glob_x, loc_x, desc_a, info, root)
@@ -245,26 +245,26 @@ An integer value; 0 means no error has been detected.
 <P>
 <HR>
 <!--Navigation Panel-->
-<A NAME= next - up - previous - contents
    - Next: Next: psb_scatter Scatter - Up: Up: Communication routines - Previous: Previous: psb_ovrl Overlap -   Contents diff --git a/docs/html/node69.html b/docs/html/node69.html index 50d50efe..11b4b193 100644 --- a/docs/html/node69.html +++ b/docs/html/node69.html @@ -25,26 +25,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds - next - up - previous - contents
    - Next: Next: Data management routines - Up: Up: Communication routines - Previous: Previous: psb_gather Gather -   Contents

    @@ -252,26 +252,26 @@ An integer value; 0 means no error has been detected.


    - next - up - previous - contents
    - Next: Next: Data management routines - Up: Up: Communication routines - Previous: Previous: psb_gather Gather -   Contents diff --git a/docs/html/node7.html b/docs/html/node7.html index 684e6259..88b2e9b2 100644 --- a/docs/html/node7.html +++ b/docs/html/node7.html @@ -25,26 +25,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds - next - up - previous - contents
    - Next: Next: Programming model - Up: Up: Application structure - Previous: Previous: Application structure -   Contents

    diff --git a/docs/html/node70.html b/docs/html/node70.html index 715a7bff..0c3fa59b 100644 --- a/docs/html/node70.html +++ b/docs/html/node70.html @@ -26,26 +26,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds - next - up - previous - contents
    - Next: Next: psb_cdall Allocates - Up: Up: userhtml - Previous: Previous: psb_scatter Scatter -   Contents

    @@ -63,70 +63,70 @@ Data management routines Subsections diff --git a/docs/html/node71.html b/docs/html/node71.html index 36cbe355..5c83d6a2 100644 --- a/docs/html/node71.html +++ b/docs/html/node71.html @@ -26,26 +26,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds - next - up - previous - contents
    - Next: Next: psb_cdins Communication - Up: Up: Data management routines - Previous: Previous: Data management routines -   Contents

    @@ -425,26 +425,26 @@ An integer value; 0 means no error has been detected.


    - next - up - previous - contents
    - Next: Next: psb_cdins Communication - Up: Up: Data management routines - Previous: Previous: Data management routines -   Contents diff --git a/docs/html/node72.html b/docs/html/node72.html index a2dc3bb6..ce5f41fe 100644 --- a/docs/html/node72.html +++ b/docs/html/node72.html @@ -26,26 +26,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds - next - up - previous - contents
    - Next: Next: psb_cdasb Communication - Up: Up: Data management routines - Previous: Previous: psb_cdall Allocates -   Contents

    @@ -109,7 +109,7 @@ Type: required. Intent: in.
    Specified as: an integer array of length $nz$.
    @@ -123,7 +123,7 @@ Type: required. Intent: in.
    Specified as: an integer array of length $nz$. @@ -138,7 +138,7 @@ Type: optional. Intent: in.
    Specified as: a logical array of length $nz$, default .true.. @@ -152,7 +152,7 @@ Type: optional. Intent: in.
    Specified as: an integer array of length $nz$. @@ -195,7 +195,7 @@ Type: optional. Intent: out.
    Specified as: an integer array of length $nz$. @@ -209,7 +209,7 @@ Type: optional. Intent: out.
    Specified as: an integer array of length $nz$. @@ -234,26 +234,26 @@ nor the end vertex belong to the current process.


    - next - up - previous - contents
    - Next: Next: psb_cdasb Communication - Up: Up: Data management routines - Previous: Previous: psb_cdall Allocates -   Contents diff --git a/docs/html/node73.html b/docs/html/node73.html index a8539f34..2d43f21f 100644 --- a/docs/html/node73.html +++ b/docs/html/node73.html @@ -26,26 +26,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds - next - up - previous - contents
    - Next: Next: psb_cdcpy Copies - Up: Up: Data management routines - Previous: Previous: psb_cdins Communication -   Contents

    diff --git a/docs/html/node74.html b/docs/html/node74.html index 6181dc87..ea8d3f1b 100644 --- a/docs/html/node74.html +++ b/docs/html/node74.html @@ -26,26 +26,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds - next - up - previous - contents
    - Next: Next: psb_cdfree Frees - Up: Up: Data management routines - Previous: Previous: psb_cdasb Communication -   Contents

    diff --git a/docs/html/node75.html b/docs/html/node75.html index fb03fba0..b24a2b76 100644 --- a/docs/html/node75.html +++ b/docs/html/node75.html @@ -26,26 +26,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds - next - up - previous - contents
    - Next: Next: psb_cdbldext Build - Up: Up: Data management routines - Previous: Previous: psb_cdcpy Copies -   Contents

    diff --git a/docs/html/node76.html b/docs/html/node76.html index 453ba856..2a4e8d0b 100644 --- a/docs/html/node76.html +++ b/docs/html/node76.html @@ -26,26 +26,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds - next - up - previous - contents
    - Next: Next: psb_spall Allocates - Up: Up: Data management routines - Previous: Previous: psb_cdfree Frees -   Contents

    @@ -173,26 +173,26 @@ An integer value; 0 means no error has been detected.


    - next - up - previous - contents
    - Next: Next: psb_spall Allocates - Up: Up: Data management routines - Previous: Previous: psb_cdfree Frees -   Contents diff --git a/docs/html/node77.html b/docs/html/node77.html index 1c9c4cb8..62cda48a 100644 --- a/docs/html/node77.html +++ b/docs/html/node77.html @@ -26,26 +26,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds - next - up - previous - contents
    - Next: Next: psb_spins Insert - Up: Up: Data management routines - Previous: Previous: psb_cdbldext Build -   Contents

    @@ -142,26 +142,26 @@ An integer value; 0 means no error has been detected.


    - next - up - previous - contents
    - Next: Next: psb_spins Insert - Up: Up: Data management routines - Previous: Previous: psb_cdbldext Build -   Contents diff --git a/docs/html/node78.html b/docs/html/node78.html index d426d9ec..c622b3e9 100644 --- a/docs/html/node78.html +++ b/docs/html/node78.html @@ -26,26 +26,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds - next - up - previous - contents
    - Next: Next: psb_spasb Sparse - Up: Up: Data management routines - Previous: Previous: psb_spall Allocates -   Contents

    @@ -90,7 +90,7 @@ Type:required. Intent: in.
    Specified as: an integer array of size $nz$. @@ -104,7 +104,7 @@ Type:required. Intent: in.
    Specified as: an integer array of size $nz$. @@ -118,7 +118,7 @@ Type:required. Intent: in.
    Specified as: an array of size $nz$. Must be of the same type and kind of the coefficients of the sparse matrix
    - next - up - previous - contents
    - Next: Next: psb_spasb Sparse - Up: Up: Data management routines - Previous: Previous: psb_spall Allocates -   Contents diff --git a/docs/html/node79.html b/docs/html/node79.html index 8d6e75b4..94339916 100644 --- a/docs/html/node79.html +++ b/docs/html/node79.html @@ -26,26 +26,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds - next - up - previous - contents
    - Next: Next: psb_spfree Frees - Up: Up: Data management routines - Previous: Previous: psb_spins Insert -   Contents

    @@ -184,26 +184,26 @@ An integer value; 0 means no error has been detected.


    - next - up - previous - contents
    - Next: Next: psb_spfree Frees - Up: Up: Data management routines - Previous: Previous: psb_spins Insert -   Contents diff --git a/docs/html/node8.html b/docs/html/node8.html index cf7f32bf..ab07caf6 100644 --- a/docs/html/node8.html +++ b/docs/html/node8.html @@ -25,26 +25,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds - next - up - previous - contents
    - Next: Next: Data Structures and Classes - Up: Up: General overview - Previous: Previous: User-defined index mappings -   Contents

    @@ -96,26 +96,26 @@ as:


    - next - up - previous - contents
    - Next: Next: Data Structures and Classes - Up: Up: General overview - Previous: Previous: User-defined index mappings -   Contents diff --git a/docs/html/node80.html b/docs/html/node80.html index c7beeb5c..e2bb0c94 100644 --- a/docs/html/node80.html +++ b/docs/html/node80.html @@ -26,26 +26,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds - next - up - previous - contents
    - Next: Next: psb_sprn Reinit - Up: Up: Data management routines - Previous: Previous: psb_spasb Sparse -   Contents

    diff --git a/docs/html/node81.html b/docs/html/node81.html index bb3d888b..4bf87fdd 100644 --- a/docs/html/node81.html +++ b/docs/html/node81.html @@ -26,26 +26,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds - next - up - previous - contents
    - Next: Next: psb_geall Allocates - Up: Up: Data management routines - Previous: Previous: psb_spfree Frees -   Contents

    diff --git a/docs/html/node82.html b/docs/html/node82.html index bd0d290f..1accbdd8 100644 --- a/docs/html/node82.html +++ b/docs/html/node82.html @@ -26,26 +26,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds - next - up - previous - contents
    - Next: Next: psb_geins Dense - Up: Up: Data management routines - Previous: Previous: psb_sprn Reinit -   Contents

    @@ -92,7 +92,7 @@ Specified as: Integer scalar, default $1$. It is not a valid argument if $x$ is a rank-1 array. @@ -110,7 +110,7 @@ Specified as: Integer scalar, default $1$. It is not a valid argument if $x$ is a rank-1 array. @@ -150,26 +150,26 @@ An integer value; 0 means no error has been detected.


    - next - up - previous - contents
    - Next: Next: psb_geins Dense - Up: Up: Data management routines - Previous: Previous: psb_sprn Reinit -   Contents diff --git a/docs/html/node83.html b/docs/html/node83.html index e98196de..95c46077 100644 --- a/docs/html/node83.html +++ b/docs/html/node83.html @@ -26,26 +26,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds - next - up - previous - contents
    - Next: Next: psb_geasb Assembly - Up: Up: Data management routines - Previous: Previous: psb_geall Allocates -   Contents

    @@ -70,7 +70,7 @@ call psb_geins(m, irw, val, x, desc_a, info [,dupl,local])
    m
    Number of rows in $val$ to be inserted.
    @@ -88,7 +88,7 @@ Specified as: an integer value. SRC="img4.png" ALT="$i$"> of $val$ will be inserted into the local row corresponding to the global row index
    - next - up - previous - contents
    - Next: Next: psb_geasb Assembly - Up: Up: Data management routines - Previous: Previous: psb_geall Allocates -   Contents diff --git a/docs/html/node84.html b/docs/html/node84.html index 5ae14796..9d2f7b9f 100644 --- a/docs/html/node84.html +++ b/docs/html/node84.html @@ -26,26 +26,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds - next - up - previous - contents
    - Next: Next: psb_gefree Frees - Up: Up: Data management routines - Previous: Previous: psb_geins Dense -   Contents

    @@ -90,7 +90,7 @@ Intent: in.
    Specified as: an object of a class derived from vbasedatapsb_T_base_vect_type; this is only allowed when $x$ is of type vdatapsb_T_vect_type.
    diff --git a/docs/html/node85.html b/docs/html/node85.html index 74e00385..a963dfd4 100644 --- a/docs/html/node85.html +++ b/docs/html/node85.html @@ -26,26 +26,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds - next - up - previous - contents
    - Next: Next: psb_gelp Applies - Up: Up: Data management routines - Previous: Previous: psb_geasb Assembly -   Contents

    diff --git a/docs/html/node86.html b/docs/html/node86.html index 841b54ae..d36442e7 100644 --- a/docs/html/node86.html +++ b/docs/html/node86.html @@ -26,26 +26,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds - next - up - previous - contents
    - Next: Next: psb_glob_to_loc Global - Up: Up: Data management routines - Previous: Previous: psb_gefree Frees -   Contents

    diff --git a/docs/html/node87.html b/docs/html/node87.html index 43e35544..0e9a295a 100644 --- a/docs/html/node87.html +++ b/docs/html/node87.html @@ -26,26 +26,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds - next - up - previous - contents
    - Next: Next: psb_loc_to_glob Local - Up: Up: Data management routines - Previous: Previous: psb_gelp Applies -   Contents

    @@ -128,7 +128,7 @@ accepted. Default: false. SRC="img21.png" ALT="$y$"> is not present, then $x$ is overwritten with the translated integer indices. Scope: global @@ -148,7 +148,7 @@ Specified as: a rank one integer array. WIDTH="13" HEIGHT="30" ALIGN="MIDDLE" BORDER="0" SRC="img21.png" ALT="$y$"> is overwritten with the translated integer indices, and $x$ is left unchanged. @@ -188,26 +188,26 @@ An integer value; 0 means no error has been detected.


    - next - up - previous - contents
    - Next: Next: psb_loc_to_glob Local - Up: Up: Data management routines - Previous: Previous: psb_gelp Applies -   Contents diff --git a/docs/html/node88.html b/docs/html/node88.html index e7bf87b0..e2b9bb37 100644 --- a/docs/html/node88.html +++ b/docs/html/node88.html @@ -26,26 +26,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds - next - up - previous - contents
    - Next: Next: psb_is_owned - Up: Up: Data management routines - Previous: Previous: psb_glob_to_loc Global -   Contents

    @@ -116,7 +116,7 @@ Specified as: a character variable Ignore, Warning or SRC="img21.png" ALT="$y$"> is not present, then $x$ is overwritten with the translated integer indices. Scope: global @@ -136,7 +136,7 @@ Specified as: a rank one integer array. WIDTH="13" HEIGHT="30" ALIGN="MIDDLE" BORDER="0" SRC="img21.png" ALT="$y$"> is overwritten with the translated integer indices, and $x$ is left unchanged. @@ -164,26 +164,26 @@ An integer value; 0 means no error has been detected.


    - next - up - previous - contents
    - Next: Next: psb_is_owned - Up: Up: Data management routines - Previous: Previous: psb_glob_to_loc Global -   Contents diff --git a/docs/html/node89.html b/docs/html/node89.html index 6287eb53..6866fedc 100644 --- a/docs/html/node89.html +++ b/docs/html/node89.html @@ -26,26 +26,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds - next - up - previous - contents
    - Next: Next: psb_owned_index - Up: Up: Data management routines - Previous: Previous: psb_loc_to_glob Local -   Contents

    @@ -100,7 +100,7 @@ Specified as: a structured data of type descdatapsb_desc_type.
    Function value
    A logical mask which is true if $x$ is owned by the current process Scope: local diff --git a/docs/html/node9.html b/docs/html/node9.html index d6805543..833d24af 100644 --- a/docs/html/node9.html +++ b/docs/html/node9.html @@ -26,26 +26,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds - next - up - previous - contents
    - Next: Next: Descriptor data structure - Up: Up: userhtml - Previous: Previous: Programming model -   Contents

    @@ -111,129 +111,129 @@ developer's documentation. Subsections
    - next - up - previous - contents
    - Next: Next: Descriptor data structure - Up: Up: userhtml - Previous: Previous: Programming model -   Contents diff --git a/docs/html/node90.html b/docs/html/node90.html index 97711fea..0e1525b7 100644 --- a/docs/html/node90.html +++ b/docs/html/node90.html @@ -26,26 +26,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds - next - up - previous - contents
    - Next: Next: psb_is_local - Up: Up: Data management routines - Previous: Previous: psb_is_owned -   Contents

    @@ -111,7 +111,7 @@ Specified as: a character variable Ignore, Warning or
    y
    A logical mask which is true for all corresponding entries of $x$ that are owned by the current process Scope: local diff --git a/docs/html/node91.html b/docs/html/node91.html index 1319acb0..3bed027b 100644 --- a/docs/html/node91.html +++ b/docs/html/node91.html @@ -26,26 +26,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds - next - up - previous - contents
    - Next: Next: psb_local_index - Up: Up: Data management routines - Previous: Previous: psb_owned_index -   Contents

    @@ -100,7 +100,7 @@ Specified as: a structured data of type descdatapsb_desc_type.
    Function value
    A logical mask which is true if $x$ is local to the current process Scope: local diff --git a/docs/html/node92.html b/docs/html/node92.html index 0f457dbc..6e55758b 100644 --- a/docs/html/node92.html +++ b/docs/html/node92.html @@ -26,26 +26,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds - next - up - previous - contents
    - Next: Next: psb_get_boundary Extract - Up: Up: Data management routines - Previous: Previous: psb_is_local -   Contents

    @@ -111,7 +111,7 @@ Specified as: a character variable Ignore, Warning or
    y
    A logical mask which is true for all corresponding entries of $x$ that are local to the current process Scope: local diff --git a/docs/html/node93.html b/docs/html/node93.html index 9913ee00..c79b18ab 100644 --- a/docs/html/node93.html +++ b/docs/html/node93.html @@ -26,26 +26,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds - next - up - previous - contents
    - Next: Next: psb_get_overlap Extract - Up: Up: Data management routines - Previous: Previous: psb_local_index -   Contents

    diff --git a/docs/html/node94.html b/docs/html/node94.html index 9454b096..7d860b10 100644 --- a/docs/html/node94.html +++ b/docs/html/node94.html @@ -26,26 +26,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds - next - up - previous - contents
    - Next: Next: psb_sp_getrow Extract - Up: Up: Data management routines - Previous: Previous: psb_get_boundary Extract -   Contents

    diff --git a/docs/html/node95.html b/docs/html/node95.html index de2cad5e..c3b146a5 100644 --- a/docs/html/node95.html +++ b/docs/html/node95.html @@ -26,26 +26,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds - next - up - previous - contents
    - Next: Next: psb_sizeof Memory - Up: Up: Data management routines - Previous: Previous: psb_get_overlap Extract -   Contents

    @@ -209,7 +209,7 @@ An integer value; 0 means no error has been detected.
    1. The output $nz$ is always the size of the output generated by the current call; thus, if append=.true., the total output @@ -231,26 +231,26 @@ An integer value; 0 means no error has been detected.


      - next - up - previous - contents
      - Next: Next: psb_sizeof Memory - Up: Up: Data management routines - Previous: Previous: psb_get_overlap Extract -   Contents diff --git a/docs/html/node96.html b/docs/html/node96.html index 19dcc1de..f74d2b3e 100644 --- a/docs/html/node96.html +++ b/docs/html/node96.html @@ -26,26 +26,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds - next - up - previous - contents
      - Next: Next: Sorting utilities - Up: Up: Data management routines - Previous: Previous: psb_sp_getrow Extract -   Contents

      diff --git a/docs/html/node97.html b/docs/html/node97.html index e2020ed3..a449f290 100644 --- a/docs/html/node97.html +++ b/docs/html/node97.html @@ -25,26 +25,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds - next - up - previous - contents
      - Next: Next: Parallel environment routines - Up: Up: Data management routines - Previous: Previous: psb_sizeof Memory -   Contents

      @@ -154,7 +154,7 @@ Type: Optional
      An integer array of rank 1, whose entries are moved to the same position as the corresponding entries in $x$.
    @@ -194,7 +194,7 @@ position as the corresponding entries in $n$ is the size of $x$ are initialized to - next - up - previous - contents
    - Next: Next: Parallel environment routines - Up: Up: Data management routines - Previous: Previous: psb_sizeof Memory -   Contents diff --git a/docs/html/node98.html b/docs/html/node98.html index 03cb4d4f..faf7fc0b 100644 --- a/docs/html/node98.html +++ b/docs/html/node98.html @@ -26,26 +26,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds - next - up - previous - contents
    - Next: Next: psb_init Initializes - Up: Up: userhtml - Previous: Previous: Sorting utilities -   Contents

    @@ -63,41 +63,41 @@ Parallel environment routines Subsections diff --git a/docs/html/node99.html b/docs/html/node99.html index c78c117c..490ebada 100644 --- a/docs/html/node99.html +++ b/docs/html/node99.html @@ -26,26 +26,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds - next - up - previous - contents
    - Next: Next: psb_info Return - Up: Up: Parallel environment routines - Previous: Previous: Parallel environment routines -   Contents

    @@ -152,26 +152,26 @@ Specified as: an integer variable.


    - next - up - previous - contents
    - Next: Next: psb_info Return - Up: Up: Parallel environment routines - Previous: Previous: Parallel environment routines -   Contents diff --git a/docs/html/userhtml.html b/docs/html/userhtml.html index 7e07ec7f..00cf6b85 100644 --- a/docs/html/userhtml.html +++ b/docs/html/userhtml.html @@ -59,9 +59,9 @@ University of Rome ``Tor Vergata'', Italy


    -Software version: 3.4.1 +Software version: 3.5.0
    -June 2, 2016. +May 1st, 2017 @@ -377,32 +377,34 @@ of a dense vector HREF="node123.html">Preconditioner routines
    -
  • Iterative Methods -

    diff --git a/docs/psblas-3.4.pdf b/docs/psblas-3.5.pdf similarity index 89% rename from docs/psblas-3.4.pdf rename to docs/psblas-3.5.pdf index 1c7c1d61..ac39e96e 100644 --- a/docs/psblas-3.4.pdf +++ b/docs/psblas-3.5.pdf @@ -21,7 +21,7 @@ stream % 1 0 obj << /S /GoTo /D (title.0) >> % 5 0 obj -(PSBLAS-v3.4.1 User's Guide) +(PSBLAS-v3.5.0 User's Guide) % 6 0 obj << /S /GoTo /D (section.1) >> % 9 0 obj @@ -442,9 +442,9 @@ stream endstream endobj -543 0 obj +547 0 obj << -/Length 682 +/Length 686 >> stream 0 g 0 G @@ -453,7 +453,7 @@ stream 0 g 0 G 0 g 0 G BT -/F16 24.7871 Tf 135.453 570.847 Td [(PSBLAS)-375(3.4.1)-375(User's)-375(guide)]TJ +/F16 24.7871 Tf 135.453 570.847 Td [(PSBLAS)-375(3.5.0)-375(User's)-375(guide)]TJ ET q 1 0 0 1 125.3 554.602 cm @@ -463,14 +463,14 @@ BT /F18 14.3462 Tf 132.314 532.919 Td [(A)-350(r)50(efer)50(enc)50(e)-350(guide)-350(for)-350(the)-350(Par)50(al)-50(lel)-350(Sp)50(arse)-350(BLAS)-350(libr)50(ary)]TJ 0 g 0 G 0 g 0 G -/F27 9.9626 Tf 223.567 -127.777 Td [(b)32(y)-383(Salv)63(atore)-383(Filipp)-32(one)]TJ 12.889 -11.955 Td [(and)-383(Alfredo)-384(Buttari)]TJ/F8 9.9626 Tf -52.52 -11.955 Td [(Univ)28(ersit)28(y)-334(of)-333(Rome)-333(\134T)83(or)-333(V)83(ergata".)]TJ 95.061 -24.824 Td [(June)-333(2,)-334(2016.)]TJ +/F27 9.9626 Tf 223.567 -127.777 Td [(b)32(y)-383(Salv)63(atore)-383(Filipp)-32(one)]TJ 12.889 -11.955 Td [(and)-383(Alfredo)-384(Buttari)]TJ/F8 9.9626 Tf -52.52 -11.955 Td [(Univ)28(ersit)28(y)-334(of)-333(Rome)-333(\134T)83(or)-333(V)83(ergata".)]TJ 91.546 -24.824 Td [(Ma)28(y)-334(1st,)-333(2017)]TJ 0 g 0 G 0 g 0 G ET endstream endobj -553 0 obj +557 0 obj << /Length 77 >> @@ -485,7 +485,7 @@ ET endstream endobj -604 0 obj +608 0 obj << /Length 17096 >> @@ -1092,7 +1092,7 @@ endobj /Type /ObjStm /N 100 /First 865 -/Length 7833 +/Length 7588 >> stream 403 0 407 44 408 70 411 114 412 150 415 194 416 227 419 271 420 298 423 342 @@ -1100,11 +1100,11 @@ stream 444 720 447 764 448 789 451 833 452 858 455 902 456 927 459 971 460 996 463 1038 464 1069 467 1113 468 1142 471 1186 472 1213 475 1257 476 1298 479 1342 480 1380 483 1422 484 1448 487 1492 488 1517 491 1561 492 1587 495 1631 496 1663 499 1708 500 1742 503 1787 -504 1820 507 1865 508 1900 511 1943 512 1984 515 2029 516 2059 519 2104 520 2133 523 2178 -524 2208 527 2253 528 2284 531 2329 532 2349 535 2392 536 2427 539 2472 540 2500 541 2545 -544 2659 545 2715 3 2771 542 2825 552 2930 554 3044 551 3101 603 3167 555 3661 556 3807 -557 3953 558 4105 559 4257 560 4409 561 4566 562 4718 563 4864 564 5016 565 5172 566 5319 -567 5466 568 5614 569 5762 570 5910 571 6058 572 6206 573 6354 574 6503 575 6660 576 6812 +504 1820 507 1865 508 1900 511 1943 512 1984 515 2029 516 2056 519 2101 520 2129 523 2174 +524 2202 527 2247 528 2275 531 2320 532 2340 535 2385 536 2412 539 2455 540 2490 543 2535 +544 2563 545 2608 548 2722 549 2778 3 2834 546 2888 556 2993 558 3107 555 3164 607 3230 +559 3724 560 3870 561 4016 562 4168 563 4320 564 4472 565 4629 566 4781 567 4927 568 5079 +569 5235 570 5382 571 5529 572 5677 573 5825 574 5973 575 6121 576 6269 577 6417 578 6566 % 403 0 obj << /S /GoTo /D (section*.79) >> % 407 0 obj @@ -1216,85 +1216,89 @@ stream % 512 0 obj << /S /GoTo /D (section*.103) >> % 515 0 obj -(psb\137precinit) +(prec\045init) % 516 0 obj << /S /GoTo /D (section*.104) >> % 519 0 obj -(psb\137precbld) +(prec\045build) % 520 0 obj << /S /GoTo /D (section*.105) >> % 523 0 obj -(psb\137precaply) +(prec\045apply) % 524 0 obj << /S /GoTo /D (section*.106) >> % 527 0 obj -(psb\137precdescr) +(prec\045descr) % 528 0 obj << /S /GoTo /D (section*.107) >> % 531 0 obj (clone) % 532 0 obj -<< /S /GoTo /D (section.11) >> +<< /S /GoTo /D (section*.108) >> % 535 0 obj -(11 Iterative Methods) +(prec\045free) % 536 0 obj -<< /S /GoTo /D (section*.108) >> +<< /S /GoTo /D (section.11) >> % 539 0 obj -(psb\137krylov) +(11 Iterative Methods) % 540 0 obj -<< /S /GoTo /D [541 0 R /Fit] >> -% 541 0 obj +<< /S /GoTo /D (section*.109) >> +% 543 0 obj +(psb\137krylov) +% 544 0 obj +<< /S /GoTo /D [545 0 R /Fit] >> +% 545 0 obj << /Type /Page -/Contents 543 0 R -/Resources 542 0 R +/Contents 547 0 R +/Resources 546 0 R /MediaBox [0 0 595.276 841.89] -/Parent 550 0 R +/Parent 554 0 R >> -% 544 0 obj +% 548 0 obj << -/D [541 0 R /XYZ 98.895 753.953 null] +/D [545 0 R /XYZ 98.895 753.953 null] >> -% 545 0 obj +% 549 0 obj << -/D [541 0 R /XYZ 99.895 716.092 null] +/D [545 0 R /XYZ 99.895 716.092 null] >> % 3 0 obj << -/D [541 0 R /XYZ 99.895 716.092 null] +/D [545 0 R /XYZ 99.895 716.092 null] >> -% 542 0 obj +% 546 0 obj << -/Font << /F16 546 0 R /F18 547 0 R /F27 548 0 R /F8 549 0 R >> +/Font << /F16 550 0 R /F18 551 0 R /F27 552 0 R /F8 553 0 R >> /ProcSet [ /PDF /Text ] >> -% 552 0 obj +% 556 0 obj << /Type /Page -/Contents 553 0 R -/Resources 551 0 R +/Contents 557 0 R +/Resources 555 0 R /MediaBox [0 0 595.276 841.89] -/Parent 550 0 R +/Parent 554 0 R >> -% 554 0 obj +% 558 0 obj << -/D [552 0 R /XYZ 149.705 753.953 null] +/D [556 0 R /XYZ 149.705 753.953 null] >> -% 551 0 obj +% 555 0 obj << -/Font << /F8 549 0 R >> +/Font << /F8 553 0 R >> /ProcSet [ /PDF /Text ] >> -% 603 0 obj +% 607 0 obj << /Type /Page -/Contents 604 0 R -/Resources 602 0 R +/Contents 608 0 R +/Resources 606 0 R /MediaBox [0 0 595.276 841.89] -/Parent 550 0 R -/Annots [ 555 0 R 556 0 R 557 0 R 558 0 R 559 0 R 560 0 R 561 0 R 562 0 R 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 ] +/Parent 554 0 R +/Annots [ 559 0 R 560 0 R 561 0 R 562 0 R 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 ] >> -% 555 0 obj +% 559 0 obj << /Type /Annot /Subtype /Link @@ -1302,7 +1306,7 @@ stream /Rect [98.899 683.007 179.001 691.918] /A << /S /GoTo /D (section.1) >> >> -% 556 0 obj +% 560 0 obj << /Type /Annot /Subtype /Link @@ -1310,7 +1314,7 @@ stream /Rect [98.899 660.882 202.863 669.793] /A << /S /GoTo /D (section.2) >> >> -% 557 0 obj +% 561 0 obj << /Type /Annot /Subtype /Link @@ -1318,7 +1322,7 @@ stream /Rect [113.843 648.802 225.868 657.713] /A << /S /GoTo /D (subsection.2.1) >> >> -% 558 0 obj +% 562 0 obj << /Type /Annot /Subtype /Link @@ -1326,7 +1330,7 @@ stream /Rect [113.843 634.785 210.675 645.633] /A << /S /GoTo /D (subsection.2.2) >> >> -% 559 0 obj +% 563 0 obj << /Type /Annot /Subtype /Link @@ -1334,7 +1338,7 @@ stream /Rect [113.843 622.706 232.122 633.554] /A << /S /GoTo /D (subsection.2.3) >> >> -% 560 0 obj +% 564 0 obj << /Type /Annot /Subtype /Link @@ -1342,7 +1346,7 @@ stream /Rect [136.757 610.626 296.409 621.474] /A << /S /GoTo /D (subsubsection.2.3.1) >> >> -% 561 0 obj +% 565 0 obj << /Type /Annot /Subtype /Link @@ -1350,7 +1354,7 @@ stream /Rect [113.843 598.546 227.777 609.394] /A << /S /GoTo /D (subsection.2.4) >> >> -% 562 0 obj +% 566 0 obj << /Type /Annot /Subtype /Link @@ -1358,7 +1362,7 @@ stream /Rect [98.899 578.358 258.112 587.269] /A << /S /GoTo /D (section.3) >> >> -% 563 0 obj +% 567 0 obj << /Type /Annot /Subtype /Link @@ -1366,7 +1370,7 @@ stream /Rect [113.843 564.341 249.529 575.189] /A << /S /GoTo /D (subsection.3.1) >> >> -% 564 0 obj +% 568 0 obj << /Type /Annot /Subtype /Link @@ -1374,7 +1378,7 @@ stream /Rect [136.757 552.261 257.001 563.11] /A << /S /GoTo /D (subsubsection.3.1.1) >> >> -% 565 0 obj +% 569 0 obj << /Type /Annot /Subtype /Link @@ -1382,7 +1386,7 @@ stream /Rect [168.638 540.182 231.021 551.03] /A << /S /GoTo /D (section*.2) >> >> -% 566 0 obj +% 570 0 obj << /Type /Annot /Subtype /Link @@ -1390,7 +1394,7 @@ stream /Rect [168.638 528.102 227.395 538.95] /A << /S /GoTo /D (section*.3) >> >> -% 567 0 obj +% 571 0 obj << /Type /Annot /Subtype /Link @@ -1398,7 +1402,7 @@ stream /Rect [168.638 516.022 236.832 526.871] /A << /S /GoTo /D (section*.4) >> >> -% 568 0 obj +% 572 0 obj << /Type /Annot /Subtype /Link @@ -1406,7 +1410,7 @@ stream /Rect [168.638 503.943 233.207 514.791] /A << /S /GoTo /D (section*.5) >> >> -% 569 0 obj +% 573 0 obj << /Type /Annot /Subtype /Link @@ -1414,7 +1418,7 @@ stream /Rect [168.638 491.863 236.832 502.711] /A << /S /GoTo /D (section*.6) >> >> -% 570 0 obj +% 574 0 obj << /Type /Annot /Subtype /Link @@ -1422,7 +1426,7 @@ stream /Rect [168.638 479.783 219.602 490.133] /A << /S /GoTo /D (section*.7) >> >> -% 571 0 obj +% 575 0 obj << /Type /Annot /Subtype /Link @@ -1430,7 +1434,7 @@ stream /Rect [168.638 469.641 195.537 478.552] /A << /S /GoTo /D (section*.8) >> >> -% 572 0 obj +% 576 0 obj << /Type /Annot /Subtype /Link @@ -1438,7 +1442,7 @@ stream /Rect [168.638 455.624 284.769 466.472] /A << /S /GoTo /D (section*.9) >> >> -% 573 0 obj +% 577 0 obj << /Type /Annot /Subtype /Link @@ -1446,7 +1450,7 @@ stream /Rect [168.638 443.544 283.717 454.392] /A << /S /GoTo /D (section*.10) >> >> -% 574 0 obj +% 578 0 obj << /Type /Annot /Subtype /Link @@ -1454,26 +1458,10 @@ stream /Rect [136.757 433.402 248.228 442.313] /A << /S /GoTo /D (subsubsection.3.1.2) >> >> -% 575 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [113.843 419.385 223.654 430.233] -/A << /S /GoTo /D (subsection.3.2) >> ->> -% 576 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [136.757 407.305 273.19 418.153] -/A << /S /GoTo /D (subsubsection.3.2.1) >> ->> endstream endobj -657 0 obj +661 0 obj << /Length 20816 >> @@ -2165,9 +2153,9 @@ ET endstream endobj -700 0 obj +705 0 obj << -/Length 17138 +/Length 17009 >> stream 0 g 0 G @@ -2652,112 +2640,107 @@ BT 0 g 0 G [-19367(128)]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 271.957 cm -[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S -Q -BT -/F8 9.9626 Tf 133.425 271.758 Td [(precinit)]TJ +/F8 9.9626 Tf 14.944 -11.955 Td [(prec%init)]TJ 0 g 0 G - [-548(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ + [-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 - [-584(129)]TJ + [-583(129)]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 260.002 cm -[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S -Q -BT -/F8 9.9626 Tf 133.425 259.803 Td [(precbld)]TJ + 0 -11.955 Td [(prec%build)]TJ 0 g 0 G - [-659(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ + [-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(130)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG - -18.586 -11.956 Td [(psb)]TJ -ET -q -1 0 0 1 130.436 248.047 cm -[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S -Q -BT -/F8 9.9626 Tf 133.425 247.847 Td [(precaply)]TJ + 0 -11.956 Td [(prec%apply)]TJ 0 g 0 G - [-965(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ + [-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(131)]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 236.091 cm -[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S -Q -BT -/F8 9.9626 Tf 133.425 235.892 Td [(precdescr)]TJ + 0 -11.955 Td [(prec%descr)]TJ 0 g 0 G - [-596(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ + [-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 - [-583(132)]TJ + [-584(132)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG - -18.586 -11.955 Td [(clone)]TJ + 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(133)]TJ 0 g 0 G +0 0 1 rg 0 0 1 RG + 0 -11.955 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(134)]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 0 g 0 G - [-22176(134)]TJ + [-22176(135)]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 190.263 cm +1 0 0 1 130.436 178.308 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 133.425 190.064 Td [(krylo)28(v)]TJ +/F8 9.9626 Tf 133.425 178.109 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(135)]TJ + [-583(136)]TJ 0 g 0 G 0 g 0 G - 134.175 -99.626 Td [(iii)]TJ + 134.175 -87.671 Td [(iii)]TJ 0 g 0 G ET endstream endobj -607 0 obj +611 0 obj << /Type /ObjStm /N 100 /First 924 -/Length 16041 +/Length 16063 >> stream -577 0 578 149 579 298 580 447 581 595 582 744 583 893 584 1042 585 1191 586 1340 -587 1489 588 1638 589 1787 590 1936 591 2085 592 2234 593 2382 594 2531 595 2688 596 2840 -597 2997 598 3146 599 3293 600 3442 605 3591 606 3647 602 3703 656 3795 601 4297 608 4446 -609 4598 610 4750 611 4897 612 5046 613 5195 614 5342 615 5490 616 5638 617 5787 618 5936 -619 6085 620 6233 621 6382 622 6531 623 6678 624 6827 625 6974 626 7123 627 7271 628 7419 -629 7567 630 7713 631 7861 632 8010 633 8159 634 8308 635 8457 636 8606 637 8755 638 8904 -639 9053 640 9202 641 9351 642 9500 643 9649 644 9798 645 9947 646 10095 647 10243 648 10391 -649 10540 650 10689 651 10837 652 10984 653 11131 658 11277 655 11334 699 11413 654 11859 659 12008 -660 12152 661 12301 662 12447 663 12595 664 12744 665 12892 666 13040 667 13188 668 13337 669 13486 -670 13635 671 13784 672 13933 673 14081 674 14230 675 14378 676 14526 677 14674 678 14823 679 14969 -% 577 0 obj +579 0 580 152 581 308 582 457 583 606 584 755 585 903 586 1052 587 1201 588 1350 +589 1499 590 1648 591 1797 592 1946 593 2095 594 2244 595 2393 596 2542 597 2690 598 2839 +599 2996 600 3148 601 3305 602 3454 603 3601 604 3750 609 3899 610 3955 606 4011 660 4103 +605 4605 612 4754 613 4906 614 5058 615 5205 616 5354 617 5503 618 5650 619 5798 620 5946 +621 6095 622 6244 623 6393 624 6541 625 6690 626 6839 627 6986 628 7135 629 7282 630 7431 +631 7579 632 7727 633 7875 634 8021 635 8169 636 8318 637 8467 638 8616 639 8765 640 8914 +641 9063 642 9212 643 9361 644 9510 645 9659 646 9808 647 9957 648 10106 649 10255 650 10403 +651 10551 652 10699 653 10848 654 10997 655 11145 656 11292 657 11439 662 11585 659 11642 704 11721 +658 12175 663 12324 664 12468 665 12617 666 12763 667 12911 668 13060 669 13208 670 13356 671 13504 +672 13653 673 13802 674 13951 675 14100 676 14249 677 14397 678 14546 679 14694 680 14842 681 14990 +% 579 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [113.843 419.385 223.654 430.233] +/A << /S /GoTo /D (subsection.3.2) >> +>> +% 580 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [136.757 407.305 273.19 418.153] +/A << /S /GoTo /D (subsubsection.3.2.1) >> +>> +% 581 0 obj << /Type /Annot /Subtype /Link @@ -2765,7 +2748,7 @@ stream /Rect [168.638 395.225 212.767 405.575] /A << /S /GoTo /D (section*.11) >> >> -% 578 0 obj +% 582 0 obj << /Type /Annot /Subtype /Link @@ -2773,7 +2756,7 @@ stream /Rect [168.638 383.146 209.141 393.994] /A << /S /GoTo /D (section*.12) >> >> -% 579 0 obj +% 583 0 obj << /Type /Annot /Subtype /Link @@ -2781,7 +2764,7 @@ stream /Rect [168.638 371.066 220.239 381.416] /A << /S /GoTo /D (section*.13) >> >> -% 580 0 obj +% 584 0 obj << /Type /Annot /Subtype /Link @@ -2789,7 +2772,7 @@ stream /Rect [168.638 358.986 206.374 369.57] /A << /S /GoTo /D (section*.14) >> >> -% 581 0 obj +% 585 0 obj << /Type /Annot /Subtype /Link @@ -2797,7 +2780,7 @@ stream /Rect [168.638 348.844 197.529 357.755] /A << /S /GoTo /D (section*.15) >> >> -% 582 0 obj +% 586 0 obj << /Type /Annot /Subtype /Link @@ -2805,7 +2788,7 @@ stream /Rect [168.638 334.827 205.765 345.675] /A << /S /GoTo /D (section*.16) >> >> -% 583 0 obj +% 587 0 obj << /Type /Annot /Subtype /Link @@ -2813,7 +2796,7 @@ stream /Rect [168.638 322.747 262.143 333.595] /A << /S /GoTo /D (section*.17) >> >> -% 584 0 obj +% 588 0 obj << /Type /Annot /Subtype /Link @@ -2821,7 +2804,7 @@ stream /Rect [168.638 310.667 328.909 321.516] /A << /S /GoTo /D (section*.18) >> >> -% 585 0 obj +% 589 0 obj << /Type /Annot /Subtype /Link @@ -2829,7 +2812,7 @@ stream /Rect [168.638 300.525 193.932 308.938] /A << /S /GoTo /D (section*.19) >> >> -% 586 0 obj +% 590 0 obj << /Type /Annot /Subtype /Link @@ -2837,7 +2820,7 @@ stream /Rect [168.638 286.508 194.485 297.356] /A << /S /GoTo /D (section*.20) >> >> -% 587 0 obj +% 591 0 obj << /Type /Annot /Subtype /Link @@ -2845,7 +2828,7 @@ stream /Rect [168.638 276.365 218.025 285.276] /A << /S /GoTo /D (section*.21) >> >> -% 588 0 obj +% 592 0 obj << /Type /Annot /Subtype /Link @@ -2853,7 +2836,7 @@ stream /Rect [168.638 262.349 205.765 273.197] /A << /S /GoTo /D (section*.22) >> >> -% 589 0 obj +% 593 0 obj << /Type /Annot /Subtype /Link @@ -2861,7 +2844,7 @@ stream /Rect [168.638 250.269 207.979 261.117] /A << /S /GoTo /D (section*.23) >> >> -% 590 0 obj +% 594 0 obj << /Type /Annot /Subtype /Link @@ -2869,7 +2852,7 @@ stream /Rect [168.638 240.126 183.941 249.037] /A << /S /GoTo /D (section*.24) >> >> -% 591 0 obj +% 595 0 obj << /Type /Annot /Subtype /Link @@ -2877,7 +2860,7 @@ stream /Rect [168.638 228.047 186.709 236.693] /A << /S /GoTo /D (section*.25) >> >> -% 592 0 obj +% 596 0 obj << /Type /Annot /Subtype /Link @@ -2885,7 +2868,7 @@ stream /Rect [168.638 214.03 255.944 224.878] /A << /S /GoTo /D (section*.26) >> >> -% 593 0 obj +% 597 0 obj << /Type /Annot /Subtype /Link @@ -2893,7 +2876,7 @@ stream /Rect [168.638 203.887 192.769 212.798] /A << /S /GoTo /D (section*.27) >> >> -% 594 0 obj +% 598 0 obj << /Type /Annot /Subtype /Link @@ -2901,7 +2884,7 @@ stream /Rect [136.757 191.808 248.228 200.719] /A << /S /GoTo /D (subsubsection.3.2.2) >> >> -% 595 0 obj +% 599 0 obj << /Type /Annot /Subtype /Link @@ -2909,7 +2892,7 @@ stream /Rect [113.843 179.728 265.358 188.528] /A << /S /GoTo /D (subsection.3.3) >> >> -% 596 0 obj +% 600 0 obj << /Type /Annot /Subtype /Link @@ -2917,7 +2900,7 @@ stream /Rect [136.757 167.648 239.898 176.559] /A << /S /GoTo /D (subsubsection.3.3.1) >> >> -% 597 0 obj +% 601 0 obj << /Type /Annot /Subtype /Link @@ -2925,7 +2908,7 @@ stream /Rect [168.638 153.631 212.767 163.981] /A << /S /GoTo /D (section*.28) >> >> -% 598 0 obj +% 602 0 obj << /Type /Annot /Subtype /Link @@ -2933,7 +2916,7 @@ stream /Rect [168.638 143.489 197.529 152.4] /A << /S /GoTo /D (section*.29) >> >> -% 599 0 obj +% 603 0 obj << /Type /Annot /Subtype /Link @@ -2941,7 +2924,7 @@ stream /Rect [168.638 131.409 186.183 139.822] /A << /S /GoTo /D (section*.30) >> >> -% 600 0 obj +% 604 0 obj << /Type /Annot /Subtype /Link @@ -2949,29 +2932,29 @@ stream /Rect [168.638 117.392 208.533 127.742] /A << /S /GoTo /D (section*.31) >> >> -% 605 0 obj +% 609 0 obj << -/D [603 0 R /XYZ 98.895 753.953 null] +/D [607 0 R /XYZ 98.895 753.953 null] >> -% 606 0 obj +% 610 0 obj << -/D [603 0 R /XYZ 99.895 724.062 null] +/D [607 0 R /XYZ 99.895 724.062 null] >> -% 602 0 obj +% 606 0 obj << -/Font << /F16 546 0 R /F27 548 0 R /F8 549 0 R >> +/Font << /F16 550 0 R /F27 552 0 R /F8 553 0 R >> /ProcSet [ /PDF /Text ] >> -% 656 0 obj +% 660 0 obj << /Type /Page -/Contents 657 0 R -/Resources 655 0 R +/Contents 661 0 R +/Resources 659 0 R /MediaBox [0 0 595.276 841.89] -/Parent 550 0 R -/Annots [ 601 0 R 608 0 R 609 0 R 610 0 R 611 0 R 612 0 R 613 0 R 614 0 R 615 0 R 616 0 R 617 0 R 618 0 R 619 0 R 620 0 R 621 0 R 622 0 R 623 0 R 624 0 R 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 ] +/Parent 554 0 R +/Annots [ 605 0 R 612 0 R 613 0 R 614 0 R 615 0 R 616 0 R 617 0 R 618 0 R 619 0 R 620 0 R 621 0 R 622 0 R 623 0 R 624 0 R 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 ] >> -% 601 0 obj +% 605 0 obj << /Type /Annot /Subtype /Link @@ -2979,7 +2962,7 @@ stream /Rect [219.447 705.133 243.579 714.044] /A << /S /GoTo /D (section*.32) >> >> -% 608 0 obj +% 612 0 obj << /Type /Annot /Subtype /Link @@ -2987,7 +2970,7 @@ stream /Rect [164.653 693.053 318.825 701.964] /A << /S /GoTo /D (subsection.3.4) >> >> -% 609 0 obj +% 613 0 obj << /Type /Annot /Subtype /Link @@ -2995,7 +2978,7 @@ stream /Rect [164.653 679.036 277.397 689.884] /A << /S /GoTo /D (subsection.3.5) >> >> -% 610 0 obj +% 614 0 obj << /Type /Annot /Subtype /Link @@ -3003,7 +2986,7 @@ stream /Rect [149.709 656.911 285.838 667.759] /A << /S /GoTo /D (section.4) >> >> -% 611 0 obj +% 615 0 obj << /Type /Annot /Subtype /Link @@ -3011,7 +2994,7 @@ stream /Rect [164.653 644.831 220.931 655.679] /A << /S /GoTo /D (section*.33) >> >> -% 612 0 obj +% 616 0 obj << /Type /Annot /Subtype /Link @@ -3019,7 +3002,7 @@ stream /Rect [164.653 632.751 209.031 643.599] /A << /S /GoTo /D (section*.34) >> >> -% 613 0 obj +% 617 0 obj << /Type /Annot /Subtype /Link @@ -3027,7 +3010,7 @@ stream /Rect [164.653 620.672 212.96 631.52] /A << /S /GoTo /D (section*.35) >> >> -% 614 0 obj +% 618 0 obj << /Type /Annot /Subtype /Link @@ -3035,7 +3018,7 @@ stream /Rect [164.653 608.592 210.719 619.44] /A << /S /GoTo /D (section*.36) >> >> -% 615 0 obj +% 619 0 obj << /Type /Annot /Subtype /Link @@ -3043,7 +3026,7 @@ stream /Rect [164.653 596.512 222.093 607.36] /A << /S /GoTo /D (section*.37) >> >> -% 616 0 obj +% 620 0 obj << /Type /Annot /Subtype /Link @@ -3051,7 +3034,7 @@ stream /Rect [164.653 584.432 212.933 595.281] /A << /S /GoTo /D (section*.38) >> >> -% 617 0 obj +% 621 0 obj << /Type /Annot /Subtype /Link @@ -3059,7 +3042,7 @@ stream /Rect [164.653 572.353 221.318 583.201] /A << /S /GoTo /D (section*.39) >> >> -% 618 0 obj +% 622 0 obj << /Type /Annot /Subtype /Link @@ -3067,7 +3050,7 @@ stream /Rect [164.653 560.273 212.933 571.121] /A << /S /GoTo /D (section*.40) >> >> -% 619 0 obj +% 623 0 obj << /Type /Annot /Subtype /Link @@ -3075,7 +3058,7 @@ stream /Rect [164.653 548.193 221.29 559.042] /A << /S /GoTo /D (section*.41) >> >> -% 620 0 obj +% 624 0 obj << /Type /Annot /Subtype /Link @@ -3083,7 +3066,7 @@ stream /Rect [164.653 536.114 212.933 546.962] /A << /S /GoTo /D (section*.42) >> >> -% 621 0 obj +% 625 0 obj << /Type /Annot /Subtype /Link @@ -3091,7 +3074,7 @@ stream /Rect [164.653 524.034 210.719 534.882] /A << /S /GoTo /D (section*.43) >> >> -% 622 0 obj +% 626 0 obj << /Type /Annot /Subtype /Link @@ -3099,7 +3082,7 @@ stream /Rect [164.653 511.954 211.3 522.802] /A << /S /GoTo /D (section*.44) >> >> -% 623 0 obj +% 627 0 obj << /Type /Annot /Subtype /Link @@ -3107,7 +3090,7 @@ stream /Rect [164.653 499.875 206.927 510.723] /A << /S /GoTo /D (section*.45) >> >> -% 624 0 obj +% 628 0 obj << /Type /Annot /Subtype /Link @@ -3115,7 +3098,7 @@ stream /Rect [149.709 479.686 290.134 488.597] /A << /S /GoTo /D (section.5) >> >> -% 625 0 obj +% 629 0 obj << /Type /Annot /Subtype /Link @@ -3123,7 +3106,7 @@ stream /Rect [164.653 465.669 203.496 476.518] /A << /S /GoTo /D (section*.46) >> >> -% 626 0 obj +% 630 0 obj << /Type /Annot /Subtype /Link @@ -3131,7 +3114,7 @@ stream /Rect [164.653 453.59 201.863 464.438] /A << /S /GoTo /D (section*.47) >> >> -% 627 0 obj +% 631 0 obj << /Type /Annot /Subtype /Link @@ -3139,7 +3122,7 @@ stream /Rect [164.653 441.51 212.933 452.358] /A << /S /GoTo /D (section*.48) >> >> -% 628 0 obj +% 632 0 obj << /Type /Annot /Subtype /Link @@ -3147,7 +3130,7 @@ stream /Rect [164.653 429.43 214.648 440.279] /A << /S /GoTo /D (section*.49) >> >> -% 629 0 obj +% 633 0 obj << /Type /Annot /Subtype /Link @@ -3155,7 +3138,7 @@ stream /Rect [149.709 407.305 302.58 418.153] /A << /S /GoTo /D (section.6) >> >> -% 630 0 obj +% 634 0 obj << /Type /Annot /Subtype /Link @@ -3163,7 +3146,7 @@ stream /Rect [164.653 395.225 205.71 406.074] /A << /S /GoTo /D (section*.50) >> >> -% 631 0 obj +% 635 0 obj << /Type /Annot /Subtype /Link @@ -3171,7 +3154,7 @@ stream /Rect [164.653 383.146 207.426 393.994] /A << /S /GoTo /D (section*.51) >> >> -% 632 0 obj +% 636 0 obj << /Type /Annot /Subtype /Link @@ -3179,7 +3162,7 @@ stream /Rect [164.653 371.066 209.639 381.914] /A << /S /GoTo /D (section*.52) >> >> -% 633 0 obj +% 637 0 obj << /Type /Annot /Subtype /Link @@ -3187,7 +3170,7 @@ stream /Rect [164.653 358.986 210.138 369.834] /A << /S /GoTo /D (section*.53) >> >> -% 634 0 obj +% 638 0 obj << /Type /Annot /Subtype /Link @@ -3195,7 +3178,7 @@ stream /Rect [164.653 346.906 210.996 357.755] /A << /S /GoTo /D (section*.54) >> >> -% 635 0 obj +% 639 0 obj << /Type /Annot /Subtype /Link @@ -3203,7 +3186,7 @@ stream /Rect [164.653 334.827 222.591 345.675] /A << /S /GoTo /D (section*.55) >> >> -% 636 0 obj +% 640 0 obj << /Type /Annot /Subtype /Link @@ -3211,7 +3194,7 @@ stream /Rect [164.653 322.747 205.212 333.595] /A << /S /GoTo /D (section*.56) >> >> -% 637 0 obj +% 641 0 obj << /Type /Annot /Subtype /Link @@ -3219,7 +3202,7 @@ stream /Rect [164.653 310.667 206.927 321.516] /A << /S /GoTo /D (section*.57) >> >> -% 638 0 obj +% 642 0 obj << /Type /Annot /Subtype /Link @@ -3227,7 +3210,7 @@ stream /Rect [164.653 298.588 209.141 309.436] /A << /S /GoTo /D (section*.58) >> >> -% 639 0 obj +% 643 0 obj << /Type /Annot /Subtype /Link @@ -3235,7 +3218,7 @@ stream /Rect [164.653 286.508 210.497 297.356] /A << /S /GoTo /D (section*.59) >> >> -% 640 0 obj +% 644 0 obj << /Type /Annot /Subtype /Link @@ -3243,7 +3226,7 @@ stream /Rect [164.653 274.428 204.132 285.276] /A << /S /GoTo /D (section*.60) >> >> -% 641 0 obj +% 645 0 obj << /Type /Annot /Subtype /Link @@ -3251,7 +3234,7 @@ stream /Rect [164.653 262.349 205.156 273.197] /A << /S /GoTo /D (section*.61) >> >> -% 642 0 obj +% 646 0 obj << /Type /Annot /Subtype /Link @@ -3259,7 +3242,7 @@ stream /Rect [164.653 250.269 206.872 261.117] /A << /S /GoTo /D (section*.62) >> >> -% 643 0 obj +% 647 0 obj << /Type /Annot /Subtype /Link @@ -3267,7 +3250,7 @@ stream /Rect [164.653 238.189 209.086 249.037] /A << /S /GoTo /D (section*.63) >> >> -% 644 0 obj +% 648 0 obj << /Type /Annot /Subtype /Link @@ -3275,7 +3258,7 @@ stream /Rect [164.653 226.109 210.442 236.958] /A << /S /GoTo /D (section*.64) >> >> -% 645 0 obj +% 649 0 obj << /Type /Annot /Subtype /Link @@ -3283,7 +3266,7 @@ stream /Rect [164.653 214.03 202.942 224.878] /A << /S /GoTo /D (section*.65) >> >> -% 646 0 obj +% 650 0 obj << /Type /Annot /Subtype /Link @@ -3291,7 +3274,7 @@ stream /Rect [164.653 201.95 231.978 212.798] /A << /S /GoTo /D (section*.66) >> >> -% 647 0 obj +% 651 0 obj << /Type /Annot /Subtype /Link @@ -3299,7 +3282,7 @@ stream /Rect [164.653 189.87 231.978 200.719] /A << /S /GoTo /D (section*.67) >> >> -% 648 0 obj +% 652 0 obj << /Type /Annot /Subtype /Link @@ -3307,7 +3290,7 @@ stream /Rect [164.653 177.791 226.233 188.639] /A << /S /GoTo /D (section*.68) >> >> -% 649 0 obj +% 653 0 obj << /Type /Annot /Subtype /Link @@ -3315,7 +3298,7 @@ stream /Rect [164.653 165.711 243.059 176.559] /A << /S /GoTo /D (section*.69) >> >> -% 650 0 obj +% 654 0 obj << /Type /Annot /Subtype /Link @@ -3323,7 +3306,7 @@ stream /Rect [164.653 153.631 219.038 164.48] /A << /S /GoTo /D (section*.70) >> >> -% 651 0 obj +% 655 0 obj << /Type /Annot /Subtype /Link @@ -3331,7 +3314,7 @@ stream /Rect [164.653 141.552 235.863 152.4] /A << /S /GoTo /D (section*.71) >> >> -% 652 0 obj +% 656 0 obj << /Type /Annot /Subtype /Link @@ -3339,7 +3322,7 @@ stream /Rect [164.653 129.472 243.64 140.32] /A << /S /GoTo /D (section*.72) >> >> -% 653 0 obj +% 657 0 obj << /Type /Annot /Subtype /Link @@ -3347,25 +3330,25 @@ stream /Rect [164.653 117.392 233.4 128.24] /A << /S /GoTo /D (section*.73) >> >> -% 658 0 obj +% 662 0 obj << -/D [656 0 R /XYZ 149.705 753.953 null] +/D [660 0 R /XYZ 149.705 753.953 null] >> -% 655 0 obj +% 659 0 obj << -/Font << /F8 549 0 R /F27 548 0 R >> +/Font << /F8 553 0 R /F27 552 0 R >> /ProcSet [ /PDF /Text ] >> -% 699 0 obj +% 704 0 obj << /Type /Page -/Contents 700 0 R -/Resources 698 0 R +/Contents 705 0 R +/Resources 703 0 R /MediaBox [0 0 595.276 841.89] -/Parent 550 0 R -/Annots [ 654 0 R 659 0 R 660 0 R 661 0 R 662 0 R 663 0 R 664 0 R 665 0 R 666 0 R 667 0 R 668 0 R 669 0 R 670 0 R 671 0 R 672 0 R 673 0 R 674 0 R 675 0 R 676 0 R 677 0 R 678 0 R 679 0 R 680 0 R 681 0 R 682 0 R 683 0 R 684 0 R 685 0 R 686 0 R 687 0 R 688 0 R 689 0 R 690 0 R 691 0 R 692 0 R 693 0 R 694 0 R 695 0 R 696 0 R 697 0 R ] +/Parent 554 0 R +/Annots [ 658 0 R 663 0 R 664 0 R 665 0 R 666 0 R 667 0 R 668 0 R 669 0 R 670 0 R 671 0 R 672 0 R 673 0 R 674 0 R 675 0 R 676 0 R 677 0 R 678 0 R 679 0 R 680 0 R 681 0 R 682 0 R 683 0 R 684 0 R 685 0 R 686 0 R 687 0 R 688 0 R 689 0 R 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 ] >> -% 654 0 obj +% 658 0 obj << /Type /Annot /Subtype /Link @@ -3373,7 +3356,7 @@ stream /Rect [113.843 703.195 176.558 714.044] /A << /S /GoTo /D (section*.74) >> >> -% 659 0 obj +% 663 0 obj << /Type /Annot /Subtype /Link @@ -3381,7 +3364,7 @@ stream /Rect [113.843 691.24 158 702.088] /A << /S /GoTo /D (section*.75) >> >> -% 660 0 obj +% 664 0 obj << /Type /Annot /Subtype /Link @@ -3389,7 +3372,7 @@ stream /Rect [113.843 679.285 183.443 690.133] /A << /S /GoTo /D (section*.76) >> >> -% 661 0 obj +% 665 0 obj << /Type /Annot /Subtype /Link @@ -3397,7 +3380,7 @@ stream /Rect [98.899 659.304 264.868 668.215] /A << /S /GoTo /D (section.7) >> >> -% 662 0 obj +% 666 0 obj << /Type /Annot /Subtype /Link @@ -3405,7 +3388,7 @@ stream /Rect [113.843 645.412 149.366 656.26] /A << /S /GoTo /D (section*.77) >> >> -% 663 0 obj +% 667 0 obj << /Type /Annot /Subtype /Link @@ -3413,7 +3396,7 @@ stream /Rect [113.843 633.457 150.749 644.305] /A << /S /GoTo /D (section*.78) >> >> -% 664 0 obj +% 668 0 obj << /Type /Annot /Subtype /Link @@ -3421,7 +3404,7 @@ stream /Rect [113.843 621.502 150.749 632.35] /A << /S /GoTo /D (section*.79) >> >> -% 665 0 obj +% 669 0 obj << /Type /Annot /Subtype /Link @@ -3429,7 +3412,7 @@ stream /Rect [113.843 609.547 193.91 620.395] /A << /S /GoTo /D (section*.80) >> >> -% 666 0 obj +% 670 0 obj << /Type /Annot /Subtype /Link @@ -3437,7 +3420,7 @@ stream /Rect [113.843 597.591 170.968 608.44] /A << /S /GoTo /D (section*.81) >> >> -% 667 0 obj +% 671 0 obj << /Type /Annot /Subtype /Link @@ -3445,7 +3428,7 @@ stream /Rect [113.843 585.636 160.989 596.484] /A << /S /GoTo /D (section*.82) >> >> -% 668 0 obj +% 672 0 obj << /Type /Annot /Subtype /Link @@ -3453,7 +3436,7 @@ stream /Rect [113.843 573.681 163.839 584.529] /A << /S /GoTo /D (section*.83) >> >> -% 669 0 obj +% 673 0 obj << /Type /Annot /Subtype /Link @@ -3461,7 +3444,7 @@ stream /Rect [113.843 561.726 157.972 572.574] /A << /S /GoTo /D (section*.84) >> >> -% 670 0 obj +% 674 0 obj << /Type /Annot /Subtype /Link @@ -3469,7 +3452,7 @@ stream /Rect [113.843 549.771 157.446 560.619] /A << /S /GoTo /D (section*.85) >> >> -% 671 0 obj +% 675 0 obj << /Type /Annot /Subtype /Link @@ -3477,7 +3460,7 @@ stream /Rect [113.843 537.816 152.188 548.664] /A << /S /GoTo /D (section*.86) >> >> -% 672 0 obj +% 676 0 obj << /Type /Annot /Subtype /Link @@ -3485,7 +3468,7 @@ stream /Rect [113.843 525.86 152.963 536.709] /A << /S /GoTo /D (section*.87) >> >> -% 673 0 obj +% 677 0 obj << /Type /Annot /Subtype /Link @@ -3493,7 +3476,7 @@ stream /Rect [113.843 513.905 151.026 524.753] /A << /S /GoTo /D (section*.88) >> >> -% 674 0 obj +% 678 0 obj << /Type /Annot /Subtype /Link @@ -3501,7 +3484,7 @@ stream /Rect [113.843 501.95 152.963 512.798] /A << /S /GoTo /D (section*.89) >> >> -% 675 0 obj +% 679 0 obj << /Type /Annot /Subtype /Link @@ -3509,7 +3492,7 @@ stream /Rect [113.843 489.995 153.24 500.843] /A << /S /GoTo /D (section*.90) >> >> -% 676 0 obj +% 680 0 obj << /Type /Annot /Subtype /Link @@ -3517,7 +3500,7 @@ stream /Rect [113.843 478.04 149.421 488.888] /A << /S /GoTo /D (section*.91) >> >> -% 677 0 obj +% 681 0 obj << /Type /Annot /Subtype /Link @@ -3525,26 +3508,10 @@ stream /Rect [113.843 466.085 148.009 476.933] /A << /S /GoTo /D (section*.92) >> >> -% 678 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [98.899 444.167 190.188 455.015] -/A << /S /GoTo /D (section.8) >> ->> -% 679 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [113.843 432.212 167.188 443.06] -/A << /S /GoTo /D (section*.93) >> ->> endstream endobj -705 0 obj +710 0 obj << /Length 79 >> @@ -3559,7 +3526,7 @@ ET endstream endobj -719 0 obj +724 0 obj << /Length 8518 >> @@ -3615,7 +3582,7 @@ ET endstream endobj -739 0 obj +744 0 obj << /Length 5579 >> @@ -3662,20 +3629,20 @@ ET endstream endobj -735 0 obj +740 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (./figures/psblas.pdf) /PTEX.PageNumber 1 -/PTEX.InfoDict 742 0 R +/PTEX.InfoDict 747 0 R /BBox [0 0 197 215] /Resources << /ProcSet [ /PDF /Text ] /ExtGState << -/R7 743 0 R ->>/Font << /R8 744 0 R>> +/R7 748 0 R +>>/Font << /R8 749 0 R>> >> /Length 898 /Filter /FlateDecode @@ -3696,7 +3663,7 @@ x «Ͻ'ƒÇ›ÇÇùaÚ>=|9Êh±Büuæ¹£$îËLËàq·–ÑÃÊŸ5×k^Þ½;>íN÷Ûi™ZŠ\V+9D£­8îNËLÓG™÷×»~0+¾’”àŠ'¢ˆ±íúmw>o÷;{·=ŸŽûEý—»a¥ÃѲîîÝâ8SË4Â%ÕÇ¥_¾œžNÛ#OαéƒùüÐ endstream endobj -746 0 obj +751 0 obj << /Filter /FlateDecode /Subtype /Type1C @@ -3716,7 +3683,7 @@ p IZ¹t4¤w!}^€gì½—ú€h9@±^è Ò…s2•=3B2H>ÉçynÞÌû7ŠC‰#ˆþhñÚï-whèÇGtBŒV²Õºø`uÞ1èFæ3ÑvðøçÓ÷à´ÛoÝ34\z"ž“,P&+š´®¿Ú»oB03¼å㣶xsÉÝä!FáŽ/†m'~¼êŒn?àßvaÝDëÑ÷ì+°¥¸5ïšôt0Ü ¶æ+ÉÔ·ÆsRz…t¥J–xFzëþƒöÁQîè`û¼/dŠº2›åž™j@7GÛú.º?Üwyc$O‘œÀI‘(S¥ME®ƒßŒô| Áõ^`‚2!-›’"VîIN™"Ì‚B-ÌÎe³/uV9:Î6:.Ç°ÿMɪH endstream endobj -752 0 obj +757 0 obj << /Length 8854 >> @@ -3765,7 +3732,7 @@ ET endstream endobj -768 0 obj +773 0 obj << /Length 5346 >> @@ -3842,20 +3809,20 @@ ET endstream endobj -765 0 obj +770 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (./figures/points.pdf) /PTEX.PageNumber 1 -/PTEX.InfoDict 771 0 R +/PTEX.InfoDict 776 0 R /BBox [0 0 274 308] /Resources << /ProcSet [ /PDF /Text ] /ExtGState << -/R7 772 0 R ->>/Font << /R8 773 0 R>> +/R7 777 0 R +>>/Font << /R8 778 0 R>> >> /Length 1397 /Filter /FlateDecode @@ -3865,7 +3832,7 @@ x – 󣄠¹3ÊBü=®§«æ±bA‡HŒ}Ï©c·í²»?­é”ׄÿäïÍeùö]_?ü¾¤Ó©d êwßGüðaù´d"®òçæ²¾¾ä}ÍíëÕûe4­ß ,äýÔ×sÿ»º,_ýx÷Ç/w×·¯®~[¾»ZÞ.ø›Œ1¸ð™âuóâ¯ïÿ¼ûùúáoO*žþx/þÃõí½Î22Tø<ᜇd†&Âoî/×ïV˜âÿõèCê1V^õd¨æõãR ¬Û9ŸÎç¶^–ºµÓ¾ÍšÚýÝz¦zõ¯7‹!€S®ûj짔êJÚR¿–ðWZSöN•m˜´ ide«3çûfyÿõROÛú×|J_F¿~]~z2ò–}×òVÐÕämë¦Î€sQ<I<³¦uiüd¸r͵9.Ö¤¢ÆR’ÉÑãY~ОÐCÑÝ¥Ÿ}öçÙ^â<3LA ‰c‹YÒ¶®ôçY¯qž&mCÙØâÌû懣ç—Ñ#|H–_rƧšÇÒ³,wš0s>}yüÇ5ÒNóË p%U¤ –ðW@E’§$§•|¡pxõE`&ÆøåU ™¤ó«›%AÝIUÍ0Gš]ý‘&ûÖM’ î Jšx÷¬…T.ù)~¼C²8˜}~‚­ÛÍWÛ¢íÁvKÑö¶K,8ÛÍ—&†`[C*—ü¨ONÔÇs­ƒ ½m‚ê ò9؆Áu¶!×`{P9¦m‚êKI7oÛB*—ü¨O샹~ñ̳·Ç'­¡Á^ÝIaÏvRy!œzw'ó¤`Íx"0.Ѥb'…iÄù|ùÌs¼žP:-%X/[´^º“#Àa°há…dÞPÓY/)Z‡Ýqˆ&-VŠÖ½ON¬Çtnƒ®G±À¹ÍY–& é›Ë’וB¿Ìœ¤¡¹M…ÁnngäŽ%¤Ò#ØœÃÉÙÇ‚"d;’Àô)ùÃ(˜\X‹³Ž¥²£0}Z¡pø#`Ó†Sò‹%Hvt§Ð̧f£`ú`-Î+”ÐŽQ4ó9ƒ…Ç,x›O/,îf,z»âißn«ªÝìv«$½úæ-ÜŒå`?›“禩™|,ˆ7cïó™;Ìñº@!osõé]Š¦?ݲta0€yýÒ¥¤Zdy›«OïRÜ<%9­äƒ€[}拇ú6m8uõIPžþhǃf>m))…YÞæê“ Ò<%9­äƒ€[}ækçÿÜæ“WO’rõ= A} £ Ñ0'Ë 9‘S,irêÕ÷+\_ã­uâÝ¿›ÑÆE?æóé{¦ƒÙÇá'È‹ÎB#4_²$&†`[–’qq‘‘&/> Mõ5^_'†`[Bý˜OõºÖÁ–%©¡ ª/]07o[šqq ’&/M Íõ5^_'nÞ¶†4.ú1Ÿ6ØsýÜ¥%]Š!ƒCÞgVe@Ù–‹’…$)š5-ƒÃØ5}‡ä²?ÖLg+‡ |>{é>hO‘jøX5~,ê>–0àxÕ},1’š¬ác ”ø±ŠûX€5‹ûXb$3òø³ Ú…t¡í¡=Å>tpº8Õ‡’Ô$iÎ>´-ö¡Ç%ÀšTÔXJR#ÞgL¼í“-J/0®jãȶw.Þâªick£Z,”Ô¤š^”Ñk·ì«éUÝ ‹¯WjÇ‚µÛçƒ.ÁºUE³zÉgýãPˆ,é"›Ñe±ûÌ‹:t˜!*%~ Ö *«QÊÒ@emPMÓ1:¾Þ’àX¼÷(˜®4æ ¤Nƒ¾]þÎJ¦' endstream endobj -780 0 obj +785 0 obj << /Length 5462 >> @@ -3955,7 +3922,7 @@ ET endstream endobj -784 0 obj +789 0 obj << /Length 8659 >> @@ -4003,7 +3970,7 @@ ET endstream endobj -798 0 obj +803 0 obj << /Length 6893 >> @@ -4070,81 +4037,41 @@ ET endstream endobj -817 0 obj -<< -/Length 7473 ->> -stream -0 g 0 G -0 g 0 G -BT -/F27 9.9626 Tf 150.705 706.129 Td [(2.3.1)-1150(User-de\014ned)-383(index)-384(mappings)]TJ/F8 9.9626 Tf 0 -18.389 Td [(PSBLAS)-385(s)-1(u)1(pp)-28(orts)-386(user-de\014ned)-385(global)-386(to)-386(lo)-27(cal)-386(index)-386(mappings,)-398(sub)-56(ject)-385(to)-386(the)]TJ 0 -11.956 Td [(constrain)28(ts)-334(ou)1(tlined)-334(in)-333(sec.)]TJ -0 0 1 rg 0 0 1 RG - [-333(2.3)]TJ -0 g 0 G - [(:)]TJ -0 g 0 G - 12.176 -19.925 Td [(1.)]TJ -0 g 0 G - [-500(The)-333(set)-334(of)-333(indices)-333(o)27(wned)-333(lo)-28(cally)-333(m)28(ust)-334(b)-27(e)-334(mapp)-28(ed)-333(to)-333(the)-334(set)-333(1)]TJ/F11 9.9626 Tf 282.774 0 Td [(:)-167(:)-166(:)-167(n)]TJ/F8 9.9626 Tf 19.263 -1.494 Td [(ro)28(w)]TJ/F9 4.9813 Tf 15.802 -0.997 Td [(i)]TJ/F8 9.9626 Tf 3.654 2.491 Td [(;)]TJ -0 g 0 G - -321.493 -19.925 Td [(2.)]TJ -0 g 0 G - [-500(The)-333(set)-334(of)-333(halo)-333(p)-28(oin)28(ts)-334(m)28(ust)-333(b)-28(e)-333(mapp)-28(ed)-333(to)-334(the)-333(set)]TJ/F11 9.9626 Tf 232.684 0 Td [(n)]TJ/F8 9.9626 Tf 5.98 -1.495 Td [(ro)28(w)]TJ/F9 4.9813 Tf 15.802 -0.996 Td [(i)]TJ/F8 9.9626 Tf 5.868 2.491 Td [(+)-222(1)]TJ/F11 9.9626 Tf 16.604 0 Td [(:)-167(:)-166(:)-167(n)]TJ/F8 9.9626 Tf 19.263 -3.487 Td [(col)]TJ/F9 4.9813 Tf 12.177 -0.996 Td [(i)]TJ/F8 9.9626 Tf 3.654 4.483 Td [(;)]TJ -324.208 -19.926 Td [(but)-366(otherwise)-366(the)-365(mapping)-366(is)-366(arbitrary)84(.)-542(The)-366(user)-366(application)-366(is)-365(resp)-28(onsible)-366(to)]TJ 0 -11.955 Td [(ensure)-356(consistency)-356(of)-356(this)-356(mapping;)-367(some)-356(errors)-356(ma)27(y)-356(b)-27(e)-356(caugh)27(t)-356(b)28(y)-356(the)-356(library)84(,)]TJ 0 -11.955 Td [(but)-377(this)-378(is)-377(not)-377(guaran)28(te)-1(ed.)-576(The)-377(application)-378(structure)-377(to)-377(s)-1(u)1(pp)-28(ort)-378(t)1(his)-378(usage)-377(is)]TJ 0 -11.955 Td [(as)-333(follo)27(ws:)]TJ -0 g 0 G - 12.176 -19.925 Td [(1.)]TJ -0 g 0 G - [-500(Initialize)-222(index)-222(space)-223(with)]TJ/F30 9.9626 Tf 125.696 0 Td [(psb_cdall\050ictx,desc,info,vl=vl,lidx=lidx\051)]TJ/F8 9.9626 Tf -112.966 -11.955 Td [(passing)-253(the)-254(v)28(ectors)]TJ/F30 9.9626 Tf 83.59 0 Td [(vl\050:\051)]TJ/F8 9.9626 Tf 28.674 0 Td [(con)28(taining)-253(the)-254(set)-253(of)-253(global)-253(indices)-254(o)28(wned)-253(b)28(y)-253(the)]TJ -112.264 -11.956 Td [(curren)28(t)-334(pr)1(o)-28(cess)-334(and)]TJ/F30 9.9626 Tf 88.751 0 Td [(lidx\050:\051)]TJ/F8 9.9626 Tf 39.933 0 Td [(con)28(taining)-333(the)-334(corresp)-28(ondin)1(g)-334(lo)-28(cal)-333(indices;)]TJ -0 g 0 G - -141.414 -19.925 Td [(2.)]TJ -0 g 0 G - [-500(Add)-266(the)-266(halo)-266(p)-27(oin)27(ts)]TJ/F30 9.9626 Tf 100.593 0 Td [(ja\050:\051)]TJ/F8 9.9626 Tf 28.801 0 Td [(and)-266(their)-266(asso)-28(ciated)-265(lo)-28(cal)-266(indices)]TJ/F30 9.9626 Tf 143.508 0 Td [(lidx\050:\051)]TJ/F8 9.9626 Tf 39.261 0 Td [(with)]TJ -299.433 -11.955 Td [(a\050some\051)-333(c)-1(all\050)1(s)-1(\051)-333(to)]TJ/F30 9.9626 Tf 79.812 0 Td [(psb_cdins\050nz,ja,desc,info,lidx=lidx\051)]TJ/F8 9.9626 Tf 188.293 0 Td [(;)]TJ -0 g 0 G - -280.835 -19.925 Td [(3.)]TJ -0 g 0 G - [-500(Assem)28(ble)-334(the)-333(descriptor)-333(with)]TJ/F30 9.9626 Tf 143.02 0 Td [(psb_cdasb)]TJ/F8 9.9626 Tf 47.073 0 Td [(;)]TJ -0 g 0 G - -190.093 -19.926 Td [(4.)]TJ -0 g 0 G - [-500(Build)-240(the)-240(sparse)-240(matrices)-240(and)-240(v)27(ectors,)-258(optionally)-240(making)-240(use)-241(in)]TJ/F30 9.9626 Tf 284.462 0 Td [(psb_spins)]TJ/F8 9.9626 Tf -271.732 -11.955 Td [(and)]TJ/F30 9.9626 Tf 19.727 0 Td [(psb_geins)]TJ/F8 9.9626 Tf 50.749 0 Td [(of)-369(the)]TJ/F30 9.9626 Tf 29.214 0 Td [(local)]TJ/F8 9.9626 Tf 29.827 0 Td [(argumen)28(t)-369(sp)-28(ecifying)-369(that)-369(the)-369(indices)-369(in)]TJ/F30 9.9626 Tf 176.06 0 Td [(ia)]TJ/F8 9.9626 Tf 10.461 0 Td [(,)]TJ/F30 9.9626 Tf -316.038 -11.955 Td [(ja)]TJ/F8 9.9626 Tf 13.782 0 Td [(and)]TJ/F30 9.9626 Tf 19.372 0 Td [(irw)]TJ/F8 9.9626 Tf 15.691 0 Td [(,)-333(resp)-28(ectiv)28(ely)83(,)-333(are)-334(already)-333(lo)-28(cal)-333(indices.)]TJ/F16 11.9552 Tf -73.751 -27.888 Td [(2.4)-1125(Programming)-375(mo)-31(del)]TJ/F8 9.9626 Tf 0 -18.39 Td [(The)-325(PSBLAS)-324(librarary)-325(is)-325(based)-324(o)-1(n)-324(the)-325(Single)-325(Program)-324(Multiple)-325(Data)-325(\050SPMD\051)]TJ 0 -11.955 Td [(programming)-413(mo)-28(del:)-603(eac)27(h)-413(pro)-27(cess)-413(participating)-413(in)-413(the)-413(computation)-413(p)-28(erforms)]TJ 0 -11.955 Td [(the)-333(same)-334(actions)-333(on)-333(a)-334(c)28(h)28(unk)-333(of)-334(data.)-444(P)28(arallelism)-334(is)-333(th)28(us)-334(data-d)1(riv)27(en.)]TJ 14.944 -11.955 Td [(Because)-389(of)-389(this)-389(structure,)-402(m)-1(an)28(y)-389(subrou)1(tines)-389(co)-28(ordinate)-389(their)-389(action)-389(across)]TJ -14.944 -11.956 Td [(the)-478(v)56(arious)-478(pro)-28(cesses,)-514(th)28(us)-478(pro)28(viding)-477(a)-1(n)-477(implicit)-478(sync)28(hronization)-478(p)-28(oin)28(t,)-514(and)]TJ 0 -11.955 Td [(therefore)]TJ/F17 9.9626 Tf 43.026 0 Td [(must)]TJ/F8 9.9626 Tf 26.326 0 Td [(b)-28(e)-452(called)-452(sim)28(ultaneously)-452(b)28(y)-452(all)-452(pro)-28(cesses)-452(participating)-452(in)-452(the)]TJ -69.352 -11.955 Td [(computation.)-597(This)-384(is)-384(certainly)-384(true)-385(for)-384(the)-384(data)-384(allo)-28(cation)-384(and)-384(assem)28(bly)-385(rou)1(-)]TJ 0 -11.955 Td [(tines,)-333(for)-334(all)-333(the)-333(computational)-333(routines)-334(and)-333(for)-333(some)-334(of)-333(the)-333(to)-28(ols)-334(r)1(outines.)]TJ 14.944 -11.955 Td [(Ho)28(w)28(e)-1(v)28(er)-490(there)-490(are)-490(m)-1(an)28(y)-490(cases)-490(where)-491(no)-490(sync)28(hronization,)-529(and)-491(in)1(dee)-1(d)-490(no)]TJ -14.944 -11.955 Td [(comm)28(unication)-459(among)-458(pro)-28(cesses,)-489(is)-459(implied;)-521(f)1(or)-459(instance,)-489(all)-459(the)-458(routines)-458(in)]TJ 0 -11.956 Td [(sec.)]TJ -0 0 1 rg 0 0 1 RG - [-476(3)]TJ -0 g 0 G - [-475(are)-475(only)-476(acting)-475(on)-476(the)-475(lo)-28(cal)-475(data)-476(structures,)-511(and)-475(th)28(us)-476(ma)28(y)-475(b)-28(e)-475(c)-1(alled)]TJ 0 -11.955 Td [(indep)-28(enden)28(tly)84(.)-917(The)-491(most)-491(imp)-27(ortan)27(t)-490(case)-491(is)-491(that)-491(of)-490(the)-491(co)-28(e\016cien)28(t)-491(insertion)]TJ 0 -11.955 Td [(routines:)-409(since)-263(the)-263(n)27(um)28(b)-28(er)-263(of)-263(co)-27(e\016c)-1(i)1(e)-1(n)28(ts)-263(in)-263(the)-263(sparse)-263(and)-263(dense)-263(matrices)-263(v)55(aries)]TJ 0 -11.955 Td [(among)-323(the)-322(pro)-28(cessors,)-325(and)-323(since)-322(the)-323(user)-323(is)-322(free)-323(to)-323(c)28(ho)-28(ose)-322(an)-323(arbitrary)-323(ord)1(e)-1(r)-322(in)]TJ 0 -11.955 Td [(builiding)-333(the)-333(matrix)-334(en)28(tries,)-333(these)-334(routines)-333(cannot)-333(imply)-334(a)-333(sync)28(hronization.)]TJ 14.944 -11.955 Td [(Throughout)-333(this)-333(use)-1(r)1('s)-334(guide)-333(eac)28(h)-334(subroutine)-333(will)-333(b)-28(e)-333(clearly)-334(indicated)-333(as:)]TJ -0 g 0 G -/F27 9.9626 Tf -14.944 -19.926 Td [(Sync)32(hronous:)]TJ -0 g 0 G -/F8 9.9626 Tf 71.504 0 Td [(m)28(ust)-359(b)-28(e)-359(called)-359(sim)28(ultaneously)-359(b)28(y)-359(all)-359(the)-359(pro)-28(cesses)-359(in)-359(the)-359(rele-)]TJ -46.597 -11.955 Td [(v)56(an)27(t)-333(comm)28(unication)-333(c)-1(on)28(text;)]TJ -0 g 0 G -/F27 9.9626 Tf -24.907 -19.925 Td [(Async)32(hronous:)]TJ -0 g 0 G -/F8 9.9626 Tf 78.32 0 Td [(ma)28(y)-334(b)-27(e)-334(called)-333(in)-333(a)-334(totally)-333(indep)-28(enden)28(t)-333(manner.)]TJ -0 g 0 G - 91.045 -72.817 Td [(8)]TJ -0 g 0 G -ET - -endstream -endobj -702 0 obj +707 0 obj << /Type /ObjStm /N 100 -/First 902 -/Length 12118 +/First 907 +/Length 12288 >> stream -680 0 681 149 682 298 683 447 684 593 685 741 686 890 687 1037 688 1187 689 1336 -690 1486 691 1633 692 1783 693 1933 694 2083 695 2233 696 2383 697 2529 701 2678 698 2734 -704 2813 706 2927 703 2984 718 3050 707 3256 708 3405 709 3556 710 3708 711 3862 712 4013 -713 4162 714 4311 715 4459 716 4607 7 4755 717 4809 738 4901 742 5051 743 5292 744 5334 -745 5720 732 6020 733 6165 734 6313 11 6460 741 6516 737 6571 751 6691 736 6841 748 6987 -749 7136 753 7284 15 7340 759 7395 761 7452 750 7509 767 7704 771 7846 772 7960 773 8002 -763 8071 764 8219 769 8367 770 8424 19 8481 766 8537 779 8696 776 8838 777 8984 781 9131 -778 9187 783 9292 785 9406 23 9463 787 9519 788 9576 789 9633 790 9689 791 9746 792 9802 -793 9857 794 9914 782 9971 797 10101 799 10215 800 10271 801 10327 802 10383 803 10439 804 10494 -805 10550 806 10606 807 10661 808 10717 809 10773 810 10829 811 10885 812 10940 796 10995 816 11074 -% 680 0 obj +682 0 683 146 684 294 685 443 686 592 687 741 688 887 689 1035 690 1184 691 1331 +692 1481 693 1630 694 1780 695 1927 696 2077 697 2226 698 2376 699 2525 700 2675 701 2824 +702 2970 706 3119 703 3175 709 3254 711 3368 708 3425 723 3491 712 3697 713 3846 714 3997 +715 4149 716 4303 717 4454 718 4603 719 4752 720 4900 721 5048 7 5196 722 5250 743 5342 +747 5492 748 5733 749 5775 750 6161 737 6461 738 6606 739 6754 11 6901 746 6957 742 7012 +756 7132 741 7282 753 7428 754 7577 758 7725 15 7781 764 7836 766 7893 755 7950 772 8145 +776 8287 777 8401 778 8443 768 8512 769 8660 774 8808 775 8865 19 8922 771 8978 784 9137 +781 9279 782 9425 786 9572 783 9628 788 9733 790 9847 23 9904 792 9960 793 10017 794 10074 +795 10130 796 10187 797 10243 798 10298 799 10355 787 10412 802 10542 804 10656 805 10712 806 10768 +807 10824 808 10880 809 10935 810 10991 811 11047 812 11102 813 11158 814 11214 815 11270 816 11326 +% 682 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [98.899 444.167 190.188 455.015] +/A << /S /GoTo /D (section.8) >> +>> +% 683 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [113.843 432.212 167.188 443.06] +/A << /S /GoTo /D (section*.93) >> +>> +% 684 0 obj << /Type /Annot /Subtype /Link @@ -4152,7 +4079,7 @@ stream /Rect [113.843 420.256 155.537 431.105] /A << /S /GoTo /D (section*.94) >> >> -% 681 0 obj +% 685 0 obj << /Type /Annot /Subtype /Link @@ -4160,7 +4087,7 @@ stream /Rect [113.843 408.301 202.129 419.149] /A << /S /GoTo /D (section*.95) >> >> -% 682 0 obj +% 686 0 obj << /Type /Annot /Subtype /Link @@ -4168,7 +4095,7 @@ stream /Rect [113.843 396.346 189.039 407.194] /A << /S /GoTo /D (section*.96) >> >> -% 683 0 obj +% 687 0 obj << /Type /Annot /Subtype /Link @@ -4176,7 +4103,7 @@ stream /Rect [98.899 376.365 156.061 385.276] /A << /S /GoTo /D (section.9) >> >> -% 684 0 obj +% 688 0 obj << /Type /Annot /Subtype /Link @@ -4184,7 +4111,7 @@ stream /Rect [113.843 364.41 149.061 373.321] /A << /S /GoTo /D (section*.97) >> >> -% 685 0 obj +% 689 0 obj << /Type /Annot /Subtype /Link @@ -4192,7 +4119,7 @@ stream /Rect [113.843 352.455 152.382 361.366] /A << /S /GoTo /D (section*.98) >> >> -% 686 0 obj +% 690 0 obj << /Type /Annot /Subtype /Link @@ -4200,7 +4127,7 @@ stream /Rect [113.843 340.5 175.617 349.411] /A << /S /GoTo /D (section*.99) >> >> -% 687 0 obj +% 691 0 obj << /Type /Annot /Subtype /Link @@ -4208,7 +4135,7 @@ stream /Rect [113.843 326.608 181.207 337.456] /A << /S /GoTo /D (section*.100) >> >> -% 688 0 obj +% 692 0 obj << /Type /Annot /Subtype /Link @@ -4216,7 +4143,7 @@ stream /Rect [113.843 316.59 178.938 325.236] /A << /S /GoTo /D (section*.101) >> >> -% 689 0 obj +% 693 0 obj << /Type /Annot /Subtype /Link @@ -4224,7 +4151,7 @@ stream /Rect [113.843 302.697 184.528 313.281] /A << /S /GoTo /D (section*.102) >> >> -% 690 0 obj +% 694 0 obj << /Type /Annot /Subtype /Link @@ -4232,39 +4159,39 @@ stream /Rect [98.899 282.717 234.475 291.628] /A << /S /GoTo /D (section.10) >> >> -% 691 0 obj +% 695 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [113.843 268.824 167.658 279.672] +/Rect [113.843 268.824 157.374 280.226] /A << /S /GoTo /D (section*.103) >> >> -% 692 0 obj +% 696 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [113.843 256.869 166.551 267.717] +/Rect [113.843 256.869 164.57 268.271] /A << /S /GoTo /D (section*.104) >> >> -% 693 0 obj +% 697 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [113.843 244.914 171.256 255.762] +/Rect [113.843 244.914 166.507 256.316] /A << /S /GoTo /D (section*.105) >> >> -% 694 0 obj +% 698 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [113.843 232.959 174.936 243.807] +/Rect [113.843 232.959 164.653 244.36] /A << /S /GoTo /D (section*.106) >> >> -% 695 0 obj +% 699 0 obj << /Type /Annot /Subtype /Link @@ -4272,58 +4199,66 @@ stream /Rect [113.843 222.941 137.975 231.852] /A << /S /GoTo /D (section*.107) >> >> -% 696 0 obj +% 700 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [113.843 209.048 158.232 220.45] +/A << /S /GoTo /D (section*.108) >> +>> +% 701 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [98.899 201.023 206.49 209.934] +/Rect [98.899 189.068 206.49 197.979] /A << /S /GoTo /D (section.11) >> >> -% 697 0 obj +% 702 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [113.843 187.131 161.57 197.979] -/A << /S /GoTo /D (section*.108) >> +/Rect [113.843 175.175 161.57 186.024] +/A << /S /GoTo /D (section*.109) >> >> -% 701 0 obj +% 706 0 obj << -/D [699 0 R /XYZ 98.895 753.953 null] +/D [704 0 R /XYZ 98.895 753.953 null] >> -% 698 0 obj +% 703 0 obj << -/Font << /F8 549 0 R /F27 548 0 R >> +/Font << /F8 553 0 R /F27 552 0 R >> /ProcSet [ /PDF /Text ] >> -% 704 0 obj +% 709 0 obj << /Type /Page -/Contents 705 0 R -/Resources 703 0 R +/Contents 710 0 R +/Resources 708 0 R /MediaBox [0 0 595.276 841.89] -/Parent 550 0 R +/Parent 554 0 R >> -% 706 0 obj +% 711 0 obj << -/D [704 0 R /XYZ 149.705 753.953 null] +/D [709 0 R /XYZ 149.705 753.953 null] >> -% 703 0 obj +% 708 0 obj << -/Font << /F8 549 0 R >> +/Font << /F8 553 0 R >> /ProcSet [ /PDF /Text ] >> -% 718 0 obj +% 723 0 obj << /Type /Page -/Contents 719 0 R -/Resources 717 0 R +/Contents 724 0 R +/Resources 722 0 R /MediaBox [0 0 595.276 841.89] -/Parent 721 0 R -/Annots [ 707 0 R 708 0 R 709 0 R 710 0 R 711 0 R 712 0 R 713 0 R 714 0 R 715 0 R 716 0 R ] +/Parent 726 0 R +/Annots [ 712 0 R 713 0 R 714 0 R 715 0 R 716 0 R 717 0 R 718 0 R 719 0 R 720 0 R 721 0 R ] >> -% 707 0 obj +% 712 0 obj << /Type /Annot /Subtype /Link @@ -4331,7 +4266,7 @@ stream /Rect [408.982 586.91 420.937 595.323] /A << /S /GoTo /D (cite.metcalf) >> >> -% 708 0 obj +% 713 0 obj << /Type /Annot /Subtype /Link @@ -4339,7 +4274,7 @@ stream /Rect [277.684 514.913 289.639 523.326] /A << /S /GoTo /D (cite.Sparse03) >> >> -% 709 0 obj +% 714 0 obj << /Type /Annot /Subtype /Link @@ -4347,7 +4282,7 @@ stream /Rect [265.763 502.958 272.737 511.371] /A << /S /GoTo /D (cite.DesPat:11) >> >> -% 710 0 obj +% 715 0 obj << /Type /Annot /Subtype /Link @@ -4355,7 +4290,7 @@ stream /Rect [276.283 502.958 288.238 511.371] /A << /S /GoTo /D (cite.RouXiaXu:11) >> >> -% 711 0 obj +% 716 0 obj << /Type /Annot /Subtype /Link @@ -4363,7 +4298,7 @@ stream /Rect [210.166 442.916 222.121 451.329] /A << /S /GoTo /D (cite.machiels) >> >> -% 712 0 obj +% 717 0 obj << /Type /Annot /Subtype /Link @@ -4371,7 +4306,7 @@ stream /Rect [241.566 370.919 248.54 379.332] /A << /S /GoTo /D (cite.sblas97) >> >> -% 713 0 obj +% 718 0 obj << /Type /Annot /Subtype /Link @@ -4379,7 +4314,7 @@ stream /Rect [252.056 370.919 259.03 379.332] /A << /S /GoTo /D (cite.sblas02) >> >> -% 714 0 obj +% 719 0 obj << /Type /Annot /Subtype /Link @@ -4387,7 +4322,7 @@ stream /Rect [227.473 358.964 239.428 367.377] /A << /S /GoTo /D (cite.BLAS1) >> >> -% 715 0 obj +% 720 0 obj << /Type /Annot /Subtype /Link @@ -4395,7 +4330,7 @@ stream /Rect [243.524 358.964 250.498 367.377] /A << /S /GoTo /D (cite.BLAS2) >> >> -% 716 0 obj +% 721 0 obj << /Type /Annot /Subtype /Link @@ -4405,23 +4340,23 @@ stream >> % 7 0 obj << -/D [718 0 R /XYZ 99.895 716.092 null] +/D [723 0 R /XYZ 99.895 716.092 null] >> -% 717 0 obj +% 722 0 obj << -/Font << /F16 546 0 R /F8 549 0 R /F17 720 0 R >> +/Font << /F16 550 0 R /F8 553 0 R /F17 725 0 R >> /ProcSet [ /PDF /Text ] >> -% 738 0 obj +% 743 0 obj << /Type /Page -/Contents 739 0 R -/Resources 737 0 R +/Contents 744 0 R +/Resources 742 0 R /MediaBox [0 0 595.276 841.89] -/Parent 721 0 R -/Annots [ 732 0 R 733 0 R 734 0 R ] +/Parent 726 0 R +/Annots [ 737 0 R 738 0 R 739 0 R ] >> -% 742 0 obj +% 747 0 obj << /Producer (GPL Ghostscript 9.04) /CreationDate (D:20111215145523+01'00') @@ -4430,15 +4365,15 @@ stream /Creator (fig2dev Version 3.2 Patchlevel 5d) /Author (sfilippo@donald \(Salvatore Filippone\)) >> -% 743 0 obj +% 748 0 obj << /Type /ExtGState /OPM 1 >> -% 744 0 obj +% 749 0 obj << /BaseFont /JEJNJE+Times-Roman -/FontDescriptor 745 0 R +/FontDescriptor 750 0 R /Type /Font /FirstChar 32 /LastChar 116 @@ -4446,7 +4381,7 @@ stream /Encoding /WinAnsiEncoding /Subtype /Type1 >> -% 745 0 obj +% 750 0 obj << /Type /FontDescriptor /FontName /JEJNJE+Times-Roman @@ -4460,9 +4395,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 746 0 R +/FontFile3 751 0 R >> -% 732 0 obj +% 737 0 obj << /Type /Annot /Subtype /Link @@ -4470,7 +4405,7 @@ stream /Rect [310.543 541.042 317.517 551.89] /A << /S /GoTo /D (figure.1) >> >> -% 733 0 obj +% 738 0 obj << /Type /Annot /Subtype /Link @@ -4478,7 +4413,7 @@ stream /Rect [446.018 471.248 452.992 479.661] /A << /S /GoTo /D (cite.BLACS) >> >> -% 734 0 obj +% 739 0 obj << /Type /Annot /Subtype /Link @@ -4488,28 +4423,28 @@ stream >> % 11 0 obj << -/D [738 0 R /XYZ 150.705 677.433 null] +/D [743 0 R /XYZ 150.705 677.433 null] >> -% 741 0 obj +% 746 0 obj << -/D [738 0 R /XYZ 258.703 263.3 null] +/D [743 0 R /XYZ 258.703 263.3 null] >> -% 737 0 obj +% 742 0 obj << -/Font << /F8 549 0 R /F16 546 0 R /F11 740 0 R >> -/XObject << /Im1 735 0 R >> +/Font << /F8 553 0 R /F16 550 0 R /F11 745 0 R >> +/XObject << /Im1 740 0 R >> /ProcSet [ /PDF /Text ] >> -% 751 0 obj +% 756 0 obj << /Type /Page -/Contents 752 0 R -/Resources 750 0 R +/Contents 757 0 R +/Resources 755 0 R /MediaBox [0 0 595.276 841.89] -/Parent 721 0 R -/Annots [ 736 0 R 748 0 R 749 0 R ] +/Parent 726 0 R +/Annots [ 741 0 R 753 0 R 754 0 R ] >> -% 736 0 obj +% 741 0 obj << /Type /Annot /Subtype /Link @@ -4517,7 +4452,7 @@ stream /Rect [219.5 609.491 231.455 617.904] /A << /S /GoTo /D (cite.METIS) >> >> -% 748 0 obj +% 753 0 obj << /Type /Annot /Subtype /Link @@ -4525,7 +4460,7 @@ stream /Rect [210.854 546.467 217.316 558.506] /A << /S /GoTo /D (Hfootnote.1) >> >> -% 749 0 obj +% 754 0 obj << /Type /Annot /Subtype /Link @@ -4533,54 +4468,54 @@ stream /Rect [155.908 188.124 162.37 200.163] /A << /S /GoTo /D (Hfootnote.2) >> >> -% 753 0 obj +% 758 0 obj << -/D [751 0 R /XYZ 98.895 753.953 null] +/D [756 0 R /XYZ 98.895 753.953 null] >> % 15 0 obj << -/D [751 0 R /XYZ 99.895 515.919 null] +/D [756 0 R /XYZ 99.895 515.919 null] >> -% 759 0 obj +% 764 0 obj << -/D [751 0 R /XYZ 115.138 167.688 null] +/D [756 0 R /XYZ 115.138 167.688 null] >> -% 761 0 obj +% 766 0 obj << -/D [751 0 R /XYZ 115.138 158.184 null] +/D [756 0 R /XYZ 115.138 158.184 null] >> -% 750 0 obj +% 755 0 obj << -/Font << /F8 549 0 R /F17 720 0 R /F30 754 0 R /F7 755 0 R /F16 546 0 R /F11 740 0 R /F10 756 0 R /F14 757 0 R /F27 548 0 R /F32 758 0 R /F31 760 0 R >> +/Font << /F8 553 0 R /F17 725 0 R /F30 759 0 R /F7 760 0 R /F16 550 0 R /F11 745 0 R /F10 761 0 R /F14 762 0 R /F27 552 0 R /F32 763 0 R /F31 765 0 R >> /ProcSet [ /PDF /Text ] >> -% 767 0 obj +% 772 0 obj << /Type /Page -/Contents 768 0 R -/Resources 766 0 R +/Contents 773 0 R +/Resources 771 0 R /MediaBox [0 0 595.276 841.89] -/Parent 721 0 R -/Annots [ 763 0 R 764 0 R ] +/Parent 726 0 R +/Annots [ 768 0 R 769 0 R ] >> -% 771 0 obj +% 776 0 obj << /Producer (ESP Ghostscript 815.03) /CreationDate (D:20070123225315) /ModDate (D:20070123225315) >> -% 772 0 obj +% 777 0 obj << /Type /ExtGState /OPM 1 >> -% 773 0 obj +% 778 0 obj << /BaseFont /Times-Roman /Type /Font /Subtype /Type1 >> -% 763 0 obj +% 768 0 obj << /Type /Annot /Subtype /Link @@ -4588,7 +4523,7 @@ stream /Rect [294.665 637.885 301.639 646.297] /A << /S /GoTo /D (cite.2007c) >> >> -% 764 0 obj +% 769 0 obj << /Type /Annot /Subtype /Link @@ -4596,34 +4531,34 @@ stream /Rect [305.735 637.885 312.709 646.297] /A << /S /GoTo /D (cite.2007d) >> >> -% 769 0 obj +% 774 0 obj << -/D [767 0 R /XYZ 149.705 753.953 null] +/D [772 0 R /XYZ 149.705 753.953 null] >> -% 770 0 obj +% 775 0 obj << -/D [767 0 R /XYZ 303.562 347.015 null] +/D [772 0 R /XYZ 303.562 347.015 null] >> % 19 0 obj << -/D [767 0 R /XYZ 150.705 272.271 null] +/D [772 0 R /XYZ 150.705 272.271 null] >> -% 766 0 obj +% 771 0 obj << -/Font << /F27 548 0 R /F8 549 0 R /F14 757 0 R /F11 740 0 R /F10 756 0 R /F16 546 0 R >> -/XObject << /Im2 765 0 R >> +/Font << /F27 552 0 R /F8 553 0 R /F14 762 0 R /F11 745 0 R /F10 761 0 R /F16 550 0 R >> +/XObject << /Im2 770 0 R >> /ProcSet [ /PDF /Text ] >> -% 779 0 obj +% 784 0 obj << /Type /Page -/Contents 780 0 R -/Resources 778 0 R +/Contents 785 0 R +/Resources 783 0 R /MediaBox [0 0 595.276 841.89] -/Parent 721 0 R -/Annots [ 776 0 R 777 0 R ] +/Parent 726 0 R +/Annots [ 781 0 R 782 0 R ] >> -% 776 0 obj +% 781 0 obj << /Type /Annot /Subtype /Link @@ -4631,7 +4566,7 @@ stream /Rect [406.358 354.515 413.331 366.47] /A << /S /GoTo /D (section.3) >> >> -% 777 0 obj +% 782 0 obj << /Type /Annot /Subtype /Link @@ -4639,150 +4574,188 @@ stream /Rect [173.863 318.352 180.837 330.307] /A << /S /GoTo /D (section.6) >> >> -% 781 0 obj +% 786 0 obj << -/D [779 0 R /XYZ 98.895 753.953 null] +/D [784 0 R /XYZ 98.895 753.953 null] >> -% 778 0 obj +% 783 0 obj << -/Font << /F27 548 0 R /F8 549 0 R /F14 757 0 R /F30 754 0 R >> +/Font << /F27 552 0 R /F8 553 0 R /F14 762 0 R /F30 759 0 R >> /ProcSet [ /PDF /Text ] >> -% 783 0 obj +% 788 0 obj << /Type /Page -/Contents 784 0 R -/Resources 782 0 R +/Contents 789 0 R +/Resources 787 0 R /MediaBox [0 0 595.276 841.89] -/Parent 721 0 R ->> -% 785 0 obj -<< -/D [783 0 R /XYZ 149.705 753.953 null] ->> -% 23 0 obj -<< -/D [783 0 R /XYZ 150.705 716.092 null] ->> -% 787 0 obj -<< -/D [783 0 R /XYZ 150.705 284.758 null] ->> -% 788 0 obj -<< -/D [783 0 R /XYZ 150.705 263.953 null] ->> -% 789 0 obj -<< -/D [783 0 R /XYZ 150.705 242.87 null] +/Parent 726 0 R >> % 790 0 obj << -/D [783 0 R /XYZ 150.705 221.788 null] +/D [788 0 R /XYZ 149.705 753.953 null] >> -% 791 0 obj +% 23 0 obj << -/D [783 0 R /XYZ 150.705 188.75 null] +/D [788 0 R /XYZ 150.705 716.092 null] >> % 792 0 obj << -/D [783 0 R /XYZ 150.705 167.6 null] +/D [788 0 R /XYZ 150.705 284.758 null] >> % 793 0 obj << -/D [783 0 R /XYZ 150.705 148.591 null] +/D [788 0 R /XYZ 150.705 263.953 null] >> % 794 0 obj << -/D [783 0 R /XYZ 150.705 132.072 null] +/D [788 0 R /XYZ 150.705 242.87 null] >> -% 782 0 obj +% 795 0 obj << -/Font << /F16 546 0 R /F8 549 0 R /F11 740 0 R /F30 754 0 R /F9 786 0 R /F17 720 0 R >> -/ProcSet [ /PDF /Text ] +/D [788 0 R /XYZ 150.705 221.788 null] >> -% 797 0 obj +% 796 0 obj << -/Type /Page -/Contents 798 0 R -/Resources 796 0 R -/MediaBox [0 0 595.276 841.89] -/Parent 813 0 R +/D [788 0 R /XYZ 150.705 188.75 null] >> -% 799 0 obj +% 797 0 obj << -/D [797 0 R /XYZ 98.895 753.953 null] +/D [788 0 R /XYZ 150.705 167.6 null] >> -% 800 0 obj +% 798 0 obj << -/D [797 0 R /XYZ 99.895 716.092 null] +/D [788 0 R /XYZ 150.705 148.591 null] >> -% 801 0 obj +% 799 0 obj << -/D [797 0 R /XYZ 99.895 685.535 null] +/D [788 0 R /XYZ 150.705 132.072 null] >> -% 802 0 obj +% 787 0 obj << -/D [797 0 R /XYZ 99.895 613.511 null] +/Font << /F16 550 0 R /F8 553 0 R /F11 745 0 R /F30 759 0 R /F9 791 0 R /F17 725 0 R >> +/ProcSet [ /PDF /Text ] >> -% 803 0 obj +% 802 0 obj << -/D [797 0 R /XYZ 99.895 588.43 null] +/Type /Page +/Contents 803 0 R +/Resources 801 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 818 0 R >> % 804 0 obj << -/D [797 0 R /XYZ 99.895 563.625 null] +/D [802 0 R /XYZ 98.895 753.953 null] >> % 805 0 obj << -/D [797 0 R /XYZ 99.895 526.865 null] +/D [802 0 R /XYZ 99.895 716.092 null] >> % 806 0 obj << -/D [797 0 R /XYZ 99.895 502.06 null] +/D [802 0 R /XYZ 99.895 685.535 null] >> % 807 0 obj << -/D [797 0 R /XYZ 99.895 477.255 null] +/D [802 0 R /XYZ 99.895 613.511 null] >> % 808 0 obj << -/D [797 0 R /XYZ 99.895 449.514 null] +/D [802 0 R /XYZ 99.895 588.43 null] >> % 809 0 obj << -/D [797 0 R /XYZ 99.895 419.179 null] +/D [802 0 R /XYZ 99.895 563.625 null] >> % 810 0 obj << -/D [797 0 R /XYZ 99.895 388.567 null] +/D [802 0 R /XYZ 99.895 526.865 null] >> % 811 0 obj << -/D [797 0 R /XYZ 99.895 369.91 null] +/D [802 0 R /XYZ 99.895 502.06 null] >> % 812 0 obj << -/D [797 0 R /XYZ 99.895 351.53 null] +/D [802 0 R /XYZ 99.895 477.255 null] >> -% 796 0 obj +% 813 0 obj << -/Font << /F8 549 0 R /F30 754 0 R >> -/ProcSet [ /PDF /Text ] +/D [802 0 R /XYZ 99.895 449.514 null] +>> +% 814 0 obj +<< +/D [802 0 R /XYZ 99.895 419.179 null] +>> +% 815 0 obj +<< +/D [802 0 R /XYZ 99.895 388.567 null] >> % 816 0 obj << -/Type /Page -/Contents 817 0 R -/Resources 815 0 R -/MediaBox [0 0 595.276 841.89] -/Parent 813 0 R -/Annots [ 795 0 R 814 0 R ] +/D [802 0 R /XYZ 99.895 369.91 null] +>> + +endstream +endobj +823 0 obj +<< +/Length 7473 >> +stream +0 g 0 G +0 g 0 G +BT +/F27 9.9626 Tf 150.705 706.129 Td [(2.3.1)-1150(User-de\014ned)-383(index)-384(mappings)]TJ/F8 9.9626 Tf 0 -18.389 Td [(PSBLAS)-385(s)-1(u)1(pp)-28(orts)-386(user-de\014ned)-385(global)-386(to)-386(lo)-27(cal)-386(index)-386(mappings,)-398(sub)-56(ject)-385(to)-386(the)]TJ 0 -11.956 Td [(constrain)28(ts)-334(ou)1(tlined)-334(in)-333(sec.)]TJ +0 0 1 rg 0 0 1 RG + [-333(2.3)]TJ +0 g 0 G + [(:)]TJ +0 g 0 G + 12.176 -19.925 Td [(1.)]TJ +0 g 0 G + [-500(The)-333(set)-334(of)-333(indices)-333(o)27(wned)-333(lo)-28(cally)-333(m)28(ust)-334(b)-27(e)-334(mapp)-28(ed)-333(to)-333(the)-334(set)-333(1)]TJ/F11 9.9626 Tf 282.774 0 Td [(:)-167(:)-166(:)-167(n)]TJ/F8 9.9626 Tf 19.263 -1.494 Td [(ro)28(w)]TJ/F9 4.9813 Tf 15.802 -0.997 Td [(i)]TJ/F8 9.9626 Tf 3.654 2.491 Td [(;)]TJ +0 g 0 G + -321.493 -19.925 Td [(2.)]TJ +0 g 0 G + [-500(The)-333(set)-334(of)-333(halo)-333(p)-28(oin)28(ts)-334(m)28(ust)-333(b)-28(e)-333(mapp)-28(ed)-333(to)-334(the)-333(set)]TJ/F11 9.9626 Tf 232.684 0 Td [(n)]TJ/F8 9.9626 Tf 5.98 -1.495 Td [(ro)28(w)]TJ/F9 4.9813 Tf 15.802 -0.996 Td [(i)]TJ/F8 9.9626 Tf 5.868 2.491 Td [(+)-222(1)]TJ/F11 9.9626 Tf 16.604 0 Td [(:)-167(:)-166(:)-167(n)]TJ/F8 9.9626 Tf 19.263 -3.487 Td [(col)]TJ/F9 4.9813 Tf 12.177 -0.996 Td [(i)]TJ/F8 9.9626 Tf 3.654 4.483 Td [(;)]TJ -324.208 -19.926 Td [(but)-366(otherwise)-366(the)-365(mapping)-366(is)-366(arbitrary)84(.)-542(The)-366(user)-366(application)-366(is)-365(resp)-28(onsible)-366(to)]TJ 0 -11.955 Td [(ensure)-356(consistency)-356(of)-356(this)-356(mapping;)-367(some)-356(errors)-356(ma)27(y)-356(b)-27(e)-356(caugh)27(t)-356(b)28(y)-356(the)-356(library)84(,)]TJ 0 -11.955 Td [(but)-377(this)-378(is)-377(not)-377(guaran)28(te)-1(ed.)-576(The)-377(application)-378(structure)-377(to)-377(s)-1(u)1(pp)-28(ort)-378(t)1(his)-378(usage)-377(is)]TJ 0 -11.955 Td [(as)-333(follo)27(ws:)]TJ +0 g 0 G + 12.176 -19.925 Td [(1.)]TJ +0 g 0 G + [-500(Initialize)-222(index)-222(space)-223(with)]TJ/F30 9.9626 Tf 125.696 0 Td [(psb_cdall\050ictx,desc,info,vl=vl,lidx=lidx\051)]TJ/F8 9.9626 Tf -112.966 -11.955 Td [(passing)-253(the)-254(v)28(ectors)]TJ/F30 9.9626 Tf 83.59 0 Td [(vl\050:\051)]TJ/F8 9.9626 Tf 28.674 0 Td [(con)28(taining)-253(the)-254(set)-253(of)-253(global)-253(indices)-254(o)28(wned)-253(b)28(y)-253(the)]TJ -112.264 -11.956 Td [(curren)28(t)-334(pr)1(o)-28(cess)-334(and)]TJ/F30 9.9626 Tf 88.751 0 Td [(lidx\050:\051)]TJ/F8 9.9626 Tf 39.933 0 Td [(con)28(taining)-333(the)-334(corresp)-28(ondin)1(g)-334(lo)-28(cal)-333(indices;)]TJ +0 g 0 G + -141.414 -19.925 Td [(2.)]TJ +0 g 0 G + [-500(Add)-266(the)-266(halo)-266(p)-27(oin)27(ts)]TJ/F30 9.9626 Tf 100.593 0 Td [(ja\050:\051)]TJ/F8 9.9626 Tf 28.801 0 Td [(and)-266(their)-266(asso)-28(ciated)-265(lo)-28(cal)-266(indices)]TJ/F30 9.9626 Tf 143.508 0 Td [(lidx\050:\051)]TJ/F8 9.9626 Tf 39.261 0 Td [(with)]TJ -299.433 -11.955 Td [(a\050some\051)-333(c)-1(all\050)1(s)-1(\051)-333(to)]TJ/F30 9.9626 Tf 79.812 0 Td [(psb_cdins\050nz,ja,desc,info,lidx=lidx\051)]TJ/F8 9.9626 Tf 188.293 0 Td [(;)]TJ +0 g 0 G + -280.835 -19.925 Td [(3.)]TJ +0 g 0 G + [-500(Assem)28(ble)-334(the)-333(descriptor)-333(with)]TJ/F30 9.9626 Tf 143.02 0 Td [(psb_cdasb)]TJ/F8 9.9626 Tf 47.073 0 Td [(;)]TJ +0 g 0 G + -190.093 -19.926 Td [(4.)]TJ +0 g 0 G + [-500(Build)-240(the)-240(sparse)-240(matrices)-240(and)-240(v)27(ectors,)-258(optionally)-240(making)-240(use)-241(in)]TJ/F30 9.9626 Tf 284.462 0 Td [(psb_spins)]TJ/F8 9.9626 Tf -271.732 -11.955 Td [(and)]TJ/F30 9.9626 Tf 19.727 0 Td [(psb_geins)]TJ/F8 9.9626 Tf 50.749 0 Td [(of)-369(the)]TJ/F30 9.9626 Tf 29.214 0 Td [(local)]TJ/F8 9.9626 Tf 29.827 0 Td [(argumen)28(t)-369(sp)-28(ecifying)-369(that)-369(the)-369(indices)-369(in)]TJ/F30 9.9626 Tf 176.06 0 Td [(ia)]TJ/F8 9.9626 Tf 10.461 0 Td [(,)]TJ/F30 9.9626 Tf -316.038 -11.955 Td [(ja)]TJ/F8 9.9626 Tf 13.782 0 Td [(and)]TJ/F30 9.9626 Tf 19.372 0 Td [(irw)]TJ/F8 9.9626 Tf 15.691 0 Td [(,)-333(resp)-28(ectiv)28(ely)83(,)-333(are)-334(already)-333(lo)-28(cal)-333(indices.)]TJ/F16 11.9552 Tf -73.751 -27.888 Td [(2.4)-1125(Programming)-375(mo)-31(del)]TJ/F8 9.9626 Tf 0 -18.39 Td [(The)-325(PSBLAS)-324(librarary)-325(is)-325(based)-324(o)-1(n)-324(the)-325(Single)-325(Program)-324(Multiple)-325(Data)-325(\050SPMD\051)]TJ 0 -11.955 Td [(programming)-413(mo)-28(del:)-603(eac)27(h)-413(pro)-27(cess)-413(participating)-413(in)-413(the)-413(computation)-413(p)-28(erforms)]TJ 0 -11.955 Td [(the)-333(same)-334(actions)-333(on)-333(a)-334(c)28(h)28(unk)-333(of)-334(data.)-444(P)28(arallelism)-334(is)-333(th)28(us)-334(data-d)1(riv)27(en.)]TJ 14.944 -11.955 Td [(Because)-389(of)-389(this)-389(structure,)-402(m)-1(an)28(y)-389(subrou)1(tines)-389(co)-28(ordinate)-389(their)-389(action)-389(across)]TJ -14.944 -11.956 Td [(the)-478(v)56(arious)-478(pro)-28(cesses,)-514(th)28(us)-478(pro)28(viding)-477(a)-1(n)-477(implicit)-478(sync)28(hronization)-478(p)-28(oin)28(t,)-514(and)]TJ 0 -11.955 Td [(therefore)]TJ/F17 9.9626 Tf 43.026 0 Td [(must)]TJ/F8 9.9626 Tf 26.326 0 Td [(b)-28(e)-452(called)-452(sim)28(ultaneously)-452(b)28(y)-452(all)-452(pro)-28(cesses)-452(participating)-452(in)-452(the)]TJ -69.352 -11.955 Td [(computation.)-597(This)-384(is)-384(certainly)-384(true)-385(for)-384(the)-384(data)-384(allo)-28(cation)-384(and)-384(assem)28(bly)-385(rou)1(-)]TJ 0 -11.955 Td [(tines,)-333(for)-334(all)-333(the)-333(computational)-333(routines)-334(and)-333(for)-333(some)-334(of)-333(the)-333(to)-28(ols)-334(r)1(outines.)]TJ 14.944 -11.955 Td [(Ho)28(w)28(e)-1(v)28(er)-490(there)-490(are)-490(m)-1(an)28(y)-490(cases)-490(where)-491(no)-490(sync)28(hronization,)-529(and)-491(in)1(dee)-1(d)-490(no)]TJ -14.944 -11.955 Td [(comm)28(unication)-459(among)-458(pro)-28(cesses,)-489(is)-459(implied;)-521(f)1(or)-459(instance,)-489(all)-459(the)-458(routines)-458(in)]TJ 0 -11.956 Td [(sec.)]TJ +0 0 1 rg 0 0 1 RG + [-476(3)]TJ +0 g 0 G + [-475(are)-475(only)-476(acting)-475(on)-476(the)-475(lo)-28(cal)-475(data)-476(structures,)-511(and)-475(th)28(us)-476(ma)28(y)-475(b)-28(e)-475(c)-1(alled)]TJ 0 -11.955 Td [(indep)-28(enden)28(tly)84(.)-917(The)-491(most)-491(imp)-27(ortan)27(t)-490(case)-491(is)-491(that)-491(of)-490(the)-491(co)-28(e\016cien)28(t)-491(insertion)]TJ 0 -11.955 Td [(routines:)-409(since)-263(the)-263(n)27(um)28(b)-28(er)-263(of)-263(co)-27(e\016c)-1(i)1(e)-1(n)28(ts)-263(in)-263(the)-263(sparse)-263(and)-263(dense)-263(matrices)-263(v)55(aries)]TJ 0 -11.955 Td [(among)-323(the)-322(pro)-28(cessors,)-325(and)-323(since)-322(the)-323(user)-323(is)-322(free)-323(to)-323(c)28(ho)-28(ose)-322(an)-323(arbitrary)-323(ord)1(e)-1(r)-322(in)]TJ 0 -11.955 Td [(builiding)-333(the)-333(matrix)-334(en)28(tries,)-333(these)-334(routines)-333(cannot)-333(imply)-334(a)-333(sync)28(hronization.)]TJ 14.944 -11.955 Td [(Throughout)-333(this)-333(use)-1(r)1('s)-334(guide)-333(eac)28(h)-334(subroutine)-333(will)-333(b)-28(e)-333(clearly)-334(indicated)-333(as:)]TJ +0 g 0 G +/F27 9.9626 Tf -14.944 -19.926 Td [(Sync)32(hronous:)]TJ +0 g 0 G +/F8 9.9626 Tf 71.504 0 Td [(m)28(ust)-359(b)-28(e)-359(called)-359(sim)28(ultaneously)-359(b)28(y)-359(all)-359(the)-359(pro)-28(cesses)-359(in)-359(the)-359(rele-)]TJ -46.597 -11.955 Td [(v)56(an)27(t)-333(comm)28(unication)-333(c)-1(on)28(text;)]TJ +0 g 0 G +/F27 9.9626 Tf -24.907 -19.925 Td [(Async)32(hronous:)]TJ +0 g 0 G +/F8 9.9626 Tf 78.32 0 Td [(ma)28(y)-334(b)-27(e)-334(called)-333(in)-333(a)-334(totally)-333(indep)-28(enden)28(t)-333(manner.)]TJ +0 g 0 G + 91.045 -72.817 Td [(8)]TJ +0 g 0 G +ET endstream endobj -829 0 obj +834 0 obj << /Length 8440 >> @@ -4927,7 +4900,7 @@ ET endstream endobj -835 0 obj +840 0 obj << /Length 6708 >> @@ -5050,7 +5023,7 @@ ET endstream endobj -847 0 obj +852 0 obj << /Length 5012 >> @@ -5141,7 +5114,7 @@ ET endstream endobj -859 0 obj +864 0 obj << /Length 5199 >> @@ -5270,7 +5243,7 @@ ET endstream endobj -863 0 obj +868 0 obj << /Length 4312 >> @@ -5388,7 +5361,7 @@ ET endstream endobj -868 0 obj +873 0 obj << /Length 5789 >> @@ -5581,7 +5554,7 @@ ET endstream endobj -875 0 obj +880 0 obj << /Length 9421 >> @@ -5911,7 +5884,7 @@ ET endstream endobj -883 0 obj +888 0 obj << /Length 3956 >> @@ -6010,7 +5983,7 @@ ET endstream endobj -887 0 obj +892 0 obj << /Length 4362 >> @@ -6110,7 +6083,7 @@ ET endstream endobj -892 0 obj +897 0 obj << /Length 4633 >> @@ -6235,7 +6208,7 @@ ET endstream endobj -896 0 obj +901 0 obj << /Length 4346 >> @@ -6319,119 +6292,43 @@ ET endstream endobj -901 0 obj -<< -/Length 3969 ->> -stream -0 g 0 G -0 g 0 G -0 g 0 G -BT -/F27 9.9626 Tf 150.705 706.129 Td [(a)]TJ -0 g 0 G -/F8 9.9626 Tf 10.551 0 Td [(the)-333(sparse)-334(matrix.)]TJ 14.355 -11.955 Td [(A)-333(v)55(ariable)-333(of)-333(t)27(yp)-27(e)]TJ/F30 9.9626 Tf 81.943 0 Td [(psb_Tspmat_type)]TJ/F8 9.9626 Tf 78.455 0 Td [(.)]TJ -160.398 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf 23.073 0 Td [(.)]TJ -0 g 0 G -/F27 9.9626 Tf -80.358 -34.065 Td [(On)-383(Return)]TJ -0 g 0 G -0 g 0 G - 0 -20.182 Td [(a)]TJ -0 g 0 G -/F8 9.9626 Tf 10.55 0 Td [(The)-333(matrix)]TJ/F30 9.9626 Tf 52.886 0 Td [(a)]TJ/F8 9.9626 Tf 8.551 0 Td [(without)-333(zero)-334(co)-27(e\016)-1(cien)28(ts.)]TJ -47.081 -11.955 Td [(A)-333(v)55(ariable)-333(of)-333(t)27(yp)-27(e)]TJ/F30 9.9626 Tf 81.943 0 Td [(psb_Tspmat_type)]TJ/F8 9.9626 Tf 78.455 0 Td [(.)]TJ -0 g 0 G -/F27 9.9626 Tf -185.304 -20.181 Td [(info)]TJ -0 g 0 G -/F8 9.9626 Tf 23.758 0 Td [(Return)-333(co)-28(de.)]TJ/F27 9.9626 Tf -23.758 -26.236 Td [(get)]TJ -ET -q -1 0 0 1 166.827 569.799 cm -[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S -Q -BT -/F27 9.9626 Tf 170.264 569.6 Td [(diag)-383(|)-384(Get)-383(main)-383(di)-1(agonal)]TJ -0 g 0 G -0 g 0 G -/F30 9.9626 Tf 1.362 -18.508 Td [(call)-525(a%get_diag\050d,info\051)]TJ/F8 9.9626 Tf -5.977 -22.174 Td [(Returns)-333(a)-334(cop)28(y)-333(of)-333(the)-334(main)-333(diagonal.)]TJ -0 g 0 G -/F27 9.9626 Tf -14.944 -20.117 Td [(T)32(yp)-32(e:)]TJ -0 g 0 G -/F8 9.9626 Tf 33.797 0 Td [(Async)28(hronous.)]TJ -0 g 0 G -/F27 9.9626 Tf -33.797 -20.182 Td [(On)-383(En)32(try)]TJ -0 g 0 G -0 g 0 G - 0 -20.181 Td [(a)]TJ -0 g 0 G -/F8 9.9626 Tf 10.551 0 Td [(the)-333(sparse)-334(matrix.)]TJ 14.355 -11.955 Td [(A)-333(v)55(ariable)-333(of)-333(t)27(yp)-27(e)]TJ/F30 9.9626 Tf 81.943 0 Td [(psb_Tspmat_type)]TJ/F8 9.9626 Tf 78.455 0 Td [(.)]TJ -160.398 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf 23.073 0 Td [(.)]TJ -0 g 0 G -/F27 9.9626 Tf -80.358 -34.13 Td [(On)-383(Return)]TJ -0 g 0 G -0 g 0 G - 0 -20.181 Td [(d)]TJ -0 g 0 G -/F8 9.9626 Tf 11.346 0 Td [(A)-333(cop)27(y)-333(of)-333(the)-334(main)-333(diagonal.)]TJ 13.56 -11.955 Td [(A)-333(one-dimensional)-334(arra)28(y)-333(of)-333(the)-334(appropriate)-333(t)28(yp)-28(e.)]TJ -0 g 0 G -/F27 9.9626 Tf -24.906 -20.181 Td [(info)]TJ -0 g 0 G -/F8 9.9626 Tf 23.758 0 Td [(Return)-333(co)-28(de.)]TJ/F27 9.9626 Tf -23.758 -26.236 Td [(clip)]TJ -ET -q -1 0 0 1 169.214 332.044 cm -[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S -Q -BT -/F27 9.9626 Tf 172.651 331.845 Td [(diag)-383(|)-384(Cut)-383(out)-383(main)-384(diagonal)]TJ -0 g 0 G -0 g 0 G -/F30 9.9626 Tf -1.025 -18.508 Td [(call)-525(a%clip_diag\050b,info\051)]TJ/F8 9.9626 Tf -5.977 -22.174 Td [(Returns)-333(a)-334(cop)28(y)-333(of)]TJ/F30 9.9626 Tf 80.753 0 Td [(a)]TJ/F8 9.9626 Tf 8.551 0 Td [(without)-333(the)-334(main)-333(diagonal.)]TJ -0 g 0 G -/F27 9.9626 Tf -104.248 -20.118 Td [(T)32(yp)-32(e:)]TJ -0 g 0 G -/F8 9.9626 Tf 33.797 0 Td [(Async)28(hronous.)]TJ -0 g 0 G -/F27 9.9626 Tf -33.797 -20.181 Td [(On)-383(En)32(try)]TJ -0 g 0 G -0 g 0 G - 0 -20.181 Td [(a)]TJ -0 g 0 G -/F8 9.9626 Tf 10.551 0 Td [(the)-333(sparse)-334(matrix.)]TJ 14.356 -11.955 Td [(A)-333(v)55(ariable)-333(of)-333(t)28(yp)-28(e)]TJ/F30 9.9626 Tf 81.942 0 Td [(psb_Tspmat_type)]TJ/F8 9.9626 Tf 78.456 0 Td [(.)]TJ -160.398 -11.956 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.378 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf 23.073 0 Td [(.)]TJ -0 g 0 G -/F27 9.9626 Tf -80.358 -34.129 Td [(On)-383(Return)]TJ -0 g 0 G -0 g 0 G - 0 -20.181 Td [(b)]TJ -0 g 0 G -/F8 9.9626 Tf 11.346 0 Td [(A)-333(cop)27(y)-333(of)]TJ/F30 9.9626 Tf 45.386 0 Td [(a)]TJ/F8 9.9626 Tf 8.551 0 Td [(without)-333(the)-334(main)-333(diagonal.)]TJ -40.376 -11.955 Td [(A)-333(v)55(ariable)-333(of)-333(t)27(y)1(p)-28(e)]TJ/F30 9.9626 Tf 81.942 0 Td [(psb_Tspmat_type)]TJ/F8 9.9626 Tf 78.456 0 Td [(.)]TJ -0 g 0 G -/F27 9.9626 Tf -185.305 -20.181 Td [(info)]TJ -0 g 0 G -/F8 9.9626 Tf 23.758 0 Td [(Return)-333(co)-28(de.)]TJ -0 g 0 G - 143.116 -29.888 Td [(20)]TJ -0 g 0 G -ET - -endstream -endobj -825 0 obj +819 0 obj << /Type /ObjStm /N 100 -/First 866 -/Length 8669 +/First 865 +/Length 8716 >> stream -795 0 814 152 818 299 27 356 819 412 820 469 821 526 822 583 823 640 824 697 -31 754 815 810 828 953 826 1087 830 1234 35 1290 39 1345 831 1400 827 1457 834 1575 -832 1709 836 1856 837 1913 838 1970 839 2027 840 2084 841 2141 842 2198 843 2255 844 2312 -833 2369 846 2461 848 2575 849 2631 850 2687 851 2742 852 2798 853 2854 854 2910 845 2967 -858 3059 855 3201 856 3347 860 3493 43 3550 47 3606 51 3662 55 3718 857 3774 862 3892 -864 4006 59 4062 63 4117 67 4172 861 4227 867 4319 869 4433 71 4490 75 4546 79 4602 -83 4658 866 4713 874 4805 870 4955 871 5112 872 5262 876 5408 87 5464 877 5519 878 5576 -879 5633 873 5690 882 5795 884 5909 91 5966 95 6022 99 6078 103 6134 881 6191 886 6283 -888 6397 889 6453 107 6508 111 6564 115 6620 885 6676 891 6768 893 6882 119 6939 123 6996 -127 7052 890 7109 895 7201 897 7315 131 7371 135 7427 894 7483 900 7575 902 7689 139 7746 -% 795 0 obj +817 0 801 55 822 134 800 276 820 428 824 575 27 632 825 688 826 745 827 802 +828 859 829 916 830 973 31 1030 821 1086 833 1229 831 1363 835 1510 35 1566 39 1621 +836 1676 832 1733 839 1851 837 1985 841 2132 842 2189 843 2246 844 2303 845 2360 846 2417 +847 2474 848 2531 849 2588 838 2645 851 2737 853 2851 854 2907 855 2963 856 3018 857 3074 +858 3130 859 3186 850 3243 863 3335 860 3477 861 3623 865 3769 43 3826 47 3882 51 3938 +55 3994 862 4050 867 4168 869 4282 59 4338 63 4393 67 4448 866 4503 872 4595 874 4709 +71 4766 75 4822 79 4878 83 4934 871 4989 879 5081 875 5231 876 5388 877 5538 881 5684 +87 5740 882 5795 883 5852 884 5909 878 5966 887 6071 889 6185 91 6242 95 6298 99 6354 +103 6410 886 6467 891 6559 893 6673 894 6729 107 6784 111 6840 115 6896 890 6952 896 7044 +898 7158 119 7215 123 7272 127 7328 895 7385 900 7477 902 7591 131 7647 135 7703 899 7759 +% 817 0 obj +<< +/D [802 0 R /XYZ 99.895 351.53 null] +>> +% 801 0 obj +<< +/Font << /F8 553 0 R /F30 759 0 R >> +/ProcSet [ /PDF /Text ] +>> +% 822 0 obj +<< +/Type /Page +/Contents 823 0 R +/Resources 821 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 818 0 R +/Annots [ 800 0 R 820 0 R ] +>> +% 800 0 obj << /Type /Annot /Subtype /Link @@ -6439,7 +6336,7 @@ stream /Rect [269.731 674.788 284.454 683.699] /A << /S /GoTo /D (subsection.2.3) >> >> -% 814 0 obj +% 820 0 obj << /Type /Annot /Subtype /Link @@ -6447,57 +6344,57 @@ stream /Rect [169.998 271.903 176.972 282.751] /A << /S /GoTo /D (section.3) >> >> -% 818 0 obj +% 824 0 obj << -/D [816 0 R /XYZ 149.705 753.953 null] +/D [822 0 R /XYZ 149.705 753.953 null] >> % 27 0 obj << -/D [816 0 R /XYZ 150.705 716.092 null] +/D [822 0 R /XYZ 150.705 716.092 null] >> -% 819 0 obj +% 825 0 obj << -/D [816 0 R /XYZ 150.705 671.799 null] +/D [822 0 R /XYZ 150.705 671.799 null] >> -% 820 0 obj +% 826 0 obj << -/D [816 0 R /XYZ 150.705 649.383 null] +/D [822 0 R /XYZ 150.705 649.383 null] >> -% 821 0 obj +% 827 0 obj << -/D [816 0 R /XYZ 150.705 576.158 null] +/D [822 0 R /XYZ 150.705 576.158 null] >> -% 822 0 obj +% 828 0 obj << -/D [816 0 R /XYZ 150.705 530.385 null] +/D [822 0 R /XYZ 150.705 530.385 null] >> -% 823 0 obj +% 829 0 obj << -/D [816 0 R /XYZ 150.705 497.951 null] +/D [822 0 R /XYZ 150.705 497.951 null] >> -% 824 0 obj +% 830 0 obj << -/D [816 0 R /XYZ 150.705 478.303 null] +/D [822 0 R /XYZ 150.705 478.303 null] >> % 31 0 obj << -/D [816 0 R /XYZ 150.705 424.511 null] +/D [822 0 R /XYZ 150.705 424.511 null] >> -% 815 0 obj +% 821 0 obj << -/Font << /F27 548 0 R /F8 549 0 R /F11 740 0 R /F9 786 0 R /F30 754 0 R /F16 546 0 R /F17 720 0 R >> +/Font << /F27 552 0 R /F8 553 0 R /F11 745 0 R /F9 791 0 R /F30 759 0 R /F16 550 0 R /F17 725 0 R >> /ProcSet [ /PDF /Text ] >> -% 828 0 obj +% 833 0 obj << /Type /Page -/Contents 829 0 R -/Resources 827 0 R +/Contents 834 0 R +/Resources 832 0 R /MediaBox [0 0 595.276 841.89] -/Parent 813 0 R -/Annots [ 826 0 R ] +/Parent 818 0 R +/Annots [ 831 0 R ] >> -% 826 0 obj +% 831 0 obj << /Type /Annot /Subtype /Link @@ -6505,37 +6402,37 @@ stream /Rect [269.318 225.936 276.292 236.784] /A << /S /GoTo /D (section.6) >> >> -% 830 0 obj +% 835 0 obj << -/D [828 0 R /XYZ 98.895 753.953 null] +/D [833 0 R /XYZ 98.895 753.953 null] >> % 35 0 obj << -/D [828 0 R /XYZ 99.895 716.092 null] +/D [833 0 R /XYZ 99.895 716.092 null] >> % 39 0 obj << -/D [828 0 R /XYZ 99.895 331.305 null] +/D [833 0 R /XYZ 99.895 331.305 null] >> -% 831 0 obj +% 836 0 obj << -/D [828 0 R /XYZ 342.427 288.724 null] +/D [833 0 R /XYZ 342.427 288.724 null] >> -% 827 0 obj +% 832 0 obj << -/Font << /F16 546 0 R /F8 549 0 R /F30 754 0 R /F27 548 0 R /F14 757 0 R >> +/Font << /F16 550 0 R /F8 553 0 R /F30 759 0 R /F27 552 0 R /F14 762 0 R >> /ProcSet [ /PDF /Text ] >> -% 834 0 obj +% 839 0 obj << /Type /Page -/Contents 835 0 R -/Resources 833 0 R +/Contents 840 0 R +/Resources 838 0 R /MediaBox [0 0 595.276 841.89] -/Parent 813 0 R -/Annots [ 832 0 R ] +/Parent 818 0 R +/Annots [ 837 0 R ] >> -% 832 0 obj +% 837 0 obj << /Type /Annot /Subtype /Link @@ -6543,98 +6440,98 @@ stream /Rect [452.103 457.229 459.077 469.184] /A << /S /GoTo /D (section.6) >> >> -% 836 0 obj +% 841 0 obj << -/D [834 0 R /XYZ 149.705 753.953 null] +/D [839 0 R /XYZ 149.705 753.953 null] >> -% 837 0 obj +% 842 0 obj << -/D [834 0 R /XYZ 150.705 353.756 null] +/D [839 0 R /XYZ 150.705 353.756 null] >> -% 838 0 obj +% 843 0 obj << -/D [834 0 R /XYZ 150.705 337.982 null] +/D [839 0 R /XYZ 150.705 337.982 null] >> -% 839 0 obj +% 844 0 obj << -/D [834 0 R /XYZ 150.705 322.207 null] +/D [839 0 R /XYZ 150.705 322.207 null] >> -% 840 0 obj +% 845 0 obj << -/D [834 0 R /XYZ 150.705 306.433 null] +/D [839 0 R /XYZ 150.705 306.433 null] >> -% 841 0 obj +% 846 0 obj << -/D [834 0 R /XYZ 150.705 290.659 null] +/D [839 0 R /XYZ 150.705 290.659 null] >> -% 842 0 obj +% 847 0 obj << -/D [834 0 R /XYZ 150.705 163.801 null] +/D [839 0 R /XYZ 150.705 163.801 null] >> -% 843 0 obj +% 848 0 obj << -/D [834 0 R /XYZ 150.705 148.027 null] +/D [839 0 R /XYZ 150.705 148.027 null] >> -% 844 0 obj +% 849 0 obj << -/D [834 0 R /XYZ 150.705 132.253 null] +/D [839 0 R /XYZ 150.705 132.253 null] >> -% 833 0 obj +% 838 0 obj << -/Font << /F27 548 0 R /F8 549 0 R /F14 757 0 R >> +/Font << /F27 552 0 R /F8 553 0 R /F14 762 0 R >> /ProcSet [ /PDF /Text ] >> -% 846 0 obj +% 851 0 obj << /Type /Page -/Contents 847 0 R -/Resources 845 0 R +/Contents 852 0 R +/Resources 850 0 R /MediaBox [0 0 595.276 841.89] -/Parent 813 0 R +/Parent 818 0 R >> -% 848 0 obj +% 853 0 obj << -/D [846 0 R /XYZ 98.895 753.953 null] +/D [851 0 R /XYZ 98.895 753.953 null] >> -% 849 0 obj +% 854 0 obj << -/D [846 0 R /XYZ 99.895 716.092 null] +/D [851 0 R /XYZ 99.895 716.092 null] >> -% 850 0 obj +% 855 0 obj << -/D [846 0 R /XYZ 99.895 700.92 null] +/D [851 0 R /XYZ 99.895 700.92 null] >> -% 851 0 obj +% 856 0 obj << -/D [846 0 R /XYZ 99.895 552.932 null] +/D [851 0 R /XYZ 99.895 552.932 null] >> -% 852 0 obj +% 857 0 obj << -/D [846 0 R /XYZ 99.895 534.433 null] +/D [851 0 R /XYZ 99.895 534.433 null] >> -% 853 0 obj +% 858 0 obj << -/D [846 0 R /XYZ 99.895 515.935 null] +/D [851 0 R /XYZ 99.895 515.935 null] >> -% 854 0 obj +% 859 0 obj << -/D [846 0 R /XYZ 147.412 280.287 null] +/D [851 0 R /XYZ 147.412 280.287 null] >> -% 845 0 obj +% 850 0 obj << -/Font << /F8 549 0 R /F27 548 0 R /F30 754 0 R >> +/Font << /F8 553 0 R /F27 552 0 R /F30 759 0 R >> /ProcSet [ /PDF /Text ] >> -% 858 0 obj +% 863 0 obj << /Type /Page -/Contents 859 0 R -/Resources 857 0 R +/Contents 864 0 R +/Resources 862 0 R /MediaBox [0 0 595.276 841.89] -/Parent 813 0 R -/Annots [ 855 0 R 856 0 R ] +/Parent 818 0 R +/Annots [ 860 0 R 861 0 R ] >> -% 855 0 obj +% 860 0 obj << /Type /Annot /Subtype /Link @@ -6642,7 +6539,7 @@ stream /Rect [351.231 524.53 358.204 536.485] /A << /S /GoTo /D (section.1) >> >> -% 856 0 obj +% 861 0 obj << /Type /Annot /Subtype /Link @@ -6650,103 +6547,103 @@ stream /Rect [186.34 314.707 193.314 326.662] /A << /S /GoTo /D (section.1) >> >> -% 860 0 obj +% 865 0 obj << -/D [858 0 R /XYZ 149.705 753.953 null] +/D [863 0 R /XYZ 149.705 753.953 null] >> % 43 0 obj << -/D [858 0 R /XYZ 150.705 716.092 null] +/D [863 0 R /XYZ 150.705 716.092 null] >> % 47 0 obj << -/D [858 0 R /XYZ 150.705 699.536 null] +/D [863 0 R /XYZ 150.705 699.536 null] >> % 51 0 obj << -/D [858 0 R /XYZ 150.705 501.668 null] +/D [863 0 R /XYZ 150.705 501.668 null] >> % 55 0 obj << -/D [858 0 R /XYZ 150.705 291.844 null] +/D [863 0 R /XYZ 150.705 291.844 null] >> -% 857 0 obj +% 862 0 obj << -/Font << /F27 548 0 R /F30 754 0 R /F8 549 0 R /F14 757 0 R /F10 756 0 R >> +/Font << /F27 552 0 R /F30 759 0 R /F8 553 0 R /F14 762 0 R /F10 761 0 R >> /ProcSet [ /PDF /Text ] >> -% 862 0 obj +% 867 0 obj << /Type /Page -/Contents 863 0 R -/Resources 861 0 R +/Contents 868 0 R +/Resources 866 0 R /MediaBox [0 0 595.276 841.89] -/Parent 865 0 R +/Parent 870 0 R >> -% 864 0 obj +% 869 0 obj << -/D [862 0 R /XYZ 98.895 753.953 null] +/D [867 0 R /XYZ 98.895 753.953 null] >> % 59 0 obj << -/D [862 0 R /XYZ 99.895 718.084 null] +/D [867 0 R /XYZ 99.895 718.084 null] >> % 63 0 obj << -/D [862 0 R /XYZ 99.895 532.754 null] +/D [867 0 R /XYZ 99.895 532.754 null] >> % 67 0 obj << -/D [862 0 R /XYZ 99.895 279.429 null] +/D [867 0 R /XYZ 99.895 279.429 null] >> -% 861 0 obj +% 866 0 obj << -/Font << /F27 548 0 R /F30 754 0 R /F8 549 0 R >> +/Font << /F27 552 0 R /F30 759 0 R /F8 553 0 R >> /ProcSet [ /PDF /Text ] >> -% 867 0 obj +% 872 0 obj << /Type /Page -/Contents 868 0 R -/Resources 866 0 R +/Contents 873 0 R +/Resources 871 0 R /MediaBox [0 0 595.276 841.89] -/Parent 865 0 R +/Parent 870 0 R >> -% 869 0 obj +% 874 0 obj << -/D [867 0 R /XYZ 149.705 753.953 null] +/D [872 0 R /XYZ 149.705 753.953 null] >> % 71 0 obj << -/D [867 0 R /XYZ 150.705 718.084 null] +/D [872 0 R /XYZ 150.705 718.084 null] >> % 75 0 obj << -/D [867 0 R /XYZ 150.705 527.039 null] +/D [872 0 R /XYZ 150.705 527.039 null] >> % 79 0 obj << -/D [867 0 R /XYZ 150.705 421.344 null] +/D [872 0 R /XYZ 150.705 421.344 null] >> % 83 0 obj << -/D [867 0 R /XYZ 150.705 208.29 null] +/D [872 0 R /XYZ 150.705 208.29 null] >> -% 866 0 obj +% 871 0 obj << -/Font << /F27 548 0 R /F30 754 0 R /F8 549 0 R >> +/Font << /F27 552 0 R /F30 759 0 R /F8 553 0 R >> /ProcSet [ /PDF /Text ] >> -% 874 0 obj +% 879 0 obj << /Type /Page -/Contents 875 0 R -/Resources 873 0 R +/Contents 880 0 R +/Resources 878 0 R /MediaBox [0 0 595.276 841.89] -/Parent 865 0 R -/Annots [ 870 0 R 871 0 R 872 0 R ] +/Parent 870 0 R +/Annots [ 875 0 R 876 0 R 877 0 R ] >> -% 870 0 obj +% 875 0 obj << /Type /Annot /Subtype /Link @@ -6754,7 +6651,7 @@ stream /Rect [137.251 529.406 149.206 537.819] /A << /S /GoTo /D (cite.DesignPatterns) >> >> -% 871 0 obj +% 876 0 obj << /Type /Annot /Subtype /Link @@ -6762,7 +6659,7 @@ stream /Rect [218.095 529.406 230.05 537.819] /A << /S /GoTo /D (cite.Sparse03) >> >> -% 872 0 obj +% 877 0 obj << /Type /Annot /Subtype /Link @@ -6770,171 +6667,249 @@ stream /Rect [408.687 526.916 415.661 538.871] /A << /S /GoTo /D (figure.4) >> >> -% 876 0 obj +% 881 0 obj << -/D [874 0 R /XYZ 98.895 753.953 null] +/D [879 0 R /XYZ 98.895 753.953 null] >> % 87 0 obj << -/D [874 0 R /XYZ 99.895 585.335 null] +/D [879 0 R /XYZ 99.895 585.335 null] >> -% 877 0 obj +% 882 0 obj << -/D [874 0 R /XYZ 120.548 554.313 null] +/D [879 0 R /XYZ 120.548 554.313 null] >> -% 878 0 obj +% 883 0 obj << -/D [874 0 R /XYZ 404.863 414.904 null] +/D [879 0 R /XYZ 404.863 414.904 null] >> -% 879 0 obj +% 884 0 obj << -/D [874 0 R /XYZ 155.008 316.337 null] +/D [879 0 R /XYZ 155.008 316.337 null] >> -% 873 0 obj +% 878 0 obj << -/Font << /F27 548 0 R /F8 549 0 R /F30 754 0 R /F16 546 0 R >> +/Font << /F27 552 0 R /F8 553 0 R /F30 759 0 R /F16 550 0 R >> /ProcSet [ /PDF /Text ] >> -% 882 0 obj +% 887 0 obj << /Type /Page -/Contents 883 0 R -/Resources 881 0 R +/Contents 888 0 R +/Resources 886 0 R /MediaBox [0 0 595.276 841.89] -/Parent 865 0 R +/Parent 870 0 R >> -% 884 0 obj +% 889 0 obj << -/D [882 0 R /XYZ 149.705 753.953 null] +/D [887 0 R /XYZ 149.705 753.953 null] >> % 91 0 obj << -/D [882 0 R /XYZ 150.705 621.552 null] +/D [887 0 R /XYZ 150.705 621.552 null] >> % 95 0 obj << -/D [882 0 R /XYZ 150.705 605.497 null] +/D [887 0 R /XYZ 150.705 605.497 null] >> % 99 0 obj << -/D [882 0 R /XYZ 150.705 432.315 null] +/D [887 0 R /XYZ 150.705 432.315 null] >> % 103 0 obj << -/D [882 0 R /XYZ 150.705 259.133 null] +/D [887 0 R /XYZ 150.705 259.133 null] >> -% 881 0 obj +% 886 0 obj << -/Font << /F27 548 0 R /F8 549 0 R /F30 754 0 R >> +/Font << /F27 552 0 R /F8 553 0 R /F30 759 0 R >> /ProcSet [ /PDF /Text ] >> -% 886 0 obj +% 891 0 obj << /Type /Page -/Contents 887 0 R -/Resources 885 0 R +/Contents 892 0 R +/Resources 890 0 R /MediaBox [0 0 595.276 841.89] -/Parent 865 0 R +/Parent 870 0 R >> -% 888 0 obj +% 893 0 obj << -/D [886 0 R /XYZ 98.895 753.953 null] +/D [891 0 R /XYZ 98.895 753.953 null] >> -% 889 0 obj +% 894 0 obj << -/D [886 0 R /XYZ 99.895 684.42 null] +/D [891 0 R /XYZ 99.895 684.42 null] >> % 107 0 obj << -/D [886 0 R /XYZ 99.895 631.604 null] +/D [891 0 R /XYZ 99.895 631.604 null] >> % 111 0 obj << -/D [886 0 R /XYZ 99.895 444.727 null] +/D [891 0 R /XYZ 99.895 444.727 null] >> % 115 0 obj << -/D [886 0 R /XYZ 99.895 281.759 null] +/D [891 0 R /XYZ 99.895 281.759 null] >> -% 885 0 obj +% 890 0 obj << -/Font << /F27 548 0 R /F8 549 0 R /F30 754 0 R >> +/Font << /F27 552 0 R /F8 553 0 R /F30 759 0 R >> /ProcSet [ /PDF /Text ] >> -% 891 0 obj +% 896 0 obj << /Type /Page -/Contents 892 0 R -/Resources 890 0 R +/Contents 897 0 R +/Resources 895 0 R /MediaBox [0 0 595.276 841.89] -/Parent 865 0 R +/Parent 870 0 R >> -% 893 0 obj +% 898 0 obj << -/D [891 0 R /XYZ 149.705 753.953 null] +/D [896 0 R /XYZ 149.705 753.953 null] >> % 119 0 obj << -/D [891 0 R /XYZ 150.705 718.084 null] +/D [896 0 R /XYZ 150.705 718.084 null] >> % 123 0 obj << -/D [891 0 R /XYZ 150.705 515.43 null] +/D [896 0 R /XYZ 150.705 515.43 null] >> % 127 0 obj << -/D [891 0 R /XYZ 150.705 288.866 null] +/D [896 0 R /XYZ 150.705 288.866 null] >> -% 890 0 obj +% 895 0 obj << -/Font << /F27 548 0 R /F30 754 0 R /F8 549 0 R >> +/Font << /F27 552 0 R /F30 759 0 R /F8 553 0 R >> /ProcSet [ /PDF /Text ] >> -% 895 0 obj +% 900 0 obj << /Type /Page -/Contents 896 0 R -/Resources 894 0 R +/Contents 901 0 R +/Resources 899 0 R /MediaBox [0 0 595.276 841.89] -/Parent 898 0 R +/Parent 903 0 R >> -% 897 0 obj +% 902 0 obj << -/D [895 0 R /XYZ 98.895 753.953 null] +/D [900 0 R /XYZ 98.895 753.953 null] >> % 131 0 obj << -/D [895 0 R /XYZ 99.895 567.978 null] +/D [900 0 R /XYZ 99.895 567.978 null] >> % 135 0 obj << -/D [895 0 R /XYZ 99.895 242.882 null] +/D [900 0 R /XYZ 99.895 242.882 null] >> -% 894 0 obj +% 899 0 obj << -/Font << /F27 548 0 R /F8 549 0 R /F30 754 0 R >> +/Font << /F27 552 0 R /F8 553 0 R /F30 759 0 R >> /ProcSet [ /PDF /Text ] >> -% 900 0 obj -<< -/Type /Page -/Contents 901 0 R -/Resources 899 0 R -/MediaBox [0 0 595.276 841.89] -/Parent 898 0 R ->> -% 902 0 obj -<< -/D [900 0 R /XYZ 149.705 753.953 null] ->> -% 139 0 obj + +endstream +endobj +906 0 obj << -/D [900 0 R /XYZ 150.705 581.555 null] +/Length 3969 >> +stream +0 g 0 G +0 g 0 G +0 g 0 G +BT +/F27 9.9626 Tf 150.705 706.129 Td [(a)]TJ +0 g 0 G +/F8 9.9626 Tf 10.551 0 Td [(the)-333(sparse)-334(matrix.)]TJ 14.355 -11.955 Td [(A)-333(v)55(ariable)-333(of)-333(t)27(yp)-27(e)]TJ/F30 9.9626 Tf 81.943 0 Td [(psb_Tspmat_type)]TJ/F8 9.9626 Tf 78.455 0 Td [(.)]TJ -160.398 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf 23.073 0 Td [(.)]TJ +0 g 0 G +/F27 9.9626 Tf -80.358 -34.065 Td [(On)-383(Return)]TJ +0 g 0 G +0 g 0 G + 0 -20.182 Td [(a)]TJ +0 g 0 G +/F8 9.9626 Tf 10.55 0 Td [(The)-333(matrix)]TJ/F30 9.9626 Tf 52.886 0 Td [(a)]TJ/F8 9.9626 Tf 8.551 0 Td [(without)-333(zero)-334(co)-27(e\016)-1(cien)28(ts.)]TJ -47.081 -11.955 Td [(A)-333(v)55(ariable)-333(of)-333(t)27(yp)-27(e)]TJ/F30 9.9626 Tf 81.943 0 Td [(psb_Tspmat_type)]TJ/F8 9.9626 Tf 78.455 0 Td [(.)]TJ +0 g 0 G +/F27 9.9626 Tf -185.304 -20.181 Td [(info)]TJ +0 g 0 G +/F8 9.9626 Tf 23.758 0 Td [(Return)-333(co)-28(de.)]TJ/F27 9.9626 Tf -23.758 -26.236 Td [(get)]TJ +ET +q +1 0 0 1 166.827 569.799 cm +[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S +Q +BT +/F27 9.9626 Tf 170.264 569.6 Td [(diag)-383(|)-384(Get)-383(main)-383(di)-1(agonal)]TJ +0 g 0 G +0 g 0 G +/F30 9.9626 Tf 1.362 -18.508 Td [(call)-525(a%get_diag\050d,info\051)]TJ/F8 9.9626 Tf -5.977 -22.174 Td [(Returns)-333(a)-334(cop)28(y)-333(of)-333(the)-334(main)-333(diagonal.)]TJ +0 g 0 G +/F27 9.9626 Tf -14.944 -20.117 Td [(T)32(yp)-32(e:)]TJ +0 g 0 G +/F8 9.9626 Tf 33.797 0 Td [(Async)28(hronous.)]TJ +0 g 0 G +/F27 9.9626 Tf -33.797 -20.182 Td [(On)-383(En)32(try)]TJ +0 g 0 G +0 g 0 G + 0 -20.181 Td [(a)]TJ +0 g 0 G +/F8 9.9626 Tf 10.551 0 Td [(the)-333(sparse)-334(matrix.)]TJ 14.355 -11.955 Td [(A)-333(v)55(ariable)-333(of)-333(t)27(yp)-27(e)]TJ/F30 9.9626 Tf 81.943 0 Td [(psb_Tspmat_type)]TJ/F8 9.9626 Tf 78.455 0 Td [(.)]TJ -160.398 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf 23.073 0 Td [(.)]TJ +0 g 0 G +/F27 9.9626 Tf -80.358 -34.13 Td [(On)-383(Return)]TJ +0 g 0 G +0 g 0 G + 0 -20.181 Td [(d)]TJ +0 g 0 G +/F8 9.9626 Tf 11.346 0 Td [(A)-333(cop)27(y)-333(of)-333(the)-334(main)-333(diagonal.)]TJ 13.56 -11.955 Td [(A)-333(one-dimensional)-334(arra)28(y)-333(of)-333(the)-334(appropriate)-333(t)28(yp)-28(e.)]TJ +0 g 0 G +/F27 9.9626 Tf -24.906 -20.181 Td [(info)]TJ +0 g 0 G +/F8 9.9626 Tf 23.758 0 Td [(Return)-333(co)-28(de.)]TJ/F27 9.9626 Tf -23.758 -26.236 Td [(clip)]TJ +ET +q +1 0 0 1 169.214 332.044 cm +[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S +Q +BT +/F27 9.9626 Tf 172.651 331.845 Td [(diag)-383(|)-384(Cut)-383(out)-383(main)-384(diagonal)]TJ +0 g 0 G +0 g 0 G +/F30 9.9626 Tf -1.025 -18.508 Td [(call)-525(a%clip_diag\050b,info\051)]TJ/F8 9.9626 Tf -5.977 -22.174 Td [(Returns)-333(a)-334(cop)28(y)-333(of)]TJ/F30 9.9626 Tf 80.753 0 Td [(a)]TJ/F8 9.9626 Tf 8.551 0 Td [(without)-333(the)-334(main)-333(diagonal.)]TJ +0 g 0 G +/F27 9.9626 Tf -104.248 -20.118 Td [(T)32(yp)-32(e:)]TJ +0 g 0 G +/F8 9.9626 Tf 33.797 0 Td [(Async)28(hronous.)]TJ +0 g 0 G +/F27 9.9626 Tf -33.797 -20.181 Td [(On)-383(En)32(try)]TJ +0 g 0 G +0 g 0 G + 0 -20.181 Td [(a)]TJ +0 g 0 G +/F8 9.9626 Tf 10.551 0 Td [(the)-333(sparse)-334(matrix.)]TJ 14.356 -11.955 Td [(A)-333(v)55(ariable)-333(of)-333(t)28(yp)-28(e)]TJ/F30 9.9626 Tf 81.942 0 Td [(psb_Tspmat_type)]TJ/F8 9.9626 Tf 78.456 0 Td [(.)]TJ -160.398 -11.956 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.378 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf 23.073 0 Td [(.)]TJ +0 g 0 G +/F27 9.9626 Tf -80.358 -34.129 Td [(On)-383(Return)]TJ +0 g 0 G +0 g 0 G + 0 -20.181 Td [(b)]TJ +0 g 0 G +/F8 9.9626 Tf 11.346 0 Td [(A)-333(cop)27(y)-333(of)]TJ/F30 9.9626 Tf 45.386 0 Td [(a)]TJ/F8 9.9626 Tf 8.551 0 Td [(without)-333(the)-334(main)-333(diagonal.)]TJ -40.376 -11.955 Td [(A)-333(v)55(ariable)-333(of)-333(t)27(y)1(p)-28(e)]TJ/F30 9.9626 Tf 81.942 0 Td [(psb_Tspmat_type)]TJ/F8 9.9626 Tf 78.456 0 Td [(.)]TJ +0 g 0 G +/F27 9.9626 Tf -185.305 -20.181 Td [(info)]TJ +0 g 0 G +/F8 9.9626 Tf 23.758 0 Td [(Return)-333(co)-28(de.)]TJ +0 g 0 G + 143.116 -29.888 Td [(20)]TJ +0 g 0 G +ET endstream endobj -906 0 obj +911 0 obj << /Length 4876 >> @@ -7013,7 +6988,7 @@ ET endstream endobj -911 0 obj +916 0 obj << /Length 5834 >> @@ -7243,7 +7218,7 @@ ET endstream endobj -916 0 obj +921 0 obj << /Length 5638 >> @@ -7375,7 +7350,7 @@ ET endstream endobj -925 0 obj +930 0 obj << /Length 4260 >> @@ -7453,7 +7428,7 @@ ET endstream endobj -932 0 obj +937 0 obj << /Length 3941 >> @@ -7550,7 +7525,7 @@ ET endstream endobj -940 0 obj +945 0 obj << /Length 3208 >> @@ -7644,7 +7619,7 @@ ET endstream endobj -944 0 obj +949 0 obj << /Length 157 >> @@ -7660,7 +7635,7 @@ ET endstream endobj -955 0 obj +960 0 obj << /Length 7321 >> @@ -7841,7 +7816,7 @@ ET endstream endobj -961 0 obj +966 0 obj << /Length 2659 >> @@ -7915,7 +7890,7 @@ ET endstream endobj -971 0 obj +976 0 obj << /Length 7891 >> @@ -8109,7 +8084,7 @@ ET endstream endobj -976 0 obj +981 0 obj << /Length 624 >> @@ -8128,7 +8103,7 @@ ET endstream endobj -987 0 obj +992 0 obj << /Length 8416 >> @@ -8322,7 +8297,7 @@ ET endstream endobj -992 0 obj +997 0 obj << /Length 624 >> @@ -8341,7 +8316,7 @@ ET endstream endobj -999 0 obj +1004 0 obj << /Length 7095 >> @@ -8502,56 +8477,47 @@ ET endstream endobj -903 0 obj +908 0 obj << /Type /ObjStm /N 100 -/First 885 -/Length 10999 +/First 886 +/Length 10973 >> stream -143 0 899 55 905 147 907 261 147 317 151 373 904 429 910 521 912 635 155 692 -159 749 163 805 909 862 915 954 908 1096 913 1243 917 1389 167 1445 918 1501 919 1557 -920 1613 171 1670 175 1726 914 1782 924 1887 921 2029 922 2174 926 2319 179 2376 183 2433 -923 2490 931 2582 928 2716 933 2862 187 2918 191 2974 195 3030 934 3086 936 3143 930 3200 -939 3318 929 3452 941 3599 199 3656 938 3713 943 3818 945 3932 204 3988 942 4044 954 4123 -946 4297 947 4442 948 4585 949 4730 950 4875 951 5018 956 5163 208 5220 927 5277 953 5333 -960 5464 952 5614 957 5760 958 5902 962 6047 959 6103 970 6208 963 6382 964 6525 965 6670 -966 6813 967 6958 968 7104 972 7248 212 7305 973 7362 969 7419 975 7563 977 7677 974 7733 -986 7812 979 7986 980 8129 981 8273 982 8416 983 8561 984 8707 988 8851 216 8908 989 8965 -985 9022 991 9166 993 9280 990 9336 998 9415 994 9565 995 9708 996 9853 1000 9999 220 10057 -% 143 0 obj -<< -/D [900 0 R /XYZ 150.705 343.8 null] ->> -% 899 0 obj -<< -/Font << /F27 548 0 R /F8 549 0 R /F30 754 0 R >> -/ProcSet [ /PDF /Text ] ->> +905 0 907 114 139 171 143 228 904 283 910 375 912 489 147 545 151 601 909 657 +915 749 917 863 155 920 159 977 163 1033 914 1090 920 1182 913 1324 918 1471 922 1617 +167 1673 923 1729 924 1785 925 1841 171 1898 175 1954 919 2010 929 2115 926 2257 927 2402 +931 2547 179 2604 183 2661 928 2718 936 2810 933 2944 938 3090 187 3146 191 3202 195 3258 +939 3314 941 3371 935 3428 944 3546 934 3680 946 3827 199 3884 943 3941 948 4046 950 4160 +204 4216 947 4272 959 4351 951 4525 952 4670 953 4813 954 4958 955 5103 956 5246 961 5391 +208 5448 932 5505 958 5561 965 5692 957 5842 962 5988 963 6130 967 6275 964 6331 975 6436 +968 6610 969 6753 970 6898 971 7041 972 7186 973 7332 977 7476 212 7533 978 7590 974 7647 +980 7791 982 7905 979 7961 991 8040 984 8214 985 8357 986 8501 987 8644 988 8789 989 8935 +993 9079 216 9136 994 9193 990 9250 996 9394 998 9508 995 9564 1003 9643 999 9798 1000 9941 % 905 0 obj << /Type /Page /Contents 906 0 R /Resources 904 0 R /MediaBox [0 0 595.276 841.89] -/Parent 898 0 R +/Parent 903 0 R >> % 907 0 obj << -/D [905 0 R /XYZ 98.895 753.953 null] +/D [905 0 R /XYZ 149.705 753.953 null] >> -% 147 0 obj +% 139 0 obj << -/D [905 0 R /XYZ 99.895 718.084 null] +/D [905 0 R /XYZ 150.705 581.555 null] >> -% 151 0 obj +% 143 0 obj << -/D [905 0 R /XYZ 99.895 375.466 null] +/D [905 0 R /XYZ 150.705 343.8 null] >> % 904 0 obj << -/Font << /F27 548 0 R /F30 754 0 R /F8 549 0 R >> +/Font << /F27 552 0 R /F8 553 0 R /F30 759 0 R >> /ProcSet [ /PDF /Text ] >> % 910 0 obj @@ -8560,27 +8526,23 @@ stream /Contents 911 0 R /Resources 909 0 R /MediaBox [0 0 595.276 841.89] -/Parent 898 0 R +/Parent 903 0 R >> % 912 0 obj << -/D [910 0 R /XYZ 149.705 753.953 null] +/D [910 0 R /XYZ 98.895 753.953 null] >> -% 155 0 obj -<< -/D [910 0 R /XYZ 150.705 633.209 null] ->> -% 159 0 obj +% 147 0 obj << -/D [910 0 R /XYZ 150.705 493.45 null] +/D [910 0 R /XYZ 99.895 718.084 null] >> -% 163 0 obj +% 151 0 obj << -/D [910 0 R /XYZ 150.705 286.532 null] +/D [910 0 R /XYZ 99.895 375.466 null] >> % 909 0 obj << -/Font << /F27 548 0 R /F8 549 0 R /F30 754 0 R >> +/Font << /F27 552 0 R /F30 759 0 R /F8 553 0 R >> /ProcSet [ /PDF /Text ] >> % 915 0 obj @@ -8589,68 +8551,97 @@ stream /Contents 916 0 R /Resources 914 0 R /MediaBox [0 0 595.276 841.89] -/Parent 898 0 R -/Annots [ 908 0 R 913 0 R ] +/Parent 903 0 R >> -% 908 0 obj +% 917 0 obj << -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [199.382 648.941 206.356 659.789] -/A << /S /GoTo /D (section.6) >> +/D [915 0 R /XYZ 149.705 753.953 null] >> -% 913 0 obj +% 155 0 obj << -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [292.368 613.075 299.342 623.923] -/A << /S /GoTo /D (figure.5) >> +/D [915 0 R /XYZ 150.705 633.209 null] >> -% 917 0 obj +% 159 0 obj << -/D [915 0 R /XYZ 98.895 753.953 null] +/D [915 0 R /XYZ 150.705 493.45 null] >> -% 167 0 obj +% 163 0 obj << -/D [915 0 R /XYZ 99.895 716.092 null] +/D [915 0 R /XYZ 150.705 286.532 null] +>> +% 914 0 obj +<< +/Font << /F27 552 0 R /F8 553 0 R /F30 759 0 R >> +/ProcSet [ /PDF /Text ] +>> +% 920 0 obj +<< +/Type /Page +/Contents 921 0 R +/Resources 919 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 903 0 R +/Annots [ 913 0 R 918 0 R ] +>> +% 913 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [199.382 648.941 206.356 659.789] +/A << /S /GoTo /D (section.6) >> >> % 918 0 obj << -/D [915 0 R /XYZ 121.151 687.74 null] +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [292.368 613.075 299.342 623.923] +/A << /S /GoTo /D (figure.5) >> >> -% 919 0 obj +% 922 0 obj << -/D [915 0 R /XYZ 342.09 675.784 null] +/D [920 0 R /XYZ 98.895 753.953 null] >> -% 920 0 obj +% 167 0 obj +<< +/D [920 0 R /XYZ 99.895 716.092 null] +>> +% 923 0 obj +<< +/D [920 0 R /XYZ 121.151 687.74 null] +>> +% 924 0 obj << -/D [915 0 R /XYZ 157.678 325.579 null] +/D [920 0 R /XYZ 342.09 675.784 null] +>> +% 925 0 obj +<< +/D [920 0 R /XYZ 157.678 325.579 null] >> % 171 0 obj << -/D [915 0 R /XYZ 99.895 287.134 null] +/D [920 0 R /XYZ 99.895 287.134 null] >> % 175 0 obj << -/D [915 0 R /XYZ 99.895 270.681 null] +/D [920 0 R /XYZ 99.895 270.681 null] >> -% 914 0 obj +% 919 0 obj << -/Font << /F16 546 0 R /F8 549 0 R /F30 754 0 R /F27 548 0 R >> +/Font << /F16 550 0 R /F8 553 0 R /F30 759 0 R /F27 552 0 R >> /ProcSet [ /PDF /Text ] >> -% 924 0 obj +% 929 0 obj << /Type /Page -/Contents 925 0 R -/Resources 923 0 R +/Contents 930 0 R +/Resources 928 0 R /MediaBox [0 0 595.276 841.89] -/Parent 898 0 R -/Annots [ 921 0 R 922 0 R ] +/Parent 903 0 R +/Annots [ 926 0 R 927 0 R ] >> -% 921 0 obj +% 926 0 obj << /Type /Annot /Subtype /Link @@ -8658,7 +8649,7 @@ stream /Rect [432.897 353.959 439.871 364.807] /A << /S /GoTo /D (table.1) >> >> -% 922 0 obj +% 927 0 obj << /Type /Annot /Subtype /Link @@ -8666,33 +8657,33 @@ stream /Rect [432.897 221.094 439.871 231.942] /A << /S /GoTo /D (table.1) >> >> -% 926 0 obj +% 931 0 obj << -/D [924 0 R /XYZ 149.705 753.953 null] +/D [929 0 R /XYZ 149.705 753.953 null] >> % 179 0 obj << -/D [924 0 R /XYZ 150.705 718.084 null] +/D [929 0 R /XYZ 150.705 718.084 null] >> % 183 0 obj << -/D [924 0 R /XYZ 150.705 557.349 null] +/D [929 0 R /XYZ 150.705 557.349 null] >> -% 923 0 obj +% 928 0 obj << -/Font << /F27 548 0 R /F30 754 0 R /F8 549 0 R >> +/Font << /F27 552 0 R /F30 759 0 R /F8 553 0 R >> /ProcSet [ /PDF /Text ] >> -% 931 0 obj +% 936 0 obj << /Type /Page -/Contents 932 0 R -/Resources 930 0 R +/Contents 937 0 R +/Resources 935 0 R /MediaBox [0 0 595.276 841.89] -/Parent 937 0 R -/Annots [ 928 0 R ] +/Parent 942 0 R +/Annots [ 933 0 R ] >> -% 928 0 obj +% 933 0 obj << /Type /Annot /Subtype /Link @@ -8700,45 +8691,45 @@ stream /Rect [126.875 253.666 133.849 264.791] /A << /S /GoTo /D (figure.6) >> >> -% 933 0 obj +% 938 0 obj << -/D [931 0 R /XYZ 98.895 753.953 null] +/D [936 0 R /XYZ 98.895 753.953 null] >> % 187 0 obj << -/D [931 0 R /XYZ 99.895 718.084 null] +/D [936 0 R /XYZ 99.895 718.084 null] >> % 191 0 obj << -/D [931 0 R /XYZ 99.895 526.617 null] +/D [936 0 R /XYZ 99.895 526.617 null] >> % 195 0 obj << -/D [931 0 R /XYZ 99.895 326.261 null] +/D [936 0 R /XYZ 99.895 326.261 null] >> -% 934 0 obj +% 939 0 obj << -/D [931 0 R /XYZ 257.563 268.831 null] +/D [936 0 R /XYZ 257.563 268.831 null] >> -% 936 0 obj +% 941 0 obj << -/D [931 0 R /XYZ 155.478 146.785 null] +/D [936 0 R /XYZ 155.478 146.785 null] >> -% 930 0 obj +% 935 0 obj << -/Font << /F27 548 0 R /F30 754 0 R /F8 549 0 R /F16 546 0 R /F46 935 0 R >> +/Font << /F27 552 0 R /F30 759 0 R /F8 553 0 R /F16 550 0 R /F46 940 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 937 0 R -/Annots [ 929 0 R ] +/Parent 942 0 R +/Annots [ 934 0 R ] >> -% 929 0 obj +% 934 0 obj << /Type /Annot /Subtype /Link @@ -8746,50 +8737,50 @@ stream /Rect [297.652 684.806 304.626 695.654] /A << /S /GoTo /D (section.6) >> >> -% 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] >> % 199 0 obj << -/D [939 0 R /XYZ 150.705 716.092 null] +/D [944 0 R /XYZ 150.705 716.092 null] >> -% 938 0 obj +% 943 0 obj << -/Font << /F16 546 0 R /F8 549 0 R /F30 754 0 R /F27 548 0 R >> +/Font << /F16 550 0 R /F8 553 0 R /F30 759 0 R /F27 552 0 R >> /ProcSet [ /PDF /Text ] >> -% 943 0 obj +% 948 0 obj << /Type /Page -/Contents 944 0 R -/Resources 942 0 R +/Contents 949 0 R +/Resources 947 0 R /MediaBox [0 0 595.276 841.89] -/Parent 937 0 R +/Parent 942 0 R >> -% 945 0 obj +% 950 0 obj << -/D [943 0 R /XYZ 98.895 753.953 null] +/D [948 0 R /XYZ 98.895 753.953 null] >> % 204 0 obj << -/D [943 0 R /XYZ 99.895 716.092 null] +/D [948 0 R /XYZ 99.895 716.092 null] >> -% 942 0 obj +% 947 0 obj << -/Font << /F16 546 0 R /F8 549 0 R >> +/Font << /F16 550 0 R /F8 553 0 R >> /ProcSet [ /PDF /Text ] >> -% 954 0 obj +% 959 0 obj << /Type /Page -/Contents 955 0 R -/Resources 953 0 R +/Contents 960 0 R +/Resources 958 0 R /MediaBox [0 0 595.276 841.89] -/Parent 937 0 R -/Annots [ 946 0 R 947 0 R 948 0 R 949 0 R 950 0 R 951 0 R ] +/Parent 942 0 R +/Annots [ 951 0 R 952 0 R 953 0 R 954 0 R 955 0 R 956 0 R ] >> -% 946 0 obj +% 951 0 obj << /Type /Annot /Subtype /Link @@ -8797,7 +8788,7 @@ stream /Rect [432.897 401.949 439.871 412.798] /A << /S /GoTo /D (table.1) >> >> -% 947 0 obj +% 952 0 obj << /Type /Annot /Subtype /Link @@ -8805,7 +8796,7 @@ stream /Rect [419.358 333.522 495.412 344.647] /A << /S /GoTo /D (vdata) >> >> -% 948 0 obj +% 953 0 obj << /Type /Annot /Subtype /Link @@ -8813,7 +8804,7 @@ stream /Rect [379.142 321.844 386.116 332.692] /A << /S /GoTo /D (table.1) >> >> -% 949 0 obj +% 954 0 obj << /Type /Annot /Subtype /Link @@ -8821,7 +8812,7 @@ stream /Rect [432.897 241.738 439.871 252.586] /A << /S /GoTo /D (table.1) >> >> -% 950 0 obj +% 955 0 obj << /Type /Annot /Subtype /Link @@ -8829,7 +8820,7 @@ stream /Rect [419.358 173.311 495.412 184.436] /A << /S /GoTo /D (vdata) >> >> -% 951 0 obj +% 956 0 obj << /Type /Annot /Subtype /Link @@ -8837,33 +8828,33 @@ stream /Rect [396.435 161.632 403.409 172.481] /A << /S /GoTo /D (table.1) >> >> -% 956 0 obj +% 961 0 obj << -/D [954 0 R /XYZ 149.705 753.953 null] +/D [959 0 R /XYZ 149.705 753.953 null] >> % 208 0 obj << -/D [954 0 R /XYZ 150.705 720.077 null] +/D [959 0 R /XYZ 150.705 720.077 null] >> -% 927 0 obj +% 932 0 obj << -/D [954 0 R /XYZ 318.451 539.42 null] +/D [959 0 R /XYZ 318.451 539.42 null] >> -% 953 0 obj +% 958 0 obj << -/Font << /F16 546 0 R /F8 549 0 R /F11 740 0 R /F14 757 0 R /F30 754 0 R /F27 548 0 R >> +/Font << /F16 550 0 R /F8 553 0 R /F11 745 0 R /F14 762 0 R /F30 759 0 R /F27 552 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 937 0 R -/Annots [ 952 0 R 957 0 R 958 0 R ] +/Parent 942 0 R +/Annots [ 957 0 R 962 0 R 963 0 R ] >> -% 952 0 obj +% 957 0 obj << /Type /Annot /Subtype /Link @@ -8871,7 +8862,7 @@ stream /Rect [259.464 679.008 326.522 690.133] /A << /S /GoTo /D (descdata) >> >> -% 957 0 obj +% 962 0 obj << /Type /Annot /Subtype /Link @@ -8879,7 +8870,7 @@ stream /Rect [368.549 589.345 444.603 600.47] /A << /S /GoTo /D (vdata) >> >> -% 958 0 obj +% 963 0 obj << /Type /Annot /Subtype /Link @@ -8887,25 +8878,25 @@ stream /Rect [345.558 577.666 352.532 588.514] /A << /S /GoTo /D (table.1) >> >> -% 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 << /F8 549 0 R /F27 548 0 R /F30 754 0 R /F11 740 0 R >> +/Font << /F8 553 0 R /F27 552 0 R /F30 759 0 R /F11 745 0 R >> /ProcSet [ /PDF /Text ] >> -% 970 0 obj +% 975 0 obj << /Type /Page -/Contents 971 0 R -/Resources 969 0 R +/Contents 976 0 R +/Resources 974 0 R /MediaBox [0 0 595.276 841.89] -/Parent 937 0 R -/Annots [ 963 0 R 964 0 R 965 0 R 966 0 R 967 0 R 968 0 R ] +/Parent 942 0 R +/Annots [ 968 0 R 969 0 R 970 0 R 971 0 R 972 0 R 973 0 R ] >> -% 963 0 obj +% 968 0 obj << /Type /Annot /Subtype /Link @@ -8913,7 +8904,7 @@ stream /Rect [419.358 361.842 495.412 372.967] /A << /S /GoTo /D (vdata) >> >> -% 964 0 obj +% 969 0 obj << /Type /Annot /Subtype /Link @@ -8921,7 +8912,7 @@ stream /Rect [379.142 350.163 386.116 361.011] /A << /S /GoTo /D (table.2) >> >> -% 965 0 obj +% 970 0 obj << /Type /Annot /Subtype /Link @@ -8929,7 +8920,7 @@ stream /Rect [419.358 270.772 495.412 281.897] /A << /S /GoTo /D (vdata) >> >> -% 966 0 obj +% 971 0 obj << /Type /Annot /Subtype /Link @@ -8937,7 +8928,7 @@ stream /Rect [379.353 259.094 386.327 269.942] /A << /S /GoTo /D (table.2) >> >> -% 967 0 obj +% 972 0 obj << /Type /Annot /Subtype /Link @@ -8945,7 +8936,7 @@ stream /Rect [310.273 179.703 377.331 190.828] /A << /S /GoTo /D (descdata) >> >> -% 968 0 obj +% 973 0 obj << /Type /Annot /Subtype /Link @@ -8953,50 +8944,50 @@ stream /Rect [432.897 117.392 439.871 128.24] /A << /S /GoTo /D (table.2) >> >> -% 972 0 obj +% 977 0 obj << -/D [970 0 R /XYZ 149.705 753.953 null] +/D [975 0 R /XYZ 149.705 753.953 null] >> % 212 0 obj << -/D [970 0 R /XYZ 150.705 720.077 null] +/D [975 0 R /XYZ 150.705 720.077 null] >> -% 973 0 obj +% 978 0 obj << -/D [970 0 R /XYZ 318.451 495.047 null] +/D [975 0 R /XYZ 318.451 495.047 null] >> -% 969 0 obj +% 974 0 obj << -/Font << /F16 546 0 R /F8 549 0 R /F11 740 0 R /F14 757 0 R /F10 756 0 R /F30 754 0 R /F27 548 0 R >> +/Font << /F16 550 0 R /F8 553 0 R /F11 745 0 R /F14 762 0 R /F10 761 0 R /F30 759 0 R /F27 552 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 978 0 R +/Parent 983 0 R >> -% 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] >> -% 974 0 obj +% 979 0 obj << -/Font << /F27 548 0 R /F8 549 0 R >> +/Font << /F27 552 0 R /F8 553 0 R >> /ProcSet [ /PDF /Text ] >> -% 986 0 obj +% 991 0 obj << /Type /Page -/Contents 987 0 R -/Resources 985 0 R +/Contents 992 0 R +/Resources 990 0 R /MediaBox [0 0 595.276 841.89] -/Parent 978 0 R -/Annots [ 979 0 R 980 0 R 981 0 R 982 0 R 983 0 R 984 0 R ] +/Parent 983 0 R +/Annots [ 984 0 R 985 0 R 986 0 R 987 0 R 988 0 R 989 0 R ] >> -% 979 0 obj +% 984 0 obj << /Type /Annot /Subtype /Link @@ -9004,7 +8995,7 @@ stream /Rect [419.358 382.111 495.412 393.236] /A << /S /GoTo /D (vdata) >> >> -% 980 0 obj +% 985 0 obj << /Type /Annot /Subtype /Link @@ -9012,7 +9003,7 @@ stream /Rect [379.142 370.432 386.116 381.28] /A << /S /GoTo /D (table.3) >> >> -% 981 0 obj +% 986 0 obj << /Type /Annot /Subtype /Link @@ -9020,7 +9011,7 @@ stream /Rect [419.358 291.951 495.412 303.076] /A << /S /GoTo /D (vdata) >> >> -% 982 0 obj +% 987 0 obj << /Type /Annot /Subtype /Link @@ -9028,7 +9019,7 @@ stream /Rect [379.353 280.273 386.327 291.121] /A << /S /GoTo /D (table.3) >> >> -% 983 0 obj +% 988 0 obj << /Type /Annot /Subtype /Link @@ -9036,7 +9027,7 @@ stream /Rect [310.273 201.792 377.331 212.917] /A << /S /GoTo /D (descdata) >> >> -% 984 0 obj +% 989 0 obj << /Type /Annot /Subtype /Link @@ -9044,50 +9035,50 @@ stream /Rect [202.013 119.329 208.986 128.24] /A << /S /GoTo /D (table.2) >> >> -% 988 0 obj +% 993 0 obj << -/D [986 0 R /XYZ 149.705 753.953 null] +/D [991 0 R /XYZ 149.705 753.953 null] >> % 216 0 obj << -/D [986 0 R /XYZ 150.705 720.077 null] +/D [991 0 R /XYZ 150.705 720.077 null] >> -% 989 0 obj +% 994 0 obj << -/D [986 0 R /XYZ 318.451 510.309 null] +/D [991 0 R /XYZ 318.451 510.309 null] >> -% 985 0 obj +% 990 0 obj << -/Font << /F16 546 0 R /F8 549 0 R /F11 740 0 R /F14 757 0 R /F10 756 0 R /F30 754 0 R /F27 548 0 R >> +/Font << /F16 550 0 R /F8 553 0 R /F11 745 0 R /F14 762 0 R /F10 761 0 R /F30 759 0 R /F27 552 0 R >> /ProcSet [ /PDF /Text ] >> -% 991 0 obj +% 996 0 obj << /Type /Page -/Contents 992 0 R -/Resources 990 0 R +/Contents 997 0 R +/Resources 995 0 R /MediaBox [0 0 595.276 841.89] -/Parent 978 0 R +/Parent 983 0 R >> -% 993 0 obj +% 998 0 obj << -/D [991 0 R /XYZ 98.895 753.953 null] +/D [996 0 R /XYZ 98.895 753.953 null] >> -% 990 0 obj +% 995 0 obj << -/Font << /F27 548 0 R /F8 549 0 R >> +/Font << /F27 552 0 R /F8 553 0 R >> /ProcSet [ /PDF /Text ] >> -% 998 0 obj +% 1003 0 obj << /Type /Page -/Contents 999 0 R -/Resources 997 0 R +/Contents 1004 0 R +/Resources 1002 0 R /MediaBox [0 0 595.276 841.89] -/Parent 978 0 R -/Annots [ 994 0 R 995 0 R 996 0 R ] +/Parent 983 0 R +/Annots [ 999 0 R 1000 0 R 1001 0 R ] >> -% 994 0 obj +% 999 0 obj << /Type /Annot /Subtype /Link @@ -9095,7 +9086,7 @@ stream /Rect [419.358 338.197 495.412 349.322] /A << /S /GoTo /D (vdata) >> >> -% 995 0 obj +% 1000 0 obj << /Type /Annot /Subtype /Link @@ -9103,26 +9094,10 @@ stream /Rect [376.221 326.519 383.195 337.367] /A << /S /GoTo /D (table.4) >> >> -% 996 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [310.273 258.808 377.331 269.933] -/A << /S /GoTo /D (descdata) >> ->> -% 1000 0 obj -<< -/D [998 0 R /XYZ 149.705 753.953 null] ->> -% 220 0 obj -<< -/D [998 0 R /XYZ 150.705 720.077 null] ->> endstream endobj -1008 0 obj +1013 0 obj << /Length 6326 >> @@ -9283,7 +9258,7 @@ ET endstream endobj -1016 0 obj +1021 0 obj << /Length 6729 >> @@ -9444,7 +9419,7 @@ ET endstream endobj -1024 0 obj +1029 0 obj << /Length 7318 >> @@ -9601,7 +9576,7 @@ ET endstream endobj -1030 0 obj +1035 0 obj << /Length 625 >> @@ -9620,7 +9595,7 @@ ET endstream endobj -1037 0 obj +1042 0 obj << /Length 6774 >> @@ -9795,7 +9770,7 @@ ET endstream endobj -1045 0 obj +1050 0 obj << /Length 6162 >> @@ -9956,7 +9931,7 @@ ET endstream endobj -1052 0 obj +1057 0 obj << /Length 5516 >> @@ -10110,7 +10085,7 @@ ET endstream endobj -1059 0 obj +1064 0 obj << /Length 5523 >> @@ -10264,7 +10239,7 @@ ET endstream endobj -1070 0 obj +1075 0 obj << /Length 7328 >> @@ -10439,7 +10414,7 @@ ET endstream endobj -1086 0 obj +1091 0 obj << /Length 6975 >> @@ -10569,7 +10544,7 @@ ET endstream endobj -1092 0 obj +1097 0 obj << /Length 6787 >> @@ -10681,7 +10656,7 @@ ET endstream endobj -1103 0 obj +1108 0 obj << /Length 7789 >> @@ -10839,102 +10814,59 @@ ET endstream endobj -1109 0 obj -<< -/Length 4663 ->> -stream -0 g 0 G -0 g 0 G -BT -/F8 9.9626 Tf 124.802 706.129 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(global)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(optional)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.956 Td [(Default:)]TJ/F11 9.9626 Tf 39.436 0 Td [(unitd)]TJ/F8 9.9626 Tf 26.665 0 Td [(=)]TJ/F11 9.9626 Tf 10.516 0 Td [(U)]TJ/F8 9.9626 Tf -76.617 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(c)28(haracter)-333(v)55(ariable.)]TJ -0 g 0 G -/F27 9.9626 Tf -24.907 -19.925 Td [(c)32(hoice)]TJ -0 g 0 G -/F8 9.9626 Tf 35.375 0 Td [(sp)-28(eci\014es)-333(the)-334(u)1(p)-28(date)-334(of)-333(o)28(v)28(erlap)-334(elemen)28(ts)-333(to)-334(b)-27(e)-334(p)-27(erformed)-334(on)-333(exit:)]TJ -0 g 0 G -0 g 0 G -/F30 9.9626 Tf -5.487 -19.925 Td [(psb_none_)]TJ -0 g 0 G -0 g 0 G - 0 -15.941 Td [(psb_sum_)]TJ -0 g 0 G -0 g 0 G - 0 -15.94 Td [(psb_avg_)]TJ -0 g 0 G -0 g 0 G - 0 -15.94 Td [(psb_square_root_)]TJ/F8 9.9626 Tf -4.981 -19.925 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(global)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(optional)]TJ/F8 9.9626 Tf -29.611 -11.956 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.955 Td [(Default:)]TJ/F30 9.9626 Tf 39.436 0 Td [(psb_avg_)]TJ/F8 9.9626 Tf -39.436 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(in)28(teger)-333(v)55(ariable.)]TJ -0 g 0 G -/F27 9.9626 Tf -24.907 -19.925 Td [(diag)]TJ -0 g 0 G -/F8 9.9626 Tf 25.827 0 Td [(the)-333(diagonal)-334(scaling)-333(matrix.)]TJ -0.92 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.956 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(optional)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.955 Td [(Default:)]TJ/F11 9.9626 Tf 39.436 0 Td [(diag)]TJ/F8 9.9626 Tf 18.993 0 Td [(\0501\051)-278(=)-277(1\050)]TJ/F11 9.9626 Tf 34.869 0 Td [(noscal)-20(ing)]TJ/F8 9.9626 Tf 42.747 0 Td [(\051)]TJ -136.045 -11.955 Td [(Sp)-28(eci\014ed)-382(as:)-543(a)-382(rank)-382(one)-383(arra)28(y)-382(con)27(taining)-382(n)28(um)28(b)-28(ers)-383(of)-382(the)-382(t)27(yp)-27(e)-383(indicated)]TJ 0 -11.955 Td [(in)-333(T)83(able)]TJ -0 0 1 rg 0 0 1 RG - [-333(13)]TJ -0 g 0 G - [(.)]TJ -0 g 0 G -/F27 9.9626 Tf -24.907 -19.926 Td [(w)32(ork)]TJ -0 g 0 G -/F8 9.9626 Tf 29.432 0 Td [(a)-333(w)27(ork)-333(arra)28(y)83(.)]TJ -4.525 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(optional)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(inout)]TJ/F8 9.9626 Tf 26.096 0 Td [(.)]TJ -59.582 -11.955 Td [(Sp)-28(eci\014ed)-377(as:)-531(a)-377(rank)-376(one)-377(arra)28(y)-377(of)-377(the)-377(same)-377(t)28(yp)-28(e)-377(of)]TJ/F11 9.9626 Tf 225.953 0 Td [(x)]TJ/F8 9.9626 Tf 9.448 0 Td [(with)-377(the)-377(T)84(AR)28(GET)]TJ -235.401 -11.955 Td [(attribute.)]TJ -0 g 0 G -/F27 9.9626 Tf -24.907 -19.926 Td [(On)-383(Return)]TJ -0 g 0 G -0 g 0 G - 0 -19.925 Td [(y)]TJ -0 g 0 G -/F8 9.9626 Tf 11.028 0 Td [(the)-333(lo)-28(cal)-333(p)-28(ortion)-333(of)-334(global)-333(dense)-333(matrix)]TJ/F11 9.9626 Tf 176.118 0 Td [(y)]TJ/F8 9.9626 Tf 5.242 0 Td [(.)]TJ -167.481 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.956 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(inout)]TJ/F8 9.9626 Tf 26.096 0 Td [(.)]TJ -59.582 -11.955 Td [(Sp)-28(eci\014ed)-474(as:)-727(an)-475(arra)28(y)-474(of)-475(rank)-475(on)1(e)-475(or)-475(t)28(w)28(o)-475(con)28(taining)-474(n)27(u)1(m)27(b)-27(e)-1(r)1(s)-475(of)-475(t)28(yp)-28(e)]TJ 0 -11.955 Td [(sp)-28(eci\014ed)-333(in)-333(T)83(able)]TJ -0 0 1 rg 0 0 1 RG - [-333(13)]TJ -0 g 0 G - [(.)]TJ -0 g 0 G -/F27 9.9626 Tf -24.907 -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.956 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(out)]TJ/F8 9.9626 Tf 16.549 0 Td [(.)]TJ -50.035 -11.955 Td [(An)-333(in)28(tege)-1(r)-333(v)56(alue;)-334(0)-333(means)-333(no)-334(error)-333(has)-333(b)-28(een)-333(detecte)-1(d)1(.)]TJ -0 g 0 G - 141.968 -73.723 Td [(47)]TJ -0 g 0 G -ET - -endstream -endobj -1002 0 obj +1007 0 obj << /Type /ObjStm /N 100 -/First 989 -/Length 12694 +/First 990 +/Length 12534 >> stream -1001 0 997 58 1007 202 1003 358 1004 502 1005 648 1009 794 224 852 1010 909 1006 968 -1015 1113 1011 1269 1012 1413 1013 1559 1017 1706 228 1765 1018 1823 1014 1882 1023 2039 1019 2196 -1020 2339 1021 2484 1025 2630 232 2688 1026 2745 1022 2804 1029 2961 1031 3079 1028 3138 1036 3218 -1032 3375 1033 3519 1034 3665 1038 3812 236 3870 1039 3927 1035 3986 1044 4131 1040 4288 1041 4432 -1042 4577 1046 4724 240 4783 1047 4841 1043 4900 1051 5044 1048 5192 1049 5337 1053 5484 244 5542 -1054 5599 1050 5658 1058 5802 1055 5950 1056 6095 1060 6242 248 6301 1062 6359 1057 6418 1069 6564 -1063 6730 1064 6877 1065 7022 1066 7166 1071 7313 252 7371 1072 7428 1073 7487 1074 7546 1075 7605 -1068 7664 1085 7821 1067 8023 1077 8170 1078 8314 1079 8461 1080 8608 1081 8759 1082 8910 1083 9061 -1087 9208 1084 9267 1091 9373 1088 9512 1093 9658 256 9716 1094 9773 1090 9832 1102 10003 1089 10196 -1095 10344 1096 10488 1097 10635 1098 10782 1099 10926 1100 11073 1104 11219 1101 11278 1108 11410 1105 11558 +1001 0 1005 147 220 206 1006 264 1002 323 1012 468 1008 624 1009 768 1010 914 1014 1060 +224 1118 1015 1175 1011 1234 1020 1379 1016 1535 1017 1679 1018 1825 1022 1972 228 2031 1023 2089 +1019 2148 1028 2305 1024 2462 1025 2605 1026 2750 1030 2896 232 2954 1031 3011 1027 3070 1034 3227 +1036 3345 1033 3404 1041 3484 1037 3641 1038 3785 1039 3931 1043 4078 236 4136 1044 4193 1040 4252 +1049 4397 1045 4554 1046 4698 1047 4843 1051 4990 240 5049 1052 5107 1048 5166 1056 5310 1053 5458 +1054 5603 1058 5750 244 5808 1059 5865 1055 5924 1063 6068 1060 6216 1061 6361 1065 6508 248 6567 +1067 6625 1062 6684 1074 6830 1068 6996 1069 7143 1070 7288 1071 7432 1076 7579 252 7637 1077 7694 +1078 7753 1079 7812 1080 7871 1073 7930 1090 8087 1072 8289 1082 8436 1083 8580 1084 8727 1085 8874 +1086 9025 1087 9176 1088 9327 1092 9474 1089 9533 1096 9639 1093 9778 1098 9924 256 9982 1099 10039 +1095 10098 1107 10269 1094 10462 1100 10610 1101 10754 1102 10901 1103 11048 1104 11192 1105 11339 1109 11485 % 1001 0 obj << -/D [998 0 R /XYZ 318.451 472.916 null] +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [310.273 258.808 377.331 269.933] +/A << /S /GoTo /D (descdata) >> +>> +% 1005 0 obj +<< +/D [1003 0 R /XYZ 149.705 753.953 null] +>> +% 220 0 obj +<< +/D [1003 0 R /XYZ 150.705 720.077 null] +>> +% 1006 0 obj +<< +/D [1003 0 R /XYZ 318.451 472.916 null] >> -% 997 0 obj +% 1002 0 obj << -/Font << /F16 546 0 R /F8 549 0 R /F11 740 0 R /F14 757 0 R /F10 756 0 R /F30 754 0 R /F27 548 0 R >> +/Font << /F16 550 0 R /F8 553 0 R /F11 745 0 R /F14 762 0 R /F10 761 0 R /F30 759 0 R /F27 552 0 R >> /ProcSet [ /PDF /Text ] >> -% 1007 0 obj +% 1012 0 obj << /Type /Page -/Contents 1008 0 R -/Resources 1006 0 R +/Contents 1013 0 R +/Resources 1011 0 R /MediaBox [0 0 595.276 841.89] -/Parent 978 0 R -/Annots [ 1003 0 R 1004 0 R 1005 0 R ] +/Parent 983 0 R +/Annots [ 1008 0 R 1009 0 R 1010 0 R ] >> -% 1003 0 obj +% 1008 0 obj << /Type /Annot /Subtype /Link @@ -10942,7 +10874,7 @@ stream /Rect [368.549 401.031 444.603 412.156] /A << /S /GoTo /D (vdata) >> >> -% 1004 0 obj +% 1009 0 obj << /Type /Annot /Subtype /Link @@ -10950,7 +10882,7 @@ stream /Rect [325.411 389.353 332.385 400.201] /A << /S /GoTo /D (table.5) >> >> -% 1005 0 obj +% 1010 0 obj << /Type /Annot /Subtype /Link @@ -10958,33 +10890,33 @@ stream /Rect [259.464 321.33 326.522 332.455] /A << /S /GoTo /D (descdata) >> >> -% 1009 0 obj +% 1014 0 obj << -/D [1007 0 R /XYZ 98.895 753.953 null] +/D [1012 0 R /XYZ 98.895 753.953 null] >> % 224 0 obj << -/D [1007 0 R /XYZ 99.895 720.077 null] +/D [1012 0 R /XYZ 99.895 720.077 null] >> -% 1010 0 obj +% 1015 0 obj << -/D [1007 0 R /XYZ 267.641 537.464 null] +/D [1012 0 R /XYZ 267.641 537.464 null] >> -% 1006 0 obj +% 1011 0 obj << -/Font << /F16 546 0 R /F8 549 0 R /F11 740 0 R /F14 757 0 R /F10 756 0 R /F30 754 0 R /F27 548 0 R >> +/Font << /F16 550 0 R /F8 553 0 R /F11 745 0 R /F14 762 0 R /F10 761 0 R /F30 759 0 R /F27 552 0 R >> /ProcSet [ /PDF /Text ] >> -% 1015 0 obj +% 1020 0 obj << /Type /Page -/Contents 1016 0 R -/Resources 1014 0 R +/Contents 1021 0 R +/Resources 1019 0 R /MediaBox [0 0 595.276 841.89] -/Parent 978 0 R -/Annots [ 1011 0 R 1012 0 R 1013 0 R ] +/Parent 983 0 R +/Annots [ 1016 0 R 1017 0 R 1018 0 R ] >> -% 1011 0 obj +% 1016 0 obj << /Type /Annot /Subtype /Link @@ -10992,7 +10924,7 @@ stream /Rect [419.358 339.844 495.412 350.969] /A << /S /GoTo /D (vdata) >> >> -% 1012 0 obj +% 1017 0 obj << /Type /Annot /Subtype /Link @@ -11000,7 +10932,7 @@ stream /Rect [376.221 328.166 383.195 339.014] /A << /S /GoTo /D (table.6) >> >> -% 1013 0 obj +% 1018 0 obj << /Type /Annot /Subtype /Link @@ -11008,33 +10940,33 @@ stream /Rect [310.273 260.202 377.331 271.327] /A << /S /GoTo /D (descdata) >> >> -% 1017 0 obj +% 1022 0 obj << -/D [1015 0 R /XYZ 149.705 753.953 null] +/D [1020 0 R /XYZ 149.705 753.953 null] >> % 228 0 obj << -/D [1015 0 R /XYZ 150.705 720.077 null] +/D [1020 0 R /XYZ 150.705 720.077 null] >> -% 1018 0 obj +% 1023 0 obj << -/D [1015 0 R /XYZ 318.451 475.957 null] +/D [1020 0 R /XYZ 318.451 475.957 null] >> -% 1014 0 obj +% 1019 0 obj << -/Font << /F16 546 0 R /F8 549 0 R /F11 740 0 R /F14 757 0 R /F10 756 0 R /F7 755 0 R /F30 754 0 R /F27 548 0 R >> +/Font << /F16 550 0 R /F8 553 0 R /F11 745 0 R /F14 762 0 R /F10 761 0 R /F7 760 0 R /F30 759 0 R /F27 552 0 R >> /ProcSet [ /PDF /Text ] >> -% 1023 0 obj +% 1028 0 obj << /Type /Page -/Contents 1024 0 R -/Resources 1022 0 R +/Contents 1029 0 R +/Resources 1027 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1027 0 R -/Annots [ 1019 0 R 1020 0 R 1021 0 R ] +/Parent 1032 0 R +/Annots [ 1024 0 R 1025 0 R 1026 0 R ] >> -% 1019 0 obj +% 1024 0 obj << /Type /Annot /Subtype /Link @@ -11042,7 +10974,7 @@ stream /Rect [368.549 289.84 444.603 300.965] /A << /S /GoTo /D (vdata) >> >> -% 1020 0 obj +% 1025 0 obj << /Type /Annot /Subtype /Link @@ -11050,7 +10982,7 @@ stream /Rect [325.411 278.162 332.385 289.01] /A << /S /GoTo /D (table.7) >> >> -% 1021 0 obj +% 1026 0 obj << /Type /Annot /Subtype /Link @@ -11058,50 +10990,50 @@ stream /Rect [259.464 208.355 326.522 219.48] /A << /S /GoTo /D (descdata) >> >> -% 1025 0 obj +% 1030 0 obj << -/D [1023 0 R /XYZ 98.895 753.953 null] +/D [1028 0 R /XYZ 98.895 753.953 null] >> % 232 0 obj << -/D [1023 0 R /XYZ 99.895 720.077 null] +/D [1028 0 R /XYZ 99.895 720.077 null] >> -% 1026 0 obj +% 1031 0 obj << -/D [1023 0 R /XYZ 267.641 432.072 null] +/D [1028 0 R /XYZ 267.641 432.072 null] >> -% 1022 0 obj +% 1027 0 obj << -/Font << /F16 546 0 R /F8 549 0 R /F11 740 0 R /F14 757 0 R /F10 756 0 R /F7 755 0 R /F30 754 0 R /F27 548 0 R >> +/Font << /F16 550 0 R /F8 553 0 R /F11 745 0 R /F14 762 0 R /F10 761 0 R /F7 760 0 R /F30 759 0 R /F27 552 0 R >> /ProcSet [ /PDF /Text ] >> -% 1029 0 obj +% 1034 0 obj << /Type /Page -/Contents 1030 0 R -/Resources 1028 0 R +/Contents 1035 0 R +/Resources 1033 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1027 0 R +/Parent 1032 0 R >> -% 1031 0 obj +% 1036 0 obj << -/D [1029 0 R /XYZ 149.705 753.953 null] +/D [1034 0 R /XYZ 149.705 753.953 null] >> -% 1028 0 obj +% 1033 0 obj << -/Font << /F27 548 0 R /F8 549 0 R >> +/Font << /F27 552 0 R /F8 553 0 R >> /ProcSet [ /PDF /Text ] >> -% 1036 0 obj +% 1041 0 obj << /Type /Page -/Contents 1037 0 R -/Resources 1035 0 R +/Contents 1042 0 R +/Resources 1040 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1027 0 R -/Annots [ 1032 0 R 1033 0 R 1034 0 R ] +/Parent 1032 0 R +/Annots [ 1037 0 R 1038 0 R 1039 0 R ] >> -% 1032 0 obj +% 1037 0 obj << /Type /Annot /Subtype /Link @@ -11109,7 +11041,7 @@ stream /Rect [368.549 348.184 444.603 359.309] /A << /S /GoTo /D (vdata) >> >> -% 1033 0 obj +% 1038 0 obj << /Type /Annot /Subtype /Link @@ -11117,7 +11049,7 @@ stream /Rect [325.411 336.506 332.385 347.354] /A << /S /GoTo /D (table.8) >> >> -% 1034 0 obj +% 1039 0 obj << /Type /Annot /Subtype /Link @@ -11125,33 +11057,33 @@ stream /Rect [259.464 269.097 326.522 280.222] /A << /S /GoTo /D (descdata) >> >> -% 1038 0 obj +% 1043 0 obj << -/D [1036 0 R /XYZ 98.895 753.953 null] +/D [1041 0 R /XYZ 98.895 753.953 null] >> % 236 0 obj << -/D [1036 0 R /XYZ 99.895 720.077 null] +/D [1041 0 R /XYZ 99.895 720.077 null] >> -% 1039 0 obj +% 1044 0 obj << -/D [1036 0 R /XYZ 267.641 515.563 null] +/D [1041 0 R /XYZ 267.641 515.563 null] >> -% 1035 0 obj +% 1040 0 obj << -/Font << /F16 546 0 R /F8 549 0 R /F11 740 0 R /F14 757 0 R /F10 756 0 R /F27 548 0 R /F30 754 0 R >> +/Font << /F16 550 0 R /F8 553 0 R /F11 745 0 R /F14 762 0 R /F10 761 0 R /F27 552 0 R /F30 759 0 R >> /ProcSet [ /PDF /Text ] >> -% 1044 0 obj +% 1049 0 obj << /Type /Page -/Contents 1045 0 R -/Resources 1043 0 R +/Contents 1050 0 R +/Resources 1048 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1027 0 R -/Annots [ 1040 0 R 1041 0 R 1042 0 R ] +/Parent 1032 0 R +/Annots [ 1045 0 R 1046 0 R 1047 0 R ] >> -% 1040 0 obj +% 1045 0 obj << /Type /Annot /Subtype /Link @@ -11159,7 +11091,7 @@ stream /Rect [419.358 404.491 495.412 415.616] /A << /S /GoTo /D (vdata) >> >> -% 1041 0 obj +% 1046 0 obj << /Type /Annot /Subtype /Link @@ -11167,7 +11099,7 @@ stream /Rect [376.221 392.812 383.195 403.66] /A << /S /GoTo /D (table.9) >> >> -% 1042 0 obj +% 1047 0 obj << /Type /Annot /Subtype /Link @@ -11175,33 +11107,33 @@ stream /Rect [310.273 324.789 377.331 335.914] /A << /S /GoTo /D (descdata) >> >> -% 1046 0 obj +% 1051 0 obj << -/D [1044 0 R /XYZ 149.705 753.953 null] +/D [1049 0 R /XYZ 149.705 753.953 null] >> % 240 0 obj << -/D [1044 0 R /XYZ 150.705 720.077 null] +/D [1049 0 R /XYZ 150.705 720.077 null] >> -% 1047 0 obj +% 1052 0 obj << -/D [1044 0 R /XYZ 318.451 540.923 null] +/D [1049 0 R /XYZ 318.451 540.923 null] >> -% 1043 0 obj +% 1048 0 obj << -/Font << /F16 546 0 R /F8 549 0 R /F11 740 0 R /F14 757 0 R /F7 755 0 R /F30 754 0 R /F27 548 0 R >> +/Font << /F16 550 0 R /F8 553 0 R /F11 745 0 R /F14 762 0 R /F7 760 0 R /F30 759 0 R /F27 552 0 R >> /ProcSet [ /PDF /Text ] >> -% 1051 0 obj +% 1056 0 obj << /Type /Page -/Contents 1052 0 R -/Resources 1050 0 R +/Contents 1057 0 R +/Resources 1055 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1027 0 R -/Annots [ 1048 0 R 1049 0 R ] +/Parent 1032 0 R +/Annots [ 1053 0 R 1054 0 R ] >> -% 1048 0 obj +% 1053 0 obj << /Type /Annot /Subtype /Link @@ -11209,7 +11141,7 @@ stream /Rect [259.464 342.722 336.983 353.847] /A << /S /GoTo /D (spdata) >> >> -% 1049 0 obj +% 1054 0 obj << /Type /Annot /Subtype /Link @@ -11217,33 +11149,33 @@ stream /Rect [259.464 274.976 326.522 286.101] /A << /S /GoTo /D (descdata) >> >> -% 1053 0 obj +% 1058 0 obj << -/D [1051 0 R /XYZ 98.895 753.953 null] +/D [1056 0 R /XYZ 98.895 753.953 null] >> % 244 0 obj << -/D [1051 0 R /XYZ 99.895 720.077 null] +/D [1056 0 R /XYZ 99.895 720.077 null] >> -% 1054 0 obj +% 1059 0 obj << -/D [1051 0 R /XYZ 270.132 513.305 null] +/D [1056 0 R /XYZ 270.132 513.305 null] >> -% 1050 0 obj +% 1055 0 obj << -/Font << /F16 546 0 R /F8 549 0 R /F11 740 0 R /F14 757 0 R /F7 755 0 R /F27 548 0 R /F30 754 0 R >> +/Font << /F16 550 0 R /F8 553 0 R /F11 745 0 R /F14 762 0 R /F7 760 0 R /F27 552 0 R /F30 759 0 R >> /ProcSet [ /PDF /Text ] >> -% 1058 0 obj +% 1063 0 obj << /Type /Page -/Contents 1059 0 R -/Resources 1057 0 R +/Contents 1064 0 R +/Resources 1062 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1027 0 R -/Annots [ 1055 0 R 1056 0 R ] +/Parent 1032 0 R +/Annots [ 1060 0 R 1061 0 R ] >> -% 1055 0 obj +% 1060 0 obj << /Type /Annot /Subtype /Link @@ -11251,7 +11183,7 @@ stream /Rect [310.273 342.722 387.792 353.847] /A << /S /GoTo /D (spdata) >> >> -% 1056 0 obj +% 1061 0 obj << /Type /Annot /Subtype /Link @@ -11259,33 +11191,33 @@ stream /Rect [310.273 274.976 377.331 286.101] /A << /S /GoTo /D (descdata) >> >> -% 1060 0 obj +% 1065 0 obj << -/D [1058 0 R /XYZ 149.705 753.953 null] +/D [1063 0 R /XYZ 149.705 753.953 null] >> % 248 0 obj << -/D [1058 0 R /XYZ 150.705 720.077 null] +/D [1063 0 R /XYZ 150.705 720.077 null] >> -% 1062 0 obj +% 1067 0 obj << -/D [1058 0 R /XYZ 320.941 513.305 null] +/D [1063 0 R /XYZ 320.941 513.305 null] >> -% 1057 0 obj +% 1062 0 obj << -/Font << /F16 546 0 R /F8 549 0 R /F11 740 0 R /F14 757 0 R /F13 1061 0 R /F27 548 0 R /F30 754 0 R >> +/Font << /F16 550 0 R /F8 553 0 R /F11 745 0 R /F14 762 0 R /F13 1066 0 R /F27 552 0 R /F30 759 0 R >> /ProcSet [ /PDF /Text ] >> -% 1069 0 obj +% 1074 0 obj << /Type /Page -/Contents 1070 0 R -/Resources 1068 0 R +/Contents 1075 0 R +/Resources 1073 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1076 0 R -/Annots [ 1063 0 R 1064 0 R 1065 0 R 1066 0 R ] +/Parent 1081 0 R +/Annots [ 1068 0 R 1069 0 R 1070 0 R 1071 0 R ] >> -% 1063 0 obj +% 1068 0 obj << /Type /Annot /Subtype /Link @@ -11293,7 +11225,7 @@ stream /Rect [382.088 276.095 394.043 286.943] /A << /S /GoTo /D (table.12) >> >> -% 1064 0 obj +% 1069 0 obj << /Type /Annot /Subtype /Link @@ -11301,7 +11233,7 @@ stream /Rect [259.464 208.422 336.983 219.547] /A << /S /GoTo /D (spdata) >> >> -% 1065 0 obj +% 1070 0 obj << /Type /Annot /Subtype /Link @@ -11309,7 +11241,7 @@ stream /Rect [368.549 141.026 444.603 152.151] /A << /S /GoTo /D (vdata) >> >> -% 1066 0 obj +% 1071 0 obj << /Type /Annot /Subtype /Link @@ -11317,45 +11249,45 @@ stream /Rect [326.008 129.347 337.963 140.196] /A << /S /GoTo /D (table.12) >> >> -% 1071 0 obj +% 1076 0 obj << -/D [1069 0 R /XYZ 98.895 753.953 null] +/D [1074 0 R /XYZ 98.895 753.953 null] >> % 252 0 obj << -/D [1069 0 R /XYZ 99.895 720.077 null] +/D [1074 0 R /XYZ 99.895 720.077 null] >> -% 1072 0 obj +% 1077 0 obj << -/D [1069 0 R /XYZ 239.804 675.784 null] +/D [1074 0 R /XYZ 239.804 675.784 null] >> -% 1073 0 obj +% 1078 0 obj << -/D [1069 0 R /XYZ 236.666 658.376 null] +/D [1074 0 R /XYZ 236.666 658.376 null] >> -% 1074 0 obj +% 1079 0 obj << -/D [1069 0 R /XYZ 236.025 640.968 null] +/D [1074 0 R /XYZ 236.025 640.968 null] >> -% 1075 0 obj +% 1080 0 obj << -/D [1069 0 R /XYZ 270.132 455.558 null] +/D [1074 0 R /XYZ 270.132 455.558 null] >> -% 1068 0 obj +% 1073 0 obj << -/Font << /F16 546 0 R /F8 549 0 R /F11 740 0 R /F14 757 0 R /F10 756 0 R /F7 755 0 R /F27 548 0 R /F30 754 0 R >> +/Font << /F16 550 0 R /F8 553 0 R /F11 745 0 R /F14 762 0 R /F10 761 0 R /F7 760 0 R /F27 552 0 R /F30 759 0 R >> /ProcSet [ /PDF /Text ] >> -% 1085 0 obj +% 1090 0 obj << /Type /Page -/Contents 1086 0 R -/Resources 1084 0 R +/Contents 1091 0 R +/Resources 1089 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1076 0 R -/Annots [ 1067 0 R 1077 0 R 1078 0 R 1079 0 R 1080 0 R 1081 0 R 1082 0 R 1083 0 R ] +/Parent 1081 0 R +/Annots [ 1072 0 R 1082 0 R 1083 0 R 1084 0 R 1085 0 R 1086 0 R 1087 0 R 1088 0 R ] >> -% 1067 0 obj +% 1072 0 obj << /Type /Annot /Subtype /Link @@ -11363,7 +11295,7 @@ stream /Rect [432.897 655.375 444.852 666.223] /A << /S /GoTo /D (table.12) >> >> -% 1077 0 obj +% 1082 0 obj << /Type /Annot /Subtype /Link @@ -11371,7 +11303,7 @@ stream /Rect [419.358 588.824 495.412 599.949] /A << /S /GoTo /D (vdata) >> >> -% 1078 0 obj +% 1083 0 obj << /Type /Annot /Subtype /Link @@ -11379,7 +11311,7 @@ stream /Rect [377.029 577.145 388.984 587.994] /A << /S /GoTo /D (table.12) >> >> -% 1079 0 obj +% 1084 0 obj << /Type /Annot /Subtype /Link @@ -11387,7 +11319,7 @@ stream /Rect [310.273 498.639 377.331 509.764] /A << /S /GoTo /D (descdata) >> >> -% 1080 0 obj +% 1085 0 obj << /Type /Annot /Subtype /Link @@ -11395,7 +11327,7 @@ stream /Rect [397.199 462.009 404.172 472.858] /A << /S /GoTo /D (equation.4.1) >> >> -% 1081 0 obj +% 1086 0 obj << /Type /Annot /Subtype /Link @@ -11403,7 +11335,7 @@ stream /Rect [396.202 447.541 403.176 458.389] /A << /S /GoTo /D (equation.4.2) >> >> -% 1082 0 obj +% 1087 0 obj << /Type /Annot /Subtype /Link @@ -11411,7 +11343,7 @@ stream /Rect [396.507 433.073 403.481 443.921] /A << /S /GoTo /D (equation.4.3) >> >> -% 1083 0 obj +% 1088 0 obj << /Type /Annot /Subtype /Link @@ -11419,25 +11351,25 @@ stream /Rect [253.818 191.887 265.774 202.735] /A << /S /GoTo /D (table.12) >> >> -% 1087 0 obj +% 1092 0 obj << -/D [1085 0 R /XYZ 149.705 753.953 null] +/D [1090 0 R /XYZ 149.705 753.953 null] >> -% 1084 0 obj +% 1089 0 obj << -/Font << /F27 548 0 R /F8 549 0 R /F11 740 0 R /F30 754 0 R >> +/Font << /F27 552 0 R /F8 553 0 R /F11 745 0 R /F30 759 0 R >> /ProcSet [ /PDF /Text ] >> -% 1091 0 obj +% 1096 0 obj << /Type /Page -/Contents 1092 0 R -/Resources 1090 0 R +/Contents 1097 0 R +/Resources 1095 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1076 0 R -/Annots [ 1088 0 R ] +/Parent 1081 0 R +/Annots [ 1093 0 R ] >> -% 1088 0 obj +% 1093 0 obj << /Type /Annot /Subtype /Link @@ -11445,33 +11377,33 @@ stream /Rect [382.088 117.392 394.043 128.24] /A << /S /GoTo /D (table.13) >> >> -% 1093 0 obj +% 1098 0 obj << -/D [1091 0 R /XYZ 98.895 753.953 null] +/D [1096 0 R /XYZ 98.895 753.953 null] >> % 256 0 obj << -/D [1091 0 R /XYZ 99.895 720.077 null] +/D [1096 0 R /XYZ 99.895 720.077 null] >> -% 1094 0 obj +% 1099 0 obj << -/D [1091 0 R /XYZ 270.132 258.477 null] +/D [1096 0 R /XYZ 270.132 258.477 null] >> -% 1090 0 obj +% 1095 0 obj << -/Font << /F16 546 0 R /F8 549 0 R /F11 740 0 R /F14 757 0 R /F13 1061 0 R /F7 755 0 R /F10 756 0 R /F30 754 0 R /F27 548 0 R >> +/Font << /F16 550 0 R /F8 553 0 R /F11 745 0 R /F14 762 0 R /F13 1066 0 R /F7 760 0 R /F10 761 0 R /F30 759 0 R /F27 552 0 R >> /ProcSet [ /PDF /Text ] >> -% 1102 0 obj +% 1107 0 obj << /Type /Page -/Contents 1103 0 R -/Resources 1101 0 R +/Contents 1108 0 R +/Resources 1106 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1076 0 R -/Annots [ 1089 0 R 1095 0 R 1096 0 R 1097 0 R 1098 0 R 1099 0 R 1100 0 R ] +/Parent 1081 0 R +/Annots [ 1094 0 R 1100 0 R 1101 0 R 1102 0 R 1103 0 R 1104 0 R 1105 0 R ] >> -% 1089 0 obj +% 1094 0 obj << /Type /Annot /Subtype /Link @@ -11479,7 +11411,7 @@ stream /Rect [358.482 655.375 365.455 666.223] /A << /S /GoTo /D (section.3) >> >> -% 1095 0 obj +% 1100 0 obj << /Type /Annot /Subtype /Link @@ -11487,7 +11419,7 @@ stream /Rect [419.358 586.627 495.412 597.752] /A << /S /GoTo /D (vdata) >> >> -% 1096 0 obj +% 1101 0 obj << /Type /Annot /Subtype /Link @@ -11495,7 +11427,7 @@ stream /Rect [376.818 574.949 388.773 585.797] /A << /S /GoTo /D (table.13) >> >> -% 1097 0 obj +% 1102 0 obj << /Type /Annot /Subtype /Link @@ -11503,7 +11435,7 @@ stream /Rect [432.897 494.523 444.852 505.372] /A << /S /GoTo /D (table.13) >> >> -% 1098 0 obj +% 1103 0 obj << /Type /Annot /Subtype /Link @@ -11511,7 +11443,7 @@ stream /Rect [419.358 425.776 495.412 436.901] /A << /S /GoTo /D (vdata) >> >> -% 1099 0 obj +% 1104 0 obj << /Type /Annot /Subtype /Link @@ -11519,7 +11451,7 @@ stream /Rect [377.029 414.098 388.984 424.946] /A << /S /GoTo /D (table.13) >> >> -% 1100 0 obj +% 1105 0 obj << /Type /Annot /Subtype /Link @@ -11527,36 +11459,73 @@ stream /Rect [310.273 333.395 377.331 344.52] /A << /S /GoTo /D (descdata) >> >> -% 1104 0 obj -<< -/D [1102 0 R /XYZ 149.705 753.953 null] ->> -% 1101 0 obj -<< -/Font << /F27 548 0 R /F8 549 0 R /F11 740 0 R /F14 757 0 R /F30 754 0 R /F17 720 0 R >> -/ProcSet [ /PDF /Text ] ->> -% 1108 0 obj +% 1109 0 obj << -/Type /Page -/Contents 1109 0 R -/Resources 1107 0 R -/MediaBox [0 0 595.276 841.89] -/Parent 1076 0 R -/Annots [ 1105 0 R 1106 0 R ] +/D [1107 0 R /XYZ 149.705 753.953 null] >> -% 1105 0 obj + +endstream +endobj +1115 0 obj << -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [162.826 410.238 174.781 419.149] -/A << /S /GoTo /D (table.13) >> +/Length 4663 >> +stream +0 g 0 G +0 g 0 G +BT +/F8 9.9626 Tf 124.802 706.129 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(global)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(optional)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.956 Td [(Default:)]TJ/F11 9.9626 Tf 39.436 0 Td [(unitd)]TJ/F8 9.9626 Tf 26.665 0 Td [(=)]TJ/F11 9.9626 Tf 10.516 0 Td [(U)]TJ/F8 9.9626 Tf -76.617 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(c)28(haracter)-333(v)55(ariable.)]TJ +0 g 0 G +/F27 9.9626 Tf -24.907 -19.925 Td [(c)32(hoice)]TJ +0 g 0 G +/F8 9.9626 Tf 35.375 0 Td [(sp)-28(eci\014es)-333(the)-334(u)1(p)-28(date)-334(of)-333(o)28(v)28(erlap)-334(elemen)28(ts)-333(to)-334(b)-27(e)-334(p)-27(erformed)-334(on)-333(exit:)]TJ +0 g 0 G +0 g 0 G +/F30 9.9626 Tf -5.487 -19.925 Td [(psb_none_)]TJ +0 g 0 G +0 g 0 G + 0 -15.941 Td [(psb_sum_)]TJ +0 g 0 G +0 g 0 G + 0 -15.94 Td [(psb_avg_)]TJ +0 g 0 G +0 g 0 G + 0 -15.94 Td [(psb_square_root_)]TJ/F8 9.9626 Tf -4.981 -19.925 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(global)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(optional)]TJ/F8 9.9626 Tf -29.611 -11.956 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.955 Td [(Default:)]TJ/F30 9.9626 Tf 39.436 0 Td [(psb_avg_)]TJ/F8 9.9626 Tf -39.436 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(in)28(teger)-333(v)55(ariable.)]TJ +0 g 0 G +/F27 9.9626 Tf -24.907 -19.925 Td [(diag)]TJ +0 g 0 G +/F8 9.9626 Tf 25.827 0 Td [(the)-333(diagonal)-334(scaling)-333(matrix.)]TJ -0.92 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.956 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(optional)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.955 Td [(Default:)]TJ/F11 9.9626 Tf 39.436 0 Td [(diag)]TJ/F8 9.9626 Tf 18.993 0 Td [(\0501\051)-278(=)-277(1\050)]TJ/F11 9.9626 Tf 34.869 0 Td [(noscal)-20(ing)]TJ/F8 9.9626 Tf 42.747 0 Td [(\051)]TJ -136.045 -11.955 Td [(Sp)-28(eci\014ed)-382(as:)-543(a)-382(rank)-382(one)-383(arra)28(y)-382(con)27(taining)-382(n)28(um)28(b)-28(ers)-383(of)-382(the)-382(t)27(yp)-27(e)-383(indicated)]TJ 0 -11.955 Td [(in)-333(T)83(able)]TJ +0 0 1 rg 0 0 1 RG + [-333(13)]TJ +0 g 0 G + [(.)]TJ +0 g 0 G +/F27 9.9626 Tf -24.907 -19.926 Td [(w)32(ork)]TJ +0 g 0 G +/F8 9.9626 Tf 29.432 0 Td [(a)-333(w)27(ork)-333(arra)28(y)83(.)]TJ -4.525 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(optional)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(inout)]TJ/F8 9.9626 Tf 26.096 0 Td [(.)]TJ -59.582 -11.955 Td [(Sp)-28(eci\014ed)-377(as:)-531(a)-377(rank)-376(one)-377(arra)28(y)-377(of)-377(the)-377(same)-377(t)28(yp)-28(e)-377(of)]TJ/F11 9.9626 Tf 225.953 0 Td [(x)]TJ/F8 9.9626 Tf 9.448 0 Td [(with)-377(the)-377(T)84(AR)28(GET)]TJ -235.401 -11.955 Td [(attribute.)]TJ +0 g 0 G +/F27 9.9626 Tf -24.907 -19.926 Td [(On)-383(Return)]TJ +0 g 0 G +0 g 0 G + 0 -19.925 Td [(y)]TJ +0 g 0 G +/F8 9.9626 Tf 11.028 0 Td [(the)-333(lo)-28(cal)-333(p)-28(ortion)-333(of)-334(global)-333(dense)-333(matrix)]TJ/F11 9.9626 Tf 176.118 0 Td [(y)]TJ/F8 9.9626 Tf 5.242 0 Td [(.)]TJ -167.481 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.956 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(inout)]TJ/F8 9.9626 Tf 26.096 0 Td [(.)]TJ -59.582 -11.955 Td [(Sp)-28(eci\014ed)-474(as:)-727(an)-475(arra)28(y)-474(of)-475(rank)-475(on)1(e)-475(or)-475(t)28(w)28(o)-475(con)28(taining)-474(n)27(u)1(m)27(b)-27(e)-1(r)1(s)-475(of)-475(t)28(yp)-28(e)]TJ 0 -11.955 Td [(sp)-28(eci\014ed)-333(in)-333(T)83(able)]TJ +0 0 1 rg 0 0 1 RG + [-333(13)]TJ +0 g 0 G + [(.)]TJ +0 g 0 G +/F27 9.9626 Tf -24.907 -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.956 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(out)]TJ/F8 9.9626 Tf 16.549 0 Td [(.)]TJ -50.035 -11.955 Td [(An)-333(in)28(tege)-1(r)-333(v)56(alue;)-334(0)-333(means)-333(no)-334(error)-333(has)-333(b)-28(een)-333(detecte)-1(d)1(.)]TJ +0 g 0 G + 141.968 -73.723 Td [(47)]TJ +0 g 0 G +ET endstream endobj -1115 0 obj +1120 0 obj << /Length 651 >> @@ -11576,7 +11545,7 @@ ET endstream endobj -1123 0 obj +1128 0 obj << /Length 7259 >> @@ -11773,7 +11742,7 @@ ET endstream endobj -1134 0 obj +1139 0 obj << /Length 3217 >> @@ -11829,20 +11798,20 @@ ET endstream endobj -1130 0 obj +1135 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (./figures/try8x8.pdf) /PTEX.PageNumber 1 -/PTEX.InfoDict 1137 0 R +/PTEX.InfoDict 1142 0 R /BBox [0 0 436 496] /Resources << /ProcSet [ /PDF /Text ] /ExtGState << -/R7 1138 0 R ->>/Font << /R8 1139 0 R/R9 1140 0 R>> +/R7 1143 0 R +>>/Font << /R8 1144 0 R/R9 1145 0 R>> >> /Length 3571 /Filter /FlateDecode @@ -11860,7 +11829,7 @@ QI* d)eI%}QÉ'?+ä°~I*écÂ\‚?XO#~Ã[!©äX‚?fJÇüÁaî‹J8ù9â÷%©¤ s‰ù`=ø Ÿ× ,ªƒ1Œ|?ª$6ŠázžAª@}¡J¢¿R©’#‡z|]ñd•9ÔãýL G„z8¯—÷¬’Ï€äcD¾P%ùàgÌcå‘#<¾®x²J2³jˆÏÕpD„ó¢¼g•mø»ãoÇßþžŸúö§Ç6Úë¸w¶W~ûùñéØ?ûçãK߯åÌÞ>Øíƒ]?Øeµûü`ŸìqÛ{éÏ/m;±ù"×~¢WëÖëj¾Z…3lï²ÛÂ?|Ïz¼Ú½m[{힦„iÿb¬m»¦øóe•Ï¿{üáÛã¯×¿ÿ-3‡à endstream endobj -1143 0 obj +1148 0 obj << /Length 3050 >> @@ -11880,7 +11849,7 @@ ET endstream endobj -1151 0 obj +1156 0 obj << /Length 8482 >> @@ -12149,7 +12118,7 @@ ET endstream endobj -1163 0 obj +1168 0 obj << /Length 5866 >> @@ -12203,7 +12172,7 @@ ET endstream endobj -1171 0 obj +1176 0 obj << /Length 3619 >> @@ -12223,7 +12192,7 @@ ET endstream endobj -1175 0 obj +1180 0 obj << /Length 345 >> @@ -12257,20 +12226,20 @@ ET endstream endobj -1158 0 obj +1163 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (./figures/try8x8_ov.pdf) /PTEX.PageNumber 1 -/PTEX.InfoDict 1178 0 R +/PTEX.InfoDict 1183 0 R /BBox [0 0 436 514] /Resources << /ProcSet [ /PDF /Text ] /ExtGState << -/R7 1179 0 R ->>/Font << /R8 1180 0 R/R9 1181 0 R>> +/R7 1184 0 R +>>/Font << /R8 1185 0 R/R9 1186 0 R>> >> /Length 3652 /Filter /FlateDecode @@ -12286,7 +12255,7 @@ V óá!Zäÿ/L)ÇÇ8ú:ß=þ êë¼® endstream endobj -1187 0 obj +1192 0 obj << /Length 9366 >> @@ -12567,7 +12536,7 @@ ET endstream endobj -1195 0 obj +1200 0 obj << /Length 1455 >> @@ -12597,7 +12566,7 @@ ET endstream endobj -1201 0 obj +1206 0 obj << /Length 7803 >> @@ -12811,7 +12780,7 @@ ET endstream endobj -1210 0 obj +1215 0 obj << /Length 4181 >> @@ -12944,7 +12913,7 @@ ET endstream endobj -1214 0 obj +1219 0 obj << /Length 6539 >> @@ -13001,7 +12970,7 @@ ET endstream endobj -1219 0 obj +1224 0 obj << /Length 6637 >> @@ -13079,51 +13048,73 @@ ET endstream endobj -1111 0 obj +1110 0 obj << /Type /ObjStm /N 100 -/First 981 -/Length 10738 +/First 983 +/Length 10904 >> stream -1106 0 1110 147 1107 205 1114 311 1112 450 1116 598 260 657 1113 715 1122 795 1117 952 -1118 1096 1119 1243 1124 1390 264 1448 1125 1505 1126 1564 1127 1622 1128 1680 1121 1738 1133 1870 -1137 2018 1138 2133 1139 2176 1140 2246 1120 2315 1131 2462 1135 2608 1136 2667 1132 2726 1142 2874 -1144 2992 1141 3050 1150 3131 1146 3288 1147 3432 1148 3579 1152 3725 268 3784 1153 3842 1154 3901 -1155 3960 1156 4019 1149 4078 1162 4223 1157 4380 1159 4527 1160 4672 1164 4819 1165 4877 1166 4935 -1167 4993 1161 5050 1170 5182 1172 5300 1169 5359 1174 5439 1178 5557 1179 5672 1180 5715 1181 5785 -1176 5854 1168 5912 1173 5971 1186 6067 1182 6224 1183 6368 1184 6515 1188 6661 272 6720 1189 6778 -1190 6837 1191 6896 1192 6955 1185 7014 1194 7171 1196 7289 1193 7347 1200 7440 1197 7579 1202 7725 -276 7784 1203 7842 1204 7901 1205 7960 1199 8019 1209 8176 1198 8333 1206 8477 1207 8620 1211 8766 -1208 8824 1213 8930 1215 9048 280 9107 284 9165 1212 9223 1218 9355 1216 9494 1220 9641 1221 9699 +1106 0 1114 132 1111 280 1112 427 1116 574 1113 632 1119 738 1117 877 1121 1025 260 1084 +1118 1142 1127 1222 1122 1379 1123 1523 1124 1670 1129 1817 264 1875 1130 1932 1131 1991 1132 2049 +1133 2107 1126 2165 1138 2297 1142 2445 1143 2560 1144 2603 1145 2673 1125 2742 1136 2889 1140 3035 +1141 3094 1137 3153 1147 3301 1149 3419 1146 3477 1155 3558 1151 3715 1152 3859 1153 4006 1157 4152 +268 4211 1158 4269 1159 4328 1160 4387 1161 4446 1154 4505 1167 4650 1162 4807 1164 4954 1165 5099 +1169 5246 1170 5304 1171 5362 1172 5420 1166 5477 1175 5609 1177 5727 1174 5786 1179 5866 1183 5984 +1184 6099 1185 6142 1186 6212 1181 6281 1173 6339 1178 6398 1191 6494 1187 6651 1188 6795 1189 6942 +1193 7088 272 7147 1194 7205 1195 7264 1196 7323 1197 7382 1190 7441 1199 7598 1201 7716 1198 7774 +1205 7867 1202 8006 1207 8152 276 8211 1208 8269 1209 8328 1210 8387 1204 8446 1214 8603 1203 8760 +1211 8904 1212 9047 1216 9193 1213 9251 1218 9357 1220 9475 280 9534 284 9592 1217 9650 1223 9782 % 1106 0 obj << +/Font << /F27 552 0 R /F8 553 0 R /F11 745 0 R /F14 762 0 R /F30 759 0 R /F17 725 0 R >> +/ProcSet [ /PDF /Text ] +>> +% 1114 0 obj +<< +/Type /Page +/Contents 1115 0 R +/Resources 1113 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1081 0 R +/Annots [ 1111 0 R 1112 0 R ] +>> +% 1111 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [162.826 410.238 174.781 419.149] +/A << /S /GoTo /D (table.13) >> +>> +% 1112 0 obj +<< /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [203.009 228.974 214.964 239.822] /A << /S /GoTo /D (table.13) >> >> -% 1110 0 obj +% 1116 0 obj << -/D [1108 0 R /XYZ 98.895 753.953 null] +/D [1114 0 R /XYZ 98.895 753.953 null] >> -% 1107 0 obj +% 1113 0 obj << -/Font << /F8 549 0 R /F27 548 0 R /F11 740 0 R /F30 754 0 R >> +/Font << /F8 553 0 R /F27 552 0 R /F11 745 0 R /F30 759 0 R >> /ProcSet [ /PDF /Text ] >> -% 1114 0 obj +% 1119 0 obj << /Type /Page -/Contents 1115 0 R -/Resources 1113 0 R +/Contents 1120 0 R +/Resources 1118 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1076 0 R -/Annots [ 1112 0 R ] +/Parent 1081 0 R +/Annots [ 1117 0 R ] >> -% 1112 0 obj +% 1117 0 obj << /Type /Annot /Subtype /Link @@ -13131,29 +13122,29 @@ stream /Rect [350.345 657.464 357.319 668.312] /A << /S /GoTo /D (section.6) >> >> -% 1116 0 obj +% 1121 0 obj << -/D [1114 0 R /XYZ 149.705 753.953 null] +/D [1119 0 R /XYZ 149.705 753.953 null] >> % 260 0 obj << -/D [1114 0 R /XYZ 150.705 716.092 null] +/D [1119 0 R /XYZ 150.705 716.092 null] >> -% 1113 0 obj +% 1118 0 obj << -/Font << /F16 546 0 R /F8 549 0 R >> +/Font << /F16 550 0 R /F8 553 0 R >> /ProcSet [ /PDF /Text ] >> -% 1122 0 obj +% 1127 0 obj << /Type /Page -/Contents 1123 0 R -/Resources 1121 0 R +/Contents 1128 0 R +/Resources 1126 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1129 0 R -/Annots [ 1117 0 R 1118 0 R 1119 0 R ] +/Parent 1134 0 R +/Annots [ 1122 0 R 1123 0 R 1124 0 R ] >> -% 1117 0 obj +% 1122 0 obj << /Type /Annot /Subtype /Link @@ -13161,7 +13152,7 @@ stream /Rect [368.549 343.463 444.603 354.588] /A << /S /GoTo /D (vdata) >> >> -% 1118 0 obj +% 1123 0 obj << /Type /Annot /Subtype /Link @@ -13169,7 +13160,7 @@ stream /Rect [325.411 331.785 337.366 342.633] /A << /S /GoTo /D (table.14) >> >> -% 1119 0 obj +% 1124 0 obj << /Type /Annot /Subtype /Link @@ -13177,68 +13168,68 @@ stream /Rect [294.721 264.029 361.779 275.154] /A << /S /GoTo /D (descdata) >> >> -% 1124 0 obj +% 1129 0 obj << -/D [1122 0 R /XYZ 98.895 753.953 null] +/D [1127 0 R /XYZ 98.895 753.953 null] >> % 264 0 obj << -/D [1122 0 R /XYZ 99.895 720.077 null] +/D [1127 0 R /XYZ 99.895 720.077 null] >> -% 1125 0 obj +% 1130 0 obj << -/D [1122 0 R /XYZ 270.132 514.036 null] +/D [1127 0 R /XYZ 270.132 514.036 null] >> -% 1126 0 obj +% 1131 0 obj << -/D [1122 0 R /XYZ 99.895 482.745 null] +/D [1127 0 R /XYZ 99.895 482.745 null] >> -% 1127 0 obj +% 1132 0 obj << -/D [1122 0 R /XYZ 99.895 484.682 null] +/D [1127 0 R /XYZ 99.895 484.682 null] >> -% 1128 0 obj +% 1133 0 obj << -/D [1122 0 R /XYZ 99.895 472.727 null] +/D [1127 0 R /XYZ 99.895 472.727 null] >> -% 1121 0 obj +% 1126 0 obj << -/Font << /F16 546 0 R /F8 549 0 R /F11 740 0 R /F14 757 0 R /F27 548 0 R /F30 754 0 R >> +/Font << /F16 550 0 R /F8 553 0 R /F11 745 0 R /F14 762 0 R /F27 552 0 R /F30 759 0 R >> /ProcSet [ /PDF /Text ] >> -% 1133 0 obj +% 1138 0 obj << /Type /Page -/Contents 1134 0 R -/Resources 1132 0 R +/Contents 1139 0 R +/Resources 1137 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1129 0 R -/Annots [ 1120 0 R 1131 0 R ] +/Parent 1134 0 R +/Annots [ 1125 0 R 1136 0 R ] >> -% 1137 0 obj +% 1142 0 obj << /Producer (ESP Ghostscript 815.03) /CreationDate (D:20070118112257) /ModDate (D:20070118112257) >> -% 1138 0 obj +% 1143 0 obj << /Type /ExtGState /OPM 1 >> -% 1139 0 obj +% 1144 0 obj << /BaseFont /Times-Roman /Type /Font /Subtype /Type1 >> -% 1140 0 obj +% 1145 0 obj << /BaseFont /Times-Bold /Type /Font /Subtype /Type1 >> -% 1120 0 obj +% 1125 0 obj << /Type /Annot /Subtype /Link @@ -13246,7 +13237,7 @@ stream /Rect [213.636 625.431 225.591 634.343] /A << /S /GoTo /D (table.14) >> >> -% 1131 0 obj +% 1136 0 obj << /Type /Annot /Subtype /Link @@ -13254,47 +13245,47 @@ stream /Rect [457.906 283.557 464.88 296.177] /A << /S /GoTo /D (figure.7) >> >> -% 1135 0 obj +% 1140 0 obj << -/D [1133 0 R /XYZ 149.705 753.953 null] +/D [1138 0 R /XYZ 149.705 753.953 null] >> -% 1136 0 obj +% 1141 0 obj << -/D [1133 0 R /XYZ 283.692 322.744 null] +/D [1138 0 R /XYZ 283.692 322.744 null] >> -% 1132 0 obj +% 1137 0 obj << -/Font << /F27 548 0 R /F8 549 0 R /F11 740 0 R /F16 546 0 R /F30 754 0 R >> -/XObject << /Im3 1130 0 R >> +/Font << /F27 552 0 R /F8 553 0 R /F11 745 0 R /F16 550 0 R /F30 759 0 R >> +/XObject << /Im3 1135 0 R >> /ProcSet [ /PDF /Text ] >> -% 1142 0 obj +% 1147 0 obj << /Type /Page -/Contents 1143 0 R -/Resources 1141 0 R +/Contents 1148 0 R +/Resources 1146 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1129 0 R +/Parent 1134 0 R >> -% 1144 0 obj +% 1149 0 obj << -/D [1142 0 R /XYZ 98.895 753.953 null] +/D [1147 0 R /XYZ 98.895 753.953 null] >> -% 1141 0 obj +% 1146 0 obj << -/Font << /F45 1145 0 R /F8 549 0 R >> +/Font << /F45 1150 0 R /F8 553 0 R >> /ProcSet [ /PDF /Text ] >> -% 1150 0 obj +% 1155 0 obj << /Type /Page -/Contents 1151 0 R -/Resources 1149 0 R +/Contents 1156 0 R +/Resources 1154 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1129 0 R -/Annots [ 1146 0 R 1147 0 R 1148 0 R ] +/Parent 1134 0 R +/Annots [ 1151 0 R 1152 0 R 1153 0 R ] >> -% 1146 0 obj +% 1151 0 obj << /Type /Annot /Subtype /Link @@ -13302,7 +13293,7 @@ stream /Rect [419.358 343.981 495.412 355.106] /A << /S /GoTo /D (vdata) >> >> -% 1147 0 obj +% 1152 0 obj << /Type /Annot /Subtype /Link @@ -13310,7 +13301,7 @@ stream /Rect [376.221 332.303 388.176 343.151] /A << /S /GoTo /D (table.15) >> >> -% 1148 0 obj +% 1153 0 obj << /Type /Annot /Subtype /Link @@ -13318,45 +13309,45 @@ stream /Rect [345.53 264.991 412.588 276.116] /A << /S /GoTo /D (descdata) >> >> -% 1152 0 obj +% 1157 0 obj << -/D [1150 0 R /XYZ 149.705 753.953 null] +/D [1155 0 R /XYZ 149.705 753.953 null] >> % 268 0 obj << -/D [1150 0 R /XYZ 150.705 720.077 null] +/D [1155 0 R /XYZ 150.705 720.077 null] >> -% 1153 0 obj +% 1158 0 obj << -/D [1150 0 R /XYZ 320.941 511.222 null] +/D [1155 0 R /XYZ 320.941 511.222 null] >> -% 1154 0 obj +% 1159 0 obj << -/D [1150 0 R /XYZ 150.705 480.819 null] +/D [1155 0 R /XYZ 150.705 480.819 null] >> -% 1155 0 obj +% 1160 0 obj << -/D [1150 0 R /XYZ 150.705 482.756 null] +/D [1155 0 R /XYZ 150.705 482.756 null] >> -% 1156 0 obj +% 1161 0 obj << -/D [1150 0 R /XYZ 150.705 470.801 null] +/D [1155 0 R /XYZ 150.705 470.801 null] >> -% 1149 0 obj +% 1154 0 obj << -/Font << /F16 546 0 R /F8 549 0 R /F11 740 0 R /F14 757 0 R /F10 756 0 R /F27 548 0 R /F30 754 0 R >> +/Font << /F16 550 0 R /F8 553 0 R /F11 745 0 R /F14 762 0 R /F10 761 0 R /F27 552 0 R /F30 759 0 R >> /ProcSet [ /PDF /Text ] >> -% 1162 0 obj +% 1167 0 obj << /Type /Page -/Contents 1163 0 R -/Resources 1161 0 R +/Contents 1168 0 R +/Resources 1166 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1129 0 R -/Annots [ 1157 0 R 1159 0 R 1160 0 R ] +/Parent 1134 0 R +/Annots [ 1162 0 R 1164 0 R 1165 0 R ] >> -% 1157 0 obj +% 1162 0 obj << /Type /Annot /Subtype /Link @@ -13364,7 +13355,7 @@ stream /Rect [203.009 555.748 214.964 566.597] /A << /S /GoTo /D (table.15) >> >> -% 1159 0 obj +% 1164 0 obj << /Type /Annot /Subtype /Link @@ -13372,7 +13363,7 @@ stream /Rect [407.019 326.22 413.993 338.84] /A << /S /GoTo /D (figure.8) >> >> -% 1160 0 obj +% 1165 0 obj << /Type /Annot /Subtype /Link @@ -13380,99 +13371,99 @@ stream /Rect [306.759 302.697 313.733 313.546] /A << /S /GoTo /D (figure.7) >> >> -% 1164 0 obj +% 1169 0 obj << -/D [1162 0 R /XYZ 98.895 753.953 null] +/D [1167 0 R /XYZ 98.895 753.953 null] >> -% 1165 0 obj +% 1170 0 obj << -/D [1162 0 R /XYZ 99.895 465.033 null] +/D [1167 0 R /XYZ 99.895 465.033 null] >> -% 1166 0 obj +% 1171 0 obj << -/D [1162 0 R /XYZ 99.895 431.215 null] +/D [1167 0 R /XYZ 99.895 431.215 null] >> -% 1167 0 obj +% 1172 0 obj << -/D [1162 0 R /XYZ 99.895 387.38 null] +/D [1167 0 R /XYZ 99.895 387.38 null] >> -% 1161 0 obj +% 1166 0 obj << -/Font << /F27 548 0 R /F8 549 0 R /F11 740 0 R /F16 546 0 R /F10 756 0 R /F30 754 0 R >> +/Font << /F27 552 0 R /F8 553 0 R /F11 745 0 R /F16 550 0 R /F10 761 0 R /F30 759 0 R >> /ProcSet [ /PDF /Text ] >> -% 1170 0 obj +% 1175 0 obj << /Type /Page -/Contents 1171 0 R -/Resources 1169 0 R +/Contents 1176 0 R +/Resources 1174 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1129 0 R +/Parent 1134 0 R >> -% 1172 0 obj +% 1177 0 obj << -/D [1170 0 R /XYZ 149.705 753.953 null] +/D [1175 0 R /XYZ 149.705 753.953 null] >> -% 1169 0 obj +% 1174 0 obj << -/Font << /F31 760 0 R /F8 549 0 R >> +/Font << /F31 765 0 R /F8 553 0 R >> /ProcSet [ /PDF /Text ] >> -% 1174 0 obj +% 1179 0 obj << /Type /Page -/Contents 1175 0 R -/Resources 1173 0 R +/Contents 1180 0 R +/Resources 1178 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1177 0 R +/Parent 1182 0 R >> -% 1178 0 obj +% 1183 0 obj << /Producer (ESP Ghostscript 815.03) /CreationDate (D:20070118114343) /ModDate (D:20070118114343) >> -% 1179 0 obj +% 1184 0 obj << /Type /ExtGState /OPM 1 >> -% 1180 0 obj +% 1185 0 obj << /BaseFont /Times-Roman /Type /Font /Subtype /Type1 >> -% 1181 0 obj +% 1186 0 obj << /BaseFont /Times-Bold /Type /Font /Subtype /Type1 >> -% 1176 0 obj +% 1181 0 obj << -/D [1174 0 R /XYZ 98.895 753.953 null] +/D [1179 0 R /XYZ 98.895 753.953 null] >> -% 1168 0 obj +% 1173 0 obj << -/D [1174 0 R /XYZ 232.883 275.514 null] +/D [1179 0 R /XYZ 232.883 275.514 null] >> -% 1173 0 obj +% 1178 0 obj << -/Font << /F8 549 0 R >> -/XObject << /Im4 1158 0 R >> +/Font << /F8 553 0 R >> +/XObject << /Im4 1163 0 R >> /ProcSet [ /PDF /Text ] >> -% 1186 0 obj +% 1191 0 obj << /Type /Page -/Contents 1187 0 R -/Resources 1185 0 R +/Contents 1192 0 R +/Resources 1190 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1177 0 R -/Annots [ 1182 0 R 1183 0 R 1184 0 R ] +/Parent 1182 0 R +/Annots [ 1187 0 R 1188 0 R 1189 0 R ] >> -% 1182 0 obj +% 1187 0 obj << /Type /Annot /Subtype /Link @@ -13480,7 +13471,7 @@ stream /Rect [419.358 295.182 495.412 306.307] /A << /S /GoTo /D (vdata) >> >> -% 1183 0 obj +% 1188 0 obj << /Type /Annot /Subtype /Link @@ -13488,7 +13479,7 @@ stream /Rect [256.807 285.441 268.762 294.352] /A << /S /GoTo /D (table.16) >> >> -% 1184 0 obj +% 1189 0 obj << /Type /Annot /Subtype /Link @@ -13496,62 +13487,62 @@ stream /Rect [345.53 215.901 412.588 227.026] /A << /S /GoTo /D (descdata) >> >> -% 1188 0 obj +% 1193 0 obj << -/D [1186 0 R /XYZ 149.705 753.953 null] +/D [1191 0 R /XYZ 149.705 753.953 null] >> % 272 0 obj << -/D [1186 0 R /XYZ 150.705 720.077 null] +/D [1191 0 R /XYZ 150.705 720.077 null] >> -% 1189 0 obj +% 1194 0 obj << -/D [1186 0 R /XYZ 320.941 466.542 null] +/D [1191 0 R /XYZ 320.941 466.542 null] >> -% 1190 0 obj +% 1195 0 obj << -/D [1186 0 R /XYZ 150.705 435.558 null] +/D [1191 0 R /XYZ 150.705 435.558 null] >> -% 1191 0 obj +% 1196 0 obj << -/D [1186 0 R /XYZ 150.705 435.558 null] +/D [1191 0 R /XYZ 150.705 435.558 null] >> -% 1192 0 obj +% 1197 0 obj << -/D [1186 0 R /XYZ 150.705 423.603 null] +/D [1191 0 R /XYZ 150.705 423.603 null] >> -% 1185 0 obj +% 1190 0 obj << -/Font << /F16 546 0 R /F8 549 0 R /F11 740 0 R /F14 757 0 R /F10 756 0 R /F7 755 0 R /F27 548 0 R /F30 754 0 R >> +/Font << /F16 550 0 R /F8 553 0 R /F11 745 0 R /F14 762 0 R /F10 761 0 R /F7 760 0 R /F27 552 0 R /F30 759 0 R >> /ProcSet [ /PDF /Text ] >> -% 1194 0 obj +% 1199 0 obj << /Type /Page -/Contents 1195 0 R -/Resources 1193 0 R +/Contents 1200 0 R +/Resources 1198 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1177 0 R +/Parent 1182 0 R >> -% 1196 0 obj +% 1201 0 obj << -/D [1194 0 R /XYZ 98.895 753.953 null] +/D [1199 0 R /XYZ 98.895 753.953 null] >> -% 1193 0 obj +% 1198 0 obj << -/Font << /F27 548 0 R /F8 549 0 R /F30 754 0 R >> +/Font << /F27 552 0 R /F8 553 0 R /F30 759 0 R >> /ProcSet [ /PDF /Text ] >> -% 1200 0 obj +% 1205 0 obj << /Type /Page -/Contents 1201 0 R -/Resources 1199 0 R +/Contents 1206 0 R +/Resources 1204 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1177 0 R -/Annots [ 1197 0 R ] +/Parent 1182 0 R +/Annots [ 1202 0 R ] >> -% 1197 0 obj +% 1202 0 obj << /Type /Annot /Subtype /Link @@ -13559,41 +13550,41 @@ stream /Rect [345.53 210.686 412.588 221.811] /A << /S /GoTo /D (descdata) >> >> -% 1202 0 obj +% 1207 0 obj << -/D [1200 0 R /XYZ 149.705 753.953 null] +/D [1205 0 R /XYZ 149.705 753.953 null] >> % 276 0 obj << -/D [1200 0 R /XYZ 150.705 720.077 null] +/D [1205 0 R /XYZ 150.705 720.077 null] >> -% 1203 0 obj +% 1208 0 obj << -/D [1200 0 R /XYZ 320.941 451.038 null] +/D [1205 0 R /XYZ 320.941 451.038 null] >> -% 1204 0 obj +% 1209 0 obj << -/D [1200 0 R /XYZ 150.705 417.777 null] +/D [1205 0 R /XYZ 150.705 417.777 null] >> -% 1205 0 obj +% 1210 0 obj << -/D [1200 0 R /XYZ 150.705 417.777 null] +/D [1205 0 R /XYZ 150.705 417.777 null] >> -% 1199 0 obj +% 1204 0 obj << -/Font << /F16 546 0 R /F8 549 0 R /F11 740 0 R /F10 756 0 R /F14 757 0 R /F7 755 0 R /F27 548 0 R /F30 754 0 R >> +/Font << /F16 550 0 R /F8 553 0 R /F11 745 0 R /F10 761 0 R /F14 762 0 R /F7 760 0 R /F27 552 0 R /F30 759 0 R >> /ProcSet [ /PDF /Text ] >> -% 1209 0 obj +% 1214 0 obj << /Type /Page -/Contents 1210 0 R -/Resources 1208 0 R +/Contents 1215 0 R +/Resources 1213 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1177 0 R -/Annots [ 1198 0 R 1206 0 R 1207 0 R ] +/Parent 1182 0 R +/Annots [ 1203 0 R 1211 0 R 1212 0 R ] >> -% 1198 0 obj +% 1203 0 obj << /Type /Annot /Subtype /Link @@ -13601,7 +13592,7 @@ stream /Rect [285.522 643.143 361.576 654.268] /A << /S /GoTo /D (vdata) >> >> -% 1206 0 obj +% 1211 0 obj << /Type /Annot /Subtype /Link @@ -13609,7 +13600,7 @@ stream /Rect [123.806 543.516 199.86 554.641] /A << /S /GoTo /D (vdata) >> >> -% 1207 0 obj +% 1212 0 obj << /Type /Annot /Subtype /Link @@ -13617,69 +13608,53 @@ stream /Rect [422.94 543.516 434.896 554.641] /A << /S /GoTo /D (table.17) >> >> -% 1211 0 obj +% 1216 0 obj << -/D [1209 0 R /XYZ 98.895 753.953 null] +/D [1214 0 R /XYZ 98.895 753.953 null] >> -% 1208 0 obj +% 1213 0 obj << -/Font << /F27 548 0 R /F8 549 0 R /F30 754 0 R /F11 740 0 R >> +/Font << /F27 552 0 R /F8 553 0 R /F30 759 0 R /F11 745 0 R >> /ProcSet [ /PDF /Text ] >> -% 1213 0 obj +% 1218 0 obj << /Type /Page -/Contents 1214 0 R -/Resources 1212 0 R +/Contents 1219 0 R +/Resources 1217 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1177 0 R +/Parent 1182 0 R >> -% 1215 0 obj +% 1220 0 obj << -/D [1213 0 R /XYZ 149.705 753.953 null] +/D [1218 0 R /XYZ 149.705 753.953 null] >> % 280 0 obj << -/D [1213 0 R /XYZ 150.705 716.092 null] +/D [1218 0 R /XYZ 150.705 716.092 null] >> % 284 0 obj << -/D [1213 0 R /XYZ 150.705 696.263 null] +/D [1218 0 R /XYZ 150.705 696.263 null] >> -% 1212 0 obj +% 1217 0 obj << -/Font << /F16 546 0 R /F30 754 0 R /F8 549 0 R /F27 548 0 R /F11 740 0 R /F14 757 0 R >> +/Font << /F16 550 0 R /F30 759 0 R /F8 553 0 R /F27 552 0 R /F11 745 0 R /F14 762 0 R >> /ProcSet [ /PDF /Text ] >> -% 1218 0 obj +% 1223 0 obj << /Type /Page -/Contents 1219 0 R -/Resources 1217 0 R +/Contents 1224 0 R +/Resources 1222 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1222 0 R -/Annots [ 1216 0 R ] ->> -% 1216 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [294.721 325.282 361.779 336.407] -/A << /S /GoTo /D (descdata) >> ->> -% 1220 0 obj -<< -/D [1218 0 R /XYZ 98.895 753.953 null] ->> -% 1221 0 obj -<< -/D [1218 0 R /XYZ 99.895 234.372 null] +/Parent 1227 0 R +/Annots [ 1221 0 R ] >> endstream endobj -1227 0 obj +1232 0 obj << /Length 10049 >> @@ -13750,7 +13725,7 @@ ET endstream endobj -1232 0 obj +1237 0 obj << /Length 2660 >> @@ -13785,7 +13760,7 @@ ET endstream endobj -1242 0 obj +1247 0 obj << /Length 7171 >> @@ -13870,7 +13845,7 @@ ET endstream endobj -1247 0 obj +1252 0 obj << /Length 3156 >> @@ -13913,7 +13888,7 @@ ET endstream endobj -1256 0 obj +1261 0 obj << /Length 3493 >> @@ -14015,7 +13990,7 @@ ET endstream endobj -1263 0 obj +1268 0 obj << /Length 3277 >> @@ -14113,7 +14088,7 @@ ET endstream endobj -1269 0 obj +1274 0 obj << /Length 2243 >> @@ -14182,7 +14157,7 @@ ET endstream endobj -1275 0 obj +1280 0 obj << /Length 5927 >> @@ -14292,7 +14267,7 @@ ET endstream endobj -1279 0 obj +1284 0 obj << /Length 1587 >> @@ -14315,7 +14290,7 @@ ET endstream endobj -1287 0 obj +1292 0 obj << /Length 4887 >> @@ -14422,7 +14397,7 @@ ET endstream endobj -1297 0 obj +1302 0 obj << /Length 6453 >> @@ -14529,7 +14504,7 @@ ET endstream endobj -1301 0 obj +1306 0 obj << /Length 6087 >> @@ -14613,7 +14588,7 @@ ET endstream endobj -1317 0 obj +1322 0 obj << /Length 6648 >> @@ -14748,7 +14723,7 @@ ET endstream endobj -1321 0 obj +1326 0 obj << /Length 2248 >> @@ -14787,148 +14762,43 @@ ET endstream endobj -1333 0 obj -<< -/Length 3084 ->> -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 [(spfree)-375(|)-375(F)94(rees)-375(a)-375(sparse)-375(matrix)]TJ -0 g 0 G -0 g 0 G -/F30 9.9626 Tf -25.091 -18.389 Td [(call)-525(psb_spfree\050a,)-525(desc_a,)-525(info\051)]TJ -0 g 0 G -/F27 9.9626 Tf 0 -21.918 Td [(T)32(yp)-32(e:)]TJ -0 g 0 G -/F8 9.9626 Tf 33.797 0 Td [(Sync)28(hronous.)]TJ -0 g 0 G -/F27 9.9626 Tf -33.797 -19.926 Td [(On)-383(En)32(try)]TJ -0 g 0 G -0 g 0 G - 0 -19.925 Td [(a)]TJ -0 g 0 G -/F8 9.9626 Tf 10.551 0 Td [(the)-333(matrix)-334(to)-333(b)-28(e)-333(freed.)]TJ 14.356 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 27.95 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -27.95 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.183 0 Td [(required)]TJ/F8 9.9626 Tf -25.183 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.485 0 Td [(inout)]TJ/F8 9.9626 Tf 26.097 0 Td [(.)]TJ -59.582 -11.956 Td [(Sp)-28(eci\014ed)-333(as:)-444(a)-334(structured)-333(data)-333(of)-334(t)28(yp)-28(e)]TJ -0 0 1 rg 0 0 1 RG -/F30 9.9626 Tf 170.914 0 Td [(psb)]TJ -ET -q -1 0 0 1 362.845 578.35 cm -[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S -Q -BT -/F30 9.9626 Tf 365.983 578.15 Td [(Tspmat)]TJ -ET -q -1 0 0 1 397.993 578.35 cm -[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S -Q -BT -/F30 9.9626 Tf 401.131 578.15 Td [(type)]TJ -0 g 0 G -/F8 9.9626 Tf 20.921 0 Td [(.)]TJ -0 g 0 G -/F27 9.9626 Tf -271.347 -19.925 Td [(desc)]TJ -ET -q -1 0 0 1 172.619 558.424 cm -[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S -Q -BT -/F27 9.9626 Tf 176.057 558.225 Td [(a)]TJ -0 g 0 G -/F8 9.9626 Tf 10.55 0 Td [(the)-333(comm)27(unication)-333(descriptor.)]TJ -10.996 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 27.951 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf 23.073 0 Td [(.)]TJ -51.024 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.184 0 Td [(required)]TJ/F8 9.9626 Tf 41.898 0 Td [(.)]TJ -67.082 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.548 0 Td [(.)]TJ -43.034 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(structured)-333(data)-333(of)-334(t)28(yp)-28(e)]TJ -0 0 1 rg 0 0 1 RG -/F30 9.9626 Tf 170.915 0 Td [(psb)]TJ -ET -q -1 0 0 1 362.845 510.604 cm -[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S -Q -BT -/F30 9.9626 Tf 365.983 510.405 Td [(desc)]TJ -ET -q -1 0 0 1 387.532 510.604 cm -[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S -Q -BT -/F30 9.9626 Tf 390.67 510.405 Td [(type)]TJ -0 g 0 G -/F8 9.9626 Tf 20.922 0 Td [(.)]TJ -0 g 0 G -/F27 9.9626 Tf -260.887 -21.918 Td [(On)-383(Return)]TJ -0 g 0 G -0 g 0 G - 0 -19.926 Td [(info)]TJ -0 g 0 G -/F8 9.9626 Tf 23.758 0 Td [(Error)-333(co)-28(de.)]TJ 1.148 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.612 0 Td [(required)]TJ/F8 9.9626 Tf -29.612 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(out)]TJ/F8 9.9626 Tf 16.549 0 Td [(.)]TJ -50.035 -11.955 Td [(An)-333(in)27(t)1(e)-1(ger)-333(v)56(alue;)-334(0)-333(means)-333(no)-334(error)-333(has)-333(b)-28(een)-333(detec)-1(ted.)]TJ -0 g 0 G - 141.968 -330.303 Td [(76)]TJ -0 g 0 G -ET - -endstream -endobj -1223 0 obj +1228 0 obj << /Type /ObjStm /N 100 -/First 979 -/Length 10351 +/First 980 +/Length 10244 >> stream -1217 0 1226 119 1224 258 1228 416 1229 475 1225 534 1231 666 1233 784 1234 842 1235 900 -1236 958 1237 1016 1238 1074 1230 1130 1241 1210 1239 1349 1243 1494 288 1553 1240 1611 1246 1730 -1244 1869 1248 2027 1249 2085 1250 2143 1251 2201 1245 2259 1255 2365 1252 2513 1253 2658 1257 2804 -292 2863 1258 2921 1254 2980 1262 3086 1259 3234 1260 3380 1264 3527 296 3585 1261 3642 1268 3748 -1266 3887 1270 4032 300 4091 1267 4149 1274 4255 1271 4403 1272 4547 1276 4694 304 4752 1273 4809 -1278 4941 1280 5059 1281 5118 1282 5177 1277 5236 1286 5316 1283 5464 1284 5610 1288 5753 308 5811 -1289 5868 1290 5926 1291 5984 1285 6042 1296 6161 1292 6309 1293 6456 1298 6599 312 6658 1295 6716 -1300 6835 1294 6974 1302 7120 1303 7178 1304 7236 1305 7294 1306 7352 1307 7409 1308 7467 1309 7525 -1310 7583 1311 7641 1299 7699 1316 7818 1313 7966 1314 8111 1318 8255 316 8314 1315 8372 1320 8478 -1322 8596 1323 8654 1324 8712 1325 8770 1326 8828 1327 8886 1328 8944 1319 9001 1332 9081 1329 9229 -% 1217 0 obj -<< -/Font << /F27 548 0 R /F8 549 0 R /F30 754 0 R /F11 740 0 R /F16 546 0 R >> -/ProcSet [ /PDF /Text ] ->> -% 1226 0 obj -<< -/Type /Page -/Contents 1227 0 R -/Resources 1225 0 R -/MediaBox [0 0 595.276 841.89] -/Parent 1222 0 R -/Annots [ 1224 0 R ] ->> -% 1224 0 obj +1221 0 1225 147 1226 205 1222 263 1231 382 1229 521 1233 679 1234 738 1230 797 1236 929 +1238 1047 1239 1105 1240 1163 1241 1221 1242 1279 1243 1337 1235 1393 1246 1473 1244 1612 1248 1757 +288 1816 1245 1874 1251 1993 1249 2132 1253 2290 1254 2348 1255 2406 1256 2464 1250 2522 1260 2628 +1257 2776 1258 2921 1262 3067 292 3126 1263 3184 1259 3243 1267 3349 1264 3497 1265 3643 1269 3790 +296 3848 1266 3905 1273 4011 1271 4150 1275 4295 300 4354 1272 4412 1279 4518 1276 4666 1277 4810 +1281 4957 304 5015 1278 5072 1283 5204 1285 5322 1286 5381 1287 5440 1282 5499 1291 5579 1288 5727 +1289 5873 1293 6016 308 6074 1294 6131 1295 6189 1296 6247 1290 6305 1301 6424 1297 6572 1298 6719 +1303 6862 312 6921 1300 6979 1305 7098 1299 7237 1307 7383 1308 7441 1309 7499 1310 7557 1311 7615 +1312 7672 1313 7730 1314 7788 1315 7846 1316 7904 1304 7962 1321 8081 1318 8229 1319 8374 1323 8518 +316 8577 1320 8635 1325 8741 1327 8859 1328 8917 1329 8975 1330 9033 1331 9091 1332 9149 1333 9207 +% 1221 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [408.792 215.702 431.263 226.827] -/A << /S /GoTo /D (subsubsection.2.3.1) >> +/Rect [294.721 325.282 361.779 336.407] +/A << /S /GoTo /D (descdata) >> >> -% 1228 0 obj +% 1225 0 obj << -/D [1226 0 R /XYZ 149.705 753.953 null] +/D [1223 0 R /XYZ 98.895 753.953 null] >> -% 1229 0 obj +% 1226 0 obj << -/D [1226 0 R /XYZ 150.705 134.155 null] +/D [1223 0 R /XYZ 99.895 234.372 null] >> -% 1225 0 obj +% 1222 0 obj << -/Font << /F30 754 0 R /F8 549 0 R /F27 548 0 R /F14 757 0 R /F11 740 0 R /F10 756 0 R >> +/Font << /F27 552 0 R /F8 553 0 R /F30 759 0 R /F11 745 0 R /F16 550 0 R >> /ProcSet [ /PDF /Text ] >> % 1231 0 obj @@ -14937,47 +14807,77 @@ stream /Contents 1232 0 R /Resources 1230 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1222 0 R +/Parent 1227 0 R +/Annots [ 1229 0 R ] >> -% 1233 0 obj +% 1229 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [408.792 215.702 431.263 226.827] +/A << /S /GoTo /D (subsubsection.2.3.1) >> +>> +% 1233 0 obj << -/D [1231 0 R /XYZ 98.895 753.953 null] +/D [1231 0 R /XYZ 149.705 753.953 null] >> % 1234 0 obj << -/D [1231 0 R /XYZ 99.895 716.092 null] +/D [1231 0 R /XYZ 150.705 134.155 null] >> -% 1235 0 obj +% 1230 0 obj << -/D [1231 0 R /XYZ 99.895 688.251 null] +/Font << /F30 759 0 R /F8 553 0 R /F27 552 0 R /F14 762 0 R /F11 745 0 R /F10 761 0 R >> +/ProcSet [ /PDF /Text ] >> % 1236 0 obj << -/D [1231 0 R /XYZ 99.895 668.049 null] +/Type /Page +/Contents 1237 0 R +/Resources 1235 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1227 0 R >> -% 1237 0 obj +% 1238 0 obj << -/D [1231 0 R /XYZ 99.895 626.428 null] +/D [1236 0 R /XYZ 98.895 753.953 null] >> -% 1238 0 obj +% 1239 0 obj << -/D [1231 0 R /XYZ 99.895 568.7 null] +/D [1236 0 R /XYZ 99.895 716.092 null] >> -% 1230 0 obj +% 1240 0 obj << -/Font << /F8 549 0 R /F30 754 0 R >> -/ProcSet [ /PDF /Text ] +/D [1236 0 R /XYZ 99.895 688.251 null] >> % 1241 0 obj << +/D [1236 0 R /XYZ 99.895 668.049 null] +>> +% 1242 0 obj +<< +/D [1236 0 R /XYZ 99.895 626.428 null] +>> +% 1243 0 obj +<< +/D [1236 0 R /XYZ 99.895 568.7 null] +>> +% 1235 0 obj +<< +/Font << /F8 553 0 R /F30 759 0 R >> +/ProcSet [ /PDF /Text ] +>> +% 1246 0 obj +<< /Type /Page -/Contents 1242 0 R -/Resources 1240 0 R +/Contents 1247 0 R +/Resources 1245 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1222 0 R -/Annots [ 1239 0 R ] +/Parent 1227 0 R +/Annots [ 1244 0 R ] >> -% 1239 0 obj +% 1244 0 obj << /Type /Annot /Subtype /Link @@ -14985,29 +14885,29 @@ stream /Rect [345.53 117.115 412.588 128.24] /A << /S /GoTo /D (descdata) >> >> -% 1243 0 obj +% 1248 0 obj << -/D [1241 0 R /XYZ 149.705 753.953 null] +/D [1246 0 R /XYZ 149.705 753.953 null] >> % 288 0 obj << -/D [1241 0 R /XYZ 150.705 720.077 null] +/D [1246 0 R /XYZ 150.705 720.077 null] >> -% 1240 0 obj +% 1245 0 obj << -/Font << /F16 546 0 R /F30 754 0 R /F8 549 0 R /F11 740 0 R /F27 548 0 R >> +/Font << /F16 550 0 R /F30 759 0 R /F8 553 0 R /F11 745 0 R /F27 552 0 R >> /ProcSet [ /PDF /Text ] >> -% 1246 0 obj +% 1251 0 obj << /Type /Page -/Contents 1247 0 R -/Resources 1245 0 R +/Contents 1252 0 R +/Resources 1250 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1222 0 R -/Annots [ 1244 0 R ] +/Parent 1227 0 R +/Annots [ 1249 0 R ] >> -% 1244 0 obj +% 1249 0 obj << /Type /Annot /Subtype /Link @@ -15015,37 +14915,37 @@ stream /Rect [274.574 402.324 297.045 413.172] /A << /S /GoTo /D (subsubsection.2.3.1) >> >> -% 1248 0 obj +% 1253 0 obj << -/D [1246 0 R /XYZ 98.895 753.953 null] +/D [1251 0 R /XYZ 98.895 753.953 null] >> -% 1249 0 obj +% 1254 0 obj << -/D [1246 0 R /XYZ 99.895 496.913 null] +/D [1251 0 R /XYZ 99.895 496.913 null] >> -% 1250 0 obj +% 1255 0 obj << -/D [1246 0 R /XYZ 99.895 475.051 null] +/D [1251 0 R /XYZ 99.895 475.051 null] >> -% 1251 0 obj +% 1256 0 obj << -/D [1246 0 R /XYZ 99.895 431.215 null] +/D [1251 0 R /XYZ 99.895 431.215 null] >> -% 1245 0 obj +% 1250 0 obj << -/Font << /F27 548 0 R /F8 549 0 R /F11 740 0 R /F16 546 0 R >> +/Font << /F27 552 0 R /F8 553 0 R /F11 745 0 R /F16 550 0 R >> /ProcSet [ /PDF /Text ] >> -% 1255 0 obj +% 1260 0 obj << /Type /Page -/Contents 1256 0 R -/Resources 1254 0 R +/Contents 1261 0 R +/Resources 1259 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1222 0 R -/Annots [ 1252 0 R 1253 0 R ] +/Parent 1227 0 R +/Annots [ 1257 0 R 1258 0 R ] >> -% 1252 0 obj +% 1257 0 obj << /Type /Annot /Subtype /Link @@ -15053,7 +14953,7 @@ stream /Rect [345.53 574.94 412.588 586.065] /A << /S /GoTo /D (descdata) >> >> -% 1253 0 obj +% 1258 0 obj << /Type /Annot /Subtype /Link @@ -15061,33 +14961,33 @@ stream /Rect [345.53 485.277 412.588 496.401] /A << /S /GoTo /D (descdata) >> >> -% 1257 0 obj +% 1262 0 obj << -/D [1255 0 R /XYZ 149.705 753.953 null] +/D [1260 0 R /XYZ 149.705 753.953 null] >> % 292 0 obj << -/D [1255 0 R /XYZ 150.705 720.077 null] +/D [1260 0 R /XYZ 150.705 720.077 null] >> -% 1258 0 obj +% 1263 0 obj << -/D [1255 0 R /XYZ 150.705 394.838 null] +/D [1260 0 R /XYZ 150.705 394.838 null] >> -% 1254 0 obj +% 1259 0 obj << -/Font << /F16 546 0 R /F30 754 0 R /F27 548 0 R /F8 549 0 R >> +/Font << /F16 550 0 R /F30 759 0 R /F27 552 0 R /F8 553 0 R >> /ProcSet [ /PDF /Text ] >> -% 1262 0 obj +% 1267 0 obj << /Type /Page -/Contents 1263 0 R -/Resources 1261 0 R +/Contents 1268 0 R +/Resources 1266 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1265 0 R -/Annots [ 1259 0 R 1260 0 R ] +/Parent 1270 0 R +/Annots [ 1264 0 R 1265 0 R ] >> -% 1259 0 obj +% 1264 0 obj << /Type /Annot /Subtype /Link @@ -15095,7 +14995,7 @@ stream /Rect [294.721 574.94 361.779 586.065] /A << /S /GoTo /D (descdata) >> >> -% 1260 0 obj +% 1265 0 obj << /Type /Annot /Subtype /Link @@ -15103,29 +15003,29 @@ stream /Rect [294.721 485.277 361.779 496.401] /A << /S /GoTo /D (descdata) >> >> -% 1264 0 obj +% 1269 0 obj << -/D [1262 0 R /XYZ 98.895 753.953 null] +/D [1267 0 R /XYZ 98.895 753.953 null] >> % 296 0 obj << -/D [1262 0 R /XYZ 99.895 720.077 null] +/D [1267 0 R /XYZ 99.895 720.077 null] >> -% 1261 0 obj +% 1266 0 obj << -/Font << /F16 546 0 R /F30 754 0 R /F27 548 0 R /F8 549 0 R >> +/Font << /F16 550 0 R /F30 759 0 R /F27 552 0 R /F8 553 0 R >> /ProcSet [ /PDF /Text ] >> -% 1268 0 obj +% 1273 0 obj << /Type /Page -/Contents 1269 0 R -/Resources 1267 0 R +/Contents 1274 0 R +/Resources 1272 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1265 0 R -/Annots [ 1266 0 R ] +/Parent 1270 0 R +/Annots [ 1271 0 R ] >> -% 1266 0 obj +% 1271 0 obj << /Type /Annot /Subtype /Link @@ -15133,29 +15033,29 @@ stream /Rect [345.53 574.94 412.588 586.065] /A << /S /GoTo /D (descdata) >> >> -% 1270 0 obj +% 1275 0 obj << -/D [1268 0 R /XYZ 149.705 753.953 null] +/D [1273 0 R /XYZ 149.705 753.953 null] >> % 300 0 obj << -/D [1268 0 R /XYZ 150.705 720.077 null] +/D [1273 0 R /XYZ 150.705 720.077 null] >> -% 1267 0 obj +% 1272 0 obj << -/Font << /F16 546 0 R /F30 754 0 R /F27 548 0 R /F8 549 0 R >> +/Font << /F16 550 0 R /F30 759 0 R /F27 552 0 R /F8 553 0 R >> /ProcSet [ /PDF /Text ] >> -% 1274 0 obj +% 1279 0 obj << /Type /Page -/Contents 1275 0 R -/Resources 1273 0 R +/Contents 1280 0 R +/Resources 1278 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1265 0 R -/Annots [ 1271 0 R 1272 0 R ] +/Parent 1270 0 R +/Annots [ 1276 0 R 1277 0 R ] >> -% 1271 0 obj +% 1276 0 obj << /Type /Annot /Subtype /Link @@ -15163,7 +15063,7 @@ stream /Rect [294.721 453.24 372.239 464.364] /A << /S /GoTo /D (spdata) >> >> -% 1272 0 obj +% 1277 0 obj << /Type /Annot /Subtype /Link @@ -15171,54 +15071,54 @@ stream /Rect [294.721 209.896 361.779 221.021] /A << /S /GoTo /D (descdata) >> >> -% 1276 0 obj +% 1281 0 obj << -/D [1274 0 R /XYZ 98.895 753.953 null] +/D [1279 0 R /XYZ 98.895 753.953 null] >> % 304 0 obj << -/D [1274 0 R /XYZ 99.895 720.077 null] +/D [1279 0 R /XYZ 99.895 720.077 null] >> -% 1273 0 obj +% 1278 0 obj << -/Font << /F16 546 0 R /F30 754 0 R /F8 549 0 R /F27 548 0 R /F11 740 0 R /F14 757 0 R >> +/Font << /F16 550 0 R /F30 759 0 R /F8 553 0 R /F27 552 0 R /F11 745 0 R /F14 762 0 R >> /ProcSet [ /PDF /Text ] >> -% 1278 0 obj +% 1283 0 obj << /Type /Page -/Contents 1279 0 R -/Resources 1277 0 R +/Contents 1284 0 R +/Resources 1282 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1265 0 R +/Parent 1270 0 R >> -% 1280 0 obj +% 1285 0 obj << -/D [1278 0 R /XYZ 149.705 753.953 null] +/D [1283 0 R /XYZ 149.705 753.953 null] >> -% 1281 0 obj +% 1286 0 obj << -/D [1278 0 R /XYZ 150.705 716.092 null] +/D [1283 0 R /XYZ 150.705 716.092 null] >> -% 1282 0 obj +% 1287 0 obj << -/D [1278 0 R /XYZ 150.705 664.341 null] +/D [1283 0 R /XYZ 150.705 664.341 null] >> -% 1277 0 obj +% 1282 0 obj << -/Font << /F8 549 0 R /F30 754 0 R >> +/Font << /F8 553 0 R /F30 759 0 R >> /ProcSet [ /PDF /Text ] >> -% 1286 0 obj +% 1291 0 obj << /Type /Page -/Contents 1287 0 R -/Resources 1285 0 R +/Contents 1292 0 R +/Resources 1290 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1265 0 R -/Annots [ 1283 0 R 1284 0 R ] +/Parent 1270 0 R +/Annots [ 1288 0 R 1289 0 R ] >> -% 1283 0 obj +% 1288 0 obj << /Type /Annot /Subtype /Link @@ -15226,7 +15126,7 @@ stream /Rect [294.721 574.94 361.779 586.065] /A << /S /GoTo /D (descdata) >> >> -% 1284 0 obj +% 1289 0 obj << /Type /Annot /Subtype /Link @@ -15234,41 +15134,41 @@ stream /Rect [294.721 405.575 372.239 416.7] /A << /S /GoTo /D (spdata) >> >> -% 1288 0 obj +% 1293 0 obj << -/D [1286 0 R /XYZ 98.895 753.953 null] +/D [1291 0 R /XYZ 98.895 753.953 null] >> % 308 0 obj << -/D [1286 0 R /XYZ 99.895 720.077 null] +/D [1291 0 R /XYZ 99.895 720.077 null] >> -% 1289 0 obj +% 1294 0 obj << -/D [1286 0 R /XYZ 99.895 315.137 null] +/D [1291 0 R /XYZ 99.895 315.137 null] >> -% 1290 0 obj +% 1295 0 obj << -/D [1286 0 R /XYZ 99.895 293.274 null] +/D [1291 0 R /XYZ 99.895 293.274 null] >> -% 1291 0 obj +% 1296 0 obj << -/D [1286 0 R /XYZ 99.895 273.349 null] +/D [1291 0 R /XYZ 99.895 273.349 null] >> -% 1285 0 obj +% 1290 0 obj << -/Font << /F16 546 0 R /F30 754 0 R /F27 548 0 R /F8 549 0 R /F11 740 0 R >> +/Font << /F16 550 0 R /F30 759 0 R /F27 552 0 R /F8 553 0 R /F11 745 0 R >> /ProcSet [ /PDF /Text ] >> -% 1296 0 obj +% 1301 0 obj << /Type /Page -/Contents 1297 0 R -/Resources 1295 0 R +/Contents 1302 0 R +/Resources 1300 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1265 0 R -/Annots [ 1292 0 R 1293 0 R ] +/Parent 1270 0 R +/Annots [ 1297 0 R 1298 0 R ] >> -% 1292 0 obj +% 1297 0 obj << /Type /Annot /Subtype /Link @@ -15276,7 +15176,7 @@ stream /Rect [311.962 288.004 379.019 299.129] /A << /S /GoTo /D (descdata) >> >> -% 1293 0 obj +% 1298 0 obj << /Type /Annot /Subtype /Link @@ -15284,29 +15184,29 @@ stream /Rect [345.53 117.115 423.049 128.24] /A << /S /GoTo /D (spdata) >> >> -% 1298 0 obj +% 1303 0 obj << -/D [1296 0 R /XYZ 149.705 753.953 null] +/D [1301 0 R /XYZ 149.705 753.953 null] >> % 312 0 obj << -/D [1296 0 R /XYZ 150.705 720.077 null] +/D [1301 0 R /XYZ 150.705 720.077 null] >> -% 1295 0 obj +% 1300 0 obj << -/Font << /F16 546 0 R /F30 754 0 R /F27 548 0 R /F8 549 0 R /F11 740 0 R >> +/Font << /F16 550 0 R /F30 759 0 R /F27 552 0 R /F8 553 0 R /F11 745 0 R >> /ProcSet [ /PDF /Text ] >> -% 1300 0 obj +% 1305 0 obj << /Type /Page -/Contents 1301 0 R -/Resources 1299 0 R +/Contents 1306 0 R +/Resources 1304 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1312 0 R -/Annots [ 1294 0 R ] +/Parent 1317 0 R +/Annots [ 1299 0 R ] >> -% 1294 0 obj +% 1299 0 obj << /Type /Annot /Subtype /Link @@ -15314,61 +15214,61 @@ stream /Rect [261.152 655.098 328.21 666.223] /A << /S /GoTo /D (descdata) >> >> -% 1302 0 obj +% 1307 0 obj << -/D [1300 0 R /XYZ 98.895 753.953 null] +/D [1305 0 R /XYZ 98.895 753.953 null] >> -% 1303 0 obj +% 1308 0 obj << -/D [1300 0 R /XYZ 99.895 552.704 null] +/D [1305 0 R /XYZ 99.895 552.704 null] >> -% 1304 0 obj +% 1309 0 obj << -/D [1300 0 R /XYZ 99.895 520.824 null] +/D [1305 0 R /XYZ 99.895 520.824 null] >> -% 1305 0 obj +% 1310 0 obj << -/D [1300 0 R /XYZ 99.895 487.006 null] +/D [1305 0 R /XYZ 99.895 487.006 null] >> -% 1306 0 obj +% 1311 0 obj << -/D [1300 0 R /XYZ 99.895 419.26 null] +/D [1305 0 R /XYZ 99.895 419.26 null] >> -% 1307 0 obj +% 1312 0 obj << -/D [1300 0 R /XYZ 99.895 363.469 null] +/D [1305 0 R /XYZ 99.895 363.469 null] >> -% 1308 0 obj +% 1313 0 obj << -/D [1300 0 R /XYZ 99.895 319.634 null] +/D [1305 0 R /XYZ 99.895 319.634 null] >> -% 1309 0 obj +% 1314 0 obj << -/D [1300 0 R /XYZ 99.895 287.753 null] +/D [1305 0 R /XYZ 99.895 287.753 null] >> -% 1310 0 obj +% 1315 0 obj << -/D [1300 0 R /XYZ 99.895 255.873 null] +/D [1305 0 R /XYZ 99.895 255.873 null] >> -% 1311 0 obj +% 1316 0 obj << -/D [1300 0 R /XYZ 99.895 212.037 null] +/D [1305 0 R /XYZ 99.895 212.037 null] >> -% 1299 0 obj +% 1304 0 obj << -/Font << /F27 548 0 R /F8 549 0 R /F30 754 0 R /F16 546 0 R /F11 740 0 R >> +/Font << /F27 552 0 R /F8 553 0 R /F30 759 0 R /F16 550 0 R /F11 745 0 R >> /ProcSet [ /PDF /Text ] >> -% 1316 0 obj +% 1321 0 obj << /Type /Page -/Contents 1317 0 R -/Resources 1315 0 R +/Contents 1322 0 R +/Resources 1320 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1312 0 R -/Annots [ 1313 0 R 1314 0 R ] +/Parent 1317 0 R +/Annots [ 1318 0 R 1319 0 R ] >> -% 1313 0 obj +% 1318 0 obj << /Type /Annot /Subtype /Link @@ -15376,7 +15276,7 @@ stream /Rect [345.53 576.23 412.588 587.355] /A << /S /GoTo /D (descdata) >> >> -% 1314 0 obj +% 1319 0 obj << /Type /Annot /Subtype /Link @@ -15384,81 +15284,150 @@ stream /Rect [345.53 205.776 423.049 216.901] /A << /S /GoTo /D (spdata) >> >> -% 1318 0 obj +% 1323 0 obj << -/D [1316 0 R /XYZ 149.705 753.953 null] +/D [1321 0 R /XYZ 149.705 753.953 null] >> % 316 0 obj << -/D [1316 0 R /XYZ 150.705 720.077 null] +/D [1321 0 R /XYZ 150.705 720.077 null] >> -% 1315 0 obj +% 1320 0 obj << -/Font << /F16 546 0 R /F30 754 0 R /F27 548 0 R /F8 549 0 R >> +/Font << /F16 550 0 R /F30 759 0 R /F27 552 0 R /F8 553 0 R >> /ProcSet [ /PDF /Text ] >> -% 1320 0 obj +% 1325 0 obj << /Type /Page -/Contents 1321 0 R -/Resources 1319 0 R +/Contents 1326 0 R +/Resources 1324 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1312 0 R ->> -% 1322 0 obj -<< -/D [1320 0 R /XYZ 98.895 753.953 null] ->> -% 1323 0 obj -<< -/D [1320 0 R /XYZ 99.895 716.092 null] +/Parent 1317 0 R >> -% 1324 0 obj +% 1327 0 obj << -/D [1320 0 R /XYZ 99.895 687.975 null] +/D [1325 0 R /XYZ 98.895 753.953 null] >> -% 1325 0 obj +% 1328 0 obj << -/D [1320 0 R /XYZ 99.895 668.326 null] +/D [1325 0 R /XYZ 99.895 716.092 null] >> -% 1326 0 obj +% 1329 0 obj << -/D [1320 0 R /XYZ 99.895 624.491 null] +/D [1325 0 R /XYZ 99.895 687.975 null] >> -% 1327 0 obj +% 1330 0 obj << -/D [1320 0 R /XYZ 99.895 580.655 null] +/D [1325 0 R /XYZ 99.895 668.326 null] >> -% 1328 0 obj +% 1331 0 obj << -/D [1320 0 R /XYZ 99.895 560.73 null] +/D [1325 0 R /XYZ 99.895 624.491 null] >> -% 1319 0 obj +% 1332 0 obj << -/Font << /F8 549 0 R /F30 754 0 R >> -/ProcSet [ /PDF /Text ] +/D [1325 0 R /XYZ 99.895 580.655 null] >> -% 1332 0 obj +% 1333 0 obj << -/Type /Page -/Contents 1333 0 R -/Resources 1331 0 R -/MediaBox [0 0 595.276 841.89] -/Parent 1312 0 R -/Annots [ 1329 0 R 1330 0 R ] +/D [1325 0 R /XYZ 99.895 560.73 null] >> -% 1329 0 obj + +endstream +endobj +1339 0 obj << -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [345.53 574.94 423.049 586.065] -/A << /S /GoTo /D (spdata) >> +/Length 3084 >> +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 [(spfree)-375(|)-375(F)94(rees)-375(a)-375(sparse)-375(matrix)]TJ +0 g 0 G +0 g 0 G +/F30 9.9626 Tf -25.091 -18.389 Td [(call)-525(psb_spfree\050a,)-525(desc_a,)-525(info\051)]TJ +0 g 0 G +/F27 9.9626 Tf 0 -21.918 Td [(T)32(yp)-32(e:)]TJ +0 g 0 G +/F8 9.9626 Tf 33.797 0 Td [(Sync)28(hronous.)]TJ +0 g 0 G +/F27 9.9626 Tf -33.797 -19.926 Td [(On)-383(En)32(try)]TJ +0 g 0 G +0 g 0 G + 0 -19.925 Td [(a)]TJ +0 g 0 G +/F8 9.9626 Tf 10.551 0 Td [(the)-333(matrix)-334(to)-333(b)-28(e)-333(freed.)]TJ 14.356 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 27.95 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -27.95 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.183 0 Td [(required)]TJ/F8 9.9626 Tf -25.183 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.485 0 Td [(inout)]TJ/F8 9.9626 Tf 26.097 0 Td [(.)]TJ -59.582 -11.956 Td [(Sp)-28(eci\014ed)-333(as:)-444(a)-334(structured)-333(data)-333(of)-334(t)28(yp)-28(e)]TJ +0 0 1 rg 0 0 1 RG +/F30 9.9626 Tf 170.914 0 Td [(psb)]TJ +ET +q +1 0 0 1 362.845 578.35 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +Q +BT +/F30 9.9626 Tf 365.983 578.15 Td [(Tspmat)]TJ +ET +q +1 0 0 1 397.993 578.35 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +Q +BT +/F30 9.9626 Tf 401.131 578.15 Td [(type)]TJ +0 g 0 G +/F8 9.9626 Tf 20.921 0 Td [(.)]TJ +0 g 0 G +/F27 9.9626 Tf -271.347 -19.925 Td [(desc)]TJ +ET +q +1 0 0 1 172.619 558.424 cm +[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S +Q +BT +/F27 9.9626 Tf 176.057 558.225 Td [(a)]TJ +0 g 0 G +/F8 9.9626 Tf 10.55 0 Td [(the)-333(comm)27(unication)-333(descriptor.)]TJ -10.996 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 27.951 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf 23.073 0 Td [(.)]TJ -51.024 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.184 0 Td [(required)]TJ/F8 9.9626 Tf 41.898 0 Td [(.)]TJ -67.082 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.548 0 Td [(.)]TJ -43.034 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(structured)-333(data)-333(of)-334(t)28(yp)-28(e)]TJ +0 0 1 rg 0 0 1 RG +/F30 9.9626 Tf 170.915 0 Td [(psb)]TJ +ET +q +1 0 0 1 362.845 510.604 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +Q +BT +/F30 9.9626 Tf 365.983 510.405 Td [(desc)]TJ +ET +q +1 0 0 1 387.532 510.604 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +Q +BT +/F30 9.9626 Tf 390.67 510.405 Td [(type)]TJ +0 g 0 G +/F8 9.9626 Tf 20.922 0 Td [(.)]TJ +0 g 0 G +/F27 9.9626 Tf -260.887 -21.918 Td [(On)-383(Return)]TJ +0 g 0 G +0 g 0 G + 0 -19.926 Td [(info)]TJ +0 g 0 G +/F8 9.9626 Tf 23.758 0 Td [(Error)-333(co)-28(de.)]TJ 1.148 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.612 0 Td [(required)]TJ/F8 9.9626 Tf -29.612 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(out)]TJ/F8 9.9626 Tf 16.549 0 Td [(.)]TJ -50.035 -11.955 Td [(An)-333(in)27(t)1(e)-1(ger)-333(v)56(alue;)-334(0)-333(means)-333(no)-334(error)-333(has)-333(b)-28(een)-333(detec)-1(ted.)]TJ +0 g 0 G + 141.968 -330.303 Td [(76)]TJ +0 g 0 G +ET endstream endobj -1340 0 obj +1345 0 obj << /Length 3991 >> @@ -15557,7 +15526,7 @@ ET endstream endobj -1347 0 obj +1352 0 obj << /Length 5111 >> @@ -15663,7 +15632,7 @@ ET endstream endobj -1353 0 obj +1358 0 obj << /Length 6817 >> @@ -15777,7 +15746,7 @@ ET endstream endobj -1358 0 obj +1363 0 obj << /Length 1115 >> @@ -15804,7 +15773,7 @@ ET endstream endobj -1367 0 obj +1372 0 obj << /Length 5215 >> @@ -15959,7 +15928,7 @@ ET endstream endobj -1373 0 obj +1378 0 obj << /Length 3379 >> @@ -16057,7 +16026,7 @@ ET endstream endobj -1377 0 obj +1382 0 obj << /Length 3437 >> @@ -16109,7 +16078,7 @@ ET endstream endobj -1382 0 obj +1387 0 obj << /Length 6547 >> @@ -16212,7 +16181,7 @@ ET endstream endobj -1386 0 obj +1391 0 obj << /Length 692 >> @@ -16235,7 +16204,7 @@ ET endstream endobj -1394 0 obj +1399 0 obj << /Length 5736 >> @@ -16334,7 +16303,7 @@ ET endstream endobj -1399 0 obj +1404 0 obj << /Length 3271 >> @@ -16418,7 +16387,7 @@ ET endstream endobj -1405 0 obj +1410 0 obj << /Length 4983 >> @@ -16510,7 +16479,7 @@ ET endstream endobj -1411 0 obj +1416 0 obj << /Length 3240 >> @@ -16594,7 +16563,7 @@ ET endstream endobj -1417 0 obj +1422 0 obj << /Length 4992 >> @@ -16686,7 +16655,7 @@ ET endstream endobj -1423 0 obj +1428 0 obj << /Length 3821 >> @@ -16767,7 +16736,7 @@ ET endstream endobj -1431 0 obj +1436 0 obj << /Length 3654 >> @@ -16848,114 +16817,47 @@ ET endstream endobj -1438 0 obj -<< -/Length 5783 ->> -stream -0 g 0 G -0 g 0 G -BT -/F16 11.9552 Tf 99.895 706.129 Td [(psb)]TJ -ET -q -1 0 0 1 120.951 706.328 cm -[]0 d 0 J 0.398 w 0 0 m 4.035 0 l S -Q -BT -/F16 11.9552 Tf 124.986 706.129 Td [(sp)]TJ -ET -q -1 0 0 1 138.57 706.328 cm -[]0 d 0 J 0.398 w 0 0 m 4.035 0 l S -Q -BT -/F16 11.9552 Tf 142.605 706.129 Td [(getro)31(w)-375(|)-375(Extract)-375(ro)31(w\050s\051)-375(from)-375(a)-375(sparse)-375(matrix)]TJ -0 g 0 G -0 g 0 G -/F30 9.9626 Tf -42.71 -18.647 Td [(call)-525(psb_sp_getrow\050row,)-525(a,)-525(nz,)-525(ia,)-525(ja,)-525(val,)-525(info,)-525(&)]TJ 73.225 -11.955 Td [(&)-525(append,)-525(nzin,)-525(lrw\051)]TJ -0 g 0 G -/F27 9.9626 Tf -73.225 -22.334 Td [(T)32(yp)-32(e:)]TJ -0 g 0 G -/F8 9.9626 Tf 33.797 0 Td [(Async)28(hronous.)]TJ -0 g 0 G -/F27 9.9626 Tf -33.797 -20.479 Td [(On)-383(En)32(try)]TJ -0 g 0 G -0 g 0 G - 0 -20.479 Td [(ro)32(w)]TJ -0 g 0 G -/F8 9.9626 Tf 23.385 0 Td [(The)-333(\050\014rst\051)-334(ro)28(w)-333(to)-334(b)-27(e)-334(extracted.)]TJ 1.522 -11.956 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 27.951 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -27.951 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.183 0 Td [(required)]TJ/F8 9.9626 Tf -25.183 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(in)28(teger)]TJ/F11 9.9626 Tf 104.691 0 Td [(>)]TJ/F8 9.9626 Tf 10.516 0 Td [(0.)]TJ -0 g 0 G -/F27 9.9626 Tf -140.114 -20.479 Td [(a)]TJ -0 g 0 G -/F8 9.9626 Tf 10.551 0 Td [(the)-333(matrix)-334(from)-333(whic)28(h)-333(to)-334(get)-333(ro)28(ws.)]TJ 14.356 -11.956 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 27.951 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -27.951 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.183 0 Td [(required)]TJ/F8 9.9626 Tf -25.183 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(structured)-333(data)-333(of)-334(t)28(yp)-28(e)]TJ -0 0 1 rg 0 0 1 RG -/F30 9.9626 Tf 170.915 0 Td [(psb)]TJ -ET -q -1 0 0 1 312.036 496.313 cm -[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S -Q -BT -/F30 9.9626 Tf 315.174 496.114 Td [(Tspmat)]TJ -ET -q -1 0 0 1 347.183 496.313 cm -[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S -Q -BT -/F30 9.9626 Tf 350.322 496.114 Td [(type)]TJ -0 g 0 G -/F8 9.9626 Tf 20.921 0 Td [(.)]TJ -0 g 0 G -/F27 9.9626 Tf -271.348 -20.479 Td [(app)-32(end)]TJ -0 g 0 G -/F8 9.9626 Tf 41.58 0 Td [(Whether)-333(to)-334(app)-27(end)-334(or)-333(o)28(v)28(erwrite)-334(existing)-333(output.)]TJ -16.673 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 27.951 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -27.951 -11.956 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.183 0 Td [(optional)]TJ/F8 9.9626 Tf -25.183 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(logical)-333(v)55(alue)-333(default:)-444(false)-334(\050o)28(v)28(erwrite\051.)]TJ -0 g 0 G -/F27 9.9626 Tf -24.907 -20.479 Td [(nzin)]TJ -0 g 0 G -/F8 9.9626 Tf 25.986 0 Td [(Input)-333(size)-334(to)-333(b)-28(e)-333(app)-28(ended)-333(to.)]TJ -1.079 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 27.951 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -27.951 -11.956 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.183 0 Td [(optional)]TJ/F8 9.9626 Tf -25.183 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-398(as:)-573(an)-398(in)28(teger)]TJ/F11 9.9626 Tf 107.907 0 Td [(>)]TJ/F8 9.9626 Tf 11.589 0 Td [(0.)-638(When)-398(app)-28(end)-398(i)1(s)-398(true,)-414(sp)-28(eci\014es)-398(ho)28(w)-398(man)27(y)]TJ -119.496 -11.955 Td [(en)28(tries)-334(in)-333(the)-333(output)-333(v)27(ectors)-333(are)-333(already)-334(\014lled.)]TJ -0 g 0 G -/F27 9.9626 Tf -24.907 -20.479 Td [(lrw)]TJ -0 g 0 G -/F8 9.9626 Tf 21.157 0 Td [(The)-333(last)-334(ro)28(w)-333(to)-334(b)-27(e)-334(extracted.)]TJ 3.75 -11.956 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 27.951 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -27.951 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.183 0 Td [(optional)]TJ/F8 9.9626 Tf -25.183 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(in)28(teger)]TJ/F11 9.9626 Tf 104.691 0 Td [(>)]TJ/F8 9.9626 Tf 10.516 0 Td [(0,)-333(default:)]TJ/F11 9.9626 Tf 48.43 0 Td [(r)-28(ow)]TJ/F8 9.9626 Tf 17.001 0 Td [(.)]TJ -0 g 0 G -/F27 9.9626 Tf -205.545 -22.334 Td [(On)-383(Return)]TJ -0 g 0 G -0 g 0 G - 0 -20.479 Td [(nz)]TJ -0 g 0 G -/F8 9.9626 Tf 16.439 0 Td [(the)-333(n)28(um)27(b)-27(er)-334(of)-333(elemen)28(ts)-334(returned)-333(b)28(y)-334(th)1(is)-334(call.)]TJ 8.468 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 27.951 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf 23.073 0 Td [(.)]TJ -51.024 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.183 0 Td [(required)]TJ/F8 9.9626 Tf 41.899 0 Td [(.)]TJ -67.082 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(out)]TJ/F8 9.9626 Tf 16.549 0 Td [(.)]TJ -50.035 -11.956 Td [(Returned)-333(as:)-445(an)-333(in)28(teger)-334(scalar.)]TJ -0 g 0 G -/F27 9.9626 Tf -24.907 -20.479 Td [(ia)]TJ -0 g 0 G -/F8 9.9626 Tf 13.734 0 Td [(the)-333(ro)28(w)-334(indices.)]TJ 11.173 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 27.951 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf 23.073 0 Td [(.)]TJ -51.024 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.183 0 Td [(required)]TJ/F8 9.9626 Tf 41.899 0 Td [(.)]TJ -67.082 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(inout)]TJ/F8 9.9626 Tf 26.096 0 Td [(.)]TJ -59.582 -11.956 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(in)28(teger)-333(arra)27(y)-333(with)-333(the)]TJ/F30 9.9626 Tf 170.611 0 Td [(ALLOCATABLE)]TJ/F8 9.9626 Tf 60.854 0 Td [(attribute.)]TJ -0 g 0 G - -89.497 -29.887 Td [(93)]TJ -0 g 0 G -ET - -endstream -endobj -1335 0 obj +1334 0 obj << /Type /ObjStm /N 100 -/First 972 -/Length 10904 +/First 973 +/Length 10886 >> stream -1330 0 1334 146 320 205 1331 263 1339 369 1336 517 1337 662 1341 809 324 867 1342 924 -1338 982 1346 1088 1343 1236 1344 1382 1348 1526 328 1585 1345 1643 1352 1762 1349 1910 1350 2057 -1354 2201 332 2259 1351 2316 1357 2435 1359 2553 1360 2612 1361 2671 1356 2730 1366 2823 1362 2980 -1363 3125 1364 3269 1368 3412 336 3470 1365 3527 1372 3646 1369 3794 1370 3937 1374 4084 340 4143 -1371 4201 1376 4307 1378 4425 344 4483 1375 4540 1381 4672 1379 4811 1383 4956 348 5015 1380 5073 -1385 5192 1387 5310 1388 5368 1389 5426 1384 5484 1393 5564 1391 5703 1395 5849 352 5908 1392 5966 -1398 6085 1396 6224 1400 6371 356 6429 1401 6486 1397 6544 1404 6663 1402 6802 1406 6948 360 7007 -1407 7065 1403 7124 1410 7243 1408 7382 1412 7529 364 7587 1413 7644 1409 7702 1416 7821 1414 7960 -1418 8106 368 8165 1419 8223 1415 8282 1422 8401 1420 8540 1424 8686 372 8744 1425 8801 1426 8859 -1421 8917 1430 9023 1428 9162 1432 9307 376 9366 1433 9424 1434 9483 1429 9542 1437 9648 1435 9787 -% 1330 0 obj +1324 0 1338 80 1335 228 1336 371 1340 517 320 576 1337 634 1344 740 1341 888 1342 1033 +1346 1180 324 1238 1347 1295 1343 1353 1351 1459 1348 1607 1349 1753 1353 1897 328 1956 1350 2014 +1357 2133 1354 2281 1355 2428 1359 2572 332 2630 1356 2687 1362 2806 1364 2924 1365 2983 1366 3042 +1361 3101 1371 3194 1367 3351 1368 3496 1369 3640 1373 3783 336 3841 1370 3898 1377 4017 1374 4165 +1375 4308 1379 4455 340 4514 1376 4572 1381 4678 1383 4796 344 4854 1380 4911 1386 5043 1384 5182 +1388 5327 348 5386 1385 5444 1390 5563 1392 5681 1393 5739 1394 5797 1389 5855 1398 5935 1396 6074 +1400 6220 352 6279 1397 6337 1403 6456 1401 6595 1405 6742 356 6800 1406 6857 1402 6915 1409 7034 +1407 7173 1411 7319 360 7378 1412 7436 1408 7495 1415 7614 1413 7753 1417 7900 364 7958 1418 8015 +1414 8073 1421 8192 1419 8331 1423 8477 368 8536 1424 8594 1420 8653 1427 8772 1425 8911 1429 9057 +372 9115 1430 9172 1431 9230 1426 9288 1435 9394 1433 9533 1437 9678 376 9737 1438 9795 1439 9854 +% 1324 0 obj +<< +/Font << /F8 553 0 R /F30 759 0 R >> +/ProcSet [ /PDF /Text ] +>> +% 1338 0 obj +<< +/Type /Page +/Contents 1339 0 R +/Resources 1337 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1317 0 R +/Annots [ 1335 0 R 1336 0 R ] +>> +% 1335 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [345.53 574.94 423.049 586.065] +/A << /S /GoTo /D (spdata) >> +>> +% 1336 0 obj << /Type /Annot /Subtype /Link @@ -16963,29 +16865,29 @@ stream /Rect [345.53 507.194 412.588 518.319] /A << /S /GoTo /D (descdata) >> >> -% 1334 0 obj +% 1340 0 obj << -/D [1332 0 R /XYZ 149.705 753.953 null] +/D [1338 0 R /XYZ 149.705 753.953 null] >> % 320 0 obj << -/D [1332 0 R /XYZ 150.705 720.077 null] +/D [1338 0 R /XYZ 150.705 720.077 null] >> -% 1331 0 obj +% 1337 0 obj << -/Font << /F16 546 0 R /F30 754 0 R /F27 548 0 R /F8 549 0 R >> +/Font << /F16 550 0 R /F30 759 0 R /F27 552 0 R /F8 553 0 R >> /ProcSet [ /PDF /Text ] >> -% 1339 0 obj +% 1344 0 obj << /Type /Page -/Contents 1340 0 R -/Resources 1338 0 R +/Contents 1345 0 R +/Resources 1343 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1312 0 R -/Annots [ 1336 0 R 1337 0 R ] +/Parent 1317 0 R +/Annots [ 1341 0 R 1342 0 R ] >> -% 1336 0 obj +% 1341 0 obj << /Type /Annot /Subtype /Link @@ -16993,7 +16895,7 @@ stream /Rect [294.721 560.993 372.239 572.118] /A << /S /GoTo /D (spdata) >> >> -% 1337 0 obj +% 1342 0 obj << /Type /Annot /Subtype /Link @@ -17001,33 +16903,33 @@ stream /Rect [294.721 493.247 361.779 504.372] /A << /S /GoTo /D (descdata) >> >> -% 1341 0 obj +% 1346 0 obj << -/D [1339 0 R /XYZ 98.895 753.953 null] +/D [1344 0 R /XYZ 98.895 753.953 null] >> % 324 0 obj << -/D [1339 0 R /XYZ 99.895 720.077 null] +/D [1344 0 R /XYZ 99.895 720.077 null] >> -% 1342 0 obj +% 1347 0 obj << -/D [1339 0 R /XYZ 99.895 313.144 null] +/D [1344 0 R /XYZ 99.895 313.144 null] >> -% 1338 0 obj +% 1343 0 obj << -/Font << /F16 546 0 R /F30 754 0 R /F27 548 0 R /F8 549 0 R >> +/Font << /F16 550 0 R /F30 759 0 R /F27 552 0 R /F8 553 0 R >> /ProcSet [ /PDF /Text ] >> -% 1346 0 obj +% 1351 0 obj << /Type /Page -/Contents 1347 0 R -/Resources 1345 0 R +/Contents 1352 0 R +/Resources 1350 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1312 0 R -/Annots [ 1343 0 R 1344 0 R ] +/Parent 1317 0 R +/Annots [ 1348 0 R 1349 0 R ] >> -% 1343 0 obj +% 1348 0 obj << /Type /Annot /Subtype /Link @@ -17035,7 +16937,7 @@ stream /Rect [311.962 574.94 379.019 586.065] /A << /S /GoTo /D (descdata) >> >> -% 1344 0 obj +% 1349 0 obj << /Type /Annot /Subtype /Link @@ -17043,29 +16945,29 @@ stream /Rect [264.584 290.009 340.638 301.134] /A << /S /GoTo /D (vdata) >> >> -% 1348 0 obj +% 1353 0 obj << -/D [1346 0 R /XYZ 149.705 753.953 null] +/D [1351 0 R /XYZ 149.705 753.953 null] >> % 328 0 obj << -/D [1346 0 R /XYZ 150.705 720.077 null] +/D [1351 0 R /XYZ 150.705 720.077 null] >> -% 1345 0 obj +% 1350 0 obj << -/Font << /F16 546 0 R /F30 754 0 R /F27 548 0 R /F8 549 0 R /F11 740 0 R >> +/Font << /F16 550 0 R /F30 759 0 R /F27 552 0 R /F8 553 0 R /F11 745 0 R >> /ProcSet [ /PDF /Text ] >> -% 1352 0 obj +% 1357 0 obj << /Type /Page -/Contents 1353 0 R -/Resources 1351 0 R +/Contents 1358 0 R +/Resources 1356 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1355 0 R -/Annots [ 1349 0 R 1350 0 R ] +/Parent 1360 0 R +/Annots [ 1354 0 R 1355 0 R ] >> -% 1349 0 obj +% 1354 0 obj << /Type /Annot /Subtype /Link @@ -17073,7 +16975,7 @@ stream /Rect [294.721 363.459 361.779 374.584] /A << /S /GoTo /D (descdata) >> >> -% 1350 0 obj +% 1355 0 obj << /Type /Annot /Subtype /Link @@ -17081,54 +16983,54 @@ stream /Rect [365.781 141.026 441.835 152.151] /A << /S /GoTo /D (vdata) >> >> -% 1354 0 obj +% 1359 0 obj << -/D [1352 0 R /XYZ 98.895 753.953 null] +/D [1357 0 R /XYZ 98.895 753.953 null] >> % 332 0 obj << -/D [1352 0 R /XYZ 99.895 720.077 null] +/D [1357 0 R /XYZ 99.895 720.077 null] >> -% 1351 0 obj +% 1356 0 obj << -/Font << /F16 546 0 R /F30 754 0 R /F27 548 0 R /F8 549 0 R /F11 740 0 R >> +/Font << /F16 550 0 R /F30 759 0 R /F27 552 0 R /F8 553 0 R /F11 745 0 R >> /ProcSet [ /PDF /Text ] >> -% 1357 0 obj +% 1362 0 obj << /Type /Page -/Contents 1358 0 R -/Resources 1356 0 R +/Contents 1363 0 R +/Resources 1361 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1355 0 R +/Parent 1360 0 R >> -% 1359 0 obj +% 1364 0 obj << -/D [1357 0 R /XYZ 149.705 753.953 null] +/D [1362 0 R /XYZ 149.705 753.953 null] >> -% 1360 0 obj +% 1365 0 obj << -/D [1357 0 R /XYZ 150.705 632.405 null] +/D [1362 0 R /XYZ 150.705 632.405 null] >> -% 1361 0 obj +% 1366 0 obj << -/D [1357 0 R /XYZ 150.705 609.989 null] +/D [1362 0 R /XYZ 150.705 609.989 null] >> -% 1356 0 obj +% 1361 0 obj << -/Font << /F27 548 0 R /F8 549 0 R /F16 546 0 R >> +/Font << /F27 552 0 R /F8 553 0 R /F16 550 0 R >> /ProcSet [ /PDF /Text ] >> -% 1366 0 obj +% 1371 0 obj << /Type /Page -/Contents 1367 0 R -/Resources 1365 0 R +/Contents 1372 0 R +/Resources 1370 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1355 0 R -/Annots [ 1362 0 R 1363 0 R 1364 0 R ] +/Parent 1360 0 R +/Annots [ 1367 0 R 1368 0 R 1369 0 R ] >> -% 1362 0 obj +% 1367 0 obj << /Type /Annot /Subtype /Link @@ -17136,7 +17038,7 @@ stream /Rect [261.152 574.94 328.21 586.065] /A << /S /GoTo /D (descdata) >> >> -% 1363 0 obj +% 1368 0 obj << /Type /Annot /Subtype /Link @@ -17144,7 +17046,7 @@ stream /Rect [269.918 483.284 345.972 494.409] /A << /S /GoTo /D (vdata) >> >> -% 1364 0 obj +% 1369 0 obj << /Type /Annot /Subtype /Link @@ -17152,29 +17054,29 @@ stream /Rect [187.733 381.665 263.787 392.79] /A << /S /GoTo /D (vdata) >> >> -% 1368 0 obj +% 1373 0 obj << -/D [1366 0 R /XYZ 98.895 753.953 null] +/D [1371 0 R /XYZ 98.895 753.953 null] >> % 336 0 obj << -/D [1366 0 R /XYZ 99.895 720.077 null] +/D [1371 0 R /XYZ 99.895 720.077 null] >> -% 1365 0 obj +% 1370 0 obj << -/Font << /F16 546 0 R /F30 754 0 R /F27 548 0 R /F8 549 0 R /F11 740 0 R >> +/Font << /F16 550 0 R /F30 759 0 R /F27 552 0 R /F8 553 0 R /F11 745 0 R >> /ProcSet [ /PDF /Text ] >> -% 1372 0 obj +% 1377 0 obj << /Type /Page -/Contents 1373 0 R -/Resources 1371 0 R +/Contents 1378 0 R +/Resources 1376 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1355 0 R -/Annots [ 1369 0 R 1370 0 R ] +/Parent 1360 0 R +/Annots [ 1374 0 R 1375 0 R ] >> -% 1369 0 obj +% 1374 0 obj << /Type /Annot /Subtype /Link @@ -17182,7 +17084,7 @@ stream /Rect [238.542 562.985 314.596 574.11] /A << /S /GoTo /D (vdata) >> >> -% 1370 0 obj +% 1375 0 obj << /Type /Annot /Subtype /Link @@ -17190,50 +17092,50 @@ stream /Rect [311.962 483.284 379.019 494.409] /A << /S /GoTo /D (descdata) >> >> -% 1374 0 obj +% 1379 0 obj << -/D [1372 0 R /XYZ 149.705 753.953 null] +/D [1377 0 R /XYZ 149.705 753.953 null] >> % 340 0 obj << -/D [1372 0 R /XYZ 150.705 720.077 null] +/D [1377 0 R /XYZ 150.705 720.077 null] >> -% 1371 0 obj +% 1376 0 obj << -/Font << /F16 546 0 R /F30 754 0 R /F27 548 0 R /F8 549 0 R >> +/Font << /F16 550 0 R /F30 759 0 R /F27 552 0 R /F8 553 0 R >> /ProcSet [ /PDF /Text ] >> -% 1376 0 obj +% 1381 0 obj << /Type /Page -/Contents 1377 0 R -/Resources 1375 0 R +/Contents 1382 0 R +/Resources 1380 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1355 0 R +/Parent 1360 0 R >> -% 1378 0 obj +% 1383 0 obj << -/D [1376 0 R /XYZ 98.895 753.953 null] +/D [1381 0 R /XYZ 98.895 753.953 null] >> % 344 0 obj << -/D [1376 0 R /XYZ 99.895 720.077 null] +/D [1381 0 R /XYZ 99.895 720.077 null] >> -% 1375 0 obj +% 1380 0 obj << -/Font << /F16 546 0 R /F30 754 0 R /F27 548 0 R /F8 549 0 R /F11 740 0 R /F10 756 0 R >> +/Font << /F16 550 0 R /F30 759 0 R /F27 552 0 R /F8 553 0 R /F11 745 0 R /F10 761 0 R >> /ProcSet [ /PDF /Text ] >> -% 1381 0 obj +% 1386 0 obj << /Type /Page -/Contents 1382 0 R -/Resources 1380 0 R +/Contents 1387 0 R +/Resources 1385 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1355 0 R -/Annots [ 1379 0 R ] +/Parent 1360 0 R +/Annots [ 1384 0 R ] >> -% 1379 0 obj +% 1384 0 obj << /Type /Annot /Subtype /Link @@ -17241,54 +17143,54 @@ stream /Rect [345.53 484.86 412.588 495.985] /A << /S /GoTo /D (descdata) >> >> -% 1383 0 obj +% 1388 0 obj << -/D [1381 0 R /XYZ 149.705 753.953 null] +/D [1386 0 R /XYZ 149.705 753.953 null] >> % 348 0 obj << -/D [1381 0 R /XYZ 150.705 720.077 null] +/D [1386 0 R /XYZ 150.705 720.077 null] >> -% 1380 0 obj +% 1385 0 obj << -/Font << /F16 546 0 R /F30 754 0 R /F27 548 0 R /F8 549 0 R /F11 740 0 R >> +/Font << /F16 550 0 R /F30 759 0 R /F27 552 0 R /F8 553 0 R /F11 745 0 R >> /ProcSet [ /PDF /Text ] >> -% 1385 0 obj +% 1390 0 obj << /Type /Page -/Contents 1386 0 R -/Resources 1384 0 R +/Contents 1391 0 R +/Resources 1389 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1390 0 R +/Parent 1395 0 R >> -% 1387 0 obj +% 1392 0 obj << -/D [1385 0 R /XYZ 98.895 753.953 null] +/D [1390 0 R /XYZ 98.895 753.953 null] >> -% 1388 0 obj +% 1393 0 obj << -/D [1385 0 R /XYZ 99.895 716.092 null] +/D [1390 0 R /XYZ 99.895 716.092 null] >> -% 1389 0 obj +% 1394 0 obj << -/D [1385 0 R /XYZ 99.895 688.251 null] +/D [1390 0 R /XYZ 99.895 688.251 null] >> -% 1384 0 obj +% 1389 0 obj << -/Font << /F8 549 0 R /F30 754 0 R >> +/Font << /F8 553 0 R /F30 759 0 R >> /ProcSet [ /PDF /Text ] >> -% 1393 0 obj +% 1398 0 obj << /Type /Page -/Contents 1394 0 R -/Resources 1392 0 R +/Contents 1399 0 R +/Resources 1397 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1390 0 R -/Annots [ 1391 0 R ] +/Parent 1395 0 R +/Annots [ 1396 0 R ] >> -% 1391 0 obj +% 1396 0 obj << /Type /Annot /Subtype /Link @@ -17296,29 +17198,29 @@ stream /Rect [345.53 483.284 412.588 494.409] /A << /S /GoTo /D (descdata) >> >> -% 1395 0 obj +% 1400 0 obj << -/D [1393 0 R /XYZ 149.705 753.953 null] +/D [1398 0 R /XYZ 149.705 753.953 null] >> % 352 0 obj << -/D [1393 0 R /XYZ 150.705 720.077 null] +/D [1398 0 R /XYZ 150.705 720.077 null] >> -% 1392 0 obj +% 1397 0 obj << -/Font << /F16 546 0 R /F30 754 0 R /F27 548 0 R /F8 549 0 R /F11 740 0 R >> +/Font << /F16 550 0 R /F30 759 0 R /F27 552 0 R /F8 553 0 R /F11 745 0 R >> /ProcSet [ /PDF /Text ] >> -% 1398 0 obj +% 1403 0 obj << /Type /Page -/Contents 1399 0 R -/Resources 1397 0 R +/Contents 1404 0 R +/Resources 1402 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1390 0 R -/Annots [ 1396 0 R ] +/Parent 1395 0 R +/Annots [ 1401 0 R ] >> -% 1396 0 obj +% 1401 0 obj << /Type /Annot /Subtype /Link @@ -17326,33 +17228,33 @@ stream /Rect [294.721 495.239 361.779 506.364] /A << /S /GoTo /D (descdata) >> >> -% 1400 0 obj +% 1405 0 obj << -/D [1398 0 R /XYZ 98.895 753.953 null] +/D [1403 0 R /XYZ 98.895 753.953 null] >> % 356 0 obj << -/D [1398 0 R /XYZ 99.895 720.077 null] +/D [1403 0 R /XYZ 99.895 720.077 null] >> -% 1401 0 obj +% 1406 0 obj << -/D [1398 0 R /XYZ 99.895 382.883 null] +/D [1403 0 R /XYZ 99.895 382.883 null] >> -% 1397 0 obj +% 1402 0 obj << -/Font << /F16 546 0 R /F30 754 0 R /F27 548 0 R /F8 549 0 R /F11 740 0 R >> +/Font << /F16 550 0 R /F30 759 0 R /F27 552 0 R /F8 553 0 R /F11 745 0 R >> /ProcSet [ /PDF /Text ] >> -% 1404 0 obj +% 1409 0 obj << /Type /Page -/Contents 1405 0 R -/Resources 1403 0 R +/Contents 1410 0 R +/Resources 1408 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1390 0 R -/Annots [ 1402 0 R ] +/Parent 1395 0 R +/Annots [ 1407 0 R ] >> -% 1402 0 obj +% 1407 0 obj << /Type /Annot /Subtype /Link @@ -17360,33 +17262,33 @@ stream /Rect [345.53 495.239 412.588 506.364] /A << /S /GoTo /D (descdata) >> >> -% 1406 0 obj +% 1411 0 obj << -/D [1404 0 R /XYZ 149.705 753.953 null] +/D [1409 0 R /XYZ 149.705 753.953 null] >> % 360 0 obj << -/D [1404 0 R /XYZ 150.705 720.077 null] +/D [1409 0 R /XYZ 150.705 720.077 null] >> -% 1407 0 obj +% 1412 0 obj << -/D [1404 0 R /XYZ 150.705 259.346 null] +/D [1409 0 R /XYZ 150.705 259.346 null] >> -% 1403 0 obj +% 1408 0 obj << -/Font << /F16 546 0 R /F30 754 0 R /F27 548 0 R /F8 549 0 R /F11 740 0 R >> +/Font << /F16 550 0 R /F30 759 0 R /F27 552 0 R /F8 553 0 R /F11 745 0 R >> /ProcSet [ /PDF /Text ] >> -% 1410 0 obj +% 1415 0 obj << /Type /Page -/Contents 1411 0 R -/Resources 1409 0 R +/Contents 1416 0 R +/Resources 1414 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1390 0 R -/Annots [ 1408 0 R ] +/Parent 1395 0 R +/Annots [ 1413 0 R ] >> -% 1408 0 obj +% 1413 0 obj << /Type /Annot /Subtype /Link @@ -17394,33 +17296,33 @@ stream /Rect [294.721 495.239 361.779 506.364] /A << /S /GoTo /D (descdata) >> >> -% 1412 0 obj +% 1417 0 obj << -/D [1410 0 R /XYZ 98.895 753.953 null] +/D [1415 0 R /XYZ 98.895 753.953 null] >> % 364 0 obj << -/D [1410 0 R /XYZ 99.895 720.077 null] +/D [1415 0 R /XYZ 99.895 720.077 null] >> -% 1413 0 obj +% 1418 0 obj << -/D [1410 0 R /XYZ 99.895 382.883 null] +/D [1415 0 R /XYZ 99.895 382.883 null] >> -% 1409 0 obj +% 1414 0 obj << -/Font << /F16 546 0 R /F30 754 0 R /F27 548 0 R /F8 549 0 R /F11 740 0 R >> +/Font << /F16 550 0 R /F30 759 0 R /F27 552 0 R /F8 553 0 R /F11 745 0 R >> /ProcSet [ /PDF /Text ] >> -% 1416 0 obj +% 1421 0 obj << /Type /Page -/Contents 1417 0 R -/Resources 1415 0 R +/Contents 1422 0 R +/Resources 1420 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1390 0 R -/Annots [ 1414 0 R ] +/Parent 1395 0 R +/Annots [ 1419 0 R ] >> -% 1414 0 obj +% 1419 0 obj << /Type /Annot /Subtype /Link @@ -17428,33 +17330,33 @@ stream /Rect [345.53 495.239 412.588 506.364] /A << /S /GoTo /D (descdata) >> >> -% 1418 0 obj +% 1423 0 obj << -/D [1416 0 R /XYZ 149.705 753.953 null] +/D [1421 0 R /XYZ 149.705 753.953 null] >> % 368 0 obj << -/D [1416 0 R /XYZ 150.705 720.077 null] +/D [1421 0 R /XYZ 150.705 720.077 null] >> -% 1419 0 obj +% 1424 0 obj << -/D [1416 0 R /XYZ 150.705 259.346 null] +/D [1421 0 R /XYZ 150.705 259.346 null] >> -% 1415 0 obj +% 1420 0 obj << -/Font << /F16 546 0 R /F30 754 0 R /F27 548 0 R /F8 549 0 R /F11 740 0 R >> +/Font << /F16 550 0 R /F30 759 0 R /F27 552 0 R /F8 553 0 R /F11 745 0 R >> /ProcSet [ /PDF /Text ] >> -% 1422 0 obj +% 1427 0 obj << /Type /Page -/Contents 1423 0 R -/Resources 1421 0 R +/Contents 1428 0 R +/Resources 1426 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1427 0 R -/Annots [ 1420 0 R ] +/Parent 1432 0 R +/Annots [ 1425 0 R ] >> -% 1420 0 obj +% 1425 0 obj << /Type /Annot /Subtype /Link @@ -17462,37 +17364,37 @@ stream /Rect [294.721 574.94 361.779 586.065] /A << /S /GoTo /D (descdata) >> >> -% 1424 0 obj +% 1429 0 obj << -/D [1422 0 R /XYZ 98.895 753.953 null] +/D [1427 0 R /XYZ 98.895 753.953 null] >> % 372 0 obj << -/D [1422 0 R /XYZ 99.895 720.077 null] +/D [1427 0 R /XYZ 99.895 720.077 null] >> -% 1425 0 obj +% 1430 0 obj << -/D [1422 0 R /XYZ 99.895 370.928 null] +/D [1427 0 R /XYZ 99.895 370.928 null] >> -% 1426 0 obj +% 1431 0 obj << -/D [1422 0 R /XYZ 99.895 327.092 null] +/D [1427 0 R /XYZ 99.895 327.092 null] >> -% 1421 0 obj +% 1426 0 obj << -/Font << /F16 546 0 R /F30 754 0 R /F27 548 0 R /F8 549 0 R >> +/Font << /F16 550 0 R /F30 759 0 R /F27 552 0 R /F8 553 0 R >> /ProcSet [ /PDF /Text ] >> -% 1430 0 obj +% 1435 0 obj << /Type /Page -/Contents 1431 0 R -/Resources 1429 0 R +/Contents 1436 0 R +/Resources 1434 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1427 0 R -/Annots [ 1428 0 R ] +/Parent 1432 0 R +/Annots [ 1433 0 R ] >> -% 1428 0 obj +% 1433 0 obj << /Type /Annot /Subtype /Link @@ -17500,48 +17402,115 @@ stream /Rect [345.53 574.94 412.588 586.065] /A << /S /GoTo /D (descdata) >> >> -% 1432 0 obj +% 1437 0 obj << -/D [1430 0 R /XYZ 149.705 753.953 null] +/D [1435 0 R /XYZ 149.705 753.953 null] >> % 376 0 obj << -/D [1430 0 R /XYZ 150.705 720.077 null] ->> -% 1433 0 obj -<< -/D [1430 0 R /XYZ 150.705 370.928 null] +/D [1435 0 R /XYZ 150.705 720.077 null] >> -% 1434 0 obj -<< -/D [1430 0 R /XYZ 150.705 339.047 null] ->> -% 1429 0 obj +% 1438 0 obj << -/Font << /F16 546 0 R /F30 754 0 R /F27 548 0 R /F8 549 0 R >> -/ProcSet [ /PDF /Text ] +/D [1435 0 R /XYZ 150.705 370.928 null] >> -% 1437 0 obj +% 1439 0 obj << -/Type /Page -/Contents 1438 0 R -/Resources 1436 0 R -/MediaBox [0 0 595.276 841.89] -/Parent 1427 0 R -/Annots [ 1435 0 R ] +/D [1435 0 R /XYZ 150.705 339.047 null] >> -% 1435 0 obj + +endstream +endobj +1444 0 obj << -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [294.721 492.904 372.239 504.029] -/A << /S /GoTo /D (spdata) >> +/Length 5783 >> +stream +0 g 0 G +0 g 0 G +BT +/F16 11.9552 Tf 99.895 706.129 Td [(psb)]TJ +ET +q +1 0 0 1 120.951 706.328 cm +[]0 d 0 J 0.398 w 0 0 m 4.035 0 l S +Q +BT +/F16 11.9552 Tf 124.986 706.129 Td [(sp)]TJ +ET +q +1 0 0 1 138.57 706.328 cm +[]0 d 0 J 0.398 w 0 0 m 4.035 0 l S +Q +BT +/F16 11.9552 Tf 142.605 706.129 Td [(getro)31(w)-375(|)-375(Extract)-375(ro)31(w\050s\051)-375(from)-375(a)-375(sparse)-375(matrix)]TJ +0 g 0 G +0 g 0 G +/F30 9.9626 Tf -42.71 -18.647 Td [(call)-525(psb_sp_getrow\050row,)-525(a,)-525(nz,)-525(ia,)-525(ja,)-525(val,)-525(info,)-525(&)]TJ 73.225 -11.955 Td [(&)-525(append,)-525(nzin,)-525(lrw\051)]TJ +0 g 0 G +/F27 9.9626 Tf -73.225 -22.334 Td [(T)32(yp)-32(e:)]TJ +0 g 0 G +/F8 9.9626 Tf 33.797 0 Td [(Async)28(hronous.)]TJ +0 g 0 G +/F27 9.9626 Tf -33.797 -20.479 Td [(On)-383(En)32(try)]TJ +0 g 0 G +0 g 0 G + 0 -20.479 Td [(ro)32(w)]TJ +0 g 0 G +/F8 9.9626 Tf 23.385 0 Td [(The)-333(\050\014rst\051)-334(ro)28(w)-333(to)-334(b)-27(e)-334(extracted.)]TJ 1.522 -11.956 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 27.951 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -27.951 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.183 0 Td [(required)]TJ/F8 9.9626 Tf -25.183 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(in)28(teger)]TJ/F11 9.9626 Tf 104.691 0 Td [(>)]TJ/F8 9.9626 Tf 10.516 0 Td [(0.)]TJ +0 g 0 G +/F27 9.9626 Tf -140.114 -20.479 Td [(a)]TJ +0 g 0 G +/F8 9.9626 Tf 10.551 0 Td [(the)-333(matrix)-334(from)-333(whic)28(h)-333(to)-334(get)-333(ro)28(ws.)]TJ 14.356 -11.956 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 27.951 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -27.951 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.183 0 Td [(required)]TJ/F8 9.9626 Tf -25.183 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(structured)-333(data)-333(of)-334(t)28(yp)-28(e)]TJ +0 0 1 rg 0 0 1 RG +/F30 9.9626 Tf 170.915 0 Td [(psb)]TJ +ET +q +1 0 0 1 312.036 496.313 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +Q +BT +/F30 9.9626 Tf 315.174 496.114 Td [(Tspmat)]TJ +ET +q +1 0 0 1 347.183 496.313 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +Q +BT +/F30 9.9626 Tf 350.322 496.114 Td [(type)]TJ +0 g 0 G +/F8 9.9626 Tf 20.921 0 Td [(.)]TJ +0 g 0 G +/F27 9.9626 Tf -271.348 -20.479 Td [(app)-32(end)]TJ +0 g 0 G +/F8 9.9626 Tf 41.58 0 Td [(Whether)-333(to)-334(app)-27(end)-334(or)-333(o)28(v)28(erwrite)-334(existing)-333(output.)]TJ -16.673 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 27.951 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -27.951 -11.956 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.183 0 Td [(optional)]TJ/F8 9.9626 Tf -25.183 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(logical)-333(v)55(alue)-333(default:)-444(false)-334(\050o)28(v)28(erwrite\051.)]TJ +0 g 0 G +/F27 9.9626 Tf -24.907 -20.479 Td [(nzin)]TJ +0 g 0 G +/F8 9.9626 Tf 25.986 0 Td [(Input)-333(size)-334(to)-333(b)-28(e)-333(app)-28(ended)-333(to.)]TJ -1.079 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 27.951 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -27.951 -11.956 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.183 0 Td [(optional)]TJ/F8 9.9626 Tf -25.183 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-398(as:)-573(an)-398(in)28(teger)]TJ/F11 9.9626 Tf 107.907 0 Td [(>)]TJ/F8 9.9626 Tf 11.589 0 Td [(0.)-638(When)-398(app)-28(end)-398(i)1(s)-398(true,)-414(sp)-28(eci\014es)-398(ho)28(w)-398(man)27(y)]TJ -119.496 -11.955 Td [(en)28(tries)-334(in)-333(the)-333(output)-333(v)27(ectors)-333(are)-333(already)-334(\014lled.)]TJ +0 g 0 G +/F27 9.9626 Tf -24.907 -20.479 Td [(lrw)]TJ +0 g 0 G +/F8 9.9626 Tf 21.157 0 Td [(The)-333(last)-334(ro)28(w)-333(to)-334(b)-27(e)-334(extracted.)]TJ 3.75 -11.956 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 27.951 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -27.951 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.183 0 Td [(optional)]TJ/F8 9.9626 Tf -25.183 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(in)28(teger)]TJ/F11 9.9626 Tf 104.691 0 Td [(>)]TJ/F8 9.9626 Tf 10.516 0 Td [(0,)-333(default:)]TJ/F11 9.9626 Tf 48.43 0 Td [(r)-28(ow)]TJ/F8 9.9626 Tf 17.001 0 Td [(.)]TJ +0 g 0 G +/F27 9.9626 Tf -205.545 -22.334 Td [(On)-383(Return)]TJ +0 g 0 G +0 g 0 G + 0 -20.479 Td [(nz)]TJ +0 g 0 G +/F8 9.9626 Tf 16.439 0 Td [(the)-333(n)28(um)27(b)-27(er)-334(of)-333(elemen)28(ts)-334(returned)-333(b)28(y)-334(th)1(is)-334(call.)]TJ 8.468 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 27.951 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf 23.073 0 Td [(.)]TJ -51.024 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.183 0 Td [(required)]TJ/F8 9.9626 Tf 41.899 0 Td [(.)]TJ -67.082 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(out)]TJ/F8 9.9626 Tf 16.549 0 Td [(.)]TJ -50.035 -11.956 Td [(Returned)-333(as:)-445(an)-333(in)28(teger)-334(scalar.)]TJ +0 g 0 G +/F27 9.9626 Tf -24.907 -20.479 Td [(ia)]TJ +0 g 0 G +/F8 9.9626 Tf 13.734 0 Td [(the)-333(ro)28(w)-334(indices.)]TJ 11.173 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 27.951 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf 23.073 0 Td [(.)]TJ -51.024 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.183 0 Td [(required)]TJ/F8 9.9626 Tf 41.899 0 Td [(.)]TJ -67.082 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(inout)]TJ/F8 9.9626 Tf 26.096 0 Td [(.)]TJ -59.582 -11.956 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(in)28(teger)-333(arra)27(y)-333(with)-333(the)]TJ/F30 9.9626 Tf 170.611 0 Td [(ALLOCATABLE)]TJ/F8 9.9626 Tf 60.854 0 Td [(attribute.)]TJ +0 g 0 G + -89.497 -29.887 Td [(93)]TJ +0 g 0 G +ET endstream endobj -1443 0 obj +1448 0 obj << /Length 3711 >> @@ -17580,7 +17549,7 @@ ET endstream endobj -1453 0 obj +1458 0 obj << /Length 4123 >> @@ -17693,7 +17662,7 @@ ET endstream endobj -1457 0 obj +1462 0 obj << /Length 5773 >> @@ -17775,7 +17744,7 @@ ET endstream endobj -1461 0 obj +1466 0 obj << /Length 6993 >> @@ -17883,7 +17852,7 @@ ET endstream endobj -1475 0 obj +1480 0 obj << /Length 186 >> @@ -17899,7 +17868,7 @@ ET endstream endobj -1479 0 obj +1484 0 obj << /Length 5566 >> @@ -17973,7 +17942,7 @@ ET endstream endobj -1485 0 obj +1490 0 obj << /Length 4639 >> @@ -18029,7 +17998,7 @@ ET endstream endobj -1491 0 obj +1496 0 obj << /Length 4356 >> @@ -18082,7 +18051,7 @@ ET endstream endobj -1498 0 obj +1503 0 obj << /Length 2160 >> @@ -18133,7 +18102,7 @@ ET endstream endobj -1502 0 obj +1507 0 obj << /Length 3020 >> @@ -18188,7 +18157,7 @@ ET endstream endobj -1507 0 obj +1512 0 obj << /Length 1202 >> @@ -18225,7 +18194,7 @@ ET endstream endobj -1511 0 obj +1516 0 obj << /Length 1484 >> @@ -18262,7 +18231,7 @@ ET endstream endobj -1515 0 obj +1520 0 obj << /Length 1357 >> @@ -18299,7 +18268,7 @@ ET endstream endobj -1519 0 obj +1524 0 obj << /Length 4552 >> @@ -18351,7 +18320,7 @@ ET endstream endobj -1523 0 obj +1528 0 obj << /Length 5199 >> @@ -18411,7 +18380,7 @@ ET endstream endobj -1529 0 obj +1534 0 obj << /Length 5151 >> @@ -18471,7 +18440,7 @@ ET endstream endobj -1536 0 obj +1541 0 obj << /Length 5183 >> @@ -18529,138 +18498,100 @@ BT 0 g 0 G ET -endstream -endobj -1542 0 obj -<< -/Length 5239 ->> -stream -0 g 0 G -0 g 0 G -BT -/F16 11.9552 Tf 99.895 706.129 Td [(psb)]TJ -ET -q -1 0 0 1 120.951 706.328 cm -[]0 d 0 J 0.398 w 0 0 m 4.035 0 l S -Q -BT -/F16 11.9552 Tf 124.986 706.129 Td [(amx)-375(|)-375(Global)-375(maxim)31(um)-375(absolute)-375(v)63(alue)]TJ -0 g 0 G -0 g 0 G -/F30 9.9626 Tf -25.091 -18.389 Td [(call)-525(psb_amx\050icontxt,)-525(dat,)-525(root\051)]TJ/F8 9.9626 Tf 14.944 -21.918 Td [(This)-312(subroutine)-312(implemen)28(ts)-313(a)-312(maxim)28(um)-312(absolute)-312(v)55(alue)-312(reduction)-312(op)-28(eration)]TJ -14.944 -11.955 Td [(based)-333(on)-334(the)-333(underlying)-333(comm)28(unication)-334(library)84(.)]TJ -0 g 0 G -/F27 9.9626 Tf 0 -19.926 Td [(T)32(yp)-32(e:)]TJ -0 g 0 G -/F8 9.9626 Tf 33.797 0 Td [(Sync)28(hronous.)]TJ -0 g 0 G -/F27 9.9626 Tf -33.797 -19.925 Td [(On)-383(En)32(try)]TJ -0 g 0 G -0 g 0 G - 0 -19.925 Td [(icon)32(txt)]TJ -0 g 0 G -/F8 9.9626 Tf 39.989 0 Td [(the)-333(comm)27(unication)-333(con)28(text)-333(iden)27(tifyin)1(g)-334(the)-333(virtual)-333(parallel)-334(mac)28(hine.)]TJ -15.082 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(global)]TJ/F8 9.9626 Tf 29.756 0 Td [(.)]TJ -62.135 -11.956 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf 41.898 0 Td [(.)]TJ -71.509 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(in)28(teger)-333(v)55(ariable.)]TJ -0 g 0 G -/F27 9.9626 Tf -24.907 -19.925 Td [(dat)]TJ -0 g 0 G -/F8 9.9626 Tf 21.371 0 Td [(The)-333(lo)-28(cal)-334(con)28(tribution)-333(to)-333(the)-334(global)-333(maxim)28(um.)]TJ 3.536 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf 23.073 0 Td [(.)]TJ -55.452 -11.956 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf 41.898 0 Td [(.)]TJ -71.509 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(inout)]TJ/F8 9.9626 Tf 26.096 0 Td [(.)]TJ -59.582 -11.955 Td [(Sp)-28(eci\014ed)-339(as:)-458(an)-339(in)28(te)-1(ger,)-341(real)-340(or)-339(complex)-340(v)56(ariable,)-342(whic)28(h)-340(ma)28(y)-339(b)-28(e)-340(a)-340(scalar,)]TJ 0 -11.955 Td [(or)-464(a)-464(rank)-463(1)-464(or)-464(2)-464(arra)28(y)83(.)-1299(T)28(yp)-28(e,)-497(kind,)-496(rank)-464(and)-463(size)-464(m)27(ust)-463(agree)-464(on)-464(all)]TJ 0 -11.955 Td [(pro)-28(cesses.)]TJ -0 g 0 G -/F27 9.9626 Tf -24.907 -19.926 Td [(ro)-32(ot)]TJ -0 g 0 G -/F8 9.9626 Tf 25.931 0 Td [(Pro)-28(cess)-276(to)-276(hold)-276(the)-276(\014nal)-275(v)55(alue,)-287(or)]TJ/F14 9.9626 Tf 146.411 0 Td [(\000)]TJ/F8 9.9626 Tf 7.749 0 Td [(1)-276(to)-276(mak)28(e)-276(it)-276(a)28(v)55(ailable)-276(on)-276(all)-276(p)1(ro)-28(cesses.)]TJ -155.184 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(global)]TJ/F8 9.9626 Tf 29.756 0 Td [(.)]TJ -62.135 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(optional)]TJ/F8 9.9626 Tf 40.577 0 Td [(.)]TJ -70.188 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(in)28(teger)-333(v)55(alue)]TJ/F14 9.9626 Tf 130.428 0 Td [(\000)]TJ/F8 9.9626 Tf 7.749 0 Td [(1)]TJ/F11 9.9626 Tf 7.748 0 Td [(<)]TJ/F8 9.9626 Tf 7.749 0 Td [(=)]TJ/F11 9.9626 Tf 10.516 0 Td [(r)-28(oot)-278(<)]TJ/F8 9.9626 Tf 28.543 0 Td [(=)]TJ/F11 9.9626 Tf 10.517 0 Td [(np)]TJ/F14 9.9626 Tf 13.206 0 Td [(\000)]TJ/F8 9.9626 Tf 9.962 0 Td [(1,)-333(default)-334(-1.)]TJ -0 g 0 G -/F27 9.9626 Tf -251.325 -33.873 Td [(On)-383(Return)]TJ -0 g 0 G -0 g 0 G - 0 -19.926 Td [(dat)]TJ -0 g 0 G -/F8 9.9626 Tf 21.372 0 Td [(On)-333(destination)-333(pro)-28(cess\050es\051,)-334(the)-333(result)-333(of)-334(the)-333(maxim)28(um)-334(op)-27(eration.)]TJ 3.535 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(global)]TJ/F8 9.9626 Tf 29.756 0 Td [(.)]TJ -62.135 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf 41.899 0 Td [(.)]TJ -71.51 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(inout)]TJ/F8 9.9626 Tf 26.096 0 Td [(.)]TJ -59.582 -11.955 Td [(Sp)-28(eci\014ed)-339(as:)-458(an)-339(in)28(te)-1(ger,)-341(real)-340(or)-339(complex)-340(v)56(ariable,)-342(whic)28(h)-340(ma)28(y)-339(b)-28(e)-340(a)-340(scalar,)]TJ 0 -11.955 Td [(or)-464(a)-464(rank)-463(1)-464(or)-464(2)-464(arra)28(y)83(.)-1299(T)28(yp)-28(e,)-497(kind,)-496(rank)-464(and)-463(size)-464(m)27(ust)-463(agree)-464(on)-464(all)]TJ 0 -11.956 Td [(pro)-28(cesses.)]TJ/F16 11.9552 Tf -24.907 -21.917 Td [(Notes)]TJ -0 g 0 G -/F8 9.9626 Tf 12.177 -19.926 Td [(1.)]TJ -0 g 0 G - [-500(The)]TJ/F30 9.9626 Tf 32.469 0 Td [(dat)]TJ/F8 9.9626 Tf 18.273 0 Td [(argumen)28(t)-259(is)-259(b)-28(oth)-259(input)-259(and)-259(output,)-274(and)-259(its)-259(v)55(alue)-259(ma)28(y)-259(b)-28(e)-259(c)28(hanged)]TJ -38.012 -11.955 Td [(ev)28(en)-334(on)-333(pro)-28(cesses)-333(di\013eren)28(t)-334(from)-333(the)-333(\014nal)-334(result)-333(destination.)]TJ -0 g 0 G - -12.73 -19.925 Td [(2.)]TJ -0 g 0 G - [-500(The)]TJ/F30 9.9626 Tf 33.209 0 Td [(dat)]TJ/F8 9.9626 Tf 19.012 0 Td [(argumen)28(t)-333(m)-1(a)28(y)-333(also)-333(b)-28(e)-334(a)-333(long)-333(in)28(teger)-334(scalar.)]TJ -0 g 0 G - 99.986 -97.177 Td [(111)]TJ -0 g 0 G -ET - endstream endobj 1440 0 obj << /Type /ObjStm /N 100 -/First 969 -/Length 9268 +/First 970 +/Length 9426 >> stream -1439 0 380 58 1436 115 1442 234 1444 352 1445 411 1446 470 1447 529 1441 588 1452 707 -1448 864 1449 1009 1450 1156 1454 1301 384 1359 1451 1416 1456 1535 1458 1653 388 1712 1455 1770 -1460 1889 1462 2007 1463 2065 1464 2123 1465 2181 1466 2239 1467 2297 1468 2355 1469 2412 1470 2470 -1471 2528 1459 2586 1474 2704 1476 2822 392 2881 1473 2939 1478 3019 1480 3137 396 3195 1481 3252 -1482 3310 1477 3368 1484 3500 1486 3618 400 3677 1487 3735 1488 3793 1483 3852 1490 3984 1492 4102 -405 4160 1493 4217 1494 4275 1495 4333 1489 4391 1497 4523 1499 4641 409 4700 1496 4758 1501 4864 -1503 4982 413 5040 1500 5097 1506 5229 1508 5347 417 5406 1505 5464 1510 5570 1512 5688 421 5746 -1509 5803 1514 5909 1516 6027 425 6086 1513 6144 1518 6250 1520 6368 429 6426 1517 6483 1522 6615 -1524 6733 433 6792 1525 6850 1526 6909 1521 6968 1528 7100 1530 7218 437 7276 1531 7333 1532 7391 -1527 7449 1535 7581 1537 7699 441 7758 1538 7816 1539 7875 1534 7934 1541 8066 1543 8184 445 8242 -% 1439 0 obj +1434 0 1443 106 1441 245 1445 390 380 448 1442 505 1447 624 1449 742 1450 801 1451 860 +1452 919 1446 978 1457 1097 1453 1254 1454 1399 1455 1546 1459 1691 384 1749 1456 1806 1461 1925 +1463 2043 388 2102 1460 2160 1465 2279 1467 2397 1468 2455 1469 2513 1470 2571 1471 2629 1472 2687 +1473 2745 1474 2802 1475 2860 1476 2918 1464 2976 1479 3094 1481 3212 392 3271 1478 3329 1483 3409 +1485 3527 396 3585 1486 3642 1487 3700 1482 3758 1489 3890 1491 4008 400 4067 1492 4125 1493 4183 +1488 4242 1495 4374 1497 4492 405 4550 1498 4607 1499 4665 1500 4723 1494 4781 1502 4913 1504 5031 +409 5090 1501 5148 1506 5254 1508 5372 413 5430 1505 5487 1511 5619 1513 5737 417 5796 1510 5854 +1515 5960 1517 6078 421 6136 1514 6193 1519 6299 1521 6417 425 6476 1518 6534 1523 6640 1525 6758 +429 6816 1522 6873 1527 7005 1529 7123 433 7182 1530 7240 1531 7299 1526 7358 1533 7490 1535 7608 +437 7666 1536 7723 1537 7781 1532 7839 1540 7971 1542 8089 441 8148 1543 8206 1544 8265 1539 8324 +% 1434 0 obj +<< +/Font << /F16 550 0 R /F30 759 0 R /F27 552 0 R /F8 553 0 R >> +/ProcSet [ /PDF /Text ] +>> +% 1443 0 obj +<< +/Type /Page +/Contents 1444 0 R +/Resources 1442 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1432 0 R +/Annots [ 1441 0 R ] +>> +% 1441 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [294.721 492.904 372.239 504.029] +/A << /S /GoTo /D (spdata) >> +>> +% 1445 0 obj << -/D [1437 0 R /XYZ 98.895 753.953 null] +/D [1443 0 R /XYZ 98.895 753.953 null] >> % 380 0 obj << -/D [1437 0 R /XYZ 99.895 720.077 null] +/D [1443 0 R /XYZ 99.895 720.077 null] >> -% 1436 0 obj +% 1442 0 obj << -/Font << /F16 546 0 R /F30 754 0 R /F27 548 0 R /F8 549 0 R /F11 740 0 R >> +/Font << /F16 550 0 R /F30 759 0 R /F27 552 0 R /F8 553 0 R /F11 745 0 R >> /ProcSet [ /PDF /Text ] >> -% 1442 0 obj +% 1447 0 obj << /Type /Page -/Contents 1443 0 R -/Resources 1441 0 R +/Contents 1448 0 R +/Resources 1446 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1427 0 R +/Parent 1432 0 R >> -% 1444 0 obj +% 1449 0 obj << -/D [1442 0 R /XYZ 149.705 753.953 null] +/D [1447 0 R /XYZ 149.705 753.953 null] >> -% 1445 0 obj +% 1450 0 obj << -/D [1442 0 R /XYZ 150.705 496.913 null] +/D [1447 0 R /XYZ 150.705 496.913 null] >> -% 1446 0 obj +% 1451 0 obj << -/D [1442 0 R /XYZ 150.705 439.185 null] +/D [1447 0 R /XYZ 150.705 439.185 null] >> -% 1447 0 obj +% 1452 0 obj << -/D [1442 0 R /XYZ 150.705 418.983 null] +/D [1447 0 R /XYZ 150.705 418.983 null] >> -% 1441 0 obj +% 1446 0 obj << -/Font << /F27 548 0 R /F8 549 0 R /F30 754 0 R /F16 546 0 R /F11 740 0 R >> +/Font << /F27 552 0 R /F8 553 0 R /F30 759 0 R /F16 550 0 R /F11 745 0 R >> /ProcSet [ /PDF /Text ] >> -% 1452 0 obj +% 1457 0 obj << /Type /Page -/Contents 1453 0 R -/Resources 1451 0 R +/Contents 1458 0 R +/Resources 1456 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1427 0 R -/Annots [ 1448 0 R 1449 0 R 1450 0 R ] +/Parent 1432 0 R +/Annots [ 1453 0 R 1454 0 R 1455 0 R ] >> -% 1448 0 obj +% 1453 0 obj << /Type /Annot /Subtype /Link @@ -18668,7 +18599,7 @@ stream /Rect [294.721 529.112 372.239 540.237] /A << /S /GoTo /D (spdata) >> >> -% 1449 0 obj +% 1454 0 obj << /Type /Annot /Subtype /Link @@ -18676,7 +18607,7 @@ stream /Rect [294.721 461.366 361.779 472.491] /A << /S /GoTo /D (descdata) >> >> -% 1450 0 obj +% 1455 0 obj << /Type /Annot /Subtype /Link @@ -18684,438 +18615,482 @@ stream /Rect [321.343 405.575 388.401 416.7] /A << /S /GoTo /D (precdata) >> >> -% 1454 0 obj +% 1459 0 obj << -/D [1452 0 R /XYZ 98.895 753.953 null] +/D [1457 0 R /XYZ 98.895 753.953 null] >> % 384 0 obj << -/D [1452 0 R /XYZ 99.895 720.077 null] +/D [1457 0 R /XYZ 99.895 720.077 null] >> -% 1451 0 obj +% 1456 0 obj << -/Font << /F16 546 0 R /F8 549 0 R /F30 754 0 R /F27 548 0 R /F11 740 0 R >> +/Font << /F16 550 0 R /F8 553 0 R /F30 759 0 R /F27 552 0 R /F11 745 0 R >> /ProcSet [ /PDF /Text ] >> -% 1456 0 obj +% 1461 0 obj << /Type /Page -/Contents 1457 0 R -/Resources 1455 0 R +/Contents 1462 0 R +/Resources 1460 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1427 0 R +/Parent 1432 0 R >> -% 1458 0 obj +% 1463 0 obj << -/D [1456 0 R /XYZ 149.705 753.953 null] +/D [1461 0 R /XYZ 149.705 753.953 null] >> % 388 0 obj << -/D [1456 0 R /XYZ 150.705 720.077 null] +/D [1461 0 R /XYZ 150.705 720.077 null] >> -% 1455 0 obj +% 1460 0 obj << -/Font << /F16 546 0 R /F30 754 0 R /F8 549 0 R /F11 740 0 R /F27 548 0 R >> +/Font << /F16 550 0 R /F30 759 0 R /F8 553 0 R /F11 745 0 R /F27 552 0 R >> /ProcSet [ /PDF /Text ] >> -% 1460 0 obj +% 1465 0 obj << /Type /Page -/Contents 1461 0 R -/Resources 1459 0 R +/Contents 1466 0 R +/Resources 1464 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1472 0 R +/Parent 1477 0 R >> -% 1462 0 obj +% 1467 0 obj << -/D [1460 0 R /XYZ 98.895 753.953 null] +/D [1465 0 R /XYZ 98.895 753.953 null] >> -% 1463 0 obj +% 1468 0 obj << -/D [1460 0 R /XYZ 99.895 702.144 null] +/D [1465 0 R /XYZ 99.895 702.144 null] >> -% 1464 0 obj +% 1469 0 obj << -/D [1460 0 R /XYZ 99.895 668.326 null] +/D [1465 0 R /XYZ 99.895 668.326 null] >> -% 1465 0 obj +% 1470 0 obj << -/D [1460 0 R /XYZ 99.895 624.491 null] +/D [1465 0 R /XYZ 99.895 624.491 null] >> -% 1466 0 obj +% 1471 0 obj << -/D [1460 0 R /XYZ 99.895 556.745 null] +/D [1465 0 R /XYZ 99.895 556.745 null] >> -% 1467 0 obj +% 1472 0 obj << -/D [1460 0 R /XYZ 99.895 500.954 null] +/D [1465 0 R /XYZ 99.895 500.954 null] >> -% 1468 0 obj +% 1473 0 obj << -/D [1460 0 R /XYZ 99.895 468.52 null] +/D [1465 0 R /XYZ 99.895 468.52 null] >> -% 1469 0 obj +% 1474 0 obj << -/D [1460 0 R /XYZ 99.895 425.182 null] +/D [1465 0 R /XYZ 99.895 425.182 null] >> -% 1470 0 obj +% 1475 0 obj << -/D [1460 0 R /XYZ 99.895 383.395 null] +/D [1465 0 R /XYZ 99.895 383.395 null] >> -% 1471 0 obj +% 1476 0 obj << -/D [1460 0 R /XYZ 99.895 355.499 null] +/D [1465 0 R /XYZ 99.895 355.499 null] >> -% 1459 0 obj +% 1464 0 obj << -/Font << /F16 546 0 R /F8 549 0 R /F11 740 0 R /F14 757 0 R /F7 755 0 R >> +/Font << /F16 550 0 R /F8 553 0 R /F11 745 0 R /F14 762 0 R /F7 760 0 R >> /ProcSet [ /PDF /Text ] >> -% 1474 0 obj +% 1479 0 obj << /Type /Page -/Contents 1475 0 R -/Resources 1473 0 R +/Contents 1480 0 R +/Resources 1478 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1472 0 R +/Parent 1477 0 R >> -% 1476 0 obj +% 1481 0 obj << -/D [1474 0 R /XYZ 149.705 753.953 null] +/D [1479 0 R /XYZ 149.705 753.953 null] >> % 392 0 obj << -/D [1474 0 R /XYZ 150.705 716.092 null] +/D [1479 0 R /XYZ 150.705 716.092 null] >> -% 1473 0 obj +% 1478 0 obj << -/Font << /F16 546 0 R /F8 549 0 R >> +/Font << /F16 550 0 R /F8 553 0 R >> /ProcSet [ /PDF /Text ] >> -% 1478 0 obj +% 1483 0 obj << /Type /Page -/Contents 1479 0 R -/Resources 1477 0 R +/Contents 1484 0 R +/Resources 1482 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1472 0 R +/Parent 1477 0 R >> -% 1480 0 obj +% 1485 0 obj << -/D [1478 0 R /XYZ 98.895 753.953 null] +/D [1483 0 R /XYZ 98.895 753.953 null] >> % 396 0 obj << -/D [1478 0 R /XYZ 99.895 720.077 null] +/D [1483 0 R /XYZ 99.895 720.077 null] >> -% 1481 0 obj +% 1486 0 obj << -/D [1478 0 R /XYZ 99.895 235.436 null] +/D [1483 0 R /XYZ 99.895 235.436 null] >> -% 1482 0 obj +% 1487 0 obj << -/D [1478 0 R /XYZ 99.895 213.573 null] +/D [1483 0 R /XYZ 99.895 213.573 null] >> -% 1477 0 obj +% 1482 0 obj << -/Font << /F16 546 0 R /F30 754 0 R /F8 549 0 R /F27 548 0 R /F11 740 0 R /F14 757 0 R >> +/Font << /F16 550 0 R /F30 759 0 R /F8 553 0 R /F27 552 0 R /F11 745 0 R /F14 762 0 R >> /ProcSet [ /PDF /Text ] >> -% 1484 0 obj +% 1489 0 obj << /Type /Page -/Contents 1485 0 R -/Resources 1483 0 R +/Contents 1490 0 R +/Resources 1488 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1472 0 R +/Parent 1477 0 R >> -% 1486 0 obj +% 1491 0 obj << -/D [1484 0 R /XYZ 149.705 753.953 null] +/D [1489 0 R /XYZ 149.705 753.953 null] >> % 400 0 obj << -/D [1484 0 R /XYZ 150.705 720.077 null] +/D [1489 0 R /XYZ 150.705 720.077 null] >> -% 1487 0 obj +% 1492 0 obj << -/D [1484 0 R /XYZ 150.705 349.01 null] +/D [1489 0 R /XYZ 150.705 349.01 null] >> -% 1488 0 obj +% 1493 0 obj << -/D [1484 0 R /XYZ 150.705 315.192 null] +/D [1489 0 R /XYZ 150.705 315.192 null] >> -% 1483 0 obj +% 1488 0 obj << -/Font << /F16 546 0 R /F30 754 0 R /F8 549 0 R /F27 548 0 R /F14 757 0 R /F11 740 0 R >> +/Font << /F16 550 0 R /F30 759 0 R /F8 553 0 R /F27 552 0 R /F14 762 0 R /F11 745 0 R >> /ProcSet [ /PDF /Text ] >> -% 1490 0 obj +% 1495 0 obj << /Type /Page -/Contents 1491 0 R -/Resources 1489 0 R +/Contents 1496 0 R +/Resources 1494 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1472 0 R +/Parent 1477 0 R >> -% 1492 0 obj +% 1497 0 obj << -/D [1490 0 R /XYZ 98.895 753.953 null] +/D [1495 0 R /XYZ 98.895 753.953 null] >> % 405 0 obj << -/D [1490 0 R /XYZ 99.895 720.077 null] +/D [1495 0 R /XYZ 99.895 720.077 null] >> -% 1493 0 obj +% 1498 0 obj << -/D [1490 0 R /XYZ 99.895 442.659 null] +/D [1495 0 R /XYZ 99.895 442.659 null] >> -% 1494 0 obj +% 1499 0 obj << -/D [1490 0 R /XYZ 99.895 396.886 null] +/D [1495 0 R /XYZ 99.895 396.886 null] >> -% 1495 0 obj +% 1500 0 obj << -/D [1490 0 R /XYZ 99.895 365.005 null] +/D [1495 0 R /XYZ 99.895 365.005 null] >> -% 1489 0 obj +% 1494 0 obj << -/Font << /F16 546 0 R /F30 754 0 R /F8 549 0 R /F27 548 0 R /F11 740 0 R /F14 757 0 R >> +/Font << /F16 550 0 R /F30 759 0 R /F8 553 0 R /F27 552 0 R /F11 745 0 R /F14 762 0 R >> /ProcSet [ /PDF /Text ] >> -% 1497 0 obj +% 1502 0 obj << /Type /Page -/Contents 1498 0 R -/Resources 1496 0 R +/Contents 1503 0 R +/Resources 1501 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1472 0 R +/Parent 1477 0 R >> -% 1499 0 obj +% 1504 0 obj << -/D [1497 0 R /XYZ 149.705 753.953 null] +/D [1502 0 R /XYZ 149.705 753.953 null] >> % 409 0 obj << -/D [1497 0 R /XYZ 150.705 720.077 null] +/D [1502 0 R /XYZ 150.705 720.077 null] >> -% 1496 0 obj +% 1501 0 obj << -/Font << /F16 546 0 R /F30 754 0 R /F8 549 0 R /F27 548 0 R >> +/Font << /F16 550 0 R /F30 759 0 R /F8 553 0 R /F27 552 0 R >> /ProcSet [ /PDF /Text ] >> -% 1501 0 obj +% 1506 0 obj << /Type /Page -/Contents 1502 0 R -/Resources 1500 0 R +/Contents 1507 0 R +/Resources 1505 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1504 0 R +/Parent 1509 0 R >> -% 1503 0 obj +% 1508 0 obj << -/D [1501 0 R /XYZ 98.895 753.953 null] +/D [1506 0 R /XYZ 98.895 753.953 null] >> % 413 0 obj << -/D [1501 0 R /XYZ 99.895 720.077 null] +/D [1506 0 R /XYZ 99.895 720.077 null] >> -% 1500 0 obj +% 1505 0 obj << -/Font << /F16 546 0 R /F30 754 0 R /F8 549 0 R /F11 740 0 R /F27 548 0 R /F14 757 0 R >> +/Font << /F16 550 0 R /F30 759 0 R /F8 553 0 R /F11 745 0 R /F27 552 0 R /F14 762 0 R >> /ProcSet [ /PDF /Text ] >> -% 1506 0 obj +% 1511 0 obj << /Type /Page -/Contents 1507 0 R -/Resources 1505 0 R +/Contents 1512 0 R +/Resources 1510 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1504 0 R +/Parent 1509 0 R >> -% 1508 0 obj +% 1513 0 obj << -/D [1506 0 R /XYZ 149.705 753.953 null] +/D [1511 0 R /XYZ 149.705 753.953 null] >> % 417 0 obj << -/D [1506 0 R /XYZ 150.705 720.077 null] +/D [1511 0 R /XYZ 150.705 720.077 null] >> -% 1505 0 obj +% 1510 0 obj << -/Font << /F16 546 0 R /F30 754 0 R /F8 549 0 R /F27 548 0 R >> +/Font << /F16 550 0 R /F30 759 0 R /F8 553 0 R /F27 552 0 R >> /ProcSet [ /PDF /Text ] >> -% 1510 0 obj +% 1515 0 obj << /Type /Page -/Contents 1511 0 R -/Resources 1509 0 R +/Contents 1516 0 R +/Resources 1514 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1504 0 R +/Parent 1509 0 R >> -% 1512 0 obj +% 1517 0 obj << -/D [1510 0 R /XYZ 98.895 753.953 null] +/D [1515 0 R /XYZ 98.895 753.953 null] >> % 421 0 obj << -/D [1510 0 R /XYZ 99.895 720.077 null] +/D [1515 0 R /XYZ 99.895 720.077 null] >> -% 1509 0 obj +% 1514 0 obj << -/Font << /F16 546 0 R /F30 754 0 R /F8 549 0 R /F27 548 0 R >> +/Font << /F16 550 0 R /F30 759 0 R /F8 553 0 R /F27 552 0 R >> /ProcSet [ /PDF /Text ] >> -% 1514 0 obj +% 1519 0 obj << /Type /Page -/Contents 1515 0 R -/Resources 1513 0 R +/Contents 1520 0 R +/Resources 1518 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1504 0 R +/Parent 1509 0 R >> -% 1516 0 obj +% 1521 0 obj << -/D [1514 0 R /XYZ 149.705 753.953 null] +/D [1519 0 R /XYZ 149.705 753.953 null] >> % 425 0 obj << -/D [1514 0 R /XYZ 150.705 720.077 null] +/D [1519 0 R /XYZ 150.705 720.077 null] >> -% 1513 0 obj +% 1518 0 obj << -/Font << /F16 546 0 R /F30 754 0 R /F8 549 0 R /F27 548 0 R >> +/Font << /F16 550 0 R /F30 759 0 R /F8 553 0 R /F27 552 0 R >> /ProcSet [ /PDF /Text ] >> -% 1518 0 obj +% 1523 0 obj << /Type /Page -/Contents 1519 0 R -/Resources 1517 0 R +/Contents 1524 0 R +/Resources 1522 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1504 0 R +/Parent 1509 0 R >> -% 1520 0 obj +% 1525 0 obj << -/D [1518 0 R /XYZ 98.895 753.953 null] +/D [1523 0 R /XYZ 98.895 753.953 null] >> % 429 0 obj << -/D [1518 0 R /XYZ 99.895 720.077 null] +/D [1523 0 R /XYZ 99.895 720.077 null] >> -% 1517 0 obj +% 1522 0 obj << -/Font << /F16 546 0 R /F30 754 0 R /F8 549 0 R /F27 548 0 R /F11 740 0 R /F14 757 0 R >> +/Font << /F16 550 0 R /F30 759 0 R /F8 553 0 R /F27 552 0 R /F11 745 0 R /F14 762 0 R >> /ProcSet [ /PDF /Text ] >> -% 1522 0 obj +% 1527 0 obj << /Type /Page -/Contents 1523 0 R -/Resources 1521 0 R +/Contents 1528 0 R +/Resources 1526 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1504 0 R +/Parent 1509 0 R >> -% 1524 0 obj +% 1529 0 obj << -/D [1522 0 R /XYZ 149.705 753.953 null] +/D [1527 0 R /XYZ 149.705 753.953 null] >> % 433 0 obj << -/D [1522 0 R /XYZ 150.705 720.077 null] +/D [1527 0 R /XYZ 150.705 720.077 null] >> -% 1525 0 obj +% 1530 0 obj << -/D [1522 0 R /XYZ 150.705 247.391 null] +/D [1527 0 R /XYZ 150.705 247.391 null] >> -% 1526 0 obj +% 1531 0 obj << -/D [1522 0 R /XYZ 150.705 213.573 null] +/D [1527 0 R /XYZ 150.705 213.573 null] >> -% 1521 0 obj +% 1526 0 obj << -/Font << /F16 546 0 R /F30 754 0 R /F8 549 0 R /F27 548 0 R /F14 757 0 R /F11 740 0 R >> +/Font << /F16 550 0 R /F30 759 0 R /F8 553 0 R /F27 552 0 R /F14 762 0 R /F11 745 0 R >> /ProcSet [ /PDF /Text ] >> -% 1528 0 obj +% 1533 0 obj << /Type /Page -/Contents 1529 0 R -/Resources 1527 0 R +/Contents 1534 0 R +/Resources 1532 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1533 0 R +/Parent 1538 0 R >> -% 1530 0 obj +% 1535 0 obj << -/D [1528 0 R /XYZ 98.895 753.953 null] +/D [1533 0 R /XYZ 98.895 753.953 null] >> % 437 0 obj << -/D [1528 0 R /XYZ 99.895 720.077 null] +/D [1533 0 R /XYZ 99.895 720.077 null] >> -% 1531 0 obj +% 1536 0 obj << -/D [1528 0 R /XYZ 99.895 247.391 null] +/D [1533 0 R /XYZ 99.895 247.391 null] >> -% 1532 0 obj +% 1537 0 obj << -/D [1528 0 R /XYZ 99.895 213.573 null] +/D [1533 0 R /XYZ 99.895 213.573 null] >> -% 1527 0 obj +% 1532 0 obj << -/Font << /F16 546 0 R /F30 754 0 R /F8 549 0 R /F27 548 0 R /F14 757 0 R /F11 740 0 R >> +/Font << /F16 550 0 R /F30 759 0 R /F8 553 0 R /F27 552 0 R /F14 762 0 R /F11 745 0 R >> /ProcSet [ /PDF /Text ] >> -% 1535 0 obj +% 1540 0 obj << /Type /Page -/Contents 1536 0 R -/Resources 1534 0 R +/Contents 1541 0 R +/Resources 1539 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1533 0 R +/Parent 1538 0 R >> -% 1537 0 obj +% 1542 0 obj << -/D [1535 0 R /XYZ 149.705 753.953 null] +/D [1540 0 R /XYZ 149.705 753.953 null] >> % 441 0 obj << -/D [1535 0 R /XYZ 150.705 720.077 null] +/D [1540 0 R /XYZ 150.705 720.077 null] >> -% 1538 0 obj +% 1543 0 obj << -/D [1535 0 R /XYZ 150.705 247.391 null] +/D [1540 0 R /XYZ 150.705 247.391 null] >> -% 1539 0 obj +% 1544 0 obj << -/D [1535 0 R /XYZ 150.705 213.573 null] +/D [1540 0 R /XYZ 150.705 213.573 null] >> -% 1534 0 obj +% 1539 0 obj << -/Font << /F16 546 0 R /F30 754 0 R /F8 549 0 R /F27 548 0 R /F14 757 0 R /F11 740 0 R >> +/Font << /F16 550 0 R /F30 759 0 R /F8 553 0 R /F27 552 0 R /F14 762 0 R /F11 745 0 R >> /ProcSet [ /PDF /Text ] >> -% 1541 0 obj -<< -/Type /Page -/Contents 1542 0 R -/Resources 1540 0 R -/MediaBox [0 0 595.276 841.89] -/Parent 1533 0 R ->> -% 1543 0 obj -<< -/D [1541 0 R /XYZ 98.895 753.953 null] ->> -% 445 0 obj + +endstream +endobj +1547 0 obj << -/D [1541 0 R /XYZ 99.895 720.077 null] +/Length 5239 >> +stream +0 g 0 G +0 g 0 G +BT +/F16 11.9552 Tf 99.895 706.129 Td [(psb)]TJ +ET +q +1 0 0 1 120.951 706.328 cm +[]0 d 0 J 0.398 w 0 0 m 4.035 0 l S +Q +BT +/F16 11.9552 Tf 124.986 706.129 Td [(amx)-375(|)-375(Global)-375(maxim)31(um)-375(absolute)-375(v)63(alue)]TJ +0 g 0 G +0 g 0 G +/F30 9.9626 Tf -25.091 -18.389 Td [(call)-525(psb_amx\050icontxt,)-525(dat,)-525(root\051)]TJ/F8 9.9626 Tf 14.944 -21.918 Td [(This)-312(subroutine)-312(implemen)28(ts)-313(a)-312(maxim)28(um)-312(absolute)-312(v)55(alue)-312(reduction)-312(op)-28(eration)]TJ -14.944 -11.955 Td [(based)-333(on)-334(the)-333(underlying)-333(comm)28(unication)-334(library)84(.)]TJ +0 g 0 G +/F27 9.9626 Tf 0 -19.926 Td [(T)32(yp)-32(e:)]TJ +0 g 0 G +/F8 9.9626 Tf 33.797 0 Td [(Sync)28(hronous.)]TJ +0 g 0 G +/F27 9.9626 Tf -33.797 -19.925 Td [(On)-383(En)32(try)]TJ +0 g 0 G +0 g 0 G + 0 -19.925 Td [(icon)32(txt)]TJ +0 g 0 G +/F8 9.9626 Tf 39.989 0 Td [(the)-333(comm)27(unication)-333(con)28(text)-333(iden)27(tifyin)1(g)-334(the)-333(virtual)-333(parallel)-334(mac)28(hine.)]TJ -15.082 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(global)]TJ/F8 9.9626 Tf 29.756 0 Td [(.)]TJ -62.135 -11.956 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf 41.898 0 Td [(.)]TJ -71.509 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(in)28(teger)-333(v)55(ariable.)]TJ +0 g 0 G +/F27 9.9626 Tf -24.907 -19.925 Td [(dat)]TJ +0 g 0 G +/F8 9.9626 Tf 21.371 0 Td [(The)-333(lo)-28(cal)-334(con)28(tribution)-333(to)-333(the)-334(global)-333(maxim)28(um.)]TJ 3.536 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf 23.073 0 Td [(.)]TJ -55.452 -11.956 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf 41.898 0 Td [(.)]TJ -71.509 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(inout)]TJ/F8 9.9626 Tf 26.096 0 Td [(.)]TJ -59.582 -11.955 Td [(Sp)-28(eci\014ed)-339(as:)-458(an)-339(in)28(te)-1(ger,)-341(real)-340(or)-339(complex)-340(v)56(ariable,)-342(whic)28(h)-340(ma)28(y)-339(b)-28(e)-340(a)-340(scalar,)]TJ 0 -11.955 Td [(or)-464(a)-464(rank)-463(1)-464(or)-464(2)-464(arra)28(y)83(.)-1299(T)28(yp)-28(e,)-497(kind,)-496(rank)-464(and)-463(size)-464(m)27(ust)-463(agree)-464(on)-464(all)]TJ 0 -11.955 Td [(pro)-28(cesses.)]TJ +0 g 0 G +/F27 9.9626 Tf -24.907 -19.926 Td [(ro)-32(ot)]TJ +0 g 0 G +/F8 9.9626 Tf 25.931 0 Td [(Pro)-28(cess)-276(to)-276(hold)-276(the)-276(\014nal)-275(v)55(alue,)-287(or)]TJ/F14 9.9626 Tf 146.411 0 Td [(\000)]TJ/F8 9.9626 Tf 7.749 0 Td [(1)-276(to)-276(mak)28(e)-276(it)-276(a)28(v)55(ailable)-276(on)-276(all)-276(p)1(ro)-28(cesses.)]TJ -155.184 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(global)]TJ/F8 9.9626 Tf 29.756 0 Td [(.)]TJ -62.135 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(optional)]TJ/F8 9.9626 Tf 40.577 0 Td [(.)]TJ -70.188 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(in)28(teger)-333(v)55(alue)]TJ/F14 9.9626 Tf 130.428 0 Td [(\000)]TJ/F8 9.9626 Tf 7.749 0 Td [(1)]TJ/F11 9.9626 Tf 7.748 0 Td [(<)]TJ/F8 9.9626 Tf 7.749 0 Td [(=)]TJ/F11 9.9626 Tf 10.516 0 Td [(r)-28(oot)-278(<)]TJ/F8 9.9626 Tf 28.543 0 Td [(=)]TJ/F11 9.9626 Tf 10.517 0 Td [(np)]TJ/F14 9.9626 Tf 13.206 0 Td [(\000)]TJ/F8 9.9626 Tf 9.962 0 Td [(1,)-333(default)-334(-1.)]TJ +0 g 0 G +/F27 9.9626 Tf -251.325 -33.873 Td [(On)-383(Return)]TJ +0 g 0 G +0 g 0 G + 0 -19.926 Td [(dat)]TJ +0 g 0 G +/F8 9.9626 Tf 21.372 0 Td [(On)-333(destination)-333(pro)-28(cess\050es\051,)-334(the)-333(result)-333(of)-334(the)-333(maxim)28(um)-334(op)-27(eration.)]TJ 3.535 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(global)]TJ/F8 9.9626 Tf 29.756 0 Td [(.)]TJ -62.135 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf 41.899 0 Td [(.)]TJ -71.51 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(inout)]TJ/F8 9.9626 Tf 26.096 0 Td [(.)]TJ -59.582 -11.955 Td [(Sp)-28(eci\014ed)-339(as:)-458(an)-339(in)28(te)-1(ger,)-341(real)-340(or)-339(complex)-340(v)56(ariable,)-342(whic)28(h)-340(ma)28(y)-339(b)-28(e)-340(a)-340(scalar,)]TJ 0 -11.955 Td [(or)-464(a)-464(rank)-463(1)-464(or)-464(2)-464(arra)28(y)83(.)-1299(T)28(yp)-28(e,)-497(kind,)-496(rank)-464(and)-463(size)-464(m)27(ust)-463(agree)-464(on)-464(all)]TJ 0 -11.956 Td [(pro)-28(cesses.)]TJ/F16 11.9552 Tf -24.907 -21.917 Td [(Notes)]TJ +0 g 0 G +/F8 9.9626 Tf 12.177 -19.926 Td [(1.)]TJ +0 g 0 G + [-500(The)]TJ/F30 9.9626 Tf 32.469 0 Td [(dat)]TJ/F8 9.9626 Tf 18.273 0 Td [(argumen)28(t)-259(is)-259(b)-28(oth)-259(input)-259(and)-259(output,)-274(and)-259(its)-259(v)55(alue)-259(ma)28(y)-259(b)-28(e)-259(c)28(hanged)]TJ -38.012 -11.955 Td [(ev)28(en)-334(on)-333(pro)-28(cesses)-333(di\013eren)28(t)-334(from)-333(the)-333(\014nal)-334(result)-333(destination.)]TJ +0 g 0 G + -12.73 -19.925 Td [(2.)]TJ +0 g 0 G + [-500(The)]TJ/F30 9.9626 Tf 33.209 0 Td [(dat)]TJ/F8 9.9626 Tf 19.012 0 Td [(argumen)28(t)-333(m)-1(a)28(y)-333(also)-333(b)-28(e)-334(a)-333(long)-333(in)28(teger)-334(scalar.)]TJ +0 g 0 G + 99.986 -97.177 Td [(111)]TJ +0 g 0 G +ET endstream endobj -1549 0 obj +1554 0 obj << /Length 5273 >> @@ -19175,7 +19150,7 @@ ET endstream endobj -1555 0 obj +1560 0 obj << /Length 5346 >> @@ -19232,7 +19207,7 @@ ET endstream endobj -1560 0 obj +1565 0 obj << /Length 5364 >> @@ -19288,7 +19263,7 @@ ET endstream endobj -1567 0 obj +1572 0 obj << /Length 6381 >> @@ -19312,7 +19287,7 @@ ET endstream endobj -1574 0 obj +1579 0 obj << /Length 7207 >> @@ -19463,7 +19438,7 @@ ET endstream endobj -1604 0 obj +1609 0 obj << /Length 3725 >> @@ -19576,7 +19551,7 @@ ET endstream endobj -1610 0 obj +1615 0 obj << /Length 1400 >> @@ -19621,7 +19596,7 @@ ET endstream endobj -1616 0 obj +1621 0 obj << /Length 1631 >> @@ -19680,7 +19655,7 @@ ET endstream endobj -1622 0 obj +1627 0 obj << /Length 2106 >> @@ -19753,7 +19728,7 @@ ET endstream endobj -1628 0 obj +1633 0 obj << /Length 538 >> @@ -19769,7 +19744,7 @@ ET endstream endobj -1634 0 obj +1639 0 obj << /Length 4778 >> @@ -19853,7 +19828,7 @@ ET endstream endobj -1641 0 obj +1646 0 obj << /Length 5258 >> @@ -19935,222 +19910,148 @@ BT 0 g 0 G /F8 9.9626 Tf 22.589 0 Td [(Error)-333(co)-28(de.)]TJ 2.318 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(An)-333(in)28(tege)-1(r)-333(v)56(alue;)-334(0)-333(means)-333(no)-334(error)-333(has)-333(b)-28(een)-333(detecte)-1(d)1(.)]TJ 0 g 0 G - 139.477 -139.02 Td [(123)]TJ -0 g 0 G -ET - -endstream -endobj -1648 0 obj -<< -/Length 3654 ->> -stream -0 g 0 G -0 g 0 G -BT -/F16 11.9552 Tf 150.705 706.129 Td [(mm)]TJ -ET -q -1 0 0 1 173.928 706.328 cm -[]0 d 0 J 0.398 w 0 0 m 4.035 0 l S -Q -BT -/F16 11.9552 Tf 177.963 706.129 Td [(mat)]TJ -ET -q -1 0 0 1 201.746 706.328 cm -[]0 d 0 J 0.398 w 0 0 m 4.035 0 l S -Q -BT -/F16 11.9552 Tf 205.781 706.129 Td [(read)-467(|)-467(Read)-466(a)-467(sparse)-467(matrix)-467(from)-467(a)-467(\014le)-466(in)-467(the)]TJ -55.076 -13.948 Td [(MatrixMark)31(et)-375(format)]TJ/F27 9.9626 Tf 1.377 -24.367 Td [(c)-138(a)-138(l)-139(l)]TJ/F8 9.9626 Tf 29.009 0 Td [(m)-50(m)]TJ -ET -q -1 0 0 1 199.288 668.014 cm -[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S -Q -BT -/F8 9.9626 Tf 202.775 667.814 Td [(m)-50(a)-50(t)]TJ -ET -q -1 0 0 1 222.024 668.014 cm -[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S -Q -BT -/F8 9.9626 Tf 225.51 667.814 Td [(r)-50(e)-50(a)-50(d)-155(\050)-139(a)-228(,)-911(i)-149(r)-150(e)-149(t)-461(,)-896(i)-134(u)-135(n)-135(i)-135(t)-431(,)-890(f)-129(i)-129(l)-129(e)-129(n)-129(a)-129(m)-129(e)-235(\051)]TJ -0 g 0 G -0 g 0 G -0 g 0 G -/F27 9.9626 Tf -74.805 -17.933 Td [(T)32(yp)-32(e:)]TJ -0 g 0 G -/F8 9.9626 Tf 33.797 0 Td [(Async)28(hronous.)]TJ -0 g 0 G -/F27 9.9626 Tf -33.797 -19.925 Td [(On)-383(En)32(try)]TJ -0 g 0 G -0 g 0 G - 0 -19.925 Td [(\014lename)]TJ -0 g 0 G -/F8 9.9626 Tf 46.513 0 Td [(The)-333(name)-334(of)-333(the)-333(\014le)-334(to)-333(b)-28(e)-333(read.)]TJ -21.607 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.184 0 Td [(optional)]TJ/F8 9.9626 Tf 40.577 0 Td [(.)]TJ -65.76 -11.955 Td [(Sp)-28(eci\014ed)-435(as:)-648(a)-435(c)28(haracte)-1(r)-435(v)56(ariable)-435(con)28(taining)-435(a)-436(v)56(alid)-435(\014le)-435(name,)-461(or)]TJ/F30 9.9626 Tf 297.915 0 Td [(-)]TJ/F8 9.9626 Tf 5.23 0 Td [(,)-461(in)]TJ -303.145 -11.956 Td [(whic)28(h)-302(case)-303(the)-302(default)-302(input)-302(unit)-302(5)-303(\050i.e.)-434(standard)-302(input)-302(in)-302(Unix)-302(jargon\051)-302(is)]TJ 0 -11.955 Td [(used.)-444(Default:)]TJ/F30 9.9626 Tf 66.057 0 Td [(-)]TJ/F8 9.9626 Tf 5.231 0 Td [(.)]TJ -0 g 0 G -/F27 9.9626 Tf -96.195 -19.925 Td [(iunit)]TJ -0 g 0 G -/F8 9.9626 Tf 28.532 0 Td [(The)-333(F)83(ortran)-333(\014le)-334(u)1(nit)-334(n)28(um)28(b)-28(er.)]TJ -3.625 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.183 0 Td [(optional)]TJ/F8 9.9626 Tf 40.577 0 Td [(.)]TJ -65.76 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-444(an)-334(in)28(teger)-333(v)55(alue.)-444(Only)-333(me)-1(an)1(ingful)-334(if)-333(\014lename)-333(is)-334(not)]TJ/F30 9.9626 Tf 286.288 0 Td [(-)]TJ/F8 9.9626 Tf 5.23 0 Td [(.)]TJ -0 g 0 G -/F27 9.9626 Tf -316.425 -21.918 Td [(On)-383(Return)]TJ -0 g 0 G -0 g 0 G - 0 -19.925 Td [(a)]TJ -0 g 0 G -/F8 9.9626 Tf 10.551 0 Td [(the)-333(sparse)-334(matrix)-333(read)-333(from)-334(\014le.)]TJ 14.356 -11.956 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.183 0 Td [(required)]TJ/F8 9.9626 Tf 41.898 0 Td [(.)]TJ -67.081 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-444(a)-334(structured)-333(data)-333(of)-334(t)28(yp)-28(e)]TJ -0 0 1 rg 0 0 1 RG -/F30 9.9626 Tf 170.915 0 Td [(psb)]TJ -ET -q -1 0 0 1 362.845 452.82 cm -[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S -Q -BT -/F30 9.9626 Tf 365.983 452.621 Td [(Tspmat)]TJ -ET -q -1 0 0 1 397.993 452.82 cm -[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S -Q -BT -/F30 9.9626 Tf 401.131 452.621 Td [(type)]TJ -0 g 0 G -/F8 9.9626 Tf 20.921 0 Td [(.)]TJ -0 g 0 G -/F27 9.9626 Tf -271.347 -19.925 Td [(iret)]TJ -0 g 0 G -/F8 9.9626 Tf 22.589 0 Td [(Error)-333(co)-28(de.)]TJ 2.317 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.612 0 Td [(required)]TJ/F8 9.9626 Tf -29.612 -11.955 Td [(An)-333(in)27(t)1(e)-1(ger)-333(v)56(alue;)-334(0)-333(means)-333(no)-334(error)-333(has)-333(b)-28(een)-333(detec)-1(ted.)]TJ -0 g 0 G - 139.477 -318.348 Td [(124)]TJ + 139.477 -139.02 Td [(123)]TJ 0 g 0 G ET endstream endobj -1546 0 obj +1551 0 obj << /Type /ObjStm /N 100 /First 973 -/Length 8769 +/Length 8660 >> stream -1544 0 1545 58 1540 116 1548 248 1550 366 449 425 1551 483 1552 542 1547 601 1554 733 -1556 851 453 909 1557 966 1553 1023 1559 1155 1561 1273 457 1332 1562 1390 1558 1448 1566 1580 -1563 1728 1564 1874 1568 2021 461 2079 1565 2136 1573 2229 1575 2347 1576 2406 1577 2465 1579 2524 -1580 2583 1581 2642 1582 2701 1583 2760 1584 2818 1585 2877 1586 2936 1587 2995 1588 3054 1589 3113 -1590 3172 1591 3231 1592 3290 1593 3347 1594 3406 1595 3465 1596 3524 1597 3583 1598 3642 1599 3701 -1600 3760 1601 3819 1570 3877 1571 3936 1572 3995 1603 4103 1605 4221 465 4279 1606 4336 1607 4393 -1602 4450 1609 4543 1611 4661 469 4720 1612 4778 1613 4836 1608 4894 1615 4987 1617 5105 473 5163 -1618 5220 1619 5277 1614 5334 1621 5427 1623 5545 477 5604 1624 5662 1625 5720 1620 5778 1627 5884 -1629 6002 481 6060 1626 6117 1633 6210 1631 6349 1635 6493 485 6552 1636 6610 1637 6669 1632 6728 -1640 6834 1638 6973 1642 7117 489 7175 1643 7232 1644 7290 1639 7348 1647 7454 1645 7593 1649 7737 -% 1544 0 obj +1546 0 1548 118 445 176 1549 233 1550 291 1545 349 1553 481 1555 599 449 658 1556 716 +1557 775 1552 834 1559 966 1561 1084 453 1142 1562 1199 1558 1256 1564 1388 1566 1506 457 1565 +1567 1623 1563 1681 1571 1813 1568 1961 1569 2107 1573 2254 461 2312 1570 2369 1578 2462 1580 2580 +1581 2639 1582 2698 1584 2757 1585 2816 1586 2875 1587 2934 1588 2993 1589 3051 1590 3110 1591 3169 +1592 3228 1593 3287 1594 3346 1595 3405 1596 3464 1597 3523 1598 3580 1599 3639 1600 3698 1601 3757 +1602 3816 1603 3875 1604 3934 1605 3993 1606 4052 1575 4110 1576 4169 1577 4228 1608 4336 1610 4454 +465 4512 1611 4569 1612 4626 1607 4683 1614 4776 1616 4894 469 4953 1617 5011 1618 5069 1613 5127 +1620 5220 1622 5338 473 5396 1623 5453 1624 5510 1619 5567 1626 5660 1628 5778 477 5837 1629 5895 +1630 5953 1625 6011 1632 6117 1634 6235 481 6293 1631 6350 1638 6443 1636 6582 1640 6726 485 6785 +1641 6843 1642 6902 1637 6961 1645 7067 1643 7206 1647 7350 489 7408 1648 7465 1649 7523 1644 7581 +% 1546 0 obj << -/D [1541 0 R /XYZ 99.895 235.436 null] +/Type /Page +/Contents 1547 0 R +/Resources 1545 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1538 0 R >> -% 1545 0 obj +% 1548 0 obj << -/D [1541 0 R /XYZ 99.895 201.618 null] +/D [1546 0 R /XYZ 98.895 753.953 null] >> -% 1540 0 obj +% 445 0 obj +<< +/D [1546 0 R /XYZ 99.895 720.077 null] +>> +% 1549 0 obj +<< +/D [1546 0 R /XYZ 99.895 235.436 null] +>> +% 1550 0 obj +<< +/D [1546 0 R /XYZ 99.895 201.618 null] +>> +% 1545 0 obj << -/Font << /F16 546 0 R /F30 754 0 R /F8 549 0 R /F27 548 0 R /F14 757 0 R /F11 740 0 R >> +/Font << /F16 550 0 R /F30 759 0 R /F8 553 0 R /F27 552 0 R /F14 762 0 R /F11 745 0 R >> /ProcSet [ /PDF /Text ] >> -% 1548 0 obj +% 1553 0 obj << /Type /Page -/Contents 1549 0 R -/Resources 1547 0 R +/Contents 1554 0 R +/Resources 1552 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1533 0 R +/Parent 1538 0 R >> -% 1550 0 obj +% 1555 0 obj << -/D [1548 0 R /XYZ 149.705 753.953 null] +/D [1553 0 R /XYZ 149.705 753.953 null] >> % 449 0 obj << -/D [1548 0 R /XYZ 150.705 720.077 null] +/D [1553 0 R /XYZ 150.705 720.077 null] >> -% 1551 0 obj +% 1556 0 obj << -/D [1548 0 R /XYZ 150.705 235.436 null] +/D [1553 0 R /XYZ 150.705 235.436 null] >> -% 1552 0 obj +% 1557 0 obj << -/D [1548 0 R /XYZ 150.705 201.618 null] +/D [1553 0 R /XYZ 150.705 201.618 null] >> -% 1547 0 obj +% 1552 0 obj << -/Font << /F16 546 0 R /F30 754 0 R /F8 549 0 R /F27 548 0 R /F14 757 0 R /F11 740 0 R >> +/Font << /F16 550 0 R /F30 759 0 R /F8 553 0 R /F27 552 0 R /F14 762 0 R /F11 745 0 R >> /ProcSet [ /PDF /Text ] >> -% 1554 0 obj +% 1559 0 obj << /Type /Page -/Contents 1555 0 R -/Resources 1553 0 R +/Contents 1560 0 R +/Resources 1558 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1533 0 R +/Parent 1538 0 R >> -% 1556 0 obj +% 1561 0 obj << -/D [1554 0 R /XYZ 98.895 753.953 null] +/D [1559 0 R /XYZ 98.895 753.953 null] >> % 453 0 obj << -/D [1554 0 R /XYZ 99.895 720.077 null] +/D [1559 0 R /XYZ 99.895 720.077 null] >> -% 1557 0 obj +% 1562 0 obj << -/D [1554 0 R /XYZ 99.895 223.48 null] +/D [1559 0 R /XYZ 99.895 223.48 null] >> -% 1553 0 obj +% 1558 0 obj << -/Font << /F16 546 0 R /F30 754 0 R /F8 549 0 R /F27 548 0 R /F11 740 0 R /F14 757 0 R >> +/Font << /F16 550 0 R /F30 759 0 R /F8 553 0 R /F27 552 0 R /F11 745 0 R /F14 762 0 R >> /ProcSet [ /PDF /Text ] >> -% 1559 0 obj +% 1564 0 obj << /Type /Page -/Contents 1560 0 R -/Resources 1558 0 R +/Contents 1565 0 R +/Resources 1563 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1533 0 R +/Parent 1538 0 R >> -% 1561 0 obj +% 1566 0 obj << -/D [1559 0 R /XYZ 149.705 753.953 null] +/D [1564 0 R /XYZ 149.705 753.953 null] >> % 457 0 obj << -/D [1559 0 R /XYZ 150.705 720.077 null] +/D [1564 0 R /XYZ 150.705 720.077 null] >> -% 1562 0 obj +% 1567 0 obj << -/D [1559 0 R /XYZ 150.705 223.48 null] +/D [1564 0 R /XYZ 150.705 223.48 null] >> -% 1558 0 obj +% 1563 0 obj << -/Font << /F16 546 0 R /F30 754 0 R /F8 549 0 R /F27 548 0 R /F11 740 0 R /F14 757 0 R >> +/Font << /F16 550 0 R /F30 759 0 R /F8 553 0 R /F27 552 0 R /F11 745 0 R /F14 762 0 R >> /ProcSet [ /PDF /Text ] >> -% 1566 0 obj +% 1571 0 obj << /Type /Page -/Contents 1567 0 R -/Resources 1565 0 R +/Contents 1572 0 R +/Resources 1570 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1569 0 R -/Annots [ 1563 0 R 1564 0 R ] +/Parent 1574 0 R +/Annots [ 1568 0 R 1569 0 R ] >> -% 1563 0 obj +% 1568 0 obj << /Type /Annot /Subtype /Link @@ -20158,7 +20059,7 @@ stream /Rect [145.477 501.77 152.451 512.895] /A << /S /GoTo /D (figure.9) >> >> -% 1564 0 obj +% 1569 0 obj << /Type /Annot /Subtype /Link @@ -20166,291 +20067,291 @@ stream /Rect [146.734 346.63 158.689 357.478] /A << /S /GoTo /D (figure.10) >> >> -% 1568 0 obj +% 1573 0 obj << -/D [1566 0 R /XYZ 98.895 753.953 null] +/D [1571 0 R /XYZ 98.895 753.953 null] >> % 461 0 obj << -/D [1566 0 R /XYZ 99.895 716.092 null] +/D [1571 0 R /XYZ 99.895 716.092 null] >> -% 1565 0 obj +% 1570 0 obj << -/Font << /F16 546 0 R /F8 549 0 R /F30 754 0 R >> +/Font << /F16 550 0 R /F8 553 0 R /F30 759 0 R >> /ProcSet [ /PDF /Text ] >> -% 1573 0 obj +% 1578 0 obj << /Type /Page -/Contents 1574 0 R -/Resources 1572 0 R +/Contents 1579 0 R +/Resources 1577 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1569 0 R ->> -% 1575 0 obj -<< -/D [1573 0 R /XYZ 149.705 753.953 null] ->> -% 1576 0 obj -<< -/D [1573 0 R /XYZ 159.073 687.737 null] ->> -% 1577 0 obj -<< -/D [1573 0 R /XYZ 159.073 691.025 null] ->> -% 1579 0 obj -<< -/D [1573 0 R /XYZ 159.073 680.066 null] +/Parent 1574 0 R >> % 1580 0 obj << -/D [1573 0 R /XYZ 159.073 669.107 null] +/D [1578 0 R /XYZ 149.705 753.953 null] >> % 1581 0 obj << -/D [1573 0 R /XYZ 159.073 658.148 null] +/D [1578 0 R /XYZ 159.073 687.737 null] >> % 1582 0 obj << -/D [1573 0 R /XYZ 159.073 647.189 null] ->> -% 1583 0 obj -<< -/D [1573 0 R /XYZ 159.073 636.23 null] +/D [1578 0 R /XYZ 159.073 691.025 null] >> % 1584 0 obj << -/D [1573 0 R /XYZ 159.073 625.271 null] +/D [1578 0 R /XYZ 159.073 680.066 null] >> % 1585 0 obj << -/D [1573 0 R /XYZ 159.073 614.312 null] +/D [1578 0 R /XYZ 159.073 669.107 null] >> % 1586 0 obj << -/D [1573 0 R /XYZ 159.073 603.353 null] +/D [1578 0 R /XYZ 159.073 658.148 null] >> % 1587 0 obj << -/D [1573 0 R /XYZ 159.073 592.394 null] +/D [1578 0 R /XYZ 159.073 647.189 null] >> % 1588 0 obj << -/D [1573 0 R /XYZ 159.073 581.436 null] +/D [1578 0 R /XYZ 159.073 636.23 null] >> % 1589 0 obj << -/D [1573 0 R /XYZ 159.073 570.477 null] +/D [1578 0 R /XYZ 159.073 625.271 null] >> % 1590 0 obj << -/D [1573 0 R /XYZ 159.073 559.518 null] +/D [1578 0 R /XYZ 159.073 614.312 null] >> % 1591 0 obj << -/D [1573 0 R /XYZ 159.073 548.559 null] +/D [1578 0 R /XYZ 159.073 603.353 null] >> % 1592 0 obj << -/D [1573 0 R /XYZ 159.073 537.6 null] +/D [1578 0 R /XYZ 159.073 592.394 null] >> % 1593 0 obj << -/D [1573 0 R /XYZ 159.073 526.641 null] +/D [1578 0 R /XYZ 159.073 581.436 null] >> % 1594 0 obj << -/D [1573 0 R /XYZ 159.073 515.682 null] +/D [1578 0 R /XYZ 159.073 570.477 null] >> % 1595 0 obj << -/D [1573 0 R /XYZ 159.073 504.723 null] +/D [1578 0 R /XYZ 159.073 559.518 null] >> % 1596 0 obj << -/D [1573 0 R /XYZ 159.073 493.764 null] +/D [1578 0 R /XYZ 159.073 548.559 null] >> % 1597 0 obj << -/D [1573 0 R /XYZ 159.073 482.805 null] +/D [1578 0 R /XYZ 159.073 537.6 null] >> % 1598 0 obj << -/D [1573 0 R /XYZ 159.073 471.847 null] +/D [1578 0 R /XYZ 159.073 526.641 null] >> % 1599 0 obj << -/D [1573 0 R /XYZ 159.073 460.888 null] +/D [1578 0 R /XYZ 159.073 515.682 null] >> % 1600 0 obj << -/D [1573 0 R /XYZ 159.073 449.929 null] +/D [1578 0 R /XYZ 159.073 504.723 null] >> % 1601 0 obj << -/D [1573 0 R /XYZ 159.073 438.97 null] +/D [1578 0 R /XYZ 159.073 493.764 null] >> -% 1570 0 obj +% 1602 0 obj << -/D [1573 0 R /XYZ 194.261 394.492 null] +/D [1578 0 R /XYZ 159.073 482.805 null] >> -% 1571 0 obj +% 1603 0 obj +<< +/D [1578 0 R /XYZ 159.073 471.847 null] +>> +% 1604 0 obj +<< +/D [1578 0 R /XYZ 159.073 460.888 null] +>> +% 1605 0 obj +<< +/D [1578 0 R /XYZ 159.073 449.929 null] +>> +% 1606 0 obj +<< +/D [1578 0 R /XYZ 159.073 438.97 null] +>> +% 1575 0 obj +<< +/D [1578 0 R /XYZ 194.261 394.492 null] +>> +% 1576 0 obj << -/D [1573 0 R /XYZ 200.884 149.223 null] +/D [1578 0 R /XYZ 200.884 149.223 null] >> -% 1572 0 obj +% 1577 0 obj << -/Font << /F52 1578 0 R /F45 1145 0 R /F8 549 0 R /F30 754 0 R >> +/Font << /F52 1583 0 R /F45 1150 0 R /F8 553 0 R /F30 759 0 R >> /ProcSet [ /PDF /Text ] >> -% 1603 0 obj +% 1608 0 obj << /Type /Page -/Contents 1604 0 R -/Resources 1602 0 R +/Contents 1609 0 R +/Resources 1607 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1569 0 R +/Parent 1574 0 R >> -% 1605 0 obj +% 1610 0 obj << -/D [1603 0 R /XYZ 98.895 753.953 null] +/D [1608 0 R /XYZ 98.895 753.953 null] >> % 465 0 obj << -/D [1603 0 R /XYZ 99.895 724.062 null] +/D [1608 0 R /XYZ 99.895 724.062 null] >> -% 1606 0 obj +% 1611 0 obj << -/D [1603 0 R /XYZ 99.895 638.48 null] +/D [1608 0 R /XYZ 99.895 638.48 null] >> -% 1607 0 obj +% 1612 0 obj << -/D [1603 0 R /XYZ 99.895 638.48 null] +/D [1608 0 R /XYZ 99.895 638.48 null] >> -% 1602 0 obj +% 1607 0 obj << -/Font << /F16 546 0 R /F27 548 0 R /F8 549 0 R >> +/Font << /F16 550 0 R /F27 552 0 R /F8 553 0 R >> /ProcSet [ /PDF /Text ] >> -% 1609 0 obj +% 1614 0 obj << /Type /Page -/Contents 1610 0 R -/Resources 1608 0 R +/Contents 1615 0 R +/Resources 1613 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1569 0 R +/Parent 1574 0 R >> -% 1611 0 obj +% 1616 0 obj << -/D [1609 0 R /XYZ 149.705 753.953 null] +/D [1614 0 R /XYZ 149.705 753.953 null] >> % 469 0 obj << -/D [1609 0 R /XYZ 150.705 724.062 null] +/D [1614 0 R /XYZ 150.705 724.062 null] >> -% 1612 0 obj +% 1617 0 obj << -/D [1609 0 R /XYZ 150.705 638.48 null] +/D [1614 0 R /XYZ 150.705 638.48 null] >> -% 1613 0 obj +% 1618 0 obj << -/D [1609 0 R /XYZ 150.705 638.48 null] +/D [1614 0 R /XYZ 150.705 638.48 null] >> -% 1608 0 obj +% 1613 0 obj << -/Font << /F16 546 0 R /F27 548 0 R /F8 549 0 R >> +/Font << /F16 550 0 R /F27 552 0 R /F8 553 0 R >> /ProcSet [ /PDF /Text ] >> -% 1615 0 obj +% 1620 0 obj << /Type /Page -/Contents 1616 0 R -/Resources 1614 0 R +/Contents 1621 0 R +/Resources 1619 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1569 0 R +/Parent 1574 0 R >> -% 1617 0 obj +% 1622 0 obj << -/D [1615 0 R /XYZ 98.895 753.953 null] +/D [1620 0 R /XYZ 98.895 753.953 null] >> % 473 0 obj << -/D [1615 0 R /XYZ 99.895 724.062 null] +/D [1620 0 R /XYZ 99.895 724.062 null] >> -% 1618 0 obj +% 1623 0 obj << -/D [1615 0 R /XYZ 99.895 635.69 null] +/D [1620 0 R /XYZ 99.895 635.69 null] >> -% 1619 0 obj +% 1624 0 obj << -/D [1615 0 R /XYZ 99.895 638.48 null] +/D [1620 0 R /XYZ 99.895 638.48 null] >> -% 1614 0 obj +% 1619 0 obj << -/Font << /F16 546 0 R /F27 548 0 R /F8 549 0 R >> +/Font << /F16 550 0 R /F27 552 0 R /F8 553 0 R >> /ProcSet [ /PDF /Text ] >> -% 1621 0 obj +% 1626 0 obj << /Type /Page -/Contents 1622 0 R -/Resources 1620 0 R +/Contents 1627 0 R +/Resources 1625 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1569 0 R +/Parent 1574 0 R >> -% 1623 0 obj +% 1628 0 obj << -/D [1621 0 R /XYZ 149.705 753.953 null] +/D [1626 0 R /XYZ 149.705 753.953 null] >> % 477 0 obj << -/D [1621 0 R /XYZ 150.705 724.062 null] +/D [1626 0 R /XYZ 150.705 724.062 null] >> -% 1624 0 obj +% 1629 0 obj << -/D [1621 0 R /XYZ 150.705 635.69 null] +/D [1626 0 R /XYZ 150.705 635.69 null] >> -% 1625 0 obj +% 1630 0 obj << -/D [1621 0 R /XYZ 150.705 638.48 null] +/D [1626 0 R /XYZ 150.705 638.48 null] >> -% 1620 0 obj +% 1625 0 obj << -/Font << /F16 546 0 R /F27 548 0 R /F8 549 0 R /F30 754 0 R >> +/Font << /F16 550 0 R /F27 552 0 R /F8 553 0 R /F30 759 0 R >> /ProcSet [ /PDF /Text ] >> -% 1627 0 obj +% 1632 0 obj << /Type /Page -/Contents 1628 0 R -/Resources 1626 0 R +/Contents 1633 0 R +/Resources 1631 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1630 0 R +/Parent 1635 0 R >> -% 1629 0 obj +% 1634 0 obj << -/D [1627 0 R /XYZ 98.895 753.953 null] +/D [1632 0 R /XYZ 98.895 753.953 null] >> % 481 0 obj << -/D [1627 0 R /XYZ 99.895 716.092 null] +/D [1632 0 R /XYZ 99.895 716.092 null] >> -% 1626 0 obj +% 1631 0 obj << -/Font << /F16 546 0 R /F8 549 0 R /F30 754 0 R >> +/Font << /F16 550 0 R /F8 553 0 R /F30 759 0 R >> /ProcSet [ /PDF /Text ] >> -% 1633 0 obj +% 1638 0 obj << /Type /Page -/Contents 1634 0 R -/Resources 1632 0 R +/Contents 1639 0 R +/Resources 1637 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1630 0 R -/Annots [ 1631 0 R ] +/Parent 1635 0 R +/Annots [ 1636 0 R ] >> -% 1631 0 obj +% 1636 0 obj << /Type /Annot /Subtype /Link @@ -20458,37 +20359,37 @@ stream /Rect [345.53 449.411 423.049 460.536] /A << /S /GoTo /D (spdata) >> >> -% 1635 0 obj +% 1640 0 obj << -/D [1633 0 R /XYZ 149.705 753.953 null] +/D [1638 0 R /XYZ 149.705 753.953 null] >> % 485 0 obj << -/D [1633 0 R /XYZ 150.705 720.077 null] +/D [1638 0 R /XYZ 150.705 720.077 null] >> -% 1636 0 obj +% 1641 0 obj << -/D [1633 0 R /XYZ 150.705 677.445 null] +/D [1638 0 R /XYZ 150.705 677.445 null] >> -% 1637 0 obj +% 1642 0 obj << -/D [1633 0 R /XYZ 150.705 679.769 null] +/D [1638 0 R /XYZ 150.705 679.769 null] >> -% 1632 0 obj +% 1637 0 obj << -/Font << /F16 546 0 R /F27 548 0 R /F8 549 0 R /F30 754 0 R >> +/Font << /F16 550 0 R /F27 552 0 R /F8 553 0 R /F30 759 0 R >> /ProcSet [ /PDF /Text ] >> -% 1640 0 obj +% 1645 0 obj << /Type /Page -/Contents 1641 0 R -/Resources 1639 0 R +/Contents 1646 0 R +/Resources 1644 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1630 0 R -/Annots [ 1638 0 R ] +/Parent 1635 0 R +/Annots [ 1643 0 R ] >> -% 1638 0 obj +% 1643 0 obj << /Type /Annot /Subtype /Link @@ -20496,52 +20397,121 @@ stream /Rect [294.721 582.91 372.239 594.035] /A << /S /GoTo /D (spdata) >> >> -% 1642 0 obj +% 1647 0 obj << -/D [1640 0 R /XYZ 98.895 753.953 null] +/D [1645 0 R /XYZ 98.895 753.953 null] >> % 489 0 obj << -/D [1640 0 R /XYZ 99.895 720.077 null] +/D [1645 0 R /XYZ 99.895 720.077 null] >> -% 1643 0 obj +% 1648 0 obj << -/D [1640 0 R /XYZ 99.895 677.445 null] +/D [1645 0 R /XYZ 99.895 677.445 null] >> -% 1644 0 obj +% 1649 0 obj << -/D [1640 0 R /XYZ 99.895 679.769 null] +/D [1645 0 R /XYZ 99.895 679.769 null] >> -% 1639 0 obj +% 1644 0 obj << -/Font << /F16 546 0 R /F27 548 0 R /F8 549 0 R /F30 754 0 R >> +/Font << /F16 550 0 R /F27 552 0 R /F8 553 0 R /F30 759 0 R >> /ProcSet [ /PDF /Text ] >> -% 1647 0 obj -<< -/Type /Page -/Contents 1648 0 R -/Resources 1646 0 R -/MediaBox [0 0 595.276 841.89] -/Parent 1630 0 R -/Annots [ 1645 0 R ] ->> -% 1645 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [345.53 449.411 423.049 460.536] -/A << /S /GoTo /D (spdata) >> ->> -% 1649 0 obj + +endstream +endobj +1653 0 obj << -/D [1647 0 R /XYZ 149.705 753.953 null] +/Length 3654 >> +stream +0 g 0 G +0 g 0 G +BT +/F16 11.9552 Tf 150.705 706.129 Td [(mm)]TJ +ET +q +1 0 0 1 173.928 706.328 cm +[]0 d 0 J 0.398 w 0 0 m 4.035 0 l S +Q +BT +/F16 11.9552 Tf 177.963 706.129 Td [(mat)]TJ +ET +q +1 0 0 1 201.746 706.328 cm +[]0 d 0 J 0.398 w 0 0 m 4.035 0 l S +Q +BT +/F16 11.9552 Tf 205.781 706.129 Td [(read)-467(|)-467(Read)-466(a)-467(sparse)-467(matrix)-467(from)-467(a)-467(\014le)-466(in)-467(the)]TJ -55.076 -13.948 Td [(MatrixMark)31(et)-375(format)]TJ/F27 9.9626 Tf 1.377 -24.367 Td [(c)-138(a)-138(l)-139(l)]TJ/F8 9.9626 Tf 29.009 0 Td [(m)-50(m)]TJ +ET +q +1 0 0 1 199.288 668.014 cm +[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +Q +BT +/F8 9.9626 Tf 202.775 667.814 Td [(m)-50(a)-50(t)]TJ +ET +q +1 0 0 1 222.024 668.014 cm +[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +Q +BT +/F8 9.9626 Tf 225.51 667.814 Td [(r)-50(e)-50(a)-50(d)-155(\050)-139(a)-228(,)-911(i)-149(r)-150(e)-149(t)-461(,)-896(i)-134(u)-135(n)-135(i)-135(t)-431(,)-890(f)-129(i)-129(l)-129(e)-129(n)-129(a)-129(m)-129(e)-235(\051)]TJ +0 g 0 G +0 g 0 G +0 g 0 G +/F27 9.9626 Tf -74.805 -17.933 Td [(T)32(yp)-32(e:)]TJ +0 g 0 G +/F8 9.9626 Tf 33.797 0 Td [(Async)28(hronous.)]TJ +0 g 0 G +/F27 9.9626 Tf -33.797 -19.925 Td [(On)-383(En)32(try)]TJ +0 g 0 G +0 g 0 G + 0 -19.925 Td [(\014lename)]TJ +0 g 0 G +/F8 9.9626 Tf 46.513 0 Td [(The)-333(name)-334(of)-333(the)-333(\014le)-334(to)-333(b)-28(e)-333(read.)]TJ -21.607 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.184 0 Td [(optional)]TJ/F8 9.9626 Tf 40.577 0 Td [(.)]TJ -65.76 -11.955 Td [(Sp)-28(eci\014ed)-435(as:)-648(a)-435(c)28(haracte)-1(r)-435(v)56(ariable)-435(con)28(taining)-435(a)-436(v)56(alid)-435(\014le)-435(name,)-461(or)]TJ/F30 9.9626 Tf 297.915 0 Td [(-)]TJ/F8 9.9626 Tf 5.23 0 Td [(,)-461(in)]TJ -303.145 -11.956 Td [(whic)28(h)-302(case)-303(the)-302(default)-302(input)-302(unit)-302(5)-303(\050i.e.)-434(standard)-302(input)-302(in)-302(Unix)-302(jargon\051)-302(is)]TJ 0 -11.955 Td [(used.)-444(Default:)]TJ/F30 9.9626 Tf 66.057 0 Td [(-)]TJ/F8 9.9626 Tf 5.231 0 Td [(.)]TJ +0 g 0 G +/F27 9.9626 Tf -96.195 -19.925 Td [(iunit)]TJ +0 g 0 G +/F8 9.9626 Tf 28.532 0 Td [(The)-333(F)83(ortran)-333(\014le)-334(u)1(nit)-334(n)28(um)28(b)-28(er.)]TJ -3.625 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.183 0 Td [(optional)]TJ/F8 9.9626 Tf 40.577 0 Td [(.)]TJ -65.76 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-444(an)-334(in)28(teger)-333(v)55(alue.)-444(Only)-333(me)-1(an)1(ingful)-334(if)-333(\014lename)-333(is)-334(not)]TJ/F30 9.9626 Tf 286.288 0 Td [(-)]TJ/F8 9.9626 Tf 5.23 0 Td [(.)]TJ +0 g 0 G +/F27 9.9626 Tf -316.425 -21.918 Td [(On)-383(Return)]TJ +0 g 0 G +0 g 0 G + 0 -19.925 Td [(a)]TJ +0 g 0 G +/F8 9.9626 Tf 10.551 0 Td [(the)-333(sparse)-334(matrix)-333(read)-333(from)-334(\014le.)]TJ 14.356 -11.956 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.183 0 Td [(required)]TJ/F8 9.9626 Tf 41.898 0 Td [(.)]TJ -67.081 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-444(a)-334(structured)-333(data)-333(of)-334(t)28(yp)-28(e)]TJ +0 0 1 rg 0 0 1 RG +/F30 9.9626 Tf 170.915 0 Td [(psb)]TJ +ET +q +1 0 0 1 362.845 452.82 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +Q +BT +/F30 9.9626 Tf 365.983 452.621 Td [(Tspmat)]TJ +ET +q +1 0 0 1 397.993 452.82 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +Q +BT +/F30 9.9626 Tf 401.131 452.621 Td [(type)]TJ +0 g 0 G +/F8 9.9626 Tf 20.921 0 Td [(.)]TJ +0 g 0 G +/F27 9.9626 Tf -271.347 -19.925 Td [(iret)]TJ +0 g 0 G +/F8 9.9626 Tf 22.589 0 Td [(Error)-333(co)-28(de.)]TJ 2.317 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.612 0 Td [(required)]TJ/F8 9.9626 Tf -29.612 -11.955 Td [(An)-333(in)27(t)1(e)-1(ger)-333(v)56(alue;)-334(0)-333(means)-333(no)-334(error)-333(has)-333(b)-28(een)-333(detec)-1(ted.)]TJ +0 g 0 G + 139.477 -318.348 Td [(124)]TJ +0 g 0 G +ET endstream endobj -1655 0 obj +1660 0 obj << /Length 3705 >> @@ -20613,7 +20583,7 @@ ET endstream endobj -1662 0 obj +1667 0 obj << /Length 4185 >> @@ -20707,7 +20677,7 @@ ET endstream endobj -1668 0 obj +1673 0 obj << /Length 3381 >> @@ -20779,7 +20749,7 @@ ET endstream endobj -1675 0 obj +1680 0 obj << /Length 912 >> @@ -20803,25 +20773,18 @@ ET endstream endobj -1681 0 obj -<< -/Length 4642 ->> -stream -0 g 0 G -0 g 0 G -BT -/F16 11.9552 Tf 99.895 706.129 Td [(psb)]TJ -ET -q -1 0 0 1 120.951 706.328 cm -[]0 d 0 J 0.398 w 0 0 m 4.035 0 l S -Q +1686 0 obj +<< +/Length 4500 +>> +stream +0 g 0 G +0 g 0 G BT -/F16 11.9552 Tf 124.986 706.129 Td [(precinit)-375(|)-375(Initialize)-375(a)-375(preconditioner)]TJ +/F16 11.9552 Tf 99.895 706.129 Td [(init)-375(|)-375(Initialize)-375(a)-375(preconditioner)]TJ 0 g 0 G 0 g 0 G -/F30 9.9626 Tf -25.091 -18.389 Td [(call)-525(psb_precinit\050prec,)-525(ptype,)-525(info\051)]TJ +/F30 9.9626 Tf 0 -18.389 Td [(call)-525(prec%init\050ptype,)-525(info\051)]TJ 0 g 0 G /F27 9.9626 Tf 0 -21.918 Td [(T)32(yp)-32(e:)]TJ 0 g 0 G @@ -20894,25 +20857,18 @@ ET endstream endobj -1690 0 obj +1695 0 obj << -/Length 7157 +/Length 7019 >> 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 [(precbld)-375(|)-375(Builds)-375(a)-375(preconditioner)]TJ +/F16 11.9552 Tf 150.705 706.129 Td [(build)-375(|)-375(Builds)-375(a)-375(preconditioner)]TJ 0 g 0 G 0 g 0 G -/F30 9.9626 Tf -25.091 -18.389 Td [(call)-525(psb_precbld\050a,)-525(desc_a,)-525(prec,)-525(info,amold,vmold\051)]TJ +/F30 9.9626 Tf 0 -18.389 Td [(call)-525(prec%build\050a,)-525(desc_a,)-525(info,amold,vmold\051)]TJ 0 g 0 G /F27 9.9626 Tf 0 -21.918 Td [(T)32(yp)-32(e:)]TJ 0 g 0 G @@ -21091,25 +21047,18 @@ ET endstream endobj -1698 0 obj +1703 0 obj << -/Length 5988 +/Length 5847 >> stream 0 g 0 G 0 g 0 G BT -/F16 11.9552 Tf 99.895 706.129 Td [(psb)]TJ -ET -q -1 0 0 1 120.951 706.328 cm -[]0 d 0 J 0.398 w 0 0 m 4.035 0 l S -Q -BT -/F16 11.9552 Tf 124.986 706.129 Td [(precaply)-375(|)-375(Preconditioner)-375(application)-375(routine)]TJ +/F16 11.9552 Tf 99.895 706.129 Td [(apply)-375(|)-375(Preconditioner)-375(application)-375(routine)]TJ 0 g 0 G 0 g 0 G -/F30 9.9626 Tf -25.091 -18.389 Td [(call)-525(psb_precaply\050prec,x,y,desc_a,info,trans,work\051)]TJ 0 -11.956 Td [(call)-525(psb_precaply\050prec,x,desc_a,info,trans\051)]TJ +/F30 9.9626 Tf 0 -18.389 Td [(call)-525(prec%apply\050x,y,desc_a,info,trans,work\051)]TJ 0 -11.956 Td [(call)-525(prec%apply\050x,desc_a,info,trans\051)]TJ 0 g 0 G /F27 9.9626 Tf 0 -21.917 Td [(T)32(yp)-32(e:)]TJ 0 g 0 G @@ -21248,66 +21197,63 @@ ET endstream endobj -1703 0 obj +1708 0 obj << -/Length 1996 +/Length 2936 >> 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 [(precdescr)-402(|)-402(Prin)31(ts)-402(a)-403(description)-402(of)-402(curren)31(t)-402(precondi-)]TJ -25.091 -13.948 Td [(tioner)]TJ +/F16 11.9552 Tf 150.705 706.129 Td [(descr)-375(|)-375(Prin)31(ts)-375(a)-375(description)-375(of)-375(curren)31(t)-375(preconditioner)]TJ 0 g 0 G 0 g 0 G -/F30 9.9626 Tf 0 -18.389 Td [(call)-525(psb_precdescr\050prec\051)]TJ 0 -11.955 Td [(call)-525(psb_precdescr\050prec,)-525(iout\051)]TJ +/F30 9.9626 Tf 0 -18.389 Td [(call)-525(prec%descr\050\051)]TJ 0 -11.956 Td [(call)-525(prec%descr\050iout,)-525(root\051)]TJ 0 g 0 G -/F27 9.9626 Tf 0 -21.918 Td [(T)32(yp)-32(e:)]TJ +/F27 9.9626 Tf 0 -21.917 Td [(T)32(yp)-32(e:)]TJ 0 g 0 G /F8 9.9626 Tf 33.797 0 Td [(Async)28(hronous.)]TJ 0 g 0 G -/F27 9.9626 Tf -33.797 -19.925 Td [(On)-383(En)32(try)]TJ +/F27 9.9626 Tf -33.797 -19.926 Td [(On)-383(En)32(try)]TJ 0 g 0 G 0 g 0 G - 0 -19.926 Td [(prec)]TJ + 0 -19.925 Td [(prec)]TJ 0 g 0 G -/F8 9.9626 Tf 26.408 0 Td [(the)-333(preconditioner.)-445(Scop)-27(e:)]TJ/F27 9.9626 Tf 119.33 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -120.831 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.485 0 Td [(in)]TJ/F8 9.9626 Tf 9.548 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-444(a)-334(preconditioner)-333(data)-333(structure)]TJ +/F8 9.9626 Tf 26.408 0 Td [(the)-333(preconditioner.)-445(Scop)-27(e:)]TJ/F27 9.9626 Tf 119.33 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -120.832 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.612 0 Td [(required)]TJ/F8 9.9626 Tf -29.612 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.548 0 Td [(.)]TJ -43.034 -11.956 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(preconditioner)-333(data)-333(structure)]TJ 0 0 1 rg 0 0 1 RG -/F30 9.9626 Tf 197.537 0 Td [(psb)]TJ +/F30 9.9626 Tf 197.538 0 Td [(psb)]TJ ET q -1 0 0 1 389.467 564.402 cm +1 0 0 1 389.467 578.35 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 392.606 564.203 Td [(prec)]TJ +/F30 9.9626 Tf 392.606 578.15 Td [(prec)]TJ ET q -1 0 0 1 414.155 564.402 cm +1 0 0 1 414.155 578.35 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 417.293 564.203 Td [(type)]TJ +/F30 9.9626 Tf 417.293 578.15 Td [(type)]TJ 0 g 0 G /F8 9.9626 Tf 20.921 0 Td [(.)]TJ 0 g 0 G /F27 9.9626 Tf -287.509 -19.925 Td [(iout)]TJ 0 g 0 G -/F8 9.9626 Tf 24.713 0 Td [(output)-333(unit.)-444(Scop)-28(e:)]TJ/F27 9.9626 Tf 89.94 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -89.747 -11.956 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.612 0 Td [(optiona)]TJ/F8 9.9626 Tf -29.612 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.548 0 Td [(.)]TJ -43.034 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(in)28(teger)-333(n)27(um)28(b)-28(er.)]TJ +/F8 9.9626 Tf 24.713 0 Td [(output)-333(unit.)-444(Scop)-28(e:)]TJ/F27 9.9626 Tf 89.94 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -89.747 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.612 0 Td [(optional)]TJ/F8 9.9626 Tf -29.612 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.548 0 Td [(.)]TJ -43.034 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(in)28(teger)-333(n)27(um)28(b)-28(er.)-444(Default:)-444(default)-334(outpu)1(t)-334(unit.)]TJ +0 g 0 G +/F27 9.9626 Tf -24.906 -19.926 Td [(ro)-32(ot)]TJ +0 g 0 G +/F8 9.9626 Tf 25.93 0 Td [(Pro)-28(cess)-333(from)-334(whic)28(h)-333(to)-333(prin)28(t)-334(Scop)-28(e:)]TJ/F27 9.9626 Tf 157.244 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -158.268 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.612 0 Td [(optional)]TJ/F8 9.9626 Tf -29.612 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-478(as:)-733(an)-478(in)28(teger)-478(n)28(um)27(b)-27(er)-478(b)-28(et)28(w)28(een)-478(0)-478(and)]TJ/F11 9.9626 Tf 220.073 0 Td [(np)]TJ/F14 9.9626 Tf 14.166 0 Td [(\000)]TJ/F8 9.9626 Tf 10.922 0 Td [(1,)-514(in)-478(whic)28(h)-478(case)]TJ -245.161 -11.955 Td [(the)-410(sp)-28(eci\014ed)-410(pro)-28(cess)-410(will)-411(pri)1(n)27(t)-410(the)-410(description,)-429(or)]TJ/F14 9.9626 Tf 225 0 Td [(\000)]TJ/F8 9.9626 Tf 7.749 0 Td [(1,)-429(in)-411(whic)28(h)-410(case)-410(all)]TJ -232.749 -11.955 Td [(pro)-28(cesses)-333(will)-334(prin)28(t.)-444(Default:)-445(0.)]TJ 0 g 0 G - 139.477 -417.974 Td [(132)]TJ + 139.477 -352.221 Td [(132)]TJ 0 g 0 G ET endstream endobj -1707 0 obj +1712 0 obj << /Length 989 >> @@ -21348,85 +21294,162 @@ ET endstream endobj -1712 0 obj +1719 0 obj +<< +/Length 2730 +>> +stream +0 g 0 G +0 g 0 G +BT +/F16 11.9552 Tf 150.705 706.129 Td [(free)-375(|)-375(F)94(ree)-375(a)-375(preconditioner)]TJ +0 g 0 G +0 g 0 G +/F30 9.9626 Tf 0 -18.389 Td [(call)-525(prec%free\050info\051)]TJ +0 g 0 G +/F27 9.9626 Tf 0 -21.918 Td [(T)32(yp)-32(e:)]TJ +0 g 0 G +/F8 9.9626 Tf 33.797 0 Td [(Async)28(hronous.)]TJ +0 g 0 G +/F27 9.9626 Tf -33.797 -19.926 Td [(On)-383(En)32(try)]TJ +0 g 0 G +0 g 0 G + 0 -19.925 Td [(prec)]TJ +0 g 0 G +/F8 9.9626 Tf 26.408 0 Td [(the)-333(preconditioner.)]TJ -1.501 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.378 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf 23.073 0 Td [(.)]TJ -55.451 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.485 0 Td [(inout)]TJ/F8 9.9626 Tf 26.097 0 Td [(.)]TJ -59.582 -11.956 Td [(Sp)-28(eci\014ed)-333(as:)-444(a)-334(preconditioner)-333(data)-333(structure)]TJ +0 0 1 rg 0 0 1 RG +/F30 9.9626 Tf 197.537 0 Td [(psb)]TJ +ET +q +1 0 0 1 389.467 578.35 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +Q +BT +/F30 9.9626 Tf 392.606 578.15 Td [(prec)]TJ +ET +q +1 0 0 1 414.155 578.35 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +Q +BT +/F30 9.9626 Tf 417.293 578.15 Td [(type)]TJ +0 g 0 G +/F8 9.9626 Tf 20.921 0 Td [(.)]TJ +0 g 0 G +/F27 9.9626 Tf -287.509 -19.925 Td [(On)-383(Exit)]TJ +0 g 0 G +0 g 0 G + 0 -19.925 Td [(prec)]TJ +0 g 0 G +/F8 9.9626 Tf 26.408 0 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.378 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -33.879 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.485 0 Td [(inout)]TJ/F8 9.9626 Tf 26.097 0 Td [(.)]TJ -59.582 -11.956 Td [(Sp)-28(eci\014ed)-333(as:)-444(a)-334(preconditioner)-333(data)-333(structure)]TJ +0 0 1 rg 0 0 1 RG +/F30 9.9626 Tf 197.537 0 Td [(psb)]TJ +ET +q +1 0 0 1 389.467 502.634 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +Q +BT +/F30 9.9626 Tf 392.606 502.434 Td [(prec)]TJ +ET +q +1 0 0 1 414.155 502.634 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +Q +BT +/F30 9.9626 Tf 417.293 502.434 Td [(type)]TJ +0 g 0 G +/F8 9.9626 Tf 20.921 0 Td [(.)]TJ +0 g 0 G +/F27 9.9626 Tf -287.509 -19.925 Td [(info)]TJ +0 g 0 G +/F8 9.9626 Tf 23.758 0 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(global)]TJ/F8 9.9626 Tf -31.23 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.485 0 Td [(out)]TJ/F8 9.9626 Tf 16.549 0 Td [(.)]TJ -50.034 -11.955 Td [(Error)-333(co)-28(de:)-444(if)-334(no)-333(error,)-333(0)-334(is)-333(returned.)]TJ/F16 11.9552 Tf -24.907 -21.918 Td [(Notes)]TJ/F8 9.9626 Tf 37.234 0 Td [(Releases)-334(all)-333(in)28(ternal)-333(storage.)]TJ +0 g 0 G + 127.149 -334.288 Td [(134)]TJ +0 g 0 G +ET + +endstream +endobj +1723 0 obj << -/Length 608 +/Length 598 >> stream 0 g 0 G 0 g 0 G BT -/F16 14.3462 Tf 150.705 706.129 Td [(11)-1125(Iterativ)31(e)-375(Metho)-31(ds)]TJ/F8 9.9626 Tf 0 -21.821 Td [(In)-519(thi)1(s)-519(c)28(hapter)-519(w)28(e)-519(pro)28(vide)-519(routi)1(nes)-519(for)-519(preconditioners)-518(and)-519(iterativ)28(e)-519(meth-)]TJ 0 -11.955 Td [(o)-28(ds.)-647(The)-401(in)28(terfaces)-401(for)-401(Kr)1(ylo)27(v)-401(sub)1(s)-1(p)1(ac)-1(e)-400(metho)-28(ds)-401(are)-401(a)28(v)55(ailable)-400(in)-401(the)-401(mo)-28(dule)]TJ/F30 9.9626 Tf 0 -11.955 Td [(psb_krylov_mod)]TJ/F8 9.9626 Tf 73.225 0 Td [(.)]TJ +/F16 14.3462 Tf 99.895 706.129 Td [(11)-1125(Iterativ)31(e)-375(Metho)-31(ds)]TJ/F8 9.9626 Tf 0 -21.821 Td [(In)-519(this)-518(c)28(hapter)-519(w)28(e)-519(pro)28(vide)-519(routin)1(e)-1(s)-518(for)-519(preconditioners)-518(and)-519(iterativ)28(e)-519(meth-)]TJ 0 -11.955 Td [(o)-28(ds.)-647(The)-401(in)28(terfaces)-401(for)-401(Kryl)1(o)27(v)-401(subspace)-400(m)-1(etho)-27(ds)-401(are)-401(a)28(v)55(ailable)-400(in)-401(the)-401(mo)-28(dule)]TJ/F30 9.9626 Tf 0 -11.955 Td [(psb_krylov_mod)]TJ/F8 9.9626 Tf 73.225 0 Td [(.)]TJ 0 g 0 G - 91.158 -569.96 Td [(134)]TJ + 91.159 -569.96 Td [(135)]TJ 0 g 0 G ET endstream endobj -1719 0 obj +1730 0 obj << -/Length 8313 +/Length 8299 >> 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 [(krylo)31(v)-375(|)-375(Krylo)31(v)-375(Metho)-31(ds)-375(Driv)31(er)-375(Routine)]TJ/F8 9.9626 Tf -25.091 -18.389 Td [(This)-343(subroutine)-342(is)-343(a)-343(driv)28(er)-343(that)-342(pro)27(vid)1(e)-1(s)-342(a)-343(general)-343(in)28(terface)-343(for)-342(all)-343(the)-343(Krylo)28(v-)]TJ 0 -11.956 Td [(Subspace)-333(family)-334(metho)-27(ds)-334(implemen)28(ted)-333(in)-334(PSBLAS)-333(v)28(ersion)-333(2.)]TJ 14.944 -11.955 Td [(The)-333(stopping)-334(criterion)-333(can)-333(tak)28(e)-334(the)-333(follo)28(wing)-334(v)56(alues:)]TJ +/F16 11.9552 Tf 175.796 706.129 Td [(krylo)31(v)-375(|)-375(Krylo)31(v)-375(Metho)-31(ds)-375(Driv)31(er)-375(Routine)]TJ/F8 9.9626 Tf -25.091 -18.389 Td [(This)-343(subroutine)-342(is)-343(a)-343(driv)28(er)-343(that)-342(pro)27(vi)1(des)-343(a)-343(general)-343(in)28(terface)-343(for)-342(all)-343(the)-343(Krylo)28(v-)]TJ 0 -11.956 Td [(Subspace)-333(family)-334(metho)-27(ds)-334(implemen)28(ted)-333(in)-334(PSBLAS)-333(v)28(ersion)-333(2.)]TJ 14.944 -11.955 Td [(The)-333(stopping)-334(criterion)-333(can)-333(tak)28(e)-334(the)-333(follo)28(wing)-334(v)56(alues:)]TJ 0 g 0 G /F27 9.9626 Tf -14.944 -19.102 Td [(1)]TJ 0 g 0 G -/F8 9.9626 Tf 10.71 0 Td [(norm)28(wise)-334(bac)28(kw)28(ard)-333(error)-334(in)-333(the)-333(in\014nit)28(y)-334(norm;)-333(the)-333(iteration)-334(i)1(s)-334(stopp)-28(ed)-333(when)]TJ/F11 9.9626 Tf 109.583 -26.078 Td [(er)-28(r)]TJ/F8 9.9626 Tf 16.949 0 Td [(=)]TJ/F14 9.9626 Tf 38.11 6.74 Td [(k)]TJ/F11 9.9626 Tf 4.982 0 Td [(r)]TJ/F10 6.9738 Tf 4.494 -1.495 Td [(i)]TJ/F14 9.9626 Tf 3.317 1.495 Td [(k)]TJ +/F8 9.9626 Tf 10.71 0 Td [(norm)28(wise)-334(bac)28(kw)28(ard)-333(error)-334(in)-333(the)-333(in\014nit)28(y)-334(norm;)-333(the)-333(iteration)-333(is)-334(stopp)-28(ed)-333(when)]TJ/F11 9.9626 Tf 109.582 -26.078 Td [(er)-28(r)]TJ/F8 9.9626 Tf 16.95 0 Td [(=)]TJ/F14 9.9626 Tf 38.11 6.74 Td [(k)]TJ/F11 9.9626 Tf 4.981 0 Td [(r)]TJ/F10 6.9738 Tf 4.495 -1.495 Td [(i)]TJ/F14 9.9626 Tf 3.317 1.495 Td [(k)]TJ ET q -1 0 0 1 248.849 621.14 cm +1 0 0 1 299.658 621.14 cm []0 d 0 J 0.398 w 0 0 m 70.572 0 l S Q BT -/F8 9.9626 Tf 248.849 611.815 Td [(\050)]TJ/F14 9.9626 Tf 3.874 0 Td [(k)]TJ/F11 9.9626 Tf 4.981 0 Td [(A)]TJ/F14 9.9626 Tf 7.472 0 Td [(kk)]TJ/F11 9.9626 Tf 9.963 0 Td [(x)]TJ/F10 6.9738 Tf 5.694 -1.494 Td [(i)]TJ/F14 9.9626 Tf 3.317 1.494 Td [(k)]TJ/F8 9.9626 Tf 7.195 0 Td [(+)]TJ/F14 9.9626 Tf 9.963 0 Td [(k)]TJ/F11 9.9626 Tf 4.981 0 Td [(b)]TJ/F14 9.9626 Tf 4.276 0 Td [(k)]TJ/F8 9.9626 Tf 4.981 0 Td [(\051)]TJ/F11 9.9626 Tf 7.837 6.834 Td [(<)-278(eps)]TJ +/F8 9.9626 Tf 299.658 611.815 Td [(\050)]TJ/F14 9.9626 Tf 3.875 0 Td [(k)]TJ/F11 9.9626 Tf 4.981 0 Td [(A)]TJ/F14 9.9626 Tf 7.472 0 Td [(kk)]TJ/F11 9.9626 Tf 9.963 0 Td [(x)]TJ/F10 6.9738 Tf 5.693 -1.494 Td [(i)]TJ/F14 9.9626 Tf 3.317 1.494 Td [(k)]TJ/F8 9.9626 Tf 7.196 0 Td [(+)]TJ/F14 9.9626 Tf 9.962 0 Td [(k)]TJ/F11 9.9626 Tf 4.981 0 Td [(b)]TJ/F14 9.9626 Tf 4.276 0 Td [(k)]TJ/F8 9.9626 Tf 4.981 0 Td [(\051)]TJ/F11 9.9626 Tf 7.838 6.834 Td [(<)-278(eps)]TJ 0 g 0 G /F27 9.9626 Tf -223.488 -29.952 Td [(2)]TJ 0 g 0 G -/F8 9.9626 Tf 10.71 0 Td [(Relativ)28(e)-334(residual)-333(in)-333(the)-333(2-)-1(n)1(orm)-1(;)-333(the)-333(iteration)-333(is)-334(stopp)-28(ed)-333(when)]TJ/F11 9.9626 Tf 135.515 -26.078 Td [(er)-28(r)]TJ/F8 9.9626 Tf 16.949 0 Td [(=)]TJ/F14 9.9626 Tf 12.178 6.74 Td [(k)]TJ/F11 9.9626 Tf 4.982 0 Td [(r)]TJ/F10 6.9738 Tf 4.494 -1.495 Td [(i)]TJ/F14 9.9626 Tf 3.317 1.495 Td [(k)]TJ +/F8 9.9626 Tf 10.71 0 Td [(Relativ)28(e)-334(residual)-333(in)-333(the)-333(2-norm;)-334(the)-333(iteration)-333(is)-334(stopp)-27(ed)-334(when)]TJ/F11 9.9626 Tf 135.514 -26.078 Td [(er)-28(r)]TJ/F8 9.9626 Tf 16.95 0 Td [(=)]TJ/F14 9.9626 Tf 12.178 6.74 Td [(k)]TJ/F11 9.9626 Tf 4.981 0 Td [(r)]TJ/F10 6.9738 Tf 4.495 -1.495 Td [(i)]TJ/F14 9.9626 Tf 3.317 1.495 Td [(k)]TJ ET q -1 0 0 1 274.781 565.11 cm +1 0 0 1 325.59 565.11 cm []0 d 0 J 0.398 w 0 0 m 18.708 0 l S Q BT -/F14 9.9626 Tf 274.781 555.785 Td [(k)]TJ/F11 9.9626 Tf 4.981 0 Td [(b)]TJ/F14 9.9626 Tf 4.276 0 Td [(k)]TJ/F7 6.9738 Tf 4.981 -1.494 Td [(2)]TJ/F11 9.9626 Tf 8.432 8.328 Td [(<)-278(eps)]TJ +/F14 9.9626 Tf 325.59 555.785 Td [(k)]TJ/F11 9.9626 Tf 4.981 0 Td [(b)]TJ/F14 9.9626 Tf 4.276 0 Td [(k)]TJ/F7 6.9738 Tf 4.981 -1.494 Td [(2)]TJ/F11 9.9626 Tf 8.433 8.328 Td [(<)-278(eps)]TJ 0 g 0 G /F27 9.9626 Tf -197.556 -29.952 Td [(3)]TJ 0 g 0 G -/F8 9.9626 Tf 10.71 0 Td [(Relativ)28(e)-334(residual)-333(reduction)-333(in)-333(the)-334(2-norm;)-333(the)-333(iteration)-334(is)-333(stopp)-28(ed)-333(when)]TJ/F11 9.9626 Tf 133.171 -26.078 Td [(er)-28(r)]TJ/F8 9.9626 Tf 16.949 0 Td [(=)]TJ/F14 9.9626 Tf 14.522 6.74 Td [(k)]TJ/F11 9.9626 Tf 4.982 0 Td [(r)]TJ/F10 6.9738 Tf 4.494 -1.495 Td [(i)]TJ/F14 9.9626 Tf 3.317 1.495 Td [(k)]TJ +/F8 9.9626 Tf 10.71 0 Td [(Relativ)28(e)-334(residual)-333(reduction)-333(in)-333(the)-334(2-norm;)-333(the)-333(iteration)-334(is)-333(stopp)-28(ed)-333(when)]TJ/F11 9.9626 Tf 133.17 -26.078 Td [(er)-28(r)]TJ/F8 9.9626 Tf 16.949 0 Td [(=)]TJ/F14 9.9626 Tf 14.523 6.74 Td [(k)]TJ/F11 9.9626 Tf 4.981 0 Td [(r)]TJ/F10 6.9738 Tf 4.495 -1.495 Td [(i)]TJ/F14 9.9626 Tf 3.317 1.495 Td [(k)]TJ ET q -1 0 0 1 272.436 509.08 cm +1 0 0 1 323.246 509.08 cm []0 d 0 J 0.398 w 0 0 m 23.396 0 l S Q BT -/F14 9.9626 Tf 272.436 499.755 Td [(k)]TJ/F11 9.9626 Tf 4.982 0 Td [(r)]TJ/F7 6.9738 Tf 4.494 -1.494 Td [(0)]TJ/F14 9.9626 Tf 4.47 1.494 Td [(k)]TJ/F7 6.9738 Tf 4.981 -1.494 Td [(2)]TJ/F11 9.9626 Tf 8.432 8.328 Td [(<)-278(eps)]TJ/F8 9.9626 Tf -199.9 -30.505 Td [(The)-443(b)-27(eha)28(viour)-443(is)-442(con)27(troll)1(e)-1(d)-442(b)28(y)-443(the)-442(istop)-442(argumen)27(t)-442(\050see)-443(later\051.)-771(In)-443(the)-442(ab)-28(o)28(v)27(e)]TJ 0 -11.955 Td [(form)28(ulae,)]TJ/F11 9.9626 Tf 43.127 0 Td [(x)]TJ/F10 6.9738 Tf 5.694 -1.495 Td [(i)]TJ/F8 9.9626 Tf 5.856 1.495 Td [(is)-255(the)-255(ten)28(tativ)28(e)-255(solution)-255(and)]TJ/F11 9.9626 Tf 122.117 0 Td [(r)]TJ/F10 6.9738 Tf 4.495 -1.495 Td [(i)]TJ/F8 9.9626 Tf 6.084 1.495 Td [(=)]TJ/F11 9.9626 Tf 10.516 0 Td [(b)]TJ/F14 9.9626 Tf 4.925 0 Td [(\000)]TJ/F11 9.9626 Tf 8.399 0 Td [(Ax)]TJ/F10 6.9738 Tf 13.166 -1.495 Td [(i)]TJ/F8 9.9626 Tf 5.856 1.495 Td [(the)-255(corresp)-28(ondin)1(g)-255(residual)]TJ -230.235 -11.956 Td [(at)-333(the)]TJ/F11 9.9626 Tf 29.335 0 Td [(i)]TJ/F8 9.9626 Tf 3.432 0 Td [(-th)-333(iteration.)]TJ/F27 9.9626 Tf -31.39 -17.52 Td [(c)-138(a)-138(l)-139(l)]TJ/F8 9.9626 Tf 29.763 0 Td [(p)-126(s)-125(b)]TJ +/F14 9.9626 Tf 323.246 499.755 Td [(k)]TJ/F11 9.9626 Tf 4.981 0 Td [(r)]TJ/F7 6.9738 Tf 4.495 -1.494 Td [(0)]TJ/F14 9.9626 Tf 4.469 1.494 Td [(k)]TJ/F7 6.9738 Tf 4.982 -1.494 Td [(2)]TJ/F11 9.9626 Tf 8.432 8.328 Td [(<)-278(eps)]TJ/F8 9.9626 Tf -199.9 -30.505 Td [(The)-442(b)-28(eha)28(viour)-443(is)-442(con)27(t)1(rolled)-443(b)28(y)-443(th)1(e)-443(istop)-442(argumen)27(t)-442(\050see)-443(later\051.)-771(In)-443(the)-442(ab)-28(o)28(v)28(e)]TJ 0 -11.955 Td [(form)28(ulae,)]TJ/F11 9.9626 Tf 43.127 0 Td [(x)]TJ/F10 6.9738 Tf 5.694 -1.495 Td [(i)]TJ/F8 9.9626 Tf 5.855 1.495 Td [(is)-255(the)-255(ten)28(tativ)28(e)-255(solution)-255(and)]TJ/F11 9.9626 Tf 122.118 0 Td [(r)]TJ/F10 6.9738 Tf 4.494 -1.495 Td [(i)]TJ/F8 9.9626 Tf 6.085 1.495 Td [(=)]TJ/F11 9.9626 Tf 10.516 0 Td [(b)]TJ/F14 9.9626 Tf 4.925 0 Td [(\000)]TJ/F11 9.9626 Tf 8.399 0 Td [(Ax)]TJ/F10 6.9738 Tf 13.165 -1.495 Td [(i)]TJ/F8 9.9626 Tf 5.856 1.495 Td [(the)-255(corresp)-28(onding)-254(residual)]TJ -230.234 -11.956 Td [(at)-333(the)]TJ/F11 9.9626 Tf 29.334 0 Td [(i)]TJ/F8 9.9626 Tf 3.433 0 Td [(-th)-333(iteration.)]TJ/F27 9.9626 Tf -31.39 -17.52 Td [(c)-138(a)-138(l)-139(l)]TJ/F8 9.9626 Tf 29.763 0 Td [(p)-126(s)-125(b)]TJ ET q -1 0 0 1 150.386 434.852 cm +1 0 0 1 201.196 434.852 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 154.627 434.653 Td [(k)-126(r)-125(y)-126(l)-125(o)-126(v)-231(\050)-146(m)-40(e)-41(t)-40(h)-40(o)-40(d)-242(,)-194(a)-228(,)-255(p)-94(r)-94(e)-94(c)-349(,)-176(b)-191(,)-185(x)-209(,)-243(e)-81(p)-81(s)-323(,)-274(d)-113(e)-112(s)-113(c)]TJ +/F8 9.9626 Tf 205.436 434.653 Td [(k)-126(r)-125(y)-126(l)-125(o)-126(v)-231(\050)-146(m)-40(e)-41(t)-40(h)-40(o)-40(d)-242(,)-194(a)-228(,)-255(p)-94(r)-94(e)-94(c)-349(,)-176(b)-191(,)-185(x)-209(,)-243(e)-81(p)-81(s)-323(,)-274(d)-113(e)-112(s)-113(c)]TJ ET q -1 0 0 1 351.575 434.852 cm +1 0 0 1 402.384 434.852 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 355.686 434.653 Td [(a)-386(,)-288(i)-127(n)-127(f)-127(o)-302(,)-48(&)]TJ -226.788 -11.956 Td [(&)-579(i)-67(t)-67(m)-68(a)-67(x)-296(,)-311(i)-150(t)-149(e)-150(r)-460(,)]TJ/F27 9.9626 Tf 79.244 0 Td [(e)-65(r)-65(r)]TJ/F8 9.9626 Tf 18.889 0 Td [(,)-305(i)-144(t)-144(r)-144(a)-145(c)-144(e)-449(,)-319(i)-158(r)-158(s)-158(t)-477(,)-287(i)-126(s)-126(t)-126(o)-127(p)-413(,)-230(c)-69(o)-69(n)-69(d)-174(\051)]TJ +/F8 9.9626 Tf 406.495 434.653 Td [(a)-386(,)-288(i)-127(n)-127(f)-127(o)-302(,)-48(&)]TJ -226.787 -11.956 Td [(&)-579(i)-67(t)-67(m)-68(a)-67(x)-296(,)-311(i)-150(t)-149(e)-150(r)-460(,)]TJ/F27 9.9626 Tf 79.243 0 Td [(e)-65(r)-65(r)]TJ/F8 9.9626 Tf 18.89 0 Td [(,)-305(i)-144(t)-144(r)-144(a)-144(c)-145(e)-449(,)-319(i)-158(r)-158(s)-158(t)-476(,)-288(i)-126(s)-126(t)-126(o)-127(p)-413(,)-230(c)-69(o)-69(n)-69(d)-174(\051)]TJ 0 g 0 G 0 g 0 G 0 g 0 G @@ -21439,35 +21462,35 @@ BT 0 g 0 G 0 -19.514 Td [(metho)-32(d)]TJ 0 g 0 G -/F8 9.9626 Tf 43.012 0 Td [(a)-235(string)-235(that)-235(de\014nes)-236(th)1(e)-236(iterativ)28(e)-235(metho)-28(d)-235(to)-235(b)-28(e)-235(used.)-412(Supp)-27(orted)-235(v)55(alues)]TJ -18.105 -11.955 Td [(are:)]TJ +/F8 9.9626 Tf 43.012 0 Td [(a)-235(string)-235(that)-235(de\014nes)-235(the)-236(iterativ)28(e)-235(metho)-28(d)-235(to)-235(b)-28(e)-235(used.)-412(Supp)-27(orted)-235(v)55(alues)]TJ -18.106 -11.955 Td [(are:)]TJ 0 g 0 G /F27 9.9626 Tf 0 -19.513 Td [(CG:)]TJ 0 g 0 G -/F8 9.9626 Tf 25.446 0 Td [(the)-333(Conjugate)-334(Gradien)28(t)-333(metho)-28(d;)]TJ +/F8 9.9626 Tf 25.447 0 Td [(the)-333(Conjugate)-334(Gradien)28(t)-333(metho)-28(d;)]TJ 0 g 0 G -/F27 9.9626 Tf -25.446 -15.529 Td [(CGS:)]TJ +/F27 9.9626 Tf -25.447 -15.529 Td [(CGS:)]TJ 0 g 0 G -/F8 9.9626 Tf 31.811 0 Td [(the)-333(Conjugate)-334(Gradien)28(t)-333(Stabilized)-333(metho)-28(d;)]TJ +/F8 9.9626 Tf 31.812 0 Td [(the)-333(Conjugate)-334(Gradien)28(t)-333(Stabilized)-333(metho)-28(d;)]TJ 0 g 0 G -/F27 9.9626 Tf -31.811 -15.528 Td [(GCR:)]TJ +/F27 9.9626 Tf -31.812 -15.528 Td [(GCR:)]TJ 0 g 0 G /F8 9.9626 Tf 34.039 0 Td [(the)-333(Generalized)-334(Conjugate)-333(Residual)-333(metho)-28(d;)]TJ 0 g 0 G /F27 9.9626 Tf -34.039 -15.529 Td [(F)32(CG:)]TJ 0 g 0 G -/F8 9.9626 Tf 32.337 0 Td [(the)-333(Flexible)-334(Conjugate)-333(Gradien)28(t)-333(metho)-28(d)]TJ +/F8 9.9626 Tf 32.337 0 Td [(the)-333(Flexible)-334(Conjugate)-333(Gradien)28(t)-333(me)-1(th)1(o)-28(d)]TJ 0 0 1 rg 0 0 1 RG /F7 6.9738 Tf 177.626 3.616 Td [(4)]TJ 0 g 0 G -/F8 9.9626 Tf 4.469 -3.616 Td [(;)]TJ +/F8 9.9626 Tf 4.47 -3.616 Td [(;)]TJ 0 g 0 G -/F27 9.9626 Tf -214.432 -15.528 Td [(BICG:)]TJ +/F27 9.9626 Tf -214.433 -15.528 Td [(BICG:)]TJ 0 g 0 G /F8 9.9626 Tf 37.941 0 Td [(the)-333(Bi-Conjugate)-334(Gradien)28(t)-333(metho)-28(d;)]TJ 0 g 0 G /F27 9.9626 Tf -37.941 -15.529 Td [(BICGST)96(AB:)]TJ 0 g 0 G -/F8 9.9626 Tf 68.133 0 Td [(the)-333(Bi-Conjugate)-334(Gradien)28(t)-333(Stabilized)-333(metho)-28(d;)]TJ +/F8 9.9626 Tf 68.133 0 Td [(the)-333(Bi-Conjugate)-334(Gradien)28(t)-333(Stabilized)-333(me)-1(th)1(o)-28(d;)]TJ 0 g 0 G /F27 9.9626 Tf -68.133 -15.528 Td [(BICGST)96(ABL:)]TJ 0 g 0 G @@ -21477,267 +21500,252 @@ BT 0 g 0 G /F8 9.9626 Tf 58.807 0 Td [(the)-333(Generalized)-334(Minimal)-333(Residual)-333(metho)-28(d)-333(with)-334(restarting.)]TJ 0 g 0 G -/F27 9.9626 Tf -83.714 -19.513 Td [(a)]TJ +/F27 9.9626 Tf -83.713 -19.513 Td [(a)]TJ 0 g 0 G -/F8 9.9626 Tf 10.551 0 Td [(the)-333(lo)-28(cal)-333(p)-28(ortion)-333(of)-334(global)-333(sparse)-333(matrix)]TJ/F11 9.9626 Tf 178.968 0 Td [(A)]TJ/F8 9.9626 Tf 7.472 0 Td [(.)]TJ -172.084 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.956 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(structured)-333(data)-333(of)-334(t)28(yp)-28(e)]TJ +/F8 9.9626 Tf 10.55 0 Td [(the)-333(lo)-28(cal)-333(p)-28(ortion)-333(of)-334(global)-333(sparse)-333(matrix)]TJ/F11 9.9626 Tf 178.969 0 Td [(A)]TJ/F8 9.9626 Tf 7.472 0 Td [(.)]TJ -172.085 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.956 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.612 0 Td [(required)]TJ/F8 9.9626 Tf -29.612 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(structured)-333(data)-333(of)-334(t)28(yp)-28(e)]TJ 0 0 1 rg 0 0 1 RG /F30 9.9626 Tf 170.915 0 Td [(psb)]TJ ET q -1 0 0 1 312.036 137.958 cm +1 0 0 1 362.845 137.958 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 315.174 137.759 Td [(Tspmat)]TJ +/F30 9.9626 Tf 365.983 137.759 Td [(Tspmat)]TJ ET q -1 0 0 1 347.183 137.958 cm +1 0 0 1 397.993 137.958 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 350.322 137.759 Td [(type)]TJ +/F30 9.9626 Tf 401.131 137.759 Td [(type)]TJ 0 g 0 G /F8 9.9626 Tf 20.921 0 Td [(.)]TJ 0 g 0 G ET q -1 0 0 1 99.895 129.78 cm +1 0 0 1 150.705 129.78 cm []0 d 0 J 0.398 w 0 0 m 137.482 0 l S Q BT -/F32 5.9776 Tf 110.987 123.138 Td [(4)]TJ/F31 7.9701 Tf 4.151 -2.812 Td [(Note:)-472(the)-355(implemen)30(tation)-354(is)-355(f)1(or)]TJ/F33 7.9701 Tf 120.25 0 Td [(F)-148(C)-70(G)]TJ/F31 7.9701 Tf 19.732 0 Td [(\0501\051.)]TJ +/F32 5.9776 Tf 161.797 123.138 Td [(4)]TJ/F31 7.9701 Tf 4.151 -2.812 Td [(Note:)-472(the)-354(i)-1(mplemen)30(tation)-354(is)-354(for)]TJ/F33 7.9701 Tf 120.249 0 Td [(F)-148(C)-70(G)]TJ/F31 7.9701 Tf 19.733 0 Td [(\0501\051.)]TJ 0 g 0 G 0 g 0 G -/F8 9.9626 Tf 9.159 -29.888 Td [(135)]TJ +/F8 9.9626 Tf 9.158 -29.888 Td [(136)]TJ 0 g 0 G ET endstream endobj -1731 0 obj +1742 0 obj << -/Length 7081 +/Length 7084 >> stream 0 g 0 G 0 g 0 G 0 g 0 G BT -/F27 9.9626 Tf 150.705 706.129 Td [(prec)]TJ +/F27 9.9626 Tf 99.895 706.129 Td [(prec)]TJ 0 g 0 G -/F8 9.9626 Tf 26.408 0 Td [(The)-333(data)-334(structure)-333(con)28(taining)-333(the)-334(preconditioner.)]TJ -1.502 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.612 0 Td [(required)]TJ/F8 9.9626 Tf -29.612 -11.956 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.548 0 Td [(.)]TJ -43.034 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(structured)-333(data)-333(of)-334(t)28(yp)-28(e)]TJ +/F8 9.9626 Tf 26.408 0 Td [(The)-333(data)-334(structure)-333(con)28(taining)-333(the)-334(preconditioner.)]TJ -1.501 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.956 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(structured)-333(data)-333(of)-334(t)28(yp)-28(e)]TJ 0 0 1 rg 0 0 1 RG /F30 9.9626 Tf 170.915 0 Td [(psb)]TJ ET q -1 0 0 1 362.845 658.507 cm +1 0 0 1 312.036 658.507 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 365.983 658.308 Td [(prec)]TJ +/F30 9.9626 Tf 315.174 658.308 Td [(prec)]TJ ET q -1 0 0 1 387.532 658.507 cm +1 0 0 1 336.723 658.507 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 390.67 658.308 Td [(type)]TJ +/F30 9.9626 Tf 339.861 658.308 Td [(type)]TJ 0 g 0 G -/F8 9.9626 Tf 20.922 0 Td [(.)]TJ +/F8 9.9626 Tf 20.921 0 Td [(.)]TJ 0 g 0 G /F27 9.9626 Tf -260.887 -19.427 Td [(b)]TJ 0 g 0 G -/F8 9.9626 Tf 11.346 0 Td [(The)-333(RHS)-334(v)28(ector.)]TJ 13.56 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.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(rank)-333(one)-334(ar)1(ra)27(y)-333(or)-333(an)-334(ob)-55(ject)-333(of)-334(t)28(yp)-28(e)]TJ +/F8 9.9626 Tf 11.347 0 Td [(The)-333(RHS)-334(v)28(ector.)]TJ 13.56 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]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(rank)-333(one)-333(arra)27(y)-333(or)-333(an)-334(ob)-55(ject)-333(of)-334(t)28(yp)-28(e)]TJ 0 0 1 rg 0 0 1 RG /F30 9.9626 Tf 223.496 0 Td [(psb)]TJ ET q -1 0 0 1 415.426 591.26 cm +1 0 0 1 364.616 591.26 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 418.564 591.06 Td [(T)]TJ +/F30 9.9626 Tf 367.754 591.06 Td [(T)]TJ ET q -1 0 0 1 424.422 591.26 cm +1 0 0 1 373.612 591.26 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 427.56 591.06 Td [(vect)]TJ +/F30 9.9626 Tf 376.751 591.06 Td [(vect)]TJ ET q -1 0 0 1 449.109 591.26 cm +1 0 0 1 398.3 591.26 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 452.247 591.06 Td [(type)]TJ +/F30 9.9626 Tf 401.438 591.06 Td [(type)]TJ 0 g 0 G -/F8 9.9626 Tf 20.922 0 Td [(.)]TJ +/F8 9.9626 Tf 20.921 0 Td [(.)]TJ 0 g 0 G /F27 9.9626 Tf -322.464 -19.427 Td [(x)]TJ 0 g 0 G -/F8 9.9626 Tf 11.028 0 Td [(The)-333(initial)-334(guess.)]TJ 13.878 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.612 0 Td [(required)]TJ/F8 9.9626 Tf -29.612 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(inout)]TJ/F8 9.9626 Tf 26.096 0 Td [(.)]TJ -59.582 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(rank)-333(one)-334(ar)1(ra)27(y)-333(or)-333(an)-334(ob)-55(ject)-333(of)-334(t)28(yp)-28(e)]TJ +/F8 9.9626 Tf 11.028 0 Td [(The)-333(initial)-334(guess.)]TJ 13.879 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(inout)]TJ/F8 9.9626 Tf 26.096 0 Td [(.)]TJ -59.582 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(rank)-333(one)-333(arra)27(y)-333(or)-333(an)-334(ob)-55(ject)-333(of)-334(t)28(yp)-28(e)]TJ 0 0 1 rg 0 0 1 RG /F30 9.9626 Tf 223.496 0 Td [(psb)]TJ ET q -1 0 0 1 415.426 524.012 cm +1 0 0 1 364.616 524.012 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 418.564 523.813 Td [(T)]TJ +/F30 9.9626 Tf 367.754 523.813 Td [(T)]TJ ET q -1 0 0 1 424.422 524.012 cm +1 0 0 1 373.612 524.012 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 427.56 523.813 Td [(vect)]TJ +/F30 9.9626 Tf 376.751 523.813 Td [(vect)]TJ ET q -1 0 0 1 449.109 524.012 cm +1 0 0 1 398.3 524.012 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 452.247 523.813 Td [(type)]TJ +/F30 9.9626 Tf 401.438 523.813 Td [(type)]TJ 0 g 0 G -/F8 9.9626 Tf 20.922 0 Td [(.)]TJ +/F8 9.9626 Tf 20.921 0 Td [(.)]TJ 0 g 0 G /F27 9.9626 Tf -322.464 -19.428 Td [(eps)]TJ 0 g 0 G -/F8 9.9626 Tf 21.116 0 Td [(The)-333(stopping)-334(tolerance.)]TJ 3.79 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(global)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.612 0 Td [(required)]TJ/F8 9.9626 Tf -29.612 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.548 0 Td [(.)]TJ -43.034 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(real)-333(n)28(um)27(b)-27(er.)]TJ +/F8 9.9626 Tf 21.117 0 Td [(The)-333(stopping)-334(tolerance.)]TJ 3.79 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(global)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]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(real)-333(n)28(um)27(b)-27(er.)]TJ 0 g 0 G -/F27 9.9626 Tf -24.906 -19.427 Td [(desc)]TJ +/F27 9.9626 Tf -24.907 -19.427 Td [(desc)]TJ ET q -1 0 0 1 172.619 437.337 cm +1 0 0 1 121.81 437.337 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 176.057 437.138 Td [(a)]TJ +/F27 9.9626 Tf 125.247 437.138 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.551 0 Td [(con)28(tains)-334(d)1(ata)-334(structures)-333(for)-333(com)-1(m)28(unications.)]TJ -10.996 -11.956 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(structured)-333(data)-333(of)-334(t)28(yp)-28(e)]TJ 0 0 1 rg 0 0 1 RG /F30 9.9626 Tf 170.915 0 Td [(psb)]TJ ET q -1 0 0 1 362.845 389.516 cm +1 0 0 1 312.036 389.516 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 365.983 389.317 Td [(desc)]TJ +/F30 9.9626 Tf 315.174 389.317 Td [(desc)]TJ ET q -1 0 0 1 387.532 389.516 cm +1 0 0 1 336.723 389.516 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 390.67 389.317 Td [(type)]TJ +/F30 9.9626 Tf 339.861 389.317 Td [(type)]TJ 0 g 0 G -/F8 9.9626 Tf 20.922 0 Td [(.)]TJ +/F8 9.9626 Tf 20.921 0 Td [(.)]TJ 0 g 0 G /F27 9.9626 Tf -260.887 -19.427 Td [(itmax)]TJ 0 g 0 G -/F8 9.9626 Tf 33.783 0 Td [(The)-333(maxim)27(um)-333(n)28(um)28(b)-28(er)-333(of)-334(iterations)-333(to)-333(p)-28(erform.)]TJ -8.877 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(global)]TJ/F8 9.9626 Tf -32.379 -11.956 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.612 0 Td [(optional)]TJ/F8 9.9626 Tf -29.612 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.548 0 Td [(.)]TJ -43.034 -11.955 Td [(Default:)]TJ/F11 9.9626 Tf 39.436 0 Td [(itmax)]TJ/F8 9.9626 Tf 29.505 0 Td [(=)-278(1000.)]TJ -68.941 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(in)28(teger)-333(v)55(ariable)]TJ/F11 9.9626 Tf 142.079 0 Td [(itmax)]TJ/F14 9.9626 Tf 29.505 0 Td [(\025)]TJ/F8 9.9626 Tf 10.516 0 Td [(1.)]TJ +/F8 9.9626 Tf 33.783 0 Td [(The)-333(maxim)27(um)-333(n)28(um)28(b)-28(er)-333(of)-334(iterations)-333(to)-333(p)-28(erform.)]TJ -8.876 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(global)]TJ/F8 9.9626 Tf -32.379 -11.956 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(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 [(itmax)]TJ/F8 9.9626 Tf 29.504 0 Td [(=)-278(1000.)]TJ -68.94 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(in)28(teger)-333(v)55(ariable)]TJ/F11 9.9626 Tf 142.079 0 Td [(itmax)]TJ/F14 9.9626 Tf 29.504 0 Td [(\025)]TJ/F8 9.9626 Tf 10.516 0 Td [(1.)]TJ 0 g 0 G /F27 9.9626 Tf -207.006 -19.427 Td [(itrace)]TJ 0 g 0 G -/F8 9.9626 Tf 33.25 0 Td [(If)]TJ/F11 9.9626 Tf 8.912 0 Td [(>)]TJ/F8 9.9626 Tf 10.516 0 Td [(0)-228(prin)28(t)-228(out)-228(an)-228(i)1(nformational)-228(message)-228(ab)-28(out)-228(con)28(v)28(ergence)-228(ev)27(ery)]TJ/F11 9.9626 Tf 265.015 0 Td [(itr)-28(ace)]TJ/F8 9.9626 Tf -292.787 -11.955 Td [(iterations.)]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 -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 +/F8 9.9626 Tf 33.251 0 Td [(If)]TJ/F11 9.9626 Tf 8.911 0 Td [(>)]TJ/F8 9.9626 Tf 10.517 0 Td [(0)-228(prin)28(t)-228(out)-228(an)-227(informational)-228(message)-228(ab)-28(out)-228(con)28(v)28(ergence)-228(ev)28(e)-1(r)1(y)]TJ/F11 9.9626 Tf 265.015 0 Td [(itr)-28(ace)]TJ/F8 9.9626 Tf -292.787 -11.955 Td [(iterations.)]TJ 0 -11.956 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(global)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(optional)]TJ/F8 9.9626 Tf -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 0 g 0 G /F27 9.9626 Tf -67.94 -31.382 Td [(irst)]TJ 0 g 0 G -/F8 9.9626 Tf 21.857 0 Td [(An)-333(in)28(tege)-1(r)-333(sp)-28(ecifying)-333(the)-333(restart)-334(par)1(a)-1(meter.)]TJ 3.049 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(global)]TJ/F8 9.9626 Tf -32.379 -11.956 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.612 0 Td [(optional)]TJ/F8 9.9626 Tf 40.576 0 Td [(.)]TJ -70.188 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.548 0 Td [(.)]TJ -43.034 -11.955 Td [(V)83(alues:)]TJ/F11 9.9626 Tf 37.507 0 Td [(ir)-28(st)-447(>)]TJ/F8 9.9626 Tf 33.134 0 Td [(0.)-750(This)-435(is)-435(emplo)28(y)27(ed)-435(for)-435(the)-435(BiCGST)83(ABL)-435(or)-435(R)28(GMRES)]TJ -70.641 -11.955 Td [(metho)-28(ds,)-333(otherwise)-334(it)-333(is)-333(ignored.)]TJ +/F8 9.9626 Tf 21.857 0 Td [(An)-333(in)28(te)-1(ger)-333(sp)-28(ecifying)-333(the)-333(restart)-334(parameter.)]TJ 3.05 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(global)]TJ/F8 9.9626 Tf -32.379 -11.956 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(optional)]TJ/F8 9.9626 Tf 40.577 0 Td [(.)]TJ -70.188 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.955 Td [(V)83(alues:)]TJ/F11 9.9626 Tf 37.506 0 Td [(ir)-28(st)-447(>)]TJ/F8 9.9626 Tf 33.135 0 Td [(0.)-750(This)-435(is)-435(emplo)28(y)28(e)-1(d)-435(for)-435(the)-435(BiCGST)84(AB)-1(L)-435(or)-435(R)28(GMRES)]TJ -70.641 -11.955 Td [(metho)-28(ds,)-333(otherwise)-334(it)-333(is)-333(ignored.)]TJ 0 g 0 G -/F27 9.9626 Tf -24.906 -19.427 Td [(istop)]TJ +/F27 9.9626 Tf -24.907 -19.427 Td [(istop)]TJ 0 g 0 G -/F8 9.9626 Tf 29.232 0 Td [(An)-333(in)28(tege)-1(r)-333(sp)-28(ecifying)-333(the)-333(stopping)-333(c)-1(r)1(iterion.)]TJ -4.326 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(global)]TJ +/F8 9.9626 Tf 29.232 0 Td [(An)-333(in)28(te)-1(ger)-333(sp)-28(ecifying)-333(the)-333(stopping)-334(crit)1(e)-1(ri)1(on.)]TJ -4.325 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(global)]TJ 0 g 0 G -/F8 9.9626 Tf 107.098 -29.888 Td [(136)]TJ +/F8 9.9626 Tf 107.098 -29.888 Td [(137)]TJ 0 g 0 G ET endstream endobj -1736 0 obj +1747 0 obj << -/Length 4432 +/Length 4414 >> stream 0 g 0 G 0 g 0 G BT -/F8 9.9626 Tf 124.802 706.129 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(optional)]TJ/F8 9.9626 Tf 40.577 0 Td [(.)]TJ -70.188 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.955 Td [(V)83(alues:)-478(1:)-479(use)-351(th)1(e)-351(norm)28(wise)-351(bac)28(kw)28(ard)-351(error,)-354(2:)-479(use)-350(the)-351(scaled)-350(2-norm)-351(of)]TJ 0 -11.956 Td [(the)-333(residual,)-334(3:)-444(use)-333(the)-334(residual)-333(reduction)-333(in)-334(th)1(e)-334(2-norm.)-444(Default:)-445(2.)]TJ +/F8 9.9626 Tf 175.611 706.129 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.612 0 Td [(optional)]TJ/F8 9.9626 Tf 40.576 0 Td [(.)]TJ -70.188 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.548 0 Td [(.)]TJ -43.034 -11.955 Td [(V)83(alues:)-478(1:)-479(use)-351(the)-350(norm)28(wise)-351(bac)28(kw)28(ard)-351(error,)-354(2:)-479(use)-350(the)-351(scaled)-350(2-norm)-351(of)]TJ 0 -11.956 Td [(the)-333(residual,)-334(3:)-444(use)-333(the)-334(residual)-333(reduction)-333(in)-334(the)-333(2-norm.)-444(Default:)-445(2.)]TJ 0 g 0 G -/F27 9.9626 Tf -24.907 -19.925 Td [(On)-383(Return)]TJ +/F27 9.9626 Tf -24.906 -19.925 Td [(On)-383(Return)]TJ 0 g 0 G 0 g 0 G 0 -19.925 Td [(x)]TJ 0 g 0 G -/F8 9.9626 Tf 11.028 0 Td [(The)-333(computed)-334(solution.)]TJ 13.879 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.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)-333(as:)-445(a)-333(rank)-333(one)-333(arra)27(y)-333(or)-333(an)-334(ob)-55(ject)-333(of)-334(t)28(yp)-28(e)]TJ +/F8 9.9626 Tf 11.028 0 Td [(The)-333(computed)-334(solution.)]TJ 13.878 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.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)-333(as:)-445(a)-333(rank)-333(one)-334(ar)1(ra)27(y)-333(or)-333(an)-334(ob)-55(ject)-333(of)-334(t)28(yp)-28(e)]TJ 0 0 1 rg 0 0 1 RG /F30 9.9626 Tf 223.496 0 Td [(psb)]TJ ET q -1 0 0 1 364.616 582.791 cm +1 0 0 1 415.426 582.791 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 367.754 582.592 Td [(T)]TJ +/F30 9.9626 Tf 418.564 582.592 Td [(T)]TJ ET q -1 0 0 1 373.612 582.791 cm +1 0 0 1 424.422 582.791 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 376.751 582.592 Td [(vect)]TJ +/F30 9.9626 Tf 427.56 582.592 Td [(vect)]TJ ET q -1 0 0 1 398.3 582.791 cm +1 0 0 1 449.109 582.791 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 401.438 582.592 Td [(type)]TJ +/F30 9.9626 Tf 452.247 582.592 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 -322.464 -19.925 Td [(iter)]TJ 0 g 0 G -/F8 9.9626 Tf 22.589 0 Td [(The)-333(n)27(um)28(b)-28(er)-333(of)-333(iterations)-333(p)-28(erformed.)]TJ 2.318 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(global)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(optional)]TJ/F8 9.9626 Tf -29.611 -11.956 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(out)]TJ/F8 9.9626 Tf 16.549 0 Td [(.)]TJ -50.035 -11.955 Td [(Returned)-333(as:)-445(an)-333(in)28(teger)-334(v)56(ariable.)]TJ -0 g 0 G -/F27 9.9626 Tf -24.907 -19.925 Td [(err)]TJ +/F8 9.9626 Tf 22.589 0 Td [(The)-333(n)27(u)1(m)27(b)-27(e)-1(r)-333(of)-333(iterations)-333(p)-28(erformed.)]TJ 2.317 -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.956 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(out)]TJ/F8 9.9626 Tf 16.549 0 Td [(.)]TJ -50.035 -11.955 Td [(Returned)-333(as:)-445(an)-333(in)28(teger)-334(v)56(ariable.)]TJ 0 g 0 G -/F8 9.9626 Tf 19.67 0 Td [(The)-333(con)27(v)28(ergence)-333(estimate)-334(on)-333(exit.)]TJ 5.237 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(global)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(optional)]TJ/F8 9.9626 Tf -29.611 -11.956 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(out)]TJ/F8 9.9626 Tf 16.549 0 Td [(.)]TJ -50.035 -11.955 Td [(Returned)-333(as:)-445(a)-333(real)-333(n)27(um)28(b)-28(er.)]TJ -0 g 0 G -/F27 9.9626 Tf -24.907 -19.925 Td [(cond)]TJ -0 g 0 G -/F8 9.9626 Tf 28.532 0 Td [(An)-280(estimate)-280(of)-279(the)-280(condition)-280(n)28(um)28(b)-28(er)-280(of)-279(matrix)]TJ/F11 9.9626 Tf 204.226 0 Td [(A)]TJ/F8 9.9626 Tf 7.472 0 Td [(;)-298(only)-279(a)27(v)56(ailable)-280(with)-279(the)]TJ/F11 9.9626 Tf -215.323 -11.955 Td [(C)-72(G)]TJ/F8 9.9626 Tf 18.987 0 Td [(metho)-28(d)-333(on)-333(real)-334(data.)]TJ -18.987 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(global)]TJ/F8 9.9626 Tf -32.379 -11.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 [(out)]TJ/F8 9.9626 Tf 16.549 0 Td [(.)]TJ -50.035 -11.955 Td [(Returned)-287(as:)-421(a)-287(real)-287(n)28(um)28(b)-28(er.)-429(A)-287(correct)-287(result)-286(will)-287(b)-28(e)-287(greater)-287(than)-287(or)-286(equal)]TJ 0 -11.955 Td [(to)-267(on)1(e)-1(;)-288(if)-267(sp)-28(eci\014ed)-266(for)-267(non)1(-)-1(r)1(e)-1(al)-266(data,)-280(or)-266(an)-267(error)-266(o)-28(ccurred,)-280(zero)-267(is)-266(returned.)]TJ -0 g 0 G -/F27 9.9626 Tf -24.907 -19.925 Td [(info)]TJ +/F27 9.9626 Tf -24.906 -19.925 Td [(err)]TJ 0 g 0 G -/F8 9.9626 Tf 23.758 0 Td [(Error)-333(co)-28(de.)]TJ 1.149 -11.956 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(out)]TJ/F8 9.9626 Tf 16.549 0 Td [(.)]TJ -50.035 -11.955 Td [(An)-333(in)28(tege)-1(r)-333(v)56(alue;)-334(0)-333(means)-333(no)-334(error)-333(has)-333(b)-28(een)-333(detecte)-1(d)1(.)]TJ +/F8 9.9626 Tf 19.669 0 Td [(The)-333(con)27(v)28(ergence)-333(estimate)-334(on)-333(exit.)]TJ 5.237 -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.956 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(out)]TJ/F8 9.9626 Tf 16.549 0 Td [(.)]TJ -50.035 -11.955 Td [(Returned)-333(as:)-445(a)-333(real)-333(n)27(um)28(b)-28(er.)]TJ 0 g 0 G - 139.477 -197.26 Td [(137)]TJ +/F27 9.9626 Tf -24.906 -19.925 Td [(cond)]TJ 0 g 0 G -ET - -endstream -endobj -1740 0 obj -<< -/Length 80 ->> -stream +/F8 9.9626 Tf 28.532 0 Td [(An)-280(estimate)-280(of)-279(the)-280(condition)-280(n)28(um)28(b)-28(er)-280(of)-279(matrix)]TJ/F11 9.9626 Tf 204.226 0 Td [(A)]TJ/F8 9.9626 Tf 7.472 0 Td [(;)-298(only)-279(a)28(v)55(ailable)-280(with)-279(the)]TJ/F11 9.9626 Tf -215.324 -11.955 Td [(C)-72(G)]TJ/F8 9.9626 Tf 18.988 0 Td [(metho)-28(d)-333(on)-333(real)-334(data.)]TJ -18.988 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(global)]TJ/F8 9.9626 Tf -32.379 -11.956 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.612 0 Td [(optional)]TJ/F8 9.9626 Tf -29.612 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(out)]TJ/F8 9.9626 Tf 16.549 0 Td [(.)]TJ -50.035 -11.955 Td [(Returned)-287(as:)-421(a)-287(real)-287(n)28(um)28(b)-28(er.)-429(A)-287(correct)-287(result)-286(will)-287(b)-28(e)-287(greater)-287(than)-287(or)-286(equal)]TJ 0 -11.955 Td [(to)-267(one;)-288(if)-267(sp)-28(eci\014ed)-266(for)-267(non-real)-266(data,)-280(or)-266(an)-267(error)-266(o)-28(ccurred,)-280(zero)-267(is)-266(returned.)]TJ 0 g 0 G +/F27 9.9626 Tf -24.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.956 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.612 0 Td [(required)]TJ/F8 9.9626 Tf -29.612 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(out)]TJ/F8 9.9626 Tf 16.549 0 Td [(.)]TJ -50.035 -11.955 Td [(An)-333(in)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 -BT -/F8 9.9626 Tf 315.088 90.438 Td [(138)]TJ + 139.477 -197.26 Td [(138)]TJ 0 g 0 G ET endstream endobj -1744 0 obj +1751 0 obj << /Length 7014 >> @@ -21801,80 +21809,101 @@ ET endstream endobj -1652 0 obj +1657 0 obj << /Type /ObjStm /N 100 -/First 965 -/Length 10416 +/First 969 +/Length 10868 >> stream -493 0 1650 58 1651 117 1646 176 1654 282 1656 400 497 458 1657 515 1658 573 1653 631 -1661 737 1659 876 1663 1019 501 1078 1664 1136 1665 1195 1660 1254 1667 1360 1669 1478 505 1536 -1670 1593 1671 1651 1666 1709 1674 1815 1676 1933 509 1992 1673 2050 1680 2156 1677 2304 1678 2451 -1682 2601 513 2659 1683 2716 1679 2774 1689 2931 1684 3097 1685 3241 1686 3386 1687 3533 1691 3680 -517 3739 1688 3797 1697 3903 1692 4069 1693 4215 1694 4358 1695 4505 1699 4649 521 4707 1696 4764 -1702 4870 1700 5009 1704 5156 525 5215 1701 5273 1706 5379 1708 5497 529 5555 1705 5612 1711 5718 -1713 5836 533 5895 1710 5953 1718 6046 1714 6194 1715 6343 1720 6488 537 6546 1721 6603 1722 6661 -1723 6719 1724 6777 1717 6835 1730 7032 1716 7198 1726 7344 1727 7487 1728 7631 1732 7777 1729 7836 -1735 7955 1733 8094 1737 8238 1734 8296 1739 8402 1741 8520 1738 8579 1743 8646 1745 8764 1746 8822 -724 8880 1747 8937 775 8994 774 9051 730 9108 731 9165 747 9222 727 9279 728 9336 1748 9393 -% 493 0 obj +1652 0 1650 139 1654 283 493 342 1655 400 1656 459 1651 518 1659 624 1661 742 497 800 +1662 857 1663 915 1658 973 1666 1079 1664 1218 1668 1361 501 1420 1669 1478 1670 1537 1665 1596 +1672 1702 1674 1820 505 1878 1675 1935 1676 1993 1671 2051 1679 2157 1681 2275 509 2334 1678 2392 +1685 2498 1682 2646 1683 2793 1687 2943 513 3001 1688 3058 1684 3116 1694 3273 1689 3439 1690 3583 +1691 3728 1692 3875 1696 4022 517 4081 1693 4139 1702 4245 1697 4411 1698 4557 1699 4700 1700 4847 +1704 4991 521 5049 1701 5106 1707 5212 1705 5351 1709 5497 525 5556 1706 5614 1711 5746 1713 5864 +529 5922 1710 5979 1718 6085 1715 6233 1716 6379 1720 6526 533 6585 1717 6643 1722 6749 1724 6867 +537 6925 1721 6982 1729 7075 1725 7223 1726 7372 1731 7516 541 7575 1732 7633 1733 7692 1734 7751 +1735 7810 1728 7868 1741 8065 1727 8231 1737 8378 1738 8521 1739 8665 1743 8812 1740 8870 1746 8989 +1744 9128 1748 9272 1745 9331 1750 9437 1752 9555 1753 9613 729 9671 1754 9728 780 9785 779 9842 +% 1652 0 obj << -/D [1647 0 R /XYZ 150.705 720.077 null] +/Type /Page +/Contents 1653 0 R +/Resources 1651 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1635 0 R +/Annots [ 1650 0 R ] >> % 1650 0 obj << -/D [1647 0 R /XYZ 150.705 679.769 null] +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [345.53 449.411 423.049 460.536] +/A << /S /GoTo /D (spdata) >> +>> +% 1654 0 obj +<< +/D [1652 0 R /XYZ 149.705 753.953 null] >> -% 1651 0 obj +% 493 0 obj +<< +/D [1652 0 R /XYZ 150.705 720.077 null] +>> +% 1655 0 obj +<< +/D [1652 0 R /XYZ 150.705 679.769 null] +>> +% 1656 0 obj << -/D [1647 0 R /XYZ 150.705 679.769 null] +/D [1652 0 R /XYZ 150.705 679.769 null] >> -% 1646 0 obj +% 1651 0 obj << -/Font << /F16 546 0 R /F27 548 0 R /F8 549 0 R /F30 754 0 R >> +/Font << /F16 550 0 R /F27 552 0 R /F8 553 0 R /F30 759 0 R >> /ProcSet [ /PDF /Text ] >> -% 1654 0 obj +% 1659 0 obj << /Type /Page -/Contents 1655 0 R -/Resources 1653 0 R +/Contents 1660 0 R +/Resources 1658 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1630 0 R +/Parent 1635 0 R >> -% 1656 0 obj +% 1661 0 obj << -/D [1654 0 R /XYZ 98.895 753.953 null] +/D [1659 0 R /XYZ 98.895 753.953 null] >> % 497 0 obj << -/D [1654 0 R /XYZ 99.895 720.077 null] +/D [1659 0 R /XYZ 99.895 720.077 null] >> -% 1657 0 obj +% 1662 0 obj << -/D [1654 0 R /XYZ 99.895 679.769 null] +/D [1659 0 R /XYZ 99.895 679.769 null] >> -% 1658 0 obj +% 1663 0 obj << -/D [1654 0 R /XYZ 99.895 679.769 null] +/D [1659 0 R /XYZ 99.895 679.769 null] >> -% 1653 0 obj +% 1658 0 obj << -/Font << /F16 546 0 R /F27 548 0 R /F8 549 0 R /F30 754 0 R >> +/Font << /F16 550 0 R /F27 552 0 R /F8 553 0 R /F30 759 0 R >> /ProcSet [ /PDF /Text ] >> -% 1661 0 obj +% 1666 0 obj << /Type /Page -/Contents 1662 0 R -/Resources 1660 0 R +/Contents 1667 0 R +/Resources 1665 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1630 0 R -/Annots [ 1659 0 R ] +/Parent 1635 0 R +/Annots [ 1664 0 R ] >> -% 1659 0 obj +% 1664 0 obj << /Type /Annot /Subtype /Link @@ -21882,87 +21911,87 @@ stream /Rect [345.53 582.91 423.049 594.035] /A << /S /GoTo /D (spdata) >> >> -% 1663 0 obj +% 1668 0 obj << -/D [1661 0 R /XYZ 149.705 753.953 null] +/D [1666 0 R /XYZ 149.705 753.953 null] >> % 501 0 obj << -/D [1661 0 R /XYZ 150.705 720.077 null] +/D [1666 0 R /XYZ 150.705 720.077 null] >> -% 1664 0 obj +% 1669 0 obj << -/D [1661 0 R /XYZ 150.705 679.769 null] +/D [1666 0 R /XYZ 150.705 679.769 null] >> -% 1665 0 obj +% 1670 0 obj << -/D [1661 0 R /XYZ 150.705 679.769 null] +/D [1666 0 R /XYZ 150.705 679.769 null] >> -% 1660 0 obj +% 1665 0 obj << -/Font << /F16 546 0 R /F27 548 0 R /F8 549 0 R /F30 754 0 R >> +/Font << /F16 550 0 R /F27 552 0 R /F8 553 0 R /F30 759 0 R >> /ProcSet [ /PDF /Text ] >> -% 1667 0 obj +% 1672 0 obj << /Type /Page -/Contents 1668 0 R -/Resources 1666 0 R +/Contents 1673 0 R +/Resources 1671 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1672 0 R +/Parent 1677 0 R >> -% 1669 0 obj +% 1674 0 obj << -/D [1667 0 R /XYZ 98.895 753.953 null] +/D [1672 0 R /XYZ 98.895 753.953 null] >> % 505 0 obj << -/D [1667 0 R /XYZ 99.895 720.077 null] +/D [1672 0 R /XYZ 99.895 720.077 null] >> -% 1670 0 obj +% 1675 0 obj << -/D [1667 0 R /XYZ 99.895 679.769 null] +/D [1672 0 R /XYZ 99.895 679.769 null] >> -% 1671 0 obj +% 1676 0 obj << -/D [1667 0 R /XYZ 99.895 679.769 null] +/D [1672 0 R /XYZ 99.895 679.769 null] >> -% 1666 0 obj +% 1671 0 obj << -/Font << /F16 546 0 R /F27 548 0 R /F8 549 0 R /F30 754 0 R >> +/Font << /F16 550 0 R /F27 552 0 R /F8 553 0 R /F30 759 0 R >> /ProcSet [ /PDF /Text ] >> -% 1674 0 obj +% 1679 0 obj << /Type /Page -/Contents 1675 0 R -/Resources 1673 0 R +/Contents 1680 0 R +/Resources 1678 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1672 0 R +/Parent 1677 0 R >> -% 1676 0 obj +% 1681 0 obj << -/D [1674 0 R /XYZ 149.705 753.953 null] +/D [1679 0 R /XYZ 149.705 753.953 null] >> % 509 0 obj << -/D [1674 0 R /XYZ 150.705 716.092 null] +/D [1679 0 R /XYZ 150.705 716.092 null] >> -% 1673 0 obj +% 1678 0 obj << -/Font << /F16 546 0 R /F8 549 0 R /F14 757 0 R /F30 754 0 R >> +/Font << /F16 550 0 R /F8 553 0 R /F14 762 0 R /F30 759 0 R >> /ProcSet [ /PDF /Text ] >> -% 1680 0 obj +% 1685 0 obj << /Type /Page -/Contents 1681 0 R -/Resources 1679 0 R +/Contents 1686 0 R +/Resources 1684 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1672 0 R -/Annots [ 1677 0 R 1678 0 R ] +/Parent 1677 0 R +/Annots [ 1682 0 R 1683 0 R ] >> -% 1677 0 obj +% 1682 0 obj << /Type /Annot /Subtype /Link @@ -21970,7 +21999,7 @@ stream /Rect [321.343 511.179 388.401 522.304] /A << /S /GoTo /D (precdata) >> >> -% 1678 0 obj +% 1683 0 obj << /Type /Annot /Subtype /Link @@ -21978,33 +22007,33 @@ stream /Rect [168.831 421.792 175.293 433.832] /A << /S /GoTo /D (Hfootnote.3) >> >> -% 1682 0 obj +% 1687 0 obj << -/D [1680 0 R /XYZ 98.895 753.953 null] +/D [1685 0 R /XYZ 98.895 753.953 null] >> % 513 0 obj << -/D [1680 0 R /XYZ 99.895 720.077 null] +/D [1685 0 R /XYZ 99.895 720.077 null] >> -% 1683 0 obj +% 1688 0 obj << -/D [1680 0 R /XYZ 115.138 129.79 null] +/D [1685 0 R /XYZ 115.138 129.79 null] >> -% 1679 0 obj +% 1684 0 obj << -/Font << /F16 546 0 R /F30 754 0 R /F27 548 0 R /F8 549 0 R /F11 740 0 R /F7 755 0 R /F32 758 0 R /F31 760 0 R >> +/Font << /F16 550 0 R /F30 759 0 R /F27 552 0 R /F8 553 0 R /F11 745 0 R /F7 760 0 R /F32 763 0 R /F31 765 0 R >> /ProcSet [ /PDF /Text ] >> -% 1689 0 obj +% 1694 0 obj << /Type /Page -/Contents 1690 0 R -/Resources 1688 0 R +/Contents 1695 0 R +/Resources 1693 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1672 0 R -/Annots [ 1684 0 R 1685 0 R 1686 0 R 1687 0 R ] +/Parent 1677 0 R +/Annots [ 1689 0 R 1690 0 R 1691 0 R 1692 0 R ] >> -% 1684 0 obj +% 1689 0 obj << /Type /Annot /Subtype /Link @@ -22012,7 +22041,7 @@ stream /Rect [368.666 586.895 446.184 598.02] /A << /S /GoTo /D (spdata) >> >> -% 1685 0 obj +% 1690 0 obj << /Type /Annot /Subtype /Link @@ -22020,7 +22049,7 @@ stream /Rect [447.73 519.15 514.788 530.274] /A << /S /GoTo /D (precdata) >> >> -% 1686 0 obj +% 1691 0 obj << /Type /Annot /Subtype /Link @@ -22028,7 +22057,7 @@ stream /Rect [422.298 451.404 489.356 462.529] /A << /S /GoTo /D (descdata) >> >> -% 1687 0 obj +% 1692 0 obj << /Type /Annot /Subtype /Link @@ -22036,29 +22065,29 @@ stream /Rect [369.385 226.248 436.443 237.373] /A << /S /GoTo /D (precdata) >> >> -% 1691 0 obj +% 1696 0 obj << -/D [1689 0 R /XYZ 149.705 753.953 null] +/D [1694 0 R /XYZ 149.705 753.953 null] >> % 517 0 obj << -/D [1689 0 R /XYZ 150.705 720.077 null] +/D [1694 0 R /XYZ 150.705 720.077 null] >> -% 1688 0 obj +% 1693 0 obj << -/Font << /F16 546 0 R /F30 754 0 R /F27 548 0 R /F8 549 0 R >> +/Font << /F16 550 0 R /F30 759 0 R /F27 552 0 R /F8 553 0 R >> /ProcSet [ /PDF /Text ] >> -% 1697 0 obj +% 1702 0 obj << /Type /Page -/Contents 1698 0 R -/Resources 1696 0 R +/Contents 1703 0 R +/Resources 1701 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1672 0 R -/Annots [ 1692 0 R 1693 0 R 1694 0 R 1695 0 R ] +/Parent 1677 0 R +/Annots [ 1697 0 R 1698 0 R 1699 0 R 1700 0 R ] >> -% 1692 0 obj +% 1697 0 obj << /Type /Annot /Subtype /Link @@ -22066,7 +22095,7 @@ stream /Rect [321.343 574.94 388.401 586.065] /A << /S /GoTo /D (precdata) >> >> -% 1693 0 obj +% 1698 0 obj << /Type /Annot /Subtype /Link @@ -22074,7 +22103,7 @@ stream /Rect [347.301 519.15 423.355 530.274] /A << /S /GoTo /D (vdata) >> >> -% 1694 0 obj +% 1699 0 obj << /Type /Annot /Subtype /Link @@ -22082,7 +22111,7 @@ stream /Rect [324.885 463.359 391.943 474.484] /A << /S /GoTo /D (descdata) >> >> -% 1695 0 obj +% 1700 0 obj << /Type /Annot /Subtype /Link @@ -22090,298 +22119,295 @@ stream /Rect [347.301 274.069 423.355 285.194] /A << /S /GoTo /D (vdata) >> >> -% 1699 0 obj +% 1704 0 obj << -/D [1697 0 R /XYZ 98.895 753.953 null] +/D [1702 0 R /XYZ 98.895 753.953 null] >> % 521 0 obj << -/D [1697 0 R /XYZ 99.895 720.077 null] +/D [1702 0 R /XYZ 99.895 720.077 null] >> -% 1696 0 obj +% 1701 0 obj << -/Font << /F16 546 0 R /F30 754 0 R /F27 548 0 R /F8 549 0 R >> +/Font << /F16 550 0 R /F30 759 0 R /F27 552 0 R /F8 553 0 R >> /ProcSet [ /PDF /Text ] >> -% 1702 0 obj +% 1707 0 obj << /Type /Page -/Contents 1703 0 R -/Resources 1701 0 R +/Contents 1708 0 R +/Resources 1706 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1672 0 R -/Annots [ 1700 0 R ] +/Parent 1677 0 R +/Annots [ 1705 0 R ] >> -% 1700 0 obj +% 1705 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [372.153 560.993 439.211 572.118] +/Rect [372.153 574.94 439.211 586.065] /A << /S /GoTo /D (precdata) >> >> -% 1704 0 obj +% 1709 0 obj << -/D [1702 0 R /XYZ 149.705 753.953 null] +/D [1707 0 R /XYZ 149.705 753.953 null] >> % 525 0 obj << -/D [1702 0 R /XYZ 150.705 720.077 null] +/D [1707 0 R /XYZ 150.705 720.077 null] >> -% 1701 0 obj +% 1706 0 obj << -/Font << /F16 546 0 R /F30 754 0 R /F27 548 0 R /F8 549 0 R >> +/Font << /F16 550 0 R /F30 759 0 R /F27 552 0 R /F8 553 0 R /F11 745 0 R /F14 762 0 R >> /ProcSet [ /PDF /Text ] >> -% 1706 0 obj +% 1711 0 obj +<< +/Type /Page +/Contents 1712 0 R +/Resources 1710 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1714 0 R +>> +% 1713 0 obj +<< +/D [1711 0 R /XYZ 98.895 753.953 null] +>> +% 529 0 obj +<< +/D [1711 0 R /XYZ 99.895 720.077 null] +>> +% 1710 0 obj +<< +/Font << /F16 550 0 R /F30 759 0 R /F27 552 0 R /F8 553 0 R >> +/ProcSet [ /PDF /Text ] +>> +% 1718 0 obj << /Type /Page -/Contents 1707 0 R -/Resources 1705 0 R +/Contents 1719 0 R +/Resources 1717 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1709 0 R +/Parent 1714 0 R +/Annots [ 1715 0 R 1716 0 R ] +>> +% 1715 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [372.153 574.94 439.211 586.065] +/A << /S /GoTo /D (precdata) >> +>> +% 1716 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [372.153 499.224 439.211 510.349] +/A << /S /GoTo /D (precdata) >> >> -% 1708 0 obj +% 1720 0 obj << -/D [1706 0 R /XYZ 98.895 753.953 null] +/D [1718 0 R /XYZ 149.705 753.953 null] >> -% 529 0 obj +% 533 0 obj << -/D [1706 0 R /XYZ 99.895 720.077 null] +/D [1718 0 R /XYZ 150.705 720.077 null] >> -% 1705 0 obj +% 1717 0 obj << -/Font << /F16 546 0 R /F30 754 0 R /F27 548 0 R /F8 549 0 R >> +/Font << /F16 550 0 R /F30 759 0 R /F27 552 0 R /F8 553 0 R >> /ProcSet [ /PDF /Text ] >> -% 1711 0 obj +% 1722 0 obj << /Type /Page -/Contents 1712 0 R -/Resources 1710 0 R +/Contents 1723 0 R +/Resources 1721 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1709 0 R +/Parent 1714 0 R >> -% 1713 0 obj +% 1724 0 obj << -/D [1711 0 R /XYZ 149.705 753.953 null] +/D [1722 0 R /XYZ 98.895 753.953 null] >> -% 533 0 obj +% 537 0 obj << -/D [1711 0 R /XYZ 150.705 716.092 null] +/D [1722 0 R /XYZ 99.895 716.092 null] >> -% 1710 0 obj +% 1721 0 obj << -/Font << /F16 546 0 R /F8 549 0 R /F30 754 0 R >> +/Font << /F16 550 0 R /F8 553 0 R /F30 759 0 R >> /ProcSet [ /PDF /Text ] >> -% 1718 0 obj +% 1729 0 obj << /Type /Page -/Contents 1719 0 R -/Resources 1717 0 R +/Contents 1730 0 R +/Resources 1728 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1709 0 R -/Annots [ 1714 0 R 1715 0 R ] +/Parent 1714 0 R +/Annots [ 1725 0 R 1726 0 R ] >> -% 1714 0 obj +% 1725 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [333.769 276.229 340.23 288.268] +/Rect [384.578 276.229 391.04 288.268] /A << /S /GoTo /D (Hfootnote.4) >> >> -% 1715 0 obj +% 1726 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [294.721 134.549 372.239 145.674] +/Rect [345.53 134.549 423.049 145.674] /A << /S /GoTo /D (spdata) >> >> -% 1720 0 obj +% 1731 0 obj << -/D [1718 0 R /XYZ 98.895 753.953 null] +/D [1729 0 R /XYZ 149.705 753.953 null] >> -% 537 0 obj +% 541 0 obj << -/D [1718 0 R /XYZ 99.895 720.077 null] +/D [1729 0 R /XYZ 150.705 720.077 null] >> -% 1721 0 obj +% 1732 0 obj << -/D [1718 0 R /XYZ 99.895 446.608 null] +/D [1729 0 R /XYZ 150.705 446.608 null] >> -% 1722 0 obj +% 1733 0 obj << -/D [1718 0 R /XYZ 99.895 446.608 null] +/D [1729 0 R /XYZ 150.705 446.608 null] >> -% 1723 0 obj +% 1734 0 obj << -/D [1718 0 R /XYZ 99.895 434.653 null] +/D [1729 0 R /XYZ 150.705 434.653 null] >> -% 1724 0 obj +% 1735 0 obj << -/D [1718 0 R /XYZ 115.138 129.79 null] +/D [1729 0 R /XYZ 165.948 129.79 null] >> -% 1717 0 obj +% 1728 0 obj << -/Font << /F16 546 0 R /F8 549 0 R /F27 548 0 R /F11 740 0 R /F14 757 0 R /F10 756 0 R /F7 755 0 R /F30 754 0 R /F32 758 0 R /F31 760 0 R /F33 1725 0 R >> +/Font << /F16 550 0 R /F8 553 0 R /F27 552 0 R /F11 745 0 R /F14 762 0 R /F10 761 0 R /F7 760 0 R /F30 759 0 R /F32 763 0 R /F31 765 0 R /F33 1736 0 R >> /ProcSet [ /PDF /Text ] >> -% 1730 0 obj +% 1741 0 obj << /Type /Page -/Contents 1731 0 R -/Resources 1729 0 R +/Contents 1742 0 R +/Resources 1740 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1709 0 R -/Annots [ 1716 0 R 1726 0 R 1727 0 R 1728 0 R ] +/Parent 1714 0 R +/Annots [ 1727 0 R 1737 0 R 1738 0 R 1739 0 R ] >> -% 1716 0 obj +% 1727 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [345.53 655.098 412.588 666.223] +/Rect [294.721 655.098 361.779 666.223] /A << /S /GoTo /D (precdata) >> >> -% 1726 0 obj +% 1737 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [398.111 587.85 474.165 598.975] +/Rect [347.301 587.85 423.355 598.975] /A << /S /GoTo /D (vdata) >> >> -% 1727 0 obj +% 1738 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [398.111 520.602 474.165 531.727] +/Rect [347.301 520.602 423.355 531.727] /A << /S /GoTo /D (vdata) >> >> -% 1728 0 obj +% 1739 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [345.53 386.107 412.588 397.232] +/Rect [294.721 386.107 361.779 397.232] /A << /S /GoTo /D (descdata) >> >> -% 1732 0 obj +% 1743 0 obj << -/D [1730 0 R /XYZ 149.705 753.953 null] +/D [1741 0 R /XYZ 98.895 753.953 null] >> -% 1729 0 obj +% 1740 0 obj << -/Font << /F27 548 0 R /F8 549 0 R /F30 754 0 R /F11 740 0 R /F14 757 0 R >> +/Font << /F27 552 0 R /F8 553 0 R /F30 759 0 R /F11 745 0 R /F14 762 0 R >> /ProcSet [ /PDF /Text ] >> -% 1735 0 obj +% 1746 0 obj << /Type /Page -/Contents 1736 0 R -/Resources 1734 0 R +/Contents 1747 0 R +/Resources 1745 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1709 0 R -/Annots [ 1733 0 R ] +/Parent 1714 0 R +/Annots [ 1744 0 R ] >> -% 1733 0 obj +% 1744 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [347.301 579.382 423.355 590.507] +/Rect [398.111 579.382 474.165 590.507] /A << /S /GoTo /D (vdata) >> >> -% 1737 0 obj -<< -/D [1735 0 R /XYZ 98.895 753.953 null] ->> -% 1734 0 obj -<< -/Font << /F8 549 0 R /F27 548 0 R /F30 754 0 R /F11 740 0 R >> -/ProcSet [ /PDF /Text ] ->> -% 1739 0 obj -<< -/Type /Page -/Contents 1740 0 R -/Resources 1738 0 R -/MediaBox [0 0 595.276 841.89] -/Parent 1709 0 R ->> -% 1741 0 obj +% 1748 0 obj << -/D [1739 0 R /XYZ 149.705 753.953 null] +/D [1746 0 R /XYZ 149.705 753.953 null] >> -% 1738 0 obj +% 1745 0 obj << -/Font << /F8 549 0 R >> +/Font << /F8 553 0 R /F27 552 0 R /F30 759 0 R /F11 745 0 R >> /ProcSet [ /PDF /Text ] >> -% 1743 0 obj +% 1750 0 obj << /Type /Page -/Contents 1744 0 R -/Resources 1742 0 R +/Contents 1751 0 R +/Resources 1749 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1750 0 R ->> -% 1745 0 obj -<< -/D [1743 0 R /XYZ 98.895 753.953 null] ->> -% 1746 0 obj -<< -/D [1743 0 R /XYZ 99.895 724.062 null] ->> -% 724 0 obj -<< -/D [1743 0 R /XYZ 99.895 699.619 null] ->> -% 1747 0 obj -<< -/D [1743 0 R /XYZ 99.895 643.15 null] ->> -% 775 0 obj -<< -/D [1743 0 R /XYZ 99.895 588.618 null] +/Parent 1757 0 R >> -% 774 0 obj -<< -/D [1743 0 R /XYZ 99.895 534.087 null] ->> -% 730 0 obj +% 1752 0 obj << -/D [1743 0 R /XYZ 99.895 479.555 null] +/D [1750 0 R /XYZ 98.895 753.953 null] >> -% 731 0 obj +% 1753 0 obj << -/D [1743 0 R /XYZ 99.895 436.978 null] +/D [1750 0 R /XYZ 99.895 724.062 null] >> -% 747 0 obj +% 729 0 obj << -/D [1743 0 R /XYZ 99.895 394.402 null] +/D [1750 0 R /XYZ 99.895 699.619 null] >> -% 727 0 obj +% 1754 0 obj << -/D [1743 0 R /XYZ 99.895 351.272 null] +/D [1750 0 R /XYZ 99.895 643.15 null] >> -% 728 0 obj +% 780 0 obj << -/D [1743 0 R /XYZ 99.895 308.696 null] +/D [1750 0 R /XYZ 99.895 588.618 null] >> -% 1748 0 obj +% 779 0 obj << -/D [1743 0 R /XYZ 99.895 266.119 null] +/D [1750 0 R /XYZ 99.895 534.087 null] >> endstream endobj -1754 0 obj +1761 0 obj << /Length 3124 >> @@ -22424,7 +22450,7 @@ ET endstream endobj -1775 0 obj +1782 0 obj << /Length1 2422 /Length2 20069 @@ -22604,7 +22630,7 @@ h ©ë–} ¸Œhj¬ÑÉ£f/›IV+\}3bGU ý5"©+IU(€oVžNo±íì⮂Øš¢b"Ñð±öÞ¢:’7cÂéx€ås¯t£! ‹@ïÇ%e)òûÀÒ\ /œCÿsoµ^“ªê- qhÏKä¡p Ú€ó&êØ /_Ïü endstream endobj -1777 0 obj +1784 0 obj << /Length1 2366 /Length2 17268 @@ -22783,7 +22809,7 @@ u &gEuë )Êà?IÈÆì¿qS䥖b\ÔFb±ª¨2pnzœóbZ­²ÃI]­RÆA!·â¯,ËoÙ5["/â½2¢!°£M9ž8<]°—®öV<†óÊ‚e03Lé5R€®<é×lGNè"ñüäQNõJEHåNWX¸n¤YÜ/¤A,„!¶•¾ð%¶.ˆæéô‰VÞH›³·ìG @—L”Ѥ{eòäYÔ¶Pyº]ð($|i`*=E1MùÞííÍ`{‚}ÞX£,ÊL¬äS§¦Žñ£JB®£lå’£aκ-œÂ«šø­õLRÇF€çïMPìÐóšaVÈh¡ZA¶SÛSVåß®Zµ+*ÂRâÔ/íÓ›‚dáˆ!üÎ[[óRqš-£Çý×¢¢’ ŽŸúZpF«±àY$~'n KöH[ÙÊXæˆ2O¯C›:É{o–Õd0\TS|ÏÉÆ^)؉ªöè+”Ød€Fü—†åë:R¦óèMp9ý§Œ´å—V+h§zðÚX§aOß¿¤ýïåA">íÝÄ[°÷‡Ù‹­‰Ù>~KÿÂéÍšDHiDB.Ê@0äRy¸ÅbŸ¤cYÁïú2RDf4ªª™´2¢ãI‚««EôCQj endstream endobj -1779 0 obj +1786 0 obj << /Length1 1599 /Length2 8420 @@ -22875,7 +22901,7 @@ I þ¿Tíæ,½€˜à÷oÌãÎ’|c·ÛØ.I£%\FÂœ û_àí€I q!¬W&|÷F;„Ëûw•C¢äÀ;zBìi*¢ü7au¨‘-¾Ì¹˜±Ñ-þªþÁòóX[1``X/cã0èú@WÕ€;¢y€_¯Z~×` endstream endobj -1785 0 obj +1792 0 obj << /Length1 1519 /Length2 8224 @@ -23185,7 +23211,7 @@ t Ùf;á¤&ú}t”áu®"@H¡ƒD¤ë¯¡u1­Ãj+?9>oÝç>D¬qN6®Áyµ ¹K‘Ÿn”;…þøÿÍp9cS&Ü…ŒŽaö¥¨wœX§0i°~ο;°6v¿_ɵ|ªŠW$ÓÓ=;Û ÞîÍí ¿û—²Ñ>®‹ƒd‰oý\ŠhÀ6’³z¡†x-à ÜÓ &Ñ=¼ ¬š—‡AÅä!ž¯:–Àç`bùЂ÷™BÇJ…æ:Y_†±íÊ Í¯Æj$>*ÏX»ßqäBù›ùÀCauFöõ[Ì€ÛŠŸ%ýÂZì¼ …ú×ÀÙH2 (F]9ëCf2!®9}º  㣽i üÌŒ{éb՛جDS`s‰Z§<ïÝV솀(”zí4ÈŠkŽ‡yý 7nW˜Ç2hî`Ïç=0ÚlVMlƘÀ%21öè,ªê3Ä«:”Ù«ÁýSåö+E4 ‘Ïr©J?¿ïƒ·ýêzÞQbÇ^Î-— ÿÄ„÷f(˹jÙUqÓ¹f-q, ì)KŽßAžú«¦N endstream endobj -1787 0 obj +1794 0 obj << /Length1 1413 /Length2 6524 @@ -23259,12 +23285,12 @@ E B9V{‚7-cOgm6×=Uÿqí¼Zþ¤ÕUkew·ƒƒ>øùx^[.ZÜGçýPËn!‹¦–'¥FÛ÷þUÏ-]1‘fj 6OŸóR®fäWg$·œˆr›ädVÕ+ø&K7I¹R„Í°d «à©!ðH„Qéêð: øÎYGdsª† ‰Óz_”üå| endstream endobj -1789 0 obj +1796 0 obj << -/Length1 2648 -/Length2 23029 +/Length1 2668 +/Length2 23272 /Length3 0 -/Length 25677 +/Length 25940 >> stream %!PS-AdobeFont-1.0: CMR10 003.002 @@ -23284,7 +23310,7 @@ FontDirectory/CMR10 known{/CMR10 findfont dup/UniqueID known{dup 11 dict begin /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0 ]readonly def -/FontName /KYXPCE+CMR10 def +/FontName /SEWPRR+CMR10 def /FontBBox {-40 -250 1009 750 }readonly def /PaintType 0 def /FontInfo 9 dict dup begin @@ -23358,6 +23384,7 @@ dup 49 /one put dup 112 /p put dup 40 /parenleft put dup 41 /parenright put +dup 37 /percent put dup 46 /period put dup 43 /plus put dup 113 /q put @@ -23421,67 +23448,67 @@ x[` Ä“H@Tƒç~–=\eÌ ÍÊÓˆÎû=©4t7×v¨|p³§ EuqŒñ,*JÜ~|Ÿ¤¿7B6™‚ü¯ÊœÊsßÌPý14†*<à{]ÐEÜÎSnè‘J8ª0îXØCMÿ!áí3Éï«‘YÉZlþÙâŸTÌô-‰.ˆN:üAŸ},®·’$‚PãpƒÆJ"9ä•_ Ñ7Ô+e½šÕc­Çá¢Ã{â§{-·ñÞŒ1zeÕ~„*cš=~ë£jVÇá#ļÓДû6>(È«ÜϹ¨}g°U-ÄÓIÄxÎðÝ\¥¶ðð‚¿?ualQÜ»>Ž¶Â2T;á⟽ eÔF(][‰Îr‹áéd–fðÆdõbƒP¹£Z5’.9~‚±éyûüç1ÍÚáÙtHŒ1"Á#BïVñ4«%ÜcŸOP|Àù,idŽ"bGŸ/« -Ð]ñº”W.SãáÓ‘P:>R+ÈQ®{×!‡ðWcñÔ ¡º*¢MgäνbÏc3Í9$eV6ƒÚÚµ´&xîcÊé‚œ½]NˆiÙ¼:êPŸL¡³¾'~€Lk^+H5)4»TµÃ †, 1yÅöŒ2Ï®e‘‹ñ‘¦å‹äòäiÜ›§y5;2éirš*µµOÿëçòÕ0÷÷u·—h¡axcFÓ¹ú'¬¼>HèÀ·{Šß2m|¥ ûÊàH³É€(~â¿x†õ[¶Šç1Ç\½O¸S„´h~‡¬2ev¨²A‡`7Y†—ÙD ˜¥¤1½3Àx½´Ñ¢kLí)#– N1áíÎ Ð^vßð0µìJѓѸZmN|$É -CÂ, Ë?WV¬Sþ_Â|Õ]ä• ¤·é›££(û i3¸&å—Þõ¯&=ªt‹©ƒå`ÇIéD¥œ]9¬I$}ZLÒt7åpD‡I÷ípõJ¨>êg -9Ÿt_ÅOí¢‹(ãš­„óʤƇBq•`]hHjl¡ ©Sâ‰Èð/@lS£œÀîy{Ü°ów˜‘ý G0Áä› SÑÇ+ë±ïSz–œÈ•”N¸»Xwy‡¹§>̵#^pZÙ.|BPÊþ锹˜§¤›RÐsÚ^Ûæ3¸–¸éZ¢û[¡m·eNÜÌ3 wö‹g!•Ø¾6£ÇŒðDød#cæ#á> -Lܘ(Eƒ‹js¡ƒ …Fð.Òýp»x1xÄÖº$2vzJÉ<§Abwp}è`ù»â? ïae¬¢§™%Ÿ$Y*Xˆš}úÖJDN´õ(9¾¥ªJÉ·ÏPDÝ -g¶ÿmJÙ•ÁÃ? 溃@¯q+=¨5/ò¶Õo%’±ÎØ°à•È…¤°× -߯˜ë8(t ·/ “£1#þiÅѤôì7Ù4®Î”°¨»œ®Ý3ˆV±ýùì’ÇÏNƒðûÆÄ·—›ý3¦%¸å†PÏfïôÑô˜ó¨õ3HoÙNŸ böJ߸¯È¹q|TŸ!@ñÎtaw—^òÍQ‰7ÿÒHÝdÓâ¬aùõ˜5±Ø§‚AÁkîˆN ÂôˆbŽ‚sÁ3sä­]x=°ø1d$%0 -¦þE+]‡V‰JŒµ}£'³áÁE¯¸( `œŠ[ÞJo-n·£ßN«•H²uÝ–K–…yÒuÑn‡6$ñ§ߺ¤RcÎ5”á%þ PèQΦ!©¯µ´:”½ªÜÓ^Ëy¸Bå`¸:;µE‘kRP@}Bª›Jþ=±X‹œÃñ¹«¥LÉŠkUþÏ•ÙÌÚL,ü©,_‹G7HY·rY¦‚œÒ ƒØ E2¹Í|JC- dd^h%!yÌø% V'–ÇŠ­e¶LìãÇ|ÖÿÙ×ù,®@"fbè!"^)õ1ãL–eµoý—ÃÖ=/™—SO> ‰$ý•¦œ¸T-ÝP·Ê ÷Éš;ëk=-ùMÔQJ::舚Zw-ÃLîpƒÉUÏYç®l1ð°:8Ï|– d@¤+ñcdo£ÉíFBÏ¥UËšqãÛO°ÔÞkí;`dì Q‘v}ú¬wøÝ}Ê=~suPE -©ÀØó‚8vì‡"ÈiÝŪàBScöèÏÜ!eø«ÕÂ0“p1<;ã9î×ݬº¹ˆgÙ§~Êck -ÌÖ TõOTÅ®{å§Ó¨s* -ôT©ßZߌû‰·KŽòËJ"½Kó±ŸåB5lÜp7žVÁ™õ€¶ßï˜l½«ÚÒoŒÏ#ÁGHµ”óLöŽé -¥Àwá0ÿ–tùnÜÔt»Û»€ž‚]ì ¦öìT”½p¾…€"ƒÂ@&…ˆIZMWAÏ‚ÿö²yã4]Ó{˜¬r¼R,G9T;h>‡CÇW²[43Ûi!=–)5ô áðþ Ü–]¿•º2ÙM´ IšˆyCñÐd *$$¼Ÿ;{NŽ -ŽY‚,‚+4m™rË09!¢K…Yyº-¶0ÓRûºÐ$ýŽuZuZ áá9a¬C»Ú9ŒÏ¦ÓÒ¨ó+"ž”Ìo<©jػłHè¤ËËǃœD7§ dó΢WþH‚8Y7¼'iXïí~½Ã㬳%ïä뤩¢ò»bÏ ssºŒlîÒ™,´"oë6Ö³u¾G!õANóß\‘ÚôU!:cØÙ³Qˆ»*eyR<íYõl ¨™ÞËœ:*[e綕ޜÈɼEq#2QfnÓ§e¹jÀ£“YïÛR1µ*ŠÙ#è¡XH6$ §æ4kK׌·íPVÿy¡XƒNRfL‡ÍöB•Å0rFÌ âE/Ö«HÉz©,Yd–÷Á`]˜ÜÖ¼÷NK˜nÞá$G•D¢¹Š-]ŸßùIÅGÌ\‚Þ÷À˜}Än áÙ­^Ð)U|G -½Eqcvóåí¾s¬Îœ5CE¬“ckq6*.v¿9J­_æÉhܬ÷%€$<œ%û%0VSÅó¼·]”{0¼g×^ÃókÿmÒ -&tÓçƒ1ôðÅMÐþ’¡Iµ5Jj¯Ù]]8­›0„'O¡ï z|y~x3;d< eCŸ<!*]}ääSŸP\Ù絶$ºÿ½‰†ÃAI£@±'ÎÍkt¶žÐRÙd_\Õ êN( \åÿ(GFZ34ïþßØÏj—›<4ÊýÙüèÕÂ7o6YäZó0…ž`#¨NcLÛú·H”XìèÍñx ./·Ty"2@š§9Zë©´=‡j/¸K1ëXNÔî?W×¼F¸–R—@¡+T±€4XbÜRÍ‹+L<¨@ë.ñmD‹Ö­ ¼Ó'¢ ’öŒÌB£cáÛò!«€^>ˆ.dÒ°<Žuª# }øHFˆ]¶©¿Ý‹’Q€ª=y¯_±:¸Šhfƒ3™ýÊŒ°“€¯”í8ÃÈGÄRö‰m<€p$%MóPŒZÁNâŽbø¹ñ¬VAíôTay'¦‰`:‡ ÂÜ>œø³+0É÷’’ ];²4Ml’¢{ÿmCsÆ\•’½wnÞc/dWã£%jCOŽñ‰UÓ(I‹ƒPkK›C‹?]âµA±ÁÜp!èÔòÀ¸4àXÔзxjÊÕ4*‘¦™¶áÁÃV<âÿ‚è'LË·vr4²Ñ 8a-9ù"v-ªœn¼ÎŽÊNBD^s1ªÂdL»Ð^‡0Ë»¾è_,ãÕž +Nÿd/ÒÀKî¨' ×oç‹5¬ Ûœ- ¬ÅÿPnœR†#Èßëq¬Fíî*þû¤XƒôìµßŠDvðᜣuÃ4ž¹—e9« Ùº¼ 7MpW6ÄÂê胩ø;I‚¬lÌìhR¡øéG¢žU‰šªc³í§œ2¸Ü§T¬Þ&k )jéþyg¥œÉ¸DE;¨A*Õ¥ÆW»¹ð‹§±Õ$v½»eɵüœ‘Ö®3 Ç»|˜þÚÌ}uã`3)ƒ!£/VŸ -=Á¥ö@Ë; -ÒrcxЈÏæ«°n',Jª€ü¥å9UgaÖLâÞ{9éfÞŽ¬Ç^Õ†Œ‚‚>­L&ÝS›C°osüyŠÉRæ0ßØk™den$3§¦œêx¿’Ë ¦3pûM/¼£AÿRf͆lÕ~~êÏb`‰òÀô¢¥9žj¿×;Íÿ‡JuqOÓìúªÐP_ j†'LZŸœŸ}E îú’µ æÓëúݣ㭊¢Iù¤C|aÌVãWÎjŒOmO$ôÔÉÞ2 z–7à®­€kd|ä'LÁ‡îVccÉM iäI32 ˆ -Ý-Šóâ.ö>'f²KÍàmW‹ø4ÁÐ$ÜÒ¶N#F:3=ëk‚~ͺ2º~£\ë±ämRš¸¾wÑKâÔŸ>\I -°¥Ç=«*>½6læ¥hÁÌq¦VL`ü±Ðþ±äó(Âæ \«Œ¥¬Ž‡5€ì¯´l>B>žx†UÃëËJË ‡Ôuu\›¼i%ÝÎó–ÉÞ›På´Oú’t¬|r0Úô4Uú«-¹>ˆ&`¸x¾©–E…zü@ èŠ#»²7ˆhRo·8~zÛŠA‚€íºü㊘]²26HU÷Äã3kv\t"È‚éÏ^‰¥Ô?B½)¢´¿t`³8*J¨.ð¥¬'ý„M"ép>&NW~æèä6Í °ËHõ‚´°1ÒE[¹H½æ°2èl¬6)yÔK…bÄÇ;ùGwÖΚÙ~(2 -–è2÷†$§Ýל1,ÜÃ* _†ŸŠ¤b³bpÓ뢅 ¤Ã=´¹'¨¹õ fçäó:–Lç×™|•\UeÉÕ!ugzBäŒùkÌú÷¡™€iqÍéb=Du¾ª3/ìp4}øeÁ"o'ª—Û/“z%$þ$òPŽØ'8#°T+›-) o¦MS£i6}!¥ï„B»Ð¯Ìw«ËA„0ŠTд9B $ÜZÖ•;øÆÇŽ9òŽËÚ„×÷n[¯ÀÏ!ôißž;›LŠÖOä¿SÆ×yªèIžWþû²Ãi¬>aÓðžÃ`Ô–'V¾¯ià4J>¤À š´”‚éÀ&—[ªÔä]Sà^¥c5@Éìðu$×RÚÕ*qÑý¹ºæUü½8\6·›ßÖËæG€× ¹@¤£¦¾Á 1”^/|3›º0 Ö^ñ"}êŽ>LØ¥ú@>É^ÞNÏÍw‚~5G–¯G^hQÑÖ çzZ@Ì¡±KihHYÒ< ú·M!NÔaÀÄtÏèi¢G†óÈSP„]Ù"üK4ûʽ´¸ÌøòV 4&º¼ÊçÌ#Â#nüÂr·az[^§¢¦döV PKa“©I‰Bóc5¤…Î~»;ýœã€Ò;™-uDÝõ½,WŠãCê ù,=ÀÌ€¯‚øn°—C‹ïÚÑ2þ2›õÕ¡”™ƒ´+74¯x.y1ÏwH}ÀÅËú^Å“òÈÜŒ–ýëA–Ù`z?TôK{PM½õ³É×a¹ß L«”ÐÎ{ÂŒ5lWØz´#ì9Ô:)z£FaƳŽy+ê2¶Þþ`üV¿·N¾ºÑiI ãþ.~ð. AßO KˆÀš­wo¿ÛÀ˜È¶¾Í“EçÖ¨$a«ï)& ˆÞÑSÊ_4%Î ¿ã N‹=¼rGd§Ã~Îäÿ¸2 øLÆÚ6[@pñœOê³ä‘‚ïÔ1Âp3™â íx*£¡Ì´ó¢ª&“²ýÕ«Û]¿”R­þD>”¦ÜÕ2óÖ펻˜F›Ù´0§ÓæVÞF°V9¬ÑÙÇ~üñÓ™‚Àœvõ¯ nC´wNŸ ºR¨2…‘§%ù§ÖÊVÃÚü²Jiög²‘‘I%âÁ`óicd«mµ{¼¡{Hèîæ6[å¥=©l.@;3’¤ÀH2x¶Uf…æ;-+ñU˦#°®œ­qTeO(¼Û‰*—mq™ëg>nÈS ž€¿%,…ÓÓ ø¹ìnÖuU½¾Y¨ …›+á¨ÿþ8¹ƒwÂãcM¡@¼ês -ÿ  –5ظ;,—ßÁªÆ¿Ä…ÆÏ*8®[ð™$O.¥)ï_¡0¸3ž_†­þ¡«.H”9‚eð‰,3ôœ ž›Îɺï?l£/òîópí{Ë‹ÓGÄÁ¯1Åf3Ï > /ujà߶ø€#Ãás‘Ãþ/ƒì¦Jºâ’é¡u¬ÓJ_ᤜk†[uêjÌôŽéÒ°%#FNUgRyÈÊ1YD`£Ä˜kä2ô´:ÄKŸ¨ªT$›Qcl9ÔA”ª$×®%'\B…™4<)bF¶+G$¿lC½‰–ˆQ¢#öuš×rK²æÖ- á ·üj" ##zN'Q„µ6dÆjß« -Ewå¯7v¯ˆs”òö…>rvÔ‡»B-w·YA[‹b»ô,7S €ÑvF °C~&tîqðÎÕ3¡×5 -´¥žPKu:÷Øý[#Î`rш‚Lj’H)Àðy½±†jzDr¯Â}©¬oø,‰TC8å•…å{'t]0@çû>Å?e”LJ+NÒz…A婯û‘®YìÇžŒfñÖ]x°tm¨W5\E©Ý -Ñx%„dÙú:Ô1h5§ŸGOäÉ-¦C¿#ã"öY¶àõѯ¼2ûÌ·,„f&ûÆT<•Fuo9¼1«G´¤cƒ²{oNŸQljSúWÖ0ÁtóÛCI"u©ä›g²)ÇPVÐcwqû,Եʖ–Õ†JŽ¶6´j8":µ¢ÆÌòój>Ý—|®¡/5÷ Ü9Ô&þ’Üܶ:{ç<ì_0¼ës„nkaSúŒ?zoÖ錔^Ød,WØZ¿ÇsA/Jê3jáäšæÚ´¥¿¬³ôøŠ›©9{WÍ|¬2¿ªÒiUµvsšÏ©mê^¬b,¢r,>OŸZ×°¿žÃ@q;c1QÿOêdÞ}˜’j‚|úŸ‰7³YHß¾¹ýq¾5 IŸ€¥´Æ°p6”×òZÐûÿÄBš\ô\Aæ©°Óz»¶Ük¾Ù*È?¨¤f#aÒÔ?ÔÕïË.Qs²Ž¶ÁcwB[ò¹ÿÆ;‰­œŒÅY8ºëÒÌ|ŒHÍ؉Ã6îâè™9ï6êo ‹ŸüÖ­r Áú¥† ?åÅx9$ÀhõàªõVS—YÓ;)±ØØŠ“8QöÍXsðGÏלϑÁŸ\FЛ|‰`†´$BC ˆšj³ Öt½Õ -¶Š¬F1Í9LÕý¤jèó¹ËŽîÉ¥4“›„Ö*µç -”Xü"E ýì[è-6¦¦ œŽMÏ‚mˆõuW|qÙ÷þoIÄC”š!• ž -ðe´ÕlîzmŠÂâÒŠ Ãuÿ.ÍùÉ}±²EÀès÷ŸÙEZ'η¯×²Mü:p™¦ÀæÅ&µ/š=b“<ƒ“ΊšnÛLNðrY%x­ßA×_î¨8F‚Ø%ˆè訂öu; ¦~Ëá-¡~ñ`_§˜`ÁÂÅƲ¾¥E³F¾§üq È©„./òf9Ï€ç»Ô„¢³PxñªÕ -ÉÆ@6àŠJ9¨üéÔ>úÇhßP–2»H«F•?EON–;ÁD}b‡EdOBO½w² )z¡]˜¿M)‰f–¹%`»²p«ã·`Žðv²¶¡mÊÖAÅÜÞÁ;ãŒ~ ©>waƒ-ª“ÚÝ+REÝ+i#Çù±(¹±-SâÇò úÀ¹=¿Â6„0âü`ih“õ^·.æu5s5Yº>èI—ôîNBí¤6¢8YPJƒ§GLH ¦(€ÞÌOQ:7K¦TY,w‡’|Å:¿[ç(ÿJä/„pçc}ßš_Ÿg·æVжhY"´ë’5“>¯jyg.>s;F¦¡WiúŽrÄbãñ:Y´ê ÐŽ£Rs(‚ô™§Á0o sÒó4XŽQKLån9RV/%r˜Ö ’’/ O$—)³—P†QXhA£i ’Ž"^T-|­ñÓL¸#Y¸;e7XÚ„æä2z æÉÆéÛ-`¢´«æ†ÚCkÍF‚I#Ü>i--IÙwBÁõ]4×ÚÔÞ¶*m‰äÙè÷¯ ëìúaýT*CÚ¿§R÷÷Æ™€n«|„ð™°À›tº‹ÍõíD:áMMBÊûzðQí©2m¹£{jÂv|öôCKm­ë›ø[äÖÑ}8‡ C­€#_d9`èð?ÙŸ>¬ï}Ý8cä{GŽZOùÿºý GËœߘÁ+~ËÞj)Jš_ÍôWl/Ÿ¼¦jVq•ù õ,E°¥Y*¡ŠÃªÃ+¶zêÝt»³ûg’ÔåÎqA=gÕÞsK0 -"Û¶DÆ{Ãðs€Cûyï=ПJ ¼KίþÕ лN'Û°aÆ÷Æ¢&º±;ÒW¹åÔ¤íQv›m©žà"|ð(úŠÙ4×p‡ÚWç(дWÛŽVè$ÚÓu™ÃzÎÔsZÿù/@§0rhÃ0*çbaà ²û,ÌÛÿD¬œMF‡¶âý -ˆÁŸ„ñµrTDMÚ\µê/Š4t;tµwù©u]{÷´KGx¨J¨q¸*zI z§¨U'G£{Ù÷ÀO¹V)Gä>:ÔPõû?ëT+®Ÿã=)÷yO¦«Ê&÷%•=êÆý¼ÅydÕ¿XæD‚9=`r´z\3)õWVvF„¸ÃFÆ_¬jGFÀ¦¥ÇˆÓ ¹S5À·b¼DL¶½.¿Í]›Ÿ7Á§úòOLøÃ×…# Wžr[ÇÊkóò¨C2¤…ï|2.éyβɫ•‚L§uX°•ÿ€*,êÐ2ˆèåd{¨ÞþÂ/ôùÞqÁã Ô…·Nùµf5LM9!RŒšqÙˆ¾0€À]´8‚bL)ÂbxVXƹ4æb'´ãÔqŠ’.c%o2в$õGýi¼üÁE -ØßJ'ÇÄøéRàA’(7ÕJØÔ5˜Ötõ*x\më6›XçðÃ(¡‚à©°V£J” N9o¥½6›êôàxbŸ,ÈÍ>ðì&<¸Q©°Ñ‡^Ú€ -y¸ lÐ A b*2|\ ×)OHBø&ˆüS-^¦—ÀWü1±Á °&à¹5Œ\ZÑ#íÄ&¾4}»q(Ðë’‡‡Ú&EÞûDLq~Œóc”©§=ùG81,¶2¢8Ù`ë>m9Ñ¿ÿ‹r•Ú¬à•áà*X gÂZÎ~ à]ON`‹§ÕÇl½ÉH´W~ÚvÔµï+´òèŽ"³,ªND-w hjz4…øËx`“¼„ßîÜ2T˜~Ó¶¥P6ÐJHi¦æ-Ø|ˆ¨/*£S)s"K"£på“M­¥q -AuôúÿÅ_X>Ûú1I|è»öà t/Ø‘ï°|5@‹‹\]|ŠÁé|…³aMp÷þYûÌŽä÷bfö6ôb¹!ôR‹Tܤ£añÉÍQç²¼FÙ:E‰ïŒOTñ.€Á<ÄK„_Xê=¨búP°¾ô\%~—é4'Ao×ï%͹8>ngäªK 0VšÅ±þî§6ö1 -ÁÂl»Óª 5å½ß;\=ÐùroúqΩØB9q ­^Ýï 1ªÊŽGÝ#1}L? Õ«–WôÁ(Óô"~Ü}·@Eso±Xag‰´ßO¢ ÐZӚˡ¼¥=|Òî‡T4ëŸ e0·N¢Þ ¨KJ7Dõ¡HÂÛ²ц?¹ºM¢ P<…Y* 4— _\€F.oÄ ¿›tuŽy Ñåk¿ê3Ê°©L‘Ü%”Ç|À/MûoCu‘«º…:ñCaŠ±éZ¥¸h_Vß6Ô×zål®÷¿Ö¬â, È~¯±@/–úÌÏúó/î]Pºj>*‡ºrÇvs]P†QOó££F€+\„ä.òBßj8+|D©ðãÂvã¥sPèÑ°NÝ«â ” ó×G_•ðŠL¼›v4=´OÕžºoRK 0ˆ® -D›„×AíÇ—m2ð¡¨G«?½V®È.ÑiòB®ö9ÜéÛy74Kš)ÑÚôѼqþ¹& -úä+f>í —15põïß±êÀDiÓ,x~JT“°º»µ2;šjÚØÏ,á$Y»Ñ¹âŸÙ–æx¡æ&5Ūvò"dšEÁŸ{5}ælîåÜ„ ´(š$TÖð^ÿlÄ×—ÖŒŸÎë—º=žH([ìãÖBxØû.B¬ EÐnÿ–Dý‰9Vs[&?Ÿ”0“ØiWUkÐ2?-Ñ üµmM‹[P‰Ö•saˆdÒHÕV,0Ô—© -lHwx¹Qò[}•ö¿ðc°}ñxÚŒ ÑÜä$~>ÿ¿Y`ÔPkŸÛuɇFÔ»NœŸSÁÒ3îV8 ÷ÃùjÚÒä͘©V—íÀa¦ºoo£v­˜JùNg+ZÑA ßX†N7j׆¯8w”«§ì ñ WûD…ŒRjÃëP^ú&ùÖ^â ŒòÅ·Ìÿ…ga÷Ïh_½¶X7Åᆣ²¡‘î5@ $4M=ƒ3-0 ù8hÒEuoYËä­å‡¨Ø|´Ú®" (ªºÏ¼š"G@âV‘ûï¨ó ÖŠcÍ8KŽh=ã ~±ÛìwSž†Â~ÿÀ*txßM˜‡D$Á´RçgàèDô9D¸˜Øñ}H¸bºjͯ)ý!–èž Äé&0s1|•-OH°J›U*Ä?¬o,Òɾ§%‘P2 @åV‚ƒ¥*„tgz7ùg—‹¥Ã2{à4#$ÕéŽÀ+JXø•ˆØ€öN'#C1¥œŽ[n#—äBȵ?ÜÕOx5VD¥6¿( - Õàѽ,¯ƒ©xüPé“ØŠaòþVBfÒP*Wê-ŽJ$ô¼o(n¹‰b(M9MÕÖ{âÆÄîÚ+ÉO¢`Å‹ ¤<7Ž¼ÿ¼Q»Íó),d•LÛlT<_Z¬–ÿ¶£ÞÈWAßâ -EuØ*ÓÑD-l5µÉÌöÃÞ‰Ÿ÷–NJ}åjºÁ¢ ¾w>šþ§ívÉ›úæø)E¬bªã¦¸g¤"U-ÀÉýQ }¢fl¸|žä%)¬¯(œFU1¯$Å‹™ÆhñxÃzéœDPlîï+ïäÚ>žþ3|Ø2\´Þ•Åvö -k×on[ÌwÁwð¡¯@÷ò§™è÷È -F`ÃO8ä2Œvÿ Ô%ksžŸϼ–…V³*Ô¢4‚Bçü]"a mx § ÷xÈœ)ÈÀ Ð…4{Š?BHM<§|«s• #wBÊ'{¨²É]÷Q¨añçµÛ¢?:y ÚVNWVe#ÙâÄl]ÞFÓäˆ.ˆ¤P—K*¿ÃøÄþ†G0_ &#p¨ÃYœ-îImlw€YƒlV‘É`-ªpêYR„CC¼W¾†äå*#Ìb̦;ùÞySôXU'¥hµZÚKN½¹þ7ú°N57™ÝAy­øò2ûMêR£lL7©ýXÌ¥Yâ„{æhrŸ0—nEXAG[e§+ Ï «Úe„ŸÑ錒œÇü~¾ÃªÝ¯Ï6jlÿZùðÏäÁýÅ’(mßÈ«ÿùTýF5GÚê7¶Àf²ônƒÉÝl=çßrRS€5‹¼sÆik¬Õü0ÔÈüuÞÿÀ3—im¦D÷œc«¸bW^,Ï°’¹óý€™Í0”ïh1NÕw…¨õóŒXsÏ—,õ4ç:L¸n+ÆP‘ÌhQN£:£úü÷yâ_ÛbZÀ/<£D=¼ôãÞBâÍ$¼‘Gº«µs»‡™ðT„X¦ÌHñ¾ 4 `º*%ÊHhHÛ±Z·t:uç!?|Ö·ÅvL ËGYƒŸî¡1¯˜Ìgoª‘¼ÞºÄ®g7ëÈ%—+âÕtbÌ9 ËIIÎÃvôÅŸ©¤~(ãŃ*3ƒ(ODg3çš×¾¨'‘˜ÜíðŽ›Ò”ßzRV ·Üf£­/[Ž-2¬`ÿ˜9ïB›*MÀ$Ķ(³úNÚR%1LTŸÖÞ‹NuÏÂÊa Z¢³]SR¦ˆ^<Çë¶âj‚~1Ä*–ÊŽ3Ë+(YíPä¹ÚbÞ€‘53Æi³*(3ž\ÙzN£é“›B× ð}–D#­å°þÂ$rÞ²„¥²¤߯:w‰J矤ÄYSˆ‡O§VB{‚g“¶W‰@¨ï²ƒ­Í¸§N÷í1Ÿ‚Êåb‡¡Ë09R#Ÿ`5ŽÂ;IŠc¨¶?$»NZ³aŒi]|¦C>èø½CÔÞ•³¢è¢±T<ôãÛŽA>Pœè¸5õ>^Ú¾·,¢QÒÓ~/MÓ˜§ ôŒ/aܳ|˜ÁÇ7{ô@Jè7ù©A×¢§Ò*()†Ç«÷0p7*lÒ¥4VêïÆn®N‡=lÊ<ö#-ñt\ªAéW½œõùïE©D©ÿ@B„ðó[ëF -ð³Í¢"v¹Z|kuÁ櫳ÅÊÓ«ñ βhõ퀊”³Æh`Ø@2ý©Õí轕^ä³ä€\•æE‹ËP !sä”n•v°$Ÿ¯B­«}&× rÚonNE¸*BÆñ¶½Áï~˜2RM<“ué!,[*0q÷L#aUœ#¾åHàA,)ÕGØÄqQìÉ|ú–›Qlj<_eKê¬ú)|¯bVo™CÒ¨qw?W¼<µ!F'ô.Ü”ß …Š!Cÿz Ü¯Ö ¦Ìoæ+æø²'–|¾_3ä”èâ •q³ïË79óÃ{kL¯J;5‚#g_9F"þÜ#{ÉØùE€YN€ús>mªkÙò1~Æà›(‚;ãpÌ K]'1q¦óÎbÉr.ùg‘3·&ð€Òš_×òÏ¢ÿÝ£à%°wŽ £þ$ù z 1Ÿ"‚’àrê¥|–Ûy(Æ ×Wƒ‹ÉóÔæ1°oÑG¢;É)b¦6±ë‘`x ïtûŒÃz‚ wÀ›é7}ÎYÇ–¾‡¼ØmA¨F>µdSêòt7è¾y“wö ìÙØéU¢™Xx>Y˜™Áˆ’4nX¶¢ö¯·{£jÉ}¼ÿxã¾±nI>e¡*Šh}ò:eW Œ/ug¶`I-…xZ”‰ÑãûV"býFÔþ®ë½ÅyÅ%].»MµÝEì)%µ»Ñù\]¾í/_ñÄY"dÏð`ÄIiLù«çÚPÓ)Q£3_Ñ€8W-Cê§m;MÙSž)`ðQ` {I:!D bƒ¬[F•=L[õÕw*0•j´bðŸŒN"qü¾ï,²N@›.÷3?ë¢ã˜}‘n—Z].yM¢‘)òÿØýÄ‹¬m%XÀºÞÁRŽäQòÛ.ñ‡úÈóø1ÜÖ‹CW¹¬ ÏÕ²…‰=ÍÁh(hZéu3 ödb=\Šˆ¨/Ý·ÁÇIÖ„`ÌY»Ì¨Êê>_:Y¤¥€ÀÕW¹—äˆs:°~vÕçÇ48ê;éÓfÌ©cœìŽZ§MŽñEA -ƒ)! å÷€¦J‡nµPk\Ì(f3ÄÏ5@Íï—²§OBÄd(|¯·$Ô'SrüW¼6Ž•GgWLt¬ò&Ý¡5L€¸“B3h#©¡¹ð$n¢wk6 a5(.sQ2Èùšè¿ëó &>v*åõA§alù1ˆT©šà Å›R‰fÞr²š<öÐóxß[ KY+lZžF.W:'£#šŸª¡L¹#šÄ|ÕW:ˆNÞ¯99ÓðCˆÄ€"`Ö¾>$ŒªFöz®)¼dËo*ÂÅã]៓$ä|¯¾8cÿjq30„u‘¼¬" -`žÈ/hP÷Êesô$ê\¦ 0¢cû;Y£c”rLA]”Ù7‘cŠ=“¹I³Ë…î‘:¹ÓÀ -"6v“iË' ƒ$éŸ]©#¡ü¾ežrÅl,Œ«ƒÜK¾Òí§t1V'D;+dž/zoõ7ny” ÊsOëò‰S?ºµGY÷Ý÷¤Íe)u™Ð¾·«]"i†ãÅæÙ%ö)¼Çõ£gþ!>ŸíõNnE†}ÌsCé7ØEª¤Dš±c¡3®ÿBJU”¹Dv5gGiö^Ø#ª9‡7Vy†M¥äªxp ˜b„ùµFÁˆh“þ­Hu—mj‡1‹é€u>·aÓ©*ýeœšC.÷¿Œ©%ÃűãEèÄcË¿ñ—?!cÏs[í?’·…ažxm'&«\70<]4ñÔaýrã0¿9Õ϶šß- I5/5¾÷(Å/¦Ñ¹®FÅ(¶°HhIœŠèbŒ’z˜²Ä?3X=v­.O?aª‘(PeF÷ï4Š -‹ubŠQµ2[<­-hŠÍäu#jß5o2ДkÕ—€Èг”kÒÔ/õ‰óP`»Bm›8ï9ãKï5ýZ dÚo’žt-rÊbÝ¢J=%À »LÔ„Æ ±UI_Ûþ–ÛPÕÃî=¿€ a—¦Ó +>Snè‘J8ª0îXØCMÿ!áí3Éï«‘YÉZlþÙâŸTÌô-‰.ˆN:üAŸ},®·’$‚PãpƒÆJ"9ä•_ Ñ7Ô+e½šÕc­Çá¢Ã{â§{-·ñÞŒ1zeÕ~„*cš=~ë£jVÇá#ļÓДû6>(È«ÜϹ¨}g°U-ÄÓIÄxÎðÝ\¥¶ðð‚¿?ualQÜ»>Ž¶Â2T;á⟽ eÔF(][‰Îr‹áéd–fðÆdõbƒP¹£Z5’.9y 0ÃÌqѶ¨»-“ˆ™Ð cxPq,¸•ÈrK€ÿe'tø ^C‘¸ê–Æ“¸Ÿ‰dÓXªvÞßÁ B…³p”Žsj'eKÂí OüË9x™“[Øxë£0(é5\€×ÔÕì‰à$d 6ãYXè±þPl«Œ*³£êBIÛó—OÛ2ÒÓöë+â#öÁ.‡)4‡*ÂÐäçRÈ F–àtJ§8aú)·þÐa‚ý>k³"#¾Ðâß :Œ»qÛG]PeuõZÍ; *åÁÞ&Þpz¯œûÁÁKK~!€Jž¯Z-¤t’-‰UMÞá|Ë`„êÕ/L¿É.½Âá+Eè3|ÂV;ú· `=cbªÈ6’ˆ3c^6¨×®‘Š¥µæ«ÝÓºŽ€T¶.Ï®Ž‘*?f—ÞšZãJ)ë”â'è¡Gß\/°±t)û€êö¨Xó§‚PºþÁ&HÌju—«™u–)³?šçu‡çj8´¹5k‚’h°Kßd é+WI—"~b¤%}¶4›~µÂS¿i÷H³rÒo5¤j%öèöÀüñWõÒ~ +š[j_©!ž†Ø× j¯YGdÍÕÓ‰< ¾ë{}Ý—ûoŽq ?ºˆj6ï`PBiè†1 ˆm>Ô—=C°ü:Mλ©Ä8â`::w–òí£þ’QtuE_kÈP¥Al‚WðêJ~Ž0ZäõéD{Äæ¸Ñœu[¡2LÀ‡kwË°ïiîãP»ÇP…ÑÍ•Úa\0½pŠ1w7¹è¡ãHÒÐI žNÙ{*ÕF½¨œ‘jîÕ¹Õ‡ÒcÇ/Ó%)[VSô²{–?"1ÞË„É}XM\”û39O¤†výVìÂö½ÖXw[\ßà« Mˆ,K™×/birÓ9‰bÊá\U¼_då=m…xÛ¥{· 8€LD§‡ÐeøÌá±*çBÓ4CB¯¨øyÅDc‡[‹ +ÓK –oÌ“Ì8J°€`Ug€Ýd!rÅPÐW¦t¡uY´˜ú£C0ýdÍ ~†–5_€ûñÖQCÃÂ=µ€;x3¬é6O¹ô«C‡ù¬µ)BÃ>Ýßgùð›ÀÁz·LáHz@³‡¨&(} +Üý&ozE|èdUè€T˜ÿd¤ÁQ@j<+¯L톤%L‚Z(À ´Hj®ûM®ui¾qßjˆ6œÔ˜ù`å;ð÷ˆåOžàA;Š¤éŸO~ú÷Š¼Þh‹g+Q´gÆ®AUŒ.óö .öD´Ï¸}Rb¯q¶Ë¡Eá¾â âß"`šÌqð2îLí?/Ì,NÐóëEìì‡å8Í'ød·(뽃A¤t +aøÙehd%Îä”P ðcñF +ÆejK31¤ê~CÜJ±@JÍðœæ~-hÈ„`ôNWmÓÀ9¥Ã3öbàŒ{ø7E€±þ’‘ ‚og¦tœ |4Ò— rÕRÉen—ܸvu(5m\d'×ψcð7>­ËcPhlVµPiP¹çòH=²~¸¦{f‡¦\RŽO¦_º‚5)Nt ¯tœÒÁk›’<¨A…Ž9½Ì ÜoÃ)­Å™=ÊÇ? ÆÅ KlŸ˜„÷0¨áâ5Z`ÂD— +çÁ¨HÝ21RŒû‚¯{§Î?®)rpÈvÃo¹·o¤Ûx*Oå7Ë~—'ãeK¿àpŠTeÔrÌ­™ëø¸Û³™‹)ÐѦÎ_ùÿˆVËÕŸ;˜„vßTM°è>{ÅdKä¸[ãy/ñˆˆrÕ.Š=-8§Q®ˆ/L}3i<âë +ç¥x<`t­õÐŽÕ!i.|wìè(lúMëz©fêzÝX@’˜‡r!ø´?,_°°eâˆSñÞtmN®MaOè&Bn`0ï¸G·à­:¢ÅŸ%N£omX:e0;ß"©öF&HÓ~!£€BÀl 1¢ÔmÉÀX=õÉ¡ÿ½*ÿeÛH¢$þIûÎb¿õJŠkøÄe}à>œ™Éà'É[°ÆäGXEM·qûuµ(s)•íÝ~Å4»{æ¯ÊÈrß(A™éÆr,y/½4@ˆD }É3–Fs©f~£.Å'r¾¨Y8LøMq‘ªt ßh^” Pº×Ü[g~ôà4Ö›&…2&&ŠØ´Û‡u²j­õò½Ò×®ÊH%èËà;‘¨^¿Î 1Ä©wÚÍŽ1}($e~¾cKìTÇl©ÂŸ¼u9FfÃ'°‚†ÙGA>¢lo¡0èsœþé 1@N+…€ÊoîÇí’5é(뢈C¥Õåb$RãˆM[ƒñ1aø–`ÆHÿBYÂír¨nï$îWh^ž¾WÓꟾÉôÐòqìfês†¹ÉÿÕ6|”á³´J­-ÜBŽš³_‚N‘I7j}q(HeÊeÀìö}¥Ç>± ýåg€ÀÈp{¾£­~;µôwÔmÑ5‹3ƒ_ÒšE-³Ókæ“”áI`bIQÉIªÈp‹2#Ü™çà`tM{=tŠ$5­áΪ<>’?´¬~ô¥²y€ß’97š¢"[j"=ÓÚp ÜU|$¨§#»ú +ªùpe¢¹Ç@.$û¤¶Ú‡\bß~Q'¡qºÏ­9'_S¤kS3j¦SˆPNzpYh/;$à%~øÁ%¨BFÚ<Äà/t¶ný!!„ šk”ñÛ +ÀA¶Ó ×'<(b®7Š²î½ÿR— ‡+&—Út¡L ¦‚T2 L nª2Äúô^lhIÝ% DÊÂfÚa®×SÔrÓGò|ÓÍÚr qÀD.³TLcßç RZCC‘ç™ÛÎò7íL‘à %¥Ö]\Ctùر°<óˆÄ-}Õy×7Œ^0D µº]IXC|×ã¨gø²4ùsƒisèÛ8„e} +^¤àe‹"sÜôË:~3ÐÙ¨›„Â#j°rM ¦ûàG«Höò‰¥‘_䶇ëèÕRtì +$âE’ÍɧÏÛ¨+ ‡%ù‘Y×p¢” AQ~W¥¦(†EqܽoTÚ‰ìºB•I¯…â½;ž½V3\míÖðG¼ƒ÷íf¼•\¸à*´e½U‚¾²ö]Þ³¬~µ;Æõnb9X?Ù÷B +„!±ª±«Ìh’…¦ÇòO×ǬèÑ?ꙕ¸¬—"ÚÈ8ÎËÕ«M’Y·H9GöR§Éê.ô€Ýpò®ðe >Ý5¥´<& ¢¹ãxUê-~ÌÞ¤cv…ÐZäÇú†Y¦¤L³QŸÁõÌHGìt¥VUBlÿÀÜ2 ·ˆiUlu¡La"—ÃŽ«Y`ªÓ{E{s‰³äîŠ ù2Ú±„)‰ŽMJÁŠèº9 Šª!Æò ñ%xx[…&éLPЖ‡Ôõ<¹3”›…>måA¿¤ŽÉCã†iŽÒ–ìým¹¥¯~—ÌÄ}öß?K!†q3©WF…`›<0±ÆYèœò8f/ßa楮}~}^ÆQEM`V»bs­Ø_+;Pá¯ÕÖ†ë³+†½êòsÅUBÍͱž$ÏÛÞIfœºŽµÖ¸ØF6¤ý‰ Ê/43à’‘5zXe«íÏHe]öÑÊŠS£c}ôzÇ˨¹ë¢pÜôaqëõºì'ÞÜ׎ SÃÅÀ.Ù|Iq+úÙ`½ÖÛÇ-,‹äOú:*€ö"EØÉ:•ÙªŸb·s_0å~m«×Èu^sål=Á*³ÇÒÿà*Ùko KQKr&Ahâ‘V +Z`tÛ:ÍK"fy¡Ón5×-i7±$&m¼È7©Öfþ`d‡\ë5tRfán¶S‰ÑxÏÍ1`z×Ðe·0êI|ï˜Y‰\ÛÿuþU0óâ‚[FÌúݲšÚOVƒµ´-™t¢ß•g8í‹ó°æ–Âã†Mì‡8fS=„±1©ZÛ\ž`‘.@u4¾àìð¶ímòØ~ØÇP¾ÌXÆú! +ø±Ã•iA;_ n{ûbÏú„lÕÑ¥, 9†a(ÏT*Q{€R¢xqë«I±å’¤‡þäƒ.†Y¶£¦áØú+|þÉÑZD|rl槚%ü)aÎ2 +ø(”Ì¡MÜ7¢ð¨Ì†¿hcPW2U©Ìã„ÄPÌ ÉdøýYÝ)ÀŸ1¦Ç¥î¯ðz5/Þ4§ÀZþ̇8ï'ãÿüº HcÄ*Aè űµ–âX¥g…úw^½º¾Œx«z›bòvÖñ(=6ûJ°ÀÎ'Û¢nÉŸvLÏã)e›shì\Mè5§8uí<ØÖ©Æ 3LÓÅ Áš';aœLG´íØ—Žz3®\7¬¡|˜J'š‡C¸NåÕLݘ®|]´ Î’6æb– œxA€˜ÿçâ‘þÙ‹,÷ƒxÀÜ«êÂ¥ê!Æ÷·n±úC>™Ïm-7=™E=€ßÕ†ßÏÎFãëÙò™£TÜ»‹"¸±Ø»ÓVÓ@"ƒÎë“ ×U¸lp캓Žû_-™¸7.$ü¼öÈ4´Œ§ÜÜ¥Ý ¬PÊ9Xo(¹Ò¥*Ê…s'e¬òG¼ÿÄ¿¤ß]÷)_eˬřÕ “ROÓd)å +k„Ó‹ _}*^!ô˜)íETÄ,èÿcÐH‘(Ðô\Éx™·R/¹Ûo?˜ËÄæ‘õã!$áÇ(ô ì`.HÙ´ u¶œñÃî;tR#‘í)>0A?–¾$à‡,†ñ>äÁŠrýW¦?¿¾âÚºÝ9›égÙàtz%‡Ÿ`,º+ ìºÁcîÖu cfØŸ«ï8»­Qf†‡Ǿ¹ÑûÀëp*2÷‡Ç™\pËÊ*f;E‚ï±DMò8Ûêö¦œ6”†·.‚;=Öóà¼ÝS¹-²öt.†[N[!.d ã:Í°óü|Xš§TóÍcê÷NéËÓ_\¸VŽ›Ü‰µÄ"EÉIÔåÿë*º+àËü“{ HËG+9¯¸|‰b®ohÁs‰Oùv¿ŽO ¨ÀŽ”«ñ:û—™’»Ý ¯·- Öá Ó/äm$O•áê‡D6R‡ pÄÁ!_¦âÑó«ÓvôÒ‰¢Ÿ™°´ŸG(št‹P+î'¯¶¥SÜŒ) ±W.Áà$¹Ovä5.‹žëÈaöÑ¿¾ïòÜ3³_—üH[Ûñ£Á[§B›'Åù,A7{X(_etWÎEô>"‚›°àŒýíuœ3¯-£4qqØú·Ýçôaó™×wkëÑdkJrèÚ.k7ѱj»£Z†Ø2&yc 6ä :ЛÛ +3[~t½ë9ï>VÇ"øDf㽉ßB>4b×`0Àº §xÿ Þ¯xY°ÊGT1s‹:Öb­Ýì +¨{v4p~ø´Ç 'ÙÇAŒ¥½È¦o@°Ù&ö^–/ LåÈé4 Ô'ï[fÔ2+’_høÊÍ<½§º6iû…A«Ž!‹Ó§#É} Oˆ¤@Û."ˆÈp2`ˆ«¬NÏþ/õ©.4¶Hø ¸ÍT8„…L­m"»‡·cëbÚ¶g °k¿-Ô ü1¡³kÖYKL¶ãT}¦×û%'ós D÷ä5/tRhJa^Áyi¼Ýë]{ý:í¿§§ÌÑð!Û«ç°{¦ô~HNÄà‹Ü«ePJÀ%íÓ¥3Ù¡ÚŒõÜýð“â™hÛ³!ÃOcÏææ&?‹ûÝÔ&^Ë\2 p‹y8L¥[es#æ¹i9L#0SýyÐ6lS)QÛøÏÓe~_NTM±»EöØçàL?_ô³]›Å§0•èŒ Ùx=Yq%!÷³dîqa5¢D.®'ÒD=GÒæS…ÃTÌtEÕ­R£Ñœ,ç@Yäq­u×äaAóâ¾ö y:éÜᬠˆí]7óñßärð²FÄ…BDz!š3œFü'~Éê£ 0ä¬HÙ Ó²ß²Ê ¯SÛ*´ÉÁ›r$ªÃÆÈ”¹ZÂýn¦®¹G„½u£¸±ÆôCï‹Â`kÓ: g¼:K©Cá&SjÙ|Þi4o ‡I÷P˜Ch]©Þ„10ßs­:Ÿ‡¡cØS_W·¿O…ûÊÅ×SOÁêÄÇÁÿAH}Ð`è_È#›u$ófÓÕ wE’¥´ßå“ü+Ùbø”vÕ¿Öɦ|éJØÐÓ6&Å^zWA(Ó¦sUÊLÉÎ ÞB“ç«·RX)V4F`å‰lÑö@*ï,W‰õÇ^z\Æhã2¯®½*ÓP±:NÐxD”HöšÃ³À{V[7œqä3)níNó˜óGD;XÎÜxëØØücÆb”-Ú¯éá` –7Ù¶*¨)ŸGÔĶsmگذÙn¾SŠ@p—õb2ò¤äO±)Dÿ"\iNÕ΀aðyÖƒòŸôM»y}u%½Š³“ÊQ|!̺Óåhw€ˆìÖí§«ÂUî 7ÅÙîº$—6ƨž‘ÈâQöÜèEÌseýTÊ :¡3B‹Ó‘ùÃC%½†¤‰‹™¦&fV­=×’Æ°óÔX¥PHþ¾˜i p—„¶¼ñ`A\Ï—] ~ì.ͼ*(Þ( 7ô©½K»«‹¨iâg¤1º”š1¦™Ê¿çRl=AÎàªÑÆâ[Ÿ8Žý)ñ‘}Xâ¯Ê‚KæãþÚ$‚÷iî@ü=0Y붙ÓÇ¥­%^{‚¢ñß½Á]À¨;Á9KzÉAN}Ô‘\é("©ƒî£Öšn×/þLu0@ñ¼¶_èHص­Õ„4ÎK!Yäç¶çO.Ï@¹ÂeËÕN ѯåïlRUÉwß-€r'Ô[½94)lÍÐ@ÙEÞáãq'ó/ÿéCwªuˆ3Z’šèXÓ—ûSœæÒWs›eõ)k´WJDAJ·£Á®¶jžÇywOÐBÅ`¬ƒÒÒºx/Ĥ@ÛÈþ+ÂDÁdC\â“ÙÄ‚,ž?7– Á¹8+Á<[Ìv4æÅd‘¸ì ³I« 0ú¸}íe©V·ÞÒþE“Š?¶( e^’(‰À‘A-ÅÈÎc”‘ÒHu §7Ãù]´ekáµ½¨™ø«Vª=Ã>†9d„Cñ]kO¥Âα³Äo±ûøº¢¢M ~ÒŸzŒàˆùY‰YÑQÀÓëÏ.Ü-ŠZѺwt_ „–qm®7«‚b¾_î. k΄.TÁçꦈnrÎ>ÛJ€Wü.o ¯‘“ƒ”ѵûðMç‘<ÒÇѬ+êqeÜñl­Ðã¦ý8@¼µ³SÃAÔ””:‚ñ‘ðÔ+"9м¿îjY¹³!¾Bïåä³Þà<Ü?ᔇ6Ï9¯^Îã¸0žq¦›fžÁ''€Ž¿3&‰îW5 +EÏß© k¡íˆk©OÙ†ðêŸ:icÈ@‘s9W©ãO±XôJ!tëÇ–y/Þ€­Yw‹Ü£í^$3(^Ëé p‘I7«J¤)ôÑbrÝÌ_X×åc²gc'ì!-†èÙ}„¯oÝýTrUøÔ¦YêõfÈÕÒ…¡c$±vƒÎ# *Ø ]›ùÈ/NaEŒôî8æÎT×Û‰¥GSlú GtÉ^ãË*ËêÔö fŽï‚Xÿäô®@CˆÌÂϲxR&û4*ä÷2†ô¤çÚ°ícÒøïS¶èMjƒKf©ºÍÒà `ù6×&›¦päE—:*þ ¿Ëìk? +€ +ªiæ_w„`ß‚•…•b‹Î Á˜,àíƒW³(I–¤Ëé³Sûa†g ;à»háÞ£dJKù¯_%Ša ªç€‡f’Gì¥ÊF®oÍ8Š×¶ƒRÊÌ¢×ú’«ÁE)yVå5­Å²šš#®ç¹cÖOO³[·¨í; C‹µ´'r1ÜG—üúŒ(A©heý%L}Š×o$GQXhûrIoÈmº3]ÁÑ÷ t=!ÅS¡Ó´æ¥pô_h2ëŠy\Ë‘º j!Š>«u˜<ŠÊÿ'÷ßúÚª”¢3j½qÆôë`VeH§È^¸T<©ËÛEó™X†#"DmŽ¢$“<¶œRö½4-°M÷öõÕ+`Ï«¢,G}Û!m?¹‰þçÀB9ÿ/CxHœÈ_®Ršì~PA‰1]à!ŸãÓðg¥4JQƒq«ƒíiã/_ Eȇõ@µÞë.K# „iœ±ú#ÚÁ³5ìÕÛØ/I§îªtý|¿ƒ·ZºµÉÞóD›éÃ2Žºì@¬‘‡ÊPž£ÒIѦíÀ oøÓ·1Z¸ûC^m6À('ÀÓ‰AeñäÆ@QiYFS¼Ä`»ª/cLJó><º0<ôĉ–Þ±¢yä ífi_Çö#{™ïUŠ’gþäÛÜ×¢«ºÜü£¨ Ð+ñ^Þ«9tÊ]Ž7 &~ÄK{A•2n—'L²rö,Ÿ/5_°ƒN‚ãnš"ÑL7ªž¬ÿÙÑã^d¢w¤wF§ìcÓB¹F YŸÔ* Ñ±§‚crJ.Ežó›<ûÙ‹J¤qÕms½µ¡Þ:»TMFËâp_€¸¹A|ÉÌa7+°&—½¤ G÷ƒúÂm¸Ètʃ후æšÁößÞ`ÞÓ)— bꉔÜùü\RkˆÅ®ÿ—ò)âr$ë‘ð±ní’;=88ZG@bŒ%솥ñ½X;á;Ûé9Čڋk?GK17 t2ÛsSî®ññßý4ø[Ó¦C5 +åTE‡U…5ÂWsBy+_p=ô–$%m¸7Y#_ôÃ,<)‡"á ˜vI:4q©{‡ÑDÔ$!FÝ B£~ÆP|Å'rµKXZ‰¥…*lÚ%Mw}-R[%Œ[ˆþÓ†‹µéI´iMõxa>ñÅcñW'\Ò¨F¢yBש«g„…õUíדHÍÁª @ŠÙt²fô,ר·ãŽø{èÚÜP +@å*Ù{Âè°S–»ÝÞ\£ÍÉ:›>%É‹r8Ÿýª¡-@BÁØšà–õðºVA—ª)M™éB·§ª‹q$óµ=I؆îäm•åFCÈ,b§ÈnIcq<»·üÝzezê–…Á`â%Q¡]®—Y°›–¼ÎæÐ@ƒ.ÃÝÓy1ß8êH>süa¾\õ]`ï±¼÷Î.ÆG<6JÌþâÏê3á±#Êê˜ì-¬¸[¢9ô™e„Qäg‹ ªÅ……i ÎYàã6?³žÌhÒ™¦¡uš«Q_σQtIe¬ëù-£ï ¢R5¯J«3®Ö[ßFu§T]î4yntçƵê¹ñ Ãl‘·wÈxA¼ˆ‘š Ôh•ÎÕ‡õ—#5xØy bƒž¿ÍµØ±Úª13wrŽÑ–pü «Þ\ÏÅf8ÄüÆHþÁ(5þä'ØÙñ`Ÿ"å`\ïN¿&(¬Ñ\&'É"6d1´Œ@ÄÓýMKÔÀ²{]hûÊðäÒÛ®ô@݉ª‚¯…vŽdX»9Öïž~p’ ¥g8\?±'#ªÅî,"Tõ¦OØÅ‹ñ*£¤¦ØÛ;~+H|ÆUlkdƒŒ¼´#§Wú9ÇáËÛ*E 0<¡ìí_ë':dólè£#æa¼-uâº5]pŒ@3¦EƒÐr`_»_€µO¹ …œAºÒo4R^£=y%' ñ’:Ôð +=õµ‰¼!†÷h¤t%x¤ œµ¿CÓ qùP¤Yä ´ÕÔµ2áqœ²zRUÓh?v0ÃúøJƒM£Q¡odÕ^Ø zœ\˜’”ÖÃøƒó7aïH’·Q6¹jf$öl×~õ‰½çøC»ÂÆ¿ÃÍ  ?jë\š8+‚«\Gmà…¼5ÂEžVϳ¾#a4É*¼|ÓŸIldÈ›T]¡T¤jbíüÐ\¿ÿ@yÜ”êífl=βzÍU”±(„VÉ_½Ÿ>ï“”Y +z¤Ç¹ÿppÖÓŽòlÚ¸4 +(Ù]4/G:uUB£‰ê‡Xö— ݇öDýüu4¬ÔN͈ž +owêòÅ^‰'Ø‚ØEI +Seè›9÷Ÿ;Øu¿òjÆ2ØØûý „ tðÔD5Ú‹~$¬eµ‹—aú@Ç>–w±Q#ƒI™èXÇÕd¶êCδ“Y¬É…N E[¸ëáªm"XÊrWÌ×ÃEœ21fCÔ”p]¯±ÁXé{‹´8Ü´ƒéü†:~] ’nÞEÝ{ç½”0gÒ*rëm3·rè¨ Gå½ÄuôûäÝÔ«Kú|N Z¡¼'„à“•\o¶ßŸ¥3êAµ:™ÿ®žûµC{¾ ½º’å@œapæO>*J{Õï8Ãï)’Œ¿½â lc¤ËðÈV*Ÿ<àÆò$€ü @_#[$FÒµg«§$-­®eàýZ""ã Zųpª#úñI…b ‰%íäe¼â;œã¯—$' n¥=’“|b΢£gȲmßLä90ŸŽ*šúSË9¥‹!,ÒÇïJ­ÏQœýìóŽFéž‚´e¸Î.%=ì…Í!=YS·½-uäèÒrÐ6î›U&E¸=›ÊYIã ÿ”GzYETà1ü8dQ5ÆÕD€¢s\hÂÉ"fñuͯið¡@|í«ÃWéÍŠÙ–h¿&ä ]TR,ð çœÍŸÍ®—çÎÜ aD–þYwOœ¹TR¢¦)/ÖøÈxö¥öœžJÞ<±ÅP9sŸÐ›X@;aX¨åEeÏC¡«Î€0Ei…-¿9B»yTñŠÞº¡’tf„§˜´Z( °()»òB‰Ö«‹É¼ˆ1k|µÊCw9ñDj7J—Šàòií;Ñ·Ãv’ú)“‘,UQú`¢P°J5¶Øj¡#: ÐS>BƒpPܺËíñ!‚½HÄ%¹x߃“tðß30„@}S\>Áeý‰©k)•­ ÉX»¶{2±I!8ªî‰RÞ5—nϺxgHu+"S2½dÆ{z̲¨­MêX‚ƒê?!#©u•¦­£ŸñÍ6ur±rw1”®«ã}f;úß 6¦\ÖÄÔ±8Ì u+ªðá°i-#9 ób×èÖcZösWÐ=QR¢=`QUÞ‘œI;CÁgj®¿rVÔE.Æõõ›Kµ•¾2P“'ÚÙ0_<ÎÞ}o¹i³l^ :,¸‡ÑšQ¡çú‰µ¥ŸÜy.eèÖDÚüB wÈmí~åe‘ýx¾Å'ÂI©ý6¦yŒÐUR4 +5¬¨–.­¦]¿ ë©К4ž¸¸FóÄ5¼³ ©)sJô¤G)¬zÈd WEò§º}ÃÙ`Yp±Ò±8)î5ë=3"æl¬KvÎ8hÑdÆ üÿâ¾Å¢oèȇ(0Ôù}Æé‹’ïT?ßë­|e©ƒ§] ÉP7ÆÚ¶vökïáÞ´½Èmô9½ñä/9öF¦щ=R‚ZÓÏ7HcqRžrëò§…„€$”Al³… +£ÚzCD(]p©ùõ +qxìÞàŠ¨ +3Ê+RÚÆÔHäÇ¥ +*õüE1R²z"þ²~hl ºÑ£°EÉȤ]8ðô´âEäö³€È¶ŸJô)DÖ~3XQ ÍŒÁ§N/BòÒ¹žAjÖTç{4_ µ€ˆzM|1V)½4¸)ÔO`id>wöȉHÆ~þÛ¿ ¡0‘z"50Ìt‹õ6jTrSvúíŸÔ³¤9a8¸ÜªõÓ#ßtñû½ýPtÜŒÜ/³kec†ö{6Ñ¥Óy¢³Õ: ÛÑÏ ¿Š†>ÁÅê¬^½ÖYý¯7‰3›] þ§™¡=ƒq|¯£»3ZÈ7ÿ ‹¡SÞuA¨5Íßìæ–7‚‡5ß5 %9\AŽø œé +öw«Ž^Ÿú—ÀºÜÁéNs×5)¤âKU¢‹z%ƒeªxÚ@Õ>û`#0 9eq´Ôø‚è1Ìê`Øè‚éþ¨¨~fÒŽã¿úÛ§÷WaÏ€¸IÂ÷cÇSýƒŒåá +µóÞFêóR9”Õ}ªî9òÔQ3¶˜¶0üþv5Èk IâFw#"∬Ç-à)ö®ùÅáÉj0ºX™Û&" YÌï.1…³E挰L¬œ“Ñ^gÊ÷ƒI°h±ÜM·<ÈDÄâ ûiìÜy)kâMÁMZB›b¹~MÐc‡J"þ&GĬ)U·Ñƒ>„ÉF2y"ÖÙ†…pÑ]ÏëvÅ}ùECÅç(¥ +¡ &æé•êïF 1DÂW¨Ø í~VÚ¦1D`â‰Ðïc½i÷½@O´¬¤ÜèNÆx¾˜'Á4¿9K”Ǫ&©b;gãÿÌB¥[?¹ªNBO¥mCŸ?æ½DÈœ-ìhzѳv¼“JB'ÎÖc!›ž§>JÈPàŽô¡2ãš·¶ÐnƼ£y½œUôùx¯‘6ÌÞ˜oÆqLø`Š(çºÝ~ö7oµÇÆŸc{±êêT“/QjCPÒ–¼Ù³,0êÖ¤ÍôêFû +R—Ez!oÃp9Cˤ¸z¨Qh& ëñ¯f8®xãL &íÙ—`^$kµŽêlJK¤* 3Ac5¯Êˆ,´qp¿Ru`Àç*Æô^¦3ˆàî7È&´·];C¯<ç¹âï”8ÒÔ+õTªÎšˆîk3éfôí–àœOÝ&&çO€¬Æ¡ý¹<; f$¥Ìv¾a˜ñ½'%…=3º„NÏ4öGöµ÷Š ïqüíÛ¬SýýAá¼¢{¬˜¾R‘~ˆH1æã ®qZû”ì<»H$qLK*´³j.O÷i†$’=ÏMJ©óŠÐzÉ»€Ü΋ +ó“ɘs&¹¯‚þ5î@”W$ÆÍ&ûÎàdc!Sñ +HÀ²˜Ð£w Ž NÂ&Ä’ØûlÉË&⸴™¬8n—m%¦î…ν !­ó@U3‰/…•yöìÐãG@±j}ßüæ58`'Uµ$Í%LØ¡×Ú¾ì:OÅÇËÑõ„|׺7LHLòcŽÃ¾^)8RcªØ0ñû˜kÎ`šÇr@sBòe²îÚÂVcS +¸^È*úἘòS~é¢Ëi0õ¢böòpåó]XUB¬dÎî-2bÚ—^lŸO×r0ƒ€Ä«¡±,áŠ÷°ÕtB¨"¶•.f¿ŸdÂÛà‡ñC¹"Þ£TÊã£Ü½¯\ÄÄé~P‘”\†‡–gW W™ŠÍØ ?V SÛçMÖ.›·wÐUÕÇž‘cœSçù$}š²…²-wÈ‹¹@‚A"rÆ‘ +öpw„®ïÜØc©S´LÓÈL*D:;Q2“Lúá¦Þ³>tµH£½ Ñl&o¶e +Ø£DŒ >ù:òŠ%ĭP ­tz%̪ҮgEª]Qˆç#*cö½Á˜Z³ªcËÈ2C¹!¦p?ë’d®SÃx íx‰^Í2“ +6º +ˆÄïÄ“IHŸ+°Z[fÀWóÙø!±¥1ÅÆ×lÆ»6W––«SF oœ´cL\>iÁ…ªß¢õþûË03ªØ¢ÙTµ©Z▶܀°ölŽ#…""ÁÈS2Ü\”«1¼¶q²ðË?¿y¾ÓÒÂ7îªí} ;£“sXœŸÞ¹-ÝI° ñ(PCσ÷ƒrWñ”k{•:C›þ¥4õo†E«7bò&˜öQ«øµxiÞXJoŽ +pc £àÑxI–#Öe]8»RcÏwž(Í/õiŽ<¨ß89k3›ØËD©LåñÚE¿¡Ø”þCåþ»5ª!ɾxYâjun†¦¬ÒeEUgUµãæJA›âºC«sÑfÕ—g‹(¤nµ&úÿwIÔÊõÛXn1¥7Ý-]¸s=– ×ÓQÏHEz<¨R×4ÓFRoŠ“_íNžû³M£A”n.bœ~7ûÂü>{‡,‘€µ¤â/wº–;;a”j=Êß#;–Öÿ Û +Œæõ?¹Ú¢JÆ4›¦La,Ç‚AÂBéO¦_4‘"Á’«lËÄ=~¡”zªa}M@.™r˹Þ̽´Ü8Yââ5øºÊ—ƒÂÆVRï ï€Å×"u$ªS"Fèж5V}TS·w|+ßÕw|]5ÎÄnä p./ùæK\J|~²4ü¯.ú*AR^ÑO¥W¦oC m,]Ü4s+¨#ò?ûÓSæ…E/¯'¢3,¨÷AÙvœ¡Á}{·§×q܈ ˆ“Ýõ1aU“ä@ÍJ¡Ywfã=ä"sW‰¼ÿȳÈÇOðdMåžDmM5ž´µd]6: ß«Ÿ-¤?¥í¾m +Q µôÎ0¶Á™Ü4àY˜-GóþÝ3¬ô:˜â•BÐAÃöÒÀu˜IŠHHÜ_äôg.eÆørËò/½øÇUÌeÂÓE7t)4;ÒLXK·™{i:þhÍb§84—QÑ nÆ}$©0:x£2’MnªÚY^/° ÚgéKäw[ãÖRg'}sARâ÷ ßø£Qåôª8:9e {5œO"a³‚WìVuPYå}6+u.ï­[ 5Gî¾æ|*.g©PÚFÅ“Qµ%I½w$ÎÉRK‘wçë}3x½á–œ4ûSiy[Á¶ÞÞ.›ZÃË—¨¥5¸¥KÄ6œ™A#ÃÜV»¾š$üTH©z0Ý Üit vœ‹Àá‚8XÆÉO•‘ñÞ?–N^w®áþ77 ciÆ߇n +OË„8kÛ¨‹,™ëu /õÞp»’÷ÿˆX¹gë‘ìó¶kmjz³ÁbËKÙæ(û“áQ*rèÄOXÐ<ú%Š4âèuL{8,7,Ç:»ŽL§ŒüAw{X–,…äXø_ q#oSˆç™£Me¡ž·6…µ…@^9dû˜‚£Ì¶ãr|À§¨d›ÿ¤Õ¹öìRä)ô²k³-N–ír¯ª½%õQæíÙ¹ÞZk‘`v2µÔ¡ýTlAÝ2­d-†QššBûK¥êPC–œÔSÚáUr. ¸[è[FÔ™kR¯C;pS·žËäŽeŠv—aÁd¯Ì1£Ëð#ÒÀaȾd]íirS(Ê)Jܸ֓Üý–6ê2¥0"VOMÁ-æ5´ü–÷?–ÜÁõKz‡S¢¯ÐS{)&ÊôäWu¥µš)|%¼ÀjÙ1d]–ì#¥ [Ž6ÒÂ:K¢GÄ…4ëÎüF‰Ï³f’uF1AWœ8fÄÿŽhõRB{&ÚN?Íâ0¶…Ss‰¦BR·t¨C|&3+‘õå?BœçA4ÆaB¶KÑÜÁ‰¨¿Æ{Gg·!N]’š-Ziù¶AÛ2£Ã(-ÓZ6>¡3E`ò2«Ú(å—I"Y£Úo>O¥”\.)¡³k6ö‹.%ûTa¶JÉõÏÿ@ÿȧ ™ÅdŽS>]ƒ5»‚"vVhD©êA»/ñj—W¢}ù—ZA2º )>°5Ä4¹ß­S´E»‘Ó÷f9¦G f‡:Eyî>¬µüš‚»Åfì%Â[›¥Q2³g³Ó†˜[ªÛpƒ»ªX­µd6.a1%ÓÉÏ?$tºJ(^Ï$ñ2M—/ÓJßy\8=nÉêT€Â ëÃþª‡Œr xyEû‰:ó·ÖtW=^;ÔÍÇ9ÛËÓæ¥ÎÞ^@&{Yw¹Ö’Ó"³³´rf´¡KáäçÆœtw¹ÜèÿŠ'¯ö¦LP;È33jM}„"ú”ø)¡¶báç„AöÑgÄ ~¨›'ª¶Bc(”­j™è#3ÞØjÖ(üZ·—LÓTøÍ81|’M]2¥F5FËòÄR[z ”ñ¦I)ÙK +,fÍ0²GÄ:»4KORŠÖ‹Wô³]¡1NnÌ ¸#ãÛû–ö§<ùnöº·ƒ,a8rhuäØóNàšC«J"ã”عÓrú#tf¤ß®l¤\Rj«—*–WZÃø?ÿF1²Ð +Ì÷î2øO?áV¤…ŠW o· 5kx…ÁõÛ®C…-Ä"bÇm­|˜ß,*PÜœ‰”B>;“ípþxâ󰀊7Þ|ÓMtº­ä© ០Õñ•ÆT“"z²ÊË‹=p‘nZ7üt¸óßçÛlxøz,&ù>Émëê3é,Ý£¬l ÖÄ8Ï˛Ԟ‡ZrK {±?á6Ù’5Üã £TK*‡6j‘ª(ÀÔ>B´Cü½B’_à‹0Ÿò×ßû1ÍÁÏ5o`òBî! äx:mí•U ïFÔ>t„ +ôiÃÁe~xž,”„¦ë 2¼ç÷«!`z@r endstream endobj -1791 0 obj +1798 0 obj << /Length1 1408 /Length2 6441 @@ -23555,7 +23582,7 @@ B §÷xÜ@ϔɽãÙ'ë÷6‹³r÷1buOë¿]ÂÌ×%Ÿ"ÈH endstream endobj -1793 0 obj +1800 0 obj << /Length1 1443 /Length2 6901 @@ -23647,7 +23674,7 @@ z_, RÄ NpÛ}+Öž¨ZxrmrTÙ×gòTSÊhE>€E±¶¯ØmÄAç‹#.Ñ~L†ZGülx¥þù§°B•ë#ö_ø$4!B2´LËõшµµ¾¨7Lˆü—ô7{1<)ý>–õrïð>Øì²QníŽs \í8‡—ˆ ÀÊ ÅºC}âÎçóÒ0ăÕ3µ:Ò«‹|G"íhàíC÷òÃÁÓÅš–A¿úÑWÜŒvp"0a ƒôÉ @ô• dÂéPZµÏÖ;~Òo@+È4è(|Ÿ(óIcúQX„A½Û (u4Œÿ…°öu'­Êî‡ù†å“öÕ4÷‚»(Æw‹9ÿv®Â­\]LÜ»íÁó‘ÎD]Æ`üo¤í8“þ¸]ŒåõeBXƒ4å`õ endstream endobj -1795 0 obj +1802 0 obj << /Length1 2116 /Length2 14301 @@ -23796,7 +23823,7 @@ g \ˆ0!Á“œ¤|8˜-7QЇOØ–†É2!–ƒÑ×wîf+æQÕ"ÄÅR}â{r‘ŽDéòÜyÛí¥f3–ì•4³€?âÅ´ó2€M2Ø<ë™21y Ä#ÃÏ-¢ãú}§ "ç¡Äˆò›[ã˜P¿âªVdz´#éô;ãj¿÷5(VÔû·Z_µ‘™ÆÍWA#¾”Ò¤b#®ûeƒÐ>á‡á™\>s=/ÀH3úžµ3K^«†»íMÃ~×g[ ­`â3-ôáF4+·æ[‡Þ“üåwê.^Ѳ”8{ƨ$!Ë€~š<ƒÎ=4 ^^Ê+ÄMl¡ÍER ËÛ?>@dÁbô€5sÄ醱‹2là‹±Ã/|Ù 2¢ endstream endobj -1797 0 obj +1804 0 obj << /Length1 2014 /Length2 14211 @@ -23951,7 +23978,7 @@ sR( ºË8'úSGó¢G 2 endstream endobj -1799 0 obj +1806 0 obj << /Length1 1681 /Length2 8374 @@ -24042,7 +24069,7 @@ hX䶫 %d›¹´èö$ endstream endobj -1801 0 obj +1808 0 obj << /Length1 1392 /Length2 6093 @@ -24113,7 +24140,7 @@ H C¸FíÕHo¢v¬ÎBõé:T~5©|AšQÙ31åõ7 [¬ä'ñAO&VP2,‹Ã©– ×$Ä;_Á K«×ùM“+ã‘eô÷ý..ÁA¼Mó&’O{®Îx=––r"]߆B‡¬º„ÿ¶M«ÑÚ3?†eÌÁŒá‡“QÞÈmÚ¯„Á6&3»eäNušÁŠ·³U`¤ðN6Ê@ |õ^ö(Ì®‡Pˆr@¸Í€ endstream endobj -1803 0 obj +1810 0 obj << /Length1 2199 /Length2 18119 @@ -24285,7 +24312,7 @@ s Xjç ?ñi•zâDRuõêøsuaÑSÔàT­ÃßkÀ;¢ÝÖ§_‚Í+_2(ï*O¦¢Ÿ+5HM¢“¥Ê膽A1ë‹IYÚªÀl9%—d½~QŠc,óAeÃ[€Þ»wIÝ¢f(ß'BTn˜nŠ³g¶ôÿ endstream endobj -1805 0 obj +1812 0 obj << /Length1 1699 /Length2 10351 @@ -24392,7 +24419,7 @@ qO' ÔX¦Ç ë¾A±©µ ÷•©SÞt²•äoC‹Kžr 0ìE·½õ1”O®&é ò™\e;HË lüqάa]Ÿ´þ_i0yÏ4Þ ^2’™Óè0‘ endstream endobj -1807 0 obj +1814 0 obj << /Length1 2477 /Length2 17492 @@ -24577,7 +24604,7 @@ C öÑhD²cJ8· <Ý‚g¹rôx³Œ!# ™¾ t¾ZÉ0¸âЫ4´á‹œ™¤)}=9) =íð¿—(šð<¹Ô_kMQðGíÎÚcÃ<,å«ò˜‡û%)-x¶ eÅHðÈr/²€?éÒîlk #É»ð¼9¾v’ЮÛ0¥•š_Ï@«~)”ñ{%"z^Ô)kÃ¥„aŠ]¬ï¿àF„Hæ}ôpVÏ8\AÉ4„{` Њf­(n„*_æüUÁ:ôxJoØ%ák†'ZøÖ¦¾¸¦šr£SÊCkW)«3Ð Ó˜^³iFZÎ5¹#C;².4¼¡Ø¥+²ç°œjú¤¾=ûûº¦¼ÿá›Y:‰-f´—iÈaùèߪMÄÈ"<¿]ŽÚ^,++G³Qn›‡3¸ü—¢mäôT{õñ=ƒþÒE“óÏðXHÞ`óÝÿ»¼¤ endstream endobj -1809 0 obj +1816 0 obj << /Length1 1656 /Length2 8404 @@ -24687,119 +24714,143 @@ e §Öga!.ΘÍþâ:Øâܨ+. endstream endobj -1751 0 obj +1758 0 obj << /Type /ObjStm /N 100 -/First 1014 -/Length 20833 +/First 1005 +/Length 20634 >> stream -723 0 1749 57 1742 115 1753 208 1755 326 880 385 762 443 729 501 726 559 722 617 -725 675 1756 733 1752 792 1757 885 1758 930 1759 1069 1760 1563 1761 1892 1762 2235 1763 2256 -1764 2762 1765 2801 1766 3491 1767 3819 1768 3900 1769 4275 1770 4912 1771 5571 1772 6194 1773 6838 -1774 7123 1776 7771 1778 8201 1780 8624 1782 8873 1784 9201 1786 9418 1788 9657 1790 9879 1792 10408 -1794 10640 1796 10883 1798 11263 1800 11629 1802 11968 1804 12199 1806 12572 1808 12835 1810 13319 548 13603 -546 13744 1578 13885 740 14026 786 14167 756 14308 1725 14448 549 14588 758 14728 755 14866 760 15004 -1145 15143 757 15283 1061 15423 720 15562 547 15703 754 15844 935 15985 550 16125 721 16238 813 16351 -865 16464 898 16577 937 16690 978 16803 1027 16918 1076 17038 1129 17158 1177 17278 1222 17398 1265 17518 -1312 17638 1355 17758 1390 17878 1427 17998 1472 18118 1504 18238 1533 18358 1569 18478 1630 18598 1672 18718 -1709 18838 1750 18958 1811 19042 1812 19157 1813 19277 1814 19398 1815 19519 1816 19594 1817 19690 538 19759 -% 723 0 obj +735 0 736 57 752 114 732 171 733 228 1755 285 728 343 1756 400 1749 458 1760 551 +1762 669 885 728 767 786 734 844 731 902 727 960 730 1018 1763 1076 1759 1135 1764 1228 +1765 1273 1766 1412 1767 1906 1768 2235 1769 2578 1770 2599 1771 3105 1772 3144 1773 3834 1774 4162 +1775 4243 1776 4618 1777 5255 1778 5914 1779 6537 1780 7181 1781 7466 1783 8114 1785 8544 1787 8967 +1789 9216 1791 9544 1793 9761 1795 10000 1797 10222 1799 10759 1801 10991 1803 11234 1805 11614 1807 11980 +1809 12319 1811 12550 1813 12923 1815 13186 1817 13670 552 13954 550 14095 1583 14236 745 14377 791 14518 +761 14659 1736 14799 553 14939 763 15079 760 15217 765 15355 1150 15494 762 15634 1066 15774 725 15913 +551 16054 759 16195 940 16336 554 16476 726 16589 818 16702 870 16815 903 16928 942 17041 983 17154 +1032 17270 1081 17390 1134 17510 1182 17630 1227 17750 1270 17870 1317 17990 1360 18110 1395 18230 1432 18350 +1477 18470 1509 18590 1538 18710 1574 18830 1635 18950 1677 19070 1714 19190 1757 19310 1818 19394 1819 19509 +% 735 0 obj +<< +/D [1750 0 R /XYZ 99.895 479.555 null] +>> +% 736 0 obj << -/D [1743 0 R /XYZ 99.895 223.543 null] +/D [1750 0 R /XYZ 99.895 436.978 null] >> -% 1749 0 obj +% 752 0 obj +<< +/D [1750 0 R /XYZ 99.895 394.402 null] +>> +% 732 0 obj +<< +/D [1750 0 R /XYZ 99.895 351.272 null] +>> +% 733 0 obj +<< +/D [1750 0 R /XYZ 99.895 308.696 null] +>> +% 1755 0 obj << -/D [1743 0 R /XYZ 99.895 180.966 null] +/D [1750 0 R /XYZ 99.895 266.119 null] >> -% 1742 0 obj +% 728 0 obj +<< +/D [1750 0 R /XYZ 99.895 223.543 null] +>> +% 1756 0 obj << -/Font << /F16 546 0 R /F8 549 0 R /F17 720 0 R >> +/D [1750 0 R /XYZ 99.895 180.966 null] +>> +% 1749 0 obj +<< +/Font << /F16 550 0 R /F8 553 0 R /F17 725 0 R >> /ProcSet [ /PDF /Text ] >> -% 1753 0 obj +% 1760 0 obj << /Type /Page -/Contents 1754 0 R -/Resources 1752 0 R +/Contents 1761 0 R +/Resources 1759 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1750 0 R +/Parent 1757 0 R >> -% 1755 0 obj +% 1762 0 obj << -/D [1753 0 R /XYZ 149.705 753.953 null] +/D [1760 0 R /XYZ 149.705 753.953 null] >> -% 880 0 obj +% 885 0 obj << -/D [1753 0 R /XYZ 150.705 716.092 null] +/D [1760 0 R /XYZ 150.705 716.092 null] >> -% 762 0 obj +% 767 0 obj << -/D [1753 0 R /XYZ 150.705 688.251 null] +/D [1760 0 R /XYZ 150.705 688.251 null] >> -% 729 0 obj +% 734 0 obj << -/D [1753 0 R /XYZ 150.705 632.184 null] +/D [1760 0 R /XYZ 150.705 632.184 null] >> -% 726 0 obj +% 731 0 obj << -/D [1753 0 R /XYZ 150.705 590.562 null] +/D [1760 0 R /XYZ 150.705 590.562 null] >> -% 722 0 obj +% 727 0 obj << -/D [1753 0 R /XYZ 150.705 544.789 null] +/D [1760 0 R /XYZ 150.705 544.789 null] >> -% 725 0 obj +% 730 0 obj << -/D [1753 0 R /XYZ 150.705 512.909 null] +/D [1760 0 R /XYZ 150.705 512.909 null] >> -% 1756 0 obj +% 1763 0 obj << -/D [1753 0 R /XYZ 150.705 480.475 null] +/D [1760 0 R /XYZ 150.705 480.475 null] >> -% 1752 0 obj +% 1759 0 obj << -/Font << /F8 549 0 R /F17 720 0 R /F30 754 0 R >> +/Font << /F8 553 0 R /F17 725 0 R /F30 759 0 R >> /ProcSet [ /PDF /Text ] >> -% 1757 0 obj +% 1764 0 obj [757.3 871.7 778.7 672.4 827.9] -% 1758 0 obj +% 1765 0 obj [575.2 657.4 525.9 657.4 543 361.6 591.7 657.4 328.7 361.6 624.5 328.7 986.1 657.4 591.7 657.4 624.5 488.1 466.8 460.2 657.4] -% 1759 0 obj +% 1766 0 obj [285.5 399.7 399.7 513.9 799.4 285.5 342.6 285.5 513.9 513.9 513.9 513.9 513.9 513.9 513.9 513.9 513.9 513.9 513.9 285.5 285.5 285.5 799.4 485.3 485.3 799.4 770.7 727.9 742.3 785 699.4 670.8 806.5 770.7 371 528.1 799.2 642.3 942 770.7 799.4 699.4 799.4 756.5 571 742.3 770.7 770.7 1056.2 770.7 770.7 628.1 285.5 513.9 285.5 513.9 285.5 285.5 513.9 571 456.8 571 457.2 314 513.9 571 285.5 314 542.4 285.5 856.5 571 513.9 571 542.4 402 405.4 399.7 571 542.4 742.3 542.4 542.4 456.8] -% 1760 0 obj +% 1767 0 obj [892.9 339.3 892.9 585.3 892.9 585.3 892.9 892.9 892.9 892.9 892.9 892.9 892.9 1138.9 585.3 585.3 892.9 892.9 892.9 892.9 892.9 892.9 892.9 892.9 892.9 892.9 892.9 892.9 1138.9 1138.9 892.9 892.9 1138.9 1138.9 585.3 585.3 1138.9 1138.9 1138.9 892.9 1138.9 1138.9 708.3 708.3 1138.9 1138.9 1138.9 892.9 329.4 1138.9] -% 1761 0 obj +% 1768 0 obj [525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525] -% 1762 0 obj +% 1769 0 obj [533.6] -% 1763 0 obj +% 1770 0 obj [413.2 413.2 531.3 826.4 295.1 354.2 295.1 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 295.1 295.1 295.1 826.4 501.7 501.7 826.4 795.8 752.1 767.4 811.1 722.6 693.1 833.5 795.8 382.6 545.5 825.4 663.6 972.9 795.8 826.4 722.6 826.4 781.6 590.3 767.4 795.8 795.8 1091 795.8 795.8 649.3 295.1 531.3 295.1 531.3 295.1 295.1 531.3 590.3 472.2 590.3 472.2 324.7 531.3 590.3 295.1 324.7 560.8 295.1 885.4 590.3 531.3 590.3 560.8 414.1 419.1 413.2 590.3 560.8 767.4 560.8 560.8] -% 1764 0 obj +% 1771 0 obj [611.1 611.1 611.1 611.1] -% 1765 0 obj +% 1772 0 obj [777.8 277.8 777.8 500 777.8 500 777.8 777.8 777.8 777.8 777.8 777.8 777.8 1000 500 500 777.8 777.8 777.8 777.8 777.8 777.8 777.8 777.8 777.8 777.8 777.8 777.8 1000 1000 777.8 777.8 1000 1000 500 500 1000 1000 1000 777.8 1000 1000 611.1 611.1 1000 1000 1000 777.8 275 1000 666.7 666.7 888.9 888.9 0 0 555.6 555.6 666.7 500 722.2 722.2 777.8 777.8 611.1 798.5 656.8 526.5 771.4 527.8 718.7 594.9 844.5 544.5 677.8 762 689.7 1200.9 820.5 796.1 695.6 816.7 847.5 605.6 544.6 625.8 612.8 987.8 713.3 668.3 724.7 666.7 666.7 666.7 666.7 666.7 611.1 611.1 444.4 444.4 444.4 444.4 500 500 388.9 388.9 277.8 500 500 611.1 500 277.8 833.3 750 833.3 416.7 666.7 666.7 777.8 777.8 444.4] -% 1766 0 obj +% 1773 0 obj [339.3 892.9 585.3 892.9 585.3 610.1 859.1 863.2 819.4 934.1 838.7 724.5 889.4 935.6 506.3 632 959.9 783.7 1089.4 904.9 868.9 727.3 899.7 860.6 701.5 674.8 778.2 674.6 1074.4 936.9 671.5 778.4 462.3 462.3 462.3 1138.9 1138.9 478.2 619.7 502.4 510.5 594.7 542 557.1 557.3 668.8 404.2 472.7 607.3 361.3 1013.7 706.2] -% 1767 0 obj +% 1774 0 obj [569.5 569.5 569.5 569.5 569.5 569.5 569.5 569.5 569.5 569.5 323.4] -% 1768 0 obj +% 1775 0 obj [525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525] -% 1769 0 obj +% 1776 0 obj [639.7 565.6 517.7 444.4 405.9 437.5 496.5 469.4 353.9 576.2 583.3 602.6 494 437.5 570 517 571.4 437.2 540.3 595.8 625.7 651.4 622.5 466.3 591.4 828.1 517 362.8 654.2 1000 1000 1000 1000 277.8 277.8 500 500 500 500 500 500 500 500 500 500 500 500 277.8 277.8 777.8 500 777.8 500 530.9 750 758.5 714.7 827.9 738.2 643.1 786.3 831.3 439.6 554.5 849.3 680.6 970.1 803.5 762.8 642 790.6 759.3 613.2 584.4 682.8 583.3 944.4 828.5 580.6 682.6 388.9 388.9 388.9 1000 1000 416.7 528.6 429.2 432.8 520.5 465.6 489.6 477 576.2 344.5 411.8 520.6 298.4 878 600.2 484.7 503.1 446.4 451.2 468.8 361.1 572.5 484.7 715.9 571.5 490.3 465.1] -% 1770 0 obj +% 1777 0 obj [613.3 562.2 587.8 881.7 894.4 306.7 332.2 511.1 511.1 511.1 511.1 511.1 831.3 460 536.7 715.6 715.6 511.1 882.8 985 766.7 255.6 306.7 514.4 817.8 769.1 817.8 766.7 306.7 408.9 408.9 511.1 766.7 306.7 357.8 306.7 511.1 511.1 511.1 511.1 511.1 511.1 511.1 511.1 511.1 511.1 511.1 306.7 306.7 306.7 766.7 511.1 511.1 766.7 743.3 703.9 715.6 755 678.3 652.8 773.6 743.3 385.6 525 768.9 627.2 896.7 743.3 766.7 678.3 766.7 729.4 562.2 715.6 743.3 743.3 998.9 743.3 743.3 613.3 306.7 514.4 306.7 511.1 306.7 306.7 511.1 460 460 511.1 460 306.7 460 511.1 306.7 306.7 460 255.6 817.8 562.2 511.1 511.1 460 421.7 408.9 332.2 536.7 460 664.4 463.9 485.6] -% 1771 0 obj +% 1778 0 obj [583.3 555.6 555.6 833.3 833.3 277.8 305.6 500 500 500 500 500 750 444.4 500 722.2 777.8 500 902.8 1013.9 777.8 277.8 277.8 500 833.3 500 833.3 777.8 277.8 388.9 388.9 500 777.8 277.8 333.3 277.8 500 500 500 500 500 500 500 500 500 500 500 277.8 277.8 277.8 777.8 472.2 472.2 777.8 750 708.3 722.2 763.9 680.6 652.8 784.7 750 361.1 513.9 777.8 625 916.7 750 777.8 680.6 777.8 736.1 555.6 722.2 750 750 1027.8 750 750 611.1 277.8 500 277.8 500 277.8 277.8 500 555.6 444.4 555.6 444.4 305.6 500 555.6 277.8 305.6 527.8 277.8 833.3 555.6 500 555.6 527.8 391.7 394.4 388.9 555.6 527.8 722.2 527.8 527.8 444.4 500] -% 1772 0 obj +% 1779 0 obj [670.8 638.9 638.9 958.3 958.3 319.4 351.4 575 575 575 575 575 869.4 511.1 597.2 830.6 894.4 575 1041.7 1169.4 894.4 319.4 350 602.8 958.3 575 958.3 894.4 319.4 447.2 447.2 575 894.4 319.4 383.3 319.4 575 575 575 575 575 575 575 575 575 575 575 319.4 319.4 350 894.4 543.1 543.1 894.4 869.4 818.1 830.6 881.9 755.6 723.6 904.2 900 436.1 594.4 901.4 691.7 1091.7 900 863.9 786.1 863.9 862.5 638.9 800 884.7 869.4 1188.9 869.4 869.4 702.8 319.4 602.8 319.4 575 319.4 319.4 559 638.9 511.1 638.9 527.1 351.4 575 638.9 319.4 351.4 606.9 319.4 958.3 638.9 575 638.9 606.9 473.6 453.6 447.2 638.9 606.9 830.6 606.9 606.9 511.1 575 1150] -% 1773 0 obj +% 1780 0 obj [726.9 688.4 700 738.4 663.4 638.4 756.7 726.9 376.9 513.4 751.9 613.4 876.9 726.9 750 663.4 750 713.4 550 700 726.9 726.9 976.9 726.9 726.9 600 300 500 300 500 300 300 500 450 450 500 450 300 450 500 300 300 450 250 800 550 500 500 450 412.5 400 325 525 450 650 450 475] -% 1774 0 obj +% 1781 0 obj [625 625 937.5 937.5 312.5 343.7 562.5 562.5 562.5 562.5 562.5 849.5 500 574.1 812.5 875 562.5 1018.5 1143.5 875 312.5 342.6 581 937.5 562.5 937.5 875 312.5 437.5 437.5 562.5 875 312.5 375 312.5 562.5 562.5 562.5 562.5 562.5 562.5 562.5 562.5 562.5 562.5 562.5 312.5 312.5 342.6 875 531.2 531.2 875 849.5 799.8 812.5 862.3 738.4 707.2 884.3 879.6 419 581 880.8 675.9 1067.1 879.6 844.9 768.5 844.9 839.1 625 782.4 864.6 849.5 1162 849.5 849.5 687.5 312.5 581 312.5 562.5 312.5 312.5 546.9 625 500 625 513.3 343.7 562.5 625 312.5 343.7 593.7 312.5 937.5 625 562.5 625 593.7 459.5 443.8 437.5 625 593.7 812.5 593.7 593.7 500 562.5 1125] -% 1776 0 obj +% 1783 0 obj << /Type /FontDescriptor /FontName /RAJOBS+CMBX10 @@ -24812,9 +24863,9 @@ stream /StemV 114 /XHeight 444 /CharSet (/A/B/C/D/E/F/G/H/I/J/L/M/N/O/P/R/S/T/U/V/Z/a/b/c/colon/comma/d/e/eight/emdash/endash/equal/f/ff/ffi/fi/five/fl/four/g/h/hyphen/i/j/k/l/m/n/nine/o/one/p/period/q/quoteright/r/s/seven/six/t/three/two/u/v/w/x/y/z/zero) -/FontFile 1775 0 R +/FontFile 1782 0 R >> -% 1778 0 obj +% 1785 0 obj << /Type /FontDescriptor /FontName /GBHFLB+CMBX12 @@ -24827,9 +24878,9 @@ stream /StemV 109 /XHeight 444 /CharSet (/A/B/C/D/E/F/G/H/I/K/L/M/N/O/P/Q/R/S/T/U/V/W/a/b/c/d/e/eight/emdash/endash/f/fi/five/four/g/h/hyphen/i/k/l/m/n/nine/o/one/p/parenleft/parenright/period/q/quoteright/r/s/seven/six/t/three/two/u/v/w/x/y/z/zero) -/FontFile 1777 0 R +/FontFile 1784 0 R >> -% 1780 0 obj +% 1787 0 obj << /Type /FontDescriptor /FontName /VUBHOM+CMBX9 @@ -24842,9 +24893,9 @@ stream /StemV 117 /XHeight 444 /CharSet (/a/b/c/d/e/f/g/h/i/l/n/o/q/r/s/t/u) -/FontFile 1779 0 R +/FontFile 1786 0 R >> -% 1782 0 obj +% 1789 0 obj << /Type /FontDescriptor /FontName /PUWBWT+CMMI10 @@ -24857,9 +24908,9 @@ stream /StemV 72 /XHeight 431 /CharSet (/A/C/D/G/I/L/N/O/P/Q/T/U/X/a/alpha/b/beta/c/comma/d/e/f/g/greater/i/j/k/l/less/m/n/o/p/period/r/s/t/u/v/w/x/y/z) -/FontFile 1781 0 R +/FontFile 1788 0 R >> -% 1784 0 obj +% 1791 0 obj << /Type /FontDescriptor /FontName /RVPZIX+CMMI5 @@ -24872,9 +24923,9 @@ stream /StemV 90 /XHeight 431 /CharSet (/i) -/FontFile 1783 0 R +/FontFile 1790 0 R >> -% 1786 0 obj +% 1793 0 obj << /Type /FontDescriptor /FontName /ZUYGVH+CMMI7 @@ -24887,9 +24938,9 @@ stream /StemV 81 /XHeight 431 /CharSet (/H/I/T/a/comma/i/j/k/m/n) -/FontFile 1785 0 R +/FontFile 1792 0 R >> -% 1788 0 obj +% 1795 0 obj << /Type /FontDescriptor /FontName /ZOAUSA+CMMI8 @@ -24902,12 +24953,12 @@ stream /StemV 78 /XHeight 431 /CharSet (/C/F/G) -/FontFile 1787 0 R +/FontFile 1794 0 R >> -% 1790 0 obj +% 1797 0 obj << /Type /FontDescriptor -/FontName /KYXPCE+CMR10 +/FontName /SEWPRR+CMR10 /Flags 4 /FontBBox [-40 -250 1009 750] /Ascent 694 @@ -24916,10 +24967,10 @@ stream /ItalicAngle 0 /StemV 69 /XHeight 431 -/CharSet (/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/R/S/T/U/V/W/X/a/ampersand/b/bracketleft/bracketright/c/colon/comma/d/e/eight/endash/equal/f/ff/ffi/fi/five/fl/four/g/h/hyphen/i/j/k/l/m/n/nine/o/one/p/parenleft/parenright/period/plus/q/quotedblleft/quotedblright/quoteright/r/s/semicolon/seven/six/slash/t/three/two/u/v/w/x/y/z/zero) -/FontFile 1789 0 R +/CharSet (/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/R/S/T/U/V/W/X/a/ampersand/b/bracketleft/bracketright/c/colon/comma/d/e/eight/endash/equal/f/ff/ffi/fi/five/fl/four/g/h/hyphen/i/j/k/l/m/n/nine/o/one/p/parenleft/parenright/percent/period/plus/q/quotedblleft/quotedblright/quoteright/r/s/semicolon/seven/six/slash/t/three/two/u/v/w/x/y/z/zero) +/FontFile 1796 0 R >> -% 1792 0 obj +% 1799 0 obj << /Type /FontDescriptor /FontName /UZVBPP+CMR6 @@ -24932,9 +24983,9 @@ stream /StemV 83 /XHeight 431 /CharSet (/four/one/three/two) -/FontFile 1791 0 R +/FontFile 1798 0 R >> -% 1794 0 obj +% 1801 0 obj << /Type /FontDescriptor /FontName /IVTDWH+CMR7 @@ -24947,9 +24998,9 @@ stream /StemV 79 /XHeight 431 /CharSet (/colon/four/one/three/two/zero) -/FontFile 1793 0 R +/FontFile 1800 0 R >> -% 1796 0 obj +% 1803 0 obj << /Type /FontDescriptor /FontName /GJDQOV+CMR8 @@ -24962,9 +25013,9 @@ stream /StemV 76 /XHeight 431 /CharSet (/B/G/I/L/N/O/P/T/X/a/b/c/colon/comma/d/e/eight/f/five/four/g/h/hyphen/i/l/m/n/nine/o/one/p/parenleft/parenright/period/q/r/s/seven/six/slash/t/three/two/u/v/w/x/y/zero) -/FontFile 1795 0 R +/FontFile 1802 0 R >> -% 1798 0 obj +% 1805 0 obj << /Type /FontDescriptor /FontName /KKURMF+CMR9 @@ -24977,9 +25028,9 @@ stream /StemV 74 /XHeight 431 /CharSet (/B/G/I/L/O/P/X/a/b/c/comma/d/e/eight/equal/f/five/four/g/h/i/m/n/nine/o/one/p/parenleft/parenright/period/quoteright/r/s/seven/six/t/three/two/u/x/z/zero) -/FontFile 1797 0 R +/FontFile 1804 0 R >> -% 1800 0 obj +% 1807 0 obj << /Type /FontDescriptor /FontName /IMOIOS+CMSY10 @@ -24992,9 +25043,9 @@ stream /StemV 40 /XHeight 431 /CharSet (/B/H/I/arrowleft/bar/bardbl/braceleft/braceright/bullet/element/greaterequal/lessequal/minus/negationslash/radical/section) -/FontFile 1799 0 R +/FontFile 1806 0 R >> -% 1802 0 obj +% 1809 0 obj << /Type /FontDescriptor /FontName /XNLILI+CMSY7 @@ -25007,9 +25058,9 @@ stream /StemV 49 /XHeight 431 /CharSet (/infinity/minus) -/FontFile 1801 0 R +/FontFile 1808 0 R >> -% 1804 0 obj +% 1811 0 obj << /Type /FontDescriptor /FontName /HBJLDT+CMTI10 @@ -25022,9 +25073,9 @@ stream /StemV 68 /XHeight 431 /CharSet (/A/B/C/D/E/F/G/I/L/M/N/O/P/R/S/T/U/V/a/b/c/colon/d/e/f/ff/fi/five/g/h/hyphen/i/j/l/m/n/nine/o/one/p/period/q/quoteright/r/s/slash/t/three/two/u/v/w/x/y/zero) -/FontFile 1803 0 R +/FontFile 1810 0 R >> -% 1806 0 obj +% 1813 0 obj << /Type /FontDescriptor /FontName /OZJPZO+CMTI12 @@ -25037,9 +25088,9 @@ stream /StemV 63 /XHeight 431 /CharSet (/A/B/L/P/S/a/b/c/d/e/f/g/h/i/l/n/o/p/r/s/t/u/y) -/FontFile 1805 0 R +/FontFile 1812 0 R >> -% 1808 0 obj +% 1815 0 obj << /Type /FontDescriptor /FontName /BGSLBR+CMTT10 @@ -25052,9 +25103,9 @@ stream /StemV 69 /XHeight 431 /CharSet (/A/B/C/D/E/F/I/K/L/M/N/O/P/R/S/T/U/W/Y/a/ampersand/asciitilde/asterisk/b/backslash/bracketleft/bracketright/c/colon/comma/d/e/equal/f/four/g/h/hyphen/i/j/k/l/m/n/nine/o/one/p/parenleft/parenright/percent/period/plus/q/r/s/six/slash/t/three/two/u/underscore/v/w/x/y/z/zero) -/FontFile 1807 0 R +/FontFile 1814 0 R >> -% 1810 0 obj +% 1817 0 obj << /Type /FontDescriptor /FontName /KMUHVJ+CMTT9 @@ -25067,447 +25118,454 @@ stream /StemV 74 /XHeight 431 /CharSet (/T/a/b/c/colon/comma/d/e/l/n/o/p/parenleft/parenright/r/s/t/underscore/y) -/FontFile 1809 0 R +/FontFile 1816 0 R >> -% 548 0 obj +% 552 0 obj << /Type /Font /Subtype /Type1 /BaseFont /RAJOBS+CMBX10 -/FontDescriptor 1776 0 R +/FontDescriptor 1783 0 R /FirstChar 11 /LastChar 124 -/Widths 1772 0 R +/Widths 1779 0 R >> -% 546 0 obj +% 550 0 obj << /Type /Font /Subtype /Type1 /BaseFont /GBHFLB+CMBX12 -/FontDescriptor 1778 0 R +/FontDescriptor 1785 0 R /FirstChar 12 /LastChar 124 -/Widths 1774 0 R +/Widths 1781 0 R >> -% 1578 0 obj +% 1583 0 obj << /Type /Font /Subtype /Type1 /BaseFont /VUBHOM+CMBX9 -/FontDescriptor 1780 0 R +/FontDescriptor 1787 0 R /FirstChar 97 /LastChar 117 -/Widths 1758 0 R +/Widths 1765 0 R >> -% 740 0 obj +% 745 0 obj << /Type /Font /Subtype /Type1 /BaseFont /PUWBWT+CMMI10 -/FontDescriptor 1782 0 R +/FontDescriptor 1789 0 R /FirstChar 11 /LastChar 122 -/Widths 1769 0 R +/Widths 1776 0 R >> -% 786 0 obj +% 791 0 obj << /Type /Font /Subtype /Type1 /BaseFont /RVPZIX+CMMI5 -/FontDescriptor 1784 0 R +/FontDescriptor 1791 0 R /FirstChar 105 /LastChar 105 -/Widths 1762 0 R +/Widths 1769 0 R >> -% 756 0 obj +% 761 0 obj << /Type /Font /Subtype /Type1 /BaseFont /ZUYGVH+CMMI7 -/FontDescriptor 1786 0 R +/FontDescriptor 1793 0 R /FirstChar 59 /LastChar 110 -/Widths 1766 0 R +/Widths 1773 0 R >> -% 1725 0 obj +% 1736 0 obj << /Type /Font /Subtype /Type1 /BaseFont /ZOAUSA+CMMI8 -/FontDescriptor 1788 0 R +/FontDescriptor 1795 0 R /FirstChar 67 /LastChar 71 -/Widths 1757 0 R +/Widths 1764 0 R >> -% 549 0 obj +% 553 0 obj << /Type /Font /Subtype /Type1 -/BaseFont /KYXPCE+CMR10 -/FontDescriptor 1790 0 R +/BaseFont /SEWPRR+CMR10 +/FontDescriptor 1797 0 R /FirstChar 11 /LastChar 123 -/Widths 1771 0 R +/Widths 1778 0 R >> -% 758 0 obj +% 763 0 obj << /Type /Font /Subtype /Type1 /BaseFont /UZVBPP+CMR6 -/FontDescriptor 1792 0 R +/FontDescriptor 1799 0 R /FirstChar 49 /LastChar 52 -/Widths 1764 0 R +/Widths 1771 0 R >> -% 755 0 obj +% 760 0 obj << /Type /Font /Subtype /Type1 /BaseFont /IVTDWH+CMR7 -/FontDescriptor 1794 0 R +/FontDescriptor 1801 0 R /FirstChar 48 /LastChar 58 -/Widths 1767 0 R +/Widths 1774 0 R >> -% 760 0 obj +% 765 0 obj << /Type /Font /Subtype /Type1 /BaseFont /GJDQOV+CMR8 -/FontDescriptor 1796 0 R +/FontDescriptor 1803 0 R /FirstChar 40 /LastChar 121 -/Widths 1763 0 R +/Widths 1770 0 R >> -% 1145 0 obj +% 1150 0 obj << /Type /Font /Subtype /Type1 /BaseFont /KKURMF+CMR9 -/FontDescriptor 1798 0 R +/FontDescriptor 1805 0 R /FirstChar 39 /LastChar 122 -/Widths 1759 0 R +/Widths 1766 0 R >> -% 757 0 obj +% 762 0 obj << /Type /Font /Subtype /Type1 /BaseFont /IMOIOS+CMSY10 -/FontDescriptor 1800 0 R +/FontDescriptor 1807 0 R /FirstChar 0 /LastChar 120 -/Widths 1765 0 R +/Widths 1772 0 R >> -% 1061 0 obj +% 1066 0 obj << /Type /Font /Subtype /Type1 /BaseFont /XNLILI+CMSY7 -/FontDescriptor 1802 0 R +/FontDescriptor 1809 0 R /FirstChar 0 /LastChar 49 -/Widths 1760 0 R +/Widths 1767 0 R >> -% 720 0 obj +% 725 0 obj << /Type /Font /Subtype /Type1 /BaseFont /HBJLDT+CMTI10 -/FontDescriptor 1804 0 R +/FontDescriptor 1811 0 R /FirstChar 11 /LastChar 121 -/Widths 1770 0 R +/Widths 1777 0 R >> -% 547 0 obj +% 551 0 obj << /Type /Font /Subtype /Type1 /BaseFont /OZJPZO+CMTI12 -/FontDescriptor 1806 0 R +/FontDescriptor 1813 0 R /FirstChar 65 /LastChar 121 -/Widths 1773 0 R +/Widths 1780 0 R >> -% 754 0 obj +% 759 0 obj << /Type /Font /Subtype /Type1 /BaseFont /BGSLBR+CMTT10 -/FontDescriptor 1808 0 R +/FontDescriptor 1815 0 R /FirstChar 37 /LastChar 126 -/Widths 1768 0 R +/Widths 1775 0 R >> -% 935 0 obj +% 940 0 obj << /Type /Font /Subtype /Type1 /BaseFont /KMUHVJ+CMTT9 -/FontDescriptor 1810 0 R +/FontDescriptor 1817 0 R /FirstChar 40 /LastChar 121 -/Widths 1761 0 R +/Widths 1768 0 R >> -% 550 0 obj +% 554 0 obj << /Type /Pages /Count 6 -/Parent 1811 0 R -/Kids [541 0 R 552 0 R 603 0 R 656 0 R 699 0 R 704 0 R] +/Parent 1818 0 R +/Kids [545 0 R 556 0 R 607 0 R 660 0 R 704 0 R 709 0 R] >> -% 721 0 obj +% 726 0 obj << /Type /Pages /Count 6 -/Parent 1811 0 R -/Kids [718 0 R 738 0 R 751 0 R 767 0 R 779 0 R 783 0 R] +/Parent 1818 0 R +/Kids [723 0 R 743 0 R 756 0 R 772 0 R 784 0 R 788 0 R] >> -% 813 0 obj +% 818 0 obj << /Type /Pages /Count 6 -/Parent 1811 0 R -/Kids [797 0 R 816 0 R 828 0 R 834 0 R 846 0 R 858 0 R] +/Parent 1818 0 R +/Kids [802 0 R 822 0 R 833 0 R 839 0 R 851 0 R 863 0 R] >> -% 865 0 obj +% 870 0 obj << /Type /Pages /Count 6 -/Parent 1811 0 R -/Kids [862 0 R 867 0 R 874 0 R 882 0 R 886 0 R 891 0 R] +/Parent 1818 0 R +/Kids [867 0 R 872 0 R 879 0 R 887 0 R 891 0 R 896 0 R] >> -% 898 0 obj +% 903 0 obj << /Type /Pages /Count 6 -/Parent 1811 0 R -/Kids [895 0 R 900 0 R 905 0 R 910 0 R 915 0 R 924 0 R] +/Parent 1818 0 R +/Kids [900 0 R 905 0 R 910 0 R 915 0 R 920 0 R 929 0 R] >> -% 937 0 obj +% 942 0 obj << /Type /Pages /Count 6 -/Parent 1811 0 R -/Kids [931 0 R 939 0 R 943 0 R 954 0 R 960 0 R 970 0 R] +/Parent 1818 0 R +/Kids [936 0 R 944 0 R 948 0 R 959 0 R 965 0 R 975 0 R] >> -% 978 0 obj +% 983 0 obj << /Type /Pages /Count 6 -/Parent 1812 0 R -/Kids [975 0 R 986 0 R 991 0 R 998 0 R 1007 0 R 1015 0 R] +/Parent 1819 0 R +/Kids [980 0 R 991 0 R 996 0 R 1003 0 R 1012 0 R 1020 0 R] >> -% 1027 0 obj +% 1032 0 obj << /Type /Pages /Count 6 -/Parent 1812 0 R -/Kids [1023 0 R 1029 0 R 1036 0 R 1044 0 R 1051 0 R 1058 0 R] +/Parent 1819 0 R +/Kids [1028 0 R 1034 0 R 1041 0 R 1049 0 R 1056 0 R 1063 0 R] >> -% 1076 0 obj +% 1081 0 obj << /Type /Pages /Count 6 -/Parent 1812 0 R -/Kids [1069 0 R 1085 0 R 1091 0 R 1102 0 R 1108 0 R 1114 0 R] +/Parent 1819 0 R +/Kids [1074 0 R 1090 0 R 1096 0 R 1107 0 R 1114 0 R 1119 0 R] >> -% 1129 0 obj +% 1134 0 obj << /Type /Pages /Count 6 -/Parent 1812 0 R -/Kids [1122 0 R 1133 0 R 1142 0 R 1150 0 R 1162 0 R 1170 0 R] +/Parent 1819 0 R +/Kids [1127 0 R 1138 0 R 1147 0 R 1155 0 R 1167 0 R 1175 0 R] >> -% 1177 0 obj +% 1182 0 obj << /Type /Pages /Count 6 -/Parent 1812 0 R -/Kids [1174 0 R 1186 0 R 1194 0 R 1200 0 R 1209 0 R 1213 0 R] +/Parent 1819 0 R +/Kids [1179 0 R 1191 0 R 1199 0 R 1205 0 R 1214 0 R 1218 0 R] >> -% 1222 0 obj +% 1227 0 obj << /Type /Pages /Count 6 -/Parent 1812 0 R -/Kids [1218 0 R 1226 0 R 1231 0 R 1241 0 R 1246 0 R 1255 0 R] +/Parent 1819 0 R +/Kids [1223 0 R 1231 0 R 1236 0 R 1246 0 R 1251 0 R 1260 0 R] >> -% 1265 0 obj +% 1270 0 obj << /Type /Pages /Count 6 -/Parent 1813 0 R -/Kids [1262 0 R 1268 0 R 1274 0 R 1278 0 R 1286 0 R 1296 0 R] +/Parent 1820 0 R +/Kids [1267 0 R 1273 0 R 1279 0 R 1283 0 R 1291 0 R 1301 0 R] >> -% 1312 0 obj +% 1317 0 obj << /Type /Pages /Count 6 -/Parent 1813 0 R -/Kids [1300 0 R 1316 0 R 1320 0 R 1332 0 R 1339 0 R 1346 0 R] +/Parent 1820 0 R +/Kids [1305 0 R 1321 0 R 1325 0 R 1338 0 R 1344 0 R 1351 0 R] >> -% 1355 0 obj +% 1360 0 obj << /Type /Pages /Count 6 -/Parent 1813 0 R -/Kids [1352 0 R 1357 0 R 1366 0 R 1372 0 R 1376 0 R 1381 0 R] +/Parent 1820 0 R +/Kids [1357 0 R 1362 0 R 1371 0 R 1377 0 R 1381 0 R 1386 0 R] >> -% 1390 0 obj +% 1395 0 obj << /Type /Pages /Count 6 -/Parent 1813 0 R -/Kids [1385 0 R 1393 0 R 1398 0 R 1404 0 R 1410 0 R 1416 0 R] +/Parent 1820 0 R +/Kids [1390 0 R 1398 0 R 1403 0 R 1409 0 R 1415 0 R 1421 0 R] >> -% 1427 0 obj +% 1432 0 obj << /Type /Pages /Count 6 -/Parent 1813 0 R -/Kids [1422 0 R 1430 0 R 1437 0 R 1442 0 R 1452 0 R 1456 0 R] +/Parent 1820 0 R +/Kids [1427 0 R 1435 0 R 1443 0 R 1447 0 R 1457 0 R 1461 0 R] >> -% 1472 0 obj +% 1477 0 obj << /Type /Pages /Count 6 -/Parent 1813 0 R -/Kids [1460 0 R 1474 0 R 1478 0 R 1484 0 R 1490 0 R 1497 0 R] +/Parent 1820 0 R +/Kids [1465 0 R 1479 0 R 1483 0 R 1489 0 R 1495 0 R 1502 0 R] >> -% 1504 0 obj +% 1509 0 obj << /Type /Pages /Count 6 -/Parent 1814 0 R -/Kids [1501 0 R 1506 0 R 1510 0 R 1514 0 R 1518 0 R 1522 0 R] +/Parent 1821 0 R +/Kids [1506 0 R 1511 0 R 1515 0 R 1519 0 R 1523 0 R 1527 0 R] >> -% 1533 0 obj +% 1538 0 obj << /Type /Pages /Count 6 -/Parent 1814 0 R -/Kids [1528 0 R 1535 0 R 1541 0 R 1548 0 R 1554 0 R 1559 0 R] +/Parent 1821 0 R +/Kids [1533 0 R 1540 0 R 1546 0 R 1553 0 R 1559 0 R 1564 0 R] >> -% 1569 0 obj +% 1574 0 obj << /Type /Pages /Count 6 -/Parent 1814 0 R -/Kids [1566 0 R 1573 0 R 1603 0 R 1609 0 R 1615 0 R 1621 0 R] +/Parent 1821 0 R +/Kids [1571 0 R 1578 0 R 1608 0 R 1614 0 R 1620 0 R 1626 0 R] >> -% 1630 0 obj +% 1635 0 obj << /Type /Pages /Count 6 -/Parent 1814 0 R -/Kids [1627 0 R 1633 0 R 1640 0 R 1647 0 R 1654 0 R 1661 0 R] +/Parent 1821 0 R +/Kids [1632 0 R 1638 0 R 1645 0 R 1652 0 R 1659 0 R 1666 0 R] >> -% 1672 0 obj +% 1677 0 obj << /Type /Pages /Count 6 -/Parent 1814 0 R -/Kids [1667 0 R 1674 0 R 1680 0 R 1689 0 R 1697 0 R 1702 0 R] +/Parent 1821 0 R +/Kids [1672 0 R 1679 0 R 1685 0 R 1694 0 R 1702 0 R 1707 0 R] >> -% 1709 0 obj +% 1714 0 obj << /Type /Pages /Count 6 -/Parent 1814 0 R -/Kids [1706 0 R 1711 0 R 1718 0 R 1730 0 R 1735 0 R 1739 0 R] +/Parent 1821 0 R +/Kids [1711 0 R 1718 0 R 1722 0 R 1729 0 R 1741 0 R 1746 0 R] >> -% 1750 0 obj +% 1757 0 obj << /Type /Pages /Count 2 -/Parent 1815 0 R -/Kids [1743 0 R 1753 0 R] +/Parent 1822 0 R +/Kids [1750 0 R 1760 0 R] >> -% 1811 0 obj +% 1818 0 obj << /Type /Pages /Count 36 -/Parent 1816 0 R -/Kids [550 0 R 721 0 R 813 0 R 865 0 R 898 0 R 937 0 R] +/Parent 1823 0 R +/Kids [554 0 R 726 0 R 818 0 R 870 0 R 903 0 R 942 0 R] >> -% 1812 0 obj +% 1819 0 obj << /Type /Pages /Count 36 -/Parent 1816 0 R -/Kids [978 0 R 1027 0 R 1076 0 R 1129 0 R 1177 0 R 1222 0 R] +/Parent 1823 0 R +/Kids [983 0 R 1032 0 R 1081 0 R 1134 0 R 1182 0 R 1227 0 R] >> -% 1813 0 obj + +endstream +endobj +1824 0 obj +<< +/Type /ObjStm +/N 100 +/First 891 +/Length 9781 +>> +stream +1820 0 1821 121 1822 242 1823 317 1825 413 542 482 538 542 534 653 530 727 526 815 +522 903 518 991 514 1079 510 1153 506 1278 502 1352 498 1440 494 1528 490 1616 486 1704 +482 1778 478 1903 474 1977 470 2065 466 2153 462 2227 458 2352 454 2426 450 2514 446 2602 +442 2690 438 2778 434 2866 430 2954 426 3042 422 3130 418 3218 414 3306 410 3394 406 3482 +401 3570 397 3658 393 3732 389 3858 385 3932 381 4020 377 4108 373 4196 369 4284 365 4372 +361 4460 357 4548 353 4636 349 4724 345 4812 341 4900 337 4988 333 5076 329 5164 325 5252 +321 5340 317 5428 313 5516 309 5604 305 5692 301 5780 297 5868 293 5956 289 6044 285 6132 +281 6206 277 6332 273 6406 269 6494 265 6582 261 6656 257 6781 253 6855 249 6943 245 7031 +241 7119 237 7207 233 7295 229 7383 225 7471 221 7559 217 7647 213 7735 209 7823 205 7897 +200 8022 196 8095 192 8182 188 8256 184 8344 180 8432 176 8520 172 8594 168 8693 164 8818 +% 1820 0 obj << /Type /Pages /Count 36 -/Parent 1816 0 R -/Kids [1265 0 R 1312 0 R 1355 0 R 1390 0 R 1427 0 R 1472 0 R] +/Parent 1823 0 R +/Kids [1270 0 R 1317 0 R 1360 0 R 1395 0 R 1432 0 R 1477 0 R] >> -% 1814 0 obj +% 1821 0 obj << /Type /Pages /Count 36 -/Parent 1816 0 R -/Kids [1504 0 R 1533 0 R 1569 0 R 1630 0 R 1672 0 R 1709 0 R] +/Parent 1823 0 R +/Kids [1509 0 R 1538 0 R 1574 0 R 1635 0 R 1677 0 R 1714 0 R] >> -% 1815 0 obj +% 1822 0 obj << /Type /Pages /Count 2 -/Parent 1816 0 R -/Kids [1750 0 R] +/Parent 1823 0 R +/Kids [1757 0 R] >> -% 1816 0 obj +% 1823 0 obj << /Type /Pages /Count 146 -/Kids [1811 0 R 1812 0 R 1813 0 R 1814 0 R 1815 0 R] +/Kids [1818 0 R 1819 0 R 1820 0 R 1821 0 R 1822 0 R] >> -% 1817 0 obj +% 1825 0 obj << /Type /Outlines /First 4 0 R /Last 4 0 R /Count 1 >> +% 542 0 obj +<< +/Title 543 0 R +/A 540 0 R +/Parent 538 0 R +>> % 538 0 obj << /Title 539 0 R /A 536 0 R -/Parent 534 0 R ->> - -endstream -endobj -1818 0 obj -<< -/Type /ObjStm -/N 100 -/First 886 -/Length 9741 +/Parent 4 0 R +/Prev 510 0 R +/First 542 0 R +/Last 542 0 R +/Count -1 >> -stream -534 0 530 111 526 185 522 273 518 361 514 449 510 523 506 648 502 722 498 810 -494 898 490 986 486 1074 482 1148 478 1273 474 1347 470 1435 466 1523 462 1597 458 1722 -454 1796 450 1884 446 1972 442 2060 438 2148 434 2236 430 2324 426 2412 422 2500 418 2588 -414 2676 410 2764 406 2852 401 2940 397 3028 393 3102 389 3228 385 3302 381 3390 377 3478 -373 3566 369 3654 365 3742 361 3830 357 3918 353 4006 349 4094 345 4182 341 4270 337 4358 -333 4446 329 4534 325 4622 321 4710 317 4798 313 4886 309 4974 305 5062 301 5150 297 5238 -293 5326 289 5414 285 5502 281 5576 277 5702 273 5776 269 5864 265 5952 261 6026 257 6151 -253 6225 249 6313 245 6401 241 6489 237 6577 233 6665 229 6753 225 6841 221 6929 217 7017 -213 7105 209 7193 205 7267 200 7392 196 7465 192 7552 188 7626 184 7714 180 7802 176 7890 -172 7964 168 8063 164 8188 160 8260 156 8333 152 8420 148 8507 144 8594 140 8681 136 8768 % 534 0 obj << /Title 535 0 R /A 532 0 R -/Parent 4 0 R -/Prev 510 0 R -/First 538 0 R -/Last 538 0 R -/Count -1 +/Parent 510 0 R +/Prev 530 0 R >> % 530 0 obj << @@ -25515,6 +25573,7 @@ stream /A 528 0 R /Parent 510 0 R /Prev 526 0 R +/Next 534 0 R >> % 526 0 obj << @@ -25553,10 +25612,10 @@ stream /A 508 0 R /Parent 4 0 R /Prev 482 0 R -/Next 534 0 R +/Next 538 0 R /First 514 0 R -/Last 530 0 R -/Count -5 +/Last 534 0 R +/Count -6 >> % 506 0 obj << @@ -26252,6 +26311,27 @@ stream /Parent 88 0 R /Prev 92 0 R >> + +endstream +endobj +1826 0 obj +<< +/Type /ObjStm +/N 100 +/First 944 +/Length 15438 +>> +stream +160 0 156 73 152 160 148 247 144 334 140 421 136 508 132 595 128 682 124 769 +120 856 116 943 112 1030 108 1117 104 1204 100 1291 96 1376 92 1446 88 1555 84 1676 +80 1745 76 1814 72 1896 68 1978 64 2060 60 2142 56 2224 52 2306 48 2388 44 2457 +40 2563 36 2669 32 2789 28 2858 24 2914 20 3033 16 3115 12 3184 8 3301 4 3366 +1827 3459 1828 3645 1829 3822 1830 3999 1831 4179 1832 4354 1833 4520 1834 4684 1835 4848 1836 5014 +1837 5179 1838 5350 1839 5520 1840 5692 1841 5862 1842 6034 1843 6204 1844 6376 1845 6545 1846 6714 +1847 6886 1848 7065 1849 7277 1850 7502 1851 7703 1852 7898 1853 8074 1854 8289 1855 8513 1856 8735 +1857 8969 1858 9201 1859 9433 1860 9669 1861 9904 1862 10134 1863 10362 1864 10535 1865 10715 1866 10892 +1867 11069 1868 11249 1869 11427 1870 11607 1871 11782 1872 11947 1873 12113 1874 12278 1875 12448 1876 12618 +1877 12790 1878 12960 1879 13132 1880 13301 1881 13470 1882 13642 1883 13812 1884 13984 1885 14154 1886 14326 % 160 0 obj << /Title 161 0 R @@ -26307,27 +26387,6 @@ stream /Prev 132 0 R /Next 140 0 R >> - -endstream -endobj -1819 0 obj -<< -/Type /ObjStm -/N 100 -/First 955 -/Length 16241 ->> -stream -132 0 128 87 124 174 120 261 116 348 112 435 108 522 104 609 100 696 96 781 -92 851 88 960 84 1081 80 1150 76 1219 72 1301 68 1383 64 1465 60 1547 56 1629 -52 1711 48 1793 44 1862 40 1968 36 2074 32 2194 28 2263 24 2319 20 2438 16 2520 -12 2589 8 2706 4 2771 1820 2864 1821 3050 1822 3227 1823 3404 1824 3584 1825 3759 1826 3925 -1827 4089 1828 4253 1829 4419 1830 4584 1831 4755 1832 4925 1833 5097 1834 5267 1835 5439 1836 5609 -1837 5781 1838 5950 1839 6119 1840 6291 1841 6470 1842 6682 1843 6907 1844 7108 1845 7303 1846 7479 -1847 7694 1848 7918 1849 8140 1850 8374 1851 8606 1852 8838 1853 9074 1854 9309 1855 9539 1856 9767 -1857 9940 1858 10120 1859 10297 1860 10474 1861 10654 1862 10832 1863 11012 1864 11187 1865 11352 1866 11518 -1867 11683 1868 11853 1869 12023 1870 12195 1871 12365 1872 12537 1873 12706 1874 12875 1875 13047 1876 13217 -1877 13389 1878 13559 1879 13731 1880 13899 1881 14093 1882 14299 1883 14498 1884 14694 1885 14892 1886 15088 % 132 0 obj << /Title 133 0 R @@ -26597,354 +26656,319 @@ stream << /Title 5 0 R /A 1 0 R -/Parent 1817 0 R +/Parent 1825 0 R /First 8 0 R -/Last 534 0 R +/Last 538 0 R /Count -11 >> -% 1820 0 obj -<< -/Names [(Doc-Start) 545 0 R (Hfootnote.1) 759 0 R (Hfootnote.2) 761 0 R (Hfootnote.3) 1683 0 R (Hfootnote.4) 1724 0 R (Item.1) 787 0 R] -/Limits [(Doc-Start) (Item.1)] ->> -% 1821 0 obj -<< -/Names [(Item.10) 801 0 R (Item.100) 1471 0 R (Item.101) 1481 0 R (Item.102) 1482 0 R (Item.103) 1487 0 R (Item.104) 1488 0 R] -/Limits [(Item.10) (Item.104)] ->> -% 1822 0 obj -<< -/Names [(Item.105) 1493 0 R (Item.106) 1494 0 R (Item.107) 1495 0 R (Item.108) 1525 0 R (Item.109) 1526 0 R (Item.11) 802 0 R] -/Limits [(Item.105) (Item.11)] ->> -% 1823 0 obj -<< -/Names [(Item.110) 1531 0 R (Item.111) 1532 0 R (Item.112) 1538 0 R (Item.113) 1539 0 R (Item.114) 1544 0 R (Item.115) 1545 0 R] -/Limits [(Item.110) (Item.115)] ->> -% 1824 0 obj -<< -/Names [(Item.116) 1551 0 R (Item.117) 1552 0 R (Item.118) 1557 0 R (Item.119) 1562 0 R (Item.12) 803 0 R (Item.13) 804 0 R] -/Limits [(Item.116) (Item.13)] ->> -% 1825 0 obj -<< -/Names [(Item.14) 805 0 R (Item.15) 806 0 R (Item.16) 807 0 R (Item.17) 808 0 R (Item.18) 809 0 R (Item.19) 810 0 R] -/Limits [(Item.14) (Item.19)] ->> -% 1826 0 obj -<< -/Names [(Item.2) 788 0 R (Item.20) 811 0 R (Item.21) 812 0 R (Item.22) 819 0 R (Item.23) 820 0 R (Item.24) 821 0 R] -/Limits [(Item.2) (Item.24)] ->> % 1827 0 obj << -/Names [(Item.25) 822 0 R (Item.26) 823 0 R (Item.27) 824 0 R (Item.28) 837 0 R (Item.29) 838 0 R (Item.3) 789 0 R] -/Limits [(Item.25) (Item.3)] +/Names [(Doc-Start) 549 0 R (Hfootnote.1) 764 0 R (Hfootnote.2) 766 0 R (Hfootnote.3) 1688 0 R (Hfootnote.4) 1735 0 R (Item.1) 792 0 R] +/Limits [(Doc-Start) (Item.1)] >> % 1828 0 obj << -/Names [(Item.30) 839 0 R (Item.31) 840 0 R (Item.32) 841 0 R (Item.33) 842 0 R (Item.34) 843 0 R (Item.35) 844 0 R] -/Limits [(Item.30) (Item.35)] +/Names [(Item.10) 806 0 R (Item.100) 1476 0 R (Item.101) 1486 0 R (Item.102) 1487 0 R (Item.103) 1492 0 R (Item.104) 1493 0 R] +/Limits [(Item.10) (Item.104)] >> % 1829 0 obj << -/Names [(Item.36) 849 0 R (Item.37) 850 0 R (Item.38) 851 0 R (Item.39) 852 0 R (Item.4) 790 0 R (Item.40) 853 0 R] -/Limits [(Item.36) (Item.40)] +/Names [(Item.105) 1498 0 R (Item.106) 1499 0 R (Item.107) 1500 0 R (Item.108) 1530 0 R (Item.109) 1531 0 R (Item.11) 807 0 R] +/Limits [(Item.105) (Item.11)] >> % 1830 0 obj << -/Names [(Item.41) 889 0 R (Item.42) 1165 0 R (Item.43) 1166 0 R (Item.44) 1167 0 R (Item.45) 1221 0 R (Item.46) 1229 0 R] -/Limits [(Item.41) (Item.46)] +/Names [(Item.110) 1536 0 R (Item.111) 1537 0 R (Item.112) 1543 0 R (Item.113) 1544 0 R (Item.114) 1549 0 R (Item.115) 1550 0 R] +/Limits [(Item.110) (Item.115)] >> % 1831 0 obj << -/Names [(Item.47) 1234 0 R (Item.48) 1235 0 R (Item.49) 1236 0 R (Item.5) 791 0 R (Item.50) 1237 0 R (Item.51) 1238 0 R] -/Limits [(Item.47) (Item.51)] +/Names [(Item.116) 1556 0 R (Item.117) 1557 0 R (Item.118) 1562 0 R (Item.119) 1567 0 R (Item.12) 808 0 R (Item.13) 809 0 R] +/Limits [(Item.116) (Item.13)] >> % 1832 0 obj << -/Names [(Item.52) 1249 0 R (Item.53) 1250 0 R (Item.54) 1251 0 R (Item.55) 1258 0 R (Item.56) 1281 0 R (Item.57) 1282 0 R] -/Limits [(Item.52) (Item.57)] +/Names [(Item.14) 810 0 R (Item.15) 811 0 R (Item.16) 812 0 R (Item.17) 813 0 R (Item.18) 814 0 R (Item.19) 815 0 R] +/Limits [(Item.14) (Item.19)] >> % 1833 0 obj << -/Names [(Item.58) 1289 0 R (Item.59) 1290 0 R (Item.6) 792 0 R (Item.60) 1291 0 R (Item.61) 1303 0 R (Item.62) 1304 0 R] -/Limits [(Item.58) (Item.62)] +/Names [(Item.2) 793 0 R (Item.20) 816 0 R (Item.21) 817 0 R (Item.22) 825 0 R (Item.23) 826 0 R (Item.24) 827 0 R] +/Limits [(Item.2) (Item.24)] >> % 1834 0 obj << -/Names [(Item.63) 1305 0 R (Item.64) 1306 0 R (Item.65) 1307 0 R (Item.66) 1308 0 R (Item.67) 1309 0 R (Item.68) 1310 0 R] -/Limits [(Item.63) (Item.68)] +/Names [(Item.25) 828 0 R (Item.26) 829 0 R (Item.27) 830 0 R (Item.28) 842 0 R (Item.29) 843 0 R (Item.3) 794 0 R] +/Limits [(Item.25) (Item.3)] >> % 1835 0 obj << -/Names [(Item.69) 1311 0 R (Item.7) 793 0 R (Item.70) 1323 0 R (Item.71) 1324 0 R (Item.72) 1325 0 R (Item.73) 1326 0 R] -/Limits [(Item.69) (Item.73)] +/Names [(Item.30) 844 0 R (Item.31) 845 0 R (Item.32) 846 0 R (Item.33) 847 0 R (Item.34) 848 0 R (Item.35) 849 0 R] +/Limits [(Item.30) (Item.35)] >> % 1836 0 obj << -/Names [(Item.74) 1327 0 R (Item.75) 1328 0 R (Item.76) 1342 0 R (Item.77) 1360 0 R (Item.78) 1361 0 R (Item.79) 1388 0 R] -/Limits [(Item.74) (Item.79)] +/Names [(Item.36) 854 0 R (Item.37) 855 0 R (Item.38) 856 0 R (Item.39) 857 0 R (Item.4) 795 0 R (Item.40) 858 0 R] +/Limits [(Item.36) (Item.40)] >> % 1837 0 obj << -/Names [(Item.8) 794 0 R (Item.80) 1389 0 R (Item.81) 1401 0 R (Item.82) 1407 0 R (Item.83) 1413 0 R (Item.84) 1419 0 R] -/Limits [(Item.8) (Item.84)] +/Names [(Item.41) 894 0 R (Item.42) 1170 0 R (Item.43) 1171 0 R (Item.44) 1172 0 R (Item.45) 1226 0 R (Item.46) 1234 0 R] +/Limits [(Item.41) (Item.46)] >> % 1838 0 obj << -/Names [(Item.85) 1425 0 R (Item.86) 1426 0 R (Item.87) 1433 0 R (Item.88) 1434 0 R (Item.89) 1445 0 R (Item.9) 800 0 R] -/Limits [(Item.85) (Item.9)] +/Names [(Item.47) 1239 0 R (Item.48) 1240 0 R (Item.49) 1241 0 R (Item.5) 796 0 R (Item.50) 1242 0 R (Item.51) 1243 0 R] +/Limits [(Item.47) (Item.51)] >> % 1839 0 obj << -/Names [(Item.90) 1446 0 R (Item.91) 1447 0 R (Item.92) 1463 0 R (Item.93) 1464 0 R (Item.94) 1465 0 R (Item.95) 1466 0 R] -/Limits [(Item.90) (Item.95)] +/Names [(Item.52) 1254 0 R (Item.53) 1255 0 R (Item.54) 1256 0 R (Item.55) 1263 0 R (Item.56) 1286 0 R (Item.57) 1287 0 R] +/Limits [(Item.52) (Item.57)] >> % 1840 0 obj << -/Names [(Item.96) 1467 0 R (Item.97) 1468 0 R (Item.98) 1469 0 R (Item.99) 1470 0 R (cite.2007c) 774 0 R (cite.2007d) 775 0 R] -/Limits [(Item.96) (cite.2007d)] +/Names [(Item.58) 1294 0 R (Item.59) 1295 0 R (Item.6) 797 0 R (Item.60) 1296 0 R (Item.61) 1308 0 R (Item.62) 1309 0 R] +/Limits [(Item.58) (Item.62)] >> % 1841 0 obj << -/Names [(cite.BLACS) 747 0 R (cite.BLAS1) 729 0 R (cite.BLAS2) 730 0 R (cite.BLAS3) 731 0 R (cite.DesPat:11) 724 0 R (cite.DesignPatterns) 880 0 R] -/Limits [(cite.BLACS) (cite.DesignPatterns)] +/Names [(Item.63) 1310 0 R (Item.64) 1311 0 R (Item.65) 1312 0 R (Item.66) 1313 0 R (Item.67) 1314 0 R (Item.68) 1315 0 R] +/Limits [(Item.63) (Item.68)] >> % 1842 0 obj << -/Names [(cite.KIVA3PSBLAS) 1749 0 R (cite.METIS) 762 0 R (cite.MPI1) 1756 0 R (cite.PARA04FOREST) 1747 0 R (cite.PSBLAS) 1748 0 R (cite.RouXiaXu:11) 725 0 R] -/Limits [(cite.KIVA3PSBLAS) (cite.RouXiaXu:11)] +/Names [(Item.69) 1316 0 R (Item.7) 798 0 R (Item.70) 1328 0 R (Item.71) 1329 0 R (Item.72) 1330 0 R (Item.73) 1331 0 R] +/Limits [(Item.69) (Item.73)] >> % 1843 0 obj << -/Names [(cite.Sparse03) 723 0 R (cite.machiels) 726 0 R (cite.metcalf) 722 0 R (cite.sblas02) 728 0 R (cite.sblas97) 727 0 R (descdata) 831 0 R] -/Limits [(cite.Sparse03) (descdata)] +/Names [(Item.74) 1332 0 R (Item.75) 1333 0 R (Item.76) 1347 0 R (Item.77) 1365 0 R (Item.78) 1366 0 R (Item.79) 1393 0 R] +/Limits [(Item.74) (Item.79)] >> % 1844 0 obj << -/Names [(equation.4.1) 1072 0 R (equation.4.2) 1073 0 R (equation.4.3) 1074 0 R (figure.1) 741 0 R (figure.10) 1571 0 R (figure.2) 770 0 R] -/Limits [(equation.4.1) (figure.2)] +/Names [(Item.8) 799 0 R (Item.80) 1394 0 R (Item.81) 1406 0 R (Item.82) 1412 0 R (Item.83) 1418 0 R (Item.84) 1424 0 R] +/Limits [(Item.8) (Item.84)] >> % 1845 0 obj << -/Names [(figure.3) 854 0 R (figure.4) 879 0 R (figure.5) 920 0 R (figure.6) 936 0 R (figure.7) 1136 0 R (figure.8) 1168 0 R] -/Limits [(figure.3) (figure.8)] +/Names [(Item.85) 1430 0 R (Item.86) 1431 0 R (Item.87) 1438 0 R (Item.88) 1439 0 R (Item.89) 1450 0 R (Item.9) 805 0 R] +/Limits [(Item.85) (Item.9)] >> % 1846 0 obj << -/Names [(figure.9) 1570 0 R (lstlisting.-1) 1126 0 R (lstlisting.-10) 1636 0 R (lstlisting.-11) 1643 0 R (lstlisting.-12) 1650 0 R (lstlisting.-13) 1657 0 R] -/Limits [(figure.9) (lstlisting.-13)] +/Names [(Item.90) 1451 0 R (Item.91) 1452 0 R (Item.92) 1468 0 R (Item.93) 1469 0 R (Item.94) 1470 0 R (Item.95) 1471 0 R] +/Limits [(Item.90) (Item.95)] >> % 1847 0 obj << -/Names [(lstlisting.-14) 1664 0 R (lstlisting.-15) 1670 0 R (lstlisting.-16) 1721 0 R (lstlisting.-2) 1154 0 R (lstlisting.-3) 1190 0 R (lstlisting.-4) 1204 0 R] -/Limits [(lstlisting.-14) (lstlisting.-4)] +/Names [(Item.96) 1472 0 R (Item.97) 1473 0 R (Item.98) 1474 0 R (Item.99) 1475 0 R (cite.2007c) 779 0 R (cite.2007d) 780 0 R] +/Limits [(Item.96) (cite.2007d)] >> % 1848 0 obj << -/Names [(lstlisting.-5) 1576 0 R (lstlisting.-6) 1606 0 R (lstlisting.-7) 1612 0 R (lstlisting.-8) 1618 0 R (lstlisting.-9) 1624 0 R (lstnumber.-1.1) 1127 0 R] -/Limits [(lstlisting.-5) (lstnumber.-1.1)] +/Names [(cite.BLACS) 752 0 R (cite.BLAS1) 734 0 R (cite.BLAS2) 735 0 R (cite.BLAS3) 736 0 R (cite.DesPat:11) 729 0 R (cite.DesignPatterns) 885 0 R] +/Limits [(cite.BLACS) (cite.DesignPatterns)] >> % 1849 0 obj << -/Names [(lstnumber.-1.2) 1128 0 R (lstnumber.-10.1) 1637 0 R (lstnumber.-11.1) 1644 0 R (lstnumber.-12.1) 1651 0 R (lstnumber.-13.1) 1658 0 R (lstnumber.-14.1) 1665 0 R] -/Limits [(lstnumber.-1.2) (lstnumber.-14.1)] +/Names [(cite.KIVA3PSBLAS) 1756 0 R (cite.METIS) 767 0 R (cite.MPI1) 1763 0 R (cite.PARA04FOREST) 1754 0 R (cite.PSBLAS) 1755 0 R (cite.RouXiaXu:11) 730 0 R] +/Limits [(cite.KIVA3PSBLAS) (cite.RouXiaXu:11)] >> % 1850 0 obj << -/Names [(lstnumber.-15.1) 1671 0 R (lstnumber.-16.1) 1722 0 R (lstnumber.-16.2) 1723 0 R (lstnumber.-2.1) 1155 0 R (lstnumber.-2.2) 1156 0 R (lstnumber.-3.1) 1191 0 R] -/Limits [(lstnumber.-15.1) (lstnumber.-3.1)] +/Names [(cite.Sparse03) 728 0 R (cite.machiels) 731 0 R (cite.metcalf) 727 0 R (cite.sblas02) 733 0 R (cite.sblas97) 732 0 R (descdata) 836 0 R] +/Limits [(cite.Sparse03) (descdata)] >> % 1851 0 obj << -/Names [(lstnumber.-3.2) 1192 0 R (lstnumber.-4.1) 1205 0 R (lstnumber.-5.1) 1577 0 R (lstnumber.-5.10) 1587 0 R (lstnumber.-5.11) 1588 0 R (lstnumber.-5.12) 1589 0 R] -/Limits [(lstnumber.-3.2) (lstnumber.-5.12)] +/Names [(equation.4.1) 1077 0 R (equation.4.2) 1078 0 R (equation.4.3) 1079 0 R (figure.1) 746 0 R (figure.10) 1576 0 R (figure.2) 775 0 R] +/Limits [(equation.4.1) (figure.2)] >> % 1852 0 obj << -/Names [(lstnumber.-5.13) 1590 0 R (lstnumber.-5.14) 1591 0 R (lstnumber.-5.15) 1592 0 R (lstnumber.-5.16) 1593 0 R (lstnumber.-5.17) 1594 0 R (lstnumber.-5.18) 1595 0 R] -/Limits [(lstnumber.-5.13) (lstnumber.-5.18)] +/Names [(figure.3) 859 0 R (figure.4) 884 0 R (figure.5) 925 0 R (figure.6) 941 0 R (figure.7) 1141 0 R (figure.8) 1173 0 R] +/Limits [(figure.3) (figure.8)] >> % 1853 0 obj << -/Names [(lstnumber.-5.19) 1596 0 R (lstnumber.-5.2) 1579 0 R (lstnumber.-5.20) 1597 0 R (lstnumber.-5.21) 1598 0 R (lstnumber.-5.22) 1599 0 R (lstnumber.-5.23) 1600 0 R] -/Limits [(lstnumber.-5.19) (lstnumber.-5.23)] +/Names [(figure.9) 1575 0 R (lstlisting.-1) 1131 0 R (lstlisting.-10) 1641 0 R (lstlisting.-11) 1648 0 R (lstlisting.-12) 1655 0 R (lstlisting.-13) 1662 0 R] +/Limits [(figure.9) (lstlisting.-13)] >> % 1854 0 obj << -/Names [(lstnumber.-5.24) 1601 0 R (lstnumber.-5.3) 1580 0 R (lstnumber.-5.4) 1581 0 R (lstnumber.-5.5) 1582 0 R (lstnumber.-5.6) 1583 0 R (lstnumber.-5.7) 1584 0 R] -/Limits [(lstnumber.-5.24) (lstnumber.-5.7)] +/Names [(lstlisting.-14) 1669 0 R (lstlisting.-15) 1675 0 R (lstlisting.-16) 1732 0 R (lstlisting.-2) 1159 0 R (lstlisting.-3) 1195 0 R (lstlisting.-4) 1209 0 R] +/Limits [(lstlisting.-14) (lstlisting.-4)] >> % 1855 0 obj << -/Names [(lstnumber.-5.8) 1585 0 R (lstnumber.-5.9) 1586 0 R (lstnumber.-6.1) 1607 0 R (lstnumber.-7.1) 1613 0 R (lstnumber.-8.1) 1619 0 R (lstnumber.-9.1) 1625 0 R] -/Limits [(lstnumber.-5.8) (lstnumber.-9.1)] +/Names [(lstlisting.-5) 1581 0 R (lstlisting.-6) 1611 0 R (lstlisting.-7) 1617 0 R (lstlisting.-8) 1623 0 R (lstlisting.-9) 1629 0 R (lstnumber.-1.1) 1132 0 R] +/Limits [(lstlisting.-5) (lstnumber.-1.1)] >> % 1856 0 obj << -/Names [(page.1) 544 0 R (page.10) 836 0 R (page.100) 1486 0 R (page.101) 1492 0 R (page.102) 1499 0 R (page.103) 1503 0 R] -/Limits [(page.1) (page.103)] +/Names [(lstnumber.-1.2) 1133 0 R (lstnumber.-10.1) 1642 0 R (lstnumber.-11.1) 1649 0 R (lstnumber.-12.1) 1656 0 R (lstnumber.-13.1) 1663 0 R (lstnumber.-14.1) 1670 0 R] +/Limits [(lstnumber.-1.2) (lstnumber.-14.1)] >> % 1857 0 obj << -/Names [(page.104) 1508 0 R (page.105) 1512 0 R (page.106) 1516 0 R (page.107) 1520 0 R (page.108) 1524 0 R (page.109) 1530 0 R] -/Limits [(page.104) (page.109)] +/Names [(lstnumber.-15.1) 1676 0 R (lstnumber.-16.1) 1733 0 R (lstnumber.-16.2) 1734 0 R (lstnumber.-2.1) 1160 0 R (lstnumber.-2.2) 1161 0 R (lstnumber.-3.1) 1196 0 R] +/Limits [(lstnumber.-15.1) (lstnumber.-3.1)] >> % 1858 0 obj << -/Names [(page.11) 848 0 R (page.110) 1537 0 R (page.111) 1543 0 R (page.112) 1550 0 R (page.113) 1556 0 R (page.114) 1561 0 R] -/Limits [(page.11) (page.114)] +/Names [(lstnumber.-3.2) 1197 0 R (lstnumber.-4.1) 1210 0 R (lstnumber.-5.1) 1582 0 R (lstnumber.-5.10) 1592 0 R (lstnumber.-5.11) 1593 0 R (lstnumber.-5.12) 1594 0 R] +/Limits [(lstnumber.-3.2) (lstnumber.-5.12)] >> % 1859 0 obj << -/Names [(page.115) 1568 0 R (page.116) 1575 0 R (page.117) 1605 0 R (page.118) 1611 0 R (page.119) 1617 0 R (page.12) 860 0 R] -/Limits [(page.115) (page.12)] +/Names [(lstnumber.-5.13) 1595 0 R (lstnumber.-5.14) 1596 0 R (lstnumber.-5.15) 1597 0 R (lstnumber.-5.16) 1598 0 R (lstnumber.-5.17) 1599 0 R (lstnumber.-5.18) 1600 0 R] +/Limits [(lstnumber.-5.13) (lstnumber.-5.18)] >> % 1860 0 obj << -/Names [(page.120) 1623 0 R (page.121) 1629 0 R (page.122) 1635 0 R (page.123) 1642 0 R (page.124) 1649 0 R (page.125) 1656 0 R] -/Limits [(page.120) (page.125)] +/Names [(lstnumber.-5.19) 1601 0 R (lstnumber.-5.2) 1584 0 R (lstnumber.-5.20) 1602 0 R (lstnumber.-5.21) 1603 0 R (lstnumber.-5.22) 1604 0 R (lstnumber.-5.23) 1605 0 R] +/Limits [(lstnumber.-5.19) (lstnumber.-5.23)] >> % 1861 0 obj << -/Names [(page.126) 1663 0 R (page.127) 1669 0 R (page.128) 1676 0 R (page.129) 1682 0 R (page.13) 864 0 R (page.130) 1691 0 R] -/Limits [(page.126) (page.130)] +/Names [(lstnumber.-5.24) 1606 0 R (lstnumber.-5.3) 1585 0 R (lstnumber.-5.4) 1586 0 R (lstnumber.-5.5) 1587 0 R (lstnumber.-5.6) 1588 0 R (lstnumber.-5.7) 1589 0 R] +/Limits [(lstnumber.-5.24) (lstnumber.-5.7)] >> % 1862 0 obj << -/Names [(page.131) 1699 0 R (page.132) 1704 0 R (page.133) 1708 0 R (page.134) 1713 0 R (page.135) 1720 0 R (page.136) 1732 0 R] -/Limits [(page.131) (page.136)] +/Names [(lstnumber.-5.8) 1590 0 R (lstnumber.-5.9) 1591 0 R (lstnumber.-6.1) 1612 0 R (lstnumber.-7.1) 1618 0 R (lstnumber.-8.1) 1624 0 R (lstnumber.-9.1) 1630 0 R] +/Limits [(lstnumber.-5.8) (lstnumber.-9.1)] >> % 1863 0 obj << -/Names [(page.137) 1737 0 R (page.138) 1741 0 R (page.139) 1745 0 R (page.14) 869 0 R (page.140) 1755 0 R (page.15) 876 0 R] -/Limits [(page.137) (page.15)] +/Names [(page.1) 548 0 R (page.10) 841 0 R (page.100) 1491 0 R (page.101) 1497 0 R (page.102) 1504 0 R (page.103) 1508 0 R] +/Limits [(page.1) (page.103)] >> % 1864 0 obj << -/Names [(page.16) 884 0 R (page.17) 888 0 R (page.18) 893 0 R (page.19) 897 0 R (page.2) 554 0 R (page.20) 902 0 R] -/Limits [(page.16) (page.20)] +/Names [(page.104) 1513 0 R (page.105) 1517 0 R (page.106) 1521 0 R (page.107) 1525 0 R (page.108) 1529 0 R (page.109) 1535 0 R] +/Limits [(page.104) (page.109)] >> % 1865 0 obj << -/Names [(page.21) 907 0 R (page.22) 912 0 R (page.23) 917 0 R (page.24) 926 0 R (page.25) 933 0 R (page.26) 941 0 R] -/Limits [(page.21) (page.26)] +/Names [(page.11) 853 0 R (page.110) 1542 0 R (page.111) 1548 0 R (page.112) 1555 0 R (page.113) 1561 0 R (page.114) 1566 0 R] +/Limits [(page.11) (page.114)] >> % 1866 0 obj << -/Names [(page.27) 945 0 R (page.28) 956 0 R (page.29) 962 0 R (page.3) 753 0 R (page.30) 972 0 R (page.31) 977 0 R] -/Limits [(page.27) (page.31)] +/Names [(page.115) 1573 0 R (page.116) 1580 0 R (page.117) 1610 0 R (page.118) 1616 0 R (page.119) 1622 0 R (page.12) 865 0 R] +/Limits [(page.115) (page.12)] >> % 1867 0 obj << -/Names [(page.32) 988 0 R (page.33) 993 0 R (page.34) 1000 0 R (page.35) 1009 0 R (page.36) 1017 0 R (page.37) 1025 0 R] -/Limits [(page.32) (page.37)] +/Names [(page.120) 1628 0 R (page.121) 1634 0 R (page.122) 1640 0 R (page.123) 1647 0 R (page.124) 1654 0 R (page.125) 1661 0 R] +/Limits [(page.120) (page.125)] >> % 1868 0 obj << -/Names [(page.38) 1031 0 R (page.39) 1038 0 R (page.4) 769 0 R (page.40) 1046 0 R (page.41) 1053 0 R (page.42) 1060 0 R] -/Limits [(page.38) (page.42)] +/Names [(page.126) 1668 0 R (page.127) 1674 0 R (page.128) 1681 0 R (page.129) 1687 0 R (page.13) 869 0 R (page.130) 1696 0 R] +/Limits [(page.126) (page.130)] >> % 1869 0 obj << -/Names [(page.43) 1071 0 R (page.44) 1087 0 R (page.45) 1093 0 R (page.46) 1104 0 R (page.47) 1110 0 R (page.48) 1116 0 R] -/Limits [(page.43) (page.48)] +/Names [(page.131) 1704 0 R (page.132) 1709 0 R (page.133) 1713 0 R (page.134) 1720 0 R (page.135) 1724 0 R (page.136) 1731 0 R] +/Limits [(page.131) (page.136)] >> % 1870 0 obj << -/Names [(page.49) 1124 0 R (page.5) 781 0 R (page.50) 1135 0 R (page.51) 1144 0 R (page.52) 1152 0 R (page.53) 1164 0 R] -/Limits [(page.49) (page.53)] +/Names [(page.137) 1743 0 R (page.138) 1748 0 R (page.139) 1752 0 R (page.14) 874 0 R (page.140) 1762 0 R (page.15) 881 0 R] +/Limits [(page.137) (page.15)] >> % 1871 0 obj << -/Names [(page.54) 1172 0 R (page.55) 1176 0 R (page.56) 1188 0 R (page.57) 1196 0 R (page.58) 1202 0 R (page.59) 1211 0 R] -/Limits [(page.54) (page.59)] +/Names [(page.16) 889 0 R (page.17) 893 0 R (page.18) 898 0 R (page.19) 902 0 R (page.2) 558 0 R (page.20) 907 0 R] +/Limits [(page.16) (page.20)] >> % 1872 0 obj << -/Names [(page.6) 785 0 R (page.60) 1215 0 R (page.61) 1220 0 R (page.62) 1228 0 R (page.63) 1233 0 R (page.64) 1243 0 R] -/Limits [(page.6) (page.64)] +/Names [(page.21) 912 0 R (page.22) 917 0 R (page.23) 922 0 R (page.24) 931 0 R (page.25) 938 0 R (page.26) 946 0 R] +/Limits [(page.21) (page.26)] >> % 1873 0 obj << -/Names [(page.65) 1248 0 R (page.66) 1257 0 R (page.67) 1264 0 R (page.68) 1270 0 R (page.69) 1276 0 R (page.7) 799 0 R] -/Limits [(page.65) (page.7)] +/Names [(page.27) 950 0 R (page.28) 961 0 R (page.29) 967 0 R (page.3) 758 0 R (page.30) 977 0 R (page.31) 982 0 R] +/Limits [(page.27) (page.31)] >> % 1874 0 obj << -/Names [(page.70) 1280 0 R (page.71) 1288 0 R (page.72) 1298 0 R (page.73) 1302 0 R (page.74) 1318 0 R (page.75) 1322 0 R] -/Limits [(page.70) (page.75)] +/Names [(page.32) 993 0 R (page.33) 998 0 R (page.34) 1005 0 R (page.35) 1014 0 R (page.36) 1022 0 R (page.37) 1030 0 R] +/Limits [(page.32) (page.37)] >> % 1875 0 obj << -/Names [(page.76) 1334 0 R (page.77) 1341 0 R (page.78) 1348 0 R (page.79) 1354 0 R (page.8) 818 0 R (page.80) 1359 0 R] -/Limits [(page.76) (page.80)] +/Names [(page.38) 1036 0 R (page.39) 1043 0 R (page.4) 774 0 R (page.40) 1051 0 R (page.41) 1058 0 R (page.42) 1065 0 R] +/Limits [(page.38) (page.42)] >> % 1876 0 obj << -/Names [(page.81) 1368 0 R (page.82) 1374 0 R (page.83) 1378 0 R (page.84) 1383 0 R (page.85) 1387 0 R (page.86) 1395 0 R] -/Limits [(page.81) (page.86)] +/Names [(page.43) 1076 0 R (page.44) 1092 0 R (page.45) 1098 0 R (page.46) 1109 0 R (page.47) 1116 0 R (page.48) 1121 0 R] +/Limits [(page.43) (page.48)] >> % 1877 0 obj << -/Names [(page.87) 1400 0 R (page.88) 1406 0 R (page.89) 1412 0 R (page.9) 830 0 R (page.90) 1418 0 R (page.91) 1424 0 R] -/Limits [(page.87) (page.91)] +/Names [(page.49) 1129 0 R (page.5) 786 0 R (page.50) 1140 0 R (page.51) 1149 0 R (page.52) 1157 0 R (page.53) 1169 0 R] +/Limits [(page.49) (page.53)] >> % 1878 0 obj << -/Names [(page.92) 1432 0 R (page.93) 1439 0 R (page.94) 1444 0 R (page.95) 1454 0 R (page.96) 1458 0 R (page.97) 1462 0 R] -/Limits [(page.92) (page.97)] +/Names [(page.54) 1177 0 R (page.55) 1181 0 R (page.56) 1193 0 R (page.57) 1201 0 R (page.58) 1207 0 R (page.59) 1216 0 R] +/Limits [(page.54) (page.59)] >> % 1879 0 obj << -/Names [(page.98) 1476 0 R (page.99) 1480 0 R (page.i) 605 0 R (page.ii) 658 0 R (page.iii) 701 0 R (page.iv) 706 0 R] -/Limits [(page.98) (page.iv)] +/Names [(page.6) 790 0 R (page.60) 1220 0 R (page.61) 1225 0 R (page.62) 1233 0 R (page.63) 1238 0 R (page.64) 1248 0 R] +/Limits [(page.6) (page.64)] >> % 1880 0 obj << -/Names [(precdata) 934 0 R (section*.1) 606 0 R (section*.10) 79 0 R (section*.100) 497 0 R (section*.101) 501 0 R (section*.102) 505 0 R] -/Limits [(precdata) (section*.102)] +/Names [(page.65) 1253 0 R (page.66) 1262 0 R (page.67) 1269 0 R (page.68) 1275 0 R (page.69) 1281 0 R (page.7) 804 0 R] +/Limits [(page.65) (page.7)] >> % 1881 0 obj << -/Names [(section*.103) 513 0 R (section*.104) 517 0 R (section*.105) 521 0 R (section*.106) 525 0 R (section*.107) 529 0 R (section*.108) 537 0 R] -/Limits [(section*.103) (section*.108)] +/Names [(page.70) 1285 0 R (page.71) 1293 0 R (page.72) 1303 0 R (page.73) 1307 0 R (page.74) 1323 0 R (page.75) 1327 0 R] +/Limits [(page.70) (page.75)] >> % 1882 0 obj << -/Names [(section*.109) 1746 0 R (section*.11) 95 0 R (section*.12) 99 0 R (section*.13) 103 0 R (section*.14) 107 0 R (section*.15) 111 0 R] -/Limits [(section*.109) (section*.15)] +/Names [(page.76) 1340 0 R (page.77) 1346 0 R (page.78) 1353 0 R (page.79) 1359 0 R (page.8) 824 0 R (page.80) 1364 0 R] +/Limits [(page.76) (page.80)] >> % 1883 0 obj << -/Names [(section*.16) 115 0 R (section*.17) 119 0 R (section*.18) 123 0 R (section*.19) 127 0 R (section*.2) 47 0 R (section*.20) 131 0 R] -/Limits [(section*.16) (section*.20)] +/Names [(page.81) 1373 0 R (page.82) 1379 0 R (page.83) 1383 0 R (page.84) 1388 0 R (page.85) 1392 0 R (page.86) 1400 0 R] +/Limits [(page.81) (page.86)] >> % 1884 0 obj << -/Names [(section*.21) 135 0 R (section*.22) 139 0 R (section*.23) 143 0 R (section*.24) 147 0 R (section*.25) 151 0 R (section*.26) 155 0 R] -/Limits [(section*.21) (section*.26)] +/Names [(page.87) 1405 0 R (page.88) 1411 0 R (page.89) 1417 0 R (page.9) 835 0 R (page.90) 1423 0 R (page.91) 1429 0 R] +/Limits [(page.87) (page.91)] >> % 1885 0 obj << -/Names [(section*.27) 159 0 R (section*.28) 175 0 R (section*.29) 179 0 R (section*.3) 51 0 R (section*.30) 183 0 R (section*.31) 187 0 R] -/Limits [(section*.27) (section*.31)] +/Names [(page.92) 1437 0 R (page.93) 1445 0 R (page.94) 1449 0 R (page.95) 1459 0 R (page.96) 1463 0 R (page.97) 1467 0 R] +/Limits [(page.92) (page.97)] >> % 1886 0 obj << -/Names [(section*.32) 191 0 R (section*.33) 208 0 R (section*.34) 212 0 R (section*.35) 216 0 R (section*.36) 220 0 R (section*.37) 224 0 R] -/Limits [(section*.32) (section*.37)] +/Names [(page.98) 1481 0 R (page.99) 1485 0 R (page.i) 609 0 R (page.ii) 662 0 R (page.iii) 706 0 R (page.iv) 711 0 R] +/Limits [(page.98) (page.iv)] >> endstream endobj -1929 0 obj +1936 0 obj << - /Title (Parallel Sparse BLAS V. 3.4.1) /Subject (Parallel Sparse Basic Linear Algebra Subroutines) /Keywords (Computer Science Linear Algebra Fluid Dynamics Parallel Linux MPI PSBLAS Iterative Solvers Preconditioners) /Creator (pdfLaTeX) /Producer ($Id: userguide.tex 9755 2016-05-25 10:15:57Z sfilippo $) /Author()/Title()/Subject()/Creator(LaTeX with hyperref package)/Producer(pdfTeX-1.40.17)/Keywords() -/CreationDate (D:20170212172544Z) -/ModDate (D:20170212172544Z) + /Title (Parallel Sparse BLAS V. 3.5.0) /Subject (Parallel Sparse Basic Linear Algebra Subroutines) /Keywords (Computer Science Linear Algebra Fluid Dynamics Parallel Linux MPI PSBLAS Iterative Solvers Preconditioners) /Creator (pdfLaTeX) /Producer ($Id: userguide.tex 10516 2017-04-07 15:20:39Z sfilippo $) /Author()/Title()/Subject()/Creator(LaTeX with hyperref package)/Producer(pdfTeX-1.40.17)/Keywords() +/CreationDate (D:20170408102502+01'00') +/ModDate (D:20170408102502+01'00') /Trapped /False /PTEX.Fullbanner (This is pdfTeX, Version 3.14159265-2.6-1.40.17 (TeX Live 2016) kpathsea version 6.2.2) >> @@ -26952,377 +26976,312 @@ endobj 1888 0 obj << /Type /ObjStm -/N 41 -/First 402 -/Length 6567 +/N 48 +/First 472 +/Length 8052 >> stream -1887 0 1889 196 1890 394 1891 590 1892 788 1893 983 1894 1178 1895 1376 1896 1572 1897 1770 -1898 1966 1899 2164 1900 2351 1901 2532 1902 2729 1903 2948 1904 3206 1905 3383 1906 3557 1907 3726 -1908 3820 1909 3933 1910 4043 1911 4154 1912 4266 1913 4390 1914 4516 1915 4627 1916 4739 1917 4849 -1918 4960 1919 5076 1920 5195 1921 5314 1922 5430 1923 5513 1924 5633 1925 5747 1926 5833 1927 5917 -1928 5952 +1887 0 1889 194 1890 400 1891 600 1892 795 1893 993 1894 1189 1895 1387 1896 1583 1897 1781 +1898 1977 1899 2175 1900 2371 1901 2569 1902 2764 1903 2959 1904 3157 1905 3353 1906 3551 1907 3742 +1908 3922 1909 4115 1910 4333 1911 4581 1912 4780 1913 4955 1914 5127 1915 5235 1916 5348 1917 5458 +1918 5569 1919 5681 1920 5805 1921 5931 1922 6042 1923 6154 1924 6264 1925 6375 1926 6491 1927 6610 +1928 6729 1929 6845 1930 6928 1931 7048 1932 7162 1933 7248 1934 7332 1935 7367 % 1887 0 obj << -/Names [(section*.38) 228 0 R (section*.39) 232 0 R (section*.4) 55 0 R (section*.40) 236 0 R (section*.41) 240 0 R (section*.42) 244 0 R] -/Limits [(section*.38) (section*.42)] +/Names [(precdata) 939 0 R (section*.1) 610 0 R (section*.10) 79 0 R (section*.100) 497 0 R (section*.101) 501 0 R (section*.102) 505 0 R] +/Limits [(precdata) (section*.102)] >> % 1889 0 obj << -/Names [(section*.43) 248 0 R (section*.44) 252 0 R (section*.45) 256 0 R (section*.46) 264 0 R (section*.47) 268 0 R (section*.48) 272 0 R] -/Limits [(section*.43) (section*.48)] +/Names [(section*.103) 513 0 R (section*.104) 517 0 R (section*.105) 521 0 R (section*.106) 525 0 R (section*.107) 529 0 R (section*.108) 533 0 R] +/Limits [(section*.103) (section*.108)] >> % 1890 0 obj << -/Names [(section*.49) 276 0 R (section*.5) 59 0 R (section*.50) 284 0 R (section*.51) 288 0 R (section*.52) 292 0 R (section*.53) 296 0 R] -/Limits [(section*.49) (section*.53)] +/Names [(section*.109) 541 0 R (section*.11) 95 0 R (section*.110) 1753 0 R (section*.12) 99 0 R (section*.13) 103 0 R (section*.14) 107 0 R] +/Limits [(section*.109) (section*.14)] >> % 1891 0 obj << -/Names [(section*.54) 300 0 R (section*.55) 304 0 R (section*.56) 308 0 R (section*.57) 312 0 R (section*.58) 316 0 R (section*.59) 320 0 R] -/Limits [(section*.54) (section*.59)] +/Names [(section*.15) 111 0 R (section*.16) 115 0 R (section*.17) 119 0 R (section*.18) 123 0 R (section*.19) 127 0 R (section*.2) 47 0 R] +/Limits [(section*.15) (section*.2)] >> % 1892 0 obj << -/Names [(section*.6) 63 0 R (section*.60) 324 0 R (section*.61) 328 0 R (section*.62) 332 0 R (section*.63) 336 0 R (section*.64) 340 0 R] -/Limits [(section*.6) (section*.64)] +/Names [(section*.20) 131 0 R (section*.21) 135 0 R (section*.22) 139 0 R (section*.23) 143 0 R (section*.24) 147 0 R (section*.25) 151 0 R] +/Limits [(section*.20) (section*.25)] >> % 1893 0 obj << -/Names [(section*.65) 344 0 R (section*.66) 348 0 R (section*.67) 352 0 R (section*.68) 356 0 R (section*.69) 360 0 R (section*.7) 67 0 R] -/Limits [(section*.65) (section*.7)] +/Names [(section*.26) 155 0 R (section*.27) 159 0 R (section*.28) 175 0 R (section*.29) 179 0 R (section*.3) 51 0 R (section*.30) 183 0 R] +/Limits [(section*.26) (section*.30)] >> % 1894 0 obj << -/Names [(section*.70) 364 0 R (section*.71) 368 0 R (section*.72) 372 0 R (section*.73) 376 0 R (section*.74) 380 0 R (section*.75) 384 0 R] -/Limits [(section*.70) (section*.75)] +/Names [(section*.31) 187 0 R (section*.32) 191 0 R (section*.33) 208 0 R (section*.34) 212 0 R (section*.35) 216 0 R (section*.36) 220 0 R] +/Limits [(section*.31) (section*.36)] >> % 1895 0 obj << -/Names [(section*.76) 388 0 R (section*.77) 396 0 R (section*.78) 400 0 R (section*.79) 405 0 R (section*.8) 71 0 R (section*.80) 409 0 R] -/Limits [(section*.76) (section*.80)] +/Names [(section*.37) 224 0 R (section*.38) 228 0 R (section*.39) 232 0 R (section*.4) 55 0 R (section*.40) 236 0 R (section*.41) 240 0 R] +/Limits [(section*.37) (section*.41)] >> % 1896 0 obj << -/Names [(section*.81) 413 0 R (section*.82) 417 0 R (section*.83) 421 0 R (section*.84) 425 0 R (section*.85) 429 0 R (section*.86) 433 0 R] -/Limits [(section*.81) (section*.86)] +/Names [(section*.42) 244 0 R (section*.43) 248 0 R (section*.44) 252 0 R (section*.45) 256 0 R (section*.46) 264 0 R (section*.47) 268 0 R] +/Limits [(section*.42) (section*.47)] >> % 1897 0 obj << -/Names [(section*.87) 437 0 R (section*.88) 441 0 R (section*.89) 445 0 R (section*.9) 75 0 R (section*.90) 449 0 R (section*.91) 453 0 R] -/Limits [(section*.87) (section*.91)] +/Names [(section*.48) 272 0 R (section*.49) 276 0 R (section*.5) 59 0 R (section*.50) 284 0 R (section*.51) 288 0 R (section*.52) 292 0 R] +/Limits [(section*.48) (section*.52)] >> % 1898 0 obj << -/Names [(section*.92) 457 0 R (section*.93) 465 0 R (section*.94) 469 0 R (section*.95) 473 0 R (section*.96) 477 0 R (section*.97) 485 0 R] -/Limits [(section*.92) (section*.97)] +/Names [(section*.53) 296 0 R (section*.54) 300 0 R (section*.55) 304 0 R (section*.56) 308 0 R (section*.57) 312 0 R (section*.58) 316 0 R] +/Limits [(section*.53) (section*.58)] >> % 1899 0 obj << -/Names [(section*.98) 489 0 R (section*.99) 493 0 R (section.1) 7 0 R (section.10) 509 0 R (section.11) 533 0 R (section.2) 11 0 R] -/Limits [(section*.98) (section.2)] +/Names [(section*.59) 320 0 R (section*.6) 63 0 R (section*.60) 324 0 R (section*.61) 328 0 R (section*.62) 332 0 R (section*.63) 336 0 R] +/Limits [(section*.59) (section*.63)] >> % 1900 0 obj << -/Names [(section.3) 35 0 R (section.4) 204 0 R (section.5) 260 0 R (section.6) 280 0 R (section.7) 392 0 R (section.8) 461 0 R] -/Limits [(section.3) (section.8)] +/Names [(section*.64) 340 0 R (section*.65) 344 0 R (section*.66) 348 0 R (section*.67) 352 0 R (section*.68) 356 0 R (section*.69) 360 0 R] +/Limits [(section*.64) (section*.69)] >> % 1901 0 obj << -/Names [(section.9) 481 0 R (spbasedata) 878 0 R (spdata) 877 0 R (subsection.2.1) 15 0 R (subsection.2.2) 19 0 R (subsection.2.3) 23 0 R] -/Limits [(section.9) (subsection.2.3)] +/Names [(section*.7) 67 0 R (section*.70) 364 0 R (section*.71) 368 0 R (section*.72) 372 0 R (section*.73) 376 0 R (section*.74) 380 0 R] +/Limits [(section*.7) (section*.74)] >> % 1902 0 obj << -/Names [(subsection.2.4) 31 0 R (subsection.3.1) 39 0 R (subsection.3.2) 87 0 R (subsection.3.3) 167 0 R (subsection.3.4) 195 0 R (subsection.3.5) 199 0 R] -/Limits [(subsection.2.4) (subsection.3.5)] +/Names [(section*.75) 384 0 R (section*.76) 388 0 R (section*.77) 396 0 R (section*.78) 400 0 R (section*.79) 405 0 R (section*.8) 71 0 R] +/Limits [(section*.75) (section*.8)] >> % 1903 0 obj << -/Names [(subsubsection.2.3.1) 27 0 R (subsubsection.3.1.1) 43 0 R (subsubsection.3.1.2) 83 0 R (subsubsection.3.2.1) 91 0 R (subsubsection.3.2.2) 163 0 R (subsubsection.3.3.1) 171 0 R] -/Limits [(subsubsection.2.3.1) (subsubsection.3.3.1)] +/Names [(section*.80) 409 0 R (section*.81) 413 0 R (section*.82) 417 0 R (section*.83) 421 0 R (section*.84) 425 0 R (section*.85) 429 0 R] +/Limits [(section*.80) (section*.85)] >> % 1904 0 obj << -/Names [(table.1) 927 0 R (table.10) 1054 0 R (table.11) 1062 0 R (table.12) 1075 0 R (table.13) 1094 0 R (table.14) 1125 0 R] -/Limits [(table.1) (table.14)] +/Names [(section*.86) 433 0 R (section*.87) 437 0 R (section*.88) 441 0 R (section*.89) 445 0 R (section*.9) 75 0 R (section*.90) 449 0 R] +/Limits [(section*.86) (section*.90)] >> % 1905 0 obj << -/Names [(table.15) 1153 0 R (table.16) 1189 0 R (table.17) 1203 0 R (table.2) 973 0 R (table.3) 989 0 R (table.4) 1001 0 R] -/Limits [(table.15) (table.4)] +/Names [(section*.91) 453 0 R (section*.92) 457 0 R (section*.93) 465 0 R (section*.94) 469 0 R (section*.95) 473 0 R (section*.96) 477 0 R] +/Limits [(section*.91) (section*.96)] >> % 1906 0 obj << -/Names [(table.5) 1010 0 R (table.6) 1018 0 R (table.7) 1026 0 R (table.8) 1039 0 R (table.9) 1047 0 R (title.0) 3 0 R] -/Limits [(table.5) (title.0)] +/Names [(section*.97) 485 0 R (section*.98) 489 0 R (section*.99) 493 0 R (section.1) 7 0 R (section.10) 509 0 R (section.11) 537 0 R] +/Limits [(section*.97) (section.11)] >> % 1907 0 obj << -/Names [(vbasedata) 919 0 R (vdata) 918 0 R] -/Limits [(vbasedata) (vdata)] +/Names [(section.2) 11 0 R (section.3) 35 0 R (section.4) 204 0 R (section.5) 260 0 R (section.6) 280 0 R (section.7) 392 0 R] +/Limits [(section.2) (section.7)] >> % 1908 0 obj << -/Kids [1820 0 R 1821 0 R 1822 0 R 1823 0 R 1824 0 R 1825 0 R] -/Limits [(Doc-Start) (Item.19)] +/Names [(section.8) 461 0 R (section.9) 481 0 R (spbasedata) 883 0 R (spdata) 882 0 R (subsection.2.1) 15 0 R (subsection.2.2) 19 0 R] +/Limits [(section.8) (subsection.2.2)] >> % 1909 0 obj << -/Kids [1826 0 R 1827 0 R 1828 0 R 1829 0 R 1830 0 R 1831 0 R] -/Limits [(Item.2) (Item.51)] +/Names [(subsection.2.3) 23 0 R (subsection.2.4) 31 0 R (subsection.3.1) 39 0 R (subsection.3.2) 87 0 R (subsection.3.3) 167 0 R (subsection.3.4) 195 0 R] +/Limits [(subsection.2.3) (subsection.3.4)] >> % 1910 0 obj << -/Kids [1832 0 R 1833 0 R 1834 0 R 1835 0 R 1836 0 R 1837 0 R] -/Limits [(Item.52) (Item.84)] +/Names [(subsection.3.5) 199 0 R (subsubsection.2.3.1) 27 0 R (subsubsection.3.1.1) 43 0 R (subsubsection.3.1.2) 83 0 R (subsubsection.3.2.1) 91 0 R (subsubsection.3.2.2) 163 0 R] +/Limits [(subsection.3.5) (subsubsection.3.2.2)] >> % 1911 0 obj << -/Kids [1838 0 R 1839 0 R 1840 0 R 1841 0 R 1842 0 R 1843 0 R] -/Limits [(Item.85) (descdata)] +/Names [(subsubsection.3.3.1) 171 0 R (table.1) 932 0 R (table.10) 1059 0 R (table.11) 1067 0 R (table.12) 1080 0 R (table.13) 1099 0 R] +/Limits [(subsubsection.3.3.1) (table.13)] >> % 1912 0 obj << -/Kids [1844 0 R 1845 0 R 1846 0 R 1847 0 R 1848 0 R 1849 0 R] -/Limits [(equation.4.1) (lstnumber.-14.1)] +/Names [(table.14) 1130 0 R (table.15) 1158 0 R (table.16) 1194 0 R (table.17) 1208 0 R (table.2) 978 0 R (table.3) 994 0 R] +/Limits [(table.14) (table.3)] >> % 1913 0 obj << -/Kids [1850 0 R 1851 0 R 1852 0 R 1853 0 R 1854 0 R 1855 0 R] -/Limits [(lstnumber.-15.1) (lstnumber.-9.1)] +/Names [(table.4) 1006 0 R (table.5) 1015 0 R (table.6) 1023 0 R (table.7) 1031 0 R (table.8) 1044 0 R (table.9) 1052 0 R] +/Limits [(table.4) (table.9)] >> % 1914 0 obj << -/Kids [1856 0 R 1857 0 R 1858 0 R 1859 0 R 1860 0 R 1861 0 R] -/Limits [(page.1) (page.130)] +/Names [(title.0) 3 0 R (vbasedata) 924 0 R (vdata) 923 0 R] +/Limits [(title.0) (vdata)] >> % 1915 0 obj << -/Kids [1862 0 R 1863 0 R 1864 0 R 1865 0 R 1866 0 R 1867 0 R] -/Limits [(page.131) (page.37)] +/Kids [1827 0 R 1828 0 R 1829 0 R 1830 0 R 1831 0 R 1832 0 R] +/Limits [(Doc-Start) (Item.19)] >> % 1916 0 obj << -/Kids [1868 0 R 1869 0 R 1870 0 R 1871 0 R 1872 0 R 1873 0 R] -/Limits [(page.38) (page.7)] +/Kids [1833 0 R 1834 0 R 1835 0 R 1836 0 R 1837 0 R 1838 0 R] +/Limits [(Item.2) (Item.51)] >> % 1917 0 obj << -/Kids [1874 0 R 1875 0 R 1876 0 R 1877 0 R 1878 0 R 1879 0 R] -/Limits [(page.70) (page.iv)] +/Kids [1839 0 R 1840 0 R 1841 0 R 1842 0 R 1843 0 R 1844 0 R] +/Limits [(Item.52) (Item.84)] >> % 1918 0 obj << -/Kids [1880 0 R 1881 0 R 1882 0 R 1883 0 R 1884 0 R 1885 0 R] -/Limits [(precdata) (section*.31)] +/Kids [1845 0 R 1846 0 R 1847 0 R 1848 0 R 1849 0 R 1850 0 R] +/Limits [(Item.85) (descdata)] >> % 1919 0 obj << -/Kids [1886 0 R 1887 0 R 1889 0 R 1890 0 R 1891 0 R 1892 0 R] -/Limits [(section*.32) (section*.64)] +/Kids [1851 0 R 1852 0 R 1853 0 R 1854 0 R 1855 0 R 1856 0 R] +/Limits [(equation.4.1) (lstnumber.-14.1)] >> % 1920 0 obj << -/Kids [1893 0 R 1894 0 R 1895 0 R 1896 0 R 1897 0 R 1898 0 R] -/Limits [(section*.65) (section*.97)] +/Kids [1857 0 R 1858 0 R 1859 0 R 1860 0 R 1861 0 R 1862 0 R] +/Limits [(lstnumber.-15.1) (lstnumber.-9.1)] >> % 1921 0 obj << -/Kids [1899 0 R 1900 0 R 1901 0 R 1902 0 R 1903 0 R 1904 0 R] -/Limits [(section*.98) (table.14)] +/Kids [1863 0 R 1864 0 R 1865 0 R 1866 0 R 1867 0 R 1868 0 R] +/Limits [(page.1) (page.130)] >> % 1922 0 obj << -/Kids [1905 0 R 1906 0 R 1907 0 R] -/Limits [(table.15) (vdata)] +/Kids [1869 0 R 1870 0 R 1871 0 R 1872 0 R 1873 0 R 1874 0 R] +/Limits [(page.131) (page.37)] >> % 1923 0 obj << -/Kids [1908 0 R 1909 0 R 1910 0 R 1911 0 R 1912 0 R 1913 0 R] -/Limits [(Doc-Start) (lstnumber.-9.1)] +/Kids [1875 0 R 1876 0 R 1877 0 R 1878 0 R 1879 0 R 1880 0 R] +/Limits [(page.38) (page.7)] >> % 1924 0 obj << -/Kids [1914 0 R 1915 0 R 1916 0 R 1917 0 R 1918 0 R 1919 0 R] -/Limits [(page.1) (section*.64)] +/Kids [1881 0 R 1882 0 R 1883 0 R 1884 0 R 1885 0 R 1886 0 R] +/Limits [(page.70) (page.iv)] >> % 1925 0 obj << -/Kids [1920 0 R 1921 0 R 1922 0 R] -/Limits [(section*.65) (vdata)] +/Kids [1887 0 R 1889 0 R 1890 0 R 1891 0 R 1892 0 R 1893 0 R] +/Limits [(precdata) (section*.30)] >> % 1926 0 obj << -/Kids [1923 0 R 1924 0 R 1925 0 R] -/Limits [(Doc-Start) (vdata)] +/Kids [1894 0 R 1895 0 R 1896 0 R 1897 0 R 1898 0 R 1899 0 R] +/Limits [(section*.31) (section*.63)] >> % 1927 0 obj << -/Dests 1926 0 R +/Kids [1900 0 R 1901 0 R 1902 0 R 1903 0 R 1904 0 R 1905 0 R] +/Limits [(section*.64) (section*.96)] >> % 1928 0 obj << +/Kids [1906 0 R 1907 0 R 1908 0 R 1909 0 R 1910 0 R 1911 0 R] +/Limits [(section*.97) (table.13)] +>> +% 1929 0 obj +<< +/Kids [1912 0 R 1913 0 R 1914 0 R] +/Limits [(table.14) (vdata)] +>> +% 1930 0 obj +<< +/Kids [1915 0 R 1916 0 R 1917 0 R 1918 0 R 1919 0 R 1920 0 R] +/Limits [(Doc-Start) (lstnumber.-9.1)] +>> +% 1931 0 obj +<< +/Kids [1921 0 R 1922 0 R 1923 0 R 1924 0 R 1925 0 R 1926 0 R] +/Limits [(page.1) (section*.63)] +>> +% 1932 0 obj +<< +/Kids [1927 0 R 1928 0 R 1929 0 R] +/Limits [(section*.64) (vdata)] +>> +% 1933 0 obj +<< +/Kids [1930 0 R 1931 0 R 1932 0 R] +/Limits [(Doc-Start) (vdata)] +>> +% 1934 0 obj +<< +/Dests 1933 0 R +>> +% 1935 0 obj +<< /Type /Catalog -/Pages 1816 0 R -/Outlines 1817 0 R -/Names 1927 0 R +/Pages 1823 0 R +/Outlines 1825 0 R +/Names 1934 0 R /URI (http://ce.uniroma2.it/psblas) /PageMode/UseOutlines/PageLabels<>2<>6<>]>> -/OpenAction 540 0 R +/OpenAction 544 0 R >> endstream endobj -1930 0 obj +1937 0 obj << /Type /XRef -/Index [0 1931] -/Size 1931 +/Index [0 1938] +/Size 1938 /W [1 3 1] -/Root 1928 0 R -/Info 1929 0 R -/ID [<3BF976A4B6D70003C984BAAC612F7AB7> <3BF976A4B6D70003C984BAAC612F7AB7>] -/Length 9655 +/Root 1935 0 R +/Info 1936 0 R +/ID [<32C173B60CAAA4156F1063D2894312EB> <32C173B60CAAA4156F1063D2894312EB>] +/Length 9690 >> stream -ÿ”H ¾"¾,¾4¾@  -¾I  9 9 -999,9-9.9/9394 95!"99#$9:%&9; '(9< )*9C +,9J --.9K /09L129M349R569S789T9:9X;<9Y=>9Z?@9^AB9_cCD9cbEF‡aGH‡`IJ‡_KL‡ ^MN‡ -]OP‡ \QR‡[ST‡ZUV‡YWX‡XYZ‡W[\‡"V]^‡#U_`‡$Tab‡+ScËЇ/Rˡ9QˡJPˡXOˡcNË Ë -êMË Ë êLË ËêKËËê"JËËê*IËËê1HËËê8GËËêAFËËêUEËËWDËËW CËË W%BË!Ë"WDAË#Ë$WP@Ë%Ë&W]?Ë'Ë(W^>Ë)Ë*Ç=Ë+Ë,Ç<Ë-Ë.Ç%;Ë/Ë0Ç*:Ë1Ë2Ç09Ë3Ë4Ç;8Ë5Ë6ÇD7Ë7Ë8ÇW6Ë9Ë:75Ë;Ë<74Ë=Ë>73Ë?Ë@72ËAËB7!1ËCËD7'0ËEËF7+/ËGËH70.ËIËJ7:-ËKËL7?,ËMËN7E+ËOËP7K*ËQËR7Q)ËSËT7W(ËUËV7^'ËWËX &ËYËZ %Ë[Ë\ $Ë]Ë^ "#Ë_Ë` &"ËaËb ,!Ëc”kv 2 ”” 9”” =”” A”” E” ” - I” ”  M” ” Q”” W”” ]”” c”” -”” - ”” -”” -”” -9””  -?”!”" -E”#”$ -K”%”& -Q ”'”( -V ”)”* -] ”+”,t -”-”.t ”/”0t ”1”2t”3”4t”5”6t”7”8t(”9”:t0”;”<t5”=”>t9”?”@t=”A”BtC×c”C”D”E”I%”F”G×2×@×1×8×C”L”J'é”K”N”O”P”Q”R”S”T”U”V”W”X”Y”Z”[”\”]”^”_”`”a”b”c__________ _ -_ _ _ ____________”M(r__%____ _!_"_#_$_%_&_'_(_)_*_+_,_-_._/_0_1_2_3_4_5_6_7_8_9_:_;_<_=_>_?_@_A_B_C_D_E_F_G_H_I_J_N_L_Šk_K_O_P_Q_R_S_T_U_V_W_X_Y_Z_[_\_]_^___`_a_b_c¾¾¾¾¾¾¾¾¾¾ ¾ -¾ ¾ ¾ ¾¾¾¾¾_MÛ÷¾Uh¾¾^*¾¾¾¾¾¾¾¾¾¾ ¾!¾#¾^µ×?×D× ×tZ× -×tatb×t^t_¾)¾*¾+–>¾0¾.¾$€7×4¾-¾%¾&¾'¾(šôt`¾1¾2¾7¾/¦—¾3×A×:×6×=×9¾5×;¾6×¾<¾=Þ‡¾A¾8Éi¾>¾?¾9¾:¾;t]t\¾C¾D¾F¾Bå1¾E¾R¾GúþH×5¾J¾K¾L¾M¾N¾O¾P¾Q9¾b¾SÒ¾T¾U¾V¾W¾X¾Y¾Z¾[¾\¾]¾^¾_¾`¾a×E99 ¾c7û9999999 ŠM9 99 …99999¦N9999999999'9À¾9 9!9"9#9$9%9&9)9*909(ÔŽ9+9691é92×F9=97ú-989?9@9A9G9>9B9D9E9F×9N9H69I9U9OE¿9P9Q9[9VW9W9`9\iZ9]×G‡9az9b¤‡‡¬†‡‡‡ ‡¿Î‡‡‡‡ ÖÔ‡‡‡‡‡‡‡‡í‡‡:‡ ‡)‡'‡ýö‡!‡%×B‡&×H‡,‡( —‡*‡0‡-[‡.‡2‡3‡4‡5‡6‡7‡=‡;‡14‡8‡>‡?‡A‡<8 ‡@‡C‡D‡E‡F‡G‡H‡L‡BB¨‡I‡K‡O‡Ma·‡N×I‡Q‡R‡S‡T‡U‡V‡Z‡Pdc‡W‡Y‡]‡[…‡\‡_‡`‡aê‡^ˆ+‡bê=êêêê êÏqêêê ê ê êê -èdêêêêêêêêêê×Jêê½êêêê ê$ê"kê!ê#ê&ê'ê(ê,ê%=ê)ê+ê.ê/ê3ê-Umê0ê2ê5ê6ê:ê4k6ê7×>ê9ê<ê=ê>ê?êHêFê;ê@êBêCêDêE×KêIêJêKêLêMêNêOêQêGãêPêSêYêWêR¹_êTêVêZê[ê\ê]ê^ê_êaêXÔê`êcWWêbòÉWdÀWWW70WW W -W WWW9øW WWWW×Lc^WWWVWWWWWWWWr–W×<W!W"W#W*W ~½W$W&W'W(W)W,Ç9W-W.W3W+ W/W0W1W2W=W6W4·CW5W>W7Å£W<×MW8W9W:W;W@WAWBWIW?ÖÅWCWEWFWGWHWLWJû˜WKWNWVWTWM„WOWQWRWSWWWXWZWU <WYW_W[0ÎW\WaÇW`J–WbWc×N  ÇÇÇÇÇÇ Ç¶ÇÇÇ Ç -Ç Ç ÇÇÇÁ.ÇÇÇÇÝnÇÇÇÇÇÇÇ ÇéÿÇÇÇ"Ç#Ç&Ç!÷áÇ$×OÇ(Ç+Ç'ëÇ)Ç-Ç.Ç1Ç, ëÇ/Ç6Ç2%OÇ3Ç4Ç5Ç8Ç9Ç?Ç7+¿Ç:Ç<Ç=Ç>ÇAÇBÇGÇEÇ@?ÇCÇRÇFX…ÇHÇIÇJÇKÇLÇMÇNÇOÇPÇQ×PÇTÇUÇXÇSp‰ÇVÇaÇYŠ¾ÇZÇ[Ç\Ç]Ç^Ç_Ç`Çc77Çb“Ã7 åM777 -7ÈØ77 7 7 77 ج77777ìà7×Q77 ¾7777777"7 V7 7$7%7(7# ò7&7,7) .b7*7.717- < 7/7672 UÜ737475×R787;77 XÍ797=7A7< or7>7@7C7G7B |v7D7F7I7M7H *7J7L7O7S7N 7P7R7U7Z7T °Ì7V7X7Y×S7\7a7[ ¿ö7]7_7`7c 7b Îy  %’   -B      -        -þ     -/V    -F           ×T #   -a® ! ) $ -b¥ % ' ( / * -x  + - . 6 0 -Šü 1 3 4 5 : 7 -œ= 8 > ; -¤ê <×U B ? -°ó @ F C -µâ D J G -»ë H N K -Áu L T O -Óz P R S Z U -è V X Y×V ` [ -üb \ ^ _ - a Þ b - - ñ - - J# - - - -  -  ^ù - - -  - - t - - - - - - ‰I -×W -4 -5 -6 - ¢s - - -×3 - - - -  -! -" -# -$ -% -& -' -( -) -* -+ -, -- -. -/ -0 -1 -2 -3 -< -7 ¾× -8 -: -; -B -= Í¡ -> -@ -A -H -C ÓV -D -F -G -N -I Ùò -J -L -M -R -O âi -P×X -T -Y -S äÀ -U -W -X -[ -` -Z ÷§ -\ -^ -_ -bt -a n -ctt -et t =tttt tt - LEt tttt \Ûttt×Ytt jMtttt!t ntt t#t$t%t&t)t" €yt't+t,t-t.t1t* œ«t/t3t6t2 ´Lt4t:t7 ¼Ut8×Zt>t; Àot<t@tAtJtHt? à tBtDtEtFtG×7tKtLtMtOtI ãÂtNtQtStP ÿ¨tRtVtT 5tU×tW ÂtXtYt[tc××[4a× × Vr×× × ××××××××××××××××× bã× »#× :×!/Á×"pè×#Žæ×$µY×%Ô¾×&9p×'X}×(yy×)¹ÿ×*ùÅ×+!p×,?×-ŽÔ×.¾K×/ ±×0×\×]×^×_×`×a×b† ¬Š!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc`îÀ````````` ` -` ` ` ``````````````````` `!`"`#`$`%`&`'`(ìXà +ÿ”J"'Ã%"&Ã/"%Ã7"$ÃC"#  +ÃL""  3"! 3 " 3"3"3/"30"31"32"36"37" 38"!"3<"#$3="%&3>"'(3?")*3F"+,3M"-.3N"/03O"123P"343U" 563V" 783W" 9:3[" +;<3\" =>3]"?@3a"AB3b"CDŒ"EFŒ"GHŒ"IJŒ"KLŒ "MNŒ "OPŒ cQRŒ bSTŒ aUVŒ `WXŒ _YZŒ  ^[\Œ% ]]^Œ& \_`Œ' [abŒ. ZcËÐŒ2 YËËŒ< XËËŒM WËËŒ[ VËËï UË Ë +ï + TË Ë ï SË Ëï RËËï% QËËï- PËËï4 OËËï; NËËïD MËËïX LËËV  KËËV JËË V( IË!Ë"VG HË#Ë$VS GË%Ë&V` FË'Ë(Va EË)Ë*Ì DË+Ë,Ì! CË-Ë.Ì( BË/Ë0Ì- AË1Ë2Ì3 @Ë3Ë4Ì> ?Ë5Ë6ÌG >Ë7Ë8ÌZ =Ë9Ë:6 <Ë;Ë<6  ;Ë=Ë>6 :Ë?Ë@6 9ËAËB6$ 8ËCËD6* 7ËEËF6. 6ËGËH63 5ËIËJ6= 4ËKËL6B 3ËMËN6H 2ËOËP6N 1ËQËR6T 0ËSËT6Z /ËUËV6a .ËWËX  -ËYËZ  ,Ë[Ë\  +Ë]Ë^ % *Ë_Ë` ) )ËaËb / (Ëc”kz 5 '”” < &”” @ %”” D $”” H #” ” + L "” ”  P !” ” T ”” Z ”” ` ”” ”” ”” ”” ”” ””< ”” B ”!”"H ”#”$N ”%”&T ”'”(Y ”)”*` ”+”,y ”-”.y  ”/”0y ”1”2y ”3”4y ”5”6y" ”7”8y+ ”9”:y3 +”;”<y8 ”=”>y< ”?”@yB ”A”ByF ”C”DyL ”E”F”G”K%”H”IÞ8ÞFÞ7Þ>ÞI”N”L'í”M”P”Q”R”S”T”U”V”W”X”Y”Z”[”\”]”^”_”`”a”b”ccccccccccc c +c c c cccccccccccccc”O(vcc³cc c!c"c#c$c%c&c'c(c)c*c+c,c-c.c/c0c1c2c3c4c5c6c7c8c9c:c;c<c=c>c?c@cAcBcCcDcEcFcGcHcIcJcKcLcPcNc‰zcMcQcRcScTcUcVcWcXcYcZc[c\c]c^c_c`cacbccÃÃÃÃÃÃÃÃÃà à +à à à ÃÃÃÃÃÃÃÃcOÛÃ6ŸÃÃ\ÎÃÃÃÃÃÃà Ã!Ã"Ã#Ã$Ã&Ã]YÞEÞJÞÞy`ÞÞÞÞÞ ÞÞÃ,Ã-Ã.”âÃ3Ã1Ã'~ÛÞ:Ã0Ã(Ã)Ã*Ã+™˜ÞÃ4Ã5Ã:Ã2¥;Ã6ÞGÞ@Þ<ÞCÞ?Ã8ÞAÃ9Þ Ã?Ã@Ý+ÃDÃ;È ÃAÃBÃ<Ã=Ã>ycybÃFÃGÃIÃEãÕÃHÃUÃJùgÃKÞ;ÃMÃNÃOÃPÃQÃRÃSÃT33ÃVvÃWÃXÃYÃZÃ[Ã\Ã]Ã^Ã_Ã`ÃaÃbÃc3ÞKyÞ333fû3333 3 +3 3 333„h3333!3¥œ333333333 3*3"À 3#3$3%3&3'3(3)3,3-333+ÓÜ3.3934èg35ÞL3@3:ù{3;3B3C3D3J3AT3E3G3H3IÞ 3Q3K5]3L3X3RE 3S3T3^3YVS3Z3c3_h¨3`ÞMŒŒœFŒ£œŒ Œ¬ŒŒŒŒ +¿KŒ ŒŒŒÖQŒŒŒŒŒŒŒ!Œì“ŒŒ=Œ#Œ,Œ*Œ"ýsŒ$Œ(ÞHŒ)ÞNŒ/Œ+ Œ-Œ3Œ0ØŒ1Œ5Œ6Œ7Œ8Œ9Œ:Œ@Œ>Œ4±Œ;ŒAŒBŒDŒ?7†ŒCŒFŒGŒHŒIŒJŒKŒOŒEB%ŒLŒNŒRŒPa4ŒQÞOŒTŒUŒVŒWŒXŒYŒ]ŒScàŒZŒ\Œ`Œ^„üŒ_ŒbŒcïïŒa‡¨ïïò-ïïïï ïÎÕï ï ïïïïï çÈïïïïïïïNïïÞPïï!ïï!ï"ï#ï'ï !Ïï$ï&ï)ï*ï+ï/ï(<‚ï,ï.ï1ï2ï6ï0TÑï3ï5ï8ï9ï=ï7jšï:ÞDï<ï?ï@ïAïBïKïIï>€jïCïEïFïGïHÞQïLïMïNïOïPïQïRïTïJGïSïVï\ïZïU¸ÃïWïYï]ï^ï_ï`ïaïbVï[Óƒïcc„VVVV#€VVV +V5ôVV V VVVV 8¼VVVVVÞRb"VVVUTVVVVVVV"V qZV!ÞBV$V%V&V-V#}V'V)V*V+V,V/ÅýV0V1V6V.žàV2V3V4V5V@V9V7¶V8VAV:ÄgV?ÞSV;V<V=V>VCVDVEVLVBÕ‰VFVHVIVJVKVOVMú\VNVQVYVWVPHVRVTVUVVVZV[V]VXV\VbV^/’V_ÌÌVcIZÌÌÞT“-ÌÌÌŽyÌÌÌÌ µ÷Ì +Ì Ì Ì ÌÌÌÌÌÀ˜ÌÌÌÌÜØÌÌÌÌÌÌÌ#ÌéiÌ Ì"Ì%Ì&Ì)Ì$÷KÌ'ÞUÌ+Ì.Ì*UÌ,Ì0Ì1Ì4Ì/ UÌ2Ì9Ì5$¹Ì6Ì7Ì8Ì;Ì<ÌBÌ:+)Ì=Ì?Ì@ÌAÌDÌEÌJÌHÌC>}ÌFÌUÌIWïÌKÌLÌMÌNÌOÌPÌQÌRÌSÌTÞVÌWÌXÌ[ÌVoóÌY6Ì\Š(Ì]Ì^Ì_Ì`ÌaÌbÌc Íx6666»Ž666 6 6Ç×6 +6 6666׫66666ëß6ÞW66 ½6666 6!6"6%6 U6#6'6(6+6& ñ6)6/6, -a6-616460 ; 626965 TÛ666768ÞX6;6>6: WÌ6<6@6D6? nq6A6C6F6J6E {u6G6I6L6P6K )6M6O6R6V6Q œ6S6U6X6]6W ¯Ë6Y6[6\ÞY6_ 6^ ¾õ6`6b6c Ë    ø[     +/      +        +ë    +.C  "  +E            !ÞZ & # +`› $ , ' +a’ ( * + 2 - +w . 0 1 9 3 +‰é 4 6 7 8 = : +›* ; A > +£× ?Þ[ E B +¯à C I F +´Ï G M J +ºØ K Q N +Àb O W R +Òg S U V ] X +æó Y [ \Þ\ c ^ +ûO _ a b 4ú ù  I®  +  ^„  s£ ˆÔÞ]789 ¡þÞ9 !"#$%&'()*+,-./0123456?: ¾b;=>E@ Í,ACDKF ÒáGIJQL Ù}MOPUR áôSÞ^W\V äKXZ[^c] ÷2_abyyy .*yyy 8½y y <­yy +y yyy  Kcyyyyy [ùyyyÞ_yy ikyyy y$y m8y!y#y&y'y(y)y,y%  y*y.y/y0y1y4y- š±y2y6y9y5 ±Åy7y=y: ½zy;Þ`y?y@yCy> Á”yAyGyD Ì{yEyIyJySyQyH ÏyKyMyNyOyPÞ=yTyUyVyXyR ï¶yWyZy\yY Ÿy[Þy] y^y_yaÞÞÞaB„ÞÞ  cŽÞ +ÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞ Þ!Þ"Þ#Þ$ oÿÞ% È?Þ&VÞ'<ÝÞ(~Þ)œÞ*ÂuÞ+áÚÞ,G“Þ-f Þ.‡œÞ/È"Þ0èÞ1/“Þ2M4Þ3œ÷Þ4ÌnÞ5ÔÞ6ÞbÞc    “| º"(")"*"+","-"."/"0"1"2"3"4"5"6"7"8"9":";"<"=">"?"@"A"B"C"D"E"F"G"H"I"J"K"L"M"N"O"P"Q"R"S"T"U"V"W"X"Y"Z"["\"]"^"_"`"a"b"c`ù.````````` ` +` ` ` ``````````````````` `!`"`#`$`%`&`'`(`)`*`+`,`-`.`/ö¹þ endstream endobj startxref -1181891 +1186046 %%EOF diff --git a/docs/src/Makefile b/docs/src/Makefile index 1a725cae..54707fbc 100644 --- a/docs/src/Makefile +++ b/docs/src/Makefile @@ -138,7 +138,7 @@ PDF = $(join $(BASEFILE),.pdf) PS = $(join $(BASEFILE),.ps) GXS = $(join $(BASEFILE),.gxs) GLX = $(join $(BASEFILE),.glx) -TARGETPDF= ../psblas-3.4.pdf +TARGETPDF= ../psblas-3.5.pdf BASEHTML = $(patsubst %.tex,%,$(HTMLFILE)) HTML = $(join $(HTMLFILE),.html) HTMLDIR = ../html diff --git a/docs/src/precs.tex b/docs/src/precs.tex index 2db696f9..7d64f8e9 100644 --- a/docs/src/precs.tex +++ b/docs/src/precs.tex @@ -23,11 +23,11 @@ module \verb|psb_prec_mod|. -\clearpage\subsection*{psb\_precinit --- Initialize a preconditioner} -\addcontentsline{toc}{subsection}{psb\_precinit} +\clearpage\subsection*{init --- Initialize a preconditioner} +\addcontentsline{toc}{subsection}{prec\%init} \begin{verbatim} -call psb_precinit(prec, ptype, info) +call prec%init(ptype, info) \end{verbatim} \begin{description} @@ -80,11 +80,11 @@ $ptype$ string as follows\footnote{The string is case-insensitive}: \end{description} -\clearpage\subsection*{psb\_precbld --- Builds a preconditioner} -\addcontentsline{toc}{subsection}{psb\_precbld} +\clearpage\subsection*{build --- Builds a preconditioner} +\addcontentsline{toc}{subsection}{prec\%build} \begin{verbatim} -call psb_precbld(a, desc_a, prec, info,amold,vmold) +call prec%build(a, desc_a, info,amold,vmold) \end{verbatim} \begin{description} @@ -139,13 +139,13 @@ An integer value; 0 means no error has been detected. -\clearpage\subsection*{psb\_precaply --- Preconditioner application +\clearpage\subsection*{apply --- Preconditioner application routine} -\addcontentsline{toc}{subsection}{psb\_precaply} +\addcontentsline{toc}{subsection}{prec\%apply} \begin{verbatim} -call psb_precaply(prec,x,y,desc_a,info,trans,work) -call psb_precaply(prec,x,desc_a,info,trans) +call prec%apply(x,y,desc_a,info,trans,work) +call prec%apply(x,desc_a,info,trans) \end{verbatim} \begin{description} @@ -194,13 +194,13 @@ An integer value; 0 means no error has been detected. -\clearpage\subsection*{psb\_precdescr --- Prints a description of current +\clearpage\subsection*{descr --- Prints a description of current preconditioner} -\addcontentsline{toc}{subsection}{psb\_precdescr} +\addcontentsline{toc}{subsection}{prec\%descr} \begin{verbatim} -call psb_precdescr(prec) -call psb_precdescr(prec, iout) +call prec%descr() +call prec%descr(iout, root) \end{verbatim} \begin{description} @@ -213,9 +213,16 @@ Intent: {\bf in}.\\ Specified as: a preconditioner data structure \precdata. \item[iout] output unit. Scope: {\bf local} \\ -Type: {\bf optiona}\\ +Type: {\bf optional}\\ +Intent: {\bf in}.\\ +Specified as: an integer number. Default: default output unit. +\item[root] Process from which to print +Scope: {\bf local} \\ +Type: {\bf optional}\\ Intent: {\bf in}.\\ -Specified as: an integer number. +Specified as: an integer number between 0 and $np-1$, in which case +the specified process will print the description, or $-1$, in which case +all processes will print. Default: 0. \end{description} @@ -244,6 +251,49 @@ Scope: {\bf local}.\\ \end{description} +\clearpage\subsection*{free --- Free a preconditioner} +\addcontentsline{toc}{subsection}{prec\%free} + +\begin{verbatim} +call prec%free(info) +\end{verbatim} + +\begin{description} +\item[Type:] Asynchronous. +\item[\bf On Entry] +\item[prec] the preconditioner.\\ +Scope: {\bf local}.\\ +Type: {\bf required}\\ +Intent: {\bf inout}.\\ +Specified as: a preconditioner data structure \precdata. +%% \item[iv] integer parameters for the precondtioner. +%% Scope: {\bf global} \\ +%% Type: {\bf required}\\ +%% Specified as: an integer array, see usage notes. +%% \item[rs] +%% Scope: {\bf global} \\ +%% Type: {\bf optional}\\ +%% Specified as: a long precision real number. +\item[\bf On Exit] + +\item[prec] +Scope: {\bf local} \\ +Type: {\bf required}\\ +Intent: {\bf inout}.\\ +Specified as: a preconditioner data structure \precdata. +\item[info] +Scope: {\bf global} \\ +Type: {\bf required}\\ +Intent: {\bf out}.\\ +Error code: if no error, 0 is returned. +\end{description} +{\par\noindent\large\bfseries Notes} +%% The PSBLAS 2.0 contains a number of preconditioners, ranging from a +%% simple diagonal scaling to 2-level domain decomposition. These +%% preconditioners may use the SuperLU or the UMFPACK software, if +%% installed; see~\cite{SUPERLU,UMFPACK}. +Releases all internal storage. + %%% Local Variables: %%% mode: latex %%% TeX-master: "userguide" diff --git a/docs/src/userguide.tex b/docs/src/userguide.tex index 4ebdcea7..02b9e06e 100644 --- a/docs/src/userguide.tex +++ b/docs/src/userguide.tex @@ -25,7 +25,7 @@ \relax \pdfcompresslevel=0 %-- 0 = none, 9 = best \pdfinfo{ %-- Info dictionary of PDF output /Author (Alfredo Buttari) - /Title (Parallel Sparse BLAS V. 3.4.1) + /Title (Parallel Sparse BLAS V. 3.5.0) /Subject (Parallel Sparse Basic Linear Algebra Subroutines) /Keywords (Computer Science Linear Algebra Fluid Dynamics Parallel Linux MPI PSBLAS Iterative Solvers Preconditioners) /Creator (pdfLaTeX) @@ -88,7 +88,7 @@ \begin{document} -\pdfbookmark{PSBLAS-v3.4.1 User's Guide}{title} +\pdfbookmark{PSBLAS-v3.5.0 User's Guide}{title} \lstset{language=Fortran} \newlength{\centeroffset} \setlength{\centeroffset}{-0.5\oddsidemargin} @@ -98,7 +98,7 @@ \vspace*{\stretch{1}} \noindent\hspace*{\centeroffset}\makebox[0pt][l]{\begin{minipage}{\textwidth} \flushright -{\Huge\bfseries PSBLAS 3.4.1 User's guide +{\Huge\bfseries PSBLAS 3.5.0 User's guide } \noindent\rule[-1ex]{\textwidth}{5pt}\\[2.5ex] \hfill\emph{\Large A reference guide for the Parallel Sparse BLAS library} @@ -111,7 +111,7 @@ by Salvatore Filippone\\ and Alfredo Buttari}\\ University of Rome ``Tor Vergata''.\\[3ex] -June 2, 2016. +May 1st, 2017 \end{minipage}} %\addtolength{\textwidth}{\centeroffset} diff --git a/docs/src/userhtml.tex b/docs/src/userhtml.tex index 5b24b1e8..abf87db1 100644 --- a/docs/src/userhtml.tex +++ b/docs/src/userhtml.tex @@ -24,7 +24,7 @@ % \relax % \pdfcompresslevel=0 %-- 0 = none, 9 = best % \pdfinfo{ %-- Info dictionary of PDF output /Author (Alfredo Buttari) -% /Title (Parallel Sparse BLAS V. 3.4.1) +% /Title (Parallel Sparse BLAS V. 3.5.0) % /Subject (Parallel Sparse Basic Linear Algebra Subroutines) % /Keywords (Computer Science Linear Algebra Fluid Dynamics Parallel Linux MPI PSBLAS Iterative Solvers Preconditioners) % /Creator (pdfLaTeX) @@ -94,9 +94,9 @@ University of Rome ``Tor Vergata'', Italy\\[2ex] %\\[10ex] %\today -Software version: 3.4.1\\ +Software version: 3.5.0\\ %\today -June 2, 2016. +May 1st, 2017 \cleardoublepage \begingroup \renewcommand*{\thepage}{toc} diff --git a/prec/impl/psb_c_bjacprec_impl.f90 b/prec/impl/psb_c_bjacprec_impl.f90 index c729f093..d10d1887 100644 --- a/prec/impl/psb_c_bjacprec_impl.f90 +++ b/prec/impl/psb_c_bjacprec_impl.f90 @@ -407,7 +407,7 @@ subroutine psb_c_bjac_precinit(prec,info) end subroutine psb_c_bjac_precinit -subroutine psb_c_bjac_precbld(a,desc_a,prec,info,upd,amold,afmt,vmold) +subroutine psb_c_bjac_precbld(a,desc_a,prec,info,amold,vmold,imold) use psb_base_mod use psb_prec_mod, only : psb_ilu_fct @@ -415,13 +415,12 @@ subroutine psb_c_bjac_precbld(a,desc_a,prec,info,upd,amold,afmt,vmold) Implicit None type(psb_cspmat_type), intent(in), target :: a - type(psb_desc_type), intent(in), target :: desc_a + type(psb_desc_type), intent(inout), target :: desc_a class(psb_c_bjac_prec_type),intent(inout) :: prec integer(psb_ipk_), intent(out) :: info - character, intent(in), optional :: upd - character(len=*), intent(in), optional :: afmt class(psb_c_base_sparse_mat), intent(in), optional :: amold class(psb_c_base_vect_type), intent(in), optional :: vmold + class(psb_i_base_vect_type), intent(in), optional :: imold ! .. Local Scalars .. integer(psb_ipk_) :: i, m @@ -544,9 +543,6 @@ subroutine psb_c_bjac_precbld(a,desc_a,prec,info,upd,amold,afmt,vmold) if (present(amold)) then call prec%av(psb_l_pr_)%cscnv(info,mold=amold) call prec%av(psb_u_pr_)%cscnv(info,mold=amold) - else if (present(afmt)) then - call prec%av(psb_l_pr_)%cscnv(info,type=afmt) - call prec%av(psb_u_pr_)%cscnv(info,type=afmt) end if call psb_erractionrestore(err_act) diff --git a/prec/impl/psb_c_diagprec_impl.f90 b/prec/impl/psb_c_diagprec_impl.f90 index 5192ec40..2f4185b5 100644 --- a/prec/impl/psb_c_diagprec_impl.f90 +++ b/prec/impl/psb_c_diagprec_impl.f90 @@ -225,20 +225,19 @@ subroutine psb_c_diag_apply(alpha,prec,x,beta,y,desc_data,info,trans,work) end subroutine psb_c_diag_apply -subroutine psb_c_diag_precbld(a,desc_a,prec,info,upd,amold,afmt,vmold) +subroutine psb_c_diag_precbld(a,desc_a,prec,info,amold,vmold,imold) use psb_base_mod use psb_c_diagprec, psb_protect_name => psb_c_diag_precbld Implicit None type(psb_cspmat_type), intent(in), target :: a - type(psb_desc_type), intent(in), target :: desc_a + type(psb_desc_type), intent(inout), target :: desc_a class(psb_c_diag_prec_type),intent(inout) :: prec integer(psb_ipk_), intent(out) :: info - character, intent(in), optional :: upd - character(len=*), intent(in), optional :: afmt class(psb_c_base_sparse_mat), intent(in), optional :: amold class(psb_c_base_vect_type), intent(in), optional :: vmold + class(psb_i_base_vect_type), intent(in), optional :: imold integer(psb_ipk_) :: err_act, nrow,i character(len=20) :: name='c_diag_precbld' diff --git a/prec/impl/psb_c_prec_type_impl.f90 b/prec/impl/psb_c_prec_type_impl.f90 index 55cb2288..a1f84094 100644 --- a/prec/impl/psb_c_prec_type_impl.f90 +++ b/prec/impl/psb_c_prec_type_impl.f90 @@ -29,15 +29,15 @@ ! POSSIBILITY OF SUCH DAMAGE. ! ! -!!$ -!!$ Parallel Sparse BLAS version 3.5 -!!$ (C) Copyright 2006, 2010, 2015, 2017 -!!$ Salvatore Filippone University of Rome Tor Vergata -!!$ 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: +! +! Parallel Sparse BLAS version 3.5 +! (C) Copyright 2006, 2010, 2015, 2017 +! Salvatore Filippone Cranfield University +! 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 diff --git a/prec/impl/psb_cprecbld.f90 b/prec/impl/psb_cprecbld.f90 index adfeb20d..23808d8f 100644 --- a/prec/impl/psb_cprecbld.f90 +++ b/prec/impl/psb_cprecbld.f90 @@ -29,26 +29,24 @@ ! POSSIBILITY OF SUCH DAMAGE. ! ! -subroutine psb_cprecbld(a,desc_a,p,info,upd,amold,afmt,vmold) +subroutine psb_cprecbld(a,desc_a,p,info,amold,vmold,imold) use psb_base_mod - use psb_c_prec_type + use psb_c_prec_type, psb_protect_name => psb_cprecbld Implicit None type(psb_cspmat_type), intent(in), target :: a - type(psb_desc_type), intent(in), target :: desc_a - type(psb_cprec_type),intent(inout) :: p + type(psb_desc_type), intent(inout), target :: desc_a + class(psb_cprec_type),intent(inout) :: p integer(psb_ipk_), intent(out) :: info - character, intent(in), optional :: upd - character(len=*), intent(in), optional :: afmt class(psb_c_base_sparse_mat), intent(in), optional :: amold class(psb_c_base_vect_type), intent(in), optional :: vmold + class(psb_i_base_vect_type), intent(in), optional :: imold ! Local scalars integer(psb_ipk_) :: ictxt, me,np integer(psb_ipk_) :: err, n_row, n_col,mglob, err_act integer(psb_ipk_) :: int_err(5) - character :: upd_ integer(psb_ipk_),parameter :: iroot=psb_root_,iout=60,ilout=40 character(len=20) :: name, ch_err @@ -80,8 +78,8 @@ subroutine psb_cprecbld(a,desc_a,p,info,upd,amold,afmt,vmold) goto 9999 end if - call p%prec%precbld(a,desc_a,info,upd=upd,& - & afmt=afmt,amold=amold,vmold=vmold) + call p%prec%precbld(a,desc_a,info,& + & amold=amold,vmold=vmold,imold=imold) if (info /= psb_success_) goto 9999 diff --git a/prec/impl/psb_cprecinit.f90 b/prec/impl/psb_cprecinit.f90 index f5cf6d50..e193364c 100644 --- a/prec/impl/psb_cprecinit.f90 +++ b/prec/impl/psb_cprecinit.f90 @@ -32,15 +32,14 @@ subroutine psb_cprecinit(p,ptype,info) use psb_base_mod - use psb_c_prec_type + use psb_c_prec_type, psb_protect_name => psb_cprecinit use psb_c_nullprec, only : psb_c_null_prec_type use psb_c_diagprec, only : psb_c_diag_prec_type use psb_c_bjacprec, only : psb_c_bjac_prec_type implicit none - - type(psb_cprec_type), intent(inout) :: p + class(psb_cprec_type), intent(inout) :: p character(len=*), intent(in) :: ptype - integer(psb_ipk_), intent(out) :: info + integer(psb_ipk_), intent(out) :: info info = psb_success_ diff --git a/prec/impl/psb_d_bjacprec_impl.f90 b/prec/impl/psb_d_bjacprec_impl.f90 index ca35af50..b01b5572 100644 --- a/prec/impl/psb_d_bjacprec_impl.f90 +++ b/prec/impl/psb_d_bjacprec_impl.f90 @@ -407,7 +407,7 @@ subroutine psb_d_bjac_precinit(prec,info) end subroutine psb_d_bjac_precinit -subroutine psb_d_bjac_precbld(a,desc_a,prec,info,upd,amold,afmt,vmold) +subroutine psb_d_bjac_precbld(a,desc_a,prec,info,amold,vmold,imold) use psb_base_mod use psb_prec_mod, only : psb_ilu_fct @@ -415,13 +415,12 @@ subroutine psb_d_bjac_precbld(a,desc_a,prec,info,upd,amold,afmt,vmold) Implicit None type(psb_dspmat_type), intent(in), target :: a - type(psb_desc_type), intent(in), target :: desc_a + type(psb_desc_type), intent(inout), target :: desc_a class(psb_d_bjac_prec_type),intent(inout) :: prec integer(psb_ipk_), intent(out) :: info - character, intent(in), optional :: upd - character(len=*), intent(in), optional :: afmt class(psb_d_base_sparse_mat), intent(in), optional :: amold class(psb_d_base_vect_type), intent(in), optional :: vmold + class(psb_i_base_vect_type), intent(in), optional :: imold ! .. Local Scalars .. integer(psb_ipk_) :: i, m @@ -544,9 +543,6 @@ subroutine psb_d_bjac_precbld(a,desc_a,prec,info,upd,amold,afmt,vmold) if (present(amold)) then call prec%av(psb_l_pr_)%cscnv(info,mold=amold) call prec%av(psb_u_pr_)%cscnv(info,mold=amold) - else if (present(afmt)) then - call prec%av(psb_l_pr_)%cscnv(info,type=afmt) - call prec%av(psb_u_pr_)%cscnv(info,type=afmt) end if call psb_erractionrestore(err_act) diff --git a/prec/impl/psb_d_diagprec_impl.f90 b/prec/impl/psb_d_diagprec_impl.f90 index 36a808eb..86f0d185 100644 --- a/prec/impl/psb_d_diagprec_impl.f90 +++ b/prec/impl/psb_d_diagprec_impl.f90 @@ -225,20 +225,19 @@ subroutine psb_d_diag_apply(alpha,prec,x,beta,y,desc_data,info,trans,work) end subroutine psb_d_diag_apply -subroutine psb_d_diag_precbld(a,desc_a,prec,info,upd,amold,afmt,vmold) +subroutine psb_d_diag_precbld(a,desc_a,prec,info,amold,vmold,imold) use psb_base_mod use psb_d_diagprec, psb_protect_name => psb_d_diag_precbld Implicit None type(psb_dspmat_type), intent(in), target :: a - type(psb_desc_type), intent(in), target :: desc_a + type(psb_desc_type), intent(inout), target :: desc_a class(psb_d_diag_prec_type),intent(inout) :: prec integer(psb_ipk_), intent(out) :: info - character, intent(in), optional :: upd - character(len=*), intent(in), optional :: afmt class(psb_d_base_sparse_mat), intent(in), optional :: amold class(psb_d_base_vect_type), intent(in), optional :: vmold + class(psb_i_base_vect_type), intent(in), optional :: imold integer(psb_ipk_) :: err_act, nrow,i character(len=20) :: name='d_diag_precbld' diff --git a/prec/impl/psb_d_prec_type_impl.f90 b/prec/impl/psb_d_prec_type_impl.f90 index f11a02cd..c4b391b2 100644 --- a/prec/impl/psb_d_prec_type_impl.f90 +++ b/prec/impl/psb_d_prec_type_impl.f90 @@ -29,15 +29,15 @@ ! POSSIBILITY OF SUCH DAMAGE. ! ! -!!$ -!!$ Parallel Sparse BLAS version 3.5 -!!$ (C) Copyright 2006, 2010, 2015, 2017 -!!$ Salvatore Filippone University of Rome Tor Vergata -!!$ 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: +! +! Parallel Sparse BLAS version 3.5 +! (C) Copyright 2006, 2010, 2015, 2017 +! Salvatore Filippone Cranfield University +! 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 diff --git a/prec/impl/psb_dprecbld.f90 b/prec/impl/psb_dprecbld.f90 index 9345bbea..ca59a393 100644 --- a/prec/impl/psb_dprecbld.f90 +++ b/prec/impl/psb_dprecbld.f90 @@ -29,26 +29,24 @@ ! POSSIBILITY OF SUCH DAMAGE. ! ! -subroutine psb_dprecbld(a,desc_a,p,info,upd,amold,afmt,vmold) +subroutine psb_dprecbld(a,desc_a,p,info,amold,vmold,imold) use psb_base_mod - use psb_d_prec_type + use psb_d_prec_type, psb_protect_name => psb_dprecbld Implicit None type(psb_dspmat_type), intent(in), target :: a - type(psb_desc_type), intent(in), target :: desc_a - type(psb_dprec_type),intent(inout) :: p + type(psb_desc_type), intent(inout), target :: desc_a + class(psb_dprec_type),intent(inout) :: p integer(psb_ipk_), intent(out) :: info - character, intent(in), optional :: upd - character(len=*), intent(in), optional :: afmt class(psb_d_base_sparse_mat), intent(in), optional :: amold class(psb_d_base_vect_type), intent(in), optional :: vmold + class(psb_i_base_vect_type), intent(in), optional :: imold ! Local scalars integer(psb_ipk_) :: ictxt, me,np integer(psb_ipk_) :: err, n_row, n_col,mglob, err_act integer(psb_ipk_) :: int_err(5) - character :: upd_ integer(psb_ipk_),parameter :: iroot=psb_root_,iout=60,ilout=40 character(len=20) :: name, ch_err @@ -80,8 +78,8 @@ subroutine psb_dprecbld(a,desc_a,p,info,upd,amold,afmt,vmold) goto 9999 end if - call p%prec%precbld(a,desc_a,info,upd=upd,& - & afmt=afmt,amold=amold,vmold=vmold) + call p%prec%precbld(a,desc_a,info,& + & amold=amold,vmold=vmold,imold=imold) if (info /= psb_success_) goto 9999 diff --git a/prec/impl/psb_dprecinit.f90 b/prec/impl/psb_dprecinit.f90 index a5bee9dc..56862240 100644 --- a/prec/impl/psb_dprecinit.f90 +++ b/prec/impl/psb_dprecinit.f90 @@ -32,14 +32,14 @@ subroutine psb_dprecinit(p,ptype,info) use psb_base_mod - use psb_d_prec_type + use psb_d_prec_type, psb_protect_name => psb_dprecinit use psb_d_nullprec, only : psb_d_null_prec_type use psb_d_diagprec, only : psb_d_diag_prec_type use psb_d_bjacprec, only : psb_d_bjac_prec_type implicit none - type(psb_dprec_type), intent(inout) :: p + class(psb_dprec_type), intent(inout) :: p character(len=*), intent(in) :: ptype - integer(psb_ipk_), intent(out) :: info + integer(psb_ipk_), intent(out) :: info info = psb_success_ diff --git a/prec/impl/psb_s_bjacprec_impl.f90 b/prec/impl/psb_s_bjacprec_impl.f90 index 10a5d7ac..ca842b87 100644 --- a/prec/impl/psb_s_bjacprec_impl.f90 +++ b/prec/impl/psb_s_bjacprec_impl.f90 @@ -407,7 +407,7 @@ subroutine psb_s_bjac_precinit(prec,info) end subroutine psb_s_bjac_precinit -subroutine psb_s_bjac_precbld(a,desc_a,prec,info,upd,amold,afmt,vmold) +subroutine psb_s_bjac_precbld(a,desc_a,prec,info,amold,vmold,imold) use psb_base_mod use psb_prec_mod, only : psb_ilu_fct @@ -415,13 +415,12 @@ subroutine psb_s_bjac_precbld(a,desc_a,prec,info,upd,amold,afmt,vmold) Implicit None type(psb_sspmat_type), intent(in), target :: a - type(psb_desc_type), intent(in), target :: desc_a + type(psb_desc_type), intent(inout), target :: desc_a class(psb_s_bjac_prec_type),intent(inout) :: prec integer(psb_ipk_), intent(out) :: info - character, intent(in), optional :: upd - character(len=*), intent(in), optional :: afmt class(psb_s_base_sparse_mat), intent(in), optional :: amold class(psb_s_base_vect_type), intent(in), optional :: vmold + class(psb_i_base_vect_type), intent(in), optional :: imold ! .. Local Scalars .. integer(psb_ipk_) :: i, m @@ -544,9 +543,6 @@ subroutine psb_s_bjac_precbld(a,desc_a,prec,info,upd,amold,afmt,vmold) if (present(amold)) then call prec%av(psb_l_pr_)%cscnv(info,mold=amold) call prec%av(psb_u_pr_)%cscnv(info,mold=amold) - else if (present(afmt)) then - call prec%av(psb_l_pr_)%cscnv(info,type=afmt) - call prec%av(psb_u_pr_)%cscnv(info,type=afmt) end if call psb_erractionrestore(err_act) diff --git a/prec/impl/psb_s_diagprec_impl.f90 b/prec/impl/psb_s_diagprec_impl.f90 index 35fbc5d5..1b80c59f 100644 --- a/prec/impl/psb_s_diagprec_impl.f90 +++ b/prec/impl/psb_s_diagprec_impl.f90 @@ -225,20 +225,19 @@ subroutine psb_s_diag_apply(alpha,prec,x,beta,y,desc_data,info,trans,work) end subroutine psb_s_diag_apply -subroutine psb_s_diag_precbld(a,desc_a,prec,info,upd,amold,afmt,vmold) +subroutine psb_s_diag_precbld(a,desc_a,prec,info,amold,vmold,imold) use psb_base_mod use psb_s_diagprec, psb_protect_name => psb_s_diag_precbld Implicit None type(psb_sspmat_type), intent(in), target :: a - type(psb_desc_type), intent(in), target :: desc_a + type(psb_desc_type), intent(inout), target :: desc_a class(psb_s_diag_prec_type),intent(inout) :: prec integer(psb_ipk_), intent(out) :: info - character, intent(in), optional :: upd - character(len=*), intent(in), optional :: afmt class(psb_s_base_sparse_mat), intent(in), optional :: amold class(psb_s_base_vect_type), intent(in), optional :: vmold + class(psb_i_base_vect_type), intent(in), optional :: imold integer(psb_ipk_) :: err_act, nrow,i character(len=20) :: name='s_diag_precbld' diff --git a/prec/impl/psb_s_prec_type_impl.f90 b/prec/impl/psb_s_prec_type_impl.f90 index 35c0986e..82b69026 100644 --- a/prec/impl/psb_s_prec_type_impl.f90 +++ b/prec/impl/psb_s_prec_type_impl.f90 @@ -29,15 +29,15 @@ ! POSSIBILITY OF SUCH DAMAGE. ! ! -!!$ -!!$ Parallel Sparse BLAS version 3.5 -!!$ (C) Copyright 2006, 2010, 2015, 2017 -!!$ Salvatore Filippone University of Rome Tor Vergata -!!$ 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: +! +! Parallel Sparse BLAS version 3.5 +! (C) Copyright 2006, 2010, 2015, 2017 +! Salvatore Filippone Cranfield University +! 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 diff --git a/prec/impl/psb_sprecbld.f90 b/prec/impl/psb_sprecbld.f90 index c5323c2f..45e5416a 100644 --- a/prec/impl/psb_sprecbld.f90 +++ b/prec/impl/psb_sprecbld.f90 @@ -29,26 +29,24 @@ ! POSSIBILITY OF SUCH DAMAGE. ! ! -subroutine psb_sprecbld(a,desc_a,p,info,upd,amold,afmt,vmold) +subroutine psb_sprecbld(a,desc_a,p,info,amold,vmold,imold) use psb_base_mod - use psb_s_prec_type + use psb_s_prec_type, psb_protect_name => psb_sprecbld Implicit None type(psb_sspmat_type), intent(in), target :: a - type(psb_desc_type), intent(in), target :: desc_a - type(psb_sprec_type),intent(inout) :: p + type(psb_desc_type), intent(inout), target :: desc_a + class(psb_sprec_type),intent(inout) :: p integer(psb_ipk_), intent(out) :: info - character, intent(in), optional :: upd - character(len=*), intent(in), optional :: afmt class(psb_s_base_sparse_mat), intent(in), optional :: amold class(psb_s_base_vect_type), intent(in), optional :: vmold + class(psb_i_base_vect_type), intent(in), optional :: imold ! Local scalars integer(psb_ipk_) :: ictxt, me,np integer(psb_ipk_) :: err, n_row, n_col,mglob, err_act integer(psb_ipk_) :: int_err(5) - character :: upd_ integer(psb_ipk_),parameter :: iroot=psb_root_,iout=60,ilout=40 character(len=20) :: name, ch_err @@ -80,8 +78,8 @@ subroutine psb_sprecbld(a,desc_a,p,info,upd,amold,afmt,vmold) goto 9999 end if - call p%prec%precbld(a,desc_a,info,upd=upd,& - & afmt=afmt,amold=amold,vmold=vmold) + call p%prec%precbld(a,desc_a,info,& + & amold=amold,vmold=vmold,imold=imold) if (info /= psb_success_) goto 9999 diff --git a/prec/impl/psb_sprecinit.f90 b/prec/impl/psb_sprecinit.f90 index 5c2ab738..093b70e9 100644 --- a/prec/impl/psb_sprecinit.f90 +++ b/prec/impl/psb_sprecinit.f90 @@ -32,14 +32,14 @@ subroutine psb_sprecinit(p,ptype,info) use psb_base_mod - use psb_s_prec_type + use psb_s_prec_type, psb_protect_name => psb_sprecinit use psb_s_nullprec, only : psb_s_null_prec_type use psb_s_diagprec, only : psb_s_diag_prec_type use psb_s_bjacprec, only : psb_s_bjac_prec_type implicit none - type(psb_sprec_type), intent(inout) :: p + class(psb_sprec_type), intent(inout) :: p character(len=*), intent(in) :: ptype - integer(psb_ipk_), intent(out) :: info + integer(psb_ipk_), intent(out) :: info info = psb_success_ diff --git a/prec/impl/psb_z_bjacprec_impl.f90 b/prec/impl/psb_z_bjacprec_impl.f90 index 10d46337..30a5c556 100644 --- a/prec/impl/psb_z_bjacprec_impl.f90 +++ b/prec/impl/psb_z_bjacprec_impl.f90 @@ -407,7 +407,7 @@ subroutine psb_z_bjac_precinit(prec,info) end subroutine psb_z_bjac_precinit -subroutine psb_z_bjac_precbld(a,desc_a,prec,info,upd,amold,afmt,vmold) +subroutine psb_z_bjac_precbld(a,desc_a,prec,info,amold,vmold,imold) use psb_base_mod use psb_prec_mod, only : psb_ilu_fct @@ -415,13 +415,12 @@ subroutine psb_z_bjac_precbld(a,desc_a,prec,info,upd,amold,afmt,vmold) Implicit None type(psb_zspmat_type), intent(in), target :: a - type(psb_desc_type), intent(in), target :: desc_a + type(psb_desc_type), intent(inout), target :: desc_a class(psb_z_bjac_prec_type),intent(inout) :: prec integer(psb_ipk_), intent(out) :: info - character, intent(in), optional :: upd - character(len=*), intent(in), optional :: afmt class(psb_z_base_sparse_mat), intent(in), optional :: amold class(psb_z_base_vect_type), intent(in), optional :: vmold + class(psb_i_base_vect_type), intent(in), optional :: imold ! .. Local Scalars .. integer(psb_ipk_) :: i, m @@ -544,9 +543,6 @@ subroutine psb_z_bjac_precbld(a,desc_a,prec,info,upd,amold,afmt,vmold) if (present(amold)) then call prec%av(psb_l_pr_)%cscnv(info,mold=amold) call prec%av(psb_u_pr_)%cscnv(info,mold=amold) - else if (present(afmt)) then - call prec%av(psb_l_pr_)%cscnv(info,type=afmt) - call prec%av(psb_u_pr_)%cscnv(info,type=afmt) end if call psb_erractionrestore(err_act) diff --git a/prec/impl/psb_z_diagprec_impl.f90 b/prec/impl/psb_z_diagprec_impl.f90 index 1b56dd07..8e2ef4a5 100644 --- a/prec/impl/psb_z_diagprec_impl.f90 +++ b/prec/impl/psb_z_diagprec_impl.f90 @@ -225,20 +225,19 @@ subroutine psb_z_diag_apply(alpha,prec,x,beta,y,desc_data,info,trans,work) end subroutine psb_z_diag_apply -subroutine psb_z_diag_precbld(a,desc_a,prec,info,upd,amold,afmt,vmold) +subroutine psb_z_diag_precbld(a,desc_a,prec,info,amold,vmold,imold) use psb_base_mod use psb_z_diagprec, psb_protect_name => psb_z_diag_precbld Implicit None type(psb_zspmat_type), intent(in), target :: a - type(psb_desc_type), intent(in), target :: desc_a + type(psb_desc_type), intent(inout), target :: desc_a class(psb_z_diag_prec_type),intent(inout) :: prec integer(psb_ipk_), intent(out) :: info - character, intent(in), optional :: upd - character(len=*), intent(in), optional :: afmt class(psb_z_base_sparse_mat), intent(in), optional :: amold class(psb_z_base_vect_type), intent(in), optional :: vmold + class(psb_i_base_vect_type), intent(in), optional :: imold integer(psb_ipk_) :: err_act, nrow,i character(len=20) :: name='z_diag_precbld' diff --git a/prec/impl/psb_z_prec_type_impl.f90 b/prec/impl/psb_z_prec_type_impl.f90 index 89b94f72..9dc32ad6 100644 --- a/prec/impl/psb_z_prec_type_impl.f90 +++ b/prec/impl/psb_z_prec_type_impl.f90 @@ -29,15 +29,15 @@ ! POSSIBILITY OF SUCH DAMAGE. ! ! -!!$ -!!$ Parallel Sparse BLAS version 3.5 -!!$ (C) Copyright 2006, 2010, 2015, 2017 -!!$ Salvatore Filippone University of Rome Tor Vergata -!!$ 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: +! +! Parallel Sparse BLAS version 3.5 +! (C) Copyright 2006, 2010, 2015, 2017 +! Salvatore Filippone Cranfield University +! 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 diff --git a/prec/impl/psb_zprecbld.f90 b/prec/impl/psb_zprecbld.f90 index 72e73b62..f87cf8a7 100644 --- a/prec/impl/psb_zprecbld.f90 +++ b/prec/impl/psb_zprecbld.f90 @@ -29,26 +29,24 @@ ! POSSIBILITY OF SUCH DAMAGE. ! ! -subroutine psb_zprecbld(a,desc_a,p,info,upd,amold,afmt,vmold) +subroutine psb_zprecbld(a,desc_a,p,info,amold,vmold,imold) use psb_base_mod - use psb_z_prec_type + use psb_z_prec_type, psb_protect_name => psb_zprecbld Implicit None type(psb_zspmat_type), intent(in), target :: a - type(psb_desc_type), intent(in), target :: desc_a - type(psb_zprec_type),intent(inout) :: p + type(psb_desc_type), intent(inout), target :: desc_a + class(psb_zprec_type),intent(inout) :: p integer(psb_ipk_), intent(out) :: info - character, intent(in), optional :: upd - character(len=*), intent(in), optional :: afmt class(psb_z_base_sparse_mat), intent(in), optional :: amold class(psb_z_base_vect_type), intent(in), optional :: vmold + class(psb_i_base_vect_type), intent(in), optional :: imold ! Local scalars integer(psb_ipk_) :: ictxt, me,np integer(psb_ipk_) :: err, n_row, n_col,mglob, err_act integer(psb_ipk_) :: int_err(5) - character :: upd_ integer(psb_ipk_),parameter :: iroot=psb_root_,iout=60,ilout=40 character(len=20) :: name, ch_err @@ -80,8 +78,8 @@ subroutine psb_zprecbld(a,desc_a,p,info,upd,amold,afmt,vmold) goto 9999 end if - call p%prec%precbld(a,desc_a,info,upd=upd,& - & afmt=afmt,amold=amold,vmold=vmold) + call p%prec%precbld(a,desc_a,info,& + & amold=amold,vmold=vmold,imold=imold) if (info /= psb_success_) goto 9999 diff --git a/prec/impl/psb_zprecinit.f90 b/prec/impl/psb_zprecinit.f90 index 5392392d..a9e6c019 100644 --- a/prec/impl/psb_zprecinit.f90 +++ b/prec/impl/psb_zprecinit.f90 @@ -32,15 +32,14 @@ subroutine psb_zprecinit(p,ptype,info) use psb_base_mod - use psb_z_prec_type + use psb_z_prec_type, psb_protect_name => psb_zprecinit use psb_z_nullprec, only : psb_z_null_prec_type use psb_z_diagprec, only : psb_z_diag_prec_type use psb_z_bjacprec, only : psb_z_bjac_prec_type implicit none - - type(psb_zprec_type), intent(inout) :: p + class(psb_zprec_type), intent(inout) :: p character(len=*), intent(in) :: ptype - integer(psb_ipk_), intent(out) :: info + integer(psb_ipk_), intent(out) :: info info = psb_success_ diff --git a/prec/psb_c_base_prec_mod.f90 b/prec/psb_c_base_prec_mod.f90 index bea616e5..624b9c7c 100644 --- a/prec/psb_c_base_prec_mod.f90 +++ b/prec/psb_c_base_prec_mod.f90 @@ -41,7 +41,7 @@ module psb_c_base_prec_mod & psb_sizeof_int, psb_sizeof_long_int, psb_sizeof_sp, psb_sizeof_dp, & & psb_erractionsave, psb_erractionrestore, psb_error, psb_get_errstatus, psb_success_,& & psb_c_base_sparse_mat, psb_cspmat_type, psb_c_csr_sparse_mat,& - & psb_c_base_vect_type, psb_c_vect_type + & psb_c_base_vect_type, psb_c_vect_type, psb_i_base_vect_type use psb_prec_const_mod @@ -58,6 +58,9 @@ module psb_c_base_prec_mod procedure(psb_c_base_apply_vect), pass(prec), deferred :: c_apply_v procedure(psb_c_base_apply), pass(prec), deferred :: c_apply generic, public :: apply => c_apply, c_apply_v + generic, public :: build => precbld + generic, public :: descr => precdescr + procedure, pass(prec) :: desc_prefix => psb_c_base_desc_prefix procedure(psb_c_base_precbld), pass(prec), deferred :: precbld procedure(psb_c_base_sizeof), pass(prec), deferred :: sizeof procedure(psb_c_base_precinit), pass(prec), deferred :: precinit @@ -122,21 +125,19 @@ module psb_c_base_prec_mod abstract interface - subroutine psb_c_base_precbld(a,desc_a,prec,info,upd,amold,afmt,vmold) + subroutine psb_c_base_precbld(a,desc_a,prec,info,amold,vmold,imold) import psb_ipk_, psb_spk_, psb_desc_type, psb_c_vect_type, & & psb_c_base_vect_type, psb_cspmat_type, psb_c_base_prec_type,& - & psb_c_base_sparse_mat + & psb_c_base_sparse_mat, psb_i_base_vect_type Implicit None type(psb_cspmat_type), intent(in), target :: a - type(psb_desc_type), intent(in), target :: desc_a + type(psb_desc_type), intent(inout), target :: desc_a class(psb_c_base_prec_type),intent(inout) :: prec integer(psb_ipk_), intent(out) :: info - character, intent(in), optional :: upd - character(len=*), intent(in), optional :: afmt class(psb_c_base_sparse_mat), intent(in), optional :: amold class(psb_c_base_vect_type), intent(in), optional :: vmold - + class(psb_i_base_vect_type), intent(in), optional :: imold end subroutine psb_c_base_precbld end interface @@ -156,7 +157,7 @@ module psb_c_base_prec_mod abstract interface - subroutine psb_c_base_precdescr(prec,iout) + subroutine psb_c_base_precdescr(prec,iout,root) import psb_ipk_, psb_spk_, psb_desc_type, psb_c_vect_type, & & psb_c_base_vect_type, psb_cspmat_type, psb_c_base_prec_type,& & psb_c_base_sparse_mat @@ -164,6 +165,7 @@ module psb_c_base_prec_mod class(psb_c_base_prec_type), intent(in) :: prec integer(psb_ipk_), intent(in), optional :: iout + integer(psb_ipk_), intent(in), optional :: root end subroutine psb_c_base_precdescr end interface @@ -289,4 +291,27 @@ contains end function psb_c_base_get_nzeros + function psb_c_base_desc_prefix(prec) result(res) + use psb_base_mod, only : psb_info, psb_root_ + implicit none + class(psb_c_base_prec_type), intent(in) :: prec + character(len=32) :: res + ! + character(len=32) :: frmtv + integer(psb_ipk_) :: ni, ictxt,iam,np + + ictxt = prec%ictxt + call psb_info(ictxt,iam,np) + + res = '' + if (iam /= psb_root_) then + ni = floor(log10(1.0*np)) + 1 + write(frmtv,'(a,i8.8,a)') '(a,i',ni,',a)' + write(res,frmtv) 'Process ',iam,': Preconditioner: ' + else + write(res,'(a)') 'Preconditioner: ' + end if + + end function psb_c_base_desc_prefix + end module psb_c_base_prec_mod diff --git a/prec/psb_c_bjacprec.f90 b/prec/psb_c_bjacprec.f90 index 5d739877..ceb60c61 100644 --- a/prec/psb_c_bjacprec.f90 +++ b/prec/psb_c_bjacprec.f90 @@ -106,17 +106,17 @@ module psb_c_bjacprec end interface interface - subroutine psb_c_bjac_precbld(a,desc_a,prec,info,upd,amold,afmt,vmold) + subroutine psb_c_bjac_precbld(a,desc_a,prec,info,amold,vmold,imold) import :: psb_ipk_, psb_desc_type, psb_c_bjac_prec_type, psb_c_vect_type, psb_spk_, & - & psb_cspmat_type, psb_c_base_sparse_mat, psb_c_base_vect_type + & psb_cspmat_type, psb_c_base_sparse_mat, psb_c_base_vect_type, & + & psb_i_base_vect_type type(psb_cspmat_type), intent(in), target :: a - type(psb_desc_type), intent(in), target :: desc_a + type(psb_desc_type), intent(inout), target :: desc_a class(psb_c_bjac_prec_type),intent(inout) :: prec integer(psb_ipk_), intent(out) :: info - character, intent(in), optional :: upd - character(len=*), intent(in), optional :: afmt class(psb_c_base_sparse_mat), intent(in), optional :: amold class(psb_c_base_vect_type), intent(in), optional :: vmold + class(psb_i_base_vect_type), intent(in), optional :: imold end subroutine psb_c_bjac_precbld end interface @@ -133,16 +133,18 @@ module psb_c_bjacprec contains - subroutine psb_c_bjac_precdescr(prec,iout) + subroutine psb_c_bjac_precdescr(prec,iout,root) + use psb_penv_mod use psb_error_mod implicit none class(psb_c_bjac_prec_type), intent(in) :: prec integer(psb_ipk_), intent(in), optional :: iout + integer(psb_ipk_), intent(in), optional :: root integer(psb_ipk_) :: err_act, nrow, info - character(len=20) :: name='c_bjac_precdescr' - integer(psb_ipk_) :: iout_ + character(len=20) :: name='c_bjac_precdescr' + integer(psb_ipk_) :: iout_, ictxt, iam, np, root_ call psb_erractionsave(err_act) @@ -153,14 +155,25 @@ contains else iout_ = 6 end if + if (present(root)) then + root_ = root + else + root_ = psb_root_ + end if if (.not.allocated(prec%iprcparm)) then info = 1124 call psb_errpush(info,name,a_err="preconditioner") goto 9999 end if - - write(iout_,*) 'Block Jacobi with: ',& + + ictxt = prec%ictxt + call psb_info(ictxt,iam,np) + if (root_ == -1) root_ = iam + + if (iam == root_) & + & write(iout_,*) trim(prec%desc_prefix()),' ',& + & 'Block Jacobi with: ',& & fact_names(prec%iprcparm(psb_f_type_)) call psb_erractionrestore(err_act) diff --git a/prec/psb_c_diagprec.f90 b/prec/psb_c_diagprec.f90 index 2782c234..a8267070 100644 --- a/prec/psb_c_diagprec.f90 +++ b/prec/psb_c_diagprec.f90 @@ -84,17 +84,17 @@ module psb_c_diagprec end interface interface - subroutine psb_c_diag_precbld(a,desc_a,prec,info,upd,amold,afmt,vmold) + subroutine psb_c_diag_precbld(a,desc_a,prec,info,amold,vmold,imold) import :: psb_ipk_, psb_desc_type, psb_c_diag_prec_type, psb_c_vect_type, psb_spk_, & - & psb_cspmat_type, psb_c_base_sparse_mat, psb_c_base_vect_type + & psb_cspmat_type, psb_c_base_sparse_mat, psb_c_base_vect_type, & + & psb_i_base_vect_type type(psb_cspmat_type), intent(in), target :: a - type(psb_desc_type), intent(in), target :: desc_a + type(psb_desc_type), intent(inout), target :: desc_a class(psb_c_diag_prec_type),intent(inout) :: prec integer(psb_ipk_), intent(out) :: info - character, intent(in), optional :: upd - character(len=*), intent(in), optional :: afmt class(psb_c_base_sparse_mat), intent(in), optional :: amold class(psb_c_base_vect_type), intent(in), optional :: vmold + class(psb_i_base_vect_type), intent(in), optional :: imold end subroutine psb_c_diag_precbld end interface @@ -160,16 +160,18 @@ contains end subroutine psb_c_diag_precfree - subroutine psb_c_diag_precdescr(prec,iout) + subroutine psb_c_diag_precdescr(prec,iout,root) + use psb_penv_mod + use psb_error_mod Implicit None class(psb_c_diag_prec_type), intent(in) :: prec integer(psb_ipk_), intent(in), optional :: iout + integer(psb_ipk_), intent(in), optional :: root integer(psb_ipk_) :: err_act, nrow, info character(len=20) :: name='c_diag_precdescr' - - integer(psb_ipk_) :: iout_ + integer(psb_ipk_) :: iout_, ictxt, iam, np, root_ call psb_erractionsave(err_act) @@ -180,8 +182,20 @@ contains else iout_ = 6 end if - - write(iout_,*) 'Diagonal scaling' + if (present(root)) then + root_ = root + else + root_ = psb_root_ + end if + + ictxt = prec%ictxt + call psb_info(ictxt,iam,np) + + if (root_ == -1) root_ = iam + + if (iam == root_) & + & write(iout_,*) trim(prec%desc_prefix()),' ',& + & 'Diagonal scaling' call psb_erractionsave(err_act) diff --git a/prec/psb_c_nullprec.f90 b/prec/psb_c_nullprec.f90 index 53bc2784..5304bff1 100644 --- a/prec/psb_c_nullprec.f90 +++ b/prec/psb_c_nullprec.f90 @@ -104,18 +104,18 @@ contains return end subroutine psb_c_null_precinit - subroutine psb_c_null_precbld(a,desc_a,prec,info,upd,amold,afmt,vmold) + subroutine psb_c_null_precbld(a,desc_a,prec,info,amold,vmold,imold) Implicit None type(psb_cspmat_type), intent(in), target :: a - type(psb_desc_type), intent(in), target :: desc_a + type(psb_desc_type), intent(inout), target :: desc_a class(psb_c_null_prec_type),intent(inout) :: prec integer(psb_ipk_), intent(out) :: info - character, intent(in), optional :: upd - character(len=*), intent(in), optional :: afmt class(psb_c_base_sparse_mat), intent(in), optional :: amold class(psb_c_base_vect_type), intent(in), optional :: vmold + class(psb_i_base_vect_type), intent(in), optional :: imold + integer(psb_ipk_) :: err_act, nrow character(len=20) :: name='c_null_precbld' @@ -156,16 +156,21 @@ contains end subroutine psb_c_null_precfree - subroutine psb_c_null_precdescr(prec,iout) + subroutine psb_c_null_precdescr(prec,iout,root) + use psb_penv_mod + use psb_error_mod Implicit None class(psb_c_null_prec_type), intent(in) :: prec integer(psb_ipk_), intent(in), optional :: iout + integer(psb_ipk_), intent(in), optional :: root integer(psb_ipk_) :: err_act, nrow, info character(len=20) :: name='c_null_precset' - integer(psb_ipk_) :: iout_ + character(len=32) :: dprefix, frmtv + integer(psb_ipk_) :: ni + integer(psb_ipk_) :: iout_, ictxt, iam, np, root_ call psb_erractionsave(err_act) @@ -176,8 +181,20 @@ contains else iout_ = 6 end if + if (present(root)) then + root_ = root + else + root_ = psb_root_ + end if + + ictxt = prec%ictxt + call psb_info(ictxt,iam,np) + if (root_ == -1) root_ = iam + - write(iout_,*) 'No preconditioning' + if (iam == root_) & + & write(iout_,*) trim(prec%desc_prefix()),' ',& + & 'No preconditioning' call psb_erractionrestore(err_act) return diff --git a/prec/psb_c_prec_mod.f90 b/prec/psb_c_prec_mod.f90 index 59c0e456..aa292aaf 100644 --- a/prec/psb_c_prec_mod.f90 +++ b/prec/psb_c_prec_mod.f90 @@ -34,33 +34,6 @@ module psb_c_prec_mod use psb_c_prec_type use psb_c_base_prec_mod - interface psb_precbld - subroutine psb_cprecbld(a,desc_a,prec,info,upd,amold,afmt,vmold) - import :: psb_ipk_, psb_desc_type, psb_cspmat_type,& - & psb_c_base_sparse_mat, psb_spk_, psb_c_base_vect_type, & - & psb_cprec_type - implicit none - type(psb_cspmat_type), intent(in), target :: a - type(psb_desc_type), intent(in), target :: desc_a - type(psb_cprec_type), intent(inout) :: prec - integer(psb_ipk_), intent(out) :: info - character, intent(in),optional :: upd - character(len=*), intent(in), optional :: afmt - class(psb_c_base_sparse_mat), intent(in), optional :: amold - class(psb_c_base_vect_type), intent(in), optional :: vmold - end subroutine psb_cprecbld - end interface - - interface psb_precinit - subroutine psb_cprecinit(prec,ptype,info) - import :: psb_ipk_, psb_desc_type, psb_cspmat_type, psb_spk_, psb_cprec_type - implicit none - type(psb_cprec_type), intent(inout) :: prec - character(len=*), intent(in) :: ptype - integer(psb_ipk_), intent(out) :: info - end subroutine psb_cprecinit - end interface - interface psb_precset subroutine psb_cprecseti(prec,what,val,info) import :: psb_ipk_, psb_desc_type, psb_cspmat_type, psb_spk_, psb_cprec_type diff --git a/prec/psb_c_prec_type.f90 b/prec/psb_c_prec_type.f90 index eaf9be59..bace774a 100644 --- a/prec/psb_c_prec_type.f90 +++ b/prec/psb_c_prec_type.f90 @@ -50,12 +50,40 @@ module psb_c_prec_type procedure, pass(prec) :: sizeof => psb_cprec_sizeof procedure, pass(prec) :: clone => psb_c_prec_clone procedure, pass(prec) :: free => psb_c_prec_free + procedure, pass(prec) :: build => psb_cprecbld + procedure, pass(prec) :: init => psb_cprecinit + procedure, pass(prec) :: descr => psb_cfile_prec_descr end type psb_cprec_type interface psb_precfree module procedure psb_c_precfree end interface + interface psb_precinit + subroutine psb_cprecinit(prec,ptype,info) + import :: psb_ipk_, psb_cprec_type + implicit none + class(psb_cprec_type), intent(inout) :: prec + character(len=*), intent(in) :: ptype + integer(psb_ipk_), intent(out) :: info + end subroutine psb_cprecinit + end interface + + interface psb_precbld + subroutine psb_cprecbld(a,desc_a,prec,info,amold,vmold,imold) + import :: psb_ipk_, psb_desc_type, psb_cspmat_type,& + & psb_c_base_sparse_mat, psb_spk_, psb_c_base_vect_type, & + & psb_cprec_type, psb_i_base_vect_type + implicit none + type(psb_cspmat_type), intent(in), target :: a + type(psb_desc_type), intent(inout), target :: desc_a + class(psb_cprec_type), intent(inout), target :: prec + integer(psb_ipk_), intent(out) :: info + class(psb_c_base_sparse_mat), intent(in), optional :: amold + class(psb_c_base_vect_type), intent(in), optional :: vmold + class(psb_i_base_vect_type), intent(in), optional :: imold + end subroutine psb_cprecbld + end interface interface psb_precdescr module procedure psb_cfile_prec_descr @@ -120,11 +148,12 @@ module psb_c_prec_type contains - subroutine psb_cfile_prec_descr(p,iout) + subroutine psb_cfile_prec_descr(prec,iout, root) use psb_base_mod implicit none - type(psb_cprec_type), intent(in) :: p + class(psb_cprec_type), intent(in) :: prec integer(psb_ipk_), intent(in), optional :: iout + integer(psb_ipk_), intent(in), optional :: root integer(psb_ipk_) :: iout_,info character(len=20) :: name='prec_descr' @@ -134,11 +163,11 @@ contains iout_ = 6 end if - if (.not.allocated(p%prec)) then + if (.not.allocated(prec%prec)) then info = 1124 call psb_errpush(info,name,a_err="preconditioner") end if - call p%prec%precdescr(iout) + call prec%prec%descr(iout=iout,root=root) end subroutine psb_cfile_prec_descr diff --git a/prec/psb_d_base_prec_mod.f90 b/prec/psb_d_base_prec_mod.f90 index 2f0e7431..94550aa9 100644 --- a/prec/psb_d_base_prec_mod.f90 +++ b/prec/psb_d_base_prec_mod.f90 @@ -41,7 +41,7 @@ module psb_d_base_prec_mod & psb_sizeof_int, psb_sizeof_long_int, psb_sizeof_sp, psb_sizeof_dp, & & psb_erractionsave, psb_erractionrestore, psb_error, psb_get_errstatus, psb_success_,& & psb_d_base_sparse_mat, psb_dspmat_type, psb_d_csr_sparse_mat,& - & psb_d_base_vect_type, psb_d_vect_type + & psb_d_base_vect_type, psb_d_vect_type, psb_i_base_vect_type use psb_prec_const_mod @@ -58,6 +58,9 @@ module psb_d_base_prec_mod procedure(psb_d_base_apply_vect), pass(prec), deferred :: d_apply_v procedure(psb_d_base_apply), pass(prec), deferred :: d_apply generic, public :: apply => d_apply, d_apply_v + generic, public :: build => precbld + generic, public :: descr => precdescr + procedure, pass(prec) :: desc_prefix => psb_d_base_desc_prefix procedure(psb_d_base_precbld), pass(prec), deferred :: precbld procedure(psb_d_base_sizeof), pass(prec), deferred :: sizeof procedure(psb_d_base_precinit), pass(prec), deferred :: precinit @@ -122,21 +125,19 @@ module psb_d_base_prec_mod abstract interface - subroutine psb_d_base_precbld(a,desc_a,prec,info,upd,amold,afmt,vmold) + subroutine psb_d_base_precbld(a,desc_a,prec,info,amold,vmold,imold) import psb_ipk_, psb_dpk_, psb_desc_type, psb_d_vect_type, & & psb_d_base_vect_type, psb_dspmat_type, psb_d_base_prec_type,& - & psb_d_base_sparse_mat + & psb_d_base_sparse_mat, psb_i_base_vect_type Implicit None type(psb_dspmat_type), intent(in), target :: a - type(psb_desc_type), intent(in), target :: desc_a + type(psb_desc_type), intent(inout), target :: desc_a class(psb_d_base_prec_type),intent(inout) :: prec integer(psb_ipk_), intent(out) :: info - character, intent(in), optional :: upd - character(len=*), intent(in), optional :: afmt class(psb_d_base_sparse_mat), intent(in), optional :: amold class(psb_d_base_vect_type), intent(in), optional :: vmold - + class(psb_i_base_vect_type), intent(in), optional :: imold end subroutine psb_d_base_precbld end interface @@ -156,7 +157,7 @@ module psb_d_base_prec_mod abstract interface - subroutine psb_d_base_precdescr(prec,iout) + subroutine psb_d_base_precdescr(prec,iout,root) import psb_ipk_, psb_dpk_, psb_desc_type, psb_d_vect_type, & & psb_d_base_vect_type, psb_dspmat_type, psb_d_base_prec_type,& & psb_d_base_sparse_mat @@ -164,6 +165,7 @@ module psb_d_base_prec_mod class(psb_d_base_prec_type), intent(in) :: prec integer(psb_ipk_), intent(in), optional :: iout + integer(psb_ipk_), intent(in), optional :: root end subroutine psb_d_base_precdescr end interface @@ -289,4 +291,27 @@ contains end function psb_d_base_get_nzeros + function psb_d_base_desc_prefix(prec) result(res) + use psb_base_mod, only : psb_info, psb_root_ + implicit none + class(psb_d_base_prec_type), intent(in) :: prec + character(len=32) :: res + ! + character(len=32) :: frmtv + integer(psb_ipk_) :: ni, ictxt,iam,np + + ictxt = prec%ictxt + call psb_info(ictxt,iam,np) + + res = '' + if (iam /= psb_root_) then + ni = floor(log10(1.0*np)) + 1 + write(frmtv,'(a,i8.8,a)') '(a,i',ni,',a)' + write(res,frmtv) 'Process ',iam,': Preconditioner: ' + else + write(res,'(a)') 'Preconditioner: ' + end if + + end function psb_d_base_desc_prefix + end module psb_d_base_prec_mod diff --git a/prec/psb_d_bjacprec.f90 b/prec/psb_d_bjacprec.f90 index 97f8616e..41e299af 100644 --- a/prec/psb_d_bjacprec.f90 +++ b/prec/psb_d_bjacprec.f90 @@ -106,17 +106,17 @@ module psb_d_bjacprec end interface interface - subroutine psb_d_bjac_precbld(a,desc_a,prec,info,upd,amold,afmt,vmold) + subroutine psb_d_bjac_precbld(a,desc_a,prec,info,amold,vmold,imold) import :: psb_ipk_, psb_desc_type, psb_d_bjac_prec_type, psb_d_vect_type, psb_dpk_, & - & psb_dspmat_type, psb_d_base_sparse_mat, psb_d_base_vect_type + & psb_dspmat_type, psb_d_base_sparse_mat, psb_d_base_vect_type, & + & psb_i_base_vect_type type(psb_dspmat_type), intent(in), target :: a - type(psb_desc_type), intent(in), target :: desc_a + type(psb_desc_type), intent(inout), target :: desc_a class(psb_d_bjac_prec_type),intent(inout) :: prec integer(psb_ipk_), intent(out) :: info - character, intent(in), optional :: upd - character(len=*), intent(in), optional :: afmt class(psb_d_base_sparse_mat), intent(in), optional :: amold class(psb_d_base_vect_type), intent(in), optional :: vmold + class(psb_i_base_vect_type), intent(in), optional :: imold end subroutine psb_d_bjac_precbld end interface @@ -133,16 +133,19 @@ module psb_d_bjacprec contains - subroutine psb_d_bjac_precdescr(prec,iout) + subroutine psb_d_bjac_precdescr(prec,iout,root) + use psb_penv_mod + use psb_penv_mod use psb_error_mod implicit none class(psb_d_bjac_prec_type), intent(in) :: prec integer(psb_ipk_), intent(in), optional :: iout + integer(psb_ipk_), intent(in), optional :: root integer(psb_ipk_) :: err_act, nrow, info - character(len=20) :: name='d_bjac_precdescr' - integer(psb_ipk_) :: iout_ + character(len=20) :: name='d_bjac_precdescr' + integer(psb_ipk_) :: iout_, ictxt, iam, np, root_ call psb_erractionsave(err_act) @@ -153,14 +156,25 @@ contains else iout_ = 6 end if + if (present(root)) then + root_ = root + else + root_ = psb_root_ + end if if (.not.allocated(prec%iprcparm)) then info = 1124 call psb_errpush(info,name,a_err="preconditioner") goto 9999 end if - - write(iout_,*) 'Block Jacobi with: ',& + + ictxt = prec%ictxt + call psb_info(ictxt,iam,np) + if (root_ == -1) root_ = iam + + if (iam == root_) & + & write(iout_,*) trim(prec%desc_prefix()),' ',& + & 'Block Jacobi with: ',& & fact_names(prec%iprcparm(psb_f_type_)) call psb_erractionrestore(err_act) diff --git a/prec/psb_d_diagprec.f90 b/prec/psb_d_diagprec.f90 index c1b40408..3ff6ac9f 100644 --- a/prec/psb_d_diagprec.f90 +++ b/prec/psb_d_diagprec.f90 @@ -84,17 +84,17 @@ module psb_d_diagprec end interface interface - subroutine psb_d_diag_precbld(a,desc_a,prec,info,upd,amold,afmt,vmold) + subroutine psb_d_diag_precbld(a,desc_a,prec,info,amold,vmold,imold) import :: psb_ipk_, psb_desc_type, psb_d_diag_prec_type, psb_d_vect_type, psb_dpk_, & - & psb_dspmat_type, psb_d_base_sparse_mat, psb_d_base_vect_type + & psb_dspmat_type, psb_d_base_sparse_mat, psb_d_base_vect_type, & + & psb_i_base_vect_type type(psb_dspmat_type), intent(in), target :: a - type(psb_desc_type), intent(in), target :: desc_a + type(psb_desc_type), intent(inout), target :: desc_a class(psb_d_diag_prec_type),intent(inout) :: prec integer(psb_ipk_), intent(out) :: info - character, intent(in), optional :: upd - character(len=*), intent(in), optional :: afmt class(psb_d_base_sparse_mat), intent(in), optional :: amold class(psb_d_base_vect_type), intent(in), optional :: vmold + class(psb_i_base_vect_type), intent(in), optional :: imold end subroutine psb_d_diag_precbld end interface @@ -160,16 +160,20 @@ contains end subroutine psb_d_diag_precfree - subroutine psb_d_diag_precdescr(prec,iout) + subroutine psb_d_diag_precdescr(prec,iout,root) + use psb_penv_mod + use psb_error_mod + use psb_penv_mod + use psb_error_mod Implicit None class(psb_d_diag_prec_type), intent(in) :: prec integer(psb_ipk_), intent(in), optional :: iout + integer(psb_ipk_), intent(in), optional :: root integer(psb_ipk_) :: err_act, nrow, info character(len=20) :: name='d_diag_precdescr' - - integer(psb_ipk_) :: iout_ + integer(psb_ipk_) :: iout_, ictxt, iam, np, root_ call psb_erractionsave(err_act) @@ -180,8 +184,20 @@ contains else iout_ = 6 end if - - write(iout_,*) 'Diagonal scaling' + if (present(root)) then + root_ = root + else + root_ = psb_root_ + end if + + ictxt = prec%ictxt + call psb_info(ictxt,iam,np) + + if (root_ == -1) root_ = iam + + if (iam == root_) & + & write(iout_,*) trim(prec%desc_prefix()),' ',& + & 'Diagonal scaling' call psb_erractionsave(err_act) diff --git a/prec/psb_d_nullprec.f90 b/prec/psb_d_nullprec.f90 index 97a9d611..8a1058c1 100644 --- a/prec/psb_d_nullprec.f90 +++ b/prec/psb_d_nullprec.f90 @@ -104,18 +104,18 @@ contains return end subroutine psb_d_null_precinit - subroutine psb_d_null_precbld(a,desc_a,prec,info,upd,amold,afmt,vmold) + subroutine psb_d_null_precbld(a,desc_a,prec,info,amold,vmold,imold) Implicit None type(psb_dspmat_type), intent(in), target :: a - type(psb_desc_type), intent(in), target :: desc_a + type(psb_desc_type), intent(inout), target :: desc_a class(psb_d_null_prec_type),intent(inout) :: prec integer(psb_ipk_), intent(out) :: info - character, intent(in), optional :: upd - character(len=*), intent(in), optional :: afmt class(psb_d_base_sparse_mat), intent(in), optional :: amold class(psb_d_base_vect_type), intent(in), optional :: vmold + class(psb_i_base_vect_type), intent(in), optional :: imold + integer(psb_ipk_) :: err_act, nrow character(len=20) :: name='d_null_precbld' @@ -156,16 +156,23 @@ contains end subroutine psb_d_null_precfree - subroutine psb_d_null_precdescr(prec,iout) + subroutine psb_d_null_precdescr(prec,iout,root) + use psb_penv_mod + use psb_error_mod + use psb_penv_mod + use psb_error_mod Implicit None class(psb_d_null_prec_type), intent(in) :: prec integer(psb_ipk_), intent(in), optional :: iout + integer(psb_ipk_), intent(in), optional :: root integer(psb_ipk_) :: err_act, nrow, info character(len=20) :: name='d_null_precset' - integer(psb_ipk_) :: iout_ + character(len=32) :: dprefix, frmtv + integer(psb_ipk_) :: ni + integer(psb_ipk_) :: iout_, ictxt, iam, np, root_ call psb_erractionsave(err_act) @@ -176,8 +183,20 @@ contains else iout_ = 6 end if + if (present(root)) then + root_ = root + else + root_ = psb_root_ + end if + + ictxt = prec%ictxt + call psb_info(ictxt,iam,np) + if (root_ == -1) root_ = iam + - write(iout_,*) 'No preconditioning' + if (iam == root_) & + & write(iout_,*) trim(prec%desc_prefix()),' ',& + & 'No preconditioning' call psb_erractionrestore(err_act) return diff --git a/prec/psb_d_prec_mod.f90 b/prec/psb_d_prec_mod.f90 index 8eedfa00..52c5d162 100644 --- a/prec/psb_d_prec_mod.f90 +++ b/prec/psb_d_prec_mod.f90 @@ -34,33 +34,6 @@ module psb_d_prec_mod use psb_d_prec_type use psb_d_base_prec_mod - interface psb_precbld - subroutine psb_dprecbld(a,desc_a,prec,info,upd,amold,afmt,vmold) - import :: psb_ipk_, psb_desc_type, psb_dspmat_type,& - & psb_d_base_sparse_mat, psb_dpk_, psb_d_base_vect_type, & - & psb_dprec_type - implicit none - type(psb_dspmat_type), intent(in), target :: a - type(psb_desc_type), intent(in), target :: desc_a - type(psb_dprec_type), intent(inout) :: prec - integer(psb_ipk_), intent(out) :: info - character, intent(in),optional :: upd - character(len=*), intent(in), optional :: afmt - class(psb_d_base_sparse_mat), intent(in), optional :: amold - class(psb_d_base_vect_type), intent(in), optional :: vmold - end subroutine psb_dprecbld - end interface - - interface psb_precinit - subroutine psb_dprecinit(prec,ptype,info) - import :: psb_ipk_, psb_desc_type, psb_dspmat_type, psb_dpk_, psb_dprec_type - implicit none - type(psb_dprec_type), intent(inout) :: prec - character(len=*), intent(in) :: ptype - integer(psb_ipk_), intent(out) :: info - end subroutine psb_dprecinit - end interface - interface psb_precset subroutine psb_dprecseti(prec,what,val,info) import :: psb_ipk_, psb_desc_type, psb_dspmat_type, psb_dpk_, psb_dprec_type diff --git a/prec/psb_d_prec_type.f90 b/prec/psb_d_prec_type.f90 index cd675191..97ec74b1 100644 --- a/prec/psb_d_prec_type.f90 +++ b/prec/psb_d_prec_type.f90 @@ -50,12 +50,40 @@ module psb_d_prec_type procedure, pass(prec) :: sizeof => psb_dprec_sizeof procedure, pass(prec) :: clone => psb_d_prec_clone procedure, pass(prec) :: free => psb_d_prec_free + procedure, pass(prec) :: build => psb_dprecbld + procedure, pass(prec) :: init => psb_dprecinit + procedure, pass(prec) :: descr => psb_dfile_prec_descr end type psb_dprec_type interface psb_precfree module procedure psb_d_precfree end interface + interface psb_precinit + subroutine psb_dprecinit(prec,ptype,info) + import :: psb_ipk_, psb_dprec_type + implicit none + class(psb_dprec_type), intent(inout) :: prec + character(len=*), intent(in) :: ptype + integer(psb_ipk_), intent(out) :: info + end subroutine psb_dprecinit + end interface + + interface psb_precbld + subroutine psb_dprecbld(a,desc_a,prec,info,amold,vmold,imold) + import :: psb_ipk_, psb_desc_type, psb_dspmat_type,& + & psb_d_base_sparse_mat, psb_dpk_, psb_d_base_vect_type, & + & psb_dprec_type, psb_i_base_vect_type + implicit none + type(psb_dspmat_type), intent(in), target :: a + type(psb_desc_type), intent(inout), target :: desc_a + class(psb_dprec_type), intent(inout), target :: prec + integer(psb_ipk_), intent(out) :: info + class(psb_d_base_sparse_mat), intent(in), optional :: amold + class(psb_d_base_vect_type), intent(in), optional :: vmold + class(psb_i_base_vect_type), intent(in), optional :: imold + end subroutine psb_dprecbld + end interface interface psb_precdescr module procedure psb_dfile_prec_descr @@ -120,11 +148,12 @@ module psb_d_prec_type contains - subroutine psb_dfile_prec_descr(p,iout) + subroutine psb_dfile_prec_descr(prec,iout, root) use psb_base_mod implicit none - type(psb_dprec_type), intent(in) :: p + class(psb_dprec_type), intent(in) :: prec integer(psb_ipk_), intent(in), optional :: iout + integer(psb_ipk_), intent(in), optional :: root integer(psb_ipk_) :: iout_,info character(len=20) :: name='prec_descr' @@ -134,11 +163,11 @@ contains iout_ = 6 end if - if (.not.allocated(p%prec)) then + if (.not.allocated(prec%prec)) then info = 1124 call psb_errpush(info,name,a_err="preconditioner") end if - call p%prec%precdescr(iout) + call prec%prec%descr(iout=iout,root=root) end subroutine psb_dfile_prec_descr diff --git a/prec/psb_s_base_prec_mod.f90 b/prec/psb_s_base_prec_mod.f90 index 9369acfd..6440f703 100644 --- a/prec/psb_s_base_prec_mod.f90 +++ b/prec/psb_s_base_prec_mod.f90 @@ -41,7 +41,7 @@ module psb_s_base_prec_mod & psb_sizeof_int, psb_sizeof_long_int, psb_sizeof_sp, psb_sizeof_dp, & & psb_erractionsave, psb_erractionrestore, psb_error, psb_get_errstatus, psb_success_,& & psb_s_base_sparse_mat, psb_sspmat_type, psb_s_csr_sparse_mat,& - & psb_s_base_vect_type, psb_s_vect_type + & psb_s_base_vect_type, psb_s_vect_type, psb_i_base_vect_type use psb_prec_const_mod @@ -58,6 +58,9 @@ module psb_s_base_prec_mod procedure(psb_s_base_apply_vect), pass(prec), deferred :: s_apply_v procedure(psb_s_base_apply), pass(prec), deferred :: s_apply generic, public :: apply => s_apply, s_apply_v + generic, public :: build => precbld + generic, public :: descr => precdescr + procedure, pass(prec) :: desc_prefix => psb_s_base_desc_prefix procedure(psb_s_base_precbld), pass(prec), deferred :: precbld procedure(psb_s_base_sizeof), pass(prec), deferred :: sizeof procedure(psb_s_base_precinit), pass(prec), deferred :: precinit @@ -122,21 +125,19 @@ module psb_s_base_prec_mod abstract interface - subroutine psb_s_base_precbld(a,desc_a,prec,info,upd,amold,afmt,vmold) + subroutine psb_s_base_precbld(a,desc_a,prec,info,amold,vmold,imold) import psb_ipk_, psb_spk_, psb_desc_type, psb_s_vect_type, & & psb_s_base_vect_type, psb_sspmat_type, psb_s_base_prec_type,& - & psb_s_base_sparse_mat + & psb_s_base_sparse_mat, psb_i_base_vect_type Implicit None type(psb_sspmat_type), intent(in), target :: a - type(psb_desc_type), intent(in), target :: desc_a + type(psb_desc_type), intent(inout), target :: desc_a class(psb_s_base_prec_type),intent(inout) :: prec integer(psb_ipk_), intent(out) :: info - character, intent(in), optional :: upd - character(len=*), intent(in), optional :: afmt class(psb_s_base_sparse_mat), intent(in), optional :: amold class(psb_s_base_vect_type), intent(in), optional :: vmold - + class(psb_i_base_vect_type), intent(in), optional :: imold end subroutine psb_s_base_precbld end interface @@ -156,7 +157,7 @@ module psb_s_base_prec_mod abstract interface - subroutine psb_s_base_precdescr(prec,iout) + subroutine psb_s_base_precdescr(prec,iout,root) import psb_ipk_, psb_spk_, psb_desc_type, psb_s_vect_type, & & psb_s_base_vect_type, psb_sspmat_type, psb_s_base_prec_type,& & psb_s_base_sparse_mat @@ -164,6 +165,7 @@ module psb_s_base_prec_mod class(psb_s_base_prec_type), intent(in) :: prec integer(psb_ipk_), intent(in), optional :: iout + integer(psb_ipk_), intent(in), optional :: root end subroutine psb_s_base_precdescr end interface @@ -289,4 +291,27 @@ contains end function psb_s_base_get_nzeros + function psb_s_base_desc_prefix(prec) result(res) + use psb_base_mod, only : psb_info, psb_root_ + implicit none + class(psb_s_base_prec_type), intent(in) :: prec + character(len=32) :: res + ! + character(len=32) :: frmtv + integer(psb_ipk_) :: ni, ictxt,iam,np + + ictxt = prec%ictxt + call psb_info(ictxt,iam,np) + + res = '' + if (iam /= psb_root_) then + ni = floor(log10(1.0*np)) + 1 + write(frmtv,'(a,i8.8,a)') '(a,i',ni,',a)' + write(res,frmtv) 'Process ',iam,': Preconditioner: ' + else + write(res,'(a)') 'Preconditioner: ' + end if + + end function psb_s_base_desc_prefix + end module psb_s_base_prec_mod diff --git a/prec/psb_s_bjacprec.f90 b/prec/psb_s_bjacprec.f90 index 957a176b..e8ec9b86 100644 --- a/prec/psb_s_bjacprec.f90 +++ b/prec/psb_s_bjacprec.f90 @@ -106,17 +106,17 @@ module psb_s_bjacprec end interface interface - subroutine psb_s_bjac_precbld(a,desc_a,prec,info,upd,amold,afmt,vmold) + subroutine psb_s_bjac_precbld(a,desc_a,prec,info,amold,vmold,imold) import :: psb_ipk_, psb_desc_type, psb_s_bjac_prec_type, psb_s_vect_type, psb_spk_, & - & psb_sspmat_type, psb_s_base_sparse_mat, psb_s_base_vect_type + & psb_sspmat_type, psb_s_base_sparse_mat, psb_s_base_vect_type, & + & psb_i_base_vect_type type(psb_sspmat_type), intent(in), target :: a - type(psb_desc_type), intent(in), target :: desc_a + type(psb_desc_type), intent(inout), target :: desc_a class(psb_s_bjac_prec_type),intent(inout) :: prec integer(psb_ipk_), intent(out) :: info - character, intent(in), optional :: upd - character(len=*), intent(in), optional :: afmt class(psb_s_base_sparse_mat), intent(in), optional :: amold class(psb_s_base_vect_type), intent(in), optional :: vmold + class(psb_i_base_vect_type), intent(in), optional :: imold end subroutine psb_s_bjac_precbld end interface @@ -133,16 +133,18 @@ module psb_s_bjacprec contains - subroutine psb_s_bjac_precdescr(prec,iout) + subroutine psb_s_bjac_precdescr(prec,iout,root) + use psb_penv_mod use psb_error_mod implicit none class(psb_s_bjac_prec_type), intent(in) :: prec integer(psb_ipk_), intent(in), optional :: iout + integer(psb_ipk_), intent(in), optional :: root integer(psb_ipk_) :: err_act, nrow, info - character(len=20) :: name='s_bjac_precdescr' - integer(psb_ipk_) :: iout_ + character(len=20) :: name='s_bjac_precdescr' + integer(psb_ipk_) :: iout_, ictxt, iam, np, root_ call psb_erractionsave(err_act) @@ -153,14 +155,25 @@ contains else iout_ = 6 end if + if (present(root)) then + root_ = root + else + root_ = psb_root_ + end if if (.not.allocated(prec%iprcparm)) then info = 1124 call psb_errpush(info,name,a_err="preconditioner") goto 9999 end if - - write(iout_,*) 'Block Jacobi with: ',& + + ictxt = prec%ictxt + call psb_info(ictxt,iam,np) + if (root_ == -1) root_ = iam + + if (iam == root_) & + & write(iout_,*) trim(prec%desc_prefix()),' ',& + & 'Block Jacobi with: ',& & fact_names(prec%iprcparm(psb_f_type_)) call psb_erractionrestore(err_act) diff --git a/prec/psb_s_diagprec.f90 b/prec/psb_s_diagprec.f90 index eb122742..cf7c5991 100644 --- a/prec/psb_s_diagprec.f90 +++ b/prec/psb_s_diagprec.f90 @@ -84,17 +84,17 @@ module psb_s_diagprec end interface interface - subroutine psb_s_diag_precbld(a,desc_a,prec,info,upd,amold,afmt,vmold) + subroutine psb_s_diag_precbld(a,desc_a,prec,info,amold,vmold,imold) import :: psb_ipk_, psb_desc_type, psb_s_diag_prec_type, psb_s_vect_type, psb_spk_, & - & psb_sspmat_type, psb_s_base_sparse_mat, psb_s_base_vect_type + & psb_sspmat_type, psb_s_base_sparse_mat, psb_s_base_vect_type, & + & psb_i_base_vect_type type(psb_sspmat_type), intent(in), target :: a - type(psb_desc_type), intent(in), target :: desc_a + type(psb_desc_type), intent(inout), target :: desc_a class(psb_s_diag_prec_type),intent(inout) :: prec integer(psb_ipk_), intent(out) :: info - character, intent(in), optional :: upd - character(len=*), intent(in), optional :: afmt class(psb_s_base_sparse_mat), intent(in), optional :: amold class(psb_s_base_vect_type), intent(in), optional :: vmold + class(psb_i_base_vect_type), intent(in), optional :: imold end subroutine psb_s_diag_precbld end interface @@ -160,16 +160,18 @@ contains end subroutine psb_s_diag_precfree - subroutine psb_s_diag_precdescr(prec,iout) + subroutine psb_s_diag_precdescr(prec,iout,root) + use psb_penv_mod + use psb_error_mod Implicit None class(psb_s_diag_prec_type), intent(in) :: prec integer(psb_ipk_), intent(in), optional :: iout + integer(psb_ipk_), intent(in), optional :: root integer(psb_ipk_) :: err_act, nrow, info character(len=20) :: name='s_diag_precdescr' - - integer(psb_ipk_) :: iout_ + integer(psb_ipk_) :: iout_, ictxt, iam, np, root_ call psb_erractionsave(err_act) @@ -180,8 +182,20 @@ contains else iout_ = 6 end if - - write(iout_,*) 'Diagonal scaling' + if (present(root)) then + root_ = root + else + root_ = psb_root_ + end if + + ictxt = prec%ictxt + call psb_info(ictxt,iam,np) + + if (root_ == -1) root_ = iam + + if (iam == root_) & + & write(iout_,*) trim(prec%desc_prefix()),' ',& + & 'Diagonal scaling' call psb_erractionsave(err_act) diff --git a/prec/psb_s_nullprec.f90 b/prec/psb_s_nullprec.f90 index a0a8bb9a..8247573d 100644 --- a/prec/psb_s_nullprec.f90 +++ b/prec/psb_s_nullprec.f90 @@ -104,18 +104,18 @@ contains return end subroutine psb_s_null_precinit - subroutine psb_s_null_precbld(a,desc_a,prec,info,upd,amold,afmt,vmold) + subroutine psb_s_null_precbld(a,desc_a,prec,info,amold,vmold,imold) Implicit None type(psb_sspmat_type), intent(in), target :: a - type(psb_desc_type), intent(in), target :: desc_a + type(psb_desc_type), intent(inout), target :: desc_a class(psb_s_null_prec_type),intent(inout) :: prec integer(psb_ipk_), intent(out) :: info - character, intent(in), optional :: upd - character(len=*), intent(in), optional :: afmt class(psb_s_base_sparse_mat), intent(in), optional :: amold class(psb_s_base_vect_type), intent(in), optional :: vmold + class(psb_i_base_vect_type), intent(in), optional :: imold + integer(psb_ipk_) :: err_act, nrow character(len=20) :: name='s_null_precbld' @@ -156,16 +156,21 @@ contains end subroutine psb_s_null_precfree - subroutine psb_s_null_precdescr(prec,iout) + subroutine psb_s_null_precdescr(prec,iout,root) + use psb_penv_mod + use psb_error_mod Implicit None class(psb_s_null_prec_type), intent(in) :: prec integer(psb_ipk_), intent(in), optional :: iout + integer(psb_ipk_), intent(in), optional :: root integer(psb_ipk_) :: err_act, nrow, info character(len=20) :: name='s_null_precset' - integer(psb_ipk_) :: iout_ + character(len=32) :: dprefix, frmtv + integer(psb_ipk_) :: ni + integer(psb_ipk_) :: iout_, ictxt, iam, np, root_ call psb_erractionsave(err_act) @@ -176,8 +181,20 @@ contains else iout_ = 6 end if + if (present(root)) then + root_ = root + else + root_ = psb_root_ + end if + + ictxt = prec%ictxt + call psb_info(ictxt,iam,np) + if (root_ == -1) root_ = iam + - write(iout_,*) 'No preconditioning' + if (iam == root_) & + & write(iout_,*) trim(prec%desc_prefix()),' ',& + & 'No preconditioning' call psb_erractionrestore(err_act) return diff --git a/prec/psb_s_prec_mod.f90 b/prec/psb_s_prec_mod.f90 index 85f52af9..98ebfefc 100644 --- a/prec/psb_s_prec_mod.f90 +++ b/prec/psb_s_prec_mod.f90 @@ -34,33 +34,6 @@ module psb_s_prec_mod use psb_s_prec_type use psb_s_base_prec_mod - interface psb_precbld - subroutine psb_sprecbld(a,desc_a,prec,info,upd,amold,afmt,vmold) - import :: psb_ipk_, psb_desc_type, psb_sspmat_type,& - & psb_s_base_sparse_mat, psb_spk_, psb_s_base_vect_type, & - & psb_sprec_type - implicit none - type(psb_sspmat_type), intent(in), target :: a - type(psb_desc_type), intent(in), target :: desc_a - type(psb_sprec_type), intent(inout) :: prec - integer(psb_ipk_), intent(out) :: info - character, intent(in),optional :: upd - character(len=*), intent(in), optional :: afmt - class(psb_s_base_sparse_mat), intent(in), optional :: amold - class(psb_s_base_vect_type), intent(in), optional :: vmold - end subroutine psb_sprecbld - end interface - - interface psb_precinit - subroutine psb_sprecinit(prec,ptype,info) - import :: psb_ipk_, psb_desc_type, psb_sspmat_type, psb_spk_, psb_sprec_type - implicit none - type(psb_sprec_type), intent(inout) :: prec - character(len=*), intent(in) :: ptype - integer(psb_ipk_), intent(out) :: info - end subroutine psb_sprecinit - end interface - interface psb_precset subroutine psb_sprecseti(prec,what,val,info) import :: psb_ipk_, psb_desc_type, psb_sspmat_type, psb_spk_, psb_sprec_type diff --git a/prec/psb_s_prec_type.f90 b/prec/psb_s_prec_type.f90 index 54ff6879..957e6f17 100644 --- a/prec/psb_s_prec_type.f90 +++ b/prec/psb_s_prec_type.f90 @@ -50,12 +50,40 @@ module psb_s_prec_type procedure, pass(prec) :: sizeof => psb_sprec_sizeof procedure, pass(prec) :: clone => psb_s_prec_clone procedure, pass(prec) :: free => psb_s_prec_free + procedure, pass(prec) :: build => psb_sprecbld + procedure, pass(prec) :: init => psb_sprecinit + procedure, pass(prec) :: descr => psb_sfile_prec_descr end type psb_sprec_type interface psb_precfree module procedure psb_s_precfree end interface + interface psb_precinit + subroutine psb_sprecinit(prec,ptype,info) + import :: psb_ipk_, psb_sprec_type + implicit none + class(psb_sprec_type), intent(inout) :: prec + character(len=*), intent(in) :: ptype + integer(psb_ipk_), intent(out) :: info + end subroutine psb_sprecinit + end interface + + interface psb_precbld + subroutine psb_sprecbld(a,desc_a,prec,info,amold,vmold,imold) + import :: psb_ipk_, psb_desc_type, psb_sspmat_type,& + & psb_s_base_sparse_mat, psb_spk_, psb_s_base_vect_type, & + & psb_sprec_type, psb_i_base_vect_type + implicit none + type(psb_sspmat_type), intent(in), target :: a + type(psb_desc_type), intent(inout), target :: desc_a + class(psb_sprec_type), intent(inout), target :: prec + integer(psb_ipk_), intent(out) :: info + class(psb_s_base_sparse_mat), intent(in), optional :: amold + class(psb_s_base_vect_type), intent(in), optional :: vmold + class(psb_i_base_vect_type), intent(in), optional :: imold + end subroutine psb_sprecbld + end interface interface psb_precdescr module procedure psb_sfile_prec_descr @@ -120,11 +148,12 @@ module psb_s_prec_type contains - subroutine psb_sfile_prec_descr(p,iout) + subroutine psb_sfile_prec_descr(prec,iout, root) use psb_base_mod implicit none - type(psb_sprec_type), intent(in) :: p + class(psb_sprec_type), intent(in) :: prec integer(psb_ipk_), intent(in), optional :: iout + integer(psb_ipk_), intent(in), optional :: root integer(psb_ipk_) :: iout_,info character(len=20) :: name='prec_descr' @@ -134,11 +163,11 @@ contains iout_ = 6 end if - if (.not.allocated(p%prec)) then + if (.not.allocated(prec%prec)) then info = 1124 call psb_errpush(info,name,a_err="preconditioner") end if - call p%prec%precdescr(iout) + call prec%prec%descr(iout=iout,root=root) end subroutine psb_sfile_prec_descr diff --git a/prec/psb_z_base_prec_mod.f90 b/prec/psb_z_base_prec_mod.f90 index 0aa3fd0e..3507f9dc 100644 --- a/prec/psb_z_base_prec_mod.f90 +++ b/prec/psb_z_base_prec_mod.f90 @@ -41,7 +41,7 @@ module psb_z_base_prec_mod & psb_sizeof_int, psb_sizeof_long_int, psb_sizeof_sp, psb_sizeof_dp, & & psb_erractionsave, psb_erractionrestore, psb_error, psb_get_errstatus, psb_success_,& & psb_z_base_sparse_mat, psb_zspmat_type, psb_z_csr_sparse_mat,& - & psb_z_base_vect_type, psb_z_vect_type + & psb_z_base_vect_type, psb_z_vect_type, psb_i_base_vect_type use psb_prec_const_mod @@ -58,6 +58,9 @@ module psb_z_base_prec_mod procedure(psb_z_base_apply_vect), pass(prec), deferred :: z_apply_v procedure(psb_z_base_apply), pass(prec), deferred :: z_apply generic, public :: apply => z_apply, z_apply_v + generic, public :: build => precbld + generic, public :: descr => precdescr + procedure, pass(prec) :: desc_prefix => psb_z_base_desc_prefix procedure(psb_z_base_precbld), pass(prec), deferred :: precbld procedure(psb_z_base_sizeof), pass(prec), deferred :: sizeof procedure(psb_z_base_precinit), pass(prec), deferred :: precinit @@ -122,21 +125,19 @@ module psb_z_base_prec_mod abstract interface - subroutine psb_z_base_precbld(a,desc_a,prec,info,upd,amold,afmt,vmold) + subroutine psb_z_base_precbld(a,desc_a,prec,info,amold,vmold,imold) import psb_ipk_, psb_dpk_, psb_desc_type, psb_z_vect_type, & & psb_z_base_vect_type, psb_zspmat_type, psb_z_base_prec_type,& - & psb_z_base_sparse_mat + & psb_z_base_sparse_mat, psb_i_base_vect_type Implicit None type(psb_zspmat_type), intent(in), target :: a - type(psb_desc_type), intent(in), target :: desc_a + type(psb_desc_type), intent(inout), target :: desc_a class(psb_z_base_prec_type),intent(inout) :: prec integer(psb_ipk_), intent(out) :: info - character, intent(in), optional :: upd - character(len=*), intent(in), optional :: afmt class(psb_z_base_sparse_mat), intent(in), optional :: amold class(psb_z_base_vect_type), intent(in), optional :: vmold - + class(psb_i_base_vect_type), intent(in), optional :: imold end subroutine psb_z_base_precbld end interface @@ -156,7 +157,7 @@ module psb_z_base_prec_mod abstract interface - subroutine psb_z_base_precdescr(prec,iout) + subroutine psb_z_base_precdescr(prec,iout,root) import psb_ipk_, psb_dpk_, psb_desc_type, psb_z_vect_type, & & psb_z_base_vect_type, psb_zspmat_type, psb_z_base_prec_type,& & psb_z_base_sparse_mat @@ -164,6 +165,7 @@ module psb_z_base_prec_mod class(psb_z_base_prec_type), intent(in) :: prec integer(psb_ipk_), intent(in), optional :: iout + integer(psb_ipk_), intent(in), optional :: root end subroutine psb_z_base_precdescr end interface @@ -289,4 +291,27 @@ contains end function psb_z_base_get_nzeros + function psb_z_base_desc_prefix(prec) result(res) + use psb_base_mod, only : psb_info, psb_root_ + implicit none + class(psb_z_base_prec_type), intent(in) :: prec + character(len=32) :: res + ! + character(len=32) :: frmtv + integer(psb_ipk_) :: ni, ictxt,iam,np + + ictxt = prec%ictxt + call psb_info(ictxt,iam,np) + + res = '' + if (iam /= psb_root_) then + ni = floor(log10(1.0*np)) + 1 + write(frmtv,'(a,i8.8,a)') '(a,i',ni,',a)' + write(res,frmtv) 'Process ',iam,': Preconditioner: ' + else + write(res,'(a)') 'Preconditioner: ' + end if + + end function psb_z_base_desc_prefix + end module psb_z_base_prec_mod diff --git a/prec/psb_z_bjacprec.f90 b/prec/psb_z_bjacprec.f90 index c50e94a2..2c63b002 100644 --- a/prec/psb_z_bjacprec.f90 +++ b/prec/psb_z_bjacprec.f90 @@ -106,17 +106,17 @@ module psb_z_bjacprec end interface interface - subroutine psb_z_bjac_precbld(a,desc_a,prec,info,upd,amold,afmt,vmold) + subroutine psb_z_bjac_precbld(a,desc_a,prec,info,amold,vmold,imold) import :: psb_ipk_, psb_desc_type, psb_z_bjac_prec_type, psb_z_vect_type, psb_dpk_, & - & psb_zspmat_type, psb_z_base_sparse_mat, psb_z_base_vect_type + & psb_zspmat_type, psb_z_base_sparse_mat, psb_z_base_vect_type, & + & psb_i_base_vect_type type(psb_zspmat_type), intent(in), target :: a - type(psb_desc_type), intent(in), target :: desc_a + type(psb_desc_type), intent(inout), target :: desc_a class(psb_z_bjac_prec_type),intent(inout) :: prec integer(psb_ipk_), intent(out) :: info - character, intent(in), optional :: upd - character(len=*), intent(in), optional :: afmt class(psb_z_base_sparse_mat), intent(in), optional :: amold class(psb_z_base_vect_type), intent(in), optional :: vmold + class(psb_i_base_vect_type), intent(in), optional :: imold end subroutine psb_z_bjac_precbld end interface @@ -133,16 +133,18 @@ module psb_z_bjacprec contains - subroutine psb_z_bjac_precdescr(prec,iout) + subroutine psb_z_bjac_precdescr(prec,iout,root) + use psb_penv_mod use psb_error_mod implicit none class(psb_z_bjac_prec_type), intent(in) :: prec integer(psb_ipk_), intent(in), optional :: iout + integer(psb_ipk_), intent(in), optional :: root integer(psb_ipk_) :: err_act, nrow, info - character(len=20) :: name='z_bjac_precdescr' - integer(psb_ipk_) :: iout_ + character(len=20) :: name='z_bjac_precdescr' + integer(psb_ipk_) :: iout_, ictxt, iam, np, root_ call psb_erractionsave(err_act) @@ -153,14 +155,25 @@ contains else iout_ = 6 end if + if (present(root)) then + root_ = root + else + root_ = psb_root_ + end if if (.not.allocated(prec%iprcparm)) then info = 1124 call psb_errpush(info,name,a_err="preconditioner") goto 9999 end if - - write(iout_,*) 'Block Jacobi with: ',& + + ictxt = prec%ictxt + call psb_info(ictxt,iam,np) + if (root_ == -1) root_ = iam + + if (iam == root_) & + & write(iout_,*) trim(prec%desc_prefix()),' ',& + & 'Block Jacobi with: ',& & fact_names(prec%iprcparm(psb_f_type_)) call psb_erractionrestore(err_act) diff --git a/prec/psb_z_diagprec.f90 b/prec/psb_z_diagprec.f90 index 1c429e1b..7ddc168a 100644 --- a/prec/psb_z_diagprec.f90 +++ b/prec/psb_z_diagprec.f90 @@ -84,17 +84,17 @@ module psb_z_diagprec end interface interface - subroutine psb_z_diag_precbld(a,desc_a,prec,info,upd,amold,afmt,vmold) + subroutine psb_z_diag_precbld(a,desc_a,prec,info,amold,vmold,imold) import :: psb_ipk_, psb_desc_type, psb_z_diag_prec_type, psb_z_vect_type, psb_dpk_, & - & psb_zspmat_type, psb_z_base_sparse_mat, psb_z_base_vect_type + & psb_zspmat_type, psb_z_base_sparse_mat, psb_z_base_vect_type, & + & psb_i_base_vect_type type(psb_zspmat_type), intent(in), target :: a - type(psb_desc_type), intent(in), target :: desc_a + type(psb_desc_type), intent(inout), target :: desc_a class(psb_z_diag_prec_type),intent(inout) :: prec integer(psb_ipk_), intent(out) :: info - character, intent(in), optional :: upd - character(len=*), intent(in), optional :: afmt class(psb_z_base_sparse_mat), intent(in), optional :: amold class(psb_z_base_vect_type), intent(in), optional :: vmold + class(psb_i_base_vect_type), intent(in), optional :: imold end subroutine psb_z_diag_precbld end interface @@ -160,16 +160,18 @@ contains end subroutine psb_z_diag_precfree - subroutine psb_z_diag_precdescr(prec,iout) + subroutine psb_z_diag_precdescr(prec,iout,root) + use psb_penv_mod + use psb_error_mod Implicit None class(psb_z_diag_prec_type), intent(in) :: prec integer(psb_ipk_), intent(in), optional :: iout + integer(psb_ipk_), intent(in), optional :: root integer(psb_ipk_) :: err_act, nrow, info character(len=20) :: name='z_diag_precdescr' - - integer(psb_ipk_) :: iout_ + integer(psb_ipk_) :: iout_, ictxt, iam, np, root_ call psb_erractionsave(err_act) @@ -180,8 +182,20 @@ contains else iout_ = 6 end if - - write(iout_,*) 'Diagonal scaling' + if (present(root)) then + root_ = root + else + root_ = psb_root_ + end if + + ictxt = prec%ictxt + call psb_info(ictxt,iam,np) + + if (root_ == -1) root_ = iam + + if (iam == root_) & + & write(iout_,*) trim(prec%desc_prefix()),' ',& + & 'Diagonal scaling' call psb_erractionsave(err_act) diff --git a/prec/psb_z_nullprec.f90 b/prec/psb_z_nullprec.f90 index d45b3e10..d8c4f0ab 100644 --- a/prec/psb_z_nullprec.f90 +++ b/prec/psb_z_nullprec.f90 @@ -104,18 +104,18 @@ contains return end subroutine psb_z_null_precinit - subroutine psb_z_null_precbld(a,desc_a,prec,info,upd,amold,afmt,vmold) + subroutine psb_z_null_precbld(a,desc_a,prec,info,amold,vmold,imold) Implicit None type(psb_zspmat_type), intent(in), target :: a - type(psb_desc_type), intent(in), target :: desc_a + type(psb_desc_type), intent(inout), target :: desc_a class(psb_z_null_prec_type),intent(inout) :: prec integer(psb_ipk_), intent(out) :: info - character, intent(in), optional :: upd - character(len=*), intent(in), optional :: afmt class(psb_z_base_sparse_mat), intent(in), optional :: amold class(psb_z_base_vect_type), intent(in), optional :: vmold + class(psb_i_base_vect_type), intent(in), optional :: imold + integer(psb_ipk_) :: err_act, nrow character(len=20) :: name='z_null_precbld' @@ -156,16 +156,21 @@ contains end subroutine psb_z_null_precfree - subroutine psb_z_null_precdescr(prec,iout) + subroutine psb_z_null_precdescr(prec,iout,root) + use psb_penv_mod + use psb_error_mod Implicit None class(psb_z_null_prec_type), intent(in) :: prec integer(psb_ipk_), intent(in), optional :: iout + integer(psb_ipk_), intent(in), optional :: root integer(psb_ipk_) :: err_act, nrow, info character(len=20) :: name='z_null_precset' - integer(psb_ipk_) :: iout_ + character(len=32) :: dprefix, frmtv + integer(psb_ipk_) :: ni + integer(psb_ipk_) :: iout_, ictxt, iam, np, root_ call psb_erractionsave(err_act) @@ -176,8 +181,20 @@ contains else iout_ = 6 end if + if (present(root)) then + root_ = root + else + root_ = psb_root_ + end if + + ictxt = prec%ictxt + call psb_info(ictxt,iam,np) + if (root_ == -1) root_ = iam + - write(iout_,*) 'No preconditioning' + if (iam == root_) & + & write(iout_,*) trim(prec%desc_prefix()),' ',& + & 'No preconditioning' call psb_erractionrestore(err_act) return diff --git a/prec/psb_z_prec_mod.f90 b/prec/psb_z_prec_mod.f90 index 28a95f69..04427b07 100644 --- a/prec/psb_z_prec_mod.f90 +++ b/prec/psb_z_prec_mod.f90 @@ -34,33 +34,6 @@ module psb_z_prec_mod use psb_z_prec_type use psb_z_base_prec_mod - interface psb_precbld - subroutine psb_zprecbld(a,desc_a,prec,info,upd,amold,afmt,vmold) - import :: psb_ipk_, psb_desc_type, psb_zspmat_type,& - & psb_z_base_sparse_mat, psb_dpk_, psb_z_base_vect_type, & - & psb_zprec_type - implicit none - type(psb_zspmat_type), intent(in), target :: a - type(psb_desc_type), intent(in), target :: desc_a - type(psb_zprec_type), intent(inout) :: prec - integer(psb_ipk_), intent(out) :: info - character, intent(in),optional :: upd - character(len=*), intent(in), optional :: afmt - class(psb_z_base_sparse_mat), intent(in), optional :: amold - class(psb_z_base_vect_type), intent(in), optional :: vmold - end subroutine psb_zprecbld - end interface - - interface psb_precinit - subroutine psb_zprecinit(prec,ptype,info) - import :: psb_ipk_, psb_desc_type, psb_zspmat_type, psb_dpk_, psb_zprec_type - implicit none - type(psb_zprec_type), intent(inout) :: prec - character(len=*), intent(in) :: ptype - integer(psb_ipk_), intent(out) :: info - end subroutine psb_zprecinit - end interface - interface psb_precset subroutine psb_zprecseti(prec,what,val,info) import :: psb_ipk_, psb_desc_type, psb_zspmat_type, psb_dpk_, psb_zprec_type diff --git a/prec/psb_z_prec_type.f90 b/prec/psb_z_prec_type.f90 index 69e6c20f..09141385 100644 --- a/prec/psb_z_prec_type.f90 +++ b/prec/psb_z_prec_type.f90 @@ -50,12 +50,40 @@ module psb_z_prec_type procedure, pass(prec) :: sizeof => psb_zprec_sizeof procedure, pass(prec) :: clone => psb_z_prec_clone procedure, pass(prec) :: free => psb_z_prec_free + procedure, pass(prec) :: build => psb_zprecbld + procedure, pass(prec) :: init => psb_zprecinit + procedure, pass(prec) :: descr => psb_zfile_prec_descr end type psb_zprec_type interface psb_precfree module procedure psb_z_precfree end interface + interface psb_precinit + subroutine psb_zprecinit(prec,ptype,info) + import :: psb_ipk_, psb_zprec_type + implicit none + class(psb_zprec_type), intent(inout) :: prec + character(len=*), intent(in) :: ptype + integer(psb_ipk_), intent(out) :: info + end subroutine psb_zprecinit + end interface + + interface psb_precbld + subroutine psb_zprecbld(a,desc_a,prec,info,amold,vmold,imold) + import :: psb_ipk_, psb_desc_type, psb_zspmat_type,& + & psb_z_base_sparse_mat, psb_dpk_, psb_z_base_vect_type, & + & psb_zprec_type, psb_i_base_vect_type + implicit none + type(psb_zspmat_type), intent(in), target :: a + type(psb_desc_type), intent(inout), target :: desc_a + class(psb_zprec_type), intent(inout), target :: prec + integer(psb_ipk_), intent(out) :: info + class(psb_z_base_sparse_mat), intent(in), optional :: amold + class(psb_z_base_vect_type), intent(in), optional :: vmold + class(psb_i_base_vect_type), intent(in), optional :: imold + end subroutine psb_zprecbld + end interface interface psb_precdescr module procedure psb_zfile_prec_descr @@ -120,11 +148,12 @@ module psb_z_prec_type contains - subroutine psb_zfile_prec_descr(p,iout) + subroutine psb_zfile_prec_descr(prec,iout, root) use psb_base_mod implicit none - type(psb_zprec_type), intent(in) :: p + class(psb_zprec_type), intent(in) :: prec integer(psb_ipk_), intent(in), optional :: iout + integer(psb_ipk_), intent(in), optional :: root integer(psb_ipk_) :: iout_,info character(len=20) :: name='prec_descr' @@ -134,11 +163,11 @@ contains iout_ = 6 end if - if (.not.allocated(p%prec)) then + if (.not.allocated(prec%prec)) then info = 1124 call psb_errpush(info,name,a_err="preconditioner") end if - call p%prec%precdescr(iout) + call prec%prec%descr(iout=iout,root=root) end subroutine psb_zfile_prec_descr diff --git a/test/fileread/Makefile b/test/fileread/Makefile index 9173754c..7d58adb0 100644 --- a/test/fileread/Makefile +++ b/test/fileread/Makefile @@ -22,16 +22,16 @@ all: psb_sf_sample psb_df_sample psb_cf_sample psb_zf_sample psb_sf_sample.o psb_df_sample.o psb_cf_sample.o psb_zf_sample.o: getp.o psb_sf_sample: $(SFOBJS) - $(F90LINK) $(LOPT) $(SFOBJS) -o psb_sf_sample $(PSBLAS_LIB) $(LDLIBS) + $(FLINK) $(LOPT) $(SFOBJS) -o psb_sf_sample $(PSBLAS_LIB) $(LDLIBS) /bin/mv psb_sf_sample $(EXEDIR) psb_df_sample: $(DFOBJS) - $(F90LINK) $(LOPT) $(DFOBJS) -o psb_df_sample $(PSBLAS_LIB) $(LDLIBS) + $(FLINK) $(LOPT) $(DFOBJS) -o psb_df_sample $(PSBLAS_LIB) $(LDLIBS) /bin/mv psb_df_sample $(EXEDIR) psb_cf_sample: $(CFOBJS) - $(F90LINK) $(LOPT) $(CFOBJS) -o psb_cf_sample $(PSBLAS_LIB) $(LDLIBS) + $(FLINK) $(LOPT) $(CFOBJS) -o psb_cf_sample $(PSBLAS_LIB) $(LDLIBS) /bin/mv psb_cf_sample $(EXEDIR) psb_zf_sample: $(ZFOBJS) - $(F90LINK) $(LOPT) $(ZFOBJS) -o psb_zf_sample $(PSBLAS_LIB) $(LDLIBS) + $(FLINK) $(LOPT) $(ZFOBJS) -o psb_zf_sample $(PSBLAS_LIB) $(LDLIBS) /bin/mv psb_zf_sample $(EXEDIR) .f90.o: diff --git a/test/fileread/psb_cf_sample.f90 b/test/fileread/psb_cf_sample.f90 index e9e3cd51..15759182 100644 --- a/test/fileread/psb_cf_sample.f90 +++ b/test/fileread/psb_cf_sample.f90 @@ -165,9 +165,8 @@ program psb_cf_sample endif else - call psb_bcast(ictxt,m_problem) - b_col_glob =>aux_b(:,1) + end if ! switch over different partition types @@ -219,11 +218,11 @@ program psb_cf_sample ! - call psb_precinit(prec,ptype,info) + call prec%init(ptype,info) ! building the preconditioner t1 = psb_wtime() - call psb_precbld(a,desc_a,prec,info) + call prec%build(a,desc_a,info) tprec = psb_wtime()-t1 if (info /= psb_success_) then call psb_errpush(psb_err_from_subroutine_,name,a_err='psb_precbld') @@ -237,6 +236,7 @@ program psb_cf_sample write(psb_out_unit,'("Preconditioner time: ",es12.5)')tprec write(psb_out_unit,'(" ")') end if + iparm = 0 call psb_barrier(ictxt) t1 = psb_wtime() @@ -258,7 +258,7 @@ program psb_cf_sample call psb_sum(ictxt,descsize) call psb_sum(ictxt,precsize) if (iam == psb_root_) then - call psb_precdescr(prec) + call prec%descr() write(psb_out_unit,'("Matrix: ",a)')mtrx_file write(psb_out_unit,'("Computed solution on ",i8," processors")')np write(psb_out_unit,'("Iterations to convergence: ",i6)')iter @@ -302,7 +302,7 @@ program psb_cf_sample call psb_gefree(b_col, desc_a,info) call psb_gefree(x_col, desc_a,info) call psb_spfree(a, desc_a,info) - call psb_precfree(prec,info) + call prec%free(info) call psb_cdfree(desc_a,info) call psb_exit(ictxt) stop diff --git a/test/fileread/psb_df_sample.f90 b/test/fileread/psb_df_sample.f90 index 5494db3f..df843bc6 100644 --- a/test/fileread/psb_df_sample.f90 +++ b/test/fileread/psb_df_sample.f90 @@ -165,9 +165,8 @@ program psb_df_sample endif else - call psb_bcast(ictxt,m_problem) - b_col_glob =>aux_b(:,1) + end if ! switch over different partition types @@ -219,11 +218,11 @@ program psb_df_sample ! - call psb_precinit(prec,ptype,info) + call prec%init(ptype,info) ! building the preconditioner t1 = psb_wtime() - call psb_precbld(a,desc_a,prec,info) + call prec%build(a,desc_a,info) tprec = psb_wtime()-t1 if (info /= psb_success_) then call psb_errpush(psb_err_from_subroutine_,name,a_err='psb_precbld') @@ -237,6 +236,7 @@ program psb_df_sample write(psb_out_unit,'("Preconditioner time: ",es12.5)')tprec write(psb_out_unit,'(" ")') end if + cond = dzero iparm = 0 call psb_barrier(ictxt) @@ -259,7 +259,7 @@ program psb_df_sample call psb_sum(ictxt,descsize) call psb_sum(ictxt,precsize) if (iam == psb_root_) then - call psb_precdescr(prec) + call prec%descr() write(psb_out_unit,'("Matrix: ",a)')mtrx_file write(psb_out_unit,'("Computed solution on ",i8," processors")')np write(psb_out_unit,'("Iterations to convergence: ",i6)')iter @@ -304,7 +304,7 @@ program psb_df_sample call psb_gefree(b_col, desc_a,info) call psb_gefree(x_col, desc_a,info) call psb_spfree(a, desc_a,info) - call psb_precfree(prec,info) + call prec%free(info) call psb_cdfree(desc_a,info) call psb_exit(ictxt) stop diff --git a/test/fileread/psb_sf_sample.f90 b/test/fileread/psb_sf_sample.f90 index a0e25095..9b4403a6 100644 --- a/test/fileread/psb_sf_sample.f90 +++ b/test/fileread/psb_sf_sample.f90 @@ -165,9 +165,8 @@ program psb_sf_sample endif else - call psb_bcast(ictxt,m_problem) - b_col_glob =>aux_b(:,1) + end if ! switch over different partition types @@ -219,11 +218,11 @@ program psb_sf_sample ! - call psb_precinit(prec,ptype,info) + call prec%init(ptype,info) ! building the preconditioner t1 = psb_wtime() - call psb_precbld(a,desc_a,prec,info) + call prec%build(a,desc_a,info) tprec = psb_wtime()-t1 if (info /= psb_success_) then call psb_errpush(psb_err_from_subroutine_,name,a_err='psb_precbld') @@ -237,6 +236,7 @@ program psb_sf_sample write(psb_out_unit,'("Preconditioner time: ",es12.5)')tprec write(psb_out_unit,'(" ")') end if + cond = szero iparm = 0 call psb_barrier(ictxt) @@ -259,7 +259,7 @@ program psb_sf_sample call psb_sum(ictxt,descsize) call psb_sum(ictxt,precsize) if (iam == psb_root_) then - call psb_precdescr(prec) + call prec%descr() write(psb_out_unit,'("Matrix: ",a)')mtrx_file write(psb_out_unit,'("Computed solution on ",i8," processors")')np write(psb_out_unit,'("Iterations to convergence: ",i6)')iter @@ -304,7 +304,7 @@ program psb_sf_sample call psb_gefree(b_col, desc_a,info) call psb_gefree(x_col, desc_a,info) call psb_spfree(a, desc_a,info) - call psb_precfree(prec,info) + call prec%free(info) call psb_cdfree(desc_a,info) call psb_exit(ictxt) stop diff --git a/test/fileread/psb_zf_sample.f90 b/test/fileread/psb_zf_sample.f90 index 5fd04f7e..4a977809 100644 --- a/test/fileread/psb_zf_sample.f90 +++ b/test/fileread/psb_zf_sample.f90 @@ -165,9 +165,8 @@ program psb_zf_sample endif else - call psb_bcast(ictxt,m_problem) - b_col_glob =>aux_b(:,1) + end if ! switch over different partition types @@ -219,11 +218,11 @@ program psb_zf_sample ! - call psb_precinit(prec,ptype,info) + call prec%init(ptype,info) ! building the preconditioner t1 = psb_wtime() - call psb_precbld(a,desc_a,prec,info) + call prec%build(a,desc_a,info) tprec = psb_wtime()-t1 if (info /= psb_success_) then call psb_errpush(psb_err_from_subroutine_,name,a_err='psb_precbld') @@ -237,6 +236,7 @@ program psb_zf_sample write(psb_out_unit,'("Preconditioner time: ",es12.5)')tprec write(psb_out_unit,'(" ")') end if + iparm = 0 call psb_barrier(ictxt) t1 = psb_wtime() @@ -258,7 +258,7 @@ program psb_zf_sample call psb_sum(ictxt,descsize) call psb_sum(ictxt,precsize) if (iam == psb_root_) then - call psb_precdescr(prec) + call prec%descr() write(psb_out_unit,'("Matrix: ",a)')mtrx_file write(psb_out_unit,'("Computed solution on ",i8," processors")')np write(psb_out_unit,'("Iterations to convergence: ",i6)')iter @@ -302,7 +302,7 @@ program psb_zf_sample call psb_gefree(b_col, desc_a,info) call psb_gefree(x_col, desc_a,info) call psb_spfree(a, desc_a,info) - call psb_precfree(prec,info) + call prec%free(info) call psb_cdfree(desc_a,info) call psb_exit(ictxt) stop diff --git a/test/hello/Makefile b/test/hello/Makefile index a2961e75..81c337bb 100644 --- a/test/hello/Makefile +++ b/test/hello/Makefile @@ -18,11 +18,11 @@ EXEDIR=./runs all: hello pingpong hello: hello.o - $(F90LINK) hello.o -o hello $(PSBLAS_LIB) $(LDLIBS) + $(FLINK) hello.o -o hello $(PSBLAS_LIB) $(LDLIBS) /bin/mv hello $(EXEDIR) pingpong: pingpong.o - $(F90LINK) pingpong.o -o pingpong $(PSBLAS_LIB) $(LDLIBS) + $(FLINK) pingpong.o -o pingpong $(PSBLAS_LIB) $(LDLIBS) /bin/mv pingpong $(EXEDIR) diff --git a/test/kernel/Makefile b/test/kernel/Makefile index a543e12f..a5939661 100644 --- a/test/kernel/Makefile +++ b/test/kernel/Makefile @@ -20,16 +20,16 @@ all: d_file_spmv s_file_spmv pdgenspmv d_file_spmv: $(DTOBJS) - $(F90LINK) $(LOPT) $(DTOBJS) -o d_file_spmv $(PSBLAS_LIB) $(LDLIBS) + $(FLINK) $(LOPT) $(DTOBJS) -o d_file_spmv $(PSBLAS_LIB) $(LDLIBS) /bin/mv d_file_spmv $(EXEDIR) pdgenspmv: $(DPGOBJS) - $(F90LINK) $(LOPT) $(DPGOBJS) -o pdgenspmv $(PSBLAS_LIB) $(LDLIBS) + $(FLINK) $(LOPT) $(DPGOBJS) -o pdgenspmv $(PSBLAS_LIB) $(LDLIBS) /bin/mv pdgenspmv $(EXEDIR) s_file_spmv: $(STOBJS) - $(F90LINK) $(LOPT) $(STOBJS) -o s_file_spmv $(PSBLAS_LIB) $(LDLIBS) + $(FLINK) $(LOPT) $(STOBJS) -o s_file_spmv $(PSBLAS_LIB) $(LDLIBS) /bin/mv s_file_spmv $(EXEDIR) diff --git a/test/pargen/Makefile b/test/pargen/Makefile index bd1af001..5ffee40d 100644 --- a/test/pargen/Makefile +++ b/test/pargen/Makefile @@ -19,21 +19,21 @@ all: psb_d_pde3d psb_s_pde3d psb_d_pde2d psb_s_pde2d psb_d_pde3d: psb_d_pde3d.o - $(F90LINK) psb_d_pde3d.o -o psb_d_pde3d $(PSBLAS_LIB) $(LDLIBS) + $(FLINK) psb_d_pde3d.o -o psb_d_pde3d $(PSBLAS_LIB) $(LDLIBS) /bin/mv psb_d_pde3d $(EXEDIR) psb_s_pde3d: psb_s_pde3d.o - $(F90LINK) psb_s_pde3d.o -o psb_s_pde3d $(PSBLAS_LIB) $(LDLIBS) + $(FLINK) psb_s_pde3d.o -o psb_s_pde3d $(PSBLAS_LIB) $(LDLIBS) /bin/mv psb_s_pde3d $(EXEDIR) psb_d_pde2d: psb_d_pde2d.o - $(F90LINK) psb_d_pde2d.o -o psb_d_pde2d $(PSBLAS_LIB) $(LDLIBS) + $(FLINK) psb_d_pde2d.o -o psb_d_pde2d $(PSBLAS_LIB) $(LDLIBS) /bin/mv psb_d_pde2d $(EXEDIR) psb_s_pde2d: psb_s_pde2d.o - $(F90LINK) psb_s_pde2d.o -o psb_s_pde2d $(PSBLAS_LIB) $(LDLIBS) + $(FLINK) psb_s_pde2d.o -o psb_s_pde2d $(PSBLAS_LIB) $(LDLIBS) /bin/mv psb_s_pde2d $(EXEDIR) diff --git a/test/pargen/psb_d_pde2d.f90 b/test/pargen/psb_d_pde2d.f90 index 16bc852a..c1477c66 100644 --- a/test/pargen/psb_d_pde2d.f90 +++ b/test/pargen/psb_d_pde2d.f90 @@ -188,11 +188,11 @@ program psb_d_pde2d ! prepare the preconditioner. ! if(iam == psb_root_) write(psb_out_unit,'("Setting preconditioner to : ",a)')ptype - call psb_precinit(prec,ptype,info) + call prec%init(ptype,info) call psb_barrier(ictxt) t1 = psb_wtime() - call psb_precbld(a,desc_a,prec,info) + call prec%build(a,desc_a,info) if(info /= psb_success_) then info=psb_err_from_subroutine_ ch_err='psb_precbld' @@ -206,6 +206,7 @@ program psb_d_pde2d if (iam == psb_root_) write(psb_out_unit,'("Preconditioner time : ",es12.5)')tprec if (iam == psb_root_) write(psb_out_unit,'(" ")') + call prec%descr() ! ! iterative method parameters ! @@ -253,7 +254,7 @@ program psb_d_pde2d call psb_gefree(bv,desc_a,info) call psb_gefree(xxv,desc_a,info) call psb_spfree(a,desc_a,info) - call psb_precfree(prec,info) + call prec%free(info) call psb_cdfree(desc_a,info) if(info /= psb_success_) then info=psb_err_from_subroutine_ diff --git a/test/pargen/psb_d_pde3d.f90 b/test/pargen/psb_d_pde3d.f90 index f413a86f..b3700f38 100644 --- a/test/pargen/psb_d_pde3d.f90 +++ b/test/pargen/psb_d_pde3d.f90 @@ -201,11 +201,11 @@ program psb_d_pde3d ! prepare the preconditioner. ! if(iam == psb_root_) write(psb_out_unit,'("Setting preconditioner to : ",a)')ptype - call psb_precinit(prec,ptype,info) + call prec%init(ptype,info) call psb_barrier(ictxt) t1 = psb_wtime() - call psb_precbld(a,desc_a,prec,info) + call prec%build(a,desc_a,info) if(info /= psb_success_) then info=psb_err_from_subroutine_ ch_err='psb_precbld' @@ -219,6 +219,7 @@ program psb_d_pde3d if (iam == psb_root_) write(psb_out_unit,'("Preconditioner time : ",es12.5)')tprec if (iam == psb_root_) write(psb_out_unit,'(" ")') + call prec%descr() ! ! iterative method parameters ! @@ -266,7 +267,7 @@ program psb_d_pde3d call psb_gefree(bv,desc_a,info) call psb_gefree(xxv,desc_a,info) call psb_spfree(a,desc_a,info) - call psb_precfree(prec,info) + call prec%free(info) call psb_cdfree(desc_a,info) if(info /= psb_success_) then info=psb_err_from_subroutine_ diff --git a/test/pargen/psb_s_pde2d.f90 b/test/pargen/psb_s_pde2d.f90 index 927499c7..5b81f114 100644 --- a/test/pargen/psb_s_pde2d.f90 +++ b/test/pargen/psb_s_pde2d.f90 @@ -187,11 +187,11 @@ program psb_s_pde2d ! prepare the preconditioner. ! if(iam == psb_root_) write(psb_out_unit,'("Setting preconditioner to : ",a)')ptype - call psb_precinit(prec,ptype,info) + call prec%init(ptype,info) call psb_barrier(ictxt) t1 = psb_wtime() - call psb_precbld(a,desc_a,prec,info) + call prec%build(a,desc_a,info) if(info /= psb_success_) then info=psb_err_from_subroutine_ ch_err='psb_precbld' @@ -205,6 +205,7 @@ program psb_s_pde2d if (iam == psb_root_) write(psb_out_unit,'("Preconditioner time : ",es12.5)')tprec if (iam == psb_root_) write(psb_out_unit,'(" ")') + call prec%descr() ! ! iterative method parameters ! @@ -252,7 +253,7 @@ program psb_s_pde2d call psb_gefree(bv,desc_a,info) call psb_gefree(xxv,desc_a,info) call psb_spfree(a,desc_a,info) - call psb_precfree(prec,info) + call prec%free(info) call psb_cdfree(desc_a,info) if(info /= psb_success_) then info=psb_err_from_subroutine_ diff --git a/test/pargen/psb_s_pde3d.f90 b/test/pargen/psb_s_pde3d.f90 index 6eb262b6..f769fa73 100644 --- a/test/pargen/psb_s_pde3d.f90 +++ b/test/pargen/psb_s_pde3d.f90 @@ -201,11 +201,11 @@ program psb_s_pde3d ! prepare the preconditioner. ! if(iam == psb_root_) write(psb_out_unit,'("Setting preconditioner to : ",a)')ptype - call psb_precinit(prec,ptype,info) + call prec%init(ptype,info) call psb_barrier(ictxt) t1 = psb_wtime() - call psb_precbld(a,desc_a,prec,info) + call prec%build(a,desc_a,info) if(info /= psb_success_) then info=psb_err_from_subroutine_ ch_err='psb_precbld' @@ -219,6 +219,7 @@ program psb_s_pde3d if (iam == psb_root_) write(psb_out_unit,'("Preconditioner time : ",es12.5)')tprec if (iam == psb_root_) write(psb_out_unit,'(" ")') + call prec%descr() ! ! iterative method parameters ! @@ -266,7 +267,7 @@ program psb_s_pde3d call psb_gefree(bv,desc_a,info) call psb_gefree(xxv,desc_a,info) call psb_spfree(a,desc_a,info) - call psb_precfree(prec,info) + call prec%free(info) call psb_cdfree(desc_a,info) if(info /= psb_success_) then info=psb_err_from_subroutine_ diff --git a/test/serial/Makefile b/test/serial/Makefile index 9ffb37ce..cadddf70 100644 --- a/test/serial/Makefile +++ b/test/serial/Makefile @@ -19,7 +19,7 @@ all: d_matgen psb_d_xyz_impl.o d_matgen.o: psb_d_xyz_mat_mod.o d_matgen: d_matgen.o psb_d_xyz_mat_mod.o psb_d_xyz_impl.o - $(F90LINK) $(LINKOPT) d_matgen.o psb_d_xyz_mat_mod.o psb_d_xyz_impl.o \ + $(FLINK) $(LINKOPT) d_matgen.o psb_d_xyz_mat_mod.o psb_d_xyz_impl.o \ -o d_matgen $(PSBLAS_LIB) $(LDLIBS) /bin/cp -p $(CPUPDFLAG) d_matgen $(EXEDIR) # /bin/mv d_matgen $(EXEDIR) diff --git a/test/torture/Makefile b/test/torture/Makefile index 7be7d972..bad12722 100644 --- a/test/torture/Makefile +++ b/test/torture/Makefile @@ -19,14 +19,14 @@ psb_mvsv_tester.o: psb_s_mvsv_tester.o psb_d_mvsv_tester.o psb_c_mvsv_tester.o \ psb_z_mvsv_tester.o psbtf: $(PSBTOBJS) - $(F90LINK) $(PSBTOBJS) -o psbtf $(PSBLAS_LIB) $(LDLIBS) + $(FLINK) $(PSBTOBJS) -o psbtf $(PSBLAS_LIB) $(LDLIBS) /bin/mv psbtf $(EXEDIR) psbtf.o: psb_mvsv_tester.o .f90.o: - $(MPF90) $(F90COPT) $(FINCLUDES) $(FDEFINES) -c $< + $(MPFC) $(FCOPT) $(FINCLUDES) $(FDEFINES) -c $< clean: diff --git a/test/util/Makefile b/test/util/Makefile index 563f8204..85fcb958 100644 --- a/test/util/Makefile +++ b/test/util/Makefile @@ -20,16 +20,16 @@ MMHBOBJS=$(ZH2MOBJS) $(DH2MOBJS) $(DM2HOBJS) $(ZM2HOBJS) all: dhb2mm zhb2mm dmm2hb zmm2hb dhb2mm: $(DH2MOBJS) - $(MPF90) -o dhb2mm $(DH2MOBJS) $(PSBLAS_LIB) $(LDLIBS) + $(MPFC) -o dhb2mm $(DH2MOBJS) $(PSBLAS_LIB) $(LDLIBS) dmm2hb: $(DM2HOBJS) - $(MPF90) -o dmm2hb $(DM2HOBJS) $(PSBLAS_LIB) $(LDLIBS) + $(MPFC) -o dmm2hb $(DM2HOBJS) $(PSBLAS_LIB) $(LDLIBS) zhb2mm: $(ZH2MOBJS) - $(MPF90) -o zhb2mm $(ZH2MOBJS) $(PSBLAS_LIB) $(LDLIBS) + $(MPFC) -o zhb2mm $(ZH2MOBJS) $(PSBLAS_LIB) $(LDLIBS) zmm2hb: $(ZM2HOBJS) - $(MPF90) -o zmm2hb $(ZM2HOBJS) $(PSBLAS_LIB) $(LDLIBS) + $(MPFC) -o zmm2hb $(ZM2HOBJS) $(PSBLAS_LIB) $(LDLIBS) .f90.o: - $(MPF90) $(F90COPT) $(FINCLUDES) $(FDEFINES) -c $< + $(MPFC) $(FCOPT) $(FINCLUDES) $(FDEFINES) -c $< clean: /bin/rm -f $(MMHBOBJS) dhb2mm zhb2mm dmm2hb zmm2hb
  • $x$ Subroutine