From c3633b6fb231a09d5860f254cf40db1ada1ced8d Mon Sep 17 00:00:00 2001 From: Salvatore Filippone Date: Thu, 14 Dec 2017 17:09:59 +0000 Subject: [PATCH 01/35] Document DESC%CNV method and MOLD arguments to CDASB and PREC%BUILD --- docs/html/footnode.html | 30 +- docs/html/index.html | 343 +- docs/html/node1.html | 75 +- docs/html/node10.html | 118 +- docs/html/node100.html | 173 +- docs/html/node101.html | 149 +- docs/html/node102.html | 127 +- docs/html/node103.html | 81 +- docs/html/node104.html | 107 +- docs/html/node105.html | 73 +- docs/html/node106.html | 57 +- docs/html/node107.html | 129 +- docs/html/node108.html | 117 +- docs/html/node109.html | 111 +- docs/html/node11.html | 31 +- docs/html/node110.html | 106 +- docs/html/node111.html | 104 +- docs/html/node112.html | 100 +- docs/html/node113.html | 168 +- docs/html/node114.html | 153 +- docs/html/node115.html | 363 +- docs/html/node116.html | 364 +- docs/html/node117.html | 178 +- docs/html/node118.html | 143 +- docs/html/node119.html | 128 +- docs/html/node12.html | 35 +- docs/html/node120.html | 65 +- docs/html/node121.html | 85 +- docs/html/node122.html | 77 +- docs/html/node123.html | 141 +- docs/html/node124.html | 167 +- docs/html/node125.html | 162 +- docs/html/node126.html | 146 +- docs/html/node127.html | 126 +- docs/html/node128.html | 97 +- docs/html/node129.html | 89 +- docs/html/node13.html | 35 +- docs/html/node130.html | 114 +- docs/html/node131.html | 439 +- docs/html/node132.html | 518 +- docs/html/node133.html | 182 +- docs/html/node14.html | 31 +- docs/html/node15.html | 31 +- docs/html/node16.html | 31 +- docs/html/node17.html | 31 +- docs/html/node18.html | 33 +- docs/html/node19.html | 62 +- docs/html/node2.html | 72 +- docs/html/node20.html | 66 +- docs/html/node21.html | 106 +- docs/html/node22.html | 225 +- docs/html/node23.html | 213 +- docs/html/node24.html | 79 +- docs/html/node25.html | 54 +- docs/html/node26.html | 65 +- docs/html/node27.html | 64 +- docs/html/node28.html | 58 +- docs/html/node29.html | 58 +- docs/html/node3.html | 82 +- docs/html/node30.html | 58 +- docs/html/node31.html | 61 +- docs/html/node32.html | 88 +- docs/html/node33.html | 79 +- docs/html/node34.html | 73 +- docs/html/node35.html | 63 +- docs/html/node36.html | 59 +- docs/html/node37.html | 80 +- docs/html/node38.html | 67 +- docs/html/node39.html | 96 +- docs/html/node4.html | 96 +- docs/html/node40.html | 69 +- docs/html/node41.html | 93 +- docs/html/node42.html | 167 +- docs/html/node43.html | 163 +- docs/html/node44.html | 81 +- docs/html/node45.html | 56 +- docs/html/node46.html | 105 +- docs/html/node47.html | 103 +- docs/html/node48.html | 67 +- docs/html/node49.html | 110 +- docs/html/node5.html | 56 +- docs/html/node50.html | 112 +- docs/html/node51.html | 125 +- docs/html/node52.html | 306 +- docs/html/node53.html | 247 +- docs/html/node54.html | 198 +- docs/html/node55.html | 226 +- docs/html/node56.html | 169 +- docs/html/node57.html | 165 +- docs/html/node58.html | 175 +- docs/html/node59.html | 190 +- docs/html/node6.html | 108 +- docs/html/node60.html | 172 +- docs/html/node61.html | 191 +- docs/html/node62.html | 124 +- docs/html/node63.html | 363 +- docs/html/node64.html | 400 +- docs/html/node65.html | 484 +- docs/html/node66.html | 651 +- docs/html/node67.html | 1018 +-- docs/html/node68.html | 740 +- docs/html/node69.html | 199 +- docs/html/node7.html | 39 +- docs/html/node70.html | 347 +- docs/html/node71.html | 517 +- docs/html/node72.html | 469 +- docs/html/node73.html | 212 +- docs/html/node74.html | 84 +- docs/html/node75.html | 72 +- docs/html/node76.html | 153 +- docs/html/node77.html | 161 +- docs/html/node78.html | 228 +- docs/html/node79.html | 228 +- docs/html/node8.html | 54 +- docs/html/node80.html | 170 +- docs/html/node81.html | 71 +- docs/html/node82.html | 144 +- docs/html/node83.html | 192 +- docs/html/node84.html | 180 +- docs/html/node85.html | 95 +- docs/html/node86.html | 97 +- docs/html/node87.html | 187 +- docs/html/node88.html | 126 +- docs/html/node89.html | 129 +- docs/html/node9.html | 175 +- docs/html/node90.html | 97 +- docs/html/node91.html | 97 +- docs/html/node92.html | 99 +- docs/html/node93.html | 102 +- docs/html/node94.html | 66 +- docs/html/node95.html | 217 +- docs/html/node96.html | 234 +- docs/html/node97.html | 286 +- docs/html/node98.html | 332 +- docs/html/node99.html | 215 +- docs/html/userhtml.html | 343 +- docs/psblas-3.5.pdf | 17544 +++++++++++++++++++------------------- docs/src/datastruct.tex | 53 +- docs/src/precs.tex | 11 +- docs/src/toolsrout.tex | 7 +- 140 files changed, 19675 insertions(+), 19778 deletions(-) diff --git a/docs/html/footnode.html b/docs/html/footnode.html index 9143bebc..3f38adb5 100644 --- a/docs/html/footnode.html +++ b/docs/html/footnode.html @@ -1,10 +1,6 @@ - + - + Footnotes @@ -13,12 +9,12 @@ original version by: Nikos Drakos, CBLU, University of Leeds - + - + @@ -27,7 +23,7 @@ original version by: Nikos Drakos, CBLU, University of Leeds
... explicitly1
+ HREF="node3.html#tex2html2">1
In our prototype implementation we provide sample scatter/gather routines. @@ -64,7 +60,7 @@ sample scatter/gather routines.
... domain2
+ HREF="node4.html#tex2html3">2
This is the normal situation when the pattern of the sparse matrix is symmetric, which is equivalent to say that the interaction between @@ -105,7 +101,7 @@ sample scatter/gather routines.
... prec%build3
+ HREF="node6.html#tex2html5">3
The subroutine style psb_precinit and psb_precbl are still supported for backward compatibility @@ -141,8 +137,8 @@ sample scatter/gather routines. .
-
... follows4
+
... follows4
The string is case-insensitive
.
@@ -177,13 +173,13 @@ sample scatter/gather routines.
 .
 
-
... method5
+
... method5
Note: - the implementation is for $FCG(1)$. + ALT="$FCG(1)$">.
.
 .
diff --git a/docs/html/index.html b/docs/html/index.html
index 17a97eb8..66f903c5 100644
--- a/docs/html/index.html
+++ b/docs/html/index.html
@@ -1,10 +1,6 @@
-
+
 
-
+
 
 
 userhtml
@@ -13,7 +9,7 @@ original version by:  Nikos Drakos, CBLU, University of Leeds
 
 
 
-
+
 
 
 
@@ -22,7 +18,8 @@ original version by:  Nikos Drakos, CBLU, University of Leeds
 
 
 
-
+
+
 
 language=Fortran
 
 

-PSBLAS +PSBLAS

User's and Reference - Guide
-
A reference guide for the Parallel Sparse BLAS library + Guide
+
A reference guide for the Parallel Sparse BLAS library


@@ -55,7 +52,7 @@ User's and Reference
Alfredo Buttari
-University of Rome ``Tor Vergata'', Italy +University of Rome “Tor Vergata”, Italy


@@ -69,7 +66,7 @@ Sep 1st, 2017 -

  • Heap data structure + HREF="node50.html">Preconditioner data structure +
  • Heap data structure
    -
  • Computational routines -
  • ext_index
    A list of element indices to be exchanged to implement the mapping between a base descriptor and a descriptor with overlap. +
    +Specified as: a vector of integer type, see 3.3.
    ovrlap_index
    A list of the overlap elements for the @@ -169,16 +165,13 @@ current process, organized in groups like the previous vector:
  • Indices of points to be sent;
  • -The list may contain an arbitrary number of groups; its end is marked -by a -1. -
    -Specified as: an allocatable integer array of rank one. +Specified as: a vector of integer type, see 3.3.
    ovr_mst_idx
    A list to retrieve the value of each overlap element from the respective master process.
    -Specified as: an allocatable integer array of rank one. +Specified as: a vector of integer type, see 3.3.
    ovrlap_elem
    For all overlap points belonging to th @@ -189,7 +182,7 @@ ecurrent process:
  • Number of processes sharing that overlap points;
  • -
  • Index of a ``master'' process: +
  • Index of a “master” process:
  • Specified as: an allocatable integer array of rank two. @@ -202,7 +195,7 @@ Specified as: an allocatable integer array of rank two. The Fortran 2003 declaration for psb_desc_type structures is as follows: -
    +
    Figure 3: The PSBLAS defined data type that @@ -214,11 +207,11 @@ The PSBLAS defined data type that
     
     type psb_desc_type 
         class(psb_indx_map), allocatable :: indxmap
    -    integer, allocatable  :: halo_index(:)
    -    integer, allocatable  :: ext_index(:)
    -    integer, allocatable  :: ovrlap_index(:)
    +    type(psb_i_vect_type) :: v_halo_index
    +    type(psb_i_vect_type) :: v_ext_index
    +    type(psb_i_vect_type) :: v_ovrlap_index
    +    type(psb_i_vect_type) :: v_ovr_mst_idx 
         integer, allocatable  :: ovrlap_elem(:,:)
    -    integer, allocatable  :: ovr_mst_idx(:)
         integer, allocatable  :: bnd_elem(:)
     end type psb_desc_type
     
    @@ -227,8 +220,6 @@ end type psb_desc_type
    - -

    A communication descriptor associated with a sparse matrix has a state, which can take the following values:

    @@ -249,56 +240,59 @@ state, which can take the following values: Subsections - -
    + + diff --git a/docs/html/node100.html b/docs/html/node100.html index d95e9b05..5ec01548 100644 --- a/docs/html/node100.html +++ b/docs/html/node100.html @@ -1,87 +1,112 @@ - + - + -psb_info -- Return information about PSBLAS parallel environment - +psb_init -- Initializes PSBLAS parallel environment + - + - + - - + next - + up - previous - contents
    - Next: psb_exit Exit - Up: Parallel environment routines - Previous: psb_init Initializes -   Next: psb_info Return + Up: Parallel environment routines + Previous: Parallel environment routines +   Contents
    -
    +
    -

    -psb_info -- Return information about PSBLAS parallel +

    +psb_init -- Initializes PSBLAS parallel environment

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

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

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

    -Notes +Notes

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

    -


    + + diff --git a/docs/html/node101.html b/docs/html/node101.html index 7a647aa5..dfd0a604 100644 --- a/docs/html/node101.html +++ b/docs/html/node101.html @@ -1,72 +1,69 @@ - + - + -psb_exit -- Exit from PSBLAS parallel environment - +psb_info -- Return information about PSBLAS parallel environment + - + - + - - + next - + up - previous - contents
    - Next: psb_get_mpicomm Get - Up: Parallel environment routines - Previous: psb_info Return -   Next: psb_exit Exit + Up: Parallel environment routines + Previous: psb_init Initializes +   Contents
    -
    +
    -

    -psb_exit -- Exit from PSBLAS parallel +

    +psb_info -- Return information about PSBLAS parallel environment

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

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

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

    +

    +
    On Return
    +
    +
    +
    iam
    +
    Identifier of current process in the PSBLAS virtual parallel machine. +
    +Scope: local. +
    +Type: required. +
    +Intent: out. +
    +Specified as: an integer value. +$-1 \le iam \le np-1$
    +
    np
    +
    Number of processes in the PSBLAS virtual parallel machine.
    Scope: global.
    -Type: optional. +Type: required.
    -Intent: in. +Intent: out.
    -Specified as: a logical variable, default value: true. -
    +Specified as: an integer variable.

    -Notes +Notes

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

    -


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

    diff --git a/docs/html/node102.html b/docs/html/node102.html index 6266a9c3..5f8dc244 100644 --- a/docs/html/node102.html +++ b/docs/html/node102.html @@ -1,70 +1,69 @@ - + - + -psb_get_mpicomm -- Get the MPI communicator - +psb_exit -- Exit from PSBLAS parallel environment + - + - + - - + next - + up - previous - contents
    - Next: psb_get_rank Get - Up: Parallel environment routines - Previous: psb_exit Exit -   Next: psb_get_mpicomm Get + Up: Parallel environment routines + Previous: psb_info Return +   Contents
    -
    +
    -

    -psb_get_mpicomm -- Get the MPI communicator +

    +psb_exit -- Exit from PSBLAS parallel + environment

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

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

    Type:
    -
    Asynchronous. +
    Synchronous.
    On Entry
    @@ -81,26 +80,70 @@ Intent: in.
    Specified as: an integer variable.
    -
    - -

    -

    -
    On Return
    -
    -
    -
    icomm
    -
    The MPI communicator associated with the PSBLAS virtual parallel machine. +
    close
    +
    Whether to close all data structures related to the + virtual parallel machine, besides those associated with icontxt.
    Scope: global.
    -Type: required. +Type: optional.
    -Intent: out. -
    +Intent: in. +
    +Specified as: a logical variable, default value: true. +

    -


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

    + +

    + diff --git a/docs/html/node103.html b/docs/html/node103.html index a098e466..4dc35680 100644 --- a/docs/html/node103.html +++ b/docs/html/node103.html @@ -1,70 +1,64 @@ - + - + -psb_get_rank -- Get the MPI rank - +psb_get_mpicomm -- Get the MPI communicator + - + - + - - + next - + up - previous - contents
    - Next: psb_wtime Wall - Up: Parallel environment routines - Previous: psb_get_mpicomm Get -   Next: psb_get_rank Get + Up: Parallel environment routines + Previous: psb_exit Exit +   Contents
    -
    +
    -

    -psb_get_rank -- Get the MPI rank +

    +psb_get_mpicomm -- Get the MPI communicator

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

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

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

    @@ -107,13 +85,10 @@ Specified as: an integer value. + -psb_wtime -- Wall clock timing - +psb_get_rank -- Get the MPI rank + - + - + - - + next - + up - previous - contents
    - Next: psb_barrier Sinchronization - Up: Parallel environment routines - Previous: psb_get_rank Get -   Next: psb_wtime Wall + Up: Parallel environment routines + Previous: psb_get_mpicomm Get +   Contents
    -
    +
    -

    -psb_wtime -- Wall clock timing +

    +psb_get_rank -- Get the MPI rank

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

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

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

    +

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

    diff --git a/docs/html/node105.html b/docs/html/node105.html index 07d970e1..6a31aeb0 100644 --- a/docs/html/node105.html +++ b/docs/html/node105.html @@ -1,87 +1,76 @@ - + - + -psb_barrier -- Sinchronization point parallel environment - +psb_wtime -- Wall clock timing + - + - + - - + next - + up - previous - contents
    - Next: psb_abort Abort - Up: Parallel environment routines - Previous: psb_wtime Wall -   Next: psb_barrier Sinchronization + Up: Parallel environment routines + Previous: psb_get_rank Get +   Contents
    -
    +
    -

    -psb_barrier -- Sinchronization point parallel - environment +

    +psb_wtime -- Wall clock timing

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

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

    Type:
    -
    Synchronous. +
    Asynchronous.
    -
    On Entry
    +
    On Exit
    -
    icontxt
    -
    the communication context identifying the virtual - parallel machine. -
    -Scope: global. -
    -Type: required. -
    -Intent: in. +
    Function value
    +
    the elapsed time in seconds.
    -Specified as: an integer variable. +Returned as: a real(psb_dpk_) variable.
    diff --git a/docs/html/node106.html b/docs/html/node106.html index 70197049..e3f33617 100644 --- a/docs/html/node106.html +++ b/docs/html/node106.html @@ -1,70 +1,69 @@ - + - + -psb_abort -- Abort a computation - +psb_barrier -- Sinchronization point parallel environment + - + - + - - + next - + up - previous - contents
    - Next: psb_bcast Broadcast - Up: Parallel environment routines - Previous: psb_barrier Sinchronization -   Next: psb_abort Abort + Up: Parallel environment routines + Previous: psb_wtime Wall +   Contents
    -
    +
    -

    -psb_abort -- Abort a computation +

    +psb_barrier -- Sinchronization point parallel + environment

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

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

    Type:
    -
    Asynchronous. +
    Synchronous.
    On Entry
    diff --git a/docs/html/node107.html b/docs/html/node107.html index d6e26969..4ed9556c 100644 --- a/docs/html/node107.html +++ b/docs/html/node107.html @@ -1,71 +1,67 @@ - + - + -psb_bcast -- Broadcast data - +psb_abort -- Abort a computation + - + - + - - + next - + up - previous - contents
    - Next: psb_sum Global - Up: Parallel environment routines - Previous: psb_abort Abort -   Next: psb_bcast Broadcast + Up: Parallel environment routines + Previous: psb_barrier Sinchronization +   Contents
    -
    +
    -

    -psb_bcast -- Broadcast data +

    +psb_abort -- Abort a computation

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

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

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

    -

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

    -


    - - -next - -up - -previous - -contents -
    - Next: psb_sum Global - Up: Parallel environment routines - Previous: psb_abort Abort -   Contents - +

    diff --git a/docs/html/node108.html b/docs/html/node108.html index f88898b9..6c4c6cf1 100644 --- a/docs/html/node108.html +++ b/docs/html/node108.html @@ -1,67 +1,64 @@ - + - + -psb_sum -- Global sum - +psb_bcast -- Broadcast data + - + - + - - + next - + up - previous - contents
    - Next: psb_max Global - Up: Parallel environment routines - Previous: psb_bcast Broadcast -   Next: psb_sum Global + Up: Parallel environment routines + Previous: psb_abort Abort +   Contents
    -
    +
    -

    -psb_sum -- Global sum +

    +psb_bcast -- Broadcast data

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

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

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

    @@ -122,7 +116,7 @@ Specified as: an integer value - -next - -up - -previous - -contents -
    - Next: psb_max Global - Up: Parallel environment routines - Previous: psb_bcast Broadcast -   Contents - +


    diff --git a/docs/html/node109.html b/docs/html/node109.html index 929a9661..551dbe87 100644 --- a/docs/html/node109.html +++ b/docs/html/node109.html @@ -1,68 +1,65 @@ - + - + -psb_max -- Global maximum - +psb_sum -- Global sum + - + - + - - + next - + up - previous - contents
    - Next: psb_min Global - Up: Parallel environment routines - Previous: psb_sum Global -   Next: psb_max Global + Up: Parallel environment routines + Previous: psb_bcast Broadcast +   Contents
    -
    +
    -

    -psb_max -- Global maximum +

    +psb_sum -- Global sum

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

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

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

    @@ -123,21 +119,23 @@ Specified as: an integer value - next - + up - previous - contents
    - Next: psb_min Global - Up: Parallel environment routines - Previous: psb_sum Global -   Contents + Next: psb_max Global + Up: Parallel environment routines + Previous: psb_bcast Broadcast +   Contents diff --git a/docs/html/node11.html b/docs/html/node11.html index 6fe02cd6..45baf9c6 100644 --- a/docs/html/node11.html +++ b/docs/html/node11.html @@ -1,10 +1,6 @@ - + - + Descriptor Methods @@ -13,7 +9,7 @@ original version by: Nikos Drakos, CBLU, University of Leeds - + @@ -25,30 +21,31 @@ 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 bca82ce0..1b4376d1 100644 --- a/docs/html/node110.html +++ b/docs/html/node110.html @@ -1,67 +1,64 @@ - + - + -psb_min -- Global minimum - +psb_max -- Global maximum + - + - + - - + next - + up - previous - contents
    - Next: psb_amx Global - Up: Parallel environment routines - Previous: psb_max Global -   Next: psb_min Global + Up: Parallel environment routines + Previous: psb_sum Global +   Contents
    -
    +
    -

    -psb_min -- Global minimum +

    +psb_max -- Global maximum

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

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

    Type:
    @@ -83,7 +80,7 @@ Intent: in. Specified as: an integer variable.
    dat
    -
    The local contribution to the global minimum. +
    The local contribution to the global maximum.
    Scope: local.
    @@ -91,14 +88,14 @@ Type: required.
    Intent: inout.
    -Specified as: an integer or real variable, which may be a +Specified as: an integer or real variable, which may be a scalar, or a rank 1 or 2 array. Type, kind, rank and size must agree on all processes.
    root
    -
    Process to hold the final value, or Process to hold the final maximum, or $-1$ to make it available + ALT="$-1$"> to make it available on all processes.
    Scope: global. @@ -110,10 +107,10 @@ Intent: in. Specified as: an integer value -$-1<= root <= np-1$, default -1. + ALT="$-1<= root <= np-1$">, default -1.
    @@ -123,23 +120,21 @@ Specified as: an integer value - next - + up - previous - contents
    - Next: psb_amx Global - Up: Parallel environment routines - Previous: psb_max Global -   Contents + Next: psb_min Global + Up: Parallel environment routines + Previous: psb_sum Global +   Contents diff --git a/docs/html/node111.html b/docs/html/node111.html index 57765c0d..e02d317b 100644 --- a/docs/html/node111.html +++ b/docs/html/node111.html @@ -1,67 +1,64 @@ - + - + -psb_amx -- Global maximum absolute value - +psb_min -- Global minimum + - + - + - - + next - + up - previous - contents
    - Next: psb_amn Global - Up: Parallel environment routines - Previous: psb_min Global -   Next: psb_amx Global + Up: Parallel environment routines + Previous: psb_max Global +   Contents
    -
    +
    -

    -psb_amx -- Global maximum absolute value +

    +psb_min -- Global minimum

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

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

    Type:
    @@ -83,7 +80,7 @@ Intent: in. Specified as: an integer variable.
    dat
    -
    The local contribution to the global maximum. +
    The local contribution to the global minimum.
    Scope: local.
    @@ -91,14 +88,14 @@ Type: required.
    Intent: inout.
    -Specified as: an integer, real or complex variable, which may be a +Specified as: an integer or real variable, which may be a scalar, or a rank 1 or 2 array. Type, kind, rank and size must agree on all processes.
    root
    -
    Process to hold the final value, or Process to hold the final value, or $-1$ to make it available + ALT="$-1$"> to make it available on all processes.
    Scope: global. @@ -110,10 +107,10 @@ Intent: in. Specified as: an integer value -$-1<= root <= np-1$, default -1. + ALT="$-1<= root <= np-1$">, default -1.
    @@ -123,7 +120,7 @@ Specified as: an integer value - next - + up - previous - contents
    - Next: psb_amn Global - Up: Parallel environment routines - Previous: psb_min Global -   Contents + Next: psb_amx Global + Up: Parallel environment routines + Previous: psb_max Global +   Contents diff --git a/docs/html/node112.html b/docs/html/node112.html index d2fe3abc..ac2d00ad 100644 --- a/docs/html/node112.html +++ b/docs/html/node112.html @@ -1,67 +1,64 @@ - + - + -psb_amn -- Global minimum absolute value - +psb_amx -- Global maximum absolute value + - + - + - - + next - + up - previous - contents
    - Next: psb_snd Send - Up: Parallel environment routines - Previous: psb_amx Global -   Next: psb_amn Global + Up: Parallel environment routines + Previous: psb_min Global +   Contents
    -
    +
    -

    -psb_amn -- Global minimum absolute value +

    +psb_amx -- Global maximum absolute value

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

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

    Type:
    @@ -83,7 +80,7 @@ Intent: in. Specified as: an integer variable.
    dat
    -
    The local contribution to the global minimum. +
    The local contribution to the global maximum.
    Scope: local.
    @@ -95,10 +92,10 @@ Specified as: an integer, real or complex variable, which may be a scalar, or a rank 1 or 2 array. Type, kind, rank and size must agree on all processes.
    root
    -
    Process to hold the final value, or Process to hold the final value, or $-1$ to make it available + ALT="$-1$"> to make it available on all processes.
    Scope: global. @@ -110,10 +107,10 @@ Intent: in. Specified as: an integer value -$-1<= root <= np-1$, default -1. + ALT="$-1<= root <= np-1$">, default -1.
    @@ -123,7 +120,7 @@ Specified as: an integer value - next - + up - previous - contents
    - Next: psb_snd Send - Up: Parallel environment routines - Previous: psb_amx Global -   Contents + Next: psb_amn Global + Up: Parallel environment routines + Previous: psb_min Global +   Contents diff --git a/docs/html/node113.html b/docs/html/node113.html index 347073ff..fa016fed 100644 --- a/docs/html/node113.html +++ b/docs/html/node113.html @@ -1,70 +1,68 @@ - + - + -psb_snd -- Send data - +psb_amn -- Global minimum absolute value + - + - + - - + next - + up - previous - contents
    - Next: psb_rcv Receive - Up: Parallel environment routines - Previous: psb_amn Global -   Next: psb_snd Send + Up: Parallel environment routines + Previous: psb_amx Global +   Contents
    -
    +
    -

    -psb_snd -- Send data +

    +psb_amn -- Global minimum absolute value

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

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

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

    @@ -148,44 +119,59 @@ same value on sending and receiving processes.

    On Return
    +
    dat
    +
    On destination process(es), the result of the minimum operation. +
    +Scope: global. +
    +Type: required. +
    +Intent: inout. +
    +Specified as: an integer, real or complex variable, which may be a +scalar, or a rank 1 or 2 array. +
    +Type, kind, rank and size must agree on all processes. +

    -Notes +Notes

      -
    1. This subroutine implies a synchronization, but only between the - calling process and the destination process $dst$. +
    2. The dat argument is both input and output, and its + value may be changed even on processes different from the final + result destination. +
    3. +
    4. The dat argument may also be a long integer scalar.

    -


    + + diff --git a/docs/html/node114.html b/docs/html/node114.html index 56130ff6..efbd8b82 100644 --- a/docs/html/node114.html +++ b/docs/html/node114.html @@ -1,69 +1,67 @@ - + - + -psb_rcv -- Receive data - +psb_snd -- Send data + - + + - + - - + next - + up - previous - contents
    - Next: Error handling - Up: Parallel environment routines - Previous: psb_snd Send -   Next: psb_rcv Receive + Up: Parallel environment routines + Previous: psb_amn Global +   Contents
    -
    +
    -

    -psb_rcv -- Receive data +

    +psb_snd -- Send data

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

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

    Type:
    -
    Synchronous: see usage notes. +
    Synchronous: see usage notes.
    On Entry
    @@ -80,8 +78,24 @@ Intent: in.
    Specified as: an integer variable.
    -
    src
    -
    Source process. +
    dat
    +
    The data to be sent. +
    +Scope: local. +
    +Type: required. +
    +Intent: in. +
    +Specified as: an integer, real or complex variable, which may be a +scalar, or a rank 1 or 2 array, or a character or logical scalar. Type, kind and rank must agree on sender and receiver process; if $m$ is +not specified, size must agree as well. +
    +
    dst
    +
    Destination process.
    Scope: global.
    @@ -90,12 +104,12 @@ Type: required. Intent: in.
    Specified as: an integer value -$0<= src <= np-1$. +$0<= dst <= np-1$.
    m
    Number of rows. @@ -109,19 +123,19 @@ Intent: in. Specified as: an integer value -$0<= m <= size(dat,1)$. + ALT="$0<= m <= size(dat,1)$">.
    -When $dat$ is a rank 2 array, specifies the number of rows to be sent -independently of the leading dimension $dat$ is a rank 2 array, specifies the number of rows to be sent +independently of the leading dimension $size(dat,1)$; must have the + ALT="$size(dat,1)$">; must have the same value on sending and receiving processes.
    @@ -131,60 +145,45 @@ same value on sending and receiving processes.
    On Return
    -
    dat
    -
    The data to be received. -
    -Scope: local. -
    -Type: required. -
    -Intent: inout. -
    -Specified as: an integer, real or complex variable, which may be a -scalar, or a rank 1 or 2 array, or a character or logical scalar. Type, kind and rank must agree on sender and receiver process; if $m$ is -not specified, size must agree as well. -

    -Notes +Notes

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

    -


    + + diff --git a/docs/html/node115.html b/docs/html/node115.html index 5ca4bc65..fe5ecb79 100644 --- a/docs/html/node115.html +++ b/docs/html/node115.html @@ -1,343 +1,188 @@ - + - + -Error handling - +psb_rcv -- Receive data + - + - - - + + - - + next - + up - previous - contents
    - Next: Utilities - Up: userhtml - Previous: psb_rcv Receive -   Next: Error handling + Up: Parallel environment routines + Previous: psb_snd Send +   Contents
    -
    +
    -

    -Error handling -

    - -

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

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

    - -

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

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

    - -

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

    -ifstarsubroutinesubroutinepsb_errpushPushes an error code onto the error - stack +

    +psb_rcv -- Receive data +

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

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

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

    Type:
    -
    Asynchronous. +
    Synchronous: see usage notes.
    -
    On Entry
    +
    On Entry
    -
    err_c
    -
    the error code +
    icontxt
    +
    the communication context identifying the virtual + parallel machine.
    -Scope: local +Scope: global.
    -Type: required +Type: required.
    Intent: in.
    -Specified as: an integer. +Specified as: an integer variable.
    -
    r_name
    -
    the soutine where the error has been caught. +
    src
    +
    Source process.
    -Scope: local +Scope: global.
    -Type: required +Type: required.
    Intent: in.
    -Specified as: a string. -
    -
    i_err
    -
    addional info for error code -
    -Scope: local -
    -Type: optional -
    -Specified as: an integer array -
    -
    a_err
    -
    addional info for error code -
    -Scope: local -
    -Type: optional -
    -Specified as: a string. +Specified as: an integer value +$0<= src <= np-1$.
    -
    - -

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

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

    m
    +
    Number of rows.
    - -

    -

    -
    Type:
    -
    Asynchronous. -
    -
    On Entry
    -
    -
    -
    icontxt
    -
    the communication context. +Scope: global.
    -Scope: global -
    -Type: optional +Type: Optional.
    Intent: in.
    -Specified as: an integer. +Specified as: an integer value +$0<= m <= size(dat,1)$. +
    +When $dat$ is a rank 2 array, specifies the number of rows to be sent +independently of the leading dimension $size(dat,1)$; must have the +same value on sending and receiving processes.
    -

    -ifstarsubroutinesubroutinepsb_set_errverbositySets the verbosity of error - messages. - -

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

    -
    Type:
    -
    Asynchronous. -
    -
    On Entry
    +
    On Return
    -
    v
    -
    the verbosity level +
    dat
    +
    The data to be received.
    -Scope: global +Scope: local.
    -Type: required +Type: required.
    -Intent: in. +Intent: inout.
    -Specified as: an integer. +Specified as: an integer, real or complex variable, which may be a +scalar, or a rank 1 or 2 array, or a character or logical scalar. Type, kind and rank must agree on sender and receiver process; if $m$ is +not specified, size must agree as well.

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

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

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

    -

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

    -


    + diff --git a/docs/html/node116.html b/docs/html/node116.html index 71f3ef07..97df7ba4 100644 --- a/docs/html/node116.html +++ b/docs/html/node116.html @@ -1,94 +1,342 @@ - + - + -Utilities - +Error handling + - + - - + + - - + next - up - previous - contents
    - Next: hb_read Read - Up: Next: Utilities + Up: userhtml - Previous: Error handling -   Previous: psb_rcv Receive +   Contents
    -
    +
    -

    - -
    -Utilities +

    +Error handling

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

    -


    - -Subsections - - - -

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

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

    + +

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

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

    + +

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

    +ifstarsubroutinesubroutinepsb_errpushPushes an error code onto the error + stack + +

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

    +

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

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

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

    +

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

    +ifstarsubroutinesubroutinepsb_set_errverbositySets the verbosity of error + messages. + +

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

    +

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

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

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

    +

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

    + +

    + diff --git a/docs/html/node117.html b/docs/html/node117.html index aa1b6eae..cb20cd97 100644 --- a/docs/html/node117.html +++ b/docs/html/node117.html @@ -1,161 +1,91 @@ - + - + -hb_read -- Read a sparse matrix from a file in the Harwell-Boeing format - +Utilities + - + - + - + - - + next - + up - previous - contents
    - Next: hb_write Write - Up: Utilities - Previous: Utilities -   Next: hb_read Read + Up: userhtml + Previous: Error handling +   Contents
    -
    +
    -

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

    - -

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

    +
    +Utilities +

    -

    -
    Type:
    -
    Asynchronous. -
    -
    On Entry
    -
    -
    -
    filename
    -
    The name of the file to be read. -
    -Type:optional. -
    -Specified as: a character variable containing a valid file name, or --, in which case the default input unit 5 (i.e. standard input -in Unix jargon) is used. Default: -. -
    -
    iunit
    -
    The Fortran file unit number. -
    -Type:optional. -
    -Specified as: an integer value. Only meaningful if filename is not -. -
    -
    +We have some utitlities available for input and output of +sparse matrices; the interfaces to these routines are available in the +module psb_util_mod.

    -

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

    + +Subsections -

    -


    - - -next - -up - -previous - -contents -
    - Next: hb_write Write - Up: Utilities - Previous: Utilities -   Contents - + + +

    diff --git a/docs/html/node118.html b/docs/html/node118.html index 7a854b30..599c2e06 100644 --- a/docs/html/node118.html +++ b/docs/html/node118.html @@ -1,68 +1,65 @@ - + - + -hb_write -- Write a sparse matrix to a file in the Harwell-Boeing format - +hb_read -- Read a sparse matrix from a file in the Harwell-Boeing format + - + - + - - + next - + up - previous - contents
    - Next: mm_mat_read Read - Up: Utilities - Previous: hb_read Read -   Next: hb_write Write + Up: Utilities + Previous: Utilities +   Contents
    -
    +
    -

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

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


    \begin{lstlisting}
-call hb_write(a, iret, iunit, filename, key, rhs, mtitle)
+call hb_read(a, iret, iunit, filename, b, mtitle)
 \end{lstlisting}
    @@ -74,29 +71,13 @@ call hb_write(a, iret, iunit, filename, key, rhs, mtitle)

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

    +

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

    -

    -
    On Return
    -
    +A charachter variable of length 72 holding a copy of the +matrix title as specified by the Harwell-Boeing format and contained +in the input file.
    iret
    Error code. @@ -141,29 +129,30 @@ An integer value; 0 means no error has been detected.

    -


    + + diff --git a/docs/html/node119.html b/docs/html/node119.html index b7286c98..cd4e702c 100644 --- a/docs/html/node119.html +++ b/docs/html/node119.html @@ -1,68 +1,65 @@ - + - + -mm_mat_read -- Read a sparse matrix from a file in the MatrixMarket format - +hb_write -- Write a sparse matrix to a file in the Harwell-Boeing format + - + - + - - + next - + up - previous - contents
    - Next: mm_array_read Read - Up: Utilities - Previous: hb_write Write -   Next: mm_mat_read Read + Up: Utilities + Previous: hb_read Read +   Contents
    -
    +
    -

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

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


    \begin{lstlisting}
-call mm_mat_read(a, iret, iunit, filename)
+call hb_write(a, iret, iunit, filename, key, rhs, mtitle)
 \end{lstlisting}
    @@ -74,13 +71,29 @@ call mm_mat_read(a, iret, iunit, filename)

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

    @@ -97,13 +128,6 @@ Specified as: an integer value. Only meaningful if filename is not -On Return

    -
    a
    -
    the sparse matrix read from file. -
    -Type:required. -
    -Specified as: a structured data of type spdatapsb_Tspmat_type. -
    iret
    Error code.
    @@ -114,7 +138,31 @@ An integer value; 0 means no error has been detected.

    -


    + + + diff --git a/docs/html/node12.html b/docs/html/node12.html index a0dd9f5c..3b5d602d 100644 --- a/docs/html/node12.html +++ b/docs/html/node12.html @@ -1,10 +1,6 @@ - + - + get_local_rows -- Get number of local rows @@ -13,7 +9,7 @@ original version by: Nikos Drakos, CBLU, University of Leeds - + @@ -25,30 +21,31 @@ 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
    -
    +

    @@ -86,10 +83,10 @@ Scope: local. it is equal to -$\vert{\cal I}_i\vert + \vert{\cal B}_i\vert$. The returned value is + ALT="$\vert{\cal I}_i\vert + \vert{\cal B}_i\vert$">. The returned value is specific to the calling process.

    diff --git a/docs/html/node120.html b/docs/html/node120.html index be3e926b..d3692040 100644 --- a/docs/html/node120.html +++ b/docs/html/node120.html @@ -1,68 +1,65 @@ - + - + -mm_array_read -- Read a dense array from a file in the MatrixMarket format - +mm_mat_read -- Read a sparse matrix from a file in the MatrixMarket format + - + - + - - + next - + up - previous - contents
    - Next: mm_mat_write Write - Up: Utilities - Previous: mm_mat_read Read -   Next: mm_array_read Read + Up: Utilities + Previous: hb_write Write +   Contents
    -
    +
    -

    -mm_array_read -- Read a dense array from a +

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


    \begin{lstlisting}
-call mm_array_read(b, iret, iunit, filename)
+call mm_mat_read(a, iret, iunit, filename)
 \end{lstlisting}
    @@ -97,14 +94,12 @@ Specified as: an integer value. Only meaningful if filename is not -On Return

    -
    b
    -
    Rigth hand side(s). +
    a
    +
    the sparse matrix read from file.
    -Type: required +Type:required.
    -An array of type real or complex, rank 1 or 2 and having the ALLOCATABLE -attribute; will be allocated and filled in if the input file contains -a right hand side, otherwise will be left in the UNALLOCATED state. +Specified as: a structured data of type spdatapsb_Tspmat_type.
    iret
    Error code. diff --git a/docs/html/node121.html b/docs/html/node121.html index b4f7fdcc..dacbb994 100644 --- a/docs/html/node121.html +++ b/docs/html/node121.html @@ -1,70 +1,69 @@ - + - + -mm_mat_write -- Write a sparse matrix to a file in the MatrixMarket format - +mm_array_read -- Read a dense array from a file in the MatrixMarket format + - + - + - - + next - + up - previous - contents
    - Next: mm_array_write Write - Up: Utilities - Previous: mm_array_read Read -   Next: mm_mat_write Write + Up: Utilities + Previous: mm_mat_read Read +   Contents
    -
    +
    -

    -mm_mat_write -- Write a sparse matrix to a +

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


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

    Type:
    Asynchronous. @@ -72,28 +71,13 @@ call mm_mat_write(a, mtitle, iret, iunit, filename)
    On Entry
    -
    a
    -
    the sparse matrix to be written. -
    -Type:required. -
    -Specified as: a structured data of type spdatapsb_Tspmat_type. -
    -
    mtitle
    -
    Matrix title. -
    -Type: required -
    -A charachter variable holding a descriptive title for the matrix to be - written to file. -
    filename
    -
    The name of the file to be written to. +
    The name of the file to be read.
    Type:optional.
    Specified as: a character variable containing a valid file name, or --, in which case the default output unit 6 (i.e. standard output +-, in which case the default input unit 5 (i.e. standard input in Unix jargon) is used. Default: -.
    iunit
    @@ -110,6 +94,15 @@ Specified as: an integer value. Only meaningful if filename is not -On Return
    +
    b
    +
    Rigth hand side(s). +
    +Type: required +
    +An array of type real or complex, rank 1 or 2 and having the ALLOCATABLE +attribute; will be allocated and filled in if the input file contains +a right hand side, otherwise will be left in the UNALLOCATED state. +
    iret
    Error code.
    diff --git a/docs/html/node122.html b/docs/html/node122.html index eade42e8..27dc3d18 100644 --- a/docs/html/node122.html +++ b/docs/html/node122.html @@ -1,71 +1,67 @@ - + - + -mm_array_write -- Write a dense array from a file in the MatrixMarket format - +mm_mat_write -- Write a sparse matrix to a file in the MatrixMarket format + - + + - + - - + next - + up - previous - contents
    - Next: Preconditioner routines - Up: Utilities - Previous: mm_mat_write Write -   Next: mm_array_write Write + Up: Utilities + Previous: mm_array_read Read +   Contents
    -
    +
    -

    -mm_array_write -- Write a dense array from a +

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


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

    Type:
    Asynchronous. @@ -73,19 +69,28 @@ call mm_array_write(b, iret, iunit, filename)
    On Entry
    -
    b
    -
    Rigth hand side(s). +
    a
    +
    the sparse matrix to be written. +
    +Type:required. +
    +Specified as: a structured data of type spdatapsb_Tspmat_type. +
    +
    mtitle
    +
    Matrix title.
    Type: required
    -An array of type real or complex, rank 1 or 2; will be written..
    +A charachter variable holding a descriptive title for the matrix to be + written to file. +

    filename
    -
    The name of the file to be written. +
    The name of the file to be written to.
    Type:optional.
    Specified as: a character variable containing a valid file name, or --, in which case the default input unit 5 (i.e. standard input +-, in which case the default output unit 6 (i.e. standard output in Unix jargon) is used. Default: -.
    iunit
    diff --git a/docs/html/node123.html b/docs/html/node123.html index 482b427c..1dc181f9 100644 --- a/docs/html/node123.html +++ b/docs/html/node123.html @@ -1,99 +1,114 @@ - + - + -Preconditioner routines - +mm_array_write -- Write a dense array from a file in the MatrixMarket format + - + - - - + + - - + next - + up - previous - contents
    - Next: init Initialize - Up: userhtml - Previous: mm_array_write Write -   Next: Preconditioner routines + Up: Utilities + Previous: mm_mat_write Write +   Contents
    -
    +
    -

    - +

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

    + +

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

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

    +
    Type:
    +
    Asynchronous. +
    +
    On Entry
    +
    +
    +
    b
    +
    Rigth hand side(s). +
    +Type: required +
    +An array of type real or complex, rank 1 or 2; will be written..
    +
    filename
    +
    The name of the file to be written. +
    +Type:optional. +
    +Specified as: a character variable containing a valid file name, or +-, in which case the default input unit 5 (i.e. standard input +in Unix jargon) is used. Default: -. +
    +
    iunit
    +
    The Fortran file unit number. +
    +Type:optional. +
    +Specified as: an integer value. Only meaningful if filename is not -. +
    +
    -
      -
    • Diagonal Scaling -
    • -
    • Block Jacobi with ILU(0) factorization -
    • -
    -The supporting data type and subroutine interfaces are defined in the -module psb_prec_mod. -The old interfaces psb_precinit and psb_precbld are still supported for -backward compatibility

    -


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



    diff --git a/docs/html/node124.html b/docs/html/node124.html index c34a9b02..56ba1c09 100644 --- a/docs/html/node124.html +++ b/docs/html/node124.html @@ -1,141 +1,98 @@ - + - + -init -- Initialize a preconditioner - +Preconditioner routines + - + - - - + + + - - + next - + up - previous - contents
    - Next: build Builds - Up: Preconditioner routines - Previous: Preconditioner routines -   Next: init Initialize + Up: userhtml + Previous: mm_array_write Write +   Contents
    -
    +
    -

    -init -- Initialize a preconditioner -

    +

    + +
    +Preconditioner routines +

    -

    -call prec%init(ptype, info)
    -
    +The base PSBLAS library contains the implementation of two simple +preconditioning techniques: -

    -

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

    -

    -
    prec
    -
    Scope: local -
    -Type: required -
    -Intent: inout. -
    -Specified as: a preconditioner data structure precdatapsb_prec_type. -
    -
    info
    -
    Scope: global -
    -Type: required -
    -Intent: out. -
    -Error code: if no error, 0 is returned. -
    -
    -NotesLegal inputs to this subroutine are interpreted depending on the -$ptype$ string as follows4: -
    -
    NONE
    -
    No preconditioning, i.e. the preconditioner is just a copy - operator. -
    -
    DIAG
    -
    Diagonal scaling; each entry of the input vector is - multiplied by the reciprocal of the sum of the absolute values of - the coefficients in the corresponding row of matrix $A$; -
    -
    BJAC
    -
    Precondition by a factorization of the - block-diagonal of matrix $A$, where block boundaries are determined - by the data allocation boundaries for each process; requires no - communication. Only the incomplete factorization $ILU(0)$ is - currently implemented. -
    -
    +
      +
    • Diagonal Scaling +
    • +
    • Block Jacobi with ILU(0) factorization +
    • +
    +The supporting data type and subroutine interfaces are defined in the +module psb_prec_mod. +The old interfaces psb_precinit and psb_precbld are still supported for +backward compatibility



    + +Subsections + + + +

    diff --git a/docs/html/node125.html b/docs/html/node125.html index 47facf29..bfe5f26c 100644 --- a/docs/html/node125.html +++ b/docs/html/node125.html @@ -1,156 +1,134 @@ - + - + -build -- Builds a preconditioner - +init -- Initialize a preconditioner + - + - + - - + next - + up - previous - contents
    - Next: apply Preconditioner - Up: Preconditioner routines - Previous: init Initialize -   Next: build Builds + Up: Preconditioner routines + Previous: Preconditioner routines +   Contents
    -
    +
    -

    -build -- Builds a preconditioner +

    +init -- Initialize a preconditioner

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

    Type:
    -
    Synchronous. +
    Asynchronous.
    On Entry
    -
    a
    -
    the system sparse matrix. -Scope: local +
    ptype
    +
    the type of preconditioner. +Scope: global
    Type: required
    -Intent: in, target. +Intent: in.
    -Specified as: a sparse matrix data structure spdatapsb_Tspmat_type. +Specified as: a character string, see usage notes. +
    +
    On Exit
    +

    prec
    -
    the preconditioner. -
    -Scope: local +
    Scope: local
    Type: required
    Intent: inout.
    -Specified as: an already initialized precondtioner data structure precdatapsb_prec_type -
    -
    desc_a
    -
    the problem communication descriptor. -Scope: local -
    -Type: required -
    -Intent: in, target. -
    -Specified as: a communication descriptor data structure descdatapsb_desc_type. +Specified as: a preconditioner data structure precdatapsb_prec_type.
    -
    amold
    -
    The desired dynamic type for the internal matrix storage. -
    -Scope: local. -
    -Type: optional. -
    -Intent: in. -
    -Specified as: an object of a class derived from spbasedatapsb_T_base_sparse_mat. -
    -
    vmold
    -
    The desired dynamic type for the internal vector storage. -
    -Scope: local. +
    info
    +
    Scope: global
    -Type: optional. +Type: required
    -Intent: in. +Intent: out.
    -Specified as: an object of a class derived from vbasedatapsb_T_base_vect_type. - -

    +Error code: if no error, 0 is returned.

    - -

    +Notes +Legal inputs to this subroutine are interpreted depending on the +$ptype$ string as follows4:

    -
    On Return
    -
    +
    NONE
    +
    No preconditioning, i.e. the preconditioner is just a copy + operator.
    -
    prec
    -
    the preconditioner. -
    -Scope: local -
    -Type: required -
    -Intent: inout. -
    -Specified as: a precondtioner data structure precdatapsb_prec_type -
    -
    info
    -
    Error code. -
    -Scope: local -
    -Type: required -
    -Intent: out. -
    -An integer value; 0 means no error has been detected. +
    DIAG
    +
    Diagonal scaling; each entry of the input vector is + multiplied by the reciprocal of the sum of the absolute values of + the coefficients in the corresponding row of matrix $A$; +
    +
    BJAC
    +
    Precondition by a factorization of the + block-diagonal of matrix $A$, where block boundaries are determined + by the data allocation boundaries for each process; requires no + communication. Only the incomplete factorization $ILU(0)$ is + currently implemented.
    diff --git a/docs/html/node126.html b/docs/html/node126.html index 3b53f96b..deaa93f6 100644 --- a/docs/html/node126.html +++ b/docs/html/node126.html @@ -1,65 +1,60 @@ - + - + -apply -- Preconditioner application routine - +build -- Builds a preconditioner + - + - + - - + next - + up - previous - contents
    - Next: descr Prints - Up: Preconditioner routines - Previous: build Builds -   Next: apply Preconditioner + Up: Preconditioner routines + Previous: init Initialize +   Contents
    -
    +
    -

    -apply -- Preconditioner application - routine +

    +build -- Builds a preconditioner

    -call prec%apply(x,y,desc_a,info,trans,work)
    -call prec%apply(x,desc_a,info,trans)
    +call prec%build(a, desc_a, info[,amold,vmold,imold])
     

    @@ -70,54 +65,69 @@ call prec%apply(x,desc_a,info,trans)

    On Entry
    -
    prec
    -
    the preconditioner. +
    a
    +
    the system sparse matrix. Scope: local
    Type: required
    -Intent: in. +Intent: in, target.
    -Specified as: a preconditioner data structure precdatapsb_prec_type. +Specified as: a sparse matrix data structure spdatapsb_Tspmat_type.
    -
    x
    -
    the source vector. +
    prec
    +
    the preconditioner. +
    Scope: local
    Type: required
    Intent: inout.
    -Specified as: a rank one array or an object of type vdatapsb_T_vect_type. -
    +Specified as: an already initialized precondtioner data structure precdatapsb_prec_type +
    desc_a
    -
    the problem communication descriptor. +
    the problem communication descriptor. Scope: local
    Type: required
    +Intent: in, target. +
    +Specified as: a communication descriptor data structure descdatapsb_desc_type. +
    +
    amold
    +
    The desired dynamic type for the internal matrix storage. +
    +Scope: local. +
    +Type: optional. +
    Intent: in.
    -Specified as: a communication data structure descdatapsb_desc_type. +Specified as: an object of a class derived from spbasedatapsb_T_base_sparse_mat.
    -
    trans
    -
    Scope: +
    vmold
    +
    The desired dynamic type for the internal vector storage. +
    +Scope: local.
    -Type: optional +Type: optional.
    Intent: in.
    -Specified as: a character. +Specified as: an object of a class derived from vbasedatapsb_T_base_vect_type.
    -
    work
    -
    an optional work space -Scope: local +
    imold
    +
    The desired dynamic type for the internal integer vector storage.
    -Type: optional +Scope: local.
    -Intent: inout. +Type: optional.
    -Specified as: a double precision array. +Intent: in. +
    +Specified as: an object of a class derived from (integer) vbasedatapsb_T_base_vect_type.
    @@ -126,16 +136,17 @@ Specified as: a double precision array.
    On Return
    -
    y
    -
    the destination vector. +
    prec
    +
    the preconditioner. +
    Scope: local
    Type: required
    Intent: inout.
    -Specified as: a rank one array or an object of type vdatapsb_T_vect_type. -
    +Specified as: a precondtioner data structure precdatapsb_prec_type +
    info
    Error code.
    @@ -148,9 +159,36 @@ Intent: out. An integer value; 0 means no error has been detected.
    +The amold, vmold and imold arguments may be +employed to interface with special devices, such as GPUs and other +accelerators.

    -


    + + + diff --git a/docs/html/node127.html b/docs/html/node127.html index e99de6d6..01d2e04c 100644 --- a/docs/html/node127.html +++ b/docs/html/node127.html @@ -1,71 +1,68 @@ - + - + -descr -- Prints a description of current preconditioner - +apply -- Preconditioner application routine + - + - + - - + next - + up - previous - contents
    - Next: clone clone - Up: Preconditioner routines - Previous: apply Preconditioner -   Next: descr Prints + Up: Preconditioner routines + Previous: build Builds +   Contents
    -
    +
    -

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

    +apply -- Preconditioner application + routine

    -call prec%descr()
    -call prec%descr(iout, root)
    +call prec%apply(x,y,desc_a,info,trans,work)
    +call prec%apply(x,desc_a,info,trans)
     

    Type:
    -
    Asynchronous. +
    Synchronous.
    On Entry
    @@ -80,33 +77,72 @@ Intent: in.
    Specified as: a preconditioner data structure precdatapsb_prec_type.
    -
    iout
    -
    output unit. +
    x
    +
    the source vector. Scope: local
    +Type: required +
    +Intent: inout. +
    +Specified as: a rank one array or an object of type vdatapsb_T_vect_type. +
    +
    desc_a
    +
    the problem communication descriptor. +Scope: local +
    +Type: required +
    +Intent: in. +
    +Specified as: a communication data structure descdatapsb_desc_type. +
    +
    trans
    +
    Scope: +
    Type: optional
    Intent: in.
    -Specified as: an integer number. Default: default output unit. +Specified as: a character.
    -
    root
    -
    Process from which to print +
    work
    +
    an optional work space Scope: local
    Type: optional
    -Intent: in. +Intent: inout. +
    +Specified as: a double precision array. +
    +
    + +

    +

    +
    On Return
    +
    +
    +
    y
    +
    the destination vector. +Scope: local +
    +Type: required +
    +Intent: inout. +
    +Specified as: a rank one array or an object of type vdatapsb_T_vect_type. +
    +
    info
    +
    Error code. +
    +Scope: local +
    +Type: required +
    +Intent: out.
    -Specified as: an integer number between 0 and $np-1$, in which case -the specified process will print the description, or $-1$, in which case -all processes will print. Default: 0. +An integer value; 0 means no error has been detected.
    diff --git a/docs/html/node128.html b/docs/html/node128.html index 7b920fc7..1fe31481 100644 --- a/docs/html/node128.html +++ b/docs/html/node128.html @@ -1,63 +1,62 @@ - + - + -clone -- clone current preconditioner - +descr -- Prints a description of current preconditioner + - + - + - - + next - + up - previous - contents
    - Next: free Free - Up: Preconditioner routines - Previous: descr Prints -   Next: clone clone + Up: Preconditioner routines + Previous: apply Preconditioner +   Contents
    -
    +
    -

    -clone -- clone current +

    +descr -- Prints a description of current preconditioner

    +

    -call  prec%clone(precout,info)
    +call prec%descr()
    +call prec%descr(iout, root)
     

    @@ -70,21 +69,41 @@ call prec%clone(precout,info)

    prec
    the preconditioner. +Scope: local
    -Scope: local. -
    - - -

    -

    -
    On Return
    -
    +Type: required +
    +Intent: in. +
    +Specified as: a preconditioner data structure precdatapsb_prec_type.
    -
    precout
    -
    A copy of the input object. +
    iout
    +
    output unit. +Scope: local +
    +Type: optional +
    +Intent: in. +
    +Specified as: an integer number. Default: default output unit.
    -
    info
    -
    Return code. +
    root
    +
    Process from which to print +Scope: local +
    +Type: optional +
    +Intent: in. +
    +Specified as: an integer number between 0 and $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/node129.html b/docs/html/node129.html index f1a436ce..a2c27a0a 100644 --- a/docs/html/node129.html +++ b/docs/html/node129.html @@ -1,62 +1,60 @@ - + - + -free -- Free a preconditioner - +clone -- clone current preconditioner + - + + - + - - + next - + up - previous - contents
    - Next: Iterative Methods - Up: Preconditioner routines - Previous: clone clone -   Next: free Free + Up: Preconditioner routines + Previous: descr Prints +   Contents
    -
    +
    -

    -free -- Free a preconditioner +

    +clone -- clone current + preconditioner

    -

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

    @@ -71,36 +69,21 @@ call prec%free(info)

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

    +

    + + +

    +

    +
    On Return
    +
    -
    prec
    -
    Scope: local -
    -Type: required -
    -Intent: inout. -
    -Specified as: a preconditioner data structure precdatapsb_prec_type. +
    precout
    +
    A copy of the input object.
    info
    -
    Scope: global -
    -Type: required -
    -Intent: out. -
    -Error code: if no error, 0 is returned. +
    Return code.
    -NotesReleases all internal storage.



    diff --git a/docs/html/node13.html b/docs/html/node13.html index d28d2b51..41f19a65 100644 --- a/docs/html/node13.html +++ b/docs/html/node13.html @@ -1,10 +1,6 @@ - + - + get_local_cols -- Get number of local cols @@ -13,7 +9,7 @@ original version by: Nikos Drakos, CBLU, University of Leeds - + @@ -25,30 +21,31 @@ 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
    -
    +

    @@ -87,10 +84,10 @@ Scope: local. it is equal to -$\vert{\cal I}_i\vert + \vert{\cal B}_i\vert +\vert{\cal H}_i\vert$. The + ALT="$\vert{\cal I}_i\vert + \vert{\cal B}_i\vert +\vert{\cal H}_i\vert$">. The returned value is specific to the calling process. diff --git a/docs/html/node130.html b/docs/html/node130.html index 44f84b76..417e761a 100644 --- a/docs/html/node130.html +++ b/docs/html/node130.html @@ -1,78 +1,106 @@ - + - + -Iterative Methods - +free -- Free a preconditioner + - + - - - + + - - + next - + up - previous - contents
    - Next: psb_krylov Krylov - Up: userhtml - Previous: free Free -   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. +
    +
    +Notes +Releases all internal storage. - - +



    diff --git a/docs/html/node131.html b/docs/html/node131.html index 1846e494..1426c2f7 100644 --- a/docs/html/node131.html +++ b/docs/html/node131.html @@ -1,433 +1,76 @@ - + - + -psb_krylov -- Krylov Methods Driver Routine - +Iterative Methods + - + - - + + + - - + 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 method5; - -

    -

    -
    BICG:
    -
    the Bi-Conjugate Gradient method; - -
    -
    BICGSTAB:
    -
    the Bi-Conjugate Gradient Stabilized method; - -
    -
    BICGSTABL:
    -
    the Bi-Conjugate Gradient Stabilized method with restarting; - -
    -
    RGMRES:
    -
    the Generalized Minimal Residual method with restarting. - -
    -
    -
    -
    a
    -
    the local portion of global sparse matrix -$A$. -
    -Scope: local -
    -Type: required -
    -Intent: in. -
    -Specified as: a structured data of type spdatapsb_Tspmat_type. -
    -
    prec
    -
    The data structure containing the preconditioner. -
    -Scope: local -
    -Type: required -
    -Intent: in. -
    -Specified as: a structured data of type precdatapsb_prec_type. -
    -
    b
    -
    The RHS vector. -
    -Scope: local -
    -Type: required -
    -Intent: in. -
    -Specified as: a rank one array or an object of type vdatapsb_T_vect_type. -
    -
    x
    -
    The initial guess. -
    -Scope: local -
    -Type: required -
    -Intent: inout. -
    -Specified as: a rank one array or an object of type vdatapsb_T_vect_type. -
    -
    eps
    -
    The stopping tolerance. -
    -Scope: global -
    -Type: required -
    -Intent: in. -
    -Specified as: a real number. -
    -
    desc_a
    -
    contains data structures for communications. -
    -Scope: local -
    -Type: required -
    -Intent: in. -
    -Specified as: a structured data of type descdatapsb_desc_type. -
    -
    itmax
    -
    The maximum number of iterations to perform. -
    -Scope: global -
    -Type: optional -
    -Intent: in. -
    -Default: $itmax = 1000$. -
    -Specified as: an integer variable $itmax \ge 1$. -
    -
    itrace
    -
    If $>0$ print out an informational message about - convergence every $itrace$ iterations. -
    -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/node132.html b/docs/html/node132.html index 63b306d3..6085fbf9 100644 --- a/docs/html/node132.html +++ b/docs/html/node132.html @@ -1,173 +1,431 @@ - + - + -Bibliography - +psb_krylov -- Krylov Methods Driver Routine + - + - - - + + - - + next - + up - previous - contents
    - Next: About this document ... - Up: userhtml - Previous: psb_krylov Krylov -   Next: Bibliography + Up: Iterative Methods + Previous: Iterative Methods +   Contents -

    +
    +
    - -

    -Bibliography -

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

    +
    +psb_krylov -- Krylov Methods Driver + Routine +

    -

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

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

    4 -
    P. D'Ambra, S. Filippone, D. Di Serafino
    -On the Development of PSBLAS-based Parallel Two-level Schwarz Preconditioners -
    -Applied Numerical Mathematics, Elsevier Science, -Volume 57, Issues 11-12, November-December 2007, Pages 1181-1196. +This subroutine is a driver that provides a general interface for all +the Krylov-Subspace family methods implemented in PSBLAS version 2. + +

    +The stopping criterion can take the following values: +

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

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

    -

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

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

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

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

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

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

    11 -
    -S. Filippone and A. Buttari, -Object-Oriented Techniques for Sparse Matrix Computations in Fortran 2003, +\begin{lstlisting}
+call psb_krylov(method,a,prec,b,x,eps,desc_a,info,&
+& itmax,iter,err,itrace,irst,istop,cond)
+\end{lstlisting}
    -ACM Transactions on Mathematical Software, 38(4), 2012.

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

    13 -
    - Gamma, E., Helm, R., Johnson, R., and Vlissides, - J. 1995. - Design Patterns: Elements of Reusable Object-Oriented Software. - Addison-Wesley.

    -

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

    15 -
    -Lawson, C., Hanson, R., Kincaid, D. and Krogh, F., - Basic Linear Algebra Subprograms for Fortran usage, -ACM Trans. Math. Softw. vol. 5, 38-329, 1979. +
    +
    method
    +
    a string that defines the iterative method to be + used. Supported values are: +
    +
    CG:
    +
    the Conjugate Gradient method; + +
    +
    CGS:
    +
    the Conjugate Gradient Stabilized method;

    -

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

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

    18 -
    -Rouson, D.W.I., Xia, J., Xu, X.: Scientific Software Design: The - Object-Oriented Way. Cambridge University Press (2011) +
    +
    GCR:
    +
    the Generalized Conjugate Residual method; + +
    +
    FCG:
    +
    the Flexible Conjugate Gradient method5; + +

    +

    +
    BICG:
    +
    the Bi-Conjugate Gradient method; + +
    +
    BICGSTAB:
    +
    the Bi-Conjugate Gradient Stabilized method; + +
    +
    BICGSTABL:
    +
    the Bi-Conjugate Gradient Stabilized method with restarting; + +
    +
    RGMRES:
    +
    the Generalized Minimal Residual method with restarting. + +
    +
    +
    +
    a
    +
    the local portion of global sparse matrix +$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.

    -

    19 + +
    istop
    +
    An integer specifying the stopping criterion. +
    +Scope: global +
    +Type: optional. +
    +Intent: in. +
    +Values: 1: use the normwise backward error, 2: use the scaled 2-norm +of the residual, 3: use the residual reduction in the 2-norm. Default: 2. +
    +
    On Return
    -M. Snir, S. Otto, S. Huss-Lederman, D. Walker and J. Dongarra, -MPI: The Complete Reference. Volume 1 - The MPI Core, second edition, -MIT Press, 1998.
    + +
    x
    +
    The computed solution. +
    +Scope: local +
    +Type: required +
    +Intent: inout. +
    +Specified as: a rank one array or an object of type vdatapsb_T_vect_type. +
    +
    iter
    +
    The number of iterations performed. +
    +Scope: global +
    +Type: optional +
    +Intent: out. +
    +Returned as: an integer variable. +
    +
    err
    +
    The convergence estimate on exit. +
    +Scope: global +
    +Type: optional +
    +Intent: out. +
    +Returned as: a real number. +
    +
    cond
    +
    An estimate of the condition number of matrix $A$; only + available with the $CG$ method on real data. +
    +Scope: global +
    +Type: optional +
    +Intent: out. +
    +Returned as: a real number. A correct result will be greater than or +equal to one; if specified for non-real data, or an error occurred, +zero is returned. +
    +
    info
    +
    Error code. +
    +Scope: local +
    +Type: required +
    +Intent: out. +
    +An integer value; 0 means no error has been detected. +
    +
    + +

    -


    + +

    + +

    + +

    + diff --git a/docs/html/node133.html b/docs/html/node133.html index 4831ac88..60673a69 100644 --- a/docs/html/node133.html +++ b/docs/html/node133.html @@ -1,69 +1,179 @@ - + - + -About this document ... - +Bibliography + - + - + + + - -next - + +next + up - previous - contents
    - Up: Next: About this document ... + Up: userhtml - Previous: Bibliography -   Previous: psb_krylov Krylov +   Contents -
    -
    +

    + +

    +Bibliography +

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

    -About this document ... -

    -

    -This document was generated using the -LaTeX2HTML translator Version 2012 (1.2)

    -Copyright © 1993, 1994, 1995, 1996, -Nikos Drakos, -Computer Based Learning Unit, University of Leeds. +

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

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

    4 +
    P. D'Ambra, S. Filippone, D. Di Serafino
    +On the Development of PSBLAS-based Parallel Two-level Schwarz Preconditioners
    -Copyright © 1997, 1998, 1999, -Ross Moore, -Mathematics Department, Macquarie University, Sydney. +Applied Numerical Mathematics, Elsevier Science, +Volume 57, Issues 11-12, November-December 2007, Pages 1181-1196. +

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

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

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

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

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

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

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

    11 +
    +S. Filippone and A. Buttari, +Object-Oriented Techniques for Sparse Matrix Computations in Fortran 2003, +
    +ACM Transactions on Mathematical Software, 38(4), 2012. +

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

    13 +
    + Gamma, E., Helm, R., Johnson, R., and Vlissides, + J. 1995. + Design Patterns: Elements of Reusable Object-Oriented Software. + Addison-Wesley. + +

    +

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

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

    +

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

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

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

    +

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

    -The translation was initiated by Salvatore Filippone on 2017-11-12


    diff --git a/docs/html/node14.html b/docs/html/node14.html index c2f45ed0..071e643d 100644 --- a/docs/html/node14.html +++ b/docs/html/node14.html @@ -1,10 +1,6 @@ - + - + get_global_rows -- Get number of global rows @@ -13,7 +9,7 @@ original version by: Nikos Drakos, CBLU, University of Leeds - + @@ -25,30 +21,31 @@ 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 47eba8f8..fedad50b 100644 --- a/docs/html/node15.html +++ b/docs/html/node15.html @@ -1,10 +1,6 @@ - + - + get_global_cols -- Get number of global cols @@ -13,7 +9,7 @@ original version by: Nikos Drakos, CBLU, University of Leeds - + @@ -25,30 +21,31 @@ 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 119946e8..e084853d 100644 --- a/docs/html/node16.html +++ b/docs/html/node16.html @@ -1,10 +1,6 @@ - + - + get_global_indices -- Get vector of global indices @@ -13,7 +9,7 @@ original version by: Nikos Drakos, CBLU, University of Leeds - + @@ -25,30 +21,31 @@ 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 5b1bfd19..dafa0487 100644 --- a/docs/html/node17.html +++ b/docs/html/node17.html @@ -1,10 +1,6 @@ - + - + get_context -- Get communication context @@ -13,7 +9,7 @@ original version by: Nikos Drakos, CBLU, University of Leeds - + @@ -25,30 +21,31 @@ 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 b31835c8..3183fca1 100644 --- a/docs/html/node18.html +++ b/docs/html/node18.html @@ -1,10 +1,6 @@ - + - + Clone -- clone current object @@ -13,7 +9,7 @@ original version by: Nikos Drakos, CBLU, University of Leeds - + @@ -25,30 +21,31 @@ original version by: Nikos Drakos, CBLU, University of Leeds - - + next - up - previous - contents
    - Next: psb_cd_get_large_threshold Get - Up: Next: CNV convert + Up: Descriptor data structure - Previous: Previous: get_context Get -   Contents
    -
    +

    diff --git a/docs/html/node19.html b/docs/html/node19.html index a508e365..928541fa 100644 --- a/docs/html/node19.html +++ b/docs/html/node19.html @@ -1,19 +1,15 @@ - + - + -psb_cd_get_large_threshold -- Get threshold for index mapping switch - +CNV -- convert internal storage format + - + @@ -25,40 +21,40 @@ original version by: Nikos Drakos, CBLU, University of Leeds - - + next - up - previous - contents
    - Next: psb_cd_set_large_threshold Set - Up: Next: psb_cd_get_large_threshold Get + Up: Descriptor data structure - Previous: Previous: Clone clone -   Contents
    -
    +

    -psb_cd_get_large_threshold -- Get threshold for - index mapping switch +CNV -- convert internal storage format

    -ith = psb_cd_get_large_threshold()
    +call  desc%cnv(mold)
     

    @@ -66,15 +62,25 @@ ith = psb_cd_get_large_threshold()

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

    +

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



    diff --git a/docs/html/node2.html b/docs/html/node2.html index f3a9bd05..8e0073d4 100644 --- a/docs/html/node2.html +++ b/docs/html/node2.html @@ -1,10 +1,6 @@ - + - + Introduction @@ -13,7 +9,7 @@ original version by: Nikos Drakos, CBLU, University of Leeds - + @@ -25,30 +21,31 @@ 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 +68,7 @@ passing.

    The PSBLAS library version 3 is implemented in the Fortran 2003 [17] programming language, with reuse and/or + HREF="node133.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 +78,11 @@ mostly in the handling of requirements for evolution and adaptation of the library to new computing architectures and integration of new algorithms. For a detailed discussion of our design see [11]; other + HREF="node133.html#Sparse03">11]; other works discussing advanced programming in Fortran 2003 include [1,18]; sufficient support for + HREF="node133.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 +91,7 @@ Previous approaches have been based on mixing Fortran 95, with its support for object-based design, with other languages; these have been advocated by a number of authors, e.g. [16]. Moreover, the Fortran 95 facilities for dynamic + HREF="node133.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 +102,12 @@ implementation or compilation time. The presentation of the PSBLAS library follows the general structure of the proposal for serial Sparse BLAS [8,9], which in its turn is based on the + HREF="node133.html#sblas97">8,9], which in its turn is based on the proposal for BLAS on dense matrices [15,5,6]. + HREF="node133.html#BLAS1">15,5,6].

    The applicability of sparse iterative solvers to many different areas @@ -142,29 +139,30 @@ an established experience in applying the PSBLAS solvers to computational fluid dynamics applications.

    -


    + + diff --git a/docs/html/node20.html b/docs/html/node20.html index d0da9335..de929193 100644 --- a/docs/html/node20.html +++ b/docs/html/node20.html @@ -1,19 +1,15 @@ - + - + -psb_cd_set_large_threshold -- Set threshold for index mapping switch - +psb_cd_get_large_threshold -- Get threshold for index mapping switch + - + @@ -25,67 +21,57 @@ original version by: Nikos Drakos, CBLU, University of Leeds - - + next - up - previous - contents
    - Next: Named Constants - Up: Next: psb_cd_set_large_threshold Set + Up: Descriptor data structure - Previous: psb_cd_get_large_threshold Get -   Previous: CNV convert +   Contents
    -
    +

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

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

    Type:
    -
    Synchronous. +
    Asynchronous.
    -
    On Entry
    +
    On Return
    -
    ith
    -
    the new threshold for communication descriptors. -
    -Scope: global. -
    -Type: required. -
    -Intent: in. -
    -Specified as: an integer value greater than zero. +
    Function value
    +
    The current value for the size threshold. + +

    -Note: the threshold value is only queried by the library at the time a -call to psb_cdall is executed, therefore changing the threshold -has no effect on communication descriptors that have already been -initialized. Moreover the threshold must have the same value on all -processes.



    diff --git a/docs/html/node21.html b/docs/html/node21.html index a7381d6d..e8c89960 100644 --- a/docs/html/node21.html +++ b/docs/html/node21.html @@ -1,98 +1,88 @@ - + - + -Named Constants - +psb_cd_set_large_threshold -- Set threshold for index mapping switch + - + + - - + next - up - previous - contents
    - Next: Sparse Matrix class - Up: Next: Named Constants + Up: Descriptor data structure - Previous: psb_cd_set_large_threshold Set -   Previous: psb_cd_get_large_threshold Get +   Contents
    -
    +
    -

    - -
    -Named Constants +

    +psb_cd_set_large_threshold -- Set threshold for + index mapping switch

    + +

    +

    +call psb_cd_set_large_threshold(ith)
    +
    + +

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

    +

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



    diff --git a/docs/html/node22.html b/docs/html/node22.html index f4477a41..822a19d7 100644 --- a/docs/html/node22.html +++ b/docs/html/node22.html @@ -1,219 +1,98 @@ - + - + -Sparse Matrix class - +Named Constants + - + - - - + + - - + next - + up - previous - contents
    - Next: Sparse Matrix Methods - Up: Data Structures and Classes - Previous: Named Constants -   Next: Sparse Matrix class + Up: Descriptor data structure + Previous: psb_cd_set_large_threshold Set +   Contents
    -
    +
    -

    - +

    +
    -Sparse Matrix class -

    -The spdatapsb_Tspmat_type class -contains all information about the local portion of the sparse matrix and -its storage mode. Its design is -based on the STATE design pattern [13] as detailed -in [11]; the type declaration is shown in -figure 4 where T is a placeholder for the -data type and precision variants +Named Constants +
    -
    S
    -
    Single precision real; +
    psb_none_
    +
    Generic no-op;
    -
    D
    -
    Double precision real; +
    psb_root_
    +
    Default root process for broadcast and scatter operations;
    -
    C
    -
    Single precision complex; +
    psb_nohalo_
    +
    Do not fetch halo elements;
    -
    Z
    -
    Double precision complex. +
    psb_halo_
    +
    Fetch halo elements from neighbouring processes;
    -
    -The actual data is contained in the polymorphic component a%a -of type spbasedatapsb_T_base_sparse_mat; its -specific layout can be chosen dynamically among the predefined types, -or an entirely new storage layout can be implemented and passed to the -library at runtime via the psb_spasb routine. - -
    - - - -
    Figure 4: - The PSBLAS defined data type that - contains a sparse matrix.
    -
    -
    - -
    -
    -  type :: psb_Tspmat_type
    -    class(psb_T_base_sparse_mat), allocatable  :: a 
    -  end type  psb_Tspmat_type
    -
    -
    -
    -
    -The following very common formats are precompiled in PSBLAS and thus -are always available: -
    -
    psb_T_coo_sparse_mat
    -
    Coordinate storage; +
    psb_sum_
    +
    Sum overlapped elements
    -
    psb_T_csr_sparse_mat
    -
    Compressed storage by rows; +
    psb_avg_
    +
    Average overlapped elements
    -
    psb_T_csc_sparse_mat
    -
    Compressed storage by columns; +
    psb_comm_halo_
    +
    Exchange data based on the halo_index + list;
    -
    -The inner sparse matrix has an associated state, which can take the -following values: -
    -
    Build:
    -
    State entered after the first allocation, and before the - first assembly; in this state it is possible to add nonzero entries. +
    psb_comm_ext_
    +
    Exchange data based on the ext_index + list;
    -
    Assembled:
    -
    State entered after the assembly; computations using - the sparse matrix, such as matrix-vector products, are only possible - in this state; +
    psb_comm_ovr_
    +
    Exchange data based on the ovrlap_index + list;
    -
    Update:
    -
    State entered after a reinitalization; this is used to - handle applications in which the same sparsity pattern is used - multiple times with different coefficients. In this state it is only - possible to enter coefficients for already existing nonzero entries. +
    psb_comm_mov_
    +
    Exchange data based on the ovr_mst_idx + list; + +

    -The only storage variant supporting the build state is COO; all other -variants are obtained by conversion to/from it.



    - -Subsections - - - -
    - - -next - -up - -previous - -contents -
    - Next: Sparse Matrix Methods - Up: Data Structures and Classes - Previous: Named Constants -   Contents - diff --git a/docs/html/node23.html b/docs/html/node23.html index 70902e40..773886dd 100644 --- a/docs/html/node23.html +++ b/docs/html/node23.html @@ -1,62 +1,217 @@ - + - + -Sparse Matrix Methods - +Sparse Matrix class + - + - - - + + + - - + next - + up - previous - contents
    - Next: get_nrows Get - Up: Sparse Matrix class - Previous: Sparse Matrix class -   Next: Sparse Matrix Methods + Up: Data Structures and Classes + Previous: Named Constants +   Contents
    -
    +
    -

    -Sparse Matrix Methods -

    +

    + +
    +Sparse Matrix class +

    +The spdatapsb_Tspmat_type class +contains all information about the local portion of the sparse matrix and +its storage mode. Its design is +based on the STATE design pattern [13] as detailed +in [11]; the type declaration is shown in +figure 4 where T is a placeholder for the +data type and precision variants +
    +
    S
    +
    Single precision real; +
    +
    D
    +
    Double precision real; +
    +
    C
    +
    Single precision complex; +
    +
    Z
    +
    Double precision complex. +
    +
    +The actual data is contained in the polymorphic component a%a +of type spbasedatapsb_T_base_sparse_mat; its +specific layout can be chosen dynamically among the predefined types, +or an entirely new storage layout can be implemented and passed to the +library at runtime via the psb_spasb routine. + +
    + + + +
    Figure 4: + The PSBLAS defined data type that + contains a sparse matrix.
    +
    +
    + +
    +
    +  type :: psb_Tspmat_type
    +    class(psb_T_base_sparse_mat), allocatable  :: a 
    +  end type  psb_Tspmat_type
    +
    +
    +
    +
    +The following very common formats are precompiled in PSBLAS and thus +are always available: +
    +
    psb_T_coo_sparse_mat
    +
    Coordinate storage; +
    +
    psb_T_csr_sparse_mat
    +
    Compressed storage by rows; +
    +
    psb_T_csc_sparse_mat
    +
    Compressed storage by columns; +
    +
    +The inner sparse matrix has an associated state, which can take the +following values: +
    +
    Build:
    +
    State entered after the first allocation, and before the + first assembly; in this state it is possible to add nonzero entries. +
    +
    Assembled:
    +
    State entered after the assembly; computations using + the sparse matrix, such as matrix-vector products, are only possible + in this state; +
    +
    Update:
    +
    State entered after a reinitalization; this is used to + handle applications in which the same sparsity pattern is used + multiple times with different coefficients. In this state it is only + possible to enter coefficients for already existing nonzero entries. +
    +
    +The only storage variant supporting the build state is COO; all other +variants are obtained by conversion to/from it.



    + +Subsections + + + + + + diff --git a/docs/html/node24.html b/docs/html/node24.html index 1cb4e189..40c0a7e9 100644 --- a/docs/html/node24.html +++ b/docs/html/node24.html @@ -1,90 +1,57 @@ - + - + -get_nrows -- Get number of rows in a sparse matrix - +Sparse Matrix Methods + - + - + - - + next - + up - previous - contents
    - Next: get_ncols Get - Up: Sparse Matrix class - Previous: Sparse Matrix Methods -   Next: get_nrows Get + Up: Sparse Matrix class + Previous: Sparse Matrix class +   Contents
    -
    +
    -

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

    +Sparse Matrix Methods

    -

    -

    -nr = a%get_nrows()
    -
    - -

    -

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

    -

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



    diff --git a/docs/html/node25.html b/docs/html/node25.html index 47aba9b3..124e9ef9 100644 --- a/docs/html/node25.html +++ b/docs/html/node25.html @@ -1,64 +1,60 @@ - + - + -get_ncols -- Get number of columns in a sparse matrix - +get_nrows -- Get number of rows in a sparse matrix + - + - + - - + next - + up - previous - contents
    - Next: get_nnzeros Get - Up: Sparse Matrix class - Previous: get_nrows Get -   Next: get_ncols Get + Up: Sparse Matrix class + Previous: Sparse Matrix Methods +   Contents
    -
    +
    -

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

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

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

    @@ -82,7 +78,7 @@ Scope: local

    Function value
    -
    The number of columns of sparse matrix a. +
    The number of rows of sparse matrix a.
    diff --git a/docs/html/node26.html b/docs/html/node26.html index 5d2d3e0c..544a3837 100644 --- a/docs/html/node26.html +++ b/docs/html/node26.html @@ -1,64 +1,61 @@ - + - + -get_nnzeros -- Get number of nonzero elements in a sparse matrix - +get_ncols -- Get number of columns in a sparse matrix + - + - + - - + next - + up - previous - contents
    - Next: get_size Get - Up: Sparse Matrix class - Previous: get_ncols Get -   Next: get_nnzeros Get + Up: Sparse Matrix class + Previous: get_nrows Get +   Contents
    -
    +
    -

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

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

    -nz = a%get_nnzeros()
    +nc = a%get_ncols()
     

    @@ -82,20 +79,10 @@ Scope: local

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

    -Notes - -

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



    diff --git a/docs/html/node27.html b/docs/html/node27.html index 79388d62..ed4ae9d8 100644 --- a/docs/html/node27.html +++ b/docs/html/node27.html @@ -1,64 +1,61 @@ - + - + -get_size -- Get maximum number of nonzero elements in a sparse matrix - +get_nnzeros -- Get number of nonzero elements in a sparse matrix + - + - + - - + next - + up - previous - contents
    - Next: sizeof Get - Up: Sparse Matrix class - Previous: get_nnzeros Get -   Next: get_size Get + Up: Sparse Matrix class + Previous: get_ncols Get +   Contents
    -
    +
    -

    -get_size -- Get maximum number of nonzero elements +

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

    -maxnz = a%get_size()
    +nz = a%get_nnzeros()
     

    @@ -82,11 +79,20 @@ Scope: local

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

    +Notes + +

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



    diff --git a/docs/html/node28.html b/docs/html/node28.html index 02d5caeb..96260d80 100644 --- a/docs/html/node28.html +++ b/docs/html/node28.html @@ -1,66 +1,61 @@ - + - + -sizeof -- Get memory occupation in bytes -of a sparse matrix - +get_size -- Get maximum number of nonzero elements in a sparse matrix + - + - + - - + next - + up - previous - contents
    - Next: get_fmt Short - Up: Sparse Matrix class - Previous: get_size Get -   Next: sizeof Get + Up: Sparse Matrix class + Previous: get_nnzeros Get +   Contents
    -
    +
    -

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

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

    -memory_size = a%sizeof()
    +maxnz = a%get_size()
     

    @@ -84,7 +79,8 @@ Scope: local

    Function value
    -
    The memory occupation in bytes. +
    The maximum number of nonzero elements that can + be stored in sparse matrix a using its current memory allocation.
    diff --git a/docs/html/node29.html b/docs/html/node29.html index a7214796..a025b9aa 100644 --- a/docs/html/node29.html +++ b/docs/html/node29.html @@ -1,63 +1,63 @@ - + - + -get_fmt -- Short description of the dynamic type - +sizeof -- Get memory occupation in bytes +of a sparse matrix + - + - + - - + next - + up - previous - contents
    - Next: is_bld, is_upd, is_asb - Up: Sparse Matrix class - Previous: sizeof Get -   Next: get_fmt Short + Up: Sparse Matrix class + Previous: get_size Get +   Contents
    -
    +
    -

    -get_fmt -- Short description of the dynamic type +

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

    -write(*,*) a%get_fmt()
    +memory_size = a%sizeof()
     

    @@ -81,9 +81,7 @@ Scope: local

    Function value
    -
    A short string describing the dynamic type of - the matrix. Predefined values include NULL, COO, - CSR and CSC. +
    The memory occupation in bytes.
    diff --git a/docs/html/node3.html b/docs/html/node3.html index fd3a72c3..0b33a78c 100644 --- a/docs/html/node3.html +++ b/docs/html/node3.html @@ -1,10 +1,6 @@ - + - + General overview @@ -13,7 +9,7 @@ original version by: Nikos Drakos, CBLU, University of Leeds - + @@ -25,30 +21,31 @@ original version by: Nikos Drakos, CBLU, University of Leeds - - + next - up - previous - contents
    - Next: Next: Basic Nomenclature - Up: Up: userhtml - Previous: Previous: Introduction -   Contents
    -
    +

    @@ -58,10 +55,10 @@ General overview

    The PSBLAS library is designed to handle the implementation of iterative solvers for sparse linear systems on distributed memory -parallel computers. The system coefficient matrix $A$ must be square; + ALT="$A$"> must be square; it may be real or complex, nonsymmetric, and its sparsity pattern needs not to be symmetric. The serial computation parts are based on the serial sparse BLAS, so that any extension made to the data @@ -78,10 +75,11 @@ 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="node133.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. +further details on our communication layer see Sec. 7. +

    @@ -118,7 +116,7 @@ mesh.

    The distribution of the coefficient matrix for the linear system is -based on the ``owner computes'' rule: +based on the “owner computes” rule: the variable associated to each mesh point is assigned to a process that will own the corresponding row in the coefficient matrix and will carry out all related computations. This allocation strategy @@ -126,13 +124,14 @@ is equivalent to a partition of the discretization mesh into sub-domainsCYCLIC(N) and BLOCK, +This choice is consistent with simple data distributions +such as CYCLIC(N) and BLOCK, as well as completely arbitrary assignments of equation indices to processes. In particular it is consistent with the usage of graph partitioning tools commonly available in the literature, e.g. METIS [14]. + HREF="node133.html#METIS">14]. Dense vectors conform to sparse matrices, that is, the entries of a vector follow the same distribution of the matrix rows. @@ -143,7 +142,7 @@ process generates its own portion. We never require that the entire matrix be available on a single node. However, it is possible to hold the entire matrix in one process and distribute it explicitly1, even though the resulting memory + HREF="footnode.html#foot201">1, even though the resulting memory bottleneck would make this option unattractive in most cases.

    @@ -151,45 +150,46 @@ bottleneck would make this option unattractive in most cases. Subsections -

    -

    -is_bld, is_upd, is_asb -- Status check +

    +get_fmt -- Short description of the dynamic type

    -if (a%is_bld()) then 
    -if (a%is_upd()) then 
    -if (a%is_asb()) then
    +write(*,*) a%get_fmt()
     

    @@ -83,8 +78,9 @@ Scope: local

    Function value
    -
    A logical value indicating whether the - matrix is in the Build, Update or Assembled state, respectively. +
    A short string describing the dynamic type of + the matrix. Predefined values include NULL, COO, + CSR and CSC.
    diff --git a/docs/html/node31.html b/docs/html/node31.html index 9a3d3636..d2698743 100644 --- a/docs/html/node31.html +++ b/docs/html/node31.html @@ -1,67 +1,62 @@ - + - + -is_lower, is_upper, is_triangle, is_unit -- Format check - +is_bld, is_upd, is_asb -- Status check + - + - + - - + next - + up - previous - contents
    - Next: cscnv Convert - Up: Sparse Matrix class - Previous: is_bld, is_upd, is_asb -   Next: is_lower, is_upper, is_triangle, is_unit + Up: Sparse Matrix class + Previous: get_fmt Short +   Contents
    -
    +
    -

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

    +is_bld, is_upd, is_asb -- Status check

    -if (a%is_triangle()) then 
    -if (a%is_upper()) then 
    -if (a%is_lower()) then 
    -if (a%is_unit()) then
    +if (a%is_bld()) then 
    +if (a%is_upd()) then 
    +if (a%is_asb()) then
     

    @@ -86,9 +81,7 @@ Scope: local

    Function value
    A logical value indicating whether the - matrix is triangular; if is_triangle() returns .true. - check also if it is lower, upper and with a unit (i.e. assumed) - diagonal. + matrix is in the Build, Update or Assembled state, respectively.
    diff --git a/docs/html/node32.html b/docs/html/node32.html index 80c0c483..b3137473 100644 --- a/docs/html/node32.html +++ b/docs/html/node32.html @@ -1,64 +1,64 @@ - + - + -cscnv -- Convert to a different storage format - +is_lower, is_upper, is_triangle, is_unit -- Format check + - + - + - - + next - + up - previous - contents
    - Next: csclip Reduce - Up: Sparse Matrix class - Previous: is_lower, is_upper, is_triangle, is_unit -   Next: cscnv Convert + Up: Sparse Matrix class + Previous: is_bld, is_upd, is_asb +   Contents
    -
    +
    -

    -cscnv -- Convert to a different storage format +

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

    -call  a%cscnv(b,info [, type, mold, dupl])
    -call  a%cscnv(info [, type, mold, dupl])
    +if (a%is_triangle()) then 
    +if (a%is_upper()) then 
    +if (a%is_lower()) then 
    +if (a%is_unit()) then
     

    @@ -70,26 +70,10 @@ call a%cscnv(info [, type, mold, dupl])

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

    @@ -97,13 +81,11 @@ Type: optional.

    On Return
    -
    b,a
    -
    A copy of a with a new storage format. -
    -A variable of type psb_Tspmat_type. -
    -
    info
    -
    Return code. +
    Function value
    +
    A logical value indicating whether the + matrix is triangular; if is_triangle() returns .true. + check also if it is lower, upper and with a unit (i.e. assumed) + diagonal.
    diff --git a/docs/html/node33.html b/docs/html/node33.html index 4cf5cbcb..6303a477 100644 --- a/docs/html/node33.html +++ b/docs/html/node33.html @@ -1,69 +1,64 @@ - + - + -csclip -- Reduce to a submatrix - +cscnv -- Convert to a different storage format + - + - + - - + next - + up - previous - contents
    - Next: clean_zeros Eliminate - Up: Sparse Matrix class - Previous: cscnv Convert -   Next: csclip Reduce + Up: Sparse Matrix class + Previous: is_lower, is_upper, is_triangle, is_unit +   Contents
    -
    +
    -

    -csclip -- Reduce to a submatrix +

    +cscnv -- Convert to a different storage format

    +

    -    call a%csclip(b,info[,&
    -       & imin,imax,jmin,jmax,rscale,cscale])
    +call  a%cscnv(b,info [, type, mold, dupl])
    +call  a%cscnv(info [, type, mold, dupl])
     

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

    Type:
    Asynchronous. @@ -78,22 +73,29 @@ A variable of type psb_Tspmat_type.
    Scope: local.
    -
    imin,imax,jmin,jmax
    -
    Minimum and maximum row and column indices. +
    type
    +
    a string requesting a new format.
    Type: optional.
    -
    rscale,cscale
    -
    Whether to rescale row/column indices. +
    mold
    +
    a variable of class(psb_T_base_sparse_mat) requesting a new format. +
    Type: optional.
    +
    dupl
    +
    an integer value specifing how to handle duplicates (see + Named Constants below) +
    + +

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



    diff --git a/docs/html/node34.html b/docs/html/node34.html index ef03be13..524a0661 100644 --- a/docs/html/node34.html +++ b/docs/html/node34.html @@ -1,70 +1,66 @@ - + - + -clean_zeros -- Eliminate zero coefficients - +csclip -- Reduce to a submatrix + - + - + - - + next - + up - previous - contents
    - Next: get_diag Get - Up: Sparse Matrix class - Previous: csclip Reduce -   Next: clean_zeros Eliminate + Up: Sparse Matrix class + Previous: cscnv Convert +   Contents
    -
    +
    -

    -clean_zeros -- Eliminate zero coefficients +

    +csclip -- Reduce to a submatrix

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

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

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

    Type:
    Asynchronous. @@ -79,13 +75,22 @@ A variable of type psb_Tspmat_type.
    Scope: local.
    +
    imin,imax,jmin,jmax
    +
    Minimum and maximum row and column indices. +
    +Type: optional. +
    +
    rscale,cscale
    +
    Whether to rescale row/column indices. +Type: optional. +
    On Return
    -
    a
    -
    The matrix a without zero coefficients. +
    b
    +
    A copy of a submatrix of a.
    A variable of type psb_Tspmat_type.
    diff --git a/docs/html/node35.html b/docs/html/node35.html index 5e78b28a..a3ddef24 100644 --- a/docs/html/node35.html +++ b/docs/html/node35.html @@ -1,66 +1,67 @@ - + - + -get_diag -- Get main diagonal - +clean_zeros -- Eliminate zero coefficients + - + - + - - + next - + up - previous - contents
    - Next: clip_diag Cut - Up: Sparse Matrix class - Previous: clean_zeros Eliminate -   Next: get_diag Get + Up: Sparse Matrix class + Previous: csclip Reduce +   Contents
    -
    +
    -

    -get_diag -- Get main diagonal +

    +clean_zeros -- Eliminate zero coefficients

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

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

    Type:
    Asynchronous. @@ -80,10 +81,10 @@ Scope: local.
    On Return
    -
    d
    -
    A copy of the main diagonal. +
    a
    +
    The matrix a without zero coefficients.
    -A one-dimensional array of the appropriate type. +A variable of type psb_Tspmat_type.
    info
    Return code. diff --git a/docs/html/node36.html b/docs/html/node36.html index e4481a16..8b3077f7 100644 --- a/docs/html/node36.html +++ b/docs/html/node36.html @@ -1,66 +1,63 @@ - + - + -clip_diag -- Cut out main diagonal - +get_diag -- Get main diagonal + - + - + - - + next - + up - previous - contents
    - Next: tril Return - Up: Sparse Matrix class - Previous: get_diag Get -   Next: clip_diag Cut + Up: Sparse Matrix class + Previous: clean_zeros Eliminate +   Contents
    -
    +
    -

    -clip_diag -- Cut out main diagonal +

    +get_diag -- Get main diagonal

    -    call a%clip_diag(b,info)
    +    call a%get_diag(d,info)
     

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

    Type:
    Asynchronous. @@ -80,10 +77,10 @@ Scope: local.
    On Return
    -
    b
    -
    A copy of a without the main diagonal. +
    d
    +
    A copy of the main diagonal.
    -A variable of type psb_Tspmat_type. +A one-dimensional array of the appropriate type.
    info
    Return code. diff --git a/docs/html/node37.html b/docs/html/node37.html index 187ed39e..b0ed495c 100644 --- a/docs/html/node37.html +++ b/docs/html/node37.html @@ -1,70 +1,63 @@ - + - + -tril -- Return the lower triangle - +clip_diag -- Cut out main diagonal + - + - + - - + next - + up - previous - contents
    - Next: triu Return - Up: Sparse Matrix class - Previous: clip_diag Cut -   Next: tril Return + Up: Sparse Matrix class + Previous: get_diag Get +   Contents
    -
    +
    -

    -tril -- Return the lower triangle +

    +clip_diag -- Cut out main diagonal

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

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

    Type:
    Asynchronous. @@ -79,32 +72,13 @@ A variable of type psb_Tspmat_type.
    Scope: local.
    -
    diag
    -
    Include diagonals up to this one; diag=1 means the - first superdiagonal, diag=-1 means the first subdiagonal. -Default 0. -
    -
    imin,imax,jmin,jmax
    -
    Minimum and maximum row and column indices. -
    -Type: optional. -
    -
    rscale,cscale
    -
    Whether to rescale row/column indices. -Type: optional. -
    On Return
    -
    l
    -
    A copy of the lower triangle of a. -
    -A variable of type psb_Tspmat_type. -
    -
    u
    -
    (optional) A copy of the upper triangle of a. +
    b
    +
    A copy of a without the main diagonal.
    A variable of type psb_Tspmat_type.
    diff --git a/docs/html/node38.html b/docs/html/node38.html index 1631b4c5..ca301bde 100644 --- a/docs/html/node38.html +++ b/docs/html/node38.html @@ -1,70 +1,67 @@ - + - + -triu -- Return the upper triangle - +tril -- Return the lower triangle + - + - + - - + next - + up - previous - contents
    - Next: psb_set_mat_default Set - Up: Sparse Matrix class - Previous: tril Return -   Next: triu Return + Up: Sparse Matrix class + Previous: clip_diag Cut +   Contents
    -
    +
    -

    -triu -- Return the upper triangle +

    +tril -- Return the lower triangle

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

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

    Type:
    Asynchronous. @@ -98,13 +95,13 @@ Type: optional.
    On Return
    -
    u
    -
    A copy of the upper triangle of a. +
    l
    +
    A copy of the lower triangle of a.
    A variable of type psb_Tspmat_type.
    -
    l
    -
    (optional) A copy of the lower triangle of a. +
    u
    +
    (optional) A copy of the upper triangle of a.
    A variable of type psb_Tspmat_type.
    diff --git a/docs/html/node39.html b/docs/html/node39.html index 6dd9d025..14985dbf 100644 --- a/docs/html/node39.html +++ b/docs/html/node39.html @@ -1,66 +1,67 @@ - + - + -psb_set_mat_default -- Set default storage format - +triu -- Return the upper triangle + - + - + - - + next - + up - previous - contents
    - Next: clone Clone - Up: Sparse Matrix class - Previous: triu Return -   Next: psb_set_mat_default Set + Up: Sparse Matrix class + Previous: tril Return +   Contents
    -
    +
    -

    -psb_set_mat_default -- Set default storage format +

    +triu -- Return the upper triangle

    -

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

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

    Type:
    Asynchronous. @@ -69,10 +70,43 @@ call psb_set_mat_default(a)
    a
    -
    a variable of class(psb_T_base_sparse_mat) requesting - a new default storage format. +
    the sparse matrix. +
    +A variable of type psb_Tspmat_type. +
    +Scope: local. +
    +
    diag
    +
    Include diagonals up to this one; diag=1 means the + first superdiagonal, diag=-1 means the first subdiagonal. +Default 0. +
    +
    imin,imax,jmin,jmax
    +
    Minimum and maximum row and column indices. +
    +Type: optional. +
    +
    rscale,cscale
    +
    Whether to rescale row/column indices. +Type: optional. +
    +
    +
    +
    On Return
    +
    +
    +
    u
    +
    A copy of the upper triangle of a. +
    +A variable of type psb_Tspmat_type. +
    +
    l
    +
    (optional) A copy of the lower triangle of a.
    -Type: required. +A variable of type psb_Tspmat_type. +
    +
    info
    +
    Return code.
    diff --git a/docs/html/node4.html b/docs/html/node4.html index 159cdba4..6648616d 100644 --- a/docs/html/node4.html +++ b/docs/html/node4.html @@ -1,10 +1,6 @@ - + - + Basic Nomenclature @@ -13,7 +9,7 @@ original version by: Nikos Drakos, CBLU, University of Leeds - + @@ -25,30 +21,31 @@ 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
    -
    +

    @@ -64,24 +61,24 @@ PDE.

    Each point of the discretization mesh will have (at least) one associated equation/variable, and therefore one index. We say that -point $i$ depends on point $i$ depends on point $j$ if the equation for a -variable associated with $j$ if the equation for a +variable associated with $i$ contains a term in $i$ contains a term in $j$, or equivalently -if $j$, or equivalently +if $a_{ij} \ne0$. + ALT="$a_{ij} \ne0$">. After the partition of the discretization mesh into sub-domains assigned to the parallel processes, we classify the points of a given sub-domain as following. @@ -112,7 +109,7 @@ on it. Whenever performing a computational step, such as a matrix-vector product, the values associated with halo points are requested from other domains. A boundary point of a given domain is usually a halo point for some other domain2; therefore + HREF="footnode.html#foot210">2; therefore the cardinality of the boundary points set denotes the amount of data sent to other domains.

    @@ -126,43 +123,43 @@ 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="node133.html#2007c">4,3].

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

    @@ -191,33 +188,34 @@ Point classfication.

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

    -


    + + diff --git a/docs/html/node40.html b/docs/html/node40.html index a73eb767..624b2ccb 100644 --- a/docs/html/node40.html +++ b/docs/html/node40.html @@ -1,63 +1,60 @@ - + - + -clone -- Clone current object - +psb_set_mat_default -- Set default storage format + - + - + - - + next - + up - previous - contents
    - Next: Named Constants - Up: Sparse Matrix class - Previous: psb_set_mat_default Set -   Next: clone Clone + Up: Sparse Matrix class + Previous: triu Return +   Contents
    -
    +
    -

    -clone -- Clone current object +

    +psb_set_mat_default -- Set default storage format

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

    @@ -69,22 +66,10 @@ call a%clone(b,info)

    a
    -
    the sparse matrix. +
    a variable of class(psb_T_base_sparse_mat) requesting + a new default storage format.
    -Scope: local. -
    -
    - -

    -

    -
    On Return
    -
    -
    -
    b
    -
    A copy of the input object. -
    -
    info
    -
    Return code. +Type: required.
    diff --git a/docs/html/node41.html b/docs/html/node41.html index d04a75df..10c1385a 100644 --- a/docs/html/node41.html +++ b/docs/html/node41.html @@ -1,80 +1,87 @@ - + - + -Named Constants - +clone -- Clone current object + - + + - + - - + next - + up - previous - contents
    - Next: Dense Vector Data Structure - Up: Sparse Matrix class - Previous: clone Clone -   Next: Named Constants + Up: Sparse Matrix class + Previous: psb_set_mat_default Set +   Contents
    -
    +
    -

    - -
    -Named Constants +

    +clone -- Clone current object

    + +

    +

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

    -
    psb_dupl_ovwrt_
    -
    Duplicate coefficients should be overwritten - (i.e. ignore duplications) -
    -
    psb_dupl_add_
    -
    Duplicate coefficients should be added; +
    Type:
    +
    Asynchronous.
    -
    psb_dupl_err_
    -
    Duplicate coefficients should trigger an error conditino +
    On Entry
    +
    -
    psb_upd_dflt_
    -
    Default update strategy for matrix coefficients; +
    a
    +
    the sparse matrix. +
    +Scope: local. +
    +
    + +

    +

    +
    On Return
    +
    -
    psb_upd_srch_
    -
    Update strategy based on search into the data structure; +
    b
    +
    A copy of the input object.
    -
    psb_upd_perm_
    -
    Update strategy based on additional - permutation data (see tools routine description). +
    info
    +
    Return code.
    diff --git a/docs/html/node42.html b/docs/html/node42.html index 060c457c..1f32240d 100644 --- a/docs/html/node42.html +++ b/docs/html/node42.html @@ -1,167 +1,82 @@ - + - + -Dense Vector Data Structure - +Named Constants + - + - - - + + - - + next - + up - previous - contents
    - Next: Vector Methods - Up: Data Structures and Classes - Previous: Named Constants -   Next: Dense Vector Data Structure + Up: Sparse Matrix class + Previous: clone Clone +   Contents
    -
    +
    -

    - +

    +
    -Dense Vector Data Structure -

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

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

    -
    I
    -
    Integer; +
    psb_dupl_ovwrt_
    +
    Duplicate coefficients should be overwritten + (i.e. ignore duplications) +
    +
    psb_dupl_add_
    +
    Duplicate coefficients should be added;
    -
    S
    -
    Single precision real; +
    psb_dupl_err_
    +
    Duplicate coefficients should trigger an error conditino
    -
    D
    -
    Double precision real; +
    psb_upd_dflt_
    +
    Default update strategy for matrix coefficients;
    -
    C
    -
    Single precision complex; +
    psb_upd_srch_
    +
    Update strategy based on search into the data structure;
    -
    Z
    -
    Double precision complex. +
    psb_upd_perm_
    +
    Update strategy based on additional + permutation data (see tools routine description).
    -The actual data is contained in the polymorphic component v%v; -the separation between the application and the actual data is -essential for cases where it is necessary to link to data storage made -available elsewhere outside the direct control of the -compiler/application, e.g. data stored in a graphics accelerator's -private memory. - -
    - - - -
    Figure 5: - The PSBLAS defined data type that - contains a dense vector.
    -
    -
    - -
    -
    -  type psb_T_base_vect_type
    -    TYPE(KIND_), allocatable :: v(:)
    -  end type psb_T_base_vect_type
    -
    -  type psb_T_vect_type
    -    class(psb_T_base_vect_type), allocatable :: v 
    -  end type  psb_T_vect_type
    -
    -
    -
    -



    - -Subsections - - - -
    - - -next - -up - -previous - -contents -
    - Next: Vector Methods - Up: Data Structures and Classes - Previous: Named Constants -   Contents - diff --git a/docs/html/node43.html b/docs/html/node43.html index a77b2ff0..7e01116f 100644 --- a/docs/html/node43.html +++ b/docs/html/node43.html @@ -1,60 +1,165 @@ - + - + -Vector Methods - +Dense Vector Data Structure + - + - - - + + + - - + next - + up - previous - contents
    - Next: get_nrows Get - Up: Dense Vector Data Structure - Previous: Dense Vector Data Structure -   Next: Vector Methods + Up: Data Structures and Classes + Previous: Named Constants +   Contents
    -
    +
    -

    -Vector Methods -

    +

    + +
    +Dense Vector Data Structure +

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

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

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



    + +Subsections + + + + + + diff --git a/docs/html/node44.html b/docs/html/node44.html index b806adf5..93f06053 100644 --- a/docs/html/node44.html +++ b/docs/html/node44.html @@ -1,91 +1,56 @@ - + - + -get_nrows -- Get number of rows in a dense vector - +Vector Methods + - + - + - - + next - + up - previous - contents
    - Next: sizeof Get - Up: Dense Vector Data Structure - Previous: Vector Methods -   Next: get_nrows Get + Up: Dense Vector Data Structure + Previous: Dense Vector Data Structure +   Contents
    -
    +
    -

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

    +Vector Methods

    - -

    -

    -nr = v%get_nrows()
    -
    - -

    -

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

    -

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



    diff --git a/docs/html/node45.html b/docs/html/node45.html index b4adb48f..6cbe9433 100644 --- a/docs/html/node45.html +++ b/docs/html/node45.html @@ -1,66 +1,60 @@ - + - + -sizeof -- Get memory occupation in bytes -of a dense vector - +get_nrows -- Get number of rows in a dense vector + - + - + - - + next - + up - previous - contents
    - Next: set Set - Up: Dense Vector Data Structure - Previous: get_nrows Get -   Next: sizeof Get + Up: Dense Vector Data Structure + Previous: Vector Methods +   Contents
    -
    +
    -

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

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

    -memory_size = v%sizeof()
    +nr = v%get_nrows()
     

    @@ -84,7 +78,7 @@ Scope: local

    Function value
    -
    The memory occupation in bytes. +
    The number of rows of dense vector v.
    diff --git a/docs/html/node46.html b/docs/html/node46.html index ad162cbb..2321e206 100644 --- a/docs/html/node46.html +++ b/docs/html/node46.html @@ -1,65 +1,63 @@ - + - + -set -- Set contents of the vector - +sizeof -- Get memory occupation in bytes +of a dense vector + - + - + - - + next - + up - previous - contents
    - Next: get_vect Get - Up: Dense Vector Data Structure - Previous: sizeof Get -   Next: set Set + Up: Dense Vector Data Structure + Previous: get_nrows Get +   Contents
    -
    +
    -

    -set -- Set contents of the vector +

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

    - call  v%set(alpha[,first,last])
    - call  v%set(vect[,first,last])
    - call  v%zero()
    +memory_size = v%sizeof()
     

    @@ -75,59 +73,16 @@ set -- Set contents of the vector
    Scope: local
    -

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

    -

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

    On Return
    -
    v
    -
    the dense vector, with updated entries -
    -Scope: local -
    +
    Function value
    +
    The memory occupation in bytes. +

    diff --git a/docs/html/node47.html b/docs/html/node47.html index 06f8b012..ee7dc916 100644 --- a/docs/html/node47.html +++ b/docs/html/node47.html @@ -1,63 +1,62 @@ - + - + -get_vect -- Get a copy of the vector contents - +set -- Set contents of the vector + - + - + - - + next - + up - previous - contents
    - Next: clone Clone - Up: Dense Vector Data Structure - Previous: set Set -   Next: get_vect Get + Up: Dense Vector Data Structure + Previous: sizeof Get +   Contents
    -
    +
    -

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

    +set -- Set contents of the vector

    -extv = v%get_vect()
    + call  v%set(alpha[,first,last])
    + call  v%set(vect[,first,last])
    + call  v%zero()
     

    @@ -73,17 +72,59 @@ extv = v%get_vect()
    Scope: local
    +

    alpha
    +
    A scalar value. +
    +Scope: local +
    +Type: required +
    +Intent: in. +
    +Specified as: a number of the data +type indicated in Table 1. + +

    +

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

    On Return
    -
    Function value
    -
    An allocatable array holding a copy of the dense - vector contents. -
    +
    v
    +
    the dense vector, with updated entries +
    +Scope: local +

    diff --git a/docs/html/node48.html b/docs/html/node48.html index 720ade2f..1046887b 100644 --- a/docs/html/node48.html +++ b/docs/html/node48.html @@ -1,61 +1,60 @@ - + - + -clone -- Clone current object - +get_vect -- Get a copy of the vector contents + - + + - + - - + next - + up - previous - contents
    - Next: Preconditioner data structure - Up: Dense Vector Data Structure - Previous: get_vect Get -   Next: clone Clone + Up: Dense Vector Data Structure + Previous: set Set +   Contents
    -
    +
    -

    -clone -- Clone current object +

    +get_vect -- Get a copy of the vector contents

    +

    -call  x%clone(y,info)
    +extv = v%get_vect()
     

    @@ -66,10 +65,10 @@ call x%clone(y,info)

    On Entry
    -
    x
    -
    the dense vector. +
    v
    +
    the dense vector
    -Scope: local. +Scope: local
    @@ -78,11 +77,9 @@ Scope: local.
    On Return
    -
    y
    -
    A copy of the input object. -
    -
    info
    -
    Return code. +
    Function value
    +
    An allocatable array holding a copy of the dense + vector contents.
    diff --git a/docs/html/node49.html b/docs/html/node49.html index b96b3b78..e800d006 100644 --- a/docs/html/node49.html +++ b/docs/html/node49.html @@ -1,89 +1,87 @@ - + - + -Preconditioner data structure - +clone -- Clone current object + - + - - - + + - - + next - + up - previous - contents
    - Next: Heap data structure - Up: Data Structures and Classes - Previous: clone Clone -   Next: Preconditioner data structure + Up: Dense Vector Data Structure + Previous: get_vect Get +   Contents
    -
    +
    -

    - -
    -Preconditioner data structure -

    -Our base library offers support for simple well known preconditioners -like Diagonal Scaling or Block Jacobi with incomplete -factorization ILU(0). +

    +clone -- Clone current object +

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

    -A preconditioner is held in the precdata psb_prec_type data structure reported in -figure 6. The psb_prec_type -data type may contain a simple preconditioning matrix with the -associated communication descriptor.The internal preconditioner is allocated appropriately with the -dynamic type corresponding to the desired preconditioner. +

    +
    Type:
    +
    Asynchronous. +
    +
    On Entry
    +
    +
    +
    x
    +
    the dense vector. +
    +Scope: local. +
    +
    -
    - - - -
    Figure 6: -The PSBLAS defined data type that contains a preconditioner.
    - -
    - -
    -
    -  type psb_Tprec_type
    -    class(psb_T_base_prec_type), allocatable :: prec
    -  end type psb_Tprec_type
    -
    -
    -
    +

    +

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



    diff --git a/docs/html/node5.html b/docs/html/node5.html index 509c13fe..39e42345 100644 --- a/docs/html/node5.html +++ b/docs/html/node5.html @@ -1,10 +1,6 @@ - + - + Library contents @@ -13,7 +9,7 @@ original version by: Nikos Drakos, CBLU, University of Leeds - + @@ -25,30 +21,31 @@ original version by: Nikos Drakos, CBLU, University of Leeds - - + next - up - previous - contents
    - Next: Next: Application structure - Up: Up: General overview - Previous: Previous: Basic Nomenclature -   Contents
    -
    +

    @@ -128,7 +125,7 @@ internally defined in the PSBLAS software package: For example the psb_geins, psb_spins and - psb_cdins perform the same action (see 6) on + psb_cdins perform the same action (see 6) on dense matrices, sparse matrices and communication descriptors respectively. Interface overloading allows the usage of the same subroutine @@ -150,7 +147,7 @@ are classified as: To finish our general description, we define a version string with the constant

    -
    + diff --git a/docs/html/node50.html b/docs/html/node50.html index 4ba06c23..1cc48eea 100644 --- a/docs/html/node50.html +++ b/docs/html/node50.html @@ -1,97 +1,87 @@ - + - + -Heap data structure - +Preconditioner data structure + - + - + + - - + next - up - previous - contents
    - Next: Computational routines - Up: Next: Heap data structure + Up: Data Structures and Classes - Previous: Preconditioner data structure -   Previous: clone Clone +   Contents
    -
    +
    -

    -Heap data structure +

    + +
    +Preconditioner data structure

    +Our base library offers support for simple well known preconditioners +like Diagonal Scaling or Block Jacobi with incomplete +factorization ILU(0).

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

    -
    psb_T_heap
    -
    : a heap containing elements of type T, where T - can be i,s,c,d,z for integer, real and complex data; -
    -
    psb_T_idx_heap
    -
    : a heap containing elements of type T, as - above, together with an integer index. -
    -
    -Given a heap object, the following methods are defined on it: -
    -
    init
    -
    Initialize memory; also choose ascending or descending - order; -
    -
    howmany
    -
    Current heap occupancy; -
    -
    insert
    -
    Add an item (or an item and its index); -
    -
    get_first
    -
    Remove and return the first element; -
    -
    dump
    -
    Print on file; -
    -
    free
    -
    Release memory. -
    -
    -These objects are used in MLD2P4 to implement the factorization -algorithms. +A preconditioner is held in the precdata psb_prec_type data structure reported in +figure 6. The psb_prec_type +data type may contain a simple preconditioning matrix with the +associated communication descriptor. +The internal preconditioner is allocated appropriately with the +dynamic type corresponding to the desired preconditioner. + +
    + + + +
    Figure 6: +The PSBLAS defined data type that contains a preconditioner.
    + +
    + +
    +
    +  type psb_Tprec_type
    +    class(psb_T_base_prec_type), allocatable :: prec
    +  end type psb_Tprec_type
    +
    +
    +



    diff --git a/docs/html/node51.html b/docs/html/node51.html index 697d2202..5a3211b2 100644 --- a/docs/html/node51.html +++ b/docs/html/node51.html @@ -1,95 +1,96 @@ - + - + -Computational routines - +Heap data structure + - + - - - + + - - + next - + up - previous - contents
    - Next: psb_geaxpby General - Up: userhtml - Previous: Heap data structure -   Next: Computational routines + Up: Data Structures and Classes + Previous: Preconditioner data structure +   Contents
    -
    +
    -

    -Computational routines -

    +

    +Heap data structure +

    -


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



    diff --git a/docs/html/node52.html b/docs/html/node52.html index 2362a102..6ef8884f 100644 --- a/docs/html/node52.html +++ b/docs/html/node52.html @@ -1,279 +1,93 @@ - + - + -psb_geaxpby -- General Dense Matrix Sum - +Computational routines + - + - - - + + + - - + next - + up - previous - contents
    - Next: psb_gedot Dot - Up: Computational routines - Previous: Computational routines -   Next: psb_geaxpby General + Up: userhtml + Previous: Heap data structure +   Contents
    -
    +
    -

    -psb_geaxpby -- General Dense Matrix Sum -

    - -

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

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

    -

    -

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

    -

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

    -
    - -

    -

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

    -

    -
    +

    +Computational routines +

    -

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

    + +Subsections -

    -


    - - -next - -up - -previous - -contents -
    - Next: psb_gedot Dot - Up: Computational routines - Previous: Computational routines -   Contents - + + +

    diff --git a/docs/html/node53.html b/docs/html/node53.html index aa110362..07beea59 100644 --- a/docs/html/node53.html +++ b/docs/html/node53.html @@ -1,150 +1,116 @@ - + - + -psb_gedot -- Dot Product - +psb_geaxpby -- General Dense Matrix Sum + - + - + - - + next - + up - previous - contents
    - Next: psb_gedots Generalized - Up: Computational routines - Previous: psb_geaxpby General -   Next: psb_gedot Dot + Up: Computational routines + Previous: Computational routines +   Contents
    -
    +
    -

    -psb_gedot -- Dot Product +

    +psb_geaxpby -- General Dense Matrix Sum

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

    -
    +
    \begin{displaymath}dot \leftarrow x^T y\end{displaymath} + WIDTH="93" HEIGHT="27" BORDER="0" + SRC="img19.png" + ALT="\begin{displaymath}y \leftarrow \alpha\> x+ \beta y \end{displaymath}">

    -

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

    -
    - +

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

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


    -
    +
    -
    Table 2: +Table 1: Data types
    - - + ALT="$y$">, $\alpha$, $\beta$ + - + - + - + - +
    $dot$, $x$, $x$, $y$FunctionSubroutine
    Short Precision Realpsb_gedotpsb_geaxpby
    Long Precision Realpsb_gedotpsb_geaxpby
    Short Precision Complexpsb_gedotpsb_geaxpby
    Long Precision Complexpsb_gedotpsb_geaxpby
    @@ -161,12 +127,27 @@ Data types
    On Entry
    +
    alpha
    +
    the scalar $\alpha$. +
    +Scope: global +
    +Type: required +
    +Intent: in. +
    +Specified as: a number of the data +type indicated in Table 1. +
    x
    the local portion of global dense matrix -$x$. + ALT="$x$">.
    Scope: local
    @@ -174,38 +155,51 @@ Type: required
    Intent: in.
    -Specified as: a rank one or two array or an object of type vdatapsb_T_vect_type -containing numbers of type specified in -Table 2. The rank of psb_T_vect_type +containing numbers of type +specified in Table 1. The rank of $x$ must be the same of $x$ must be the same of $y$. + ALT="$y$">. +
    +
    beta
    +
    the scalar $\beta$. +
    +Scope: global +
    +Type: required +
    +Intent: in. +
    +Specified as: a number of the data type indicated in Table 1.
    y
    -
    the local portion of global dense matrix -the local portion of the global dense matrix +$y$. + ALT="$y$">.
    Scope: local
    Type: required
    -Intent: in. +Intent: inout.
    -Specified as: a rank one or two array or an object of type vdatapsb_T_vect_type -containing numbers of type specified in -Table 2. The rank of psb_T_vect_type containing numbers of the type +indicated in Table 1. The rank of $y$ must be the same of $y$ must be the same of $x$. + ALT="$x$">.
    desc_a
    contains data structures for communications. @@ -217,23 +211,30 @@ Type: required Intent: in.
    Specified as: an object of type descdatapsb_desc_type. +

    + + +

    +

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

    -


    + + diff --git a/docs/html/node54.html b/docs/html/node54.html index eedb0bcd..a5b17d42 100644 --- a/docs/html/node54.html +++ b/docs/html/node54.html @@ -1,136 +1,148 @@ - + - + -psb_gedots -- Generalized Dot Product - +psb_gedot -- Dot Product + - + - + - - + next - + up - previous - contents
    - Next: psb_normi Infinity-Norm - Up: Computational routines - Previous: psb_gedot Dot -   Next: psb_gedots Generalized + Up: Computational routines + Previous: psb_geaxpby General +   Contents
    -
    +
    -

    -psb_gedots -- Generalized Dot Product +

    +psb_gedot -- Dot Product

    -This subroutine computes a series of dot products among the columns of -two dense matrices $x$ and +$y$. +
    +If $x$ and $x$ and $y$: + ALT="$y$"> are real vectors +it computes dot-product as:

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

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

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

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

    -
    +
    -
    Table 3: +Table 2: Data types
    - - + ALT="$y$"> + - + - + - + - +
    $res$, $dot$, $x$, $x$, $y$SubroutineFunction
    Short Precision Realpsb_gedotspsb_gedot
    Long Precision Realpsb_gedotspsb_gedot
    Short Precision Complexpsb_gedotspsb_gedot
    Long Precision Complexpsb_gedotspsb_gedot
    @@ -149,10 +161,10 @@ Data types
    x
    the local portion of global dense matrix -$x$. + ALT="$x$">.
    Scope: local
    @@ -162,20 +174,20 @@ 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 2. The rank of $x$ must be the same of $x$ must be the same of $y$. + ALT="$y$">.
    y
    the local portion of global dense matrix -$y$. + ALT="$y$">.
    Scope: local
    @@ -185,13 +197,13 @@ 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 2. The rank of $y$ must be the same of $y$ must be the same of $x$. + ALT="$x$">.
    desc_a
    contains data structures for communications. @@ -203,25 +215,24 @@ Type: required Intent: in.
    Specified as: an object of type descdatapsb_desc_type. + +

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

    -


    + + diff --git a/docs/html/node55.html b/docs/html/node55.html index 91804f98..aa9a2014 100644 --- a/docs/html/node55.html +++ b/docs/html/node55.html @@ -1,145 +1,133 @@ - + - + -psb_normi -- Infinity-Norm of Vector - +psb_gedots -- Generalized Dot Product + - + - + - - + next - + up - previous - contents
    - Next: psb_geamaxs Generalized - Up: Computational routines - Previous: psb_gedots Generalized -   Next: psb_normi Infinity-Norm + Up: Computational routines + Previous: psb_gedot Dot +   Contents
    -
    +
    -

    -psb_normi -- Infinity-Norm of Vector +

    +psb_gedots -- Generalized Dot Product

    -This function computes - the infinity-norm of a vector $x$. -
    -If $x$ is a real vector -it computes infinity norm as: + ALT="$x$"> and $y$:

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

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

    -
    - + ALT="$x$"> is +used. If $x$ and $y$ are of rank one, then $res$ is a scalar, else it +is a rank one array. -\begin{displaymath}amax \leftarrow \max_i {(\vert re(x_i)\vert + \vert im(x_i)\vert)}\end{displaymath} -
    -
    -

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


    -
    +
    -
    Table 4: +Table 3: Data types
    - - - + ALT="$x$">, $y$ + - - + - - + - - - + + - - - + +
    $amax$$res$, $x$FunctionSubroutine
    Short Precision RealShort Precision Realpsb_geamaxpsb_gedots
    Long Precision RealLong Precision Realpsb_geamaxpsb_gedots
    Short Precision RealShort Precision Complexpsb_geamax
    Short Precision Complexpsb_gedots
    Long Precision RealLong Precision Complexpsb_geamax
    Long Precision Complexpsb_gedots
    @@ -158,10 +146,10 @@ Data types
    x
    the local portion of global dense matrix -$x$. + ALT="$x$">.
    Scope: local
    @@ -169,9 +157,38 @@ Type: required
    Intent: in.
    -Specified as: a rank one or two array or an object of type vdatapsb_T_vect_type +Specified as: a rank one or two array or an object of type vdatapsb_T_vect_type containing numbers of type specified in -Table 4. +Table 3. The rank of $x$ must be the same of $y$. +
    +
    y
    +
    the local portion of global dense matrix +$y$. +
    +Scope: local +
    +Type: required +
    +Intent: in. +
    +Specified as: a rank one or two array or an object of type vdatapsb_T_vect_type +containing numbers of type specified in +Table 3. The rank of $y$ must be the same of $x$.
    desc_a
    contains data structures for communications. @@ -183,20 +200,25 @@ Type: required Intent: in.
    Specified as: an object of type descdatapsb_desc_type. -

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

    -


    + + diff --git a/docs/html/node56.html b/docs/html/node56.html index 96f5cd43..b2816af3 100644 --- a/docs/html/node56.html +++ b/docs/html/node56.html @@ -1,121 +1,144 @@ - + - + -psb_geamaxs -- Generalized Infinity Norm - +psb_normi -- Infinity-Norm of Vector + - + - + - - + next - + up - previous - contents
    - Next: psb_norm1 1-Norm - Up: Computational routines - Previous: psb_normi Infinity-Norm -   Next: psb_geamaxs Generalized + Up: Computational routines + Previous: psb_gedots Generalized +   Contents
    -
    +
    -

    -psb_geamaxs -- Generalized Infinity Norm +

    +psb_normi -- Infinity-Norm of Vector

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

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

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

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

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


    -
    +
    -
    Table 5: +Table 4: Data types
    - - + - + ALT="$x$"> + - + - + - + - +
    $res$$amax$$x$SubroutineFunction
    Short Precision Real Short Precision Realpsb_geamaxspsb_geamax
    Long Precision Real Long Precision Realpsb_geamaxspsb_geamax
    Short Precision Real Short Precision Complexpsb_geamaxspsb_geamax
    Long Precision Real Long Precision Complexpsb_geamaxspsb_geamax
    @@ -134,10 +157,11 @@ Data types
    x
    the local portion of global dense matrix -$x$. + ALT="$x$">. +
    Scope: local
    @@ -145,9 +169,9 @@ Type: required
    Intent: in.
    -Specified as: a rank one or two array or an object of type vdatapsb_T_vect_type +Specified as: a rank one or two array or an object of type vdatapsb_T_vect_type containing numbers of type specified in -Table 5. +Table 4.
    desc_a
    contains data structures for communications. @@ -159,21 +183,21 @@ Type: required Intent: in.
    Specified as: an object of type descdatapsb_desc_type. + +

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

    -


    + + diff --git a/docs/html/node57.html b/docs/html/node57.html index b4bd1ca6..d15507ad 100644 --- a/docs/html/node57.html +++ b/docs/html/node57.html @@ -1,146 +1,118 @@ - + - + -psb_norm1 -- 1-Norm of Vector - +psb_geamaxs -- Generalized Infinity Norm + - + - + - - + next - + up - previous - contents
    - Next: psb_geasums Generalized - Up: Computational routines - Previous: psb_geamaxs Generalized -   Next: psb_norm1 1-Norm + Up: Computational routines + Previous: psb_normi Infinity-Norm +   Contents
    -
    +
    -

    -psb_norm1 -- 1-Norm of Vector +

    +psb_geamaxs -- Generalized Infinity Norm

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

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

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

    -
    - - -\begin{displaymath}asum \leftarrow \Vert re(x)\Vert _1 + \Vert im(x)\Vert _1\end{displaymath} + WIDTH="148" HEIGHT="36" BORDER="0" + SRC="img32.png" + ALT="\begin{displaymath}res(i) \leftarrow \max_k \vert x(k,i)\vert \end{displaymath}">

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


    -
    +
    -
    Table 6: +Table 5: Data types
    - - + - + ALT="$x$"> + - + - + - + - +
    $asum$$res$$x$FunctionSubroutine
    Short Precision Real Short Precision Realpsb_geasumpsb_geamaxs
    Long Precision Real Long Precision Realpsb_geasumpsb_geamaxs
    Short Precision Real Short Precision Complexpsb_geasumpsb_geamaxs
    Long Precision Real Long Precision Complexpsb_geasumpsb_geamaxs
    @@ -159,10 +131,10 @@ Data types
    x
    the local portion of global dense matrix -$x$. + ALT="$x$">.
    Scope: local
    @@ -172,7 +144,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 6. +Table 5.
    desc_a
    contains data structures for communications. @@ -184,21 +156,21 @@ Type: required Intent: in.
    Specified as: an object of type descdatapsb_desc_type. - -

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

    -


    + + diff --git a/docs/html/node58.html b/docs/html/node58.html index 05a1c560..53075a58 100644 --- a/docs/html/node58.html +++ b/docs/html/node58.html @@ -1,165 +1,143 @@ - + - + -psb_geasums -- Generalized 1-Norm of Vector - +psb_norm1 -- 1-Norm of Vector + - + - + - - + next - + up - previous - contents
    - Next: psb_norm2 2-Norm - Up: Computational routines - Previous: psb_norm1 1-Norm -   Next: psb_geasums Generalized + Up: Computational routines + Previous: psb_geamaxs Generalized +   Contents
    -
    +
    -

    -psb_geasums -- Generalized 1-Norm of Vector +

    +psb_norm1 -- 1-Norm of Vector

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

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

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

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

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

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

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


    -
    +
    -
    Table 7: +Table 6: Data types
    - - + - + ALT="$x$"> + - + - + - + - +
    $res$$asum$$x$SubroutineFunction
    Short Precision Real Short Precision Realpsb_geasumspsb_geasum
    Long Precision Real Long Precision Realpsb_geasumspsb_geasum
    Short Precision Real Short Precision Complexpsb_geasumspsb_geasum
    Long Precision Real Long Precision Complexpsb_geasumspsb_geasum
    @@ -178,10 +156,11 @@ Data types
    x
    the local portion of global dense matrix -$x$. + ALT="$x$">. +
    Scope: local
    @@ -191,7 +170,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 7. +Table 6.
    desc_a
    contains data structures for communications. @@ -209,17 +188,14 @@ Specified as: an object of type descdatapsb_desc_type.
    On Return
    -
    res
    -
    contains the 1-norm of (the columns of) Function value +
    is the 1-norm of vector $x$. + ALT="$x$">.
    Scope: global
    -Intent: out. -
    -Short as: a long precision real number. Specified as: a long precision real number.
    info
    @@ -236,29 +212,30 @@ An integer value; 0 means no error has been detected.

    -


    + + diff --git a/docs/html/node59.html b/docs/html/node59.html index ca44853e..160a0e61 100644 --- a/docs/html/node59.html +++ b/docs/html/node59.html @@ -1,139 +1,162 @@ - + - + -psb_norm2 -- 2-Norm of Vector - +psb_geasums -- Generalized 1-Norm of Vector + - + - + - - + next - + up - previous - contents
    - Next: psb_genrm2s Generalized - Up: Computational routines - Previous: psb_geasums Generalized -   Next: psb_norm2 2-Norm + Up: Computational routines + Previous: psb_norm1 1-Norm +   Contents
    -
    +
    -

    -psb_norm2 -- 2-Norm of Vector +

    +psb_geasums -- Generalized 1-Norm of Vector

    -This function computes the 2-norm of a vector $x$: +

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

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

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

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

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

    + +

    +

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


    -
    +
    -
    Table 8: +Table 7: Data types
    - - + - + ALT="$x$"> + - + - + - + - +
    $nrm2$$res$$x$FunctionSubroutine
    Short Precision Real Short Precision Realpsb_genrm2psb_geasums
    Long Precision Real Long Precision Realpsb_genrm2psb_geasums
    Short Precision Real Short Precision Complexpsb_genrm2psb_geasums
    Long Precision Real Long Precision Complexpsb_genrm2psb_geasums
    @@ -142,11 +165,6 @@ Data types


    -

    -

    -psb_genrm2(x, desc_a, info)
    -psb_norm2(x, desc_a, info)
    -

    Type:
    @@ -157,10 +175,11 @@ psb_norm2(x, desc_a, info)
    x
    the local portion of global dense matrix -$x$. + ALT="$x$">. +
    Scope: local
    @@ -168,9 +187,9 @@ Type: required
    Intent: in.
    -Specified as: a rank one or two array or an object of type vdatapsb_T_vect_type +Specified as: a rank one or two array or an object of type vdatapsb_T_vect_type containing numbers of type specified in -Table 8. +Table 7.
    desc_a
    contains data structures for communications. @@ -182,22 +201,24 @@ Type: required Intent: in.
    Specified as: an object of type descdatapsb_desc_type. +

    On Return
    -
    Function Value
    -
    is the 2-norm of subvector res +
    contains the 1-norm of (the columns of) $x$. + ALT="$x$">.
    Scope: global
    -Type: required +Intent: out.
    -Specified as: a long precision real number. +Short as: a long precision real number. +Specified as: a long precision real number.
    info
    Error code. @@ -213,29 +234,30 @@ An integer value; 0 means no error has been detected.

    -


    + + diff --git a/docs/html/node6.html b/docs/html/node6.html index b803ae38..911bf87c 100644 --- a/docs/html/node6.html +++ b/docs/html/node6.html @@ -1,10 +1,6 @@ - + - + Application structure @@ -13,7 +9,7 @@ original version by: Nikos Drakos, CBLU, University of Leeds - + @@ -25,30 +21,31 @@ 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
    -
    +

    @@ -63,10 +60,10 @@ library objects are created and exist with reference to a discretized space to which there corresponds an index space and a matrix sparsity pattern. As an example, consider a cell-centered finite-volume discretization of the Navier-Stokes equations on a simulation domain; -the index space $1\dots n$ is isomorphic to the set of cell centers, + ALT="$1\dots n$"> is isomorphic to the set of cell centers, whereas the pattern of the associated linear system matrix is isomorphic to the adjacency graph imposed on the discretization mesh by the discretization stencil. @@ -74,70 +71,70 @@ by the discretization stencil.

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

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

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

  • Choose the preconditioner to be used with prec%init and build it with prec%build3. + HREF="footnode.html#foot278">3.
  • Call the iterative method of choice, e.g. psb_bicgstab
  • @@ -249,34 +246,35 @@ from optimal. Subsections - -
    + + diff --git a/docs/html/node60.html b/docs/html/node60.html index f0500531..aee04698 100644 --- a/docs/html/node60.html +++ b/docs/html/node60.html @@ -1,121 +1,137 @@ - + - + -psb_genrm2s -- Generalized 2-Norm of Vector - +psb_norm2 -- 2-Norm of Vector + - + - + - - + next - + up - previous - contents
    - Next: psb_norm1 1-Norm - Up: Computational routines - Previous: psb_norm2 2-Norm -   Next: psb_genrm2s Generalized + Up: Computational routines + Previous: psb_geasums Generalized +   Contents
    -
    +
    -

    -psb_genrm2s -- Generalized 2-Norm of Vector +

    +psb_norm2 -- 2-Norm of Vector

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

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

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

    +
    + -

    -

    -call psb_genrm2s(res, x, desc_a, info)
    -
    +\begin{displaymath}nrm2 \leftarrow \sqrt{x^H x}\end{displaymath} +
    +
    +


    -
    +
    -
    Table 9: +Table 8: Data types
    - - + - + ALT="$x$"> + - + - + - + - +
    $res$$nrm2$$x$SubroutineFunction
    Short Precision Real Short Precision Realpsb_genrm2spsb_genrm2
    Long Precision Real Long Precision Realpsb_genrm2spsb_genrm2
    Short Precision Real Short Precision Complexpsb_genrm2spsb_genrm2
    Long Precision Real Long Precision Complexpsb_genrm2spsb_genrm2
    @@ -124,6 +140,12 @@ Data types


    +

    +

    +psb_genrm2(x, desc_a, info)
    +psb_norm2(x, desc_a, info)
    +
    +

    Type:
    @@ -134,10 +156,11 @@ Data types
    x
    the local portion of global dense matrix -$x$. + ALT="$x$">. +
    Scope: local
    @@ -145,9 +168,9 @@ Type: required
    Intent: in.
    -Specified as: a rank one or two array or an object of type vdatapsb_T_vect_type +Specified as: a rank one or two array or an object of type vdatapsb_T_vect_type containing numbers of type specified in -Table 9. +Table 8.
    desc_a
    contains data structures for communications. @@ -165,17 +188,17 @@ Specified as: an object of type descdatapsb_desc_type.
    On Return
    -
    res
    -
    contains the 1-norm of (the columns of) Function Value +
    is the 2-norm of subvector $x$. + ALT="$x$">.
    Scope: global
    -Intent: out. +Type: required
    -Specified as: a long precision real number. +Specified as: a long precision real number.
    info
    Error code. @@ -191,29 +214,30 @@ An integer value; 0 means no error has been detected.

    -


    + + diff --git a/docs/html/node61.html b/docs/html/node61.html index d89850c7..b6f55a63 100644 --- a/docs/html/node61.html +++ b/docs/html/node61.html @@ -1,121 +1,118 @@ - + - + -psb_norm1 -- 1-Norm of Sparse Matrix - +psb_genrm2s -- Generalized 2-Norm of Vector + - + - + - - + next - + up - previous - contents
    - Next: psb_normi Infinity - Up: Computational routines - Previous: psb_genrm2s Generalized -   Next: psb_norm1 1-Norm + Up: Computational routines + Previous: psb_norm2 2-Norm +   Contents
    -
    +
    -

    -psb_norm1 -- 1-Norm of Sparse Matrix +

    +psb_genrm2s -- Generalized 2-Norm of Vector

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

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

    -
    +
    \begin{displaymath}nrm1 \leftarrow \Vert A\Vert _1 \end{displaymath} + WIDTH="126" HEIGHT="28" BORDER="0" + SRC="img41.png" + ALT="\begin{displaymath}res(i) \leftarrow \Vert x(:,i)\Vert _2 \end{displaymath}">

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

    +

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


    -
    +
    -
    Table 10: +Table 9: Data types
    - - + + + - + + - + + - - + + + - - + + +
    $A$Function
    $res$$x$Subroutine
    Short Precision Realpsb_spnrm1Short Precision Realpsb_genrm2s
    Long Precision Realpsb_spnrm1Long Precision Realpsb_genrm2s
    Short Precision Complexpsb_spnrm1
    Short Precision RealShort Precision Complexpsb_genrm2s
    Long Precision Complexpsb_spnrm1
    Long Precision RealLong Precision Complexpsb_genrm2s
    @@ -124,12 +121,6 @@ Data types


    -

    -

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

    Type:
    @@ -138,20 +129,23 @@ psb_norm1(A, desc_a, info)
    On Entry
    -
    a
    -
    the local portion of the global sparse matrix -$A$. +
    x
    +
    the local portion of global dense matrix +$x$. +
    Scope: local
    -Type: required +Type: required
    Intent: in.
    -Specified as: an object of type spdatapsb_Tspmat_type. +Specified as: a rank one or two array or an object of type vdatapsb_T_vect_type +containing numbers of type specified in +Table 9.
    desc_a
    contains data structures for communications. @@ -163,19 +157,23 @@ Type: required Intent: in.
    Specified as: an object of type descdatapsb_desc_type. + +

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

    -


    + + diff --git a/docs/html/node62.html b/docs/html/node62.html index 7cecdaad..d05c0035 100644 --- a/docs/html/node62.html +++ b/docs/html/node62.html @@ -1,121 +1,118 @@ - + - + -psb_normi -- Infinity Norm of Sparse Matrix - +psb_norm1 -- 1-Norm of Sparse Matrix + - + - + - - + next - + up - previous - contents
    - Next: psb_spmm Sparse - Up: Computational routines - Previous: psb_norm1 1-Norm -   Next: psb_normi Infinity + Up: Computational routines + Previous: psb_genrm2s Generalized +   Contents
    -
    +
    -

    -psb_normi -- Infinity Norm of Sparse Matrix +

    +psb_norm1 -- 1-Norm of Sparse Matrix

    -This function computes the infinity-norm of a matrix $A$: + ALT="$A$">:


    -
    +
    \begin{displaymath}nrmi \leftarrow \Vert A\Vert _\infty \end{displaymath} + WIDTH="98" HEIGHT="28" BORDER="0" + SRC="img42.png" + ALT="\begin{displaymath}nrm1 \leftarrow \Vert A\Vert _1 \end{displaymath}">

    where:
    -
    $A$
    -
    represents the global matrix $A$ +
    represents the global matrix $A$ + ALT="$A$">


    -
    +
    -
    Table 11: +Table 10: Data types
    - + ALT="$A$"> - + - + - + - +
    $A$ Function
    Short Precision Realpsb_spnrmipsb_spnrm1
    Long Precision Realpsb_spnrmipsb_spnrm1
    Short Precision Complexpsb_spnrmipsb_spnrm1
    Long Precision Complexpsb_spnrmipsb_spnrm1
    @@ -126,8 +123,8 @@ Data types

    -psb_spnrmi(A, desc_a, info)
    -psb_normi(A, desc_a, info)
    +psb_spnrm1(A, desc_a, info)
    +psb_norm1(A, desc_a, info)
     

    @@ -140,10 +137,10 @@ psb_normi(A, desc_a, info)

    a
    the local portion of the global sparse matrix -$A$. + ALT="$A$">.
    Scope: local
    @@ -168,10 +165,10 @@ Specified as: an object of type descdatapsb_desc_type.
    Function value
    -
    is the infinity-norm of sparse submatrix is the 1-norm of sparse submatrix $A$. + ALT="$A$">.
    Scope: global
    @@ -191,30 +188,7 @@ An integer value; 0 means no error has been detected.

    -


    - - -next - -up - -previous - -contents -
    - Next: psb_spmm Sparse - Up: Computational routines - Previous: psb_norm1 1-Norm -   Contents - +

    diff --git a/docs/html/node63.html b/docs/html/node63.html index 3a35cfad..4493b074 100644 --- a/docs/html/node63.html +++ b/docs/html/node63.html @@ -1,193 +1,118 @@ - + - + -psb_spmm -- Sparse Matrix by Dense Matrix Product - +psb_normi -- Infinity Norm of Sparse Matrix + - + - + - - + next - + up - previous - contents
    - Next: psb_spsm Triangular - Up: Computational routines - Previous: psb_normi Infinity -   Next: psb_spmm Sparse + Up: Computational routines + Previous: psb_norm1 1-Norm +   Contents
    -
    +
    -

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

    +psb_normi -- Infinity Norm of Sparse Matrix

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

    -
    -

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

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

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

    +

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

    -

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

    +
    +

    where:
    -
    $x$
    -
    is the global dense matrix $x_{:, :}$ -
    -
    $y$
    -
    is the global dense matrix $y_{:, :}$ -
    -
    $A$
    -
    is the global sparse matrix $A$ +
    represents the global matrix $A$ + ALT="$A$">


    -
    +
    -
    Table 12: +Table 11: Data types
    - - + ALT="$A$"> + - + - + - + - +
    $A$, $x$, $y$, $\alpha$, $\beta$SubroutineFunction
    Short Precision Realpsb_spmmpsb_spnrmi
    Long Precision Realpsb_spmmpsb_spnrmi
    Short Precision Complexpsb_spmmpsb_spnrmi
    Long Precision Complexpsb_spmmpsb_spnrmi
    @@ -198,10 +123,9 @@ Data types

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

    @@ -211,27 +135,12 @@ call psb_spmm(alpha, a, x, beta, y,desc_a, info, &
    On Entry
    -
    alpha
    -
    the scalar $\alpha$. -
    -Scope: global -
    -Type: required -
    -Intent: in. -
    -Specified as: a number of the data type indicated in -Table 12. -
    a
    -
    the local portion of the sparse matrix -the local portion of the global sparse matrix +$A$. + ALT="$A$">.
    Scope: local
    @@ -241,66 +150,6 @@ Intent: in.
    Specified as: an object of type spdatapsb_Tspmat_type.
    -
    x
    -
    the local portion of global dense matrix -$x$. -
    -Scope: local -
    -Type: required -
    -Intent: in. -
    -Specified as: a rank one or two array or an object of type vdatapsb_T_vect_type -containing numbers of type specified in -Table 12. The rank of $x$ must be the same of $y$. -
    -
    beta
    -
    the scalar $\beta$. -
    -Scope: global -
    -Type: required -
    -Intent: in. -
    -Specified as: a number of the data type indicated in Table 12. -
    -
    y
    -
    the local portion of global dense matrix -$y$. -
    -Scope: local -
    -Type: required -
    -Intent: inout. -
    -Specified as: a rank one or two array or an object of type vdatapsb_T_vect_type -containing numbers of type specified in -Table 12. The rank of $y$ must be the same of $x$. -
    desc_a
    contains data structures for communications.
    @@ -312,73 +161,18 @@ Intent: in.
    Specified as: an object of type descdatapsb_desc_type.
    -
    trans
    -
    indicates what kind of operation to perform. -
    -
    trans = N
    -
    the operation is specified by equation 1 -
    -
    trans = T
    -
    the operation is specified by equation -2 -
    -
    trans = C
    -
    the operation is specified by equation -3 -
    -
    -Scope: global -
    -Type: optional -
    -Intent: in. -
    -Default: $trans = N$ -
    -Specified as: a character variable. -

    -

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

    -

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

    -


    - - -next - -up - -previous - -contents -
    - Next: psb_spsm Triangular - Up: Computational routines - Previous: psb_normi Infinity -   Contents - +

    diff --git a/docs/html/node64.html b/docs/html/node64.html index 72153b66..ce477479 100644 --- a/docs/html/node64.html +++ b/docs/html/node64.html @@ -1,175 +1,193 @@ - + - + -psb_spsm -- Triangular System Solve - +psb_spmm -- Sparse Matrix by Dense Matrix Product + - + + - + - - + next - + up - previous - contents
    - Next: Communication routines - Up: Computational routines - Previous: psb_spmm Sparse -   Next: psb_spsm Triangular + Up: Computational routines + Previous: psb_normi Infinity +   Contents
    -
    +
    -

    -psb_spsm -- Triangular System Solve +

    +psb_spmm -- Sparse Matrix by Dense Matrix + Product

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

    -

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

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

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

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

    where:

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

    -

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


    -
    +
    -
    Table 13: +Table 12: Data types
    - + ALT="$\beta$"> - + - + - + - +
    $T$, $A$, $x$, $x$, $y$, $D$, $y$, $\alpha$, $\alpha$, $\beta$ Subroutine
    Short Precision Realpsb_spsmpsb_spmm
    Long Precision Realpsb_spsmpsb_spmm
    Short Precision Complexpsb_spsmpsb_spmm
    Long Precision Complexpsb_spsmpsb_spmm
    @@ -178,6 +196,13 @@ Data types


    +

    +

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

    Type:
    @@ -187,10 +212,10 @@ Data types
    alpha
    -
    the scalar the scalar $\alpha$. + ALT="$\alpha$">.
    Scope: global
    @@ -199,14 +224,14 @@ Type: required Intent: in.
    Specified as: a number of the data type indicated in -Table 13. +Table 12.
    -
    t
    -
    the global portion of the sparse matrix -a +
    the local portion of the sparse matrix +$T$. + SRC="img1.png" + ALT="$A$">.
    Scope: local
    @@ -214,15 +239,15 @@ Type: required
    Intent: in.
    -Specified as: an object type specified in -§ 3. +Specified as: an object of type spdatapsb_Tspmat_type.
    x
    the local portion of global dense matrix -$x$. + ALT="$x$">. +
    Scope: local
    @@ -232,19 +257,19 @@ 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 12. The rank of $x$ must be the same of $x$ must be the same of $y$. + ALT="$y$">.
    beta
    -
    the scalar the scalar $\beta$. + ALT="$\beta$">.
    Scope: global
    @@ -252,14 +277,15 @@ Type: required
    Intent: in.
    -Specified as: a number of the data type indicated in Table 13. +Specified as: a number of the data type indicated in Table 12.
    y
    the local portion of global dense matrix -$y$. + ALT="$y$">. +
    Scope: local
    @@ -269,13 +295,13 @@ Intent: inout.
    Specified as: a rank one or two array or an object of type vdatapsb_T_vect_type containing numbers of type specified in -Table 13. The rank of 12. The rank of $y$ must be the same of $y$ must be the same of $x$. + ALT="$x$">.
    desc_a
    contains data structures for communications. @@ -289,16 +315,18 @@ Intent: in. Specified as: an object of type descdatapsb_desc_type.
    trans
    -
    specify with unitd the operation to perform. +
    indicates what kind of operation to perform.
    -
    trans = 'N'
    -
    the operation is with no transposed matrix +
    trans = N
    +
    the operation is specified by equation 1
    -
    trans = 'T'
    -
    the operation is with transposed matrix. +
    trans = T
    +
    the operation is specified by equation +2
    -
    trans = 'C'
    -
    the operation is with conjugate transposed matrix. +
    trans = C
    +
    the operation is specified by equation +3
    Scope: global @@ -307,88 +335,17 @@ Type: optional
    Intent: in.
    -Default: $trans = N$ -
    -Specified as: a character variable. -
    -
    unitd
    -
    specify with trans the operation to perform. -
    -
    unitd = 'U'
    -
    the operation is with no scaling -
    -
    unitd = 'L'
    -
    the operation is with left scaling -
    -
    unitd = 'R'
    -
    the operation is with right scaling. -
    -
    -Scope: global -
    -Type: optional -
    -Intent: in. -
    -Default: $unitd = U$ + ALT="$trans = N$">
    Specified as: a character variable. -
    -
    choice
    -
    specifies the update of overlap elements to be performed - on exit: -
    -
    -
    psb_none_ -
    -
    -
    psb_sum_ -
    -
    -
    psb_avg_ -
    -
    -
    psb_square_root_ -
    -
    -Scope: global -
    -Type: optional -
    -Intent: in. -
    -Default: psb_avg_ -
    -Specified as: an integer variable. -
    -
    diag
    -
    the diagonal scaling matrix. -
    -Scope: local -
    -Type: optional -
    -Intent: in. -
    -Default: -$diag(1) = 1 (no scaling)$ -
    -Specified as: a rank one array containing numbers of the type -indicated in Table 13. + +

    work
    -
    a work array. +
    work array.
    Scope: local
    @@ -396,11 +353,14 @@ Type: optional
    Intent: inout.
    -Specified as: a rank one array of the same type of $x$ with the -TARGET attribute. + ALT="$x$"> and $y$ with +the TARGET attribute.

    @@ -408,11 +368,10 @@ TARGET attribute.
    y
    -
    the local portion of global dense matrix -the local portion of result matrix $y$. + ALT="$y$">.
    Scope: local
    @@ -422,7 +381,7 @@ Intent: inout.
    Specified as: an array of rank one or two containing numbers of type specified in -Table 13. +Table 12.
    info
    Error code. @@ -438,29 +397,30 @@ An integer value; 0 means no error has been detected.

    -


    + + diff --git a/docs/html/node65.html b/docs/html/node65.html index d07ff761..5a1e9e66 100644 --- a/docs/html/node65.html +++ b/docs/html/node65.html @@ -1,79 +1,469 @@ - + - + -Communication routines - +psb_spsm -- Triangular System Solve + - + - - - + + - - + next - + up - previous - contents
    - Next: psb_halo Halo - Up: userhtml - Previous: psb_spsm Triangular -   Next: Communication routines + Up: Computational routines + Previous: psb_spmm Sparse +   Contents
    -
    +
    -

    -Communication routines -

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

    +psb_spsm -- Triangular System Solve +

    + +

    +This subroutine computes the Triangular System Solve: + +

    +

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

    +

    + +

    +where: +

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

    +

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

    +

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

    +

    -


    - -Subsections - - - -

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

    +

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

    + +

    + diff --git a/docs/html/node66.html b/docs/html/node66.html index aebafd3c..c051c5e1 100644 --- a/docs/html/node66.html +++ b/docs/html/node66.html @@ -1,638 +1,77 @@ - + - + -psb_halo -- Halo Data Communication - +Communication routines + - + - - - + + + - - + next - + up - previous - contents
    - Next: psb_ovrl Overlap - Up: Communication routines - Previous: Communication routines -   Next: psb_halo Halo + Up: userhtml + Previous: psb_spsm Triangular +   Contents
    -
    +
    -

    -psb_halo -- Halo Data Communication -

    - -

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

    -

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

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

    -

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

    -
    - -

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

    +Communication routines +

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

    -

    -
    Type:
    -
    Synchronous. -
    -
    On Entry
    -
    -
    -
    x
    -
    global dense matrix $x$. -
    -Scope: local -
    -Type: required -
    -Intent: inout. -
    -Specified as: a rank one or two array or an object of type vdatapsb_T_vect_type -containing numbers of type specified in -Table 14. -
    -
    desc_a
    -
    contains data structures for communications. -
    -Scope: local -
    -Type: required -
    -Intent: in. -
    -Specified as: a structured data of type descdatapsb_desc_type. -
    -
    work
    -
    the work array. -
    -Scope: local -
    -Type: optional -
    -Intent: inout. -
    -Specified as: a rank one array of the same type of $x$. -
    -
    data
    -
    index list selector. -
    -Scope: global -
    -Type: optional -
    -Specified as: an integer. Values:psb_comm_halo_,psb_comm_mov_, -psb_comm_ext_, default: psb_comm_halo_. Chooses the -index list on which to base the data exchange. - -

    -

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

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

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

    -


    - - -next - -up - -previous - -contents -
    - Next: psb_ovrl Overlap - Up: Communication routines - Previous: Communication routines -   Contents - +

    + +Subsections + + + +

    diff --git a/docs/html/node67.html b/docs/html/node67.html index c179063a..179318d0 100644 --- a/docs/html/node67.html +++ b/docs/html/node67.html @@ -1,131 +1,119 @@ - + - + -psb_ovrl -- Overlap Update - +psb_halo -- Halo Data Communication + - + - + - - + next - + up - previous - contents
    - Next: psb_gather Gather - Up: Communication routines - Previous: psb_halo Halo -   Next: psb_ovrl Overlap + Up: Communication routines + Previous: Communication routines +   Contents
    -
    +
    -

    -psb_ovrl -- Overlap Update +

    +psb_halo -- Halo Data Communication

    -These subroutines applies an overlap operator to the input vector: +These subroutines gathers the values of the halo +elements:


    -
    +
    \begin{displaymath}x \leftarrow Q x \end{displaymath} + WIDTH="43" HEIGHT="24" BORDER="0" + SRC="img55.png" + ALT="\begin{displaymath}x \leftarrow x \end{displaymath}">

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


    -
    +
    -
    Table 15: +Table 14: Data types
    - + ALT="$x$"> + + + - + - + - + - +
    $\alpha$, $x$ Subroutine
    Integerpsb_halo
    Short Precision Realpsb_ovrlpsb_halo
    Long Precision Realpsb_ovrlpsb_halo
    Short Precision Complexpsb_ovrlpsb_halo
    Long Precision Complexpsb_ovrlpsb_halo
    @@ -137,13 +125,13 @@ Data types


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

    @@ -154,10 +142,10 @@ call psb_ovrl(x, desc_a, info, update=update_type, work=work)
    x
    -
    global dense matrix global dense matrix $x$. + ALT="$x$">.
    Scope: local
    @@ -167,7 +155,7 @@ Intent: inout.
    Specified as: a rank one or two array or an object of type vdatapsb_T_vect_type containing numbers of type specified in -Table 15. +Table 14.
    desc_a
    contains data structures for communications. @@ -180,41 +168,6 @@ Intent: in.
    Specified as: a structured data of type descdatapsb_desc_type.
    -
    update
    -
    Update operator. -
    -
    update = psb_none_
    -
    Do nothing; -
    -
    update = psb_add_
    -
    Sum overlap entries, i.e. apply $P^T$; -
    -
    update = psb_avg_
    -
    Average overlap entries, i.e. apply $P_aP^T$; -
    -
    -Scope: global -
    -Intent: in. -
    -Default: -$update\_type = psb\_avg\_ $ -
    -Scope: global -
    -Specified as: a integer variable. -
    work
    the work array.
    @@ -224,10 +177,21 @@ Type: optional
    Intent: inout.
    -Specified as: a one dimensional array of the same type of $x$. + ALT="$x$">. +
    +
    data
    +
    index list selector. +
    +Scope: global +
    +Type: optional +
    +Specified as: an integer. Values:psb_comm_halo_,psb_comm_mov_, +psb_comm_ext_, default: psb_comm_halo_. Chooses the +index list on which to base the data exchange.

    @@ -235,10 +199,10 @@ Specified as: a one dimensional array of the same type of
    x
    -
    global dense result matrix global dense result matrix $x$. + ALT="$x$">.
    Scope: local
    @@ -246,12 +210,15 @@ Type: required
    Intent: inout.
    -Specified as: an array of rank one or two +Returned as: a rank one or two array containing numbers of type specified in -Table 15. +Table 14.
    info
    -
    Error code. +
    the local portion of result submatrix $y$.
    Scope: local
    @@ -259,507 +226,410 @@ Type: required
    Intent: out.
    -An integer value; 0 means no error has been detected. +An integer value that contains an error code.
    -

    -Notes - -

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

    - -

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

    + ALT="$x$"> vector, and process 1 assigns a value of 2, then after a +call to psb_halo the contents of the local vectors will be the +following:

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

    -


    + + diff --git a/docs/html/node68.html b/docs/html/node68.html index 366ae7c7..3c67b932 100644 --- a/docs/html/node68.html +++ b/docs/html/node68.html @@ -1,142 +1,128 @@ - + - + -psb_gather -- Gather Global Dense Matrix - +psb_ovrl -- Overlap Update + - + - + - - + next - + up - previous - contents
    - Next: psb_scatter Scatter - Up: Communication routines - Previous: psb_ovrl Overlap -   Next: psb_gather Gather + Up: Communication routines + Previous: psb_halo Halo +   Contents
    -
    +
    -

    -psb_gather -- Gather Global Dense Matrix +

    +psb_ovrl -- Overlap Update

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


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

    where:
    -
    $glob\_x$
    -
    is the global submatrix -$glob\_x_{1:m,1:n}$ -
    -
    $loc\_x_i$
    -
    is the local portion of global dense matrix on -process $i$. +
    $x$
    +
    is the global dense submatrix $x$
    -
    $collect$
    -
    is the collect function. +
    $Q$
    +
    is the overlap operator; it is the composition of two +operators $ P_a$ and $ P^{T}$.


    -
    +
    -
    Table 16: +Table 15: Data types
    - + - - - - + - + - + - +
    $x_i, y$
    $x$ Subroutine
    Integerpsb_gather
    Short Precision Realpsb_gatherpsb_ovrl
    Long Precision Realpsb_gatherpsb_ovrl
    Short Precision Complexpsb_gatherpsb_ovrl
    Long Precision Complexpsb_gatherpsb_ovrl
    @@ -148,13 +134,13 @@ Data types


    \begin{lstlisting}
-call psb_gather(glob_x, loc_x, desc_a, info, root)
-call psb_gather(glob_x, loc_x, desc_a, info, root)
+call psb_ovrl(x, desc_a, info)
+call psb_ovrl(x, desc_a, info, update=update_type, work=work)
 \end{lstlisting} -
    +

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

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

    -


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

    + +

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

    +
    +

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

    + +

    diff --git a/docs/html/node69.html b/docs/html/node69.html index ba308abd..cf25ea01 100644 --- a/docs/html/node69.html +++ b/docs/html/node69.html @@ -1,140 +1,139 @@ - + - + -psb_scatter -- Scatter Global Dense Matrix - +psb_gather -- Gather Global Dense Matrix + - + + - + - - + next - + up - previous - contents
    - Next: Data management routines - Up: Communication routines - Previous: psb_gather Gather -   Next: psb_scatter Scatter + Up: Communication routines + Previous: psb_ovrl Overlap +   Contents
    -
    +
    -

    -psb_scatter -- Scatter Global Dense Matrix +

    +psb_gather -- Gather Global Dense Matrix

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


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

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


    -
    +
    -
    Table 17: +Table 16: Data types
    - + ALT="$x_i, y$"> - + - + - + - + - +
    $x_i, y$ Subroutine
    Integerpsb_scatterpsb_gather
    Short Precision Realpsb_scatterpsb_gather
    Long Precision Realpsb_scatterpsb_gather
    Short Precision Complexpsb_scatterpsb_gather
    Long Precision Complexpsb_scatterpsb_gather
    @@ -146,10 +145,11 @@ Data types


    \begin{lstlisting}
-call psb_scatter(glob_x, loc_x, desc_a, info, root, mold)
+call psb_gather(glob_x, loc_x, desc_a, info, root)
+call psb_gather(glob_x, loc_x, desc_a, info, root)
 \end{lstlisting}
    @@ -161,16 +161,21 @@ call psb_scatter(glob_x, loc_x, desc_a, info, root, mold)

    On Entry
    -
    glob_x
    -
    The array that must be scattered into local pieces. +
    loc_x
    +
    the local portion of global dense matrix +$glob\_x$.
    -Scope: global +Scope: local
    Type: required
    Intent: in.
    -Specified as: a rank one or two array. +Specified as: a rank one or two array or an object of type vdatapsb_T_vect_type +indicated in Table 16.
    desc_a
    contains data structures for communications. @@ -184,11 +189,11 @@ Intent: in. Specified as: a structured data of type descdatapsb_desc_type.
    root
    -
    The process that holds the global copy. If The process that holds the global copy. If $root=-1$ all - the processes have a copy of the global vector. + ALT="$root=-1$"> all + the processes will have a copy of the global vector.
    Scope: global
    @@ -199,42 +204,27 @@ Intent: in. Specified as: an integer variable -$-1\le root\le np-1$, default -psb_root_, i.e. process 0. -
    -
    mold
    -
    The desired dynamic type for the internal vector storage. -
    -Scope: local. -
    -Type: optional. -
    -Intent: in. -
    -Specified as: an object of a class derived from vbasedatapsb_T_base_vect_type; this is -only allowed when loc_x is of type vdatapsb_T_vect_type. + ALT="$-1\le root\le np-1$">, default $-1$.
    On Return
    -
    loc_x
    -
    the local portion of global dense matrix -$glob\_x$. +
    glob_x
    +
    The array where the local parts must be gathered.
    -Scope: local +Scope: global
    Type: required
    Intent: out.
    -Specified as: a rank one or two ALLOCATABLE array or an object of type vdatapsb_T_vect_type containing numbers of the type -indicated in Table 17. +Specified as: a rank one or two array with the ALLOCATABLE attribute.
    info
    Error code. @@ -250,29 +240,30 @@ An integer value; 0 means no error has been detected.

    -


    + + diff --git a/docs/html/node7.html b/docs/html/node7.html index a291fae7..9f09abe4 100644 --- a/docs/html/node7.html +++ b/docs/html/node7.html @@ -1,10 +1,6 @@ - + - + User-defined index mappings @@ -13,7 +9,7 @@ original version by: Nikos Drakos, CBLU, University of Leeds - + @@ -24,30 +20,31 @@ 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
    -
    +

    @@ -63,19 +60,19 @@ to the constraints outlined in sec. 2.3< -$1\dots n_{\hbox{row}_i}$; + ALT="$1\dots n_{\hbox{row}_i}$">;
  • The set of halo points must be mapped to the set -$n_{\hbox{row}_i}+1\dots n_{\hbox{col}_i}$; + ALT="$n_{\hbox{row}_i}+1\dots n_{\hbox{col}_i}$">;
  • but otherwise the mapping is arbitrary. The user application is diff --git a/docs/html/node70.html b/docs/html/node70.html index 1f931bb8..4d05f71d 100644 --- a/docs/html/node70.html +++ b/docs/html/node70.html @@ -1,136 +1,277 @@ - + - + -Data management routines - +psb_scatter -- Scatter Global Dense Matrix + - + - - - + + - -
    + next - + up - previous - contents
    - Next: psb_cdall Allocates - Up: userhtml - Previous: psb_scatter Scatter -   Next: Data management routines + Up: Communication routines + Previous: psb_gather Gather +   Contents
    -
    +
    -

    - +

    +psb_scatter -- Scatter Global Dense Matrix +

    + +

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

    +

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

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

    +

    +
    + + + +
    Table 17: +Data types
    +
    + + + + + + + + + + + + + + + + + + + +
    $x_i, y$Subroutine
    Integerpsb_scatter
    Short Precision Realpsb_scatter
    Long Precision Realpsb_scatter
    Short Precision Complexpsb_scatter
    Long Precision Complexpsb_scatter
    +
    +
    +

    +
    + +

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

    -


    - -Subsections - - - -

    +
    +
    Type:
    +
    Synchronous. +
    +
    On Entry
    +
    +
    +
    glob_x
    +
    The array that must be scattered into local pieces. +
    +Scope: global +
    +Type: required +
    +Intent: in. +
    +Specified as: a rank one or two array. +
    +
    desc_a
    +
    contains data structures for communications. +
    +Scope: local +
    +Type: required +
    +Intent: in. +
    +Specified as: a structured data of type descdatapsb_desc_type. +
    +
    root
    +
    The process that holds the global copy. If $root=-1$ all + the processes have a copy of the global vector. +
    +Scope: global +
    +Type: optional +
    +Intent: in. +
    +Specified as: an integer variable +$-1\le root\le np-1$, default +psb_root_, i.e. process 0. +
    +
    mold
    +
    The desired dynamic type for the internal vector storage. +
    +Scope: local. +
    +Type: optional. +
    +Intent: in. +
    +Specified as: an object of a class derived from vbasedatapsb_T_base_vect_type; this is +only allowed when loc_x is of type vdatapsb_T_vect_type. +
    +
    On Return
    +
    +
    +
    loc_x
    +
    the local portion of global dense matrix +$glob\_x$. +
    +Scope: local +
    +Type: required +
    +Intent: out. +
    +Specified as: a rank one or two ALLOCATABLE array or an object of type vdatapsb_T_vect_type containing numbers of the type +indicated in Table 17. +
    +
    info
    +
    Error code. +
    +Scope: local +
    +Type: required +
    +Intent: out. +
    +An integer value; 0 means no error has been detected. +
    +
    + +

    + +

    + diff --git a/docs/html/node71.html b/docs/html/node71.html index f4392efd..f391b28c 100644 --- a/docs/html/node71.html +++ b/docs/html/node71.html @@ -1,452 +1,133 @@ - + - + -psb_cdall -- Allocates a communication descriptor - +Data management routines + - + - - - + + + - - + next - + up - previous - contents
    - Next: psb_cdins Communication - Up: Data management routines - Previous: Data management routines -   Next: psb_cdall Allocates + Up: userhtml + Previous: psb_scatter Scatter +   Contents
    -
    +
    -

    -psb_cdall -- Allocates a communication descriptor -

    - -

    -

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

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

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

    +
    -Intent: in. -
    -Specified as: an integer value $0,1$, default $0$. +Data management routines +

    -

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

    + +Subsections -

    -

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

    -Notes - -

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

    -


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

    diff --git a/docs/html/node72.html b/docs/html/node72.html index c0d7902d..1ba59536 100644 --- a/docs/html/node72.html +++ b/docs/html/node72.html @@ -1,160 +1,223 @@ - + - + -psb_cdins -- Communication descriptor insert routine - +psb_cdall -- Allocates a communication descriptor + - + - + - - + next - + up - previous - contents
    - Next: psb_cdasb Communication - Up: Data management routines - Previous: psb_cdall Allocates -   Next: psb_cdins Communication + Up: Data management routines + Previous: Data management routines +   Contents
    -
    +
    -

    -psb_cdins -- Communication descriptor insert - routine +

    +psb_cdall -- Allocates a communication descriptor

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

    -This subroutine examines the edges of the graph associated with the -discretization mesh (and isomorphic to the sparsity pattern of a -linear system coefficient matrix), storing them as necessary into the -communication descriptor. In the first form the edges are specified as -pairs of indices $ia(i),ja(i)$; the starting index $ia(i)$ should -belong to the current process. -In the second form only the remote indices $ja(i)$ are specified. - -

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

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

    +

    +
    mg
    +
    the (global) number of rows of the problem. +
    +Scope:global. +
    +Type:optional. +
    +Intent: in. +
    +Specified as: an integer value. It is required if parts or +repl is specified, it is optional if vg is specified. +
    +
    parts
    +
    the subroutine that defines the partitioning scheme. +
    +Scope:global. +
    +Type:required.
    -Scope: local. +Specified as: a subroutine. +
    +
    vl
    +
    Data allocation: the set of global indices + $vl(1:nl)$ belonging to the calling process. +
    +Scope:local. +
    +Type:optional. +
    +Intent: in. +
    +Specified as: an integer array. +
    +
    nl
    +
    Data allocation: in a generalized block-row distribution the + number of indices belonging to the current process. +
    +Scope:local.
    -Type: required. +Type:optional.
    Intent: in.
    -Specified as: an integer array of length $nz$. +Specified as: an integer value. May be specified together with +vl.
    -
    ja
    -
    the indices of the end vertex of the edges being inserted. +
    repl
    +
    Data allocation: build a replicated index space + (i.e. all processes own all indices).
    -Scope: local. +Scope:global.
    -Type: required. +Type:optional.
    Intent: in.
    -Specified as: an integer array of length $nz$. +Specified as: the logical value .true.
    -
    mask
    -
    Mask entries in ja, they are inserted only when the - corresponding mask entries are .true. +
    globalcheck
    +
    Data allocation: do global checks on the local + index lists vl
    -Scope: local. +Scope:global.
    -Type: optional. +Type:optional.
    Intent: in.
    -Specified as: a logical array of length $nz$, default .true.. +Specified as: a logical value, default: .true.
    lidx
    -
    User defined local indices for ja. +
    Data allocation: the set of local indices + $lidx(1:nl)$ to be assigned to the global indices $vl$.
    -Scope: local. +Scope:local.
    -Type: optional. +Type:optional.
    Intent: in.
    -Specified as: an integer array of length $nz$. +Specified as: an integer array.
    @@ -164,13 +227,13 @@ Specified as: an integer array of length
    desc_a
    -
    the updated communication descriptor. +
    the communication descriptor.
    Scope:local.
    Type:required.
    -Intent: inout. +Intent: out.
    Specified as: a structured data of type descdatapsb_desc_type.
    @@ -185,76 +248,202 @@ Intent: out.
    An integer value; 0 means no error has been detected. -
    ila
    -
    the local indices of the starting vertex of the edges being inserted. -
    -Scope: local. -
    -Type: optional. -
    -Intent: out. -
    -Specified as: an integer array of length $nz$. -
    -
    jla
    -
    the local indices of the end vertex of the edges being inserted. -
    -Scope: local. -
    -Type: optional. -
    -Intent: out. -
    -Specified as: an integer array of length $nz$. +

    -

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

    -


    + + diff --git a/docs/html/node73.html b/docs/html/node73.html index 253b478c..185949be 100644 --- a/docs/html/node73.html +++ b/docs/html/node73.html @@ -1,84 +1,157 @@ - + - + -psb_cdasb -- Communication descriptor assembly routine - +psb_cdins -- Communication descriptor insert routine + - + - + - - + next - + up - previous - contents
    - Next: psb_cdcpy Copies - Up: Data management routines - Previous: psb_cdins Communication -   Next: psb_cdasb Communication + Up: Data management routines + Previous: psb_cdall Allocates +   Contents
    -
    +
    -

    -psb_cdasb -- Communication descriptor assembly +

    +psb_cdins -- Communication descriptor insert routine

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

    +This subroutine examines the edges of the graph associated with the +discretization mesh (and isomorphic to the sparsity pattern of a +linear system coefficient matrix), storing them as necessary into the +communication descriptor. In the first form the edges are specified as +pairs of indices $ia(i),ja(i)$; the starting index $ia(i)$ should +belong to the current process. +In the second form only the remote indices $ja(i)$ are specified. +

    Type:
    -
    Synchronous. +
    Asynchronous.
    On Entry
    -
    desc_a
    -
    the communication descriptor. +
    nz
    +
    the number of points being inserted.
    -Scope:local. +Scope: local.
    -Type:required. +Type: required.
    -Intent: inout. +Intent: in.
    -Specified as: a structured data of type descdatapsb_desc_type. +Specified as: an integer value. +
    +
    ia
    +
    the indices of the starting vertex of the edges being inserted. +
    +Scope: local. +
    +Type: required. +
    +Intent: in. +
    +Specified as: an integer array of length $nz$. +
    +
    ja
    +
    the indices of the end vertex of the edges being inserted. +
    +Scope: local. +
    +Type: required. +
    +Intent: in. +
    +Specified as: an integer array of length $nz$. +
    +
    mask
    +
    Mask entries in ja, they are inserted only when the + corresponding mask entries are .true. +
    +Scope: local. +
    +Type: optional. +
    +Intent: in. +
    +Specified as: a logical array of length $nz$, default .true.. +
    +
    lidx
    +
    User defined local indices for ja. +
    +Scope: local. +
    +Type: optional. +
    +Intent: in. +
    +Specified as: an integer array of length $nz$.
    @@ -88,7 +161,7 @@ Specified as: a structured data of type descdatapsb_desc_type.
    desc_a
    -
    the communication descriptor. +
    the updated communication descriptor.
    Scope:local.
    @@ -109,17 +182,78 @@ Intent: out.
    An integer value; 0 means no error has been detected.
    +
    ila
    +
    the local indices of the starting vertex of the edges being inserted. +
    +Scope: local. +
    +Type: optional. +
    +Intent: out. +
    +Specified as: an integer array of length $nz$. +
    +
    jla
    +
    the local indices of the end vertex of the edges being inserted. +
    +Scope: local. +
    +Type: optional. +
    +Intent: out. +
    +Specified as: an integer array of length $nz$. + +

    +

    -Notes +Notes
      -
    1. On exit from this routine the descriptor is in the assembled - state. +
    2. This routine may only be called if the descriptor is in the + build state; +
    3. +
    4. This routine automatically ignores edges that do not +insist on the current process, i.e. edges for which neither the starting +nor the end vertex belong to the current process. +
    5. +
    6. The second form of this routine will be useful when dealing with + user-specified index mappings; see also 2.3.1.

    -


    + + + diff --git a/docs/html/node74.html b/docs/html/node74.html index 1be624d5..780ad701 100644 --- a/docs/html/node74.html +++ b/docs/html/node74.html @@ -1,85 +1,92 @@ - + - + -psb_cdcpy -- Copies a communication descriptor - +psb_cdasb -- Communication descriptor assembly routine + - + - + - - + next - + up - previous - contents
    - Next: psb_cdfree Frees - Up: Data management routines - Previous: psb_cdasb Communication -   Next: psb_cdcpy Copies + Up: Data management routines + Previous: psb_cdins Communication +   Contents
    -
    +
    -

    -psb_cdcpy -- Copies a communication descriptor +

    +psb_cdasb -- Communication descriptor assembly + routine

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

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

    +

    +
    mold
    +
    The desired dynamic type for the internal index storage. +
    +Scope: local. +
    +Type: optional. +
    +Intent: in. +
    +Specified as: a object of type derived from (integer) vbasedatapsb_T_base_vect_type.
    @@ -88,14 +95,14 @@ Specified as: a structured data of type descdatapsb_desc_type.
    On Return
    -
    desc_out
    -
    the communication descriptor copy. +
    desc_a
    +
    the communication descriptor.
    Scope:local.
    Type:required.
    -Intent: out. +Intent: inout.
    Specified as: a structured data of type descdatapsb_desc_type.
    @@ -111,6 +118,13 @@ Intent: out. An integer value; 0 means no error has been detected. +Notes + +
      +
    1. On exit from this routine the descriptor is in the assembled + state. +
    2. +



    diff --git a/docs/html/node75.html b/docs/html/node75.html index 807a4f75..60eeb141 100644 --- a/docs/html/node75.html +++ b/docs/html/node75.html @@ -1,83 +1,82 @@ - + - + -psb_cdfree -- Frees a communication descriptor - +psb_cdcpy -- Copies a communication descriptor + - + - + - - + next - + up - previous - contents
    - Next: psb_cdbldext Build - Up: Data management routines - Previous: psb_cdcpy Copies -   Next: psb_cdfree Frees + Up: Data management routines + Previous: psb_cdasb Communication +   Contents
    -
    +
    -

    -psb_cdfree -- Frees a communication descriptor +

    +psb_cdcpy -- Copies a communication descriptor

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

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

    @@ -86,6 +85,17 @@ Specified as: a structured data of type descdatapsb_desc_type.
    On Return
    +
    desc_out
    +
    the communication descriptor copy. +
    +Scope:local. +
    +Type:required. +
    +Intent: out. +
    +Specified as: a structured data of type descdatapsb_desc_type. +
    info
    Error code.
    diff --git a/docs/html/node76.html b/docs/html/node76.html index 5f1e7c92..76628cf8 100644 --- a/docs/html/node76.html +++ b/docs/html/node76.html @@ -1,70 +1,63 @@ - + - + -psb_cdbldext -- Build an extended communication descriptor - +psb_cdfree -- Frees a communication descriptor + - + - + - - + next - + up - previous - contents
    - Next: psb_spall Allocates - Up: Data management routines - Previous: psb_cdfree Frees -   Next: psb_cdbldext Build + Up: Data management routines + Previous: psb_cdcpy Copies +   Contents
    -
    +
    -

    -psb_cdbldext -- Build an extended communication - descriptor +

    +psb_cdfree -- Frees a communication descriptor

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

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

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

    +Specified as: a structured data of type descdatapsb_desc_type.

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

    -Notes - -

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

    -


    - - -next - -up - -previous - -contents -
    - Next: psb_spall Allocates - Up: Data management routines - Previous: psb_cdfree Frees -   Contents - +

    diff --git a/docs/html/node77.html b/docs/html/node77.html index 17caf5bc..d3f949e5 100644 --- a/docs/html/node77.html +++ b/docs/html/node77.html @@ -1,66 +1,67 @@ - + - + -psb_spall -- Allocates a sparse matrix - +psb_cdbldext -- Build an extended communication descriptor + - + - + - - + next - + up - previous - contents
    - Next: psb_spins Insert - Up: Data management routines - Previous: psb_cdbldext Build -   Next: psb_spall Allocates + Up: Data management routines + Previous: psb_cdfree Frees +   Contents
    -
    +
    -

    -psb_spall -- Allocates a sparse matrix +

    +psb_cdbldext -- Build an extended communication + descriptor

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

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

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

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

    +Notes

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

    -


    + + diff --git a/docs/html/node78.html b/docs/html/node78.html index 484c736b..de936a1e 100644 --- a/docs/html/node78.html +++ b/docs/html/node78.html @@ -1,101 +1,72 @@ - + - + -psb_spins -- Insert a cloud of elements into a sparse matrix - +psb_spall -- Allocates a sparse matrix + - + - + - - + next - + up - previous - contents
    - Next: psb_spasb Sparse - Up: Data management routines - Previous: psb_spall Allocates -   Next: psb_spins Insert + Up: Data management routines + Previous: psb_cdbldext Build +   Contents
    -
    +
    -

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

    +psb_spall -- Allocates a sparse matrix

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

    Type:
    -
    Asynchronous. +
    Synchronous.
    On Entry
    -
    nz
    -
    the number of elements to be inserted. -
    -Scope:local. -
    -Type:required. -
    -Intent: in. -
    -Specified as: an integer scalar. -
    -
    ia
    -
    the row indices of the elements to be inserted. -
    -Scope:local. -
    -Type:required. -
    -Intent: in. -
    -Specified as: an integer array of size $nz$. -
    -
    ja
    -
    the column indices of the elements to be inserted. +
    desc_a
    +
    the communication descriptor.
    Scope:local.
    @@ -103,51 +74,19 @@ Type:required.
    Intent: in.
    -Specified as: an integer array of size $nz$. +Specified as: a structured data of type descdatapsb_desc_type.
    -
    val
    -
    the elements to be inserted. +
    nnz
    +
    An estimate of the number of nonzeroes in the local + part of the assembled matrix.
    -Scope:local. +Scope: global.
    -Type:required. +Type: optional.
    Intent: in.
    -Specified as: an array of size $nz$. Must be of the same type and kind -of the coefficients of the sparse matrix $a$. -
    -
    desc_a
    -
    The communication descriptor. -
    -Scope: local. -
    -Type: required. -
    -Intent: inout. -
    -Specified as: a variable of type descdatapsb_desc_type. -
    -
    local
    -
    Whether the entries in the indices vectors ia, - ja are already in local numbering. -
    -Scope:local. -
    -Type:optional. -
    -Specified as: a logical value; default: .false.. - -

    +Specified as: an integer value.

    @@ -157,27 +96,16 @@ Specified as: a logical value; default: .false..
    a
    -
    the matrix into which elements will be inserted. +
    the matrix to be allocated.
    Scope:local
    Type:required
    -Intent: inout. +Intent: out.
    Specified as: a structured data of type spdatapsb_Tspmat_type.
    -
    desc_a
    -
    The communication descriptor. -
    -Scope: local. -
    -Type: required. -
    -Intent: inout. -
    -Specified as: a variable of type descdatapsb_desc_type. -
    info
    Error code.
    @@ -190,86 +118,26 @@ Intent: out. An integer value; 0 means no error has been detected.
    - -

    -Notes +Notes

      -
    1. On entry to this routine the descriptor may be in either the - build or assembled state. -
    2. -
    3. On entry to this routine the sparse matrix may be in either the - build or update state. -
    4. -
    5. If the descriptor is in the build state, then the sparse matrix - must also be in the build state; the action of the routine is to - (implicitly) call psb_cdins to add entries to the sparsity - pattern; each sparse matrix entry implicitly defines a graph edge, - that is passed to the descriptor routine for the appropriate - processing; +
    6. On exit from this routine the sparse matrix is in the build + state.
    7. -
    8. The coefficients to be inserted are represented by the ordered - triples -$ia(i),ja(i),val(i)$, for $i=1,\dots,nz$; these triples - should belong to the current process, i.e. $ia(i)$ should be one of - the local indices, but are otherwise arbitrary; +
    9. The descriptor may be in either the build or assembled state.
    10. -
    11. There is no - requirement that a given row must be passed in its entirety to a - single call to this routine: the buildup of a row may be split into - as many calls as desired; -
    12. -
    13. Coefficients from different rows may also be mixed up freely - in a single call, according to the application needs; -
    14. -
    15. Any coefficients from matrix rows not owned by the calling - process are silently ignored; -
    16. -
    17. If the descriptor is in the assembled state, then any entries in - the sparse matrix that would generate additional communication - requirements are ignored; -
    18. -
    19. If the matrix is in the update state, any entries in positions - that were not present in the original matrix are ignored. +
    20. Providing a good estimate for the number of nonzeroes $nnz$ in + the assembled matrix may substantially improve performance in the + matrix build phase, as it will reduce or eliminate the need for + (potentially multiple) data reallocations.

    -


    - - -next - -up - -previous - -contents -
    - Next: psb_spasb Sparse - Up: Data management routines - Previous: psb_spall Allocates -   Contents - +

    diff --git a/docs/html/node79.html b/docs/html/node79.html index 240a02e1..d5c86fdb 100644 --- a/docs/html/node79.html +++ b/docs/html/node79.html @@ -1,75 +1,73 @@ - + - + -psb_spasb -- Sparse matrix assembly routine - +psb_spins -- Insert a cloud of elements into a sparse matrix + - + - + - - + next - + up - previous - contents
    - Next: psb_spfree Frees - Up: Data management routines - Previous: psb_spins Insert -   Next: psb_spasb Sparse + Up: Data management routines + Previous: psb_spall Allocates +   Contents
    -
    +
    -

    -psb_spasb -- Sparse matrix assembly routine +

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

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

    Type:
    -
    Synchronous. +
    Asynchronous.
    On Entry
    -
    desc_a
    -
    the communication descriptor. +
    nz
    +
    the number of elements to be inserted.
    Scope:local.
    @@ -77,52 +75,76 @@ Type:required.
    Intent: in.
    -Specified as: a structured data of type descdatapsb_desc_type. +Specified as: an integer scalar.
    -
    afmt
    -
    the storage format for the sparse matrix. +
    ia
    +
    the row indices of the elements to be inserted.
    -Scope: local. +Scope:local.
    -Type: optional. +Type:required.
    Intent: in.
    -Specified as: an array of characters. Defalt: 'CSR'. +Specified as: an integer array of size $nz$.
    -
    upd
    -
    Provide for updates to the matrix coefficients. +
    ja
    +
    the column indices of the elements to be inserted.
    -Scope: global. +Scope:local.
    -Type: optional. +Type:required.
    Intent: in.
    -Specified as: integer, possible values: psb_upd_srch_, psb_upd_perm_ +Specified as: an integer array of size $nz$.
    -
    dupl
    -
    How to handle duplicate coefficients. +
    val
    +
    the elements to be inserted.
    -Scope: global. +Scope:local.
    -Type: optional. +Type:required.
    Intent: in.
    -Specified as: integer, possible values: psb_dupl_ovwrt_, -psb_dupl_add_, psb_dupl_err_. +Specified as: an array of size $nz$. Must be of the same type and kind +of the coefficients of the sparse matrix $a$.
    -
    mold
    -
    The desired dynamic type for the internal matrix storage. +
    desc_a
    +
    The communication descriptor.
    -Scope: local. +Scope: local.
    -Type: optional. +Type: required.
    -Intent: in. +Intent: inout. +
    +Specified as: a variable of type descdatapsb_desc_type. +
    +
    local
    +
    Whether the entries in the indices vectors ia, + ja are already in local numbering. +
    +Scope:local. +
    +Type:optional.
    -Specified as: an object of a class derived from spbasedatapsb_T_base_sparse_mat. +Specified as: a logical value; default: .false.. + +

    @@ -132,7 +154,7 @@ Specified as: an object of a class derived from spbasedatapsb_T_base_sparse_
    a
    -
    the matrix to be assembled. +
    the matrix into which elements will be inserted.
    Scope:local
    @@ -142,6 +164,17 @@ Intent: inout.
    Specified as: a structured data of type spdatapsb_Tspmat_type.
    +
    desc_a
    +
    The communication descriptor. +
    +Scope: local. +
    +Type: required. +
    +Intent: inout. +
    +Specified as: a variable of type descdatapsb_desc_type. +
    info
    Error code.
    @@ -156,55 +189,84 @@ An integer value; 0 means no error has been detected.

    -Notes +Notes

      -
    1. On entry to this routine the descriptor must be in the - assembled state, i.e. psb_cdasb must already have been called. +
    2. On entry to this routine the descriptor may be in either the + build or assembled state. +
    3. +
    4. On entry to this routine the sparse matrix may be in either the + build or update state. +
    5. +
    6. If the descriptor is in the build state, then the sparse matrix + must also be in the build state; the action of the routine is to + (implicitly) call psb_cdins to add entries to the sparsity + pattern; each sparse matrix entry implicitly defines a graph edge, + that is passed to the descriptor routine for the appropriate + processing;
    7. -
    8. The sparse matrix may be in either the build or update state; +
    9. The coefficients to be inserted are represented by the ordered + triples +$ia(i),ja(i),val(i)$, for $i=1,\dots,nz$; these triples + should belong to the current process, i.e. $ia(i)$ should be one of + the local indices, but are otherwise arbitrary;
    10. -
    11. Duplicate entries are detected and handled in both build and - update state, with the exception of the error action that is only - taken in the build state, i.e. on the first assembly; +
    12. There is no + requirement that a given row must be passed in its entirety to a + single call to this routine: the buildup of a row may be split into + as many calls as desired;
    13. -
    14. If the update choice is psb_upd_perm_, then subsequent - calls to psb_spins to update the matrix must be arranged in - such a way as to produce exactly the same sequence of coefficient - values as encountered at the first assembly; +
    15. Coefficients from different rows may also be mixed up freely + in a single call, according to the application needs;
    16. -
    17. The output storage format need not be the same on all - processes; +
    18. Any coefficients from matrix rows not owned by the calling + process are silently ignored;
    19. -
    20. On exit from this routine the matrix is in the assembled state, - and thus is suitable for the computational routines. +
    21. If the descriptor is in the assembled state, then any entries in + the sparse matrix that would generate additional communication + requirements are ignored; +
    22. +
    23. If the matrix is in the update state, any entries in positions + that were not present in the original matrix are ignored.

    -


    + + diff --git a/docs/html/node8.html b/docs/html/node8.html index 109edcfd..9b1e1251 100644 --- a/docs/html/node8.html +++ b/docs/html/node8.html @@ -1,10 +1,6 @@ - + - + Programming model @@ -13,7 +9,7 @@ original version by: Nikos Drakos, CBLU, University of Leeds - + @@ -24,30 +20,31 @@ 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
    -
    +

    @@ -63,7 +60,7 @@ is thus data-driven.

    Because of this structure, many subroutines coordinate their action across the various processes, thus providing an implicit -synchronization point, and therefore must be +synchronization point, and therefore must be called simultaneously by all processes participating in the computation. This is certainly true for the data allocation and assembly routines, for all the computational routines and for some of @@ -94,29 +91,30 @@ as:

    -


    + +
    diff --git a/docs/html/node80.html b/docs/html/node80.html index 4ce4062d..23728587 100644 --- a/docs/html/node80.html +++ b/docs/html/node80.html @@ -1,63 +1,60 @@ - + - + -psb_spfree -- Frees a sparse matrix - +psb_spasb -- Sparse matrix assembly routine + - + - + - - + next - + up - previous - contents
    - Next: psb_sprn Reinit - Up: Data management routines - Previous: psb_spasb Sparse -   Next: psb_spfree Frees + Up: Data management routines + Previous: psb_spins Insert +   Contents
    -
    +
    -

    -psb_spfree -- Frees a sparse matrix +

    +psb_spasb -- Sparse matrix assembly routine

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

    @@ -68,17 +65,6 @@ call psb_spfree(a, desc_a, info)

    On Entry
    -
    a
    -
    the matrix to be freed. -
    -Scope:local -
    -Type:required -
    -Intent: inout. -
    -Specified as: a structured data of type spdatapsb_Tspmat_type. -
    desc_a
    the communication descriptor.
    @@ -90,6 +76,51 @@ Intent: in.
    Specified as: a structured data of type descdatapsb_desc_type.
    +
    afmt
    +
    the storage format for the sparse matrix. +
    +Scope: local. +
    +Type: optional. +
    +Intent: in. +
    +Specified as: an array of characters. Defalt: 'CSR'. +
    +
    upd
    +
    Provide for updates to the matrix coefficients. +
    +Scope: global. +
    +Type: optional. +
    +Intent: in. +
    +Specified as: integer, possible values: psb_upd_srch_, psb_upd_perm_ +
    +
    dupl
    +
    How to handle duplicate coefficients. +
    +Scope: global. +
    +Type: optional. +
    +Intent: in. +
    +Specified as: integer, possible values: psb_dupl_ovwrt_, +psb_dupl_add_, psb_dupl_err_. +
    +
    mold
    +
    The desired dynamic type for the internal matrix storage. +
    +Scope: local. +
    +Type: optional. +
    +Intent: in. +
    +Specified as: an object of a class derived from spbasedatapsb_T_base_sparse_mat. +

    @@ -97,6 +128,17 @@ Specified as: a structured data of type descdatapsb_desc_type.

    On Return
    +
    a
    +
    the matrix to be assembled. +
    +Scope:local +
    +Type:required +
    +Intent: inout. +
    +Specified as: a structured data of type spdatapsb_Tspmat_type. +
    info
    Error code.
    @@ -111,7 +153,57 @@ An integer value; 0 means no error has been detected.

    -


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

    + +

    + diff --git a/docs/html/node81.html b/docs/html/node81.html index b4cffef1..6e688f10 100644 --- a/docs/html/node81.html +++ b/docs/html/node81.html @@ -1,64 +1,60 @@ - + - + -psb_sprn -- Reinit sparse matrix structure for psblas routines. - +psb_spfree -- Frees a sparse matrix + - + - + - - + next - + up - previous - contents
    - Next: psb_geall Allocates - Up: Data management routines - Previous: psb_spfree Frees -   Next: psb_sprn Reinit + Up: Data management routines + Previous: psb_spasb Sparse +   Contents
    -
    +
    -

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

    +psb_spfree -- Frees a sparse matrix

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

    @@ -70,7 +66,7 @@ call psb_sprn(a, decsc_a, info, clear)

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

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

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



    diff --git a/docs/html/node82.html b/docs/html/node82.html index 19258ba2..245b17c3 100644 --- a/docs/html/node82.html +++ b/docs/html/node82.html @@ -1,63 +1,61 @@ - + - + -psb_geall -- Allocates a dense matrix - +psb_sprn -- Reinit sparse matrix structure for psblas routines. + - + - + - - + next - + up - previous - contents
    - Next: psb_geins Dense - Up: Data management routines - Previous: psb_sprn Reinit -   Next: psb_geall Allocates + Up: Data management routines + Previous: psb_spfree Frees +   Contents
    -
    +
    -

    -psb_geall -- Allocates a dense matrix +

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

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

    @@ -68,52 +66,38 @@ call psb_geall(x, desc_a, info, n, lb)

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

    -


    - - -next - -up - -previous - -contents -
    - Next: psb_geins Dense - Up: Data management routines - Previous: psb_sprn Reinit -   Contents - +

    diff --git a/docs/html/node83.html b/docs/html/node83.html index 265fc731..a9a4eac7 100644 --- a/docs/html/node83.html +++ b/docs/html/node83.html @@ -1,154 +1,116 @@ - + - + -psb_geins -- Dense matrix insertion routine - +psb_geall -- Allocates a dense matrix + - + - + - - + next - + up - previous - contents
    - Next: psb_geasb Assembly - Up: Data management routines - Previous: psb_geall Allocates -   Next: psb_geins Dense + Up: Data management routines + Previous: psb_sprn Reinit +   Contents
    -
    +
    -

    -psb_geins -- Dense matrix insertion routine +

    +psb_geall -- Allocates a dense matrix

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

    Type:
    -
    Asynchronous. +
    Synchronous.
    On Entry
    -
    m
    -
    Number of rows in $val$ to be inserted. -
    -Scope:local. -
    -Type:required. -
    -Intent: in. -
    -Specified as: an integer value. -
    -
    irw
    -
    Indices of the rows to be inserted. Specifically, row $i$ - of $val$ will be inserted into the local row corresponding to the - global row index $irw(i)$. -Scope:local. -
    -Type:required. -
    -Intent: in. -
    -Specified as: an integer array. -
    -
    val
    -
    the dense submatrix to be inserted. +
    desc_a
    +
    The communication descriptor.
    -Scope:local. +Scope: local
    -Type:required. +Type: required
    Intent: in.
    -Specified as: a rank 1 or 2 array. -Specified as: an integer value. -
    -
    desc_a
    -
    the communication descriptor. +Specified as: a variable of type descdatapsb_desc_type. +
    +
    n
    +
    The number of columns of the dense matrix to be allocated.
    -Scope:local. +Scope: local
    -Type:required. +Type: optional
    Intent: in.
    -Specified as: a structured data of type descdatapsb_desc_type. +Specified as: Integer scalar, default $1$. It is not a valid argument if $x$ is a +rank-1 array.
    -
    dupl
    -
    How to handle duplicate coefficients. +
    lb
    +
    The lower bound for the column index range of the dense matrix to be allocated.
    -Scope: global. +Scope: local
    -Type: optional. +Type: optional
    Intent: in.
    -Specified as: integer, possible values: psb_dupl_ovwrt_, -psb_dupl_add_. -
    -
    local
    -
    Whether the entries in the index vector irw, - are already in local numbering. -
    -Scope:local. -
    -Type:optional. -
    -Specified as: a logical value; default: .false.. - -

    +Specified as: Integer scalar, default $1$. It is not a valid argument if $x$ is a +rank-1 array.

    @@ -158,16 +120,16 @@ Specified as: a logical value; default: .false..
    x
    -
    the output dense matrix. +
    The dense matrix to be allocated.
    Scope: local
    Type: required
    -Intent: inout. +Intent: out.
    -Specified as: a rank one or two array or an object of type vdatapsb_T_vect_type, of -type real, complex or integer. +Specified as: a rank one or two array with the ALLOCATABLE attribute +or an object of type vdatapsb_T_vect_type, of type real, complex or integer.
    info
    Error code. @@ -183,41 +145,7 @@ An integer value; 0 means no error has been detected.

    -Notes - -

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

    -


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

    diff --git a/docs/html/node84.html b/docs/html/node84.html index 917fec61..f8781e25 100644 --- a/docs/html/node84.html +++ b/docs/html/node84.html @@ -1,98 +1,151 @@ - + - + -psb_geasb -- Assembly a dense matrix - +psb_geins -- Dense matrix insertion routine + - + - + - - + next - + up - previous - contents
    - Next: psb_gefree Frees - Up: Data management routines - Previous: psb_geins Dense -   Next: psb_geasb Assembly + Up: Data management routines + Previous: psb_geall Allocates +   Contents
    -
    +
    -

    -psb_geasb -- Assembly a dense matrix +

    +psb_geins -- Dense matrix insertion routine

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

    Type:
    -
    Synchronous. +
    Asynchronous.
    On Entry
    +
    m
    +
    Number of rows in $val$ to be inserted. +
    +Scope:local. +
    +Type:required. +
    +Intent: in. +
    +Specified as: an integer value. +
    +
    irw
    +
    Indices of the rows to be inserted. Specifically, row $i$ + of $val$ will be inserted into the local row corresponding to the + global row index $irw(i)$. +Scope:local. +
    +Type:required. +
    +Intent: in. +
    +Specified as: an integer array. +
    +
    val
    +
    the dense submatrix to be inserted. +
    +Scope:local. +
    +Type:required. +
    +Intent: in. +
    +Specified as: a rank 1 or 2 array. +Specified as: an integer value. +
    desc_a
    -
    The communication descriptor. +
    the communication descriptor.
    -Scope: local +Scope:local.
    -Type: required +Type:required.
    Intent: in.
    -Specified as: a variable of type descdatapsb_desc_type. -
    -
    mold
    -
    The desired dynamic type for the internal vector storage. +Specified as: a structured data of type descdatapsb_desc_type. +
    +
    dupl
    +
    How to handle duplicate coefficients.
    -Scope: local. +Scope: global.
    Type: optional.
    Intent: in.
    -Specified as: an object of a class derived from vbasedatapsb_T_base_vect_type; this is -only allowed when $x$ is of type vdatapsb_T_vect_type. +Specified as: integer, possible values: psb_dupl_ovwrt_, +psb_dupl_add_. +
    +
    local
    +
    Whether the entries in the index vector irw, + are already in local numbering. +
    +Scope:local. +
    +Type:optional. +
    +Specified as: a logical value; default: .false.. + +

    @@ -102,7 +155,7 @@ only allowed when
    x
    -
    The dense matrix to be assembled. +
    the output dense matrix.
    Scope: local
    @@ -110,8 +163,8 @@ Type: required
    Intent: inout.
    -Specified as: a rank one or two array with the ALLOCATABLE or an -object of type vdatapsb_T_vect_type, of type real, complex or integer. +Specified as: a rank one or two array or an object of type vdatapsb_T_vect_type, of +type real, complex or integer.
    info
    Error code. @@ -125,7 +178,44 @@ Intent: out. An integer value; 0 means no error has been detected.
    -

    + +

    +Notes + +

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

    + +

    + diff --git a/docs/html/node85.html b/docs/html/node85.html index 5a4ca890..c66eadd8 100644 --- a/docs/html/node85.html +++ b/docs/html/node85.html @@ -1,63 +1,60 @@ - + - + -psb_gefree -- Frees a dense matrix - +psb_geasb -- Assembly a dense matrix + - + - + - - + next - + up - previous - contents
    - Next: psb_gelp Applies - Up: Data management routines - Previous: psb_geasb Assembly -   Next: psb_gefree Frees + Up: Data management routines + Previous: psb_geins Dense +   Contents
    -
    +
    -

    -psb_gefree -- Frees a dense matrix +

    +psb_geasb -- Assembly a dense matrix

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

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

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

    -

    desc_a
    The communication descriptor.
    @@ -94,6 +76,21 @@ Intent: in.
    Specified as: a variable of type descdatapsb_desc_type.
    +
    mold
    +
    The desired dynamic type for the internal vector storage. +
    +Scope: local. +
    +Type: optional. +
    +Intent: in. +
    +Specified as: an object of a class derived from vbasedatapsb_T_base_vect_type; this is +only allowed when $x$ is of type vdatapsb_T_vect_type. +

    @@ -101,6 +98,18 @@ Specified as: a variable of type descdatapsb_desc_type.

    On Return
    +
    x
    +
    The dense matrix to be assembled. +
    +Scope: local +
    +Type: required +
    +Intent: inout. +
    +Specified as: a rank one or two array with the ALLOCATABLE or an +object of type vdatapsb_T_vect_type, of type real, complex or integer. +
    info
    Error code.
    @@ -113,8 +122,6 @@ Intent: out. An integer value; 0 means no error has been detected.
    - -



    diff --git a/docs/html/node86.html b/docs/html/node86.html index c6a81929..887b910b 100644 --- a/docs/html/node86.html +++ b/docs/html/node86.html @@ -1,118 +1,95 @@ - + - + -psb_gelp -- Applies a left permutation to a dense matrix - +psb_gefree -- Frees a dense matrix + - + - + - - + next - + up - previous - contents
    - Next: psb_glob_to_loc Global - Up: Data management routines - Previous: psb_gefree Frees -   Next: psb_gelp Applies + Up: Data management routines + Previous: psb_geasb Assembly +   Contents
    -
    +
    -

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

    +psb_gefree -- Frees a dense matrix

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

    Type:
    -
    Asynchronous. +
    Synchronous.
    On Entry
    -
    trans
    -
    A character that specifies whether to permute $A$ or $A^T$. +
    x
    +
    The dense matrix to + be freed.
    Scope: local
    Type: required
    -Intent: in. -
    -Specified as: a single character with value 'N' for $A$ or 'T' for $A^T$. -
    -
    iperm
    -
    An integer array containing permutation information. -
    -Scope: local -
    -Type: required +Intent: inout.
    -Intent: in. +Specified as: a rank one or two array with the ALLOCATABLE or an +object of type vdatapsb_T_vect_type, of type real, complex or integer.
    -Specified as: an integer one-dimensional array. -
    -
    x
    -
    The dense matrix to be permuted. +

    +

    +
    desc_a
    +
    The communication descriptor.
    Scope: local
    Type: required
    -Intent: inout. +Intent: in.
    -Specified as: a one or two dimensional array. +Specified as: a variable of type descdatapsb_desc_type.
    diff --git a/docs/html/node87.html b/docs/html/node87.html index 05d01b20..1b2b4598 100644 --- a/docs/html/node87.html +++ b/docs/html/node87.html @@ -1,65 +1,61 @@ - + - + -psb_glob_to_loc -- Global to local indices convertion - +psb_gelp -- Applies a left permutation to a dense matrix + - + - + - - + next - + up - previous - contents
    - Next: psb_loc_to_glob Local - Up: Data management routines - Previous: psb_gelp Applies -   Next: psb_glob_to_loc Global + Up: Data management routines + Previous: psb_gefree Frees +   Contents
    -
    +
    -

    -psb_glob_to_loc -- Global to local indices - convertion +

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

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

    @@ -70,51 +66,51 @@ call psb_glob_to_loc(x, desc_a, info, iact,owned)

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

    @@ -122,44 +118,6 @@ accepted. Default: false.

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

    -Notes - -

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

    -


    - - -next - -up - -previous - -contents -
    - Next: psb_loc_to_glob Local - Up: Data management routines - Previous: psb_gelp Applies -   Contents - +

    diff --git a/docs/html/node88.html b/docs/html/node88.html index e97049e4..0f4f81e0 100644 --- a/docs/html/node88.html +++ b/docs/html/node88.html @@ -1,65 +1,62 @@ - + - + -psb_loc_to_glob -- Local to global indices conversion - +psb_glob_to_loc -- Global to local indices convertion + - + - + - - + next - + up - previous - contents
    - Next: psb_is_owned - Up: Data management routines - Previous: psb_glob_to_loc Global -   Next: psb_loc_to_glob Local + Up: Data management routines + Previous: psb_gelp Applies +   Contents
    -
    +
    -

    -psb_loc_to_glob -- Local to global indices - conversion +

    +psb_glob_to_loc -- Global to local indices + convertion

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

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

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

    @@ -111,14 +120,14 @@ Specified as: a character variable Ignore, Warning or

    x
    -
    If If $y$ is not present, - then $y$ is not present, + then $x$ is overwritten with the translated integer indices. + ALT="$x$"> is overwritten with the translated integer indices. Scope: global
    Type: required @@ -128,17 +137,17 @@ Intent: inout. Specified as: a rank one integer array.
    y
    -
    If If $y$ is not present, - then $y$ is present, + then $y$ is overwritten with the translated integer indices, and $y$ is overwritten with the translated integer indices, and $x$ + ALT="$x$"> is left unchanged. Scope: global
    @@ -162,29 +171,42 @@ An integer value; 0 means no error has been detected.

    -


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

    + +

    diff --git a/docs/html/node89.html b/docs/html/node89.html index 907e4539..b4ae68ff 100644 --- a/docs/html/node89.html +++ b/docs/html/node89.html @@ -1,63 +1,62 @@ - + - + -psb_is_owned -- - +psb_loc_to_glob -- Local to global indices conversion + - + - + - - + next - + up - previous - contents
    - Next: psb_owned_index - Up: Data management routines - Previous: psb_loc_to_glob Local -   Next: psb_is_owned + Up: Data management routines + Previous: psb_glob_to_loc Global +   Contents
    -
    +
    -

    -psb_is_owned -- +

    +psb_loc_to_glob -- Local to global indices + conversion

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

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

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

    @@ -97,30 +107,57 @@ Specified as: a structured data of type descdatapsb_desc_type.

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

    -Notes - -

      -
    1. This routine returns a .true. value for an index - that is strictly owned by the current process, excluding the halo - indices -
    2. -
    -



    diff --git a/docs/html/node9.html b/docs/html/node9.html index f9ba07b2..d5d0565c 100644 --- a/docs/html/node9.html +++ b/docs/html/node9.html @@ -1,10 +1,6 @@ - + - + Data Structures and Classes @@ -13,42 +9,43 @@ 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
    -
    +

    @@ -61,6 +58,7 @@ Data Structures and Classes In this chapter we illustrate the data structures used for definition of routines interfaces. They include data structures for sparse matrices, communication descriptors and preconditioners. +

    All the data types and the basic subroutine interfaces related to descriptors and sparse matrices are defined in @@ -110,131 +108,134 @@ developer's documentation. Subsections -

    +
    +
  • Preconditioner data structure +
  • Heap data structure -
    + + diff --git a/docs/html/node90.html b/docs/html/node90.html index cd5c4585..84cafa51 100644 --- a/docs/html/node90.html +++ b/docs/html/node90.html @@ -1,63 +1,60 @@ - + - + -psb_owned_index -- - +psb_is_owned -- + - + - + - - + next - + up - previous - contents
    - Next: psb_is_local - Up: Data management routines - Previous: psb_is_owned -   Next: psb_owned_index + Up: Data management routines + Previous: psb_loc_to_glob Local +   Contents
    -
    +
    -

    -psb_owned_index -- +

    +psb_is_owned --

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

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

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

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

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

    -Notes +Notes

      -
    1. This routine returns a .true. value for those indices - that are strictly owned by the current process, excluding the halo +
    2. This routine returns a .true. value for an index + that is strictly owned by the current process, excluding the halo indices
    diff --git a/docs/html/node91.html b/docs/html/node91.html index 8ee3b871..8f42455e 100644 --- a/docs/html/node91.html +++ b/docs/html/node91.html @@ -1,63 +1,60 @@ - + - + -psb_is_local -- - +psb_owned_index -- + - + - + - - + next - + up - previous - contents
    - Next: psb_local_index - Up: Data management routines - Previous: psb_owned_index -   Next: psb_is_local + Up: Data management routines + Previous: psb_is_owned +   Contents
    -
    +
    -

    -psb_is_local -- +

    +psb_owned_index --

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

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

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

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

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

    -Notes +Notes

      -
    1. This routine returns a .true. value for an index - that is local to the current process, including the halo +
    2. This routine returns a .true. value for those indices + that are strictly owned by the current process, excluding the halo indices
    diff --git a/docs/html/node92.html b/docs/html/node92.html index 05b84dd3..71988886 100644 --- a/docs/html/node92.html +++ b/docs/html/node92.html @@ -1,63 +1,60 @@ - + - + -psb_local_index -- - +psb_is_local -- + - + - + - - + next - + up - previous - contents
    - Next: psb_get_boundary Extract - Up: Data management routines - Previous: psb_is_local -   Next: psb_local_index + Up: Data management routines + Previous: psb_owned_index +   Contents
    -
    +
    -

    -psb_local_index -- +

    +psb_is_local --

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

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

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

    @@ -108,40 +94,27 @@ Specified as: a character variable Ignore, Warning or

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

    -Notes +Notes

      -
    1. This routine returns a .true. value for those indices - that are local to the current process, including the halo - indices. +
    2. This routine returns a .true. value for an index + that is local to the current process, including the halo + indices
    diff --git a/docs/html/node93.html b/docs/html/node93.html index 3c1bdeb8..9abcf1fa 100644 --- a/docs/html/node93.html +++ b/docs/html/node93.html @@ -1,64 +1,60 @@ - + - + -psb_get_boundary -- Extract list of boundary elements - +psb_local_index -- + - + - + - - + next - + up - previous - contents
    - Next: psb_get_overlap Extract - Up: Data management routines - Previous: psb_local_index -   Next: psb_get_boundary Extract + Up: Data management routines + Previous: psb_is_local +   Contents
    -
    +
    -

    -psb_get_boundary -- Extract list of boundary - elements +

    +psb_local_index --

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

    @@ -69,7 +65,18 @@ call psb_get_boundary(bndel, desc, info)

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

    @@ -87,19 +105,20 @@ Specified as: a structured data of type descdatapsb_desc_type.

    On Return
    -
    bndel
    -
    The list of boundary elements on the calling process, in - local numbering. -
    +
    y
    +
    A logical mask which is true for all corresponding entries of + $x$ that are local to the current process Scope: local
    Type: required
    Intent: out.
    -Specified as: a rank one array with the ALLOCATABLE -attribute, of type integer. -
    +Specified as: a scalar or rank one logical array. +
    info
    Error code.
    @@ -114,15 +133,12 @@ An integer value; 0 means no error has been detected.

    -Notes +Notes

      -
    1. If there are no boundary elements (i.e., if the local part of - the connectivity graph is self-contained) the output vector is set - to the ``not allocated'' state. -
    2. -
    3. Otherwise the size of bndel will be exactly equal to the - number of boundary elements. +
    4. This routine returns a .true. value for those indices + that are local to the current process, including the halo + indices.
    diff --git a/docs/html/node94.html b/docs/html/node94.html index 491c748c..5d30b949 100644 --- a/docs/html/node94.html +++ b/docs/html/node94.html @@ -1,64 +1,61 @@ - + - + -psb_get_overlap -- Extract list of overlap elements - +psb_get_boundary -- Extract list of boundary elements + - + - + - - + next - + up - previous - contents
    - Next: psb_sp_getrow Extract - Up: Data management routines - Previous: psb_get_boundary Extract -   Next: psb_get_overlap Extract + Up: Data management routines + Previous: psb_local_index +   Contents
    -
    +
    -

    -psb_get_overlap -- Extract list of overlap +

    +psb_get_boundary -- Extract list of boundary elements

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

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

    On Return
    -
    ovrel
    -
    The list of overlap elements on the calling process, in +
    bndel
    +
    The list of boundary elements on the calling process, in local numbering.
    Scope: local @@ -114,14 +111,15 @@ An integer value; 0 means no error has been detected.

    -Notes +Notes

      -
    1. If there are no overlap elements the output vector is set - to the ``not allocated'' state. +
    2. If there are no boundary elements (i.e., if the local part of + the connectivity graph is self-contained) the output vector is set + to the “not allocated” state.
    3. -
    4. Otherwise the size of ovrel will be exactly equal to the - number of overlap elements. +
    5. Otherwise the size of bndel will be exactly equal to the + number of boundary elements.
    diff --git a/docs/html/node95.html b/docs/html/node95.html index c7d42348..b53e1e39 100644 --- a/docs/html/node95.html +++ b/docs/html/node95.html @@ -1,65 +1,61 @@ - + - + -psb_sp_getrow -- Extract row(s) from a sparse matrix - +psb_get_overlap -- Extract list of overlap elements + - + - + - - + next - + up - previous - contents
    - Next: psb_sizeof Memory - Up: Data management routines - Previous: psb_get_overlap Extract -   Next: psb_sp_getrow Extract + Up: Data management routines + Previous: psb_get_boundary Extract +   Contents
    -
    +
    -

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

    +psb_get_overlap -- Extract list of overlap + elements

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

    @@ -70,75 +66,16 @@ call psb_sp_getrow(row, a, nz, ia, ja, val, info, &

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

    +Specified as: a structured data of type descdatapsb_desc_type.

    @@ -147,50 +84,19 @@ Specified as: an integer On Return
    -
    nz
    -
    the number of elements returned by this call. +
    ovrel
    +
    The list of overlap elements on the calling process, in + local numbering.
    -Scope:local. +Scope: local
    -Type:required. +Type: required
    Intent: out.
    -Returned as: an integer scalar. -
    -
    ia
    -
    the row indices. -
    -Scope:local. -
    -Type:required. -
    -Intent: inout. -
    -Specified as: an integer array with the ALLOCATABLE attribute. -
    -
    ja
    -
    the column indices of the elements to be inserted. -
    -Scope:local. -
    -Type:required. -
    -Intent: inout. -
    -Specified as: an integer array with the ALLOCATABLE attribute. -
    -
    val
    -
    the elements to be inserted. -
    -Scope:local. -
    -Type:required. -
    -Intent: inout. -
    -Specified as: a real array with the ALLOCATABLE attribute. -
    +Specified as: a rank one array with the ALLOCATABLE +attribute, of type integer. +

    info
    Error code.
    @@ -205,54 +111,19 @@ An integer value; 0 means no error has been detected.

    -Notes +Notes

      -
    1. The output $nz$ is always the size of the output generated by - the current call; thus, if append=.true., the total output - size will be $nzin+nz$, with the newly extracted coefficients stored in - entries nzin+1:nzin+nz of the array arguments; -
    2. -
    3. When append=.true. the output arrays are reallocated as - necessary; +
    4. If there are no overlap elements the output vector is set + to the “not allocated” state.
    5. -
    6. The row and column indices are returned in the local numbering - scheme; if the global numbering is desired, the user may employ the - psb_loc_to_glob routine on the output. +
    7. Otherwise the size of ovrel will be exactly equal to the + number of overlap elements.

    -


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

    diff --git a/docs/html/node96.html b/docs/html/node96.html index 4e3b0064..4d678841 100644 --- a/docs/html/node96.html +++ b/docs/html/node96.html @@ -1,68 +1,62 @@ - + - + -psb_sizeof -- Memory occupation - +psb_sp_getrow -- Extract row(s) from a sparse matrix + - + - + - - + next - + up - previous - contents
    - Next: Sorting utilities - Up: Data management routines - Previous: psb_sp_getrow Extract -   Next: psb_sizeof Memory + Up: Data management routines + Previous: psb_get_overlap Extract +   Contents
    -
    +
    -

    -psb_sizeof -- Memory occupation +

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

    -

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

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

    @@ -73,56 +67,190 @@ isz = psb_sizeof(prec)

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

    +

    + + +

    +

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

    -


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

    + +

    + diff --git a/docs/html/node97.html b/docs/html/node97.html index 6fabf54d..ed85f3cd 100644 --- a/docs/html/node97.html +++ b/docs/html/node97.html @@ -1,293 +1,125 @@ - + - + -Sorting utilities -- - +psb_sizeof -- Memory occupation + - + + - + - - + next - + up - previous - contents
    - Next: Parallel environment routines - Up: Data management routines - Previous: psb_sizeof Memory -   Next: Sorting utilities + Up: Data management routines + Previous: psb_sp_getrow Extract +   Contents
    -
    +
    -

    -Sorting utilities -- +

    +psb_sizeof -- Memory occupation

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

    -psb_qsort -- Sorting by the Quicksort - algorithm +This function computes the memory occupation of a PSBLAS object.

    -psb_hsort -- Sorting by the Heapsort algorithm

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

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

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

    +Intent: in. +
    +Specified as: a preconditioner data structure precdatapsb_prec_type.

    -
    - -

    -

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

    - -

    -Notes - -

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

    - -

    -


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

    diff --git a/docs/html/node98.html b/docs/html/node98.html index edce873d..c93a9d41 100644 --- a/docs/html/node98.html +++ b/docs/html/node98.html @@ -1,107 +1,291 @@ - + - + -Parallel environment routines - +Sorting utilities -- + - + - - - + + - - + next - + up - previous - contents
    - Next: psb_init Initializes - Up: userhtml - Previous: Sorting utilities -   Next: Parallel environment routines + Up: Data management routines + Previous: psb_sizeof Memory +   Contents
    -
    +
    -

    - +

    +Sorting utilities -- +

    + +

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

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

    +psb_hsort -- Sorting by the Heapsort algorithm +

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

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

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

    -


    - -Subsections - - - -

    +
    + + +

    +

    +
    On Return
    +
    +
    +
    x
    +
    The sequence of values, in the chosen ordering. +
    +Type:required. +
    +Specified as: an integer, real or complex array of rank 1. +
    +
    ix
    +
    A vector of indices. +
    +Type: Optional +
    +An integer array of rank 1, whose entries are moved to the same +position as the corresponding entries in $x$. +
    +
    + +

    + +

    +Notes + +

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

    + +

    + +

    + diff --git a/docs/html/node99.html b/docs/html/node99.html index 19c2eb2d..846e4c02 100644 --- a/docs/html/node99.html +++ b/docs/html/node99.html @@ -1,179 +1,104 @@ - + - + -psb_init -- Initializes PSBLAS parallel environment - +Parallel environment routines + - + - - - + + + - - + next - + up - previous - contents
    - Next: psb_info Return - Up: Parallel environment routines - Previous: Parallel environment routines -   Next: psb_init Initializes + Up: userhtml + Previous: Sorting utilities +   Contents
    -
    +
    -

    -psb_init -- Initializes PSBLAS parallel - environment -

    - -

    -

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

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

    -
    Type:
    -
    Synchronous. -
    -
    On Entry
    -
    -
    -
    np
    -
    Number of processes in the PSBLAS virtual parallel machine. -
    -Scope: global. -
    -Type: optional. +

    +
    -Intent: in. -
    -Specified as: an integer value. Default: use all available processes. -

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

    -

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

    -Notes - -

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

    + +Subsections -

    -


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

    diff --git a/docs/html/userhtml.html b/docs/html/userhtml.html index 17a97eb8..66f903c5 100644 --- a/docs/html/userhtml.html +++ b/docs/html/userhtml.html @@ -1,10 +1,6 @@ - + - + userhtml @@ -13,7 +9,7 @@ original version by: Nikos Drakos, CBLU, University of Leeds - + @@ -22,7 +18,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds - + + language=Fortran

    -PSBLAS +PSBLAS

    User's and Reference - Guide
    -
    A reference guide for the Parallel Sparse BLAS library + Guide
    +
    A reference guide for the Parallel Sparse BLAS library


    @@ -55,7 +52,7 @@ User's and Reference
    Alfredo Buttari
    -University of Rome ``Tor Vergata'', Italy +University of Rome “Tor Vergata”, Italy


    @@ -69,7 +66,7 @@ Sep 1st, 2017 -

  • Heap data structure + HREF="node50.html">Preconditioner data structure +
  • Heap data structure
    -
  • Computational routines -
    • psb_geaxpby -- General Dense Matrix Sum + HREF="node52.html">Computational routines +
      -
    • Communication routines -
      • psb_halo -- Halo Data Communication + HREF="node66.html">Communication routines +
        -
      • Data management routines -
        • psb_cdall -- Allocates a communication descriptor + HREF="node71.html">Data management routines +
          -
        • Parallel environment routines -
          • psb_init -- Initializes PSBLAS parallel - environment + HREF="node99.html">Parallel environment routines +
            -
          • Error handling
          • Utilities -
              + HREF="node116.html">Error handling
            • hb_read -- Read a sparse matrix from a file in the - Harwell-Boeing format + HREF="node117.html">Utilities +
              -
            • Preconditioner routines -
              • init -- Initialize a preconditioner + HREF="node124.html">Preconditioner routines +
                -
              • Iterative Methods -

                diff --git a/docs/psblas-3.5.pdf b/docs/psblas-3.5.pdf index 682e916c..b2d9cb51 100644 --- a/docs/psblas-3.5.pdf +++ b/docs/psblas-3.5.pdf @@ -5,19 +5,19 @@ /Type /ObjStm /N 100 /First 818 -/Length 4711 +/Length 4688 >> stream 1 0 5 38 6 77 9 117 10 144 13 185 14 217 17 263 18 299 21 345 22 379 25 425 26 464 29 515 30 562 33 608 34 643 37 684 38 727 41 773 42 816 45 867 46 905 49 947 50 981 53 1023 54 1057 57 1099 58 1134 61 1176 -62 1211 65 1253 66 1288 69 1330 70 1358 73 1400 74 1419 77 1461 78 1513 81 1556 -82 1608 85 1659 86 1694 89 1740 90 1777 93 1828 94 1869 97 1912 98 1938 101 1981 -102 2008 105 2052 106 2081 109 2125 110 2152 113 2196 114 2218 117 2262 118 2288 121 2332 -122 2379 125 2423 126 2490 129 2534 130 2554 133 2598 134 2619 137 2663 138 2692 141 2736 -142 2762 145 2806 146 2833 149 2877 150 2896 153 2940 154 2959 157 3003 158 3046 161 3090 -162 3110 165 3162 166 3198 169 3245 170 3291 173 3343 174 3378 177 3422 178 3449 181 3493 -182 3515 185 3559 186 3578 189 3622 190 3649 193 3693 194 3713 197 3760 198 3808 201 3855 +62 1211 65 1253 66 1288 69 1330 70 1358 73 1400 74 1419 77 1461 78 1478 81 1521 +82 1573 85 1616 86 1668 89 1719 90 1754 93 1800 94 1837 97 1888 98 1929 101 1972 +102 1999 105 2043 106 2070 109 2114 110 2143 113 2187 114 2214 117 2258 118 2280 121 2324 +122 2350 125 2394 126 2441 129 2485 130 2552 133 2596 134 2616 137 2660 138 2681 141 2725 +142 2754 145 2798 146 2824 149 2868 150 2895 153 2939 154 2958 157 3002 158 3021 161 3065 +162 3108 165 3152 166 3172 169 3224 170 3260 173 3307 174 3353 177 3405 178 3440 181 3484 +182 3511 185 3555 186 3577 189 3621 190 3640 193 3684 194 3711 197 3755 198 3775 201 3822 % 1 0 obj << /S /GoTo /D (title.0) >> % 5 0 obj @@ -93,131 +93,131 @@ stream % 74 0 obj << /S /GoTo /D (section*.9) >> % 77 0 obj -(psb\137cd\137get\137large\137threshold) +(CNV) % 78 0 obj << /S /GoTo /D (section*.10) >> % 81 0 obj -(psb\137cd\137set\137large\137threshold) +(psb\137cd\137get\137large\137threshold) % 82 0 obj -<< /S /GoTo /D (subsubsection.3.1.2) >> +<< /S /GoTo /D (section*.11) >> % 85 0 obj -(3.1.2 Named Constants) +(psb\137cd\137set\137large\137threshold) % 86 0 obj -<< /S /GoTo /D (subsection.3.2) >> +<< /S /GoTo /D (subsubsection.3.1.2) >> % 89 0 obj -(3.2 Sparse Matrix class) +(3.1.2 Named Constants) % 90 0 obj -<< /S /GoTo /D (subsubsection.3.2.1) >> +<< /S /GoTo /D (subsection.3.2) >> % 93 0 obj -(3.2.1 Sparse Matrix Methods) +(3.2 Sparse Matrix class) % 94 0 obj -<< /S /GoTo /D (section*.11) >> +<< /S /GoTo /D (subsubsection.3.2.1) >> % 97 0 obj -(get\137nrows) +(3.2.1 Sparse Matrix Methods) % 98 0 obj << /S /GoTo /D (section*.12) >> % 101 0 obj -(get\137ncols) +(get\137nrows) % 102 0 obj << /S /GoTo /D (section*.13) >> % 105 0 obj -(get\137nnzeros) +(get\137ncols) % 106 0 obj << /S /GoTo /D (section*.14) >> % 109 0 obj -(get\137size ) +(get\137nnzeros) % 110 0 obj << /S /GoTo /D (section*.15) >> % 113 0 obj -(sizeof ) +(get\137size ) % 114 0 obj << /S /GoTo /D (section*.16) >> % 117 0 obj -(get\137fmt ) +(sizeof ) % 118 0 obj << /S /GoTo /D (section*.17) >> % 121 0 obj -(is\137bld, is\137upd, is\137asb ) +(get\137fmt ) % 122 0 obj << /S /GoTo /D (section*.18) >> % 125 0 obj -(is\137lower, is\137upper, is\137triangle, is\137unit) +(is\137bld, is\137upd, is\137asb ) % 126 0 obj << /S /GoTo /D (section*.19) >> % 129 0 obj -(cscnv) +(is\137lower, is\137upper, is\137triangle, is\137unit) % 130 0 obj << /S /GoTo /D (section*.20) >> % 133 0 obj -(csclip) +(cscnv) % 134 0 obj << /S /GoTo /D (section*.21) >> % 137 0 obj -(clean\137zeros) +(csclip) % 138 0 obj << /S /GoTo /D (section*.22) >> % 141 0 obj -(get\137diag) +(clean\137zeros) % 142 0 obj << /S /GoTo /D (section*.23) >> % 145 0 obj -(clip\137diag) +(get\137diag) % 146 0 obj << /S /GoTo /D (section*.24) >> % 149 0 obj -(tril) +(clip\137diag) % 150 0 obj << /S /GoTo /D (section*.25) >> % 153 0 obj -(triu) +(tril) % 154 0 obj << /S /GoTo /D (section*.26) >> % 157 0 obj -(psb\137set\137mat\137default) +(triu) % 158 0 obj << /S /GoTo /D (section*.27) >> % 161 0 obj -(clone) +(psb\137set\137mat\137default) % 162 0 obj -<< /S /GoTo /D (subsubsection.3.2.2) >> +<< /S /GoTo /D (section*.28) >> % 165 0 obj -(3.2.2 Named Constants) +(clone) % 166 0 obj -<< /S /GoTo /D (subsection.3.3) >> +<< /S /GoTo /D (subsubsection.3.2.2) >> % 169 0 obj -(3.3 Dense Vector Data Structure) +(3.2.2 Named Constants) % 170 0 obj -<< /S /GoTo /D (subsubsection.3.3.1) >> +<< /S /GoTo /D (subsection.3.3) >> % 173 0 obj -(3.3.1 Vector Methods) +(3.3 Dense Vector Data Structure) % 174 0 obj -<< /S /GoTo /D (section*.28) >> +<< /S /GoTo /D (subsubsection.3.3.1) >> % 177 0 obj -(get\137nrows) +(3.3.1 Vector Methods) % 178 0 obj << /S /GoTo /D (section*.29) >> % 181 0 obj -(sizeof ) +(get\137nrows) % 182 0 obj << /S /GoTo /D (section*.30) >> % 185 0 obj -(set ) +(sizeof ) % 186 0 obj << /S /GoTo /D (section*.31) >> % 189 0 obj -(get\137vect ) +(set ) % 190 0 obj << /S /GoTo /D (section*.32) >> % 193 0 obj -(clone) +(get\137vect ) % 194 0 obj -<< /S /GoTo /D (subsection.3.4) >> +<< /S /GoTo /D (section*.33) >> % 197 0 obj -(3.4 Preconditioner data structure) +(clone) % 198 0 obj -<< /S /GoTo /D (subsection.3.5) >> +<< /S /GoTo /D (subsection.3.4) >> % 201 0 obj -(3.5 Heap data structure) +(3.4 Preconditioner data structure) endstream endobj @@ -225,224 +225,224 @@ endobj << /Type /ObjStm /N 100 -/First 868 -/Length 4567 +/First 869 +/Length 4583 >> stream -202 0 206 42 207 81 210 125 211 154 214 198 215 225 218 269 219 297 222 341 -223 368 226 412 227 441 230 485 231 512 234 556 235 585 238 629 239 656 242 700 -243 729 246 773 247 800 250 844 251 871 254 915 255 941 258 985 259 1011 262 1053 -263 1092 266 1136 267 1162 270 1206 271 1232 274 1276 275 1304 278 1348 279 1377 282 1419 -283 1460 286 1504 287 1531 290 1575 291 1602 294 1646 295 1673 298 1717 299 1744 302 1788 -303 1816 306 1860 307 1890 310 1934 311 1961 314 2005 315 2032 318 2076 319 2103 322 2147 -323 2175 326 2219 327 2245 330 2289 331 2316 334 2360 335 2387 338 2431 339 2458 342 2502 -343 2530 346 2574 347 2600 350 2644 351 2683 354 2727 355 2766 358 2810 359 2844 362 2888 -363 2925 366 2969 367 3003 370 3047 371 3084 374 3128 375 3165 378 3209 379 3245 382 3289 -383 3323 386 3367 387 3395 390 3439 391 3471 394 3513 395 3559 398 3603 399 3629 402 3673 +202 0 206 47 207 85 210 127 211 166 214 210 215 239 218 283 219 310 222 354 +223 382 226 426 227 453 230 497 231 526 234 570 235 597 238 641 239 670 242 714 +243 741 246 785 247 814 250 858 251 885 254 929 255 956 258 1000 259 1026 262 1070 +263 1096 266 1138 267 1177 270 1221 271 1247 274 1291 275 1317 278 1361 279 1389 282 1433 +283 1462 286 1504 287 1545 290 1589 291 1616 294 1660 295 1687 298 1731 299 1758 302 1802 +303 1829 306 1873 307 1901 310 1945 311 1975 314 2019 315 2046 318 2090 319 2117 322 2161 +323 2188 326 2232 327 2260 330 2304 331 2330 334 2374 335 2401 338 2445 339 2472 342 2516 +343 2543 346 2587 347 2615 350 2659 351 2685 354 2729 355 2768 358 2812 359 2851 362 2895 +363 2929 366 2973 367 3010 370 3054 371 3088 374 3132 375 3169 378 3213 379 3250 382 3294 +383 3330 386 3374 387 3408 390 3452 391 3480 394 3524 395 3556 398 3598 399 3644 402 3688 % 202 0 obj -<< /S /GoTo /D (section.4) >> +<< /S /GoTo /D (subsection.3.5) >> % 206 0 obj -(4 Computational routines) +(3.5 Heap data structure) % 207 0 obj -<< /S /GoTo /D (section*.33) >> +<< /S /GoTo /D (section.4) >> % 210 0 obj -(psb\137geaxpby) +(4 Computational routines) % 211 0 obj << /S /GoTo /D (section*.34) >> % 214 0 obj -(psb\137gedot) +(psb\137geaxpby) % 215 0 obj << /S /GoTo /D (section*.35) >> % 218 0 obj -(psb\137gedots) +(psb\137gedot) % 219 0 obj << /S /GoTo /D (section*.36) >> % 222 0 obj -(psb\137normi) +(psb\137gedots) % 223 0 obj << /S /GoTo /D (section*.37) >> % 226 0 obj -(psb\137geamaxs) +(psb\137normi) % 227 0 obj << /S /GoTo /D (section*.38) >> % 230 0 obj -(psb\137norm1) +(psb\137geamaxs) % 231 0 obj << /S /GoTo /D (section*.39) >> % 234 0 obj -(psb\137geasums) +(psb\137norm1) % 235 0 obj << /S /GoTo /D (section*.40) >> % 238 0 obj -(psb\137norm2) +(psb\137geasums) % 239 0 obj << /S /GoTo /D (section*.41) >> % 242 0 obj -(psb\137genrm2s) +(psb\137norm2) % 243 0 obj << /S /GoTo /D (section*.42) >> % 246 0 obj -(psb\137norm1) +(psb\137genrm2s) % 247 0 obj << /S /GoTo /D (section*.43) >> % 250 0 obj -(psb\137normi) +(psb\137norm1) % 251 0 obj << /S /GoTo /D (section*.44) >> % 254 0 obj -(psb\137spmm) +(psb\137normi) % 255 0 obj << /S /GoTo /D (section*.45) >> % 258 0 obj -(psb\137spsm) +(psb\137spmm) % 259 0 obj -<< /S /GoTo /D (section.5) >> +<< /S /GoTo /D (section*.46) >> % 262 0 obj -(5 Communication routines) +(psb\137spsm) % 263 0 obj -<< /S /GoTo /D (section*.46) >> +<< /S /GoTo /D (section.5) >> % 266 0 obj -(psb\137halo) +(5 Communication routines) % 267 0 obj << /S /GoTo /D (section*.47) >> % 270 0 obj -(psb\137ovrl) +(psb\137halo) % 271 0 obj << /S /GoTo /D (section*.48) >> % 274 0 obj -(psb\137gather) +(psb\137ovrl) % 275 0 obj << /S /GoTo /D (section*.49) >> % 278 0 obj -(psb\137scatter) +(psb\137gather) % 279 0 obj -<< /S /GoTo /D (section.6) >> +<< /S /GoTo /D (section*.50) >> % 282 0 obj -(6 Data management routines) +(psb\137scatter) % 283 0 obj -<< /S /GoTo /D (section*.50) >> +<< /S /GoTo /D (section.6) >> % 286 0 obj -(psb\137cdall) +(6 Data management routines) % 287 0 obj << /S /GoTo /D (section*.51) >> % 290 0 obj -(psb\137cdins) +(psb\137cdall) % 291 0 obj << /S /GoTo /D (section*.52) >> % 294 0 obj -(psb\137cdasb) +(psb\137cdins) % 295 0 obj << /S /GoTo /D (section*.53) >> % 298 0 obj -(psb\137cdcpy) +(psb\137cdasb) % 299 0 obj << /S /GoTo /D (section*.54) >> % 302 0 obj -(psb\137cdfree) +(psb\137cdcpy) % 303 0 obj << /S /GoTo /D (section*.55) >> % 306 0 obj -(psb\137cdbldext) +(psb\137cdfree) % 307 0 obj << /S /GoTo /D (section*.56) >> % 310 0 obj -(psb\137spall) +(psb\137cdbldext) % 311 0 obj << /S /GoTo /D (section*.57) >> % 314 0 obj -(psb\137spins) +(psb\137spall) % 315 0 obj << /S /GoTo /D (section*.58) >> % 318 0 obj -(psb\137spasb) +(psb\137spins) % 319 0 obj << /S /GoTo /D (section*.59) >> % 322 0 obj -(psb\137spfree) +(psb\137spasb) % 323 0 obj << /S /GoTo /D (section*.60) >> % 326 0 obj -(psb\137sprn) +(psb\137spfree) % 327 0 obj << /S /GoTo /D (section*.61) >> % 330 0 obj -(psb\137geall) +(psb\137sprn) % 331 0 obj << /S /GoTo /D (section*.62) >> % 334 0 obj -(psb\137geins) +(psb\137geall) % 335 0 obj << /S /GoTo /D (section*.63) >> % 338 0 obj -(psb\137geasb) +(psb\137geins) % 339 0 obj << /S /GoTo /D (section*.64) >> % 342 0 obj -(psb\137gefree) +(psb\137geasb) % 343 0 obj << /S /GoTo /D (section*.65) >> % 346 0 obj -(psb\137gelp) +(psb\137gefree) % 347 0 obj << /S /GoTo /D (section*.66) >> % 350 0 obj -(psb\137glob\137to\137loc) +(psb\137gelp) % 351 0 obj << /S /GoTo /D (section*.67) >> % 354 0 obj -(psb\137loc\137to\137glob) +(psb\137glob\137to\137loc) % 355 0 obj << /S /GoTo /D (section*.68) >> % 358 0 obj -(psb\137is\137owned ) +(psb\137loc\137to\137glob) % 359 0 obj << /S /GoTo /D (section*.69) >> % 362 0 obj -(psb\137owned\137index ) +(psb\137is\137owned ) % 363 0 obj << /S /GoTo /D (section*.70) >> % 366 0 obj -(psb\137is\137local ) +(psb\137owned\137index ) % 367 0 obj << /S /GoTo /D (section*.71) >> % 370 0 obj -(psb\137local\137index ) +(psb\137is\137local ) % 371 0 obj << /S /GoTo /D (section*.72) >> % 374 0 obj -(psb\137get\137boundary) +(psb\137local\137index ) % 375 0 obj << /S /GoTo /D (section*.73) >> % 378 0 obj -(psb\137get\137overlap) +(psb\137get\137boundary) % 379 0 obj << /S /GoTo /D (section*.74) >> % 382 0 obj -(psb\137sp\137getrow) +(psb\137get\137overlap) % 383 0 obj << /S /GoTo /D (section*.75) >> % 386 0 obj -(psb\137sizeof) +(psb\137sp\137getrow) % 387 0 obj << /S /GoTo /D (section*.76) >> % 390 0 obj -(Sorting utilities) +(psb\137sizeof) % 391 0 obj -<< /S /GoTo /D (section.7) >> +<< /S /GoTo /D (section*.77) >> % 394 0 obj -(7 Parallel environment routines) +(Sorting utilities) % 395 0 obj -<< /S /GoTo /D (section*.77) >> +<< /S /GoTo /D (section.7) >> % 398 0 obj -(psb\137init) +(7 Parallel environment routines) % 399 0 obj << /S /GoTo /D (section*.78) >> % 402 0 obj -(psb\137info) +(psb\137init) endstream endobj -547 0 obj +551 0 obj << /Length 682 >> @@ -470,7 +470,7 @@ ET endstream endobj -557 0 obj +561 0 obj << /Length 77 >> @@ -485,9 +485,9 @@ ET endstream endobj -608 0 obj +612 0 obj << -/Length 17096 +/Length 16991 >> stream 0 g 0 G @@ -553,7 +553,7 @@ BT 0 g 0 G [-913(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G - [-1083(12)]TJ + [-1083(11)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG 31.881 -12.08 Td [(get)]TJ @@ -574,7 +574,7 @@ BT 0 g 0 G [-411(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G - [-1084(12)]TJ + [-1084(11)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG -40.659 -12.08 Td [(get)]TJ @@ -637,7 +637,7 @@ BT 0 g 0 G [-969(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G - [-1084(13)]TJ + [-1084(12)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG -46.47 -12.08 Td [(get)]TJ @@ -678,74 +678,81 @@ BT -16.87 -12.08 Td [(Clone)]TJ 0 g 0 G [-861(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ +0 g 0 G + [-1084(13)]TJ +0 g 0 G +0 0 1 rg 0 0 1 RG + 0 -12.08 Td [(CNV)]TJ +0 g 0 G + [-361(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G [-1084(14)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG - 0 -12.08 Td [(psb)]TJ + 0 -12.079 Td [(psb)]TJ ET q -1 0 0 1 185.231 458.757 cm +1 0 0 1 185.231 446.677 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 188.22 458.557 Td [(cd)]TJ +/F8 9.9626 Tf 188.22 446.478 Td [(cd)]TJ ET q -1 0 0 1 198.78 458.757 cm +1 0 0 1 198.78 446.677 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 201.769 458.557 Td [(get)]TJ +/F8 9.9626 Tf 201.769 446.478 Td [(get)]TJ ET q -1 0 0 1 215.65 458.757 cm +1 0 0 1 215.65 446.677 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 218.639 458.557 Td [(large)]TJ +/F8 9.9626 Tf 218.639 446.478 Td [(large)]TJ ET q -1 0 0 1 240.297 458.757 cm +1 0 0 1 240.297 446.677 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 243.286 458.557 Td [(threshold)]TJ +/F8 9.9626 Tf 243.286 446.478 Td [(threshold)]TJ 0 g 0 G [-460(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G [-1084(14)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG - -73.652 -12.079 Td [(psb)]TJ + -73.652 -12.08 Td [(psb)]TJ ET q -1 0 0 1 185.231 446.677 cm +1 0 0 1 185.231 434.597 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 188.22 446.478 Td [(cd)]TJ +/F8 9.9626 Tf 188.22 434.398 Td [(cd)]TJ ET q -1 0 0 1 198.78 446.677 cm +1 0 0 1 198.78 434.597 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 201.769 446.478 Td [(set)]TJ +/F8 9.9626 Tf 201.769 434.398 Td [(set)]TJ ET q -1 0 0 1 214.599 446.677 cm +1 0 0 1 214.599 434.597 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 217.588 446.478 Td [(large)]TJ +/F8 9.9626 Tf 217.588 434.398 Td [(large)]TJ ET q -1 0 0 1 239.245 446.677 cm +1 0 0 1 239.245 434.597 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 242.234 446.478 Td [(threshold)]TJ +/F8 9.9626 Tf 242.234 434.398 Td [(threshold)]TJ 0 g 0 G [-565(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G @@ -756,7 +763,7 @@ BT 0 g 0 G [-1017(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G - [-1084(14)]TJ + [-1084(15)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG -22.914 -12.08 Td [(3.2)-1022(Sparse)-334(Matri)1(x)-334(class)]TJ @@ -766,21 +773,21 @@ BT [-1084(15)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG - 22.914 -12.08 Td [(3.2.1)-1144(Sparse)-334(Matrix)-333(Metho)-28(ds)]TJ + 22.914 -12.079 Td [(3.2.1)-1144(Sparse)-334(Matrix)-333(Metho)-28(ds)]TJ 0 g 0 G [-844(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G [-1084(16)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG - 31.881 -12.079 Td [(get)]TJ + 31.881 -12.08 Td [(get)]TJ ET q -1 0 0 1 183.515 398.358 cm +1 0 0 1 183.515 386.278 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 186.504 398.159 Td [(nro)28(ws)]TJ +/F8 9.9626 Tf 186.504 386.079 Td [(nro)28(ws)]TJ 0 g 0 G [-687(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)]TJ 0 g 0 G @@ -790,39 +797,39 @@ BT -16.87 -12.08 Td [(get)]TJ ET q -1 0 0 1 183.515 386.278 cm +1 0 0 1 183.515 374.199 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 186.504 386.079 Td [(ncols)]TJ +/F8 9.9626 Tf 186.504 373.999 Td [(ncols)]TJ 0 g 0 G [-273(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G [-1084(16)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG - -16.87 -12.08 Td [(get)]TJ + -16.87 -12.079 Td [(get)]TJ ET q -1 0 0 1 183.515 374.199 cm +1 0 0 1 183.515 362.119 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 186.504 373.999 Td [(nnzeros)]TJ +/F8 9.9626 Tf 186.504 361.92 Td [(nnzeros)]TJ 0 g 0 G [-715(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G - [-1084(16)]TJ + [-1084(17)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG - -16.87 -12.079 Td [(get)]TJ + -16.87 -12.08 Td [(get)]TJ ET q -1 0 0 1 183.515 362.119 cm +1 0 0 1 183.515 350.039 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 186.504 361.92 Td [(size)]TJ +/F8 9.9626 Tf 186.504 349.84 Td [(size)]TJ 0 g 0 G [-884(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G @@ -836,42 +843,42 @@ BT [-1084(17)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG - 0 -12.08 Td [(get)]TJ + 0 -12.079 Td [(get)]TJ ET q -1 0 0 1 183.515 337.96 cm +1 0 0 1 183.515 325.88 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 186.504 337.76 Td [(fm)28(t)]TJ +/F8 9.9626 Tf 186.504 325.681 Td [(fm)28(t)]TJ 0 g 0 G [-946(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G - [-1084(17)]TJ + [-1084(18)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG - -16.87 -12.079 Td [(is)]TJ + -16.87 -12.08 Td [(is)]TJ ET q -1 0 0 1 176.929 325.88 cm +1 0 0 1 176.929 313.8 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 179.918 325.681 Td [(bld,)-333(is)]TJ +/F8 9.9626 Tf 179.918 313.601 Td [(bld,)-333(is)]TJ ET q -1 0 0 1 207.138 325.88 cm +1 0 0 1 207.138 313.8 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 210.127 325.681 Td [(up)-28(d,)-333(is)]TJ +/F8 9.9626 Tf 210.127 313.601 Td [(up)-28(d,)-333(is)]TJ ET q -1 0 0 1 240.391 325.88 cm +1 0 0 1 240.391 313.8 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 243.38 325.681 Td [(asb)]TJ +/F8 9.9626 Tf 243.38 313.601 Td [(asb)]TJ 0 g 0 G [-731(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G @@ -881,32 +888,32 @@ BT -73.746 -12.08 Td [(is)]TJ ET q -1 0 0 1 176.929 313.8 cm +1 0 0 1 176.929 301.72 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 179.918 313.601 Td [(lo)28(w)28(er,)-334(is)]TJ +/F8 9.9626 Tf 179.918 301.521 Td [(lo)28(w)28(er,)-334(is)]TJ ET q -1 0 0 1 216.021 313.8 cm +1 0 0 1 216.021 301.72 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 219.01 313.601 Td [(upp)-28(er,)-333(is)]TJ +/F8 9.9626 Tf 219.01 301.521 Td [(upp)-28(er,)-333(is)]TJ ET q -1 0 0 1 257.604 313.8 cm +1 0 0 1 257.604 301.72 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 260.593 313.601 Td [(triangle,)-333(is)]TJ +/F8 9.9626 Tf 260.593 301.521 Td [(triangle,)-333(is)]TJ ET q -1 0 0 1 307.213 313.8 cm +1 0 0 1 307.213 301.72 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 310.202 313.601 Td [(unit)]TJ +/F8 9.9626 Tf 310.202 301.521 Td [(unit)]TJ 0 g 0 G [-696(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G @@ -917,59 +924,59 @@ BT 0 g 0 G [-1022(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)]TJ 0 g 0 G - [-1084(18)]TJ + [-1084(19)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG - 0 -12.08 Td [(csclip)]TJ + 0 -12.079 Td [(csclip)]TJ 0 g 0 G [-967(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G [-1083(19)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG - 0 -12.079 Td [(clean)]TJ + 0 -12.08 Td [(clean)]TJ ET q -1 0 0 1 192.371 277.561 cm +1 0 0 1 192.371 265.481 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 195.36 277.362 Td [(zeros)]TJ +/F8 9.9626 Tf 195.36 265.282 Td [(zeros)]TJ 0 g 0 G [-937(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G - [-1084(19)]TJ + [-1084(20)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG -25.726 -12.08 Td [(get)]TJ ET q -1 0 0 1 183.515 265.481 cm +1 0 0 1 183.515 253.402 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 186.504 265.282 Td [(diag)]TJ +/F8 9.9626 Tf 186.504 253.202 Td [(diag)]TJ 0 g 0 G [-612(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G [-1084(20)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG - -16.87 -12.08 Td [(clip)]TJ + -16.87 -12.079 Td [(clip)]TJ ET q -1 0 0 1 185.729 253.402 cm +1 0 0 1 185.729 241.322 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 188.718 253.202 Td [(diag)]TJ +/F8 9.9626 Tf 188.718 241.123 Td [(diag)]TJ 0 g 0 G [-390(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G - [-1084(20)]TJ + [-1084(21)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG - -19.084 -12.079 Td [(tril)]TJ + -19.084 -12.08 Td [(tril)]TJ 0 g 0 G [-469(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G @@ -980,38 +987,38 @@ BT 0 g 0 G [-969(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G - [-1084(21)]TJ + [-1084(22)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG - 0 -12.08 Td [(psb)]TJ + 0 -12.079 Td [(psb)]TJ ET q -1 0 0 1 185.231 217.162 cm +1 0 0 1 185.231 205.083 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 188.22 216.963 Td [(set)]TJ +/F8 9.9626 Tf 188.22 204.884 Td [(set)]TJ ET q -1 0 0 1 201.05 217.162 cm +1 0 0 1 201.05 205.083 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 204.038 216.963 Td [(mat)]TJ +/F8 9.9626 Tf 204.038 204.884 Td [(mat)]TJ ET q -1 0 0 1 221.794 217.162 cm +1 0 0 1 221.794 205.083 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 224.783 216.963 Td [(default)]TJ +/F8 9.9626 Tf 224.783 204.884 Td [(default)]TJ 0 g 0 G [-1020(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G [-1084(22)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG - -55.149 -12.079 Td [(clone)]TJ + -55.149 -12.08 Td [(clone)]TJ 0 g 0 G [-361(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G @@ -1022,7 +1029,7 @@ BT 0 g 0 G [-1016(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G - [-1084(22)]TJ + [-1084(23)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG -22.915 -12.08 Td [(3.3)-1022(Dense)-334(V)84(ector)-334(Data)-333(Structure)]TJ @@ -1032,25 +1039,25 @@ BT [-1084(23)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG - 22.915 -12.08 Td [(3.3.1)-1144(V)83(ector)-333(Metho)-28(ds)]TJ + 22.915 -12.079 Td [(3.3.1)-1144(V)83(ector)-333(Metho)-28(ds)]TJ 0 g 0 G [-297(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)]TJ 0 g 0 G - [-1084(23)]TJ + [-1084(24)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG - 31.88 -12.079 Td [(get)]TJ + 31.88 -12.08 Td [(get)]TJ ET q -1 0 0 1 183.515 156.764 cm +1 0 0 1 183.515 144.684 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 186.504 156.565 Td [(nro)28(ws)]TJ +/F8 9.9626 Tf 186.504 144.485 Td [(nro)28(ws)]TJ 0 g 0 G [-687(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)]TJ 0 g 0 G - [-1084(23)]TJ + [-1084(24)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG -16.87 -12.08 Td [(sizeof)]TJ @@ -1060,28 +1067,14 @@ BT [-1084(24)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG - 0 -12.08 Td [(set)]TJ + 0 -12.079 Td [(set)]TJ 0 g 0 G [-1355(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G [-1083(24)]TJ 0 g 0 G -0 0 1 rg 0 0 1 RG - 0 -12.079 Td [(get)]TJ -ET -q -1 0 0 1 183.515 120.525 cm -[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S -Q -BT -/F8 9.9626 Tf 186.504 120.326 Td [(v)28(ect)]TJ 0 g 0 G - [-668(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ -0 g 0 G - [-1084(25)]TJ -0 g 0 G -0 g 0 G - 83.863 -29.888 Td [(i)]TJ + 100.733 -29.888 Td [(i)]TJ 0 g 0 G ET @@ -1092,213 +1085,217 @@ endobj /Type /ObjStm /N 100 /First 865 -/Length 7588 +/Length 7353 >> stream -403 0 407 44 408 70 411 114 412 150 415 194 416 227 419 271 420 298 423 342 -424 371 427 415 428 442 431 486 432 513 435 557 436 582 439 626 440 651 443 695 -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 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 407 44 408 70 411 114 412 140 415 184 416 220 419 264 420 297 423 341 +424 368 427 412 428 441 431 485 432 512 435 556 436 583 439 627 440 652 443 696 +444 721 447 765 448 790 451 834 452 859 455 903 456 928 459 972 460 997 463 1041 +464 1066 467 1108 468 1139 471 1183 472 1212 475 1256 476 1283 479 1327 480 1368 483 1412 +484 1450 487 1492 488 1518 491 1562 492 1587 495 1631 496 1657 499 1702 500 1734 503 1779 +504 1813 507 1858 508 1891 511 1936 512 1971 515 2014 516 2055 519 2100 520 2127 523 2172 +524 2200 527 2245 528 2273 531 2318 532 2346 535 2391 536 2411 539 2456 540 2483 543 2526 +544 2561 547 2606 548 2634 549 2679 552 2793 553 2849 3 2905 550 2959 560 3064 562 3178 +559 3235 611 3301 563 3795 564 3941 565 4087 566 4239 567 4391 568 4543 569 4700 570 4852 +571 4998 572 5150 573 5306 574 5453 575 5600 576 5748 577 5896 578 6044 579 6192 580 6340 % 403 0 obj << /S /GoTo /D (section*.79) >> % 407 0 obj -(psb\137exit) +(psb\137info) % 408 0 obj << /S /GoTo /D (section*.80) >> % 411 0 obj -(psb\137get\137mpicomm) +(psb\137exit) % 412 0 obj << /S /GoTo /D (section*.81) >> % 415 0 obj -(psb\137get\137rank) +(psb\137get\137mpicomm) % 416 0 obj << /S /GoTo /D (section*.82) >> % 419 0 obj -(psb\137wtime) +(psb\137get\137rank) % 420 0 obj << /S /GoTo /D (section*.83) >> % 423 0 obj -(psb\137barrier) +(psb\137wtime) % 424 0 obj << /S /GoTo /D (section*.84) >> % 427 0 obj -(psb\137abort) +(psb\137barrier) % 428 0 obj << /S /GoTo /D (section*.85) >> % 431 0 obj -(psb\137bcast) +(psb\137abort) % 432 0 obj << /S /GoTo /D (section*.86) >> % 435 0 obj -(psb\137sum) +(psb\137bcast) % 436 0 obj << /S /GoTo /D (section*.87) >> % 439 0 obj -(psb\137max) +(psb\137sum) % 440 0 obj << /S /GoTo /D (section*.88) >> % 443 0 obj -(psb\137min) +(psb\137max) % 444 0 obj << /S /GoTo /D (section*.89) >> % 447 0 obj -(psb\137amx) +(psb\137min) % 448 0 obj << /S /GoTo /D (section*.90) >> % 451 0 obj -(psb\137amn) +(psb\137amx) % 452 0 obj << /S /GoTo /D (section*.91) >> % 455 0 obj -(psb\137snd) +(psb\137amn) % 456 0 obj << /S /GoTo /D (section*.92) >> % 459 0 obj -(psb\137rcv) +(psb\137snd) % 460 0 obj -<< /S /GoTo /D (section.8) >> +<< /S /GoTo /D (section*.93) >> % 463 0 obj -(8 Error handling) +(psb\137rcv) % 464 0 obj -<< /S /GoTo /D (section*.93) >> +<< /S /GoTo /D (section.8) >> % 467 0 obj -(psb\137errpush) +(8 Error handling) % 468 0 obj << /S /GoTo /D (section*.94) >> % 471 0 obj -(psb\137error) +(psb\137errpush) % 472 0 obj << /S /GoTo /D (section*.95) >> % 475 0 obj -(psb\137set\137errverbosity) +(psb\137error) % 476 0 obj << /S /GoTo /D (section*.96) >> % 479 0 obj -(psb\137set\137erraction) +(psb\137set\137errverbosity) % 480 0 obj -<< /S /GoTo /D (section.9) >> +<< /S /GoTo /D (section*.97) >> % 483 0 obj -(9 Utilities) +(psb\137set\137erraction) % 484 0 obj -<< /S /GoTo /D (section*.97) >> +<< /S /GoTo /D (section.9) >> % 487 0 obj -(hb\137read) +(9 Utilities) % 488 0 obj << /S /GoTo /D (section*.98) >> % 491 0 obj -(hb\137write) +(hb\137read) % 492 0 obj << /S /GoTo /D (section*.99) >> % 495 0 obj -(mm\137mat\137read) +(hb\137write) % 496 0 obj << /S /GoTo /D (section*.100) >> % 499 0 obj -(mm\137array\137read) +(mm\137mat\137read) % 500 0 obj << /S /GoTo /D (section*.101) >> % 503 0 obj -(mm\137mat\137write) +(mm\137array\137read) % 504 0 obj << /S /GoTo /D (section*.102) >> % 507 0 obj -(mm\137array\137write) +(mm\137mat\137write) % 508 0 obj -<< /S /GoTo /D (section.10) >> +<< /S /GoTo /D (section*.103) >> % 511 0 obj -(10 Preconditioner routines) +(mm\137array\137write) % 512 0 obj -<< /S /GoTo /D (section*.103) >> +<< /S /GoTo /D (section.10) >> % 515 0 obj -(prec\045init) +(10 Preconditioner routines) % 516 0 obj << /S /GoTo /D (section*.104) >> % 519 0 obj -(prec\045build) +(prec\045init) % 520 0 obj << /S /GoTo /D (section*.105) >> % 523 0 obj -(prec\045apply) +(prec\045build) % 524 0 obj << /S /GoTo /D (section*.106) >> % 527 0 obj -(prec\045descr) +(prec\045apply) % 528 0 obj << /S /GoTo /D (section*.107) >> % 531 0 obj -(clone) +(prec\045descr) % 532 0 obj << /S /GoTo /D (section*.108) >> % 535 0 obj -(prec\045free) +(clone) % 536 0 obj -<< /S /GoTo /D (section.11) >> +<< /S /GoTo /D (section*.109) >> % 539 0 obj -(11 Iterative Methods) +(prec\045free) % 540 0 obj -<< /S /GoTo /D (section*.109) >> +<< /S /GoTo /D (section.11) >> % 543 0 obj -(psb\137krylov) +(11 Iterative Methods) % 544 0 obj -<< /S /GoTo /D [545 0 R /Fit] >> -% 545 0 obj +<< /S /GoTo /D (section*.110) >> +% 547 0 obj +(psb\137krylov) +% 548 0 obj +<< /S /GoTo /D [549 0 R /Fit] >> +% 549 0 obj << /Type /Page -/Contents 547 0 R -/Resources 546 0 R +/Contents 551 0 R +/Resources 550 0 R /MediaBox [0 0 595.276 841.89] -/Parent 554 0 R +/Parent 558 0 R >> -% 548 0 obj +% 552 0 obj << -/D [545 0 R /XYZ 98.895 753.953 null] +/D [549 0 R /XYZ 98.895 753.953 null] >> -% 549 0 obj +% 553 0 obj << -/D [545 0 R /XYZ 99.895 716.092 null] +/D [549 0 R /XYZ 99.895 716.092 null] >> % 3 0 obj << -/D [545 0 R /XYZ 99.895 716.092 null] +/D [549 0 R /XYZ 99.895 716.092 null] >> -% 546 0 obj +% 550 0 obj << -/Font << /F16 550 0 R /F18 551 0 R /F27 552 0 R /F8 553 0 R >> +/Font << /F16 554 0 R /F18 555 0 R /F27 556 0 R /F8 557 0 R >> /ProcSet [ /PDF /Text ] >> -% 556 0 obj +% 560 0 obj << /Type /Page -/Contents 557 0 R -/Resources 555 0 R +/Contents 561 0 R +/Resources 559 0 R /MediaBox [0 0 595.276 841.89] -/Parent 554 0 R +/Parent 558 0 R >> -% 558 0 obj +% 562 0 obj << -/D [556 0 R /XYZ 149.705 753.953 null] +/D [560 0 R /XYZ 149.705 753.953 null] >> -% 555 0 obj +% 559 0 obj << -/Font << /F8 553 0 R >> +/Font << /F8 557 0 R >> /ProcSet [ /PDF /Text ] >> -% 607 0 obj +% 611 0 obj << /Type /Page -/Contents 608 0 R -/Resources 606 0 R +/Contents 612 0 R +/Resources 610 0 R /MediaBox [0 0 595.276 841.89] -/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 ] +/Parent 558 0 R +/Annots [ 563 0 R 564 0 R 565 0 R 566 0 R 567 0 R 568 0 R 569 0 R 570 0 R 571 0 R 572 0 R 573 0 R 574 0 R 575 0 R 576 0 R 577 0 R 578 0 R 579 0 R 580 0 R 581 0 R 582 0 R 583 0 R 584 0 R 585 0 R 586 0 R 587 0 R 588 0 R 589 0 R 590 0 R 591 0 R 592 0 R 593 0 R 594 0 R 595 0 R 596 0 R 597 0 R 598 0 R 599 0 R 600 0 R 601 0 R 602 0 R 603 0 R 604 0 R 605 0 R 606 0 R 607 0 R 608 0 R ] >> -% 559 0 obj +% 563 0 obj << /Type /Annot /Subtype /Link @@ -1306,7 +1303,7 @@ stream /Rect [98.899 683.007 179.001 691.918] /A << /S /GoTo /D (section.1) >> >> -% 560 0 obj +% 564 0 obj << /Type /Annot /Subtype /Link @@ -1314,7 +1311,7 @@ stream /Rect [98.899 660.882 202.863 669.793] /A << /S /GoTo /D (section.2) >> >> -% 561 0 obj +% 565 0 obj << /Type /Annot /Subtype /Link @@ -1322,7 +1319,7 @@ stream /Rect [113.843 648.802 225.868 657.713] /A << /S /GoTo /D (subsection.2.1) >> >> -% 562 0 obj +% 566 0 obj << /Type /Annot /Subtype /Link @@ -1330,7 +1327,7 @@ stream /Rect [113.843 634.785 210.675 645.633] /A << /S /GoTo /D (subsection.2.2) >> >> -% 563 0 obj +% 567 0 obj << /Type /Annot /Subtype /Link @@ -1338,7 +1335,7 @@ stream /Rect [113.843 622.706 232.122 633.554] /A << /S /GoTo /D (subsection.2.3) >> >> -% 564 0 obj +% 568 0 obj << /Type /Annot /Subtype /Link @@ -1346,7 +1343,7 @@ stream /Rect [136.757 610.626 296.409 621.474] /A << /S /GoTo /D (subsubsection.2.3.1) >> >> -% 565 0 obj +% 569 0 obj << /Type /Annot /Subtype /Link @@ -1354,7 +1351,7 @@ stream /Rect [113.843 598.546 227.777 609.394] /A << /S /GoTo /D (subsection.2.4) >> >> -% 566 0 obj +% 570 0 obj << /Type /Annot /Subtype /Link @@ -1362,7 +1359,7 @@ stream /Rect [98.899 578.358 258.112 587.269] /A << /S /GoTo /D (section.3) >> >> -% 567 0 obj +% 571 0 obj << /Type /Annot /Subtype /Link @@ -1370,7 +1367,7 @@ stream /Rect [113.843 564.341 249.529 575.189] /A << /S /GoTo /D (subsection.3.1) >> >> -% 568 0 obj +% 572 0 obj << /Type /Annot /Subtype /Link @@ -1378,7 +1375,7 @@ stream /Rect [136.757 552.261 257.001 563.11] /A << /S /GoTo /D (subsubsection.3.1.1) >> >> -% 569 0 obj +% 573 0 obj << /Type /Annot /Subtype /Link @@ -1386,7 +1383,7 @@ stream /Rect [168.638 540.182 231.021 551.03] /A << /S /GoTo /D (section*.2) >> >> -% 570 0 obj +% 574 0 obj << /Type /Annot /Subtype /Link @@ -1394,7 +1391,7 @@ stream /Rect [168.638 528.102 227.395 538.95] /A << /S /GoTo /D (section*.3) >> >> -% 571 0 obj +% 575 0 obj << /Type /Annot /Subtype /Link @@ -1402,7 +1399,7 @@ stream /Rect [168.638 516.022 236.832 526.871] /A << /S /GoTo /D (section*.4) >> >> -% 572 0 obj +% 576 0 obj << /Type /Annot /Subtype /Link @@ -1410,7 +1407,7 @@ stream /Rect [168.638 503.943 233.207 514.791] /A << /S /GoTo /D (section*.5) >> >> -% 573 0 obj +% 577 0 obj << /Type /Annot /Subtype /Link @@ -1418,7 +1415,7 @@ stream /Rect [168.638 491.863 236.832 502.711] /A << /S /GoTo /D (section*.6) >> >> -% 574 0 obj +% 578 0 obj << /Type /Annot /Subtype /Link @@ -1426,7 +1423,7 @@ stream /Rect [168.638 479.783 219.602 490.133] /A << /S /GoTo /D (section*.7) >> >> -% 575 0 obj +% 579 0 obj << /Type /Annot /Subtype /Link @@ -1434,93 +1431,77 @@ stream /Rect [168.638 469.641 195.537 478.552] /A << /S /GoTo /D (section*.8) >> >> -% 576 0 obj +% 580 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [168.638 455.624 284.769 466.472] +/Rect [168.638 457.561 192.769 466.361] /A << /S /GoTo /D (section*.9) >> >> -% 577 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [168.638 443.544 283.717 454.392] -/A << /S /GoTo /D (section*.10) >> ->> -% 578 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [136.757 433.402 248.228 442.313] -/A << /S /GoTo /D (subsubsection.3.1.2) >> ->> endstream endobj -661 0 obj +665 0 obj << -/Length 20816 +/Length 20672 >> stream 0 g 0 G 0 g 0 G 0 0 1 rg 0 0 1 RG BT -/F8 9.9626 Tf 220.443 706.129 Td [(clone)]TJ +/F8 9.9626 Tf 220.443 706.129 Td [(get)]TJ +ET +q +1 0 0 1 234.325 706.328 cm +[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +Q +BT +/F8 9.9626 Tf 237.314 706.129 Td [(v)28(ect)]TJ 0 g 0 G - [-361(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ + [-668(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G [-1084(25)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG - -54.794 -12.08 Td [(3.4)-1022(Preconditioner)-333(data)-334(structure)]TJ + -16.871 -12.08 Td [(clone)]TJ 0 g 0 G - [-585(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ + [-361(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G - [-1084(25)]TJ + [-1084(26)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG - 0 -12.08 Td [(3.5)-1022(Heap)-334(dat)1(a)-334(structure)]TJ + -54.794 -12.08 Td [(3.4)-1022(Preconditioner)-333(data)-334(structure)]TJ 0 g 0 G - [-855(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)]TJ + [-585(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G [-1084(26)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG -/F27 9.9626 Tf -14.944 -22.125 Td [(4)-925(Computational)-383(routi)-1(n)1(es)]TJ + 0 -12.079 Td [(3.5)-1022(Heap)-334(dat)1(a)-334(structure)]TJ 0 g 0 G - [-19887(27)]TJ -0 0 1 rg 0 0 1 RG -/F8 9.9626 Tf 14.944 -12.08 Td [(psb)]TJ -ET -q -1 0 0 1 181.246 647.964 cm -[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S -Q -BT -/F8 9.9626 Tf 184.235 647.764 Td [(geaxpb)28(y)]TJ + [-855(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)]TJ 0 g 0 G - [-301(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ + [-1084(26)]TJ 0 g 0 G - [-1084(28)]TJ +0 0 1 rg 0 0 1 RG +/F27 9.9626 Tf -14.944 -22.126 Td [(4)-925(Computational)-383(routi)-1(n)1(es)]TJ 0 g 0 G + [-19887(28)]TJ 0 0 1 rg 0 0 1 RG - -18.586 -12.079 Td [(psb)]TJ +/F8 9.9626 Tf 14.944 -12.079 Td [(psb)]TJ ET q 1 0 0 1 181.246 635.884 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 184.235 635.685 Td [(gedot)]TJ +/F8 9.9626 Tf 184.235 635.685 Td [(geaxpb)28(y)]TJ 0 g 0 G - [-718(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ + [-301(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G - [-1083(30)]TJ + [-1084(29)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG -18.586 -12.08 Td [(psb)]TJ @@ -1530,11 +1511,11 @@ q []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 184.235 623.605 Td [(gedots)]TJ +/F8 9.9626 Tf 184.235 623.605 Td [(gedot)]TJ 0 g 0 G - [-323(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ + [-718(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G - [-1084(32)]TJ + [-1083(31)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG -18.586 -12.08 Td [(psb)]TJ @@ -1544,11 +1525,11 @@ q []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 184.235 611.525 Td [(normi)]TJ +/F8 9.9626 Tf 184.235 611.525 Td [(gedots)]TJ 0 g 0 G - [-548(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ + [-323(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G - [-1084(34)]TJ + [-1084(33)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG -18.586 -12.079 Td [(psb)]TJ @@ -1558,9 +1539,9 @@ q []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 184.235 599.446 Td [(geamaxs)]TJ +/F8 9.9626 Tf 184.235 599.446 Td [(normi)]TJ 0 g 0 G - [-962(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ + [-548(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G [-1084(35)]TJ 0 g 0 G @@ -1572,9 +1553,9 @@ q []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 184.235 587.366 Td [(norm1)]TJ +/F8 9.9626 Tf 184.235 587.366 Td [(geamaxs)]TJ 0 g 0 G - [-326(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ + [-962(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G [-1084(36)]TJ 0 g 0 G @@ -1586,9 +1567,9 @@ q []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 184.235 575.286 Td [(geasums)]TJ +/F8 9.9626 Tf 184.235 575.286 Td [(norm1)]TJ 0 g 0 G - [-262(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ + [-326(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G [-1084(37)]TJ 0 g 0 G @@ -1600,11 +1581,11 @@ q []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 184.235 563.206 Td [(norm2)]TJ +/F8 9.9626 Tf 184.235 563.206 Td [(geasums)]TJ 0 g 0 G - [-326(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ + [-262(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G - [-1084(39)]TJ + [-1084(38)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG -18.586 -12.079 Td [(psb)]TJ @@ -1614,9 +1595,9 @@ q []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 184.235 551.127 Td [(genrm2s)]TJ +/F8 9.9626 Tf 184.235 551.127 Td [(norm2)]TJ 0 g 0 G - [-265(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ + [-326(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G [-1084(40)]TJ 0 g 0 G @@ -1628,9 +1609,9 @@ q []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 184.235 539.047 Td [(norm1)]TJ +/F8 9.9626 Tf 184.235 539.047 Td [(genrm2s)]TJ 0 g 0 G - [-326(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ + [-265(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G [-1084(41)]TJ 0 g 0 G @@ -1642,9 +1623,9 @@ q []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 184.235 526.967 Td [(normi)]TJ +/F8 9.9626 Tf 184.235 526.967 Td [(norm1)]TJ 0 g 0 G - [-548(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ + [-326(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G [-1084(42)]TJ 0 g 0 G @@ -1656,9 +1637,9 @@ q []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 184.235 514.888 Td [(spmm)]TJ +/F8 9.9626 Tf 184.235 514.888 Td [(normi)]TJ 0 g 0 G - [-490(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ + [-548(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G [-1084(43)]TJ 0 g 0 G @@ -1670,43 +1651,43 @@ q []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 184.235 502.808 Td [(spsm)]TJ -0 g 0 G - [-929(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ +/F8 9.9626 Tf 184.235 502.808 Td [(spmm)]TJ 0 g 0 G - [-1084(45)]TJ + [-490(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G -0 0 1 rg 0 0 1 RG -/F27 9.9626 Tf -33.53 -22.125 Td [(5)-925(Comm)32(unication)-383(r)-1(ou)1(t)-1(ines)]TJ + [-1084(44)]TJ 0 g 0 G - [-19454(48)]TJ 0 0 1 rg 0 0 1 RG -/F8 9.9626 Tf 14.944 -12.08 Td [(psb)]TJ + -18.586 -12.08 Td [(psb)]TJ ET q -1 0 0 1 181.246 468.802 cm +1 0 0 1 181.246 490.928 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 184.235 468.603 Td [(halo)]TJ +/F8 9.9626 Tf 184.235 490.728 Td [(spsm)]TJ 0 g 0 G - [-495(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ + [-929(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G - [-1084(49)]TJ + [-1084(46)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG - -18.586 -12.08 Td [(psb)]TJ +/F27 9.9626 Tf -33.53 -22.125 Td [(5)-925(Comm)32(unication)-383(r)-1(ou)1(t)-1(ines)]TJ +0 g 0 G + [-19454(49)]TJ +0 0 1 rg 0 0 1 RG +/F8 9.9626 Tf 14.944 -12.08 Td [(psb)]TJ ET q 1 0 0 1 181.246 456.722 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 184.235 456.523 Td [(o)28(vrl)]TJ +/F8 9.9626 Tf 184.235 456.523 Td [(halo)]TJ 0 g 0 G - [-659(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)]TJ + [-495(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G - [-1084(52)]TJ + [-1084(50)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG -18.586 -12.079 Td [(psb)]TJ @@ -1716,11 +1697,11 @@ q []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 184.235 444.444 Td [(gather)]TJ +/F8 9.9626 Tf 184.235 444.444 Td [(o)28(vrl)]TJ 0 g 0 G - [-326(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ + [-659(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)]TJ 0 g 0 G - [-1084(56)]TJ + [-1084(53)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG -18.586 -12.08 Td [(psb)]TJ @@ -1730,43 +1711,43 @@ q []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 184.235 432.364 Td [(scatter)]TJ -0 g 0 G - [-932(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ +/F8 9.9626 Tf 184.235 432.364 Td [(gather)]TJ 0 g 0 G - [-1083(58)]TJ + [-326(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G -0 0 1 rg 0 0 1 RG -/F27 9.9626 Tf -33.53 -22.126 Td [(6)-925(Data)-383(managem)-1(e)1(n)31(t)-383(routines)]TJ + [-1084(57)]TJ 0 g 0 G - [-18205(60)]TJ 0 0 1 rg 0 0 1 RG -/F8 9.9626 Tf 14.944 -12.079 Td [(psb)]TJ + -18.586 -12.08 Td [(psb)]TJ ET q -1 0 0 1 181.246 398.358 cm +1 0 0 1 181.246 420.483 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 184.235 398.159 Td [(cdall)]TJ +/F8 9.9626 Tf 184.235 420.284 Td [(scatter)]TJ 0 g 0 G - [-273(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ + [-932(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G - [-1084(60)]TJ + [-1083(59)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG - -18.586 -12.08 Td [(psb)]TJ +/F27 9.9626 Tf -33.53 -22.125 Td [(6)-925(Data)-383(managem)-1(e)1(n)31(t)-383(routines)]TJ +0 g 0 G + [-18205(61)]TJ +0 0 1 rg 0 0 1 RG +/F8 9.9626 Tf 14.944 -12.08 Td [(psb)]TJ ET q 1 0 0 1 181.246 386.278 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 184.235 386.079 Td [(cdins)]TJ +/F8 9.9626 Tf 184.235 386.079 Td [(cdall)]TJ 0 g 0 G - [-879(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ + [-273(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G - [-1084(64)]TJ + [-1084(61)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG -18.586 -12.08 Td [(psb)]TJ @@ -1776,11 +1757,11 @@ q []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 184.235 373.999 Td [(cdasb)]TJ +/F8 9.9626 Tf 184.235 373.999 Td [(cdins)]TJ 0 g 0 G - [-657(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ + [-879(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G - [-1083(66)]TJ + [-1084(65)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG -18.586 -12.079 Td [(psb)]TJ @@ -1790,11 +1771,11 @@ q []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 184.235 361.92 Td [(cdcp)28(y)]TJ +/F8 9.9626 Tf 184.235 361.92 Td [(cdasb)]TJ 0 g 0 G - [-607(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ + [-657(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G - [-1084(67)]TJ + [-1083(67)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG -18.586 -12.08 Td [(psb)]TJ @@ -1804,9 +1785,9 @@ q []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 184.235 349.84 Td [(cdfree)]TJ +/F8 9.9626 Tf 184.235 349.84 Td [(cdcp)28(y)]TJ 0 g 0 G - [-520(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)]TJ + [-607(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G [-1084(68)]TJ 0 g 0 G @@ -1818,9 +1799,9 @@ q []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 184.235 337.76 Td [(cdbldext)]TJ +/F8 9.9626 Tf 184.235 337.76 Td [(cdfree)]TJ 0 g 0 G - [-912(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ + [-520(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)]TJ 0 g 0 G [-1084(69)]TJ 0 g 0 G @@ -1832,11 +1813,11 @@ q []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 184.235 325.681 Td [(spall)]TJ +/F8 9.9626 Tf 184.235 325.681 Td [(cdbldext)]TJ 0 g 0 G - [-323(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ + [-912(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G - [-1084(71)]TJ + [-1084(70)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG -18.586 -12.08 Td [(psb)]TJ @@ -1846,9 +1827,9 @@ q []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 184.235 313.601 Td [(spins)]TJ +/F8 9.9626 Tf 184.235 313.601 Td [(spall)]TJ 0 g 0 G - [-929(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ + [-323(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G [-1084(72)]TJ 0 g 0 G @@ -1860,11 +1841,11 @@ q []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 184.235 301.521 Td [(spasb)]TJ +/F8 9.9626 Tf 184.235 301.521 Td [(spins)]TJ 0 g 0 G - [-707(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ + [-929(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G - [-1083(74)]TJ + [-1084(73)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG -18.586 -12.08 Td [(psb)]TJ @@ -1874,11 +1855,11 @@ q []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 184.235 289.441 Td [(spfree)]TJ +/F8 9.9626 Tf 184.235 289.441 Td [(spasb)]TJ 0 g 0 G - [-570(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)]TJ + [-707(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G - [-1084(76)]TJ + [-1083(75)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG -18.586 -12.079 Td [(psb)]TJ @@ -1888,9 +1869,9 @@ q []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 184.235 277.362 Td [(sprn)]TJ +/F8 9.9626 Tf 184.235 277.362 Td [(spfree)]TJ 0 g 0 G - [-431(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)]TJ + [-570(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)]TJ 0 g 0 G [-1084(77)]TJ 0 g 0 G @@ -1902,9 +1883,9 @@ q []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 184.235 265.282 Td [(geall)]TJ +/F8 9.9626 Tf 184.235 265.282 Td [(sprn)]TJ 0 g 0 G - [-329(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ + [-431(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)]TJ 0 g 0 G [-1084(78)]TJ 0 g 0 G @@ -1916,9 +1897,9 @@ q []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 184.235 253.202 Td [(geins)]TJ +/F8 9.9626 Tf 184.235 253.202 Td [(geall)]TJ 0 g 0 G - [-934(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ + [-329(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G [-1084(79)]TJ 0 g 0 G @@ -1930,11 +1911,11 @@ q []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 184.235 241.123 Td [(geasb)]TJ +/F8 9.9626 Tf 184.235 241.123 Td [(geins)]TJ 0 g 0 G - [-712(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ + [-934(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G - [-1084(81)]TJ + [-1084(80)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG -18.586 -12.08 Td [(psb)]TJ @@ -1944,9 +1925,9 @@ q []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 184.235 229.043 Td [(gefree)]TJ +/F8 9.9626 Tf 184.235 229.043 Td [(geasb)]TJ 0 g 0 G - [-576(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ + [-712(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G [-1084(82)]TJ 0 g 0 G @@ -1958,9 +1939,9 @@ q []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 184.235 216.963 Td [(gelp)]TJ +/F8 9.9626 Tf 184.235 216.963 Td [(gefree)]TJ 0 g 0 G - [-551(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ + [-576(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G [-1084(83)]TJ 0 g 0 G @@ -1972,161 +1953,154 @@ q []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 184.235 204.884 Td [(glob)]TJ -ET -q -1 0 0 1 203.097 205.083 cm -[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S -Q -BT -/F8 9.9626 Tf 206.086 204.884 Td [(to)]TJ -ET -q -1 0 0 1 215.54 205.083 cm -[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S -Q -BT -/F8 9.9626 Tf 218.528 204.884 Td [(lo)-28(c)]TJ +/F8 9.9626 Tf 184.235 204.884 Td [(gelp)]TJ 0 g 0 G - [-747(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ + [-551(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G - [-1083(84)]TJ + [-1084(84)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG - -52.879 -12.08 Td [(psb)]TJ + -18.586 -12.08 Td [(psb)]TJ ET q 1 0 0 1 181.246 193.003 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 184.235 192.804 Td [(lo)-28(c)]TJ +/F8 9.9626 Tf 184.235 192.804 Td [(glob)]TJ ET q -1 0 0 1 197.286 193.003 cm +1 0 0 1 203.097 193.003 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 200.275 192.804 Td [(to)]TJ +/F8 9.9626 Tf 206.086 192.804 Td [(to)]TJ ET q -1 0 0 1 209.728 193.003 cm +1 0 0 1 215.54 193.003 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 212.717 192.804 Td [(glob)]TJ +/F8 9.9626 Tf 218.528 192.804 Td [(lo)-28(c)]TJ 0 g 0 G - [-748(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ + [-747(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G - [-1083(86)]TJ + [-1083(85)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG - -47.068 -12.08 Td [(psb)]TJ + -52.879 -12.08 Td [(psb)]TJ ET q 1 0 0 1 181.246 180.923 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 184.235 180.724 Td [(is)]TJ +/F8 9.9626 Tf 184.235 180.724 Td [(lo)-28(c)]TJ +ET +q +1 0 0 1 197.286 180.923 cm +[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +Q +BT +/F8 9.9626 Tf 200.275 180.724 Td [(to)]TJ ET q -1 0 0 1 191.53 180.923 cm +1 0 0 1 209.728 180.923 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 194.518 180.724 Td [(o)28(wned)]TJ +/F8 9.9626 Tf 212.717 180.724 Td [(glob)]TJ 0 g 0 G - [-880(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ + [-748(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G - [-1084(87)]TJ + [-1083(87)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG - -28.869 -12.08 Td [(psb)]TJ + -47.068 -12.08 Td [(psb)]TJ ET q 1 0 0 1 181.246 168.844 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 184.235 168.644 Td [(o)28(wned)]TJ +/F8 9.9626 Tf 184.235 168.644 Td [(is)]TJ ET q -1 0 0 1 212.23 168.844 cm +1 0 0 1 191.53 168.844 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 215.219 168.644 Td [(index)]TJ +/F8 9.9626 Tf 194.518 168.644 Td [(o)28(wned)]TJ 0 g 0 G - [-746(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ + [-880(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G - [-1083(88)]TJ + [-1084(88)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG - -49.57 -12.079 Td [(psb)]TJ + -28.869 -12.079 Td [(psb)]TJ ET q 1 0 0 1 181.246 156.764 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 184.235 156.565 Td [(is)]TJ +/F8 9.9626 Tf 184.235 156.565 Td [(o)28(wned)]TJ ET q -1 0 0 1 191.53 156.764 cm +1 0 0 1 212.23 156.764 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 194.518 156.565 Td [(lo)-28(cal)]TJ +/F8 9.9626 Tf 215.219 156.565 Td [(index)]TJ 0 g 0 G - [-824(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ + [-746(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G - [-1084(89)]TJ + [-1083(89)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG - -28.869 -12.08 Td [(psb)]TJ + -49.57 -12.08 Td [(psb)]TJ ET q 1 0 0 1 181.246 144.684 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 184.235 144.485 Td [(lo)-28(cal)]TJ +/F8 9.9626 Tf 184.235 144.485 Td [(is)]TJ ET q -1 0 0 1 205.035 144.684 cm +1 0 0 1 191.53 144.684 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 208.023 144.485 Td [(index)]TJ +/F8 9.9626 Tf 194.518 144.485 Td [(lo)-28(cal)]TJ 0 g 0 G - [-691(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ + [-824(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G [-1084(90)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG - -42.374 -12.08 Td [(psb)]TJ + -28.869 -12.08 Td [(psb)]TJ ET q 1 0 0 1 181.246 132.605 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 184.235 132.405 Td [(get)]TJ +/F8 9.9626 Tf 184.235 132.405 Td [(lo)-28(cal)]TJ ET q -1 0 0 1 198.116 132.605 cm +1 0 0 1 205.035 132.605 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 201.105 132.405 Td [(b)-28(oundary)]TJ +/F8 9.9626 Tf 208.023 132.405 Td [(index)]TJ 0 g 0 G - [-354(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ + [-691(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G - [-1083(91)]TJ + [-1084(91)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG - -35.456 -12.079 Td [(psb)]TJ + -42.374 -12.079 Td [(psb)]TJ ET q 1 0 0 1 181.246 120.525 cm @@ -2140,11 +2114,11 @@ q []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 201.105 120.326 Td [(o)28(v)28(erlap)]TJ +/F8 9.9626 Tf 201.105 120.326 Td [(b)-28(oundary)]TJ 0 g 0 G - [-605(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ + [-354(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G - [-1084(92)]TJ + [-1083(92)]TJ 0 g 0 G 0 g 0 G 118.688 -29.888 Td [(ii)]TJ @@ -2153,9 +2127,9 @@ ET endstream endobj -705 0 obj +710 0 obj << -/Length 17009 +/Length 17570 >> stream 0 g 0 G @@ -2169,1112 +2143,1149 @@ q []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 133.425 706.129 Td [(sp)]TJ +/F8 9.9626 Tf 133.425 706.129 Td [(get)]TJ ET q -1 0 0 1 143.488 706.328 cm +1 0 0 1 147.307 706.328 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 146.476 706.129 Td [(getro)28(w)]TJ +/F8 9.9626 Tf 150.295 706.129 Td [(o)28(v)28(e)-1(r)1(lap)]TJ 0 g 0 G - [-433(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ + [-605(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G [-1084(93)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG - -31.637 -11.955 Td [(psb)]TJ + -35.456 -11.955 Td [(psb)]TJ ET q 1 0 0 1 130.436 694.373 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 133.425 694.174 Td [(sizeof)]TJ +/F8 9.9626 Tf 133.425 694.174 Td [(sp)]TJ +ET +q +1 0 0 1 143.488 694.373 cm +[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +Q +BT +/F8 9.9626 Tf 146.476 694.174 Td [(getro)28(w)]TJ +0 g 0 G + [-433(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ +0 g 0 G + [-1084(94)]TJ +0 g 0 G +0 0 1 rg 0 0 1 RG + -31.637 -11.955 Td [(psb)]TJ +ET +q +1 0 0 1 130.436 682.418 cm +[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +Q +BT +/F8 9.9626 Tf 133.425 682.219 Td [(sizeof)]TJ 0 g 0 G [-740(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G - [-1084(95)]TJ + [-1084(96)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG - -18.586 -11.955 Td [(Sorting)-333(utilities)]TJ + -18.586 -11.956 Td [(Sorting)-333(utilities)]TJ 0 g 0 G [-519(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G - [-1083(96)]TJ + [-1083(97)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG -/F27 9.9626 Tf -14.944 -21.918 Td [(7)-925(P)32(arallel)-384(en)32(vironmen)32(t)-383(routines)]TJ +/F27 9.9626 Tf -14.944 -21.917 Td [(7)-925(P)32(arallel)-384(en)32(vironmen)32(t)-383(routines)]TJ 0 g 0 G - [-16891(98)]TJ + [-16891(99)]TJ 0 0 1 rg 0 0 1 RG -/F8 9.9626 Tf 14.944 -11.955 Td [(psb)]TJ +/F8 9.9626 Tf 14.944 -11.956 Td [(psb)]TJ ET q -1 0 0 1 130.436 648.545 cm +1 0 0 1 130.436 636.59 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 133.425 648.346 Td [(init)]TJ +/F8 9.9626 Tf 133.425 636.39 Td [(init)]TJ 0 g 0 G [-829(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G - [-1083(99)]TJ + [-583(100)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG - -18.586 -11.956 Td [(psb)]TJ + -18.586 -11.955 Td [(psb)]TJ ET q -1 0 0 1 130.436 636.59 cm +1 0 0 1 130.436 624.634 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 133.425 636.39 Td [(info)]TJ +/F8 9.9626 Tf 133.425 624.435 Td [(info)]TJ 0 g 0 G [-690(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G - [-584(100)]TJ + [-584(101)]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 624.634 cm +1 0 0 1 130.436 612.679 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 133.425 624.435 Td [(exit)]TJ +/F8 9.9626 Tf 133.425 612.48 Td [(exit)]TJ 0 g 0 G [-690(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G - [-584(101)]TJ + [-584(102)]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 612.679 cm +1 0 0 1 130.436 600.724 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 133.425 612.48 Td [(get)]TJ +/F8 9.9626 Tf 133.425 600.525 Td [(get)]TJ ET q -1 0 0 1 147.307 612.679 cm +1 0 0 1 147.307 600.724 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 150.295 612.48 Td [(mpicomm)]TJ +/F8 9.9626 Tf 150.295 600.525 Td [(mpicomm)]TJ 0 g 0 G [-1024(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G - [-583(102)]TJ + [-583(103)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG -35.456 -11.955 Td [(psb)]TJ ET q -1 0 0 1 130.436 600.724 cm +1 0 0 1 130.436 588.769 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 133.425 600.525 Td [(get)]TJ +/F8 9.9626 Tf 133.425 588.57 Td [(get)]TJ ET q -1 0 0 1 147.307 600.724 cm +1 0 0 1 147.307 588.769 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 150.295 600.525 Td [(rank)]TJ +/F8 9.9626 Tf 150.295 588.57 Td [(rank)]TJ 0 g 0 G [-994(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G - [-584(103)]TJ + [-584(104)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG -35.456 -11.955 Td [(psb)]TJ ET q -1 0 0 1 130.436 588.769 cm +1 0 0 1 130.436 576.814 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 133.425 588.57 Td [(wtime)]TJ +/F8 9.9626 Tf 133.425 576.615 Td [(wtime)]TJ 0 g 0 G [-440(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G - [-584(104)]TJ + [-584(105)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG - -18.586 -11.955 Td [(psb)]TJ + -18.586 -11.956 Td [(psb)]TJ ET q -1 0 0 1 130.436 576.814 cm +1 0 0 1 130.436 564.859 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 133.425 576.615 Td [(barrier)]TJ +/F8 9.9626 Tf 133.425 564.659 Td [(barrier)]TJ 0 g 0 G [-931(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)]TJ 0 g 0 G - [-584(105)]TJ + [-584(106)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG - -18.586 -11.956 Td [(psb)]TJ + -18.586 -11.955 Td [(psb)]TJ ET q -1 0 0 1 130.436 564.859 cm +1 0 0 1 130.436 552.903 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 133.425 564.659 Td [(ab)-28(ort)]TJ +/F8 9.9626 Tf 133.425 552.704 Td [(ab)-28(ort)]TJ 0 g 0 G [-742(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G - [-584(106)]TJ + [-584(107)]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 552.903 cm +1 0 0 1 130.436 540.948 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 133.425 552.704 Td [(b)-28(cast)]TJ +/F8 9.9626 Tf 133.425 540.749 Td [(b)-28(cast)]TJ 0 g 0 G [-795(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G - [-584(107)]TJ + [-584(108)]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 540.948 cm +1 0 0 1 130.436 528.993 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 133.425 540.749 Td [(sum)]TJ +/F8 9.9626 Tf 133.425 528.794 Td [(sum)]TJ 0 g 0 G [-546(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)]TJ 0 g 0 G - [-584(108)]TJ + [-584(109)]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 528.993 cm +1 0 0 1 130.436 517.038 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 133.425 528.794 Td [(max)]TJ +/F8 9.9626 Tf 133.425 516.839 Td [(max)]TJ 0 g 0 G [-468(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G - [-583(109)]TJ + [-583(110)]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 517.038 cm +1 0 0 1 130.436 505.083 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 133.425 516.839 Td [(min)]TJ +/F8 9.9626 Tf 133.425 504.884 Td [(min)]TJ 0 g 0 G [-662(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G - [-584(110)]TJ + [-584(111)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG - -18.586 -11.955 Td [(psb)]TJ + -18.586 -11.956 Td [(psb)]TJ ET q -1 0 0 1 130.436 505.083 cm +1 0 0 1 130.436 493.128 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 133.425 504.884 Td [(amx)]TJ +/F8 9.9626 Tf 133.425 492.928 Td [(amx)]TJ 0 g 0 G [-468(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G - [-583(111)]TJ + [-583(112)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG - -18.586 -11.956 Td [(psb)]TJ + -18.586 -11.955 Td [(psb)]TJ ET q -1 0 0 1 130.436 493.128 cm +1 0 0 1 130.436 481.172 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 133.425 492.928 Td [(amn)]TJ +/F8 9.9626 Tf 133.425 480.973 Td [(amn)]TJ 0 g 0 G [-440(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G - [-584(112)]TJ + [-584(113)]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 481.172 cm +1 0 0 1 130.436 469.217 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 133.425 480.973 Td [(snd)]TJ +/F8 9.9626 Tf 133.425 469.018 Td [(snd)]TJ 0 g 0 G [-823(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G - [-584(113)]TJ + [-584(114)]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 469.217 cm +1 0 0 1 130.436 457.262 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 133.425 469.018 Td [(rcv)]TJ +/F8 9.9626 Tf 133.425 457.063 Td [(rcv)]TJ 0 g 0 G [-965(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G - [-584(114)]TJ + [-584(115)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG /F27 9.9626 Tf -33.53 -21.918 Td [(8)-925(Error)-383(handling)]TJ 0 g 0 G - [-23812(115)]TJ + [-23812(116)]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 435.344 cm +1 0 0 1 130.436 423.389 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 133.425 435.145 Td [(errpush)]TJ +/F8 9.9626 Tf 133.425 423.19 Td [(errpush)]TJ 0 g 0 G [-595(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G - [-584(117)]TJ + [-584(118)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG -18.586 -11.955 Td [(psb)]TJ ET q -1 0 0 1 130.436 423.389 cm +1 0 0 1 130.436 411.434 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 133.425 423.19 Td [(error)]TJ +/F8 9.9626 Tf 133.425 411.235 Td [(error)]TJ 0 g 0 G [-987(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G - [-584(118)]TJ + [-584(119)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG -18.586 -11.955 Td [(psb)]TJ ET q -1 0 0 1 130.436 411.434 cm +1 0 0 1 130.436 399.479 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 133.425 411.235 Td [(set)]TJ +/F8 9.9626 Tf 133.425 399.28 Td [(set)]TJ ET q -1 0 0 1 146.255 411.434 cm +1 0 0 1 146.255 399.479 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 149.244 411.235 Td [(errv)28(erb)-28(osit)28(y)]TJ +/F8 9.9626 Tf 149.244 399.28 Td [(errv)28(erb)-28(osit)28(y)]TJ 0 g 0 G [-977(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G - [-584(119)]TJ + [-584(120)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG - -34.405 -11.955 Td [(psb)]TJ + -34.405 -11.956 Td [(psb)]TJ ET q -1 0 0 1 130.436 399.479 cm +1 0 0 1 130.436 387.524 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 133.425 399.28 Td [(set)]TJ +/F8 9.9626 Tf 133.425 387.324 Td [(set)]TJ ET q -1 0 0 1 146.255 399.479 cm +1 0 0 1 146.255 387.524 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 149.244 399.28 Td [(erraction)]TJ +/F8 9.9626 Tf 149.244 387.324 Td [(erraction)]TJ 0 g 0 G [-735(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)]TJ 0 g 0 G - [-584(120)]TJ + [-584(121)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG -/F27 9.9626 Tf -49.349 -21.918 Td [(9)-925(Utilities)]TJ +/F27 9.9626 Tf -49.349 -21.917 Td [(9)-925(Utilities)]TJ 0 g 0 G - [-27238(121)]TJ + [-27238(122)]TJ 0 0 1 rg 0 0 1 RG -/F8 9.9626 Tf 14.944 -11.955 Td [(h)28(b)]TJ +/F8 9.9626 Tf 14.944 -11.956 Td [(h)28(b)]TJ ET q -1 0 0 1 126.23 365.606 cm +1 0 0 1 126.23 353.651 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 129.219 365.407 Td [(read)]TJ +/F8 9.9626 Tf 129.219 353.451 Td [(read)]TJ 0 g 0 G [-859(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G - [-584(122)]TJ + [-584(123)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG - -14.38 -11.956 Td [(h)28(b)]TJ + -14.38 -11.955 Td [(h)28(b)]TJ ET q -1 0 0 1 126.23 353.651 cm +1 0 0 1 126.23 341.695 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 129.219 353.451 Td [(write)]TJ +/F8 9.9626 Tf 129.219 341.496 Td [(write)]TJ 0 g 0 G [-526(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G - [-584(123)]TJ + [-584(124)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG -14.38 -11.955 Td [(mm)]TJ ET q -1 0 0 1 132.042 341.695 cm +1 0 0 1 132.042 329.74 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 135.03 341.496 Td [(mat)]TJ +/F8 9.9626 Tf 135.03 329.541 Td [(mat)]TJ ET q -1 0 0 1 152.786 341.695 cm +1 0 0 1 152.786 329.74 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 155.775 341.496 Td [(read)]TJ +/F8 9.9626 Tf 155.775 329.541 Td [(read)]TJ 0 g 0 G [-527(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G - [-584(124)]TJ + [-584(125)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG -40.936 -11.955 Td [(mm)]TJ ET q -1 0 0 1 132.042 329.74 cm +1 0 0 1 132.042 317.785 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 135.03 329.541 Td [(arra)28(y)]TJ +/F8 9.9626 Tf 135.03 317.586 Td [(arra)28(y)]TJ ET q -1 0 0 1 158.376 329.74 cm +1 0 0 1 158.376 317.785 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 161.365 329.541 Td [(read)]TJ +/F8 9.9626 Tf 161.365 317.586 Td [(read)]TJ 0 g 0 G [-744(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G - [-584(125)]TJ + [-584(126)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG -46.526 -11.955 Td [(mm)]TJ ET q -1 0 0 1 132.042 317.785 cm +1 0 0 1 132.042 305.83 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 135.03 317.586 Td [(mat)]TJ +/F8 9.9626 Tf 135.03 305.631 Td [(mat)]TJ ET q -1 0 0 1 152.786 317.785 cm +1 0 0 1 152.786 305.83 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 155.775 317.586 Td [(write)]TJ +/F8 9.9626 Tf 155.775 305.631 Td [(write)]TJ 0 g 0 G [-972(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G - [-583(126)]TJ + [-583(127)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG -40.936 -11.955 Td [(mm)]TJ ET q -1 0 0 1 132.042 305.83 cm +1 0 0 1 132.042 293.875 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 135.03 305.631 Td [(arra)28(y)]TJ +/F8 9.9626 Tf 135.03 293.676 Td [(arra)28(y)]TJ ET q -1 0 0 1 158.376 305.83 cm +1 0 0 1 158.376 293.875 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 161.365 305.631 Td [(write)]TJ +/F8 9.9626 Tf 161.365 293.676 Td [(write)]TJ 0 g 0 G [-410(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G - [-583(127)]TJ + [-583(128)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG /F27 9.9626 Tf -61.47 -21.918 Td [(10)-350(Preconditioner)-383(routi)-1(n)1(es)]TJ 0 g 0 G - [-19367(128)]TJ + [-19367(129)]TJ 0 0 1 rg 0 0 1 RG /F8 9.9626 Tf 14.944 -11.955 Td [(prec%init)]TJ 0 g 0 G [-803(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G - [-583(129)]TJ + [-583(130)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG - 0 -11.955 Td [(prec%build)]TJ + 0 -11.956 Td [(prec%build)]TJ 0 g 0 G [-858(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G - [-584(130)]TJ + [-584(131)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG - 0 -11.956 Td [(prec%apply)]TJ + 0 -11.955 Td [(prec%apply)]TJ 0 g 0 G [-664(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G - [-584(131)]TJ + [-584(133)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG 0 -11.955 Td [(prec%descr)]TJ 0 g 0 G [-850(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G - [-584(132)]TJ + [-584(134)]TJ 0 g 0 G 0 0 1 rg 0 0 1 RG 0 -11.955 Td [(clone)]TJ 0 g 0 G [-417(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G - [-583(133)]TJ + [-583(135)]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 + [-583(136)]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(135)]TJ + [-22176(137)]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 178.308 cm +1 0 0 1 130.436 166.353 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 133.425 178.109 Td [(krylo)28(v)]TJ +/F8 9.9626 Tf 133.425 166.154 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(136)]TJ + [-583(138)]TJ 0 g 0 G 0 g 0 G - 134.175 -87.671 Td [(iii)]TJ + 134.175 -75.716 Td [(iii)]TJ 0 g 0 G ET endstream endobj -611 0 obj +615 0 obj << /Type /ObjStm /N 100 /First 924 -/Length 16063 +/Length 16082 >> stream -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 +581 0 582 149 583 298 584 455 585 607 586 763 587 912 588 1061 589 1210 590 1358 +591 1507 592 1656 593 1805 594 1954 595 2103 596 2252 597 2401 598 2550 599 2699 600 2848 +601 2997 602 3145 603 3294 604 3451 605 3603 606 3759 607 3908 608 4056 613 4205 614 4261 +610 4317 664 4409 609 4911 616 5060 617 5209 618 5361 619 5513 620 5660 621 5809 622 5957 +623 6104 624 6252 625 6401 626 6550 627 6699 628 6848 629 6996 630 7145 631 7294 632 7441 +633 7590 634 7737 635 7885 636 8033 637 8181 638 8330 639 8476 640 8624 641 8773 642 8922 +643 9071 644 9220 645 9369 646 9518 647 9667 648 9816 649 9965 650 10114 651 10263 652 10412 +653 10561 654 10709 655 10857 656 11005 657 11154 658 11303 659 11451 660 11598 661 11746 666 11893 +663 11950 709 12029 662 12491 667 12640 668 12788 669 12933 670 13081 671 13226 672 13375 673 13523 +674 13672 675 13819 676 13968 677 14117 678 14266 679 14415 680 14564 681 14712 682 14861 683 15009 +% 581 0 obj << /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) >> +/Rect [168.638 443.544 284.769 454.392] +/A << /S /GoTo /D (section*.10) >> >> -% 580 0 obj +% 582 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) >> +/Rect [168.638 431.464 283.717 442.313] +/A << /S /GoTo /D (section*.11) >> >> -% 581 0 obj +% 583 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [168.638 395.225 212.767 405.575] -/A << /S /GoTo /D (section*.11) >> +/Rect [136.757 421.322 248.228 430.233] +/A << /S /GoTo /D (subsubsection.3.1.2) >> >> -% 582 0 obj +% 584 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [113.843 407.305 223.654 418.153] +/A << /S /GoTo /D (subsection.3.2) >> +>> +% 585 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [136.757 395.225 273.19 406.074] +/A << /S /GoTo /D (subsubsection.3.2.1) >> +>> +% 586 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [168.638 383.146 209.141 393.994] +/Rect [168.638 383.146 212.767 393.496] /A << /S /GoTo /D (section*.12) >> >> -% 583 0 obj +% 587 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [168.638 371.066 220.239 381.416] +/Rect [168.638 371.066 209.141 381.914] /A << /S /GoTo /D (section*.13) >> >> -% 584 0 obj +% 588 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [168.638 358.986 206.374 369.57] +/Rect [168.638 358.986 220.239 369.336] /A << /S /GoTo /D (section*.14) >> >> -% 585 0 obj +% 589 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [168.638 348.844 197.529 357.755] +/Rect [168.638 346.906 206.374 357.49] /A << /S /GoTo /D (section*.15) >> >> -% 586 0 obj +% 590 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [168.638 334.827 205.765 345.675] +/Rect [168.638 336.764 197.529 345.675] /A << /S /GoTo /D (section*.16) >> >> -% 587 0 obj +% 591 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [168.638 322.747 262.143 333.595] +/Rect [168.638 322.747 205.765 333.595] /A << /S /GoTo /D (section*.17) >> >> -% 588 0 obj +% 592 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [168.638 310.667 328.909 321.516] +/Rect [168.638 310.667 262.143 321.516] /A << /S /GoTo /D (section*.18) >> >> -% 589 0 obj +% 593 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [168.638 300.525 193.932 308.938] +/Rect [168.638 298.588 328.909 309.436] /A << /S /GoTo /D (section*.19) >> >> -% 590 0 obj +% 594 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [168.638 286.508 194.485 297.356] +/Rect [168.638 288.445 193.932 296.858] /A << /S /GoTo /D (section*.20) >> >> -% 591 0 obj +% 595 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [168.638 276.365 218.025 285.276] +/Rect [168.638 274.428 194.485 285.276] /A << /S /GoTo /D (section*.21) >> >> -% 592 0 obj +% 596 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [168.638 262.349 205.765 273.197] +/Rect [168.638 264.286 218.025 273.197] /A << /S /GoTo /D (section*.22) >> >> -% 593 0 obj +% 597 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [168.638 250.269 207.979 261.117] +/Rect [168.638 250.269 205.765 261.117] /A << /S /GoTo /D (section*.23) >> >> -% 594 0 obj +% 598 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [168.638 240.126 183.941 249.037] +/Rect [168.638 238.189 207.979 249.037] /A << /S /GoTo /D (section*.24) >> >> -% 595 0 obj +% 599 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [168.638 228.047 186.709 236.693] +/Rect [168.638 228.047 183.941 236.958] /A << /S /GoTo /D (section*.25) >> >> -% 596 0 obj +% 600 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [168.638 214.03 255.944 224.878] +/Rect [168.638 215.967 186.709 224.613] /A << /S /GoTo /D (section*.26) >> >> -% 597 0 obj +% 601 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [168.638 203.887 192.769 212.798] +/Rect [168.638 201.95 255.944 212.798] /A << /S /GoTo /D (section*.27) >> >> -% 598 0 obj +% 602 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [136.757 191.808 248.228 200.719] -/A << /S /GoTo /D (subsubsection.3.2.2) >> +/Rect [168.638 191.808 192.769 200.719] +/A << /S /GoTo /D (section*.28) >> >> -% 599 0 obj +% 603 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [113.843 179.728 265.358 188.528] -/A << /S /GoTo /D (subsection.3.3) >> +/Rect [136.757 179.728 248.228 188.639] +/A << /S /GoTo /D (subsubsection.3.2.2) >> >> -% 600 0 obj +% 604 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [136.757 167.648 239.898 176.559] -/A << /S /GoTo /D (subsubsection.3.3.1) >> +/Rect [113.843 167.648 265.358 176.448] +/A << /S /GoTo /D (subsection.3.3) >> >> -% 601 0 obj +% 605 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [168.638 153.631 212.767 163.981] -/A << /S /GoTo /D (section*.28) >> +/Rect [136.757 155.568 239.898 164.48] +/A << /S /GoTo /D (subsubsection.3.3.1) >> >> -% 602 0 obj +% 606 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [168.638 143.489 197.529 152.4] +/Rect [168.638 141.552 212.767 151.902] /A << /S /GoTo /D (section*.29) >> >> -% 603 0 obj +% 607 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [168.638 131.409 186.183 139.822] +/Rect [168.638 131.409 197.529 140.32] /A << /S /GoTo /D (section*.30) >> >> -% 604 0 obj +% 608 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [168.638 117.392 208.533 127.742] +/Rect [168.638 119.329 186.183 127.742] /A << /S /GoTo /D (section*.31) >> >> -% 609 0 obj +% 613 0 obj << -/D [607 0 R /XYZ 98.895 753.953 null] +/D [611 0 R /XYZ 98.895 753.953 null] >> -% 610 0 obj +% 614 0 obj << -/D [607 0 R /XYZ 99.895 724.062 null] +/D [611 0 R /XYZ 99.895 724.062 null] >> -% 606 0 obj +% 610 0 obj << -/Font << /F16 550 0 R /F27 552 0 R /F8 553 0 R >> +/Font << /F16 554 0 R /F27 556 0 R /F8 557 0 R >> /ProcSet [ /PDF /Text ] >> -% 660 0 obj +% 664 0 obj << /Type /Page -/Contents 661 0 R -/Resources 659 0 R +/Contents 665 0 R +/Resources 663 0 R /MediaBox [0 0 595.276 841.89] -/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 ] +/Parent 558 0 R +/Annots [ 609 0 R 616 0 R 617 0 R 618 0 R 619 0 R 620 0 R 621 0 R 622 0 R 623 0 R 624 0 R 625 0 R 626 0 R 627 0 R 628 0 R 629 0 R 630 0 R 631 0 R 632 0 R 633 0 R 634 0 R 635 0 R 636 0 R 637 0 R 638 0 R 639 0 R 640 0 R 641 0 R 642 0 R 643 0 R 644 0 R 645 0 R 646 0 R 647 0 R 648 0 R 649 0 R 650 0 R 651 0 R 652 0 R 653 0 R 654 0 R 655 0 R 656 0 R 657 0 R 658 0 R 659 0 R 660 0 R 661 0 R ] >> -% 605 0 obj +% 609 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [219.447 705.133 243.579 714.044] +/Rect [219.447 703.195 259.342 713.546] /A << /S /GoTo /D (section*.32) >> >> -% 612 0 obj +% 616 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [164.653 693.053 318.825 701.964] -/A << /S /GoTo /D (subsection.3.4) >> +/Rect [219.447 693.053 243.579 701.964] +/A << /S /GoTo /D (section*.33) >> >> -% 613 0 obj +% 617 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [164.653 679.036 277.397 689.884] -/A << /S /GoTo /D (subsection.3.5) >> +/Rect [164.653 680.973 318.825 689.884] +/A << /S /GoTo /D (subsection.3.4) >> >> -% 614 0 obj +% 618 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [149.709 656.911 285.838 667.759] -/A << /S /GoTo /D (section.4) >> +/Rect [164.653 666.956 277.397 677.805] +/A << /S /GoTo /D (subsection.3.5) >> >> -% 615 0 obj +% 619 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [164.653 644.831 220.931 655.679] -/A << /S /GoTo /D (section*.33) >> +/Rect [149.709 644.831 285.838 655.679] +/A << /S /GoTo /D (section.4) >> >> -% 616 0 obj +% 620 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [164.653 632.751 209.031 643.599] +/Rect [164.653 632.751 220.931 643.599] /A << /S /GoTo /D (section*.34) >> >> -% 617 0 obj +% 621 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [164.653 620.672 212.96 631.52] +/Rect [164.653 620.672 209.031 631.52] /A << /S /GoTo /D (section*.35) >> >> -% 618 0 obj +% 622 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [164.653 608.592 210.719 619.44] +/Rect [164.653 608.592 212.96 619.44] /A << /S /GoTo /D (section*.36) >> >> -% 619 0 obj +% 623 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [164.653 596.512 222.093 607.36] +/Rect [164.653 596.512 210.719 607.36] /A << /S /GoTo /D (section*.37) >> >> -% 620 0 obj +% 624 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [164.653 584.432 212.933 595.281] +/Rect [164.653 584.432 222.093 595.281] /A << /S /GoTo /D (section*.38) >> >> -% 621 0 obj +% 625 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [164.653 572.353 221.318 583.201] +/Rect [164.653 572.353 212.933 583.201] /A << /S /GoTo /D (section*.39) >> >> -% 622 0 obj +% 626 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [164.653 560.273 212.933 571.121] +/Rect [164.653 560.273 221.318 571.121] /A << /S /GoTo /D (section*.40) >> >> -% 623 0 obj +% 627 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [164.653 548.193 221.29 559.042] +/Rect [164.653 548.193 212.933 559.042] /A << /S /GoTo /D (section*.41) >> >> -% 624 0 obj +% 628 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [164.653 536.114 212.933 546.962] +/Rect [164.653 536.114 221.29 546.962] /A << /S /GoTo /D (section*.42) >> >> -% 625 0 obj +% 629 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [164.653 524.034 210.719 534.882] +/Rect [164.653 524.034 212.933 534.882] /A << /S /GoTo /D (section*.43) >> >> -% 626 0 obj +% 630 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [164.653 511.954 211.3 522.802] +/Rect [164.653 511.954 210.719 522.802] /A << /S /GoTo /D (section*.44) >> >> -% 627 0 obj +% 631 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [164.653 499.875 206.927 510.723] +/Rect [164.653 499.875 211.3 510.723] /A << /S /GoTo /D (section*.45) >> >> -% 628 0 obj +% 632 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [149.709 479.686 290.134 488.597] -/A << /S /GoTo /D (section.5) >> +/Rect [164.653 487.795 206.927 498.643] +/A << /S /GoTo /D (section*.46) >> >> -% 629 0 obj +% 633 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [164.653 465.669 203.496 476.518] -/A << /S /GoTo /D (section*.46) >> +/Rect [149.709 467.607 290.134 476.518] +/A << /S /GoTo /D (section.5) >> >> -% 630 0 obj +% 634 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [164.653 453.59 201.863 464.438] +/Rect [164.653 453.59 203.496 464.438] /A << /S /GoTo /D (section*.47) >> >> -% 631 0 obj +% 635 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [164.653 441.51 212.933 452.358] +/Rect [164.653 441.51 201.863 452.358] /A << /S /GoTo /D (section*.48) >> >> -% 632 0 obj +% 636 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [164.653 429.43 214.648 440.279] +/Rect [164.653 429.43 212.933 440.279] /A << /S /GoTo /D (section*.49) >> >> -% 633 0 obj +% 637 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [149.709 407.305 302.58 418.153] -/A << /S /GoTo /D (section.6) >> +/Rect [164.653 417.351 214.648 428.199] +/A << /S /GoTo /D (section*.50) >> >> -% 634 0 obj +% 638 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [164.653 395.225 205.71 406.074] -/A << /S /GoTo /D (section*.50) >> +/Rect [149.709 395.225 302.58 406.074] +/A << /S /GoTo /D (section.6) >> >> -% 635 0 obj +% 639 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [164.653 383.146 207.426 393.994] +/Rect [164.653 383.146 205.71 393.994] /A << /S /GoTo /D (section*.51) >> >> -% 636 0 obj +% 640 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [164.653 371.066 209.639 381.914] +/Rect [164.653 371.066 207.426 381.914] /A << /S /GoTo /D (section*.52) >> >> -% 637 0 obj +% 641 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [164.653 358.986 210.138 369.834] +/Rect [164.653 358.986 209.639 369.834] /A << /S /GoTo /D (section*.53) >> >> -% 638 0 obj +% 642 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [164.653 346.906 210.996 357.755] +/Rect [164.653 346.906 210.138 357.755] /A << /S /GoTo /D (section*.54) >> >> -% 639 0 obj +% 643 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [164.653 334.827 222.591 345.675] +/Rect [164.653 334.827 210.996 345.675] /A << /S /GoTo /D (section*.55) >> >> -% 640 0 obj +% 644 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [164.653 322.747 205.212 333.595] +/Rect [164.653 322.747 222.591 333.595] /A << /S /GoTo /D (section*.56) >> >> -% 641 0 obj +% 645 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [164.653 310.667 206.927 321.516] +/Rect [164.653 310.667 205.212 321.516] /A << /S /GoTo /D (section*.57) >> >> -% 642 0 obj +% 646 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [164.653 298.588 209.141 309.436] +/Rect [164.653 298.588 206.927 309.436] /A << /S /GoTo /D (section*.58) >> >> -% 643 0 obj +% 647 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [164.653 286.508 210.497 297.356] +/Rect [164.653 286.508 209.141 297.356] /A << /S /GoTo /D (section*.59) >> >> -% 644 0 obj +% 648 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [164.653 274.428 204.132 285.276] +/Rect [164.653 274.428 210.497 285.276] /A << /S /GoTo /D (section*.60) >> >> -% 645 0 obj +% 649 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [164.653 262.349 205.156 273.197] +/Rect [164.653 262.349 204.132 273.197] /A << /S /GoTo /D (section*.61) >> >> -% 646 0 obj +% 650 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [164.653 250.269 206.872 261.117] +/Rect [164.653 250.269 205.156 261.117] /A << /S /GoTo /D (section*.62) >> >> -% 647 0 obj +% 651 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [164.653 238.189 209.086 249.037] +/Rect [164.653 238.189 206.872 249.037] /A << /S /GoTo /D (section*.63) >> >> -% 648 0 obj +% 652 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [164.653 226.109 210.442 236.958] +/Rect [164.653 226.109 209.086 236.958] /A << /S /GoTo /D (section*.64) >> >> -% 649 0 obj +% 653 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [164.653 214.03 202.942 224.878] +/Rect [164.653 214.03 210.442 224.878] /A << /S /GoTo /D (section*.65) >> >> -% 650 0 obj +% 654 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [164.653 201.95 231.978 212.798] +/Rect [164.653 201.95 202.942 212.798] /A << /S /GoTo /D (section*.66) >> >> -% 651 0 obj +% 655 0 obj << /Type /Annot /Subtype /Link @@ -3282,121 +3293,121 @@ stream /Rect [164.653 189.87 231.978 200.719] /A << /S /GoTo /D (section*.67) >> >> -% 652 0 obj +% 656 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [164.653 177.791 226.233 188.639] +/Rect [164.653 177.791 231.978 188.639] /A << /S /GoTo /D (section*.68) >> >> -% 653 0 obj +% 657 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [164.653 165.711 243.059 176.559] +/Rect [164.653 165.711 226.233 176.559] /A << /S /GoTo /D (section*.69) >> >> -% 654 0 obj +% 658 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [164.653 153.631 219.038 164.48] +/Rect [164.653 153.631 243.059 164.48] /A << /S /GoTo /D (section*.70) >> >> -% 655 0 obj +% 659 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [164.653 141.552 235.863 152.4] +/Rect [164.653 141.552 219.038 152.4] /A << /S /GoTo /D (section*.71) >> >> -% 656 0 obj +% 660 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [164.653 129.472 243.64 140.32] +/Rect [164.653 129.472 235.863 140.32] /A << /S /GoTo /D (section*.72) >> >> -% 657 0 obj +% 661 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [164.653 117.392 233.4 128.24] +/Rect [164.653 117.392 243.64 128.24] /A << /S /GoTo /D (section*.73) >> >> -% 662 0 obj +% 666 0 obj << -/D [660 0 R /XYZ 149.705 753.953 null] +/D [664 0 R /XYZ 149.705 753.953 null] >> -% 659 0 obj +% 663 0 obj << -/Font << /F8 553 0 R /F27 552 0 R >> +/Font << /F8 557 0 R /F27 556 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 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 ] +/Parent 558 0 R +/Annots [ 662 0 R 667 0 R 668 0 R 669 0 R 670 0 R 671 0 R 672 0 R 673 0 R 674 0 R 675 0 R 676 0 R 677 0 R 678 0 R 679 0 R 680 0 R 681 0 R 682 0 R 683 0 R 684 0 R 685 0 R 686 0 R 687 0 R 688 0 R 689 0 R 690 0 R 691 0 R 692 0 R 693 0 R 694 0 R 695 0 R 696 0 R 697 0 R 698 0 R 699 0 R 700 0 R 701 0 R 702 0 R 703 0 R 704 0 R 705 0 R 706 0 R 707 0 R ] >> -% 658 0 obj +% 662 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [113.843 703.195 176.558 714.044] +/Rect [113.843 703.195 182.591 714.044] /A << /S /GoTo /D (section*.74) >> >> -% 663 0 obj +% 667 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [113.843 691.24 158 702.088] +/Rect [113.843 691.24 176.558 702.088] /A << /S /GoTo /D (section*.75) >> >> -% 664 0 obj +% 668 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [113.843 679.285 183.443 690.133] +/Rect [113.843 679.285 158 690.133] /A << /S /GoTo /D (section*.76) >> >> -% 665 0 obj +% 669 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [98.899 659.304 264.868 668.215] -/A << /S /GoTo /D (section.7) >> +/Rect [113.843 667.33 183.443 678.178] +/A << /S /GoTo /D (section*.77) >> >> -% 666 0 obj +% 670 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [113.843 645.412 149.366 656.26] -/A << /S /GoTo /D (section*.77) >> +/Rect [98.899 647.349 264.868 656.26] +/A << /S /GoTo /D (section.7) >> >> -% 667 0 obj +% 671 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [113.843 633.457 150.749 644.305] +/Rect [113.843 633.457 149.366 644.305] /A << /S /GoTo /D (section*.78) >> >> -% 668 0 obj +% 672 0 obj << /Type /Annot /Subtype /Link @@ -3404,114 +3415,98 @@ stream /Rect [113.843 621.502 150.749 632.35] /A << /S /GoTo /D (section*.79) >> >> -% 669 0 obj +% 673 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [113.843 609.547 193.91 620.395] +/Rect [113.843 609.547 150.749 620.395] /A << /S /GoTo /D (section*.80) >> >> -% 670 0 obj +% 674 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [113.843 597.591 170.968 608.44] +/Rect [113.843 597.591 193.91 608.44] /A << /S /GoTo /D (section*.81) >> >> -% 671 0 obj +% 675 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [113.843 585.636 160.989 596.484] +/Rect [113.843 585.636 170.968 596.484] /A << /S /GoTo /D (section*.82) >> >> -% 672 0 obj +% 676 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [113.843 573.681 163.839 584.529] +/Rect [113.843 573.681 160.989 584.529] /A << /S /GoTo /D (section*.83) >> >> -% 673 0 obj +% 677 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [113.843 561.726 157.972 572.574] +/Rect [113.843 561.726 163.839 572.574] /A << /S /GoTo /D (section*.84) >> >> -% 674 0 obj +% 678 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [113.843 549.771 157.446 560.619] +/Rect [113.843 549.771 157.972 560.619] /A << /S /GoTo /D (section*.85) >> >> -% 675 0 obj +% 679 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [113.843 537.816 152.188 548.664] +/Rect [113.843 537.816 157.446 548.664] /A << /S /GoTo /D (section*.86) >> >> -% 676 0 obj +% 680 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [113.843 525.86 152.963 536.709] +/Rect [113.843 525.86 152.188 536.709] /A << /S /GoTo /D (section*.87) >> >> -% 677 0 obj +% 681 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [113.843 513.905 151.026 524.753] +/Rect [113.843 513.905 152.963 524.753] /A << /S /GoTo /D (section*.88) >> >> -% 678 0 obj +% 682 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [113.843 501.95 152.963 512.798] +/Rect [113.843 501.95 151.026 512.798] /A << /S /GoTo /D (section*.89) >> >> -% 679 0 obj +% 683 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [113.843 489.995 153.24 500.843] +/Rect [113.843 489.995 152.963 500.843] /A << /S /GoTo /D (section*.90) >> >> -% 680 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [113.843 478.04 149.421 488.888] -/A << /S /GoTo /D (section*.91) >> ->> -% 681 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [113.843 466.085 148.009 476.933] -/A << /S /GoTo /D (section*.92) >> ->> endstream endobj -710 0 obj +715 0 obj << /Length 79 >> @@ -3526,7 +3521,7 @@ ET endstream endobj -724 0 obj +729 0 obj << /Length 8518 >> @@ -3582,7 +3577,7 @@ ET endstream endobj -744 0 obj +749 0 obj << /Length 5579 >> @@ -3629,20 +3624,20 @@ ET endstream endobj -740 0 obj +745 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (./figures/psblas.pdf) /PTEX.PageNumber 1 -/PTEX.InfoDict 747 0 R +/PTEX.InfoDict 752 0 R /BBox [0 0 197 215] /Resources << /ProcSet [ /PDF /Text ] /ExtGState << -/R7 748 0 R ->>/Font << /R8 749 0 R>> +/R7 753 0 R +>>/Font << /R8 754 0 R>> >> /Length 898 /Filter /FlateDecode @@ -3663,7 +3658,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 -751 0 obj +756 0 obj << /Filter /FlateDecode /Subtype /Type1C @@ -3683,7 +3678,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 -757 0 obj +762 0 obj << /Length 8854 >> @@ -3732,7 +3727,7 @@ ET endstream endobj -773 0 obj +778 0 obj << /Length 5346 >> @@ -3809,20 +3804,20 @@ ET endstream endobj -770 0 obj +775 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (./figures/points.pdf) /PTEX.PageNumber 1 -/PTEX.InfoDict 776 0 R +/PTEX.InfoDict 781 0 R /BBox [0 0 274 308] /Resources << /ProcSet [ /PDF /Text ] /ExtGState << -/R7 777 0 R ->>/Font << /R8 778 0 R>> +/R7 782 0 R +>>/Font << /R8 783 0 R>> >> /Length 1397 /Filter /FlateDecode @@ -3832,7 +3827,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 -785 0 obj +790 0 obj << /Length 5462 >> @@ -3922,7 +3917,7 @@ ET endstream endobj -790 0 obj +795 0 obj << /Length 8659 >> @@ -3970,7 +3965,7 @@ ET endstream endobj -804 0 obj +809 0 obj << /Length 7694 >> @@ -4064,228 +4059,252 @@ ET endstream endobj -707 0 obj +712 0 obj << /Type /ObjStm /N 100 -/First 907 -/Length 12402 +/First 910 +/Length 12684 >> stream -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 789 9733 791 9847 23 9904 793 9960 794 10017 795 10074 -796 10130 797 10187 798 10243 799 10298 800 10355 788 10412 803 10542 787 10676 805 10824 806 10880 -807 10936 808 10992 809 11047 810 11103 811 11159 812 11215 813 11271 814 11327 815 11383 816 11439 -% 682 0 obj +684 0 685 147 686 296 687 445 688 590 689 739 690 888 691 1037 692 1186 693 1331 +694 1480 695 1627 696 1777 697 1927 698 2077 699 2227 700 2374 701 2524 702 2673 703 2822 +704 2972 705 3122 706 3272 707 3418 711 3566 708 3622 714 3701 716 3815 713 3872 728 3938 +717 4144 718 4293 719 4444 720 4596 721 4750 722 4901 723 5050 724 5199 725 5347 726 5495 +7 5643 727 5697 748 5789 752 5939 753 6180 754 6222 755 6608 742 6908 743 7053 744 7201 +11 7348 751 7404 747 7459 761 7579 746 7729 758 7875 759 8024 763 8172 15 8228 769 8283 +771 8340 760 8397 777 8592 781 8734 782 8848 783 8890 773 8959 774 9107 779 9255 780 9312 +19 9369 776 9425 789 9584 786 9726 787 9872 791 10019 788 10075 794 10180 796 10294 23 10351 +798 10407 799 10464 800 10521 801 10577 802 10634 803 10690 804 10745 805 10802 793 10859 808 10989 +792 11123 810 11271 811 11327 812 11383 813 11439 814 11494 815 11550 816 11606 817 11662 818 11718 +% 684 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [98.899 444.167 190.188 455.015] -/A << /S /GoTo /D (section.8) >> +/Rect [113.843 478.04 153.24 488.888] +/A << /S /GoTo /D (section*.91) >> >> -% 683 0 obj +% 685 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [113.843 466.085 149.421 476.933] +/A << /S /GoTo /D (section*.92) >> +>> +% 686 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [113.843 432.212 167.188 443.06] +/Rect [113.843 454.129 148.009 464.978] /A << /S /GoTo /D (section*.93) >> >> -% 684 0 obj +% 687 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [98.899 432.212 190.188 443.06] +/A << /S /GoTo /D (section.8) >> +>> +% 688 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [113.843 420.256 155.537 431.105] +/Rect [113.843 420.256 167.188 431.105] /A << /S /GoTo /D (section*.94) >> >> -% 685 0 obj +% 689 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [113.843 408.301 202.129 419.149] +/Rect [113.843 408.301 155.537 419.149] /A << /S /GoTo /D (section*.95) >> >> -% 686 0 obj +% 690 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [113.843 396.346 189.039 407.194] +/Rect [113.843 396.346 202.129 407.194] /A << /S /GoTo /D (section*.96) >> >> -% 687 0 obj +% 691 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [98.899 376.365 156.061 385.276] -/A << /S /GoTo /D (section.9) >> +/Rect [113.843 384.391 189.039 395.239] +/A << /S /GoTo /D (section*.97) >> >> -% 688 0 obj +% 692 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [113.843 364.41 149.061 373.321] -/A << /S /GoTo /D (section*.97) >> +/Rect [98.899 364.41 156.061 373.321] +/A << /S /GoTo /D (section.9) >> >> -% 689 0 obj +% 693 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [113.843 352.455 152.382 361.366] +/Rect [113.843 352.455 149.061 361.366] /A << /S /GoTo /D (section*.98) >> >> -% 690 0 obj +% 694 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [113.843 340.5 175.617 349.411] +/Rect [113.843 340.5 152.382 349.411] /A << /S /GoTo /D (section*.99) >> >> -% 691 0 obj +% 695 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [113.843 326.608 181.207 337.456] +/Rect [113.843 328.545 175.617 337.456] /A << /S /GoTo /D (section*.100) >> >> -% 692 0 obj +% 696 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [113.843 316.59 178.938 325.236] +/Rect [113.843 314.652 181.207 325.501] /A << /S /GoTo /D (section*.101) >> >> -% 693 0 obj +% 697 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [113.843 302.697 184.528 313.281] +/Rect [113.843 304.634 178.938 313.281] /A << /S /GoTo /D (section*.102) >> >> -% 694 0 obj +% 698 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [98.899 282.717 234.475 291.628] -/A << /S /GoTo /D (section.10) >> +/Rect [113.843 290.742 184.528 301.325] +/A << /S /GoTo /D (section*.103) >> >> -% 695 0 obj +% 699 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [113.843 268.824 157.374 280.226] -/A << /S /GoTo /D (section*.103) >> +/Rect [98.899 270.761 234.475 279.672] +/A << /S /GoTo /D (section.10) >> >> -% 696 0 obj +% 700 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [113.843 256.869 164.57 268.271] +/Rect [113.843 256.869 157.374 268.271] /A << /S /GoTo /D (section*.104) >> >> -% 697 0 obj +% 701 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [113.843 244.914 166.507 256.316] +/Rect [113.843 244.914 164.57 256.316] /A << /S /GoTo /D (section*.105) >> >> -% 698 0 obj +% 702 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [113.843 232.959 164.653 244.36] +/Rect [113.843 232.959 166.507 244.36] /A << /S /GoTo /D (section*.106) >> >> -% 699 0 obj +% 703 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [113.843 222.941 137.975 231.852] +/Rect [113.843 221.004 164.653 232.405] /A << /S /GoTo /D (section*.107) >> >> -% 700 0 obj +% 704 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] +/Rect [113.843 210.986 137.975 219.897] /A << /S /GoTo /D (section*.108) >> >> -% 701 0 obj +% 705 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [113.843 197.093 158.232 208.495] +/A << /S /GoTo /D (section*.109) >> +>> +% 706 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [98.899 189.068 206.49 197.979] +/Rect [98.899 177.113 206.49 186.024] /A << /S /GoTo /D (section.11) >> >> -% 702 0 obj +% 707 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [113.843 175.175 161.57 186.024] -/A << /S /GoTo /D (section*.109) >> +/Rect [113.843 163.22 161.57 174.068] +/A << /S /GoTo /D (section*.110) >> >> -% 706 0 obj +% 711 0 obj << -/D [704 0 R /XYZ 98.895 753.953 null] +/D [709 0 R /XYZ 98.895 753.953 null] >> -% 703 0 obj +% 708 0 obj << -/Font << /F8 553 0 R /F27 552 0 R >> +/Font << /F8 557 0 R /F27 556 0 R >> /ProcSet [ /PDF /Text ] >> -% 709 0 obj +% 714 0 obj << /Type /Page -/Contents 710 0 R -/Resources 708 0 R +/Contents 715 0 R +/Resources 713 0 R /MediaBox [0 0 595.276 841.89] -/Parent 554 0 R +/Parent 558 0 R >> -% 711 0 obj +% 716 0 obj << -/D [709 0 R /XYZ 149.705 753.953 null] +/D [714 0 R /XYZ 149.705 753.953 null] >> -% 708 0 obj +% 713 0 obj << -/Font << /F8 553 0 R >> +/Font << /F8 557 0 R >> /ProcSet [ /PDF /Text ] >> -% 723 0 obj +% 728 0 obj << /Type /Page -/Contents 724 0 R -/Resources 722 0 R +/Contents 729 0 R +/Resources 727 0 R /MediaBox [0 0 595.276 841.89] -/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 ] +/Parent 731 0 R +/Annots [ 717 0 R 718 0 R 719 0 R 720 0 R 721 0 R 722 0 R 723 0 R 724 0 R 725 0 R 726 0 R ] >> -% 712 0 obj +% 717 0 obj << /Type /Annot /Subtype /Link @@ -4293,7 +4312,7 @@ stream /Rect [408.982 586.91 420.937 595.323] /A << /S /GoTo /D (cite.metcalf) >> >> -% 713 0 obj +% 718 0 obj << /Type /Annot /Subtype /Link @@ -4301,7 +4320,7 @@ stream /Rect [277.684 514.913 289.639 523.326] /A << /S /GoTo /D (cite.Sparse03) >> >> -% 714 0 obj +% 719 0 obj << /Type /Annot /Subtype /Link @@ -4309,7 +4328,7 @@ stream /Rect [265.763 502.958 272.737 511.371] /A << /S /GoTo /D (cite.DesPat:11) >> >> -% 715 0 obj +% 720 0 obj << /Type /Annot /Subtype /Link @@ -4317,7 +4336,7 @@ stream /Rect [276.283 502.958 288.238 511.371] /A << /S /GoTo /D (cite.RouXiaXu:11) >> >> -% 716 0 obj +% 721 0 obj << /Type /Annot /Subtype /Link @@ -4325,7 +4344,7 @@ stream /Rect [210.166 442.916 222.121 451.329] /A << /S /GoTo /D (cite.machiels) >> >> -% 717 0 obj +% 722 0 obj << /Type /Annot /Subtype /Link @@ -4333,7 +4352,7 @@ stream /Rect [241.566 370.919 248.54 379.332] /A << /S /GoTo /D (cite.sblas97) >> >> -% 718 0 obj +% 723 0 obj << /Type /Annot /Subtype /Link @@ -4341,7 +4360,7 @@ stream /Rect [252.056 370.919 259.03 379.332] /A << /S /GoTo /D (cite.sblas02) >> >> -% 719 0 obj +% 724 0 obj << /Type /Annot /Subtype /Link @@ -4349,7 +4368,7 @@ stream /Rect [227.473 358.964 239.428 367.377] /A << /S /GoTo /D (cite.BLAS1) >> >> -% 720 0 obj +% 725 0 obj << /Type /Annot /Subtype /Link @@ -4357,7 +4376,7 @@ stream /Rect [243.524 358.964 250.498 367.377] /A << /S /GoTo /D (cite.BLAS2) >> >> -% 721 0 obj +% 726 0 obj << /Type /Annot /Subtype /Link @@ -4367,23 +4386,23 @@ stream >> % 7 0 obj << -/D [723 0 R /XYZ 99.895 716.092 null] +/D [728 0 R /XYZ 99.895 716.092 null] >> -% 722 0 obj +% 727 0 obj << -/Font << /F16 550 0 R /F8 553 0 R /F17 725 0 R >> +/Font << /F16 554 0 R /F8 557 0 R /F17 730 0 R >> /ProcSet [ /PDF /Text ] >> -% 743 0 obj +% 748 0 obj << /Type /Page -/Contents 744 0 R -/Resources 742 0 R +/Contents 749 0 R +/Resources 747 0 R /MediaBox [0 0 595.276 841.89] -/Parent 726 0 R -/Annots [ 737 0 R 738 0 R 739 0 R ] +/Parent 731 0 R +/Annots [ 742 0 R 743 0 R 744 0 R ] >> -% 747 0 obj +% 752 0 obj << /Producer (GPL Ghostscript 9.04) /CreationDate (D:20111215145523+01'00') @@ -4392,15 +4411,15 @@ stream /Creator (fig2dev Version 3.2 Patchlevel 5d) /Author (sfilippo@donald \(Salvatore Filippone\)) >> -% 748 0 obj +% 753 0 obj << /Type /ExtGState /OPM 1 >> -% 749 0 obj +% 754 0 obj << /BaseFont /JEJNJE+Times-Roman -/FontDescriptor 750 0 R +/FontDescriptor 755 0 R /Type /Font /FirstChar 32 /LastChar 116 @@ -4408,7 +4427,7 @@ stream /Encoding /WinAnsiEncoding /Subtype /Type1 >> -% 750 0 obj +% 755 0 obj << /Type /FontDescriptor /FontName /JEJNJE+Times-Roman @@ -4422,9 +4441,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 751 0 R +/FontFile3 756 0 R >> -% 737 0 obj +% 742 0 obj << /Type /Annot /Subtype /Link @@ -4432,7 +4451,7 @@ stream /Rect [310.543 541.042 317.517 551.89] /A << /S /GoTo /D (figure.1) >> >> -% 738 0 obj +% 743 0 obj << /Type /Annot /Subtype /Link @@ -4440,7 +4459,7 @@ stream /Rect [446.018 471.248 452.992 479.661] /A << /S /GoTo /D (cite.BLACS) >> >> -% 739 0 obj +% 744 0 obj << /Type /Annot /Subtype /Link @@ -4450,28 +4469,28 @@ stream >> % 11 0 obj << -/D [743 0 R /XYZ 150.705 677.433 null] +/D [748 0 R /XYZ 150.705 677.433 null] >> -% 746 0 obj +% 751 0 obj << -/D [743 0 R /XYZ 258.703 263.3 null] +/D [748 0 R /XYZ 258.703 263.3 null] >> -% 742 0 obj +% 747 0 obj << -/Font << /F8 553 0 R /F16 550 0 R /F11 745 0 R >> -/XObject << /Im1 740 0 R >> +/Font << /F8 557 0 R /F16 554 0 R /F11 750 0 R >> +/XObject << /Im1 745 0 R >> /ProcSet [ /PDF /Text ] >> -% 756 0 obj +% 761 0 obj << /Type /Page -/Contents 757 0 R -/Resources 755 0 R +/Contents 762 0 R +/Resources 760 0 R /MediaBox [0 0 595.276 841.89] -/Parent 726 0 R -/Annots [ 741 0 R 753 0 R 754 0 R ] +/Parent 731 0 R +/Annots [ 746 0 R 758 0 R 759 0 R ] >> -% 741 0 obj +% 746 0 obj << /Type /Annot /Subtype /Link @@ -4479,7 +4498,7 @@ stream /Rect [219.5 609.491 231.455 617.904] /A << /S /GoTo /D (cite.METIS) >> >> -% 753 0 obj +% 758 0 obj << /Type /Annot /Subtype /Link @@ -4487,7 +4506,7 @@ stream /Rect [210.854 546.467 217.316 558.506] /A << /S /GoTo /D (Hfootnote.1) >> >> -% 754 0 obj +% 759 0 obj << /Type /Annot /Subtype /Link @@ -4495,54 +4514,54 @@ stream /Rect [155.908 188.124 162.37 200.163] /A << /S /GoTo /D (Hfootnote.2) >> >> -% 758 0 obj +% 763 0 obj << -/D [756 0 R /XYZ 98.895 753.953 null] +/D [761 0 R /XYZ 98.895 753.953 null] >> % 15 0 obj << -/D [756 0 R /XYZ 99.895 515.919 null] +/D [761 0 R /XYZ 99.895 515.919 null] >> -% 764 0 obj +% 769 0 obj << -/D [756 0 R /XYZ 115.138 167.688 null] +/D [761 0 R /XYZ 115.138 167.688 null] >> -% 766 0 obj +% 771 0 obj << -/D [756 0 R /XYZ 115.138 158.184 null] +/D [761 0 R /XYZ 115.138 158.184 null] >> -% 755 0 obj +% 760 0 obj << -/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 >> +/Font << /F8 557 0 R /F17 730 0 R /F30 764 0 R /F7 765 0 R /F16 554 0 R /F11 750 0 R /F10 766 0 R /F14 767 0 R /F27 556 0 R /F32 768 0 R /F31 770 0 R >> /ProcSet [ /PDF /Text ] >> -% 772 0 obj +% 777 0 obj << /Type /Page -/Contents 773 0 R -/Resources 771 0 R +/Contents 778 0 R +/Resources 776 0 R /MediaBox [0 0 595.276 841.89] -/Parent 726 0 R -/Annots [ 768 0 R 769 0 R ] +/Parent 731 0 R +/Annots [ 773 0 R 774 0 R ] >> -% 776 0 obj +% 781 0 obj << /Producer (ESP Ghostscript 815.03) /CreationDate (D:20070123225315) /ModDate (D:20070123225315) >> -% 777 0 obj +% 782 0 obj << /Type /ExtGState /OPM 1 >> -% 778 0 obj +% 783 0 obj << /BaseFont /Times-Roman /Type /Font /Subtype /Type1 >> -% 768 0 obj +% 773 0 obj << /Type /Annot /Subtype /Link @@ -4550,7 +4569,7 @@ stream /Rect [294.665 637.885 301.639 646.297] /A << /S /GoTo /D (cite.2007c) >> >> -% 769 0 obj +% 774 0 obj << /Type /Annot /Subtype /Link @@ -4558,34 +4577,34 @@ stream /Rect [305.735 637.885 312.709 646.297] /A << /S /GoTo /D (cite.2007d) >> >> -% 774 0 obj +% 779 0 obj << -/D [772 0 R /XYZ 149.705 753.953 null] +/D [777 0 R /XYZ 149.705 753.953 null] >> -% 775 0 obj +% 780 0 obj << -/D [772 0 R /XYZ 303.562 347.015 null] +/D [777 0 R /XYZ 303.562 347.015 null] >> % 19 0 obj << -/D [772 0 R /XYZ 150.705 272.271 null] +/D [777 0 R /XYZ 150.705 272.271 null] >> -% 771 0 obj +% 776 0 obj << -/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 >> +/Font << /F27 556 0 R /F8 557 0 R /F14 767 0 R /F11 750 0 R /F10 766 0 R /F16 554 0 R >> +/XObject << /Im2 775 0 R >> /ProcSet [ /PDF /Text ] >> -% 784 0 obj +% 789 0 obj << /Type /Page -/Contents 785 0 R -/Resources 783 0 R +/Contents 790 0 R +/Resources 788 0 R /MediaBox [0 0 595.276 841.89] -/Parent 726 0 R -/Annots [ 781 0 R 782 0 R ] +/Parent 731 0 R +/Annots [ 786 0 R 787 0 R ] >> -% 781 0 obj +% 786 0 obj << /Type /Annot /Subtype /Link @@ -4593,7 +4612,7 @@ stream /Rect [406.358 354.515 413.331 366.47] /A << /S /GoTo /D (section.3) >> >> -% 782 0 obj +% 787 0 obj << /Type /Annot /Subtype /Link @@ -4601,78 +4620,78 @@ stream /Rect [173.863 318.352 180.837 330.307] /A << /S /GoTo /D (section.6) >> >> -% 786 0 obj +% 791 0 obj << -/D [784 0 R /XYZ 98.895 753.953 null] +/D [789 0 R /XYZ 98.895 753.953 null] >> -% 783 0 obj +% 788 0 obj << -/Font << /F27 552 0 R /F8 553 0 R /F14 762 0 R /F30 759 0 R >> +/Font << /F27 556 0 R /F8 557 0 R /F14 767 0 R /F30 764 0 R >> /ProcSet [ /PDF /Text ] >> -% 789 0 obj +% 794 0 obj << /Type /Page -/Contents 790 0 R -/Resources 788 0 R +/Contents 795 0 R +/Resources 793 0 R /MediaBox [0 0 595.276 841.89] -/Parent 726 0 R +/Parent 731 0 R >> -% 791 0 obj +% 796 0 obj << -/D [789 0 R /XYZ 149.705 753.953 null] +/D [794 0 R /XYZ 149.705 753.953 null] >> % 23 0 obj << -/D [789 0 R /XYZ 150.705 716.092 null] +/D [794 0 R /XYZ 150.705 716.092 null] >> -% 793 0 obj +% 798 0 obj << -/D [789 0 R /XYZ 150.705 284.758 null] +/D [794 0 R /XYZ 150.705 284.758 null] >> -% 794 0 obj +% 799 0 obj << -/D [789 0 R /XYZ 150.705 263.953 null] +/D [794 0 R /XYZ 150.705 263.953 null] >> -% 795 0 obj +% 800 0 obj << -/D [789 0 R /XYZ 150.705 242.87 null] +/D [794 0 R /XYZ 150.705 242.87 null] >> -% 796 0 obj +% 801 0 obj << -/D [789 0 R /XYZ 150.705 221.788 null] +/D [794 0 R /XYZ 150.705 221.788 null] >> -% 797 0 obj +% 802 0 obj << -/D [789 0 R /XYZ 150.705 188.75 null] +/D [794 0 R /XYZ 150.705 188.75 null] >> -% 798 0 obj +% 803 0 obj << -/D [789 0 R /XYZ 150.705 167.6 null] +/D [794 0 R /XYZ 150.705 167.6 null] >> -% 799 0 obj +% 804 0 obj << -/D [789 0 R /XYZ 150.705 148.591 null] +/D [794 0 R /XYZ 150.705 148.591 null] >> -% 800 0 obj +% 805 0 obj << -/D [789 0 R /XYZ 150.705 132.072 null] +/D [794 0 R /XYZ 150.705 132.072 null] >> -% 788 0 obj +% 793 0 obj << -/Font << /F16 550 0 R /F8 553 0 R /F11 745 0 R /F30 759 0 R /F9 792 0 R /F17 725 0 R >> +/Font << /F16 554 0 R /F8 557 0 R /F11 750 0 R /F30 764 0 R /F9 797 0 R /F17 730 0 R >> /ProcSet [ /PDF /Text ] >> -% 803 0 obj +% 808 0 obj << /Type /Page -/Contents 804 0 R -/Resources 802 0 R +/Contents 809 0 R +/Resources 807 0 R /MediaBox [0 0 595.276 841.89] -/Parent 821 0 R -/Annots [ 787 0 R ] +/Parent 826 0 R +/Annots [ 792 0 R ] >> -% 787 0 obj +% 792 0 obj << /Type /Annot /Subtype /Link @@ -4680,58 +4699,46 @@ stream /Rect [176.109 690.964 182.571 703.28] /A << /S /GoTo /D (Hfootnote.3) >> >> -% 805 0 obj -<< -/D [803 0 R /XYZ 98.895 753.953 null] ->> -% 806 0 obj -<< -/D [803 0 R /XYZ 99.895 716.092 null] ->> -% 807 0 obj -<< -/D [803 0 R /XYZ 99.895 686.739 null] ->> -% 808 0 obj -<< -/D [803 0 R /XYZ 99.895 618.93 null] ->> -% 809 0 obj -<< -/D [803 0 R /XYZ 99.895 596.257 null] ->> % 810 0 obj << -/D [803 0 R /XYZ 99.895 573.861 null] +/D [808 0 R /XYZ 98.895 753.953 null] >> % 811 0 obj << -/D [803 0 R /XYZ 99.895 539.509 null] +/D [808 0 R /XYZ 99.895 716.092 null] >> % 812 0 obj << -/D [803 0 R /XYZ 99.895 517.113 null] +/D [808 0 R /XYZ 99.895 686.739 null] >> % 813 0 obj << -/D [803 0 R /XYZ 99.895 494.716 null] +/D [808 0 R /XYZ 99.895 618.93 null] >> % 814 0 obj << -/D [803 0 R /XYZ 99.895 469.986 null] +/D [808 0 R /XYZ 99.895 596.257 null] >> % 815 0 obj << -/D [803 0 R /XYZ 99.895 440.855 null] +/D [808 0 R /XYZ 99.895 573.861 null] >> % 816 0 obj << -/D [803 0 R /XYZ 99.895 411.448 null] +/D [808 0 R /XYZ 99.895 539.509 null] +>> +% 817 0 obj +<< +/D [808 0 R /XYZ 99.895 517.113 null] +>> +% 818 0 obj +<< +/D [808 0 R /XYZ 99.895 494.716 null] >> endstream endobj -826 0 obj +831 0 obj << /Length 7473 >> @@ -4787,7 +4794,7 @@ ET endstream endobj -837 0 obj +842 0 obj << /Length 8440 >> @@ -4932,9 +4939,9 @@ ET endstream endobj -843 0 obj +852 0 obj << -/Length 6708 +/Length 6827 >> stream 0 g 0 G @@ -4945,109 +4952,121 @@ BT 0 g 0 G /F8 9.9626 Tf 10.71 0 Td [(The)-333(n)27(um)28(b)-28(er)-333(of)-333(lo)-28(cal)-333(indices)-334(\050and)-333(lo)-28(cal)-333(ro)28(ws\051;)]TJ 0 g 0 G -/F27 9.9626 Tf -10.71 -15.774 Td [({)]TJ +/F27 9.9626 Tf -10.71 -15.622 Td [({)]TJ 0 g 0 G /F8 9.9626 Tf 10.71 0 Td [(The)-333(n)27(um)28(b)-28(er)-333(of)-333(halo)-333(indices)-334(\050and)-333(therefore)-333(lo)-28(cal)-333(c)-1(olu)1(m)-1(n)1(s)-1(\051;)]TJ 0 g 0 G -/F27 9.9626 Tf -10.71 -15.774 Td [({)]TJ +/F27 9.9626 Tf -10.71 -15.621 Td [({)]TJ 0 g 0 G -/F8 9.9626 Tf 10.71 0 Td [(The)-333(global)-334(indices)-333(corresp)-28(onding)-333(to)-333(the)-334(lo)-27(cal)-334(ones.)]TJ -46.824 -19.76 Td [(There)-376(are)-376(m)-1(an)28(y)-376(di\013eren)28(t)-376(sc)27(hemes)-376(for)-376(storing)-376(these)-377(data;)-397(therefore)-376(there)-377(are)-376(a)]TJ 0 -11.955 Td [(n)28(um)28(b)-28(er)-389(of)-389(t)28(yp)-28(es)-389(extending)-389(the)-388(base)-389(one,)-403(and)-389(the)-389(descriptor)-389(structure)-389(hold)1(s)-389(a)]TJ 0 -11.955 Td [(p)-28(olymorphic)-290(ob)-56(ject)-290(whose)-291(dyn)1(am)-1(ic)-290(t)28(yp)-28(e)-290(can)-291(b)-28(e)-290(an)28(y)-291(of)-290(the)-291(extend)1(e)-1(d)-290(t)28(yp)-28(es.)-430(The)]TJ 0 -11.955 Td [(metho)-28(ds)-333(asso)-28(ciated)-333(with)-334(this)-333(data)-333(t)28(yp)-28(e)-334(answ)28(er)-333(the)-334(f)1(ollo)27(wing)-333(queries:)]TJ +/F8 9.9626 Tf 10.71 0 Td [(The)-333(global)-334(indices)-333(corresp)-28(onding)-333(to)-333(the)-334(lo)-27(cal)-334(ones.)]TJ -46.824 -19.606 Td [(There)-376(are)-376(m)-1(an)28(y)-376(di\013eren)28(t)-376(sc)27(hemes)-376(for)-376(storing)-376(these)-377(data;)-397(therefore)-376(there)-377(are)-376(a)]TJ 0 -11.956 Td [(n)28(um)28(b)-28(er)-389(of)-389(t)28(yp)-28(es)-389(extending)-389(the)-388(base)-389(one,)-403(and)-389(the)-389(descriptor)-389(structure)-389(hold)1(s)-389(a)]TJ 0 -11.955 Td [(p)-28(olymorphic)-290(ob)-56(ject)-290(whose)-291(dyn)1(am)-1(ic)-290(t)28(yp)-28(e)-290(can)-291(b)-28(e)-290(an)28(y)-291(of)-290(the)-291(extend)1(e)-1(d)-290(t)28(yp)-28(es.)-430(The)]TJ 0 -11.955 Td [(metho)-28(ds)-333(asso)-28(ciated)-333(with)-334(this)-333(data)-333(t)28(yp)-28(e)-334(answ)28(er)-333(the)-334(f)1(ollo)27(wing)-333(queries:)]TJ 0 g 0 G -/F14 9.9626 Tf 14.944 -19.593 Td [(\017)]TJ +/F14 9.9626 Tf 14.944 -19.288 Td [(\017)]TJ 0 g 0 G -/F8 9.9626 Tf 9.962 0 Td [(F)83(or)-271(a)-271(giv)28(en)-272(set)-271(of)-271(lo)-28(cal)-271(indices,)-284(\014nd)-271(the)-271(corresp)-28(onding)-271(indices)-272(in)-271(the)-271(global)]TJ 0 -11.956 Td [(n)28(um)28(b)-28(ering;)]TJ +/F8 9.9626 Tf 9.962 0 Td [(F)83(or)-271(a)-271(giv)28(en)-272(set)-271(of)-271(lo)-28(cal)-271(indices,)-284(\014nd)-271(the)-271(corresp)-28(onding)-271(indices)-272(in)-271(the)-271(global)]TJ 0 -11.955 Td [(n)28(um)28(b)-28(ering;)]TJ 0 g 0 G -/F14 9.9626 Tf -9.962 -19.759 Td [(\017)]TJ +/F14 9.9626 Tf -9.962 -19.606 Td [(\017)]TJ 0 g 0 G /F8 9.9626 Tf 9.962 0 Td [(F)83(or)-271(a)-271(giv)28(en)-272(set)-271(of)-271(global)-271(indices,)-284(\014nd)-271(the)-271(c)-1(or)1(re)-1(sp)-27(onding)-271(indices)-272(in)-271(the)-271(lo)-28(cal)]TJ 0 -11.955 Td [(n)28(um)28(b)-28(ering,)-333(if)-334(an)28(y)83(,)-333(or)-333(return)-333(an)-334(in)28(v)56(alid)]TJ 0 g 0 G -/F14 9.9626 Tf -9.962 -19.759 Td [(\017)]TJ +/F14 9.9626 Tf -9.962 -19.607 Td [(\017)]TJ 0 g 0 G /F8 9.9626 Tf 9.962 0 Td [(Add)-333(a)-334(global)-333(index)-333(to)-333(the)-334(set)-333(of)-334(h)1(alo)-334(indices;)]TJ 0 g 0 G -/F14 9.9626 Tf -9.962 -19.759 Td [(\017)]TJ +/F14 9.9626 Tf -9.962 -19.606 Td [(\017)]TJ 0 g 0 G -/F8 9.9626 Tf 9.962 0 Td [(Find)-333(the)-334(pro)-27(cess)-334(o)28(wner)-333(of)-334(eac)28(h)-333(mem)27(b)-27(er)-334(of)-333(a)-333(set)-334(of)-333(global)-333(indices.)]TJ -24.906 -19.594 Td [(All)-355(metho)-28(ds)-355(but)-355(the)-355(last)-355(are)-355(purely)-355(lo)-28(cal;)-366(the)-355(last)-355(metho)-28(d)-355(p)-28(oten)28(tially)-355(requires)]TJ 0 -11.955 Td [(comm)28(unication)-259(among)-258(pro)-28(cesses,)-274(and)-258(th)28(us)-259(is)-258(a)-259(sync)28(hronous)-258(m)-1(etho)-27(d.)-420(The)-258(c)27(hoice)]TJ 0 -11.955 Td [(of)-309(a)-310(sp)-28(eci\014c)-309(dynamic)-310(t)28(yp)-27(e)-310(for)-309(the)-310(index)-309(map)-310(is)-309(made)-310(at)-309(the)-309(time)-310(the)-309(descriptor)]TJ 0 -11.955 Td [(is)-333(initially)-334(al)1(lo)-28(cated,)-334(according)-333(to)-333(the)-334(mo)-27(de)-334(of)-333(initialization)-333(\050see)-334(also)]TJ +/F8 9.9626 Tf 9.962 0 Td [(Find)-333(the)-334(pro)-27(cess)-334(o)28(wner)-333(of)-334(eac)28(h)-333(mem)27(b)-27(er)-334(of)-333(a)-333(set)-334(of)-333(global)-333(indices.)]TJ -24.906 -19.288 Td [(All)-355(metho)-28(ds)-355(but)-355(the)-355(last)-355(are)-355(purely)-355(lo)-28(cal;)-366(the)-355(last)-355(metho)-28(d)-355(p)-28(oten)28(tially)-355(requires)]TJ 0 -11.955 Td [(comm)28(unication)-259(among)-258(pro)-28(cesses,)-274(and)-258(th)28(us)-259(is)-258(a)-259(sync)28(hronous)-258(m)-1(etho)-27(d.)-420(The)-258(c)27(hoice)]TJ 0 -11.955 Td [(of)-309(a)-310(sp)-28(eci\014c)-309(dynamic)-310(t)28(yp)-27(e)-310(for)-309(the)-310(index)-309(map)-310(is)-309(made)-310(at)-309(the)-309(time)-310(the)-309(descriptor)]TJ 0 -11.956 Td [(is)-333(initially)-334(al)1(lo)-28(cated,)-334(according)-333(to)-333(the)-334(mo)-27(de)-334(of)-333(initialization)-333(\050see)-334(also)]TJ 0 0 1 rg 0 0 1 RG [-333(6)]TJ 0 g 0 G [(\051.)]TJ 14.944 -11.955 Td [(The)-333(descriptor)-334(con)28(ten)28(ts)-333(are)-334(as)-333(follo)28(ws:)]TJ 0 g 0 G -/F27 9.9626 Tf -14.944 -19.594 Td [(indxmap)]TJ +/F27 9.9626 Tf -14.944 -19.287 Td [(indxmap)]TJ 0 g 0 G /F8 9.9626 Tf 48.422 0 Td [(A)-222(p)-28(olymorphic)-222(v)56(ariable)-223(of)-222(a)-222(t)28(yp)-28(e)-222(that)-222(is)-223(an)28(y)-222(extension)-222(of)-222(the)-223(indx)]TJ ET q -1 0 0 1 476.354 429.367 cm +1 0 0 1 476.354 431.2 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 479.343 429.167 Td [(map)]TJ -303.732 -11.955 Td [(t)28(yp)-28(e)-333(describ)-28(ed)-333(ab)-28(o)28(v)27(e.)]TJ +/F8 9.9626 Tf 479.343 431.001 Td [(map)]TJ -303.732 -11.956 Td [(t)28(yp)-28(e)-333(describ)-28(ed)-333(ab)-28(o)28(v)27(e.)]TJ 0 g 0 G -/F27 9.9626 Tf -24.906 -31.714 Td [(halo)]TJ +/F27 9.9626 Tf -24.906 -31.561 Td [(halo)]TJ ET q -1 0 0 1 172.238 385.697 cm +1 0 0 1 172.238 387.683 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 175.675 385.498 Td [(index)]TJ +/F27 9.9626 Tf 175.675 387.484 Td [(index)]TJ 0 g 0 G -/F8 9.9626 Tf 32.191 0 Td [(A)-384(list)-384(of)-385(the)-384(halo)-384(and)-384(b)-28(oundary)-384(elemen)28(ts)-384(for)-385(the)-384(curren)28(t)-384(pro)-28(cess)]TJ -32.255 -11.955 Td [(to)-347(b)-28(e)-347(exc)28(hanged)-347(with)-347(other)-348(p)1(ro)-28(cesses;)-354(for)-348(eac)28(h)-347(pro)-28(cesses)-347(with)-347(whic)28(h)-347(it)-347(is)]TJ 0 -11.955 Td [(necessary)-334(to)-333(comm)28(unicate:)]TJ +/F8 9.9626 Tf 32.191 0 Td [(A)-384(list)-384(of)-385(the)-384(halo)-384(and)-384(b)-28(oundary)-384(elemen)28(ts)-384(for)-385(the)-384(curren)28(t)-384(pro)-28(cess)]TJ -32.255 -11.955 Td [(to)-347(b)-28(e)-347(exc)28(hanged)-347(with)-347(other)-348(p)1(ro)-28(cesses;)-354(for)-348(eac)28(h)-347(pro)-28(cesses)-347(with)-347(whic)28(h)-347(it)-347(is)]TJ 0 -11.956 Td [(necessary)-334(to)-333(comm)28(unicate:)]TJ 0 g 0 G - 9.188 -19.76 Td [(1.)]TJ + 9.188 -19.606 Td [(1.)]TJ 0 g 0 G [-500(Pro)-28(cess)-333(iden)28(ti\014er;)]TJ 0 g 0 G - 0 -15.774 Td [(2.)]TJ + 0 -15.621 Td [(2.)]TJ 0 g 0 G [-500(Num)28(b)-28(er)-333(of)-334(p)-27(oin)27(ts)-333(to)-333(b)-28(e)-333(receiv)27(ed;)]TJ 0 g 0 G - 0 -15.774 Td [(3.)]TJ + 0 -15.622 Td [(3.)]TJ 0 g 0 G [-500(Indices)-333(of)-334(p)-27(oin)27(ts)-333(to)-333(b)-28(e)-333(rece)-1(i)1(v)27(ed;)]TJ 0 g 0 G - 0 -15.774 Td [(4.)]TJ + 0 -15.621 Td [(4.)]TJ 0 g 0 G [-500(Num)28(b)-28(er)-333(of)-334(p)-27(oin)27(ts)-333(to)-333(b)-28(e)-333(sen)27(t;)]TJ 0 g 0 G - 0 -15.774 Td [(5.)]TJ + 0 -15.622 Td [(5.)]TJ 0 g 0 G - [-500(Indices)-333(of)-334(p)-27(oin)27(ts)-333(to)-333(b)-28(e)-333(sen)27(t;)]TJ -9.188 -19.76 Td [(The)-313(list)-313(ma)28(y)-312(c)-1(on)28(tain)-312(an)-313(arbitrary)-313(n)28(um)28(b)-28(er)-312(of)-313(groups;)-320(its)-312(end)-313(is)-313(mark)28(ed)-313(b)28(y)]TJ 0 -11.955 Td [(a)-333(-1.)]TJ 0 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(allo)-28(catable)-333(in)28(teger)-334(arr)1(a)27(y)-333(of)-333(rank)-334(one.)]TJ + [-500(Indices)-333(of)-334(p)-27(oin)27(ts)-333(to)-333(b)-28(e)-333(sen)27(t;)]TJ -9.188 -19.606 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(v)28(ector)-334(of)-333(in)28(teger)-333(t)27(yp)-27(e,)-334(see)]TJ +0 0 1 rg 0 0 1 RG + [-333(3.3)]TJ +0 g 0 G + [(.)]TJ 0 g 0 G -/F27 9.9626 Tf -24.906 -19.759 Td [(ext)]TJ +/F27 9.9626 Tf -24.906 -19.607 Td [(ext)]TJ ET q -1 0 0 1 167.146 215.502 cm +1 0 0 1 167.146 242.468 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 170.583 215.303 Td [(index)]TJ +/F27 9.9626 Tf 170.583 242.268 Td [(index)]TJ +0 g 0 G +/F8 9.9626 Tf 32.191 0 Td [(A)-274(list)-274(of)-274(elemen)28(t)-274(indices)-274(to)-273(b)-28(e)-274(exc)28(hanged)-274(to)-274(implemen)28(t)-274(the)-274(mapping)]TJ -27.163 -11.955 Td [(b)-28(et)28(w)28(een)-334(a)-333(base)-333(descriptor)-334(and)-333(a)-333(descriptor)-334(with)-333(o)28(v)28(erlap.)]TJ 0 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(v)28(ector)-334(of)-333(in)28(teger)-333(t)27(yp)-27(e,)-334(see)]TJ +0 0 1 rg 0 0 1 RG + [-333(3.3)]TJ 0 g 0 G -/F8 9.9626 Tf 32.191 0 Td [(A)-274(list)-274(of)-274(elemen)28(t)-274(indices)-274(to)-273(b)-28(e)-274(exc)28(hanged)-274(to)-274(implemen)28(t)-274(the)-274(mapping)]TJ -27.163 -11.955 Td [(b)-28(et)28(w)28(een)-334(a)-333(base)-333(descriptor)-334(and)-333(a)-333(descriptor)-334(with)-333(o)28(v)28(erlap.)]TJ + [(.)]TJ 0 g 0 G -/F27 9.9626 Tf -24.906 -19.76 Td [(o)32(vrlap)]TJ +/F27 9.9626 Tf -24.906 -19.606 Td [(o)32(vrlap)]TJ ET q -1 0 0 1 182.684 183.788 cm +1 0 0 1 182.684 198.951 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 186.122 183.588 Td [(index)]TJ +/F27 9.9626 Tf 186.122 198.752 Td [(index)]TJ 0 g 0 G -/F8 9.9626 Tf 32.191 0 Td [(A)-320(list)-320(of)-320(the)-320(o)28(v)28(erlap)-320(eleme)-1(n)28(ts)-320(for)-320(the)-320(curren)28(t)-320(pro)-28(cess,)-322(organized)]TJ -42.702 -11.955 Td [(in)-333(groups)-334(lik)28(e)-333(the)-333(previous)-334(v)28(ector:)]TJ +/F8 9.9626 Tf 32.191 0 Td [(A)-320(list)-320(of)-320(the)-320(o)28(v)28(erlap)-320(eleme)-1(n)28(ts)-320(for)-320(the)-320(curren)28(t)-320(pro)-28(cess,)-322(organized)]TJ -42.702 -11.956 Td [(in)-333(groups)-334(lik)28(e)-333(the)-333(previous)-334(v)28(ector:)]TJ 0 g 0 G - 9.188 -19.759 Td [(1.)]TJ + 9.188 -19.606 Td [(1.)]TJ 0 g 0 G [-500(Pro)-28(cess)-333(iden)28(ti\014er;)]TJ 0 g 0 G - 0 -15.774 Td [(2.)]TJ + 0 -15.622 Td [(2.)]TJ 0 g 0 G [-500(Num)28(b)-28(er)-333(of)-334(p)-27(oin)27(ts)-333(to)-333(b)-28(e)-333(receiv)27(ed;)]TJ 0 g 0 G - 0 -15.774 Td [(3.)]TJ + 0 -15.621 Td [(3.)]TJ 0 g 0 G [-500(Indices)-333(of)-334(p)-27(oin)27(ts)-333(to)-333(b)-28(e)-333(rece)-1(i)1(v)27(ed;)]TJ +0 g 0 G + 0 -15.621 Td [(4.)]TJ +0 g 0 G + [-500(Num)28(b)-28(er)-333(of)-334(p)-27(oin)27(ts)-333(to)-333(b)-28(e)-333(sen)27(t;)]TJ 0 g 0 G 132.78 -29.888 Td [(10)]TJ 0 g 0 G @@ -5055,689 +5074,737 @@ ET endstream endobj -855 0 obj +865 0 obj << -/Length 5012 +/Length 5421 >> stream 0 g 0 G 0 g 0 G 0 g 0 G BT -/F8 9.9626 Tf 133.99 706.129 Td [(4.)]TJ -0 g 0 G - [-500(Num)28(b)-28(er)-333(of)-334(p)-27(oin)28(ts)-334(to)-333(b)-28(e)-333(sen)27(t;)]TJ +/F8 9.9626 Tf 133.99 706.129 Td [(5.)]TJ 0 g 0 G - 0 -18.499 Td [(5.)]TJ + [-500(Indices)-333(of)-334(p)-27(oin)27(ts)-333(to)-333(b)-28(e)-333(sen)27(t;)]TJ -9.188 -19.55 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(v)28(ector)-333(of)-334(in)28(teger)-333(t)27(yp)-27(e,)-334(see)]TJ +0 0 1 rg 0 0 1 RG + [-333(3.3)]TJ 0 g 0 G - [-500(Indices)-333(of)-334(p)-27(oin)27(ts)-333(to)-333(b)-28(e)-333(sen)27(t;)]TJ -9.188 -25.042 Td [(The)-313(list)-312(ma)27(y)-312(con)27(tain)-312(an)-313(arbitrary)-313(n)28(um)28(b)-28(er)-312(of)-313(groups;)-320(its)-312(end)-313(is)-313(mark)28(ed)-313(b)28(y)]TJ 0 -11.955 Td [(a)-333(-1.)]TJ 0 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(allo)-28(catable)-333(in)28(teger)-333(arra)27(y)-333(of)-333(rank)-334(on)1(e)-1(.)]TJ + [(.)]TJ 0 g 0 G -/F27 9.9626 Tf -24.907 -25.042 Td [(o)32(vr)]TJ +/F27 9.9626 Tf -24.907 -19.55 Td [(o)32(vr)]TJ ET q -1 0 0 1 116.758 613.835 cm +1 0 0 1 116.758 667.228 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 120.195 613.636 Td [(mst)]TJ +/F27 9.9626 Tf 120.195 667.029 Td [(mst)]TJ ET q -1 0 0 1 139.405 613.835 cm +1 0 0 1 139.405 667.228 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 142.842 613.636 Td [(idx)]TJ +/F27 9.9626 Tf 142.842 667.029 Td [(idx)]TJ 0 g 0 G -/F8 9.9626 Tf 20.575 0 Td [(A)-368(l)1(is)-1(t)-367(to)-368(r)1(e)-1(tri)1(e)-1(v)28(e)-367(the)-368(v)56(alue)-368(of)-367(eac)28(h)-368(o)28(v)28(erlap)-368(elemen)28(t)-368(from)-367(the)-368(re-)]TJ -38.615 -11.955 Td [(sp)-28(ectiv)28(e)-333(mas)-1(ter)-333(pro)-28(cess.)]TJ 0 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(allo)-28(catable)-333(in)28(teger)-333(arra)27(y)-333(of)-333(rank)-334(on)1(e)-1(.)]TJ +/F8 9.9626 Tf 20.575 0 Td [(A)-368(l)1(is)-1(t)-367(to)-368(r)1(e)-1(tri)1(e)-1(v)28(e)-367(the)-368(v)56(alue)-368(of)-367(eac)28(h)-368(o)28(v)28(erlap)-368(elemen)28(t)-368(from)-367(the)-368(re-)]TJ -38.615 -11.955 Td [(sp)-28(ectiv)28(e)-333(mas)-1(ter)-333(pro)-28(cess.)]TJ 0 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(v)28(ector)-333(of)-334(in)28(teger)-333(t)27(yp)-27(e,)-334(see)]TJ +0 0 1 rg 0 0 1 RG + [-333(3.3)]TJ +0 g 0 G + [(.)]TJ 0 g 0 G -/F27 9.9626 Tf -24.907 -25.042 Td [(o)32(vrlap)]TJ +/F27 9.9626 Tf -24.907 -19.55 Td [(o)32(vrlap)]TJ ET q -1 0 0 1 131.875 564.883 cm +1 0 0 1 131.875 623.768 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 135.312 564.684 Td [(elem)]TJ +/F27 9.9626 Tf 135.312 623.569 Td [(elem)]TJ 0 g 0 G /F8 9.9626 Tf 28.214 0 Td [(F)83(or)-333(all)-333(o)28(v)27(erlap)-333(p)-28(oin)28(ts)-333(b)-28(elonging)-333(to)-334(th)-333(ecurren)28(t)-333(pro)-28(cess:)]TJ 0 g 0 G - -29.536 -25.042 Td [(1.)]TJ + -29.536 -19.55 Td [(1.)]TJ 0 g 0 G [-500(Ov)28(erlap)-333(p)-28(oin)28(t)-334(index;)]TJ 0 g 0 G - 0 -18.498 Td [(2.)]TJ + 0 -15.565 Td [(2.)]TJ 0 g 0 G [-500(Num)28(b)-28(er)-333(of)-334(pr)1(o)-28(cesses)-334(sharing)-333(that)-333(o)27(v)28(erlap)-333(p)-28(oin)28(ts;)]TJ 0 g 0 G - 0 -18.499 Td [(3.)]TJ + 0 -15.565 Td [(3.)]TJ 0 g 0 G - [-500(Index)-333(of)-334(a)-333(\134master")-333(pro)-28(cess:)]TJ -9.188 -25.042 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(allo)-28(catable)-333(in)28(teger)-333(arra)27(y)-333(of)-333(rank)-334(t)28(w)28(o.)]TJ + [-500(Index)-333(of)-334(a)-333(\134master")-333(pro)-28(cess:)]TJ -9.188 -19.55 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(allo)-28(catable)-333(in)28(teger)-333(arra)27(y)-333(of)-333(rank)-334(t)28(w)28(o.)]TJ 0 g 0 G -/F27 9.9626 Tf -24.907 -25.042 Td [(bnd)]TJ +/F27 9.9626 Tf -24.907 -19.55 Td [(bnd)]TJ ET q -1 0 0 1 119.678 452.761 cm +1 0 0 1 119.678 533.988 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 123.115 452.561 Td [(elem)]TJ -0 g 0 G -/F8 9.9626 Tf 28.213 0 Td [(A)-270(list)-269(of)-270(all)-269(b)-28(oundary)-269(p)-28(oin)28(ts,)-283(i.e.)-423(p)-28(oin)28(ts)-269(that)-270(ha)28(v)28(e)-270(a)-269(connection)-270(with)]TJ -26.526 -11.955 Td [(other)-333(pro)-28(cesses.)]TJ -24.907 -23.763 Td [(The)-333(F)83(ortran)-333(2003)-334(declaration)-333(for)]TJ/F30 9.9626 Tf 146.645 0 Td [(psb_desc_type)]TJ/F8 9.9626 Tf 71.315 0 Td [(structures)-333(is)-334(as)-333(follo)28(ws:)]TJ +/F27 9.9626 Tf 123.115 533.789 Td [(elem)]TJ 0 g 0 G +/F8 9.9626 Tf 28.213 0 Td [(A)-270(list)-269(of)-270(all)-269(b)-28(oundary)-269(p)-28(oin)28(ts,)-283(i.e.)-423(p)-28(oin)28(ts)-269(that)-270(ha)28(v)28(e)-270(a)-269(connection)-270(with)]TJ -26.526 -11.955 Td [(other)-333(pro)-28(cesses.)]TJ -24.907 -19.175 Td [(The)-450(F)83(ortran)-450(2003)-450(declaration)-450(for)]TJ/F30 9.9626 Tf 152.457 0 Td [(psb_desc_type)]TJ/F8 9.9626 Tf 72.477 0 Td [(structures)-450(is)-450(as)-450(follo)28(ws:)-678(A)]TJ 0 g 0 G 0 g 0 G 0 g 0 G 0 g 0 G -/F30 9.9626 Tf -200.773 -22.815 Td [(type)-525(psb_desc_type)]TJ 20.921 -11.956 Td [(class\050psb_indx_map\051,)-525(allocatable)-525(::)-525(indxmap)]TJ 0 -11.955 Td [(integer,)-525(allocatable)-1050(::)-525(halo_index\050:\051)]TJ 0 -11.955 Td [(integer,)-525(allocatable)-1050(::)-525(ext_index\050:\051)]TJ 0 -11.955 Td [(integer,)-525(allocatable)-1050(::)-525(ovrlap_index\050:\051)]TJ 0 -11.955 Td [(integer,)-525(allocatable)-1050(::)-525(ovrlap_elem\050:,:\051)]TJ 0 -11.955 Td [(integer,)-525(allocatable)-1050(::)-525(ovr_mst_idx\050:\051)]TJ 0 -11.956 Td [(integer,)-525(allocatable)-1050(::)-525(bnd_elem\050:\051)]TJ -20.921 -11.955 Td [(end)-525(type)-525(psb_desc_type)]TJ/F8 9.9626 Tf -17.187 -30.054 Td [(Figure)-464(3:)-705(The)-464(PSBLAS)-464(de\014ned)-464(data)-464(t)28(yp)-28(e)-464(that)-463(con)27(tains)-464(th)1(e)-464(com)-1(m)28(unication)]TJ 0 -11.955 Td [(descriptor.)]TJ 0 g 0 G - 14.944 -27.471 Td [(A)-445(comm)28(unication)-445(descriptor)-445(asso)-28(ciated)-445(with)-445(a)-445(sparse)-445(matrix)-445(has)-445(a)-445(state,)]TJ -14.944 -11.955 Td [(whic)28(h)-334(can)-333(tak)28(e)-333(the)-334(follo)28(wing)-333(v)55(alues:)]TJ +/F30 9.9626 Tf -207.747 -19.882 Td [(type)-525(psb_desc_type)]TJ 20.921 -11.955 Td [(class\050psb_indx_map\051,)-525(allocatable)-525(::)-525(indxmap)]TJ 0 -11.955 Td [(type\050psb_i_vect_type\051)-525(::)-525(v_halo_index)]TJ 0 -11.955 Td [(type\050psb_i_vect_type\051)-525(::)-525(v_ext_index)]TJ 0 -11.955 Td [(type\050psb_i_vect_type\051)-525(::)-525(v_ovrlap_index)]TJ 0 -11.956 Td [(type\050psb_i_vect_type\051)-525(::)-525(v_ovr_mst_idx)]TJ 0 -11.955 Td [(integer,)-525(allocatable)-1050(::)-525(ovrlap_elem\050:,:\051)]TJ 0 -11.955 Td [(integer,)-525(allocatable)-1050(::)-525(bnd_elem\050:\051)]TJ -20.921 -11.955 Td [(end)-525(type)-525(psb_desc_type)]TJ/F8 9.9626 Tf -17.187 -30.054 Td [(Figure)-464(3:)-705(The)-464(PSBLAS)-464(de\014ned)-464(data)-464(t)28(yp)-28(e)-464(that)-463(con)27(tains)-464(th)1(e)-464(com)-1(m)28(unication)]TJ 0 -11.955 Td [(descriptor.)]TJ 0 g 0 G -/F27 9.9626 Tf 0 -23.763 Td [(Build:)]TJ + 0 -23.259 Td [(comm)28(unication)-415(desc)-1(ri)1(ptor)-416(asso)-27(ciate)-1(d)-415(with)-415(a)-415(sparse)-415(matrix)-415(has)-416(a)-415(state,)-435(whic)27(h)]TJ 0 -11.955 Td [(can)-333(tak)27(e)-333(the)-333(follo)28(wing)-334(v)56(alues:)]TJ 0 g 0 G -/F8 9.9626 Tf 35.409 0 Td [(State)-306(en)28(tered)-306(after)-307(the)-306(\014rst)-306(allo)-28(cation,)-311(and)-306(b)-28(efore)-306(the)-306(\014rst)-306(assem)27(bly;)-315(in)]TJ -10.502 -11.955 Td [(this)-224(state)-223(it)-224(is)-223(p)-28(ossible)-224(to)-223(add)-224(comm)28(unication)-224(requiremen)28(ts)-224(among)-223(di\013eren)27(t)]TJ 0 -11.955 Td [(pro)-28(cesses.)]TJ +/F27 9.9626 Tf 0 -19.174 Td [(Build:)]TJ 0 g 0 G -/F27 9.9626 Tf -24.907 -25.042 Td [(Assem)32(bled:)]TJ -0 g 0 G -/F8 9.9626 Tf 61.508 0 Td [(State)-351(en)28(tered)-351(after)-351(the)-350(assem)27(bly;)-359(computations)-351(using)-351(the)-350(ass)-1(o)-27(ci-)]TJ -36.601 -11.955 Td [(ated)-392(sparse)-391(matrix,)-406(suc)28(h)-392(as)-391(m)-1(atr)1(ix-v)27(ector)-391(pro)-28(ducts,)-406(are)-392(only)-391(p)-28(ossible)-391(in)]TJ 0 -11.955 Td [(this)-333(state.)]TJ -0 g 0 G - 141.968 -29.888 Td [(11)]TJ -0 g 0 G -ET - -endstream -endobj -867 0 obj -<< -/Length 5199 ->> -stream +/F8 9.9626 Tf 35.409 0 Td [(State)-306(en)28(tered)-306(after)-307(the)-306(\014rst)-306(allo)-28(cation,)-311(and)-306(b)-28(efore)-306(the)-306(\014rst)-306(assem)27(bly;)-315(in)]TJ -10.502 -11.956 Td [(this)-224(state)-223(it)-224(is)-223(p)-28(ossible)-224(to)-223(add)-224(comm)28(unication)-224(requiremen)28(ts)-224(among)-223(di\013eren)27(t)]TJ 0 -11.955 Td [(pro)-28(cesses.)]TJ 0 g 0 G +/F27 9.9626 Tf -24.907 -19.55 Td [(Assem)32(bled:)]TJ 0 g 0 G -BT -/F27 9.9626 Tf 150.705 706.129 Td [(3.1.1)-1150(Descriptor)-384(M)1(etho)-32(ds)]TJ 0 -18.549 Td [(get)]TJ +/F8 9.9626 Tf 61.508 0 Td [(State)-351(en)28(tered)-351(after)-351(the)-350(assem)27(bly;)-359(computations)-351(using)-351(the)-350(ass)-1(o)-27(ci-)]TJ -36.601 -11.955 Td [(ated)-392(sparse)-391(matrix,)-406(suc)28(h)-392(as)-391(m)-1(atr)1(ix-v)27(ector)-391(pro)-28(ducts,)-406(are)-392(only)-391(p)-28(ossible)-391(in)]TJ 0 -11.955 Td [(this)-333(state.)]TJ/F27 9.9626 Tf -24.907 -25.734 Td [(3.1.1)-1150(Descriptor)-384(Metho)-31(ds)]TJ 0 -18.39 Td [(get)]TJ ET q -1 0 0 1 166.827 687.78 cm +1 0 0 1 116.018 179.444 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 170.264 687.58 Td [(lo)-32(cal)]TJ +/F27 9.9626 Tf 119.455 179.244 Td [(lo)-32(cal)]TJ ET q -1 0 0 1 194.025 687.78 cm +1 0 0 1 143.215 179.444 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 197.462 687.58 Td [(ro)32(ws)-383(|)-384(Get)-383(n)32(um)32(b)-32(er)-383(of)-384(lo)-32(cal)-383(ro)32(ws)]TJ +/F27 9.9626 Tf 146.653 179.244 Td [(ro)32(ws)-383(|)-384(Get)-383(n)32(um)32(b)-32(er)-383(of)-384(lo)-32(cal)-383(ro)32(ws)]TJ 0 g 0 G 0 g 0 G -/F30 9.9626 Tf -46.757 -18.548 Td [(nr)-525(=)-525(desc%get_local_rows\050\051)]TJ +/F30 9.9626 Tf -46.758 -18.389 Td [(nr)-525(=)-525(desc%get_local_rows\050\051)]TJ 0 g 0 G -/F27 9.9626 Tf 0 -22.174 Td [(T)32(yp)-32(e:)]TJ +/F27 9.9626 Tf 0 -20.979 Td [(T)32(yp)-32(e:)]TJ 0 g 0 G /F8 9.9626 Tf 33.797 0 Td [(Async)28(hronous.)]TJ 0 g 0 G -/F27 9.9626 Tf -33.797 -20.267 Td [(On)-383(En)32(try)]TJ +/F27 9.9626 Tf -33.797 -19.55 Td [(On)-383(En)32(try)]TJ +0 g 0 G +0 g 0 G +/F8 9.9626 Tf 166.875 -29.888 Td [(11)]TJ +0 g 0 G +ET + +endstream +endobj +876 0 obj +<< +/Length 5152 +>> +stream +0 g 0 G 0 g 0 G 0 g 0 G - 0 -20.267 Td [(desc)]TJ +BT +/F27 9.9626 Tf 150.705 706.129 Td [(desc)]TJ 0 g 0 G /F8 9.9626 Tf 26.208 0 Td [(the)-333(comm)27(unication)-333(descriptor.)]TJ -1.302 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf 23.073 0 Td [(.)]TJ 0 g 0 G -/F27 9.9626 Tf -80.358 -34.13 Td [(On)-383(Return)]TJ +/F27 9.9626 Tf -80.358 -34.653 Td [(On)-383(Return)]TJ 0 g 0 G 0 g 0 G - 0 -20.267 Td [(F)96(unction)-384(v)64(alue)]TJ + 0 -20.964 Td [(F)96(unction)-384(v)64(alue)]TJ 0 g 0 G /F8 9.9626 Tf 78.386 0 Td [(The)-460(n)28(um)27(b)-27(er)-461(of)-460(lo)-28(cal)-460(ro)28(ws,)-492(i.e.)-825(the)-460(n)28(um)27(b)-27(er)-461(of)-460(ro)28(ws)-460(o)28(wned)]TJ -53.48 -11.955 Td [(b)28(y)-401(the)-401(curren)27(t)-401(pro)-27(ces)-1(s;)-435(as)-401(explained)-401(in)]TJ 0 0 1 rg 0 0 1 RG [-401(1)]TJ 0 g 0 G - [(,)-418(it)-401(is)-401(equal)-401(to)]TJ/F14 9.9626 Tf 249.678 0 Td [(jI)]TJ/F10 6.9738 Tf 8.192 -1.495 Td [(i)]TJ/F14 9.9626 Tf 3.317 1.495 Td [(j)]TJ/F8 9.9626 Tf 5.431 0 Td [(+)]TJ/F14 9.9626 Tf 10.413 0 Td [(jB)]TJ/F10 6.9738 Tf 9.311 -1.495 Td [(i)]TJ/F14 9.9626 Tf 3.317 1.495 Td [(j)]TJ/F8 9.9626 Tf 2.767 0 Td [(.)-648(The)]TJ -292.426 -11.955 Td [(returned)-333(v)55(alue)-333(is)-333(sp)-28(eci\014c)-334(to)-333(the)-333(calling)-334(p)1(ro)-28(cess.)]TJ/F27 9.9626 Tf -24.906 -26.35 Td [(get)]TJ + [(,)-418(it)-401(is)-401(equal)-401(to)]TJ/F14 9.9626 Tf 249.678 0 Td [(jI)]TJ/F10 6.9738 Tf 8.192 -1.495 Td [(i)]TJ/F14 9.9626 Tf 3.317 1.495 Td [(j)]TJ/F8 9.9626 Tf 5.431 0 Td [(+)]TJ/F14 9.9626 Tf 10.413 0 Td [(jB)]TJ/F10 6.9738 Tf 9.311 -1.495 Td [(i)]TJ/F14 9.9626 Tf 3.317 1.495 Td [(j)]TJ/F8 9.9626 Tf 2.767 0 Td [(.)-648(The)]TJ -292.426 -11.956 Td [(returned)-333(v)55(alue)-333(is)-333(sp)-28(eci\014c)-334(to)-333(the)-333(calling)-334(p)1(ro)-28(cess.)]TJ/F27 9.9626 Tf -24.906 -27.274 Td [(get)]TJ ET q -1 0 0 1 166.827 489.912 cm +1 0 0 1 166.827 587.571 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 170.264 489.712 Td [(lo)-32(cal)]TJ +/F27 9.9626 Tf 170.264 587.372 Td [(lo)-32(cal)]TJ ET q -1 0 0 1 194.025 489.912 cm +1 0 0 1 194.025 587.571 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 197.462 489.712 Td [(cols)-383(|)-384(Get)-383(n)32(um)32(b)-32(er)-383(of)-384(lo)-32(cal)-383(cols)]TJ +/F27 9.9626 Tf 197.462 587.372 Td [(cols)-383(|)-384(Get)-383(n)32(um)32(b)-32(er)-383(of)-384(lo)-32(cal)-383(cols)]TJ 0 g 0 G 0 g 0 G -/F30 9.9626 Tf -46.757 -18.548 Td [(nc)-525(=)-525(desc%get_local_cols\050\051)]TJ +/F30 9.9626 Tf -46.757 -18.873 Td [(nc)-525(=)-525(desc%get_local_cols\050\051)]TJ 0 g 0 G -/F27 9.9626 Tf 0 -22.174 Td [(T)32(yp)-32(e:)]TJ +/F27 9.9626 Tf 0 -22.697 Td [(T)32(yp)-32(e:)]TJ 0 g 0 G /F8 9.9626 Tf 33.797 0 Td [(Async)28(hronous.)]TJ 0 g 0 G -/F27 9.9626 Tf -33.797 -20.267 Td [(On)-383(En)32(try)]TJ +/F27 9.9626 Tf -33.797 -20.965 Td [(On)-383(En)32(try)]TJ 0 g 0 G 0 g 0 G - 0 -20.267 Td [(desc)]TJ + 0 -20.964 Td [(desc)]TJ 0 g 0 G -/F8 9.9626 Tf 26.208 0 Td [(the)-333(comm)27(unication)-333(descriptor.)]TJ -1.302 -11.956 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf 23.073 0 Td [(.)]TJ +/F8 9.9626 Tf 26.208 0 Td [(the)-333(comm)27(unication)-333(descriptor.)]TJ -1.302 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf 23.073 0 Td [(.)]TJ 0 g 0 G -/F27 9.9626 Tf -80.358 -34.129 Td [(On)-383(Return)]TJ +/F27 9.9626 Tf -80.358 -34.653 Td [(On)-383(Return)]TJ 0 g 0 G 0 g 0 G - 0 -20.267 Td [(F)96(unction)-384(v)64(alue)]TJ + 0 -20.964 Td [(F)96(unction)-384(v)64(alue)]TJ 0 g 0 G /F8 9.9626 Tf 78.386 0 Td [(The)-361(n)28(um)28(b)-28(er)-360(of)-361(lo)-27(cal)-361(cols,)-367(i.e.)-526(the)-361(n)28(um)28(b)-28(er)-360(of)-361(indices)-360(used)-361(b)28(y)]TJ -53.48 -11.955 Td [(the)-421(curren)28(t)-421(pro)-28(cess,)-443(including)-421(b)-27(oth)-421(lo)-28(cal)-421(and)-421(halo)-421(ind)1(ice)-1(s;)-464(as)-421(explained)]TJ 0 -11.955 Td [(in)]TJ 0 0 1 rg 0 0 1 RG [-344(1)]TJ 0 g 0 G - [(,)-346(it)-343(is)-344(equal)-343(to)]TJ/F14 9.9626 Tf 81.777 0 Td [(jI)]TJ/F10 6.9738 Tf 8.192 -1.495 Td [(i)]TJ/F14 9.9626 Tf 3.317 1.495 Td [(j)]TJ/F8 9.9626 Tf 5.049 0 Td [(+)]TJ/F14 9.9626 Tf 10.031 0 Td [(jB)]TJ/F10 6.9738 Tf 9.311 -1.495 Td [(i)]TJ/F14 9.9626 Tf 3.317 1.495 Td [(j)]TJ/F8 9.9626 Tf 5.049 0 Td [(+)]TJ/F14 9.9626 Tf 10.03 0 Td [(jH)]TJ/F10 6.9738 Tf 11.181 -1.495 Td [(i)]TJ/F14 9.9626 Tf 3.317 1.495 Td [(j)]TJ/F8 9.9626 Tf 2.768 0 Td [(.)-475(The)-344(returned)-343(v)55(al)1(ue)-344(is)-344(sp)-27(ec)-1(i)1(\014c)-344(to)-344(the)]TJ -153.339 -11.956 Td [(calling)-333(pro)-28(cess.)]TJ/F27 9.9626 Tf -24.906 -26.349 Td [(get)]TJ + [(,)-346(it)-343(is)-344(equal)-343(to)]TJ/F14 9.9626 Tf 81.777 0 Td [(jI)]TJ/F10 6.9738 Tf 8.192 -1.495 Td [(i)]TJ/F14 9.9626 Tf 3.317 1.495 Td [(j)]TJ/F8 9.9626 Tf 5.049 0 Td [(+)]TJ/F14 9.9626 Tf 10.031 0 Td [(jB)]TJ/F10 6.9738 Tf 9.311 -1.495 Td [(i)]TJ/F14 9.9626 Tf 3.317 1.495 Td [(j)]TJ/F8 9.9626 Tf 5.049 0 Td [(+)]TJ/F14 9.9626 Tf 10.03 0 Td [(jH)]TJ/F10 6.9738 Tf 11.181 -1.495 Td [(i)]TJ/F14 9.9626 Tf 3.317 1.495 Td [(j)]TJ/F8 9.9626 Tf 2.768 0 Td [(.)-475(The)-344(returned)-343(v)55(al)1(ue)-344(is)-344(sp)-27(ec)-1(i)1(\014c)-344(to)-344(the)]TJ -153.339 -11.956 Td [(calling)-333(pro)-28(cess.)]TJ/F27 9.9626 Tf -24.906 -27.274 Td [(get)]TJ ET q -1 0 0 1 166.827 280.088 cm +1 0 0 1 166.827 373.36 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 170.264 279.889 Td [(global)]TJ +/F27 9.9626 Tf 170.264 373.161 Td [(global)]TJ ET q -1 0 0 1 200.708 280.088 cm +1 0 0 1 200.708 373.36 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 204.145 279.889 Td [(ro)32(ws)-383(|)-384(Get)-383(n)32(um)32(b)-32(er)-383(of)-384(global)-383(ro)32(ws)]TJ +/F27 9.9626 Tf 204.145 373.161 Td [(ro)32(ws)-383(|)-384(Get)-383(n)32(um)32(b)-32(er)-383(of)-384(global)-383(ro)32(ws)]TJ 0 g 0 G 0 g 0 G -/F30 9.9626 Tf -53.44 -18.548 Td [(nr)-525(=)-525(desc%get_global_rows\050\051)]TJ +/F30 9.9626 Tf -53.44 -18.873 Td [(nr)-525(=)-525(desc%get_global_rows\050\051)]TJ 0 g 0 G -/F27 9.9626 Tf 0 -22.174 Td [(T)32(yp)-32(e:)]TJ +/F27 9.9626 Tf 0 -22.697 Td [(T)32(yp)-32(e:)]TJ 0 g 0 G /F8 9.9626 Tf 33.797 0 Td [(Async)28(hronous.)]TJ 0 g 0 G -/F27 9.9626 Tf -33.797 -20.267 Td [(On)-383(En)32(try)]TJ +/F27 9.9626 Tf -33.797 -20.965 Td [(On)-383(En)32(try)]TJ 0 g 0 G 0 g 0 G - 0 -20.268 Td [(desc)]TJ + 0 -20.964 Td [(desc)]TJ 0 g 0 G /F8 9.9626 Tf 26.208 0 Td [(the)-333(comm)27(unication)-333(descriptor.)]TJ -1.302 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf 23.073 0 Td [(.)]TJ 0 g 0 G -/F27 9.9626 Tf -80.358 -34.129 Td [(On)-383(Return)]TJ -0 g 0 G -0 g 0 G - 0 -20.267 Td [(F)96(unction)-384(v)64(alue)]TJ -0 g 0 G -/F8 9.9626 Tf 78.386 0 Td [(The)-390(n)28(um)27(b)-27(er)-391(of)-390(global)-390(ro)28(ws,)-405(i.e.)-615(the)-390(size)-391(of)-390(the)-390(global)-390(index)]TJ -53.48 -11.955 Td [(space.)]TJ +/F27 9.9626 Tf -80.358 -34.653 Td [(On)-383(Return)]TJ 0 g 0 G - 141.968 -29.888 Td [(12)]TJ -0 g 0 G -ET - -endstream -endobj -871 0 obj -<< -/Length 4312 ->> -stream 0 g 0 G + 0 -20.964 Td [(F)96(unction)-384(v)64(alue)]TJ 0 g 0 G -BT -/F27 9.9626 Tf 99.895 706.129 Td [(get)]TJ +/F8 9.9626 Tf 78.386 0 Td [(The)-390(n)28(um)27(b)-27(er)-391(of)-390(global)-390(ro)28(ws,)-405(i.e.)-615(the)-390(size)-391(of)-390(the)-390(global)-390(index)]TJ -53.48 -11.955 Td [(space.)]TJ/F27 9.9626 Tf -24.906 -27.275 Td [(get)]TJ ET q -1 0 0 1 116.018 706.328 cm +1 0 0 1 166.827 183.06 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 119.455 706.129 Td [(global)]TJ +/F27 9.9626 Tf 170.264 182.86 Td [(global)]TJ ET q -1 0 0 1 149.899 706.328 cm +1 0 0 1 200.708 183.06 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 153.336 706.129 Td [(cols)-383(|)-384(Get)-383(n)32(um)32(b)-32(er)-383(of)-384(global)-383(cols)]TJ +/F27 9.9626 Tf 204.145 182.86 Td [(cols)-383(|)-384(Get)-383(n)32(um)32(b)-32(er)-383(of)-384(global)-383(cols)]TJ 0 g 0 G 0 g 0 G -/F30 9.9626 Tf -53.441 -18.505 Td [(nr)-525(=)-525(desc%get_global_cols\050\051)]TJ +/F30 9.9626 Tf -53.44 -18.873 Td [(nr)-525(=)-525(desc%get_global_cols\050\051)]TJ 0 g 0 G -/F27 9.9626 Tf 0 -22.105 Td [(T)32(yp)-32(e:)]TJ +/F27 9.9626 Tf 0 -22.697 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.175 Td [(On)-383(En)32(try)]TJ +/F27 9.9626 Tf -33.797 -20.964 Td [(On)-383(En)32(try)]TJ +0 g 0 G 0 g 0 G +/F8 9.9626 Tf 166.874 -29.888 Td [(12)]TJ +0 g 0 G +ET + +endstream +endobj +880 0 obj +<< +/Length 4083 +>> +stream 0 g 0 G - 0 -20.174 Td [(desc)]TJ +0 g 0 G +0 g 0 G +BT +/F27 9.9626 Tf 99.895 706.129 Td [(desc)]TJ 0 g 0 G /F8 9.9626 Tf 26.209 0 Td [(the)-333(comm)27(unication)-333(descriptor.)]TJ -1.302 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf 23.073 0 Td [(.)]TJ 0 g 0 G -/F27 9.9626 Tf -80.359 -34.06 Td [(On)-383(Return)]TJ +/F27 9.9626 Tf -80.359 -33.74 Td [(On)-383(Return)]TJ 0 g 0 G 0 g 0 G - 0 -20.174 Td [(F)96(unction)-384(v)64(alue)]TJ + 0 -19.872 Td [(F)96(unction)-384(v)64(alue)]TJ 0 g 0 G -/F8 9.9626 Tf 78.387 0 Td [(The)-273(n)28(um)28(b)-28(er)-273(of)-272(global)-273(cols;)-293(usually)-273(this)-273(is)-272(e)-1(q)1(ual)-273(to)-273(the)-273(n)28(um)28(b)-28(er)]TJ -53.48 -11.956 Td [(of)-333(global)-334(ro)28(ws.)]TJ/F27 9.9626 Tf -24.907 -26.226 Td [(get)]TJ +/F8 9.9626 Tf 78.387 0 Td [(The)-273(n)28(um)28(b)-28(er)-273(of)-272(global)-273(cols;)-293(usually)-273(this)-273(is)-272(e)-1(q)1(ual)-273(to)-273(the)-273(n)28(um)28(b)-28(er)]TJ -53.48 -11.955 Td [(of)-333(global)-334(ro)28(ws.)]TJ/F27 9.9626 Tf -24.907 -25.873 Td [(get)]TJ ET q -1 0 0 1 116.018 520.998 cm +1 0 0 1 116.018 602.933 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 119.455 520.799 Td [(global)]TJ +/F27 9.9626 Tf 119.455 602.734 Td [(global)]TJ ET q -1 0 0 1 149.899 520.998 cm +1 0 0 1 149.899 602.933 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 153.336 520.799 Td [(indices)-383(|)-384(Get)-383(v)32(ector)-383(of)-384(global)-383(indices)]TJ +/F27 9.9626 Tf 153.336 602.734 Td [(indices)-383(|)-384(Get)-383(v)32(ector)-383(of)-384(global)-383(indices)]TJ 0 g 0 G 0 g 0 G -/F30 9.9626 Tf -53.441 -18.505 Td [(myidx)-525(=)-525(desc%get_global_indices\050[owned]\051)]TJ +/F30 9.9626 Tf -53.441 -18.389 Td [(myidx)-525(=)-525(desc%get_global_indices\050[owned]\051)]TJ 0 g 0 G -/F27 9.9626 Tf 0 -22.105 Td [(T)32(yp)-32(e:)]TJ +/F27 9.9626 Tf 0 -21.785 Td [(T)32(yp)-32(e:)]TJ 0 g 0 G /F8 9.9626 Tf 33.797 0 Td [(Async)28(hronous.)]TJ 0 g 0 G -/F27 9.9626 Tf -33.797 -20.174 Td [(On)-383(En)32(try)]TJ +/F27 9.9626 Tf -33.797 -19.872 Td [(On)-383(En)32(try)]TJ 0 g 0 G 0 g 0 G - 0 -20.175 Td [(desc)]TJ + 0 -19.872 Td [(desc)]TJ 0 g 0 G /F8 9.9626 Tf 26.209 0 Td [(the)-333(comm)27(unication)-333(descriptor.)]TJ -1.302 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf 23.073 0 Td [(.)]TJ -55.452 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf 41.898 0 Td [(.)]TJ 0 g 0 G -/F27 9.9626 Tf -96.416 -32.13 Td [(o)32(wned)]TJ +/F27 9.9626 Tf -96.416 -31.827 Td [(o)32(wned)]TJ 0 g 0 G -/F8 9.9626 Tf 36.647 0 Td [(Cho)-28(ose)-439(if)-439(y)28(ou)-439(only)-439(w)27(an)28(t)-439(o)28(wned)-439(indices)-439(\050)]TJ/F30 9.9626 Tf 183.494 0 Td [(owned=.true.)]TJ/F8 9.9626 Tf 62.764 0 Td [(\051)-439(or)-439(also)-439(halo)]TJ -257.998 -11.955 Td [(indices)-333(\050)]TJ/F30 9.9626 Tf 36.585 0 Td [(owned=.false.)]TJ/F8 9.9626 Tf 67.994 0 Td [(\051.)-444(Scop)-28(e:)]TJ/F27 9.9626 Tf 43.449 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf 23.073 0 Td [(.)]TJ -171.101 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(optional)]TJ/F8 9.9626 Tf 40.577 0 Td [(;)-333(default:)]TJ/F30 9.9626 Tf 43.448 0 Td [(.true.)]TJ/F8 9.9626 Tf 31.382 0 Td [(.)]TJ +/F8 9.9626 Tf 36.647 0 Td [(Cho)-28(ose)-439(if)-439(y)28(ou)-439(only)-439(w)27(an)28(t)-439(o)28(wned)-439(indices)-439(\050)]TJ/F30 9.9626 Tf 183.494 0 Td [(owned=.true.)]TJ/F8 9.9626 Tf 62.764 0 Td [(\051)-439(or)-439(also)-439(halo)]TJ -257.998 -11.955 Td [(indices)-333(\050)]TJ/F30 9.9626 Tf 36.585 0 Td [(owned=.false.)]TJ/F8 9.9626 Tf 67.994 0 Td [(\051.)-444(Scop)-28(e:)]TJ/F27 9.9626 Tf 43.449 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf 23.073 0 Td [(.)]TJ -171.101 -11.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 [(;)-333(default:)]TJ/F30 9.9626 Tf 43.448 0 Td [(.true.)]TJ/F8 9.9626 Tf 31.382 0 Td [(.)]TJ 0 g 0 G -/F27 9.9626 Tf -169.925 -34.06 Td [(On)-383(Return)]TJ +/F27 9.9626 Tf -169.925 -33.739 Td [(On)-383(Return)]TJ 0 g 0 G 0 g 0 G - 0 -20.174 Td [(F)96(unction)-384(v)64(alue)]TJ + 0 -19.872 Td [(F)96(unction)-384(v)64(alue)]TJ 0 g 0 G -/F8 9.9626 Tf 78.387 0 Td [(The)-292(global)-292(ind)1(ice)-1(s,)-300(returned)-291(as)-292(an)-292(allo)-28(catable)-292(in)28(teger)-292(arra)28(y)-292(of)]TJ -53.48 -11.956 Td [(rank)-333(1.)]TJ/F27 9.9626 Tf -24.907 -26.226 Td [(get)]TJ +/F8 9.9626 Tf 78.387 0 Td [(The)-292(global)-292(ind)1(ice)-1(s,)-300(returned)-291(as)-292(an)-292(allo)-28(catable)-292(in)28(teger)-292(arra)28(y)-292(of)]TJ -53.48 -11.955 Td [(rank)-333(1.)]TJ/F27 9.9626 Tf -24.907 -25.873 Td [(get)]TJ ET q -1 0 0 1 116.018 267.673 cm +1 0 0 1 116.018 351.928 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 119.455 267.474 Td [(con)32(text)-383(|)-384(Get)-383(comm)32(unication)-384(con)32(text)]TJ +/F27 9.9626 Tf 119.455 351.729 Td [(con)32(text)-383(|)-384(Get)-383(comm)32(unication)-384(con)32(text)]TJ 0 g 0 G 0 g 0 G -/F30 9.9626 Tf -19.56 -18.505 Td [(ictxt)-525(=)-525(desc%get_context\050\051)]TJ +/F30 9.9626 Tf -19.56 -18.39 Td [(ictxt)-525(=)-525(desc%get_context\050\051)]TJ 0 g 0 G -/F27 9.9626 Tf 0 -22.105 Td [(T)32(yp)-32(e:)]TJ +/F27 9.9626 Tf 0 -21.784 Td [(T)32(yp)-32(e:)]TJ 0 g 0 G /F8 9.9626 Tf 33.797 0 Td [(Async)28(hronous.)]TJ 0 g 0 G -/F27 9.9626 Tf -33.797 -20.174 Td [(On)-383(En)32(try)]TJ +/F27 9.9626 Tf -33.797 -19.872 Td [(On)-383(En)32(try)]TJ 0 g 0 G 0 g 0 G - 0 -20.175 Td [(desc)]TJ + 0 -19.872 Td [(desc)]TJ 0 g 0 G /F8 9.9626 Tf 26.209 0 Td [(the)-333(comm)27(unication)-333(descriptor.)]TJ -1.302 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf 23.073 0 Td [(.)]TJ 0 g 0 G -/F27 9.9626 Tf -80.359 -34.06 Td [(On)-383(Return)]TJ +/F27 9.9626 Tf -80.359 -33.74 Td [(On)-383(Return)]TJ +0 g 0 G +0 g 0 G + 0 -19.872 Td [(F)96(unction)-384(v)64(alue)]TJ +0 g 0 G +/F8 9.9626 Tf 78.387 0 Td [(The)-333(comm)27(unication)-333(con)28(text.)]TJ/F27 9.9626 Tf -78.387 -25.873 Td [(Clone)-383(|)-384(clone)-383(curren)32(t)-383(ob)-64(ject)]TJ +0 g 0 G 0 g 0 G +/F30 9.9626 Tf 0 -18.389 Td [(call)-1050(desc%clone\050descout,info\051)]TJ +0 g 0 G +/F27 9.9626 Tf 0 -21.784 Td [(T)32(yp)-32(e:)]TJ +0 g 0 G +/F8 9.9626 Tf 33.797 0 Td [(Async)28(hronous.)]TJ 0 g 0 G - 0 -20.174 Td [(F)96(unction)-384(v)64(alue)]TJ +/F27 9.9626 Tf -33.797 -19.872 Td [(On)-383(En)32(try)]TJ 0 g 0 G -/F8 9.9626 Tf 78.387 0 Td [(The)-333(comm)27(unication)-333(con)28(text.)]TJ 0 g 0 G - 88.488 -29.888 Td [(13)]TJ +/F8 9.9626 Tf 166.875 -29.888 Td [(13)]TJ 0 g 0 G ET endstream endobj -876 0 obj +885 0 obj << -/Length 5789 +/Length 5794 >> stream 0 g 0 G 0 g 0 G +0 g 0 G BT -/F27 9.9626 Tf 150.705 706.129 Td [(Clone)-383(|)-384(clone)-383(curren)32(t)-383(ob)-64(ject)]TJ +/F27 9.9626 Tf 150.705 706.129 Td [(desc)]TJ 0 g 0 G +/F8 9.9626 Tf 26.208 0 Td [(the)-333(comm)27(unication)-333(descriptor.)]TJ -1.302 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf 23.073 0 Td [(.)]TJ 0 g 0 G -/F30 9.9626 Tf 0 -18.389 Td [(call)-1050(desc%clone\050descout,info\051)]TJ +/F27 9.9626 Tf -80.358 -31.376 Td [(On)-383(Return)]TJ 0 g 0 G -/F27 9.9626 Tf 0 -21.736 Td [(T)32(yp)-32(e:)]TJ 0 g 0 G -/F8 9.9626 Tf 33.797 0 Td [(Async)28(hronous.)]TJ + 0 -18.927 Td [(descout)]TJ +0 g 0 G +/F8 9.9626 Tf 42.757 0 Td [(A)-333(cop)27(y)-333(of)-333(the)-334(in)1(put)-334(ob)-55(ject.)]TJ 0 g 0 G -/F27 9.9626 Tf -33.797 -19.853 Td [(On)-383(En)32(try)]TJ +/F27 9.9626 Tf -42.757 -18.927 Td [(info)]TJ 0 g 0 G +/F8 9.9626 Tf 23.758 0 Td [(Return)-333(co)-28(de.)]TJ/F27 9.9626 Tf -23.758 -25.465 Td [(CNV)-383(|)-384(con)32(v)32(ert)-383(in)32(ternal)-384(storage)-383(format)]TJ 0 g 0 G - 0 -19.852 Td [(desc)]TJ 0 g 0 G -/F8 9.9626 Tf 26.208 0 Td [(the)-333(comm)27(unication)-333(descriptor.)]TJ -1.302 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf 23.073 0 Td [(.)]TJ +/F30 9.9626 Tf 0 -18.39 Td [(call)-1050(desc%cnv\050mold\051)]TJ 0 g 0 G -/F27 9.9626 Tf -80.358 -33.691 Td [(On)-383(Return)]TJ +/F27 9.9626 Tf 0 -19.421 Td [(T)32(yp)-32(e:)]TJ 0 g 0 G +/F8 9.9626 Tf 33.797 0 Td [(Async)28(hronous.)]TJ 0 g 0 G - 0 -19.853 Td [(descout)]TJ +/F27 9.9626 Tf -33.797 -18.926 Td [(On)-383(En)32(try)]TJ 0 g 0 G -/F8 9.9626 Tf 42.757 0 Td [(A)-333(cop)27(y)-333(of)-333(the)-334(in)1(put)-334(ob)-55(ject.)]TJ 0 g 0 G -/F27 9.9626 Tf -42.757 -19.852 Td [(info)]TJ + 0 -18.927 Td [(desc)]TJ +0 g 0 G +/F8 9.9626 Tf 26.208 0 Td [(the)-333(comm)27(unication)-333(descriptor.)]TJ -1.302 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf 23.073 0 Td [(.)]TJ +0 g 0 G +/F27 9.9626 Tf -80.358 -30.882 Td [(mold)]TJ 0 g 0 G -/F8 9.9626 Tf 23.758 0 Td [(Return)-333(co)-28(de.)]TJ/F27 9.9626 Tf -23.758 -25.865 Td [(psb)]TJ +/F8 9.9626 Tf 29.805 0 Td [(the)-333(desred)-334(in)28(teger)-333(storage)-334(format.)]TJ -4.899 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf 23.073 0 Td [(.)]TJ -55.452 -11.955 Td [(Sp)-28(eci\014ed)-222(as:)-389(a)-222(ob)-56(ject)-222(of)-222(t)28(yp)-28(e)-222(deriv)28(e)-1(d)-222(from)-222(\050in)28(teger\051)]TJ/F30 9.9626 Tf 219.871 0 Td [(psb)]TJ +ET +q +1 0 0 1 411.8 457.267 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +Q +BT +/F30 9.9626 Tf 414.939 457.068 Td [(T)]TJ +ET +q +1 0 0 1 420.797 457.267 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +Q +BT +/F30 9.9626 Tf 423.935 457.068 Td [(base)]TJ +ET +q +1 0 0 1 445.484 457.267 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +Q +BT +/F30 9.9626 Tf 448.622 457.068 Td [(vect)]TJ ET q -1 0 0 1 168.641 515.283 cm +1 0 0 1 470.171 457.267 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +Q +BT +/F30 9.9626 Tf 473.309 457.068 Td [(type)]TJ/F8 9.9626 Tf 20.922 0 Td [(.)]TJ -343.526 -19.421 Td [(The)]TJ/F30 9.9626 Tf 20.085 0 Td [(mold)]TJ/F8 9.9626 Tf 23.848 0 Td [(argumen)28(ts)-294(ma)28(y)-294(b)-28(e)-294(emplo)28(y)28(ed)-294(to)-294(in)28(terface)-294(with)-293(sp)-28(ecial)-294(devices,)-302(suc)28(h)-294(as)]TJ -43.933 -11.955 Td [(GPUs)-333(and)-334(other)-333(accelerators.)]TJ/F27 9.9626 Tf 0 -25.466 Td [(psb)]TJ +ET +q +1 0 0 1 168.641 400.425 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 172.078 515.083 Td [(cd)]TJ +/F27 9.9626 Tf 172.078 400.226 Td [(cd)]TJ ET q -1 0 0 1 184.223 515.283 cm +1 0 0 1 184.223 400.425 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 187.66 515.083 Td [(get)]TJ +/F27 9.9626 Tf 187.66 400.226 Td [(get)]TJ ET q -1 0 0 1 203.782 515.283 cm +1 0 0 1 203.782 400.425 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 207.22 515.083 Td [(large)]TJ +/F27 9.9626 Tf 207.22 400.226 Td [(large)]TJ ET q -1 0 0 1 232.357 515.283 cm +1 0 0 1 232.357 400.425 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 235.794 515.083 Td [(threshold)-268(|)-268(Get)-268(threshold)-269(for)-268(index)-268(mapping)-268(switc)32(h)]TJ +/F27 9.9626 Tf 235.794 400.226 Td [(threshold)-268(|)-268(Get)-268(threshold)-269(for)-268(index)-268(mapping)-268(switc)32(h)]TJ 0 g 0 G 0 g 0 G -/F30 9.9626 Tf -85.089 -18.389 Td [(ith)-525(=)-525(psb_cd_get_large_threshold\050\051)]TJ +/F30 9.9626 Tf -85.089 -18.39 Td [(ith)-525(=)-525(psb_cd_get_large_threshold\050\051)]TJ 0 g 0 G -/F27 9.9626 Tf 0 -21.736 Td [(T)32(yp)-32(e:)]TJ +/F27 9.9626 Tf 0 -19.421 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.852 Td [(On)-383(Return)]TJ +/F27 9.9626 Tf -33.797 -18.926 Td [(On)-383(Return)]TJ 0 g 0 G 0 g 0 G - 0 -19.853 Td [(F)96(unction)-384(v)64(alue)]TJ + 0 -18.927 Td [(F)96(unction)-384(v)64(alue)]TJ 0 g 0 G -/F8 9.9626 Tf 78.386 0 Td [(The)-333(curren)27(t)-333(v)56(alue)-334(for)-333(the)-333(size)-334(threshold.)]TJ/F27 9.9626 Tf -78.386 -25.864 Td [(psb)]TJ +/F8 9.9626 Tf 78.386 0 Td [(The)-333(curren)27(t)-333(v)56(alue)-334(for)-333(the)-333(size)-334(threshold.)]TJ/F27 9.9626 Tf -78.386 -25.466 Td [(psb)]TJ ET q -1 0 0 1 168.641 409.588 cm +1 0 0 1 168.641 299.296 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 172.078 409.389 Td [(cd)]TJ +/F27 9.9626 Tf 172.078 299.096 Td [(cd)]TJ ET q -1 0 0 1 184.223 409.588 cm +1 0 0 1 184.223 299.296 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 187.66 409.389 Td [(set)]TJ +/F27 9.9626 Tf 187.66 299.096 Td [(set)]TJ ET q -1 0 0 1 202.573 409.588 cm +1 0 0 1 202.573 299.296 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 206.01 409.389 Td [(large)]TJ +/F27 9.9626 Tf 206.01 299.096 Td [(large)]TJ ET q -1 0 0 1 231.147 409.588 cm +1 0 0 1 231.147 299.296 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 234.585 409.389 Td [(threshold)-323(|)-324(Set)-323(threshold)-323(for)-324(index)-323(mapping)-324(switc)32(h)]TJ +/F27 9.9626 Tf 234.585 299.096 Td [(threshold)-323(|)-324(Set)-323(threshold)-323(for)-324(index)-323(mapping)-324(switc)32(h)]TJ 0 g 0 G 0 g 0 G -/F30 9.9626 Tf -83.88 -18.39 Td [(call)-525(psb_cd_set_large_threshold\050ith\051)]TJ +/F30 9.9626 Tf -83.88 -18.389 Td [(call)-525(psb_cd_set_large_threshold\050ith\051)]TJ 0 g 0 G -/F27 9.9626 Tf 0 -21.735 Td [(T)32(yp)-32(e:)]TJ +/F27 9.9626 Tf 0 -19.421 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.853 Td [(On)-383(En)32(try)]TJ +/F27 9.9626 Tf -33.797 -18.927 Td [(On)-383(En)32(try)]TJ +0 g 0 G +0 g 0 G + 0 -18.926 Td [(ith)]TJ +0 g 0 G +/F8 9.9626 Tf 18.984 0 Td [(the)-333(new)-334(threshold)-333(for)-333(comm)27(un)1(ic)-1(ati)1(on)-334(descriptors.)]TJ 5.923 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.378 0 Td [(global)]TJ/F8 9.9626 Tf 29.756 0 Td [(.)]TJ -62.135 -11.956 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.612 0 Td [(required)]TJ/F8 9.9626 Tf 41.898 0 Td [(.)]TJ -71.51 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.548 0 Td [(.)]TJ -43.034 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(in)28(teger)-333(v)55(alue)-333(greater)-334(th)1(an)-334(zero.)]TJ -24.906 -19.421 Td [(Note:)-756(the)-490(thr)1(e)-1(shold)-489(v)56(alue)-489(is)-490(only)-489(queried)-489(b)28(y)-489(the)-490(library)-489(at)-489(the)-489(time)-490(a)-489(call)]TJ 0 -11.955 Td [(to)]TJ/F30 9.9626 Tf 13.431 0 Td [(psb_cdall)]TJ/F8 9.9626 Tf 51.648 0 Td [(is)-459(executed,)-491(therefore)-459(c)27(hanging)-459(the)-459(threshold)-459(has)-459(no)-460(e\013ect)-459(on)]TJ -65.079 -11.955 Td [(comm)28(unication)-464(descriptors)-465(that)-464(ha)28(v)28(e)-464(already)-464(b)-28(een)-464(initialized.)-837(Moreo)28(v)27(er)-464(the)]TJ 0 -11.955 Td [(threshold)-333(m)28(ust)-334(ha)28(v)28(e)-334(the)-333(same)-333(v)55(alue)-333(on)-333(all)-334(pro)-27(ce)-1(sses.)]TJ 0 g 0 G + 166.874 -29.888 Td [(14)]TJ +0 g 0 G +ET + +endstream +endobj +893 0 obj +<< +/Length 9961 +>> +stream 0 g 0 G - 0 -19.852 Td [(ith)]TJ 0 g 0 G -/F8 9.9626 Tf 18.984 0 Td [(the)-333(new)-334(threshold)-333(for)-333(comm)27(un)1(ic)-1(ati)1(on)-334(descriptors.)]TJ 5.923 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.378 0 Td [(global)]TJ/F8 9.9626 Tf 29.756 0 Td [(.)]TJ -62.135 -11.956 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.612 0 Td [(required)]TJ/F8 9.9626 Tf 41.898 0 Td [(.)]TJ -71.51 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.548 0 Td [(.)]TJ -43.034 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(in)28(teger)-333(v)55(alue)-333(greater)-334(th)1(an)-334(zero.)]TJ -24.906 -21.736 Td [(Note:)-756(the)-490(thr)1(e)-1(shold)-489(v)56(alue)-489(is)-490(only)-489(queried)-489(b)28(y)-489(the)-490(library)-489(at)-489(the)-489(time)-490(a)-489(call)]TJ 0 -11.955 Td [(to)]TJ/F30 9.9626 Tf 13.431 0 Td [(psb_cdall)]TJ/F8 9.9626 Tf 51.648 0 Td [(is)-459(executed,)-491(therefore)-459(c)27(hanging)-459(the)-459(threshold)-459(has)-459(no)-460(e\013ect)-459(on)]TJ -65.079 -11.955 Td [(comm)28(unication)-464(descriptors)-465(that)-464(ha)28(v)28(e)-464(already)-464(b)-28(een)-464(initialized.)-837(Moreo)28(v)27(er)-464(the)]TJ 0 -11.955 Td [(threshold)-333(m)28(ust)-334(ha)28(v)28(e)-334(the)-333(same)-333(v)55(alue)-333(on)-333(all)-334(pro)-27(ce)-1(sses.)]TJ/F27 9.9626 Tf 0 -25.865 Td [(3.1.2)-1150(Named)-383(Constan)32(ts)]TJ +BT +/F27 9.9626 Tf 99.895 706.129 Td [(3.1.2)-1150(Named)-383(Constan)31(ts)]TJ 0 g 0 G - 0 -18.389 Td [(psb)]TJ + 0 -18.695 Td [(psb)]TJ ET q -1 0 0 1 168.641 180.082 cm +1 0 0 1 117.832 687.633 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 172.078 179.883 Td [(none)]TJ +/F27 9.9626 Tf 121.269 687.434 Td [(none)]TJ ET q -1 0 0 1 196.475 180.082 cm +1 0 0 1 145.666 687.633 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q 0 g 0 G BT -/F8 9.9626 Tf 204.894 179.883 Td [(Generic)-333(no-op;)]TJ +/F8 9.9626 Tf 154.084 687.434 Td [(Generic)-333(no-op;)]TJ 0 g 0 G -/F27 9.9626 Tf -54.189 -19.852 Td [(psb)]TJ +/F27 9.9626 Tf -54.189 -20.583 Td [(psb)]TJ ET q -1 0 0 1 168.641 160.23 cm +1 0 0 1 117.832 667.051 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 172.078 160.031 Td [(ro)-32(ot)]TJ +/F27 9.9626 Tf 121.269 666.851 Td [(ro)-32(ot)]TJ ET q -1 0 0 1 193.715 160.23 cm +1 0 0 1 142.905 667.051 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q 0 g 0 G BT -/F8 9.9626 Tf 202.133 160.031 Td [(Default)-333(ro)-28(ot)-333(pro)-28(cess)-334(for)-333(broadcast)-333(and)-333(sc)-1(atter)-333(op)-28(erations;)]TJ +/F8 9.9626 Tf 151.324 666.851 Td [(Default)-333(ro)-28(ot)-333(pro)-28(cess)-334(for)-333(broadcast)-333(and)-333(scatte)-1(r)-333(op)-28(erations;)]TJ 0 g 0 G -/F27 9.9626 Tf -51.428 -19.853 Td [(psb)]TJ +/F27 9.9626 Tf -51.429 -20.582 Td [(psb)]TJ ET q -1 0 0 1 168.641 140.377 cm +1 0 0 1 117.832 646.468 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 172.078 140.178 Td [(nohalo)]TJ +/F27 9.9626 Tf 121.269 646.269 Td [(nohalo)]TJ ET q -1 0 0 1 205.705 140.377 cm +1 0 0 1 154.895 646.468 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q 0 g 0 G BT -/F8 9.9626 Tf 214.123 140.178 Td [(Do)-333(not)-334(fetc)28(h)-333(halo)-333(e)-1(l)1(e)-1(men)28(ts;)]TJ +/F8 9.9626 Tf 163.314 646.269 Td [(Do)-333(not)-334(fetc)28(h)-333(halo)-333(elem)-1(en)28(ts;)]TJ 0 g 0 G -/F27 9.9626 Tf -63.418 -19.852 Td [(psb)]TJ +/F27 9.9626 Tf -63.419 -20.583 Td [(psb)]TJ ET q -1 0 0 1 168.641 120.525 cm +1 0 0 1 117.832 625.886 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 172.078 120.326 Td [(halo)]TJ +/F27 9.9626 Tf 121.269 625.686 Td [(halo)]TJ ET q -1 0 0 1 193.611 120.525 cm +1 0 0 1 142.802 625.886 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q 0 g 0 G BT -/F8 9.9626 Tf 202.03 120.326 Td [(F)83(etc)28(h)-333(halo)-333(e)-1(lemen)28(ts)-333(from)-333(neigh)27(b)-27(ouring)-334(pro)-27(cesse)-1(s;)]TJ -0 g 0 G - 115.549 -29.888 Td [(14)]TJ -0 g 0 G -ET - -endstream -endobj -883 0 obj -<< -/Length 9421 ->> -stream -0 g 0 G -0 g 0 G +/F8 9.9626 Tf 151.22 625.686 Td [(F)83(etc)28(h)-333(halo)-334(elemen)28(ts)-333(from)-334(neigh)28(b)-27(ouring)-334(pro)-27(ces)-1(ses;)]TJ 0 g 0 G -BT -/F27 9.9626 Tf 99.895 706.129 Td [(psb)]TJ +/F27 9.9626 Tf -51.325 -20.582 Td [(psb)]TJ ET q -1 0 0 1 117.832 706.328 cm +1 0 0 1 117.832 605.303 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 121.269 706.129 Td [(sum)]TJ +/F27 9.9626 Tf 121.269 605.104 Td [(sum)]TJ ET q -1 0 0 1 142.388 706.328 cm +1 0 0 1 142.388 605.303 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q 0 g 0 G BT -/F8 9.9626 Tf 150.806 706.129 Td [(Sum)-333(o)27(v)28(erlapp)-27(e)-1(d)-333(elemen)28(ts)]TJ +/F8 9.9626 Tf 150.806 605.104 Td [(Sum)-333(o)27(v)28(erlapp)-27(e)-1(d)-333(elemen)28(ts)]TJ 0 g 0 G -/F27 9.9626 Tf -50.911 -20.796 Td [(psb)]TJ +/F27 9.9626 Tf -50.911 -20.583 Td [(psb)]TJ ET q -1 0 0 1 117.832 685.532 cm +1 0 0 1 117.832 584.721 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 121.269 685.333 Td [(a)32(vg)]TJ +/F27 9.9626 Tf 121.269 584.521 Td [(a)32(vg)]TJ ET q -1 0 0 1 138.983 685.532 cm +1 0 0 1 138.983 584.721 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q 0 g 0 G BT -/F8 9.9626 Tf 147.401 685.333 Td [(Av)28(erage)-334(o)28(v)28(erlapp)-28(ed)-333(elemen)28(ts)]TJ +/F8 9.9626 Tf 147.401 584.521 Td [(Av)28(erage)-334(o)28(v)28(erlapp)-28(ed)-333(elemen)28(ts)]TJ 0 g 0 G -/F27 9.9626 Tf -47.506 -20.796 Td [(psb)]TJ +/F27 9.9626 Tf -47.506 -20.582 Td [(psb)]TJ ET q -1 0 0 1 117.832 664.737 cm +1 0 0 1 117.832 564.138 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 121.269 664.537 Td [(comm)]TJ +/F27 9.9626 Tf 121.269 563.939 Td [(comm)]TJ ET q -1 0 0 1 151.872 664.737 cm +1 0 0 1 151.872 564.138 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 155.309 664.537 Td [(halo)]TJ +/F27 9.9626 Tf 155.309 563.939 Td [(halo)]TJ ET q -1 0 0 1 176.842 664.737 cm +1 0 0 1 176.842 564.138 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q 0 g 0 G BT -/F8 9.9626 Tf 185.26 664.537 Td [(Exc)28(hange)-334(d)1(ata)-334(based)-333(on)-333(the)]TJ/F30 9.9626 Tf 126.387 0 Td [(halo_index)]TJ/F8 9.9626 Tf 55.625 0 Td [(list;)]TJ +/F8 9.9626 Tf 185.26 563.939 Td [(Exc)28(hange)-334(d)1(ata)-334(based)-333(on)-333(the)]TJ/F30 9.9626 Tf 126.387 0 Td [(halo_index)]TJ/F8 9.9626 Tf 55.625 0 Td [(list;)]TJ 0 g 0 G -/F27 9.9626 Tf -267.377 -20.795 Td [(psb)]TJ +/F27 9.9626 Tf -267.377 -20.583 Td [(psb)]TJ ET q -1 0 0 1 117.832 643.941 cm +1 0 0 1 117.832 543.556 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 121.269 643.742 Td [(comm)]TJ +/F27 9.9626 Tf 121.269 543.356 Td [(comm)]TJ ET q -1 0 0 1 151.872 643.941 cm +1 0 0 1 151.872 543.556 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 155.309 643.742 Td [(ext)]TJ +/F27 9.9626 Tf 155.309 543.356 Td [(ext)]TJ ET q -1 0 0 1 171.75 643.941 cm +1 0 0 1 171.75 543.556 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q 0 g 0 G BT -/F8 9.9626 Tf 180.168 643.742 Td [(Exc)28(hange)-334(d)1(ata)-334(based)-333(on)-333(the)]TJ/F30 9.9626 Tf 126.387 0 Td [(ext_index)]TJ/F8 9.9626 Tf 50.394 0 Td [(list;)]TJ +/F8 9.9626 Tf 180.168 543.356 Td [(Exc)28(hange)-334(d)1(ata)-334(based)-333(on)-333(the)]TJ/F30 9.9626 Tf 126.387 0 Td [(ext_index)]TJ/F8 9.9626 Tf 50.394 0 Td [(list;)]TJ 0 g 0 G -/F27 9.9626 Tf -257.054 -20.796 Td [(psb)]TJ +/F27 9.9626 Tf -257.054 -20.582 Td [(psb)]TJ ET q -1 0 0 1 117.832 623.145 cm +1 0 0 1 117.832 522.973 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 121.269 622.946 Td [(comm)]TJ +/F27 9.9626 Tf 121.269 522.774 Td [(comm)]TJ ET q -1 0 0 1 151.872 623.145 cm +1 0 0 1 151.872 522.973 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 155.309 622.946 Td [(o)32(vr)]TJ +/F27 9.9626 Tf 155.309 522.774 Td [(o)32(vr)]TJ ET q -1 0 0 1 172.172 623.145 cm +1 0 0 1 172.172 522.973 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q 0 g 0 G BT -/F8 9.9626 Tf 180.59 622.946 Td [(Exc)28(hange)-334(d)1(ata)-334(based)-333(on)-333(the)]TJ/F30 9.9626 Tf 126.387 0 Td [(ovrlap_index)]TJ/F8 9.9626 Tf 66.085 0 Td [(list;)]TJ +/F8 9.9626 Tf 180.59 522.774 Td [(Exc)28(hange)-334(d)1(ata)-334(based)-333(on)-333(the)]TJ/F30 9.9626 Tf 126.387 0 Td [(ovrlap_index)]TJ/F8 9.9626 Tf 66.085 0 Td [(list;)]TJ 0 g 0 G -/F27 9.9626 Tf -273.167 -20.796 Td [(psb)]TJ +/F27 9.9626 Tf -273.167 -20.583 Td [(psb)]TJ ET q -1 0 0 1 117.832 602.349 cm +1 0 0 1 117.832 502.391 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 121.269 602.15 Td [(comm)]TJ +/F27 9.9626 Tf 121.269 502.191 Td [(comm)]TJ ET q -1 0 0 1 151.872 602.349 cm +1 0 0 1 151.872 502.391 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 155.309 602.15 Td [(mo)32(v)]TJ +/F27 9.9626 Tf 155.309 502.191 Td [(mo)32(v)]TJ ET q -1 0 0 1 177.001 602.349 cm +1 0 0 1 177.001 502.391 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q 0 g 0 G BT -/F8 9.9626 Tf 185.419 602.15 Td [(Exc)28(hange)-334(d)1(ata)-334(based)-333(on)-333(the)]TJ/F30 9.9626 Tf 126.388 0 Td [(ovr_mst_idx)]TJ/F8 9.9626 Tf 60.854 0 Td [(list;)]TJ/F16 11.9552 Tf -272.766 -29.043 Td [(3.2)-1125(Sparse)-375(Matrix)-375(class)]TJ/F8 9.9626 Tf 0 -18.794 Td [(The)]TJ/F30 9.9626 Tf 20.653 0 Td [(psb)]TJ +/F8 9.9626 Tf 185.419 502.191 Td [(Exc)28(hange)-334(d)1(ata)-334(based)-333(on)-333(the)]TJ/F30 9.9626 Tf 126.388 0 Td [(ovr_mst_idx)]TJ/F8 9.9626 Tf 60.854 0 Td [(list;)]TJ/F16 11.9552 Tf -272.766 -28.76 Td [(3.2)-1125(Sparse)-375(Matrix)-375(class)]TJ/F8 9.9626 Tf 0 -18.695 Td [(The)]TJ/F30 9.9626 Tf 20.653 0 Td [(psb)]TJ ET q -1 0 0 1 136.867 554.512 cm +1 0 0 1 136.867 454.935 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 140.005 554.313 Td [(Tspmat)]TJ +/F30 9.9626 Tf 140.005 454.736 Td [(Tspmat)]TJ ET q -1 0 0 1 172.015 554.512 cm +1 0 0 1 172.015 454.935 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 175.153 554.313 Td [(type)]TJ/F8 9.9626 Tf 24.416 0 Td [(class)-351(con)28(tains)-351(all)-351(information)-350(ab)-28(out)-351(the)-351(lo)-27(cal)-351(p)-28(ortion)-351(of)]TJ -99.674 -11.955 Td [(the)-249(sparse)-249(matrix)-248(and)-249(its)-249(storage)-249(mo)-27(de.)-417(Its)-248(design)-249(is)-249(based)-249(on)-248(the)-249(ST)83(A)83(TE)-248(design)]TJ 0 -11.955 Td [(pattern)-347([)]TJ +/F30 9.9626 Tf 175.153 454.736 Td [(type)]TJ/F8 9.9626 Tf 24.416 0 Td [(class)-351(con)28(tains)-351(all)-351(information)-350(ab)-28(out)-351(the)-351(lo)-27(cal)-351(p)-28(ortion)-351(of)]TJ -99.674 -11.955 Td [(the)-249(sparse)-249(matrix)-248(and)-249(its)-249(storage)-249(mo)-27(de.)-417(Its)-248(design)-249(is)-249(based)-249(on)-248(the)-249(ST)83(A)83(TE)-248(design)]TJ 0 -11.955 Td [(pattern)-347([)]TJ 1 0 0 rg 1 0 0 RG [(13)]TJ 0 g 0 G @@ -5749,490 +5816,474 @@ BT 0 0 1 rg 0 0 1 RG [-347(4)]TJ 0 g 0 G - [-347(where)]TJ/F30 9.9626 Tf 0 -11.956 Td [(T)]TJ/F8 9.9626 Tf 8.552 0 Td [(is)-333(a)-334(placeholder)-333(for)-333(the)-334(d)1(ata)-334(t)28(yp)-28(e)-333(and)-333(precision)-334(v)56(arian)28(ts)]TJ + [-347(where)]TJ/F30 9.9626 Tf 0 -11.955 Td [(T)]TJ/F8 9.9626 Tf 8.552 0 Td [(is)-333(a)-334(placeholder)-333(for)-333(the)-334(d)1(ata)-334(t)28(yp)-28(e)-333(and)-333(precision)-334(v)56(arian)28(ts)]TJ 0 g 0 G -/F27 9.9626 Tf -8.552 -20.578 Td [(S)]TJ +/F27 9.9626 Tf -8.552 -20.419 Td [(S)]TJ 0 g 0 G /F8 9.9626 Tf 11.347 0 Td [(Single)-333(precision)-334(real;)]TJ 0 g 0 G -/F27 9.9626 Tf -11.347 -20.795 Td [(D)]TJ +/F27 9.9626 Tf -11.347 -20.582 Td [(D)]TJ 0 g 0 G /F8 9.9626 Tf 13.768 0 Td [(Double)-333(precision)-334(real;)]TJ 0 g 0 G -/F27 9.9626 Tf -13.768 -20.796 Td [(C)]TJ +/F27 9.9626 Tf -13.768 -20.583 Td [(C)]TJ 0 g 0 G /F8 9.9626 Tf 13.256 0 Td [(Single)-333(precision)-334(complex;)]TJ 0 g 0 G -/F27 9.9626 Tf -13.256 -20.796 Td [(Z)]TJ +/F27 9.9626 Tf -13.256 -20.582 Td [(Z)]TJ 0 g 0 G -/F8 9.9626 Tf 11.983 0 Td [(Double)-333(precision)-334(complex.)]TJ -11.983 -20.578 Td [(The)-222(actual)-222(data)-223(is)-222(con)28(tained)-222(in)-222(the)-223(p)-27(olymorphic)-223(comp)-27(onen)27(t)]TJ/F30 9.9626 Tf 255.515 0 Td [(a%a)]TJ/F8 9.9626 Tf 17.905 0 Td [(of)-222(t)28(yp)-28(e)]TJ/F30 9.9626 Tf 31.548 0 Td [(psb)]TJ +/F8 9.9626 Tf 11.983 0 Td [(Double)-333(precision)-334(complex.)]TJ -11.983 -20.418 Td [(The)-222(actual)-222(data)-223(is)-222(con)28(tained)-222(in)-222(the)-223(p)-27(olymorphic)-223(comp)-27(onen)27(t)]TJ/F30 9.9626 Tf 255.515 0 Td [(a%a)]TJ/F8 9.9626 Tf 17.905 0 Td [(of)-222(t)28(yp)-28(e)]TJ/F30 9.9626 Tf 31.548 0 Td [(psb)]TJ ET q -1 0 0 1 421.182 415.103 cm +1 0 0 1 421.182 316.486 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 424.32 414.904 Td [(T)]TJ +/F30 9.9626 Tf 424.32 316.287 Td [(T)]TJ ET q -1 0 0 1 430.178 415.103 cm +1 0 0 1 430.178 316.486 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 433.316 414.904 Td [(base)]TJ +/F30 9.9626 Tf 433.316 316.287 Td [(base)]TJ ET q -1 0 0 1 454.865 415.103 cm +1 0 0 1 454.865 316.486 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 458.003 414.904 Td [(sparse)]TJ +/F30 9.9626 Tf 458.003 316.287 Td [(sparse)]TJ ET q -1 0 0 1 490.013 415.103 cm +1 0 0 1 490.013 316.486 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 493.151 414.904 Td [(mat)]TJ/F8 9.9626 Tf 15.691 0 Td [(;)]TJ -408.947 -11.955 Td [(its)-300(sp)-28(eci\014c)-301(la)28(y)28(out)-300(can)-301(b)-28(e)-300(c)28(hosen)-301(dyn)1(am)-1(ically)-300(among)-300(the)-301(prede\014ned)-300(t)28(yp)-28(es,)-307(or)-300(an)]TJ 0 -11.955 Td [(en)28(tirely)-419(new)-419(storage)-419(la)28(y)27(out)-419(can)-419(b)-27(e)-419(implemen)27(ted)-419(and)-418(pass)-1(ed)-418(to)-419(the)-419(library)-419(at)]TJ 0 -11.956 Td [(run)28(time)-420(via)-419(the)]TJ/F30 9.9626 Tf 73.447 0 Td [(psb_spasb)]TJ/F8 9.9626 Tf 51.252 0 Td [(routine.)-703(The)-419(follo)28(wing)-420(v)28(ery)-419(common)-420(formats)-419(are)]TJ +/F30 9.9626 Tf 493.151 316.287 Td [(mat)]TJ/F8 9.9626 Tf 15.691 0 Td [(;)]TJ -408.947 -11.955 Td [(its)-300(sp)-28(eci\014c)-301(la)28(y)28(out)-300(can)-301(b)-28(e)-300(c)28(hosen)-301(dyn)1(am)-1(ically)-300(among)-300(the)-301(prede\014ned)-300(t)28(yp)-28(es,)-307(or)-300(an)]TJ 0 -11.956 Td [(en)28(tirely)-419(new)-419(storage)-419(la)28(y)27(out)-419(can)-419(b)-27(e)-419(implemen)27(ted)-419(and)-418(pass)-1(ed)-418(to)-419(the)-419(library)-419(at)]TJ 0 -11.955 Td [(run)28(time)-420(via)-419(the)]TJ/F30 9.9626 Tf 73.447 0 Td [(psb_spasb)]TJ/F8 9.9626 Tf 51.252 0 Td [(routine.)-703(The)-419(follo)28(wing)-420(v)28(ery)-419(common)-420(formats)-419(are)]TJ 0 g 0 G 0 g 0 G 0 g 0 G 0 g 0 G 0 g 0 G -/F30 9.9626 Tf -88.461 -20.692 Td [(type)-525(::)-525(psb_Tspmat_type)]TJ 10.461 -11.955 Td [(class\050psb_T_base_sparse_mat\051,)-525(allocatable)-1050(::)-525(a)]TJ -10.461 -11.956 Td [(end)-525(type)-1050(psb_Tspmat_type)]TJ +/F30 9.9626 Tf -88.461 -20.586 Td [(type)-525(::)-525(psb_Tspmat_type)]TJ 10.461 -11.955 Td [(class\050psb_T_base_sparse_mat\051,)-525(allocatable)-1050(::)-525(a)]TJ -10.461 -11.955 Td [(end)-525(type)-1050(psb_Tspmat_type)]TJ 0 g 0 G -/F8 9.9626 Tf -24.739 -30.053 Td [(Figure)-333(4:)-889(The)-333(PSBLAS)-334(de\014ned)-333(data)-333(t)28(yp)-28(e)-334(that)-333(con)28(tains)-333(a)-334(sparse)-333(matrix.)]TJ +/F8 9.9626 Tf -24.739 -30.054 Td [(Figure)-333(4:)-889(The)-333(PSBLAS)-334(de\014ned)-333(data)-333(t)28(yp)-28(e)-334(that)-333(con)28(tains)-333(a)-334(sparse)-333(matrix.)]TJ 0 g 0 G 0 g 0 G - -11.499 -24.069 Td [(precompiled)-333(in)-334(PSBLAS)-333(and)-333(th)28(us)-334(are)-333(alw)28(a)28(ys)-334(a)28(v)56(ailable:)]TJ + -11.499 -23.962 Td [(precompiled)-333(in)-334(PSBLAS)-333(and)-333(th)28(us)-334(are)-333(alw)28(a)28(ys)-334(a)28(v)56(ailable:)]TJ 0 g 0 G -/F27 9.9626 Tf 0 -20.578 Td [(psb)]TJ +/F27 9.9626 Tf 0 -20.418 Td [(psb)]TJ ET q -1 0 0 1 117.832 259.934 cm +1 0 0 1 117.832 161.69 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 121.269 259.735 Td [(T)]TJ +/F27 9.9626 Tf 121.269 161.491 Td [(T)]TJ ET q -1 0 0 1 129.926 259.934 cm +1 0 0 1 129.926 161.69 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 133.364 259.735 Td [(co)-32(o)]TJ +/F27 9.9626 Tf 133.364 161.491 Td [(co)-32(o)]TJ ET q -1 0 0 1 150.918 259.934 cm +1 0 0 1 150.918 161.69 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 154.355 259.735 Td [(sparse)]TJ +/F27 9.9626 Tf 154.355 161.491 Td [(sparse)]TJ ET q -1 0 0 1 185.985 259.934 cm +1 0 0 1 185.985 161.69 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 189.422 259.735 Td [(mat)]TJ +/F27 9.9626 Tf 189.422 161.491 Td [(mat)]TJ 0 g 0 G /F8 9.9626 Tf 24.554 0 Td [(Co)-28(ordinate)-333(storage;)]TJ 0 g 0 G -/F27 9.9626 Tf -114.081 -20.796 Td [(psb)]TJ +/F27 9.9626 Tf -114.081 -20.583 Td [(psb)]TJ ET q -1 0 0 1 117.832 239.138 cm +1 0 0 1 117.832 141.107 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 121.269 238.939 Td [(T)]TJ +/F27 9.9626 Tf 121.269 140.908 Td [(T)]TJ ET q -1 0 0 1 129.926 239.138 cm +1 0 0 1 129.926 141.107 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 133.364 238.939 Td [(csr)]TJ +/F27 9.9626 Tf 133.364 140.908 Td [(csr)]TJ ET q -1 0 0 1 148.38 239.138 cm +1 0 0 1 148.38 141.107 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 151.818 238.939 Td [(sparse)]TJ +/F27 9.9626 Tf 151.818 140.908 Td [(sparse)]TJ ET q -1 0 0 1 183.447 239.138 cm +1 0 0 1 183.447 141.107 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 186.884 238.939 Td [(mat)]TJ +/F27 9.9626 Tf 186.884 140.908 Td [(mat)]TJ 0 g 0 G /F8 9.9626 Tf 24.554 0 Td [(Compressed)-333(storage)-334(b)28(y)-333(ro)27(ws;)]TJ 0 g 0 G -/F27 9.9626 Tf -111.543 -20.796 Td [(psb)]TJ +/F27 9.9626 Tf -111.543 -20.582 Td [(psb)]TJ ET q -1 0 0 1 117.832 218.342 cm +1 0 0 1 117.832 120.525 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 121.269 218.143 Td [(T)]TJ +/F27 9.9626 Tf 121.269 120.326 Td [(T)]TJ ET q -1 0 0 1 129.926 218.342 cm +1 0 0 1 129.926 120.525 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 133.364 218.143 Td [(csc)]TJ +/F27 9.9626 Tf 133.364 120.326 Td [(csc)]TJ ET q -1 0 0 1 148.754 218.342 cm +1 0 0 1 148.754 120.525 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 152.191 218.143 Td [(sparse)]TJ +/F27 9.9626 Tf 152.191 120.326 Td [(sparse)]TJ ET q -1 0 0 1 183.821 218.342 cm +1 0 0 1 183.821 120.525 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 187.258 218.143 Td [(mat)]TJ -0 g 0 G -/F8 9.9626 Tf 24.553 0 Td [(Compressed)-334(storage)-333(b)28(y)-333(columns;)]TJ -111.916 -20.578 Td [(The)-373(inner)-373(sparse)-373(matrix)-373(has)-373(an)-373(asso)-28(ciated)-373(state,)-383(whic)28(h)-373(can)-373(tak)28(e)-373(the)-373(follo)27(wing)]TJ 0 -11.955 Td [(v)56(alues:)]TJ -0 g 0 G -/F27 9.9626 Tf 0 -20.578 Td [(Build:)]TJ -0 g 0 G -/F8 9.9626 Tf 35.409 0 Td [(State)-306(en)28(tered)-306(after)-307(the)-306(\014rst)-306(allo)-28(cation,)-311(and)-306(b)-28(efore)-306(the)-306(\014rst)-306(assem)27(bly;)-315(in)]TJ -10.502 -11.955 Td [(this)-333(state)-334(it)-333(is)-333(p)-28(ossible)-334(to)-333(add)-333(nonzero)-333(en)27(tries.)]TJ +/F27 9.9626 Tf 187.258 120.326 Td [(mat)]TJ 0 g 0 G -/F27 9.9626 Tf -24.907 -20.796 Td [(Assem)32(bled:)]TJ +/F8 9.9626 Tf 24.553 0 Td [(Compressed)-334(storage)-333(b)28(y)-333(columns;)]TJ 0 g 0 G -/F8 9.9626 Tf 61.508 0 Td [(State)-373(en)27(tered)-373(after)-373(the)-374(assem)28(bly;)-393(computations)-373(us)-1(i)1(ng)-374(the)-373(sparse)]TJ -36.601 -11.955 Td [(matrix,)-333(suc)27(h)-333(as)-333(matrix-v)28(ec)-1(tor)-333(pro)-28(d)1(ucts)-1(,)-333(are)-333(only)-333(p)-28(ossible)-334(in)-333(this)-333(state;)]TJ -0 g 0 G - 141.968 -29.888 Td [(15)]TJ + 54.959 -29.888 Td [(15)]TJ 0 g 0 G ET endstream endobj -891 0 obj +901 0 obj << -/Length 3956 +/Length 4142 >> stream 0 g 0 G 0 g 0 G -0 g 0 G -BT -/F27 9.9626 Tf 150.705 706.129 Td [(Up)-32(date:)]TJ -0 g 0 G -/F8 9.9626 Tf 45.302 0 Td [(State)-233(en)27(tered)-233(after)-233(a)-234(r)1(e)-1(in)1(italization;)-267(this)-233(is)-234(used)-233(to)-233(handle)-234(appli)1(c)-1(ation)1(s)]TJ -20.396 -11.955 Td [(in)-395(whic)28(h)-396(the)-395(same)-395(sparsit)28(y)-395(pattern)-396(is)-395(used)-395(m)28(ultiple)-395(times)-396(with)-395(di\013eren)28(t)]TJ 0 -11.955 Td [(co)-28(e\016cien)28(ts.)-427(In)-280(this)-280(state)-280(it)-281(i)1(s)-281(only)-280(p)-27(os)-1(sibl)1(e)-281(to)-280(en)28(ter)-280(co)-28(e\016cien)28(ts)-281(f)1(or)-281(already)]TJ 0 -11.956 Td [(existing)-333(nonzero)-334(en)28(tries.)]TJ -24.906 -20.089 Td [(The)-358(only)-357(storage)-358(v)56(arian)28(t)-358(supp)-28(orting)-357(the)-358(build)-357(state)-358(is)-358(COO;)-357(all)-358(other)-358(v)56(arian)28(ts)]TJ 0 -11.955 Td [(are)-333(obtained)-334(b)28(y)-333(con)28(v)27(ersion)-333(to/from)-333(it.)]TJ/F27 9.9626 Tf 0 -26.186 Td [(3.2.1)-1150(Sparse)-383(Matrix)-384(Metho)-32(ds)]TJ 0 -18.491 Td [(get)]TJ -ET -q -1 0 0 1 166.827 593.741 cm -[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S -Q BT -/F27 9.9626 Tf 170.264 593.542 Td [(nro)32(ws)-383(|)-384(Get)-383(n)32(um)32(b)-32(er)-383(of)-384(ro)32(ws)-383(in)-383(a)-384(sparse)-383(matrix)]TJ +/F8 9.9626 Tf 150.705 706.129 Td [(The)-373(inner)-373(sparse)-373(matrix)-373(has)-373(an)-373(asso)-28(ciated)-373(state,)-383(whic)28(h)-373(can)-373(tak)28(e)-373(the)-373(follo)27(win)1(g)]TJ 0 -11.955 Td [(v)56(alues:)]TJ 0 g 0 G +/F27 9.9626 Tf 0 -22.664 Td [(Build:)]TJ 0 g 0 G -/F30 9.9626 Tf -19.559 -18.491 Td [(nr)-525(=)-525(a%get_nrows\050\051)]TJ -0 g 0 G -/F27 9.9626 Tf 0 -22.082 Td [(T)32(yp)-32(e:)]TJ -0 g 0 G -/F8 9.9626 Tf 33.797 0 Td [(Async)28(hronous.)]TJ -0 g 0 G -/F27 9.9626 Tf -33.797 -20.143 Td [(On)-383(En)32(try)]TJ -0 g 0 G -0 g 0 G - 0 -20.144 Td [(a)]TJ -0 g 0 G -/F8 9.9626 Tf 10.551 0 Td [(the)-333(sparse)-334(matrix)]TJ 14.355 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ +/F8 9.9626 Tf 35.409 0 Td [(State)-306(en)28(tered)-306(after)-307(th)1(e)-307(\014rst)-306(allo)-28(cation)1(,)-312(and)-306(b)-28(efore)-306(the)-306(\014rst)-306(assem)27(bly;)-315(in)]TJ -10.503 -11.955 Td [(this)-333(state)-334(it)-333(is)-333(p)-28(ossible)-334(to)-333(add)-333(nonzero)-333(e)-1(n)28(tries.)]TJ 0 g 0 G - -57.285 -34.037 Td [(On)-383(Return)]TJ +/F27 9.9626 Tf -24.906 -23.576 Td [(Assem)32(bled:)]TJ 0 g 0 G +/F8 9.9626 Tf 61.508 0 Td [(State)-373(en)27(tered)-373(after)-373(the)-373(a)-1(ssem)28(bly;)-393(computations)-373(using)-374(the)-373(sparse)]TJ -36.602 -11.955 Td [(matrix,)-333(suc)27(h)-333(as)-333(matrix-v)28(e)-1(ctor)-333(pro)-28(du)1(c)-1(ts,)-333(are)-333(only)-334(p)-27(ossible)-334(in)-333(this)-333(state;)]TJ 0 g 0 G - 0 -20.144 Td [(F)96(unction)-384(v)64(alue)]TJ +/F27 9.9626 Tf -24.906 -23.576 Td [(Up)-32(date:)]TJ 0 g 0 G -/F8 9.9626 Tf 78.386 0 Td [(The)-333(n)27(um)28(b)-28(er)-333(of)-333(ro)28(ws)-334(of)-333(sparse)-333(matrix)]TJ/F30 9.9626 Tf 164.937 0 Td [(a)]TJ/F8 9.9626 Tf 5.231 0 Td [(.)]TJ/F27 9.9626 Tf -248.554 -26.186 Td [(get)]TJ +/F8 9.9626 Tf 45.302 0 Td [(State)-233(en)27(tered)-233(after)-233(a)-234(r)1(e)-1(in)1(italization;)-267(this)-233(is)-234(used)-233(to)-233(handle)-234(appli)1(c)-1(ation)1(s)]TJ -20.396 -11.955 Td [(in)-395(whic)28(h)-396(the)-395(same)-395(sparsit)28(y)-395(pattern)-396(is)-395(used)-395(m)28(ultiple)-395(times)-396(with)-395(di\013eren)28(t)]TJ 0 -11.955 Td [(co)-28(e\016cien)28(ts.)-427(In)-280(this)-280(state)-280(it)-281(i)1(s)-281(only)-280(p)-27(os)-1(sibl)1(e)-281(to)-280(en)28(ter)-280(co)-28(e\016cien)28(ts)-281(f)1(or)-281(already)]TJ 0 -11.955 Td [(existing)-333(nonzero)-334(en)28(tries.)]TJ -24.906 -22.663 Td [(The)-358(only)-357(storage)-358(v)56(arian)28(t)-358(supp)-28(orting)-357(the)-358(build)-357(state)-358(is)-358(COO;)-357(all)-358(other)-358(v)56(arian)28(ts)]TJ 0 -11.956 Td [(are)-333(obtained)-334(b)28(y)-333(con)28(v)27(ersion)-333(to/from)-333(it.)]TJ/F27 9.9626 Tf 0 -30.738 Td [(3.2.1)-1150(Sparse)-383(Matrix)-384(Metho)-32(ds)]TJ 0 -20.088 Td [(get)]TJ ET q -1 0 0 1 166.827 420.559 cm +1 0 0 1 166.827 479.338 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 170.264 420.36 Td [(ncols)-383(|)-384(Get)-383(n)32(um)32(b)-32(er)-383(of)-384(columns)-383(in)-384(a)-383(sparse)-383(matrix)]TJ +/F27 9.9626 Tf 170.264 479.139 Td [(nro)32(ws)-383(|)-384(Get)-383(n)32(um)32(b)-32(er)-383(of)-384(ro)32(ws)-383(in)-383(a)-384(sparse)-383(matrix)]TJ 0 g 0 G 0 g 0 G -/F30 9.9626 Tf -19.559 -18.491 Td [(nc)-525(=)-525(a%get_ncols\050\051)]TJ +/F30 9.9626 Tf -19.559 -20.088 Td [(nr)-525(=)-525(a%get_nrows\050\051)]TJ 0 g 0 G -/F27 9.9626 Tf 0 -22.082 Td [(T)32(yp)-32(e:)]TJ +/F27 9.9626 Tf 0 -24.656 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.143 Td [(On)-383(En)32(try)]TJ +/F27 9.9626 Tf -33.797 -23.576 Td [(On)-383(En)32(try)]TJ 0 g 0 G 0 g 0 G - 0 -20.144 Td [(a)]TJ + 0 -23.576 Td [(a)]TJ 0 g 0 G /F8 9.9626 Tf 10.551 0 Td [(the)-333(sparse)-334(matrix)]TJ 14.355 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ 0 g 0 G - -57.285 -34.037 Td [(On)-383(Return)]TJ + -57.285 -36.611 Td [(On)-383(Return)]TJ 0 g 0 G 0 g 0 G - 0 -20.144 Td [(F)96(unction)-384(v)64(alue)]TJ + 0 -23.576 Td [(F)96(unction)-384(v)64(alue)]TJ 0 g 0 G -/F8 9.9626 Tf 78.386 0 Td [(The)-333(n)27(um)28(b)-28(er)-333(of)-333(columns)-334(of)-333(sparse)-333(matrix)]TJ/F30 9.9626 Tf 180.684 0 Td [(a)]TJ/F8 9.9626 Tf 5.23 0 Td [(.)]TJ/F27 9.9626 Tf -264.3 -26.186 Td [(get)]TJ +/F8 9.9626 Tf 78.386 0 Td [(The)-333(n)27(um)28(b)-28(er)-333(of)-333(ro)28(ws)-334(of)-333(sparse)-333(matrix)]TJ/F30 9.9626 Tf 164.937 0 Td [(a)]TJ/F8 9.9626 Tf 5.231 0 Td [(.)]TJ/F27 9.9626 Tf -248.554 -30.738 Td [(get)]TJ ET q -1 0 0 1 166.827 247.377 cm +1 0 0 1 166.827 284.562 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 170.264 247.178 Td [(nnzeros)-383(|)-384(Get)-383(n)32(um)32(b)-32(er)-383(of)-384(nonzero)-383(elemen)32(ts)-383(in)-384(a)-383(sparse)-383(m)-1(atrix)]TJ +/F27 9.9626 Tf 170.264 284.363 Td [(ncols)-383(|)-384(Get)-383(n)32(um)32(b)-32(er)-383(of)-384(columns)-383(in)-384(a)-383(sparse)-383(matrix)]TJ 0 g 0 G 0 g 0 G -/F30 9.9626 Tf -19.559 -18.491 Td [(nz)-525(=)-525(a%get_nnzeros\050\051)]TJ +/F30 9.9626 Tf -19.559 -20.088 Td [(nc)-525(=)-525(a%get_ncols\050\051)]TJ 0 g 0 G -/F27 9.9626 Tf 0 -22.082 Td [(T)32(yp)-32(e:)]TJ +/F27 9.9626 Tf 0 -24.656 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.144 Td [(On)-383(En)32(try)]TJ +/F27 9.9626 Tf -33.797 -23.576 Td [(On)-383(En)32(try)]TJ 0 g 0 G 0 g 0 G - 0 -20.143 Td [(a)]TJ + 0 -23.575 Td [(a)]TJ 0 g 0 G /F8 9.9626 Tf 10.551 0 Td [(the)-333(sparse)-334(matrix)]TJ 14.355 -11.956 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ 0 g 0 G - -57.285 -34.036 Td [(On)-383(Return)]TJ + -57.285 -36.611 Td [(On)-383(Return)]TJ 0 g 0 G 0 g 0 G -/F8 9.9626 Tf 166.874 -29.888 Td [(16)]TJ + 0 -23.575 Td [(F)96(unction)-384(v)64(alue)]TJ +0 g 0 G +/F8 9.9626 Tf 78.386 0 Td [(The)-333(n)27(um)28(b)-28(er)-333(of)-333(columns)-334(of)-333(sparse)-333(matrix)]TJ/F30 9.9626 Tf 180.684 0 Td [(a)]TJ/F8 9.9626 Tf 5.23 0 Td [(.)]TJ +0 g 0 G + -97.426 -29.888 Td [(16)]TJ 0 g 0 G ET endstream endobj -895 0 obj +905 0 obj << -/Length 4362 +/Length 3830 >> stream 0 g 0 G 0 g 0 G -0 g 0 G BT -/F27 9.9626 Tf 99.895 706.129 Td [(F)96(unction)-384(v)64(alue)]TJ -0 g 0 G -/F8 9.9626 Tf 78.387 0 Td [(The)-333(n)27(u)1(m)27(b)-27(e)-1(r)-333(of)-333(nonzero)-333(elem)-1(en)28(ts)-333(stored)-333(in)-334(sparse)-333(matrix)]TJ/F30 9.9626 Tf 249.979 0 Td [(a)]TJ/F8 9.9626 Tf 5.231 0 Td [(.)]TJ/F27 9.9626 Tf -333.597 -19.297 Td [(Notes)]TJ -0 g 0 G -/F8 9.9626 Tf 12.177 -17.828 Td [(1.)]TJ -0 g 0 G - [-500(The)-462(function)-462(v)55(alue)-462(is)-462(sp)-28(eci\014c)-462(to)-462(the)-463(storage)-462(format)-462(of)-462(matrix)]TJ/F30 9.9626 Tf 296.649 0 Td [(a)]TJ/F8 9.9626 Tf 5.23 0 Td [(;)-527(some)]TJ -289.149 -11.955 Td [(storage)-465(formats)-466(emplo)28(y)-465(padding,)-498(th)27(u)1(s)-466(the)-465(returned)-465(v)55(alue)-465(for)-465(the)-466(same)]TJ 0 -11.955 Td [(matrix)-333(ma)27(y)-333(b)-28(e)-333(di\013eren)28(t)-334(for)-333(di\013eren)28(t)-333(storage)-334(c)28(hoices.)]TJ/F27 9.9626 Tf -24.907 -25.445 Td [(get)]TJ +/F27 9.9626 Tf 99.895 706.129 Td [(get)]TJ ET q -1 0 0 1 116.018 619.849 cm +1 0 0 1 116.018 706.328 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 119.455 619.649 Td [(size)-503(|)-503(Get)-503(maxim)32(um)-503(n)32(um)32(b)-32(er)-503(of)-503(nonzero)-503(elemen)32(ts)-503(in)-503(a)-503(sparse)]TJ -19.56 -11.955 Td [(matrix)]TJ +/F27 9.9626 Tf 119.455 706.129 Td [(nnzeros)-383(|)-384(Get)-383(n)32(um)32(b)-32(er)-383(of)-384(nonzero)-383(elemen)32(ts)-383(in)-384(a)-383(sparse)-383(ma)-1(trix)]TJ 0 g 0 G 0 g 0 G -/F30 9.9626 Tf 0 -18.389 Td [(maxnz)-525(=)-525(a%get_size\050\051)]TJ +/F30 9.9626 Tf -19.56 -18.549 Td [(nz)-525(=)-525(a%get_nnzeros\050\051)]TJ 0 g 0 G -/F27 9.9626 Tf 0 -19.297 Td [(T)32(yp)-32(e:)]TJ +/F27 9.9626 Tf 0 -22.175 Td [(T)32(yp)-32(e:)]TJ 0 g 0 G /F8 9.9626 Tf 33.797 0 Td [(Async)28(hronous.)]TJ 0 g 0 G -/F27 9.9626 Tf -33.797 -18.877 Td [(On)-383(En)32(try)]TJ +/F27 9.9626 Tf -33.797 -20.268 Td [(On)-383(En)32(try)]TJ 0 g 0 G 0 g 0 G - 0 -18.876 Td [(a)]TJ + 0 -20.268 Td [(a)]TJ 0 g 0 G -/F8 9.9626 Tf 10.551 0 Td [(the)-333(sparse)-334(matrix)]TJ 14.356 -11.956 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ +/F8 9.9626 Tf 10.551 0 Td [(the)-333(sparse)-334(matrix)]TJ 14.356 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ +0 g 0 G + -57.286 -34.13 Td [(On)-383(Return)]TJ 0 g 0 G - -57.286 -31.251 Td [(On)-383(Return)]TJ 0 g 0 G + 0 -20.268 Td [(F)96(unction)-384(v)64(alue)]TJ 0 g 0 G - 0 -18.877 Td [(F)96(unction)-384(v)64(alue)]TJ +/F8 9.9626 Tf 78.387 0 Td [(The)-333(n)27(u)1(m)27(b)-27(e)-1(r)-333(of)-333(nonzero)-333(elem)-1(en)28(ts)-333(stored)-333(in)-334(sparse)-333(matrix)]TJ/F30 9.9626 Tf 249.979 0 Td [(a)]TJ/F8 9.9626 Tf 5.231 0 Td [(.)]TJ/F27 9.9626 Tf -333.597 -22.261 Td [(Notes)]TJ 0 g 0 G -/F8 9.9626 Tf 78.387 0 Td [(The)-253(maxim)28(um)-254(n)28(um)28(b)-28(er)-253(of)-253(nonzero)-254(elemen)28(ts)-253(that)-253(can)-254(b)-27(e)-254(stored)]TJ -53.48 -11.955 Td [(in)-333(sparse)-334(matrix)]TJ/F30 9.9626 Tf 74.056 0 Td [(a)]TJ/F8 9.9626 Tf 8.551 0 Td [(using)-333(its)-334(curren)28(t)-333(memory)-334(allo)-27(cation.)]TJ/F27 9.9626 Tf -107.514 -25.445 Td [(sizeof)-383(|)-384(Get)-383(memory)-383(o)-32(ccupation)-384(in)-383(b)32(ytes)-384(of)-383(a)-383(sparse)-384(matrix)]TJ +/F8 9.9626 Tf 12.177 -20.182 Td [(1.)]TJ +0 g 0 G + [-500(The)-462(function)-462(v)55(alue)-462(is)-462(sp)-28(eci\014c)-462(to)-462(the)-463(storage)-462(format)-462(of)-462(matrix)]TJ/F30 9.9626 Tf 296.649 0 Td [(a)]TJ/F8 9.9626 Tf 5.23 0 Td [(;)-527(some)]TJ -289.149 -11.955 Td [(storage)-465(formats)-466(emplo)28(y)-465(padding,)-498(th)27(u)1(s)-466(the)-465(returned)-465(v)55(alue)-465(for)-465(the)-466(same)]TJ 0 -11.955 Td [(matrix)-333(ma)27(y)-333(b)-28(e)-333(di\013eren)28(t)-334(f)1(o)-1(r)-333(di\013eren)28(t)-333(storage)-334(c)28(hoices.)]TJ/F27 9.9626 Tf -24.907 -26.351 Td [(get)]TJ +ET +q +1 0 0 1 116.018 466.012 cm +[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S +Q +BT +/F27 9.9626 Tf 119.455 465.812 Td [(size)-503(|)-503(Get)-503(maxim)32(um)-503(n)32(um)32(b)-32(er)-503(of)-503(nonzero)-503(elemen)32(ts)-503(in)-503(a)-503(sparse)]TJ -19.56 -11.955 Td [(matrix)]TJ 0 g 0 G 0 g 0 G -/F30 9.9626 Tf 0 -18.389 Td [(memory_size)-525(=)-525(a%sizeof\050\051)]TJ +/F30 9.9626 Tf 0 -18.549 Td [(maxnz)-525(=)-525(a%get_size\050\051)]TJ 0 g 0 G -/F27 9.9626 Tf 0 -19.297 Td [(T)32(yp)-32(e:)]TJ +/F27 9.9626 Tf 0 -22.175 Td [(T)32(yp)-32(e:)]TJ 0 g 0 G /F8 9.9626 Tf 33.797 0 Td [(Async)28(hronous.)]TJ 0 g 0 G -/F27 9.9626 Tf -33.797 -18.876 Td [(On)-383(En)32(try)]TJ +/F27 9.9626 Tf -33.797 -20.268 Td [(On)-383(En)32(try)]TJ 0 g 0 G 0 g 0 G - 0 -18.877 Td [(a)]TJ + 0 -20.268 Td [(a)]TJ 0 g 0 G /F8 9.9626 Tf 10.551 0 Td [(the)-333(sparse)-334(matrix)]TJ 14.356 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ 0 g 0 G - -57.286 -31.252 Td [(On)-383(Return)]TJ + -57.286 -34.13 Td [(On)-383(Return)]TJ 0 g 0 G 0 g 0 G - 0 -18.877 Td [(F)96(unction)-384(v)64(alue)]TJ + 0 -20.268 Td [(F)96(unction)-384(v)64(alue)]TJ 0 g 0 G -/F8 9.9626 Tf 78.387 0 Td [(The)-333(memory)-334(o)-28(ccupati)1(on)-334(in)-333(b)28(ytes.)]TJ/F27 9.9626 Tf -78.387 -25.444 Td [(get)]TJ -ET -q -1 0 0 1 116.018 270.003 cm -[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S -Q -BT -/F27 9.9626 Tf 119.455 269.804 Td [(fm)32(t)-383(|)-384(Short)-383(description)-384(of)-383(the)-383(dynamic)-384(t)32(yp)-32(e)]TJ +/F8 9.9626 Tf 78.387 0 Td [(The)-253(maxim)28(um)-254(n)28(um)28(b)-28(er)-253(of)-253(nonzero)-254(elemen)28(ts)-253(that)-253(can)-254(b)-27(e)-254(stored)]TJ -53.48 -11.955 Td [(in)-333(sparse)-334(matrix)]TJ/F30 9.9626 Tf 74.056 0 Td [(a)]TJ/F8 9.9626 Tf 8.551 0 Td [(using)-333(its)-334(curren)28(t)-333(memory)-334(allo)-27(cation.)]TJ/F27 9.9626 Tf -107.514 -26.351 Td [(sizeof)-383(|)-384(Get)-383(memory)-383(o)-32(ccupation)-384(in)-383(b)32(ytes)-384(of)-383(a)-383(sparse)-384(matrix)]TJ 0 g 0 G 0 g 0 G -/F30 9.9626 Tf -19.56 -18.389 Td [(write\050*,*\051)-525(a%get_fmt\050\051)]TJ +/F30 9.9626 Tf 0 -18.548 Td [(memory_size)-525(=)-525(a%sizeof\050\051)]TJ 0 g 0 G -/F27 9.9626 Tf 0 -19.297 Td [(T)32(yp)-32(e:)]TJ +/F27 9.9626 Tf 0 -22.175 Td [(T)32(yp)-32(e:)]TJ 0 g 0 G /F8 9.9626 Tf 33.797 0 Td [(Async)28(hronous.)]TJ 0 g 0 G -/F27 9.9626 Tf -33.797 -18.877 Td [(On)-383(En)32(try)]TJ +/F27 9.9626 Tf -33.797 -20.268 Td [(On)-383(En)32(try)]TJ 0 g 0 G 0 g 0 G - 0 -18.877 Td [(a)]TJ + 0 -20.268 Td [(a)]TJ 0 g 0 G /F8 9.9626 Tf 10.551 0 Td [(the)-333(sparse)-334(matrix)]TJ 14.356 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ 0 g 0 G - -57.286 -31.251 Td [(On)-383(Return)]TJ + -57.286 -34.13 Td [(On)-383(Return)]TJ 0 g 0 G 0 g 0 G - 0 -18.877 Td [(F)96(unction)-384(v)64(alue)]TJ + 0 -20.268 Td [(F)96(unction)-384(v)64(alue)]TJ 0 g 0 G -/F8 9.9626 Tf 78.387 0 Td [(A)-484(short)-483(string)-484(describing)-484(the)-484(dynamic)-484(t)28(yp)-27(e)-484(of)-484(the)-484(matrix.)]TJ -53.48 -11.955 Td [(Prede\014ned)-333(v)55(alues)-333(include)]TJ/F30 9.9626 Tf 113.408 0 Td [(NULL)]TJ/F8 9.9626 Tf 20.922 0 Td [(,)]TJ/F30 9.9626 Tf 6.088 0 Td [(COO)]TJ/F8 9.9626 Tf 15.691 0 Td [(,)]TJ/F30 9.9626 Tf 6.088 0 Td [(CSR)]TJ/F8 9.9626 Tf 19.012 0 Td [(and)]TJ/F30 9.9626 Tf 19.372 0 Td [(CSC)]TJ/F8 9.9626 Tf 15.691 0 Td [(.)]TJ +/F8 9.9626 Tf 78.387 0 Td [(The)-333(memory)-334(o)-28(ccupati)1(on)-334(in)-333(b)28(ytes.)]TJ 0 g 0 G - -74.304 -29.888 Td [(17)]TJ + 88.488 -29.888 Td [(17)]TJ 0 g 0 G ET endstream endobj -900 0 obj +910 0 obj << -/Length 4633 +/Length 4817 >> stream 0 g 0 G 0 g 0 G BT -/F27 9.9626 Tf 150.705 706.129 Td [(is)]TJ +/F27 9.9626 Tf 150.705 706.129 Td [(get)]TJ +ET +q +1 0 0 1 166.827 706.328 cm +[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S +Q +BT +/F27 9.9626 Tf 170.264 706.129 Td [(fm)32(t)-383(|)-384(Short)-383(description)-384(of)-383(the)-383(dynamic)-384(t)32(yp)-32(e)]TJ +0 g 0 G +0 g 0 G +/F30 9.9626 Tf -19.559 -18.389 Td [(write\050*,*\051)-525(a%get_fmt\050\051)]TJ +0 g 0 G +/F27 9.9626 Tf 0 -20.78 Td [(T)32(yp)-32(e:)]TJ +0 g 0 G +/F8 9.9626 Tf 33.797 0 Td [(Async)28(hronous.)]TJ +0 g 0 G +/F27 9.9626 Tf -33.797 -19.47 Td [(On)-383(En)32(try)]TJ +0 g 0 G +0 g 0 G + 0 -19.47 Td [(a)]TJ +0 g 0 G +/F8 9.9626 Tf 10.551 0 Td [(the)-333(sparse)-334(matrix)]TJ 14.355 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ +0 g 0 G + -57.285 -32.735 Td [(On)-383(Return)]TJ +0 g 0 G +0 g 0 G + 0 -19.47 Td [(F)96(unction)-384(v)64(alue)]TJ +0 g 0 G +/F8 9.9626 Tf 78.386 0 Td [(A)-484(short)-483(string)-484(describing)-484(the)-484(dynamic)-484(t)28(yp)-28(e)-483(of)-484(the)-484(matrix.)]TJ -53.48 -11.955 Td [(Prede\014ned)-333(v)55(alues)-333(include)]TJ/F30 9.9626 Tf 113.409 0 Td [(NULL)]TJ/F8 9.9626 Tf 20.921 0 Td [(,)]TJ/F30 9.9626 Tf 6.088 0 Td [(COO)]TJ/F8 9.9626 Tf 15.691 0 Td [(,)]TJ/F30 9.9626 Tf 6.089 0 Td [(CSR)]TJ/F8 9.9626 Tf 19.012 0 Td [(and)]TJ/F30 9.9626 Tf 19.371 0 Td [(CSC)]TJ/F8 9.9626 Tf 15.691 0 Td [(.)]TJ/F27 9.9626 Tf -241.178 -25.7 Td [(is)]TJ ET q -1 0 0 1 159.094 706.328 cm +1 0 0 1 159.094 526.404 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 162.531 706.129 Td [(bld,)-383(is)]TJ +/F27 9.9626 Tf 162.531 526.205 Td [(bld,)-383(is)]TJ ET q -1 0 0 1 193.834 706.328 cm +1 0 0 1 193.834 526.404 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 197.271 706.129 Td [(up)-32(d,)-383(is)]TJ +/F27 9.9626 Tf 197.271 526.205 Td [(up)-32(d,)-383(is)]TJ ET q -1 0 0 1 232.075 706.328 cm +1 0 0 1 232.075 526.404 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 235.512 706.129 Td [(asb)-383(|)-384(Status)-383(c)32(hec)32(k)]TJ +/F27 9.9626 Tf 235.512 526.205 Td [(asb)-383(|)-384(Status)-383(c)32(hec)32(k)]TJ 0 g 0 G 0 g 0 G -/F30 9.9626 Tf -84.807 -18.389 Td [(if)-525(\050a%is_bld\050\051\051)-525(then)]TJ 0 -11.956 Td [(if)-525(\050a%is_upd\050\051\051)-525(then)]TJ 0 -11.955 Td [(if)-525(\050a%is_asb\050\051\051)-525(then)]TJ +/F30 9.9626 Tf -84.807 -18.39 Td [(if)-525(\050a%is_bld\050\051\051)-525(then)]TJ 0 -11.955 Td [(if)-525(\050a%is_upd\050\051\051)-525(then)]TJ 0 -11.955 Td [(if)-525(\050a%is_asb\050\051\051)-525(then)]TJ 0 g 0 G -/F27 9.9626 Tf 0 -20.429 Td [(T)32(yp)-32(e:)]TJ +/F27 9.9626 Tf 0 -20.78 Td [(T)32(yp)-32(e:)]TJ 0 g 0 G /F8 9.9626 Tf 33.797 0 Td [(Async)28(hronous.)]TJ 0 g 0 G -/F27 9.9626 Tf -33.797 -19.33 Td [(On)-383(En)32(try)]TJ +/F27 9.9626 Tf -33.797 -19.47 Td [(On)-383(En)32(try)]TJ 0 g 0 G 0 g 0 G - 0 -19.33 Td [(a)]TJ + 0 -19.47 Td [(a)]TJ 0 g 0 G -/F8 9.9626 Tf 10.551 0 Td [(the)-333(sparse)-334(matrix)]TJ 14.356 -11.956 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.378 0 Td [(lo)-32(cal)]TJ +/F8 9.9626 Tf 10.551 0 Td [(the)-333(sparse)-334(matrix)]TJ 14.356 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.378 0 Td [(lo)-32(cal)]TJ 0 g 0 G - -57.285 -32.384 Td [(On)-383(Return)]TJ + -57.285 -32.735 Td [(On)-383(Return)]TJ 0 g 0 G 0 g 0 G - 0 -19.33 Td [(F)96(unction)-384(v)64(alue)]TJ + 0 -19.47 Td [(F)96(unction)-384(v)64(alue)]TJ 0 g 0 G -/F8 9.9626 Tf 78.386 0 Td [(A)]TJ/F30 9.9626 Tf 9.728 0 Td [(logical)]TJ/F8 9.9626 Tf 38.869 0 Td [(v)56(alue)-227(indicating)-226(whether)-227(the)-226(m)-1(atr)1(ix)-227(is)-227(in)-226(the)-227(Build)1(,)]TJ -102.076 -11.956 Td [(Up)-28(date)-333(or)-333(Assem)27(bled)-333(state,)-333(resp)-28(ectiv)28(e)-1(l)1(y)83(.)]TJ/F27 9.9626 Tf -24.907 -25.639 Td [(is)]TJ +/F8 9.9626 Tf 78.386 0 Td [(A)]TJ/F30 9.9626 Tf 9.728 0 Td [(logical)]TJ/F8 9.9626 Tf 38.869 0 Td [(v)56(alue)-227(indicating)-226(whether)-227(the)-226(m)-1(atr)1(ix)-227(is)-227(in)-226(the)-227(Build)1(,)]TJ -102.076 -11.955 Td [(Up)-28(date)-333(or)-333(Assem)27(bled)-333(state,)-333(resp)-28(ectiv)28(e)-1(l)1(y)83(.)]TJ/F27 9.9626 Tf -24.907 -25.7 Td [(is)]TJ ET q -1 0 0 1 159.094 503.674 cm +1 0 0 1 159.094 322.57 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 162.531 503.475 Td [(lo)32(w)32(er,)-383(i)-1(s)]TJ +/F27 9.9626 Tf 162.531 322.37 Td [(lo)32(w)32(er,)-383(i)-1(s)]TJ ET q -1 0 0 1 204.44 503.674 cm +1 0 0 1 204.44 322.57 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 207.877 503.475 Td [(upp)-32(er,)-383(is)]TJ +/F27 9.9626 Tf 207.877 322.37 Td [(upp)-32(er,)-383(is)]TJ ET q -1 0 0 1 252.65 503.674 cm +1 0 0 1 252.65 322.57 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 256.087 503.475 Td [(triangle,)-384(is)]TJ +/F27 9.9626 Tf 256.087 322.37 Td [(triangle,)-384(is)]TJ ET q -1 0 0 1 309.931 503.674 cm +1 0 0 1 309.931 322.57 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 313.368 503.475 Td [(unit)-383(|)-384(F)96(ormat)-383(c)32(hec)32(k)]TJ +/F27 9.9626 Tf 313.368 322.37 Td [(unit)-383(|)-384(F)96(ormat)-383(c)32(hec)32(k)]TJ 0 g 0 G 0 g 0 G -/F30 9.9626 Tf -162.663 -18.39 Td [(if)-525(\050a%is_triangle\050\051\051)-525(then)]TJ 0 -11.955 Td [(if)-525(\050a%is_upper\050\051\051)-525(then)]TJ 0 -11.955 Td [(if)-525(\050a%is_lower\050\051\051)-525(then)]TJ 0 -11.955 Td [(if)-525(\050a%is_unit\050\051\051)-525(then)]TJ +/F30 9.9626 Tf -162.663 -18.389 Td [(if)-525(\050a%is_triangle\050\051\051)-525(then)]TJ 0 -11.955 Td [(if)-525(\050a%is_upper\050\051\051)-525(then)]TJ 0 -11.955 Td [(if)-525(\050a%is_lower\050\051\051)-525(then)]TJ 0 -11.955 Td [(if)-525(\050a%is_unit\050\051\051)-525(then)]TJ 0 g 0 G -/F27 9.9626 Tf 0 -20.43 Td [(T)32(yp)-32(e:)]TJ +/F27 9.9626 Tf 0 -20.78 Td [(T)32(yp)-32(e:)]TJ 0 g 0 G /F8 9.9626 Tf 33.797 0 Td [(Async)28(hronous.)]TJ 0 g 0 G -/F27 9.9626 Tf -33.797 -19.33 Td [(On)-383(En)32(try)]TJ +/F27 9.9626 Tf -33.797 -19.47 Td [(On)-383(En)32(try)]TJ 0 g 0 G 0 g 0 G - 0 -19.33 Td [(a)]TJ + 0 -19.47 Td [(a)]TJ 0 g 0 G /F8 9.9626 Tf 10.551 0 Td [(the)-333(sparse)-334(matrix)]TJ 14.356 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.378 0 Td [(lo)-32(cal)]TJ 0 g 0 G - -57.285 -32.385 Td [(On)-383(Return)]TJ -0 g 0 G -0 g 0 G - 0 -19.33 Td [(F)96(unction)-384(v)64(alue)]TJ -0 g 0 G -/F8 9.9626 Tf 78.386 0 Td [(A)]TJ/F30 9.9626 Tf 10.615 0 Td [(logical)]TJ/F8 9.9626 Tf 39.755 0 Td [(v)56(alue)-316(indicating)-315(whether)-316(the)-315(matrix)-316(i)1(s)-316(triangular;)]TJ -103.849 -11.955 Td [(if)]TJ/F30 9.9626 Tf 8.895 0 Td [(is_triangle\050\051)]TJ/F8 9.9626 Tf 71.079 0 Td [(returns)]TJ/F30 9.9626 Tf 34.189 0 Td [(.true.)]TJ/F8 9.9626 Tf 34.466 0 Td [(c)28(hec)27(k)-309(also)-310(if)-309(it)-310(is)-309(lo)27(w)28(er,)-314(upp)-28(er)-309(and)-310(with)]TJ -148.629 -11.955 Td [(a)-333(unit)-334(\050i)1(.e)-1(.)-444(assumed\051)-333(diagonal.)]TJ/F27 9.9626 Tf -24.907 -25.64 Td [(cscn)32(v)-383(|)-384(Con)32(v)32(ert)-383(to)-384(a)-383(di\013eren)32(t)-383(storage)-384(format)]TJ -0 g 0 G -0 g 0 G -/F30 9.9626 Tf 0 -18.389 Td [(call)-1050(a%cscnv\050b,info)-525([,)-525(type,)-525(mold,)-525(dupl]\051)]TJ 0 -11.955 Td [(call)-1050(a%cscnv\050info)-525([,)-525(type,)-525(mold,)-525(dupl]\051)]TJ -0 g 0 G -/F27 9.9626 Tf 0 -20.43 Td [(T)32(yp)-32(e:)]TJ + -57.285 -32.735 Td [(On)-383(Return)]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.33 Td [(On)-383(En)32(try)]TJ -0 g 0 G -0 g 0 G - 0 -19.33 Td [(a)]TJ 0 g 0 G -/F8 9.9626 Tf 10.551 0 Td [(the)-333(sparse)-334(matrix.)]TJ 14.356 -11.955 Td [(A)-333(v)55(ariable)-333(of)-333(t)27(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 -160.398 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.378 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf 23.073 0 Td [(.)]TJ + 0 -19.47 Td [(F)96(unction)-384(v)64(alue)]TJ 0 g 0 G -/F27 9.9626 Tf -80.358 -31.285 Td [(t)32(yp)-32(e)]TJ -0 g 0 G -/F8 9.9626 Tf 27.1 0 Td [(a)-333(string)-334(requesting)-333(a)-333(new)-334(format.)]TJ -2.193 -11.955 Td [(T)28(yp)-28(e:)-444(optional.)]TJ +/F8 9.9626 Tf 78.386 0 Td [(A)]TJ/F30 9.9626 Tf 10.615 0 Td [(logical)]TJ/F8 9.9626 Tf 39.755 0 Td [(v)56(alue)-316(indicating)-315(whether)-316(the)-315(matrix)-316(i)1(s)-316(triangular;)]TJ -103.849 -11.955 Td [(if)]TJ/F30 9.9626 Tf 8.895 0 Td [(is_triangle\050\051)]TJ/F8 9.9626 Tf 71.079 0 Td [(returns)]TJ/F30 9.9626 Tf 34.189 0 Td [(.true.)]TJ/F8 9.9626 Tf 34.466 0 Td [(c)28(hec)27(k)-309(also)-310(if)-309(it)-310(is)-309(lo)27(w)28(er,)-314(upp)-28(er)-309(and)-310(with)]TJ -148.629 -11.955 Td [(a)-333(unit)-334(\050i)1(.e)-1(.)-444(assumed\051)-333(diagonal.)]TJ 0 g 0 G 141.967 -29.888 Td [(18)]TJ 0 g 0 G @@ -6240,135 +6291,63 @@ ET endstream endobj -904 0 obj -<< -/Length 4346 ->> -stream -0 g 0 G -0 g 0 G -0 g 0 G -BT -/F27 9.9626 Tf 99.895 706.129 Td [(mold)]TJ -0 g 0 G -/F8 9.9626 Tf 29.805 0 Td [(a)-312(v)56(ariable)-312(of)]TJ/F30 9.9626 Tf 56.396 0 Td [(class\050psb_T_base_sparse_mat\051)]TJ/F8 9.9626 Tf 149.557 0 Td [(requesting)-312(a)-312(new)-312(format.)]TJ -210.851 -11.955 Td [(T)28(yp)-28(e:)-444(optional.)]TJ -0 g 0 G -/F27 9.9626 Tf -24.907 -21.236 Td [(dupl)]TJ -0 g 0 G -/F8 9.9626 Tf 27.259 0 Td [(an)-268(in)28(teger)-268(v)56(alue)-268(sp)-28(eci\014ng)-267(ho)27(w)-267(to)-268(handle)-268(duplicates)-268(\050see)-268(Named)-267(Constan)27(ts)]TJ -2.352 -11.955 Td [(b)-28(elo)28(w\051)]TJ -0 g 0 G -/F27 9.9626 Tf -24.907 -22.9 Td [(On)-383(Return)]TJ -0 g 0 G -0 g 0 G - 0 -21.236 Td [(b,a)]TJ -0 g 0 G -/F8 9.9626 Tf 20.098 0 Td [(A)-333(cop)27(y)-333(of)]TJ/F30 9.9626 Tf 45.386 0 Td [(a)]TJ/F8 9.9626 Tf 8.551 0 Td [(with)-333(a)-334(new)-333(storage)-333(format.)]TJ -49.128 -11.955 Td [(A)-333(v)55(ariable)-333(of)-333(t)27(yp)-27(e)]TJ/F30 9.9626 Tf 81.943 0 Td [(psb_Tspmat_type)]TJ/F8 9.9626 Tf 78.455 0 Td [(.)]TJ -0 g 0 G -/F27 9.9626 Tf -185.305 -21.236 Td [(info)]TJ -0 g 0 G -/F8 9.9626 Tf 23.758 0 Td [(Return)-333(co)-28(de.)]TJ/F27 9.9626 Tf -23.758 -27.633 Td [(csclip)-383(|)-384(Reduce)-383(to)-383(a)-384(submatrix)]TJ -0 g 0 G -0 g 0 G -/F30 9.9626 Tf 20.922 -18.999 Td [(call)-525(a%csclip\050b,info[,&)]TJ 15.691 -11.956 Td [(&)-525(imin,imax,jmin,jmax,rscale,cscale]\051)]TJ/F8 9.9626 Tf -21.669 -23.228 Td [(Returns)-222(the)-222(s)-1(u)1(bmatrix)]TJ/F30 9.9626 Tf 99.101 0 Td [(A\050imin:imax,jmin:jmax\051)]TJ/F8 9.9626 Tf 115.068 0 Td [(,)-244(optionally)-222(res)-1(calin)1(g)-223(ro)28(w/-)]TJ -229.113 -11.955 Td [(col)-333(indices)-334(to)-333(the)-333(range)]TJ/F30 9.9626 Tf 104.691 0 Td [(1:imax-imin+1,1:jmax-jmin+1)]TJ/F8 9.9626 Tf 141.219 0 Td [(.)]TJ -0 g 0 G -/F27 9.9626 Tf -245.91 -20.908 Td [(T)32(yp)-32(e:)]TJ -0 g 0 G -/F8 9.9626 Tf 33.797 0 Td [(Async)28(hronous.)]TJ -0 g 0 G -/F27 9.9626 Tf -33.797 -21.235 Td [(On)-383(En)32(try)]TJ -0 g 0 G -0 g 0 G - 0 -21.236 Td [(a)]TJ -0 g 0 G -/F8 9.9626 Tf 10.551 0 Td [(the)-333(sparse)-334(matrix.)]TJ 14.356 -11.955 Td [(A)-333(v)55(ariable)-333(of)-333(t)27(yp)-27(e)]TJ/F30 9.9626 Tf 81.943 0 Td [(psb_Tspmat_type)]TJ/F8 9.9626 Tf 78.455 0 Td [(.)]TJ -160.398 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf 23.073 0 Td [(.)]TJ -0 g 0 G -/F27 9.9626 Tf -80.359 -33.191 Td [(imin,imax,jmin,jma)-1(x)]TJ -0 g 0 G -/F8 9.9626 Tf 108.413 0 Td [(Minim)28(um)-333(and)-334(maxim)28(um)-333(ro)27(w)-333(and)-333(column)-333(indices.)]TJ -83.506 -11.955 Td [(T)28(yp)-28(e:)-444(optional.)]TJ -0 g 0 G -/F27 9.9626 Tf -24.907 -21.236 Td [(rscale,cscale)]TJ -0 g 0 G -/F8 9.9626 Tf 65.203 0 Td [(Whether)-333(to)-334(rescale)-333(ro)28(w/column)-334(ind)1(ic)-1(es.)-444(T)28(yp)-28(e:)-444(optional.)]TJ -0 g 0 G -/F27 9.9626 Tf -65.203 -23.228 Td [(On)-383(Return)]TJ -0 g 0 G -0 g 0 G - 0 -21.235 Td [(b)]TJ -0 g 0 G -/F8 9.9626 Tf 11.347 0 Td [(A)-333(cop)27(y)-333(of)-333(a)-333(s)-1(u)1(bmatrix)-334(of)]TJ/F30 9.9626 Tf 112.439 0 Td [(a)]TJ/F8 9.9626 Tf 5.231 0 Td [(.)]TJ -104.11 -11.955 Td [(A)-333(v)55(ariable)-333(of)-333(t)27(yp)-27(e)]TJ/F30 9.9626 Tf 81.943 0 Td [(psb_Tspmat_type)]TJ/F8 9.9626 Tf 78.455 0 Td [(.)]TJ -0 g 0 G -/F27 9.9626 Tf -185.305 -21.236 Td [(info)]TJ -0 g 0 G -/F8 9.9626 Tf 23.758 0 Td [(Return)-333(co)-28(de.)]TJ/F27 9.9626 Tf -23.758 -27.634 Td [(clean)]TJ -ET -q -1 0 0 1 126.043 231.126 cm -[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S -Q -BT -/F27 9.9626 Tf 129.48 230.927 Td [(zeros)-383(|)-384(Eliminate)-383(zero)-383(co)-32(e\016cien)32(t)-1(s)]TJ -0 g 0 G -0 g 0 G -/F30 9.9626 Tf -8.663 -18.999 Td [(call)-525(a%clean_zeros\050info\051)]TJ/F8 9.9626 Tf -5.978 -23.228 Td [(Eliminates)-285(zero)-284(co)-28(e\016cien)27(ts)-284(in)-285(the)-285(inp)1(ut)-285(matrix.)-428(Note)-285(that)-285(dep)-27(ending)-285(on)-285(the)]TJ -14.944 -11.956 Td [(in)28(ternal)-333(storage)-333(format,)-334(th)1(e)-1(r)1(e)-334(ma)28(y)-333(still)-333(b)-28(e)-333(some)-333(amoun)28(t)-334(of)-333(zero)-333(padding)-333(in)-333(the)]TJ 0 -11.955 Td [(output.)]TJ -0 g 0 G -/F27 9.9626 Tf 0 -23.228 Td [(T)32(yp)-32(e:)]TJ -0 g 0 G -/F8 9.9626 Tf 33.797 0 Td [(Async)28(hronous.)]TJ -0 g 0 G -/F27 9.9626 Tf -33.797 -21.235 Td [(On)-383(En)32(try)]TJ -0 g 0 G -0 g 0 G -/F8 9.9626 Tf 166.875 -29.888 Td [(19)]TJ -0 g 0 G -ET - -endstream -endobj -822 0 obj +827 0 obj << /Type /ObjStm /N 100 /First 866 -/Length 8734 +/Length 9063 >> stream -817 0 818 56 819 112 802 169 825 299 801 441 823 593 827 740 27 797 828 853 -829 910 830 967 831 1024 832 1081 833 1138 31 1195 824 1251 836 1394 834 1528 838 1675 -35 1731 39 1786 839 1841 835 1898 842 2016 840 2150 844 2297 845 2354 846 2411 847 2468 -848 2525 849 2582 850 2639 851 2696 852 2753 841 2810 854 2902 856 3016 857 3072 858 3128 -859 3183 860 3239 861 3295 862 3351 853 3408 866 3500 863 3642 864 3788 868 3934 43 3991 -47 4047 51 4103 55 4159 865 4215 870 4333 872 4447 59 4503 63 4558 67 4613 869 4668 -875 4760 877 4874 71 4931 75 4987 79 5043 83 5099 874 5154 882 5246 878 5396 879 5553 -880 5703 884 5849 87 5905 885 5960 886 6017 887 6074 881 6131 890 6236 892 6350 91 6407 -95 6463 99 6519 103 6575 889 6632 894 6724 896 6838 897 6894 107 6949 111 7005 115 7061 -893 7117 899 7209 901 7323 119 7380 123 7437 127 7493 898 7550 903 7642 905 7756 131 7812 -% 817 0 obj +819 0 820 56 821 112 822 168 823 224 824 280 807 337 830 467 806 609 828 761 +832 908 27 965 833 1021 834 1078 835 1135 836 1192 837 1249 838 1306 31 1363 829 1419 +841 1562 839 1696 843 1843 35 1899 39 1954 844 2009 840 2066 851 2184 845 2334 846 2481 +847 2632 853 2784 854 2841 855 2898 856 2955 857 3012 858 3069 859 3126 860 3183 861 3239 +862 3296 850 3353 864 3445 848 3587 849 3739 866 3891 867 3947 868 4003 869 4059 870 4115 +871 4171 43 4228 47 4283 863 4336 875 4428 872 4570 873 4716 877 4862 51 4919 55 4975 +59 5031 874 5087 879 5205 881 5319 63 5375 67 5430 71 5485 878 5540 884 5632 886 5746 +75 5803 887 5859 79 5916 83 5972 883 6028 892 6120 888 6270 889 6427 890 6577 894 6723 +87 6779 91 6834 895 6889 896 6946 897 7003 891 7060 900 7165 902 7279 95 7336 99 7392 +103 7448 899 7505 904 7597 906 7711 107 7767 907 7823 111 7879 115 7935 903 7991 909 8083 +% 819 0 obj << -/D [803 0 R /XYZ 99.895 393.995 null] +/D [808 0 R /XYZ 99.895 469.986 null] >> -% 818 0 obj +% 820 0 obj << -/D [803 0 R /XYZ 99.895 376.819 null] +/D [808 0 R /XYZ 99.895 440.855 null] >> -% 819 0 obj +% 821 0 obj << -/D [803 0 R /XYZ 115.138 139.255 null] +/D [808 0 R /XYZ 99.895 411.448 null] >> -% 802 0 obj +% 822 0 obj +<< +/D [808 0 R /XYZ 99.895 393.995 null] +>> +% 823 0 obj +<< +/D [808 0 R /XYZ 99.895 376.819 null] +>> +% 824 0 obj +<< +/D [808 0 R /XYZ 115.138 139.255 null] +>> +% 807 0 obj << -/Font << /F8 553 0 R /F30 759 0 R /F7 760 0 R /F32 763 0 R /F31 765 0 R /F45 820 0 R >> +/Font << /F8 557 0 R /F30 764 0 R /F7 765 0 R /F32 768 0 R /F31 770 0 R /F45 825 0 R >> /ProcSet [ /PDF /Text ] >> -% 825 0 obj +% 830 0 obj << /Type /Page -/Contents 826 0 R -/Resources 824 0 R +/Contents 831 0 R +/Resources 829 0 R /MediaBox [0 0 595.276 841.89] -/Parent 821 0 R -/Annots [ 801 0 R 823 0 R ] +/Parent 826 0 R +/Annots [ 806 0 R 828 0 R ] >> -% 801 0 obj +% 806 0 obj << /Type /Annot /Subtype /Link @@ -6376,7 +6355,7 @@ stream /Rect [269.731 674.788 284.454 683.699] /A << /S /GoTo /D (subsection.2.3) >> >> -% 823 0 obj +% 828 0 obj << /Type /Annot /Subtype /Link @@ -6384,57 +6363,57 @@ stream /Rect [169.998 271.903 176.972 282.751] /A << /S /GoTo /D (section.3) >> >> -% 827 0 obj +% 832 0 obj << -/D [825 0 R /XYZ 149.705 753.953 null] +/D [830 0 R /XYZ 149.705 753.953 null] >> % 27 0 obj << -/D [825 0 R /XYZ 150.705 716.092 null] +/D [830 0 R /XYZ 150.705 716.092 null] >> -% 828 0 obj +% 833 0 obj << -/D [825 0 R /XYZ 150.705 671.799 null] +/D [830 0 R /XYZ 150.705 671.799 null] >> -% 829 0 obj +% 834 0 obj << -/D [825 0 R /XYZ 150.705 649.383 null] +/D [830 0 R /XYZ 150.705 649.383 null] >> -% 830 0 obj +% 835 0 obj << -/D [825 0 R /XYZ 150.705 576.158 null] +/D [830 0 R /XYZ 150.705 576.158 null] >> -% 831 0 obj +% 836 0 obj << -/D [825 0 R /XYZ 150.705 530.385 null] +/D [830 0 R /XYZ 150.705 530.385 null] >> -% 832 0 obj +% 837 0 obj << -/D [825 0 R /XYZ 150.705 497.951 null] +/D [830 0 R /XYZ 150.705 497.951 null] >> -% 833 0 obj +% 838 0 obj << -/D [825 0 R /XYZ 150.705 478.303 null] +/D [830 0 R /XYZ 150.705 478.303 null] >> % 31 0 obj << -/D [825 0 R /XYZ 150.705 424.511 null] +/D [830 0 R /XYZ 150.705 424.511 null] >> -% 824 0 obj +% 829 0 obj << -/Font << /F27 552 0 R /F8 553 0 R /F11 745 0 R /F9 792 0 R /F30 759 0 R /F16 550 0 R /F17 725 0 R >> +/Font << /F27 556 0 R /F8 557 0 R /F11 750 0 R /F9 797 0 R /F30 764 0 R /F16 554 0 R /F17 730 0 R >> /ProcSet [ /PDF /Text ] >> -% 836 0 obj +% 841 0 obj << /Type /Page -/Contents 837 0 R -/Resources 835 0 R +/Contents 842 0 R +/Resources 840 0 R /MediaBox [0 0 595.276 841.89] -/Parent 821 0 R -/Annots [ 834 0 R ] +/Parent 826 0 R +/Annots [ 839 0 R ] >> -% 834 0 obj +% 839 0 obj << /Type /Annot /Subtype /Link @@ -6442,203 +6421,165 @@ stream /Rect [269.318 225.936 276.292 236.784] /A << /S /GoTo /D (section.6) >> >> -% 838 0 obj +% 843 0 obj << -/D [836 0 R /XYZ 98.895 753.953 null] +/D [841 0 R /XYZ 98.895 753.953 null] >> % 35 0 obj << -/D [836 0 R /XYZ 99.895 716.092 null] +/D [841 0 R /XYZ 99.895 716.092 null] >> % 39 0 obj << -/D [836 0 R /XYZ 99.895 331.305 null] +/D [841 0 R /XYZ 99.895 331.305 null] >> -% 839 0 obj +% 844 0 obj << -/D [836 0 R /XYZ 342.427 288.724 null] +/D [841 0 R /XYZ 342.427 288.724 null] >> -% 835 0 obj +% 840 0 obj << -/Font << /F16 550 0 R /F8 553 0 R /F30 759 0 R /F27 552 0 R /F14 762 0 R >> +/Font << /F16 554 0 R /F8 557 0 R /F30 764 0 R /F27 556 0 R /F14 767 0 R >> /ProcSet [ /PDF /Text ] >> -% 842 0 obj +% 851 0 obj << /Type /Page -/Contents 843 0 R -/Resources 841 0 R +/Contents 852 0 R +/Resources 850 0 R /MediaBox [0 0 595.276 841.89] -/Parent 821 0 R -/Annots [ 840 0 R ] +/Parent 826 0 R +/Annots [ 845 0 R 846 0 R 847 0 R ] >> -% 840 0 obj +% 845 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [452.103 457.229 459.077 469.184] +/Rect [452.103 458.757 459.077 470.712] /A << /S /GoTo /D (section.6) >> >> -% 844 0 obj -<< -/D [842 0 R /XYZ 149.705 753.953 null] ->> -% 845 0 obj -<< -/D [842 0 R /XYZ 150.705 353.756 null] ->> % 846 0 obj << -/D [842 0 R /XYZ 150.705 337.982 null] +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [356.323 258.941 371.046 269.79] +/A << /S /GoTo /D (subsection.3.3) >> >> % 847 0 obj << -/D [842 0 R /XYZ 150.705 322.207 null] ->> -% 848 0 obj -<< -/D [842 0 R /XYZ 150.705 306.433 null] ->> -% 849 0 obj -<< -/D [842 0 R /XYZ 150.705 290.659 null] ->> -% 850 0 obj -<< -/D [842 0 R /XYZ 150.705 163.801 null] ->> -% 851 0 obj -<< -/D [842 0 R /XYZ 150.705 148.027 null] +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [356.323 215.425 371.046 226.273] +/A << /S /GoTo /D (subsection.3.3) >> >> -% 852 0 obj +% 853 0 obj << -/D [842 0 R /XYZ 150.705 132.253 null] +/D [851 0 R /XYZ 149.705 753.953 null] >> -% 841 0 obj +% 854 0 obj << -/Font << /F27 552 0 R /F8 553 0 R /F14 762 0 R >> -/ProcSet [ /PDF /Text ] +/D [851 0 R /XYZ 150.705 355.818 null] >> -% 854 0 obj +% 855 0 obj << -/Type /Page -/Contents 855 0 R -/Resources 853 0 R -/MediaBox [0 0 595.276 841.89] -/Parent 821 0 R +/D [851 0 R /XYZ 150.705 340.197 null] >> % 856 0 obj << -/D [854 0 R /XYZ 98.895 753.953 null] +/D [851 0 R /XYZ 150.705 324.575 null] >> % 857 0 obj << -/D [854 0 R /XYZ 99.895 716.092 null] +/D [851 0 R /XYZ 150.705 308.954 null] >> % 858 0 obj << -/D [854 0 R /XYZ 99.895 700.92 null] +/D [851 0 R /XYZ 150.705 293.332 null] >> % 859 0 obj << -/D [854 0 R /XYZ 99.895 552.932 null] +/D [851 0 R /XYZ 150.705 179.041 null] >> % 860 0 obj << -/D [854 0 R /XYZ 99.895 534.433 null] +/D [851 0 R /XYZ 150.705 163.42 null] >> % 861 0 obj << -/D [854 0 R /XYZ 99.895 515.935 null] +/D [851 0 R /XYZ 150.705 147.798 null] >> % 862 0 obj << -/D [854 0 R /XYZ 147.412 280.287 null] +/D [851 0 R /XYZ 150.705 132.177 null] >> -% 853 0 obj +% 850 0 obj << -/Font << /F8 553 0 R /F27 552 0 R /F30 759 0 R >> +/Font << /F27 556 0 R /F8 557 0 R /F14 767 0 R >> /ProcSet [ /PDF /Text ] >> -% 866 0 obj +% 864 0 obj << /Type /Page -/Contents 867 0 R -/Resources 865 0 R +/Contents 865 0 R +/Resources 863 0 R /MediaBox [0 0 595.276 841.89] -/Parent 821 0 R -/Annots [ 863 0 R 864 0 R ] +/Parent 826 0 R +/Annots [ 848 0 R 849 0 R ] >> -% 863 0 obj +% 848 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [351.231 524.53 358.204 536.485] -/A << /S /GoTo /D (section.1) >> +/Rect [305.513 683.645 320.236 694.494] +/A << /S /GoTo /D (subsection.3.3) >> >> -% 864 0 obj +% 849 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [186.34 314.707 193.314 326.662] -/A << /S /GoTo /D (section.1) >> ->> -% 868 0 obj -<< -/D [866 0 R /XYZ 149.705 753.953 null] ->> -% 43 0 obj -<< -/D [866 0 R /XYZ 150.705 716.092 null] +/Rect [305.513 640.185 320.236 651.033] +/A << /S /GoTo /D (subsection.3.3) >> >> -% 47 0 obj +% 866 0 obj << -/D [866 0 R /XYZ 150.705 699.536 null] +/D [864 0 R /XYZ 98.895 753.953 null] >> -% 51 0 obj +% 867 0 obj << -/D [866 0 R /XYZ 150.705 501.668 null] +/D [864 0 R /XYZ 99.895 716.092 null] >> -% 55 0 obj +% 868 0 obj << -/D [866 0 R /XYZ 150.705 291.844 null] +/D [864 0 R /XYZ 99.895 615.842 null] >> -% 865 0 obj +% 869 0 obj << -/Font << /F27 552 0 R /F30 759 0 R /F8 553 0 R /F14 762 0 R /F10 761 0 R >> -/ProcSet [ /PDF /Text ] +/D [864 0 R /XYZ 99.895 600.277 null] >> % 870 0 obj << -/Type /Page -/Contents 871 0 R -/Resources 869 0 R -/MediaBox [0 0 595.276 841.89] -/Parent 873 0 R ->> -% 872 0 obj -<< -/D [870 0 R /XYZ 98.895 753.953 null] +/D [864 0 R /XYZ 99.895 584.712 null] >> -% 59 0 obj +% 871 0 obj << -/D [870 0 R /XYZ 99.895 718.084 null] +/D [864 0 R /XYZ 147.412 369.037 null] >> -% 63 0 obj +% 43 0 obj << -/D [870 0 R /XYZ 99.895 532.754 null] +/D [864 0 R /XYZ 99.895 209.589 null] >> -% 67 0 obj +% 47 0 obj << -/D [870 0 R /XYZ 99.895 279.429 null] +/D [864 0 R /XYZ 99.895 191.2 null] >> -% 869 0 obj +% 863 0 obj << -/Font << /F27 552 0 R /F30 759 0 R /F8 553 0 R >> +/Font << /F8 557 0 R /F27 556 0 R /F30 764 0 R >> /ProcSet [ /PDF /Text ] >> % 875 0 obj @@ -6647,290 +6588,399 @@ stream /Contents 876 0 R /Resources 874 0 R /MediaBox [0 0 595.276 841.89] -/Parent 873 0 R +/Parent 826 0 R +/Annots [ 872 0 R 873 0 R ] >> -% 877 0 obj +% 872 0 obj << -/D [875 0 R /XYZ 149.705 753.953 null] +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [351.231 623.115 358.204 635.07] +/A << /S /GoTo /D (section.1) >> >> -% 71 0 obj +% 873 0 obj << -/D [875 0 R /XYZ 150.705 718.084 null] ->> -% 75 0 obj +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [186.34 408.904 193.314 420.859] +/A << /S /GoTo /D (section.1) >> +>> +% 877 0 obj << -/D [875 0 R /XYZ 150.705 527.039 null] +/D [875 0 R /XYZ 149.705 753.953 null] >> -% 79 0 obj +% 51 0 obj << -/D [875 0 R /XYZ 150.705 421.344 null] +/D [875 0 R /XYZ 150.705 599.327 null] >> -% 83 0 obj +% 55 0 obj +<< +/D [875 0 R /XYZ 150.705 385.116 null] +>> +% 59 0 obj << -/D [875 0 R /XYZ 150.705 208.29 null] +/D [875 0 R /XYZ 150.705 194.815 null] >> % 874 0 obj << -/Font << /F27 552 0 R /F30 759 0 R /F8 553 0 R >> +/Font << /F27 556 0 R /F8 557 0 R /F14 767 0 R /F10 766 0 R /F30 764 0 R >> /ProcSet [ /PDF /Text ] >> -% 882 0 obj +% 879 0 obj << /Type /Page -/Contents 883 0 R -/Resources 881 0 R +/Contents 880 0 R +/Resources 878 0 R /MediaBox [0 0 595.276 841.89] -/Parent 873 0 R -/Annots [ 878 0 R 879 0 R 880 0 R ] +/Parent 882 0 R +>> +% 881 0 obj +<< +/D [879 0 R /XYZ 98.895 753.953 null] +>> +% 63 0 obj +<< +/D [879 0 R /XYZ 99.895 614.689 null] +>> +% 67 0 obj +<< +/D [879 0 R /XYZ 99.895 363.684 null] +>> +% 71 0 obj +<< +/D [879 0 R /XYZ 99.895 192.327 null] >> % 878 0 obj << +/Font << /F27 556 0 R /F8 557 0 R /F30 764 0 R >> +/ProcSet [ /PDF /Text ] +>> +% 884 0 obj +<< +/Type /Page +/Contents 885 0 R +/Resources 883 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 882 0 R +>> +% 886 0 obj +<< +/D [884 0 R /XYZ 149.705 753.953 null] +>> +% 75 0 obj +<< +/D [884 0 R /XYZ 150.705 611.434 null] +>> +% 887 0 obj +<< +/D [884 0 R /XYZ 395.482 457.068 null] +>> +% 79 0 obj +<< +/D [884 0 R /XYZ 150.705 412.181 null] +>> +% 83 0 obj +<< +/D [884 0 R /XYZ 150.705 311.051 null] +>> +% 883 0 obj +<< +/Font << /F27 556 0 R /F8 557 0 R /F30 764 0 R >> +/ProcSet [ /PDF /Text ] +>> +% 892 0 obj +<< +/Type /Page +/Contents 893 0 R +/Resources 891 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 882 0 R +/Annots [ 888 0 R 889 0 R 890 0 R ] +>> +% 888 0 obj +<< /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[0 1 0] -/Rect [137.251 529.406 149.206 537.819] +/Rect [137.251 429.829 149.206 438.242] /A << /S /GoTo /D (cite.DesignPatterns) >> >> -% 879 0 obj +% 889 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[0 1 0] -/Rect [218.095 529.406 230.05 537.819] +/Rect [218.095 429.829 230.05 438.242] /A << /S /GoTo /D (cite.Sparse03) >> >> -% 880 0 obj +% 890 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [408.687 526.916 415.661 538.871] +/Rect [408.687 427.339 415.661 439.294] /A << /S /GoTo /D (figure.4) >> >> -% 884 0 obj +% 894 0 obj << -/D [882 0 R /XYZ 98.895 753.953 null] +/D [892 0 R /XYZ 98.895 753.953 null] >> % 87 0 obj << -/D [882 0 R /XYZ 99.895 585.335 null] +/D [892 0 R /XYZ 99.895 716.092 null] >> -% 885 0 obj +% 91 0 obj << -/D [882 0 R /XYZ 120.548 554.313 null] +/D [892 0 R /XYZ 99.895 485.606 null] >> -% 886 0 obj +% 895 0 obj << -/D [882 0 R /XYZ 404.863 414.904 null] +/D [892 0 R /XYZ 120.548 454.736 null] >> -% 887 0 obj +% 896 0 obj << -/D [882 0 R /XYZ 155.008 316.337 null] +/D [892 0 R /XYZ 404.863 316.287 null] >> -% 881 0 obj +% 897 0 obj +<< +/D [892 0 R /XYZ 155.008 217.826 null] +>> +% 891 0 obj << -/Font << /F27 552 0 R /F8 553 0 R /F30 759 0 R /F16 550 0 R >> +/Font << /F27 556 0 R /F8 557 0 R /F30 764 0 R /F16 554 0 R >> /ProcSet [ /PDF /Text ] >> -% 890 0 obj +% 900 0 obj << /Type /Page -/Contents 891 0 R -/Resources 889 0 R +/Contents 901 0 R +/Resources 899 0 R /MediaBox [0 0 595.276 841.89] -/Parent 873 0 R ->> -% 892 0 obj -<< -/D [890 0 R /XYZ 149.705 753.953 null] +/Parent 882 0 R >> -% 91 0 obj +% 902 0 obj << -/D [890 0 R /XYZ 150.705 621.552 null] +/D [900 0 R /XYZ 149.705 753.953 null] >> % 95 0 obj << -/D [890 0 R /XYZ 150.705 605.497 null] +/D [900 0 R /XYZ 150.705 509.604 null] >> % 99 0 obj << -/D [890 0 R /XYZ 150.705 432.315 null] +/D [900 0 R /XYZ 150.705 491.094 null] >> % 103 0 obj << -/D [890 0 R /XYZ 150.705 259.133 null] +/D [900 0 R /XYZ 150.705 296.318 null] >> -% 889 0 obj +% 899 0 obj << -/Font << /F27 552 0 R /F8 553 0 R /F30 759 0 R >> +/Font << /F8 557 0 R /F27 556 0 R /F30 764 0 R >> /ProcSet [ /PDF /Text ] >> -% 894 0 obj +% 904 0 obj << /Type /Page -/Contents 895 0 R -/Resources 893 0 R +/Contents 905 0 R +/Resources 903 0 R /MediaBox [0 0 595.276 841.89] -/Parent 873 0 R +/Parent 882 0 R >> -% 896 0 obj +% 906 0 obj << -/D [894 0 R /XYZ 98.895 753.953 null] +/D [904 0 R /XYZ 98.895 753.953 null] >> -% 897 0 obj +% 107 0 obj << -/D [894 0 R /XYZ 99.895 684.42 null] +/D [904 0 R /XYZ 99.895 718.084 null] >> -% 107 0 obj +% 907 0 obj << -/D [894 0 R /XYZ 99.895 631.604 null] +/D [904 0 R /XYZ 99.895 532.185 null] >> % 111 0 obj << -/D [894 0 R /XYZ 99.895 444.727 null] +/D [904 0 R /XYZ 99.895 477.767 null] >> % 115 0 obj << -/D [894 0 R /XYZ 99.895 281.759 null] ->> -% 893 0 obj -<< -/Font << /F27 552 0 R /F8 553 0 R /F30 759 0 R >> -/ProcSet [ /PDF /Text ] ->> -% 899 0 obj -<< -/Type /Page -/Contents 900 0 R -/Resources 898 0 R -/MediaBox [0 0 595.276 841.89] -/Parent 873 0 R ->> -% 901 0 obj -<< -/D [899 0 R /XYZ 149.705 753.953 null] ->> -% 119 0 obj -<< -/D [899 0 R /XYZ 150.705 718.084 null] ->> -% 123 0 obj -<< -/D [899 0 R /XYZ 150.705 515.43 null] ->> -% 127 0 obj -<< -/D [899 0 R /XYZ 150.705 288.866 null] +/D [904 0 R /XYZ 99.895 279.894 null] >> -% 898 0 obj +% 903 0 obj << -/Font << /F27 552 0 R /F30 759 0 R /F8 553 0 R >> +/Font << /F27 556 0 R /F30 764 0 R /F8 557 0 R >> /ProcSet [ /PDF /Text ] >> -% 903 0 obj +% 909 0 obj << /Type /Page -/Contents 904 0 R -/Resources 902 0 R +/Contents 910 0 R +/Resources 908 0 R /MediaBox [0 0 595.276 841.89] -/Parent 906 0 R ->> -% 905 0 obj -<< -/D [903 0 R /XYZ 98.895 753.953 null] ->> -% 131 0 obj -<< -/D [903 0 R /XYZ 99.895 567.978 null] +/Parent 882 0 R >> endstream endobj -910 0 obj +915 0 obj << -/Length 3969 +/Length 4390 >> stream 0 g 0 G 0 g 0 G -0 g 0 G BT -/F27 9.9626 Tf 150.705 706.129 Td [(a)]TJ +/F27 9.9626 Tf 99.895 706.129 Td [(cscn)32(v)-383(|)-384(Con)32(v)32(ert)-383(to)-384(a)-383(di\013eren)32(t)-383(storage)-384(format)]TJ 0 g 0 G -/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 +/F30 9.9626 Tf 0 -18.389 Td [(call)-1050(a%cscnv\050b,info)-525([,)-525(type,)-525(mold,)-525(dupl]\051)]TJ 0 -11.956 Td [(call)-1050(a%cscnv\050info)-525([,)-525(type,)-525(mold,)-525(dupl]\051)]TJ 0 g 0 G +/F27 9.9626 Tf 0 -21.446 Td [(T)32(yp)-32(e:)]TJ 0 g 0 G - 0 -20.182 Td [(a)]TJ +/F8 9.9626 Tf 33.797 0 Td [(Async)28(hronous.)]TJ 0 g 0 G -/F8 9.9626 Tf 10.55 0 Td [(The)-333(matrix)]TJ/F30 9.9626 Tf 52.886 0 Td [(a)]TJ/F8 9.9626 Tf 8.551 0 Td [(without)-333(zero)-334(co)-27(e\016)-1(cien)28(ts.)]TJ -47.081 -11.955 Td [(A)-333(v)55(ariable)-333(of)-333(t)27(yp)-27(e)]TJ/F30 9.9626 Tf 81.943 0 Td [(psb_Tspmat_type)]TJ/F8 9.9626 Tf 78.455 0 Td [(.)]TJ +/F27 9.9626 Tf -33.797 -19.737 Td [(On)-383(En)32(try)]TJ +0 g 0 G +0 g 0 G + 0 -19.736 Td [(a)]TJ +0 g 0 G +/F8 9.9626 Tf 10.551 0 Td [(the)-333(sparse)-334(matrix.)]TJ 14.356 -11.955 Td [(A)-333(v)55(ariable)-333(of)-333(t)27(yp)-27(e)]TJ/F30 9.9626 Tf 81.943 0 Td [(psb_Tspmat_type)]TJ/F8 9.9626 Tf 78.455 0 Td [(.)]TJ -160.398 -11.956 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf 23.073 0 Td [(.)]TJ +0 g 0 G +/F27 9.9626 Tf -80.359 -31.691 Td [(t)32(yp)-32(e)]TJ +0 g 0 G +/F8 9.9626 Tf 27.1 0 Td [(a)-333(string)-334(requesting)-333(a)-333(new)-334(format.)]TJ -2.193 -11.956 Td [(T)28(yp)-28(e:)-444(optional.)]TJ +0 g 0 G +/F27 9.9626 Tf -24.907 -19.736 Td [(mold)]TJ 0 g 0 G -/F27 9.9626 Tf -185.304 -20.181 Td [(info)]TJ +/F8 9.9626 Tf 29.805 0 Td [(a)-312(v)56(ariable)-312(of)]TJ/F30 9.9626 Tf 56.396 0 Td [(class\050psb_T_base_sparse_mat\051)]TJ/F8 9.9626 Tf 149.557 0 Td [(requesting)-312(a)-312(new)-312(format.)]TJ -210.851 -11.955 Td [(T)28(yp)-28(e:)-444(optional.)]TJ +0 g 0 G +/F27 9.9626 Tf -24.907 -19.737 Td [(dupl)]TJ +0 g 0 G +/F8 9.9626 Tf 27.259 0 Td [(an)-268(in)28(teger)-268(v)56(alue)-268(sp)-28(eci\014ng)-267(ho)27(w)-267(to)-268(handle)-268(duplicates)-268(\050see)-268(Named)-267(Constan)27(ts)]TJ -2.352 -11.955 Td [(b)-28(elo)28(w\051)]TJ +0 g 0 G +/F27 9.9626 Tf -24.907 -21.446 Td [(On)-383(Return)]TJ +0 g 0 G +0 g 0 G + 0 -19.737 Td [(b,a)]TJ +0 g 0 G +/F8 9.9626 Tf 20.098 0 Td [(A)-333(cop)27(y)-333(of)]TJ/F30 9.9626 Tf 45.386 0 Td [(a)]TJ/F8 9.9626 Tf 8.551 0 Td [(with)-333(a)-334(new)-333(storage)-333(format.)]TJ -49.128 -11.955 Td [(A)-333(v)55(ariable)-333(of)-333(t)27(yp)-27(e)]TJ/F30 9.9626 Tf 81.943 0 Td [(psb_Tspmat_type)]TJ/F8 9.9626 Tf 78.455 0 Td [(.)]TJ +0 g 0 G +/F27 9.9626 Tf -185.305 -19.737 Td [(info)]TJ +0 g 0 G +/F8 9.9626 Tf 23.758 0 Td [(Return)-333(co)-28(de.)]TJ -23.758 -21.446 Td [(The)]TJ/F30 9.9626 Tf 20.085 0 Td [(mold)]TJ/F8 9.9626 Tf 23.848 0 Td [(argumen)28(ts)-294(ma)28(y)-294(b)-28(e)-294(emplo)28(y)28(ed)-294(to)-294(in)28(terface)-294(with)-293(sp)-28(ecial)-294(devices,)-302(suc)28(h)-294(as)]TJ -43.933 -11.955 Td [(GPUs)-333(and)-334(other)-333(accelerators.)]TJ/F27 9.9626 Tf 0 -25.815 Td [(csclip)-383(|)-384(Reduce)-383(to)-383(a)-384(submatrix)]TJ +0 g 0 G +0 g 0 G +/F30 9.9626 Tf 20.922 -18.389 Td [(call)-525(a%csclip\050b,info[,&)]TJ 15.691 -11.955 Td [(&)-525(imin,imax,jmin,jmax,rscale,cscale]\051)]TJ/F8 9.9626 Tf -21.669 -21.447 Td [(Returns)-222(the)-222(submatrix)]TJ/F30 9.9626 Tf 99.101 0 Td [(A\050imin:imax,jmin:jmax\051)]TJ/F8 9.9626 Tf 115.068 0 Td [(,)-244(optionally)-222(res)-1(calin)1(g)-223(ro)28(w/-)]TJ -229.113 -11.955 Td [(col)-333(indices)-334(to)-333(the)-333(range)]TJ/F30 9.9626 Tf 104.691 0 Td [(1:imax-imin+1,1:jmax-jmin+1)]TJ/F8 9.9626 Tf 141.219 0 Td [(.)]TJ +0 g 0 G +/F27 9.9626 Tf -245.91 -19.548 Td [(T)32(yp)-32(e:)]TJ +0 g 0 G +/F8 9.9626 Tf 33.797 0 Td [(Async)28(hronous.)]TJ +0 g 0 G +/F27 9.9626 Tf -33.797 -19.737 Td [(On)-383(En)32(try)]TJ +0 g 0 G +0 g 0 G + 0 -19.736 Td [(a)]TJ +0 g 0 G +/F8 9.9626 Tf 10.551 0 Td [(the)-333(sparse)-334(matrix.)]TJ 14.356 -11.955 Td [(A)-333(v)55(ariable)-333(of)-333(t)27(yp)-27(e)]TJ/F30 9.9626 Tf 81.943 0 Td [(psb_Tspmat_type)]TJ/F8 9.9626 Tf 78.455 0 Td [(.)]TJ -160.398 -11.956 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf 23.073 0 Td [(.)]TJ +0 g 0 G +/F27 9.9626 Tf -80.359 -31.691 Td [(imin,imax,jmin,jma)-1(x)]TJ +0 g 0 G +/F8 9.9626 Tf 108.413 0 Td [(Minim)28(um)-333(and)-334(maxim)28(um)-333(ro)27(w)-333(and)-333(column)-333(indices.)]TJ -83.506 -11.956 Td [(T)28(yp)-28(e:)-444(optional.)]TJ +0 g 0 G +/F27 9.9626 Tf -24.907 -19.736 Td [(rscale,cscale)]TJ +0 g 0 G +/F8 9.9626 Tf 65.203 0 Td [(Whether)-333(to)-334(rescale)-333(ro)28(w/column)-334(ind)1(ic)-1(es.)-444(T)28(yp)-28(e:)-444(optional.)]TJ +0 g 0 G +/F27 9.9626 Tf -65.203 -21.446 Td [(On)-383(Return)]TJ +0 g 0 G +0 g 0 G +/F8 9.9626 Tf 166.875 -29.888 Td [(19)]TJ +0 g 0 G +ET + +endstream +endobj +920 0 obj +<< +/Length 3769 +>> +stream +0 g 0 G +0 g 0 G +0 g 0 G +BT +/F27 9.9626 Tf 150.705 706.129 Td [(b)]TJ +0 g 0 G +/F8 9.9626 Tf 11.346 0 Td [(A)-333(cop)27(y)-333(of)-333(a)-334(sub)1(m)-1(atr)1(ix)-334(of)]TJ/F30 9.9626 Tf 112.44 0 Td [(a)]TJ/F8 9.9626 Tf 5.23 0 Td [(.)]TJ -104.11 -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 -/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 +/F27 9.9626 Tf -185.304 -23.071 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 -30.069 Td [(clean)]TJ ET q -1 0 0 1 166.827 569.799 cm +1 0 0 1 176.852 641.234 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 +/F27 9.9626 Tf 180.289 641.034 Td [(zeros)-383(|)-384(Eliminate)-383(zero)-383(c)-1(o)-31(e\016ci)-1(e)1(n)31(ts)]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 +/F30 9.9626 Tf -8.663 -19.852 Td [(call)-525(a%clean_zeros\050info\051)]TJ/F8 9.9626 Tf -5.977 -25.064 Td [(Eliminates)-285(zero)-284(co)-28(e\016cien)27(ts)-284(in)-285(the)-285(i)1(nput)-285(matrix.)-428(Note)-285(that)-285(dep)-27(ending)-285(on)-284(the)]TJ -14.944 -11.955 Td [(in)28(ternal)-333(storage)-333(format,)-333(there)-334(ma)28(y)-333(still)-333(b)-28(e)-333(some)-333(amoun)28(t)-333(of)-334(zero)-333(padding)-333(in)-333(the)]TJ 0 -11.955 Td [(output.)]TJ 0 g 0 G -/F27 9.9626 Tf -14.944 -20.117 Td [(T)32(yp)-32(e:)]TJ +/F27 9.9626 Tf 0 -25.064 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 +/F27 9.9626 Tf -33.797 -23.071 Td [(On)-383(En)32(try)]TJ 0 g 0 G 0 g 0 G - 0 -20.181 Td [(a)]TJ + 0 -23.071 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 +/F27 9.9626 Tf -80.358 -36.232 Td [(On)-383(Return)]TJ 0 g 0 G 0 g 0 G - 0 -20.181 Td [(d)]TJ + 0 -23.071 Td [(a)]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 +/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 -24.906 -20.181 Td [(info)]TJ +/F27 9.9626 Tf -185.304 -23.071 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 +/F8 9.9626 Tf 23.758 0 Td [(Return)-333(co)-28(de.)]TJ/F27 9.9626 Tf -23.758 -30.069 Td [(get)]TJ ET q -1 0 0 1 169.214 332.044 cm +1 0 0 1 166.827 352.894 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 +/F27 9.9626 Tf 170.264 352.695 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.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 +/F30 9.9626 Tf 1.362 -19.853 Td [(call)-525(a%get_diag\050d,info\051)]TJ/F8 9.9626 Tf -5.977 -25.064 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 -104.248 -20.118 Td [(T)32(yp)-32(e:)]TJ +/F27 9.9626 Tf -14.944 -22.284 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 +/F27 9.9626 Tf -33.797 -23.071 Td [(On)-383(En)32(try)]TJ 0 g 0 G 0 g 0 G - 0 -20.181 Td [(a)]TJ + 0 -23.071 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 +/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.956 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf 23.073 0 Td [(.)]TJ 0 g 0 G -/F27 9.9626 Tf -80.358 -34.129 Td [(On)-383(Return)]TJ +/F27 9.9626 Tf -80.358 -37.018 Td [(On)-383(Return)]TJ 0 g 0 G 0 g 0 G - 0 -20.181 Td [(b)]TJ + 0 -23.071 Td [(d)]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 +/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 -185.305 -20.181 Td [(info)]TJ +/F27 9.9626 Tf -24.906 -23.071 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 @@ -6940,709 +6990,755 @@ ET endstream endobj -914 0 obj +924 0 obj << -/Length 5026 +/Length 4823 >> stream 0 g 0 G 0 g 0 G BT -/F27 9.9626 Tf 99.895 706.129 Td [(tril)-383(|)-384(Return)-383(the)-383(l)-1(o)32(w)32(er)-383(triangle)]TJ +/F27 9.9626 Tf 99.895 706.129 Td [(clip)]TJ +ET +q +1 0 0 1 118.405 706.328 cm +[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S +Q +BT +/F27 9.9626 Tf 121.842 706.129 Td [(diag)-383(|)-384(Cut)-383(out)-383(main)-384(diagonal)]TJ 0 g 0 G 0 g 0 G -/F30 9.9626 Tf 20.922 -18.389 Td [(call)-525(a%tril\050l,info[,&)]TJ 15.691 -11.956 Td [(&)-525(diag,imin,imax,jmin,jmax,rscale,cscale,u]\051)]TJ/F8 9.9626 Tf -21.669 -21.384 Td [(Returns)-376(the)-376(lo)28(w)28(er)-376(triangular)-376(p)1(art)-376(of)-376(submatrix)]TJ/F30 9.9626 Tf 210.933 0 Td [(A\050imin:imax,jmin:jmax\051)]TJ/F8 9.9626 Tf 115.067 0 Td [(,)]TJ -340.944 -11.955 Td [(optionally)-222(rescaling)-222(ro)27(w/col)-222(indices)-222(to)-222(the)-222(range)]TJ/F30 9.9626 Tf 205.536 0 Td [(1:imax-imin+1,1:jmax-jmin+1)]TJ/F8 9.9626 Tf -205.536 -11.956 Td [(and)-333(returing)-334(th)1(e)-334(complemen)28(tary)-333(upp)-28(er)-333(triangle.)]TJ +/F30 9.9626 Tf -1.025 -18.389 Td [(call)-525(a%clip_diag\050b,info\051)]TJ/F8 9.9626 Tf -5.978 -20.89 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 0 -19.498 Td [(T)32(yp)-32(e:)]TJ +/F27 9.9626 Tf -104.248 -19.103 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.712 Td [(On)-383(En)32(try)]TJ +/F27 9.9626 Tf -33.797 -19.514 Td [(On)-383(En)32(try)]TJ 0 g 0 G 0 g 0 G - 0 -19.712 Td [(a)]TJ + 0 -19.514 Td [(a)]TJ 0 g 0 G /F8 9.9626 Tf 10.551 0 Td [(the)-333(sparse)-334(matrix.)]TJ 14.356 -11.955 Td [(A)-333(v)55(ariable)-333(of)-333(t)27(yp)-27(e)]TJ/F30 9.9626 Tf 81.943 0 Td [(psb_Tspmat_type)]TJ/F8 9.9626 Tf 78.455 0 Td [(.)]TJ -160.398 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf 23.073 0 Td [(.)]TJ 0 g 0 G -/F27 9.9626 Tf -80.359 -31.668 Td [(diag)]TJ +/F27 9.9626 Tf -80.359 -32.845 Td [(On)-383(Return)]TJ 0 g 0 G -/F8 9.9626 Tf 25.827 0 Td [(Include)-392(diagonals)-391(up)-392(to)-392(this)-391(one;)]TJ/F30 9.9626 Tf 149.735 0 Td [(diag=1)]TJ/F8 9.9626 Tf 35.284 0 Td [(means)-392(the)-392(\014rst)-391(sup)-28(erdiagonal,)]TJ/F30 9.9626 Tf -185.939 -11.955 Td [(diag=-1)]TJ/F8 9.9626 Tf 39.933 0 Td [(means)-333(the)-334(\014rst)-333(sub)-28(diagonal.)-444(Default)-333(0.)]TJ 0 g 0 G -/F27 9.9626 Tf -64.84 -19.712 Td [(imin,imax,jmin,jmax)]TJ + 0 -19.514 Td [(b)]TJ 0 g 0 G -/F8 9.9626 Tf 108.413 0 Td [(Minim)28(um)-333(and)-334(maxim)28(um)-333(ro)28(w)-334(and)-333(column)-333(indices.)]TJ -83.506 -11.955 Td [(T)28(yp)-28(e:)-444(optional.)]TJ +/F8 9.9626 Tf 11.347 0 Td [(A)-333(cop)27(y)-333(of)]TJ/F30 9.9626 Tf 45.385 0 Td [(a)]TJ/F8 9.9626 Tf 8.551 0 Td [(without)-333(the)-334(main)-333(diagonal.)]TJ -40.376 -11.956 Td [(A)-333(v)55(ariable)-333(of)-333(t)27(yp)-27(e)]TJ/F30 9.9626 Tf 81.943 0 Td [(psb_Tspmat_type)]TJ/F8 9.9626 Tf 78.455 0 Td [(.)]TJ 0 g 0 G -/F27 9.9626 Tf -24.907 -19.712 Td [(rscale,cscale)]TJ +/F27 9.9626 Tf -185.305 -19.514 Td [(info)]TJ 0 g 0 G -/F8 9.9626 Tf 65.203 0 Td [(Whether)-333(to)-334(rescale)-333(ro)28(w/column)-334(ind)1(ic)-1(es.)-444(T)28(yp)-28(e:)-444(optional.)]TJ +/F8 9.9626 Tf 23.758 0 Td [(Return)-333(co)-28(de.)]TJ/F27 9.9626 Tf -23.758 -25.719 Td [(tril)-383(|)-384(Return)-383(the)-383(lo)31(w)32(er)-383(triangle)]TJ 0 g 0 G -/F27 9.9626 Tf -65.203 -21.384 Td [(On)-383(Return)]TJ 0 g 0 G +/F30 9.9626 Tf 20.922 -18.389 Td [(call)-525(a%tril\050l,info[,&)]TJ 15.691 -11.955 Td [(&)-525(diag,imin,imax,jmin,jmax,rscale,cscale,u]\051)]TJ/F8 9.9626 Tf -21.669 -20.89 Td [(Returns)-376(the)-376(lo)28(w)28(er)-376(triangular)-376(p)1(art)-376(of)-376(submatrix)]TJ/F30 9.9626 Tf 210.933 0 Td [(A\050imin:imax,jmin:jmax\051)]TJ/F8 9.9626 Tf 115.067 0 Td [(,)]TJ -340.944 -11.955 Td [(optionally)-222(rescaling)-222(ro)27(w/col)-222(indices)-222(to)-222(the)-222(range)]TJ/F30 9.9626 Tf 205.536 0 Td [(1:imax-imin+1,1:jmax-jmin+1)]TJ/F8 9.9626 Tf -205.536 -11.955 Td [(and)-333(returing)-334(th)1(e)-334(complemen)28(tary)-333(upp)-28(er)-333(triangle.)]TJ 0 g 0 G - 0 -19.712 Td [(l)]TJ +/F27 9.9626 Tf 0 -19.103 Td [(T)32(yp)-32(e:)]TJ 0 g 0 G -/F8 9.9626 Tf 8.164 0 Td [(A)-333(cop)27(y)-333(of)-333(the)-334(lo)28(w)28(er)-333(triangle)-334(of)]TJ/F30 9.9626 Tf 136.489 0 Td [(a)]TJ/F8 9.9626 Tf 5.23 0 Td [(.)]TJ -124.976 -11.956 Td [(A)-333(v)55(ariable)-333(of)-333(t)27(yp)-27(e)]TJ/F30 9.9626 Tf 81.943 0 Td [(psb_Tspmat_type)]TJ/F8 9.9626 Tf 78.455 0 Td [(.)]TJ +/F8 9.9626 Tf 33.797 0 Td [(Async)28(hronous.)]TJ 0 g 0 G -/F27 9.9626 Tf -185.305 -19.712 Td [(u)]TJ +/F27 9.9626 Tf -33.797 -19.514 Td [(On)-383(En)32(try)]TJ 0 g 0 G -/F8 9.9626 Tf 11.347 0 Td [(\050optional\051)-333(A)-334(cop)28(y)-333(of)-333(the)-334(upp)-27(er)-334(triangle)-333(of)]TJ/F30 9.9626 Tf 185.471 0 Td [(a)]TJ/F8 9.9626 Tf 5.231 0 Td [(.)]TJ -177.142 -11.955 Td [(A)-333(v)55(ariable)-333(of)-333(t)27(yp)-27(e)]TJ/F30 9.9626 Tf 81.943 0 Td [(psb_Tspmat_type)]TJ/F8 9.9626 Tf 78.455 0 Td [(.)]TJ 0 g 0 G -/F27 9.9626 Tf -185.305 -19.712 Td [(info)]TJ + 0 -19.514 Td [(a)]TJ 0 g 0 G -/F8 9.9626 Tf 23.758 0 Td [(Return)-333(co)-28(de.)]TJ/F27 9.9626 Tf -23.758 -25.804 Td [(triu)-383(|)-384(Return)-383(the)-383(upp)-32(er)-384(triangle)]TJ +/F8 9.9626 Tf 10.551 0 Td [(the)-333(sparse)-334(matrix.)]TJ 14.356 -11.955 Td [(A)-333(v)55(ariable)-333(of)-333(t)27(yp)-27(e)]TJ/F30 9.9626 Tf 81.943 0 Td [(psb_Tspmat_type)]TJ/F8 9.9626 Tf 78.455 0 Td [(.)]TJ -160.398 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf 23.073 0 Td [(.)]TJ 0 g 0 G +/F27 9.9626 Tf -80.359 -31.47 Td [(diag)]TJ 0 g 0 G -/F30 9.9626 Tf 20.922 -18.389 Td [(call)-525(a%triu\050u,info[,&)]TJ 15.691 -11.955 Td [(&)-525(diag,imin,imax,jmin,jmax,rscale,cscale,l]\051)]TJ/F8 9.9626 Tf -21.669 -21.385 Td [(Returns)-340(the)-340(upp)-28(er)-340(triangular)-340(part)-340(of)-340(submatrix)]TJ/F30 9.9626 Tf 210.933 0 Td [(A\050imin:imax,jmin:jmax\051)]TJ/F8 9.9626 Tf 115.067 0 Td [(,)]TJ -340.944 -11.955 Td [(optionally)-222(rescaling)-222(ro)27(w/col)-222(indices)-222(to)-222(the)-222(range)]TJ/F30 9.9626 Tf 205.536 0 Td [(1:imax-imin+1,1:jmax-jmin+1)]TJ/F8 9.9626 Tf 141.219 0 Td [(,)]TJ -346.755 -11.955 Td [(and)-333(returing)-334(th)1(e)-334(complemen)28(tary)-333(lo)27(w)28(er)-333(triangle.)]TJ +/F8 9.9626 Tf 25.827 0 Td [(Include)-392(diagonals)-391(up)-392(to)-392(this)-391(one;)]TJ/F30 9.9626 Tf 149.735 0 Td [(diag=1)]TJ/F8 9.9626 Tf 35.284 0 Td [(means)-392(the)-392(\014rst)-391(sup)-28(erdiagonal,)]TJ/F30 9.9626 Tf -185.939 -11.955 Td [(diag=-1)]TJ/F8 9.9626 Tf 39.933 0 Td [(means)-333(the)-334(\014rst)-333(sub)-28(diagonal.)-444(Default)-333(0.)]TJ 0 g 0 G -/F27 9.9626 Tf 0 -19.499 Td [(T)32(yp)-32(e:)]TJ +/F27 9.9626 Tf -64.84 -19.514 Td [(imin,imax,jmin,jmax)]TJ 0 g 0 G -/F8 9.9626 Tf 33.797 0 Td [(Async)28(hronous.)]TJ +/F8 9.9626 Tf 108.413 0 Td [(Minim)28(um)-333(and)-334(maxim)28(um)-333(ro)28(w)-334(and)-333(column)-333(indices.)]TJ -83.506 -11.955 Td [(T)28(yp)-28(e:)-444(optional.)]TJ 0 g 0 G -/F27 9.9626 Tf -33.797 -19.712 Td [(On)-383(En)32(try)]TJ +/F27 9.9626 Tf -24.907 -19.514 Td [(rscale,cscale)]TJ 0 g 0 G +/F8 9.9626 Tf 65.203 0 Td [(Whether)-333(to)-334(rescale)-333(ro)28(w/column)-334(ind)1(ic)-1(es.)-444(T)28(yp)-28(e:)-444(optional.)]TJ 0 g 0 G - 0 -19.712 Td [(a)]TJ +/F27 9.9626 Tf -65.203 -20.89 Td [(On)-383(Return)]TJ 0 g 0 G -/F8 9.9626 Tf 10.551 0 Td [(the)-333(sparse)-334(matrix.)]TJ 14.356 -11.955 Td [(A)-333(v)55(ariable)-333(of)-333(t)27(yp)-27(e)]TJ/F30 9.9626 Tf 81.943 0 Td [(psb_Tspmat_type)]TJ/F8 9.9626 Tf 78.455 0 Td [(.)]TJ -160.398 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf 23.073 0 Td [(.)]TJ 0 g 0 G -/F27 9.9626 Tf -80.359 -31.667 Td [(diag)]TJ + 0 -19.514 Td [(l)]TJ 0 g 0 G -/F8 9.9626 Tf 25.827 0 Td [(Include)-392(diagonals)-391(up)-392(to)-392(this)-391(one;)]TJ/F30 9.9626 Tf 149.735 0 Td [(diag=1)]TJ/F8 9.9626 Tf 35.284 0 Td [(means)-392(the)-392(\014rst)-391(sup)-28(erdiagonal,)]TJ/F30 9.9626 Tf -185.939 -11.955 Td [(diag=-1)]TJ/F8 9.9626 Tf 39.933 0 Td [(means)-333(the)-334(\014rst)-333(sub)-28(diagonal.)-444(Default)-333(0.)]TJ +/F8 9.9626 Tf 8.164 0 Td [(A)-333(cop)27(y)-333(of)-333(the)-334(lo)28(w)28(er)-333(triangle)-334(of)]TJ/F30 9.9626 Tf 136.489 0 Td [(a)]TJ/F8 9.9626 Tf 5.23 0 Td [(.)]TJ -124.976 -11.955 Td [(A)-333(v)55(ariable)-333(of)-333(t)27(yp)-27(e)]TJ/F30 9.9626 Tf 81.943 0 Td [(psb_Tspmat_type)]TJ/F8 9.9626 Tf 78.455 0 Td [(.)]TJ 0 g 0 G - 102.035 -29.888 Td [(21)]TJ +/F27 9.9626 Tf -185.305 -19.514 Td [(u)]TJ +0 g 0 G +/F8 9.9626 Tf 11.347 0 Td [(\050optional\051)-333(A)-334(cop)28(y)-333(of)-333(the)-334(upp)-27(er)-334(triangle)-333(of)]TJ/F30 9.9626 Tf 185.471 0 Td [(a)]TJ/F8 9.9626 Tf 5.231 0 Td [(.)]TJ -177.142 -11.955 Td [(A)-333(v)55(ariable)-333(of)-333(t)27(yp)-27(e)]TJ/F30 9.9626 Tf 81.943 0 Td [(psb_Tspmat_type)]TJ/F8 9.9626 Tf 78.455 0 Td [(.)]TJ +0 g 0 G +/F27 9.9626 Tf -185.305 -19.514 Td [(info)]TJ +0 g 0 G +/F8 9.9626 Tf 23.758 0 Td [(Return)-333(co)-28(de.)]TJ +0 g 0 G + 143.117 -29.888 Td [(21)]TJ 0 g 0 G ET endstream endobj -919 0 obj +928 0 obj << -/Length 6709 +/Length 4738 >> stream 0 g 0 G 0 g 0 G -0 g 0 G BT -/F27 9.9626 Tf 150.705 706.129 Td [(imin,imax,jmin,jmax)]TJ +/F27 9.9626 Tf 150.705 706.129 Td [(triu)-383(|)-384(Return)-383(the)-383(upp)-32(er)-384(triangle)]TJ +0 g 0 G +0 g 0 G +/F30 9.9626 Tf 20.921 -18.597 Td [(call)-525(a%triu\050u,info[,&)]TJ 15.691 -11.955 Td [(&)-525(diag,imin,imax,jmin,jmax,rscale,cscale,l]\051)]TJ/F8 9.9626 Tf -21.668 -22.364 Td [(Returns)-340(the)-340(upp)-28(er)-340(triangular)-340(part)-340(of)-340(submatrix)]TJ/F30 9.9626 Tf 210.932 0 Td [(A\050imin:imax,jmin:jmax\051)]TJ/F8 9.9626 Tf 115.068 0 Td [(,)]TJ -340.944 -11.955 Td [(optionally)-222(rescaling)-222(ro)28(w)-1(/col)-222(indices)-222(to)-222(the)-222(range)]TJ/F30 9.9626 Tf 205.535 0 Td [(1:imax-imin+1,1:jmax-jmin+1)]TJ/F8 9.9626 Tf 141.219 0 Td [(,)]TJ -346.754 -11.955 Td [(and)-333(returing)-333(the)-334(complemen)28(tary)-333(lo)27(w)28(er)-333(triangle.)]TJ +0 g 0 G +/F27 9.9626 Tf 0 -20.26 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.371 Td [(On)-383(En)32(try)]TJ +0 g 0 G +0 g 0 G + 0 -20.372 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 -32.326 Td [(diag)]TJ +0 g 0 G +/F8 9.9626 Tf 25.826 0 Td [(Include)-392(diagonals)-391(up)-392(to)-392(this)-392(on)1(e)-1(;)]TJ/F30 9.9626 Tf 149.735 0 Td [(diag=1)]TJ/F8 9.9626 Tf 35.285 0 Td [(means)-392(the)-392(\014)1(rs)-1(t)-391(sup)-28(erdiagonal,)]TJ/F30 9.9626 Tf -185.94 -11.955 Td [(diag=-1)]TJ/F8 9.9626 Tf 39.934 0 Td [(means)-333(the)-334(\014rst)-333(sub)-28(diagonal.)-444(Default)-333(0.)]TJ +0 g 0 G +/F27 9.9626 Tf -64.84 -20.372 Td [(imin,imax,jmin,jmax)]TJ 0 g 0 G /F8 9.9626 Tf 108.412 0 Td [(Minim)28(um)-333(a)-1(n)1(d)-334(maxim)28(um)-333(ro)27(w)-333(and)-333(column)-333(indices.)]TJ -83.506 -11.955 Td [(T)28(yp)-28(e:)-444(optional.)]TJ 0 g 0 G -/F27 9.9626 Tf -24.906 -18.359 Td [(rscale,cscale)]TJ +/F27 9.9626 Tf -24.906 -20.371 Td [(rscale,cscale)]TJ 0 g 0 G /F8 9.9626 Tf 65.202 0 Td [(Whether)-333(to)-334(rescale)-333(ro)28(w/column)-334(indices.)-444(T)28(yp)-28(e:)-445(op)1(tional.)]TJ 0 g 0 G -/F27 9.9626 Tf -65.202 -18 Td [(On)-383(Return)]TJ +/F27 9.9626 Tf -65.202 -22.364 Td [(On)-383(Return)]TJ 0 g 0 G 0 g 0 G - 0 -18.358 Td [(u)]TJ + 0 -20.371 Td [(u)]TJ 0 g 0 G /F8 9.9626 Tf 11.346 0 Td [(A)-333(cop)27(y)-333(of)-333(the)-334(u)1(pp)-28(er)-334(tr)1(iangle)-334(of)]TJ/F30 9.9626 Tf 138.979 0 Td [(a)]TJ/F8 9.9626 Tf 5.231 0 Td [(.)]TJ -130.65 -11.955 Td [(A)-333(v)55(ariable)-333(of)-333(t)27(yp)-27(e)]TJ/F30 9.9626 Tf 81.943 0 Td [(psb_Tspmat_type)]TJ/F8 9.9626 Tf 78.455 0 Td [(.)]TJ 0 g 0 G -/F27 9.9626 Tf -185.304 -18.359 Td [(l)]TJ +/F27 9.9626 Tf -185.304 -20.372 Td [(l)]TJ 0 g 0 G /F8 9.9626 Tf 8.164 0 Td [(\050optional\051)-333(A)-334(cop)28(y)-333(of)-333(the)-334(lo)28(w)28(er)-333(triangle)-334(of)]TJ/F30 9.9626 Tf 182.98 0 Td [(a)]TJ/F8 9.9626 Tf 5.231 0 Td [(.)]TJ -171.469 -11.955 Td [(A)-333(v)55(ariable)-333(of)-333(t)27(yp)-27(e)]TJ/F30 9.9626 Tf 81.943 0 Td [(psb_Tspmat_type)]TJ/F8 9.9626 Tf 78.455 0 Td [(.)]TJ 0 g 0 G -/F27 9.9626 Tf -185.304 -18.358 Td [(info)]TJ +/F27 9.9626 Tf -185.304 -20.371 Td [(info)]TJ 0 g 0 G -/F8 9.9626 Tf 23.758 0 Td [(Return)-333(co)-28(de.)]TJ/F27 9.9626 Tf -23.758 -25.221 Td [(psb)]TJ +/F8 9.9626 Tf 23.758 0 Td [(Return)-333(co)-28(de.)]TJ/F27 9.9626 Tf -23.758 -26.488 Td [(psb)]TJ ET q -1 0 0 1 168.641 553.808 cm +1 0 0 1 168.641 313.735 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 172.078 553.609 Td [(set)]TJ +/F27 9.9626 Tf 172.078 313.535 Td [(set)]TJ ET q -1 0 0 1 186.992 553.808 cm +1 0 0 1 186.992 313.735 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 190.429 553.609 Td [(mat)]TJ +/F27 9.9626 Tf 190.429 313.535 Td [(mat)]TJ ET q -1 0 0 1 210.688 553.808 cm +1 0 0 1 210.688 313.735 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 214.125 553.609 Td [(default)-383(|)-384(Set)-383(default)-383(storage)-384(format)]TJ +/F27 9.9626 Tf 214.125 313.535 Td [(default)-383(|)-384(Set)-383(default)-383(storage)-384(format)]TJ 0 g 0 G 0 g 0 G -/F30 9.9626 Tf -63.42 -18.39 Td [(call)-1050(psb_set_mat_default\050a\051)]TJ +/F30 9.9626 Tf -63.42 -18.596 Td [(call)-1050(psb_set_mat_default\050a\051)]TJ 0 g 0 G -/F27 9.9626 Tf 0 -18 Td [(T)32(yp)-32(e:)]TJ +/F27 9.9626 Tf 0 -22.253 Td [(T)32(yp)-32(e:)]TJ 0 g 0 G /F8 9.9626 Tf 33.797 0 Td [(Async)28(hronous.)]TJ 0 g 0 G -/F27 9.9626 Tf -33.797 -18.358 Td [(On)-383(En)32(try)]TJ +/F27 9.9626 Tf -33.797 -20.371 Td [(On)-383(En)32(try)]TJ 0 g 0 G 0 g 0 G - 0 -18.358 Td [(a)]TJ + 0 -20.371 Td [(a)]TJ 0 g 0 G -/F8 9.9626 Tf 10.551 0 Td [(a)-285(v)56(ariable)-285(of)]TJ/F30 9.9626 Tf 55.581 0 Td [(class\050psb_T_base_sparse_mat\051)]TJ/F8 9.9626 Tf 149.285 0 Td [(requesting)-285(a)-284(new)-285(default)-285(stor-)]TJ -190.511 -11.955 Td [(age)-333(format.)]TJ 0 -11.956 Td [(T)28(yp)-28(e:)-444(required.)]TJ/F27 9.9626 Tf -24.906 -25.221 Td [(clone)-383(|)-384(Clone)-383(curren)32(t)-383(ob)-64(ject)]TJ +/F8 9.9626 Tf 10.551 0 Td [(a)-285(v)56(ariable)-285(of)]TJ/F30 9.9626 Tf 55.581 0 Td [(class\050psb_T_base_sparse_mat\051)]TJ/F8 9.9626 Tf 149.285 0 Td [(requesting)-285(a)-284(new)-285(default)-285(stor-)]TJ -190.511 -11.955 Td [(age)-333(format.)]TJ 0 -11.956 Td [(T)28(yp)-28(e:)-444(required.)]TJ/F27 9.9626 Tf -24.906 -26.487 Td [(clone)-383(|)-384(Clone)-383(curren)32(t)-383(ob)-64(ject)]TJ 0 g 0 G 0 g 0 G -/F30 9.9626 Tf 0 -18.389 Td [(call)-1050(a%clone\050b,info\051)]TJ +/F30 9.9626 Tf 0 -18.597 Td [(call)-1050(a%clone\050b,info\051)]TJ 0 g 0 G -/F27 9.9626 Tf 0 -18.001 Td [(T)32(yp)-32(e:)]TJ +/F27 9.9626 Tf 0 -22.252 Td [(T)32(yp)-32(e:)]TJ 0 g 0 G /F8 9.9626 Tf 33.797 0 Td [(Async)28(hronous.)]TJ 0 g 0 G -/F27 9.9626 Tf -33.797 -18.358 Td [(On)-383(En)32(try)]TJ +/F27 9.9626 Tf -33.797 -20.371 Td [(On)-383(En)32(try)]TJ +0 g 0 G +0 g 0 G +/F8 9.9626 Tf 166.874 -29.888 Td [(22)]TJ +0 g 0 G +ET + +endstream +endobj +934 0 obj +<< +/Length 7666 +>> +stream +0 g 0 G 0 g 0 G 0 g 0 G - 0 -18.358 Td [(a)]TJ +BT +/F27 9.9626 Tf 99.895 706.129 Td [(a)]TJ 0 g 0 G -/F8 9.9626 Tf 10.551 0 Td [(the)-333(sparse)-334(matrix.)]TJ 14.355 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf 23.073 0 Td [(.)]TJ +/F8 9.9626 Tf 10.551 0 Td [(the)-333(sparse)-334(matrix.)]TJ 14.356 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf 23.073 0 Td [(.)]TJ 0 g 0 G -/F27 9.9626 Tf -80.358 -29.956 Td [(On)-383(Return)]TJ +/F27 9.9626 Tf -80.359 -35.408 Td [(On)-383(Return)]TJ 0 g 0 G 0 g 0 G - 0 -18.358 Td [(b)]TJ + 0 -21.972 Td [(b)]TJ 0 g 0 G -/F8 9.9626 Tf 11.346 0 Td [(A)-333(cop)27(y)-333(of)-333(the)-334(in)1(put)-334(ob)-55(ject.)]TJ +/F8 9.9626 Tf 11.347 0 Td [(A)-333(cop)27(y)-333(of)-333(the)-333(input)-334(ob)-55(ject.)]TJ 0 g 0 G -/F27 9.9626 Tf -11.346 -18.358 Td [(info)]TJ +/F27 9.9626 Tf -11.347 -21.973 Td [(info)]TJ 0 g 0 G -/F8 9.9626 Tf 23.758 0 Td [(Return)-333(co)-28(de.)]TJ/F27 9.9626 Tf -23.758 -25.221 Td [(3.2.2)-1150(Named)-383(Constan)32(ts)]TJ +/F8 9.9626 Tf 23.758 0 Td [(Return)-333(co)-28(de.)]TJ/F27 9.9626 Tf -23.758 -28.61 Td [(3.2.2)-1150(Named)-383(Constan)31(ts)]TJ 0 g 0 G - 0 -18.39 Td [(psb)]TJ + 0 -19.342 Td [(psb)]TJ ET q -1 0 0 1 168.641 236.227 cm +1 0 0 1 117.832 567.068 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 172.078 236.027 Td [(dupl)]TJ +/F27 9.9626 Tf 121.269 566.869 Td [(dupl)]TJ ET q -1 0 0 1 195.043 236.227 cm +1 0 0 1 144.234 567.068 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 198.48 236.027 Td [(o)32(vwrt)]TJ +/F27 9.9626 Tf 147.671 566.869 Td [(o)32(vwrt)]TJ ET q -1 0 0 1 228.073 236.227 cm +1 0 0 1 177.264 567.068 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q 0 g 0 G BT -/F8 9.9626 Tf 236.492 236.027 Td [(Duplicate)-315(co)-28(e\016cien)28(ts)-315(should)-315(b)-28(e)-315(o)28(v)28(erwritten)-315(\050i.e.)-438(ignore)-315(du-)]TJ -60.881 -11.955 Td [(plications\051)]TJ +/F8 9.9626 Tf 185.682 566.869 Td [(Duplicate)-315(co)-28(e\016cien)28(ts)-315(should)-315(b)-28(e)-315(o)28(v)28(erwritten)-315(\050i.e.)-438(ignore)-315(du-)]TJ -60.88 -11.955 Td [(plications\051)]TJ 0 g 0 G -/F27 9.9626 Tf -24.906 -18.358 Td [(psb)]TJ +/F27 9.9626 Tf -24.907 -21.972 Td [(psb)]TJ ET q -1 0 0 1 168.641 205.913 cm +1 0 0 1 117.832 533.141 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 172.078 205.714 Td [(dupl)]TJ +/F27 9.9626 Tf 121.269 532.942 Td [(dupl)]TJ ET q -1 0 0 1 195.043 205.913 cm +1 0 0 1 144.234 533.141 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 198.48 205.714 Td [(add)]TJ +/F27 9.9626 Tf 147.671 532.942 Td [(add)]TJ ET q -1 0 0 1 217.467 205.913 cm +1 0 0 1 166.658 533.141 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q 0 g 0 G BT -/F8 9.9626 Tf 225.886 205.714 Td [(Duplicate)-333(co)-28(e\016cien)28(ts)-334(should)-333(b)-28(e)-333(added;)]TJ +/F8 9.9626 Tf 175.076 532.942 Td [(Duplicate)-333(co)-28(e\016cien)28(ts)-334(should)-333(b)-28(e)-333(added;)]TJ 0 g 0 G -/F27 9.9626 Tf -75.181 -18.358 Td [(psb)]TJ +/F27 9.9626 Tf -75.181 -21.972 Td [(psb)]TJ ET q -1 0 0 1 168.641 187.555 cm +1 0 0 1 117.832 511.169 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 172.078 187.356 Td [(dupl)]TJ +/F27 9.9626 Tf 121.269 510.97 Td [(dupl)]TJ ET q -1 0 0 1 195.043 187.555 cm +1 0 0 1 144.234 511.169 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 198.48 187.356 Td [(err)]TJ +/F27 9.9626 Tf 147.671 510.97 Td [(err)]TJ ET q -1 0 0 1 213.856 187.555 cm +1 0 0 1 163.046 511.169 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q 0 g 0 G BT -/F8 9.9626 Tf 222.274 187.356 Td [(Duplicate)-333(co)-28(e\016cien)28(ts)-334(should)-333(trigger)-333(an)-334(error)-333(conditino)]TJ +/F8 9.9626 Tf 171.465 510.97 Td [(Duplicate)-333(co)-28(e\016cien)28(ts)-334(should)-333(trigger)-333(an)-334(error)-333(conditino)]TJ 0 g 0 G -/F27 9.9626 Tf -71.569 -18.359 Td [(psb)]TJ +/F27 9.9626 Tf -71.57 -21.972 Td [(psb)]TJ ET q -1 0 0 1 168.641 169.197 cm +1 0 0 1 117.832 489.197 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 172.078 168.997 Td [(up)-32(d)]TJ +/F27 9.9626 Tf 121.269 488.998 Td [(up)-32(d)]TJ ET q -1 0 0 1 192.179 169.197 cm +1 0 0 1 141.37 489.197 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 195.616 168.997 Td [(d\015t)]TJ +/F27 9.9626 Tf 144.807 488.998 Td [(d\015t)]TJ ET q -1 0 0 1 213.489 169.197 cm +1 0 0 1 162.68 489.197 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q 0 g 0 G BT -/F8 9.9626 Tf 221.907 168.997 Td [(Default)-333(up)-28(date)-333(strategy)-334(for)-333(matrix)-333(co)-28(e\016cien)28(ts;)]TJ +/F8 9.9626 Tf 171.098 488.998 Td [(Default)-333(up)-28(date)-333(strategy)-334(for)-333(matrix)-333(co)-28(e\016cien)28(ts;)]TJ 0 g 0 G -/F27 9.9626 Tf -71.202 -18.358 Td [(psb)]TJ +/F27 9.9626 Tf -71.203 -21.972 Td [(psb)]TJ ET q -1 0 0 1 168.641 150.838 cm +1 0 0 1 117.832 467.225 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 172.078 150.639 Td [(up)-32(d)]TJ +/F27 9.9626 Tf 121.269 467.026 Td [(up)-32(d)]TJ ET q -1 0 0 1 192.179 150.838 cm +1 0 0 1 141.37 467.225 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 195.616 150.639 Td [(src)32(h)]TJ +/F27 9.9626 Tf 144.807 467.026 Td [(src)32(h)]TJ ET q -1 0 0 1 216.68 150.838 cm +1 0 0 1 165.87 467.225 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q 0 g 0 G BT -/F8 9.9626 Tf 225.098 150.639 Td [(Up)-28(date)-333(strategy)-333(base)-1(d)-333(on)-333(searc)28(h)-334(in)28(to)-333(the)-334(data)-333(structure;)]TJ +/F8 9.9626 Tf 174.289 467.026 Td [(Up)-28(date)-333(strategy)-333(based)-334(on)-333(searc)28(h)-334(in)28(to)-333(the)-334(d)1(ata)-334(structure;)]TJ 0 g 0 G -/F27 9.9626 Tf -74.393 -18.358 Td [(psb)]TJ +/F27 9.9626 Tf -74.394 -21.973 Td [(psb)]TJ ET q -1 0 0 1 168.641 132.48 cm +1 0 0 1 117.832 445.253 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 172.078 132.281 Td [(up)-32(d)]TJ +/F27 9.9626 Tf 121.269 445.053 Td [(up)-32(d)]TJ ET q -1 0 0 1 192.179 132.48 cm +1 0 0 1 141.37 445.253 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 195.616 132.281 Td [(p)-32(erm)]TJ +/F27 9.9626 Tf 144.807 445.053 Td [(p)-32(erm)]TJ ET q -1 0 0 1 222.504 132.48 cm +1 0 0 1 171.694 445.253 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q 0 g 0 G BT -/F8 9.9626 Tf 230.922 132.281 Td [(Up)-28(date)-398(strategy)-398(based)-398(on)-398(additional)-398(p)-28(erm)28(utation)-398(data)-398(\050s)-1(ee)]TJ -55.311 -11.955 Td [(to)-28(ols)-333(routine)-333(desc)-1(r)1(iption\051.)]TJ -0 g 0 G - 141.968 -29.888 Td [(22)]TJ -0 g 0 G -ET - -endstream -endobj -924 0 obj -<< -/Length 5638 ->> -stream -0 g 0 G -0 g 0 G -BT -/F16 11.9552 Tf 99.895 706.129 Td [(3.3)-1125(Dense)-375(V)94(ector)-375(Data)-375(Structure)]TJ/F8 9.9626 Tf 0 -18.389 Td [(The)]TJ/F30 9.9626 Tf 21.256 0 Td [(psb)]TJ +/F8 9.9626 Tf 180.113 445.053 Td [(Up)-28(date)-398(strategy)-398(based)-398(on)-398(additional)-398(p)-28(erm)28(utation)-398(data)-398(\050se)-1(e)]TJ -55.311 -11.955 Td [(to)-28(ols)-333(routine)-333(description\051.)]TJ/F16 11.9552 Tf -24.907 -30.603 Td [(3.3)-1125(Dense)-375(V)94(ector)-375(Data)-375(Structure)]TJ/F8 9.9626 Tf 0 -19.342 Td [(The)]TJ/F30 9.9626 Tf 21.256 0 Td [(psb)]TJ ET q -1 0 0 1 137.47 687.939 cm +1 0 0 1 137.47 383.353 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 140.608 687.74 Td [(T)]TJ +/F30 9.9626 Tf 140.608 383.153 Td [(T)]TJ ET q -1 0 0 1 146.466 687.939 cm +1 0 0 1 146.466 383.353 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 149.604 687.74 Td [(vect)]TJ +/F30 9.9626 Tf 149.604 383.153 Td [(vect)]TJ ET q -1 0 0 1 171.153 687.939 cm +1 0 0 1 171.153 383.353 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 174.291 687.74 Td [(type)]TJ/F8 9.9626 Tf 25.02 0 Td [(data)-411(structure)-412(encapsulates)-411(the)-411(dense)-412(v)28(ectors)-411(in)-412(a)-411(w)28(a)28(y)]TJ -99.416 -11.956 Td [(similar)-434(to)-435(sparse)-434(matrices,)-459(i.e.)-748(includ)1(ing)-435(a)-434(base)-434(t)28(yp)-28(e)]TJ/F30 9.9626 Tf 242.195 0 Td [(psb)]TJ +/F30 9.9626 Tf 174.291 383.153 Td [(type)]TJ/F8 9.9626 Tf 25.02 0 Td [(data)-411(structure)-412(encapsulates)-411(the)-411(dense)-412(v)28(ectors)-411(in)-412(a)-411(w)28(a)28(y)]TJ -99.416 -11.955 Td [(similar)-434(to)-435(sparse)-434(matrices,)-459(i.e.)-748(includ)1(ing)-435(a)-434(base)-434(t)28(yp)-28(e)]TJ/F30 9.9626 Tf 242.195 0 Td [(psb)]TJ ET q -1 0 0 1 358.409 675.984 cm +1 0 0 1 358.409 371.397 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 361.547 675.784 Td [(T)]TJ +/F30 9.9626 Tf 361.547 371.198 Td [(T)]TJ ET q -1 0 0 1 367.405 675.984 cm +1 0 0 1 367.405 371.397 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 370.543 675.784 Td [(base)]TJ +/F30 9.9626 Tf 370.543 371.198 Td [(base)]TJ ET q -1 0 0 1 392.092 675.984 cm +1 0 0 1 392.092 371.397 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 395.231 675.784 Td [(vect)]TJ +/F30 9.9626 Tf 395.231 371.198 Td [(vect)]TJ ET q -1 0 0 1 416.779 675.984 cm +1 0 0 1 416.779 371.397 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 419.918 675.784 Td [(type)]TJ/F8 9.9626 Tf 20.921 0 Td [(.)]TJ -340.944 -11.955 Td [(The)-330(user)-330(will)-330(not,)-330(in)-330(general,)-331(access)-330(the)-330(v)28(ector)-330(comp)-28(onen)28(ts)-330(directly)83(,)-330(but)-330(rather)]TJ 0 -11.955 Td [(via)-303(the)-304(routi)1(ne)-1(s)-303(of)-303(sec.)]TJ +/F30 9.9626 Tf 419.918 371.198 Td [(type)]TJ/F8 9.9626 Tf 20.921 0 Td [(.)]TJ -340.944 -11.955 Td [(The)-330(user)-330(will)-330(not,)-330(in)-330(general,)-331(access)-330(the)-330(v)28(ector)-330(comp)-28(onen)28(ts)-330(directly)83(,)-330(but)-330(rather)]TJ 0 -11.955 Td [(via)-303(the)-304(routi)1(ne)-1(s)-303(of)-303(sec.)]TJ 0 0 1 rg 0 0 1 RG [-304(6)]TJ 0 g 0 G - [(.)-434(Among)-303(other)-303(s)-1(impl)1(e)-304(things,)-309(w)28(e)-304(de\014ne)-303(here)-303(an)-303(e)-1(xtr)1(ac)-1(-)]TJ 0 -11.955 Td [(tion)-321(metho)-28(d)-320(that)-321(can)-321(b)-27(e)-321(used)-321(to)-321(get)-321(a)-320(full)-321(cop)28(y)-321(of)-321(the)-320(part)-321(of)-321(the)-320(v)27(ector)-320(s)-1(t)1(o)-1(r)1(e)-1(d)]TJ 0 -11.955 Td [(on)-333(the)-334(lo)-27(cal)-334(pro)-27(c)-1(ess.)]TJ 14.944 -11.956 Td [(The)-399(t)28(yp)-28(e)-399(declaration)-398(is)-399(sho)28(w)-1(n)-398(in)-399(\014gure)]TJ + [(.)-434(Among)-303(other)-303(s)-1(impl)1(e)-304(things,)-309(w)28(e)-304(de\014ne)-303(here)-303(an)-303(e)-1(xtr)1(ac)-1(-)]TJ 0 -11.955 Td [(tion)-321(metho)-28(d)-320(that)-321(can)-321(b)-27(e)-321(used)-321(to)-321(get)-321(a)-320(full)-321(cop)28(y)-321(of)-321(the)-320(part)-321(of)-321(the)-320(v)27(ector)-320(s)-1(t)1(o)-1(r)1(e)-1(d)]TJ 0 -11.956 Td [(on)-333(the)-334(lo)-27(cal)-334(pro)-27(c)-1(ess.)]TJ 14.944 -12.466 Td [(The)-399(t)28(yp)-28(e)-399(declaration)-398(is)-399(sho)28(w)-1(n)-398(in)-399(\014gure)]TJ 0 0 1 rg 0 0 1 RG [-399(5)]TJ 0 g 0 G - [-399(where)]TJ/F30 9.9626 Tf 216.941 0 Td [(T)]TJ/F8 9.9626 Tf 9.203 0 Td [(is)-399(a)-399(placeholder)-398(for)-399(the)]TJ -241.088 -11.955 Td [(data)-333(t)27(yp)-27(e)-334(and)-333(precision)-333(v)55(arian)28(ts)]TJ + [-399(where)]TJ/F30 9.9626 Tf 216.941 0 Td [(T)]TJ/F8 9.9626 Tf 9.203 0 Td [(is)-399(a)-399(placeholder)-398(for)-399(the)]TJ -241.088 -11.956 Td [(data)-333(t)27(yp)-27(e)-334(and)-333(precision)-333(v)55(arian)28(ts)]TJ 0 g 0 G -/F27 9.9626 Tf 0 -18.047 Td [(I)]TJ +/F27 9.9626 Tf 0 -21.46 Td [(I)]TJ 0 g 0 G /F8 9.9626 Tf 9.326 0 Td [(In)28(teger;)]TJ 0 g 0 G -/F27 9.9626 Tf -9.326 -18.987 Td [(S)]TJ +/F27 9.9626 Tf -9.326 -21.972 Td [(S)]TJ 0 g 0 G /F8 9.9626 Tf 11.347 0 Td [(Single)-333(precision)-334(real;)]TJ 0 g 0 G -/F27 9.9626 Tf -11.347 -18.986 Td [(D)]TJ +/F27 9.9626 Tf -11.347 -21.972 Td [(D)]TJ 0 g 0 G /F8 9.9626 Tf 13.768 0 Td [(Double)-333(precision)-334(real;)]TJ 0 g 0 G -/F27 9.9626 Tf -13.768 -18.987 Td [(C)]TJ +/F27 9.9626 Tf -13.768 -21.972 Td [(C)]TJ 0 g 0 G /F8 9.9626 Tf 13.256 0 Td [(Single)-333(precision)-334(complex;)]TJ 0 g 0 G -/F27 9.9626 Tf -13.256 -18.986 Td [(Z)]TJ +/F27 9.9626 Tf -13.256 -21.972 Td [(Z)]TJ +0 g 0 G +/F8 9.9626 Tf 11.983 0 Td [(Double)-333(precision)-334(complex.)]TJ -11.983 -21.461 Td [(The)-281(actual)-280(data)-280(is)-281(con)28(tained)-281(i)1(n)-281(the)-280(p)-28(olymorphic)-281(comp)-27(onen)27(t)]TJ/F30 9.9626 Tf 260.737 0 Td [(v%v)]TJ/F8 9.9626 Tf 15.691 0 Td [(;)-298(the)-281(separation)]TJ -276.428 -11.955 Td [(b)-28(et)28(w)28(een)-427(the)-426(application)-427(and)-426(the)-427(actual)-426(data)-426(is)-427(essen)28(tial)-427(for)-426(cases)-427(where)-426(it)-427(is)]TJ 0 -11.955 Td [(necessary)-426(to)-426(link)-425(to)-426(data)-426(storage)-426(made)-425(a)27(v)56(ailable)-426(elsewhere)-426(outside)-425(the)-426(direct)]TJ 0 -11.955 Td [(con)28(trol)-335(of)-335(the)-336(compiler/appli)1(c)-1(ation)1(,)-336(e.g.)-450(data)-335(stored)-335(in)-335(a)-335(graphics)-336(accelerator's)]TJ 0 -11.955 Td [(priv)56(ate)-334(memory)84(.)]TJ +0 g 0 G + 166.874 -29.888 Td [(23)]TJ +0 g 0 G +ET + +endstream +endobj +940 0 obj +<< +/Length 3183 +>> +stream 0 g 0 G -/F8 9.9626 Tf 11.983 0 Td [(Double)-333(precision)-334(complex.)]TJ -11.983 -18.048 Td [(The)-281(actual)-280(data)-280(is)-281(con)28(tained)-281(i)1(n)-281(the)-280(p)-28(olymorphic)-281(comp)-27(onen)27(t)]TJ/F30 9.9626 Tf 260.737 0 Td [(v%v)]TJ/F8 9.9626 Tf 15.691 0 Td [(;)-298(the)-281(separation)]TJ -276.428 -11.955 Td [(b)-28(et)28(w)28(een)-427(the)-426(application)-427(and)-426(the)-427(actual)-426(data)-426(is)-427(essen)28(tial)-427(for)-426(cases)-427(where)-426(it)-427(is)]TJ 0 -11.955 Td [(necessary)-426(to)-426(link)-425(to)-426(data)-426(storage)-426(made)-425(a)27(v)56(ailable)-426(elsewhere)-426(outside)-425(the)-426(direct)]TJ 0 -11.955 Td [(con)28(trol)-335(of)-335(the)-336(compiler/appli)1(c)-1(ation)1(,)-336(e.g.)-450(data)-335(stored)-335(in)-335(a)-335(graphics)-336(accelerator's)]TJ 0 -11.955 Td [(priv)56(ate)-334(memory)84(.)]TJ 0 g 0 G 0 g 0 G 0 g 0 G 0 g 0 G 0 g 0 G -/F30 9.9626 Tf 36.238 -19.042 Td [(type)-525(psb_T_base_vect_type)]TJ 10.461 -11.955 Td [(TYPE\050KIND_\051,)-525(allocatable)-525(::)-525(v\050:\051)]TJ -10.461 -11.956 Td [(end)-525(type)-525(psb_T_base_vect_type)]TJ 0 -23.91 Td [(type)-525(psb_T_vect_type)]TJ 10.461 -11.955 Td [(class\050psb_T_base_vect_type\051,)-525(allocatable)-525(::)-525(v)]TJ -10.461 -11.955 Td [(end)-525(type)-1050(psb_T_vect_type)]TJ 0 g 0 G -/F8 9.9626 Tf -22.069 -39.795 Td [(Figure)-333(5:)-889(The)-334(P)1(SBLAS)-334(de\014ned)-333(data)-333(t)27(yp)-27(e)-334(that)-333(con)28(tains)-333(a)-334(dense)-333(v)28(ector.)]TJ +BT +/F30 9.9626 Tf 186.943 710.003 Td [(type)-525(psb_T_base_vect_type)]TJ 10.46 -11.955 Td [(TYPE\050KIND_\051,)-525(allocatable)-525(::)-525(v\050:\051)]TJ -10.46 -11.955 Td [(end)-525(type)-525(psb_T_base_vect_type)]TJ 0 -23.91 Td [(type)-525(psb_T_vect_type)]TJ 10.46 -11.956 Td [(class\050psb_T_base_vect_type\051,)-525(allocatable)-525(::)-525(v)]TJ -10.46 -11.955 Td [(end)-525(type)-1050(psb_T_vect_type)]TJ +0 g 0 G +/F8 9.9626 Tf -22.069 -39.795 Td [(Figure)-333(5:)-889(The)-333(PSBLAS)-334(de\014ned)-333(data)-333(t)27(y)1(p)-28(e)-334(that)-333(con)28(tains)-333(a)-334(dense)-333(v)28(ector.)]TJ 0 g 0 G 0 g 0 G -/F27 9.9626 Tf -14.169 -36.509 Td [(3.3.1)-1150(V)96(ector)-384(Metho)-32(ds)]TJ 0 -18.389 Td [(get)]TJ +/F27 9.9626 Tf -14.169 -31.831 Td [(3.3.1)-1150(V)96(ector)-384(Metho)-32(ds)]TJ 0 -18.394 Td [(get)]TJ ET q -1 0 0 1 116.018 258.925 cm +1 0 0 1 166.827 548.451 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 119.455 258.726 Td [(nro)32(ws)-383(|)-384(Get)-383(n)32(um)32(b)-32(er)-383(of)-384(ro)32(ws)-383(in)-383(a)-384(dense)-383(v)32(ector)]TJ +/F27 9.9626 Tf 170.264 548.252 Td [(nro)32(ws)-383(|)-384(Get)-383(n)32(um)32(b)-32(er)-383(of)-384(ro)32(ws)-383(in)-383(a)-384(dense)-383(v)32(ector)]TJ 0 g 0 G 0 g 0 G -/F30 9.9626 Tf -19.56 -18.389 Td [(nr)-525(=)-525(v%get_nrows\050\051)]TJ +/F30 9.9626 Tf -19.559 -18.395 Td [(nr)-525(=)-525(v%get_nrows\050\051)]TJ 0 g 0 G -/F27 9.9626 Tf 0 -19.571 Td [(T)32(yp)-32(e:)]TJ +/F27 9.9626 Tf 0 -21.926 Td [(T)32(yp)-32(e:)]TJ 0 g 0 G /F8 9.9626 Tf 33.797 0 Td [(Async)28(hronous.)]TJ 0 g 0 G -/F27 9.9626 Tf -33.797 -18.986 Td [(On)-383(En)32(try)]TJ +/F27 9.9626 Tf -33.797 -19.937 Td [(On)-383(En)32(try)]TJ 0 g 0 G 0 g 0 G - 0 -18.987 Td [(v)]TJ + 0 -19.937 Td [(v)]TJ 0 g 0 G -/F8 9.9626 Tf 11.028 0 Td [(the)-333(dense)-334(v)28(ector)]TJ 13.879 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ +/F8 9.9626 Tf 11.028 0 Td [(the)-333(dense)-334(v)28(ector)]TJ 13.878 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ 0 g 0 G - -57.286 -31.526 Td [(On)-383(Return)]TJ + -57.285 -33.882 Td [(On)-383(Return)]TJ 0 g 0 G 0 g 0 G - 0 -18.986 Td [(F)96(unction)-384(v)64(alue)]TJ + 0 -19.936 Td [(F)96(unction)-384(v)64(alue)]TJ 0 g 0 G -/F8 9.9626 Tf 78.387 0 Td [(The)-333(n)28(um)27(b)-27(e)-1(r)-333(of)-333(ro)28(ws)-334(of)-333(dense)-333(v)27(ector)]TJ/F30 9.9626 Tf 159.596 0 Td [(v)]TJ/F8 9.9626 Tf 5.23 0 Td [(.)]TJ +/F8 9.9626 Tf 78.386 0 Td [(The)-333(n)27(um)28(b)-28(er)-333(of)-333(ro)28(ws)-334(of)-333(dense)-333(v)27(ector)]TJ/F30 9.9626 Tf 159.596 0 Td [(v)]TJ/F8 9.9626 Tf 5.231 0 Td [(.)]TJ/F27 9.9626 Tf -243.213 -25.911 Td [(sizeof)-383(|)-384(Get)-383(memory)-383(o)-32(ccupation)-384(in)-383(b)32(ytes)-384(of)-383(a)-383(dense)-384(v)32(ector)]TJ 0 g 0 G - -76.338 -29.888 Td [(23)]TJ 0 g 0 G -ET - -endstream -endobj -933 0 obj -<< -/Length 4260 ->> -stream +/F30 9.9626 Tf 0 -18.395 Td [(memory_size)-525(=)-525(v%sizeof\050\051)]TJ 0 g 0 G +/F27 9.9626 Tf 0 -21.926 Td [(T)32(yp)-32(e:)]TJ 0 g 0 G -BT -/F27 9.9626 Tf 150.705 706.129 Td [(sizeof)-383(|)-384(Get)-383(memory)-383(o)-32(ccupation)-384(in)-383(b)32(ytes)-384(of)-383(a)-383(dense)-384(v)32(ector)]TJ +/F8 9.9626 Tf 33.797 0 Td [(Async)28(hronous.)]TJ 0 g 0 G +/F27 9.9626 Tf -33.797 -19.937 Td [(On)-383(En)32(try)]TJ 0 g 0 G -/F30 9.9626 Tf 0 -18.389 Td [(memory_size)-525(=)-525(v%sizeof\050\051)]TJ 0 g 0 G -/F27 9.9626 Tf 0 -18.635 Td [(T)32(yp)-32(e:)]TJ + 0 -19.937 Td [(v)]TJ 0 g 0 G -/F8 9.9626 Tf 33.797 0 Td [(Async)28(hronous.)]TJ +/F8 9.9626 Tf 11.028 0 Td [(the)-333(dense)-334(v)28(ector)]TJ 13.879 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.378 0 Td [(lo)-32(cal)]TJ 0 g 0 G -/F27 9.9626 Tf -33.797 -18.612 Td [(On)-383(En)32(try)]TJ + -57.285 -33.882 Td [(On)-383(Return)]TJ 0 g 0 G 0 g 0 G - 0 -18.612 Td [(v)]TJ + 0 -19.936 Td [(F)96(unction)-384(v)64(alue)]TJ 0 g 0 G -/F8 9.9626 Tf 11.028 0 Td [(the)-333(dense)-334(v)28(ector)]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 78.386 0 Td [(The)-333(memory)-334(o)-28(ccupation)-333(in)-333(b)28(ytes.)]TJ/F27 9.9626 Tf -78.386 -25.911 Td [(set)-383(|)-384(Set)-383(con)32(ten)32(ts)-383(of)-384(the)-383(v)32(ector)]TJ 0 g 0 G - -57.285 -30.59 Td [(On)-383(Return)]TJ 0 g 0 G +/F30 9.9626 Tf 5.23 -18.395 Td [(call)-1050(v%set\050alpha[,first,last]\051)]TJ 0 -11.955 Td [(call)-1050(v%set\050vect[,first,last]\051)]TJ 0 -11.955 Td [(call)-1050(v%zero\050\051)]TJ 0 g 0 G - 0 -18.612 Td [(F)96(unction)-384(v)64(alue)]TJ +/F27 9.9626 Tf -5.23 -21.927 Td [(T)32(yp)-32(e:)]TJ 0 g 0 G -/F8 9.9626 Tf 78.386 0 Td [(The)-333(memory)-334(o)-28(ccupation)-333(in)-333(b)28(ytes.)]TJ/F27 9.9626 Tf -78.386 -25.33 Td [(set)-383(|)-384(Set)-383(con)32(ten)32(ts)-383(of)-384(the)-383(v)32(ector)]TJ +/F8 9.9626 Tf 33.797 0 Td [(Async)28(hronous.)]TJ 0 g 0 G +/F27 9.9626 Tf -33.797 -19.936 Td [(On)-383(En)32(try)]TJ 0 g 0 G -/F30 9.9626 Tf 5.23 -18.39 Td [(call)-1050(v%set\050alpha[,first,last]\051)]TJ 0 -11.955 Td [(call)-1050(v%set\050vect[,first,last]\051)]TJ 0 -11.955 Td [(call)-1050(v%zero\050\051)]TJ 0 g 0 G -/F27 9.9626 Tf -5.23 -18.634 Td [(T)32(yp)-32(e:)]TJ +/F8 9.9626 Tf 166.874 -29.888 Td [(24)]TJ 0 g 0 G -/F8 9.9626 Tf 33.797 0 Td [(Async)28(hronous.)]TJ +ET + +endstream +endobj +946 0 obj +<< +/Length 3935 +>> +stream 0 g 0 G -/F27 9.9626 Tf -33.797 -18.612 Td [(On)-383(En)32(try)]TJ 0 g 0 G 0 g 0 G - 0 -18.612 Td [(v)]TJ +BT +/F27 9.9626 Tf 99.895 706.129 Td [(v)]TJ 0 g 0 G -/F8 9.9626 Tf 11.028 0 Td [(the)-333(dense)-334(v)28(ector)]TJ 13.879 -11.956 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.378 0 Td [(lo)-32(cal)]TJ +/F8 9.9626 Tf 11.028 0 Td [(the)-333(dense)-334(v)28(ector)]TJ 13.879 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ 0 g 0 G - -57.285 -30.567 Td [(alpha)]TJ + -57.286 -37.031 Td [(alpha)]TJ 0 g 0 G -/F8 9.9626 Tf 32.032 0 Td [(A)-333(scalar)-334(v)56(alue.)]TJ -7.125 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.378 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.378 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.485 0 Td [(in)]TJ/F8 9.9626 Tf 9.548 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-444(a)-334(n)28(um)28(b)-28(er)-333(of)-334(the)-333(data)-333(t)28(yp)-28(e)-334(in)1(dicate)-1(d)-333(in)-333(T)83(able)]TJ +/F8 9.9626 Tf 32.033 0 Td [(A)-333(scalar)-334(v)56(alue.)]TJ -7.126 -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(n)28(um)28(b)-28(er)-333(of)-334(the)-333(data)-333(t)28(yp)-28(e)-334(ind)1(ic)-1(ated)-333(in)-333(T)83(able)]TJ 0 0 1 rg 0 0 1 RG [-333(1)]TJ 0 g 0 G [(.)]TJ 0 g 0 G -/F27 9.9626 Tf -24.907 -18.612 Td [(\014rst,last)]TJ +/F27 9.9626 Tf -24.907 -25.076 Td [(\014rst,last)]TJ 0 g 0 G -/F8 9.9626 Tf 45.948 0 Td [(Boundaries)-333(for)-334(setting)-333(in)-333(the)-334(v)28(ector.)]TJ -21.041 -11.956 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.378 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.378 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(optional)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.485 0 Td [(in)]TJ/F8 9.9626 Tf 9.548 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-444(in)27(tegers.)]TJ +/F8 9.9626 Tf 45.949 0 Td [(Boundaries)-333(for)-334(setting)-333(in)-333(the)-333(v)27(ector.)]TJ -21.042 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.956 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(optional)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(in)28(tegers.)]TJ 0 g 0 G -/F27 9.9626 Tf -24.907 -18.612 Td [(v)32(ect)]TJ +/F27 9.9626 Tf -24.907 -25.076 Td [(v)32(ect)]TJ 0 g 0 G -/F8 9.9626 Tf 25.508 0 Td [(An)-333(arra)28(y)]TJ -0.601 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.378 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.378 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.956 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.485 0 Td [(in)]TJ/F8 9.9626 Tf 9.548 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-444(a)-334(n)28(um)28(b)-28(er)-333(of)-334(the)-333(data)-333(t)28(yp)-28(e)-334(in)1(dicate)-1(d)-333(in)-333(T)83(able)]TJ +/F8 9.9626 Tf 25.509 0 Td [(An)-333(arra)28(y)]TJ -0.602 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.956 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(n)28(um)28(b)-28(er)-333(of)-334(the)-333(data)-333(t)28(yp)-28(e)-334(ind)1(ic)-1(ated)-333(in)-333(T)83(able)]TJ 0 0 1 rg 0 0 1 RG [-333(1)]TJ 0 g 0 G - [(.)]TJ -24.907 -18.634 Td [(Note)-391(that)-392(a)-391(call)-392(to)]TJ/F30 9.9626 Tf 87.299 0 Td [(v%zero\050\051)]TJ/F8 9.9626 Tf 45.743 0 Td [(is)-391(pro)27(vid)1(e)-1(d)-391(as)-391(a)-392(shorthand,)-406(but)-391(is)-391(equiv)55(alen)28(t)-391(to)]TJ -133.042 -11.955 Td [(a)-320(call)-319(to)]TJ/F30 9.9626 Tf 38.335 0 Td [(v%set\050zero\051)]TJ/F8 9.9626 Tf 60.719 0 Td [(with)-320(the)]TJ/F30 9.9626 Tf 39.579 0 Td [(zero)]TJ/F8 9.9626 Tf 24.106 0 Td [(constan)28(t)-320(ha)28(ving)-320(the)-319(appropriate)-320(t)28(yp)-28(e)-320(an)1(d)]TJ -162.739 -11.956 Td [(kind.)]TJ -0 g 0 G -/F27 9.9626 Tf 0 -18.634 Td [(On)-383(Return)]TJ -0 g 0 G + [(.)]TJ -24.907 -27.068 Td [(Note)-392(t)1(hat)-392(a)-391(call)-392(to)]TJ/F30 9.9626 Tf 87.3 0 Td [(v%zero\050\051)]TJ/F8 9.9626 Tf 45.742 0 Td [(is)-391(pro)27(vided)-391(as)-391(a)-392(shorthand,)-406(but)-391(is)-391(equiv)55(alen)28(t)-391(to)]TJ -133.042 -11.955 Td [(a)-320(call)-319(to)]TJ/F30 9.9626 Tf 38.336 0 Td [(v%set\050zero\051)]TJ/F8 9.9626 Tf 60.718 0 Td [(with)-320(the)]TJ/F30 9.9626 Tf 39.579 0 Td [(zero)]TJ/F8 9.9626 Tf 24.106 0 Td [(constan)28(t)-320(ha)28(ving)-320(the)-319(appropriate)-320(t)28(yp)-28(e)-320(and)]TJ -162.739 -11.956 Td [(kind.)]TJ 0 g 0 G - 0 -18.612 Td [(v)]TJ +/F27 9.9626 Tf 0 -27.068 Td [(On)-383(Return)]TJ 0 g 0 G -/F8 9.9626 Tf 11.028 0 Td [(the)-333(dense)-334(v)28(ector,)-333(with)-334(up)-27(dated)-334(en)28(tries)]TJ 13.879 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.378 0 Td [(lo)-32(cal)]TJ -0 g 0 G -/F8 9.9626 Tf 109.589 -41.843 Td [(24)]TJ -0 g 0 G -ET - -endstream -endobj -940 0 obj -<< -/Length 3941 ->> -stream 0 g 0 G + 0 -25.076 Td [(v)]TJ 0 g 0 G -BT -/F27 9.9626 Tf 99.895 706.129 Td [(get)]TJ +/F8 9.9626 Tf 11.028 0 Td [(the)-333(dense)-334(v)28(ector,)-333(with)-334(up)-27(dated)-334(en)28(tries)]TJ 13.879 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ -57.286 -44.683 Td [(get)]TJ ET q -1 0 0 1 116.018 706.328 cm +1 0 0 1 116.018 303.966 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 119.455 706.129 Td [(v)32(ect)-383(|)-384(Get)-383(a)-383(cop)32(y)-384(of)-383(the)-383(v)31(ector)-383(con)32(ten)32(ts)]TJ +/F27 9.9626 Tf 119.455 303.767 Td [(v)32(ect)-383(|)-384(Get)-383(a)-383(cop)32(y)-384(of)-383(the)-383(v)31(ector)-383(con)32(ten)32(ts)]TJ 0 g 0 G 0 g 0 G -/F30 9.9626 Tf -19.56 -18.959 Td [(extv)-525(=)-525(v%get_vect\050\051)]TJ +/F30 9.9626 Tf -19.56 -20.786 Td [(extv)-525(=)-525(v%get_vect\050\051)]TJ 0 g 0 G -/F27 9.9626 Tf 0 -22.837 Td [(T)32(yp)-32(e:)]TJ +/F27 9.9626 Tf 0 -25.781 Td [(T)32(yp)-32(e:)]TJ 0 g 0 G /F8 9.9626 Tf 33.797 0 Td [(Async)28(hronous.)]TJ 0 g 0 G -/F27 9.9626 Tf -33.797 -21.149 Td [(On)-383(En)32(try)]TJ +/F27 9.9626 Tf -33.797 -25.076 Td [(On)-383(En)32(try)]TJ +0 g 0 G +0 g 0 G + 0 -25.076 Td [(v)]TJ +0 g 0 G +/F8 9.9626 Tf 11.028 0 Td [(the)-333(dense)-334(v)28(ector)]TJ 13.879 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ +0 g 0 G + -57.286 -37.736 Td [(On)-383(Return)]TJ 0 g 0 G 0 g 0 G - 0 -21.15 Td [(v)]TJ + 0 -25.076 Td [(F)96(unction)-384(v)64(alue)]TJ 0 g 0 G -/F8 9.9626 Tf 11.028 0 Td [(the)-333(dense)-334(v)28(ector)]TJ 13.879 -11.956 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ +/F8 9.9626 Tf 78.387 0 Td [(An)-353(allo)-28(catable)-354(arra)28(y)-353(holding)-354(a)-353(cop)28(y)-354(of)-353(the)-354(dense)-353(v)28(ector)-354(con-)]TJ -53.48 -11.955 Td [(ten)28(ts.)]TJ 0 g 0 G - -57.286 -34.791 Td [(On)-383(Return)]TJ + 141.968 -29.888 Td [(25)]TJ 0 g 0 G +ET + +endstream +endobj +954 0 obj +<< +/Length 5381 +>> +stream 0 g 0 G - 0 -21.15 Td [(F)96(unction)-384(v)64(alue)]TJ 0 g 0 G -/F8 9.9626 Tf 78.387 0 Td [(An)-353(allo)-28(catable)-354(arra)28(y)-353(holding)-354(a)-353(cop)28(y)-354(of)-353(the)-354(dense)-353(v)28(ector)-354(con-)]TJ -53.48 -11.955 Td [(ten)28(ts.)]TJ/F27 9.9626 Tf -24.907 -27.52 Td [(clone)-383(|)-384(Clone)-383(curren)32(t)-383(ob)-64(ject)]TJ +BT +/F27 9.9626 Tf 150.705 706.129 Td [(clone)-383(|)-384(Clone)-383(curren)32(t)-383(ob)-64(ject)]TJ 0 g 0 G 0 g 0 G -/F30 9.9626 Tf 0 -18.96 Td [(call)-1050(x%clone\050y,info\051)]TJ +/F30 9.9626 Tf 0 -18.469 Td [(call)-1050(x%clone\050y,info\051)]TJ 0 g 0 G -/F27 9.9626 Tf 0 -22.836 Td [(T)32(yp)-32(e:)]TJ +/F27 9.9626 Tf 0 -22.046 Td [(T)32(yp)-32(e:)]TJ 0 g 0 G /F8 9.9626 Tf 33.797 0 Td [(Async)28(hronous.)]TJ 0 g 0 G -/F27 9.9626 Tf -33.797 -21.15 Td [(On)-383(En)32(try)]TJ +/F27 9.9626 Tf -33.797 -20.096 Td [(On)-383(En)32(try)]TJ 0 g 0 G 0 g 0 G - 0 -21.15 Td [(x)]TJ + 0 -20.096 Td [(x)]TJ 0 g 0 G -/F8 9.9626 Tf 11.028 0 Td [(the)-333(dense)-334(v)28(ector.)]TJ 13.879 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf 23.073 0 Td [(.)]TJ +/F8 9.9626 Tf 11.028 0 Td [(the)-333(dense)-334(v)28(ector.)]TJ 13.878 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf 23.073 0 Td [(.)]TJ 0 g 0 G -/F27 9.9626 Tf -80.359 -34.791 Td [(On)-383(Return)]TJ +/F27 9.9626 Tf -80.358 -34.001 Td [(On)-383(Return)]TJ 0 g 0 G 0 g 0 G - 0 -21.15 Td [(y)]TJ + 0 -20.096 Td [(y)]TJ 0 g 0 G -/F8 9.9626 Tf 11.028 0 Td [(A)-333(cop)27(y)-333(of)-333(the)-334(in)1(put)-334(ob)-55(ject.)]TJ +/F8 9.9626 Tf 11.028 0 Td [(A)-333(cop)27(y)-333(of)-333(the)-333(input)-334(ob)-55(ject.)]TJ 0 g 0 G -/F27 9.9626 Tf -11.028 -21.15 Td [(info)]TJ +/F27 9.9626 Tf -11.028 -20.096 Td [(info)]TJ 0 g 0 G -/F8 9.9626 Tf 23.758 0 Td [(Return)-333(co)-28(de.)]TJ/F16 11.9552 Tf -23.758 -29.513 Td [(3.4)-1125(Preconditioner)-375(data)-375(structure)]TJ/F8 9.9626 Tf 0 -18.959 Td [(Our)-383(base)-383(library)-383(o\013ers)-383(supp)-28(ort)-383(for)-383(simple)-383(w)28(ell)-383(kno)27(wn)-383(preconditioners)-383(lik)28(e)-383(Di-)]TJ 0 -11.955 Td [(agonal)-333(Scaling)-334(or)-333(Blo)-28(c)28(k)-333(Jacobi)-334(with)-333(incomplete)-333(factorization)-334(ILU\0500\051.)]TJ 14.944 -12.262 Td [(A)-427(preconditioner)-428(is)-427(held)-428(in)-427(the)]TJ/F30 9.9626 Tf 142.723 0 Td [(psb)]TJ +/F8 9.9626 Tf 23.758 0 Td [(Return)-333(co)-28(de.)]TJ/F16 11.9552 Tf -23.758 -28.115 Td [(3.4)-1125(Preconditioner)-375(data)-375(structure)]TJ/F8 9.9626 Tf 0 -18.469 Td [(Our)-383(base)-383(library)-383(o\013ers)-383(supp)-28(ort)-383(for)-383(simple)-383(w)28(ell)-383(kno)27(wn)-383(precondition)1(e)-1(r)1(s)-384(lik)28(e)-383(Di-)]TJ 0 -11.955 Td [(agonal)-333(Scaling)-334(or)-333(Blo)-28(c)28(k)-333(Jacobi)-334(with)-333(incomplete)-333(factorization)-333(ILU)-1(\050)1(0\051.)]TJ 14.944 -11.998 Td [(A)-427(preconditioner)-428(is)-427(held)-428(in)-427(the)]TJ/F30 9.9626 Tf 142.723 0 Td [(psb)]TJ ET q -1 0 0 1 273.881 269.031 cm +1 0 0 1 324.691 468.937 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 277.019 268.831 Td [(prec)]TJ +/F30 9.9626 Tf 327.829 468.737 Td [(prec)]TJ ET q -1 0 0 1 298.568 269.031 cm +1 0 0 1 349.378 468.937 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 301.707 268.831 Td [(type)]TJ/F8 9.9626 Tf 25.18 0 Td [(data)-427(structure)-428(rep)-28(orted)-427(in)]TJ -226.992 -11.955 Td [(\014gure)]TJ +/F30 9.9626 Tf 352.516 468.737 Td [(type)]TJ/F8 9.9626 Tf 25.18 0 Td [(data)-427(structure)-428(rep)-28(orted)-427(in)]TJ -226.991 -11.955 Td [(\014gure)]TJ 0 0 1 rg 0 0 1 RG [-361(6)]TJ 0 g 0 G - [(.)-527(The)]TJ/F30 9.9626 Tf 61.73 0 Td [(psb_prec_type)]TJ/F8 9.9626 Tf 71.589 0 Td [(data)-361(t)28(yp)-28(e)-361(ma)28(y)-361(con)28(tain)-361(a)-361(simple)-361(preconditioning)]TJ -133.319 -11.955 Td [(matrix)-488(with)-487(the)-488(asso)-28(ciated)-488(comm)28(unication)-488(descriptor.)1(T)-1(h)1(e)-488(in)28(ternal)-488(precondi-)]TJ 0 -11.955 Td [(tioner)-417(is)-417(allo)-28(cated)-417(approp)1(riately)-417(with)-417(the)-417(dynamic)-417(t)28(yp)-28(e)-417(corresp)-28(onding)-417(to)-417(the)]TJ 0 -11.955 Td [(desired)-333(preconditioner.)]TJ -0 g 0 G -0 g 0 G + [(.)-527(The)]TJ/F30 9.9626 Tf 61.729 0 Td [(psb_prec_type)]TJ/F8 9.9626 Tf 71.59 0 Td [(data)-361(t)28(yp)-28(e)-361(ma)28(y)-361(con)28(tain)-361(a)-361(simple)-361(preconditionin)1(g)]TJ -133.319 -11.955 Td [(matrix)-488(with)-487(the)-488(asso)-28(ciated)-488(comm)28(unication)-487(des)-1(crip)1(tor.The)-488(in)28(ternal)-488(precondi-)]TJ 0 -11.955 Td [(tioner)-417(is)-417(allo)-28(cated)-417(app)1(ropriately)-417(with)-417(the)-417(dynamic)-417(t)28(yp)-28(e)-417(corresp)-28(onding)-417(to)-417(th)1(e)]TJ 0 -11.955 Td [(desired)-333(preconditioner.)]TJ 0 g 0 G 0 g 0 G 0 g 0 G -/F47 8.9664 Tf 26.602 -25.464 Td [(type)-525(psb_Tprec_type)]TJ 9.414 -10.959 Td [(class\050psb_T_base_prec_type\051,)-525(allocatable)-525(::)-525(prec)]TJ -9.414 -10.959 Td [(end)-525(type)-525(psb_Tprec_type)]TJ 0 g 0 G -/F8 9.9626 Tf -14.633 -38.799 Td [(Figure)-333(6:)-445(The)-333(PSBLAS)-333(de\014ned)-334(data)-333(t)28(yp)-28(e)-333(that)-333(c)-1(on)28(tains)-333(a)-333(preconditioner.)]TJ 0 g 0 G +/F47 8.9664 Tf 26.601 -24.937 Td [(type)-525(psb_Tprec_type)]TJ 9.415 -10.959 Td [(class\050psb_T_base_prec_type\051,)-525(allocatable)-525(::)-525(prec)]TJ -9.415 -10.959 Td [(end)-525(type)-525(psb_Tprec_type)]TJ 0 g 0 G +/F8 9.9626 Tf -14.632 -38.799 Td [(Figure)-333(6:)-445(The)-333(PSBLAS)-333(de\014ned)-334(d)1(a)-1(t)1(a)-334(t)28(yp)-28(e)-333(that)-333(con)27(tains)-333(a)-333(preconditioner.)]TJ 0 g 0 G - 154.906 -44.392 Td [(25)]TJ 0 g 0 G -ET - -endstream -endobj -948 0 obj -<< -/Length 3208 ->> -stream -0 g 0 G -0 g 0 G -BT -/F16 11.9552 Tf 150.705 706.129 Td [(3.5)-1125(Heap)-375(data)-375(structure)]TJ/F8 9.9626 Tf 0 -18.389 Td [(Among)-393(the)-393(to)-28(ols)-393(routines)-393(of)-393(sec.)]TJ +/F16 11.9552 Tf -11.969 -40.155 Td [(3.5)-1125(Heap)-375(data)-375(structure)]TJ/F8 9.9626 Tf 0 -18.469 Td [(Among)-393(the)-393(to)-28(ols)-393(routines)-393(of)-393(sec.)]TJ 0 0 1 rg 0 0 1 RG [-393(6)]TJ 0 g 0 G - [(,)-408(w)28(e)-393(ha)28(v)27(e)-393(a)-393(n)28(um)28(b)-28(er)-393(of)-393(sorting)-393(utilities;)-423(the)]TJ 0 -11.956 Td [(heap)-333(sort)-334(is)-333(implemen)28(ted)-334(in)-333(terms)-333(of)-334(heaps)-333(ha)28(ving)-333(the)-334(follo)28(wing)-333(signatures:)]TJ + [(,)-408(w)28(e)-393(ha)28(v)27(e)-393(a)-393(n)28(um)28(b)-28(er)-393(of)-393(sorting)-393(utilities;)-423(the)]TJ 0 -11.955 Td [(heap)-333(sort)-334(is)-333(implemen)28(ted)-334(in)-333(terms)-333(of)-334(heaps)-333(ha)28(ving)-333(the)-334(follo)28(wing)-333(signatures:)]TJ 0 g 0 G -/F30 9.9626 Tf 0 -19.925 Td [(psb)]TJ +/F30 9.9626 Tf 0 -20.053 Td [(psb)]TJ ET q -1 0 0 1 167.023 656.058 cm +1 0 0 1 167.023 244.83 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 170.162 655.859 Td [(T)]TJ +/F30 9.9626 Tf 170.162 244.631 Td [(T)]TJ ET q -1 0 0 1 176.02 656.058 cm +1 0 0 1 176.02 244.83 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 179.158 655.859 Td [(heap)]TJ +/F30 9.9626 Tf 179.158 244.631 Td [(heap)]TJ 0 g 0 G -/F8 9.9626 Tf 25.903 0 Td [(:)-425(a)-295(heap)-296(con)28(taining)-295(elemen)28(ts)-295(of)-295(t)27(yp)-27(e)-296(T,)-295(where)-295(T)-295(can)-295(b)-28(e)]TJ/F30 9.9626 Tf 242.282 0 Td [(i,s,c,d,z)]TJ/F8 9.9626 Tf -271.731 -11.955 Td [(for)-333(in)28(teger,)-334(real)-333(and)-333(complex)-334(data;)]TJ +/F8 9.9626 Tf 25.903 0 Td [(:)-425(a)-295(heap)-296(con)28(taining)-295(elemen)28(ts)-295(of)-295(t)27(yp)-27(e)-296(T,)-295(where)-295(T)-295(can)-295(b)-28(e)]TJ/F30 9.9626 Tf 242.282 0 Td [(i,s,c,d,z)]TJ/F8 9.9626 Tf -271.731 -11.956 Td [(for)-333(in)28(teger,)-334(real)-333(and)-333(complex)-334(data;)]TJ 0 g 0 G -/F30 9.9626 Tf -24.907 -19.925 Td [(psb)]TJ +/F30 9.9626 Tf -24.907 -20.096 Td [(psb)]TJ ET q -1 0 0 1 167.023 624.178 cm +1 0 0 1 167.023 212.779 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 170.162 623.979 Td [(T)]TJ +/F30 9.9626 Tf 170.162 212.579 Td [(T)]TJ ET q -1 0 0 1 176.02 624.178 cm +1 0 0 1 176.02 212.779 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 179.158 623.979 Td [(idx)]TJ +/F30 9.9626 Tf 179.158 212.579 Td [(idx)]TJ ET q -1 0 0 1 195.476 624.178 cm +1 0 0 1 195.476 212.779 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 198.615 623.979 Td [(heap)]TJ +/F30 9.9626 Tf 198.615 212.579 Td [(heap)]TJ 0 g 0 G -/F8 9.9626 Tf 25.902 0 Td [(:)-408(a)-260(heap)-260(con)28(taining)-260(elemen)28(ts)-260(of)-260(t)28(yp)-28(e)-260(T,)-260(as)-260(ab)-27(o)28(v)27(e,)-274(together)-260(with)]TJ -48.906 -11.956 Td [(an)-333(in)27(t)1(e)-1(ger)-333(index.)]TJ -24.906 -19.925 Td [(Giv)28(en)-334(a)-333(heap)-333(ob)-56(ject,)-333(the)-333(follo)27(win)1(g)-334(metho)-28(ds)-333(are)-333(de\014ned)-334(on)-333(it:)]TJ +/F8 9.9626 Tf 25.902 0 Td [(:)-408(a)-260(heap)-260(con)28(taining)-260(elemen)28(ts)-260(of)-260(t)28(yp)-28(e)-260(T,)-260(as)-260(ab)-27(o)28(v)27(e,)-274(together)-260(with)]TJ -48.906 -11.955 Td [(an)-333(in)27(t)1(e)-1(ger)-333(index.)]TJ -24.906 -20.053 Td [(Giv)28(en)-334(a)-333(heap)-333(ob)-56(ject,)-333(the)-333(follo)27(win)1(g)-334(metho)-28(ds)-333(are)-333(de\014ned)-334(on)-333(it:)]TJ 0 g 0 G -/F27 9.9626 Tf 0 -19.925 Td [(init)]TJ +/F27 9.9626 Tf 0 -20.053 Td [(init)]TJ 0 g 0 G /F8 9.9626 Tf 22.167 0 Td [(Initialize)-333(memory;)-334(also)-333(c)28(ho)-28(ose)-333(as)-1(cendi)1(ng)-334(or)-333(descending)-333(order;)]TJ 0 g 0 G -/F27 9.9626 Tf -22.167 -19.925 Td [(ho)32(wman)32(y)]TJ +/F27 9.9626 Tf -22.167 -20.096 Td [(ho)32(wman)32(y)]TJ 0 g 0 G /F8 9.9626 Tf 52.241 0 Td [(Curren)28(t)-333(heap)-334(o)-28(ccupancy;)]TJ 0 g 0 G -/F27 9.9626 Tf -52.241 -19.926 Td [(insert)]TJ +/F27 9.9626 Tf -52.241 -20.096 Td [(insert)]TJ 0 g 0 G /F8 9.9626 Tf 33.473 0 Td [(Add)-333(an)-334(item)-333(\050or)-333(an)-334(i)1(te)-1(m)-333(and)-333(its)-334(i)1(ndex\051;)]TJ 0 g 0 G -/F27 9.9626 Tf -33.473 -19.925 Td [(get)]TJ + 133.401 -29.888 Td [(26)]TJ +0 g 0 G +ET + +endstream +endobj +961 0 obj +<< +/Length 758 +>> +stream +0 g 0 G +0 g 0 G +0 g 0 G +BT +/F27 9.9626 Tf 99.895 706.129 Td [(get)]TJ ET q -1 0 0 1 166.827 512.596 cm +1 0 0 1 116.018 706.328 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 170.264 512.397 Td [(\014rst)]TJ +/F27 9.9626 Tf 119.455 706.129 Td [(\014rst)]TJ 0 g 0 G -/F8 9.9626 Tf 25.04 0 Td [(Remo)28(v)27(e)-333(and)-333(return)-333(the)-334(\014rst)-333(elemen)28(t;)]TJ +/F8 9.9626 Tf 25.039 0 Td [(Remo)28(v)27(e)-333(and)-333(return)-333(the)-334(\014rst)-333(elemen)28(t;)]TJ 0 g 0 G /F27 9.9626 Tf -44.599 -19.925 Td [(dump)]TJ 0 g 0 G @@ -7650,46 +7746,46 @@ BT 0 g 0 G /F27 9.9626 Tf -33.624 -19.926 Td [(free)]TJ 0 g 0 G -/F8 9.9626 Tf 23.703 0 Td [(Release)-333(m)-1(emory)84(.)]TJ -23.703 -19.925 Td [(These)-333(ob)-56(jects)-333(are)-334(used)-333(in)-333(MLD2P4)-334(to)-333(implemen)28(t)-334(th)1(e)-334(factorization)-333(algorithms.)]TJ +/F8 9.9626 Tf 23.703 0 Td [(Release)-334(memory)84(.)]TJ -23.703 -19.925 Td [(These)-333(ob)-56(jects)-333(are)-334(used)-333(in)-333(MLD2P4)-334(to)-333(implemen)28(t)-334(the)-333(factorization)-333(algorithms.)]TJ 0 g 0 G - 166.874 -362.183 Td [(26)]TJ + 166.875 -555.915 Td [(27)]TJ 0 g 0 G ET endstream endobj -952 0 obj +965 0 obj << -/Length 157 +/Length 158 >> stream 0 g 0 G 0 g 0 G BT -/F16 14.3462 Tf 99.895 706.129 Td [(4)-1125(Computational)-375(routines)]TJ +/F16 14.3462 Tf 150.705 706.129 Td [(4)-1125(Computational)-375(routines)]TJ 0 g 0 G -/F8 9.9626 Tf 166.875 -615.691 Td [(27)]TJ +/F8 9.9626 Tf 166.874 -615.691 Td [(28)]TJ 0 g 0 G ET endstream endobj -963 0 obj +976 0 obj << -/Length 7321 +/Length 7361 >> stream 0 g 0 G 0 g 0 G BT -/F16 11.9552 Tf 150.705 706.129 Td [(psb)]TJ +/F16 11.9552 Tf 99.895 706.129 Td [(psb)]TJ ET q -1 0 0 1 171.761 706.328 cm +1 0 0 1 120.951 706.328 cm []0 d 0 J 0.398 w 0 0 m 4.035 0 l S Q BT -/F16 11.9552 Tf 175.796 706.129 Td [(geaxpb)31(y)-375(|)-375(General)-375(Dense)-375(Matrix)-375(Sum)]TJ/F8 9.9626 Tf -25.091 -18.578 Td [(This)-436(subroutine)-436(is)-436(an)-436(in)28(terface)-437(to)-436(the)-436(computational)-436(k)28(ernel)-436(for)-436(dense)-436(matrix)]TJ 0 -11.955 Td [(sum:)]TJ/F11 9.9626 Tf 142.537 -12.258 Td [(y)]TJ/F14 9.9626 Tf 8.009 0 Td [(\040)]TJ/F11 9.9626 Tf 12.73 0 Td [(\013)-226(x)]TJ/F8 9.9626 Tf 16.532 0 Td [(+)]TJ/F11 9.9626 Tf 9.963 0 Td [(\014)-53(y)]TJ +/F16 11.9552 Tf 124.986 706.129 Td [(geaxpb)31(y)-375(|)-375(General)-375(Dense)-375(Matrix)-375(Sum)]TJ/F8 9.9626 Tf -25.091 -18.578 Td [(This)-436(subroutine)-436(is)-436(an)-436(in)28(te)-1(r)1(fac)-1(e)-436(to)-436(the)-436(computational)-436(k)28(ernel)-436(for)-436(dense)-436(matrix)]TJ 0 -11.955 Td [(sum:)]TJ/F11 9.9626 Tf 142.538 -12.258 Td [(y)]TJ/F14 9.9626 Tf 8.009 0 Td [(\040)]TJ/F11 9.9626 Tf 12.73 0 Td [(\013)-226(x)]TJ/F8 9.9626 Tf 16.532 0 Td [(+)]TJ/F11 9.9626 Tf 9.962 0 Td [(\014)-53(y)]TJ 0 g 0 G 0 g 0 G /F30 9.9626 Tf -189.771 -22.424 Td [(call)-525(psb_geaxpby\050alpha,)-525(x,)-525(beta,)-525(y,)-525(desc_a,)-525(info\051)]TJ @@ -7698,54 +7794,54 @@ BT 0 g 0 G ET q -1 0 0 1 228.797 616.077 cm +1 0 0 1 177.988 616.077 cm []0 d 0 J 0.398 w 0 0 m 187.526 0 l S Q BT -/F11 9.9626 Tf 234.775 607.509 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(,)]TJ/F11 9.9626 Tf 6.088 0 Td [(y)]TJ/F8 9.9626 Tf 5.242 0 Td [(,)]TJ/F11 9.9626 Tf 6.088 0 Td [(\013)]TJ/F8 9.9626 Tf 6.41 0 Td [(,)]TJ/F11 9.9626 Tf 6.089 0 Td [(\014)]TJ/F27 9.9626 Tf 84.799 0 Td [(Subroutine)]TJ +/F11 9.9626 Tf 183.966 607.509 Td [(x)]TJ/F8 9.9626 Tf 5.693 0 Td [(,)]TJ/F11 9.9626 Tf 6.089 0 Td [(y)]TJ/F8 9.9626 Tf 5.242 0 Td [(,)]TJ/F11 9.9626 Tf 6.088 0 Td [(\013)]TJ/F8 9.9626 Tf 6.41 0 Td [(,)]TJ/F11 9.9626 Tf 6.088 0 Td [(\014)]TJ/F27 9.9626 Tf 84.799 0 Td [(Subroutine)]TJ ET q -1 0 0 1 228.797 603.724 cm +1 0 0 1 177.988 603.724 cm []0 d 0 J 0.398 w 0 0 m 187.526 0 l S Q BT -/F8 9.9626 Tf 234.775 595.156 Td [(Short)-333(Precision)-334(Real)-3102(psb)]TJ +/F8 9.9626 Tf 183.966 595.156 Td [(Short)-333(Precision)-333(R)-1(eal)-3102(psb)]TJ ET q -1 0 0 1 370.782 595.355 cm +1 0 0 1 319.972 595.355 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 373.771 595.156 Td [(geaxpb)28(y)]TJ -138.996 -11.955 Td [(Long)-333(Precision)-334(Real)-3314(psb)]TJ +/F8 9.9626 Tf 322.961 595.156 Td [(geaxpb)28(y)]TJ -138.995 -11.955 Td [(Long)-333(Precision)-334(Real)-3314(p)1(s)-1(b)]TJ ET q -1 0 0 1 370.782 583.4 cm +1 0 0 1 319.972 583.4 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 373.771 583.201 Td [(geaxpb)28(y)]TJ -138.996 -11.956 Td [(Short)-333(Precision)-334(Complex)-1200(psb)]TJ +/F8 9.9626 Tf 322.961 583.201 Td [(geaxpb)28(y)]TJ -138.995 -11.956 Td [(Short)-333(Precision)-333(C)-1(omplex)-1200(p)1(s)-1(b)]TJ ET q -1 0 0 1 370.782 571.445 cm +1 0 0 1 319.972 571.445 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 373.771 571.245 Td [(geaxpb)28(y)]TJ -138.996 -11.955 Td [(Long)-333(Precision)-334(Complex)-1411(psb)]TJ +/F8 9.9626 Tf 322.961 571.245 Td [(geaxpb)28(y)]TJ -138.995 -11.955 Td [(Long)-333(Precision)-334(Complex)-1411(psb)]TJ ET q -1 0 0 1 370.782 559.49 cm +1 0 0 1 319.972 559.49 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 373.771 559.29 Td [(geaxpb)28(y)]TJ +/F8 9.9626 Tf 322.961 559.29 Td [(geaxpb)28(y)]TJ ET q -1 0 0 1 228.797 555.504 cm +1 0 0 1 177.988 555.504 cm []0 d 0 J 0.398 w 0 0 m 187.526 0 l S Q 0 g 0 G BT -/F8 9.9626 Tf 278.877 527.465 Td [(T)83(able)-333(1:)-444(Data)-334(t)28(yp)-28(es)]TJ +/F8 9.9626 Tf 228.067 527.465 Td [(T)83(able)-333(1:)-444(Data)-334(t)28(yp)-28(es)]TJ 0 g 0 G 0 g 0 G 0 g 0 G @@ -7758,7 +7854,7 @@ BT 0 g 0 G 0 -20.329 Td [(alpha)]TJ 0 g 0 G -/F8 9.9626 Tf 32.032 0 Td [(the)-333(scalar)]TJ/F11 9.9626 Tf 45.469 0 Td [(\013)]TJ/F8 9.9626 Tf 6.41 0 Td [(.)]TJ -59.004 -11.956 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.378 0 Td [(global)]TJ/F8 9.9626 Tf -32.378 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.485 0 Td [(in)]TJ/F8 9.9626 Tf 9.548 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-444(a)-334(n)28(um)28(b)-28(er)-333(of)-334(the)-333(data)-333(t)28(yp)-28(e)-334(in)1(dicate)-1(d)-333(in)-333(T)83(able)]TJ +/F8 9.9626 Tf 32.033 0 Td [(the)-333(scalar)]TJ/F11 9.9626 Tf 45.468 0 Td [(\013)]TJ/F8 9.9626 Tf 6.41 0 Td [(.)]TJ -59.004 -11.956 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(global)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(n)28(um)28(b)-28(er)-333(of)-334(the)-333(data)-333(t)28(yp)-28(e)-334(ind)1(ic)-1(ated)-333(in)-333(T)83(able)]TJ 0 0 1 rg 0 0 1 RG [-333(1)]TJ 0 g 0 G @@ -7766,40 +7862,40 @@ BT 0 g 0 G /F27 9.9626 Tf -24.907 -20.33 Td [(x)]TJ 0 g 0 G -/F8 9.9626 Tf 11.028 0 Td [(the)-333(lo)-28(cal)-333(p)-28(ortion)-333(of)-334(global)-333(dense)-333(matrix)]TJ/F11 9.9626 Tf 176.118 0 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(.)]TJ -167.933 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.378 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.378 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.956 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.485 0 Td [(in)]TJ/F8 9.9626 Tf 9.548 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-255(as:)-405(a)-255(rank)-254(one)-255(or)-255(t)28(w)28(o)-255(arra)28(y)-255(or)-255(an)-255(ob)-55(ject)-255(of)-255(t)28(yp)-28(e)]TJ +/F8 9.9626 Tf 11.028 0 Td [(the)-333(lo)-28(cal)-333(p)-28(ortion)-333(of)-334(global)-333(dense)-333(matrix)]TJ/F11 9.9626 Tf 176.118 0 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(.)]TJ -167.933 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.956 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-255(as:)-405(a)-255(rank)-254(one)-255(or)-255(t)28(w)27(o)-254(arra)27(y)-254(or)-255(an)-255(ob)-55(jec)-1(t)-254(of)-255(t)28(yp)-28(e)]TJ 0 0 1 rg 0 0 1 RG -/F30 9.9626 Tf 244.742 0 Td [(psb)]TJ +/F30 9.9626 Tf 244.743 0 Td [(psb)]TJ ET q -1 0 0 1 436.673 336.932 cm +1 0 0 1 385.864 336.932 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 439.811 336.732 Td [(T)]TJ +/F30 9.9626 Tf 389.002 336.732 Td [(T)]TJ ET q -1 0 0 1 445.669 336.932 cm +1 0 0 1 394.86 336.932 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 448.807 336.732 Td [(vect)]TJ +/F30 9.9626 Tf 397.998 336.732 Td [(vect)]TJ ET q -1 0 0 1 470.356 336.932 cm +1 0 0 1 419.547 336.932 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 473.495 336.732 Td [(type)]TJ +/F30 9.9626 Tf 422.685 336.732 Td [(type)]TJ 0 g 0 G -/F8 9.9626 Tf -297.884 -11.955 Td [(con)28(taining)-375(n)27(um)28(b)-28(ers)-375(of)-375(t)28(yp)-28(e)-375(sp)-28(eci\014ed)-375(in)-375(T)83(able)]TJ +/F8 9.9626 Tf -297.883 -11.955 Td [(con)28(taining)-375(n)27(u)1(m)27(b)-27(e)-1(r)1(s)-376(of)-375(t)28(yp)-28(e)-375(sp)-28(eci\014ed)-375(in)-375(T)83(able)]TJ 0 0 1 rg 0 0 1 RG [-375(1)]TJ 0 g 0 G - [(.)-570(The)-376(rank)-375(of)]TJ/F11 9.9626 Tf 274.031 0 Td [(x)]TJ/F8 9.9626 Tf 9.432 0 Td [(m)28(ust)-375(b)-28(e)]TJ -283.463 -11.955 Td [(the)-333(same)-334(of)]TJ/F11 9.9626 Tf 53.467 0 Td [(y)]TJ/F8 9.9626 Tf 5.242 0 Td [(.)]TJ + [(.)-570(The)-376(rank)-375(of)]TJ/F11 9.9626 Tf 274.03 0 Td [(x)]TJ/F8 9.9626 Tf 9.432 0 Td [(m)28(ust)-376(b)-27(e)]TJ -283.462 -11.955 Td [(the)-333(same)-334(of)]TJ/F11 9.9626 Tf 53.466 0 Td [(y)]TJ/F8 9.9626 Tf 5.242 0 Td [(.)]TJ 0 g 0 G /F27 9.9626 Tf -83.615 -20.33 Td [(b)-32(eta)]TJ 0 g 0 G -/F8 9.9626 Tf 26.94 0 Td [(the)-333(scalar)]TJ/F11 9.9626 Tf 45.469 0 Td [(\014)]TJ/F8 9.9626 Tf 6.161 0 Td [(.)]TJ -53.663 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.378 0 Td [(global)]TJ/F8 9.9626 Tf -32.378 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.485 0 Td [(in)]TJ/F8 9.9626 Tf 9.548 0 Td [(.)]TJ -43.033 -11.956 Td [(Sp)-28(eci\014ed)-333(as:)-444(a)-334(n)28(um)28(b)-28(er)-333(of)-334(the)-333(data)-333(t)28(yp)-28(e)-334(in)1(dicate)-1(d)-333(in)-333(T)83(able)]TJ +/F8 9.9626 Tf 26.941 0 Td [(the)-333(scalar)]TJ/F11 9.9626 Tf 45.468 0 Td [(\014)]TJ/F8 9.9626 Tf 6.161 0 Td [(.)]TJ -53.663 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(global)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.956 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(n)28(um)28(b)-28(er)-333(of)-334(the)-333(data)-333(t)28(yp)-28(e)-334(ind)1(ic)-1(ated)-333(in)-333(T)83(able)]TJ 0 0 1 rg 0 0 1 RG [-333(1)]TJ 0 g 0 G @@ -7807,200 +7903,200 @@ BT 0 g 0 G /F27 9.9626 Tf -24.907 -20.329 Td [(y)]TJ 0 g 0 G -/F8 9.9626 Tf 11.028 0 Td [(the)-333(lo)-28(cal)-333(p)-28(ortion)-333(of)-334(the)-333(global)-333(dense)-334(matrix)]TJ/F11 9.9626 Tf 193.276 0 Td [(y)]TJ/F8 9.9626 Tf 5.242 0 Td [(.)]TJ -184.639 -11.956 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.378 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.378 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.485 0 Td [(inout)]TJ/F8 9.9626 Tf 26.097 0 Td [(.)]TJ -59.582 -11.955 Td [(Sp)-28(eci\014ed)-255(as:)-405(a)-255(rank)-254(one)-255(or)-255(t)28(w)28(o)-255(arra)28(y)-255(or)-255(an)-255(ob)-55(ject)-255(of)-255(t)28(yp)-28(e)]TJ +/F8 9.9626 Tf 11.028 0 Td [(the)-333(lo)-28(cal)-333(p)-28(ortion)-333(of)-334(the)-333(global)-333(dense)-334(matrix)]TJ/F11 9.9626 Tf 193.276 0 Td [(y)]TJ/F8 9.9626 Tf 5.242 0 Td [(.)]TJ -184.639 -11.956 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(inout)]TJ/F8 9.9626 Tf 26.096 0 Td [(.)]TJ -59.582 -11.955 Td [(Sp)-28(eci\014ed)-255(as:)-405(a)-255(rank)-254(one)-255(or)-255(t)28(w)27(o)-254(arra)27(y)-254(or)-255(an)-255(ob)-55(jec)-1(t)-254(of)-255(t)28(yp)-28(e)]TJ 0 0 1 rg 0 0 1 RG -/F30 9.9626 Tf 244.742 0 Td [(psb)]TJ +/F30 9.9626 Tf 244.743 0 Td [(psb)]TJ ET q -1 0 0 1 436.673 176.72 cm +1 0 0 1 385.864 176.72 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 439.811 176.521 Td [(T)]TJ +/F30 9.9626 Tf 389.002 176.521 Td [(T)]TJ ET q -1 0 0 1 445.669 176.72 cm +1 0 0 1 394.86 176.72 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 448.807 176.521 Td [(vect)]TJ +/F30 9.9626 Tf 397.998 176.521 Td [(vect)]TJ ET q -1 0 0 1 470.356 176.72 cm +1 0 0 1 419.547 176.72 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 473.495 176.521 Td [(type)]TJ +/F30 9.9626 Tf 422.685 176.521 Td [(type)]TJ 0 g 0 G -/F8 9.9626 Tf -297.884 -11.955 Td [(con)28(taining)-334(n)27(u)1(m)27(b)-27(e)-1(r)1(s)-335(of)-334(the)-334(t)28(yp)-28(e)-334(indicated)-334(in)-334(T)83(able)]TJ +/F8 9.9626 Tf -297.883 -11.955 Td [(con)28(taining)-334(n)28(um)27(b)-27(ers)-335(of)-334(the)-334(t)28(yp)-28(e)-334(indicated)-334(in)-334(T)83(able)]TJ 0 0 1 rg 0 0 1 RG [-334(1)]TJ 0 g 0 G - [(.)-447(The)-334(rank)-335(of)]TJ/F11 9.9626 Tf 288.869 0 Td [(y)]TJ/F8 9.9626 Tf 8.572 0 Td [(m)28(ust)]TJ -297.441 -11.955 Td [(b)-28(e)-333(the)-333(s)-1(ame)-333(of)]TJ/F11 9.9626 Tf 67.027 0 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(.)]TJ + [(.)-447(The)-334(rank)-334(of)]TJ/F11 9.9626 Tf 288.869 0 Td [(y)]TJ/F8 9.9626 Tf 8.571 0 Td [(m)28(ust)]TJ -297.44 -11.955 Td [(b)-28(e)-333(the)-333(sam)-1(e)-333(of)]TJ/F11 9.9626 Tf 67.027 0 Td [(x)]TJ/F8 9.9626 Tf 5.693 0 Td [(.)]TJ 0 g 0 G /F27 9.9626 Tf -97.627 -20.33 Td [(desc)]TJ ET q -1 0 0 1 172.619 132.48 cm +1 0 0 1 121.81 132.48 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 176.057 132.281 Td [(a)]TJ +/F27 9.9626 Tf 125.247 132.281 Td [(a)]TJ 0 g 0 G -/F8 9.9626 Tf 10.55 0 Td [(con)28(tains)-334(data)-333(structures)-333(for)-333(c)-1(omm)28(unications.)]TJ -10.996 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ +/F8 9.9626 Tf 10.551 0 Td [(con)28(tains)-334(d)1(ata)-334(structures)-333(for)-333(com)-1(m)28(unications.)]TJ -10.996 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ 0 g 0 G -/F8 9.9626 Tf 109.589 -29.888 Td [(28)]TJ +/F8 9.9626 Tf 109.589 -29.888 Td [(29)]TJ 0 g 0 G ET endstream endobj -969 0 obj +982 0 obj << -/Length 2659 +/Length 2655 >> stream 0 g 0 G 0 g 0 G BT -/F8 9.9626 Tf 124.802 706.129 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(ob)-55(ject)-334(of)-333(t)28(yp)-28(e)]TJ +/F8 9.9626 Tf 175.611 706.129 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.612 0 Td [(required)]TJ/F8 9.9626 Tf -29.612 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.548 0 Td [(.)]TJ -43.034 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(ob)-55(ject)-334(of)-333(t)28(yp)-28(e)]TJ 0 0 1 rg 0 0 1 RG -/F30 9.9626 Tf 135.658 0 Td [(psb)]TJ +/F30 9.9626 Tf 135.659 0 Td [(psb)]TJ ET q -1 0 0 1 276.779 682.418 cm +1 0 0 1 327.588 682.418 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 279.917 682.219 Td [(desc)]TJ +/F30 9.9626 Tf 330.727 682.219 Td [(desc)]TJ ET q -1 0 0 1 301.466 682.418 cm +1 0 0 1 352.275 682.418 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 304.604 682.219 Td [(type)]TJ +/F30 9.9626 Tf 355.414 682.219 Td [(type)]TJ 0 g 0 G -/F8 9.9626 Tf 20.922 0 Td [(.)]TJ +/F8 9.9626 Tf 20.921 0 Td [(.)]TJ 0 g 0 G -/F27 9.9626 Tf -225.631 -21.918 Td [(On)-383(Return)]TJ +/F27 9.9626 Tf -225.63 -21.918 Td [(On)-383(Return)]TJ 0 g 0 G 0 g 0 G 0 -19.926 Td [(y)]TJ 0 g 0 G -/F8 9.9626 Tf 11.028 0 Td [(the)-333(lo)-28(cal)-333(p)-28(ortion)-333(of)-334(result)-333(submatrix)]TJ/F11 9.9626 Tf 162.364 0 Td [(y)]TJ/F8 9.9626 Tf 5.242 0 Td [(.)]TJ -153.727 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(inout)]TJ/F8 9.9626 Tf 26.096 0 Td [(.)]TJ -59.582 -11.955 Td [(Sp)-28(eci\014ed)-255(as:)-405(a)-255(rank)-254(one)-255(or)-255(t)28(w)27(o)-254(arra)27(y)-254(or)-255(an)-255(ob)-55(jec)-1(t)-254(of)-255(t)28(yp)-28(e)]TJ +/F8 9.9626 Tf 11.028 0 Td [(the)-333(lo)-28(cal)-333(p)-28(ortion)-333(of)-334(result)-333(submatrix)]TJ/F11 9.9626 Tf 162.364 0 Td [(y)]TJ/F8 9.9626 Tf 5.242 0 Td [(.)]TJ -153.727 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.378 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.378 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.485 0 Td [(inout)]TJ/F8 9.9626 Tf 26.097 0 Td [(.)]TJ -59.582 -11.955 Td [(Sp)-28(eci\014ed)-255(as:)-405(a)-255(rank)-254(one)-255(or)-255(t)28(w)28(o)-255(arra)28(y)-255(or)-255(an)-255(ob)-55(ject)-255(of)-255(t)28(yp)-28(e)]TJ 0 0 1 rg 0 0 1 RG -/F30 9.9626 Tf 244.743 0 Td [(psb)]TJ +/F30 9.9626 Tf 244.742 0 Td [(psb)]TJ ET q -1 0 0 1 385.864 592.754 cm +1 0 0 1 436.673 592.754 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 389.002 592.555 Td [(T)]TJ +/F30 9.9626 Tf 439.811 592.555 Td [(T)]TJ ET q -1 0 0 1 394.86 592.754 cm +1 0 0 1 445.669 592.754 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 397.998 592.555 Td [(vect)]TJ +/F30 9.9626 Tf 448.807 592.555 Td [(vect)]TJ ET q -1 0 0 1 419.547 592.754 cm +1 0 0 1 470.356 592.754 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 422.685 592.555 Td [(type)]TJ +/F30 9.9626 Tf 473.495 592.555 Td [(type)]TJ 0 g 0 G -/F8 9.9626 Tf -297.883 -11.955 Td [(con)28(taining)-333(n)27(um)28(b)-28(ers)-333(of)-333(the)-334(t)28(yp)-28(e)-333(indicated)-333(in)-333(T)83(able)]TJ +/F8 9.9626 Tf -297.884 -11.955 Td [(con)28(taining)-333(n)27(um)28(b)-28(ers)-333(of)-333(the)-334(t)28(yp)-28(e)-333(indicated)-333(in)-333(T)83(able)]TJ 0 0 1 rg 0 0 1 RG - [-333(1)]TJ + [-334(1)]TJ 0 g 0 G [(.)]TJ 0 g 0 G -/F27 9.9626 Tf -24.907 -19.926 Td [(info)]TJ +/F27 9.9626 Tf -24.906 -19.926 Td [(info)]TJ 0 g 0 G -/F8 9.9626 Tf 23.758 0 Td [(Error)-333(co)-28(de.)]TJ 1.149 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(out)]TJ/F8 9.9626 Tf 16.549 0 Td [(.)]TJ -50.035 -11.955 Td [(An)-333(in)28(tege)-1(r)-333(v)56(alue;)-334(0)-333(means)-333(no)-334(error)-333(has)-333(b)-28(een)-333(detecte)-1(d)1(.)]TJ +/F8 9.9626 Tf 23.758 0 Td [(Error)-333(co)-28(de.)]TJ 1.148 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.612 0 Td [(required)]TJ/F8 9.9626 Tf -29.612 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(out)]TJ/F8 9.9626 Tf 16.549 0 Td [(.)]TJ -50.035 -11.955 Td [(An)-333(in)27(t)1(e)-1(ger)-333(v)56(alue;)-334(0)-333(means)-333(no)-334(error)-333(has)-333(b)-28(een)-333(detec)-1(ted.)]TJ 0 g 0 G - 141.968 -422.416 Td [(29)]TJ + 141.968 -422.416 Td [(30)]TJ 0 g 0 G ET endstream endobj -979 0 obj +992 0 obj << -/Length 7891 +/Length 7903 >> stream 0 g 0 G 0 g 0 G BT -/F16 11.9552 Tf 150.705 706.129 Td [(psb)]TJ +/F16 11.9552 Tf 99.895 706.129 Td [(psb)]TJ ET q -1 0 0 1 171.761 706.328 cm +1 0 0 1 120.951 706.328 cm []0 d 0 J 0.398 w 0 0 m 4.035 0 l S Q BT -/F16 11.9552 Tf 175.796 706.129 Td [(gedot)-375(|)-375(Dot)-375(Pro)-31(duct)]TJ/F8 9.9626 Tf -25.091 -18.389 Td [(This)-333(function)-334(computes)-333(dot)-333(pro)-28(duct)-333(b)-28(et)28(w)28(e)-1(en)-333(t)28(w)28(o)-334(v)28(ectors)]TJ/F11 9.9626 Tf 252.332 0 Td [(x)]TJ/F8 9.9626 Tf 9.015 0 Td [(and)]TJ/F11 9.9626 Tf 19.371 0 Td [(y)]TJ/F8 9.9626 Tf 5.242 0 Td [(.)]TJ -285.96 -11.956 Td [(If)]TJ/F11 9.9626 Tf 9.963 0 Td [(x)]TJ/F8 9.9626 Tf 9.014 0 Td [(and)]TJ/F11 9.9626 Tf 19.372 0 Td [(y)]TJ/F8 9.9626 Tf 8.563 0 Td [(are)-333(real)-334(v)28(ectors)-333(it)-334(computes)-333(dot-pro)-28(duct)-333(as:)]TJ/F11 9.9626 Tf 101.783 -20.45 Td [(dot)]TJ/F14 9.9626 Tf 16.379 0 Td [(\040)]TJ/F11 9.9626 Tf 12.73 0 Td [(x)]TJ/F10 6.9738 Tf 5.694 4.113 Td [(T)]TJ/F11 9.9626 Tf 6.276 -4.113 Td [(y)]TJ/F8 9.9626 Tf -189.774 -20.451 Td [(Else)-333(if)]TJ/F11 9.9626 Tf 30.358 0 Td [(x)]TJ/F8 9.9626 Tf 9.015 0 Td [(and)]TJ/F11 9.9626 Tf 19.372 0 Td [(y)]TJ/F8 9.9626 Tf 8.563 0 Td [(are)-333(complex)-334(v)28(ectors)-333(then)-334(it)-333(computes)-333(dot-pro)-28(duct)-333(as:)]TJ/F11 9.9626 Tf 80.747 -20.451 Td [(dot)]TJ/F14 9.9626 Tf 16.379 0 Td [(\040)]TJ/F11 9.9626 Tf 12.73 0 Td [(x)]TJ/F10 6.9738 Tf 5.694 4.113 Td [(H)]TJ/F11 9.9626 Tf 7.556 -4.113 Td [(y)]TJ +/F16 11.9552 Tf 124.986 706.129 Td [(gedot)-375(|)-375(Dot)-375(Pro)-31(duct)]TJ/F8 9.9626 Tf -25.091 -18.389 Td [(This)-333(function)-334(computes)-333(dot)-333(pro)-28(duct)-333(b)-28(et)28(w)27(een)-333(t)28(w)28(o)-334(v)28(ectors)]TJ/F11 9.9626 Tf 252.332 0 Td [(x)]TJ/F8 9.9626 Tf 9.015 0 Td [(and)]TJ/F11 9.9626 Tf 19.372 0 Td [(y)]TJ/F8 9.9626 Tf 5.242 0 Td [(.)]TJ -285.961 -11.956 Td [(If)]TJ/F11 9.9626 Tf 9.963 0 Td [(x)]TJ/F8 9.9626 Tf 9.015 0 Td [(and)]TJ/F11 9.9626 Tf 19.372 0 Td [(y)]TJ/F8 9.9626 Tf 8.562 0 Td [(are)-333(real)-334(v)28(ectors)-333(it)-334(computes)-333(dot-pro)-28(duct)-333(as:)]TJ/F11 9.9626 Tf 101.783 -20.45 Td [(dot)]TJ/F14 9.9626 Tf 16.38 0 Td [(\040)]TJ/F11 9.9626 Tf 12.73 0 Td [(x)]TJ/F10 6.9738 Tf 5.694 4.113 Td [(T)]TJ/F11 9.9626 Tf 6.276 -4.113 Td [(y)]TJ/F8 9.9626 Tf -189.775 -20.451 Td [(Else)-333(if)]TJ/F11 9.9626 Tf 30.359 0 Td [(x)]TJ/F8 9.9626 Tf 9.015 0 Td [(and)]TJ/F11 9.9626 Tf 19.371 0 Td [(y)]TJ/F8 9.9626 Tf 8.563 0 Td [(are)-333(complex)-334(v)28(ectors)-333(then)-334(it)-333(computes)-333(dot-pro)-28(duct)-333(as:)]TJ/F11 9.9626 Tf 80.747 -20.451 Td [(dot)]TJ/F14 9.9626 Tf 16.38 0 Td [(\040)]TJ/F11 9.9626 Tf 12.73 0 Td [(x)]TJ/F10 6.9738 Tf 5.693 4.113 Td [(H)]TJ/F11 9.9626 Tf 7.557 -4.113 Td [(y)]TJ 0 g 0 G 0 g 0 G -/F30 9.9626 Tf -190.414 -20.451 Td [(psb_gedot\050x,)-525(y,)-525(desc_a,)-525(info\051)]TJ +/F30 9.9626 Tf -190.415 -20.451 Td [(psb_gedot\050x,)-525(y,)-525(desc_a,)-525(info\051)]TJ 0 g 0 G 0 g 0 G 0 g 0 G ET q -1 0 0 1 234.474 571.704 cm +1 0 0 1 183.665 571.704 cm []0 d 0 J 0.398 w 0 0 m 176.173 0 l S Q BT -/F11 9.9626 Tf 240.452 563.136 Td [(dot)]TJ/F8 9.9626 Tf 13.612 0 Td [(,)]TJ/F11 9.9626 Tf 6.088 0 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(,)]TJ/F11 9.9626 Tf 6.088 0 Td [(y)]TJ/F27 9.9626 Tf 88.927 0 Td [(F)96(unction)]TJ +/F11 9.9626 Tf 189.642 563.136 Td [(dot)]TJ/F8 9.9626 Tf 13.612 0 Td [(,)]TJ/F11 9.9626 Tf 6.089 0 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(,)]TJ/F11 9.9626 Tf 6.088 0 Td [(y)]TJ/F27 9.9626 Tf 88.927 0 Td [(F)96(unction)]TJ ET q -1 0 0 1 234.474 559.35 cm +1 0 0 1 183.665 559.35 cm []0 d 0 J 0.398 w 0 0 m 176.173 0 l S Q BT -/F8 9.9626 Tf 240.452 550.783 Td [(Short)-333(Precision)-334(Real)-3102(psb)]TJ +/F8 9.9626 Tf 189.642 550.783 Td [(Short)-333(Precision)-334(Real)-3102(psb)]TJ ET q -1 0 0 1 376.459 550.982 cm +1 0 0 1 325.649 550.982 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 379.447 550.783 Td [(gedot)]TJ -138.995 -11.956 Td [(Long)-333(Precision)-334(Real)-3314(p)1(s)-1(b)]TJ +/F8 9.9626 Tf 328.638 550.783 Td [(gedot)]TJ -138.996 -11.956 Td [(Long)-333(Precision)-334(Real)-3314(psb)]TJ ET q -1 0 0 1 376.459 539.027 cm +1 0 0 1 325.649 539.027 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 379.447 538.827 Td [(gedot)]TJ -138.995 -11.955 Td [(Short)-333(Precision)-334(Complex)-1200(psb)]TJ +/F8 9.9626 Tf 328.638 538.827 Td [(gedot)]TJ -138.996 -11.955 Td [(Short)-333(Precision)-334(Complex)-1200(psb)]TJ ET q -1 0 0 1 376.459 527.071 cm +1 0 0 1 325.649 527.071 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 379.447 526.872 Td [(gedot)]TJ -138.995 -11.955 Td [(Long)-333(Precision)-334(Complex)-1411(psb)]TJ +/F8 9.9626 Tf 328.638 526.872 Td [(gedot)]TJ -138.996 -11.955 Td [(Long)-333(Precision)-334(Complex)-1411(psb)]TJ ET q -1 0 0 1 376.459 515.116 cm +1 0 0 1 325.649 515.116 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 379.447 514.917 Td [(gedot)]TJ +/F8 9.9626 Tf 328.638 514.917 Td [(gedot)]TJ ET q -1 0 0 1 234.474 511.131 cm +1 0 0 1 183.665 511.131 cm []0 d 0 J 0.398 w 0 0 m 176.173 0 l S Q 0 g 0 G BT -/F8 9.9626 Tf 278.877 483.092 Td [(T)83(able)-333(2:)-444(Data)-334(t)28(yp)-28(es)]TJ +/F8 9.9626 Tf 228.067 483.092 Td [(T)83(able)-333(2:)-444(Data)-334(t)28(yp)-28(es)]TJ 0 g 0 G 0 g 0 G 0 g 0 G @@ -8013,151 +8109,151 @@ BT 0 g 0 G 0 -19.338 Td [(x)]TJ 0 g 0 G -/F8 9.9626 Tf 11.028 0 Td [(the)-333(lo)-28(cal)-333(p)-28(ortion)-333(of)-334(global)-333(dense)-333(matrix)]TJ/F11 9.9626 Tf 176.118 0 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(.)]TJ -167.933 -11.956 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.378 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.378 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.485 0 Td [(in)]TJ/F8 9.9626 Tf 9.548 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-255(as:)-405(a)-255(rank)-254(one)-255(or)-255(t)28(w)28(o)-255(arra)28(y)-255(or)-255(an)-255(ob)-55(ject)-255(of)-255(t)28(yp)-28(e)]TJ +/F8 9.9626 Tf 11.028 0 Td [(the)-333(lo)-28(cal)-333(p)-28(ortion)-333(of)-334(global)-333(dense)-333(matrix)]TJ/F11 9.9626 Tf 176.118 0 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(.)]TJ -167.933 -11.956 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-255(as:)-405(a)-255(rank)-254(one)-255(or)-255(t)28(w)27(o)-254(arra)27(y)-254(or)-255(an)-255(ob)-55(jec)-1(t)-254(of)-255(t)28(yp)-28(e)]TJ 0 0 1 rg 0 0 1 RG -/F30 9.9626 Tf 244.742 0 Td [(psb)]TJ +/F30 9.9626 Tf 244.743 0 Td [(psb)]TJ ET q -1 0 0 1 436.673 365.251 cm +1 0 0 1 385.864 365.251 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 439.811 365.052 Td [(T)]TJ +/F30 9.9626 Tf 389.002 365.052 Td [(T)]TJ ET q -1 0 0 1 445.669 365.251 cm +1 0 0 1 394.86 365.251 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 448.807 365.052 Td [(vect)]TJ +/F30 9.9626 Tf 397.998 365.052 Td [(vect)]TJ ET q -1 0 0 1 470.356 365.251 cm +1 0 0 1 419.547 365.251 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 473.495 365.052 Td [(type)]TJ +/F30 9.9626 Tf 422.685 365.052 Td [(type)]TJ 0 g 0 G -/F8 9.9626 Tf -297.884 -11.955 Td [(con)28(taining)-375(n)27(um)28(b)-28(ers)-375(of)-375(t)28(yp)-28(e)-375(sp)-28(eci\014ed)-375(in)-375(T)83(able)]TJ +/F8 9.9626 Tf -297.883 -11.955 Td [(con)28(taining)-375(n)27(u)1(m)27(b)-27(e)-1(r)1(s)-376(of)-375(t)28(yp)-28(e)-375(sp)-28(eci\014ed)-375(in)-375(T)83(able)]TJ 0 0 1 rg 0 0 1 RG [-375(2)]TJ 0 g 0 G - [(.)-570(The)-376(rank)-375(of)]TJ/F11 9.9626 Tf 274.031 0 Td [(x)]TJ/F8 9.9626 Tf 9.432 0 Td [(m)28(ust)-375(b)-28(e)]TJ -283.463 -11.955 Td [(the)-333(same)-334(of)]TJ/F11 9.9626 Tf 53.467 0 Td [(y)]TJ/F8 9.9626 Tf 5.242 0 Td [(.)]TJ + [(.)-570(The)-376(rank)-375(of)]TJ/F11 9.9626 Tf 274.03 0 Td [(x)]TJ/F8 9.9626 Tf 9.432 0 Td [(m)28(ust)-376(b)-27(e)]TJ -283.462 -11.955 Td [(the)-333(same)-334(of)]TJ/F11 9.9626 Tf 53.466 0 Td [(y)]TJ/F8 9.9626 Tf 5.242 0 Td [(.)]TJ 0 g 0 G /F27 9.9626 Tf -83.615 -19.339 Td [(y)]TJ 0 g 0 G -/F8 9.9626 Tf 11.028 0 Td [(the)-333(lo)-28(cal)-333(p)-28(ortion)-333(of)-334(global)-333(dense)-333(matrix)]TJ/F11 9.9626 Tf 176.118 0 Td [(y)]TJ/F8 9.9626 Tf 5.242 0 Td [(.)]TJ -167.481 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.378 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.378 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.485 0 Td [(in)]TJ/F8 9.9626 Tf 9.548 0 Td [(.)]TJ -43.033 -11.956 Td [(Sp)-28(eci\014ed)-255(as:)-405(a)-255(rank)-254(one)-255(or)-255(t)28(w)28(o)-255(arra)28(y)-255(or)-255(an)-255(ob)-55(ject)-255(of)-255(t)28(yp)-28(e)]TJ +/F8 9.9626 Tf 11.028 0 Td [(the)-333(lo)-28(cal)-333(p)-28(ortion)-333(of)-334(global)-333(dense)-333(matrix)]TJ/F11 9.9626 Tf 176.118 0 Td [(y)]TJ/F8 9.9626 Tf 5.242 0 Td [(.)]TJ -167.481 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.956 Td [(Sp)-28(eci\014ed)-255(as:)-405(a)-255(rank)-254(one)-255(or)-255(t)28(w)27(o)-254(arra)27(y)-254(or)-255(an)-255(ob)-55(jec)-1(t)-254(of)-255(t)28(yp)-28(e)]TJ 0 0 1 rg 0 0 1 RG -/F30 9.9626 Tf 244.742 0 Td [(psb)]TJ +/F30 9.9626 Tf 244.743 0 Td [(psb)]TJ ET q -1 0 0 1 436.673 274.182 cm +1 0 0 1 385.864 274.182 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 439.811 273.982 Td [(T)]TJ +/F30 9.9626 Tf 389.002 273.982 Td [(T)]TJ ET q -1 0 0 1 445.669 274.182 cm +1 0 0 1 394.86 274.182 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 448.807 273.982 Td [(vect)]TJ +/F30 9.9626 Tf 397.998 273.982 Td [(vect)]TJ ET q -1 0 0 1 470.356 274.182 cm +1 0 0 1 419.547 274.182 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 473.495 273.982 Td [(type)]TJ +/F30 9.9626 Tf 422.685 273.982 Td [(type)]TJ 0 g 0 G -/F8 9.9626 Tf -297.884 -11.955 Td [(con)28(taining)-378(n)27(um)28(b)-28(ers)-378(of)-378(t)28(yp)-28(e)-378(sp)-28(eci\014ed)-378(in)-379(T)84(able)]TJ +/F8 9.9626 Tf -297.883 -11.955 Td [(con)28(taining)-378(n)27(um)28(b)-28(ers)-378(of)-378(t)28(yp)-28(e)-378(sp)-28(eci\014ed)-378(in)-379(T)84(able)]TJ 0 0 1 rg 0 0 1 RG [-378(2)]TJ 0 g 0 G - [(.)-580(The)-378(rank)-378(of)]TJ/F11 9.9626 Tf 274.422 0 Td [(y)]TJ/F8 9.9626 Tf 9.011 0 Td [(m)28(ust)-378(b)-28(e)]TJ -283.433 -11.955 Td [(the)-333(same)-334(of)]TJ/F11 9.9626 Tf 53.467 0 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(.)]TJ + [(.)-580(The)-378(rank)-378(of)]TJ/F11 9.9626 Tf 274.422 0 Td [(y)]TJ/F8 9.9626 Tf 9.01 0 Td [(m)28(ust)-379(b)-27(e)]TJ -283.432 -11.955 Td [(the)-333(same)-334(of)]TJ/F11 9.9626 Tf 53.466 0 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(.)]TJ 0 g 0 G /F27 9.9626 Tf -84.067 -19.338 Td [(desc)]TJ ET q -1 0 0 1 172.619 230.933 cm +1 0 0 1 121.81 230.933 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 176.057 230.734 Td [(a)]TJ +/F27 9.9626 Tf 125.247 230.734 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(an)-333(ob)-55(ject)-334(of)-333(t)28(yp)-28(e)]TJ +/F8 9.9626 Tf 10.551 0 Td [(con)28(tains)-334(d)1(ata)-334(structures)-333(for)-333(com)-1(m)28(unications.)]TJ -10.996 -11.956 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(ob)-55(ject)-334(of)-333(t)28(yp)-28(e)]TJ 0 0 1 rg 0 0 1 RG -/F30 9.9626 Tf 135.659 0 Td [(psb)]TJ +/F30 9.9626 Tf 135.658 0 Td [(psb)]TJ ET q -1 0 0 1 327.588 183.112 cm +1 0 0 1 276.779 183.112 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 330.727 182.913 Td [(desc)]TJ +/F30 9.9626 Tf 279.917 182.913 Td [(desc)]TJ ET q -1 0 0 1 352.275 183.112 cm +1 0 0 1 301.466 183.112 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 355.414 182.913 Td [(type)]TJ +/F30 9.9626 Tf 304.604 182.913 Td [(type)]TJ 0 g 0 G -/F8 9.9626 Tf 20.921 0 Td [(.)]TJ +/F8 9.9626 Tf 20.922 0 Td [(.)]TJ 0 g 0 G -/F27 9.9626 Tf -225.63 -19.339 Td [(On)-383(Return)]TJ +/F27 9.9626 Tf -225.631 -19.339 Td [(On)-383(Return)]TJ 0 g 0 G 0 g 0 G 0 -19.338 Td [(F)96(unction)-384(v)64(alue)]TJ 0 g 0 G -/F8 9.9626 Tf 78.386 0 Td [(is)-333(the)-334(dot)-333(pro)-28(duct)-333(of)-333(sub)28(v)27(ectors)]TJ/F11 9.9626 Tf 142.189 0 Td [(x)]TJ/F8 9.9626 Tf 9.015 0 Td [(and)]TJ/F11 9.9626 Tf 19.372 0 Td [(y)]TJ/F8 9.9626 Tf 5.242 0 Td [(.)]TJ -229.298 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(global)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(n)28(um)28(b)-28(er)-333(of)-334(the)-333(data)-333(t)27(yp)-27(e)-334(indicated)-333(in)-333(T)83(able)]TJ +/F8 9.9626 Tf 78.387 0 Td [(is)-333(the)-334(dot)-333(pro)-28(duct)-333(of)-333(sub)28(v)27(ectors)]TJ/F11 9.9626 Tf 142.189 0 Td [(x)]TJ/F8 9.9626 Tf 9.015 0 Td [(and)]TJ/F11 9.9626 Tf 19.371 0 Td [(y)]TJ/F8 9.9626 Tf 5.242 0 Td [(.)]TJ -229.297 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(global)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(n)28(um)28(b)-28(er)-333(of)-334(the)-333(data)-333(t)28(yp)-28(e)-334(ind)1(ic)-1(ated)-333(in)-333(T)83(able)]TJ 0 0 1 rg 0 0 1 RG [-333(2)]TJ 0 g 0 G [(.)]TJ 0 g 0 G - 141.968 -29.888 Td [(30)]TJ + 141.968 -29.888 Td [(31)]TJ 0 g 0 G ET endstream endobj -984 0 obj +998 0 obj << -/Length 624 +/Length 625 >> stream 0 g 0 G 0 g 0 G 0 g 0 G BT -/F27 9.9626 Tf 99.895 706.129 Td [(info)]TJ +/F27 9.9626 Tf 150.705 706.129 Td [(info)]TJ 0 g 0 G -/F8 9.9626 Tf 23.758 0 Td [(Error)-333(co)-28(de.)]TJ 1.149 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.956 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(out)]TJ/F8 9.9626 Tf 16.549 0 Td [(.)]TJ -50.035 -11.955 Td [(An)-333(in)28(tege)-1(r)-333(v)56(alue;)-334(0)-333(means)-333(no)-334(error)-333(has)-333(b)-28(een)-333(detecte)-1(d)1(.)]TJ +/F8 9.9626 Tf 23.758 0 Td [(Error)-333(co)-28(de.)]TJ 1.148 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.612 0 Td [(required)]TJ/F8 9.9626 Tf -29.612 -11.956 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(out)]TJ/F8 9.9626 Tf 16.549 0 Td [(.)]TJ -50.035 -11.955 Td [(An)-333(in)27(t)1(e)-1(ger)-333(v)56(alue;)-334(0)-333(means)-333(no)-334(error)-333(has)-333(b)-28(een)-333(detec)-1(ted.)]TJ 0 g 0 G - 141.968 -567.87 Td [(31)]TJ + 141.968 -567.87 Td [(32)]TJ 0 g 0 G ET endstream endobj -995 0 obj +1008 0 obj << -/Length 8416 +/Length 8468 >> stream 0 g 0 G 0 g 0 G BT -/F16 11.9552 Tf 150.705 706.129 Td [(psb)]TJ +/F16 11.9552 Tf 99.895 706.129 Td [(psb)]TJ ET q -1 0 0 1 171.761 706.328 cm +1 0 0 1 120.951 706.328 cm []0 d 0 J 0.398 w 0 0 m 4.035 0 l S Q BT -/F16 11.9552 Tf 175.796 706.129 Td [(gedots)-375(|)-375(Generalized)-375(Dot)-375(Pro)-31(duct)]TJ/F8 9.9626 Tf -25.091 -18.389 Td [(This)-392(subroutine)-392(computes)-392(a)-392(series)-392(of)-391(dot)-392(pro)-28(ducts)-392(among)-392(the)-392(columns)-392(of)-391(t)27(w)28(o)]TJ 0 -11.956 Td [(dense)-333(matrices)]TJ/F11 9.9626 Tf 67.109 0 Td [(x)]TJ/F8 9.9626 Tf 9.015 0 Td [(and)]TJ/F11 9.9626 Tf 19.372 0 Td [(y)]TJ/F8 9.9626 Tf 5.242 0 Td [(:)]TJ/F11 9.9626 Tf 23.756 -11.955 Td [(r)-28(es)]TJ/F8 9.9626 Tf 14.08 0 Td [(\050)]TJ/F11 9.9626 Tf 3.875 0 Td [(i)]TJ/F8 9.9626 Tf 3.432 0 Td [(\051)]TJ/F14 9.9626 Tf 6.642 0 Td [(\040)]TJ/F11 9.9626 Tf 12.73 0 Td [(x)]TJ/F8 9.9626 Tf 5.693 0 Td [(\050:)]TJ/F11 9.9626 Tf 6.642 0 Td [(;)-167(i)]TJ/F8 9.9626 Tf 7.86 0 Td [(\051)]TJ/F10 6.9738 Tf 3.875 4.114 Td [(T)]TJ/F11 9.9626 Tf 6.276 -4.114 Td [(y)]TJ/F8 9.9626 Tf 5.242 0 Td [(\050:)]TJ/F11 9.9626 Tf 6.642 0 Td [(;)-167(i)]TJ/F8 9.9626 Tf 7.86 0 Td [(\051)]TJ -215.343 -15.687 Td [(If)-245(the)-245(matrices)-245(are)-245(complex,)-262(then)-245(the)-245(usual)-245(con)28(v)28(en)27(tion)-245(ap)1(plies)-1(,)-262(i.e.)-415(the)-245(conjugate)]TJ 0 -11.955 Td [(transp)-28(ose)-323(of)]TJ/F11 9.9626 Tf 55.836 0 Td [(x)]TJ/F8 9.9626 Tf 8.913 0 Td [(is)-323(used.)-441(If)]TJ/F11 9.9626 Tf 46.365 0 Td [(x)]TJ/F8 9.9626 Tf 8.913 0 Td [(and)]TJ/F11 9.9626 Tf 19.27 0 Td [(y)]TJ/F8 9.9626 Tf 8.461 0 Td [(are)-323(of)-323(rank)-323(one,)-325(then)]TJ/F11 9.9626 Tf 94.211 0 Td [(r)-28(es)]TJ/F8 9.9626 Tf 17.3 0 Td [(is)-323(a)-323(scalar,)-325(else)-324(it)-323(is)]TJ -259.269 -11.955 Td [(a)-333(rank)-334(one)-333(arra)28(y)83(.)]TJ +/F16 11.9552 Tf 124.986 706.129 Td [(gedots)-375(|)-375(Generalized)-375(Dot)-375(Pro)-31(duct)]TJ/F8 9.9626 Tf -25.091 -18.389 Td [(This)-392(subroutine)-392(computes)-392(a)-392(series)-392(of)-391(dot)-392(pro)-28(ducts)-392(among)-392(the)-392(columns)-392(of)-391(t)27(w)28(o)]TJ 0 -11.956 Td [(dense)-333(matrices)]TJ/F11 9.9626 Tf 67.11 0 Td [(x)]TJ/F8 9.9626 Tf 9.015 0 Td [(and)]TJ/F11 9.9626 Tf 19.372 0 Td [(y)]TJ/F8 9.9626 Tf 5.241 0 Td [(:)]TJ/F11 9.9626 Tf 23.756 -11.955 Td [(r)-28(es)]TJ/F8 9.9626 Tf 14.081 0 Td [(\050)]TJ/F11 9.9626 Tf 3.874 0 Td [(i)]TJ/F8 9.9626 Tf 3.432 0 Td [(\051)]TJ/F14 9.9626 Tf 6.642 0 Td [(\040)]TJ/F11 9.9626 Tf 12.73 0 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(\050:)]TJ/F11 9.9626 Tf 6.642 0 Td [(;)-167(i)]TJ/F8 9.9626 Tf 7.86 0 Td [(\051)]TJ/F10 6.9738 Tf 3.874 4.114 Td [(T)]TJ/F11 9.9626 Tf 6.276 -4.114 Td [(y)]TJ/F8 9.9626 Tf 5.242 0 Td [(\050:)]TJ/F11 9.9626 Tf 6.642 0 Td [(;)-167(i)]TJ/F8 9.9626 Tf 7.86 0 Td [(\051)]TJ -215.343 -15.687 Td [(If)-245(the)-245(matrices)-245(are)-245(complex,)-262(then)-245(the)-245(usual)-245(con)28(v)28(e)-1(n)28(tion)-245(app)1(lie)-1(s,)-262(i.e.)-415(the)-245(conjugate)]TJ 0 -11.955 Td [(transp)-28(ose)-323(of)]TJ/F11 9.9626 Tf 55.836 0 Td [(x)]TJ/F8 9.9626 Tf 8.913 0 Td [(is)-323(used.)-441(If)]TJ/F11 9.9626 Tf 46.366 0 Td [(x)]TJ/F8 9.9626 Tf 8.913 0 Td [(and)]TJ/F11 9.9626 Tf 19.269 0 Td [(y)]TJ/F8 9.9626 Tf 8.461 0 Td [(are)-323(of)-323(rank)-323(one,)-325(then)]TJ/F11 9.9626 Tf 94.212 0 Td [(r)-28(es)]TJ/F8 9.9626 Tf 17.299 0 Td [(is)-323(a)-323(scalar,)-325(else)-324(it)-323(is)]TJ -259.269 -11.955 Td [(a)-333(rank)-334(one)-333(arra)28(y)83(.)]TJ 0 g 0 G 0 g 0 G /F30 9.9626 Tf 0 -18.175 Td [(call)-525(psb_gedots\050res,)-525(x,)-525(y,)-525(desc_a,)-525(info\051)]TJ @@ -8166,54 +8262,54 @@ BT 0 g 0 G ET q -1 0 0 1 228.797 586.966 cm +1 0 0 1 177.988 586.966 cm []0 d 0 J 0.398 w 0 0 m 187.526 0 l S Q BT -/F11 9.9626 Tf 234.775 578.398 Td [(r)-28(es)]TJ/F8 9.9626 Tf 14.08 0 Td [(,)]TJ/F11 9.9626 Tf 6.089 0 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(,)]TJ/F11 9.9626 Tf 6.088 0 Td [(y)]TJ/F27 9.9626 Tf 88.459 0 Td [(Subroutine)]TJ +/F11 9.9626 Tf 183.966 578.398 Td [(r)-28(es)]TJ/F8 9.9626 Tf 14.08 0 Td [(,)]TJ/F11 9.9626 Tf 6.088 0 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(,)]TJ/F11 9.9626 Tf 6.088 0 Td [(y)]TJ/F27 9.9626 Tf 88.459 0 Td [(Subroutine)]TJ ET q -1 0 0 1 228.797 574.612 cm +1 0 0 1 177.988 574.612 cm []0 d 0 J 0.398 w 0 0 m 187.526 0 l S Q BT -/F8 9.9626 Tf 234.775 566.045 Td [(Short)-333(Precision)-334(Real)-3102(psb)]TJ +/F8 9.9626 Tf 183.966 566.045 Td [(Short)-333(Precision)-333(R)-1(eal)-3102(psb)]TJ ET q -1 0 0 1 370.782 566.244 cm +1 0 0 1 319.972 566.244 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 373.771 566.045 Td [(gedots)]TJ -138.996 -11.956 Td [(Long)-333(Precision)-334(Real)-3314(psb)]TJ +/F8 9.9626 Tf 322.961 566.045 Td [(gedots)]TJ -138.995 -11.956 Td [(Long)-333(Precision)-334(Real)-3314(p)1(s)-1(b)]TJ ET q -1 0 0 1 370.782 554.289 cm +1 0 0 1 319.972 554.289 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 373.771 554.089 Td [(gedots)]TJ -138.996 -11.955 Td [(Short)-333(Precision)-334(Complex)-1200(psb)]TJ +/F8 9.9626 Tf 322.961 554.089 Td [(gedots)]TJ -138.995 -11.955 Td [(Short)-333(Precision)-333(C)-1(omplex)-1200(p)1(s)-1(b)]TJ ET q -1 0 0 1 370.782 542.333 cm +1 0 0 1 319.972 542.333 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 373.771 542.134 Td [(gedots)]TJ -138.996 -11.955 Td [(Long)-333(Precision)-334(Complex)-1411(psb)]TJ +/F8 9.9626 Tf 322.961 542.134 Td [(gedots)]TJ -138.995 -11.955 Td [(Long)-333(Precision)-334(Complex)-1411(psb)]TJ ET q -1 0 0 1 370.782 530.378 cm +1 0 0 1 319.972 530.378 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 373.771 530.179 Td [(gedots)]TJ +/F8 9.9626 Tf 322.961 530.179 Td [(gedots)]TJ ET q -1 0 0 1 228.797 526.393 cm +1 0 0 1 177.988 526.393 cm []0 d 0 J 0.398 w 0 0 m 187.526 0 l S Q 0 g 0 G BT -/F8 9.9626 Tf 278.877 498.354 Td [(T)83(able)-333(3:)-444(Data)-334(t)28(yp)-28(es)]TJ +/F8 9.9626 Tf 228.067 498.354 Td [(T)83(able)-333(3:)-444(Data)-334(t)28(yp)-28(es)]TJ 0 g 0 G 0 g 0 G 0 g 0 G @@ -8226,912 +8322,737 @@ BT 0 g 0 G 0 -18.429 Td [(x)]TJ 0 g 0 G -/F8 9.9626 Tf 11.028 0 Td [(the)-333(lo)-28(cal)-333(p)-28(ortion)-333(of)-334(global)-333(dense)-333(matrix)]TJ/F11 9.9626 Tf 176.118 0 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(.)]TJ -167.933 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.378 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.378 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.485 0 Td [(in)]TJ/F8 9.9626 Tf 9.548 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-255(as:)-405(a)-255(rank)-254(one)-255(or)-255(t)28(w)28(o)-255(arra)28(y)-255(or)-255(an)-255(ob)-55(ject)-255(of)-255(t)28(yp)-28(e)]TJ +/F8 9.9626 Tf 11.028 0 Td [(the)-333(lo)-28(cal)-333(p)-28(ortion)-333(of)-334(global)-333(dense)-333(matrix)]TJ/F11 9.9626 Tf 176.118 0 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(.)]TJ -167.933 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-255(as:)-405(a)-255(rank)-254(one)-255(or)-255(t)28(w)27(o)-254(arra)27(y)-254(or)-255(an)-255(ob)-55(jec)-1(t)-254(of)-255(t)28(yp)-28(e)]TJ 0 0 1 rg 0 0 1 RG -/F30 9.9626 Tf 244.742 0 Td [(psb)]TJ +/F30 9.9626 Tf 244.743 0 Td [(psb)]TJ ET q -1 0 0 1 436.673 385.52 cm +1 0 0 1 385.864 385.52 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 439.811 385.321 Td [(T)]TJ +/F30 9.9626 Tf 389.002 385.321 Td [(T)]TJ ET q -1 0 0 1 445.669 385.52 cm +1 0 0 1 394.86 385.52 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 448.807 385.321 Td [(vect)]TJ +/F30 9.9626 Tf 397.998 385.321 Td [(vect)]TJ ET q -1 0 0 1 470.356 385.52 cm +1 0 0 1 419.547 385.52 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 473.495 385.321 Td [(type)]TJ +/F30 9.9626 Tf 422.685 385.321 Td [(type)]TJ 0 g 0 G -/F8 9.9626 Tf -297.884 -11.955 Td [(con)28(taining)-375(n)27(um)28(b)-28(ers)-375(of)-375(t)28(yp)-28(e)-375(sp)-28(eci\014ed)-375(in)-375(T)83(able)]TJ +/F8 9.9626 Tf -297.883 -11.955 Td [(con)28(taining)-375(n)27(u)1(m)27(b)-27(e)-1(r)1(s)-376(of)-375(t)28(yp)-28(e)-375(sp)-28(eci\014ed)-375(in)-375(T)83(able)]TJ 0 0 1 rg 0 0 1 RG [-375(3)]TJ 0 g 0 G - [(.)-570(The)-376(rank)-375(of)]TJ/F11 9.9626 Tf 274.031 0 Td [(x)]TJ/F8 9.9626 Tf 9.432 0 Td [(m)28(ust)-375(b)-28(e)]TJ -283.463 -11.956 Td [(the)-333(same)-334(of)]TJ/F11 9.9626 Tf 53.467 0 Td [(y)]TJ/F8 9.9626 Tf 5.242 0 Td [(.)]TJ + [(.)-570(The)-376(rank)-375(of)]TJ/F11 9.9626 Tf 274.03 0 Td [(x)]TJ/F8 9.9626 Tf 9.432 0 Td [(m)28(ust)-376(b)-27(e)]TJ -283.462 -11.956 Td [(the)-333(same)-334(of)]TJ/F11 9.9626 Tf 53.466 0 Td [(y)]TJ/F8 9.9626 Tf 5.242 0 Td [(.)]TJ 0 g 0 G /F27 9.9626 Tf -83.615 -18.428 Td [(y)]TJ 0 g 0 G -/F8 9.9626 Tf 11.028 0 Td [(the)-333(lo)-28(cal)-333(p)-28(ortion)-333(of)-334(global)-333(dense)-333(matrix)]TJ/F11 9.9626 Tf 176.118 0 Td [(y)]TJ/F8 9.9626 Tf 5.242 0 Td [(.)]TJ -167.481 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.378 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.378 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.485 0 Td [(in)]TJ/F8 9.9626 Tf 9.548 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-255(as:)-405(a)-255(rank)-254(one)-255(or)-255(t)28(w)28(o)-255(arra)28(y)-255(or)-255(an)-255(ob)-55(ject)-255(of)-255(t)28(yp)-28(e)]TJ +/F8 9.9626 Tf 11.028 0 Td [(the)-333(lo)-28(cal)-333(p)-28(ortion)-333(of)-334(global)-333(dense)-333(matrix)]TJ/F11 9.9626 Tf 176.118 0 Td [(y)]TJ/F8 9.9626 Tf 5.242 0 Td [(.)]TJ -167.481 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-255(as:)-405(a)-255(rank)-254(one)-255(or)-255(t)28(w)27(o)-254(arra)27(y)-254(or)-255(an)-255(ob)-55(jec)-1(t)-254(of)-255(t)28(yp)-28(e)]TJ 0 0 1 rg 0 0 1 RG -/F30 9.9626 Tf 244.742 0 Td [(psb)]TJ +/F30 9.9626 Tf 244.743 0 Td [(psb)]TJ ET q -1 0 0 1 436.673 295.361 cm +1 0 0 1 385.864 295.361 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 439.811 295.162 Td [(T)]TJ +/F30 9.9626 Tf 389.002 295.162 Td [(T)]TJ ET q -1 0 0 1 445.669 295.361 cm +1 0 0 1 394.86 295.361 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 448.807 295.162 Td [(vect)]TJ +/F30 9.9626 Tf 397.998 295.162 Td [(vect)]TJ ET q -1 0 0 1 470.356 295.361 cm +1 0 0 1 419.547 295.361 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 473.495 295.162 Td [(type)]TJ +/F30 9.9626 Tf 422.685 295.162 Td [(type)]TJ 0 g 0 G -/F8 9.9626 Tf -297.884 -11.955 Td [(con)28(taining)-378(n)27(um)28(b)-28(ers)-378(of)-378(t)28(yp)-28(e)-378(sp)-28(eci\014ed)-378(in)-379(T)84(able)]TJ +/F8 9.9626 Tf -297.883 -11.955 Td [(con)28(taining)-378(n)27(um)28(b)-28(ers)-378(of)-378(t)28(yp)-28(e)-378(sp)-28(eci\014ed)-378(in)-379(T)84(able)]TJ 0 0 1 rg 0 0 1 RG [-378(3)]TJ 0 g 0 G - [(.)-580(The)-378(rank)-378(of)]TJ/F11 9.9626 Tf 274.422 0 Td [(y)]TJ/F8 9.9626 Tf 9.011 0 Td [(m)28(ust)-378(b)-28(e)]TJ -283.433 -11.956 Td [(the)-333(same)-334(of)]TJ/F11 9.9626 Tf 53.467 0 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(.)]TJ + [(.)-580(The)-378(rank)-378(of)]TJ/F11 9.9626 Tf 274.422 0 Td [(y)]TJ/F8 9.9626 Tf 9.01 0 Td [(m)28(ust)-379(b)-27(e)]TJ -283.432 -11.956 Td [(the)-333(same)-334(of)]TJ/F11 9.9626 Tf 53.466 0 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(.)]TJ 0 g 0 G /F27 9.9626 Tf -84.067 -18.428 Td [(desc)]TJ ET q -1 0 0 1 172.619 253.022 cm +1 0 0 1 121.81 253.022 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 176.057 252.823 Td [(a)]TJ +/F27 9.9626 Tf 125.247 252.823 Td [(a)]TJ 0 g 0 G -/F8 9.9626 Tf 10.55 0 Td [(con)28(tains)-334(data)-333(structures)-333(for)-333(c)-1(omm)28(unications.)]TJ -10.996 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.612 0 Td [(required)]TJ/F8 9.9626 Tf -29.612 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.548 0 Td [(.)]TJ -43.034 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(ob)-55(ject)-334(of)-333(t)28(yp)-28(e)]TJ +/F8 9.9626 Tf 10.551 0 Td [(con)28(tains)-334(d)1(ata)-334(structures)-333(for)-333(com)-1(m)28(unications.)]TJ -10.996 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(ob)-55(ject)-334(of)-333(t)28(yp)-28(e)]TJ 0 0 1 rg 0 0 1 RG -/F30 9.9626 Tf 135.659 0 Td [(psb)]TJ +/F30 9.9626 Tf 135.658 0 Td [(psb)]TJ ET q -1 0 0 1 327.588 205.202 cm +1 0 0 1 276.779 205.202 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 330.727 205.003 Td [(desc)]TJ +/F30 9.9626 Tf 279.917 205.003 Td [(desc)]TJ ET q -1 0 0 1 352.275 205.202 cm +1 0 0 1 301.466 205.202 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 355.414 205.003 Td [(type)]TJ +/F30 9.9626 Tf 304.604 205.003 Td [(type)]TJ 0 g 0 G -/F8 9.9626 Tf 20.921 0 Td [(.)]TJ +/F8 9.9626 Tf 20.922 0 Td [(.)]TJ 0 g 0 G -/F27 9.9626 Tf -225.63 -18.429 Td [(On)-383(Return)]TJ +/F27 9.9626 Tf -225.631 -18.429 Td [(On)-383(Return)]TJ 0 g 0 G 0 g 0 G 0 -18.428 Td [(res)]TJ 0 g 0 G -/F8 9.9626 Tf 19.47 0 Td [(is)-333(the)-334(dot)-333(pro)-28(duct)-333(of)-333(sub)28(v)27(ectors)]TJ/F11 9.9626 Tf 142.189 0 Td [(x)]TJ/F8 9.9626 Tf 9.015 0 Td [(and)]TJ/F11 9.9626 Tf 19.372 0 Td [(y)]TJ/F8 9.9626 Tf 5.242 0 Td [(.)]TJ -170.381 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.378 0 Td [(global)]TJ/F8 9.9626 Tf -32.378 -11.955 Td [(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 [(Sp)-28(eci\014ed)-357(as:)-494(a)-357(n)27(um)28(b)-28(er)-357(or)-358(a)-358(rank-one)-357(arra)27(y)-357(of)-358(the)-358(data)-357(t)27(yp)-27(e)-358(indicated)-358(in)]TJ 0 -11.955 Td [(T)83(able)]TJ +/F8 9.9626 Tf 19.47 0 Td [(is)-333(the)-334(dot)-333(pro)-28(duct)-333(of)-333(sub)28(v)27(ectors)]TJ/F11 9.9626 Tf 142.19 0 Td [(x)]TJ/F8 9.9626 Tf 9.014 0 Td [(and)]TJ/F11 9.9626 Tf 19.372 0 Td [(y)]TJ/F8 9.9626 Tf 5.242 0 Td [(.)]TJ -170.381 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(global)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(out)]TJ/F8 9.9626 Tf 16.549 0 Td [(.)]TJ -50.035 -11.955 Td [(Sp)-28(eci\014ed)-357(as)-1(:)-493(a)-357(n)27(um)28(b)-28(er)-357(or)-358(a)-358(rank-one)-358(ar)1(ra)27(y)-357(of)-358(the)-358(data)-358(t)28(yp)-27(e)-358(indicated)-358(in)]TJ 0 -11.955 Td [(T)83(able)]TJ 0 0 1 rg 0 0 1 RG [-333(2)]TJ 0 g 0 G [(.)]TJ 0 g 0 G - 141.967 -29.888 Td [(32)]TJ + 141.968 -29.888 Td [(33)]TJ 0 g 0 G ET endstream endobj -1000 0 obj +912 0 obj << -/Length 624 +/Type /ObjStm +/N 100 +/First 886 +/Length 10464 >> stream -0 g 0 G -0 g 0 G -0 g 0 G -BT -/F27 9.9626 Tf 99.895 706.129 Td [(info)]TJ -0 g 0 G -/F8 9.9626 Tf 23.758 0 Td [(Error)-333(co)-28(de.)]TJ 1.149 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.956 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(out)]TJ/F8 9.9626 Tf 16.549 0 Td [(.)]TJ -50.035 -11.955 Td [(An)-333(in)28(tege)-1(r)-333(v)56(alue;)-334(0)-333(means)-333(no)-334(error)-333(has)-333(b)-28(een)-333(detecte)-1(d)1(.)]TJ -0 g 0 G - 141.968 -567.87 Td [(33)]TJ -0 g 0 G -ET - -endstream -endobj -1007 0 obj +911 0 119 57 123 114 127 170 908 227 914 319 916 433 131 489 135 545 913 601 +919 693 921 807 139 864 143 920 918 976 923 1068 925 1182 147 1238 151 1294 922 1350 +927 1442 929 1556 155 1613 159 1670 163 1727 926 1784 933 1876 930 2018 931 2165 935 2311 +167 2367 171 2423 936 2479 932 2536 939 2641 941 2755 937 2812 175 2869 179 2926 183 2983 +187 3040 938 3097 945 3189 942 3331 943 3476 947 3621 191 3677 944 3733 953 3825 950 3967 +951 4113 955 4260 195 4317 199 4374 956 4430 958 4487 204 4544 952 4601 960 4719 962 4833 +959 4889 964 4968 966 5082 208 5139 963 5196 975 5275 967 5449 968 5594 969 5737 970 5882 +971 6027 972 6170 977 6315 212 6371 949 6427 974 6483 981 6614 973 6764 978 6910 979 7052 +983 7197 980 7254 991 7359 984 7533 985 7676 986 7821 987 7964 988 8109 989 8255 993 8399 +216 8455 994 8511 990 8568 997 8712 999 8826 996 8883 1007 8962 1000 9145 1001 9289 1002 9434 +% 911 0 obj << -/Length 7095 +/D [909 0 R /XYZ 149.705 753.953 null] >> -stream -0 g 0 G -0 g 0 G -BT -/F16 11.9552 Tf 150.705 706.129 Td [(psb)]TJ -ET -q -1 0 0 1 171.761 706.328 cm -[]0 d 0 J 0.398 w 0 0 m 4.035 0 l S -Q -BT -/F16 11.9552 Tf 175.796 706.129 Td [(normi)-375(|)-375(In\014nit)31(y-Norm)-375(of)-375(V)94(ector)]TJ/F8 9.9626 Tf -25.091 -18.389 Td [(This)-333(function)-334(computes)-333(the)-333(in\014nit)28(y-norm)-334(of)-333(a)-333(v)28(e)-1(ctor)]TJ/F11 9.9626 Tf 233.181 0 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(.)]TJ -238.875 -11.956 Td [(If)]TJ/F11 9.9626 Tf 9.963 0 Td [(x)]TJ/F8 9.9626 Tf 9.014 0 Td [(is)-333(a)-334(real)-333(v)28(ector)-334(it)-333(computes)-333(in\014nit)28(y)-334(norm)-333(as:)]TJ/F11 9.9626 Tf 115.269 -21.138 Td [(amax)]TJ/F14 9.9626 Tf 27.741 0 Td [(\040)]TJ/F8 9.9626 Tf 12.73 0 Td [(max)]TJ/F10 6.9738 Tf 7.861 -6.275 Td [(i)]TJ/F14 9.9626 Tf 12.341 6.275 Td [(j)]TJ/F11 9.9626 Tf 2.767 0 Td [(x)]TJ/F10 6.9738 Tf 5.694 -1.495 Td [(i)]TJ/F14 9.9626 Tf 3.317 1.495 Td [(j)]TJ/F8 9.9626 Tf -206.697 -24.37 Td [(else)-333(if)]TJ/F11 9.9626 Tf 28.006 0 Td [(x)]TJ/F8 9.9626 Tf 9.015 0 Td [(is)-333(a)-334(complex)-333(v)28(ector)-334(then)-333(it)-333(computes)-334(the)-333(in\014nit)28(y-norm)-333(as:)]TJ/F11 9.9626 Tf 61.446 -21.138 Td [(amax)]TJ/F14 9.9626 Tf 27.741 0 Td [(\040)]TJ/F8 9.9626 Tf 12.73 0 Td [(max)]TJ/F10 6.9738 Tf 7.861 -6.275 Td [(i)]TJ/F8 9.9626 Tf 12.341 6.275 Td [(\050)]TJ/F14 9.9626 Tf 3.874 0 Td [(j)]TJ/F11 9.9626 Tf 2.768 0 Td [(r)-28(e)]TJ/F8 9.9626 Tf 9.41 0 Td [(\050)]TJ/F11 9.9626 Tf 3.874 0 Td [(x)]TJ/F10 6.9738 Tf 5.694 -1.495 Td [(i)]TJ/F8 9.9626 Tf 3.317 1.495 Td [(\051)]TJ/F14 9.9626 Tf 3.875 0 Td [(j)]TJ/F8 9.9626 Tf 4.981 0 Td [(+)]TJ/F14 9.9626 Tf 9.962 0 Td [(j)]TJ/F11 9.9626 Tf 2.768 0 Td [(im)]TJ/F8 9.9626 Tf 12.179 0 Td [(\050)]TJ/F11 9.9626 Tf 3.875 0 Td [(x)]TJ/F10 6.9738 Tf 5.694 -1.495 Td [(i)]TJ/F8 9.9626 Tf 3.317 1.495 Td [(\051)]TJ/F14 9.9626 Tf 3.874 0 Td [(j)]TJ/F8 9.9626 Tf 2.767 0 Td [(\051)]TJ -0 g 0 G -0 g 0 G -/F30 9.9626 Tf -241.369 -24.37 Td [(psb_geamax\050x,)-525(desc_a,)-525(info\051)]TJ 0 -11.955 Td [(psb_normi\050x,)-525(desc_a,)-525(info\051)]TJ -0 g 0 G -0 g 0 G -0 g 0 G -ET -q -1 0 0 1 179.892 549.573 cm -[]0 d 0 J 0.398 w 0 0 m 285.336 0 l S -Q -BT -/F11 9.9626 Tf 185.87 541.005 Td [(amax)-7677(x)]TJ/F27 9.9626 Tf 221.863 0 Td [(F)96(unction)]TJ -ET -q -1 0 0 1 179.892 537.219 cm -[]0 d 0 J 0.398 w 0 0 m 285.336 0 l S -Q -BT -/F8 9.9626 Tf 185.87 528.651 Td [(Short)-333(Precision)-334(Real)-1200(Shor)1(t)-334(Precision)-333(Real)-3103(psb)]TJ -ET -q -1 0 0 1 423.33 528.851 cm -[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S -Q -BT -/F8 9.9626 Tf 426.319 528.651 Td [(geamax)]TJ -240.449 -11.955 Td [(Long)-333(Precision)-334(Real)-1411(Long)-333(Precision)-333(Real)-3314(psb)]TJ -ET -q -1 0 0 1 423.33 516.895 cm -[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S -Q -BT -/F8 9.9626 Tf 426.319 516.696 Td [(geamax)]TJ -240.449 -11.955 Td [(Short)-333(Precision)-334(Real)-1200(Shor)1(t)-334(Precision)-333(Complex)-1200(psb)]TJ -ET -q -1 0 0 1 423.33 504.94 cm -[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S -Q -BT -/F8 9.9626 Tf 426.319 504.741 Td [(geamax)]TJ -240.449 -11.955 Td [(Long)-333(Precision)-334(Real)-1411(Long)-333(Precision)-333(Complex)-1412(psb)]TJ -ET -q -1 0 0 1 423.33 492.985 cm -[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S -Q -BT -/F8 9.9626 Tf 426.319 492.786 Td [(geamax)]TJ -ET -q -1 0 0 1 179.892 489 cm -[]0 d 0 J 0.398 w 0 0 m 285.336 0 l S -Q -0 g 0 G -BT -/F8 9.9626 Tf 278.877 460.961 Td [(T)83(able)-333(4:)-444(Data)-334(t)28(yp)-28(es)]TJ -0 g 0 G -0 g 0 G -0 g 0 G -/F27 9.9626 Tf -128.172 -32.506 Td [(T)32(yp)-32(e:)]TJ -0 g 0 G -/F8 9.9626 Tf 33.797 0 Td [(Sync)28(hronous.)]TJ -0 g 0 G -/F27 9.9626 Tf -33.797 -19.613 Td [(On)-383(En)32(try)]TJ -0 g 0 G -0 g 0 G - 0 -19.614 Td [(x)]TJ -0 g 0 G -/F8 9.9626 Tf 11.028 0 Td [(the)-333(lo)-28(cal)-333(p)-28(ortion)-333(of)-334(global)-333(dense)-333(matrix)]TJ/F11 9.9626 Tf 176.118 0 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(.)]TJ -167.933 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.378 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.378 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.485 0 Td [(in)]TJ/F8 9.9626 Tf 9.548 0 Td [(.)]TJ -43.033 -11.956 Td [(Sp)-28(eci\014ed)-255(as:)-405(a)-255(rank)-254(one)-255(or)-255(t)28(w)28(o)-255(arra)28(y)-255(or)-255(an)-255(ob)-55(ject)-255(of)-255(t)28(yp)-28(e)]TJ -0 0 1 rg 0 0 1 RG -/F30 9.9626 Tf 244.742 0 Td [(psb)]TJ -ET -q -1 0 0 1 436.673 341.607 cm -[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S -Q -BT -/F30 9.9626 Tf 439.811 341.407 Td [(T)]TJ -ET -q -1 0 0 1 445.669 341.607 cm -[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S -Q -BT -/F30 9.9626 Tf 448.807 341.407 Td [(vect)]TJ -ET -q -1 0 0 1 470.356 341.607 cm -[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S -Q -BT -/F30 9.9626 Tf 473.495 341.407 Td [(type)]TJ -0 g 0 G -/F8 9.9626 Tf -297.884 -11.955 Td [(con)28(taining)-333(n)27(um)28(b)-28(ers)-333(of)-333(t)27(yp)-27(e)-334(sp)-27(ec)-1(i)1(\014ed)-334(in)-333(T)83(able)]TJ -0 0 1 rg 0 0 1 RG - [-333(4)]TJ -0 g 0 G - [(.)]TJ -0 g 0 G -/F27 9.9626 Tf -24.906 -19.613 Td [(desc)]TJ -ET -q -1 0 0 1 172.619 310.038 cm -[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S -Q -BT -/F27 9.9626 Tf 176.057 309.839 Td [(a)]TJ -0 g 0 G -/F8 9.9626 Tf 10.55 0 Td [(con)28(tains)-334(data)-333(structures)-333(for)-333(c)-1(omm)28(unications.)]TJ -10.996 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.956 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.612 0 Td [(required)]TJ/F8 9.9626 Tf -29.612 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.548 0 Td [(.)]TJ -43.034 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(ob)-55(ject)-334(of)-333(t)28(yp)-28(e)]TJ -0 0 1 rg 0 0 1 RG -/F30 9.9626 Tf 135.659 0 Td [(psb)]TJ -ET -q -1 0 0 1 327.588 262.217 cm -[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S -Q -BT -/F30 9.9626 Tf 330.727 262.018 Td [(desc)]TJ -ET -q -1 0 0 1 352.275 262.217 cm -[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S -Q -BT -/F30 9.9626 Tf 355.414 262.018 Td [(type)]TJ -0 g 0 G -/F8 9.9626 Tf 20.921 0 Td [(.)]TJ -0 g 0 G -/F27 9.9626 Tf -225.63 -19.614 Td [(On)-383(Return)]TJ -0 g 0 G -0 g 0 G - 0 -19.613 Td [(F)96(unction)-384(v)64(alue)]TJ -0 g 0 G -/F8 9.9626 Tf 78.386 0 Td [(is)-333(the)-334(in\014nit)28(y)-333(norm)-333(of)-334(sub)28(v)28(ector)]TJ/F11 9.9626 Tf 143.518 0 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(.)]TJ -202.692 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(global)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(long)-333(precision)-334(r)1(e)-1(al)-333(n)28(um)28(b)-28(er.)]TJ -0 g 0 G -/F27 9.9626 Tf -24.906 -19.614 Td [(info)]TJ -0 g 0 G -/F8 9.9626 Tf 23.758 0 Td [(Error)-333(co)-28(de.)]TJ 1.148 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.612 0 Td [(required)]TJ/F8 9.9626 Tf -29.612 -11.956 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(out)]TJ/F8 9.9626 Tf 16.549 0 Td [(.)]TJ -50.035 -11.955 Td [(An)-333(in)27(t)1(e)-1(ger)-333(v)56(alue;)-334(0)-333(means)-333(no)-334(error)-333(has)-333(b)-28(een)-333(detec)-1(ted.)]TJ -0 g 0 G - 141.968 -41.008 Td [(34)]TJ -0 g 0 G -ET - -endstream -endobj -907 0 obj +% 119 0 obj << -/Type /ObjStm -/N 100 -/First 886 -/Length 10836 +/D [909 0 R /XYZ 150.705 718.084 null] +>> +% 123 0 obj +<< +/D [909 0 R /XYZ 150.705 538.16 null] +>> +% 127 0 obj +<< +/D [909 0 R /XYZ 150.705 334.326 null] +>> +% 908 0 obj +<< +/Font << /F27 556 0 R /F30 764 0 R /F8 557 0 R >> +/ProcSet [ /PDF /Text ] +>> +% 914 0 obj +<< +/Type /Page +/Contents 915 0 R +/Resources 913 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 917 0 R +>> +% 916 0 obj +<< +/D [914 0 R /XYZ 98.895 753.953 null] +>> +% 131 0 obj +<< +/D [914 0 R /XYZ 99.895 718.084 null] >> -stream -135 0 902 56 909 148 911 262 139 319 143 376 908 431 913 523 915 637 147 693 -151 749 912 805 918 897 920 1011 155 1068 159 1125 163 1182 917 1239 923 1331 916 1473 -921 1620 925 1766 167 1822 926 1878 927 1934 928 1990 171 2047 175 2103 922 2159 932 2264 -929 2406 930 2551 934 2696 179 2753 183 2810 931 2867 939 2959 936 3093 941 3239 187 3295 -191 3351 195 3407 942 3463 944 3520 938 3577 947 3695 937 3829 949 3976 199 4033 946 4090 -951 4195 953 4309 204 4365 950 4421 962 4500 954 4674 955 4819 956 4962 957 5107 958 5252 -959 5395 964 5540 208 5597 935 5654 961 5710 968 5841 960 5991 965 6137 966 6279 970 6424 -967 6480 978 6585 971 6759 972 6902 973 7047 974 7190 975 7335 976 7481 980 7625 212 7682 -981 7739 977 7796 983 7940 985 8054 982 8110 994 8189 987 8363 988 8506 989 8650 990 8793 -991 8938 992 9084 996 9228 216 9285 997 9342 993 9399 999 9543 1001 9658 998 9715 1006 9794 % 135 0 obj << -/D [903 0 R /XYZ 99.895 242.882 null] +/D [914 0 R /XYZ 99.895 363.788 null] >> -% 902 0 obj +% 913 0 obj << -/Font << /F27 552 0 R /F8 553 0 R /F30 759 0 R >> +/Font << /F27 556 0 R /F30 764 0 R /F8 557 0 R >> /ProcSet [ /PDF /Text ] >> -% 909 0 obj +% 919 0 obj << /Type /Page -/Contents 910 0 R -/Resources 908 0 R +/Contents 920 0 R +/Resources 918 0 R /MediaBox [0 0 595.276 841.89] -/Parent 906 0 R +/Parent 917 0 R >> -% 911 0 obj +% 921 0 obj << -/D [909 0 R /XYZ 149.705 753.953 null] +/D [919 0 R /XYZ 149.705 753.953 null] >> % 139 0 obj << -/D [909 0 R /XYZ 150.705 581.555 null] +/D [919 0 R /XYZ 150.705 652.99 null] >> % 143 0 obj << -/D [909 0 R /XYZ 150.705 343.8 null] +/D [919 0 R /XYZ 150.705 364.65 null] >> -% 908 0 obj +% 918 0 obj << -/Font << /F27 552 0 R /F8 553 0 R /F30 759 0 R >> +/Font << /F27 556 0 R /F8 557 0 R /F30 764 0 R >> /ProcSet [ /PDF /Text ] >> -% 913 0 obj +% 923 0 obj << /Type /Page -/Contents 914 0 R -/Resources 912 0 R +/Contents 924 0 R +/Resources 922 0 R /MediaBox [0 0 595.276 841.89] -/Parent 906 0 R +/Parent 917 0 R >> -% 915 0 obj +% 925 0 obj << -/D [913 0 R /XYZ 98.895 753.953 null] +/D [923 0 R /XYZ 98.895 753.953 null] >> % 147 0 obj << -/D [913 0 R /XYZ 99.895 718.084 null] +/D [923 0 R /XYZ 99.895 718.084 null] >> % 151 0 obj << -/D [913 0 R /XYZ 99.895 334.375 null] +/D [923 0 R /XYZ 99.895 487.217 null] >> -% 912 0 obj +% 922 0 obj << -/Font << /F27 552 0 R /F30 759 0 R /F8 553 0 R >> +/Font << /F27 556 0 R /F30 764 0 R /F8 557 0 R >> /ProcSet [ /PDF /Text ] >> -% 918 0 obj +% 927 0 obj << /Type /Page -/Contents 919 0 R -/Resources 917 0 R +/Contents 928 0 R +/Resources 926 0 R /MediaBox [0 0 595.276 841.89] -/Parent 906 0 R +/Parent 917 0 R >> -% 920 0 obj +% 929 0 obj << -/D [918 0 R /XYZ 149.705 753.953 null] +/D [927 0 R /XYZ 149.705 753.953 null] >> % 155 0 obj << -/D [918 0 R /XYZ 150.705 565.564 null] +/D [927 0 R /XYZ 150.705 718.084 null] >> % 159 0 obj << -/D [918 0 R /XYZ 150.705 443.326 null] +/D [927 0 R /XYZ 150.705 325.491 null] >> % 163 0 obj << -/D [918 0 R /XYZ 150.705 266.372 null] +/D [927 0 R /XYZ 150.705 193.501 null] >> -% 917 0 obj +% 926 0 obj << -/Font << /F27 552 0 R /F8 553 0 R /F30 759 0 R >> +/Font << /F27 556 0 R /F30 764 0 R /F8 557 0 R >> /ProcSet [ /PDF /Text ] >> -% 923 0 obj +% 933 0 obj << /Type /Page -/Contents 924 0 R -/Resources 922 0 R +/Contents 934 0 R +/Resources 932 0 R /MediaBox [0 0 595.276 841.89] -/Parent 906 0 R -/Annots [ 916 0 R 921 0 R ] +/Parent 917 0 R +/Annots [ 930 0 R 931 0 R ] >> -% 916 0 obj +% 930 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] +/Rect [199.382 344.354 206.356 355.203] /A << /S /GoTo /D (section.6) >> >> -% 921 0 obj +% 931 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] +/Rect [292.368 307.977 299.342 318.825] /A << /S /GoTo /D (figure.5) >> >> -% 925 0 obj +% 935 0 obj << -/D [923 0 R /XYZ 98.895 753.953 null] +/D [933 0 R /XYZ 98.895 753.953 null] >> % 167 0 obj << -/D [923 0 R /XYZ 99.895 716.092 null] +/D [933 0 R /XYZ 99.895 598.678 null] >> -% 926 0 obj +% 171 0 obj << -/D [923 0 R /XYZ 121.151 687.74 null] +/D [933 0 R /XYZ 99.895 414.464 null] >> -% 927 0 obj +% 936 0 obj << -/D [923 0 R /XYZ 342.09 675.784 null] +/D [933 0 R /XYZ 121.151 383.153 null] >> -% 928 0 obj +% 932 0 obj << -/D [923 0 R /XYZ 157.678 325.579 null] +/Font << /F27 556 0 R /F8 557 0 R /F16 554 0 R /F30 764 0 R >> +/ProcSet [ /PDF /Text ] >> -% 171 0 obj +% 939 0 obj << -/D [923 0 R /XYZ 99.895 287.134 null] +/Type /Page +/Contents 940 0 R +/Resources 938 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 917 0 R +>> +% 941 0 obj +<< +/D [939 0 R /XYZ 149.705 753.953 null] +>> +% 937 0 obj +<< +/D [939 0 R /XYZ 208.488 610.432 null] >> % 175 0 obj << -/D [923 0 R /XYZ 99.895 270.681 null] +/D [939 0 R /XYZ 150.705 576.609 null] >> -% 922 0 obj +% 179 0 obj +<< +/D [939 0 R /XYZ 150.705 560.207 null] +>> +% 183 0 obj +<< +/D [939 0 R /XYZ 150.705 388.328 null] +>> +% 187 0 obj +<< +/D [939 0 R /XYZ 150.705 216.449 null] +>> +% 938 0 obj << -/Font << /F16 550 0 R /F8 553 0 R /F30 759 0 R /F27 552 0 R >> +/Font << /F30 764 0 R /F8 557 0 R /F27 556 0 R >> /ProcSet [ /PDF /Text ] >> -% 932 0 obj +% 945 0 obj << /Type /Page -/Contents 933 0 R -/Resources 931 0 R +/Contents 946 0 R +/Resources 944 0 R /MediaBox [0 0 595.276 841.89] -/Parent 906 0 R -/Annots [ 929 0 R 930 0 R ] +/Parent 948 0 R +/Annots [ 942 0 R 943 0 R ] >> -% 929 0 obj +% 942 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [432.897 353.959 439.871 364.807] +/Rect [382.088 606.388 389.062 617.237] /A << /S /GoTo /D (table.1) >> >> -% 930 0 obj +% 943 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [432.897 221.094 439.871 231.942] +/Rect [382.088 460.595 389.062 471.443] /A << /S /GoTo /D (table.1) >> >> -% 934 0 obj -<< -/D [932 0 R /XYZ 149.705 753.953 null] ->> -% 179 0 obj +% 947 0 obj << -/D [932 0 R /XYZ 150.705 718.084 null] +/D [945 0 R /XYZ 98.895 753.953 null] >> -% 183 0 obj +% 191 0 obj << -/D [932 0 R /XYZ 150.705 557.349 null] +/D [945 0 R /XYZ 99.895 315.722 null] >> -% 931 0 obj +% 944 0 obj << -/Font << /F27 552 0 R /F30 759 0 R /F8 553 0 R >> +/Font << /F27 556 0 R /F8 557 0 R /F30 764 0 R >> /ProcSet [ /PDF /Text ] >> -% 939 0 obj +% 953 0 obj << /Type /Page -/Contents 940 0 R -/Resources 938 0 R +/Contents 954 0 R +/Resources 952 0 R /MediaBox [0 0 595.276 841.89] -/Parent 945 0 R -/Annots [ 936 0 R ] +/Parent 948 0 R +/Annots [ 950 0 R 951 0 R ] >> -% 936 0 obj +% 950 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [126.875 253.666 133.849 264.791] +/Rect [177.685 453.572 184.659 464.697] /A << /S /GoTo /D (figure.6) >> >> -% 941 0 obj -<< -/D [939 0 R /XYZ 98.895 753.953 null] ->> -% 187 0 obj +% 951 0 obj << -/D [939 0 R /XYZ 99.895 718.084 null] +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [297.652 273.706 304.626 284.554] +/A << /S /GoTo /D (section.6) >> >> -% 191 0 obj +% 955 0 obj << -/D [939 0 R /XYZ 99.895 526.617 null] +/D [953 0 R /XYZ 149.705 753.953 null] >> % 195 0 obj << -/D [939 0 R /XYZ 99.895 326.261 null] +/D [953 0 R /XYZ 150.705 718.084 null] >> -% 942 0 obj +% 199 0 obj << -/D [939 0 R /XYZ 257.563 268.831 null] +/D [953 0 R /XYZ 150.705 525.15 null] >> -% 944 0 obj +% 956 0 obj << -/D [939 0 R /XYZ 155.478 146.785 null] +/D [953 0 R /XYZ 308.372 468.737 null] >> -% 938 0 obj +% 958 0 obj << -/Font << /F27 552 0 R /F30 759 0 R /F8 553 0 R /F16 550 0 R /F47 943 0 R >> -/ProcSet [ /PDF /Text ] +/D [953 0 R /XYZ 206.288 347.218 null] >> -% 947 0 obj +% 204 0 obj << -/Type /Page -/Contents 948 0 R -/Resources 946 0 R -/MediaBox [0 0 595.276 841.89] -/Parent 945 0 R -/Annots [ 937 0 R ] +/D [953 0 R /XYZ 150.705 307.161 null] >> -% 937 0 obj +% 952 0 obj << -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [297.652 684.806 304.626 695.654] -/A << /S /GoTo /D (section.6) >> +/Font << /F27 556 0 R /F30 764 0 R /F8 557 0 R /F16 554 0 R /F47 957 0 R >> +/ProcSet [ /PDF /Text ] >> -% 949 0 obj +% 960 0 obj << -/D [947 0 R /XYZ 149.705 753.953 null] +/Type /Page +/Contents 961 0 R +/Resources 959 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 948 0 R >> -% 199 0 obj +% 962 0 obj << -/D [947 0 R /XYZ 150.705 716.092 null] +/D [960 0 R /XYZ 98.895 753.953 null] >> -% 946 0 obj +% 959 0 obj << -/Font << /F16 550 0 R /F8 553 0 R /F30 759 0 R /F27 552 0 R >> +/Font << /F27 556 0 R /F8 557 0 R >> /ProcSet [ /PDF /Text ] >> -% 951 0 obj +% 964 0 obj << /Type /Page -/Contents 952 0 R -/Resources 950 0 R +/Contents 965 0 R +/Resources 963 0 R /MediaBox [0 0 595.276 841.89] -/Parent 945 0 R +/Parent 948 0 R >> -% 953 0 obj +% 966 0 obj << -/D [951 0 R /XYZ 98.895 753.953 null] +/D [964 0 R /XYZ 149.705 753.953 null] >> -% 204 0 obj +% 208 0 obj << -/D [951 0 R /XYZ 99.895 716.092 null] +/D [964 0 R /XYZ 150.705 716.092 null] >> -% 950 0 obj +% 963 0 obj << -/Font << /F16 550 0 R /F8 553 0 R >> +/Font << /F16 554 0 R /F8 557 0 R >> /ProcSet [ /PDF /Text ] >> -% 962 0 obj +% 975 0 obj << /Type /Page -/Contents 963 0 R -/Resources 961 0 R +/Contents 976 0 R +/Resources 974 0 R /MediaBox [0 0 595.276 841.89] -/Parent 945 0 R -/Annots [ 954 0 R 955 0 R 956 0 R 957 0 R 958 0 R 959 0 R ] +/Parent 948 0 R +/Annots [ 967 0 R 968 0 R 969 0 R 970 0 R 971 0 R 972 0 R ] >> -% 954 0 obj +% 967 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [432.897 401.949 439.871 412.798] +/Rect [382.088 401.949 389.062 412.798] /A << /S /GoTo /D (table.1) >> >> -% 955 0 obj +% 968 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [419.358 333.522 495.412 344.647] +/Rect [368.549 333.522 444.603 344.647] /A << /S /GoTo /D (vdata) >> >> -% 956 0 obj +% 969 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [379.142 321.844 386.116 332.692] +/Rect [328.333 321.844 335.307 332.692] /A << /S /GoTo /D (table.1) >> >> -% 957 0 obj +% 970 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [432.897 241.738 439.871 252.586] +/Rect [382.088 241.738 389.062 252.586] /A << /S /GoTo /D (table.1) >> >> -% 958 0 obj +% 971 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [419.358 173.311 495.412 184.436] +/Rect [368.549 173.311 444.603 184.436] /A << /S /GoTo /D (vdata) >> >> -% 959 0 obj +% 972 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [396.435 161.632 403.409 172.481] +/Rect [345.625 161.632 352.599 172.481] /A << /S /GoTo /D (table.1) >> >> -% 964 0 obj +% 977 0 obj << -/D [962 0 R /XYZ 149.705 753.953 null] +/D [975 0 R /XYZ 98.895 753.953 null] >> -% 208 0 obj +% 212 0 obj << -/D [962 0 R /XYZ 150.705 720.077 null] +/D [975 0 R /XYZ 99.895 720.077 null] >> -% 935 0 obj +% 949 0 obj << -/D [962 0 R /XYZ 318.451 539.42 null] +/D [975 0 R /XYZ 267.641 539.42 null] >> -% 961 0 obj +% 974 0 obj << -/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 >> +/Font << /F16 554 0 R /F8 557 0 R /F11 750 0 R /F14 767 0 R /F30 764 0 R /F27 556 0 R >> /ProcSet [ /PDF /Text ] >> -% 968 0 obj +% 981 0 obj << /Type /Page -/Contents 969 0 R -/Resources 967 0 R +/Contents 982 0 R +/Resources 980 0 R /MediaBox [0 0 595.276 841.89] -/Parent 945 0 R -/Annots [ 960 0 R 965 0 R 966 0 R ] +/Parent 948 0 R +/Annots [ 973 0 R 978 0 R 979 0 R ] >> -% 960 0 obj +% 973 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [259.464 679.008 326.522 690.133] +/Rect [310.273 679.008 377.331 690.133] /A << /S /GoTo /D (descdata) >> >> -% 965 0 obj +% 978 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [368.549 589.345 444.603 600.47] +/Rect [419.358 589.345 495.412 600.47] /A << /S /GoTo /D (vdata) >> >> -% 966 0 obj +% 979 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [345.558 577.666 352.532 588.514] +/Rect [396.367 577.666 403.341 588.514] /A << /S /GoTo /D (table.1) >> >> -% 970 0 obj +% 983 0 obj << -/D [968 0 R /XYZ 98.895 753.953 null] +/D [981 0 R /XYZ 149.705 753.953 null] >> -% 967 0 obj +% 980 0 obj << -/Font << /F8 553 0 R /F27 552 0 R /F30 759 0 R /F11 745 0 R >> +/Font << /F8 557 0 R /F27 556 0 R /F30 764 0 R /F11 750 0 R >> /ProcSet [ /PDF /Text ] >> -% 978 0 obj +% 991 0 obj << /Type /Page -/Contents 979 0 R -/Resources 977 0 R +/Contents 992 0 R +/Resources 990 0 R /MediaBox [0 0 595.276 841.89] -/Parent 945 0 R -/Annots [ 971 0 R 972 0 R 973 0 R 974 0 R 975 0 R 976 0 R ] +/Parent 995 0 R +/Annots [ 984 0 R 985 0 R 986 0 R 987 0 R 988 0 R 989 0 R ] >> -% 971 0 obj +% 984 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [419.358 361.842 495.412 372.967] +/Rect [368.549 361.842 444.603 372.967] /A << /S /GoTo /D (vdata) >> >> -% 972 0 obj +% 985 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [379.142 350.163 386.116 361.011] +/Rect [328.333 350.163 335.307 361.011] /A << /S /GoTo /D (table.2) >> >> -% 973 0 obj +% 986 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [419.358 270.772 495.412 281.897] +/Rect [368.549 270.772 444.603 281.897] /A << /S /GoTo /D (vdata) >> >> -% 974 0 obj +% 987 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [379.353 259.094 386.327 269.942] +/Rect [328.544 259.094 335.518 269.942] /A << /S /GoTo /D (table.2) >> >> -% 975 0 obj +% 988 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [310.273 179.703 377.331 190.828] +/Rect [259.464 179.703 326.522 190.828] /A << /S /GoTo /D (descdata) >> >> -% 976 0 obj +% 989 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [432.897 117.392 439.871 128.24] +/Rect [382.088 117.392 389.062 128.24] /A << /S /GoTo /D (table.2) >> >> -% 980 0 obj +% 993 0 obj << -/D [978 0 R /XYZ 149.705 753.953 null] +/D [991 0 R /XYZ 98.895 753.953 null] >> -% 212 0 obj +% 216 0 obj << -/D [978 0 R /XYZ 150.705 720.077 null] +/D [991 0 R /XYZ 99.895 720.077 null] >> -% 981 0 obj +% 994 0 obj << -/D [978 0 R /XYZ 318.451 495.047 null] +/D [991 0 R /XYZ 267.641 495.047 null] >> -% 977 0 obj +% 990 0 obj << -/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 >> +/Font << /F16 554 0 R /F8 557 0 R /F11 750 0 R /F14 767 0 R /F10 766 0 R /F30 764 0 R /F27 556 0 R >> /ProcSet [ /PDF /Text ] >> -% 983 0 obj +% 997 0 obj << /Type /Page -/Contents 984 0 R -/Resources 982 0 R +/Contents 998 0 R +/Resources 996 0 R /MediaBox [0 0 595.276 841.89] -/Parent 986 0 R +/Parent 995 0 R >> -% 985 0 obj +% 999 0 obj << -/D [983 0 R /XYZ 98.895 753.953 null] +/D [997 0 R /XYZ 149.705 753.953 null] >> -% 982 0 obj +% 996 0 obj << -/Font << /F27 552 0 R /F8 553 0 R >> +/Font << /F27 556 0 R /F8 557 0 R >> /ProcSet [ /PDF /Text ] >> -% 994 0 obj +% 1007 0 obj << /Type /Page -/Contents 995 0 R -/Resources 993 0 R +/Contents 1008 0 R +/Resources 1006 0 R /MediaBox [0 0 595.276 841.89] -/Parent 986 0 R -/Annots [ 987 0 R 988 0 R 989 0 R 990 0 R 991 0 R 992 0 R ] +/Parent 995 0 R +/Annots [ 1000 0 R 1001 0 R 1002 0 R 1003 0 R 1004 0 R 1005 0 R ] >> -% 987 0 obj +% 1000 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [419.358 382.111 495.412 393.236] +/Rect [368.549 382.111 444.603 393.236] /A << /S /GoTo /D (vdata) >> >> -% 988 0 obj +% 1001 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [379.142 370.432 386.116 381.28] +/Rect [328.333 370.432 335.307 381.28] /A << /S /GoTo /D (table.3) >> >> -% 989 0 obj +% 1002 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [419.358 291.951 495.412 303.076] +/Rect [368.549 291.951 444.603 303.076] /A << /S /GoTo /D (vdata) >> >> -% 990 0 obj + +endstream +endobj +1014 0 obj << -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [379.353 280.273 386.327 291.121] -/A << /S /GoTo /D (table.3) >> +/Length 625 >> -% 991 0 obj +stream +0 g 0 G +0 g 0 G +0 g 0 G +BT +/F27 9.9626 Tf 150.705 706.129 Td [(info)]TJ +0 g 0 G +/F8 9.9626 Tf 23.758 0 Td [(Error)-333(co)-28(de.)]TJ 1.148 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.612 0 Td [(required)]TJ/F8 9.9626 Tf -29.612 -11.956 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(out)]TJ/F8 9.9626 Tf 16.549 0 Td [(.)]TJ -50.035 -11.955 Td [(An)-333(in)27(t)1(e)-1(ger)-333(v)56(alue;)-334(0)-333(means)-333(no)-334(error)-333(has)-333(b)-28(een)-333(detec)-1(ted.)]TJ +0 g 0 G + 141.968 -567.87 Td [(34)]TJ +0 g 0 G +ET + +endstream +endobj +1021 0 obj << -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [310.273 201.792 377.331 212.917] -/A << /S /GoTo /D (descdata) >> ->> -% 992 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [202.013 119.329 208.986 128.24] -/A << /S /GoTo /D (table.2) >> ->> -% 996 0 obj -<< -/D [994 0 R /XYZ 149.705 753.953 null] ->> -% 216 0 obj -<< -/D [994 0 R /XYZ 150.705 720.077 null] ->> -% 997 0 obj -<< -/D [994 0 R /XYZ 318.451 510.309 null] ->> -% 993 0 obj -<< -/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 ] ->> -% 999 0 obj -<< -/Type /Page -/Contents 1000 0 R -/Resources 998 0 R -/MediaBox [0 0 595.276 841.89] -/Parent 986 0 R ->> -% 1001 0 obj -<< -/D [999 0 R /XYZ 98.895 753.953 null] ->> -% 998 0 obj -<< -/Font << /F27 552 0 R /F8 553 0 R >> -/ProcSet [ /PDF /Text ] ->> -% 1006 0 obj -<< -/Type /Page -/Contents 1007 0 R -/Resources 1005 0 R -/MediaBox [0 0 595.276 841.89] -/Parent 986 0 R -/Annots [ 1002 0 R 1003 0 R 1004 0 R ] ->> - -endstream -endobj -1016 0 obj -<< -/Length 6326 +/Length 7088 >> stream 0 g 0 G @@ -9144,155 +9065,155 @@ q []0 d 0 J 0.398 w 0 0 m 4.035 0 l S Q BT -/F16 11.9552 Tf 124.986 706.129 Td [(geamaxs)-375(|)-375(Generalized)-375(In\014nit)31(y)-375(Norm)]TJ/F8 9.9626 Tf -25.091 -18.389 Td [(This)-359(subroutine)-359(computes)-360(a)-359(series)-359(of)-359(in\014nit)28(y)-359(norms)-360(on)-359(the)-359(columns)-359(of)-359(a)-360(d)1(e)-1(n)1(s)-1(e)]TJ 0 -11.956 Td [(matrix)]TJ/F11 9.9626 Tf 32.407 0 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(:)]TJ/F11 9.9626 Tf 87.106 -11.955 Td [(r)-28(es)]TJ/F8 9.9626 Tf 14.08 0 Td [(\050)]TJ/F11 9.9626 Tf 3.874 0 Td [(i)]TJ/F8 9.9626 Tf 3.433 0 Td [(\051)]TJ/F14 9.9626 Tf 6.641 0 Td [(\040)]TJ/F8 9.9626 Tf 12.73 0 Td [(max)]TJ/F10 6.9738 Tf 7.069 -6.503 Td [(k)]TJ/F14 9.9626 Tf 13.133 6.503 Td [(j)]TJ/F11 9.9626 Tf 2.768 0 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(\050)]TJ/F11 9.9626 Tf 3.874 0 Td [(k)-31(;)-167(i)]TJ/F8 9.9626 Tf 13.36 0 Td [(\051)]TJ/F14 9.9626 Tf 3.875 0 Td [(j)]TJ +/F16 11.9552 Tf 124.986 706.129 Td [(normi)-375(|)-375(In\014nit)31(y-Norm)-375(of)-375(V)94(ector)]TJ/F8 9.9626 Tf -25.091 -18.389 Td [(This)-333(function)-334(computes)-333(the)-333(in\014nit)28(y-norm)-334(of)-333(a)-333(v)27(ector)]TJ/F11 9.9626 Tf 233.182 0 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(.)]TJ -238.876 -11.956 Td [(If)]TJ/F11 9.9626 Tf 9.963 0 Td [(x)]TJ/F8 9.9626 Tf 9.015 0 Td [(is)-333(a)-334(real)-333(v)28(ector)-334(it)-333(computes)-333(in\014nit)28(y)-334(norm)-333(as:)]TJ/F11 9.9626 Tf 115.269 -21.138 Td [(amax)]TJ/F14 9.9626 Tf 27.741 0 Td [(\040)]TJ/F8 9.9626 Tf 12.73 0 Td [(max)]TJ/F10 6.9738 Tf 7.861 -6.275 Td [(i)]TJ/F14 9.9626 Tf 12.341 6.275 Td [(j)]TJ/F11 9.9626 Tf 2.767 0 Td [(x)]TJ/F10 6.9738 Tf 5.694 -1.495 Td [(i)]TJ/F14 9.9626 Tf 3.317 1.495 Td [(j)]TJ/F8 9.9626 Tf -206.698 -24.37 Td [(else)-333(if)]TJ/F11 9.9626 Tf 28.007 0 Td [(x)]TJ/F8 9.9626 Tf 9.014 0 Td [(is)-333(a)-334(complex)-333(v)28(ector)-334(then)-333(it)-333(computes)-334(the)-333(in\014nit)28(y-norm)-333(as:)]TJ/F11 9.9626 Tf 61.447 -21.138 Td [(amax)]TJ/F14 9.9626 Tf 27.74 0 Td [(\040)]TJ/F8 9.9626 Tf 12.73 0 Td [(max)]TJ/F10 6.9738 Tf 7.862 -6.275 Td [(i)]TJ/F8 9.9626 Tf 12.34 6.275 Td [(\050)]TJ/F14 9.9626 Tf 3.875 0 Td [(j)]TJ/F11 9.9626 Tf 2.767 0 Td [(r)-28(e)]TJ/F8 9.9626 Tf 9.411 0 Td [(\050)]TJ/F11 9.9626 Tf 3.874 0 Td [(x)]TJ/F10 6.9738 Tf 5.694 -1.495 Td [(i)]TJ/F8 9.9626 Tf 3.317 1.495 Td [(\051)]TJ/F14 9.9626 Tf 3.874 0 Td [(j)]TJ/F8 9.9626 Tf 4.981 0 Td [(+)]TJ/F14 9.9626 Tf 9.963 0 Td [(j)]TJ/F11 9.9626 Tf 2.767 0 Td [(im)]TJ/F8 9.9626 Tf 12.18 0 Td [(\050)]TJ/F11 9.9626 Tf 3.874 0 Td [(x)]TJ/F10 6.9738 Tf 5.694 -1.495 Td [(i)]TJ/F8 9.9626 Tf 3.317 1.495 Td [(\051)]TJ/F14 9.9626 Tf 3.874 0 Td [(j)]TJ/F8 9.9626 Tf 2.768 0 Td [(\051)]TJ 0 g 0 G 0 g 0 G -/F30 9.9626 Tf -215.738 -25.377 Td [(call)-525(psb_geamaxs\050res,)-525(x,)-525(desc_a,)-525(info\051)]TJ +/F30 9.9626 Tf -241.37 -24.37 Td [(psb_geamax\050x,)-525(desc_a,)-525(info\051)]TJ 0 -11.955 Td [(psb_normi\050x,)-525(desc_a,)-525(info\051)]TJ 0 g 0 G 0 g 0 G 0 g 0 G ET q -1 0 0 1 127.118 614.121 cm -[]0 d 0 J 0.398 w 0 0 m 289.266 0 l S +1 0 0 1 129.083 549.573 cm +[]0 d 0 J 0.398 w 0 0 m 285.336 0 l S Q BT -/F11 9.9626 Tf 133.096 605.553 Td [(r)-28(es)-8770(x)]TJ/F27 9.9626 Tf 221.862 0 Td [(Subroutine)]TJ +/F11 9.9626 Tf 135.06 541.005 Td [(amax)-7677(x)]TJ/F27 9.9626 Tf 221.863 0 Td [(F)96(unction)]TJ ET q -1 0 0 1 127.118 601.768 cm -[]0 d 0 J 0.398 w 0 0 m 289.266 0 l S +1 0 0 1 129.083 537.219 cm +[]0 d 0 J 0.398 w 0 0 m 285.336 0 l S Q BT -/F8 9.9626 Tf 133.096 593.2 Td [(Short)-333(Precision)-334(Real)-1200(Sh)1(ort)-334(Precision)-333(Real)-3103(psb)]TJ +/F8 9.9626 Tf 135.06 528.651 Td [(Short)-333(Precision)-334(Real)-1200(Short)-333(Precision)-333(Real)-3103(psb)]TJ ET q -1 0 0 1 370.556 593.399 cm +1 0 0 1 372.52 528.851 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 373.544 593.2 Td [(geamaxs)]TJ -240.448 -11.956 Td [(Long)-333(Precision)-334(Real)-1411(Long)-333(Precision)-333(Real)-3314(psb)]TJ +/F8 9.9626 Tf 375.509 528.651 Td [(geamax)]TJ -240.449 -11.955 Td [(Long)-333(Precision)-334(Real)-1411(Long)-333(Precision)-333(Re)-1(al)-3313(psb)]TJ ET q -1 0 0 1 370.556 581.444 cm +1 0 0 1 372.52 516.895 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 373.544 581.244 Td [(geamaxs)]TJ -240.448 -11.955 Td [(Short)-333(Precision)-334(Real)-1200(Sh)1(ort)-334(Precision)-333(Complex)-1200(psb)]TJ +/F8 9.9626 Tf 375.509 516.696 Td [(geamax)]TJ -240.449 -11.955 Td [(Short)-333(Precision)-334(Real)-1200(Short)-333(Precision)-333(Complex)-1200(psb)]TJ ET q -1 0 0 1 370.556 569.489 cm +1 0 0 1 372.52 504.94 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 373.544 569.289 Td [(geamaxs)]TJ -240.448 -11.955 Td [(Long)-333(Precision)-334(Real)-1411(Long)-333(Precision)-333(Complex)-1412(p)1(s)-1(b)]TJ +/F8 9.9626 Tf 375.509 504.741 Td [(geamax)]TJ -240.449 -11.955 Td [(Long)-333(Precision)-334(Real)-1411(Long)-333(Precision)-333(Com)-1(p)1(lex)-1412(psb)]TJ ET q -1 0 0 1 370.556 557.533 cm +1 0 0 1 372.52 492.985 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 373.544 557.334 Td [(geamaxs)]TJ +/F8 9.9626 Tf 375.509 492.786 Td [(geamax)]TJ ET q -1 0 0 1 127.118 553.548 cm -[]0 d 0 J 0.398 w 0 0 m 289.266 0 l S +1 0 0 1 129.083 489 cm +[]0 d 0 J 0.398 w 0 0 m 285.336 0 l S Q 0 g 0 G BT -/F8 9.9626 Tf 228.067 525.509 Td [(T)83(able)-333(5:)-444(Data)-334(t)28(yp)-28(es)]TJ +/F8 9.9626 Tf 228.067 460.961 Td [(T)83(able)-333(4:)-444(Data)-334(t)28(yp)-28(es)]TJ 0 g 0 G 0 g 0 G 0 g 0 G -/F27 9.9626 Tf -128.172 -33.596 Td [(T)32(yp)-32(e:)]TJ +/F27 9.9626 Tf -128.172 -32.506 Td [(T)32(yp)-32(e:)]TJ 0 g 0 G /F8 9.9626 Tf 33.797 0 Td [(Sync)28(hronous.)]TJ 0 g 0 G -/F27 9.9626 Tf -33.797 -19.925 Td [(On)-383(En)32(try)]TJ +/F27 9.9626 Tf -33.797 -19.613 Td [(On)-383(En)32(try)]TJ 0 g 0 G 0 g 0 G - 0 -19.926 Td [(x)]TJ + 0 -19.614 Td [(x)]TJ 0 g 0 G -/F8 9.9626 Tf 11.028 0 Td [(the)-333(lo)-28(cal)-333(p)-28(ortion)-333(of)-334(global)-333(dense)-333(matrix)]TJ/F11 9.9626 Tf 176.118 0 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(.)]TJ -167.933 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-255(as:)-405(a)-255(rank)-254(one)-255(or)-255(t)28(w)27(o)-254(arra)27(y)-254(or)-255(an)-255(ob)-55(jec)-1(t)-254(of)-255(t)28(yp)-28(e)]TJ +/F8 9.9626 Tf 11.028 0 Td [(the)-333(lo)-28(cal)-333(p)-28(ortion)-333(of)-334(global)-333(dense)-333(matrix)]TJ/F11 9.9626 Tf 176.118 0 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(.)]TJ -167.933 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.956 Td [(Sp)-28(eci\014ed)-255(as:)-405(a)-255(rank)-254(one)-255(or)-255(t)28(w)27(o)-254(arra)27(y)-254(or)-255(an)-255(ob)-55(jec)-1(t)-254(of)-255(t)28(yp)-28(e)]TJ 0 0 1 rg 0 0 1 RG /F30 9.9626 Tf 244.743 0 Td [(psb)]TJ ET q -1 0 0 1 385.864 404.441 cm +1 0 0 1 385.864 341.607 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 389.002 404.242 Td [(T)]TJ +/F30 9.9626 Tf 389.002 341.407 Td [(T)]TJ ET q -1 0 0 1 394.86 404.441 cm +1 0 0 1 394.86 341.607 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 397.998 404.242 Td [(vect)]TJ +/F30 9.9626 Tf 397.998 341.407 Td [(vect)]TJ ET q -1 0 0 1 419.547 404.441 cm +1 0 0 1 419.547 341.607 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 422.685 404.242 Td [(type)]TJ +/F30 9.9626 Tf 422.685 341.407 Td [(type)]TJ 0 g 0 G -/F8 9.9626 Tf -297.883 -11.956 Td [(con)28(taining)-333(n)27(um)28(b)-28(ers)-333(of)-333(t)28(yp)-28(e)-334(sp)-27(eci\014ed)-334(in)-333(T)83(able)]TJ +/F8 9.9626 Tf -297.883 -11.955 Td [(con)28(taining)-333(n)27(um)28(b)-28(ers)-333(of)-333(t)28(yp)-28(e)-334(sp)-27(eci\014ed)-334(in)-333(T)83(able)]TJ 0 0 1 rg 0 0 1 RG - [-333(5)]TJ + [-333(4)]TJ 0 g 0 G [(.)]TJ 0 g 0 G -/F27 9.9626 Tf -24.907 -19.925 Td [(desc)]TJ +/F27 9.9626 Tf -24.907 -19.613 Td [(desc)]TJ ET q -1 0 0 1 121.81 372.56 cm +1 0 0 1 121.81 310.038 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 125.247 372.361 Td [(a)]TJ +/F27 9.9626 Tf 125.247 309.839 Td [(a)]TJ 0 g 0 G -/F8 9.9626 Tf 10.551 0 Td [(con)28(tains)-334(d)1(ata)-334(structures)-333(for)-333(com)-1(m)28(unications.)]TJ -10.996 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.956 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(ob)-55(ject)-334(of)-333(t)28(yp)-28(e)]TJ +/F8 9.9626 Tf 10.551 0 Td [(con)28(tains)-334(d)1(ata)-334(structures)-333(for)-333(com)-1(m)28(unications.)]TJ -10.996 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.956 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(ob)-55(ject)-334(of)-333(t)28(yp)-28(e)]TJ 0 0 1 rg 0 0 1 RG /F30 9.9626 Tf 135.658 0 Td [(psb)]TJ ET q -1 0 0 1 276.779 324.74 cm +1 0 0 1 276.779 262.217 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 279.917 324.54 Td [(desc)]TJ +/F30 9.9626 Tf 279.917 262.018 Td [(desc)]TJ ET q -1 0 0 1 301.466 324.74 cm +1 0 0 1 301.466 262.217 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 304.604 324.54 Td [(type)]TJ +/F30 9.9626 Tf 304.604 262.018 Td [(type)]TJ 0 g 0 G /F8 9.9626 Tf 20.922 0 Td [(.)]TJ 0 g 0 G -/F27 9.9626 Tf -225.631 -19.925 Td [(On)-383(Return)]TJ +/F27 9.9626 Tf -225.631 -19.614 Td [(On)-383(Return)]TJ 0 g 0 G 0 g 0 G - 0 -19.925 Td [(res)]TJ + 0 -19.613 Td [(F)96(unction)-384(v)64(alue)]TJ 0 g 0 G -/F8 9.9626 Tf 19.47 0 Td [(is)-333(the)-334(in\014nit)28(y)-333(norm)-333(of)-334(the)-333(columns)-333(of)]TJ/F11 9.9626 Tf 166.183 0 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(.)]TJ -166.44 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(global)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(out)]TJ/F8 9.9626 Tf 16.549 0 Td [(.)]TJ -50.035 -11.956 Td [(Sp)-28(eci\014ed)-289(as:)-422(a)-289(n)28(um)28(b)-28(er)-289(or)-289(a)-289(ran)1(k-one)-289(arra)27(y)-288(of)-289(long)-289(precision)-289(real)-289(n)28(um)28(b)-28(ers.)]TJ +/F8 9.9626 Tf 78.387 0 Td [(is)-333(the)-334(in\014ni)1(t)27(y)-333(norm)-333(of)-334(sub)28(v)28(ector)]TJ/F11 9.9626 Tf 143.517 0 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(.)]TJ -202.691 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(global)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(long)-333(precision)-333(real)-334(n)28(um)28(b)-28(er.)]TJ 0 g 0 G -/F27 9.9626 Tf -24.907 -19.925 Td [(info)]TJ +/F27 9.9626 Tf -24.907 -19.614 Td [(info)]TJ 0 g 0 G -/F8 9.9626 Tf 23.758 0 Td [(Error)-333(co)-28(de.)]TJ 1.149 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(out)]TJ/F8 9.9626 Tf 16.549 0 Td [(.)]TJ -50.035 -11.956 Td [(An)-333(in)28(tege)-1(r)-333(v)56(alue;)-334(0)-333(means)-333(no)-334(error)-333(has)-333(b)-28(een)-333(detecte)-1(d)1(.)]TJ +/F8 9.9626 Tf 23.758 0 Td [(Error)-333(co)-28(de.)]TJ 1.149 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.956 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(out)]TJ/F8 9.9626 Tf 16.549 0 Td [(.)]TJ -50.035 -11.955 Td [(An)-333(in)28(tege)-1(r)-333(v)56(alue;)-334(0)-333(means)-333(no)-334(error)-333(has)-333(b)-28(een)-333(detecte)-1(d)1(.)]TJ 0 g 0 G - 141.968 -90.64 Td [(35)]TJ + 141.968 -41.008 Td [(35)]TJ 0 g 0 G ET endstream endobj -1024 0 obj +1029 0 obj << -/Length 6729 +/Length 6310 >> stream 0 g 0 G @@ -9305,155 +9226,155 @@ q []0 d 0 J 0.398 w 0 0 m 4.035 0 l S Q BT -/F16 11.9552 Tf 175.796 706.129 Td [(norm1)-375(|)-375(1-Norm)-375(of)-375(V)94(ector)]TJ/F8 9.9626 Tf -25.091 -18.389 Td [(This)-333(function)-334(computes)-333(the)-333(1-norm)-334(of)-333(a)-333(v)28(ec)-1(tor)]TJ/F11 9.9626 Tf 207.168 0 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(.)]TJ -212.862 -11.956 Td [(If)]TJ/F11 9.9626 Tf 9.963 0 Td [(x)]TJ/F8 9.9626 Tf 9.014 0 Td [(is)-333(a)-334(real)-333(v)28(ector)-334(it)-333(computes)-333(1-norm)-334(as:)]TJ/F11 9.9626 Tf 123.45 -21.772 Td [(asum)]TJ/F14 9.9626 Tf 27.154 0 Td [(\040)-278(k)]TJ/F11 9.9626 Tf 17.711 0 Td [(x)]TJ/F10 6.9738 Tf 5.694 -1.494 Td [(i)]TJ/F14 9.9626 Tf 3.317 1.494 Td [(k)]TJ/F8 9.9626 Tf -196.303 -21.772 Td [(else)-333(if)]TJ/F11 9.9626 Tf 28.006 0 Td [(x)]TJ/F8 9.9626 Tf 9.015 0 Td [(is)-333(a)-334(complex)-333(v)28(ector)-334(then)-333(it)-333(computes)-334(1-norm)-333(as:)]TJ/F11 9.9626 Tf 70.135 -21.772 Td [(asum)]TJ/F14 9.9626 Tf 27.154 0 Td [(\040)-278(k)]TJ/F11 9.9626 Tf 17.711 0 Td [(r)-28(e)]TJ/F8 9.9626 Tf 9.41 0 Td [(\050)]TJ/F11 9.9626 Tf 3.875 0 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(\051)]TJ/F14 9.9626 Tf 3.874 0 Td [(k)]TJ/F7 6.9738 Tf 4.981 -1.494 Td [(1)]TJ/F8 9.9626 Tf 6.683 1.494 Td [(+)]TJ/F14 9.9626 Tf 9.963 0 Td [(k)]TJ/F11 9.9626 Tf 4.981 0 Td [(im)]TJ/F8 9.9626 Tf 12.18 0 Td [(\050)]TJ/F11 9.9626 Tf 3.874 0 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(\051)]TJ/F14 9.9626 Tf 3.875 0 Td [(k)]TJ/F7 6.9738 Tf 4.981 -1.494 Td [(1)]TJ +/F16 11.9552 Tf 175.796 706.129 Td [(geamaxs)-375(|)-375(Generalized)-375(In\014nit)31(y)-375(Norm)]TJ/F8 9.9626 Tf -25.091 -18.389 Td [(This)-359(subroutine)-359(computes)-360(a)-359(series)-359(of)-359(in\014nit)28(y)-359(norms)-360(on)-359(the)-359(columns)-359(of)-359(a)-359(dense)]TJ 0 -11.956 Td [(matrix)]TJ/F11 9.9626 Tf 32.406 0 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(:)]TJ/F11 9.9626 Tf 87.106 -11.955 Td [(r)-28(es)]TJ/F8 9.9626 Tf 14.08 0 Td [(\050)]TJ/F11 9.9626 Tf 3.875 0 Td [(i)]TJ/F8 9.9626 Tf 3.432 0 Td [(\051)]TJ/F14 9.9626 Tf 6.642 0 Td [(\040)]TJ/F8 9.9626 Tf 12.73 0 Td [(max)]TJ/F10 6.9738 Tf 7.069 -6.503 Td [(k)]TJ/F14 9.9626 Tf 13.133 6.503 Td [(j)]TJ/F11 9.9626 Tf 2.767 0 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(\050)]TJ/F11 9.9626 Tf 3.875 0 Td [(k)-31(;)-167(i)]TJ/F8 9.9626 Tf 13.36 0 Td [(\051)]TJ/F14 9.9626 Tf 3.874 0 Td [(j)]TJ 0 g 0 G 0 g 0 G -/F30 9.9626 Tf -232.086 -20.278 Td [(psb_geasum\050x,)-525(desc_a,)-525(info\051)]TJ 0 -11.955 Td [(psb_norm1\050x,)-525(desc_a,)-525(info\051)]TJ +/F30 9.9626 Tf -215.737 -25.377 Td [(call)-525(psb_geamaxs\050res,)-525(x,)-525(desc_a,)-525(info\051)]TJ 0 g 0 G 0 g 0 G 0 g 0 G ET q -1 0 0 1 180.28 552.614 cm -[]0 d 0 J 0.398 w 0 0 m 284.561 0 l S +1 0 0 1 177.927 614.121 cm +[]0 d 0 J 0.398 w 0 0 m 289.266 0 l S Q BT -/F11 9.9626 Tf 186.257 544.046 Td [(asum)-7736(x)]TJ/F27 9.9626 Tf 221.863 0 Td [(F)96(unction)]TJ +/F11 9.9626 Tf 183.905 605.553 Td [(r)-28(es)-8770(x)]TJ/F27 9.9626 Tf 221.863 0 Td [(Subroutine)]TJ ET q -1 0 0 1 180.28 540.26 cm -[]0 d 0 J 0.398 w 0 0 m 284.561 0 l S +1 0 0 1 177.927 601.768 cm +[]0 d 0 J 0.398 w 0 0 m 289.266 0 l S Q BT -/F8 9.9626 Tf 186.257 531.692 Td [(Short)-333(Precision)-334(Real)-1200(Short)-333(Precision)-333(Real)-3103(psb)]TJ +/F8 9.9626 Tf 183.905 593.2 Td [(Short)-333(Precision)-334(Real)-1200(Shor)1(t)-334(Precision)-333(Real)-3103(psb)]TJ ET q -1 0 0 1 423.717 531.891 cm +1 0 0 1 421.365 593.399 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 426.706 531.692 Td [(geasum)]TJ -240.449 -11.955 Td [(Long)-333(Precision)-334(Real)-1411(Long)-333(Precision)-333(Real)-3314(psb)]TJ +/F8 9.9626 Tf 424.354 593.2 Td [(geamaxs)]TJ -240.449 -11.956 Td [(Long)-333(Precision)-334(Real)-1411(Long)-333(Precision)-333(Real)-3314(psb)]TJ ET q -1 0 0 1 423.717 519.936 cm +1 0 0 1 421.365 581.444 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 426.706 519.737 Td [(geasum)]TJ -240.449 -11.955 Td [(Short)-333(Precision)-334(Real)-1200(Short)-333(Precision)-333(Complex)-1200(psb)]TJ +/F8 9.9626 Tf 424.354 581.244 Td [(geamaxs)]TJ -240.449 -11.955 Td [(Short)-333(Precision)-334(Real)-1200(Shor)1(t)-334(Precision)-333(Complex)-1200(psb)]TJ ET q -1 0 0 1 423.717 507.981 cm +1 0 0 1 421.365 569.489 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 426.706 507.782 Td [(geasum)]TJ -240.449 -11.955 Td [(Long)-333(Precision)-334(Real)-1411(Long)-333(Precision)-333(Com)-1(p)1(lex)-1412(psb)]TJ +/F8 9.9626 Tf 424.354 569.289 Td [(geamaxs)]TJ -240.449 -11.955 Td [(Long)-333(Precision)-334(Real)-1411(Long)-333(Precision)-333(Complex)-1412(psb)]TJ ET q -1 0 0 1 423.717 496.026 cm +1 0 0 1 421.365 557.533 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 426.706 495.827 Td [(geasum)]TJ +/F8 9.9626 Tf 424.354 557.334 Td [(geamaxs)]TJ ET q -1 0 0 1 180.28 492.041 cm -[]0 d 0 J 0.398 w 0 0 m 284.561 0 l S +1 0 0 1 177.927 553.548 cm +[]0 d 0 J 0.398 w 0 0 m 289.266 0 l S Q 0 g 0 G BT -/F8 9.9626 Tf 278.877 464.002 Td [(T)83(able)-333(6:)-444(Data)-334(t)28(yp)-28(es)]TJ +/F8 9.9626 Tf 278.877 525.509 Td [(T)83(able)-333(5:)-444(Data)-334(t)28(yp)-28(es)]TJ 0 g 0 G 0 g 0 G 0 g 0 G -/F27 9.9626 Tf -128.172 -33.393 Td [(T)32(yp)-32(e:)]TJ +/F27 9.9626 Tf -128.172 -33.596 Td [(T)32(yp)-32(e:)]TJ 0 g 0 G /F8 9.9626 Tf 33.797 0 Td [(Sync)28(hronous.)]TJ 0 g 0 G -/F27 9.9626 Tf -33.797 -19.867 Td [(On)-383(En)32(try)]TJ +/F27 9.9626 Tf -33.797 -19.925 Td [(On)-383(En)32(try)]TJ 0 g 0 G 0 g 0 G - 0 -19.867 Td [(x)]TJ + 0 -19.926 Td [(x)]TJ 0 g 0 G /F8 9.9626 Tf 11.028 0 Td [(the)-333(lo)-28(cal)-333(p)-28(ortion)-333(of)-334(global)-333(dense)-333(matrix)]TJ/F11 9.9626 Tf 176.118 0 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(.)]TJ -167.933 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.378 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.378 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.485 0 Td [(in)]TJ/F8 9.9626 Tf 9.548 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-255(as:)-405(a)-255(rank)-254(one)-255(or)-255(t)28(w)28(o)-255(arra)28(y)-255(or)-255(an)-255(ob)-55(ject)-255(of)-255(t)28(yp)-28(e)]TJ 0 0 1 rg 0 0 1 RG /F30 9.9626 Tf 244.742 0 Td [(psb)]TJ ET q -1 0 0 1 436.673 343.254 cm +1 0 0 1 436.673 404.441 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 439.811 343.055 Td [(T)]TJ +/F30 9.9626 Tf 439.811 404.242 Td [(T)]TJ ET q -1 0 0 1 445.669 343.254 cm +1 0 0 1 445.669 404.441 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 448.807 343.055 Td [(vect)]TJ +/F30 9.9626 Tf 448.807 404.242 Td [(vect)]TJ ET q -1 0 0 1 470.356 343.254 cm +1 0 0 1 470.356 404.441 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 473.495 343.055 Td [(type)]TJ +/F30 9.9626 Tf 473.495 404.242 Td [(type)]TJ 0 g 0 G /F8 9.9626 Tf -297.884 -11.956 Td [(con)28(taining)-333(n)27(um)28(b)-28(ers)-333(of)-333(t)27(yp)-27(e)-334(sp)-27(ec)-1(i)1(\014ed)-334(in)-333(T)83(able)]TJ 0 0 1 rg 0 0 1 RG - [-333(6)]TJ + [-333(5)]TJ 0 g 0 G [(.)]TJ 0 g 0 G -/F27 9.9626 Tf -24.906 -19.867 Td [(desc)]TJ +/F27 9.9626 Tf -24.906 -19.925 Td [(desc)]TJ ET q -1 0 0 1 172.619 311.432 cm +1 0 0 1 172.619 372.56 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 176.057 311.232 Td [(a)]TJ +/F27 9.9626 Tf 176.057 372.361 Td [(a)]TJ 0 g 0 G -/F8 9.9626 Tf 10.55 0 Td [(con)28(tains)-334(data)-333(structures)-333(for)-333(c)-1(omm)28(unications.)]TJ -10.996 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.612 0 Td [(required)]TJ/F8 9.9626 Tf -29.612 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.548 0 Td [(.)]TJ -43.034 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(ob)-55(ject)-334(of)-333(t)28(yp)-28(e)]TJ +/F8 9.9626 Tf 10.55 0 Td [(con)28(tains)-334(data)-333(structures)-333(for)-333(c)-1(omm)28(unications.)]TJ -10.996 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.612 0 Td [(required)]TJ/F8 9.9626 Tf -29.612 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.548 0 Td [(.)]TJ -43.034 -11.956 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(ob)-55(ject)-334(of)-333(t)28(yp)-28(e)]TJ 0 0 1 rg 0 0 1 RG /F30 9.9626 Tf 135.659 0 Td [(psb)]TJ ET q -1 0 0 1 327.588 263.611 cm +1 0 0 1 327.588 324.74 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 330.727 263.412 Td [(desc)]TJ +/F30 9.9626 Tf 330.727 324.54 Td [(desc)]TJ ET q -1 0 0 1 352.275 263.611 cm +1 0 0 1 352.275 324.74 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 355.414 263.412 Td [(type)]TJ +/F30 9.9626 Tf 355.414 324.54 Td [(type)]TJ 0 g 0 G /F8 9.9626 Tf 20.921 0 Td [(.)]TJ 0 g 0 G -/F27 9.9626 Tf -225.63 -19.867 Td [(On)-383(Return)]TJ +/F27 9.9626 Tf -225.63 -19.925 Td [(On)-383(Return)]TJ 0 g 0 G 0 g 0 G - 0 -19.867 Td [(F)96(unction)-384(v)64(alue)]TJ + 0 -19.925 Td [(res)]TJ 0 g 0 G -/F8 9.9626 Tf 78.386 0 Td [(is)-333(the)-334(1-norm)-333(of)-333(v)27(ector)]TJ/F11 9.9626 Tf 102.781 0 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(.)]TJ -161.955 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(global)]TJ/F8 9.9626 Tf -32.379 -11.956 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(long)-333(precision)-334(r)1(e)-1(al)-333(n)28(um)28(b)-28(er.)]TJ +/F8 9.9626 Tf 19.47 0 Td [(is)-333(the)-334(in\014nit)28(y)-333(norm)-333(of)-334(the)-333(columns)-333(of)]TJ/F11 9.9626 Tf 166.183 0 Td [(x)]TJ/F8 9.9626 Tf 5.693 0 Td [(.)]TJ -166.44 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(global)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(out)]TJ/F8 9.9626 Tf 16.549 0 Td [(.)]TJ -50.035 -11.956 Td [(Sp)-28(eci\014ed)-289(as:)-422(a)-289(n)28(um)28(b)-28(er)-289(or)-289(a)-289(rank)1(-)-1(on)1(e)-289(arra)27(y)-288(of)-289(long)-289(precision)-289(real)-289(n)28(um)28(b)-28(ers.)]TJ 0 g 0 G -/F27 9.9626 Tf -24.906 -19.867 Td [(info)]TJ +/F27 9.9626 Tf -24.906 -19.925 Td [(info)]TJ 0 g 0 G -/F8 9.9626 Tf 23.758 0 Td [(Error)-333(co)-28(de.)]TJ 1.148 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.612 0 Td [(required)]TJ/F8 9.9626 Tf -29.612 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(out)]TJ/F8 9.9626 Tf 16.549 0 Td [(.)]TJ -50.035 -11.955 Td [(An)-333(in)28(te)-1(ger)-333(v)56(alue;)-334(0)-333(means)-333(no)-334(error)-333(has)-333(b)-28(een)-333(detec)-1(ted.)]TJ +/F8 9.9626 Tf 23.758 0 Td [(Error)-333(co)-28(de.)]TJ 1.148 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.612 0 Td [(required)]TJ/F8 9.9626 Tf -29.612 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(out)]TJ/F8 9.9626 Tf 16.549 0 Td [(.)]TJ -50.035 -11.956 Td [(An)-333(in)28(te)-1(ger)-333(v)56(alue;)-334(0)-333(means)-333(no)-334(error)-333(has)-333(b)-28(een)-333(detec)-1(ted.)]TJ 0 g 0 G - 141.968 -41.642 Td [(36)]TJ + 141.968 -90.64 Td [(36)]TJ 0 g 0 G ET endstream endobj -1032 0 obj +1037 0 obj << -/Length 7318 +/Length 6740 >> stream 0 g 0 G @@ -9466,345 +9387,331 @@ q []0 d 0 J 0.398 w 0 0 m 4.035 0 l S Q BT -/F16 11.9552 Tf 124.986 706.129 Td [(geasums)-375(|)-375(Generalized)-375(1-Norm)-375(of)-375(V)94(ector)]TJ/F8 9.9626 Tf -25.091 -19.22 Td [(This)-310(subroutine)-310(computes)-309(a)-310(series)-310(of)-310(1-norms)-310(on)-310(the)-310(columns)-309(of)-310(a)-310(dense)-310(matrix)]TJ/F11 9.9626 Tf 0 -11.955 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(:)]TJ/F11 9.9626 Tf 119.513 -13.293 Td [(r)-28(es)]TJ/F8 9.9626 Tf 14.08 0 Td [(\050)]TJ/F11 9.9626 Tf 3.874 0 Td [(i)]TJ/F8 9.9626 Tf 3.433 0 Td [(\051)]TJ/F14 9.9626 Tf 6.641 0 Td [(\040)]TJ/F8 9.9626 Tf 12.73 0 Td [(max)]TJ/F10 6.9738 Tf 7.069 -6.503 Td [(k)]TJ/F14 9.9626 Tf 13.133 6.503 Td [(j)]TJ/F11 9.9626 Tf 2.768 0 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(\050)]TJ/F11 9.9626 Tf 3.874 0 Td [(k)-31(;)-167(i)]TJ/F8 9.9626 Tf 13.36 0 Td [(\051)]TJ/F14 9.9626 Tf 3.875 0 Td [(j)]TJ/F8 9.9626 Tf -215.738 -22.73 Td [(This)-333(function)-334(computes)-333(the)-333(1-norm)-334(of)-333(a)-333(v)28(e)-1(ctor)]TJ/F11 9.9626 Tf 207.168 0 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(.)]TJ -212.862 -11.955 Td [(If)]TJ/F11 9.9626 Tf 9.963 0 Td [(x)]TJ/F8 9.9626 Tf 9.015 0 Td [(is)-333(a)-334(real)-333(v)28(ector)-334(it)-333(computes)-333(1-norm)-334(as:)]TJ/F11 9.9626 Tf 123.012 -22.81 Td [(r)-28(es)]TJ/F8 9.9626 Tf 14.08 0 Td [(\050)]TJ/F11 9.9626 Tf 3.875 0 Td [(i)]TJ/F8 9.9626 Tf 3.432 0 Td [(\051)]TJ/F14 9.9626 Tf 6.641 0 Td [(\040)-278(k)]TJ/F11 9.9626 Tf 17.712 0 Td [(x)]TJ/F10 6.9738 Tf 5.694 -1.495 Td [(i)]TJ/F14 9.9626 Tf 3.317 1.495 Td [(k)]TJ/F8 9.9626 Tf -196.741 -22.81 Td [(else)-333(if)]TJ/F11 9.9626 Tf 28.006 0 Td [(x)]TJ/F8 9.9626 Tf 9.015 0 Td [(is)-333(a)-334(complex)-333(v)28(ector)-334(then)-333(it)-333(computes)-334(1-norm)-333(as:)]TJ/F11 9.9626 Tf 69.698 -22.81 Td [(r)-28(es)]TJ/F8 9.9626 Tf 14.08 0 Td [(\050)]TJ/F11 9.9626 Tf 3.874 0 Td [(i)]TJ/F8 9.9626 Tf 3.433 0 Td [(\051)]TJ/F14 9.9626 Tf 6.641 0 Td [(\040)-278(k)]TJ/F11 9.9626 Tf 17.712 0 Td [(r)-28(e)]TJ/F8 9.9626 Tf 9.41 0 Td [(\050)]TJ/F11 9.9626 Tf 3.874 0 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(\051)]TJ/F14 9.9626 Tf 3.875 0 Td [(k)]TJ/F7 6.9738 Tf 4.981 -1.494 Td [(1)]TJ/F8 9.9626 Tf 6.683 1.494 Td [(+)]TJ/F14 9.9626 Tf 9.963 0 Td [(k)]TJ/F11 9.9626 Tf 4.981 0 Td [(im)]TJ/F8 9.9626 Tf 12.18 0 Td [(\050)]TJ/F11 9.9626 Tf 3.874 0 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(\051)]TJ/F14 9.9626 Tf 3.874 0 Td [(k)]TJ/F7 6.9738 Tf 4.982 -1.494 Td [(1)]TJ +/F16 11.9552 Tf 124.986 706.129 Td [(norm1)-375(|)-375(1-Norm)-375(of)-375(V)94(ector)]TJ/F8 9.9626 Tf -25.091 -18.389 Td [(This)-333(function)-334(computes)-333(the)-333(1-norm)-334(of)-333(a)-333(v)27(ector)]TJ/F11 9.9626 Tf 207.168 0 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(.)]TJ -212.862 -11.956 Td [(If)]TJ/F11 9.9626 Tf 9.963 0 Td [(x)]TJ/F8 9.9626 Tf 9.015 0 Td [(is)-333(a)-334(real)-333(v)28(ector)-334(it)-333(computes)-333(1-norm)-334(as:)]TJ/F11 9.9626 Tf 123.449 -21.772 Td [(asum)]TJ/F14 9.9626 Tf 27.154 0 Td [(\040)-278(k)]TJ/F11 9.9626 Tf 17.711 0 Td [(x)]TJ/F10 6.9738 Tf 5.694 -1.494 Td [(i)]TJ/F14 9.9626 Tf 3.317 1.494 Td [(k)]TJ/F8 9.9626 Tf -196.303 -21.772 Td [(else)-333(if)]TJ/F11 9.9626 Tf 28.006 0 Td [(x)]TJ/F8 9.9626 Tf 9.015 0 Td [(is)-333(a)-334(complex)-333(v)28(ector)-334(then)-333(it)-333(computes)-334(1-norm)-333(as:)]TJ/F11 9.9626 Tf 70.135 -21.772 Td [(asum)]TJ/F14 9.9626 Tf 27.154 0 Td [(\040)-278(k)]TJ/F11 9.9626 Tf 17.711 0 Td [(r)-28(e)]TJ/F8 9.9626 Tf 9.411 0 Td [(\050)]TJ/F11 9.9626 Tf 3.874 0 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(\051)]TJ/F14 9.9626 Tf 3.874 0 Td [(k)]TJ/F7 6.9738 Tf 4.982 -1.494 Td [(1)]TJ/F8 9.9626 Tf 6.683 1.494 Td [(+)]TJ/F14 9.9626 Tf 9.962 0 Td [(k)]TJ/F11 9.9626 Tf 4.982 0 Td [(im)]TJ/F8 9.9626 Tf 12.179 0 Td [(\050)]TJ/F11 9.9626 Tf 3.875 0 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(\051)]TJ/F14 9.9626 Tf 3.874 0 Td [(k)]TJ/F7 6.9738 Tf 4.981 -1.494 Td [(1)]TJ 0 g 0 G 0 g 0 G -/F30 9.9626 Tf -232.524 -21.762 Td [(call)-525(psb_geasums\050res,)-525(x,)-525(desc_a,)-525(info\051)]TJ +/F30 9.9626 Tf -232.086 -20.278 Td [(psb_geasum\050x,)-525(desc_a,)-525(info\051)]TJ 0 -11.955 Td [(psb_norm1\050x,)-525(desc_a,)-525(info\051)]TJ 0 g 0 G 0 g 0 G 0 g 0 G ET q -1 0 0 1 127.261 508.729 cm -[]0 d 0 J 0.398 w 0 0 m 288.979 0 l S +1 0 0 1 129.47 552.614 cm +[]0 d 0 J 0.398 w 0 0 m 284.561 0 l S Q BT -/F11 9.9626 Tf 133.239 500.161 Td [(r)-28(es)-8770(x)]TJ/F27 9.9626 Tf 221.863 0 Td [(Subroutine)]TJ +/F11 9.9626 Tf 135.448 544.046 Td [(asum)-7735(x)]TJ/F27 9.9626 Tf 221.863 0 Td [(F)96(unction)]TJ ET q -1 0 0 1 127.261 496.375 cm -[]0 d 0 J 0.398 w 0 0 m 288.979 0 l S +1 0 0 1 129.47 540.26 cm +[]0 d 0 J 0.398 w 0 0 m 284.561 0 l S Q BT -/F8 9.9626 Tf 133.239 487.807 Td [(Short)-333(Precision)-334(Real)-1200(Shor)1(t)-334(Precision)-333(Real)-3103(psb)]TJ +/F8 9.9626 Tf 135.448 531.692 Td [(Short)-333(Precision)-334(Real)-1200(Sh)1(o)-1(r)1(t)-334(Precision)-333(Real)-3103(psb)]TJ ET q -1 0 0 1 370.699 488.007 cm +1 0 0 1 372.908 531.891 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 373.688 487.807 Td [(geasums)]TJ -240.449 -11.955 Td [(Long)-333(Precision)-334(Real)-1411(Long)-333(Precision)-333(Real)-3314(psb)]TJ +/F8 9.9626 Tf 375.897 531.692 Td [(geasum)]TJ -240.449 -11.955 Td [(Long)-333(Precision)-334(Real)-1411(Long)-333(Precision)-333(Real)-3314(psb)]TJ ET q -1 0 0 1 370.699 476.051 cm +1 0 0 1 372.908 519.936 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 373.688 475.852 Td [(geasums)]TJ -240.449 -11.955 Td [(Short)-333(Precision)-334(Real)-1200(Shor)1(t)-334(Precision)-333(Complex)-1200(psb)]TJ +/F8 9.9626 Tf 375.897 519.737 Td [(geasum)]TJ -240.449 -11.955 Td [(Short)-333(Precision)-334(Real)-1200(Sh)1(o)-1(r)1(t)-334(Precision)-333(Complex)-1200(psb)]TJ ET q -1 0 0 1 370.699 464.096 cm +1 0 0 1 372.908 507.981 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 373.688 463.897 Td [(geasums)]TJ -240.449 -11.955 Td [(Long)-333(Precision)-334(Real)-1411(Long)-333(Precision)-333(Complex)-1412(psb)]TJ +/F8 9.9626 Tf 375.897 507.782 Td [(geasum)]TJ -240.449 -11.955 Td [(Long)-333(Precision)-334(Real)-1411(Long)-333(Precision)-333(Complex)-1412(psb)]TJ ET q -1 0 0 1 370.699 452.141 cm +1 0 0 1 372.908 496.026 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 373.688 451.942 Td [(geasums)]TJ +/F8 9.9626 Tf 375.897 495.827 Td [(geasum)]TJ ET q -1 0 0 1 127.261 448.156 cm -[]0 d 0 J 0.398 w 0 0 m 288.979 0 l S +1 0 0 1 129.47 492.041 cm +[]0 d 0 J 0.398 w 0 0 m 284.561 0 l S Q 0 g 0 G BT -/F8 9.9626 Tf 228.067 420.117 Td [(T)83(able)-333(7:)-444(Data)-334(t)28(yp)-28(es)]TJ +/F8 9.9626 Tf 228.067 464.002 Td [(T)83(able)-333(6:)-444(Data)-334(t)28(yp)-28(es)]TJ 0 g 0 G 0 g 0 G 0 g 0 G -/F27 9.9626 Tf -128.172 -35.827 Td [(T)32(yp)-32(e:)]TJ +/F27 9.9626 Tf -128.172 -33.393 Td [(T)32(yp)-32(e:)]TJ 0 g 0 G /F8 9.9626 Tf 33.797 0 Td [(Sync)28(hronous.)]TJ 0 g 0 G -/F27 9.9626 Tf -33.797 -21.709 Td [(On)-383(En)32(try)]TJ +/F27 9.9626 Tf -33.797 -19.867 Td [(On)-383(En)32(try)]TJ 0 g 0 G 0 g 0 G - 0 -21.71 Td [(x)]TJ + 0 -19.867 Td [(x)]TJ 0 g 0 G /F8 9.9626 Tf 11.028 0 Td [(the)-333(lo)-28(cal)-333(p)-28(ortion)-333(of)-334(global)-333(dense)-333(matrix)]TJ/F11 9.9626 Tf 176.118 0 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(.)]TJ -167.933 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-255(as:)-405(a)-255(rank)-254(one)-255(or)-255(t)28(w)27(o)-254(arra)27(y)-254(or)-255(an)-255(ob)-55(jec)-1(t)-254(of)-255(t)28(yp)-28(e)]TJ 0 0 1 rg 0 0 1 RG /F30 9.9626 Tf 244.743 0 Td [(psb)]TJ ET q -1 0 0 1 385.864 293.25 cm +1 0 0 1 385.864 343.254 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 389.002 293.051 Td [(T)]TJ +/F30 9.9626 Tf 389.002 343.055 Td [(T)]TJ ET q -1 0 0 1 394.86 293.25 cm +1 0 0 1 394.86 343.254 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 397.998 293.051 Td [(vect)]TJ +/F30 9.9626 Tf 397.998 343.055 Td [(vect)]TJ ET q -1 0 0 1 419.547 293.25 cm +1 0 0 1 419.547 343.254 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 422.685 293.051 Td [(type)]TJ +/F30 9.9626 Tf 422.685 343.055 Td [(type)]TJ 0 g 0 G /F8 9.9626 Tf -297.883 -11.956 Td [(con)28(taining)-333(n)27(um)28(b)-28(ers)-333(of)-333(t)28(yp)-28(e)-334(sp)-27(eci\014ed)-334(in)-333(T)83(able)]TJ 0 0 1 rg 0 0 1 RG - [-333(7)]TJ + [-333(6)]TJ 0 g 0 G [(.)]TJ 0 g 0 G -/F27 9.9626 Tf -24.907 -21.709 Td [(desc)]TJ +/F27 9.9626 Tf -24.907 -19.867 Td [(desc)]TJ ET q -1 0 0 1 121.81 259.585 cm +1 0 0 1 121.81 311.432 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 125.247 259.386 Td [(a)]TJ +/F27 9.9626 Tf 125.247 311.232 Td [(a)]TJ 0 g 0 G -/F8 9.9626 Tf 10.551 0 Td [(con)28(tains)-334(d)1(ata)-334(structures)-333(for)-333(com)-1(m)28(unications.)]TJ -10.996 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.956 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(ob)-55(ject)-334(of)-333(t)28(yp)-28(e)]TJ +/F8 9.9626 Tf 10.551 0 Td [(con)28(tains)-334(d)1(ata)-334(structures)-333(for)-333(com)-1(m)28(unications.)]TJ -10.996 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(ob)-55(ject)-334(of)-333(t)28(yp)-28(e)]TJ 0 0 1 rg 0 0 1 RG /F30 9.9626 Tf 135.658 0 Td [(psb)]TJ ET q -1 0 0 1 276.779 211.765 cm +1 0 0 1 276.779 263.611 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 279.917 211.565 Td [(desc)]TJ +/F30 9.9626 Tf 279.917 263.412 Td [(desc)]TJ ET q -1 0 0 1 301.466 211.765 cm +1 0 0 1 301.466 263.611 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 304.604 211.565 Td [(type)]TJ +/F30 9.9626 Tf 304.604 263.412 Td [(type)]TJ 0 g 0 G /F8 9.9626 Tf 20.922 0 Td [(.)]TJ 0 g 0 G -/F27 9.9626 Tf -225.631 -21.709 Td [(On)-383(Return)]TJ -0 g 0 G -0 g 0 G - 0 -21.71 Td [(res)]TJ -0 g 0 G -/F8 9.9626 Tf 19.47 0 Td [(con)28(tains)-334(the)-333(1-norm)-333(of)-334(\050th)1(e)-334(columns)-333(of)-78(\051)]TJ/F11 9.9626 Tf 177.751 0 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(.)]TJ -178.008 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(global)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(out)]TJ/F8 9.9626 Tf 16.549 0 Td [(.)]TJ -50.035 -11.955 Td [(Short)-324(as:)-440(a)-324(long)-324(precision)-324(real)-325(n)28(um)28(b)-28(er.)-441(Sp)-28(eci\014ed)-324(as:)-440(a)-324(long)-324(precision)-325(r)1(e)-1(al)]TJ 0 -11.955 Td [(n)28(um)28(b)-28(er.)]TJ +/F27 9.9626 Tf -225.631 -19.867 Td [(On)-383(Return)]TJ 0 g 0 G - 141.968 -29.888 Td [(37)]TJ -0 g 0 G -ET - -endstream -endobj -1038 0 obj -<< -/Length 625 ->> -stream 0 g 0 G + 0 -19.867 Td [(F)96(unction)-384(v)64(alue)]TJ 0 g 0 G +/F8 9.9626 Tf 78.387 0 Td [(is)-333(the)-334(1-norm)-333(of)-333(v)28(e)-1(ctor)]TJ/F11 9.9626 Tf 102.781 0 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(.)]TJ -161.955 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(global)]TJ/F8 9.9626 Tf -32.379 -11.956 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(long)-333(precision)-333(real)-334(n)28(um)28(b)-28(er.)]TJ 0 g 0 G -BT -/F27 9.9626 Tf 150.705 706.129 Td [(info)]TJ +/F27 9.9626 Tf -24.907 -19.867 Td [(info)]TJ 0 g 0 G -/F8 9.9626 Tf 23.758 0 Td [(Error)-333(co)-28(de.)]TJ 1.148 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.612 0 Td [(required)]TJ/F8 9.9626 Tf -29.612 -11.956 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(out)]TJ/F8 9.9626 Tf 16.549 0 Td [(.)]TJ -50.035 -11.955 Td [(An)-333(in)27(t)1(e)-1(ger)-333(v)56(alue;)-334(0)-333(means)-333(no)-334(error)-333(has)-333(b)-28(een)-333(detec)-1(ted.)]TJ +/F8 9.9626 Tf 23.758 0 Td [(Error)-333(co)-28(de.)]TJ 1.149 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(out)]TJ/F8 9.9626 Tf 16.549 0 Td [(.)]TJ -50.035 -11.955 Td [(An)-333(in)28(tege)-1(r)-333(v)56(alue;)-334(0)-333(means)-333(no)-334(error)-333(has)-333(b)-28(een)-333(detecte)-1(d)1(.)]TJ 0 g 0 G - 141.968 -567.87 Td [(38)]TJ + 141.968 -41.642 Td [(37)]TJ 0 g 0 G ET endstream endobj -1045 0 obj +1046 0 obj << -/Length 6774 +/Length 7351 >> 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 [(norm2)-375(|)-375(2-Norm)-375(of)-375(V)94(ector)]TJ/F8 9.9626 Tf -25.091 -18.389 Td [(This)-333(function)-334(computes)-333(the)-333(2-norm)-334(of)-333(a)-333(v)27(ector)]TJ/F11 9.9626 Tf 207.168 0 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(.)]TJ -212.862 -11.956 Td [(If)]TJ/F11 9.9626 Tf 9.963 0 Td [(x)]TJ/F8 9.9626 Tf 9.015 0 Td [(is)-333(a)-334(real)-333(v)28(ector)-334(it)-333(computes)-333(2-norm)-334(as:)]TJ/F11 9.9626 Tf 119.906 -21.496 Td [(nr)-28(m)]TJ/F8 9.9626 Tf 19.499 0 Td [(2)]TJ/F14 9.9626 Tf 7.749 0 Td [(\040)]TJ 12.73 9.34 Td [(p)]TJ -ET -q -1 0 0 1 287.059 663.827 cm -[]0 d 0 J 0.398 w 0 0 m 17.664 0 l S -Q -BT -/F11 9.9626 Tf 287.059 654.288 Td [(x)]TJ/F10 6.9738 Tf 5.694 2.878 Td [(T)]TJ/F11 9.9626 Tf 6.276 -2.878 Td [(x)]TJ/F8 9.9626 Tf -199.134 -20.381 Td [(else)-333(if)]TJ/F11 9.9626 Tf 28.006 0 Td [(x)]TJ/F8 9.9626 Tf 9.015 0 Td [(is)-333(a)-334(complex)-333(v)28(ector)-334(then)-333(it)-333(computes)-334(2-norm)-333(as:)]TJ/F11 9.9626 Tf 101.223 -21.496 Td [(nr)-28(m)]TJ/F8 9.9626 Tf 19.499 0 Td [(2)]TJ/F14 9.9626 Tf 7.748 0 Td [(\040)]TJ 12.73 9.339 Td [(p)]TJ -ET -q -1 0 0 1 286.419 621.949 cm -[]0 d 0 J 0.398 w 0 0 m 18.944 0 l S -Q -BT -/F11 9.9626 Tf 286.419 612.411 Td [(x)]TJ/F10 6.9738 Tf 5.694 2.878 Td [(H)]TJ/F11 9.9626 Tf 7.556 -2.878 Td [(x)]TJ +/F16 11.9552 Tf 175.796 706.129 Td [(geasums)-375(|)-375(Generalized)-375(1-Norm)-375(of)-375(V)94(ector)]TJ/F8 9.9626 Tf -25.091 -19.22 Td [(This)-310(subroutine)-310(computes)-309(a)-310(series)-310(of)-310(1-norms)-310(on)-310(the)-309(c)-1(olu)1(m)-1(n)1(s)-310(of)-310(a)-310(dense)-310(matrix)]TJ/F11 9.9626 Tf 0 -11.955 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(:)]TJ/F11 9.9626 Tf 119.512 -13.293 Td [(r)-28(es)]TJ/F8 9.9626 Tf 14.081 0 Td [(\050)]TJ/F11 9.9626 Tf 3.874 0 Td [(i)]TJ/F8 9.9626 Tf 3.432 0 Td [(\051)]TJ/F14 9.9626 Tf 6.642 0 Td [(\040)]TJ/F8 9.9626 Tf 12.73 0 Td [(max)]TJ/F10 6.9738 Tf 7.069 -6.503 Td [(k)]TJ/F14 9.9626 Tf 13.133 6.503 Td [(j)]TJ/F11 9.9626 Tf 2.767 0 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(\050)]TJ/F11 9.9626 Tf 3.875 0 Td [(k)-31(;)-167(i)]TJ/F8 9.9626 Tf 13.36 0 Td [(\051)]TJ/F14 9.9626 Tf 3.874 0 Td [(j)]TJ/F8 9.9626 Tf -215.737 -22.73 Td [(This)-333(function)-334(computes)-333(the)-333(1-norm)-334(of)-333(a)-333(v)28(ec)-1(tor)]TJ/F11 9.9626 Tf 207.168 0 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(.)]TJ -212.862 -11.955 Td [(If)]TJ/F11 9.9626 Tf 9.963 0 Td [(x)]TJ/F8 9.9626 Tf 9.014 0 Td [(is)-333(a)-334(real)-333(v)28(ector)-334(it)-333(computes)-333(1-norm)-334(as:)]TJ/F11 9.9626 Tf 123.012 -22.81 Td [(r)-28(es)]TJ/F8 9.9626 Tf 14.081 0 Td [(\050)]TJ/F11 9.9626 Tf 3.874 0 Td [(i)]TJ/F8 9.9626 Tf 3.432 0 Td [(\051)]TJ/F14 9.9626 Tf 6.642 0 Td [(\040)-278(k)]TJ/F11 9.9626 Tf 17.711 0 Td [(x)]TJ/F10 6.9738 Tf 5.694 -1.495 Td [(i)]TJ/F14 9.9626 Tf 3.317 1.495 Td [(k)]TJ/F8 9.9626 Tf -196.74 -22.81 Td [(else)-333(if)]TJ/F11 9.9626 Tf 28.006 0 Td [(x)]TJ/F8 9.9626 Tf 9.015 0 Td [(is)-333(a)-334(complex)-333(v)28(ector)-334(then)-333(it)-333(computes)-334(1-norm)-333(as:)]TJ/F11 9.9626 Tf 69.697 -22.81 Td [(r)-28(es)]TJ/F8 9.9626 Tf 14.081 0 Td [(\050)]TJ/F11 9.9626 Tf 3.874 0 Td [(i)]TJ/F8 9.9626 Tf 3.432 0 Td [(\051)]TJ/F14 9.9626 Tf 6.642 0 Td [(\040)-278(k)]TJ/F11 9.9626 Tf 17.711 0 Td [(r)-28(e)]TJ/F8 9.9626 Tf 9.411 0 Td [(\050)]TJ/F11 9.9626 Tf 3.874 0 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(\051)]TJ/F14 9.9626 Tf 3.874 0 Td [(k)]TJ/F7 6.9738 Tf 4.982 -1.494 Td [(1)]TJ/F8 9.9626 Tf 6.683 1.494 Td [(+)]TJ/F14 9.9626 Tf 9.962 0 Td [(k)]TJ/F11 9.9626 Tf 4.982 0 Td [(im)]TJ/F8 9.9626 Tf 12.179 0 Td [(\050)]TJ/F11 9.9626 Tf 3.875 0 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(\051)]TJ/F14 9.9626 Tf 3.874 0 Td [(k)]TJ/F7 6.9738 Tf 4.981 -1.494 Td [(1)]TJ +0 g 0 G +0 g 0 G +/F30 9.9626 Tf -232.523 -21.762 Td [(call)-525(psb_geasums\050res,)-525(x,)-525(desc_a,)-525(info\051)]TJ 0 g 0 G 0 g 0 G 0 g 0 G ET q -1 0 0 1 129.484 592.22 cm -[]0 d 0 J 0.398 w 0 0 m 284.534 0 l S +1 0 0 1 178.071 508.729 cm +[]0 d 0 J 0.398 w 0 0 m 288.979 0 l S Q BT -/F11 9.9626 Tf 135.462 583.652 Td [(nr)-28(m)]TJ/F8 9.9626 Tf 19.499 0 Td [(2)]TJ/F11 9.9626 Tf 81.954 0 Td [(x)]TJ/F27 9.9626 Tf 120.41 0 Td [(F)96(unction)]TJ +/F11 9.9626 Tf 184.049 500.161 Td [(r)-28(es)-8770(x)]TJ/F27 9.9626 Tf 221.862 0 Td [(Subroutine)]TJ ET q -1 0 0 1 129.484 579.866 cm -[]0 d 0 J 0.398 w 0 0 m 284.534 0 l S +1 0 0 1 178.071 496.375 cm +[]0 d 0 J 0.398 w 0 0 m 288.979 0 l S Q BT -/F8 9.9626 Tf 135.462 571.298 Td [(Short)-333(Precision)-334(Real)-1200(Sh)1(ort)-334(Precision)-333(Real)-3103(psb)]TJ +/F8 9.9626 Tf 184.049 487.807 Td [(Short)-333(Precision)-333(R)-1(eal)-1200(S)1(hort)-334(Precision)-333(Real)-3103(psb)]TJ ET q -1 0 0 1 372.922 571.497 cm +1 0 0 1 421.508 488.007 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 375.911 571.298 Td [(genrm2)]TJ -240.449 -11.955 Td [(Long)-333(Precision)-334(Real)-1411(Long)-333(Precision)-333(Real)-3314(psb)]TJ +/F8 9.9626 Tf 424.497 487.807 Td [(geasums)]TJ -240.448 -11.955 Td [(Long)-333(Precision)-334(Real)-1411(Long)-333(Precision)-333(Real)-3314(psb)]TJ ET q -1 0 0 1 372.922 559.542 cm +1 0 0 1 421.508 476.051 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 375.911 559.343 Td [(genrm2)]TJ -240.449 -11.955 Td [(Short)-333(Precision)-334(Real)-1200(Sh)1(ort)-334(Precision)-333(Complex)-1200(psb)]TJ +/F8 9.9626 Tf 424.497 475.852 Td [(geasums)]TJ -240.448 -11.955 Td [(Short)-333(Precision)-333(R)-1(eal)-1200(S)1(hort)-334(Precision)-333(Complex)-1200(psb)]TJ ET q -1 0 0 1 372.922 547.587 cm +1 0 0 1 421.508 464.096 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 375.911 547.388 Td [(genrm2)]TJ -240.449 -11.955 Td [(Long)-333(Precision)-334(Real)-1411(Long)-333(Precision)-333(Complex)-1412(p)1(s)-1(b)]TJ +/F8 9.9626 Tf 424.497 463.897 Td [(geasums)]TJ -240.448 -11.955 Td [(Long)-333(Precision)-334(Real)-1411(Long)-333(Precision)-333(Complex)-1412(p)1(s)-1(b)]TJ ET q -1 0 0 1 372.922 535.632 cm +1 0 0 1 421.508 452.141 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 375.911 535.433 Td [(genrm2)]TJ +/F8 9.9626 Tf 424.497 451.942 Td [(geasums)]TJ ET q -1 0 0 1 129.484 531.647 cm -[]0 d 0 J 0.398 w 0 0 m 284.534 0 l S +1 0 0 1 178.071 448.156 cm +[]0 d 0 J 0.398 w 0 0 m 288.979 0 l S Q 0 g 0 G BT -/F8 9.9626 Tf 228.067 503.608 Td [(T)83(able)-333(8:)-444(Data)-334(t)28(yp)-28(es)]TJ -0 g 0 G -0 g 0 G +/F8 9.9626 Tf 278.877 420.117 Td [(T)83(able)-333(7:)-444(Data)-334(t)28(yp)-28(es)]TJ 0 g 0 G 0 g 0 G -/F30 9.9626 Tf -128.172 -33.435 Td [(psb_genrm2\050x,)-525(desc_a,)-525(info\051)]TJ 0 -11.955 Td [(psb_norm2\050x,)-525(desc_a,)-525(info\051)]TJ 0 g 0 G -/F27 9.9626 Tf 0 -20.382 Td [(T)32(yp)-32(e:)]TJ +/F27 9.9626 Tf -128.172 -35.827 Td [(T)32(yp)-32(e:)]TJ 0 g 0 G /F8 9.9626 Tf 33.797 0 Td [(Sync)28(hronous.)]TJ 0 g 0 G -/F27 9.9626 Tf -33.797 -19.31 Td [(On)-383(En)32(try)]TJ +/F27 9.9626 Tf -33.797 -21.709 Td [(On)-383(En)32(try)]TJ 0 g 0 G 0 g 0 G - 0 -19.311 Td [(x)]TJ + 0 -21.71 Td [(x)]TJ 0 g 0 G -/F8 9.9626 Tf 11.028 0 Td [(the)-333(lo)-28(cal)-333(p)-28(ortion)-333(of)-334(global)-333(dense)-333(matrix)]TJ/F11 9.9626 Tf 176.118 0 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(.)]TJ -167.933 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.956 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-255(as:)-405(a)-255(rank)-254(one)-255(or)-255(t)28(w)27(o)-254(arra)27(y)-254(or)-255(an)-255(ob)-55(jec)-1(t)-254(of)-255(t)28(yp)-28(e)]TJ +/F8 9.9626 Tf 11.028 0 Td [(the)-333(lo)-28(cal)-333(p)-28(ortion)-333(of)-334(global)-333(dense)-333(matrix)]TJ/F11 9.9626 Tf 176.118 0 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(.)]TJ -167.933 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.378 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.378 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.485 0 Td [(in)]TJ/F8 9.9626 Tf 9.548 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-255(as:)-405(a)-255(rank)-254(one)-255(or)-255(t)28(w)28(o)-255(arra)28(y)-255(or)-255(an)-255(ob)-55(ject)-255(of)-255(t)28(yp)-28(e)]TJ 0 0 1 rg 0 0 1 RG -/F30 9.9626 Tf 244.743 0 Td [(psb)]TJ +/F30 9.9626 Tf 244.742 0 Td [(psb)]TJ ET q -1 0 0 1 385.864 351.593 cm +1 0 0 1 436.673 293.25 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 389.002 351.394 Td [(T)]TJ +/F30 9.9626 Tf 439.811 293.051 Td [(T)]TJ ET q -1 0 0 1 394.86 351.593 cm +1 0 0 1 445.669 293.25 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 397.998 351.394 Td [(vect)]TJ +/F30 9.9626 Tf 448.807 293.051 Td [(vect)]TJ ET q -1 0 0 1 419.547 351.593 cm +1 0 0 1 470.356 293.25 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 422.685 351.394 Td [(type)]TJ +/F30 9.9626 Tf 473.495 293.051 Td [(type)]TJ 0 g 0 G -/F8 9.9626 Tf -297.883 -11.955 Td [(con)28(taining)-333(n)27(um)28(b)-28(ers)-333(of)-333(t)28(yp)-28(e)-334(sp)-27(eci\014ed)-334(in)-333(T)83(able)]TJ +/F8 9.9626 Tf -297.884 -11.956 Td [(con)28(taining)-333(n)27(um)28(b)-28(ers)-333(of)-333(t)27(yp)-27(e)-334(sp)-27(ec)-1(i)1(\014ed)-334(in)-333(T)83(able)]TJ 0 0 1 rg 0 0 1 RG - [-333(8)]TJ + [-333(7)]TJ 0 g 0 G [(.)]TJ 0 g 0 G -/F27 9.9626 Tf -24.907 -19.311 Td [(desc)]TJ +/F27 9.9626 Tf -24.906 -21.709 Td [(desc)]TJ ET q -1 0 0 1 121.81 320.328 cm +1 0 0 1 172.619 259.585 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 125.247 320.128 Td [(a)]TJ +/F27 9.9626 Tf 176.057 259.386 Td [(a)]TJ 0 g 0 G -/F8 9.9626 Tf 10.551 0 Td [(con)28(tains)-334(d)1(ata)-334(structures)-333(for)-333(com)-1(m)28(unications.)]TJ -10.996 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(ob)-55(ject)-334(of)-333(t)28(yp)-28(e)]TJ +/F8 9.9626 Tf 10.55 0 Td [(con)28(tains)-334(data)-333(structures)-333(for)-333(c)-1(omm)28(unications.)]TJ -10.996 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.612 0 Td [(required)]TJ/F8 9.9626 Tf -29.612 -11.956 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.548 0 Td [(.)]TJ -43.034 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(ob)-55(ject)-334(of)-333(t)28(yp)-28(e)]TJ 0 0 1 rg 0 0 1 RG -/F30 9.9626 Tf 135.658 0 Td [(psb)]TJ +/F30 9.9626 Tf 135.659 0 Td [(psb)]TJ ET q -1 0 0 1 276.779 272.507 cm +1 0 0 1 327.588 211.765 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 279.917 272.308 Td [(desc)]TJ +/F30 9.9626 Tf 330.727 211.565 Td [(desc)]TJ ET q -1 0 0 1 301.466 272.507 cm +1 0 0 1 352.275 211.765 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 304.604 272.308 Td [(type)]TJ +/F30 9.9626 Tf 355.414 211.565 Td [(type)]TJ 0 g 0 G -/F8 9.9626 Tf 20.922 0 Td [(.)]TJ +/F8 9.9626 Tf 20.921 0 Td [(.)]TJ 0 g 0 G -/F27 9.9626 Tf -225.631 -19.311 Td [(On)-383(Return)]TJ +/F27 9.9626 Tf -225.63 -21.709 Td [(On)-383(Return)]TJ 0 g 0 G 0 g 0 G - 0 -19.311 Td [(F)96(unction)-384(V)96(alue)]TJ + 0 -21.71 Td [(res)]TJ 0 g 0 G -/F8 9.9626 Tf 80.684 0 Td [(is)-333(the)-334(2-norm)-333(of)-333(sub)28(v)27(ector)]TJ/F11 9.9626 Tf 117.503 0 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(.)]TJ -178.974 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.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 [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(long)-333(precision)-333(real)-334(n)28(um)28(b)-28(er.)]TJ +/F8 9.9626 Tf 19.47 0 Td [(con)28(tains)-334(th)1(e)-334(1-norm)-333(of)-333(\050the)-334(columns)-333(of)-78(\051)]TJ/F11 9.9626 Tf 177.75 0 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(.)]TJ -178.008 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(global)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(out)]TJ/F8 9.9626 Tf 16.549 0 Td [(.)]TJ -50.035 -11.955 Td [(Short)-324(as:)-440(a)-324(long)-324(precision)-325(r)1(e)-1(al)-324(n)28(um)28(b)-28(er.)-441(Sp)-28(eci\014ed)-324(as:)-440(a)-324(long)-324(precision)-325(real)]TJ 0 -11.955 Td [(n)28(um)28(b)-28(er.)]TJ 0 g 0 G -/F27 9.9626 Tf -24.907 -19.311 Td [(info)]TJ + 141.968 -29.888 Td [(38)]TJ +0 g 0 G +ET + +endstream +endobj +1051 0 obj +<< +/Length 624 +>> +stream +0 g 0 G +0 g 0 G +0 g 0 G +BT +/F27 9.9626 Tf 99.895 706.129 Td [(info)]TJ 0 g 0 G /F8 9.9626 Tf 23.758 0 Td [(Error)-333(co)-28(de.)]TJ 1.149 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.956 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(out)]TJ/F8 9.9626 Tf 16.549 0 Td [(.)]TJ -50.035 -11.955 Td [(An)-333(in)28(tege)-1(r)-333(v)56(alue;)-334(0)-333(means)-333(no)-334(error)-333(has)-333(b)-28(een)-333(detecte)-1(d)1(.)]TJ 0 g 0 G - 141.968 -40.251 Td [(39)]TJ + 141.968 -567.87 Td [(39)]TJ 0 g 0 G ET endstream endobj -1053 0 obj +1058 0 obj << -/Length 6162 +/Length 6754 >> stream 0 g 0 G @@ -9817,155 +9724,169 @@ q []0 d 0 J 0.398 w 0 0 m 4.035 0 l S Q BT -/F16 11.9552 Tf 175.796 706.129 Td [(genrm2s)-375(|)-375(Generalized)-375(2-Norm)-375(of)-375(V)94(ector)]TJ/F8 9.9626 Tf -25.091 -18.389 Td [(This)-310(subroutine)-310(computes)-309(a)-310(series)-310(of)-310(2-norms)-310(on)-310(the)-309(c)-1(olu)1(m)-1(n)1(s)-310(of)-310(a)-310(dense)-310(matrix)]TJ/F11 9.9626 Tf 0 -11.956 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(:)]TJ/F11 9.9626 Tf 126.531 -11.955 Td [(r)-28(es)]TJ/F8 9.9626 Tf 14.08 0 Td [(\050)]TJ/F11 9.9626 Tf 3.875 0 Td [(i)]TJ/F8 9.9626 Tf 3.432 0 Td [(\051)]TJ/F14 9.9626 Tf 6.642 0 Td [(\040)-278(k)]TJ/F11 9.9626 Tf 17.711 0 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(\050:)]TJ/F11 9.9626 Tf 6.642 0 Td [(;)-167(i)]TJ/F8 9.9626 Tf 7.86 0 Td [(\051)]TJ/F14 9.9626 Tf 3.874 0 Td [(k)]TJ/F7 6.9738 Tf 4.981 -1.494 Td [(2)]TJ -0 g 0 G -0 g 0 G -/F30 9.9626 Tf -207.016 -20.424 Td [(call)-525(psb_genrm2s\050res,)-525(x,)-525(desc_a,)-525(info\051)]TJ +/F16 11.9552 Tf 175.796 706.129 Td [(norm2)-375(|)-375(2-Norm)-375(of)-375(V)94(ector)]TJ/F8 9.9626 Tf -25.091 -18.389 Td [(This)-333(function)-334(computes)-333(the)-333(2-norm)-334(of)-333(a)-333(v)28(ec)-1(tor)]TJ/F11 9.9626 Tf 207.168 0 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(.)]TJ -212.862 -11.956 Td [(If)]TJ/F11 9.9626 Tf 9.963 0 Td [(x)]TJ/F8 9.9626 Tf 9.014 0 Td [(is)-333(a)-334(real)-333(v)28(ector)-334(it)-333(computes)-333(2-norm)-334(as:)]TJ/F11 9.9626 Tf 119.907 -21.496 Td [(nr)-28(m)]TJ/F8 9.9626 Tf 19.498 0 Td [(2)]TJ/F14 9.9626 Tf 7.749 0 Td [(\040)]TJ 12.73 9.34 Td [(p)]TJ +ET +q +1 0 0 1 337.868 663.827 cm +[]0 d 0 J 0.398 w 0 0 m 17.664 0 l S +Q +BT +/F11 9.9626 Tf 337.868 654.288 Td [(x)]TJ/F10 6.9738 Tf 5.694 2.878 Td [(T)]TJ/F11 9.9626 Tf 6.276 -2.878 Td [(x)]TJ/F8 9.9626 Tf -199.133 -20.381 Td [(else)-333(if)]TJ/F11 9.9626 Tf 28.006 0 Td [(x)]TJ/F8 9.9626 Tf 9.015 0 Td [(is)-333(a)-334(complex)-333(v)28(ector)-334(then)-333(it)-333(computes)-334(2-norm)-333(as:)]TJ/F11 9.9626 Tf 101.222 -21.496 Td [(nr)-28(m)]TJ/F8 9.9626 Tf 19.499 0 Td [(2)]TJ/F14 9.9626 Tf 7.749 0 Td [(\040)]TJ 12.73 9.339 Td [(p)]TJ +ET +q +1 0 0 1 337.228 621.949 cm +[]0 d 0 J 0.398 w 0 0 m 18.944 0 l S +Q +BT +/F11 9.9626 Tf 337.228 612.411 Td [(x)]TJ/F10 6.9738 Tf 5.694 2.878 Td [(H)]TJ/F11 9.9626 Tf 7.556 -2.878 Td [(x)]TJ 0 g 0 G 0 g 0 G 0 g 0 G ET q -1 0 0 1 178.071 617.58 cm -[]0 d 0 J 0.398 w 0 0 m 288.979 0 l S +1 0 0 1 180.294 592.22 cm +[]0 d 0 J 0.398 w 0 0 m 284.534 0 l S Q BT -/F11 9.9626 Tf 184.049 609.013 Td [(r)-28(es)-8770(x)]TJ/F27 9.9626 Tf 221.862 0 Td [(Subroutine)]TJ +/F11 9.9626 Tf 186.271 583.652 Td [(nr)-28(m)]TJ/F8 9.9626 Tf 19.499 0 Td [(2)]TJ/F11 9.9626 Tf 81.954 0 Td [(x)]TJ/F27 9.9626 Tf 120.41 0 Td [(F)96(unction)]TJ ET q -1 0 0 1 178.071 605.227 cm -[]0 d 0 J 0.398 w 0 0 m 288.979 0 l S +1 0 0 1 180.294 579.866 cm +[]0 d 0 J 0.398 w 0 0 m 284.534 0 l S Q BT -/F8 9.9626 Tf 184.049 596.659 Td [(Short)-333(Precision)-333(R)-1(eal)-1200(S)1(hort)-334(Precision)-333(Real)-3103(psb)]TJ +/F8 9.9626 Tf 186.271 571.298 Td [(Short)-333(Precision)-334(Real)-1200(Shor)1(t)-334(Precision)-333(Real)-3103(psb)]TJ ET q -1 0 0 1 421.508 596.858 cm +1 0 0 1 423.731 571.497 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 424.497 596.659 Td [(genrm2s)]TJ -240.448 -11.955 Td [(Long)-333(Precision)-334(Real)-1411(Long)-333(Precision)-333(Real)-3314(psb)]TJ +/F8 9.9626 Tf 426.72 571.298 Td [(genrm2)]TJ -240.449 -11.955 Td [(Long)-333(Precision)-334(Real)-1411(Long)-333(Precision)-333(Real)-3314(psb)]TJ ET q -1 0 0 1 421.508 584.903 cm +1 0 0 1 423.731 559.542 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 424.497 584.704 Td [(genrm2s)]TJ -240.448 -11.955 Td [(Short)-333(Precision)-333(R)-1(eal)-1200(S)1(hort)-334(Precision)-333(Complex)-1200(psb)]TJ +/F8 9.9626 Tf 426.72 559.343 Td [(genrm2)]TJ -240.449 -11.955 Td [(Short)-333(Precision)-334(Real)-1200(Short)-333(Precision)-333(Complex)-1200(psb)]TJ ET q -1 0 0 1 421.508 572.948 cm +1 0 0 1 423.731 547.587 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 424.497 572.749 Td [(genrm2s)]TJ -240.448 -11.956 Td [(Long)-333(Precision)-334(Real)-1411(Long)-333(Precision)-333(Complex)-1412(p)1(s)-1(b)]TJ +/F8 9.9626 Tf 426.72 547.388 Td [(genrm2)]TJ -240.449 -11.955 Td [(Long)-333(Precision)-334(Real)-1411(Long)-333(Precision)-333(Complex)-1412(psb)]TJ ET q -1 0 0 1 421.508 560.993 cm +1 0 0 1 423.731 535.632 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 424.497 560.793 Td [(genrm2s)]TJ +/F8 9.9626 Tf 426.72 535.433 Td [(genrm2)]TJ ET q -1 0 0 1 178.071 557.008 cm -[]0 d 0 J 0.398 w 0 0 m 288.979 0 l S +1 0 0 1 180.294 531.647 cm +[]0 d 0 J 0.398 w 0 0 m 284.534 0 l S Q 0 g 0 G BT -/F8 9.9626 Tf 278.877 528.968 Td [(T)83(able)-333(9:)-444(Data)-334(t)28(yp)-28(es)]TJ +/F8 9.9626 Tf 278.877 503.608 Td [(T)83(able)-333(8:)-444(Data)-334(t)28(yp)-28(es)]TJ 0 g 0 G 0 g 0 G 0 g 0 G -/F27 9.9626 Tf -128.172 -33.596 Td [(T)32(yp)-32(e:)]TJ +0 g 0 G +/F30 9.9626 Tf -128.172 -33.435 Td [(psb_genrm2\050x,)-525(desc_a,)-525(info\051)]TJ 0 -11.955 Td [(psb_norm2\050x,)-525(desc_a,)-525(info\051)]TJ +0 g 0 G +/F27 9.9626 Tf 0 -20.382 Td [(T)32(yp)-32(e:)]TJ 0 g 0 G /F8 9.9626 Tf 33.797 0 Td [(Sync)28(hronous.)]TJ 0 g 0 G -/F27 9.9626 Tf -33.797 -19.925 Td [(On)-383(En)32(try)]TJ +/F27 9.9626 Tf -33.797 -19.31 Td [(On)-383(En)32(try)]TJ 0 g 0 G 0 g 0 G - 0 -19.926 Td [(x)]TJ + 0 -19.311 Td [(x)]TJ 0 g 0 G -/F8 9.9626 Tf 11.028 0 Td [(the)-333(lo)-28(cal)-333(p)-28(ortion)-333(of)-334(global)-333(dense)-333(matrix)]TJ/F11 9.9626 Tf 176.118 0 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(.)]TJ -167.933 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.378 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.378 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.485 0 Td [(in)]TJ/F8 9.9626 Tf 9.548 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-255(as:)-405(a)-255(rank)-254(one)-255(or)-255(t)28(w)28(o)-255(arra)28(y)-255(or)-255(an)-255(ob)-55(ject)-255(of)-255(t)28(yp)-28(e)]TJ +/F8 9.9626 Tf 11.028 0 Td [(the)-333(lo)-28(cal)-333(p)-28(ortion)-333(of)-334(global)-333(dense)-333(matrix)]TJ/F11 9.9626 Tf 176.118 0 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(.)]TJ -167.933 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.378 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.378 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.956 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.485 0 Td [(in)]TJ/F8 9.9626 Tf 9.548 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-255(as:)-405(a)-255(rank)-254(one)-255(or)-255(t)28(w)28(o)-255(arra)28(y)-255(or)-255(an)-255(ob)-55(ject)-255(of)-255(t)28(yp)-28(e)]TJ 0 0 1 rg 0 0 1 RG /F30 9.9626 Tf 244.742 0 Td [(psb)]TJ ET q -1 0 0 1 436.673 407.9 cm +1 0 0 1 436.673 351.593 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 439.811 407.701 Td [(T)]TJ +/F30 9.9626 Tf 439.811 351.394 Td [(T)]TJ ET q -1 0 0 1 445.669 407.9 cm +1 0 0 1 445.669 351.593 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 448.807 407.701 Td [(vect)]TJ +/F30 9.9626 Tf 448.807 351.394 Td [(vect)]TJ ET q -1 0 0 1 470.356 407.9 cm +1 0 0 1 470.356 351.593 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 473.495 407.701 Td [(type)]TJ +/F30 9.9626 Tf 473.495 351.394 Td [(type)]TJ 0 g 0 G /F8 9.9626 Tf -297.884 -11.955 Td [(con)28(taining)-333(n)27(um)28(b)-28(ers)-333(of)-333(t)27(yp)-27(e)-334(sp)-27(ec)-1(i)1(\014ed)-334(in)-333(T)83(able)]TJ 0 0 1 rg 0 0 1 RG - [-333(9)]TJ + [-333(8)]TJ 0 g 0 G [(.)]TJ 0 g 0 G -/F27 9.9626 Tf -24.906 -19.926 Td [(desc)]TJ +/F27 9.9626 Tf -24.906 -19.311 Td [(desc)]TJ ET q -1 0 0 1 172.619 376.02 cm +1 0 0 1 172.619 320.328 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 176.057 375.82 Td [(a)]TJ +/F27 9.9626 Tf 176.057 320.128 Td [(a)]TJ 0 g 0 G /F8 9.9626 Tf 10.55 0 Td [(con)28(tains)-334(data)-333(structures)-333(for)-333(c)-1(omm)28(unications.)]TJ -10.996 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.612 0 Td [(required)]TJ/F8 9.9626 Tf -29.612 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.548 0 Td [(.)]TJ -43.034 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(ob)-55(ject)-334(of)-333(t)28(yp)-28(e)]TJ 0 0 1 rg 0 0 1 RG /F30 9.9626 Tf 135.659 0 Td [(psb)]TJ ET q -1 0 0 1 327.588 328.199 cm +1 0 0 1 327.588 272.507 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 330.727 328 Td [(desc)]TJ +/F30 9.9626 Tf 330.727 272.308 Td [(desc)]TJ ET q -1 0 0 1 352.275 328.199 cm +1 0 0 1 352.275 272.507 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 355.414 328 Td [(type)]TJ +/F30 9.9626 Tf 355.414 272.308 Td [(type)]TJ 0 g 0 G /F8 9.9626 Tf 20.921 0 Td [(.)]TJ 0 g 0 G -/F27 9.9626 Tf -225.63 -19.926 Td [(On)-383(Return)]TJ +/F27 9.9626 Tf -225.63 -19.311 Td [(On)-383(Return)]TJ 0 g 0 G 0 g 0 G - 0 -19.925 Td [(res)]TJ + 0 -19.311 Td [(F)96(unction)-384(V)96(alue)]TJ 0 g 0 G -/F8 9.9626 Tf 19.47 0 Td [(con)28(tains)-334(th)1(e)-334(1-norm)-333(of)-333(\050the)-334(columns)-333(of)-78(\051)]TJ/F11 9.9626 Tf 177.75 0 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(.)]TJ -178.008 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(global)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(out)]TJ/F8 9.9626 Tf 16.549 0 Td [(.)]TJ -50.035 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(long)-333(precision)-334(r)1(e)-1(al)-333(n)28(um)28(b)-28(er.)]TJ +/F8 9.9626 Tf 80.683 0 Td [(is)-333(the)-334(2-norm)-333(of)-333(sub)27(v)28(ector)]TJ/F11 9.9626 Tf 117.504 0 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(.)]TJ -178.974 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.378 0 Td [(global)]TJ/F8 9.9626 Tf -32.378 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-444(a)-334(long)-333(precision)-333(real)-334(n)28(um)28(b)-28(er.)]TJ 0 g 0 G -/F27 9.9626 Tf -24.906 -19.926 Td [(info)]TJ +/F27 9.9626 Tf -24.907 -19.311 Td [(info)]TJ 0 g 0 G -/F8 9.9626 Tf 23.758 0 Td [(Error)-333(co)-28(de.)]TJ 1.148 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.612 0 Td [(required)]TJ/F8 9.9626 Tf -29.612 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(out)]TJ/F8 9.9626 Tf 16.549 0 Td [(.)]TJ -50.035 -11.955 Td [(An)-333(in)28(te)-1(ger)-333(v)56(alue;)-334(0)-333(means)-333(no)-334(error)-333(has)-333(b)-28(een)-333(detec)-1(ted.)]TJ +/F8 9.9626 Tf 23.758 0 Td [(Error)-333(co)-28(de.)]TJ 1.149 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.378 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.378 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.956 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.485 0 Td [(out)]TJ/F8 9.9626 Tf 16.549 0 Td [(.)]TJ -50.034 -11.955 Td [(An)-333(in)28(teger)-334(v)56(alue;)-334(0)-333(means)-333(no)-334(error)-333(has)-333(b)-28(een)-333(detected.)]TJ 0 g 0 G - 141.968 -94.1 Td [(40)]TJ + 141.967 -40.251 Td [(40)]TJ 0 g 0 G ET endstream endobj -1060 0 obj +1066 0 obj << -/Length 5516 +/Length 6130 >> stream 0 g 0 G @@ -9978,148 +9899,155 @@ q []0 d 0 J 0.398 w 0 0 m 4.035 0 l S Q BT -/F16 11.9552 Tf 124.986 706.129 Td [(norm1)-375(|)-375(1-Norm)-375(of)-375(Sparse)-375(Matrix)]TJ/F8 9.9626 Tf -25.091 -18.389 Td [(This)-333(function)-334(computes)-333(the)-333(1-norm)-334(of)-333(a)-333(matrix)]TJ/F11 9.9626 Tf 209.659 0 Td [(A)]TJ/F8 9.9626 Tf 7.472 0 Td [(:)]TJ/F11 9.9626 Tf -76.216 -33.873 Td [(nr)-28(m)]TJ/F8 9.9626 Tf 19.499 0 Td [(1)]TJ/F14 9.9626 Tf 7.749 0 Td [(\040)-278(k)]TJ/F11 9.9626 Tf 17.711 0 Td [(A)]TJ/F14 9.9626 Tf 7.472 0 Td [(k)]TJ/F7 6.9738 Tf 4.981 -1.495 Td [(1)]TJ/F8 9.9626 Tf -198.327 -20.423 Td [(where:)]TJ +/F16 11.9552 Tf 124.986 706.129 Td [(genrm2s)-375(|)-375(Generalized)-375(2-Norm)-375(of)-375(V)94(ector)]TJ/F8 9.9626 Tf -25.091 -18.389 Td [(This)-310(subroutine)-310(computes)-309(a)-310(series)-310(of)-310(2-norms)-310(on)-310(the)-310(columns)-309(of)-310(a)-310(dense)-310(matrix)]TJ/F11 9.9626 Tf 0 -11.956 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(:)]TJ/F11 9.9626 Tf 126.531 -11.955 Td [(r)-28(es)]TJ/F8 9.9626 Tf 14.081 0 Td [(\050)]TJ/F11 9.9626 Tf 3.874 0 Td [(i)]TJ/F8 9.9626 Tf 3.432 0 Td [(\051)]TJ/F14 9.9626 Tf 6.642 0 Td [(\040)-278(k)]TJ/F11 9.9626 Tf 17.711 0 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(\050:)]TJ/F11 9.9626 Tf 6.642 0 Td [(;)-167(i)]TJ/F8 9.9626 Tf 7.86 0 Td [(\051)]TJ/F14 9.9626 Tf 3.875 0 Td [(k)]TJ/F7 6.9738 Tf 4.981 -1.494 Td [(2)]TJ 0 g 0 G -/F11 9.9626 Tf 0 -19.926 Td [(A)]TJ 0 g 0 G -/F8 9.9626 Tf 12.454 0 Td [(represen)28(ts)-334(the)-333(global)-333(matrix)]TJ/F11 9.9626 Tf 125.834 0 Td [(A)]TJ +/F30 9.9626 Tf -207.017 -20.424 Td [(call)-525(psb_genrm2s\050res,)-525(x,)-525(desc_a,)-525(info\051)]TJ 0 g 0 G 0 g 0 G 0 g 0 G ET q -1 0 0 1 180.183 589.962 cm -[]0 d 0 J 0.398 w 0 0 m 183.136 0 l S +1 0 0 1 127.261 617.58 cm +[]0 d 0 J 0.398 w 0 0 m 288.979 0 l S Q BT -/F11 9.9626 Tf 186.161 581.394 Td [(A)]TJ/F27 9.9626 Tf 120.409 0 Td [(F)96(unction)]TJ +/F11 9.9626 Tf 133.239 609.013 Td [(r)-28(es)-8770(x)]TJ/F27 9.9626 Tf 221.863 0 Td [(Subroutine)]TJ ET q -1 0 0 1 180.183 577.608 cm -[]0 d 0 J 0.398 w 0 0 m 183.136 0 l S +1 0 0 1 127.261 605.227 cm +[]0 d 0 J 0.398 w 0 0 m 288.979 0 l S Q BT -/F8 9.9626 Tf 186.161 569.04 Td [(Short)-333(Precision)-334(Real)-3102(psb)]TJ +/F8 9.9626 Tf 133.239 596.659 Td [(Short)-333(Precision)-334(Real)-1200(Shor)1(t)-334(Precision)-333(Real)-3103(psb)]TJ ET q -1 0 0 1 322.167 569.24 cm +1 0 0 1 370.699 596.858 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 325.156 569.04 Td [(spnrm1)]TJ -138.995 -11.955 Td [(Long)-333(Precision)-334(Real)-3314(p)1(s)-1(b)]TJ +/F8 9.9626 Tf 373.688 596.659 Td [(genrm2s)]TJ -240.449 -11.955 Td [(Long)-333(Precision)-334(Real)-1411(Long)-333(Precision)-333(Real)-3314(psb)]TJ ET q -1 0 0 1 322.167 557.284 cm +1 0 0 1 370.699 584.903 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 325.156 557.085 Td [(spnrm1)]TJ -138.995 -11.955 Td [(Short)-333(Precision)-334(Complex)-1200(psb)]TJ +/F8 9.9626 Tf 373.688 584.704 Td [(genrm2s)]TJ -240.449 -11.955 Td [(Short)-333(Precision)-334(Real)-1200(Shor)1(t)-334(Precision)-333(Complex)-1200(psb)]TJ ET q -1 0 0 1 322.167 545.329 cm +1 0 0 1 370.699 572.948 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 325.156 545.13 Td [(spnrm1)]TJ -138.995 -11.955 Td [(Long)-333(Precision)-334(Complex)-1411(psb)]TJ +/F8 9.9626 Tf 373.688 572.749 Td [(genrm2s)]TJ -240.449 -11.956 Td [(Long)-333(Precision)-334(Real)-1411(Long)-333(Precision)-333(Complex)-1412(psb)]TJ ET q -1 0 0 1 322.167 533.374 cm +1 0 0 1 370.699 560.993 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 325.156 533.175 Td [(spnrm1)]TJ +/F8 9.9626 Tf 373.688 560.793 Td [(genrm2s)]TJ ET q -1 0 0 1 180.183 529.389 cm -[]0 d 0 J 0.398 w 0 0 m 183.136 0 l S +1 0 0 1 127.261 557.008 cm +[]0 d 0 J 0.398 w 0 0 m 288.979 0 l S Q 0 g 0 G BT -/F8 9.9626 Tf 225.577 501.35 Td [(T)83(able)-333(10:)-444(Data)-334(t)28(yp)-28(es)]TJ +/F8 9.9626 Tf 228.067 528.968 Td [(T)83(able)-333(9:)-444(Data)-334(t)28(yp)-28(es)]TJ 0 g 0 G 0 g 0 G 0 g 0 G -0 g 0 G -/F30 9.9626 Tf -125.682 -33.873 Td [(psb_spnrm1\050A,)-525(desc_a,)-525(info\051)]TJ 0 -11.956 Td [(psb_norm1\050A,)-525(desc_a,)-525(info\051)]TJ -0 g 0 G -/F27 9.9626 Tf 0 -21.917 Td [(T)32(yp)-32(e:)]TJ +/F27 9.9626 Tf -128.172 -33.596 Td [(T)32(yp)-32(e:)]TJ 0 g 0 G /F8 9.9626 Tf 33.797 0 Td [(Sync)28(hronous.)]TJ 0 g 0 G -/F27 9.9626 Tf -33.797 -19.926 Td [(On)-383(En)32(try)]TJ +/F27 9.9626 Tf -33.797 -19.925 Td [(On)-383(En)32(try)]TJ 0 g 0 G 0 g 0 G - 0 -19.925 Td [(a)]TJ + 0 -19.926 Td [(x)]TJ 0 g 0 G -/F8 9.9626 Tf 10.551 0 Td [(the)-333(lo)-28(cal)-333(p)-28(ortion)-333(of)-334(the)-333(global)-333(sparse)-334(matrix)]TJ/F11 9.9626 Tf 196.126 0 Td [(A)]TJ/F8 9.9626 Tf 7.472 0 Td [(.)]TJ -189.242 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.956 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(ob)-55(ject)-334(of)-333(t)28(yp)-28(e)]TJ +/F8 9.9626 Tf 11.028 0 Td [(the)-333(lo)-28(cal)-333(p)-28(ortion)-333(of)-334(global)-333(dense)-333(matrix)]TJ/F11 9.9626 Tf 176.118 0 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(.)]TJ -167.933 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-255(as:)-405(a)-255(rank)-254(one)-255(or)-255(t)28(w)27(o)-254(arra)27(y)-254(or)-255(an)-255(ob)-55(jec)-1(t)-254(of)-255(t)28(yp)-28(e)]TJ 0 0 1 rg 0 0 1 RG -/F30 9.9626 Tf 135.658 0 Td [(psb)]TJ +/F30 9.9626 Tf 244.743 0 Td [(psb)]TJ ET q -1 0 0 1 276.779 346.132 cm +1 0 0 1 385.864 407.9 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 279.917 345.932 Td [(Tspmat)]TJ +/F30 9.9626 Tf 389.002 407.701 Td [(T)]TJ ET q -1 0 0 1 311.927 346.132 cm +1 0 0 1 394.86 407.9 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 315.065 345.932 Td [(type)]TJ +/F30 9.9626 Tf 397.998 407.701 Td [(vect)]TJ +ET +q +1 0 0 1 419.547 407.9 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +Q +BT +/F30 9.9626 Tf 422.685 407.701 Td [(type)]TJ 0 g 0 G -/F8 9.9626 Tf 20.921 0 Td [(.)]TJ +/F8 9.9626 Tf -297.883 -11.955 Td [(con)28(taining)-333(n)27(um)28(b)-28(ers)-333(of)-333(t)28(yp)-28(e)-334(sp)-27(eci\014ed)-334(in)-333(T)83(able)]TJ +0 0 1 rg 0 0 1 RG + [-333(9)]TJ 0 g 0 G -/F27 9.9626 Tf -236.091 -19.925 Td [(desc)]TJ + [(.)]TJ +0 g 0 G +/F27 9.9626 Tf -24.907 -19.926 Td [(desc)]TJ ET q -1 0 0 1 121.81 326.206 cm +1 0 0 1 121.81 376.02 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 125.247 326.007 Td [(a)]TJ +/F27 9.9626 Tf 125.247 375.82 Td [(a)]TJ 0 g 0 G -/F8 9.9626 Tf 10.551 0 Td [(con)28(tains)-334(d)1(ata)-334(structures)-333(for)-333(com)-1(m)28(unications.)]TJ -10.996 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.956 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(ob)-55(ject)-334(of)-333(t)28(yp)-28(e)]TJ +/F8 9.9626 Tf 10.551 0 Td [(con)28(tains)-334(d)1(ata)-334(structures)-333(for)-333(com)-1(m)28(unications.)]TJ -10.996 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(ob)-55(ject)-334(of)-333(t)28(yp)-28(e)]TJ 0 0 1 rg 0 0 1 RG /F30 9.9626 Tf 135.658 0 Td [(psb)]TJ ET q -1 0 0 1 276.779 278.386 cm +1 0 0 1 276.779 328.199 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 279.917 278.186 Td [(desc)]TJ +/F30 9.9626 Tf 279.917 328 Td [(desc)]TJ ET q -1 0 0 1 301.466 278.386 cm +1 0 0 1 301.466 328.199 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 304.604 278.186 Td [(type)]TJ +/F30 9.9626 Tf 304.604 328 Td [(type)]TJ 0 g 0 G /F8 9.9626 Tf 20.922 0 Td [(.)]TJ 0 g 0 G -/F27 9.9626 Tf -225.631 -19.925 Td [(On)-383(Return)]TJ +/F27 9.9626 Tf -225.631 -19.926 Td [(On)-383(Return)]TJ 0 g 0 G 0 g 0 G - 0 -19.925 Td [(F)96(unction)-384(v)64(alue)]TJ + 0 -19.925 Td [(res)]TJ 0 g 0 G -/F8 9.9626 Tf 78.387 0 Td [(is)-333(the)-334(1-norm)-333(of)-333(sparse)-334(submatrix)]TJ/F11 9.9626 Tf 150.297 0 Td [(A)]TJ/F8 9.9626 Tf 7.472 0 Td [(.)]TJ -211.249 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(global)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(long)-333(precision)-333(real)-334(n)28(um)28(b)-28(er.)]TJ +/F8 9.9626 Tf 19.47 0 Td [(con)28(tains)-334(the)-333(1-norm)-333(of)-334(\050th)1(e)-334(columns)-333(of)-78(\051)]TJ/F11 9.9626 Tf 177.751 0 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(.)]TJ -178.008 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(global)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(out)]TJ/F8 9.9626 Tf 16.549 0 Td [(.)]TJ -50.035 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(long)-333(precision)-333(real)-334(n)28(um)28(b)-28(er.)]TJ 0 g 0 G /F27 9.9626 Tf -24.907 -19.926 Td [(info)]TJ 0 g 0 G /F8 9.9626 Tf 23.758 0 Td [(Error)-333(co)-28(de.)]TJ 1.149 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(out)]TJ/F8 9.9626 Tf 16.549 0 Td [(.)]TJ -50.035 -11.955 Td [(An)-333(in)28(tege)-1(r)-333(v)56(alue;)-334(0)-333(means)-333(no)-334(error)-333(has)-333(b)-28(een)-333(detecte)-1(d)1(.)]TJ 0 g 0 G - 141.968 -56.242 Td [(41)]TJ + 141.968 -94.1 Td [(41)]TJ 0 g 0 G ET endstream endobj -1067 0 obj +1073 0 obj << -/Length 5523 +/Length 5509 >> stream 0 g 0 G @@ -10132,7 +10060,7 @@ q []0 d 0 J 0.398 w 0 0 m 4.035 0 l S Q BT -/F16 11.9552 Tf 175.796 706.129 Td [(normi)-375(|)-375(In\014nit)31(y)-375(Norm)-375(of)-375(Sparse)-375(Matrix)]TJ/F8 9.9626 Tf -25.091 -18.389 Td [(This)-333(function)-334(computes)-333(the)-333(in\014nit)28(y-norm)-334(of)-333(a)-333(matrix)]TJ/F11 9.9626 Tf 235.672 0 Td [(A)]TJ/F8 9.9626 Tf 7.472 0 Td [(:)]TJ/F11 9.9626 Tf -103.44 -33.873 Td [(nr)-28(mi)]TJ/F14 9.9626 Tf 25.698 0 Td [(\040)-278(k)]TJ/F11 9.9626 Tf 17.711 0 Td [(A)]TJ/F14 9.9626 Tf 7.472 0 Td [(k)]TJ/F13 6.9738 Tf 4.982 -1.495 Td [(1)]TJ/F8 9.9626 Tf -195.567 -20.423 Td [(where:)]TJ +/F16 11.9552 Tf 175.796 706.129 Td [(norm1)-375(|)-375(1-Norm)-375(of)-375(Sparse)-375(Matrix)]TJ/F8 9.9626 Tf -25.091 -18.389 Td [(This)-333(function)-334(computes)-333(the)-333(1-norm)-334(of)-333(a)-333(matrix)]TJ/F11 9.9626 Tf 209.658 0 Td [(A)]TJ/F8 9.9626 Tf 7.472 0 Td [(:)]TJ/F11 9.9626 Tf -76.215 -33.873 Td [(nr)-28(m)]TJ/F8 9.9626 Tf 19.498 0 Td [(1)]TJ/F14 9.9626 Tf 7.749 0 Td [(\040)-278(k)]TJ/F11 9.9626 Tf 17.711 0 Td [(A)]TJ/F14 9.9626 Tf 7.472 0 Td [(k)]TJ/F7 6.9738 Tf 4.982 -1.495 Td [(1)]TJ/F8 9.9626 Tf -198.327 -20.423 Td [(where:)]TJ 0 g 0 G /F11 9.9626 Tf 0 -19.926 Td [(A)]TJ 0 g 0 G @@ -10142,59 +10070,59 @@ BT 0 g 0 G ET q -1 0 0 1 232.099 589.962 cm -[]0 d 0 J 0.398 w 0 0 m 180.922 0 l S +1 0 0 1 230.992 589.962 cm +[]0 d 0 J 0.398 w 0 0 m 183.136 0 l S Q BT -/F11 9.9626 Tf 238.077 581.394 Td [(A)]TJ/F27 9.9626 Tf 120.41 0 Td [(F)96(unction)]TJ +/F11 9.9626 Tf 236.97 581.394 Td [(A)]TJ/F27 9.9626 Tf 120.41 0 Td [(F)96(unction)]TJ ET q -1 0 0 1 232.099 577.608 cm -[]0 d 0 J 0.398 w 0 0 m 180.922 0 l S +1 0 0 1 230.992 577.608 cm +[]0 d 0 J 0.398 w 0 0 m 183.136 0 l S Q BT -/F8 9.9626 Tf 238.077 569.04 Td [(Short)-333(Precision)-334(Real)-3102(psb)]TJ +/F8 9.9626 Tf 236.97 569.04 Td [(Short)-333(Precision)-334(Real)-3102(psb)]TJ ET q -1 0 0 1 374.084 569.24 cm +1 0 0 1 372.977 569.24 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 377.073 569.04 Td [(spnrmi)]TJ -138.996 -11.955 Td [(Long)-333(Precision)-334(Real)-3314(psb)]TJ +/F8 9.9626 Tf 375.966 569.04 Td [(spnrm1)]TJ -138.996 -11.955 Td [(Long)-333(Precision)-334(Real)-3314(psb)]TJ ET q -1 0 0 1 374.084 557.284 cm +1 0 0 1 372.977 557.284 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 377.073 557.085 Td [(spnrmi)]TJ -138.996 -11.955 Td [(Short)-333(Precision)-334(Complex)-1200(psb)]TJ +/F8 9.9626 Tf 375.966 557.085 Td [(spnrm1)]TJ -138.996 -11.955 Td [(Short)-333(Precision)-334(Complex)-1200(psb)]TJ ET q -1 0 0 1 374.084 545.329 cm +1 0 0 1 372.977 545.329 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 377.073 545.13 Td [(spnrmi)]TJ -138.996 -11.955 Td [(Long)-333(Precision)-334(Complex)-1411(psb)]TJ +/F8 9.9626 Tf 375.966 545.13 Td [(spnrm1)]TJ -138.996 -11.955 Td [(Long)-333(Precision)-334(Complex)-1411(psb)]TJ ET q -1 0 0 1 374.084 533.374 cm +1 0 0 1 372.977 533.374 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 377.073 533.175 Td [(spnrmi)]TJ +/F8 9.9626 Tf 375.966 533.175 Td [(spnrm1)]TJ ET q -1 0 0 1 232.099 529.389 cm -[]0 d 0 J 0.398 w 0 0 m 180.922 0 l S +1 0 0 1 230.992 529.389 cm +[]0 d 0 J 0.398 w 0 0 m 183.136 0 l S Q 0 g 0 G BT -/F8 9.9626 Tf 276.386 501.35 Td [(T)83(able)-333(11:)-444(Data)-334(t)28(yp)-28(es)]TJ +/F8 9.9626 Tf 276.386 501.35 Td [(T)83(able)-333(10:)-444(Data)-334(t)28(yp)-28(es)]TJ 0 g 0 G 0 g 0 G 0 g 0 G 0 g 0 G -/F30 9.9626 Tf -125.681 -33.873 Td [(psb_spnrmi\050A,)-525(desc_a,)-525(info\051)]TJ 0 -11.956 Td [(psb_normi\050A,)-525(desc_a,)-525(info\051)]TJ +/F30 9.9626 Tf -125.681 -33.873 Td [(psb_spnrm1\050A,)-525(desc_a,)-525(info\051)]TJ 0 -11.956 Td [(psb_norm1\050A,)-525(desc_a,)-525(info\051)]TJ 0 g 0 G /F27 9.9626 Tf 0 -21.917 Td [(T)32(yp)-32(e:)]TJ 0 g 0 G @@ -10259,11 +10187,11 @@ BT 0 g 0 G 0 -19.925 Td [(F)96(unction)-384(v)64(alue)]TJ 0 g 0 G -/F8 9.9626 Tf 78.386 0 Td [(is)-333(the)-334(in\014nit)28(y-norm)-333(of)-333(sparse)-334(submatrix)]TJ/F11 9.9626 Tf 176.311 0 Td [(A)]TJ/F8 9.9626 Tf 7.472 0 Td [(.)]TJ -237.263 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(global)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(long)-333(precision)-334(r)1(e)-1(al)-333(n)28(um)28(b)-28(er.)]TJ +/F8 9.9626 Tf 78.386 0 Td [(is)-333(the)-334(1-norm)-333(of)-333(sparse)-334(submatrix)]TJ/F11 9.9626 Tf 150.298 0 Td [(A)]TJ/F8 9.9626 Tf 7.472 0 Td [(.)]TJ -211.25 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(global)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(long)-333(precision)-334(r)1(e)-1(al)-333(n)28(um)28(b)-28(er.)]TJ 0 g 0 G /F27 9.9626 Tf -24.906 -19.926 Td [(info)]TJ 0 g 0 G -/F8 9.9626 Tf 23.758 0 Td [(Error)-333(co)-28(de.)]TJ 1.148 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.612 0 Td [(required)]TJ/F8 9.9626 Tf -29.612 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(out)]TJ/F8 9.9626 Tf 16.549 0 Td [(.)]TJ -50.035 -11.955 Td [(An)-333(in)28(te)-1(ger)-333(v)56(alue;)-334(0)-333(means)-333(no)-334(error)-333(has)-333(b)-28(een)-333(detec)-1(ted.)]TJ +/F8 9.9626 Tf 23.758 0 Td [(Error)-333(co)-28(de.)]TJ 1.148 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.612 0 Td [(required)]TJ/F8 9.9626 Tf -29.612 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(out)]TJ/F8 9.9626 Tf 16.549 0 Td [(.)]TJ -50.035 -11.955 Td [(An)-333(in)27(t)1(e)-1(ger)-333(v)56(alue;)-334(0)-333(means)-333(no)-334(error)-333(has)-333(b)-28(een)-333(detec)-1(ted.)]TJ 0 g 0 G 141.968 -56.242 Td [(42)]TJ 0 g 0 G @@ -10271,9 +10199,9 @@ ET endstream endobj -1078 0 obj +1080 0 obj << -/Length 7328 +/Length 5546 >> stream 0 g 0 G @@ -10286,91 +10214,245 @@ q []0 d 0 J 0.398 w 0 0 m 4.035 0 l S Q BT -/F16 11.9552 Tf 124.986 706.129 Td [(spmm)-375(|)-375(Sparse)-375(Matrix)-375(b)31(y)-375(Dense)-375(Matrix)-375(Pro)-31(duct)]TJ/F8 9.9626 Tf -25.091 -18.389 Td [(This)-333(subroutine)-334(computes)-333(the)-333(Sparse)-334(Matrix)-333(b)28(y)-333(Dense)-334(Matrix)-333(Pro)-28(duct:)]TJ/F11 9.9626 Tf 139.909 -23.911 Td [(y)]TJ/F14 9.9626 Tf 8.009 0 Td [(\040)]TJ/F11 9.9626 Tf 12.73 0 Td [(\013)-4(Ax)]TJ/F8 9.9626 Tf 21.79 0 Td [(+)]TJ/F11 9.9626 Tf 9.962 0 Td [(\014)-53(y)]TJ +/F16 11.9552 Tf 124.986 706.129 Td [(normi)-375(|)-375(In\014nit)31(y)-375(Norm)-375(of)-375(Sparse)-375(Matrix)]TJ/F8 9.9626 Tf -25.091 -18.389 Td [(This)-333(function)-334(computes)-333(the)-333(in\014nit)28(y-norm)-334(of)-333(a)-333(matrix)]TJ/F11 9.9626 Tf 235.673 0 Td [(A)]TJ/F8 9.9626 Tf 7.472 0 Td [(:)]TJ/F11 9.9626 Tf -103.441 -33.873 Td [(nr)-28(mi)]TJ/F14 9.9626 Tf 25.698 0 Td [(\040)-278(k)]TJ/F11 9.9626 Tf 17.712 0 Td [(A)]TJ/F14 9.9626 Tf 7.472 0 Td [(k)]TJ/F13 6.9738 Tf 4.981 -1.495 Td [(1)]TJ/F8 9.9626 Tf -195.567 -20.423 Td [(where:)]TJ +0 g 0 G +/F11 9.9626 Tf 0 -19.926 Td [(A)]TJ +0 g 0 G +/F8 9.9626 Tf 12.454 0 Td [(represen)28(ts)-334(the)-333(global)-333(matrix)]TJ/F11 9.9626 Tf 125.834 0 Td [(A)]TJ +0 g 0 G +0 g 0 G +0 g 0 G +ET +q +1 0 0 1 181.29 589.962 cm +[]0 d 0 J 0.398 w 0 0 m 180.922 0 l S +Q +BT +/F11 9.9626 Tf 187.268 581.394 Td [(A)]TJ/F27 9.9626 Tf 120.409 0 Td [(F)96(unction)]TJ +ET +q +1 0 0 1 181.29 577.608 cm +[]0 d 0 J 0.398 w 0 0 m 180.922 0 l S +Q +BT +/F8 9.9626 Tf 187.268 569.04 Td [(Short)-333(Precision)-333(R)-1(eal)-3102(psb)]TJ +ET +q +1 0 0 1 323.274 569.24 cm +[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +Q +BT +/F8 9.9626 Tf 326.263 569.04 Td [(spnrmi)]TJ -138.995 -11.955 Td [(Long)-333(Precision)-334(Real)-3314(p)1(s)-1(b)]TJ +ET +q +1 0 0 1 323.274 557.284 cm +[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +Q +BT +/F8 9.9626 Tf 326.263 557.085 Td [(spnrmi)]TJ -138.995 -11.955 Td [(Short)-333(Precision)-333(C)-1(omplex)-1200(p)1(s)-1(b)]TJ +ET +q +1 0 0 1 323.274 545.329 cm +[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +Q +BT +/F8 9.9626 Tf 326.263 545.13 Td [(spnrmi)]TJ -138.995 -11.955 Td [(Long)-333(Precision)-334(Complex)-1411(psb)]TJ +ET +q +1 0 0 1 323.274 533.374 cm +[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +Q +BT +/F8 9.9626 Tf 326.263 533.175 Td [(spnrmi)]TJ +ET +q +1 0 0 1 181.29 529.389 cm +[]0 d 0 J 0.398 w 0 0 m 180.922 0 l S +Q +0 g 0 G +BT +/F8 9.9626 Tf 225.577 501.35 Td [(T)83(able)-333(11:)-444(Data)-334(t)28(yp)-28(es)]TJ +0 g 0 G +0 g 0 G +0 g 0 G +0 g 0 G +/F30 9.9626 Tf -125.682 -33.873 Td [(psb_spnrmi\050A,)-525(desc_a,)-525(info\051)]TJ 0 -11.956 Td [(psb_normi\050A,)-525(desc_a,)-525(info\051)]TJ +0 g 0 G +/F27 9.9626 Tf 0 -21.917 Td [(T)32(yp)-32(e:)]TJ +0 g 0 G +/F8 9.9626 Tf 33.797 0 Td [(Sync)28(hronous.)]TJ +0 g 0 G +/F27 9.9626 Tf -33.797 -19.926 Td [(On)-383(En)32(try)]TJ +0 g 0 G +0 g 0 G + 0 -19.925 Td [(a)]TJ +0 g 0 G +/F8 9.9626 Tf 10.551 0 Td [(the)-333(lo)-28(cal)-333(p)-28(ortion)-333(of)-334(the)-333(global)-333(sparse)-334(matrix)]TJ/F11 9.9626 Tf 196.126 0 Td [(A)]TJ/F8 9.9626 Tf 7.472 0 Td [(.)]TJ -189.242 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.956 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(ob)-55(ject)-334(of)-333(t)28(yp)-28(e)]TJ +0 0 1 rg 0 0 1 RG +/F30 9.9626 Tf 135.658 0 Td [(psb)]TJ +ET +q +1 0 0 1 276.779 346.132 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +Q +BT +/F30 9.9626 Tf 279.917 345.932 Td [(Tspmat)]TJ +ET +q +1 0 0 1 311.927 346.132 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +Q +BT +/F30 9.9626 Tf 315.065 345.932 Td [(type)]TJ +0 g 0 G +/F8 9.9626 Tf 20.921 0 Td [(.)]TJ +0 g 0 G +/F27 9.9626 Tf -236.091 -19.925 Td [(desc)]TJ +ET +q +1 0 0 1 121.81 326.206 cm +[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S +Q +BT +/F27 9.9626 Tf 125.247 326.007 Td [(a)]TJ +0 g 0 G +/F8 9.9626 Tf 10.551 0 Td [(con)28(tains)-334(d)1(ata)-334(structures)-333(for)-333(com)-1(m)28(unications.)]TJ -10.996 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.956 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(ob)-55(ject)-334(of)-333(t)28(yp)-28(e)]TJ +0 0 1 rg 0 0 1 RG +/F30 9.9626 Tf 135.658 0 Td [(psb)]TJ +ET +q +1 0 0 1 276.779 278.386 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +Q +BT +/F30 9.9626 Tf 279.917 278.186 Td [(desc)]TJ +ET +q +1 0 0 1 301.466 278.386 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +Q +BT +/F30 9.9626 Tf 304.604 278.186 Td [(type)]TJ +0 g 0 G +/F8 9.9626 Tf 20.922 0 Td [(.)]TJ +0 g 0 G +/F27 9.9626 Tf -225.631 -19.925 Td [(On)-383(Return)]TJ +0 g 0 G +0 g 0 G + 0 -19.925 Td [(F)96(unction)-384(v)64(alue)]TJ +0 g 0 G +/F8 9.9626 Tf 78.387 0 Td [(is)-333(the)-334(in\014ni)1(t)27(y-norm)-333(of)-333(sparse)-334(submatrix)]TJ/F11 9.9626 Tf 176.311 0 Td [(A)]TJ/F8 9.9626 Tf 7.472 0 Td [(.)]TJ -237.263 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(global)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(long)-333(precision)-333(real)-334(n)28(um)28(b)-28(er.)]TJ +0 g 0 G +/F27 9.9626 Tf -24.907 -19.926 Td [(info)]TJ +0 g 0 G +/F8 9.9626 Tf 23.758 0 Td [(Error)-333(co)-28(de.)]TJ 1.149 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(out)]TJ/F8 9.9626 Tf 16.549 0 Td [(.)]TJ -50.035 -11.955 Td [(An)-333(in)28(tege)-1(r)-333(v)56(alue;)-334(0)-333(means)-333(no)-334(error)-333(has)-333(b)-28(een)-333(detecte)-1(d)1(.)]TJ +0 g 0 G + 141.968 -56.242 Td [(43)]TJ +0 g 0 G +ET + +endstream +endobj +1092 0 obj +<< +/Length 7300 +>> +stream +0 g 0 G +0 g 0 G +BT +/F16 11.9552 Tf 150.705 706.129 Td [(psb)]TJ +ET +q +1 0 0 1 171.761 706.328 cm +[]0 d 0 J 0.398 w 0 0 m 4.035 0 l S +Q +BT +/F16 11.9552 Tf 175.796 706.129 Td [(spmm)-375(|)-375(Sparse)-375(Matrix)-375(b)31(y)-375(Dense)-375(Matrix)-375(Pro)-31(duct)]TJ/F8 9.9626 Tf -25.091 -18.389 Td [(This)-333(subroutine)-334(computes)-333(the)-333(Sparse)-334(Matrix)-333(b)28(y)-333(Dense)-334(Matrix)-333(Pro)-28(duct:)]TJ/F11 9.9626 Tf 139.908 -23.911 Td [(y)]TJ/F14 9.9626 Tf 8.009 0 Td [(\040)]TJ/F11 9.9626 Tf 12.73 0 Td [(\013)-4(Ax)]TJ/F8 9.9626 Tf 21.79 0 Td [(+)]TJ/F11 9.9626 Tf 9.963 0 Td [(\014)-53(y)]TJ 0 g 0 G /F8 9.9626 Tf 138.581 0 Td [(\0501\051)]TJ 0 g 0 G -/F11 9.9626 Tf -194.21 -17.408 Td [(y)]TJ/F14 9.9626 Tf 8.009 0 Td [(\040)]TJ/F11 9.9626 Tf 12.73 0 Td [(\013)-4(A)]TJ/F10 6.9738 Tf 13.882 4.113 Td [(T)]TJ/F11 9.9626 Tf 6.276 -4.113 Td [(x)]TJ/F8 9.9626 Tf 7.908 0 Td [(+)]TJ/F11 9.9626 Tf 9.962 0 Td [(\014)-53(y)]TJ +/F11 9.9626 Tf -194.211 -17.408 Td [(y)]TJ/F14 9.9626 Tf 8.009 0 Td [(\040)]TJ/F11 9.9626 Tf 12.73 0 Td [(\013)-4(A)]TJ/F10 6.9738 Tf 13.882 4.113 Td [(T)]TJ/F11 9.9626 Tf 6.276 -4.113 Td [(x)]TJ/F8 9.9626 Tf 7.908 0 Td [(+)]TJ/F11 9.9626 Tf 9.963 0 Td [(\014)-53(y)]TJ 0 g 0 G /F8 9.9626 Tf 135.443 0 Td [(\0502\051)]TJ 0 g 0 G -/F11 9.9626 Tf -194.851 -17.408 Td [(y)]TJ/F14 9.9626 Tf 8.01 0 Td [(\040)]TJ/F11 9.9626 Tf 12.73 0 Td [(\013)-4(A)]TJ/F10 6.9738 Tf 13.882 4.113 Td [(H)]TJ/F11 9.9626 Tf 7.556 -4.113 Td [(x)]TJ/F8 9.9626 Tf 7.908 0 Td [(+)]TJ/F11 9.9626 Tf 9.963 0 Td [(\014)-53(y)]TJ +/F11 9.9626 Tf -194.851 -17.408 Td [(y)]TJ/F14 9.9626 Tf 8.009 0 Td [(\040)]TJ/F11 9.9626 Tf 12.73 0 Td [(\013)-4(A)]TJ/F10 6.9738 Tf 13.882 4.113 Td [(H)]TJ/F11 9.9626 Tf 7.557 -4.113 Td [(x)]TJ/F8 9.9626 Tf 7.907 0 Td [(+)]TJ/F11 9.9626 Tf 9.963 0 Td [(\014)-53(y)]TJ 0 g 0 G -/F8 9.9626 Tf 134.802 0 Td [(\0503\051)]TJ +/F8 9.9626 Tf 134.803 0 Td [(\0503\051)]TJ 0 g 0 G -316.037 -17.408 Td [(where:)]TJ 0 g 0 G /F11 9.9626 Tf -14.944 -19.226 Td [(x)]TJ 0 g 0 G -/F8 9.9626 Tf 10.676 0 Td [(is)-333(the)-334(global)-333(dense)-333(matrix)]TJ/F11 9.9626 Tf 116.092 0 Td [(x)]TJ/F7 6.9738 Tf 5.694 -1.495 Td [(:)]TJ/F10 6.9738 Tf 2.256 0 Td [(;)]TJ/F7 6.9738 Tf 2.366 0 Td [(:)]TJ +/F8 9.9626 Tf 10.675 0 Td [(is)-333(the)-334(global)-333(dense)-333(matrix)]TJ/F11 9.9626 Tf 116.093 0 Td [(x)]TJ/F7 6.9738 Tf 5.694 -1.495 Td [(:)]TJ/F10 6.9738 Tf 2.255 0 Td [(;)]TJ/F7 6.9738 Tf 2.366 0 Td [(:)]TJ 0 g 0 G -/F11 9.9626 Tf -137.084 -18.081 Td [(y)]TJ +/F11 9.9626 Tf -137.083 -18.081 Td [(y)]TJ 0 g 0 G -/F8 9.9626 Tf 10.224 0 Td [(is)-333(the)-334(global)-333(dense)-333(matrix)]TJ/F11 9.9626 Tf 116.092 0 Td [(y)]TJ/F7 6.9738 Tf 4.885 -1.494 Td [(:)]TJ/F10 6.9738 Tf 2.255 0 Td [(;)]TJ/F7 6.9738 Tf 2.366 0 Td [(:)]TJ +/F8 9.9626 Tf 10.223 0 Td [(is)-333(the)-334(global)-333(dense)-333(matrix)]TJ/F11 9.9626 Tf 116.093 0 Td [(y)]TJ/F7 6.9738 Tf 4.884 -1.494 Td [(:)]TJ/F10 6.9738 Tf 2.256 0 Td [(;)]TJ/F7 6.9738 Tf 2.366 0 Td [(:)]TJ 0 g 0 G /F11 9.9626 Tf -135.822 -18.081 Td [(A)]TJ 0 g 0 G -/F8 9.9626 Tf 12.454 0 Td [(is)-333(the)-334(global)-333(sparse)-333(matrix)]TJ/F11 9.9626 Tf 118.943 0 Td [(A)]TJ +/F8 9.9626 Tf 12.453 0 Td [(is)-333(the)-334(global)-333(sparse)-333(matrix)]TJ/F11 9.9626 Tf 118.943 0 Td [(A)]TJ 0 g 0 G 0 g 0 G 0 g 0 G ET q -1 0 0 1 177.988 532.215 cm +1 0 0 1 228.797 532.215 cm []0 d 0 J 0.398 w 0 0 m 187.526 0 l S Q BT -/F11 9.9626 Tf 183.966 523.647 Td [(A)]TJ/F8 9.9626 Tf 7.472 0 Td [(,)]TJ/F11 9.9626 Tf 6.088 0 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(,)]TJ/F11 9.9626 Tf 6.088 0 Td [(y)]TJ/F8 9.9626 Tf 5.242 0 Td [(,)]TJ/F11 9.9626 Tf 6.088 0 Td [(\013)]TJ/F8 9.9626 Tf 6.41 0 Td [(,)]TJ/F11 9.9626 Tf 6.089 0 Td [(\014)]TJ/F27 9.9626 Tf 71.238 0 Td [(Subroutine)]TJ +/F11 9.9626 Tf 234.775 523.647 Td [(A)]TJ/F8 9.9626 Tf 7.472 0 Td [(,)]TJ/F11 9.9626 Tf 6.088 0 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(,)]TJ/F11 9.9626 Tf 6.088 0 Td [(y)]TJ/F8 9.9626 Tf 5.242 0 Td [(,)]TJ/F11 9.9626 Tf 6.089 0 Td [(\013)]TJ/F8 9.9626 Tf 6.41 0 Td [(,)]TJ/F11 9.9626 Tf 6.088 0 Td [(\014)]TJ/F27 9.9626 Tf 71.239 0 Td [(Subroutine)]TJ ET q -1 0 0 1 177.988 519.862 cm +1 0 0 1 228.797 519.862 cm []0 d 0 J 0.398 w 0 0 m 187.526 0 l S Q BT -/F8 9.9626 Tf 183.966 511.294 Td [(Short)-333(Precision)-333(R)-1(eal)-3102(psb)]TJ +/F8 9.9626 Tf 234.775 511.294 Td [(Short)-333(Precision)-334(Real)-3102(psb)]TJ ET q -1 0 0 1 319.972 511.493 cm +1 0 0 1 370.782 511.493 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 322.961 511.294 Td [(spmm)]TJ -138.995 -11.956 Td [(Long)-333(Precision)-334(Real)-3314(p)1(s)-1(b)]TJ +/F8 9.9626 Tf 373.771 511.294 Td [(spmm)]TJ -138.996 -11.956 Td [(Long)-333(Precision)-334(Real)-3314(psb)]TJ ET q -1 0 0 1 319.972 499.538 cm +1 0 0 1 370.782 499.538 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 322.961 499.338 Td [(spmm)]TJ -138.995 -11.955 Td [(Short)-333(Precision)-333(C)-1(omplex)-1200(p)1(s)-1(b)]TJ +/F8 9.9626 Tf 373.771 499.338 Td [(spmm)]TJ -138.996 -11.955 Td [(Short)-333(Precision)-334(Complex)-1200(psb)]TJ ET q -1 0 0 1 319.972 487.583 cm +1 0 0 1 370.782 487.583 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 322.961 487.383 Td [(spmm)]TJ -138.995 -11.955 Td [(Long)-333(Precision)-334(Complex)-1411(psb)]TJ +/F8 9.9626 Tf 373.771 487.383 Td [(spmm)]TJ -138.996 -11.955 Td [(Long)-333(Precision)-334(Complex)-1411(psb)]TJ ET q -1 0 0 1 319.972 475.627 cm +1 0 0 1 370.782 475.627 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 322.961 475.428 Td [(spmm)]TJ +/F8 9.9626 Tf 373.771 475.428 Td [(spmm)]TJ ET q -1 0 0 1 177.988 471.642 cm +1 0 0 1 228.797 471.642 cm []0 d 0 J 0.398 w 0 0 m 187.526 0 l S Q 0 g 0 G BT -/F8 9.9626 Tf 225.577 443.603 Td [(T)83(able)-333(12:)-444(Data)-334(t)28(yp)-28(es)]TJ +/F8 9.9626 Tf 276.386 443.603 Td [(T)83(able)-333(12:)-444(Data)-334(t)28(yp)-28(es)]TJ 0 g 0 G 0 g 0 G 0 g 0 G 0 g 0 G -/F30 9.9626 Tf -125.682 -32.649 Td [(call)-525(psb_spmm\050alpha,)-525(a,)-525(x,)-525(beta,)-525(y,)-525(desc_a,)-525(info\051)]TJ 0 -11.955 Td [(call)-525(psb_spmm\050alpha,)-525(a,)-525(x,)-525(beta,)-525(y,desc_a,)-525(info,)-525(&)]TJ 67.995 -11.955 Td [(&)-525(trans,)-525(work\051)]TJ +/F30 9.9626 Tf -125.681 -32.649 Td [(call)-525(psb_spmm\050alpha,)-525(a,)-525(x,)-525(beta,)-525(y,)-525(desc_a,)-525(info\051)]TJ 0 -11.955 Td [(call)-525(psb_spmm\050alpha,)-525(a,)-525(x,)-525(beta,)-525(y,desc_a,)-525(info,)-525(&)]TJ 67.994 -11.955 Td [(&)-525(trans,)-525(work\051)]TJ 0 g 0 G -/F27 9.9626 Tf -67.995 -21.044 Td [(T)32(yp)-32(e:)]TJ +/F27 9.9626 Tf -67.994 -21.044 Td [(T)32(yp)-32(e:)]TJ 0 g 0 G /F8 9.9626 Tf 33.797 0 Td [(Sync)28(hronous.)]TJ 0 g 0 G @@ -10379,295 +10461,295 @@ BT 0 g 0 G 0 -19.576 Td [(alpha)]TJ 0 g 0 G -/F8 9.9626 Tf 32.033 0 Td [(the)-333(scalar)]TJ/F11 9.9626 Tf 45.468 0 Td [(\013)]TJ/F8 9.9626 Tf 6.41 0 Td [(.)]TJ -59.004 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(global)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.956 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(n)28(um)28(b)-28(er)-333(of)-334(the)-333(data)-333(t)28(yp)-28(e)-334(ind)1(ic)-1(ated)-333(in)-333(T)83(able)]TJ +/F8 9.9626 Tf 32.032 0 Td [(the)-333(scalar)]TJ/F11 9.9626 Tf 45.469 0 Td [(\013)]TJ/F8 9.9626 Tf 6.41 0 Td [(.)]TJ -59.005 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(global)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.612 0 Td [(required)]TJ/F8 9.9626 Tf -29.612 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.548 0 Td [(.)]TJ -43.034 -11.956 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(n)28(um)28(b)-28(er)-333(of)-334(the)-333(data)-333(t)27(yp)-27(e)-334(indicated)-333(in)-333(T)83(able)]TJ 0 0 1 rg 0 0 1 RG [-333(12)]TJ 0 g 0 G [(.)]TJ 0 g 0 G -/F27 9.9626 Tf -24.907 -19.575 Td [(a)]TJ +/F27 9.9626 Tf -24.906 -19.575 Td [(a)]TJ 0 g 0 G -/F8 9.9626 Tf 10.551 0 Td [(the)-333(lo)-28(cal)-333(p)-28(ortion)-333(of)-334(the)-333(sparse)-333(matrix)]TJ/F11 9.9626 Tf 166.792 0 Td [(A)]TJ/F8 9.9626 Tf 7.472 0 Td [(.)]TJ -159.908 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.956 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(ob)-55(ject)-334(of)-333(t)28(yp)-28(e)]TJ +/F8 9.9626 Tf 10.55 0 Td [(the)-333(lo)-28(cal)-334(p)-27(ortion)-333(of)-334(the)-333(sparse)-334(matri)1(x)]TJ/F11 9.9626 Tf 166.792 0 Td [(A)]TJ/F8 9.9626 Tf 7.472 0 Td [(.)]TJ -159.908 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.956 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.612 0 Td [(required)]TJ/F8 9.9626 Tf -29.612 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(ob)-55(ject)-334(of)-333(t)28(yp)-28(e)]TJ 0 0 1 rg 0 0 1 RG -/F30 9.9626 Tf 135.658 0 Td [(psb)]TJ +/F30 9.9626 Tf 135.659 0 Td [(psb)]TJ ET q -1 0 0 1 276.779 211.831 cm +1 0 0 1 327.588 211.831 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 279.917 211.632 Td [(Tspmat)]TJ +/F30 9.9626 Tf 330.727 211.632 Td [(Tspmat)]TJ ET q -1 0 0 1 311.927 211.831 cm +1 0 0 1 362.736 211.831 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 315.065 211.632 Td [(type)]TJ +/F30 9.9626 Tf 365.874 211.632 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 -236.091 -19.575 Td [(x)]TJ 0 g 0 G -/F8 9.9626 Tf 11.028 0 Td [(the)-333(lo)-28(cal)-333(p)-28(ortion)-333(of)-334(global)-333(dense)-333(matrix)]TJ/F11 9.9626 Tf 176.118 0 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(.)]TJ -167.933 -11.956 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-255(as:)-405(a)-255(rank)-254(one)-255(or)-255(t)28(w)27(o)-254(arra)27(y)-254(or)-255(an)-255(ob)-55(jec)-1(t)-254(of)-255(t)28(yp)-28(e)]TJ +/F8 9.9626 Tf 11.028 0 Td [(the)-333(lo)-28(cal)-333(p)-28(ortion)-333(of)-334(global)-333(dense)-333(matrix)]TJ/F11 9.9626 Tf 176.118 0 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(.)]TJ -167.933 -11.956 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.378 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.378 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.485 0 Td [(in)]TJ/F8 9.9626 Tf 9.548 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-255(as:)-405(a)-255(rank)-254(one)-255(or)-255(t)28(w)28(o)-255(arra)28(y)-255(or)-255(an)-255(ob)-55(ject)-255(of)-255(t)28(yp)-28(e)]TJ 0 0 1 rg 0 0 1 RG -/F30 9.9626 Tf 244.743 0 Td [(psb)]TJ +/F30 9.9626 Tf 244.742 0 Td [(psb)]TJ ET q -1 0 0 1 385.864 144.435 cm +1 0 0 1 436.673 144.435 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 389.002 144.236 Td [(T)]TJ +/F30 9.9626 Tf 439.811 144.236 Td [(T)]TJ ET q -1 0 0 1 394.86 144.435 cm +1 0 0 1 445.669 144.435 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 397.998 144.236 Td [(vect)]TJ +/F30 9.9626 Tf 448.807 144.236 Td [(vect)]TJ ET q -1 0 0 1 419.547 144.435 cm +1 0 0 1 470.356 144.435 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 422.685 144.236 Td [(type)]TJ +/F30 9.9626 Tf 473.495 144.236 Td [(type)]TJ 0 g 0 G -/F8 9.9626 Tf -297.883 -11.955 Td [(con)28(taining)-342(n)28(um)28(b)-28(ers)-342(of)-342(t)28(yp)-28(e)-342(sp)-28(eci\014ed)-342(in)-341(T)83(able)]TJ +/F8 9.9626 Tf -297.884 -11.955 Td [(con)28(taining)-342(n)28(um)28(b)-28(ers)-342(of)-342(t)28(yp)-28(e)-342(sp)-28(eci\014ed)-342(in)-341(T)83(able)]TJ 0 0 1 rg 0 0 1 RG [-342(12)]TJ 0 g 0 G - [(.)-470(The)-342(rank)-342(of)]TJ/F11 9.9626 Tf 274.694 0 Td [(x)]TJ/F8 9.9626 Tf 9.101 0 Td [(m)28(ust)-342(b)-28(e)]TJ -283.795 -11.955 Td [(the)-333(same)-334(of)]TJ/F11 9.9626 Tf 53.466 0 Td [(y)]TJ/F8 9.9626 Tf 5.242 0 Td [(.)]TJ + [(.)-470(The)-342(rank)-342(of)]TJ/F11 9.9626 Tf 274.695 0 Td [(x)]TJ/F8 9.9626 Tf 9.1 0 Td [(m)28(ust)-342(b)-28(e)]TJ -283.795 -11.955 Td [(the)-333(same)-334(of)]TJ/F11 9.9626 Tf 53.467 0 Td [(y)]TJ/F8 9.9626 Tf 5.242 0 Td [(.)]TJ 0 g 0 G - 83.26 -29.888 Td [(43)]TJ + 83.259 -29.888 Td [(44)]TJ 0 g 0 G ET endstream endobj -1094 0 obj +1107 0 obj << -/Length 6975 +/Length 6992 >> stream 0 g 0 G 0 g 0 G 0 g 0 G BT -/F27 9.9626 Tf 150.705 706.129 Td [(b)-32(eta)]TJ +/F27 9.9626 Tf 99.895 706.129 Td [(b)-32(eta)]TJ 0 g 0 G -/F8 9.9626 Tf 26.94 0 Td [(the)-333(scalar)]TJ/F11 9.9626 Tf 45.469 0 Td [(\014)]TJ/F8 9.9626 Tf 6.161 0 Td [(.)]TJ -53.664 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(global)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.612 0 Td [(required)]TJ/F8 9.9626 Tf -29.612 -11.956 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.548 0 Td [(.)]TJ -43.034 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(n)28(um)28(b)-28(er)-333(of)-334(the)-333(data)-333(t)27(yp)-27(e)-334(indicated)-333(in)-333(T)83(able)]TJ +/F8 9.9626 Tf 26.941 0 Td [(the)-333(scalar)]TJ/F11 9.9626 Tf 45.468 0 Td [(\014)]TJ/F8 9.9626 Tf 6.161 0 Td [(.)]TJ -53.663 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(global)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.956 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(n)28(um)28(b)-28(er)-333(of)-334(the)-333(data)-333(t)28(yp)-28(e)-334(ind)1(ic)-1(ated)-333(in)-333(T)83(able)]TJ 0 0 1 rg 0 0 1 RG [-333(12)]TJ 0 g 0 G [(.)]TJ 0 g 0 G -/F27 9.9626 Tf -24.906 -18.453 Td [(y)]TJ +/F27 9.9626 Tf -24.907 -18.453 Td [(y)]TJ 0 g 0 G -/F8 9.9626 Tf 11.028 0 Td [(the)-333(lo)-28(cal)-333(p)-28(ortion)-333(of)-334(global)-333(dense)-333(matrix)]TJ/F11 9.9626 Tf 176.118 0 Td [(y)]TJ/F8 9.9626 Tf 5.242 0 Td [(.)]TJ -167.482 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.956 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.612 0 Td [(required)]TJ/F8 9.9626 Tf -29.612 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(inout)]TJ/F8 9.9626 Tf 26.096 0 Td [(.)]TJ -59.582 -11.955 Td [(Sp)-28(eci\014ed)-255(as:)-405(a)-255(rank)-254(one)-255(or)-255(t)28(w)27(o)-254(arra)27(y)-254(or)-255(an)-255(ob)-56(j)1(e)-1(ct)-254(of)-255(t)28(yp)-28(e)]TJ +/F8 9.9626 Tf 11.028 0 Td [(the)-333(lo)-28(cal)-333(p)-28(ortion)-333(of)-334(global)-333(dense)-333(matrix)]TJ/F11 9.9626 Tf 176.118 0 Td [(y)]TJ/F8 9.9626 Tf 5.242 0 Td [(.)]TJ -167.481 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.956 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(inout)]TJ/F8 9.9626 Tf 26.096 0 Td [(.)]TJ -59.582 -11.955 Td [(Sp)-28(eci\014ed)-255(as:)-405(a)-255(rank)-254(one)-255(or)-255(t)28(w)27(o)-254(arra)27(y)-254(or)-255(an)-255(ob)-55(jec)-1(t)-254(of)-255(t)28(yp)-28(e)]TJ 0 0 1 rg 0 0 1 RG /F30 9.9626 Tf 244.743 0 Td [(psb)]TJ ET q -1 0 0 1 436.673 592.233 cm +1 0 0 1 385.864 592.233 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 439.811 592.034 Td [(T)]TJ +/F30 9.9626 Tf 389.002 592.034 Td [(T)]TJ ET q -1 0 0 1 445.669 592.233 cm +1 0 0 1 394.86 592.233 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 448.807 592.034 Td [(vect)]TJ +/F30 9.9626 Tf 397.998 592.034 Td [(vect)]TJ ET q -1 0 0 1 470.356 592.233 cm +1 0 0 1 419.547 592.233 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 473.495 592.034 Td [(type)]TJ +/F30 9.9626 Tf 422.685 592.034 Td [(type)]TJ 0 g 0 G -/F8 9.9626 Tf -297.884 -11.955 Td [(con)28(taining)-345(n)28(um)28(b)-28(ers)-345(of)-345(t)28(yp)-28(e)-345(sp)-28(eci\014ed)-345(in)-345(T)84(able)]TJ +/F8 9.9626 Tf -297.883 -11.955 Td [(con)28(taining)-345(n)28(um)28(b)-28(ers)-345(of)-345(t)28(yp)-28(e)-345(sp)-28(eci\014ed)-345(in)-345(T)84(able)]TJ 0 0 1 rg 0 0 1 RG [-345(12)]TJ 0 g 0 G - [(.)-479(The)-345(rank)-345(of)]TJ/F11 9.9626 Tf 275.087 0 Td [(y)]TJ/F8 9.9626 Tf 8.678 0 Td [(m)28(ust)-345(b)-28(e)]TJ -283.765 -11.955 Td [(the)-333(same)-334(of)]TJ/F11 9.9626 Tf 53.467 0 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(.)]TJ + [(.)-479(The)-345(rank)-345(of)]TJ/F11 9.9626 Tf 275.086 0 Td [(y)]TJ/F8 9.9626 Tf 8.678 0 Td [(m)28(ust)-345(b)-28(e)]TJ -283.764 -11.955 Td [(the)-333(same)-334(of)]TJ/F11 9.9626 Tf 53.466 0 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(.)]TJ 0 g 0 G /F27 9.9626 Tf -84.067 -18.454 Td [(desc)]TJ ET q -1 0 0 1 172.619 549.87 cm +1 0 0 1 121.81 549.87 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 176.057 549.67 Td [(a)]TJ +/F27 9.9626 Tf 125.247 549.67 Td [(a)]TJ 0 g 0 G -/F8 9.9626 Tf 10.55 0 Td [(con)28(tains)-334(data)-333(structures)-333(for)-333(c)-1(omm)28(unications.)]TJ -10.996 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.612 0 Td [(required)]TJ/F8 9.9626 Tf -29.612 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.548 0 Td [(.)]TJ -43.034 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(ob)-55(ject)-334(of)-333(t)28(yp)-28(e)]TJ +/F8 9.9626 Tf 10.551 0 Td [(con)28(tains)-334(d)1(ata)-334(structures)-333(for)-333(com)-1(m)28(unications.)]TJ -10.996 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(ob)-55(ject)-334(of)-333(t)28(yp)-28(e)]TJ 0 0 1 rg 0 0 1 RG -/F30 9.9626 Tf 135.659 0 Td [(psb)]TJ +/F30 9.9626 Tf 135.658 0 Td [(psb)]TJ ET q -1 0 0 1 327.588 502.049 cm +1 0 0 1 276.779 502.049 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 330.727 501.85 Td [(desc)]TJ +/F30 9.9626 Tf 279.917 501.85 Td [(desc)]TJ ET q -1 0 0 1 352.275 502.049 cm +1 0 0 1 301.466 502.049 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 355.414 501.85 Td [(type)]TJ +/F30 9.9626 Tf 304.604 501.85 Td [(type)]TJ 0 g 0 G -/F8 9.9626 Tf 20.921 0 Td [(.)]TJ +/F8 9.9626 Tf 20.922 0 Td [(.)]TJ 0 g 0 G -/F27 9.9626 Tf -225.63 -18.454 Td [(trans)]TJ +/F27 9.9626 Tf -225.631 -18.454 Td [(trans)]TJ 0 g 0 G -/F8 9.9626 Tf 30.609 0 Td [(indicates)-333(what)-334(kind)-333(of)-333(op)-28(eration)-333(to)-333(p)-28(erform.)]TJ +/F8 9.9626 Tf 30.609 0 Td [(indicates)-333(what)-334(kind)-333(of)-333(op)-28(eration)-333(to)-334(p)-27(erform.)]TJ 0 g 0 G -/F27 9.9626 Tf -5.703 -18.453 Td [(trans)-383(=)-384(N)]TJ +/F27 9.9626 Tf -5.702 -18.453 Td [(trans)-383(=)-384(N)]TJ 0 g 0 G -/F8 9.9626 Tf 56.124 0 Td [(the)-333(op)-28(eration)-333(is)-334(sp)-28(eci\014ed)-333(b)28(y)-333(equation)]TJ +/F8 9.9626 Tf 56.124 0 Td [(the)-333(op)-28(eration)-333(is)-334(sp)-27(e)-1(ci\014ed)-333(b)28(y)-333(equation)]TJ 0 0 1 rg 0 0 1 RG [-334(1)]TJ 0 g 0 G 0 g 0 G /F27 9.9626 Tf -56.124 -14.469 Td [(trans)-383(=)-384(T)]TJ 0 g 0 G -/F8 9.9626 Tf 55.128 0 Td [(the)-333(op)-28(eration)-333(is)-334(sp)-28(eci\014ed)-333(b)28(y)-333(equation)]TJ +/F8 9.9626 Tf 55.128 0 Td [(the)-333(op)-28(eration)-333(is)-334(sp)-27(e)-1(ci\014)1(e)-1(d)-333(b)28(y)-333(equation)]TJ 0 0 1 rg 0 0 1 RG [-334(2)]TJ 0 g 0 G 0 g 0 G /F27 9.9626 Tf -55.128 -14.468 Td [(trans)-383(=)-384(C)]TJ 0 g 0 G -/F8 9.9626 Tf 55.433 0 Td [(the)-333(op)-28(eration)-333(is)-334(sp)-27(ec)-1(i\014)1(e)-1(d)-333(b)28(y)-333(equation)]TJ +/F8 9.9626 Tf 55.432 0 Td [(the)-333(op)-28(eration)-333(is)-334(sp)-28(eci\014ed)-333(b)28(y)-333(equation)]TJ 0 0 1 rg 0 0 1 RG [-334(3)]TJ 0 g 0 G - -55.433 -18.453 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(global)]TJ/F8 9.9626 Tf -32.379 -11.956 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.612 0 Td [(optional)]TJ/F8 9.9626 Tf -29.612 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.955 Td [(Default:)]TJ/F11 9.9626 Tf 39.436 0 Td [(tr)-28(ans)]TJ/F8 9.9626 Tf 27.052 0 Td [(=)]TJ/F11 9.9626 Tf 10.517 0 Td [(N)]TJ/F8 9.9626 Tf -77.005 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(c)28(haracter)-334(v)56(ariable.)]TJ + -55.432 -18.453 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(global)]TJ/F8 9.9626 Tf -32.379 -11.956 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(optional)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.955 Td [(Default:)]TJ/F11 9.9626 Tf 39.436 0 Td [(tr)-28(ans)]TJ/F8 9.9626 Tf 27.052 0 Td [(=)]TJ/F11 9.9626 Tf 10.516 0 Td [(N)]TJ/F8 9.9626 Tf -77.004 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(c)28(haracter)-333(v)55(ariable.)]TJ 0 g 0 G -/F27 9.9626 Tf -24.906 -18.454 Td [(w)32(ork)]TJ +/F27 9.9626 Tf -24.907 -18.454 Td [(w)32(ork)]TJ 0 g 0 G -/F8 9.9626 Tf 29.431 0 Td [(w)28(ork)-334(arr)1(a)27(y)84(.)]TJ -4.525 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.612 0 Td [(optional)]TJ/F8 9.9626 Tf -29.612 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(inout)]TJ/F8 9.9626 Tf 26.096 0 Td [(.)]TJ -59.582 -11.955 Td [(Sp)-28(eci\014ed)-487(as:)-753(a)-487(rank)-488(one)-487(arra)28(y)-488(of)-487(the)-488(same)-487(t)27(yp)-27(e)-488(of)]TJ/F11 9.9626 Tf 239.183 0 Td [(x)]TJ/F8 9.9626 Tf 10.551 0 Td [(and)]TJ/F11 9.9626 Tf 20.907 0 Td [(y)]TJ/F8 9.9626 Tf 10.099 0 Td [(with)-487(the)]TJ -280.74 -11.955 Td [(T)83(AR)28(GET)-333(attribute.)]TJ +/F8 9.9626 Tf 29.432 0 Td [(w)28(ork)-333(arra)27(y)84(.)]TJ -4.525 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(optional)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(inout)]TJ/F8 9.9626 Tf 26.096 0 Td [(.)]TJ -59.582 -11.955 Td [(Sp)-28(eci\014ed)-487(as:)-753(a)-487(rank)-488(one)-487(arra)28(y)-488(of)-487(the)-488(same)-487(t)27(yp)-27(e)-488(of)]TJ/F11 9.9626 Tf 239.183 0 Td [(x)]TJ/F8 9.9626 Tf 10.55 0 Td [(and)]TJ/F11 9.9626 Tf 20.908 0 Td [(y)]TJ/F8 9.9626 Tf 10.098 0 Td [(with)-487(the)]TJ -280.739 -11.955 Td [(T)83(AR)28(GET)-333(attribute.)]TJ 0 g 0 G -/F27 9.9626 Tf -24.906 -18.454 Td [(On)-383(Return)]TJ +/F27 9.9626 Tf -24.907 -18.454 Td [(On)-383(Return)]TJ 0 g 0 G 0 g 0 G 0 -18.453 Td [(y)]TJ 0 g 0 G -/F8 9.9626 Tf 11.028 0 Td [(the)-333(lo)-28(cal)-333(p)-28(ortion)-333(of)-334(result)-333(matrix)]TJ/F11 9.9626 Tf 147.364 0 Td [(y)]TJ/F8 9.9626 Tf 5.242 0 Td [(.)]TJ -138.728 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.956 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.612 0 Td [(required)]TJ/F8 9.9626 Tf -29.612 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(inout)]TJ/F8 9.9626 Tf 26.096 0 Td [(.)]TJ -59.582 -11.955 Td [(Sp)-28(eci\014ed)-474(as:)-727(an)-475(arra)28(y)-475(of)-474(rank)-475(one)-474(or)-475(t)28(w)28(o)-475(con)28(taining)-474(n)27(um)28(b)-28(ers)-474(of)-475(t)28(yp)-28(e)]TJ 0 -11.955 Td [(sp)-28(eci\014ed)-333(in)-333(T)83(able)]TJ +/F8 9.9626 Tf 11.028 0 Td [(the)-333(lo)-28(cal)-333(p)-28(ortion)-333(of)-334(result)-333(matrix)]TJ/F11 9.9626 Tf 147.365 0 Td [(y)]TJ/F8 9.9626 Tf 5.242 0 Td [(.)]TJ -138.728 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.956 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(inout)]TJ/F8 9.9626 Tf 26.096 0 Td [(.)]TJ -59.582 -11.955 Td [(Sp)-28(eci\014ed)-474(as:)-727(an)-475(arra)28(y)-474(of)-475(rank)-475(on)1(e)-475(or)-475(t)28(w)28(o)-475(con)28(taining)-474(n)27(u)1(m)27(b)-27(e)-1(r)1(s)-475(of)-475(t)28(yp)-28(e)]TJ 0 -11.955 Td [(sp)-28(eci\014ed)-333(in)-333(T)83(able)]TJ 0 0 1 rg 0 0 1 RG [-333(12)]TJ 0 g 0 G [(.)]TJ 0 g 0 G -/F27 9.9626 Tf -24.906 -18.454 Td [(info)]TJ +/F27 9.9626 Tf -24.907 -18.454 Td [(info)]TJ 0 g 0 G -/F8 9.9626 Tf 23.758 0 Td [(Error)-333(co)-28(de.)]TJ 1.148 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.612 0 Td [(required)]TJ/F8 9.9626 Tf -29.612 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(out)]TJ/F8 9.9626 Tf 16.549 0 Td [(.)]TJ -50.035 -11.955 Td [(An)-333(in)28(te)-1(ger)-333(v)56(alue;)-334(0)-333(means)-333(no)-334(error)-333(has)-333(b)-28(een)-333(detec)-1(t)1(e)-1(d.)]TJ +/F8 9.9626 Tf 23.758 0 Td [(Error)-333(co)-28(de.)]TJ 1.149 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(out)]TJ/F8 9.9626 Tf 16.549 0 Td [(.)]TJ -50.035 -11.955 Td [(An)-333(in)28(tege)-1(r)-333(v)56(alue;)-334(0)-333(means)-333(no)-334(error)-333(has)-333(b)-28(een)-333(detecte)-1(d)1(.)]TJ 0 g 0 G - 141.968 -38.108 Td [(44)]TJ + 141.968 -38.108 Td [(45)]TJ 0 g 0 G ET endstream endobj -1100 0 obj +1113 0 obj << -/Length 6787 +/Length 6772 >> 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 [(spsm)-375(|)-375(T)94(riangular)-375(System)-375(Solv)31(e)]TJ/F8 9.9626 Tf -25.091 -19.095 Td [(This)-333(subroutine)-334(computes)-333(the)-333(T)83(riangular)-333(System)-334(Solv)28(e:)]TJ/F11 9.9626 Tf 121.693 -35.01 Td [(y)]TJ/F14 9.9626 Tf 15.204 0 Td [(\040)]TJ/F11 9.9626 Tf 19.925 0 Td [(\013)-4(T)]TJ/F13 6.9738 Tf 13.616 4.113 Td [(\000)]TJ/F7 6.9738 Tf 6.227 0 Td [(1)]TJ/F11 9.9626 Tf 4.469 -4.113 Td [(x)]TJ/F8 9.9626 Tf 7.908 0 Td [(+)]TJ/F11 9.9626 Tf 9.962 0 Td [(\014)-53(y)]TJ -77.311 -14.944 Td [(y)]TJ/F14 9.9626 Tf 15.204 0 Td [(\040)]TJ/F11 9.9626 Tf 19.925 0 Td [(\013)-4(D)-28(T)]TJ/F13 6.9738 Tf 22.141 4.113 Td [(\000)]TJ/F7 6.9738 Tf 6.227 0 Td [(1)]TJ/F11 9.9626 Tf 4.469 -4.113 Td [(x)]TJ/F8 9.9626 Tf 7.908 0 Td [(+)]TJ/F11 9.9626 Tf 9.962 0 Td [(\014)-53(y)]TJ -85.836 -14.944 Td [(y)]TJ/F14 9.9626 Tf 15.204 0 Td [(\040)]TJ/F11 9.9626 Tf 19.925 0 Td [(\013)-4(T)]TJ/F13 6.9738 Tf 13.616 4.113 Td [(\000)]TJ/F7 6.9738 Tf 6.227 0 Td [(1)]TJ/F11 9.9626 Tf 4.469 -4.113 Td [(D)-28(x)]TJ/F8 9.9626 Tf 16.433 0 Td [(+)]TJ/F11 9.9626 Tf 9.962 0 Td [(\014)-53(y)]TJ -85.836 -14.944 Td [(y)]TJ/F14 9.9626 Tf 15.204 0 Td [(\040)]TJ/F11 9.9626 Tf 19.925 0 Td [(\013)-4(T)]TJ/F13 6.9738 Tf 13.616 4.113 Td [(\000)]TJ/F10 6.9738 Tf 6.227 0 Td [(T)]TJ/F11 9.9626 Tf 6.276 -4.113 Td [(x)]TJ/F8 9.9626 Tf 7.908 0 Td [(+)]TJ/F11 9.9626 Tf 9.962 0 Td [(\014)-53(y)]TJ -79.118 -14.944 Td [(y)]TJ/F14 9.9626 Tf 15.204 0 Td [(\040)]TJ/F11 9.9626 Tf 19.925 0 Td [(\013)-4(D)-28(T)]TJ/F13 6.9738 Tf 22.141 4.113 Td [(\000)]TJ/F10 6.9738 Tf 6.227 0 Td [(T)]TJ/F11 9.9626 Tf 6.276 -4.113 Td [(x)]TJ/F8 9.9626 Tf 7.908 0 Td [(+)]TJ/F11 9.9626 Tf 9.962 0 Td [(\014)-53(y)]TJ -87.643 -14.944 Td [(y)]TJ/F14 9.9626 Tf 15.204 0 Td [(\040)]TJ/F11 9.9626 Tf 19.925 0 Td [(\013)-4(T)]TJ/F13 6.9738 Tf 13.616 4.113 Td [(\000)]TJ/F10 6.9738 Tf 6.227 0 Td [(T)]TJ/F11 9.9626 Tf 6.276 -4.113 Td [(D)-28(x)]TJ/F8 9.9626 Tf 16.433 0 Td [(+)]TJ/F11 9.9626 Tf 9.962 0 Td [(\014)-53(y)]TJ -87.643 -14.944 Td [(y)]TJ/F14 9.9626 Tf 15.204 0 Td [(\040)]TJ/F11 9.9626 Tf 19.925 0 Td [(\013)-4(T)]TJ/F13 6.9738 Tf 13.616 4.113 Td [(\000)]TJ/F10 6.9738 Tf 6.227 0 Td [(H)]TJ/F11 9.9626 Tf 7.556 -4.113 Td [(x)]TJ/F8 9.9626 Tf 7.908 0 Td [(+)]TJ/F11 9.9626 Tf 9.962 0 Td [(\014)-53(y)]TJ -80.398 -14.944 Td [(y)]TJ/F14 9.9626 Tf 15.204 0 Td [(\040)]TJ/F11 9.9626 Tf 19.925 0 Td [(\013)-4(D)-28(T)]TJ/F13 6.9738 Tf 22.141 4.113 Td [(\000)]TJ/F10 6.9738 Tf 6.227 0 Td [(H)]TJ/F11 9.9626 Tf 7.556 -4.113 Td [(x)]TJ/F8 9.9626 Tf 7.908 0 Td [(+)]TJ/F11 9.9626 Tf 9.962 0 Td [(\014)-53(y)]TJ -88.923 -14.944 Td [(y)]TJ/F14 9.9626 Tf 15.204 0 Td [(\040)]TJ/F11 9.9626 Tf 19.925 0 Td [(\013)-4(T)]TJ/F13 6.9738 Tf 13.616 4.113 Td [(\000)]TJ/F10 6.9738 Tf 6.227 0 Td [(H)]TJ/F11 9.9626 Tf 7.556 -4.113 Td [(D)-28(x)]TJ/F8 9.9626 Tf 16.433 0 Td [(+)]TJ/F11 9.9626 Tf 9.962 0 Td [(\014)-53(y)]TJ/F8 9.9626 Tf -195.672 -37.999 Td [(where:)]TJ +/F16 11.9552 Tf 175.796 706.129 Td [(spsm)-375(|)-375(T)94(riangular)-375(System)-375(Solv)31(e)]TJ/F8 9.9626 Tf -25.091 -19.095 Td [(This)-333(subroutine)-334(computes)-333(the)-333(T)83(riangular)-333(System)-334(S)1(o)-1(l)1(v)27(e:)]TJ/F11 9.9626 Tf 121.692 -35.01 Td [(y)]TJ/F14 9.9626 Tf 15.205 0 Td [(\040)]TJ/F11 9.9626 Tf 19.925 0 Td [(\013)-4(T)]TJ/F13 6.9738 Tf 13.616 4.113 Td [(\000)]TJ/F7 6.9738 Tf 6.226 0 Td [(1)]TJ/F11 9.9626 Tf 4.47 -4.113 Td [(x)]TJ/F8 9.9626 Tf 7.907 0 Td [(+)]TJ/F11 9.9626 Tf 9.963 0 Td [(\014)-53(y)]TJ -77.312 -14.944 Td [(y)]TJ/F14 9.9626 Tf 15.205 0 Td [(\040)]TJ/F11 9.9626 Tf 19.925 0 Td [(\013)-4(D)-27(T)]TJ/F13 6.9738 Tf 22.141 4.113 Td [(\000)]TJ/F7 6.9738 Tf 6.226 0 Td [(1)]TJ/F11 9.9626 Tf 4.47 -4.113 Td [(x)]TJ/F8 9.9626 Tf 7.907 0 Td [(+)]TJ/F11 9.9626 Tf 9.963 0 Td [(\014)-53(y)]TJ -85.837 -14.944 Td [(y)]TJ/F14 9.9626 Tf 15.205 0 Td [(\040)]TJ/F11 9.9626 Tf 19.925 0 Td [(\013)-4(T)]TJ/F13 6.9738 Tf 13.616 4.113 Td [(\000)]TJ/F7 6.9738 Tf 6.226 0 Td [(1)]TJ/F11 9.9626 Tf 4.47 -4.113 Td [(D)-28(x)]TJ/F8 9.9626 Tf 16.432 0 Td [(+)]TJ/F11 9.9626 Tf 9.963 0 Td [(\014)-53(y)]TJ -85.837 -14.944 Td [(y)]TJ/F14 9.9626 Tf 15.205 0 Td [(\040)]TJ/F11 9.9626 Tf 19.925 0 Td [(\013)-4(T)]TJ/F13 6.9738 Tf 13.616 4.113 Td [(\000)]TJ/F10 6.9738 Tf 6.226 0 Td [(T)]TJ/F11 9.9626 Tf 6.276 -4.113 Td [(x)]TJ/F8 9.9626 Tf 7.908 0 Td [(+)]TJ/F11 9.9626 Tf 9.963 0 Td [(\014)-53(y)]TJ -79.119 -14.944 Td [(y)]TJ/F14 9.9626 Tf 15.205 0 Td [(\040)]TJ/F11 9.9626 Tf 19.925 0 Td [(\013)-4(D)-27(T)]TJ/F13 6.9738 Tf 22.141 4.113 Td [(\000)]TJ/F10 6.9738 Tf 6.226 0 Td [(T)]TJ/F11 9.9626 Tf 6.276 -4.113 Td [(x)]TJ/F8 9.9626 Tf 7.908 0 Td [(+)]TJ/F11 9.9626 Tf 9.963 0 Td [(\014)-53(y)]TJ -87.644 -14.944 Td [(y)]TJ/F14 9.9626 Tf 15.205 0 Td [(\040)]TJ/F11 9.9626 Tf 19.925 0 Td [(\013)-4(T)]TJ/F13 6.9738 Tf 13.616 4.113 Td [(\000)]TJ/F10 6.9738 Tf 6.226 0 Td [(T)]TJ/F11 9.9626 Tf 6.276 -4.113 Td [(D)-28(x)]TJ/F8 9.9626 Tf 16.433 0 Td [(+)]TJ/F11 9.9626 Tf 9.963 0 Td [(\014)-53(y)]TJ -87.644 -14.944 Td [(y)]TJ/F14 9.9626 Tf 15.205 0 Td [(\040)]TJ/F11 9.9626 Tf 19.925 0 Td [(\013)-4(T)]TJ/F13 6.9738 Tf 13.616 4.113 Td [(\000)]TJ/F10 6.9738 Tf 6.226 0 Td [(H)]TJ/F11 9.9626 Tf 7.557 -4.113 Td [(x)]TJ/F8 9.9626 Tf 7.907 0 Td [(+)]TJ/F11 9.9626 Tf 9.963 0 Td [(\014)-53(y)]TJ -80.399 -14.944 Td [(y)]TJ/F14 9.9626 Tf 15.205 0 Td [(\040)]TJ/F11 9.9626 Tf 19.925 0 Td [(\013)-4(D)-27(T)]TJ/F13 6.9738 Tf 22.141 4.113 Td [(\000)]TJ/F10 6.9738 Tf 6.226 0 Td [(H)]TJ/F11 9.9626 Tf 7.557 -4.113 Td [(x)]TJ/F8 9.9626 Tf 7.907 0 Td [(+)]TJ/F11 9.9626 Tf 9.963 0 Td [(\014)-53(y)]TJ -88.924 -14.944 Td [(y)]TJ/F14 9.9626 Tf 15.205 0 Td [(\040)]TJ/F11 9.9626 Tf 19.925 0 Td [(\013)-4(T)]TJ/F13 6.9738 Tf 13.616 4.113 Td [(\000)]TJ/F10 6.9738 Tf 6.226 0 Td [(H)]TJ/F11 9.9626 Tf 7.557 -4.113 Td [(D)-28(x)]TJ/F8 9.9626 Tf 16.432 0 Td [(+)]TJ/F11 9.9626 Tf 9.963 0 Td [(\014)-53(y)]TJ/F8 9.9626 Tf -195.672 -37.999 Td [(where:)]TJ 0 g 0 G /F11 9.9626 Tf -14.944 -21.063 Td [(x)]TJ 0 g 0 G -/F8 9.9626 Tf 10.676 0 Td [(is)-333(the)-334(global)-333(dense)-333(matrix)]TJ/F11 9.9626 Tf 116.092 0 Td [(x)]TJ/F7 6.9738 Tf 5.694 -1.494 Td [(:)]TJ/F10 6.9738 Tf 2.256 0 Td [(;)]TJ/F7 6.9738 Tf 2.366 0 Td [(:)]TJ +/F8 9.9626 Tf 10.675 0 Td [(is)-333(the)-334(global)-333(dense)-333(matrix)]TJ/F11 9.9626 Tf 116.093 0 Td [(x)]TJ/F7 6.9738 Tf 5.694 -1.494 Td [(:)]TJ/F10 6.9738 Tf 2.255 0 Td [(;)]TJ/F7 6.9738 Tf 2.366 0 Td [(:)]TJ 0 g 0 G -/F11 9.9626 Tf -137.084 -19.948 Td [(y)]TJ +/F11 9.9626 Tf -137.083 -19.948 Td [(y)]TJ 0 g 0 G -/F8 9.9626 Tf 10.224 0 Td [(is)-333(the)-334(global)-333(dense)-333(matrix)]TJ/F11 9.9626 Tf 116.092 0 Td [(y)]TJ/F7 6.9738 Tf 4.885 -1.494 Td [(:)]TJ/F10 6.9738 Tf 2.255 0 Td [(;)]TJ/F7 6.9738 Tf 2.366 0 Td [(:)]TJ +/F8 9.9626 Tf 10.223 0 Td [(is)-333(the)-334(global)-333(dense)-333(matrix)]TJ/F11 9.9626 Tf 116.093 0 Td [(y)]TJ/F7 6.9738 Tf 4.884 -1.494 Td [(:)]TJ/F10 6.9738 Tf 2.256 0 Td [(;)]TJ/F7 6.9738 Tf 2.366 0 Td [(:)]TJ 0 g 0 G /F11 9.9626 Tf -135.822 -19.948 Td [(T)]TJ 0 g 0 G -/F8 9.9626 Tf 12.187 0 Td [(is)-333(the)-334(global)-333(sparse)-333(blo)-28(c)28(k)-334(triangular)-333(submatrix)]TJ/F11 9.9626 Tf 206.781 0 Td [(T)]TJ +/F8 9.9626 Tf 12.187 0 Td [(is)-333(the)-334(global)-333(sparse)-333(blo)-28(c)28(k)-334(triangul)1(a)-1(r)-333(submatrix)]TJ/F11 9.9626 Tf 206.78 0 Td [(T)]TJ 0 g 0 G - -218.968 -21.441 Td [(D)]TJ + -218.967 -21.441 Td [(D)]TJ 0 g 0 G -/F8 9.9626 Tf 13.507 0 Td [(is)-333(the)-334(scaling)-333(diagonal)-333(matrix.)]TJ +/F8 9.9626 Tf 13.506 0 Td [(is)-333(the)-334(scaling)-333(diagonal)-333(matrix.)]TJ 0 g 0 G 0 g 0 G -/F30 9.9626 Tf -13.507 -23.814 Td [(call)-525(psb_spsm\050alpha,)-525(t,)-525(x,)-525(beta,)-525(y,)-525(desc_a,)-525(info\051)]TJ 0 -11.955 Td [(call)-525(psb_spsm\050alpha,)-525(t,)-525(x,)-525(beta,)-525(y,)-525(desc_a,)-525(info,&)]TJ 67.995 -11.955 Td [(&)-525(trans,)-525(unit,)-525(choice,)-525(diag,)-525(work\051)]TJ +/F30 9.9626 Tf -13.506 -23.814 Td [(call)-525(psb_spsm\050alpha,)-525(t,)-525(x,)-525(beta,)-525(y,)-525(desc_a,)-525(info\051)]TJ 0 -11.955 Td [(call)-525(psb_spsm\050alpha,)-525(t,)-525(x,)-525(beta,)-525(y,)-525(desc_a,)-525(info,&)]TJ 67.994 -11.955 Td [(&)-525(trans,)-525(unit,)-525(choice,)-525(diag,)-525(work\051)]TJ 0 g 0 G 0 g 0 G 0 g 0 G ET q -1 0 0 1 177.988 335.134 cm +1 0 0 1 228.797 335.134 cm []0 d 0 J 0.398 w 0 0 m 187.526 0 l S Q BT -/F11 9.9626 Tf 183.966 326.566 Td [(T)]TJ/F8 9.9626 Tf 7.205 0 Td [(,)]TJ/F11 9.9626 Tf 6.088 0 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(,)]TJ/F11 9.9626 Tf 6.089 0 Td [(y)]TJ/F8 9.9626 Tf 5.242 0 Td [(,)]TJ/F11 9.9626 Tf 6.088 0 Td [(D)]TJ/F8 9.9626 Tf 8.525 0 Td [(,)]TJ/F11 9.9626 Tf 6.088 0 Td [(\013)]TJ/F8 9.9626 Tf 6.41 0 Td [(,)]TJ/F11 9.9626 Tf 6.088 0 Td [(\014)]TJ/F27 9.9626 Tf 56.892 0 Td [(Subroutine)]TJ +/F11 9.9626 Tf 234.775 326.566 Td [(T)]TJ/F8 9.9626 Tf 7.206 0 Td [(,)]TJ/F11 9.9626 Tf 6.088 0 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(,)]TJ/F11 9.9626 Tf 6.088 0 Td [(y)]TJ/F8 9.9626 Tf 5.242 0 Td [(,)]TJ/F11 9.9626 Tf 6.088 0 Td [(D)]TJ/F8 9.9626 Tf 8.525 0 Td [(,)]TJ/F11 9.9626 Tf 6.089 0 Td [(\013)]TJ/F8 9.9626 Tf 6.41 0 Td [(,)]TJ/F11 9.9626 Tf 6.088 0 Td [(\014)]TJ/F27 9.9626 Tf 56.892 0 Td [(Subroutine)]TJ ET q -1 0 0 1 177.988 322.78 cm +1 0 0 1 228.797 322.78 cm []0 d 0 J 0.398 w 0 0 m 187.526 0 l S Q BT -/F8 9.9626 Tf 183.966 314.213 Td [(Short)-333(Precision)-333(R)-1(eal)-3102(psb)]TJ +/F8 9.9626 Tf 234.775 314.213 Td [(Short)-333(Precision)-334(Real)-3102(psb)]TJ ET q -1 0 0 1 319.972 314.412 cm +1 0 0 1 370.782 314.412 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 322.961 314.213 Td [(spsm)]TJ -138.995 -11.956 Td [(Long)-333(Precision)-334(Real)-3314(p)1(s)-1(b)]TJ +/F8 9.9626 Tf 373.771 314.213 Td [(spsm)]TJ -138.996 -11.956 Td [(Long)-333(Precision)-334(Real)-3314(psb)]TJ ET q -1 0 0 1 319.972 302.457 cm +1 0 0 1 370.782 302.457 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 322.961 302.257 Td [(spsm)]TJ -138.995 -11.955 Td [(Short)-333(Precision)-333(C)-1(omplex)-1200(p)1(s)-1(b)]TJ +/F8 9.9626 Tf 373.771 302.257 Td [(spsm)]TJ -138.996 -11.955 Td [(Short)-333(Precision)-334(Complex)-1200(psb)]TJ ET q -1 0 0 1 319.972 290.501 cm +1 0 0 1 370.782 290.501 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 322.961 290.302 Td [(spsm)]TJ -138.995 -11.955 Td [(Long)-333(Precision)-334(Complex)-1411(psb)]TJ +/F8 9.9626 Tf 373.771 290.302 Td [(spsm)]TJ -138.996 -11.955 Td [(Long)-333(Precision)-334(Complex)-1411(psb)]TJ ET q -1 0 0 1 319.972 278.546 cm +1 0 0 1 370.782 278.546 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 322.961 278.347 Td [(spsm)]TJ +/F8 9.9626 Tf 373.771 278.347 Td [(spsm)]TJ ET q -1 0 0 1 177.988 274.561 cm +1 0 0 1 228.797 274.561 cm []0 d 0 J 0.398 w 0 0 m 187.526 0 l S Q 0 g 0 G BT -/F8 9.9626 Tf 225.577 246.522 Td [(T)83(able)-333(13:)-444(Data)-334(t)28(yp)-28(es)]TJ +/F8 9.9626 Tf 276.386 246.522 Td [(T)83(able)-333(13:)-444(Data)-334(t)28(yp)-28(es)]TJ 0 g 0 G 0 g 0 G 0 g 0 G -/F27 9.9626 Tf -125.682 -35.492 Td [(T)32(yp)-32(e:)]TJ +/F27 9.9626 Tf -125.681 -35.492 Td [(T)32(yp)-32(e:)]TJ 0 g 0 G /F8 9.9626 Tf 33.797 0 Td [(Sync)28(hronous.)]TJ 0 g 0 G @@ -10676,848 +10758,841 @@ BT 0 g 0 G 0 -21.442 Td [(alpha)]TJ 0 g 0 G -/F8 9.9626 Tf 32.033 0 Td [(the)-333(scalar)]TJ/F11 9.9626 Tf 45.468 0 Td [(\013)]TJ/F8 9.9626 Tf 6.41 0 Td [(.)]TJ -59.004 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(global)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(n)28(um)28(b)-28(er)-333(of)-334(the)-333(data)-333(t)28(yp)-28(e)-334(ind)1(ic)-1(ated)-333(in)-333(T)83(able)]TJ +/F8 9.9626 Tf 32.032 0 Td [(the)-333(scalar)]TJ/F11 9.9626 Tf 45.469 0 Td [(\013)]TJ/F8 9.9626 Tf 6.41 0 Td [(.)]TJ -59.005 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(global)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.612 0 Td [(required)]TJ/F8 9.9626 Tf -29.612 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.548 0 Td [(.)]TJ -43.034 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(n)28(um)28(b)-28(er)-333(of)-334(the)-333(data)-333(t)27(yp)-27(e)-334(indicated)-333(in)-333(T)83(able)]TJ 0 0 1 rg 0 0 1 RG [-333(13)]TJ 0 g 0 G [(.)]TJ 0 g 0 G - 141.968 -29.888 Td [(45)]TJ + 141.968 -29.888 Td [(46)]TJ 0 g 0 G ET endstream endobj -1111 0 obj +1011 0 obj << -/Length 7789 +/Type /ObjStm +/N 100 +/First 988 +/Length 12372 >> stream -0 g 0 G -0 g 0 G -0 g 0 G -BT -/F27 9.9626 Tf 150.705 706.129 Td [(t)]TJ -0 g 0 G -/F8 9.9626 Tf 9.437 0 Td [(the)-333(global)-334(p)-27(ortion)-334(of)-333(the)-333(sparse)-334(matrix)]TJ/F11 9.9626 Tf 172.603 0 Td [(T)]TJ/F8 9.9626 Tf 7.205 0 Td [(.)]TJ -164.339 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.612 0 Td [(required)]TJ/F8 9.9626 Tf -29.612 -11.956 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.548 0 Td [(.)]TJ -43.034 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(ob)-55(ject)-334(t)28(yp)-28(e)-333(sp)-28(eci\014ed)-333(in)]TJ/F14 9.9626 Tf 176.118 0 Td [(x)]TJ -0 0 1 rg 0 0 1 RG -/F8 9.9626 Tf 7.749 0 Td [(3)]TJ -0 g 0 G - [(.)]TJ -0 g 0 G -/F27 9.9626 Tf -208.773 -20.65 Td [(x)]TJ -0 g 0 G -/F8 9.9626 Tf 11.028 0 Td [(the)-333(lo)-28(cal)-333(p)-28(ortion)-333(of)-334(global)-333(dense)-333(matrix)]TJ/F11 9.9626 Tf 176.118 0 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(.)]TJ -167.934 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.612 0 Td [(required)]TJ/F8 9.9626 Tf -29.612 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-255(as:)-405(a)-255(rank)-254(one)-255(or)-255(t)28(w)27(o)-254(arra)27(y)-254(or)-255(an)-255(ob)-56(j)1(e)-1(ct)-254(of)-255(t)28(yp)-28(e)]TJ -0 0 1 rg 0 0 1 RG -/F30 9.9626 Tf 244.743 0 Td [(psb)]TJ -ET -q -1 0 0 1 436.673 590.037 cm -[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S -Q -BT -/F30 9.9626 Tf 439.811 589.838 Td [(T)]TJ -ET -q -1 0 0 1 445.669 590.037 cm -[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S -Q -BT -/F30 9.9626 Tf 448.807 589.838 Td [(vect)]TJ -ET -q -1 0 0 1 470.356 590.037 cm -[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S -Q -BT -/F30 9.9626 Tf 473.495 589.838 Td [(type)]TJ -0 g 0 G -/F8 9.9626 Tf -297.884 -11.955 Td [(con)28(taining)-342(n)28(um)28(b)-28(ers)-342(of)-342(t)28(yp)-28(e)-342(sp)-28(eci\014ed)-342(in)-341(T)83(able)]TJ -0 0 1 rg 0 0 1 RG - [-342(13)]TJ -0 g 0 G - [(.)-470(The)-342(rank)-342(of)]TJ/F11 9.9626 Tf 274.695 0 Td [(x)]TJ/F8 9.9626 Tf 9.1 0 Td [(m)28(ust)-342(b)-28(e)]TJ -283.795 -11.956 Td [(the)-333(same)-334(of)]TJ/F11 9.9626 Tf 53.467 0 Td [(y)]TJ/F8 9.9626 Tf 5.242 0 Td [(.)]TJ -0 g 0 G -/F27 9.9626 Tf -83.615 -20.649 Td [(b)-32(eta)]TJ -0 g 0 G -/F8 9.9626 Tf 26.94 0 Td [(the)-333(scalar)]TJ/F11 9.9626 Tf 45.469 0 Td [(\014)]TJ/F8 9.9626 Tf 6.161 0 Td [(.)]TJ -53.663 -11.956 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.378 0 Td [(global)]TJ/F8 9.9626 Tf -32.378 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.485 0 Td [(in)]TJ/F8 9.9626 Tf 9.548 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-444(a)-334(n)28(um)28(b)-28(er)-333(of)-334(the)-333(data)-333(t)28(yp)-28(e)-334(in)1(dicate)-1(d)-333(in)-333(T)83(able)]TJ -0 0 1 rg 0 0 1 RG - [-333(13)]TJ -0 g 0 G - [(.)]TJ -0 g 0 G -/F27 9.9626 Tf -24.907 -20.65 Td [(y)]TJ -0 g 0 G -/F8 9.9626 Tf 11.028 0 Td [(the)-333(lo)-28(cal)-333(p)-28(ortion)-333(of)-334(global)-333(dense)-333(matrix)]TJ/F11 9.9626 Tf 176.118 0 Td [(y)]TJ/F8 9.9626 Tf 5.242 0 Td [(.)]TJ -167.481 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.378 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.378 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.956 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.485 0 Td [(inout)]TJ/F8 9.9626 Tf 26.097 0 Td [(.)]TJ -59.582 -11.955 Td [(Sp)-28(eci\014ed)-255(as:)-405(a)-255(rank)-254(one)-255(or)-255(t)28(w)28(o)-255(arra)28(y)-255(or)-255(an)-255(ob)-55(ject)-255(of)-255(t)28(yp)-28(e)]TJ -0 0 1 rg 0 0 1 RG -/F30 9.9626 Tf 244.742 0 Td [(psb)]TJ -ET -q -1 0 0 1 436.673 429.186 cm -[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S -Q -BT -/F30 9.9626 Tf 439.811 428.986 Td [(T)]TJ -ET -q -1 0 0 1 445.669 429.186 cm -[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S -Q -BT -/F30 9.9626 Tf 448.807 428.986 Td [(vect)]TJ -ET -q -1 0 0 1 470.356 429.186 cm -[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S -Q -BT -/F30 9.9626 Tf 473.495 428.986 Td [(type)]TJ -0 g 0 G -/F8 9.9626 Tf -297.884 -11.955 Td [(con)28(taining)-345(n)28(um)28(b)-28(ers)-345(of)-345(t)28(yp)-28(e)-345(sp)-28(eci\014ed)-345(in)-345(T)84(able)]TJ -0 0 1 rg 0 0 1 RG - [-345(13)]TJ -0 g 0 G - [(.)-479(The)-345(rank)-345(of)]TJ/F11 9.9626 Tf 275.087 0 Td [(y)]TJ/F8 9.9626 Tf 8.678 0 Td [(m)28(ust)-345(b)-28(e)]TJ -283.765 -11.955 Td [(the)-333(same)-334(of)]TJ/F11 9.9626 Tf 53.467 0 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(.)]TJ -0 g 0 G -/F27 9.9626 Tf -84.067 -20.65 Td [(desc)]TJ -ET -q -1 0 0 1 172.619 384.625 cm -[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S -Q -BT -/F27 9.9626 Tf 176.057 384.426 Td [(a)]TJ -0 g 0 G -/F8 9.9626 Tf 10.55 0 Td [(con)28(tains)-334(data)-333(structures)-333(for)-333(c)-1(omm)28(unications.)]TJ -10.996 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.612 0 Td [(required)]TJ/F8 9.9626 Tf -29.612 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.548 0 Td [(.)]TJ -43.034 -11.956 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(ob)-55(ject)-334(of)-333(t)28(yp)-28(e)]TJ -0 0 1 rg 0 0 1 RG -/F30 9.9626 Tf 135.659 0 Td [(psb)]TJ -ET -q -1 0 0 1 327.588 336.805 cm -[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S -Q -BT -/F30 9.9626 Tf 330.727 336.605 Td [(desc)]TJ -ET -q -1 0 0 1 352.275 336.805 cm -[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S -Q -BT -/F30 9.9626 Tf 355.414 336.605 Td [(type)]TJ -0 g 0 G -/F8 9.9626 Tf 20.921 0 Td [(.)]TJ -0 g 0 G -/F27 9.9626 Tf -225.63 -20.649 Td [(trans)]TJ -0 g 0 G -/F8 9.9626 Tf 30.609 0 Td [(sp)-28(ecify)-333(with)]TJ/F17 9.9626 Tf 55.68 0 Td [(unitd)]TJ/F8 9.9626 Tf 25.725 0 Td [(the)-333(op)-28(eration)-333(to)-334(p)-27(e)-1(r)1(form.)]TJ -0 g 0 G -/F27 9.9626 Tf -87.108 -20.65 Td [(trans)-383(=)-384('N')]TJ -0 g 0 G -/F8 9.9626 Tf 62.489 0 Td [(the)-333(op)-28(eration)-333(is)-334(with)-333(no)-333(transp)-28(osed)-333(matrix)]TJ -0 g 0 G -/F27 9.9626 Tf -62.489 -16.303 Td [(trans)-383(=)-384('T')]TJ -0 g 0 G -/F8 9.9626 Tf 61.493 0 Td [(the)-333(op)-28(eration)-333(is)-334(with)-333(transp)-28(osed)-333(matrix.)]TJ -0 g 0 G -/F27 9.9626 Tf -61.493 -16.302 Td [(trans)-383(=)-384('C')]TJ -0 g 0 G -/F8 9.9626 Tf 61.798 0 Td [(the)-333(op)-28(eration)-333(is)-334(with)-333(conjugate)-333(transp)-28(osed)-333(matrix.)]TJ -61.798 -20.65 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(global)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.612 0 Td [(optional)]TJ/F8 9.9626 Tf -29.612 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.956 Td [(Default:)]TJ/F11 9.9626 Tf 39.436 0 Td [(tr)-28(ans)]TJ/F8 9.9626 Tf 27.052 0 Td [(=)]TJ/F11 9.9626 Tf 10.517 0 Td [(N)]TJ/F8 9.9626 Tf -77.005 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(c)28(haracter)-334(v)56(ariable.)]TJ -0 g 0 G -/F27 9.9626 Tf -24.906 -20.65 Td [(unitd)]TJ -0 g 0 G -/F8 9.9626 Tf 31.714 0 Td [(sp)-28(ecify)-333(with)]TJ/F17 9.9626 Tf 55.68 0 Td [(tr)51(ans)]TJ/F8 9.9626 Tf 25.089 0 Td [(the)-333(op)-28(eration)-333(to)-334(p)-27(erform.)]TJ -0 g 0 G -/F27 9.9626 Tf -87.577 -20.649 Td [(unitd)-383(=)-384('U')]TJ -0 g 0 G -/F8 9.9626 Tf 63.443 0 Td [(the)-333(op)-28(eration)-333(is)-334(with)-333(no)-333(scaling)]TJ -0 g 0 G -/F27 9.9626 Tf -63.443 -16.303 Td [(unitd)-383(=)-384('L')]TJ -0 g 0 G -/F8 9.9626 Tf 61.519 0 Td [(the)-333(op)-28(eration)-333(is)-334(with)-333(left)-333(scaling)]TJ -0 g 0 G -/F27 9.9626 Tf -61.519 -16.302 Td [(unitd)-383(=)-384('R')]TJ -0 g 0 G -/F8 9.9626 Tf 63.221 0 Td [(the)-333(op)-28(eration)-333(is)-334(with)-333(righ)28(t)-333(s)-1(caling.)]TJ -0 g 0 G - 78.747 -29.888 Td [(46)]TJ -0 g 0 G -ET - -endstream -endobj -1010 0 obj +1003 0 1004 146 1005 293 1009 438 220 496 1010 553 1006 612 1013 757 1015 874 1012 933 +1020 1013 1016 1169 1017 1313 1018 1459 1022 1606 224 1664 1023 1721 1019 1780 1028 1925 1024 2081 +1025 2225 1026 2371 1030 2517 228 2576 1031 2634 1027 2693 1036 2838 1032 2995 1033 3139 1034 3285 +1038 3432 232 3490 1039 3547 1035 3606 1045 3763 1041 3920 1042 4063 1043 4208 1047 4354 236 4413 +1048 4471 1044 4530 1050 4687 1052 4805 1049 4863 1057 4943 1053 5100 1054 5244 1055 5390 1059 5537 +240 5596 1060 5654 1056 5713 1065 5858 1061 6015 1062 6159 1063 6304 1067 6451 244 6509 1068 6566 +1064 6625 1072 6769 1069 6917 1070 7062 1074 7209 248 7268 1075 7326 1071 7385 1079 7529 1076 7677 +1077 7822 1081 7969 252 8027 1083 8084 1078 8143 1091 8289 1085 8455 1086 8602 1087 8747 1088 8891 +1093 9038 256 9097 1094 9155 1095 9214 1096 9273 1097 9332 1090 9391 1106 9548 1089 9750 1098 9897 +1099 10041 1100 10188 1101 10335 1102 10486 1103 10637 1104 10788 1108 10935 1105 10993 1112 11099 1109 11238 +% 1003 0 obj << -/Type /ObjStm -/N 100 -/First 991 -/Length 12620 +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [328.544 280.273 335.518 291.121] +/A << /S /GoTo /D (table.3) >> >> -stream -1002 0 1003 144 1004 290 1008 437 220 496 1009 554 1005 613 1015 758 1011 914 1012 1058 -1013 1204 1017 1350 224 1408 1018 1465 1014 1524 1023 1669 1019 1825 1020 1969 1021 2115 1025 2262 -228 2321 1026 2379 1022 2438 1031 2595 1027 2752 1028 2895 1029 3040 1033 3186 232 3244 1034 3301 -1030 3360 1037 3517 1039 3635 1036 3694 1044 3774 1040 3931 1041 4075 1042 4221 1046 4368 236 4426 -1047 4483 1043 4542 1052 4687 1048 4844 1049 4988 1050 5133 1054 5280 240 5339 1055 5397 1051 5456 -1059 5600 1056 5748 1057 5893 1061 6040 244 6098 1062 6155 1058 6214 1066 6358 1063 6506 1064 6651 -1068 6798 248 6857 1070 6915 1065 6974 1077 7120 1071 7286 1072 7433 1073 7578 1074 7722 1079 7869 -252 7927 1080 7984 1081 8043 1082 8102 1083 8161 1076 8220 1093 8377 1075 8579 1085 8726 1086 8870 -1087 9017 1088 9164 1089 9315 1090 9466 1091 9617 1095 9764 1092 9823 1099 9929 1096 10068 1101 10214 -256 10272 1102 10329 1098 10388 1110 10559 1097 10752 1103 10900 1104 11044 1105 11191 1106 11338 1107 11482 -% 1002 0 obj +% 1004 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [259.464 201.792 326.522 212.917] +/A << /S /GoTo /D (descdata) >> +>> +% 1005 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [151.203 119.329 158.177 128.24] +/A << /S /GoTo /D (table.2) >> +>> +% 1009 0 obj +<< +/D [1007 0 R /XYZ 98.895 753.953 null] +>> +% 220 0 obj +<< +/D [1007 0 R /XYZ 99.895 720.077 null] +>> +% 1010 0 obj +<< +/D [1007 0 R /XYZ 267.641 510.309 null] +>> +% 1006 0 obj +<< +/Font << /F16 554 0 R /F8 557 0 R /F11 750 0 R /F14 767 0 R /F10 766 0 R /F30 764 0 R /F27 556 0 R >> +/ProcSet [ /PDF /Text ] +>> +% 1013 0 obj +<< +/Type /Page +/Contents 1014 0 R +/Resources 1012 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 995 0 R +>> +% 1015 0 obj +<< +/D [1013 0 R /XYZ 149.705 753.953 null] +>> +% 1012 0 obj +<< +/Font << /F27 556 0 R /F8 557 0 R >> +/ProcSet [ /PDF /Text ] +>> +% 1020 0 obj +<< +/Type /Page +/Contents 1021 0 R +/Resources 1019 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 995 0 R +/Annots [ 1016 0 R 1017 0 R 1018 0 R ] +>> +% 1016 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [419.358 338.197 495.412 349.322] +/Rect [368.549 338.197 444.603 349.322] /A << /S /GoTo /D (vdata) >> >> -% 1003 0 obj +% 1017 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [376.221 326.519 383.195 337.367] +/Rect [325.411 326.519 332.385 337.367] /A << /S /GoTo /D (table.4) >> >> -% 1004 0 obj +% 1018 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] +/Rect [259.464 258.808 326.522 269.933] /A << /S /GoTo /D (descdata) >> >> -% 1008 0 obj +% 1022 0 obj << -/D [1006 0 R /XYZ 149.705 753.953 null] +/D [1020 0 R /XYZ 98.895 753.953 null] >> -% 220 0 obj +% 224 0 obj << -/D [1006 0 R /XYZ 150.705 720.077 null] +/D [1020 0 R /XYZ 99.895 720.077 null] >> -% 1009 0 obj +% 1023 0 obj << -/D [1006 0 R /XYZ 318.451 472.916 null] +/D [1020 0 R /XYZ 267.641 472.916 null] >> -% 1005 0 obj +% 1019 0 obj << -/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 >> +/Font << /F16 554 0 R /F8 557 0 R /F11 750 0 R /F14 767 0 R /F10 766 0 R /F30 764 0 R /F27 556 0 R >> /ProcSet [ /PDF /Text ] >> -% 1015 0 obj +% 1028 0 obj << /Type /Page -/Contents 1016 0 R -/Resources 1014 0 R +/Contents 1029 0 R +/Resources 1027 0 R /MediaBox [0 0 595.276 841.89] -/Parent 986 0 R -/Annots [ 1011 0 R 1012 0 R 1013 0 R ] +/Parent 995 0 R +/Annots [ 1024 0 R 1025 0 R 1026 0 R ] >> -% 1011 0 obj +% 1024 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [368.549 401.031 444.603 412.156] +/Rect [419.358 401.031 495.412 412.156] /A << /S /GoTo /D (vdata) >> >> -% 1012 0 obj +% 1025 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [325.411 389.353 332.385 400.201] +/Rect [376.221 389.353 383.195 400.201] /A << /S /GoTo /D (table.5) >> >> -% 1013 0 obj +% 1026 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [259.464 321.33 326.522 332.455] +/Rect [310.273 321.33 377.331 332.455] /A << /S /GoTo /D (descdata) >> >> -% 1017 0 obj +% 1030 0 obj << -/D [1015 0 R /XYZ 98.895 753.953 null] +/D [1028 0 R /XYZ 149.705 753.953 null] >> -% 224 0 obj +% 228 0 obj << -/D [1015 0 R /XYZ 99.895 720.077 null] +/D [1028 0 R /XYZ 150.705 720.077 null] >> -% 1018 0 obj +% 1031 0 obj << -/D [1015 0 R /XYZ 267.641 537.464 null] +/D [1028 0 R /XYZ 318.451 537.464 null] >> -% 1014 0 obj +% 1027 0 obj << -/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 >> +/Font << /F16 554 0 R /F8 557 0 R /F11 750 0 R /F14 767 0 R /F10 766 0 R /F30 764 0 R /F27 556 0 R >> /ProcSet [ /PDF /Text ] >> -% 1023 0 obj +% 1036 0 obj << /Type /Page -/Contents 1024 0 R -/Resources 1022 0 R +/Contents 1037 0 R +/Resources 1035 0 R /MediaBox [0 0 595.276 841.89] -/Parent 986 0 R -/Annots [ 1019 0 R 1020 0 R 1021 0 R ] +/Parent 1040 0 R +/Annots [ 1032 0 R 1033 0 R 1034 0 R ] >> -% 1019 0 obj +% 1032 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [419.358 339.844 495.412 350.969] +/Rect [368.549 339.844 444.603 350.969] /A << /S /GoTo /D (vdata) >> >> -% 1020 0 obj +% 1033 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [376.221 328.166 383.195 339.014] +/Rect [325.411 328.166 332.385 339.014] /A << /S /GoTo /D (table.6) >> >> -% 1021 0 obj +% 1034 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [310.273 260.202 377.331 271.327] +/Rect [259.464 260.202 326.522 271.327] /A << /S /GoTo /D (descdata) >> >> -% 1025 0 obj +% 1038 0 obj << -/D [1023 0 R /XYZ 149.705 753.953 null] +/D [1036 0 R /XYZ 98.895 753.953 null] >> -% 228 0 obj +% 232 0 obj << -/D [1023 0 R /XYZ 150.705 720.077 null] +/D [1036 0 R /XYZ 99.895 720.077 null] >> -% 1026 0 obj +% 1039 0 obj << -/D [1023 0 R /XYZ 318.451 475.957 null] +/D [1036 0 R /XYZ 267.641 475.957 null] >> -% 1022 0 obj +% 1035 0 obj << -/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 >> +/Font << /F16 554 0 R /F8 557 0 R /F11 750 0 R /F14 767 0 R /F10 766 0 R /F7 765 0 R /F30 764 0 R /F27 556 0 R >> /ProcSet [ /PDF /Text ] >> -% 1031 0 obj +% 1045 0 obj << /Type /Page -/Contents 1032 0 R -/Resources 1030 0 R +/Contents 1046 0 R +/Resources 1044 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1035 0 R -/Annots [ 1027 0 R 1028 0 R 1029 0 R ] +/Parent 1040 0 R +/Annots [ 1041 0 R 1042 0 R 1043 0 R ] >> -% 1027 0 obj +% 1041 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [368.549 289.84 444.603 300.965] +/Rect [419.358 289.84 495.412 300.965] /A << /S /GoTo /D (vdata) >> >> -% 1028 0 obj +% 1042 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [325.411 278.162 332.385 289.01] +/Rect [376.221 278.162 383.195 289.01] /A << /S /GoTo /D (table.7) >> >> -% 1029 0 obj +% 1043 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [259.464 208.355 326.522 219.48] +/Rect [310.273 208.355 377.331 219.48] /A << /S /GoTo /D (descdata) >> >> -% 1033 0 obj +% 1047 0 obj << -/D [1031 0 R /XYZ 98.895 753.953 null] +/D [1045 0 R /XYZ 149.705 753.953 null] >> -% 232 0 obj +% 236 0 obj << -/D [1031 0 R /XYZ 99.895 720.077 null] +/D [1045 0 R /XYZ 150.705 720.077 null] >> -% 1034 0 obj +% 1048 0 obj << -/D [1031 0 R /XYZ 267.641 432.072 null] +/D [1045 0 R /XYZ 318.451 432.072 null] >> -% 1030 0 obj +% 1044 0 obj << -/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 >> +/Font << /F16 554 0 R /F8 557 0 R /F11 750 0 R /F14 767 0 R /F10 766 0 R /F7 765 0 R /F30 764 0 R /F27 556 0 R >> /ProcSet [ /PDF /Text ] >> -% 1037 0 obj +% 1050 0 obj << /Type /Page -/Contents 1038 0 R -/Resources 1036 0 R +/Contents 1051 0 R +/Resources 1049 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1035 0 R +/Parent 1040 0 R >> -% 1039 0 obj +% 1052 0 obj << -/D [1037 0 R /XYZ 149.705 753.953 null] +/D [1050 0 R /XYZ 98.895 753.953 null] >> -% 1036 0 obj +% 1049 0 obj << -/Font << /F27 552 0 R /F8 553 0 R >> +/Font << /F27 556 0 R /F8 557 0 R >> /ProcSet [ /PDF /Text ] >> -% 1044 0 obj +% 1057 0 obj << /Type /Page -/Contents 1045 0 R -/Resources 1043 0 R +/Contents 1058 0 R +/Resources 1056 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1035 0 R -/Annots [ 1040 0 R 1041 0 R 1042 0 R ] +/Parent 1040 0 R +/Annots [ 1053 0 R 1054 0 R 1055 0 R ] >> -% 1040 0 obj +% 1053 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [368.549 348.184 444.603 359.309] +/Rect [419.358 348.184 495.412 359.309] /A << /S /GoTo /D (vdata) >> >> -% 1041 0 obj +% 1054 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [325.411 336.506 332.385 347.354] +/Rect [376.221 336.506 383.195 347.354] /A << /S /GoTo /D (table.8) >> >> -% 1042 0 obj +% 1055 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [259.464 269.097 326.522 280.222] +/Rect [310.273 269.097 377.331 280.222] /A << /S /GoTo /D (descdata) >> >> -% 1046 0 obj +% 1059 0 obj << -/D [1044 0 R /XYZ 98.895 753.953 null] +/D [1057 0 R /XYZ 149.705 753.953 null] >> -% 236 0 obj +% 240 0 obj << -/D [1044 0 R /XYZ 99.895 720.077 null] +/D [1057 0 R /XYZ 150.705 720.077 null] >> -% 1047 0 obj +% 1060 0 obj << -/D [1044 0 R /XYZ 267.641 515.563 null] +/D [1057 0 R /XYZ 318.451 515.563 null] >> -% 1043 0 obj +% 1056 0 obj << -/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 >> +/Font << /F16 554 0 R /F8 557 0 R /F11 750 0 R /F14 767 0 R /F10 766 0 R /F27 556 0 R /F30 764 0 R >> /ProcSet [ /PDF /Text ] >> -% 1052 0 obj +% 1065 0 obj << /Type /Page -/Contents 1053 0 R -/Resources 1051 0 R +/Contents 1066 0 R +/Resources 1064 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1035 0 R -/Annots [ 1048 0 R 1049 0 R 1050 0 R ] +/Parent 1040 0 R +/Annots [ 1061 0 R 1062 0 R 1063 0 R ] >> -% 1048 0 obj +% 1061 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [419.358 404.491 495.412 415.616] +/Rect [368.549 404.491 444.603 415.616] /A << /S /GoTo /D (vdata) >> >> -% 1049 0 obj +% 1062 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [376.221 392.812 383.195 403.66] +/Rect [325.411 392.812 332.385 403.66] /A << /S /GoTo /D (table.9) >> >> -% 1050 0 obj +% 1063 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [310.273 324.789 377.331 335.914] +/Rect [259.464 324.789 326.522 335.914] /A << /S /GoTo /D (descdata) >> >> -% 1054 0 obj +% 1067 0 obj << -/D [1052 0 R /XYZ 149.705 753.953 null] +/D [1065 0 R /XYZ 98.895 753.953 null] >> -% 240 0 obj +% 244 0 obj << -/D [1052 0 R /XYZ 150.705 720.077 null] +/D [1065 0 R /XYZ 99.895 720.077 null] >> -% 1055 0 obj +% 1068 0 obj << -/D [1052 0 R /XYZ 318.451 540.923 null] +/D [1065 0 R /XYZ 267.641 540.923 null] >> -% 1051 0 obj +% 1064 0 obj << -/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 >> +/Font << /F16 554 0 R /F8 557 0 R /F11 750 0 R /F14 767 0 R /F7 765 0 R /F30 764 0 R /F27 556 0 R >> /ProcSet [ /PDF /Text ] >> -% 1059 0 obj +% 1072 0 obj << /Type /Page -/Contents 1060 0 R -/Resources 1058 0 R +/Contents 1073 0 R +/Resources 1071 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1035 0 R -/Annots [ 1056 0 R 1057 0 R ] +/Parent 1040 0 R +/Annots [ 1069 0 R 1070 0 R ] >> -% 1056 0 obj +% 1069 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [259.464 342.722 336.983 353.847] +/Rect [310.273 342.722 387.792 353.847] /A << /S /GoTo /D (spdata) >> >> -% 1057 0 obj +% 1070 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [259.464 274.976 326.522 286.101] +/Rect [310.273 274.976 377.331 286.101] /A << /S /GoTo /D (descdata) >> >> -% 1061 0 obj +% 1074 0 obj << -/D [1059 0 R /XYZ 98.895 753.953 null] +/D [1072 0 R /XYZ 149.705 753.953 null] >> -% 244 0 obj +% 248 0 obj << -/D [1059 0 R /XYZ 99.895 720.077 null] +/D [1072 0 R /XYZ 150.705 720.077 null] >> -% 1062 0 obj +% 1075 0 obj << -/D [1059 0 R /XYZ 270.132 513.305 null] +/D [1072 0 R /XYZ 320.941 513.305 null] >> -% 1058 0 obj +% 1071 0 obj << -/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 >> +/Font << /F16 554 0 R /F8 557 0 R /F11 750 0 R /F14 767 0 R /F7 765 0 R /F27 556 0 R /F30 764 0 R >> /ProcSet [ /PDF /Text ] >> -% 1066 0 obj +% 1079 0 obj << /Type /Page -/Contents 1067 0 R -/Resources 1065 0 R +/Contents 1080 0 R +/Resources 1078 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1035 0 R -/Annots [ 1063 0 R 1064 0 R ] +/Parent 1084 0 R +/Annots [ 1076 0 R 1077 0 R ] >> -% 1063 0 obj +% 1076 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [310.273 342.722 387.792 353.847] +/Rect [259.464 342.722 336.983 353.847] /A << /S /GoTo /D (spdata) >> >> -% 1064 0 obj +% 1077 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [310.273 274.976 377.331 286.101] +/Rect [259.464 274.976 326.522 286.101] /A << /S /GoTo /D (descdata) >> >> -% 1068 0 obj +% 1081 0 obj << -/D [1066 0 R /XYZ 149.705 753.953 null] +/D [1079 0 R /XYZ 98.895 753.953 null] >> -% 248 0 obj +% 252 0 obj << -/D [1066 0 R /XYZ 150.705 720.077 null] +/D [1079 0 R /XYZ 99.895 720.077 null] >> -% 1070 0 obj +% 1083 0 obj << -/D [1066 0 R /XYZ 320.941 513.305 null] +/D [1079 0 R /XYZ 270.132 513.305 null] >> -% 1065 0 obj +% 1078 0 obj << -/Font << /F16 550 0 R /F8 553 0 R /F11 745 0 R /F14 762 0 R /F13 1069 0 R /F27 552 0 R /F30 759 0 R >> +/Font << /F16 554 0 R /F8 557 0 R /F11 750 0 R /F14 767 0 R /F13 1082 0 R /F27 556 0 R /F30 764 0 R >> /ProcSet [ /PDF /Text ] >> -% 1077 0 obj +% 1091 0 obj << /Type /Page -/Contents 1078 0 R -/Resources 1076 0 R +/Contents 1092 0 R +/Resources 1090 0 R /MediaBox [0 0 595.276 841.89] /Parent 1084 0 R -/Annots [ 1071 0 R 1072 0 R 1073 0 R 1074 0 R ] +/Annots [ 1085 0 R 1086 0 R 1087 0 R 1088 0 R ] >> -% 1071 0 obj +% 1085 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [382.088 276.095 394.043 286.943] +/Rect [432.897 276.095 444.852 286.943] /A << /S /GoTo /D (table.12) >> >> -% 1072 0 obj +% 1086 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [259.464 208.422 336.983 219.547] +/Rect [310.273 208.422 387.792 219.547] /A << /S /GoTo /D (spdata) >> >> -% 1073 0 obj +% 1087 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [368.549 141.026 444.603 152.151] +/Rect [419.358 141.026 495.412 152.151] /A << /S /GoTo /D (vdata) >> >> -% 1074 0 obj +% 1088 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [326.008 129.347 337.963 140.196] +/Rect [376.818 129.347 388.773 140.196] /A << /S /GoTo /D (table.12) >> >> -% 1079 0 obj +% 1093 0 obj << -/D [1077 0 R /XYZ 98.895 753.953 null] +/D [1091 0 R /XYZ 149.705 753.953 null] >> -% 252 0 obj +% 256 0 obj << -/D [1077 0 R /XYZ 99.895 720.077 null] +/D [1091 0 R /XYZ 150.705 720.077 null] >> -% 1080 0 obj +% 1094 0 obj << -/D [1077 0 R /XYZ 239.804 675.784 null] +/D [1091 0 R /XYZ 290.613 675.784 null] >> -% 1081 0 obj +% 1095 0 obj << -/D [1077 0 R /XYZ 236.666 658.376 null] +/D [1091 0 R /XYZ 287.475 658.376 null] >> -% 1082 0 obj +% 1096 0 obj << -/D [1077 0 R /XYZ 236.025 640.968 null] +/D [1091 0 R /XYZ 286.835 640.968 null] >> -% 1083 0 obj +% 1097 0 obj << -/D [1077 0 R /XYZ 270.132 455.558 null] +/D [1091 0 R /XYZ 320.941 455.558 null] >> -% 1076 0 obj +% 1090 0 obj << -/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 >> +/Font << /F16 554 0 R /F8 557 0 R /F11 750 0 R /F14 767 0 R /F10 766 0 R /F7 765 0 R /F27 556 0 R /F30 764 0 R >> /ProcSet [ /PDF /Text ] >> -% 1093 0 obj +% 1106 0 obj << /Type /Page -/Contents 1094 0 R -/Resources 1092 0 R +/Contents 1107 0 R +/Resources 1105 0 R /MediaBox [0 0 595.276 841.89] /Parent 1084 0 R -/Annots [ 1075 0 R 1085 0 R 1086 0 R 1087 0 R 1088 0 R 1089 0 R 1090 0 R 1091 0 R ] +/Annots [ 1089 0 R 1098 0 R 1099 0 R 1100 0 R 1101 0 R 1102 0 R 1103 0 R 1104 0 R ] >> -% 1075 0 obj +% 1089 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [432.897 655.375 444.852 666.223] +/Rect [382.088 655.375 394.043 666.223] /A << /S /GoTo /D (table.12) >> >> -% 1085 0 obj +% 1098 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [419.358 588.824 495.412 599.949] +/Rect [368.549 588.824 444.603 599.949] /A << /S /GoTo /D (vdata) >> >> -% 1086 0 obj +% 1099 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [377.029 577.145 388.984 587.994] +/Rect [326.219 577.145 338.174 587.994] /A << /S /GoTo /D (table.12) >> >> -% 1087 0 obj +% 1100 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [310.273 498.639 377.331 509.764] +/Rect [259.464 498.639 326.522 509.764] /A << /S /GoTo /D (descdata) >> >> -% 1088 0 obj +% 1101 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [397.199 462.009 404.172 472.858] +/Rect [346.389 462.009 353.363 472.858] /A << /S /GoTo /D (equation.4.1) >> >> -% 1089 0 obj +% 1102 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [396.202 447.541 403.176 458.389] +/Rect [345.393 447.541 352.367 458.389] /A << /S /GoTo /D (equation.4.2) >> >> -% 1090 0 obj +% 1103 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [396.507 433.073 403.481 443.921] +/Rect [345.697 433.073 352.671 443.921] /A << /S /GoTo /D (equation.4.3) >> >> -% 1091 0 obj +% 1104 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [253.818 191.887 265.774 202.735] +/Rect [203.009 191.887 214.964 202.735] /A << /S /GoTo /D (table.12) >> >> -% 1095 0 obj +% 1108 0 obj << -/D [1093 0 R /XYZ 149.705 753.953 null] +/D [1106 0 R /XYZ 98.895 753.953 null] >> -% 1092 0 obj +% 1105 0 obj << -/Font << /F27 552 0 R /F8 553 0 R /F11 745 0 R /F30 759 0 R >> +/Font << /F27 556 0 R /F8 557 0 R /F11 750 0 R /F30 764 0 R >> /ProcSet [ /PDF /Text ] >> -% 1099 0 obj +% 1112 0 obj << /Type /Page -/Contents 1100 0 R -/Resources 1098 0 R +/Contents 1113 0 R +/Resources 1111 0 R /MediaBox [0 0 595.276 841.89] /Parent 1084 0 R -/Annots [ 1096 0 R ] +/Annots [ 1109 0 R ] >> -% 1096 0 obj +% 1109 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [382.088 117.392 394.043 128.24] +/Rect [432.897 117.392 444.852 128.24] /A << /S /GoTo /D (table.13) >> >> -% 1101 0 obj -<< -/D [1099 0 R /XYZ 98.895 753.953 null] ->> -% 256 0 obj -<< -/D [1099 0 R /XYZ 99.895 720.077 null] ->> -% 1102 0 obj -<< -/D [1099 0 R /XYZ 270.132 258.477 null] ->> -% 1098 0 obj + +endstream +endobj +1125 0 obj << -/Font << /F16 550 0 R /F8 553 0 R /F11 745 0 R /F14 762 0 R /F13 1069 0 R /F7 760 0 R /F10 761 0 R /F30 759 0 R /F27 552 0 R >> -/ProcSet [ /PDF /Text ] ->> -% 1110 0 obj -<< -/Type /Page -/Contents 1111 0 R -/Resources 1109 0 R -/MediaBox [0 0 595.276 841.89] -/Parent 1084 0 R -/Annots [ 1097 0 R 1103 0 R 1104 0 R 1105 0 R 1106 0 R 1107 0 R 1108 0 R ] ->> -% 1097 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [358.482 655.375 365.455 666.223] -/A << /S /GoTo /D (section.3) >> ->> -% 1103 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [419.358 586.627 495.412 597.752] -/A << /S /GoTo /D (vdata) >> ->> -% 1104 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [376.818 574.949 388.773 585.797] -/A << /S /GoTo /D (table.13) >> ->> -% 1105 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [432.897 494.523 444.852 505.372] -/A << /S /GoTo /D (table.13) >> ->> -% 1106 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [419.358 425.776 495.412 436.901] -/A << /S /GoTo /D (vdata) >> ->> -% 1107 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [377.029 414.098 388.984 424.946] -/A << /S /GoTo /D (table.13) >> +/Length 7790 >> +stream +0 g 0 G +0 g 0 G +0 g 0 G +BT +/F27 9.9626 Tf 99.895 706.129 Td [(t)]TJ +0 g 0 G +/F8 9.9626 Tf 9.437 0 Td [(the)-333(global)-334(p)-27(ortion)-334(of)-333(the)-333(sparse)-334(matrix)]TJ/F11 9.9626 Tf 172.603 0 Td [(T)]TJ/F8 9.9626 Tf 7.206 0 Td [(.)]TJ -164.339 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.956 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(ob)-55(ject)-334(t)28(yp)-28(e)-333(sp)-28(eci\014ed)-333(in)]TJ/F14 9.9626 Tf 176.118 0 Td [(x)]TJ +0 0 1 rg 0 0 1 RG +/F8 9.9626 Tf 7.748 0 Td [(3)]TJ +0 g 0 G + [(.)]TJ +0 g 0 G +/F27 9.9626 Tf -208.773 -20.65 Td [(x)]TJ +0 g 0 G +/F8 9.9626 Tf 11.028 0 Td [(the)-333(lo)-28(cal)-333(p)-28(ortion)-333(of)-334(global)-333(dense)-333(matrix)]TJ/F11 9.9626 Tf 176.118 0 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(.)]TJ -167.933 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-255(as:)-405(a)-255(rank)-254(one)-255(or)-255(t)28(w)27(o)-254(arra)27(y)-254(or)-255(an)-255(ob)-55(jec)-1(t)-254(of)-255(t)28(yp)-28(e)]TJ +0 0 1 rg 0 0 1 RG +/F30 9.9626 Tf 244.743 0 Td [(psb)]TJ +ET +q +1 0 0 1 385.864 590.037 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +Q +BT +/F30 9.9626 Tf 389.002 589.838 Td [(T)]TJ +ET +q +1 0 0 1 394.86 590.037 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +Q +BT +/F30 9.9626 Tf 397.998 589.838 Td [(vect)]TJ +ET +q +1 0 0 1 419.547 590.037 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +Q +BT +/F30 9.9626 Tf 422.685 589.838 Td [(type)]TJ +0 g 0 G +/F8 9.9626 Tf -297.883 -11.955 Td [(con)28(taining)-342(n)28(um)28(b)-28(ers)-342(of)-342(t)28(yp)-28(e)-342(sp)-28(eci\014ed)-342(in)-341(T)83(able)]TJ +0 0 1 rg 0 0 1 RG + [-342(13)]TJ +0 g 0 G + [(.)-470(The)-342(rank)-342(of)]TJ/F11 9.9626 Tf 274.694 0 Td [(x)]TJ/F8 9.9626 Tf 9.101 0 Td [(m)28(ust)-342(b)-28(e)]TJ -283.795 -11.956 Td [(the)-333(same)-334(of)]TJ/F11 9.9626 Tf 53.466 0 Td [(y)]TJ/F8 9.9626 Tf 5.242 0 Td [(.)]TJ +0 g 0 G +/F27 9.9626 Tf -83.615 -20.649 Td [(b)-32(eta)]TJ +0 g 0 G +/F8 9.9626 Tf 26.941 0 Td [(the)-333(scalar)]TJ/F11 9.9626 Tf 45.468 0 Td [(\014)]TJ/F8 9.9626 Tf 6.161 0 Td [(.)]TJ -53.663 -11.956 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(global)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(n)28(um)28(b)-28(er)-333(of)-334(the)-333(data)-333(t)28(yp)-28(e)-334(ind)1(ic)-1(ated)-333(in)-333(T)83(able)]TJ +0 0 1 rg 0 0 1 RG + [-333(13)]TJ +0 g 0 G + [(.)]TJ +0 g 0 G +/F27 9.9626 Tf -24.907 -20.65 Td [(y)]TJ +0 g 0 G +/F8 9.9626 Tf 11.028 0 Td [(the)-333(lo)-28(cal)-333(p)-28(ortion)-333(of)-334(global)-333(dense)-333(matrix)]TJ/F11 9.9626 Tf 176.118 0 Td [(y)]TJ/F8 9.9626 Tf 5.242 0 Td [(.)]TJ -167.481 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.956 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(inout)]TJ/F8 9.9626 Tf 26.096 0 Td [(.)]TJ -59.582 -11.955 Td [(Sp)-28(eci\014ed)-255(as:)-405(a)-255(rank)-254(one)-255(or)-255(t)28(w)27(o)-254(arra)27(y)-254(or)-255(an)-255(ob)-55(jec)-1(t)-254(of)-255(t)28(yp)-28(e)]TJ +0 0 1 rg 0 0 1 RG +/F30 9.9626 Tf 244.743 0 Td [(psb)]TJ +ET +q +1 0 0 1 385.864 429.186 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +Q +BT +/F30 9.9626 Tf 389.002 428.986 Td [(T)]TJ +ET +q +1 0 0 1 394.86 429.186 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +Q +BT +/F30 9.9626 Tf 397.998 428.986 Td [(vect)]TJ +ET +q +1 0 0 1 419.547 429.186 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +Q +BT +/F30 9.9626 Tf 422.685 428.986 Td [(type)]TJ +0 g 0 G +/F8 9.9626 Tf -297.883 -11.955 Td [(con)28(taining)-345(n)28(um)28(b)-28(ers)-345(of)-345(t)28(yp)-28(e)-345(sp)-28(eci\014ed)-345(in)-345(T)84(able)]TJ +0 0 1 rg 0 0 1 RG + [-345(13)]TJ +0 g 0 G + [(.)-479(The)-345(rank)-345(of)]TJ/F11 9.9626 Tf 275.086 0 Td [(y)]TJ/F8 9.9626 Tf 8.678 0 Td [(m)28(ust)-345(b)-28(e)]TJ -283.764 -11.955 Td [(the)-333(same)-334(of)]TJ/F11 9.9626 Tf 53.466 0 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(.)]TJ +0 g 0 G +/F27 9.9626 Tf -84.067 -20.65 Td [(desc)]TJ +ET +q +1 0 0 1 121.81 384.625 cm +[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S +Q +BT +/F27 9.9626 Tf 125.247 384.426 Td [(a)]TJ +0 g 0 G +/F8 9.9626 Tf 10.551 0 Td [(con)28(tains)-334(d)1(ata)-334(structures)-333(for)-333(com)-1(m)28(unications.)]TJ -10.996 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.956 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(ob)-55(ject)-334(of)-333(t)28(yp)-28(e)]TJ +0 0 1 rg 0 0 1 RG +/F30 9.9626 Tf 135.658 0 Td [(psb)]TJ +ET +q +1 0 0 1 276.779 336.805 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +Q +BT +/F30 9.9626 Tf 279.917 336.605 Td [(desc)]TJ +ET +q +1 0 0 1 301.466 336.805 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +Q +BT +/F30 9.9626 Tf 304.604 336.605 Td [(type)]TJ +0 g 0 G +/F8 9.9626 Tf 20.922 0 Td [(.)]TJ +0 g 0 G +/F27 9.9626 Tf -225.631 -20.649 Td [(trans)]TJ +0 g 0 G +/F8 9.9626 Tf 30.609 0 Td [(sp)-28(ecify)-333(with)]TJ/F17 9.9626 Tf 55.68 0 Td [(unitd)]TJ/F8 9.9626 Tf 25.726 0 Td [(the)-333(op)-28(eration)-333(to)-334(p)-27(erform.)]TJ +0 g 0 G +/F27 9.9626 Tf -87.108 -20.65 Td [(trans)-383(=)-384('N')]TJ +0 g 0 G +/F8 9.9626 Tf 62.489 0 Td [(the)-333(op)-28(eration)-333(is)-334(with)-333(no)-333(transp)-28(osed)-333(matrix)]TJ +0 g 0 G +/F27 9.9626 Tf -62.489 -16.303 Td [(trans)-383(=)-384('T')]TJ +0 g 0 G +/F8 9.9626 Tf 61.493 0 Td [(the)-333(op)-28(eration)-333(is)-334(with)-333(transp)-28(osed)-333(matrix.)]TJ +0 g 0 G +/F27 9.9626 Tf -61.493 -16.302 Td [(trans)-383(=)-384('C')]TJ +0 g 0 G +/F8 9.9626 Tf 61.797 0 Td [(the)-333(op)-28(eration)-333(is)-334(with)-333(conjugate)-333(transp)-28(osed)-333(matrix.)]TJ -61.797 -20.65 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(global)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(optional)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.956 Td [(Default:)]TJ/F11 9.9626 Tf 39.436 0 Td [(tr)-28(ans)]TJ/F8 9.9626 Tf 27.052 0 Td [(=)]TJ/F11 9.9626 Tf 10.516 0 Td [(N)]TJ/F8 9.9626 Tf -77.004 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(c)28(haracter)-333(v)55(ariable.)]TJ +0 g 0 G +/F27 9.9626 Tf -24.907 -20.65 Td [(unitd)]TJ +0 g 0 G +/F8 9.9626 Tf 31.715 0 Td [(sp)-28(ecify)-333(with)]TJ/F17 9.9626 Tf 55.68 0 Td [(tr)51(ans)]TJ/F8 9.9626 Tf 25.089 0 Td [(the)-333(op)-28(eration)-333(to)-334(p)-27(erform.)]TJ +0 g 0 G +/F27 9.9626 Tf -87.577 -20.649 Td [(unitd)-383(=)-384('U')]TJ +0 g 0 G +/F8 9.9626 Tf 63.442 0 Td [(the)-333(op)-28(eration)-333(is)-334(with)-333(no)-333(scaling)]TJ +0 g 0 G +/F27 9.9626 Tf -63.442 -16.303 Td [(unitd)-383(=)-384('L')]TJ +0 g 0 G +/F8 9.9626 Tf 61.519 0 Td [(the)-333(op)-28(eration)-333(is)-334(with)-333(left)-333(scaling)]TJ +0 g 0 G +/F27 9.9626 Tf -61.519 -16.302 Td [(unitd)-383(=)-384('R')]TJ +0 g 0 G +/F8 9.9626 Tf 63.221 0 Td [(the)-333(op)-28(eration)-333(is)-334(with)-333(righ)28(t)-333(s)-1(calin)1(g.)]TJ +0 g 0 G + 78.747 -29.888 Td [(47)]TJ +0 g 0 G +ET endstream endobj -1118 0 obj +1131 0 obj << -/Length 4663 +/Length 4678 >> 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 +/F8 9.9626 Tf 175.611 706.129 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(global)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.612 0 Td [(optional)]TJ/F8 9.9626 Tf -29.612 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.548 0 Td [(.)]TJ -43.034 -11.956 Td [(Default:)]TJ/F11 9.9626 Tf 39.436 0 Td [(unitd)]TJ/F8 9.9626 Tf 26.666 0 Td [(=)]TJ/F11 9.9626 Tf 10.516 0 Td [(U)]TJ/F8 9.9626 Tf -76.618 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(c)28(haracter)-334(v)56(ariable.)]TJ 0 g 0 G -/F27 9.9626 Tf -24.907 -19.925 Td [(c)32(hoice)]TJ +/F27 9.9626 Tf -24.906 -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 +/F8 9.9626 Tf 35.374 0 Td [(sp)-28(eci\014es)-333(the)-334(up)-27(date)-334(of)-333(o)28(v)28(erlap)-334(elemen)28(ts)-333(to)-334(b)-27(e)-334(p)-28(erf)1(orme)-1(d)-333(on)-333(exit:)]TJ 0 g 0 G 0 g 0 G -/F30 9.9626 Tf -5.487 -19.925 Td [(psb_none_)]TJ +/F30 9.9626 Tf -5.486 -19.925 Td [(psb_none_)]TJ 0 g 0 G 0 g 0 G 0 -15.941 Td [(psb_sum_)]TJ @@ -11526,172 +11601,172 @@ BT 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 -15.94 Td [(psb_square_root_)]TJ/F8 9.9626 Tf -4.982 -19.925 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(global)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.612 0 Td [(optional)]TJ/F8 9.9626 Tf -29.612 -11.956 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.548 0 Td [(.)]TJ -43.034 -11.955 Td [(Default:)]TJ/F30 9.9626 Tf 39.436 0 Td [(psb_avg_)]TJ/F8 9.9626 Tf -39.436 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(in)28(teger)-333(v)55(ariable.)]TJ 0 g 0 G -/F27 9.9626 Tf -24.907 -19.925 Td [(diag)]TJ +/F27 9.9626 Tf -24.906 -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 +/F8 9.9626 Tf 25.826 0 Td [(the)-333(diagonal)-334(scaling)-333(matrix.)]TJ -0.92 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.956 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.612 0 Td [(optional)]TJ/F8 9.9626 Tf -29.612 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.955 Td [(Default:)]TJ/F11 9.9626 Tf 39.436 0 Td [(diag)]TJ/F8 9.9626 Tf 18.993 0 Td [(\0501\051)-278(=)-278(1\050)]TJ/F11 9.9626 Tf 34.869 0 Td [(noscal)-20(ing)]TJ/F8 9.9626 Tf 42.747 0 Td [(\051)]TJ -136.045 -11.955 Td [(Sp)-28(eci\014ed)-382(as:)-543(a)-382(rank)-383(on)1(e)-383(arra)28(y)-382(c)-1(on)28(taining)-382(n)28(um)28(b)-28(ers)-383(of)-382(the)-382(t)27(yp)-27(e)-383(indicated)]TJ 0 -11.955 Td [(in)-333(T)83(able)]TJ 0 0 1 rg 0 0 1 RG [-333(13)]TJ 0 g 0 G [(.)]TJ 0 g 0 G -/F27 9.9626 Tf -24.907 -19.926 Td [(w)32(ork)]TJ +/F27 9.9626 Tf -24.906 -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 +/F8 9.9626 Tf 29.431 0 Td [(a)-333(w)27(ork)-333(arra)28(y)83(.)]TJ -4.525 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.612 0 Td [(optional)]TJ/F8 9.9626 Tf -29.612 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(inout)]TJ/F8 9.9626 Tf 26.096 0 Td [(.)]TJ -59.582 -11.955 Td [(Sp)-28(eci\014ed)-377(as:)-531(a)-377(rank)-377(on)1(e)-377(arra)28(y)-377(of)-377(the)-377(same)-377(t)28(yp)-28(e)-377(of)]TJ/F11 9.9626 Tf 225.953 0 Td [(x)]TJ/F8 9.9626 Tf 9.448 0 Td [(with)-377(the)-377(T)84(AR)28(G)-1(E)1(T)]TJ -235.401 -11.955 Td [(attribute.)]TJ 0 g 0 G -/F27 9.9626 Tf -24.907 -19.926 Td [(On)-383(Return)]TJ +/F27 9.9626 Tf -24.906 -19.926 Td [(On)-383(Return)]TJ 0 g 0 G 0 g 0 G 0 -19.925 Td [(y)]TJ 0 g 0 G -/F8 9.9626 Tf 11.028 0 Td [(the)-333(lo)-28(cal)-333(p)-28(ortion)-333(of)-334(global)-333(dense)-333(matrix)]TJ/F11 9.9626 Tf 176.118 0 Td [(y)]TJ/F8 9.9626 Tf 5.242 0 Td [(.)]TJ -167.481 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.956 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(inout)]TJ/F8 9.9626 Tf 26.096 0 Td [(.)]TJ -59.582 -11.955 Td [(Sp)-28(eci\014ed)-474(as:)-727(an)-475(arra)28(y)-474(of)-475(rank)-475(on)1(e)-475(or)-475(t)28(w)28(o)-475(con)28(taining)-474(n)27(u)1(m)27(b)-27(e)-1(r)1(s)-475(of)-475(t)28(yp)-28(e)]TJ 0 -11.955 Td [(sp)-28(eci\014ed)-333(in)-333(T)83(able)]TJ +/F8 9.9626 Tf 11.028 0 Td [(the)-333(lo)-28(cal)-333(p)-28(ortion)-333(of)-334(global)-333(dense)-333(matrix)]TJ/F11 9.9626 Tf 176.118 0 Td [(y)]TJ/F8 9.9626 Tf 5.241 0 Td [(.)]TJ -167.481 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.612 0 Td [(required)]TJ/F8 9.9626 Tf -29.612 -11.956 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(inout)]TJ/F8 9.9626 Tf 26.096 0 Td [(.)]TJ -59.582 -11.955 Td [(Sp)-28(eci\014ed)-474(as:)-727(an)-475(arra)28(y)-475(of)-474(rank)-475(one)-474(or)-475(t)28(w)28(o)-475(con)28(taining)-474(n)27(um)28(b)-28(ers)-474(of)-475(t)28(yp)-28(e)]TJ 0 -11.955 Td [(sp)-28(eci\014ed)-333(in)-333(T)83(able)]TJ 0 0 1 rg 0 0 1 RG [-333(13)]TJ 0 g 0 G [(.)]TJ 0 g 0 G -/F27 9.9626 Tf -24.907 -19.925 Td [(info)]TJ +/F27 9.9626 Tf -24.906 -19.925 Td [(info)]TJ 0 g 0 G -/F8 9.9626 Tf 23.758 0 Td [(Error)-333(co)-28(de.)]TJ 1.149 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.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 +/F8 9.9626 Tf 23.758 0 Td [(Error)-333(co)-28(de.)]TJ 1.148 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.956 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.612 0 Td [(required)]TJ/F8 9.9626 Tf -29.612 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(out)]TJ/F8 9.9626 Tf 16.549 0 Td [(.)]TJ -50.035 -11.955 Td [(An)-333(in)28(te)-1(ger)-333(v)56(alue;)-334(0)-333(means)-333(no)-334(error)-333(has)-333(b)-28(een)-333(detec)-1(t)1(e)-1(d)1(.)]TJ 0 g 0 G - 141.968 -73.723 Td [(47)]TJ + 141.968 -73.723 Td [(48)]TJ 0 g 0 G ET endstream endobj -1123 0 obj +1136 0 obj << -/Length 651 +/Length 632 >> stream 0 g 0 G 0 g 0 G BT -/F16 14.3462 Tf 150.705 706.129 Td [(5)-1125(Comm)31(unication)-375(routines)]TJ/F8 9.9626 Tf 0 -21.821 Td [(The)-283(routines)-283(in)-283(this)-283(c)28(hapter)-283(implemen)28(t)-283(v)55(arious)-283(global)-283(comm)28(unication)-283(op)-28(erators)]TJ 0 -11.955 Td [(on)-344(v)28(ectors)-344(asso)-27(c)-1(iated)-343(with)-344(a)-344(d)1(is)-1(cretization)-343(mesh.)-476(F)84(or)-344(auxiliary)-344(comm)28(unication)]TJ 0 -11.955 Td [(routines)-333(not)-334(tied)-333(to)-333(a)-334(d)1(is)-1(cretization)-333(space)-333(see)]TJ +/F16 14.3462 Tf 99.895 706.129 Td [(5)-1125(Comm)31(unication)-375(routines)]TJ/F8 9.9626 Tf 0 -21.821 Td [(The)-283(routines)-283(in)-283(this)-283(c)28(hapter)-283(implemen)28(t)-283(v)55(arious)-283(global)-283(comm)28(unication)-283(op)-28(erators)]TJ 0 -11.955 Td [(on)-344(v)28(ectors)-344(asso)-28(ciated)-343(with)-344(a)-344(discretization)-343(mesh.)-476(F)84(or)-344(auxiliary)-344(comm)28(unication)]TJ 0 -11.955 Td [(routines)-333(not)-334(tied)-333(to)-333(a)-334(discretization)-333(space)-333(see)]TJ 0 0 1 rg 0 0 1 RG [-334(6)]TJ 0 g 0 G [(.)]TJ 0 g 0 G - 166.874 -569.96 Td [(48)]TJ + 166.875 -569.96 Td [(49)]TJ 0 g 0 G ET endstream endobj -1131 0 obj +1145 0 obj << -/Length 7259 +/Length 7227 >> 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 [(halo)-375(|)-375(Halo)-375(Data)-375(Comm)31(unication)]TJ/F8 9.9626 Tf -25.091 -18.389 Td [(These)-333(s)-1(u)1(broutines)-334(gathers)-333(the)-333(v)55(alues)-333(of)-334(th)1(e)-334(halo)-333(elemen)28(ts:)]TJ/F11 9.9626 Tf 158.413 -23.188 Td [(x)]TJ/F14 9.9626 Tf 8.462 0 Td [(\040)]TJ/F11 9.9626 Tf 12.73 0 Td [(x)]TJ/F8 9.9626 Tf -179.605 -21.251 Td [(where:)]TJ +/F16 11.9552 Tf 175.796 706.129 Td [(halo)-375(|)-375(Halo)-375(Data)-375(Comm)31(unication)]TJ/F8 9.9626 Tf -25.091 -18.389 Td [(These)-333(subroutines)-334(gathers)-333(the)-333(v)55(alues)-333(of)-333(the)-334(halo)-333(elemen)28(ts:)]TJ/F11 9.9626 Tf 158.413 -23.188 Td [(x)]TJ/F14 9.9626 Tf 8.461 0 Td [(\040)]TJ/F11 9.9626 Tf 12.73 0 Td [(x)]TJ/F8 9.9626 Tf -179.604 -21.251 Td [(where:)]TJ 0 g 0 G /F11 9.9626 Tf 0 -19.391 Td [(x)]TJ 0 g 0 G -/F8 9.9626 Tf 10.676 0 Td [(is)-333(a)-334(global)-333(dense)-333(submatrix.)]TJ +/F8 9.9626 Tf 10.675 0 Td [(is)-333(a)-334(global)-333(dense)-333(submatrix.)]TJ 0 g 0 G 0 g 0 G 0 g 0 G ET q -1 0 0 1 177.988 602.649 cm +1 0 0 1 228.797 602.649 cm []0 d 0 J 0.398 w 0 0 m 187.526 0 l S Q BT -/F11 9.9626 Tf 183.966 594.081 Td [(\013)]TJ/F8 9.9626 Tf 6.41 0 Td [(,)]TJ/F11 9.9626 Tf 6.088 0 Td [(x)]TJ/F27 9.9626 Tf 107.911 0 Td [(Subroutine)]TJ +/F11 9.9626 Tf 234.775 594.081 Td [(\013)]TJ/F8 9.9626 Tf 6.41 0 Td [(,)]TJ/F11 9.9626 Tf 6.088 0 Td [(x)]TJ/F27 9.9626 Tf 107.912 0 Td [(Subroutine)]TJ ET q -1 0 0 1 177.988 590.295 cm +1 0 0 1 228.797 590.295 cm []0 d 0 J 0.398 w 0 0 m 187.526 0 l S Q BT -/F8 9.9626 Tf 183.966 581.727 Td [(In)28(teger)-9028(psb)]TJ +/F8 9.9626 Tf 234.775 581.727 Td [(In)28(teger)-9028(psb)]TJ ET q -1 0 0 1 319.972 581.926 cm +1 0 0 1 370.782 581.926 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 322.961 581.727 Td [(halo)]TJ -138.995 -11.955 Td [(Short)-333(Precision)-333(R)-1(eal)-3102(psb)]TJ +/F8 9.9626 Tf 373.771 581.727 Td [(halo)]TJ -138.996 -11.955 Td [(Short)-333(Precision)-334(Real)-3102(psb)]TJ ET q -1 0 0 1 319.972 569.971 cm +1 0 0 1 370.782 569.971 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 322.961 569.772 Td [(halo)]TJ -138.995 -11.955 Td [(Long)-333(Precision)-334(Real)-3314(p)1(s)-1(b)]TJ +/F8 9.9626 Tf 373.771 569.772 Td [(halo)]TJ -138.996 -11.955 Td [(Long)-333(Precision)-334(Real)-3314(psb)]TJ ET q -1 0 0 1 319.972 558.016 cm +1 0 0 1 370.782 558.016 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 322.961 557.817 Td [(halo)]TJ -138.995 -11.955 Td [(Short)-333(Precision)-333(C)-1(omplex)-1200(p)1(s)-1(b)]TJ +/F8 9.9626 Tf 373.771 557.817 Td [(halo)]TJ -138.996 -11.955 Td [(Short)-333(Precision)-334(Complex)-1200(psb)]TJ ET q -1 0 0 1 319.972 546.061 cm +1 0 0 1 370.782 546.061 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 322.961 545.862 Td [(halo)]TJ -138.995 -11.956 Td [(Long)-333(Precision)-334(Complex)-1411(psb)]TJ +/F8 9.9626 Tf 373.771 545.862 Td [(halo)]TJ -138.996 -11.956 Td [(Long)-333(Precision)-334(Complex)-1411(psb)]TJ ET q -1 0 0 1 319.972 534.106 cm +1 0 0 1 370.782 534.106 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 322.961 533.906 Td [(halo)]TJ +/F8 9.9626 Tf 373.771 533.906 Td [(halo)]TJ ET q -1 0 0 1 177.988 530.121 cm +1 0 0 1 228.797 530.121 cm []0 d 0 J 0.398 w 0 0 m 187.526 0 l S Q 0 g 0 G BT -/F8 9.9626 Tf 225.577 502.081 Td [(T)83(able)-333(14:)-444(Data)-334(t)28(yp)-28(es)]TJ +/F8 9.9626 Tf 276.386 502.081 Td [(T)83(able)-333(14:)-444(Data)-334(t)28(yp)-28(es)]TJ 0 g 0 G 0 g 0 G -/F27 9.9626 Tf -124.305 -29.354 Td [(c)-138(a)-138(l)-139(l)]TJ/F8 9.9626 Tf 29.731 0 Td [(p)-122(s)-123(b)]TJ +/F27 9.9626 Tf -124.304 -29.354 Td [(c)-138(a)-138(l)-139(l)]TJ/F8 9.9626 Tf 29.73 0 Td [(p)-122(s)-123(b)]TJ ET q -1 0 0 1 150.256 472.926 cm +1 0 0 1 201.066 472.926 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 154.464 472.727 Td [(h)-122(a)-123(l)-122(o)-228(\050)-130(x)-209(,)-874(d)-112(e)-113(s)-113(c)]TJ +/F8 9.9626 Tf 205.274 472.727 Td [(h)-122(a)-123(l)-122(o)-228(\050)-129(x)-210(,)-873(d)-113(e)-113(s)-112(c)]TJ ET q -1 0 0 1 226.044 472.926 cm +1 0 0 1 276.854 472.926 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 230.155 472.727 Td [(a)-386(,)-914(i)-152(n)-152(f)-152(o)-258(\051)]TJ/F27 9.9626 Tf -128.883 -11.955 Td [(c)-138(a)-138(l)-139(l)]TJ/F8 9.9626 Tf 29.731 0 Td [(p)-122(s)-123(b)]TJ +/F8 9.9626 Tf 280.965 472.727 Td [(a)-386(,)-914(i)-152(n)-152(f)-152(o)-258(\051)]TJ/F27 9.9626 Tf -128.883 -11.955 Td [(c)-138(a)-138(l)-139(l)]TJ/F8 9.9626 Tf 29.73 0 Td [(p)-122(s)-123(b)]TJ ET q -1 0 0 1 150.256 460.971 cm +1 0 0 1 201.066 460.971 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 154.464 460.772 Td [(h)-122(a)-123(l)-122(o)-228(\050)-130(x)-209(,)-874(d)-112(e)-113(s)-113(c)]TJ +/F8 9.9626 Tf 205.274 460.772 Td [(h)-122(a)-123(l)-122(o)-228(\050)-129(x)-210(,)-873(d)-113(e)-113(s)-112(c)]TJ ET q -1 0 0 1 226.044 460.971 cm +1 0 0 1 276.854 460.971 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 230.155 460.772 Td [(a)-386(,)-888(i)-127(n)-127(f)-127(o)-415(,)-804(w)-43(o)-43(r)-43(k)-247(,)]TJ/F27 9.9626 Tf 91.304 0 Td [(d)-39(a)-39(t)-40(a)]TJ/F8 9.9626 Tf 24.571 0 Td [(\051)]TJ +/F8 9.9626 Tf 280.965 460.772 Td [(a)-386(,)-888(i)-127(n)-127(f)-127(o)-415(,)-804(w)-43(o)-43(r)-43(k)-247(,)]TJ/F27 9.9626 Tf 91.303 0 Td [(d)-39(a)-39(t)-40(a)]TJ/F8 9.9626 Tf 24.572 0 Td [(\051)]TJ 0 g 0 G 0 g 0 G 0 g 0 G @@ -11704,108 +11779,108 @@ BT 0 g 0 G 0 -19.658 Td [(x)]TJ 0 g 0 G -/F8 9.9626 Tf 11.028 0 Td [(global)-333(dense)-334(matrix)]TJ/F11 9.9626 Tf 88.917 0 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(.)]TJ -80.732 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.956 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(inout)]TJ/F8 9.9626 Tf 26.096 0 Td [(.)]TJ -59.582 -11.955 Td [(Sp)-28(eci\014ed)-255(as:)-405(a)-255(rank)-254(one)-255(or)-255(t)28(w)27(o)-254(arra)27(y)-254(or)-255(an)-255(ob)-55(jec)-1(t)-254(of)-255(t)28(yp)-28(e)]TJ +/F8 9.9626 Tf 11.028 0 Td [(global)-333(dense)-334(matrix)]TJ/F11 9.9626 Tf 88.917 0 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(.)]TJ -80.732 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.378 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.378 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.956 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.485 0 Td [(inout)]TJ/F8 9.9626 Tf 26.097 0 Td [(.)]TJ -59.582 -11.955 Td [(Sp)-28(eci\014ed)-255(as:)-405(a)-255(rank)-254(one)-255(or)-255(t)28(w)28(o)-255(arra)28(y)-255(or)-255(an)-255(ob)-55(ject)-255(of)-255(t)28(yp)-28(e)]TJ 0 0 1 rg 0 0 1 RG -/F30 9.9626 Tf 244.743 0 Td [(psb)]TJ +/F30 9.9626 Tf 244.742 0 Td [(psb)]TJ ET q -1 0 0 1 385.864 346.872 cm +1 0 0 1 436.673 346.872 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 389.002 346.673 Td [(T)]TJ +/F30 9.9626 Tf 439.811 346.673 Td [(T)]TJ ET q -1 0 0 1 394.86 346.872 cm +1 0 0 1 445.669 346.872 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 397.998 346.673 Td [(vect)]TJ +/F30 9.9626 Tf 448.807 346.673 Td [(vect)]TJ ET q -1 0 0 1 419.547 346.872 cm +1 0 0 1 470.356 346.872 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 422.685 346.673 Td [(type)]TJ +/F30 9.9626 Tf 473.495 346.673 Td [(type)]TJ 0 g 0 G -/F8 9.9626 Tf -297.883 -11.955 Td [(con)28(taining)-333(n)27(um)28(b)-28(ers)-333(of)-333(t)28(yp)-28(e)-334(sp)-27(eci\014ed)-334(in)-333(T)83(able)]TJ +/F8 9.9626 Tf -297.884 -11.955 Td [(con)28(taining)-333(n)27(um)28(b)-28(ers)-333(of)-333(t)27(yp)-27(e)-334(sp)-27(ec)-1(i)1(\014ed)-334(in)-333(T)83(able)]TJ 0 0 1 rg 0 0 1 RG [-333(14)]TJ 0 g 0 G [(.)]TJ 0 g 0 G -/F27 9.9626 Tf -24.907 -19.658 Td [(desc)]TJ +/F27 9.9626 Tf -24.906 -19.658 Td [(desc)]TJ ET q -1 0 0 1 121.81 315.259 cm +1 0 0 1 172.619 315.259 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 125.247 315.06 Td [(a)]TJ +/F27 9.9626 Tf 176.057 315.06 Td [(a)]TJ 0 g 0 G -/F8 9.9626 Tf 10.551 0 Td [(con)28(tains)-334(d)1(ata)-334(structures)-333(for)-333(com)-1(m)28(unications.)]TJ -10.996 -11.956 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(structured)-333(data)-333(of)-334(t)28(yp)-28(e)]TJ +/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 0 0 1 rg 0 0 1 RG /F30 9.9626 Tf 170.915 0 Td [(psb)]TJ ET q -1 0 0 1 312.036 267.438 cm +1 0 0 1 362.845 267.438 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 315.174 267.239 Td [(desc)]TJ +/F30 9.9626 Tf 365.983 267.239 Td [(desc)]TJ ET q -1 0 0 1 336.723 267.438 cm +1 0 0 1 387.532 267.438 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 339.861 267.239 Td [(type)]TJ +/F30 9.9626 Tf 390.67 267.239 Td [(type)]TJ 0 g 0 G -/F8 9.9626 Tf 20.921 0 Td [(.)]TJ +/F8 9.9626 Tf 20.922 0 Td [(.)]TJ 0 g 0 G /F27 9.9626 Tf -260.887 -19.658 Td [(w)32(ork)]TJ 0 g 0 G -/F8 9.9626 Tf 29.432 0 Td [(the)-333(w)27(ork)-333(arra)28(y)83(.)]TJ -4.525 -11.956 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(optional)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(inout)]TJ/F8 9.9626 Tf 26.096 0 Td [(.)]TJ -59.582 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(rank)-333(one)-333(arra)27(y)-333(of)-333(the)-334(same)-333(t)28(yp)-28(e)-333(of)]TJ/F11 9.9626 Tf 220.756 0 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(.)]TJ +/F8 9.9626 Tf 29.431 0 Td [(the)-333(w)27(ork)-333(arra)28(y)83(.)]TJ -4.525 -11.956 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.612 0 Td [(optional)]TJ/F8 9.9626 Tf -29.612 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(inout)]TJ/F8 9.9626 Tf 26.096 0 Td [(.)]TJ -59.582 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(rank)-333(one)-334(ar)1(ra)27(y)-333(of)-333(the)-334(same)-333(t)28(yp)-28(e)-333(of)]TJ/F11 9.9626 Tf 220.756 0 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(.)]TJ 0 g 0 G -/F27 9.9626 Tf -251.357 -19.659 Td [(data)]TJ +/F27 9.9626 Tf -251.356 -19.659 Td [(data)]TJ 0 g 0 G -/F8 9.9626 Tf 26.941 0 Td [(index)-333(list)-334(selector.)]TJ -2.034 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(global)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(optional)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(Sp)-28(eci\014ed)-222(as:)-389(an)-222(in)28(teger.)-408(V)84(alues:)]TJ/F30 9.9626 Tf 136.479 0 Td [(psb_comm_halo_)]TJ/F8 9.9626 Tf 73.225 0 Td [(,)]TJ/F30 9.9626 Tf 2.767 0 Td [(psb_comm_mov_)]TJ/F8 9.9626 Tf 67.995 0 Td [(,)]TJ/F30 9.9626 Tf 5.202 0 Td [(psb_comm_ext_)]TJ/F8 9.9626 Tf 67.995 0 Td [(,)]TJ -353.663 -11.955 Td [(default:)]TJ/F30 9.9626 Tf 39.089 0 Td [(psb_comm_halo_)]TJ/F8 9.9626 Tf 73.224 0 Td [(.)-705(Cho)-27(os)-1(es)-420(the)-420(index)-420(list)-420(on)-420(whic)28(h)-420(to)-420(base)-420(the)]TJ -112.313 -11.955 Td [(data)-333(exc)27(hange.)]TJ +/F8 9.9626 Tf 26.94 0 Td [(index)-333(list)-334(selector.)]TJ -2.034 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(global)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.612 0 Td [(optional)]TJ/F8 9.9626 Tf -29.612 -11.955 Td [(Sp)-28(eci\014ed)-222(as:)-389(an)-222(in)28(teger.)-408(V)84(alues:)]TJ/F30 9.9626 Tf 136.48 0 Td [(psb_comm_halo_)]TJ/F8 9.9626 Tf 73.224 0 Td [(,)]TJ/F30 9.9626 Tf 2.768 0 Td [(psb_comm_mov_)]TJ/F8 9.9626 Tf 67.994 0 Td [(,)]TJ/F30 9.9626 Tf 5.203 0 Td [(psb_comm_ext_)]TJ/F8 9.9626 Tf 67.994 0 Td [(,)]TJ -353.663 -11.955 Td [(default:)]TJ/F30 9.9626 Tf 39.089 0 Td [(psb_comm_halo_)]TJ/F8 9.9626 Tf 73.225 0 Td [(.)-705(Cho)-27(ose)-1(s)-420(the)-420(index)-420(list)-420(on)-420(whic)28(h)-420(to)-420(base)-420(the)]TJ -112.314 -11.955 Td [(data)-333(exc)27(hange.)]TJ 0 g 0 G - 141.968 -29.888 Td [(49)]TJ + 141.968 -29.888 Td [(50)]TJ 0 g 0 G ET endstream endobj -1142 0 obj +1155 0 obj << -/Length 3217 +/Length 3220 >> stream 0 g 0 G 0 g 0 G 0 g 0 G BT -/F27 9.9626 Tf 150.705 706.129 Td [(On)-383(Return)]TJ +/F27 9.9626 Tf 99.895 706.129 Td [(On)-383(Return)]TJ 0 g 0 G 0 g 0 G 0 -19.925 Td [(x)]TJ 0 g 0 G -/F8 9.9626 Tf 11.028 0 Td [(global)-333(dense)-334(result)-333(matrix)]TJ/F11 9.9626 Tf 116.674 0 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(.)]TJ -108.49 -11.956 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.612 0 Td [(required)]TJ/F8 9.9626 Tf -29.612 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(inout)]TJ/F8 9.9626 Tf 26.096 0 Td [(.)]TJ -59.582 -11.955 Td [(Returned)-271(as:)-414(a)-271(rank)-271(one)-271(or)-272(t)28(w)28(o)-271(arra)28(y)-272(con)28(taining)-271(n)28(um)28(b)-28(ers)-271(of)-272(t)28(yp)-28(e)-271(sp)-28(eci\014ed)]TJ 0 -11.955 Td [(in)-333(T)83(able)]TJ +/F8 9.9626 Tf 11.028 0 Td [(global)-333(dense)-334(result)-333(matrix)]TJ/F11 9.9626 Tf 116.674 0 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(.)]TJ -108.489 -11.956 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(inout)]TJ/F8 9.9626 Tf 26.096 0 Td [(.)]TJ -59.582 -11.955 Td [(Returned)-271(as:)-414(a)-271(rank)-271(one)-271(or)-272(t)28(w)28(o)-271(arra)28(y)-272(con)28(taining)-271(n)28(um)28(b)-28(ers)-271(of)-272(t)28(yp)-28(e)-271(sp)-28(eci\014ed)]TJ 0 -11.955 Td [(in)-333(T)83(able)]TJ 0 0 1 rg 0 0 1 RG [-333(14)]TJ 0 g 0 G [(.)]TJ 0 g 0 G -/F27 9.9626 Tf -24.906 -19.926 Td [(info)]TJ +/F27 9.9626 Tf -24.907 -19.926 Td [(info)]TJ 0 g 0 G -/F8 9.9626 Tf 23.758 0 Td [(the)-333(lo)-28(cal)-333(p)-28(ortion)-333(of)-334(result)-333(submatrix)]TJ/F11 9.9626 Tf 162.364 0 Td [(y)]TJ/F8 9.9626 Tf 5.241 0 Td [(.)]TJ -166.457 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.612 0 Td [(required)]TJ/F8 9.9626 Tf -29.612 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(out)]TJ/F8 9.9626 Tf 16.549 0 Td [(.)]TJ -50.035 -11.955 Td [(An)-333(in)28(te)-1(ger)-333(v)56(alue)-334(that)-333(con)28(tains)-333(an)-334(error)-333(co)-28(de.)]TJ +/F8 9.9626 Tf 23.758 0 Td [(the)-333(lo)-28(cal)-333(p)-28(ortion)-333(of)-334(result)-333(submatrix)]TJ/F11 9.9626 Tf 162.364 0 Td [(y)]TJ/F8 9.9626 Tf 5.242 0 Td [(.)]TJ -166.457 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(out)]TJ/F8 9.9626 Tf 16.549 0 Td [(.)]TJ -50.035 -11.955 Td [(An)-333(in)28(tege)-1(r)-333(v)56(alue)-334(that)-333(con)28(tains)-333(an)-334(error)-333(co)-28(de.)]TJ 0 g 0 G 0 g 0 G 0 g 0 G ET -1 0 0 1 210.961 534.827 cm +1 0 0 1 160.152 534.827 cm q 0 -1 1 0 0 0 cm q @@ -11817,37 +11892,37 @@ Q Q Q 0 g 0 G -1 0 0 1 -210.961 -534.827 cm +1 0 0 1 -160.152 -534.827 cm BT -/F8 9.9626 Tf 240.078 310.789 Td [(Figure)-333(7:)-445(Sample)-333(discretization)-333(mesh.)]TJ +/F8 9.9626 Tf 189.268 310.789 Td [(Figure)-333(7:)-445(Sample)-333(discretization)-333(mes)-1(h)1(.)]TJ 0 g 0 G 0 g 0 G -/F16 11.9552 Tf -89.373 -23.911 Td [(Usage)-381(Example)]TJ/F8 9.9626 Tf 93.98 0 Td [(Consider)-338(the)-339(discretization)-338(mesh)-339(depicted)-338(in)-338(\014g.)]TJ +/F16 11.9552 Tf -89.373 -23.911 Td [(Usage)-381(Example)]TJ/F8 9.9626 Tf 93.981 0 Td [(Consider)-338(the)-339(discretization)-338(mesh)-339(depicted)-338(in)-338(\014g.)]TJ 0 0 1 rg 0 0 1 RG [-339(7)]TJ 0 g 0 G - [(,)-339(parti-)]TJ -93.98 -11.955 Td [(tioned)-334(among)-334(t)27(w)28(o)-334(pro)-28(cesses)-334(as)-335(sho)28(wn)-334(b)28(y)-334(the)-335(dashed)-334(line;)-334(the)-335(data)-334(distribution)]TJ 0 -11.955 Td [(is)-422(suc)28(h)-422(that)-422(eac)28(h)-422(pro)-28(cess)-422(will)-421(o)27(wn)-422(32)-421(en)27(tries)-421(in)-422(the)-422(index)-422(space,)-444(with)-422(a)-422(halo)]TJ 0 -11.955 Td [(made)-340(of)-341(8)-340(en)28(tries)-341(placed)-340(at)-340(lo)-28(cal)-341(in)1(dices)-341(33)-340(through)-340(40.)-466(If)-340(pro)-28(cess)-341(0)-340(assigns)-340(an)]TJ 0 -11.955 Td [(initial)-423(v)55(alue)-423(of)-424(1)-423(to)-424(its)-423(en)28(tries)-424(in)-423(the)]TJ/F11 9.9626 Tf 169.005 0 Td [(x)]TJ/F8 9.9626 Tf 9.913 0 Td [(v)28(ector,)-446(and)-424(pro)-27(cess)-424(1)-423(ass)-1(i)1(g)-1(n)1(s)-424(a)-423(v)55(alue)]TJ -178.918 -11.956 Td [(of)-349(2,)-353(then)-349(after)-349(a)-349(call)-349(to)]TJ/F30 9.9626 Tf 108.539 0 Td [(psb_halo)]TJ/F8 9.9626 Tf 45.32 0 Td [(the)-349(con)28(ten)27(t)1(s)-350(of)-349(the)-349(lo)-27(cal)-350(v)28(ectors)-349(will)-349(b)-28(e)-349(the)]TJ -153.859 -11.955 Td [(follo)28(wing:)]TJ + [(,)-339(parti-)]TJ -93.981 -11.955 Td [(tioned)-334(among)-334(t)27(w)28(o)-334(pro)-28(cesses)-334(as)-335(sho)28(wn)-334(b)28(y)-334(the)-335(dashed)-334(line;)-334(the)-335(data)-334(distribution)]TJ 0 -11.955 Td [(is)-422(suc)28(h)-422(that)-422(eac)28(h)-422(pro)-28(cess)-422(will)-421(o)27(wn)-422(32)-421(en)27(tries)-422(in)-421(the)-422(index)-422(space,)-444(with)-422(a)-422(halo)]TJ 0 -11.955 Td [(made)-340(of)-341(8)-340(en)28(tries)-341(placed)-340(at)-340(lo)-28(cal)-341(ind)1(ice)-1(s)-340(33)-340(through)-341(40.)-465(If)-340(pro)-28(cess)-341(0)-340(assigns)-340(an)]TJ 0 -11.955 Td [(initial)-423(v)55(alue)-423(of)-424(1)-423(to)-424(its)-423(en)28(tries)-424(in)-423(the)]TJ/F11 9.9626 Tf 169.006 0 Td [(x)]TJ/F8 9.9626 Tf 9.913 0 Td [(v)28(ector,)-446(and)-424(pr)1(o)-28(cess)-424(1)-423(assigns)-424(a)-423(v)55(alue)]TJ -178.919 -11.956 Td [(of)-349(2,)-353(then)-349(after)-349(a)-349(call)-349(to)]TJ/F30 9.9626 Tf 108.539 0 Td [(psb_halo)]TJ/F8 9.9626 Tf 45.32 0 Td [(the)-349(con)28(ten)27(ts)-349(of)-349(the)-349(lo)-27(c)-1(al)-349(v)28(ectors)-349(will)-349(b)-28(e)-349(the)]TJ -153.859 -11.955 Td [(follo)28(wing:)]TJ 0 g 0 G - 166.874 -124.709 Td [(50)]TJ + 166.875 -124.709 Td [(51)]TJ 0 g 0 G ET endstream endobj -1138 0 obj +1151 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (./figures/try8x8.pdf) /PTEX.PageNumber 1 -/PTEX.InfoDict 1145 0 R +/PTEX.InfoDict 1158 0 R /BBox [0 0 436 496] /Resources << /ProcSet [ /PDF /Text ] /ExtGState << -/R7 1146 0 R ->>/Font << /R8 1147 0 R/R9 1148 0 R>> +/R7 1159 0 R +>>/Font << /R8 1160 0 R/R9 1161 0 R>> >> /Length 3571 /Filter /FlateDecode @@ -11865,9 +11940,9 @@ 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 -1151 0 obj +1164 0 obj << -/Length 3050 +/Length 3057 >> stream 0 g 0 G @@ -11876,134 +11951,134 @@ stream 0 g 0 G 0 g 0 G BT -/F46 8.9664 Tf 205.966 645.656 Td [(Pro)-29(cess)-342(0)-8224(Pro)-28(cess)-343(1)]TJ -33.967 -10.959 Td [(I)-1333(GLOB\050I\051)-1334(X\050I\051)-4656(I)-1334(GLOB\050I\051)-1333(X\050I\051)]TJ -1.281 -10.959 Td [(1)-4966(1)-1961(1.0)-4514(1)-4452(33)-1961(2.0)]TJ 0 -10.959 Td [(2)-4966(2)-1961(1.0)-4514(2)-4452(34)-1961(2.0)]TJ 0 -10.959 Td [(3)-4966(3)-1961(1.0)-4514(3)-4452(35)-1961(2.0)]TJ 0 -10.959 Td [(4)-4966(4)-1961(1.0)-4514(4)-4452(36)-1961(2.0)]TJ 0 -10.959 Td [(5)-4966(5)-1961(1.0)-4514(5)-4452(37)-1961(2.0)]TJ 0 -10.959 Td [(6)-4966(6)-1961(1.0)-4514(6)-4452(38)-1961(2.0)]TJ 0 -10.959 Td [(7)-4966(7)-1961(1.0)-4514(7)-4452(39)-1961(2.0)]TJ 0 -10.958 Td [(8)-4966(8)-1961(1.0)-4514(8)-4452(40)-1961(2.0)]TJ 0 -10.959 Td [(9)-4966(9)-1961(1.0)-4514(9)-4452(41)-1961(2.0)]TJ -4.608 -10.959 Td [(10)-4452(10)-1961(1.0)-4000(10)-4452(42)-1961(2.0)]TJ 0 -10.959 Td [(11)-4452(11)-1961(1.0)-4000(11)-4452(43)-1961(2.0)]TJ 0 -10.959 Td [(12)-4452(12)-1961(1.0)-4000(12)-4452(44)-1961(2.0)]TJ 0 -10.959 Td [(13)-4452(13)-1961(1.0)-4000(13)-4452(45)-1961(2.0)]TJ 0 -10.959 Td [(14)-4452(14)-1961(1.0)-4000(14)-4452(46)-1961(2.0)]TJ 0 -10.959 Td [(15)-4452(15)-1961(1.0)-4000(15)-4452(47)-1961(2.0)]TJ 0 -10.959 Td [(16)-4452(16)-1961(1.0)-4000(16)-4452(48)-1961(2.0)]TJ 0 -10.959 Td [(17)-4452(17)-1961(1.0)-4000(17)-4452(49)-1961(2.0)]TJ 0 -10.958 Td [(18)-4452(18)-1961(1.0)-4000(18)-4452(50)-1961(2.0)]TJ 0 -10.959 Td [(19)-4452(19)-1961(1.0)-4000(19)-4452(51)-1961(2.0)]TJ 0 -10.959 Td [(20)-4452(20)-1961(1.0)-4000(20)-4452(52)-1961(2.0)]TJ 0 -10.959 Td [(21)-4452(21)-1961(1.0)-4000(21)-4452(53)-1961(2.0)]TJ 0 -10.959 Td [(22)-4452(22)-1961(1.0)-4000(22)-4452(54)-1961(2.0)]TJ 0 -10.959 Td [(23)-4452(23)-1961(1.0)-4000(23)-4452(55)-1961(2.0)]TJ 0 -10.959 Td [(24)-4452(24)-1961(1.0)-4000(24)-4452(56)-1961(2.0)]TJ 0 -10.959 Td [(25)-4452(25)-1961(1.0)-4000(25)-4452(57)-1961(2.0)]TJ 0 -10.959 Td [(26)-4452(26)-1961(1.0)-4000(26)-4452(58)-1961(2.0)]TJ 0 -10.959 Td [(27)-4452(27)-1961(1.0)-4000(27)-4452(59)-1961(2.0)]TJ 0 -10.958 Td [(28)-4452(28)-1961(1.0)-4000(28)-4452(60)-1961(2.0)]TJ 0 -10.959 Td [(29)-4452(29)-1961(1.0)-4000(29)-4452(61)-1961(2.0)]TJ 0 -10.959 Td [(30)-4452(30)-1961(1.0)-4000(30)-4452(62)-1961(2.0)]TJ 0 -10.959 Td [(31)-4452(31)-1961(1.0)-4000(31)-4452(63)-1961(2.0)]TJ 0 -10.959 Td [(32)-4452(32)-1961(1.0)-4000(32)-4452(64)-1961(2.0)]TJ 0 -10.959 Td [(33)-4452(33)-1961(2.0)-4000(33)-4452(25)-1961(1.0)]TJ 0 -10.959 Td [(34)-4452(34)-1961(2.0)-4000(34)-4452(26)-1961(1.0)]TJ 0 -10.959 Td [(35)-4452(35)-1961(2.0)-4000(35)-4452(27)-1961(1.0)]TJ 0 -10.959 Td [(36)-4452(36)-1961(2.0)-4000(36)-4452(28)-1961(1.0)]TJ 0 -10.959 Td [(37)-4452(37)-1961(2.0)-4000(37)-4452(29)-1961(1.0)]TJ 0 -10.958 Td [(38)-4452(38)-1961(2.0)-4000(38)-4452(30)-1961(1.0)]TJ 0 -10.959 Td [(39)-4452(39)-1961(2.0)-4000(39)-4452(31)-1961(1.0)]TJ 0 -10.959 Td [(40)-4452(40)-1961(2.0)-4000(40)-4452(32)-1961(1.0)]TJ +/F46 8.9664 Tf 256.776 645.656 Td [(Pro)-28(cess)-343(0)-8224(Pro)-28(cess)-343(1)]TJ -33.967 -10.959 Td [(I)-1333(GLOB\050I\051)-1334(X)1(\050I\051)-4657(I)-1334(GL)1(OB\050I\051)-1334(X\050I\051)]TJ -1.282 -10.959 Td [(1)-4966(1)-1961(1.0)-4514(1)-4452(33)-1961(2.0)]TJ 0 -10.959 Td [(2)-4966(2)-1961(1.0)-4514(2)-4452(34)-1961(2.0)]TJ 0 -10.959 Td [(3)-4966(3)-1961(1.0)-4514(3)-4452(35)-1961(2.0)]TJ 0 -10.959 Td [(4)-4966(4)-1961(1.0)-4514(4)-4452(36)-1961(2.0)]TJ 0 -10.959 Td [(5)-4966(5)-1961(1.0)-4514(5)-4452(37)-1961(2.0)]TJ 0 -10.959 Td [(6)-4966(6)-1961(1.0)-4514(6)-4452(38)-1961(2.0)]TJ 0 -10.959 Td [(7)-4966(7)-1961(1.0)-4514(7)-4452(39)-1961(2.0)]TJ 0 -10.958 Td [(8)-4966(8)-1961(1.0)-4514(8)-4452(40)-1961(2.0)]TJ 0 -10.959 Td [(9)-4966(9)-1961(1.0)-4514(9)-4452(41)-1961(2.0)]TJ -4.607 -10.959 Td [(10)-4452(10)-1961(1.0)-4000(10)-4452(42)-1961(2.0)]TJ 0 -10.959 Td [(11)-4452(11)-1961(1.0)-4000(11)-4452(43)-1961(2.0)]TJ 0 -10.959 Td [(12)-4452(12)-1961(1.0)-4000(12)-4452(44)-1961(2.0)]TJ 0 -10.959 Td [(13)-4452(13)-1961(1.0)-4000(13)-4452(45)-1961(2.0)]TJ 0 -10.959 Td [(14)-4452(14)-1961(1.0)-4000(14)-4452(46)-1961(2.0)]TJ 0 -10.959 Td [(15)-4452(15)-1961(1.0)-4000(15)-4452(47)-1961(2.0)]TJ 0 -10.959 Td [(16)-4452(16)-1961(1.0)-4000(16)-4452(48)-1961(2.0)]TJ 0 -10.959 Td [(17)-4452(17)-1961(1.0)-4000(17)-4452(49)-1961(2.0)]TJ 0 -10.958 Td [(18)-4452(18)-1961(1.0)-4000(18)-4452(50)-1961(2.0)]TJ 0 -10.959 Td [(19)-4452(19)-1961(1.0)-4000(19)-4452(51)-1961(2.0)]TJ 0 -10.959 Td [(20)-4452(20)-1961(1.0)-4000(20)-4452(52)-1961(2.0)]TJ 0 -10.959 Td [(21)-4452(21)-1961(1.0)-4000(21)-4452(53)-1961(2.0)]TJ 0 -10.959 Td [(22)-4452(22)-1961(1.0)-4000(22)-4452(54)-1961(2.0)]TJ 0 -10.959 Td [(23)-4452(23)-1961(1.0)-4000(23)-4452(55)-1961(2.0)]TJ 0 -10.959 Td [(24)-4452(24)-1961(1.0)-4000(24)-4452(56)-1961(2.0)]TJ 0 -10.959 Td [(25)-4452(25)-1961(1.0)-4000(25)-4452(57)-1961(2.0)]TJ 0 -10.959 Td [(26)-4452(26)-1961(1.0)-4000(26)-4452(58)-1961(2.0)]TJ 0 -10.959 Td [(27)-4452(27)-1961(1.0)-4000(27)-4452(59)-1961(2.0)]TJ 0 -10.958 Td [(28)-4452(28)-1961(1.0)-4000(28)-4452(60)-1961(2.0)]TJ 0 -10.959 Td [(29)-4452(29)-1961(1.0)-4000(29)-4452(61)-1961(2.0)]TJ 0 -10.959 Td [(30)-4452(30)-1961(1.0)-4000(30)-4452(62)-1961(2.0)]TJ 0 -10.959 Td [(31)-4452(31)-1961(1.0)-4000(31)-4452(63)-1961(2.0)]TJ 0 -10.959 Td [(32)-4452(32)-1961(1.0)-4000(32)-4452(64)-1961(2.0)]TJ 0 -10.959 Td [(33)-4452(33)-1961(2.0)-4000(33)-4452(25)-1961(1.0)]TJ 0 -10.959 Td [(34)-4452(34)-1961(2.0)-4000(34)-4452(26)-1961(1.0)]TJ 0 -10.959 Td [(35)-4452(35)-1961(2.0)-4000(35)-4452(27)-1961(1.0)]TJ 0 -10.959 Td [(36)-4452(36)-1961(2.0)-4000(36)-4452(28)-1961(1.0)]TJ 0 -10.959 Td [(37)-4452(37)-1961(2.0)-4000(37)-4452(29)-1961(1.0)]TJ 0 -10.958 Td [(38)-4452(38)-1961(2.0)-4000(38)-4452(30)-1961(1.0)]TJ 0 -10.959 Td [(39)-4452(39)-1961(2.0)-4000(39)-4452(31)-1961(1.0)]TJ 0 -10.959 Td [(40)-4452(40)-1961(2.0)-4000(40)-4452(32)-1961(1.0)]TJ 0 g 0 G 0 g 0 G -/F8 9.9626 Tf 100.66 -105.903 Td [(51)]TJ +/F8 9.9626 Tf 100.659 -105.903 Td [(52)]TJ 0 g 0 G ET endstream endobj -1159 0 obj +1172 0 obj << -/Length 8482 +/Length 8516 >> stream 0 g 0 G 0 g 0 G BT -/F16 11.9552 Tf 150.705 706.129 Td [(psb)]TJ +/F16 11.9552 Tf 99.895 706.129 Td [(psb)]TJ ET q -1 0 0 1 171.761 706.328 cm +1 0 0 1 120.951 706.328 cm []0 d 0 J 0.398 w 0 0 m 4.035 0 l S Q BT -/F16 11.9552 Tf 175.796 706.129 Td [(o)31(vrl)-375(|)-375(Ov)31(erlap)-375(Up)-31(date)]TJ/F8 9.9626 Tf -25.091 -18.389 Td [(These)-333(subroutines)-334(applies)-333(an)-333(o)27(v)28(erlap)-333(op)-28(erator)-333(to)-333(the)-334(input)-333(v)28(ector:)]TJ/F11 9.9626 Tf 154.475 -22.077 Td [(x)]TJ/F14 9.9626 Tf 8.461 0 Td [(\040)]TJ/F11 9.9626 Tf 12.73 0 Td [(Qx)]TJ/F8 9.9626 Tf -175.666 -20.14 Td [(where:)]TJ +/F16 11.9552 Tf 124.986 706.129 Td [(o)31(vrl)-375(|)-375(Ov)31(erlap)-375(Up)-31(date)]TJ/F8 9.9626 Tf -25.091 -18.389 Td [(These)-333(s)-1(u)1(broutines)-334(applies)-333(an)-333(o)27(v)28(erlap)-333(op)-28(erator)-333(to)-333(the)-334(input)-333(v)28(ector:)]TJ/F11 9.9626 Tf 154.475 -22.077 Td [(x)]TJ/F14 9.9626 Tf 8.462 0 Td [(\040)]TJ/F11 9.9626 Tf 12.73 0 Td [(Qx)]TJ/F8 9.9626 Tf -175.667 -20.14 Td [(where:)]TJ 0 g 0 G /F11 9.9626 Tf 0 -18.503 Td [(x)]TJ 0 g 0 G -/F8 9.9626 Tf 10.675 0 Td [(is)-333(the)-334(global)-333(dense)-333(submatrix)]TJ/F11 9.9626 Tf 131.092 0 Td [(x)]TJ +/F8 9.9626 Tf 10.676 0 Td [(is)-333(the)-334(global)-333(dense)-333(submatrix)]TJ/F11 9.9626 Tf 131.092 0 Td [(x)]TJ 0 g 0 G - -141.767 -19.214 Td [(Q)]TJ + -141.768 -19.214 Td [(Q)]TJ 0 g 0 G -/F8 9.9626 Tf 12.857 0 Td [(is)-333(the)-334(o)28(v)28(erlap)-333(op)-28(erator;)-333(it)-334(is)-333(the)-333(co)-1(mp)-27(osition)-334(of)-333(t)28(w)28(o)-334(op)-27(erators)]TJ/F11 9.9626 Tf 271.842 0 Td [(P)]TJ/F10 6.9738 Tf 6.396 -1.494 Td [(a)]TJ/F8 9.9626 Tf 8.141 1.494 Td [(and)]TJ/F11 9.9626 Tf 19.372 0 Td [(P)]TJ/F10 6.9738 Tf 7.78 3.616 Td [(T)]TJ/F8 9.9626 Tf 6.276 -3.616 Td [(.)]TJ +/F8 9.9626 Tf 12.858 0 Td [(is)-333(the)-334(o)28(v)28(erlap)-333(op)-28(erator;)-333(it)-334(is)-333(the)-333(comp)-28(osition)-334(of)-333(t)28(w)28(o)-334(op)-27(erators)]TJ/F11 9.9626 Tf 271.842 0 Td [(P)]TJ/F10 6.9738 Tf 6.396 -1.494 Td [(a)]TJ/F8 9.9626 Tf 8.14 1.494 Td [(and)]TJ/F11 9.9626 Tf 19.372 0 Td [(P)]TJ/F10 6.9738 Tf 7.78 3.616 Td [(T)]TJ/F8 9.9626 Tf 6.276 -3.616 Td [(.)]TJ 0 g 0 G 0 g 0 G 0 g 0 G ET q -1 0 0 1 228.797 587.879 cm +1 0 0 1 177.988 587.879 cm []0 d 0 J 0.398 w 0 0 m 187.526 0 l S Q BT -/F11 9.9626 Tf 234.775 579.311 Td [(x)]TJ/F27 9.9626 Tf 120.41 0 Td [(Subroutine)]TJ +/F11 9.9626 Tf 183.966 579.311 Td [(x)]TJ/F27 9.9626 Tf 120.409 0 Td [(Subroutine)]TJ ET q -1 0 0 1 228.797 575.525 cm +1 0 0 1 177.988 575.525 cm []0 d 0 J 0.398 w 0 0 m 187.526 0 l S Q BT -/F8 9.9626 Tf 234.775 566.957 Td [(Short)-333(Precision)-334(Real)-3102(psb)]TJ +/F8 9.9626 Tf 183.966 566.957 Td [(Short)-333(Precision)-333(R)-1(eal)-3102(psb)]TJ ET q -1 0 0 1 370.782 567.156 cm +1 0 0 1 319.972 567.156 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 373.771 566.957 Td [(o)28(vrl)]TJ -138.996 -11.955 Td [(Long)-333(Precision)-334(Real)-3314(psb)]TJ +/F8 9.9626 Tf 322.961 566.957 Td [(o)28(vrl)]TJ -138.995 -11.955 Td [(Long)-333(Precision)-334(Real)-3314(p)1(s)-1(b)]TJ ET q -1 0 0 1 370.782 555.201 cm +1 0 0 1 319.972 555.201 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 373.771 555.002 Td [(o)28(vrl)]TJ -138.996 -11.955 Td [(Short)-333(Precision)-334(Complex)-1200(psb)]TJ +/F8 9.9626 Tf 322.961 555.002 Td [(o)28(vrl)]TJ -138.995 -11.955 Td [(Short)-333(Precision)-333(C)-1(omplex)-1200(p)1(s)-1(b)]TJ ET q -1 0 0 1 370.782 543.246 cm +1 0 0 1 319.972 543.246 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 373.771 543.047 Td [(o)28(vrl)]TJ -138.996 -11.956 Td [(Long)-333(Precision)-334(Complex)-1411(psb)]TJ +/F8 9.9626 Tf 322.961 543.047 Td [(o)28(vrl)]TJ -138.995 -11.956 Td [(Long)-333(Precision)-334(Complex)-1411(psb)]TJ ET q -1 0 0 1 370.782 531.291 cm +1 0 0 1 319.972 531.291 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 373.771 531.091 Td [(o)28(vrl)]TJ +/F8 9.9626 Tf 322.961 531.091 Td [(o)28(vrl)]TJ ET q -1 0 0 1 228.797 527.306 cm +1 0 0 1 177.988 527.306 cm []0 d 0 J 0.398 w 0 0 m 187.526 0 l S Q 0 g 0 G BT -/F8 9.9626 Tf 276.386 499.266 Td [(T)83(able)-333(15:)-444(Data)-334(t)28(yp)-28(es)]TJ +/F8 9.9626 Tf 225.577 499.266 Td [(T)83(able)-333(15:)-444(Data)-334(t)28(yp)-28(es)]TJ 0 g 0 G 0 g 0 G -/F27 9.9626 Tf -124.304 -28.465 Td [(c)-138(a)-138(l)-139(l)]TJ/F8 9.9626 Tf 29.881 0 Td [(p)-137(s)-138(b)]TJ +/F27 9.9626 Tf -124.305 -28.465 Td [(c)-138(a)-138(l)-139(l)]TJ/F8 9.9626 Tf 29.881 0 Td [(p)-137(s)-138(b)]TJ ET q -1 0 0 1 201.669 471 cm +1 0 0 1 150.859 471 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 206.027 470.801 Td [(o)-137(v)-138(r)-137(l)-243(\050)-130(x)-209(,)-874(d)-113(e)-112(s)-113(c)]TJ +/F8 9.9626 Tf 155.217 470.801 Td [(o)-138(v)-137(r)-137(l)-243(\050)-130(x)-209(,)-874(d)-113(e)-112(s)-113(c)]TJ ET q -1 0 0 1 276.854 471 cm +1 0 0 1 226.044 471 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 280.965 470.801 Td [(a)-386(,)-914(i)-152(n)-152(f)-152(o)-258(\051)]TJ/F27 9.9626 Tf -128.883 -11.955 Td [(c)-138(a)-138(l)-139(l)]TJ/F8 9.9626 Tf 29.881 0 Td [(p)-137(s)-138(b)]TJ +/F8 9.9626 Tf 230.155 470.801 Td [(a)-386(,)-914(i)-152(n)-152(f)-152(o)-258(\051)]TJ/F27 9.9626 Tf -128.883 -11.955 Td [(c)-138(a)-138(l)-139(l)]TJ/F8 9.9626 Tf 29.881 0 Td [(p)-137(s)-138(b)]TJ ET q -1 0 0 1 201.669 459.045 cm +1 0 0 1 150.859 459.045 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 206.027 458.846 Td [(o)-137(v)-138(r)-137(l)-243(\050)-130(x)-209(,)-874(d)-113(e)-112(s)-113(c)]TJ +/F8 9.9626 Tf 155.217 458.846 Td [(o)-138(v)-137(r)-137(l)-243(\050)-130(x)-209(,)-874(d)-113(e)-112(s)-113(c)]TJ ET q -1 0 0 1 276.854 459.045 cm +1 0 0 1 226.044 459.045 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 280.965 458.846 Td [(a)-386(,)-888(i)-127(n)-127(f)-127(o)-415(,)-846(u)-86(p)-86(d)-86(a)-85(t)-86(e)3(=)-13(u)-101(p)-102(d)-102(a)-102(t)-102(e)]TJ +/F8 9.9626 Tf 230.155 458.846 Td [(a)-386(,)-888(i)-127(n)-127(f)-127(o)-415(,)-847(u)-85(p)-86(d)-86(a)-85(t)-86(e)3(=)-13(u)-102(p)-101(d)-102(a)-102(t)-102(e)]TJ ET q -1 0 0 1 415.44 459.045 cm +1 0 0 1 364.631 459.045 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 419.443 458.846 Td [(t)-102(y)-102(p)-101(e)-365(,)-813(w)-52(o)-51(r)-52(k)37(=)38(w)-52(o)-52(r)-51(k)-158(\051)]TJ +/F8 9.9626 Tf 368.634 458.846 Td [(t)-102(y)-102(p)-101(e)-365(,)-813(w)-52(o)-51(r)-52(k)37(=)38(w)-52(o)-52(r)-51(k)-158(\051)]TJ 0 g 0 G 0 g 0 G 0 g 0 G -/F27 9.9626 Tf -268.738 -25.406 Td [(T)32(yp)-32(e:)]TJ +/F27 9.9626 Tf -268.739 -25.406 Td [(T)32(yp)-32(e:)]TJ 0 g 0 G /F8 9.9626 Tf 33.797 0 Td [(Sync)28(hronous.)]TJ 0 g 0 G @@ -12012,205 +12087,205 @@ BT 0 g 0 G 0 -19.214 Td [(x)]TJ 0 g 0 G -/F8 9.9626 Tf 11.028 0 Td [(global)-333(dense)-334(matrix)]TJ/F11 9.9626 Tf 88.917 0 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(.)]TJ -80.732 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.378 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.378 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.956 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.485 0 Td [(inout)]TJ/F8 9.9626 Tf 26.097 0 Td [(.)]TJ -59.582 -11.955 Td [(Sp)-28(eci\014ed)-255(as:)-405(a)-255(rank)-254(one)-255(or)-255(t)28(w)28(o)-255(arra)28(y)-255(or)-255(an)-255(ob)-55(ject)-255(of)-255(t)28(yp)-28(e)]TJ +/F8 9.9626 Tf 11.028 0 Td [(global)-333(dense)-334(matrix)]TJ/F11 9.9626 Tf 88.917 0 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(.)]TJ -80.732 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.956 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(inout)]TJ/F8 9.9626 Tf 26.096 0 Td [(.)]TJ -59.582 -11.955 Td [(Sp)-28(eci\014ed)-255(as:)-405(a)-255(rank)-254(one)-255(or)-255(t)28(w)27(o)-254(arra)27(y)-254(or)-255(an)-255(ob)-55(jec)-1(t)-254(of)-255(t)28(yp)-28(e)]TJ 0 0 1 rg 0 0 1 RG -/F30 9.9626 Tf 244.742 0 Td [(psb)]TJ +/F30 9.9626 Tf 244.743 0 Td [(psb)]TJ ET q -1 0 0 1 436.673 347.39 cm +1 0 0 1 385.864 347.39 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 439.811 347.191 Td [(T)]TJ +/F30 9.9626 Tf 389.002 347.191 Td [(T)]TJ ET q -1 0 0 1 445.669 347.39 cm +1 0 0 1 394.86 347.39 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 448.807 347.191 Td [(vect)]TJ +/F30 9.9626 Tf 397.998 347.191 Td [(vect)]TJ ET q -1 0 0 1 470.356 347.39 cm +1 0 0 1 419.547 347.39 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 473.495 347.191 Td [(type)]TJ +/F30 9.9626 Tf 422.685 347.191 Td [(type)]TJ 0 g 0 G -/F8 9.9626 Tf -297.884 -11.955 Td [(con)28(taining)-333(n)27(um)28(b)-28(ers)-333(of)-333(t)27(yp)-27(e)-334(sp)-27(ec)-1(i)1(\014ed)-334(in)-333(T)83(able)]TJ +/F8 9.9626 Tf -297.883 -11.955 Td [(con)28(taining)-333(n)27(um)28(b)-28(ers)-333(of)-333(t)28(yp)-28(e)-334(sp)-27(eci\014ed)-334(in)-333(T)83(able)]TJ 0 0 1 rg 0 0 1 RG [-333(15)]TJ 0 g 0 G [(.)]TJ 0 g 0 G -/F27 9.9626 Tf -24.906 -19.214 Td [(desc)]TJ +/F27 9.9626 Tf -24.907 -19.214 Td [(desc)]TJ ET q -1 0 0 1 172.619 316.221 cm +1 0 0 1 121.81 316.221 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 176.057 316.022 Td [(a)]TJ +/F27 9.9626 Tf 125.247 316.022 Td [(a)]TJ 0 g 0 G -/F8 9.9626 Tf 10.55 0 Td [(con)28(tains)-334(data)-333(structures)-333(for)-333(c)-1(omm)28(unications.)]TJ -10.996 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.612 0 Td [(required)]TJ/F8 9.9626 Tf -29.612 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.548 0 Td [(.)]TJ -43.034 -11.956 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(structured)-333(data)-333(of)-334(t)28(yp)-28(e)]TJ +/F8 9.9626 Tf 10.551 0 Td [(con)28(tains)-334(d)1(ata)-334(structures)-333(for)-333(com)-1(m)28(unications.)]TJ -10.996 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.956 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(structured)-333(data)-333(of)-334(t)28(yp)-28(e)]TJ 0 0 1 rg 0 0 1 RG /F30 9.9626 Tf 170.915 0 Td [(psb)]TJ ET q -1 0 0 1 362.845 268.401 cm +1 0 0 1 312.036 268.401 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 365.983 268.201 Td [(desc)]TJ +/F30 9.9626 Tf 315.174 268.201 Td [(desc)]TJ ET q -1 0 0 1 387.532 268.401 cm +1 0 0 1 336.723 268.401 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 390.67 268.201 Td [(type)]TJ +/F30 9.9626 Tf 339.861 268.201 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.214 Td [(up)-32(date)]TJ 0 g 0 G -/F8 9.9626 Tf 39.67 0 Td [(Up)-28(date)-333(op)-28(erator.)]TJ +/F8 9.9626 Tf 39.671 0 Td [(Up)-28(date)-333(op)-28(erator.)]TJ 0 g 0 G /F27 9.9626 Tf -14.764 -31.169 Td [(up)-32(date)-383(=)-384(psb)]TJ ET q -1 0 0 1 244.786 218.017 cm +1 0 0 1 193.977 218.017 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 248.223 217.818 Td [(none)]TJ +/F27 9.9626 Tf 197.414 217.818 Td [(none)]TJ ET q -1 0 0 1 272.62 218.017 cm +1 0 0 1 221.811 218.017 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q 0 g 0 G BT -/F8 9.9626 Tf 281.039 217.818 Td [(Do)-333(nothing;)]TJ +/F8 9.9626 Tf 230.229 217.818 Td [(Do)-333(nothing;)]TJ 0 g 0 G -/F27 9.9626 Tf -105.428 -15.229 Td [(up)-32(date)-383(=)-384(psb)]TJ +/F27 9.9626 Tf -105.427 -15.229 Td [(up)-32(date)-383(=)-384(psb)]TJ ET q -1 0 0 1 244.786 202.789 cm +1 0 0 1 193.977 202.789 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 248.223 202.589 Td [(add)]TJ +/F27 9.9626 Tf 197.414 202.589 Td [(add)]TJ ET q -1 0 0 1 267.21 202.789 cm +1 0 0 1 216.4 202.789 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q 0 g 0 G BT -/F8 9.9626 Tf 275.628 202.589 Td [(Sum)-333(o)27(v)28(erlap)-333(en)28(tries,)-334(i.e.)-444(apply)]TJ/F11 9.9626 Tf 136.544 0 Td [(P)]TJ/F10 6.9738 Tf 7.78 3.616 Td [(T)]TJ/F8 9.9626 Tf 6.276 -3.616 Td [(;)]TJ +/F8 9.9626 Tf 224.819 202.589 Td [(Sum)-333(o)27(v)28(erlap)-333(en)28(tries,)-334(i.e.)-444(apply)]TJ/F11 9.9626 Tf 136.544 0 Td [(P)]TJ/F10 6.9738 Tf 7.78 3.616 Td [(T)]TJ/F8 9.9626 Tf 6.276 -3.616 Td [(;)]TJ 0 g 0 G /F27 9.9626 Tf -250.617 -15.229 Td [(up)-32(date)-383(=)-384(psb)]TJ ET q -1 0 0 1 244.786 187.56 cm +1 0 0 1 193.977 187.56 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 248.223 187.36 Td [(a)32(vg)]TJ +/F27 9.9626 Tf 197.414 187.36 Td [(a)32(vg)]TJ ET q -1 0 0 1 265.937 187.56 cm +1 0 0 1 215.127 187.56 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q 0 g 0 G BT -/F8 9.9626 Tf 274.355 187.36 Td [(Av)28(erage)-334(o)28(v)28(erlap)-333(en)27(tries,)-333(i.e.)-444(apply)]TJ/F11 9.9626 Tf 152.346 0 Td [(P)]TJ/F10 6.9738 Tf 6.396 -1.494 Td [(a)]TJ/F11 9.9626 Tf 4.82 1.494 Td [(P)]TJ/F10 6.9738 Tf 7.78 3.616 Td [(T)]TJ/F8 9.9626 Tf 6.276 -3.616 Td [(;)]TJ -276.362 -19.214 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(global)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.955 Td [(Default:)]TJ/F11 9.9626 Tf 39.436 0 Td [(update)]TJ +/F8 9.9626 Tf 223.546 187.36 Td [(Av)28(erage)-334(o)28(v)28(erlap)-333(en)27(tri)1(e)-1(s,)-333(i.e.)-444(apply)]TJ/F11 9.9626 Tf 152.345 0 Td [(P)]TJ/F10 6.9738 Tf 6.397 -1.494 Td [(a)]TJ/F11 9.9626 Tf 4.819 1.494 Td [(P)]TJ/F10 6.9738 Tf 7.78 3.616 Td [(T)]TJ/F8 9.9626 Tf 6.276 -3.616 Td [(;)]TJ -276.361 -19.214 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(global)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.955 Td [(Default:)]TJ/F11 9.9626 Tf 39.436 0 Td [(update)]TJ ET q -1 0 0 1 245.048 144.435 cm +1 0 0 1 194.239 144.435 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F11 9.9626 Tf 248.037 144.236 Td [(ty)-36(pe)]TJ/F8 9.9626 Tf 21.258 0 Td [(=)]TJ/F11 9.9626 Tf 10.517 0 Td [(psb)]TJ +/F11 9.9626 Tf 197.228 144.236 Td [(ty)-36(pe)]TJ/F8 9.9626 Tf 21.258 0 Td [(=)]TJ/F11 9.9626 Tf 10.516 0 Td [(psb)]TJ ET q -1 0 0 1 294.367 144.435 cm +1 0 0 1 243.558 144.435 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F11 9.9626 Tf 297.356 144.236 Td [(av)-36(g)]TJ +/F11 9.9626 Tf 246.547 144.236 Td [(av)-36(g)]TJ ET q -1 0 0 1 313.516 144.435 cm +1 0 0 1 262.706 144.435 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 175.611 132.281 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(global)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(in)28(teger)-333(v)55(ariable.)]TJ +/F8 9.9626 Tf 124.802 132.281 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(global)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(in)28(teger)-333(v)55(ariable.)]TJ 0 g 0 G - 141.968 -29.888 Td [(52)]TJ + 141.968 -29.888 Td [(53)]TJ 0 g 0 G ET endstream endobj -1171 0 obj +1184 0 obj << -/Length 5866 +/Length 5872 >> stream 0 g 0 G 0 g 0 G 0 g 0 G BT -/F27 9.9626 Tf 99.895 706.129 Td [(w)32(ork)]TJ +/F27 9.9626 Tf 150.705 706.129 Td [(w)32(ork)]TJ 0 g 0 G -/F8 9.9626 Tf 29.432 0 Td [(the)-333(w)27(ork)-333(arra)28(y)83(.)]TJ -4.525 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(optional)]TJ/F8 9.9626 Tf -29.611 -11.956 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(inout)]TJ/F8 9.9626 Tf 26.096 0 Td [(.)]TJ -59.582 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(one)-333(dimensional)-334(ar)1(ra)27(y)-333(of)-333(the)-334(same)-333(t)28(yp)-28(e)-333(of)]TJ/F11 9.9626 Tf 252.609 0 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(.)]TJ +/F8 9.9626 Tf 29.431 0 Td [(the)-333(w)27(ork)-333(arra)28(y)83(.)]TJ -4.525 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.612 0 Td [(optional)]TJ/F8 9.9626 Tf -29.612 -11.956 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(inout)]TJ/F8 9.9626 Tf 26.096 0 Td [(.)]TJ -59.582 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(one)-333(dimensional)-334(arr)1(a)27(y)-333(of)-333(the)-334(same)-333(t)28(yp)-28(e)-333(of)]TJ/F11 9.9626 Tf 252.609 0 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(.)]TJ 0 g 0 G -/F27 9.9626 Tf -283.21 -19.925 Td [(On)-383(Return)]TJ +/F27 9.9626 Tf -283.209 -19.925 Td [(On)-383(Return)]TJ 0 g 0 G 0 g 0 G 0 -19.925 Td [(x)]TJ 0 g 0 G -/F8 9.9626 Tf 11.028 0 Td [(global)-333(dense)-334(result)-333(matrix)]TJ/F11 9.9626 Tf 116.674 0 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(.)]TJ -108.489 -11.956 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(inout)]TJ/F8 9.9626 Tf 26.096 0 Td [(.)]TJ -59.582 -11.955 Td [(Sp)-28(eci\014ed)-474(as:)-727(an)-475(arra)28(y)-474(of)-475(rank)-475(on)1(e)-475(or)-475(t)28(w)28(o)-475(con)28(taining)-474(n)27(u)1(m)27(b)-27(e)-1(r)1(s)-475(of)-475(t)28(yp)-28(e)]TJ 0 -11.955 Td [(sp)-28(eci\014ed)-333(in)-333(T)83(able)]TJ +/F8 9.9626 Tf 11.028 0 Td [(global)-333(dense)-334(result)-333(matrix)]TJ/F11 9.9626 Tf 116.674 0 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(.)]TJ -108.49 -11.956 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.612 0 Td [(required)]TJ/F8 9.9626 Tf -29.612 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(inout)]TJ/F8 9.9626 Tf 26.096 0 Td [(.)]TJ -59.582 -11.955 Td [(Sp)-28(eci\014ed)-474(as:)-727(an)-475(arra)28(y)-475(of)-474(rank)-475(one)-474(or)-475(t)28(w)28(o)-475(con)28(taining)-474(n)27(um)28(b)-28(ers)-474(of)-475(t)28(yp)-28(e)]TJ 0 -11.955 Td [(sp)-28(eci\014ed)-333(in)-333(T)83(able)]TJ 0 0 1 rg 0 0 1 RG [-333(15)]TJ 0 g 0 G [(.)]TJ 0 g 0 G -/F27 9.9626 Tf -24.907 -19.926 Td [(info)]TJ +/F27 9.9626 Tf -24.906 -19.926 Td [(info)]TJ 0 g 0 G -/F8 9.9626 Tf 23.758 0 Td [(Error)-333(co)-28(de.)]TJ 1.149 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(out)]TJ/F8 9.9626 Tf 16.549 0 Td [(.)]TJ -50.035 -11.955 Td [(An)-333(in)28(tege)-1(r)-333(v)56(alue;)-334(0)-333(means)-333(no)-334(error)-333(has)-333(b)-28(een)-333(detecte)-1(d)1(.)]TJ/F16 11.9552 Tf -24.907 -21.918 Td [(Notes)]TJ +/F8 9.9626 Tf 23.758 0 Td [(Error)-333(co)-28(de.)]TJ 1.148 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.612 0 Td [(required)]TJ/F8 9.9626 Tf -29.612 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(out)]TJ/F8 9.9626 Tf 16.549 0 Td [(.)]TJ -50.035 -11.955 Td [(An)-333(in)28(te)-1(ger)-333(v)56(alue;)-334(0)-333(means)-333(no)-334(error)-333(has)-333(b)-28(een)-333(detec)-1(t)1(e)-1(d.)]TJ/F16 11.9552 Tf -24.906 -21.918 Td [(Notes)]TJ 0 g 0 G -/F8 9.9626 Tf 12.177 -19.925 Td [(1.)]TJ +/F8 9.9626 Tf 12.176 -19.925 Td [(1.)]TJ 0 g 0 G - [-500(If)-316(there)-316(is)-317(no)-316(o)28(v)28(erlap)-316(in)-316(the)-317(data)-316(distribution)-316(asso)-28(ciated)-316(with)-316(the)-316(descrip-)]TJ 12.73 -11.955 Td [(tor,)-333(no)-334(op)-27(erations)-334(are)-333(p)-28(erformed;)]TJ + [-500(If)-316(there)-316(is)-317(no)-316(o)28(v)28(erlap)-316(in)-317(t)1(he)-317(data)-316(distribution)-316(asso)-28(ciated)-316(with)-316(the)-316(descrip-)]TJ 12.73 -11.955 Td [(tor,)-333(no)-334(op)-27(erations)-334(are)-333(p)-28(erformed;)]TJ 0 g 0 G -12.73 -19.926 Td [(2.)]TJ 0 g 0 G - [-500(The)-351(op)-27(erator)]TJ/F11 9.9626 Tf 73.737 0 Td [(P)]TJ/F10 6.9738 Tf 7.78 3.616 Td [(T)]TJ/F8 9.9626 Tf 9.77 -3.616 Td [(p)-28(erforms)-350(the)-351(reduction)-351(sum)-350(of)-351(o)28(v)27(erlap)-350(elemen)28(ts)-1(;)-359(it)-351(i)1(s)-351(a)]TJ -78.557 -11.955 Td [(\134prolongation")-365(op)-28(erator)]TJ/F11 9.9626 Tf 108.923 0 Td [(P)]TJ/F10 6.9738 Tf 7.78 3.615 Td [(T)]TJ/F8 9.9626 Tf 9.914 -3.615 Td [(that)-365(replicates)-365(o)27(v)28(erlap)-365(elemen)28(ts,)-373(accoun)27(tin)1(g)]TJ -126.617 -11.955 Td [(for)-333(the)-334(ph)28(ysical)-333(replication)-333(of)-334(data;)]TJ + [-500(The)-351(op)-27(e)-1(r)1(ator)]TJ/F11 9.9626 Tf 73.738 0 Td [(P)]TJ/F10 6.9738 Tf 7.779 3.616 Td [(T)]TJ/F8 9.9626 Tf 9.77 -3.616 Td [(p)-28(erforms)-350(the)-351(reduction)-351(sum)-350(of)-351(o)28(v)27(erlap)-350(elemen)27(ts;)-359(it)-351(is)-350(a)]TJ -78.557 -11.955 Td [(\134prolongation")-365(op)-28(erator)]TJ/F11 9.9626 Tf 108.923 0 Td [(P)]TJ/F10 6.9738 Tf 7.78 3.615 Td [(T)]TJ/F8 9.9626 Tf 9.914 -3.615 Td [(that)-365(replicates)-365(o)27(v)28(erlap)-365(elemen)28(ts,)-373(accoun)27(ting)]TJ -126.617 -11.955 Td [(for)-333(the)-334(ph)28(ysical)-333(replication)-333(of)-334(data;)]TJ 0 g 0 G -12.73 -19.925 Td [(3.)]TJ 0 g 0 G - [-500(The)-255(op)-28(erator)]TJ/F11 9.9626 Tf 71.84 0 Td [(P)]TJ/F10 6.9738 Tf 6.397 -1.495 Td [(a)]TJ/F8 9.9626 Tf 7.364 1.495 Td [(p)-28(erforms)-255(a)-256(scaling)-255(on)-256(the)-255(o)28(v)27(erlap)-255(elemen)28(ts)-256(b)28(y)-256(the)-255(amoun)28(t)]TJ -72.871 -11.956 Td [(of)-290(r)1(e)-1(pl)1(ic)-1(ati)1(on;)-305(th)28(us,)-298(when)-290(com)28(bined)-289(with)-290(the)-289(reduction)-290(op)-28(erator,)-298(it)-289(im)-1(p)1(le-)]TJ 0 -11.955 Td [(men)28(ts)-334(the)-333(a)28(v)28(erage)-334(of)-333(replicated)-333(elem)-1(en)28(ts)-333(o)28(v)27(er)-333(all)-333(of)-333(their)-334(instances.)]TJ/F16 11.9552 Tf -24.907 -19.925 Td [(Example)-388(of)-388(use)]TJ/F8 9.9626 Tf 93.469 0 Td [(Consider)-345(the)-344(discretization)-345(mesh)-345(d)1(e)-1(p)1(icte)-1(d)-344(in)-345(\014g.)]TJ + [-500(The)-256(op)-27(erator)]TJ/F11 9.9626 Tf 71.841 0 Td [(P)]TJ/F10 6.9738 Tf 6.396 -1.495 Td [(a)]TJ/F8 9.9626 Tf 7.365 1.495 Td [(p)-28(erforms)-255(a)-256(scaling)-255(on)-256(the)-255(o)28(v)27(erlap)-255(elemen)28(ts)-256(b)28(y)-256(th)1(e)-256(amoun)28(t)]TJ -72.872 -11.956 Td [(of)-290(repli)1(c)-1(ation)1(;)-305(th)28(us,)-298(when)-290(com)28(bined)-289(with)-290(the)-289(re)-1(d)1(uction)-290(op)-28(erator,)-298(it)-290(impl)1(e)-1(-)]TJ 0 -11.955 Td [(men)28(ts)-334(the)-333(a)28(v)28(erage)-334(of)-333(replicated)-333(ele)-1(men)28(ts)-333(o)28(v)27(er)-333(all)-333(of)-334(t)1(he)-1(i)1(r)-334(instances.)]TJ/F16 11.9552 Tf -24.906 -19.925 Td [(Example)-388(of)-387(us)-1(e)]TJ/F8 9.9626 Tf 93.468 0 Td [(Consider)-345(the)-344(discretization)-345(mesh)-345(d)1(e)-1(p)1(ic)-1(ted)-344(in)-345(\014g.)]TJ 0 0 1 rg 0 0 1 RG [-344(8)]TJ 0 g 0 G - [(,)-348(parti-)]TJ -93.469 -11.955 Td [(tioned)-330(among)-330(t)28(w)27(o)-330(pro)-27(c)-1(esses)-330(as)-330(sho)28(wn)-330(b)27(y)-330(the)-330(dashed)-330(lines,)-331(with)-330(an)-330(o)28(v)28(erlap)-330(of)-330(1)]TJ 0 -11.955 Td [(extra)-360(la)28(y)28(er)-360(with)-359(resp)-28(ect)-360(to)-359(the)-360(partition)-359(of)-360(\014g.)]TJ + [(,)-348(parti-)]TJ -93.468 -11.955 Td [(tioned)-330(among)-330(t)28(w)27(o)-330(pro)-27(ce)-1(sses)-330(as)-330(sho)28(wn)-330(b)28(y)-331(th)1(e)-331(dashed)-330(lines,)-330(w)-1(i)1(th)-331(an)-330(o)28(v)28(erlap)-330(of)-330(1)]TJ 0 -11.955 Td [(extra)-360(la)28(y)28(er)-360(with)-359(resp)-28(ect)-360(to)-359(the)-360(partition)-359(of)-360(\014g.)]TJ 0 0 1 rg 0 0 1 RG [-359(7)]TJ 0 g 0 G - [(;)-373(the)-359(data)-360(distribution)-359(is)-360(suc)28(h)]TJ 0 -11.956 Td [(that)-351(eac)27(h)-351(pro)-28(cess)-351(will)-352(o)28(wn)-351(40)-352(en)28(tries)-351(in)-351(the)-352(index)-351(space,)-356(with)-351(an)-352(o)28(v)28(erlap)-351(of)-352(16)]TJ 0 -11.955 Td [(en)28(tries)-326(placed)-325(a)-1(t)-325(lo)-28(cal)-325(indices)-326(25)-326(through)-325(40;)-328(the)-326(halo)-325(w)-1(il)1(l)-326(run)-326(fr)1(om)-326(lo)-28(cal)-326(in)1(dex)]TJ 0 -11.955 Td [(41)-290(through)-291(lo)-27(cal)-291(index)-290(48..)-430(If)-291(pro)-27(cess)-291(0)-290(assigns)-291(an)-290(initial)-290(v)55(alue)-290(of)-291(1)-290(to)-290(its)-291(en)28(tries)]TJ 0 -11.955 Td [(in)-298(the)]TJ/F11 9.9626 Tf 28.079 0 Td [(x)]TJ/F8 9.9626 Tf 8.663 0 Td [(v)28(ector,)-305(and)-298(pro)-28(cess)-298(1)-298(assigns)-299(a)-298(v)56(alue)-298(of)-298(2,)-305(then)-298(after)-298(a)-298(call)-298(to)]TJ/F30 9.9626 Tf 265.127 0 Td [(psb_ovrl)]TJ/F8 9.9626 Tf -301.869 -11.955 Td [(with)]TJ/F30 9.9626 Tf 22.401 0 Td [(psb_avg_)]TJ/F8 9.9626 Tf 44.871 0 Td [(and)-304(a)-304(call)-304(to)]TJ/F30 9.9626 Tf 56.945 0 Td [(psb_halo_)]TJ/F8 9.9626 Tf 50.101 0 Td [(the)-304(con)28(ten)28(ts)-304(of)-304(the)-304(lo)-28(cal)-304(v)28(ectors)-304(will)-304(b)-28(e)]TJ -174.318 -11.955 Td [(the)-333(follo)27(win)1(g)-334(\050sho)28(wing)-333(a)-334(transition)-333(among)-333(the)-334(t)28(w)28(o)-333(sub)-28(domains\051)]TJ + [(;)-373(the)-359(data)-360(distribution)-359(is)-360(suc)28(h)]TJ 0 -11.956 Td [(that)-351(eac)27(h)-351(pro)-28(cess)-351(will)-351(o)27(wn)-351(40)-351(en)27(tries)-351(in)-351(the)-352(index)-351(space,)-356(with)-351(an)-352(o)28(v)28(erlap)-351(of)-352(16)]TJ 0 -11.955 Td [(en)28(tries)-326(placed)-325(at)-326(lo)-28(cal)-325(indices)-326(25)-326(through)-325(40;)-328(the)-326(halo)-325(will)-326(run)-325(from)-326(lo)-28(cal)-325(index)]TJ 0 -11.955 Td [(41)-290(through)-291(lo)-27(cal)-291(index)-290(48..)-430(If)-291(pro)-27(cess)-291(0)-290(assigns)-291(an)-290(initial)-290(v)55(alue)-290(of)-291(1)-290(to)-290(its)-291(en)28(tries)]TJ 0 -11.955 Td [(in)-298(the)]TJ/F11 9.9626 Tf 28.078 0 Td [(x)]TJ/F8 9.9626 Tf 8.663 0 Td [(v)28(ector,)-305(and)-298(pro)-28(cess)-298(1)-298(ass)-1(i)1(gns)-299(a)-298(v)56(alue)-298(of)-298(2,)-305(then)-298(after)-298(a)-298(call)-298(to)]TJ/F30 9.9626 Tf 265.127 0 Td [(psb_ovrl)]TJ/F8 9.9626 Tf -301.868 -11.955 Td [(with)]TJ/F30 9.9626 Tf 22.4 0 Td [(psb_avg_)]TJ/F8 9.9626 Tf 44.871 0 Td [(and)-304(a)-304(call)-304(to)]TJ/F30 9.9626 Tf 56.945 0 Td [(psb_halo_)]TJ/F8 9.9626 Tf 50.102 0 Td [(the)-304(con)28(ten)28(ts)-304(of)-304(the)-304(lo)-28(cal)-304(v)28(ectors)-304(will)-304(b)-28(e)]TJ -174.318 -11.955 Td [(the)-333(follo)28(wing)-334(\050sho)28(wing)-333(a)-334(transition)-333(among)-333(the)-334(t)28(w)28(o)-333(sub)-28(domains\051)]TJ 0 g 0 G - 166.875 -143.462 Td [(53)]TJ + 166.874 -143.462 Td [(54)]TJ 0 g 0 G ET endstream endobj -1179 0 obj +1192 0 obj << -/Length 3619 +/Length 3552 >> stream 0 g 0 G @@ -12219,18 +12294,18 @@ stream 0 g 0 G 0 g 0 G BT -/F31 7.9701 Tf 260.921 653.177 Td [(Pro)-29(ce)-1(ss)-354(0)-8986(Pro)-30(cess)-354(1)]TJ -33.381 -9.464 Td [(I)-1500(GLOB\050I\051)-1500(X\050I\051)-5180(I)-1500(GLOB\050I\051)-1500(X\050I\051)]TJ -1.185 -9.465 Td [(1)-5253(1)-2148(1)1(.)-1(0)-5031(1)-4722(33)-2147(1.5)]TJ 0 -9.464 Td [(2)-5253(2)-2148(1)1(.)-1(0)-5031(2)-4722(34)-2147(1.5)]TJ 0 -9.465 Td [(3)-5253(3)-2148(1)1(.)-1(0)-5031(3)-4722(35)-2147(1.5)]TJ 0 -9.464 Td [(4)-5253(4)-2148(1)1(.)-1(0)-5031(4)-4722(36)-2147(1.5)]TJ 0 -9.465 Td [(5)-5253(5)-2148(1)1(.)-1(0)-5031(5)-4722(37)-2147(1.5)]TJ 0 -9.464 Td [(6)-5253(6)-2148(1)1(.)-1(0)-5031(6)-4722(38)-2147(1.5)]TJ 0 -9.465 Td [(7)-5253(7)-2148(1)1(.)-1(0)-5031(7)-4722(39)-2147(1.5)]TJ 0 -9.464 Td [(8)-5253(8)-2148(1)1(.)-1(0)-5031(8)-4722(40)-2147(1.5)]TJ 0 -9.465 Td [(9)-5253(9)-2148(1)1(.)-1(0)-5031(9)-4722(41)-2147(2.0)]TJ -4.234 -9.464 Td [(10)-4722(10)-2147(1.0)-4500(10)-4722(42)-2147(2.0)]TJ 0 -9.465 Td [(11)-4722(11)-2147(1.0)-4500(11)-4722(43)-2147(2.0)]TJ 0 -9.464 Td [(12)-4722(12)-2147(1.0)-4500(12)-4722(44)-2147(2.0)]TJ 0 -9.465 Td [(13)-4722(13)-2147(1.0)-4500(13)-4722(45)-2147(2.0)]TJ 0 -9.464 Td [(14)-4722(14)-2147(1.0)-4500(14)-4722(46)-2147(2.0)]TJ 0 -9.465 Td [(15)-4722(15)-2147(1.0)-4500(15)-4722(47)-2147(2.0)]TJ 0 -9.464 Td [(16)-4722(16)-2147(1.0)-4500(16)-4722(48)-2147(2.0)]TJ 0 -9.465 Td [(17)-4722(17)-2147(1.0)-4500(17)-4722(49)-2147(2.0)]TJ 0 -9.464 Td [(18)-4722(18)-2147(1.0)-4500(18)-4722(50)-2147(2.0)]TJ 0 -9.465 Td [(19)-4722(19)-2147(1.0)-4500(19)-4722(51)-2147(2.0)]TJ 0 -9.464 Td [(20)-4722(20)-2147(1.0)-4500(20)-4722(52)-2147(2.0)]TJ 0 -9.465 Td [(21)-4722(21)-2147(1.0)-4500(21)-4722(53)-2147(2.0)]TJ 0 -9.464 Td [(22)-4722(22)-2147(1.0)-4500(22)-4722(54)-2147(2.0)]TJ 0 -9.465 Td [(23)-4722(23)-2147(1.0)-4500(23)-4722(55)-2147(2.0)]TJ 0 -9.464 Td [(24)-4722(24)-2147(1.0)-4500(24)-4722(56)-2147(2.0)]TJ 0 -9.465 Td [(25)-4722(25)-2147(1.5)-4500(25)-4722(57)-2147(2.0)]TJ 0 -9.464 Td [(26)-4722(26)-2147(1.5)-4500(26)-4722(58)-2147(2.0)]TJ 0 -9.465 Td [(27)-4722(27)-2147(1.5)-4500(27)-4722(59)-2147(2.0)]TJ 0 -9.464 Td [(28)-4722(28)-2147(1.5)-4500(28)-4722(60)-2147(2.0)]TJ 0 -9.465 Td [(29)-4722(29)-2147(1.5)-4500(29)-4722(61)-2147(2.0)]TJ 0 -9.464 Td [(30)-4722(30)-2147(1.5)-4500(30)-4722(62)-2147(2.0)]TJ 0 -9.465 Td [(31)-4722(31)-2147(1.5)-4500(31)-4722(63)-2147(2.0)]TJ 0 -9.464 Td [(32)-4722(32)-2147(1.5)-4500(32)-4722(64)-2147(2.0)]TJ 0 -9.465 Td [(33)-4722(33)-2147(1.5)-4500(33)-4722(25)-2147(1.5)]TJ 0 -9.464 Td [(34)-4722(34)-2147(1.5)-4500(34)-4722(26)-2147(1.5)]TJ 0 -9.465 Td [(35)-4722(35)-2147(1.5)-4500(35)-4722(27)-2147(1.5)]TJ 0 -9.464 Td [(36)-4722(36)-2147(1.5)-4500(36)-4722(28)-2147(1.5)]TJ 0 -9.465 Td [(37)-4722(37)-2147(1.5)-4500(37)-4722(29)-2147(1.5)]TJ 0 -9.464 Td [(38)-4722(38)-2147(1.5)-4500(38)-4722(30)-2147(1.5)]TJ 0 -9.465 Td [(39)-4722(39)-2147(1.5)-4500(39)-4722(31)-2147(1.5)]TJ 0 -9.464 Td [(40)-4722(40)-2147(1.5)-4500(40)-4722(32)-2147(1.5)]TJ 0 -9.465 Td [(41)-4722(41)-2147(2.0)-4500(41)-4722(17)-2147(1.0)]TJ 0 -9.464 Td [(42)-4722(42)-2147(2.0)-4500(42)-4722(18)-2147(1.0)]TJ 0 -9.465 Td [(43)-4722(43)-2147(2.0)-4500(43)-4722(19)-2147(1.0)]TJ 0 -9.464 Td [(44)-4722(44)-2147(2.0)-4500(44)-4722(20)-2147(1.0)]TJ 0 -9.465 Td [(45)-4722(45)-2147(2.0)-4500(45)-4722(21)-2147(1.0)]TJ 0 -9.464 Td [(46)-4722(46)-2147(2.0)-4500(46)-4722(22)-2147(1.0)]TJ 0 -9.465 Td [(47)-4722(47)-2147(2.0)-4500(47)-4722(23)-2147(1.0)]TJ 0 -9.464 Td [(48)-4722(48)-2147(2.0)-4500(48)-4722(24)-2147(1.0)]TJ +/F31 7.9701 Tf 210.112 653.177 Td [(Pro)-29(cess)-355(0)-8986(Pro)-30(cess)-354(1)]TJ -33.382 -9.464 Td [(I)-1500(GLOB\050I\051)-1500(X\050I\051)-5180(I)-1500(GLOB\050I\051)-1500(X\050I\051)]TJ -1.184 -9.465 Td [(1)-5253(1)-2147(1.0)-5032(1)-4722(33)-2147(1.5)]TJ 0 -9.464 Td [(2)-5253(2)-2147(1.0)-5032(2)-4722(34)-2147(1.5)]TJ 0 -9.465 Td [(3)-5253(3)-2147(1.0)-5032(3)-4722(35)-2147(1.5)]TJ 0 -9.464 Td [(4)-5253(4)-2147(1.0)-5032(4)-4722(36)-2147(1.5)]TJ 0 -9.465 Td [(5)-5253(5)-2147(1.0)-5032(5)-4722(37)-2147(1.5)]TJ 0 -9.464 Td [(6)-5253(6)-2147(1.0)-5032(6)-4722(38)-2147(1.5)]TJ 0 -9.465 Td [(7)-5253(7)-2147(1.0)-5032(7)-4722(39)-2147(1.5)]TJ 0 -9.464 Td [(8)-5253(8)-2147(1.0)-5032(8)-4722(40)-2147(1.5)]TJ 0 -9.465 Td [(9)-5253(9)-2147(1.0)-5032(9)-4722(41)-2147(2.0)]TJ -4.235 -9.464 Td [(10)-4722(10)-2147(1.0)-4500(10)-4722(42)-2147(2.0)]TJ 0 -9.465 Td [(11)-4722(11)-2147(1.0)-4500(11)-4722(43)-2147(2.0)]TJ 0 -9.464 Td [(12)-4722(12)-2147(1.0)-4500(12)-4722(44)-2147(2.0)]TJ 0 -9.465 Td [(13)-4722(13)-2147(1.0)-4500(13)-4722(45)-2147(2.0)]TJ 0 -9.464 Td [(14)-4722(14)-2147(1.0)-4500(14)-4722(46)-2147(2.0)]TJ 0 -9.465 Td [(15)-4722(15)-2147(1.0)-4500(15)-4722(47)-2147(2.0)]TJ 0 -9.464 Td [(16)-4722(16)-2147(1.0)-4500(16)-4722(48)-2147(2.0)]TJ 0 -9.465 Td [(17)-4722(17)-2147(1.0)-4500(17)-4722(49)-2147(2.0)]TJ 0 -9.464 Td [(18)-4722(18)-2147(1.0)-4500(18)-4722(50)-2147(2.0)]TJ 0 -9.465 Td [(19)-4722(19)-2147(1.0)-4500(19)-4722(51)-2147(2.0)]TJ 0 -9.464 Td [(20)-4722(20)-2147(1.0)-4500(20)-4722(52)-2147(2.0)]TJ 0 -9.465 Td [(21)-4722(21)-2147(1.0)-4500(21)-4722(53)-2147(2.0)]TJ 0 -9.464 Td [(22)-4722(22)-2147(1.0)-4500(22)-4722(54)-2147(2.0)]TJ 0 -9.465 Td [(23)-4722(23)-2147(1.0)-4500(23)-4722(55)-2147(2.0)]TJ 0 -9.464 Td [(24)-4722(24)-2147(1.0)-4500(24)-4722(56)-2147(2.0)]TJ 0 -9.465 Td [(25)-4722(25)-2147(1.5)-4500(25)-4722(57)-2147(2.0)]TJ 0 -9.464 Td [(26)-4722(26)-2147(1.5)-4500(26)-4722(58)-2147(2.0)]TJ 0 -9.465 Td [(27)-4722(27)-2147(1.5)-4500(27)-4722(59)-2147(2.0)]TJ 0 -9.464 Td [(28)-4722(28)-2147(1.5)-4500(28)-4722(60)-2147(2.0)]TJ 0 -9.465 Td [(29)-4722(29)-2147(1.5)-4500(29)-4722(61)-2147(2.0)]TJ 0 -9.464 Td [(30)-4722(30)-2147(1.5)-4500(30)-4722(62)-2147(2.0)]TJ 0 -9.465 Td [(31)-4722(31)-2147(1.5)-4500(31)-4722(63)-2147(2.0)]TJ 0 -9.464 Td [(32)-4722(32)-2147(1.5)-4500(32)-4722(64)-2147(2.0)]TJ 0 -9.465 Td [(33)-4722(33)-2147(1.5)-4500(33)-4722(25)-2147(1.5)]TJ 0 -9.464 Td [(34)-4722(34)-2147(1.5)-4500(34)-4722(26)-2147(1.5)]TJ 0 -9.465 Td [(35)-4722(35)-2147(1.5)-4500(35)-4722(27)-2147(1.5)]TJ 0 -9.464 Td [(36)-4722(36)-2147(1.5)-4500(36)-4722(28)-2147(1.5)]TJ 0 -9.465 Td [(37)-4722(37)-2147(1.5)-4500(37)-4722(29)-2147(1.5)]TJ 0 -9.464 Td [(38)-4722(38)-2147(1.5)-4500(38)-4722(30)-2147(1.5)]TJ 0 -9.465 Td [(39)-4722(39)-2147(1.5)-4500(39)-4722(31)-2147(1.5)]TJ 0 -9.464 Td [(40)-4722(40)-2147(1.5)-4500(40)-4722(32)-2147(1.5)]TJ 0 -9.465 Td [(41)-4722(41)-2147(2.0)-4500(41)-4722(17)-2147(1.0)]TJ 0 -9.464 Td [(42)-4722(42)-2147(2.0)-4500(42)-4722(18)-2147(1.0)]TJ 0 -9.465 Td [(43)-4722(43)-2147(2.0)-4500(43)-4722(19)-2147(1.0)]TJ 0 -9.464 Td [(44)-4722(44)-2147(2.0)-4500(44)-4722(20)-2147(1.0)]TJ 0 -9.465 Td [(45)-4722(45)-2147(2.0)-4500(45)-4722(21)-2147(1.0)]TJ 0 -9.464 Td [(46)-4722(46)-2147(2.0)-4500(46)-4722(22)-2147(1.0)]TJ 0 -9.465 Td [(47)-4722(47)-2147(2.0)-4500(47)-4722(23)-2147(1.0)]TJ 0 -9.464 Td [(48)-4722(48)-2147(2.0)-4500(48)-4722(24)-2147(1.0)]TJ 0 g 0 G 0 g 0 G -/F8 9.9626 Tf 95.458 -98.979 Td [(54)]TJ +/F8 9.9626 Tf 95.459 -98.979 Td [(55)]TJ 0 g 0 G ET endstream endobj -1183 0 obj +1197 0 obj << -/Length 345 +/Length 338 >> stream 0 g 0 G @@ -12238,7 +12313,7 @@ stream 0 g 0 G 0 g 0 G 0 g 0 G -1 0 0 1 104.703 574.795 cm +1 0 0 1 155.512 574.795 cm q 0 -1 1 0 0 0 cm q @@ -12250,32 +12325,32 @@ Q Q Q 0 g 0 G -1 0 0 1 -104.703 -574.795 cm +1 0 0 1 -155.512 -574.795 cm BT -/F8 9.9626 Tf 189.268 263.559 Td [(Figure)-333(8:)-445(Sample)-333(discretization)-333(mes)-1(h)1(.)]TJ +/F8 9.9626 Tf 240.078 263.559 Td [(Figure)-333(8:)-445(Sample)-333(discretization)-333(mesh.)]TJ 0 g 0 G 0 g 0 G 0 g 0 G - 77.502 -173.121 Td [(55)]TJ + 77.501 -173.121 Td [(56)]TJ 0 g 0 G ET endstream endobj -1166 0 obj +1179 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (./figures/try8x8_ov.pdf) /PTEX.PageNumber 1 -/PTEX.InfoDict 1186 0 R +/PTEX.InfoDict 1199 0 R /BBox [0 0 436 514] /Resources << /ProcSet [ /PDF /Text ] /ExtGState << -/R7 1187 0 R ->>/Font << /R8 1188 0 R/R9 1189 0 R>> +/R7 1200 0 R +>>/Font << /R8 1201 0 R/R9 1202 0 R>> >> /Length 3652 /Filter /FlateDecode @@ -12291,65 +12366,65 @@ V óá!Zäÿ/L)ÇÇ8ú:ß=þ êë¼® endstream endobj -1195 0 obj +1208 0 obj << -/Length 9366 +/Length 9388 >> stream 0 g 0 G 0 g 0 G BT -/F16 11.9552 Tf 150.705 706.129 Td [(psb)]TJ +/F16 11.9552 Tf 99.895 706.129 Td [(psb)]TJ ET q -1 0 0 1 171.761 706.328 cm +1 0 0 1 120.951 706.328 cm []0 d 0 J 0.398 w 0 0 m 4.035 0 l S Q BT -/F16 11.9552 Tf 175.796 706.129 Td [(gather)-375(|)-375(Gather)-375(Global)-375(Dense)-375(Matrix)]TJ/F8 9.9626 Tf -25.091 -18.389 Td [(These)-384(subroutines)-384(collect)-385(the)-384(p)-27(ortions)-385(of)-384(global)-384(dense)-384(matrix)-384(distributed)-384(o)28(v)27(er)]TJ 0 -11.956 Td [(all)-333(pro)-28(cess)-334(i)1(n)27(to)-333(one)-333(single)-334(arra)28(y)-333(stored)-334(on)-333(one)-333(pro)-28(cess.)]TJ/F11 9.9626 Tf 120.435 -22.804 Td [(g)-36(l)-19(ob)]TJ +/F16 11.9552 Tf 124.986 706.129 Td [(gather)-375(|)-375(Gather)-375(Global)-375(Dense)-375(Matrix)]TJ/F8 9.9626 Tf -25.091 -18.389 Td [(These)-384(subroutines)-384(collect)-385(the)-384(p)-28(orti)1(ons)-385(of)-384(global)-384(dense)-384(matrix)-384(distributed)-384(o)28(v)27(er)]TJ 0 -11.956 Td [(all)-333(pro)-28(cess)-334(in)28(to)-333(one)-333(single)-334(arra)28(y)-333(stored)-334(on)-333(one)-333(pro)-28(cess.)]TJ/F11 9.9626 Tf 120.435 -22.804 Td [(g)-36(l)-20(ob)]TJ ET q -1 0 0 1 289.12 653.179 cm +1 0 0 1 238.311 653.179 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F11 9.9626 Tf 292.109 652.98 Td [(x)]TJ/F14 9.9626 Tf 8.461 0 Td [(\040)]TJ/F11 9.9626 Tf 12.73 0 Td [(col)-20(l)-19(ect)]TJ/F8 9.9626 Tf 28.026 0 Td [(\050)]TJ/F11 9.9626 Tf 3.874 0 Td [(l)-20(oc)]TJ +/F11 9.9626 Tf 241.299 652.98 Td [(x)]TJ/F14 9.9626 Tf 8.462 0 Td [(\040)]TJ/F11 9.9626 Tf 12.73 0 Td [(col)-20(l)-19(ect)]TJ/F8 9.9626 Tf 28.025 0 Td [(\050)]TJ/F11 9.9626 Tf 3.875 0 Td [(l)-20(oc)]TJ ET q -1 0 0 1 358.107 653.179 cm +1 0 0 1 307.298 653.179 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F11 9.9626 Tf 361.096 652.98 Td [(x)]TJ/F10 6.9738 Tf 5.694 -1.494 Td [(i)]TJ/F8 9.9626 Tf 3.317 1.494 Td [(\051)]TJ -219.402 -20.867 Td [(where:)]TJ +/F11 9.9626 Tf 310.287 652.98 Td [(x)]TJ/F10 6.9738 Tf 5.694 -1.494 Td [(i)]TJ/F8 9.9626 Tf 3.316 1.494 Td [(\051)]TJ -219.402 -20.867 Td [(where:)]TJ 0 g 0 G -/F11 9.9626 Tf 0 -19.085 Td [(g)-36(l)-19(o)-1(b)]TJ +/F11 9.9626 Tf 0 -19.085 Td [(g)-36(l)-20(ob)]TJ ET q -1 0 0 1 168.775 613.227 cm +1 0 0 1 117.965 613.227 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F11 9.9626 Tf 172.212 613.028 Td [(x)]TJ +/F11 9.9626 Tf 121.403 613.028 Td [(x)]TJ 0 g 0 G /F8 9.9626 Tf 10.675 0 Td [(is)-333(the)-334(global)-333(submatrix)]TJ/F11 9.9626 Tf 103.916 0 Td [(g)-36(l)-20(ob)]TJ ET q -1 0 0 1 304.784 613.227 cm +1 0 0 1 253.974 613.227 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F11 9.9626 Tf 307.773 613.028 Td [(x)]TJ/F7 6.9738 Tf 5.694 -1.494 Td [(1:)]TJ/F10 6.9738 Tf 6.226 0 Td [(m;)]TJ/F7 6.9738 Tf 9.436 0 Td [(1:)]TJ/F10 6.9738 Tf 6.227 0 Td [(n)]TJ +/F11 9.9626 Tf 256.963 613.028 Td [(x)]TJ/F7 6.9738 Tf 5.694 -1.494 Td [(1:)]TJ/F10 6.9738 Tf 6.227 0 Td [(m;)]TJ/F7 6.9738 Tf 9.436 0 Td [(1:)]TJ/F10 6.9738 Tf 6.226 0 Td [(n)]TJ 0 g 0 G /F11 9.9626 Tf -184.651 -18.011 Td [(l)-20(oc)]TJ ET q -1 0 0 1 163.701 593.722 cm +1 0 0 1 112.892 593.722 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F11 9.9626 Tf 167.139 593.523 Td [(x)]TJ/F10 6.9738 Tf 5.693 -1.494 Td [(i)]TJ +/F11 9.9626 Tf 116.329 593.523 Td [(x)]TJ/F10 6.9738 Tf 5.694 -1.494 Td [(i)]TJ 0 g 0 G -/F8 9.9626 Tf 8.299 1.494 Td [(is)-333(the)-334(lo)-27(cal)-334(p)-28(or)1(tion)-334(of)-333(global)-333(dense)-334(matrix)-333(on)-333(pro)-28(cess)]TJ/F11 9.9626 Tf 234.703 0 Td [(i)]TJ/F8 9.9626 Tf 3.433 0 Td [(.)]TJ +/F8 9.9626 Tf 8.298 1.494 Td [(is)-333(the)-334(lo)-27(c)-1(al)-333(p)-28(ortion)-333(of)-333(global)-333(dense)-334(matrix)-333(on)-333(pro)-28(cess)]TJ/F11 9.9626 Tf 234.704 0 Td [(i)]TJ/F8 9.9626 Tf 3.432 0 Td [(.)]TJ 0 g 0 G /F11 9.9626 Tf -268.562 -19.505 Td [(col)-20(l)-19(ect)]TJ 0 g 0 G @@ -12359,120 +12434,120 @@ BT 0 g 0 G ET q -1 0 0 1 228.797 555.154 cm +1 0 0 1 177.988 555.154 cm []0 d 0 J 0.398 w 0 0 m 187.526 0 l S Q BT -/F11 9.9626 Tf 234.775 546.587 Td [(x)]TJ/F10 6.9738 Tf 5.694 -1.495 Td [(i)]TJ/F11 9.9626 Tf 3.317 1.495 Td [(;)-167(y)]TJ/F27 9.9626 Tf 111.399 0 Td [(Subroutine)]TJ +/F11 9.9626 Tf 183.966 546.587 Td [(x)]TJ/F10 6.9738 Tf 5.693 -1.495 Td [(i)]TJ/F11 9.9626 Tf 3.317 1.495 Td [(;)-167(y)]TJ/F27 9.9626 Tf 111.399 0 Td [(Subroutine)]TJ ET q -1 0 0 1 228.797 542.801 cm +1 0 0 1 177.988 542.801 cm []0 d 0 J 0.398 w 0 0 m 187.526 0 l S Q BT -/F8 9.9626 Tf 234.775 534.233 Td [(In)28(teger)-9028(psb)]TJ +/F8 9.9626 Tf 183.966 534.233 Td [(In)28(teger)-9028(psb)]TJ ET q -1 0 0 1 370.782 534.432 cm +1 0 0 1 319.972 534.432 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 373.771 534.233 Td [(gather)]TJ -138.996 -11.955 Td [(Short)-333(Precision)-334(Real)-3102(psb)]TJ +/F8 9.9626 Tf 322.961 534.233 Td [(gather)]TJ -138.995 -11.955 Td [(Short)-333(Precision)-333(R)-1(eal)-3102(psb)]TJ ET q -1 0 0 1 370.782 522.477 cm +1 0 0 1 319.972 522.477 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 373.771 522.278 Td [(gather)]TJ -138.996 -11.955 Td [(Long)-333(Precision)-334(Real)-3314(psb)]TJ +/F8 9.9626 Tf 322.961 522.278 Td [(gather)]TJ -138.995 -11.955 Td [(Long)-333(Precision)-334(Real)-3314(p)1(s)-1(b)]TJ ET q -1 0 0 1 370.782 510.522 cm +1 0 0 1 319.972 510.522 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 373.771 510.323 Td [(gather)]TJ -138.996 -11.956 Td [(Short)-333(Precision)-334(Complex)-1200(psb)]TJ +/F8 9.9626 Tf 322.961 510.323 Td [(gather)]TJ -138.995 -11.956 Td [(Short)-333(Precision)-333(C)-1(omplex)-1200(p)1(s)-1(b)]TJ ET q -1 0 0 1 370.782 498.567 cm +1 0 0 1 319.972 498.567 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 373.771 498.367 Td [(gather)]TJ -138.996 -11.955 Td [(Long)-333(Precision)-334(Complex)-1411(psb)]TJ +/F8 9.9626 Tf 322.961 498.367 Td [(gather)]TJ -138.995 -11.955 Td [(Long)-333(Precision)-334(Complex)-1411(psb)]TJ ET q -1 0 0 1 370.782 486.612 cm +1 0 0 1 319.972 486.612 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 373.771 486.412 Td [(gather)]TJ +/F8 9.9626 Tf 322.961 486.412 Td [(gather)]TJ ET q -1 0 0 1 228.797 482.626 cm +1 0 0 1 177.988 482.626 cm []0 d 0 J 0.398 w 0 0 m 187.526 0 l S Q 0 g 0 G BT -/F8 9.9626 Tf 276.386 454.587 Td [(T)83(able)-333(16:)-444(Data)-334(t)28(yp)-28(es)]TJ +/F8 9.9626 Tf 225.577 454.587 Td [(T)83(able)-333(16:)-444(Data)-334(t)28(yp)-28(es)]TJ 0 g 0 G 0 g 0 G -/F27 9.9626 Tf -124.304 -30.984 Td [(c)-138(a)-138(l)-139(l)]TJ/F8 9.9626 Tf 29.737 0 Td [(p)-123(s)-123(b)]TJ +/F27 9.9626 Tf -124.305 -30.984 Td [(c)-138(a)-138(l)-139(l)]TJ/F8 9.9626 Tf 29.738 0 Td [(p)-123(s)-123(b)]TJ ET q -1 0 0 1 201.095 423.802 cm +1 0 0 1 150.286 423.802 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 205.31 423.603 Td [(g)-123(a)-123(t)-123(h)-123(e)-123(r)-229(\050)-215(g)-110(l)-110(o)-110(b)]TJ +/F8 9.9626 Tf 154.501 423.603 Td [(g)-123(a)-123(t)-123(h)-123(e)-123(r)-229(\050)-215(g)-110(l)-110(o)-110(b)]TJ ET q -1 0 0 1 270.682 423.802 cm +1 0 0 1 219.873 423.802 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 274.766 423.603 Td [(x)-381(,)-888(l)-127(o)-127(c)]TJ +/F8 9.9626 Tf 223.956 423.603 Td [(x)-381(,)-888(l)-127(o)-127(c)]TJ ET q -1 0 0 1 312.009 423.802 cm +1 0 0 1 261.2 423.802 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 316.265 423.603 Td [(x)-415(,)-874(d)-113(e)-112(s)-113(c)]TJ +/F8 9.9626 Tf 265.456 423.603 Td [(x)-415(,)-874(d)-113(e)-112(s)-113(c)]TJ ET q -1 0 0 1 360.541 423.802 cm +1 0 0 1 309.731 423.802 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 364.652 423.603 Td [(a)-386(,)-888(i)-127(n)-127(f)-127(o)-415(,)-885(r)-124(o)-123(o)-124(t)-230(\051)]TJ/F27 9.9626 Tf -212.57 -11.956 Td [(c)-138(a)-138(l)-139(l)]TJ/F8 9.9626 Tf 29.737 0 Td [(p)-123(s)-123(b)]TJ +/F8 9.9626 Tf 313.842 423.603 Td [(a)-386(,)-888(i)-127(n)-127(f)-127(o)-415(,)-885(r)-124(o)-123(o)-124(t)-230(\051)]TJ/F27 9.9626 Tf -212.57 -11.956 Td [(c)-138(a)-138(l)-139(l)]TJ/F8 9.9626 Tf 29.738 0 Td [(p)-123(s)-123(b)]TJ ET q -1 0 0 1 201.095 411.847 cm +1 0 0 1 150.286 411.847 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 205.31 411.647 Td [(g)-123(a)-123(t)-123(h)-123(e)-123(r)-229(\050)-215(g)-110(l)-110(o)-110(b)]TJ +/F8 9.9626 Tf 154.501 411.647 Td [(g)-123(a)-123(t)-123(h)-123(e)-123(r)-229(\050)-215(g)-110(l)-110(o)-110(b)]TJ ET q -1 0 0 1 270.682 411.847 cm +1 0 0 1 219.873 411.847 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 274.766 411.647 Td [(x)-381(,)-888(l)-127(o)-127(c)]TJ +/F8 9.9626 Tf 223.956 411.647 Td [(x)-381(,)-888(l)-127(o)-127(c)]TJ ET q -1 0 0 1 312.009 411.847 cm +1 0 0 1 261.2 411.847 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 316.265 411.647 Td [(x)-415(,)-874(d)-113(e)-112(s)-113(c)]TJ +/F8 9.9626 Tf 265.456 411.647 Td [(x)-415(,)-874(d)-113(e)-112(s)-113(c)]TJ ET q -1 0 0 1 360.541 411.847 cm +1 0 0 1 309.731 411.847 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 364.652 411.647 Td [(a)-386(,)-888(i)-127(n)-127(f)-127(o)-415(,)-885(r)-124(o)-123(o)-124(t)-230(\051)]TJ +/F8 9.9626 Tf 313.842 411.647 Td [(a)-386(,)-888(i)-127(n)-127(f)-127(o)-415(,)-885(r)-124(o)-123(o)-124(t)-230(\051)]TJ 0 g 0 G 0 g 0 G 0 g 0 G @@ -12486,276 +12561,276 @@ BT 0 -19.505 Td [(lo)-32(c)]TJ ET q -1 0 0 1 165.713 346.412 cm +1 0 0 1 114.904 346.412 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 169.151 346.213 Td [(x)]TJ +/F27 9.9626 Tf 118.341 346.213 Td [(x)]TJ 0 g 0 G -/F8 9.9626 Tf 11.028 0 Td [(the)-333(lo)-28(cal)-333(p)-28(ortion)-333(of)-334(global)-333(dense)-333(matrix)]TJ/F11 9.9626 Tf 176.117 0 Td [(g)-36(l)-20(ob)]TJ +/F8 9.9626 Tf 11.028 0 Td [(the)-333(lo)-28(cal)-333(p)-28(ortion)-333(of)-334(global)-333(dense)-333(matrix)]TJ/F11 9.9626 Tf 176.118 0 Td [(g)-36(l)-19(o)-1(b)]TJ ET q -1 0 0 1 374.277 346.412 cm +1 0 0 1 323.467 346.412 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F11 9.9626 Tf 377.266 346.213 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(.)]TJ -207.349 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.612 0 Td [(required)]TJ/F8 9.9626 Tf -29.612 -11.956 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.548 0 Td [(.)]TJ -43.034 -11.955 Td [(Sp)-28(eci\014ed)-255(as:)-405(a)-255(rank)-254(one)-255(or)-255(t)28(w)27(o)-254(arra)27(y)-254(or)-255(an)-255(ob)-56(j)1(e)-1(ct)-254(of)-255(t)28(yp)-28(e)]TJ +/F11 9.9626 Tf 326.456 346.213 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(.)]TJ -207.348 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.956 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-255(as:)-405(a)-255(rank)-254(one)-255(or)-255(t)28(w)27(o)-254(arra)27(y)-254(or)-255(an)-255(ob)-55(jec)-1(t)-254(of)-255(t)28(yp)-28(e)]TJ 0 0 1 rg 0 0 1 RG /F30 9.9626 Tf 244.743 0 Td [(psb)]TJ ET q -1 0 0 1 436.673 298.592 cm +1 0 0 1 385.864 298.592 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 439.811 298.392 Td [(T)]TJ +/F30 9.9626 Tf 389.002 298.392 Td [(T)]TJ ET q -1 0 0 1 445.669 298.592 cm +1 0 0 1 394.86 298.592 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 448.807 298.392 Td [(vect)]TJ +/F30 9.9626 Tf 397.998 298.392 Td [(vect)]TJ ET q -1 0 0 1 470.356 298.592 cm +1 0 0 1 419.547 298.592 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 473.495 298.392 Td [(type)]TJ +/F30 9.9626 Tf 422.685 298.392 Td [(type)]TJ 0 g 0 G -/F8 9.9626 Tf -297.884 -11.955 Td [(indicated)-333(in)-334(T)84(able)]TJ +/F8 9.9626 Tf -297.883 -11.955 Td [(indicated)-333(in)-334(T)84(able)]TJ 0 0 1 rg 0 0 1 RG [-334(16)]TJ 0 g 0 G [(.)]TJ 0 g 0 G -/F27 9.9626 Tf -24.906 -19.505 Td [(desc)]TJ +/F27 9.9626 Tf -24.907 -19.505 Td [(desc)]TJ ET q -1 0 0 1 172.619 267.131 cm +1 0 0 1 121.81 267.131 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 176.057 266.932 Td [(a)]TJ +/F27 9.9626 Tf 125.247 266.932 Td [(a)]TJ 0 g 0 G -/F8 9.9626 Tf 10.55 0 Td [(con)28(tains)-334(data)-333(structures)-333(for)-333(c)-1(omm)28(unications.)]TJ -10.996 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.612 0 Td [(required)]TJ/F8 9.9626 Tf -29.612 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.548 0 Td [(.)]TJ -43.034 -11.956 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(structured)-333(data)-333(of)-334(t)28(yp)-28(e)]TJ +/F8 9.9626 Tf 10.551 0 Td [(con)28(tains)-334(d)1(ata)-334(structures)-333(for)-333(com)-1(m)28(unications.)]TJ -10.996 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.956 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(structured)-333(data)-333(of)-334(t)28(yp)-28(e)]TJ 0 0 1 rg 0 0 1 RG /F30 9.9626 Tf 170.915 0 Td [(psb)]TJ ET q -1 0 0 1 362.845 219.311 cm +1 0 0 1 312.036 219.311 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 365.983 219.111 Td [(desc)]TJ +/F30 9.9626 Tf 315.174 219.111 Td [(desc)]TJ ET q -1 0 0 1 387.532 219.311 cm +1 0 0 1 336.723 219.311 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 390.67 219.111 Td [(type)]TJ +/F30 9.9626 Tf 339.861 219.111 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.505 Td [(ro)-32(ot)]TJ 0 g 0 G -/F8 9.9626 Tf 25.93 0 Td [(The)-291(pro)-28(cess)-291(that)-291(holds)-291(the)-291(global)-291(cop)28(y)83(.)-430(If)]TJ/F11 9.9626 Tf 182.523 0 Td [(r)-28(oot)]TJ/F8 9.9626 Tf 20.794 0 Td [(=)]TJ/F14 9.9626 Tf 10.516 0 Td [(\000)]TJ/F8 9.9626 Tf 7.749 0 Td [(1)-291(all)-291(the)-291(pro)-28(cesses)-291(will)]TJ -222.606 -11.955 Td [(ha)28(v)28(e)-334(a)-333(cop)28(y)-334(of)-333(the)-333(global)-334(v)28(ector.)]TJ 0 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(global)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.612 0 Td [(optional)]TJ/F8 9.9626 Tf -29.612 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.548 0 Td [(.)]TJ -43.034 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(in)28(teger)-333(v)55(ariable)]TJ/F14 9.9626 Tf 142.079 0 Td [(\000)]TJ/F8 9.9626 Tf 7.749 0 Td [(1)]TJ/F14 9.9626 Tf 7.748 0 Td [(\024)]TJ/F11 9.9626 Tf 10.516 0 Td [(r)-28(oot)]TJ/F14 9.9626 Tf 20.795 0 Td [(\024)]TJ/F11 9.9626 Tf 10.516 0 Td [(np)]TJ/F14 9.9626 Tf 13.206 0 Td [(\000)]TJ/F8 9.9626 Tf 9.963 0 Td [(1,)-333(default)]TJ/F14 9.9626 Tf 44.555 0 Td [(\000)]TJ/F8 9.9626 Tf 7.749 0 Td [(1.)]TJ +/F8 9.9626 Tf 25.931 0 Td [(The)-291(pro)-28(cess)-291(that)-291(holds)-291(the)-291(global)-291(cop)28(y)83(.)-430(If)]TJ/F11 9.9626 Tf 182.522 0 Td [(r)-28(oot)]TJ/F8 9.9626 Tf 20.795 0 Td [(=)]TJ/F14 9.9626 Tf 10.516 0 Td [(\000)]TJ/F8 9.9626 Tf 7.749 0 Td [(1)-291(all)-291(the)-291(pro)-28(cesses)-291(will)]TJ -222.606 -11.955 Td [(ha)28(v)28(e)-334(a)-333(cop)28(y)-334(of)-333(the)-333(global)-334(v)28(ector.)]TJ 0 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(global)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(optional)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(in)28(teger)-333(v)55(ariable)]TJ/F14 9.9626 Tf 142.079 0 Td [(\000)]TJ/F8 9.9626 Tf 7.748 0 Td [(1)]TJ/F14 9.9626 Tf 7.749 0 Td [(\024)]TJ/F11 9.9626 Tf 10.516 0 Td [(r)-28(oot)]TJ/F14 9.9626 Tf 20.795 0 Td [(\024)]TJ/F11 9.9626 Tf 10.516 0 Td [(np)]TJ/F14 9.9626 Tf 13.206 0 Td [(\000)]TJ/F8 9.9626 Tf 9.963 0 Td [(1,)-333(default)]TJ/F14 9.9626 Tf 44.555 0 Td [(\000)]TJ/F8 9.9626 Tf 7.749 0 Td [(1.)]TJ 0 g 0 G -/F27 9.9626 Tf -299.782 -19.505 Td [(On)-383(Return)]TJ +/F27 9.9626 Tf -299.783 -19.505 Td [(On)-383(Return)]TJ 0 g 0 G 0 g 0 G -/F8 9.9626 Tf 166.874 -29.888 Td [(56)]TJ +/F8 9.9626 Tf 166.875 -29.888 Td [(57)]TJ 0 g 0 G ET endstream endobj -1203 0 obj +1216 0 obj << -/Length 1455 +/Length 1459 >> stream 0 g 0 G 0 g 0 G 0 g 0 G BT -/F27 9.9626 Tf 99.895 706.129 Td [(glob)]TJ +/F27 9.9626 Tf 150.705 706.129 Td [(glob)]TJ ET q -1 0 0 1 121.587 706.328 cm +1 0 0 1 172.397 706.328 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 125.024 706.129 Td [(x)]TJ +/F27 9.9626 Tf 175.834 706.129 Td [(x)]TJ 0 g 0 G -/F8 9.9626 Tf 11.028 0 Td [(The)-333(arra)27(y)-333(where)-333(the)-334(lo)-27(cal)-334(parts)-333(m)28(ust)-334(b)-27(e)-334(gathered.)]TJ -11.25 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(global)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.956 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(out)]TJ/F8 9.9626 Tf 16.549 0 Td [(.)]TJ -50.035 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(rank)-333(one)-333(or)-334(t)28(w)28(o)-334(arra)28(y)-333(with)-333(the)]TJ/F30 9.9626 Tf 204.4 0 Td [(ALLOCATABLE)]TJ/F8 9.9626 Tf 60.855 0 Td [(attribute.)]TJ +/F8 9.9626 Tf 11.028 0 Td [(The)-333(arra)27(y)-333(where)-333(the)-334(lo)-27(cal)-334(parts)-333(m)28(ust)-334(b)-27(e)-334(gathered.)]TJ -11.251 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(global)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.612 0 Td [(required)]TJ/F8 9.9626 Tf -29.612 -11.956 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(out)]TJ/F8 9.9626 Tf 16.549 0 Td [(.)]TJ -50.035 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(rank)-333(one)-334(or)-333(t)28(w)28(o)-334(arra)28(y)-333(with)-333(the)]TJ/F30 9.9626 Tf 204.401 0 Td [(ALLOCATABLE)]TJ/F8 9.9626 Tf 60.855 0 Td [(attribute.)]TJ 0 g 0 G /F27 9.9626 Tf -290.162 -19.925 Td [(info)]TJ 0 g 0 G -/F8 9.9626 Tf 23.758 0 Td [(Error)-333(co)-28(de.)]TJ 1.149 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.956 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(out)]TJ/F8 9.9626 Tf 16.549 0 Td [(.)]TJ -50.035 -11.955 Td [(An)-333(in)28(tege)-1(r)-333(v)56(alue;)-334(0)-333(means)-333(no)-334(error)-333(has)-333(b)-28(een)-333(detecte)-1(d)1(.)]TJ +/F8 9.9626 Tf 23.758 0 Td [(Error)-333(co)-28(de.)]TJ 1.148 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.612 0 Td [(required)]TJ/F8 9.9626 Tf -29.612 -11.956 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(out)]TJ/F8 9.9626 Tf 16.549 0 Td [(.)]TJ -50.035 -11.955 Td [(An)-333(in)27(t)1(e)-1(ger)-333(v)56(alue;)-334(0)-333(means)-333(no)-334(error)-333(has)-333(b)-28(een)-333(detec)-1(ted.)]TJ 0 g 0 G - 141.968 -500.124 Td [(57)]TJ + 141.968 -500.124 Td [(58)]TJ 0 g 0 G ET endstream endobj -1209 0 obj +1222 0 obj << -/Length 7803 +/Length 7828 >> stream 0 g 0 G 0 g 0 G BT -/F16 11.9552 Tf 150.705 706.129 Td [(psb)]TJ +/F16 11.9552 Tf 99.895 706.129 Td [(psb)]TJ ET q -1 0 0 1 171.761 706.328 cm +1 0 0 1 120.951 706.328 cm []0 d 0 J 0.398 w 0 0 m 4.035 0 l S Q BT -/F16 11.9552 Tf 175.796 706.129 Td [(scatter)-375(|)-375(Scatter)-375(Global)-375(Dense)-375(Matrix)]TJ/F8 9.9626 Tf -25.091 -19.28 Td [(These)-315(subroutines)-315(scatters)-315(the)-315(p)-28(ortions)-315(of)-315(global)-315(dense)-315(matrix)-315(o)28(wned)-315(b)27(y)-315(a)-315(pro-)]TJ 0 -11.955 Td [(cess)-333(to)-334(all)-333(the)-333(pro)-28(cesses)-334(in)-333(the)-333(pro)-28(cesses)-334(grid.)]TJ/F11 9.9626 Tf 119.021 -25.291 Td [(l)-20(oc)]TJ +/F16 11.9552 Tf 124.986 706.129 Td [(scatter)-375(|)-375(Scatter)-375(Global)-375(Dense)-375(Matrix)]TJ/F8 9.9626 Tf -25.091 -19.28 Td [(These)-315(subroutines)-315(scatters)-315(the)-315(p)-28(ortions)-315(of)-315(global)-315(dense)-315(matrix)-315(o)28(wned)-315(b)27(y)-315(a)-315(pro-)]TJ 0 -11.955 Td [(cess)-334(to)-333(all)-333(the)-334(p)1(ro)-28(cesses)-334(in)-333(the)-333(pro)-28(cesses)-334(grid.)]TJ/F11 9.9626 Tf 119.021 -25.291 Td [(l)-20(oc)]TJ ET q -1 0 0 1 282.633 649.802 cm +1 0 0 1 231.823 649.802 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F11 9.9626 Tf 285.622 649.603 Td [(x)]TJ/F10 6.9738 Tf 5.694 -1.494 Td [(i)]TJ/F14 9.9626 Tf 6.084 1.494 Td [(\040)]TJ/F11 9.9626 Tf 12.73 0 Td [(scatter)]TJ/F8 9.9626 Tf 30.853 0 Td [(\050)]TJ/F11 9.9626 Tf 3.874 0 Td [(g)-36(l)-20(ob)]TJ +/F11 9.9626 Tf 234.812 649.603 Td [(x)]TJ/F10 6.9738 Tf 5.694 -1.494 Td [(i)]TJ/F14 9.9626 Tf 6.084 1.494 Td [(\040)]TJ/F11 9.9626 Tf 12.73 0 Td [(scatter)]TJ/F8 9.9626 Tf 30.853 0 Td [(\050)]TJ/F11 9.9626 Tf 3.875 0 Td [(g)-36(l)-19(o)-1(b)]TJ ET q -1 0 0 1 362.838 649.802 cm +1 0 0 1 312.028 649.802 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F11 9.9626 Tf 365.827 649.603 Td [(x)]TJ/F8 9.9626 Tf 5.693 0 Td [(\051)]TJ -220.815 -22.875 Td [(where:)]TJ +/F11 9.9626 Tf 315.017 649.603 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(\051)]TJ -220.816 -22.875 Td [(where:)]TJ 0 g 0 G -/F11 9.9626 Tf 0 -21.361 Td [(g)-36(l)-19(o)-1(b)]TJ +/F11 9.9626 Tf 0 -21.361 Td [(g)-36(l)-20(ob)]TJ ET q -1 0 0 1 168.775 605.567 cm +1 0 0 1 117.965 605.567 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F11 9.9626 Tf 172.212 605.367 Td [(x)]TJ +/F11 9.9626 Tf 121.403 605.367 Td [(x)]TJ 0 g 0 G -/F8 9.9626 Tf 10.675 0 Td [(is)-333(the)-334(global)-333(matrix)]TJ/F11 9.9626 Tf 88.917 0 Td [(g)-36(l)-20(ob)]TJ +/F8 9.9626 Tf 10.675 0 Td [(is)-333(the)-334(global)-333(matrix)]TJ/F11 9.9626 Tf 88.917 0 Td [(g)-36(l)-19(ob)]TJ ET q -1 0 0 1 289.785 605.567 cm +1 0 0 1 238.975 605.567 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F11 9.9626 Tf 292.773 605.367 Td [(x)]TJ/F7 6.9738 Tf 5.694 -1.494 Td [(1:)]TJ/F10 6.9738 Tf 6.227 0 Td [(m;)]TJ/F7 6.9738 Tf 9.436 0 Td [(1:)]TJ/F10 6.9738 Tf 6.226 0 Td [(n)]TJ +/F11 9.9626 Tf 241.964 605.367 Td [(x)]TJ/F7 6.9738 Tf 5.694 -1.494 Td [(1:)]TJ/F10 6.9738 Tf 6.227 0 Td [(m;)]TJ/F7 6.9738 Tf 9.435 0 Td [(1:)]TJ/F10 6.9738 Tf 6.227 0 Td [(n)]TJ 0 g 0 G -/F11 9.9626 Tf -169.651 -20.345 Td [(l)-20(oc)]TJ +/F11 9.9626 Tf -169.652 -20.345 Td [(l)-20(oc)]TJ ET q -1 0 0 1 163.701 583.727 cm +1 0 0 1 112.892 583.727 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F11 9.9626 Tf 167.139 583.528 Td [(x)]TJ/F10 6.9738 Tf 5.693 -1.494 Td [(i)]TJ +/F11 9.9626 Tf 116.329 583.528 Td [(x)]TJ/F10 6.9738 Tf 5.694 -1.494 Td [(i)]TJ 0 g 0 G -/F8 9.9626 Tf 8.299 1.494 Td [(is)-333(the)-334(lo)-27(cal)-334(p)-28(or)1(tion)-334(of)-333(global)-333(dense)-334(matrix)-333(on)-333(pro)-28(cess)]TJ/F11 9.9626 Tf 234.703 0 Td [(i)]TJ/F8 9.9626 Tf 3.433 0 Td [(.)]TJ +/F8 9.9626 Tf 8.298 1.494 Td [(is)-333(the)-334(lo)-27(c)-1(al)-333(p)-28(ortion)-333(of)-333(global)-333(dense)-334(matrix)-333(on)-333(pro)-28(cess)]TJ/F11 9.9626 Tf 234.704 0 Td [(i)]TJ/F8 9.9626 Tf 3.432 0 Td [(.)]TJ 0 g 0 G /F11 9.9626 Tf -268.562 -21.839 Td [(scatter)]TJ 0 g 0 G -/F8 9.9626 Tf 35.834 0 Td [(is)-333(the)-334(scatter)-333(function.)]TJ +/F8 9.9626 Tf 35.835 0 Td [(is)-333(the)-334(scatter)-333(function.)]TJ 0 g 0 G 0 g 0 G 0 g 0 G ET q -1 0 0 1 228.797 539.65 cm +1 0 0 1 177.988 539.65 cm []0 d 0 J 0.398 w 0 0 m 187.526 0 l S Q BT -/F11 9.9626 Tf 234.775 531.082 Td [(x)]TJ/F10 6.9738 Tf 5.694 -1.494 Td [(i)]TJ/F11 9.9626 Tf 3.317 1.494 Td [(;)-167(y)]TJ/F27 9.9626 Tf 111.399 0 Td [(Subroutine)]TJ +/F11 9.9626 Tf 183.966 531.082 Td [(x)]TJ/F10 6.9738 Tf 5.693 -1.494 Td [(i)]TJ/F11 9.9626 Tf 3.317 1.494 Td [(;)-167(y)]TJ/F27 9.9626 Tf 111.399 0 Td [(Subroutine)]TJ ET q -1 0 0 1 228.797 527.296 cm +1 0 0 1 177.988 527.296 cm []0 d 0 J 0.398 w 0 0 m 187.526 0 l S Q BT -/F8 9.9626 Tf 234.775 518.729 Td [(In)28(teger)-9028(psb)]TJ +/F8 9.9626 Tf 183.966 518.729 Td [(In)28(teger)-9028(psb)]TJ ET q -1 0 0 1 370.782 518.928 cm +1 0 0 1 319.972 518.928 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 373.771 518.729 Td [(scatter)]TJ -138.996 -11.956 Td [(Short)-333(Precision)-334(Real)-3102(psb)]TJ +/F8 9.9626 Tf 322.961 518.729 Td [(scatter)]TJ -138.995 -11.956 Td [(Short)-333(Precision)-333(R)-1(eal)-3102(psb)]TJ ET q -1 0 0 1 370.782 506.973 cm +1 0 0 1 319.972 506.973 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 373.771 506.773 Td [(scatter)]TJ -138.996 -11.955 Td [(Long)-333(Precision)-334(Real)-3314(psb)]TJ +/F8 9.9626 Tf 322.961 506.773 Td [(scatter)]TJ -138.995 -11.955 Td [(Long)-333(Precision)-334(Real)-3314(p)1(s)-1(b)]TJ ET q -1 0 0 1 370.782 495.017 cm +1 0 0 1 319.972 495.017 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 373.771 494.818 Td [(scatter)]TJ -138.996 -11.955 Td [(Short)-333(Precision)-334(Complex)-1200(psb)]TJ +/F8 9.9626 Tf 322.961 494.818 Td [(scatter)]TJ -138.995 -11.955 Td [(Short)-333(Precision)-333(C)-1(omplex)-1200(p)1(s)-1(b)]TJ ET q -1 0 0 1 370.782 483.062 cm +1 0 0 1 319.972 483.062 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 373.771 482.863 Td [(scatter)]TJ -138.996 -11.955 Td [(Long)-333(Precision)-334(Complex)-1411(psb)]TJ +/F8 9.9626 Tf 322.961 482.863 Td [(scatter)]TJ -138.995 -11.955 Td [(Long)-333(Precision)-334(Complex)-1411(psb)]TJ ET q -1 0 0 1 370.782 471.107 cm +1 0 0 1 319.972 471.107 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 373.771 470.908 Td [(scatter)]TJ +/F8 9.9626 Tf 322.961 470.908 Td [(scatter)]TJ ET q -1 0 0 1 228.797 467.122 cm +1 0 0 1 177.988 467.122 cm []0 d 0 J 0.398 w 0 0 m 187.526 0 l S Q 0 g 0 G BT -/F8 9.9626 Tf 276.386 439.083 Td [(T)83(able)-333(17:)-444(Data)-334(t)28(yp)-28(es)]TJ +/F8 9.9626 Tf 225.577 439.083 Td [(T)83(able)-333(17:)-444(Data)-334(t)28(yp)-28(es)]TJ 0 g 0 G 0 g 0 G -/F27 9.9626 Tf -124.304 -33.261 Td [(c)-138(a)-138(l)-139(l)]TJ/F8 9.9626 Tf 29.99 0 Td [(p)-148(s)-149(b)]TJ +/F27 9.9626 Tf -124.305 -33.261 Td [(c)-138(a)-138(l)-139(l)]TJ/F8 9.9626 Tf 29.991 0 Td [(p)-148(s)-149(b)]TJ ET q -1 0 0 1 202.107 406.021 cm +1 0 0 1 151.298 406.021 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 206.575 405.822 Td [(s)-149(c)-148(a)-149(t)-148(t)-148(e)-149(r)-254(\050)-215(g)-110(l)-110(o)-110(b)]TJ +/F8 9.9626 Tf 155.766 405.822 Td [(s)-148(c)-149(a)-148(t)-149(t)-148(e)-149(r)-254(\050)-215(g)-110(l)-110(o)-110(b)]TJ ET q -1 0 0 1 276.66 406.021 cm +1 0 0 1 225.851 406.021 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 280.744 405.822 Td [(x)-381(,)-888(l)-127(o)-127(c)]TJ +/F8 9.9626 Tf 229.934 405.822 Td [(x)-381(,)-888(l)-127(o)-127(c)]TJ ET q -1 0 0 1 317.987 406.021 cm +1 0 0 1 267.178 406.021 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 322.243 405.822 Td [(x)-415(,)-874(d)-113(e)-112(s)-113(c)]TJ +/F8 9.9626 Tf 271.433 405.822 Td [(x)-415(,)-874(d)-113(e)-112(s)-113(c)]TJ ET q -1 0 0 1 366.519 406.021 cm +1 0 0 1 315.709 406.021 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 370.63 405.822 Td [(a)-386(,)-888(i)-127(n)-127(f)-127(o)-415(,)-864(r)-103(o)-103(o)-104(t)-367(,)-808(m)-47(o)-46(l)-47(d)-152(\051)]TJ +/F8 9.9626 Tf 319.82 405.822 Td [(a)-386(,)-888(i)-127(n)-127(f)-127(o)-415(,)-864(r)-103(o)-103(o)-104(t)-367(,)-808(m)-47(o)-46(l)-47(d)-152(\051)]TJ 0 g 0 G 0 g 0 G 0 g 0 G @@ -12769,969 +12844,976 @@ BT 0 -21.839 Td [(glob)]TJ ET q -1 0 0 1 172.397 331.576 cm +1 0 0 1 121.587 331.576 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 175.834 331.377 Td [(x)]TJ +/F27 9.9626 Tf 125.024 331.377 Td [(x)]TJ 0 g 0 G -/F8 9.9626 Tf 11.028 0 Td [(The)-333(arra)27(y)-333(that)-333(m)28(ust)-334(b)-27(e)-334(scattered)-333(in)28(to)-334(lo)-28(cal)-333(pieces.)]TJ -11.251 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(global)]TJ/F8 9.9626 Tf -32.379 -11.956 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.612 0 Td [(required)]TJ/F8 9.9626 Tf -29.612 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.548 0 Td [(.)]TJ -43.034 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(rank)-333(one)-334(or)-333(t)28(w)28(o)-334(arra)28(y)84(.)]TJ +/F8 9.9626 Tf 11.028 0 Td [(The)-333(arra)27(y)-333(that)-333(m)28(ust)-334(b)-27(e)-334(scattered)-333(in)28(to)-334(lo)-28(cal)-333(pieces.)]TJ -11.25 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(global)]TJ/F8 9.9626 Tf -32.379 -11.956 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(rank)-333(one)-333(or)-334(t)28(w)28(o)-334(arra)28(y)84(.)]TJ 0 g 0 G -/F27 9.9626 Tf -24.906 -21.839 Td [(desc)]TJ +/F27 9.9626 Tf -24.907 -21.839 Td [(desc)]TJ ET q -1 0 0 1 172.619 261.916 cm +1 0 0 1 121.81 261.916 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 176.057 261.717 Td [(a)]TJ +/F27 9.9626 Tf 125.247 261.717 Td [(a)]TJ 0 g 0 G -/F8 9.9626 Tf 10.55 0 Td [(con)28(tains)-334(data)-333(structures)-333(for)-333(c)-1(omm)28(unications.)]TJ -10.996 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.956 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.612 0 Td [(required)]TJ/F8 9.9626 Tf -29.612 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.548 0 Td [(.)]TJ -43.034 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(structured)-333(data)-333(of)-334(t)28(yp)-28(e)]TJ +/F8 9.9626 Tf 10.551 0 Td [(con)28(tains)-334(d)1(ata)-334(structures)-333(for)-333(com)-1(m)28(unications.)]TJ -10.996 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.956 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(structured)-333(data)-333(of)-334(t)28(yp)-28(e)]TJ 0 0 1 rg 0 0 1 RG /F30 9.9626 Tf 170.915 0 Td [(psb)]TJ ET q -1 0 0 1 362.845 214.095 cm +1 0 0 1 312.036 214.095 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 365.983 213.896 Td [(desc)]TJ +/F30 9.9626 Tf 315.174 213.896 Td [(desc)]TJ ET q -1 0 0 1 387.532 214.095 cm +1 0 0 1 336.723 214.095 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 390.67 213.896 Td [(type)]TJ +/F30 9.9626 Tf 339.861 213.896 Td [(type)]TJ 0 g 0 G -/F8 9.9626 Tf 20.922 0 Td [(.)]TJ +/F8 9.9626 Tf 20.921 0 Td [(.)]TJ 0 g 0 G /F27 9.9626 Tf -260.887 -21.839 Td [(ro)-32(ot)]TJ 0 g 0 G -/F8 9.9626 Tf 25.93 0 Td [(The)-420(pro)-27(ce)-1(ss)-419(that)-420(holds)-419(the)-420(global)-420(cop)28(y)83(.)-703(If)]TJ/F11 9.9626 Tf 194.21 0 Td [(r)-28(oot)]TJ/F8 9.9626 Tf 22.228 0 Td [(=)]TJ/F14 9.9626 Tf 11.949 0 Td [(\000)]TJ/F8 9.9626 Tf 7.749 0 Td [(1)-420(all)-419(the)-420(pro)-28(cesses)]TJ -237.16 -11.956 Td [(ha)28(v)28(e)-334(a)-333(cop)28(y)-334(of)-333(the)-333(global)-334(v)28(ector.)]TJ 0 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(global)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.612 0 Td [(optional)]TJ/F8 9.9626 Tf -29.612 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-344(as)-1(:)-467(an)-344(in)28(tege)-1(r)-344(v)55(ariabl)1(e)]TJ/F14 9.9626 Tf 142.757 0 Td [(\000)]TJ/F8 9.9626 Tf 7.749 0 Td [(1)]TJ/F14 9.9626 Tf 7.937 0 Td [(\024)]TJ/F11 9.9626 Tf 10.705 0 Td [(r)-28(oot)]TJ/F14 9.9626 Tf 20.983 0 Td [(\024)]TJ/F11 9.9626 Tf 10.704 0 Td [(np)]TJ/F14 9.9626 Tf 13.282 0 Td [(\000)]TJ/F8 9.9626 Tf 10.038 0 Td [(1,)-347(default)]TJ/F30 9.9626 Tf 44.809 0 Td [(psb_root_)]TJ/F8 9.9626 Tf 47.073 0 Td [(,)]TJ -316.037 -11.955 Td [(i.e.)-444(pro)-28(cess)-334(0.)]TJ +/F8 9.9626 Tf 25.931 0 Td [(The)-420(pro)-27(ces)-1(s)-419(that)-420(holds)-419(the)-420(global)-420(cop)28(y)83(.)-703(If)]TJ/F11 9.9626 Tf 194.21 0 Td [(r)-28(oot)]TJ/F8 9.9626 Tf 22.228 0 Td [(=)]TJ/F14 9.9626 Tf 11.949 0 Td [(\000)]TJ/F8 9.9626 Tf 7.749 0 Td [(1)-420(all)-419(the)-420(pro)-28(cesses)]TJ -237.16 -11.956 Td [(ha)28(v)28(e)-334(a)-333(cop)28(y)-334(of)-333(the)-333(global)-334(v)28(ector.)]TJ 0 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(global)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(optional)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-344(as:)-468(an)-344(in)28(teger)-345(v)55(ariab)1(le)]TJ/F14 9.9626 Tf 142.757 0 Td [(\000)]TJ/F8 9.9626 Tf 7.749 0 Td [(1)]TJ/F14 9.9626 Tf 7.937 0 Td [(\024)]TJ/F11 9.9626 Tf 10.704 0 Td [(r)-28(oot)]TJ/F14 9.9626 Tf 20.983 0 Td [(\024)]TJ/F11 9.9626 Tf 10.705 0 Td [(np)]TJ/F14 9.9626 Tf 13.281 0 Td [(\000)]TJ/F8 9.9626 Tf 10.038 0 Td [(1,)-348(defau)1(lt)]TJ/F30 9.9626 Tf 44.81 0 Td [(psb_root_)]TJ/F8 9.9626 Tf 47.073 0 Td [(,)]TJ -316.037 -11.955 Td [(i.e.)-444(pro)-28(cess)-334(0.)]TJ 0 g 0 G - 141.968 -29.888 Td [(58)]TJ + 141.968 -29.888 Td [(59)]TJ 0 g 0 G ET endstream endobj -1218 0 obj +1116 0 obj << -/Length 4181 +/Type /ObjStm +/N 100 +/First 983 +/Length 11047 >> stream -0 g 0 G -0 g 0 G -0 g 0 G -BT -/F27 9.9626 Tf 99.895 706.129 Td [(mold)]TJ -0 g 0 G -/F8 9.9626 Tf 29.805 0 Td [(The)-333(desired)-334(dynamic)-333(t)28(yp)-28(e)-333(for)-334(the)-333(in)28(ternal)-333(v)27(ector)-333(storage.)]TJ -4.898 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf 23.073 0 Td [(.)]TJ -55.452 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(optional)]TJ/F8 9.9626 Tf 40.577 0 Td [(.)]TJ -70.188 -11.956 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-273(as:)-414(an)-274(ob)-55(ject)-273(of)-274(a)-273(class)-273(deriv)28(ed)-274(from)]TJ/F30 9.9626 Tf 198.26 0 Td [(psb)]TJ -ET -q -1 0 0 1 339.381 658.507 cm -[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S -Q -BT -/F30 9.9626 Tf 342.519 658.308 Td [(T)]TJ -ET -q -1 0 0 1 348.377 658.507 cm -[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S -Q -BT -/F30 9.9626 Tf 351.515 658.308 Td [(base)]TJ -ET -q -1 0 0 1 373.064 658.507 cm -[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S -Q -BT -/F30 9.9626 Tf 376.202 658.308 Td [(vect)]TJ -ET -q -1 0 0 1 397.751 658.507 cm -[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S -Q -BT -/F30 9.9626 Tf 400.89 658.308 Td [(type)]TJ/F8 9.9626 Tf 20.921 0 Td [(;)-293(this)]TJ -297.009 -11.955 Td [(is)-333(only)-334(allo)28(w)28(ed)-333(when)-334(lo)-27(c)]TJ -ET -q -1 0 0 1 231.17 646.552 cm -[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S -Q -BT -/F8 9.9626 Tf 234.159 646.353 Td [(x)-333(is)-334(of)-333(t)28(yp)-28(e)]TJ -0 0 1 rg 0 0 1 RG -/F30 9.9626 Tf 52.359 0 Td [(psb)]TJ -ET -q -1 0 0 1 302.837 646.552 cm -[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S -Q -BT -/F30 9.9626 Tf 305.975 646.353 Td [(T)]TJ -ET -q -1 0 0 1 311.833 646.552 cm -[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S -Q -BT -/F30 9.9626 Tf 314.971 646.353 Td [(vect)]TJ -ET -q -1 0 0 1 336.52 646.552 cm -[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S -Q -BT -/F30 9.9626 Tf 339.658 646.353 Td [(type)]TJ -0 g 0 G -/F8 9.9626 Tf 20.922 0 Td [(.)]TJ -0 g 0 G -/F27 9.9626 Tf -260.685 -19.925 Td [(On)-383(Return)]TJ -0 g 0 G -0 g 0 G - 0 -19.926 Td [(lo)-32(c)]TJ -ET -q -1 0 0 1 114.904 606.702 cm -[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S -Q -BT -/F27 9.9626 Tf 118.341 606.502 Td [(x)]TJ -0 g 0 G -/F8 9.9626 Tf 11.028 0 Td [(the)-333(lo)-28(cal)-333(p)-28(ortion)-333(of)-334(global)-333(dense)-333(matrix)]TJ/F11 9.9626 Tf 176.118 0 Td [(g)-36(l)-19(o)-1(b)]TJ -ET -q -1 0 0 1 323.467 606.702 cm -[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S -Q -BT -/F11 9.9626 Tf 326.456 606.502 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(.)]TJ -207.348 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(out)]TJ/F8 9.9626 Tf 16.549 0 Td [(.)]TJ -50.035 -11.955 Td [(Sp)-28(eci\014ed)-244(as:)-400(a)-244(ran)1(k)-244(one)-244(or)-244(t)27(w)28(o)-244(ALLOCA)83(T)84(ABLE)-244(arra)28(y)-244(or)-244(an)-244(ob)-56(ject)-244(of)-244(t)28(yp)-28(e)]TJ -0 0 1 rg 0 0 1 RG -/F30 9.9626 Tf 0 -11.955 Td [(psb)]TJ -ET -q -1 0 0 1 141.121 546.926 cm -[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S -Q -BT -/F30 9.9626 Tf 144.259 546.727 Td [(T)]TJ -ET -q -1 0 0 1 150.117 546.926 cm -[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S -Q -BT -/F30 9.9626 Tf 153.255 546.727 Td [(vect)]TJ -ET -q -1 0 0 1 174.804 546.926 cm -[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S -Q -BT -/F30 9.9626 Tf 177.942 546.727 Td [(type)]TJ -0 g 0 G -/F8 9.9626 Tf 24.242 0 Td [(con)28(taining)-333(n)27(um)28(b)-28(ers)-333(of)-333(the)-334(t)28(yp)-28(e)-333(indicated)-333(in)-333(T)83(able)]TJ -0 0 1 rg 0 0 1 RG - [-334(17)]TJ -0 g 0 G - [(.)]TJ -0 g 0 G -/F27 9.9626 Tf -102.289 -19.926 Td [(info)]TJ -0 g 0 G -/F8 9.9626 Tf 23.758 0 Td [(Error)-333(co)-28(de.)]TJ 1.149 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(out)]TJ/F8 9.9626 Tf 16.549 0 Td [(.)]TJ -50.035 -11.955 Td [(An)-333(in)28(tege)-1(r)-333(v)56(alue;)-334(0)-333(means)-333(no)-334(error)-333(has)-333(b)-28(een)-333(detecte)-1(d)1(.)]TJ -0 g 0 G - 141.968 -388.543 Td [(59)]TJ -0 g 0 G -ET - -endstream -endobj -1222 0 obj +1114 0 260 59 1115 117 1111 176 1124 347 1110 540 1117 688 1118 832 1119 979 1120 1126 +1121 1270 1122 1417 1126 1563 1123 1621 1130 1753 1127 1901 1128 2048 1132 2195 1129 2254 1135 2360 +1133 2499 1137 2646 264 2704 1134 2761 1144 2841 1139 2998 1140 3142 1141 3289 1146 3435 268 3494 +1147 3552 1148 3611 1149 3670 1150 3729 1143 3788 1154 3920 1158 4068 1159 4183 1160 4226 1161 4296 +1142 4365 1152 4512 1156 4659 1157 4717 1153 4776 1163 4924 1165 5042 1162 5101 1171 5182 1167 5339 +1168 5483 1169 5630 1173 5777 272 5835 1174 5892 1175 5951 1176 6009 1177 6067 1170 6125 1183 6270 +1178 6427 1180 6574 1181 6719 1185 6866 1186 6925 1187 6984 1188 7043 1182 7101 1191 7233 1193 7351 +1190 7409 1196 7489 1199 7607 1200 7722 1201 7765 1202 7835 1198 7904 1189 7963 1195 8022 1207 8118 +1203 8275 1204 8419 1205 8566 1209 8713 276 8771 1210 8828 1211 8887 1212 8945 1213 9003 1206 9061 +1215 9218 1217 9336 1214 9395 1221 9488 1218 9627 1223 9774 280 9832 1224 9889 1225 9948 1226 10006 +% 1114 0 obj << -/Length 6539 +/D [1112 0 R /XYZ 149.705 753.953 null] >> -stream -0 g 0 G -0 g 0 G -BT -/F16 14.3462 Tf 150.705 706.129 Td [(6)-1125(Data)-375(managemen)31(t)-375(routines)]TJ/F16 11.9552 Tf 0 -23.814 Td [(psb)]TJ -ET -q -1 0 0 1 171.761 682.515 cm -[]0 d 0 J 0.398 w 0 0 m 4.035 0 l S -Q -BT -/F16 11.9552 Tf 175.796 682.315 Td [(cdall)-375(|)-375(Allo)-31(cates)-375(a)-375(comm)31(unication)-375(descriptor)]TJ -0 g 0 G -0 g 0 G -/F30 9.9626 Tf -25.091 -18.389 Td [(call)-525(psb_cdall\050icontxt,)-525(desc_a,)-525(info,mg=mg,parts=parts\051)]TJ 0 -11.955 Td [(call)-525(psb_cdall\050icontxt,)-525(desc_a,)-525(info,vg=vg,[mg=mg,flag=flag]\051)]TJ 0 -11.955 Td [(call)-525(psb_cdall\050icontxt,)-525(desc_a,)-525(info,vl=vl,[nl=nl,globalcheck=.true.,lidx=lidx]\051)]TJ 0 -11.955 Td [(call)-525(psb_cdall\050icontxt,)-525(desc_a,)-525(info,nl=nl\051)]TJ 0 -11.956 Td [(call)-525(psb_cdall\050icontxt,)-525(desc_a,)-525(info,mg=mg,repl=.true.\051)]TJ/F8 9.9626 Tf 14.944 -20.107 Td [(This)-314(subroutine)-314(initializes)-315(th)1(e)-315(comm)28(unication)-314(descriptor)-314(ass)-1(o)-27(ciated)-315(with)-314(an)]TJ -14.944 -11.955 Td [(index)-326(space.)-442(One)-326(of)-326(the)-327(op)1(tional)-327(argu)1(m)-1(en)28(ts)]TJ/F30 9.9626 Tf 193.679 0 Td [(parts)]TJ/F8 9.9626 Tf 26.152 0 Td [(,)]TJ/F30 9.9626 Tf 6.031 0 Td [(vg)]TJ/F8 9.9626 Tf 10.461 0 Td [(,)]TJ/F30 9.9626 Tf 6.031 0 Td [(vl)]TJ/F8 9.9626 Tf 10.46 0 Td [(,)]TJ/F30 9.9626 Tf 6.031 0 Td [(nl)]TJ/F8 9.9626 Tf 13.71 0 Td [(or)]TJ/F30 9.9626 Tf 12.133 0 Td [(repl)]TJ/F8 9.9626 Tf 24.17 0 Td [(m)28(ust)-326(b)-28(e)]TJ -308.858 -11.955 Td [(sp)-28(eci\014ed,)-333(thereb)28(y)-334(c)28(ho)-28(osing)-333(the)-333(sp)-28(eci\014c)-333(initialization)-334(strategy)84(.)]TJ -0 g 0 G -/F27 9.9626 Tf 0 -18.477 Td [(On)-383(En)32(try)]TJ -0 g 0 G -0 g 0 G - 0 -19.201 Td [(T)32(yp)-32(e:)]TJ -0 g 0 G -/F8 9.9626 Tf 33.797 0 Td [(Sync)28(hronous.)]TJ -0 g 0 G -/F27 9.9626 Tf -33.797 -19.201 Td [(icon)32(txt)]TJ -0 g 0 G -/F8 9.9626 Tf 39.989 0 Td [(the)-333(comm)27(unication)-333(con)28(text.)]TJ -15.082 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 27.95 0 Td [(global)]TJ/F8 9.9626 Tf 29.757 0 Td [(.)]TJ -57.707 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.183 0 Td [(required)]TJ/F8 9.9626 Tf 41.898 0 Td [(.)]TJ -67.081 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.485 0 Td [(in)]TJ/F8 9.9626 Tf 9.548 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-444(a)-1(n)-333(in)28(teger)-333(v)55(alue.)]TJ -0 g 0 G -/F27 9.9626 Tf -24.907 -19.201 Td [(vg)]TJ -0 g 0 G -/F8 9.9626 Tf 16.757 0 Td [(Data)-333(allo)-28(cation:)-444(eac)27(h)-333(index)]TJ/F11 9.9626 Tf 123.564 0 Td [(i)]TJ/F14 9.9626 Tf 6.2 0 Td [(2)-278(f)]TJ/F8 9.9626 Tf 14.39 0 Td [(1)]TJ/F11 9.9626 Tf 6.642 0 Td [(:)-167(:)-166(:)-167(mg)]TJ/F14 9.9626 Tf 27.14 0 Td [(g)]TJ/F8 9.9626 Tf 8.302 0 Td [(is)-333(allo)-28(cated)-334(t)1(o)-334(pro)-28(cess)]TJ/F11 9.9626 Tf 99.267 0 Td [(v)-36(g)]TJ/F8 9.9626 Tf 10.296 0 Td [(\050)]TJ/F11 9.9626 Tf 3.874 0 Td [(i)]TJ/F8 9.9626 Tf 3.433 0 Td [(\051.)]TJ -294.958 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 27.95 0 Td [(global)]TJ/F8 9.9626 Tf 29.757 0 Td [(.)]TJ -57.707 -11.956 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.183 0 Td [(optional)]TJ/F8 9.9626 Tf 40.577 0 Td [(.)]TJ -65.76 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.485 0 Td [(in)]TJ/F8 9.9626 Tf 9.548 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(in)28(teger)-333(arra)27(y)84(.)]TJ -0 g 0 G -/F27 9.9626 Tf -24.907 -19.201 Td [(\015ag)]TJ -0 g 0 G -/F8 9.9626 Tf 22.644 0 Td [(Sp)-28(eci\014es)-333(whether)-333(e)-1(n)28(tries)-333(in)]TJ/F11 9.9626 Tf 121.932 0 Td [(v)-36(g)]TJ/F8 9.9626 Tf 13.617 0 Td [(are)-333(zero-)-334(or)-333(one-based.)]TJ -133.286 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 27.95 0 Td [(global)]TJ/F8 9.9626 Tf 29.757 0 Td [(.)]TJ -57.707 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.183 0 Td [(optional)]TJ/F8 9.9626 Tf 40.577 0 Td [(.)]TJ -65.76 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.485 0 Td [(in)]TJ/F8 9.9626 Tf 9.548 0 Td [(.)]TJ -43.033 -11.956 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(in)28(teger)-333(v)55(alue)-333(0)]TJ/F11 9.9626 Tf 135.409 0 Td [(;)]TJ/F8 9.9626 Tf 4.428 0 Td [(1,)-333(default)-334(0.)]TJ -0 g 0 G -/F27 9.9626 Tf -164.744 -19.2 Td [(mg)]TJ -0 g 0 G -/F8 9.9626 Tf 20.257 0 Td [(the)-333(\050global\051)-334(n)28(um)28(b)-28(er)-333(of)-333(ro)27(ws)-333(of)-333(the)-334(probl)1(e)-1(m.)]TJ 4.65 -11.956 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 27.95 0 Td [(global)]TJ/F8 9.9626 Tf 29.757 0 Td [(.)]TJ -57.707 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.183 0 Td [(optional)]TJ/F8 9.9626 Tf 40.577 0 Td [(.)]TJ -65.76 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.485 0 Td [(in)]TJ/F8 9.9626 Tf 9.548 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-332(as:)-444(an)-333(in)28(teger)-333(v)56(alue.)-444(I)-1(t)-332(is)-333(required)-332(if)]TJ/F30 9.9626 Tf 203.266 0 Td [(parts)]TJ/F8 9.9626 Tf 29.465 0 Td [(or)]TJ/F30 9.9626 Tf 12.198 0 Td [(repl)]TJ/F8 9.9626 Tf 24.235 0 Td [(is)-333(sp)-27(ec)-1(i)1(\014e)-1(d)1(,)]TJ -269.164 -11.955 Td [(it)-333(is)-334(optional)-333(if)]TJ/F30 9.9626 Tf 67.856 0 Td [(vg)]TJ/F8 9.9626 Tf 13.782 0 Td [(is)-333(sp)-28(eci\014ed.)]TJ -0 g 0 G -/F27 9.9626 Tf -106.545 -19.201 Td [(parts)]TJ -0 g 0 G -/F8 9.9626 Tf 30.609 0 Td [(the)-333(subroutine)-334(th)1(at)-334(de\014nes)-333(the)-333(partitioning)-334(sc)28(heme.)]TJ -5.702 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 27.95 0 Td [(global)]TJ/F8 9.9626 Tf 29.757 0 Td [(.)]TJ -57.707 -11.956 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.183 0 Td [(required)]TJ/F8 9.9626 Tf 41.898 0 Td [(.)]TJ -67.081 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(subroutine.)]TJ -0 g 0 G -/F27 9.9626 Tf -24.907 -19.201 Td [(vl)]TJ -0 g 0 G -/F8 9.9626 Tf 14.211 0 Td [(Data)-363(allo)-28(cation:)-504(the)-363(set)-364(of)-363(global)-363(indices)]TJ/F11 9.9626 Tf 182.789 0 Td [(v)-36(l)]TJ/F8 9.9626 Tf 8.355 0 Td [(\0501)-328(:)]TJ/F11 9.9626 Tf 18.15 0 Td [(nl)]TJ/F8 9.9626 Tf 9.149 0 Td [(\051)-363(b)-28(elonging)-363(to)-363(the)-364(callin)1(g)]TJ -207.747 -11.955 Td [(pro)-28(cess.)]TJ 0 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 27.95 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf 23.074 0 Td [(.)]TJ -51.024 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.183 0 Td [(optional)]TJ/F8 9.9626 Tf 40.577 0 Td [(.)]TJ -65.76 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.485 0 Td [(in)]TJ/F8 9.9626 Tf 9.548 0 Td [(.)]TJ -43.033 -11.956 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(in)28(teger)-333(arra)27(y)84(.)]TJ -0 g 0 G - 141.967 -29.888 Td [(60)]TJ -0 g 0 G -ET - -endstream -endobj -1113 0 obj +% 260 0 obj << -/Type /ObjStm -/N 100 -/First 982 -/Length 10837 +/D [1112 0 R /XYZ 150.705 720.077 null] >> -stream -1108 0 1112 146 1109 205 1117 337 1114 485 1115 632 1119 779 1116 837 1122 943 1120 1082 -1124 1230 260 1289 1121 1347 1130 1427 1125 1584 1126 1728 1127 1875 1132 2022 264 2080 1133 2137 -1134 2196 1135 2254 1136 2312 1129 2370 1141 2502 1145 2650 1146 2765 1147 2808 1148 2878 1128 2947 -1139 3094 1143 3240 1144 3299 1140 3358 1150 3506 1152 3624 1149 3682 1158 3763 1154 3920 1155 4064 -1156 4211 1160 4357 268 4416 1161 4474 1162 4533 1163 4592 1164 4651 1157 4710 1170 4855 1165 5012 -1167 5159 1168 5304 1172 5451 1173 5509 1174 5567 1175 5625 1169 5682 1178 5814 1180 5932 1177 5991 -1182 6071 1186 6189 1187 6304 1188 6347 1189 6417 1184 6486 1176 6544 1181 6603 1194 6699 1190 6856 -1191 7000 1192 7147 1196 7293 272 7352 1197 7410 1198 7469 1199 7528 1200 7587 1193 7646 1202 7803 -1204 7921 1201 7979 1208 8072 1205 8211 1210 8357 276 8416 1211 8474 1212 8533 1213 8592 1207 8651 -1217 8808 1206 8965 1214 9109 1215 9252 1219 9398 1216 9456 1221 9562 1223 9680 280 9739 284 9797 -% 1108 0 obj +% 1115 0 obj +<< +/D [1112 0 R /XYZ 320.941 258.477 null] +>> +% 1111 0 obj +<< +/Font << /F16 554 0 R /F8 557 0 R /F11 750 0 R /F14 767 0 R /F13 1082 0 R /F7 765 0 R /F10 766 0 R /F30 764 0 R /F27 556 0 R >> +/ProcSet [ /PDF /Text ] +>> +% 1124 0 obj +<< +/Type /Page +/Contents 1125 0 R +/Resources 1123 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1084 0 R +/Annots [ 1110 0 R 1117 0 R 1118 0 R 1119 0 R 1120 0 R 1121 0 R 1122 0 R ] +>> +% 1110 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [307.672 655.375 314.646 666.223] +/A << /S /GoTo /D (section.3) >> +>> +% 1117 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [368.549 586.627 444.603 597.752] +/A << /S /GoTo /D (vdata) >> +>> +% 1118 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [310.273 333.395 377.331 344.52] +/Rect [326.008 574.949 337.963 585.797] +/A << /S /GoTo /D (table.13) >> +>> +% 1119 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [382.088 494.523 394.043 505.372] +/A << /S /GoTo /D (table.13) >> +>> +% 1120 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [368.549 425.776 444.603 436.901] +/A << /S /GoTo /D (vdata) >> +>> +% 1121 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [326.219 414.098 338.174 424.946] +/A << /S /GoTo /D (table.13) >> +>> +% 1122 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [259.464 333.395 326.522 344.52] /A << /S /GoTo /D (descdata) >> >> -% 1112 0 obj +% 1126 0 obj << -/D [1110 0 R /XYZ 149.705 753.953 null] +/D [1124 0 R /XYZ 98.895 753.953 null] >> -% 1109 0 obj +% 1123 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 >> +/Font << /F27 556 0 R /F8 557 0 R /F11 750 0 R /F14 767 0 R /F30 764 0 R /F17 730 0 R >> /ProcSet [ /PDF /Text ] >> -% 1117 0 obj +% 1130 0 obj << /Type /Page -/Contents 1118 0 R -/Resources 1116 0 R +/Contents 1131 0 R +/Resources 1129 0 R /MediaBox [0 0 595.276 841.89] /Parent 1084 0 R -/Annots [ 1114 0 R 1115 0 R ] +/Annots [ 1127 0 R 1128 0 R ] >> -% 1114 0 obj +% 1127 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] +/Rect [213.636 410.238 225.591 419.149] /A << /S /GoTo /D (table.13) >> >> -% 1115 0 obj +% 1128 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] +/Rect [253.818 228.974 265.774 239.822] /A << /S /GoTo /D (table.13) >> >> -% 1119 0 obj +% 1132 0 obj << -/D [1117 0 R /XYZ 98.895 753.953 null] +/D [1130 0 R /XYZ 149.705 753.953 null] >> -% 1116 0 obj +% 1129 0 obj << -/Font << /F8 553 0 R /F27 552 0 R /F11 745 0 R /F30 759 0 R >> +/Font << /F8 557 0 R /F27 556 0 R /F11 750 0 R /F30 764 0 R >> /ProcSet [ /PDF /Text ] >> -% 1122 0 obj +% 1135 0 obj << /Type /Page -/Contents 1123 0 R -/Resources 1121 0 R +/Contents 1136 0 R +/Resources 1134 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1084 0 R -/Annots [ 1120 0 R ] +/Parent 1138 0 R +/Annots [ 1133 0 R ] >> -% 1120 0 obj +% 1133 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [350.345 657.464 357.319 668.312] +/Rect [299.536 657.464 306.51 668.312] /A << /S /GoTo /D (section.6) >> >> -% 1124 0 obj +% 1137 0 obj << -/D [1122 0 R /XYZ 149.705 753.953 null] +/D [1135 0 R /XYZ 98.895 753.953 null] >> -% 260 0 obj +% 264 0 obj << -/D [1122 0 R /XYZ 150.705 716.092 null] +/D [1135 0 R /XYZ 99.895 716.092 null] >> -% 1121 0 obj +% 1134 0 obj << -/Font << /F16 550 0 R /F8 553 0 R >> +/Font << /F16 554 0 R /F8 557 0 R >> /ProcSet [ /PDF /Text ] >> -% 1130 0 obj +% 1144 0 obj << /Type /Page -/Contents 1131 0 R -/Resources 1129 0 R +/Contents 1145 0 R +/Resources 1143 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1137 0 R -/Annots [ 1125 0 R 1126 0 R 1127 0 R ] +/Parent 1138 0 R +/Annots [ 1139 0 R 1140 0 R 1141 0 R ] >> -% 1125 0 obj +% 1139 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [368.549 343.463 444.603 354.588] +/Rect [419.358 343.463 495.412 354.588] /A << /S /GoTo /D (vdata) >> >> -% 1126 0 obj +% 1140 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [325.411 331.785 337.366 342.633] +/Rect [376.221 331.785 388.176 342.633] /A << /S /GoTo /D (table.14) >> >> -% 1127 0 obj +% 1141 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [294.721 264.029 361.779 275.154] +/Rect [345.53 264.029 412.588 275.154] /A << /S /GoTo /D (descdata) >> >> -% 1132 0 obj +% 1146 0 obj << -/D [1130 0 R /XYZ 98.895 753.953 null] +/D [1144 0 R /XYZ 149.705 753.953 null] >> -% 264 0 obj +% 268 0 obj << -/D [1130 0 R /XYZ 99.895 720.077 null] +/D [1144 0 R /XYZ 150.705 720.077 null] >> -% 1133 0 obj +% 1147 0 obj << -/D [1130 0 R /XYZ 270.132 514.036 null] +/D [1144 0 R /XYZ 320.941 514.036 null] >> -% 1134 0 obj +% 1148 0 obj << -/D [1130 0 R /XYZ 99.895 482.745 null] +/D [1144 0 R /XYZ 150.705 482.745 null] >> -% 1135 0 obj +% 1149 0 obj << -/D [1130 0 R /XYZ 99.895 484.682 null] +/D [1144 0 R /XYZ 150.705 484.682 null] >> -% 1136 0 obj +% 1150 0 obj << -/D [1130 0 R /XYZ 99.895 472.727 null] +/D [1144 0 R /XYZ 150.705 472.727 null] >> -% 1129 0 obj +% 1143 0 obj << -/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 >> +/Font << /F16 554 0 R /F8 557 0 R /F11 750 0 R /F14 767 0 R /F27 556 0 R /F30 764 0 R >> /ProcSet [ /PDF /Text ] >> -% 1141 0 obj +% 1154 0 obj << /Type /Page -/Contents 1142 0 R -/Resources 1140 0 R +/Contents 1155 0 R +/Resources 1153 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1137 0 R -/Annots [ 1128 0 R 1139 0 R ] +/Parent 1138 0 R +/Annots [ 1142 0 R 1152 0 R ] >> -% 1145 0 obj +% 1158 0 obj << /Producer (ESP Ghostscript 815.03) /CreationDate (D:20070118112257) /ModDate (D:20070118112257) >> -% 1146 0 obj +% 1159 0 obj << /Type /ExtGState /OPM 1 >> -% 1147 0 obj +% 1160 0 obj << /BaseFont /Times-Roman /Type /Font /Subtype /Type1 >> -% 1148 0 obj +% 1161 0 obj << /BaseFont /Times-Bold /Type /Font /Subtype /Type1 >> -% 1128 0 obj +% 1142 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [213.636 625.431 225.591 634.343] +/Rect [162.826 625.431 174.781 634.343] /A << /S /GoTo /D (table.14) >> >> -% 1139 0 obj +% 1152 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [457.906 283.557 464.88 296.177] +/Rect [407.097 283.557 414.071 296.177] /A << /S /GoTo /D (figure.7) >> >> -% 1143 0 obj +% 1156 0 obj << -/D [1141 0 R /XYZ 149.705 753.953 null] +/D [1154 0 R /XYZ 98.895 753.953 null] >> -% 1144 0 obj +% 1157 0 obj << -/D [1141 0 R /XYZ 283.692 322.744 null] +/D [1154 0 R /XYZ 232.883 322.744 null] >> -% 1140 0 obj +% 1153 0 obj << -/Font << /F27 552 0 R /F8 553 0 R /F11 745 0 R /F16 550 0 R /F30 759 0 R >> -/XObject << /Im3 1138 0 R >> +/Font << /F27 556 0 R /F8 557 0 R /F11 750 0 R /F16 554 0 R /F30 764 0 R >> +/XObject << /Im3 1151 0 R >> /ProcSet [ /PDF /Text ] >> -% 1150 0 obj +% 1163 0 obj << /Type /Page -/Contents 1151 0 R -/Resources 1149 0 R +/Contents 1164 0 R +/Resources 1162 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1137 0 R +/Parent 1138 0 R >> -% 1152 0 obj +% 1165 0 obj << -/D [1150 0 R /XYZ 98.895 753.953 null] +/D [1163 0 R /XYZ 149.705 753.953 null] >> -% 1149 0 obj +% 1162 0 obj << -/Font << /F46 1153 0 R /F8 553 0 R >> +/Font << /F46 1166 0 R /F8 557 0 R >> /ProcSet [ /PDF /Text ] >> -% 1158 0 obj +% 1171 0 obj << /Type /Page -/Contents 1159 0 R -/Resources 1157 0 R +/Contents 1172 0 R +/Resources 1170 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1137 0 R -/Annots [ 1154 0 R 1155 0 R 1156 0 R ] +/Parent 1138 0 R +/Annots [ 1167 0 R 1168 0 R 1169 0 R ] >> -% 1154 0 obj +% 1167 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [419.358 343.981 495.412 355.106] +/Rect [368.549 343.981 444.603 355.106] /A << /S /GoTo /D (vdata) >> >> -% 1155 0 obj +% 1168 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [376.221 332.303 388.176 343.151] +/Rect [325.411 332.303 337.366 343.151] /A << /S /GoTo /D (table.15) >> >> -% 1156 0 obj +% 1169 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [345.53 264.991 412.588 276.116] +/Rect [294.721 264.991 361.779 276.116] /A << /S /GoTo /D (descdata) >> >> -% 1160 0 obj +% 1173 0 obj << -/D [1158 0 R /XYZ 149.705 753.953 null] +/D [1171 0 R /XYZ 98.895 753.953 null] >> -% 268 0 obj +% 272 0 obj << -/D [1158 0 R /XYZ 150.705 720.077 null] +/D [1171 0 R /XYZ 99.895 720.077 null] >> -% 1161 0 obj +% 1174 0 obj << -/D [1158 0 R /XYZ 320.941 511.222 null] +/D [1171 0 R /XYZ 270.132 511.222 null] >> -% 1162 0 obj +% 1175 0 obj << -/D [1158 0 R /XYZ 150.705 480.819 null] +/D [1171 0 R /XYZ 99.895 480.819 null] >> -% 1163 0 obj +% 1176 0 obj << -/D [1158 0 R /XYZ 150.705 482.756 null] +/D [1171 0 R /XYZ 99.895 482.756 null] >> -% 1164 0 obj +% 1177 0 obj << -/D [1158 0 R /XYZ 150.705 470.801 null] +/D [1171 0 R /XYZ 99.895 470.801 null] >> -% 1157 0 obj +% 1170 0 obj << -/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 >> +/Font << /F16 554 0 R /F8 557 0 R /F11 750 0 R /F14 767 0 R /F10 766 0 R /F27 556 0 R /F30 764 0 R >> /ProcSet [ /PDF /Text ] >> -% 1170 0 obj +% 1183 0 obj << /Type /Page -/Contents 1171 0 R -/Resources 1169 0 R +/Contents 1184 0 R +/Resources 1182 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1137 0 R -/Annots [ 1165 0 R 1167 0 R 1168 0 R ] +/Parent 1138 0 R +/Annots [ 1178 0 R 1180 0 R 1181 0 R ] >> -% 1165 0 obj +% 1178 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [203.009 555.748 214.964 566.597] +/Rect [253.818 555.748 265.774 566.597] /A << /S /GoTo /D (table.15) >> >> -% 1167 0 obj +% 1180 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [407.019 326.22 413.993 338.84] +/Rect [457.829 326.22 464.803 338.84] /A << /S /GoTo /D (figure.8) >> >> -% 1168 0 obj +% 1181 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [306.759 302.697 313.733 313.546] +/Rect [357.569 302.697 364.543 313.546] /A << /S /GoTo /D (figure.7) >> >> -% 1172 0 obj +% 1185 0 obj << -/D [1170 0 R /XYZ 98.895 753.953 null] +/D [1183 0 R /XYZ 149.705 753.953 null] >> -% 1173 0 obj +% 1186 0 obj << -/D [1170 0 R /XYZ 99.895 465.033 null] +/D [1183 0 R /XYZ 150.705 465.033 null] >> -% 1174 0 obj +% 1187 0 obj << -/D [1170 0 R /XYZ 99.895 431.215 null] +/D [1183 0 R /XYZ 150.705 431.215 null] >> -% 1175 0 obj +% 1188 0 obj << -/D [1170 0 R /XYZ 99.895 387.38 null] +/D [1183 0 R /XYZ 150.705 387.38 null] >> -% 1169 0 obj +% 1182 0 obj << -/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 >> +/Font << /F27 556 0 R /F8 557 0 R /F11 750 0 R /F16 554 0 R /F10 766 0 R /F30 764 0 R >> /ProcSet [ /PDF /Text ] >> -% 1178 0 obj +% 1191 0 obj << /Type /Page -/Contents 1179 0 R -/Resources 1177 0 R +/Contents 1192 0 R +/Resources 1190 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1137 0 R +/Parent 1194 0 R >> -% 1180 0 obj +% 1193 0 obj << -/D [1178 0 R /XYZ 149.705 753.953 null] +/D [1191 0 R /XYZ 98.895 753.953 null] >> -% 1177 0 obj +% 1190 0 obj << -/Font << /F31 765 0 R /F8 553 0 R >> +/Font << /F31 770 0 R /F8 557 0 R >> /ProcSet [ /PDF /Text ] >> -% 1182 0 obj +% 1196 0 obj << /Type /Page -/Contents 1183 0 R -/Resources 1181 0 R +/Contents 1197 0 R +/Resources 1195 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1185 0 R +/Parent 1194 0 R >> -% 1186 0 obj +% 1199 0 obj << /Producer (ESP Ghostscript 815.03) /CreationDate (D:20070118114343) /ModDate (D:20070118114343) >> -% 1187 0 obj +% 1200 0 obj << /Type /ExtGState /OPM 1 >> -% 1188 0 obj +% 1201 0 obj << /BaseFont /Times-Roman /Type /Font /Subtype /Type1 >> -% 1189 0 obj +% 1202 0 obj << /BaseFont /Times-Bold /Type /Font /Subtype /Type1 >> -% 1184 0 obj +% 1198 0 obj << -/D [1182 0 R /XYZ 98.895 753.953 null] +/D [1196 0 R /XYZ 149.705 753.953 null] >> -% 1176 0 obj +% 1189 0 obj << -/D [1182 0 R /XYZ 232.883 275.514 null] +/D [1196 0 R /XYZ 283.692 275.514 null] >> -% 1181 0 obj +% 1195 0 obj << -/Font << /F8 553 0 R >> -/XObject << /Im4 1166 0 R >> +/Font << /F8 557 0 R >> +/XObject << /Im4 1179 0 R >> /ProcSet [ /PDF /Text ] >> -% 1194 0 obj +% 1207 0 obj << /Type /Page -/Contents 1195 0 R -/Resources 1193 0 R +/Contents 1208 0 R +/Resources 1206 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1185 0 R -/Annots [ 1190 0 R 1191 0 R 1192 0 R ] +/Parent 1194 0 R +/Annots [ 1203 0 R 1204 0 R 1205 0 R ] >> -% 1190 0 obj +% 1203 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [419.358 295.182 495.412 306.307] +/Rect [368.549 295.182 444.603 306.307] /A << /S /GoTo /D (vdata) >> >> -% 1191 0 obj +% 1204 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [256.807 285.441 268.762 294.352] +/Rect [205.998 285.441 217.953 294.352] /A << /S /GoTo /D (table.16) >> >> -% 1192 0 obj +% 1205 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [345.53 215.901 412.588 227.026] +/Rect [294.721 215.901 361.779 227.026] /A << /S /GoTo /D (descdata) >> >> -% 1196 0 obj +% 1209 0 obj << -/D [1194 0 R /XYZ 149.705 753.953 null] +/D [1207 0 R /XYZ 98.895 753.953 null] >> -% 272 0 obj +% 276 0 obj << -/D [1194 0 R /XYZ 150.705 720.077 null] +/D [1207 0 R /XYZ 99.895 720.077 null] >> -% 1197 0 obj +% 1210 0 obj << -/D [1194 0 R /XYZ 320.941 466.542 null] +/D [1207 0 R /XYZ 270.132 466.542 null] >> -% 1198 0 obj +% 1211 0 obj << -/D [1194 0 R /XYZ 150.705 435.558 null] +/D [1207 0 R /XYZ 99.895 435.558 null] >> -% 1199 0 obj +% 1212 0 obj << -/D [1194 0 R /XYZ 150.705 435.558 null] +/D [1207 0 R /XYZ 99.895 435.558 null] >> -% 1200 0 obj +% 1213 0 obj << -/D [1194 0 R /XYZ 150.705 423.603 null] +/D [1207 0 R /XYZ 99.895 423.603 null] >> -% 1193 0 obj +% 1206 0 obj << -/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 >> +/Font << /F16 554 0 R /F8 557 0 R /F11 750 0 R /F14 767 0 R /F10 766 0 R /F7 765 0 R /F27 556 0 R /F30 764 0 R >> /ProcSet [ /PDF /Text ] >> -% 1202 0 obj +% 1215 0 obj << /Type /Page -/Contents 1203 0 R -/Resources 1201 0 R +/Contents 1216 0 R +/Resources 1214 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1185 0 R +/Parent 1194 0 R >> -% 1204 0 obj +% 1217 0 obj << -/D [1202 0 R /XYZ 98.895 753.953 null] +/D [1215 0 R /XYZ 149.705 753.953 null] >> -% 1201 0 obj +% 1214 0 obj << -/Font << /F27 552 0 R /F8 553 0 R /F30 759 0 R >> +/Font << /F27 556 0 R /F8 557 0 R /F30 764 0 R >> /ProcSet [ /PDF /Text ] >> -% 1208 0 obj +% 1221 0 obj << /Type /Page -/Contents 1209 0 R -/Resources 1207 0 R +/Contents 1222 0 R +/Resources 1220 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1185 0 R -/Annots [ 1205 0 R ] +/Parent 1194 0 R +/Annots [ 1218 0 R ] >> -% 1205 0 obj +% 1218 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [345.53 210.686 412.588 221.811] +/Rect [294.721 210.686 361.779 221.811] /A << /S /GoTo /D (descdata) >> >> -% 1210 0 obj -<< -/D [1208 0 R /XYZ 149.705 753.953 null] ->> -% 276 0 obj -<< -/D [1208 0 R /XYZ 150.705 720.077 null] ->> -% 1211 0 obj -<< -/D [1208 0 R /XYZ 320.941 451.038 null] ->> -% 1212 0 obj -<< -/D [1208 0 R /XYZ 150.705 417.777 null] ->> -% 1213 0 obj -<< -/D [1208 0 R /XYZ 150.705 417.777 null] ->> -% 1207 0 obj -<< -/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 ] ->> -% 1217 0 obj -<< -/Type /Page -/Contents 1218 0 R -/Resources 1216 0 R -/MediaBox [0 0 595.276 841.89] -/Parent 1185 0 R -/Annots [ 1206 0 R 1214 0 R 1215 0 R ] ->> -% 1206 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [285.522 643.143 361.576 654.268] -/A << /S /GoTo /D (vdata) >> ->> -% 1214 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [123.806 543.516 199.86 554.641] -/A << /S /GoTo /D (vdata) >> ->> -% 1215 0 obj +% 1223 0 obj << -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [422.94 543.516 434.896 554.641] -/A << /S /GoTo /D (table.17) >> +/D [1221 0 R /XYZ 98.895 753.953 null] >> -% 1219 0 obj +% 280 0 obj << -/D [1217 0 R /XYZ 98.895 753.953 null] +/D [1221 0 R /XYZ 99.895 720.077 null] >> -% 1216 0 obj +% 1224 0 obj << -/Font << /F27 552 0 R /F8 553 0 R /F30 759 0 R /F11 745 0 R >> -/ProcSet [ /PDF /Text ] +/D [1221 0 R /XYZ 270.132 451.038 null] >> -% 1221 0 obj +% 1225 0 obj << -/Type /Page -/Contents 1222 0 R -/Resources 1220 0 R -/MediaBox [0 0 595.276 841.89] -/Parent 1185 0 R +/D [1221 0 R /XYZ 99.895 417.777 null] >> -% 1223 0 obj +% 1226 0 obj << -/D [1221 0 R /XYZ 149.705 753.953 null] +/D [1221 0 R /XYZ 99.895 417.777 null] >> -% 280 0 obj + +endstream +endobj +1232 0 obj << -/D [1221 0 R /XYZ 150.705 716.092 null] +/Length 4181 >> -% 284 0 obj +stream +0 g 0 G +0 g 0 G +0 g 0 G +BT +/F27 9.9626 Tf 150.705 706.129 Td [(mold)]TJ +0 g 0 G +/F8 9.9626 Tf 29.805 0 Td [(The)-333(desired)-334(dynamic)-333(t)28(yp)-28(e)-333(for)-334(th)1(e)-334(in)28(ternal)-333(v)27(ector)-333(storage.)]TJ -4.899 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf 23.073 0 Td [(.)]TJ -55.452 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.612 0 Td [(optional)]TJ/F8 9.9626 Tf 40.576 0 Td [(.)]TJ -70.188 -11.956 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.548 0 Td [(.)]TJ -43.034 -11.955 Td [(Sp)-28(eci\014ed)-273(as:)-414(an)-274(ob)-55(ject)-273(of)-274(a)-273(class)-273(deriv)28(ed)-274(from)]TJ/F30 9.9626 Tf 198.261 0 Td [(psb)]TJ +ET +q +1 0 0 1 390.19 658.507 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +Q +BT +/F30 9.9626 Tf 393.329 658.308 Td [(T)]TJ +ET +q +1 0 0 1 399.186 658.507 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +Q +BT +/F30 9.9626 Tf 402.325 658.308 Td [(base)]TJ +ET +q +1 0 0 1 423.874 658.507 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +Q +BT +/F30 9.9626 Tf 427.012 658.308 Td [(vect)]TJ +ET +q +1 0 0 1 448.561 658.507 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +Q +BT +/F30 9.9626 Tf 451.699 658.308 Td [(type)]TJ/F8 9.9626 Tf 20.921 0 Td [(;)-293(this)]TJ -297.009 -11.955 Td [(is)-333(only)-334(allo)28(w)28(ed)-333(when)-334(lo)-28(c)]TJ +ET +q +1 0 0 1 281.979 646.552 cm +[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +Q +BT +/F8 9.9626 Tf 284.968 646.353 Td [(x)-333(is)-334(of)-333(t)28(yp)-28(e)]TJ +0 0 1 rg 0 0 1 RG +/F30 9.9626 Tf 52.36 0 Td [(psb)]TJ +ET +q +1 0 0 1 353.646 646.552 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +Q +BT +/F30 9.9626 Tf 356.784 646.353 Td [(T)]TJ +ET +q +1 0 0 1 362.642 646.552 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +Q +BT +/F30 9.9626 Tf 365.781 646.353 Td [(vect)]TJ +ET +q +1 0 0 1 387.33 646.552 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +Q +BT +/F30 9.9626 Tf 390.468 646.353 Td [(type)]TJ +0 g 0 G +/F8 9.9626 Tf 20.921 0 Td [(.)]TJ +0 g 0 G +/F27 9.9626 Tf -260.684 -19.925 Td [(On)-383(Return)]TJ +0 g 0 G +0 g 0 G + 0 -19.926 Td [(lo)-32(c)]TJ +ET +q +1 0 0 1 165.713 606.702 cm +[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S +Q +BT +/F27 9.9626 Tf 169.151 606.502 Td [(x)]TJ +0 g 0 G +/F8 9.9626 Tf 11.028 0 Td [(the)-333(lo)-28(cal)-333(p)-28(ortion)-333(of)-334(global)-333(dense)-333(matrix)]TJ/F11 9.9626 Tf 176.117 0 Td [(g)-36(l)-20(ob)]TJ +ET +q +1 0 0 1 374.277 606.702 cm +[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +Q +BT +/F11 9.9626 Tf 377.266 606.502 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(.)]TJ -207.349 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.612 0 Td [(required)]TJ/F8 9.9626 Tf -29.612 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(out)]TJ/F8 9.9626 Tf 16.549 0 Td [(.)]TJ -50.035 -11.955 Td [(Sp)-28(eci\014ed)-244(as:)-400(a)-244(rank)-244(on)1(e)-245(or)-243(t)27(w)28(o)-244(ALLOCA)83(T)84(ABLE)-244(arra)28(y)-244(or)-244(an)-244(ob)-56(ject)-244(of)-244(t)28(yp)-28(e)]TJ +0 0 1 rg 0 0 1 RG +/F30 9.9626 Tf 0 -11.955 Td [(psb)]TJ +ET +q +1 0 0 1 191.93 546.926 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +Q +BT +/F30 9.9626 Tf 195.068 546.727 Td [(T)]TJ +ET +q +1 0 0 1 200.926 546.926 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +Q +BT +/F30 9.9626 Tf 204.065 546.727 Td [(vect)]TJ +ET +q +1 0 0 1 225.613 546.926 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +Q +BT +/F30 9.9626 Tf 228.752 546.727 Td [(type)]TJ +0 g 0 G +/F8 9.9626 Tf 24.242 0 Td [(con)28(taining)-333(n)27(um)28(b)-28(ers)-333(of)-333(the)-334(t)28(yp)-28(e)-333(indicated)-333(in)-333(T)83(able)]TJ +0 0 1 rg 0 0 1 RG + [-333(17)]TJ +0 g 0 G + [(.)]TJ +0 g 0 G +/F27 9.9626 Tf -102.289 -19.926 Td [(info)]TJ +0 g 0 G +/F8 9.9626 Tf 23.758 0 Td [(Error)-333(co)-28(de.)]TJ 1.148 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.612 0 Td [(required)]TJ/F8 9.9626 Tf -29.612 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(out)]TJ/F8 9.9626 Tf 16.549 0 Td [(.)]TJ -50.035 -11.955 Td [(An)-333(in)27(t)1(e)-1(ger)-333(v)56(alue;)-334(0)-333(means)-333(no)-334(error)-333(has)-333(b)-28(een)-333(detec)-1(ted.)]TJ +0 g 0 G + 141.968 -388.543 Td [(60)]TJ +0 g 0 G +ET + +endstream +endobj +1236 0 obj << -/D [1221 0 R /XYZ 150.705 696.263 null] +/Length 6537 >> +stream +0 g 0 G +0 g 0 G +BT +/F16 14.3462 Tf 99.895 706.129 Td [(6)-1125(Data)-375(managemen)31(t)-375(routines)]TJ/F16 11.9552 Tf 0 -23.814 Td [(psb)]TJ +ET +q +1 0 0 1 120.951 682.515 cm +[]0 d 0 J 0.398 w 0 0 m 4.035 0 l S +Q +BT +/F16 11.9552 Tf 124.986 682.315 Td [(cdall)-375(|)-375(Allo)-31(cates)-375(a)-375(comm)31(unication)-375(descriptor)]TJ +0 g 0 G +0 g 0 G +/F30 9.9626 Tf -25.091 -18.389 Td [(call)-525(psb_cdall\050icontxt,)-525(desc_a,)-525(info,mg=mg,parts=parts\051)]TJ 0 -11.955 Td [(call)-525(psb_cdall\050icontxt,)-525(desc_a,)-525(info,vg=vg,[mg=mg,flag=flag]\051)]TJ 0 -11.955 Td [(call)-525(psb_cdall\050icontxt,)-525(desc_a,)-525(info,vl=vl,[nl=nl,globalcheck=.true.,lidx=lidx]\051)]TJ 0 -11.955 Td [(call)-525(psb_cdall\050icontxt,)-525(desc_a,)-525(info,nl=nl\051)]TJ 0 -11.956 Td [(call)-525(psb_cdall\050icontxt,)-525(desc_a,)-525(info,mg=mg,repl=.true.\051)]TJ/F8 9.9626 Tf 14.944 -20.107 Td [(This)-314(subroutine)-314(initializes)-315(the)-314(comm)28(unication)-314(descriptor)-314(as)-1(so)-27(ciated)-315(with)-314(an)]TJ -14.944 -11.955 Td [(index)-326(space.)-442(One)-326(of)-326(the)-327(option)1(al)-327(argumen)28(ts)]TJ/F30 9.9626 Tf 193.68 0 Td [(parts)]TJ/F8 9.9626 Tf 26.151 0 Td [(,)]TJ/F30 9.9626 Tf 6.031 0 Td [(vg)]TJ/F8 9.9626 Tf 10.461 0 Td [(,)]TJ/F30 9.9626 Tf 6.031 0 Td [(vl)]TJ/F8 9.9626 Tf 10.461 0 Td [(,)]TJ/F30 9.9626 Tf 6.031 0 Td [(nl)]TJ/F8 9.9626 Tf 13.709 0 Td [(or)]TJ/F30 9.9626 Tf 12.133 0 Td [(repl)]TJ/F8 9.9626 Tf 24.171 0 Td [(m)28(ust)-326(b)-28(e)]TJ -308.859 -11.955 Td [(sp)-28(eci\014ed,)-333(thereb)28(y)-334(c)28(ho)-28(osing)-333(the)-333(sp)-28(eci\014c)-334(in)1(itialization)-334(strategy)84(.)]TJ +0 g 0 G +/F27 9.9626 Tf 0 -18.477 Td [(On)-383(En)32(try)]TJ +0 g 0 G +0 g 0 G + 0 -19.201 Td [(T)32(yp)-32(e:)]TJ +0 g 0 G +/F8 9.9626 Tf 33.797 0 Td [(Sync)28(hronous.)]TJ +0 g 0 G +/F27 9.9626 Tf -33.797 -19.201 Td [(icon)32(txt)]TJ +0 g 0 G +/F8 9.9626 Tf 39.989 0 Td [(the)-333(comm)27(unication)-333(con)28(text.)]TJ -15.082 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 27.951 0 Td [(global)]TJ/F8 9.9626 Tf 29.756 0 Td [(.)]TJ -57.707 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.183 0 Td [(required)]TJ/F8 9.9626 Tf 41.899 0 Td [(.)]TJ -67.082 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(in)28(teger)-333(v)55(alue.)]TJ +0 g 0 G +/F27 9.9626 Tf -24.907 -19.201 Td [(vg)]TJ +0 g 0 G +/F8 9.9626 Tf 16.757 0 Td [(Data)-333(allo)-28(cation:)-444(e)-1(ac)28(h)-333(index)]TJ/F11 9.9626 Tf 123.565 0 Td [(i)]TJ/F14 9.9626 Tf 6.199 0 Td [(2)-278(f)]TJ/F8 9.9626 Tf 14.391 0 Td [(1)]TJ/F11 9.9626 Tf 6.641 0 Td [(:)-167(:)-166(:)-167(mg)]TJ/F14 9.9626 Tf 27.14 0 Td [(g)]TJ/F8 9.9626 Tf 8.303 0 Td [(is)-333(allo)-28(cated)-333(to)-334(pro)-27(c)-1(ess)]TJ/F11 9.9626 Tf 99.266 0 Td [(v)-36(g)]TJ/F8 9.9626 Tf 10.296 0 Td [(\050)]TJ/F11 9.9626 Tf 3.875 0 Td [(i)]TJ/F8 9.9626 Tf 3.432 0 Td [(\051.)]TJ -294.958 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 27.951 0 Td [(global)]TJ/F8 9.9626 Tf 29.756 0 Td [(.)]TJ -57.707 -11.956 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.183 0 Td [(optional)]TJ/F8 9.9626 Tf 40.577 0 Td [(.)]TJ -65.76 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(in)28(teger)-333(arra)27(y)84(.)]TJ +0 g 0 G +/F27 9.9626 Tf -24.907 -19.201 Td [(\015ag)]TJ +0 g 0 G +/F8 9.9626 Tf 22.644 0 Td [(Sp)-28(eci\014es)-333(whether)-334(en)28(tries)-333(in)]TJ/F11 9.9626 Tf 121.932 0 Td [(v)-36(g)]TJ/F8 9.9626 Tf 13.617 0 Td [(are)-333(zero-)-334(or)-333(one-based.)]TJ -133.286 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 27.951 0 Td [(global)]TJ/F8 9.9626 Tf 29.756 0 Td [(.)]TJ -57.707 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.183 0 Td [(optional)]TJ/F8 9.9626 Tf 40.577 0 Td [(.)]TJ -65.76 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.956 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(in)28(teger)-333(v)55(alue)-333(0)]TJ/F11 9.9626 Tf 135.409 0 Td [(;)]TJ/F8 9.9626 Tf 4.428 0 Td [(1,)-333(default)-334(0.)]TJ +0 g 0 G +/F27 9.9626 Tf -164.744 -19.2 Td [(mg)]TJ +0 g 0 G +/F8 9.9626 Tf 20.258 0 Td [(the)-333(\050global\051)-334(n)28(um)28(b)-28(er)-333(of)-333(ro)27(ws)-333(of)-333(the)-334(pr)1(oblem)-1(.)]TJ 4.649 -11.956 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 27.951 0 Td [(global)]TJ/F8 9.9626 Tf 29.756 0 Td [(.)]TJ -57.707 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.183 0 Td [(optional)]TJ/F8 9.9626 Tf 40.577 0 Td [(.)]TJ -65.76 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-332(as:)-444(an)-333(in)28(teger)-333(v)56(alue.)-445(It)-332(is)-333(required)-332(if)]TJ/F30 9.9626 Tf 203.266 0 Td [(parts)]TJ/F8 9.9626 Tf 29.466 0 Td [(or)]TJ/F30 9.9626 Tf 12.197 0 Td [(repl)]TJ/F8 9.9626 Tf 24.235 0 Td [(is)-333(sp)-27(e)-1(ci\014)1(e)-1(d)1(,)]TJ -269.164 -11.955 Td [(it)-333(is)-334(optional)-333(if)]TJ/F30 9.9626 Tf 67.857 0 Td [(vg)]TJ/F8 9.9626 Tf 13.781 0 Td [(is)-333(sp)-28(eci\014ed.)]TJ +0 g 0 G +/F27 9.9626 Tf -106.545 -19.201 Td [(parts)]TJ +0 g 0 G +/F8 9.9626 Tf 30.609 0 Td [(the)-333(subroutine)-334(th)1(at)-334(de\014nes)-333(the)-334(p)1(artitioning)-334(sc)28(heme.)]TJ -5.702 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 27.951 0 Td [(global)]TJ/F8 9.9626 Tf 29.756 0 Td [(.)]TJ -57.707 -11.956 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.183 0 Td [(required)]TJ/F8 9.9626 Tf 41.899 0 Td [(.)]TJ -67.082 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(subroutine.)]TJ +0 g 0 G +/F27 9.9626 Tf -24.907 -19.201 Td [(vl)]TJ +0 g 0 G +/F8 9.9626 Tf 14.211 0 Td [(Data)-363(allo)-28(cation:)-504(the)-363(set)-364(of)-363(global)-363(indices)]TJ/F11 9.9626 Tf 182.789 0 Td [(v)-36(l)]TJ/F8 9.9626 Tf 8.355 0 Td [(\0501)-328(:)]TJ/F11 9.9626 Tf 18.151 0 Td [(nl)]TJ/F8 9.9626 Tf 9.148 0 Td [(\051)-363(b)-28(elonging)-363(to)-363(the)-364(calling)]TJ -207.747 -11.955 Td [(pro)-28(cess.)]TJ 0 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 27.951 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf 23.073 0 Td [(.)]TJ -51.024 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.183 0 Td [(optional)]TJ/F8 9.9626 Tf 40.577 0 Td [(.)]TJ -65.76 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.956 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(in)28(teger)-333(arra)27(y)84(.)]TJ +0 g 0 G + 141.968 -29.888 Td [(61)]TJ +0 g 0 G +ET endstream endobj -1228 0 obj +1242 0 obj << -/Length 6637 +/Length 6630 >> stream 0 g 0 G 0 g 0 G 0 g 0 G BT -/F27 9.9626 Tf 99.895 706.129 Td [(nl)]TJ +/F27 9.9626 Tf 150.705 706.129 Td [(nl)]TJ 0 g 0 G -/F8 9.9626 Tf 14.529 0 Td [(Data)-223(allo)-28(cation:)-389(in)-222(a)-223(generalized)-223(blo)-28(c)28(k-ro)28(w)-223(distribution)-223(the)-222(n)27(um)28(b)-28(er)-222(of)-223(indices)]TJ 10.378 -11.955 Td [(b)-28(elonging)-333(to)-333(the)-334(curren)28(t)-333(pro)-28(cess.)]TJ 0 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 27.951 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf 23.073 0 Td [(.)]TJ -51.024 -11.956 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.183 0 Td [(optional)]TJ/F8 9.9626 Tf 40.577 0 Td [(.)]TJ -65.76 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(in)28(teger)-333(v)55(alue.)-444(Ma)28(y)-334(b)-27(e)-334(sp)-28(eci\014ed)-333(together)-333(with)]TJ/F30 9.9626 Tf 272.479 0 Td [(vl)]TJ/F8 9.9626 Tf 10.46 0 Td [(.)]TJ +/F8 9.9626 Tf 14.529 0 Td [(Data)-223(allo)-28(cation)1(:)-390(in)-222(a)-223(generalized)-223(blo)-28(c)28(k-ro)28(w)-223(distribution)-223(the)-222(n)27(um)28(b)-28(er)-222(of)-223(indices)]TJ 10.377 -11.955 Td [(b)-28(elonging)-333(to)-333(the)-334(curren)28(t)-333(pro)-28(cess.)]TJ 0 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 27.951 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf 23.073 0 Td [(.)]TJ -51.024 -11.956 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.184 0 Td [(optional)]TJ/F8 9.9626 Tf 40.577 0 Td [(.)]TJ -65.761 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.548 0 Td [(.)]TJ -43.034 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(in)28(teger)-333(v)55(alue.)-444(Ma)28(y)-334(b)-28(e)-333(sp)-28(eci\014ed)-333(together)-333(with)]TJ/F30 9.9626 Tf 272.479 0 Td [(vl)]TJ/F8 9.9626 Tf 10.461 0 Td [(.)]TJ 0 g 0 G /F27 9.9626 Tf -307.846 -20.135 Td [(repl)]TJ 0 g 0 G -/F8 9.9626 Tf 24.499 0 Td [(Data)-351(allo)-28(cation:)-480(build)-351(a)-351(replicated)-351(index)-351(space)-351(\050i.e.)-498(all)-351(pro)-28(cesses)-351(o)27(wn)-351(all)]TJ 0.408 -11.955 Td [(indices\051.)]TJ 0 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 27.951 0 Td [(global)]TJ/F8 9.9626 Tf 29.756 0 Td [(.)]TJ -57.707 -11.956 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.183 0 Td [(optional)]TJ/F8 9.9626 Tf 40.577 0 Td [(.)]TJ -65.76 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(th)1(e)-334(logical)-333(v)55(alue)]TJ/F30 9.9626 Tf 131.784 0 Td [(.true.)]TJ +/F8 9.9626 Tf 24.498 0 Td [(Data)-351(allo)-28(cation:)-480(build)-351(a)-351(replicated)-351(index)-351(space)-351(\050i.e.)-498(all)-351(pro)-28(cesses)-351(o)27(wn)-351(all)]TJ 0.408 -11.955 Td [(indices\051.)]TJ 0 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 27.951 0 Td [(global)]TJ/F8 9.9626 Tf 29.757 0 Td [(.)]TJ -57.708 -11.956 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.184 0 Td [(optional)]TJ/F8 9.9626 Tf 40.577 0 Td [(.)]TJ -65.761 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.548 0 Td [(.)]TJ -43.034 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(the)-333(logical)-333(v)55(alue)]TJ/F30 9.9626 Tf 131.784 0 Td [(.true.)]TJ 0 g 0 G -/F27 9.9626 Tf -156.691 -20.135 Td [(globalc)32(hec)32(k)]TJ +/F27 9.9626 Tf -156.69 -20.135 Td [(globalc)32(hec)32(k)]TJ 0 g 0 G -/F8 9.9626 Tf 61.948 0 Td [(Data)-333(allo)-28(cation:)-445(d)1(o)-334(global)-333(c)28(hec)27(ks)-333(on)-333(the)-334(lo)-27(cal)-334(index)-333(lists)]TJ/F30 9.9626 Tf 250.201 0 Td [(vl)]TJ/F8 9.9626 Tf -287.242 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 27.951 0 Td [(global)]TJ/F8 9.9626 Tf 29.756 0 Td [(.)]TJ -57.707 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.183 0 Td [(optional)]TJ/F8 9.9626 Tf 40.577 0 Td [(.)]TJ -65.76 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.956 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(logical)-333(v)55(alue,)-333(default:)]TJ/F30 9.9626 Tf 163.056 0 Td [(.true.)]TJ +/F8 9.9626 Tf 61.948 0 Td [(Data)-333(allo)-28(cation:)-444(do)-334(global)-333(c)28(hec)27(ks)-333(on)-333(the)-334(lo)-27(cal)-334(index)-333(lists)]TJ/F30 9.9626 Tf 250.201 0 Td [(vl)]TJ/F8 9.9626 Tf -287.243 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 27.951 0 Td [(global)]TJ/F8 9.9626 Tf 29.757 0 Td [(.)]TJ -57.708 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.184 0 Td [(optional)]TJ/F8 9.9626 Tf 40.577 0 Td [(.)]TJ -65.761 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.548 0 Td [(.)]TJ -43.034 -11.956 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(logical)-333(v)55(alue,)-333(default:)]TJ/F30 9.9626 Tf 163.056 0 Td [(.true.)]TJ 0 g 0 G -/F27 9.9626 Tf -187.963 -20.135 Td [(lidx)]TJ +/F27 9.9626 Tf -187.962 -20.135 Td [(lidx)]TJ 0 g 0 G -/F8 9.9626 Tf 23.758 0 Td [(Data)-353(allo)-28(cation:)-484(the)-353(set)-353(of)-353(lo)-28(cal)-353(indices)]TJ/F11 9.9626 Tf 176.172 0 Td [(l)-20(idx)]TJ/F8 9.9626 Tf 17.48 0 Td [(\0501)-311(:)]TJ/F11 9.9626 Tf 17.814 0 Td [(nl)]TJ/F8 9.9626 Tf 9.149 0 Td [(\051)-353(to)-353(b)-28(e)-353(assigned)-353(to)-353(the)]TJ -219.466 -11.955 Td [(global)-333(indices)]TJ/F11 9.9626 Tf 62.045 0 Td [(v)-36(l)]TJ/F8 9.9626 Tf 8.355 0 Td [(.)]TJ -70.4 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 27.951 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf 23.073 0 Td [(.)]TJ -51.024 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.183 0 Td [(optional)]TJ/F8 9.9626 Tf 40.577 0 Td [(.)]TJ -65.76 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.956 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(in)28(teger)-333(arra)27(y)84(.)]TJ +/F8 9.9626 Tf 23.758 0 Td [(Data)-353(allo)-28(cation:)-484(the)-353(set)-353(of)-353(lo)-28(cal)-353(indices)]TJ/F11 9.9626 Tf 176.171 0 Td [(l)-20(idx)]TJ/F8 9.9626 Tf 17.481 0 Td [(\0501)-311(:)]TJ/F11 9.9626 Tf 17.814 0 Td [(nl)]TJ/F8 9.9626 Tf 9.149 0 Td [(\051)-353(to)-353(b)-28(e)-353(assigned)-353(to)-353(the)]TJ -219.467 -11.955 Td [(global)-333(indices)]TJ/F11 9.9626 Tf 62.046 0 Td [(v)-36(l)]TJ/F8 9.9626 Tf 8.355 0 Td [(.)]TJ -70.401 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 27.951 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf 23.073 0 Td [(.)]TJ -51.024 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.184 0 Td [(optional)]TJ/F8 9.9626 Tf 40.577 0 Td [(.)]TJ -65.761 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.548 0 Td [(.)]TJ -43.034 -11.956 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(in)28(teger)-333(arra)27(y)84(.)]TJ 0 g 0 G -/F27 9.9626 Tf -24.907 -22.127 Td [(On)-383(Return)]TJ +/F27 9.9626 Tf -24.906 -22.127 Td [(On)-383(Return)]TJ 0 g 0 G 0 g 0 G 0 -20.135 Td [(desc)]TJ ET q -1 0 0 1 121.81 376.512 cm +1 0 0 1 172.619 376.512 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 125.247 376.313 Td [(a)]TJ +/F27 9.9626 Tf 176.057 376.313 Td [(a)]TJ 0 g 0 G -/F8 9.9626 Tf 10.551 0 Td [(the)-333(comm)27(unication)-333(descriptor.)]TJ -10.996 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 27.951 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf 23.073 0 Td [(.)]TJ -51.024 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.183 0 Td [(required)]TJ/F8 9.9626 Tf 41.899 0 Td [(.)]TJ -67.082 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(out)]TJ/F8 9.9626 Tf 16.549 0 Td [(.)]TJ -50.035 -11.956 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(structured)-333(data)-333(of)-334(t)28(yp)-28(e)]TJ +/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 [(out)]TJ/F8 9.9626 Tf 16.549 0 Td [(.)]TJ -50.035 -11.956 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(structured)-333(data)-333(of)-334(t)28(yp)-28(e)]TJ 0 0 1 rg 0 0 1 RG /F30 9.9626 Tf 170.915 0 Td [(psb)]TJ ET q -1 0 0 1 312.036 328.692 cm +1 0 0 1 362.845 328.692 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 315.174 328.492 Td [(desc)]TJ +/F30 9.9626 Tf 365.983 328.492 Td [(desc)]TJ ET q -1 0 0 1 336.723 328.692 cm +1 0 0 1 387.532 328.692 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 339.861 328.492 Td [(type)]TJ +/F30 9.9626 Tf 390.67 328.492 Td [(type)]TJ 0 g 0 G -/F8 9.9626 Tf 20.921 0 Td [(.)]TJ +/F8 9.9626 Tf 20.922 0 Td [(.)]TJ 0 g 0 G /F27 9.9626 Tf -260.887 -20.135 Td [(info)]TJ 0 g 0 G -/F8 9.9626 Tf 23.758 0 Td [(Error)-333(co)-28(de.)]TJ 1.149 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(out)]TJ/F8 9.9626 Tf 16.549 0 Td [(.)]TJ -50.035 -11.955 Td [(An)-333(in)28(tege)-1(r)-333(v)56(alue;)-334(0)-333(means)-333(no)-334(error)-333(has)-333(b)-28(een)-333(detecte)-1(d)1(.)]TJ/F16 11.9552 Tf -24.907 -22.128 Td [(Notes)]TJ +/F8 9.9626 Tf 23.758 0 Td [(Error)-333(co)-28(de.)]TJ 1.148 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.612 0 Td [(required)]TJ/F8 9.9626 Tf -29.612 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(out)]TJ/F8 9.9626 Tf 16.549 0 Td [(.)]TJ -50.035 -11.955 Td [(An)-333(in)27(t)1(e)-1(ger)-333(v)56(alue;)-334(0)-333(means)-333(no)-334(error)-333(has)-333(b)-28(een)-333(detec)-1(ted.)]TJ/F16 11.9552 Tf -24.906 -22.128 Td [(Notes)]TJ 0 g 0 G -/F8 9.9626 Tf 12.177 -20.082 Td [(1.)]TJ +/F8 9.9626 Tf 12.176 -20.082 Td [(1.)]TJ 0 g 0 G - [-500(One)-241(of)-241(the)-240(optional)-241(argumen)28(ts)]TJ/F30 9.9626 Tf 144.914 0 Td [(parts)]TJ/F8 9.9626 Tf 26.152 0 Td [(,)]TJ/F30 9.9626 Tf 5.351 0 Td [(vg)]TJ/F8 9.9626 Tf 10.461 0 Td [(,)]TJ/F30 9.9626 Tf 5.351 0 Td [(vl)]TJ/F8 9.9626 Tf 10.46 0 Td [(,)]TJ/F30 9.9626 Tf 5.351 0 Td [(nl)]TJ/F8 9.9626 Tf 12.86 0 Td [(or)]TJ/F30 9.9626 Tf 11.283 0 Td [(repl)]TJ/F8 9.9626 Tf 23.32 0 Td [(m)28(ust)-241(b)-28(e)-241(sp)-27(e)-1(ci\014)1(e)-1(d)1(,)]TJ -242.773 -11.956 Td [(thereb)28(y)-334(c)28(ho)-28(osing)-333(the)-333(initialization)-333(strategy)-334(as)-333(follo)28(ws:)]TJ + [-500(One)-241(of)-241(the)-240(optional)-241(argumen)28(ts)]TJ/F30 9.9626 Tf 144.915 0 Td [(parts)]TJ/F8 9.9626 Tf 26.151 0 Td [(,)]TJ/F30 9.9626 Tf 5.351 0 Td [(vg)]TJ/F8 9.9626 Tf 10.461 0 Td [(,)]TJ/F30 9.9626 Tf 5.351 0 Td [(vl)]TJ/F8 9.9626 Tf 10.461 0 Td [(,)]TJ/F30 9.9626 Tf 5.351 0 Td [(nl)]TJ/F8 9.9626 Tf 12.859 0 Td [(or)]TJ/F30 9.9626 Tf 11.283 0 Td [(repl)]TJ/F8 9.9626 Tf 23.321 0 Td [(m)28(ust)-241(b)-28(e)-241(sp)-27(eci\014ed,)]TJ -242.774 -11.956 Td [(thereb)28(y)-334(c)28(ho)-28(osing)-333(the)-333(initialization)-333(strategy)-334(as)-333(follo)28(ws:)]TJ 0 g 0 G /F27 9.9626 Tf 0 -20.135 Td [(parts)]TJ 0 g 0 G -/F8 9.9626 Tf 30.609 0 Td [(In)-337(this)-338(case)-338(w)28(e)-337(ha)28(v)27(e)-337(a)-338(subroutine)-337(sp)-28(ecifying)-337(the)-338(mapping)-337(b)-28(et)28(w)28(een)]TJ -8.691 -11.955 Td [(global)-225(indices)-225(and)-225(pro)-28(cess/lo)-27(c)-1(al)-225(i)1(ndex)-225(pairs.)-409(If)-225(this)-225(optional)-225(ar)1(gume)-1(n)28(t)]TJ 0 -11.955 Td [(is)-316(sp)-28(eci\014ed,)-320(then)-316(it)-317(is)-316(mandatory)-316(to)-317(sp)-28(ecify)-316(the)-316(argumen)28(t)]TJ/F30 9.9626 Tf 251.562 0 Td [(mg)]TJ/F8 9.9626 Tf 13.613 0 Td [(as)-316(w)27(ell.)]TJ -265.175 -11.955 Td [(The)-333(subroutine)-334(m)28(ust)-333(conform)-333(to)-334(the)-333(follo)28(wing)-334(in)28(terface:)]TJ +/F8 9.9626 Tf 30.609 0 Td [(In)-337(this)-338(case)-338(w)28(e)-337(ha)27(v)28(e)-337(a)-338(subroutine)-337(sp)-28(ecifying)-337(the)-338(mapping)-337(b)-28(et)28(w)28(ee)-1(n)]TJ -8.691 -11.955 Td [(global)-225(indices)-225(and)-225(pro)-28(cess/lo)-28(cal)-225(in)1(dex)-225(pairs.)-409(If)-225(this)-225(optional)-225(argu)1(m)-1(en)28(t)]TJ 0 -11.955 Td [(is)-316(sp)-28(eci\014ed,)-320(then)-316(it)-317(is)-316(mandatory)-316(to)-317(sp)-28(ecify)-316(the)-316(argumen)27(t)]TJ/F30 9.9626 Tf 251.563 0 Td [(mg)]TJ/F8 9.9626 Tf 13.612 0 Td [(as)-316(w)27(ell.)]TJ -265.175 -11.955 Td [(The)-333(subroutine)-334(m)28(ust)-333(conform)-333(to)-334(the)-333(follo)28(wing)-334(in)28(terface:)]TJ 0 g 0 G 0 g 0 G /F30 9.9626 Tf 10.461 -18.09 Td [(interface)]TJ 15.691 -11.955 Td [(subroutine)-525(psb_parts\050glob_index,mg,np,pv,nv\051)]TJ 0 g 0 G -/F8 9.9626 Tf 93.898 -29.888 Td [(61)]TJ +/F8 9.9626 Tf 93.898 -29.888 Td [(62)]TJ 0 g 0 G ET endstream endobj -1235 0 obj +1248 0 obj << -/Length 10049 +/Length 10081 >> stream 0 g 0 G 0 g 0 G BT -/F30 9.9626 Tf 234.142 706.129 Td [(integer,)-525(intent)-525(\050in\051)-1050(::)-525(glob_index,np,mg)]TJ 0 -11.955 Td [(integer,)-525(intent)-525(\050out\051)-525(::)-525(nv,)-525(pv\050*\051)]TJ -10.461 -11.955 Td [(end)-525(subroutine)-525(psb_parts)]TJ -15.691 -11.956 Td [(end)-525(interface)]TJ/F8 9.9626 Tf -10.461 -17.586 Td [(The)-333(input)-334(argumen)28(ts)-333(are:)]TJ +/F30 9.9626 Tf 183.332 706.129 Td [(integer,)-525(intent)-525(\050in\051)-1050(::)-525(glob_index,np,mg)]TJ 0 -11.955 Td [(integer,)-525(intent)-525(\050out\051)-525(::)-525(nv,)-525(pv\050*\051)]TJ -10.46 -11.955 Td [(end)-525(subroutine)-525(psb_parts)]TJ -15.691 -11.956 Td [(end)-525(interface)]TJ/F8 9.9626 Tf -10.461 -17.586 Td [(The)-333(input)-334(argu)1(m)-1(en)28(ts)-333(are:)]TJ 0 g 0 G /F27 9.9626 Tf 0 -15.594 Td [(glob)]TJ ET q -1 0 0 1 219.221 637.283 cm +1 0 0 1 168.412 637.283 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 222.658 637.083 Td [(index)]TJ +/F27 9.9626 Tf 171.849 637.083 Td [(index)]TJ 0 g 0 G -/F8 9.9626 Tf 32.192 0 Td [(The)-333(global)-334(index)-333(to)-333(b)-28(e)-333(mapp)-28(ed;)]TJ +/F8 9.9626 Tf 32.191 0 Td [(The)-333(global)-334(index)-333(to)-333(b)-28(e)-333(mapp)-28(ed;)]TJ 0 g 0 G -/F27 9.9626 Tf -57.321 -13.774 Td [(np)]TJ +/F27 9.9626 Tf -57.32 -13.774 Td [(np)]TJ 0 g 0 G -/F8 9.9626 Tf 17.712 0 Td [(The)-333(n)27(u)1(m)27(b)-27(e)-1(r)-333(of)-333(pro)-28(cesses)-333(in)-334(the)-333(mapping;)]TJ +/F8 9.9626 Tf 17.711 0 Td [(The)-333(n)27(um)28(b)-28(er)-333(of)-333(pro)-28(cesses)-333(in)-334(the)-333(mapping;)]TJ 0 g 0 G -/F27 9.9626 Tf -17.712 -13.774 Td [(mg)]TJ +/F27 9.9626 Tf -17.711 -13.774 Td [(mg)]TJ 0 g 0 G -/F8 9.9626 Tf 20.258 0 Td [(The)-333(total)-334(n)28(um)28(b)-28(er)-333(of)-333(global)-334(ro)28(ws)-333(in)-334(th)1(e)-334(mapping;)]TJ -20.258 -15.594 Td [(The)-333(output)-334(argumen)28(ts)-333(are:)]TJ +/F8 9.9626 Tf 20.257 0 Td [(The)-333(total)-334(n)28(um)28(b)-28(er)-333(of)-333(global)-334(ro)28(ws)-333(in)-334(the)-333(mapping;)]TJ -20.257 -15.594 Td [(The)-333(output)-334(argu)1(m)-1(en)28(ts)-333(are:)]TJ 0 g 0 G /F27 9.9626 Tf 0 -15.594 Td [(n)32(v)]TJ 0 g 0 G -/F8 9.9626 Tf 17.075 0 Td [(The)-333(n)27(um)28(b)-28(er)-333(of)-333(en)28(tries)-334(in)]TJ/F30 9.9626 Tf 111.637 0 Td [(pv)]TJ/F8 9.9626 Tf 10.461 0 Td [(;)]TJ +/F8 9.9626 Tf 17.075 0 Td [(The)-333(n)27(u)1(m)27(b)-27(e)-1(r)-333(of)-333(en)28(tries)-334(in)]TJ/F30 9.9626 Tf 111.637 0 Td [(pv)]TJ/F8 9.9626 Tf 10.46 0 Td [(;)]TJ 0 g 0 G -/F27 9.9626 Tf -139.173 -13.774 Td [(p)32(v)]TJ +/F27 9.9626 Tf -139.172 -13.774 Td [(p)32(v)]TJ 0 g 0 G -/F8 9.9626 Tf 17.075 0 Td [(A)-481(v)28(ector)-481(con)28(taining)-481(the)-481(indi)1(c)-1(es)-480(of)-481(the)-481(pro)-28(cesses)-481(to)-481(whic)28(h)-481(the)]TJ 1.555 -11.955 Td [(global)-468(index)-468(should)-468(b)-28(e)-468(assigend;)-536(eac)28(h)-468(en)28(try)-468(m)28(ust)-469(satisfy)-468(0)]TJ/F14 9.9626 Tf 270.508 0 Td [(\024)]TJ/F11 9.9626 Tf -270.508 -11.956 Td [(pv)]TJ/F8 9.9626 Tf 10.199 0 Td [(\050)]TJ/F11 9.9626 Tf 3.875 0 Td [(i)]TJ/F8 9.9626 Tf 3.432 0 Td [(\051)]TJ/F11 9.9626 Tf 8.603 0 Td [(<)-475(np)]TJ/F8 9.9626 Tf 23.47 0 Td [(;)-511(i)1(f)]TJ/F11 9.9626 Tf 18.163 0 Td [(nv)-511(>)]TJ/F8 9.9626 Tf 28.373 0 Td [(1)-451(w)27(e)-451(ha)28(v)27(e)-451(an)-452(in)1(dex)-452(assigned)-451(to)-452(m)28(ultiple)]TJ -96.115 -11.955 Td [(pro)-28(cesses,)-333(i.e.)-445(w)28(e)-333(ha)27(v)28(e)-333(an)-333(o)27(v)28(erlap)-333(among)-334(t)1(he)-334(sub)-28(domains.)]TJ +/F8 9.9626 Tf 17.075 0 Td [(A)-481(v)28(ector)-481(con)28(taining)-481(the)-481(ind)1(ice)-1(s)-480(of)-481(the)-481(pro)-28(cesses)-481(to)-481(whic)28(h)-481(the)]TJ 1.555 -11.955 Td [(global)-468(index)-468(should)-468(b)-28(e)-468(assigend;)-535(e)-1(ac)28(h)-468(en)28(try)-468(m)28(ust)-469(satisfy)-468(0)]TJ/F14 9.9626 Tf 270.508 0 Td [(\024)]TJ/F11 9.9626 Tf -270.508 -11.956 Td [(pv)]TJ/F8 9.9626 Tf 10.199 0 Td [(\050)]TJ/F11 9.9626 Tf 3.874 0 Td [(i)]TJ/F8 9.9626 Tf 3.433 0 Td [(\051)]TJ/F11 9.9626 Tf 8.603 0 Td [(<)-475(np)]TJ/F8 9.9626 Tf 23.47 0 Td [(;)-510(if)]TJ/F11 9.9626 Tf 18.163 0 Td [(nv)-511(>)]TJ/F8 9.9626 Tf 28.373 0 Td [(1)-451(w)27(e)-451(ha)28(v)27(e)-451(an)-452(i)1(ndex)-452(assigned)-451(to)-452(m)28(ultiple)]TJ -96.115 -11.955 Td [(pro)-28(cesses,)-333(i.e.)-445(w)28(e)-333(ha)27(v)28(e)-333(an)-333(o)27(v)28(erlap)-333(among)-333(the)-334(sub)-28(domain)1(s)-1(.)]TJ 0 g 0 G /F27 9.9626 Tf -40.548 -15.594 Td [(vg)]TJ 0 g 0 G -/F8 9.9626 Tf 16.757 0 Td [(In)-398(th)1(is)-398(case)-398(the)-397(asso)-28(ciation)-398(b)-27(e)-1(t)28(w)28(een)-398(an)-397(index)-398(and)-397(a)-398(pro)-27(ces)-1(s)-397(is)-398(sp)-28(ec-)]TJ 5.161 -11.955 Td [(i\014ed)-456(via)-456(an)-456(in)28(tege)-1(r)-456(v)28(ector)]TJ/F30 9.9626 Tf 120.743 0 Td [(vg\0501:mg\051)]TJ/F8 9.9626 Tf 41.842 0 Td [(;)-518(eac)28(h)-456(index)]TJ/F11 9.9626 Tf 59.63 0 Td [(i)]TJ/F14 9.9626 Tf 8.238 0 Td [(2)-482(f)]TJ/F8 9.9626 Tf 16.429 0 Td [(1)]TJ/F11 9.9626 Tf 6.642 0 Td [(:)-167(:)-166(:)-167(mg)]TJ/F14 9.9626 Tf 27.14 0 Td [(g)]TJ/F8 9.9626 Tf 9.526 0 Td [(is)]TJ -290.19 -11.955 Td [(assigned)-449(to)-449(pro)-28(cess)]TJ/F11 9.9626 Tf 89.776 0 Td [(v)-36(g)]TJ/F8 9.9626 Tf 10.296 0 Td [(\050)]TJ/F11 9.9626 Tf 3.875 0 Td [(i)]TJ/F8 9.9626 Tf 3.432 0 Td [(\051.)-792(The)-449(v)28(ector)]TJ/F30 9.9626 Tf 67.232 0 Td [(vg)]TJ/F8 9.9626 Tf 14.935 0 Td [(m)28(ust)-449(b)-28(e)-449(iden)28(tica)-1(l)-449(on)-449(all)]TJ -189.546 -11.955 Td [(calling)-452(pro)-28(cesses;)-513(it)1(s)-453(en)28(tries)-453(ma)28(y)-453(ha)28(v)28(e)-453(th)1(e)-453(ranges)-453(\0500)]TJ/F11 9.9626 Tf 236.604 0 Td [(:)-167(:)-166(:)-167(np)]TJ/F14 9.9626 Tf 27.281 0 Td [(\000)]TJ/F8 9.9626 Tf 10.754 0 Td [(1\051)-453(or)]TJ -274.639 -11.955 Td [(\0501)]TJ/F11 9.9626 Tf 10.516 0 Td [(:)-167(:)-166(:)-167(np)]TJ/F8 9.9626 Tf 24.276 0 Td [(\051)-347(according)-347(to)-347(the)-347(v)55(alu)1(e)-348(of)]TJ/F30 9.9626 Tf 119.292 0 Td [(flag)]TJ/F8 9.9626 Tf 20.921 0 Td [(.)-486(The)-347(size)]TJ/F11 9.9626 Tf 47.231 0 Td [(mg)]TJ/F8 9.9626 Tf 17.314 0 Td [(ma)28(y)-347(b)-28(e)-347(sp)-28(ec-)]TJ -239.55 -11.955 Td [(i\014ed)-414(via)-414(the)-415(option)1(al)-415(argumen)28(t)]TJ/F30 9.9626 Tf 142.427 0 Td [(mg)]TJ/F8 9.9626 Tf 10.461 0 Td [(;)-455(the)-414(default)-414(is)-414(to)-414(use)-415(the)-414(en)28(tire)]TJ -152.888 -11.956 Td [(v)28(ector)]TJ/F30 9.9626 Tf 29.916 0 Td [(vg)]TJ/F8 9.9626 Tf 10.46 0 Td [(,)-333(th)27(u)1(s)-334(ha)28(ving)]TJ/F30 9.9626 Tf 60.108 0 Td [(mg=size\050vg\051)]TJ/F8 9.9626 Tf 57.534 0 Td [(.)]TJ +/F8 9.9626 Tf 16.757 0 Td [(In)-398(t)1(his)-398(case)-398(the)-397(asso)-28(ciation)-398(b)-27(e)-1(t)28(w)28(een)-398(an)-397(index)-398(and)-397(a)-398(pro)-27(ces)-1(s)-397(is)-398(sp)-27(e)-1(c-)]TJ 5.161 -11.955 Td [(i\014ed)-456(via)-456(an)-456(in)28(teger)-457(v)28(ector)]TJ/F30 9.9626 Tf 120.742 0 Td [(vg\0501:mg\051)]TJ/F8 9.9626 Tf 41.843 0 Td [(;)-517(e)-1(ac)28(h)-456(index)]TJ/F11 9.9626 Tf 59.63 0 Td [(i)]TJ/F14 9.9626 Tf 8.238 0 Td [(2)-482(f)]TJ/F8 9.9626 Tf 16.429 0 Td [(1)]TJ/F11 9.9626 Tf 6.642 0 Td [(:)-167(:)-166(:)-167(mg)]TJ/F14 9.9626 Tf 27.14 0 Td [(g)]TJ/F8 9.9626 Tf 9.525 0 Td [(is)]TJ -290.189 -11.955 Td [(assigned)-449(to)-449(pro)-28(cess)]TJ/F11 9.9626 Tf 89.776 0 Td [(v)-36(g)]TJ/F8 9.9626 Tf 10.296 0 Td [(\050)]TJ/F11 9.9626 Tf 3.874 0 Td [(i)]TJ/F8 9.9626 Tf 3.433 0 Td [(\051.)-792(The)-449(v)28(ector)]TJ/F30 9.9626 Tf 67.232 0 Td [(vg)]TJ/F8 9.9626 Tf 14.935 0 Td [(m)28(ust)-449(b)-28(e)-449(iden)28(tical)-450(on)-449(all)]TJ -189.546 -11.955 Td [(calling)-452(pro)-28(cesses;)-513(i)1(ts)-453(en)28(tries)-453(ma)28(y)-453(ha)28(v)28(e)-453(t)1(he)-453(ranges)-453(\0500)]TJ/F11 9.9626 Tf 236.604 0 Td [(:)-167(:)-166(:)-167(np)]TJ/F14 9.9626 Tf 27.281 0 Td [(\000)]TJ/F8 9.9626 Tf 10.754 0 Td [(1\051)-453(or)]TJ -274.639 -11.955 Td [(\0501)]TJ/F11 9.9626 Tf 10.516 0 Td [(:)-167(:)-166(:)-167(np)]TJ/F8 9.9626 Tf 24.276 0 Td [(\051)-347(according)-347(to)-347(the)-347(v)55(alu)1(e)-348(of)]TJ/F30 9.9626 Tf 119.292 0 Td [(flag)]TJ/F8 9.9626 Tf 20.921 0 Td [(.)-486(The)-347(size)]TJ/F11 9.9626 Tf 47.231 0 Td [(mg)]TJ/F8 9.9626 Tf 17.314 0 Td [(ma)28(y)-347(b)-28(e)-347(sp)-28(ec-)]TJ -239.55 -11.955 Td [(i\014ed)-414(via)-414(the)-415(opti)1(onal)-415(argumen)28(t)]TJ/F30 9.9626 Tf 142.427 0 Td [(mg)]TJ/F8 9.9626 Tf 10.461 0 Td [(;)-455(the)-414(default)-414(is)-414(to)-414(use)-415(the)-414(en)28(tire)]TJ -152.888 -11.956 Td [(v)28(ector)]TJ/F30 9.9626 Tf 29.916 0 Td [(vg)]TJ/F8 9.9626 Tf 10.46 0 Td [(,)-333(th)27(u)1(s)-334(ha)28(ving)]TJ/F30 9.9626 Tf 60.108 0 Td [(mg=size\050vg\051)]TJ/F8 9.9626 Tf 57.534 0 Td [(.)]TJ 0 g 0 G /F27 9.9626 Tf -179.936 -15.593 Td [(vl)]TJ 0 g 0 G -/F8 9.9626 Tf 14.211 0 Td [(In)-356(this)-357(case)-356(w)28(e)-357(are)-356(sp)-28(ecifying)-356(the)-357(list)-356(of)-356(indices)]TJ/F30 9.9626 Tf 210.708 0 Td [(vl\0501:nl\051)]TJ/F8 9.9626 Tf 45.393 0 Td [(assigned)-356(to)]TJ -248.394 -11.955 Td [(the)-462(curren)28(t)-462(pro)-27(ce)-1(ss;)-526(th)28(us,)-494(the)-461(global)-462(problem)-462(size)]TJ/F11 9.9626 Tf 229.323 0 Td [(mg)]TJ/F8 9.9626 Tf 18.457 0 Td [(is)-462(giv)28(en)-462(b)28(y)]TJ -247.78 -11.956 Td [(the)-405(range)-405(of)-404(the)-405(aggregate)-405(of)-405(the)-405(in)1(dividual)-405(v)28(ectors)]TJ/F30 9.9626 Tf 233.196 0 Td [(vl)]TJ/F8 9.9626 Tf 14.494 0 Td [(sp)-28(eci\014ed)-405(in)]TJ -247.69 -11.955 Td [(the)-481(calling)-481(p)1(ro)-28(cesses.)-887(The)-481(size)-481(ma)28(y)-481(b)-28(e)-481(sp)-27(eci\014ed)-481(via)-481(the)-481(optional)]TJ 0 -11.955 Td [(argumen)28(t)]TJ/F30 9.9626 Tf 44.85 0 Td [(nl)]TJ/F8 9.9626 Tf 10.461 0 Td [(;)-373(the)-361(default)-360(is)-360(to)-360(use)-360(the)-360(en)28(tire)-361(v)28(ector)]TJ/F30 9.9626 Tf 173.727 0 Td [(vl)]TJ/F8 9.9626 Tf 10.461 0 Td [(,)-367(th)28(us)-360(ha)28(ving)]TJ/F30 9.9626 Tf -239.499 -11.955 Td [(nl=size\050vl\051)]TJ/F8 9.9626 Tf 57.534 0 Td [(.)-419(If)]TJ/F30 9.9626 Tf 16.133 0 Td [(globalcheck=.true.)]TJ/F8 9.9626 Tf 96.698 0 Td [(the)-256(subroutine)-256(will)-256(c)27(hec)28(k)-256(ho)28(w)]TJ -170.365 -11.955 Td [(man)28(y)-255(times)-255(eac)28(h)-254(en)27(try)-254(in)-255(the)-254(global)-255(index)-254(s)-1(p)1(ac)-1(e)-254(\0501)]TJ/F11 9.9626 Tf 217.24 0 Td [(:)-167(:)-166(:)-167(mg)]TJ/F8 9.9626 Tf 27.14 0 Td [(\051)-255(is)-254(sp)-28(eci\014ed)]TJ -244.38 -11.955 Td [(in)-331(the)-331(input)-331(lists)]TJ/F30 9.9626 Tf 75.842 0 Td [(vl)]TJ/F8 9.9626 Tf 10.461 0 Td [(,)-331(th)27(us)-331(all)1(o)27(wing)-331(for)-331(t)1(he)-331(prese)-1(n)1(c)-1(e)-331(of)-330(o)27(v)28(erlap)-331(in)-331(the)]TJ -86.303 -11.956 Td [(input,)-338(and)-337(c)28(hec)27(king)-337(for)-337(\134orphan")-337(indices.)-456(If)]TJ/F30 9.9626 Tf 194.743 0 Td [(globalcheck=.false.)]TJ/F8 9.9626 Tf 99.376 0 Td [(,)]TJ -294.119 -11.955 Td [(the)-409(s)-1(u)1(broutine)-410(will)-409(not)-410(c)28(hec)28(k)-410(for)-409(o)28(v)27(erlap,)-428(and)-409(ma)27(y)-409(b)-28(e)-409(signi\014can)27(tly)]TJ 0 -11.955 Td [(faster,)-362(but)-357(the)-357(user)-356(is)-357(implicitly)-357(gu)1(aran)27(teeing)-356(that)-357(there)-357(ar)1(e)-357(neither)]TJ 0 -11.955 Td [(orphan)-333(nor)-333(o)27(v)28(erlap)-333(indices.)]TJ +/F8 9.9626 Tf 14.211 0 Td [(In)-356(this)-357(case)-356(w)28(e)-357(are)-356(sp)-28(ecifying)-356(the)-357(list)-356(of)-356(indices)]TJ/F30 9.9626 Tf 210.707 0 Td [(vl\0501:nl\051)]TJ/F8 9.9626 Tf 45.394 0 Td [(assigned)-356(to)]TJ -248.394 -11.955 Td [(the)-462(curren)28(t)-462(pro)-27(ces)-1(s;)-526(th)28(us,)-494(the)-461(global)-462(problem)-462(size)]TJ/F11 9.9626 Tf 229.323 0 Td [(mg)]TJ/F8 9.9626 Tf 18.457 0 Td [(is)-462(giv)28(en)-462(b)28(y)]TJ -247.78 -11.956 Td [(the)-405(range)-405(of)-404(the)-405(aggregate)-405(of)-405(the)-405(in)1(dividual)-405(v)28(ectors)]TJ/F30 9.9626 Tf 233.196 0 Td [(vl)]TJ/F8 9.9626 Tf 14.494 0 Td [(sp)-28(eci\014ed)-405(in)]TJ -247.69 -11.955 Td [(the)-481(calling)-481(p)1(ro)-28(cesses.)-887(The)-481(size)-481(ma)28(y)-481(b)-28(e)-481(sp)-27(eci\014ed)-481(via)-481(the)-481(optional)]TJ 0 -11.955 Td [(argumen)28(t)]TJ/F30 9.9626 Tf 44.85 0 Td [(nl)]TJ/F8 9.9626 Tf 10.461 0 Td [(;)-373(the)-361(defaul)1(t)-361(is)-360(to)-360(use)-360(the)-360(en)28(tire)-361(v)28(ector)]TJ/F30 9.9626 Tf 173.727 0 Td [(vl)]TJ/F8 9.9626 Tf 10.461 0 Td [(,)-367(th)28(us)-360(ha)28(ving)]TJ/F30 9.9626 Tf -239.499 -11.955 Td [(nl=size\050vl\051)]TJ/F8 9.9626 Tf 57.534 0 Td [(.)-419(If)]TJ/F30 9.9626 Tf 16.132 0 Td [(globalcheck=.true.)]TJ/F8 9.9626 Tf 96.699 0 Td [(the)-256(subroutine)-256(will)-256(c)27(h)1(e)-1(c)28(k)-256(ho)28(w)]TJ -170.365 -11.955 Td [(man)28(y)-255(times)-255(eac)28(h)-254(en)27(try)-254(in)-255(the)-254(global)-255(index)-254(s)-1(p)1(ac)-1(e)-254(\0501)]TJ/F11 9.9626 Tf 217.24 0 Td [(:)-167(:)-166(:)-167(mg)]TJ/F8 9.9626 Tf 27.14 0 Td [(\051)-255(is)-254(sp)-28(eci\014ed)]TJ -244.38 -11.955 Td [(in)-331(the)-331(input)-331(lists)]TJ/F30 9.9626 Tf 75.842 0 Td [(vl)]TJ/F8 9.9626 Tf 10.461 0 Td [(,)-331(th)27(us)-331(all)1(o)27(wing)-331(for)-330(the)-331(prese)-1(n)1(c)-1(e)-330(of)-331(o)27(v)28(erlap)-331(in)-331(the)]TJ -86.303 -11.956 Td [(input,)-338(and)-337(c)28(hec)27(king)-337(for)-337(\134orphan")-337(indices.)-456(If)]TJ/F30 9.9626 Tf 194.743 0 Td [(globalcheck=.false.)]TJ/F8 9.9626 Tf 99.376 0 Td [(,)]TJ -294.119 -11.955 Td [(the)-409(s)-1(u)1(broutine)-410(will)-409(not)-410(c)28(hec)28(k)-410(for)-409(o)28(v)27(erlap,)-428(and)-409(ma)27(y)-409(b)-28(e)-409(signi\014can)27(tly)]TJ 0 -11.955 Td [(faster,)-362(but)-357(the)-357(user)-356(is)-357(implicitly)-356(g)-1(u)1(aran)27(teeing)-356(that)-357(there)-357(ar)1(e)-357(neither)]TJ 0 -11.955 Td [(orphan)-333(nor)-333(o)27(v)28(erlap)-333(indices.)]TJ 0 g 0 G /F27 9.9626 Tf -21.918 -15.594 Td [(lidx)]TJ 0 g 0 G @@ -13743,7 +13825,7 @@ BT 0 g 0 G /F27 9.9626 Tf -173.128 -15.593 Td [(nl)]TJ 0 g 0 G -/F8 9.9626 Tf 14.529 0 Td [(If)-307(this)-308(argumen)28(t)-307(is)-308(sp)-28(eci\014ed)-307(alone)-308(\050i.e.)-435(without)]TJ/F30 9.9626 Tf 206.41 0 Td [(vl)]TJ/F8 9.9626 Tf 10.461 0 Td [(\051)-307(the)-308(result)-307(is)-308(a)-307(gen-)]TJ -209.482 -11.956 Td [(eralized)-313(ro)27(w-blo)-27(c)27(k)-313(distribution)-313(in)-314(whic)28(h)-313(eac)27(h)-313(pro)-28(cess)]TJ/F11 9.9626 Tf 232.18 0 Td [(I)]TJ/F8 9.9626 Tf 8.284 0 Td [(gets)-313(as)-1(signed)]TJ -240.464 -11.955 Td [(a)-333(consecutiv)27(e)-333(c)28(h)28(unk)-334(of)]TJ/F11 9.9626 Tf 101.342 0 Td [(N)]TJ/F10 6.9738 Tf 8.005 -1.494 Td [(I)]TJ/F8 9.9626 Tf 7.338 1.494 Td [(=)]TJ/F11 9.9626 Tf 10.516 0 Td [(nl)]TJ/F8 9.9626 Tf 12.47 0 Td [(global)-333(indices.)]TJ +/F8 9.9626 Tf 14.529 0 Td [(If)-307(this)-308(argumen)28(t)-307(is)-308(sp)-28(eci\014ed)-307(alone)-308(\050i.)1(e)-1(.)-435(without)]TJ/F30 9.9626 Tf 206.41 0 Td [(vl)]TJ/F8 9.9626 Tf 10.461 0 Td [(\051)-307(the)-308(result)-307(is)-308(a)-307(gen-)]TJ -209.482 -11.956 Td [(eralized)-313(ro)27(w-blo)-27(c)27(k)-313(distribution)-313(in)-314(whic)28(h)-313(eac)27(h)-313(pro)-28(cess)]TJ/F11 9.9626 Tf 232.18 0 Td [(I)]TJ/F8 9.9626 Tf 8.284 0 Td [(gets)-313(as)-1(signed)]TJ -240.464 -11.955 Td [(a)-333(consecutiv)27(e)-333(c)28(h)28(unk)-334(of)]TJ/F11 9.9626 Tf 101.342 0 Td [(N)]TJ/F10 6.9738 Tf 8.005 -1.494 Td [(I)]TJ/F8 9.9626 Tf 7.338 1.494 Td [(=)]TJ/F11 9.9626 Tf 10.516 0 Td [(nl)]TJ/F8 9.9626 Tf 12.47 0 Td [(global)-333(indices.)]TJ 0 g 0 G /F27 9.9626 Tf -161.589 -15.593 Td [(repl)]TJ 0 g 0 G @@ -13753,68 +13835,68 @@ BT 0 g 0 G [-500(On)-333(exit)-334(from)-333(this)-333(routine)-333(the)-334(descriptor)-333(is)-333(in)-334(the)-333(build)-333(state.)]TJ 0 g 0 G - 154.698 -29.888 Td [(62)]TJ + 154.698 -29.888 Td [(63)]TJ 0 g 0 G ET endstream endobj -1240 0 obj +1253 0 obj << -/Length 2660 +/Length 2667 >> stream 0 g 0 G 0 g 0 G 0 g 0 G BT -/F8 9.9626 Tf 112.072 706.129 Td [(3.)]TJ +/F8 9.9626 Tf 162.881 706.129 Td [(3.)]TJ 0 g 0 G - [-500(Calling)-339(the)-339(routine)-339(with)]TJ/F30 9.9626 Tf 121.471 0 Td [(vg)]TJ/F8 9.9626 Tf 13.839 0 Td [(or)]TJ/F30 9.9626 Tf 12.262 0 Td [(parts)]TJ/F8 9.9626 Tf 29.53 0 Td [(implies)-339(that)-339(ev)28(ery)-340(pr)1(o)-28(cess)-340(will)-339(scan)]TJ -164.372 -11.955 Td [(the)-333(en)27(tire)-333(index)-333(space)-334(to)-333(\014gure)-333(out)-333(the)-334(lo)-28(cal)-333(indices.)]TJ + [-500(Calling)-339(the)-339(routine)-339(with)]TJ/F30 9.9626 Tf 121.471 0 Td [(vg)]TJ/F8 9.9626 Tf 13.839 0 Td [(or)]TJ/F30 9.9626 Tf 12.262 0 Td [(parts)]TJ/F8 9.9626 Tf 29.53 0 Td [(implies)-339(that)-339(ev)28(e)-1(ry)-339(pro)-27(cess)-340(will)-339(scan)]TJ -164.372 -11.955 Td [(the)-333(en)27(tire)-333(index)-333(space)-334(to)-333(\014gure)-333(out)-334(t)1(he)-334(lo)-28(cal)-333(indices.)]TJ 0 g 0 G -12.73 -19.926 Td [(4.)]TJ 0 g 0 G - [-500(Ov)28(erlapp)-28(ed)-333(indices)-334(are)-333(p)-28(ossible)-333(with)-333(b)-28(oth)]TJ/F30 9.9626 Tf 199.198 0 Td [(parts)]TJ/F8 9.9626 Tf 29.472 0 Td [(and)]TJ/F30 9.9626 Tf 19.372 0 Td [(vl)]TJ/F8 9.9626 Tf 13.782 0 Td [(in)28(v)28(o)-28(cations.)]TJ + [-500(Ov)28(erlapp)-28(ed)-333(indices)-334(are)-333(p)-28(ossible)-333(with)-333(b)-28(oth)]TJ/F30 9.9626 Tf 199.198 0 Td [(parts)]TJ/F8 9.9626 Tf 29.473 0 Td [(and)]TJ/F30 9.9626 Tf 19.372 0 Td [(vl)]TJ/F8 9.9626 Tf 13.781 0 Td [(in)28(v)28(o)-28(cations.)]TJ 0 g 0 G -261.824 -19.925 Td [(5.)]TJ 0 g 0 G - [-500(When)-222(the)-222(subroutine)-222(is)-223(in)28(v)28(ok)28(ed)-223(with)]TJ/F30 9.9626 Tf 170.61 0 Td [(vl)]TJ/F8 9.9626 Tf 12.675 0 Td [(in)-222(conjunction)-222(with)]TJ/F30 9.9626 Tf 84.959 0 Td [(globalcheck=.true.)]TJ/F8 9.9626 Tf 94.147 0 Td [(,)]TJ -349.661 -11.955 Td [(it)-368(will)-369(p)-28(erform)-368(a)-368(s)-1(can)-368(of)-368(the)-369(index)-368(space)-369(to)-368(searc)27(h)-368(for)-368(o)27(v)28(erlap)-368(or)-369(orp)1(han)]TJ 0 -11.955 Td [(indices.)]TJ + [-500(When)-222(the)-222(subroutine)-223(i)1(s)-223(in)28(v)28(ok)28(ed)-223(with)]TJ/F30 9.9626 Tf 170.611 0 Td [(vl)]TJ/F8 9.9626 Tf 12.674 0 Td [(in)-222(conjunction)-222(with)]TJ/F30 9.9626 Tf 84.96 0 Td [(globalcheck=.true.)]TJ/F8 9.9626 Tf 94.146 0 Td [(,)]TJ -349.661 -11.955 Td [(it)-368(will)-369(p)-28(erform)-368(a)-369(scan)-368(of)-368(the)-369(index)-368(space)-369(to)-368(searc)27(h)-368(for)-368(o)27(v)28(erlap)-368(or)-369(orph)1(an)]TJ 0 -11.955 Td [(indices.)]TJ 0 g 0 G -12.73 -19.925 Td [(6.)]TJ 0 g 0 G - [-500(When)-222(the)-222(subroutine)-222(is)-223(in)28(v)28(ok)28(ed)-223(with)]TJ/F30 9.9626 Tf 170.61 0 Td [(vl)]TJ/F8 9.9626 Tf 12.675 0 Td [(in)-222(conjunction)-222(with)]TJ/F30 9.9626 Tf 84.959 0 Td [(globalcheck=.false.)]TJ/F8 9.9626 Tf 99.377 0 Td [(,)]TJ -354.891 -11.956 Td [(no)-405(index)-405(space)-405(scan)-405(will)-405(tak)28(e)-405(place.)-660(Th)28(us)-405(it)-405(is)-405(the)-405(resp)-28(onsibilit)28(y)-405(of)-405(the)]TJ 0 -11.955 Td [(user)-419(to)-418(mak)28(e)-419(sure)-418(that)-419(the)-418(indices)-419(sp)-28(eci\014ed)-418(in)]TJ/F30 9.9626 Tf 211.319 0 Td [(vl)]TJ/F8 9.9626 Tf 14.63 0 Td [(ha)28(v)28(e)-419(neither)-418(orphans)]TJ -225.949 -11.955 Td [(nor)-333(o)28(v)27(erlaps;)-333(if)-333(this)-334(assumption)-333(fails,)-333(results)-334(will)-333(b)-28(e)-333(unpredictable.)]TJ + [-500(When)-222(the)-222(subroutine)-223(i)1(s)-223(in)28(v)28(ok)28(ed)-223(with)]TJ/F30 9.9626 Tf 170.611 0 Td [(vl)]TJ/F8 9.9626 Tf 12.674 0 Td [(in)-222(conjunction)-222(with)]TJ/F30 9.9626 Tf 84.96 0 Td [(globalcheck=.false.)]TJ/F8 9.9626 Tf 99.376 0 Td [(,)]TJ -354.891 -11.956 Td [(no)-405(index)-405(space)-405(scan)-405(will)-405(tak)28(e)-405(place.)-660(Th)28(us)-405(it)-405(is)-405(the)-405(resp)-28(onsibilit)28(y)-405(of)-405(the)]TJ 0 -11.955 Td [(user)-419(to)-418(mak)28(e)-419(sure)-418(that)-419(the)-418(indices)-419(sp)-28(eci\014ed)-418(in)]TJ/F30 9.9626 Tf 211.319 0 Td [(vl)]TJ/F8 9.9626 Tf 14.63 0 Td [(ha)28(v)28(e)-419(neither)-418(orphans)]TJ -225.949 -11.955 Td [(nor)-333(o)27(v)28(erlaps;)-333(if)-333(this)-334(assumption)-333(fails,)-333(results)-334(will)-333(b)-28(e)-333(unpredictable.)]TJ 0 g 0 G -12.73 -19.925 Td [(7.)]TJ 0 g 0 G - [-500(Orphan)-313(and)-312(o)27(v)28(erlap)-312(indices)-313(are)-313(imp)-28(ossible)-313(b)28(y)-313(construction)-312(when)-313(the)-313(sub-)]TJ 12.73 -11.955 Td [(routine)-333(is)-334(in)28(v)28(ok)28(ed)-334(with)]TJ/F30 9.9626 Tf 103.307 0 Td [(nl)]TJ/F8 9.9626 Tf 13.782 0 Td [(\050alone\051,)-333(or)]TJ/F30 9.9626 Tf 48.734 0 Td [(vg)]TJ/F8 9.9626 Tf 10.46 0 Td [(.)]TJ + [-500(Orphan)-313(and)-312(o)27(v)28(erlap)-312(indices)-313(are)-313(imp)-28(ossible)-313(b)28(y)-313(construction)-312(when)-313(the)-313(sub-)]TJ 12.73 -11.955 Td [(routine)-333(is)-334(in)28(v)28(ok)28(ed)-334(with)]TJ/F30 9.9626 Tf 103.308 0 Td [(nl)]TJ/F8 9.9626 Tf 13.781 0 Td [(\050alone\051,)-333(or)]TJ/F30 9.9626 Tf 48.734 0 Td [(vg)]TJ/F8 9.9626 Tf 10.461 0 Td [(.)]TJ 0 g 0 G - -34.315 -452.304 Td [(63)]TJ + -34.316 -452.304 Td [(64)]TJ 0 g 0 G ET endstream endobj -1250 0 obj +1263 0 obj << -/Length 7171 +/Length 7172 >> stream 0 g 0 G 0 g 0 G BT -/F16 11.9552 Tf 150.705 706.129 Td [(psb)]TJ +/F16 11.9552 Tf 99.895 706.129 Td [(psb)]TJ ET q -1 0 0 1 171.761 706.328 cm +1 0 0 1 120.951 706.328 cm []0 d 0 J 0.398 w 0 0 m 4.035 0 l S Q BT -/F16 11.9552 Tf 175.796 706.129 Td [(cdins)-375(|)-375(Comm)31(unication)-375(descriptor)-375(insert)-375(routine)]TJ +/F16 11.9552 Tf 124.986 706.129 Td [(cdins)-375(|)-375(Comm)31(unication)-375(descriptor)-375(insert)-375(routine)]TJ 0 g 0 G 0 g 0 G -/F30 9.9626 Tf -25.091 -18.389 Td [(call)-525(psb_cdins\050nz,)-525(ia,)-525(ja,)-525(desc_a,)-525(info)-525([,ila,jla]\051)]TJ 0 -11.956 Td [(call)-525(psb_cdins\050nz,ja,desc,info[,jla,mask,lidx]\051)]TJ/F8 9.9626 Tf 14.944 -20.465 Td [(This)-428(subroutine)-427(examines)-428(the)-428(edges)-428(of)-428(the)-427(graph)-428(asso)-28(ciated)-428(with)-428(t)1(he)-428(dis-)]TJ -14.944 -11.955 Td [(cretization)-481(mesh)-480(\050and)-481(isomorphic)-480(to)-481(the)-480(sparsit)27(y)-480(pattern)-481(of)-480(a)-481(lin)1(e)-1(ar)-480(system)]TJ 0 -11.955 Td [(co)-28(e\016cien)28(t)-359(matrix\051,)-366(storing)-359(them)-359(as)-359(necess)-1(ar)1(y)-360(in)28(to)-359(the)-359(comm)28(unication)-359(des)-1(crip)1(-)]TJ 0 -11.955 Td [(tor.)-506(In)-353(the)-354(\014rst)-354(form)-354(the)-354(edges)-353(are)-354(sp)-28(eci\014ed)-354(as)-354(pairs)-353(of)-354(indices)]TJ/F11 9.9626 Tf 278.053 0 Td [(ia)]TJ/F8 9.9626 Tf 8.698 0 Td [(\050)]TJ/F11 9.9626 Tf 3.875 0 Td [(i)]TJ/F8 9.9626 Tf 3.432 0 Td [(\051)]TJ/F11 9.9626 Tf 3.874 0 Td [(;)-167(j)-57(a)]TJ/F8 9.9626 Tf 14.367 0 Td [(\050)]TJ/F11 9.9626 Tf 3.874 0 Td [(i)]TJ/F8 9.9626 Tf 3.433 0 Td [(\051;)-364(the)]TJ -319.606 -11.955 Td [(starting)-394(index)]TJ/F11 9.9626 Tf 65.222 0 Td [(ia)]TJ/F8 9.9626 Tf 8.699 0 Td [(\050)]TJ/F11 9.9626 Tf 3.874 0 Td [(i)]TJ/F8 9.9626 Tf 3.432 0 Td [(\051)-394(should)-394(b)-28(elong)-394(to)-394(the)-395(cur)1(re)-1(n)28(t)-394(pro)-28(cess.)-627(In)-394(the)-394(second)-394(form)]TJ -81.227 -11.955 Td [(only)-333(the)-334(remote)-333(indices)]TJ/F11 9.9626 Tf 104.968 0 Td [(j)-57(a)]TJ/F8 9.9626 Tf 9.939 0 Td [(\050)]TJ/F11 9.9626 Tf 3.874 0 Td [(i)]TJ/F8 9.9626 Tf 3.432 0 Td [(\051)-333(are)-334(sp)-27(e)-1(ci\014ed.)]TJ +/F30 9.9626 Tf -25.091 -18.389 Td [(call)-525(psb_cdins\050nz,)-525(ia,)-525(ja,)-525(desc_a,)-525(info)-525([,ila,jla]\051)]TJ 0 -11.956 Td [(call)-525(psb_cdins\050nz,ja,desc,info[,jla,mask,lidx]\051)]TJ/F8 9.9626 Tf 14.944 -20.465 Td [(This)-428(subroutine)-427(e)-1(x)1(am)-1(in)1(e)-1(s)-427(the)-428(edges)-428(of)-428(the)-427(graph)-428(asso)-28(ciated)-428(with)-428(the)-427(dis-)]TJ -14.944 -11.955 Td [(cretization)-481(mesh)-480(\050and)-481(isomorphic)-480(to)-481(the)-480(sparsit)27(y)-480(pattern)-481(of)-480(a)-481(linear)-480(system)]TJ 0 -11.955 Td [(co)-28(e\016cien)28(t)-359(matrix\051,)-366(storing)-359(them)-359(as)-359(neces)-1(sary)-359(in)28(to)-359(the)-359(comm)28(unication)-360(d)1(e)-1(scrip-)]TJ 0 -11.955 Td [(tor.)-506(In)-354(th)1(e)-354(\014rst)-354(form)-354(the)-354(edges)-353(are)-354(sp)-28(eci\014ed)-354(as)-354(pairs)-353(of)-354(indices)]TJ/F11 9.9626 Tf 278.053 0 Td [(ia)]TJ/F8 9.9626 Tf 8.699 0 Td [(\050)]TJ/F11 9.9626 Tf 3.874 0 Td [(i)]TJ/F8 9.9626 Tf 3.432 0 Td [(\051)]TJ/F11 9.9626 Tf 3.875 0 Td [(;)-167(j)-57(a)]TJ/F8 9.9626 Tf 14.367 0 Td [(\050)]TJ/F11 9.9626 Tf 3.874 0 Td [(i)]TJ/F8 9.9626 Tf 3.432 0 Td [(\051;)-364(the)]TJ -319.606 -11.955 Td [(starting)-394(index)]TJ/F11 9.9626 Tf 65.223 0 Td [(ia)]TJ/F8 9.9626 Tf 8.698 0 Td [(\050)]TJ/F11 9.9626 Tf 3.874 0 Td [(i)]TJ/F8 9.9626 Tf 3.433 0 Td [(\051)-394(should)-394(b)-28(elong)-394(to)-394(the)-394(c)-1(u)1(rren)27(t)-394(pro)-28(cess.)-627(In)-394(the)-394(second)-394(form)]TJ -81.228 -11.955 Td [(only)-333(the)-334(remote)-333(indices)]TJ/F11 9.9626 Tf 104.968 0 Td [(j)-57(a)]TJ/F8 9.9626 Tf 9.939 0 Td [(\050)]TJ/F11 9.9626 Tf 3.874 0 Td [(i)]TJ/F8 9.9626 Tf 3.433 0 Td [(\051)-333(are)-334(sp)-27(ec)-1(i\014)1(e)-1(d)1(.)]TJ 0 g 0 G -/F27 9.9626 Tf -122.213 -20.465 Td [(T)32(yp)-32(e:)]TJ +/F27 9.9626 Tf -122.214 -20.465 Td [(T)32(yp)-32(e:)]TJ 0 g 0 G /F8 9.9626 Tf 33.797 0 Td [(Async)28(hronous.)]TJ 0 g 0 G @@ -13823,23 +13905,23 @@ BT 0 g 0 G 0 -19.344 Td [(nz)]TJ 0 g 0 G -/F8 9.9626 Tf 16.438 0 Td [(the)-333(n)27(u)1(m)27(b)-27(e)-1(r)-333(of)-333(p)-28(oin)28(ts)-333(b)-28(eing)-333(inserte)-1(d)1(.)]TJ 8.469 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.378 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf 23.073 0 Td [(.)]TJ -55.451 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf 41.898 0 Td [(.)]TJ -71.509 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.485 0 Td [(in)]TJ/F8 9.9626 Tf 9.548 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-444(an)-334(in)28(teger)-333(v)55(alue.)]TJ +/F8 9.9626 Tf 16.439 0 Td [(the)-333(n)28(um)27(b)-27(er)-334(of)-333(p)-28(oin)28(ts)-333(b)-28(eing)-333(inserted.)]TJ 8.468 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf 23.073 0 Td [(.)]TJ -55.452 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf 41.898 0 Td [(.)]TJ -71.509 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(in)28(teger)-333(v)55(alue.)]TJ 0 g 0 G /F27 9.9626 Tf -24.907 -19.344 Td [(ia)]TJ 0 g 0 G -/F8 9.9626 Tf 13.733 0 Td [(the)-333(indices)-334(of)-333(the)-333(starting)-334(v)28(ertex)-333(of)-333(the)-334(edges)-333(b)-28(eing)-333(inserted.)]TJ 11.174 -11.956 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.378 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf 23.073 0 Td [(.)]TJ -55.451 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf 41.898 0 Td [(.)]TJ -71.509 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.485 0 Td [(in)]TJ/F8 9.9626 Tf 9.548 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-444(an)-334(in)28(teger)-333(arra)27(y)-333(of)-333(length)]TJ/F11 9.9626 Tf 172.547 0 Td [(nz)]TJ/F8 9.9626 Tf 11.051 0 Td [(.)]TJ +/F8 9.9626 Tf 13.734 0 Td [(the)-333(indices)-334(of)-333(the)-333(starting)-334(v)28(ertex)-333(of)-333(the)-334(edges)-333(b)-28(eing)-333(inserted.)]TJ 11.173 -11.956 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf 23.073 0 Td [(.)]TJ -55.452 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf 41.898 0 Td [(.)]TJ -71.509 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(in)28(teger)-333(arra)27(y)-333(of)-333(length)]TJ/F11 9.9626 Tf 172.548 0 Td [(nz)]TJ/F8 9.9626 Tf 11.051 0 Td [(.)]TJ 0 g 0 G -/F27 9.9626 Tf -208.505 -19.344 Td [(ja)]TJ +/F27 9.9626 Tf -208.506 -19.344 Td [(ja)]TJ 0 g 0 G -/F8 9.9626 Tf 14.051 0 Td [(the)-333(indices)-334(of)-333(the)-333(end)-334(v)28(ertex)-333(of)-334(t)1(he)-334(edges)-333(b)-28(eing)-333(inserted.)]TJ 10.856 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.378 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf 23.073 0 Td [(.)]TJ -55.451 -11.956 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf 41.898 0 Td [(.)]TJ -71.509 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.485 0 Td [(in)]TJ/F8 9.9626 Tf 9.548 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-444(an)-334(in)28(teger)-333(arra)27(y)-333(of)-333(length)]TJ/F11 9.9626 Tf 172.547 0 Td [(nz)]TJ/F8 9.9626 Tf 11.051 0 Td [(.)]TJ +/F8 9.9626 Tf 14.052 0 Td [(the)-333(indices)-334(of)-333(the)-333(end)-334(v)28(ertex)-333(of)-333(the)-334(edges)-333(b)-28(eing)-333(inserted.)]TJ 10.855 -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 [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(in)28(teger)-333(arra)27(y)-333(of)-333(length)]TJ/F11 9.9626 Tf 172.548 0 Td [(nz)]TJ/F8 9.9626 Tf 11.051 0 Td [(.)]TJ 0 g 0 G -/F27 9.9626 Tf -208.505 -19.344 Td [(mask)]TJ +/F27 9.9626 Tf -208.506 -19.344 Td [(mask)]TJ 0 g 0 G -/F8 9.9626 Tf 30.664 0 Td [(Mask)-329(e)-1(n)28(tries)-329(in)]TJ/F30 9.9626 Tf 70.038 0 Td [(ja)]TJ/F8 9.9626 Tf 10.461 0 Td [(,)-330(they)-330(are)-329(inserted)-330(only)-329(when)-329(the)-330(corresp)-28(onding)]TJ/F30 9.9626 Tf 211.627 0 Td [(mask)]TJ/F8 9.9626 Tf -297.883 -11.955 Td [(en)28(tries)-334(are)]TJ/F30 9.9626 Tf 48.54 0 Td [(.true.)]TJ/F8 9.9626 Tf -48.54 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.378 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf 23.073 0 Td [(.)]TJ -55.451 -11.956 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(optional)]TJ/F8 9.9626 Tf 40.577 0 Td [(.)]TJ -70.188 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.485 0 Td [(in)]TJ/F8 9.9626 Tf 9.548 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(logical)-333(arra)28(y)-334(of)-333(length)]TJ/F11 9.9626 Tf 165.048 0 Td [(nz)]TJ/F8 9.9626 Tf 11.051 0 Td [(,)-333(default)]TJ/F30 9.9626 Tf 39.574 0 Td [(.true.)]TJ/F8 9.9626 Tf 31.382 0 Td [(.)]TJ +/F8 9.9626 Tf 30.664 0 Td [(Mask)-330(en)28(tries)-329(in)]TJ/F30 9.9626 Tf 70.038 0 Td [(ja)]TJ/F8 9.9626 Tf 10.461 0 Td [(,)-330(they)-330(are)-329(inserted)-330(only)-329(when)-329(the)-330(corresp)-28(onding)]TJ/F30 9.9626 Tf 211.627 0 Td [(mask)]TJ/F8 9.9626 Tf -297.883 -11.955 Td [(en)28(tries)-334(are)]TJ/F30 9.9626 Tf 48.54 0 Td [(.true.)]TJ/F8 9.9626 Tf -48.54 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf 23.073 0 Td [(.)]TJ -55.452 -11.956 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(optional)]TJ/F8 9.9626 Tf 40.577 0 Td [(.)]TJ -70.188 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(logical)-333(arra)28(y)-334(of)-333(length)]TJ/F11 9.9626 Tf 165.048 0 Td [(nz)]TJ/F8 9.9626 Tf 11.051 0 Td [(,)-333(default)]TJ/F30 9.9626 Tf 39.574 0 Td [(.true.)]TJ/F8 9.9626 Tf 31.382 0 Td [(.)]TJ 0 g 0 G /F27 9.9626 Tf -271.962 -19.344 Td [(lidx)]TJ 0 g 0 G -/F8 9.9626 Tf 23.758 0 Td [(User)-333(de\014ned)-334(lo)-27(cal)-334(indices)-333(for)]TJ/F30 9.9626 Tf 128.85 0 Td [(ja)]TJ/F8 9.9626 Tf 10.461 0 Td [(.)]TJ -138.162 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.378 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf 23.073 0 Td [(.)]TJ -55.451 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(optional)]TJ/F8 9.9626 Tf 40.577 0 Td [(.)]TJ -70.188 -11.956 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.485 0 Td [(in)]TJ/F8 9.9626 Tf 9.548 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(in)28(teger)-333(arra)27(y)-333(of)-333(length)]TJ/F11 9.9626 Tf 172.547 0 Td [(nz)]TJ/F8 9.9626 Tf 11.052 0 Td [(.)]TJ +/F8 9.9626 Tf 23.758 0 Td [(User)-333(de\014ned)-334(lo)-27(ca)-1(l)-333(indices)-333(for)]TJ/F30 9.9626 Tf 128.851 0 Td [(ja)]TJ/F8 9.9626 Tf 10.46 0 Td [(.)]TJ -138.162 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf 23.073 0 Td [(.)]TJ -55.452 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(optional)]TJ/F8 9.9626 Tf 40.577 0 Td [(.)]TJ -70.188 -11.956 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(in)28(teger)-333(arra)27(y)-333(of)-333(length)]TJ/F11 9.9626 Tf 172.548 0 Td [(nz)]TJ/F8 9.9626 Tf 11.051 0 Td [(.)]TJ 0 g 0 G /F27 9.9626 Tf -208.506 -20.465 Td [(On)-383(Return)]TJ 0 g 0 G @@ -13847,100 +13929,100 @@ BT 0 -19.344 Td [(desc)]TJ ET q -1 0 0 1 172.619 168.346 cm +1 0 0 1 121.81 168.346 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 176.057 168.146 Td [(a)]TJ +/F27 9.9626 Tf 125.247 168.146 Td [(a)]TJ 0 g 0 G -/F8 9.9626 Tf 10.55 0 Td [(the)-333(up)-28(dated)-333(comm)27(unication)-333(descriptor.)]TJ -10.996 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 27.951 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf 23.073 0 Td [(.)]TJ -51.024 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.184 0 Td [(required)]TJ/F8 9.9626 Tf 41.898 0 Td [(.)]TJ -67.082 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(inout)]TJ/F8 9.9626 Tf 26.096 0 Td [(.)]TJ -59.582 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(structured)-333(data)-333(of)-334(t)28(yp)-28(e)]TJ +/F8 9.9626 Tf 10.551 0 Td [(the)-333(up)-28(dated)-333(comm)27(unication)-333(descriptor.)]TJ -10.996 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 27.951 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf 23.073 0 Td [(.)]TJ -51.024 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.183 0 Td [(required)]TJ/F8 9.9626 Tf 41.899 0 Td [(.)]TJ -67.082 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(inout)]TJ/F8 9.9626 Tf 26.096 0 Td [(.)]TJ -59.582 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(structured)-333(data)-333(of)-334(t)28(yp)-28(e)]TJ 0 0 1 rg 0 0 1 RG /F30 9.9626 Tf 170.915 0 Td [(psb)]TJ ET q -1 0 0 1 362.845 120.525 cm +1 0 0 1 312.036 120.525 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 365.983 120.326 Td [(desc)]TJ +/F30 9.9626 Tf 315.174 120.326 Td [(desc)]TJ ET q -1 0 0 1 387.532 120.525 cm +1 0 0 1 336.723 120.525 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 390.67 120.326 Td [(type)]TJ +/F30 9.9626 Tf 339.861 120.326 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 - -94.013 -29.888 Td [(64)]TJ + -94.012 -29.888 Td [(65)]TJ 0 g 0 G ET endstream endobj -1255 0 obj +1268 0 obj << -/Length 3156 +/Length 3163 >> stream 0 g 0 G 0 g 0 G 0 g 0 G BT -/F27 9.9626 Tf 99.895 706.129 Td [(info)]TJ +/F27 9.9626 Tf 150.705 706.129 Td [(info)]TJ 0 g 0 G -/F8 9.9626 Tf 23.758 0 Td [(Error)-333(co)-28(de.)]TJ 1.149 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.956 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(out)]TJ/F8 9.9626 Tf 16.549 0 Td [(.)]TJ -50.035 -11.955 Td [(An)-333(in)28(tege)-1(r)-333(v)56(alue;)-334(0)-333(means)-333(no)-334(error)-333(has)-333(b)-28(een)-333(detecte)-1(d)1(.)]TJ +/F8 9.9626 Tf 23.758 0 Td [(Error)-333(co)-28(de.)]TJ 1.148 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.612 0 Td [(required)]TJ/F8 9.9626 Tf -29.612 -11.956 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(out)]TJ/F8 9.9626 Tf 16.549 0 Td [(.)]TJ -50.035 -11.955 Td [(An)-333(in)27(t)1(e)-1(ger)-333(v)56(alue;)-334(0)-333(means)-333(no)-334(error)-333(has)-333(b)-28(een)-333(detec)-1(ted.)]TJ 0 g 0 G -/F27 9.9626 Tf -24.907 -19.925 Td [(ila)]TJ +/F27 9.9626 Tf -24.906 -19.925 Td [(ila)]TJ 0 g 0 G -/F8 9.9626 Tf 16.916 0 Td [(the)-333(lo)-28(cal)-333(indices)-334(of)-333(the)-333(starting)-334(v)28(ertex)-333(of)-334(the)-333(edges)-333(b)-28(eing)-333(inserted.)]TJ 7.991 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf 23.073 0 Td [(.)]TJ -55.452 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(optional)]TJ/F8 9.9626 Tf 40.577 0 Td [(.)]TJ -70.188 -11.956 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(out)]TJ/F8 9.9626 Tf 16.549 0 Td [(.)]TJ -50.035 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(in)28(teger)-333(arra)27(y)-333(of)-333(length)]TJ/F11 9.9626 Tf 172.548 0 Td [(nz)]TJ/F8 9.9626 Tf 11.051 0 Td [(.)]TJ +/F8 9.9626 Tf 16.915 0 Td [(the)-333(lo)-28(cal)-333(indices)-334(of)-333(the)-333(s)-1(tar)1(ting)-334(v)28(ertex)-333(of)-334(the)-333(edges)-333(b)-28(eing)-333(inserted.)]TJ 7.991 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf 23.073 0 Td [(.)]TJ -55.452 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.612 0 Td [(optional)]TJ/F8 9.9626 Tf 40.576 0 Td [(.)]TJ -70.188 -11.956 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(out)]TJ/F8 9.9626 Tf 16.549 0 Td [(.)]TJ -50.035 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(in)28(teger)-333(arra)27(y)-333(of)-333(length)]TJ/F11 9.9626 Tf 172.548 0 Td [(nz)]TJ/F8 9.9626 Tf 11.051 0 Td [(.)]TJ 0 g 0 G -/F27 9.9626 Tf -208.506 -19.925 Td [(jla)]TJ +/F27 9.9626 Tf -208.505 -19.925 Td [(jla)]TJ 0 g 0 G -/F8 9.9626 Tf 17.234 0 Td [(the)-333(lo)-28(cal)-333(indices)-334(of)-333(the)-333(end)-334(v)28(ertex)-333(of)-334(the)-333(edges)-333(b)-28(eing)-333(inserted.)]TJ 7.673 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf 23.073 0 Td [(.)]TJ -55.452 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(optional)]TJ/F8 9.9626 Tf 40.577 0 Td [(.)]TJ -70.188 -11.956 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(out)]TJ/F8 9.9626 Tf 16.549 0 Td [(.)]TJ -50.035 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(in)28(teger)-333(arra)27(y)-333(of)-333(length)]TJ/F11 9.9626 Tf 172.548 0 Td [(nz)]TJ/F8 9.9626 Tf 11.051 0 Td [(.)]TJ/F16 11.9552 Tf -208.506 -21.918 Td [(Notes)]TJ +/F8 9.9626 Tf 17.234 0 Td [(the)-333(lo)-28(cal)-333(indices)-334(of)-333(the)-333(end)-334(v)28(ertex)-333(of)-334(the)-333(edges)-333(b)-28(eing)-333(inserted.)]TJ 7.672 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf 23.073 0 Td [(.)]TJ -55.452 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.612 0 Td [(optional)]TJ/F8 9.9626 Tf 40.576 0 Td [(.)]TJ -70.188 -11.956 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(out)]TJ/F8 9.9626 Tf 16.549 0 Td [(.)]TJ -50.035 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(in)28(teger)-333(arra)27(y)-333(of)-333(length)]TJ/F11 9.9626 Tf 172.548 0 Td [(nz)]TJ/F8 9.9626 Tf 11.051 0 Td [(.)]TJ/F16 11.9552 Tf -208.505 -21.918 Td [(Notes)]TJ 0 g 0 G -/F8 9.9626 Tf 12.177 -19.925 Td [(1.)]TJ +/F8 9.9626 Tf 12.176 -19.925 Td [(1.)]TJ 0 g 0 G - [-500(This)-333(routine)-334(ma)28(y)-333(only)-333(b)-28(e)-334(called)-333(if)-333(the)-333(des)-1(crip)1(tor)-334(is)-333(in)-333(the)-334(build)-333(state;)]TJ + [-500(This)-333(routine)-334(ma)28(y)-333(only)-333(b)-28(e)-334(called)-333(if)-333(the)-334(d)1(e)-1(scriptor)-333(is)-333(in)-333(the)-334(build)-333(state;)]TJ 0 g 0 G 0 -19.925 Td [(2.)]TJ 0 g 0 G - [-500(This)-305(r)1(o)-1(u)1(tine)-305(automatically)-304(ignores)-305(edges)-305(that)-304(do)-305(not)-304(insist)-305(on)-304(the)-305(curren)28(t)]TJ 12.73 -11.955 Td [(pro)-28(cess,)-284(i.e)-1(.)-424(edges)-272(for)-273(whic)28(h)-272(neither)-273(the)-272(starting)-272(nor)-273(the)-272(end)-273(v)28(ertex)-272(b)-28(elong)]TJ 0 -11.955 Td [(to)-333(the)-334(curren)28(t)-333(pro)-28(cess.)]TJ + [-500(This)-305(rou)1(tine)-305(automatically)-305(i)1(gnores)-305(edges)-305(that)-304(do)-305(not)-304(insist)-305(on)-304(the)-305(curren)28(t)]TJ 12.73 -11.955 Td [(pro)-28(cess,)-285(i.)1(e)-1(.)-424(edges)-272(for)-273(whic)28(h)-272(neither)-273(the)-272(starting)-272(nor)-273(the)-272(end)-273(v)28(ertex)-272(b)-28(elong)]TJ 0 -11.955 Td [(to)-333(the)-334(curren)28(t)-333(pro)-28(cess.)]TJ 0 g 0 G -12.73 -19.926 Td [(3.)]TJ 0 g 0 G - [-500(The)-437(second)-438(form)-437(of)-437(this)-437(routine)-437(will)-438(b)-27(e)-438(useful)-437(when)-437(dealing)-437(with)-438(user-)]TJ 12.73 -11.955 Td [(sp)-28(eci\014ed)-333(index)-333(mappings;)-334(see)-333(also)]TJ + [-500(The)-437(second)-438(form)-437(of)-437(this)-437(routine)-438(wil)1(l)-438(b)-27(e)-438(useful)-437(when)-437(dealing)-437(with)-438(user-)]TJ 12.73 -11.955 Td [(sp)-28(eci\014ed)-333(index)-333(mappings;)-334(see)-333(also)]TJ 0 0 1 rg 0 0 1 RG - [-334(2.)1(3.1)]TJ + [-334(2.3.1)]TJ 0 g 0 G [(.)]TJ 0 g 0 G - 141.968 -314.819 Td [(65)]TJ + 141.968 -314.819 Td [(66)]TJ 0 g 0 G ET endstream endobj -1264 0 obj +1277 0 obj << -/Length 3493 +/Length 4740 >> stream 0 g 0 G 0 g 0 G BT -/F16 11.9552 Tf 150.705 706.129 Td [(psb)]TJ +/F16 11.9552 Tf 99.895 706.129 Td [(psb)]TJ ET q -1 0 0 1 171.761 706.328 cm +1 0 0 1 120.951 706.328 cm []0 d 0 J 0.398 w 0 0 m 4.035 0 l S Q BT -/F16 11.9552 Tf 175.796 706.129 Td [(cdasb)-375(|)-375(Comm)31(unication)-375(descriptor)-375(assem)31(bly)-375(routine)]TJ +/F16 11.9552 Tf 124.986 706.129 Td [(cdasb)-375(|)-375(Comm)31(unication)-375(descriptor)-375(assem)31(bly)-375(routine)]TJ 0 g 0 G 0 g 0 G -/F30 9.9626 Tf -25.091 -18.389 Td [(call)-525(psb_cdasb\050desc_a,)-525(info\051)]TJ +/F30 9.9626 Tf -25.091 -18.389 Td [(call)-525(psb_cdasb\050desc_a,)-525(info)-525([,)-525(mold]\051)]TJ 0 g 0 G /F27 9.9626 Tf 0 -21.918 Td [(T)32(yp)-32(e:)]TJ 0 g 0 G @@ -13952,94 +14034,126 @@ BT 0 -19.925 Td [(desc)]TJ ET q -1 0 0 1 172.619 626.17 cm +1 0 0 1 121.81 626.17 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 176.057 625.971 Td [(a)]TJ +/F27 9.9626 Tf 125.247 625.971 Td [(a)]TJ 0 g 0 G -/F8 9.9626 Tf 10.55 0 Td [(the)-333(comm)27(unication)-333(descriptor.)]TJ -10.996 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 27.951 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf 23.073 0 Td [(.)]TJ -51.024 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.184 0 Td [(required)]TJ/F8 9.9626 Tf 41.898 0 Td [(.)]TJ -67.082 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(inout)]TJ/F8 9.9626 Tf 26.096 0 Td [(.)]TJ -59.582 -11.956 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(structured)-333(data)-333(of)-334(t)28(yp)-28(e)]TJ +/F8 9.9626 Tf 10.551 0 Td [(the)-333(comm)27(unication)-333(descriptor.)]TJ -10.996 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 27.951 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf 23.073 0 Td [(.)]TJ -51.024 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.183 0 Td [(required)]TJ/F8 9.9626 Tf 41.899 0 Td [(.)]TJ -67.082 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(inout)]TJ/F8 9.9626 Tf 26.096 0 Td [(.)]TJ -59.582 -11.956 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(structured)-333(data)-333(of)-334(t)28(yp)-28(e)]TJ 0 0 1 rg 0 0 1 RG /F30 9.9626 Tf 170.915 0 Td [(psb)]TJ ET q -1 0 0 1 362.845 578.35 cm +1 0 0 1 312.036 578.35 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 365.983 578.15 Td [(desc)]TJ +/F30 9.9626 Tf 315.174 578.15 Td [(desc)]TJ ET q -1 0 0 1 387.532 578.35 cm +1 0 0 1 336.723 578.35 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 390.67 578.15 Td [(type)]TJ +/F30 9.9626 Tf 339.861 578.15 Td [(type)]TJ 0 g 0 G -/F8 9.9626 Tf 20.922 0 Td [(.)]TJ +/F8 9.9626 Tf 20.921 0 Td [(.)]TJ 0 g 0 G -/F27 9.9626 Tf -260.887 -21.917 Td [(On)-383(Return)]TJ +/F27 9.9626 Tf -260.887 -19.925 Td [(mold)]TJ +0 g 0 G +/F8 9.9626 Tf 29.805 0 Td [(The)-333(desired)-334(dynamic)-333(t)28(yp)-28(e)-333(for)-334(the)-333(in)28(ternal)-333(index)-334(storage.)]TJ -4.898 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf 23.073 0 Td [(.)]TJ -55.452 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(optional)]TJ/F8 9.9626 Tf 40.577 0 Td [(.)]TJ -70.188 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.956 Td [(Sp)-28(eci\014ed)-222(as:)-389(a)-222(ob)-56(ject)-222(of)-222(t)28(yp)-28(e)-222(deriv)28(ed)-223(from)-222(\050in)28(teger\051)]TJ/F30 9.9626 Tf 219.87 0 Td [(psb)]TJ +ET +q +1 0 0 1 360.991 510.604 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +Q +BT +/F30 9.9626 Tf 364.129 510.405 Td [(T)]TJ +ET +q +1 0 0 1 369.987 510.604 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +Q +BT +/F30 9.9626 Tf 373.125 510.405 Td [(base)]TJ +ET +q +1 0 0 1 394.674 510.604 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +Q +BT +/F30 9.9626 Tf 397.813 510.405 Td [(vect)]TJ +ET +q +1 0 0 1 419.361 510.604 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +Q +BT +/F30 9.9626 Tf 422.5 510.405 Td [(type)]TJ/F8 9.9626 Tf 20.921 0 Td [(.)]TJ +0 g 0 G +/F27 9.9626 Tf -343.526 -21.918 Td [(On)-383(Return)]TJ 0 g 0 G 0 g 0 G 0 -19.926 Td [(desc)]TJ ET q -1 0 0 1 172.619 536.507 cm +1 0 0 1 121.81 468.761 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 176.057 536.307 Td [(a)]TJ +/F27 9.9626 Tf 125.247 468.561 Td [(a)]TJ 0 g 0 G -/F8 9.9626 Tf 10.55 0 Td [(the)-333(comm)27(unication)-333(descriptor.)]TJ -10.996 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 27.951 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf 23.073 0 Td [(.)]TJ -51.024 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.184 0 Td [(required)]TJ/F8 9.9626 Tf 41.898 0 Td [(.)]TJ -67.082 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(inout)]TJ/F8 9.9626 Tf 26.096 0 Td [(.)]TJ -59.582 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(structured)-333(data)-333(of)-334(t)28(yp)-28(e)]TJ +/F8 9.9626 Tf 10.551 0 Td [(the)-333(comm)27(unication)-333(descriptor.)]TJ -10.996 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 27.951 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf 23.073 0 Td [(.)]TJ -51.024 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.183 0 Td [(required)]TJ/F8 9.9626 Tf 41.899 0 Td [(.)]TJ -67.082 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(inout)]TJ/F8 9.9626 Tf 26.096 0 Td [(.)]TJ -59.582 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(structured)-333(data)-333(of)-334(t)28(yp)-28(e)]TJ 0 0 1 rg 0 0 1 RG /F30 9.9626 Tf 170.915 0 Td [(psb)]TJ ET q -1 0 0 1 362.845 488.686 cm +1 0 0 1 312.036 420.94 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 365.983 488.487 Td [(desc)]TJ +/F30 9.9626 Tf 315.174 420.741 Td [(desc)]TJ ET q -1 0 0 1 387.532 488.686 cm +1 0 0 1 336.723 420.94 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 390.67 488.487 Td [(type)]TJ +/F30 9.9626 Tf 339.861 420.741 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.926 Td [(info)]TJ 0 g 0 G -/F8 9.9626 Tf 23.758 0 Td [(Error)-333(co)-28(de.)]TJ 1.148 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.612 0 Td [(required)]TJ/F8 9.9626 Tf -29.612 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(out)]TJ/F8 9.9626 Tf 16.549 0 Td [(.)]TJ -50.035 -11.955 Td [(An)-333(in)27(t)1(e)-1(ger)-333(v)56(alue;)-334(0)-333(means)-333(no)-334(error)-333(has)-333(b)-28(een)-333(detec)-1(ted.)]TJ/F16 11.9552 Tf -24.906 -21.918 Td [(Notes)]TJ +/F8 9.9626 Tf 23.758 0 Td [(Error)-333(co)-28(de.)]TJ 1.149 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(out)]TJ/F8 9.9626 Tf 16.549 0 Td [(.)]TJ -50.035 -11.955 Td [(An)-333(in)28(tege)-1(r)-333(v)56(alue;)-334(0)-333(means)-333(no)-334(error)-333(has)-333(b)-28(een)-333(detecte)-1(d)1(.)]TJ/F16 11.9552 Tf -24.907 -21.918 Td [(Notes)]TJ 0 g 0 G -/F8 9.9626 Tf 12.176 -19.925 Td [(1.)]TJ +/F8 9.9626 Tf 12.177 -19.925 Td [(1.)]TJ 0 g 0 G [-500(On)-333(exit)-334(from)-333(this)-333(routine)-333(the)-334(descriptor)-333(is)-333(in)-334(the)-333(assem)28(bled)-334(state.)]TJ 0 g 0 G - 154.698 -288.46 Td [(66)]TJ + 154.698 -220.714 Td [(67)]TJ 0 g 0 G ET endstream endobj -1271 0 obj +1285 0 obj << -/Length 3277 +/Length 3278 >> 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 [(cdcp)31(y)-375(|)-375(Copies)-375(a)-375(comm)31(unication)-375(descriptor)]TJ +/F16 11.9552 Tf 175.796 706.129 Td [(cdcp)31(y)-375(|)-375(Copies)-375(a)-375(comm)31(unication)-375(descriptor)]TJ 0 g 0 G 0 g 0 G /F30 9.9626 Tf -25.091 -18.389 Td [(call)-525(psb_cdcpy\050desc_in,)-525(desc_out,)-525(info\051)]TJ @@ -14054,31 +14168,31 @@ BT 0 -19.925 Td [(desc)]TJ ET q -1 0 0 1 121.81 626.17 cm +1 0 0 1 172.619 626.17 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 125.247 625.971 Td [(in)]TJ +/F27 9.9626 Tf 176.057 625.971 Td [(in)]TJ 0 g 0 G -/F8 9.9626 Tf 14.529 0 Td [(the)-333(comm)27(unication)-333(descriptor.)]TJ -14.974 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 27.951 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf 23.073 0 Td [(.)]TJ -51.024 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.183 0 Td [(required)]TJ/F8 9.9626 Tf 41.899 0 Td [(.)]TJ -67.082 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.956 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(structured)-333(data)-333(of)-334(t)28(yp)-28(e)]TJ +/F8 9.9626 Tf 14.528 0 Td [(the)-333(comm)27(unication)-333(descriptor.)]TJ -14.974 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 27.951 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf 23.073 0 Td [(.)]TJ -51.024 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.184 0 Td [(required)]TJ/F8 9.9626 Tf 41.898 0 Td [(.)]TJ -67.082 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.548 0 Td [(.)]TJ -43.034 -11.956 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(structured)-333(data)-333(of)-334(t)28(yp)-28(e)]TJ 0 0 1 rg 0 0 1 RG /F30 9.9626 Tf 170.915 0 Td [(psb)]TJ ET q -1 0 0 1 312.036 578.35 cm +1 0 0 1 362.845 578.35 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 315.174 578.15 Td [(desc)]TJ +/F30 9.9626 Tf 365.983 578.15 Td [(desc)]TJ ET q -1 0 0 1 336.723 578.35 cm +1 0 0 1 387.532 578.35 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 339.861 578.15 Td [(type)]TJ +/F30 9.9626 Tf 390.67 578.15 Td [(type)]TJ 0 g 0 G -/F8 9.9626 Tf 20.921 0 Td [(.)]TJ +/F8 9.9626 Tf 20.922 0 Td [(.)]TJ 0 g 0 G /F27 9.9626 Tf -260.887 -21.917 Td [(On)-383(Return)]TJ 0 g 0 G @@ -14086,43 +14200,43 @@ BT 0 -19.926 Td [(desc)]TJ ET q -1 0 0 1 121.81 536.507 cm +1 0 0 1 172.619 536.507 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 125.247 536.307 Td [(out)]TJ +/F27 9.9626 Tf 176.057 536.307 Td [(out)]TJ 0 g 0 G -/F8 9.9626 Tf 21.53 0 Td [(the)-333(comm)27(unication)-333(descriptor)-333(cop)28(y)83(.)]TJ -21.975 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 27.951 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf 23.073 0 Td [(.)]TJ -51.024 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.183 0 Td [(required)]TJ/F8 9.9626 Tf 41.899 0 Td [(.)]TJ -67.082 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(out)]TJ/F8 9.9626 Tf 16.549 0 Td [(.)]TJ -50.035 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(structured)-333(data)-333(of)-334(t)28(yp)-28(e)]TJ +/F8 9.9626 Tf 21.53 0 Td [(the)-333(comm)27(unication)-333(descriptor)-333(cop)28(y)83(.)]TJ -21.976 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 27.951 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf 23.073 0 Td [(.)]TJ -51.024 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.184 0 Td [(required)]TJ/F8 9.9626 Tf 41.898 0 Td [(.)]TJ -67.082 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(out)]TJ/F8 9.9626 Tf 16.549 0 Td [(.)]TJ -50.035 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(structured)-333(data)-333(of)-334(t)28(yp)-28(e)]TJ 0 0 1 rg 0 0 1 RG /F30 9.9626 Tf 170.915 0 Td [(psb)]TJ ET q -1 0 0 1 312.036 488.686 cm +1 0 0 1 362.845 488.686 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 315.174 488.487 Td [(desc)]TJ +/F30 9.9626 Tf 365.983 488.487 Td [(desc)]TJ ET q -1 0 0 1 336.723 488.686 cm +1 0 0 1 387.532 488.686 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 339.861 488.487 Td [(type)]TJ +/F30 9.9626 Tf 390.67 488.487 Td [(type)]TJ 0 g 0 G -/F8 9.9626 Tf 20.921 0 Td [(.)]TJ +/F8 9.9626 Tf 20.922 0 Td [(.)]TJ 0 g 0 G /F27 9.9626 Tf -260.887 -19.926 Td [(info)]TJ 0 g 0 G -/F8 9.9626 Tf 23.758 0 Td [(Error)-333(co)-28(de.)]TJ 1.149 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(out)]TJ/F8 9.9626 Tf 16.549 0 Td [(.)]TJ -50.035 -11.955 Td [(An)-333(in)28(tege)-1(r)-333(v)56(alue;)-334(0)-333(means)-333(no)-334(error)-333(has)-333(b)-28(een)-333(detecte)-1(d)1(.)]TJ +/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 [(67)]TJ + 141.968 -330.303 Td [(68)]TJ 0 g 0 G ET endstream endobj -1277 0 obj +1290 0 obj << /Length 2243 >> @@ -14130,14 +14244,14 @@ stream 0 g 0 G 0 g 0 G BT -/F16 11.9552 Tf 150.705 706.129 Td [(psb)]TJ +/F16 11.9552 Tf 99.895 706.129 Td [(psb)]TJ ET q -1 0 0 1 171.761 706.328 cm +1 0 0 1 120.951 706.328 cm []0 d 0 J 0.398 w 0 0 m 4.035 0 l S Q BT -/F16 11.9552 Tf 175.796 706.129 Td [(cdfree)-375(|)-375(F)94(rees)-375(a)-375(comm)31(unication)-375(descriptor)]TJ +/F16 11.9552 Tf 124.986 706.129 Td [(cdfree)-375(|)-375(F)94(rees)-375(a)-375(comm)31(unication)-375(descriptor)]TJ 0 g 0 G 0 g 0 G /F30 9.9626 Tf -25.091 -18.389 Td [(call)-525(psb_cdfree\050desc_a,)-525(info\051)]TJ @@ -14152,64 +14266,64 @@ BT 0 -19.925 Td [(desc)]TJ ET q -1 0 0 1 172.619 626.17 cm +1 0 0 1 121.81 626.17 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 176.057 625.971 Td [(a)]TJ +/F27 9.9626 Tf 125.247 625.971 Td [(a)]TJ 0 g 0 G -/F8 9.9626 Tf 10.55 0 Td [(the)-333(comm)27(unication)-333(descriptor)-333(to)-334(b)-27(e)-334(freed.)]TJ -10.996 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 27.951 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf 23.073 0 Td [(.)]TJ -51.024 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.184 0 Td [(required)]TJ/F8 9.9626 Tf 41.898 0 Td [(.)]TJ -67.082 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(inout)]TJ/F8 9.9626 Tf 26.096 0 Td [(.)]TJ -59.582 -11.956 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(structured)-333(data)-333(of)-334(t)28(yp)-28(e)]TJ +/F8 9.9626 Tf 10.551 0 Td [(the)-333(comm)27(unication)-333(descriptor)-333(to)-333(b)-28(e)-334(freed.)]TJ -10.996 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 27.951 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf 23.073 0 Td [(.)]TJ -51.024 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.183 0 Td [(required)]TJ/F8 9.9626 Tf 41.899 0 Td [(.)]TJ -67.082 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(inout)]TJ/F8 9.9626 Tf 26.096 0 Td [(.)]TJ -59.582 -11.956 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(structured)-333(data)-333(of)-334(t)28(yp)-28(e)]TJ 0 0 1 rg 0 0 1 RG /F30 9.9626 Tf 170.915 0 Td [(psb)]TJ ET q -1 0 0 1 362.845 578.35 cm +1 0 0 1 312.036 578.35 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 365.983 578.15 Td [(desc)]TJ +/F30 9.9626 Tf 315.174 578.15 Td [(desc)]TJ ET q -1 0 0 1 387.532 578.35 cm +1 0 0 1 336.723 578.35 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 390.67 578.15 Td [(type)]TJ +/F30 9.9626 Tf 339.861 578.15 Td [(type)]TJ 0 g 0 G -/F8 9.9626 Tf 20.922 0 Td [(.)]TJ +/F8 9.9626 Tf 20.921 0 Td [(.)]TJ 0 g 0 G /F27 9.9626 Tf -260.887 -21.917 Td [(On)-383(Return)]TJ 0 g 0 G 0 g 0 G 0 -19.926 Td [(info)]TJ 0 g 0 G -/F8 9.9626 Tf 23.758 0 Td [(Error)-333(co)-28(de.)]TJ 1.148 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.612 0 Td [(required)]TJ/F8 9.9626 Tf -29.612 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(out)]TJ/F8 9.9626 Tf 16.549 0 Td [(.)]TJ -50.035 -11.955 Td [(An)-333(in)27(t)1(e)-1(ger)-333(v)56(alue;)-334(0)-333(means)-333(no)-334(error)-333(has)-333(b)-28(een)-333(detec)-1(ted.)]TJ +/F8 9.9626 Tf 23.758 0 Td [(Error)-333(co)-28(de.)]TJ 1.149 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(out)]TJ/F8 9.9626 Tf 16.549 0 Td [(.)]TJ -50.035 -11.955 Td [(An)-333(in)28(tege)-1(r)-333(v)56(alue;)-334(0)-333(means)-333(no)-334(error)-333(has)-333(b)-28(een)-333(detecte)-1(d)1(.)]TJ 0 g 0 G - 141.968 -398.049 Td [(68)]TJ + 141.968 -398.049 Td [(69)]TJ 0 g 0 G ET endstream endobj -1283 0 obj +1296 0 obj << -/Length 5927 +/Length 5916 >> 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 [(cdbldext)-282(|)-283(Build)-282(an)-282(ex)-1(tended)-282(comm)31(unication)-282(descrip-)]TJ -25.091 -13.948 Td [(tor)]TJ +/F16 11.9552 Tf 175.796 706.129 Td [(cdbldext)-282(|)-283(Build)-282(an)-282(extended)-283(comm)31(unication)-282(descrip-)]TJ -25.091 -13.948 Td [(tor)]TJ 0 g 0 G 0 g 0 G -/F30 9.9626 Tf 0 -19.114 Td [(call)-525(psb_cdbldext\050a,desc_a,nl,desc_out,)-525(info,)-525(extype\051)]TJ/F8 9.9626 Tf 14.944 -23.476 Td [(This)-298(subroutine)-297(builds)-298(an)-297(extended)-298(comm)28(unication)-298(descriptor,)-305(based)-297(on)-298(the)]TJ -14.944 -11.955 Td [(input)-389(descriptor)]TJ/F30 9.9626 Tf 74.288 0 Td [(desc_a)]TJ/F8 9.9626 Tf 35.261 0 Td [(and)-389(on)-390(the)-389(stencil)-389(s)-1(p)-27(eci\014ed)-390(through)-389(the)-389(input)-390(sparse)]TJ -109.549 -11.956 Td [(matrix)]TJ/F30 9.9626 Tf 32.407 0 Td [(a)]TJ/F8 9.9626 Tf 5.23 0 Td [(.)]TJ +/F30 9.9626 Tf 0 -19.114 Td [(call)-525(psb_cdbldext\050a,desc_a,nl,desc_out,)-525(info,)-525(extype\051)]TJ/F8 9.9626 Tf 14.944 -23.476 Td [(This)-298(subroutin)1(e)-298(builds)-298(an)-297(extended)-298(comm)28(unication)-298(descriptor,)-305(based)-297(on)-298(the)]TJ -14.944 -11.955 Td [(input)-389(descriptor)]TJ/F30 9.9626 Tf 74.287 0 Td [(desc_a)]TJ/F8 9.9626 Tf 35.261 0 Td [(and)-389(on)-390(the)-389(stencil)-390(sp)-27(eci\014ed)-390(through)-389(the)-389(input)-390(sparse)]TJ -109.548 -11.956 Td [(matrix)]TJ/F30 9.9626 Tf 32.406 0 Td [(a)]TJ/F8 9.9626 Tf 5.231 0 Td [(.)]TJ 0 g 0 G /F27 9.9626 Tf -37.637 -21.094 Td [(T)32(yp)-32(e:)]TJ 0 g 0 G @@ -14220,126 +14334,126 @@ BT 0 g 0 G 0 -21.484 Td [(a)]TJ 0 g 0 G -/F8 9.9626 Tf 10.551 0 Td [(A)-333(sparse)-334(matrix)-333(Scop)-28(e:)]TJ/F27 9.9626 Tf 101.176 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf 23.073 0 Td [(.)]TJ -109.893 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.183 0 Td [(required)]TJ/F8 9.9626 Tf 41.899 0 Td [(.)]TJ -67.082 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(structured)-333(data)-333(t)27(yp)-27(e.)]TJ +/F8 9.9626 Tf 10.551 0 Td [(A)-333(sparse)-334(matrix)-333(Scop)-28(e:)]TJ/F27 9.9626 Tf 101.176 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf 23.073 0 Td [(.)]TJ -109.893 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.183 0 Td [(required)]TJ/F8 9.9626 Tf 41.898 0 Td [(.)]TJ -67.081 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.485 0 Td [(in)]TJ/F8 9.9626 Tf 9.548 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-444(a)-334(structured)-333(data)-333(t)27(yp)-27(e.)]TJ 0 g 0 G /F27 9.9626 Tf -24.907 -21.484 Td [(desc)]TJ ET q -1 0 0 1 121.81 504.47 cm +1 0 0 1 172.619 504.47 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 125.247 504.27 Td [(a)]TJ +/F27 9.9626 Tf 176.057 504.27 Td [(a)]TJ 0 g 0 G -/F8 9.9626 Tf 10.551 0 Td [(the)-333(comm)27(unication)-333(descriptor.)]TJ -10.996 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 27.951 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf 23.073 0 Td [(.)]TJ -51.024 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.183 0 Td [(required)]TJ/F8 9.9626 Tf 41.899 0 Td [(.)]TJ -67.082 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(structured)-333(data)-333(of)-334(t)28(yp)-28(e)]TJ +/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 312.036 456.649 cm +1 0 0 1 362.845 456.649 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 315.174 456.45 Td [(Tspmat)]TJ +/F30 9.9626 Tf 365.983 456.45 Td [(Tspmat)]TJ ET q -1 0 0 1 347.183 456.649 cm +1 0 0 1 397.993 456.649 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 350.322 456.45 Td [(type)]TJ +/F30 9.9626 Tf 401.131 456.45 Td [(type)]TJ 0 g 0 G /F8 9.9626 Tf 20.921 0 Td [(.)]TJ 0 g 0 G -/F27 9.9626 Tf -271.348 -21.484 Td [(nl)]TJ +/F27 9.9626 Tf -271.347 -21.484 Td [(nl)]TJ 0 g 0 G -/F8 9.9626 Tf 14.529 0 Td [(the)-333(n)27(u)1(m)27(b)-27(e)-1(r)-333(of)-333(additional)-333(la)28(y)27(ers)-333(desired.)]TJ 10.378 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 27.951 0 Td [(global)]TJ/F8 9.9626 Tf 29.756 0 Td [(.)]TJ -57.707 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.183 0 Td [(required)]TJ/F8 9.9626 Tf 41.899 0 Td [(.)]TJ -67.082 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.956 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(in)28(teger)-333(v)55(alue)]TJ/F11 9.9626 Tf 130.428 0 Td [(nl)]TJ/F14 9.9626 Tf 11.916 0 Td [(\025)]TJ/F8 9.9626 Tf 10.516 0 Td [(0.)]TJ +/F8 9.9626 Tf 14.529 0 Td [(the)-333(n)28(um)27(b)-27(er)-334(of)-333(additional)-333(la)28(y)27(ers)-333(desired.)]TJ 10.377 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 27.951 0 Td [(global)]TJ/F8 9.9626 Tf 29.757 0 Td [(.)]TJ -57.708 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.184 0 Td [(required)]TJ/F8 9.9626 Tf 41.898 0 Td [(.)]TJ -67.082 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.548 0 Td [(.)]TJ -43.034 -11.956 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(in)28(teger)-333(v)55(alue)]TJ/F11 9.9626 Tf 130.428 0 Td [(nl)]TJ/F14 9.9626 Tf 11.916 0 Td [(\025)]TJ/F8 9.9626 Tf 10.516 0 Td [(0.)]TJ 0 g 0 G -/F27 9.9626 Tf -177.767 -21.483 Td [(ext)32(yp)-32(e)]TJ +/F27 9.9626 Tf -177.766 -21.483 Td [(ext)32(yp)-32(e)]TJ 0 g 0 G -/F8 9.9626 Tf 38.398 0 Td [(the)-333(kind)-334(of)-333(estension)-333(required.)]TJ -13.491 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 27.951 0 Td [(global)]TJ/F8 9.9626 Tf 29.756 0 Td [(.)]TJ -57.707 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.183 0 Td [(optional)]TJ/F8 9.9626 Tf 44.396 0 Td [(.)]TJ -69.579 -11.956 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-419(as:)-616(an)-420(in)28(teger)-419(v)55(alue)]TJ/F30 9.9626 Tf 135.566 0 Td [(psb_ovt_xhal_)]TJ/F8 9.9626 Tf 67.994 0 Td [(,)]TJ/F30 9.9626 Tf 7.159 0 Td [(psb_ovt_asov_)]TJ/F8 9.9626 Tf 67.995 0 Td [(,)-441(default:)]TJ/F30 9.9626 Tf -278.714 -11.955 Td [(psb_ovt_xhal_)]TJ +/F8 9.9626 Tf 38.397 0 Td [(the)-333(kind)-334(of)-333(estension)-333(required.)]TJ -13.491 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 27.951 0 Td [(global)]TJ/F8 9.9626 Tf 29.757 0 Td [(.)]TJ -57.708 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.184 0 Td [(optional)]TJ/F8 9.9626 Tf 44.396 0 Td [(.)]TJ -69.58 -11.956 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-419(as:)-616(an)-420(in)28(teger)-419(v)55(alue)]TJ/F30 9.9626 Tf 135.566 0 Td [(psb_ovt_xhal_)]TJ/F8 9.9626 Tf 67.995 0 Td [(,)]TJ/F30 9.9626 Tf 7.159 0 Td [(psb_ovt_asov_)]TJ/F8 9.9626 Tf 67.994 0 Td [(,)-441(default:)]TJ/F30 9.9626 Tf -278.714 -11.955 Td [(psb_ovt_xhal_)]TJ 0 g 0 G -/F27 9.9626 Tf -24.907 -23.476 Td [(On)-383(Return)]TJ +/F27 9.9626 Tf -24.906 -23.476 Td [(On)-383(Return)]TJ 0 g 0 G 0 g 0 G 0 -21.484 Td [(desc)]TJ ET q -1 0 0 1 121.81 261.126 cm +1 0 0 1 172.619 261.126 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 125.247 260.927 Td [(out)]TJ +/F27 9.9626 Tf 176.057 260.927 Td [(out)]TJ 0 g 0 G -/F8 9.9626 Tf 21.53 0 Td [(the)-333(extended)-334(comm)28(unication)-333(descriptor.)]TJ -21.975 -11.956 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 27.951 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf 23.073 0 Td [(.)]TJ -51.024 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.183 0 Td [(required)]TJ/F8 9.9626 Tf 41.899 0 Td [(.)]TJ -67.082 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(inout)]TJ/F8 9.9626 Tf 26.096 0 Td [(.)]TJ -59.582 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(structured)-333(data)-333(of)-334(t)28(yp)-28(e)]TJ +/F8 9.9626 Tf 21.53 0 Td [(the)-333(extended)-334(comm)28(unication)-333(descriptor.)]TJ -21.976 -11.956 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 27.951 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf 23.073 0 Td [(.)]TJ -51.024 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.184 0 Td [(required)]TJ/F8 9.9626 Tf 41.898 0 Td [(.)]TJ -67.082 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(inout)]TJ/F8 9.9626 Tf 26.096 0 Td [(.)]TJ -59.582 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(structured)-333(data)-333(of)-334(t)28(yp)-28(e)]TJ 0 0 1 rg 0 0 1 RG /F30 9.9626 Tf 170.915 0 Td [(psb)]TJ ET q -1 0 0 1 312.036 213.305 cm +1 0 0 1 362.845 213.305 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 315.174 213.106 Td [(desc)]TJ +/F30 9.9626 Tf 365.983 213.106 Td [(desc)]TJ ET q -1 0 0 1 336.723 213.305 cm +1 0 0 1 387.532 213.305 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 339.861 213.106 Td [(type)]TJ +/F30 9.9626 Tf 390.67 213.106 Td [(type)]TJ 0 g 0 G -/F8 9.9626 Tf 20.921 0 Td [(.)]TJ +/F8 9.9626 Tf 20.922 0 Td [(.)]TJ 0 g 0 G /F27 9.9626 Tf -260.887 -21.484 Td [(info)]TJ 0 g 0 G -/F8 9.9626 Tf 23.758 0 Td [(Error)-333(co)-28(de.)]TJ 1.149 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(out)]TJ/F8 9.9626 Tf 16.549 0 Td [(.)]TJ -50.035 -11.955 Td [(An)-333(in)28(tege)-1(r)-333(v)56(alue;)-334(0)-333(means)-333(no)-334(error)-333(has)-333(b)-28(een)-333(detecte)-1(d)1(.)]TJ/F16 11.9552 Tf -24.907 -23.476 Td [(Notes)]TJ +/F8 9.9626 Tf 23.758 0 Td [(Error)-333(co)-28(de.)]TJ 1.148 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.612 0 Td [(required)]TJ/F8 9.9626 Tf -29.612 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(out)]TJ/F8 9.9626 Tf 16.549 0 Td [(.)]TJ -50.035 -11.955 Td [(An)-333(in)27(t)1(e)-1(ger)-333(v)56(alue;)-334(0)-333(means)-333(no)-334(error)-333(has)-333(b)-28(een)-333(detec)-1(ted.)]TJ/F16 11.9552 Tf -24.906 -23.476 Td [(Notes)]TJ 0 g 0 G -/F8 9.9626 Tf 166.875 -29.888 Td [(69)]TJ +/F8 9.9626 Tf 166.874 -29.888 Td [(70)]TJ 0 g 0 G ET endstream endobj -1287 0 obj +1300 0 obj << -/Length 1587 +/Length 1591 >> stream 0 g 0 G 0 g 0 G 0 g 0 G BT -/F8 9.9626 Tf 162.881 706.129 Td [(1.)]TJ +/F8 9.9626 Tf 112.072 706.129 Td [(1.)]TJ 0 g 0 G - [-500(Sp)-28(ecifying)]TJ/F30 9.9626 Tf 60.092 0 Td [(psb_ovt_xhal_)]TJ/F8 9.9626 Tf 70.801 0 Td [(for)-282(the)]TJ/F30 9.9626 Tf 31.376 0 Td [(extype)]TJ/F8 9.9626 Tf 34.189 0 Td [(argumen)28(t)-282(the)-282(u)1(s)-1(er)-281(will)-282(obtain)-281(a)]TJ -183.728 -11.955 Td [(descriptor)-258(for)-257(a)-258(domain)-257(partition)-258(in)-257(whic)28(h)-258(the)-257(additional)-258(la)28(y)28(ers)-258(are)-257(fetc)27(hed)]TJ 0 -11.955 Td [(as)-415(part)-415(of)-415(an)-415(\050extended\051)-415(halo;)-456(ho)28(w)27(ev)28(er)-415(the)-415(index-to-pro)-28(cess)-415(mapping)-415(is)]TJ 0 -11.956 Td [(iden)28(tical)-334(to)-333(that)-333(of)-333(the)-334(base)-333(descriptor;)]TJ + [-500(Sp)-28(ecifying)]TJ/F30 9.9626 Tf 60.091 0 Td [(psb_ovt_xhal_)]TJ/F8 9.9626 Tf 70.801 0 Td [(for)-282(the)]TJ/F30 9.9626 Tf 31.377 0 Td [(extype)]TJ/F8 9.9626 Tf 34.188 0 Td [(argumen)28(t)-282(the)-282(user)-281(will)-282(obtain)-281(a)]TJ -183.727 -11.955 Td [(descriptor)-258(f)1(o)-1(r)-257(a)-258(domain)-257(partition)-258(in)-257(whic)28(h)-258(the)-257(additional)-258(la)28(y)28(ers)-258(are)-257(fetc)27(hed)]TJ 0 -11.955 Td [(as)-415(part)-415(of)-415(an)-415(\050extended\051)-415(halo;)-456(ho)28(w)27(ev)28(er)-415(the)-415(index-to-pro)-28(cess)-415(mapping)-415(is)]TJ 0 -11.956 Td [(iden)28(tical)-334(t)1(o)-334(that)-333(of)-333(the)-334(base)-333(descriptor;)]TJ 0 g 0 G -12.73 -19.925 Td [(2.)]TJ 0 g 0 G - [-500(Sp)-28(ecifying)]TJ/F30 9.9626 Tf 60.957 0 Td [(psb_ovt_asov_)]TJ/F8 9.9626 Tf 71.666 0 Td [(for)-368(the)]TJ/F30 9.9626 Tf 33.108 0 Td [(extype)]TJ/F8 9.9626 Tf 35.053 0 Td [(argumen)28(t)-369(the)-368(user)-369(will)-368(obtain)]TJ -188.054 -11.955 Td [(a)-458(descriptor)-459(with)-458(an)-458(o)28(v)27(erlapp)-27(ed)-459(decomp)-28(osition:)-694(the)-458(additional)-458(la)27(y)28(er)-458(is)]TJ 0 -11.955 Td [(aggregated)-413(to)-413(the)-414(l)1(o)-28(cal)-413(sub)-28(domain)-413(\050and)-413(th)27(u)1(s)-414(is)-413(an)-413(o)28(v)28(erlap\051,)-433(and)-413(a)-414(new)]TJ 0 -11.955 Td [(halo)-333(extending)-334(b)-27(ey)27(ond)-333(the)-333(last)-334(ad)1(ditional)-334(la)28(y)28(er)-333(is)-334(formed.)]TJ + [-500(Sp)-28(ecifying)]TJ/F30 9.9626 Tf 60.957 0 Td [(psb_ovt_asov_)]TJ/F8 9.9626 Tf 71.666 0 Td [(for)-368(the)]TJ/F30 9.9626 Tf 33.107 0 Td [(extype)]TJ/F8 9.9626 Tf 35.054 0 Td [(argumen)28(t)-369(the)-368(user)-369(will)-368(obtain)]TJ -188.054 -11.955 Td [(a)-458(descriptor)-459(with)-458(an)-458(o)28(v)27(erlapp)-27(ed)-459(decomp)-27(os)-1(iti)1(on:)-695(the)-458(additional)-458(la)27(y)28(er)-458(is)]TJ 0 -11.955 Td [(aggregated)-413(to)-413(the)-413(lo)-28(cal)-413(sub)-28(domain)-413(\050and)-413(th)28(us)-414(is)-413(an)-413(o)28(v)28(erlap\051,)-433(and)-413(a)-414(new)]TJ 0 -11.955 Td [(halo)-333(extending)-334(b)-27(ey)27(on)1(d)-334(the)-333(last)-333(additional)-334(la)28(y)28(er)-333(is)-334(formed.)]TJ 0 g 0 G - 141.968 -524.035 Td [(70)]TJ + 141.968 -524.035 Td [(71)]TJ 0 g 0 G ET endstream endobj -1295 0 obj +1308 0 obj << -/Length 4887 +/Length 4890 >> 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 [(spall)-375(|)-375(Allo)-31(cates)-375(a)-375(sparse)-375(matrix)]TJ +/F16 11.9552 Tf 175.796 706.129 Td [(spall)-375(|)-375(Allo)-31(cates)-375(a)-375(sparse)-375(matrix)]TJ 0 g 0 G 0 g 0 G /F30 9.9626 Tf -25.091 -18.389 Td [(call)-525(psb_spall\050a,)-525(desc_a,)-525(info,)-525(nnz\051)]TJ @@ -14354,99 +14468,99 @@ BT 0 -19.925 Td [(desc)]TJ ET q -1 0 0 1 121.81 626.17 cm +1 0 0 1 172.619 626.17 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 125.247 625.971 Td [(a)]TJ +/F27 9.9626 Tf 176.057 625.971 Td [(a)]TJ 0 g 0 G -/F8 9.9626 Tf 10.551 0 Td [(the)-333(comm)27(unication)-333(descriptor.)]TJ -10.996 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 27.951 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf 23.073 0 Td [(.)]TJ -51.024 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.183 0 Td [(required)]TJ/F8 9.9626 Tf 41.899 0 Td [(.)]TJ -67.082 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.956 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(structured)-333(data)-333(of)-334(t)28(yp)-28(e)]TJ +/F8 9.9626 Tf 10.55 0 Td [(the)-333(comm)27(unication)-333(descriptor.)]TJ -10.996 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 27.951 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf 23.073 0 Td [(.)]TJ -51.024 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.184 0 Td [(required)]TJ/F8 9.9626 Tf 41.898 0 Td [(.)]TJ -67.082 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.548 0 Td [(.)]TJ -43.034 -11.956 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(structured)-333(data)-333(of)-334(t)28(yp)-28(e)]TJ 0 0 1 rg 0 0 1 RG /F30 9.9626 Tf 170.915 0 Td [(psb)]TJ ET q -1 0 0 1 312.036 578.35 cm +1 0 0 1 362.845 578.35 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 315.174 578.15 Td [(desc)]TJ +/F30 9.9626 Tf 365.983 578.15 Td [(desc)]TJ ET q -1 0 0 1 336.723 578.35 cm +1 0 0 1 387.532 578.35 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 339.861 578.15 Td [(type)]TJ +/F30 9.9626 Tf 390.67 578.15 Td [(type)]TJ 0 g 0 G -/F8 9.9626 Tf 20.921 0 Td [(.)]TJ +/F8 9.9626 Tf 20.922 0 Td [(.)]TJ 0 g 0 G /F27 9.9626 Tf -260.887 -19.925 Td [(nnz)]TJ 0 g 0 G -/F8 9.9626 Tf 22.804 0 Td [(An)-309(estimate)-309(of)-308(the)-309(n)28(um)28(b)-28(er)-309(of)-309(nonzero)-27(es)-309(in)-309(the)-309(lo)-28(cal)-308(part)-309(of)-309(the)-308(as)-1(sem)28(bled)]TJ 2.103 -11.955 Td [(matrix.)]TJ 0 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(global)]TJ/F8 9.9626 Tf 29.756 0 Td [(.)]TJ -62.135 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(optional)]TJ/F8 9.9626 Tf 40.577 0 Td [(.)]TJ -70.188 -11.956 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(in)28(teger)-333(v)55(alue.)]TJ +/F8 9.9626 Tf 22.803 0 Td [(An)-309(estimate)-309(of)-308(the)-309(n)28(um)27(b)-27(er)-309(of)-309(nonzero)-28(es)-308(in)-309(the)-309(lo)-28(cal)-308(part)-309(of)-309(the)-309(assem)28(bled)]TJ 2.103 -11.955 Td [(matrix.)]TJ 0 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(global)]TJ/F8 9.9626 Tf 29.756 0 Td [(.)]TJ -62.135 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.612 0 Td [(optional)]TJ/F8 9.9626 Tf 40.576 0 Td [(.)]TJ -70.188 -11.956 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(in)28(teger)-333(v)55(alue.)]TJ 0 g 0 G -/F27 9.9626 Tf -24.907 -21.918 Td [(On)-383(Return)]TJ +/F27 9.9626 Tf -24.906 -21.918 Td [(On)-383(Return)]TJ 0 g 0 G 0 g 0 G 0 -19.925 Td [(a)]TJ 0 g 0 G -/F8 9.9626 Tf 10.551 0 Td [(the)-333(matrix)-334(to)-333(b)-28(e)-333(allo)-28(cated.)]TJ 14.356 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 27.951 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -27.951 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.183 0 Td [(required)]TJ/F8 9.9626 Tf -25.183 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(out)]TJ/F8 9.9626 Tf 16.549 0 Td [(.)]TJ -50.035 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(structured)-333(data)-333(of)-334(t)28(yp)-28(e)]TJ +/F8 9.9626 Tf 10.55 0 Td [(the)-333(matrix)-334(to)-333(b)-28(e)-333(allo)-28(cated.)]TJ 14.356 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 27.951 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -27.951 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.184 0 Td [(required)]TJ/F8 9.9626 Tf -25.184 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(out)]TJ/F8 9.9626 Tf 16.549 0 Td [(.)]TJ -50.035 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(structured)-333(data)-333(of)-334(t)28(yp)-28(e)]TJ 0 0 1 rg 0 0 1 RG /F30 9.9626 Tf 170.915 0 Td [(psb)]TJ ET q -1 0 0 1 312.036 408.985 cm +1 0 0 1 362.845 408.985 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 315.174 408.786 Td [(Tspmat)]TJ +/F30 9.9626 Tf 365.983 408.786 Td [(Tspmat)]TJ ET q -1 0 0 1 347.183 408.985 cm +1 0 0 1 397.993 408.985 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 350.322 408.786 Td [(type)]TJ +/F30 9.9626 Tf 401.131 408.786 Td [(type)]TJ 0 g 0 G /F8 9.9626 Tf 20.921 0 Td [(.)]TJ 0 g 0 G -/F27 9.9626 Tf -271.348 -19.926 Td [(info)]TJ +/F27 9.9626 Tf -271.347 -19.926 Td [(info)]TJ 0 g 0 G -/F8 9.9626 Tf 23.758 0 Td [(Error)-333(co)-28(de.)]TJ 1.149 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(out)]TJ/F8 9.9626 Tf 16.549 0 Td [(.)]TJ -50.035 -11.955 Td [(An)-333(in)28(tege)-1(r)-333(v)56(alue;)-334(0)-333(means)-333(no)-334(error)-333(has)-333(b)-28(een)-333(detecte)-1(d)1(.)]TJ/F16 11.9552 Tf -24.907 -21.918 Td [(Notes)]TJ +/F8 9.9626 Tf 23.758 0 Td [(Error)-333(co)-28(de.)]TJ 1.148 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.612 0 Td [(required)]TJ/F8 9.9626 Tf -29.612 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(out)]TJ/F8 9.9626 Tf 16.549 0 Td [(.)]TJ -50.035 -11.955 Td [(An)-333(in)27(t)1(e)-1(ger)-333(v)56(alue;)-334(0)-333(means)-333(no)-334(error)-333(has)-333(b)-28(een)-333(detec)-1(ted.)]TJ/F16 11.9552 Tf -24.906 -21.918 Td [(Notes)]TJ 0 g 0 G -/F8 9.9626 Tf 12.177 -19.925 Td [(1.)]TJ +/F8 9.9626 Tf 12.176 -19.925 Td [(1.)]TJ 0 g 0 G - [-500(On)-333(exit)-334(from)-333(this)-333(routine)-333(the)-334(sparse)-333(matrix)-333(is)-334(in)-333(the)-333(build)-334(state.)]TJ + [-500(On)-333(exit)-334(from)-333(this)-333(routine)-333(the)-334(sparse)-333(matrix)-334(i)1(s)-334(in)-333(the)-333(build)-334(state.)]TJ 0 g 0 G 0 -19.926 Td [(2.)]TJ 0 g 0 G - [-500(The)-333(descriptor)-334(ma)28(y)-333(b)-28(e)-333(in)-334(either)-333(the)-333(build)-333(or)-334(assem)28(bled)-333(state.)]TJ + [-500(The)-333(descriptor)-334(ma)28(y)-333(b)-28(e)-333(in)-334(either)-333(the)-333(build)-333(or)-334(assem)28(bled)-333(s)-1(tat)1(e)-1(.)]TJ 0 g 0 G 0 -19.925 Td [(3.)]TJ 0 g 0 G - [-500(Pro)28(viding)-307(a)-308(go)-27(o)-28(d)-307(es)-1(timate)-307(for)-307(the)-307(n)27(um)28(b)-28(er)-307(of)-307(nonzero)-28(es)]TJ/F11 9.9626 Tf 254.288 0 Td [(nnz)]TJ/F8 9.9626 Tf 20.092 0 Td [(in)-307(the)-308(assem-)]TJ -261.65 -11.955 Td [(bled)-401(m)-1(atr)1(ix)-402(ma)28(y)-402(substan)28(tially)-401(impro)27(v)28(e)-401(p)-28(erformance)-402(in)-401(the)-402(matrix)-401(build)]TJ 0 -11.955 Td [(phase,)-458(as)-433(it)-432(will)-433(reduce)-433(or)-433(eliminate)-433(the)-433(need)-432(for)-433(\050p)-28(oten)28(tially)-433(m)28(ultiple\051)]TJ 0 -11.956 Td [(data)-333(reallo)-28(cations.)]TJ + [-500(Pro)28(viding)-307(a)-308(go)-27(o)-28(d)-307(e)-1(stimate)-307(for)-307(the)-307(n)27(um)28(b)-28(er)-307(of)-307(nonzero)-28(es)]TJ/F11 9.9626 Tf 254.288 0 Td [(nnz)]TJ/F8 9.9626 Tf 20.093 0 Td [(in)-307(the)-308(assem-)]TJ -261.651 -11.955 Td [(bled)-402(matrix)-401(ma)28(y)-402(substan)28(tially)-401(impro)27(v)28(e)-401(p)-28(erformance)-402(in)-401(the)-402(matrix)-401(build)]TJ 0 -11.955 Td [(phase,)-458(as)-433(it)-432(will)-433(reduce)-433(or)-433(eliminate)-433(the)-433(need)-432(for)-433(\050p)-28(oten)28(tially)-433(m)28(ultiple\051)]TJ 0 -11.956 Td [(data)-333(reallo)-28(cations.)]TJ 0 g 0 G - 141.968 -133.042 Td [(71)]TJ + 141.968 -133.042 Td [(72)]TJ 0 g 0 G ET endstream endobj -1305 0 obj +1318 0 obj << -/Length 6453 +/Length 6436 >> stream 0 g 0 G 0 g 0 G BT -/F16 11.9552 Tf 150.705 706.129 Td [(psb)]TJ +/F16 11.9552 Tf 99.895 706.129 Td [(psb)]TJ ET q -1 0 0 1 171.761 706.328 cm +1 0 0 1 120.951 706.328 cm []0 d 0 J 0.398 w 0 0 m 4.035 0 l S Q BT -/F16 11.9552 Tf 175.796 706.129 Td [(spins)-306(|)-307(Insert)-306(a)-306(cloud)-306(of)-306(elemen)31(ts)-307(in)32(to)-306(a)-307(sparse)-306(matrix)]TJ +/F16 11.9552 Tf 124.986 706.129 Td [(spins)-306(|)-307(Insert)-306(a)-306(cloud)-306(of)-307(elemen)32(ts)-307(in)32(to)-307(a)-306(sparse)-306(matrix)]TJ 0 g 0 G 0 g 0 G /F30 9.9626 Tf -25.091 -18.647 Td [(call)-525(psb_spins\050nz,)-525(ia,)-525(ja,)-525(val,)-525(a,)-525(desc_a,)-525(info)-525([,local]\051)]TJ @@ -14460,153 +14574,153 @@ BT 0 g 0 G 0 -20.479 Td [(nz)]TJ 0 g 0 G -/F8 9.9626 Tf 16.438 0 Td [(the)-333(n)27(u)1(m)27(b)-27(e)-1(r)-333(of)-333(elemen)28(ts)-334(to)-333(b)-28(e)-333(inserted.)]TJ 8.469 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 27.95 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf 23.073 0 Td [(.)]TJ -51.024 -11.956 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.184 0 Td [(required)]TJ/F8 9.9626 Tf 41.898 0 Td [(.)]TJ -67.082 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.548 0 Td [(.)]TJ -43.034 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(in)28(teger)-333(sc)-1(alar)1(.)]TJ +/F8 9.9626 Tf 16.439 0 Td [(the)-333(n)28(um)27(b)-27(er)-334(of)-333(elemen)28(ts)-334(to)-333(b)-28(e)-333(inserted.)]TJ 8.468 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 27.951 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf 23.073 0 Td [(.)]TJ -51.024 -11.956 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.183 0 Td [(required)]TJ/F8 9.9626 Tf 41.899 0 Td [(.)]TJ -67.082 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(in)28(teger)-333(scalar.)]TJ 0 g 0 G -/F27 9.9626 Tf -24.906 -20.479 Td [(ia)]TJ +/F27 9.9626 Tf -24.907 -20.479 Td [(ia)]TJ 0 g 0 G -/F8 9.9626 Tf 13.733 0 Td [(the)-333(ro)27(w)-333(indices)-333(of)-334(th)1(e)-334(elemen)28(ts)-334(to)-333(b)-28(e)-333(inserted.)]TJ 11.173 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 27.951 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf 23.073 0 Td [(.)]TJ -51.024 -11.956 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.184 0 Td [(required)]TJ/F8 9.9626 Tf 41.898 0 Td [(.)]TJ -67.082 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.548 0 Td [(.)]TJ -43.034 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(in)28(teger)-333(arra)27(y)-333(of)-333(size)]TJ/F11 9.9626 Tf 160.98 0 Td [(nz)]TJ/F8 9.9626 Tf 11.052 0 Td [(.)]TJ +/F8 9.9626 Tf 13.734 0 Td [(the)-333(ro)28(w)-334(indices)-333(of)-333(the)-334(elemen)28(ts)-334(to)-333(b)-28(e)-333(inserted.)]TJ 11.173 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 27.951 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf 23.073 0 Td [(.)]TJ -51.024 -11.956 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.183 0 Td [(required)]TJ/F8 9.9626 Tf 41.899 0 Td [(.)]TJ -67.082 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(in)28(teger)-333(arra)27(y)-333(of)-333(size)]TJ/F11 9.9626 Tf 160.98 0 Td [(nz)]TJ/F8 9.9626 Tf 11.051 0 Td [(.)]TJ 0 g 0 G /F27 9.9626 Tf -196.938 -20.479 Td [(ja)]TJ 0 g 0 G -/F8 9.9626 Tf 14.051 0 Td [(the)-333(column)-334(indices)-333(of)-333(the)-334(elemen)28(ts)-333(to)-334(b)-27(e)-334(inserted.)]TJ 10.855 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 27.951 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf 23.073 0 Td [(.)]TJ -51.024 -11.956 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.184 0 Td [(required)]TJ/F8 9.9626 Tf 41.898 0 Td [(.)]TJ -67.082 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(in)28(teger)-333(arra)27(y)-333(of)-333(size)]TJ/F11 9.9626 Tf 160.98 0 Td [(nz)]TJ/F8 9.9626 Tf 11.051 0 Td [(.)]TJ +/F8 9.9626 Tf 14.052 0 Td [(the)-333(column)-334(indices)-333(of)-333(the)-334(elemen)28(ts)-333(to)-334(b)-27(e)-334(inserted.)]TJ 10.855 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 27.951 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf 23.073 0 Td [(.)]TJ -51.024 -11.956 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.183 0 Td [(required)]TJ/F8 9.9626 Tf 41.899 0 Td [(.)]TJ -67.082 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(in)28(teger)-333(arra)27(y)-333(of)-333(size)]TJ/F11 9.9626 Tf 160.98 0 Td [(nz)]TJ/F8 9.9626 Tf 11.051 0 Td [(.)]TJ 0 g 0 G -/F27 9.9626 Tf -196.937 -20.479 Td [(v)64(al)]TJ +/F27 9.9626 Tf -196.938 -20.479 Td [(v)64(al)]TJ 0 g 0 G -/F8 9.9626 Tf 19.143 0 Td [(the)-333(elemen)27(ts)-333(to)-333(b)-28(e)-333(inse)-1(r)1(te)-1(d)1(.)]TJ 5.763 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 27.951 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf 23.073 0 Td [(.)]TJ -51.024 -11.956 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.184 0 Td [(required)]TJ/F8 9.9626 Tf 41.898 0 Td [(.)]TJ -67.082 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-375(as:)-528(an)-375(arra)28(y)-375(of)-375(size)]TJ/F11 9.9626 Tf 130.933 0 Td [(nz)]TJ/F8 9.9626 Tf 11.051 0 Td [(.)-570(Must)-375(b)-28(e)-375(of)-375(the)-375(same)-375(t)28(yp)-28(e)-375(and)-375(kind)-375(of)]TJ -141.984 -11.955 Td [(the)-333(co)-28(e\016cien)27(ts)-333(of)-333(the)-334(spar)1(s)-1(e)-333(matrix)]TJ/F11 9.9626 Tf 158.517 0 Td [(a)]TJ/F8 9.9626 Tf 5.266 0 Td [(.)]TJ +/F8 9.9626 Tf 19.144 0 Td [(the)-333(elemen)27(ts)-333(to)-333(b)-28(e)-333(inserted.)]TJ 5.763 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 27.951 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf 23.073 0 Td [(.)]TJ -51.024 -11.956 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.183 0 Td [(required)]TJ/F8 9.9626 Tf 41.899 0 Td [(.)]TJ -67.082 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-375(as:)-528(an)-375(arra)28(y)-375(of)-375(size)]TJ/F11 9.9626 Tf 130.933 0 Td [(nz)]TJ/F8 9.9626 Tf 11.051 0 Td [(.)-570(Must)-375(b)-28(e)-375(of)-375(the)-375(same)-375(t)28(yp)-28(e)-375(and)-375(kind)-375(of)]TJ -141.984 -11.955 Td [(the)-333(co)-28(e\016cien)28(ts)-334(of)-333(the)-333(s)-1(p)1(ars)-1(e)-333(matrix)]TJ/F11 9.9626 Tf 158.517 0 Td [(a)]TJ/F8 9.9626 Tf 5.266 0 Td [(.)]TJ 0 g 0 G -/F27 9.9626 Tf -188.689 -20.479 Td [(desc)]TJ +/F27 9.9626 Tf -188.69 -20.479 Td [(desc)]TJ ET q -1 0 0 1 172.619 339.234 cm +1 0 0 1 121.81 339.234 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 176.057 339.035 Td [(a)]TJ +/F27 9.9626 Tf 125.247 339.035 Td [(a)]TJ 0 g 0 G -/F8 9.9626 Tf 10.55 0 Td [(The)-333(comm)27(unication)-333(descriptor.)]TJ -10.996 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf 23.073 0 Td [(.)]TJ -55.452 -11.956 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.612 0 Td [(required)]TJ/F8 9.9626 Tf 41.898 0 Td [(.)]TJ -71.51 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(inout)]TJ/F8 9.9626 Tf 26.096 0 Td [(.)]TJ -59.582 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(v)56(ariable)-334(of)-333(t)28(yp)-28(e)]TJ +/F8 9.9626 Tf 10.551 0 Td [(The)-333(comm)27(unication)-333(descriptor.)]TJ -10.996 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 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)-333(as:)-445(a)-333(v)56(ariable)-334(of)-333(t)28(yp)-28(e)]TJ 0 0 1 rg 0 0 1 RG -/F30 9.9626 Tf 137.347 0 Td [(psb)]TJ +/F30 9.9626 Tf 137.346 0 Td [(psb)]TJ ET q -1 0 0 1 329.276 291.413 cm +1 0 0 1 278.467 291.413 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 332.415 291.214 Td [(desc)]TJ +/F30 9.9626 Tf 281.605 291.214 Td [(desc)]TJ ET q -1 0 0 1 353.964 291.413 cm +1 0 0 1 303.154 291.413 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 357.102 291.214 Td [(type)]TJ +/F30 9.9626 Tf 306.292 291.214 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 -227.318 -32.434 Td [(lo)-32(cal)]TJ +/F27 9.9626 Tf -227.319 -32.434 Td [(lo)-32(cal)]TJ 0 g 0 G -/F8 9.9626 Tf 28.054 0 Td [(Whether)-465(the)-464(en)27(tries)-464(in)-465(the)-465(ind)1(ic)-1(es)-464(v)28(e)-1(ctors)]TJ/F30 9.9626 Tf 194.825 0 Td [(ia)]TJ/F8 9.9626 Tf 10.461 0 Td [(,)]TJ/F30 9.9626 Tf 7.724 0 Td [(ja)]TJ/F8 9.9626 Tf 15.09 0 Td [(are)-465(already)-464(in)-465(lo)-28(cal)]TJ -231.248 -11.956 Td [(n)28(um)28(b)-28(ering.)]TJ 0 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 27.951 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf 23.073 0 Td [(.)]TJ -51.024 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.184 0 Td [(optional)]TJ/F8 9.9626 Tf 40.577 0 Td [(.)]TJ -65.761 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(logical)-333(v)55(alue;)-333(default:)]TJ/F30 9.9626 Tf 163.056 0 Td [(.false.)]TJ/F8 9.9626 Tf 36.612 0 Td [(.)]TJ +/F8 9.9626 Tf 28.055 0 Td [(Whether)-465(the)-464(en)27(tr)1(ie)-1(s)-464(in)-465(the)-465(in)1(dice)-1(s)-464(v)28(ec)-1(tor)1(s)]TJ/F30 9.9626 Tf 194.825 0 Td [(ia)]TJ/F8 9.9626 Tf 10.461 0 Td [(,)]TJ/F30 9.9626 Tf 7.724 0 Td [(ja)]TJ/F8 9.9626 Tf 15.09 0 Td [(are)-465(already)-464(in)-465(lo)-28(cal)]TJ -231.248 -11.956 Td [(n)28(um)28(b)-28(ering.)]TJ 0 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 27.951 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf 23.073 0 Td [(.)]TJ -51.024 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.183 0 Td [(optional)]TJ/F8 9.9626 Tf 40.577 0 Td [(.)]TJ -65.76 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(logical)-333(v)55(alue;)-333(default:)]TJ/F30 9.9626 Tf 163.056 0 Td [(.false.)]TJ/F8 9.9626 Tf 36.612 0 Td [(.)]TJ 0 g 0 G -/F27 9.9626 Tf -224.574 -22.333 Td [(On)-383(Return)]TJ +/F27 9.9626 Tf -224.575 -22.333 Td [(On)-383(Return)]TJ 0 g 0 G 0 g 0 G 0 -20.48 Td [(a)]TJ 0 g 0 G -/F8 9.9626 Tf 10.55 0 Td [(the)-333(matrix)-334(in)28(to)-333(whic)28(h)-334(elemen)28(ts)-333(will)-334(b)-27(e)-334(inserted.)]TJ 14.356 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 27.951 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -27.951 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.184 0 Td [(required)]TJ/F8 9.9626 Tf -25.184 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(inout)]TJ/F8 9.9626 Tf 26.096 0 Td [(.)]TJ -59.582 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(structured)-333(data)-333(of)-334(t)28(yp)-28(e)]TJ +/F8 9.9626 Tf 10.551 0 Td [(the)-333(matrix)-334(in)28(to)-333(whic)28(h)-334(elemen)28(ts)-333(will)-334(b)-27(e)-334(inserted.)]TJ 14.356 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 27.951 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -27.951 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.183 0 Td [(required)]TJ/F8 9.9626 Tf -25.183 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(inout)]TJ/F8 9.9626 Tf 26.096 0 Td [(.)]TJ -59.582 -11.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 120.525 cm +1 0 0 1 312.036 120.525 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 365.983 120.326 Td [(Tspmat)]TJ +/F30 9.9626 Tf 315.174 120.326 Td [(Tspmat)]TJ ET q -1 0 0 1 397.993 120.525 cm +1 0 0 1 347.183 120.525 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 401.131 120.326 Td [(type)]TJ +/F30 9.9626 Tf 350.322 120.326 Td [(type)]TJ 0 g 0 G /F8 9.9626 Tf 20.921 0 Td [(.)]TJ 0 g 0 G - -104.473 -29.888 Td [(72)]TJ + -104.473 -29.888 Td [(73)]TJ 0 g 0 G ET endstream endobj -1309 0 obj +1323 0 obj << -/Length 6087 +/Length 6086 >> stream 0 g 0 G 0 g 0 G 0 g 0 G BT -/F27 9.9626 Tf 99.895 706.129 Td [(desc)]TJ +/F27 9.9626 Tf 150.705 706.129 Td [(desc)]TJ ET q -1 0 0 1 121.81 706.328 cm +1 0 0 1 172.619 706.328 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 125.247 706.129 Td [(a)]TJ +/F27 9.9626 Tf 176.057 706.129 Td [(a)]TJ 0 g 0 G -/F8 9.9626 Tf 10.551 0 Td [(The)-333(comm)27(unication)-333(descriptor.)]TJ -10.996 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf 23.073 0 Td [(.)]TJ -55.452 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf 41.898 0 Td [(.)]TJ -71.509 -11.956 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(inout)]TJ/F8 9.9626 Tf 26.096 0 Td [(.)]TJ -59.582 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(v)56(ariable)-334(of)-333(t)28(yp)-28(e)]TJ +/F8 9.9626 Tf 10.55 0 Td [(The)-333(comm)27(unication)-333(descriptor.)]TJ -10.996 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf 23.073 0 Td [(.)]TJ -55.452 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.612 0 Td [(required)]TJ/F8 9.9626 Tf 41.898 0 Td [(.)]TJ -71.51 -11.956 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(inout)]TJ/F8 9.9626 Tf 26.096 0 Td [(.)]TJ -59.582 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(v)56(ariable)-334(of)-333(t)28(yp)-28(e)]TJ 0 0 1 rg 0 0 1 RG -/F30 9.9626 Tf 137.346 0 Td [(psb)]TJ +/F30 9.9626 Tf 137.347 0 Td [(psb)]TJ ET q -1 0 0 1 278.467 658.507 cm +1 0 0 1 329.276 658.507 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 281.605 658.308 Td [(desc)]TJ +/F30 9.9626 Tf 332.415 658.308 Td [(desc)]TJ ET q -1 0 0 1 303.154 658.507 cm +1 0 0 1 353.964 658.507 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 306.292 658.308 Td [(type)]TJ +/F30 9.9626 Tf 357.102 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 -227.319 -31.88 Td [(info)]TJ +/F27 9.9626 Tf -227.318 -31.88 Td [(info)]TJ 0 g 0 G -/F8 9.9626 Tf 23.758 0 Td [(Error)-333(co)-28(de.)]TJ 1.149 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.956 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(out)]TJ/F8 9.9626 Tf 16.549 0 Td [(.)]TJ -50.035 -11.955 Td [(An)-333(in)28(tege)-1(r)-333(v)56(alue;)-334(0)-333(means)-333(no)-334(error)-333(has)-333(b)-28(een)-333(detecte)-1(d)1(.)]TJ/F16 11.9552 Tf -24.907 -21.918 Td [(Notes)]TJ +/F8 9.9626 Tf 23.758 0 Td [(Error)-333(co)-28(de.)]TJ 1.148 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.956 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.612 0 Td [(required)]TJ/F8 9.9626 Tf -29.612 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(out)]TJ/F8 9.9626 Tf 16.549 0 Td [(.)]TJ -50.035 -11.955 Td [(An)-333(in)27(t)1(e)-1(ger)-333(v)56(alue;)-334(0)-333(means)-333(no)-334(error)-333(has)-333(b)-28(een)-333(detec)-1(ted.)]TJ/F16 11.9552 Tf -24.906 -21.918 Td [(Notes)]TJ 0 g 0 G -/F8 9.9626 Tf 12.177 -19.925 Td [(1.)]TJ +/F8 9.9626 Tf 12.176 -19.925 Td [(1.)]TJ 0 g 0 G [-500(On)-487(en)28(try)-487(to)-488(this)-487(routine)-487(the)-487(descriptor)-487(ma)28(y)-488(b)-27(e)-488(in)-487(either)-487(the)-487(build)-487(or)]TJ 12.73 -11.955 Td [(assem)28(bled)-334(state.)]TJ 0 g 0 G -12.73 -19.925 Td [(2.)]TJ 0 g 0 G - [-500(On)-363(en)28(try)-362(to)-363(this)-363(routine)-362(the)-363(sparse)-363(matrix)-363(ma)28(y)-363(b)-27(e)-363(in)-363(either)-362(the)-363(build)-363(or)]TJ 12.73 -11.956 Td [(up)-28(date)-333(state.)]TJ + [-500(On)-363(en)28(try)-363(to)-362(this)-363(routine)-362(the)-363(sparse)-363(matrix)-363(ma)28(y)-363(b)-27(e)-363(in)-363(either)-362(the)-363(build)-363(or)]TJ 12.73 -11.956 Td [(up)-28(date)-333(state.)]TJ 0 g 0 G -12.73 -19.925 Td [(3.)]TJ 0 g 0 G - [-500(If)-230(the)-231(descriptor)-230(is)-231(in)-230(the)-231(build)-230(state,)-251(then)-231(the)-230(sparse)-231(matrix)-230(m)28(ust)-231(also)-230(b)-28(e)-231(in)]TJ 12.73 -11.955 Td [(the)-327(build)-327(state;)-329(the)-328(action)-327(of)-327(the)-327(routine)-327(is)-327(to)-327(\050implicitly\051)-327(call)]TJ/F30 9.9626 Tf 271.731 0 Td [(psb_cdins)]TJ/F8 9.9626 Tf -271.731 -11.955 Td [(to)-419(add)-419(en)28(tries)-419(to)-419(th)1(e)-419(sparsit)27(y)-418(pattern;)-462(eac)28(h)-419(sparse)-419(matrix)-419(en)28(try)-419(implic-)]TJ 0 -11.955 Td [(itly)-359(de\014nes)-360(a)-360(grap)1(h)-360(edge,)-366(that)-360(is)-359(passed)-360(to)-359(the)-360(descriptor)-359(routine)-360(for)-359(the)]TJ 0 -11.956 Td [(appropriate)-333(pro)-28(cessing;)]TJ + [-500(If)-230(the)-231(descriptor)-230(is)-231(in)-230(the)-231(build)-230(state,)-251(then)-231(the)-230(sparse)-231(matrix)-230(m)28(ust)-231(also)-230(b)-28(e)-231(in)]TJ 12.73 -11.955 Td [(the)-327(build)-327(state;)-329(the)-328(action)-327(of)-327(the)-327(routine)-327(is)-327(to)-327(\050implicitly\051)-327(call)]TJ/F30 9.9626 Tf 271.732 0 Td [(psb_cdins)]TJ/F8 9.9626 Tf -271.732 -11.955 Td [(to)-419(add)-419(en)28(tries)-419(to)-419(the)-418(sparsit)27(y)-418(pattern;)-462(eac)28(h)-419(sparse)-419(matrix)-419(en)28(try)-419(implic-)]TJ 0 -11.955 Td [(itly)-360(d)1(e)-1(\014)1(nes)-360(a)-360(graph)-359(edge,)-366(that)-360(is)-359(passed)-360(to)-359(the)-360(descriptor)-359(routine)-360(for)-359(the)]TJ 0 -11.956 Td [(appropriate)-333(pro)-28(cessing;)]TJ 0 g 0 G -12.73 -19.925 Td [(4.)]TJ 0 g 0 G - [-500(The)-540(co)-28(e\016cien)28(ts)-541(to)-540(b)-28(e)-540(inserted)-540(are)-541(represen)28(ted)-540(b)28(y)-541(the)-540(ordered)-540(triples)]TJ/F11 9.9626 Tf 12.73 -11.955 Td [(ia)]TJ/F8 9.9626 Tf 8.698 0 Td [(\050)]TJ/F11 9.9626 Tf 3.875 0 Td [(i)]TJ/F8 9.9626 Tf 3.432 0 Td [(\051)]TJ/F11 9.9626 Tf 3.874 0 Td [(;)-167(j)-57(a)]TJ/F8 9.9626 Tf 14.367 0 Td [(\050)]TJ/F11 9.9626 Tf 3.875 0 Td [(i)]TJ/F8 9.9626 Tf 3.432 0 Td [(\051)]TJ/F11 9.9626 Tf 3.874 0 Td [(;)-167(v)-36(al)]TJ/F8 9.9626 Tf 18.049 0 Td [(\050)]TJ/F11 9.9626 Tf 3.875 0 Td [(i)]TJ/F8 9.9626 Tf 3.432 0 Td [(\051,)-503(for)]TJ/F11 9.9626 Tf 28.256 0 Td [(i)]TJ/F8 9.9626 Tf 8.455 0 Td [(=)-504(1)]TJ/F11 9.9626 Tf 17.753 0 Td [(;)-167(:)-166(:)-167(:)-167(;)-166(nz)]TJ/F8 9.9626 Tf 33.19 0 Td [(;)-537(these)-469(triples)-469(s)-1(h)1(ould)-470(b)-27(elong)-469(to)-470(the)]TJ -158.437 -11.955 Td [(curren)28(t)-351(pro)-28(cess,)-356(i.e.)]TJ/F11 9.9626 Tf 90.238 0 Td [(ia)]TJ/F8 9.9626 Tf 8.698 0 Td [(\050)]TJ/F11 9.9626 Tf 3.875 0 Td [(i)]TJ/F8 9.9626 Tf 3.432 0 Td [(\051)-351(should)-351(b)-28(e)-351(one)-351(of)-352(the)-351(lo)-28(cal)-351(indices,)-355(but)-352(ar)1(e)-352(oth-)]TJ -106.243 -11.955 Td [(erwise)-333(arbitrary;)]TJ + [-500(The)-540(co)-28(e\016cien)28(ts)-541(to)-540(b)-28(e)-540(inserted)-540(are)-541(represen)28(ted)-540(b)28(y)-541(the)-540(ordered)-540(triples)]TJ/F11 9.9626 Tf 12.73 -11.955 Td [(ia)]TJ/F8 9.9626 Tf 8.699 0 Td [(\050)]TJ/F11 9.9626 Tf 3.874 0 Td [(i)]TJ/F8 9.9626 Tf 3.432 0 Td [(\051)]TJ/F11 9.9626 Tf 3.875 0 Td [(;)-167(j)-57(a)]TJ/F8 9.9626 Tf 14.367 0 Td [(\050)]TJ/F11 9.9626 Tf 3.874 0 Td [(i)]TJ/F8 9.9626 Tf 3.432 0 Td [(\051)]TJ/F11 9.9626 Tf 3.875 0 Td [(;)-167(v)-36(al)]TJ/F8 9.9626 Tf 18.049 0 Td [(\050)]TJ/F11 9.9626 Tf 3.874 0 Td [(i)]TJ/F8 9.9626 Tf 3.433 0 Td [(\051,)-503(for)]TJ/F11 9.9626 Tf 28.256 0 Td [(i)]TJ/F8 9.9626 Tf 8.455 0 Td [(=)-504(1)]TJ/F11 9.9626 Tf 17.752 0 Td [(;)-167(:)-166(:)-167(:)-167(;)-166(nz)]TJ/F8 9.9626 Tf 33.191 0 Td [(;)-537(these)-469(triples)-469(should)-470(b)-27(elong)-469(to)-470(the)]TJ -158.438 -11.955 Td [(curren)28(t)-351(pro)-28(cess,)-356(i.e.)]TJ/F11 9.9626 Tf 90.238 0 Td [(ia)]TJ/F8 9.9626 Tf 8.699 0 Td [(\050)]TJ/F11 9.9626 Tf 3.874 0 Td [(i)]TJ/F8 9.9626 Tf 3.433 0 Td [(\051)-351(should)-351(b)-28(e)-351(one)-351(of)-352(the)-351(lo)-28(cal)-351(indices,)-355(but)-351(are)-352(oth-)]TJ -106.244 -11.955 Td [(erwise)-333(arbitrary;)]TJ 0 g 0 G -12.73 -19.926 Td [(5.)]TJ 0 g 0 G - [-500(There)-386(is)-385(no)-386(requiremen)28(t)-386(that)-386(a)-385(giv)28(en)-386(ro)28(w)-386(m)28(ust)-386(b)-28(e)-385(passe)-1(d)-385(in)-386(its)-385(e)-1(n)28(tiret)28(y)]TJ 12.73 -11.955 Td [(to)-355(a)-354(single)-355(call)-354(to)-355(this)-354(routine:)-487(the)-355(buildup)-354(of)-355(a)-354(ro)28(w)-355(ma)28(y)-355(b)-28(e)-354(split)-355(in)28(to)-354(as)]TJ 0 -11.955 Td [(man)28(y)-334(calls)-333(as)-333(desired;)]TJ + [-500(There)-386(is)-385(no)-386(requiremen)28(t)-386(that)-386(a)-385(giv)28(e)-1(n)-385(ro)28(w)-386(m)28(ust)-386(b)-28(e)-385(pass)-1(ed)-385(in)-386(its)-386(en)28(tiret)28(y)]TJ 12.73 -11.955 Td [(to)-355(a)-354(single)-355(call)-354(to)-355(this)-354(routine:)-487(the)-355(buildup)-354(of)-355(a)-354(ro)28(w)-355(ma)28(y)-355(b)-28(e)-354(split)-355(in)28(to)-355(as)]TJ 0 -11.955 Td [(man)28(y)-334(calls)-333(as)-333(desired;)]TJ 0 g 0 G -12.73 -19.925 Td [(6.)]TJ 0 g 0 G - [-500(Co)-28(e\016cien)28(ts)-409(from)-410(di\013eren)28(t)-409(ro)28(ws)-410(ma)28(y)-409(also)-409(b)-28(e)-409(mixed)-410(up)-409(freely)-409(in)-409(a)-410(single)]TJ 12.73 -11.956 Td [(call,)-333(according)-334(to)-333(the)-333(application)-333(nee)-1(d)1(s)-1(;)]TJ + [-500(Co)-28(e\016cien)28(ts)-409(from)-410(di\013eren)28(t)-409(ro)28(ws)-410(ma)28(y)-409(also)-409(b)-28(e)-409(m)-1(i)1(xe)-1(d)-409(up)-409(freely)-409(in)-409(a)-410(single)]TJ 12.73 -11.956 Td [(call,)-333(according)-334(to)-333(the)-333(application)-334(n)1(e)-1(eds;)]TJ 0 g 0 G -12.73 -19.925 Td [(7.)]TJ 0 g 0 G - [-500(An)28(y)-416(co)-28(e\016cien)28(ts)-416(from)-416(matrix)-416(ro)28(ws)-416(not)-416(o)28(wned)-416(b)28(y)-416(the)-416(calling)-416(pro)-28(cess)-416(are)]TJ 12.73 -11.955 Td [(silen)28(tly)-334(i)1(g)-1(n)1(ored;)]TJ + [-500(An)28(y)-416(co)-28(e\016cien)28(ts)-416(from)-416(matrix)-416(ro)28(ws)-416(not)-416(o)28(wned)-416(b)28(y)-416(the)-416(calling)-416(pro)-28(cess)-416(are)]TJ 12.73 -11.955 Td [(silen)28(tly)-334(ignor)1(e)-1(d)1(;)]TJ 0 g 0 G -12.73 -19.925 Td [(8.)]TJ 0 g 0 G @@ -14614,30 +14728,30 @@ BT 0 g 0 G -12.73 -19.925 Td [(9.)]TJ 0 g 0 G - [-500(If)-309(th)1(e)-309(matrix)-309(is)-308(in)-309(the)-308(up)-28(date)-309(state,)-313(an)28(y)-309(en)28(tries)-309(in)-308(p)-28(ositions)-309(that)-308(w)28(ere)-309(not)]TJ 12.73 -11.955 Td [(presen)28(t)-334(in)-333(the)-333(original)-333(matrix)-334(are)-333(ignored.)]TJ + [-500(If)-309(the)-308(matrix)-309(is)-308(in)-309(the)-308(up)-28(date)-309(state,)-313(an)28(y)-309(en)28(tries)-309(in)-308(p)-28(ositions)-309(that)-308(w)28(ere)-309(not)]TJ 12.73 -11.955 Td [(presen)28(t)-334(in)-333(the)-333(original)-333(matrix)-334(are)-333(ignored.)]TJ 0 g 0 G - 141.968 -95.641 Td [(73)]TJ + 141.968 -95.641 Td [(74)]TJ 0 g 0 G ET endstream endobj -1325 0 obj +1338 0 obj << -/Length 6648 +/Length 6641 >> stream 0 g 0 G 0 g 0 G BT -/F16 11.9552 Tf 150.705 706.129 Td [(psb)]TJ +/F16 11.9552 Tf 99.895 706.129 Td [(psb)]TJ ET q -1 0 0 1 171.761 706.328 cm +1 0 0 1 120.951 706.328 cm []0 d 0 J 0.398 w 0 0 m 4.035 0 l S Q BT -/F16 11.9552 Tf 175.796 706.129 Td [(spasb)-375(|)-375(Sparse)-375(matrix)-375(assem)31(bly)-375(routine)]TJ +/F16 11.9552 Tf 124.986 706.129 Td [(spasb)-375(|)-375(Sparse)-375(matrix)-375(assem)31(bly)-375(routine)]TJ 0 g 0 G 0 g 0 G /F30 9.9626 Tf -25.091 -18.389 Td [(call)-525(psb_spasb\050a,)-525(desc_a,)-525(info,)-525(afmt,)-525(upd,)-525(dupl,)-525(mold\051)]TJ @@ -14652,416 +14766,364 @@ BT 0 -19.638 Td [(desc)]TJ ET q -1 0 0 1 172.619 627.46 cm +1 0 0 1 121.81 627.46 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 176.057 627.261 Td [(a)]TJ +/F27 9.9626 Tf 125.247 627.261 Td [(a)]TJ 0 g 0 G -/F8 9.9626 Tf 10.55 0 Td [(the)-333(comm)27(unication)-333(descriptor.)]TJ -10.996 -11.956 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 27.951 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf 23.073 0 Td [(.)]TJ -51.024 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.184 0 Td [(required)]TJ/F8 9.9626 Tf 41.898 0 Td [(.)]TJ -67.082 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.548 0 Td [(.)]TJ -43.034 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(structured)-333(data)-333(of)-334(t)28(yp)-28(e)]TJ +/F8 9.9626 Tf 10.551 0 Td [(the)-333(comm)27(unication)-333(descriptor.)]TJ -10.996 -11.956 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 27.951 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf 23.073 0 Td [(.)]TJ -51.024 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.183 0 Td [(required)]TJ/F8 9.9626 Tf 41.899 0 Td [(.)]TJ -67.082 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(structured)-333(data)-333(of)-334(t)28(yp)-28(e)]TJ 0 0 1 rg 0 0 1 RG /F30 9.9626 Tf 170.915 0 Td [(psb)]TJ ET q -1 0 0 1 362.845 579.639 cm +1 0 0 1 312.036 579.639 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 365.983 579.44 Td [(desc)]TJ +/F30 9.9626 Tf 315.174 579.44 Td [(desc)]TJ ET q -1 0 0 1 387.532 579.639 cm +1 0 0 1 336.723 579.639 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 390.67 579.44 Td [(type)]TJ +/F30 9.9626 Tf 339.861 579.44 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.639 Td [(afm)32(t)]TJ 0 g 0 G -/F8 9.9626 Tf 27.736 0 Td [(the)-333(storage)-334(format)-333(for)-333(the)-334(sparse)-333(matrix.)]TJ -2.829 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.378 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf 23.073 0 Td [(.)]TJ -55.451 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(optional)]TJ/F8 9.9626 Tf 40.577 0 Td [(.)]TJ -70.188 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.485 0 Td [(in)]TJ/F8 9.9626 Tf 9.548 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-444(an)-334(arra)28(y)-333(of)-334(c)28(haracters.)-444(Defalt:)-445('CSR'.)]TJ +/F8 9.9626 Tf 27.737 0 Td [(the)-333(storage)-334(format)-333(for)-333(the)-334(sparse)-333(matrix.)]TJ -2.83 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf 23.073 0 Td [(.)]TJ -55.452 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(optional)]TJ/F8 9.9626 Tf 40.577 0 Td [(.)]TJ -70.188 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(arra)28(y)-333(of)-334(c)28(haracters.)-444(Defalt:)-445('CSR'.)]TJ 0 g 0 G /F27 9.9626 Tf -24.907 -19.639 Td [(up)-32(d)]TJ 0 g 0 G -/F8 9.9626 Tf 24.394 0 Td [(Pro)28(vide)-334(f)1(or)-334(up)-27(dates)-334(to)-333(the)-334(matri)1(x)-334(co)-28(e\016cien)28(ts.)]TJ 0.513 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.378 0 Td [(global)]TJ/F8 9.9626 Tf 29.756 0 Td [(.)]TJ -62.134 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(optional)]TJ/F8 9.9626 Tf 40.577 0 Td [(.)]TJ -70.188 -11.956 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.485 0 Td [(in)]TJ/F8 9.9626 Tf 9.548 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-444(in)27(teger,)-333(p)-28(ossible)-333(v)55(alues:)]TJ/F30 9.9626 Tf 164.632 0 Td [(psb_upd_srch_)]TJ/F8 9.9626 Tf 67.995 0 Td [(,)]TJ/F30 9.9626 Tf 6.088 0 Td [(psb_upd_perm_)]TJ +/F8 9.9626 Tf 24.395 0 Td [(Pro)28(vide)-333(for)-334(up)-27(dates)-334(to)-333(the)-333(matrix)-334(co)-28(e\016cien)28(ts.)]TJ 0.512 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(global)]TJ/F8 9.9626 Tf 29.756 0 Td [(.)]TJ -62.135 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(optional)]TJ/F8 9.9626 Tf 40.577 0 Td [(.)]TJ -70.188 -11.956 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(in)28(teger,)-333(p)-28(ossible)-333(v)55(alues:)]TJ/F30 9.9626 Tf 164.633 0 Td [(psb_upd_srch_)]TJ/F8 9.9626 Tf 67.994 0 Td [(,)]TJ/F30 9.9626 Tf 6.089 0 Td [(psb_upd_perm_)]TJ 0 g 0 G -/F27 9.9626 Tf -263.622 -19.639 Td [(dupl)]TJ +/F27 9.9626 Tf -263.623 -19.639 Td [(dupl)]TJ 0 g 0 G -/F8 9.9626 Tf 27.259 0 Td [(Ho)28(w)-334(to)-333(handle)-333(duplicate)-333(co)-28(e\016cien)27(ts.)]TJ -2.352 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.378 0 Td [(global)]TJ/F8 9.9626 Tf 29.757 0 Td [(.)]TJ -62.135 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(optional)]TJ/F8 9.9626 Tf 40.577 0 Td [(.)]TJ -70.188 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.485 0 Td [(in)]TJ/F8 9.9626 Tf 9.548 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-308(as:)-432(in)27(teger,)-313(p)-28(ossible)-309(v)56(alues:)]TJ/F30 9.9626 Tf 163.696 0 Td [(psb_dupl_ovwrt_)]TJ/F8 9.9626 Tf 78.455 0 Td [(,)]TJ/F30 9.9626 Tf 5.891 0 Td [(psb_dupl_add_)]TJ/F8 9.9626 Tf 67.995 0 Td [(,)]TJ/F30 9.9626 Tf -316.037 -11.955 Td [(psb_dupl_err_)]TJ/F8 9.9626 Tf 67.994 0 Td [(.)]TJ +/F8 9.9626 Tf 27.259 0 Td [(Ho)28(w)-334(to)-333(handle)-333(duplicate)-333(co)-28(e\016cien)27(ts.)]TJ -2.352 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(global)]TJ/F8 9.9626 Tf 29.756 0 Td [(.)]TJ -62.135 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(optional)]TJ/F8 9.9626 Tf 40.577 0 Td [(.)]TJ -70.188 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-308(as:)-432(in)27(teger,)-313(p)-28(ossible)-309(v)56(alues:)]TJ/F30 9.9626 Tf 163.696 0 Td [(psb_dupl_ovwrt_)]TJ/F8 9.9626 Tf 78.456 0 Td [(,)]TJ/F30 9.9626 Tf 5.891 0 Td [(psb_dupl_add_)]TJ/F8 9.9626 Tf 67.994 0 Td [(,)]TJ/F30 9.9626 Tf -316.037 -11.955 Td [(psb_dupl_err_)]TJ/F8 9.9626 Tf 67.994 0 Td [(.)]TJ 0 g 0 G /F27 9.9626 Tf -92.901 -19.639 Td [(mold)]TJ 0 g 0 G -/F8 9.9626 Tf 29.805 0 Td [(The)-333(desired)-334(dynamic)-333(t)28(yp)-28(e)-333(for)-334(the)-333(in)28(ternal)-333(matrix)-334(storage.)]TJ -4.898 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.378 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf 23.073 0 Td [(.)]TJ -55.451 -11.956 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(optional)]TJ/F8 9.9626 Tf 40.577 0 Td [(.)]TJ -70.188 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.485 0 Td [(in)]TJ/F8 9.9626 Tf 9.548 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(ob)-55(ject)-334(of)-333(a)-333(class)-334(deriv)28(ed)-333(from)]TJ/F30 9.9626 Tf 203.349 0 Td [(psb)]TJ +/F8 9.9626 Tf 29.805 0 Td [(The)-333(desired)-334(dynamic)-333(t)28(yp)-28(e)-333(for)-334(the)-333(in)28(ternal)-333(matrix)-334(storage.)]TJ -4.898 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf 23.073 0 Td [(.)]TJ -55.452 -11.956 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(optional)]TJ/F8 9.9626 Tf 40.577 0 Td [(.)]TJ -70.188 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(ob)-55(ject)-334(of)-333(a)-333(class)-334(deriv)28(ed)-333(from)]TJ/F30 9.9626 Tf 203.349 0 Td [(psb)]TJ ET q -1 0 0 1 395.279 297.847 cm +1 0 0 1 344.47 297.847 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 398.417 297.647 Td [(T)]TJ +/F30 9.9626 Tf 347.608 297.647 Td [(T)]TJ ET q -1 0 0 1 404.275 297.847 cm +1 0 0 1 353.466 297.847 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 407.413 297.647 Td [(base)]TJ +/F30 9.9626 Tf 356.604 297.647 Td [(base)]TJ ET q -1 0 0 1 428.962 297.847 cm +1 0 0 1 378.153 297.847 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 432.101 297.647 Td [(sparse)]TJ +/F30 9.9626 Tf 381.291 297.647 Td [(sparse)]TJ ET q -1 0 0 1 464.11 297.847 cm +1 0 0 1 413.301 297.847 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 467.248 297.647 Td [(mat)]TJ/F8 9.9626 Tf 15.691 0 Td [(.)]TJ +/F30 9.9626 Tf 416.439 297.647 Td [(mat)]TJ/F8 9.9626 Tf 15.691 0 Td [(.)]TJ 0 g 0 G -/F27 9.9626 Tf -332.234 -21.201 Td [(On)-383(Return)]TJ +/F27 9.9626 Tf -332.235 -21.201 Td [(On)-383(Return)]TJ 0 g 0 G 0 g 0 G 0 -19.639 Td [(a)]TJ 0 g 0 G -/F8 9.9626 Tf 10.551 0 Td [(the)-333(matrix)-334(to)-333(b)-28(e)-333(assem)28(bled.)]TJ 14.355 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 27.951 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -27.951 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.184 0 Td [(required)]TJ/F8 9.9626 Tf -25.184 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(inout)]TJ/F8 9.9626 Tf 26.096 0 Td [(.)]TJ -59.582 -11.956 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(structured)-333(data)-333(of)-334(t)28(yp)-28(e)]TJ +/F8 9.9626 Tf 10.551 0 Td [(the)-333(matrix)-334(to)-333(b)-28(e)-333(assem)28(bled.)]TJ 14.356 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 27.951 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -27.951 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.183 0 Td [(required)]TJ/F8 9.9626 Tf -25.183 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(inout)]TJ/F8 9.9626 Tf 26.096 0 Td [(.)]TJ -59.582 -11.956 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(structured)-333(data)-333(of)-334(t)28(yp)-28(e)]TJ 0 0 1 rg 0 0 1 RG /F30 9.9626 Tf 170.915 0 Td [(psb)]TJ ET q -1 0 0 1 362.845 209.186 cm -[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S -Q -BT -/F30 9.9626 Tf 365.983 208.986 Td [(Tspmat)]TJ -ET -q -1 0 0 1 397.993 209.186 cm +1 0 0 1 312.036 209.186 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 401.131 208.986 Td [(type)]TJ -0 g 0 G -/F8 9.9626 Tf 20.921 0 Td [(.)]TJ -0 g 0 G -/F27 9.9626 Tf -271.347 -19.638 Td [(info)]TJ -0 g 0 G -/F8 9.9626 Tf 23.758 0 Td [(Error)-333(co)-28(de.)]TJ 1.148 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.956 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.612 0 Td [(required)]TJ/F8 9.9626 Tf -29.612 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(out)]TJ/F8 9.9626 Tf 16.549 0 Td [(.)]TJ -50.035 -11.955 Td [(An)-333(in)27(t)1(e)-1(ger)-333(v)56(alue;)-334(0)-333(means)-333(no)-334(error)-333(has)-333(b)-28(een)-333(detec)-1(ted.)]TJ/F16 11.9552 Tf -24.906 -21.201 Td [(Notes)]TJ -0 g 0 G -/F8 9.9626 Tf 166.874 -29.888 Td [(74)]TJ -0 g 0 G -ET - -endstream -endobj -1329 0 obj -<< -/Length 2248 ->> -stream -0 g 0 G -0 g 0 G -0 g 0 G -BT -/F8 9.9626 Tf 112.072 706.129 Td [(1.)]TJ -0 g 0 G - [-500(On)-406(en)28(try)-406(to)-406(this)-406(routine)-406(the)-406(descriptor)-406(m)28(ust)-406(b)-28(e)-406(in)-406(the)-406(assem)28(bled)-406(state)-1(,)]TJ 12.73 -11.955 Td [(i.e.)]TJ/F30 9.9626 Tf 17.158 0 Td [(psb_cdasb)]TJ/F8 9.9626 Tf 50.394 0 Td [(m)28(ust)-334(already)-333(ha)28(v)28(e)-334(b)-27(een)-334(called.)]TJ -0 g 0 G - -80.282 -19.926 Td [(2.)]TJ -0 g 0 G - [-500(The)-333(sparse)-334(matrix)-333(ma)28(y)-334(b)-27(e)-334(in)-333(either)-333(the)-334(build)-333(or)-333(up)-28(date)-333(state;)]TJ -0 g 0 G - 0 -19.925 Td [(3.)]TJ -0 g 0 G - [-500(Duplicate)-250(en)28(tries)-250(are)-249(detec)-1(ted)-249(and)-250(handled)-250(in)-249(b)-28(oth)-250(build)-249(and)-250(up)-28(date)-249(state,)]TJ 12.73 -11.955 Td [(with)-282(the)-283(exception)-282(of)-282(the)-283(error)-282(action)-282(that)-283(i)1(s)-283(only)-282(tak)28(en)-283(in)-282(the)-282(build)-282(s)-1(tate,)]TJ 0 -11.955 Td [(i.e.)-444(on)-334(the)-333(\014rst)-333(assem)27(bly;)]TJ -0 g 0 G - -12.73 -19.925 Td [(4.)]TJ -0 g 0 G - [-500(If)-224(the)-224(up)-28(d)1(ate)-224(c)27(hoice)-224(is)]TJ/F30 9.9626 Tf 107.516 0 Td [(psb_upd_perm_)]TJ/F8 9.9626 Tf 67.994 0 Td [(,)-246(then)-224(subsequen)28(t)-224(calls)-224(to)]TJ/F30 9.9626 Tf 108.951 0 Td [(psb_spins)]TJ/F8 9.9626 Tf -271.731 -11.956 Td [(to)-246(up)-28(date)-246(the)-246(matrix)-246(m)28(ust)-246(b)-28(e)-246(arranged)-246(in)-246(suc)28(h)-246(a)-246(w)28(a)27(y)-246(as)-246(to)-246(pro)-27(duce)-246(exactly)]TJ 0 -11.955 Td [(the)-228(same)-229(sequence)-228(of)-228(co)-28(e\016cien)28(t)-229(v)56(alues)-228(as)-229(encoun)28(tered)-228(at)-229(the)-228(\014rst)-228(assem)28(bly;)]TJ -0 g 0 G - -12.73 -19.925 Td [(5.)]TJ +/F30 9.9626 Tf 315.174 208.986 Td [(Tspmat)]TJ +ET +q +1 0 0 1 347.183 209.186 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +Q +BT +/F30 9.9626 Tf 350.322 208.986 Td [(type)]TJ 0 g 0 G - [-500(The)-333(output)-334(storage)-333(format)-333(need)-334(not)-333(b)-28(e)-333(the)-333(same)-334(on)-333(all)-333(pro)-28(cesses;)]TJ +/F8 9.9626 Tf 20.921 0 Td [(.)]TJ 0 g 0 G - 0 -19.925 Td [(6.)]TJ +/F27 9.9626 Tf -271.348 -19.638 Td [(info)]TJ 0 g 0 G - [-500(On)-370(exit)-370(from)-370(this)-370(routine)-370(the)-370(matrix)-370(is)-370(in)-370(the)-370(assem)28(bled)-370(state,)-379(and)-370(th)27(us)]TJ 12.73 -11.956 Td [(is)-333(suitable)-334(for)-333(the)-333(computational)-334(r)1(outines.)]TJ +/F8 9.9626 Tf 23.758 0 Td [(Error)-333(co)-28(de.)]TJ 1.149 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.956 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(out)]TJ/F8 9.9626 Tf 16.549 0 Td [(.)]TJ -50.035 -11.955 Td [(An)-333(in)28(tege)-1(r)-333(v)56(alue;)-334(0)-333(means)-333(no)-334(error)-333(has)-333(b)-28(een)-333(detecte)-1(d)1(.)]TJ/F16 11.9552 Tf -24.907 -21.201 Td [(Notes)]TJ 0 g 0 G - 141.968 -444.333 Td [(75)]TJ +/F8 9.9626 Tf 166.875 -29.888 Td [(75)]TJ 0 g 0 G ET endstream endobj -1224 0 obj +1227 0 obj << /Type /ObjStm /N 100 /First 981 -/Length 10401 +/Length 10699 >> stream -1220 0 1227 132 1225 271 1229 418 1230 476 1226 534 1234 653 1232 792 1236 950 1237 1009 -1233 1068 1239 1200 1241 1318 1242 1376 1243 1434 1244 1492 1245 1550 1246 1608 1238 1664 1249 1744 -1247 1883 1251 2028 288 2087 1248 2145 1254 2264 1252 2403 1256 2561 1257 2619 1258 2677 1259 2735 -1253 2793 1263 2899 1260 3047 1261 3192 1265 3338 292 3397 1266 3455 1262 3514 1270 3620 1267 3768 -1268 3914 1272 4061 296 4119 1269 4176 1276 4282 1274 4421 1278 4566 300 4625 1275 4683 1282 4789 -1279 4937 1280 5081 1284 5228 304 5286 1281 5343 1286 5475 1288 5593 1289 5652 1290 5711 1285 5770 -1294 5850 1291 5998 1292 6144 1296 6287 308 6345 1297 6402 1298 6460 1299 6518 1293 6576 1304 6695 -1300 6843 1301 6990 1306 7133 312 7192 1303 7250 1308 7369 1302 7508 1310 7654 1311 7712 1312 7770 -1313 7828 1314 7886 1315 7943 1316 8001 1317 8059 1318 8117 1319 8175 1307 8233 1324 8352 1321 8500 -1322 8645 1326 8789 316 8848 1323 8906 1328 9012 1330 9130 1331 9188 1332 9246 1333 9304 1334 9362 +1220 0 1231 157 1219 314 1228 458 1229 602 1233 748 1230 807 1235 913 1237 1031 284 1089 +288 1146 1234 1203 1241 1335 1239 1474 1243 1620 1244 1679 1240 1738 1247 1857 1245 1996 1249 2154 +1250 2212 1246 2270 1252 2402 1254 2520 1255 2579 1256 2638 1257 2697 1258 2756 1259 2815 1251 2872 +1262 2952 1260 3091 1264 3237 292 3295 1261 3352 1267 3471 1265 3610 1269 3768 1270 3827 1271 3886 +1272 3945 1266 4004 1276 4110 1273 4258 1274 4404 1278 4551 296 4609 1279 4666 1275 4724 1284 4830 +1281 4978 1282 5123 1286 5269 300 5328 1283 5386 1289 5492 1287 5631 1291 5777 304 5835 1288 5892 +1295 5998 1292 6146 1293 6289 1297 6435 308 6494 1294 6552 1299 6684 1301 6802 1302 6860 1303 6918 +1298 6976 1307 7056 1304 7204 1305 7349 1309 7491 312 7550 1310 7608 1311 7667 1312 7726 1306 7785 +1317 7904 1313 8052 1314 8198 1319 8342 316 8400 1316 8457 1322 8576 1315 8715 1324 8862 1325 8921 +1326 8980 1327 9039 1328 9098 1329 9156 1330 9215 1331 9274 1332 9333 1333 9392 1321 9451 1337 9570 % 1220 0 obj << -/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 >> +/Font << /F16 554 0 R /F8 557 0 R /F11 750 0 R /F10 766 0 R /F14 767 0 R /F7 765 0 R /F27 556 0 R /F30 764 0 R >> /ProcSet [ /PDF /Text ] >> -% 1227 0 obj +% 1231 0 obj << /Type /Page -/Contents 1228 0 R -/Resources 1226 0 R +/Contents 1232 0 R +/Resources 1230 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1231 0 R -/Annots [ 1225 0 R ] +/Parent 1194 0 R +/Annots [ 1219 0 R 1228 0 R 1229 0 R ] >> -% 1225 0 obj +% 1219 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) >> +/Rect [336.331 643.143 412.385 654.268] +/A << /S /GoTo /D (vdata) >> +>> +% 1228 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [174.615 543.516 250.669 554.641] +/A << /S /GoTo /D (vdata) >> >> % 1229 0 obj << -/D [1227 0 R /XYZ 98.895 753.953 null] +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [473.75 543.516 485.705 554.641] +/A << /S /GoTo /D (table.17) >> >> -% 1230 0 obj +% 1233 0 obj << -/D [1227 0 R /XYZ 99.895 234.372 null] +/D [1231 0 R /XYZ 149.705 753.953 null] >> -% 1226 0 obj +% 1230 0 obj << -/Font << /F27 552 0 R /F8 553 0 R /F30 759 0 R /F11 745 0 R /F16 550 0 R >> +/Font << /F27 556 0 R /F8 557 0 R /F30 764 0 R /F11 750 0 R >> /ProcSet [ /PDF /Text ] >> -% 1234 0 obj +% 1235 0 obj << /Type /Page -/Contents 1235 0 R -/Resources 1233 0 R +/Contents 1236 0 R +/Resources 1234 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1231 0 R -/Annots [ 1232 0 R ] +/Parent 1238 0 R >> -% 1232 0 obj +% 1237 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) >> +/D [1235 0 R /XYZ 98.895 753.953 null] >> -% 1236 0 obj +% 284 0 obj << -/D [1234 0 R /XYZ 149.705 753.953 null] +/D [1235 0 R /XYZ 99.895 716.092 null] >> -% 1237 0 obj +% 288 0 obj << -/D [1234 0 R /XYZ 150.705 134.155 null] +/D [1235 0 R /XYZ 99.895 696.263 null] >> -% 1233 0 obj +% 1234 0 obj << -/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 >> +/Font << /F16 554 0 R /F30 764 0 R /F8 557 0 R /F27 556 0 R /F11 750 0 R /F14 767 0 R >> /ProcSet [ /PDF /Text ] >> -% 1239 0 obj +% 1241 0 obj << /Type /Page -/Contents 1240 0 R -/Resources 1238 0 R +/Contents 1242 0 R +/Resources 1240 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1231 0 R +/Parent 1238 0 R +/Annots [ 1239 0 R ] >> -% 1241 0 obj -<< -/D [1239 0 R /XYZ 98.895 753.953 null] ->> -% 1242 0 obj +% 1239 0 obj << -/D [1239 0 R /XYZ 99.895 716.092 null] +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [345.53 325.282 412.588 336.407] +/A << /S /GoTo /D (descdata) >> >> % 1243 0 obj << -/D [1239 0 R /XYZ 99.895 688.251 null] +/D [1241 0 R /XYZ 149.705 753.953 null] >> % 1244 0 obj << -/D [1239 0 R /XYZ 99.895 668.049 null] +/D [1241 0 R /XYZ 150.705 234.372 null] >> -% 1245 0 obj -<< -/D [1239 0 R /XYZ 99.895 626.428 null] ->> -% 1246 0 obj +% 1240 0 obj << -/D [1239 0 R /XYZ 99.895 568.7 null] ->> -% 1238 0 obj -<< -/Font << /F8 553 0 R /F30 759 0 R >> +/Font << /F27 556 0 R /F8 557 0 R /F30 764 0 R /F11 750 0 R /F16 554 0 R >> /ProcSet [ /PDF /Text ] >> -% 1249 0 obj +% 1247 0 obj << /Type /Page -/Contents 1250 0 R -/Resources 1248 0 R +/Contents 1248 0 R +/Resources 1246 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1231 0 R -/Annots [ 1247 0 R ] +/Parent 1238 0 R +/Annots [ 1245 0 R ] >> -% 1247 0 obj +% 1245 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [345.53 117.115 412.588 128.24] -/A << /S /GoTo /D (descdata) >> +/Rect [357.982 215.702 380.454 226.827] +/A << /S /GoTo /D (subsubsection.2.3.1) >> >> -% 1251 0 obj +% 1249 0 obj << -/D [1249 0 R /XYZ 149.705 753.953 null] +/D [1247 0 R /XYZ 98.895 753.953 null] >> -% 288 0 obj +% 1250 0 obj << -/D [1249 0 R /XYZ 150.705 720.077 null] +/D [1247 0 R /XYZ 99.895 134.155 null] >> -% 1248 0 obj +% 1246 0 obj << -/Font << /F16 550 0 R /F30 759 0 R /F8 553 0 R /F11 745 0 R /F27 552 0 R >> +/Font << /F30 764 0 R /F8 557 0 R /F27 556 0 R /F14 767 0 R /F11 750 0 R /F10 766 0 R >> /ProcSet [ /PDF /Text ] >> -% 1254 0 obj +% 1252 0 obj << /Type /Page -/Contents 1255 0 R -/Resources 1253 0 R +/Contents 1253 0 R +/Resources 1251 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1231 0 R -/Annots [ 1252 0 R ] +/Parent 1238 0 R >> -% 1252 0 obj +% 1254 0 obj << -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [274.574 402.324 297.045 413.172] -/A << /S /GoTo /D (subsubsection.2.3.1) >> +/D [1252 0 R /XYZ 149.705 753.953 null] +>> +% 1255 0 obj +<< +/D [1252 0 R /XYZ 150.705 716.092 null] >> % 1256 0 obj << -/D [1254 0 R /XYZ 98.895 753.953 null] +/D [1252 0 R /XYZ 150.705 688.251 null] >> % 1257 0 obj << -/D [1254 0 R /XYZ 99.895 496.913 null] +/D [1252 0 R /XYZ 150.705 668.049 null] >> % 1258 0 obj << -/D [1254 0 R /XYZ 99.895 475.051 null] +/D [1252 0 R /XYZ 150.705 626.428 null] >> % 1259 0 obj << -/D [1254 0 R /XYZ 99.895 431.215 null] +/D [1252 0 R /XYZ 150.705 568.7 null] >> -% 1253 0 obj +% 1251 0 obj << -/Font << /F27 552 0 R /F8 553 0 R /F11 745 0 R /F16 550 0 R >> +/Font << /F8 557 0 R /F30 764 0 R >> /ProcSet [ /PDF /Text ] >> -% 1263 0 obj +% 1262 0 obj << /Type /Page -/Contents 1264 0 R -/Resources 1262 0 R +/Contents 1263 0 R +/Resources 1261 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1231 0 R -/Annots [ 1260 0 R 1261 0 R ] +/Parent 1238 0 R +/Annots [ 1260 0 R ] >> % 1260 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [345.53 574.94 412.588 586.065] -/A << /S /GoTo /D (descdata) >> ->> -% 1261 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [345.53 485.277 412.588 496.401] +/Rect [294.721 117.115 361.779 128.24] /A << /S /GoTo /D (descdata) >> >> -% 1265 0 obj +% 1264 0 obj << -/D [1263 0 R /XYZ 149.705 753.953 null] +/D [1262 0 R /XYZ 98.895 753.953 null] >> % 292 0 obj << -/D [1263 0 R /XYZ 150.705 720.077 null] ->> -% 1266 0 obj -<< -/D [1263 0 R /XYZ 150.705 394.838 null] +/D [1262 0 R /XYZ 99.895 720.077 null] >> -% 1262 0 obj +% 1261 0 obj << -/Font << /F16 550 0 R /F30 759 0 R /F27 552 0 R /F8 553 0 R >> +/Font << /F16 554 0 R /F30 764 0 R /F8 557 0 R /F11 750 0 R /F27 556 0 R >> /ProcSet [ /PDF /Text ] >> -% 1270 0 obj +% 1267 0 obj << /Type /Page -/Contents 1271 0 R -/Resources 1269 0 R +/Contents 1268 0 R +/Resources 1266 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1273 0 R -/Annots [ 1267 0 R 1268 0 R ] +/Parent 1238 0 R +/Annots [ 1265 0 R ] >> -% 1267 0 obj +% 1265 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [294.721 574.94 361.779 586.065] -/A << /S /GoTo /D (descdata) >> +/Rect [325.383 402.324 347.855 413.172] +/A << /S /GoTo /D (subsubsection.2.3.1) >> >> -% 1268 0 obj +% 1269 0 obj << -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [294.721 485.277 361.779 496.401] -/A << /S /GoTo /D (descdata) >> +/D [1267 0 R /XYZ 149.705 753.953 null] >> -% 1272 0 obj +% 1270 0 obj << -/D [1270 0 R /XYZ 98.895 753.953 null] +/D [1267 0 R /XYZ 150.705 496.913 null] >> -% 296 0 obj +% 1271 0 obj << -/D [1270 0 R /XYZ 99.895 720.077 null] +/D [1267 0 R /XYZ 150.705 475.051 null] >> -% 1269 0 obj +% 1272 0 obj +<< +/D [1267 0 R /XYZ 150.705 431.215 null] +>> +% 1266 0 obj << -/Font << /F16 550 0 R /F30 759 0 R /F27 552 0 R /F8 553 0 R >> +/Font << /F27 556 0 R /F8 557 0 R /F11 750 0 R /F16 554 0 R >> /ProcSet [ /PDF /Text ] >> % 1276 0 obj @@ -15070,328 +15132,390 @@ stream /Contents 1277 0 R /Resources 1275 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1273 0 R -/Annots [ 1274 0 R ] +/Parent 1280 0 R +/Annots [ 1273 0 R 1274 0 R ] +>> +% 1273 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [294.721 574.94 361.779 586.065] +/A << /S /GoTo /D (descdata) >> >> % 1274 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [345.53 574.94 412.588 586.065] +/Rect [294.721 417.531 361.779 428.656] /A << /S /GoTo /D (descdata) >> >> % 1278 0 obj << -/D [1276 0 R /XYZ 149.705 753.953 null] +/D [1276 0 R /XYZ 98.895 753.953 null] >> -% 300 0 obj +% 296 0 obj +<< +/D [1276 0 R /XYZ 99.895 720.077 null] +>> +% 1279 0 obj << -/D [1276 0 R /XYZ 150.705 720.077 null] +/D [1276 0 R /XYZ 99.895 327.092 null] >> % 1275 0 obj << -/Font << /F16 550 0 R /F30 759 0 R /F27 552 0 R /F8 553 0 R >> +/Font << /F16 554 0 R /F30 764 0 R /F27 556 0 R /F8 557 0 R >> /ProcSet [ /PDF /Text ] >> -% 1282 0 obj +% 1284 0 obj << /Type /Page -/Contents 1283 0 R -/Resources 1281 0 R +/Contents 1285 0 R +/Resources 1283 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1273 0 R -/Annots [ 1279 0 R 1280 0 R ] +/Parent 1280 0 R +/Annots [ 1281 0 R 1282 0 R ] >> -% 1279 0 obj +% 1281 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [294.721 453.24 372.239 464.364] -/A << /S /GoTo /D (spdata) >> +/Rect [345.53 574.94 412.588 586.065] +/A << /S /GoTo /D (descdata) >> >> -% 1280 0 obj +% 1282 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [294.721 209.896 361.779 221.021] +/Rect [345.53 485.277 412.588 496.401] /A << /S /GoTo /D (descdata) >> >> -% 1284 0 obj +% 1286 0 obj << -/D [1282 0 R /XYZ 98.895 753.953 null] +/D [1284 0 R /XYZ 149.705 753.953 null] >> -% 304 0 obj +% 300 0 obj << -/D [1282 0 R /XYZ 99.895 720.077 null] +/D [1284 0 R /XYZ 150.705 720.077 null] >> -% 1281 0 obj +% 1283 0 obj << -/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 >> +/Font << /F16 554 0 R /F30 764 0 R /F27 556 0 R /F8 557 0 R >> /ProcSet [ /PDF /Text ] >> -% 1286 0 obj +% 1289 0 obj << /Type /Page -/Contents 1287 0 R -/Resources 1285 0 R +/Contents 1290 0 R +/Resources 1288 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1273 0 R +/Parent 1280 0 R +/Annots [ 1287 0 R ] >> -% 1288 0 obj +% 1287 0 obj << -/D [1286 0 R /XYZ 149.705 753.953 null] +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [294.721 574.94 361.779 586.065] +/A << /S /GoTo /D (descdata) >> >> -% 1289 0 obj +% 1291 0 obj << -/D [1286 0 R /XYZ 150.705 716.092 null] +/D [1289 0 R /XYZ 98.895 753.953 null] >> -% 1290 0 obj +% 304 0 obj << -/D [1286 0 R /XYZ 150.705 664.341 null] +/D [1289 0 R /XYZ 99.895 720.077 null] >> -% 1285 0 obj +% 1288 0 obj << -/Font << /F8 553 0 R /F30 759 0 R >> +/Font << /F16 554 0 R /F30 764 0 R /F27 556 0 R /F8 557 0 R >> /ProcSet [ /PDF /Text ] >> -% 1294 0 obj +% 1295 0 obj << /Type /Page -/Contents 1295 0 R -/Resources 1293 0 R +/Contents 1296 0 R +/Resources 1294 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1273 0 R -/Annots [ 1291 0 R 1292 0 R ] +/Parent 1280 0 R +/Annots [ 1292 0 R 1293 0 R ] >> -% 1291 0 obj +% 1292 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [294.721 574.94 361.779 586.065] -/A << /S /GoTo /D (descdata) >> +/Rect [345.53 453.24 423.049 464.364] +/A << /S /GoTo /D (spdata) >> >> -% 1292 0 obj +% 1293 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [294.721 405.575 372.239 416.7] -/A << /S /GoTo /D (spdata) >> +/Rect [345.53 209.896 412.588 221.021] +/A << /S /GoTo /D (descdata) >> >> -% 1296 0 obj +% 1297 0 obj << -/D [1294 0 R /XYZ 98.895 753.953 null] +/D [1295 0 R /XYZ 149.705 753.953 null] >> % 308 0 obj << -/D [1294 0 R /XYZ 99.895 720.077 null] +/D [1295 0 R /XYZ 150.705 720.077 null] >> -% 1297 0 obj +% 1294 0 obj << -/D [1294 0 R /XYZ 99.895 315.137 null] +/Font << /F16 554 0 R /F30 764 0 R /F8 557 0 R /F27 556 0 R /F11 750 0 R /F14 767 0 R >> +/ProcSet [ /PDF /Text ] >> -% 1298 0 obj +% 1299 0 obj << -/D [1294 0 R /XYZ 99.895 293.274 null] +/Type /Page +/Contents 1300 0 R +/Resources 1298 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1280 0 R >> -% 1299 0 obj +% 1301 0 obj << -/D [1294 0 R /XYZ 99.895 273.349 null] +/D [1299 0 R /XYZ 98.895 753.953 null] >> -% 1293 0 obj +% 1302 0 obj +<< +/D [1299 0 R /XYZ 99.895 716.092 null] +>> +% 1303 0 obj +<< +/D [1299 0 R /XYZ 99.895 664.341 null] +>> +% 1298 0 obj << -/Font << /F16 550 0 R /F30 759 0 R /F27 552 0 R /F8 553 0 R /F11 745 0 R >> +/Font << /F8 557 0 R /F30 764 0 R >> /ProcSet [ /PDF /Text ] >> -% 1304 0 obj +% 1307 0 obj << /Type /Page -/Contents 1305 0 R -/Resources 1303 0 R +/Contents 1308 0 R +/Resources 1306 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1273 0 R -/Annots [ 1300 0 R 1301 0 R ] +/Parent 1280 0 R +/Annots [ 1304 0 R 1305 0 R ] >> -% 1300 0 obj +% 1304 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [311.962 288.004 379.019 299.129] +/Rect [345.53 574.94 412.588 586.065] /A << /S /GoTo /D (descdata) >> >> -% 1301 0 obj +% 1305 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [345.53 117.115 423.049 128.24] +/Rect [345.53 405.575 423.049 416.7] /A << /S /GoTo /D (spdata) >> >> -% 1306 0 obj +% 1309 0 obj << -/D [1304 0 R /XYZ 149.705 753.953 null] +/D [1307 0 R /XYZ 149.705 753.953 null] >> % 312 0 obj << -/D [1304 0 R /XYZ 150.705 720.077 null] ->> -% 1303 0 obj -<< -/Font << /F16 550 0 R /F30 759 0 R /F27 552 0 R /F8 553 0 R /F11 745 0 R >> -/ProcSet [ /PDF /Text ] ->> -% 1308 0 obj -<< -/Type /Page -/Contents 1309 0 R -/Resources 1307 0 R -/MediaBox [0 0 595.276 841.89] -/Parent 1320 0 R -/Annots [ 1302 0 R ] ->> -% 1302 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [261.152 655.098 328.21 666.223] -/A << /S /GoTo /D (descdata) >> +/D [1307 0 R /XYZ 150.705 720.077 null] >> % 1310 0 obj << -/D [1308 0 R /XYZ 98.895 753.953 null] +/D [1307 0 R /XYZ 150.705 315.137 null] >> % 1311 0 obj << -/D [1308 0 R /XYZ 99.895 552.704 null] +/D [1307 0 R /XYZ 150.705 293.274 null] >> % 1312 0 obj << -/D [1308 0 R /XYZ 99.895 520.824 null] ->> -% 1313 0 obj -<< -/D [1308 0 R /XYZ 99.895 487.006 null] +/D [1307 0 R /XYZ 150.705 273.349 null] >> -% 1314 0 obj +% 1306 0 obj << -/D [1308 0 R /XYZ 99.895 419.26 null] +/Font << /F16 554 0 R /F30 764 0 R /F27 556 0 R /F8 557 0 R /F11 750 0 R >> +/ProcSet [ /PDF /Text ] >> -% 1315 0 obj +% 1317 0 obj << -/D [1308 0 R /XYZ 99.895 363.469 null] +/Type /Page +/Contents 1318 0 R +/Resources 1316 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1320 0 R +/Annots [ 1313 0 R 1314 0 R ] >> -% 1316 0 obj +% 1313 0 obj << -/D [1308 0 R /XYZ 99.895 319.634 null] +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [261.152 288.004 328.21 299.129] +/A << /S /GoTo /D (descdata) >> >> -% 1317 0 obj +% 1314 0 obj << -/D [1308 0 R /XYZ 99.895 287.753 null] +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [294.721 117.115 372.239 128.24] +/A << /S /GoTo /D (spdata) >> >> -% 1318 0 obj +% 1319 0 obj << -/D [1308 0 R /XYZ 99.895 255.873 null] +/D [1317 0 R /XYZ 98.895 753.953 null] >> -% 1319 0 obj +% 316 0 obj << -/D [1308 0 R /XYZ 99.895 212.037 null] +/D [1317 0 R /XYZ 99.895 720.077 null] >> -% 1307 0 obj +% 1316 0 obj << -/Font << /F27 552 0 R /F8 553 0 R /F30 759 0 R /F16 550 0 R /F11 745 0 R >> +/Font << /F16 554 0 R /F30 764 0 R /F27 556 0 R /F8 557 0 R /F11 750 0 R >> /ProcSet [ /PDF /Text ] >> -% 1324 0 obj +% 1322 0 obj << /Type /Page -/Contents 1325 0 R -/Resources 1323 0 R +/Contents 1323 0 R +/Resources 1321 0 R /MediaBox [0 0 595.276 841.89] /Parent 1320 0 R -/Annots [ 1321 0 R 1322 0 R ] +/Annots [ 1315 0 R ] >> -% 1321 0 obj +% 1315 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [345.53 576.23 412.588 587.355] +/Rect [311.962 655.098 379.019 666.223] /A << /S /GoTo /D (descdata) >> >> -% 1322 0 obj +% 1324 0 obj << -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [345.53 205.776 423.049 216.901] -/A << /S /GoTo /D (spdata) >> +/D [1322 0 R /XYZ 149.705 753.953 null] >> -% 1326 0 obj +% 1325 0 obj << -/D [1324 0 R /XYZ 149.705 753.953 null] +/D [1322 0 R /XYZ 150.705 552.704 null] >> -% 316 0 obj +% 1326 0 obj << -/D [1324 0 R /XYZ 150.705 720.077 null] +/D [1322 0 R /XYZ 150.705 520.824 null] >> -% 1323 0 obj +% 1327 0 obj << -/Font << /F16 550 0 R /F30 759 0 R /F27 552 0 R /F8 553 0 R >> -/ProcSet [ /PDF /Text ] +/D [1322 0 R /XYZ 150.705 487.006 null] >> % 1328 0 obj << -/Type /Page -/Contents 1329 0 R -/Resources 1327 0 R -/MediaBox [0 0 595.276 841.89] -/Parent 1320 0 R +/D [1322 0 R /XYZ 150.705 419.26 null] +>> +% 1329 0 obj +<< +/D [1322 0 R /XYZ 150.705 363.469 null] >> % 1330 0 obj << -/D [1328 0 R /XYZ 98.895 753.953 null] +/D [1322 0 R /XYZ 150.705 319.634 null] >> % 1331 0 obj << -/D [1328 0 R /XYZ 99.895 716.092 null] +/D [1322 0 R /XYZ 150.705 287.753 null] +>> +% 1332 0 obj +<< +/D [1322 0 R /XYZ 150.705 255.873 null] +>> +% 1333 0 obj +<< +/D [1322 0 R /XYZ 150.705 212.037 null] >> -% 1332 0 obj +% 1321 0 obj << -/D [1328 0 R /XYZ 99.895 687.975 null] +/Font << /F27 556 0 R /F8 557 0 R /F30 764 0 R /F16 554 0 R /F11 750 0 R >> +/ProcSet [ /PDF /Text ] >> -% 1333 0 obj +% 1337 0 obj << -/D [1328 0 R /XYZ 99.895 668.326 null] +/Type /Page +/Contents 1338 0 R +/Resources 1336 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1320 0 R +/Annots [ 1334 0 R 1335 0 R ] >> -% 1334 0 obj + +endstream +endobj +1343 0 obj << -/D [1328 0 R /XYZ 99.895 624.491 null] +/Length 2255 >> +stream +0 g 0 G +0 g 0 G +0 g 0 G +BT +/F8 9.9626 Tf 162.881 706.129 Td [(1.)]TJ +0 g 0 G + [-500(On)-406(en)28(try)-406(to)-406(this)-406(routine)-406(the)-406(descriptor)-406(m)28(ust)-406(b)-28(e)-406(in)-406(the)-406(assem)27(b)1(led)-406(s)-1(tate,)]TJ 12.73 -11.955 Td [(i.e.)]TJ/F30 9.9626 Tf 17.158 0 Td [(psb_cdasb)]TJ/F8 9.9626 Tf 50.394 0 Td [(m)28(ust)-334(already)-333(ha)28(v)28(e)-334(b)-27(een)-334(called.)]TJ +0 g 0 G + -80.282 -19.926 Td [(2.)]TJ +0 g 0 G + [-500(The)-333(sparse)-334(matrix)-333(ma)28(y)-334(b)-27(e)-334(in)-333(either)-333(the)-334(build)-333(or)-333(up)-28(date)-333(state;)]TJ +0 g 0 G + 0 -19.925 Td [(3.)]TJ +0 g 0 G + [-500(Duplicate)-250(en)28(tries)-250(are)-249(dete)-1(cted)-249(and)-250(handled)-250(in)-249(b)-28(oth)-250(build)-249(and)-250(up)-28(date)-249(state,)]TJ 12.73 -11.955 Td [(with)-282(the)-283(exception)-282(of)-282(the)-283(error)-282(action)-282(that)-283(is)-282(only)-282(tak)28(en)-283(in)-282(the)-282(build)-283(state,)]TJ 0 -11.955 Td [(i.e.)-444(on)-334(the)-333(\014rst)-333(asse)-1(m)28(bly;)]TJ +0 g 0 G + -12.73 -19.925 Td [(4.)]TJ +0 g 0 G + [-500(If)-224(the)-224(up)-28(date)-223(c)27(hoice)-224(is)]TJ/F30 9.9626 Tf 107.516 0 Td [(psb_upd_perm_)]TJ/F8 9.9626 Tf 67.994 0 Td [(,)-246(then)-224(subsequen)28(t)-224(calls)-224(to)]TJ/F30 9.9626 Tf 108.952 0 Td [(psb_spins)]TJ/F8 9.9626 Tf -271.732 -11.956 Td [(to)-246(up)-28(date)-246(the)-246(matrix)-246(m)28(ust)-246(b)-28(e)-246(arranged)-246(in)-246(suc)28(h)-246(a)-246(w)28(a)27(y)-246(as)-246(to)-246(pro)-27(duce)-246(exactly)]TJ 0 -11.955 Td [(the)-228(same)-229(sequence)-228(of)-228(co)-28(e\016cien)27(t)-228(v)56(alues)-229(as)-228(encoun)28(tered)-228(at)-229(the)-228(\014rst)-228(assem)27(b)1(ly;)]TJ +0 g 0 G + -12.73 -19.925 Td [(5.)]TJ +0 g 0 G + [-500(The)-333(output)-334(storage)-333(format)-333(need)-334(not)-333(b)-28(e)-333(the)-333(same)-334(on)-333(all)-333(pro)-28(cesses;)]TJ +0 g 0 G + 0 -19.925 Td [(6.)]TJ +0 g 0 G + [-500(On)-370(exit)-370(from)-370(this)-370(routine)-370(the)-370(matrix)-370(is)-370(in)-370(the)-370(assem)28(bled)-370(state,)-380(an)1(d)-370(th)27(us)]TJ 12.73 -11.956 Td [(is)-333(suitable)-334(for)-333(the)-333(computational)-334(rou)1(tines)-1(.)]TJ +0 g 0 G + 141.968 -444.333 Td [(76)]TJ +0 g 0 G +ET endstream endobj -1342 0 obj +1355 0 obj << -/Length 3084 +/Length 3086 >> stream 0 g 0 G 0 g 0 G BT -/F16 11.9552 Tf 150.705 706.129 Td [(psb)]TJ +/F16 11.9552 Tf 99.895 706.129 Td [(psb)]TJ ET q -1 0 0 1 171.761 706.328 cm +1 0 0 1 120.951 706.328 cm []0 d 0 J 0.398 w 0 0 m 4.035 0 l S Q BT -/F16 11.9552 Tf 175.796 706.129 Td [(spfree)-375(|)-375(F)94(rees)-375(a)-375(sparse)-375(matrix)]TJ +/F16 11.9552 Tf 124.986 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 @@ -15405,84 +15529,84 @@ BT 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 +/F8 9.9626 Tf 10.551 0 Td [(the)-333(matrix)-334(to)-333(b)-28(e)-333(freed.)]TJ 14.356 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 27.951 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -27.951 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.183 0 Td [(required)]TJ/F8 9.9626 Tf -25.183 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(inout)]TJ/F8 9.9626 Tf 26.096 0 Td [(.)]TJ -59.582 -11.956 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(structured)-333(data)-333(of)-334(t)28(yp)-28(e)]TJ 0 0 1 rg 0 0 1 RG -/F30 9.9626 Tf 170.914 0 Td [(psb)]TJ +/F30 9.9626 Tf 170.915 0 Td [(psb)]TJ ET q -1 0 0 1 362.845 578.35 cm +1 0 0 1 312.036 578.35 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 365.983 578.15 Td [(Tspmat)]TJ +/F30 9.9626 Tf 315.174 578.15 Td [(Tspmat)]TJ ET q -1 0 0 1 397.993 578.35 cm +1 0 0 1 347.183 578.35 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 401.131 578.15 Td [(type)]TJ +/F30 9.9626 Tf 350.322 578.15 Td [(type)]TJ 0 g 0 G /F8 9.9626 Tf 20.921 0 Td [(.)]TJ 0 g 0 G -/F27 9.9626 Tf -271.347 -19.925 Td [(desc)]TJ +/F27 9.9626 Tf -271.348 -19.925 Td [(desc)]TJ ET q -1 0 0 1 172.619 558.424 cm +1 0 0 1 121.81 558.424 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 176.057 558.225 Td [(a)]TJ +/F27 9.9626 Tf 125.247 558.225 Td [(a)]TJ 0 g 0 G -/F8 9.9626 Tf 10.55 0 Td [(the)-333(comm)27(unication)-333(descriptor.)]TJ -10.996 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 27.951 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf 23.073 0 Td [(.)]TJ -51.024 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.184 0 Td [(required)]TJ/F8 9.9626 Tf 41.898 0 Td [(.)]TJ -67.082 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.548 0 Td [(.)]TJ -43.034 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(structured)-333(data)-333(of)-334(t)28(yp)-28(e)]TJ +/F8 9.9626 Tf 10.551 0 Td [(the)-333(comm)27(unication)-333(descriptor.)]TJ -10.996 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 27.951 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf 23.073 0 Td [(.)]TJ -51.024 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.183 0 Td [(required)]TJ/F8 9.9626 Tf 41.899 0 Td [(.)]TJ -67.082 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(structured)-333(data)-333(of)-334(t)28(yp)-28(e)]TJ 0 0 1 rg 0 0 1 RG /F30 9.9626 Tf 170.915 0 Td [(psb)]TJ ET q -1 0 0 1 362.845 510.604 cm +1 0 0 1 312.036 510.604 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 365.983 510.405 Td [(desc)]TJ +/F30 9.9626 Tf 315.174 510.405 Td [(desc)]TJ ET q -1 0 0 1 387.532 510.604 cm +1 0 0 1 336.723 510.604 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 390.67 510.405 Td [(type)]TJ +/F30 9.9626 Tf 339.861 510.405 Td [(type)]TJ 0 g 0 G -/F8 9.9626 Tf 20.922 0 Td [(.)]TJ +/F8 9.9626 Tf 20.921 0 Td [(.)]TJ 0 g 0 G /F27 9.9626 Tf -260.887 -21.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 +/F8 9.9626 Tf 23.758 0 Td [(Error)-333(co)-28(de.)]TJ 1.149 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(out)]TJ/F8 9.9626 Tf 16.549 0 Td [(.)]TJ -50.035 -11.955 Td [(An)-333(in)28(tege)-1(r)-333(v)56(alue;)-334(0)-333(means)-333(no)-334(error)-333(has)-333(b)-28(een)-333(detecte)-1(d)1(.)]TJ 0 g 0 G - 141.968 -330.303 Td [(76)]TJ + 141.968 -330.303 Td [(77)]TJ 0 g 0 G ET endstream endobj -1348 0 obj +1361 0 obj << -/Length 3991 +/Length 3976 >> 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 [(sprn)-391(|)-391(Reinit)-391(sparse)-391(matrix)-391(structure)-391(for)-391(psblas)-391(rou-)]TJ -25.091 -13.948 Td [(tines.)]TJ +/F16 11.9552 Tf 175.796 706.129 Td [(sprn)-391(|)-391(Reinit)-391(sparse)-391(matrix)-391(structure)-391(for)-391(psblas)-391(rou-)]TJ -25.091 -13.948 Td [(tines.)]TJ 0 g 0 G 0 g 0 G /F30 9.9626 Tf 0 -18.389 Td [(call)-525(psb_sprn\050a,)-525(decsc_a,)-525(info,)-525(clear\051)]TJ @@ -15496,92 +15620,92 @@ BT 0 g 0 G 0 -19.926 Td [(a)]TJ 0 g 0 G -/F8 9.9626 Tf 10.551 0 Td [(the)-333(matrix)-334(to)-333(b)-28(e)-333(reinitialized.)]TJ 14.356 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 27.951 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -27.951 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.183 0 Td [(required)]TJ/F8 9.9626 Tf -25.183 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(inout)]TJ/F8 9.9626 Tf 26.096 0 Td [(.)]TJ -59.582 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(structured)-333(data)-333(of)-334(t)28(yp)-28(e)]TJ +/F8 9.9626 Tf 10.551 0 Td [(the)-333(matrix)-334(to)-333(b)-28(e)-333(reinitialized.)]TJ 14.356 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 27.95 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -27.95 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.183 0 Td [(required)]TJ/F8 9.9626 Tf -25.183 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.485 0 Td [(inout)]TJ/F8 9.9626 Tf 26.097 0 Td [(.)]TJ -59.582 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-444(a)-334(structured)-333(data)-333(of)-334(t)28(yp)-28(e)]TJ 0 0 1 rg 0 0 1 RG -/F30 9.9626 Tf 170.915 0 Td [(psb)]TJ +/F30 9.9626 Tf 170.914 0 Td [(psb)]TJ ET q -1 0 0 1 312.036 564.402 cm +1 0 0 1 362.845 564.402 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 315.174 564.203 Td [(Tspmat)]TJ +/F30 9.9626 Tf 365.983 564.203 Td [(Tspmat)]TJ ET q -1 0 0 1 347.183 564.402 cm +1 0 0 1 397.993 564.402 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 350.322 564.203 Td [(type)]TJ +/F30 9.9626 Tf 401.131 564.203 Td [(type)]TJ 0 g 0 G /F8 9.9626 Tf 20.921 0 Td [(.)]TJ 0 g 0 G -/F27 9.9626 Tf -271.348 -19.925 Td [(desc)]TJ +/F27 9.9626 Tf -271.347 -19.925 Td [(desc)]TJ ET q -1 0 0 1 121.81 544.477 cm +1 0 0 1 172.619 544.477 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 125.247 544.278 Td [(a)]TJ +/F27 9.9626 Tf 176.057 544.278 Td [(a)]TJ 0 g 0 G -/F8 9.9626 Tf 10.551 0 Td [(the)-333(comm)27(unication)-333(descriptor.)]TJ -10.996 -11.956 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 27.951 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf 23.073 0 Td [(.)]TJ -51.024 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.183 0 Td [(required)]TJ/F8 9.9626 Tf 41.899 0 Td [(.)]TJ -67.082 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(structured)-333(data)-333(of)-334(t)28(yp)-28(e)]TJ +/F8 9.9626 Tf 10.55 0 Td [(the)-333(comm)27(unication)-333(descriptor.)]TJ -10.996 -11.956 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 27.951 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf 23.073 0 Td [(.)]TJ -51.024 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.184 0 Td [(required)]TJ/F8 9.9626 Tf 41.898 0 Td [(.)]TJ -67.082 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.548 0 Td [(.)]TJ -43.034 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(structured)-333(data)-333(of)-334(t)28(yp)-28(e)]TJ 0 0 1 rg 0 0 1 RG /F30 9.9626 Tf 170.915 0 Td [(psb)]TJ ET q -1 0 0 1 312.036 496.656 cm +1 0 0 1 362.845 496.656 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 315.174 496.457 Td [(desc)]TJ +/F30 9.9626 Tf 365.983 496.457 Td [(desc)]TJ ET q -1 0 0 1 336.723 496.656 cm +1 0 0 1 387.532 496.656 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 339.861 496.457 Td [(type)]TJ +/F30 9.9626 Tf 390.67 496.457 Td [(type)]TJ 0 g 0 G -/F8 9.9626 Tf 20.921 0 Td [(.)]TJ +/F8 9.9626 Tf 20.922 0 Td [(.)]TJ 0 g 0 G /F27 9.9626 Tf -260.887 -19.925 Td [(clear)]TJ 0 g 0 G -/F8 9.9626 Tf 28.795 0 Td [(Cho)-28(ose)-333(whether)-334(to)-333(zero)-333(out)-334(matrix)-333(co)-28(e\016cien)28(ts)]TJ -3.888 -11.956 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 27.951 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf 23.073 0 Td [(.)]TJ -51.024 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.183 0 Td [(optional)]TJ/F8 9.9626 Tf 40.577 0 Td [(.)]TJ -65.76 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.955 Td [(Default:)-444(true.)]TJ +/F8 9.9626 Tf 28.795 0 Td [(Cho)-28(ose)-333(whether)-333(to)-334(zero)-333(out)-333(m)-1(atr)1(ix)-334(co)-28(e\016cien)28(ts)]TJ -3.888 -11.956 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 27.95 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf 23.073 0 Td [(.)]TJ -51.024 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.184 0 Td [(optional)]TJ/F8 9.9626 Tf 40.577 0 Td [(.)]TJ -65.76 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.485 0 Td [(in)]TJ/F8 9.9626 Tf 9.548 0 Td [(.)]TJ -43.033 -11.955 Td [(Default:)-444(true.)]TJ 0 g 0 G /F27 9.9626 Tf -24.907 -21.918 Td [(On)-383(Return)]TJ 0 g 0 G 0 g 0 G 0 -19.925 Td [(info)]TJ 0 g 0 G -/F8 9.9626 Tf 23.758 0 Td [(Error)-333(co)-28(de.)]TJ 1.149 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.956 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(out)]TJ/F8 9.9626 Tf 16.549 0 Td [(.)]TJ -50.035 -11.955 Td [(An)-333(in)28(tege)-1(r)-333(v)56(alue;)-334(0)-333(means)-333(no)-334(error)-333(has)-333(b)-28(een)-333(detecte)-1(d)1(.)]TJ/F16 11.9552 Tf -24.907 -21.918 Td [(Notes)]TJ +/F8 9.9626 Tf 23.758 0 Td [(Error)-333(co)-28(de.)]TJ 1.149 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.378 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.378 -11.956 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.485 0 Td [(out)]TJ/F8 9.9626 Tf 16.549 0 Td [(.)]TJ -50.034 -11.955 Td [(An)-333(in)28(teger)-334(v)56(alue;)-334(0)-333(means)-333(no)-334(error)-333(has)-333(b)-28(een)-333(detected.)]TJ/F16 11.9552 Tf -24.907 -21.918 Td [(Notes)]TJ 0 g 0 G -/F8 9.9626 Tf 12.177 -19.925 Td [(1.)]TJ +/F8 9.9626 Tf 12.176 -19.925 Td [(1.)]TJ 0 g 0 G - [-500(On)-333(exit)-334(from)-333(this)-333(routine)-333(the)-334(sparse)-333(matrix)-333(is)-334(in)-333(the)-333(up)-28(date)-333(s)-1(tat)1(e)-1(.)]TJ + [-500(On)-333(exit)-334(from)-333(this)-333(routine)-334(t)1(he)-334(sparse)-333(matrix)-334(is)-333(in)-333(the)-333(up)-28(date)-334(state.)]TJ 0 g 0 G - 154.698 -206.766 Td [(77)]TJ + 154.698 -206.766 Td [(78)]TJ 0 g 0 G ET endstream endobj -1355 0 obj +1368 0 obj << -/Length 5111 +/Length 5107 >> stream 0 g 0 G 0 g 0 G BT -/F16 11.9552 Tf 150.705 706.129 Td [(psb)]TJ +/F16 11.9552 Tf 99.895 706.129 Td [(psb)]TJ ET q -1 0 0 1 171.761 706.328 cm +1 0 0 1 120.951 706.328 cm []0 d 0 J 0.398 w 0 0 m 4.035 0 l S Q BT -/F16 11.9552 Tf 175.796 706.129 Td [(geall)-375(|)-375(Allo)-31(cates)-375(a)-375(dense)-375(matrix)]TJ +/F16 11.9552 Tf 124.986 706.129 Td [(geall)-375(|)-375(Allo)-31(cates)-375(a)-375(dense)-375(matrix)]TJ 0 g 0 G 0 g 0 G /F30 9.9626 Tf -25.091 -18.389 Td [(call)-525(psb_geall\050x,)-525(desc_a,)-525(info,)-525(n,)-525(lb\051)]TJ @@ -15596,98 +15720,98 @@ BT 0 -19.925 Td [(desc)]TJ ET q -1 0 0 1 172.619 626.17 cm +1 0 0 1 121.81 626.17 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 176.057 625.971 Td [(a)]TJ +/F27 9.9626 Tf 125.247 625.971 Td [(a)]TJ 0 g 0 G -/F8 9.9626 Tf 10.55 0 Td [(The)-333(comm)27(unication)-333(descriptor.)]TJ -10.996 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.612 0 Td [(required)]TJ/F8 9.9626 Tf -29.612 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.548 0 Td [(.)]TJ -43.034 -11.956 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(v)56(ariable)-334(of)-333(t)28(yp)-28(e)]TJ +/F8 9.9626 Tf 10.551 0 Td [(The)-333(comm)27(unication)-333(descriptor.)]TJ -10.996 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.956 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(v)56(ariable)-334(of)-333(t)28(yp)-28(e)]TJ 0 0 1 rg 0 0 1 RG -/F30 9.9626 Tf 137.347 0 Td [(psb)]TJ +/F30 9.9626 Tf 137.346 0 Td [(psb)]TJ ET q -1 0 0 1 329.276 578.35 cm +1 0 0 1 278.467 578.35 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 332.415 578.15 Td [(desc)]TJ +/F30 9.9626 Tf 281.605 578.15 Td [(desc)]TJ ET q -1 0 0 1 353.964 578.35 cm +1 0 0 1 303.154 578.35 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 357.102 578.15 Td [(type)]TJ +/F30 9.9626 Tf 306.292 578.15 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 -227.318 -31.88 Td [(n)]TJ +/F27 9.9626 Tf -227.319 -31.88 Td [(n)]TJ 0 g 0 G -/F8 9.9626 Tf 11.346 0 Td [(The)-333(n)27(um)28(b)-28(er)-333(of)-333(columns)-334(of)-333(the)-333(dense)-334(matrix)-333(to)-333(b)-28(e)-333(allo)-28(cated.)]TJ 13.56 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.612 0 Td [(optional)]TJ/F8 9.9626 Tf -29.612 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.548 0 Td [(.)]TJ -43.034 -11.956 Td [(Sp)-28(eci\014ed)-343(as:)-463(In)27(teger)-343(scalar,)-345(default)-343(1.)-473(It)-343(is)-343(not)-343(a)-343(v)56(alid)-343(argumen)27(t)-342(if)]TJ/F11 9.9626 Tf 294.599 0 Td [(x)]TJ/F8 9.9626 Tf 9.111 0 Td [(is)-343(a)]TJ -303.71 -11.955 Td [(rank-1)-333(arra)28(y)83(.)]TJ +/F8 9.9626 Tf 11.347 0 Td [(The)-333(n)27(u)1(m)27(b)-27(e)-1(r)-333(of)-333(columns)-333(of)-334(the)-333(dense)-333(m)-1(atr)1(ix)-334(to)-333(b)-28(e)-333(allo)-28(cated.)]TJ 13.56 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(optional)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.956 Td [(Sp)-28(eci\014ed)-343(as:)-463(In)27(teger)-343(scalar,)-345(default)-343(1.)-473(It)-343(is)-343(not)-343(a)-343(v)56(alid)-343(argumen)28(t)-343(if)]TJ/F11 9.9626 Tf 294.599 0 Td [(x)]TJ/F8 9.9626 Tf 9.11 0 Td [(is)-343(a)]TJ -303.709 -11.955 Td [(rank-1)-333(arra)28(y)83(.)]TJ 0 g 0 G -/F27 9.9626 Tf -24.906 -19.925 Td [(lb)]TJ +/F27 9.9626 Tf -24.907 -19.925 Td [(lb)]TJ 0 g 0 G -/F8 9.9626 Tf 14.529 0 Td [(The)-489(lo)28(w)27(er)-489(b)-27(ound)-489(for)-489(the)-490(colu)1(m)-1(n)-489(ind)1(e)-1(x)-489(range)-489(of)-489(the)-489(dense)-489(matrix)-489(to)-489(b)-28(e)]TJ 10.377 -11.955 Td [(allo)-28(cated.)]TJ 0 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.956 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.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)-343(as:)-463(In)27(teger)-343(scalar,)-345(default)-343(1.)-473(It)-343(is)-343(not)-343(a)-343(v)56(alid)-343(argumen)27(t)-342(if)]TJ/F11 9.9626 Tf 294.599 0 Td [(x)]TJ/F8 9.9626 Tf 9.111 0 Td [(is)-343(a)]TJ -303.71 -11.955 Td [(rank-1)-333(arra)28(y)83(.)]TJ +/F8 9.9626 Tf 14.529 0 Td [(The)-489(lo)28(w)27(er)-489(b)-27(ound)-489(for)-489(the)-490(column)-489(index)-489(range)-489(of)-489(the)-489(dense)-489(matrix)-489(to)-489(b)-28(e)]TJ 10.378 -11.955 Td [(allo)-28(cated.)]TJ 0 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.956 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(optional)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-343(as:)-463(In)27(teger)-343(scalar,)-345(default)-343(1.)-473(It)-343(is)-343(not)-343(a)-343(v)56(alid)-343(argumen)28(t)-343(if)]TJ/F11 9.9626 Tf 294.599 0 Td [(x)]TJ/F8 9.9626 Tf 9.11 0 Td [(is)-343(a)]TJ -303.709 -11.955 Td [(rank-1)-333(arra)28(y)83(.)]TJ 0 g 0 G -/F27 9.9626 Tf -24.906 -21.918 Td [(On)-383(Return)]TJ +/F27 9.9626 Tf -24.907 -21.918 Td [(On)-383(Return)]TJ 0 g 0 G 0 g 0 G 0 -19.925 Td [(x)]TJ 0 g 0 G -/F8 9.9626 Tf 11.028 0 Td [(The)-333(dense)-334(matrix)-333(to)-333(b)-28(e)-333(allo)-28(cated.)]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 [(out)]TJ/F8 9.9626 Tf 16.549 0 Td [(.)]TJ -50.035 -11.955 Td [(Sp)-28(eci\014ed)-303(as)-1(:)-429(a)-304(rank)-303(one)-304(or)-304(t)28(w)28(o)-304(arra)28(y)-304(with)-304(th)1(e)-304(ALLOCA)83(T)83(ABLE)-303(attribute)]TJ 0 -11.955 Td [(or)-333(an)-334(ob)-55(ject)-334(of)-333(t)28(yp)-28(e)]TJ +/F8 9.9626 Tf 11.028 0 Td [(The)-333(dense)-334(matrix)-333(to)-333(b)-28(e)-334(all)1(o)-28(cated.)]TJ 13.879 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.956 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(out)]TJ/F8 9.9626 Tf 16.549 0 Td [(.)]TJ -50.035 -11.955 Td [(Sp)-28(eci\014ed)-303(as:)-430(a)-304(rank)-303(one)-304(or)-304(t)28(w)28(o)-304(arra)28(y)-304(with)-303(the)-304(ALLOCA)83(T)83(ABLE)-303(attribute)]TJ 0 -11.955 Td [(or)-333(an)-334(ob)-55(ject)-333(of)-334(t)28(yp)-28(e)]TJ 0 0 1 rg 0 0 1 RG -/F30 9.9626 Tf 89.969 0 Td [(psb)]TJ +/F30 9.9626 Tf 89.968 0 Td [(psb)]TJ ET q -1 0 0 1 281.898 293.418 cm +1 0 0 1 231.089 293.418 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 285.037 293.219 Td [(T)]TJ +/F30 9.9626 Tf 234.227 293.219 Td [(T)]TJ ET q -1 0 0 1 290.895 293.418 cm +1 0 0 1 240.085 293.418 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 294.033 293.219 Td [(vect)]TJ +/F30 9.9626 Tf 243.223 293.219 Td [(vect)]TJ ET q -1 0 0 1 315.582 293.418 cm +1 0 0 1 264.772 293.418 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 318.72 293.219 Td [(type)]TJ +/F30 9.9626 Tf 267.911 293.219 Td [(type)]TJ 0 g 0 G /F8 9.9626 Tf 20.921 0 Td [(,)-333(of)-334(t)28(yp)-28(e)-333(real,)-333(complex)-334(or)-333(in)28(teger.)]TJ 0 g 0 G -/F27 9.9626 Tf -188.936 -31.88 Td [(info)]TJ +/F27 9.9626 Tf -188.937 -31.88 Td [(info)]TJ 0 g 0 G -/F8 9.9626 Tf 23.758 0 Td [(Error)-333(co)-28(de.)]TJ 1.148 -11.956 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.612 0 Td [(required)]TJ/F8 9.9626 Tf -29.612 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(out)]TJ/F8 9.9626 Tf 16.549 0 Td [(.)]TJ -50.035 -11.955 Td [(An)-333(in)27(t)1(e)-1(ger)-333(v)56(alue;)-334(0)-333(means)-333(no)-334(error)-333(has)-333(b)-28(een)-333(detec)-1(ted.)]TJ +/F8 9.9626 Tf 23.758 0 Td [(Error)-333(co)-28(de.)]TJ 1.149 -11.956 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(out)]TJ/F8 9.9626 Tf 16.549 0 Td [(.)]TJ -50.035 -11.955 Td [(An)-333(in)28(tege)-1(r)-333(v)56(alue;)-334(0)-333(means)-333(no)-334(error)-333(has)-333(b)-28(een)-333(detecte)-1(d)1(.)]TJ 0 g 0 G - 141.968 -123.08 Td [(78)]TJ + 141.968 -123.08 Td [(79)]TJ 0 g 0 G ET endstream endobj -1361 0 obj +1375 0 obj << -/Length 6817 +/Length 6841 >> 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 [(geins)-375(|)-375(Dense)-375(matrix)-375(insertion)-375(routine)]TJ +/F16 11.9552 Tf 175.796 706.129 Td [(geins)-375(|)-375(Dense)-375(matrix)-375(insertion)-375(routine)]TJ 0 g 0 G 0 g 0 G /F30 9.9626 Tf -25.091 -18.389 Td [(call)-525(psb_geins\050m,)-525(irw,)-525(val,)-525(x,)-525(desc_a,)-525(info)-525([,dupl,local]\051)]TJ @@ -15701,119 +15825,119 @@ BT 0 g 0 G 0 -19.431 Td [(m)]TJ 0 g 0 G -/F8 9.9626 Tf 14.529 0 Td [(Num)28(b)-28(er)-333(of)-334(ro)28(ws)-333(in)]TJ/F11 9.9626 Tf 84.517 0 Td [(v)-36(al)]TJ/F8 9.9626 Tf 16.942 0 Td [(to)-333(b)-28(e)-333(inserted.)]TJ -91.081 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 27.951 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf 23.073 0 Td [(.)]TJ -51.024 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.183 0 Td [(required)]TJ/F8 9.9626 Tf 41.899 0 Td [(.)]TJ -67.082 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(in)28(teger)-333(v)55(alue.)]TJ +/F8 9.9626 Tf 14.529 0 Td [(Num)28(b)-28(er)-333(of)-334(ro)28(ws)-333(in)]TJ/F11 9.9626 Tf 84.516 0 Td [(v)-36(al)]TJ/F8 9.9626 Tf 16.942 0 Td [(to)-333(b)-28(e)-333(inse)-1(r)1(te)-1(d)1(.)]TJ -91.081 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 27.951 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf 23.073 0 Td [(.)]TJ -51.024 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.184 0 Td [(required)]TJ/F8 9.9626 Tf 41.898 0 Td [(.)]TJ -67.082 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.548 0 Td [(.)]TJ -43.034 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(in)28(teger)-333(v)55(alue.)]TJ 0 g 0 G -/F27 9.9626 Tf -24.907 -19.431 Td [(irw)]TJ +/F27 9.9626 Tf -24.906 -19.431 Td [(irw)]TJ 0 g 0 G -/F8 9.9626 Tf 21.157 0 Td [(Indices)-445(of)-444(the)-444(ro)27(ws)-444(to)-445(b)-27(e)-445(inserted.)-778(Sp)-28(eci\014cally)84(,)-473(r)1(o)27(w)]TJ/F11 9.9626 Tf 237.974 0 Td [(i)]TJ/F8 9.9626 Tf 7.861 0 Td [(of)]TJ/F11 9.9626 Tf 12.453 0 Td [(v)-36(al)]TJ/F8 9.9626 Tf 18.05 0 Td [(will)-444(b)-28(e)-445(in-)]TJ -272.588 -11.955 Td [(serted)-435(in)28(to)-435(the)-436(lo)-27(cal)-436(r)1(o)27(w)-435(corresp)-28(onding)-435(to)-435(the)-435(global)-435(ro)28(w)-435(index)]TJ/F11 9.9626 Tf 289.252 0 Td [(ir)-28(w)]TJ/F8 9.9626 Tf 15.604 0 Td [(\050)]TJ/F11 9.9626 Tf 3.874 0 Td [(i)]TJ/F8 9.9626 Tf 3.433 0 Td [(\051.)]TJ -312.163 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 27.951 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf 23.073 0 Td [(.)]TJ -51.024 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.183 0 Td [(required)]TJ/F8 9.9626 Tf 41.899 0 Td [(.)]TJ -67.082 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.956 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(in)28(teger)-333(arra)27(y)84(.)]TJ +/F8 9.9626 Tf 21.157 0 Td [(Indices)-444(of)-445(the)-444(ro)27(ws)-444(to)-445(b)-27(e)-445(inserted.)-778(Sp)-28(eci\014cally)84(,)-472(ro)27(w)]TJ/F11 9.9626 Tf 237.973 0 Td [(i)]TJ/F8 9.9626 Tf 7.861 0 Td [(of)]TJ/F11 9.9626 Tf 12.454 0 Td [(v)-36(al)]TJ/F8 9.9626 Tf 18.049 0 Td [(will)-444(b)-28(e)-445(in-)]TJ -272.588 -11.955 Td [(serted)-435(in)28(to)-436(th)1(e)-436(lo)-27(cal)-436(ro)28(w)-435(corresp)-28(onding)-435(to)-435(the)-435(global)-435(ro)28(w)-435(index)]TJ/F11 9.9626 Tf 289.252 0 Td [(ir)-28(w)]TJ/F8 9.9626 Tf 15.605 0 Td [(\050)]TJ/F11 9.9626 Tf 3.874 0 Td [(i)]TJ/F8 9.9626 Tf 3.432 0 Td [(\051.)]TJ -312.163 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 27.951 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf 23.073 0 Td [(.)]TJ -51.024 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.184 0 Td [(required)]TJ/F8 9.9626 Tf 41.898 0 Td [(.)]TJ -67.082 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.956 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(in)28(teger)-333(arra)27(y)84(.)]TJ 0 g 0 G -/F27 9.9626 Tf -24.907 -19.43 Td [(v)64(al)]TJ +/F27 9.9626 Tf -24.906 -19.43 Td [(v)64(al)]TJ 0 g 0 G -/F8 9.9626 Tf 19.144 0 Td [(the)-333(dense)-334(submatrix)-333(to)-333(b)-28(e)-333(inserted.)]TJ 5.763 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 27.951 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf 23.073 0 Td [(.)]TJ -51.024 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.183 0 Td [(required)]TJ/F8 9.9626 Tf 41.899 0 Td [(.)]TJ -67.082 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.956 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(rank)-333(1)-333(or)-334(2)-333(arra)28(y)83(.)-444(Sp)-28(eci\014ed)-333(as:)-445(an)-333(in)28(teger)-334(v)56(alue.)]TJ +/F8 9.9626 Tf 19.143 0 Td [(the)-333(dense)-334(submatrix)-333(to)-333(b)-28(e)-333(inserted.)]TJ 5.763 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 27.951 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf 23.073 0 Td [(.)]TJ -51.024 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.184 0 Td [(required)]TJ/F8 9.9626 Tf 41.898 0 Td [(.)]TJ -67.082 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.956 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(rank)-333(1)-333(o)-1(r)-333(2)-333(arra)28(y)83(.)-444(Sp)-28(eci\014ed)-333(as:)-445(an)-333(in)28(teger)-334(v)56(alue.)]TJ 0 g 0 G -/F27 9.9626 Tf -24.907 -19.43 Td [(desc)]TJ +/F27 9.9626 Tf -24.906 -19.43 Td [(desc)]TJ ET q -1 0 0 1 121.81 414.689 cm +1 0 0 1 172.619 414.689 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 125.247 414.49 Td [(a)]TJ +/F27 9.9626 Tf 176.057 414.49 Td [(a)]TJ 0 g 0 G -/F8 9.9626 Tf 10.551 0 Td [(the)-333(comm)27(unication)-333(descriptor.)]TJ -10.996 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 27.951 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf 23.073 0 Td [(.)]TJ -51.024 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.183 0 Td [(required)]TJ/F8 9.9626 Tf 41.899 0 Td [(.)]TJ -67.082 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.956 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(structured)-333(data)-333(of)-334(t)28(yp)-28(e)]TJ +/F8 9.9626 Tf 10.55 0 Td [(the)-333(comm)27(unication)-333(descriptor.)]TJ -10.996 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 27.951 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf 23.073 0 Td [(.)]TJ -51.024 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.184 0 Td [(required)]TJ/F8 9.9626 Tf 41.898 0 Td [(.)]TJ -67.082 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.548 0 Td [(.)]TJ -43.034 -11.956 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(structured)-333(data)-333(of)-334(t)28(yp)-28(e)]TJ 0 0 1 rg 0 0 1 RG /F30 9.9626 Tf 170.915 0 Td [(psb)]TJ ET q -1 0 0 1 312.036 366.869 cm +1 0 0 1 362.845 366.869 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 315.174 366.669 Td [(desc)]TJ +/F30 9.9626 Tf 365.983 366.669 Td [(desc)]TJ ET q -1 0 0 1 336.723 366.869 cm +1 0 0 1 387.532 366.869 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 339.861 366.669 Td [(type)]TJ +/F30 9.9626 Tf 390.67 366.669 Td [(type)]TJ 0 g 0 G -/F8 9.9626 Tf 20.921 0 Td [(.)]TJ +/F8 9.9626 Tf 20.922 0 Td [(.)]TJ 0 g 0 G /F27 9.9626 Tf -260.887 -19.43 Td [(dupl)]TJ 0 g 0 G -/F8 9.9626 Tf 27.259 0 Td [(Ho)28(w)-334(to)-333(handle)-333(duplicate)-333(co)-28(e\016cien)27(ts.)]TJ -2.352 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.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.956 Td [(Sp)-28(eci\014ed)-308(as:)-432(in)27(teger,)-313(p)-28(ossible)-309(v)56(alues:)]TJ/F30 9.9626 Tf 163.696 0 Td [(psb_dupl_ovwrt_)]TJ/F8 9.9626 Tf 78.456 0 Td [(,)]TJ/F30 9.9626 Tf 5.891 0 Td [(psb_dupl_add_)]TJ/F8 9.9626 Tf 67.994 0 Td [(.)]TJ +/F8 9.9626 Tf 27.259 0 Td [(Ho)28(w)-334(to)-333(handle)-333(duplicate)-333(co)-28(e\016cien)27(ts.)]TJ -2.352 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.378 0 Td [(global)]TJ/F8 9.9626 Tf 29.756 0 Td [(.)]TJ -62.135 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.612 0 Td [(optional)]TJ/F8 9.9626 Tf 40.576 0 Td [(.)]TJ -70.188 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.548 0 Td [(.)]TJ -43.034 -11.956 Td [(Sp)-28(eci\014ed)-308(as:)-432(in)27(teger,)-313(p)-28(ossible)-309(v)56(alues:)]TJ/F30 9.9626 Tf 163.697 0 Td [(psb_dupl_ovwrt_)]TJ/F8 9.9626 Tf 78.455 0 Td [(,)]TJ/F30 9.9626 Tf 5.891 0 Td [(psb_dupl_add_)]TJ/F8 9.9626 Tf 67.995 0 Td [(.)]TJ 0 g 0 G /F27 9.9626 Tf -340.944 -19.43 Td [(lo)-32(cal)]TJ 0 g 0 G -/F8 9.9626 Tf 28.055 0 Td [(Whether)-289(the)-289(en)28(tries)-289(in)-289(the)-289(index)-288(v)27(ector)]TJ/F30 9.9626 Tf 172.769 0 Td [(irw)]TJ/F8 9.9626 Tf 15.692 0 Td [(,)-298(are)-289(already)-288(in)-289(lo)-28(cal)-289(n)28(um)28(b)-28(er-)]TJ -191.609 -11.955 Td [(ing.)]TJ 0 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 27.951 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf 23.073 0 Td [(.)]TJ -51.024 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.183 0 Td [(optional)]TJ/F8 9.9626 Tf 40.577 0 Td [(.)]TJ -65.76 -11.956 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(logical)-333(v)55(alue;)-333(default:)]TJ/F30 9.9626 Tf 163.056 0 Td [(.false.)]TJ/F8 9.9626 Tf 36.612 0 Td [(.)]TJ +/F8 9.9626 Tf 28.054 0 Td [(Whether)-289(the)-289(en)28(tries)-289(in)-289(the)-289(index)-288(v)27(ector)]TJ/F30 9.9626 Tf 172.77 0 Td [(irw)]TJ/F8 9.9626 Tf 15.691 0 Td [(,)-298(are)-289(already)-289(in)-288(lo)-28(cal)-289(n)28(um)28(b)-28(er-)]TJ -191.608 -11.955 Td [(ing.)]TJ 0 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 27.95 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf 23.073 0 Td [(.)]TJ -51.024 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.184 0 Td [(optional)]TJ/F8 9.9626 Tf 40.577 0 Td [(.)]TJ -65.76 -11.956 Td [(Sp)-28(eci\014ed)-333(as:)-444(a)-334(logical)-333(v)55(alue;)-333(default:)]TJ/F30 9.9626 Tf 163.055 0 Td [(.false.)]TJ/F8 9.9626 Tf 36.612 0 Td [(.)]TJ 0 g 0 G -/F27 9.9626 Tf -224.575 -20.68 Td [(On)-383(Return)]TJ +/F27 9.9626 Tf -224.574 -20.68 Td [(On)-383(Return)]TJ 0 g 0 G 0 g 0 G 0 -19.43 Td [(x)]TJ 0 g 0 G -/F8 9.9626 Tf 11.028 0 Td [(the)-333(output)-334(dense)-333(matrix.)]TJ 13.879 -11.956 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(inout)]TJ/F8 9.9626 Tf 26.096 0 Td [(.)]TJ -59.582 -11.955 Td [(Sp)-28(eci\014ed)-232(as:)-394(a)-233(rank)-233(one)-232(or)-233(t)28(w)28(o)-233(arra)28(y)-233(or)-232(an)-233(ob)-55(ject)-233(of)-233(t)28(yp)-28(e)]TJ +/F8 9.9626 Tf 11.028 0 Td [(the)-333(output)-334(d)1(e)-1(n)1(s)-1(e)-333(matrix.)]TJ 13.879 -11.956 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.378 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.378 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.485 0 Td [(inout)]TJ/F8 9.9626 Tf 26.097 0 Td [(.)]TJ -59.582 -11.955 Td [(Sp)-28(eci\014ed)-232(as:)-394(a)-233(rank)-233(one)-232(or)-233(t)28(w)28(o)-233(arra)28(y)-233(or)-232(an)-233(ob)-55(ject)-233(of)-233(t)28(yp)-27(e)]TJ 0 0 1 rg 0 0 1 RG /F30 9.9626 Tf 241.975 0 Td [(psb)]TJ ET q -1 0 0 1 383.096 144.435 cm +1 0 0 1 433.906 144.435 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 386.234 144.236 Td [(T)]TJ +/F30 9.9626 Tf 437.044 144.236 Td [(T)]TJ ET q -1 0 0 1 392.092 144.435 cm +1 0 0 1 442.902 144.435 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 395.231 144.236 Td [(vect)]TJ +/F30 9.9626 Tf 446.04 144.236 Td [(vect)]TJ ET q -1 0 0 1 416.779 144.435 cm +1 0 0 1 467.589 144.435 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 419.918 144.236 Td [(type)]TJ +/F30 9.9626 Tf 470.727 144.236 Td [(type)]TJ 0 g 0 G -/F8 9.9626 Tf 20.921 0 Td [(,)]TJ -316.037 -11.955 Td [(of)-333(t)27(y)1(p)-28(e)-334(real,)-333(complex)-333(or)-334(in)28(teger.)]TJ +/F8 9.9626 Tf 20.922 0 Td [(,)]TJ -316.038 -11.955 Td [(of)-333(t)27(yp)-27(e)-334(real,)-333(complex)-333(or)-334(in)28(teger.)]TJ 0 g 0 G - 141.968 -41.843 Td [(79)]TJ + 141.968 -41.843 Td [(80)]TJ 0 g 0 G ET endstream endobj -1366 0 obj +1379 0 obj << -/Length 1115 +/Length 1111 >> stream 0 g 0 G 0 g 0 G 0 g 0 G BT -/F27 9.9626 Tf 150.705 706.129 Td [(info)]TJ +/F27 9.9626 Tf 99.895 706.129 Td [(info)]TJ 0 g 0 G -/F8 9.9626 Tf 23.758 0 Td [(Error)-333(co)-28(de.)]TJ 1.148 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.612 0 Td [(required)]TJ/F8 9.9626 Tf -29.612 -11.956 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(out)]TJ/F8 9.9626 Tf 16.549 0 Td [(.)]TJ -50.035 -11.955 Td [(An)-333(in)27(t)1(e)-1(ger)-333(v)56(alue;)-334(0)-333(means)-333(no)-334(error)-333(has)-333(b)-28(een)-333(detec)-1(ted.)]TJ/F16 11.9552 Tf -24.906 -21.918 Td [(Notes)]TJ +/F8 9.9626 Tf 23.758 0 Td [(Error)-333(co)-28(de.)]TJ 1.149 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.956 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(out)]TJ/F8 9.9626 Tf 16.549 0 Td [(.)]TJ -50.035 -11.955 Td [(An)-333(in)28(tege)-1(r)-333(v)56(alue;)-334(0)-333(means)-333(no)-334(error)-333(has)-333(b)-28(een)-333(detecte)-1(d)1(.)]TJ/F16 11.9552 Tf -24.907 -21.918 Td [(Notes)]TJ 0 g 0 G -/F8 9.9626 Tf 12.176 -19.925 Td [(1.)]TJ +/F8 9.9626 Tf 12.177 -19.925 Td [(1.)]TJ 0 g 0 G [-500(Dense)-333(v)27(ectors/matrices)-333(do)-333(not)-334(ha)28(v)28(e)-334(an)-333(asso)-28(ciated)-333(state;)]TJ 0 g 0 G 0 -19.925 Td [(2.)]TJ 0 g 0 G - [-500(Duplicate)-292(en)28(tries)-293(are)-292(either)-292(o)28(v)28(erwritten)-293(or)-292(added,)-300(there)-292(is)-292(no)-293(p)1(ro)27(vision)-292(for)]TJ 12.73 -11.955 Td [(raising)-333(an)-334(error)-333(condition.)]TJ + [-500(Duplicate)-292(en)28(tries)-293(are)-292(either)-292(o)28(v)28(erwritten)-292(or)-293(added,)-300(there)-292(is)-292(no)-292(pro)27(vision)-292(for)]TJ 12.73 -11.955 Td [(raising)-333(an)-334(error)-333(condition.)]TJ 0 g 0 G - 141.968 -494.147 Td [(80)]TJ + 141.968 -494.147 Td [(81)]TJ 0 g 0 G ET endstream endobj -1375 0 obj +1388 0 obj << /Length 5215 >> @@ -15821,14 +15945,14 @@ 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 [(geasb)-375(|)-375(Assem)31(bly)-375(a)-375(dense)-375(matrix)]TJ +/F16 11.9552 Tf 175.796 706.129 Td [(geasb)-375(|)-375(Assem)31(bly)-375(a)-375(dense)-375(matrix)]TJ 0 g 0 G 0 g 0 G /F30 9.9626 Tf -25.091 -18.389 Td [(call)-525(psb_geasb\050x,)-525(desc_a,)-525(info,)-525(mold\051)]TJ @@ -15843,147 +15967,147 @@ BT 0 -19.925 Td [(desc)]TJ ET q -1 0 0 1 121.81 626.17 cm +1 0 0 1 172.619 626.17 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 125.247 625.971 Td [(a)]TJ +/F27 9.9626 Tf 176.057 625.971 Td [(a)]TJ 0 g 0 G -/F8 9.9626 Tf 10.551 0 Td [(The)-333(comm)27(unication)-333(descriptor.)]TJ -10.996 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.956 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(v)56(ariable)-334(of)-333(t)28(yp)-28(e)]TJ +/F8 9.9626 Tf 10.55 0 Td [(The)-333(comm)27(unication)-333(descriptor.)]TJ -10.996 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.612 0 Td [(required)]TJ/F8 9.9626 Tf -29.612 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.548 0 Td [(.)]TJ -43.034 -11.956 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(v)56(ariable)-334(of)-333(t)28(yp)-28(e)]TJ 0 0 1 rg 0 0 1 RG -/F30 9.9626 Tf 137.346 0 Td [(psb)]TJ +/F30 9.9626 Tf 137.347 0 Td [(psb)]TJ ET q -1 0 0 1 278.467 578.35 cm +1 0 0 1 329.276 578.35 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 281.605 578.15 Td [(desc)]TJ +/F30 9.9626 Tf 332.415 578.15 Td [(desc)]TJ ET q -1 0 0 1 303.154 578.35 cm +1 0 0 1 353.964 578.35 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 306.292 578.15 Td [(type)]TJ +/F30 9.9626 Tf 357.102 578.15 Td [(type)]TJ 0 g 0 G -/F8 9.9626 Tf 20.922 0 Td [(.)]TJ +/F8 9.9626 Tf 20.921 0 Td [(.)]TJ 0 g 0 G -/F27 9.9626 Tf -227.319 -31.88 Td [(mold)]TJ +/F27 9.9626 Tf -227.318 -31.88 Td [(mold)]TJ 0 g 0 G -/F8 9.9626 Tf 29.805 0 Td [(The)-333(desired)-334(dynamic)-333(t)28(yp)-28(e)-333(for)-334(the)-333(in)28(ternal)-333(v)27(ector)-333(storage.)]TJ -4.898 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf 23.073 0 Td [(.)]TJ -55.452 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(optional)]TJ/F8 9.9626 Tf 40.577 0 Td [(.)]TJ -70.188 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.956 Td [(Sp)-28(eci\014ed)-273(as:)-414(an)-274(ob)-55(ject)-273(of)-274(a)-273(class)-273(deriv)28(ed)-274(from)]TJ/F30 9.9626 Tf 198.26 0 Td [(psb)]TJ +/F8 9.9626 Tf 29.805 0 Td [(The)-333(desired)-334(dynamic)-333(t)28(yp)-28(e)-333(for)-334(th)1(e)-334(in)28(ternal)-333(v)27(ector)-333(storage.)]TJ -4.899 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf 23.073 0 Td [(.)]TJ -55.452 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.612 0 Td [(optional)]TJ/F8 9.9626 Tf 40.576 0 Td [(.)]TJ -70.188 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.548 0 Td [(.)]TJ -43.034 -11.956 Td [(Sp)-28(eci\014ed)-273(as:)-414(an)-274(ob)-55(ject)-273(of)-274(a)-273(class)-273(deriv)28(ed)-274(from)]TJ/F30 9.9626 Tf 198.261 0 Td [(psb)]TJ ET q -1 0 0 1 339.381 498.649 cm +1 0 0 1 390.19 498.649 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 342.519 498.449 Td [(T)]TJ +/F30 9.9626 Tf 393.329 498.449 Td [(T)]TJ ET q -1 0 0 1 348.377 498.649 cm +1 0 0 1 399.186 498.649 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 351.515 498.449 Td [(base)]TJ +/F30 9.9626 Tf 402.325 498.449 Td [(base)]TJ ET q -1 0 0 1 373.064 498.649 cm +1 0 0 1 423.874 498.649 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 376.202 498.449 Td [(vect)]TJ +/F30 9.9626 Tf 427.012 498.449 Td [(vect)]TJ ET q -1 0 0 1 397.751 498.649 cm +1 0 0 1 448.561 498.649 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 400.89 498.449 Td [(type)]TJ/F8 9.9626 Tf 20.921 0 Td [(;)-293(this)]TJ -297.009 -11.955 Td [(is)-333(only)-334(allo)28(w)28(ed)-333(when)]TJ/F11 9.9626 Tf 93.317 0 Td [(x)]TJ/F8 9.9626 Tf 9.015 0 Td [(is)-333(of)-334(t)28(yp)-28(e)]TJ +/F30 9.9626 Tf 451.699 498.449 Td [(type)]TJ/F8 9.9626 Tf 20.921 0 Td [(;)-293(this)]TJ -297.009 -11.955 Td [(is)-333(only)-334(allo)28(w)28(ed)-333(when)]TJ/F11 9.9626 Tf 93.317 0 Td [(x)]TJ/F8 9.9626 Tf 9.015 0 Td [(is)-333(of)-334(t)28(yp)-28(e)]TJ 0 0 1 rg 0 0 1 RG /F30 9.9626 Tf 43.78 0 Td [(psb)]TJ ET q -1 0 0 1 287.233 486.693 cm +1 0 0 1 338.042 486.693 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 290.371 486.494 Td [(T)]TJ +/F30 9.9626 Tf 341.18 486.494 Td [(T)]TJ ET q -1 0 0 1 296.229 486.693 cm +1 0 0 1 347.038 486.693 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 299.367 486.494 Td [(vect)]TJ +/F30 9.9626 Tf 350.177 486.494 Td [(vect)]TJ ET q -1 0 0 1 320.916 486.693 cm +1 0 0 1 371.725 486.693 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 324.054 486.494 Td [(type)]TJ +/F30 9.9626 Tf 374.864 486.494 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 -245.081 -21.918 Td [(On)-383(Return)]TJ +/F27 9.9626 Tf -245.08 -21.918 Td [(On)-383(Return)]TJ 0 g 0 G 0 g 0 G 0 -19.925 Td [(x)]TJ 0 g 0 G -/F8 9.9626 Tf 11.028 0 Td [(The)-333(dense)-334(matrix)-333(to)-333(b)-28(e)-334(assem)28(bled.)]TJ 13.879 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(inout)]TJ/F8 9.9626 Tf 26.096 0 Td [(.)]TJ -59.582 -11.956 Td [(Sp)-28(eci\014ed)-433(as:)-645(a)-433(rank)-433(one)-433(or)-434(t)28(w)28(o)-434(arra)28(y)-433(with)-433(the)-434(ALLOCA)84(T)83(ABLE)-433(or)-434(an)]TJ 0 -11.955 Td [(ob)-56(j)1(e)-1(ct)-333(of)-333(t)28(yp)-28(e)]TJ +/F8 9.9626 Tf 11.028 0 Td [(The)-333(dense)-334(matrix)-333(to)-333(b)-28(e)-333(as)-1(sem)28(bled.)]TJ 13.878 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.612 0 Td [(required)]TJ/F8 9.9626 Tf -29.612 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(inout)]TJ/F8 9.9626 Tf 26.096 0 Td [(.)]TJ -59.582 -11.956 Td [(Sp)-28(eci\014ed)-433(as:)-645(a)-433(rank)-433(one)-434(or)-433(t)28(w)28(o)-434(arra)28(y)-433(with)-433(the)-434(ALLOCA)84(T)83(ABLE)-433(or)-434(an)]TJ 0 -11.955 Td [(ob)-56(ject)-333(of)-333(t)28(yp)-28(e)]TJ 0 0 1 rg 0 0 1 RG /F30 9.9626 Tf 63.927 0 Td [(psb)]TJ ET q -1 0 0 1 205.048 385.075 cm +1 0 0 1 255.857 385.075 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 208.186 384.875 Td [(T)]TJ +/F30 9.9626 Tf 258.995 384.875 Td [(T)]TJ ET q -1 0 0 1 214.044 385.075 cm +1 0 0 1 264.853 385.075 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 217.182 384.875 Td [(vect)]TJ +/F30 9.9626 Tf 267.992 384.875 Td [(vect)]TJ ET q -1 0 0 1 238.731 385.075 cm +1 0 0 1 289.541 385.075 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 241.869 384.875 Td [(type)]TJ +/F30 9.9626 Tf 292.679 384.875 Td [(type)]TJ 0 g 0 G -/F8 9.9626 Tf 20.922 0 Td [(,)-333(of)-334(t)28(yp)-28(e)-333(real,)-333(complex)-334(or)-333(in)28(teger.)]TJ +/F8 9.9626 Tf 20.921 0 Td [(,)-333(of)-334(t)28(yp)-28(e)-333(real,)-333(complex)-334(or)-333(in)28(teger.)]TJ 0 g 0 G -/F27 9.9626 Tf -162.896 -31.88 Td [(info)]TJ +/F27 9.9626 Tf -162.895 -31.88 Td [(info)]TJ 0 g 0 G -/F8 9.9626 Tf 23.758 0 Td [(Error)-333(co)-28(de.)]TJ 1.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 +/F8 9.9626 Tf 23.758 0 Td [(Error)-333(co)-28(de.)]TJ 1.148 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.956 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.612 0 Td [(required)]TJ/F8 9.9626 Tf -29.612 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(out)]TJ/F8 9.9626 Tf 16.549 0 Td [(.)]TJ -50.035 -11.955 Td [(An)-333(in)27(t)1(e)-1(ger)-333(v)56(alue;)-334(0)-333(means)-333(no)-334(error)-333(has)-333(b)-28(een)-333(detec)-1(ted.)]TJ 0 g 0 G - 141.968 -214.736 Td [(81)]TJ + 141.968 -214.736 Td [(82)]TJ 0 g 0 G ET endstream endobj -1381 0 obj +1394 0 obj << -/Length 3379 +/Length 3378 >> stream 0 g 0 G 0 g 0 G BT -/F16 11.9552 Tf 150.705 706.129 Td [(psb)]TJ +/F16 11.9552 Tf 99.895 706.129 Td [(psb)]TJ ET q -1 0 0 1 171.761 706.328 cm +1 0 0 1 120.951 706.328 cm []0 d 0 J 0.398 w 0 0 m 4.035 0 l S Q BT -/F16 11.9552 Tf 175.796 706.129 Td [(gefree)-375(|)-375(F)94(rees)-375(a)-375(dense)-375(matrix)]TJ +/F16 11.9552 Tf 124.986 706.129 Td [(gefree)-375(|)-375(F)94(rees)-375(a)-375(dense)-375(matrix)]TJ 0 g 0 G 0 g 0 G /F30 9.9626 Tf -25.091 -18.389 Td [(call)-525(psb_gefree\050x,)-525(desc_a,)-525(info\051)]TJ @@ -15997,91 +16121,91 @@ BT 0 g 0 G 0 -19.925 Td [(x)]TJ 0 g 0 G -/F8 9.9626 Tf 11.028 0 Td [(The)-333(dense)-334(matrix)-333(to)-333(b)-28(e)-333(free)-1(d)1(.)]TJ 13.879 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.378 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.378 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.485 0 Td [(inout)]TJ/F8 9.9626 Tf 26.097 0 Td [(.)]TJ -59.582 -11.956 Td [(Sp)-28(eci\014ed)-433(as:)-645(a)-433(rank)-433(one)-433(or)-434(t)28(w)28(o)-434(arr)1(a)27(y)-433(with)-433(the)-434(ALLOCA)84(T)83(ABLE)-433(or)-434(an)]TJ 0 -11.955 Td [(ob)-55(jec)-1(t)-333(of)-333(t)28(yp)-28(e)]TJ +/F8 9.9626 Tf 11.028 0 Td [(The)-333(dense)-334(matrix)-333(to)-333(b)-28(e)-334(f)1(re)-1(ed.)]TJ 13.879 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(inout)]TJ/F8 9.9626 Tf 26.096 0 Td [(.)]TJ -59.582 -11.956 Td [(Sp)-28(eci\014ed)-433(as:)-645(a)-433(rank)-433(one)-433(or)-434(t)28(w)28(o)-434(arra)28(y)-433(with)-433(the)-434(ALLOCA)84(T)83(ABLE)-433(or)-434(an)]TJ 0 -11.955 Td [(ob)-56(j)1(e)-1(ct)-333(of)-333(t)28(yp)-28(e)]TJ 0 0 1 rg 0 0 1 RG /F30 9.9626 Tf 63.927 0 Td [(psb)]TJ ET q -1 0 0 1 255.857 566.395 cm +1 0 0 1 205.048 566.395 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 258.995 566.195 Td [(T)]TJ +/F30 9.9626 Tf 208.186 566.195 Td [(T)]TJ ET q -1 0 0 1 264.853 566.395 cm +1 0 0 1 214.044 566.395 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 267.992 566.195 Td [(vect)]TJ +/F30 9.9626 Tf 217.182 566.195 Td [(vect)]TJ ET q -1 0 0 1 289.541 566.395 cm +1 0 0 1 238.731 566.395 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 292.679 566.195 Td [(type)]TJ +/F30 9.9626 Tf 241.869 566.195 Td [(type)]TJ 0 g 0 G -/F8 9.9626 Tf 20.921 0 Td [(,)-333(of)-334(t)28(yp)-28(e)-333(real,)-333(complex)-334(or)-333(in)28(teger.)]TJ +/F8 9.9626 Tf 20.922 0 Td [(,)-333(of)-334(t)28(yp)-28(e)-333(real,)-333(complex)-334(or)-333(in)28(teger.)]TJ 0 g 0 G -/F27 9.9626 Tf -162.895 -31.88 Td [(desc)]TJ +/F27 9.9626 Tf -162.896 -31.88 Td [(desc)]TJ ET q -1 0 0 1 172.619 534.514 cm +1 0 0 1 121.81 534.514 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 176.057 534.315 Td [(a)]TJ +/F27 9.9626 Tf 125.247 534.315 Td [(a)]TJ 0 g 0 G -/F8 9.9626 Tf 10.55 0 Td [(The)-333(comm)27(unication)-333(descriptor.)]TJ -10.996 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.612 0 Td [(required)]TJ/F8 9.9626 Tf -29.612 -11.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(v)56(ariable)-334(of)-333(t)28(yp)-28(e)]TJ +/F8 9.9626 Tf 10.551 0 Td [(The)-333(comm)27(unication)-333(descriptor.)]TJ -10.996 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.956 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(v)56(ariable)-334(of)-333(t)28(yp)-28(e)]TJ 0 0 1 rg 0 0 1 RG -/F30 9.9626 Tf 137.347 0 Td [(psb)]TJ +/F30 9.9626 Tf 137.346 0 Td [(psb)]TJ ET q -1 0 0 1 329.276 486.693 cm +1 0 0 1 278.467 486.693 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 332.415 486.494 Td [(desc)]TJ +/F30 9.9626 Tf 281.605 486.494 Td [(desc)]TJ ET q -1 0 0 1 353.964 486.693 cm +1 0 0 1 303.154 486.693 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 357.102 486.494 Td [(type)]TJ +/F30 9.9626 Tf 306.292 486.494 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 -227.318 -33.873 Td [(On)-383(Return)]TJ +/F27 9.9626 Tf -227.319 -33.873 Td [(On)-383(Return)]TJ 0 g 0 G 0 g 0 G 0 -19.925 Td [(info)]TJ 0 g 0 G -/F8 9.9626 Tf 23.758 0 Td [(Error)-333(co)-28(de.)]TJ 1.148 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.612 0 Td [(required)]TJ/F8 9.9626 Tf -29.612 -11.956 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(out)]TJ/F8 9.9626 Tf 16.549 0 Td [(.)]TJ -50.035 -11.955 Td [(An)-333(in)27(t)1(e)-1(ger)-333(v)56(alue;)-334(0)-333(means)-333(no)-334(error)-333(has)-333(b)-28(een)-333(detec)-1(ted.)]TJ +/F8 9.9626 Tf 23.758 0 Td [(Error)-333(co)-28(de.)]TJ 1.149 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.956 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(out)]TJ/F8 9.9626 Tf 16.549 0 Td [(.)]TJ -50.035 -11.955 Td [(An)-333(in)28(tege)-1(r)-333(v)56(alue;)-334(0)-333(means)-333(no)-334(error)-333(has)-333(b)-28(een)-333(detecte)-1(d)1(.)]TJ 0 g 0 G - 141.968 -294.437 Td [(82)]TJ + 141.968 -294.437 Td [(83)]TJ 0 g 0 G ET endstream endobj -1385 0 obj +1398 0 obj << -/Length 3437 +/Length 3438 >> 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 [(gelp)-375(|)-375(Applies)-375(a)-375(left)-375(p)-31(erm)31(utation)-375(to)-375(a)-375(dense)-375(matrix)]TJ +/F16 11.9552 Tf 175.796 706.129 Td [(gelp)-375(|)-375(Applies)-375(a)-375(left)-375(p)-31(erm)31(utation)-375(to)-375(a)-375(dense)-375(matrix)]TJ 0 g 0 G 0 g 0 G /F30 9.9626 Tf -25.091 -18.389 Td [(call)-525(psb_gelp\050trans,)-525(iperm,)-525(x,)-525(info\051)]TJ @@ -16095,62 +16219,62 @@ BT 0 g 0 G 0 -19.925 Td [(trans)]TJ 0 g 0 G -/F8 9.9626 Tf 30.609 0 Td [(A)-333(c)27(haracter)-333(that)-333(sp)-28(eci\014es)-333(whether)-334(to)-333(p)-28(erm)28(ute)]TJ/F11 9.9626 Tf 204.179 0 Td [(A)]TJ/F8 9.9626 Tf 10.793 0 Td [(or)]TJ/F11 9.9626 Tf 12.204 0 Td [(A)]TJ/F10 6.9738 Tf 7.472 3.616 Td [(T)]TJ/F8 9.9626 Tf 6.276 -3.616 Td [(.)]TJ -246.626 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.956 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(single)-333(c)28(haracte)-1(r)-333(with)-333(v)55(alu)1(e)-334('N')-333(for)]TJ/F11 9.9626 Tf 217.435 0 Td [(A)]TJ/F8 9.9626 Tf 10.793 0 Td [(or)-333('T')-334(for)]TJ/F11 9.9626 Tf 43.503 0 Td [(A)]TJ/F10 6.9738 Tf 7.472 3.616 Td [(T)]TJ/F8 9.9626 Tf 6.277 -3.616 Td [(.)]TJ +/F8 9.9626 Tf 30.609 0 Td [(A)-333(c)27(har)1(ac)-1(ter)-333(that)-333(sp)-28(eci\014es)-333(whether)-334(to)-333(p)-28(erm)28(ute)]TJ/F11 9.9626 Tf 204.179 0 Td [(A)]TJ/F8 9.9626 Tf 10.793 0 Td [(or)]TJ/F11 9.9626 Tf 12.204 0 Td [(A)]TJ/F10 6.9738 Tf 7.472 3.616 Td [(T)]TJ/F8 9.9626 Tf 6.276 -3.616 Td [(.)]TJ -246.626 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.378 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.378 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.485 0 Td [(in)]TJ/F8 9.9626 Tf 9.548 0 Td [(.)]TJ -43.033 -11.956 Td [(Sp)-28(eci\014ed)-333(as:)-444(a)-334(single)-333(c)28(haracter)-334(with)-333(v)56(alue)-334('N')-333(for)]TJ/F11 9.9626 Tf 217.435 0 Td [(A)]TJ/F8 9.9626 Tf 10.792 0 Td [(or)-333('T')-334(for)]TJ/F11 9.9626 Tf 43.504 0 Td [(A)]TJ/F10 6.9738 Tf 7.472 3.616 Td [(T)]TJ/F8 9.9626 Tf 6.276 -3.616 Td [(.)]TJ 0 g 0 G -/F27 9.9626 Tf -310.387 -31.88 Td [(ip)-32(erm)]TJ +/F27 9.9626 Tf -310.386 -31.88 Td [(ip)-32(erm)]TJ 0 g 0 G -/F8 9.9626 Tf 34.364 0 Td [(An)-333(in)28(te)-1(ger)-333(arra)28(y)-333(con)27(tainin)1(g)-334(p)-28(erm)28(utation)-333(information.)]TJ -9.457 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.956 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(in)28(teger)-333(one-dimensional)-334(arra)28(y)83(.)]TJ +/F8 9.9626 Tf 34.364 0 Td [(An)-333(in)28(tege)-1(r)-333(arra)28(y)-333(con)27(tain)1(ing)-334(p)-28(erm)28(utation)-333(information.)]TJ -9.457 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.378 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.378 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.485 0 Td [(in)]TJ/F8 9.9626 Tf 9.548 0 Td [(.)]TJ -43.033 -11.956 Td [(Sp)-28(eci\014ed)-333(as:)-444(a)-1(n)-333(in)28(teger)-333(one-dimensional)-334(arra)28(y)84(.)]TJ 0 g 0 G /F27 9.9626 Tf -24.907 -31.88 Td [(x)]TJ 0 g 0 G -/F8 9.9626 Tf 11.028 0 Td [(The)-333(dense)-334(matrix)-333(to)-333(b)-28(e)-334(p)-27(erm)27(ut)1(e)-1(d.)]TJ 13.879 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.956 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(inout)]TJ/F8 9.9626 Tf 26.096 0 Td [(.)]TJ -59.582 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(one)-333(or)-334(t)28(w)28(o)-333(dimensional)-334(arra)28(y)84(.)]TJ +/F8 9.9626 Tf 11.028 0 Td [(The)-333(dense)-334(matrix)-333(to)-333(b)-28(e)-333(p)-28(erm)27(u)1(te)-1(d)1(.)]TJ 13.879 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.378 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.378 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.956 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.485 0 Td [(inout)]TJ/F8 9.9626 Tf 26.097 0 Td [(.)]TJ -59.582 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(one)-333(or)-333(t)27(w)28(o)-333(dimensional)-334(arra)28(y)84(.)]TJ 0 g 0 G /F27 9.9626 Tf -24.907 -33.873 Td [(On)-383(Return)]TJ 0 g 0 G 0 g 0 G 0 -19.925 Td [(info)]TJ 0 g 0 G -/F8 9.9626 Tf 23.758 0 Td [(Error)-333(co)-28(de.)]TJ 1.149 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.956 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(out)]TJ/F8 9.9626 Tf 16.549 0 Td [(.)]TJ -50.035 -11.955 Td [(An)-333(in)28(tege)-1(r)-333(v)56(alue;)-334(0)-333(means)-333(no)-334(error)-333(has)-333(b)-28(een)-333(detecte)-1(d)1(.)]TJ +/F8 9.9626 Tf 23.758 0 Td [(Error)-333(co)-28(de.)]TJ 1.149 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.378 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.378 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.956 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.485 0 Td [(out)]TJ/F8 9.9626 Tf 16.549 0 Td [(.)]TJ -50.034 -11.955 Td [(An)-333(in)28(tege)-1(r)-333(v)56(alue;)-334(0)-333(means)-333(no)-334(error)-333(has)-333(b)-28(een)-333(detected.)]TJ 0 g 0 G - 141.968 -226.691 Td [(83)]TJ + 141.967 -226.691 Td [(84)]TJ 0 g 0 G ET endstream endobj -1390 0 obj +1403 0 obj << -/Length 6547 +/Length 6540 >> stream 0 g 0 G 0 g 0 G BT -/F16 11.9552 Tf 150.705 706.129 Td [(psb)]TJ +/F16 11.9552 Tf 99.895 706.129 Td [(psb)]TJ ET q -1 0 0 1 171.761 706.328 cm +1 0 0 1 120.951 706.328 cm []0 d 0 J 0.398 w 0 0 m 4.035 0 l S Q BT -/F16 11.9552 Tf 175.796 706.129 Td [(glob)]TJ +/F16 11.9552 Tf 124.986 706.129 Td [(glob)]TJ ET q -1 0 0 1 201.26 706.328 cm +1 0 0 1 150.451 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.295 706.129 Td [(to)]TJ +/F16 11.9552 Tf 154.486 706.129 Td [(to)]TJ ET q -1 0 0 1 218.057 706.328 cm +1 0 0 1 167.248 706.328 cm []0 d 0 J 0.398 w 0 0 m 4.035 0 l S Q BT -/F16 11.9552 Tf 222.092 706.129 Td [(lo)-31(c)-375(|)-375(Global)-375(to)-375(lo)-31(cal)-375(indices)-375(con)31(v)31(ertion)]TJ +/F16 11.9552 Tf 171.283 706.129 Td [(lo)-31(c)-375(|)-375(Global)-375(to)-375(lo)-31(cal)-375(indices)-375(con)31(v)31(ertion)]TJ 0 g 0 G 0 g 0 G -/F30 9.9626 Tf -71.387 -18.389 Td [(call)-525(psb_glob_to_loc\050x,)-525(y,)-525(desc_a,)-525(info,)-525(iact,owned\051)]TJ 0 -11.956 Td [(call)-525(psb_glob_to_loc\050x,)-525(desc_a,)-525(info,)-525(iact,owned\051)]TJ +/F30 9.9626 Tf -71.388 -18.389 Td [(call)-525(psb_glob_to_loc\050x,)-525(y,)-525(desc_a,)-525(info,)-525(iact,owned\051)]TJ 0 -11.956 Td [(call)-525(psb_glob_to_loc\050x,)-525(desc_a,)-525(info,)-525(iact,owned\051)]TJ 0 g 0 G /F27 9.9626 Tf 0 -21.201 Td [(T)32(yp)-32(e:)]TJ 0 g 0 G @@ -16159,193 +16283,94 @@ BT /F27 9.9626 Tf -33.797 -19.639 Td [(On)-383(En)32(try)]TJ 0 g 0 G 0 g 0 G - 0 -19.639 Td [(x)]TJ -0 g 0 G -/F8 9.9626 Tf 11.028 0 Td [(An)-333(in)28(tege)-1(r)-333(v)28(ector)-333(of)-334(indices)-333(to)-333(b)-28(e)-334(con)28(v)28(erted.)]TJ 13.878 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.612 0 Td [(required)]TJ/F8 9.9626 Tf -29.612 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in,)-383(inout)]TJ/F8 9.9626 Tf 42.645 0 Td [(.)]TJ -76.131 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(rank)-333(one)-334(i)1(n)27(teger)-333(arra)28(y)83(.)]TJ -0 g 0 G -/F27 9.9626 Tf -24.906 -31.594 Td [(desc)]TJ -ET -q -1 0 0 1 172.619 536.09 cm -[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S -Q -BT -/F27 9.9626 Tf 176.057 535.891 Td [(a)]TJ -0 g 0 G -/F8 9.9626 Tf 10.55 0 Td [(the)-333(comm)27(unication)-333(descriptor.)]TJ -10.996 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 27.951 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf 23.073 0 Td [(.)]TJ -51.024 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.184 0 Td [(required)]TJ/F8 9.9626 Tf 41.898 0 Td [(.)]TJ -67.082 -11.956 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.548 0 Td [(.)]TJ -43.034 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(structured)-333(data)-333(of)-334(t)28(yp)-28(e)]TJ -0 0 1 rg 0 0 1 RG -/F30 9.9626 Tf 170.915 0 Td [(psb)]TJ -ET -q -1 0 0 1 362.845 488.27 cm -[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S -Q -BT -/F30 9.9626 Tf 365.983 488.07 Td [(desc)]TJ -ET -q -1 0 0 1 387.532 488.27 cm -[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S -Q -BT -/F30 9.9626 Tf 390.67 488.07 Td [(type)]TJ -0 g 0 G -/F8 9.9626 Tf 20.922 0 Td [(.)]TJ -0 g 0 G -/F27 9.9626 Tf -260.887 -19.638 Td [(iact)]TJ -0 g 0 G -/F8 9.9626 Tf 23.28 0 Td [(sp)-28(eci\014es)-333(action)-334(to)-333(b)-28(e)-333(tak)28(en)-334(in)-333(case)-333(of)-334(range)-333(errors.)-444(Scop)-28(e:)]TJ/F27 9.9626 Tf 257.148 0 Td [(global)]TJ/F8 9.9626 Tf -255.522 -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 [(Sp)-28(eci\014ed)-255(as:)-405(a)-256(c)28(haracter)-255(v)56(ariable)]TJ/F30 9.9626 Tf 143.584 0 Td [(I)]TJ/F8 9.9626 Tf 5.231 0 Td [(gnore,)]TJ/F30 9.9626 Tf 29.293 0 Td [(W)]TJ/F8 9.9626 Tf 5.23 0 Td [(arning)-255(or)]TJ/F30 9.9626 Tf 41.67 0 Td [(A)]TJ/F8 9.9626 Tf 5.23 0 Td [(b)-28(ort,)-271(d)1(e)-1(f)1(ault)]TJ/F30 9.9626 Tf 56.742 0 Td [(I)]TJ/F8 9.9626 Tf 5.23 0 Td [(gnore.)]TJ -0 g 0 G -/F27 9.9626 Tf -317.116 -19.639 Td [(o)32(wned)]TJ -0 g 0 G -/F8 9.9626 Tf 36.647 0 Td [(Sp)-28(ec\014es)-333(v)55(alid)-333(range)-333(of)-333(input)-334(Scop)-27(e:)]TJ/F27 9.9626 Tf 158.932 0 Td [(global)]TJ/F8 9.9626 Tf -170.673 -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 [(If)-294(true,)-302(then)-294(only)-295(indices)-294(strictly)-294(o)28(wned)-295(b)28(y)-294(the)-294(curren)28(t)-295(pro)-27(ce)-1(ss)-294(are)-294(consid-)]TJ 0 -11.955 Td [(ered)-333(v)55(alid,)-333(if)-333(false)-334(then)-333(halo)-333(indices)-334(are)-333(also)-333(accepted.)-445(Default:)-444(false.)]TJ -0 g 0 G -/F27 9.9626 Tf -24.906 -21.202 Td [(On)-383(Return)]TJ -0 g 0 G -0 g 0 G - 0 -19.639 Td [(x)]TJ -0 g 0 G -/F8 9.9626 Tf 11.028 0 Td [(If)]TJ/F11 9.9626 Tf 10.132 0 Td [(y)]TJ/F8 9.9626 Tf 8.733 0 Td [(is)-350(not)-351(presen)28(t,)-355(then)]TJ/F11 9.9626 Tf 88.587 0 Td [(x)]TJ/F8 9.9626 Tf 9.185 0 Td [(is)-350(o)27(v)28(erwritten)-350(with)-350(the)-351(translated)-350(in)28(teger)-351(indices.)]TJ -102.759 -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 [(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(i)1(n)27(teger)-333(arra)28(y)83(.)]TJ -0 g 0 G -/F27 9.9626 Tf -24.906 -19.639 Td [(y)]TJ -0 g 0 G -/F8 9.9626 Tf 11.028 0 Td [(If)]TJ/F11 9.9626 Tf 10.04 0 Td [(y)]TJ/F8 9.9626 Tf 8.64 0 Td [(is)-341(presen)28(t,)-343(then)]TJ/F11 9.9626 Tf 70.404 0 Td [(y)]TJ/F8 9.9626 Tf 8.64 0 Td [(is)-341(o)28(v)27(erwritten)-341(with)-341(the)-341(translated)-341(in)28(teger)-341(indices,)-343(and)]TJ/F11 9.9626 Tf -83.846 -11.955 Td [(x)]TJ/F8 9.9626 Tf 9.015 0 Td [(is)-333(left)-334(unc)28(hanged.)-444(Scop)-28(e:)]TJ/F27 9.9626 Tf 113.242 0 Td [(global)]TJ/F8 9.9626 Tf -122.257 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.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 [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(rank)-333(one)-334(i)1(n)27(teger)-333(arra)28(y)83(.)]TJ -0 g 0 G -/F27 9.9626 Tf -24.906 -19.638 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(t)1(e)-1(d.)]TJ/F16 11.9552 Tf -24.906 -21.202 Td [(Notes)]TJ -0 g 0 G -/F8 9.9626 Tf 166.874 -29.887 Td [(84)]TJ -0 g 0 G -ET - -endstream -endobj -1394 0 obj -<< -/Length 692 ->> -stream -0 g 0 G -0 g 0 G -0 g 0 G -BT -/F8 9.9626 Tf 112.072 706.129 Td [(1.)]TJ -0 g 0 G - [-500(If)-352(an)-353(input)-352(index)-352(is)-353(out)-352(of)-352(range,)-358(then)-352(the)-352(corresp)-28(onding)-352(output)-353(index)-352(is)]TJ 12.73 -11.955 Td [(set)-333(to)-334(a)-333(negativ)28(e)-334(n)28(um)28(b)-28(er;)]TJ -0 g 0 G - -12.73 -19.926 Td [(2.)]TJ -0 g 0 G - [-500(The)-476(default)]TJ/F30 9.9626 Tf 69.542 0 Td [(I)]TJ/F8 9.9626 Tf 5.231 0 Td [(gnore)-476(means)-477(th)1(at)-477(the)-476(negativ)28(e)-476(output)-477(is)-476(the)-476(only)-476(action)]TJ -62.043 -11.955 Td [(tak)28(en)-334(on)-333(an)-333(out-of-range)-333(input.)]TJ -0 g 0 G - 141.968 -571.855 Td [(85)]TJ -0 g 0 G -ET - -endstream -endobj -1402 0 obj -<< -/Length 5736 ->> -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 [(lo)-31(c)]TJ -ET -q -1 0 0 1 193.415 706.328 cm -[]0 d 0 J 0.398 w 0 0 m 4.035 0 l S -Q -BT -/F16 11.9552 Tf 197.45 706.129 Td [(to)]TJ -ET -q -1 0 0 1 210.212 706.328 cm -[]0 d 0 J 0.398 w 0 0 m 4.035 0 l S -Q -BT -/F16 11.9552 Tf 214.247 706.129 Td [(glob)-375(|)-375(Lo)-31(cal)-375(to)-375(global)-375(indices)-375(con)31(v)31(ersion)]TJ -0 g 0 G -0 g 0 G -/F30 9.9626 Tf -63.542 -18.389 Td [(call)-525(psb_loc_to_glob\050x,)-525(y,)-525(desc_a,)-525(info,)-525(iact\051)]TJ 0 -11.956 Td [(call)-525(psb_loc_to_glob\050x,)-525(desc_a,)-525(info,)-525(iact\051)]TJ -0 g 0 G -/F27 9.9626 Tf 0 -21.917 Td [(T)32(yp)-32(e:)]TJ -0 g 0 G -/F8 9.9626 Tf 33.797 0 Td [(Async)28(hronous.)]TJ -0 g 0 G -/F27 9.9626 Tf -33.797 -19.926 Td [(On)-383(En)32(try)]TJ -0 g 0 G -0 g 0 G - 0 -19.925 Td [(x)]TJ + 0 -19.639 Td [(x)]TJ 0 g 0 G -/F8 9.9626 Tf 11.028 0 Td [(An)-333(in)28(tege)-1(r)-333(v)28(ector)-333(of)-334(indices)-333(to)-333(b)-28(e)-334(con)28(v)28(erted.)]TJ 13.879 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.378 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.378 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.956 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.485 0 Td [(in,)-383(inout)]TJ/F8 9.9626 Tf 42.646 0 Td [(.)]TJ -76.131 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-444(a)-334(rank)-333(one)-333(in)27(teger)-333(arra)28(y)83(.)]TJ +/F8 9.9626 Tf 11.028 0 Td [(An)-333(in)28(te)-1(ger)-333(v)28(ector)-333(of)-334(indices)-333(to)-333(b)-28(e)-334(con)28(v)28(erted.)]TJ 13.879 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in,)-383(inout)]TJ/F8 9.9626 Tf 42.645 0 Td [(.)]TJ -76.131 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(rank)-333(one)-333(in)27(teger)-333(arra)28(y)83(.)]TJ 0 g 0 G -/F27 9.9626 Tf -24.907 -31.88 Td [(desc)]TJ +/F27 9.9626 Tf -24.907 -31.594 Td [(desc)]TJ ET q -1 0 0 1 172.619 534.514 cm +1 0 0 1 121.81 536.09 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 176.057 534.315 Td [(a)]TJ +/F27 9.9626 Tf 125.247 535.891 Td [(a)]TJ 0 g 0 G -/F8 9.9626 Tf 10.55 0 Td [(the)-333(comm)27(unication)-333(descriptor.)]TJ -10.996 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 27.951 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf 23.073 0 Td [(.)]TJ -51.024 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.184 0 Td [(required)]TJ/F8 9.9626 Tf 41.898 0 Td [(.)]TJ -67.082 -11.956 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.548 0 Td [(.)]TJ -43.034 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(structured)-333(data)-333(of)-334(t)28(yp)-28(e)]TJ +/F8 9.9626 Tf 10.551 0 Td [(the)-333(comm)27(unication)-333(descriptor.)]TJ -10.996 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 27.951 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf 23.073 0 Td [(.)]TJ -51.024 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.183 0 Td [(required)]TJ/F8 9.9626 Tf 41.899 0 Td [(.)]TJ -67.082 -11.956 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(structured)-333(data)-333(of)-334(t)28(yp)-28(e)]TJ 0 0 1 rg 0 0 1 RG /F30 9.9626 Tf 170.915 0 Td [(psb)]TJ ET q -1 0 0 1 362.845 486.693 cm +1 0 0 1 312.036 488.27 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 365.983 486.494 Td [(desc)]TJ +/F30 9.9626 Tf 315.174 488.07 Td [(desc)]TJ ET q -1 0 0 1 387.532 486.693 cm +1 0 0 1 336.723 488.27 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 390.67 486.494 Td [(type)]TJ +/F30 9.9626 Tf 339.861 488.07 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.925 Td [(iact)]TJ +/F27 9.9626 Tf -260.887 -19.638 Td [(iact)]TJ 0 g 0 G -/F8 9.9626 Tf 23.28 0 Td [(sp)-28(eci\014es)-333(action)-334(to)-333(b)-28(e)-333(tak)28(en)-334(in)-333(case)-333(of)-334(range)-333(errors.)-444(Scop)-28(e:)]TJ/F27 9.9626 Tf 257.148 0 Td [(global)]TJ/F8 9.9626 Tf -255.522 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.612 0 Td [(optional)]TJ/F8 9.9626 Tf -29.612 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.548 0 Td [(.)]TJ -43.034 -11.956 Td [(Sp)-28(eci\014ed)-255(as:)-405(a)-256(c)28(haracter)-255(v)56(ariable)]TJ/F30 9.9626 Tf 143.584 0 Td [(I)]TJ/F8 9.9626 Tf 5.231 0 Td [(gnore,)]TJ/F30 9.9626 Tf 29.293 0 Td [(W)]TJ/F8 9.9626 Tf 5.23 0 Td [(arning)-255(or)]TJ/F30 9.9626 Tf 41.67 0 Td [(A)]TJ/F8 9.9626 Tf 5.23 0 Td [(b)-28(ort,)-271(d)1(e)-1(f)1(ault)]TJ/F30 9.9626 Tf 56.742 0 Td [(I)]TJ/F8 9.9626 Tf 5.23 0 Td [(gnore.)]TJ +/F8 9.9626 Tf 23.281 0 Td [(sp)-28(eci\014es)-333(action)-334(to)-333(b)-28(e)-333(tak)28(en)-334(in)-333(case)-333(of)-334(range)-333(errors.)-444(Scop)-28(e:)]TJ/F27 9.9626 Tf 257.147 0 Td [(global)]TJ/F8 9.9626 Tf -255.521 -11.956 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(optional)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-255(as:)-405(a)-256(c)28(haracter)-255(v)56(ariable)]TJ/F30 9.9626 Tf 143.584 0 Td [(I)]TJ/F8 9.9626 Tf 5.23 0 Td [(gnore,)]TJ/F30 9.9626 Tf 29.293 0 Td [(W)]TJ/F8 9.9626 Tf 5.23 0 Td [(arning)-255(or)]TJ/F30 9.9626 Tf 41.67 0 Td [(A)]TJ/F8 9.9626 Tf 5.231 0 Td [(b)-28(ort,)-270(default)]TJ/F30 9.9626 Tf 56.741 0 Td [(I)]TJ/F8 9.9626 Tf 5.231 0 Td [(gnore.)]TJ 0 g 0 G -/F27 9.9626 Tf -317.116 -21.917 Td [(On)-383(Return)]TJ +/F27 9.9626 Tf -317.117 -19.639 Td [(o)32(wned)]TJ 0 g 0 G +/F8 9.9626 Tf 36.647 0 Td [(Sp)-28(ec\014es)-333(v)55(alid)-333(range)-333(of)-334(i)1(nput)-334(Scop)-27(e:)]TJ/F27 9.9626 Tf 158.933 0 Td [(global)]TJ/F8 9.9626 Tf -170.673 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(optional)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.955 Td [(If)-294(true,)-302(then)-294(only)-295(indices)-294(strictly)-294(o)28(wned)-295(b)28(y)-294(the)-294(curren)28(t)-295(pro)-27(ces)-1(s)-294(are)-294(consid-)]TJ 0 -11.955 Td [(ered)-333(v)55(alid,)-333(if)-333(false)-334(then)-333(halo)-333(indices)-334(are)-333(also)-333(accepted.)-445(Default:)-444(false.)]TJ +0 g 0 G +/F27 9.9626 Tf -24.907 -21.202 Td [(On)-383(Return)]TJ 0 g 0 G - 0 -19.926 Td [(x)]TJ 0 g 0 G -/F8 9.9626 Tf 11.028 0 Td [(If)]TJ/F11 9.9626 Tf 10.132 0 Td [(y)]TJ/F8 9.9626 Tf 8.733 0 Td [(is)-350(not)-351(presen)28(t,)-355(then)]TJ/F11 9.9626 Tf 88.587 0 Td [(x)]TJ/F8 9.9626 Tf 9.185 0 Td [(is)-350(o)27(v)28(erwritten)-350(with)-350(the)-351(translated)-350(in)28(teger)-351(indices.)]TJ -102.759 -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 [(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(i)1(n)27(teger)-333(arra)28(y)83(.)]TJ + 0 -19.639 Td [(x)]TJ 0 g 0 G -/F27 9.9626 Tf -24.906 -19.926 Td [(y)]TJ +/F8 9.9626 Tf 11.028 0 Td [(If)]TJ/F11 9.9626 Tf 10.133 0 Td [(y)]TJ/F8 9.9626 Tf 8.733 0 Td [(is)-350(not)-351(presen)28(t,)-355(then)]TJ/F11 9.9626 Tf 88.586 0 Td [(x)]TJ/F8 9.9626 Tf 9.185 0 Td [(is)-350(o)27(v)28(erwritten)-350(with)-351(th)1(e)-351(translated)-350(in)28(teger)-351(indices.)]TJ -102.758 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(global)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(inout)]TJ/F8 9.9626 Tf 26.096 0 Td [(.)]TJ -59.582 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(rank)-333(one)-333(in)27(teger)-333(arra)28(y)83(.)]TJ 0 g 0 G -/F8 9.9626 Tf 11.028 0 Td [(If)]TJ/F11 9.9626 Tf 10.166 0 Td [(y)]TJ/F8 9.9626 Tf 8.767 0 Td [(is)-354(not)-354(presen)28(t,)-359(then)]TJ/F11 9.9626 Tf 88.732 0 Td [(y)]TJ/F8 9.9626 Tf 8.767 0 Td [(is)-354(o)28(v)28(erwritten)-354(with)-354(the)-354(translated)-353(in)27(teger)-353(indices,)]TJ -102.554 -11.955 Td [(and)]TJ/F11 9.9626 Tf 19.372 0 Td [(x)]TJ/F8 9.9626 Tf 9.015 0 Td [(is)-333(left)-334(unc)28(hanged.)-444(Scop)-28(e:)]TJ/F27 9.9626 Tf 113.242 0 Td [(global)]TJ/F8 9.9626 Tf -141.629 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.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 [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(rank)-333(one)-334(i)1(n)27(teger)-333(arra)28(y)83(.)]TJ +/F27 9.9626 Tf -24.907 -19.639 Td [(y)]TJ 0 g 0 G -/F27 9.9626 Tf -24.906 -19.926 Td [(info)]TJ +/F8 9.9626 Tf 11.028 0 Td [(If)]TJ/F11 9.9626 Tf 10.04 0 Td [(y)]TJ/F8 9.9626 Tf 8.64 0 Td [(is)-341(presen)28(t,)-343(then)]TJ/F11 9.9626 Tf 70.405 0 Td [(y)]TJ/F8 9.9626 Tf 8.64 0 Td [(is)-341(o)28(v)27(erwri)1(tte)-1(n)-341(with)-341(the)-341(translated)-341(in)28(teger)-341(indices,)-343(and)]TJ/F11 9.9626 Tf -83.846 -11.955 Td [(x)]TJ/F8 9.9626 Tf 9.015 0 Td [(is)-333(left)-334(unc)28(hanged.)-444(Scop)-28(e:)]TJ/F27 9.9626 Tf 113.242 0 Td [(global)]TJ/F8 9.9626 Tf -122.257 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(optional)]TJ/F8 9.9626 Tf -29.611 -11.956 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(out)]TJ/F8 9.9626 Tf 16.549 0 Td [(.)]TJ -50.035 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(rank)-333(one)-333(in)27(teger)-333(arra)28(y)83(.)]TJ +0 g 0 G +/F27 9.9626 Tf -24.907 -19.638 Td [(info)]TJ +0 g 0 G +/F8 9.9626 Tf 23.758 0 Td [(Error)-333(co)-28(de.)]TJ 1.149 -11.956 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(out)]TJ/F8 9.9626 Tf 16.549 0 Td [(.)]TJ -50.035 -11.955 Td [(An)-333(in)28(tege)-1(r)-333(v)56(alue;)-334(0)-333(means)-333(no)-334(error)-333(has)-333(b)-28(een)-333(detecte)-1(d)1(.)]TJ/F16 11.9552 Tf -24.907 -21.202 Td [(Notes)]TJ +0 g 0 G +/F8 9.9626 Tf 166.875 -29.887 Td [(85)]TJ +0 g 0 G +ET + +endstream +endobj +1408 0 obj +<< +/Length 705 +>> +stream +0 g 0 G +0 g 0 G +0 g 0 G +BT +/F8 9.9626 Tf 162.881 706.129 Td [(1.)]TJ +0 g 0 G + [-500(If)-352(an)-353(input)-352(index)-352(is)-353(out)-352(of)-353(r)1(ange)-1(,)-357(then)-352(the)-352(corres)-1(p)-27(onding)-353(ou)1(tput)-353(index)-352(is)]TJ 12.73 -11.955 Td [(set)-333(to)-334(a)-333(negativ)28(e)-334(n)28(um)28(b)-28(er;)]TJ +0 g 0 G + -12.73 -19.926 Td [(2.)]TJ 0 g 0 G -/F8 9.9626 Tf 23.758 0 Td [(Error)-333(co)-28(de.)]TJ 1.148 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.612 0 Td [(required)]TJ/F8 9.9626 Tf -29.612 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(out)]TJ/F8 9.9626 Tf 16.549 0 Td [(.)]TJ -50.035 -11.955 Td [(An)-333(in)28(te)-1(ger)-333(v)56(alue;)-334(0)-333(means)-333(no)-334(error)-333(has)-333(b)-28(een)-333(detec)-1(t)1(e)-1(d.)]TJ + [-500(The)-476(default)]TJ/F30 9.9626 Tf 69.543 0 Td [(I)]TJ/F8 9.9626 Tf 5.23 0 Td [(gnore)-476(means)-477(that)-476(the)-476(negativ)28(e)-477(out)1(put)-477(is)-476(the)-476(only)-476(action)]TJ -62.043 -11.955 Td [(tak)28(en)-334(on)-333(an)-333(out-of-range)-333(input.)]TJ 0 g 0 G - 141.968 -115.11 Td [(86)]TJ + 141.968 -571.855 Td [(86)]TJ 0 g 0 G ET endstream endobj -1407 0 obj +1415 0 obj << -/Length 3271 +/Length 5721 >> stream 0 g 0 G @@ -16358,19 +16383,26 @@ q []0 d 0 J 0.398 w 0 0 m 4.035 0 l S Q BT -/F16 11.9552 Tf 124.986 706.129 Td [(is)]TJ +/F16 11.9552 Tf 124.986 706.129 Td [(lo)-31(c)]TJ +ET +q +1 0 0 1 142.605 706.328 cm +[]0 d 0 J 0.398 w 0 0 m 4.035 0 l S +Q +BT +/F16 11.9552 Tf 146.64 706.129 Td [(to)]TJ ET q -1 0 0 1 134.834 706.328 cm +1 0 0 1 159.402 706.328 cm []0 d 0 J 0.398 w 0 0 m 4.035 0 l S Q BT -/F16 11.9552 Tf 138.869 706.129 Td [(o)31(wned)-375(|)]TJ +/F16 11.9552 Tf 163.437 706.129 Td [(glob)-375(|)-375(Lo)-31(cal)-375(to)-375(global)-375(indices)-375(con)31(v)31(ersion)]TJ 0 g 0 G 0 g 0 G -/F30 9.9626 Tf -38.974 -18.389 Td [(call)-525(psb_is_owned\050x,)-525(desc_a\051)]TJ +/F30 9.9626 Tf -63.542 -18.389 Td [(call)-525(psb_loc_to_glob\050x,)-525(y,)-525(desc_a,)-525(info,)-525(iact\051)]TJ 0 -11.956 Td [(call)-525(psb_loc_to_glob\050x,)-525(desc_a,)-525(info,)-525(iact\051)]TJ 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 @@ -16379,57 +16411,65 @@ BT 0 g 0 G 0 -19.925 Td [(x)]TJ 0 g 0 G -/F8 9.9626 Tf 11.028 0 Td [(In)28(teger)-334(index.)]TJ 13.879 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.956 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(scalar)-333(in)28(teger.)]TJ +/F8 9.9626 Tf 11.028 0 Td [(An)-333(in)28(te)-1(ger)-333(v)28(ector)-333(of)-334(indices)-333(to)-333(b)-28(e)-334(con)28(v)28(erted.)]TJ 13.879 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.956 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in,)-383(inout)]TJ/F8 9.9626 Tf 42.645 0 Td [(.)]TJ -76.131 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(rank)-333(one)-333(in)27(teger)-333(arra)28(y)83(.)]TJ 0 g 0 G /F27 9.9626 Tf -24.907 -31.88 Td [(desc)]TJ ET q -1 0 0 1 121.81 546.469 cm +1 0 0 1 121.81 534.514 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 125.247 546.27 Td [(a)]TJ +/F27 9.9626 Tf 125.247 534.315 Td [(a)]TJ 0 g 0 G -/F8 9.9626 Tf 10.551 0 Td [(the)-333(comm)27(unication)-333(descriptor.)]TJ -10.996 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 27.951 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf 23.073 0 Td [(.)]TJ -51.024 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.183 0 Td [(required)]TJ/F8 9.9626 Tf 41.899 0 Td [(.)]TJ -67.082 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.956 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(structured)-333(data)-333(of)-334(t)28(yp)-28(e)]TJ +/F8 9.9626 Tf 10.551 0 Td [(the)-333(comm)27(unication)-333(descriptor.)]TJ -10.996 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 27.951 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf 23.073 0 Td [(.)]TJ -51.024 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.183 0 Td [(required)]TJ/F8 9.9626 Tf 41.899 0 Td [(.)]TJ -67.082 -11.956 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(structured)-333(data)-333(of)-334(t)28(yp)-28(e)]TJ 0 0 1 rg 0 0 1 RG /F30 9.9626 Tf 170.915 0 Td [(psb)]TJ ET q -1 0 0 1 312.036 498.649 cm +1 0 0 1 312.036 486.693 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 315.174 498.449 Td [(desc)]TJ +/F30 9.9626 Tf 315.174 486.494 Td [(desc)]TJ ET q -1 0 0 1 336.723 498.649 cm +1 0 0 1 336.723 486.693 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 339.861 498.449 Td [(type)]TJ +/F30 9.9626 Tf 339.861 486.494 Td [(type)]TJ 0 g 0 G /F8 9.9626 Tf 20.921 0 Td [(.)]TJ 0 g 0 G -/F27 9.9626 Tf -260.887 -21.917 Td [(On)-383(Return)]TJ +/F27 9.9626 Tf -260.887 -19.925 Td [(iact)]TJ 0 g 0 G +/F8 9.9626 Tf 23.281 0 Td [(sp)-28(eci\014es)-333(action)-334(to)-333(b)-28(e)-333(tak)28(en)-334(in)-333(case)-333(of)-334(range)-333(errors.)-444(Scop)-28(e:)]TJ/F27 9.9626 Tf 257.147 0 Td [(global)]TJ/F8 9.9626 Tf -255.521 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(optional)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.956 Td [(Sp)-28(eci\014ed)-255(as:)-405(a)-256(c)28(haracter)-255(v)56(ariable)]TJ/F30 9.9626 Tf 143.584 0 Td [(I)]TJ/F8 9.9626 Tf 5.23 0 Td [(gnore,)]TJ/F30 9.9626 Tf 29.293 0 Td [(W)]TJ/F8 9.9626 Tf 5.23 0 Td [(arning)-255(or)]TJ/F30 9.9626 Tf 41.67 0 Td [(A)]TJ/F8 9.9626 Tf 5.231 0 Td [(b)-28(ort,)-270(default)]TJ/F30 9.9626 Tf 56.741 0 Td [(I)]TJ/F8 9.9626 Tf 5.231 0 Td [(gnore.)]TJ 0 g 0 G - 0 -19.926 Td [(F)96(unction)-384(v)64(alue)]TJ +/F27 9.9626 Tf -317.117 -21.917 Td [(On)-383(Return)]TJ 0 g 0 G -/F8 9.9626 Tf 78.387 0 Td [(A)-302(logical)-301(mask)-302(whic)28(h)-302(is)-302(t)1(rue)-302(if)]TJ/F11 9.9626 Tf 134.085 0 Td [(x)]TJ/F8 9.9626 Tf 8.699 0 Td [(is)-302(o)28(wned)-302(b)28(y)-301(the)-302(curren)28(t)-302(pro-)]TJ -196.264 -11.955 Td [(cess)-334(S)1(c)-1(op)-27(e:)]TJ/F27 9.9626 Tf 52.415 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -52.415 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(out)]TJ/F8 9.9626 Tf 16.549 0 Td [(.)]TJ/F16 11.9552 Tf -74.942 -33.873 Td [(Notes)]TJ 0 g 0 G -/F8 9.9626 Tf 12.177 -19.926 Td [(1.)]TJ + 0 -19.926 Td [(x)]TJ +0 g 0 G +/F8 9.9626 Tf 11.028 0 Td [(If)]TJ/F11 9.9626 Tf 10.133 0 Td [(y)]TJ/F8 9.9626 Tf 8.733 0 Td [(is)-350(not)-351(presen)28(t,)-355(then)]TJ/F11 9.9626 Tf 88.586 0 Td [(x)]TJ/F8 9.9626 Tf 9.185 0 Td [(is)-350(o)27(v)28(erwritten)-350(with)-351(th)1(e)-351(translated)-350(in)28(teger)-351(indices.)]TJ -102.758 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(global)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(inout)]TJ/F8 9.9626 Tf 26.096 0 Td [(.)]TJ -59.582 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(rank)-333(one)-333(in)27(teger)-333(arra)28(y)83(.)]TJ +0 g 0 G +/F27 9.9626 Tf -24.907 -19.926 Td [(y)]TJ 0 g 0 G - [-500(This)-300(routine)-299(returns)-300(a)]TJ/F30 9.9626 Tf 111.213 0 Td [(.true.)]TJ/F8 9.9626 Tf 34.369 0 Td [(v)56(alue)-300(for)-300(an)-300(index)-299(that)-300(is)-300(strictly)-300(o)28(wned)-300(b)28(y)]TJ -132.852 -11.955 Td [(the)-333(curren)28(t)-334(pro)-28(cess,)-333(excluding)-333(the)-334(halo)-333(indices)]TJ +/F8 9.9626 Tf 11.028 0 Td [(If)]TJ/F11 9.9626 Tf 10.167 0 Td [(y)]TJ/F8 9.9626 Tf 8.767 0 Td [(is)-354(not)-354(presen)28(t,)-359(then)]TJ/F11 9.9626 Tf 88.732 0 Td [(y)]TJ/F8 9.9626 Tf 8.766 0 Td [(is)-354(o)28(v)28(erwritten)-354(with)-354(the)-354(translated)-353(in)27(teger)-353(indices,)]TJ -102.553 -11.955 Td [(and)]TJ/F11 9.9626 Tf 19.372 0 Td [(x)]TJ/F8 9.9626 Tf 9.015 0 Td [(is)-333(left)-334(unc)28(hanged.)-444(Scop)-28(e:)]TJ/F27 9.9626 Tf 113.242 0 Td [(global)]TJ/F8 9.9626 Tf -141.629 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(optional)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(out)]TJ/F8 9.9626 Tf 16.549 0 Td [(.)]TJ -50.035 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(rank)-333(one)-333(in)27(teger)-333(arra)28(y)83(.)]TJ +0 g 0 G +/F27 9.9626 Tf -24.907 -19.926 Td [(info)]TJ +0 g 0 G +/F8 9.9626 Tf 23.758 0 Td [(Error)-333(co)-28(de.)]TJ 1.149 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(out)]TJ/F8 9.9626 Tf 16.549 0 Td [(.)]TJ -50.035 -11.955 Td [(An)-333(in)28(tege)-1(r)-333(v)56(alue;)-334(0)-333(means)-333(no)-334(error)-333(has)-333(b)-28(een)-333(detecte)-1(d)1(.)]TJ 0 g 0 G - 141.968 -264.549 Td [(87)]TJ + 141.968 -115.11 Td [(87)]TJ 0 g 0 G ET endstream endobj -1413 0 obj +1420 0 obj << -/Length 4983 +/Length 3279 >> stream 0 g 0 G @@ -16442,17 +16482,17 @@ q []0 d 0 J 0.398 w 0 0 m 4.035 0 l S Q BT -/F16 11.9552 Tf 175.796 706.129 Td [(o)31(wned)]TJ +/F16 11.9552 Tf 175.796 706.129 Td [(is)]TJ ET q -1 0 0 1 213.748 706.328 cm +1 0 0 1 185.644 706.328 cm []0 d 0 J 0.398 w 0 0 m 4.035 0 l S Q BT -/F16 11.9552 Tf 217.783 706.129 Td [(index)-375(|)]TJ +/F16 11.9552 Tf 189.679 706.129 Td [(o)31(wned)-375(|)]TJ 0 g 0 G 0 g 0 G -/F30 9.9626 Tf -67.078 -18.389 Td [(call)-525(psb_owned_index\050y,)-525(x,)-525(desc_a,)-525(info\051)]TJ +/F30 9.9626 Tf -38.974 -18.389 Td [(call)-525(psb_is_owned\050x,)-525(desc_a\051)]TJ 0 g 0 G /F27 9.9626 Tf 0 -21.918 Td [(T)32(yp)-32(e:)]TJ 0 g 0 G @@ -16463,9 +16503,9 @@ BT 0 g 0 G 0 -19.925 Td [(x)]TJ 0 g 0 G -/F8 9.9626 Tf 11.028 0 Td [(In)28(teger)-334(ind)1(ice)-1(s.)]TJ 13.878 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.612 0 Td [(required)]TJ/F8 9.9626 Tf -29.612 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in,)-383(inout)]TJ/F8 9.9626 Tf 42.645 0 Td [(.)]TJ -76.131 -11.956 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(scalar)-333(or)-334(a)-333(rank)-333(one)-334(in)28(teger)-333(arra)28(y)83(.)]TJ +/F8 9.9626 Tf 11.028 0 Td [(In)28(teger)-334(ind)1(e)-1(x.)]TJ 13.879 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.378 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.378 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.485 0 Td [(in)]TJ/F8 9.9626 Tf 9.548 0 Td [(.)]TJ -43.033 -11.956 Td [(Sp)-28(eci\014ed)-333(as:)-444(a)-334(scalar)-333(in)28(teger.)]TJ 0 g 0 G -/F27 9.9626 Tf -24.906 -31.88 Td [(desc)]TJ +/F27 9.9626 Tf -24.907 -31.88 Td [(desc)]TJ ET q 1 0 0 1 172.619 546.469 cm @@ -16494,34 +16534,26 @@ BT 0 g 0 G /F8 9.9626 Tf 20.922 0 Td [(.)]TJ 0 g 0 G -/F27 9.9626 Tf -260.887 -19.925 Td [(iact)]TJ -0 g 0 G -/F8 9.9626 Tf 23.28 0 Td [(sp)-28(eci\014es)-333(action)-334(to)-333(b)-28(e)-333(tak)28(en)-334(in)-333(case)-333(of)-334(range)-333(errors.)-444(Scop)-28(e:)]TJ/F27 9.9626 Tf 257.148 0 Td [(global)]TJ/F8 9.9626 Tf -255.522 -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)-255(as:)-405(a)-256(c)28(haracter)-255(v)56(ariable)]TJ/F30 9.9626 Tf 143.584 0 Td [(I)]TJ/F8 9.9626 Tf 5.231 0 Td [(gnore,)]TJ/F30 9.9626 Tf 29.293 0 Td [(W)]TJ/F8 9.9626 Tf 5.23 0 Td [(arning)-255(or)]TJ/F30 9.9626 Tf 41.67 0 Td [(A)]TJ/F8 9.9626 Tf 5.23 0 Td [(b)-28(ort,)-271(d)1(e)-1(f)1(ault)]TJ/F30 9.9626 Tf 56.742 0 Td [(I)]TJ/F8 9.9626 Tf 5.23 0 Td [(gnore.)]TJ -0 g 0 G -/F27 9.9626 Tf -317.116 -21.918 Td [(On)-383(Return)]TJ -0 g 0 G -0 g 0 G - 0 -19.926 Td [(y)]TJ +/F27 9.9626 Tf -260.887 -21.917 Td [(On)-383(Return)]TJ 0 g 0 G -/F8 9.9626 Tf 11.028 0 Td [(A)-294(logical)-294(mask)-294(whic)28(h)-294(is)-294(true)-294(for)-294(all)-294(corresp)-28(onding)-294(en)28(tries)-294(of)]TJ/F11 9.9626 Tf 259.229 0 Td [(x)]TJ/F8 9.9626 Tf 8.623 0 Td [(that)-294(are)-294(o)28(wned)]TJ -253.974 -11.955 Td [(b)28(y)-334(the)-333(curren)28(t)-333(pro)-28(cess)-334(Scop)-27(e:)]TJ/F27 9.9626 Tf 132.753 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -132.752 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.485 0 Td [(out)]TJ/F8 9.9626 Tf 16.549 0 Td [(.)]TJ -50.034 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-444(a)-334(scalar)-333(or)-334(r)1(ank)-334(one)-333(logical)-333(arra)27(y)84(.)]TJ 0 g 0 G -/F27 9.9626 Tf -24.907 -19.926 Td [(info)]TJ + 0 -19.926 Td [(F)96(unction)-384(v)64(alue)]TJ 0 g 0 G -/F8 9.9626 Tf 23.758 0 Td [(Error)-333(co)-28(de.)]TJ 1.149 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.378 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.378 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.485 0 Td [(out)]TJ/F8 9.9626 Tf 16.549 0 Td [(.)]TJ -50.034 -11.955 Td [(An)-333(in)28(teger)-334(v)56(alue;)-334(0)-333(means)-333(no)-334(error)-333(has)-333(b)-28(een)-333(detected.)]TJ/F16 11.9552 Tf -24.907 -21.918 Td [(Notes)]TJ +/F8 9.9626 Tf 78.386 0 Td [(A)-302(logical)-301(mask)-302(whic)28(h)-302(is)-302(tru)1(e)-302(if)]TJ/F11 9.9626 Tf 134.085 0 Td [(x)]TJ/F8 9.9626 Tf 8.7 0 Td [(is)-302(o)28(wned)-302(b)28(y)-301(the)-302(curren)28(t)-302(pro-)]TJ -196.265 -11.955 Td [(cess)-334(Scop)-27(e:)]TJ/F27 9.9626 Tf 52.415 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -52.415 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.612 0 Td [(required)]TJ/F8 9.9626 Tf -29.612 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(out)]TJ/F8 9.9626 Tf 16.549 0 Td [(.)]TJ/F16 11.9552 Tf -74.941 -33.873 Td [(Notes)]TJ 0 g 0 G -/F8 9.9626 Tf 12.176 -19.925 Td [(1.)]TJ +/F8 9.9626 Tf 12.176 -19.926 Td [(1.)]TJ 0 g 0 G - [-500(This)-475(routine)-474(returns)-475(a)]TJ/F30 9.9626 Tf 118.186 0 Td [(.true.)]TJ/F8 9.9626 Tf 36.112 0 Td [(v)56(alue)-475(for)-475(those)-475(indices)-474(that)-475(are)-475(strictly)]TJ -141.567 -11.955 Td [(o)28(wned)-334(b)28(y)-333(the)-333(curren)27(t)-333(pro)-28(cess,)-333(excluding)-333(the)-334(halo)-333(indices)]TJ + [-500(This)-300(routine)-300(r)1(e)-1(tu)1(rns)-300(a)]TJ/F30 9.9626 Tf 111.214 0 Td [(.true.)]TJ/F8 9.9626 Tf 34.368 0 Td [(v)56(alue)-300(for)-300(an)-300(index)-299(that)-300(is)-300(strictly)-300(o)28(wned)-300(b)28(y)]TJ -132.852 -11.955 Td [(the)-333(curren)27(t)-333(pro)-28(cess,)-333(excluding)-333(the)-334(halo)-333(indices)]TJ 0 g 0 G - 141.967 -141.013 Td [(88)]TJ + 141.968 -264.549 Td [(88)]TJ 0 g 0 G ET endstream endobj -1419 0 obj +1426 0 obj << -/Length 3240 +/Length 4979 >> stream 0 g 0 G @@ -16534,17 +16566,17 @@ q []0 d 0 J 0.398 w 0 0 m 4.035 0 l S Q BT -/F16 11.9552 Tf 124.986 706.129 Td [(is)]TJ +/F16 11.9552 Tf 124.986 706.129 Td [(o)31(wned)]TJ ET q -1 0 0 1 134.834 706.328 cm +1 0 0 1 162.939 706.328 cm []0 d 0 J 0.398 w 0 0 m 4.035 0 l S Q BT -/F16 11.9552 Tf 138.869 706.129 Td [(lo)-31(cal)-375(|)]TJ +/F16 11.9552 Tf 166.974 706.129 Td [(index)-375(|)]TJ 0 g 0 G 0 g 0 G -/F30 9.9626 Tf -38.974 -18.389 Td [(call)-525(psb_is_local\050x,)-525(desc_a\051)]TJ +/F30 9.9626 Tf -67.079 -18.389 Td [(call)-525(psb_owned_index\050y,)-525(x,)-525(desc_a,)-525(info\051)]TJ 0 g 0 G /F27 9.9626 Tf 0 -21.918 Td [(T)32(yp)-32(e:)]TJ 0 g 0 G @@ -16555,7 +16587,7 @@ BT 0 g 0 G 0 -19.925 Td [(x)]TJ 0 g 0 G -/F8 9.9626 Tf 11.028 0 Td [(In)28(teger)-334(index.)]TJ 13.879 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.956 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(scalar)-333(in)28(teger.)]TJ +/F8 9.9626 Tf 11.028 0 Td [(In)28(teger)-334(indices.)]TJ 13.879 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in,)-383(inout)]TJ/F8 9.9626 Tf 42.645 0 Td [(.)]TJ -76.131 -11.956 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(scalar)-333(or)-334(a)-333(rank)-333(one)-333(in)27(teger)-333(arra)28(y)83(.)]TJ 0 g 0 G /F27 9.9626 Tf -24.907 -31.88 Td [(desc)]TJ ET @@ -16586,26 +16618,34 @@ BT 0 g 0 G /F8 9.9626 Tf 20.921 0 Td [(.)]TJ 0 g 0 G -/F27 9.9626 Tf -260.887 -21.917 Td [(On)-383(Return)]TJ +/F27 9.9626 Tf -260.887 -19.925 Td [(iact)]TJ 0 g 0 G +/F8 9.9626 Tf 23.281 0 Td [(sp)-28(eci\014es)-333(action)-334(to)-333(b)-28(e)-333(tak)28(en)-334(in)-333(case)-333(of)-334(range)-333(errors.)-444(Scop)-28(e:)]TJ/F27 9.9626 Tf 257.147 0 Td [(global)]TJ/F8 9.9626 Tf -255.521 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(optional)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-255(as:)-405(a)-256(c)28(haracter)-255(v)56(ariable)]TJ/F30 9.9626 Tf 143.584 0 Td [(I)]TJ/F8 9.9626 Tf 5.23 0 Td [(gnore,)]TJ/F30 9.9626 Tf 29.293 0 Td [(W)]TJ/F8 9.9626 Tf 5.23 0 Td [(arning)-255(or)]TJ/F30 9.9626 Tf 41.67 0 Td [(A)]TJ/F8 9.9626 Tf 5.231 0 Td [(b)-28(ort,)-270(default)]TJ/F30 9.9626 Tf 56.741 0 Td [(I)]TJ/F8 9.9626 Tf 5.231 0 Td [(gnore.)]TJ 0 g 0 G - 0 -19.926 Td [(F)96(unction)-384(v)64(alue)]TJ +/F27 9.9626 Tf -317.117 -21.918 Td [(On)-383(Return)]TJ 0 g 0 G -/F8 9.9626 Tf 78.387 0 Td [(A)-264(logical)-265(mask)-264(whic)27(h)-264(is)-265(true)-264(if)]TJ/F11 9.9626 Tf 131.492 0 Td [(x)]TJ/F8 9.9626 Tf 8.329 0 Td [(is)-264(lo)-28(cal)-265(to)-264(the)-265(curren)28(t)-264(pro)-28(cess)]TJ -193.301 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(out)]TJ/F8 9.9626 Tf 16.549 0 Td [(.)]TJ/F16 11.9552 Tf -74.942 -33.873 Td [(Notes)]TJ 0 g 0 G -/F8 9.9626 Tf 12.177 -19.926 Td [(1.)]TJ + 0 -19.926 Td [(y)]TJ +0 g 0 G +/F8 9.9626 Tf 11.028 0 Td [(A)-294(logical)-294(mask)-294(whic)28(h)-294(is)-294(true)-294(for)-294(all)-294(corresp)-28(onding)-294(en)28(tries)-294(of)]TJ/F11 9.9626 Tf 259.229 0 Td [(x)]TJ/F8 9.9626 Tf 8.623 0 Td [(that)-294(are)-294(o)28(wned)]TJ -253.973 -11.955 Td [(b)28(y)-333(the)-334(curren)28(t)-333(pro)-28(cess)-334(Scop)-27(e:)]TJ/F27 9.9626 Tf 132.752 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -132.752 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(out)]TJ/F8 9.9626 Tf 16.549 0 Td [(.)]TJ -50.035 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(scalar)-333(or)-334(ran)1(k)-334(one)-333(logical)-333(arra)27(y)84(.)]TJ +0 g 0 G +/F27 9.9626 Tf -24.907 -19.926 Td [(info)]TJ +0 g 0 G +/F8 9.9626 Tf 23.758 0 Td [(Error)-333(co)-28(de.)]TJ 1.149 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(out)]TJ/F8 9.9626 Tf 16.549 0 Td [(.)]TJ -50.035 -11.955 Td [(An)-333(in)28(tege)-1(r)-333(v)56(alue;)-334(0)-333(means)-333(no)-334(error)-333(has)-333(b)-28(een)-333(detecte)-1(d)1(.)]TJ/F16 11.9552 Tf -24.907 -21.918 Td [(Notes)]TJ 0 g 0 G - [-500(This)-239(routine)-239(returns)-239(a)]TJ/F30 9.9626 Tf 108.787 0 Td [(.true.)]TJ/F8 9.9626 Tf 33.762 0 Td [(v)56(alue)-239(for)-239(an)-239(index)-239(that)-239(is)-238(lo)-28(cal)-239(to)-239(the)-239(curren)28(t)]TJ -129.819 -11.955 Td [(pro)-28(cess,)-333(including)-333(the)-334(halo)-333(indices)]TJ +/F8 9.9626 Tf 12.177 -19.925 Td [(1.)]TJ +0 g 0 G + [-500(This)-475(routine)-474(returns)-475(a)]TJ/F30 9.9626 Tf 118.186 0 Td [(.true.)]TJ/F8 9.9626 Tf 36.111 0 Td [(v)56(alue)-475(for)-475(those)-475(indices)-474(that)-475(are)-475(strictly)]TJ -141.567 -11.955 Td [(o)28(wned)-334(b)28(y)-333(the)-333(curren)27(t)-333(pro)-28(cess,)-333(excluding)-333(the)-334(halo)-333(indices)]TJ 0 g 0 G - 141.968 -264.549 Td [(89)]TJ + 141.968 -141.013 Td [(89)]TJ 0 g 0 G ET endstream endobj -1425 0 obj +1432 0 obj << -/Length 4992 +/Length 3247 >> stream 0 g 0 G @@ -16618,17 +16658,17 @@ q []0 d 0 J 0.398 w 0 0 m 4.035 0 l S Q BT -/F16 11.9552 Tf 175.796 706.129 Td [(lo)-31(cal)]TJ +/F16 11.9552 Tf 175.796 706.129 Td [(is)]TJ ET q -1 0 0 1 203.689 706.328 cm +1 0 0 1 185.644 706.328 cm []0 d 0 J 0.398 w 0 0 m 4.035 0 l S Q BT -/F16 11.9552 Tf 207.724 706.129 Td [(index)-375(|)]TJ +/F16 11.9552 Tf 189.679 706.129 Td [(lo)-31(cal)-375(|)]TJ 0 g 0 G 0 g 0 G -/F30 9.9626 Tf -57.019 -18.389 Td [(call)-525(psb_local_index\050y,)-525(x,)-525(desc_a,)-525(info\051)]TJ +/F30 9.9626 Tf -38.974 -18.389 Td [(call)-525(psb_is_local\050x,)-525(desc_a\051)]TJ 0 g 0 G /F27 9.9626 Tf 0 -21.918 Td [(T)32(yp)-32(e:)]TJ 0 g 0 G @@ -16639,7 +16679,7 @@ BT 0 g 0 G 0 -19.925 Td [(x)]TJ 0 g 0 G -/F8 9.9626 Tf 11.028 0 Td [(In)28(teger)-334(ind)1(ic)-1(es.)]TJ 13.879 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.378 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.378 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.485 0 Td [(in,)-383(inout)]TJ/F8 9.9626 Tf 42.646 0 Td [(.)]TJ -76.131 -11.956 Td [(Sp)-28(eci\014ed)-333(as:)-444(a)-334(scalar)-333(or)-334(a)-333(rank)-333(one)-333(in)27(teger)-333(arra)28(y)83(.)]TJ +/F8 9.9626 Tf 11.028 0 Td [(In)28(teger)-334(ind)1(e)-1(x.)]TJ 13.879 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.378 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.378 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.485 0 Td [(in)]TJ/F8 9.9626 Tf 9.548 0 Td [(.)]TJ -43.033 -11.956 Td [(Sp)-28(eci\014ed)-333(as:)-444(a)-334(scalar)-333(in)28(teger.)]TJ 0 g 0 G /F27 9.9626 Tf -24.907 -31.88 Td [(desc)]TJ ET @@ -16670,34 +16710,26 @@ BT 0 g 0 G /F8 9.9626 Tf 20.922 0 Td [(.)]TJ 0 g 0 G -/F27 9.9626 Tf -260.887 -19.925 Td [(iact)]TJ -0 g 0 G -/F8 9.9626 Tf 23.28 0 Td [(sp)-28(eci\014es)-333(action)-334(to)-333(b)-28(e)-333(tak)28(en)-334(in)-333(case)-333(of)-334(range)-333(errors.)-444(Scop)-28(e:)]TJ/F27 9.9626 Tf 257.148 0 Td [(global)]TJ/F8 9.9626 Tf -255.522 -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)-255(as:)-405(a)-256(c)28(haracter)-255(v)56(ariable)]TJ/F30 9.9626 Tf 143.584 0 Td [(I)]TJ/F8 9.9626 Tf 5.231 0 Td [(gnore,)]TJ/F30 9.9626 Tf 29.293 0 Td [(W)]TJ/F8 9.9626 Tf 5.23 0 Td [(arning)-255(or)]TJ/F30 9.9626 Tf 41.67 0 Td [(A)]TJ/F8 9.9626 Tf 5.23 0 Td [(b)-28(ort,)-271(d)1(e)-1(f)1(ault)]TJ/F30 9.9626 Tf 56.742 0 Td [(I)]TJ/F8 9.9626 Tf 5.23 0 Td [(gnore.)]TJ -0 g 0 G -/F27 9.9626 Tf -317.116 -21.918 Td [(On)-383(Return)]TJ -0 g 0 G -0 g 0 G - 0 -19.926 Td [(y)]TJ +/F27 9.9626 Tf -260.887 -21.917 Td [(On)-383(Return)]TJ 0 g 0 G -/F8 9.9626 Tf 11.028 0 Td [(A)-346(logical)-345(mask)-346(whic)28(h)-346(is)-345(true)-346(for)-345(all)-346(corresp)-28(ondin)1(g)-346(en)28(tries)-346(of)]TJ/F11 9.9626 Tf 264.882 0 Td [(x)]TJ/F8 9.9626 Tf 9.137 0 Td [(that)-346(ar)1(e)-346(lo)-28(cal)]TJ -260.141 -11.955 Td [(to)-333(the)-334(curren)28(t)-333(pro)-28(cess)-333(Scop)-28(e:)]TJ/F27 9.9626 Tf 131.092 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -131.092 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.612 0 Td [(required)]TJ/F8 9.9626 Tf -29.612 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(out)]TJ/F8 9.9626 Tf 16.549 0 Td [(.)]TJ -50.035 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(scalar)-333(or)-334(rank)-333(one)-333(logical)-334(ar)1(ra)27(y)84(.)]TJ 0 g 0 G -/F27 9.9626 Tf -24.906 -19.926 Td [(info)]TJ + 0 -19.926 Td [(F)96(unction)-384(v)64(alue)]TJ 0 g 0 G -/F8 9.9626 Tf 23.758 0 Td [(Error)-333(co)-28(de.)]TJ 1.148 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.612 0 Td [(required)]TJ/F8 9.9626 Tf -29.612 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(out)]TJ/F8 9.9626 Tf 16.549 0 Td [(.)]TJ -50.035 -11.955 Td [(An)-333(in)28(te)-1(ger)-333(v)56(alue;)-334(0)-333(means)-333(no)-334(error)-333(has)-333(b)-28(een)-333(detec)-1(ted.)]TJ/F16 11.9552 Tf -24.906 -21.918 Td [(Notes)]TJ +/F8 9.9626 Tf 78.386 0 Td [(A)-264(logical)-265(mask)-264(whic)27(h)-264(is)-265(true)-264(if)]TJ/F11 9.9626 Tf 131.492 0 Td [(x)]TJ/F8 9.9626 Tf 8.329 0 Td [(is)-265(lo)-27(cal)-265(to)-264(the)-265(curren)28(t)-264(pro)-28(cess)]TJ -193.301 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.612 0 Td [(required)]TJ/F8 9.9626 Tf -29.612 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(out)]TJ/F8 9.9626 Tf 16.549 0 Td [(.)]TJ/F16 11.9552 Tf -74.941 -33.873 Td [(Notes)]TJ 0 g 0 G -/F8 9.9626 Tf 12.176 -19.925 Td [(1.)]TJ +/F8 9.9626 Tf 12.176 -19.926 Td [(1.)]TJ 0 g 0 G - [-500(This)-308(routine)-309(return)1(s)-309(a)]TJ/F30 9.9626 Tf 111.554 0 Td [(.true.)]TJ/F8 9.9626 Tf 34.454 0 Td [(v)56(alue)-309(for)-308(those)-308(indices)-309(that)-308(are)-308(lo)-28(cal)-308(to)-309(the)]TJ -133.278 -11.955 Td [(curren)28(t)-334(p)1(ro)-28(cess,)-334(including)-333(the)-333(halo)-334(i)1(ndices)-1(.)]TJ + [-500(This)-239(routine)-239(returns)-239(a)]TJ/F30 9.9626 Tf 108.787 0 Td [(.true.)]TJ/F8 9.9626 Tf 33.762 0 Td [(v)56(alue)-239(for)-239(an)-239(index)-239(that)-239(is)-239(lo)-27(cal)-239(to)-239(the)-239(curren)28(t)]TJ -129.819 -11.955 Td [(pro)-28(cess,)-333(including)-333(the)-334(halo)-333(indices)]TJ 0 g 0 G - 141.968 -141.013 Td [(90)]TJ + 141.968 -264.549 Td [(90)]TJ 0 g 0 G ET endstream endobj -1431 0 obj +1438 0 obj << -/Length 3821 +/Length 4963 >> stream 0 g 0 G @@ -16710,17 +16742,17 @@ q []0 d 0 J 0.398 w 0 0 m 4.035 0 l S Q BT -/F16 11.9552 Tf 124.986 706.129 Td [(get)]TJ +/F16 11.9552 Tf 124.986 706.129 Td [(lo)-31(cal)]TJ ET q -1 0 0 1 143.885 706.328 cm +1 0 0 1 152.879 706.328 cm []0 d 0 J 0.398 w 0 0 m 4.035 0 l S Q BT -/F16 11.9552 Tf 147.92 706.129 Td [(b)-31(oundary)-375(|)-375(Extract)-375(list)-375(of)-375(b)-32(oundary)-375(elemen)32(ts)]TJ +/F16 11.9552 Tf 156.914 706.129 Td [(index)-375(|)]TJ 0 g 0 G 0 g 0 G -/F30 9.9626 Tf -48.025 -18.389 Td [(call)-525(psb_get_boundary\050bndel,)-525(desc,)-525(info\051)]TJ +/F30 9.9626 Tf -57.019 -18.389 Td [(call)-525(psb_local_index\050y,)-525(x,)-525(desc_a,)-525(info\051)]TJ 0 g 0 G /F27 9.9626 Tf 0 -21.918 Td [(T)32(yp)-32(e:)]TJ 0 g 0 G @@ -16729,580 +16761,533 @@ BT /F27 9.9626 Tf -33.797 -19.926 Td [(On)-383(En)32(try)]TJ 0 g 0 G 0 g 0 G - 0 -19.925 Td [(desc)]TJ -0 g 0 G -/F8 9.9626 Tf 26.209 0 Td [(the)-333(comm)27(unication)-333(descriptor.)]TJ -1.302 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 27.951 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf 23.073 0 Td [(.)]TJ -51.024 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.183 0 Td [(required)]TJ/F8 9.9626 Tf 41.899 0 Td [(.)]TJ -67.082 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.956 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(structured)-333(data)-333(of)-334(t)28(yp)-28(e)]TJ -0 0 1 rg 0 0 1 RG -/F30 9.9626 Tf 170.915 0 Td [(psb)]TJ -ET -q -1 0 0 1 312.036 578.35 cm -[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S -Q -BT -/F30 9.9626 Tf 315.174 578.15 Td [(desc)]TJ -ET -q -1 0 0 1 336.723 578.35 cm -[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S -Q -BT -/F30 9.9626 Tf 339.861 578.15 Td [(type)]TJ -0 g 0 G -/F8 9.9626 Tf 20.921 0 Td [(.)]TJ -0 g 0 G -/F27 9.9626 Tf -260.887 -21.917 Td [(On)-383(Return)]TJ -0 g 0 G -0 g 0 G - 0 -19.926 Td [(bndel)]TJ -0 g 0 G -/F8 9.9626 Tf 32.51 0 Td [(The)-268(list)-267(of)-268(b)-27(oundary)-268(elemen)28(ts)-268(on)-267(the)-268(calling)-267(pro)-28(cess,)-281(in)-267(lo)-28(cal)-268(n)28(um)28(b)-28(ering.)]TJ -7.603 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(out)]TJ/F8 9.9626 Tf 16.549 0 Td [(.)]TJ -50.035 -11.955 Td [(Sp)-28(eci\014ed)-456(as:)-691(a)-457(rank)-456(one)-457(arra)28(y)-456(with)-457(the)-457(ALLOCA)84(T)83(ABLE)-456(attribute,)-488(of)]TJ 0 -11.955 Td [(t)28(yp)-28(e)-333(in)28(te)-1(ger.)]TJ -0 g 0 G -/F27 9.9626 Tf -24.907 -31.881 Td [(info)]TJ -0 g 0 G -/F8 9.9626 Tf 23.758 0 Td [(Error)-333(co)-28(de.)]TJ 1.149 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(out)]TJ/F8 9.9626 Tf 16.549 0 Td [(.)]TJ -50.035 -11.956 Td [(An)-333(in)28(tege)-1(r)-333(v)56(alue;)-334(0)-333(means)-333(no)-334(error)-333(has)-333(b)-28(een)-333(detecte)-1(d)1(.)]TJ/F16 11.9552 Tf -24.907 -21.917 Td [(Notes)]TJ -0 g 0 G -/F8 9.9626 Tf 12.177 -19.926 Td [(1.)]TJ -0 g 0 G - [-500(If)-269(there)-269(are)-269(no)-269(b)-28(oundary)-269(elemen)28(ts)-269(\050i.e.,)-282(if)-269(the)-269(lo)-28(cal)-269(part)-269(of)-269(the)-269(c)-1(onn)1(e)-1(ctivi)1(t)27(y)]TJ 12.73 -11.955 Td [(graph)-449(is)-450(self-con)28(tained\051)-450(the)-449(output)-449(v)27(ector)-449(is)-450(set)-449(to)-450(the)-449(\134not)-450(allo)-27(c)-1(ated")]TJ 0 -11.955 Td [(state.)]TJ -0 g 0 G - -12.73 -19.925 Td [(2.)]TJ -0 g 0 G - [-500(Otherwise)-288(the)-289(size)-288(of)]TJ/F30 9.9626 Tf 105.44 0 Td [(bndel)]TJ/F8 9.9626 Tf 29.023 0 Td [(will)-288(b)-28(e)-288(exactly)-289(equal)-288(to)-288(the)-288(n)28(um)27(b)-27(er)-289(of)-288(b)-28(ound)1(-)]TJ -121.733 -11.956 Td [(ary)-333(elemen)27(ts.)]TJ -0 g 0 G - 141.968 -208.758 Td [(91)]TJ -0 g 0 G -ET - -endstream -endobj -1439 0 obj -<< -/Length 3654 ->> -stream + 0 -19.925 Td [(x)]TJ 0 g 0 G +/F8 9.9626 Tf 11.028 0 Td [(In)28(teger)-334(indices.)]TJ 13.879 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in,)-383(inout)]TJ/F8 9.9626 Tf 42.645 0 Td [(.)]TJ -76.131 -11.956 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(scalar)-333(or)-334(a)-333(rank)-333(one)-333(in)27(teger)-333(arra)28(y)83(.)]TJ 0 g 0 G -BT -/F16 11.9552 Tf 150.705 706.129 Td [(psb)]TJ -ET -q -1 0 0 1 171.761 706.328 cm -[]0 d 0 J 0.398 w 0 0 m 4.035 0 l S -Q -BT -/F16 11.9552 Tf 175.796 706.129 Td [(get)]TJ +/F27 9.9626 Tf -24.907 -31.88 Td [(desc)]TJ ET q -1 0 0 1 194.695 706.328 cm -[]0 d 0 J 0.398 w 0 0 m 4.035 0 l S +1 0 0 1 121.81 546.469 cm +[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F16 11.9552 Tf 198.729 706.129 Td [(o)31(v)31(erlap)-375(|)-375(Extract)-375(list)-375(of)-375(o)32(v)31(erlap)-375(elemen)31(ts)]TJ -0 g 0 G -0 g 0 G -/F30 9.9626 Tf -48.024 -18.389 Td [(call)-525(psb_get_overlap\050ovrel,)-525(desc,)-525(info\051)]TJ -0 g 0 G -/F27 9.9626 Tf 0 -21.918 Td [(T)32(yp)-32(e:)]TJ -0 g 0 G -/F8 9.9626 Tf 33.797 0 Td [(Async)28(hronous.)]TJ -0 g 0 G -/F27 9.9626 Tf -33.797 -19.926 Td [(On)-383(En)32(try)]TJ -0 g 0 G -0 g 0 G - 0 -19.925 Td [(desc)]TJ +/F27 9.9626 Tf 125.247 546.27 Td [(a)]TJ 0 g 0 G -/F8 9.9626 Tf 26.208 0 Td [(the)-333(comm)27(unication)-333(descriptor.)]TJ -1.302 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 27.951 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf 23.073 0 Td [(.)]TJ -51.024 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.184 0 Td [(required)]TJ/F8 9.9626 Tf 41.898 0 Td [(.)]TJ -67.082 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.548 0 Td [(.)]TJ -43.034 -11.956 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(structured)-333(data)-333(of)-334(t)28(yp)-28(e)]TJ +/F8 9.9626 Tf 10.551 0 Td [(the)-333(comm)27(unication)-333(descriptor.)]TJ -10.996 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 27.951 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf 23.073 0 Td [(.)]TJ -51.024 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.183 0 Td [(required)]TJ/F8 9.9626 Tf 41.899 0 Td [(.)]TJ -67.082 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.956 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(structured)-333(data)-333(of)-334(t)28(yp)-28(e)]TJ 0 0 1 rg 0 0 1 RG /F30 9.9626 Tf 170.915 0 Td [(psb)]TJ ET q -1 0 0 1 362.845 578.35 cm +1 0 0 1 312.036 498.649 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 365.983 578.15 Td [(desc)]TJ +/F30 9.9626 Tf 315.174 498.449 Td [(desc)]TJ ET q -1 0 0 1 387.532 578.35 cm +1 0 0 1 336.723 498.649 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 390.67 578.15 Td [(type)]TJ +/F30 9.9626 Tf 339.861 498.449 Td [(type)]TJ 0 g 0 G -/F8 9.9626 Tf 20.922 0 Td [(.)]TJ +/F8 9.9626 Tf 20.921 0 Td [(.)]TJ 0 g 0 G -/F27 9.9626 Tf -260.887 -21.917 Td [(On)-383(Return)]TJ +/F27 9.9626 Tf -260.887 -19.925 Td [(iact)]TJ 0 g 0 G +/F8 9.9626 Tf 23.281 0 Td [(sp)-28(eci\014es)-333(action)-334(to)-333(b)-28(e)-333(tak)28(en)-334(in)-333(case)-333(of)-334(range)-333(errors.)-444(Scop)-28(e:)]TJ/F27 9.9626 Tf 257.147 0 Td [(global)]TJ/F8 9.9626 Tf -255.521 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(optional)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-255(as:)-405(a)-256(c)28(haracter)-255(v)56(ariable)]TJ/F30 9.9626 Tf 143.584 0 Td [(I)]TJ/F8 9.9626 Tf 5.23 0 Td [(gnore,)]TJ/F30 9.9626 Tf 29.293 0 Td [(W)]TJ/F8 9.9626 Tf 5.23 0 Td [(arning)-255(or)]TJ/F30 9.9626 Tf 41.67 0 Td [(A)]TJ/F8 9.9626 Tf 5.231 0 Td [(b)-28(ort,)-270(default)]TJ/F30 9.9626 Tf 56.741 0 Td [(I)]TJ/F8 9.9626 Tf 5.231 0 Td [(gnore.)]TJ 0 g 0 G - 0 -19.926 Td [(o)32(vrel)]TJ +/F27 9.9626 Tf -317.117 -21.918 Td [(On)-383(Return)]TJ 0 g 0 G -/F8 9.9626 Tf 29.59 0 Td [(The)-333(list)-334(of)-333(o)28(v)28(erlap)-334(elemen)28(ts)-333(on)-334(the)-333(calling)-333(pro)-28(cess,)-334(in)-333(lo)-28(cal)-333(n)28(um)28(b)-28(ering.)]TJ -4.684 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.612 0 Td [(required)]TJ/F8 9.9626 Tf -29.612 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(out)]TJ/F8 9.9626 Tf 16.549 0 Td [(.)]TJ -50.035 -11.955 Td [(Sp)-28(eci\014ed)-456(as:)-691(a)-457(rank)-456(one)-457(arra)28(y)-457(with)-456(the)-457(ALLOCA)84(T)83(ABLE)-456(attribute,)-488(of)]TJ 0 -11.955 Td [(t)28(yp)-28(e)-333(in)27(teger.)]TJ 0 g 0 G -/F27 9.9626 Tf -24.906 -31.881 Td [(info)]TJ + 0 -19.926 Td [(y)]TJ 0 g 0 G -/F8 9.9626 Tf 23.758 0 Td [(Error)-333(co)-28(de.)]TJ 1.148 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.612 0 Td [(required)]TJ/F8 9.9626 Tf -29.612 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(out)]TJ/F8 9.9626 Tf 16.549 0 Td [(.)]TJ -50.035 -11.956 Td [(An)-333(in)28(te)-1(ger)-333(v)56(alue;)-334(0)-333(means)-333(no)-334(error)-333(has)-333(b)-28(een)-333(detec)-1(ted.)]TJ/F16 11.9552 Tf -24.906 -21.917 Td [(Notes)]TJ +/F8 9.9626 Tf 11.028 0 Td [(A)-346(logical)-345(mask)-346(whic)28(h)-346(is)-345(true)-346(for)-345(all)-346(corresp)-28(onding)-345(en)28(tries)-346(of)]TJ/F11 9.9626 Tf 264.883 0 Td [(x)]TJ/F8 9.9626 Tf 9.136 0 Td [(that)-346(are)-345(lo)-28(cal)]TJ -260.14 -11.955 Td [(to)-333(the)-334(curren)28(t)-333(pro)-28(cess)-333(Scop)-28(e:)]TJ/F27 9.9626 Tf 131.092 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -131.092 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(out)]TJ/F8 9.9626 Tf 16.549 0 Td [(.)]TJ -50.035 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(scalar)-333(or)-334(ran)1(k)-334(one)-333(logical)-333(arra)27(y)84(.)]TJ 0 g 0 G -/F8 9.9626 Tf 12.176 -19.926 Td [(1.)]TJ +/F27 9.9626 Tf -24.907 -19.926 Td [(info)]TJ 0 g 0 G - [-500(If)-343(there)-344(ar)1(e)-344(no)-343(o)28(v)28(erlap)-344(elemen)28(ts)-343(the)-343(output)-344(v)28(ector)-343(is)-343(set)-344(to)-343(the)-343(\134not)-343(allo-)]TJ 12.73 -11.955 Td [(cated")-333(state.)]TJ +/F8 9.9626 Tf 23.758 0 Td [(Error)-333(co)-28(de.)]TJ 1.149 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(out)]TJ/F8 9.9626 Tf 16.549 0 Td [(.)]TJ -50.035 -11.955 Td [(An)-333(in)28(tege)-1(r)-333(v)56(alue;)-334(0)-333(means)-333(no)-334(error)-333(has)-333(b)-28(een)-333(detecte)-1(d)1(.)]TJ/F16 11.9552 Tf -24.907 -21.918 Td [(Notes)]TJ 0 g 0 G - -12.73 -19.925 Td [(2.)]TJ +/F8 9.9626 Tf 12.177 -19.925 Td [(1.)]TJ 0 g 0 G - [-500(Otherwise)-284(the)-284(size)-283(of)]TJ/F30 9.9626 Tf 105.262 0 Td [(ovrel)]TJ/F8 9.9626 Tf 28.978 0 Td [(will)-284(b)-27(e)-284(exactly)-284(equal)-284(to)-284(the)-283(n)27(u)1(m)27(b)-27(e)-1(r)-283(of)-284(o)28(v)28(erlap)]TJ -121.51 -11.955 Td [(elemen)28(ts.)]TJ + [-500(This)-308(routine)-309(retur)1(ns)-309(a)]TJ/F30 9.9626 Tf 111.554 0 Td [(.true.)]TJ/F8 9.9626 Tf 34.454 0 Td [(v)56(alue)-309(for)-308(those)-308(indices)-309(that)-308(are)-308(lo)-28(cal)-308(to)-309(the)]TJ -133.278 -11.955 Td [(curren)28(t)-333(pro)-28(cess,)-334(including)-333(the)-333(halo)-333(indices.)]TJ 0 g 0 G - 141.968 -220.714 Td [(92)]TJ + 141.968 -141.013 Td [(91)]TJ 0 g 0 G ET endstream endobj -1337 0 obj +1340 0 obj << /Type /ObjStm /N 100 -/First 972 -/Length 10882 +/First 971 +/Length 10784 >> stream -1335 0 1336 58 1327 115 1341 195 1338 343 1339 486 1343 632 320 691 1340 749 1347 855 -1344 1003 1345 1148 1349 1295 324 1353 1350 1410 1346 1468 1354 1574 1351 1722 1352 1868 1356 2012 -328 2071 1353 2129 1360 2248 1357 2396 1358 2543 1362 2687 332 2745 1359 2802 1365 2921 1367 3039 -1368 3098 1369 3157 1364 3216 1374 3309 1370 3466 1371 3611 1372 3755 1376 3898 336 3956 1373 4013 -1380 4132 1377 4280 1378 4423 1382 4570 340 4629 1379 4687 1384 4793 1386 4911 344 4969 1383 5026 -1389 5158 1387 5297 1391 5442 348 5501 1388 5559 1393 5678 1395 5796 1396 5854 1397 5912 1392 5970 -1401 6050 1399 6189 1403 6335 352 6394 1400 6452 1406 6571 1404 6710 1408 6857 356 6915 1409 6972 -1405 7030 1412 7149 1410 7288 1414 7434 360 7493 1415 7551 1411 7610 1418 7729 1416 7868 1420 8015 -364 8073 1421 8130 1417 8188 1424 8307 1422 8446 1426 8592 368 8651 1427 8709 1423 8768 1430 8887 -1428 9026 1432 9172 372 9230 1433 9287 1434 9345 1429 9403 1438 9509 1436 9648 1440 9793 376 9852 +1334 0 1335 146 1339 291 320 349 1336 406 1342 512 1344 630 1345 689 1346 748 1347 807 +1348 866 1349 925 1350 984 1341 1042 1354 1122 1351 1270 1352 1414 1356 1561 324 1619 1353 1676 +1360 1782 1357 1930 1358 2074 1362 2220 328 2279 1363 2337 1359 2396 1367 2502 1364 2650 1365 2795 +1369 2939 332 2997 1366 3054 1374 3173 1371 3321 1372 3467 1376 3611 336 3670 1373 3728 1378 3847 +1380 3965 1381 4023 1382 4081 1377 4139 1387 4232 1383 4389 1384 4535 1385 4679 1389 4822 340 4881 +1386 4939 1393 5058 1390 5206 1391 5349 1395 5495 344 5553 1392 5610 1397 5716 1399 5834 348 5893 +1396 5951 1402 6083 1400 6222 1404 6368 352 6426 1401 6483 1407 6602 1409 6720 1410 6779 1411 6838 +1406 6897 1414 6977 1412 7116 1416 7263 356 7321 1413 7378 1419 7497 1417 7636 1421 7782 360 7841 +1422 7899 1418 7958 1425 8077 1423 8216 1427 8363 364 8421 1428 8478 1424 8536 1431 8655 1429 8794 +1433 8940 368 8999 1434 9057 1430 9116 1437 9235 1435 9374 1439 9521 372 9579 1440 9636 1436 9694 +% 1334 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [294.721 576.23 361.779 587.355] +/A << /S /GoTo /D (descdata) >> +>> % 1335 0 obj << -/D [1328 0 R /XYZ 99.895 580.655 null] +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [294.721 205.776 372.239 216.901] +/A << /S /GoTo /D (spdata) >> >> -% 1336 0 obj +% 1339 0 obj << -/D [1328 0 R /XYZ 99.895 560.73 null] +/D [1337 0 R /XYZ 98.895 753.953 null] >> -% 1327 0 obj +% 320 0 obj +<< +/D [1337 0 R /XYZ 99.895 720.077 null] +>> +% 1336 0 obj << -/Font << /F8 553 0 R /F30 759 0 R >> +/Font << /F16 554 0 R /F30 764 0 R /F27 556 0 R /F8 557 0 R >> /ProcSet [ /PDF /Text ] >> +% 1342 0 obj +<< +/Type /Page +/Contents 1343 0 R +/Resources 1341 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1320 0 R +>> +% 1344 0 obj +<< +/D [1342 0 R /XYZ 149.705 753.953 null] +>> +% 1345 0 obj +<< +/D [1342 0 R /XYZ 150.705 716.092 null] +>> +% 1346 0 obj +<< +/D [1342 0 R /XYZ 150.705 687.975 null] +>> +% 1347 0 obj +<< +/D [1342 0 R /XYZ 150.705 668.326 null] +>> +% 1348 0 obj +<< +/D [1342 0 R /XYZ 150.705 624.491 null] +>> +% 1349 0 obj +<< +/D [1342 0 R /XYZ 150.705 580.655 null] +>> +% 1350 0 obj +<< +/D [1342 0 R /XYZ 150.705 560.73 null] +>> % 1341 0 obj << +/Font << /F8 557 0 R /F30 764 0 R >> +/ProcSet [ /PDF /Text ] +>> +% 1354 0 obj +<< /Type /Page -/Contents 1342 0 R -/Resources 1340 0 R +/Contents 1355 0 R +/Resources 1353 0 R /MediaBox [0 0 595.276 841.89] /Parent 1320 0 R -/Annots [ 1338 0 R 1339 0 R ] +/Annots [ 1351 0 R 1352 0 R ] >> -% 1338 0 obj +% 1351 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] +/Rect [294.721 574.94 372.239 586.065] /A << /S /GoTo /D (spdata) >> >> -% 1339 0 obj +% 1352 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [345.53 507.194 412.588 518.319] +/Rect [294.721 507.194 361.779 518.319] /A << /S /GoTo /D (descdata) >> >> -% 1343 0 obj +% 1356 0 obj << -/D [1341 0 R /XYZ 149.705 753.953 null] +/D [1354 0 R /XYZ 98.895 753.953 null] >> -% 320 0 obj +% 324 0 obj << -/D [1341 0 R /XYZ 150.705 720.077 null] +/D [1354 0 R /XYZ 99.895 720.077 null] >> -% 1340 0 obj +% 1353 0 obj << -/Font << /F16 550 0 R /F30 759 0 R /F27 552 0 R /F8 553 0 R >> +/Font << /F16 554 0 R /F30 764 0 R /F27 556 0 R /F8 557 0 R >> /ProcSet [ /PDF /Text ] >> -% 1347 0 obj +% 1360 0 obj << /Type /Page -/Contents 1348 0 R -/Resources 1346 0 R +/Contents 1361 0 R +/Resources 1359 0 R /MediaBox [0 0 595.276 841.89] /Parent 1320 0 R -/Annots [ 1344 0 R 1345 0 R ] +/Annots [ 1357 0 R 1358 0 R ] >> -% 1344 0 obj +% 1357 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [294.721 560.993 372.239 572.118] +/Rect [345.53 560.993 423.049 572.118] /A << /S /GoTo /D (spdata) >> >> -% 1345 0 obj +% 1358 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [294.721 493.247 361.779 504.372] +/Rect [345.53 493.247 412.588 504.372] /A << /S /GoTo /D (descdata) >> >> -% 1349 0 obj +% 1362 0 obj << -/D [1347 0 R /XYZ 98.895 753.953 null] +/D [1360 0 R /XYZ 149.705 753.953 null] >> -% 324 0 obj +% 328 0 obj << -/D [1347 0 R /XYZ 99.895 720.077 null] +/D [1360 0 R /XYZ 150.705 720.077 null] >> -% 1350 0 obj +% 1363 0 obj << -/D [1347 0 R /XYZ 99.895 313.144 null] +/D [1360 0 R /XYZ 150.705 313.144 null] >> -% 1346 0 obj +% 1359 0 obj << -/Font << /F16 550 0 R /F30 759 0 R /F27 552 0 R /F8 553 0 R >> +/Font << /F16 554 0 R /F30 764 0 R /F27 556 0 R /F8 557 0 R >> /ProcSet [ /PDF /Text ] >> -% 1354 0 obj +% 1367 0 obj << /Type /Page -/Contents 1355 0 R -/Resources 1353 0 R +/Contents 1368 0 R +/Resources 1366 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1320 0 R -/Annots [ 1351 0 R 1352 0 R ] +/Parent 1370 0 R +/Annots [ 1364 0 R 1365 0 R ] >> -% 1351 0 obj +% 1364 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [311.962 574.94 379.019 586.065] +/Rect [261.152 574.94 328.21 586.065] /A << /S /GoTo /D (descdata) >> >> -% 1352 0 obj +% 1365 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [264.584 290.009 340.638 301.134] +/Rect [213.774 290.009 289.828 301.134] /A << /S /GoTo /D (vdata) >> >> -% 1356 0 obj +% 1369 0 obj << -/D [1354 0 R /XYZ 149.705 753.953 null] +/D [1367 0 R /XYZ 98.895 753.953 null] >> -% 328 0 obj +% 332 0 obj << -/D [1354 0 R /XYZ 150.705 720.077 null] +/D [1367 0 R /XYZ 99.895 720.077 null] >> -% 1353 0 obj +% 1366 0 obj << -/Font << /F16 550 0 R /F30 759 0 R /F27 552 0 R /F8 553 0 R /F11 745 0 R >> +/Font << /F16 554 0 R /F30 764 0 R /F27 556 0 R /F8 557 0 R /F11 750 0 R >> /ProcSet [ /PDF /Text ] >> -% 1360 0 obj +% 1374 0 obj << /Type /Page -/Contents 1361 0 R -/Resources 1359 0 R +/Contents 1375 0 R +/Resources 1373 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1363 0 R -/Annots [ 1357 0 R 1358 0 R ] +/Parent 1370 0 R +/Annots [ 1371 0 R 1372 0 R ] >> -% 1357 0 obj +% 1371 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [294.721 363.459 361.779 374.584] +/Rect [345.53 363.459 412.588 374.584] /A << /S /GoTo /D (descdata) >> >> -% 1358 0 obj +% 1372 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [365.781 141.026 441.835 152.151] +/Rect [416.591 141.026 492.645 152.151] /A << /S /GoTo /D (vdata) >> >> -% 1362 0 obj +% 1376 0 obj << -/D [1360 0 R /XYZ 98.895 753.953 null] +/D [1374 0 R /XYZ 149.705 753.953 null] >> -% 332 0 obj +% 336 0 obj << -/D [1360 0 R /XYZ 99.895 720.077 null] +/D [1374 0 R /XYZ 150.705 720.077 null] >> -% 1359 0 obj +% 1373 0 obj << -/Font << /F16 550 0 R /F30 759 0 R /F27 552 0 R /F8 553 0 R /F11 745 0 R >> +/Font << /F16 554 0 R /F30 764 0 R /F27 556 0 R /F8 557 0 R /F11 750 0 R >> /ProcSet [ /PDF /Text ] >> -% 1365 0 obj +% 1378 0 obj << /Type /Page -/Contents 1366 0 R -/Resources 1364 0 R +/Contents 1379 0 R +/Resources 1377 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1363 0 R +/Parent 1370 0 R >> -% 1367 0 obj +% 1380 0 obj << -/D [1365 0 R /XYZ 149.705 753.953 null] +/D [1378 0 R /XYZ 98.895 753.953 null] >> -% 1368 0 obj +% 1381 0 obj << -/D [1365 0 R /XYZ 150.705 632.405 null] +/D [1378 0 R /XYZ 99.895 632.405 null] >> -% 1369 0 obj +% 1382 0 obj << -/D [1365 0 R /XYZ 150.705 609.989 null] +/D [1378 0 R /XYZ 99.895 609.989 null] >> -% 1364 0 obj +% 1377 0 obj << -/Font << /F27 552 0 R /F8 553 0 R /F16 550 0 R >> +/Font << /F27 556 0 R /F8 557 0 R /F16 554 0 R >> /ProcSet [ /PDF /Text ] >> -% 1374 0 obj +% 1387 0 obj << /Type /Page -/Contents 1375 0 R -/Resources 1373 0 R +/Contents 1388 0 R +/Resources 1386 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1363 0 R -/Annots [ 1370 0 R 1371 0 R 1372 0 R ] +/Parent 1370 0 R +/Annots [ 1383 0 R 1384 0 R 1385 0 R ] >> -% 1370 0 obj +% 1383 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [261.152 574.94 328.21 586.065] +/Rect [311.962 574.94 379.019 586.065] /A << /S /GoTo /D (descdata) >> >> -% 1371 0 obj +% 1384 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [269.918 483.284 345.972 494.409] +/Rect [320.727 483.284 396.781 494.409] /A << /S /GoTo /D (vdata) >> >> -% 1372 0 obj +% 1385 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [187.733 381.665 263.787 392.79] +/Rect [238.542 381.665 314.596 392.79] /A << /S /GoTo /D (vdata) >> >> -% 1376 0 obj +% 1389 0 obj << -/D [1374 0 R /XYZ 98.895 753.953 null] +/D [1387 0 R /XYZ 149.705 753.953 null] >> -% 336 0 obj +% 340 0 obj << -/D [1374 0 R /XYZ 99.895 720.077 null] +/D [1387 0 R /XYZ 150.705 720.077 null] >> -% 1373 0 obj +% 1386 0 obj << -/Font << /F16 550 0 R /F30 759 0 R /F27 552 0 R /F8 553 0 R /F11 745 0 R >> +/Font << /F16 554 0 R /F30 764 0 R /F27 556 0 R /F8 557 0 R /F11 750 0 R >> /ProcSet [ /PDF /Text ] >> -% 1380 0 obj +% 1393 0 obj << /Type /Page -/Contents 1381 0 R -/Resources 1379 0 R +/Contents 1394 0 R +/Resources 1392 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1363 0 R -/Annots [ 1377 0 R 1378 0 R ] +/Parent 1370 0 R +/Annots [ 1390 0 R 1391 0 R ] >> -% 1377 0 obj +% 1390 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [238.542 562.985 314.596 574.11] +/Rect [187.733 562.985 263.787 574.11] /A << /S /GoTo /D (vdata) >> >> -% 1378 0 obj +% 1391 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [311.962 483.284 379.019 494.409] +/Rect [261.152 483.284 328.21 494.409] /A << /S /GoTo /D (descdata) >> >> -% 1382 0 obj +% 1395 0 obj << -/D [1380 0 R /XYZ 149.705 753.953 null] +/D [1393 0 R /XYZ 98.895 753.953 null] >> -% 340 0 obj +% 344 0 obj << -/D [1380 0 R /XYZ 150.705 720.077 null] +/D [1393 0 R /XYZ 99.895 720.077 null] >> -% 1379 0 obj +% 1392 0 obj << -/Font << /F16 550 0 R /F30 759 0 R /F27 552 0 R /F8 553 0 R >> +/Font << /F16 554 0 R /F30 764 0 R /F27 556 0 R /F8 557 0 R >> /ProcSet [ /PDF /Text ] >> -% 1384 0 obj +% 1397 0 obj << /Type /Page -/Contents 1385 0 R -/Resources 1383 0 R +/Contents 1398 0 R +/Resources 1396 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1363 0 R +/Parent 1370 0 R >> -% 1386 0 obj +% 1399 0 obj << -/D [1384 0 R /XYZ 98.895 753.953 null] +/D [1397 0 R /XYZ 149.705 753.953 null] >> -% 344 0 obj +% 348 0 obj << -/D [1384 0 R /XYZ 99.895 720.077 null] +/D [1397 0 R /XYZ 150.705 720.077 null] >> -% 1383 0 obj +% 1396 0 obj << -/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 >> +/Font << /F16 554 0 R /F30 764 0 R /F27 556 0 R /F8 557 0 R /F11 750 0 R /F10 766 0 R >> /ProcSet [ /PDF /Text ] >> -% 1389 0 obj +% 1402 0 obj << /Type /Page -/Contents 1390 0 R -/Resources 1388 0 R +/Contents 1403 0 R +/Resources 1401 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1363 0 R -/Annots [ 1387 0 R ] +/Parent 1405 0 R +/Annots [ 1400 0 R ] >> -% 1387 0 obj +% 1400 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [345.53 484.86 412.588 495.985] +/Rect [294.721 484.86 361.779 495.985] /A << /S /GoTo /D (descdata) >> >> -% 1391 0 obj -<< -/D [1389 0 R /XYZ 149.705 753.953 null] ->> -% 348 0 obj -<< -/D [1389 0 R /XYZ 150.705 720.077 null] ->> -% 1388 0 obj -<< -/Font << /F16 550 0 R /F30 759 0 R /F27 552 0 R /F8 553 0 R /F11 745 0 R >> -/ProcSet [ /PDF /Text ] ->> -% 1393 0 obj -<< -/Type /Page -/Contents 1394 0 R -/Resources 1392 0 R -/MediaBox [0 0 595.276 841.89] -/Parent 1398 0 R ->> -% 1395 0 obj -<< -/D [1393 0 R /XYZ 98.895 753.953 null] ->> -% 1396 0 obj +% 1404 0 obj << -/D [1393 0 R /XYZ 99.895 716.092 null] +/D [1402 0 R /XYZ 98.895 753.953 null] >> -% 1397 0 obj +% 352 0 obj << -/D [1393 0 R /XYZ 99.895 688.251 null] +/D [1402 0 R /XYZ 99.895 720.077 null] >> -% 1392 0 obj +% 1401 0 obj << -/Font << /F8 553 0 R /F30 759 0 R >> +/Font << /F16 554 0 R /F30 764 0 R /F27 556 0 R /F8 557 0 R /F11 750 0 R >> /ProcSet [ /PDF /Text ] >> -% 1401 0 obj +% 1407 0 obj << /Type /Page -/Contents 1402 0 R -/Resources 1400 0 R +/Contents 1408 0 R +/Resources 1406 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1398 0 R -/Annots [ 1399 0 R ] +/Parent 1405 0 R >> -% 1399 0 obj +% 1409 0 obj << -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [345.53 483.284 412.588 494.409] -/A << /S /GoTo /D (descdata) >> +/D [1407 0 R /XYZ 149.705 753.953 null] >> -% 1403 0 obj +% 1410 0 obj << -/D [1401 0 R /XYZ 149.705 753.953 null] +/D [1407 0 R /XYZ 150.705 716.092 null] >> -% 352 0 obj +% 1411 0 obj << -/D [1401 0 R /XYZ 150.705 720.077 null] +/D [1407 0 R /XYZ 150.705 688.251 null] >> -% 1400 0 obj +% 1406 0 obj << -/Font << /F16 550 0 R /F30 759 0 R /F27 552 0 R /F8 553 0 R /F11 745 0 R >> +/Font << /F8 557 0 R /F30 764 0 R >> /ProcSet [ /PDF /Text ] >> -% 1406 0 obj +% 1414 0 obj << /Type /Page -/Contents 1407 0 R -/Resources 1405 0 R +/Contents 1415 0 R +/Resources 1413 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1398 0 R -/Annots [ 1404 0 R ] +/Parent 1405 0 R +/Annots [ 1412 0 R ] >> -% 1404 0 obj +% 1412 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [294.721 495.239 361.779 506.364] +/Rect [294.721 483.284 361.779 494.409] /A << /S /GoTo /D (descdata) >> >> -% 1408 0 obj +% 1416 0 obj << -/D [1406 0 R /XYZ 98.895 753.953 null] +/D [1414 0 R /XYZ 98.895 753.953 null] >> % 356 0 obj << -/D [1406 0 R /XYZ 99.895 720.077 null] ->> -% 1409 0 obj -<< -/D [1406 0 R /XYZ 99.895 382.883 null] +/D [1414 0 R /XYZ 99.895 720.077 null] >> -% 1405 0 obj +% 1413 0 obj << -/Font << /F16 550 0 R /F30 759 0 R /F27 552 0 R /F8 553 0 R /F11 745 0 R >> +/Font << /F16 554 0 R /F30 764 0 R /F27 556 0 R /F8 557 0 R /F11 750 0 R >> /ProcSet [ /PDF /Text ] >> -% 1412 0 obj +% 1419 0 obj << /Type /Page -/Contents 1413 0 R -/Resources 1411 0 R +/Contents 1420 0 R +/Resources 1418 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1398 0 R -/Annots [ 1410 0 R ] +/Parent 1405 0 R +/Annots [ 1417 0 R ] >> -% 1410 0 obj +% 1417 0 obj << /Type /Annot /Subtype /Link @@ -17310,33 +17295,33 @@ stream /Rect [345.53 495.239 412.588 506.364] /A << /S /GoTo /D (descdata) >> >> -% 1414 0 obj +% 1421 0 obj << -/D [1412 0 R /XYZ 149.705 753.953 null] +/D [1419 0 R /XYZ 149.705 753.953 null] >> % 360 0 obj << -/D [1412 0 R /XYZ 150.705 720.077 null] +/D [1419 0 R /XYZ 150.705 720.077 null] >> -% 1415 0 obj +% 1422 0 obj << -/D [1412 0 R /XYZ 150.705 259.346 null] +/D [1419 0 R /XYZ 150.705 382.883 null] >> -% 1411 0 obj +% 1418 0 obj << -/Font << /F16 550 0 R /F30 759 0 R /F27 552 0 R /F8 553 0 R /F11 745 0 R >> +/Font << /F16 554 0 R /F30 764 0 R /F27 556 0 R /F8 557 0 R /F11 750 0 R >> /ProcSet [ /PDF /Text ] >> -% 1418 0 obj +% 1425 0 obj << /Type /Page -/Contents 1419 0 R -/Resources 1417 0 R +/Contents 1426 0 R +/Resources 1424 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1398 0 R -/Annots [ 1416 0 R ] +/Parent 1405 0 R +/Annots [ 1423 0 R ] >> -% 1416 0 obj +% 1423 0 obj << /Type /Annot /Subtype /Link @@ -17344,33 +17329,33 @@ stream /Rect [294.721 495.239 361.779 506.364] /A << /S /GoTo /D (descdata) >> >> -% 1420 0 obj +% 1427 0 obj << -/D [1418 0 R /XYZ 98.895 753.953 null] +/D [1425 0 R /XYZ 98.895 753.953 null] >> % 364 0 obj << -/D [1418 0 R /XYZ 99.895 720.077 null] +/D [1425 0 R /XYZ 99.895 720.077 null] >> -% 1421 0 obj +% 1428 0 obj << -/D [1418 0 R /XYZ 99.895 382.883 null] +/D [1425 0 R /XYZ 99.895 259.346 null] >> -% 1417 0 obj +% 1424 0 obj << -/Font << /F16 550 0 R /F30 759 0 R /F27 552 0 R /F8 553 0 R /F11 745 0 R >> +/Font << /F16 554 0 R /F30 764 0 R /F27 556 0 R /F8 557 0 R /F11 750 0 R >> /ProcSet [ /PDF /Text ] >> -% 1424 0 obj +% 1431 0 obj << /Type /Page -/Contents 1425 0 R -/Resources 1423 0 R +/Contents 1432 0 R +/Resources 1430 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1398 0 R -/Annots [ 1422 0 R ] +/Parent 1405 0 R +/Annots [ 1429 0 R ] >> -% 1422 0 obj +% 1429 0 obj << /Type /Annot /Subtype /Link @@ -17378,92 +17363,144 @@ stream /Rect [345.53 495.239 412.588 506.364] /A << /S /GoTo /D (descdata) >> >> -% 1426 0 obj +% 1433 0 obj << -/D [1424 0 R /XYZ 149.705 753.953 null] +/D [1431 0 R /XYZ 149.705 753.953 null] >> % 368 0 obj << -/D [1424 0 R /XYZ 150.705 720.077 null] +/D [1431 0 R /XYZ 150.705 720.077 null] >> -% 1427 0 obj +% 1434 0 obj << -/D [1424 0 R /XYZ 150.705 259.346 null] +/D [1431 0 R /XYZ 150.705 382.883 null] >> -% 1423 0 obj +% 1430 0 obj << -/Font << /F16 550 0 R /F30 759 0 R /F27 552 0 R /F8 553 0 R /F11 745 0 R >> +/Font << /F16 554 0 R /F30 764 0 R /F27 556 0 R /F8 557 0 R /F11 750 0 R >> /ProcSet [ /PDF /Text ] >> -% 1430 0 obj +% 1437 0 obj << /Type /Page -/Contents 1431 0 R -/Resources 1429 0 R +/Contents 1438 0 R +/Resources 1436 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1435 0 R -/Annots [ 1428 0 R ] +/Parent 1441 0 R +/Annots [ 1435 0 R ] >> -% 1428 0 obj +% 1435 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [294.721 574.94 361.779 586.065] +/Rect [294.721 495.239 361.779 506.364] /A << /S /GoTo /D (descdata) >> >> -% 1432 0 obj +% 1439 0 obj << -/D [1430 0 R /XYZ 98.895 753.953 null] +/D [1437 0 R /XYZ 98.895 753.953 null] >> % 372 0 obj << -/D [1430 0 R /XYZ 99.895 720.077 null] ->> -% 1433 0 obj -<< -/D [1430 0 R /XYZ 99.895 370.928 null] ->> -% 1434 0 obj -<< -/D [1430 0 R /XYZ 99.895 327.092 null] ->> -% 1429 0 obj -<< -/Font << /F16 550 0 R /F30 759 0 R /F27 552 0 R /F8 553 0 R >> -/ProcSet [ /PDF /Text ] +/D [1437 0 R /XYZ 99.895 720.077 null] >> -% 1438 0 obj +% 1440 0 obj << -/Type /Page -/Contents 1439 0 R -/Resources 1437 0 R -/MediaBox [0 0 595.276 841.89] -/Parent 1435 0 R -/Annots [ 1436 0 R ] +/D [1437 0 R /XYZ 99.895 259.346 null] >> % 1436 0 obj << -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [345.53 574.94 412.588 586.065] -/A << /S /GoTo /D (descdata) >> ->> -% 1440 0 obj -<< -/D [1438 0 R /XYZ 149.705 753.953 null] +/Font << /F16 554 0 R /F30 764 0 R /F27 556 0 R /F8 557 0 R /F11 750 0 R >> +/ProcSet [ /PDF /Text ] >> -% 376 0 obj + +endstream +endobj +1445 0 obj << -/D [1438 0 R /XYZ 150.705 720.077 null] +/Length 3804 >> +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 [(get)]TJ +ET +q +1 0 0 1 194.695 706.328 cm +[]0 d 0 J 0.398 w 0 0 m 4.035 0 l S +Q +BT +/F16 11.9552 Tf 198.729 706.129 Td [(b)-31(oundary)-375(|)-375(Extract)-375(list)-375(of)-375(b)-32(oundary)-375(elemen)32(ts)]TJ +0 g 0 G +0 g 0 G +/F30 9.9626 Tf -48.024 -18.389 Td [(call)-525(psb_get_boundary\050bndel,)-525(desc,)-525(info\051)]TJ +0 g 0 G +/F27 9.9626 Tf 0 -21.918 Td [(T)32(yp)-32(e:)]TJ +0 g 0 G +/F8 9.9626 Tf 33.797 0 Td [(Async)28(hronous.)]TJ +0 g 0 G +/F27 9.9626 Tf -33.797 -19.926 Td [(On)-383(En)32(try)]TJ +0 g 0 G +0 g 0 G + 0 -19.925 Td [(desc)]TJ +0 g 0 G +/F8 9.9626 Tf 26.208 0 Td [(the)-333(comm)27(unication)-333(descriptor.)]TJ -1.302 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 27.951 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf 23.073 0 Td [(.)]TJ -51.024 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.184 0 Td [(required)]TJ/F8 9.9626 Tf 41.898 0 Td [(.)]TJ -67.082 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.548 0 Td [(.)]TJ -43.034 -11.956 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(structured)-333(data)-333(of)-334(t)28(yp)-28(e)]TJ +0 0 1 rg 0 0 1 RG +/F30 9.9626 Tf 170.915 0 Td [(psb)]TJ +ET +q +1 0 0 1 362.845 578.35 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +Q +BT +/F30 9.9626 Tf 365.983 578.15 Td [(desc)]TJ +ET +q +1 0 0 1 387.532 578.35 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +Q +BT +/F30 9.9626 Tf 390.67 578.15 Td [(type)]TJ +0 g 0 G +/F8 9.9626 Tf 20.922 0 Td [(.)]TJ +0 g 0 G +/F27 9.9626 Tf -260.887 -21.917 Td [(On)-383(Return)]TJ +0 g 0 G +0 g 0 G + 0 -19.926 Td [(bndel)]TJ +0 g 0 G +/F8 9.9626 Tf 32.51 0 Td [(The)-268(list)-267(of)-268(b)-27(oundary)-268(elemen)28(ts)-268(on)-267(the)-268(calling)-267(pro)-28(cess,)-281(in)-267(lo)-28(cal)-268(n)28(um)28(b)-28(ering.)]TJ -7.604 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.612 0 Td [(required)]TJ/F8 9.9626 Tf -29.612 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(out)]TJ/F8 9.9626 Tf 16.549 0 Td [(.)]TJ -50.035 -11.955 Td [(Sp)-28(eci\014ed)-456(as:)-691(a)-457(rank)-456(one)-457(arra)28(y)-457(with)-456(the)-457(ALLOCA)84(T)83(ABLE)-456(attribute,)-488(of)]TJ 0 -11.955 Td [(t)28(yp)-28(e)-333(in)27(teger.)]TJ +0 g 0 G +/F27 9.9626 Tf -24.906 -31.881 Td [(info)]TJ +0 g 0 G +/F8 9.9626 Tf 23.758 0 Td [(Error)-333(co)-28(de.)]TJ 1.148 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.612 0 Td [(required)]TJ/F8 9.9626 Tf -29.612 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(out)]TJ/F8 9.9626 Tf 16.549 0 Td [(.)]TJ -50.035 -11.956 Td [(An)-333(in)28(te)-1(ger)-333(v)56(alue;)-334(0)-333(means)-333(no)-334(error)-333(has)-333(b)-28(een)-333(detec)-1(ted.)]TJ/F16 11.9552 Tf -24.906 -21.917 Td [(Notes)]TJ +0 g 0 G +/F8 9.9626 Tf 12.176 -19.926 Td [(1.)]TJ +0 g 0 G + [-500(If)-269(there)-269(are)-269(no)-269(b)-28(oundary)-269(elemen)28(ts)-269(\050i.e.,)-282(if)-269(the)-269(lo)-28(cal)-269(part)-269(of)-269(the)-270(connectivit)28(y)]TJ 12.73 -11.955 Td [(graph)-449(is)-450(self-con)28(tained\051)-450(the)-449(output)-450(v)28(ector)-449(is)-450(set)-449(to)-450(the)-449(\134not)-450(allo)-28(cated")]TJ 0 -11.955 Td [(state.)]TJ +0 g 0 G + -12.73 -19.925 Td [(2.)]TJ +0 g 0 G + [-500(Otherwise)-288(the)-289(size)-288(of)]TJ/F30 9.9626 Tf 105.44 0 Td [(bndel)]TJ/F8 9.9626 Tf 29.024 0 Td [(will)-288(b)-28(e)-288(exactly)-288(e)-1(qu)1(al)-289(to)-288(the)-288(n)28(um)27(b)-27(er)-289(of)-288(b)-28(oun)1(d-)]TJ -121.734 -11.956 Td [(ary)-333(elemen)27(ts.)]TJ +0 g 0 G + 141.968 -208.758 Td [(92)]TJ +0 g 0 G +ET endstream endobj -1447 0 obj +1453 0 obj << -/Length 5783 +/Length 3654 >> stream 0 g 0 G @@ -17476,14 +17513,95 @@ q []0 d 0 J 0.398 w 0 0 m 4.035 0 l S Q BT -/F16 11.9552 Tf 124.986 706.129 Td [(sp)]TJ +/F16 11.9552 Tf 124.986 706.129 Td [(get)]TJ +ET +q +1 0 0 1 143.885 706.328 cm +[]0 d 0 J 0.398 w 0 0 m 4.035 0 l S +Q +BT +/F16 11.9552 Tf 147.92 706.129 Td [(o)31(v)31(erlap)-375(|)-375(Extract)-375(list)-375(of)-375(o)32(v)31(erlap)-375(elemen)31(ts)]TJ +0 g 0 G +0 g 0 G +/F30 9.9626 Tf -48.025 -18.389 Td [(call)-525(psb_get_overlap\050ovrel,)-525(desc,)-525(info\051)]TJ +0 g 0 G +/F27 9.9626 Tf 0 -21.918 Td [(T)32(yp)-32(e:)]TJ +0 g 0 G +/F8 9.9626 Tf 33.797 0 Td [(Async)28(hronous.)]TJ +0 g 0 G +/F27 9.9626 Tf -33.797 -19.926 Td [(On)-383(En)32(try)]TJ +0 g 0 G +0 g 0 G + 0 -19.925 Td [(desc)]TJ +0 g 0 G +/F8 9.9626 Tf 26.209 0 Td [(the)-333(comm)27(unication)-333(descriptor.)]TJ -1.302 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 27.951 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf 23.073 0 Td [(.)]TJ -51.024 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.183 0 Td [(required)]TJ/F8 9.9626 Tf 41.899 0 Td [(.)]TJ -67.082 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.956 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(structured)-333(data)-333(of)-334(t)28(yp)-28(e)]TJ +0 0 1 rg 0 0 1 RG +/F30 9.9626 Tf 170.915 0 Td [(psb)]TJ +ET +q +1 0 0 1 312.036 578.35 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +Q +BT +/F30 9.9626 Tf 315.174 578.15 Td [(desc)]TJ +ET +q +1 0 0 1 336.723 578.35 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +Q +BT +/F30 9.9626 Tf 339.861 578.15 Td [(type)]TJ +0 g 0 G +/F8 9.9626 Tf 20.921 0 Td [(.)]TJ +0 g 0 G +/F27 9.9626 Tf -260.887 -21.917 Td [(On)-383(Return)]TJ +0 g 0 G +0 g 0 G + 0 -19.926 Td [(o)32(vrel)]TJ +0 g 0 G +/F8 9.9626 Tf 29.591 0 Td [(The)-333(list)-334(of)-333(o)28(v)28(erlap)-334(elemen)28(ts)-333(on)-334(the)-333(calling)-333(pro)-28(cess,)-333(in)-334(lo)-28(cal)-333(n)28(um)28(b)-28(ering.)]TJ -4.684 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(out)]TJ/F8 9.9626 Tf 16.549 0 Td [(.)]TJ -50.035 -11.955 Td [(Sp)-28(eci\014ed)-456(as:)-691(a)-457(rank)-456(one)-457(arra)28(y)-456(with)-457(the)-457(ALLOCA)84(T)83(ABLE)-456(attribute,)-488(of)]TJ 0 -11.955 Td [(t)28(yp)-28(e)-333(in)28(te)-1(ger.)]TJ +0 g 0 G +/F27 9.9626 Tf -24.907 -31.881 Td [(info)]TJ +0 g 0 G +/F8 9.9626 Tf 23.758 0 Td [(Error)-333(co)-28(de.)]TJ 1.149 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(out)]TJ/F8 9.9626 Tf 16.549 0 Td [(.)]TJ -50.035 -11.956 Td [(An)-333(in)28(tege)-1(r)-333(v)56(alue;)-334(0)-333(means)-333(no)-334(error)-333(has)-333(b)-28(een)-333(detecte)-1(d)1(.)]TJ/F16 11.9552 Tf -24.907 -21.917 Td [(Notes)]TJ +0 g 0 G +/F8 9.9626 Tf 12.177 -19.926 Td [(1.)]TJ +0 g 0 G + [-500(If)-343(there)-343(are)-344(no)-343(o)28(v)28(erlap)-344(elemen)28(ts)-343(the)-343(output)-344(v)28(ector)-343(is)-343(set)-344(to)-343(the)-343(\134not)-343(allo-)]TJ 12.73 -11.955 Td [(cated")-333(state.)]TJ +0 g 0 G + -12.73 -19.925 Td [(2.)]TJ +0 g 0 G + [-500(Otherwise)-284(the)-284(size)-283(of)]TJ/F30 9.9626 Tf 105.261 0 Td [(ovrel)]TJ/F8 9.9626 Tf 28.979 0 Td [(will)-284(b)-27(e)-284(exactly)-284(equal)-284(to)-284(th)1(e)-284(n)28(um)27(b)-27(er)-284(of)-284(o)28(v)28(erlap)]TJ -121.51 -11.955 Td [(elemen)28(ts.)]TJ +0 g 0 G + 141.968 -220.714 Td [(93)]TJ +0 g 0 G +ET + +endstream +endobj +1460 0 obj +<< +/Length 5790 +>> +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 [(sp)]TJ ET q -1 0 0 1 138.57 706.328 cm +1 0 0 1 189.38 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 +/F16 11.9552 Tf 193.415 706.129 Td [(getro)31(w)-375(|)-375(Extract)-375(ro)32(w\050s)-1(\051)-375(from)-375(a)-375(sparse)-375(matrix)]TJ 0 g 0 G 0 g 0 G /F30 9.9626 Tf -42.71 -18.647 Td [(call)-525(psb_sp_getrow\050row,)-525(a,)-525(nz,)-525(ia,)-525(ja,)-525(val,)-525(info,)-525(&)]TJ 73.225 -11.955 Td [(&)-525(append,)-525(nzin,)-525(lrw\051)]TJ @@ -17497,114 +17615,114 @@ BT 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 +/F8 9.9626 Tf 23.384 0 Td [(The)-333(\050\014rst\051)-334(ro)28(w)-333(to)-334(b)-27(e)-334(extracted.)]TJ 1.523 -11.956 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 27.95 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -27.95 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.183 0 Td [(required)]TJ/F8 9.9626 Tf -25.183 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.485 0 Td [(in)]TJ/F8 9.9626 Tf 9.548 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-444(an)-334(in)28(teger)]TJ/F11 9.9626 Tf 104.69 0 Td [(>)]TJ/F8 9.9626 Tf 10.517 0 Td [(0.)]TJ 0 g 0 G /F27 9.9626 Tf -140.114 -20.479 Td [(a)]TJ 0 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 +/F8 9.9626 Tf 10.551 0 Td [(the)-333(matrix)-334(from)-333(whic)28(h)-333(to)-334(get)-333(ro)28(ws.)]TJ 14.356 -11.956 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 27.95 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -27.95 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.183 0 Td [(required)]TJ/F8 9.9626 Tf -25.183 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.485 0 Td [(in)]TJ/F8 9.9626 Tf 9.548 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-444(a)-334(structured)-333(data)-333(of)-334(t)28(yp)-28(e)]TJ 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 +1 0 0 1 362.845 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 +/F30 9.9626 Tf 365.983 496.114 Td [(Tspmat)]TJ ET q -1 0 0 1 347.183 496.313 cm +1 0 0 1 397.993 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 +/F30 9.9626 Tf 401.131 496.114 Td [(type)]TJ 0 g 0 G /F8 9.9626 Tf 20.921 0 Td [(.)]TJ 0 g 0 G -/F27 9.9626 Tf -271.348 -20.479 Td [(app)-32(end)]TJ +/F27 9.9626 Tf -271.347 -20.479 Td [(app)-32(end)]TJ 0 g 0 G -/F8 9.9626 Tf 41.58 0 Td [(Whether)-333(to)-334(app)-27(end)-334(or)-333(o)28(v)28(erwrite)-334(existing)-333(output.)]TJ -16.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 +/F8 9.9626 Tf 41.58 0 Td [(Whether)-333(to)-334(app)-27(end)-334(or)-333(o)28(v)28(erwrite)-334(existing)-333(output.)]TJ -16.674 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 27.951 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -27.951 -11.956 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.184 0 Td [(optional)]TJ/F8 9.9626 Tf -25.184 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.548 0 Td [(.)]TJ -43.034 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(logical)-333(v)55(alue)-333(default:)-444(false)-334(\050o)28(v)28(erwrite\051.)]TJ 0 g 0 G -/F27 9.9626 Tf -24.907 -20.479 Td [(nzin)]TJ +/F27 9.9626 Tf -24.906 -20.479 Td [(nzin)]TJ 0 g 0 G -/F8 9.9626 Tf 25.986 0 Td [(Input)-333(size)-334(to)-333(b)-28(e)-333(app)-28(ended)-333(to.)]TJ -1.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 +/F8 9.9626 Tf 25.986 0 Td [(Input)-333(size)-334(to)-333(b)-28(e)-333(app)-28(ended)-333(to.)]TJ -1.08 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 27.951 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -27.951 -11.956 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.184 0 Td [(optional)]TJ/F8 9.9626 Tf -25.184 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-398(as:)-573(an)-398(in)28(teger)]TJ/F11 9.9626 Tf 107.908 0 Td [(>)]TJ/F8 9.9626 Tf 11.588 0 Td [(0.)-638(When)-398(app)-28(end)-398(is)-397(true,)-414(s)-1(p)-27(eci\014es)-398(ho)28(w)-398(man)27(y)]TJ -119.496 -11.955 Td [(en)28(tries)-334(in)-333(the)-333(output)-333(v)27(ectors)-333(are)-333(already)-334(\014lled.)]TJ 0 g 0 G -/F27 9.9626 Tf -24.907 -20.479 Td [(lrw)]TJ +/F27 9.9626 Tf -24.906 -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 +/F8 9.9626 Tf 21.156 0 Td [(The)-333(last)-334(ro)28(w)-333(to)-334(b)-27(e)-334(extracted.)]TJ 3.75 -11.956 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 27.951 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -27.951 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.184 0 Td [(optional)]TJ/F8 9.9626 Tf -25.184 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(in)28(teger)]TJ/F11 9.9626 Tf 104.691 0 Td [(>)]TJ/F8 9.9626 Tf 10.516 0 Td [(0,)-333(default:)]TJ/F11 9.9626 Tf 48.43 0 Td [(r)-28(ow)]TJ/F8 9.9626 Tf 17.001 0 Td [(.)]TJ 0 g 0 G -/F27 9.9626 Tf -205.545 -22.334 Td [(On)-383(Return)]TJ +/F27 9.9626 Tf -205.544 -22.334 Td [(On)-383(Return)]TJ 0 g 0 G 0 g 0 G 0 -20.479 Td [(nz)]TJ 0 g 0 G -/F8 9.9626 Tf 16.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 +/F8 9.9626 Tf 16.438 0 Td [(the)-333(n)27(u)1(m)27(b)-27(e)-1(r)-333(of)-333(elemen)28(ts)-334(returned)-333(b)28(y)-334(thi)1(s)-334(call.)]TJ 8.468 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 27.951 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf 23.073 0 Td [(.)]TJ -51.024 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.184 0 Td [(required)]TJ/F8 9.9626 Tf 41.898 0 Td [(.)]TJ -67.082 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(out)]TJ/F8 9.9626 Tf 16.549 0 Td [(.)]TJ -50.035 -11.956 Td [(Returned)-333(as:)-445(an)-333(in)28(teger)-334(scalar.)]TJ 0 g 0 G -/F27 9.9626 Tf -24.907 -20.479 Td [(ia)]TJ +/F27 9.9626 Tf -24.906 -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 +/F8 9.9626 Tf 13.733 0 Td [(the)-333(ro)27(w)-333(indices.)]TJ 11.173 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 27.951 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf 23.073 0 Td [(.)]TJ -51.024 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.184 0 Td [(required)]TJ/F8 9.9626 Tf 41.898 0 Td [(.)]TJ -67.082 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(inout)]TJ/F8 9.9626 Tf 26.096 0 Td [(.)]TJ -59.582 -11.956 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(in)28(teger)-333(arra)27(y)-333(with)-333(the)]TJ/F30 9.9626 Tf 170.611 0 Td [(ALLOCATABLE)]TJ/F8 9.9626 Tf 60.854 0 Td [(attribute.)]TJ 0 g 0 G - -89.497 -29.887 Td [(93)]TJ + -89.497 -29.887 Td [(94)]TJ 0 g 0 G ET endstream endobj -1451 0 obj +1464 0 obj << -/Length 3711 +/Length 3701 >> stream 0 g 0 G 0 g 0 G 0 g 0 G BT -/F27 9.9626 Tf 150.705 706.129 Td [(ja)]TJ +/F27 9.9626 Tf 99.895 706.129 Td [(ja)]TJ 0 g 0 G -/F8 9.9626 Tf 14.051 0 Td [(the)-333(column)-334(indices)-333(of)-333(the)-334(elemen)28(ts)-333(to)-334(b)-27(e)-334(inserted.)]TJ 10.855 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 27.951 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf 23.073 0 Td [(.)]TJ -51.024 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.184 0 Td [(required)]TJ/F8 9.9626 Tf 41.898 0 Td [(.)]TJ -67.082 -11.956 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(inout)]TJ/F8 9.9626 Tf 26.096 0 Td [(.)]TJ -59.582 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(in)28(teger)-333(arra)27(y)-333(with)-333(the)]TJ/F30 9.9626 Tf 170.611 0 Td [(ALLOCATABLE)]TJ/F8 9.9626 Tf 60.855 0 Td [(attribute.)]TJ +/F8 9.9626 Tf 14.052 0 Td [(the)-333(column)-334(indices)-333(of)-333(the)-334(elemen)28(ts)-333(to)-334(b)-27(e)-334(inserted.)]TJ 10.855 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 27.951 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf 23.073 0 Td [(.)]TJ -51.024 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.183 0 Td [(required)]TJ/F8 9.9626 Tf 41.899 0 Td [(.)]TJ -67.082 -11.956 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(inout)]TJ/F8 9.9626 Tf 26.096 0 Td [(.)]TJ -59.582 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(in)28(teger)-333(arra)27(y)-333(with)-333(the)]TJ/F30 9.9626 Tf 170.61 0 Td [(ALLOCATABLE)]TJ/F8 9.9626 Tf 60.855 0 Td [(attribute.)]TJ 0 g 0 G /F27 9.9626 Tf -256.372 -19.925 Td [(v)64(al)]TJ 0 g 0 G -/F8 9.9626 Tf 19.143 0 Td [(the)-333(elemen)27(ts)-333(to)-333(b)-28(e)-333(inse)-1(r)1(te)-1(d)1(.)]TJ 5.763 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 27.951 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf 23.073 0 Td [(.)]TJ -51.024 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.184 0 Td [(required)]TJ/F8 9.9626 Tf 41.898 0 Td [(.)]TJ -67.082 -11.956 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(inout)]TJ/F8 9.9626 Tf 26.096 0 Td [(.)]TJ -59.582 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(real)-333(arra)28(y)-334(with)-333(the)]TJ/F30 9.9626 Tf 151.516 0 Td [(ALLOCATABLE)]TJ/F8 9.9626 Tf 60.854 0 Td [(attribute.)]TJ +/F8 9.9626 Tf 19.144 0 Td [(the)-333(elemen)27(ts)-333(to)-333(b)-28(e)-333(inserted.)]TJ 5.763 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 27.951 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf 23.073 0 Td [(.)]TJ -51.024 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.183 0 Td [(required)]TJ/F8 9.9626 Tf 41.899 0 Td [(.)]TJ -67.082 -11.956 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(inout)]TJ/F8 9.9626 Tf 26.096 0 Td [(.)]TJ -59.582 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(real)-333(arra)28(y)-334(with)-333(the)]TJ/F30 9.9626 Tf 151.515 0 Td [(ALLOCATABLE)]TJ/F8 9.9626 Tf 60.855 0 Td [(attribute.)]TJ 0 g 0 G -/F27 9.9626 Tf -237.276 -19.925 Td [(info)]TJ +/F27 9.9626 Tf -237.277 -19.925 Td [(info)]TJ 0 g 0 G -/F8 9.9626 Tf 23.758 0 Td [(Error)-333(co)-28(de.)]TJ 1.148 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.612 0 Td [(required)]TJ/F8 9.9626 Tf -29.612 -11.956 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(out)]TJ/F8 9.9626 Tf 16.549 0 Td [(.)]TJ -50.035 -11.955 Td [(An)-333(in)28(te)-1(ger)-333(v)56(alue;)-334(0)-333(means)-333(no)-334(error)-333(has)-333(b)-28(een)-333(detec)-1(t)1(e)-1(d.)]TJ/F16 11.9552 Tf -24.906 -21.918 Td [(Notes)]TJ +/F8 9.9626 Tf 23.758 0 Td [(Error)-333(co)-28(de.)]TJ 1.149 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.956 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(out)]TJ/F8 9.9626 Tf 16.549 0 Td [(.)]TJ -50.035 -11.955 Td [(An)-333(in)28(tege)-1(r)-333(v)56(alue;)-334(0)-333(means)-333(no)-334(error)-333(has)-333(b)-28(een)-333(detecte)-1(d)1(.)]TJ/F16 11.9552 Tf -24.907 -21.918 Td [(Notes)]TJ 0 g 0 G -/F8 9.9626 Tf 12.176 -19.925 Td [(1.)]TJ +/F8 9.9626 Tf 12.177 -19.925 Td [(1.)]TJ 0 g 0 G - [-500(The)-368(output)]TJ/F11 9.9626 Tf 66.553 0 Td [(nz)]TJ/F8 9.9626 Tf 14.716 0 Td [(is)-368(alw)28(a)28(ys)-368(the)-368(size)-368(of)-368(the)-368(output)-368(generated)-367(b)27(y)-367(the)-368(curren)27(t)]TJ -68.539 -11.955 Td [(call;)-314(th)28(us,)-309(if)]TJ/F30 9.9626 Tf 54.124 0 Td [(append=.true.)]TJ/F8 9.9626 Tf 67.994 0 Td [(,)-310(the)-303(total)-304(output)-304(size)-304(will)-303(b)-28(e)]TJ/F11 9.9626 Tf 128.95 0 Td [(nz)-44(in)]TJ/F8 9.9626 Tf 22.088 0 Td [(+)]TJ/F11 9.9626 Tf 9.373 0 Td [(nz)]TJ/F8 9.9626 Tf 11.051 0 Td [(,)-310(with)]TJ -293.58 -11.955 Td [(the)-372(newly)-372(extracted)-372(co)-28(e\016cien)28(ts)-372(stored)-372(in)-372(en)28(tries)]TJ/F30 9.9626 Tf 216.307 0 Td [(nzin+1:nzin+nz)]TJ/F8 9.9626 Tf 76.93 0 Td [(of)-372(the)]TJ -293.237 -11.955 Td [(arra)28(y)-334(ar)1(gume)-1(n)28(ts;)]TJ + [-500(The)-368(output)]TJ/F11 9.9626 Tf 66.552 0 Td [(nz)]TJ/F8 9.9626 Tf 14.717 0 Td [(is)-368(alw)28(a)28(ys)-368(the)-368(size)-368(of)-368(the)-368(output)-368(generated)-367(b)27(y)-367(the)-368(curren)28(t)]TJ -68.539 -11.955 Td [(call;)-314(th)28(us,)-309(if)]TJ/F30 9.9626 Tf 54.123 0 Td [(append=.true.)]TJ/F8 9.9626 Tf 67.995 0 Td [(,)-310(the)-303(total)-304(output)-304(size)-304(will)-303(b)-28(e)]TJ/F11 9.9626 Tf 128.95 0 Td [(nz)-44(in)]TJ/F8 9.9626 Tf 22.088 0 Td [(+)]TJ/F11 9.9626 Tf 9.373 0 Td [(nz)]TJ/F8 9.9626 Tf 11.051 0 Td [(,)-310(with)]TJ -293.58 -11.955 Td [(the)-372(newly)-372(extracted)-372(co)-28(e\016cien)28(ts)-372(stored)-372(in)-372(en)28(tries)]TJ/F30 9.9626 Tf 216.307 0 Td [(nzin+1:nzin+nz)]TJ/F8 9.9626 Tf 76.93 0 Td [(of)-372(the)]TJ -293.237 -11.955 Td [(arra)28(y)-333(argume)-1(n)28(ts;)]TJ 0 g 0 G -12.73 -19.926 Td [(2.)]TJ 0 g 0 G - [-500(When)]TJ/F30 9.9626 Tf 41.788 0 Td [(append=.true.)]TJ/F8 9.9626 Tf 71.315 0 Td [(the)-333(output)-334(arra)28(ys)-333(are)-333(reallo)-28(cated)-334(as)-333(necessary;)]TJ + [-500(When)]TJ/F30 9.9626 Tf 41.788 0 Td [(append=.true.)]TJ/F8 9.9626 Tf 71.315 0 Td [(the)-333(output)-334(arr)1(a)27(ys)-333(are)-333(reallo)-28(cated)-334(as)-333(necessary;)]TJ 0 g 0 G -113.103 -19.925 Td [(3.)]TJ 0 g 0 G - [-500(The)-253(ro)28(w)-252(and)-253(column)-253(indices)-252(are)-253(returned)-252(in)-253(the)-253(lo)-27(cal)-253(n)28(um)28(b)-28(ering)-253(sc)28(heme;)-280(if)]TJ 12.73 -11.955 Td [(the)-222(global)-222(n)27(um)28(b)-28(erin)1(g)-223(is)-222(desired,)-244(the)-223(user)-222(ma)28(y)-222(emplo)27(y)-222(the)]TJ/F30 9.9626 Tf 243.172 0 Td [(psb_loc_to_glob)]TJ/F8 9.9626 Tf -243.172 -11.955 Td [(routine)-333(on)-334(the)-333(output.)]TJ + [-500(The)-253(ro)28(w)-252(and)-253(column)-253(ind)1(ic)-1(es)-252(are)-253(returned)-252(in)-253(the)-253(lo)-27(cal)-253(n)28(um)28(b)-28(ering)-253(sc)28(heme;)-280(if)]TJ 12.73 -11.955 Td [(the)-222(global)-222(n)27(um)28(b)-28(erin)1(g)-223(is)-222(desired,)-244(the)-223(user)-222(ma)28(y)-222(emplo)27(y)-222(the)]TJ/F30 9.9626 Tf 243.172 0 Td [(psb_loc_to_glob)]TJ/F8 9.9626 Tf -243.172 -11.955 Td [(routine)-333(on)-334(th)1(e)-334(output.)]TJ 0 g 0 G - 141.968 -290.909 Td [(94)]TJ + 141.968 -290.909 Td [(95)]TJ 0 g 0 G ET endstream endobj -1461 0 obj +1474 0 obj << -/Length 4123 +/Length 4126 >> 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 [(sizeof)-375(|)-375(Memory)-375(o)-31(ccupation)]TJ/F8 9.9626 Tf -25.091 -18.389 Td [(This)-333(function)-334(computes)-333(the)-333(memory)-334(o)-28(ccupation)-333(of)-333(a)-333(PSBLAS)-334(ob)-55(ject.)]TJ +/F16 11.9552 Tf 175.796 706.129 Td [(sizeof)-375(|)-375(Memory)-375(o)-31(ccupation)]TJ/F8 9.9626 Tf -25.091 -18.389 Td [(This)-333(function)-334(computes)-333(the)-333(memory)-334(o)-27(c)-1(cup)1(ation)-334(of)-333(a)-333(PSBLAS)-334(ob)-55(ject.)]TJ 0 g 0 G 0 g 0 G /F30 9.9626 Tf 0 -21.918 Td [(isz)-525(=)-525(psb_sizeof\050a\051)]TJ 0 -11.955 Td [(isz)-525(=)-525(psb_sizeof\050desc_a\051)]TJ 0 -11.956 Td [(isz)-525(=)-525(psb_sizeof\050prec\051)]TJ @@ -17618,123 +17736,123 @@ BT 0 g 0 G 0 -19.925 Td [(a)]TJ 0 g 0 G -/F8 9.9626 Tf 10.551 0 Td [(A)-333(sparse)-334(matrix)]TJ/F11 9.9626 Tf 73.226 0 Td [(A)]TJ/F8 9.9626 Tf 7.472 0 Td [(.)]TJ -66.342 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.956 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(structured)-333(data)-333(of)-334(t)28(yp)-28(e)]TJ +/F8 9.9626 Tf 10.551 0 Td [(A)-333(sparse)-334(matrix)]TJ/F11 9.9626 Tf 73.225 0 Td [(A)]TJ/F8 9.9626 Tf 7.472 0 Td [(.)]TJ -66.342 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.612 0 Td [(required)]TJ/F8 9.9626 Tf -29.612 -11.956 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.548 0 Td [(.)]TJ -43.034 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(structured)-333(data)-333(of)-334(t)28(yp)-28(e)]TJ 0 0 1 rg 0 0 1 RG /F30 9.9626 Tf 170.915 0 Td [(psb)]TJ ET q -1 0 0 1 312.036 532.522 cm +1 0 0 1 362.845 532.522 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 315.174 532.322 Td [(Tspmat)]TJ +/F30 9.9626 Tf 365.983 532.322 Td [(Tspmat)]TJ ET q -1 0 0 1 347.183 532.522 cm +1 0 0 1 397.993 532.522 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 350.322 532.322 Td [(type)]TJ +/F30 9.9626 Tf 401.131 532.322 Td [(type)]TJ 0 g 0 G /F8 9.9626 Tf 20.921 0 Td [(.)]TJ 0 g 0 G -/F27 9.9626 Tf -271.348 -19.925 Td [(desc)]TJ +/F27 9.9626 Tf -271.347 -19.925 Td [(desc)]TJ ET q -1 0 0 1 121.81 512.596 cm +1 0 0 1 172.619 512.596 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 125.247 512.397 Td [(a)]TJ +/F27 9.9626 Tf 176.057 512.397 Td [(a)]TJ 0 g 0 G -/F8 9.9626 Tf 10.551 0 Td [(Comm)28(unication)-334(d)1(e)-1(scriptor)1(.)]TJ -10.996 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.956 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(structured)-333(data)-333(of)-334(t)28(yp)-28(e)]TJ +/F8 9.9626 Tf 10.55 0 Td [(Comm)28(unication)-334(descriptor.)]TJ -10.996 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.612 0 Td [(required)]TJ/F8 9.9626 Tf -29.612 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.548 0 Td [(.)]TJ -43.034 -11.956 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(structured)-333(data)-333(of)-334(t)28(yp)-28(e)]TJ 0 0 1 rg 0 0 1 RG /F30 9.9626 Tf 170.915 0 Td [(psb)]TJ ET q -1 0 0 1 312.036 464.776 cm +1 0 0 1 362.845 464.776 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 315.174 464.576 Td [(desc)]TJ +/F30 9.9626 Tf 365.983 464.576 Td [(desc)]TJ ET q -1 0 0 1 336.723 464.776 cm +1 0 0 1 387.532 464.776 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 339.861 464.576 Td [(type)]TJ +/F30 9.9626 Tf 390.67 464.576 Td [(type)]TJ 0 g 0 G -/F8 9.9626 Tf 20.921 0 Td [(.)]TJ +/F8 9.9626 Tf 20.922 0 Td [(.)]TJ 0 g 0 G /F27 9.9626 Tf -260.887 -19.925 Td [(prec)]TJ 0 g 0 G -/F8 9.9626 Tf 26.408 0 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -33.88 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(preconditioner)-333(data)-333(structure)]TJ +/F8 9.9626 Tf 26.408 0 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.378 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -33.879 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.485 0 Td [(in)]TJ/F8 9.9626 Tf 9.548 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-444(a)-334(preconditioner)-333(data)-333(structure)]TJ 0 0 1 rg 0 0 1 RG /F30 9.9626 Tf 197.537 0 Td [(psb)]TJ ET q -1 0 0 1 338.658 408.985 cm +1 0 0 1 389.467 408.985 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 341.796 408.786 Td [(prec)]TJ +/F30 9.9626 Tf 392.606 408.786 Td [(prec)]TJ ET q -1 0 0 1 363.345 408.985 cm +1 0 0 1 414.155 408.985 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 366.483 408.786 Td [(type)]TJ +/F30 9.9626 Tf 417.293 408.786 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 -287.51 -19.926 Td [(On)-383(Return)]TJ +/F27 9.9626 Tf -287.509 -19.926 Td [(On)-383(Return)]TJ 0 g 0 G 0 g 0 G 0 -19.925 Td [(F)96(unction)-384(v)64(alue)]TJ 0 g 0 G -/F8 9.9626 Tf 78.387 0 Td [(The)-332(memory)-331(o)-28(ccupation)-332(of)-331(the)-332(ob)-55(ject)-332(sp)-28(eci\014ed)-332(in)-331(the)-332(calling)]TJ -53.48 -11.955 Td [(sequence,)-333(in)-334(b)28(ytes.)]TJ 0 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(Returned)-333(as:)-445(an)]TJ/F30 9.9626 Tf 73.834 0 Td [(integer\050psb_long_int_k_\051)]TJ/F8 9.9626 Tf 128.849 0 Td [(n)28(um)28(b)-28(er.)]TJ +/F8 9.9626 Tf 78.386 0 Td [(The)-332(memory)-331(o)-28(ccupation)-332(of)-331(the)-332(ob)-55(jec)-1(t)-331(sp)-28(eci\014ed)-332(in)-331(the)-332(calling)]TJ -53.48 -11.955 Td [(sequence,)-333(in)-334(b)28(ytes.)]TJ 0 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(Returned)-333(as:)-445(an)]TJ/F30 9.9626 Tf 73.835 0 Td [(integer\050psb_long_int_k_\051)]TJ/F8 9.9626 Tf 128.849 0 Td [(n)28(um)28(b)-28(er.)]TJ 0 g 0 G - -60.715 -242.632 Td [(95)]TJ + -60.716 -242.632 Td [(96)]TJ 0 g 0 G ET endstream endobj -1465 0 obj +1478 0 obj << -/Length 5773 +/Length 5761 >> stream 0 g 0 G 0 g 0 G BT -/F16 11.9552 Tf 150.705 706.129 Td [(Sorting)-375(utilities)-375(|)]TJ 0 -19.593 Td [(psb)]TJ +/F16 11.9552 Tf 99.895 706.129 Td [(Sorting)-375(utilities)-375(|)]TJ 0 -19.593 Td [(psb)]TJ ET q -1 0 0 1 171.761 686.736 cm +1 0 0 1 120.951 686.736 cm []0 d 0 J 0.398 w 0 0 m 4.035 0 l S Q BT -/F16 11.9552 Tf 175.796 686.536 Td [(msort)-375(|)-375(Sorting)-375(b)31(y)-375(the)-375(Merge-sort)-375(algorithm)]TJ -25.091 -12.601 Td [(psb)]TJ +/F16 11.9552 Tf 124.986 686.536 Td [(msort)-375(|)-375(Sorting)-375(b)31(y)-375(the)-375(Merge-sort)-375(algorithm)]TJ -25.091 -12.601 Td [(psb)]TJ ET q -1 0 0 1 171.761 674.134 cm +1 0 0 1 120.951 674.134 cm []0 d 0 J 0.398 w 0 0 m 4.035 0 l S Q BT -/F16 11.9552 Tf 175.796 673.935 Td [(qsort)-375(|)-375(Sorting)-375(b)31(y)-375(the)-375(Quic)31(ksort)-375(algorithm)]TJ -25.091 -12.602 Td [(psb)]TJ +/F16 11.9552 Tf 124.986 673.935 Td [(qsort)-375(|)-375(Sorting)-375(b)31(y)-375(the)-375(Quic)31(ksort)-375(algorithm)]TJ -25.091 -12.602 Td [(psb)]TJ ET q -1 0 0 1 171.761 661.532 cm +1 0 0 1 120.951 661.532 cm []0 d 0 J 0.398 w 0 0 m 4.035 0 l S Q BT -/F16 11.9552 Tf 175.796 661.333 Td [(hsort)-375(|)-375(Sorting)-375(b)31(y)-375(the)-375(Heapsort)-375(algorithm)]TJ +/F16 11.9552 Tf 124.986 661.333 Td [(hsort)-375(|)-375(Sorting)-375(b)31(y)-375(the)-375(Heapsort)-375(algorithm)]TJ 0 g 0 G 0 g 0 G -/F30 9.9626 Tf -25.091 -22.511 Td [(call)-525(psb_msort\050x,ix,dir,flag\051)]TJ 0 -11.955 Td [(call)-525(psb_qsort\050x,ix,dir,flag\051)]TJ 0 -11.955 Td [(call)-525(psb_hsort\050x,ix,dir,flag\051)]TJ/F8 9.9626 Tf 14.944 -21.865 Td [(These)-332(serial)-332(r)1(outines)-332(sort)-332(a)-332(sequence)]TJ/F11 9.9626 Tf 162.708 0 Td [(X)]TJ/F8 9.9626 Tf 12.34 0 Td [(in)28(to)-332(ascending)-332(or)-331(descending)-332(order.)]TJ -189.992 -11.955 Td [(The)-320(argumen)28(t)-321(meaning)-320(is)-320(iden)28(tical)-320(for)-320(the)-321(th)1(ree)-321(calls;)-324(the)-320(only)-321(di\013erence)-320(is)-320(the)]TJ 0 -11.955 Td [(algorithm)-333(used)-334(to)-333(accomplish)-333(the)-334(task)-333(\050see)-333(Us)-1(age)-333(Notes)-333(b)-28(elo)28(w\051.)]TJ +/F30 9.9626 Tf -25.091 -22.511 Td [(call)-525(psb_msort\050x,ix,dir,flag\051)]TJ 0 -11.955 Td [(call)-525(psb_qsort\050x,ix,dir,flag\051)]TJ 0 -11.955 Td [(call)-525(psb_hsort\050x,ix,dir,flag\051)]TJ/F8 9.9626 Tf 14.944 -21.865 Td [(These)-332(serial)-332(rou)1(tines)-332(sort)-332(a)-332(sequence)]TJ/F11 9.9626 Tf 162.708 0 Td [(X)]TJ/F8 9.9626 Tf 12.34 0 Td [(in)28(to)-332(ascending)-332(or)-331(descending)-332(order.)]TJ -189.992 -11.955 Td [(The)-320(argumen)28(t)-321(meaning)-320(is)-320(iden)28(tical)-320(for)-320(the)-321(thr)1(e)-1(e)-320(calls;)-324(the)-321(on)1(ly)-321(di\013erence)-320(is)-320(the)]TJ 0 -11.955 Td [(algorithm)-333(used)-334(to)-333(accomplish)-333(the)-334(task)-333(\050see)-334(Usage)-333(Notes)-333(b)-28(elo)28(w\051.)]TJ 0 g 0 G /F27 9.9626 Tf 0 -21.865 Td [(T)32(yp)-32(e:)]TJ 0 g 0 G @@ -17745,188 +17863,188 @@ BT 0 g 0 G 0 -22.511 Td [(x)]TJ 0 g 0 G -/F8 9.9626 Tf 11.028 0 Td [(The)-333(sequence)-334(to)-333(b)-28(e)-333(sorted.)]TJ 13.879 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.183 0 Td [(required)]TJ/F8 9.9626 Tf 41.898 0 Td [(.)]TJ -67.081 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-444(an)-334(in)28(teger,)-333(real)-334(or)-333(complex)-333(arra)27(y)-333(of)-333(rank)-333(1.)]TJ +/F8 9.9626 Tf 11.028 0 Td [(The)-333(sequence)-334(to)-333(b)-28(e)-333(sorted.)]TJ 13.879 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.183 0 Td [(required)]TJ/F8 9.9626 Tf 41.899 0 Td [(.)]TJ -67.082 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(in)28(teger,)-333(real)-334(or)-333(complex)-333(arra)27(y)-333(of)-333(rank)-333(1.)]TJ 0 g 0 G /F27 9.9626 Tf -24.907 -22.511 Td [(ix)]TJ 0 g 0 G -/F8 9.9626 Tf 14.21 0 Td [(A)-333(v)27(ector)-333(of)-333(indices.)]TJ 10.697 -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(a)-1(n)-333(in)28(teger)-333(arra)27(y)-333(of)-333(\050at)-333(leas)-1(t\051)-333(the)-333(same)-334(size)-333(as)]TJ/F11 9.9626 Tf 258.558 0 Td [(X)]TJ/F8 9.9626 Tf 9.036 0 Td [(.)]TJ +/F8 9.9626 Tf 14.211 0 Td [(A)-333(v)27(ector)-333(of)-333(indices.)]TJ 10.696 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.183 0 Td [(optional)]TJ/F8 9.9626 Tf 40.577 0 Td [(.)]TJ -65.76 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(in)28(teger)-333(arra)27(y)-333(of)-333(\050at)-333(le)-1(ast\051)-333(the)-333(same)-334(size)-333(as)]TJ/F11 9.9626 Tf 258.559 0 Td [(X)]TJ/F8 9.9626 Tf 9.035 0 Td [(.)]TJ 0 g 0 G /F27 9.9626 Tf -292.501 -22.511 Td [(dir)]TJ 0 g 0 G -/F8 9.9626 Tf 19.247 0 Td [(The)-333(desired)-334(ordering.)]TJ 5.66 -11.956 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.183 0 Td [(optional)]TJ/F8 9.9626 Tf 40.577 0 Td [(.)]TJ -65.76 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(in)28(teger)-333(v)55(alue:)]TJ +/F8 9.9626 Tf 19.248 0 Td [(The)-333(desired)-334(ordering.)]TJ 5.659 -11.956 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.183 0 Td [(optional)]TJ/F8 9.9626 Tf 40.577 0 Td [(.)]TJ -65.76 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(in)28(teger)-333(v)55(alue:)]TJ 0 g 0 G /F27 9.9626 Tf 0 -22.511 Td [(In)32(teger)-383(and)-384(real)-383(data:)]TJ 0 g 0 G -/F30 9.9626 Tf 114.396 0 Td [(psb_sort_up_)]TJ/F8 9.9626 Tf 62.764 0 Td [(,)]TJ/F30 9.9626 Tf 5.203 0 Td [(psb_sort_down_)]TJ/F8 9.9626 Tf 73.225 0 Td [(,)]TJ/F30 9.9626 Tf 5.203 0 Td [(psb_asort_up_)]TJ/F8 9.9626 Tf 67.994 0 Td [(,)]TJ/F30 9.9626 Tf -306.868 -11.955 Td [(psb_asort_down_)]TJ/F8 9.9626 Tf 78.456 0 Td [(;)-333(default)]TJ/F30 9.9626 Tf 39.573 0 Td [(psb_sort_up_)]TJ/F8 9.9626 Tf 62.765 0 Td [(.)]TJ +/F30 9.9626 Tf 114.397 0 Td [(psb_sort_up_)]TJ/F8 9.9626 Tf 62.764 0 Td [(,)]TJ/F30 9.9626 Tf 5.203 0 Td [(psb_sort_down_)]TJ/F8 9.9626 Tf 73.224 0 Td [(,)]TJ/F30 9.9626 Tf 5.203 0 Td [(psb_asort_up_)]TJ/F8 9.9626 Tf 67.994 0 Td [(,)]TJ/F30 9.9626 Tf -306.867 -11.955 Td [(psb_asort_down_)]TJ/F8 9.9626 Tf 78.455 0 Td [(;)-333(default)]TJ/F30 9.9626 Tf 39.574 0 Td [(psb_sort_up_)]TJ/F8 9.9626 Tf 62.764 0 Td [(.)]TJ 0 g 0 G /F27 9.9626 Tf -202.711 -17.233 Td [(Complex)-383(data:)]TJ 0 g 0 G -/F30 9.9626 Tf 78.337 0 Td [(psb_lsort_up_)]TJ/F8 9.9626 Tf 67.995 0 Td [(,)]TJ/F30 9.9626 Tf 5.203 0 Td [(psb_lsort_down_)]TJ/F8 9.9626 Tf 78.455 0 Td [(,)]TJ/F30 9.9626 Tf 5.202 0 Td [(psb_asort_up_)]TJ/F8 9.9626 Tf 67.995 0 Td [(,)]TJ/F30 9.9626 Tf 5.203 0 Td [(psb_asort_down_)]TJ/F8 9.9626 Tf 78.455 0 Td [(;)]TJ -364.928 -11.955 Td [(default)]TJ/F30 9.9626 Tf 33.486 0 Td [(psb_lsort_up_)]TJ/F8 9.9626 Tf 67.995 0 Td [(.)]TJ +/F30 9.9626 Tf 78.338 0 Td [(psb_lsort_up_)]TJ/F8 9.9626 Tf 67.994 0 Td [(,)]TJ/F30 9.9626 Tf 5.203 0 Td [(psb_lsort_down_)]TJ/F8 9.9626 Tf 78.455 0 Td [(,)]TJ/F30 9.9626 Tf 5.203 0 Td [(psb_asort_up_)]TJ/F8 9.9626 Tf 67.994 0 Td [(,)]TJ/F30 9.9626 Tf 5.203 0 Td [(psb_asort_down_)]TJ/F8 9.9626 Tf 78.455 0 Td [(;)]TJ -364.927 -11.955 Td [(default)]TJ/F30 9.9626 Tf 33.485 0 Td [(psb_lsort_up_)]TJ/F8 9.9626 Tf 67.995 0 Td [(.)]TJ 0 g 0 G /F27 9.9626 Tf -148.305 -22.511 Td [(\015ag)]TJ 0 g 0 G -/F8 9.9626 Tf 22.644 0 Td [(Whether)-333(to)-334(k)28(eep)-333(the)-334(origi)1(nal)-334(v)56(alues)-334(in)]TJ/F11 9.9626 Tf 170.583 0 Td [(I)-78(X)]TJ/F8 9.9626 Tf 14.197 0 Td [(.)]TJ -182.517 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.183 0 Td [(optional)]TJ/F8 9.9626 Tf 40.577 0 Td [(.)]TJ -65.76 -11.956 Td [(Sp)-28(eci\014ed)-222(as:)-389(an)-222(in)28(teger)-222(v)55(alue)]TJ/F30 9.9626 Tf 125.446 0 Td [(psb_sort_ovw_idx_)]TJ/F8 9.9626 Tf 91.13 0 Td [(or)]TJ/F30 9.9626 Tf 11.097 0 Td [(psb_sort_keep_idx_)]TJ/F8 9.9626 Tf 94.146 0 Td [(;)]TJ -321.819 -11.955 Td [(default)]TJ/F30 9.9626 Tf 33.485 0 Td [(psb_sort_ovw_idx_)]TJ/F8 9.9626 Tf 88.916 0 Td [(.)]TJ +/F8 9.9626 Tf 22.645 0 Td [(Whether)-333(to)-334(k)28(eep)-333(the)-333(original)-334(v)56(alues)-333(in)]TJ/F11 9.9626 Tf 170.582 0 Td [(I)-78(X)]TJ/F8 9.9626 Tf 14.197 0 Td [(.)]TJ -182.517 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.183 0 Td [(optional)]TJ/F8 9.9626 Tf 40.577 0 Td [(.)]TJ -65.76 -11.956 Td [(Sp)-28(eci\014ed)-222(as:)-389(an)-222(in)28(teger)-222(v)55(alue)]TJ/F30 9.9626 Tf 125.446 0 Td [(psb_sort_ovw_idx_)]TJ/F8 9.9626 Tf 91.13 0 Td [(or)]TJ/F30 9.9626 Tf 11.097 0 Td [(psb_sort_keep_idx_)]TJ/F8 9.9626 Tf 94.147 0 Td [(;)]TJ -321.82 -11.955 Td [(default)]TJ/F30 9.9626 Tf 33.486 0 Td [(psb_sort_ovw_idx_)]TJ/F8 9.9626 Tf 88.915 0 Td [(.)]TJ 0 g 0 G /F27 9.9626 Tf -147.308 -24.503 Td [(On)-383(Return)]TJ 0 g 0 G 0 g 0 G 0 -22.511 Td [(x)]TJ 0 g 0 G -/F8 9.9626 Tf 11.028 0 Td [(The)-333(sequence)-334(of)-333(v)55(alu)1(e)-1(s,)-333(in)-333(the)-334(c)28(hosen)-333(ordering.)]TJ 13.879 -11.956 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.183 0 Td [(required)]TJ/F8 9.9626 Tf 41.898 0 Td [(.)]TJ -67.081 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(in)28(teger,)-333(real)-334(or)-333(complex)-333(arra)27(y)-333(of)-333(rank)-333(1.)]TJ +/F8 9.9626 Tf 11.028 0 Td [(The)-333(sequence)-334(of)-333(v)55(alues,)-333(in)-333(the)-334(c)28(hosen)-333(ordering.)]TJ 13.879 -11.956 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.183 0 Td [(required)]TJ/F8 9.9626 Tf 41.899 0 Td [(.)]TJ -67.082 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(in)28(teger,)-333(real)-334(or)-333(complex)-333(arra)27(y)-333(of)-333(rank)-333(1.)]TJ 0 g 0 G /F27 9.9626 Tf -24.907 -22.511 Td [(ix)]TJ 0 g 0 G -/F8 9.9626 Tf 14.211 0 Td [(A)-333(v)28(e)-1(ctor)-333(of)-333(indices.)]TJ 10.696 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(Optional)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(An)-332(in)27(teger)-332(arra)28(y)-333(of)-332(rank)-332(1,)-333(whose)-333(en)28(tries)-332(are)-333(mo)28(v)28(ed)-333(to)-332(the)-333(same)-332(p)-28(osition)]TJ 0 -11.955 Td [(as)-333(the)-334(corresp)-27(onding)-334(en)28(tries)-333(in)]TJ/F11 9.9626 Tf 136.958 0 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(.)]TJ +/F8 9.9626 Tf 14.211 0 Td [(A)-333(v)27(ector)-333(of)-333(indices.)]TJ 10.696 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(Optional)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(An)-332(in)27(teger)-332(arra)28(y)-333(of)-332(rank)-333(1,)-332(whose)-333(en)28(tries)-332(are)-333(mo)28(v)28(ed)-333(to)-332(the)-333(same)-332(p)-28(osition)]TJ 0 -11.955 Td [(as)-333(the)-334(corresp)-28(on)1(ding)-334(en)28(tries)-333(in)]TJ/F11 9.9626 Tf 136.959 0 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(.)]TJ 0 g 0 G - -0.685 -43.727 Td [(96)]TJ + -0.685 -43.727 Td [(97)]TJ 0 g 0 G ET endstream endobj -1469 0 obj +1483 0 obj << -/Length 6993 +/Length 6990 >> stream 0 g 0 G 0 g 0 G BT -/F16 11.9552 Tf 99.895 706.129 Td [(Notes)]TJ +/F16 11.9552 Tf 150.705 706.129 Td [(Notes)]TJ 0 g 0 G -/F8 9.9626 Tf 12.177 -19.925 Td [(1.)]TJ +/F8 9.9626 Tf 12.176 -19.925 Td [(1.)]TJ 0 g 0 G - [-500(F)83(or)-466(in)28(tege)-1(r)-466(or)-467(real)-466(data)-467(the)-467(sorting)-466(can)-467(b)-28(e)-466(p)-28(erformed)-467(in)-466(the)-467(up/do)28(wn)]TJ 12.73 -11.956 Td [(direction,)-333(on)-334(th)1(e)-334(natural)-333(or)-333(absolute)-334(v)56(alues;)]TJ + [-500(F)83(or)-466(in)28(te)-1(ger)-466(or)-467(real)-466(data)-467(the)-467(sorting)-466(can)-467(b)-28(e)-466(p)-28(erformed)-467(in)-466(the)-467(up/do)28(wn)]TJ 12.73 -11.956 Td [(direction,)-333(on)-334(the)-333(natural)-333(or)-333(absolute)-334(v)56(alues;)]TJ 0 g 0 G -12.73 -19.925 Td [(2.)]TJ 0 g 0 G - [-500(F)83(or)-397(complex)-398(data)-398(the)-397(sorting)-398(can)-398(b)-27(e)-398(done)-398(in)-397(a)-398(lexicographic)-398(order)-397(\050i.e.:)]TJ 12.73 -11.955 Td [(sort)-316(on)-316(the)-315(real)-316(part)-316(with)-316(ties)-316(br)1(ok)27(en)-316(accordin)1(g)-316(to)-316(the)-316(imaginary)-316(part\051)-315(or)]TJ 0 -11.955 Td [(on)-333(the)-334(absolute)-333(v)56(alues;)]TJ + [-500(F)83(or)-397(complex)-398(data)-398(the)-397(sorting)-398(can)-398(b)-27(e)-398(done)-398(in)-397(a)-398(lexicographic)-398(order)-397(\050i.e.:)]TJ 12.73 -11.955 Td [(sort)-316(on)-316(the)-315(real)-316(part)-316(with)-316(ties)-316(brok)28(en)-316(according)-315(to)-316(the)-316(imaginary)-316(part\051)-315(or)]TJ 0 -11.955 Td [(on)-333(the)-334(absolute)-333(v)56(alues;)]TJ 0 g 0 G -12.73 -19.925 Td [(3.)]TJ 0 g 0 G - [-500(The)-257(routines)-258(retur)1(n)-258(the)-257(items)-257(in)-258(the)-257(c)28(hosen)-257(ordering;)-283(the)-257(output)-257(di\013erence)]TJ 12.73 -11.956 Td [(is)-259(the)-259(handling)-259(of)-259(ties)-259(\050i.e.)-419(items)-259(with)-259(an)-259(equal)-259(v)56(alue\051)-259(in)-259(the)-259(original)-259(input.)]TJ 0 -11.955 Td [(With)-493(the)-493(merge-sort)-493(algorithm)-493(ties)-493(are)-493(preserv)27(ed)-493(in)-493(the)-493(same)-493(relativ)28(e)]TJ 0 -11.955 Td [(order)-405(as)-406(they)-405(had)-406(in)-405(the)-405(original)-406(sequence,)-423(while)-406(this)-405(is)-406(not)-405(guaran)28(teed)]TJ 0 -11.955 Td [(for)-333(quic)28(ksort)-334(or)-333(heapsort;)]TJ + [-500(The)-257(routines)-258(return)-257(the)-257(items)-257(in)-258(the)-257(c)28(hosen)-258(or)1(dering;)-283(the)-257(output)-257(di\013erence)]TJ 12.73 -11.956 Td [(is)-259(the)-259(handling)-259(of)-259(ties)-259(\050i.e.)-419(items)-259(with)-259(an)-259(equal)-259(v)55(alu)1(e)-1(\051)-258(in)-259(the)-259(original)-259(input.)]TJ 0 -11.955 Td [(With)-493(the)-493(merge-sort)-493(algorithm)-493(ties)-493(are)-493(preserv)27(ed)-493(in)-493(the)-493(same)-493(relativ)28(e)]TJ 0 -11.955 Td [(order)-405(as)-406(they)-405(had)-406(in)-405(the)-406(or)1(iginal)-406(sequence,)-423(while)-406(this)-405(is)-406(not)-405(guaran)28(teed)]TJ 0 -11.955 Td [(for)-333(quic)28(ks)-1(or)1(t)-334(or)-333(heapsort;)]TJ 0 g 0 G -12.73 -19.925 Td [(4.)]TJ 0 g 0 G - [-500(If)]TJ/F11 9.9626 Tf 21.889 0 Td [(f)-108(l)-19(ag)]TJ/F8 9.9626 Tf 22.262 0 Td [(=)]TJ/F11 9.9626 Tf 10.516 0 Td [(psb)]TJ + [-500(If)]TJ/F11 9.9626 Tf 21.89 0 Td [(f)-108(l)-19(ag)]TJ/F8 9.9626 Tf 22.261 0 Td [(=)]TJ/F11 9.9626 Tf 10.516 0 Td [(psb)]TJ ET q -1 0 0 1 181.295 542.941 cm +1 0 0 1 232.104 542.941 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F11 9.9626 Tf 184.284 542.742 Td [(sor)-28(t)]TJ +/F11 9.9626 Tf 235.093 542.742 Td [(sor)-28(t)]TJ ET q -1 0 0 1 202.749 542.941 cm +1 0 0 1 253.559 542.941 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F11 9.9626 Tf 205.738 542.742 Td [(ov)-36(w)]TJ +/F11 9.9626 Tf 256.548 542.742 Td [(ov)-36(w)]TJ ET q -1 0 0 1 223.752 542.941 cm +1 0 0 1 274.562 542.941 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F11 9.9626 Tf 226.741 542.742 Td [(idx)]TJ +/F11 9.9626 Tf 277.55 542.742 Td [(idx)]TJ ET q -1 0 0 1 241.65 542.941 cm +1 0 0 1 292.46 542.941 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 247.157 542.742 Td [(then)-253(the)-252(en)27(tries)-252(in)]TJ/F11 9.9626 Tf 80.169 0 Td [(ix)]TJ/F8 9.9626 Tf 9.126 0 Td [(\0501)-278(:)]TJ/F11 9.9626 Tf 17.158 0 Td [(n)]TJ/F8 9.9626 Tf 5.979 0 Td [(\051)-253(where)]TJ/F11 9.9626 Tf 34.398 0 Td [(n)]TJ/F8 9.9626 Tf 8.497 0 Td [(is)-253(the)-252(s)-1(i)1(z)-1(e)]TJ -277.682 -11.956 Td [(of)]TJ/F11 9.9626 Tf 11.91 0 Td [(x)]TJ/F8 9.9626 Tf 9.579 0 Td [(are)-390(initialized)-390(to)]TJ/F11 9.9626 Tf 76.44 0 Td [(ix)]TJ/F8 9.9626 Tf 9.126 0 Td [(\050)]TJ/F11 9.9626 Tf 3.874 0 Td [(i)]TJ/F8 9.9626 Tf 3.433 0 Td [(\051)]TJ/F14 9.9626 Tf 7.581 0 Td [(\040)]TJ/F11 9.9626 Tf 13.67 0 Td [(i)]TJ/F8 9.9626 Tf 3.433 0 Td [(;)-418(th)28(us,)-404(up)-28(on)-390(return)-390(from)-390(the)-390(subroutine,)]TJ -139.046 -11.955 Td [(for)-333(eac)28(h)-334(index)]TJ/F11 9.9626 Tf 64.505 0 Td [(i)]TJ/F8 9.9626 Tf 6.751 0 Td [(w)28(e)-334(ha)28(v)28(e)-333(in)]TJ/F11 9.9626 Tf 49.257 0 Td [(ix)]TJ/F8 9.9626 Tf 9.126 0 Td [(\050)]TJ/F11 9.9626 Tf 3.874 0 Td [(i)]TJ/F8 9.9626 Tf 3.432 0 Td [(\051)-333(the)-333(p)-28(osition)-333(that)-334(th)1(e)-334(item)]TJ/F11 9.9626 Tf 123.751 0 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(\050)]TJ/F11 9.9626 Tf 3.875 0 Td [(i)]TJ/F8 9.9626 Tf 3.432 0 Td [(\051)-333(o)-28(ccupied)]TJ -273.697 -11.955 Td [(in)-333(the)-334(original)-333(data)-333(sequence;)]TJ +/F8 9.9626 Tf 297.966 542.742 Td [(then)-253(the)-252(en)27(tries)-252(in)]TJ/F11 9.9626 Tf 80.169 0 Td [(ix)]TJ/F8 9.9626 Tf 9.126 0 Td [(\0501)-278(:)]TJ/F11 9.9626 Tf 17.158 0 Td [(n)]TJ/F8 9.9626 Tf 5.98 0 Td [(\051)-253(where)]TJ/F11 9.9626 Tf 34.397 0 Td [(n)]TJ/F8 9.9626 Tf 8.498 0 Td [(is)-253(the)-252(size)]TJ -277.683 -11.956 Td [(of)]TJ/F11 9.9626 Tf 11.911 0 Td [(x)]TJ/F8 9.9626 Tf 9.579 0 Td [(are)-390(initialized)-390(to)]TJ/F11 9.9626 Tf 76.439 0 Td [(ix)]TJ/F8 9.9626 Tf 9.127 0 Td [(\050)]TJ/F11 9.9626 Tf 3.874 0 Td [(i)]TJ/F8 9.9626 Tf 3.432 0 Td [(\051)]TJ/F14 9.9626 Tf 7.582 0 Td [(\040)]TJ/F11 9.9626 Tf 13.67 0 Td [(i)]TJ/F8 9.9626 Tf 3.432 0 Td [(;)-418(th)28(us,)-405(u)1(p)-28(on)-390(return)-390(from)-390(the)-390(subroutine,)]TJ -139.046 -11.955 Td [(for)-333(eac)27(h)-333(index)]TJ/F11 9.9626 Tf 64.505 0 Td [(i)]TJ/F8 9.9626 Tf 6.752 0 Td [(w)28(e)-333(ha)27(v)28(e)-333(in)]TJ/F11 9.9626 Tf 49.256 0 Td [(ix)]TJ/F8 9.9626 Tf 9.126 0 Td [(\050)]TJ/F11 9.9626 Tf 3.875 0 Td [(i)]TJ/F8 9.9626 Tf 3.432 0 Td [(\051)-333(the)-333(p)-28(osition)-333(that)-333(the)-334(item)]TJ/F11 9.9626 Tf 123.751 0 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(\050)]TJ/F11 9.9626 Tf 3.874 0 Td [(i)]TJ/F8 9.9626 Tf 3.432 0 Td [(\051)-333(o)-28(ccupied)]TJ -273.697 -11.955 Td [(in)-333(the)-334(original)-333(data)-333(sequence;)]TJ 0 g 0 G -12.73 -19.925 Td [(5.)]TJ 0 g 0 G [-500(If)]TJ/F11 9.9626 Tf 23.404 0 Td [(f)-108(l)-19(ag)]TJ/F8 9.9626 Tf 23.446 0 Td [(=)]TJ/F11 9.9626 Tf 11.701 0 Td [(psb)]TJ ET q -1 0 0 1 185.179 487.15 cm +1 0 0 1 235.988 487.15 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F11 9.9626 Tf 188.168 486.951 Td [(sor)-28(t)]TJ +/F11 9.9626 Tf 238.977 486.951 Td [(sor)-28(t)]TJ ET q -1 0 0 1 206.634 487.15 cm +1 0 0 1 257.443 487.15 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F11 9.9626 Tf 209.622 486.951 Td [(k)-32(eep)]TJ +/F11 9.9626 Tf 260.432 486.951 Td [(k)-31(ee)-1(p)]TJ ET q -1 0 0 1 230.011 487.15 cm +1 0 0 1 280.82 487.15 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F11 9.9626 Tf 232.999 486.951 Td [(idx)]TJ +/F11 9.9626 Tf 283.809 486.951 Td [(idx)]TJ ET q -1 0 0 1 247.909 487.15 cm +1 0 0 1 298.718 487.15 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 254.929 486.951 Td [(the)-405(routine)-404(will)-405(assume)-405(that)-404(the)-405(en)28(tries)-405(in)]TJ/F11 9.9626 Tf -130.127 -11.955 Td [(ix)]TJ/F8 9.9626 Tf 9.126 0 Td [(\050:\051)-333(ha)28(v)27(e)-333(already)-333(b)-28(een)-333(initialized)-334(b)28(y)-333(the)-334(user;)]TJ +/F8 9.9626 Tf 305.739 486.951 Td [(the)-405(routine)-404(will)-405(assume)-405(that)-404(the)-405(en)28(tries)-405(in)]TJ/F11 9.9626 Tf -130.128 -11.955 Td [(ix)]TJ/F8 9.9626 Tf 9.127 0 Td [(\050:\051)-333(ha)28(v)27(e)-333(already)-333(b)-28(een)-333(initialized)-334(b)28(y)-333(the)-333(use)-1(r;)]TJ 0 g 0 G - -21.856 -19.926 Td [(6.)]TJ + -21.857 -19.926 Td [(6.)]TJ 0 g 0 G - [-500(The)-376(three)-375(sorting)-376(algorithms)-376(ha)28(v)28(e)-376(a)-375(s)-1(imilar)]TJ/F11 9.9626 Tf 208.295 0 Td [(O)]TJ/F8 9.9626 Tf 7.876 0 Td [(\050)]TJ/F11 9.9626 Tf 3.874 0 Td [(n)]TJ/F8 9.9626 Tf 7.641 0 Td [(log)]TJ/F11 9.9626 Tf 14.528 0 Td [(n)]TJ/F8 9.9626 Tf 5.98 0 Td [(\051)-376(exp)-27(e)-1(cted)-375(running)]TJ -235.464 -11.955 Td [(time;)-349(in)-343(the)-344(a)28(v)28(erage)-344(case)-343(quic)27(ksort)-343(will)-344(b)-27(e)-344(the)-344(fastest)-343(and)-344(merge-sort)-343(the)]TJ 0 -11.955 Td [(slo)28(w)28(e)-1(st.)-444(Ho)28(w)28(e)-1(v)28(er)-333(note)-333(that:)]TJ + [-500(The)-376(three)-375(sorting)-376(algorithms)-376(ha)28(v)28(e)-376(a)-376(similar)]TJ/F11 9.9626 Tf 208.295 0 Td [(O)]TJ/F8 9.9626 Tf 7.876 0 Td [(\050)]TJ/F11 9.9626 Tf 3.875 0 Td [(n)]TJ/F8 9.9626 Tf 7.64 0 Td [(log)]TJ/F11 9.9626 Tf 14.529 0 Td [(n)]TJ/F8 9.9626 Tf 5.98 0 Td [(\051)-376(exp)-27(ec)-1(t)1(e)-1(d)-375(running)]TJ -235.465 -11.955 Td [(time;)-349(in)-343(the)-344(a)28(v)28(erage)-344(case)-344(qu)1(ic)27(ksort)-343(will)-344(b)-28(e)-343(the)-344(fastest)-343(and)-344(merge-sort)-343(the)]TJ 0 -11.955 Td [(slo)28(w)27(est.)-444(Ho)28(w)27(ev)28(er)-333(note)-333(that:)]TJ 0 g 0 G - 4.206 -19.925 Td [(\050a\051)]TJ + 4.207 -19.925 Td [(\050a\051)]TJ 0 g 0 G - [-500(The)-419(w)28(orst)-419(case)-419(runn)1(ing)-419(time)-419(for)-419(quic)28(ksort)-419(is)]TJ/F11 9.9626 Tf 221.059 0 Td [(O)]TJ/F8 9.9626 Tf 7.876 0 Td [(\050)]TJ/F11 9.9626 Tf 3.874 0 Td [(n)]TJ/F7 6.9738 Tf 5.98 3.615 Td [(2)]TJ/F8 9.9626 Tf 4.47 -3.615 Td [(\051;)-461(the)-419(algorithm)]TJ -225.547 -11.955 Td [(implemen)28(ted)-319(here)-319(follo)28(ws)-319(the)-319(w)27(ell-kno)28(wn)-319(median-of-three)-319(heuristics,)]TJ 0 -11.956 Td [(but)-333(the)-334(w)28(orst)-333(case)-334(ma)28(y)-333(still)-334(ap)1(ply;)]TJ + [-500(The)-419(w)28(orst)-419(case)-419(run)1(ning)-419(time)-419(for)-419(qui)1(c)27(ksort)-418(is)]TJ/F11 9.9626 Tf 221.058 0 Td [(O)]TJ/F8 9.9626 Tf 7.876 0 Td [(\050)]TJ/F11 9.9626 Tf 3.875 0 Td [(n)]TJ/F7 6.9738 Tf 5.98 3.615 Td [(2)]TJ/F8 9.9626 Tf 4.469 -3.615 Td [(\051;)-461(the)-419(algorithm)]TJ -225.547 -11.955 Td [(implemen)28(ted)-319(here)-319(follo)28(ws)-319(the)-319(w)27(ell-kno)28(wn)-319(median-of-three)-319(heuristics,)]TJ 0 -11.956 Td [(but)-333(the)-334(w)28(orst)-333(case)-334(ma)28(y)-333(still)-334(app)1(ly;)]TJ 0 g 0 G -18.265 -15.94 Td [(\050b\051)]TJ 0 g 0 G - [-500(The)-222(w)28(orst)-223(case)-222(running)-222(time)-222(for)-222(m)-1(erge-sort)-222(and)-222(heap-sort)-222(is)]TJ/F11 9.9626 Tf 273.309 0 Td [(O)]TJ/F8 9.9626 Tf 7.876 0 Td [(\050)]TJ/F11 9.9626 Tf 3.874 0 Td [(n)]TJ/F8 9.9626 Tf 7.64 0 Td [(log)]TJ/F11 9.9626 Tf 14.529 0 Td [(n)]TJ/F8 9.9626 Tf 5.98 0 Td [(\051)]TJ -294.943 -11.955 Td [(as)-333(the)-334(a)28(v)28(erage)-334(case;)]TJ + [-500(The)-222(w)28(orst)-223(case)-222(running)-222(time)-222(for)-223(merge-sort)-222(and)-222(heap-sort)-222(is)]TJ/F11 9.9626 Tf 273.309 0 Td [(O)]TJ/F8 9.9626 Tf 7.876 0 Td [(\050)]TJ/F11 9.9626 Tf 3.875 0 Td [(n)]TJ/F8 9.9626 Tf 7.64 0 Td [(log)]TJ/F11 9.9626 Tf 14.529 0 Td [(n)]TJ/F8 9.9626 Tf 5.98 0 Td [(\051)]TJ -294.944 -11.955 Td [(as)-333(the)-334(a)28(v)28(erage)-334(case;)]TJ 0 g 0 G -17.158 -15.94 Td [(\050c\051)]TJ 0 g 0 G - [-500(The)-358(merge-sort)-358(algorithm)-357(is)-358(implemen)28(ted)-358(to)-358(tak)28(e)-358(adv)56(an)28(tage)-358(of)-358(sub-)]TJ 17.158 -11.955 Td [(sequences)-401(that)-400(ma)28(y)-401(b)-28(e)-400(already)-401(in)-400(the)-401(d)1(e)-1(sired)-400(ordering)-400(prior)-401(to)-400(the)]TJ 0 -11.956 Td [(subroutine)-246(call;)-275(this)-246(situation)-246(is)-247(relativ)28(ely)-246(common)-246(when)-246(dealing)-246(with)]TJ 0 -11.955 Td [(groups)-301(of)-301(indices)-301(of)-302(sparse)-301(matrix)-301(en)28(tries,)-308(th)28(us)-301(merge-sort)-301(is)-302(the)-301(pre-)]TJ 0 -11.955 Td [(ferred)-249(c)28(hoice)-249(when)-249(a)-249(sorting)-248(is)-249(needed)-249(b)28(y)-249(other)-249(routines)-249(in)-248(the)-249(library)83(.)]TJ + [-500(The)-358(merge-sort)-358(algorithm)-357(is)-358(implemen)28(ted)-358(to)-358(tak)28(e)-358(adv)56(an)28(tage)-358(of)-358(sub-)]TJ 17.158 -11.955 Td [(sequences)-401(that)-400(ma)28(y)-401(b)-28(e)-400(already)-401(in)-400(the)-401(desired)-400(ordering)-400(prior)-401(to)-400(the)]TJ 0 -11.956 Td [(subroutine)-246(call;)-275(this)-246(situation)-246(is)-247(relativ)28(ely)-246(common)-246(when)-246(dealing)-246(with)]TJ 0 -11.955 Td [(groups)-301(of)-301(indices)-301(of)-302(sparse)-301(matrix)-301(en)28(tries,)-308(th)28(us)-301(merge-sort)-302(is)-301(the)-301(pre-)]TJ 0 -11.955 Td [(ferred)-249(c)28(hoice)-249(when)-249(a)-249(sorting)-248(is)-249(needed)-249(b)28(y)-249(other)-249(routines)-249(in)-249(t)1(he)-249(library)83(.)]TJ 0 g 0 G - 120.05 -205.23 Td [(97)]TJ + 120.05 -205.23 Td [(98)]TJ 0 g 0 G ET endstream endobj -1483 0 obj +1496 0 obj << -/Length 186 +/Length 181 >> stream 0 g 0 G 0 g 0 G BT -/F16 14.3462 Tf 150.705 706.129 Td [(7)-1125(P)31(arallel)-375(en)32(v)-1(ironmen)32(t)-375(routines)]TJ +/F16 14.3462 Tf 99.895 706.129 Td [(7)-1125(P)31(arallel)-375(en)31(vironmen)32(t)-375(routines)]TJ 0 g 0 G -/F8 9.9626 Tf 166.874 -615.691 Td [(98)]TJ +/F8 9.9626 Tf 166.875 -615.691 Td [(99)]TJ 0 g 0 G ET endstream endobj -1487 0 obj +1500 0 obj << -/Length 5566 +/Length 5574 >> 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 [(init)-375(|)-375(Initializes)-375(PSBLAS)-375(parallel)-375(en)31(vironmen)31(t)]TJ +/F16 11.9552 Tf 175.796 706.129 Td [(init)-375(|)-375(Initializes)-375(PSBLAS)-375(parallel)-375(en)31(vironmen)31(t)]TJ 0 g 0 G 0 g 0 G -/F30 9.9626 Tf -25.091 -18.389 Td [(call)-525(psb_init\050icontxt,)-525(np,)-525(basectxt,)-525(ids\051)]TJ/F8 9.9626 Tf 14.944 -21.918 Td [(This)-294(subroutine)-294(initializes)-294(th)1(e)-294(PSBLAS)-294(parallel)-294(en)28(vironmen)28(t,)-302(de\014ning)-294(a)-294(vir-)]TJ -14.944 -11.955 Td [(tual)-333(parallel)-334(mac)28(hine.)]TJ +/F30 9.9626 Tf -25.091 -18.389 Td [(call)-525(psb_init\050icontxt,)-525(np,)-525(basectxt,)-525(ids\051)]TJ/F8 9.9626 Tf 14.944 -21.918 Td [(This)-294(subroutine)-294(initial)1(iz)-1(es)-293(the)-294(PSBLAS)-294(parallel)-294(en)28(vironmen)28(t,)-302(de\014ning)-294(a)-294(vir-)]TJ -14.944 -11.955 Td [(tual)-333(parallel)-334(mac)28(hine.)]TJ 0 g 0 G /F27 9.9626 Tf 0 -19.926 Td [(T)32(yp)-32(e:)]TJ 0 g 0 G @@ -17937,70 +18055,70 @@ BT 0 g 0 G 0 -19.925 Td [(np)]TJ 0 g 0 G -/F8 9.9626 Tf 17.712 0 Td [(Num)28(b)-28(er)-333(of)-334(pr)1(o)-28(cesses)-334(in)-333(the)-333(PSBLAS)-334(virtual)-333(parallel)-333(mac)27(h)1(ine.)]TJ 7.195 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(global)]TJ/F8 9.9626 Tf 29.756 0 Td [(.)]TJ -62.135 -11.956 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(optional)]TJ/F8 9.9626 Tf 40.577 0 Td [(.)]TJ -70.188 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(in)28(teger)-333(v)55(alue.)-778(Default)1(:)-445(use)-333(all)-334(a)28(v)56(ailable)-334(p)1(ro)-28(cesses)-1(.)]TJ +/F8 9.9626 Tf 17.711 0 Td [(Num)28(b)-28(er)-333(of)-334(pro)-27(cess)-1(es)-333(in)-333(the)-334(P)1(SBLA)-1(S)-333(virtual)-333(parallel)-333(mac)27(hin)1(e)-1(.)]TJ 7.196 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.378 0 Td [(global)]TJ/F8 9.9626 Tf 29.756 0 Td [(.)]TJ -62.134 -11.956 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(optional)]TJ/F8 9.9626 Tf 40.577 0 Td [(.)]TJ -70.188 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.485 0 Td [(in)]TJ/F8 9.9626 Tf 9.548 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-444(an)-334(in)28(teger)-333(v)55(alue.)-778(Defau)1(lt:)-445(use)-333(all)-334(a)28(v)56(ailable)-333(pro)-28(cesses.)]TJ 0 g 0 G /F27 9.9626 Tf -24.907 -19.925 Td [(basectxt)]TJ 0 g 0 G -/F8 9.9626 Tf 46.736 0 Td [(the)-356(initial)-357(comm)28(unication)-356(con)28(text.)-514(The)-356(new)-357(con)28(text)-356(will)-357(b)-27(e)-357(de\014ned)]TJ -21.829 -11.955 Td [(from)-333(the)-334(pro)-27(cess)-1(es)-333(participating)-333(in)-333(the)-334(initial)-333(one.)]TJ 0 -11.956 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(global)]TJ/F8 9.9626 Tf 29.756 0 Td [(.)]TJ -62.135 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(optional)]TJ/F8 9.9626 Tf 40.577 0 Td [(.)]TJ -70.188 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(in)28(teger)-333(v)55(alue.)-778(Default)1(:)-445(use)-333(MPI)]TJ +/F8 9.9626 Tf 46.736 0 Td [(the)-356(initial)-357(comm)28(unication)-356(con)28(text.)-514(The)-356(new)-357(con)28(text)-356(will)-357(b)-27(e)-357(de\014ned)]TJ -21.829 -11.955 Td [(from)-333(the)-334(pro)-27(cesse)-1(s)-333(participating)-333(in)-333(the)-334(initial)-333(one.)]TJ 0 -11.956 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.378 0 Td [(global)]TJ/F8 9.9626 Tf 29.757 0 Td [(.)]TJ -62.135 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(optional)]TJ/F8 9.9626 Tf 40.577 0 Td [(.)]TJ -70.188 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.485 0 Td [(in)]TJ/F8 9.9626 Tf 9.548 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(in)28(teger)-333(v)55(alue.)-778(Defau)1(lt:)-445(use)-333(MPI)]TJ ET q -1 0 0 1 339.182 466.768 cm +1 0 0 1 389.991 466.768 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 342.171 466.569 Td [(COMM)]TJ +/F8 9.9626 Tf 392.98 466.569 Td [(COMM)]TJ ET q -1 0 0 1 375.977 466.768 cm +1 0 0 1 426.787 466.768 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 378.966 466.569 Td [(W)28(ORLD.)]TJ +/F8 9.9626 Tf 429.775 466.569 Td [(W)28(ORLD.)]TJ 0 g 0 G -/F27 9.9626 Tf -279.071 -19.925 Td [(ids)]TJ +/F27 9.9626 Tf -279.07 -19.925 Td [(ids)]TJ 0 g 0 G -/F8 9.9626 Tf 19.048 0 Td [(Iden)28(tities)-497(of)-497(the)-497(pro)-28(cesses)-497(to)-497(use)-497(for)-497(the)-498(n)1(e)-1(w)-497(con)28(text;)-579(the)-497(argumen)28(t)-497(is)]TJ 5.859 -11.956 Td [(ignored)-428(when)]TJ/F30 9.9626 Tf 63.346 0 Td [(np)]TJ/F8 9.9626 Tf 14.722 0 Td [(is)-428(not)-428(sp)-27(eci\014ed.)-728(This)-428(allo)28(ws)-428(the)-428(pro)-27(ce)-1(sses)-427(in)-428(the)-428(new)]TJ -78.068 -11.955 Td [(en)28(vironmen)28(t)-334(to)-333(b)-28(e)-333(in)-333(an)-334(order)-333(di\013eren)28(t)-334(fr)1(om)-334(the)-333(original)-333(one.)]TJ 0 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(global)]TJ/F8 9.9626 Tf 29.756 0 Td [(.)]TJ -62.135 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(optional)]TJ/F8 9.9626 Tf 40.577 0 Td [(.)]TJ -70.188 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(in)28(teger)-333(arra)27(y)84(.)-778(Default:)-444(use)-334(the)-333(indices)-333(\0500)]TJ/F11 9.9626 Tf 254.158 0 Td [(:)-167(:)-166(:)-167(np)]TJ/F14 9.9626 Tf 26.49 0 Td [(\000)]TJ/F8 9.9626 Tf 9.963 0 Td [(1\051.)]TJ +/F8 9.9626 Tf 19.048 0 Td [(Iden)28(tities)-497(of)-497(the)-497(pro)-28(cesses)-497(to)-497(use)-497(for)-497(the)-497(new)-498(con)28(text;)-579(the)-497(argumen)28(t)-497(is)]TJ 5.858 -11.956 Td [(ignored)-428(when)]TJ/F30 9.9626 Tf 63.346 0 Td [(np)]TJ/F8 9.9626 Tf 14.723 0 Td [(is)-428(not)-428(sp)-27(eci\014ed.)-728(This)-428(allo)28(ws)-428(the)-428(pro)-27(ces)-1(ses)-427(in)-428(the)-428(new)]TJ -78.069 -11.955 Td [(en)28(vironmen)28(t)-334(to)-333(b)-28(e)-333(in)-333(an)-334(order)-333(di\013eren)28(t)-334(from)-333(the)-333(original)-333(one.)]TJ 0 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(global)]TJ/F8 9.9626 Tf 29.756 0 Td [(.)]TJ -62.135 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.612 0 Td [(optional)]TJ/F8 9.9626 Tf 40.576 0 Td [(.)]TJ -70.188 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.548 0 Td [(.)]TJ -43.034 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(in)28(teger)-333(arra)27(y)84(.)-778(Default:)-444(use)-334(the)-333(indices)-333(\0500)]TJ/F11 9.9626 Tf 254.159 0 Td [(:)-167(:)-166(:)-167(np)]TJ/F14 9.9626 Tf 26.489 0 Td [(\000)]TJ/F8 9.9626 Tf 9.963 0 Td [(1\051.)]TJ 0 g 0 G -/F27 9.9626 Tf -315.518 -21.918 Td [(On)-383(Return)]TJ +/F27 9.9626 Tf -315.517 -21.918 Td [(On)-383(Return)]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)-458(comm)28(unication)-457(con)27(text)-457(iden)28(tifying)-458(the)-457(virtual)-458(paral)1(le)-1(l)-457(mac)28(hine.)]TJ -15.082 -11.956 Td [(Note)-335(that)-335(this)-335(is)-336(alw)28(a)28(ys)-335(a)-335(duplicate)-335(of)]TJ/F30 9.9626 Tf 169.952 0 Td [(basectxt)]TJ/F8 9.9626 Tf 41.843 0 Td [(,)-336(so)-335(that)-335(library)-335(comm)28(u-)]TJ -211.795 -11.955 Td [(nications)-305(are)-305(completely)-305(s)-1(eparated)-305(from)-305(other)-305(comm)28(unication)-305(op)-28(erations.)]TJ 0 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(global)]TJ/F8 9.9626 Tf 29.756 0 Td [(.)]TJ -62.135 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf 41.898 0 Td [(.)]TJ -71.509 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(out)]TJ/F8 9.9626 Tf 16.549 0 Td [(.)]TJ -50.035 -11.956 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(in)28(teger)-333(v)55(ariable.)]TJ/F16 11.9552 Tf -24.907 -21.917 Td [(Notes)]TJ +/F8 9.9626 Tf 39.989 0 Td [(the)-457(c)-1(omm)28(unication)-457(con)28(te)-1(x)1(t)-458(iden)28(tifying)-458(the)-457(virtual)-458(p)1(arallel)-458(mac)28(hine.)]TJ -15.083 -11.956 Td [(Note)-335(that)-335(this)-335(is)-336(alw)28(a)28(ys)-335(a)-335(duplicate)-335(of)]TJ/F30 9.9626 Tf 169.953 0 Td [(basectxt)]TJ/F8 9.9626 Tf 41.843 0 Td [(,)-336(so)-335(that)-335(library)-335(comm)28(u-)]TJ -211.796 -11.955 Td [(nications)-305(are)-305(completely)-306(separated)-305(from)-305(other)-305(comm)28(unication)-305(op)-28(erations.)]TJ 0 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(global)]TJ/F8 9.9626 Tf 29.756 0 Td [(.)]TJ -62.135 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.612 0 Td [(required)]TJ/F8 9.9626 Tf 41.898 0 Td [(.)]TJ -71.51 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(out)]TJ/F8 9.9626 Tf 16.549 0 Td [(.)]TJ -50.035 -11.956 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(in)28(teger)-333(v)55(ariable.)]TJ/F16 11.9552 Tf -24.906 -21.917 Td [(Notes)]TJ 0 g 0 G -/F8 9.9626 Tf 12.177 -19.926 Td [(1.)]TJ +/F8 9.9626 Tf 12.176 -19.926 Td [(1.)]TJ 0 g 0 G [-500(A)-333(call)-334(to)-333(this)-333(routine)-334(m)28(ust)-333(precede)-334(an)28(y)-333(other)-333(PSBLAS)-334(call.)]TJ 0 g 0 G 0 -19.925 Td [(2.)]TJ 0 g 0 G - [-500(It)-262(is)-262(an)-262(error)-262(to)-262(sp)-28(ecify)-262(a)-262(v)56(alue)-262(for)]TJ/F11 9.9626 Tf 159.869 0 Td [(np)]TJ/F8 9.9626 Tf 13.603 0 Td [(greater)-262(than)-262(the)-262(n)28(um)28(b)-28(er)-262(of)-262(pro)-28(cesses)]TJ -160.742 -11.955 Td [(a)28(v)55(ailable)-333(in)-333(the)-334(un)1(derlying)-334(base)-333(parallel)-333(en)27(vir)1(onme)-1(n)28(t.)]TJ + [-500(It)-262(is)-262(an)-262(error)-262(to)-262(sp)-28(ecify)-262(a)-262(v)56(alue)-262(for)]TJ/F11 9.9626 Tf 159.87 0 Td [(np)]TJ/F8 9.9626 Tf 13.602 0 Td [(greater)-262(than)-262(the)-262(n)28(um)28(b)-28(er)-262(of)-262(pro)-28(cesses)]TJ -160.742 -11.955 Td [(a)28(v)55(ailable)-333(in)-333(the)-334(und)1(e)-1(r)1(lying)-334(base)-333(parallel)-333(en)27(viron)1(m)-1(en)28(t.)]TJ 0 g 0 G - 141.968 -97.177 Td [(99)]TJ + 139.477 -97.177 Td [(100)]TJ 0 g 0 G ET endstream endobj -1493 0 obj +1506 0 obj << -/Length 4639 +/Length 4647 >> stream 0 g 0 G 0 g 0 G BT -/F16 11.9552 Tf 150.705 706.129 Td [(psb)]TJ +/F16 11.9552 Tf 99.895 706.129 Td [(psb)]TJ ET q -1 0 0 1 171.761 706.328 cm +1 0 0 1 120.951 706.328 cm []0 d 0 J 0.398 w 0 0 m 4.035 0 l S Q BT -/F16 11.9552 Tf 175.796 706.129 Td [(info)-306(|)-307(Return)-306(information)-306(ab)-31(out)-307(PSBLAS)-306(parallel)-306(en-)]TJ -25.091 -13.948 Td [(vironmen)31(t)]TJ +/F16 11.9552 Tf 124.986 706.129 Td [(info)-306(|)-307(Return)-306(information)-306(ab)-31(out)-307(PSBLAS)-306(parallel)-306(en-)]TJ -25.091 -13.948 Td [(vironmen)31(t)]TJ 0 g 0 G 0 g 0 G -/F30 9.9626 Tf 0 -18.389 Td [(call)-525(psb_info\050icontxt,)-525(iam,)-525(np\051)]TJ/F8 9.9626 Tf 14.944 -21.918 Td [(This)-456(subroutine)-456(returns)-456(in)1(formation)-456(ab)-28(out)-456(the)-456(PSBLAS)-456(p)1(arallel)-456(en)27(viron)1(-)]TJ -14.944 -11.955 Td [(men)28(t,)-334(de\014n)1(ing)-334(a)-333(virtual)-333(parallel)-334(mac)28(hine.)]TJ +/F30 9.9626 Tf 0 -18.389 Td [(call)-525(psb_info\050icontxt,)-525(iam,)-525(np\051)]TJ/F8 9.9626 Tf 14.944 -21.918 Td [(This)-456(subroutine)-456(returns)-456(inf)1(orma)-1(t)1(ion)-456(ab)-28(out)-456(the)-456(PSBLAS)-456(paral)1(le)-1(l)-455(en)27(viron-)]TJ -14.944 -11.955 Td [(men)28(t,)-334(de\014nin)1(g)-334(a)-333(virtual)-333(parallel)-334(mac)28(hine.)]TJ 0 g 0 G /F27 9.9626 Tf 0 -19.925 Td [(T)32(yp)-32(e:)]TJ 0 g 0 G @@ -18011,52 +18129,52 @@ BT 0 g 0 G 0 -19.925 Td [(icon)32(txt)]TJ 0 g 0 G -/F8 9.9626 Tf 39.989 0 Td [(the)-333(comm)27(unication)-333(con)28(text)-333(iden)27(tifyi)1(ng)-334(the)-333(virtual)-333(parallel)-334(mac)28(hine.)]TJ -15.082 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.378 0 Td [(global)]TJ/F8 9.9626 Tf 29.756 0 Td [(.)]TJ -62.134 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf 41.898 0 Td [(.)]TJ -71.509 -11.956 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.485 0 Td [(in)]TJ/F8 9.9626 Tf 9.548 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-444(an)-334(in)28(teger)-333(v)55(ariable.)]TJ +/F8 9.9626 Tf 39.989 0 Td [(the)-333(comm)27(unication)-333(con)28(text)-333(iden)27(tifyin)1(g)-334(the)-333(virtual)-333(parallel)-334(mac)28(hine.)]TJ -15.082 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(global)]TJ/F8 9.9626 Tf 29.756 0 Td [(.)]TJ -62.135 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf 41.898 0 Td [(.)]TJ -71.509 -11.956 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(in)28(teger)-333(v)55(ariable.)]TJ 0 g 0 G /F27 9.9626 Tf -24.907 -21.918 Td [(On)-383(Return)]TJ 0 g 0 G 0 g 0 G 0 -19.925 Td [(iam)]TJ 0 g 0 G -/F8 9.9626 Tf 23.281 0 Td [(Iden)28(ti\014er)-333(of)-334(curren)28(t)-333(pro)-28(cess)-333(in)-334(the)-333(PSBLAS)-333(virtual)-334(p)1(arallel)-334(mac)28(hine.)]TJ 1.626 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.378 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf 23.073 0 Td [(.)]TJ -55.451 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf 41.898 0 Td [(.)]TJ -71.509 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.485 0 Td [(out)]TJ/F8 9.9626 Tf 16.549 0 Td [(.)]TJ -50.034 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-444(an)-334(in)28(teger)-333(v)55(alue.)]TJ/F14 9.9626 Tf 134.302 0 Td [(\000)]TJ/F8 9.9626 Tf 7.748 0 Td [(1)]TJ/F14 9.9626 Tf 7.749 0 Td [(\024)]TJ/F11 9.9626 Tf 10.516 0 Td [(iam)]TJ/F14 9.9626 Tf 20.213 0 Td [(\024)]TJ/F11 9.9626 Tf 10.516 0 Td [(np)]TJ/F14 9.9626 Tf 13.207 0 Td [(\000)]TJ/F8 9.9626 Tf 9.962 0 Td [(1)]TJ +/F8 9.9626 Tf 23.281 0 Td [(Iden)28(ti\014er)-333(of)-334(curren)28(t)-333(pro)-28(cess)-333(in)-334(the)-333(PSBLAS)-333(virtual)-334(par)1(allel)-334(mac)28(hine.)]TJ 1.626 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf 23.073 0 Td [(.)]TJ -55.452 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf 41.898 0 Td [(.)]TJ -71.509 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(out)]TJ/F8 9.9626 Tf 16.549 0 Td [(.)]TJ -50.035 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(in)28(teger)-333(v)55(alue.)]TJ/F14 9.9626 Tf 134.302 0 Td [(\000)]TJ/F8 9.9626 Tf 7.749 0 Td [(1)]TJ/F14 9.9626 Tf 7.749 0 Td [(\024)]TJ/F11 9.9626 Tf 10.516 0 Td [(iam)]TJ/F14 9.9626 Tf 20.213 0 Td [(\024)]TJ/F11 9.9626 Tf 10.516 0 Td [(np)]TJ/F14 9.9626 Tf 13.206 0 Td [(\000)]TJ/F8 9.9626 Tf 9.963 0 Td [(1)]TJ 0 g 0 G -/F27 9.9626 Tf -239.12 -19.926 Td [(np)]TJ +/F27 9.9626 Tf -239.121 -19.926 Td [(np)]TJ 0 g 0 G -/F8 9.9626 Tf 17.711 0 Td [(Num)28(b)-28(er)-333(of)-334(pro)-27(cess)-1(es)-333(in)-333(the)-334(PS)1(BL)-1(AS)-333(virtual)-333(parallel)-333(mac)27(hin)1(e)-1(.)]TJ 7.196 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.378 0 Td [(global)]TJ/F8 9.9626 Tf 29.756 0 Td [(.)]TJ -62.134 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf 41.898 0 Td [(.)]TJ -71.509 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.485 0 Td [(out)]TJ/F8 9.9626 Tf 16.549 0 Td [(.)]TJ -50.034 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-444(an)-334(in)28(teger)-333(v)55(ariable.)]TJ/F16 11.9552 Tf -24.907 -21.918 Td [(Notes)]TJ +/F8 9.9626 Tf 17.712 0 Td [(Num)28(b)-28(er)-333(of)-334(pro)-27(cesse)-1(s)-333(in)-333(the)-333(PSBLAS)-334(virtual)-333(parallel)-333(mac)27(h)1(ine.)]TJ 7.195 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(global)]TJ/F8 9.9626 Tf 29.756 0 Td [(.)]TJ -62.135 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf 41.899 0 Td [(.)]TJ -71.51 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(out)]TJ/F8 9.9626 Tf 16.549 0 Td [(.)]TJ -50.035 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(in)28(teger)-333(v)55(ariable.)]TJ/F16 11.9552 Tf -24.907 -21.918 Td [(Notes)]TJ 0 g 0 G -/F8 9.9626 Tf 12.176 -19.926 Td [(1.)]TJ +/F8 9.9626 Tf 12.177 -19.926 Td [(1.)]TJ 0 g 0 G - [-500(F)83(or)-500(pro)-27(cess)-1(es)-500(in)-500(the)-500(vir)1(tual)-500(parallel)-500(mac)27(hine)-500(the)-500(iden)28(ti\014er)-500(will)-500(satisfy)]TJ 12.731 -11.955 Td [(0)]TJ/F14 9.9626 Tf 7.748 0 Td [(\024)]TJ/F11 9.9626 Tf 10.516 0 Td [(iam)]TJ/F14 9.9626 Tf 20.213 0 Td [(\024)]TJ/F11 9.9626 Tf 10.516 0 Td [(np)]TJ/F14 9.9626 Tf 13.207 0 Td [(\000)]TJ/F8 9.9626 Tf 9.962 0 Td [(1;)]TJ + [-500(F)83(or)-500(pro)-27(cesse)-1(s)-500(in)-500(th)1(e)-501(v)1(irtual)-500(parallel)-500(mac)27(hin)1(e)-501(th)1(e)-501(id)1(e)-1(n)28(ti\014er)-500(will)-500(satisfy)]TJ 12.73 -11.955 Td [(0)]TJ/F14 9.9626 Tf 7.749 0 Td [(\024)]TJ/F11 9.9626 Tf 10.516 0 Td [(iam)]TJ/F14 9.9626 Tf 20.213 0 Td [(\024)]TJ/F11 9.9626 Tf 10.516 0 Td [(np)]TJ/F14 9.9626 Tf 13.206 0 Td [(\000)]TJ/F8 9.9626 Tf 9.963 0 Td [(1;)]TJ 0 g 0 G -84.893 -19.925 Td [(2.)]TJ 0 g 0 G - [-500(If)-432(the)-433(user)-432(has)-433(requested)-432(on)]TJ/F30 9.9626 Tf 143.131 0 Td [(psb_init)]TJ/F8 9.9626 Tf 46.15 0 Td [(a)-432(n)27(um)28(b)-28(er)-432(of)-432(pro)-28(cesses)-433(less)-432(than)]TJ -176.551 -11.955 Td [(the)-417(total)-416(a)28(v)55(ailable)-416(in)-417(the)-416(parallel)-417(execution)-416(en)28(vironmen)28(t,)-438(the)-416(remaining)]TJ 0 -11.955 Td [(pro)-28(cesses)-359(will)-359(ha)28(v)28(e)-359(on)-359(return)]TJ/F11 9.9626 Tf 130.487 0 Td [(iam)]TJ/F8 9.9626 Tf 20.638 0 Td [(=)]TJ/F14 9.9626 Tf 10.942 0 Td [(\000)]TJ/F8 9.9626 Tf 7.749 0 Td [(1;)-372(the)-359(only)-359(call)-359(i)1(n)27(v)28(olving)]TJ/F30 9.9626 Tf 112.377 0 Td [(icontxt)]TJ/F8 9.9626 Tf -282.192 -11.956 Td [(that)-333(an)28(y)-334(suc)28(h)-333(pro)-28(cess)-334(ma)28(y)-333(execute)-334(is)-333(to)]TJ/F30 9.9626 Tf 177.086 0 Td [(psb_exit)]TJ/F8 9.9626 Tf 41.842 0 Td [(.)]TJ + [-500(If)-432(the)-433(user)-432(has)-433(requested)-432(on)]TJ/F30 9.9626 Tf 143.13 0 Td [(psb_init)]TJ/F8 9.9626 Tf 46.151 0 Td [(a)-432(n)27(um)28(b)-28(er)-432(of)-432(pro)-28(cesses)-433(less)-432(than)]TJ -176.551 -11.955 Td [(the)-417(total)-416(a)28(v)55(ailable)-416(in)-417(the)-416(parallel)-417(execution)-416(en)28(vironmen)28(t,)-438(the)-416(remaining)]TJ 0 -11.955 Td [(pro)-28(cesses)-359(will)-359(ha)28(v)28(e)-359(on)-359(return)]TJ/F11 9.9626 Tf 130.486 0 Td [(iam)]TJ/F8 9.9626 Tf 20.639 0 Td [(=)]TJ/F14 9.9626 Tf 10.941 0 Td [(\000)]TJ/F8 9.9626 Tf 7.749 0 Td [(1;)-372(the)-359(only)-359(call)-359(in)28(v)28(olving)]TJ/F30 9.9626 Tf 112.377 0 Td [(icontxt)]TJ/F8 9.9626 Tf -282.192 -11.956 Td [(that)-333(an)28(y)-334(suc)28(h)-333(pro)-28(cess)-334(ma)28(y)-333(execute)-334(is)-333(to)]TJ/F30 9.9626 Tf 177.086 0 Td [(psb_exit)]TJ/F8 9.9626 Tf 41.843 0 Td [(.)]TJ 0 g 0 G - -79.452 -174.885 Td [(100)]TJ + -79.452 -174.885 Td [(101)]TJ 0 g 0 G ET endstream endobj -1499 0 obj +1512 0 obj << -/Length 4356 +/Length 4355 >> 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 [(exit)-375(|)-375(Exit)-375(from)-375(PSBLAS)-375(parallel)-375(en)31(vironmen)31(t)]TJ +/F16 11.9552 Tf 175.796 706.129 Td [(exit)-375(|)-375(Exit)-375(from)-375(PSBLAS)-375(parallel)-375(en)31(vironmen)31(t)]TJ 0 g 0 G 0 g 0 G -/F30 9.9626 Tf -25.091 -18.389 Td [(call)-525(psb_exit\050icontxt\051)]TJ 0 -11.956 Td [(call)-525(psb_exit\050icontxt,close\051)]TJ/F8 9.9626 Tf 14.944 -21.917 Td [(This)-333(subroutine)-334(exits)-333(from)-333(the)-334(PSBLAS)-333(parallel)-333(virtual)-333(mac)27(hine.)]TJ +/F30 9.9626 Tf -25.091 -18.389 Td [(call)-525(psb_exit\050icontxt\051)]TJ 0 -11.956 Td [(call)-525(psb_exit\050icontxt,close\051)]TJ/F8 9.9626 Tf 14.944 -21.917 Td [(This)-333(subroutine)-334(exits)-333(from)-333(the)-334(PS)1(B)-1(LAS)-333(parallel)-333(virtual)-333(mac)27(hin)1(e)-1(.)]TJ 0 g 0 G /F27 9.9626 Tf -14.944 -19.926 Td [(T)32(yp)-32(e:)]TJ 0 g 0 G @@ -18067,56 +18185,56 @@ BT 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 +/F8 9.9626 Tf 39.989 0 Td [(the)-333(comm)27(unication)-333(con)28(text)-333(iden)27(tifyi)1(ng)-334(the)-333(virtual)-333(parallel)-334(mac)28(hine.)]TJ -15.082 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.378 0 Td [(global)]TJ/F8 9.9626 Tf 29.756 0 Td [(.)]TJ -62.134 -11.956 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf 41.898 0 Td [(.)]TJ -71.509 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.485 0 Td [(in)]TJ/F8 9.9626 Tf 9.548 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-444(an)-334(in)28(teger)-333(v)55(ariable.)]TJ 0 g 0 G /F27 9.9626 Tf -24.907 -19.925 Td [(close)]TJ 0 g 0 G -/F8 9.9626 Tf 28.755 0 Td [(Whether)-401(to)-401(clos)-1(e)-401(all)-401(data)-401(structures)-401(relate)-1(d)-401(to)-401(the)-401(virtual)-401(parallel)-401(m)-1(a-)]TJ -3.848 -11.955 Td [(c)28(hine,)-334(b)-27(esides)-334(those)-333(asso)-28(ciated)-333(with)-334(icon)28(txt.)]TJ 0 -11.956 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.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(a)-333(logical)-333(v)55(ariable,)-333(default)-333(v)55(alu)1(e)-1(:)-444(true.)]TJ/F16 11.9552 Tf -24.907 -19.925 Td [(Notes)]TJ +/F8 9.9626 Tf 28.754 0 Td [(Whether)-401(to)-401(c)-1(lose)-401(all)-401(data)-401(structures)-402(related)-401(to)-401(the)-401(virtual)-401(parallel)-402(ma-)]TJ -3.847 -11.955 Td [(c)28(hine,)-333(b)-28(esides)-334(those)-333(asso)-28(ciated)-333(with)-334(icon)28(txt.)]TJ 0 -11.956 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.378 0 Td [(global)]TJ/F8 9.9626 Tf 29.756 0 Td [(.)]TJ -62.134 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(optional)]TJ/F8 9.9626 Tf 40.577 0 Td [(.)]TJ -70.188 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.485 0 Td [(in)]TJ/F8 9.9626 Tf 9.548 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-444(a)-334(logical)-333(v)55(ariabl)1(e)-1(,)-333(default)-333(v)55(al)1(ue:)-445(true.)]TJ/F16 11.9552 Tf -24.907 -19.925 Td [(Notes)]TJ 0 g 0 G /F8 9.9626 Tf 12.177 -19.926 Td [(1.)]TJ 0 g 0 G - [-500(This)-241(routine)-241(ma)28(y)-241(b)-28(e)-241(called)-241(ev)28(en)-241(if)-241(a)-241(previous)-241(call)-241(to)]TJ/F30 9.9626 Tf 233.305 0 Td [(psb_info)]TJ/F8 9.9626 Tf 44.244 0 Td [(has)-241(returned)]TJ -264.819 -11.955 Td [(with)]TJ/F11 9.9626 Tf 22.963 0 Td [(iam)]TJ/F8 9.9626 Tf 20.662 0 Td [(=)]TJ/F14 9.9626 Tf 10.966 0 Td [(\000)]TJ/F8 9.9626 Tf 7.749 0 Td [(1;)-374(indeed,)-367(it)-360(it)-361(is)-360(the)-361(only)-360(routine)-360(that)-361(ma)28(y)-360(b)-28(e)-361(called)-360(with)]TJ -62.34 -11.955 Td [(argumen)28(t)]TJ/F30 9.9626 Tf 44.583 0 Td [(icontxt)]TJ/F8 9.9626 Tf 39.933 0 Td [(in)-333(this)-334(situation.)]TJ + [-500(This)-241(routine)-241(ma)28(y)-241(b)-28(e)-241(called)-241(ev)28(en)-241(if)-241(a)-241(previous)-241(call)-241(to)]TJ/F30 9.9626 Tf 233.304 0 Td [(psb_info)]TJ/F8 9.9626 Tf 44.244 0 Td [(has)-241(returned)]TJ -264.818 -11.955 Td [(with)]TJ/F11 9.9626 Tf 22.962 0 Td [(iam)]TJ/F8 9.9626 Tf 20.663 0 Td [(=)]TJ/F14 9.9626 Tf 10.966 0 Td [(\000)]TJ/F8 9.9626 Tf 7.749 0 Td [(1;)-374(indeed,)-367(it)-360(it)-361(is)-360(the)-361(only)-360(routine)-360(that)-361(ma)28(y)-360(b)-28(e)-361(called)-360(with)]TJ -62.34 -11.955 Td [(argumen)28(t)]TJ/F30 9.9626 Tf 44.583 0 Td [(icontxt)]TJ/F8 9.9626 Tf 39.933 0 Td [(in)-333(this)-334(situation)1(.)]TJ 0 g 0 G -97.246 -19.925 Td [(2.)]TJ 0 g 0 G - [-500(A)-305(call)-306(to)-305(this)-305(routine)-305(with)]TJ/F30 9.9626 Tf 128.752 0 Td [(close=.true.)]TJ/F8 9.9626 Tf 65.806 0 Td [(implies)-305(a)-306(call)-305(to)]TJ/F30 9.9626 Tf 71.445 0 Td [(MPI_Finalize)]TJ/F8 9.9626 Tf 62.764 0 Td [(,)]TJ -316.037 -11.956 Td [(after)-333(whic)27(h)-333(no)-333(parallel)-333(routine)-334(ma)28(y)-333(b)-28(e)-333(called.)]TJ + [-500(A)-305(call)-306(to)-305(this)-305(routine)-305(with)]TJ/F30 9.9626 Tf 128.752 0 Td [(close=.true.)]TJ/F8 9.9626 Tf 65.806 0 Td [(implies)-305(a)-306(call)-305(to)]TJ/F30 9.9626 Tf 71.445 0 Td [(MPI_Finalize)]TJ/F8 9.9626 Tf 62.764 0 Td [(,)]TJ -316.037 -11.956 Td [(after)-333(whic)28(h)-334(no)-333(parallel)-333(routine)-334(ma)28(y)-333(b)-28(e)-333(called.)]TJ 0 g 0 G -12.73 -19.925 Td [(3.)]TJ 0 g 0 G - [-500(If)-391(the)-390(user)-391(whishes)-391(to)-390(use)-391(m)28(ultiple)-391(comm)28(unication)-391(con)28(texts)-391(in)-390(the)-391(same)]TJ 12.73 -11.955 Td [(program,)-485(or)-455(to)-455(en)28(ter)-455(and)-454(e)-1(xi)1(t)-455(m)27(ul)1(tiple)-455(times)-455(in)28(to)-455(the)-455(parallel)-455(en)28(viron-)]TJ 0 -11.955 Td [(men)28(t,)-494(this)-462(routine)-462(ma)28(y)-462(b)-28(e)-462(called)-462(to)-462(selectiv)28(ely)-462(close)-463(th)1(e)-462(c)-1(on)28(texts)-462(with)]TJ/F30 9.9626 Tf 0 -11.955 Td [(close=.false.)]TJ/F8 9.9626 Tf 67.994 0 Td [(,)-244(while)-223(on)-222(the)-222(last)-222(call)-223(it)-222(should)-222(b)-28(e)-222(called)-222(with)]TJ/F30 9.9626 Tf 194.328 0 Td [(close=.true.)]TJ/F8 9.9626 Tf -262.322 -11.955 Td [(to)-333(sh)27(utd)1(o)27(wn)-333(in)-333(a)-334(clean)-333(w)28(a)28(y)-334(the)-333(en)28(tire)-334(parallel)-333(en)28(vironmen)28(t.)]TJ + [-500(If)-391(the)-390(user)-391(whishes)-391(to)-390(use)-391(m)28(ultiple)-391(comm)28(unication)-391(con)28(texts)-391(in)-390(the)-391(same)]TJ 12.73 -11.955 Td [(program,)-485(or)-455(to)-455(en)28(ter)-455(and)-454(exit)-455(m)27(u)1(ltiple)-455(times)-455(in)28(to)-455(the)-455(parallel)-455(en)28(viron-)]TJ 0 -11.955 Td [(men)28(t,)-494(this)-462(routine)-462(ma)28(y)-462(b)-28(e)-462(called)-462(to)-462(selectiv)28(ely)-462(close)-462(the)-462(con)27(texts)-462(with)]TJ/F30 9.9626 Tf 0 -11.955 Td [(close=.false.)]TJ/F8 9.9626 Tf 67.994 0 Td [(,)-244(while)-223(on)-222(the)-222(last)-222(call)-223(it)-222(should)-222(b)-28(e)-222(called)-222(with)]TJ/F30 9.9626 Tf 194.327 0 Td [(close=.true.)]TJ/F8 9.9626 Tf -262.321 -11.955 Td [(to)-333(sh)27(u)1(tdo)27(wn)-333(in)-333(a)-334(clean)-333(w)28(a)28(y)-334(the)-333(en)28(tire)-334(parallel)-333(en)28(vironmen)28(t.)]TJ 0 g 0 G - 139.477 -212.744 Td [(101)]TJ + 139.477 -212.744 Td [(102)]TJ 0 g 0 G ET endstream endobj -1506 0 obj +1519 0 obj << -/Length 2160 +/Length 2161 >> stream 0 g 0 G 0 g 0 G BT -/F16 11.9552 Tf 150.705 706.129 Td [(psb)]TJ +/F16 11.9552 Tf 99.895 706.129 Td [(psb)]TJ ET q -1 0 0 1 171.761 706.328 cm +1 0 0 1 120.951 706.328 cm []0 d 0 J 0.398 w 0 0 m 4.035 0 l S Q BT -/F16 11.9552 Tf 175.796 706.129 Td [(get)]TJ +/F16 11.9552 Tf 124.986 706.129 Td [(get)]TJ ET q -1 0 0 1 194.695 706.328 cm +1 0 0 1 143.885 706.328 cm []0 d 0 J 0.398 w 0 0 m 4.035 0 l S Q BT -/F16 11.9552 Tf 198.729 706.129 Td [(mpicomm)-375(|)-375(Get)-375(the)-375(MPI)-375(comm)31(unicator)]TJ +/F16 11.9552 Tf 147.92 706.129 Td [(mpicomm)-375(|)-375(Get)-375(the)-375(MPI)-375(comm)31(unicator)]TJ 0 g 0 G 0 g 0 G -/F30 9.9626 Tf -48.024 -18.389 Td [(call)-525(psb_get_mpicomm\050icontxt,)-525(icomm\051)]TJ/F8 9.9626 Tf 14.944 -21.918 Td [(This)-335(subroutine)-335(returns)-335(the)-336(M)1(PI)-336(comm)28(unicator)-335(asso)-28(ciated)-335(with)-335(a)-335(PSBLAS)]TJ -14.944 -11.955 Td [(con)28(text)]TJ +/F30 9.9626 Tf -48.025 -18.389 Td [(call)-525(psb_get_mpicomm\050icontxt,)-525(icomm\051)]TJ/F8 9.9626 Tf 14.944 -21.918 Td [(This)-335(subroutine)-335(returns)-335(the)-336(MPI)-335(comm)28(unicator)-335(asso)-28(ciated)-335(with)-335(a)-336(P)1(SBLAS)]TJ -14.944 -11.955 Td [(con)28(text)]TJ 0 g 0 G /F27 9.9626 Tf 0 -19.926 Td [(T)32(yp)-32(e:)]TJ 0 g 0 G @@ -18127,47 +18245,47 @@ BT 0 g 0 G 0 -19.925 Td [(icon)32(txt)]TJ 0 g 0 G -/F8 9.9626 Tf 39.989 0 Td [(the)-333(comm)27(unication)-333(con)28(text)-333(iden)27(tifyi)1(ng)-334(the)-333(virtual)-333(parallel)-334(mac)28(hine.)]TJ -15.082 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.378 0 Td [(global)]TJ/F8 9.9626 Tf 29.756 0 Td [(.)]TJ -62.134 -11.956 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf 41.898 0 Td [(.)]TJ -71.509 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.485 0 Td [(in)]TJ/F8 9.9626 Tf 9.548 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-444(an)-334(in)28(teger)-333(v)55(ariable.)]TJ +/F8 9.9626 Tf 39.989 0 Td [(the)-333(comm)27(unication)-333(con)28(text)-333(iden)27(tifyin)1(g)-334(the)-333(virtual)-333(parallel)-334(mac)28(hine.)]TJ -15.082 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(global)]TJ/F8 9.9626 Tf 29.756 0 Td [(.)]TJ -62.135 -11.956 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf 41.898 0 Td [(.)]TJ -71.509 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(in)28(teger)-333(v)55(ariable.)]TJ 0 g 0 G /F27 9.9626 Tf -24.907 -21.918 Td [(On)-383(Return)]TJ 0 g 0 G 0 g 0 G 0 -19.925 Td [(icomm)]TJ 0 g 0 G -/F8 9.9626 Tf 38.079 0 Td [(The)-377(MPI)-378(comm)28(unicator)-378(asso)-27(ciated)-378(with)-377(the)-378(PSBLAS)-377(virtual)-377(parallel)]TJ -13.172 -11.955 Td [(mac)28(hine.)]TJ 0 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.378 0 Td [(global)]TJ/F8 9.9626 Tf 29.756 0 Td [(.)]TJ -62.134 -11.956 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf 41.898 0 Td [(.)]TJ -71.509 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.485 0 Td [(out)]TJ/F8 9.9626 Tf 16.549 0 Td [(.)]TJ +/F8 9.9626 Tf 38.08 0 Td [(The)-377(MPI)-378(comm)28(unicator)-377(as)-1(so)-27(ciated)-378(with)-377(the)-378(PSBLAS)-377(virtual)-377(parallel)]TJ -13.173 -11.955 Td [(mac)28(hine.)]TJ 0 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(global)]TJ/F8 9.9626 Tf 29.756 0 Td [(.)]TJ -62.135 -11.956 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf 41.898 0 Td [(.)]TJ -71.509 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(out)]TJ/F8 9.9626 Tf 16.549 0 Td [(.)]TJ 0 g 0 G - 89.442 -366.168 Td [(102)]TJ + 89.442 -366.168 Td [(103)]TJ 0 g 0 G ET endstream endobj -1510 0 obj +1524 0 obj << -/Length 3020 +/Length 3025 >> 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 [(get)]TJ +/F16 11.9552 Tf 175.796 706.129 Td [(get)]TJ ET q -1 0 0 1 143.885 706.328 cm +1 0 0 1 194.695 706.328 cm []0 d 0 J 0.398 w 0 0 m 4.035 0 l S Q BT -/F16 11.9552 Tf 147.92 706.129 Td [(rank)-375(|)-375(Get)-375(the)-375(MPI)-375(rank)]TJ +/F16 11.9552 Tf 198.729 706.129 Td [(rank)-375(|)-375(Get)-375(the)-375(MPI)-375(rank)]TJ 0 g 0 G 0 g 0 G -/F30 9.9626 Tf -48.025 -18.389 Td [(call)-525(psb_get_rank\050rank,)-525(icontxt,)-525(id\051)]TJ/F8 9.9626 Tf 14.944 -21.918 Td [(This)-333(subroutine)-334(return)1(s)-334(the)-333(MPI)-333(rank)-334(of)-333(the)-333(PSBLAS)-334(pro)-27(cess)]TJ/F11 9.9626 Tf 274.665 0 Td [(id)]TJ +/F30 9.9626 Tf -48.024 -18.389 Td [(call)-525(psb_get_rank\050rank,)-525(icontxt,)-525(id\051)]TJ/F8 9.9626 Tf 14.944 -21.918 Td [(This)-333(subroutine)-334(retu)1(rns)-334(the)-333(MPI)-333(rank)-334(of)-333(the)-333(PSBLAS)-334(pr)1(o)-28(cess)]TJ/F11 9.9626 Tf 274.665 0 Td [(id)]TJ 0 g 0 G /F27 9.9626 Tf -289.609 -19.926 Td [(T)32(yp)-32(e:)]TJ 0 g 0 G @@ -18178,44 +18296,44 @@ BT 0 g 0 G 0 -19.925 Td [(icon)32(txt)]TJ 0 g 0 G -/F8 9.9626 Tf 39.989 0 Td [(the)-333(comm)27(unication)-333(con)28(text)-333(iden)27(tifyin)1(g)-334(the)-333(virtual)-333(parallel)-334(mac)28(hine.)]TJ -15.082 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(global)]TJ/F8 9.9626 Tf 29.756 0 Td [(.)]TJ -62.135 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf 41.898 0 Td [(.)]TJ -71.509 -11.956 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(in)28(teger)-333(v)55(ariable.)]TJ +/F8 9.9626 Tf 39.989 0 Td [(the)-333(comm)27(unication)-333(con)28(text)-333(iden)27(tifyi)1(ng)-334(the)-333(virtual)-333(parallel)-334(mac)28(hine.)]TJ -15.082 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.378 0 Td [(global)]TJ/F8 9.9626 Tf 29.756 0 Td [(.)]TJ -62.134 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf 41.898 0 Td [(.)]TJ -71.509 -11.956 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.485 0 Td [(in)]TJ/F8 9.9626 Tf 9.548 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-444(an)-334(in)28(teger)-333(v)55(ariable.)]TJ 0 g 0 G /F27 9.9626 Tf -24.907 -19.925 Td [(id)]TJ 0 g 0 G -/F8 9.9626 Tf 14.529 0 Td [(Iden)28(ti\014er)-333(of)-334(a)-333(pro)-28(cess)-333(in)-334(the)-333(PSBLAS)-333(virtual)-333(parallel)-334(mac)28(hine.)]TJ 10.378 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf 23.073 0 Td [(.)]TJ -55.452 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf 41.898 0 Td [(.)]TJ -71.509 -11.956 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(in)28(teger)-333(v)55(alue.)-444(0)]TJ/F14 9.9626 Tf 142.051 0 Td [(\024)]TJ/F11 9.9626 Tf 10.516 0 Td [(id)]TJ/F14 9.9626 Tf 11.385 0 Td [(\024)]TJ/F11 9.9626 Tf 10.516 0 Td [(np)]TJ/F14 9.9626 Tf 13.206 0 Td [(\000)]TJ/F8 9.9626 Tf 9.963 0 Td [(1)]TJ +/F8 9.9626 Tf 14.529 0 Td [(Iden)28(ti\014er)-333(of)-334(a)-333(pro)-28(cess)-333(in)-334(the)-333(PSBLAS)-333(virtual)-333(parallel)-334(mac)28(hine.)]TJ 10.378 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.378 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf 23.073 0 Td [(.)]TJ -55.451 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf 41.898 0 Td [(.)]TJ -71.509 -11.956 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.485 0 Td [(in)]TJ/F8 9.9626 Tf 9.548 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-444(an)-334(in)28(teger)-333(v)55(alue.)-444(0)]TJ/F14 9.9626 Tf 142.05 0 Td [(\024)]TJ/F11 9.9626 Tf 10.516 0 Td [(id)]TJ/F14 9.9626 Tf 11.385 0 Td [(\024)]TJ/F11 9.9626 Tf 10.516 0 Td [(np)]TJ/F14 9.9626 Tf 13.207 0 Td [(\000)]TJ/F8 9.9626 Tf 9.962 0 Td [(1)]TJ 0 g 0 G -/F27 9.9626 Tf -222.544 -21.918 Td [(On)-383(Return)]TJ +/F27 9.9626 Tf -222.543 -21.918 Td [(On)-383(Return)]TJ 0 g 0 G 0 g 0 G 0 -19.925 Td [(rank)]TJ 0 g 0 G -/F8 9.9626 Tf 27.681 0 Td [(The)-333(MPI)-334(rank)-333(asso)-28(ciated)-333(with)-333(the)-334(PSBLAS)-333(pro)-28(cess)]TJ/F11 9.9626 Tf 230.248 0 Td [(id)]TJ/F8 9.9626 Tf 8.618 0 Td [(.)]TJ -241.64 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf 23.073 0 Td [(.)]TJ -55.452 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf 41.898 0 Td [(.)]TJ -71.509 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(out)]TJ/F8 9.9626 Tf 16.549 0 Td [(.)]TJ +/F8 9.9626 Tf 27.681 0 Td [(The)-333(MPI)-334(rank)-333(asso)-28(ciated)-333(with)-333(the)-334(PSBLAS)-333(pro)-28(cess)]TJ/F11 9.9626 Tf 230.248 0 Td [(id)]TJ/F8 9.9626 Tf 8.617 0 Td [(.)]TJ -241.639 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.378 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf 23.073 0 Td [(.)]TJ -55.451 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf 41.898 0 Td [(.)]TJ -71.509 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.485 0 Td [(out)]TJ/F8 9.9626 Tf 16.549 0 Td [(.)]TJ 0 g 0 G - 89.442 -322.333 Td [(103)]TJ + 89.442 -322.333 Td [(104)]TJ 0 g 0 G ET endstream endobj -1515 0 obj +1528 0 obj << -/Length 1202 +/Length 1181 >> stream 0 g 0 G 0 g 0 G BT -/F16 11.9552 Tf 150.705 706.129 Td [(psb)]TJ +/F16 11.9552 Tf 99.895 706.129 Td [(psb)]TJ ET q -1 0 0 1 171.761 706.328 cm +1 0 0 1 120.951 706.328 cm []0 d 0 J 0.398 w 0 0 m 4.035 0 l S Q BT -/F16 11.9552 Tf 175.796 706.129 Td [(wtime)-375(|)-375(W)94(all)-375(clo)-31(c)31(k)-375(timing)]TJ +/F16 11.9552 Tf 124.986 706.129 Td [(wtime)-375(|)-375(W)94(all)-375(clo)-32(c)32(k)-375(timing)]TJ 0 g 0 G 0 g 0 G -/F30 9.9626 Tf -25.091 -18.389 Td [(time)-525(=)-525(psb_wtime\050\051)]TJ/F8 9.9626 Tf 14.944 -21.918 Td [(This)-474(fun)1(c)-1(ti)1(o)-1(n)-473(returns)-474(a)-473(w)28(all)-474(clo)-28(c)28(k)-474(timer.)-865(The)-474(resolution)-473(of)-474(the)-473(timer)-474(is)]TJ -14.944 -11.955 Td [(dep)-28(enden)28(t)-333(on)-334(th)1(e)-334(underlying)-333(parallel)-333(en)28(vironmen)27(t)-333(implemen)28(tation.)]TJ +/F30 9.9626 Tf -25.091 -18.389 Td [(time)-525(=)-525(psb_wtime\050\051)]TJ/F8 9.9626 Tf 14.944 -21.918 Td [(This)-474(function)-473(returns)-474(a)-473(w)27(all)-473(clo)-28(c)28(k)-474(timer.)-865(The)-474(resolution)-473(of)-474(the)-473(timer)-474(is)]TJ -14.944 -11.955 Td [(dep)-28(enden)28(t)-333(on)-334(the)-333(underlying)-333(parallel)-333(en)27(vir)1(onme)-1(n)28(t)-333(implemen)28(tation.)]TJ 0 g 0 G /F27 9.9626 Tf 0 -19.926 Td [(T)32(yp)-32(e:)]TJ 0 g 0 G @@ -18226,54 +18344,17 @@ BT 0 g 0 G 0 -19.925 Td [(F)96(unction)-384(v)64(alue)]TJ 0 g 0 G -/F8 9.9626 Tf 78.386 0 Td [(the)-333(elapsed)-334(time)-333(in)-333(sec)-1(on)1(ds.)]TJ -53.479 -11.955 Td [(Returned)-333(as:)-445(a)]TJ/F30 9.9626 Tf 68.299 0 Td [(real\050psb_dpk_\051)]TJ/F8 9.9626 Tf 76.546 0 Td [(v)56(ariable.)]TJ -0 g 0 G - -5.369 -491.698 Td [(104)]TJ -0 g 0 G -ET - -endstream -endobj -1519 0 obj -<< -/Length 1484 ->> -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 [(barrier)-375(|)-375(Sinc)31(hronization)-375(p)-31(oin)31(t)-375(parallel)-375(en)32(vironmen)31(t)]TJ -0 g 0 G -0 g 0 G -/F30 9.9626 Tf -25.091 -18.389 Td [(call)-525(psb_barrier\050icontxt\051)]TJ/F8 9.9626 Tf 14.944 -21.918 Td [(This)-398(subroutine)-397(ac)-1(t)1(s)-398(as)-398(an)-398(explicit)-398(sync)28(hronization)-397(p)-28(oin)28(t)-398(for)-398(the)-398(PSBLAS)]TJ -14.944 -11.955 Td [(parallel)-333(virtual)-333(m)-1(ac)28(hine.)]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 +/F8 9.9626 Tf 78.387 0 Td [(the)-333(elapsed)-334(time)-333(in)-333(seconds.)]TJ -53.48 -11.955 Td [(Returned)-333(as:)-445(a)]TJ/F30 9.9626 Tf 68.3 0 Td [(real\050psb_dpk_\051)]TJ/F8 9.9626 Tf 76.545 0 Td [(v)56(ariable.)]TJ 0 g 0 G - 139.477 -455.832 Td [(105)]TJ + -5.368 -491.698 Td [(105)]TJ 0 g 0 G ET endstream endobj -1523 0 obj +1532 0 obj << -/Length 1357 +/Length 1474 >> stream 0 g 0 G @@ -18286,47 +18367,10 @@ q []0 d 0 J 0.398 w 0 0 m 4.035 0 l S Q BT -/F16 11.9552 Tf 175.796 706.129 Td [(ab)-31(ort)-375(|)-375(Ab)-31(ort)-375(a)-375(computation)]TJ -0 g 0 G -0 g 0 G -/F30 9.9626 Tf -25.091 -18.389 Td [(call)-525(psb_abort\050icontxt\051)]TJ/F8 9.9626 Tf 14.944 -21.918 Td [(This)-333(subroutine)-334(ab)-27(orts)-334(computation)-333(on)-333(the)-334(p)1(arallel)-334(virtual)-333(mac)28(hine.)]TJ -0 g 0 G -/F27 9.9626 Tf -14.944 -19.926 Td [(T)32(yp)-32(e:)]TJ -0 g 0 G -/F8 9.9626 Tf 33.797 0 Td [(Async)28(hronous.)]TJ -0 g 0 G -/F27 9.9626 Tf -33.797 -19.925 Td [(On)-383(En)32(try)]TJ -0 g 0 G -0 g 0 G - 0 -19.925 Td [(icon)32(txt)]TJ -0 g 0 G -/F8 9.9626 Tf 39.989 0 Td [(the)-333(comm)27(unication)-333(con)28(text)-333(iden)27(tifyi)1(ng)-334(the)-333(virtual)-333(parallel)-334(mac)28(hine.)]TJ -15.082 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.378 0 Td [(global)]TJ/F8 9.9626 Tf 29.756 0 Td [(.)]TJ -62.134 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf 41.898 0 Td [(.)]TJ -71.509 -11.956 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.485 0 Td [(in)]TJ/F8 9.9626 Tf 9.548 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-444(an)-334(in)28(teger)-333(v)55(ariable.)]TJ -0 g 0 G - 139.476 -467.787 Td [(106)]TJ -0 g 0 G -ET - -endstream -endobj -1527 0 obj -<< -/Length 4552 ->> -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 [(b)-31(cast)-375(|)-375(Broadcast)-375(data)]TJ +/F16 11.9552 Tf 175.796 706.129 Td [(barrier)-375(|)-375(Sinc)31(hronization)-375(p)-31(oin)31(t)-375(parallel)-375(en)32(vironmen)31(t)]TJ 0 g 0 G 0 g 0 G -/F30 9.9626 Tf -25.091 -18.389 Td [(call)-525(psb_bcast\050icontxt,)-525(dat,)-525(root\051)]TJ/F8 9.9626 Tf 14.944 -21.918 Td [(This)-338(subroutine)-338(impleme)-1(n)28(ts)-338(a)-338(broadcast)-339(op)-27(eration)-338(base)-1(d)-338(on)-338(the)-338(underlying)]TJ -14.944 -11.955 Td [(comm)28(unication)-334(libr)1(ary)83(.)]TJ +/F30 9.9626 Tf -25.091 -18.389 Td [(call)-525(psb_barrier\050icontxt\051)]TJ/F8 9.9626 Tf 14.944 -21.918 Td [(This)-398(subroutine)-397(acts)-398(as)-398(an)-398(explicit)-398(sync)28(hronization)-397(p)-28(oin)28(t)-398(for)-398(the)-398(PSBLAS)]TJ -14.944 -11.955 Td [(parallel)-333(virtual)-333(mac)27(hine.)]TJ 0 g 0 G /F27 9.9626 Tf 0 -19.926 Td [(T)32(yp)-32(e:)]TJ 0 g 0 G @@ -18337,108 +18381,70 @@ BT 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 [(On)-333(the)-334(ro)-27(ot)-334(pro)-27(ce)-1(ss,)-333(the)-333(data)-334(to)-333(b)-28(e)-333(broadcast.)]TJ 3.536 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(global)]TJ/F8 9.9626 Tf 29.756 0 Td [(.)]TJ -62.135 -11.956 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf 41.898 0 Td [(.)]TJ -71.509 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(inout)]TJ/F8 9.9626 Tf 26.096 0 Td [(.)]TJ -59.582 -11.955 Td [(Sp)-28(eci\014ed)-339(as:)-458(an)-339(in)28(te)-1(ger,)-341(real)-340(or)-339(complex)-340(v)56(ariable,)-342(whic)28(h)-340(ma)28(y)-339(b)-28(e)-340(a)-340(scalar,)]TJ 0 -11.955 Td [(or)-403(a)-403(rank)-404(1)-403(or)-403(2)-403(arra)28(y)83(,)-421(or)-403(a)-403(c)28(haracter)-404(or)-403(logical)-403(v)56(ariable,)-421(whic)28(h)-403(ma)27(y)-403(b)-28(e)]TJ 0 -11.955 Td [(a)-427(scalar)-426(or)-427(ran)1(k)-427(1)-426(arra)27(y)84(.)-1151(T)28(yp)-28(e,)-450(ki)1(nd,)-450(rank)-427(and)-426(size)-427(m)28(ust)-426(agree)-427(on)-426(all)]TJ 0 -11.955 Td [(pro)-28(cesses.)]TJ -0 g 0 G -/F27 9.9626 Tf -24.907 -19.926 Td [(ro)-32(ot)]TJ -0 g 0 G -/F8 9.9626 Tf 25.931 0 Td [(Ro)-28(ot)-333(pro)-28(cess)-333(holding)-334(d)1(ata)-334(to)-333(b)-28(e)-333(broadcast.)]TJ -1.024 -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)-333(0)]TJ/F11 9.9626 Tf 138.176 0 Td [(<)]TJ/F8 9.9626 Tf 7.749 0 Td [(=)]TJ/F11 9.9626 Tf 10.516 0 Td [(r)-28(oot)-278(<)]TJ/F8 9.9626 Tf 28.544 0 Td [(=)]TJ/F11 9.9626 Tf 10.516 0 Td [(np)]TJ/F14 9.9626 Tf 13.206 0 Td [(\000)]TJ/F8 9.9626 Tf 9.963 0 Td [(1,)-333(default)-334(0)]TJ -0 g 0 G -/F27 9.9626 Tf -243.577 -21.918 Td [(On)-383(Return)]TJ -0 g 0 G -0 g 0 G - 0 -19.926 Td [(dat)]TJ -0 g 0 G -/F8 9.9626 Tf 21.372 0 Td [(On)-333(pro)-28(cesses)-334(oth)1(e)-1(r)-333(than)-333(ro)-28(ot,)-333(the)-333(data)-334(to)-333(b)-28(e)-333(broadcast.)]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.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)-346(a)-346(rank)-347(1)-346(or)-346(2)-346(arra)28(y)83(,)-349(or)-347(a)-346(c)28(haracter)-346(or)-347(l)1(ogic)-1(al)-346(scalar.)-829(T)28(yp)-28(e,)-350(k)1(ind,)-350(rank)]TJ 0 -11.956 Td [(and)-333(size)-334(m)28(ust)-333(agree)-334(on)-333(all)-333(pro)-28(cesses.)]TJ +/F8 9.9626 Tf 39.989 0 Td [(the)-333(comm)27(unication)-333(con)28(text)-333(iden)27(tifyi)1(ng)-334(the)-333(virtual)-333(parallel)-334(mac)28(hine.)]TJ -15.082 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.378 0 Td [(global)]TJ/F8 9.9626 Tf 29.756 0 Td [(.)]TJ -62.134 -11.956 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf 41.898 0 Td [(.)]TJ -71.509 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.485 0 Td [(in)]TJ/F8 9.9626 Tf 9.548 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-444(an)-334(in)28(teger)-333(v)55(ariable.)]TJ 0 g 0 G - 139.477 -170.9 Td [(107)]TJ + 139.476 -455.832 Td [(106)]TJ 0 g 0 G ET endstream endobj -1531 0 obj +1536 0 obj << -/Length 5199 +/Length 1360 >> 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 [(sum)-375(|)-375(Global)-375(sum)]TJ -0 g 0 G -0 g 0 G -/F30 9.9626 Tf -25.091 -18.389 Td [(call)-525(psb_sum\050icontxt,)-525(dat,)-525(root\051)]TJ/F8 9.9626 Tf 14.944 -21.918 Td [(This)-318(subroutine)-319(impl)1(e)-1(men)28(ts)-318(a)-318(s)-1(u)1(m)-319(reduction)-318(op)-28(eration)-318(based)-318(on)-319(the)-318(under-)]TJ -14.944 -11.955 Td [(lying)-333(comm)27(un)1(ic)-1(ati)1(on)-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(tifyi)1(ng)-334(the)-333(virtual)-333(parallel)-334(mac)28(hine.)]TJ -15.082 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.378 0 Td [(global)]TJ/F8 9.9626 Tf 29.756 0 Td [(.)]TJ -62.134 -11.956 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf 41.898 0 Td [(.)]TJ -71.509 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.485 0 Td [(in)]TJ/F8 9.9626 Tf 9.548 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-444(an)-334(in)28(teger)-333(v)55(ariable.)]TJ -0 g 0 G -/F27 9.9626 Tf -24.907 -19.925 Td [(dat)]TJ -0 g 0 G -/F8 9.9626 Tf 21.371 0 Td [(The)-333(lo)-28(cal)-333(c)-1(on)28(tribution)-333(to)-333(the)-334(gl)1(obal)-334(sum.)]TJ 3.536 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.378 0 Td [(global)]TJ/F8 9.9626 Tf 29.756 0 Td [(.)]TJ -62.134 -11.956 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf 41.898 0 Td [(.)]TJ -71.509 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.485 0 Td [(inout)]TJ/F8 9.9626 Tf 26.097 0 Td [(.)]TJ -59.582 -11.955 Td [(Sp)-28(eci\014ed)-339(as:)-458(an)-339(in)28(tege)-1(r,)-341(real)-339(or)-340(complex)-340(v)56(ariable,)-342(whic)28(h)-339(m)-1(a)28(y)-339(b)-28(e)-340(a)-340(scalar,)]TJ 0 -11.955 Td [(or)-464(a)-464(ran)1(k)-464(1)-464(or)-464(2)-464(arra)28(y)83(.)-1299(T)28(yp)-28(e,)-497(kind)1(,)-497(rank)-464(and)-463(size)-464(m)27(ust)-463(agree)-464(on)-464(all)]TJ 0 -11.955 Td [(pro)-28(cesses.)]TJ -0 g 0 G -/F27 9.9626 Tf -24.907 -19.926 Td [(ro)-32(ot)]TJ -0 g 0 G -/F8 9.9626 Tf 25.93 0 Td [(Pro)-28(cess)-310(to)-309(hold)-310(the)-310(\014nal)-310(sum,)-314(or)]TJ/F14 9.9626 Tf 144.053 0 Td [(\000)]TJ/F8 9.9626 Tf 7.749 0 Td [(1)-310(to)-310(mak)28(e)-310(it)-309(a)27(v)56(ailable)-310(on)-310(al)1(l)-310(pro)-28(cesses.)]TJ -152.825 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.378 0 Td [(global)]TJ/F8 9.9626 Tf 29.756 0 Td [(.)]TJ -62.134 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(optional)]TJ/F8 9.9626 Tf 40.577 0 Td [(.)]TJ -70.188 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.485 0 Td [(in)]TJ/F8 9.9626 Tf 9.548 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-444(an)-334(in)28(teger)-333(v)55(alue)]TJ/F14 9.9626 Tf 130.427 0 Td [(\000)]TJ/F8 9.9626 Tf 7.749 0 Td [(1)]TJ/F11 9.9626 Tf 7.749 0 Td [(<)]TJ/F8 9.9626 Tf 7.749 0 Td [(=)]TJ/F11 9.9626 Tf 10.516 0 Td [(r)-28(oot)-278(<)]TJ/F8 9.9626 Tf 28.543 0 Td [(=)]TJ/F11 9.9626 Tf 10.516 0 Td [(np)]TJ/F14 9.9626 Tf 13.206 0 Td [(\000)]TJ/F8 9.9626 Tf 9.963 0 Td [(1,)-333(default)-334(-1.)]TJ +/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 [(ab)-31(ort)-375(|)-375(Ab)-32(ort)-375(a)-374(computation)]TJ 0 g 0 G -/F27 9.9626 Tf -251.325 -21.918 Td [(On)-383(Return)]TJ 0 g 0 G +/F30 9.9626 Tf -25.091 -18.389 Td [(call)-525(psb_abort\050icontxt\051)]TJ/F8 9.9626 Tf 14.944 -21.918 Td [(This)-333(subroutine)-334(ab)-27(orts)-334(computation)-333(on)-333(the)-334(paral)1(le)-1(l)-333(virtual)-333(mac)28(hine.)]TJ 0 g 0 G - 0 -19.925 Td [(dat)]TJ +/F27 9.9626 Tf -14.944 -19.926 Td [(T)32(yp)-32(e:)]TJ 0 g 0 G -/F8 9.9626 Tf 21.371 0 Td [(On)-333(destination)-334(pr)1(o)-28(cess\050es)-1(\051,)-333(the)-333(result)-333(of)-334(the)-333(sum)-333(op)-28(eration.)]TJ 3.536 -11.956 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.378 0 Td [(global)]TJ/F8 9.9626 Tf 29.757 0 Td [(.)]TJ -62.135 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf 41.898 0 Td [(.)]TJ -71.509 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.485 0 Td [(inout)]TJ/F8 9.9626 Tf 26.097 0 Td [(.)]TJ -59.582 -11.955 Td [(Sp)-28(eci\014ed)-339(as:)-458(an)-339(in)28(tege)-1(r,)-341(real)-339(o)-1(r)-339(complex)-340(v)56(ariable,)-342(whic)28(h)-339(m)-1(a)28(y)-339(b)-28(e)-340(a)-340(scalar,)]TJ 0 -11.955 Td [(or)-333(a)-334(rank)-333(1)-333(or)-333(2)-334(arra)28(y)83(.)]TJ 0 -11.955 Td [(T)28(yp)-28(e,)-333(kind,)-333(rank)-334(and)-333(size)-333(m)27(ust)-333(agree)-333(on)-334(all)-333(pro)-28(cesses.)]TJ/F16 11.9552 Tf -24.907 -21.918 Td [(Notes)]TJ +/F8 9.9626 Tf 33.797 0 Td [(Async)28(hronous.)]TJ 0 g 0 G -/F8 9.9626 Tf 12.177 -19.925 Td [(1.)]TJ +/F27 9.9626 Tf -33.797 -19.925 Td [(On)-383(En)32(try)]TJ 0 g 0 G - [-500(The)]TJ/F30 9.9626 Tf 32.469 0 Td [(dat)]TJ/F8 9.9626 Tf 18.272 0 Td [(argumen)28(t)-259(is)-259(b)-28(oth)-259(input)-259(and)-259(output,)-274(and)-259(its)-259(v)55(alue)-259(ma)28(y)-259(b)-28(e)-259(c)28(hanged)]TJ -38.011 -11.956 Td [(ev)28(en)-334(on)-333(pro)-28(cesses)-333(di\013eren)28(t)-334(from)-333(the)-333(\014nal)-334(result)-333(destination.)]TJ 0 g 0 G - -12.73 -19.925 Td [(2.)]TJ + 0 -19.925 Td [(icon)32(txt)]TJ 0 g 0 G - [-500(The)]TJ/F30 9.9626 Tf 33.208 0 Td [(dat)]TJ/F8 9.9626 Tf 19.012 0 Td [(argumen)28(t)-334(ma)28(y)-333(also)-334(b)-27(e)-334(a)-333(long)-333(in)28(teger)-334(scalar.)]TJ +/F8 9.9626 Tf 39.989 0 Td [(the)-333(comm)27(unication)-333(con)28(text)-333(iden)27(tifyin)1(g)-334(the)-333(virtual)-333(parallel)-334(mac)28(hine.)]TJ -15.082 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(global)]TJ/F8 9.9626 Tf 29.756 0 Td [(.)]TJ -62.135 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf 41.898 0 Td [(.)]TJ -71.509 -11.956 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(in)28(teger)-333(v)55(ariable.)]TJ 0 g 0 G - 99.987 -109.132 Td [(108)]TJ + 139.477 -467.787 Td [(107)]TJ 0 g 0 G ET endstream endobj -1537 0 obj +1540 0 obj << -/Length 5151 +/Length 4533 >> 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 [(max)-375(|)-375(Global)-375(maxim)31(um)]TJ +/F16 11.9552 Tf 175.796 706.129 Td [(b)-31(cast)-375(|)-375(Broadcast)-375(data)]TJ 0 g 0 G 0 g 0 G -/F30 9.9626 Tf -25.091 -18.389 Td [(call)-525(psb_max\050icontxt,)-525(dat,)-525(root\051)]TJ/F8 9.9626 Tf 14.944 -21.918 Td [(This)-326(subroutine)-326(implemen)28(ts)-326(a)-326(maxim)27(um)-326(v)56(aluereduction)-326(op)-28(eration)-326(based)-326(on)]TJ -14.944 -11.955 Td [(the)-333(underlying)-334(comm)28(unication)-333(library)83(.)]TJ +/F30 9.9626 Tf -25.091 -18.389 Td [(call)-525(psb_bcast\050icontxt,)-525(dat,)-525(root\051)]TJ/F8 9.9626 Tf 14.944 -21.918 Td [(This)-338(subroutine)-338(implemen)27(ts)-338(a)-338(broadcast)-338(op)-28(eration)-338(based)-339(on)-338(the)-338(underlying)]TJ -14.944 -11.955 Td [(comm)28(unication)-334(lib)1(rary)83(.)]TJ 0 g 0 G /F27 9.9626 Tf 0 -19.926 Td [(T)32(yp)-32(e:)]TJ 0 g 0 G @@ -18449,32 +18455,24 @@ BT 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 +/F8 9.9626 Tf 39.989 0 Td [(the)-333(comm)27(unication)-333(con)28(text)-333(iden)27(tifyi)1(ng)-334(the)-333(virtual)-333(parallel)-334(mac)28(hine.)]TJ -15.082 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.378 0 Td [(global)]TJ/F8 9.9626 Tf 29.756 0 Td [(.)]TJ -62.134 -11.956 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf 41.898 0 Td [(.)]TJ -71.509 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.485 0 Td [(in)]TJ/F8 9.9626 Tf 9.548 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-444(an)-334(in)28(teger)-333(v)55(ariable.)]TJ 0 g 0 G /F27 9.9626 Tf -24.907 -19.925 Td [(dat)]TJ 0 g 0 G -/F8 9.9626 Tf 21.371 0 Td [(The)-333(lo)-28(cal)-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)-326(as)-1(:)-441(an)-326(in)27(teger)-326(or)-327(real)-327(v)56(ariable,)-328(whic)28(h)-327(ma)28(y)-327(b)-28(e)-327(a)-327(scalar,)-328(or)-326(a)-327(rank)]TJ 0 -11.955 Td [(1)-333(or)-334(2)-333(arra)28(y)83(.)-778(T)28(yp)-28(e,)-333(kind,)-333(rank)-333(and)-334(size)-333(m)28(ust)-334(agree)-333(on)-333(all)-334(pro)-27(cess)-1(es.)]TJ +/F8 9.9626 Tf 21.371 0 Td [(On)-333(the)-334(ro)-27(ot)-334(pro)-27(ces)-1(s,)-333(the)-333(data)-334(to)-333(b)-28(e)-333(broadcast.)]TJ 3.536 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.378 0 Td [(global)]TJ/F8 9.9626 Tf 29.756 0 Td [(.)]TJ -62.134 -11.956 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf 41.898 0 Td [(.)]TJ -71.509 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.485 0 Td [(inout)]TJ/F8 9.9626 Tf 26.097 0 Td [(.)]TJ -59.582 -11.955 Td [(Sp)-28(eci\014ed)-339(as:)-458(an)-339(in)28(tege)-1(r,)-341(real)-339(or)-340(complex)-340(v)56(ariable,)-342(whic)28(h)-339(m)-1(a)28(y)-339(b)-28(e)-340(a)-340(scalar,)]TJ 0 -11.955 Td [(or)-403(a)-403(rank)-404(1)-403(or)-403(2)-403(arra)28(y)83(,)-421(or)-403(a)-403(c)28(haracter)-404(or)-403(logical)-403(v)56(ariable,)-421(whic)28(h)-403(ma)27(y)-403(b)-28(e)]TJ 0 -11.955 Td [(a)-426(s)-1(calar)-426(or)-426(rank)-427(1)-426(arra)27(y)84(.)-1151(T)28(yp)-28(e,)-449(kind,)-450(rank)-427(and)-426(size)-427(m)28(ust)-426(agree)-427(on)-426(all)]TJ 0 -11.955 Td [(pro)-28(cesses.)]TJ 0 g 0 G -/F27 9.9626 Tf -24.907 -19.925 Td [(ro)-32(ot)]TJ +/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)-305(to)-306(hold)-305(the)-305(\014nal)-305(maxim)27(um,)-311(or)]TJ/F14 9.9626 Tf 169.157 0 Td [(\000)]TJ/F8 9.9626 Tf 7.749 0 Td [(1)-305(to)-306(mak)28(e)-305(it)-306(a)28(v)56(ailable)-306(on)-305(all)-305(pro-)]TJ -177.93 -11.956 Td [(cesses.)]TJ 0 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(global)]TJ/F8 9.9626 Tf 29.756 0 Td [(.)]TJ -62.135 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(optional)]TJ/F8 9.9626 Tf 40.577 0 Td [(.)]TJ -70.188 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(in)28(teger)-333(v)55(alue)]TJ/F14 9.9626 Tf 130.428 0 Td [(\000)]TJ/F8 9.9626 Tf 7.749 0 Td [(1)]TJ/F11 9.9626 Tf 7.748 0 Td [(<)]TJ/F8 9.9626 Tf 7.749 0 Td [(=)]TJ/F11 9.9626 Tf 10.516 0 Td [(r)-28(oot)-278(<)]TJ/F8 9.9626 Tf 28.543 0 Td [(=)]TJ/F11 9.9626 Tf 10.517 0 Td [(np)]TJ/F14 9.9626 Tf 13.206 0 Td [(\000)]TJ/F8 9.9626 Tf 9.962 0 Td [(1,)-333(default)-334(-1.)]TJ +/F8 9.9626 Tf 25.93 0 Td [(Ro)-28(ot)-333(pro)-28(cess)-333(holding)-334(data)-333(to)-333(b)-28(e)-333(broadcast.)]TJ -1.023 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.378 0 Td [(global)]TJ/F8 9.9626 Tf 29.756 0 Td [(.)]TJ -62.134 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(optional)]TJ/F8 9.9626 Tf 40.577 0 Td [(.)]TJ -70.188 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.485 0 Td [(in)]TJ/F8 9.9626 Tf 9.548 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-444(an)-334(in)28(teger)-333(v)55(alue)-333(0)]TJ/F11 9.9626 Tf 138.176 0 Td [(<)]TJ/F8 9.9626 Tf 7.749 0 Td [(=)]TJ/F11 9.9626 Tf 10.516 0 Td [(r)-28(oot)-278(<)]TJ/F8 9.9626 Tf 28.543 0 Td [(=)]TJ/F11 9.9626 Tf 10.516 0 Td [(np)]TJ/F14 9.9626 Tf 13.207 0 Td [(\000)]TJ/F8 9.9626 Tf 9.962 0 Td [(1,)-333(default)-334(0)]TJ 0 g 0 G -/F27 9.9626 Tf -251.325 -33.873 Td [(On)-383(Return)]TJ +/F27 9.9626 Tf -243.576 -21.918 Td [(On)-383(Return)]TJ 0 g 0 G 0 g 0 G 0 -19.926 Td [(dat)]TJ 0 g 0 G -/F8 9.9626 Tf 21.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 [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-326(as)-1(:)-441(an)-326(in)27(teger)-326(or)-327(real)-327(v)56(ariable,)-328(whic)28(h)-327(ma)28(y)-327(b)-28(e)-327(a)-327(scalar,)-328(or)-326(a)-327(rank)]TJ 0 -11.955 Td [(1)-333(or)-334(2)-333(arra)28(y)83(.)-778(T)28(yp)-28(e,)-333(kind,)-333(rank)-333(and)-334(size)-333(m)28(ust)-334(agree)-333(on)-333(all)-334(pro)-27(cess)-1(es.)]TJ/F16 11.9552 Tf -24.907 -21.918 Td [(Notes)]TJ -0 g 0 G -/F8 9.9626 Tf 12.177 -19.925 Td [(1.)]TJ -0 g 0 G - [-500(The)]TJ/F30 9.9626 Tf 32.469 0 Td [(dat)]TJ/F8 9.9626 Tf 18.273 0 Td [(argumen)28(t)-259(is)-259(b)-28(oth)-259(input)-259(and)-259(output,)-274(and)-259(its)-259(v)55(alue)-259(ma)28(y)-259(b)-28(e)-259(c)28(hanged)]TJ -38.012 -11.956 Td [(ev)28(en)-334(on)-333(pro)-28(cesses)-333(di\013eren)28(t)-334(from)-333(the)-333(\014nal)-334(result)-333(destination.)]TJ -0 g 0 G - -12.73 -19.925 Td [(2.)]TJ -0 g 0 G - [-500(The)]TJ/F30 9.9626 Tf 33.209 0 Td [(dat)]TJ/F8 9.9626 Tf 19.012 0 Td [(argumen)28(t)-333(m)-1(a)28(y)-333(also)-333(b)-28(e)-334(a)-333(long)-333(in)28(teger)-334(scalar.)]TJ +/F8 9.9626 Tf 21.371 0 Td [(On)-333(pro)-28(cesses)-334(other)-333(than)-333(ro)-28(ot,)-333(the)-334(dat)1(a)-334(to)-333(b)-28(e)-333(broadcast.)]TJ 3.536 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.378 0 Td [(global)]TJ/F8 9.9626 Tf 29.757 0 Td [(.)]TJ -62.135 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf 41.898 0 Td [(.)]TJ -71.509 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.485 0 Td [(inout)]TJ/F8 9.9626 Tf 26.097 0 Td [(.)]TJ -59.582 -11.955 Td [(Sp)-28(eci\014ed)-339(as:)-458(an)-339(in)28(tege)-1(r,)-341(real)-339(or)-340(complex)-340(v)56(ariable,)-342(whic)28(h)-339(m)-1(a)28(y)-339(b)-28(e)-340(a)-340(scalar,)]TJ 0 -11.955 Td [(or)-346(a)-346(rank)-347(1)-346(or)-346(2)-346(arra)28(y)83(,)-349(or)-347(a)-346(c)28(haracter)-346(or)-346(logical)-347(scalar.)-829(T)28(yp)-28(e,)-349(kind,)-350(rank)]TJ 0 -11.956 Td [(and)-333(size)-334(m)28(ust)-333(agree)-334(on)-333(all)-333(pro)-28(cesses.)]TJ 0 g 0 G - 99.986 -109.132 Td [(109)]TJ + 139.477 -170.9 Td [(108)]TJ 0 g 0 G ET @@ -18482,23 +18480,23 @@ endstream endobj 1544 0 obj << -/Length 5183 +/Length 5146 >> stream 0 g 0 G 0 g 0 G BT -/F16 11.9552 Tf 150.705 706.129 Td [(psb)]TJ +/F16 11.9552 Tf 99.895 706.129 Td [(psb)]TJ ET q -1 0 0 1 171.761 706.328 cm +1 0 0 1 120.951 706.328 cm []0 d 0 J 0.398 w 0 0 m 4.035 0 l S Q BT -/F16 11.9552 Tf 175.796 706.129 Td [(min)-375(|)-375(Global)-375(minim)31(um)]TJ +/F16 11.9552 Tf 124.986 706.129 Td [(sum)-375(|)-375(Global)-375(sum)]TJ 0 g 0 G 0 g 0 G -/F30 9.9626 Tf -25.091 -18.389 Td [(call)-525(psb_min\050icontxt,)-525(dat,)-525(root\051)]TJ/F8 9.9626 Tf 14.944 -21.918 Td [(This)-311(subroutine)-312(implemen)28(ts)-311(a)-312(minim)28(um)-311(v)55(alue)-311(reduction)-312(op)-27(eration)-312(based)-311(on)]TJ -14.944 -11.955 Td [(the)-333(underlying)-333(com)-1(m)28(unication)-333(library)83(.)]TJ +/F30 9.9626 Tf -25.091 -18.389 Td [(call)-525(psb_sum\050icontxt,)-525(dat,)-525(root\051)]TJ/F8 9.9626 Tf 14.944 -21.918 Td [(This)-318(subroutine)-319(implemen)28(ts)-318(a)-319(sum)-318(reduction)-318(op)-28(eration)-318(based)-319(on)-318(the)-318(under-)]TJ -14.944 -11.955 Td [(lying)-333(comm)27(unication)-333(library)84(.)]TJ 0 g 0 G /F27 9.9626 Tf 0 -19.926 Td [(T)32(yp)-32(e:)]TJ 0 g 0 G @@ -18509,245 +18507,255 @@ BT 0 g 0 G 0 -19.925 Td [(icon)32(txt)]TJ 0 g 0 G -/F8 9.9626 Tf 39.989 0 Td [(the)-333(comm)27(unication)-333(con)28(text)-333(iden)27(tifyi)1(ng)-334(the)-333(virtual)-333(parallel)-334(mac)28(hine.)]TJ -15.082 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.378 0 Td [(global)]TJ/F8 9.9626 Tf 29.756 0 Td [(.)]TJ -62.134 -11.956 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf 41.898 0 Td [(.)]TJ -71.509 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.485 0 Td [(in)]TJ/F8 9.9626 Tf 9.548 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-444(an)-334(in)28(teger)-333(v)55(ariable.)]TJ +/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)-333(c)-1(on)28(tribution)-333(to)-333(the)-334(gl)1(obal)-334(minim)28(um.)]TJ 3.536 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.378 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf 23.073 0 Td [(.)]TJ -55.451 -11.956 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf 41.898 0 Td [(.)]TJ -71.509 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.485 0 Td [(inout)]TJ/F8 9.9626 Tf 26.097 0 Td [(.)]TJ -59.582 -11.955 Td [(Sp)-28(eci\014ed)-326(as:)-442(an)-326(in)27(teger)-326(or)-327(real)-327(v)56(ariable,)-328(whic)28(h)-327(ma)28(y)-327(b)-28(e)-327(a)-326(s)-1(calar,)-328(or)-326(a)-327(rank)]TJ 0 -11.955 Td [(1)-333(or)-334(2)-333(arra)28(y)83(.)-778(T)28(yp)-27(e)-1(,)-333(kind,)-333(rank)-333(and)-334(size)-333(m)28(ust)-334(agree)-333(on)-333(all)-334(pro)-27(cesse)-1(s.)]TJ +/F8 9.9626 Tf 21.371 0 Td [(The)-333(lo)-28(cal)-334(con)28(tribution)-333(to)-333(the)-334(global)-333(sum.)]TJ 3.536 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(global)]TJ/F8 9.9626 Tf 29.756 0 Td [(.)]TJ -62.135 -11.956 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf 41.898 0 Td [(.)]TJ -71.509 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(inout)]TJ/F8 9.9626 Tf 26.096 0 Td [(.)]TJ -59.582 -11.955 Td [(Sp)-28(eci\014ed)-339(as:)-458(an)-339(in)28(te)-1(ger,)-341(real)-340(or)-339(complex)-340(v)56(ariable,)-342(whic)28(h)-340(ma)28(y)-339(b)-28(e)-340(a)-340(scalar,)]TJ 0 -11.955 Td [(or)-464(a)-464(rank)-463(1)-464(or)-464(2)-464(arra)28(y)83(.)-1299(T)28(yp)-28(e,)-497(kind,)-496(rank)-464(and)-463(size)-464(m)27(ust)-463(agree)-464(on)-464(all)]TJ 0 -11.955 Td [(pro)-28(cesses.)]TJ 0 g 0 G -/F27 9.9626 Tf -24.907 -19.925 Td [(ro)-32(ot)]TJ +/F27 9.9626 Tf -24.907 -19.926 Td [(ro)-32(ot)]TJ 0 g 0 G -/F8 9.9626 Tf 25.93 0 Td [(Pro)-28(cess)-276(to)-276(hold)-276(the)-276(\014nal)-276(v)56(alue,)-287(or)]TJ/F14 9.9626 Tf 146.411 0 Td [(\000)]TJ/F8 9.9626 Tf 7.749 0 Td [(1)-276(to)-276(mak)28(e)-276(it)-276(a)28(v)55(ailable)-276(on)-276(all)-276(pr)1(o)-28(cesses)-1(.)]TJ -155.183 -11.956 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.378 0 Td [(global)]TJ/F8 9.9626 Tf 29.756 0 Td [(.)]TJ -62.134 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(optional)]TJ/F8 9.9626 Tf 40.577 0 Td [(.)]TJ -70.188 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.485 0 Td [(in)]TJ/F8 9.9626 Tf 9.548 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-444(an)-334(in)28(teger)-333(v)55(alue)]TJ/F14 9.9626 Tf 130.427 0 Td [(\000)]TJ/F8 9.9626 Tf 7.749 0 Td [(1)]TJ/F11 9.9626 Tf 7.749 0 Td [(<)]TJ/F8 9.9626 Tf 7.748 0 Td [(=)]TJ/F11 9.9626 Tf 10.517 0 Td [(r)-28(oot)-278(<)]TJ/F8 9.9626 Tf 28.543 0 Td [(=)]TJ/F11 9.9626 Tf 10.516 0 Td [(np)]TJ/F14 9.9626 Tf 13.206 0 Td [(\000)]TJ/F8 9.9626 Tf 9.963 0 Td [(1,)-333(default)-334(-1.)]TJ +/F8 9.9626 Tf 25.931 0 Td [(Pro)-28(cess)-310(to)-309(hold)-310(the)-310(\014nal)-310(sum,)-314(or)]TJ/F14 9.9626 Tf 144.053 0 Td [(\000)]TJ/F8 9.9626 Tf 7.748 0 Td [(1)-310(to)-310(mak)28(e)-310(it)-309(a)27(v)56(ailable)-310(on)-310(all)-309(pro)-28(cesses.)]TJ -152.825 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(global)]TJ/F8 9.9626 Tf 29.756 0 Td [(.)]TJ -62.135 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(optional)]TJ/F8 9.9626 Tf 40.577 0 Td [(.)]TJ -70.188 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(in)28(teger)-333(v)55(alue)]TJ/F14 9.9626 Tf 130.428 0 Td [(\000)]TJ/F8 9.9626 Tf 7.749 0 Td [(1)]TJ/F11 9.9626 Tf 7.748 0 Td [(<)]TJ/F8 9.9626 Tf 7.749 0 Td [(=)]TJ/F11 9.9626 Tf 10.516 0 Td [(r)-28(oot)-278(<)]TJ/F8 9.9626 Tf 28.543 0 Td [(=)]TJ/F11 9.9626 Tf 10.517 0 Td [(np)]TJ/F14 9.9626 Tf 13.206 0 Td [(\000)]TJ/F8 9.9626 Tf 9.962 0 Td [(1,)-333(default)-334(-1.)]TJ 0 g 0 G -/F27 9.9626 Tf -251.325 -33.873 Td [(On)-383(Return)]TJ +/F27 9.9626 Tf -251.325 -21.918 Td [(On)-383(Return)]TJ 0 g 0 G 0 g 0 G 0 -19.925 Td [(dat)]TJ 0 g 0 G -/F8 9.9626 Tf 21.371 0 Td [(On)-333(destination)-334(p)1(ro)-28(cess\050es)-1(\051)1(,)-334(the)-333(result)-333(of)-334(the)-333(minim)28(um)-334(op)-27(eration.)]TJ 3.536 -11.956 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.378 0 Td [(global)]TJ/F8 9.9626 Tf 29.757 0 Td [(.)]TJ -62.135 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf 41.898 0 Td [(.)]TJ -71.509 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.485 0 Td [(inout)]TJ/F8 9.9626 Tf 26.097 0 Td [(.)]TJ -59.582 -11.955 Td [(Sp)-28(eci\014ed)-326(as:)-442(an)-326(in)27(teger)-326(or)-327(real)-327(v)56(ariable,)-328(whic)28(h)-327(ma)28(y)-327(b)-28(e)-327(a)-326(s)-1(calar,)-328(or)-326(a)-327(rank)]TJ 0 -11.955 Td [(1)-333(or)-334(2)-333(arra)28(y)83(.)]TJ 0 -11.955 Td [(T)28(yp)-28(e,)-333(kind,)-333(rank)-334(and)-333(size)-333(m)27(ust)-333(agree)-333(on)-334(all)-333(pro)-28(cesses.)]TJ/F16 11.9552 Tf -24.907 -21.918 Td [(Notes)]TJ +/F8 9.9626 Tf 21.372 0 Td [(On)-333(destination)-333(pro)-28(cess\050es\051,)-334(the)-333(result)-333(of)-334(the)-333(sum)-333(op)-28(eration.)]TJ 3.535 -11.956 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(global)]TJ/F8 9.9626 Tf 29.756 0 Td [(.)]TJ -62.135 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf 41.899 0 Td [(.)]TJ -71.51 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(inout)]TJ/F8 9.9626 Tf 26.096 0 Td [(.)]TJ -59.582 -11.955 Td [(Sp)-28(eci\014ed)-339(as:)-458(an)-339(in)28(te)-1(ger,)-341(real)-340(or)-339(complex)-340(v)56(ariable,)-342(whic)28(h)-340(ma)28(y)-339(b)-28(e)-340(a)-340(scalar,)]TJ 0 -11.955 Td [(or)-333(a)-334(rank)-333(1)-333(or)-334(2)-333(arra)28(y)83(.)]TJ 0 -11.955 Td [(T)28(yp)-28(e,)-333(kind,)-334(r)1(ank)-334(and)-333(size)-333(m)27(ust)-333(agree)-333(on)-334(all)-333(pro)-28(cesses.)]TJ/F16 11.9552 Tf -24.907 -21.918 Td [(Notes)]TJ 0 g 0 G /F8 9.9626 Tf 12.177 -19.925 Td [(1.)]TJ 0 g 0 G - [-500(The)]TJ/F30 9.9626 Tf 32.469 0 Td [(dat)]TJ/F8 9.9626 Tf 18.272 0 Td [(argumen)28(t)-259(is)-259(b)-28(oth)-259(input)-259(and)-259(output,)-274(and)-259(its)-259(v)55(alue)-259(ma)28(y)-259(b)-28(e)-259(c)28(hanged)]TJ -38.011 -11.956 Td [(ev)28(en)-334(on)-333(pro)-28(cesses)-333(di\013eren)28(t)-334(from)-333(the)-333(\014nal)-334(result)-333(destination.)]TJ + [-500(The)]TJ/F30 9.9626 Tf 32.469 0 Td [(dat)]TJ/F8 9.9626 Tf 18.273 0 Td [(argumen)28(t)-259(is)-259(b)-28(oth)-259(input)-259(and)-259(output,)-274(and)-259(its)-259(v)55(alue)-259(ma)28(y)-259(b)-28(e)-259(c)28(hanged)]TJ -38.012 -11.956 Td [(ev)28(en)-334(on)-333(pro)-28(cesses)-333(di\013eren)28(t)-334(from)-333(the)-333(\014nal)-334(result)-333(destination.)]TJ 0 g 0 G -12.73 -19.925 Td [(2.)]TJ 0 g 0 G - [-500(The)]TJ/F30 9.9626 Tf 33.208 0 Td [(dat)]TJ/F8 9.9626 Tf 19.012 0 Td [(argumen)28(t)-334(ma)28(y)-333(also)-334(b)-27(e)-334(a)-333(long)-333(in)28(teger)-334(scalar.)]TJ + [-500(The)]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.987 -109.132 Td [(110)]TJ + 99.986 -109.132 Td [(109)]TJ 0 g 0 G ET endstream endobj -1443 0 obj +1449 0 obj << /Type /ObjStm /N 100 -/First 969 -/Length 9352 +/First 971 +/Length 9474 >> stream -1441 0 1442 59 1437 118 1446 224 1444 363 1448 508 380 566 1445 623 1450 742 1452 860 -1453 919 1454 978 1455 1037 1449 1096 1460 1215 1456 1372 1457 1517 1458 1664 1462 1809 384 1867 -1459 1924 1464 2043 1466 2161 388 2220 1463 2278 1468 2397 1470 2515 1471 2573 1472 2631 1473 2689 -1474 2747 1475 2805 1476 2863 1477 2920 1478 2978 1479 3036 1467 3094 1482 3212 1484 3330 392 3389 -1481 3447 1486 3527 1488 3645 396 3703 1489 3760 1490 3818 1485 3876 1492 4008 1494 4126 400 4185 -1495 4243 1496 4301 1491 4360 1498 4492 1500 4610 405 4668 1501 4725 1502 4783 1503 4841 1497 4899 -1505 5031 1507 5149 409 5208 1504 5266 1509 5372 1511 5490 413 5548 1508 5605 1514 5737 1516 5855 -417 5914 1513 5972 1518 6078 1520 6196 421 6254 1517 6311 1522 6417 1524 6535 425 6594 1521 6652 -1526 6758 1528 6876 429 6934 1525 6991 1530 7123 1532 7241 433 7300 1533 7358 1534 7417 1529 7476 -1536 7608 1538 7726 437 7784 1539 7841 1540 7899 1535 7957 1543 8089 1545 8207 441 8266 1546 8324 -% 1441 0 obj +1444 0 1442 139 1446 284 376 343 1447 401 1448 460 1443 519 1452 625 1450 764 1454 910 +380 968 1455 1025 1456 1083 1451 1141 1459 1247 1457 1386 1461 1530 384 1589 1458 1647 1463 1766 +1465 1884 1466 1942 1467 2000 1468 2058 1462 2116 1473 2235 1469 2392 1470 2536 1471 2682 1475 2827 +388 2886 1472 2944 1477 3063 1479 3181 392 3239 1476 3296 1482 3415 1484 3533 1485 3592 1486 3651 +1487 3710 1488 3769 1489 3828 1490 3887 1491 3945 1492 4004 1493 4063 1481 4122 1495 4240 1497 4358 +396 4416 1494 4473 1499 4553 1501 4671 400 4730 1502 4788 1503 4847 1498 4906 1505 5038 1507 5156 +405 5214 1508 5271 1509 5328 1504 5386 1511 5518 1513 5636 409 5695 1514 5753 1515 5812 1516 5871 +1510 5930 1518 6062 1520 6180 413 6238 1517 6295 1523 6401 1525 6519 417 6578 1522 6636 1527 6768 +1529 6886 421 6944 1526 7001 1531 7107 1533 7225 425 7284 1530 7342 1535 7448 1537 7566 429 7624 +1534 7681 1539 7787 1541 7905 433 7964 1538 8022 1543 8154 1545 8272 437 8330 1546 8387 1547 8445 +% 1444 0 obj << -/D [1438 0 R /XYZ 150.705 370.928 null] +/Type /Page +/Contents 1445 0 R +/Resources 1443 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1441 0 R +/Annots [ 1442 0 R ] >> % 1442 0 obj << -/D [1438 0 R /XYZ 150.705 339.047 null] ->> -% 1437 0 obj -<< -/Font << /F16 550 0 R /F30 759 0 R /F27 552 0 R /F8 553 0 R >> -/ProcSet [ /PDF /Text ] +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [345.53 574.94 412.588 586.065] +/A << /S /GoTo /D (descdata) >> >> % 1446 0 obj << -/Type /Page -/Contents 1447 0 R -/Resources 1445 0 R -/MediaBox [0 0 595.276 841.89] -/Parent 1435 0 R -/Annots [ 1444 0 R ] +/D [1444 0 R /XYZ 149.705 753.953 null] >> -% 1444 0 obj +% 376 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) >> +/D [1444 0 R /XYZ 150.705 720.077 null] >> -% 1448 0 obj +% 1447 0 obj << -/D [1446 0 R /XYZ 98.895 753.953 null] +/D [1444 0 R /XYZ 150.705 370.928 null] >> -% 380 0 obj +% 1448 0 obj << -/D [1446 0 R /XYZ 99.895 720.077 null] +/D [1444 0 R /XYZ 150.705 327.092 null] >> -% 1445 0 obj +% 1443 0 obj << -/Font << /F16 550 0 R /F30 759 0 R /F27 552 0 R /F8 553 0 R /F11 745 0 R >> +/Font << /F16 554 0 R /F30 764 0 R /F27 556 0 R /F8 557 0 R >> /ProcSet [ /PDF /Text ] >> -% 1450 0 obj +% 1452 0 obj << /Type /Page -/Contents 1451 0 R -/Resources 1449 0 R +/Contents 1453 0 R +/Resources 1451 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1435 0 R +/Parent 1441 0 R +/Annots [ 1450 0 R ] >> -% 1452 0 obj +% 1450 0 obj << -/D [1450 0 R /XYZ 149.705 753.953 null] +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [294.721 574.94 361.779 586.065] +/A << /S /GoTo /D (descdata) >> >> -% 1453 0 obj +% 1454 0 obj << -/D [1450 0 R /XYZ 150.705 496.913 null] +/D [1452 0 R /XYZ 98.895 753.953 null] >> -% 1454 0 obj +% 380 0 obj << -/D [1450 0 R /XYZ 150.705 439.185 null] +/D [1452 0 R /XYZ 99.895 720.077 null] >> % 1455 0 obj << -/D [1450 0 R /XYZ 150.705 418.983 null] +/D [1452 0 R /XYZ 99.895 370.928 null] +>> +% 1456 0 obj +<< +/D [1452 0 R /XYZ 99.895 339.047 null] >> -% 1449 0 obj +% 1451 0 obj << -/Font << /F27 552 0 R /F8 553 0 R /F30 759 0 R /F16 550 0 R /F11 745 0 R >> +/Font << /F16 554 0 R /F30 764 0 R /F27 556 0 R /F8 557 0 R >> /ProcSet [ /PDF /Text ] >> -% 1460 0 obj +% 1459 0 obj << /Type /Page -/Contents 1461 0 R -/Resources 1459 0 R +/Contents 1460 0 R +/Resources 1458 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1435 0 R -/Annots [ 1456 0 R 1457 0 R 1458 0 R ] ->> -% 1456 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [294.721 529.112 372.239 540.237] -/A << /S /GoTo /D (spdata) >> +/Parent 1441 0 R +/Annots [ 1457 0 R ] >> % 1457 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [294.721 461.366 361.779 472.491] -/A << /S /GoTo /D (descdata) >> ->> -% 1458 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [321.343 405.575 388.401 416.7] -/A << /S /GoTo /D (precdata) >> +/Rect [345.53 492.904 423.049 504.029] +/A << /S /GoTo /D (spdata) >> >> -% 1462 0 obj +% 1461 0 obj << -/D [1460 0 R /XYZ 98.895 753.953 null] +/D [1459 0 R /XYZ 149.705 753.953 null] >> % 384 0 obj << -/D [1460 0 R /XYZ 99.895 720.077 null] +/D [1459 0 R /XYZ 150.705 720.077 null] >> -% 1459 0 obj +% 1458 0 obj << -/Font << /F16 550 0 R /F8 553 0 R /F30 759 0 R /F27 552 0 R /F11 745 0 R >> +/Font << /F16 554 0 R /F30 764 0 R /F27 556 0 R /F8 557 0 R /F11 750 0 R >> /ProcSet [ /PDF /Text ] >> -% 1464 0 obj +% 1463 0 obj << /Type /Page -/Contents 1465 0 R -/Resources 1463 0 R +/Contents 1464 0 R +/Resources 1462 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1435 0 R +/Parent 1441 0 R >> -% 1466 0 obj +% 1465 0 obj << -/D [1464 0 R /XYZ 149.705 753.953 null] +/D [1463 0 R /XYZ 98.895 753.953 null] >> -% 388 0 obj +% 1466 0 obj << -/D [1464 0 R /XYZ 150.705 720.077 null] +/D [1463 0 R /XYZ 99.895 496.913 null] >> -% 1463 0 obj +% 1467 0 obj << -/Font << /F16 550 0 R /F30 759 0 R /F8 553 0 R /F11 745 0 R /F27 552 0 R >> -/ProcSet [ /PDF /Text ] +/D [1463 0 R /XYZ 99.895 439.185 null] >> % 1468 0 obj << -/Type /Page -/Contents 1469 0 R -/Resources 1467 0 R -/MediaBox [0 0 595.276 841.89] -/Parent 1480 0 R +/D [1463 0 R /XYZ 99.895 418.983 null] >> -% 1470 0 obj +% 1462 0 obj << -/D [1468 0 R /XYZ 98.895 753.953 null] +/Font << /F27 556 0 R /F8 557 0 R /F30 764 0 R /F16 554 0 R /F11 750 0 R >> +/ProcSet [ /PDF /Text ] >> -% 1471 0 obj +% 1473 0 obj << -/D [1468 0 R /XYZ 99.895 702.144 null] +/Type /Page +/Contents 1474 0 R +/Resources 1472 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1441 0 R +/Annots [ 1469 0 R 1470 0 R 1471 0 R ] >> -% 1472 0 obj +% 1469 0 obj << -/D [1468 0 R /XYZ 99.895 668.326 null] +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [345.53 529.112 423.049 540.237] +/A << /S /GoTo /D (spdata) >> >> -% 1473 0 obj +% 1470 0 obj << -/D [1468 0 R /XYZ 99.895 624.491 null] +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [345.53 461.366 412.588 472.491] +/A << /S /GoTo /D (descdata) >> >> -% 1474 0 obj +% 1471 0 obj << -/D [1468 0 R /XYZ 99.895 556.745 null] +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [372.153 405.575 439.211 416.7] +/A << /S /GoTo /D (precdata) >> >> % 1475 0 obj << -/D [1468 0 R /XYZ 99.895 500.954 null] +/D [1473 0 R /XYZ 149.705 753.953 null] >> -% 1476 0 obj +% 388 0 obj << -/D [1468 0 R /XYZ 99.895 468.52 null] +/D [1473 0 R /XYZ 150.705 720.077 null] >> -% 1477 0 obj +% 1472 0 obj << -/D [1468 0 R /XYZ 99.895 425.182 null] +/Font << /F16 554 0 R /F8 557 0 R /F30 764 0 R /F27 556 0 R /F11 750 0 R >> +/ProcSet [ /PDF /Text ] >> -% 1478 0 obj +% 1477 0 obj << -/D [1468 0 R /XYZ 99.895 383.395 null] +/Type /Page +/Contents 1478 0 R +/Resources 1476 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1480 0 R >> % 1479 0 obj << -/D [1468 0 R /XYZ 99.895 355.499 null] +/D [1477 0 R /XYZ 98.895 753.953 null] >> -% 1467 0 obj +% 392 0 obj << -/Font << /F16 550 0 R /F8 553 0 R /F11 745 0 R /F14 762 0 R /F7 760 0 R >> +/D [1477 0 R /XYZ 99.895 720.077 null] +>> +% 1476 0 obj +<< +/Font << /F16 554 0 R /F30 764 0 R /F8 557 0 R /F11 750 0 R /F27 556 0 R >> /ProcSet [ /PDF /Text ] >> % 1482 0 obj @@ -18762,104 +18770,95 @@ stream << /D [1482 0 R /XYZ 149.705 753.953 null] >> -% 392 0 obj -<< -/D [1482 0 R /XYZ 150.705 716.092 null] ->> -% 1481 0 obj +% 1485 0 obj << -/Font << /F16 550 0 R /F8 553 0 R >> -/ProcSet [ /PDF /Text ] +/D [1482 0 R /XYZ 150.705 702.144 null] >> % 1486 0 obj << -/Type /Page -/Contents 1487 0 R -/Resources 1485 0 R -/MediaBox [0 0 595.276 841.89] -/Parent 1480 0 R +/D [1482 0 R /XYZ 150.705 668.326 null] >> -% 1488 0 obj +% 1487 0 obj << -/D [1486 0 R /XYZ 98.895 753.953 null] +/D [1482 0 R /XYZ 150.705 624.491 null] >> -% 396 0 obj +% 1488 0 obj << -/D [1486 0 R /XYZ 99.895 720.077 null] +/D [1482 0 R /XYZ 150.705 556.745 null] >> % 1489 0 obj << -/D [1486 0 R /XYZ 99.895 235.436 null] +/D [1482 0 R /XYZ 150.705 500.954 null] >> % 1490 0 obj << -/D [1486 0 R /XYZ 99.895 213.573 null] +/D [1482 0 R /XYZ 150.705 468.52 null] >> -% 1485 0 obj +% 1491 0 obj << -/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 ] +/D [1482 0 R /XYZ 150.705 425.182 null] >> % 1492 0 obj << -/Type /Page -/Contents 1493 0 R -/Resources 1491 0 R -/MediaBox [0 0 595.276 841.89] -/Parent 1480 0 R +/D [1482 0 R /XYZ 150.705 383.395 null] >> -% 1494 0 obj +% 1493 0 obj << -/D [1492 0 R /XYZ 149.705 753.953 null] +/D [1482 0 R /XYZ 150.705 355.499 null] >> -% 400 0 obj +% 1481 0 obj << -/D [1492 0 R /XYZ 150.705 720.077 null] +/Font << /F16 554 0 R /F8 557 0 R /F11 750 0 R /F14 767 0 R /F7 765 0 R >> +/ProcSet [ /PDF /Text ] >> % 1495 0 obj << -/D [1492 0 R /XYZ 150.705 349.01 null] +/Type /Page +/Contents 1496 0 R +/Resources 1494 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1480 0 R +>> +% 1497 0 obj +<< +/D [1495 0 R /XYZ 98.895 753.953 null] >> -% 1496 0 obj +% 396 0 obj << -/D [1492 0 R /XYZ 150.705 315.192 null] +/D [1495 0 R /XYZ 99.895 716.092 null] >> -% 1491 0 obj +% 1494 0 obj << -/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 >> +/Font << /F16 554 0 R /F8 557 0 R >> /ProcSet [ /PDF /Text ] >> -% 1498 0 obj +% 1499 0 obj << /Type /Page -/Contents 1499 0 R -/Resources 1497 0 R +/Contents 1500 0 R +/Resources 1498 0 R /MediaBox [0 0 595.276 841.89] /Parent 1480 0 R >> -% 1500 0 obj -<< -/D [1498 0 R /XYZ 98.895 753.953 null] ->> -% 405 0 obj +% 1501 0 obj << -/D [1498 0 R /XYZ 99.895 720.077 null] +/D [1499 0 R /XYZ 149.705 753.953 null] >> -% 1501 0 obj +% 400 0 obj << -/D [1498 0 R /XYZ 99.895 442.659 null] +/D [1499 0 R /XYZ 150.705 720.077 null] >> % 1502 0 obj << -/D [1498 0 R /XYZ 99.895 396.886 null] +/D [1499 0 R /XYZ 150.705 235.436 null] >> % 1503 0 obj << -/D [1498 0 R /XYZ 99.895 365.005 null] +/D [1499 0 R /XYZ 150.705 213.573 null] >> -% 1497 0 obj +% 1498 0 obj << -/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 >> +/Font << /F16 554 0 R /F30 764 0 R /F8 557 0 R /F27 556 0 R /F11 750 0 R /F14 767 0 R >> /ProcSet [ /PDF /Text ] >> % 1505 0 obj @@ -18872,57 +18871,56 @@ stream >> % 1507 0 obj << -/D [1505 0 R /XYZ 149.705 753.953 null] +/D [1505 0 R /XYZ 98.895 753.953 null] >> -% 409 0 obj +% 405 0 obj << -/D [1505 0 R /XYZ 150.705 720.077 null] +/D [1505 0 R /XYZ 99.895 720.077 null] >> -% 1504 0 obj +% 1508 0 obj << -/Font << /F16 550 0 R /F30 759 0 R /F8 553 0 R /F27 552 0 R >> -/ProcSet [ /PDF /Text ] +/D [1505 0 R /XYZ 99.895 349.01 null] >> % 1509 0 obj << -/Type /Page -/Contents 1510 0 R -/Resources 1508 0 R -/MediaBox [0 0 595.276 841.89] -/Parent 1512 0 R +/D [1505 0 R /XYZ 99.895 315.192 null] +>> +% 1504 0 obj +<< +/Font << /F16 554 0 R /F30 764 0 R /F8 557 0 R /F27 556 0 R /F14 767 0 R /F11 750 0 R >> +/ProcSet [ /PDF /Text ] >> % 1511 0 obj << -/D [1509 0 R /XYZ 98.895 753.953 null] +/Type /Page +/Contents 1512 0 R +/Resources 1510 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1480 0 R >> -% 413 0 obj +% 1513 0 obj << -/D [1509 0 R /XYZ 99.895 720.077 null] +/D [1511 0 R /XYZ 149.705 753.953 null] >> -% 1508 0 obj +% 409 0 obj << -/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 ] +/D [1511 0 R /XYZ 150.705 720.077 null] >> % 1514 0 obj << -/Type /Page -/Contents 1515 0 R -/Resources 1513 0 R -/MediaBox [0 0 595.276 841.89] -/Parent 1512 0 R +/D [1511 0 R /XYZ 150.705 442.659 null] >> -% 1516 0 obj +% 1515 0 obj << -/D [1514 0 R /XYZ 149.705 753.953 null] +/D [1511 0 R /XYZ 150.705 396.886 null] >> -% 417 0 obj +% 1516 0 obj << -/D [1514 0 R /XYZ 150.705 720.077 null] +/D [1511 0 R /XYZ 150.705 365.005 null] >> -% 1513 0 obj +% 1510 0 obj << -/Font << /F16 550 0 R /F30 759 0 R /F8 553 0 R /F27 552 0 R >> +/Font << /F16 554 0 R /F30 764 0 R /F8 557 0 R /F27 556 0 R /F11 750 0 R /F14 767 0 R >> /ProcSet [ /PDF /Text ] >> % 1518 0 obj @@ -18931,119 +18929,124 @@ stream /Contents 1519 0 R /Resources 1517 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1512 0 R +/Parent 1521 0 R >> % 1520 0 obj << /D [1518 0 R /XYZ 98.895 753.953 null] >> -% 421 0 obj +% 413 0 obj << /D [1518 0 R /XYZ 99.895 720.077 null] >> % 1517 0 obj << -/Font << /F16 550 0 R /F30 759 0 R /F8 553 0 R /F27 552 0 R >> +/Font << /F16 554 0 R /F30 764 0 R /F8 557 0 R /F27 556 0 R >> /ProcSet [ /PDF /Text ] >> -% 1522 0 obj +% 1523 0 obj << /Type /Page -/Contents 1523 0 R -/Resources 1521 0 R +/Contents 1524 0 R +/Resources 1522 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1512 0 R +/Parent 1521 0 R >> -% 1524 0 obj +% 1525 0 obj << -/D [1522 0 R /XYZ 149.705 753.953 null] +/D [1523 0 R /XYZ 149.705 753.953 null] >> -% 425 0 obj +% 417 0 obj << -/D [1522 0 R /XYZ 150.705 720.077 null] +/D [1523 0 R /XYZ 150.705 720.077 null] >> -% 1521 0 obj +% 1522 0 obj << -/Font << /F16 550 0 R /F30 759 0 R /F8 553 0 R /F27 552 0 R >> +/Font << /F16 554 0 R /F30 764 0 R /F8 557 0 R /F11 750 0 R /F27 556 0 R /F14 767 0 R >> /ProcSet [ /PDF /Text ] >> -% 1526 0 obj +% 1527 0 obj << /Type /Page -/Contents 1527 0 R -/Resources 1525 0 R +/Contents 1528 0 R +/Resources 1526 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1512 0 R +/Parent 1521 0 R >> -% 1528 0 obj +% 1529 0 obj << -/D [1526 0 R /XYZ 98.895 753.953 null] +/D [1527 0 R /XYZ 98.895 753.953 null] >> -% 429 0 obj +% 421 0 obj << -/D [1526 0 R /XYZ 99.895 720.077 null] +/D [1527 0 R /XYZ 99.895 720.077 null] >> -% 1525 0 obj +% 1526 0 obj << -/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 >> +/Font << /F16 554 0 R /F30 764 0 R /F8 557 0 R /F27 556 0 R >> /ProcSet [ /PDF /Text ] >> -% 1530 0 obj +% 1531 0 obj << /Type /Page -/Contents 1531 0 R -/Resources 1529 0 R +/Contents 1532 0 R +/Resources 1530 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1512 0 R +/Parent 1521 0 R +>> +% 1533 0 obj +<< +/D [1531 0 R /XYZ 149.705 753.953 null] >> -% 1532 0 obj +% 425 0 obj << -/D [1530 0 R /XYZ 149.705 753.953 null] +/D [1531 0 R /XYZ 150.705 720.077 null] >> -% 433 0 obj +% 1530 0 obj << -/D [1530 0 R /XYZ 150.705 720.077 null] +/Font << /F16 554 0 R /F30 764 0 R /F8 557 0 R /F27 556 0 R >> +/ProcSet [ /PDF /Text ] >> -% 1533 0 obj +% 1535 0 obj << -/D [1530 0 R /XYZ 150.705 247.391 null] +/Type /Page +/Contents 1536 0 R +/Resources 1534 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1521 0 R >> -% 1534 0 obj +% 1537 0 obj << -/D [1530 0 R /XYZ 150.705 213.573 null] +/D [1535 0 R /XYZ 98.895 753.953 null] >> -% 1529 0 obj +% 429 0 obj +<< +/D [1535 0 R /XYZ 99.895 720.077 null] +>> +% 1534 0 obj << -/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 >> +/Font << /F16 554 0 R /F30 764 0 R /F8 557 0 R /F27 556 0 R >> /ProcSet [ /PDF /Text ] >> -% 1536 0 obj +% 1539 0 obj << /Type /Page -/Contents 1537 0 R -/Resources 1535 0 R +/Contents 1540 0 R +/Resources 1538 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1541 0 R ->> -% 1538 0 obj -<< -/D [1536 0 R /XYZ 98.895 753.953 null] +/Parent 1521 0 R >> -% 437 0 obj -<< -/D [1536 0 R /XYZ 99.895 720.077 null] ->> -% 1539 0 obj +% 1541 0 obj << -/D [1536 0 R /XYZ 99.895 247.391 null] +/D [1539 0 R /XYZ 149.705 753.953 null] >> -% 1540 0 obj +% 433 0 obj << -/D [1536 0 R /XYZ 99.895 213.573 null] +/D [1539 0 R /XYZ 150.705 720.077 null] >> -% 1535 0 obj +% 1538 0 obj << -/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 >> +/Font << /F16 554 0 R /F30 764 0 R /F8 557 0 R /F27 556 0 R /F11 750 0 R /F14 767 0 R >> /ProcSet [ /PDF /Text ] >> % 1543 0 obj @@ -19052,26 +19055,90 @@ stream /Contents 1544 0 R /Resources 1542 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1541 0 R +/Parent 1548 0 R >> % 1545 0 obj << -/D [1543 0 R /XYZ 149.705 753.953 null] +/D [1543 0 R /XYZ 98.895 753.953 null] >> -% 441 0 obj +% 437 0 obj << -/D [1543 0 R /XYZ 150.705 720.077 null] +/D [1543 0 R /XYZ 99.895 720.077 null] >> % 1546 0 obj << -/D [1543 0 R /XYZ 150.705 247.391 null] +/D [1543 0 R /XYZ 99.895 247.391 null] +>> +% 1547 0 obj +<< +/D [1543 0 R /XYZ 99.895 213.573 null] >> endstream endobj -1551 0 obj +1552 0 obj << -/Length 5239 +/Length 5185 +>> +stream +0 g 0 G +0 g 0 G +BT +/F16 11.9552 Tf 150.705 706.129 Td [(psb)]TJ +ET +q +1 0 0 1 171.761 706.328 cm +[]0 d 0 J 0.398 w 0 0 m 4.035 0 l S +Q +BT +/F16 11.9552 Tf 175.796 706.129 Td [(max)-375(|)-375(Global)-375(maxim)31(um)]TJ +0 g 0 G +0 g 0 G +/F30 9.9626 Tf -25.091 -18.389 Td [(call)-525(psb_max\050icontxt,)-525(dat,)-525(root\051)]TJ/F8 9.9626 Tf 14.944 -21.918 Td [(This)-326(subroutine)-326(implemen)28(ts)-326(a)-326(maxim)27(um)-326(v)56(aluereduction)-326(op)-28(eration)-326(based)-326(on)]TJ -14.944 -11.955 Td [(the)-333(underlying)-333(com)-1(m)28(unication)-333(library)83(.)]TJ +0 g 0 G +/F27 9.9626 Tf 0 -19.926 Td [(T)32(yp)-32(e:)]TJ +0 g 0 G +/F8 9.9626 Tf 33.797 0 Td [(Sync)28(hronous.)]TJ +0 g 0 G +/F27 9.9626 Tf -33.797 -19.925 Td [(On)-383(En)32(try)]TJ +0 g 0 G +0 g 0 G + 0 -19.925 Td [(icon)32(txt)]TJ +0 g 0 G +/F8 9.9626 Tf 39.989 0 Td [(the)-333(comm)27(unication)-333(con)28(text)-333(iden)27(tifyi)1(ng)-334(the)-333(virtual)-333(parallel)-334(mac)28(hine.)]TJ -15.082 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.378 0 Td [(global)]TJ/F8 9.9626 Tf 29.756 0 Td [(.)]TJ -62.134 -11.956 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf 41.898 0 Td [(.)]TJ -71.509 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.485 0 Td [(in)]TJ/F8 9.9626 Tf 9.548 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-444(an)-334(in)28(teger)-333(v)55(ariable.)]TJ +0 g 0 G +/F27 9.9626 Tf -24.907 -19.925 Td [(dat)]TJ +0 g 0 G +/F8 9.9626 Tf 21.371 0 Td [(The)-333(lo)-28(cal)-333(c)-1(on)28(tribution)-333(to)-333(the)-334(gl)1(obal)-334(maxim)28(um.)]TJ 3.536 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.378 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf 23.073 0 Td [(.)]TJ -55.451 -11.956 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf 41.898 0 Td [(.)]TJ -71.509 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.485 0 Td [(inout)]TJ/F8 9.9626 Tf 26.097 0 Td [(.)]TJ -59.582 -11.955 Td [(Sp)-28(eci\014ed)-326(as:)-442(an)-326(in)27(teger)-326(or)-327(real)-327(v)56(ariable,)-328(whic)28(h)-327(ma)28(y)-327(b)-28(e)-327(a)-326(s)-1(calar,)-328(or)-326(a)-327(rank)]TJ 0 -11.955 Td [(1)-333(or)-334(2)-333(arra)28(y)83(.)-778(T)28(yp)-27(e)-1(,)-333(kind,)-333(rank)-333(and)-334(size)-333(m)28(ust)-334(agree)-333(on)-333(all)-334(pro)-27(cesse)-1(s.)]TJ +0 g 0 G +/F27 9.9626 Tf -24.907 -19.925 Td [(ro)-32(ot)]TJ +0 g 0 G +/F8 9.9626 Tf 25.93 0 Td [(Pro)-28(cess)-305(to)-306(hold)-305(the)-305(\014nal)-305(m)-1(ax)1(im)27(um,)-311(or)]TJ/F14 9.9626 Tf 169.158 0 Td [(\000)]TJ/F8 9.9626 Tf 7.749 0 Td [(1)-305(to)-306(mak)28(e)-305(it)-306(a)28(v)56(ailable)-306(on)-305(all)-305(pro-)]TJ -177.93 -11.956 Td [(cesses.)]TJ 0 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.378 0 Td [(global)]TJ/F8 9.9626 Tf 29.757 0 Td [(.)]TJ -62.135 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(optional)]TJ/F8 9.9626 Tf 40.577 0 Td [(.)]TJ -70.188 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.485 0 Td [(in)]TJ/F8 9.9626 Tf 9.548 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(in)28(teger)-333(v)55(alue)]TJ/F14 9.9626 Tf 130.427 0 Td [(\000)]TJ/F8 9.9626 Tf 7.749 0 Td [(1)]TJ/F11 9.9626 Tf 7.749 0 Td [(<)]TJ/F8 9.9626 Tf 7.749 0 Td [(=)]TJ/F11 9.9626 Tf 10.516 0 Td [(r)-28(oot)-278(<)]TJ/F8 9.9626 Tf 28.543 0 Td [(=)]TJ/F11 9.9626 Tf 10.516 0 Td [(np)]TJ/F14 9.9626 Tf 13.206 0 Td [(\000)]TJ/F8 9.9626 Tf 9.963 0 Td [(1,)-333(default)-334(-1.)]TJ +0 g 0 G +/F27 9.9626 Tf -251.325 -33.873 Td [(On)-383(Return)]TJ +0 g 0 G +0 g 0 G + 0 -19.926 Td [(dat)]TJ +0 g 0 G +/F8 9.9626 Tf 21.371 0 Td [(On)-333(destination)-334(pr)1(o)-28(cess\050es)-1(\051,)-333(the)-333(result)-333(of)-334(the)-333(maxim)28(um)-334(op)-27(eration.)]TJ 3.536 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.378 0 Td [(global)]TJ/F8 9.9626 Tf 29.757 0 Td [(.)]TJ -62.135 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf 41.898 0 Td [(.)]TJ -71.509 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.485 0 Td [(in)]TJ/F8 9.9626 Tf 9.548 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-326(as)-1(:)-441(an)-326(in)27(teger)-326(or)-327(real)-327(v)56(ariable,)-328(whic)28(h)-327(ma)28(y)-327(b)-28(e)-327(a)-326(s)-1(calar,)-328(or)-326(a)-327(rank)]TJ 0 -11.955 Td [(1)-333(or)-334(2)-333(arra)28(y)83(.)-778(T)28(yp)-27(e)-1(,)-333(kind,)-333(rank)-333(and)-334(size)-333(m)28(ust)-334(agree)-333(on)-333(all)-334(pro)-27(cesse)-1(s.)]TJ/F16 11.9552 Tf -24.907 -21.918 Td [(Notes)]TJ +0 g 0 G +/F8 9.9626 Tf 12.177 -19.925 Td [(1.)]TJ +0 g 0 G + [-500(The)]TJ/F30 9.9626 Tf 32.469 0 Td [(dat)]TJ/F8 9.9626 Tf 18.272 0 Td [(argumen)28(t)-259(is)-259(b)-28(oth)-259(input)-259(and)-259(output,)-274(and)-259(its)-259(v)55(alue)-259(ma)28(y)-259(b)-28(e)-259(c)28(hanged)]TJ -38.011 -11.956 Td [(ev)28(en)-334(on)-333(pro)-28(cesses)-333(di\013eren)28(t)-334(from)-333(the)-333(\014nal)-334(result)-333(destination.)]TJ +0 g 0 G + -12.73 -19.925 Td [(2.)]TJ +0 g 0 G + [-500(The)]TJ/F30 9.9626 Tf 33.208 0 Td [(dat)]TJ/F8 9.9626 Tf 19.012 0 Td [(argumen)28(t)-334(ma)28(y)-333(also)-334(b)-27(e)-334(a)-333(long)-333(in)28(teger)-334(scalar.)]TJ +0 g 0 G + 99.987 -109.132 Td [(110)]TJ +0 g 0 G +ET + +endstream +endobj +1558 0 obj +<< +/Length 5160 >> stream 0 g 0 G @@ -19084,10 +19151,10 @@ q []0 d 0 J 0.398 w 0 0 m 4.035 0 l S Q BT -/F16 11.9552 Tf 124.986 706.129 Td [(amx)-375(|)-375(Global)-375(maxim)31(um)-375(absolute)-375(v)63(alue)]TJ +/F16 11.9552 Tf 124.986 706.129 Td [(min)-375(|)-375(Global)-375(minim)31(um)]TJ 0 g 0 G 0 g 0 G -/F30 9.9626 Tf -25.091 -18.389 Td [(call)-525(psb_amx\050icontxt,)-525(dat,)-525(root\051)]TJ/F8 9.9626 Tf 14.944 -21.918 Td [(This)-312(subroutine)-312(implemen)28(ts)-313(a)-312(maxim)28(um)-312(absolute)-312(v)55(alue)-312(reduction)-312(op)-28(eration)]TJ -14.944 -11.955 Td [(based)-333(on)-334(the)-333(underlying)-333(comm)28(unication)-334(library)84(.)]TJ +/F30 9.9626 Tf -25.091 -18.389 Td [(call)-525(psb_min\050icontxt,)-525(dat,)-525(root\051)]TJ/F8 9.9626 Tf 14.944 -21.918 Td [(This)-311(subroutine)-312(implemen)28(ts)-311(a)-312(minim)28(um)-312(v)56(alue)-311(reduction)-312(op)-27(eration)-312(based)-311(on)]TJ -14.944 -11.955 Td [(the)-333(underlying)-334(comm)28(unication)-333(library)83(.)]TJ 0 g 0 G /F27 9.9626 Tf 0 -19.926 Td [(T)32(yp)-32(e:)]TJ 0 g 0 G @@ -19102,36 +19169,36 @@ BT 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 +/F8 9.9626 Tf 21.371 0 Td [(The)-333(lo)-28(cal)-334(con)28(tribution)-333(to)-333(the)-334(global)-333(minim)28(um.)]TJ 3.536 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf 23.073 0 Td [(.)]TJ -55.452 -11.956 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf 41.898 0 Td [(.)]TJ -71.509 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(inout)]TJ/F8 9.9626 Tf 26.096 0 Td [(.)]TJ -59.582 -11.955 Td [(Sp)-28(eci\014ed)-326(as)-1(:)-441(an)-326(in)27(teger)-326(or)-327(real)-327(v)56(ariable,)-328(whic)28(h)-327(ma)28(y)-327(b)-28(e)-327(a)-327(scalar,)-328(or)-326(a)-327(rank)]TJ 0 -11.955 Td [(1)-333(or)-334(2)-333(arra)28(y)83(.)-778(T)28(yp)-28(e,)-333(kind,)-333(rank)-333(and)-334(size)-333(m)28(ust)-334(agree)-333(on)-333(all)-334(pro)-27(cess)-1(es.)]TJ 0 g 0 G -/F27 9.9626 Tf -24.907 -19.926 Td [(ro)-32(ot)]TJ +/F27 9.9626 Tf -24.907 -19.925 Td [(ro)-32(ot)]TJ 0 g 0 G -/F8 9.9626 Tf 25.931 0 Td [(Pro)-28(cess)-276(to)-276(hold)-276(the)-276(\014nal)-275(v)55(alue,)-287(or)]TJ/F14 9.9626 Tf 146.411 0 Td [(\000)]TJ/F8 9.9626 Tf 7.749 0 Td [(1)-276(to)-276(mak)28(e)-276(it)-276(a)28(v)55(ailable)-276(on)-276(all)-276(p)1(ro)-28(cesses.)]TJ -155.184 -11.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 +/F8 9.9626 Tf 25.931 0 Td [(Pro)-28(cess)-276(to)-276(hold)-276(the)-276(\014nal)-275(v)55(alue,)-287(or)]TJ/F14 9.9626 Tf 146.411 0 Td [(\000)]TJ/F8 9.9626 Tf 7.749 0 Td [(1)-276(to)-276(mak)28(e)-276(it)-276(a)28(v)55(ailable)-276(on)-276(all)-276(p)1(ro)-28(cesses.)]TJ -155.184 -11.956 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(global)]TJ/F8 9.9626 Tf 29.756 0 Td [(.)]TJ -62.135 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(optional)]TJ/F8 9.9626 Tf 40.577 0 Td [(.)]TJ -70.188 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(in)28(teger)-333(v)55(alue)]TJ/F14 9.9626 Tf 130.428 0 Td [(\000)]TJ/F8 9.9626 Tf 7.749 0 Td [(1)]TJ/F11 9.9626 Tf 7.748 0 Td [(<)]TJ/F8 9.9626 Tf 7.749 0 Td [(=)]TJ/F11 9.9626 Tf 10.516 0 Td [(r)-28(oot)-278(<)]TJ/F8 9.9626 Tf 28.543 0 Td [(=)]TJ/F11 9.9626 Tf 10.517 0 Td [(np)]TJ/F14 9.9626 Tf 13.206 0 Td [(\000)]TJ/F8 9.9626 Tf 9.962 0 Td [(1,)-333(default)-334(-1.)]TJ 0 g 0 G /F27 9.9626 Tf -251.325 -33.873 Td [(On)-383(Return)]TJ 0 g 0 G 0 g 0 G - 0 -19.926 Td [(dat)]TJ + 0 -19.925 Td [(dat)]TJ 0 g 0 G -/F8 9.9626 Tf 21.372 0 Td [(On)-333(destination)-333(pro)-28(cess\050es\051,)-334(the)-333(result)-333(of)-334(the)-333(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 +/F8 9.9626 Tf 21.372 0 Td [(On)-333(destination)-333(pro)-28(cess\050es\051,)-334(the)-333(result)-333(of)-334(the)-333(minim)28(um)-334(op)-27(eration.)]TJ 3.535 -11.956 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(global)]TJ/F8 9.9626 Tf 29.756 0 Td [(.)]TJ -62.135 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf 41.899 0 Td [(.)]TJ -71.51 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(inout)]TJ/F8 9.9626 Tf 26.096 0 Td [(.)]TJ -59.582 -11.955 Td [(Sp)-28(eci\014ed)-326(as)-1(:)-441(an)-326(in)27(teger)-326(or)-327(real)-327(v)56(ariable,)-328(whic)28(h)-327(ma)28(y)-327(b)-28(e)-327(a)-327(scalar,)-328(or)-326(a)-327(rank)]TJ 0 -11.955 Td [(1)-333(or)-334(2)-333(arra)28(y)83(.)]TJ 0 -11.955 Td [(T)28(yp)-28(e,)-333(kind,)-334(r)1(ank)-334(and)-333(size)-333(m)27(ust)-333(agree)-333(on)-334(all)-333(pro)-28(cesses.)]TJ/F16 11.9552 Tf -24.907 -21.918 Td [(Notes)]TJ 0 g 0 G -/F8 9.9626 Tf 12.177 -19.926 Td [(1.)]TJ +/F8 9.9626 Tf 12.177 -19.925 Td [(1.)]TJ 0 g 0 G - [-500(The)]TJ/F30 9.9626 Tf 32.469 0 Td [(dat)]TJ/F8 9.9626 Tf 18.273 0 Td [(argumen)28(t)-259(is)-259(b)-28(oth)-259(input)-259(and)-259(output,)-274(and)-259(its)-259(v)55(alue)-259(ma)28(y)-259(b)-28(e)-259(c)28(hanged)]TJ -38.012 -11.955 Td [(ev)28(en)-334(on)-333(pro)-28(cesses)-333(di\013eren)28(t)-334(from)-333(the)-333(\014nal)-334(result)-333(destination.)]TJ + [-500(The)]TJ/F30 9.9626 Tf 32.469 0 Td [(dat)]TJ/F8 9.9626 Tf 18.273 0 Td [(argumen)28(t)-259(is)-259(b)-28(oth)-259(input)-259(and)-259(output,)-274(and)-259(its)-259(v)55(alue)-259(ma)28(y)-259(b)-28(e)-259(c)28(hanged)]TJ -38.012 -11.956 Td [(ev)28(en)-334(on)-333(pro)-28(cesses)-333(di\013eren)28(t)-334(from)-333(the)-333(\014nal)-334(result)-333(destination.)]TJ 0 g 0 G -12.73 -19.925 Td [(2.)]TJ 0 g 0 G [-500(The)]TJ/F30 9.9626 Tf 33.209 0 Td [(dat)]TJ/F8 9.9626 Tf 19.012 0 Td [(argumen)28(t)-333(m)-1(a)28(y)-333(also)-333(b)-28(e)-334(a)-333(long)-333(in)28(teger)-334(scalar.)]TJ 0 g 0 G - 99.986 -97.177 Td [(111)]TJ + 99.986 -109.132 Td [(111)]TJ 0 g 0 G ET endstream endobj -1557 0 obj +1564 0 obj << -/Length 5273 +/Length 5277 >> stream 0 g 0 G @@ -19144,10 +19211,10 @@ q []0 d 0 J 0.398 w 0 0 m 4.035 0 l S Q BT -/F16 11.9552 Tf 175.796 706.129 Td [(amn)-375(|)-375(Global)-375(minim)31(um)-375(absolute)-375(v)63(alue)]TJ +/F16 11.9552 Tf 175.796 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_amn\050icontxt,)-525(dat,)-525(root\051)]TJ/F8 9.9626 Tf 14.944 -21.918 Td [(This)-336(subroutine)-337(implemen)28(ts)-337(a)-336(minim)28(um)-337(absolute)-336(v)55(al)1(ue)-337(reduction)-336(op)-28(eration)]TJ -14.944 -11.955 Td [(based)-333(on)-334(the)-333(underlying)-333(comm)28(unication)-334(library)84(.)]TJ +/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 @@ -19162,7 +19229,7 @@ BT 0 g 0 G /F27 9.9626 Tf -24.907 -19.925 Td [(dat)]TJ 0 g 0 G -/F8 9.9626 Tf 21.371 0 Td [(The)-333(lo)-28(cal)-333(c)-1(on)28(tribution)-333(to)-333(the)-334(gl)1(obal)-334(minim)28(um.)]TJ 3.536 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.378 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf 23.073 0 Td [(.)]TJ -55.451 -11.956 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf 41.898 0 Td [(.)]TJ -71.509 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.485 0 Td [(inout)]TJ/F8 9.9626 Tf 26.097 0 Td [(.)]TJ -59.582 -11.955 Td [(Sp)-28(eci\014ed)-339(as:)-458(an)-339(in)28(tege)-1(r,)-341(real)-339(or)-340(complex)-340(v)56(ariable,)-342(whic)28(h)-339(m)-1(a)28(y)-339(b)-28(e)-340(a)-340(scalar,)]TJ 0 -11.955 Td [(or)-464(a)-464(ran)1(k)-464(1)-464(or)-464(2)-464(arra)28(y)83(.)-1299(T)28(yp)-28(e,)-497(kind)1(,)-497(rank)-464(and)-463(size)-464(m)27(ust)-463(agree)-464(on)-464(all)]TJ 0 -11.955 Td [(pro)-28(cesses.)]TJ +/F8 9.9626 Tf 21.371 0 Td [(The)-333(lo)-28(cal)-333(c)-1(on)28(tribution)-333(to)-333(the)-334(gl)1(obal)-334(maxim)28(um.)]TJ 3.536 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.378 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf 23.073 0 Td [(.)]TJ -55.451 -11.956 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf 41.898 0 Td [(.)]TJ -71.509 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.485 0 Td [(inout)]TJ/F8 9.9626 Tf 26.097 0 Td [(.)]TJ -59.582 -11.955 Td [(Sp)-28(eci\014ed)-339(as:)-458(an)-339(in)28(tege)-1(r,)-341(real)-339(or)-340(complex)-340(v)56(ariable,)-342(whic)28(h)-339(m)-1(a)28(y)-339(b)-28(e)-340(a)-340(scalar,)]TJ 0 -11.955 Td [(or)-464(a)-464(ran)1(k)-464(1)-464(or)-464(2)-464(arra)28(y)83(.)-1299(T)28(yp)-28(e,)-497(kind)1(,)-497(rank)-464(and)-463(size)-464(m)27(ust)-463(agree)-464(on)-464(all)]TJ 0 -11.955 Td [(pro)-28(cesses.)]TJ 0 g 0 G /F27 9.9626 Tf -24.907 -19.926 Td [(ro)-32(ot)]TJ 0 g 0 G @@ -19173,7 +19240,7 @@ BT 0 g 0 G 0 -19.926 Td [(dat)]TJ 0 g 0 G -/F8 9.9626 Tf 21.371 0 Td [(On)-333(destination)-334(p)1(ro)-28(cess\050es)-1(\051)1(,)-334(the)-333(result)-333(of)-334(the)-333(minim)28(um)-334(op)-27(eration.)]TJ 3.536 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.378 0 Td [(global)]TJ/F8 9.9626 Tf 29.757 0 Td [(.)]TJ -62.135 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf 41.898 0 Td [(.)]TJ -71.509 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.485 0 Td [(inout)]TJ/F8 9.9626 Tf 26.097 0 Td [(.)]TJ -59.582 -11.955 Td [(Sp)-28(eci\014ed)-339(as:)-458(an)-339(in)28(tege)-1(r,)-341(real)-339(or)-340(complex)-340(v)56(ariable,)-342(whic)28(h)-339(m)-1(a)28(y)-339(b)-28(e)-340(a)-340(scalar,)]TJ 0 -11.955 Td [(or)-333(a)-334(rank)-333(1)-333(or)-333(2)-334(arra)28(y)83(.)]TJ 0 -11.956 Td [(T)28(yp)-28(e,)-333(kind,)-333(rank)-334(and)-333(size)-333(m)27(ust)-333(agree)-333(on)-334(all)-333(pro)-28(cesses.)]TJ/F16 11.9552 Tf -24.907 -21.917 Td [(Notes)]TJ +/F8 9.9626 Tf 21.371 0 Td [(On)-333(destination)-334(p)1(ro)-28(cess\050es)-1(\051)1(,)-334(the)-333(result)-333(of)-334(the)-333(maxim)28(um)-334(op)-27(eration.)]TJ 3.536 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.378 0 Td [(global)]TJ/F8 9.9626 Tf 29.757 0 Td [(.)]TJ -62.135 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf 41.898 0 Td [(.)]TJ -71.509 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.485 0 Td [(inout)]TJ/F8 9.9626 Tf 26.097 0 Td [(.)]TJ -59.582 -11.955 Td [(Sp)-28(eci\014ed)-339(as:)-458(an)-339(in)28(tege)-1(r,)-341(real)-339(or)-340(complex)-340(v)56(ariable,)-342(whic)28(h)-339(m)-1(a)28(y)-339(b)-28(e)-340(a)-340(scalar,)]TJ 0 -11.955 Td [(or)-464(a)-464(ran)1(k)-464(1)-464(or)-464(2)-464(arra)28(y)83(.)-1299(T)28(yp)-28(e,)-497(kind)1(,)-497(rank)-464(and)-463(size)-464(m)27(ust)-463(agree)-464(on)-464(all)]TJ 0 -11.956 Td [(pro)-28(cesses.)]TJ/F16 11.9552 Tf -24.907 -21.917 Td [(Notes)]TJ 0 g 0 G /F8 9.9626 Tf 12.177 -19.926 Td [(1.)]TJ 0 g 0 G @@ -19189,9 +19256,9 @@ ET endstream endobj -1563 0 obj +1570 0 obj << -/Length 5346 +/Length 5248 >> stream 0 g 0 G @@ -19204,33 +19271,93 @@ q []0 d 0 J 0.398 w 0 0 m 4.035 0 l S Q BT -/F16 11.9552 Tf 124.986 706.129 Td [(snd)-375(|)-375(Send)-375(data)]TJ +/F16 11.9552 Tf 124.986 706.129 Td [(amn)-375(|)-375(Global)-375(minim)31(um)-375(absolute)-375(v)63(alue)]TJ +0 g 0 G +0 g 0 G +/F30 9.9626 Tf -25.091 -18.389 Td [(call)-525(psb_amn\050icontxt,)-525(dat,)-525(root\051)]TJ/F8 9.9626 Tf 14.944 -21.918 Td [(This)-336(s)-1(u)1(broutine)-337(implemen)28(ts)-337(a)-336(minim)28(um)-337(absolute)-336(v)55(alue)-336(reduction)-336(op)-28(eration)]TJ -14.944 -11.955 Td [(based)-333(on)-334(the)-333(underlying)-333(comm)28(unication)-334(library)84(.)]TJ +0 g 0 G +/F27 9.9626 Tf 0 -19.926 Td [(T)32(yp)-32(e:)]TJ +0 g 0 G +/F8 9.9626 Tf 33.797 0 Td [(Sync)28(hronous.)]TJ +0 g 0 G +/F27 9.9626 Tf -33.797 -19.925 Td [(On)-383(En)32(try)]TJ +0 g 0 G +0 g 0 G + 0 -19.925 Td [(icon)32(txt)]TJ +0 g 0 G +/F8 9.9626 Tf 39.989 0 Td [(the)-333(comm)27(unication)-333(con)28(text)-333(iden)27(tifyin)1(g)-334(the)-333(virtual)-333(parallel)-334(mac)28(hine.)]TJ -15.082 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(global)]TJ/F8 9.9626 Tf 29.756 0 Td [(.)]TJ -62.135 -11.956 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf 41.898 0 Td [(.)]TJ -71.509 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(in)28(teger)-333(v)55(ariable.)]TJ +0 g 0 G +/F27 9.9626 Tf -24.907 -19.925 Td [(dat)]TJ +0 g 0 G +/F8 9.9626 Tf 21.371 0 Td [(The)-333(lo)-28(cal)-334(con)28(tribution)-333(to)-333(the)-334(global)-333(minim)28(um.)]TJ 3.536 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf 23.073 0 Td [(.)]TJ -55.452 -11.956 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf 41.898 0 Td [(.)]TJ -71.509 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(inout)]TJ/F8 9.9626 Tf 26.096 0 Td [(.)]TJ -59.582 -11.955 Td [(Sp)-28(eci\014ed)-339(as:)-458(an)-339(in)28(te)-1(ger,)-341(real)-340(or)-339(complex)-340(v)56(ariable,)-342(whic)28(h)-340(ma)28(y)-339(b)-28(e)-340(a)-340(scalar,)]TJ 0 -11.955 Td [(or)-464(a)-464(rank)-463(1)-464(or)-464(2)-464(arra)28(y)83(.)-1299(T)28(yp)-28(e,)-497(kind,)-496(rank)-464(and)-463(size)-464(m)27(ust)-463(agree)-464(on)-464(all)]TJ 0 -11.955 Td [(pro)-28(cesses.)]TJ +0 g 0 G +/F27 9.9626 Tf -24.907 -19.926 Td [(ro)-32(ot)]TJ +0 g 0 G +/F8 9.9626 Tf 25.931 0 Td [(Pro)-28(cess)-276(to)-276(hold)-276(the)-276(\014nal)-275(v)55(alue,)-287(or)]TJ/F14 9.9626 Tf 146.411 0 Td [(\000)]TJ/F8 9.9626 Tf 7.749 0 Td [(1)-276(to)-276(mak)28(e)-276(it)-276(a)28(v)55(ailable)-276(on)-276(all)-276(p)1(ro)-28(cesses.)]TJ -155.184 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(global)]TJ/F8 9.9626 Tf 29.756 0 Td [(.)]TJ -62.135 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(optional)]TJ/F8 9.9626 Tf 40.577 0 Td [(.)]TJ -70.188 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(in)28(teger)-333(v)55(alue)]TJ/F14 9.9626 Tf 130.428 0 Td [(\000)]TJ/F8 9.9626 Tf 7.749 0 Td [(1)]TJ/F11 9.9626 Tf 7.748 0 Td [(<)]TJ/F8 9.9626 Tf 7.749 0 Td [(=)]TJ/F11 9.9626 Tf 10.516 0 Td [(r)-28(oot)-278(<)]TJ/F8 9.9626 Tf 28.543 0 Td [(=)]TJ/F11 9.9626 Tf 10.517 0 Td [(np)]TJ/F14 9.9626 Tf 13.206 0 Td [(\000)]TJ/F8 9.9626 Tf 9.962 0 Td [(1,)-333(default)-334(-1.)]TJ +0 g 0 G +/F27 9.9626 Tf -251.325 -33.873 Td [(On)-383(Return)]TJ +0 g 0 G +0 g 0 G + 0 -19.926 Td [(dat)]TJ +0 g 0 G +/F8 9.9626 Tf 21.372 0 Td [(On)-333(destination)-333(pro)-28(cess\050es\051,)-334(the)-333(result)-333(of)-334(the)-333(minim)28(um)-334(op)-27(eration.)]TJ 3.535 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(global)]TJ/F8 9.9626 Tf 29.756 0 Td [(.)]TJ -62.135 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf 41.899 0 Td [(.)]TJ -71.51 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(inout)]TJ/F8 9.9626 Tf 26.096 0 Td [(.)]TJ -59.582 -11.955 Td [(Sp)-28(eci\014ed)-339(as:)-458(an)-339(in)28(te)-1(ger,)-341(real)-340(or)-339(complex)-340(v)56(ariable,)-342(whic)28(h)-340(ma)28(y)-339(b)-28(e)-340(a)-340(scalar,)]TJ 0 -11.955 Td [(or)-333(a)-334(rank)-333(1)-333(or)-334(2)-333(arra)28(y)83(.)]TJ 0 -11.956 Td [(T)28(yp)-28(e,)-333(kind,)-334(r)1(ank)-334(and)-333(size)-333(m)27(ust)-333(agree)-333(on)-334(all)-333(pro)-28(cesses.)]TJ/F16 11.9552 Tf -24.907 -21.917 Td [(Notes)]TJ +0 g 0 G +/F8 9.9626 Tf 12.177 -19.926 Td [(1.)]TJ +0 g 0 G + [-500(The)]TJ/F30 9.9626 Tf 32.469 0 Td [(dat)]TJ/F8 9.9626 Tf 18.273 0 Td [(argumen)28(t)-259(is)-259(b)-28(oth)-259(input)-259(and)-259(output,)-274(and)-259(its)-259(v)55(alue)-259(ma)28(y)-259(b)-28(e)-259(c)28(hanged)]TJ -38.012 -11.955 Td [(ev)28(en)-334(on)-333(pro)-28(cesses)-333(di\013eren)28(t)-334(from)-333(the)-333(\014nal)-334(result)-333(destination.)]TJ +0 g 0 G + -12.73 -19.925 Td [(2.)]TJ +0 g 0 G + [-500(The)]TJ/F30 9.9626 Tf 33.209 0 Td [(dat)]TJ/F8 9.9626 Tf 19.012 0 Td [(argumen)28(t)-333(m)-1(a)28(y)-333(also)-333(b)-28(e)-334(a)-333(long)-333(in)28(teger)-334(scalar.)]TJ +0 g 0 G + 99.986 -97.177 Td [(113)]TJ +0 g 0 G +ET + +endstream +endobj +1576 0 obj +<< +/Length 5369 +>> +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 [(snd)-375(|)-375(Send)-375(data)]TJ 0 g 0 G 0 g 0 G -/F30 9.9626 Tf -25.091 -18.389 Td [(call)-525(psb_snd\050icontxt,)-525(dat,)-525(dst,)-525(m\051)]TJ/F8 9.9626 Tf 14.944 -21.918 Td [(This)-333(subroutine)-334(sends)-333(a)-333(pac)27(k)28(et)-333(of)-333(data)-334(to)-333(a)-333(destination.)]TJ +/F30 9.9626 Tf -25.091 -18.389 Td [(call)-525(psb_snd\050icontxt,)-525(dat,)-525(dst,)-525(m\051)]TJ/F8 9.9626 Tf 14.944 -21.918 Td [(This)-333(subroutine)-334(sends)-333(a)-333(pac)28(k)27(et)-333(of)-333(data)-334(to)-333(a)-333(destination.)]TJ 0 g 0 G /F27 9.9626 Tf -14.944 -19.926 Td [(T)32(yp)-32(e:)]TJ 0 g 0 G -/F8 9.9626 Tf 33.797 0 Td [(Sync)28(hronous:)-445(see)-333(usage)-333(notes.)]TJ +/F8 9.9626 Tf 33.797 0 Td [(Sync)28(hronous:)-444(s)-1(ee)-333(usage)-333(notes.)]TJ 0 g 0 G /F27 9.9626 Tf -33.797 -19.925 Td [(On)-383(En)32(try)]TJ 0 g 0 G 0 g 0 G 0 -19.925 Td [(icon)32(txt)]TJ 0 g 0 G -/F8 9.9626 Tf 39.989 0 Td [(the)-333(comm)27(unication)-333(con)28(text)-333(iden)27(tifyin)1(g)-334(the)-333(virtual)-333(parallel)-334(mac)28(hine.)]TJ -15.082 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(global)]TJ/F8 9.9626 Tf 29.756 0 Td [(.)]TJ -62.135 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf 41.898 0 Td [(.)]TJ -71.509 -11.956 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(in)28(teger)-333(v)55(ariable.)]TJ +/F8 9.9626 Tf 39.989 0 Td [(the)-333(comm)27(unication)-333(con)28(text)-333(iden)27(tifyi)1(ng)-334(the)-333(virtual)-333(parallel)-334(mac)28(hine.)]TJ -15.082 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.378 0 Td [(global)]TJ/F8 9.9626 Tf 29.756 0 Td [(.)]TJ -62.134 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf 41.898 0 Td [(.)]TJ -71.509 -11.956 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.485 0 Td [(in)]TJ/F8 9.9626 Tf 9.548 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-444(an)-334(in)28(teger)-333(v)55(ariable.)]TJ 0 g 0 G /F27 9.9626 Tf -24.907 -19.925 Td [(dat)]TJ 0 g 0 G -/F8 9.9626 Tf 21.371 0 Td [(The)-333(data)-334(to)-333(b)-28(e)-333(sen)28(t.)]TJ 3.536 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf 23.073 0 Td [(.)]TJ -55.452 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf 41.898 0 Td [(.)]TJ -71.509 -11.956 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-339(as:)-458(an)-339(in)28(te)-1(ger,)-341(real)-340(or)-339(complex)-340(v)56(ariable,)-342(whic)28(h)-340(ma)28(y)-339(b)-28(e)-340(a)-340(scalar,)]TJ 0 -11.955 Td [(or)-381(a)-381(rank)-381(1)-381(or)-381(2)-381(arra)27(y)84(,)-393(or)-381(a)-381(c)27(har)1(ac)-1(ter)-381(or)-381(logical)-381(scalar.)-969(T)28(yp)-27(e)-1(,)-393(ki)1(nd)-381(and)]TJ 0 -11.955 Td [(rank)-327(m)27(ust)-327(agree)-328(on)-327(sender)-328(and)-327(receiv)27(er)-327(pro)-28(cess;)-329(if)]TJ/F11 9.9626 Tf 220.724 0 Td [(m)]TJ/F8 9.9626 Tf 12.01 0 Td [(is)-328(not)-327(sp)-28(eci\014ed,)-329(size)]TJ -232.734 -11.955 Td [(m)28(ust)-334(agree)-333(as)-333(w)27(ell.)]TJ +/F8 9.9626 Tf 21.371 0 Td [(The)-333(data)-334(to)-333(b)-28(e)-333(sen)28(t.)]TJ 3.536 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.378 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf 23.073 0 Td [(.)]TJ -55.451 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf 41.898 0 Td [(.)]TJ -71.509 -11.956 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.485 0 Td [(in)]TJ/F8 9.9626 Tf 9.548 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-339(as:)-458(an)-339(in)28(tege)-1(r,)-341(real)-339(or)-340(complex)-340(v)56(ariable,)-342(whic)28(h)-339(m)-1(a)28(y)-339(b)-28(e)-340(a)-340(scalar,)]TJ 0 -11.955 Td [(or)-381(a)-381(rank)-381(1)-381(or)-381(2)-381(arra)28(y)83(,)-393(or)-381(a)-381(c)28(haracte)-1(r)-381(or)-381(logical)-381(scalar.)-968(T)27(yp)-27(e,)-393(kind)-381(and)]TJ 0 -11.955 Td [(rank)-327(m)27(ust)-327(agree)-328(on)-327(sender)-328(and)-327(receiv)28(e)-1(r)-327(pro)-28(cess;)-329(if)]TJ/F11 9.9626 Tf 220.724 0 Td [(m)]TJ/F8 9.9626 Tf 12.01 0 Td [(is)-328(n)1(o)-1(t)-327(sp)-28(eci\014ed,)-328(s)-1(ize)]TJ -232.734 -11.955 Td [(m)28(ust)-334(agree)-333(as)-333(w)27(ell.)]TJ 0 g 0 G /F27 9.9626 Tf -24.907 -19.926 Td [(dst)]TJ 0 g 0 G -/F8 9.9626 Tf 20.321 0 Td [(Destination)-333(pro)-28(cess.)]TJ 4.586 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(global)]TJ/F8 9.9626 Tf 29.756 0 Td [(.)]TJ -62.135 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf 41.898 0 Td [(.)]TJ -71.509 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(in)28(teger)-333(v)55(alue)-333(0)]TJ/F11 9.9626 Tf 138.176 0 Td [(<)]TJ/F8 9.9626 Tf 7.749 0 Td [(=)]TJ/F11 9.9626 Tf 10.516 0 Td [(dst)-278(<)]TJ/F8 9.9626 Tf 23.969 0 Td [(=)]TJ/F11 9.9626 Tf 10.516 0 Td [(np)]TJ/F14 9.9626 Tf 13.207 0 Td [(\000)]TJ/F8 9.9626 Tf 9.962 0 Td [(1.)]TJ +/F8 9.9626 Tf 20.321 0 Td [(Destination)-333(pro)-28(cess.)]TJ 4.586 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.378 0 Td [(global)]TJ/F8 9.9626 Tf 29.757 0 Td [(.)]TJ -62.135 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf 41.898 0 Td [(.)]TJ -71.509 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.485 0 Td [(in)]TJ/F8 9.9626 Tf 9.548 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-444(a)-1(n)-333(in)28(teger)-333(v)55(alue)-333(0)]TJ/F11 9.9626 Tf 138.176 0 Td [(<)]TJ/F8 9.9626 Tf 7.749 0 Td [(=)]TJ/F11 9.9626 Tf 10.516 0 Td [(dst)-278(<)]TJ/F8 9.9626 Tf 23.969 0 Td [(=)]TJ/F11 9.9626 Tf 10.516 0 Td [(np)]TJ/F14 9.9626 Tf 13.206 0 Td [(\000)]TJ/F8 9.9626 Tf 9.963 0 Td [(1.)]TJ 0 g 0 G /F27 9.9626 Tf -239.002 -31.881 Td [(m)]TJ 0 g 0 G -/F8 9.9626 Tf 14.529 0 Td [(Num)28(b)-28(er)-333(of)-334(ro)28(ws.)]TJ 10.378 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(global)]TJ/F8 9.9626 Tf 29.756 0 Td [(.)]TJ -62.135 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(Optional)]TJ/F8 9.9626 Tf 43.455 0 Td [(.)]TJ -73.066 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(in)28(teger)-333(v)55(alue)-333(0)]TJ/F11 9.9626 Tf 138.176 0 Td [(<)]TJ/F8 9.9626 Tf 7.749 0 Td [(=)]TJ/F11 9.9626 Tf 10.516 0 Td [(m)-278(<)]TJ/F8 9.9626 Tf 19.264 0 Td [(=)]TJ/F11 9.9626 Tf 10.516 0 Td [(siz)-44(e)]TJ/F8 9.9626 Tf 17.812 0 Td [(\050)]TJ/F11 9.9626 Tf 3.874 0 Td [(dat;)]TJ/F8 9.9626 Tf 18.477 0 Td [(1\051.)]TJ -226.384 -11.956 Td [(When)]TJ/F11 9.9626 Tf 29.071 0 Td [(dat)]TJ/F8 9.9626 Tf 17.383 0 Td [(is)-335(a)-334(rank)-335(2)-335(arra)28(y)84(,)-335(sp)-28(eci\014es)-335(the)-335(n)28(um)28(b)-28(er)-334(of)-335(ro)28(ws)-335(to)-335(b)-27(e)-335(sen)28(t)-335(inde-)]TJ -46.454 -11.955 Td [(p)-28(enden)28(tly)-285(of)-285(the)-286(leading)-285(dimension)]TJ/F11 9.9626 Tf 153.742 0 Td [(siz)-44(e)]TJ/F8 9.9626 Tf 17.812 0 Td [(\050)]TJ/F11 9.9626 Tf 3.874 0 Td [(dat;)]TJ/F8 9.9626 Tf 18.477 0 Td [(1\051;)-301(m)27(ust)-285(ha)28(v)28(e)-285(the)-286(same)-285(v)55(alu)1(e)]TJ -193.905 -11.955 Td [(on)-333(sending)-334(and)-333(receiving)-333(pro)-28(cesses.)]TJ +/F8 9.9626 Tf 14.529 0 Td [(Num)28(b)-28(er)-333(of)-334(ro)28(ws.)]TJ 10.378 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.378 0 Td [(global)]TJ/F8 9.9626 Tf 29.757 0 Td [(.)]TJ -62.135 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(Optional)]TJ/F8 9.9626 Tf 43.455 0 Td [(.)]TJ -73.066 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.485 0 Td [(in)]TJ/F8 9.9626 Tf 9.548 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(in)28(teger)-333(v)55(alue)-333(0)]TJ/F11 9.9626 Tf 138.176 0 Td [(<)]TJ/F8 9.9626 Tf 7.749 0 Td [(=)]TJ/F11 9.9626 Tf 10.516 0 Td [(m)-278(<)]TJ/F8 9.9626 Tf 19.263 0 Td [(=)]TJ/F11 9.9626 Tf 10.516 0 Td [(siz)-44(e)]TJ/F8 9.9626 Tf 17.813 0 Td [(\050)]TJ/F11 9.9626 Tf 3.874 0 Td [(dat;)]TJ/F8 9.9626 Tf 18.477 0 Td [(1\051.)]TJ -226.384 -11.956 Td [(When)]TJ/F11 9.9626 Tf 29.071 0 Td [(dat)]TJ/F8 9.9626 Tf 17.383 0 Td [(is)-335(a)-334(rank)-335(2)-335(arra)28(y)84(,)-335(sp)-28(eci\014es)-335(the)-335(n)28(um)28(b)-28(er)-334(of)-335(ro)28(ws)-335(to)-335(b)-27(e)-335(sen)28(t)-335(inde-)]TJ -46.454 -11.955 Td [(p)-28(enden)28(tly)-285(of)-285(the)-286(leadin)1(g)-286(dimension)]TJ/F11 9.9626 Tf 153.741 0 Td [(siz)-44(e)]TJ/F8 9.9626 Tf 17.813 0 Td [(\050)]TJ/F11 9.9626 Tf 3.874 0 Td [(dat;)]TJ/F8 9.9626 Tf 18.477 0 Td [(1\051;)-301(m)27(u)1(s)-1(t)-285(ha)28(v)28(e)-285(the)-286(same)-285(v)55(al)1(ue)]TJ -193.905 -11.955 Td [(on)-333(sending)-334(and)-333(receiving)-333(pro)-28(cesses.)]TJ 0 g 0 G /F27 9.9626 Tf -24.907 -21.918 Td [(On)-383(Return)]TJ 0 g 0 G @@ -19238,97 +19365,97 @@ BT 0 g 0 G /F8 9.9626 Tf 12.177 -19.925 Td [(1.)]TJ 0 g 0 G - [-500(This)-402(subroutine)-403(implies)-402(a)-402(s)-1(yn)1(c)27(hronization,)-419(but)-403(on)1(ly)-403(b)-28(et)28(w)28(een)-403(the)-402(calling)]TJ 12.73 -11.955 Td [(pro)-28(cess)-333(and)-333(the)-334(destination)-333(pro)-28(cess)]TJ/F11 9.9626 Tf 157.521 0 Td [(dst)]TJ/F8 9.9626 Tf 13.453 0 Td [(.)]TJ + [-500(This)-402(subroutine)-403(implies)-402(a)-402(sync)27(hronization,)-419(but)-403(on)1(ly)-403(b)-28(et)28(w)28(een)-403(th)1(e)-403(calling)]TJ 12.73 -11.955 Td [(pro)-28(cess)-333(and)-333(the)-334(destination)-333(pro)-28(cess)]TJ/F11 9.9626 Tf 157.52 0 Td [(dst)]TJ/F8 9.9626 Tf 13.453 0 Td [(.)]TJ 0 g 0 G - -31.497 -105.147 Td [(113)]TJ + -31.496 -105.147 Td [(114)]TJ 0 g 0 G ET endstream endobj -1568 0 obj +1581 0 obj << -/Length 5364 +/Length 5352 >> stream 0 g 0 G 0 g 0 G BT -/F16 11.9552 Tf 150.705 706.129 Td [(psb)]TJ +/F16 11.9552 Tf 99.895 706.129 Td [(psb)]TJ ET q -1 0 0 1 171.761 706.328 cm +1 0 0 1 120.951 706.328 cm []0 d 0 J 0.398 w 0 0 m 4.035 0 l S Q BT -/F16 11.9552 Tf 175.796 706.129 Td [(rcv)-375(|)-375(Receiv)31(e)-375(data)]TJ +/F16 11.9552 Tf 124.986 706.129 Td [(rcv)-375(|)-375(Receiv)31(e)-375(data)]TJ 0 g 0 G 0 g 0 G /F30 9.9626 Tf -25.091 -18.389 Td [(call)-525(psb_rcv\050icontxt,)-525(dat,)-525(src,)-525(m\051)]TJ/F8 9.9626 Tf 14.944 -21.918 Td [(This)-333(subroutine)-334(receiv)28(es)-333(a)-334(pac)28(k)28(et)-333(of)-334(data)-333(to)-333(a)-334(destination.)]TJ 0 g 0 G /F27 9.9626 Tf -14.944 -19.926 Td [(T)32(yp)-32(e:)]TJ 0 g 0 G -/F8 9.9626 Tf 33.797 0 Td [(Sync)28(hronous:)-444(s)-1(ee)-333(usage)-333(notes.)]TJ +/F8 9.9626 Tf 33.797 0 Td [(Sync)28(hronous:)-445(see)-333(usage)-333(notes.)]TJ 0 g 0 G /F27 9.9626 Tf -33.797 -19.925 Td [(On)-383(En)32(try)]TJ 0 g 0 G 0 g 0 G 0 -19.925 Td [(icon)32(txt)]TJ 0 g 0 G -/F8 9.9626 Tf 39.989 0 Td [(the)-333(comm)27(unication)-333(con)28(text)-333(iden)27(tifyi)1(ng)-334(the)-333(virtual)-333(parallel)-334(mac)28(hine.)]TJ -15.082 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.378 0 Td [(global)]TJ/F8 9.9626 Tf 29.756 0 Td [(.)]TJ -62.134 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf 41.898 0 Td [(.)]TJ -71.509 -11.956 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.485 0 Td [(in)]TJ/F8 9.9626 Tf 9.548 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-444(an)-334(in)28(teger)-333(v)55(ariable.)]TJ +/F8 9.9626 Tf 39.989 0 Td [(the)-333(comm)27(unication)-333(con)28(text)-333(iden)27(tifyin)1(g)-334(the)-333(virtual)-333(parallel)-334(mac)28(hine.)]TJ -15.082 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(global)]TJ/F8 9.9626 Tf 29.756 0 Td [(.)]TJ -62.135 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf 41.898 0 Td [(.)]TJ -71.509 -11.956 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(in)28(teger)-333(v)55(ariable.)]TJ 0 g 0 G /F27 9.9626 Tf -24.907 -19.925 Td [(src)]TJ 0 g 0 G -/F8 9.9626 Tf 19.311 0 Td [(Source)-333(pro)-28(cess.)]TJ 5.596 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.378 0 Td [(global)]TJ/F8 9.9626 Tf 29.756 0 Td [(.)]TJ -62.134 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf 41.898 0 Td [(.)]TJ -71.509 -11.956 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.485 0 Td [(in)]TJ/F8 9.9626 Tf 9.548 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-444(an)-334(in)28(teger)-333(v)55(alue)-333(0)]TJ/F11 9.9626 Tf 138.176 0 Td [(<)]TJ/F8 9.9626 Tf 7.749 0 Td [(=)]TJ/F11 9.9626 Tf 10.516 0 Td [(sr)-28(c)-277(<)]TJ/F8 9.9626 Tf 24.269 0 Td [(=)]TJ/F11 9.9626 Tf 10.516 0 Td [(np)]TJ/F14 9.9626 Tf 13.206 0 Td [(\000)]TJ/F8 9.9626 Tf 9.963 0 Td [(1.)]TJ +/F8 9.9626 Tf 19.311 0 Td [(Source)-333(pro)-28(cess.)]TJ 5.596 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(global)]TJ/F8 9.9626 Tf 29.756 0 Td [(.)]TJ -62.135 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf 41.898 0 Td [(.)]TJ -71.509 -11.956 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(in)28(teger)-333(v)55(alue)-333(0)]TJ/F11 9.9626 Tf 138.176 0 Td [(<)]TJ/F8 9.9626 Tf 7.749 0 Td [(=)]TJ/F11 9.9626 Tf 10.516 0 Td [(sr)-28(c)-277(<)]TJ/F8 9.9626 Tf 24.269 0 Td [(=)]TJ/F11 9.9626 Tf 10.516 0 Td [(np)]TJ/F14 9.9626 Tf 13.206 0 Td [(\000)]TJ/F8 9.9626 Tf 9.963 0 Td [(1.)]TJ 0 g 0 G /F27 9.9626 Tf -239.302 -31.88 Td [(m)]TJ 0 g 0 G -/F8 9.9626 Tf 14.529 0 Td [(Num)28(b)-28(er)-333(of)-334(ro)28(ws.)]TJ 10.378 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.378 0 Td [(global)]TJ/F8 9.9626 Tf 29.757 0 Td [(.)]TJ -62.135 -11.956 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(Optional)]TJ/F8 9.9626 Tf 43.455 0 Td [(.)]TJ -73.066 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.485 0 Td [(in)]TJ/F8 9.9626 Tf 9.548 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(in)28(teger)-333(v)55(alue)-333(0)]TJ/F11 9.9626 Tf 138.176 0 Td [(<)]TJ/F8 9.9626 Tf 7.749 0 Td [(=)]TJ/F11 9.9626 Tf 10.516 0 Td [(m)-278(<)]TJ/F8 9.9626 Tf 19.263 0 Td [(=)]TJ/F11 9.9626 Tf 10.516 0 Td [(siz)-44(e)]TJ/F8 9.9626 Tf 17.813 0 Td [(\050)]TJ/F11 9.9626 Tf 3.874 0 Td [(dat;)]TJ/F8 9.9626 Tf 18.477 0 Td [(1\051.)]TJ -226.384 -11.955 Td [(When)]TJ/F11 9.9626 Tf 29.071 0 Td [(dat)]TJ/F8 9.9626 Tf 17.383 0 Td [(is)-335(a)-334(rank)-335(2)-335(arra)28(y)84(,)-335(sp)-28(eci\014es)-335(the)-335(n)28(um)28(b)-28(er)-334(of)-335(ro)28(ws)-335(to)-335(b)-27(e)-335(sen)28(t)-335(inde-)]TJ -46.454 -11.955 Td [(p)-28(enden)28(tly)-285(of)-285(the)-286(leadin)1(g)-286(dimension)]TJ/F11 9.9626 Tf 153.741 0 Td [(siz)-44(e)]TJ/F8 9.9626 Tf 17.813 0 Td [(\050)]TJ/F11 9.9626 Tf 3.874 0 Td [(dat;)]TJ/F8 9.9626 Tf 18.477 0 Td [(1\051;)-301(m)27(u)1(s)-1(t)-285(ha)28(v)28(e)-285(the)-286(same)-285(v)55(al)1(ue)]TJ -193.905 -11.955 Td [(on)-333(sending)-334(and)-333(receiving)-333(pro)-28(cesses.)]TJ +/F8 9.9626 Tf 14.529 0 Td [(Num)28(b)-28(er)-333(of)-334(ro)28(ws.)]TJ 10.378 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(global)]TJ/F8 9.9626 Tf 29.756 0 Td [(.)]TJ -62.135 -11.956 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(Optional)]TJ/F8 9.9626 Tf 43.455 0 Td [(.)]TJ -73.066 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(in)28(teger)-333(v)55(alue)-333(0)]TJ/F11 9.9626 Tf 138.176 0 Td [(<)]TJ/F8 9.9626 Tf 7.749 0 Td [(=)]TJ/F11 9.9626 Tf 10.516 0 Td [(m)-278(<)]TJ/F8 9.9626 Tf 19.264 0 Td [(=)]TJ/F11 9.9626 Tf 10.516 0 Td [(siz)-44(e)]TJ/F8 9.9626 Tf 17.812 0 Td [(\050)]TJ/F11 9.9626 Tf 3.874 0 Td [(dat;)]TJ/F8 9.9626 Tf 18.477 0 Td [(1\051.)]TJ -226.384 -11.955 Td [(When)]TJ/F11 9.9626 Tf 29.071 0 Td [(dat)]TJ/F8 9.9626 Tf 17.383 0 Td [(is)-335(a)-334(rank)-335(2)-335(arra)28(y)84(,)-335(sp)-28(eci\014es)-335(the)-335(n)28(um)28(b)-28(er)-334(of)-335(ro)28(ws)-335(to)-335(b)-27(e)-335(sen)28(t)-335(inde-)]TJ -46.454 -11.955 Td [(p)-28(enden)28(tly)-285(of)-285(the)-286(leading)-285(dimension)]TJ/F11 9.9626 Tf 153.742 0 Td [(siz)-44(e)]TJ/F8 9.9626 Tf 17.812 0 Td [(\050)]TJ/F11 9.9626 Tf 3.874 0 Td [(dat;)]TJ/F8 9.9626 Tf 18.477 0 Td [(1\051;)-301(m)27(ust)-285(ha)28(v)28(e)-285(the)-286(same)-285(v)55(alu)1(e)]TJ -193.905 -11.955 Td [(on)-333(sending)-334(and)-333(receiving)-333(pro)-28(cesses.)]TJ 0 g 0 G /F27 9.9626 Tf -24.907 -21.918 Td [(On)-383(Return)]TJ 0 g 0 G 0 g 0 G 0 -19.926 Td [(dat)]TJ 0 g 0 G -/F8 9.9626 Tf 21.371 0 Td [(The)-333(data)-334(to)-333(b)-28(e)-333(receiv)28(ed.)]TJ 3.536 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.378 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf 23.073 0 Td [(.)]TJ -55.451 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf 41.898 0 Td [(.)]TJ -71.509 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.485 0 Td [(inout)]TJ/F8 9.9626 Tf 26.097 0 Td [(.)]TJ -59.582 -11.955 Td [(Sp)-28(eci\014ed)-339(as:)-458(an)-339(in)28(teg)-1(er,)-341(real)-340(or)-339(complex)-340(v)56(ariable,)-342(whic)28(h)-339(m)-1(a)28(y)-339(b)-28(e)-340(a)-340(scalar,)]TJ 0 -11.955 Td [(or)-381(a)-381(rank)-381(1)-381(or)-381(2)-381(arra)28(y)83(,)-393(or)-381(a)-381(c)27(h)1(aracte)-1(r)-381(or)-381(logical)-381(scalar.)-968(T)27(yp)-27(e,)-393(kind)-381(and)]TJ 0 -11.956 Td [(rank)-327(m)27(ust)-327(agree)-328(on)-327(sender)-328(and)-327(receiv)27(er)-327(pro)-28(cess;)-329(if)]TJ/F11 9.9626 Tf 220.724 0 Td [(m)]TJ/F8 9.9626 Tf 12.01 0 Td [(is)-328(not)-327(sp)-28(eci\014ed,)-328(s)-1(ize)]TJ -232.734 -11.955 Td [(m)28(ust)-334(agree)-333(as)-333(w)27(ell.)]TJ/F16 11.9552 Tf -24.907 -21.918 Td [(Notes)]TJ +/F8 9.9626 Tf 21.371 0 Td [(The)-333(data)-334(to)-333(b)-28(e)-333(receiv)28(ed.)]TJ 3.536 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf 23.073 0 Td [(.)]TJ -55.452 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf 41.898 0 Td [(.)]TJ -71.509 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(inout)]TJ/F8 9.9626 Tf 26.096 0 Td [(.)]TJ -59.582 -11.955 Td [(Sp)-28(eci\014ed)-339(as:)-458(an)-339(in)28(te)-1(ger,)-341(real)-340(or)-339(complex)-340(v)56(ariable,)-342(whic)28(h)-340(ma)28(y)-339(b)-28(e)-340(a)-340(scalar,)]TJ 0 -11.955 Td [(or)-381(a)-381(rank)-381(1)-381(or)-381(2)-381(arra)27(y)84(,)-393(or)-381(a)-381(c)27(har)1(ac)-1(ter)-381(or)-381(logical)-381(scalar.)-969(T)28(yp)-27(e)-1(,)-393(ki)1(nd)-381(and)]TJ 0 -11.956 Td [(rank)-327(m)27(ust)-327(agree)-328(on)-327(sender)-328(and)-327(receiv)27(er)-327(pro)-28(cess;)-329(if)]TJ/F11 9.9626 Tf 220.724 0 Td [(m)]TJ/F8 9.9626 Tf 12.01 0 Td [(is)-328(not)-327(sp)-28(eci\014ed,)-329(size)]TJ -232.734 -11.955 Td [(m)28(ust)-334(agree)-333(as)-333(w)27(ell.)]TJ/F16 11.9552 Tf -24.907 -21.918 Td [(Notes)]TJ 0 g 0 G /F8 9.9626 Tf 12.177 -19.925 Td [(1.)]TJ 0 g 0 G - [-500(This)-402(subroutine)-403(implies)-402(a)-402(sync)27(hronization,)-419(but)-403(on)1(ly)-403(b)-28(et)28(w)28(een)-403(th)1(e)-403(calling)]TJ 12.73 -11.955 Td [(pro)-28(cess)-333(and)-333(the)-334(source)-333(pro)-28(cess)]TJ/F11 9.9626 Tf 136.516 0 Td [(sr)-28(c)]TJ/F8 9.9626 Tf 13.753 0 Td [(.)]TJ + [-500(This)-402(subroutine)-403(implies)-402(a)-402(s)-1(yn)1(c)27(hronization,)-419(but)-403(onl)1(y)-403(b)-28(et)28(w)28(een)-403(the)-402(calling)]TJ 12.73 -11.955 Td [(pro)-28(cess)-333(and)-333(the)-334(source)-333(pro)-28(cess)]TJ/F11 9.9626 Tf 136.516 0 Td [(sr)-28(c)]TJ/F8 9.9626 Tf 13.753 0 Td [(.)]TJ 0 g 0 G - -10.792 -105.147 Td [(114)]TJ + -10.792 -105.147 Td [(115)]TJ 0 g 0 G ET endstream endobj -1575 0 obj +1589 0 obj << -/Length 6381 +/Length 6407 >> stream 0 g 0 G 0 g 0 G BT -/F16 14.3462 Tf 99.895 706.129 Td [(8)-1125(Error)-375(handling)]TJ/F8 9.9626 Tf 0 -21.821 Td [(The)-446(PSBLAS)-446(library)-446(error)-446(handling)-446(p)-28(olicy)-446(has)-446(b)-28(een)-446(completely)-446(rewritten)-446(in)]TJ 0 -11.955 Td [(v)28(ersion)-448(2.0.)-788(The)-448(idea)-448(b)-27(ehind)-448(the)-448(design)-448(of)-447(this)-448(new)-448(error)-448(handling)-447(strategy)]TJ 0 -11.955 Td [(is)-491(to)-492(k)28(eep)-491(error)-491(me)-1(ssages)-491(on)-491(a)-492(stac)28(k)-491(allo)28(wing)-492(the)-491(user)-491(to)-491(trace)-492(bac)28(k)-491(up)-492(to)]TJ 0 -11.956 Td [(the)-401(p)-27(oin)27(t)-400(where)-401(the)-400(\014rst)-401(error)-400(me)-1(ssage)-400(has)-401(b)-28(een)-400(generated.)-646(Ev)27(ery)-400(routine)-401(in)]TJ 0 -11.955 Td [(the)-442(PS)1(B)-1(LAS)1(-)-1(2.0)-441(library)-441(has,)-469(as)-442(last)-441(non-optional)-441(argume)-1(n)28(t,)-468(an)-442(in)28(teger)]TJ/F30 9.9626 Tf 322.79 0 Td [(info)]TJ/F8 9.9626 Tf -322.79 -11.955 Td [(v)56(ariable;)-385(whenev)28(er,)-376(inside)-368(the)-367(routine,)-376(an)-368(error)-367(is)-368(detected,)-376(this)-367(v)55(ariable)-367(is)-368(set)]TJ 0 -11.955 Td [(to)-381(a)-380(v)55(alue)-380(corresp)-28(onding)-380(to)-381(a)-380(sp)-28(eci\014c)-381(error)-380(co)-28(de.)-586(Then)-381(this)-380(error)-381(co)-28(de)-380(is)-381(also)]TJ 0 -11.955 Td [(pushed)-245(on)-245(the)-245(error)-245(stac)28(k)-245(and)-245(then)-245(either)-245(con)27(trol)-245(is)-245(return)1(e)-1(d)-245(to)-245(the)-245(caller)-245(routine)]TJ 0 -11.955 Td [(or)-372(the)-372(execution)-371(is)-372(ab)-28(orted,)-381(dep)-28(ending)-372(on)-371(the)-372(users)-372(c)28(hoice.)-560(A)28(t)-372(the)-372(time)-371(when)]TJ 0 -11.956 Td [(the)-364(execution)-363(is)-364(ab)-28(orted,)-371(an)-364(error)-364(message)-363(is)-364(prin)28(ted)-364(on)-364(standard)-363(output)-364(with)]TJ 0 -11.955 Td [(a)-448(lev)28(el)-448(of)-447(v)27(erb)-27(osit)27(y)-447(than)-448(can)-448(b)-27(e)-448(c)28(hosen)-448(b)28(y)-448(the)-448(user.)-787(If)-448(the)-448(execution)-447(is)-448(not)]TJ 0 -11.955 Td [(ab)-28(orted,)-328(then,)-329(the)-328(caller)-327(routine)-328(c)28(hec)28(ks)-328(the)-328(v)56(alue)-328(retur)1(ned)-328(in)-328(the)]TJ/F30 9.9626 Tf 285.46 0 Td [(info)]TJ/F8 9.9626 Tf 24.185 0 Td [(v)56(ariable)]TJ -309.645 -11.955 Td [(and,)-359(if)-354(not)-354(zero,)-359(an)-353(e)-1(r)1(ror)-354(condition)-354(is)-354(raised.)-506(This)-354(pro)-28(cess)-354(con)28(tin)28(ues)-354(on)-354(all)-354(the)]TJ 0 -11.955 Td [(lev)28(els)-297(of)-297(nested)-296(calls)-297(un)28(til)-297(the)-296(lev)28(e)-1(l)-296(where)-297(the)-296(user)-297(decides)-297(to)-296(ab)-28(ort)-297(the)-296(program)]TJ 0 -11.955 Td [(execution.)]TJ 14.944 -11.956 Td [(Figure)]TJ +/F16 14.3462 Tf 150.705 706.129 Td [(8)-1125(Error)-375(handling)]TJ/F8 9.9626 Tf 0 -21.821 Td [(The)-446(PSBLAS)-446(library)-446(error)-446(handling)-446(p)-28(olicy)-446(has)-446(b)-28(een)-446(completely)-446(rewritten)-446(in)]TJ 0 -11.955 Td [(v)28(ersion)-448(2.0.)-788(The)-448(idea)-448(b)-27(ehind)-448(the)-448(design)-448(of)-447(this)-448(new)-448(error)-448(handling)-447(strategy)]TJ 0 -11.955 Td [(is)-491(to)-492(k)28(eep)-491(error)-491(mes)-1(sages)-491(on)-491(a)-492(stac)28(k)-491(allo)28(wing)-492(th)1(e)-492(user)-491(to)-491(trace)-492(bac)28(k)-491(up)-492(t)1(o)]TJ 0 -11.956 Td [(the)-401(p)-27(oin)28(t)-401(where)-401(the)-400(\014rst)-401(error)-400(mes)-1(sage)-400(has)-401(b)-28(een)-400(generated.)-646(Ev)27(ery)-400(routine)-401(in)]TJ 0 -11.955 Td [(the)-442(P)1(SBLAS-2.0)-442(library)-441(has,)-469(as)-442(l)1(as)-1(t)-441(non-optional)-441(argumen)27(t,)-468(an)-442(in)28(teger)]TJ/F30 9.9626 Tf 322.79 0 Td [(info)]TJ/F8 9.9626 Tf -322.79 -11.955 Td [(v)56(ariable;)-385(whenev)28(er,)-376(inside)-368(the)-367(routine,)-376(an)-368(error)-367(is)-368(detected,)-376(this)-367(v)55(ariab)1(le)-368(is)-368(set)]TJ 0 -11.955 Td [(to)-381(a)-380(v)55(alu)1(e)-381(corresp)-28(onding)-380(to)-381(a)-380(sp)-28(eci\014c)-381(error)-380(co)-28(de.)-586(Then)-381(this)-380(error)-381(co)-28(de)-380(is)-381(also)]TJ 0 -11.955 Td [(pushed)-245(on)-245(the)-245(error)-245(stac)28(k)-245(and)-245(then)-245(either)-245(con)27(tr)1(ol)-245(is)-246(retur)1(ned)-245(to)-246(th)1(e)-246(caller)-245(routin)1(e)]TJ 0 -11.955 Td [(or)-372(the)-371(e)-1(xecution)-371(is)-372(ab)-28(orted,)-381(dep)-28(ending)-372(on)-371(the)-372(users)-372(c)28(hoice.)-560(A)28(t)-372(the)-372(time)-371(when)]TJ 0 -11.956 Td [(the)-364(execution)-363(is)-364(ab)-28(orted,)-371(an)-364(error)-364(message)-363(is)-364(prin)28(ted)-364(on)-364(standard)-363(output)-364(with)]TJ 0 -11.955 Td [(a)-448(lev)28(el)-448(of)-447(v)27(erb)-27(osit)27(y)-447(than)-448(can)-448(b)-27(e)-448(c)28(hosen)-448(b)28(y)-448(the)-448(user.)-787(If)-448(the)-448(execution)-447(is)-448(not)]TJ 0 -11.955 Td [(ab)-28(orted,)-328(then,)-329(the)-328(caller)-327(routine)-328(c)28(hec)28(ks)-328(the)-327(v)55(alue)-327(returned)-328(in)-327(the)]TJ/F30 9.9626 Tf 285.459 0 Td [(info)]TJ/F8 9.9626 Tf 24.185 0 Td [(v)56(ariable)]TJ -309.644 -11.955 Td [(and,)-359(if)-354(not)-354(zero,)-359(an)-353(error)-354(condition)-354(is)-354(raised.)-506(This)-354(pro)-28(cess)-354(con)28(tin)28(ues)-354(on)-354(all)-354(th)1(e)]TJ 0 -11.955 Td [(lev)28(els)-297(of)-296(nes)-1(ted)-296(calls)-297(un)28(til)-297(the)-296(lev)28(el)-297(where)-297(the)-296(user)-297(decides)-297(to)-296(ab)-28(ort)-297(the)-296(program)]TJ 0 -11.955 Td [(execution.)]TJ 14.944 -11.956 Td [(Figure)]TJ 0 0 1 rg 0 0 1 RG [-353(9)]TJ 0 g 0 G - [-353(sho)28(ws)-353(the)-353(la)28(y)27(out)-353(of)-353(a)-353(generic)]TJ/F30 9.9626 Tf 170.683 0 Td [(psb_foo)]TJ/F8 9.9626 Tf 40.129 0 Td [(routine)-353(with)-353(resp)-28(ect)-353(to)-353(the)]TJ -225.756 -11.955 Td [(PSBLAS-2.0)-326(error)-326(handl)1(ing)-326(p)-28(olicy)83(.)-442(It)-325(is)-326(p)-28(ossible)-326(to)-326(see)-326(ho)28(w,)-327(whenev)27(er)-325(an)-326(error)]TJ 0 -11.955 Td [(condition)-379(is)-378(detected,)-390(the)]TJ/F30 9.9626 Tf 115.439 0 Td [(info)]TJ/F8 9.9626 Tf 24.694 0 Td [(v)56(ariable)-379(is)-379(set)-379(to)-378(the)-379(corresp)-28(onding)-378(error)-379(co)-28(de)]TJ -140.133 -11.955 Td [(whic)28(h)-376(is,)-387(then,)-386(pushed)-376(on)-376(top)-376(of)-376(the)-376(stac)28(k)-376(b)28(y)-376(means)-376(of)-376(the)]TJ/F30 9.9626 Tf 264.703 0 Td [(psb_errpush)]TJ/F8 9.9626 Tf 57.533 0 Td [(.)-572(An)]TJ -322.236 -11.955 Td [(error)-331(condition)-331(ma)28(y)-331(b)-28(e)-331(directly)-331(detected)-331(inside)-331(a)-331(routine)-331(or)-331(indirectly)-331(c)27(hec)28(king)]TJ 0 -11.956 Td [(the)-462(error)-461(co)-28(de)-461(returned)-462(returned)-461(b)28(y)-462(a)-461(called)-462(routine.)-829(Whenev)28(er)-461(an)-462(error)-461(is)]TJ 0 -11.955 Td [(encoun)28(tered,)-459(after)-434(it)-434(has)-434(b)-27(een)-434(pushed)-434(on)-434(stac)28(k,)-459(the)-434(program)-433(exec)-1(u)1(tion)-434(skips)]TJ 0 -11.955 Td [(to)-356(a)-356(p)-27(oin)28(t)-356(where)-356(the)-356(error)-355(c)-1(on)1(dition)-356(is)-356(handled;)-367(the)-355(e)-1(r)1(ror)-356(condition)-356(is)-356(hand)1(le)-1(d)]TJ 0 -11.955 Td [(either)-392(b)28(y)-392(returning)-392(con)28(trol)-392(to)-392(the)-392(caller)-392(r)1(outine)-392(or)-392(b)28(y)-392(calling)-392(the)]TJ/F30 9.9626 Tf 291.408 0 Td [(psb\134_error)]TJ/F8 9.9626 Tf -291.408 -11.955 Td [(routine)-478(whic)28(h)-479(prin)28(ts)-478(the)-478(con)28(ten)27(t)-478(of)-478(the)-478(error)-479(stac)28(k)-478(and)-478(ab)-28(orts)-478(the)-478(program)]TJ 0 -11.955 Td [(execution,)-330(accordin)1(g)-329(to)-329(th)1(e)-329(c)28(hoice)-329(made)-328(b)27(y)-328(the)-329(user)-328(with)]TJ/F30 9.9626 Tf 252.028 0 Td [(psb_set_erraction)]TJ/F8 9.9626 Tf 88.916 0 Td [(.)]TJ -340.944 -11.956 Td [(The)-347(default)-346(is)-347(to)-346(prin)28(t)-347(the)-347(error)-346(and)-347(terminate)-346(the)-347(program,)-350(but)-346(the)-347(user)-346(ma)27(y)]TJ 0 -11.955 Td [(c)28(ho)-28(ose)-333(to)-334(handle)-333(the)-333(error)-334(explicitly)84(.)]TJ 14.944 -11.955 Td [(Figure)]TJ + [-353(sho)28(ws)-353(the)-353(la)28(y)27(out)-353(of)-352(a)-353(ge)-1(n)1(e)-1(ri)1(c)]TJ/F30 9.9626 Tf 170.683 0 Td [(psb_foo)]TJ/F8 9.9626 Tf 40.129 0 Td [(routine)-353(with)-353(resp)-28(ect)-353(to)-353(the)]TJ -225.756 -11.955 Td [(PSBLAS-2.0)-326(error)-326(hand)1(ling)-326(p)-28(olicy)83(.)-442(It)-325(is)-326(p)-28(ossible)-326(to)-326(see)-326(ho)28(w,)-327(whenev)28(e)-1(r)-325(an)-326(error)]TJ 0 -11.955 Td [(condition)-379(is)-378(detected,)-390(the)]TJ/F30 9.9626 Tf 115.439 0 Td [(info)]TJ/F8 9.9626 Tf 24.694 0 Td [(v)56(ariable)-379(is)-379(set)-379(to)-378(the)-379(corresp)-28(onding)-378(error)-379(co)-28(de)]TJ -140.133 -11.955 Td [(whic)28(h)-376(is,)-387(then,)-386(pushed)-376(on)-376(top)-376(of)-376(the)-376(stac)28(k)-376(b)28(y)-376(means)-376(of)-376(the)]TJ/F30 9.9626 Tf 264.702 0 Td [(psb_errpush)]TJ/F8 9.9626 Tf 57.534 0 Td [(.)-572(An)]TJ -322.236 -11.955 Td [(error)-331(condition)-331(ma)28(y)-331(b)-28(e)-331(directly)-331(detected)-331(inside)-331(a)-331(routine)-331(or)-331(indirectly)-331(c)27(h)1(e)-1(c)28(king)]TJ 0 -11.956 Td [(the)-461(e)-1(rr)1(or)-462(co)-28(de)-461(returned)-462(returned)-461(b)28(y)-462(a)-461(called)-462(routine.)-829(Whenev)28(er)-461(an)-462(error)-461(is)]TJ 0 -11.955 Td [(encoun)28(tered,)-459(after)-434(it)-434(has)-433(b)-28(een)-434(pushed)-434(on)-434(stac)28(k,)-459(the)-434(program)-433(execution)-434(skips)]TJ 0 -11.955 Td [(to)-356(a)-356(p)-27(oin)28(t)-356(where)-356(the)-356(error)-355(condition)-356(is)-356(handled;)-367(the)-355(error)-356(condition)-356(is)-356(han)1(dled)]TJ 0 -11.955 Td [(either)-392(b)28(y)-392(returning)-392(con)28(trol)-392(to)-392(the)-392(caller)-391(routine)-392(or)-392(b)28(y)-392(calling)-392(the)]TJ/F30 9.9626 Tf 291.408 0 Td [(psb\134_error)]TJ/F8 9.9626 Tf -291.408 -11.955 Td [(routine)-478(whic)28(h)-479(pr)1(in)27(ts)-478(the)-478(con)28(ten)27(t)-478(of)-478(the)-478(error)-478(s)-1(tac)28(k)-478(and)-478(ab)-28(orts)-478(the)-478(program)]TJ 0 -11.955 Td [(execution,)-329(ac)-1(cord)1(ing)-329(to)-328(the)-329(c)28(hoice)-329(made)-328(b)27(y)-328(the)-329(user)-328(with)]TJ/F30 9.9626 Tf 252.028 0 Td [(psb_set_erraction)]TJ/F8 9.9626 Tf 88.916 0 Td [(.)]TJ -340.944 -11.956 Td [(The)-347(default)-346(is)-347(to)-346(prin)28(t)-347(the)-347(error)-346(and)-347(terminate)-346(the)-347(program,)-350(but)-346(the)-347(user)-346(ma)27(y)]TJ 0 -11.955 Td [(c)28(ho)-28(ose)-333(to)-334(handle)-333(the)-333(error)-334(explicitly)84(.)]TJ 14.944 -11.955 Td [(Figure)]TJ 0 0 1 rg 0 0 1 RG [-479(10)]TJ 0 g 0 G - [-479(rep)-28(orts)-479(a)-479(sample)-480(error)-479(message)-479(generated)-479(b)28(y)-480(the)-479(PSBLAS-2.0)]TJ -14.944 -11.955 Td [(library)83(.)-451(This)-335(error)-336(has)-335(b)-28(een)-336(generated)-335(b)27(y)-335(the)-336(fact)-335(that)-336(the)-335(use)-1(r)-335(has)-336(c)28(hosen)-336(the)]TJ 0 -11.955 Td [(in)28(v)55(alid)-367(\134F)28(OO")-368(storage)-367(format)-368(to)-367(represen)27(t)-367(the)-368(sparse)-367(matrix.)-547(F)83(rom)-367(this)-368(error)]TJ 0 -11.955 Td [(message)-248(it)-248(is)-248(p)-27(oss)-1(ib)1(le)-248(to)-248(see)-248(that)-248(the)-248(error)-247(has)-248(b)-28(een)-248(detected)-248(inside)-248(the)]TJ/F30 9.9626 Tf 301.869 0 Td [(psb_cest)]TJ/F8 9.9626 Tf -301.869 -11.956 Td [(subroutine)-333(called)-334(b)28(y)]TJ/F30 9.9626 Tf 91.408 0 Td [(psb_spasb)]TJ/F8 9.9626 Tf 50.394 0 Td [(...)-444(b)27(y)-333(pro)-28(cess)-333(0)-333(\050i.e.)-445(the)-333(ro)-28(ot)-333(pro)-28(cess\051.)]TJ + [-479(rep)-28(orts)-479(a)-479(sample)-480(error)-479(message)-479(generated)-479(b)28(y)-480(the)-479(PSBLAS-2.0)]TJ -14.944 -11.955 Td [(library)83(.)-451(This)-335(error)-336(has)-335(b)-28(een)-336(generated)-335(b)27(y)-335(the)-336(fact)-335(that)-336(the)-335(use)-1(r)-335(has)-336(c)28(hosen)-336(th)1(e)]TJ 0 -11.955 Td [(in)28(v)55(alid)-367(\134F)28(OO")-368(storage)-367(format)-368(to)-367(represen)27(t)-367(the)-368(sparse)-367(matrix.)-547(F)83(rom)-367(this)-368(error)]TJ 0 -11.955 Td [(message)-248(it)-248(is)-248(p)-27(oss)-1(i)1(ble)-248(to)-248(see)-248(that)-248(the)-248(error)-247(has)-248(b)-28(een)-248(detected)-248(inside)-248(th)1(e)]TJ/F30 9.9626 Tf 301.868 0 Td [(psb_cest)]TJ/F8 9.9626 Tf -301.868 -11.956 Td [(subroutine)-333(called)-334(b)28(y)]TJ/F30 9.9626 Tf 91.407 0 Td [(psb_spasb)]TJ/F8 9.9626 Tf 50.394 0 Td [(...)-444(b)27(y)-333(pro)-28(cess)-333(0)-333(\050i.e.)-445(the)-333(ro)-28(ot)-333(pro)-28(cess\051.)]TJ 0 g 0 G - 22.582 -211.304 Td [(115)]TJ + 22.583 -211.304 Td [(116)]TJ 0 g 0 G ET endstream endobj -1582 0 obj +1595 0 obj << -/Length 7207 +/Length 7220 >> stream 0 g 0 G @@ -19337,149 +19464,149 @@ stream 0 g 0 G 0 g 0 G BT -/F53 8.9664 Tf 159.61 680.066 Td [(s)-60(u)-60(b)-60(r)-60(o)-59(u)-60(t)-60(i)-60(n)-60(e)]TJ/F46 8.9664 Tf 61.471 0 Td [(p)-132(s)-132(b)]TJ +/F53 8.9664 Tf 108.801 680.066 Td [(s)-60(u)-60(b)-60(r)-59(o)-60(u)-60(t)-60(i)-60(n)-60(e)]TJ/F46 8.9664 Tf 61.47 0 Td [(p)-132(s)-132(b)]TJ ET q -1 0 0 1 239.064 680.265 cm +1 0 0 1 188.254 680.265 cm []0 d 0 J 0.398 w 0 0 m 2.765 0 l S Q BT -/F46 8.9664 Tf 243.014 680.066 Td [(f)-132(o)-132(o)-241(\050)-155(s)-47(o)-47(m)-46(e)-769(a)-105(r)-106(g)-105(s)-376(,)-939(i)-156(n)-156(f)-157(o)-265(\051)]TJ -65.126 -10.959 Td [(.)-248(.)-249(.)]TJ/F53 8.9664 Tf -0.604 -10.959 Td [(i)-181(f)]TJ/F46 8.9664 Tf 10.409 0 Td [(\050)-259(e)-152(r)-151(r)-151(o)-151(r)-897(d)-129(e)-129(t)-129(e)-130(c)-129(t)-129(e)-130(d)-237(\051)]TJ/F53 8.9664 Tf 93.291 0 Td [(t)-30(h)-30(e)-29(n)]TJ/F46 8.9664 Tf -87.332 -10.959 Td [(i)-156(n)-157(f)-156(o)-65(=)-38(e)-129(r)-129(r)-128(c)-129(o)-129(d)-129(e)-129(1)]TJ/F53 8.9664 Tf -0.133 -10.959 Td [(c)-142(a)-141(l)-142(l)]TJ/F46 8.9664 Tf 27.487 0 Td [(p)-124(s)-124(b)]TJ +/F46 8.9664 Tf 192.204 680.066 Td [(f)-132(o)-132(o)-241(\050)-155(s)-47(o)-47(m)-47(e)-768(a)-105(r)-106(g)-105(s)-376(,)-939(i)-156(n)-157(f)-156(o)-265(\051)]TJ -65.125 -10.959 Td [(.)-248(.)-249(.)]TJ/F53 8.9664 Tf -0.604 -10.959 Td [(i)-181(f)]TJ/F46 8.9664 Tf 10.408 0 Td [(\050)-260(e)-151(r)-151(r)-151(o)-151(r)-897(d)-129(e)-129(t)-130(e)-129(c)-129(t)-129(e)-130(d)-237(\051)]TJ/F53 8.9664 Tf 93.292 0 Td [(t)-30(h)-29(e)-30(n)]TJ/F46 8.9664 Tf -87.332 -10.959 Td [(i)-156(n)-157(f)-156(o)-65(=)-38(e)-129(r)-128(r)-129(c)-129(o)-129(d)-129(e)-129(1)]TJ/F53 8.9664 Tf -0.133 -10.959 Td [(c)-142(a)-141(l)-142(l)]TJ/F46 8.9664 Tf 27.487 0 Td [(p)-124(s)-124(b)]TJ ET q -1 0 0 1 238.765 636.429 cm +1 0 0 1 187.956 636.429 cm []0 d 0 J 0.398 w 0 0 m 2.765 0 l S Q BT -/F46 8.9664 Tf 242.641 636.23 Td [(e)-124(r)-124(r)-124(p)-123(u)-124(s)-124(h)-232(\050)-330(')-242(p)-132(s)-133(b)]TJ +/F46 8.9664 Tf 191.831 636.23 Td [(e)-124(r)-124(r)-124(p)-123(u)-124(s)-124(h)-233(\050)-329(')-242(p)-133(s)-132(b)]TJ ET q -1 0 0 1 310.944 636.429 cm +1 0 0 1 260.135 636.429 cm []0 d 0 J 0.398 w 0 0 m 2.765 0 l S Q BT -/F46 8.9664 Tf 314.894 636.23 Td [(f)-132(o)-132(o)-353(')-332(,)-855(e)-129(r)-129(r)-129(c)-129(o)-129(d)-128(e)-129(1)-237(\051)]TJ/F53 8.9664 Tf -122.23 -10.959 Td [(g)-46(o)-47(t)-46(o)]TJ/F46 8.9664 Tf 27.969 0 Td [(9)-82(9)-82(9)-83(9)]TJ/F53 8.9664 Tf -44.989 -10.959 Td [(e)2(n)2(d)-796(i)-181(f)]TJ/F46 8.9664 Tf 2.244 -10.959 Td [(.)-248(.)-249(.)]TJ/F53 8.9664 Tf -0.957 -10.959 Td [(c)-142(a)-141(l)-142(l)]TJ/F46 8.9664 Tf 27.399 0 Td [(p)-114(s)-114(b)]TJ +/F46 8.9664 Tf 264.085 636.23 Td [(f)-132(o)-132(o)-353(')-332(,)-855(e)-129(r)-129(r)-129(c)-129(o)-128(d)-129(e)-129(1)-237(\051)]TJ/F53 8.9664 Tf -122.23 -10.959 Td [(g)-46(o)-47(t)-46(o)]TJ/F46 8.9664 Tf 27.968 0 Td [(9)-82(9)-82(9)-83(9)]TJ/F53 8.9664 Tf -44.989 -10.959 Td [(e)2(n)2(d)-796(i)-181(f)]TJ/F46 8.9664 Tf 2.245 -10.959 Td [(.)-248(.)-249(.)]TJ/F53 8.9664 Tf -0.957 -10.959 Td [(c)-142(a)-141(l)-142(l)]TJ/F46 8.9664 Tf 27.399 0 Td [(p)-114(s)-114(b)]TJ ET q -1 0 0 1 221.826 592.594 cm +1 0 0 1 171.016 592.594 cm []0 d 0 J 0.398 w 0 0 m 2.765 0 l S Q BT -/F46 8.9664 Tf 225.613 592.394 Td [(b)-114(a)-114(r)-223(\050)-155(s)-47(o)-46(m)-47(e)-769(a)-105(r)-105(g)-105(s)-376(,)-939(i)-157(n)-156(f)-157(o)-264(\051)]TJ/F53 8.9664 Tf -48.329 -10.958 Td [(i)-181(f)]TJ/F46 8.9664 Tf 10.409 0 Td [(\050)-265(i)-156(n)-157(f)-156(o)-939(.)]TJ/F53 8.9664 Tf 37.83 0 Td [(n)-11(e)]TJ/F46 8.9664 Tf 12.445 0 Td [(.)-910(z)-127(e)-127(r)-128(o)-236(\051)]TJ/F53 8.9664 Tf 43.016 0 Td [(t)-30(h)-30(e)-29(n)]TJ/F46 8.9664 Tf -87.332 -10.959 Td [(i)-156(n)-157(f)-156(o)-65(=)-38(e)-129(r)-129(r)-128(c)-129(o)-129(d)-129(e)-129(2)]TJ/F53 8.9664 Tf -0.133 -10.959 Td [(c)-142(a)-141(l)-142(l)]TJ/F46 8.9664 Tf 27.487 0 Td [(p)-124(s)-124(b)]TJ +/F46 8.9664 Tf 174.803 592.394 Td [(b)-114(a)-114(r)-223(\050)-155(s)-47(o)-46(m)-47(e)-769(a)-105(r)-105(g)-105(s)-377(,)-938(i)-157(n)-156(f)-157(o)-265(\051)]TJ/F53 8.9664 Tf -48.328 -10.958 Td [(i)-181(f)]TJ/F46 8.9664 Tf 10.408 0 Td [(\050)-265(i)-156(n)-157(f)-156(o)-939(.)]TJ/F53 8.9664 Tf 37.831 0 Td [(n)-11(e)]TJ/F46 8.9664 Tf 12.445 0 Td [(.)-910(z)-127(e)-127(r)-128(o)-235(\051)]TJ/F53 8.9664 Tf 43.016 0 Td [(t)-30(h)-29(e)-30(n)]TJ/F46 8.9664 Tf -87.332 -10.959 Td [(i)-156(n)-157(f)-156(o)-65(=)-38(e)-129(r)-128(r)-129(c)-129(o)-129(d)-129(e)-129(2)]TJ/F53 8.9664 Tf -0.133 -10.959 Td [(c)-142(a)-141(l)-142(l)]TJ/F46 8.9664 Tf 27.487 0 Td [(p)-124(s)-124(b)]TJ ET q -1 0 0 1 238.765 559.717 cm +1 0 0 1 187.956 559.717 cm []0 d 0 J 0.398 w 0 0 m 2.765 0 l S Q BT -/F46 8.9664 Tf 242.641 559.518 Td [(e)-124(r)-124(r)-124(p)-123(u)-124(s)-124(h)-232(\050)-330(')-242(p)-132(s)-133(b)]TJ +/F46 8.9664 Tf 191.831 559.518 Td [(e)-124(r)-124(r)-124(p)-123(u)-124(s)-124(h)-233(\050)-329(')-242(p)-133(s)-132(b)]TJ ET q -1 0 0 1 310.944 559.717 cm +1 0 0 1 260.135 559.717 cm []0 d 0 J 0.398 w 0 0 m 2.765 0 l S Q BT -/F46 8.9664 Tf 314.894 559.518 Td [(f)-132(o)-132(o)-353(')-332(,)-855(e)-129(r)-129(r)-129(c)-129(o)-129(d)-128(e)-129(2)-237(\051)]TJ/F53 8.9664 Tf -122.23 -10.959 Td [(g)-46(o)-47(t)-46(o)]TJ/F46 8.9664 Tf 27.969 0 Td [(9)-82(9)-82(9)-83(9)]TJ/F53 8.9664 Tf -44.989 -10.959 Td [(e)2(n)2(d)-796(i)-181(f)]TJ/F46 8.9664 Tf 2.244 -10.959 Td [(.)-248(.)-249(.)]TJ -18.077 -10.959 Td [(9)-82(9)-82(9)-83(9)]TJ/F53 8.9664 Tf 27.419 0 Td [(c)-57(o)-57(n)-57(t)-56(i)-57(n)-57(u)-57(e)]TJ -9.946 -10.959 Td [(i)-181(f)]TJ/F46 8.9664 Tf 15.938 0 Td [(\050)-273(e)-164(r)-165(r)]TJ +/F46 8.9664 Tf 264.085 559.518 Td [(f)-132(o)-132(o)-353(')-332(,)-855(e)-129(r)-129(r)-129(c)-129(o)-128(d)-129(e)-129(2)-237(\051)]TJ/F53 8.9664 Tf -122.23 -10.959 Td [(g)-46(o)-47(t)-46(o)]TJ/F46 8.9664 Tf 27.968 0 Td [(9)-82(9)-82(9)-83(9)]TJ/F53 8.9664 Tf -44.989 -10.959 Td [(e)2(n)2(d)-796(i)-181(f)]TJ/F46 8.9664 Tf 2.245 -10.959 Td [(.)-248(.)-249(.)]TJ -18.078 -10.959 Td [(9)-82(9)-82(9)-83(9)]TJ/F53 8.9664 Tf 27.419 0 Td [(c)-57(o)-57(n)-57(t)-56(i)-57(n)-57(u)-57(e)]TJ -9.945 -10.959 Td [(i)-181(f)]TJ/F46 8.9664 Tf 15.937 0 Td [(\050)-273(e)-164(r)-165(r)]TJ ET q -1 0 0 1 215.536 504.923 cm +1 0 0 1 164.726 504.923 cm []0 d 0 J 0.398 w 0 0 m 2.765 0 l S Q BT -/F46 8.9664 Tf 219.774 504.723 Td [(a)-164(c)-165(t)-946(.)]TJ/F53 8.9664 Tf 27.965 0 Td [(e)-22(q)]TJ/F46 8.9664 Tf 12.346 0 Td [(.)-923(a)-141(c)-141(t)]TJ +/F46 8.9664 Tf 168.965 504.723 Td [(a)-164(c)-165(t)-946(.)]TJ/F53 8.9664 Tf 27.964 0 Td [(e)-22(q)]TJ/F46 8.9664 Tf 12.347 0 Td [(.)-923(a)-141(c)-141(t)]TJ ET q -1 0 0 1 287.553 504.923 cm +1 0 0 1 236.744 504.923 cm []0 d 0 J 0.398 w 0 0 m 2.765 0 l S Q BT -/F46 8.9664 Tf 291.582 504.723 Td [(a)-141(b)-141(o)-141(r)-141(t)-249(\051)]TJ/F53 8.9664 Tf 39.166 0 Td [(t)-30(h)-29(e)-30(n)]TJ -142.758 -10.959 Td [(c)-142(a)-141(l)-142(l)]TJ/F46 8.9664 Tf 27.681 0 Td [(p)-146(s)-145(b)]TJ +/F46 8.9664 Tf 240.772 504.723 Td [(a)-141(b)-141(o)-141(r)-141(t)-249(\051)]TJ/F53 8.9664 Tf 39.166 0 Td [(t)-30(h)-30(e)-29(n)]TJ -142.758 -10.959 Td [(c)-142(a)-141(l)-142(l)]TJ/F46 8.9664 Tf 27.682 0 Td [(p)-146(s)-145(b)]TJ ET q -1 0 0 1 234.014 493.964 cm +1 0 0 1 183.205 493.964 cm []0 d 0 J 0.398 w 0 0 m 2.765 0 l S Q BT -/F46 8.9664 Tf 238.084 493.764 Td [(e)-146(r)-145(r)-146(o)-145(r)-254(\050)-252(i)-144(c)-143(o)-144(n)-143(t)-143(x)-144(t)-252(\051)]TJ/F53 8.9664 Tf -50.844 -10.959 Td [(r)-58(e)-58(t)-58(u)-58(r)-58(n)]TJ -10.529 -10.958 Td [(e)-117(l)-117(s)-117(e)]TJ 10.529 -10.959 Td [(r)-58(e)-58(t)-58(u)-58(r)-58(n)]TJ -11.596 -10.959 Td [(e)2(n)2(d)-796(i)-181(f)]TJ -16.588 -21.918 Td [(e)2(n)2(d)-675(s)-60(u)-59(b)-60(r)-60(o)-60(u)-60(t)-60(i)-60(n)-60(e)]TJ/F46 8.9664 Tf 84.142 0 Td [(p)-132(s)-132(b)]TJ +/F46 8.9664 Tf 187.274 493.764 Td [(e)-146(r)-145(r)-146(o)-145(r)-254(\050)-252(i)-144(c)-143(o)-144(n)-143(t)-143(x)-144(t)-252(\051)]TJ/F53 8.9664 Tf -50.844 -10.959 Td [(r)-58(e)-58(t)-58(u)-58(r)-58(n)]TJ -10.529 -10.958 Td [(e)-117(l)-117(s)-117(e)]TJ 10.529 -10.959 Td [(r)-58(e)-58(t)-58(u)-58(r)-58(n)]TJ -11.596 -10.959 Td [(e)2(n)2(d)-796(i)-181(f)]TJ -16.587 -21.918 Td [(e)2(n)2(d)-675(s)-59(u)-60(b)-60(r)-60(o)-60(u)-60(t)-60(i)-60(n)-59(e)]TJ/F46 8.9664 Tf 84.141 0 Td [(p)-132(s)-132(b)]TJ ET q -1 0 0 1 261.181 428.21 cm +1 0 0 1 210.371 428.21 cm []0 d 0 J 0.398 w 0 0 m 2.765 0 l S Q BT -/F46 8.9664 Tf 265.131 428.011 Td [(f)-132(o)-132(o)]TJ +/F46 8.9664 Tf 214.321 428.011 Td [(f)-132(o)-132(o)]TJ 0 g 0 G 0 g 0 G ET q -1 0 0 1 150.705 701.884 cm +1 0 0 1 99.895 701.884 cm []0 d 0 J 0.398 w 0 0 m 346.583 0 l S Q q -1 0 0 1 150.904 410.576 cm +1 0 0 1 100.095 410.576 cm []0 d 0 J 0.398 w 0 0 m 0 291.308 l S Q q -1 0 0 1 497.088 410.576 cm +1 0 0 1 446.279 410.576 cm []0 d 0 J 0.398 w 0 0 m 0 291.308 l S Q q -1 0 0 1 150.705 410.576 cm +1 0 0 1 99.895 410.576 cm []0 d 0 J 0.398 w 0 0 m 346.583 0 l S Q BT -/F8 9.9626 Tf 150.705 382.537 Td [(Figure)-329(9:)-443(The)-329(la)27(y)28(out)-329(of)-330(a)-329(generic)]TJ/F30 9.9626 Tf 147.445 0 Td [(psb)]TJ +/F8 9.9626 Tf 99.895 382.537 Td [(Figure)-329(9:)-443(The)-329(la)27(y)28(out)-329(of)-330(a)-329(generic)]TJ/F30 9.9626 Tf 147.445 0 Td [(psb)]TJ ET q -1 0 0 1 314.468 382.736 cm +1 0 0 1 263.659 382.736 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 317.606 382.537 Td [(foo)]TJ/F8 9.9626 Tf 18.974 0 Td [(routine)-329(with)-330(resp)-28(ect)-329(to)-329(PSBLAS-2.0)]TJ -185.875 -11.955 Td [(error)-333(handling)-333(p)-28(olicy)83(.)]TJ +/F30 9.9626 Tf 266.797 382.537 Td [(foo)]TJ/F8 9.9626 Tf 18.973 0 Td [(routine)-329(with)-330(resp)-28(ect)-329(to)-330(PS)1(B)-1(LAS)1(-)-1(2.)1(0)]TJ -185.875 -11.955 Td [(error)-333(handling)-333(p)-28(olicy)83(.)]TJ 0 g 0 G 0 g 0 G 0 g 0 G 0 g 0 G 0 g 0 G 0 g 0 G -/F30 9.9626 Tf 8.368 -39.475 Td [(==========================================================)]TJ 0 -11.955 Td [(Process:)-525(0.)-1050(PSBLAS)-525(Error)-525(\0504010\051)-525(in)-525(subroutine:)-525(df_sample)]TJ 0 -11.955 Td [(Error)-525(from)-525(call)-525(to)-525(subroutine)-525(mat)-525(dist)]TJ 0 -11.955 Td [(==========================================================)]TJ 0 -11.955 Td [(Process:)-525(0.)-1050(PSBLAS)-525(Error)-525(\0504010\051)-525(in)-525(subroutine:)-525(mat_distv)]TJ 0 -11.956 Td [(Error)-525(from)-525(call)-525(to)-525(subroutine)-525(psb_spasb)]TJ 0 -11.955 Td [(==========================================================)]TJ 0 -11.955 Td [(Process:)-525(0.)-1050(PSBLAS)-525(Error)-525(\0504010\051)-525(in)-525(subroutine:)-525(psb_spasb)]TJ 0 -11.955 Td [(Error)-525(from)-525(call)-525(to)-525(subroutine)-525(psb_cest)]TJ 0 -11.955 Td [(==========================================================)]TJ 0 -11.955 Td [(Process:)-525(0.)-1050(PSBLAS)-525(Error)-525(\050136\051)-525(in)-525(subroutine:)-525(psb_cest)]TJ 0 -11.956 Td [(Format)-525(FOO)-525(is)-525(unknown)]TJ 0 -11.955 Td [(==========================================================)]TJ 0 -11.955 Td [(Aborting...)]TJ +/F30 9.9626 Tf 8.369 -39.475 Td [(==========================================================)]TJ 0 -11.955 Td [(Process:)-525(0.)-1050(PSBLAS)-525(Error)-525(\0504010\051)-525(in)-525(subroutine:)-525(df_sample)]TJ 0 -11.955 Td [(Error)-525(from)-525(call)-525(to)-525(subroutine)-525(mat)-525(dist)]TJ 0 -11.955 Td [(==========================================================)]TJ 0 -11.955 Td [(Process:)-525(0.)-1050(PSBLAS)-525(Error)-525(\0504010\051)-525(in)-525(subroutine:)-525(mat_distv)]TJ 0 -11.956 Td [(Error)-525(from)-525(call)-525(to)-525(subroutine)-525(psb_spasb)]TJ 0 -11.955 Td [(==========================================================)]TJ 0 -11.955 Td [(Process:)-525(0.)-1050(PSBLAS)-525(Error)-525(\0504010\051)-525(in)-525(subroutine:)-525(psb_spasb)]TJ 0 -11.955 Td [(Error)-525(from)-525(call)-525(to)-525(subroutine)-525(psb_cest)]TJ 0 -11.955 Td [(==========================================================)]TJ 0 -11.955 Td [(Process:)-525(0.)-1050(PSBLAS)-525(Error)-525(\050136\051)-525(in)-525(subroutine:)-525(psb_cest)]TJ 0 -11.956 Td [(Format)-525(FOO)-525(is)-525(unknown)]TJ 0 -11.955 Td [(==========================================================)]TJ 0 -11.955 Td [(Aborting...)]TJ ET q -1 0 0 1 150.705 343.417 cm +1 0 0 1 99.895 343.417 cm []0 d 0 J 0.398 w 0 0 m 346.583 0 l S Q q -1 0 0 1 150.904 165.307 cm +1 0 0 1 100.095 165.307 cm []0 d 0 J 0.398 w 0 0 m 0 178.111 l S Q q -1 0 0 1 497.088 165.307 cm +1 0 0 1 446.279 165.307 cm []0 d 0 J 0.398 w 0 0 m 0 178.111 l S Q q -1 0 0 1 150.705 165.307 cm +1 0 0 1 99.895 165.307 cm []0 d 0 J 0.398 w 0 0 m 346.583 0 l S Q BT -/F8 9.9626 Tf 150.705 137.267 Td [(Figure)-386(10:)-551(A)-386(sample)-386(PSBLAS-2.0)-387(err)1(or)-387(message.)-603(Pro)-28(cess)-387(0)-386(detected)-386(an)-387(error)]TJ 0 -11.955 Td [(condition)-333(inside)-334(t)1(he)-334(psb)]TJ +/F8 9.9626 Tf 99.895 137.267 Td [(Figure)-386(10:)-551(A)-386(sample)-386(PSBLAS-2.0)-387(error)-386(message.)-603(Pro)-28(cess)-387(0)-386(detected)-386(an)-387(error)]TJ 0 -11.955 Td [(condition)-333(inside)-334(the)-333(psb)]TJ ET q -1 0 0 1 255.468 125.512 cm +1 0 0 1 204.658 125.512 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 258.457 125.312 Td [(cest)-333(subroutine)]TJ +/F8 9.9626 Tf 207.647 125.312 Td [(cest)-333(s)-1(u)1(broutine)]TJ 0 g 0 G 0 g 0 G - 56.631 -34.874 Td [(116)]TJ + 56.632 -34.874 Td [(117)]TJ 0 g 0 G ET endstream endobj -1612 0 obj +1625 0 obj << -/Length 3725 +/Length 3723 >> stream 0 g 0 G @@ -19487,53 +19614,53 @@ stream 0 g 0 G 0 g 0 G BT -/F16 14.3462 Tf 99.895 680.226 Td [(psb)]TJ +/F16 14.3462 Tf 150.705 680.226 Td [(psb)]TJ ET q -1 0 0 1 125.163 680.425 cm +1 0 0 1 175.972 680.425 cm []0 d 0 J 0.398 w 0 0 m 4.842 0 l S Q BT -/F16 14.3462 Tf 130.004 680.226 Td [(errpush|Pushes)-375(an)-375(error)-375(co)-31(de)-375(on)31(to)-375(the)]TJ -30.109 -17.933 Td [(error)-375(stac)31(k)]TJ/F27 9.9626 Tf 1.377 -35.768 Td [(c)-138(a)-138(l)-139(l)]TJ/F8 9.9626 Tf 29.712 0 Td [(p)-120(s)-121(b)]TJ +/F16 14.3462 Tf 180.814 680.226 Td [(errpush|Pushes)-375(an)-375(error)-375(co)-31(de)-375(on)31(to)-375(the)]TJ -30.109 -17.933 Td [(error)-375(stac)31(k)]TJ/F27 9.9626 Tf 1.377 -35.768 Td [(c)-138(a)-138(l)-139(l)]TJ/F8 9.9626 Tf 29.711 0 Td [(p)-120(s)-121(b)]TJ ET q -1 0 0 1 150.181 626.724 cm +1 0 0 1 200.991 626.724 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 154.37 626.525 Td [(e)-121(r)-120(r)-120(p)-121(u)-120(s)-121(h)-226(\050)-244(e)-138(r)-138(r)]TJ +/F8 9.9626 Tf 205.18 626.525 Td [(e)-120(r)-121(r)-120(p)-121(u)-120(s)-121(h)-226(\050)-244(e)-138(r)-138(r)]TJ ET q -1 0 0 1 219.855 626.724 cm +1 0 0 1 270.664 626.724 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 224.221 626.525 Td [(c)-438(,)-825(r)]TJ +/F8 9.9626 Tf 275.03 626.525 Td [(c)-438(,)-825(r)]TJ ET q -1 0 0 1 249.141 626.724 cm +1 0 0 1 299.951 626.724 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 252.772 626.525 Td [(n)-64(a)-65(m)-64(e)-290(,)-923(i)]TJ +/F8 9.9626 Tf 303.581 626.525 Td [(n)-64(a)-65(m)-64(e)-290(,)-923(i)]TJ ET q -1 0 0 1 297.774 626.724 cm +1 0 0 1 348.584 626.724 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 302.378 626.525 Td [(e)-162(r)-162(r)-485(,)-913(a)]TJ +/F8 9.9626 Tf 353.187 626.525 Td [(e)-162(r)-162(r)-485(,)-914(a)]TJ ET q -1 0 0 1 341.632 626.724 cm +1 0 0 1 392.442 626.724 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 346.136 626.525 Td [(e)-152(r)-152(r)-258(\051)]TJ +/F8 9.9626 Tf 396.945 626.525 Td [(e)-152(r)-152(r)-258(\051)]TJ 0 g 0 G 0 g 0 G 0 g 0 G -/F27 9.9626 Tf -246.241 -17.933 Td [(T)32(yp)-32(e:)]TJ +/F27 9.9626 Tf -246.24 -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 @@ -19543,56 +19670,56 @@ BT 0 -19.926 Td [(err)]TJ ET q -1 0 0 1 115.271 568.941 cm +1 0 0 1 166.08 568.941 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 118.708 568.741 Td [(c)]TJ +/F27 9.9626 Tf 169.517 568.741 Td [(c)]TJ 0 g 0 G -/F8 9.9626 Tf 10.073 0 Td [(the)-333(error)-334(co)-27(de)]TJ -3.979 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(in)28(teger.)]TJ +/F8 9.9626 Tf 10.074 0 Td [(the)-333(error)-334(co)-27(de)]TJ -3.98 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.612 0 Td [(required)]TJ/F8 9.9626 Tf -29.612 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.548 0 Td [(.)]TJ -43.034 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(in)28(teger.)]TJ 0 g 0 G -/F27 9.9626 Tf -24.907 -19.926 Td [(r)]TJ +/F27 9.9626 Tf -24.906 -19.926 Td [(r)]TJ ET q -1 0 0 1 105.301 501.195 cm +1 0 0 1 156.111 501.195 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 108.738 500.995 Td [(name)]TJ +/F27 9.9626 Tf 159.548 500.995 Td [(name)]TJ 0 g 0 G -/F8 9.9626 Tf 31.715 0 Td [(the)-333(soutine)-334(where)-333(the)-333(error)-334(has)-333(b)-28(een)-333(caugh)28(t.)]TJ -15.651 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(string.)]TJ +/F8 9.9626 Tf 31.714 0 Td [(the)-333(soutine)-334(where)-333(the)-333(error)-334(has)-333(b)-28(een)-333(caugh)28(t.)]TJ -15.651 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.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(string.)]TJ 0 g 0 G -/F27 9.9626 Tf -24.907 -31.881 Td [(i)]TJ +/F27 9.9626 Tf -24.906 -31.881 Td [(i)]TJ ET q -1 0 0 1 103.765 421.494 cm +1 0 0 1 154.575 421.494 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 107.202 421.294 Td [(err)]TJ +/F27 9.9626 Tf 158.012 421.294 Td [(err)]TJ 0 g 0 G -/F8 9.9626 Tf 19.67 0 Td [(addional)-333(info)-333(for)-334(error)-333(co)-28(de)]TJ -2.07 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(optional)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(in)28(teger)-333(arra)27(y)]TJ +/F8 9.9626 Tf 19.669 0 Td [(addional)-333(info)-333(for)-334(error)-333(co)-28(de)]TJ -2.07 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.612 0 Td [(optional)]TJ/F8 9.9626 Tf -29.612 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(in)28(teger)-333(arra)27(y)]TJ 0 g 0 G -/F27 9.9626 Tf -24.907 -31.881 Td [(a)]TJ +/F27 9.9626 Tf -24.906 -31.881 Td [(a)]TJ ET q -1 0 0 1 106.152 353.748 cm +1 0 0 1 156.962 353.748 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 109.589 353.548 Td [(err)]TJ +/F27 9.9626 Tf 160.399 353.548 Td [(err)]TJ 0 g 0 G -/F8 9.9626 Tf 19.669 0 Td [(addional)-333(info)-333(for)-334(error)-333(co)-28(de)]TJ -4.456 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(optional)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(string.)]TJ +/F8 9.9626 Tf 19.669 0 Td [(addional)-333(info)-333(for)-334(error)-333(co)-28(de)]TJ -4.457 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.612 0 Td [(optional)]TJ/F8 9.9626 Tf -29.612 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(string.)]TJ 0 g 0 G - 139.477 -227.245 Td [(117)]TJ + 139.477 -227.245 Td [(118)]TJ 0 g 0 G ET endstream endobj -1618 0 obj +1631 0 obj << -/Length 1400 +/Length 1398 >> stream 0 g 0 G @@ -19600,21 +19727,21 @@ stream 0 g 0 G 0 g 0 G BT -/F16 14.3462 Tf 150.705 680.226 Td [(psb)]TJ +/F16 14.3462 Tf 99.895 680.226 Td [(psb)]TJ ET q -1 0 0 1 175.972 680.425 cm +1 0 0 1 125.163 680.425 cm []0 d 0 J 0.398 w 0 0 m 4.842 0 l S Q BT -/F16 14.3462 Tf 180.814 680.226 Td [(error|Prin)31(ts)-375(the)-375(error)-375(stac)32(k)-375(con)31(ten)31(t)-375(and)]TJ -30.109 -17.933 Td [(ab)-31(orts)-375(execution)]TJ/F27 9.9626 Tf 1.377 -35.768 Td [(c)-138(a)-138(l)-139(l)]TJ/F8 9.9626 Tf 29.921 0 Td [(p)-141(s)-142(b)]TJ +/F16 14.3462 Tf 130.004 680.226 Td [(error|Prin)31(ts)-375(the)-375(error)-375(stac)32(k)-375(con)31(ten)31(t)-375(and)]TJ -30.109 -17.933 Td [(ab)-31(orts)-375(execution)]TJ/F27 9.9626 Tf 1.377 -35.768 Td [(c)-138(a)-138(l)-139(l)]TJ/F8 9.9626 Tf 29.921 0 Td [(p)-141(s)-142(b)]TJ ET q -1 0 0 1 201.829 626.724 cm +1 0 0 1 151.02 626.724 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 206.228 626.525 Td [(e)-142(r)-141(r)-141(o)-142(r)-247(\050)-245(i)-140(c)-139(o)-140(n)-139(t)-140(x)-140(t)-245(\051)]TJ +/F8 9.9626 Tf 155.418 626.525 Td [(e)-142(r)-141(r)-142(o)-141(r)-247(\050)-245(i)-140(c)-139(o)-140(n)-140(t)-139(x)-140(t)-245(\051)]TJ 0 g 0 G 0 g 0 G 0 g 0 G @@ -19627,17 +19754,17 @@ BT 0 g 0 G 0 -19.926 Td [(icon)32(txt)]TJ 0 g 0 G -/F8 9.9626 Tf 39.989 0 Td [(the)-333(comm)27(unication)-333(con)28(text.)]TJ -15.082 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.378 0 Td [(global)]TJ/F8 9.9626 Tf -32.378 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(optional)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.485 0 Td [(in)]TJ/F8 9.9626 Tf 9.548 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-444(an)-334(in)28(teger.)]TJ +/F8 9.9626 Tf 39.989 0 Td [(the)-333(comm)27(unication)-333(con)28(text.)]TJ -15.082 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(global)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(optional)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(in)28(teger.)]TJ 0 g 0 G - 139.476 -430.483 Td [(118)]TJ + 139.477 -430.483 Td [(119)]TJ 0 g 0 G ET endstream endobj -1624 0 obj +1637 0 obj << -/Length 1631 +/Length 1632 >> stream 0 g 0 G @@ -19645,39 +19772,39 @@ stream 0 g 0 G 0 g 0 G BT -/F16 14.3462 Tf 99.895 680.226 Td [(psb)]TJ +/F16 14.3462 Tf 150.705 680.226 Td [(psb)]TJ ET q -1 0 0 1 125.163 680.425 cm +1 0 0 1 175.972 680.425 cm []0 d 0 J 0.398 w 0 0 m 4.842 0 l S Q BT -/F16 14.3462 Tf 130.004 680.226 Td [(set)]TJ +/F16 14.3462 Tf 180.814 680.226 Td [(set)]TJ ET q -1 0 0 1 150.979 680.425 cm +1 0 0 1 201.789 680.425 cm []0 d 0 J 0.398 w 0 0 m 4.842 0 l S Q BT -/F16 14.3462 Tf 155.821 680.226 Td [(errv)31(erb)-31(osit)31(y|Sets)-375(the)-375(v)31(erb)-31(osit)31(y)-375(of)-375(error)]TJ -55.926 -17.933 Td [(messages.)]TJ/F27 9.9626 Tf 1.377 -35.768 Td [(c)-138(a)-138(l)-139(l)]TJ/F8 9.9626 Tf 30.082 0 Td [(p)-158(s)-157(b)]TJ +/F16 14.3462 Tf 206.631 680.226 Td [(errv)31(erb)-31(osit)31(y|Sets)-375(the)-375(v)31(erb)-31(osit)32(y)-376(of)-375(error)]TJ -55.926 -17.933 Td [(messages.)]TJ/F27 9.9626 Tf 1.377 -35.768 Td [(c)-138(a)-138(l)-139(l)]TJ/F8 9.9626 Tf 30.082 0 Td [(p)-158(s)-157(b)]TJ ET q -1 0 0 1 151.663 626.724 cm +1 0 0 1 202.473 626.724 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 156.223 626.525 Td [(s)-158(e)-157(t)]TJ +/F8 9.9626 Tf 207.032 626.525 Td [(s)-158(e)-157(t)]TJ ET q -1 0 0 1 173.764 626.724 cm +1 0 0 1 224.574 626.724 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 178.324 626.525 Td [(e)-158(r)-157(r)-158(v)-158(e)-157(r)-158(b)-157(o)-158(s)-158(i)-157(t)-158(y)-263(\050)-142(v)-142(\051)]TJ +/F8 9.9626 Tf 229.133 626.525 Td [(e)-158(r)-157(r)-158(v)-158(e)-157(r)-158(b)-157(o)-158(s)-158(i)-157(t)-158(y)-263(\050)-142(v)-142(\051)]TJ 0 g 0 G 0 g 0 G 0 g 0 G -/F27 9.9626 Tf -78.429 -17.933 Td [(T)32(yp)-32(e:)]TJ +/F27 9.9626 Tf -78.428 -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 @@ -19686,17 +19813,17 @@ BT 0 g 0 G 0 -19.926 Td [(v)]TJ 0 g 0 G -/F8 9.9626 Tf 11.028 0 Td [(the)-333(v)27(erb)-27(osit)27(y)-333(lev)28(el)]TJ 13.879 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(global)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(in)28(teger.)]TJ +/F8 9.9626 Tf 11.028 0 Td [(the)-333(v)27(erb)-27(osit)27(y)-333(lev)28(el)]TJ 13.878 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(global)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.612 0 Td [(required)]TJ/F8 9.9626 Tf -29.612 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.548 0 Td [(.)]TJ -43.034 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(in)28(teger.)]TJ 0 g 0 G - 139.477 -430.483 Td [(119)]TJ + 139.477 -430.483 Td [(120)]TJ 0 g 0 G ET endstream endobj -1630 0 obj +1643 0 obj << -/Length 2106 +/Length 2103 >> stream 0 g 0 G @@ -19704,42 +19831,42 @@ stream 0 g 0 G 0 g 0 G BT -/F16 14.3462 Tf 150.705 680.226 Td [(psb)]TJ +/F16 14.3462 Tf 99.895 680.226 Td [(psb)]TJ ET q -1 0 0 1 175.972 680.425 cm +1 0 0 1 125.163 680.425 cm []0 d 0 J 0.398 w 0 0 m 4.842 0 l S Q BT -/F16 14.3462 Tf 180.814 680.226 Td [(set)]TJ +/F16 14.3462 Tf 130.004 680.226 Td [(set)]TJ ET q -1 0 0 1 201.789 680.425 cm +1 0 0 1 150.979 680.425 cm []0 d 0 J 0.398 w 0 0 m 4.842 0 l S Q BT -/F16 14.3462 Tf 206.631 680.226 Td [(erraction|Set)-375(the)-375(t)31(yp)-31(e)-375(of)-375(action)-375(to)-375(b)-31(e)]TJ -55.926 -17.933 Td [(tak)31(en)-375(up)-31(on)-375(error)-375(condition.)]TJ/F27 9.9626 Tf 1.377 -35.768 Td [(c)-138(a)-138(l)-139(l)]TJ/F8 9.9626 Tf 30.09 0 Td [(p)-158(s)-159(b)]TJ +/F16 14.3462 Tf 155.821 680.226 Td [(erraction|Set)-375(the)-375(t)31(yp)-31(e)-375(of)-375(action)-375(to)-375(b)-31(e)]TJ -55.926 -17.933 Td [(tak)31(en)-375(up)-31(on)-375(error)-375(condition.)]TJ/F27 9.9626 Tf 1.377 -35.768 Td [(c)-138(a)-138(l)-139(l)]TJ/F8 9.9626 Tf 30.09 0 Td [(p)-158(s)-159(b)]TJ ET q -1 0 0 1 202.505 626.724 cm +1 0 0 1 151.695 626.724 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 207.072 626.525 Td [(s)-159(e)-158(t)]TJ +/F8 9.9626 Tf 156.263 626.525 Td [(s)-159(e)-158(t)]TJ ET q -1 0 0 1 224.638 626.724 cm +1 0 0 1 173.829 626.724 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 229.206 626.525 Td [(e)-158(r)-159(r)-158(a)-159(c)-158(t)-159(i)-158(o)-159(n)-264(\050)-265(e)-160(r)-160(r)]TJ +/F8 9.9626 Tf 178.396 626.525 Td [(e)-159(r)-158(r)-158(a)-159(c)-158(t)-159(i)-158(o)-159(n)-264(\050)-265(e)-160(r)-160(r)]TJ ET q -1 0 0 1 307.391 626.724 cm +1 0 0 1 256.582 626.724 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 311.973 626.525 Td [(a)-160(c)-160(t)-265(\051)]TJ +/F8 9.9626 Tf 261.163 626.525 Td [(a)-160(c)-160(t)-265(\051)]TJ 0 g 0 G 0 g 0 G 0 g 0 G @@ -19753,59 +19880,59 @@ BT 0 -19.926 Td [(err)]TJ ET q -1 0 0 1 166.08 568.941 cm +1 0 0 1 115.271 568.941 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 169.517 568.741 Td [(act)]TJ +/F27 9.9626 Tf 118.708 568.741 Td [(act)]TJ 0 g 0 G -/F8 9.9626 Tf 20.098 0 Td [(the)-333(t)27(yp)-27(e)-334(of)-333(action.)]TJ -14.004 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(global)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.612 0 Td [(required)]TJ/F8 9.9626 Tf -29.612 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(in)28(teger.)-445(P)28(ossible)-333(v)55(alu)1(e)-1(s:)]TJ/F30 9.9626 Tf 180.269 0 Td [(psb_act_ret)]TJ/F8 9.9626 Tf 57.534 0 Td [(,)]TJ/F30 9.9626 Tf 6.088 0 Td [(psb_act_abort)]TJ/F8 9.9626 Tf 67.995 0 Td [(.)]TJ +/F8 9.9626 Tf 20.098 0 Td [(the)-333(t)27(yp)-27(e)-334(of)-333(action.)]TJ -14.004 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(global)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(in)28(teger.)-444(P)27(ossible)-333(v)56(alues)-1(:)]TJ/F30 9.9626 Tf 180.269 0 Td [(psb_act_ret)]TJ/F8 9.9626 Tf 57.533 0 Td [(,)]TJ/F30 9.9626 Tf 6.089 0 Td [(psb_act_abort)]TJ/F8 9.9626 Tf 67.994 0 Td [(.)]TJ 0 g 0 G - -172.409 -430.483 Td [(120)]TJ + -172.408 -430.483 Td [(121)]TJ 0 g 0 G ET endstream endobj -1636 0 obj +1650 0 obj << -/Length 538 +/Length 543 >> stream 0 g 0 G 0 g 0 G BT -/F16 14.3462 Tf 99.895 706.129 Td [(9)-1125(Utilities)]TJ/F8 9.9626 Tf 0 -21.821 Td [(W)83(e)-381(ha)28(v)27(e)-381(some)-382(utitlities)-381(a)27(v)56(ailable)-382(for)-381(input)-381(and)-382(output)-381(of)-382(sparse)-382(matri)1(c)-1(es;)-405(the)]TJ 0 -11.955 Td [(in)28(terfaces)-334(to)-333(these)-333(routines)-334(are)-333(a)28(v)55(ailable)-333(in)-333(the)-334(mo)-27(dule)]TJ/F30 9.9626 Tf 241.844 0 Td [(psb_util_mod)]TJ/F8 9.9626 Tf 62.764 0 Td [(.)]TJ +/F16 14.3462 Tf 150.705 706.129 Td [(9)-1125(Utilities)]TJ/F8 9.9626 Tf 0 -21.821 Td [(W)83(e)-381(ha)28(v)27(e)-381(some)-382(utitlities)-381(a)27(v)56(ailable)-382(for)-381(input)-381(and)-382(output)-381(of)-382(sparse)-381(ma)-1(t)1(rice)-1(s;)-405(the)]TJ 0 -11.955 Td [(in)28(terfaces)-334(to)-333(these)-333(routines)-334(are)-333(a)28(v)55(ailable)-333(in)-333(the)-334(mo)-27(dule)]TJ/F30 9.9626 Tf 241.843 0 Td [(psb_util_mod)]TJ/F8 9.9626 Tf 62.764 0 Td [(.)]TJ 0 g 0 G - -140.224 -581.915 Td [(121)]TJ + -140.224 -581.915 Td [(122)]TJ 0 g 0 G ET endstream endobj -1642 0 obj +1655 0 obj << -/Length 4778 +/Length 4792 >> stream 0 g 0 G 0 g 0 G BT -/F16 11.9552 Tf 153.976 706.129 Td [(h)31(b)]TJ +/F16 11.9552 Tf 103.166 706.129 Td [(h)31(b)]TJ ET q -1 0 0 1 169.353 706.328 cm +1 0 0 1 118.544 706.328 cm []0 d 0 J 0.398 w 0 0 m 4.035 0 l S Q BT -/F16 11.9552 Tf 173.388 706.129 Td [(read)-274(|)-273(Read)-274(a)-273(sparse)-274(matrix)-274(from)-273(a)-274(\014le)-274(in)-273(the)-274(Harw)32(ell{)]TJ -22.683 -13.948 Td [(Bo)-31(eing)-375(format)]TJ/F27 9.9626 Tf 1.377 -24.367 Td [(c)-138(a)-138(l)-139(l)]TJ/F8 9.9626 Tf 29.554 0 Td [(h)-105(b)]TJ +/F16 11.9552 Tf 122.579 706.129 Td [(read)-274(|)-273(Read)-274(a)-273(sparse)-274(matrix)-274(from)-273(a)-274(\014le)-273(in)-274(the)-274(Harw)32(ell{)]TJ -22.684 -13.948 Td [(Bo)-31(eing)-375(format)]TJ/F27 9.9626 Tf 1.377 -24.367 Td [(c)-138(a)-138(l)-139(l)]TJ/F8 9.9626 Tf 29.554 0 Td [(h)-105(b)]TJ ET q -1 0 0 1 195.388 668.014 cm +1 0 0 1 144.579 668.014 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 199.42 667.814 Td [(r)-105(e)-104(a)-105(d)-210(\050)-139(a)-228(,)-910(i)-150(r)-150(e)-149(t)-460(,)-896(i)-135(u)-135(n)-135(i)-135(t)-431(,)-877(f)-116(i)-116(l)-116(e)-116(n)-117(a)-116(m)-116(e)-393(,)-776(b)-191(,)-902(m)-142(t)-141(i)-141(t)-141(l)-142(e)-246(\051)]TJ +/F8 9.9626 Tf 148.61 667.814 Td [(r)-105(e)-104(a)-105(d)-210(\050)-139(a)-228(,)-911(i)-149(r)-150(e)-149(t)-460(,)-896(i)-135(u)-135(n)-135(i)-135(t)-431(,)-877(f)-116(i)-116(l)-116(e)-117(n)-116(a)-116(m)-116(e)-393(,)-776(b)-191(,)-902(m)-142(t)-141(i)-141(t)-141(l)-142(e)-247(\051)]TJ 0 g 0 G 0 g 0 G 0 g 0 G @@ -19818,689 +19945,685 @@ BT 0 g 0 G 0 -19.925 Td [(\014lename)]TJ 0 g 0 G -/F8 9.9626 Tf 46.513 0 Td [(The)-333(name)-334(of)-333(the)-333(\014le)-334(to)-333(b)-28(e)-333(read.)]TJ -21.606 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.183 0 Td [(optional)]TJ/F8 9.9626 Tf 40.577 0 Td [(.)]TJ -65.76 -11.955 Td [(Sp)-28(eci\014ed)-435(as:)-648(a)-435(c)28(haracte)-1(r)-435(v)56(ariable)-435(con)28(taining)-435(a)-436(v)56(alid)-435(\014le)-435(name,)-461(or)]TJ/F30 9.9626 Tf 297.915 0 Td [(-)]TJ/F8 9.9626 Tf 5.23 0 Td [(,)-461(in)]TJ -303.145 -11.956 Td [(whic)28(h)-302(case)-303(the)-302(default)-302(input)-302(unit)-302(5)-303(\050i.e.)-434(standard)-302(input)-302(in)-302(Unix)-302(jargon\051)-302(is)]TJ 0 -11.955 Td [(used.)-444(Default:)]TJ/F30 9.9626 Tf 66.057 0 Td [(-)]TJ/F8 9.9626 Tf 5.231 0 Td [(.)]TJ +/F8 9.9626 Tf 46.513 0 Td [(The)-333(name)-334(of)-333(the)-333(\014le)-334(to)-333(b)-28(e)-333(read.)]TJ -21.606 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.183 0 Td [(optional)]TJ/F8 9.9626 Tf 40.577 0 Td [(.)]TJ -65.76 -11.955 Td [(Sp)-28(eci\014ed)-435(as:)-648(a)-435(c)27(h)1(arac)-1(ter)-435(v)56(ariable)-435(con)28(taining)-436(a)-435(v)56(alid)-435(\014le)-435(name,)-461(or)]TJ/F30 9.9626 Tf 297.915 0 Td [(-)]TJ/F8 9.9626 Tf 5.231 0 Td [(,)-461(in)]TJ -303.146 -11.956 Td [(whic)28(h)-302(cas)-1(e)-302(the)-302(default)-302(input)-302(unit)-302(5)-303(\050i.e.)-434(standard)-302(input)-302(in)-302(Unix)-302(jargon\051)-302(is)]TJ 0 -11.955 Td [(used.)-444(Default:)]TJ/F30 9.9626 Tf 66.058 0 Td [(-)]TJ/F8 9.9626 Tf 5.23 0 Td [(.)]TJ 0 g 0 G /F27 9.9626 Tf -96.195 -19.925 Td [(iunit)]TJ 0 g 0 G -/F8 9.9626 Tf 28.532 0 Td [(The)-333(F)83(ortran)-333(\014le)-334(u)1(nit)-334(n)28(um)28(b)-28(er.)]TJ -3.625 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.183 0 Td [(optional)]TJ/F8 9.9626 Tf 40.577 0 Td [(.)]TJ -65.76 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-444(an)-334(in)28(teger)-333(v)55(alue.)-444(Only)-333(me)-1(an)1(ingful)-334(if)-333(\014lename)-333(is)-334(not)]TJ/F30 9.9626 Tf 286.288 0 Td [(-)]TJ/F8 9.9626 Tf 5.23 0 Td [(.)]TJ +/F8 9.9626 Tf 28.532 0 Td [(The)-333(F)83(ortran)-333(\014le)-334(un)1(it)-334(n)28(um)28(b)-28(er.)]TJ -3.625 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.183 0 Td [(optional)]TJ/F8 9.9626 Tf 40.577 0 Td [(.)]TJ -65.76 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(in)28(teger)-333(v)55(alue.)-444(Only)-333(me)-1(ani)1(ngful)-334(if)-333(\014lename)-333(is)-334(not)]TJ/F30 9.9626 Tf 286.288 0 Td [(-)]TJ/F8 9.9626 Tf 5.23 0 Td [(.)]TJ 0 g 0 G /F27 9.9626 Tf -316.425 -21.918 Td [(On)-383(Return)]TJ 0 g 0 G 0 g 0 G 0 -19.925 Td [(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 [(b)]TJ -0 g 0 G -/F8 9.9626 Tf 11.346 0 Td [(Rigth)-333(hand)-334(sid)1(e)-1(\050s\051.)]TJ 13.56 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.612 0 Td [(Optional)]TJ/F8 9.9626 Tf -29.612 -11.955 Td [(An)-282(arr)1(a)27(y)-281(of)-282(t)28(yp)-28(e)-281(real)-282(or)-281(complex,)-292(rank)-282(2)-281(and)-282(ha)28(ving)-281(the)-282(ALLOCA)83(T)84(ABLE)]TJ 0 -11.956 Td [(attribute;)-409(will)-384(b)-28(e)-384(allo)-28(cated)-384(and)-383(\014lled)-384(in)-384(if)-384(the)-384(input)-384(\014le)-384(con)28(tains)-384(a)-384(righ)28(t)]TJ 0 -11.955 Td [(hand)-333(side,)-334(otherwise)-333(will)-333(b)-28(e)-333(left)-334(in)-333(the)-333(UNALLOCA)83(TED)-333(state.)]TJ -0 g 0 G -/F27 9.9626 Tf -24.906 -19.925 Td [(m)32(title)]TJ -0 g 0 G -/F8 9.9626 Tf 34.737 0 Td [(Matrix)-333(title.)]TJ -9.831 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.612 0 Td [(Optional)]TJ/F8 9.9626 Tf -29.612 -11.955 Td [(A)-405(c)28(harac)28(h)28(ter)-405(v)56(ariable)-405(of)-405(length)-404(72)-405(holding)-405(a)-404(cop)27(y)-404(of)-405(the)-405(matrix)-404(title)-405(as)]TJ 0 -11.956 Td [(sp)-28(eci\014ed)-333(b)28(y)-334(the)-333(Harw)28(ell-Bo)-28(eing)-333(format)-334(and)-333(con)28(tained)-333(in)-334(the)-333(input)-333(\014le.)]TJ -0 g 0 G -/F27 9.9626 Tf -24.906 -19.925 Td [(iret)]TJ -0 g 0 G -/F8 9.9626 Tf 22.589 0 Td [(Error)-333(co)-28(de.)]TJ 2.317 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.612 0 Td [(required)]TJ/F8 9.9626 Tf -29.612 -11.955 Td [(An)-333(in)27(t)1(e)-1(ger)-333(v)56(alue;)-334(0)-333(means)-333(no)-334(error)-333(has)-333(b)-28(een)-333(detec)-1(ted.)]TJ -0 g 0 G - 139.477 -194.811 Td [(122)]TJ -0 g 0 G -ET - -endstream -endobj -1649 0 obj -<< -/Length 5258 ->> -stream -0 g 0 G -0 g 0 G -BT -/F16 11.9552 Tf 99.895 706.129 Td [(h)31(b)]TJ -ET -q -1 0 0 1 115.273 706.328 cm -[]0 d 0 J 0.398 w 0 0 m 4.035 0 l S -Q -BT -/F16 11.9552 Tf 119.308 706.129 Td [(write)-357(|)-357(W)93(rite)-357(a)-357(sparse)-357(matrix)-357(to)-358(a)-357(\014le)-357(in)-357(the)-357(Harw)31(ell{)]TJ -19.413 -13.948 Td [(Bo)-31(eing)-375(format)]TJ/F27 9.9626 Tf 1.377 -24.367 Td [(c)-138(a)-138(l)-139(l)]TJ/F8 9.9626 Tf 29.734 0 Td [(h)-123(b)]TJ -ET -q -1 0 0 1 145.117 668.014 cm -[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S -Q -BT -/F8 9.9626 Tf 149.328 667.814 Td [(w)-123(r)-122(i)-123(t)-123(e)-228(\050)-139(a)-228(,)-910(i)-150(r)-149(e)-150(t)-460(,)-896(i)-135(u)-135(n)-135(i)-135(t)-431(,)-877(f)-116(i)-116(l)-116(e)-116(n)-116(a)-116(m)-117(e)-393(,)-821(k)-60(e)-60(y)-281(,)-853(r)-92(h)-91(s)-345(,)-902(m)-141(t)-142(i)-141(t)-141(l)-141(e)-247(\051)]TJ -0 g 0 G -0 g 0 G -0 g 0 G -/F27 9.9626 Tf -49.433 -17.933 Td [(T)32(yp)-32(e:)]TJ -0 g 0 G -/F8 9.9626 Tf 33.797 0 Td [(Async)28(hronous.)]TJ -0 g 0 G -/F27 9.9626 Tf -33.797 -19.925 Td [(On)-383(En)32(try)]TJ -0 g 0 G -0 g 0 G - 0 -19.925 Td [(a)]TJ -0 g 0 G -/F8 9.9626 Tf 10.551 0 Td [(the)-333(sparse)-334(matrix)-333(to)-333(b)-28(e)-333(written.)]TJ 14.356 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.183 0 Td [(required)]TJ/F8 9.9626 Tf 41.899 0 Td [(.)]TJ -67.082 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(structured)-333(data)-333(of)-334(t)28(yp)-28(e)]TJ +/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.899 0 Td [(.)]TJ -67.082 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(structured)-333(data)-333(of)-334(t)28(yp)-28(e)]TJ 0 0 1 rg 0 0 1 RG /F30 9.9626 Tf 170.915 0 Td [(psb)]TJ ET q -1 0 0 1 312.036 586.32 cm +1 0 0 1 312.036 452.82 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 315.174 586.121 Td [(Tspmat)]TJ +/F30 9.9626 Tf 315.174 452.621 Td [(Tspmat)]TJ ET q -1 0 0 1 347.183 586.32 cm +1 0 0 1 347.183 452.82 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 350.322 586.121 Td [(type)]TJ +/F30 9.9626 Tf 350.322 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.348 -19.926 Td [(b)]TJ -0 g 0 G -/F8 9.9626 Tf 11.347 0 Td [(Rigth)-333(hand)-333(s)-1(i)1(de.)]TJ 13.56 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(Optional)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(An)-282(ar)1(ra)27(y)-281(of)-282(t)28(yp)-28(e)-281(real)-282(or)-281(complex,)-292(rank)-282(1)-281(and)-282(ha)28(ving)-281(the)-282(ALLOCA)83(T)84(ABLE)]TJ 0 -11.955 Td [(attribute;)-409(will)-384(b)-28(e)-384(allo)-28(cated)-384(an)1(d)-384(\014lled)-384(in)-384(if)-384(the)-384(input)-384(\014le)-384(con)28(tains)-384(a)-384(righ)28(t)]TJ 0 -11.955 Td [(hand)-333(side.)]TJ +/F27 9.9626 Tf -271.348 -19.925 Td [(b)]TJ 0 g 0 G -/F27 9.9626 Tf -24.907 -19.926 Td [(\014lename)]TJ -0 g 0 G -/F8 9.9626 Tf 46.513 0 Td [(The)-333(name)-334(of)-333(the)-333(\014le)-334(to)-333(b)-28(e)-333(written)-333(to.)]TJ -21.606 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.183 0 Td [(optional)]TJ/F8 9.9626 Tf 40.577 0 Td [(.)]TJ -65.76 -11.955 Td [(Sp)-28(eci\014ed)-435(as:)-648(a)-435(c)27(h)1(arac)-1(ter)-435(v)56(ariable)-435(con)28(taining)-436(a)-435(v)56(alid)-435(\014le)-435(name,)-461(or)]TJ/F30 9.9626 Tf 297.915 0 Td [(-)]TJ/F8 9.9626 Tf 5.231 0 Td [(,)-461(in)]TJ -303.146 -11.955 Td [(whic)28(h)-281(case)-280(the)-280(default)-281(output)-280(unit)-280(6)-281(\050i.e.)-426(s)-1(t)1(andard)-281(output)-280(in)-280(Unix)-281(jargon\051)]TJ 0 -11.955 Td [(is)-333(used.)-445(Default:)]TJ/F30 9.9626 Tf 76.076 0 Td [(-)]TJ/F8 9.9626 Tf 5.23 0 Td [(.)]TJ -0 g 0 G -/F27 9.9626 Tf -106.213 -19.926 Td [(iunit)]TJ -0 g 0 G -/F8 9.9626 Tf 28.532 0 Td [(The)-333(F)83(ortran)-333(\014le)-334(un)1(it)-334(n)28(um)28(b)-28(er.)]TJ -3.625 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.183 0 Td [(optional)]TJ/F8 9.9626 Tf 40.577 0 Td [(.)]TJ -65.76 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(in)28(teger)-333(v)55(alue.)-444(Only)-333(me)-1(ani)1(ngful)-334(if)-333(\014lename)-333(is)-334(not)]TJ/F30 9.9626 Tf 286.288 0 Td [(-)]TJ/F8 9.9626 Tf 5.23 0 Td [(.)]TJ -0 g 0 G -/F27 9.9626 Tf -316.425 -19.925 Td [(k)32(ey)]TJ -0 g 0 G -/F8 9.9626 Tf 22.008 0 Td [(Matrix)-333(k)28(ey)83(.)]TJ 2.899 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(Optional)]TJ/F8 9.9626 Tf -29.611 -11.956 Td [(A)-385(c)28(harac)28(h)28(ter)-385(v)56(ariable)-385(of)-385(length)-384(8)-385(holding)-385(the)-384(m)-1(atri)1(x)-385(k)28(ey)-385(as)-385(sp)-28(eci\014ed)-384(b)27(y)]TJ 0 -11.955 Td [(the)-333(Harw)27(ell-Bo)-27(eing)-334(format)-333(and)-333(to)-334(b)-27(e)-334(written)-333(to)-333(\014le.)]TJ +/F8 9.9626 Tf 11.347 0 Td [(Rigth)-333(hand)-333(s)-1(i)1(de\050s)-1(\051.)]TJ 13.56 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(Optional)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(An)-282(ar)1(ra)27(y)-281(of)-282(t)28(yp)-28(e)-281(real)-282(or)-281(complex,)-292(rank)-282(2)-281(and)-282(ha)28(ving)-281(the)-282(ALLOCA)83(T)84(ABLE)]TJ 0 -11.956 Td [(attribute;)-409(will)-384(b)-28(e)-384(allo)-28(cated)-384(an)1(d)-384(\014lled)-384(in)-384(if)-384(the)-384(input)-384(\014le)-384(con)28(tains)-384(a)-384(righ)28(t)]TJ 0 -11.955 Td [(hand)-333(side,)-334(otherwise)-333(will)-333(b)-28(e)-333(left)-334(in)-333(the)-333(UNALLOCA)83(TED)-333(state.)]TJ 0 g 0 G /F27 9.9626 Tf -24.907 -19.925 Td [(m)32(title)]TJ 0 g 0 G -/F8 9.9626 Tf 34.738 0 Td [(Matrix)-333(title.)]TJ -9.831 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(Optional)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(A)-318(c)28(harac)28(h)28(ter)-318(v)56(ariable)-318(of)-317(length)-318(72)-317(holding)-318(the)-317(m)-1(atr)1(ix)-318(title)-318(as)-317(sp)-28(eci\014ed)-318(b)28(y)]TJ 0 -11.956 Td [(the)-333(Harw)27(ell-Bo)-27(eing)-334(format)-333(and)-333(to)-334(b)-27(e)-334(written)-333(to)-333(\014le.)]TJ +/F8 9.9626 Tf 34.738 0 Td [(Matrix)-333(title.)]TJ -9.831 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(Optional)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(A)-405(c)28(harac)28(h)28(ter)-405(v)56(ariable)-405(of)-405(length)-404(72)-405(holding)-405(a)-404(cop)27(y)-404(of)-405(the)-405(matrix)-404(title)-405(as)]TJ 0 -11.956 Td [(sp)-28(eci\014ed)-333(b)28(y)-334(the)-333(Harw)28(ell-Bo)-28(eing)-333(format)-334(and)-333(con)28(tained)-333(in)-334(the)-333(input)-333(\014le.)]TJ 0 g 0 G -/F27 9.9626 Tf -24.907 -21.917 Td [(On)-383(Return)]TJ -0 g 0 G -0 g 0 G - 0 -19.926 Td [(iret)]TJ +/F27 9.9626 Tf -24.907 -19.925 Td [(iret)]TJ 0 g 0 G /F8 9.9626 Tf 22.589 0 Td [(Error)-333(co)-28(de.)]TJ 2.318 -11.955 Td [(T)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 + 139.477 -194.811 Td [(123)]TJ 0 g 0 G ET endstream endobj -1548 0 obj +1549 0 obj << /Type /ObjStm /N 100 -/First 972 -/Length 8686 +/First 973 +/Length 8655 >> stream -1547 0 1542 59 1550 191 1552 309 445 367 1553 424 1554 482 1549 540 1556 672 1558 790 -449 849 1559 907 1560 966 1555 1025 1562 1157 1564 1275 453 1333 1565 1390 1561 1447 1567 1579 -1569 1697 457 1756 1570 1814 1566 1872 1574 2004 1571 2152 1572 2298 1576 2445 461 2503 1573 2560 -1581 2653 1583 2771 1584 2830 1585 2889 1587 2948 1588 3007 1589 3066 1590 3125 1591 3184 1592 3242 -1593 3301 1594 3360 1595 3419 1596 3478 1597 3537 1598 3596 1599 3655 1600 3714 1601 3771 1602 3830 -1603 3889 1604 3948 1605 4007 1606 4066 1607 4125 1608 4184 1609 4243 1578 4301 1579 4360 1580 4419 -1611 4527 1613 4645 465 4703 1614 4760 1615 4817 1610 4874 1617 4967 1619 5085 469 5144 1620 5202 -1621 5260 1616 5318 1623 5411 1625 5529 473 5587 1626 5644 1627 5701 1622 5758 1629 5851 1631 5969 -477 6028 1632 6086 1633 6144 1628 6202 1635 6308 1637 6426 481 6484 1634 6541 1641 6634 1639 6773 -1643 6917 485 6976 1644 7034 1645 7093 1640 7152 1648 7258 1646 7397 1650 7541 489 7599 1651 7656 -% 1547 0 obj -<< -/D [1543 0 R /XYZ 150.705 213.573 null] ->> +1542 0 1551 132 1553 250 441 309 1554 367 1555 426 1550 485 1557 617 1559 735 445 793 +1560 850 1561 908 1556 966 1563 1098 1565 1216 449 1275 1566 1333 1567 1392 1562 1451 1569 1583 +1571 1701 453 1759 1572 1816 1573 1874 1568 1932 1575 2064 1577 2182 457 2241 1578 2299 1574 2357 +1580 2489 1582 2607 461 2665 1583 2722 1579 2779 1588 2911 1585 3059 1586 3204 1590 3351 465 3410 +1587 3468 1594 3561 1596 3679 1597 3737 1598 3796 1600 3855 1601 3914 1602 3973 1603 4032 1604 4091 +1605 4149 1606 4208 1607 4267 1608 4326 1609 4385 1610 4444 1611 4503 1612 4562 1613 4621 1614 4678 +1615 4737 1616 4796 1617 4855 1618 4914 1619 4973 1620 5032 1621 5091 1622 5150 1591 5208 1592 5267 +1593 5326 1624 5434 1626 5552 469 5611 1627 5669 1628 5727 1623 5785 1630 5878 1632 5996 473 6054 +1633 6111 1634 6168 1629 6225 1636 6318 1638 6436 477 6495 1639 6553 1640 6611 1635 6669 1642 6762 +1644 6880 481 6938 1645 6995 1646 7052 1641 7109 1649 7215 1651 7333 485 7392 1648 7450 1654 7543 % 1542 0 obj << -/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 >> +/Font << /F16 554 0 R /F30 764 0 R /F8 557 0 R /F27 556 0 R /F14 767 0 R /F11 750 0 R >> /ProcSet [ /PDF /Text ] >> -% 1550 0 obj +% 1551 0 obj << /Type /Page -/Contents 1551 0 R -/Resources 1549 0 R +/Contents 1552 0 R +/Resources 1550 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1541 0 R +/Parent 1548 0 R >> -% 1552 0 obj +% 1553 0 obj << -/D [1550 0 R /XYZ 98.895 753.953 null] +/D [1551 0 R /XYZ 149.705 753.953 null] >> -% 445 0 obj +% 441 0 obj << -/D [1550 0 R /XYZ 99.895 720.077 null] +/D [1551 0 R /XYZ 150.705 720.077 null] >> -% 1553 0 obj +% 1554 0 obj << -/D [1550 0 R /XYZ 99.895 235.436 null] +/D [1551 0 R /XYZ 150.705 247.391 null] >> -% 1554 0 obj +% 1555 0 obj << -/D [1550 0 R /XYZ 99.895 201.618 null] +/D [1551 0 R /XYZ 150.705 213.573 null] >> -% 1549 0 obj +% 1550 0 obj << -/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 >> +/Font << /F16 554 0 R /F30 764 0 R /F8 557 0 R /F27 556 0 R /F14 767 0 R /F11 750 0 R >> /ProcSet [ /PDF /Text ] >> -% 1556 0 obj +% 1557 0 obj << /Type /Page -/Contents 1557 0 R -/Resources 1555 0 R +/Contents 1558 0 R +/Resources 1556 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1541 0 R +/Parent 1548 0 R >> -% 1558 0 obj +% 1559 0 obj << -/D [1556 0 R /XYZ 149.705 753.953 null] +/D [1557 0 R /XYZ 98.895 753.953 null] >> -% 449 0 obj +% 445 0 obj << -/D [1556 0 R /XYZ 150.705 720.077 null] +/D [1557 0 R /XYZ 99.895 720.077 null] >> -% 1559 0 obj +% 1560 0 obj << -/D [1556 0 R /XYZ 150.705 235.436 null] +/D [1557 0 R /XYZ 99.895 247.391 null] >> -% 1560 0 obj +% 1561 0 obj << -/D [1556 0 R /XYZ 150.705 201.618 null] +/D [1557 0 R /XYZ 99.895 213.573 null] >> -% 1555 0 obj +% 1556 0 obj << -/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 >> +/Font << /F16 554 0 R /F30 764 0 R /F8 557 0 R /F27 556 0 R /F14 767 0 R /F11 750 0 R >> /ProcSet [ /PDF /Text ] >> -% 1562 0 obj +% 1563 0 obj << /Type /Page -/Contents 1563 0 R -/Resources 1561 0 R +/Contents 1564 0 R +/Resources 1562 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1541 0 R +/Parent 1548 0 R >> -% 1564 0 obj +% 1565 0 obj << -/D [1562 0 R /XYZ 98.895 753.953 null] +/D [1563 0 R /XYZ 149.705 753.953 null] >> -% 453 0 obj +% 449 0 obj << -/D [1562 0 R /XYZ 99.895 720.077 null] +/D [1563 0 R /XYZ 150.705 720.077 null] >> -% 1565 0 obj +% 1566 0 obj << -/D [1562 0 R /XYZ 99.895 223.48 null] +/D [1563 0 R /XYZ 150.705 235.436 null] >> -% 1561 0 obj +% 1567 0 obj +<< +/D [1563 0 R /XYZ 150.705 201.618 null] +>> +% 1562 0 obj << -/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 >> +/Font << /F16 554 0 R /F30 764 0 R /F8 557 0 R /F27 556 0 R /F14 767 0 R /F11 750 0 R >> /ProcSet [ /PDF /Text ] >> -% 1567 0 obj +% 1569 0 obj << /Type /Page -/Contents 1568 0 R -/Resources 1566 0 R +/Contents 1570 0 R +/Resources 1568 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1541 0 R +/Parent 1548 0 R >> -% 1569 0 obj +% 1571 0 obj << -/D [1567 0 R /XYZ 149.705 753.953 null] +/D [1569 0 R /XYZ 98.895 753.953 null] >> -% 457 0 obj +% 453 0 obj << -/D [1567 0 R /XYZ 150.705 720.077 null] +/D [1569 0 R /XYZ 99.895 720.077 null] >> -% 1570 0 obj +% 1572 0 obj << -/D [1567 0 R /XYZ 150.705 223.48 null] +/D [1569 0 R /XYZ 99.895 235.436 null] >> -% 1566 0 obj +% 1573 0 obj +<< +/D [1569 0 R /XYZ 99.895 201.618 null] +>> +% 1568 0 obj << -/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 >> +/Font << /F16 554 0 R /F30 764 0 R /F8 557 0 R /F27 556 0 R /F14 767 0 R /F11 750 0 R >> /ProcSet [ /PDF /Text ] >> -% 1574 0 obj +% 1575 0 obj << /Type /Page -/Contents 1575 0 R -/Resources 1573 0 R +/Contents 1576 0 R +/Resources 1574 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1577 0 R -/Annots [ 1571 0 R 1572 0 R ] ->> -% 1571 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [145.477 501.77 152.451 512.895] -/A << /S /GoTo /D (figure.9) >> +/Parent 1548 0 R >> -% 1572 0 obj +% 1577 0 obj << -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [146.734 346.63 158.689 357.478] -/A << /S /GoTo /D (figure.10) >> +/D [1575 0 R /XYZ 149.705 753.953 null] >> -% 1576 0 obj +% 457 0 obj << -/D [1574 0 R /XYZ 98.895 753.953 null] +/D [1575 0 R /XYZ 150.705 720.077 null] >> -% 461 0 obj +% 1578 0 obj << -/D [1574 0 R /XYZ 99.895 716.092 null] +/D [1575 0 R /XYZ 150.705 223.48 null] >> -% 1573 0 obj +% 1574 0 obj << -/Font << /F16 550 0 R /F8 553 0 R /F30 759 0 R >> +/Font << /F16 554 0 R /F30 764 0 R /F8 557 0 R /F27 556 0 R /F11 750 0 R /F14 767 0 R >> /ProcSet [ /PDF /Text ] >> -% 1581 0 obj +% 1580 0 obj << /Type /Page -/Contents 1582 0 R -/Resources 1580 0 R +/Contents 1581 0 R +/Resources 1579 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1577 0 R +/Parent 1584 0 R >> -% 1583 0 obj +% 1582 0 obj << -/D [1581 0 R /XYZ 149.705 753.953 null] +/D [1580 0 R /XYZ 98.895 753.953 null] >> -% 1584 0 obj +% 461 0 obj << -/D [1581 0 R /XYZ 159.073 687.737 null] +/D [1580 0 R /XYZ 99.895 720.077 null] >> -% 1585 0 obj +% 1583 0 obj << -/D [1581 0 R /XYZ 159.073 691.025 null] +/D [1580 0 R /XYZ 99.895 223.48 null] >> -% 1587 0 obj +% 1579 0 obj << -/D [1581 0 R /XYZ 159.073 680.066 null] +/Font << /F16 554 0 R /F30 764 0 R /F8 557 0 R /F27 556 0 R /F11 750 0 R /F14 767 0 R >> +/ProcSet [ /PDF /Text ] >> % 1588 0 obj << -/D [1581 0 R /XYZ 159.073 669.107 null] +/Type /Page +/Contents 1589 0 R +/Resources 1587 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1584 0 R +/Annots [ 1585 0 R 1586 0 R ] >> -% 1589 0 obj +% 1585 0 obj << -/D [1581 0 R /XYZ 159.073 658.148 null] +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [196.286 501.77 203.26 512.895] +/A << /S /GoTo /D (figure.9) >> >> -% 1590 0 obj +% 1586 0 obj << -/D [1581 0 R /XYZ 159.073 647.189 null] +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [197.543 346.63 209.498 357.478] +/A << /S /GoTo /D (figure.10) >> >> -% 1591 0 obj +% 1590 0 obj << -/D [1581 0 R /XYZ 159.073 636.23 null] +/D [1588 0 R /XYZ 149.705 753.953 null] >> -% 1592 0 obj +% 465 0 obj << -/D [1581 0 R /XYZ 159.073 625.271 null] +/D [1588 0 R /XYZ 150.705 716.092 null] >> -% 1593 0 obj +% 1587 0 obj << -/D [1581 0 R /XYZ 159.073 614.312 null] +/Font << /F16 554 0 R /F8 557 0 R /F30 764 0 R >> +/ProcSet [ /PDF /Text ] >> % 1594 0 obj << -/D [1581 0 R /XYZ 159.073 603.353 null] ->> -% 1595 0 obj -<< -/D [1581 0 R /XYZ 159.073 592.394 null] +/Type /Page +/Contents 1595 0 R +/Resources 1593 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1584 0 R >> % 1596 0 obj << -/D [1581 0 R /XYZ 159.073 581.436 null] +/D [1594 0 R /XYZ 98.895 753.953 null] >> % 1597 0 obj << -/D [1581 0 R /XYZ 159.073 570.477 null] +/D [1594 0 R /XYZ 108.264 687.737 null] >> % 1598 0 obj << -/D [1581 0 R /XYZ 159.073 559.518 null] ->> -% 1599 0 obj -<< -/D [1581 0 R /XYZ 159.073 548.559 null] +/D [1594 0 R /XYZ 108.264 691.025 null] >> % 1600 0 obj << -/D [1581 0 R /XYZ 159.073 537.6 null] +/D [1594 0 R /XYZ 108.264 680.066 null] >> % 1601 0 obj << -/D [1581 0 R /XYZ 159.073 526.641 null] +/D [1594 0 R /XYZ 108.264 669.107 null] >> % 1602 0 obj << -/D [1581 0 R /XYZ 159.073 515.682 null] +/D [1594 0 R /XYZ 108.264 658.148 null] >> % 1603 0 obj << -/D [1581 0 R /XYZ 159.073 504.723 null] +/D [1594 0 R /XYZ 108.264 647.189 null] >> % 1604 0 obj << -/D [1581 0 R /XYZ 159.073 493.764 null] +/D [1594 0 R /XYZ 108.264 636.23 null] >> % 1605 0 obj << -/D [1581 0 R /XYZ 159.073 482.805 null] +/D [1594 0 R /XYZ 108.264 625.271 null] >> % 1606 0 obj << -/D [1581 0 R /XYZ 159.073 471.847 null] +/D [1594 0 R /XYZ 108.264 614.312 null] >> % 1607 0 obj << -/D [1581 0 R /XYZ 159.073 460.888 null] +/D [1594 0 R /XYZ 108.264 603.353 null] >> % 1608 0 obj << -/D [1581 0 R /XYZ 159.073 449.929 null] +/D [1594 0 R /XYZ 108.264 592.394 null] >> % 1609 0 obj << -/D [1581 0 R /XYZ 159.073 438.97 null] +/D [1594 0 R /XYZ 108.264 581.436 null] >> -% 1578 0 obj -<< -/D [1581 0 R /XYZ 194.261 394.492 null] ->> -% 1579 0 obj -<< -/D [1581 0 R /XYZ 200.884 149.223 null] ->> -% 1580 0 obj +% 1610 0 obj << -/Font << /F53 1586 0 R /F46 1153 0 R /F8 553 0 R /F30 759 0 R >> -/ProcSet [ /PDF /Text ] +/D [1594 0 R /XYZ 108.264 570.477 null] >> % 1611 0 obj << -/Type /Page -/Contents 1612 0 R -/Resources 1610 0 R -/MediaBox [0 0 595.276 841.89] -/Parent 1577 0 R +/D [1594 0 R /XYZ 108.264 559.518 null] >> -% 1613 0 obj +% 1612 0 obj << -/D [1611 0 R /XYZ 98.895 753.953 null] +/D [1594 0 R /XYZ 108.264 548.559 null] >> -% 465 0 obj +% 1613 0 obj << -/D [1611 0 R /XYZ 99.895 724.062 null] +/D [1594 0 R /XYZ 108.264 537.6 null] >> % 1614 0 obj << -/D [1611 0 R /XYZ 99.895 638.48 null] +/D [1594 0 R /XYZ 108.264 526.641 null] >> % 1615 0 obj << -/D [1611 0 R /XYZ 99.895 638.48 null] +/D [1594 0 R /XYZ 108.264 515.682 null] >> -% 1610 0 obj +% 1616 0 obj << -/Font << /F16 550 0 R /F27 552 0 R /F8 553 0 R >> -/ProcSet [ /PDF /Text ] +/D [1594 0 R /XYZ 108.264 504.723 null] >> % 1617 0 obj << -/Type /Page -/Contents 1618 0 R -/Resources 1616 0 R -/MediaBox [0 0 595.276 841.89] -/Parent 1577 0 R +/D [1594 0 R /XYZ 108.264 493.764 null] >> -% 1619 0 obj +% 1618 0 obj << -/D [1617 0 R /XYZ 149.705 753.953 null] +/D [1594 0 R /XYZ 108.264 482.805 null] >> -% 469 0 obj +% 1619 0 obj << -/D [1617 0 R /XYZ 150.705 724.062 null] +/D [1594 0 R /XYZ 108.264 471.847 null] >> % 1620 0 obj << -/D [1617 0 R /XYZ 150.705 638.48 null] +/D [1594 0 R /XYZ 108.264 460.888 null] >> % 1621 0 obj << -/D [1617 0 R /XYZ 150.705 638.48 null] +/D [1594 0 R /XYZ 108.264 449.929 null] >> -% 1616 0 obj +% 1622 0 obj +<< +/D [1594 0 R /XYZ 108.264 438.97 null] +>> +% 1591 0 obj +<< +/D [1594 0 R /XYZ 143.452 394.492 null] +>> +% 1592 0 obj +<< +/D [1594 0 R /XYZ 150.074 149.223 null] +>> +% 1593 0 obj << -/Font << /F16 550 0 R /F27 552 0 R /F8 553 0 R >> +/Font << /F53 1599 0 R /F46 1166 0 R /F8 557 0 R /F30 764 0 R >> /ProcSet [ /PDF /Text ] >> -% 1623 0 obj +% 1624 0 obj << /Type /Page -/Contents 1624 0 R -/Resources 1622 0 R +/Contents 1625 0 R +/Resources 1623 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1577 0 R +/Parent 1584 0 R >> -% 1625 0 obj +% 1626 0 obj << -/D [1623 0 R /XYZ 98.895 753.953 null] +/D [1624 0 R /XYZ 149.705 753.953 null] >> -% 473 0 obj +% 469 0 obj << -/D [1623 0 R /XYZ 99.895 724.062 null] +/D [1624 0 R /XYZ 150.705 724.062 null] >> -% 1626 0 obj +% 1627 0 obj << -/D [1623 0 R /XYZ 99.895 635.69 null] +/D [1624 0 R /XYZ 150.705 638.48 null] >> -% 1627 0 obj +% 1628 0 obj << -/D [1623 0 R /XYZ 99.895 638.48 null] +/D [1624 0 R /XYZ 150.705 638.48 null] >> -% 1622 0 obj +% 1623 0 obj << -/Font << /F16 550 0 R /F27 552 0 R /F8 553 0 R >> +/Font << /F16 554 0 R /F27 556 0 R /F8 557 0 R >> /ProcSet [ /PDF /Text ] >> -% 1629 0 obj +% 1630 0 obj << /Type /Page -/Contents 1630 0 R -/Resources 1628 0 R +/Contents 1631 0 R +/Resources 1629 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1577 0 R +/Parent 1584 0 R >> -% 1631 0 obj +% 1632 0 obj << -/D [1629 0 R /XYZ 149.705 753.953 null] +/D [1630 0 R /XYZ 98.895 753.953 null] >> -% 477 0 obj +% 473 0 obj << -/D [1629 0 R /XYZ 150.705 724.062 null] +/D [1630 0 R /XYZ 99.895 724.062 null] >> -% 1632 0 obj +% 1633 0 obj << -/D [1629 0 R /XYZ 150.705 635.69 null] +/D [1630 0 R /XYZ 99.895 638.48 null] >> -% 1633 0 obj +% 1634 0 obj << -/D [1629 0 R /XYZ 150.705 638.48 null] +/D [1630 0 R /XYZ 99.895 638.48 null] >> -% 1628 0 obj +% 1629 0 obj << -/Font << /F16 550 0 R /F27 552 0 R /F8 553 0 R /F30 759 0 R >> +/Font << /F16 554 0 R /F27 556 0 R /F8 557 0 R >> /ProcSet [ /PDF /Text ] >> -% 1635 0 obj +% 1636 0 obj << /Type /Page -/Contents 1636 0 R -/Resources 1634 0 R +/Contents 1637 0 R +/Resources 1635 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1638 0 R +/Parent 1584 0 R >> -% 1637 0 obj +% 1638 0 obj << -/D [1635 0 R /XYZ 98.895 753.953 null] +/D [1636 0 R /XYZ 149.705 753.953 null] >> -% 481 0 obj +% 477 0 obj << -/D [1635 0 R /XYZ 99.895 716.092 null] +/D [1636 0 R /XYZ 150.705 724.062 null] >> -% 1634 0 obj +% 1639 0 obj << -/Font << /F16 550 0 R /F8 553 0 R /F30 759 0 R >> -/ProcSet [ /PDF /Text ] +/D [1636 0 R /XYZ 150.705 635.69 null] >> -% 1641 0 obj +% 1640 0 obj << -/Type /Page -/Contents 1642 0 R -/Resources 1640 0 R -/MediaBox [0 0 595.276 841.89] -/Parent 1638 0 R -/Annots [ 1639 0 R ] +/D [1636 0 R /XYZ 150.705 638.48 null] >> -% 1639 0 obj +% 1635 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) >> +/Font << /F16 554 0 R /F27 556 0 R /F8 557 0 R >> +/ProcSet [ /PDF /Text ] >> -% 1643 0 obj +% 1642 0 obj << -/D [1641 0 R /XYZ 149.705 753.953 null] +/Type /Page +/Contents 1643 0 R +/Resources 1641 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1647 0 R >> -% 485 0 obj +% 1644 0 obj << -/D [1641 0 R /XYZ 150.705 720.077 null] +/D [1642 0 R /XYZ 98.895 753.953 null] >> -% 1644 0 obj +% 481 0 obj << -/D [1641 0 R /XYZ 150.705 677.445 null] +/D [1642 0 R /XYZ 99.895 724.062 null] >> % 1645 0 obj << -/D [1641 0 R /XYZ 150.705 679.769 null] +/D [1642 0 R /XYZ 99.895 635.69 null] >> -% 1640 0 obj +% 1646 0 obj +<< +/D [1642 0 R /XYZ 99.895 638.48 null] +>> +% 1641 0 obj << -/Font << /F16 550 0 R /F27 552 0 R /F8 553 0 R /F30 759 0 R >> +/Font << /F16 554 0 R /F27 556 0 R /F8 557 0 R /F30 764 0 R >> /ProcSet [ /PDF /Text ] >> -% 1648 0 obj +% 1649 0 obj << /Type /Page -/Contents 1649 0 R -/Resources 1647 0 R +/Contents 1650 0 R +/Resources 1648 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1638 0 R -/Annots [ 1646 0 R ] +/Parent 1647 0 R >> -% 1646 0 obj +% 1651 0 obj << -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [294.721 582.91 372.239 594.035] -/A << /S /GoTo /D (spdata) >> +/D [1649 0 R /XYZ 149.705 753.953 null] >> -% 1650 0 obj +% 485 0 obj << -/D [1648 0 R /XYZ 98.895 753.953 null] +/D [1649 0 R /XYZ 150.705 716.092 null] >> -% 489 0 obj +% 1648 0 obj << -/D [1648 0 R /XYZ 99.895 720.077 null] +/Font << /F16 554 0 R /F8 557 0 R /F30 764 0 R >> +/ProcSet [ /PDF /Text ] >> -% 1651 0 obj +% 1654 0 obj << -/D [1648 0 R /XYZ 99.895 677.445 null] +/Type /Page +/Contents 1655 0 R +/Resources 1653 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1647 0 R +/Annots [ 1652 0 R ] +>> + +endstream +endobj +1663 0 obj +<< +/Length 5239 >> +stream +0 g 0 G +0 g 0 G +BT +/F16 11.9552 Tf 150.705 706.129 Td [(h)31(b)]TJ +ET +q +1 0 0 1 166.082 706.328 cm +[]0 d 0 J 0.398 w 0 0 m 4.035 0 l S +Q +BT +/F16 11.9552 Tf 170.117 706.129 Td [(write)-357(|)-357(W)93(rite)-357(a)-357(sparse)-357(matrix)-358(to)-357(a)-357(\014le)-357(in)-357(the)-357(Harw)31(ell{)]TJ -19.412 -13.948 Td [(Bo)-31(eing)-375(format)]TJ/F27 9.9626 Tf 1.377 -24.367 Td [(c)-138(a)-138(l)-139(l)]TJ/F8 9.9626 Tf 29.733 0 Td [(h)-123(b)]TJ +ET +q +1 0 0 1 195.926 668.014 cm +[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +Q +BT +/F8 9.9626 Tf 200.137 667.814 Td [(w)-123(r)-122(i)-123(t)-123(e)-228(\050)-139(a)-228(,)-910(i)-150(r)-149(e)-150(t)-460(,)-896(i)-135(u)-135(n)-135(i)-135(t)-431(,)-877(f)-116(i)-116(l)-116(e)-116(n)-116(a)-116(m)-117(e)-393(,)-821(k)-60(e)-60(y)-281(,)-853(r)-92(h)-91(s)-345(,)-902(m)-141(t)-142(i)-141(t)-141(l)-141(e)-247(\051)]TJ +0 g 0 G +0 g 0 G +0 g 0 G +/F27 9.9626 Tf -49.432 -17.933 Td [(T)32(yp)-32(e:)]TJ +0 g 0 G +/F8 9.9626 Tf 33.797 0 Td [(Async)28(hronous.)]TJ +0 g 0 G +/F27 9.9626 Tf -33.797 -19.925 Td [(On)-383(En)32(try)]TJ +0 g 0 G +0 g 0 G + 0 -19.925 Td [(a)]TJ +0 g 0 G +/F8 9.9626 Tf 10.551 0 Td [(the)-333(sparse)-334(matrix)-333(to)-333(b)-28(e)-333(written.)]TJ 14.355 -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 [(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 586.32 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +Q +BT +/F30 9.9626 Tf 365.983 586.121 Td [(Tspmat)]TJ +ET +q +1 0 0 1 397.993 586.32 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +Q +BT +/F30 9.9626 Tf 401.131 586.121 Td [(type)]TJ +0 g 0 G +/F8 9.9626 Tf 20.921 0 Td [(.)]TJ +0 g 0 G +/F27 9.9626 Tf -271.347 -19.926 Td [(b)]TJ +0 g 0 G +/F8 9.9626 Tf 11.346 0 Td [(Rigth)-333(hand)-334(sid)1(e)-1(.)]TJ 13.56 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.612 0 Td [(Optional)]TJ/F8 9.9626 Tf -29.612 -11.955 Td [(An)-282(arr)1(a)27(y)-281(of)-282(t)28(yp)-28(e)-281(real)-282(or)-281(complex,)-292(rank)-282(1)-281(and)-282(ha)28(ving)-281(the)-282(ALLOCA)83(T)84(ABLE)]TJ 0 -11.955 Td [(attribute;)-409(will)-384(b)-28(e)-384(allo)-28(cated)-384(and)-383(\014lled)-384(in)-384(if)-384(the)-384(input)-384(\014le)-384(con)28(tains)-384(a)-384(righ)28(t)]TJ 0 -11.955 Td [(hand)-333(side.)]TJ +0 g 0 G +/F27 9.9626 Tf -24.906 -19.926 Td [(\014lename)]TJ +0 g 0 G +/F8 9.9626 Tf 46.513 0 Td [(The)-333(name)-334(of)-333(the)-333(\014le)-334(to)-333(b)-28(e)-333(written)-333(to.)]TJ -21.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.761 -11.955 Td [(Sp)-28(eci\014ed)-435(as:)-648(a)-435(c)27(haracter)-435(v)56(ariable)-435(con)27(tain)1(ing)-436(a)-435(v)56(alid)-435(\014le)-435(name)-1(,)-460(or)]TJ/F30 9.9626 Tf 297.916 0 Td [(-)]TJ/F8 9.9626 Tf 5.23 0 Td [(,)-461(in)]TJ -303.146 -11.955 Td [(whic)28(h)-281(case)-280(the)-281(d)1(e)-1(f)1(ault)-281(output)-280(unit)-280(6)-281(\050i.e.)-427(stand)1(ard)-281(output)-280(in)-280(Unix)-281(jargon\051)]TJ 0 -11.955 Td [(is)-333(used.)-445(Default:)]TJ/F30 9.9626 Tf 76.076 0 Td [(-)]TJ/F8 9.9626 Tf 5.231 0 Td [(.)]TJ +0 g 0 G +/F27 9.9626 Tf -106.213 -19.926 Td [(iunit)]TJ +0 g 0 G +/F8 9.9626 Tf 28.532 0 Td [(The)-333(F)83(ortran)-333(\014le)-334(u)1(nit)-334(n)28(um)28(b)-28(er.)]TJ -3.626 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.184 0 Td [(optional)]TJ/F8 9.9626 Tf 40.577 0 Td [(.)]TJ -65.761 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(in)28(teger)-333(v)55(alue.)-444(Only)-334(meaningf)1(ul)-334(if)-333(\014lename)-333(is)-334(not)]TJ/F30 9.9626 Tf 286.289 0 Td [(-)]TJ/F8 9.9626 Tf 5.23 0 Td [(.)]TJ +0 g 0 G +/F27 9.9626 Tf -316.425 -19.925 Td [(k)32(ey)]TJ +0 g 0 G +/F8 9.9626 Tf 22.008 0 Td [(Matrix)-333(k)28(ey)83(.)]TJ 2.899 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(Optional)]TJ/F8 9.9626 Tf -29.611 -11.956 Td [(A)-385(c)28(harac)28(h)28(ter)-385(v)56(ariable)-385(of)-385(length)-384(8)-385(holding)-385(the)-384(matrix)-385(k)28(ey)-385(as)-385(sp)-28(eci\014ed)-384(b)27(y)]TJ 0 -11.955 Td [(the)-333(Harw)27(ell-Bo)-27(eing)-334(format)-333(and)-333(to)-334(b)-27(e)-334(written)-333(to)-333(\014le.)]TJ +0 g 0 G +/F27 9.9626 Tf -24.907 -19.925 Td [(m)32(title)]TJ +0 g 0 G +/F8 9.9626 Tf 34.738 0 Td [(Matrix)-333(title.)]TJ -9.831 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(Optional)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(A)-318(c)28(harac)28(h)28(ter)-318(v)56(ariable)-318(of)-317(length)-318(72)-317(holding)-318(the)-317(matrix)-318(title)-318(as)-317(sp)-28(eci\014ed)-318(b)28(y)]TJ 0 -11.956 Td [(the)-333(Harw)27(ell-Bo)-27(eing)-334(format)-333(and)-333(to)-334(b)-27(e)-334(written)-333(to)-333(\014le.)]TJ +0 g 0 G +/F27 9.9626 Tf -24.907 -21.917 Td [(On)-383(Return)]TJ +0 g 0 G +0 g 0 G + 0 -19.926 Td [(iret)]TJ +0 g 0 G +/F8 9.9626 Tf 22.589 0 Td [(Error)-333(co)-28(de.)]TJ 2.318 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(An)-333(in)28(tege)-1(r)-333(v)56(alue;)-334(0)-333(means)-333(no)-334(error)-333(has)-333(b)-28(een)-333(detected.)]TJ +0 g 0 G + 139.477 -139.02 Td [(124)]TJ +0 g 0 G +ET endstream endobj -1657 0 obj +1670 0 obj << -/Length 3654 +/Length 3661 >> stream 0 g 0 G 0 g 0 G BT -/F16 11.9552 Tf 150.705 706.129 Td [(mm)]TJ +/F16 11.9552 Tf 99.895 706.129 Td [(mm)]TJ ET q -1 0 0 1 173.928 706.328 cm +1 0 0 1 123.118 706.328 cm []0 d 0 J 0.398 w 0 0 m 4.035 0 l S Q BT -/F16 11.9552 Tf 177.963 706.129 Td [(mat)]TJ +/F16 11.9552 Tf 127.153 706.129 Td [(mat)]TJ ET q -1 0 0 1 201.746 706.328 cm +1 0 0 1 150.936 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 +/F16 11.9552 Tf 154.971 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 +1 0 0 1 148.479 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 +/F8 9.9626 Tf 151.965 667.814 Td [(m)-50(a)-50(t)]TJ ET q -1 0 0 1 222.024 668.014 cm +1 0 0 1 171.214 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 +/F8 9.9626 Tf 174.701 667.814 Td [(r)-50(e)-50(a)-50(d)-155(\050)-139(a)-228(,)-911(i)-149(r)-150(e)-149(t)-460(,)-897(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 +/F27 9.9626 Tf -74.806 -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 @@ -20509,88 +20632,88 @@ BT 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 +/F8 9.9626 Tf 46.513 0 Td [(The)-333(name)-334(of)-333(the)-333(\014le)-334(to)-333(b)-28(e)-333(read.)]TJ -21.606 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.183 0 Td [(optional)]TJ/F8 9.9626 Tf 40.577 0 Td [(.)]TJ -65.76 -11.955 Td [(Sp)-28(eci\014ed)-435(as:)-648(a)-435(c)27(h)1(arac)-1(ter)-435(v)56(ariable)-435(con)28(taining)-436(a)-435(v)56(alid)-435(\014le)-435(name,)-461(or)]TJ/F30 9.9626 Tf 297.915 0 Td [(-)]TJ/F8 9.9626 Tf 5.231 0 Td [(,)-461(in)]TJ -303.146 -11.956 Td [(whic)28(h)-302(cas)-1(e)-302(the)-302(default)-302(input)-302(unit)-302(5)-303(\050i.e.)-434(standard)-302(input)-302(in)-302(Unix)-302(jargon\051)-302(is)]TJ 0 -11.955 Td [(used.)-444(Default:)]TJ/F30 9.9626 Tf 66.058 0 Td [(-)]TJ/F8 9.9626 Tf 5.23 0 Td [(.)]TJ 0 g 0 G /F27 9.9626 Tf -96.195 -19.925 Td [(iunit)]TJ 0 g 0 G -/F8 9.9626 Tf 28.532 0 Td [(The)-333(F)83(ortran)-333(\014le)-334(u)1(nit)-334(n)28(um)28(b)-28(er.)]TJ -3.625 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.183 0 Td [(optional)]TJ/F8 9.9626 Tf 40.577 0 Td [(.)]TJ -65.76 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-444(an)-334(in)28(teger)-333(v)55(alue.)-444(Only)-333(me)-1(an)1(ingful)-334(if)-333(\014lename)-333(is)-334(not)]TJ/F30 9.9626 Tf 286.288 0 Td [(-)]TJ/F8 9.9626 Tf 5.23 0 Td [(.)]TJ +/F8 9.9626 Tf 28.532 0 Td [(The)-333(F)83(ortran)-333(\014le)-334(un)1(it)-334(n)28(um)28(b)-28(er.)]TJ -3.625 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.183 0 Td [(optional)]TJ/F8 9.9626 Tf 40.577 0 Td [(.)]TJ -65.76 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(in)28(teger)-333(v)55(alue.)-444(Only)-333(me)-1(ani)1(ngful)-334(if)-333(\014lename)-333(is)-334(not)]TJ/F30 9.9626 Tf 286.288 0 Td [(-)]TJ/F8 9.9626 Tf 5.23 0 Td [(.)]TJ 0 g 0 G /F27 9.9626 Tf -316.425 -21.918 Td [(On)-383(Return)]TJ 0 g 0 G 0 g 0 G 0 -19.925 Td [(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 +/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.899 0 Td [(.)]TJ -67.082 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(structured)-333(data)-333(of)-334(t)28(yp)-28(e)]TJ 0 0 1 rg 0 0 1 RG /F30 9.9626 Tf 170.915 0 Td [(psb)]TJ ET q -1 0 0 1 362.845 452.82 cm +1 0 0 1 312.036 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 +/F30 9.9626 Tf 315.174 452.621 Td [(Tspmat)]TJ ET q -1 0 0 1 397.993 452.82 cm +1 0 0 1 347.183 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 +/F30 9.9626 Tf 350.322 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 +/F27 9.9626 Tf -271.348 -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 +/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 -318.348 Td [(124)]TJ + 139.477 -318.348 Td [(125)]TJ 0 g 0 G ET endstream endobj -1663 0 obj +1676 0 obj << -/Length 3705 +/Length 3696 >> stream 0 g 0 G 0 g 0 G BT -/F16 11.9552 Tf 99.895 706.129 Td [(mm)]TJ +/F16 11.9552 Tf 150.705 706.129 Td [(mm)]TJ ET q -1 0 0 1 123.118 706.328 cm +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 127.153 706.129 Td [(arra)31(y)]TJ +/F16 11.9552 Tf 177.963 706.129 Td [(arra)31(y)]TJ ET q -1 0 0 1 158.747 706.328 cm +1 0 0 1 209.557 706.328 cm []0 d 0 J 0.398 w 0 0 m 4.035 0 l S Q BT -/F16 11.9552 Tf 162.782 706.129 Td [(read)-504(|)-504(Read)-504(a)-504(dense)-504(arra)32(y)-504(from)-504(a)-504(\014le)-504(in)-504(the)]TJ -62.887 -13.948 Td [(MatrixMark)31(et)-375(format)]TJ/F27 9.9626 Tf 1.377 -24.367 Td [(c)-138(a)-138(l)-139(l)]TJ/F8 9.9626 Tf 29.373 0 Td [(m)-87(m)]TJ +/F16 11.9552 Tf 213.592 706.129 Td [(read)-504(|)-504(Read)-504(a)-504(dense)-504(ar)1(ra)31(y)-504(from)-504(a)-504(\014le)-504(in)-504(the)]TJ -62.887 -13.948 Td [(MatrixMark)31(et)-375(format)]TJ/F27 9.9626 Tf 1.377 -24.367 Td [(c)-138(a)-138(l)-139(l)]TJ/F8 9.9626 Tf 29.373 0 Td [(m)-86(m)]TJ ET q -1 0 0 1 149.57 668.014 cm +1 0 0 1 200.38 668.014 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 153.421 667.814 Td [(a)-86(r)-87(r)-86(a)-87(y)]TJ +/F8 9.9626 Tf 204.23 667.814 Td [(a)-86(r)-87(r)-86(a)-87(y)]TJ ET q -1 0 0 1 181.351 668.014 cm +1 0 0 1 232.16 668.014 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 185.201 667.814 Td [(r)-86(e)-87(a)-86(d)-192(\050)-121(b)-191(,)-910(i)-150(r)-149(e)-150(t)-460(,)-896(i)-135(u)-135(n)-135(i)-135(t)-431(,)-890(f)-129(i)-129(l)-129(e)-129(n)-129(a)-129(m)-129(e)-234(\051)]TJ +/F8 9.9626 Tf 236.01 667.814 Td [(r)-86(e)-87(a)-86(d)-192(\050)-121(b)-191(,)-910(i)-150(r)-149(e)-150(t)-460(,)-896(i)-135(u)-135(n)-135(i)-135(t)-431(,)-890(f)-129(i)-129(l)-129(e)-129(n)-129(a)-129(m)-129(e)-234(\051)]TJ 0 g 0 G 0 g 0 G 0 g 0 G -/F27 9.9626 Tf -85.306 -17.933 Td [(T)32(yp)-32(e:)]TJ +/F27 9.9626 Tf -85.305 -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 @@ -20599,66 +20722,66 @@ BT 0 g 0 G 0 -19.925 Td [(\014lename)]TJ 0 g 0 G -/F8 9.9626 Tf 46.513 0 Td [(The)-333(name)-334(of)-333(the)-333(\014le)-334(to)-333(b)-28(e)-333(read.)]TJ -21.606 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.183 0 Td [(optional)]TJ/F8 9.9626 Tf 40.577 0 Td [(.)]TJ -65.76 -11.955 Td [(Sp)-28(eci\014ed)-435(as:)-648(a)-435(c)27(h)1(arac)-1(ter)-435(v)56(ariable)-435(con)28(taining)-436(a)-435(v)56(alid)-435(\014le)-435(name,)-461(or)]TJ/F30 9.9626 Tf 297.915 0 Td [(-)]TJ/F8 9.9626 Tf 5.231 0 Td [(,)-461(in)]TJ -303.146 -11.956 Td [(whic)28(h)-302(cas)-1(e)-302(the)-302(default)-302(input)-302(unit)-302(5)-303(\050i.e.)-434(standard)-302(input)-302(in)-302(Unix)-302(jargon\051)-302(is)]TJ 0 -11.955 Td [(used.)-444(Default:)]TJ/F30 9.9626 Tf 66.058 0 Td [(-)]TJ/F8 9.9626 Tf 5.23 0 Td [(.)]TJ +/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(un)1(it)-334(n)28(um)28(b)-28(er.)]TJ -3.625 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.183 0 Td [(optional)]TJ/F8 9.9626 Tf 40.577 0 Td [(.)]TJ -65.76 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(in)28(teger)-333(v)55(alue.)-444(Only)-333(me)-1(ani)1(ngful)-334(if)-333(\014lename)-333(is)-334(not)]TJ/F30 9.9626 Tf 286.288 0 Td [(-)]TJ/F8 9.9626 Tf 5.23 0 Td [(.)]TJ +/F8 9.9626 Tf 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 [(b)]TJ 0 g 0 G -/F8 9.9626 Tf 11.347 0 Td [(Rigth)-333(hand)-333(s)-1(i)1(de\050s)-1(\051.)]TJ 13.56 -11.956 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(An)-310(arra)28(y)-310(of)-310(t)28(yp)-28(e)-310(real)-310(or)-310(complex,)-315(rank)-309(1)-310(or)-310(2)-310(and)-310(ha)28(ving)-310(the)-310(ALLOCA)83(T-)]TJ 0 -11.955 Td [(ABLE)-334(attribute;)-334(will)-333(b)-28(e)-334(allo)-28(cated)-333(and)-334(\014lled)-334(in)-333(if)-334(the)-334(input)-333(\014le)-334(con)28(tains)-334(a)]TJ 0 -11.955 Td [(righ)28(t)-333(hand)-334(side,)-333(otherwise)-333(will)-334(b)-27(e)-334(left)-333(in)-333(the)-334(UNALLOCA)84(TED)-334(state.)]TJ +/F8 9.9626 Tf 11.346 0 Td [(Rigth)-333(hand)-334(side\050s\051.)]TJ 13.561 -11.956 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(An)-310(arra)28(y)-310(of)-310(t)28(yp)-28(e)-310(real)-310(or)-310(complex,)-315(ran)1(k)-310(1)-310(or)-310(2)-310(and)-310(ha)28(ving)-310(the)-310(ALLOCA)83(T-)]TJ 0 -11.955 Td [(ABLE)-334(attribute;)-334(will)-333(b)-28(e)-334(allo)-27(c)-1(ated)-333(and)-334(\014lled)-334(in)-333(if)-334(the)-334(input)-333(\014le)-334(con)28(tains)-334(a)]TJ 0 -11.955 Td [(righ)28(t)-333(hand)-334(side,)-333(otherwise)-333(will)-334(b)-27(e)-334(left)-333(in)-333(the)-334(UNALLOCA)84(TED)-334(state.)]TJ 0 g 0 G /F27 9.9626 Tf -24.907 -19.925 Td [(iret)]TJ 0 g 0 G /F8 9.9626 Tf 22.589 0 Td [(Error)-333(co)-28(de.)]TJ 2.318 -11.956 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(An)-333(in)28(tege)-1(r)-333(v)56(alue;)-334(0)-333(means)-333(no)-334(error)-333(has)-333(b)-28(een)-333(detected.)]TJ 0 g 0 G - 139.477 -294.437 Td [(125)]TJ + 139.477 -294.437 Td [(126)]TJ 0 g 0 G ET endstream endobj -1670 0 obj +1683 0 obj << -/Length 4185 +/Length 4176 >> stream 0 g 0 G 0 g 0 G BT -/F16 11.9552 Tf 150.705 706.129 Td [(mm)]TJ +/F16 11.9552 Tf 99.895 706.129 Td [(mm)]TJ ET q -1 0 0 1 173.928 706.328 cm +1 0 0 1 123.118 706.328 cm []0 d 0 J 0.398 w 0 0 m 4.035 0 l S Q BT -/F16 11.9552 Tf 177.963 706.129 Td [(mat)]TJ +/F16 11.9552 Tf 127.153 706.129 Td [(mat)]TJ ET q -1 0 0 1 201.746 706.328 cm +1 0 0 1 150.936 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 [(write)-531(|)-532(W)94(rite)-531(a)-532(sparse)-531(matrix)-532(to)-531(a)-532(\014le)-531(in)-531(the)]TJ -55.076 -13.948 Td [(MatrixMark)31(et)-375(format)]TJ/F27 9.9626 Tf 1.377 -24.367 Td [(c)-138(a)-138(l)-139(l)]TJ/F8 9.9626 Tf 29.175 0 Td [(m)-67(m)]TJ +/F16 11.9552 Tf 154.971 706.129 Td [(write)-531(|)-532(W)94(rite)-532(a)-531(sparse)-531(matrix)-532(to)-531(a)-532(\014le)-531(in)-531(the)]TJ -55.076 -13.948 Td [(MatrixMark)31(et)-375(format)]TJ/F27 9.9626 Tf 1.377 -24.367 Td [(c)-138(a)-138(l)-139(l)]TJ/F8 9.9626 Tf 29.175 0 Td [(m)-67(m)]TJ ET q -1 0 0 1 199.787 668.014 cm +1 0 0 1 148.977 668.014 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 203.439 667.814 Td [(m)-67(a)-66(t)]TJ +/F8 9.9626 Tf 152.63 667.814 Td [(m)-67(a)-66(t)]TJ ET q -1 0 0 1 223.186 668.014 cm +1 0 0 1 172.377 668.014 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 226.839 667.814 Td [(w)-67(r)-66(i)-67(t)-66(e)-173(\050)-139(a)-227(,)-885(m)-124(t)-123(i)-124(t)-124(l)-123(e)-409(,)-910(i)-150(r)-149(e)-150(t)-460(,)-896(i)-135(u)-135(n)-135(i)-135(t)-431(,)-890(f)-129(i)-129(l)-129(e)-129(n)-129(a)-129(m)-129(e)-234(\051)]TJ +/F8 9.9626 Tf 176.029 667.814 Td [(w)-67(r)-66(i)-67(t)-67(e)-172(\050)-139(a)-227(,)-885(m)-124(t)-123(i)-124(t)-124(l)-123(e)-409(,)-910(i)-150(r)-149(e)-150(t)-460(,)-896(i)-135(u)-135(n)-135(i)-135(t)-431(,)-890(f)-129(i)-129(l)-129(e)-129(n)-129(a)-129(m)-129(e)-234(\051)]TJ 0 g 0 G 0 g 0 G 0 g 0 G @@ -20671,92 +20794,92 @@ BT 0 g 0 G 0 -19.925 Td [(a)]TJ 0 g 0 G -/F8 9.9626 Tf 10.551 0 Td [(the)-333(sparse)-334(matrix)-333(to)-333(b)-28(e)-333(written.)]TJ 14.356 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.183 0 Td [(required)]TJ/F8 9.9626 Tf 41.898 0 Td [(.)]TJ -67.081 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-444(a)-334(structured)-333(data)-333(of)-334(t)28(yp)-28(e)]TJ +/F8 9.9626 Tf 10.551 0 Td [(the)-333(sparse)-334(matrix)-333(to)-333(b)-28(e)-333(written.)]TJ 14.356 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.183 0 Td [(required)]TJ/F8 9.9626 Tf 41.899 0 Td [(.)]TJ -67.082 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(structured)-333(data)-333(of)-334(t)28(yp)-28(e)]TJ 0 0 1 rg 0 0 1 RG -/F30 9.9626 Tf 170.914 0 Td [(psb)]TJ +/F30 9.9626 Tf 170.915 0 Td [(psb)]TJ ET q -1 0 0 1 362.845 586.32 cm +1 0 0 1 312.036 586.32 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 365.983 586.121 Td [(Tspmat)]TJ +/F30 9.9626 Tf 315.174 586.121 Td [(Tspmat)]TJ ET q -1 0 0 1 397.993 586.32 cm +1 0 0 1 347.183 586.32 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 401.131 586.121 Td [(type)]TJ +/F30 9.9626 Tf 350.322 586.121 Td [(type)]TJ 0 g 0 G /F8 9.9626 Tf 20.921 0 Td [(.)]TJ 0 g 0 G -/F27 9.9626 Tf -271.347 -19.926 Td [(m)32(title)]TJ +/F27 9.9626 Tf -271.348 -19.926 Td [(m)32(title)]TJ 0 g 0 G -/F8 9.9626 Tf 34.737 0 Td [(Matrix)-333(title.)]TJ -9.831 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.612 0 Td [(required)]TJ/F8 9.9626 Tf -29.612 -11.955 Td [(A)-299(c)28(harac)28(h)27(t)1(e)-1(r)-298(v)55(ariable)-299(hold)1(ing)-299(a)-299(descriptiv)28(e)-299(title)-299(for)-299(the)-299(matrix)-298(to)-299(b)-28(e)-299(writ-)]TJ 0 -11.955 Td [(ten)-333(to)-334(\014le.)]TJ +/F8 9.9626 Tf 34.738 0 Td [(Matrix)-333(title.)]TJ -9.831 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(A)-299(c)28(harac)28(h)28(ter)-299(v)55(ariable)-299(h)1(olding)-299(a)-299(descriptiv)28(e)-299(title)-299(for)-299(the)-299(matrix)-298(to)-299(b)-28(e)-299(writ-)]TJ 0 -11.955 Td [(ten)-333(to)-334(\014le.)]TJ 0 g 0 G -/F27 9.9626 Tf -24.906 -19.925 Td [(\014lename)]TJ +/F27 9.9626 Tf -24.907 -19.925 Td [(\014lename)]TJ 0 g 0 G -/F8 9.9626 Tf 46.513 0 Td [(The)-333(name)-334(of)-333(the)-333(\014le)-334(to)-333(b)-28(e)-333(written)-333(to.)]TJ -21.607 -11.956 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.184 0 Td [(optional)]TJ/F8 9.9626 Tf 40.577 0 Td [(.)]TJ -65.761 -11.955 Td [(Sp)-28(eci\014ed)-435(as:)-648(a)-435(c)27(haracter)-435(v)56(ariable)-435(con)27(tain)1(ing)-436(a)-435(v)56(alid)-435(\014le)-435(name)-1(,)-460(or)]TJ/F30 9.9626 Tf 297.916 0 Td [(-)]TJ/F8 9.9626 Tf 5.23 0 Td [(,)-461(in)]TJ -303.146 -11.955 Td [(whic)28(h)-281(case)-280(the)-281(d)1(e)-1(f)1(ault)-281(output)-280(unit)-280(6)-281(\050i.e.)-427(stand)1(ard)-281(output)-280(in)-280(Unix)-281(jargon\051)]TJ 0 -11.955 Td [(is)-333(used.)-445(Default:)]TJ/F30 9.9626 Tf 76.076 0 Td [(-)]TJ/F8 9.9626 Tf 5.231 0 Td [(.)]TJ +/F8 9.9626 Tf 46.513 0 Td [(The)-333(name)-334(of)-333(the)-333(\014le)-334(to)-333(b)-28(e)-333(written)-333(to.)]TJ -21.606 -11.956 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.183 0 Td [(optional)]TJ/F8 9.9626 Tf 40.577 0 Td [(.)]TJ -65.76 -11.955 Td [(Sp)-28(eci\014ed)-435(as:)-648(a)-435(c)27(h)1(arac)-1(ter)-435(v)56(ariable)-435(con)28(taining)-436(a)-435(v)56(alid)-435(\014le)-435(name,)-461(or)]TJ/F30 9.9626 Tf 297.915 0 Td [(-)]TJ/F8 9.9626 Tf 5.231 0 Td [(,)-461(in)]TJ -303.146 -11.955 Td [(whic)28(h)-281(case)-280(the)-280(default)-281(output)-280(unit)-280(6)-281(\050i.e.)-426(s)-1(t)1(andard)-281(output)-280(in)-280(Unix)-281(jargon\051)]TJ 0 -11.955 Td [(is)-333(used.)-445(Default:)]TJ/F30 9.9626 Tf 76.076 0 Td [(-)]TJ/F8 9.9626 Tf 5.23 0 Td [(.)]TJ 0 g 0 G /F27 9.9626 Tf -106.213 -19.925 Td [(iunit)]TJ 0 g 0 G -/F8 9.9626 Tf 28.532 0 Td [(The)-333(F)83(ortran)-333(\014le)-334(u)1(nit)-334(n)28(um)28(b)-28(er.)]TJ -3.626 -11.956 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.184 0 Td [(optional)]TJ/F8 9.9626 Tf 40.577 0 Td [(.)]TJ -65.761 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(in)28(teger)-333(v)55(alue.)-444(Only)-334(meaningf)1(ul)-334(if)-333(\014lename)-333(is)-334(not)]TJ/F30 9.9626 Tf 286.289 0 Td [(-)]TJ/F8 9.9626 Tf 5.23 0 Td [(.)]TJ +/F8 9.9626 Tf 28.532 0 Td [(The)-333(F)83(ortran)-333(\014le)-334(un)1(it)-334(n)28(um)28(b)-28(er.)]TJ -3.625 -11.956 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.183 0 Td [(optional)]TJ/F8 9.9626 Tf 40.577 0 Td [(.)]TJ -65.76 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(in)28(teger)-333(v)55(alue.)-444(Only)-333(me)-1(ani)1(ngful)-334(if)-333(\014lename)-333(is)-334(not)]TJ/F30 9.9626 Tf 286.288 0 Td [(-)]TJ/F8 9.9626 Tf 5.23 0 Td [(.)]TJ 0 g 0 G /F27 9.9626 Tf -316.425 -21.918 Td [(On)-383(Return)]TJ 0 g 0 G 0 g 0 G 0 -19.925 Td [(iret)]TJ 0 g 0 G -/F8 9.9626 Tf 22.589 0 Td [(Error)-333(co)-28(de.)]TJ 2.318 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(An)-333(in)28(teger)-334(v)56(alue;)-334(0)-333(means)-333(no)-334(error)-333(has)-333(b)-28(een)-333(detected.)]TJ +/F8 9.9626 Tf 22.589 0 Td [(Error)-333(co)-28(de.)]TJ 2.318 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(An)-333(in)28(tege)-1(r)-333(v)56(alue;)-334(0)-333(means)-333(no)-334(error)-333(has)-333(b)-28(een)-333(detected.)]TJ 0 g 0 G - 139.476 -262.557 Td [(126)]TJ + 139.477 -262.557 Td [(127)]TJ 0 g 0 G ET endstream endobj -1676 0 obj +1690 0 obj << -/Length 3381 +/Length 3364 >> stream 0 g 0 G 0 g 0 G BT -/F16 11.9552 Tf 99.895 706.129 Td [(mm)]TJ +/F16 11.9552 Tf 150.705 706.129 Td [(mm)]TJ ET q -1 0 0 1 123.118 706.328 cm +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 127.153 706.129 Td [(arra)31(y)]TJ +/F16 11.9552 Tf 177.963 706.129 Td [(arra)31(y)]TJ ET q -1 0 0 1 158.747 706.328 cm +1 0 0 1 209.557 706.328 cm []0 d 0 J 0.398 w 0 0 m 4.035 0 l S Q BT -/F16 11.9552 Tf 162.782 706.129 Td [(write)-438(|)-438(W)93(rite)-438(a)-438(dense)-438(arra)31(y)-438(from)-438(a)-438(\014le)-439(in)-438(the)]TJ -62.887 -13.948 Td [(MatrixMark)31(et)-375(format)]TJ/F27 9.9626 Tf 1.377 -24.367 Td [(c)-138(a)-138(l)-139(l)]TJ/F8 9.9626 Tf 29.493 0 Td [(m)-99(m)]TJ +/F16 11.9552 Tf 213.592 706.129 Td [(write)-438(|)-438(W)93(rite)-438(a)-438(dense)-438(arra)31(y)-438(from)-438(a)-438(\014le)-439(in)-438(the)]TJ -62.887 -13.948 Td [(MatrixMark)31(et)-375(format)]TJ/F27 9.9626 Tf 1.377 -24.367 Td [(c)-138(a)-138(l)-139(l)]TJ/F8 9.9626 Tf 29.492 0 Td [(m)-99(m)]TJ ET q -1 0 0 1 149.929 668.014 cm +1 0 0 1 200.739 668.014 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 153.899 667.814 Td [(a)-99(r)-98(r)-98(a)-99(y)]TJ +/F8 9.9626 Tf 204.709 667.814 Td [(a)-98(r)-99(r)-98(a)-99(y)]TJ ET q -1 0 0 1 182.428 668.014 cm +1 0 0 1 233.237 668.014 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 186.398 667.814 Td [(w)-98(r)-99(i)-98(t)-99(e)-204(\050)-120(b)-191(,)-911(i)-149(r)-150(e)-149(t)-461(,)-896(i)-134(u)-135(n)-135(i)-135(t)-431(,)-890(f)-129(i)-129(l)-129(e)-129(n)-129(a)-129(m)-129(e)-235(\051)]TJ +/F8 9.9626 Tf 237.207 667.814 Td [(w)-99(r)-98(i)-98(t)-99(e)-204(\050)-120(b)-191(,)-911(i)-149(r)-150(e)-149(t)-461(,)-896(i)-134(u)-135(n)-135(i)-135(t)-431(,)-890(f)-129(i)-129(l)-129(e)-129(n)-129(a)-129(m)-129(e)-235(\051)]TJ 0 g 0 G 0 g 0 G 0 g 0 G -/F27 9.9626 Tf -86.503 -17.933 Td [(T)32(yp)-32(e:)]TJ +/F27 9.9626 Tf -86.502 -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 @@ -20765,15 +20888,15 @@ BT 0 g 0 G 0 -19.925 Td [(b)]TJ 0 g 0 G -/F8 9.9626 Tf 11.347 0 Td [(Rigth)-333(hand)-333(s)-1(i)1(de\050s)-1(\051.)]TJ 13.56 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(An)-333(arra)28(y)-334(of)-333(t)28(yp)-28(e)-333(real)-334(or)-333(complex,)-333(rank)-334(1)-333(or)-333(2;)-334(will)-333(b)-28(e)-333(written..)]TJ +/F8 9.9626 Tf 11.346 0 Td [(Rigth)-333(hand)-334(side\050s\051.)]TJ 13.56 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.612 0 Td [(required)]TJ/F8 9.9626 Tf -29.612 -11.955 Td [(An)-333(arra)27(y)-333(of)-333(t)28(yp)-28(e)-333(real)-334(or)-333(complex,)-333(rank)-334(1)-333(or)-333(2;)-334(will)-333(b)-28(e)-333(written..)]TJ 0 g 0 G -/F27 9.9626 Tf -24.907 -19.926 Td [(\014lename)]TJ +/F27 9.9626 Tf -24.906 -19.926 Td [(\014lename)]TJ 0 g 0 G -/F8 9.9626 Tf 46.513 0 Td [(The)-333(name)-334(of)-333(the)-333(\014le)-334(to)-333(b)-28(e)-333(written.)]TJ -21.606 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.183 0 Td [(optional)]TJ/F8 9.9626 Tf 40.577 0 Td [(.)]TJ -65.76 -11.955 Td [(Sp)-28(eci\014ed)-435(as:)-648(a)-435(c)27(h)1(arac)-1(ter)-435(v)56(ariable)-435(con)28(taining)-436(a)-435(v)56(alid)-435(\014le)-435(name,)-461(or)]TJ/F30 9.9626 Tf 297.915 0 Td [(-)]TJ/F8 9.9626 Tf 5.231 0 Td [(,)-461(in)]TJ -303.146 -11.955 Td [(whic)28(h)-302(cas)-1(e)-302(the)-302(default)-302(input)-302(unit)-302(5)-303(\050i.e.)-434(standard)-302(input)-302(in)-302(Unix)-302(jargon\051)-302(is)]TJ 0 -11.955 Td [(used.)-444(Default:)]TJ/F30 9.9626 Tf 66.058 0 Td [(-)]TJ/F8 9.9626 Tf 5.23 0 Td [(.)]TJ +/F8 9.9626 Tf 46.513 0 Td [(The)-333(name)-334(of)-333(the)-333(\014le)-334(to)-333(b)-28(e)-333(written.)]TJ -21.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.955 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.926 Td [(iunit)]TJ 0 g 0 G -/F8 9.9626 Tf 28.532 0 Td [(The)-333(F)83(ortran)-333(\014le)-334(un)1(it)-334(n)28(um)28(b)-28(er.)]TJ -3.625 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.183 0 Td [(optional)]TJ/F8 9.9626 Tf 40.577 0 Td [(.)]TJ -65.76 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(in)28(teger)-333(v)55(alue.)-444(Only)-333(me)-1(ani)1(ngful)-334(if)-333(\014lename)-333(is)-334(not)]TJ/F30 9.9626 Tf 286.288 0 Td [(-)]TJ/F8 9.9626 Tf 5.23 0 Td [(.)]TJ +/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 @@ -20782,45 +20905,45 @@ BT 0 g 0 G /F8 9.9626 Tf 22.589 0 Td [(Error)-333(co)-28(de.)]TJ 2.318 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(An)-333(in)28(tege)-1(r)-333(v)56(alue;)-334(0)-333(means)-333(no)-334(error)-333(has)-333(b)-28(een)-333(detected.)]TJ 0 g 0 G - 139.477 -318.348 Td [(127)]TJ + 139.477 -318.348 Td [(128)]TJ 0 g 0 G ET endstream endobj -1683 0 obj +1696 0 obj << -/Length 1215 +/Length 1212 >> stream 0 g 0 G 0 g 0 G BT -/F16 14.3462 Tf 150.705 706.129 Td [(10)-1125(Preconditioner)-375(routines)]TJ/F8 9.9626 Tf 0 -21.821 Td [(The)-310(base)-310(PSBLAS)-310(library)-310(con)28(tains)-310(the)-310(implemen)28(tation)-310(of)-310(t)28(w)27(o)-310(simple)-310(precondi-)]TJ 0 -11.955 Td [(tioning)-333(tec)28(hniques:)]TJ +/F16 14.3462 Tf 99.895 706.129 Td [(10)-1125(Preconditioner)-375(routines)]TJ/F8 9.9626 Tf 0 -21.821 Td [(The)-310(base)-310(PSBLAS)-310(library)-310(con)28(tains)-310(the)-310(implemen)28(tation)-310(of)-310(t)28(w)27(o)-310(simple)-310(precondi-)]TJ 0 -11.955 Td [(tioning)-333(tec)27(hn)1(iques:)]TJ 0 g 0 G /F14 9.9626 Tf 14.944 -19.925 Td [(\017)]TJ 0 g 0 G -/F8 9.9626 Tf 9.962 0 Td [(Diagonal)-333(Scaling)]TJ +/F8 9.9626 Tf 9.963 0 Td [(Diagonal)-333(Scaling)]TJ 0 g 0 G -/F14 9.9626 Tf -9.962 -19.926 Td [(\017)]TJ +/F14 9.9626 Tf -9.963 -19.926 Td [(\017)]TJ 0 g 0 G -/F8 9.9626 Tf 9.962 0 Td [(Blo)-28(c)28(k)-333(Jacobi)-334(with)-333(ILU\0500\051)-333(factorization)]TJ -24.906 -19.925 Td [(The)-364(supp)-27(orting)-364(data)-363(t)27(yp)-27(e)-364(and)-364(subroutin)1(e)-364(in)28(terfaces)-364(are)-364(de\014ned)-363(in)-364(the)-363(mo)-28(dule)]TJ/F30 9.9626 Tf 0 -11.955 Td [(psb_prec_mod)]TJ/F8 9.9626 Tf 62.764 0 Td [(.)-844(The)-466(old)-466(in)27(terfaces)]TJ/F30 9.9626 Tf 96.594 0 Td [(psb_precinit)]TJ/F8 9.9626 Tf 67.411 0 Td [(and)]TJ/F30 9.9626 Tf 20.697 0 Td [(psb_precbld)]TJ/F8 9.9626 Tf 62.181 0 Td [(are)-466(still)]TJ -309.647 -11.955 Td [(supp)-28(orted)-333(for)-333(bac)28(kw)27(ard)-333(compatibilit)28(y)]TJ +/F8 9.9626 Tf 9.963 0 Td [(Blo)-28(c)28(k)-333(Jacobi)-334(with)-333(ILU\0500\051)-333(factorization)]TJ -24.907 -19.925 Td [(The)-364(supp)-27(orting)-364(data)-364(t)28(yp)-27(e)-364(and)-364(subroutine)-363(in)28(terfaces)-364(are)-364(de\014ned)-363(in)-364(the)-364(mo)-27(dule)]TJ/F30 9.9626 Tf 0 -11.955 Td [(psb_prec_mod)]TJ/F8 9.9626 Tf 62.764 0 Td [(.)-844(The)-466(old)-466(in)27(terfaces)]TJ/F30 9.9626 Tf 96.595 0 Td [(psb_precinit)]TJ/F8 9.9626 Tf 67.41 0 Td [(and)]TJ/F30 9.9626 Tf 20.698 0 Td [(psb_precbld)]TJ/F8 9.9626 Tf 62.18 0 Td [(are)-466(still)]TJ -309.647 -11.955 Td [(supp)-28(orted)-333(for)-333(bac)27(kw)28(ard)-333(compatibilit)28(y)]TJ 0 g 0 G - 164.383 -498.229 Td [(128)]TJ + 164.384 -498.229 Td [(129)]TJ 0 g 0 G ET endstream endobj -1689 0 obj +1702 0 obj << -/Length 4500 +/Length 4508 >> stream 0 g 0 G 0 g 0 G BT -/F16 11.9552 Tf 99.895 706.129 Td [(init)-375(|)-375(Initialize)-375(a)-375(preconditioner)]TJ +/F16 11.9552 Tf 150.705 706.129 Td [(init)-375(|)-375(Initialize)-375(a)-375(preconditioner)]TJ 0 g 0 G 0 g 0 G /F30 9.9626 Tf 0 -18.389 Td [(call)-525(prec%init\050ptype,)-525(info\051)]TJ @@ -20834,40 +20957,40 @@ BT 0 g 0 G 0 -19.925 Td [(pt)32(yp)-32(e)]TJ 0 g 0 G -/F8 9.9626 Tf 33.465 0 Td [(the)-333(t)27(yp)-27(e)-334(of)-333(preconditioner.)-444(Scop)-28(e:)]TJ/F27 9.9626 Tf 153.093 0 Td [(global)]TJ/F8 9.9626 Tf -161.651 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(c)28(haracter)-333(s)-1(t)1(ring,)-334(see)-333(usage)-334(notes.)]TJ +/F8 9.9626 Tf 33.465 0 Td [(the)-333(t)28(yp)-28(e)-334(of)-333(preconditioner.)-444(Scop)-28(e:)]TJ/F27 9.9626 Tf 153.092 0 Td [(global)]TJ/F8 9.9626 Tf -161.651 -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(c)28(haracter)-334(stri)1(ng,)-334(see)-333(usage)-334(notes.)]TJ 0 g 0 G -/F27 9.9626 Tf -24.907 -19.926 Td [(On)-383(Exit)]TJ +/F27 9.9626 Tf -24.906 -19.926 Td [(On)-383(Exit)]TJ 0 g 0 G 0 g 0 G 0 -19.925 Td [(prec)]TJ 0 g 0 G -/F8 9.9626 Tf 26.408 0 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -33.88 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(inout)]TJ/F8 9.9626 Tf 26.096 0 Td [(.)]TJ -59.582 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(preconditioner)-333(data)-333(structure)]TJ +/F8 9.9626 Tf 26.408 0 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.378 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -33.88 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.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.097 0 Td [(.)]TJ -59.583 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(preconditioner)-333(data)-333(structure)]TJ 0 0 1 rg 0 0 1 RG -/F30 9.9626 Tf 197.537 0 Td [(psb)]TJ +/F30 9.9626 Tf 197.538 0 Td [(psb)]TJ ET q -1 0 0 1 338.658 514.589 cm +1 0 0 1 389.467 514.589 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 341.796 514.39 Td [(prec)]TJ +/F30 9.9626 Tf 392.606 514.39 Td [(prec)]TJ ET q -1 0 0 1 363.345 514.589 cm +1 0 0 1 414.155 514.589 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 366.483 514.39 Td [(type)]TJ +/F30 9.9626 Tf 417.293 514.39 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 -287.51 -19.926 Td [(info)]TJ +/F27 9.9626 Tf -287.509 -19.926 Td [(info)]TJ 0 g 0 G -/F8 9.9626 Tf 23.758 0 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(global)]TJ/F8 9.9626 Tf -31.23 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(out)]TJ/F8 9.9626 Tf 16.549 0 Td [(.)]TJ -50.035 -11.955 Td [(Error)-333(co)-28(de:)-444(if)-334(no)-333(error,)-333(0)-334(is)-333(returned.)]TJ/F16 11.9552 Tf -24.907 -21.918 Td [(Notes)]TJ/F8 9.9626 Tf 37.059 0 Td [(Legal)-316(inputs)-315(to)-316(this)-316(subroutine)-315(are)-316(in)28(terpreted)-316(dep)-28(ending)-315(on)-316(the)]TJ/F11 9.9626 Tf 283.149 0 Td [(pty)-36(pe)]TJ/F8 9.9626 Tf -320.208 -11.955 Td [(string)-333(as)-334(follo)28(ws)]TJ +/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.058 0 Td [(Legal)-316(inputs)-315(to)-316(this)-316(subroutine)-315(are)-316(in)28(terpreted)-316(dep)-28(ending)-315(on)-316(the)]TJ/F11 9.9626 Tf 283.15 0 Td [(pty)-36(pe)]TJ/F8 9.9626 Tf -320.208 -11.955 Td [(string)-333(as)-334(follo)28(ws)]TJ 0 0 1 rg 0 0 1 RG -/F7 6.9738 Tf 69.933 3.615 Td [(4)]TJ +/F7 6.9738 Tf 69.932 3.615 Td [(4)]TJ 0 g 0 G -/F8 9.9626 Tf 4.469 -3.615 Td [(:)]TJ +/F8 9.9626 Tf 4.47 -3.615 Td [(:)]TJ 0 g 0 G /F27 9.9626 Tf -74.402 -19.925 Td [(NONE)]TJ 0 g 0 G @@ -20875,218 +20998,265 @@ BT 0 g 0 G /F27 9.9626 Tf -39.048 -19.926 Td [(DIA)32(G)]TJ 0 g 0 G -/F8 9.9626 Tf 35.464 0 Td [(Diagonal)-441(scaling;)-496(eac)28(h)-442(en)28(try)-441(of)-442(th)1(e)-442(input)-441(v)28(ec)-1(tor)-441(is)-441(m)27(ultip)1(lied)-442(b)28(y)-441(the)]TJ -10.557 -11.955 Td [(recipro)-28(cal)-346(of)-346(the)-346(sum)-346(of)-345(the)-346(absolute)-346(v)55(alues)-346(of)-346(the)-346(co)-27(e\016cien)27(ts)-346(in)-346(th)1(e)-346(c)-1(or)1(-)]TJ 0 -11.955 Td [(resp)-28(onding)-333(ro)28(w)-334(of)-333(matrix)]TJ/F11 9.9626 Tf 113.602 0 Td [(A)]TJ/F8 9.9626 Tf 7.472 0 Td [(;)]TJ +/F8 9.9626 Tf 35.464 0 Td [(Diagonal)-441(scaling;)-496(eac)28(h)-442(en)28(try)-441(of)-441(the)-442(input)-441(v)28(ector)-442(is)-441(m)27(ulti)1(plied)-442(b)28(y)-441(the)]TJ -10.557 -11.955 Td [(recipro)-28(cal)-346(of)-346(the)-346(sum)-345(of)-346(the)-346(absolute)-346(v)55(alues)-346(of)-346(th)1(e)-346(c)-1(o)-27(e\016cien)27(ts)-346(in)-345(the)-346(cor-)]TJ 0 -11.955 Td [(resp)-28(onding)-333(ro)28(w)-334(of)-333(matrix)]TJ/F11 9.9626 Tf 113.602 0 Td [(A)]TJ/F8 9.9626 Tf 7.472 0 Td [(;)]TJ 0 g 0 G /F27 9.9626 Tf -145.981 -19.925 Td [(BJA)32(C)]TJ 0 g 0 G -/F8 9.9626 Tf 35.672 0 Td [(Precondition)-249(b)28(y)-249(a)-249(factorization)-248(of)-249(the)-249(blo)-28(c)28(k-diagonal)-249(of)-249(matrix)]TJ/F11 9.9626 Tf 269.665 0 Td [(A)]TJ/F8 9.9626 Tf 7.472 0 Td [(,)-266(where)]TJ -287.902 -11.956 Td [(blo)-28(c)28(k)-457(b)-28(oundaries)-457(are)-457(determined)-457(b)28(y)-457(the)-457(data)-457(allo)-28(cation)-457(b)-28(oundaries)-457(for)]TJ 0 -11.955 Td [(eac)28(h)-347(pro)-28(cess;)-353(requires)-346(no)-347(comm)28(unication.)-484(Only)-347(the)-346(incomplete)-347(factoriza-)]TJ 0 -11.955 Td [(tion)]TJ/F11 9.9626 Tf 20.479 0 Td [(I)-78(LU)]TJ/F8 9.9626 Tf 19.83 0 Td [(\0500\051)-333(is)-334(curren)28(tly)-333(implemen)28(ted.)]TJ +/F8 9.9626 Tf 35.672 0 Td [(Precondition)-249(b)28(y)-249(a)-249(factorization)-248(of)-249(the)-249(blo)-28(c)28(k-diagonal)-249(of)-249(matrix)]TJ/F11 9.9626 Tf 269.664 0 Td [(A)]TJ/F8 9.9626 Tf 7.472 0 Td [(,)-266(where)]TJ -287.901 -11.956 Td [(blo)-28(c)28(k)-457(b)-28(oundaries)-457(are)-457(determined)-457(b)28(y)-457(the)-457(data)-457(allo)-28(cation)-457(b)-28(oundaries)-457(for)]TJ 0 -11.955 Td [(eac)28(h)-347(pro)-27(c)-1(ess;)-353(requires)-346(no)-347(comm)28(unication.)-484(Only)-347(the)-346(incomplete)-347(factoriza-)]TJ 0 -11.955 Td [(tion)]TJ/F11 9.9626 Tf 20.478 0 Td [(I)-78(LU)]TJ/F8 9.9626 Tf 19.83 0 Td [(\0500\051)-333(is)-334(curren)28(tly)-333(implemen)28(ted.)]TJ 0 g 0 G ET q -1 0 0 1 99.895 129.78 cm +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 [(The)-354(string)-354(is)-355(case-insensitiv)30(e)]TJ +/F32 5.9776 Tf 161.797 123.138 Td [(4)]TJ/F31 7.9701 Tf 4.151 -2.812 Td [(The)-354(string)-354(is)-354(c)-1(a)1(se)-1(-)1(i)-1(nsensitiv)30(e)]TJ 0 g 0 G 0 g 0 G -/F8 9.9626 Tf 149.141 -29.888 Td [(129)]TJ +/F8 9.9626 Tf 149.14 -29.888 Td [(130)]TJ 0 g 0 G ET endstream endobj -1698 0 obj +1711 0 obj << -/Length 7019 +/Length 7751 >> stream 0 g 0 G 0 g 0 G BT -/F16 11.9552 Tf 150.705 706.129 Td [(build)-375(|)-375(Builds)-375(a)-375(preconditioner)]TJ +/F16 11.9552 Tf 99.895 706.129 Td [(build)-375(|)-375(Builds)-375(a)-375(preconditioner)]TJ 0 g 0 G 0 g 0 G -/F30 9.9626 Tf 0 -18.389 Td [(call)-525(prec%build\050a,)-525(desc_a,)-525(info,amold,vmold\051)]TJ +/F30 9.9626 Tf 0 -19.764 Td [(call)-525(prec%build\050a,)-525(desc_a,)-525(info[,amold,vmold,imold]\051)]TJ 0 g 0 G -/F27 9.9626 Tf 0 -21.918 Td [(T)32(yp)-32(e:)]TJ +/F27 9.9626 Tf 0 -24.132 Td [(T)32(yp)-32(e:)]TJ 0 g 0 G /F8 9.9626 Tf 33.797 0 Td [(Sync)28(hronous.)]TJ 0 g 0 G -/F27 9.9626 Tf -33.797 -19.926 Td [(On)-383(En)32(try)]TJ +/F27 9.9626 Tf -33.797 -22.879 Td [(On)-383(En)32(try)]TJ 0 g 0 G 0 g 0 G - 0 -19.925 Td [(a)]TJ + 0 -22.879 Td [(a)]TJ 0 g 0 G -/F8 9.9626 Tf 10.551 0 Td [(the)-333(system)-334(sparse)-333(matrix.)-445(Scop)-27(e:)]TJ/F27 9.9626 Tf 148.886 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -134.53 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.485 0 Td [(in)]TJ/F8 9.9626 Tf 9.548 0 Td [(,)-333(target.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-444(a)-334(sparse)-333(matrix)-334(d)1(ata)-334(structure)]TJ +/F8 9.9626 Tf 10.551 0 Td [(the)-333(system)-334(sparse)-333(matrix.)-445(Scop)-27(e:)]TJ/F27 9.9626 Tf 148.886 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -134.53 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(,)-333(target.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(sparse)-333(matrix)-334(data)-333(structure)]TJ 0 0 1 rg 0 0 1 RG /F30 9.9626 Tf 194.05 0 Td [(psb)]TJ ET q -1 0 0 1 385.981 590.305 cm +1 0 0 1 335.171 580.809 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 389.119 590.106 Td [(Tspmat)]TJ +/F30 9.9626 Tf 338.309 580.61 Td [(Tspmat)]TJ ET q -1 0 0 1 421.128 590.305 cm +1 0 0 1 370.319 580.809 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 424.267 590.106 Td [(type)]TJ +/F30 9.9626 Tf 373.457 580.61 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 -294.483 -19.926 Td [(prec)]TJ +/F27 9.9626 Tf -294.484 -22.879 Td [(prec)]TJ 0 g 0 G -/F8 9.9626 Tf 26.408 0 Td [(the)-333(preconditioner.)]TJ -1.501 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.378 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.378 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.485 0 Td [(inout)]TJ/F8 9.9626 Tf 26.097 0 Td [(.)]TJ -59.582 -11.955 Td [(Sp)-28(eci\014ed)-222(as:)-389(an)-222(already)-222(initialized)-222(precondtioner)-222(data)-223(structure)]TJ +/F8 9.9626 Tf 26.408 0 Td [(the)-333(preconditioner.)]TJ -1.501 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(inout)]TJ/F8 9.9626 Tf 26.096 0 Td [(.)]TJ -59.582 -11.956 Td [(Sp)-28(eci\014ed)-222(as:)-389(an)-222(already)-222(initialized)-222(precondtioner)-222(data)-223(structure)]TJ 0 0 1 rg 0 0 1 RG /F30 9.9626 Tf 273.115 0 Td [(psb)]TJ ET q -1 0 0 1 465.045 522.559 cm +1 0 0 1 414.236 510.11 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 468.184 522.36 Td [(prec)]TJ +/F30 9.9626 Tf 417.374 509.91 Td [(prec)]TJ ET q -1 0 0 1 489.733 522.559 cm +1 0 0 1 438.923 510.11 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 492.871 522.36 Td [(type)]TJ +/F30 9.9626 Tf 442.061 509.91 Td [(type)]TJ 0 g 0 G 0 g 0 G -/F27 9.9626 Tf -342.166 -31.881 Td [(desc)]TJ +/F27 9.9626 Tf -342.166 -34.833 Td [(desc)]TJ ET q -1 0 0 1 172.619 490.679 cm +1 0 0 1 121.81 475.276 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 176.057 490.479 Td [(a)]TJ +/F27 9.9626 Tf 125.247 475.077 Td [(a)]TJ 0 g 0 G -/F8 9.9626 Tf 10.55 0 Td [(the)-333(problem)-334(comm)28(unication)-333(descriptor.)-445(Scop)-27(e:)]TJ/F27 9.9626 Tf 208.247 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -219.243 -11.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 [(,)-333(target.)]TJ -43.034 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(comm)28(unication)-333(des)-1(crip)1(tor)-334(data)-333(structure)]TJ +/F8 9.9626 Tf 10.551 0 Td [(the)-333(problem)-334(comm)28(unication)-333(descriptor.)-445(Scop)-27(e:)]TJ/F27 9.9626 Tf 208.247 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -219.243 -11.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 [(,)-333(target.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(comm)28(unication)-333(desc)-1(ri)1(ptor)-334(data)-333(structure)]TJ 0 0 1 rg 0 0 1 RG /F30 9.9626 Tf 247.683 0 Td [(psb)]TJ ET q -1 0 0 1 439.613 454.813 cm +1 0 0 1 388.803 439.41 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 442.751 454.614 Td [(desc)]TJ +/F30 9.9626 Tf 391.942 439.211 Td [(desc)]TJ ET q -1 0 0 1 464.3 454.813 cm +1 0 0 1 413.491 439.41 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 467.438 454.614 Td [(type)]TJ +/F30 9.9626 Tf 416.629 439.211 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 -337.655 -22.879 Td [(amold)]TJ +0 g 0 G +/F8 9.9626 Tf 35.374 0 Td [(The)-333(desired)-334(dynamic)-333(t)28(yp)-28(e)-333(for)-334(the)-333(in)28(ternal)-333(matrix)-334(storage.)]TJ -10.467 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf 23.073 0 Td [(.)]TJ -55.452 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(optional)]TJ/F8 9.9626 Tf 40.577 0 Td [(.)]TJ -70.188 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(ob)-55(ject)-334(of)-333(a)-333(class)-334(deriv)28(ed)-333(from)]TJ/F30 9.9626 Tf 203.349 0 Td [(psb)]TJ +ET +q +1 0 0 1 344.47 368.711 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +Q +BT +/F30 9.9626 Tf 347.608 368.512 Td [(T)]TJ +ET +q +1 0 0 1 353.466 368.711 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +Q +BT +/F30 9.9626 Tf 356.604 368.512 Td [(base)]TJ +ET +q +1 0 0 1 378.153 368.711 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +Q +BT +/F30 9.9626 Tf 381.291 368.512 Td [(sparse)]TJ +ET +q +1 0 0 1 413.301 368.711 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +Q +BT +/F30 9.9626 Tf 416.439 368.512 Td [(mat)]TJ/F8 9.9626 Tf 15.691 0 Td [(.)]TJ 0 g 0 G -/F27 9.9626 Tf -337.655 -19.926 Td [(amold)]TJ +/F27 9.9626 Tf -332.235 -22.879 Td [(vmold)]TJ 0 g 0 G -/F8 9.9626 Tf 35.374 0 Td [(The)-333(desired)-334(dynamic)-333(t)28(yp)-28(e)-333(for)-334(the)-333(in)28(ternal)-333(matrix)-334(storage.)]TJ -10.467 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.378 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf 23.073 0 Td [(.)]TJ -55.451 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(optional)]TJ/F8 9.9626 Tf 40.577 0 Td [(.)]TJ -70.188 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.485 0 Td [(in)]TJ/F8 9.9626 Tf 9.548 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-444(an)-334(ob)-55(ject)-334(of)-333(a)-333(class)-334(deriv)28(ed)-333(from)]TJ/F30 9.9626 Tf 203.348 0 Td [(psb)]TJ +/F8 9.9626 Tf 35.852 0 Td [(The)-333(desired)-334(dynamic)-333(t)28(yp)-28(e)-333(for)-334(the)-333(in)28(ternal)-333(v)27(ector)-333(storage.)]TJ -10.945 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf 23.073 0 Td [(.)]TJ -55.452 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(optional)]TJ/F8 9.9626 Tf 40.577 0 Td [(.)]TJ -70.188 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.956 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(ob)-55(ject)-334(of)-333(a)-333(class)-334(deriv)28(ed)-333(from)]TJ/F30 9.9626 Tf 203.349 0 Td [(psb)]TJ ET q -1 0 0 1 395.279 387.067 cm +1 0 0 1 344.47 298.012 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 398.417 386.868 Td [(T)]TJ +/F30 9.9626 Tf 347.608 297.812 Td [(T)]TJ ET q -1 0 0 1 404.275 387.067 cm +1 0 0 1 353.466 298.012 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 407.413 386.868 Td [(base)]TJ +/F30 9.9626 Tf 356.604 297.812 Td [(base)]TJ ET q -1 0 0 1 428.962 387.067 cm +1 0 0 1 378.153 298.012 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 432.101 386.868 Td [(sparse)]TJ +/F30 9.9626 Tf 381.291 297.812 Td [(vect)]TJ ET q -1 0 0 1 464.11 387.067 cm +1 0 0 1 402.84 298.012 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 467.248 386.868 Td [(mat)]TJ/F8 9.9626 Tf 15.691 0 Td [(.)]TJ +/F30 9.9626 Tf 405.978 297.812 Td [(type)]TJ/F8 9.9626 Tf 20.922 0 Td [(.)]TJ 0 g 0 G -/F27 9.9626 Tf -332.234 -19.925 Td [(vmold)]TJ +/F27 9.9626 Tf -327.005 -22.878 Td [(imold)]TJ 0 g 0 G -/F8 9.9626 Tf 35.851 0 Td [(The)-333(desired)-334(dynamic)-333(t)28(yp)-28(e)-333(for)-334(the)-333(in)28(ternal)-333(v)27(ector)-333(storage.)]TJ -10.945 -11.956 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf 23.073 0 Td [(.)]TJ -55.452 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.612 0 Td [(optional)]TJ/F8 9.9626 Tf 40.576 0 Td [(.)]TJ -70.188 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.548 0 Td [(.)]TJ -43.034 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(ob)-55(ject)-334(of)-333(a)-333(class)-334(deriv)28(ed)-333(from)]TJ/F30 9.9626 Tf 203.349 0 Td [(psb)]TJ +/F8 9.9626 Tf 32.988 0 Td [(The)-333(desired)-334(dynamic)-333(t)28(yp)-28(e)-333(for)-334(th)1(e)-334(in)28(ternal)-333(in)28(te)-1(ger)-333(v)28(ector)-333(s)-1(t)1(o)-1(r)1(age)-1(.)]TJ -8.081 -11.956 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf 23.073 0 Td [(.)]TJ -55.452 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.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)-222(as:)-389(an)-222(ob)-56(ject)-222(of)-222(a)-222(class)-223(deriv)28(ed)-222(from)-222(\050in)28(teger\051)]TJ/F30 9.9626 Tf 233.541 0 Td [(psb)]TJ ET q -1 0 0 1 395.279 319.321 cm +1 0 0 1 374.662 227.312 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 398.417 319.122 Td [(T)]TJ +/F30 9.9626 Tf 377.8 227.113 Td [(T)]TJ ET q -1 0 0 1 404.275 319.321 cm +1 0 0 1 383.658 227.312 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 407.413 319.122 Td [(base)]TJ +/F30 9.9626 Tf 386.796 227.113 Td [(base)]TJ ET q -1 0 0 1 428.962 319.321 cm +1 0 0 1 408.345 227.312 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 432.101 319.122 Td [(vect)]TJ +/F30 9.9626 Tf 411.483 227.113 Td [(vect)]TJ ET q -1 0 0 1 453.65 319.321 cm +1 0 0 1 433.032 227.312 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 456.788 319.122 Td [(type)]TJ/F8 9.9626 Tf 20.921 0 Td [(.)]TJ +/F30 9.9626 Tf 436.171 227.113 Td [(type)]TJ/F8 9.9626 Tf 20.921 0 Td [(.)]TJ 0 g 0 G -/F27 9.9626 Tf -327.004 -21.918 Td [(On)-383(Return)]TJ +/F27 9.9626 Tf -357.197 -24.133 Td [(On)-383(Return)]TJ 0 g 0 G 0 g 0 G - 0 -19.925 Td [(prec)]TJ + 0 -22.879 Td [(prec)]TJ 0 g 0 G -/F8 9.9626 Tf 26.408 0 Td [(the)-333(preconditioner.)]TJ -1.502 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.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(precondtioner)-333(data)-333(structure)]TJ +/F8 9.9626 Tf 26.408 0 Td [(the)-333(preconditioner.)]TJ -1.501 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]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(precondtioner)-333(data)-333(structure)]TJ 0 0 1 rg 0 0 1 RG /F30 9.9626 Tf 194.77 0 Td [(psb)]TJ ET q -1 0 0 1 386.7 229.657 cm +1 0 0 1 335.891 132.48 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 389.838 229.458 Td [(prec)]TJ +/F30 9.9626 Tf 339.029 132.281 Td [(prec)]TJ ET q -1 0 0 1 411.387 229.657 cm +1 0 0 1 360.578 132.48 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 414.525 229.458 Td [(type)]TJ +/F30 9.9626 Tf 363.716 132.281 Td [(type)]TJ +0 g 0 G +0 g 0 G +/F8 9.9626 Tf -99.437 -41.843 Td [(131)]TJ 0 g 0 G +ET + +endstream +endobj +1715 0 obj +<< +/Length 1097 +>> +stream 0 g 0 G -/F27 9.9626 Tf -263.82 -31.88 Td [(info)]TJ 0 g 0 G -/F8 9.9626 Tf 23.758 0 Td [(Error)-333(co)-28(de.)]TJ 1.148 -11.956 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.612 0 Td [(required)]TJ/F8 9.9626 Tf -29.612 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(out)]TJ/F8 9.9626 Tf 16.549 0 Td [(.)]TJ -50.035 -11.955 Td [(An)-333(in)27(t)1(e)-1(ger)-333(v)56(alue;)-334(0)-333(means)-333(no)-334(error)-333(has)-333(b)-28(een)-333(detec)-1(ted.)]TJ 0 g 0 G - 139.477 -59.319 Td [(130)]TJ +BT +/F27 9.9626 Tf 150.705 706.129 Td [(info)]TJ +0 g 0 G +/F8 9.9626 Tf 23.758 0 Td [(Error)-333(co)-28(de.)]TJ 1.148 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.612 0 Td [(required)]TJ/F8 9.9626 Tf -29.612 -11.956 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(out)]TJ/F8 9.9626 Tf 16.549 0 Td [(.)]TJ -50.035 -11.955 Td [(An)-333(in)27(t)1(e)-1(ger)-333(v)56(alue;)-334(0)-333(means)-333(no)-334(error)-333(has)-333(b)-28(een)-333(detec)-1(ted.)]TJ -24.906 -21.918 Td [(The)]TJ/F30 9.9626 Tf 21.637 0 Td [(amold)]TJ/F8 9.9626 Tf 26.152 0 Td [(,)]TJ/F30 9.9626 Tf 7.537 0 Td [(vmold)]TJ/F8 9.9626 Tf 30.631 0 Td [(and)]TJ/F30 9.9626 Tf 20.53 0 Td [(imold)]TJ/F8 9.9626 Tf 30.631 0 Td [(argumen)28(ts)-450(ma)28(y)-450(b)-28(e)-449(emplo)28(y)27(ed)-449(to)-450(in)28(terface)-450(with)]TJ -137.118 -11.955 Td [(sp)-28(ecial)-333(devices,)-334(suc)28(h)-333(as)-334(GP)1(Us)-334(and)-333(other)-333(acc)-1(elerators.)]TJ +0 g 0 G + 164.383 -533.997 Td [(132)]TJ 0 g 0 G ET endstream endobj -1706 0 obj +1723 0 obj << /Length 5847 >> @@ -21230,13 +21400,13 @@ BT 0 g 0 G /F8 9.9626 Tf 23.758 0 Td [(Error)-333(co)-28(de.)]TJ 1.149 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(out)]TJ/F8 9.9626 Tf 16.549 0 Td [(.)]TJ -50.035 -11.955 Td [(An)-333(in)28(tege)-1(r)-333(v)56(alue;)-334(0)-333(means)-333(no)-334(error)-333(has)-333(b)-28(een)-333(detecte)-1(d)1(.)]TJ 0 g 0 G - 139.477 -119.095 Td [(131)]TJ + 139.477 -119.095 Td [(133)]TJ 0 g 0 G ET endstream endobj -1711 0 obj +1729 0 obj << /Length 2936 >> @@ -21286,13 +21456,13 @@ BT 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 -352.221 Td [(132)]TJ + 139.477 -352.221 Td [(134)]TJ 0 g 0 G ET endstream endobj -1715 0 obj +1733 0 obj << /Length 989 >> @@ -21327,13 +21497,13 @@ BT 0 g 0 G /F8 9.9626 Tf 23.758 0 Td [(Return)-333(co)-28(de.)]TJ 0 g 0 G - 140.626 -449.854 Td [(133)]TJ + 140.626 -449.854 Td [(135)]TJ 0 g 0 G ET endstream endobj -1722 0 obj +1739 0 obj << /Length 2730 >> @@ -21404,13 +21574,13 @@ BT 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 + 127.149 -334.288 Td [(136)]TJ 0 g 0 G ET endstream endobj -1726 0 obj +1743 0 obj << /Length 598 >> @@ -21420,13 +21590,13 @@ stream BT /F16 14.3462 Tf 99.895 706.129 Td [(11)-1125(Iterativ)31(e)-375(Metho)-31(ds)]TJ/F8 9.9626 Tf 0 -21.821 Td [(In)-519(this)-518(c)28(hapter)-519(w)28(e)-519(pro)28(vide)-519(routin)1(e)-1(s)-518(for)-519(preconditioners)-518(and)-519(iterativ)28(e)-519(meth-)]TJ 0 -11.955 Td [(o)-28(ds.)-647(The)-401(in)28(terfaces)-401(for)-401(Kryl)1(o)27(v)-401(subspace)-400(m)-1(etho)-27(ds)-401(are)-401(a)28(v)55(ailable)-400(in)-401(the)-401(mo)-28(dule)]TJ/F30 9.9626 Tf 0 -11.955 Td [(psb_krylov_mod)]TJ/F8 9.9626 Tf 73.225 0 Td [(.)]TJ 0 g 0 G - 91.159 -569.96 Td [(135)]TJ + 91.159 -569.96 Td [(137)]TJ 0 g 0 G ET endstream endobj -1733 0 obj +1750 0 obj << /Length 8299 >> @@ -21570,13 +21740,13 @@ BT /F32 5.9776 Tf 161.797 123.138 Td [(5)]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.158 -29.888 Td [(136)]TJ +/F8 9.9626 Tf 9.158 -29.888 Td [(138)]TJ 0 g 0 G ET endstream endobj -1745 0 obj +1762 0 obj << /Length 7084 >> @@ -21675,242 +21845,96 @@ q 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 125.247 437.138 Td [(a)]TJ -0 g 0 G -/F8 9.9626 Tf 10.551 0 Td [(con)28(tains)-334(d)1(ata)-334(structures)-333(for)-333(com)-1(m)28(unications.)]TJ -10.996 -11.956 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(structured)-333(data)-333(of)-334(t)28(yp)-28(e)]TJ -0 0 1 rg 0 0 1 RG -/F30 9.9626 Tf 170.915 0 Td [(psb)]TJ -ET -q -1 0 0 1 312.036 389.516 cm -[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S -Q -BT -/F30 9.9626 Tf 315.174 389.317 Td [(desc)]TJ -ET -q -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 339.861 389.317 Td [(type)]TJ -0 g 0 G -/F8 9.9626 Tf 20.921 0 Td [(.)]TJ -0 g 0 G -/F27 9.9626 Tf -260.887 -19.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.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.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(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.907 -19.427 Td [(istop)]TJ -0 g 0 G -/F8 9.9626 Tf 29.232 0 Td [(An)-333(in)28(te)-1(ger)-333(sp)-28(ecifying)-333(the)-333(stopping)-334(crit)1(e)-1(ri)1(on.)]TJ -4.325 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(global)]TJ -0 g 0 G -/F8 9.9626 Tf 107.098 -29.888 Td [(137)]TJ -0 g 0 G -ET - -endstream -endobj -1750 0 obj -<< -/Length 4414 ->> -stream -0 g 0 G -0 g 0 G -BT -/F8 9.9626 Tf 175.611 706.129 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.612 0 Td [(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.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.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 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 418.564 582.592 Td [(T)]TJ -ET -q -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 427.56 582.592 Td [(vect)]TJ -ET -q -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 452.247 582.592 Td [(type)]TJ -0 g 0 G -/F8 9.9626 Tf 20.922 0 Td [(.)]TJ -0 g 0 G -/F27 9.9626 Tf -322.464 -19.925 Td [(iter)]TJ -0 g 0 G -/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 -/F27 9.9626 Tf -24.906 -19.925 Td [(err)]TJ -0 g 0 G -/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 -/F27 9.9626 Tf -24.906 -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)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 - 139.477 -197.26 Td [(138)]TJ -0 g 0 G -ET - -endstream -endobj -1754 0 obj -<< -/Length 7014 ->> -stream -0 g 0 G -0 g 0 G -BT -/F16 14.3462 Tf 99.895 706.129 Td [(References)]TJ -0 g 0 G -/F8 9.9626 Tf 4.982 -21.821 Td [([1])]TJ -0 g 0 G - [-500(D.)-441(Barbieri,)-468(V.)-441(Cardellini,)-467(S.)-441(Filipp)-28(one)-441(and)-441(D.)-441(Rouson)]TJ/F17 9.9626 Tf 267.833 0 Td [(Design)-457(Patterns)]TJ -252.336 -11.955 Td [(for)-441(S)-1(ci)1(ent)-1(i)1(\014)-1(c)-441(Computations)-442(on)-441(Sp)51(arse)-441(Matric)51(es)]TJ/F8 9.9626 Tf 210.802 0 Td [(,)-447(HPSS)-424(2011,)-447(Algorithms)]TJ -210.802 -11.955 Td [(and)-375(Programming)-374(T)83(o)-28(ols)-375(for)-374(Next-Generation)-375(High-P)28(erformance)-375(Scien)28(ti\014c)]TJ 0 -11.956 Td [(Soft)28(w)28(are,)-334(Bordeaux,)-333(Sep.)-333(2011)]TJ -0 g 0 G - -15.497 -18.666 Td [([2])]TJ -0 g 0 G - [-500(G.)-341(Bella,)-343(S.)-341(Filipp)-28(one,)-343(A.)-341(De)-341(Maio)-341(and)-341(M.)-341(T)84(esta,)]TJ/F17 9.9626 Tf 235.488 0 Td [(A)-365(Simulation)-365(Mo)51(del)-364(for)]TJ -219.991 -11.955 Td [(F)77(or)51(est)-365(Fir)51(es)]TJ/F8 9.9626 Tf 52.03 0 Td [(,)-343(in)-341(J.)-340(Dongarra,)-343(K.)-341(Madsen,)-343(J.)-341(W)84(asniewski,)-343(editors,)-343(Pro)-28(ceed-)]TJ -52.03 -11.955 Td [(ings)-394(of)-395(P)84(ARA)-395(04)-394(W)83(orkshop)-394(on)-395(State)-394(of)-395(the)-394(Art)-394(in)-395(Scien)28(ti\014c)-394(Com)-1(p)1(uting,)]TJ 0 -11.955 Td [(pp.)-333(546{553,)-334(Lecture)-333(Notes)-333(in)-334(Computer)-333(Science,)-333(Springer,)-334(2005.)]TJ -0 g 0 G - -15.497 -18.666 Td [([3])]TJ -0 g 0 G - [-500(A.)-316(Buttari,)-320(D.)-317(di)-316(Sera\014no,)-320(P)83(.)-316(D'Am)28(bra,)-320(S.)-317(Filipp)-27(one,)-100(2LEV-D2P4:)-436(a)-316(pac)28(k-)]TJ 15.497 -11.955 Td [(age)-388(of)-388(high-p)-28(erformance)-388(preconditioners,)-218(Applicable)-388(Alge)-1(b)1(ra)-389(in)-388(Engin)1(e)-1(er-)]TJ 0 -11.956 Td [(ing,)-393(Comm)27(un)1(ications)-382(and)-381(Computing,)-393(V)83(olume)-381(18,)-393(Num)27(b)-27(er)-382(3,)-393(Ma)28(y)83(,)-393(2007,)]TJ 0 -11.955 Td [(pp.)-333(223-239)]TJ -0 g 0 G - -15.497 -18.666 Td [([4])]TJ -0 g 0 G - [-500(P)83(.)-691(D'Am)28(bra,)-780(S.)-691(Filipp)-28(one,)-780(D.)-691(Di)-691(Sera\014no)-819(On)-691(the)-691(Dev)28(elopmen)28(t)-691(of)]TJ 15.497 -11.955 Td [(PSBLAS-based)-430(P)28(arallel)-430(Tw)28(o-lev)28(el)-430(Sc)27(h)28(w)28(arz)-430(Preconditioners)-731(Applied)-430(Nu-)]TJ 0 -11.955 Td [(merical)-245(Mathematics)-1(,)-262(Elsevier)-246(Science,)-263(V)83(ol)1(ume)-246(57,)-263(Issues)-245(11-12,)-263(No)27(v)28(em)28(b)-28(er-)]TJ 0 -11.955 Td [(Decem)28(b)-28(er)-333(2007)-1(,)-333(P)28(ages)-333(1181-1196.)]TJ -0 g 0 G - -15.497 -18.667 Td [([5])]TJ -0 g 0 G - [-500(Dongarra,)-529(J.)-490(J.,)-529(DuCroz,)-529(J.,)-529(Hammarling,)-529(S.)-490(and)-490(Hanson,)-529(R.,)-529(An)-490(Ex-)]TJ 15.497 -11.955 Td [(tended)-478(Set)-478(of)-478(F)83(ortran)-478(Basic)-478(Linear)-478(Algebra)-478(Subprograms,)-514(A)28(C)-1(M)-477(T)83(rans.)]TJ 0 -11.955 Td [(Math.)-333(Soft)28(w.)-334(v)28(ol.)-333(14,)-334(1{17,)-333(1988.)]TJ -0 g 0 G - -15.497 -18.666 Td [([6])]TJ -0 g 0 G - [-500(Dongarra,)-444(J.,)-444(DuCroz,)-444(J.,)-445(Hammarling,)-444(S.)-422(and)-422(Du\013,)-444(I.,)-444(A)-422(Set)-422(of)-422(lev)28(el)-422(3)]TJ 15.497 -11.955 Td [(Basic)-357(Linear)-357(Algebra)-357(Subpr)1(ogram)-1(s,)-362(A)27(CM)-356(T)83(rans.)-357(Math.)-357(Soft)28(w.)-357(v)28(ol.)-357(16,)-362(1{)]TJ 0 -11.955 Td [(17,)-333(1990.)]TJ -0 g 0 G - -15.497 -18.666 Td [([7])]TJ -0 g 0 G - [-500(J.)-265(J.)-266(Dongarra)-266(and)-265(R.)-266(C.)-265(Whaley)83(,)]TJ/F17 9.9626 Tf 162.063 0 Td [(A)-295(User's)-296(Guide)-295(to)-296(the)-295(BLA)25(CS)-295(v.)-295(1.1)]TJ/F8 9.9626 Tf 156.589 0 Td [(,)-279(La-)]TJ -303.155 -11.956 Td [(pac)28(k)-291(W)84(orking)-291(Note)-290(94,)-299(T)83(ec)28(h.)-290(Rep.)-291(UT-CS-95-281,)-299(Univ)28(ersit)28(y)-290(of)-291(T)84(ennesse)-1(e,)]TJ 0 -11.955 Td [(Marc)28(h)-334(1995)-333(\050up)-28(dated)-333(Ma)28(y)-333(1997\051.)]TJ +BT +/F27 9.9626 Tf 125.247 437.138 Td [(a)]TJ 0 g 0 G - -15.497 -18.666 Td [([8])]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 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 315.174 389.317 Td [(desc)]TJ +ET +q +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 339.861 389.317 Td [(type)]TJ 0 g 0 G - [-500(I.)-488(Du\013,)-527(M.)-488(Marrone,)-526(G.)-488(Radicati)-488(and)-488(C.)-488(Vittoli,)]TJ/F17 9.9626 Tf 244.569 0 Td [(L)51(evel)-500(3)-500(Basic)-500(Line)51(ar)]TJ -229.072 -11.955 Td [(A)26(lgebr)51(a)-463(Subpr)52(o)51(gr)51(ams)-463(f)1(or)-463(Sp)51(arse)-462(Matric)51(es:)-669(a)-462(User)-462(L)51(evel)-463(Interfac)52(e)]TJ/F8 9.9626 Tf 292.206 0 Td [(,)-475(A)27(CM)]TJ -292.206 -11.955 Td [(T)83(ransactions)-333(on)-333(Mathematical)-334(Soft)28(w)28(are,)-333(23\0503\051,)-334(pp.)-333(379{401,)-333(1997.)]TJ +/F8 9.9626 Tf 20.921 0 Td [(.)]TJ 0 g 0 G - -15.497 -18.666 Td [([9])]TJ +/F27 9.9626 Tf -260.887 -19.427 Td [(itmax)]TJ 0 g 0 G - [-500(I.)-358(Du\013,)-365(M.)-359(Heroux)-358(and)-359(R.)-358(P)27(ozo,)]TJ/F17 9.9626 Tf 162.007 0 Td [(A)26(n)-381(Overview)-381(of)-381(the)-381(Sp)51(arse)-381(Basic)-381(Line)51(ar)]TJ -146.51 -11.956 Td [(A)26(lgebr)51(a)-348(S)-1(u)1(bpr)51(o)51(gr)51(ams:)-455(the)-348(New)-349(Standar)51(d)-348(fr)51(om)-348(the)-348(BLAS)-348(T)76(e)51(chnic)52(al)-349(F)77(orum)]TJ/F8 9.9626 Tf 320.465 0 Td [(,)]TJ -320.465 -11.955 Td [(A)28(CM)-334(T)84(ransactions)-334(on)-333(Mathematical)-333(Soft)28(w)27(are,)-333(28\0502\051,)-333(pp.)-333(23)-1(9{267,)-333(2002.)]TJ +/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 - -20.479 -18.666 Td [([10])]TJ +/F27 9.9626 Tf -207.006 -19.427 Td [(itrace)]TJ 0 g 0 G - [-500(S.)-451(Filipp)-28(one)-451(and)-451(M.)-451(Cola)-56(janni,)]TJ/F17 9.9626 Tf 165.708 0 Td [(PSBLAS:)-466(A)-466(Libr)51(ary)-466(for)-467(Par)51(al)-51(lel)-466(Line)51(ar)]TJ -145.229 -11.955 Td [(A)26(lgebr)51(a)-420(Computation)-420(on)-420(Sp)51(arse)-420(Matric)51(es)]TJ/F8 9.9626 Tf 181.375 0 Td [(,)-661(A)27(CM)-400(T)83(ransactions)-401(on)-401(Mathe-)]TJ -181.375 -11.955 Td [(matical)-333(Soft)27(w)28(are,)-333(26\0504\051,)-333(pp.)-334(527{550,)-333(2000.)]TJ +/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 - -20.479 -18.666 Td [([11])]TJ +/F27 9.9626 Tf -67.94 -31.382 Td [(irst)]TJ 0 g 0 G - [-500(S.)-425(Filipp)-27(one)-425(and)-425(A.)-425(Buttari,)]TJ/F17 9.9626 Tf 152.315 0 Td [(Obje)51(ct-Oriente)51(d)-442(T)77(e)51(chniques)-442(for)-441(Sp)51(arse)-442(Ma-)]TJ -131.836 -11.955 Td [(trix)-407(Computations)-406(in)-407(F)77(ortr)51(an)-407(2003)]TJ/F8 9.9626 Tf 153.485 0 Td [(,)-615(A)28(CM)-387(T)84(ransactions)-387(on)-386(Mathematical)]TJ -153.485 -11.956 Td [(Soft)28(w)28(are,)-334(38\0504\051,)-333(2012.)]TJ +/F8 9.9626 Tf 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 - -20.479 -18.666 Td [([12])]TJ +/F27 9.9626 Tf -24.907 -19.427 Td [(istop)]TJ 0 g 0 G - [-500(S.)-267(Filipp)-27(one,)-280(P)83(.)-267(D'Am)28(bra,)-280(M.)-267(Cola)-55(janni,)]TJ/F17 9.9626 Tf 197.776 0 Td [(Using)-297(a)-296(Par)51(al)-51(lel)-297(Libr)52(ary)-297(of)-296(Sp)51(arse)]TJ -177.297 -11.955 Td [(Line)51(ar)-352(A)26(lgebr)51(a)-352(in)-352(a)-352(Fluid)-352(Dynami)1(cs)-352(Applic)51(ations)-352(Co)51(de)-352(on)-352(Linux)-352(Clusters)]TJ/F8 9.9626 Tf 320.465 0 Td [(,)]TJ -320.465 -11.955 Td [(in)-398(G.)-399(Jou)1(b)-28(ert,)-415(A.)-398(Murli,)-414(F.)-399(P)28(eters,)-414(M.)-399(V)84(annesc)27(hi,)-414(editors,)-415(P)28(arallel)-398(Com-)]TJ 0 -11.955 Td [(puting)-354(-)-354(Adv)55(ances)-354(&)-354(Curren)28(t)-355(Issues,)-359(pp.)-354(441{448,)-360(Imp)-28(erial)-354(College)-354(Press,)]TJ 0 -11.955 Td [(2002.)]TJ +/F8 9.9626 Tf 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 - 143.905 -29.888 Td [(139)]TJ +/F8 9.9626 Tf 107.098 -29.888 Td [(139)]TJ 0 g 0 G ET endstream endobj -1653 0 obj +1659 0 obj << /Type /ObjStm /N 100 -/First 971 -/Length 10920 +/First 970 +/Length 10722 >> stream -1652 0 1647 58 1656 164 1654 303 1658 447 493 506 1659 564 1660 623 1655 682 1662 788 -1664 906 497 964 1665 1021 1666 1079 1661 1137 1669 1243 1667 1382 1671 1525 501 1584 1672 1642 -1673 1701 1668 1760 1675 1866 1677 1984 505 2042 1678 2099 1679 2157 1674 2215 1682 2321 1684 2439 -509 2498 1681 2556 1688 2662 1685 2810 1686 2957 1690 3107 513 3165 1691 3222 1687 3280 1697 3437 -1692 3603 1693 3747 1694 3892 1695 4039 1699 4186 517 4245 1696 4303 1705 4409 1700 4575 1701 4721 -1702 4864 1703 5011 1707 5155 521 5213 1704 5270 1710 5376 1708 5515 1712 5661 525 5720 1709 5778 -1714 5910 1716 6028 529 6086 1713 6143 1721 6249 1718 6397 1719 6543 1723 6690 533 6749 1720 6807 -1725 6913 1727 7031 537 7089 1724 7146 1732 7239 1728 7387 1729 7536 1734 7680 541 7739 1735 7797 -1736 7856 1737 7915 1738 7974 1731 8032 1744 8229 1730 8395 1740 8542 1741 8685 1742 8829 1746 8976 -1743 9034 1749 9153 1747 9292 1751 9436 1748 9495 1753 9601 1755 9719 1756 9777 729 9835 1757 9892 +1652 0 1656 145 489 203 1657 260 1658 318 1653 376 1662 482 1660 621 1664 764 493 823 +1665 881 1666 940 1661 999 1669 1105 1667 1244 1671 1389 497 1447 1672 1504 1673 1562 1668 1620 +1675 1726 1677 1844 501 1903 1678 1961 1679 2020 1674 2079 1682 2185 1680 2324 1684 2468 505 2526 +1685 2583 1686 2641 1681 2699 1689 2805 1691 2923 509 2982 1692 3040 1693 3099 1688 3158 1695 3264 +1697 3382 513 3440 1694 3497 1701 3603 1698 3751 1699 3898 1703 4048 517 4107 1704 4165 1700 4223 +1710 4380 1705 4546 1706 4689 1707 4834 1708 4981 1712 5128 521 5186 1709 5243 1714 5349 1716 5467 +1713 5526 1722 5619 1717 5785 1718 5931 1719 6074 1720 6221 1724 6365 525 6423 1721 6480 1728 6586 +1726 6725 1730 6871 529 6930 1727 6988 1732 7120 1734 7238 533 7296 1731 7353 1738 7459 1735 7607 +1736 7753 1740 7900 537 7959 1737 8017 1742 8123 1744 8241 541 8299 1741 8356 1749 8449 1745 8597 +1746 8746 1751 8890 545 8949 1752 9007 1753 9066 1754 9125 1755 9184 1748 9242 1761 9439 1747 9605 % 1652 0 obj << -/D [1648 0 R /XYZ 99.895 679.769 null] ->> -% 1647 0 obj -<< -/Font << /F16 550 0 R /F27 552 0 R /F8 553 0 R /F30 759 0 R >> -/ProcSet [ /PDF /Text ] ->> -% 1656 0 obj -<< -/Type /Page -/Contents 1657 0 R -/Resources 1655 0 R -/MediaBox [0 0 595.276 841.89] -/Parent 1638 0 R -/Annots [ 1654 0 R ] ->> -% 1654 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] +/Rect [294.721 449.411 372.239 460.536] /A << /S /GoTo /D (spdata) >> >> -% 1658 0 obj +% 1656 0 obj << -/D [1656 0 R /XYZ 149.705 753.953 null] +/D [1654 0 R /XYZ 98.895 753.953 null] >> -% 493 0 obj +% 489 0 obj << -/D [1656 0 R /XYZ 150.705 720.077 null] +/D [1654 0 R /XYZ 99.895 720.077 null] >> -% 1659 0 obj +% 1657 0 obj << -/D [1656 0 R /XYZ 150.705 679.769 null] +/D [1654 0 R /XYZ 99.895 677.445 null] >> -% 1660 0 obj +% 1658 0 obj << -/D [1656 0 R /XYZ 150.705 679.769 null] +/D [1654 0 R /XYZ 99.895 679.769 null] >> -% 1655 0 obj +% 1653 0 obj << -/Font << /F16 550 0 R /F27 552 0 R /F8 553 0 R /F30 759 0 R >> +/Font << /F16 554 0 R /F27 556 0 R /F8 557 0 R /F30 764 0 R >> /ProcSet [ /PDF /Text ] >> % 1662 0 obj @@ -21919,27 +21943,36 @@ stream /Contents 1663 0 R /Resources 1661 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1638 0 R +/Parent 1647 0 R +/Annots [ 1660 0 R ] +>> +% 1660 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [345.53 582.91 423.049 594.035] +/A << /S /GoTo /D (spdata) >> >> % 1664 0 obj << -/D [1662 0 R /XYZ 98.895 753.953 null] +/D [1662 0 R /XYZ 149.705 753.953 null] >> -% 497 0 obj +% 493 0 obj << -/D [1662 0 R /XYZ 99.895 720.077 null] +/D [1662 0 R /XYZ 150.705 720.077 null] >> % 1665 0 obj << -/D [1662 0 R /XYZ 99.895 679.769 null] +/D [1662 0 R /XYZ 150.705 677.445 null] >> % 1666 0 obj << -/D [1662 0 R /XYZ 99.895 679.769 null] +/D [1662 0 R /XYZ 150.705 679.769 null] >> % 1661 0 obj << -/Font << /F16 550 0 R /F27 552 0 R /F8 553 0 R /F30 759 0 R >> +/Font << /F16 554 0 R /F27 556 0 R /F8 557 0 R /F30 764 0 R >> /ProcSet [ /PDF /Text ] >> % 1669 0 obj @@ -21948,7 +21981,7 @@ stream /Contents 1670 0 R /Resources 1668 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1638 0 R +/Parent 1647 0 R /Annots [ 1667 0 R ] >> % 1667 0 obj @@ -21956,28 +21989,28 @@ stream /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [345.53 582.91 423.049 594.035] +/Rect [294.721 449.411 372.239 460.536] /A << /S /GoTo /D (spdata) >> >> % 1671 0 obj << -/D [1669 0 R /XYZ 149.705 753.953 null] +/D [1669 0 R /XYZ 98.895 753.953 null] >> -% 501 0 obj +% 497 0 obj << -/D [1669 0 R /XYZ 150.705 720.077 null] +/D [1669 0 R /XYZ 99.895 720.077 null] >> % 1672 0 obj << -/D [1669 0 R /XYZ 150.705 679.769 null] +/D [1669 0 R /XYZ 99.895 679.769 null] >> % 1673 0 obj << -/D [1669 0 R /XYZ 150.705 679.769 null] +/D [1669 0 R /XYZ 99.895 679.769 null] >> % 1668 0 obj << -/Font << /F16 550 0 R /F27 552 0 R /F8 553 0 R /F30 759 0 R >> +/Font << /F16 554 0 R /F27 556 0 R /F8 557 0 R /F30 764 0 R >> /ProcSet [ /PDF /Text ] >> % 1675 0 obj @@ -21986,27 +22019,27 @@ stream /Contents 1676 0 R /Resources 1674 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1680 0 R +/Parent 1647 0 R >> % 1677 0 obj << -/D [1675 0 R /XYZ 98.895 753.953 null] +/D [1675 0 R /XYZ 149.705 753.953 null] >> -% 505 0 obj +% 501 0 obj << -/D [1675 0 R /XYZ 99.895 720.077 null] +/D [1675 0 R /XYZ 150.705 720.077 null] >> % 1678 0 obj << -/D [1675 0 R /XYZ 99.895 679.769 null] +/D [1675 0 R /XYZ 150.705 679.769 null] >> % 1679 0 obj << -/D [1675 0 R /XYZ 99.895 679.769 null] +/D [1675 0 R /XYZ 150.705 679.769 null] >> % 1674 0 obj << -/Font << /F16 550 0 R /F27 552 0 R /F8 553 0 R /F30 759 0 R >> +/Font << /F16 554 0 R /F27 556 0 R /F8 557 0 R /F30 764 0 R >> /ProcSet [ /PDF /Text ] >> % 1682 0 obj @@ -22015,127 +22048,211 @@ stream /Contents 1683 0 R /Resources 1681 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1680 0 R +/Parent 1687 0 R +/Annots [ 1680 0 R ] +>> +% 1680 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [294.721 582.91 372.239 594.035] +/A << /S /GoTo /D (spdata) >> >> % 1684 0 obj << -/D [1682 0 R /XYZ 149.705 753.953 null] +/D [1682 0 R /XYZ 98.895 753.953 null] >> -% 509 0 obj +% 505 0 obj +<< +/D [1682 0 R /XYZ 99.895 720.077 null] +>> +% 1685 0 obj +<< +/D [1682 0 R /XYZ 99.895 679.769 null] +>> +% 1686 0 obj << -/D [1682 0 R /XYZ 150.705 716.092 null] +/D [1682 0 R /XYZ 99.895 679.769 null] >> % 1681 0 obj << -/Font << /F16 550 0 R /F8 553 0 R /F14 762 0 R /F30 759 0 R >> +/Font << /F16 554 0 R /F27 556 0 R /F8 557 0 R /F30 764 0 R >> /ProcSet [ /PDF /Text ] >> +% 1689 0 obj +<< +/Type /Page +/Contents 1690 0 R +/Resources 1688 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1687 0 R +>> +% 1691 0 obj +<< +/D [1689 0 R /XYZ 149.705 753.953 null] +>> +% 509 0 obj +<< +/D [1689 0 R /XYZ 150.705 720.077 null] +>> +% 1692 0 obj +<< +/D [1689 0 R /XYZ 150.705 679.769 null] +>> +% 1693 0 obj +<< +/D [1689 0 R /XYZ 150.705 679.769 null] +>> % 1688 0 obj << +/Font << /F16 554 0 R /F27 556 0 R /F8 557 0 R /F30 764 0 R >> +/ProcSet [ /PDF /Text ] +>> +% 1695 0 obj +<< /Type /Page -/Contents 1689 0 R -/Resources 1687 0 R +/Contents 1696 0 R +/Resources 1694 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1680 0 R -/Annots [ 1685 0 R 1686 0 R ] +/Parent 1687 0 R >> -% 1685 0 obj +% 1697 0 obj +<< +/D [1695 0 R /XYZ 98.895 753.953 null] +>> +% 513 0 obj +<< +/D [1695 0 R /XYZ 99.895 716.092 null] +>> +% 1694 0 obj +<< +/Font << /F16 554 0 R /F8 557 0 R /F14 767 0 R /F30 764 0 R >> +/ProcSet [ /PDF /Text ] +>> +% 1701 0 obj +<< +/Type /Page +/Contents 1702 0 R +/Resources 1700 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1687 0 R +/Annots [ 1698 0 R 1699 0 R ] +>> +% 1698 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [321.343 511.179 388.401 522.304] +/Rect [372.153 511.179 439.211 522.304] /A << /S /GoTo /D (precdata) >> >> -% 1686 0 obj +% 1699 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [168.831 421.792 175.293 433.832] +/Rect [219.641 421.792 226.103 433.832] /A << /S /GoTo /D (Hfootnote.4) >> >> -% 1690 0 obj +% 1703 0 obj << -/D [1688 0 R /XYZ 98.895 753.953 null] +/D [1701 0 R /XYZ 149.705 753.953 null] >> -% 513 0 obj +% 517 0 obj << -/D [1688 0 R /XYZ 99.895 720.077 null] +/D [1701 0 R /XYZ 150.705 720.077 null] >> -% 1691 0 obj +% 1704 0 obj << -/D [1688 0 R /XYZ 115.138 129.79 null] +/D [1701 0 R /XYZ 165.948 129.79 null] >> -% 1687 0 obj +% 1700 0 obj << -/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 >> +/Font << /F16 554 0 R /F30 764 0 R /F27 556 0 R /F8 557 0 R /F11 750 0 R /F7 765 0 R /F32 768 0 R /F31 770 0 R >> /ProcSet [ /PDF /Text ] >> -% 1697 0 obj +% 1710 0 obj << /Type /Page -/Contents 1698 0 R -/Resources 1696 0 R +/Contents 1711 0 R +/Resources 1709 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1680 0 R -/Annots [ 1692 0 R 1693 0 R 1694 0 R 1695 0 R ] +/Parent 1687 0 R +/Annots [ 1705 0 R 1706 0 R 1707 0 R 1708 0 R ] >> -% 1692 0 obj +% 1705 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [368.666 586.895 446.184 598.02] +/Rect [317.856 577.4 395.375 588.524] /A << /S /GoTo /D (spdata) >> >> -% 1693 0 obj +% 1706 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [447.73 519.15 514.788 530.274] +/Rect [396.921 506.7 463.979 517.825] /A << /S /GoTo /D (precdata) >> >> -% 1694 0 obj +% 1707 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [422.298 451.404 489.356 462.529] +/Rect [371.488 436.001 438.546 447.126] /A << /S /GoTo /D (descdata) >> >> -% 1695 0 obj +% 1708 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [369.385 226.248 436.443 237.373] +/Rect [318.576 129.071 385.634 140.196] /A << /S /GoTo /D (precdata) >> >> -% 1699 0 obj +% 1712 0 obj << -/D [1697 0 R /XYZ 149.705 753.953 null] +/D [1710 0 R /XYZ 98.895 753.953 null] >> -% 517 0 obj +% 521 0 obj << -/D [1697 0 R /XYZ 150.705 720.077 null] +/D [1710 0 R /XYZ 99.895 720.077 null] >> -% 1696 0 obj +% 1709 0 obj << -/Font << /F16 550 0 R /F30 759 0 R /F27 552 0 R /F8 553 0 R >> +/Font << /F16 554 0 R /F30 764 0 R /F27 556 0 R /F8 557 0 R >> /ProcSet [ /PDF /Text ] >> -% 1705 0 obj +% 1714 0 obj << /Type /Page -/Contents 1706 0 R -/Resources 1704 0 R +/Contents 1715 0 R +/Resources 1713 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1680 0 R -/Annots [ 1700 0 R 1701 0 R 1702 0 R 1703 0 R ] +/Parent 1687 0 R >> -% 1700 0 obj +% 1716 0 obj +<< +/D [1714 0 R /XYZ 149.705 753.953 null] +>> +% 1713 0 obj +<< +/Font << /F27 556 0 R /F8 557 0 R /F30 764 0 R >> +/ProcSet [ /PDF /Text ] +>> +% 1722 0 obj +<< +/Type /Page +/Contents 1723 0 R +/Resources 1721 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1725 0 R +/Annots [ 1717 0 R 1718 0 R 1719 0 R 1720 0 R ] +>> +% 1717 0 obj << /Type /Annot /Subtype /Link @@ -22143,7 +22260,7 @@ stream /Rect [321.343 574.94 388.401 586.065] /A << /S /GoTo /D (precdata) >> >> -% 1701 0 obj +% 1718 0 obj << /Type /Annot /Subtype /Link @@ -22151,7 +22268,7 @@ stream /Rect [347.301 519.15 423.355 530.274] /A << /S /GoTo /D (vdata) >> >> -% 1702 0 obj +% 1719 0 obj << /Type /Annot /Subtype /Link @@ -22159,7 +22276,7 @@ stream /Rect [324.885 463.359 391.943 474.484] /A << /S /GoTo /D (descdata) >> >> -% 1703 0 obj +% 1720 0 obj << /Type /Annot /Subtype /Link @@ -22167,29 +22284,29 @@ stream /Rect [347.301 274.069 423.355 285.194] /A << /S /GoTo /D (vdata) >> >> -% 1707 0 obj +% 1724 0 obj << -/D [1705 0 R /XYZ 98.895 753.953 null] +/D [1722 0 R /XYZ 98.895 753.953 null] >> -% 521 0 obj +% 525 0 obj << -/D [1705 0 R /XYZ 99.895 720.077 null] +/D [1722 0 R /XYZ 99.895 720.077 null] >> -% 1704 0 obj +% 1721 0 obj << -/Font << /F16 550 0 R /F30 759 0 R /F27 552 0 R /F8 553 0 R >> +/Font << /F16 554 0 R /F30 764 0 R /F27 556 0 R /F8 557 0 R >> /ProcSet [ /PDF /Text ] >> -% 1710 0 obj +% 1728 0 obj << /Type /Page -/Contents 1711 0 R -/Resources 1709 0 R +/Contents 1729 0 R +/Resources 1727 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1680 0 R -/Annots [ 1708 0 R ] +/Parent 1725 0 R +/Annots [ 1726 0 R ] >> -% 1708 0 obj +% 1726 0 obj << /Type /Annot /Subtype /Link @@ -22197,50 +22314,50 @@ stream /Rect [372.153 574.94 439.211 586.065] /A << /S /GoTo /D (precdata) >> >> -% 1712 0 obj +% 1730 0 obj << -/D [1710 0 R /XYZ 149.705 753.953 null] +/D [1728 0 R /XYZ 149.705 753.953 null] >> -% 525 0 obj +% 529 0 obj << -/D [1710 0 R /XYZ 150.705 720.077 null] +/D [1728 0 R /XYZ 150.705 720.077 null] >> -% 1709 0 obj +% 1727 0 obj << -/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 >> +/Font << /F16 554 0 R /F30 764 0 R /F27 556 0 R /F8 557 0 R /F11 750 0 R /F14 767 0 R >> /ProcSet [ /PDF /Text ] >> -% 1714 0 obj +% 1732 0 obj << /Type /Page -/Contents 1715 0 R -/Resources 1713 0 R +/Contents 1733 0 R +/Resources 1731 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1717 0 R +/Parent 1725 0 R >> -% 1716 0 obj +% 1734 0 obj << -/D [1714 0 R /XYZ 98.895 753.953 null] +/D [1732 0 R /XYZ 98.895 753.953 null] >> -% 529 0 obj +% 533 0 obj << -/D [1714 0 R /XYZ 99.895 720.077 null] +/D [1732 0 R /XYZ 99.895 720.077 null] >> -% 1713 0 obj +% 1731 0 obj << -/Font << /F16 550 0 R /F30 759 0 R /F27 552 0 R /F8 553 0 R >> +/Font << /F16 554 0 R /F30 764 0 R /F27 556 0 R /F8 557 0 R >> /ProcSet [ /PDF /Text ] >> -% 1721 0 obj +% 1738 0 obj << /Type /Page -/Contents 1722 0 R -/Resources 1720 0 R +/Contents 1739 0 R +/Resources 1737 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1717 0 R -/Annots [ 1718 0 R 1719 0 R ] +/Parent 1725 0 R +/Annots [ 1735 0 R 1736 0 R ] >> -% 1718 0 obj +% 1735 0 obj << /Type /Annot /Subtype /Link @@ -22248,7 +22365,7 @@ stream /Rect [372.153 574.94 439.211 586.065] /A << /S /GoTo /D (precdata) >> >> -% 1719 0 obj +% 1736 0 obj << /Type /Annot /Subtype /Link @@ -22256,198 +22373,243 @@ stream /Rect [372.153 499.224 439.211 510.349] /A << /S /GoTo /D (precdata) >> >> -% 1723 0 obj -<< -/D [1721 0 R /XYZ 149.705 753.953 null] ->> -% 533 0 obj -<< -/D [1721 0 R /XYZ 150.705 720.077 null] ->> -% 1720 0 obj -<< -/Font << /F16 550 0 R /F30 759 0 R /F27 552 0 R /F8 553 0 R >> -/ProcSet [ /PDF /Text ] ->> -% 1725 0 obj -<< -/Type /Page -/Contents 1726 0 R -/Resources 1724 0 R -/MediaBox [0 0 595.276 841.89] -/Parent 1717 0 R ->> -% 1727 0 obj +% 1740 0 obj << -/D [1725 0 R /XYZ 98.895 753.953 null] +/D [1738 0 R /XYZ 149.705 753.953 null] >> % 537 0 obj << -/D [1725 0 R /XYZ 99.895 716.092 null] +/D [1738 0 R /XYZ 150.705 720.077 null] >> -% 1724 0 obj +% 1737 0 obj << -/Font << /F16 550 0 R /F8 553 0 R /F30 759 0 R >> +/Font << /F16 554 0 R /F30 764 0 R /F27 556 0 R /F8 557 0 R >> /ProcSet [ /PDF /Text ] >> -% 1732 0 obj +% 1742 0 obj << /Type /Page -/Contents 1733 0 R -/Resources 1731 0 R +/Contents 1743 0 R +/Resources 1741 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1717 0 R -/Annots [ 1728 0 R 1729 0 R ] ->> -% 1728 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [384.578 276.229 391.04 288.268] -/A << /S /GoTo /D (Hfootnote.5) >> ->> -% 1729 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [345.53 134.549 423.049 145.674] -/A << /S /GoTo /D (spdata) >> ->> -% 1734 0 obj -<< -/D [1732 0 R /XYZ 149.705 753.953 null] ->> -% 541 0 obj -<< -/D [1732 0 R /XYZ 150.705 720.077 null] ->> -% 1735 0 obj -<< -/D [1732 0 R /XYZ 150.705 446.608 null] +/Parent 1725 0 R >> -% 1736 0 obj -<< -/D [1732 0 R /XYZ 150.705 446.608 null] ->> -% 1737 0 obj +% 1744 0 obj << -/D [1732 0 R /XYZ 150.705 434.653 null] +/D [1742 0 R /XYZ 98.895 753.953 null] >> -% 1738 0 obj +% 541 0 obj << -/D [1732 0 R /XYZ 165.948 129.79 null] +/D [1742 0 R /XYZ 99.895 716.092 null] >> -% 1731 0 obj +% 1741 0 obj << -/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 1739 0 R >> +/Font << /F16 554 0 R /F8 557 0 R /F30 764 0 R >> /ProcSet [ /PDF /Text ] >> -% 1744 0 obj +% 1749 0 obj << /Type /Page -/Contents 1745 0 R -/Resources 1743 0 R +/Contents 1750 0 R +/Resources 1748 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1717 0 R -/Annots [ 1730 0 R 1740 0 R 1741 0 R 1742 0 R ] ->> -% 1730 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [294.721 655.098 361.779 666.223] -/A << /S /GoTo /D (precdata) >> +/Parent 1725 0 R +/Annots [ 1745 0 R 1746 0 R ] >> -% 1740 0 obj +% 1745 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [347.301 587.85 423.355 598.975] -/A << /S /GoTo /D (vdata) >> +/Rect [384.578 276.229 391.04 288.268] +/A << /S /GoTo /D (Hfootnote.5) >> >> -% 1741 0 obj +% 1746 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [347.301 520.602 423.355 531.727] -/A << /S /GoTo /D (vdata) >> +/Rect [345.53 134.549 423.049 145.674] +/A << /S /GoTo /D (spdata) >> >> -% 1742 0 obj +% 1751 0 obj << -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [294.721 386.107 361.779 397.232] -/A << /S /GoTo /D (descdata) >> +/D [1749 0 R /XYZ 149.705 753.953 null] >> -% 1746 0 obj +% 545 0 obj << -/D [1744 0 R /XYZ 98.895 753.953 null] +/D [1749 0 R /XYZ 150.705 720.077 null] >> -% 1743 0 obj +% 1752 0 obj << -/Font << /F27 552 0 R /F8 553 0 R /F30 759 0 R /F11 745 0 R /F14 762 0 R >> -/ProcSet [ /PDF /Text ] +/D [1749 0 R /XYZ 150.705 446.608 null] >> -% 1749 0 obj +% 1753 0 obj << -/Type /Page -/Contents 1750 0 R -/Resources 1748 0 R -/MediaBox [0 0 595.276 841.89] -/Parent 1717 0 R -/Annots [ 1747 0 R ] +/D [1749 0 R /XYZ 150.705 446.608 null] >> -% 1747 0 obj +% 1754 0 obj << -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [398.111 579.382 474.165 590.507] -/A << /S /GoTo /D (vdata) >> +/D [1749 0 R /XYZ 150.705 434.653 null] >> -% 1751 0 obj +% 1755 0 obj << -/D [1749 0 R /XYZ 149.705 753.953 null] +/D [1749 0 R /XYZ 165.948 129.79 null] >> % 1748 0 obj << -/Font << /F8 553 0 R /F27 552 0 R /F30 759 0 R /F11 745 0 R >> +/Font << /F16 554 0 R /F8 557 0 R /F27 556 0 R /F11 750 0 R /F14 767 0 R /F10 766 0 R /F7 765 0 R /F30 764 0 R /F32 768 0 R /F31 770 0 R /F33 1756 0 R >> /ProcSet [ /PDF /Text ] >> -% 1753 0 obj +% 1761 0 obj << /Type /Page -/Contents 1754 0 R -/Resources 1752 0 R +/Contents 1762 0 R +/Resources 1760 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1760 0 R +/Parent 1764 0 R +/Annots [ 1747 0 R 1757 0 R 1758 0 R 1759 0 R ] >> -% 1755 0 obj -<< -/D [1753 0 R /XYZ 98.895 753.953 null] ->> -% 1756 0 obj +% 1747 0 obj << -/D [1753 0 R /XYZ 99.895 724.062 null] +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [294.721 655.098 361.779 666.223] +/A << /S /GoTo /D (precdata) >> >> -% 729 0 obj + +endstream +endobj +1769 0 obj << -/D [1753 0 R /XYZ 99.895 699.619 null] +/Length 4414 >> -% 1757 0 obj +stream +0 g 0 G +0 g 0 G +BT +/F8 9.9626 Tf 175.611 706.129 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.612 0 Td [(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.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.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 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 418.564 582.592 Td [(T)]TJ +ET +q +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 427.56 582.592 Td [(vect)]TJ +ET +q +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 452.247 582.592 Td [(type)]TJ +0 g 0 G +/F8 9.9626 Tf 20.922 0 Td [(.)]TJ +0 g 0 G +/F27 9.9626 Tf -322.464 -19.925 Td [(iter)]TJ +0 g 0 G +/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 +/F27 9.9626 Tf -24.906 -19.925 Td [(err)]TJ +0 g 0 G +/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 +/F27 9.9626 Tf -24.906 -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)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 + 139.477 -197.26 Td [(140)]TJ +0 g 0 G +ET + +endstream +endobj +1773 0 obj << -/D [1753 0 R /XYZ 99.895 643.15 null] +/Length 7014 >> +stream +0 g 0 G +0 g 0 G +BT +/F16 14.3462 Tf 99.895 706.129 Td [(References)]TJ +0 g 0 G +/F8 9.9626 Tf 4.982 -21.821 Td [([1])]TJ +0 g 0 G + [-500(D.)-441(Barbieri,)-468(V.)-441(Cardellini,)-467(S.)-441(Filipp)-28(one)-441(and)-441(D.)-441(Rouson)]TJ/F17 9.9626 Tf 267.833 0 Td [(Design)-457(Patterns)]TJ -252.336 -11.955 Td [(for)-441(S)-1(ci)1(ent)-1(i)1(\014)-1(c)-441(Computations)-442(on)-441(Sp)51(arse)-441(Matric)51(es)]TJ/F8 9.9626 Tf 210.802 0 Td [(,)-447(HPSS)-424(2011,)-447(Algorithms)]TJ -210.802 -11.955 Td [(and)-375(Programming)-374(T)83(o)-28(ols)-375(for)-374(Next-Generation)-375(High-P)28(erformance)-375(Scien)28(ti\014c)]TJ 0 -11.956 Td [(Soft)28(w)28(are,)-334(Bordeaux,)-333(Sep.)-333(2011)]TJ +0 g 0 G + -15.497 -18.666 Td [([2])]TJ +0 g 0 G + [-500(G.)-341(Bella,)-343(S.)-341(Filipp)-28(one,)-343(A.)-341(De)-341(Maio)-341(and)-341(M.)-341(T)84(esta,)]TJ/F17 9.9626 Tf 235.488 0 Td [(A)-365(Simulation)-365(Mo)51(del)-364(for)]TJ -219.991 -11.955 Td [(F)77(or)51(est)-365(Fir)51(es)]TJ/F8 9.9626 Tf 52.03 0 Td [(,)-343(in)-341(J.)-340(Dongarra,)-343(K.)-341(Madsen,)-343(J.)-341(W)84(asniewski,)-343(editors,)-343(Pro)-28(ceed-)]TJ -52.03 -11.955 Td [(ings)-394(of)-395(P)84(ARA)-395(04)-394(W)83(orkshop)-394(on)-395(State)-394(of)-395(the)-394(Art)-394(in)-395(Scien)28(ti\014c)-394(Com)-1(p)1(uting,)]TJ 0 -11.955 Td [(pp.)-333(546{553,)-334(Lecture)-333(Notes)-333(in)-334(Computer)-333(Science,)-333(Springer,)-334(2005.)]TJ +0 g 0 G + -15.497 -18.666 Td [([3])]TJ +0 g 0 G + [-500(A.)-316(Buttari,)-320(D.)-317(di)-316(Sera\014no,)-320(P)83(.)-316(D'Am)28(bra,)-320(S.)-317(Filipp)-27(one,)-100(2LEV-D2P4:)-436(a)-316(pac)28(k-)]TJ 15.497 -11.955 Td [(age)-388(of)-388(high-p)-28(erformance)-388(preconditioners,)-218(Applicable)-388(Alge)-1(b)1(ra)-389(in)-388(Engin)1(e)-1(er-)]TJ 0 -11.956 Td [(ing,)-393(Comm)27(un)1(ications)-382(and)-381(Computing,)-393(V)83(olume)-381(18,)-393(Num)27(b)-27(er)-382(3,)-393(Ma)28(y)83(,)-393(2007,)]TJ 0 -11.955 Td [(pp.)-333(223-239)]TJ +0 g 0 G + -15.497 -18.666 Td [([4])]TJ +0 g 0 G + [-500(P)83(.)-691(D'Am)28(bra,)-780(S.)-691(Filipp)-28(one,)-780(D.)-691(Di)-691(Sera\014no)-819(On)-691(the)-691(Dev)28(elopmen)28(t)-691(of)]TJ 15.497 -11.955 Td [(PSBLAS-based)-430(P)28(arallel)-430(Tw)28(o-lev)28(el)-430(Sc)27(h)28(w)28(arz)-430(Preconditioners)-731(Applied)-430(Nu-)]TJ 0 -11.955 Td [(merical)-245(Mathematics)-1(,)-262(Elsevier)-246(Science,)-263(V)83(ol)1(ume)-246(57,)-263(Issues)-245(11-12,)-263(No)27(v)28(em)28(b)-28(er-)]TJ 0 -11.955 Td [(Decem)28(b)-28(er)-333(2007)-1(,)-333(P)28(ages)-333(1181-1196.)]TJ +0 g 0 G + -15.497 -18.667 Td [([5])]TJ +0 g 0 G + [-500(Dongarra,)-529(J.)-490(J.,)-529(DuCroz,)-529(J.,)-529(Hammarling,)-529(S.)-490(and)-490(Hanson,)-529(R.,)-529(An)-490(Ex-)]TJ 15.497 -11.955 Td [(tended)-478(Set)-478(of)-478(F)83(ortran)-478(Basic)-478(Linear)-478(Algebra)-478(Subprograms,)-514(A)28(C)-1(M)-477(T)83(rans.)]TJ 0 -11.955 Td [(Math.)-333(Soft)28(w.)-334(v)28(ol.)-333(14,)-334(1{17,)-333(1988.)]TJ +0 g 0 G + -15.497 -18.666 Td [([6])]TJ +0 g 0 G + [-500(Dongarra,)-444(J.,)-444(DuCroz,)-444(J.,)-445(Hammarling,)-444(S.)-422(and)-422(Du\013,)-444(I.,)-444(A)-422(Set)-422(of)-422(lev)28(el)-422(3)]TJ 15.497 -11.955 Td [(Basic)-357(Linear)-357(Algebra)-357(Subpr)1(ogram)-1(s,)-362(A)27(CM)-356(T)83(rans.)-357(Math.)-357(Soft)28(w.)-357(v)28(ol.)-357(16,)-362(1{)]TJ 0 -11.955 Td [(17,)-333(1990.)]TJ +0 g 0 G + -15.497 -18.666 Td [([7])]TJ +0 g 0 G + [-500(J.)-265(J.)-266(Dongarra)-266(and)-265(R.)-266(C.)-265(Whaley)83(,)]TJ/F17 9.9626 Tf 162.063 0 Td [(A)-295(User's)-296(Guide)-295(to)-296(the)-295(BLA)25(CS)-295(v.)-295(1.1)]TJ/F8 9.9626 Tf 156.589 0 Td [(,)-279(La-)]TJ -303.155 -11.956 Td [(pac)28(k)-291(W)84(orking)-291(Note)-290(94,)-299(T)83(ec)28(h.)-290(Rep.)-291(UT-CS-95-281,)-299(Univ)28(ersit)28(y)-290(of)-291(T)84(ennesse)-1(e,)]TJ 0 -11.955 Td [(Marc)28(h)-334(1995)-333(\050up)-28(dated)-333(Ma)28(y)-333(1997\051.)]TJ +0 g 0 G + -15.497 -18.666 Td [([8])]TJ +0 g 0 G + [-500(I.)-488(Du\013,)-527(M.)-488(Marrone,)-526(G.)-488(Radicati)-488(and)-488(C.)-488(Vittoli,)]TJ/F17 9.9626 Tf 244.569 0 Td [(L)51(evel)-500(3)-500(Basic)-500(Line)51(ar)]TJ -229.072 -11.955 Td [(A)26(lgebr)51(a)-463(Subpr)52(o)51(gr)51(ams)-463(f)1(or)-463(Sp)51(arse)-462(Matric)51(es:)-669(a)-462(User)-462(L)51(evel)-463(Interfac)52(e)]TJ/F8 9.9626 Tf 292.206 0 Td [(,)-475(A)27(CM)]TJ -292.206 -11.955 Td [(T)83(ransactions)-333(on)-333(Mathematical)-334(Soft)28(w)28(are,)-333(23\0503\051,)-334(pp.)-333(379{401,)-333(1997.)]TJ +0 g 0 G + -15.497 -18.666 Td [([9])]TJ +0 g 0 G + [-500(I.)-358(Du\013,)-365(M.)-359(Heroux)-358(and)-359(R.)-358(P)27(ozo,)]TJ/F17 9.9626 Tf 162.007 0 Td [(A)26(n)-381(Overview)-381(of)-381(the)-381(Sp)51(arse)-381(Basic)-381(Line)51(ar)]TJ -146.51 -11.956 Td [(A)26(lgebr)51(a)-348(S)-1(u)1(bpr)51(o)51(gr)51(ams:)-455(the)-348(New)-349(Standar)51(d)-348(fr)51(om)-348(the)-348(BLAS)-348(T)76(e)51(chnic)52(al)-349(F)77(orum)]TJ/F8 9.9626 Tf 320.465 0 Td [(,)]TJ -320.465 -11.955 Td [(A)28(CM)-334(T)84(ransactions)-334(on)-333(Mathematical)-333(Soft)28(w)27(are,)-333(28\0502\051,)-333(pp.)-333(23)-1(9{267,)-333(2002.)]TJ +0 g 0 G + -20.479 -18.666 Td [([10])]TJ +0 g 0 G + [-500(S.)-451(Filipp)-28(one)-451(and)-451(M.)-451(Cola)-56(janni,)]TJ/F17 9.9626 Tf 165.708 0 Td [(PSBLAS:)-466(A)-466(Libr)51(ary)-466(for)-467(Par)51(al)-51(lel)-466(Line)51(ar)]TJ -145.229 -11.955 Td [(A)26(lgebr)51(a)-420(Computation)-420(on)-420(Sp)51(arse)-420(Matric)51(es)]TJ/F8 9.9626 Tf 181.375 0 Td [(,)-661(A)27(CM)-400(T)83(ransactions)-401(on)-401(Mathe-)]TJ -181.375 -11.955 Td [(matical)-333(Soft)27(w)28(are,)-333(26\0504\051,)-333(pp.)-334(527{550,)-333(2000.)]TJ +0 g 0 G + -20.479 -18.666 Td [([11])]TJ +0 g 0 G + [-500(S.)-425(Filipp)-27(one)-425(and)-425(A.)-425(Buttari,)]TJ/F17 9.9626 Tf 152.315 0 Td [(Obje)51(ct-Oriente)51(d)-442(T)77(e)51(chniques)-442(for)-441(Sp)51(arse)-442(Ma-)]TJ -131.836 -11.955 Td [(trix)-407(Computations)-406(in)-407(F)77(ortr)51(an)-407(2003)]TJ/F8 9.9626 Tf 153.485 0 Td [(,)-615(A)28(CM)-387(T)84(ransactions)-387(on)-386(Mathematical)]TJ -153.485 -11.956 Td [(Soft)28(w)28(are,)-334(38\0504\051,)-333(2012.)]TJ +0 g 0 G + -20.479 -18.666 Td [([12])]TJ +0 g 0 G + [-500(S.)-267(Filipp)-27(one,)-280(P)83(.)-267(D'Am)28(bra,)-280(M.)-267(Cola)-55(janni,)]TJ/F17 9.9626 Tf 197.776 0 Td [(Using)-297(a)-296(Par)51(al)-51(lel)-297(Libr)52(ary)-297(of)-296(Sp)51(arse)]TJ -177.297 -11.955 Td [(Line)51(ar)-352(A)26(lgebr)51(a)-352(in)-352(a)-352(Fluid)-352(Dynami)1(cs)-352(Applic)51(ations)-352(Co)51(de)-352(on)-352(Linux)-352(Clusters)]TJ/F8 9.9626 Tf 320.465 0 Td [(,)]TJ -320.465 -11.955 Td [(in)-398(G.)-399(Jou)1(b)-28(ert,)-415(A.)-398(Murli,)-414(F.)-399(P)28(eters,)-414(M.)-399(V)84(annesc)27(hi,)-414(editors,)-415(P)28(arallel)-398(Com-)]TJ 0 -11.955 Td [(puting)-354(-)-354(Adv)55(ances)-354(&)-354(Curren)28(t)-355(Issues,)-359(pp.)-354(441{448,)-360(Imp)-28(erial)-354(College)-354(Press,)]TJ 0 -11.955 Td [(2002.)]TJ +0 g 0 G + 143.905 -29.888 Td [(141)]TJ +0 g 0 G +ET endstream endobj -1764 0 obj +1781 0 obj << /Length 3124 >> @@ -22484,13 +22646,13 @@ BT 0 g 0 G [-500(M.)-443(Snir,)-471(S.)-443(Otto,)-471(S.)-443(Huss-Lederman,)-471(D.)-443(W)84(alk)27(er)-443(and)-443(J.)-443(Dongarra,)]TJ/F17 9.9626 Tf 321.124 0 Td [(MPI:)]TJ -300.645 -11.955 Td [(The)-365(Complete)-365(R)51(efer)51(enc)51(e.)-365(V)76(ol)1(ume)-366(1)-365(-)-365(The)-365(MPI)-365(Cor)51(e)]TJ/F8 9.9626 Tf 228.803 0 Td [(,)-343(sec)-1(on)1(d)-342(edition,)-343(MIT)]TJ -228.803 -11.955 Td [(Press,)-333(1998.)]TJ 0 g 0 G - 143.905 -352.677 Td [(140)]TJ + 143.905 -352.677 Td [(142)]TJ 0 g 0 G ET endstream endobj -1786 0 obj +1803 0 obj << /Length1 2422 /Length2 20069 @@ -22670,7 +22832,7 @@ h ©ë–} ¸Œhj¬ÑÉ£f/›IV+\}3bGU ý5"©+IU(€oVžNo±íì⮂Øš¢b"Ñð±öÞ¢:’7cÂéx€ås¯t£! ‹@ïÇ%e)òûÀÒ\ /œCÿsoµ^“ªê- qhÏKä¡p Ú€ó&êØ /_Ïü endstream endobj -1788 0 obj +1805 0 obj << /Length1 2366 /Length2 17268 @@ -22849,7 +23011,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 -1790 0 obj +1807 0 obj << /Length1 1599 /Length2 8420 @@ -22941,7 +23103,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 -1796 0 obj +1813 0 obj << /Length1 1519 /Length2 8224 @@ -23251,7 +23413,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 -1798 0 obj +1815 0 obj << /Length1 1413 /Length2 6524 @@ -23325,7 +23487,7 @@ 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 -1800 0 obj +1817 0 obj << /Length1 2668 /Length2 23272 @@ -23548,7 +23710,7 @@ A ôiÃÁe~xž,”„¦ë 2¼ç÷«!`z@r endstream endobj -1802 0 obj +1819 0 obj << /Length1 1425 /Length2 6648 @@ -23627,7 +23789,7 @@ B !çðN6Ê@ |õ^ö(Ì®‡Pˆr@¸Í€ endstream endobj -1814 0 obj +1831 0 obj << /Length1 2199 /Length2 18119 @@ -24368,7 +24530,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 -1816 0 obj +1833 0 obj << /Length1 1699 /Length2 10351 @@ -24475,7 +24637,7 @@ qO' ÔX¦Ç ë¾A±©µ ÷•©SÞt²•äoC‹Kžr 0ìE·½õ1”O®&é ò™\e;HË lüqάa]Ÿ´þ_i0yÏ4Þ ^2’™Óè0‘ endstream endobj -1818 0 obj +1835 0 obj << /Length1 2477 /Length2 17492 @@ -24660,7 +24822,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 -1820 0 obj +1837 0 obj << /Length1 1494 /Length2 2555 @@ -24724,7 +24886,7 @@ currentfile eexec &Ì¡‰ç·Y5<1B îdlaà;À«9^¿'l„Hn,³ÛúºW˜÷ƒ{ÐÊY³µ¬Ô[œvñ endstream endobj -1822 0 obj +1839 0 obj << /Length1 1656 /Length2 8404 @@ -24834,153 +24996,236 @@ e §Öga!.ΘÍþâ:Øâܨ+. endstream endobj -1761 0 obj +1765 0 obj << /Type /ObjStm /N 100 -/First 1000 -/Length 20703 +/First 997 +/Length 20428 +>> +stream +1757 0 1758 143 1759 287 1763 434 1760 492 1768 611 1766 750 1770 894 1767 953 1772 1059 +1774 1177 1775 1235 734 1293 1776 1350 785 1407 784 1464 740 1521 741 1578 757 1635 737 1692 +738 1749 1777 1806 733 1864 1778 1921 1771 1979 1780 2072 1782 2190 898 2249 772 2307 739 2365 +736 2423 732 2481 735 2539 1783 2597 1779 2656 1784 2749 1785 2794 1786 2933 1787 3427 1788 3756 +1789 4099 1790 4228 1791 4249 1792 4755 1793 4800 1794 5490 1795 5818 1796 5899 1797 6274 1798 6911 +1799 7570 1800 8193 1801 8837 1802 9122 1804 9770 1806 10200 1808 10623 1810 10872 1812 11200 1814 11417 +1816 11656 1818 11878 1820 12415 1822 12652 1824 12900 1826 13282 1828 13648 1830 13987 1832 14218 1834 14591 +1836 14854 1838 15338 1840 15570 556 15854 554 15995 1599 16136 750 16277 797 16418 766 16559 1756 16699 +557 16839 768 16979 765 17117 770 17255 1166 17394 767 17534 1082 17674 730 17813 555 17954 764 18095 +825 18236 957 18376 558 18516 731 18629 826 18742 882 18855 917 18968 948 19081 995 19194 1040 19311 +% 1757 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [347.301 587.85 423.355 598.975] +/A << /S /GoTo /D (vdata) >> +>> +% 1758 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [347.301 520.602 423.355 531.727] +/A << /S /GoTo /D (vdata) >> +>> +% 1759 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [294.721 386.107 361.779 397.232] +/A << /S /GoTo /D (descdata) >> +>> +% 1763 0 obj +<< +/D [1761 0 R /XYZ 98.895 753.953 null] +>> +% 1760 0 obj +<< +/Font << /F27 556 0 R /F8 557 0 R /F30 764 0 R /F11 750 0 R /F14 767 0 R >> +/ProcSet [ /PDF /Text ] +>> +% 1768 0 obj +<< +/Type /Page +/Contents 1769 0 R +/Resources 1767 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1764 0 R +/Annots [ 1766 0 R ] +>> +% 1766 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [398.111 579.382 474.165 590.507] +/A << /S /GoTo /D (vdata) >> +>> +% 1770 0 obj +<< +/D [1768 0 R /XYZ 149.705 753.953 null] +>> +% 1767 0 obj +<< +/Font << /F8 557 0 R /F27 556 0 R /F30 764 0 R /F11 750 0 R >> +/ProcSet [ /PDF /Text ] +>> +% 1772 0 obj +<< +/Type /Page +/Contents 1773 0 R +/Resources 1771 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1764 0 R +>> +% 1774 0 obj +<< +/D [1772 0 R /XYZ 98.895 753.953 null] +>> +% 1775 0 obj +<< +/D [1772 0 R /XYZ 99.895 724.062 null] +>> +% 734 0 obj +<< +/D [1772 0 R /XYZ 99.895 699.619 null] +>> +% 1776 0 obj +<< +/D [1772 0 R /XYZ 99.895 643.15 null] >> -stream -780 0 779 57 735 114 736 171 752 228 732 285 733 342 1758 399 728 457 1759 514 -1752 572 1763 665 1765 783 888 842 767 900 734 958 731 1016 727 1074 730 1132 1766 1190 -1762 1249 1767 1342 1768 1387 1769 1526 1770 2020 1771 2349 1772 2692 1773 2821 1774 2842 1775 3348 -1776 3393 1777 4083 1778 4411 1779 4492 1780 4867 1781 5504 1782 6163 1783 6786 1784 7430 1785 7715 -1787 8363 1789 8793 1791 9216 1793 9465 1795 9793 1797 10010 1799 10249 1801 10471 1803 11008 1805 11245 -1807 11493 1809 11875 1811 12241 1813 12580 1815 12811 1817 13184 1819 13447 1821 13931 1823 14163 552 14447 -550 14588 1586 14729 745 14870 792 15011 761 15152 1739 15292 553 15432 763 15572 760 15710 765 15848 -1153 15987 762 16127 1069 16267 725 16406 551 16547 759 16688 820 16829 943 16969 554 17109 726 17222 -821 17335 873 17448 906 17561 945 17674 986 17787 1035 17903 1084 18023 1137 18143 1185 18263 1231 18383 -1273 18503 1320 18623 1363 18743 1398 18863 1435 18983 1480 19103 1512 19223 1541 19343 1577 19463 1638 19583 -% 780 0 obj +% 785 0 obj << -/D [1753 0 R /XYZ 99.895 588.618 null] +/D [1772 0 R /XYZ 99.895 588.618 null] >> -% 779 0 obj +% 784 0 obj << -/D [1753 0 R /XYZ 99.895 534.087 null] +/D [1772 0 R /XYZ 99.895 534.087 null] >> -% 735 0 obj +% 740 0 obj << -/D [1753 0 R /XYZ 99.895 479.555 null] +/D [1772 0 R /XYZ 99.895 479.555 null] >> -% 736 0 obj +% 741 0 obj << -/D [1753 0 R /XYZ 99.895 436.978 null] +/D [1772 0 R /XYZ 99.895 436.978 null] >> -% 752 0 obj +% 757 0 obj << -/D [1753 0 R /XYZ 99.895 394.402 null] +/D [1772 0 R /XYZ 99.895 394.402 null] >> -% 732 0 obj +% 737 0 obj << -/D [1753 0 R /XYZ 99.895 351.272 null] +/D [1772 0 R /XYZ 99.895 351.272 null] >> -% 733 0 obj +% 738 0 obj << -/D [1753 0 R /XYZ 99.895 308.696 null] +/D [1772 0 R /XYZ 99.895 308.696 null] >> -% 1758 0 obj +% 1777 0 obj << -/D [1753 0 R /XYZ 99.895 266.119 null] +/D [1772 0 R /XYZ 99.895 266.119 null] >> -% 728 0 obj +% 733 0 obj << -/D [1753 0 R /XYZ 99.895 223.543 null] +/D [1772 0 R /XYZ 99.895 223.543 null] >> -% 1759 0 obj +% 1778 0 obj << -/D [1753 0 R /XYZ 99.895 180.966 null] +/D [1772 0 R /XYZ 99.895 180.966 null] >> -% 1752 0 obj +% 1771 0 obj << -/Font << /F16 550 0 R /F8 553 0 R /F17 725 0 R >> +/Font << /F16 554 0 R /F8 557 0 R /F17 730 0 R >> /ProcSet [ /PDF /Text ] >> -% 1763 0 obj +% 1780 0 obj << /Type /Page -/Contents 1764 0 R -/Resources 1762 0 R +/Contents 1781 0 R +/Resources 1779 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1760 0 R +/Parent 1764 0 R >> -% 1765 0 obj +% 1782 0 obj << -/D [1763 0 R /XYZ 149.705 753.953 null] +/D [1780 0 R /XYZ 149.705 753.953 null] >> -% 888 0 obj +% 898 0 obj << -/D [1763 0 R /XYZ 150.705 716.092 null] +/D [1780 0 R /XYZ 150.705 716.092 null] >> -% 767 0 obj +% 772 0 obj << -/D [1763 0 R /XYZ 150.705 688.251 null] +/D [1780 0 R /XYZ 150.705 688.251 null] >> -% 734 0 obj +% 739 0 obj << -/D [1763 0 R /XYZ 150.705 632.184 null] +/D [1780 0 R /XYZ 150.705 632.184 null] >> -% 731 0 obj +% 736 0 obj << -/D [1763 0 R /XYZ 150.705 590.562 null] +/D [1780 0 R /XYZ 150.705 590.562 null] >> -% 727 0 obj +% 732 0 obj << -/D [1763 0 R /XYZ 150.705 544.789 null] +/D [1780 0 R /XYZ 150.705 544.789 null] >> -% 730 0 obj +% 735 0 obj << -/D [1763 0 R /XYZ 150.705 512.909 null] +/D [1780 0 R /XYZ 150.705 512.909 null] >> -% 1766 0 obj +% 1783 0 obj << -/D [1763 0 R /XYZ 150.705 480.475 null] +/D [1780 0 R /XYZ 150.705 480.475 null] >> -% 1762 0 obj +% 1779 0 obj << -/Font << /F8 553 0 R /F17 725 0 R /F30 759 0 R >> +/Font << /F8 557 0 R /F17 730 0 R /F30 764 0 R >> /ProcSet [ /PDF /Text ] >> -% 1767 0 obj +% 1784 0 obj [757.3 871.7 778.7 672.4 827.9] -% 1768 0 obj +% 1785 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] -% 1769 0 obj +% 1786 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] -% 1770 0 obj +% 1787 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] -% 1771 0 obj +% 1788 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] -% 1772 0 obj +% 1789 0 obj [531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3] -% 1773 0 obj +% 1790 0 obj [533.6] -% 1774 0 obj +% 1791 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] -% 1775 0 obj +% 1792 0 obj [611.1 611.1 611.1 611.1 611.1] -% 1776 0 obj +% 1793 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] -% 1777 0 obj +% 1794 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] -% 1778 0 obj +% 1795 0 obj [569.5 569.5 569.5 569.5 569.5 569.5 569.5 569.5 569.5 569.5 323.4] -% 1779 0 obj +% 1796 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] -% 1780 0 obj +% 1797 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] -% 1781 0 obj +% 1798 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] -% 1782 0 obj +% 1799 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] -% 1783 0 obj +% 1800 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] -% 1784 0 obj +% 1801 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] -% 1785 0 obj +% 1802 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] -% 1787 0 obj +% 1804 0 obj << /Type /FontDescriptor /FontName /RAJOBS+CMBX10 @@ -24993,9 +25238,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 1786 0 R +/FontFile 1803 0 R >> -% 1789 0 obj +% 1806 0 obj << /Type /FontDescriptor /FontName /GBHFLB+CMBX12 @@ -25008,9 +25253,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 1788 0 R +/FontFile 1805 0 R >> -% 1791 0 obj +% 1808 0 obj << /Type /FontDescriptor /FontName /VUBHOM+CMBX9 @@ -25023,9 +25268,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 1790 0 R +/FontFile 1807 0 R >> -% 1793 0 obj +% 1810 0 obj << /Type /FontDescriptor /FontName /PUWBWT+CMMI10 @@ -25038,9 +25283,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 1792 0 R +/FontFile 1809 0 R >> -% 1795 0 obj +% 1812 0 obj << /Type /FontDescriptor /FontName /RVPZIX+CMMI5 @@ -25053,9 +25298,9 @@ stream /StemV 90 /XHeight 431 /CharSet (/i) -/FontFile 1794 0 R +/FontFile 1811 0 R >> -% 1797 0 obj +% 1814 0 obj << /Type /FontDescriptor /FontName /ZUYGVH+CMMI7 @@ -25068,9 +25313,9 @@ stream /StemV 81 /XHeight 431 /CharSet (/H/I/T/a/comma/i/j/k/m/n) -/FontFile 1796 0 R +/FontFile 1813 0 R >> -% 1799 0 obj +% 1816 0 obj << /Type /FontDescriptor /FontName /ZOAUSA+CMMI8 @@ -25083,9 +25328,9 @@ stream /StemV 78 /XHeight 431 /CharSet (/C/F/G) -/FontFile 1798 0 R +/FontFile 1815 0 R >> -% 1801 0 obj +% 1818 0 obj << /Type /FontDescriptor /FontName /SEWPRR+CMR10 @@ -25098,9 +25343,9 @@ stream /StemV 69 /XHeight 431 /CharSet (/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/R/S/T/U/V/W/X/a/ampersand/b/bracketleft/bracketright/c/colon/comma/d/e/eight/endash/equal/f/ff/ffi/fi/five/fl/four/g/h/hyphen/i/j/k/l/m/n/nine/o/one/p/parenleft/parenright/percent/period/plus/q/quotedblleft/quotedblright/quoteright/r/s/semicolon/seven/six/slash/t/three/two/u/v/w/x/y/z/zero) -/FontFile 1800 0 R +/FontFile 1817 0 R >> -% 1803 0 obj +% 1820 0 obj << /Type /FontDescriptor /FontName /UJRPBG+CMR6 @@ -25113,9 +25358,9 @@ stream /StemV 83 /XHeight 431 /CharSet (/five/four/one/three/two) -/FontFile 1802 0 R +/FontFile 1819 0 R >> -% 1805 0 obj +% 1822 0 obj << /Type /FontDescriptor /FontName /GIODUE+CMR7 @@ -25128,9 +25373,9 @@ stream /StemV 79 /XHeight 431 /CharSet (/colon/five/four/one/three/two/zero) -/FontFile 1804 0 R +/FontFile 1821 0 R >> -% 1807 0 obj +% 1824 0 obj << /Type /FontDescriptor /FontName /HFTEUS+CMR8 @@ -25143,9 +25388,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/k/l/m/n/nine/o/one/p/parenleft/parenright/period/q/r/s/seven/six/slash/t/three/two/u/v/w/x/y/zero) -/FontFile 1806 0 R +/FontFile 1823 0 R >> -% 1809 0 obj +% 1826 0 obj << /Type /FontDescriptor /FontName /KKURMF+CMR9 @@ -25158,9 +25403,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 1808 0 R +/FontFile 1825 0 R >> -% 1811 0 obj +% 1828 0 obj << /Type /FontDescriptor /FontName /IMOIOS+CMSY10 @@ -25173,9 +25418,9 @@ stream /StemV 40 /XHeight 431 /CharSet (/B/H/I/arrowleft/bar/bardbl/braceleft/braceright/bullet/element/greaterequal/lessequal/minus/negationslash/radical/section) -/FontFile 1810 0 R +/FontFile 1827 0 R >> -% 1813 0 obj +% 1830 0 obj << /Type /FontDescriptor /FontName /XNLILI+CMSY7 @@ -25188,9 +25433,9 @@ stream /StemV 49 /XHeight 431 /CharSet (/infinity/minus) -/FontFile 1812 0 R +/FontFile 1829 0 R >> -% 1815 0 obj +% 1832 0 obj << /Type /FontDescriptor /FontName /HBJLDT+CMTI10 @@ -25203,9 +25448,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 1814 0 R +/FontFile 1831 0 R >> -% 1817 0 obj +% 1834 0 obj << /Type /FontDescriptor /FontName /OZJPZO+CMTI12 @@ -25218,9 +25463,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 1816 0 R +/FontFile 1833 0 R >> -% 1819 0 obj +% 1836 0 obj << /Type /FontDescriptor /FontName /BGSLBR+CMTT10 @@ -25233,9 +25478,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 1818 0 R +/FontFile 1835 0 R >> -% 1821 0 obj +% 1838 0 obj << /Type /FontDescriptor /FontName /HZGQIC+CMTT8 @@ -25248,9 +25493,9 @@ stream /StemV 76 /XHeight 431 /CharSet (/b/c/e/i/l/n/p/r/s/t) -/FontFile 1820 0 R +/FontFile 1837 0 R >> -% 1823 0 obj +% 1840 0 obj << /Type /FontDescriptor /FontName /KMUHVJ+CMTT9 @@ -25263,470 +25508,478 @@ 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 1822 0 R +/FontFile 1839 0 R >> -% 552 0 obj +% 556 0 obj << /Type /Font /Subtype /Type1 /BaseFont /RAJOBS+CMBX10 -/FontDescriptor 1787 0 R +/FontDescriptor 1804 0 R /FirstChar 11 /LastChar 124 -/Widths 1783 0 R +/Widths 1800 0 R >> -% 550 0 obj +% 554 0 obj << /Type /Font /Subtype /Type1 /BaseFont /GBHFLB+CMBX12 -/FontDescriptor 1789 0 R +/FontDescriptor 1806 0 R /FirstChar 12 /LastChar 124 -/Widths 1785 0 R +/Widths 1802 0 R >> -% 1586 0 obj +% 1599 0 obj << /Type /Font /Subtype /Type1 /BaseFont /VUBHOM+CMBX9 -/FontDescriptor 1791 0 R +/FontDescriptor 1808 0 R /FirstChar 97 /LastChar 117 -/Widths 1768 0 R +/Widths 1785 0 R >> -% 745 0 obj +% 750 0 obj << /Type /Font /Subtype /Type1 /BaseFont /PUWBWT+CMMI10 -/FontDescriptor 1793 0 R +/FontDescriptor 1810 0 R /FirstChar 11 /LastChar 122 -/Widths 1780 0 R +/Widths 1797 0 R >> -% 792 0 obj +% 797 0 obj << /Type /Font /Subtype /Type1 /BaseFont /RVPZIX+CMMI5 -/FontDescriptor 1795 0 R +/FontDescriptor 1812 0 R /FirstChar 105 /LastChar 105 -/Widths 1773 0 R +/Widths 1790 0 R >> -% 761 0 obj +% 766 0 obj << /Type /Font /Subtype /Type1 /BaseFont /ZUYGVH+CMMI7 -/FontDescriptor 1797 0 R +/FontDescriptor 1814 0 R /FirstChar 59 /LastChar 110 -/Widths 1777 0 R +/Widths 1794 0 R >> -% 1739 0 obj +% 1756 0 obj << /Type /Font /Subtype /Type1 /BaseFont /ZOAUSA+CMMI8 -/FontDescriptor 1799 0 R +/FontDescriptor 1816 0 R /FirstChar 67 /LastChar 71 -/Widths 1767 0 R +/Widths 1784 0 R >> -% 553 0 obj +% 557 0 obj << /Type /Font /Subtype /Type1 /BaseFont /SEWPRR+CMR10 -/FontDescriptor 1801 0 R +/FontDescriptor 1818 0 R /FirstChar 11 /LastChar 123 -/Widths 1782 0 R +/Widths 1799 0 R >> -% 763 0 obj +% 768 0 obj << /Type /Font /Subtype /Type1 /BaseFont /UJRPBG+CMR6 -/FontDescriptor 1803 0 R +/FontDescriptor 1820 0 R /FirstChar 49 /LastChar 53 -/Widths 1775 0 R +/Widths 1792 0 R >> -% 760 0 obj +% 765 0 obj << /Type /Font /Subtype /Type1 /BaseFont /GIODUE+CMR7 -/FontDescriptor 1805 0 R +/FontDescriptor 1822 0 R /FirstChar 48 /LastChar 58 -/Widths 1778 0 R +/Widths 1795 0 R >> -% 765 0 obj +% 770 0 obj << /Type /Font /Subtype /Type1 /BaseFont /HFTEUS+CMR8 -/FontDescriptor 1807 0 R +/FontDescriptor 1824 0 R /FirstChar 40 /LastChar 121 -/Widths 1774 0 R +/Widths 1791 0 R >> -% 1153 0 obj +% 1166 0 obj << /Type /Font /Subtype /Type1 /BaseFont /KKURMF+CMR9 -/FontDescriptor 1809 0 R +/FontDescriptor 1826 0 R /FirstChar 39 /LastChar 122 -/Widths 1769 0 R +/Widths 1786 0 R >> -% 762 0 obj +% 767 0 obj << /Type /Font /Subtype /Type1 /BaseFont /IMOIOS+CMSY10 -/FontDescriptor 1811 0 R +/FontDescriptor 1828 0 R /FirstChar 0 /LastChar 120 -/Widths 1776 0 R +/Widths 1793 0 R >> -% 1069 0 obj +% 1082 0 obj << /Type /Font /Subtype /Type1 /BaseFont /XNLILI+CMSY7 -/FontDescriptor 1813 0 R +/FontDescriptor 1830 0 R /FirstChar 0 /LastChar 49 -/Widths 1770 0 R +/Widths 1787 0 R >> -% 725 0 obj +% 730 0 obj << /Type /Font /Subtype /Type1 /BaseFont /HBJLDT+CMTI10 -/FontDescriptor 1815 0 R +/FontDescriptor 1832 0 R /FirstChar 11 /LastChar 121 -/Widths 1781 0 R +/Widths 1798 0 R >> -% 551 0 obj +% 555 0 obj << /Type /Font /Subtype /Type1 /BaseFont /OZJPZO+CMTI12 -/FontDescriptor 1817 0 R +/FontDescriptor 1834 0 R /FirstChar 65 /LastChar 121 -/Widths 1784 0 R +/Widths 1801 0 R >> -% 759 0 obj +% 764 0 obj << /Type /Font /Subtype /Type1 /BaseFont /BGSLBR+CMTT10 -/FontDescriptor 1819 0 R +/FontDescriptor 1836 0 R /FirstChar 37 /LastChar 126 -/Widths 1779 0 R +/Widths 1796 0 R >> -% 820 0 obj +% 825 0 obj << /Type /Font /Subtype /Type1 /BaseFont /HZGQIC+CMTT8 -/FontDescriptor 1821 0 R +/FontDescriptor 1838 0 R /FirstChar 98 /LastChar 116 -/Widths 1772 0 R +/Widths 1789 0 R >> -% 943 0 obj +% 957 0 obj << /Type /Font /Subtype /Type1 /BaseFont /KMUHVJ+CMTT9 -/FontDescriptor 1823 0 R +/FontDescriptor 1840 0 R /FirstChar 40 /LastChar 121 -/Widths 1771 0 R +/Widths 1788 0 R >> -% 554 0 obj +% 558 0 obj << /Type /Pages /Count 6 -/Parent 1824 0 R -/Kids [545 0 R 556 0 R 607 0 R 660 0 R 704 0 R 709 0 R] +/Parent 1841 0 R +/Kids [549 0 R 560 0 R 611 0 R 664 0 R 709 0 R 714 0 R] >> -% 726 0 obj +% 731 0 obj << /Type /Pages /Count 6 -/Parent 1824 0 R -/Kids [723 0 R 743 0 R 756 0 R 772 0 R 784 0 R 789 0 R] +/Parent 1841 0 R +/Kids [728 0 R 748 0 R 761 0 R 777 0 R 789 0 R 794 0 R] >> -% 821 0 obj +% 826 0 obj << /Type /Pages /Count 6 -/Parent 1824 0 R -/Kids [803 0 R 825 0 R 836 0 R 842 0 R 854 0 R 866 0 R] +/Parent 1841 0 R +/Kids [808 0 R 830 0 R 841 0 R 851 0 R 864 0 R 875 0 R] >> -% 873 0 obj +% 882 0 obj << /Type /Pages /Count 6 -/Parent 1824 0 R -/Kids [870 0 R 875 0 R 882 0 R 890 0 R 894 0 R 899 0 R] +/Parent 1841 0 R +/Kids [879 0 R 884 0 R 892 0 R 900 0 R 904 0 R 909 0 R] >> -% 906 0 obj +% 917 0 obj << /Type /Pages /Count 6 -/Parent 1824 0 R -/Kids [903 0 R 909 0 R 913 0 R 918 0 R 923 0 R 932 0 R] +/Parent 1841 0 R +/Kids [914 0 R 919 0 R 923 0 R 927 0 R 933 0 R 939 0 R] >> -% 945 0 obj +% 948 0 obj << /Type /Pages /Count 6 -/Parent 1824 0 R -/Kids [939 0 R 947 0 R 951 0 R 962 0 R 968 0 R 978 0 R] +/Parent 1841 0 R +/Kids [945 0 R 953 0 R 960 0 R 964 0 R 975 0 R 981 0 R] >> -% 986 0 obj +% 995 0 obj << /Type /Pages /Count 6 -/Parent 1825 0 R -/Kids [983 0 R 994 0 R 999 0 R 1006 0 R 1015 0 R 1023 0 R] +/Parent 1842 0 R +/Kids [991 0 R 997 0 R 1007 0 R 1013 0 R 1020 0 R 1028 0 R] >> -% 1035 0 obj +% 1040 0 obj << /Type /Pages /Count 6 -/Parent 1825 0 R -/Kids [1031 0 R 1037 0 R 1044 0 R 1052 0 R 1059 0 R 1066 0 R] +/Parent 1842 0 R +/Kids [1036 0 R 1045 0 R 1050 0 R 1057 0 R 1065 0 R 1072 0 R] +>> + +endstream +endobj +1843 0 obj +<< +/Type /ObjStm +/N 100 +/First 913 +/Length 10377 >> +stream +1084 0 1138 120 1194 240 1238 360 1280 480 1320 600 1370 720 1405 840 1441 960 1480 1080 +1521 1200 1548 1320 1584 1440 1647 1560 1687 1680 1725 1800 1764 1920 1841 2022 1842 2137 1844 2257 +1845 2378 1846 2499 1847 2574 1848 2670 546 2739 542 2799 538 2910 534 2984 530 3072 526 3160 +522 3248 518 3336 514 3410 510 3535 506 3609 502 3697 498 3785 494 3873 490 3961 486 4035 +482 4160 478 4234 474 4322 470 4410 466 4484 462 4609 458 4683 454 4771 450 4859 446 4947 +442 5035 438 5123 434 5211 430 5299 426 5387 422 5475 418 5563 414 5651 410 5739 406 5827 +401 5915 397 5989 393 6115 389 6189 385 6277 381 6365 377 6453 373 6541 369 6629 365 6717 +361 6805 357 6893 353 6981 349 7069 345 7157 341 7245 337 7333 333 7421 329 7509 325 7597 +321 7685 317 7773 313 7861 309 7949 305 8037 301 8125 297 8213 293 8301 289 8389 285 8463 +281 8589 277 8663 273 8751 269 8839 265 8913 261 9038 257 9112 253 9200 249 9288 245 9376 % 1084 0 obj << /Type /Pages /Count 6 -/Parent 1825 0 R -/Kids [1077 0 R 1093 0 R 1099 0 R 1110 0 R 1117 0 R 1122 0 R] +/Parent 1842 0 R +/Kids [1079 0 R 1091 0 R 1106 0 R 1112 0 R 1124 0 R 1130 0 R] >> -% 1137 0 obj +% 1138 0 obj << /Type /Pages /Count 6 -/Parent 1825 0 R -/Kids [1130 0 R 1141 0 R 1150 0 R 1158 0 R 1170 0 R 1178 0 R] +/Parent 1842 0 R +/Kids [1135 0 R 1144 0 R 1154 0 R 1163 0 R 1171 0 R 1183 0 R] >> -% 1185 0 obj +% 1194 0 obj << /Type /Pages /Count 6 -/Parent 1825 0 R -/Kids [1182 0 R 1194 0 R 1202 0 R 1208 0 R 1217 0 R 1221 0 R] +/Parent 1842 0 R +/Kids [1191 0 R 1196 0 R 1207 0 R 1215 0 R 1221 0 R 1231 0 R] >> -% 1231 0 obj +% 1238 0 obj << /Type /Pages /Count 6 -/Parent 1825 0 R -/Kids [1227 0 R 1234 0 R 1239 0 R 1249 0 R 1254 0 R 1263 0 R] +/Parent 1842 0 R +/Kids [1235 0 R 1241 0 R 1247 0 R 1252 0 R 1262 0 R 1267 0 R] >> -% 1273 0 obj +% 1280 0 obj << /Type /Pages /Count 6 -/Parent 1826 0 R -/Kids [1270 0 R 1276 0 R 1282 0 R 1286 0 R 1294 0 R 1304 0 R] +/Parent 1844 0 R +/Kids [1276 0 R 1284 0 R 1289 0 R 1295 0 R 1299 0 R 1307 0 R] >> % 1320 0 obj << /Type /Pages /Count 6 -/Parent 1826 0 R -/Kids [1308 0 R 1324 0 R 1328 0 R 1341 0 R 1347 0 R 1354 0 R] +/Parent 1844 0 R +/Kids [1317 0 R 1322 0 R 1337 0 R 1342 0 R 1354 0 R 1360 0 R] >> -% 1363 0 obj +% 1370 0 obj << /Type /Pages /Count 6 -/Parent 1826 0 R -/Kids [1360 0 R 1365 0 R 1374 0 R 1380 0 R 1384 0 R 1389 0 R] +/Parent 1844 0 R +/Kids [1367 0 R 1374 0 R 1378 0 R 1387 0 R 1393 0 R 1397 0 R] >> -% 1398 0 obj +% 1405 0 obj << /Type /Pages /Count 6 -/Parent 1826 0 R -/Kids [1393 0 R 1401 0 R 1406 0 R 1412 0 R 1418 0 R 1424 0 R] +/Parent 1844 0 R +/Kids [1402 0 R 1407 0 R 1414 0 R 1419 0 R 1425 0 R 1431 0 R] >> -% 1435 0 obj +% 1441 0 obj << /Type /Pages /Count 6 -/Parent 1826 0 R -/Kids [1430 0 R 1438 0 R 1446 0 R 1450 0 R 1460 0 R 1464 0 R] +/Parent 1844 0 R +/Kids [1437 0 R 1444 0 R 1452 0 R 1459 0 R 1463 0 R 1473 0 R] >> % 1480 0 obj << /Type /Pages /Count 6 -/Parent 1826 0 R -/Kids [1468 0 R 1482 0 R 1486 0 R 1492 0 R 1498 0 R 1505 0 R] +/Parent 1844 0 R +/Kids [1477 0 R 1482 0 R 1495 0 R 1499 0 R 1505 0 R 1511 0 R] >> -% 1512 0 obj +% 1521 0 obj << /Type /Pages /Count 6 -/Parent 1827 0 R -/Kids [1509 0 R 1514 0 R 1518 0 R 1522 0 R 1526 0 R 1530 0 R] +/Parent 1845 0 R +/Kids [1518 0 R 1523 0 R 1527 0 R 1531 0 R 1535 0 R 1539 0 R] >> -% 1541 0 obj +% 1548 0 obj << /Type /Pages /Count 6 -/Parent 1827 0 R -/Kids [1536 0 R 1543 0 R 1550 0 R 1556 0 R 1562 0 R 1567 0 R] +/Parent 1845 0 R +/Kids [1543 0 R 1551 0 R 1557 0 R 1563 0 R 1569 0 R 1575 0 R] >> -% 1577 0 obj +% 1584 0 obj << /Type /Pages /Count 6 -/Parent 1827 0 R -/Kids [1574 0 R 1581 0 R 1611 0 R 1617 0 R 1623 0 R 1629 0 R] +/Parent 1845 0 R +/Kids [1580 0 R 1588 0 R 1594 0 R 1624 0 R 1630 0 R 1636 0 R] >> -% 1638 0 obj +% 1647 0 obj << /Type /Pages /Count 6 -/Parent 1827 0 R -/Kids [1635 0 R 1641 0 R 1648 0 R 1656 0 R 1662 0 R 1669 0 R] ->> - -endstream -endobj -1828 0 obj -<< -/Type /ObjStm -/N 100 -/First 898 -/Length 9889 +/Parent 1845 0 R +/Kids [1642 0 R 1649 0 R 1654 0 R 1662 0 R 1669 0 R 1675 0 R] >> -stream -1680 0 1717 120 1760 240 1824 324 1825 439 1826 559 1827 680 1829 801 1830 876 1831 972 -542 1041 538 1101 534 1212 530 1286 526 1374 522 1462 518 1550 514 1638 510 1712 506 1837 -502 1911 498 1999 494 2087 490 2175 486 2263 482 2337 478 2462 474 2536 470 2624 466 2712 -462 2786 458 2911 454 2985 450 3073 446 3161 442 3249 438 3337 434 3425 430 3513 426 3601 -422 3689 418 3777 414 3865 410 3953 406 4041 401 4129 397 4217 393 4291 389 4417 385 4491 -381 4579 377 4667 373 4755 369 4843 365 4931 361 5019 357 5107 353 5195 349 5283 345 5371 -341 5459 337 5547 333 5635 329 5723 325 5811 321 5899 317 5987 313 6075 309 6163 305 6251 -301 6339 297 6427 293 6515 289 6603 285 6691 281 6765 277 6891 273 6965 269 7053 265 7141 -261 7215 257 7340 253 7414 249 7502 245 7590 241 7678 237 7766 233 7854 229 7942 225 8030 -221 8118 217 8206 213 8294 209 8382 205 8456 200 8581 196 8654 192 8741 188 8815 184 8903 -% 1680 0 obj +% 1687 0 obj << /Type /Pages /Count 6 -/Parent 1827 0 R -/Kids [1675 0 R 1682 0 R 1688 0 R 1697 0 R 1705 0 R 1710 0 R] +/Parent 1845 0 R +/Kids [1682 0 R 1689 0 R 1695 0 R 1701 0 R 1710 0 R 1714 0 R] >> -% 1717 0 obj +% 1725 0 obj << /Type /Pages /Count 6 -/Parent 1827 0 R -/Kids [1714 0 R 1721 0 R 1725 0 R 1732 0 R 1744 0 R 1749 0 R] +/Parent 1845 0 R +/Kids [1722 0 R 1728 0 R 1732 0 R 1738 0 R 1742 0 R 1749 0 R] >> -% 1760 0 obj +% 1764 0 obj << /Type /Pages -/Count 2 -/Parent 1829 0 R -/Kids [1753 0 R 1763 0 R] +/Count 4 +/Parent 1846 0 R +/Kids [1761 0 R 1768 0 R 1772 0 R 1780 0 R] >> -% 1824 0 obj +% 1841 0 obj << /Type /Pages /Count 36 -/Parent 1830 0 R -/Kids [554 0 R 726 0 R 821 0 R 873 0 R 906 0 R 945 0 R] +/Parent 1847 0 R +/Kids [558 0 R 731 0 R 826 0 R 882 0 R 917 0 R 948 0 R] >> -% 1825 0 obj +% 1842 0 obj << /Type /Pages /Count 36 -/Parent 1830 0 R -/Kids [986 0 R 1035 0 R 1084 0 R 1137 0 R 1185 0 R 1231 0 R] +/Parent 1847 0 R +/Kids [995 0 R 1040 0 R 1084 0 R 1138 0 R 1194 0 R 1238 0 R] >> -% 1826 0 obj +% 1844 0 obj << /Type /Pages /Count 36 -/Parent 1830 0 R -/Kids [1273 0 R 1320 0 R 1363 0 R 1398 0 R 1435 0 R 1480 0 R] +/Parent 1847 0 R +/Kids [1280 0 R 1320 0 R 1370 0 R 1405 0 R 1441 0 R 1480 0 R] >> -% 1827 0 obj +% 1845 0 obj << /Type /Pages /Count 36 -/Parent 1830 0 R -/Kids [1512 0 R 1541 0 R 1577 0 R 1638 0 R 1680 0 R 1717 0 R] +/Parent 1847 0 R +/Kids [1521 0 R 1548 0 R 1584 0 R 1647 0 R 1687 0 R 1725 0 R] >> -% 1829 0 obj +% 1846 0 obj << /Type /Pages -/Count 2 -/Parent 1830 0 R -/Kids [1760 0 R] +/Count 4 +/Parent 1847 0 R +/Kids [1764 0 R] >> -% 1830 0 obj +% 1847 0 obj << /Type /Pages -/Count 146 -/Kids [1824 0 R 1825 0 R 1826 0 R 1827 0 R 1829 0 R] +/Count 148 +/Kids [1841 0 R 1842 0 R 1844 0 R 1845 0 R 1846 0 R] >> -% 1831 0 obj +% 1848 0 obj << /Type /Outlines /First 4 0 R /Last 4 0 R /Count 1 >> +% 546 0 obj +<< +/Title 547 0 R +/A 544 0 R +/Parent 542 0 R +>> % 542 0 obj << /Title 543 0 R /A 540 0 R -/Parent 538 0 R +/Parent 4 0 R +/Prev 514 0 R +/First 546 0 R +/Last 546 0 R +/Count -1 >> % 538 0 obj << /Title 539 0 R /A 536 0 R -/Parent 4 0 R -/Prev 510 0 R -/First 542 0 R -/Last 542 0 R -/Count -1 +/Parent 514 0 R +/Prev 534 0 R >> % 534 0 obj << /Title 535 0 R /A 532 0 R -/Parent 510 0 R +/Parent 514 0 R /Prev 530 0 R +/Next 538 0 R >> % 530 0 obj << /Title 531 0 R /A 528 0 R -/Parent 510 0 R +/Parent 514 0 R /Prev 526 0 R /Next 534 0 R >> @@ -25734,7 +25987,7 @@ stream << /Title 527 0 R /A 524 0 R -/Parent 510 0 R +/Parent 514 0 R /Prev 522 0 R /Next 530 0 R >> @@ -25742,7 +25995,7 @@ stream << /Title 523 0 R /A 520 0 R -/Parent 510 0 R +/Parent 514 0 R /Prev 518 0 R /Next 526 0 R >> @@ -25750,40 +26003,40 @@ stream << /Title 519 0 R /A 516 0 R -/Parent 510 0 R -/Prev 514 0 R +/Parent 514 0 R /Next 522 0 R >> % 514 0 obj << /Title 515 0 R /A 512 0 R -/Parent 510 0 R -/Next 518 0 R +/Parent 4 0 R +/Prev 486 0 R +/Next 542 0 R +/First 518 0 R +/Last 538 0 R +/Count -6 >> % 510 0 obj << /Title 511 0 R /A 508 0 R -/Parent 4 0 R -/Prev 482 0 R -/Next 538 0 R -/First 514 0 R -/Last 534 0 R -/Count -6 +/Parent 486 0 R +/Prev 506 0 R >> % 506 0 obj << /Title 507 0 R /A 504 0 R -/Parent 482 0 R +/Parent 486 0 R /Prev 502 0 R +/Next 510 0 R >> % 502 0 obj << /Title 503 0 R /A 500 0 R -/Parent 482 0 R +/Parent 486 0 R /Prev 498 0 R /Next 506 0 R >> @@ -25791,7 +26044,7 @@ stream << /Title 499 0 R /A 496 0 R -/Parent 482 0 R +/Parent 486 0 R /Prev 494 0 R /Next 502 0 R >> @@ -25799,7 +26052,7 @@ stream << /Title 495 0 R /A 492 0 R -/Parent 482 0 R +/Parent 486 0 R /Prev 490 0 R /Next 498 0 R >> @@ -25807,40 +26060,40 @@ stream << /Title 491 0 R /A 488 0 R -/Parent 482 0 R -/Prev 486 0 R +/Parent 486 0 R /Next 494 0 R >> % 486 0 obj << /Title 487 0 R /A 484 0 R -/Parent 482 0 R -/Next 490 0 R +/Parent 4 0 R +/Prev 466 0 R +/Next 514 0 R +/First 490 0 R +/Last 510 0 R +/Count -6 >> % 482 0 obj << /Title 483 0 R /A 480 0 R -/Parent 4 0 R -/Prev 462 0 R -/Next 510 0 R -/First 486 0 R -/Last 506 0 R -/Count -6 +/Parent 466 0 R +/Prev 478 0 R >> % 478 0 obj << /Title 479 0 R /A 476 0 R -/Parent 462 0 R +/Parent 466 0 R /Prev 474 0 R +/Next 482 0 R >> % 474 0 obj << /Title 475 0 R /A 472 0 R -/Parent 462 0 R +/Parent 466 0 R /Prev 470 0 R /Next 478 0 R >> @@ -25848,40 +26101,40 @@ stream << /Title 471 0 R /A 468 0 R -/Parent 462 0 R -/Prev 466 0 R +/Parent 466 0 R /Next 474 0 R >> % 466 0 obj << /Title 467 0 R /A 464 0 R -/Parent 462 0 R -/Next 470 0 R +/Parent 4 0 R +/Prev 397 0 R +/Next 486 0 R +/First 470 0 R +/Last 482 0 R +/Count -4 >> % 462 0 obj << /Title 463 0 R /A 460 0 R -/Parent 4 0 R -/Prev 393 0 R -/Next 482 0 R -/First 466 0 R -/Last 478 0 R -/Count -4 +/Parent 397 0 R +/Prev 458 0 R >> % 458 0 obj << /Title 459 0 R /A 456 0 R -/Parent 393 0 R +/Parent 397 0 R /Prev 454 0 R +/Next 462 0 R >> % 454 0 obj << /Title 455 0 R /A 452 0 R -/Parent 393 0 R +/Parent 397 0 R /Prev 450 0 R /Next 458 0 R >> @@ -25889,7 +26142,7 @@ stream << /Title 451 0 R /A 448 0 R -/Parent 393 0 R +/Parent 397 0 R /Prev 446 0 R /Next 454 0 R >> @@ -25897,7 +26150,7 @@ stream << /Title 447 0 R /A 444 0 R -/Parent 393 0 R +/Parent 397 0 R /Prev 442 0 R /Next 450 0 R >> @@ -25905,7 +26158,7 @@ stream << /Title 443 0 R /A 440 0 R -/Parent 393 0 R +/Parent 397 0 R /Prev 438 0 R /Next 446 0 R >> @@ -25913,7 +26166,7 @@ stream << /Title 439 0 R /A 436 0 R -/Parent 393 0 R +/Parent 397 0 R /Prev 434 0 R /Next 442 0 R >> @@ -25921,7 +26174,7 @@ stream << /Title 435 0 R /A 432 0 R -/Parent 393 0 R +/Parent 397 0 R /Prev 430 0 R /Next 438 0 R >> @@ -25929,7 +26182,7 @@ stream << /Title 431 0 R /A 428 0 R -/Parent 393 0 R +/Parent 397 0 R /Prev 426 0 R /Next 434 0 R >> @@ -25937,7 +26190,7 @@ stream << /Title 427 0 R /A 424 0 R -/Parent 393 0 R +/Parent 397 0 R /Prev 422 0 R /Next 430 0 R >> @@ -25945,7 +26198,7 @@ stream << /Title 423 0 R /A 420 0 R -/Parent 393 0 R +/Parent 397 0 R /Prev 418 0 R /Next 426 0 R >> @@ -25953,7 +26206,7 @@ stream << /Title 419 0 R /A 416 0 R -/Parent 393 0 R +/Parent 397 0 R /Prev 414 0 R /Next 422 0 R >> @@ -25961,7 +26214,7 @@ stream << /Title 415 0 R /A 412 0 R -/Parent 393 0 R +/Parent 397 0 R /Prev 410 0 R /Next 418 0 R >> @@ -25969,7 +26222,7 @@ stream << /Title 411 0 R /A 408 0 R -/Parent 393 0 R +/Parent 397 0 R /Prev 406 0 R /Next 414 0 R >> @@ -25977,7 +26230,7 @@ stream << /Title 407 0 R /A 403 0 R -/Parent 393 0 R +/Parent 397 0 R /Prev 401 0 R /Next 410 0 R >> @@ -25985,40 +26238,40 @@ stream << /Title 402 0 R /A 399 0 R -/Parent 393 0 R -/Prev 397 0 R +/Parent 397 0 R /Next 406 0 R >> % 397 0 obj << /Title 398 0 R /A 395 0 R -/Parent 393 0 R -/Next 401 0 R +/Parent 4 0 R +/Prev 285 0 R +/Next 466 0 R +/First 401 0 R +/Last 462 0 R +/Count -16 >> % 393 0 obj << /Title 394 0 R /A 391 0 R -/Parent 4 0 R -/Prev 281 0 R -/Next 462 0 R -/First 397 0 R -/Last 458 0 R -/Count -16 +/Parent 285 0 R +/Prev 389 0 R >> % 389 0 obj << /Title 390 0 R /A 387 0 R -/Parent 281 0 R +/Parent 285 0 R /Prev 385 0 R +/Next 393 0 R >> % 385 0 obj << /Title 386 0 R /A 383 0 R -/Parent 281 0 R +/Parent 285 0 R /Prev 381 0 R /Next 389 0 R >> @@ -26026,7 +26279,7 @@ stream << /Title 382 0 R /A 379 0 R -/Parent 281 0 R +/Parent 285 0 R /Prev 377 0 R /Next 385 0 R >> @@ -26034,7 +26287,7 @@ stream << /Title 378 0 R /A 375 0 R -/Parent 281 0 R +/Parent 285 0 R /Prev 373 0 R /Next 381 0 R >> @@ -26042,7 +26295,7 @@ stream << /Title 374 0 R /A 371 0 R -/Parent 281 0 R +/Parent 285 0 R /Prev 369 0 R /Next 377 0 R >> @@ -26050,7 +26303,7 @@ stream << /Title 370 0 R /A 367 0 R -/Parent 281 0 R +/Parent 285 0 R /Prev 365 0 R /Next 373 0 R >> @@ -26058,7 +26311,7 @@ stream << /Title 366 0 R /A 363 0 R -/Parent 281 0 R +/Parent 285 0 R /Prev 361 0 R /Next 369 0 R >> @@ -26066,7 +26319,7 @@ stream << /Title 362 0 R /A 359 0 R -/Parent 281 0 R +/Parent 285 0 R /Prev 357 0 R /Next 365 0 R >> @@ -26074,7 +26327,7 @@ stream << /Title 358 0 R /A 355 0 R -/Parent 281 0 R +/Parent 285 0 R /Prev 353 0 R /Next 361 0 R >> @@ -26082,7 +26335,7 @@ stream << /Title 354 0 R /A 351 0 R -/Parent 281 0 R +/Parent 285 0 R /Prev 349 0 R /Next 357 0 R >> @@ -26090,7 +26343,7 @@ stream << /Title 350 0 R /A 347 0 R -/Parent 281 0 R +/Parent 285 0 R /Prev 345 0 R /Next 353 0 R >> @@ -26098,7 +26351,7 @@ stream << /Title 346 0 R /A 343 0 R -/Parent 281 0 R +/Parent 285 0 R /Prev 341 0 R /Next 349 0 R >> @@ -26106,7 +26359,7 @@ stream << /Title 342 0 R /A 339 0 R -/Parent 281 0 R +/Parent 285 0 R /Prev 337 0 R /Next 345 0 R >> @@ -26114,7 +26367,7 @@ stream << /Title 338 0 R /A 335 0 R -/Parent 281 0 R +/Parent 285 0 R /Prev 333 0 R /Next 341 0 R >> @@ -26122,7 +26375,7 @@ stream << /Title 334 0 R /A 331 0 R -/Parent 281 0 R +/Parent 285 0 R /Prev 329 0 R /Next 337 0 R >> @@ -26130,7 +26383,7 @@ stream << /Title 330 0 R /A 327 0 R -/Parent 281 0 R +/Parent 285 0 R /Prev 325 0 R /Next 333 0 R >> @@ -26138,7 +26391,7 @@ stream << /Title 326 0 R /A 323 0 R -/Parent 281 0 R +/Parent 285 0 R /Prev 321 0 R /Next 329 0 R >> @@ -26146,7 +26399,7 @@ stream << /Title 322 0 R /A 319 0 R -/Parent 281 0 R +/Parent 285 0 R /Prev 317 0 R /Next 325 0 R >> @@ -26154,7 +26407,7 @@ stream << /Title 318 0 R /A 315 0 R -/Parent 281 0 R +/Parent 285 0 R /Prev 313 0 R /Next 321 0 R >> @@ -26162,7 +26415,7 @@ stream << /Title 314 0 R /A 311 0 R -/Parent 281 0 R +/Parent 285 0 R /Prev 309 0 R /Next 317 0 R >> @@ -26170,7 +26423,7 @@ stream << /Title 310 0 R /A 307 0 R -/Parent 281 0 R +/Parent 285 0 R /Prev 305 0 R /Next 313 0 R >> @@ -26178,7 +26431,7 @@ stream << /Title 306 0 R /A 303 0 R -/Parent 281 0 R +/Parent 285 0 R /Prev 301 0 R /Next 309 0 R >> @@ -26186,7 +26439,7 @@ stream << /Title 302 0 R /A 299 0 R -/Parent 281 0 R +/Parent 285 0 R /Prev 297 0 R /Next 305 0 R >> @@ -26194,7 +26447,7 @@ stream << /Title 298 0 R /A 295 0 R -/Parent 281 0 R +/Parent 285 0 R /Prev 293 0 R /Next 301 0 R >> @@ -26202,7 +26455,7 @@ stream << /Title 294 0 R /A 291 0 R -/Parent 281 0 R +/Parent 285 0 R /Prev 289 0 R /Next 297 0 R >> @@ -26210,40 +26463,40 @@ stream << /Title 290 0 R /A 287 0 R -/Parent 281 0 R -/Prev 285 0 R +/Parent 285 0 R /Next 293 0 R >> % 285 0 obj << /Title 286 0 R /A 283 0 R -/Parent 281 0 R -/Next 289 0 R +/Parent 4 0 R +/Prev 265 0 R +/Next 397 0 R +/First 289 0 R +/Last 393 0 R +/Count -27 >> % 281 0 obj << /Title 282 0 R /A 279 0 R -/Parent 4 0 R -/Prev 261 0 R -/Next 393 0 R -/First 285 0 R -/Last 389 0 R -/Count -27 +/Parent 265 0 R +/Prev 277 0 R >> % 277 0 obj << /Title 278 0 R /A 275 0 R -/Parent 261 0 R +/Parent 265 0 R /Prev 273 0 R +/Next 281 0 R >> % 273 0 obj << /Title 274 0 R /A 271 0 R -/Parent 261 0 R +/Parent 265 0 R /Prev 269 0 R /Next 277 0 R >> @@ -26251,40 +26504,40 @@ stream << /Title 270 0 R /A 267 0 R -/Parent 261 0 R -/Prev 265 0 R +/Parent 265 0 R /Next 273 0 R >> % 265 0 obj << /Title 266 0 R /A 263 0 R -/Parent 261 0 R -/Next 269 0 R +/Parent 4 0 R +/Prev 209 0 R +/Next 285 0 R +/First 269 0 R +/Last 281 0 R +/Count -4 >> % 261 0 obj << /Title 262 0 R /A 259 0 R -/Parent 4 0 R -/Prev 205 0 R -/Next 281 0 R -/First 265 0 R -/Last 277 0 R -/Count -4 +/Parent 209 0 R +/Prev 257 0 R >> % 257 0 obj << /Title 258 0 R /A 255 0 R -/Parent 205 0 R +/Parent 209 0 R /Prev 253 0 R +/Next 261 0 R >> % 253 0 obj << /Title 254 0 R /A 251 0 R -/Parent 205 0 R +/Parent 209 0 R /Prev 249 0 R /Next 257 0 R >> @@ -26292,7 +26545,7 @@ stream << /Title 250 0 R /A 247 0 R -/Parent 205 0 R +/Parent 209 0 R /Prev 245 0 R /Next 253 0 R >> @@ -26300,15 +26553,36 @@ stream << /Title 246 0 R /A 243 0 R -/Parent 205 0 R +/Parent 209 0 R /Prev 241 0 R /Next 249 0 R >> + +endstream +endobj +1849 0 obj +<< +/Type /ObjStm +/N 100 +/First 912 +/Length 13767 +>> +stream +241 0 237 88 233 176 229 264 225 352 221 440 217 528 213 616 209 690 205 815 +200 888 196 975 192 1049 188 1137 184 1225 180 1313 176 1387 172 1486 168 1611 164 1683 +160 1756 156 1843 152 1930 148 2017 144 2104 140 2191 136 2278 132 2365 128 2452 124 2539 +120 2626 116 2713 112 2800 108 2887 104 2974 100 3061 96 3133 92 3243 88 3364 84 3433 +80 3502 76 3584 72 3666 68 3748 64 3830 60 3912 56 3994 52 4076 48 4158 44 4227 +40 4334 36 4440 32 4560 28 4629 24 4685 20 4804 16 4886 12 4955 8 5072 4 5137 +1850 5230 1851 5426 1852 5599 1853 5779 1854 5956 1855 6133 1856 6299 1857 6464 1858 6630 1859 6794 +1860 6958 1861 7128 1862 7298 1863 7470 1864 7640 1865 7812 1866 7982 1867 8154 1868 8324 1869 8496 +1870 8665 1871 8842 1872 9040 1873 9266 1874 9482 1875 9674 1876 9849 1877 10058 1878 10283 1879 10503 +1880 10736 1881 10969 1882 11200 1883 11436 1884 11671 1885 11902 1886 12130 1887 12317 1888 12497 1889 12675 % 241 0 obj << /Title 242 0 R /A 239 0 R -/Parent 205 0 R +/Parent 209 0 R /Prev 237 0 R /Next 245 0 R >> @@ -26316,7 +26590,7 @@ stream << /Title 238 0 R /A 235 0 R -/Parent 205 0 R +/Parent 209 0 R /Prev 233 0 R /Next 241 0 R >> @@ -26324,7 +26598,7 @@ stream << /Title 234 0 R /A 231 0 R -/Parent 205 0 R +/Parent 209 0 R /Prev 229 0 R /Next 237 0 R >> @@ -26332,7 +26606,7 @@ stream << /Title 230 0 R /A 227 0 R -/Parent 205 0 R +/Parent 209 0 R /Prev 225 0 R /Next 233 0 R >> @@ -26340,7 +26614,7 @@ stream << /Title 226 0 R /A 223 0 R -/Parent 205 0 R +/Parent 209 0 R /Prev 221 0 R /Next 229 0 R >> @@ -26348,7 +26622,7 @@ stream << /Title 222 0 R /A 219 0 R -/Parent 205 0 R +/Parent 209 0 R /Prev 217 0 R /Next 225 0 R >> @@ -26356,7 +26630,7 @@ stream << /Title 218 0 R /A 215 0 R -/Parent 205 0 R +/Parent 209 0 R /Prev 213 0 R /Next 221 0 R >> @@ -26364,55 +26638,55 @@ stream << /Title 214 0 R /A 211 0 R -/Parent 205 0 R -/Prev 209 0 R +/Parent 209 0 R /Next 217 0 R >> % 209 0 obj << /Title 210 0 R /A 207 0 R -/Parent 205 0 R -/Next 213 0 R +/Parent 4 0 R +/Prev 36 0 R +/Next 265 0 R +/First 213 0 R +/Last 261 0 R +/Count -13 >> % 205 0 obj << /Title 206 0 R /A 202 0 R -/Parent 4 0 R -/Prev 36 0 R -/Next 261 0 R -/First 209 0 R -/Last 257 0 R -/Count -13 +/Parent 36 0 R +/Prev 200 0 R >> % 200 0 obj << /Title 201 0 R /A 198 0 R /Parent 36 0 R -/Prev 196 0 R +/Prev 172 0 R +/Next 205 0 R >> % 196 0 obj << /Title 197 0 R -/A 194 0 R -/Parent 36 0 R -/Prev 168 0 R -/Next 200 0 R +/A 194 0 R +/Parent 176 0 R +/Prev 192 0 R >> % 192 0 obj << /Title 193 0 R /A 190 0 R -/Parent 172 0 R +/Parent 176 0 R /Prev 188 0 R +/Next 196 0 R >> % 188 0 obj << /Title 189 0 R /A 186 0 R -/Parent 172 0 R +/Parent 176 0 R /Prev 184 0 R /Next 192 0 R >> @@ -26420,37 +26694,15 @@ stream << /Title 185 0 R /A 182 0 R -/Parent 172 0 R +/Parent 176 0 R /Prev 180 0 R /Next 188 0 R >> - -endstream -endobj -1832 0 obj -<< -/Type /ObjStm -/N 100 -/First 936 -/Length 15050 ->> -stream -180 0 176 88 172 162 168 261 164 386 160 458 156 531 152 618 148 705 144 792 -140 879 136 966 132 1053 128 1140 124 1227 120 1314 116 1401 112 1488 108 1575 104 1662 -100 1749 96 1834 92 1904 88 2013 84 2134 80 2203 76 2272 72 2354 68 2436 64 2518 -60 2600 56 2682 52 2764 48 2846 44 2915 40 3021 36 3127 32 3247 28 3316 24 3372 -20 3491 16 3573 12 3642 8 3759 4 3824 1833 3917 1834 4113 1835 4286 1836 4466 1837 4643 -1838 4820 1839 4986 1840 5151 1841 5317 1842 5481 1843 5645 1844 5815 1845 5985 1846 6157 1847 6327 -1848 6499 1849 6669 1850 6841 1851 7011 1852 7183 1853 7352 1854 7529 1855 7727 1856 7953 1857 8169 -1858 8361 1859 8536 1860 8745 1861 8970 1862 9190 1863 9423 1864 9656 1865 9887 1866 10123 1867 10358 -1868 10589 1869 10817 1870 11004 1871 11184 1872 11362 1873 11542 1874 11719 1875 11896 1876 12076 1877 12254 -1878 12418 1879 12584 1880 12749 1881 12919 1882 13089 1883 13261 1884 13431 1885 13603 1886 13773 1887 13945 % 180 0 obj << /Title 181 0 R /A 178 0 R -/Parent 172 0 R -/Prev 176 0 R +/Parent 176 0 R /Next 184 0 R >> % 176 0 obj @@ -26458,47 +26710,48 @@ stream /Title 177 0 R /A 174 0 R /Parent 172 0 R -/Next 180 0 R +/First 180 0 R +/Last 196 0 R +/Count -5 >> % 172 0 obj << /Title 173 0 R /A 170 0 R -/Parent 168 0 R +/Parent 36 0 R +/Prev 92 0 R +/Next 200 0 R /First 176 0 R -/Last 192 0 R -/Count -5 +/Last 176 0 R +/Count -1 >> % 168 0 obj << /Title 169 0 R /A 166 0 R -/Parent 36 0 R -/Prev 88 0 R -/Next 196 0 R -/First 172 0 R -/Last 172 0 R -/Count -1 +/Parent 92 0 R +/Prev 96 0 R >> % 164 0 obj << /Title 165 0 R /A 162 0 R -/Parent 88 0 R -/Prev 92 0 R +/Parent 96 0 R +/Prev 160 0 R >> % 160 0 obj << /Title 161 0 R /A 158 0 R -/Parent 92 0 R +/Parent 96 0 R /Prev 156 0 R +/Next 164 0 R >> % 156 0 obj << /Title 157 0 R /A 154 0 R -/Parent 92 0 R +/Parent 96 0 R /Prev 152 0 R /Next 160 0 R >> @@ -26506,7 +26759,7 @@ stream << /Title 153 0 R /A 150 0 R -/Parent 92 0 R +/Parent 96 0 R /Prev 148 0 R /Next 156 0 R >> @@ -26514,7 +26767,7 @@ stream << /Title 149 0 R /A 146 0 R -/Parent 92 0 R +/Parent 96 0 R /Prev 144 0 R /Next 152 0 R >> @@ -26522,7 +26775,7 @@ stream << /Title 145 0 R /A 142 0 R -/Parent 92 0 R +/Parent 96 0 R /Prev 140 0 R /Next 148 0 R >> @@ -26530,7 +26783,7 @@ stream << /Title 141 0 R /A 138 0 R -/Parent 92 0 R +/Parent 96 0 R /Prev 136 0 R /Next 144 0 R >> @@ -26538,7 +26791,7 @@ stream << /Title 137 0 R /A 134 0 R -/Parent 92 0 R +/Parent 96 0 R /Prev 132 0 R /Next 140 0 R >> @@ -26546,7 +26799,7 @@ stream << /Title 133 0 R /A 130 0 R -/Parent 92 0 R +/Parent 96 0 R /Prev 128 0 R /Next 136 0 R >> @@ -26554,7 +26807,7 @@ stream << /Title 129 0 R /A 126 0 R -/Parent 92 0 R +/Parent 96 0 R /Prev 124 0 R /Next 132 0 R >> @@ -26562,7 +26815,7 @@ stream << /Title 125 0 R /A 122 0 R -/Parent 92 0 R +/Parent 96 0 R /Prev 120 0 R /Next 128 0 R >> @@ -26570,7 +26823,7 @@ stream << /Title 121 0 R /A 118 0 R -/Parent 92 0 R +/Parent 96 0 R /Prev 116 0 R /Next 124 0 R >> @@ -26578,7 +26831,7 @@ stream << /Title 117 0 R /A 114 0 R -/Parent 92 0 R +/Parent 96 0 R /Prev 112 0 R /Next 120 0 R >> @@ -26586,7 +26839,7 @@ stream << /Title 113 0 R /A 110 0 R -/Parent 92 0 R +/Parent 96 0 R /Prev 108 0 R /Next 116 0 R >> @@ -26594,7 +26847,7 @@ stream << /Title 109 0 R /A 106 0 R -/Parent 92 0 R +/Parent 96 0 R /Prev 104 0 R /Next 112 0 R >> @@ -26602,7 +26855,7 @@ stream << /Title 105 0 R /A 102 0 R -/Parent 92 0 R +/Parent 96 0 R /Prev 100 0 R /Next 108 0 R >> @@ -26610,8 +26863,7 @@ stream << /Title 101 0 R /A 98 0 R -/Parent 92 0 R -/Prev 96 0 R +/Parent 96 0 R /Next 104 0 R >> % 96 0 obj @@ -26619,35 +26871,35 @@ stream /Title 97 0 R /A 94 0 R /Parent 92 0 R -/Next 100 0 R +/Next 168 0 R +/First 100 0 R +/Last 164 0 R +/Count -17 >> % 92 0 obj << /Title 93 0 R /A 90 0 R -/Parent 88 0 R -/Next 164 0 R +/Parent 36 0 R +/Prev 40 0 R +/Next 172 0 R /First 96 0 R -/Last 160 0 R -/Count -17 +/Last 168 0 R +/Count -2 >> % 88 0 obj << /Title 89 0 R /A 86 0 R -/Parent 36 0 R -/Prev 40 0 R -/Next 168 0 R -/First 92 0 R -/Last 164 0 R -/Count -2 +/Parent 40 0 R +/Prev 44 0 R >> % 84 0 obj << /Title 85 0 R /A 82 0 R -/Parent 40 0 R -/Prev 44 0 R +/Parent 44 0 R +/Prev 80 0 R >> % 80 0 obj << @@ -26655,6 +26907,7 @@ stream /A 78 0 R /Parent 44 0 R /Prev 76 0 R +/Next 84 0 R >> % 76 0 obj << @@ -26724,19 +26977,19 @@ stream /Title 45 0 R /A 42 0 R /Parent 40 0 R -/Next 84 0 R +/Next 88 0 R /First 48 0 R -/Last 80 0 R -/Count -9 +/Last 84 0 R +/Count -10 >> % 40 0 obj << /Title 41 0 R /A 38 0 R /Parent 36 0 R -/Next 88 0 R +/Next 92 0 R /First 44 0 R -/Last 84 0 R +/Last 88 0 R /Count -2 >> % 36 0 obj @@ -26745,9 +26998,9 @@ stream /A 34 0 R /Parent 4 0 R /Prev 12 0 R -/Next 205 0 R +/Next 209 0 R /First 40 0 R -/Last 200 0 R +/Last 205 0 R /Count -5 >> % 32 0 obj @@ -26811,634 +27064,641 @@ stream << /Title 5 0 R /A 1 0 R -/Parent 1831 0 R +/Parent 1848 0 R /First 8 0 R -/Last 538 0 R +/Last 542 0 R /Count -11 >> -% 1833 0 obj +% 1850 0 obj << -/Names [(Doc-Start) 549 0 R (Hfootnote.1) 764 0 R (Hfootnote.2) 766 0 R (Hfootnote.3) 819 0 R (Hfootnote.4) 1691 0 R (Hfootnote.5) 1738 0 R] +/Names [(Doc-Start) 553 0 R (Hfootnote.1) 769 0 R (Hfootnote.2) 771 0 R (Hfootnote.3) 824 0 R (Hfootnote.4) 1704 0 R (Hfootnote.5) 1755 0 R] /Limits [(Doc-Start) (Hfootnote.5)] >> -% 1834 0 obj +% 1851 0 obj << -/Names [(Item.1) 793 0 R (Item.10) 807 0 R (Item.100) 1479 0 R (Item.101) 1489 0 R (Item.102) 1490 0 R (Item.103) 1495 0 R] +/Names [(Item.1) 798 0 R (Item.10) 812 0 R (Item.100) 1493 0 R (Item.101) 1502 0 R (Item.102) 1503 0 R (Item.103) 1508 0 R] /Limits [(Item.1) (Item.103)] >> -% 1835 0 obj +% 1852 0 obj << -/Names [(Item.104) 1496 0 R (Item.105) 1501 0 R (Item.106) 1502 0 R (Item.107) 1503 0 R (Item.108) 1533 0 R (Item.109) 1534 0 R] +/Names [(Item.104) 1509 0 R (Item.105) 1514 0 R (Item.106) 1515 0 R (Item.107) 1516 0 R (Item.108) 1546 0 R (Item.109) 1547 0 R] /Limits [(Item.104) (Item.109)] >> -% 1836 0 obj +% 1853 0 obj << -/Names [(Item.11) 808 0 R (Item.110) 1539 0 R (Item.111) 1540 0 R (Item.112) 1546 0 R (Item.113) 1547 0 R (Item.114) 1553 0 R] +/Names [(Item.11) 813 0 R (Item.110) 1554 0 R (Item.111) 1555 0 R (Item.112) 1560 0 R (Item.113) 1561 0 R (Item.114) 1566 0 R] /Limits [(Item.11) (Item.114)] >> -% 1837 0 obj +% 1854 0 obj << -/Names [(Item.115) 1554 0 R (Item.116) 1559 0 R (Item.117) 1560 0 R (Item.118) 1565 0 R (Item.119) 1570 0 R (Item.12) 809 0 R] +/Names [(Item.115) 1567 0 R (Item.116) 1572 0 R (Item.117) 1573 0 R (Item.118) 1578 0 R (Item.119) 1583 0 R (Item.12) 814 0 R] /Limits [(Item.115) (Item.12)] >> -% 1838 0 obj +% 1855 0 obj << -/Names [(Item.13) 810 0 R (Item.14) 811 0 R (Item.15) 812 0 R (Item.16) 813 0 R (Item.17) 814 0 R (Item.18) 815 0 R] +/Names [(Item.13) 815 0 R (Item.14) 816 0 R (Item.15) 817 0 R (Item.16) 818 0 R (Item.17) 819 0 R (Item.18) 820 0 R] /Limits [(Item.13) (Item.18)] >> -% 1839 0 obj +% 1856 0 obj << -/Names [(Item.19) 816 0 R (Item.2) 794 0 R (Item.20) 817 0 R (Item.21) 818 0 R (Item.22) 828 0 R (Item.23) 829 0 R] +/Names [(Item.19) 821 0 R (Item.2) 799 0 R (Item.20) 822 0 R (Item.21) 823 0 R (Item.22) 833 0 R (Item.23) 834 0 R] /Limits [(Item.19) (Item.23)] >> -% 1840 0 obj +% 1857 0 obj << -/Names [(Item.24) 830 0 R (Item.25) 831 0 R (Item.26) 832 0 R (Item.27) 833 0 R (Item.28) 845 0 R (Item.29) 846 0 R] +/Names [(Item.24) 835 0 R (Item.25) 836 0 R (Item.26) 837 0 R (Item.27) 838 0 R (Item.28) 854 0 R (Item.29) 855 0 R] /Limits [(Item.24) (Item.29)] >> -% 1841 0 obj +% 1858 0 obj << -/Names [(Item.3) 795 0 R (Item.30) 847 0 R (Item.31) 848 0 R (Item.32) 849 0 R (Item.33) 850 0 R (Item.34) 851 0 R] +/Names [(Item.3) 800 0 R (Item.30) 856 0 R (Item.31) 857 0 R (Item.32) 858 0 R (Item.33) 859 0 R (Item.34) 860 0 R] /Limits [(Item.3) (Item.34)] >> -% 1842 0 obj +% 1859 0 obj << -/Names [(Item.35) 852 0 R (Item.36) 857 0 R (Item.37) 858 0 R (Item.38) 859 0 R (Item.39) 860 0 R (Item.4) 796 0 R] +/Names [(Item.35) 861 0 R (Item.36) 862 0 R (Item.37) 867 0 R (Item.38) 868 0 R (Item.39) 869 0 R (Item.4) 801 0 R] /Limits [(Item.35) (Item.4)] >> -% 1843 0 obj +% 1860 0 obj << -/Names [(Item.40) 861 0 R (Item.41) 897 0 R (Item.42) 1173 0 R (Item.43) 1174 0 R (Item.44) 1175 0 R (Item.45) 1230 0 R] +/Names [(Item.40) 870 0 R (Item.41) 907 0 R (Item.42) 1186 0 R (Item.43) 1187 0 R (Item.44) 1188 0 R (Item.45) 1244 0 R] /Limits [(Item.40) (Item.45)] >> -% 1844 0 obj +% 1861 0 obj << -/Names [(Item.46) 1237 0 R (Item.47) 1242 0 R (Item.48) 1243 0 R (Item.49) 1244 0 R (Item.5) 797 0 R (Item.50) 1245 0 R] +/Names [(Item.46) 1250 0 R (Item.47) 1255 0 R (Item.48) 1256 0 R (Item.49) 1257 0 R (Item.5) 802 0 R (Item.50) 1258 0 R] /Limits [(Item.46) (Item.50)] >> -% 1845 0 obj +% 1862 0 obj << -/Names [(Item.51) 1246 0 R (Item.52) 1257 0 R (Item.53) 1258 0 R (Item.54) 1259 0 R (Item.55) 1266 0 R (Item.56) 1289 0 R] +/Names [(Item.51) 1259 0 R (Item.52) 1270 0 R (Item.53) 1271 0 R (Item.54) 1272 0 R (Item.55) 1279 0 R (Item.56) 1302 0 R] /Limits [(Item.51) (Item.56)] >> -% 1846 0 obj +% 1863 0 obj << -/Names [(Item.57) 1290 0 R (Item.58) 1297 0 R (Item.59) 1298 0 R (Item.6) 798 0 R (Item.60) 1299 0 R (Item.61) 1311 0 R] +/Names [(Item.57) 1303 0 R (Item.58) 1310 0 R (Item.59) 1311 0 R (Item.6) 803 0 R (Item.60) 1312 0 R (Item.61) 1325 0 R] /Limits [(Item.57) (Item.61)] >> -% 1847 0 obj +% 1864 0 obj << -/Names [(Item.62) 1312 0 R (Item.63) 1313 0 R (Item.64) 1314 0 R (Item.65) 1315 0 R (Item.66) 1316 0 R (Item.67) 1317 0 R] +/Names [(Item.62) 1326 0 R (Item.63) 1327 0 R (Item.64) 1328 0 R (Item.65) 1329 0 R (Item.66) 1330 0 R (Item.67) 1331 0 R] /Limits [(Item.62) (Item.67)] >> -% 1848 0 obj +% 1865 0 obj << -/Names [(Item.68) 1318 0 R (Item.69) 1319 0 R (Item.7) 799 0 R (Item.70) 1331 0 R (Item.71) 1332 0 R (Item.72) 1333 0 R] +/Names [(Item.68) 1332 0 R (Item.69) 1333 0 R (Item.7) 804 0 R (Item.70) 1345 0 R (Item.71) 1346 0 R (Item.72) 1347 0 R] /Limits [(Item.68) (Item.72)] >> -% 1849 0 obj +% 1866 0 obj << -/Names [(Item.73) 1334 0 R (Item.74) 1335 0 R (Item.75) 1336 0 R (Item.76) 1350 0 R (Item.77) 1368 0 R (Item.78) 1369 0 R] +/Names [(Item.73) 1348 0 R (Item.74) 1349 0 R (Item.75) 1350 0 R (Item.76) 1363 0 R (Item.77) 1381 0 R (Item.78) 1382 0 R] /Limits [(Item.73) (Item.78)] >> -% 1850 0 obj +% 1867 0 obj << -/Names [(Item.79) 1396 0 R (Item.8) 800 0 R (Item.80) 1397 0 R (Item.81) 1409 0 R (Item.82) 1415 0 R (Item.83) 1421 0 R] +/Names [(Item.79) 1410 0 R (Item.8) 805 0 R (Item.80) 1411 0 R (Item.81) 1422 0 R (Item.82) 1428 0 R (Item.83) 1434 0 R] /Limits [(Item.79) (Item.83)] >> -% 1851 0 obj +% 1868 0 obj << -/Names [(Item.84) 1427 0 R (Item.85) 1433 0 R (Item.86) 1434 0 R (Item.87) 1441 0 R (Item.88) 1442 0 R (Item.89) 1453 0 R] +/Names [(Item.84) 1440 0 R (Item.85) 1447 0 R (Item.86) 1448 0 R (Item.87) 1455 0 R (Item.88) 1456 0 R (Item.89) 1466 0 R] /Limits [(Item.84) (Item.89)] >> -% 1852 0 obj +% 1869 0 obj << -/Names [(Item.9) 806 0 R (Item.90) 1454 0 R (Item.91) 1455 0 R (Item.92) 1471 0 R (Item.93) 1472 0 R (Item.94) 1473 0 R] +/Names [(Item.9) 811 0 R (Item.90) 1467 0 R (Item.91) 1468 0 R (Item.92) 1485 0 R (Item.93) 1486 0 R (Item.94) 1487 0 R] /Limits [(Item.9) (Item.94)] >> -% 1853 0 obj +% 1870 0 obj << -/Names [(Item.95) 1474 0 R (Item.96) 1475 0 R (Item.97) 1476 0 R (Item.98) 1477 0 R (Item.99) 1478 0 R (cite.2007c) 779 0 R] +/Names [(Item.95) 1488 0 R (Item.96) 1489 0 R (Item.97) 1490 0 R (Item.98) 1491 0 R (Item.99) 1492 0 R (cite.2007c) 784 0 R] /Limits [(Item.95) (cite.2007c)] >> -% 1854 0 obj +% 1871 0 obj << -/Names [(cite.2007d) 780 0 R (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] +/Names [(cite.2007d) 785 0 R (cite.BLACS) 757 0 R (cite.BLAS1) 739 0 R (cite.BLAS2) 740 0 R (cite.BLAS3) 741 0 R (cite.DesPat:11) 734 0 R] /Limits [(cite.2007d) (cite.DesPat:11)] >> -% 1855 0 obj +% 1872 0 obj << -/Names [(cite.DesignPatterns) 888 0 R (cite.KIVA3PSBLAS) 1759 0 R (cite.METIS) 767 0 R (cite.MPI1) 1766 0 R (cite.PARA04FOREST) 1757 0 R (cite.PSBLAS) 1758 0 R] +/Names [(cite.DesignPatterns) 898 0 R (cite.KIVA3PSBLAS) 1778 0 R (cite.METIS) 772 0 R (cite.MPI1) 1783 0 R (cite.PARA04FOREST) 1776 0 R (cite.PSBLAS) 1777 0 R] /Limits [(cite.DesignPatterns) (cite.PSBLAS)] >> -% 1856 0 obj +% 1873 0 obj << -/Names [(cite.RouXiaXu:11) 730 0 R (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] +/Names [(cite.RouXiaXu:11) 735 0 R (cite.Sparse03) 733 0 R (cite.machiels) 736 0 R (cite.metcalf) 732 0 R (cite.sblas02) 738 0 R (cite.sblas97) 737 0 R] /Limits [(cite.RouXiaXu:11) (cite.sblas97)] >> -% 1857 0 obj +% 1874 0 obj << -/Names [(descdata) 839 0 R (equation.4.1) 1080 0 R (equation.4.2) 1081 0 R (equation.4.3) 1082 0 R (figure.1) 746 0 R (figure.10) 1579 0 R] +/Names [(descdata) 844 0 R (equation.4.1) 1094 0 R (equation.4.2) 1095 0 R (equation.4.3) 1096 0 R (figure.1) 751 0 R (figure.10) 1592 0 R] /Limits [(descdata) (figure.10)] >> -% 1858 0 obj +% 1875 0 obj << -/Names [(figure.2) 775 0 R (figure.3) 862 0 R (figure.4) 887 0 R (figure.5) 928 0 R (figure.6) 944 0 R (figure.7) 1144 0 R] +/Names [(figure.2) 780 0 R (figure.3) 871 0 R (figure.4) 897 0 R (figure.5) 937 0 R (figure.6) 958 0 R (figure.7) 1157 0 R] /Limits [(figure.2) (figure.7)] >> -% 1859 0 obj +% 1876 0 obj << -/Names [(figure.8) 1176 0 R (figure.9) 1578 0 R (lstlisting.-1) 1134 0 R (lstlisting.-10) 1644 0 R (lstlisting.-11) 1651 0 R (lstlisting.-12) 1659 0 R] +/Names [(figure.8) 1189 0 R (figure.9) 1591 0 R (lstlisting.-1) 1148 0 R (lstlisting.-10) 1657 0 R (lstlisting.-11) 1665 0 R (lstlisting.-12) 1672 0 R] /Limits [(figure.8) (lstlisting.-12)] >> -% 1860 0 obj +% 1877 0 obj << -/Names [(lstlisting.-13) 1665 0 R (lstlisting.-14) 1672 0 R (lstlisting.-15) 1678 0 R (lstlisting.-16) 1735 0 R (lstlisting.-2) 1162 0 R (lstlisting.-3) 1198 0 R] +/Names [(lstlisting.-13) 1678 0 R (lstlisting.-14) 1685 0 R (lstlisting.-15) 1692 0 R (lstlisting.-16) 1752 0 R (lstlisting.-2) 1175 0 R (lstlisting.-3) 1211 0 R] /Limits [(lstlisting.-13) (lstlisting.-3)] >> -% 1861 0 obj +% 1878 0 obj << -/Names [(lstlisting.-4) 1212 0 R (lstlisting.-5) 1584 0 R (lstlisting.-6) 1614 0 R (lstlisting.-7) 1620 0 R (lstlisting.-8) 1626 0 R (lstlisting.-9) 1632 0 R] +/Names [(lstlisting.-4) 1225 0 R (lstlisting.-5) 1597 0 R (lstlisting.-6) 1627 0 R (lstlisting.-7) 1633 0 R (lstlisting.-8) 1639 0 R (lstlisting.-9) 1645 0 R] /Limits [(lstlisting.-4) (lstlisting.-9)] >> -% 1862 0 obj +% 1879 0 obj << -/Names [(lstnumber.-1.1) 1135 0 R (lstnumber.-1.2) 1136 0 R (lstnumber.-10.1) 1645 0 R (lstnumber.-11.1) 1652 0 R (lstnumber.-12.1) 1660 0 R (lstnumber.-13.1) 1666 0 R] +/Names [(lstnumber.-1.1) 1149 0 R (lstnumber.-1.2) 1150 0 R (lstnumber.-10.1) 1658 0 R (lstnumber.-11.1) 1666 0 R (lstnumber.-12.1) 1673 0 R (lstnumber.-13.1) 1679 0 R] /Limits [(lstnumber.-1.1) (lstnumber.-13.1)] >> -% 1863 0 obj +% 1880 0 obj << -/Names [(lstnumber.-14.1) 1673 0 R (lstnumber.-15.1) 1679 0 R (lstnumber.-16.1) 1736 0 R (lstnumber.-16.2) 1737 0 R (lstnumber.-2.1) 1163 0 R (lstnumber.-2.2) 1164 0 R] +/Names [(lstnumber.-14.1) 1686 0 R (lstnumber.-15.1) 1693 0 R (lstnumber.-16.1) 1753 0 R (lstnumber.-16.2) 1754 0 R (lstnumber.-2.1) 1176 0 R (lstnumber.-2.2) 1177 0 R] /Limits [(lstnumber.-14.1) (lstnumber.-2.2)] >> -% 1864 0 obj +% 1881 0 obj << -/Names [(lstnumber.-3.1) 1199 0 R (lstnumber.-3.2) 1200 0 R (lstnumber.-4.1) 1213 0 R (lstnumber.-5.1) 1585 0 R (lstnumber.-5.10) 1595 0 R (lstnumber.-5.11) 1596 0 R] +/Names [(lstnumber.-3.1) 1212 0 R (lstnumber.-3.2) 1213 0 R (lstnumber.-4.1) 1226 0 R (lstnumber.-5.1) 1598 0 R (lstnumber.-5.10) 1608 0 R (lstnumber.-5.11) 1609 0 R] /Limits [(lstnumber.-3.1) (lstnumber.-5.11)] >> -% 1865 0 obj +% 1882 0 obj << -/Names [(lstnumber.-5.12) 1597 0 R (lstnumber.-5.13) 1598 0 R (lstnumber.-5.14) 1599 0 R (lstnumber.-5.15) 1600 0 R (lstnumber.-5.16) 1601 0 R (lstnumber.-5.17) 1602 0 R] +/Names [(lstnumber.-5.12) 1610 0 R (lstnumber.-5.13) 1611 0 R (lstnumber.-5.14) 1612 0 R (lstnumber.-5.15) 1613 0 R (lstnumber.-5.16) 1614 0 R (lstnumber.-5.17) 1615 0 R] /Limits [(lstnumber.-5.12) (lstnumber.-5.17)] >> -% 1866 0 obj +% 1883 0 obj << -/Names [(lstnumber.-5.18) 1603 0 R (lstnumber.-5.19) 1604 0 R (lstnumber.-5.2) 1587 0 R (lstnumber.-5.20) 1605 0 R (lstnumber.-5.21) 1606 0 R (lstnumber.-5.22) 1607 0 R] +/Names [(lstnumber.-5.18) 1616 0 R (lstnumber.-5.19) 1617 0 R (lstnumber.-5.2) 1600 0 R (lstnumber.-5.20) 1618 0 R (lstnumber.-5.21) 1619 0 R (lstnumber.-5.22) 1620 0 R] /Limits [(lstnumber.-5.18) (lstnumber.-5.22)] >> -% 1867 0 obj +% 1884 0 obj << -/Names [(lstnumber.-5.23) 1608 0 R (lstnumber.-5.24) 1609 0 R (lstnumber.-5.3) 1588 0 R (lstnumber.-5.4) 1589 0 R (lstnumber.-5.5) 1590 0 R (lstnumber.-5.6) 1591 0 R] +/Names [(lstnumber.-5.23) 1621 0 R (lstnumber.-5.24) 1622 0 R (lstnumber.-5.3) 1601 0 R (lstnumber.-5.4) 1602 0 R (lstnumber.-5.5) 1603 0 R (lstnumber.-5.6) 1604 0 R] /Limits [(lstnumber.-5.23) (lstnumber.-5.6)] >> -% 1868 0 obj +% 1885 0 obj << -/Names [(lstnumber.-5.7) 1592 0 R (lstnumber.-5.8) 1593 0 R (lstnumber.-5.9) 1594 0 R (lstnumber.-6.1) 1615 0 R (lstnumber.-7.1) 1621 0 R (lstnumber.-8.1) 1627 0 R] +/Names [(lstnumber.-5.7) 1605 0 R (lstnumber.-5.8) 1606 0 R (lstnumber.-5.9) 1607 0 R (lstnumber.-6.1) 1628 0 R (lstnumber.-7.1) 1634 0 R (lstnumber.-8.1) 1640 0 R] /Limits [(lstnumber.-5.7) (lstnumber.-8.1)] >> -% 1869 0 obj +% 1886 0 obj << -/Names [(lstnumber.-9.1) 1633 0 R (page.1) 548 0 R (page.10) 844 0 R (page.100) 1494 0 R (page.101) 1500 0 R (page.102) 1507 0 R] +/Names [(lstnumber.-9.1) 1646 0 R (page.1) 552 0 R (page.10) 853 0 R (page.100) 1501 0 R (page.101) 1507 0 R (page.102) 1513 0 R] /Limits [(lstnumber.-9.1) (page.102)] >> -% 1870 0 obj +% 1887 0 obj << -/Names [(page.103) 1511 0 R (page.104) 1516 0 R (page.105) 1520 0 R (page.106) 1524 0 R (page.107) 1528 0 R (page.108) 1532 0 R] +/Names [(page.103) 1520 0 R (page.104) 1525 0 R (page.105) 1529 0 R (page.106) 1533 0 R (page.107) 1537 0 R (page.108) 1541 0 R] /Limits [(page.103) (page.108)] >> -% 1871 0 obj +% 1888 0 obj << -/Names [(page.109) 1538 0 R (page.11) 856 0 R (page.110) 1545 0 R (page.111) 1552 0 R (page.112) 1558 0 R (page.113) 1564 0 R] +/Names [(page.109) 1545 0 R (page.11) 866 0 R (page.110) 1553 0 R (page.111) 1559 0 R (page.112) 1565 0 R (page.113) 1571 0 R] /Limits [(page.109) (page.113)] >> -% 1872 0 obj +% 1889 0 obj << -/Names [(page.114) 1569 0 R (page.115) 1576 0 R (page.116) 1583 0 R (page.117) 1613 0 R (page.118) 1619 0 R (page.119) 1625 0 R] +/Names [(page.114) 1577 0 R (page.115) 1582 0 R (page.116) 1590 0 R (page.117) 1596 0 R (page.118) 1626 0 R (page.119) 1632 0 R] /Limits [(page.114) (page.119)] >> -% 1873 0 obj -<< -/Names [(page.12) 868 0 R (page.120) 1631 0 R (page.121) 1637 0 R (page.122) 1643 0 R (page.123) 1650 0 R (page.124) 1658 0 R] -/Limits [(page.12) (page.124)] ->> -% 1874 0 obj -<< -/Names [(page.125) 1664 0 R (page.126) 1671 0 R (page.127) 1677 0 R (page.128) 1684 0 R (page.129) 1690 0 R (page.13) 872 0 R] -/Limits [(page.125) (page.13)] ->> -% 1875 0 obj -<< -/Names [(page.130) 1699 0 R (page.131) 1707 0 R (page.132) 1712 0 R (page.133) 1716 0 R (page.134) 1723 0 R (page.135) 1727 0 R] -/Limits [(page.130) (page.135)] ->> -% 1876 0 obj -<< -/Names [(page.136) 1734 0 R (page.137) 1746 0 R (page.138) 1751 0 R (page.139) 1755 0 R (page.14) 877 0 R (page.140) 1765 0 R] -/Limits [(page.136) (page.140)] ->> -% 1877 0 obj -<< -/Names [(page.15) 884 0 R (page.16) 892 0 R (page.17) 896 0 R (page.18) 901 0 R (page.19) 905 0 R (page.2) 558 0 R] -/Limits [(page.15) (page.2)] ->> -% 1878 0 obj -<< -/Names [(page.20) 911 0 R (page.21) 915 0 R (page.22) 920 0 R (page.23) 925 0 R (page.24) 934 0 R (page.25) 941 0 R] -/Limits [(page.20) (page.25)] ->> -% 1879 0 obj -<< -/Names [(page.26) 949 0 R (page.27) 953 0 R (page.28) 964 0 R (page.29) 970 0 R (page.3) 758 0 R (page.30) 980 0 R] -/Limits [(page.26) (page.30)] ->> -% 1880 0 obj -<< -/Names [(page.31) 985 0 R (page.32) 996 0 R (page.33) 1001 0 R (page.34) 1008 0 R (page.35) 1017 0 R (page.36) 1025 0 R] -/Limits [(page.31) (page.36)] ->> -% 1881 0 obj -<< -/Names [(page.37) 1033 0 R (page.38) 1039 0 R (page.39) 1046 0 R (page.4) 774 0 R (page.40) 1054 0 R (page.41) 1061 0 R] -/Limits [(page.37) (page.41)] ->> -% 1882 0 obj -<< -/Names [(page.42) 1068 0 R (page.43) 1079 0 R (page.44) 1095 0 R (page.45) 1101 0 R (page.46) 1112 0 R (page.47) 1119 0 R] -/Limits [(page.42) (page.47)] ->> -% 1883 0 obj -<< -/Names [(page.48) 1124 0 R (page.49) 1132 0 R (page.5) 786 0 R (page.50) 1143 0 R (page.51) 1152 0 R (page.52) 1160 0 R] -/Limits [(page.48) (page.52)] ->> -% 1884 0 obj -<< -/Names [(page.53) 1172 0 R (page.54) 1180 0 R (page.55) 1184 0 R (page.56) 1196 0 R (page.57) 1204 0 R (page.58) 1210 0 R] -/Limits [(page.53) (page.58)] ->> -% 1885 0 obj -<< -/Names [(page.59) 1219 0 R (page.6) 791 0 R (page.60) 1223 0 R (page.61) 1229 0 R (page.62) 1236 0 R (page.63) 1241 0 R] -/Limits [(page.59) (page.63)] ->> -% 1886 0 obj -<< -/Names [(page.64) 1251 0 R (page.65) 1256 0 R (page.66) 1265 0 R (page.67) 1272 0 R (page.68) 1278 0 R (page.69) 1284 0 R] -/Limits [(page.64) (page.69)] ->> -% 1887 0 obj -<< -/Names [(page.7) 805 0 R (page.70) 1288 0 R (page.71) 1296 0 R (page.72) 1306 0 R (page.73) 1310 0 R (page.74) 1326 0 R] -/Limits [(page.7) (page.74)] ->> endstream endobj -1942 0 obj +1960 0 obj << /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$) /Author()/Title()/Subject()/Creator(LaTeX with hyperref package)/Producer(pdfTeX-1.40.17)/Keywords() -/CreationDate (D:20171112160723Z) -/ModDate (D:20171112160723Z) +/CreationDate (D:20171214140205Z) +/ModDate (D:20171214140205Z) /Trapped /False /PTEX.Fullbanner (This is pdfTeX, Version 3.14159265-2.6-1.40.17 (TeX Live 2016) kpathsea version 6.2.2) >> endobj -1889 0 obj +1891 0 obj << /Type /ObjStm -/N 53 -/First 522 -/Length 8987 +/N 69 +/First 692 +/Length 11853 >> stream -1888 0 1890 169 1891 341 1892 511 1893 683 1894 853 1895 1041 1896 1247 1897 1448 1898 1646 -1899 1841 1900 2036 1901 2234 1902 2430 1903 2628 1904 2824 1905 3022 1906 3218 1907 3416 1908 3612 -1909 3810 1910 4005 1911 4200 1912 4398 1913 4590 1914 4772 1915 4961 1916 5178 1917 5421 1918 5630 -1919 5807 1920 5978 1921 6105 1922 6218 1923 6329 1924 6440 1925 6556 1926 6676 1927 6802 1928 6920 -1929 7032 1930 7143 1931 7254 1932 7368 1933 7487 1934 7606 1935 7722 1936 7805 1937 7925 1938 8047 -1939 8133 1940 8217 1941 8252 -% 1888 0 obj -<< -/Names [(page.75) 1330 0 R (page.76) 1343 0 R (page.77) 1349 0 R (page.78) 1356 0 R (page.79) 1362 0 R (page.8) 827 0 R] -/Limits [(page.75) (page.8)] ->> +1890 0 1892 177 1893 354 1894 534 1895 712 1896 883 1897 1048 1898 1214 1899 1380 1900 1549 +1901 1721 1902 1891 1903 2063 1904 2233 1905 2405 1906 2575 1907 2747 1908 2917 1909 3089 1910 3258 +1911 3427 1912 3605 1913 3811 1914 4015 1915 4215 1916 4411 1917 4609 1918 4805 1919 5003 1920 5199 +1921 5397 1922 5592 1923 5787 1924 5985 1925 6181 1926 6379 1927 6575 1928 6773 1929 6969 1930 7167 +1931 7351 1932 7533 1933 7735 1934 7964 1935 8199 1936 8379 1937 8553 1938 8725 1939 8795 1940 8908 +1941 9019 1942 9130 1943 9246 1944 9366 1945 9492 1946 9610 1947 9722 1948 9833 1949 9943 1950 10058 +1951 10176 1952 10295 1953 10410 1954 10502 1955 10622 1956 10743 1957 10829 1958 10913 1959 10948 % 1890 0 obj << -/Names [(page.80) 1367 0 R (page.81) 1376 0 R (page.82) 1382 0 R (page.83) 1386 0 R (page.84) 1391 0 R (page.85) 1395 0 R] -/Limits [(page.80) (page.85)] ->> -% 1891 0 obj -<< -/Names [(page.86) 1403 0 R (page.87) 1408 0 R (page.88) 1414 0 R (page.89) 1420 0 R (page.9) 838 0 R (page.90) 1426 0 R] -/Limits [(page.86) (page.90)] +/Names [(page.12) 877 0 R (page.120) 1638 0 R (page.121) 1644 0 R (page.122) 1651 0 R (page.123) 1656 0 R (page.124) 1664 0 R] +/Limits [(page.12) (page.124)] >> % 1892 0 obj << -/Names [(page.91) 1432 0 R (page.92) 1440 0 R (page.93) 1448 0 R (page.94) 1452 0 R (page.95) 1462 0 R (page.96) 1466 0 R] -/Limits [(page.91) (page.96)] +/Names [(page.125) 1671 0 R (page.126) 1677 0 R (page.127) 1684 0 R (page.128) 1691 0 R (page.129) 1697 0 R (page.13) 881 0 R] +/Limits [(page.125) (page.13)] >> % 1893 0 obj << -/Names [(page.97) 1470 0 R (page.98) 1484 0 R (page.99) 1488 0 R (page.i) 609 0 R (page.ii) 662 0 R (page.iii) 706 0 R] -/Limits [(page.97) (page.iii)] +/Names [(page.130) 1703 0 R (page.131) 1712 0 R (page.132) 1716 0 R (page.133) 1724 0 R (page.134) 1730 0 R (page.135) 1734 0 R] +/Limits [(page.130) (page.135)] >> % 1894 0 obj << -/Names [(page.iv) 711 0 R (precdata) 942 0 R (section*.1) 610 0 R (section*.10) 79 0 R (section*.100) 497 0 R (section*.101) 501 0 R] -/Limits [(page.iv) (section*.101)] +/Names [(page.136) 1740 0 R (page.137) 1744 0 R (page.138) 1751 0 R (page.139) 1763 0 R (page.14) 886 0 R (page.140) 1770 0 R] +/Limits [(page.136) (page.140)] >> % 1895 0 obj << -/Names [(section*.102) 505 0 R (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] -/Limits [(section*.102) (section*.107)] +/Names [(page.141) 1774 0 R (page.142) 1782 0 R (page.15) 894 0 R (page.16) 902 0 R (page.17) 906 0 R (page.18) 911 0 R] +/Limits [(page.141) (page.18)] >> % 1896 0 obj << -/Names [(section*.108) 533 0 R (section*.109) 541 0 R (section*.11) 95 0 R (section*.110) 1756 0 R (section*.12) 99 0 R (section*.13) 103 0 R] -/Limits [(section*.108) (section*.13)] +/Names [(page.19) 916 0 R (page.2) 562 0 R (page.20) 921 0 R (page.21) 925 0 R (page.22) 929 0 R (page.23) 935 0 R] +/Limits [(page.19) (page.23)] >> % 1897 0 obj << -/Names [(section*.14) 107 0 R (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] -/Limits [(section*.14) (section*.19)] +/Names [(page.24) 941 0 R (page.25) 947 0 R (page.26) 955 0 R (page.27) 962 0 R (page.28) 966 0 R (page.29) 977 0 R] +/Limits [(page.24) (page.29)] >> % 1898 0 obj << -/Names [(section*.2) 47 0 R (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] -/Limits [(section*.2) (section*.24)] +/Names [(page.3) 763 0 R (page.30) 983 0 R (page.31) 993 0 R (page.32) 999 0 R (page.33) 1009 0 R (page.34) 1015 0 R] +/Limits [(page.3) (page.34)] >> % 1899 0 obj << -/Names [(section*.25) 151 0 R (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] -/Limits [(section*.25) (section*.3)] +/Names [(page.35) 1022 0 R (page.36) 1030 0 R (page.37) 1038 0 R (page.38) 1047 0 R (page.39) 1052 0 R (page.4) 779 0 R] +/Limits [(page.35) (page.4)] >> % 1900 0 obj << -/Names [(section*.30) 183 0 R (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] -/Limits [(section*.30) (section*.35)] +/Names [(page.40) 1059 0 R (page.41) 1067 0 R (page.42) 1074 0 R (page.43) 1081 0 R (page.44) 1093 0 R (page.45) 1108 0 R] +/Limits [(page.40) (page.45)] >> % 1901 0 obj << -/Names [(section*.36) 220 0 R (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] -/Limits [(section*.36) (section*.40)] +/Names [(page.46) 1114 0 R (page.47) 1126 0 R (page.48) 1132 0 R (page.49) 1137 0 R (page.5) 791 0 R (page.50) 1146 0 R] +/Limits [(page.46) (page.50)] >> % 1902 0 obj << -/Names [(section*.41) 240 0 R (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] -/Limits [(section*.41) (section*.46)] +/Names [(page.51) 1156 0 R (page.52) 1165 0 R (page.53) 1173 0 R (page.54) 1185 0 R (page.55) 1193 0 R (page.56) 1198 0 R] +/Limits [(page.51) (page.56)] >> % 1903 0 obj << -/Names [(section*.47) 268 0 R (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] -/Limits [(section*.47) (section*.51)] +/Names [(page.57) 1209 0 R (page.58) 1217 0 R (page.59) 1223 0 R (page.6) 796 0 R (page.60) 1233 0 R (page.61) 1237 0 R] +/Limits [(page.57) (page.61)] >> % 1904 0 obj << -/Names [(section*.52) 292 0 R (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] -/Limits [(section*.52) (section*.57)] +/Names [(page.62) 1243 0 R (page.63) 1249 0 R (page.64) 1254 0 R (page.65) 1264 0 R (page.66) 1269 0 R (page.67) 1278 0 R] +/Limits [(page.62) (page.67)] >> % 1905 0 obj << -/Names [(section*.58) 316 0 R (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] -/Limits [(section*.58) (section*.62)] +/Names [(page.68) 1286 0 R (page.69) 1291 0 R (page.7) 810 0 R (page.70) 1297 0 R (page.71) 1301 0 R (page.72) 1309 0 R] +/Limits [(page.68) (page.72)] >> % 1906 0 obj << -/Names [(section*.63) 336 0 R (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] -/Limits [(section*.63) (section*.68)] +/Names [(page.73) 1319 0 R (page.74) 1324 0 R (page.75) 1339 0 R (page.76) 1344 0 R (page.77) 1356 0 R (page.78) 1362 0 R] +/Limits [(page.73) (page.78)] >> % 1907 0 obj << -/Names [(section*.69) 360 0 R (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] -/Limits [(section*.69) (section*.73)] +/Names [(page.79) 1369 0 R (page.8) 832 0 R (page.80) 1376 0 R (page.81) 1380 0 R (page.82) 1389 0 R (page.83) 1395 0 R] +/Limits [(page.79) (page.83)] >> % 1908 0 obj << -/Names [(section*.74) 380 0 R (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] -/Limits [(section*.74) (section*.79)] +/Names [(page.84) 1399 0 R (page.85) 1404 0 R (page.86) 1409 0 R (page.87) 1416 0 R (page.88) 1421 0 R (page.89) 1427 0 R] +/Limits [(page.84) (page.89)] >> % 1909 0 obj << -/Names [(section*.8) 71 0 R (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] -/Limits [(section*.8) (section*.84)] +/Names [(page.9) 843 0 R (page.90) 1433 0 R (page.91) 1439 0 R (page.92) 1446 0 R (page.93) 1454 0 R (page.94) 1461 0 R] +/Limits [(page.9) (page.94)] >> % 1910 0 obj << -/Names [(section*.85) 429 0 R (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] -/Limits [(section*.85) (section*.9)] +/Names [(page.95) 1465 0 R (page.96) 1475 0 R (page.97) 1479 0 R (page.98) 1484 0 R (page.99) 1497 0 R (page.i) 613 0 R] +/Limits [(page.95) (page.i)] >> % 1911 0 obj << -/Names [(section*.90) 449 0 R (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] -/Limits [(section*.90) (section*.95)] +/Names [(page.ii) 666 0 R (page.iii) 711 0 R (page.iv) 716 0 R (precdata) 956 0 R (section*.1) 614 0 R (section*.10) 79 0 R] +/Limits [(page.ii) (section*.10)] >> % 1912 0 obj << -/Names [(section*.96) 477 0 R (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] -/Limits [(section*.96) (section.10)] +/Names [(section*.100) 497 0 R (section*.101) 501 0 R (section*.102) 505 0 R (section*.103) 509 0 R (section*.104) 517 0 R (section*.105) 521 0 R] +/Limits [(section*.100) (section*.105)] >> % 1913 0 obj << -/Names [(section.11) 537 0 R (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] -/Limits [(section.11) (section.6)] +/Names [(section*.106) 525 0 R (section*.107) 529 0 R (section*.108) 533 0 R (section*.109) 537 0 R (section*.11) 83 0 R (section*.110) 545 0 R] +/Limits [(section*.106) (section*.110)] >> % 1914 0 obj << -/Names [(section.7) 392 0 R (section.8) 461 0 R (section.9) 481 0 R (spbasedata) 886 0 R (spdata) 885 0 R (subsection.2.1) 15 0 R] -/Limits [(section.7) (subsection.2.1)] +/Names [(section*.111) 1775 0 R (section*.12) 99 0 R (section*.13) 103 0 R (section*.14) 107 0 R (section*.15) 111 0 R (section*.16) 115 0 R] +/Limits [(section*.111) (section*.16)] >> % 1915 0 obj << -/Names [(subsection.2.2) 19 0 R (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] -/Limits [(subsection.2.2) (subsection.3.3)] +/Names [(section*.17) 119 0 R (section*.18) 123 0 R (section*.19) 127 0 R (section*.2) 47 0 R (section*.20) 131 0 R (section*.21) 135 0 R] +/Limits [(section*.17) (section*.21)] >> % 1916 0 obj << -/Names [(subsection.3.4) 195 0 R (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] -/Limits [(subsection.3.4) (subsubsection.3.2.1)] +/Names [(section*.22) 139 0 R (section*.23) 143 0 R (section*.24) 147 0 R (section*.25) 151 0 R (section*.26) 155 0 R (section*.27) 159 0 R] +/Limits [(section*.22) (section*.27)] >> % 1917 0 obj << -/Names [(subsubsection.3.2.2) 163 0 R (subsubsection.3.3.1) 171 0 R (table.1) 935 0 R (table.10) 1062 0 R (table.11) 1070 0 R (table.12) 1083 0 R] -/Limits [(subsubsection.3.2.2) (table.12)] +/Names [(section*.28) 163 0 R (section*.29) 179 0 R (section*.3) 51 0 R (section*.30) 183 0 R (section*.31) 187 0 R (section*.32) 191 0 R] +/Limits [(section*.28) (section*.32)] >> % 1918 0 obj << -/Names [(table.13) 1102 0 R (table.14) 1133 0 R (table.15) 1161 0 R (table.16) 1197 0 R (table.17) 1211 0 R (table.2) 981 0 R] -/Limits [(table.13) (table.2)] +/Names [(section*.33) 195 0 R (section*.34) 212 0 R (section*.35) 216 0 R (section*.36) 220 0 R (section*.37) 224 0 R (section*.38) 228 0 R] +/Limits [(section*.33) (section*.38)] >> % 1919 0 obj << -/Names [(table.3) 997 0 R (table.4) 1009 0 R (table.5) 1018 0 R (table.6) 1026 0 R (table.7) 1034 0 R (table.8) 1047 0 R] -/Limits [(table.3) (table.8)] +/Names [(section*.39) 232 0 R (section*.4) 55 0 R (section*.40) 236 0 R (section*.41) 240 0 R (section*.42) 244 0 R (section*.43) 248 0 R] +/Limits [(section*.39) (section*.43)] >> % 1920 0 obj << -/Names [(table.9) 1055 0 R (title.0) 3 0 R (vbasedata) 927 0 R (vdata) 926 0 R] -/Limits [(table.9) (vdata)] +/Names [(section*.44) 252 0 R (section*.45) 256 0 R (section*.46) 260 0 R (section*.47) 268 0 R (section*.48) 272 0 R (section*.49) 276 0 R] +/Limits [(section*.44) (section*.49)] >> % 1921 0 obj << -/Kids [1833 0 R 1834 0 R 1835 0 R 1836 0 R 1837 0 R 1838 0 R] -/Limits [(Doc-Start) (Item.18)] +/Names [(section*.5) 59 0 R (section*.50) 280 0 R (section*.51) 288 0 R (section*.52) 292 0 R (section*.53) 296 0 R (section*.54) 300 0 R] +/Limits [(section*.5) (section*.54)] >> % 1922 0 obj << -/Kids [1839 0 R 1840 0 R 1841 0 R 1842 0 R 1843 0 R 1844 0 R] -/Limits [(Item.19) (Item.50)] +/Names [(section*.55) 304 0 R (section*.56) 308 0 R (section*.57) 312 0 R (section*.58) 316 0 R (section*.59) 320 0 R (section*.6) 63 0 R] +/Limits [(section*.55) (section*.6)] >> % 1923 0 obj << -/Kids [1845 0 R 1846 0 R 1847 0 R 1848 0 R 1849 0 R 1850 0 R] -/Limits [(Item.51) (Item.83)] +/Names [(section*.60) 324 0 R (section*.61) 328 0 R (section*.62) 332 0 R (section*.63) 336 0 R (section*.64) 340 0 R (section*.65) 344 0 R] +/Limits [(section*.60) (section*.65)] >> % 1924 0 obj << -/Kids [1851 0 R 1852 0 R 1853 0 R 1854 0 R 1855 0 R 1856 0 R] -/Limits [(Item.84) (cite.sblas97)] +/Names [(section*.66) 348 0 R (section*.67) 352 0 R (section*.68) 356 0 R (section*.69) 360 0 R (section*.7) 67 0 R (section*.70) 364 0 R] +/Limits [(section*.66) (section*.70)] >> % 1925 0 obj << -/Kids [1857 0 R 1858 0 R 1859 0 R 1860 0 R 1861 0 R 1862 0 R] -/Limits [(descdata) (lstnumber.-13.1)] +/Names [(section*.71) 368 0 R (section*.72) 372 0 R (section*.73) 376 0 R (section*.74) 380 0 R (section*.75) 384 0 R (section*.76) 388 0 R] +/Limits [(section*.71) (section*.76)] >> % 1926 0 obj << -/Kids [1863 0 R 1864 0 R 1865 0 R 1866 0 R 1867 0 R 1868 0 R] -/Limits [(lstnumber.-14.1) (lstnumber.-8.1)] +/Names [(section*.77) 392 0 R (section*.78) 400 0 R (section*.79) 405 0 R (section*.8) 71 0 R (section*.80) 409 0 R (section*.81) 413 0 R] +/Limits [(section*.77) (section*.81)] >> % 1927 0 obj << -/Kids [1869 0 R 1870 0 R 1871 0 R 1872 0 R 1873 0 R 1874 0 R] -/Limits [(lstnumber.-9.1) (page.13)] +/Names [(section*.82) 417 0 R (section*.83) 421 0 R (section*.84) 425 0 R (section*.85) 429 0 R (section*.86) 433 0 R (section*.87) 437 0 R] +/Limits [(section*.82) (section*.87)] >> % 1928 0 obj << -/Kids [1875 0 R 1876 0 R 1877 0 R 1878 0 R 1879 0 R 1880 0 R] -/Limits [(page.130) (page.36)] +/Names [(section*.88) 441 0 R (section*.89) 445 0 R (section*.9) 75 0 R (section*.90) 449 0 R (section*.91) 453 0 R (section*.92) 457 0 R] +/Limits [(section*.88) (section*.92)] >> % 1929 0 obj << -/Kids [1881 0 R 1882 0 R 1883 0 R 1884 0 R 1885 0 R 1886 0 R] -/Limits [(page.37) (page.69)] +/Names [(section*.93) 461 0 R (section*.94) 469 0 R (section*.95) 473 0 R (section*.96) 477 0 R (section*.97) 481 0 R (section*.98) 489 0 R] +/Limits [(section*.93) (section*.98)] >> % 1930 0 obj << -/Kids [1887 0 R 1888 0 R 1890 0 R 1891 0 R 1892 0 R 1893 0 R] -/Limits [(page.7) (page.iii)] +/Names [(section*.99) 493 0 R (section.1) 7 0 R (section.10) 513 0 R (section.11) 541 0 R (section.2) 11 0 R (section.3) 35 0 R] +/Limits [(section*.99) (section.3)] >> % 1931 0 obj << -/Kids [1894 0 R 1895 0 R 1896 0 R 1897 0 R 1898 0 R 1899 0 R] -/Limits [(page.iv) (section*.3)] +/Names [(section.4) 208 0 R (section.5) 264 0 R (section.6) 284 0 R (section.7) 396 0 R (section.8) 465 0 R (section.9) 485 0 R] +/Limits [(section.4) (section.9)] >> % 1932 0 obj << -/Kids [1900 0 R 1901 0 R 1902 0 R 1903 0 R 1904 0 R 1905 0 R] -/Limits [(section*.30) (section*.62)] +/Names [(spbasedata) 896 0 R (spdata) 895 0 R (subsection.2.1) 15 0 R (subsection.2.2) 19 0 R (subsection.2.3) 23 0 R (subsection.2.4) 31 0 R] +/Limits [(spbasedata) (subsection.2.4)] >> % 1933 0 obj << -/Kids [1906 0 R 1907 0 R 1908 0 R 1909 0 R 1910 0 R 1911 0 R] -/Limits [(section*.63) (section*.95)] +/Names [(subsection.3.1) 39 0 R (subsection.3.2) 91 0 R (subsection.3.3) 171 0 R (subsection.3.4) 199 0 R (subsection.3.5) 204 0 R (subsubsection.2.3.1) 27 0 R] +/Limits [(subsection.3.1) (subsubsection.2.3.1)] >> % 1934 0 obj << -/Kids [1912 0 R 1913 0 R 1914 0 R 1915 0 R 1916 0 R 1917 0 R] -/Limits [(section*.96) (table.12)] +/Names [(subsubsection.3.1.1) 43 0 R (subsubsection.3.1.2) 87 0 R (subsubsection.3.2.1) 95 0 R (subsubsection.3.2.2) 167 0 R (subsubsection.3.3.1) 175 0 R (table.1) 949 0 R] +/Limits [(subsubsection.3.1.1) (table.1)] >> % 1935 0 obj << -/Kids [1918 0 R 1919 0 R 1920 0 R] -/Limits [(table.13) (vdata)] +/Names [(table.10) 1075 0 R (table.11) 1083 0 R (table.12) 1097 0 R (table.13) 1115 0 R (table.14) 1147 0 R (table.15) 1174 0 R] +/Limits [(table.10) (table.15)] >> % 1936 0 obj << -/Kids [1921 0 R 1922 0 R 1923 0 R 1924 0 R 1925 0 R 1926 0 R] -/Limits [(Doc-Start) (lstnumber.-8.1)] +/Names [(table.16) 1210 0 R (table.17) 1224 0 R (table.2) 994 0 R (table.3) 1010 0 R (table.4) 1023 0 R (table.5) 1031 0 R] +/Limits [(table.16) (table.5)] >> % 1937 0 obj << -/Kids [1927 0 R 1928 0 R 1929 0 R 1930 0 R 1931 0 R 1932 0 R] -/Limits [(lstnumber.-9.1) (section*.62)] +/Names [(table.6) 1039 0 R (table.7) 1048 0 R (table.8) 1060 0 R (table.9) 1068 0 R (title.0) 3 0 R (vbasedata) 887 0 R] +/Limits [(table.6) (vbasedata)] >> % 1938 0 obj << -/Kids [1933 0 R 1934 0 R 1935 0 R] -/Limits [(section*.63) (vdata)] +/Names [(vdata) 936 0 R] +/Limits [(vdata) (vdata)] >> % 1939 0 obj << -/Kids [1936 0 R 1937 0 R 1938 0 R] -/Limits [(Doc-Start) (vdata)] +/Kids [1850 0 R 1851 0 R 1852 0 R 1853 0 R 1854 0 R 1855 0 R] +/Limits [(Doc-Start) (Item.18)] >> % 1940 0 obj << -/Dests 1939 0 R +/Kids [1856 0 R 1857 0 R 1858 0 R 1859 0 R 1860 0 R 1861 0 R] +/Limits [(Item.19) (Item.50)] >> % 1941 0 obj << +/Kids [1862 0 R 1863 0 R 1864 0 R 1865 0 R 1866 0 R 1867 0 R] +/Limits [(Item.51) (Item.83)] +>> +% 1942 0 obj +<< +/Kids [1868 0 R 1869 0 R 1870 0 R 1871 0 R 1872 0 R 1873 0 R] +/Limits [(Item.84) (cite.sblas97)] +>> +% 1943 0 obj +<< +/Kids [1874 0 R 1875 0 R 1876 0 R 1877 0 R 1878 0 R 1879 0 R] +/Limits [(descdata) (lstnumber.-13.1)] +>> +% 1944 0 obj +<< +/Kids [1880 0 R 1881 0 R 1882 0 R 1883 0 R 1884 0 R 1885 0 R] +/Limits [(lstnumber.-14.1) (lstnumber.-8.1)] +>> +% 1945 0 obj +<< +/Kids [1886 0 R 1887 0 R 1888 0 R 1889 0 R 1890 0 R 1892 0 R] +/Limits [(lstnumber.-9.1) (page.13)] +>> +% 1946 0 obj +<< +/Kids [1893 0 R 1894 0 R 1895 0 R 1896 0 R 1897 0 R 1898 0 R] +/Limits [(page.130) (page.34)] +>> +% 1947 0 obj +<< +/Kids [1899 0 R 1900 0 R 1901 0 R 1902 0 R 1903 0 R 1904 0 R] +/Limits [(page.35) (page.67)] +>> +% 1948 0 obj +<< +/Kids [1905 0 R 1906 0 R 1907 0 R 1908 0 R 1909 0 R 1910 0 R] +/Limits [(page.68) (page.i)] +>> +% 1949 0 obj +<< +/Kids [1911 0 R 1912 0 R 1913 0 R 1914 0 R 1915 0 R 1916 0 R] +/Limits [(page.ii) (section*.27)] +>> +% 1950 0 obj +<< +/Kids [1917 0 R 1918 0 R 1919 0 R 1920 0 R 1921 0 R 1922 0 R] +/Limits [(section*.28) (section*.6)] +>> +% 1951 0 obj +<< +/Kids [1923 0 R 1924 0 R 1925 0 R 1926 0 R 1927 0 R 1928 0 R] +/Limits [(section*.60) (section*.92)] +>> +% 1952 0 obj +<< +/Kids [1929 0 R 1930 0 R 1931 0 R 1932 0 R 1933 0 R 1934 0 R] +/Limits [(section*.93) (table.1)] +>> +% 1953 0 obj +<< +/Kids [1935 0 R 1936 0 R 1937 0 R 1938 0 R] +/Limits [(table.10) (vdata)] +>> +% 1954 0 obj +<< +/Kids [1939 0 R 1940 0 R 1941 0 R 1942 0 R 1943 0 R 1944 0 R] +/Limits [(Doc-Start) (lstnumber.-8.1)] +>> +% 1955 0 obj +<< +/Kids [1945 0 R 1946 0 R 1947 0 R 1948 0 R 1949 0 R 1950 0 R] +/Limits [(lstnumber.-9.1) (section*.6)] +>> +% 1956 0 obj +<< +/Kids [1951 0 R 1952 0 R 1953 0 R] +/Limits [(section*.60) (vdata)] +>> +% 1957 0 obj +<< +/Kids [1954 0 R 1955 0 R 1956 0 R] +/Limits [(Doc-Start) (vdata)] +>> +% 1958 0 obj +<< +/Dests 1957 0 R +>> +% 1959 0 obj +<< /Type /Catalog -/Pages 1830 0 R -/Outlines 1831 0 R -/Names 1940 0 R +/Pages 1847 0 R +/Outlines 1848 0 R +/Names 1958 0 R /URI (http://ce.uniroma2.it/psblas) /PageMode/UseOutlines/PageLabels<>2<>6<>]>> -/OpenAction 544 0 R +/OpenAction 548 0 R >> endstream endobj -1943 0 obj +1961 0 obj << /Type /XRef -/Index [0 1944] -/Size 1944 +/Index [0 1962] +/Size 1962 /W [1 3 1] -/Root 1941 0 R -/Info 1942 0 R -/ID [ ] -/Length 9720 +/Root 1959 0 R +/Info 1960 0 R +/ID [ ] +/Length 9810 >> stream -ÿ”J(,Ã%(+Ã/(*Ã7()ÃC((  -ÃL('  6(& 6(%6($6(#61("62(!63( 64(68(69( 6:(!"6>(#$6?(%&6@('(6A()*6H(+,6O(-.6P(/06Q(126R(346W(566X(786Y(9:6](;<6^(=>6_( ?@6c( AB‹( CD‹( -EF‹( GH‹ (IJ‹ -(KL‹(MN‹(OP‹(QR‹(ST‹(UV‹(WX‹!(YZ‹"$c[\‹'$b]^‹($a_`‹)$`ab‹0$_cËЋ4$^ËË‹>$]ËË‹O$\ËË‹]$[ËËò$ZË Ë -ò $YË Ë ò$XË Ëò$WËËò'$VËËò/$UËËò6$TËËò=$SËËòF$RËËòZ$QËËY $PËËY$OËË Y*$NË!Ë"YI$MË#Ë$YU$LË%Ë&Yb$KË'Ë(Yc$JË)Ë*È$IË+Ë,È#$HË-Ë.È*$GË/Ë0È/$FË1Ë2È5$EË3Ë4È@$DË5Ë6ÈI$CË7Ë8È\$BË9Ë:9$AË;Ë<9 $@Ë=Ë>9$?Ë?Ë@9$>ËAËB9&$=ËCËD9,$<ËEËF90$;ËGËH95$:ËIËJ9?$9ËKËL9D$8ËMËN9J$7ËOËP9P$6ËQËR9V$5ËSËT9\$4ËUËV9c$3ËWËX£$2ËYËZ£$1Ë[Ë\£$0Ë]Ë^£'$/Ë_Ë`£+$.ËaËb£1$-Ëc”kv£7$,””£>$+””£B$*””£F$)””£J$(” ” -£N$'” ” £R$&” ”£V$%””£\$$””£b$#”” $"”” -$!”” $ ”” $”” $”” >$””  D$”!”" J$”#”$ P$”%”& V$”'”( [$”)”* b$”+”,u$”-”.u $”/”0u$”1”2u$”3”4u$”5”6u$$”7”8u-$”9”:u5$”;”<u:$”=”>u>$ ”?”@uD$ ”A”BuH$ ”C”DuN$ -”E”F”G”K%”H”Iá<áJá;áBáN”N”L'é”M”P”Q”R”S”T”U”V”W”X”Y”Z”[”\”]”^”_”`”a”b”ccccccccccc c -c c c cccccccccccccc”O(rcc¯cc c!c"c#c$c%c&c'c(c)c*c+c,c-c.c/c0c1c2c3c4c5c6c7c8c9c:c;c<c=c>c?c@cAcBcCcDcEcFcGcHcIcJcKcLcPcNc‰vcMcQcRcScTcUcVcWcXcYcZc[c\c]c^c_c`cacbccÃÃÃÃÃÃÃÃÃà à -à à à ÃÃÃÃÃÃÃÃcOÛÃ9¼ÃÃ\ÊÃÃÃÃÃÃà Ã!Ã"Ã#Ã$Ã&Ã]UáIáOááubáááááááÃ,Ã-Ã.”ÞÃ3Ã1Ã'~×á>Ã0Ã(Ã)Ã*Ã+™”áÃ4Ã5Ã:Ã2¥7Ã6áKáDá@áGáCÃ8áEÃ9áÃ?Ã@Ý'ÃDÃ;È ÃAÃBÃ<Ã=Ã>ááÃFÃGÃIÃEãÑÃHÃWÃUÃJùcÃKá?ÃMÃNÃOÃPÃQÃRÃSÃT66ÃVrÃXÃYÃZÃ[Ã\Ã]Ã^Ã_Ã`ÃaÃbÃc666áLáP}m666jŠ66 6 -6 6 6 6666‡÷6666#6©+6666666 6!6"6,6$Û6%6&6'6(6)6*6+6.6/656-×k606;66ëö67áQ6B6<ý -6=6D6E6F6L6Cã6G6I6J6Ká 6S6M8ì6N6Z6THœ6U6V6`6[Yâ6\‹6al76báR«?‹‹Ÿç‹‹ ‹¯¤‹‹‹‹ ‹ ‹‹‹Ýó‹‹‹‹‹‹‹#‹ô5‹ ‹?‹%‹.‹,‹$‹&‹*áM‹+áS‹1‹-¶‹/‹5‹2!z‹3‹7‹8‹9‹:‹;‹<‹B‹@‹6"S‹=‹C‹D‹F‹A?(‹E‹H‹I‹J‹K‹L‹M‹Q‹GIÇ‹N‹P‹T‹RhÖ‹SáT‹V‹W‹X‹Y‹Z‹[‹_‹Uk‚‹\‹^‹b‹`Œž‹aòòòò‹cKòòùGòò ò -òòÕïò ò òòòòòîâòòòòòòò hòòáUò!ò&;ò ò#ò$ò%ò)ò"(éò&ò(ò+ò,ò-ò1ò*Cœò.ò0ò3ò4ò8ò2[ëò5ò7ò:ò;ò?ò9q´ò<áHò>òAòBòCòDòMòKò@‡„òEòGòHòIòJáVòNòOòPòQòRòSòTòVòL¤aòUòXò^ò\òW¿ÝòYò[ò_ò`òaòbòcYYò]ÚYPÊYYYY*ðYY Y Y=dY -YYYYYY @,YYYYYáWi’YY!Y\ÄYY YYYYY$Y"xÊY#áFY&Y'Y(Y/Y%„ñY)Y+Y,Y-Y.Y1ÍmY2Y3Y8Y0¦PY4Y5Y6Y7YBY;Y9½wY:YCY<Ë×YAáXY=Y>Y?Y@YEYFYGYNYDÜùYHYJYKYLYMYQYOÌYPYSY[YYYR¸YTYVYWYXY\Y]Y_YZ&pY^ÈY`7YašZÈÈÈ{|ÈÈáYÈÈ -È•¦ÈÈ ÈÈ ½$È È ÈÈÈÈÈÈÈÇÅÈÈÈÈäÈÈÈÈÈ È!È%Èð–È"È$È'È(È+È&þxÈ)áZÈ-È0È, ‚È.È2È3È6È1‚È4È;È7+æÈ8È9È:È=È>ÈDÈ<2VÈ?ÈAÈBÈCÈFÈGÈLÈJÈEEªÈHÈWÈK_ÈMÈNÈOÈPÈQÈRÈSÈTÈUÈVá[ÈYÈZÈ]ÈXw È[9È^‘UÈ_È`ÈaÈbÈc99 ÕB9999ÃX99 -9 99 Ï¡9 99999ßu99999ó©9á\9 9 ‡9999"9#9$9'9! 9%9)9*9-9( '»9+919. 5+9/939692 BÕ949;97 \¥98999:á]9=9@9< _–9>9B9F9A v;9C9E9H9L9G ƒ?9I9K9N9R9M –ó9O9Q9T9X9S £Ø9U9W9Z9_9Y ·•9[9]9^á^9a£9` Æ¿9b££ ‘£££ -!££ £ -õ£ £ -£ £ £££££ -%±£££ -6 ££$£ -LÓ£££££££ £!£"£#á_£(£% -ha£&£.£) -iX£*£,£-£4£/ -S£0£2£3£;£5 -‘¯£6£8£9£:£?£< -¢ð£=£C£@ -«£Aá`£G£D -·¦£E£K£H -¼•£I£O£L -ž£M£S£P -È(£Q£Y£T -Ú-£U£W£X£_£Z -î¹£[£]£^áa £` £a£c  u   (?(@(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(ca+aaaaaaaaa a -a a a aaaaaaaaaaaaaaaaaaa a!a"a#a$a%a&a'a(a)a*a+a,a-a.a/a0a1a2a3a4ö7¢ +ÿ”L9;È(9:È299È:98ÈF97  +ÈO96  ; 95 ;94;93;92;391;490;:9/;;9.;<9-;@9, ;A9+!";B9*#$;F9)%&;H9('(;I9')*;P9&+,;Q9%-.;X9$/0;Y9#12;Z9"34;^9!56;`9 78;a99:9;<9=>9?@9AB9CD 9EF 9GH9IJ9KL9MN9OP9QR9ST9UV%9WX&9YZ'9[\(9 ]^.9 _`49 ab59 +c˹89 ËË?9ËËI9ËËZ9ËËó9Ë Ë +ó9Ë Ë ó9Ë Ëó9ËËó'9ËËó29ËËó:3cËËóA3bËËóH3aËËóQ3`ËË\3_ËË\3^ËË \3]Ë!Ë"\53\Ë#Ë$\T3[Ë%Ë&\`3ZË'Ë(Ë 3YË)Ë*Ë +3XË+Ë,Ë!3WË-Ë.Ë.3VË/Ë0Ë53UË1Ë2Ë:3TË3Ë4Ë@3SË5Ë6ËK3RË7Ë8ËT3QË9Ë:<3PË;Ë<<3OË=Ë><3NË?Ë@<3MËAËB<%3LËCËD<13KËEËF<73JËGËH<;3IËIËJ<@3HËKËLË_Ë`©23=ËaËb©63<Ëc”k©<3;””©B3:””©I39””©M38””©Q37” ” +©U36” ” ©Y35” ”©]34””©a33”” 32”” 31”” 30”” 3/”” 3.”” 3-”” '3,””  I3+”!”" O3*”#”$ U3)”%”& [3(”'”( a3'”)”*{3&”+”,{ 3%”-”.{3$”/”0{3#”1”2{3"”3”4{#3!”5”6{)3 ”7”8{/3”9”:{83”;”<{C3”=”>{H3”?”@{L3”A”B{R3”C”D{V3”E”F{\3”G”H”I”M$ü”J”KåJåXåIåPå\”P”N'â”O”R”S”T”U”V”W”X”Y”Z”[”\”]”^”_”`”a”b”cgggggggggg g +g g g ggggggggggggggg g”Q(kggõg!g"g#g$g%g&g'g(g)g*g+g,g-g.g/g0g1g2g3g4g5g6g7g8g9g:g;g<g=g>g?g@gAgBgCgDgEgFgGgHgIgJgKgLgMgNgRgPgˆgOgSgTgUgVgWgXgYgZg[g\g]g^g_g`gagbgcÈÈÈÈÈÈÈÈÈÈ È +È È È ÈÈÈÈÈÈÈÈÈÈÈgQÙÈ:ÈÈ]#ÈÈÈÈ È!È"È#È$È%È&È'È)È]®åWå]ååå å ååååååÈ/È0È1•7È6È4È*0åLÈ3È+È,È-È.™íåÈ7È8È=È5¥È9åYåRåNåUåQÈ;åSÈ<åÈBÈCÝ€ÈGÈ>ÈbÈDÈEÈ?È@ÈAååÈIÈJÈLÈHä*ÈKÈZÈXÈMù¼ÈNåMÈPÈQÈRÈSÈTÈUÈVÈW;;ÈYËÈ[È\È]È^È_È`ÈaÈbÈc;;;;;;åZå^p%; ;;ký; +; ; ;;;;;;;‰j;;;;;;+;,;);ªž;; ;!;";#;$;%;&;';(;5;*Å…;-;.;/;0;1;2;7;8;=;6Úî;9;C;>ïJ;?å_;J;Dÿy;E;G;L;M;N;U;KW;O;R;S;Tå;[;V=|;W;b;\Mæ;];_;c]˜‚ “èå` +¥J ´?ÇR!Ú $)"ø>#+,/*é-åaJ1290„36å[7<:)Å;@=,÷>BCDEFGMKA-ÑHNOQLJÎPSTUVWX\RUiY[åb_]t„^abcóóóó`w1óóääó óÁ¾óó ó ó óó +ÄlóóóóóóóàYóóóóóó!óù<óó åcó#ó$ó%ó)ó"Íó&ó(ó,ó*0Áó+ó.ó/ó0ó4ó-3nó1ó3ó6ó7ó8ó<ó5N ó9ó;ó>ó?óCó=f<ó@óBóEóFóJóD{þóGåVóI3óLóMóNóOóXóVóK‘åóPóRóSóTóUóYóZó[ó\ó]ó^ó_óaóW®¦ó`óc\\óbÊ3\\/·\\\\ \ +\ \ \•\ \\\\4@\\\\FÃ\3\\\\(\"\Ix\\\\ \!rÁ\)\,\#eð\*\+\$\%\&\'\/\-ù\.åT\1\2\3\:\0Ž'\4\6\7\8\9\<Ö\=\>\C\;¯¨\?\@\A\B\M\F\DÆÕ\E3\N\GÔò\L\H\I\J\K\P\Q\R\Y\Oæ \S\U\V\W\X\\\Z +ö\[\^ËË\]æ\_\a\b\c WËËËË[;ËË ËkÍË3Ë ËË …“ËËËËËŸ¶ËËËËÇTËËËËËËËË"ËÑüË Ë$Ë)Ë#î=Ë%Ë&Ë'Ë(Ë+Ë,Ë0Ë*úÕË-Ë/3Ë2Ë3Ë6Ë1 –Ë4Ë8Ë;Ë7¡Ë9Ë=Ë>ËAË<#¡Ë?ËFËB:úËCËDËEËHËIËOËGAnËJËLËMËNËQËRËWËUËPTÅËS3ËbËVn&ËXËYËZË[Ë\Ë]Ë^Ë_Ë`Ëa<<<Ëc†)< Ç°< <Ê<<<< < +< < <<<<Ó‹<<<<<ßÖ<<<<< <ï›<3<"<#<&©F©@ +¡S©A©C©D©E©J©G +²“©H3 +©N©K +»A©L©R©O +ÇO©P©V©S +Ì)©T©Z©W +Ò(©X©^©[ +×µ©\ ©_ +駩`©b©c3  Ä   #]      7Û  +    L@      a      u×   "  ‹   !3  $ % ( #  2 & D E F ) ¹v * + ,åK - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C L G Õç H J K R M ä¯ N P Q X S êb T V W ^ Y ðÿ Z \ ]3  b _ ùs `{{ c ûÏ{{{ +“{{ { 0ð{{ +{ {{{  E¤{{{{{ T.{{{{{ { bÛ{{{3{&{! sh{"{${%{*{' €É{({,{-{1{+ …Â{.{0{3{4{5{6{9{2 —›{7{<{: ¶{;{>{?{@{A{D{= º¥{B3{F{I{E ѹ{G{M{J Ýn{K{O{P{S{N áˆ{Q{W{T ìo{U{Y{Z{c{a{X ï{[{]{^{_{`åOåååå{b ªå3týååå UÒååå  gMå +å å ååå"å ‚ðåå!å#å$å%å&å'å(å)å*å+å,å-å.å/å0å1å2å3å4å5 aå6 ç¡å74¸å8\?å9få:»då;á×å<<å=fõå>†âå?¨½å@êfåA*,åBQ×åCoxåD¿;åEî²åF=åGMMåH33Å&33333î 9<9=9>9?9@9A9B9C9D9E9F9G9H9I9J9K9L9M9N9O9P9Q9R9S9T9U9V9W9X9Y9Z9[9\9]9^9_9`9a9b9cc&eccccccccc c +c c c ccccccccccccccccccc c!c"c#c$c%c&c'c(c)c*c+c,c-c.c/c0c1c2c3c4c5c6c7c8c9c:c;c<c=c>c?c@cAcBcCcD$0U endstream endobj startxref -1193890 +1201422 %%EOF diff --git a/docs/src/datastruct.tex b/docs/src/datastruct.tex index 17e7c237..361b07ac 100644 --- a/docs/src/datastruct.tex +++ b/docs/src/datastruct.tex @@ -105,12 +105,13 @@ processes with which it is necessary to communicate: \item Number of points to be sent; \item Indices of points to be sent; \end{enumerate} -The list may contain an arbitrary number of groups; its end is marked -by a -1.\\ -Specified as: an allocatable integer array of rank one. +% The list may contain an arbitrary number of groups; its end is marked +% by a -1.\\ +Specified as: a vector of integer type, see~\ref{sec:vecttype}. \item[{\bf ext\_index}] A list of element indices to be exchanged to implement the mapping between a base descriptor and a descriptor - with overlap. + with overlap. \\ +Specified as: a vector of integer type, see~\ref{sec:vecttype}. \item [{\bf ovrlap\_index}] A list of the overlap elements for the current process, organized in groups like the previous vector: \begin{enumerate} @@ -120,12 +121,12 @@ current process, organized in groups like the previous vector: \item Number of points to be sent; \item Indices of points to be sent; \end{enumerate} -The list may contain an arbitrary number of groups; its end is marked -by a -1.\\ -Specified as: an allocatable integer array of rank one. +% The list may contain an arbitrary number of groups; its end is marked +% by a -1.\\ +Specified as: a vector of integer type, see~\ref{sec:vecttype}. \item [{\bf ovr\_mst\_idx}] A list to retrieve the value of each overlap element from the respective master process.\\ -Specified as: an allocatable integer array of rank one. +Specified as: a vector of integer type, see~\ref{sec:vecttype}. \item [{\bf ovrlap\_elem}] For all overlap points belonging to th ecurrent process: \begin{enumerate} @@ -146,11 +147,11 @@ as follows: \begin{verbatim} type psb_desc_type class(psb_indx_map), allocatable :: indxmap - integer, allocatable :: halo_index(:) - integer, allocatable :: ext_index(:) - integer, allocatable :: ovrlap_index(:) + type(psb_i_vect_type) :: v_halo_index + type(psb_i_vect_type) :: v_ext_index + type(psb_i_vect_type) :: v_ovrlap_index + type(psb_i_vect_type) :: v_ovr_mst_idx integer, allocatable :: ovrlap_elem(:,:) - integer, allocatable :: ovr_mst_idx(:) integer, allocatable :: bnd_elem(:) end type psb_desc_type \end{verbatim} @@ -164,7 +165,6 @@ end type psb_desc_type \caption{\label{fig:desctype}The PSBLAS defined data type that contains the communication descriptor.} \end{figure} - A communication descriptor associated with a sparse matrix has a state, which can take the following values: \begin{description} @@ -353,6 +353,30 @@ Scope: {\bf local}.\\ \end{description} +\subsubsection*{CNV --- convert internal storage format} +\addcontentsline{toc}{paragraph}{CNV} + +\begin{verbatim} +call desc%cnv(mold) +\end{verbatim} + +\begin{description} +\item[Type:] Asynchronous. +\item[\bf On Entry] +\item[desc] the communication descriptor.\\ +Scope: {\bf local}.\\ +\item[mold] the desred integer storage format.\\ +Scope: {\bf local}.\\ +% Type: {\bf required}.\\ +% Intent: {\bf in}.\\ +Specified as: a object of type derived from (integer) \vbasedata. +\end{description} +The \verb|mold| arguments may be +employed to interface with special devices, such as GPUs and other +accelerators. + + + \subsubsection*{psb\_cd\_get\_large\_threshold --- Get threshold for index mapping switch} \addcontentsline{toc}{paragraph}{psb\_cd\_get\_large\_threshold} @@ -725,6 +749,9 @@ Type: optional. A variable of type \verb|psb_Tspmat_type|. \item[info] Return code. \end{description} +The \verb|mold| arguments may be +employed to interface with special devices, such as GPUs and other +accelerators. \subsubsection*{csclip --- Reduce to a submatrix} diff --git a/docs/src/precs.tex b/docs/src/precs.tex index 703f0a35..bfea0e1f 100644 --- a/docs/src/precs.tex +++ b/docs/src/precs.tex @@ -85,7 +85,7 @@ $ptype$ string as follows\footnote{The string is case-insensitive}: \addcontentsline{toc}{subsection}{prec\%build} \begin{verbatim} -call prec%build(a, desc_a, info,amold,vmold) +call prec%build(a, desc_a, info[,amold,vmold,imold]) \end{verbatim} \begin{description} @@ -121,7 +121,11 @@ Scope: {\bf local}.\\ Type: {\bf optional}.\\ Intent: {\bf in}.\\ Specified as: an object of a class derived from \vbasedata. - +\item[imold] The desired dynamic type for the internal integer vector storage.\\ +Scope: {\bf local}.\\ +Type: {\bf optional}.\\ +Intent: {\bf in}.\\ +Specified as: an object of a class derived from (integer) \vbasedata. \end{description} \begin{description} @@ -137,6 +141,9 @@ Type: {\bf required} \\ Intent: {\bf out}.\\ An integer value; 0 means no error has been detected. \end{description} +The \verb|amold|, \verb|vmold| and \verb|imold| arguments may be +employed to interface with special devices, such as GPUs and other +accelerators. diff --git a/docs/src/toolsrout.tex b/docs/src/toolsrout.tex index 7a6e63f5..a072baed 100644 --- a/docs/src/toolsrout.tex +++ b/docs/src/toolsrout.tex @@ -297,7 +297,7 @@ nor the end vertex belong to the current process. \addcontentsline{toc}{subsection}{psb\_cdasb} \begin{verbatim} -call psb_cdasb(desc_a, info) +call psb_cdasb(desc_a, info [, mold]) \end{verbatim} \begin{description} @@ -308,6 +308,11 @@ Scope:{\bf local}.\\ Type:{\bf required}.\\ Intent: {\bf inout}.\\ Specified as: a structured data of type \descdata. +\item[mold] The desired dynamic type for the internal index storage.\\ +Scope: {\bf local}.\\ +Type: {\bf optional}.\\ +Intent: {\bf in}.\\ +Specified as: a object of type derived from (integer) \vbasedata. \end{description} \begin{description} From 2cc244433e5d83af6137e8483fe1488cab39cea2 Mon Sep 17 00:00:00 2001 From: Salvatore Filippone Date: Thu, 14 Dec 2017 18:13:21 +0000 Subject: [PATCH 02/35] Delete obsolete file base/psblas/psb_sxdot.f90 --- base/psblas/psb_sxdot.f90 | 589 -------------------------------------- 1 file changed, 589 deletions(-) delete mode 100644 base/psblas/psb_sxdot.f90 diff --git a/base/psblas/psb_sxdot.f90 b/base/psblas/psb_sxdot.f90 deleted file mode 100644 index aafe474f..00000000 --- a/base/psblas/psb_sxdot.f90 +++ /dev/null @@ -1,589 +0,0 @@ -! -! 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. -! -! -! File: psb_sdot.f90 -! -! Function: psb_sdot -! psb_sdot forms the dot product of two distributed vectors, -! -! dot := sub( X )**T * sub( Y ) -! -! where sub( X ) denotes X(:,JX) -! -! sub( Y ) denotes Y(:,JY). -! -! Arguments: -! x(:,:) - real The input vector containing the entries of ( X ). -! y(:,:) - real The input vector containing the entries of ( Y ). -! desc_a - type(psb_desc_type). The communication descriptor. -! info - integer. Return code -! jx - integer(optional). The column offset for sub( X ). -! jy - integer(optional). The column offset for sub( Y ). -! -function psb_sxdot(x, y,desc_a, info, jx, jy) - use psb_desc_mod - use psb_check_mod - use psb_error_mod - use psb_penv_mod - implicit none - - real(psb_spk_), intent(in) :: x(:,:), y(:,:) - type(psb_desc_type), intent(in) :: desc_a - integer(psb_ipk_), intent(in), optional :: jx, jy - integer(psb_ipk_), intent(out) :: info - real(psb_dpk_) :: psb_sxdot - - ! locals - integer(psb_ipk_) :: ictxt, np, me, idx, ndm,& - & err_act, iix, jjx, ix, ijx, iy, ijy, iiy, jjy, i, m - real(psb_dpk_) :: dot_local - real(psb_dpk_) :: sxdot - character(len=20) :: name, ch_err - - name='psb_sdot' - if(psb_get_errstatus() /= 0) return - info=psb_success_ - call psb_erractionsave(err_act) - - ictxt=desc_a%get_context() - call psb_info(ictxt, me, np) - if (np == -ione) then - info = psb_err_context_error_ - call psb_errpush(info,name) - goto 9999 - endif - - ix = ione - if (present(jx)) then - ijx = jx - else - ijx = ione - endif - - iy = ione - if (present(jy)) then - ijy = jy - else - ijy = ione - endif - - if(ijx /= ijy) then - info=3050 - call psb_errpush(info,name) - goto 9999 - end if - - m = desc_a%get_global_rows() - - ! check vector correctness - call psb_chkvect(m,ione,size(x,1),ix,ijx,desc_a,info,iix,jjx) - if (info == psb_success_) & - & call psb_chkvect(m,ione,size(y,1),iy,ijy,desc_a,info,iiy,jjy) - if(info /= psb_success_) then - info=psb_err_from_subroutine_ - ch_err='psb_chkvect' - call psb_errpush(info,name,a_err=ch_err) - goto 9999 - end if - - if ((iix /= ione).or.(iiy /= ione)) then - info=psb_err_ix_n1_iy_n1_unsupported_ - call psb_errpush(info,name) - goto 9999 - end if - - if(m /= 0) then - if(desc_a%get_local_rows() > 0) then - dot_local = sxdot(desc_a%get_local_rows(),& - & x(iix,jjx),ione,y(iiy,jjy),ione) - ! adjust dot_local because overlapped elements are computed more than once - do i=1,size(desc_a%ovrlap_elem,1) - idx = desc_a%ovrlap_elem(i,1) - ndm = desc_a%ovrlap_elem(i,2) - dot_local = dot_local - (real(ndm-1)/real(ndm))*(x(idx,jjx)*y(idx,jjy)) - end do - else - dot_local=0.0 - end if - else - dot_local=0.0 - end if - - ! compute global sum - call psb_sum(ictxt, dot_local) - - psb_sxdot = dot_local - - call psb_erractionrestore(err_act) - return - -9999 continue - call psb_erractionrestore(err_act) - - if (err_act == psb_act_abort_) then - call psb_error(ictxt) - return - end if - return -end function psb_sxdot - - - - -!!$ -!!$ 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: -!!$ 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. -!!$ -!!$ -! -! Function: psb_sdotv -! psb_sdotv forms the dot product of two distributed vectors, -! -! dot := X**T * Y -! -! Arguments: -! x(:) - real The input vector containing the entries of X. -! y(:) - real The input vector containing the entries of Y. -! desc_a - type(psb_desc_type). The communication descriptor. -! info - integer. Return code -! -function psb_sxdotv(x, y,desc_a, info) - use psb_desc_mod - use psb_check_mod - use psb_error_mod - use psb_penv_mod - implicit none - - real(psb_spk_), intent(in) :: x(:), y(:) - type(psb_desc_type), intent(in) :: desc_a - integer(psb_ipk_), intent(out) :: info - real(psb_dpk_) :: psb_sxdotv - - ! locals - integer(psb_ipk_) :: ictxt, np, me, idx, ndm,& - & err_act, iix, jjx, ix, jx, iy, jy, iiy, jjy, i, m - real(psb_dpk_) :: dot_local - real(psb_dpk_) :: sxdot - character(len=20) :: name, ch_err - - name='psb_sdot' - if(psb_get_errstatus() /= 0) return - info=psb_success_ - call psb_erractionsave(err_act) - - ictxt=desc_a%get_context() - - call psb_info(ictxt, me, np) - if (np == -ione) then - info = psb_err_context_error_ - call psb_errpush(info,name) - goto 9999 - endif - - ix = ione - iy = ione - jx = ione - jy = ione - m = desc_a%get_global_rows() - - ! check vector correctness - call psb_chkvect(m,ione,size(x,1),ix,jx,desc_a,info,iix,jjx) - if (info == psb_success_) & - & call psb_chkvect(m,ione,size(y,1),iy,jy,desc_a,info,iiy,jjy) - if(info /= psb_success_) then - info=psb_err_from_subroutine_ - ch_err='psb_chkvect' - call psb_errpush(info,name,a_err=ch_err) - goto 9999 - end if - - if ((iix /= ione).or.(iiy /= ione)) then - info=psb_err_ix_n1_iy_n1_unsupported_ - call psb_errpush(info,name) - goto 9999 - end if - - if(m /= 0) then - if(desc_a%get_local_rows() > 0) then - dot_local = sxdot(desc_a%get_local_rows(),& - & x,ione,y,ione) - ! adjust dot_local because overlapped elements are computed more than once - do i=1,size(desc_a%ovrlap_elem,1) - idx = desc_a%ovrlap_elem(i,1) - ndm = desc_a%ovrlap_elem(i,2) - dot_local = dot_local - (real(ndm-1)/real(ndm))*(x(idx)*y(idx)) - end do - else - dot_local=0.0 - end if - else - dot_local=0.0 - end if - - ! compute global sum - call psb_sum(ictxt, dot_local) - - psb_sxdotv = dot_local - - call psb_erractionrestore(err_act) - return - -9999 continue - call psb_erractionrestore(err_act) - - if (err_act == psb_act_abort_) then - call psb_error(ictxt) - return - end if - return -end function psb_sxdotv - -function sxdot(n,x,ix,y,iy) - use psb_const_mod - real(psb_dpk_) :: sxdot - integer(psb_ipk_) :: n,ix,iy - real(psb_spk_) :: x(*),y(*) - real(psb_dpk_) :: tmp - integer(psb_ipk_) :: i - - if ((ix /= 1).or.(iy /= 1)) then - write(psb_err_unit,*) 'WARNING unimplemented case in SXDOT' - sxdot=dzero - return - end if - - tmp = dzero - do i=1, n - tmp = tmp + dble(x(i))*dble(y(i)) - end do - sxdot = tmp - -end function sxdot - - -!!$ -!!$ 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: -!!$ 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_sdotvs -! psb_sdotvs forms the dot product of two distributed vectors, -! -! dot := X**T * Y -! -! Arguments: -! res - real The result. -! x(:) - real The input vector containing the entries of X. -! y(:) - real The input vector containing the entries of Y. -! desc_a - type(psb_desc_type). The communication descriptor. -! info - integer. Return code -! -subroutine psb_sxdotvs(res, x, y,desc_a, info) - use psb_base_mod, psb_protect_name => psb_sxdotvs - implicit none - - real(psb_spk_), intent(in) :: x(:), y(:) - real(psb_dpk_), intent(out) :: res - type(psb_desc_type), intent(in) :: desc_a - integer(psb_ipk_), intent(out) :: info - - ! locals - integer(psb_ipk_) :: ictxt, np, me, idx, ndm,& - & err_act, iix, jjx, ix, iy, iiy, jjy, i, m - real(psb_dpk_) :: dot_local - real(psb_dpk_) :: sxdot - character(len=20) :: name, ch_err - - name='psb_sdot' - if(psb_get_errstatus() /= 0) return - info=psb_success_ - call psb_erractionsave(err_act) - - ictxt=desc_a%get_context() - - call psb_info(ictxt, me, np) - if (np == -ione) then - info = psb_err_context_error_ - call psb_errpush(info,name) - goto 9999 - endif - - ix = ione - iy = ione - m = desc_a%get_global_rows() - ! check vector correctness - call psb_chkvect(m,ione,size(x,1),ix,ix,desc_a,info,iix,jjx) - if (info == psb_success_) & - & call psb_chkvect(m,ione,size(y,1),iy,iy,desc_a,info,iiy,jjy) - if(info /= psb_success_) then - info=psb_err_from_subroutine_ - ch_err='psb_chkvect' - call psb_errpush(info,name,a_err=ch_err) - goto 9999 - end if - - if ((iix /= ione).or.(iiy /= ione)) then - info=psb_err_ix_n1_iy_n1_unsupported_ - call psb_errpush(info,name) - goto 9999 - end if - - if(m /= 0) then - if(desc_a%get_local_rows() > 0) then - dot_local = sxdot(desc_a%get_local_rows(),& - & x,ione,y,ione) - ! adjust dot_local because overlapped elements are computed more than once - do i=1,size(desc_a%ovrlap_elem,1) - idx = desc_a%ovrlap_elem(i,1) - ndm = desc_a%ovrlap_elem(i,2) - dot_local = dot_local - (real(ndm-1)/real(ndm))*(x(idx)*y(idx)) - end do - else - dot_local=0.0 - end if - else - dot_local=0.0 - end if - - ! compute global sum - call psb_sum(ictxt, dot_local) - - res = dot_local - - call psb_erractionrestore(err_act) - return - -9999 continue - call psb_erractionrestore(err_act) - - if (err_act == psb_act_abort_) then - call psb_error(ictxt) - return - end if - return -end subroutine psb_sxdotvs - - - - -!!$ -!!$ 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: -!!$ 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_smdots -! psb_smdots forms the dot product of multiple distributed vectors, -! -! res(i) := ( X(:,i) )**T * ( Y(:,i) ) -! -! Arguments: -! res(:) - real. The result. -! x(:,:) - real The input vector containing the entries of ( X ). -! y(:,:) - real The input vector containing the entries of ( Y ). -! desc_a - type(psb_desc_type). The communication descriptor. -! info - integer. Return code -! -subroutine psb_sxmdots(res, x, y, desc_a, info) - use psb_base_mod, psb_protect_name => psb_sxmdots - implicit none - - real(psb_spk_), intent(in) :: x(:,:), y(:,:) - real(psb_dpk_), intent(out) :: res(:) - type(psb_desc_type), intent(in) :: desc_a - integer(psb_ipk_), intent(out) :: info - - ! locals - integer(psb_ipk_) :: ictxt, np, me, idx, ndm,& - & err_act, iix, jjx, ix, iy, iiy, jjy, i, m, j, k - real(psb_dpk_),allocatable :: dot_local(:) - real(psb_dpk_) :: sxdot - character(len=20) :: name, ch_err - - name='psb_smdots' - if(psb_get_errstatus() /= 0) return - info=psb_success_ - call psb_erractionsave(err_act) - - ictxt=desc_a%get_context() - - call psb_info(ictxt, me, np) - if (np == -ione) then - info = psb_err_context_error_ - call psb_errpush(info,name) - goto 9999 - endif - - ix = ione - iy = ione - - m = desc_a%get_global_rows() - - ! check vector correctness - call psb_chkvect(m,ione,size(x,1),ix,ix,desc_a,info,iix,jjx) - if(info /= psb_success_) then - info=psb_err_from_subroutine_ - ch_err='psb_chkvect' - call psb_errpush(info,name,a_err=ch_err) - goto 9999 - end if - call psb_chkvect(m,ione,size(y,1),iy,iy,desc_a,info,iiy,jjy) - if(info /= psb_success_) then - info=psb_err_from_subroutine_ - ch_err='psb_chkvect' - call psb_errpush(info,name,a_err=ch_err) - goto 9999 - end if - - if ((ix /= ione).or.(iy /= ione)) then - info=psb_err_ix_n1_iy_n1_unsupported_ - call psb_errpush(info,name) - goto 9999 - end if - - k = min(size(x,2),size(y,2)) - allocate(dot_local(k)) - - if(m /= 0) then - if(desc_a%get_local_rows() > 0) then - do j=1,k - dot_local(j) = sxdot(desc_a%get_local_rows(),& - & x(1,j),ione,y(1,j),ione) - ! adjust dot_local because overlapped elements are computed more than once - end do - do i=1,size(desc_a%ovrlap_elem,1) - idx = desc_a%ovrlap_elem(i,1) - ndm = desc_a%ovrlap_elem(i,2) - dot_local(1:k) = dot_local(1:k) - (real(ndm-1)/real(ndm))*(x(idx,1:k)*y(idx,1:k)) - end do - else - dot_local(:)=0.0 - end if - else - dot_local(:)=0.0 - end if - - ! compute global sum - call psb_sum(ictxt, dot_local(1:k)) - - res(1:k) = dot_local(1:k) - - call psb_erractionrestore(err_act) - return - -9999 continue - call psb_erractionrestore(err_act) - - if (err_act == psb_act_abort_) then - call psb_error(ictxt) - return - end if - return -end subroutine psb_sxmdots From 390a7e2093a421cf28a82ae4d9e18db96df4d283 Mon Sep 17 00:00:00 2001 From: Salvatore Filippone Date: Thu, 11 Jan 2018 17:18:36 +0000 Subject: [PATCH 03/35] Fix matrix generation. --- test/kernel/pdgenspmv.f90 | 355 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 355 insertions(+) diff --git a/test/kernel/pdgenspmv.f90 b/test/kernel/pdgenspmv.f90 index e0d7c312..2a49d232 100644 --- a/test/kernel/pdgenspmv.f90 +++ b/test/kernel/pdgenspmv.f90 @@ -31,9 +31,364 @@ ! ! File: ppde.f90 ! +module psb_d_pde3d_mod + + + use psb_base_mod, only : psb_dpk_, psb_ipk_, psb_desc_type,& + & psb_dspmat_type, psb_d_vect_type, dzero,& + & psb_d_base_sparse_mat, psb_d_base_vect_type, psb_i_base_vect_type + + interface + function d_func_3d(x,y,z) result(val) + import :: psb_dpk_ + real(psb_dpk_), intent(in) :: x,y,z + real(psb_dpk_) :: val + end function d_func_3d + end interface + + interface psb_gen_pde3d + module procedure psb_d_gen_pde3d + end interface psb_gen_pde3d + + +contains + + function d_null_func_3d(x,y,z) result(val) + + real(psb_dpk_), intent(in) :: x,y,z + real(psb_dpk_) :: val + + val = dzero + + end function d_null_func_3d + + ! + ! subroutine to allocate and fill in the coefficient matrix and + ! the rhs. + ! + subroutine psb_d_gen_pde3d(ictxt,idim,a,bv,xv,desc_a,afmt,& + & a1,a2,a3,b1,b2,b3,c,g,info,f,amold,vmold,imold,nrl,iv) + use psb_base_mod + ! + ! Discretizes the partial differential equation + ! + ! a1 dd(u) a2 dd(u) a3 dd(u) b1 d(u) b2 d(u) b3 d(u) + ! - ------ - ------ - ------ + ----- + ------ + ------ + c u = f + ! dxdx dydy dzdz dx dy dz + ! + ! with Dirichlet boundary conditions + ! u = g + ! + ! on the unit cube 0<=x,y,z<=1. + ! + ! + ! Note that if b1=b2=b3=c=0., the PDE is the Laplace equation. + ! + implicit none + procedure(d_func_3d) :: b1,b2,b3,c,a1,a2,a3,g + integer(psb_ipk_) :: idim + type(psb_dspmat_type) :: a + type(psb_d_vect_type) :: xv,bv + type(psb_desc_type) :: desc_a + integer(psb_ipk_) :: ictxt, info + character(len=*) :: afmt + procedure(d_func_3d), optional :: f + class(psb_d_base_sparse_mat), optional :: amold + class(psb_d_base_vect_type), optional :: vmold + class(psb_i_base_vect_type), optional :: imold + integer(psb_ipk_), optional :: nrl,iv(:) + + ! Local variables. + + integer(psb_ipk_), parameter :: nb=20 + type(psb_d_csc_sparse_mat) :: acsc + type(psb_d_coo_sparse_mat) :: acoo + type(psb_d_csr_sparse_mat) :: acsr + real(psb_dpk_) :: zt(nb),x,y,z + integer(psb_ipk_) :: m,n,nnz,glob_row,nlr,i,ii,ib,k + integer(psb_ipk_) :: ix,iy,iz,ia,indx_owner + integer(psb_ipk_) :: np, iam, nr, nt + integer(psb_ipk_) :: icoeff + integer(psb_ipk_), allocatable :: irow(:),icol(:),myidx(:) + real(psb_dpk_), allocatable :: val(:) + ! deltah dimension of each grid cell + ! deltat discretization time + real(psb_dpk_) :: deltah, sqdeltah, deltah2 + real(psb_dpk_), parameter :: rhs=0.d0,one=1.d0,zero=0.d0 + real(psb_dpk_) :: t0, t1, t2, t3, tasb, talc, ttot, tgen, tcdasb + integer(psb_ipk_) :: err_act + procedure(d_func_3d), pointer :: f_ + character(len=20) :: name, ch_err,tmpfmt + + info = psb_success_ + name = 'create_matrix' + call psb_erractionsave(err_act) + + call psb_info(ictxt, iam, np) + + + if (present(f)) then + f_ => f + else + f_ => d_null_func_3d + end if + + deltah = 1.d0/(idim+2) + sqdeltah = deltah*deltah + deltah2 = 2.d0* deltah + + ! initialize array descriptor and sparse matrix storage. provide an + ! estimate of the number of non zeroes + + m = idim*idim*idim + n = m + nnz = ((n*9)/(np)) + if(iam == psb_root_) write(psb_out_unit,'("Generating Matrix (size=",i0,")...")')n + + if (.not.present(iv)) then + if (present(nrl)) then + nr = nrl + else + ! + ! Using a simple BLOCK distribution. + ! + nt = (m+np-1)/np + nr = max(0,min(nt,m-(iam*nt))) + end if + + nt = nr + call psb_sum(ictxt,nt) + if (nt /= m) then + write(psb_err_unit,*) iam, 'Initialization error ',nr,nt,m + info = -1 + call psb_barrier(ictxt) + call psb_abort(ictxt) + return + end if + else + if (size(iv) /= m) then + write(psb_err_unit,*) iam, 'Initialization error IV',size(iv),m + info = -1 + call psb_barrier(ictxt) + call psb_abort(ictxt) + return + end if + + end if + call psb_barrier(ictxt) + t0 = psb_wtime() + if (present(iv)) then + call psb_cdall(ictxt,desc_a,info,vg=iv) + else + call psb_cdall(ictxt,desc_a,info,nl=nr) + end if + + if (info == psb_success_) call psb_spall(a,desc_a,info,nnz=nnz) + ! define rhs from boundary conditions; also build initial guess + if (info == psb_success_) call psb_geall(xv,desc_a,info) + if (info == psb_success_) call psb_geall(bv,desc_a,info) + + call psb_barrier(ictxt) + talc = psb_wtime()-t0 + + if (info /= psb_success_) then + info=psb_err_from_subroutine_ + ch_err='allocation rout.' + call psb_errpush(info,name,a_err=ch_err) + goto 9999 + end if + + ! we build an auxiliary matrix consisting of one row at a + ! time; just a small matrix. might be extended to generate + ! a bunch of rows per call. + ! + allocate(val(20*nb),irow(20*nb),& + &icol(20*nb),stat=info) + if (info /= psb_success_ ) then + info=psb_err_alloc_dealloc_ + call psb_errpush(info,name) + goto 9999 + endif + + myidx = desc_a%get_global_indices() + nlr = size(myidx) + + ! loop over rows belonging to current process in a block + ! distribution. + + call psb_barrier(ictxt) + t1 = psb_wtime() + do ii=1, nlr,nb + ib = min(nb,nlr-ii+1) + icoeff = 1 + do k=1,ib + i=ii+k-1 + ! local matrix pointer + glob_row=myidx(i) + ! compute gridpoint coordinates + if (mod(glob_row,(idim*idim)) == 0) then + ix = glob_row/(idim*idim) + else + ix = glob_row/(idim*idim)+1 + endif + if (mod((glob_row-(ix-1)*idim*idim),idim) == 0) then + iy = (glob_row-(ix-1)*idim*idim)/idim + else + iy = (glob_row-(ix-1)*idim*idim)/idim+1 + endif + iz = glob_row-(ix-1)*idim*idim-(iy-1)*idim + ! x, y, x coordinates + x = (ix-1)*deltah + y = (iy-1)*deltah + z = (iz-1)*deltah + zt(k) = f_(x,y,z) + ! internal point: build discretization + ! + ! term depending on (x-1,y,z) + ! + val(icoeff) = -a1(x,y,z)/sqdeltah-b1(x,y,z)/deltah2 + if (ix == 1) then + zt(k) = g(dzero,y,z)*(-val(icoeff)) + zt(k) + else + icol(icoeff) = (ix-2)*idim*idim+(iy-1)*idim+(iz) + irow(icoeff) = glob_row + icoeff = icoeff+1 + endif + ! term depending on (x,y-1,z) + val(icoeff) = -a2(x,y,z)/sqdeltah-b2(x,y,z)/deltah2 + if (iy == 1) then + zt(k) = g(x,dzero,z)*(-val(icoeff)) + zt(k) + else + icol(icoeff) = (ix-1)*idim*idim+(iy-2)*idim+(iz) + irow(icoeff) = glob_row + icoeff = icoeff+1 + endif + ! term depending on (x,y,z-1) + val(icoeff)=-a3(x,y,z)/sqdeltah-b3(x,y,z)/deltah2 + if (iz == 1) then + zt(k) = g(x,y,dzero)*(-val(icoeff)) + zt(k) + else + icol(icoeff) = (ix-1)*idim*idim+(iy-1)*idim+(iz-1) + irow(icoeff) = glob_row + icoeff = icoeff+1 + endif + + ! term depending on (x,y,z) + val(icoeff)=2.d0*(a1(x,y,z)+a2(x,y,z)+a3(x,y,z))/sqdeltah & + & + c(x,y,z) + icol(icoeff) = (ix-1)*idim*idim+(iy-1)*idim+(iz) + irow(icoeff) = glob_row + icoeff = icoeff+1 + ! term depending on (x,y,z+1) + val(icoeff)=-a3(x,y,z)/sqdeltah+b3(x,y,z)/deltah2 + if (iz == idim) then + zt(k) = g(x,y,done)*(-val(icoeff)) + zt(k) + else + icol(icoeff) = (ix-1)*idim*idim+(iy-1)*idim+(iz+1) + irow(icoeff) = glob_row + icoeff = icoeff+1 + endif + ! term depending on (x,y+1,z) + val(icoeff)=-a2(x,y,z)/sqdeltah+b2(x,y,z)/deltah2 + if (iy == idim) then + zt(k) = g(x,done,z)*(-val(icoeff)) + zt(k) + else + icol(icoeff) = (ix-1)*idim*idim+(iy)*idim+(iz) + irow(icoeff) = glob_row + icoeff = icoeff+1 + endif + ! term depending on (x+1,y,z) + val(icoeff)=-a1(x,y,z)/sqdeltah+b1(x,y,z)/deltah2 + if (ix==idim) then + zt(k) = g(done,y,z)*(-val(icoeff)) + zt(k) + else + icol(icoeff) = (ix)*idim*idim+(iy-1)*idim+(iz) + irow(icoeff) = glob_row + icoeff = icoeff+1 + endif + + end do + call psb_spins(icoeff-1,irow,icol,val,a,desc_a,info) + if(info /= psb_success_) exit + call psb_geins(ib,myidx(ii:ii+ib-1),zt(1:ib),bv,desc_a,info) + if(info /= psb_success_) exit + zt(:)=0.d0 + call psb_geins(ib,myidx(ii:ii+ib-1),zt(1:ib),xv,desc_a,info) + if(info /= psb_success_) exit + end do + + tgen = psb_wtime()-t1 + if(info /= psb_success_) then + info=psb_err_from_subroutine_ + ch_err='insert rout.' + call psb_errpush(info,name,a_err=ch_err) + goto 9999 + end if + + deallocate(val,irow,icol) + + call psb_barrier(ictxt) + t1 = psb_wtime() + call psb_cdasb(desc_a,info,mold=imold) + tcdasb = psb_wtime()-t1 + call psb_barrier(ictxt) + t1 = psb_wtime() + if (info == psb_success_) then + if (present(amold)) then + call psb_spasb(a,desc_a,info,dupl=psb_dupl_err_,mold=amold) + else + call psb_spasb(a,desc_a,info,dupl=psb_dupl_err_,afmt=afmt) + end if + end if + call psb_barrier(ictxt) + if(info /= psb_success_) then + info=psb_err_from_subroutine_ + ch_err='asb rout.' + call psb_errpush(info,name,a_err=ch_err) + goto 9999 + end if + if (info == psb_success_) call psb_geasb(xv,desc_a,info,mold=vmold) + if (info == psb_success_) call psb_geasb(bv,desc_a,info,mold=vmold) + if(info /= psb_success_) then + info=psb_err_from_subroutine_ + ch_err='asb rout.' + call psb_errpush(info,name,a_err=ch_err) + goto 9999 + end if + tasb = psb_wtime()-t1 + call psb_barrier(ictxt) + ttot = psb_wtime() - t0 + + call psb_amx(ictxt,talc) + call psb_amx(ictxt,tgen) + call psb_amx(ictxt,tasb) + call psb_amx(ictxt,ttot) + if(iam == psb_root_) then + tmpfmt = a%get_fmt() + write(psb_out_unit,'("The matrix has been generated and assembled in ",a3," format.")')& + & tmpfmt + write(psb_out_unit,'("-allocation time : ",es12.5)') talc + write(psb_out_unit,'("-coeff. gen. time : ",es12.5)') tgen + write(psb_out_unit,'("-desc asbly time : ",es12.5)') tcdasb + write(psb_out_unit,'("- mat asbly time : ",es12.5)') tasb + write(psb_out_unit,'("-total time : ",es12.5)') ttot + + end if + call psb_erractionrestore(err_act) + return + +9999 call psb_error_handler(ictxt,err_act) + + return + end subroutine psb_d_gen_pde3d + + +end module psb_d_pde3d_mod + program pdgenspmv use psb_base_mod use psb_util_mod + use psb_d_pde3d_mod implicit none ! input parameters From a947008be2ebd7597b33c873ed045ccf105840e7 Mon Sep 17 00:00:00 2001 From: Salvatore Filippone Date: Mon, 15 Jan 2018 14:22:03 +0000 Subject: [PATCH 04/35] Fix error message handling for CSMV --- base/serial/impl/psb_c_coo_impl.f90 | 16 ++++++++-------- base/serial/impl/psb_c_csc_impl.f90 | 16 ++++++++-------- base/serial/impl/psb_c_csr_impl.f90 | 12 ++++++------ base/serial/impl/psb_d_coo_impl.f90 | 16 ++++++++-------- base/serial/impl/psb_d_csc_impl.f90 | 16 ++++++++-------- base/serial/impl/psb_d_csr_impl.f90 | 12 ++++++------ base/serial/impl/psb_s_coo_impl.f90 | 16 ++++++++-------- base/serial/impl/psb_s_csc_impl.f90 | 16 ++++++++-------- base/serial/impl/psb_s_csr_impl.f90 | 12 ++++++------ base/serial/impl/psb_z_coo_impl.f90 | 16 ++++++++-------- base/serial/impl/psb_z_csc_impl.f90 | 16 ++++++++-------- base/serial/impl/psb_z_csr_impl.f90 | 12 ++++++------ 12 files changed, 88 insertions(+), 88 deletions(-) diff --git a/base/serial/impl/psb_c_coo_impl.f90 b/base/serial/impl/psb_c_coo_impl.f90 index d2ca8d65..ca880816 100644 --- a/base/serial/impl/psb_c_coo_impl.f90 +++ b/base/serial/impl/psb_c_coo_impl.f90 @@ -591,13 +591,13 @@ subroutine psb_c_coo_cssm(alpha,a,x,beta,y,info,trans) m = a%get_nrows() if (size(x,1) < m) then info = psb_err_input_asize_small_i_ - ierr(1) = 3; ierr(2) = m; + ierr(1) = 3; ierr(2) = size(x,1); ierr(3) = n; call psb_errpush(info,name,i_err=ierr) goto 9999 end if if (size(y,1) < m) then info = psb_err_input_asize_small_i_ - ierr(1) = 5; ierr(2) = m; + ierr(1) = 5; ierr(2) = size(y,1); ierr(3) =m; call psb_errpush(info,name,i_err=ierr) goto 9999 end if @@ -941,13 +941,13 @@ subroutine psb_c_coo_cssv(alpha,a,x,beta,y,info,trans) m = a%get_nrows() if (size(x,1) < m) then info = psb_err_input_asize_small_i_ - ierr(1) = 3; ierr(2) = m; + ierr(1) = 3; ierr(2) = size(x,1); ierr(3) = m; call psb_errpush(info,name,i_err=ierr) goto 9999 end if if (size(y,1) < m) then info = psb_err_input_asize_small_i_ - ierr(1) = 5; ierr(2) = m; + ierr(1) = 5; ierr(2) = size(y,1); ierr(3) =m; call psb_errpush(info,name,i_err=ierr) goto 9999 end if @@ -1295,13 +1295,13 @@ subroutine psb_c_coo_csmv(alpha,a,x,beta,y,info,trans) end if if (size(x,1) < n) then info = psb_err_input_asize_small_i_ - ierr(1) = 3; ierr(2) = n; + ierr(1) = 3; ierr(2) = size(x,1); ierr(3) = n; call psb_errpush(info,name,i_err=ierr) goto 9999 end if if (size(y,1) < m) then info = psb_err_input_asize_small_i_ - ierr(1) = 5; ierr(2) = m; + ierr(1) = 5; ierr(2) = size(y,1); ierr(3) =m; call psb_errpush(info,name,i_err=ierr) goto 9999 end if @@ -1492,13 +1492,13 @@ subroutine psb_c_coo_csmm(alpha,a,x,beta,y,info,trans) end if if (size(x,1) < n) then info = psb_err_input_asize_small_i_ - ierr(1) = 3; ierr(2) = n; + ierr(1) = 3; ierr(2) = size(x,1); ierr(3) = n; call psb_errpush(info,name,i_err=ierr) goto 9999 end if if (size(y,1) < m) then info = psb_err_input_asize_small_i_ - ierr(1) = 5; ierr(2) = m; + ierr(1) = 5; ierr(2) = size(y,1); ierr(3) =m; call psb_errpush(info,name,i_err=ierr) goto 9999 end if diff --git a/base/serial/impl/psb_c_csc_impl.f90 b/base/serial/impl/psb_c_csc_impl.f90 index 508bd65f..83017b7c 100644 --- a/base/serial/impl/psb_c_csc_impl.f90 +++ b/base/serial/impl/psb_c_csc_impl.f90 @@ -93,14 +93,14 @@ subroutine psb_c_csc_csmv(alpha,a,x,beta,y,info,trans) if (size(x,1) Date: Sun, 28 Jan 2018 09:24:04 +0000 Subject: [PATCH 05/35] Updated contributors' list. --- Changelog | 4 ++++ ReleaseNews | 19 ++++--------------- 2 files changed, 8 insertions(+), 15 deletions(-) diff --git a/Changelog b/Changelog index 49cb9d17..87a08b55 100644 --- a/Changelog +++ b/Changelog @@ -1,5 +1,9 @@ Changelog. A lot less detailed than usual, at least for past history. +2018/01/10: Updated docs. +2017/12/15: Fixed preconditioner build. +2017/10/31: Updated target install directories. +2017/10/15: Fold genpde into examples for readability. 2017/10/02: Merged CBinding. 2017/09/30: Fixes for README, contributors, bug reporting address. 2017/08/09: New optional args to TRIL and TRIU to produce two output diff --git a/ReleaseNews b/ReleaseNews index e51be77f..7b1829da 100644 --- a/ReleaseNews +++ b/ReleaseNews @@ -97,25 +97,14 @@ interested in the package MLD2P4 from http://github.com/sfilippone/mld2p4-2 Contact: https://github.com/sfilippone/psblas3 -Credits for version 3: -Salvatore Filippone +Contributors +Salvatore Filippone Alfredo Buttari +Soren Rasmussen Ambra Abdullahi Hassan Pasqua D'Ambra Daniela di Serafino - -Credits for version 2.2: -Michele Martone contributed the initial version of the configure -machinery. - -Credits for version 2.0: -Salvatore Filippone -Alfredo Buttari - - -Credits for version 1.0: - -Salvatore Filippone +Michele Martone Michele Colajanni Fabio Cerioni Stefano Maiolatesi From c7747830571f3e8742e75548cc7a9eaea493119a Mon Sep 17 00:00:00 2001 From: Salvatore Filippone Date: Sun, 28 Jan 2018 09:28:57 +0000 Subject: [PATCH 06/35] Updated copyright statement --- LICENSE | 6 +++--- base/comm/internals/psi_covrl_restr.f90 | 6 +++--- base/comm/internals/psi_covrl_save.f90 | 6 +++--- base/comm/internals/psi_covrl_upd.f90 | 6 +++--- base/comm/internals/psi_cswapdata.F90 | 6 +++--- base/comm/internals/psi_cswaptran.F90 | 6 +++--- base/comm/internals/psi_dovrl_restr.f90 | 6 +++--- base/comm/internals/psi_dovrl_save.f90 | 6 +++--- base/comm/internals/psi_dovrl_upd.f90 | 6 +++--- base/comm/internals/psi_dswapdata.F90 | 6 +++--- base/comm/internals/psi_dswaptran.F90 | 6 +++--- base/comm/internals/psi_iovrl_restr.f90 | 6 +++--- base/comm/internals/psi_iovrl_save.f90 | 6 +++--- base/comm/internals/psi_iovrl_upd.f90 | 6 +++--- base/comm/internals/psi_iswapdata.F90 | 6 +++--- base/comm/internals/psi_iswaptran.F90 | 6 +++--- base/comm/internals/psi_sovrl_restr.f90 | 6 +++--- base/comm/internals/psi_sovrl_save.f90 | 6 +++--- base/comm/internals/psi_sovrl_upd.f90 | 6 +++--- base/comm/internals/psi_sswapdata.F90 | 6 +++--- base/comm/internals/psi_sswaptran.F90 | 6 +++--- base/comm/internals/psi_zovrl_restr.f90 | 6 +++--- base/comm/internals/psi_zovrl_save.f90 | 6 +++--- base/comm/internals/psi_zovrl_upd.f90 | 6 +++--- base/comm/internals/psi_zswapdata.F90 | 6 +++--- base/comm/internals/psi_zswaptran.F90 | 6 +++--- base/comm/psb_cgather.f90 | 10 +++++----- base/comm/psb_chalo.f90 | 10 +++++----- base/comm/psb_covrl.f90 | 10 +++++----- base/comm/psb_cscatter.F90 | 14 +++++++------- base/comm/psb_cspgather.F90 | 6 +++--- base/comm/psb_dgather.f90 | 10 +++++----- base/comm/psb_dhalo.f90 | 10 +++++----- base/comm/psb_dovrl.f90 | 10 +++++----- base/comm/psb_dscatter.F90 | 14 +++++++------- base/comm/psb_dspgather.F90 | 6 +++--- base/comm/psb_igather.f90 | 10 +++++----- base/comm/psb_ihalo.f90 | 10 +++++----- base/comm/psb_iovrl.f90 | 10 +++++----- base/comm/psb_iscatter.F90 | 14 +++++++------- base/comm/psb_sgather.f90 | 10 +++++----- base/comm/psb_shalo.f90 | 10 +++++----- base/comm/psb_sovrl.f90 | 10 +++++----- base/comm/psb_sscatter.F90 | 14 +++++++------- base/comm/psb_sspgather.F90 | 6 +++--- base/comm/psb_zgather.f90 | 10 +++++----- base/comm/psb_zhalo.f90 | 10 +++++----- base/comm/psb_zovrl.f90 | 10 +++++----- base/comm/psb_zscatter.F90 | 14 +++++++------- base/comm/psb_zspgather.F90 | 6 +++--- base/internals/psb_indx_map_fnd_owner.F90 | 6 +++--- base/internals/psi_bld_tmphalo.f90 | 6 +++--- base/internals/psi_bld_tmpovrl.f90 | 6 +++--- base/internals/psi_compute_size.f90 | 6 +++--- base/internals/psi_crea_bnd_elem.f90 | 6 +++--- base/internals/psi_crea_index.f90 | 6 +++--- base/internals/psi_crea_ovr_elem.f90 | 6 +++--- base/internals/psi_desc_impl.f90 | 6 +++--- base/internals/psi_desc_index.F90 | 6 +++--- base/internals/psi_dl_check.f90 | 6 +++--- base/internals/psi_exist_ovr_elem.f90 | 2 +- base/internals/psi_extrct_dl.F90 | 6 +++--- base/internals/psi_fnd_owner.F90 | 6 +++--- base/internals/psi_list_search.f90 | 2 +- base/internals/psi_sort_dl.f90 | 6 +++--- base/internals/psi_srtlist.f90 | 2 +- base/modules/aux/psb_c_sort_mod.f90 | 6 +++--- base/modules/aux/psb_d_sort_mod.f90 | 6 +++--- base/modules/aux/psb_hash_mod.f90 | 6 +++--- base/modules/aux/psb_i_sort_mod.f90 | 6 +++--- base/modules/aux/psb_ip_reord_mod.f90 | 6 +++--- base/modules/aux/psb_s_sort_mod.f90 | 6 +++--- base/modules/aux/psb_sort_mod.f90 | 6 +++--- base/modules/aux/psb_string_mod.f90 | 6 +++--- base/modules/aux/psb_z_sort_mod.f90 | 6 +++--- base/modules/aux/psi_serial_mod.f90 | 6 +++--- base/modules/comm/psb_base_linmap_mod.f90 | 6 +++--- base/modules/comm/psb_c_comm_mod.f90 | 6 +++--- base/modules/comm/psb_c_linmap_mod.f90 | 6 +++--- base/modules/comm/psb_comm_mod.f90 | 6 +++--- base/modules/comm/psb_d_comm_mod.f90 | 6 +++--- base/modules/comm/psb_d_linmap_mod.f90 | 6 +++--- base/modules/comm/psb_i_comm_mod.f90 | 6 +++--- base/modules/comm/psb_linmap_mod.f90 | 6 +++--- base/modules/comm/psb_s_comm_mod.f90 | 6 +++--- base/modules/comm/psb_s_linmap_mod.f90 | 6 +++--- base/modules/comm/psb_z_comm_mod.f90 | 6 +++--- base/modules/comm/psb_z_linmap_mod.f90 | 6 +++--- base/modules/desc/psb_desc_const_mod.f90 | 6 +++--- base/modules/desc/psb_desc_mod.F90 | 6 +++--- base/modules/desc/psb_gen_block_map_mod.f90 | 6 +++--- base/modules/desc/psb_glist_map_mod.f90 | 6 +++--- base/modules/desc/psb_hash_map_mod.f90 | 6 +++--- base/modules/desc/psb_indx_map_mod.f90 | 6 +++--- base/modules/desc/psb_list_map_mod.f90 | 6 +++--- base/modules/desc/psb_repl_map_mod.f90 | 6 +++--- base/modules/error.f90 | 6 +++--- base/modules/psb_base_mod.f90 | 6 +++--- base/modules/psb_check_mod.f90 | 6 +++--- base/modules/psb_const_mod.F90 | 6 +++--- base/modules/psb_error_mod.F90 | 6 +++--- base/modules/psb_realloc_mod.F90 | 6 +++--- base/modules/psblas/psb_c_psblas_mod.F90 | 6 +++--- base/modules/psblas/psb_d_psblas_mod.F90 | 6 +++--- base/modules/psblas/psb_psblas_mod.f90 | 6 +++--- base/modules/psblas/psb_s_psblas_mod.F90 | 6 +++--- base/modules/psblas/psb_z_psblas_mod.F90 | 6 +++--- base/modules/psi_bcast_mod.F90 | 6 +++--- base/modules/psi_c_mod.f90 | 6 +++--- base/modules/psi_comm_buffers_mod.F90 | 6 +++--- base/modules/psi_d_mod.f90 | 6 +++--- base/modules/psi_i_mod.f90 | 6 +++--- base/modules/psi_mod.f90 | 6 +++--- base/modules/psi_p2p_mod.F90 | 6 +++--- base/modules/psi_penv_mod.F90 | 6 +++--- base/modules/psi_reduce_mod.F90 | 6 +++--- base/modules/psi_s_mod.f90 | 6 +++--- base/modules/psi_z_mod.f90 | 6 +++--- base/modules/serial/psb_base_mat_mod.f90 | 6 +++--- base/modules/serial/psb_c_base_mat_mod.f90 | 6 +++--- base/modules/serial/psb_c_base_vect_mod.f90 | 6 +++--- base/modules/serial/psb_c_csc_mat_mod.f90 | 6 +++--- base/modules/serial/psb_c_csr_mat_mod.f90 | 6 +++--- base/modules/serial/psb_c_mat_mod.f90 | 6 +++--- base/modules/serial/psb_c_serial_mod.f90 | 6 +++--- base/modules/serial/psb_c_vect_mod.F90 | 6 +++--- base/modules/serial/psb_d_base_mat_mod.f90 | 6 +++--- base/modules/serial/psb_d_base_vect_mod.f90 | 6 +++--- base/modules/serial/psb_d_csc_mat_mod.f90 | 6 +++--- base/modules/serial/psb_d_csr_mat_mod.f90 | 6 +++--- base/modules/serial/psb_d_mat_mod.f90 | 6 +++--- base/modules/serial/psb_d_serial_mod.f90 | 6 +++--- base/modules/serial/psb_d_vect_mod.F90 | 6 +++--- base/modules/serial/psb_i_base_vect_mod.f90 | 6 +++--- base/modules/serial/psb_i_vect_mod.F90 | 6 +++--- base/modules/serial/psb_s_base_mat_mod.f90 | 6 +++--- base/modules/serial/psb_s_base_vect_mod.f90 | 6 +++--- base/modules/serial/psb_s_csc_mat_mod.f90 | 6 +++--- base/modules/serial/psb_s_csr_mat_mod.f90 | 6 +++--- base/modules/serial/psb_s_mat_mod.f90 | 6 +++--- base/modules/serial/psb_s_serial_mod.f90 | 6 +++--- base/modules/serial/psb_s_vect_mod.F90 | 6 +++--- base/modules/serial/psb_serial_mod.f90 | 6 +++--- base/modules/serial/psb_z_base_mat_mod.f90 | 6 +++--- base/modules/serial/psb_z_base_vect_mod.f90 | 6 +++--- base/modules/serial/psb_z_csc_mat_mod.f90 | 6 +++--- base/modules/serial/psb_z_csr_mat_mod.f90 | 6 +++--- base/modules/serial/psb_z_mat_mod.f90 | 6 +++--- base/modules/serial/psb_z_serial_mod.f90 | 6 +++--- base/modules/serial/psb_z_vect_mod.F90 | 6 +++--- base/modules/tools/psb_c_tools_mod.f90 | 6 +++--- base/modules/tools/psb_cd_tools_mod.f90 | 6 +++--- base/modules/tools/psb_d_tools_mod.f90 | 6 +++--- base/modules/tools/psb_i_tools_mod.f90 | 6 +++--- base/modules/tools/psb_s_tools_mod.f90 | 6 +++--- base/modules/tools/psb_tools_mod.f90 | 6 +++--- base/modules/tools/psb_z_tools_mod.f90 | 6 +++--- base/psblas/psb_camax.f90 | 18 +++++++++--------- base/psblas/psb_casum.f90 | 14 +++++++------- base/psblas/psb_caxpby.f90 | 10 +++++----- base/psblas/psb_cdot.f90 | 18 +++++++++--------- base/psblas/psb_cnrm2.f90 | 14 +++++++------- base/psblas/psb_cnrmi.f90 | 6 +++--- base/psblas/psb_cspmm.f90 | 10 +++++----- base/psblas/psb_cspnrm1.f90 | 6 +++--- base/psblas/psb_cspsm.f90 | 10 +++++----- base/psblas/psb_damax.f90 | 18 +++++++++--------- base/psblas/psb_dasum.f90 | 14 +++++++------- base/psblas/psb_daxpby.f90 | 10 +++++----- base/psblas/psb_ddot.f90 | 18 +++++++++--------- base/psblas/psb_dnrm2.f90 | 14 +++++++------- base/psblas/psb_dnrmi.f90 | 6 +++--- base/psblas/psb_dspmm.f90 | 10 +++++----- base/psblas/psb_dspnrm1.f90 | 6 +++--- base/psblas/psb_dspsm.f90 | 10 +++++----- base/psblas/psb_samax.f90 | 18 +++++++++--------- base/psblas/psb_sasum.f90 | 14 +++++++------- base/psblas/psb_saxpby.f90 | 10 +++++----- base/psblas/psb_sdot.f90 | 18 +++++++++--------- base/psblas/psb_snrm2.f90 | 14 +++++++------- base/psblas/psb_snrmi.f90 | 6 +++--- base/psblas/psb_sspmm.f90 | 10 +++++----- base/psblas/psb_sspnrm1.f90 | 6 +++--- base/psblas/psb_sspsm.f90 | 10 +++++----- base/psblas/psb_zamax.f90 | 18 +++++++++--------- base/psblas/psb_zasum.f90 | 14 +++++++------- base/psblas/psb_zaxpby.f90 | 10 +++++----- base/psblas/psb_zdot.f90 | 18 +++++++++--------- base/psblas/psb_znrm2.f90 | 14 +++++++------- base/psblas/psb_znrmi.f90 | 6 +++--- base/psblas/psb_zspmm.f90 | 10 +++++----- base/psblas/psb_zspnrm1.f90 | 6 +++--- base/psblas/psb_zspsm.f90 | 10 +++++----- base/serial/impl/psb_c_base_mat_impl.F90 | 6 +++--- base/serial/impl/psb_c_coo_impl.f90 | 6 +++--- base/serial/impl/psb_c_csc_impl.f90 | 6 +++--- base/serial/impl/psb_c_csr_impl.f90 | 6 +++--- base/serial/impl/psb_c_mat_impl.F90 | 6 +++--- base/serial/impl/psb_d_base_mat_impl.F90 | 6 +++--- base/serial/impl/psb_d_coo_impl.f90 | 6 +++--- base/serial/impl/psb_d_csc_impl.f90 | 6 +++--- base/serial/impl/psb_d_csr_impl.f90 | 6 +++--- base/serial/impl/psb_d_mat_impl.F90 | 6 +++--- base/serial/impl/psb_s_base_mat_impl.F90 | 6 +++--- base/serial/impl/psb_s_coo_impl.f90 | 6 +++--- base/serial/impl/psb_s_csc_impl.f90 | 6 +++--- base/serial/impl/psb_s_csr_impl.f90 | 6 +++--- base/serial/impl/psb_s_mat_impl.F90 | 6 +++--- base/serial/impl/psb_z_base_mat_impl.F90 | 6 +++--- base/serial/impl/psb_z_coo_impl.f90 | 6 +++--- base/serial/impl/psb_z_csc_impl.f90 | 6 +++--- base/serial/impl/psb_z_csr_impl.f90 | 6 +++--- base/serial/impl/psb_z_mat_impl.F90 | 6 +++--- base/serial/psb_aspxpby.f90 | 6 +++--- base/serial/psb_camax_s.f90 | 6 +++--- base/serial/psb_casum_s.f90 | 6 +++--- base/serial/psb_cgelp.f90 | 6 +++--- base/serial/psb_cgeprt.f90 | 4 ++-- base/serial/psb_cnumbmm.f90 | 6 +++--- base/serial/psb_crwextd.f90 | 6 +++--- base/serial/psb_cspspmm.f90 | 6 +++--- base/serial/psb_csymbmm.f90 | 6 +++--- base/serial/psb_damax_s.f90 | 6 +++--- base/serial/psb_dasum_s.f90 | 6 +++--- base/serial/psb_dgelp.f90 | 6 +++--- base/serial/psb_dgeprt.f90 | 4 ++-- base/serial/psb_dnumbmm.f90 | 6 +++--- base/serial/psb_drwextd.f90 | 6 +++--- base/serial/psb_dspspmm.f90 | 6 +++--- base/serial/psb_dsymbmm.f90 | 6 +++--- base/serial/psb_lsame.f90 | 6 +++--- base/serial/psb_samax_s.f90 | 6 +++--- base/serial/psb_sasum_s.f90 | 6 +++--- base/serial/psb_sgelp.f90 | 6 +++--- base/serial/psb_sgeprt.f90 | 4 ++-- base/serial/psb_snumbmm.f90 | 6 +++--- base/serial/psb_spdot_srtd.f90 | 6 +++--- base/serial/psb_spge_dot.f90 | 6 +++--- base/serial/psb_srwextd.f90 | 6 +++--- base/serial/psb_sspspmm.f90 | 6 +++--- base/serial/psb_ssymbmm.f90 | 6 +++--- base/serial/psb_zamax_s.f90 | 6 +++--- base/serial/psb_zasum_s.f90 | 6 +++--- base/serial/psb_zgelp.f90 | 6 +++--- base/serial/psb_zgeprt.f90 | 4 ++-- base/serial/psb_znumbmm.f90 | 6 +++--- base/serial/psb_zrwextd.f90 | 6 +++--- base/serial/psb_zspspmm.f90 | 6 +++--- base/serial/psb_zsymbmm.f90 | 6 +++--- base/serial/psi_c_serial_impl.f90 | 6 +++--- base/serial/psi_d_serial_impl.f90 | 6 +++--- base/serial/psi_i_serial_impl.f90 | 6 +++--- base/serial/psi_s_serial_impl.f90 | 6 +++--- base/serial/psi_z_serial_impl.f90 | 6 +++--- base/serial/smmp.f90 | 6 +++--- base/serial/sort/psb_c_hsort_impl.f90 | 6 +++--- base/serial/sort/psb_c_isort_impl.f90 | 6 +++--- base/serial/sort/psb_c_msort_impl.f90 | 6 +++--- base/serial/sort/psb_c_qsort_impl.f90 | 6 +++--- base/serial/sort/psb_d_hsort_impl.f90 | 6 +++--- base/serial/sort/psb_d_isort_impl.f90 | 6 +++--- base/serial/sort/psb_d_msort_impl.f90 | 6 +++--- base/serial/sort/psb_d_qsort_impl.f90 | 6 +++--- base/serial/sort/psb_i_hsort_impl.f90 | 6 +++--- base/serial/sort/psb_i_isort_impl.f90 | 6 +++--- base/serial/sort/psb_i_msort_impl.f90 | 6 +++--- base/serial/sort/psb_i_qsort_impl.f90 | 6 +++--- base/serial/sort/psb_s_hsort_impl.f90 | 6 +++--- base/serial/sort/psb_s_isort_impl.f90 | 6 +++--- base/serial/sort/psb_s_msort_impl.f90 | 6 +++--- base/serial/sort/psb_s_qsort_impl.f90 | 6 +++--- base/serial/sort/psb_z_hsort_impl.f90 | 6 +++--- base/serial/sort/psb_z_isort_impl.f90 | 6 +++--- base/serial/sort/psb_z_msort_impl.f90 | 6 +++--- base/serial/sort/psb_z_qsort_impl.f90 | 6 +++--- base/serial/sort/psi_acx_mod.f90 | 6 +++--- base/serial/sort/psi_alcx_mod.f90 | 6 +++--- base/serial/sort/psi_lcx_mod.f90 | 6 +++--- base/tools/psb_c_map.f90 | 6 +++--- base/tools/psb_callc.f90 | 10 +++++----- base/tools/psb_casb.f90 | 10 +++++----- base/tools/psb_ccdbldext.F90 | 6 +++--- base/tools/psb_cd_inloc.f90 | 6 +++--- base/tools/psb_cd_lstext.f90 | 6 +++--- base/tools/psb_cd_reinit.f90 | 6 +++--- base/tools/psb_cd_set_bld.f90 | 6 +++--- base/tools/psb_cd_switch_ovl_indxmap.f90 | 6 +++--- base/tools/psb_cdals.f90 | 6 +++--- base/tools/psb_cdalv.f90 | 6 +++--- base/tools/psb_cdcpy.F90 | 6 +++--- base/tools/psb_cdins.f90 | 6 +++--- base/tools/psb_cdprt.f90 | 6 +++--- base/tools/psb_cdren.f90 | 6 +++--- base/tools/psb_cdrep.f90 | 6 +++--- base/tools/psb_cfree.f90 | 6 +++--- base/tools/psb_cins.f90 | 10 +++++----- base/tools/psb_cspalloc.f90 | 6 +++--- base/tools/psb_cspasb.f90 | 6 +++--- base/tools/psb_cspfree.f90 | 6 +++--- base/tools/psb_csphalo.F90 | 6 +++--- base/tools/psb_cspins.f90 | 6 +++--- base/tools/psb_csprn.f90 | 6 +++--- base/tools/psb_d_map.f90 | 6 +++--- base/tools/psb_dallc.f90 | 10 +++++----- base/tools/psb_dasb.f90 | 10 +++++----- base/tools/psb_dcdbldext.F90 | 6 +++--- base/tools/psb_dfree.f90 | 6 +++--- base/tools/psb_dins.f90 | 10 +++++----- base/tools/psb_dspalloc.f90 | 6 +++--- base/tools/psb_dspasb.f90 | 6 +++--- base/tools/psb_dspfree.f90 | 6 +++--- base/tools/psb_dsphalo.F90 | 6 +++--- base/tools/psb_dspins.f90 | 6 +++--- base/tools/psb_dsprn.f90 | 6 +++--- base/tools/psb_get_overlap.f90 | 6 +++--- base/tools/psb_glob_to_loc.f90 | 10 +++++----- base/tools/psb_iallc.f90 | 10 +++++----- base/tools/psb_iasb.f90 | 10 +++++----- base/tools/psb_icdasb.F90 | 6 +++--- base/tools/psb_ifree.f90 | 6 +++--- base/tools/psb_iins.f90 | 10 +++++----- base/tools/psb_loc_to_glob.f90 | 10 +++++----- base/tools/psb_s_map.f90 | 6 +++--- base/tools/psb_sallc.f90 | 10 +++++----- base/tools/psb_sasb.f90 | 10 +++++----- base/tools/psb_scdbldext.F90 | 6 +++--- base/tools/psb_sfree.f90 | 6 +++--- base/tools/psb_sins.f90 | 10 +++++----- base/tools/psb_sspalloc.f90 | 6 +++--- base/tools/psb_sspasb.f90 | 6 +++--- base/tools/psb_sspfree.f90 | 6 +++--- base/tools/psb_ssphalo.F90 | 6 +++--- base/tools/psb_sspins.f90 | 6 +++--- base/tools/psb_ssprn.f90 | 6 +++--- base/tools/psb_z_map.f90 | 6 +++--- base/tools/psb_zallc.f90 | 10 +++++----- base/tools/psb_zasb.f90 | 10 +++++----- base/tools/psb_zcdbldext.F90 | 6 +++--- base/tools/psb_zfree.f90 | 6 +++--- base/tools/psb_zins.f90 | 10 +++++----- base/tools/psb_zspalloc.f90 | 6 +++--- base/tools/psb_zspasb.f90 | 6 +++--- base/tools/psb_zspfree.f90 | 6 +++--- base/tools/psb_zsphalo.F90 | 6 +++--- base/tools/psb_zspins.f90 | 6 +++--- base/tools/psb_zsprn.f90 | 6 +++--- cbind/test/pargen/ppdec.c | 2 +- krylov/psb_base_krylov_conv_mod.f90 | 6 +++--- krylov/psb_c_krylov_conv_mod.f90 | 6 +++--- krylov/psb_cbicg.f90 | 6 +++--- krylov/psb_ccg.F90 | 6 +++--- krylov/psb_ccgs.f90 | 6 +++--- krylov/psb_ccgstab.f90 | 6 +++--- krylov/psb_ccgstabl.f90 | 6 +++--- krylov/psb_cfcg.F90 | 6 +++--- krylov/psb_cgcr.f90 | 6 +++--- krylov/psb_ckrylov.f90 | 6 +++--- krylov/psb_crgmres.f90 | 6 +++--- krylov/psb_d_krylov_conv_mod.f90 | 6 +++--- krylov/psb_dbicg.f90 | 6 +++--- krylov/psb_dcg.F90 | 6 +++--- krylov/psb_dcgs.f90 | 6 +++--- krylov/psb_dcgstab.f90 | 6 +++--- krylov/psb_dcgstabl.f90 | 6 +++--- krylov/psb_dfcg.F90 | 6 +++--- krylov/psb_dgcr.f90 | 6 +++--- krylov/psb_dkrylov.f90 | 6 +++--- krylov/psb_drgmres.f90 | 6 +++--- krylov/psb_krylov_conv_mod.f90 | 6 +++--- krylov/psb_krylov_mod.f90 | 6 +++--- krylov/psb_s_krylov_conv_mod.f90 | 6 +++--- krylov/psb_sbicg.f90 | 6 +++--- krylov/psb_scg.F90 | 6 +++--- krylov/psb_scgs.f90 | 6 +++--- krylov/psb_scgstab.f90 | 6 +++--- krylov/psb_scgstabl.f90 | 6 +++--- krylov/psb_sfcg.F90 | 6 +++--- krylov/psb_sgcr.f90 | 6 +++--- krylov/psb_skrylov.f90 | 6 +++--- krylov/psb_srgmres.f90 | 6 +++--- krylov/psb_z_krylov_conv_mod.f90 | 6 +++--- krylov/psb_zbicg.f90 | 6 +++--- krylov/psb_zcg.F90 | 6 +++--- krylov/psb_zcgs.f90 | 6 +++--- krylov/psb_zcgstab.f90 | 6 +++--- krylov/psb_zcgstabl.f90 | 6 +++--- krylov/psb_zfcg.F90 | 6 +++--- krylov/psb_zgcr.f90 | 6 +++--- krylov/psb_zkrylov.f90 | 6 +++--- krylov/psb_zrgmres.f90 | 6 +++--- prec/impl/psb_c_bjacprec_impl.f90 | 6 +++--- prec/impl/psb_c_diagprec_impl.f90 | 6 +++--- prec/impl/psb_c_nullprec_impl.f90 | 6 +++--- prec/impl/psb_c_prec_type_impl.f90 | 12 ++++++------ prec/impl/psb_cilu_fct.f90 | 6 +++--- prec/impl/psb_cprecbld.f90 | 6 +++--- prec/impl/psb_cprecinit.f90 | 6 +++--- prec/impl/psb_cprecset.f90 | 6 +++--- prec/impl/psb_d_bjacprec_impl.f90 | 6 +++--- prec/impl/psb_d_diagprec_impl.f90 | 6 +++--- prec/impl/psb_d_nullprec_impl.f90 | 6 +++--- prec/impl/psb_d_prec_type_impl.f90 | 12 ++++++------ prec/impl/psb_dilu_fct.f90 | 6 +++--- prec/impl/psb_dprecbld.f90 | 6 +++--- prec/impl/psb_dprecinit.f90 | 6 +++--- prec/impl/psb_dprecset.f90 | 6 +++--- prec/impl/psb_s_bjacprec_impl.f90 | 6 +++--- prec/impl/psb_s_diagprec_impl.f90 | 6 +++--- prec/impl/psb_s_nullprec_impl.f90 | 6 +++--- prec/impl/psb_s_prec_type_impl.f90 | 12 ++++++------ prec/impl/psb_silu_fct.f90 | 6 +++--- prec/impl/psb_sprecbld.f90 | 6 +++--- prec/impl/psb_sprecinit.f90 | 6 +++--- prec/impl/psb_sprecset.f90 | 6 +++--- prec/impl/psb_z_bjacprec_impl.f90 | 6 +++--- prec/impl/psb_z_diagprec_impl.f90 | 6 +++--- prec/impl/psb_z_nullprec_impl.f90 | 6 +++--- prec/impl/psb_z_prec_type_impl.f90 | 12 ++++++------ prec/impl/psb_zilu_fct.f90 | 6 +++--- prec/impl/psb_zprecbld.f90 | 6 +++--- prec/impl/psb_zprecinit.f90 | 6 +++--- prec/impl/psb_zprecset.f90 | 6 +++--- prec/psb_c_base_prec_mod.f90 | 6 +++--- prec/psb_c_bjacprec.f90 | 6 +++--- prec/psb_c_diagprec.f90 | 6 +++--- prec/psb_c_nullprec.f90 | 6 +++--- prec/psb_c_prec_mod.f90 | 6 +++--- prec/psb_c_prec_type.f90 | 6 +++--- prec/psb_d_base_prec_mod.f90 | 6 +++--- prec/psb_d_bjacprec.f90 | 6 +++--- prec/psb_d_diagprec.f90 | 6 +++--- prec/psb_d_nullprec.f90 | 6 +++--- prec/psb_d_prec_mod.f90 | 6 +++--- prec/psb_d_prec_type.f90 | 6 +++--- prec/psb_prec_const_mod.f90 | 6 +++--- prec/psb_prec_mod.f90 | 6 +++--- prec/psb_prec_type.f90 | 6 +++--- prec/psb_s_base_prec_mod.f90 | 6 +++--- prec/psb_s_bjacprec.f90 | 6 +++--- prec/psb_s_diagprec.f90 | 6 +++--- prec/psb_s_nullprec.f90 | 6 +++--- prec/psb_s_prec_mod.f90 | 6 +++--- prec/psb_s_prec_type.f90 | 6 +++--- prec/psb_z_base_prec_mod.f90 | 6 +++--- prec/psb_z_bjacprec.f90 | 6 +++--- prec/psb_z_diagprec.f90 | 6 +++--- prec/psb_z_nullprec.f90 | 6 +++--- prec/psb_z_prec_mod.f90 | 6 +++--- prec/psb_z_prec_type.f90 | 6 +++--- test/fileread/getp.f90 | 6 +++--- test/fileread/psb_cf_sample.f90 | 6 +++--- test/fileread/psb_df_sample.f90 | 6 +++--- test/fileread/psb_sf_sample.f90 | 6 +++--- test/fileread/psb_zf_sample.f90 | 6 +++--- test/kernel/d_file_spmv.f90 | 6 +++--- test/kernel/pdgenspmv.f90 | 4 ++-- test/kernel/s_file_spmv.f90 | 6 +++--- test/pargen/psb_d_pde2d.f90 | 6 +++--- test/pargen/psb_d_pde3d.f90 | 6 +++--- test/pargen/psb_s_pde2d.f90 | 6 +++--- test/pargen/psb_s_pde3d.f90 | 6 +++--- test/serial/psb_d_xyz_impl.f90 | 6 +++--- test/serial/psb_d_xyz_mat_mod.f90 | 6 +++--- test/util/dhb2mm.f90 | 6 +++--- test/util/dmm2hb.f90 | 6 +++--- test/util/zhb2mm.f90 | 6 +++--- test/util/zmm2hb.f90 | 6 +++--- util/psb_amd_order.c | 2 +- util/psb_blockpart_mod.f90 | 6 +++--- util/psb_c_hbio_impl.f90 | 6 +++--- util/psb_c_mat_dist_impl.f90 | 6 +++--- util/psb_c_mat_dist_mod.f90 | 6 +++--- util/psb_c_mmio_impl.f90 | 6 +++--- util/psb_c_renum_impl.F90 | 6 +++--- util/psb_d_hbio_impl.f90 | 6 +++--- util/psb_d_mat_dist_impl.f90 | 6 +++--- util/psb_d_mat_dist_mod.f90 | 6 +++--- util/psb_d_mmio_impl.f90 | 6 +++--- util/psb_d_renum_impl.F90 | 6 +++--- util/psb_gps_mod.f90 | 6 +++--- util/psb_hbio_mod.f90 | 6 +++--- util/psb_i_mmio_impl.f90 | 4 ++-- util/psb_mat_dist_mod.f90 | 6 +++--- util/psb_metispart_mod.F90 | 6 +++--- util/psb_mmio_mod.F90 | 6 +++--- util/psb_renum_mod.f90 | 6 +++--- util/psb_s_hbio_impl.f90 | 6 +++--- util/psb_s_mat_dist_impl.f90 | 6 +++--- util/psb_s_mat_dist_mod.f90 | 6 +++--- util/psb_s_mmio_impl.f90 | 6 +++--- util/psb_s_renum_impl.F90 | 6 +++--- util/psb_util_mod.f90 | 6 +++--- util/psb_z_hbio_impl.f90 | 6 +++--- util/psb_z_mat_dist_impl.f90 | 6 +++--- util/psb_z_mat_dist_mod.f90 | 6 +++--- util/psb_z_mmio_impl.f90 | 6 +++--- util/psb_z_renum_impl.F90 | 6 +++--- 497 files changed, 1675 insertions(+), 1675 deletions(-) diff --git a/LICENSE b/LICENSE index 4a0a9d75..861ebc4c 100644 --- a/LICENSE +++ b/LICENSE @@ -1,7 +1,7 @@ Parallel Sparse BLAS version 3.5 - (C) Copyright 2006, 2010, 2015, 2017 - Salvatore Filippone Cranfield University - Alfredo Buttari CNRS-IRIT, Toulouse + (C) Copyright 2006-2018 + Salvatore Filippone + Alfredo Buttari Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions diff --git a/base/comm/internals/psi_covrl_restr.f90 b/base/comm/internals/psi_covrl_restr.f90 index d5f5a8c6..460df831 100644 --- a/base/comm/internals/psi_covrl_restr.f90 +++ b/base/comm/internals/psi_covrl_restr.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/comm/internals/psi_covrl_save.f90 b/base/comm/internals/psi_covrl_save.f90 index 34d9bd65..bb1d6460 100644 --- a/base/comm/internals/psi_covrl_save.f90 +++ b/base/comm/internals/psi_covrl_save.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/comm/internals/psi_covrl_upd.f90 b/base/comm/internals/psi_covrl_upd.f90 index c83a932f..cc341fb4 100644 --- a/base/comm/internals/psi_covrl_upd.f90 +++ b/base/comm/internals/psi_covrl_upd.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/comm/internals/psi_cswapdata.F90 b/base/comm/internals/psi_cswapdata.F90 index 6be374da..59bfcb15 100644 --- a/base/comm/internals/psi_cswapdata.F90 +++ b/base/comm/internals/psi_cswapdata.F90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/comm/internals/psi_cswaptran.F90 b/base/comm/internals/psi_cswaptran.F90 index fa1c3840..f47a26c8 100644 --- a/base/comm/internals/psi_cswaptran.F90 +++ b/base/comm/internals/psi_cswaptran.F90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/comm/internals/psi_dovrl_restr.f90 b/base/comm/internals/psi_dovrl_restr.f90 index 7f03c711..bda2d7d1 100644 --- a/base/comm/internals/psi_dovrl_restr.f90 +++ b/base/comm/internals/psi_dovrl_restr.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/comm/internals/psi_dovrl_save.f90 b/base/comm/internals/psi_dovrl_save.f90 index 80d09904..1c637fa4 100644 --- a/base/comm/internals/psi_dovrl_save.f90 +++ b/base/comm/internals/psi_dovrl_save.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/comm/internals/psi_dovrl_upd.f90 b/base/comm/internals/psi_dovrl_upd.f90 index b409d145..8e18d168 100644 --- a/base/comm/internals/psi_dovrl_upd.f90 +++ b/base/comm/internals/psi_dovrl_upd.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/comm/internals/psi_dswapdata.F90 b/base/comm/internals/psi_dswapdata.F90 index f00d21b9..b5ea58db 100644 --- a/base/comm/internals/psi_dswapdata.F90 +++ b/base/comm/internals/psi_dswapdata.F90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/comm/internals/psi_dswaptran.F90 b/base/comm/internals/psi_dswaptran.F90 index 604b345e..1beebf5e 100644 --- a/base/comm/internals/psi_dswaptran.F90 +++ b/base/comm/internals/psi_dswaptran.F90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/comm/internals/psi_iovrl_restr.f90 b/base/comm/internals/psi_iovrl_restr.f90 index d3ef0cbd..b278ab0a 100644 --- a/base/comm/internals/psi_iovrl_restr.f90 +++ b/base/comm/internals/psi_iovrl_restr.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/comm/internals/psi_iovrl_save.f90 b/base/comm/internals/psi_iovrl_save.f90 index 69ee2a75..9d95ee95 100644 --- a/base/comm/internals/psi_iovrl_save.f90 +++ b/base/comm/internals/psi_iovrl_save.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/comm/internals/psi_iovrl_upd.f90 b/base/comm/internals/psi_iovrl_upd.f90 index 41d0ca7d..ad9cca3b 100644 --- a/base/comm/internals/psi_iovrl_upd.f90 +++ b/base/comm/internals/psi_iovrl_upd.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/comm/internals/psi_iswapdata.F90 b/base/comm/internals/psi_iswapdata.F90 index 62ac7a7d..890237cd 100644 --- a/base/comm/internals/psi_iswapdata.F90 +++ b/base/comm/internals/psi_iswapdata.F90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/comm/internals/psi_iswaptran.F90 b/base/comm/internals/psi_iswaptran.F90 index dfd6c205..25b13fe9 100644 --- a/base/comm/internals/psi_iswaptran.F90 +++ b/base/comm/internals/psi_iswaptran.F90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/comm/internals/psi_sovrl_restr.f90 b/base/comm/internals/psi_sovrl_restr.f90 index d1c40e49..0054ad4e 100644 --- a/base/comm/internals/psi_sovrl_restr.f90 +++ b/base/comm/internals/psi_sovrl_restr.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/comm/internals/psi_sovrl_save.f90 b/base/comm/internals/psi_sovrl_save.f90 index 2f6c5d05..a118f6bc 100644 --- a/base/comm/internals/psi_sovrl_save.f90 +++ b/base/comm/internals/psi_sovrl_save.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/comm/internals/psi_sovrl_upd.f90 b/base/comm/internals/psi_sovrl_upd.f90 index 25a98a49..389ce520 100644 --- a/base/comm/internals/psi_sovrl_upd.f90 +++ b/base/comm/internals/psi_sovrl_upd.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/comm/internals/psi_sswapdata.F90 b/base/comm/internals/psi_sswapdata.F90 index 199aeb95..72ea7581 100644 --- a/base/comm/internals/psi_sswapdata.F90 +++ b/base/comm/internals/psi_sswapdata.F90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/comm/internals/psi_sswaptran.F90 b/base/comm/internals/psi_sswaptran.F90 index 6138428f..9fc907e7 100644 --- a/base/comm/internals/psi_sswaptran.F90 +++ b/base/comm/internals/psi_sswaptran.F90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/comm/internals/psi_zovrl_restr.f90 b/base/comm/internals/psi_zovrl_restr.f90 index 776f9a9d..c3fa1868 100644 --- a/base/comm/internals/psi_zovrl_restr.f90 +++ b/base/comm/internals/psi_zovrl_restr.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/comm/internals/psi_zovrl_save.f90 b/base/comm/internals/psi_zovrl_save.f90 index cf39daa5..b65d96de 100644 --- a/base/comm/internals/psi_zovrl_save.f90 +++ b/base/comm/internals/psi_zovrl_save.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/comm/internals/psi_zovrl_upd.f90 b/base/comm/internals/psi_zovrl_upd.f90 index d6005b2a..1c80111d 100644 --- a/base/comm/internals/psi_zovrl_upd.f90 +++ b/base/comm/internals/psi_zovrl_upd.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/comm/internals/psi_zswapdata.F90 b/base/comm/internals/psi_zswapdata.F90 index acf09a05..73c2dbfc 100644 --- a/base/comm/internals/psi_zswapdata.F90 +++ b/base/comm/internals/psi_zswapdata.F90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/comm/internals/psi_zswaptran.F90 b/base/comm/internals/psi_zswaptran.F90 index c159557d..b6b3fe3b 100644 --- a/base/comm/internals/psi_zswaptran.F90 +++ b/base/comm/internals/psi_zswaptran.F90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/comm/psb_cgather.f90 b/base/comm/psb_cgather.f90 index 6b98189d..98e0c46c 100644 --- a/base/comm/psb_cgather.f90 +++ b/base/comm/psb_cgather.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions @@ -173,9 +173,9 @@ end subroutine psb_cgatherm !!$ !!$ Parallel Sparse BLAS version 3.5 -!!$ (C) Copyright 2006, 2010, 2015, 2017 +!!$ (C) Copyright 2006-2018 !!$ Salvatore Filippone University of Rome Tor Vergata -!!$ Alfredo Buttari CNRS-IRIT, Toulouse +!!$ Alfredo Buttari !!$ !!$ Redistribution and use in source and binary forms, with or without !!$ modification, are permitted provided that the following conditions diff --git a/base/comm/psb_chalo.f90 b/base/comm/psb_chalo.f90 index 30d9f14b..dc92c2fa 100644 --- a/base/comm/psb_chalo.f90 +++ b/base/comm/psb_chalo.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions @@ -208,9 +208,9 @@ end subroutine psb_chalom !!$ !!$ Parallel Sparse BLAS version 3.5 -!!$ (C) Copyright 2006, 2010, 2015, 2017 +!!$ (C) Copyright 2006-2018 !!$ Salvatore Filippone University of Rome Tor Vergata -!!$ Alfredo Buttari CNRS-IRIT, Toulouse +!!$ Alfredo Buttari !!$ !!$ Redistribution and use in source and binary forms, with or without !!$ modification, are permitted provided that the following conditions diff --git a/base/comm/psb_covrl.f90 b/base/comm/psb_covrl.f90 index 3457553b..119ab5bf 100644 --- a/base/comm/psb_covrl.f90 +++ b/base/comm/psb_covrl.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions @@ -199,9 +199,9 @@ subroutine psb_covrlm(x,desc_a,info,jx,ik,work,update,mode) end subroutine psb_covrlm !!$ !!$ Parallel Sparse BLAS version 3.5 -!!$ (C) Copyright 2006, 2010, 2015, 2017 +!!$ (C) Copyright 2006-2018 !!$ Salvatore Filippone University of Rome Tor Vergata -!!$ Alfredo Buttari CNRS-IRIT, Toulouse +!!$ Alfredo Buttari !!$ !!$ Redistribution and use in source and binary forms, with or without !!$ modification, are permitted provided that the following conditions diff --git a/base/comm/psb_cscatter.F90 b/base/comm/psb_cscatter.F90 index 5f64fc68..b5f0f24f 100644 --- a/base/comm/psb_cscatter.F90 +++ b/base/comm/psb_cscatter.F90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions @@ -238,9 +238,9 @@ end subroutine psb_cscatterm !!$ !!$ Parallel Sparse BLAS version 3.5 -!!$ (C) Copyright 2006, 2010, 2015, 2017 +!!$ (C) Copyright 2006-2018 !!$ Salvatore Filippone University of Rome Tor Vergata -!!$ Alfredo Buttari CNRS-IRIT, Toulouse +!!$ Alfredo Buttari !!$ !!$ Redistribution and use in source and binary forms, with or without !!$ modification, are permitted provided that the following conditions @@ -464,9 +464,9 @@ end subroutine psb_cscatterv !!$ !!$ Parallel Sparse BLAS version 3.5 -!!$ (C) Copyright 2006, 2010, 2015, 2017 +!!$ (C) Copyright 2006-2018 !!$ Salvatore Filippone University of Rome Tor Vergata -!!$ Alfredo Buttari CNRS-IRIT, Toulouse +!!$ Alfredo Buttari !!$ !!$ Redistribution and use in source and binary forms, with or without !!$ modification, are permitted provided that the following conditions diff --git a/base/comm/psb_cspgather.F90 b/base/comm/psb_cspgather.F90 index 2b80dd4b..00155a58 100644 --- a/base/comm/psb_cspgather.F90 +++ b/base/comm/psb_cspgather.F90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/comm/psb_dgather.f90 b/base/comm/psb_dgather.f90 index 552a2a7a..1c9614d1 100644 --- a/base/comm/psb_dgather.f90 +++ b/base/comm/psb_dgather.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions @@ -173,9 +173,9 @@ end subroutine psb_dgatherm !!$ !!$ Parallel Sparse BLAS version 3.5 -!!$ (C) Copyright 2006, 2010, 2015, 2017 +!!$ (C) Copyright 2006-2018 !!$ Salvatore Filippone University of Rome Tor Vergata -!!$ Alfredo Buttari CNRS-IRIT, Toulouse +!!$ Alfredo Buttari !!$ !!$ Redistribution and use in source and binary forms, with or without !!$ modification, are permitted provided that the following conditions diff --git a/base/comm/psb_dhalo.f90 b/base/comm/psb_dhalo.f90 index 05d38392..b48365ad 100644 --- a/base/comm/psb_dhalo.f90 +++ b/base/comm/psb_dhalo.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions @@ -208,9 +208,9 @@ end subroutine psb_dhalom !!$ !!$ Parallel Sparse BLAS version 3.5 -!!$ (C) Copyright 2006, 2010, 2015, 2017 +!!$ (C) Copyright 2006-2018 !!$ Salvatore Filippone University of Rome Tor Vergata -!!$ Alfredo Buttari CNRS-IRIT, Toulouse +!!$ Alfredo Buttari !!$ !!$ Redistribution and use in source and binary forms, with or without !!$ modification, are permitted provided that the following conditions diff --git a/base/comm/psb_dovrl.f90 b/base/comm/psb_dovrl.f90 index 59d1f4ee..47ca0cea 100644 --- a/base/comm/psb_dovrl.f90 +++ b/base/comm/psb_dovrl.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions @@ -199,9 +199,9 @@ subroutine psb_dovrlm(x,desc_a,info,jx,ik,work,update,mode) end subroutine psb_dovrlm !!$ !!$ Parallel Sparse BLAS version 3.5 -!!$ (C) Copyright 2006, 2010, 2015, 2017 +!!$ (C) Copyright 2006-2018 !!$ Salvatore Filippone University of Rome Tor Vergata -!!$ Alfredo Buttari CNRS-IRIT, Toulouse +!!$ Alfredo Buttari !!$ !!$ Redistribution and use in source and binary forms, with or without !!$ modification, are permitted provided that the following conditions diff --git a/base/comm/psb_dscatter.F90 b/base/comm/psb_dscatter.F90 index 7aeae63f..bab52cb9 100644 --- a/base/comm/psb_dscatter.F90 +++ b/base/comm/psb_dscatter.F90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions @@ -238,9 +238,9 @@ end subroutine psb_dscatterm !!$ !!$ Parallel Sparse BLAS version 3.5 -!!$ (C) Copyright 2006, 2010, 2015, 2017 +!!$ (C) Copyright 2006-2018 !!$ Salvatore Filippone University of Rome Tor Vergata -!!$ Alfredo Buttari CNRS-IRIT, Toulouse +!!$ Alfredo Buttari !!$ !!$ Redistribution and use in source and binary forms, with or without !!$ modification, are permitted provided that the following conditions @@ -464,9 +464,9 @@ end subroutine psb_dscatterv !!$ !!$ Parallel Sparse BLAS version 3.5 -!!$ (C) Copyright 2006, 2010, 2015, 2017 +!!$ (C) Copyright 2006-2018 !!$ Salvatore Filippone University of Rome Tor Vergata -!!$ Alfredo Buttari CNRS-IRIT, Toulouse +!!$ Alfredo Buttari !!$ !!$ Redistribution and use in source and binary forms, with or without !!$ modification, are permitted provided that the following conditions diff --git a/base/comm/psb_dspgather.F90 b/base/comm/psb_dspgather.F90 index c7d5ce4b..0d373fdf 100644 --- a/base/comm/psb_dspgather.F90 +++ b/base/comm/psb_dspgather.F90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/comm/psb_igather.f90 b/base/comm/psb_igather.f90 index 0459a422..b0ef4370 100644 --- a/base/comm/psb_igather.f90 +++ b/base/comm/psb_igather.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions @@ -173,9 +173,9 @@ end subroutine psb_igatherm !!$ !!$ Parallel Sparse BLAS version 3.5 -!!$ (C) Copyright 2006, 2010, 2015, 2017 +!!$ (C) Copyright 2006-2018 !!$ Salvatore Filippone University of Rome Tor Vergata -!!$ Alfredo Buttari CNRS-IRIT, Toulouse +!!$ Alfredo Buttari !!$ !!$ Redistribution and use in source and binary forms, with or without !!$ modification, are permitted provided that the following conditions diff --git a/base/comm/psb_ihalo.f90 b/base/comm/psb_ihalo.f90 index 7265a0b3..e3880029 100644 --- a/base/comm/psb_ihalo.f90 +++ b/base/comm/psb_ihalo.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions @@ -208,9 +208,9 @@ end subroutine psb_ihalom !!$ !!$ Parallel Sparse BLAS version 3.5 -!!$ (C) Copyright 2006, 2010, 2015, 2017 +!!$ (C) Copyright 2006-2018 !!$ Salvatore Filippone University of Rome Tor Vergata -!!$ Alfredo Buttari CNRS-IRIT, Toulouse +!!$ Alfredo Buttari !!$ !!$ Redistribution and use in source and binary forms, with or without !!$ modification, are permitted provided that the following conditions diff --git a/base/comm/psb_iovrl.f90 b/base/comm/psb_iovrl.f90 index 087034ee..d3a73c2a 100644 --- a/base/comm/psb_iovrl.f90 +++ b/base/comm/psb_iovrl.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions @@ -199,9 +199,9 @@ subroutine psb_iovrlm(x,desc_a,info,jx,ik,work,update,mode) end subroutine psb_iovrlm !!$ !!$ Parallel Sparse BLAS version 3.5 -!!$ (C) Copyright 2006, 2010, 2015, 2017 +!!$ (C) Copyright 2006-2018 !!$ Salvatore Filippone University of Rome Tor Vergata -!!$ Alfredo Buttari CNRS-IRIT, Toulouse +!!$ Alfredo Buttari !!$ !!$ Redistribution and use in source and binary forms, with or without !!$ modification, are permitted provided that the following conditions diff --git a/base/comm/psb_iscatter.F90 b/base/comm/psb_iscatter.F90 index d9160f4e..e4ab88a1 100644 --- a/base/comm/psb_iscatter.F90 +++ b/base/comm/psb_iscatter.F90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions @@ -238,9 +238,9 @@ end subroutine psb_iscatterm !!$ !!$ Parallel Sparse BLAS version 3.5 -!!$ (C) Copyright 2006, 2010, 2015, 2017 +!!$ (C) Copyright 2006-2018 !!$ Salvatore Filippone University of Rome Tor Vergata -!!$ Alfredo Buttari CNRS-IRIT, Toulouse +!!$ Alfredo Buttari !!$ !!$ Redistribution and use in source and binary forms, with or without !!$ modification, are permitted provided that the following conditions @@ -464,9 +464,9 @@ end subroutine psb_iscatterv !!$ !!$ Parallel Sparse BLAS version 3.5 -!!$ (C) Copyright 2006, 2010, 2015, 2017 +!!$ (C) Copyright 2006-2018 !!$ Salvatore Filippone University of Rome Tor Vergata -!!$ Alfredo Buttari CNRS-IRIT, Toulouse +!!$ Alfredo Buttari !!$ !!$ Redistribution and use in source and binary forms, with or without !!$ modification, are permitted provided that the following conditions diff --git a/base/comm/psb_sgather.f90 b/base/comm/psb_sgather.f90 index f2bad870..067856b4 100644 --- a/base/comm/psb_sgather.f90 +++ b/base/comm/psb_sgather.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions @@ -173,9 +173,9 @@ end subroutine psb_sgatherm !!$ !!$ Parallel Sparse BLAS version 3.5 -!!$ (C) Copyright 2006, 2010, 2015, 2017 +!!$ (C) Copyright 2006-2018 !!$ Salvatore Filippone University of Rome Tor Vergata -!!$ Alfredo Buttari CNRS-IRIT, Toulouse +!!$ Alfredo Buttari !!$ !!$ Redistribution and use in source and binary forms, with or without !!$ modification, are permitted provided that the following conditions diff --git a/base/comm/psb_shalo.f90 b/base/comm/psb_shalo.f90 index 0b84096d..51a86ca0 100644 --- a/base/comm/psb_shalo.f90 +++ b/base/comm/psb_shalo.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions @@ -208,9 +208,9 @@ end subroutine psb_shalom !!$ !!$ Parallel Sparse BLAS version 3.5 -!!$ (C) Copyright 2006, 2010, 2015, 2017 +!!$ (C) Copyright 2006-2018 !!$ Salvatore Filippone University of Rome Tor Vergata -!!$ Alfredo Buttari CNRS-IRIT, Toulouse +!!$ Alfredo Buttari !!$ !!$ Redistribution and use in source and binary forms, with or without !!$ modification, are permitted provided that the following conditions diff --git a/base/comm/psb_sovrl.f90 b/base/comm/psb_sovrl.f90 index ffb5a056..9b2155f4 100644 --- a/base/comm/psb_sovrl.f90 +++ b/base/comm/psb_sovrl.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions @@ -199,9 +199,9 @@ subroutine psb_sovrlm(x,desc_a,info,jx,ik,work,update,mode) end subroutine psb_sovrlm !!$ !!$ Parallel Sparse BLAS version 3.5 -!!$ (C) Copyright 2006, 2010, 2015, 2017 +!!$ (C) Copyright 2006-2018 !!$ Salvatore Filippone University of Rome Tor Vergata -!!$ Alfredo Buttari CNRS-IRIT, Toulouse +!!$ Alfredo Buttari !!$ !!$ Redistribution and use in source and binary forms, with or without !!$ modification, are permitted provided that the following conditions diff --git a/base/comm/psb_sscatter.F90 b/base/comm/psb_sscatter.F90 index fe7f34de..2df167ea 100644 --- a/base/comm/psb_sscatter.F90 +++ b/base/comm/psb_sscatter.F90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions @@ -238,9 +238,9 @@ end subroutine psb_sscatterm !!$ !!$ Parallel Sparse BLAS version 3.5 -!!$ (C) Copyright 2006, 2010, 2015, 2017 +!!$ (C) Copyright 2006-2018 !!$ Salvatore Filippone University of Rome Tor Vergata -!!$ Alfredo Buttari CNRS-IRIT, Toulouse +!!$ Alfredo Buttari !!$ !!$ Redistribution and use in source and binary forms, with or without !!$ modification, are permitted provided that the following conditions @@ -464,9 +464,9 @@ end subroutine psb_sscatterv !!$ !!$ Parallel Sparse BLAS version 3.5 -!!$ (C) Copyright 2006, 2010, 2015, 2017 +!!$ (C) Copyright 2006-2018 !!$ Salvatore Filippone University of Rome Tor Vergata -!!$ Alfredo Buttari CNRS-IRIT, Toulouse +!!$ Alfredo Buttari !!$ !!$ Redistribution and use in source and binary forms, with or without !!$ modification, are permitted provided that the following conditions diff --git a/base/comm/psb_sspgather.F90 b/base/comm/psb_sspgather.F90 index ee703519..f0f828bd 100644 --- a/base/comm/psb_sspgather.F90 +++ b/base/comm/psb_sspgather.F90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/comm/psb_zgather.f90 b/base/comm/psb_zgather.f90 index 6d66c5b7..b91d4329 100644 --- a/base/comm/psb_zgather.f90 +++ b/base/comm/psb_zgather.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions @@ -173,9 +173,9 @@ end subroutine psb_zgatherm !!$ !!$ Parallel Sparse BLAS version 3.5 -!!$ (C) Copyright 2006, 2010, 2015, 2017 +!!$ (C) Copyright 2006-2018 !!$ Salvatore Filippone University of Rome Tor Vergata -!!$ Alfredo Buttari CNRS-IRIT, Toulouse +!!$ Alfredo Buttari !!$ !!$ Redistribution and use in source and binary forms, with or without !!$ modification, are permitted provided that the following conditions diff --git a/base/comm/psb_zhalo.f90 b/base/comm/psb_zhalo.f90 index 9333868c..4446da8b 100644 --- a/base/comm/psb_zhalo.f90 +++ b/base/comm/psb_zhalo.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions @@ -208,9 +208,9 @@ end subroutine psb_zhalom !!$ !!$ Parallel Sparse BLAS version 3.5 -!!$ (C) Copyright 2006, 2010, 2015, 2017 +!!$ (C) Copyright 2006-2018 !!$ Salvatore Filippone University of Rome Tor Vergata -!!$ Alfredo Buttari CNRS-IRIT, Toulouse +!!$ Alfredo Buttari !!$ !!$ Redistribution and use in source and binary forms, with or without !!$ modification, are permitted provided that the following conditions diff --git a/base/comm/psb_zovrl.f90 b/base/comm/psb_zovrl.f90 index 6b37c415..50e907e4 100644 --- a/base/comm/psb_zovrl.f90 +++ b/base/comm/psb_zovrl.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions @@ -199,9 +199,9 @@ subroutine psb_zovrlm(x,desc_a,info,jx,ik,work,update,mode) end subroutine psb_zovrlm !!$ !!$ Parallel Sparse BLAS version 3.5 -!!$ (C) Copyright 2006, 2010, 2015, 2017 +!!$ (C) Copyright 2006-2018 !!$ Salvatore Filippone University of Rome Tor Vergata -!!$ Alfredo Buttari CNRS-IRIT, Toulouse +!!$ Alfredo Buttari !!$ !!$ Redistribution and use in source and binary forms, with or without !!$ modification, are permitted provided that the following conditions diff --git a/base/comm/psb_zscatter.F90 b/base/comm/psb_zscatter.F90 index cfa8177e..0d99738b 100644 --- a/base/comm/psb_zscatter.F90 +++ b/base/comm/psb_zscatter.F90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions @@ -238,9 +238,9 @@ end subroutine psb_zscatterm !!$ !!$ Parallel Sparse BLAS version 3.5 -!!$ (C) Copyright 2006, 2010, 2015, 2017 +!!$ (C) Copyright 2006-2018 !!$ Salvatore Filippone University of Rome Tor Vergata -!!$ Alfredo Buttari CNRS-IRIT, Toulouse +!!$ Alfredo Buttari !!$ !!$ Redistribution and use in source and binary forms, with or without !!$ modification, are permitted provided that the following conditions @@ -464,9 +464,9 @@ end subroutine psb_zscatterv !!$ !!$ Parallel Sparse BLAS version 3.5 -!!$ (C) Copyright 2006, 2010, 2015, 2017 +!!$ (C) Copyright 2006-2018 !!$ Salvatore Filippone University of Rome Tor Vergata -!!$ Alfredo Buttari CNRS-IRIT, Toulouse +!!$ Alfredo Buttari !!$ !!$ Redistribution and use in source and binary forms, with or without !!$ modification, are permitted provided that the following conditions diff --git a/base/comm/psb_zspgather.F90 b/base/comm/psb_zspgather.F90 index ca46cfbd..0505420d 100644 --- a/base/comm/psb_zspgather.F90 +++ b/base/comm/psb_zspgather.F90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/internals/psb_indx_map_fnd_owner.F90 b/base/internals/psb_indx_map_fnd_owner.F90 index 799d924d..fa439062 100644 --- a/base/internals/psb_indx_map_fnd_owner.F90 +++ b/base/internals/psb_indx_map_fnd_owner.F90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/internals/psi_bld_tmphalo.f90 b/base/internals/psi_bld_tmphalo.f90 index 6a56c0c2..158a0893 100644 --- a/base/internals/psi_bld_tmphalo.f90 +++ b/base/internals/psi_bld_tmphalo.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/internals/psi_bld_tmpovrl.f90 b/base/internals/psi_bld_tmpovrl.f90 index 7f07ec2d..afe99c8b 100644 --- a/base/internals/psi_bld_tmpovrl.f90 +++ b/base/internals/psi_bld_tmpovrl.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/internals/psi_compute_size.f90 b/base/internals/psi_compute_size.f90 index 66fac670..36d52f43 100644 --- a/base/internals/psi_compute_size.f90 +++ b/base/internals/psi_compute_size.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/internals/psi_crea_bnd_elem.f90 b/base/internals/psi_crea_bnd_elem.f90 index cf7c557d..92e7c86a 100644 --- a/base/internals/psi_crea_bnd_elem.f90 +++ b/base/internals/psi_crea_bnd_elem.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/internals/psi_crea_index.f90 b/base/internals/psi_crea_index.f90 index bee30198..7025413f 100644 --- a/base/internals/psi_crea_index.f90 +++ b/base/internals/psi_crea_index.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/internals/psi_crea_ovr_elem.f90 b/base/internals/psi_crea_ovr_elem.f90 index 5540c7a6..13bf8af1 100644 --- a/base/internals/psi_crea_ovr_elem.f90 +++ b/base/internals/psi_crea_ovr_elem.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/internals/psi_desc_impl.f90 b/base/internals/psi_desc_impl.f90 index 3641e00a..8ab3bd0f 100644 --- a/base/internals/psi_desc_impl.f90 +++ b/base/internals/psi_desc_impl.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/internals/psi_desc_index.F90 b/base/internals/psi_desc_index.F90 index 11a4439e..386b89af 100644 --- a/base/internals/psi_desc_index.F90 +++ b/base/internals/psi_desc_index.F90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/internals/psi_dl_check.f90 b/base/internals/psi_dl_check.f90 index 9ed2a54e..d20ac13e 100644 --- a/base/internals/psi_dl_check.f90 +++ b/base/internals/psi_dl_check.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/internals/psi_exist_ovr_elem.f90 b/base/internals/psi_exist_ovr_elem.f90 index bdfc435f..cd7d4712 100644 --- a/base/internals/psi_exist_ovr_elem.f90 +++ b/base/internals/psi_exist_ovr_elem.f90 @@ -1,7 +1,7 @@ ! ! Parallel Sparse BLAS version 3.5 ! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University +! Salvatore Filippone ! Alfredo Buttari CNRS-IRIT, Toulouse ! ! Redistribution and use in source and binary forms, with or without diff --git a/base/internals/psi_extrct_dl.F90 b/base/internals/psi_extrct_dl.F90 index 0814ea54..cc6d8bb6 100644 --- a/base/internals/psi_extrct_dl.F90 +++ b/base/internals/psi_extrct_dl.F90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/internals/psi_fnd_owner.F90 b/base/internals/psi_fnd_owner.F90 index cd0487bb..3fe9d3b3 100644 --- a/base/internals/psi_fnd_owner.F90 +++ b/base/internals/psi_fnd_owner.F90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/internals/psi_list_search.f90 b/base/internals/psi_list_search.f90 index 9c66bf61..bb362422 100644 --- a/base/internals/psi_list_search.f90 +++ b/base/internals/psi_list_search.f90 @@ -1,7 +1,7 @@ ! ! Parallel Sparse BLAS version 3.5 ! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University +! Salvatore Filippone ! Alfredo Buttari CNRS-IRIT, Toulouse ! ! Redistribution and use in source and binary forms, with or without diff --git a/base/internals/psi_sort_dl.f90 b/base/internals/psi_sort_dl.f90 index c997e502..002d3584 100644 --- a/base/internals/psi_sort_dl.f90 +++ b/base/internals/psi_sort_dl.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/internals/psi_srtlist.f90 b/base/internals/psi_srtlist.f90 index a9013e78..fb9e2b7d 100644 --- a/base/internals/psi_srtlist.f90 +++ b/base/internals/psi_srtlist.f90 @@ -1,7 +1,7 @@ ! ! Parallel Sparse BLAS version 3.5 ! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University +! Salvatore Filippone ! Alfredo Buttari CNRS-IRIT, Toulouse ! ! Redistribution and use in source and binary forms, with or without diff --git a/base/modules/aux/psb_c_sort_mod.f90 b/base/modules/aux/psb_c_sort_mod.f90 index 0dfa176f..53e98a84 100644 --- a/base/modules/aux/psb_c_sort_mod.f90 +++ b/base/modules/aux/psb_c_sort_mod.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/modules/aux/psb_d_sort_mod.f90 b/base/modules/aux/psb_d_sort_mod.f90 index f6c7986c..72a83355 100644 --- a/base/modules/aux/psb_d_sort_mod.f90 +++ b/base/modules/aux/psb_d_sort_mod.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/modules/aux/psb_hash_mod.f90 b/base/modules/aux/psb_hash_mod.f90 index 998f3e1e..ea10d1d7 100644 --- a/base/modules/aux/psb_hash_mod.f90 +++ b/base/modules/aux/psb_hash_mod.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/modules/aux/psb_i_sort_mod.f90 b/base/modules/aux/psb_i_sort_mod.f90 index 187042f7..29c94c8f 100644 --- a/base/modules/aux/psb_i_sort_mod.f90 +++ b/base/modules/aux/psb_i_sort_mod.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/modules/aux/psb_ip_reord_mod.f90 b/base/modules/aux/psb_ip_reord_mod.f90 index 2c593126..325bc1be 100644 --- a/base/modules/aux/psb_ip_reord_mod.f90 +++ b/base/modules/aux/psb_ip_reord_mod.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/modules/aux/psb_s_sort_mod.f90 b/base/modules/aux/psb_s_sort_mod.f90 index 6d4c7392..4272dfe9 100644 --- a/base/modules/aux/psb_s_sort_mod.f90 +++ b/base/modules/aux/psb_s_sort_mod.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/modules/aux/psb_sort_mod.f90 b/base/modules/aux/psb_sort_mod.f90 index 7e4d1825..b0ffd986 100644 --- a/base/modules/aux/psb_sort_mod.f90 +++ b/base/modules/aux/psb_sort_mod.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/modules/aux/psb_string_mod.f90 b/base/modules/aux/psb_string_mod.f90 index 5d358d7e..a9457639 100644 --- a/base/modules/aux/psb_string_mod.f90 +++ b/base/modules/aux/psb_string_mod.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/modules/aux/psb_z_sort_mod.f90 b/base/modules/aux/psb_z_sort_mod.f90 index e13c3c84..15294b1c 100644 --- a/base/modules/aux/psb_z_sort_mod.f90 +++ b/base/modules/aux/psb_z_sort_mod.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/modules/aux/psi_serial_mod.f90 b/base/modules/aux/psi_serial_mod.f90 index 9f05d695..9125fed8 100644 --- a/base/modules/aux/psi_serial_mod.f90 +++ b/base/modules/aux/psi_serial_mod.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/modules/comm/psb_base_linmap_mod.f90 b/base/modules/comm/psb_base_linmap_mod.f90 index 531df940..760ec3ce 100644 --- a/base/modules/comm/psb_base_linmap_mod.f90 +++ b/base/modules/comm/psb_base_linmap_mod.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/modules/comm/psb_c_comm_mod.f90 b/base/modules/comm/psb_c_comm_mod.f90 index 2ced48fe..e14d6673 100644 --- a/base/modules/comm/psb_c_comm_mod.f90 +++ b/base/modules/comm/psb_c_comm_mod.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/modules/comm/psb_c_linmap_mod.f90 b/base/modules/comm/psb_c_linmap_mod.f90 index a4b5a6c6..90301141 100644 --- a/base/modules/comm/psb_c_linmap_mod.f90 +++ b/base/modules/comm/psb_c_linmap_mod.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/modules/comm/psb_comm_mod.f90 b/base/modules/comm/psb_comm_mod.f90 index 2a8dc541..bd2b1f3d 100644 --- a/base/modules/comm/psb_comm_mod.f90 +++ b/base/modules/comm/psb_comm_mod.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/modules/comm/psb_d_comm_mod.f90 b/base/modules/comm/psb_d_comm_mod.f90 index 5f8ff1b0..7c532dad 100644 --- a/base/modules/comm/psb_d_comm_mod.f90 +++ b/base/modules/comm/psb_d_comm_mod.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/modules/comm/psb_d_linmap_mod.f90 b/base/modules/comm/psb_d_linmap_mod.f90 index 5ad3ac86..9fd661d8 100644 --- a/base/modules/comm/psb_d_linmap_mod.f90 +++ b/base/modules/comm/psb_d_linmap_mod.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/modules/comm/psb_i_comm_mod.f90 b/base/modules/comm/psb_i_comm_mod.f90 index 955a9938..fe2a7291 100644 --- a/base/modules/comm/psb_i_comm_mod.f90 +++ b/base/modules/comm/psb_i_comm_mod.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/modules/comm/psb_linmap_mod.f90 b/base/modules/comm/psb_linmap_mod.f90 index a85ee42b..f27926c9 100644 --- a/base/modules/comm/psb_linmap_mod.f90 +++ b/base/modules/comm/psb_linmap_mod.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/modules/comm/psb_s_comm_mod.f90 b/base/modules/comm/psb_s_comm_mod.f90 index 9bd5caca..82c848b7 100644 --- a/base/modules/comm/psb_s_comm_mod.f90 +++ b/base/modules/comm/psb_s_comm_mod.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/modules/comm/psb_s_linmap_mod.f90 b/base/modules/comm/psb_s_linmap_mod.f90 index ebe2196c..5e44e2c9 100644 --- a/base/modules/comm/psb_s_linmap_mod.f90 +++ b/base/modules/comm/psb_s_linmap_mod.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/modules/comm/psb_z_comm_mod.f90 b/base/modules/comm/psb_z_comm_mod.f90 index 26269c37..e4a6e9ea 100644 --- a/base/modules/comm/psb_z_comm_mod.f90 +++ b/base/modules/comm/psb_z_comm_mod.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/modules/comm/psb_z_linmap_mod.f90 b/base/modules/comm/psb_z_linmap_mod.f90 index 55e434c4..d7159433 100644 --- a/base/modules/comm/psb_z_linmap_mod.f90 +++ b/base/modules/comm/psb_z_linmap_mod.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/modules/desc/psb_desc_const_mod.f90 b/base/modules/desc/psb_desc_const_mod.f90 index 38387790..801a49e9 100644 --- a/base/modules/desc/psb_desc_const_mod.f90 +++ b/base/modules/desc/psb_desc_const_mod.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/modules/desc/psb_desc_mod.F90 b/base/modules/desc/psb_desc_mod.F90 index 5122ce75..5d5b22a7 100644 --- a/base/modules/desc/psb_desc_mod.F90 +++ b/base/modules/desc/psb_desc_mod.F90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/modules/desc/psb_gen_block_map_mod.f90 b/base/modules/desc/psb_gen_block_map_mod.f90 index 25172885..1b926b37 100644 --- a/base/modules/desc/psb_gen_block_map_mod.f90 +++ b/base/modules/desc/psb_gen_block_map_mod.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/modules/desc/psb_glist_map_mod.f90 b/base/modules/desc/psb_glist_map_mod.f90 index d98b58c1..4097ae3c 100644 --- a/base/modules/desc/psb_glist_map_mod.f90 +++ b/base/modules/desc/psb_glist_map_mod.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/modules/desc/psb_hash_map_mod.f90 b/base/modules/desc/psb_hash_map_mod.f90 index 7c8047ad..68a8faa6 100644 --- a/base/modules/desc/psb_hash_map_mod.f90 +++ b/base/modules/desc/psb_hash_map_mod.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/modules/desc/psb_indx_map_mod.f90 b/base/modules/desc/psb_indx_map_mod.f90 index aeb29f38..fcfb666b 100644 --- a/base/modules/desc/psb_indx_map_mod.f90 +++ b/base/modules/desc/psb_indx_map_mod.f90 @@ -1,9 +1,9 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/modules/desc/psb_list_map_mod.f90 b/base/modules/desc/psb_list_map_mod.f90 index 01a8c5ea..a11e39ab 100644 --- a/base/modules/desc/psb_list_map_mod.f90 +++ b/base/modules/desc/psb_list_map_mod.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/modules/desc/psb_repl_map_mod.f90 b/base/modules/desc/psb_repl_map_mod.f90 index 5c87beb0..6a6225bd 100644 --- a/base/modules/desc/psb_repl_map_mod.f90 +++ b/base/modules/desc/psb_repl_map_mod.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/modules/error.f90 b/base/modules/error.f90 index a0d8897d..fe8fea18 100644 --- a/base/modules/error.f90 +++ b/base/modules/error.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/modules/psb_base_mod.f90 b/base/modules/psb_base_mod.f90 index 3d6f2dd4..c042135b 100644 --- a/base/modules/psb_base_mod.f90 +++ b/base/modules/psb_base_mod.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/modules/psb_check_mod.f90 b/base/modules/psb_check_mod.f90 index 1bceea65..db7e6fe6 100644 --- a/base/modules/psb_check_mod.f90 +++ b/base/modules/psb_check_mod.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/modules/psb_const_mod.F90 b/base/modules/psb_const_mod.F90 index 45b5087a..80b88ef4 100644 --- a/base/modules/psb_const_mod.F90 +++ b/base/modules/psb_const_mod.F90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/modules/psb_error_mod.F90 b/base/modules/psb_error_mod.F90 index 5dad978c..c49ed41e 100644 --- a/base/modules/psb_error_mod.F90 +++ b/base/modules/psb_error_mod.F90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/modules/psb_realloc_mod.F90 b/base/modules/psb_realloc_mod.F90 index 05f87d19..9d15c6ae 100644 --- a/base/modules/psb_realloc_mod.F90 +++ b/base/modules/psb_realloc_mod.F90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/modules/psblas/psb_c_psblas_mod.F90 b/base/modules/psblas/psb_c_psblas_mod.F90 index 78cf2d4f..22a1d82e 100644 --- a/base/modules/psblas/psb_c_psblas_mod.F90 +++ b/base/modules/psblas/psb_c_psblas_mod.F90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/modules/psblas/psb_d_psblas_mod.F90 b/base/modules/psblas/psb_d_psblas_mod.F90 index 944e5ebc..ece28141 100644 --- a/base/modules/psblas/psb_d_psblas_mod.F90 +++ b/base/modules/psblas/psb_d_psblas_mod.F90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/modules/psblas/psb_psblas_mod.f90 b/base/modules/psblas/psb_psblas_mod.f90 index 72f07df9..d582c36f 100644 --- a/base/modules/psblas/psb_psblas_mod.f90 +++ b/base/modules/psblas/psb_psblas_mod.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/modules/psblas/psb_s_psblas_mod.F90 b/base/modules/psblas/psb_s_psblas_mod.F90 index 9eead714..fae7aaf0 100644 --- a/base/modules/psblas/psb_s_psblas_mod.F90 +++ b/base/modules/psblas/psb_s_psblas_mod.F90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/modules/psblas/psb_z_psblas_mod.F90 b/base/modules/psblas/psb_z_psblas_mod.F90 index 67a25ff1..b218ce5b 100644 --- a/base/modules/psblas/psb_z_psblas_mod.F90 +++ b/base/modules/psblas/psb_z_psblas_mod.F90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/modules/psi_bcast_mod.F90 b/base/modules/psi_bcast_mod.F90 index b937cd36..6aa2ac3c 100644 --- a/base/modules/psi_bcast_mod.F90 +++ b/base/modules/psi_bcast_mod.F90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/modules/psi_c_mod.f90 b/base/modules/psi_c_mod.f90 index 93340620..19ca1fd0 100644 --- a/base/modules/psi_c_mod.f90 +++ b/base/modules/psi_c_mod.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/modules/psi_comm_buffers_mod.F90 b/base/modules/psi_comm_buffers_mod.F90 index fb418bb4..fa86eea7 100644 --- a/base/modules/psi_comm_buffers_mod.F90 +++ b/base/modules/psi_comm_buffers_mod.F90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/modules/psi_d_mod.f90 b/base/modules/psi_d_mod.f90 index ac2eb963..a31d8f28 100644 --- a/base/modules/psi_d_mod.f90 +++ b/base/modules/psi_d_mod.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/modules/psi_i_mod.f90 b/base/modules/psi_i_mod.f90 index c0a62be9..76d73726 100644 --- a/base/modules/psi_i_mod.f90 +++ b/base/modules/psi_i_mod.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/modules/psi_mod.f90 b/base/modules/psi_mod.f90 index dc695d47..8c061a58 100644 --- a/base/modules/psi_mod.f90 +++ b/base/modules/psi_mod.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/modules/psi_p2p_mod.F90 b/base/modules/psi_p2p_mod.F90 index e7586500..4b614970 100644 --- a/base/modules/psi_p2p_mod.F90 +++ b/base/modules/psi_p2p_mod.F90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/modules/psi_penv_mod.F90 b/base/modules/psi_penv_mod.F90 index 01cea461..0be037a1 100644 --- a/base/modules/psi_penv_mod.F90 +++ b/base/modules/psi_penv_mod.F90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/modules/psi_reduce_mod.F90 b/base/modules/psi_reduce_mod.F90 index 78584c43..597d8f8e 100644 --- a/base/modules/psi_reduce_mod.F90 +++ b/base/modules/psi_reduce_mod.F90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/modules/psi_s_mod.f90 b/base/modules/psi_s_mod.f90 index 890aa437..5da0a602 100644 --- a/base/modules/psi_s_mod.f90 +++ b/base/modules/psi_s_mod.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/modules/psi_z_mod.f90 b/base/modules/psi_z_mod.f90 index e1267240..e5bbc9f4 100644 --- a/base/modules/psi_z_mod.f90 +++ b/base/modules/psi_z_mod.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/modules/serial/psb_base_mat_mod.f90 b/base/modules/serial/psb_base_mat_mod.f90 index fe09b6db..40085498 100644 --- a/base/modules/serial/psb_base_mat_mod.f90 +++ b/base/modules/serial/psb_base_mat_mod.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/modules/serial/psb_c_base_mat_mod.f90 b/base/modules/serial/psb_c_base_mat_mod.f90 index 6990a210..01215a42 100644 --- a/base/modules/serial/psb_c_base_mat_mod.f90 +++ b/base/modules/serial/psb_c_base_mat_mod.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/modules/serial/psb_c_base_vect_mod.f90 b/base/modules/serial/psb_c_base_vect_mod.f90 index 7462669c..c0722944 100644 --- a/base/modules/serial/psb_c_base_vect_mod.f90 +++ b/base/modules/serial/psb_c_base_vect_mod.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/modules/serial/psb_c_csc_mat_mod.f90 b/base/modules/serial/psb_c_csc_mat_mod.f90 index 3aa0aeda..b487d0bf 100644 --- a/base/modules/serial/psb_c_csc_mat_mod.f90 +++ b/base/modules/serial/psb_c_csc_mat_mod.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/modules/serial/psb_c_csr_mat_mod.f90 b/base/modules/serial/psb_c_csr_mat_mod.f90 index b1dc7edf..21a96d68 100644 --- a/base/modules/serial/psb_c_csr_mat_mod.f90 +++ b/base/modules/serial/psb_c_csr_mat_mod.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/modules/serial/psb_c_mat_mod.f90 b/base/modules/serial/psb_c_mat_mod.f90 index 70fa36d7..7b1bbd06 100644 --- a/base/modules/serial/psb_c_mat_mod.f90 +++ b/base/modules/serial/psb_c_mat_mod.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/modules/serial/psb_c_serial_mod.f90 b/base/modules/serial/psb_c_serial_mod.f90 index ace7e8cb..1aef3e84 100644 --- a/base/modules/serial/psb_c_serial_mod.f90 +++ b/base/modules/serial/psb_c_serial_mod.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/modules/serial/psb_c_vect_mod.F90 b/base/modules/serial/psb_c_vect_mod.F90 index 683a4a87..c05f1dc7 100644 --- a/base/modules/serial/psb_c_vect_mod.F90 +++ b/base/modules/serial/psb_c_vect_mod.F90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/modules/serial/psb_d_base_mat_mod.f90 b/base/modules/serial/psb_d_base_mat_mod.f90 index ac88a9d0..ab307d14 100644 --- a/base/modules/serial/psb_d_base_mat_mod.f90 +++ b/base/modules/serial/psb_d_base_mat_mod.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/modules/serial/psb_d_base_vect_mod.f90 b/base/modules/serial/psb_d_base_vect_mod.f90 index dafeb96c..3fc046b2 100644 --- a/base/modules/serial/psb_d_base_vect_mod.f90 +++ b/base/modules/serial/psb_d_base_vect_mod.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/modules/serial/psb_d_csc_mat_mod.f90 b/base/modules/serial/psb_d_csc_mat_mod.f90 index 6596fde5..2b9d552c 100644 --- a/base/modules/serial/psb_d_csc_mat_mod.f90 +++ b/base/modules/serial/psb_d_csc_mat_mod.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/modules/serial/psb_d_csr_mat_mod.f90 b/base/modules/serial/psb_d_csr_mat_mod.f90 index d1655449..b3bb27cd 100644 --- a/base/modules/serial/psb_d_csr_mat_mod.f90 +++ b/base/modules/serial/psb_d_csr_mat_mod.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/modules/serial/psb_d_mat_mod.f90 b/base/modules/serial/psb_d_mat_mod.f90 index 2c065f70..00ff0d80 100644 --- a/base/modules/serial/psb_d_mat_mod.f90 +++ b/base/modules/serial/psb_d_mat_mod.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/modules/serial/psb_d_serial_mod.f90 b/base/modules/serial/psb_d_serial_mod.f90 index 3dea11d2..b0926090 100644 --- a/base/modules/serial/psb_d_serial_mod.f90 +++ b/base/modules/serial/psb_d_serial_mod.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/modules/serial/psb_d_vect_mod.F90 b/base/modules/serial/psb_d_vect_mod.F90 index 6829e507..baa97495 100644 --- a/base/modules/serial/psb_d_vect_mod.F90 +++ b/base/modules/serial/psb_d_vect_mod.F90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/modules/serial/psb_i_base_vect_mod.f90 b/base/modules/serial/psb_i_base_vect_mod.f90 index 0f6a03e7..9eaa8fc6 100644 --- a/base/modules/serial/psb_i_base_vect_mod.f90 +++ b/base/modules/serial/psb_i_base_vect_mod.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/modules/serial/psb_i_vect_mod.F90 b/base/modules/serial/psb_i_vect_mod.F90 index 86d57705..2d297058 100644 --- a/base/modules/serial/psb_i_vect_mod.F90 +++ b/base/modules/serial/psb_i_vect_mod.F90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/modules/serial/psb_s_base_mat_mod.f90 b/base/modules/serial/psb_s_base_mat_mod.f90 index 5b39b607..e23202d1 100644 --- a/base/modules/serial/psb_s_base_mat_mod.f90 +++ b/base/modules/serial/psb_s_base_mat_mod.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/modules/serial/psb_s_base_vect_mod.f90 b/base/modules/serial/psb_s_base_vect_mod.f90 index 79dc11cd..91890d93 100644 --- a/base/modules/serial/psb_s_base_vect_mod.f90 +++ b/base/modules/serial/psb_s_base_vect_mod.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/modules/serial/psb_s_csc_mat_mod.f90 b/base/modules/serial/psb_s_csc_mat_mod.f90 index dfe3b231..ff1a915d 100644 --- a/base/modules/serial/psb_s_csc_mat_mod.f90 +++ b/base/modules/serial/psb_s_csc_mat_mod.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/modules/serial/psb_s_csr_mat_mod.f90 b/base/modules/serial/psb_s_csr_mat_mod.f90 index 831bea21..4ef86720 100644 --- a/base/modules/serial/psb_s_csr_mat_mod.f90 +++ b/base/modules/serial/psb_s_csr_mat_mod.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/modules/serial/psb_s_mat_mod.f90 b/base/modules/serial/psb_s_mat_mod.f90 index 68cd902c..6a36370a 100644 --- a/base/modules/serial/psb_s_mat_mod.f90 +++ b/base/modules/serial/psb_s_mat_mod.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/modules/serial/psb_s_serial_mod.f90 b/base/modules/serial/psb_s_serial_mod.f90 index 6e38d659..902d06f9 100644 --- a/base/modules/serial/psb_s_serial_mod.f90 +++ b/base/modules/serial/psb_s_serial_mod.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/modules/serial/psb_s_vect_mod.F90 b/base/modules/serial/psb_s_vect_mod.F90 index 5aa2ed05..b4ecd394 100644 --- a/base/modules/serial/psb_s_vect_mod.F90 +++ b/base/modules/serial/psb_s_vect_mod.F90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/modules/serial/psb_serial_mod.f90 b/base/modules/serial/psb_serial_mod.f90 index 88654bd3..7cfd85e9 100644 --- a/base/modules/serial/psb_serial_mod.f90 +++ b/base/modules/serial/psb_serial_mod.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/modules/serial/psb_z_base_mat_mod.f90 b/base/modules/serial/psb_z_base_mat_mod.f90 index 7359aea2..eff29ed2 100644 --- a/base/modules/serial/psb_z_base_mat_mod.f90 +++ b/base/modules/serial/psb_z_base_mat_mod.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/modules/serial/psb_z_base_vect_mod.f90 b/base/modules/serial/psb_z_base_vect_mod.f90 index d2cf05d6..f80cb12e 100644 --- a/base/modules/serial/psb_z_base_vect_mod.f90 +++ b/base/modules/serial/psb_z_base_vect_mod.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/modules/serial/psb_z_csc_mat_mod.f90 b/base/modules/serial/psb_z_csc_mat_mod.f90 index e3e48bf1..99c5b2dd 100644 --- a/base/modules/serial/psb_z_csc_mat_mod.f90 +++ b/base/modules/serial/psb_z_csc_mat_mod.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/modules/serial/psb_z_csr_mat_mod.f90 b/base/modules/serial/psb_z_csr_mat_mod.f90 index 313a2241..a6ec9b36 100644 --- a/base/modules/serial/psb_z_csr_mat_mod.f90 +++ b/base/modules/serial/psb_z_csr_mat_mod.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/modules/serial/psb_z_mat_mod.f90 b/base/modules/serial/psb_z_mat_mod.f90 index 0cfca6b3..9e5d42b2 100644 --- a/base/modules/serial/psb_z_mat_mod.f90 +++ b/base/modules/serial/psb_z_mat_mod.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/modules/serial/psb_z_serial_mod.f90 b/base/modules/serial/psb_z_serial_mod.f90 index 7e6e48bb..fdefb0a8 100644 --- a/base/modules/serial/psb_z_serial_mod.f90 +++ b/base/modules/serial/psb_z_serial_mod.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/modules/serial/psb_z_vect_mod.F90 b/base/modules/serial/psb_z_vect_mod.F90 index dfe9cfe0..788d3ab1 100644 --- a/base/modules/serial/psb_z_vect_mod.F90 +++ b/base/modules/serial/psb_z_vect_mod.F90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/modules/tools/psb_c_tools_mod.f90 b/base/modules/tools/psb_c_tools_mod.f90 index f24c5b72..cda6b1a3 100644 --- a/base/modules/tools/psb_c_tools_mod.f90 +++ b/base/modules/tools/psb_c_tools_mod.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/modules/tools/psb_cd_tools_mod.f90 b/base/modules/tools/psb_cd_tools_mod.f90 index 4c72ee65..1a689ac8 100644 --- a/base/modules/tools/psb_cd_tools_mod.f90 +++ b/base/modules/tools/psb_cd_tools_mod.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/modules/tools/psb_d_tools_mod.f90 b/base/modules/tools/psb_d_tools_mod.f90 index d71d86da..95c2314c 100644 --- a/base/modules/tools/psb_d_tools_mod.f90 +++ b/base/modules/tools/psb_d_tools_mod.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/modules/tools/psb_i_tools_mod.f90 b/base/modules/tools/psb_i_tools_mod.f90 index 7289b12a..9fc587bd 100644 --- a/base/modules/tools/psb_i_tools_mod.f90 +++ b/base/modules/tools/psb_i_tools_mod.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/modules/tools/psb_s_tools_mod.f90 b/base/modules/tools/psb_s_tools_mod.f90 index fb1e7c62..77b7e9a9 100644 --- a/base/modules/tools/psb_s_tools_mod.f90 +++ b/base/modules/tools/psb_s_tools_mod.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/modules/tools/psb_tools_mod.f90 b/base/modules/tools/psb_tools_mod.f90 index 1bb23f4a..a91b2b11 100644 --- a/base/modules/tools/psb_tools_mod.f90 +++ b/base/modules/tools/psb_tools_mod.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/modules/tools/psb_z_tools_mod.f90 b/base/modules/tools/psb_z_tools_mod.f90 index d36d49ca..1fd7d1bd 100644 --- a/base/modules/tools/psb_z_tools_mod.f90 +++ b/base/modules/tools/psb_z_tools_mod.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/psblas/psb_camax.f90 b/base/psblas/psb_camax.f90 index 33442dfc..fea7798e 100644 --- a/base/psblas/psb_camax.f90 +++ b/base/psblas/psb_camax.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions @@ -122,9 +122,9 @@ end function psb_camax !!$ !!$ Parallel Sparse BLAS version 3.5 -!!$ (C) Copyright 2006, 2010, 2015, 2017 +!!$ (C) Copyright 2006-2018 !!$ Salvatore Filippone University of Rome Tor Vergata -!!$ Alfredo Buttari CNRS-IRIT, Toulouse +!!$ Alfredo Buttari !!$ !!$ Redistribution and use in source and binary forms, with or without !!$ modification, are permitted provided that the following conditions @@ -311,9 +311,9 @@ end function psb_camax_vect !!$ !!$ Parallel Sparse BLAS version 3.5 -!!$ (C) Copyright 2006, 2010, 2015, 2017 +!!$ (C) Copyright 2006-2018 !!$ Salvatore Filippone University of Rome Tor Vergata -!!$ Alfredo Buttari CNRS-IRIT, Toulouse +!!$ Alfredo Buttari !!$ !!$ Redistribution and use in source and binary forms, with or without !!$ modification, are permitted provided that the following conditions @@ -425,9 +425,9 @@ end subroutine psb_camaxvs !!$ !!$ Parallel Sparse BLAS version 3.5 -!!$ (C) Copyright 2006, 2010, 2015, 2017 +!!$ (C) Copyright 2006-2018 !!$ Salvatore Filippone University of Rome Tor Vergata -!!$ Alfredo Buttari CNRS-IRIT, Toulouse +!!$ Alfredo Buttari !!$ !!$ Redistribution and use in source and binary forms, with or without !!$ modification, are permitted provided that the following conditions diff --git a/base/psblas/psb_casum.f90 b/base/psblas/psb_casum.f90 index f490d622..bd77453f 100644 --- a/base/psblas/psb_casum.f90 +++ b/base/psblas/psb_casum.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions @@ -202,9 +202,9 @@ end function psb_casum_vect !!$ !!$ Parallel Sparse BLAS version 3.5 -!!$ (C) Copyright 2006, 2010, 2015, 2017 +!!$ (C) Copyright 2006-2018 !!$ Salvatore Filippone University of Rome Tor Vergata -!!$ Alfredo Buttari CNRS-IRIT, Toulouse +!!$ Alfredo Buttari !!$ !!$ Redistribution and use in source and binary forms, with or without !!$ modification, are permitted provided that the following conditions @@ -320,9 +320,9 @@ end function psb_casumv !!$ !!$ Parallel Sparse BLAS version 3.5 -!!$ (C) Copyright 2006, 2010, 2015, 2017 +!!$ (C) Copyright 2006-2018 !!$ Salvatore Filippone University of Rome Tor Vergata -!!$ Alfredo Buttari CNRS-IRIT, Toulouse +!!$ Alfredo Buttari !!$ !!$ Redistribution and use in source and binary forms, with or without !!$ modification, are permitted provided that the following conditions diff --git a/base/psblas/psb_caxpby.f90 b/base/psblas/psb_caxpby.f90 index 6ca959a5..66e6512d 100644 --- a/base/psblas/psb_caxpby.f90 +++ b/base/psblas/psb_caxpby.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions @@ -235,9 +235,9 @@ end subroutine psb_caxpby !!$ !!$ Parallel Sparse BLAS version 3.5 -!!$ (C) Copyright 2006, 2010, 2015, 2017 +!!$ (C) Copyright 2006-2018 !!$ Salvatore Filippone University of Rome Tor Vergata -!!$ Alfredo Buttari CNRS-IRIT, Toulouse +!!$ Alfredo Buttari !!$ !!$ Redistribution and use in source and binary forms, with or without !!$ modification, are permitted provided that the following conditions diff --git a/base/psblas/psb_cdot.f90 b/base/psblas/psb_cdot.f90 index ed6290c6..7e669761 100644 --- a/base/psblas/psb_cdot.f90 +++ b/base/psblas/psb_cdot.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions @@ -243,9 +243,9 @@ end function psb_cdot !!$ !!$ Parallel Sparse BLAS version 3.5 -!!$ (C) Copyright 2006, 2010, 2015, 2017 +!!$ (C) Copyright 2006-2018 !!$ Salvatore Filippone University of Rome Tor Vergata -!!$ Alfredo Buttari CNRS-IRIT, Toulouse +!!$ Alfredo Buttari !!$ !!$ Redistribution and use in source and binary forms, with or without !!$ modification, are permitted provided that the following conditions @@ -367,9 +367,9 @@ end function psb_cdotv !!$ !!$ Parallel Sparse BLAS version 3.5 -!!$ (C) Copyright 2006, 2010, 2015, 2017 +!!$ (C) Copyright 2006-2018 !!$ Salvatore Filippone University of Rome Tor Vergata -!!$ Alfredo Buttari CNRS-IRIT, Toulouse +!!$ Alfredo Buttari !!$ !!$ Redistribution and use in source and binary forms, with or without !!$ modification, are permitted provided that the following conditions @@ -490,9 +490,9 @@ end subroutine psb_cdotvs !!$ !!$ Parallel Sparse BLAS version 3.5 -!!$ (C) Copyright 2006, 2010, 2015, 2017 +!!$ (C) Copyright 2006-2018 !!$ Salvatore Filippone University of Rome Tor Vergata -!!$ Alfredo Buttari CNRS-IRIT, Toulouse +!!$ Alfredo Buttari !!$ !!$ Redistribution and use in source and binary forms, with or without !!$ modification, are permitted provided that the following conditions diff --git a/base/psblas/psb_cnrm2.f90 b/base/psblas/psb_cnrm2.f90 index b1121469..893e3843 100644 --- a/base/psblas/psb_cnrm2.f90 +++ b/base/psblas/psb_cnrm2.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions @@ -128,9 +128,9 @@ end function psb_cnrm2 !!$ !!$ Parallel Sparse BLAS version 3.5 -!!$ (C) Copyright 2006, 2010, 2015, 2017 +!!$ (C) Copyright 2006-2018 !!$ Salvatore Filippone University of Rome Tor Vergata -!!$ Alfredo Buttari CNRS-IRIT, Toulouse +!!$ Alfredo Buttari !!$ !!$ Redistribution and use in source and binary forms, with or without !!$ modification, are permitted provided that the following conditions @@ -332,9 +332,9 @@ end function psb_cnrm2_vect !!$ !!$ Parallel Sparse BLAS version 3.5 -!!$ (C) Copyright 2006, 2010, 2015, 2017 +!!$ (C) Copyright 2006-2018 !!$ Salvatore Filippone University of Rome Tor Vergata -!!$ Alfredo Buttari CNRS-IRIT, Toulouse +!!$ Alfredo Buttari !!$ !!$ Redistribution and use in source and binary forms, with or without !!$ modification, are permitted provided that the following conditions diff --git a/base/psblas/psb_cnrmi.f90 b/base/psblas/psb_cnrmi.f90 index 6dba7a75..fced0cbd 100644 --- a/base/psblas/psb_cnrmi.f90 +++ b/base/psblas/psb_cnrmi.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/psblas/psb_cspmm.f90 b/base/psblas/psb_cspmm.f90 index 64486575..533a771e 100644 --- a/base/psblas/psb_cspmm.f90 +++ b/base/psblas/psb_cspmm.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions @@ -358,9 +358,9 @@ end subroutine psb_cspmm !!$ !!$ Parallel Sparse BLAS version 3.5 -!!$ (C) Copyright 2006, 2010, 2015, 2017 +!!$ (C) Copyright 2006-2018 !!$ Salvatore Filippone University of Rome Tor Vergata -!!$ Alfredo Buttari CNRS-IRIT, Toulouse +!!$ Alfredo Buttari !!$ !!$ Redistribution and use in source and binary forms, with or without !!$ modification, are permitted provided that the following conditions diff --git a/base/psblas/psb_cspnrm1.f90 b/base/psblas/psb_cspnrm1.f90 index 366e5c2e..02a98424 100644 --- a/base/psblas/psb_cspnrm1.f90 +++ b/base/psblas/psb_cspnrm1.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/psblas/psb_cspsm.f90 b/base/psblas/psb_cspsm.f90 index 56319fac..034f98e0 100644 --- a/base/psblas/psb_cspsm.f90 +++ b/base/psblas/psb_cspsm.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions @@ -283,9 +283,9 @@ end subroutine psb_cspsm !!$ !!$ Parallel Sparse BLAS version 3.5 -!!$ (C) Copyright 2006, 2010, 2015, 2017 +!!$ (C) Copyright 2006-2018 !!$ Salvatore Filippone University of Rome Tor Vergata -!!$ Alfredo Buttari CNRS-IRIT, Toulouse +!!$ Alfredo Buttari !!$ !!$ Redistribution and use in source and binary forms, with or without !!$ modification, are permitted provided that the following conditions diff --git a/base/psblas/psb_damax.f90 b/base/psblas/psb_damax.f90 index eeeab0f2..b04e9646 100644 --- a/base/psblas/psb_damax.f90 +++ b/base/psblas/psb_damax.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions @@ -122,9 +122,9 @@ end function psb_damax !!$ !!$ Parallel Sparse BLAS version 3.5 -!!$ (C) Copyright 2006, 2010, 2015, 2017 +!!$ (C) Copyright 2006-2018 !!$ Salvatore Filippone University of Rome Tor Vergata -!!$ Alfredo Buttari CNRS-IRIT, Toulouse +!!$ Alfredo Buttari !!$ !!$ Redistribution and use in source and binary forms, with or without !!$ modification, are permitted provided that the following conditions @@ -311,9 +311,9 @@ end function psb_damax_vect !!$ !!$ Parallel Sparse BLAS version 3.5 -!!$ (C) Copyright 2006, 2010, 2015, 2017 +!!$ (C) Copyright 2006-2018 !!$ Salvatore Filippone University of Rome Tor Vergata -!!$ Alfredo Buttari CNRS-IRIT, Toulouse +!!$ Alfredo Buttari !!$ !!$ Redistribution and use in source and binary forms, with or without !!$ modification, are permitted provided that the following conditions @@ -425,9 +425,9 @@ end subroutine psb_damaxvs !!$ !!$ Parallel Sparse BLAS version 3.5 -!!$ (C) Copyright 2006, 2010, 2015, 2017 +!!$ (C) Copyright 2006-2018 !!$ Salvatore Filippone University of Rome Tor Vergata -!!$ Alfredo Buttari CNRS-IRIT, Toulouse +!!$ Alfredo Buttari !!$ !!$ Redistribution and use in source and binary forms, with or without !!$ modification, are permitted provided that the following conditions diff --git a/base/psblas/psb_dasum.f90 b/base/psblas/psb_dasum.f90 index 8470bca9..4871c29f 100644 --- a/base/psblas/psb_dasum.f90 +++ b/base/psblas/psb_dasum.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions @@ -202,9 +202,9 @@ end function psb_dasum_vect !!$ !!$ Parallel Sparse BLAS version 3.5 -!!$ (C) Copyright 2006, 2010, 2015, 2017 +!!$ (C) Copyright 2006-2018 !!$ Salvatore Filippone University of Rome Tor Vergata -!!$ Alfredo Buttari CNRS-IRIT, Toulouse +!!$ Alfredo Buttari !!$ !!$ Redistribution and use in source and binary forms, with or without !!$ modification, are permitted provided that the following conditions @@ -320,9 +320,9 @@ end function psb_dasumv !!$ !!$ Parallel Sparse BLAS version 3.5 -!!$ (C) Copyright 2006, 2010, 2015, 2017 +!!$ (C) Copyright 2006-2018 !!$ Salvatore Filippone University of Rome Tor Vergata -!!$ Alfredo Buttari CNRS-IRIT, Toulouse +!!$ Alfredo Buttari !!$ !!$ Redistribution and use in source and binary forms, with or without !!$ modification, are permitted provided that the following conditions diff --git a/base/psblas/psb_daxpby.f90 b/base/psblas/psb_daxpby.f90 index fe548bc0..a67e1055 100644 --- a/base/psblas/psb_daxpby.f90 +++ b/base/psblas/psb_daxpby.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions @@ -235,9 +235,9 @@ end subroutine psb_daxpby !!$ !!$ Parallel Sparse BLAS version 3.5 -!!$ (C) Copyright 2006, 2010, 2015, 2017 +!!$ (C) Copyright 2006-2018 !!$ Salvatore Filippone University of Rome Tor Vergata -!!$ Alfredo Buttari CNRS-IRIT, Toulouse +!!$ Alfredo Buttari !!$ !!$ Redistribution and use in source and binary forms, with or without !!$ modification, are permitted provided that the following conditions diff --git a/base/psblas/psb_ddot.f90 b/base/psblas/psb_ddot.f90 index ed54a528..3d79266a 100644 --- a/base/psblas/psb_ddot.f90 +++ b/base/psblas/psb_ddot.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions @@ -243,9 +243,9 @@ end function psb_ddot !!$ !!$ Parallel Sparse BLAS version 3.5 -!!$ (C) Copyright 2006, 2010, 2015, 2017 +!!$ (C) Copyright 2006-2018 !!$ Salvatore Filippone University of Rome Tor Vergata -!!$ Alfredo Buttari CNRS-IRIT, Toulouse +!!$ Alfredo Buttari !!$ !!$ Redistribution and use in source and binary forms, with or without !!$ modification, are permitted provided that the following conditions @@ -367,9 +367,9 @@ end function psb_ddotv !!$ !!$ Parallel Sparse BLAS version 3.5 -!!$ (C) Copyright 2006, 2010, 2015, 2017 +!!$ (C) Copyright 2006-2018 !!$ Salvatore Filippone University of Rome Tor Vergata -!!$ Alfredo Buttari CNRS-IRIT, Toulouse +!!$ Alfredo Buttari !!$ !!$ Redistribution and use in source and binary forms, with or without !!$ modification, are permitted provided that the following conditions @@ -490,9 +490,9 @@ end subroutine psb_ddotvs !!$ !!$ Parallel Sparse BLAS version 3.5 -!!$ (C) Copyright 2006, 2010, 2015, 2017 +!!$ (C) Copyright 2006-2018 !!$ Salvatore Filippone University of Rome Tor Vergata -!!$ Alfredo Buttari CNRS-IRIT, Toulouse +!!$ Alfredo Buttari !!$ !!$ Redistribution and use in source and binary forms, with or without !!$ modification, are permitted provided that the following conditions diff --git a/base/psblas/psb_dnrm2.f90 b/base/psblas/psb_dnrm2.f90 index 337f2da7..14e83d00 100644 --- a/base/psblas/psb_dnrm2.f90 +++ b/base/psblas/psb_dnrm2.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions @@ -128,9 +128,9 @@ end function psb_dnrm2 !!$ !!$ Parallel Sparse BLAS version 3.5 -!!$ (C) Copyright 2006, 2010, 2015, 2017 +!!$ (C) Copyright 2006-2018 !!$ Salvatore Filippone University of Rome Tor Vergata -!!$ Alfredo Buttari CNRS-IRIT, Toulouse +!!$ Alfredo Buttari !!$ !!$ Redistribution and use in source and binary forms, with or without !!$ modification, are permitted provided that the following conditions @@ -332,9 +332,9 @@ end function psb_dnrm2_vect !!$ !!$ Parallel Sparse BLAS version 3.5 -!!$ (C) Copyright 2006, 2010, 2015, 2017 +!!$ (C) Copyright 2006-2018 !!$ Salvatore Filippone University of Rome Tor Vergata -!!$ Alfredo Buttari CNRS-IRIT, Toulouse +!!$ Alfredo Buttari !!$ !!$ Redistribution and use in source and binary forms, with or without !!$ modification, are permitted provided that the following conditions diff --git a/base/psblas/psb_dnrmi.f90 b/base/psblas/psb_dnrmi.f90 index 73dffbdc..1dca687d 100644 --- a/base/psblas/psb_dnrmi.f90 +++ b/base/psblas/psb_dnrmi.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/psblas/psb_dspmm.f90 b/base/psblas/psb_dspmm.f90 index c59b1004..2d556827 100644 --- a/base/psblas/psb_dspmm.f90 +++ b/base/psblas/psb_dspmm.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions @@ -358,9 +358,9 @@ end subroutine psb_dspmm !!$ !!$ Parallel Sparse BLAS version 3.5 -!!$ (C) Copyright 2006, 2010, 2015, 2017 +!!$ (C) Copyright 2006-2018 !!$ Salvatore Filippone University of Rome Tor Vergata -!!$ Alfredo Buttari CNRS-IRIT, Toulouse +!!$ Alfredo Buttari !!$ !!$ Redistribution and use in source and binary forms, with or without !!$ modification, are permitted provided that the following conditions diff --git a/base/psblas/psb_dspnrm1.f90 b/base/psblas/psb_dspnrm1.f90 index 5a418805..9afab5e9 100644 --- a/base/psblas/psb_dspnrm1.f90 +++ b/base/psblas/psb_dspnrm1.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/psblas/psb_dspsm.f90 b/base/psblas/psb_dspsm.f90 index 0e603713..68fa718a 100644 --- a/base/psblas/psb_dspsm.f90 +++ b/base/psblas/psb_dspsm.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions @@ -283,9 +283,9 @@ end subroutine psb_dspsm !!$ !!$ Parallel Sparse BLAS version 3.5 -!!$ (C) Copyright 2006, 2010, 2015, 2017 +!!$ (C) Copyright 2006-2018 !!$ Salvatore Filippone University of Rome Tor Vergata -!!$ Alfredo Buttari CNRS-IRIT, Toulouse +!!$ Alfredo Buttari !!$ !!$ Redistribution and use in source and binary forms, with or without !!$ modification, are permitted provided that the following conditions diff --git a/base/psblas/psb_samax.f90 b/base/psblas/psb_samax.f90 index 3b15ee17..456be8c6 100644 --- a/base/psblas/psb_samax.f90 +++ b/base/psblas/psb_samax.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions @@ -122,9 +122,9 @@ end function psb_samax !!$ !!$ Parallel Sparse BLAS version 3.5 -!!$ (C) Copyright 2006, 2010, 2015, 2017 +!!$ (C) Copyright 2006-2018 !!$ Salvatore Filippone University of Rome Tor Vergata -!!$ Alfredo Buttari CNRS-IRIT, Toulouse +!!$ Alfredo Buttari !!$ !!$ Redistribution and use in source and binary forms, with or without !!$ modification, are permitted provided that the following conditions @@ -311,9 +311,9 @@ end function psb_samax_vect !!$ !!$ Parallel Sparse BLAS version 3.5 -!!$ (C) Copyright 2006, 2010, 2015, 2017 +!!$ (C) Copyright 2006-2018 !!$ Salvatore Filippone University of Rome Tor Vergata -!!$ Alfredo Buttari CNRS-IRIT, Toulouse +!!$ Alfredo Buttari !!$ !!$ Redistribution and use in source and binary forms, with or without !!$ modification, are permitted provided that the following conditions @@ -425,9 +425,9 @@ end subroutine psb_samaxvs !!$ !!$ Parallel Sparse BLAS version 3.5 -!!$ (C) Copyright 2006, 2010, 2015, 2017 +!!$ (C) Copyright 2006-2018 !!$ Salvatore Filippone University of Rome Tor Vergata -!!$ Alfredo Buttari CNRS-IRIT, Toulouse +!!$ Alfredo Buttari !!$ !!$ Redistribution and use in source and binary forms, with or without !!$ modification, are permitted provided that the following conditions diff --git a/base/psblas/psb_sasum.f90 b/base/psblas/psb_sasum.f90 index 44ac6fc1..10a1b987 100644 --- a/base/psblas/psb_sasum.f90 +++ b/base/psblas/psb_sasum.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions @@ -202,9 +202,9 @@ end function psb_sasum_vect !!$ !!$ Parallel Sparse BLAS version 3.5 -!!$ (C) Copyright 2006, 2010, 2015, 2017 +!!$ (C) Copyright 2006-2018 !!$ Salvatore Filippone University of Rome Tor Vergata -!!$ Alfredo Buttari CNRS-IRIT, Toulouse +!!$ Alfredo Buttari !!$ !!$ Redistribution and use in source and binary forms, with or without !!$ modification, are permitted provided that the following conditions @@ -320,9 +320,9 @@ end function psb_sasumv !!$ !!$ Parallel Sparse BLAS version 3.5 -!!$ (C) Copyright 2006, 2010, 2015, 2017 +!!$ (C) Copyright 2006-2018 !!$ Salvatore Filippone University of Rome Tor Vergata -!!$ Alfredo Buttari CNRS-IRIT, Toulouse +!!$ Alfredo Buttari !!$ !!$ Redistribution and use in source and binary forms, with or without !!$ modification, are permitted provided that the following conditions diff --git a/base/psblas/psb_saxpby.f90 b/base/psblas/psb_saxpby.f90 index 5285e120..97fd4e7f 100644 --- a/base/psblas/psb_saxpby.f90 +++ b/base/psblas/psb_saxpby.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions @@ -235,9 +235,9 @@ end subroutine psb_saxpby !!$ !!$ Parallel Sparse BLAS version 3.5 -!!$ (C) Copyright 2006, 2010, 2015, 2017 +!!$ (C) Copyright 2006-2018 !!$ Salvatore Filippone University of Rome Tor Vergata -!!$ Alfredo Buttari CNRS-IRIT, Toulouse +!!$ Alfredo Buttari !!$ !!$ Redistribution and use in source and binary forms, with or without !!$ modification, are permitted provided that the following conditions diff --git a/base/psblas/psb_sdot.f90 b/base/psblas/psb_sdot.f90 index fc2fa68b..e6da978a 100644 --- a/base/psblas/psb_sdot.f90 +++ b/base/psblas/psb_sdot.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions @@ -243,9 +243,9 @@ end function psb_sdot !!$ !!$ Parallel Sparse BLAS version 3.5 -!!$ (C) Copyright 2006, 2010, 2015, 2017 +!!$ (C) Copyright 2006-2018 !!$ Salvatore Filippone University of Rome Tor Vergata -!!$ Alfredo Buttari CNRS-IRIT, Toulouse +!!$ Alfredo Buttari !!$ !!$ Redistribution and use in source and binary forms, with or without !!$ modification, are permitted provided that the following conditions @@ -367,9 +367,9 @@ end function psb_sdotv !!$ !!$ Parallel Sparse BLAS version 3.5 -!!$ (C) Copyright 2006, 2010, 2015, 2017 +!!$ (C) Copyright 2006-2018 !!$ Salvatore Filippone University of Rome Tor Vergata -!!$ Alfredo Buttari CNRS-IRIT, Toulouse +!!$ Alfredo Buttari !!$ !!$ Redistribution and use in source and binary forms, with or without !!$ modification, are permitted provided that the following conditions @@ -490,9 +490,9 @@ end subroutine psb_sdotvs !!$ !!$ Parallel Sparse BLAS version 3.5 -!!$ (C) Copyright 2006, 2010, 2015, 2017 +!!$ (C) Copyright 2006-2018 !!$ Salvatore Filippone University of Rome Tor Vergata -!!$ Alfredo Buttari CNRS-IRIT, Toulouse +!!$ Alfredo Buttari !!$ !!$ Redistribution and use in source and binary forms, with or without !!$ modification, are permitted provided that the following conditions diff --git a/base/psblas/psb_snrm2.f90 b/base/psblas/psb_snrm2.f90 index 5ce9b8ce..f9a35313 100644 --- a/base/psblas/psb_snrm2.f90 +++ b/base/psblas/psb_snrm2.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions @@ -128,9 +128,9 @@ end function psb_snrm2 !!$ !!$ Parallel Sparse BLAS version 3.5 -!!$ (C) Copyright 2006, 2010, 2015, 2017 +!!$ (C) Copyright 2006-2018 !!$ Salvatore Filippone University of Rome Tor Vergata -!!$ Alfredo Buttari CNRS-IRIT, Toulouse +!!$ Alfredo Buttari !!$ !!$ Redistribution and use in source and binary forms, with or without !!$ modification, are permitted provided that the following conditions @@ -332,9 +332,9 @@ end function psb_snrm2_vect !!$ !!$ Parallel Sparse BLAS version 3.5 -!!$ (C) Copyright 2006, 2010, 2015, 2017 +!!$ (C) Copyright 2006-2018 !!$ Salvatore Filippone University of Rome Tor Vergata -!!$ Alfredo Buttari CNRS-IRIT, Toulouse +!!$ Alfredo Buttari !!$ !!$ Redistribution and use in source and binary forms, with or without !!$ modification, are permitted provided that the following conditions diff --git a/base/psblas/psb_snrmi.f90 b/base/psblas/psb_snrmi.f90 index 3ad8d4bb..eaeaf127 100644 --- a/base/psblas/psb_snrmi.f90 +++ b/base/psblas/psb_snrmi.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/psblas/psb_sspmm.f90 b/base/psblas/psb_sspmm.f90 index 708db18c..bb7d360c 100644 --- a/base/psblas/psb_sspmm.f90 +++ b/base/psblas/psb_sspmm.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions @@ -358,9 +358,9 @@ end subroutine psb_sspmm !!$ !!$ Parallel Sparse BLAS version 3.5 -!!$ (C) Copyright 2006, 2010, 2015, 2017 +!!$ (C) Copyright 2006-2018 !!$ Salvatore Filippone University of Rome Tor Vergata -!!$ Alfredo Buttari CNRS-IRIT, Toulouse +!!$ Alfredo Buttari !!$ !!$ Redistribution and use in source and binary forms, with or without !!$ modification, are permitted provided that the following conditions diff --git a/base/psblas/psb_sspnrm1.f90 b/base/psblas/psb_sspnrm1.f90 index 8ceacaaa..ea7cd618 100644 --- a/base/psblas/psb_sspnrm1.f90 +++ b/base/psblas/psb_sspnrm1.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/psblas/psb_sspsm.f90 b/base/psblas/psb_sspsm.f90 index f47e312f..d708b4aa 100644 --- a/base/psblas/psb_sspsm.f90 +++ b/base/psblas/psb_sspsm.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions @@ -283,9 +283,9 @@ end subroutine psb_sspsm !!$ !!$ Parallel Sparse BLAS version 3.5 -!!$ (C) Copyright 2006, 2010, 2015, 2017 +!!$ (C) Copyright 2006-2018 !!$ Salvatore Filippone University of Rome Tor Vergata -!!$ Alfredo Buttari CNRS-IRIT, Toulouse +!!$ Alfredo Buttari !!$ !!$ Redistribution and use in source and binary forms, with or without !!$ modification, are permitted provided that the following conditions diff --git a/base/psblas/psb_zamax.f90 b/base/psblas/psb_zamax.f90 index f29a00c8..b2032264 100644 --- a/base/psblas/psb_zamax.f90 +++ b/base/psblas/psb_zamax.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions @@ -122,9 +122,9 @@ end function psb_zamax !!$ !!$ Parallel Sparse BLAS version 3.5 -!!$ (C) Copyright 2006, 2010, 2015, 2017 +!!$ (C) Copyright 2006-2018 !!$ Salvatore Filippone University of Rome Tor Vergata -!!$ Alfredo Buttari CNRS-IRIT, Toulouse +!!$ Alfredo Buttari !!$ !!$ Redistribution and use in source and binary forms, with or without !!$ modification, are permitted provided that the following conditions @@ -311,9 +311,9 @@ end function psb_zamax_vect !!$ !!$ Parallel Sparse BLAS version 3.5 -!!$ (C) Copyright 2006, 2010, 2015, 2017 +!!$ (C) Copyright 2006-2018 !!$ Salvatore Filippone University of Rome Tor Vergata -!!$ Alfredo Buttari CNRS-IRIT, Toulouse +!!$ Alfredo Buttari !!$ !!$ Redistribution and use in source and binary forms, with or without !!$ modification, are permitted provided that the following conditions @@ -425,9 +425,9 @@ end subroutine psb_zamaxvs !!$ !!$ Parallel Sparse BLAS version 3.5 -!!$ (C) Copyright 2006, 2010, 2015, 2017 +!!$ (C) Copyright 2006-2018 !!$ Salvatore Filippone University of Rome Tor Vergata -!!$ Alfredo Buttari CNRS-IRIT, Toulouse +!!$ Alfredo Buttari !!$ !!$ Redistribution and use in source and binary forms, with or without !!$ modification, are permitted provided that the following conditions diff --git a/base/psblas/psb_zasum.f90 b/base/psblas/psb_zasum.f90 index 9af1df35..3b4fadee 100644 --- a/base/psblas/psb_zasum.f90 +++ b/base/psblas/psb_zasum.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions @@ -202,9 +202,9 @@ end function psb_zasum_vect !!$ !!$ Parallel Sparse BLAS version 3.5 -!!$ (C) Copyright 2006, 2010, 2015, 2017 +!!$ (C) Copyright 2006-2018 !!$ Salvatore Filippone University of Rome Tor Vergata -!!$ Alfredo Buttari CNRS-IRIT, Toulouse +!!$ Alfredo Buttari !!$ !!$ Redistribution and use in source and binary forms, with or without !!$ modification, are permitted provided that the following conditions @@ -320,9 +320,9 @@ end function psb_zasumv !!$ !!$ Parallel Sparse BLAS version 3.5 -!!$ (C) Copyright 2006, 2010, 2015, 2017 +!!$ (C) Copyright 2006-2018 !!$ Salvatore Filippone University of Rome Tor Vergata -!!$ Alfredo Buttari CNRS-IRIT, Toulouse +!!$ Alfredo Buttari !!$ !!$ Redistribution and use in source and binary forms, with or without !!$ modification, are permitted provided that the following conditions diff --git a/base/psblas/psb_zaxpby.f90 b/base/psblas/psb_zaxpby.f90 index baba36ca..25ca548a 100644 --- a/base/psblas/psb_zaxpby.f90 +++ b/base/psblas/psb_zaxpby.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions @@ -235,9 +235,9 @@ end subroutine psb_zaxpby !!$ !!$ Parallel Sparse BLAS version 3.5 -!!$ (C) Copyright 2006, 2010, 2015, 2017 +!!$ (C) Copyright 2006-2018 !!$ Salvatore Filippone University of Rome Tor Vergata -!!$ Alfredo Buttari CNRS-IRIT, Toulouse +!!$ Alfredo Buttari !!$ !!$ Redistribution and use in source and binary forms, with or without !!$ modification, are permitted provided that the following conditions diff --git a/base/psblas/psb_zdot.f90 b/base/psblas/psb_zdot.f90 index 756d714d..1ff86719 100644 --- a/base/psblas/psb_zdot.f90 +++ b/base/psblas/psb_zdot.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions @@ -243,9 +243,9 @@ end function psb_zdot !!$ !!$ Parallel Sparse BLAS version 3.5 -!!$ (C) Copyright 2006, 2010, 2015, 2017 +!!$ (C) Copyright 2006-2018 !!$ Salvatore Filippone University of Rome Tor Vergata -!!$ Alfredo Buttari CNRS-IRIT, Toulouse +!!$ Alfredo Buttari !!$ !!$ Redistribution and use in source and binary forms, with or without !!$ modification, are permitted provided that the following conditions @@ -367,9 +367,9 @@ end function psb_zdotv !!$ !!$ Parallel Sparse BLAS version 3.5 -!!$ (C) Copyright 2006, 2010, 2015, 2017 +!!$ (C) Copyright 2006-2018 !!$ Salvatore Filippone University of Rome Tor Vergata -!!$ Alfredo Buttari CNRS-IRIT, Toulouse +!!$ Alfredo Buttari !!$ !!$ Redistribution and use in source and binary forms, with or without !!$ modification, are permitted provided that the following conditions @@ -490,9 +490,9 @@ end subroutine psb_zdotvs !!$ !!$ Parallel Sparse BLAS version 3.5 -!!$ (C) Copyright 2006, 2010, 2015, 2017 +!!$ (C) Copyright 2006-2018 !!$ Salvatore Filippone University of Rome Tor Vergata -!!$ Alfredo Buttari CNRS-IRIT, Toulouse +!!$ Alfredo Buttari !!$ !!$ Redistribution and use in source and binary forms, with or without !!$ modification, are permitted provided that the following conditions diff --git a/base/psblas/psb_znrm2.f90 b/base/psblas/psb_znrm2.f90 index 245b9c49..40e2156b 100644 --- a/base/psblas/psb_znrm2.f90 +++ b/base/psblas/psb_znrm2.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions @@ -128,9 +128,9 @@ end function psb_znrm2 !!$ !!$ Parallel Sparse BLAS version 3.5 -!!$ (C) Copyright 2006, 2010, 2015, 2017 +!!$ (C) Copyright 2006-2018 !!$ Salvatore Filippone University of Rome Tor Vergata -!!$ Alfredo Buttari CNRS-IRIT, Toulouse +!!$ Alfredo Buttari !!$ !!$ Redistribution and use in source and binary forms, with or without !!$ modification, are permitted provided that the following conditions @@ -332,9 +332,9 @@ end function psb_znrm2_vect !!$ !!$ Parallel Sparse BLAS version 3.5 -!!$ (C) Copyright 2006, 2010, 2015, 2017 +!!$ (C) Copyright 2006-2018 !!$ Salvatore Filippone University of Rome Tor Vergata -!!$ Alfredo Buttari CNRS-IRIT, Toulouse +!!$ Alfredo Buttari !!$ !!$ Redistribution and use in source and binary forms, with or without !!$ modification, are permitted provided that the following conditions diff --git a/base/psblas/psb_znrmi.f90 b/base/psblas/psb_znrmi.f90 index 2175da94..c917b784 100644 --- a/base/psblas/psb_znrmi.f90 +++ b/base/psblas/psb_znrmi.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/psblas/psb_zspmm.f90 b/base/psblas/psb_zspmm.f90 index 3c543aa6..a692822e 100644 --- a/base/psblas/psb_zspmm.f90 +++ b/base/psblas/psb_zspmm.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions @@ -358,9 +358,9 @@ end subroutine psb_zspmm !!$ !!$ Parallel Sparse BLAS version 3.5 -!!$ (C) Copyright 2006, 2010, 2015, 2017 +!!$ (C) Copyright 2006-2018 !!$ Salvatore Filippone University of Rome Tor Vergata -!!$ Alfredo Buttari CNRS-IRIT, Toulouse +!!$ Alfredo Buttari !!$ !!$ Redistribution and use in source and binary forms, with or without !!$ modification, are permitted provided that the following conditions diff --git a/base/psblas/psb_zspnrm1.f90 b/base/psblas/psb_zspnrm1.f90 index 72190336..19b5164c 100644 --- a/base/psblas/psb_zspnrm1.f90 +++ b/base/psblas/psb_zspnrm1.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/psblas/psb_zspsm.f90 b/base/psblas/psb_zspsm.f90 index 5e6bc8ee..085edc3d 100644 --- a/base/psblas/psb_zspsm.f90 +++ b/base/psblas/psb_zspsm.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions @@ -283,9 +283,9 @@ end subroutine psb_zspsm !!$ !!$ Parallel Sparse BLAS version 3.5 -!!$ (C) Copyright 2006, 2010, 2015, 2017 +!!$ (C) Copyright 2006-2018 !!$ Salvatore Filippone University of Rome Tor Vergata -!!$ Alfredo Buttari CNRS-IRIT, Toulouse +!!$ Alfredo Buttari !!$ !!$ Redistribution and use in source and binary forms, with or without !!$ modification, are permitted provided that the following conditions diff --git a/base/serial/impl/psb_c_base_mat_impl.F90 b/base/serial/impl/psb_c_base_mat_impl.F90 index bb422cd7..31a0b509 100644 --- a/base/serial/impl/psb_c_base_mat_impl.F90 +++ b/base/serial/impl/psb_c_base_mat_impl.F90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/serial/impl/psb_c_coo_impl.f90 b/base/serial/impl/psb_c_coo_impl.f90 index ca880816..f2c8af8b 100644 --- a/base/serial/impl/psb_c_coo_impl.f90 +++ b/base/serial/impl/psb_c_coo_impl.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/serial/impl/psb_c_csc_impl.f90 b/base/serial/impl/psb_c_csc_impl.f90 index 83017b7c..5e0896d1 100644 --- a/base/serial/impl/psb_c_csc_impl.f90 +++ b/base/serial/impl/psb_c_csc_impl.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/serial/impl/psb_c_csr_impl.f90 b/base/serial/impl/psb_c_csr_impl.f90 index f03c6d33..6a46b79e 100644 --- a/base/serial/impl/psb_c_csr_impl.f90 +++ b/base/serial/impl/psb_c_csr_impl.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/serial/impl/psb_c_mat_impl.F90 b/base/serial/impl/psb_c_mat_impl.F90 index 628c52c3..766939a8 100644 --- a/base/serial/impl/psb_c_mat_impl.F90 +++ b/base/serial/impl/psb_c_mat_impl.F90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/serial/impl/psb_d_base_mat_impl.F90 b/base/serial/impl/psb_d_base_mat_impl.F90 index 5ab73095..271acb61 100644 --- a/base/serial/impl/psb_d_base_mat_impl.F90 +++ b/base/serial/impl/psb_d_base_mat_impl.F90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/serial/impl/psb_d_coo_impl.f90 b/base/serial/impl/psb_d_coo_impl.f90 index e5d4add3..4e4c665c 100644 --- a/base/serial/impl/psb_d_coo_impl.f90 +++ b/base/serial/impl/psb_d_coo_impl.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/serial/impl/psb_d_csc_impl.f90 b/base/serial/impl/psb_d_csc_impl.f90 index e48e6171..b49884e7 100644 --- a/base/serial/impl/psb_d_csc_impl.f90 +++ b/base/serial/impl/psb_d_csc_impl.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/serial/impl/psb_d_csr_impl.f90 b/base/serial/impl/psb_d_csr_impl.f90 index e313b2d3..8e04744b 100644 --- a/base/serial/impl/psb_d_csr_impl.f90 +++ b/base/serial/impl/psb_d_csr_impl.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/serial/impl/psb_d_mat_impl.F90 b/base/serial/impl/psb_d_mat_impl.F90 index 6e36a609..bd504cc7 100644 --- a/base/serial/impl/psb_d_mat_impl.F90 +++ b/base/serial/impl/psb_d_mat_impl.F90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/serial/impl/psb_s_base_mat_impl.F90 b/base/serial/impl/psb_s_base_mat_impl.F90 index 39c02e8f..380d50f5 100644 --- a/base/serial/impl/psb_s_base_mat_impl.F90 +++ b/base/serial/impl/psb_s_base_mat_impl.F90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/serial/impl/psb_s_coo_impl.f90 b/base/serial/impl/psb_s_coo_impl.f90 index 4a2dc6a7..1a45e3ea 100644 --- a/base/serial/impl/psb_s_coo_impl.f90 +++ b/base/serial/impl/psb_s_coo_impl.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/serial/impl/psb_s_csc_impl.f90 b/base/serial/impl/psb_s_csc_impl.f90 index 44e056b3..08b73543 100644 --- a/base/serial/impl/psb_s_csc_impl.f90 +++ b/base/serial/impl/psb_s_csc_impl.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/serial/impl/psb_s_csr_impl.f90 b/base/serial/impl/psb_s_csr_impl.f90 index e3a589fd..5de752b5 100644 --- a/base/serial/impl/psb_s_csr_impl.f90 +++ b/base/serial/impl/psb_s_csr_impl.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/serial/impl/psb_s_mat_impl.F90 b/base/serial/impl/psb_s_mat_impl.F90 index ed69c0f4..50919f15 100644 --- a/base/serial/impl/psb_s_mat_impl.F90 +++ b/base/serial/impl/psb_s_mat_impl.F90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/serial/impl/psb_z_base_mat_impl.F90 b/base/serial/impl/psb_z_base_mat_impl.F90 index 5f984f6c..b79a2344 100644 --- a/base/serial/impl/psb_z_base_mat_impl.F90 +++ b/base/serial/impl/psb_z_base_mat_impl.F90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/serial/impl/psb_z_coo_impl.f90 b/base/serial/impl/psb_z_coo_impl.f90 index a3abd630..467ea950 100644 --- a/base/serial/impl/psb_z_coo_impl.f90 +++ b/base/serial/impl/psb_z_coo_impl.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/serial/impl/psb_z_csc_impl.f90 b/base/serial/impl/psb_z_csc_impl.f90 index 09961076..d03e5ad6 100644 --- a/base/serial/impl/psb_z_csc_impl.f90 +++ b/base/serial/impl/psb_z_csc_impl.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/serial/impl/psb_z_csr_impl.f90 b/base/serial/impl/psb_z_csr_impl.f90 index 6694d6c3..96eae3a4 100644 --- a/base/serial/impl/psb_z_csr_impl.f90 +++ b/base/serial/impl/psb_z_csr_impl.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/serial/impl/psb_z_mat_impl.F90 b/base/serial/impl/psb_z_mat_impl.F90 index 41dd41fa..9e88f19f 100644 --- a/base/serial/impl/psb_z_mat_impl.F90 +++ b/base/serial/impl/psb_z_mat_impl.F90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/serial/psb_aspxpby.f90 b/base/serial/psb_aspxpby.f90 index b48a388a..3ce0c61b 100644 --- a/base/serial/psb_aspxpby.f90 +++ b/base/serial/psb_aspxpby.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/serial/psb_camax_s.f90 b/base/serial/psb_camax_s.f90 index 1a13a458..7e608c8e 100644 --- a/base/serial/psb_camax_s.f90 +++ b/base/serial/psb_camax_s.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/serial/psb_casum_s.f90 b/base/serial/psb_casum_s.f90 index 4f370f6b..cf799cdc 100644 --- a/base/serial/psb_casum_s.f90 +++ b/base/serial/psb_casum_s.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/serial/psb_cgelp.f90 b/base/serial/psb_cgelp.f90 index bd5266c4..6b3b2def 100644 --- a/base/serial/psb_cgelp.f90 +++ b/base/serial/psb_cgelp.f90 @@ -1,7 +1,7 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University +! (C) Copyright 2006-2018 +! Salvatore Filippone ! Alfredo Buttari University of Rome Tor Vergata ! ! Redistribution and use in source and binary forms, with or without @@ -127,7 +127,7 @@ end subroutine psb_cgelp !!$ !!$ Parallel Sparse BLAS version 3.5 -!!$ (C) Copyright 2006, 2010, 2015, 2017 +!!$ (C) Copyright 2006-2018 !!$ Salvatore Filippone University of Rome Tor Vergata !!$ Alfredo Buttari University of Rome Tor Vergata !!$ diff --git a/base/serial/psb_cgeprt.f90 b/base/serial/psb_cgeprt.f90 index f06c1405..985c1eab 100644 --- a/base/serial/psb_cgeprt.f90 +++ b/base/serial/psb_cgeprt.f90 @@ -1,7 +1,7 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University +! (C) Copyright 2006-2018 +! Salvatore Filippone ! Alfredo Buttari University of Rome Tor Vergata ! ! Redistribution and use in source and binary forms, with or without diff --git a/base/serial/psb_cnumbmm.f90 b/base/serial/psb_cnumbmm.f90 index 34292f12..94e6e1a5 100644 --- a/base/serial/psb_cnumbmm.f90 +++ b/base/serial/psb_cnumbmm.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/serial/psb_crwextd.f90 b/base/serial/psb_crwextd.f90 index 77edba94..e19af57a 100644 --- a/base/serial/psb_crwextd.f90 +++ b/base/serial/psb_crwextd.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/serial/psb_cspspmm.f90 b/base/serial/psb_cspspmm.f90 index 1cd25bff..d54dde98 100644 --- a/base/serial/psb_cspspmm.f90 +++ b/base/serial/psb_cspspmm.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/serial/psb_csymbmm.f90 b/base/serial/psb_csymbmm.f90 index 5be0630d..fa26c2d2 100644 --- a/base/serial/psb_csymbmm.f90 +++ b/base/serial/psb_csymbmm.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/serial/psb_damax_s.f90 b/base/serial/psb_damax_s.f90 index 0c450e9b..f376f0ba 100644 --- a/base/serial/psb_damax_s.f90 +++ b/base/serial/psb_damax_s.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/serial/psb_dasum_s.f90 b/base/serial/psb_dasum_s.f90 index 39557271..6fb6e4f6 100644 --- a/base/serial/psb_dasum_s.f90 +++ b/base/serial/psb_dasum_s.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/serial/psb_dgelp.f90 b/base/serial/psb_dgelp.f90 index cb6dfb2c..7dc4b132 100644 --- a/base/serial/psb_dgelp.f90 +++ b/base/serial/psb_dgelp.f90 @@ -1,7 +1,7 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University +! (C) Copyright 2006-2018 +! Salvatore Filippone ! Alfredo Buttari University of Rome Tor Vergata ! ! Redistribution and use in source and binary forms, with or without @@ -127,7 +127,7 @@ end subroutine psb_dgelp !!$ !!$ Parallel Sparse BLAS version 3.5 -!!$ (C) Copyright 2006, 2010, 2015, 2017 +!!$ (C) Copyright 2006-2018 !!$ Salvatore Filippone University of Rome Tor Vergata !!$ Alfredo Buttari University of Rome Tor Vergata !!$ diff --git a/base/serial/psb_dgeprt.f90 b/base/serial/psb_dgeprt.f90 index a1da8e23..07fb32f8 100644 --- a/base/serial/psb_dgeprt.f90 +++ b/base/serial/psb_dgeprt.f90 @@ -1,7 +1,7 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University +! (C) Copyright 2006-2018 +! Salvatore Filippone ! Alfredo Buttari University of Rome Tor Vergata ! ! Redistribution and use in source and binary forms, with or without diff --git a/base/serial/psb_dnumbmm.f90 b/base/serial/psb_dnumbmm.f90 index 60579eae..2de4b903 100644 --- a/base/serial/psb_dnumbmm.f90 +++ b/base/serial/psb_dnumbmm.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/serial/psb_drwextd.f90 b/base/serial/psb_drwextd.f90 index ac6b5a79..c2f39473 100644 --- a/base/serial/psb_drwextd.f90 +++ b/base/serial/psb_drwextd.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/serial/psb_dspspmm.f90 b/base/serial/psb_dspspmm.f90 index a5fc3ee3..f0fff17c 100644 --- a/base/serial/psb_dspspmm.f90 +++ b/base/serial/psb_dspspmm.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/serial/psb_dsymbmm.f90 b/base/serial/psb_dsymbmm.f90 index 168b59b6..4bad9cc9 100644 --- a/base/serial/psb_dsymbmm.f90 +++ b/base/serial/psb_dsymbmm.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/serial/psb_lsame.f90 b/base/serial/psb_lsame.f90 index d0ec4038..88743857 100644 --- a/base/serial/psb_lsame.f90 +++ b/base/serial/psb_lsame.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/serial/psb_samax_s.f90 b/base/serial/psb_samax_s.f90 index 09afdc06..da7fc93e 100644 --- a/base/serial/psb_samax_s.f90 +++ b/base/serial/psb_samax_s.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/serial/psb_sasum_s.f90 b/base/serial/psb_sasum_s.f90 index 8c3a218b..7a3b44e2 100644 --- a/base/serial/psb_sasum_s.f90 +++ b/base/serial/psb_sasum_s.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/serial/psb_sgelp.f90 b/base/serial/psb_sgelp.f90 index 37f1c6b9..6cb6f6f1 100644 --- a/base/serial/psb_sgelp.f90 +++ b/base/serial/psb_sgelp.f90 @@ -1,7 +1,7 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University +! (C) Copyright 2006-2018 +! Salvatore Filippone ! Alfredo Buttari University of Rome Tor Vergata ! ! Redistribution and use in source and binary forms, with or without @@ -127,7 +127,7 @@ end subroutine psb_sgelp !!$ !!$ Parallel Sparse BLAS version 3.5 -!!$ (C) Copyright 2006, 2010, 2015, 2017 +!!$ (C) Copyright 2006-2018 !!$ Salvatore Filippone University of Rome Tor Vergata !!$ Alfredo Buttari University of Rome Tor Vergata !!$ diff --git a/base/serial/psb_sgeprt.f90 b/base/serial/psb_sgeprt.f90 index 6ef96e31..3ebb975b 100644 --- a/base/serial/psb_sgeprt.f90 +++ b/base/serial/psb_sgeprt.f90 @@ -1,7 +1,7 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University +! (C) Copyright 2006-2018 +! Salvatore Filippone ! Alfredo Buttari University of Rome Tor Vergata ! ! Redistribution and use in source and binary forms, with or without diff --git a/base/serial/psb_snumbmm.f90 b/base/serial/psb_snumbmm.f90 index dc1ab888..9b37a10a 100644 --- a/base/serial/psb_snumbmm.f90 +++ b/base/serial/psb_snumbmm.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/serial/psb_spdot_srtd.f90 b/base/serial/psb_spdot_srtd.f90 index 5245b60f..d0f9120f 100644 --- a/base/serial/psb_spdot_srtd.f90 +++ b/base/serial/psb_spdot_srtd.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/serial/psb_spge_dot.f90 b/base/serial/psb_spge_dot.f90 index fb29c8cf..71497173 100644 --- a/base/serial/psb_spge_dot.f90 +++ b/base/serial/psb_spge_dot.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/serial/psb_srwextd.f90 b/base/serial/psb_srwextd.f90 index 628faa00..4e286d38 100644 --- a/base/serial/psb_srwextd.f90 +++ b/base/serial/psb_srwextd.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/serial/psb_sspspmm.f90 b/base/serial/psb_sspspmm.f90 index b8a361c5..6e521a4c 100644 --- a/base/serial/psb_sspspmm.f90 +++ b/base/serial/psb_sspspmm.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/serial/psb_ssymbmm.f90 b/base/serial/psb_ssymbmm.f90 index 0399795b..44d406c8 100644 --- a/base/serial/psb_ssymbmm.f90 +++ b/base/serial/psb_ssymbmm.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/serial/psb_zamax_s.f90 b/base/serial/psb_zamax_s.f90 index 6613928f..8cac2e2e 100644 --- a/base/serial/psb_zamax_s.f90 +++ b/base/serial/psb_zamax_s.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/serial/psb_zasum_s.f90 b/base/serial/psb_zasum_s.f90 index c7ca40ef..f00e4347 100644 --- a/base/serial/psb_zasum_s.f90 +++ b/base/serial/psb_zasum_s.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/serial/psb_zgelp.f90 b/base/serial/psb_zgelp.f90 index 029ba81d..609e9657 100644 --- a/base/serial/psb_zgelp.f90 +++ b/base/serial/psb_zgelp.f90 @@ -1,7 +1,7 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University +! (C) Copyright 2006-2018 +! Salvatore Filippone ! Alfredo Buttari University of Rome Tor Vergata ! ! Redistribution and use in source and binary forms, with or without @@ -127,7 +127,7 @@ end subroutine psb_zgelp !!$ !!$ Parallel Sparse BLAS version 3.5 -!!$ (C) Copyright 2006, 2010, 2015, 2017 +!!$ (C) Copyright 2006-2018 !!$ Salvatore Filippone University of Rome Tor Vergata !!$ Alfredo Buttari University of Rome Tor Vergata !!$ diff --git a/base/serial/psb_zgeprt.f90 b/base/serial/psb_zgeprt.f90 index 994246b7..f7615473 100644 --- a/base/serial/psb_zgeprt.f90 +++ b/base/serial/psb_zgeprt.f90 @@ -1,7 +1,7 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University +! (C) Copyright 2006-2018 +! Salvatore Filippone ! Alfredo Buttari University of Rome Tor Vergata ! ! Redistribution and use in source and binary forms, with or without diff --git a/base/serial/psb_znumbmm.f90 b/base/serial/psb_znumbmm.f90 index 090d403d..130de6eb 100644 --- a/base/serial/psb_znumbmm.f90 +++ b/base/serial/psb_znumbmm.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/serial/psb_zrwextd.f90 b/base/serial/psb_zrwextd.f90 index 03c9903f..a45beedc 100644 --- a/base/serial/psb_zrwextd.f90 +++ b/base/serial/psb_zrwextd.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/serial/psb_zspspmm.f90 b/base/serial/psb_zspspmm.f90 index 3542b927..13a7be87 100644 --- a/base/serial/psb_zspspmm.f90 +++ b/base/serial/psb_zspspmm.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/serial/psb_zsymbmm.f90 b/base/serial/psb_zsymbmm.f90 index c4981b22..2f721ae9 100644 --- a/base/serial/psb_zsymbmm.f90 +++ b/base/serial/psb_zsymbmm.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/serial/psi_c_serial_impl.f90 b/base/serial/psi_c_serial_impl.f90 index a186987e..0324ed36 100644 --- a/base/serial/psi_c_serial_impl.f90 +++ b/base/serial/psi_c_serial_impl.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/serial/psi_d_serial_impl.f90 b/base/serial/psi_d_serial_impl.f90 index f12e287e..2764e970 100644 --- a/base/serial/psi_d_serial_impl.f90 +++ b/base/serial/psi_d_serial_impl.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/serial/psi_i_serial_impl.f90 b/base/serial/psi_i_serial_impl.f90 index 116822db..9cb757e6 100644 --- a/base/serial/psi_i_serial_impl.f90 +++ b/base/serial/psi_i_serial_impl.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/serial/psi_s_serial_impl.f90 b/base/serial/psi_s_serial_impl.f90 index 25615027..a94675f9 100644 --- a/base/serial/psi_s_serial_impl.f90 +++ b/base/serial/psi_s_serial_impl.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/serial/psi_z_serial_impl.f90 b/base/serial/psi_z_serial_impl.f90 index 6f750086..ae6989ed 100644 --- a/base/serial/psi_z_serial_impl.f90 +++ b/base/serial/psi_z_serial_impl.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/serial/smmp.f90 b/base/serial/smmp.f90 index 1ab7789c..33d3057b 100644 --- a/base/serial/smmp.f90 +++ b/base/serial/smmp.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/serial/sort/psb_c_hsort_impl.f90 b/base/serial/sort/psb_c_hsort_impl.f90 index 8ecb15fe..499dce04 100644 --- a/base/serial/sort/psb_c_hsort_impl.f90 +++ b/base/serial/sort/psb_c_hsort_impl.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/serial/sort/psb_c_isort_impl.f90 b/base/serial/sort/psb_c_isort_impl.f90 index 14fb16c2..f5b7f974 100644 --- a/base/serial/sort/psb_c_isort_impl.f90 +++ b/base/serial/sort/psb_c_isort_impl.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/serial/sort/psb_c_msort_impl.f90 b/base/serial/sort/psb_c_msort_impl.f90 index e609ac31..db5cbdf9 100644 --- a/base/serial/sort/psb_c_msort_impl.f90 +++ b/base/serial/sort/psb_c_msort_impl.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/serial/sort/psb_c_qsort_impl.f90 b/base/serial/sort/psb_c_qsort_impl.f90 index 5b35bda5..f22f3a86 100644 --- a/base/serial/sort/psb_c_qsort_impl.f90 +++ b/base/serial/sort/psb_c_qsort_impl.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/serial/sort/psb_d_hsort_impl.f90 b/base/serial/sort/psb_d_hsort_impl.f90 index 7bf18571..ce9aa090 100644 --- a/base/serial/sort/psb_d_hsort_impl.f90 +++ b/base/serial/sort/psb_d_hsort_impl.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/serial/sort/psb_d_isort_impl.f90 b/base/serial/sort/psb_d_isort_impl.f90 index 9b449252..ddf41a38 100644 --- a/base/serial/sort/psb_d_isort_impl.f90 +++ b/base/serial/sort/psb_d_isort_impl.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/serial/sort/psb_d_msort_impl.f90 b/base/serial/sort/psb_d_msort_impl.f90 index b8ebef8f..5bda802d 100644 --- a/base/serial/sort/psb_d_msort_impl.f90 +++ b/base/serial/sort/psb_d_msort_impl.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/serial/sort/psb_d_qsort_impl.f90 b/base/serial/sort/psb_d_qsort_impl.f90 index e406f025..105e94d0 100644 --- a/base/serial/sort/psb_d_qsort_impl.f90 +++ b/base/serial/sort/psb_d_qsort_impl.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/serial/sort/psb_i_hsort_impl.f90 b/base/serial/sort/psb_i_hsort_impl.f90 index c4e2259e..17c48f62 100644 --- a/base/serial/sort/psb_i_hsort_impl.f90 +++ b/base/serial/sort/psb_i_hsort_impl.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/serial/sort/psb_i_isort_impl.f90 b/base/serial/sort/psb_i_isort_impl.f90 index 95c062d4..ccaec9b7 100644 --- a/base/serial/sort/psb_i_isort_impl.f90 +++ b/base/serial/sort/psb_i_isort_impl.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/serial/sort/psb_i_msort_impl.f90 b/base/serial/sort/psb_i_msort_impl.f90 index ac6671fd..934e2e4f 100644 --- a/base/serial/sort/psb_i_msort_impl.f90 +++ b/base/serial/sort/psb_i_msort_impl.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/serial/sort/psb_i_qsort_impl.f90 b/base/serial/sort/psb_i_qsort_impl.f90 index c74b5f24..a16ef910 100644 --- a/base/serial/sort/psb_i_qsort_impl.f90 +++ b/base/serial/sort/psb_i_qsort_impl.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/serial/sort/psb_s_hsort_impl.f90 b/base/serial/sort/psb_s_hsort_impl.f90 index fc2ee556..12a7c7a1 100644 --- a/base/serial/sort/psb_s_hsort_impl.f90 +++ b/base/serial/sort/psb_s_hsort_impl.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/serial/sort/psb_s_isort_impl.f90 b/base/serial/sort/psb_s_isort_impl.f90 index 3d1c088a..fbac121b 100644 --- a/base/serial/sort/psb_s_isort_impl.f90 +++ b/base/serial/sort/psb_s_isort_impl.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/serial/sort/psb_s_msort_impl.f90 b/base/serial/sort/psb_s_msort_impl.f90 index 0e58641c..53b55712 100644 --- a/base/serial/sort/psb_s_msort_impl.f90 +++ b/base/serial/sort/psb_s_msort_impl.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/serial/sort/psb_s_qsort_impl.f90 b/base/serial/sort/psb_s_qsort_impl.f90 index e0501a44..7110fa4f 100644 --- a/base/serial/sort/psb_s_qsort_impl.f90 +++ b/base/serial/sort/psb_s_qsort_impl.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/serial/sort/psb_z_hsort_impl.f90 b/base/serial/sort/psb_z_hsort_impl.f90 index 01466c05..af20205b 100644 --- a/base/serial/sort/psb_z_hsort_impl.f90 +++ b/base/serial/sort/psb_z_hsort_impl.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/serial/sort/psb_z_isort_impl.f90 b/base/serial/sort/psb_z_isort_impl.f90 index d3994d1f..98cc055e 100644 --- a/base/serial/sort/psb_z_isort_impl.f90 +++ b/base/serial/sort/psb_z_isort_impl.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/serial/sort/psb_z_msort_impl.f90 b/base/serial/sort/psb_z_msort_impl.f90 index ed00dfcf..d0f3823b 100644 --- a/base/serial/sort/psb_z_msort_impl.f90 +++ b/base/serial/sort/psb_z_msort_impl.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/serial/sort/psb_z_qsort_impl.f90 b/base/serial/sort/psb_z_qsort_impl.f90 index cb489abe..cdb58dcc 100644 --- a/base/serial/sort/psb_z_qsort_impl.f90 +++ b/base/serial/sort/psb_z_qsort_impl.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/serial/sort/psi_acx_mod.f90 b/base/serial/sort/psi_acx_mod.f90 index fffa7cd7..8150c877 100644 --- a/base/serial/sort/psi_acx_mod.f90 +++ b/base/serial/sort/psi_acx_mod.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/serial/sort/psi_alcx_mod.f90 b/base/serial/sort/psi_alcx_mod.f90 index 0a79a30a..c11ce8e1 100644 --- a/base/serial/sort/psi_alcx_mod.f90 +++ b/base/serial/sort/psi_alcx_mod.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/serial/sort/psi_lcx_mod.f90 b/base/serial/sort/psi_lcx_mod.f90 index eb82e368..482069f0 100644 --- a/base/serial/sort/psi_lcx_mod.f90 +++ b/base/serial/sort/psi_lcx_mod.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/tools/psb_c_map.f90 b/base/tools/psb_c_map.f90 index 1742e522..eeaefdc0 100644 --- a/base/tools/psb_c_map.f90 +++ b/base/tools/psb_c_map.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/tools/psb_callc.f90 b/base/tools/psb_callc.f90 index c6a7c316..a71c61b6 100644 --- a/base/tools/psb_callc.f90 +++ b/base/tools/psb_callc.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions @@ -133,9 +133,9 @@ end subroutine psb_calloc !!$ !!$ Parallel Sparse BLAS version 3.5 -!!$ (C) Copyright 2006, 2010, 2015, 2017 +!!$ (C) Copyright 2006-2018 !!$ Salvatore Filippone University of Rome Tor Vergata -!!$ Alfredo Buttari CNRS-IRIT, Toulouse +!!$ Alfredo Buttari !!$ !!$ Redistribution and use in source and binary forms, with or without !!$ modification, are permitted provided that the following conditions diff --git a/base/tools/psb_casb.f90 b/base/tools/psb_casb.f90 index c005cff0..bb43ea3b 100644 --- a/base/tools/psb_casb.f90 +++ b/base/tools/psb_casb.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions @@ -136,9 +136,9 @@ end subroutine psb_casb !!$ !!$ Parallel Sparse BLAS version 3.5 -!!$ (C) Copyright 2006, 2010, 2015, 2017 +!!$ (C) Copyright 2006-2018 !!$ Salvatore Filippone University of Rome Tor Vergata -!!$ Alfredo Buttari CNRS-IRIT, Toulouse +!!$ Alfredo Buttari !!$ !!$ Redistribution and use in source and binary forms, with or without !!$ modification, are permitted provided that the following conditions diff --git a/base/tools/psb_ccdbldext.F90 b/base/tools/psb_ccdbldext.F90 index c92b7f1f..0792222e 100644 --- a/base/tools/psb_ccdbldext.F90 +++ b/base/tools/psb_ccdbldext.F90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/tools/psb_cd_inloc.f90 b/base/tools/psb_cd_inloc.f90 index b8418a36..0310a7d9 100644 --- a/base/tools/psb_cd_inloc.f90 +++ b/base/tools/psb_cd_inloc.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/tools/psb_cd_lstext.f90 b/base/tools/psb_cd_lstext.f90 index e5f80789..4405aac0 100644 --- a/base/tools/psb_cd_lstext.f90 +++ b/base/tools/psb_cd_lstext.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/tools/psb_cd_reinit.f90 b/base/tools/psb_cd_reinit.f90 index ea25c5ad..f790218a 100644 --- a/base/tools/psb_cd_reinit.f90 +++ b/base/tools/psb_cd_reinit.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/tools/psb_cd_set_bld.f90 b/base/tools/psb_cd_set_bld.f90 index 1147b595..54133cf5 100644 --- a/base/tools/psb_cd_set_bld.f90 +++ b/base/tools/psb_cd_set_bld.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/tools/psb_cd_switch_ovl_indxmap.f90 b/base/tools/psb_cd_switch_ovl_indxmap.f90 index 758e187a..034c35d5 100644 --- a/base/tools/psb_cd_switch_ovl_indxmap.f90 +++ b/base/tools/psb_cd_switch_ovl_indxmap.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/tools/psb_cdals.f90 b/base/tools/psb_cdals.f90 index 13d265c1..4c7131c7 100644 --- a/base/tools/psb_cdals.f90 +++ b/base/tools/psb_cdals.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/tools/psb_cdalv.f90 b/base/tools/psb_cdalv.f90 index 1b1eb87e..c238edcf 100644 --- a/base/tools/psb_cdalv.f90 +++ b/base/tools/psb_cdalv.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/tools/psb_cdcpy.F90 b/base/tools/psb_cdcpy.F90 index 51f2d0fc..7605006a 100644 --- a/base/tools/psb_cdcpy.F90 +++ b/base/tools/psb_cdcpy.F90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/tools/psb_cdins.f90 b/base/tools/psb_cdins.f90 index a4073ece..a8b0441c 100644 --- a/base/tools/psb_cdins.f90 +++ b/base/tools/psb_cdins.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/tools/psb_cdprt.f90 b/base/tools/psb_cdprt.f90 index 7b639da8..d77ad7ff 100644 --- a/base/tools/psb_cdprt.f90 +++ b/base/tools/psb_cdprt.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/tools/psb_cdren.f90 b/base/tools/psb_cdren.f90 index faa74dad..3df0750f 100644 --- a/base/tools/psb_cdren.f90 +++ b/base/tools/psb_cdren.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/tools/psb_cdrep.f90 b/base/tools/psb_cdrep.f90 index f765cc8d..b5e76c48 100644 --- a/base/tools/psb_cdrep.f90 +++ b/base/tools/psb_cdrep.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/tools/psb_cfree.f90 b/base/tools/psb_cfree.f90 index 48300bdb..f35f13f4 100644 --- a/base/tools/psb_cfree.f90 +++ b/base/tools/psb_cfree.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/tools/psb_cins.f90 b/base/tools/psb_cins.f90 index 3a067b3e..9bdb70bc 100644 --- a/base/tools/psb_cins.f90 +++ b/base/tools/psb_cins.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions @@ -525,9 +525,9 @@ end subroutine psb_cins_vect_r2 !!$ !!$ Parallel Sparse BLAS version 3.5 -!!$ (C) Copyright 2006, 2010, 2015, 2017 +!!$ (C) Copyright 2006-2018 !!$ Salvatore Filippone University of Rome Tor Vergata -!!$ Alfredo Buttari CNRS-IRIT, Toulouse +!!$ Alfredo Buttari !!$ !!$ Redistribution and use in source and binary forms, with or without !!$ modification, are permitted provided that the following conditions diff --git a/base/tools/psb_cspalloc.f90 b/base/tools/psb_cspalloc.f90 index 17d742ad..f954cc42 100644 --- a/base/tools/psb_cspalloc.f90 +++ b/base/tools/psb_cspalloc.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/tools/psb_cspasb.f90 b/base/tools/psb_cspasb.f90 index 24669587..cc24c594 100644 --- a/base/tools/psb_cspasb.f90 +++ b/base/tools/psb_cspasb.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/tools/psb_cspfree.f90 b/base/tools/psb_cspfree.f90 index cc359820..e501f597 100644 --- a/base/tools/psb_cspfree.f90 +++ b/base/tools/psb_cspfree.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/tools/psb_csphalo.F90 b/base/tools/psb_csphalo.F90 index f61a6be1..c50c8d79 100644 --- a/base/tools/psb_csphalo.F90 +++ b/base/tools/psb_csphalo.F90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/tools/psb_cspins.f90 b/base/tools/psb_cspins.f90 index f359e95e..5b343b8f 100644 --- a/base/tools/psb_cspins.f90 +++ b/base/tools/psb_cspins.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/tools/psb_csprn.f90 b/base/tools/psb_csprn.f90 index e9e0ed3e..f5f1d0fd 100644 --- a/base/tools/psb_csprn.f90 +++ b/base/tools/psb_csprn.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/tools/psb_d_map.f90 b/base/tools/psb_d_map.f90 index b10f27ad..22e2ceb5 100644 --- a/base/tools/psb_d_map.f90 +++ b/base/tools/psb_d_map.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/tools/psb_dallc.f90 b/base/tools/psb_dallc.f90 index 24a6c3bd..6b6d2078 100644 --- a/base/tools/psb_dallc.f90 +++ b/base/tools/psb_dallc.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions @@ -133,9 +133,9 @@ end subroutine psb_dalloc !!$ !!$ Parallel Sparse BLAS version 3.5 -!!$ (C) Copyright 2006, 2010, 2015, 2017 +!!$ (C) Copyright 2006-2018 !!$ Salvatore Filippone University of Rome Tor Vergata -!!$ Alfredo Buttari CNRS-IRIT, Toulouse +!!$ Alfredo Buttari !!$ !!$ Redistribution and use in source and binary forms, with or without !!$ modification, are permitted provided that the following conditions diff --git a/base/tools/psb_dasb.f90 b/base/tools/psb_dasb.f90 index 9f4589bd..4e673c16 100644 --- a/base/tools/psb_dasb.f90 +++ b/base/tools/psb_dasb.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions @@ -136,9 +136,9 @@ end subroutine psb_dasb !!$ !!$ Parallel Sparse BLAS version 3.5 -!!$ (C) Copyright 2006, 2010, 2015, 2017 +!!$ (C) Copyright 2006-2018 !!$ Salvatore Filippone University of Rome Tor Vergata -!!$ Alfredo Buttari CNRS-IRIT, Toulouse +!!$ Alfredo Buttari !!$ !!$ Redistribution and use in source and binary forms, with or without !!$ modification, are permitted provided that the following conditions diff --git a/base/tools/psb_dcdbldext.F90 b/base/tools/psb_dcdbldext.F90 index 48b3a1ca..14aa6976 100644 --- a/base/tools/psb_dcdbldext.F90 +++ b/base/tools/psb_dcdbldext.F90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/tools/psb_dfree.f90 b/base/tools/psb_dfree.f90 index 91a1c72e..0c366394 100644 --- a/base/tools/psb_dfree.f90 +++ b/base/tools/psb_dfree.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/tools/psb_dins.f90 b/base/tools/psb_dins.f90 index 61b69155..8c606b8d 100644 --- a/base/tools/psb_dins.f90 +++ b/base/tools/psb_dins.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions @@ -525,9 +525,9 @@ end subroutine psb_dins_vect_r2 !!$ !!$ Parallel Sparse BLAS version 3.5 -!!$ (C) Copyright 2006, 2010, 2015, 2017 +!!$ (C) Copyright 2006-2018 !!$ Salvatore Filippone University of Rome Tor Vergata -!!$ Alfredo Buttari CNRS-IRIT, Toulouse +!!$ Alfredo Buttari !!$ !!$ Redistribution and use in source and binary forms, with or without !!$ modification, are permitted provided that the following conditions diff --git a/base/tools/psb_dspalloc.f90 b/base/tools/psb_dspalloc.f90 index 1f37fa5b..34a329db 100644 --- a/base/tools/psb_dspalloc.f90 +++ b/base/tools/psb_dspalloc.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/tools/psb_dspasb.f90 b/base/tools/psb_dspasb.f90 index e5a7dc62..1e25e43c 100644 --- a/base/tools/psb_dspasb.f90 +++ b/base/tools/psb_dspasb.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/tools/psb_dspfree.f90 b/base/tools/psb_dspfree.f90 index 82cc7822..46740558 100644 --- a/base/tools/psb_dspfree.f90 +++ b/base/tools/psb_dspfree.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/tools/psb_dsphalo.F90 b/base/tools/psb_dsphalo.F90 index c3de846f..5c311aa6 100644 --- a/base/tools/psb_dsphalo.F90 +++ b/base/tools/psb_dsphalo.F90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/tools/psb_dspins.f90 b/base/tools/psb_dspins.f90 index 39c13994..2a9997ea 100644 --- a/base/tools/psb_dspins.f90 +++ b/base/tools/psb_dspins.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/tools/psb_dsprn.f90 b/base/tools/psb_dsprn.f90 index faa451bd..f2ed8359 100644 --- a/base/tools/psb_dsprn.f90 +++ b/base/tools/psb_dsprn.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/tools/psb_get_overlap.f90 b/base/tools/psb_get_overlap.f90 index b8019338..9563754f 100644 --- a/base/tools/psb_get_overlap.f90 +++ b/base/tools/psb_get_overlap.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/tools/psb_glob_to_loc.f90 b/base/tools/psb_glob_to_loc.f90 index e124fd1f..ad2640a5 100644 --- a/base/tools/psb_glob_to_loc.f90 +++ b/base/tools/psb_glob_to_loc.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions @@ -123,9 +123,9 @@ end subroutine psb_glob_to_loc2v !!$ !!$ Parallel Sparse BLAS version 3.5 -!!$ (C) Copyright 2006, 2010, 2015, 2017 +!!$ (C) Copyright 2006-2018 !!$ Salvatore Filippone University of Rome Tor Vergata -!!$ Alfredo Buttari CNRS-IRIT, Toulouse +!!$ Alfredo Buttari !!$ !!$ Redistribution and use in source and binary forms, with or without !!$ modification, are permitted provided that the following conditions diff --git a/base/tools/psb_iallc.f90 b/base/tools/psb_iallc.f90 index c74f27bf..d9edf8b1 100644 --- a/base/tools/psb_iallc.f90 +++ b/base/tools/psb_iallc.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions @@ -133,9 +133,9 @@ end subroutine psb_ialloc !!$ !!$ Parallel Sparse BLAS version 3.5 -!!$ (C) Copyright 2006, 2010, 2015, 2017 +!!$ (C) Copyright 2006-2018 !!$ Salvatore Filippone University of Rome Tor Vergata -!!$ Alfredo Buttari CNRS-IRIT, Toulouse +!!$ Alfredo Buttari !!$ !!$ Redistribution and use in source and binary forms, with or without !!$ modification, are permitted provided that the following conditions diff --git a/base/tools/psb_iasb.f90 b/base/tools/psb_iasb.f90 index b7d02bc0..148b011a 100644 --- a/base/tools/psb_iasb.f90 +++ b/base/tools/psb_iasb.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions @@ -136,9 +136,9 @@ end subroutine psb_iasb !!$ !!$ Parallel Sparse BLAS version 3.5 -!!$ (C) Copyright 2006, 2010, 2015, 2017 +!!$ (C) Copyright 2006-2018 !!$ Salvatore Filippone University of Rome Tor Vergata -!!$ Alfredo Buttari CNRS-IRIT, Toulouse +!!$ Alfredo Buttari !!$ !!$ Redistribution and use in source and binary forms, with or without !!$ modification, are permitted provided that the following conditions diff --git a/base/tools/psb_icdasb.F90 b/base/tools/psb_icdasb.F90 index b50244ce..b10ec1c9 100644 --- a/base/tools/psb_icdasb.F90 +++ b/base/tools/psb_icdasb.F90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/tools/psb_ifree.f90 b/base/tools/psb_ifree.f90 index 02f104af..65dfa3f8 100644 --- a/base/tools/psb_ifree.f90 +++ b/base/tools/psb_ifree.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/tools/psb_iins.f90 b/base/tools/psb_iins.f90 index 56a9971b..f98e2700 100644 --- a/base/tools/psb_iins.f90 +++ b/base/tools/psb_iins.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions @@ -525,9 +525,9 @@ end subroutine psb_iins_vect_r2 !!$ !!$ Parallel Sparse BLAS version 3.5 -!!$ (C) Copyright 2006, 2010, 2015, 2017 +!!$ (C) Copyright 2006-2018 !!$ Salvatore Filippone University of Rome Tor Vergata -!!$ Alfredo Buttari CNRS-IRIT, Toulouse +!!$ Alfredo Buttari !!$ !!$ Redistribution and use in source and binary forms, with or without !!$ modification, are permitted provided that the following conditions diff --git a/base/tools/psb_loc_to_glob.f90 b/base/tools/psb_loc_to_glob.f90 index d17de4fe..fb40116d 100644 --- a/base/tools/psb_loc_to_glob.f90 +++ b/base/tools/psb_loc_to_glob.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions @@ -108,9 +108,9 @@ end subroutine psb_loc_to_glob2v !!$ !!$ Parallel Sparse BLAS version 3.5 -!!$ (C) Copyright 2006, 2010, 2015, 2017 +!!$ (C) Copyright 2006-2018 !!$ Salvatore Filippone University of Rome Tor Vergata -!!$ Alfredo Buttari CNRS-IRIT, Toulouse +!!$ Alfredo Buttari !!$ !!$ Redistribution and use in source and binary forms, with or without !!$ modification, are permitted provided that the following conditions diff --git a/base/tools/psb_s_map.f90 b/base/tools/psb_s_map.f90 index 746baf02..511bc1de 100644 --- a/base/tools/psb_s_map.f90 +++ b/base/tools/psb_s_map.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/tools/psb_sallc.f90 b/base/tools/psb_sallc.f90 index 64e2e787..7777a449 100644 --- a/base/tools/psb_sallc.f90 +++ b/base/tools/psb_sallc.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions @@ -133,9 +133,9 @@ end subroutine psb_salloc !!$ !!$ Parallel Sparse BLAS version 3.5 -!!$ (C) Copyright 2006, 2010, 2015, 2017 +!!$ (C) Copyright 2006-2018 !!$ Salvatore Filippone University of Rome Tor Vergata -!!$ Alfredo Buttari CNRS-IRIT, Toulouse +!!$ Alfredo Buttari !!$ !!$ Redistribution and use in source and binary forms, with or without !!$ modification, are permitted provided that the following conditions diff --git a/base/tools/psb_sasb.f90 b/base/tools/psb_sasb.f90 index a960d50f..496303cf 100644 --- a/base/tools/psb_sasb.f90 +++ b/base/tools/psb_sasb.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions @@ -136,9 +136,9 @@ end subroutine psb_sasb !!$ !!$ Parallel Sparse BLAS version 3.5 -!!$ (C) Copyright 2006, 2010, 2015, 2017 +!!$ (C) Copyright 2006-2018 !!$ Salvatore Filippone University of Rome Tor Vergata -!!$ Alfredo Buttari CNRS-IRIT, Toulouse +!!$ Alfredo Buttari !!$ !!$ Redistribution and use in source and binary forms, with or without !!$ modification, are permitted provided that the following conditions diff --git a/base/tools/psb_scdbldext.F90 b/base/tools/psb_scdbldext.F90 index 5aa2adad..20fda8dc 100644 --- a/base/tools/psb_scdbldext.F90 +++ b/base/tools/psb_scdbldext.F90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/tools/psb_sfree.f90 b/base/tools/psb_sfree.f90 index 716517fe..d0419aa4 100644 --- a/base/tools/psb_sfree.f90 +++ b/base/tools/psb_sfree.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/tools/psb_sins.f90 b/base/tools/psb_sins.f90 index fcbc41cb..f6342a04 100644 --- a/base/tools/psb_sins.f90 +++ b/base/tools/psb_sins.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions @@ -525,9 +525,9 @@ end subroutine psb_sins_vect_r2 !!$ !!$ Parallel Sparse BLAS version 3.5 -!!$ (C) Copyright 2006, 2010, 2015, 2017 +!!$ (C) Copyright 2006-2018 !!$ Salvatore Filippone University of Rome Tor Vergata -!!$ Alfredo Buttari CNRS-IRIT, Toulouse +!!$ Alfredo Buttari !!$ !!$ Redistribution and use in source and binary forms, with or without !!$ modification, are permitted provided that the following conditions diff --git a/base/tools/psb_sspalloc.f90 b/base/tools/psb_sspalloc.f90 index 8779bdb4..91181526 100644 --- a/base/tools/psb_sspalloc.f90 +++ b/base/tools/psb_sspalloc.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/tools/psb_sspasb.f90 b/base/tools/psb_sspasb.f90 index 27cd72b0..00ef0db9 100644 --- a/base/tools/psb_sspasb.f90 +++ b/base/tools/psb_sspasb.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/tools/psb_sspfree.f90 b/base/tools/psb_sspfree.f90 index 7143e6a7..3c026623 100644 --- a/base/tools/psb_sspfree.f90 +++ b/base/tools/psb_sspfree.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/tools/psb_ssphalo.F90 b/base/tools/psb_ssphalo.F90 index adf12de9..acbf5212 100644 --- a/base/tools/psb_ssphalo.F90 +++ b/base/tools/psb_ssphalo.F90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/tools/psb_sspins.f90 b/base/tools/psb_sspins.f90 index 69932cbd..35058f52 100644 --- a/base/tools/psb_sspins.f90 +++ b/base/tools/psb_sspins.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/tools/psb_ssprn.f90 b/base/tools/psb_ssprn.f90 index 338cc372..5b666286 100644 --- a/base/tools/psb_ssprn.f90 +++ b/base/tools/psb_ssprn.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/tools/psb_z_map.f90 b/base/tools/psb_z_map.f90 index 98d3246a..d58c4a82 100644 --- a/base/tools/psb_z_map.f90 +++ b/base/tools/psb_z_map.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/tools/psb_zallc.f90 b/base/tools/psb_zallc.f90 index fe443b1f..dcc2b677 100644 --- a/base/tools/psb_zallc.f90 +++ b/base/tools/psb_zallc.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions @@ -133,9 +133,9 @@ end subroutine psb_zalloc !!$ !!$ Parallel Sparse BLAS version 3.5 -!!$ (C) Copyright 2006, 2010, 2015, 2017 +!!$ (C) Copyright 2006-2018 !!$ Salvatore Filippone University of Rome Tor Vergata -!!$ Alfredo Buttari CNRS-IRIT, Toulouse +!!$ Alfredo Buttari !!$ !!$ Redistribution and use in source and binary forms, with or without !!$ modification, are permitted provided that the following conditions diff --git a/base/tools/psb_zasb.f90 b/base/tools/psb_zasb.f90 index ee3cbc91..5e027b78 100644 --- a/base/tools/psb_zasb.f90 +++ b/base/tools/psb_zasb.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions @@ -136,9 +136,9 @@ end subroutine psb_zasb !!$ !!$ Parallel Sparse BLAS version 3.5 -!!$ (C) Copyright 2006, 2010, 2015, 2017 +!!$ (C) Copyright 2006-2018 !!$ Salvatore Filippone University of Rome Tor Vergata -!!$ Alfredo Buttari CNRS-IRIT, Toulouse +!!$ Alfredo Buttari !!$ !!$ Redistribution and use in source and binary forms, with or without !!$ modification, are permitted provided that the following conditions diff --git a/base/tools/psb_zcdbldext.F90 b/base/tools/psb_zcdbldext.F90 index 497af67b..355d540c 100644 --- a/base/tools/psb_zcdbldext.F90 +++ b/base/tools/psb_zcdbldext.F90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/tools/psb_zfree.f90 b/base/tools/psb_zfree.f90 index 6d0ec8dc..ad2a0207 100644 --- a/base/tools/psb_zfree.f90 +++ b/base/tools/psb_zfree.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/tools/psb_zins.f90 b/base/tools/psb_zins.f90 index 1da85d7d..c03819fe 100644 --- a/base/tools/psb_zins.f90 +++ b/base/tools/psb_zins.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions @@ -525,9 +525,9 @@ end subroutine psb_zins_vect_r2 !!$ !!$ Parallel Sparse BLAS version 3.5 -!!$ (C) Copyright 2006, 2010, 2015, 2017 +!!$ (C) Copyright 2006-2018 !!$ Salvatore Filippone University of Rome Tor Vergata -!!$ Alfredo Buttari CNRS-IRIT, Toulouse +!!$ Alfredo Buttari !!$ !!$ Redistribution and use in source and binary forms, with or without !!$ modification, are permitted provided that the following conditions diff --git a/base/tools/psb_zspalloc.f90 b/base/tools/psb_zspalloc.f90 index 7d11d1c3..6687825f 100644 --- a/base/tools/psb_zspalloc.f90 +++ b/base/tools/psb_zspalloc.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/tools/psb_zspasb.f90 b/base/tools/psb_zspasb.f90 index 3f6a4c35..995782b8 100644 --- a/base/tools/psb_zspasb.f90 +++ b/base/tools/psb_zspasb.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/tools/psb_zspfree.f90 b/base/tools/psb_zspfree.f90 index 47621504..10146232 100644 --- a/base/tools/psb_zspfree.f90 +++ b/base/tools/psb_zspfree.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/tools/psb_zsphalo.F90 b/base/tools/psb_zsphalo.F90 index e7f73271..3ce2d6da 100644 --- a/base/tools/psb_zsphalo.F90 +++ b/base/tools/psb_zsphalo.F90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/tools/psb_zspins.f90 b/base/tools/psb_zspins.f90 index 99ec1aee..047597ff 100644 --- a/base/tools/psb_zspins.f90 +++ b/base/tools/psb_zspins.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/base/tools/psb_zsprn.f90 b/base/tools/psb_zsprn.f90 index 832548ce..36942b39 100644 --- a/base/tools/psb_zsprn.f90 +++ b/base/tools/psb_zsprn.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/cbind/test/pargen/ppdec.c b/cbind/test/pargen/ppdec.c index 4f34e676..1e9d786a 100644 --- a/cbind/test/pargen/ppdec.c +++ b/cbind/test/pargen/ppdec.c @@ -1,6 +1,6 @@ /*----------------------------------------------------------------------------------*/ /* Parallel Sparse BLAS v 3.5.0 */ -/* (C) Copyright 2017 Salvatore Filippone Cranfield University */ +/* (C) Copyright 2017 Salvatore Filippone */ /* */ /* Redistribution and use in source and binary forms, with or without */ /* modification, are permitted provided that the following conditions */ diff --git a/krylov/psb_base_krylov_conv_mod.f90 b/krylov/psb_base_krylov_conv_mod.f90 index 64c92cb7..b3ef5cd1 100644 --- a/krylov/psb_base_krylov_conv_mod.f90 +++ b/krylov/psb_base_krylov_conv_mod.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/krylov/psb_c_krylov_conv_mod.f90 b/krylov/psb_c_krylov_conv_mod.f90 index e624a7ea..e3fcac01 100644 --- a/krylov/psb_c_krylov_conv_mod.f90 +++ b/krylov/psb_c_krylov_conv_mod.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/krylov/psb_cbicg.f90 b/krylov/psb_cbicg.f90 index 9d234eef..bb957ef1 100644 --- a/krylov/psb_cbicg.f90 +++ b/krylov/psb_cbicg.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/krylov/psb_ccg.F90 b/krylov/psb_ccg.F90 index a5663a83..5ac253e7 100644 --- a/krylov/psb_ccg.F90 +++ b/krylov/psb_ccg.F90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/krylov/psb_ccgs.f90 b/krylov/psb_ccgs.f90 index 81627abd..b6542aae 100644 --- a/krylov/psb_ccgs.f90 +++ b/krylov/psb_ccgs.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/krylov/psb_ccgstab.f90 b/krylov/psb_ccgstab.f90 index 26ec68e1..9cbc3f90 100644 --- a/krylov/psb_ccgstab.f90 +++ b/krylov/psb_ccgstab.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/krylov/psb_ccgstabl.f90 b/krylov/psb_ccgstabl.f90 index 6896e58c..8ab0453a 100644 --- a/krylov/psb_ccgstabl.f90 +++ b/krylov/psb_ccgstabl.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/krylov/psb_cfcg.F90 b/krylov/psb_cfcg.F90 index 199f07c3..0e4c0271 100644 --- a/krylov/psb_cfcg.F90 +++ b/krylov/psb_cfcg.F90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/krylov/psb_cgcr.f90 b/krylov/psb_cgcr.f90 index 76f58160..1ce78fc3 100644 --- a/krylov/psb_cgcr.f90 +++ b/krylov/psb_cgcr.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/krylov/psb_ckrylov.f90 b/krylov/psb_ckrylov.f90 index 452234d5..a5d19445 100644 --- a/krylov/psb_ckrylov.f90 +++ b/krylov/psb_ckrylov.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/krylov/psb_crgmres.f90 b/krylov/psb_crgmres.f90 index 4b8783e2..d7e75251 100644 --- a/krylov/psb_crgmres.f90 +++ b/krylov/psb_crgmres.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Contributions to this routine: ! Daniela di Serafino Second University of Naples diff --git a/krylov/psb_d_krylov_conv_mod.f90 b/krylov/psb_d_krylov_conv_mod.f90 index 23861d1c..d77197a5 100644 --- a/krylov/psb_d_krylov_conv_mod.f90 +++ b/krylov/psb_d_krylov_conv_mod.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/krylov/psb_dbicg.f90 b/krylov/psb_dbicg.f90 index 70cd114f..be2ed48f 100644 --- a/krylov/psb_dbicg.f90 +++ b/krylov/psb_dbicg.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/krylov/psb_dcg.F90 b/krylov/psb_dcg.F90 index ce79db27..e8d08f03 100644 --- a/krylov/psb_dcg.F90 +++ b/krylov/psb_dcg.F90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/krylov/psb_dcgs.f90 b/krylov/psb_dcgs.f90 index 07f8312f..dca1748b 100644 --- a/krylov/psb_dcgs.f90 +++ b/krylov/psb_dcgs.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/krylov/psb_dcgstab.f90 b/krylov/psb_dcgstab.f90 index e8f54b04..73b0662d 100644 --- a/krylov/psb_dcgstab.f90 +++ b/krylov/psb_dcgstab.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/krylov/psb_dcgstabl.f90 b/krylov/psb_dcgstabl.f90 index 5a17588f..c85f562b 100644 --- a/krylov/psb_dcgstabl.f90 +++ b/krylov/psb_dcgstabl.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/krylov/psb_dfcg.F90 b/krylov/psb_dfcg.F90 index 8aa5fd7c..2821829a 100644 --- a/krylov/psb_dfcg.F90 +++ b/krylov/psb_dfcg.F90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/krylov/psb_dgcr.f90 b/krylov/psb_dgcr.f90 index 7d90720a..acbaa5a7 100644 --- a/krylov/psb_dgcr.f90 +++ b/krylov/psb_dgcr.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/krylov/psb_dkrylov.f90 b/krylov/psb_dkrylov.f90 index 78aa94b5..ab3178da 100644 --- a/krylov/psb_dkrylov.f90 +++ b/krylov/psb_dkrylov.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/krylov/psb_drgmres.f90 b/krylov/psb_drgmres.f90 index c9eeb1d8..368a6482 100644 --- a/krylov/psb_drgmres.f90 +++ b/krylov/psb_drgmres.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Contributions to this routine: ! Daniela di Serafino Second University of Naples diff --git a/krylov/psb_krylov_conv_mod.f90 b/krylov/psb_krylov_conv_mod.f90 index f01dac98..2ec83178 100644 --- a/krylov/psb_krylov_conv_mod.f90 +++ b/krylov/psb_krylov_conv_mod.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/krylov/psb_krylov_mod.f90 b/krylov/psb_krylov_mod.f90 index 6f97c74d..d8d4d904 100644 --- a/krylov/psb_krylov_mod.f90 +++ b/krylov/psb_krylov_mod.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/krylov/psb_s_krylov_conv_mod.f90 b/krylov/psb_s_krylov_conv_mod.f90 index 07d0ab41..4c5b0a07 100644 --- a/krylov/psb_s_krylov_conv_mod.f90 +++ b/krylov/psb_s_krylov_conv_mod.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/krylov/psb_sbicg.f90 b/krylov/psb_sbicg.f90 index a6b005a1..2afaa716 100644 --- a/krylov/psb_sbicg.f90 +++ b/krylov/psb_sbicg.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/krylov/psb_scg.F90 b/krylov/psb_scg.F90 index 5f08d8d1..fad4538c 100644 --- a/krylov/psb_scg.F90 +++ b/krylov/psb_scg.F90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/krylov/psb_scgs.f90 b/krylov/psb_scgs.f90 index 4a33eef2..d053444a 100644 --- a/krylov/psb_scgs.f90 +++ b/krylov/psb_scgs.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/krylov/psb_scgstab.f90 b/krylov/psb_scgstab.f90 index f81904e8..c0ca345c 100644 --- a/krylov/psb_scgstab.f90 +++ b/krylov/psb_scgstab.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/krylov/psb_scgstabl.f90 b/krylov/psb_scgstabl.f90 index 28840846..0f888980 100644 --- a/krylov/psb_scgstabl.f90 +++ b/krylov/psb_scgstabl.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/krylov/psb_sfcg.F90 b/krylov/psb_sfcg.F90 index a22ba052..2fae24b4 100644 --- a/krylov/psb_sfcg.F90 +++ b/krylov/psb_sfcg.F90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/krylov/psb_sgcr.f90 b/krylov/psb_sgcr.f90 index 9bc81f70..08333af2 100644 --- a/krylov/psb_sgcr.f90 +++ b/krylov/psb_sgcr.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/krylov/psb_skrylov.f90 b/krylov/psb_skrylov.f90 index b66fc738..9eb3552d 100644 --- a/krylov/psb_skrylov.f90 +++ b/krylov/psb_skrylov.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/krylov/psb_srgmres.f90 b/krylov/psb_srgmres.f90 index e1030332..311bc0fb 100644 --- a/krylov/psb_srgmres.f90 +++ b/krylov/psb_srgmres.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Contributions to this routine: ! Daniela di Serafino Second University of Naples diff --git a/krylov/psb_z_krylov_conv_mod.f90 b/krylov/psb_z_krylov_conv_mod.f90 index 65cb2707..5e300cbb 100644 --- a/krylov/psb_z_krylov_conv_mod.f90 +++ b/krylov/psb_z_krylov_conv_mod.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/krylov/psb_zbicg.f90 b/krylov/psb_zbicg.f90 index e71a10f5..969280d3 100644 --- a/krylov/psb_zbicg.f90 +++ b/krylov/psb_zbicg.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/krylov/psb_zcg.F90 b/krylov/psb_zcg.F90 index 81b2d0be..f1d63cc7 100644 --- a/krylov/psb_zcg.F90 +++ b/krylov/psb_zcg.F90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/krylov/psb_zcgs.f90 b/krylov/psb_zcgs.f90 index 27efae63..3130427a 100644 --- a/krylov/psb_zcgs.f90 +++ b/krylov/psb_zcgs.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/krylov/psb_zcgstab.f90 b/krylov/psb_zcgstab.f90 index feb37885..68381c48 100644 --- a/krylov/psb_zcgstab.f90 +++ b/krylov/psb_zcgstab.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/krylov/psb_zcgstabl.f90 b/krylov/psb_zcgstabl.f90 index 48d1ea35..5ddbf309 100644 --- a/krylov/psb_zcgstabl.f90 +++ b/krylov/psb_zcgstabl.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/krylov/psb_zfcg.F90 b/krylov/psb_zfcg.F90 index a8afa38f..0e2ad2da 100644 --- a/krylov/psb_zfcg.F90 +++ b/krylov/psb_zfcg.F90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/krylov/psb_zgcr.f90 b/krylov/psb_zgcr.f90 index 6d17db93..40b4cf7f 100644 --- a/krylov/psb_zgcr.f90 +++ b/krylov/psb_zgcr.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/krylov/psb_zkrylov.f90 b/krylov/psb_zkrylov.f90 index 3c65b725..4ab8776b 100644 --- a/krylov/psb_zkrylov.f90 +++ b/krylov/psb_zkrylov.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/krylov/psb_zrgmres.f90 b/krylov/psb_zrgmres.f90 index 3696208f..deb4111f 100644 --- a/krylov/psb_zrgmres.f90 +++ b/krylov/psb_zrgmres.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Contributions to this routine: ! Daniela di Serafino Second University of Naples diff --git a/prec/impl/psb_c_bjacprec_impl.f90 b/prec/impl/psb_c_bjacprec_impl.f90 index a4e71b53..f8ecdf04 100644 --- a/prec/impl/psb_c_bjacprec_impl.f90 +++ b/prec/impl/psb_c_bjacprec_impl.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/prec/impl/psb_c_diagprec_impl.f90 b/prec/impl/psb_c_diagprec_impl.f90 index e926f22e..f31aae1e 100644 --- a/prec/impl/psb_c_diagprec_impl.f90 +++ b/prec/impl/psb_c_diagprec_impl.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/prec/impl/psb_c_nullprec_impl.f90 b/prec/impl/psb_c_nullprec_impl.f90 index 0251c2b5..9d87522a 100644 --- a/prec/impl/psb_c_nullprec_impl.f90 +++ b/prec/impl/psb_c_nullprec_impl.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/prec/impl/psb_c_prec_type_impl.f90 b/prec/impl/psb_c_prec_type_impl.f90 index a1f84094..e1f13fc4 100644 --- a/prec/impl/psb_c_prec_type_impl.f90 +++ b/prec/impl/psb_c_prec_type_impl.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions @@ -31,9 +31,9 @@ ! ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/prec/impl/psb_cilu_fct.f90 b/prec/impl/psb_cilu_fct.f90 index d3513754..d54769bf 100644 --- a/prec/impl/psb_cilu_fct.f90 +++ b/prec/impl/psb_cilu_fct.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/prec/impl/psb_cprecbld.f90 b/prec/impl/psb_cprecbld.f90 index 23808d8f..b2312468 100644 --- a/prec/impl/psb_cprecbld.f90 +++ b/prec/impl/psb_cprecbld.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/prec/impl/psb_cprecinit.f90 b/prec/impl/psb_cprecinit.f90 index e193364c..6a757e39 100644 --- a/prec/impl/psb_cprecinit.f90 +++ b/prec/impl/psb_cprecinit.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/prec/impl/psb_cprecset.f90 b/prec/impl/psb_cprecset.f90 index 8094f515..e7ca3171 100644 --- a/prec/impl/psb_cprecset.f90 +++ b/prec/impl/psb_cprecset.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/prec/impl/psb_d_bjacprec_impl.f90 b/prec/impl/psb_d_bjacprec_impl.f90 index db754a2f..6ac52d97 100644 --- a/prec/impl/psb_d_bjacprec_impl.f90 +++ b/prec/impl/psb_d_bjacprec_impl.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/prec/impl/psb_d_diagprec_impl.f90 b/prec/impl/psb_d_diagprec_impl.f90 index d3abf63e..5e0175a2 100644 --- a/prec/impl/psb_d_diagprec_impl.f90 +++ b/prec/impl/psb_d_diagprec_impl.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/prec/impl/psb_d_nullprec_impl.f90 b/prec/impl/psb_d_nullprec_impl.f90 index e3fd1a07..b9822932 100644 --- a/prec/impl/psb_d_nullprec_impl.f90 +++ b/prec/impl/psb_d_nullprec_impl.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/prec/impl/psb_d_prec_type_impl.f90 b/prec/impl/psb_d_prec_type_impl.f90 index c4b391b2..793afac7 100644 --- a/prec/impl/psb_d_prec_type_impl.f90 +++ b/prec/impl/psb_d_prec_type_impl.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions @@ -31,9 +31,9 @@ ! ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/prec/impl/psb_dilu_fct.f90 b/prec/impl/psb_dilu_fct.f90 index c69c134e..b97b88ec 100644 --- a/prec/impl/psb_dilu_fct.f90 +++ b/prec/impl/psb_dilu_fct.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/prec/impl/psb_dprecbld.f90 b/prec/impl/psb_dprecbld.f90 index ca59a393..5f2ac056 100644 --- a/prec/impl/psb_dprecbld.f90 +++ b/prec/impl/psb_dprecbld.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/prec/impl/psb_dprecinit.f90 b/prec/impl/psb_dprecinit.f90 index 56862240..b5bee7ab 100644 --- a/prec/impl/psb_dprecinit.f90 +++ b/prec/impl/psb_dprecinit.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/prec/impl/psb_dprecset.f90 b/prec/impl/psb_dprecset.f90 index e381e902..9134fabe 100644 --- a/prec/impl/psb_dprecset.f90 +++ b/prec/impl/psb_dprecset.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/prec/impl/psb_s_bjacprec_impl.f90 b/prec/impl/psb_s_bjacprec_impl.f90 index 8b597aa5..528224c0 100644 --- a/prec/impl/psb_s_bjacprec_impl.f90 +++ b/prec/impl/psb_s_bjacprec_impl.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/prec/impl/psb_s_diagprec_impl.f90 b/prec/impl/psb_s_diagprec_impl.f90 index ef45b8bc..79ba27cc 100644 --- a/prec/impl/psb_s_diagprec_impl.f90 +++ b/prec/impl/psb_s_diagprec_impl.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/prec/impl/psb_s_nullprec_impl.f90 b/prec/impl/psb_s_nullprec_impl.f90 index 38936dfa..f95c34fd 100644 --- a/prec/impl/psb_s_nullprec_impl.f90 +++ b/prec/impl/psb_s_nullprec_impl.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/prec/impl/psb_s_prec_type_impl.f90 b/prec/impl/psb_s_prec_type_impl.f90 index 82b69026..547272a0 100644 --- a/prec/impl/psb_s_prec_type_impl.f90 +++ b/prec/impl/psb_s_prec_type_impl.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions @@ -31,9 +31,9 @@ ! ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/prec/impl/psb_silu_fct.f90 b/prec/impl/psb_silu_fct.f90 index a2506f1c..85b58bad 100644 --- a/prec/impl/psb_silu_fct.f90 +++ b/prec/impl/psb_silu_fct.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/prec/impl/psb_sprecbld.f90 b/prec/impl/psb_sprecbld.f90 index 45e5416a..a69480c9 100644 --- a/prec/impl/psb_sprecbld.f90 +++ b/prec/impl/psb_sprecbld.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/prec/impl/psb_sprecinit.f90 b/prec/impl/psb_sprecinit.f90 index 093b70e9..54897772 100644 --- a/prec/impl/psb_sprecinit.f90 +++ b/prec/impl/psb_sprecinit.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/prec/impl/psb_sprecset.f90 b/prec/impl/psb_sprecset.f90 index 41d34d56..2c2b1aa9 100644 --- a/prec/impl/psb_sprecset.f90 +++ b/prec/impl/psb_sprecset.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/prec/impl/psb_z_bjacprec_impl.f90 b/prec/impl/psb_z_bjacprec_impl.f90 index 32d3a035..ac55d862 100644 --- a/prec/impl/psb_z_bjacprec_impl.f90 +++ b/prec/impl/psb_z_bjacprec_impl.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/prec/impl/psb_z_diagprec_impl.f90 b/prec/impl/psb_z_diagprec_impl.f90 index 021ea37e..24e288f5 100644 --- a/prec/impl/psb_z_diagprec_impl.f90 +++ b/prec/impl/psb_z_diagprec_impl.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/prec/impl/psb_z_nullprec_impl.f90 b/prec/impl/psb_z_nullprec_impl.f90 index 5d81f14e..0306f35d 100644 --- a/prec/impl/psb_z_nullprec_impl.f90 +++ b/prec/impl/psb_z_nullprec_impl.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/prec/impl/psb_z_prec_type_impl.f90 b/prec/impl/psb_z_prec_type_impl.f90 index 9dc32ad6..982fc008 100644 --- a/prec/impl/psb_z_prec_type_impl.f90 +++ b/prec/impl/psb_z_prec_type_impl.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions @@ -31,9 +31,9 @@ ! ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/prec/impl/psb_zilu_fct.f90 b/prec/impl/psb_zilu_fct.f90 index 04723bc0..e5ea4b0d 100644 --- a/prec/impl/psb_zilu_fct.f90 +++ b/prec/impl/psb_zilu_fct.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/prec/impl/psb_zprecbld.f90 b/prec/impl/psb_zprecbld.f90 index f87cf8a7..164d1808 100644 --- a/prec/impl/psb_zprecbld.f90 +++ b/prec/impl/psb_zprecbld.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/prec/impl/psb_zprecinit.f90 b/prec/impl/psb_zprecinit.f90 index a9e6c019..40ecb78e 100644 --- a/prec/impl/psb_zprecinit.f90 +++ b/prec/impl/psb_zprecinit.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/prec/impl/psb_zprecset.f90 b/prec/impl/psb_zprecset.f90 index bcc77d6f..7d687ffc 100644 --- a/prec/impl/psb_zprecset.f90 +++ b/prec/impl/psb_zprecset.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/prec/psb_c_base_prec_mod.f90 b/prec/psb_c_base_prec_mod.f90 index 624b9c7c..9325f2ae 100644 --- a/prec/psb_c_base_prec_mod.f90 +++ b/prec/psb_c_base_prec_mod.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/prec/psb_c_bjacprec.f90 b/prec/psb_c_bjacprec.f90 index ceb60c61..d7be28e6 100644 --- a/prec/psb_c_bjacprec.f90 +++ b/prec/psb_c_bjacprec.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/prec/psb_c_diagprec.f90 b/prec/psb_c_diagprec.f90 index a8267070..c766f1e6 100644 --- a/prec/psb_c_diagprec.f90 +++ b/prec/psb_c_diagprec.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/prec/psb_c_nullprec.f90 b/prec/psb_c_nullprec.f90 index ca149798..5dabb2d4 100644 --- a/prec/psb_c_nullprec.f90 +++ b/prec/psb_c_nullprec.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/prec/psb_c_prec_mod.f90 b/prec/psb_c_prec_mod.f90 index aa292aaf..dcaf0192 100644 --- a/prec/psb_c_prec_mod.f90 +++ b/prec/psb_c_prec_mod.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/prec/psb_c_prec_type.f90 b/prec/psb_c_prec_type.f90 index bace774a..a7bc4031 100644 --- a/prec/psb_c_prec_type.f90 +++ b/prec/psb_c_prec_type.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/prec/psb_d_base_prec_mod.f90 b/prec/psb_d_base_prec_mod.f90 index 94550aa9..6acdf7fc 100644 --- a/prec/psb_d_base_prec_mod.f90 +++ b/prec/psb_d_base_prec_mod.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/prec/psb_d_bjacprec.f90 b/prec/psb_d_bjacprec.f90 index ee2616c9..8a79c84e 100644 --- a/prec/psb_d_bjacprec.f90 +++ b/prec/psb_d_bjacprec.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/prec/psb_d_diagprec.f90 b/prec/psb_d_diagprec.f90 index 227d4a04..5b23077d 100644 --- a/prec/psb_d_diagprec.f90 +++ b/prec/psb_d_diagprec.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/prec/psb_d_nullprec.f90 b/prec/psb_d_nullprec.f90 index 38e066a9..e22edba9 100644 --- a/prec/psb_d_nullprec.f90 +++ b/prec/psb_d_nullprec.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/prec/psb_d_prec_mod.f90 b/prec/psb_d_prec_mod.f90 index 52c5d162..4cb8a5b7 100644 --- a/prec/psb_d_prec_mod.f90 +++ b/prec/psb_d_prec_mod.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/prec/psb_d_prec_type.f90 b/prec/psb_d_prec_type.f90 index 97ec74b1..814baa74 100644 --- a/prec/psb_d_prec_type.f90 +++ b/prec/psb_d_prec_type.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/prec/psb_prec_const_mod.f90 b/prec/psb_prec_const_mod.f90 index 466787be..34d5d516 100644 --- a/prec/psb_prec_const_mod.f90 +++ b/prec/psb_prec_const_mod.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/prec/psb_prec_mod.f90 b/prec/psb_prec_mod.f90 index 42944cc9..86bf5058 100644 --- a/prec/psb_prec_mod.f90 +++ b/prec/psb_prec_mod.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/prec/psb_prec_type.f90 b/prec/psb_prec_type.f90 index 551f3814..0c821246 100644 --- a/prec/psb_prec_type.f90 +++ b/prec/psb_prec_type.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/prec/psb_s_base_prec_mod.f90 b/prec/psb_s_base_prec_mod.f90 index 6440f703..ccfd6e01 100644 --- a/prec/psb_s_base_prec_mod.f90 +++ b/prec/psb_s_base_prec_mod.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/prec/psb_s_bjacprec.f90 b/prec/psb_s_bjacprec.f90 index e8ec9b86..269bb0eb 100644 --- a/prec/psb_s_bjacprec.f90 +++ b/prec/psb_s_bjacprec.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/prec/psb_s_diagprec.f90 b/prec/psb_s_diagprec.f90 index cf7c5991..ecf46d56 100644 --- a/prec/psb_s_diagprec.f90 +++ b/prec/psb_s_diagprec.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/prec/psb_s_nullprec.f90 b/prec/psb_s_nullprec.f90 index 833040cd..93411f63 100644 --- a/prec/psb_s_nullprec.f90 +++ b/prec/psb_s_nullprec.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/prec/psb_s_prec_mod.f90 b/prec/psb_s_prec_mod.f90 index 98ebfefc..1bc7f642 100644 --- a/prec/psb_s_prec_mod.f90 +++ b/prec/psb_s_prec_mod.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/prec/psb_s_prec_type.f90 b/prec/psb_s_prec_type.f90 index 957e6f17..5cbc1018 100644 --- a/prec/psb_s_prec_type.f90 +++ b/prec/psb_s_prec_type.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/prec/psb_z_base_prec_mod.f90 b/prec/psb_z_base_prec_mod.f90 index 3507f9dc..fca3b5bd 100644 --- a/prec/psb_z_base_prec_mod.f90 +++ b/prec/psb_z_base_prec_mod.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/prec/psb_z_bjacprec.f90 b/prec/psb_z_bjacprec.f90 index 2c63b002..cd5bf889 100644 --- a/prec/psb_z_bjacprec.f90 +++ b/prec/psb_z_bjacprec.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/prec/psb_z_diagprec.f90 b/prec/psb_z_diagprec.f90 index 7ddc168a..e3874a8c 100644 --- a/prec/psb_z_diagprec.f90 +++ b/prec/psb_z_diagprec.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/prec/psb_z_nullprec.f90 b/prec/psb_z_nullprec.f90 index f51f9464..6e651e73 100644 --- a/prec/psb_z_nullprec.f90 +++ b/prec/psb_z_nullprec.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/prec/psb_z_prec_mod.f90 b/prec/psb_z_prec_mod.f90 index 04427b07..59fee171 100644 --- a/prec/psb_z_prec_mod.f90 +++ b/prec/psb_z_prec_mod.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/prec/psb_z_prec_type.f90 b/prec/psb_z_prec_type.f90 index 09141385..526628b9 100644 --- a/prec/psb_z_prec_type.f90 +++ b/prec/psb_z_prec_type.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/test/fileread/getp.f90 b/test/fileread/getp.f90 index 3e73a8b0..088b68fc 100644 --- a/test/fileread/getp.f90 +++ b/test/fileread/getp.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/test/fileread/psb_cf_sample.f90 b/test/fileread/psb_cf_sample.f90 index 052ce990..927553e3 100644 --- a/test/fileread/psb_cf_sample.f90 +++ b/test/fileread/psb_cf_sample.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/test/fileread/psb_df_sample.f90 b/test/fileread/psb_df_sample.f90 index 58079458..6414b904 100644 --- a/test/fileread/psb_df_sample.f90 +++ b/test/fileread/psb_df_sample.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/test/fileread/psb_sf_sample.f90 b/test/fileread/psb_sf_sample.f90 index 4d7e822e..66746daa 100644 --- a/test/fileread/psb_sf_sample.f90 +++ b/test/fileread/psb_sf_sample.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/test/fileread/psb_zf_sample.f90 b/test/fileread/psb_zf_sample.f90 index 056a5122..39c11a1e 100644 --- a/test/fileread/psb_zf_sample.f90 +++ b/test/fileread/psb_zf_sample.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/test/kernel/d_file_spmv.f90 b/test/kernel/d_file_spmv.f90 index fdc2d0ac..49b6b834 100644 --- a/test/kernel/d_file_spmv.f90 +++ b/test/kernel/d_file_spmv.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/test/kernel/pdgenspmv.f90 b/test/kernel/pdgenspmv.f90 index 2a49d232..f08e5797 100644 --- a/test/kernel/pdgenspmv.f90 +++ b/test/kernel/pdgenspmv.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5.1 ! (C) Copyright 2015 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/test/kernel/s_file_spmv.f90 b/test/kernel/s_file_spmv.f90 index f6e45456..f833b259 100644 --- a/test/kernel/s_file_spmv.f90 +++ b/test/kernel/s_file_spmv.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/test/pargen/psb_d_pde2d.f90 b/test/pargen/psb_d_pde2d.f90 index 6d2eff3e..a7c6a09d 100644 --- a/test/pargen/psb_d_pde2d.f90 +++ b/test/pargen/psb_d_pde2d.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/test/pargen/psb_d_pde3d.f90 b/test/pargen/psb_d_pde3d.f90 index 7ae31daa..2a541223 100644 --- a/test/pargen/psb_d_pde3d.f90 +++ b/test/pargen/psb_d_pde3d.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/test/pargen/psb_s_pde2d.f90 b/test/pargen/psb_s_pde2d.f90 index 6589f692..fd22479c 100644 --- a/test/pargen/psb_s_pde2d.f90 +++ b/test/pargen/psb_s_pde2d.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/test/pargen/psb_s_pde3d.f90 b/test/pargen/psb_s_pde3d.f90 index 6f21644a..ef350faf 100644 --- a/test/pargen/psb_s_pde3d.f90 +++ b/test/pargen/psb_s_pde3d.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/test/serial/psb_d_xyz_impl.f90 b/test/serial/psb_d_xyz_impl.f90 index 04844586..4f57c53d 100644 --- a/test/serial/psb_d_xyz_impl.f90 +++ b/test/serial/psb_d_xyz_impl.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/test/serial/psb_d_xyz_mat_mod.f90 b/test/serial/psb_d_xyz_mat_mod.f90 index 46defa7d..08717b8b 100644 --- a/test/serial/psb_d_xyz_mat_mod.f90 +++ b/test/serial/psb_d_xyz_mat_mod.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/test/util/dhb2mm.f90 b/test/util/dhb2mm.f90 index 1e66608b..adc0e238 100644 --- a/test/util/dhb2mm.f90 +++ b/test/util/dhb2mm.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/test/util/dmm2hb.f90 b/test/util/dmm2hb.f90 index d0699a99..e567471d 100644 --- a/test/util/dmm2hb.f90 +++ b/test/util/dmm2hb.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/test/util/zhb2mm.f90 b/test/util/zhb2mm.f90 index bda7da35..1981c6cc 100644 --- a/test/util/zhb2mm.f90 +++ b/test/util/zhb2mm.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/test/util/zmm2hb.f90 b/test/util/zmm2hb.f90 index f847cbcd..e6993f3e 100644 --- a/test/util/zmm2hb.f90 +++ b/test/util/zmm2hb.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/util/psb_amd_order.c b/util/psb_amd_order.c index 6bb8afac..62c7c49f 100644 --- a/util/psb_amd_order.c +++ b/util/psb_amd_order.c @@ -2,7 +2,7 @@ Parallel Sparse BLAS version 3.4 (C) Copyright 2006, 2010, 2015 Salvatore Filippone University of Rome Tor Vergata - Alfredo Buttari CNRS-IRIT, Toulouse + Alfredo Buttari Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions diff --git a/util/psb_blockpart_mod.f90 b/util/psb_blockpart_mod.f90 index 15c608d7..39873b89 100644 --- a/util/psb_blockpart_mod.f90 +++ b/util/psb_blockpart_mod.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/util/psb_c_hbio_impl.f90 b/util/psb_c_hbio_impl.f90 index 5e48d1e9..1bed81ef 100644 --- a/util/psb_c_hbio_impl.f90 +++ b/util/psb_c_hbio_impl.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/util/psb_c_mat_dist_impl.f90 b/util/psb_c_mat_dist_impl.f90 index 79429150..0df855f6 100644 --- a/util/psb_c_mat_dist_impl.f90 +++ b/util/psb_c_mat_dist_impl.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/util/psb_c_mat_dist_mod.f90 b/util/psb_c_mat_dist_mod.f90 index 037ca836..7ce6abd9 100644 --- a/util/psb_c_mat_dist_mod.f90 +++ b/util/psb_c_mat_dist_mod.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/util/psb_c_mmio_impl.f90 b/util/psb_c_mmio_impl.f90 index 64e84a7c..e2f0ac60 100644 --- a/util/psb_c_mmio_impl.f90 +++ b/util/psb_c_mmio_impl.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/util/psb_c_renum_impl.F90 b/util/psb_c_renum_impl.F90 index 4cb63e06..c2caca32 100644 --- a/util/psb_c_renum_impl.F90 +++ b/util/psb_c_renum_impl.F90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/util/psb_d_hbio_impl.f90 b/util/psb_d_hbio_impl.f90 index 25ba72e6..dff5423a 100644 --- a/util/psb_d_hbio_impl.f90 +++ b/util/psb_d_hbio_impl.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/util/psb_d_mat_dist_impl.f90 b/util/psb_d_mat_dist_impl.f90 index e4b91b34..97ed77be 100644 --- a/util/psb_d_mat_dist_impl.f90 +++ b/util/psb_d_mat_dist_impl.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/util/psb_d_mat_dist_mod.f90 b/util/psb_d_mat_dist_mod.f90 index af3f58bb..6632600c 100644 --- a/util/psb_d_mat_dist_mod.f90 +++ b/util/psb_d_mat_dist_mod.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/util/psb_d_mmio_impl.f90 b/util/psb_d_mmio_impl.f90 index 4e3429f8..7026f68d 100644 --- a/util/psb_d_mmio_impl.f90 +++ b/util/psb_d_mmio_impl.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/util/psb_d_renum_impl.F90 b/util/psb_d_renum_impl.F90 index 56ef2bf9..ad73527a 100644 --- a/util/psb_d_renum_impl.F90 +++ b/util/psb_d_renum_impl.F90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/util/psb_gps_mod.f90 b/util/psb_gps_mod.f90 index 5ca94246..fc701ffc 100644 --- a/util/psb_gps_mod.f90 +++ b/util/psb_gps_mod.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/util/psb_hbio_mod.f90 b/util/psb_hbio_mod.f90 index 45d7ec09..834ada0b 100644 --- a/util/psb_hbio_mod.f90 +++ b/util/psb_hbio_mod.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/util/psb_i_mmio_impl.f90 b/util/psb_i_mmio_impl.f90 index 49bf2e4e..04eead3f 100644 --- a/util/psb_i_mmio_impl.f90 +++ b/util/psb_i_mmio_impl.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.1 ! (C) Copyright 2006, 2007, 2008, 2009, 2010, 2012, 2013 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/util/psb_mat_dist_mod.f90 b/util/psb_mat_dist_mod.f90 index ad983bda..e1532a2f 100644 --- a/util/psb_mat_dist_mod.f90 +++ b/util/psb_mat_dist_mod.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/util/psb_metispart_mod.F90 b/util/psb_metispart_mod.F90 index 2bfe791e..4b1aaa18 100644 --- a/util/psb_metispart_mod.F90 +++ b/util/psb_metispart_mod.F90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/util/psb_mmio_mod.F90 b/util/psb_mmio_mod.F90 index b6458339..fe7f0f9e 100644 --- a/util/psb_mmio_mod.F90 +++ b/util/psb_mmio_mod.F90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/util/psb_renum_mod.f90 b/util/psb_renum_mod.f90 index 657ebc08..82d51712 100644 --- a/util/psb_renum_mod.f90 +++ b/util/psb_renum_mod.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/util/psb_s_hbio_impl.f90 b/util/psb_s_hbio_impl.f90 index ceae92af..b9fcb8ee 100644 --- a/util/psb_s_hbio_impl.f90 +++ b/util/psb_s_hbio_impl.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/util/psb_s_mat_dist_impl.f90 b/util/psb_s_mat_dist_impl.f90 index 30578736..51cb057d 100644 --- a/util/psb_s_mat_dist_impl.f90 +++ b/util/psb_s_mat_dist_impl.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/util/psb_s_mat_dist_mod.f90 b/util/psb_s_mat_dist_mod.f90 index bd77bd60..e1f0675b 100644 --- a/util/psb_s_mat_dist_mod.f90 +++ b/util/psb_s_mat_dist_mod.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/util/psb_s_mmio_impl.f90 b/util/psb_s_mmio_impl.f90 index 958db85a..7f049530 100644 --- a/util/psb_s_mmio_impl.f90 +++ b/util/psb_s_mmio_impl.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/util/psb_s_renum_impl.F90 b/util/psb_s_renum_impl.F90 index cb3c2dd3..60d3ec9c 100644 --- a/util/psb_s_renum_impl.F90 +++ b/util/psb_s_renum_impl.F90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/util/psb_util_mod.f90 b/util/psb_util_mod.f90 index afd14779..42f536ee 100644 --- a/util/psb_util_mod.f90 +++ b/util/psb_util_mod.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/util/psb_z_hbio_impl.f90 b/util/psb_z_hbio_impl.f90 index 2fb5d689..15dedda5 100644 --- a/util/psb_z_hbio_impl.f90 +++ b/util/psb_z_hbio_impl.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/util/psb_z_mat_dist_impl.f90 b/util/psb_z_mat_dist_impl.f90 index 05e33f23..e096c414 100644 --- a/util/psb_z_mat_dist_impl.f90 +++ b/util/psb_z_mat_dist_impl.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/util/psb_z_mat_dist_mod.f90 b/util/psb_z_mat_dist_mod.f90 index 36eedf19..978e22b2 100644 --- a/util/psb_z_mat_dist_mod.f90 +++ b/util/psb_z_mat_dist_mod.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/util/psb_z_mmio_impl.f90 b/util/psb_z_mmio_impl.f90 index cde9f691..8475d284 100644 --- a/util/psb_z_mmio_impl.f90 +++ b/util/psb_z_mmio_impl.f90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions diff --git a/util/psb_z_renum_impl.F90 b/util/psb_z_renum_impl.F90 index a2904de2..7b212aca 100644 --- a/util/psb_z_renum_impl.F90 +++ b/util/psb_z_renum_impl.F90 @@ -1,8 +1,8 @@ ! ! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006, 2010, 2015, 2017 -! Salvatore Filippone Cranfield University -! Alfredo Buttari CNRS-IRIT, Toulouse +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions From 7c786c4bf1a7871bb001c8ba7695ff3f950777a1 Mon Sep 17 00:00:00 2001 From: Salvatore Filippone Date: Sun, 28 Jan 2018 09:32:02 +0000 Subject: [PATCH 07/35] Updated copyright statement. --- base/modules/aux/psi_c_serial_mod.f90 | 31 +++++++++++++++++++++++++++ base/modules/aux/psi_d_serial_mod.f90 | 31 +++++++++++++++++++++++++++ base/modules/aux/psi_i_serial_mod.f90 | 31 +++++++++++++++++++++++++++ base/modules/aux/psi_s_serial_mod.f90 | 31 +++++++++++++++++++++++++++ base/modules/aux/psi_z_serial_mod.f90 | 31 +++++++++++++++++++++++++++ 5 files changed, 155 insertions(+) diff --git a/base/modules/aux/psi_c_serial_mod.f90 b/base/modules/aux/psi_c_serial_mod.f90 index f932bb09..894d9cc1 100644 --- a/base/modules/aux/psi_c_serial_mod.f90 +++ b/base/modules/aux/psi_c_serial_mod.f90 @@ -1,3 +1,34 @@ +! +! Parallel Sparse BLAS version 3.5 +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari +! +! Redistribution and use in source and binary forms, with or without +! modification, are permitted provided that the following conditions +! are met: +! 1. Redistributions of source code must retain the above copyright +! notice, this list of conditions and the following disclaimer. +! 2. Redistributions in binary form must reproduce the above copyright +! notice, this list of conditions, and the following disclaimer in the +! documentation and/or other materials provided with the distribution. +! 3. The name of the PSBLAS group or the names of its contributors may +! not be used to endorse or promote products derived from this +! software without specific written permission. +! +! THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +! ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED +! TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +! PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE PSBLAS GROUP OR ITS CONTRIBUTORS +! BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +! CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +! SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +! INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +! CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +! ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +! POSSIBILITY OF SUCH DAMAGE. +! +! module psi_c_serial_mod use psb_const_mod, only : psb_ipk_, psb_spk_ diff --git a/base/modules/aux/psi_d_serial_mod.f90 b/base/modules/aux/psi_d_serial_mod.f90 index 19dedf53..d2cba11b 100644 --- a/base/modules/aux/psi_d_serial_mod.f90 +++ b/base/modules/aux/psi_d_serial_mod.f90 @@ -1,3 +1,34 @@ +! +! Parallel Sparse BLAS version 3.5 +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari +! +! Redistribution and use in source and binary forms, with or without +! modification, are permitted provided that the following conditions +! are met: +! 1. Redistributions of source code must retain the above copyright +! notice, this list of conditions and the following disclaimer. +! 2. Redistributions in binary form must reproduce the above copyright +! notice, this list of conditions, and the following disclaimer in the +! documentation and/or other materials provided with the distribution. +! 3. The name of the PSBLAS group or the names of its contributors may +! not be used to endorse or promote products derived from this +! software without specific written permission. +! +! THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +! ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED +! TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +! PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE PSBLAS GROUP OR ITS CONTRIBUTORS +! BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +! CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +! SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +! INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +! CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +! ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +! POSSIBILITY OF SUCH DAMAGE. +! +! module psi_d_serial_mod use psb_const_mod, only : psb_ipk_, psb_dpk_ diff --git a/base/modules/aux/psi_i_serial_mod.f90 b/base/modules/aux/psi_i_serial_mod.f90 index 503e47b2..894dcba9 100644 --- a/base/modules/aux/psi_i_serial_mod.f90 +++ b/base/modules/aux/psi_i_serial_mod.f90 @@ -1,3 +1,34 @@ +! +! Parallel Sparse BLAS version 3.5 +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari +! +! Redistribution and use in source and binary forms, with or without +! modification, are permitted provided that the following conditions +! are met: +! 1. Redistributions of source code must retain the above copyright +! notice, this list of conditions and the following disclaimer. +! 2. Redistributions in binary form must reproduce the above copyright +! notice, this list of conditions, and the following disclaimer in the +! documentation and/or other materials provided with the distribution. +! 3. The name of the PSBLAS group or the names of its contributors may +! not be used to endorse or promote products derived from this +! software without specific written permission. +! +! THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +! ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED +! TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +! PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE PSBLAS GROUP OR ITS CONTRIBUTORS +! BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +! CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +! SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +! INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +! CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +! ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +! POSSIBILITY OF SUCH DAMAGE. +! +! module psi_i_serial_mod use psb_const_mod, only : psb_ipk_ diff --git a/base/modules/aux/psi_s_serial_mod.f90 b/base/modules/aux/psi_s_serial_mod.f90 index 072538db..a547dc0c 100644 --- a/base/modules/aux/psi_s_serial_mod.f90 +++ b/base/modules/aux/psi_s_serial_mod.f90 @@ -1,3 +1,34 @@ +! +! Parallel Sparse BLAS version 3.5 +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari +! +! Redistribution and use in source and binary forms, with or without +! modification, are permitted provided that the following conditions +! are met: +! 1. Redistributions of source code must retain the above copyright +! notice, this list of conditions and the following disclaimer. +! 2. Redistributions in binary form must reproduce the above copyright +! notice, this list of conditions, and the following disclaimer in the +! documentation and/or other materials provided with the distribution. +! 3. The name of the PSBLAS group or the names of its contributors may +! not be used to endorse or promote products derived from this +! software without specific written permission. +! +! THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +! ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED +! TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +! PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE PSBLAS GROUP OR ITS CONTRIBUTORS +! BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +! CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +! SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +! INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +! CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +! ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +! POSSIBILITY OF SUCH DAMAGE. +! +! module psi_s_serial_mod use psb_const_mod, only : psb_ipk_, psb_spk_ diff --git a/base/modules/aux/psi_z_serial_mod.f90 b/base/modules/aux/psi_z_serial_mod.f90 index 3de3314d..309b09ef 100644 --- a/base/modules/aux/psi_z_serial_mod.f90 +++ b/base/modules/aux/psi_z_serial_mod.f90 @@ -1,3 +1,34 @@ +! +! Parallel Sparse BLAS version 3.5 +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari +! +! Redistribution and use in source and binary forms, with or without +! modification, are permitted provided that the following conditions +! are met: +! 1. Redistributions of source code must retain the above copyright +! notice, this list of conditions and the following disclaimer. +! 2. Redistributions in binary form must reproduce the above copyright +! notice, this list of conditions, and the following disclaimer in the +! documentation and/or other materials provided with the distribution. +! 3. The name of the PSBLAS group or the names of its contributors may +! not be used to endorse or promote products derived from this +! software without specific written permission. +! +! THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +! ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED +! TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +! PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE PSBLAS GROUP OR ITS CONTRIBUTORS +! BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +! CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +! SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +! INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +! CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +! ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +! POSSIBILITY OF SUCH DAMAGE. +! +! module psi_z_serial_mod use psb_const_mod, only : psb_ipk_, psb_dpk_ From e451af9621b0053dd217773f00cd5b2d19bbdce0 Mon Sep 17 00:00:00 2001 From: Salvatore Filippone Date: Sun, 28 Jan 2018 18:53:32 +0000 Subject: [PATCH 08/35] Test programs can take input file on command line. --- test/fileread/getp.f90 | 92 ++++++++++++++++++++++++++----------- test/pargen/psb_d_pde2d.f90 | 41 ++++++++++++----- test/pargen/psb_d_pde3d.f90 | 40 +++++++++++----- test/pargen/psb_s_pde2d.f90 | 40 +++++++++++----- test/pargen/psb_s_pde3d.f90 | 42 ++++++++++++----- 5 files changed, 182 insertions(+), 73 deletions(-) diff --git a/test/fileread/getp.f90 b/test/fileread/getp.f90 index 088b68fc..e9ddf7d2 100644 --- a/test/fileread/getp.f90 +++ b/test/fileread/getp.f90 @@ -50,20 +50,35 @@ contains real(psb_dpk_) :: eps character :: afmt*5 integer(psb_ipk_) :: np, iam - integer(psb_ipk_) :: inparms(40), ip + integer(psb_ipk_) :: inparms(40), ip, inp_unit + character(len=1024) :: filename call psb_info(ictxt,iam,np) if (iam == 0) then + if (command_argument_count()>0) then + call get_command_argument(1,filename) + inp_unit = 30 + open(inp_unit,file=filename,action='read',iostat=info) + if (info /= 0) then + write(psb_err_unit,*) 'Could not open file ',filename,' for input' + call psb_abort(ictxt) + stop + else + write(psb_err_unit,*) 'Opened file ',trim(filename),' for input' + end if + else + inp_unit=psb_inp_unit + end if ! Read Input Parameters - read(psb_inp_unit,*) ip + read(inp_unit,*) ip if (ip >= 5) then - read(psb_inp_unit,*) mtrx_file - read(psb_inp_unit,*) rhs_file - read(psb_inp_unit,*) filefmt - read(psb_inp_unit,*) kmethd - read(psb_inp_unit,*) ptype - read(psb_inp_unit,*) afmt - read(psb_inp_unit,*) part + read(inp_unit,*) mtrx_file + read(inp_unit,*) rhs_file + read(inp_unit,*) filefmt + read(inp_unit,*) kmethd + read(inp_unit,*) ptype + read(inp_unit,*) afmt + read(inp_unit,*) part call psb_bcast(ictxt,mtrx_file) @@ -75,27 +90,27 @@ contains call psb_bcast(ictxt,part) if (ip >= 7) then - read(psb_inp_unit,*) istopc + read(inp_unit,*) istopc else istopc=1 endif if (ip >= 8) then - read(psb_inp_unit,*) itmax + read(inp_unit,*) itmax else itmax=500 endif if (ip >= 9) then - read(psb_inp_unit,*) itrace + read(inp_unit,*) itrace else itrace=-1 endif if (ip >= 10) then - read(psb_inp_unit,*) irst + read(inp_unit,*) irst else irst = 1 endif if (ip >= 11) then - read(psb_inp_unit,*) eps + read(inp_unit,*) eps else eps=1.d-6 endif @@ -119,6 +134,9 @@ contains call psb_abort(ictxt) stop 1 end if + if (inp_unit /= psb_inp_unit) then + close(inp_unit) + end if else ! Receive Parameters call psb_bcast(ictxt,mtrx_file) @@ -152,20 +170,35 @@ contains real(psb_spk_) :: eps character :: afmt*5 integer(psb_ipk_) :: np, iam - integer(psb_ipk_) :: inparms(40), ip + integer(psb_ipk_) :: inparms(40), ip, inp_unit + character(len=1024) :: filename call psb_info(ictxt,iam,np) if (iam == 0) then + if (command_argument_count()>0) then + call get_command_argument(1,filename) + inp_unit = 30 + open(inp_unit,file=filename,action='read',iostat=info) + if (info /= 0) then + write(psb_err_unit,*) 'Could not open file ',filename,' for input' + call psb_abort(ictxt) + stop + else + write(psb_err_unit,*) 'Opened file ',trim(filename),' for input' + end if + else + inp_unit=inp_unit + end if ! Read Input Parameters - read(psb_inp_unit,*) ip + read(inp_unit,*) ip if (ip >= 5) then - read(psb_inp_unit,*) mtrx_file - read(psb_inp_unit,*) rhs_file - read(psb_inp_unit,*) filefmt - read(psb_inp_unit,*) kmethd - read(psb_inp_unit,*) ptype - read(psb_inp_unit,*) afmt - read(psb_inp_unit,*) ipart + read(inp_unit,*) mtrx_file + read(inp_unit,*) rhs_file + read(inp_unit,*) filefmt + read(inp_unit,*) kmethd + read(inp_unit,*) ptype + read(inp_unit,*) afmt + read(inp_unit,*) ipart call psb_bcast(ictxt,mtrx_file) @@ -177,27 +210,27 @@ contains call psb_bcast(ictxt,part) if (ip >= 7) then - read(psb_inp_unit,*) istopc + read(inp_unit,*) istopc else istopc=1 endif if (ip >= 8) then - read(psb_inp_unit,*) itmax + read(inp_unit,*) itmax else itmax=500 endif if (ip >= 9) then - read(psb_inp_unit,*) itrace + read(inp_unit,*) itrace else itrace=-1 endif if (ip >= 10) then - read(psb_inp_unit,*) irst + read(inp_unit,*) irst else irst = 1 endif if (ip >= 11) then - read(psb_inp_unit,*) eps + read(inp_unit,*) eps else eps=1.d-6 endif @@ -221,6 +254,9 @@ contains call psb_abort(ictxt) stop 1 end if + if (inp_unit /= psb_inp_unit) then + close(inp_unit) + end if else ! Receive Parameters call psb_bcast(ictxt,mtrx_file) diff --git a/test/pargen/psb_d_pde2d.f90 b/test/pargen/psb_d_pde2d.f90 index a7c6a09d..3921780e 100644 --- a/test/pargen/psb_d_pde2d.f90 +++ b/test/pargen/psb_d_pde2d.f90 @@ -558,35 +558,50 @@ contains character(len=*) :: kmethd, ptype, afmt integer(psb_ipk_) :: idim, istopc,itmax,itrace,irst integer(psb_ipk_) :: np, iam - integer(psb_ipk_) :: ip + integer(psb_ipk_) :: ip, inp_unit + character(len=1024) :: filename call psb_info(ictxt, iam, np) if (iam == 0) then - read(psb_inp_unit,*) ip + if (command_argument_count()>0) then + call get_command_argument(1,filename) + inp_unit = 30 + open(inp_unit,file=filename,action='read',iostat=info) + if (info /= 0) then + write(psb_err_unit,*) 'Could not open file ',filename,' for input' + call psb_abort(ictxt) + stop + else + write(psb_err_unit,*) 'Opened file ',trim(filename),' for input' + end if + else + inp_unit=psb_inp_unit + end if + read(inp_unit,*) ip if (ip >= 3) then - read(psb_inp_unit,*) kmethd - read(psb_inp_unit,*) ptype - read(psb_inp_unit,*) afmt + read(inp_unit,*) kmethd + read(inp_unit,*) ptype + read(inp_unit,*) afmt - read(psb_inp_unit,*) idim + read(inp_unit,*) idim if (ip >= 4) then - read(psb_inp_unit,*) istopc + read(inp_unit,*) istopc else istopc=1 endif if (ip >= 5) then - read(psb_inp_unit,*) itmax + read(inp_unit,*) itmax else itmax=500 endif if (ip >= 6) then - read(psb_inp_unit,*) itrace + read(inp_unit,*) itrace else itrace=-1 endif if (ip >= 7) then - read(psb_inp_unit,*) irst + read(inp_unit,*) irst else irst=1 endif @@ -604,8 +619,11 @@ contains call psb_abort(ictxt) stop 1 endif - end if + if (inp_unit /= psb_inp_unit) then + close(inp_unit) + end if + end if ! broadcast parameters to all processors call psb_bcast(ictxt,kmethd) call psb_bcast(ictxt,afmt) @@ -616,7 +634,6 @@ contains call psb_bcast(ictxt,itrace) call psb_bcast(ictxt,irst) - return end subroutine get_parms diff --git a/test/pargen/psb_d_pde3d.f90 b/test/pargen/psb_d_pde3d.f90 index 2a541223..ebde0628 100644 --- a/test/pargen/psb_d_pde3d.f90 +++ b/test/pargen/psb_d_pde3d.f90 @@ -586,36 +586,50 @@ contains character(len=*) :: kmethd, ptype, afmt integer(psb_ipk_) :: idim, istopc,itmax,itrace,irst integer(psb_ipk_) :: np, iam - integer(psb_ipk_) :: ip + integer(psb_ipk_) :: ip, inp_unit + character(len=1024) :: filename call psb_info(ictxt, iam, np) if (iam == 0) then - read(psb_inp_unit,*) ip + if (command_argument_count()>0) then + call get_command_argument(1,filename) + inp_unit = 30 + open(inp_unit,file=filename,action='read',iostat=info) + if (info /= 0) then + write(psb_err_unit,*) 'Could not open file ',filename,' for input' + call psb_abort(ictxt) + stop + else + write(psb_err_unit,*) 'Opened file ',trim(filename),' for input' + end if + else + inp_unit=psb_inp_unit + end if + read(inp_unit,*) ip if (ip >= 3) then - read(psb_inp_unit,*) kmethd - read(psb_inp_unit,*) ptype - read(psb_inp_unit,*) afmt + read(inp_unit,*) kmethd + read(inp_unit,*) ptype + read(inp_unit,*) afmt - - read(psb_inp_unit,*) idim + read(inp_unit,*) idim if (ip >= 4) then - read(psb_inp_unit,*) istopc + read(inp_unit,*) istopc else istopc=1 endif if (ip >= 5) then - read(psb_inp_unit,*) itmax + read(inp_unit,*) itmax else itmax=500 endif if (ip >= 6) then - read(psb_inp_unit,*) itrace + read(inp_unit,*) itrace else itrace=-1 endif if (ip >= 7) then - read(psb_inp_unit,*) irst + read(inp_unit,*) irst else irst=1 endif @@ -637,6 +651,10 @@ contains call psb_abort(ictxt) stop 1 endif + if (inp_unit /= psb_inp_unit) then + close(inp_unit) + end if + end if ! broadcast parameters to all processors call psb_bcast(ictxt,kmethd) diff --git a/test/pargen/psb_s_pde2d.f90 b/test/pargen/psb_s_pde2d.f90 index fd22479c..ae670c51 100644 --- a/test/pargen/psb_s_pde2d.f90 +++ b/test/pargen/psb_s_pde2d.f90 @@ -543,35 +543,50 @@ contains character(len=*) :: kmethd, ptype, afmt integer(psb_ipk_) :: idim, istopc,itmax,itrace,irst integer(psb_ipk_) :: np, iam - integer(psb_ipk_) :: ip + integer(psb_ipk_) :: ip, inp_unit + character(len=1024) :: filename call psb_info(ictxt, iam, np) if (iam == 0) then - read(psb_inp_unit,*) ip + if (command_argument_count()>0) then + call get_command_argument(1,filename) + inp_unit = 30 + open(inp_unit,file=filename,action='read',iostat=info) + if (info /= 0) then + write(psb_err_unit,*) 'Could not open file ',filename,' for input' + call psb_abort(ictxt) + stop + else + write(psb_err_unit,*) 'Opened file ',trim(filename),' for input' + end if + else + inp_unit=psb_inp_unit + end if + read(inp_unit,*) ip if (ip >= 3) then - read(psb_inp_unit,*) kmethd - read(psb_inp_unit,*) ptype - read(psb_inp_unit,*) afmt + read(inp_unit,*) kmethd + read(inp_unit,*) ptype + read(inp_unit,*) afmt - read(psb_inp_unit,*) idim + read(inp_unit,*) idim if (ip >= 4) then - read(psb_inp_unit,*) istopc + read(inp_unit,*) istopc else istopc=1 endif if (ip >= 5) then - read(psb_inp_unit,*) itmax + read(inp_unit,*) itmax else itmax=500 endif if (ip >= 6) then - read(psb_inp_unit,*) itrace + read(inp_unit,*) itrace else itrace=-1 endif if (ip >= 7) then - read(psb_inp_unit,*) irst + read(inp_unit,*) irst else irst=1 endif @@ -589,6 +604,10 @@ contains call psb_abort(ictxt) stop 1 endif + if (inp_unit /= psb_inp_unit) then + close(inp_unit) + end if + end if ! broadcast parameters to all processors call psb_bcast(ictxt,kmethd) @@ -600,7 +619,6 @@ contains call psb_bcast(ictxt,itrace) call psb_bcast(ictxt,irst) - return end subroutine get_parms diff --git a/test/pargen/psb_s_pde3d.f90 b/test/pargen/psb_s_pde3d.f90 index ef350faf..e8055d7c 100644 --- a/test/pargen/psb_s_pde3d.f90 +++ b/test/pargen/psb_s_pde3d.f90 @@ -570,38 +570,55 @@ contains character(len=*) :: kmethd, ptype, afmt integer(psb_ipk_) :: idim, istopc,itmax,itrace,irst integer(psb_ipk_) :: np, iam - integer(psb_ipk_) :: ip + integer(psb_ipk_) :: ip, inp_unit + character(len=1024) :: filename call psb_info(ictxt, iam, np) if (iam == 0) then - read(psb_inp_unit,*) ip + if (command_argument_count()>0) then + call get_command_argument(1,filename) + inp_unit = 30 + open(inp_unit,file=filename,action='read',iostat=info) + if (info /= 0) then + write(psb_err_unit,*) 'Could not open file ',filename,' for input' + call psb_abort(ictxt) + stop + else + write(psb_err_unit,*) 'Opened file ',trim(filename),' for input' + end if + else + inp_unit=psb_inp_unit + end if + read(inp_unit,*) ip if (ip >= 3) then - read(psb_inp_unit,*) kmethd - read(psb_inp_unit,*) ptype - read(psb_inp_unit,*) afmt + read(inp_unit,*) kmethd + read(inp_unit,*) ptype + read(inp_unit,*) afmt - read(psb_inp_unit,*) idim + read(inp_unit,*) idim if (ip >= 4) then - read(psb_inp_unit,*) istopc + read(inp_unit,*) istopc else istopc=1 endif if (ip >= 5) then - read(psb_inp_unit,*) itmax + read(inp_unit,*) itmax else itmax=500 endif if (ip >= 6) then - read(psb_inp_unit,*) itrace + read(inp_unit,*) itrace else itrace=-1 endif if (ip >= 7) then - read(psb_inp_unit,*) irst + read(inp_unit,*) irst else irst=1 endif + ! broadcast parameters to all processors + write(psb_out_unit,'("Solving matrix : ell1")') write(psb_out_unit,& @@ -618,6 +635,10 @@ contains call psb_abort(ictxt) stop 1 endif + if (inp_unit /= psb_inp_unit) then + close(inp_unit) + end if + end if ! broadcast parameters to all processors call psb_bcast(ictxt,kmethd) @@ -652,7 +673,6 @@ contains write(iout,*)' >= 1 do tracing every itrace' write(iout,*)' iterations ' end subroutine pr_usage - ! ! functions parametrizing the differential equation ! From 35da66299a2cc00de48055a03080b0cf97fbcb2d Mon Sep 17 00:00:00 2001 From: Salvatore Filippone Date: Mon, 5 Feb 2018 11:52:21 +0000 Subject: [PATCH 09/35] New version of PSB_CDPRT. Must be called by all processes. --- base/modules/tools/psb_cd_tools_mod.f90 | 3 +- base/tools/psb_cdprt.f90 | 319 ++++++++++-------------- 2 files changed, 127 insertions(+), 195 deletions(-) diff --git a/base/modules/tools/psb_cd_tools_mod.f90 b/base/modules/tools/psb_cd_tools_mod.f90 index 1a689ac8..5db8ac06 100644 --- a/base/modules/tools/psb_cd_tools_mod.f90 +++ b/base/modules/tools/psb_cd_tools_mod.f90 @@ -81,12 +81,13 @@ module psb_cd_tools_mod interface psb_cdprt - subroutine psb_cdprt(iout,desc_p,glob,short) + subroutine psb_cdprt(iout,desc_p,glob,short,verbosity) import :: psb_ipk_, psb_desc_type implicit none type(psb_desc_type), intent(in) :: desc_p integer(psb_ipk_), intent(in) :: iout logical, intent(in), optional :: glob,short + integer(psb_ipk_), intent(in), optional :: verbosity end subroutine psb_cdprt end interface diff --git a/base/tools/psb_cdprt.f90 b/base/tools/psb_cdprt.f90 index d77ad7ff..05f88050 100644 --- a/base/tools/psb_cdprt.f90 +++ b/base/tools/psb_cdprt.f90 @@ -40,211 +40,142 @@ ! glob - logical(otpional). Wheter to print out global or local data. ! short - logical(optional). Used to choose a verbose output. ! -subroutine psb_cdprt(iout,desc_p,glob,short) +subroutine psb_cdprt(iout,desc_p,glob,short, verbosity) use psb_base_mod, psb_protect_name => psb_cdprt implicit none - type(psb_desc_type), intent(in) :: desc_p + type(psb_desc_type), intent(in) :: desc_p integer(psb_ipk_), intent(in) :: iout + integer(psb_ipk_), intent(in), optional :: verbosity logical, intent(in), optional :: glob,short - logical :: lshort, lglob - - integer(psb_ipk_) :: m, n_row, n_col,counter,idx,n_elem_recv,n_elem_send,& - & proc,i - + logical :: short_, glob_ + + integer(psb_ipk_) :: m, n_row, n_col,counter,idx,& + & n_elem_recv,n_elem_send,proc,i, verb_ + integer(psb_ipk_) :: ictxt, me, np + integer(psb_ipk_) :: total_snd, total_rcv, total_xhcg, global_halo, global_points + integer(psb_ipk_) :: local_snd, local_rcv, local_xhcg, local_halo, local_points + if (present(glob)) then - lglob = glob + glob_ = glob else - lglob = .false. + glob_ = .false. endif if (present(short)) then - lshort = short + short_ = short else - lshort = .true. + short_ = .true. + endif + if (present(verbosity)) then + verb_ = verbosity + else + verb_ = 1 endif - write(0,*) 'To be reimplemented ye' - return - - if (.not.lglob) then -!!$ write(iout,*) 'Communication descriptor:',desc_p%matrix_data(1:10) -!!$ m=desc_p%matrix_data(psb_m_) -!!$ n_row=desc_p%matrix_data(psb_n_row_) -!!$ n_col=desc_p%matrix_data(psb_n_col_) - -!!$ if (.not.lshort) & -!!$ & write(iout,*) 'Loc_to_glob ',desc_p%idxmap%loc_to_glob(1:n_row), ': ',& -!!$ & desc_p%idxmap%loc_to_glob(n_row+1:n_col) - -!!$ if (.not.lshort) write(iout,*) 'glob_to_loc ',desc_p%idxmap%glob_to_loc(1:m) - write(iout,*) 'Halo_index' - counter = 1 - Do - proc=desc_p%halo_index(counter+psb_proc_id_) - if (proc == -1) exit - n_elem_recv=desc_p%halo_index(counter+psb_n_elem_recv_) - n_elem_send=desc_p%halo_index(counter+n_elem_recv+psb_n_elem_send_) - write(iout,*) 'Halo_index Receive',proc,n_elem_recv - if (.not.lshort) write(iout,*) & - & desc_p%halo_index(counter+psb_n_elem_recv_+1:counter+psb_n_elem_recv_+n_elem_recv) - write(iout,*) 'Halo_index Send',proc,n_elem_send - if (.not.lshort) write(iout,*) & - & desc_p%halo_index(counter+n_elem_recv+psb_n_elem_send_+1: & - & counter+n_elem_recv+psb_n_elem_send_+n_elem_send) - - counter = counter+n_elem_recv+n_elem_send+3 - enddo - - write(iout,*) 'Ext_index' - counter = 1 - Do - proc=desc_p%ext_index(counter+psb_proc_id_) - if (proc == -1) exit - n_elem_recv=desc_p%ext_index(counter+psb_n_elem_recv_) - n_elem_send=desc_p%ext_index(counter+n_elem_recv+psb_n_elem_send_) - write(iout,*) 'Ext_index Receive',proc,n_elem_recv - if (.not.lshort) write(iout,*) & - & desc_p%ext_index(counter+psb_n_elem_recv_+1:counter+psb_n_elem_recv_+n_elem_recv) - write(iout,*) 'Ext_index Send',proc,n_elem_send - if (.not.lshort) write(iout,*) & - & desc_p%ext_index(counter+n_elem_recv+psb_n_elem_send_+1: & - & counter+n_elem_recv+psb_n_elem_send_+n_elem_send) - - counter = counter+n_elem_recv+n_elem_send+3 - enddo - - - write(iout,*) 'Ovrlap_index' - counter = 1 - Do - proc=desc_p%ovrlap_index(counter+psb_proc_id_) - if (proc == -1) exit - n_elem_recv=desc_p%ovrlap_index(counter+psb_n_elem_recv_) - n_elem_send=desc_p%ovrlap_index(counter+n_elem_recv+psb_n_elem_send_) - write(iout,*) 'Ovrlap_index Receive',proc,n_elem_recv - if (.not.lshort) write(iout,*) & - & desc_p%ovrlap_index(counter+psb_n_elem_recv_+1:& - & counter+psb_n_elem_recv_+n_elem_recv) - write(iout,*) 'Ovrlap_index Send',proc,n_elem_send - if (.not.lshort) write(iout,*) & - & desc_p%ovrlap_index(counter+n_elem_recv+psb_n_elem_send_+1: & - & counter+n_elem_recv+psb_n_elem_send_+n_elem_send) - - counter = counter+n_elem_recv+n_elem_send+3 - enddo - - write(iout,*) 'Ovrlap_elem' - - Do counter = 1,size(desc_p%ovrlap_elem,1) - idx = desc_p%ovrlap_elem(counter,1) - n_elem_recv = desc_p%ovrlap_elem(counter,2) - proc = desc_p%ovrlap_elem(counter,3) - if (.not.lshort) write(iout,*) idx,n_elem_Recv,proc - enddo - - else if (lglob) then - -!!$ write(iout,*) 'Communication descriptor:',desc_p%matrix_data(1:10) -!!$ m=desc_p%matrix_data(psb_m_) -!!$ n_row=desc_p%matrix_data(psb_n_row_) -!!$ n_col=desc_p%matrix_data(psb_n_col_) - if (.not.lshort) then -!!$ write(iout,*) 'Loc_to_glob ' -!!$ do i=1, n_row -!!$ write(iout,*) i, desc_p%idxmap%loc_to_glob(i) -!!$ enddo -!!$ write(iout,*) '........' -!!$ do i=n_row+1,n_col -!!$ write(iout,*) i, desc_p%idxmap%loc_to_glob(i) -!!$ enddo -!!$ -!!$ write(iout,*) 'glob_to_loc ' -!!$ do i=1,m -!!$ write(iout,*) i,desc_p%idxmap%glob_to_loc(i) -!!$ enddo - endif - write(iout,*) 'Halo_index' - counter = 1 - Do - proc=desc_p%halo_index(counter+psb_proc_id_) - if (proc == -1) exit - n_elem_recv=desc_p%halo_index(counter+psb_n_elem_recv_) - n_elem_send=desc_p%halo_index(counter+n_elem_recv+psb_n_elem_send_) - write(iout,*) 'Halo_index Receive',proc,n_elem_recv - if (.not.lshort) then - do i=counter+psb_n_elem_recv_+1,counter+psb_n_elem_recv_+n_elem_recv -!!$ write(iout,*) & -!!$ & desc_p%idxmap%loc_to_glob(desc_p%halo_index(i)),desc_p%halo_index(i) - enddo - endif - write(iout,*) 'Halo_index Send',proc,n_elem_send - if (.not.lshort) then - do i=counter+n_elem_recv+psb_n_elem_send_+1, & - & counter+n_elem_recv+psb_n_elem_send_+n_elem_send -!!$ write(iout,*) & -!!$ & desc_p%idxmap%loc_to_glob(desc_p%halo_index(i)), desc_p%halo_index(i) - enddo - endif - counter = counter+n_elem_recv+n_elem_send+3 - enddo - - write(iout,*) 'Ext_index' - counter = 1 - Do - proc=desc_p%ext_index(counter+psb_proc_id_) - if (proc == -1) exit - n_elem_recv=desc_p%ext_index(counter+psb_n_elem_recv_) - n_elem_send=desc_p%ext_index(counter+n_elem_recv+psb_n_elem_send_) - write(iout,*) 'Ext_index Receive',proc,n_elem_recv - if (.not.lshort) then - do i=counter+psb_n_elem_recv_+1,counter+psb_n_elem_recv_+n_elem_recv -!!$ write(iout,*) & -!!$ & desc_p%idxmap%loc_to_glob(desc_p%ext_index(i)),desc_p%ext_index(i) - enddo - endif - write(iout,*) 'Ext_index Send',proc,n_elem_send - if (.not.lshort) then - do i=counter+n_elem_recv+psb_n_elem_send_+1, & - & counter+n_elem_recv+psb_n_elem_send_+n_elem_send -!!$ write(iout,*) & -!!$ & desc_p%idxmap%loc_to_glob(desc_p%ext_index(i)), desc_p%ext_index(i) - enddo - endif - counter = counter+n_elem_recv+n_elem_send+3 - enddo - - - write(iout,*) 'Ovrlap_index' - counter = 1 - Do - proc=desc_p%ovrlap_index(counter+psb_proc_id_) - if (proc == -1) exit - n_elem_recv=desc_p%ovrlap_index(counter+psb_n_elem_recv_) - n_elem_send=desc_p%ovrlap_index(counter+n_elem_recv+psb_n_elem_send_) - write(iout,*) 'Ovrlap_index Receive',proc,n_elem_recv - if (.not.lshort) then - do i=counter+psb_n_elem_recv_+1,counter+psb_n_elem_recv_+n_elem_recv -!!$ write(iout,*) desc_p%idxmap%loc_to_glob(desc_p%ovrlap_index(i)),& -!!$ & desc_p%ovrlap_index(i) - enddo - endif - write(iout,*) 'Ovrlap_index Send',proc,n_elem_send - if (.not.lshort) then - do i=counter+n_elem_recv+psb_n_elem_send_+1, & - & counter+n_elem_recv+psb_n_elem_send_+n_elem_send -!!$ write(iout,*) desc_p%idxmap%loc_to_glob(desc_p%ovrlap_index(i)),& -!!$ & desc_p%ovrlap_index(i) - enddo - endif - counter = counter+n_elem_recv+n_elem_send+3 - enddo - write(iout,*) 'Ovrlap_elem' + ictxt = desc_p%get_ctxt() + call psb_info(ictxt, me,np) + + ! + ! Level 1: Print global info + ! + global_points = desc_p%get_global_rows() + local_points = desc_p%get_local_rows() + local_halo = desc_p%get_local_cols() - desc_p%get_local_rows() + global_halo = local_halo + call psb_sum(ictxt, global_halo) + if (me == psb_root_) then + write(iout,*) ' Communication descriptor detailed info.' + write(iout,*) ' Descriptor format: ',desc_p%get_fmt() + write(iout,*) ' Global descriptor data: points:',global_points,' halo:',global_halo + write(iout,*) + end if + call psb_barrier(ictxt) + do i=0, np-1 + if (me == i) & + & write(iout,*) me,': Local descriptor data: points:',local_points,' halo:',local_halo + + end do + + + ! + ! Level 2: Statistics at process level + ! + if (me==psb_root_) write(iout,*) 'Communication data for : comm_halo' + do i=0, np-1 + if (me == i) & + & call print_my_xchg(iout,desc_p,verbosity=verb_,data=psb_comm_halo_) + call psb_barrier(ictxt) + end do + + if (me==psb_root_) write(iout,*) 'Communication data for : comm_ext' + do i=0, np-1 + if (me == i) & + & call print_my_xchg(iout,desc_p,verbosity=verb_,data=psb_comm_ext_) + call psb_barrier(ictxt) + end do + + + + + + + return - Do counter = 1,size(desc_p%ovrlap_elem,1) - idx = desc_p%ovrlap_elem(counter,1) - n_elem_recv = desc_p%ovrlap_elem(counter,2) - proc = desc_p%ovrlap_elem(counter,3) -!!$ if (.not.lshort) write(iout,*) idx,desc_p%idxmap%loc_to_glob(idx),n_elem_Recv,proc - enddo +contains + subroutine print_my_xchg(iout,desc_p,data,glob,short, verbosity) + implicit none + type(psb_desc_type), intent(in), target :: desc_p + integer(psb_ipk_), intent(in) :: iout + integer(psb_ipk_), intent(in), optional :: verbosity, data + logical, intent(in), optional :: glob,short + logical :: short_, glob_ + + integer(psb_ipk_) :: ip, nerv, nesd, totxch,idxr,idxs + integer(psb_ipk_) :: ictxt, me, np, data_, info, verb_ + class(psb_i_base_vect_type), pointer :: vpnt + + ictxt = desc_p%get_ctxt() + call psb_info(ictxt, me,np) + if (present(data)) then + data_ = data + else + data_ = psb_comm_halo_ + end if + if (present(verbosity)) then + verb_ = verbosity + else + verb_ = 1 + end if + + call psb_cd_v_get_list(data_,desc_p,vpnt,totxch,idxr,idxs,info) + select case(verb_) + case (1) + write(iout,*) me,' Total exchanges ',totxch,' Total sends:',idxs,' Total receives:', idxr + case (2) + write(iout,*) me,' Total exchanges ',totxch,' Total sends:',idxs,' Total receives:', idxr + if (totxch == 0) return + if (.not.associated(vpnt)) return + if (.not.allocated(vpnt%v)) return + associate(idx => vpnt%v) + ip = 1 + do + if (ip > size(idx)) then + write(psb_err_unit,*) ': Warning: out of size of input vector ' + exit + end if + if (idx(ip) == -1) exit + totxch = totxch+1 + nerv = idx(ip+psb_n_elem_recv_) + nesd = idx(ip+nerv+psb_n_elem_send_) + write(iout,*) ' ',me,' Exchanging with:',idx(ip),' Sends:',nesd,' Receives:', nerv + idxs = idxs + nesd + idxr = idxr + nerv + ip = ip+nerv+nesd+3 + end do + end associate + case default + ! Do nothing + end select + + end subroutine print_my_xchg - end if end subroutine psb_cdprt From f0d82cd88bc776a34a304cf97788c2d28979dde6 Mon Sep 17 00:00:00 2001 From: Salvatore Filippone Date: Mon, 5 Feb 2018 14:30:10 +0000 Subject: [PATCH 10/35] Add flush statements. --- base/tools/psb_cdprt.f90 | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/base/tools/psb_cdprt.f90 b/base/tools/psb_cdprt.f90 index 05f88050..ccbfb573 100644 --- a/base/tools/psb_cdprt.f90 +++ b/base/tools/psb_cdprt.f90 @@ -90,9 +90,11 @@ subroutine psb_cdprt(iout,desc_p,glob,short, verbosity) end if call psb_barrier(ictxt) do i=0, np-1 - if (me == i) & - & write(iout,*) me,': Local descriptor data: points:',local_points,' halo:',local_halo - + if (me == i) then + write(iout,*) me,': Local descriptor data: points:',local_points,' halo:',local_halo + flush(iout) + end if + call psb_barrier(ictxt) end do @@ -175,7 +177,7 @@ contains case default ! Do nothing end select - + flush(iout) end subroutine print_my_xchg end subroutine psb_cdprt From 2030ad13bfc2ee15cb4da53122e12d1921e76ed6 Mon Sep 17 00:00:00 2001 From: Salvatore Filippone Date: Tue, 6 Feb 2018 10:46:51 +0000 Subject: [PATCH 11/35] Modified descriptor info printout. --- base/tools/psb_cdprt.f90 | 26 ++++++++++++++------------ 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/base/tools/psb_cdprt.f90 b/base/tools/psb_cdprt.f90 index 05f88050..edd820dd 100644 --- a/base/tools/psb_cdprt.f90 +++ b/base/tools/psb_cdprt.f90 @@ -83,16 +83,19 @@ subroutine psb_cdprt(iout,desc_p,glob,short, verbosity) global_halo = local_halo call psb_sum(ictxt, global_halo) if (me == psb_root_) then - write(iout,*) ' Communication descriptor detailed info.' + write(iout,*) ' Communication descriptor details ' write(iout,*) ' Descriptor format: ',desc_p%get_fmt() write(iout,*) ' Global descriptor data: points:',global_points,' halo:',global_halo write(iout,*) end if call psb_barrier(ictxt) do i=0, np-1 - if (me == i) & - & write(iout,*) me,': Local descriptor data: points:',local_points,' halo:',local_halo - + if (me == i) then + write(iout,*) me,': Local descriptor data: points:',local_points,& + & ' halo:',local_halo + write(iout,*) me,': Volume to surface ratio:',real(local_points,psb_dpk_)/real(local_halo,psb_dpk_) + end if + call psb_barrier(ictxt) end do @@ -113,11 +116,6 @@ subroutine psb_cdprt(iout,desc_p,glob,short, verbosity) call psb_barrier(ictxt) end do - - - - - return contains @@ -149,9 +147,13 @@ contains call psb_cd_v_get_list(data_,desc_p,vpnt,totxch,idxr,idxs,info) select case(verb_) case (1) - write(iout,*) me,' Total exchanges ',totxch,' Total sends:',idxs,' Total receives:', idxr + write(iout,*) me,': Total exchanges :',totxch + write(iout,*) me,': Total sends :',idxs + write(iout,*) me,': Total receives :', idxr case (2) - write(iout,*) me,' Total exchanges ',totxch,' Total sends:',idxs,' Total receives:', idxr + write(iout,*) me,': Total exchanges :',totxch + write(iout,*) me,': Total sends :',idxs + write(iout,*) me,': Total receives :', idxr if (totxch == 0) return if (.not.associated(vpnt)) return if (.not.allocated(vpnt%v)) return @@ -166,7 +168,7 @@ contains totxch = totxch+1 nerv = idx(ip+psb_n_elem_recv_) nesd = idx(ip+nerv+psb_n_elem_send_) - write(iout,*) ' ',me,' Exchanging with:',idx(ip),' Sends:',nesd,' Receives:', nerv + write(iout,*) ' ',me,': Exchanging with:',idx(ip),' Sends:',nesd,' Receives:', nerv idxs = idxs + nesd idxr = idxr + nerv ip = ip+nerv+nesd+3 From 4930923b17236626863692cc4a5aedcbfe850826 Mon Sep 17 00:00:00 2001 From: Salvatore Filippone Date: Wed, 7 Feb 2018 17:47:40 +0000 Subject: [PATCH 12/35] Introduced L2G and G2L method signatures for long integers. --- base/modules/desc/psb_indx_map_mod.f90 | 362 +++++++++++++++++++++++-- 1 file changed, 340 insertions(+), 22 deletions(-) diff --git a/base/modules/desc/psb_indx_map_mod.f90 b/base/modules/desc/psb_indx_map_mod.f90 index 2ac03d65..17d970e1 100644 --- a/base/modules/desc/psb_indx_map_mod.f90 +++ b/base/modules/desc/psb_indx_map_mod.f90 @@ -167,26 +167,38 @@ module psb_indx_map_mod procedure, pass(idxmap) :: clone => base_clone procedure, pass(idxmap) :: reinit => base_reinit - procedure, pass(idxmap) :: l2gs1 => base_l2gs1 - procedure, pass(idxmap) :: l2gs2 => base_l2gs2 - procedure, pass(idxmap) :: l2gv1 => base_l2gv1 - procedure, pass(idxmap) :: l2gv2 => base_l2gv2 - generic, public :: l2g => l2gs2, l2gv2 - generic, public :: l2gip => l2gs1, l2gv1 - - procedure, pass(idxmap) :: g2ls1 => base_g2ls1 - procedure, pass(idxmap) :: g2ls2 => base_g2ls2 - procedure, pass(idxmap) :: g2lv1 => base_g2lv1 - procedure, pass(idxmap) :: g2lv2 => base_g2lv2 - generic, public :: g2l => g2ls2, g2lv2 - generic, public :: g2lip => g2ls1, g2lv1 - - procedure, pass(idxmap) :: g2ls1_ins => base_g2ls1_ins - procedure, pass(idxmap) :: g2ls2_ins => base_g2ls2_ins - procedure, pass(idxmap) :: g2lv1_ins => base_g2lv1_ins - procedure, pass(idxmap) :: g2lv2_ins => base_g2lv2_ins - generic, public :: g2l_ins => g2ls2_ins, g2lv2_ins - generic, public :: g2lip_ins => g2ls1_ins, g2lv1_ins + procedure, pass(idxmap) :: l2gs1 => base_l2gs1 + procedure, pass(idxmap) :: l2gs2 => base_l2gs2 + procedure, pass(idxmap) :: l2gv1 => base_l2gv1 + procedure, pass(idxmap) :: l2gv2 => base_l2gv2 + procedure, pass(idxmap) :: ll2gs1 => base_ll2gs1 + procedure, pass(idxmap) :: ll2gs2 => base_ll2gs2 + procedure, pass(idxmap) :: ll2gv1 => base_ll2gv1 + procedure, pass(idxmap) :: ll2gv2 => base_ll2gv2 + generic, public :: l2g => l2gs2, l2gv2, ll2gs2, ll2gv2 + generic, public :: l2gip => l2gs1, l2gv1, ll2gs1, ll2gv1 + + procedure, pass(idxmap) :: g2ls1 => base_g2ls1 + procedure, pass(idxmap) :: g2ls2 => base_g2ls2 + procedure, pass(idxmap) :: g2lv1 => base_g2lv1 + procedure, pass(idxmap) :: g2lv2 => base_g2lv2 + procedure, pass(idxmap) :: lg2ls1 => base_lg2ls1 + procedure, pass(idxmap) :: lg2ls2 => base_lg2ls2 + procedure, pass(idxmap) :: lg2lv1 => base_lg2lv1 + procedure, pass(idxmap) :: lg2lv2 => base_lg2lv2 + generic, public :: g2l => g2ls2, g2lv2, lg2ls2, lg2lv2 + generic, public :: g2lip => g2ls1, g2lv1, lg2ls1, lg2lv1 + + procedure, pass(idxmap) :: g2ls1_ins => base_g2ls1_ins + procedure, pass(idxmap) :: g2ls2_ins => base_g2ls2_ins + procedure, pass(idxmap) :: g2lv1_ins => base_g2lv1_ins + procedure, pass(idxmap) :: g2lv2_ins => base_g2lv2_ins + procedure, pass(idxmap) :: lg2ls1_ins => base_lg2ls1_ins + procedure, pass(idxmap) :: lg2ls2_ins => base_lg2ls2_ins + procedure, pass(idxmap) :: lg2lv1_ins => base_lg2lv1_ins + procedure, pass(idxmap) :: lg2lv2_ins => base_lg2lv2_ins + generic, public :: g2l_ins => g2ls2_ins, g2lv2_ins, lg2ls2_ins, lg2lv2_ins + generic, public :: g2lip_ins => g2ls1_ins, g2lv1_ins, lg2ls1_ins, lg2lv1_ins procedure, pass(idxmap) :: fnd_owner => psb_indx_map_fnd_owner procedure, pass(idxmap) :: init_vl => base_init_vl @@ -203,8 +215,11 @@ module psb_indx_map_mod & base_set_mpic, base_get_fmt, base_asb, base_free,& & base_l2gs1, base_l2gs2, base_l2gv1, base_l2gv2,& & base_g2ls1, base_g2ls2, base_g2lv1, base_g2lv2,& - & base_g2ls1_ins, base_g2ls2_ins, base_g2lv1_ins,& - & base_g2lv2_ins, base_init_vl, base_is_null,& + & base_g2ls1_ins, base_g2ls2_ins, base_g2lv1_ins, base_g2lv2_ins, & + & base_ll2gs1, base_ll2gs2, base_ll2gv1, base_ll2gv2,& + & base_lg2ls1, base_lg2ls2, base_lg2lv1, base_lg2lv2,& + & base_lg2ls1_ins, base_lg2ls2_ins, base_lg2lv1_ins,& + & base_lg2lv2_ins, base_init_vl, base_is_null,& & base_row_extendable, base_clone, base_reinit !> Function: psb_indx_map_fnd_owner @@ -564,6 +579,107 @@ contains end subroutine base_l2gv2 + !> + !! \memberof psb_indx_map + !! \brief Local to global, scalar, in place + subroutine base_ll2gs1(idx,idxmap,info,mask,owned) + use psb_error_mod + implicit none + class(psb_indx_map), intent(in) :: idxmap + integer(psb_lpk_), intent(inout) :: idx + integer(psb_ipk_), intent(out) :: info + logical, intent(in), optional :: mask + logical, intent(in), optional :: owned + integer(psb_ipk_) :: err_act + character(len=20) :: name='base_ll2g' + logical, parameter :: debug=.false. + + call psb_get_erraction(err_act) + ! This is the base version. If we get here + ! it means the derived class is incomplete, + ! so we throw an error. + call psb_errpush(psb_err_missing_override_method_,& + & name,a_err=idxmap%get_fmt()) + + call psb_error_handler(err_act) + return + + end subroutine base_ll2gs1 + + subroutine base_ll2gs2(idxin,idxout,idxmap,info,mask,owned) + use psb_error_mod + implicit none + class(psb_indx_map), intent(in) :: idxmap + integer(psb_ipk_), intent(in) :: idxin + integer(psb_lpk_), intent(out) :: idxout + integer(psb_ipk_), intent(out) :: info + logical, intent(in), optional :: mask + logical, intent(in), optional :: owned + + integer(psb_ipk_) :: err_act + character(len=20) :: name='base_ll2g' + logical, parameter :: debug=.false. + + call psb_get_erraction(err_act) + ! This is the base version. If we get here + ! it means the derived class is incomplete, + ! so we throw an error. + call psb_errpush(psb_err_missing_override_method_,& + & name,a_err=idxmap%get_fmt()) + + call psb_error_handler(err_act) + + end subroutine base_ll2gs2 + + + subroutine base_ll2gv1(idx,idxmap,info,mask,owned) + use psb_error_mod + implicit none + class(psb_indx_map), intent(in) :: idxmap + integer(psb_lpk_), intent(inout) :: idx(:) + integer(psb_ipk_), intent(out) :: info + logical, intent(in), optional :: mask(:) + logical, intent(in), optional :: owned + integer(psb_ipk_) :: err_act + character(len=20) :: name='base_ll2g' + logical, parameter :: debug=.false. + + call psb_get_erraction(err_act) + ! This is the base version. If we get here + ! it means the derived class is incomplete, + ! so we throw an error. + call psb_errpush(psb_err_missing_override_method_,& + & name,a_err=idxmap%get_fmt()) + + call psb_error_handler(err_act) + return + end subroutine base_ll2gv1 + + subroutine base_ll2gv2(idxin,idxout,idxmap,info,mask,owned) + use psb_error_mod + implicit none + class(psb_indx_map), intent(in) :: idxmap + integer(psb_ipk_), intent(in) :: idxin(:) + integer(psb_lpk_), intent(out) :: idxout(:) + integer(psb_ipk_), intent(out) :: info + logical, intent(in), optional :: mask(:) + logical, intent(in), optional :: owned + integer(psb_ipk_) :: err_act + character(len=20) :: name='base_ll2g' + logical, parameter :: debug=.false. + + call psb_get_erraction(err_act) + ! This is the base version. If we get here + ! it means the derived class is incomplete, + ! so we throw an error. + call psb_errpush(psb_err_missing_override_method_,& + & name,a_err=idxmap%get_fmt()) + + call psb_error_handler(err_act) + return + + end subroutine base_ll2gv2 + subroutine base_g2ls1(idx,idxmap,info,mask,owned) use psb_error_mod @@ -667,6 +783,106 @@ contains end subroutine base_g2lv2 + subroutine base_lg2ls1(idx,idxmap,info,mask,owned) + use psb_error_mod + implicit none + class(psb_indx_map), intent(in) :: idxmap + integer(psb_lpk_), intent(inout) :: idx + integer(psb_ipk_), intent(out) :: info + logical, intent(in), optional :: mask + logical, intent(in), optional :: owned + integer(psb_ipk_) :: err_act + character(len=20) :: name='base_lg2l' + logical, parameter :: debug=.false. + + call psb_get_erraction(err_act) + ! This is the base version. If we get here + ! it means the derived class is incomplete, + ! so we throw an error. + call psb_errpush(psb_err_missing_override_method_,& + & name,a_err=idxmap%get_fmt()) + + call psb_error_handler(err_act) + return + + end subroutine base_lg2ls1 + + subroutine base_lg2ls2(idxin,idxout,idxmap,info,mask,owned) + use psb_error_mod + implicit none + class(psb_indx_map), intent(in) :: idxmap + integer(psb_lpk_), intent(in) :: idxin + integer(psb_ipk_), intent(out) :: idxout + integer(psb_ipk_), intent(out) :: info + logical, intent(in), optional :: mask + logical, intent(in), optional :: owned + + integer(psb_ipk_) :: err_act + character(len=20) :: name='base_lg2l' + logical, parameter :: debug=.false. + + call psb_get_erraction(err_act) + ! This is the base version. If we get here + ! it means the derived class is incomplete, + ! so we throw an error. + call psb_errpush(psb_err_missing_override_method_,& + & name,a_err=idxmap%get_fmt()) + + call psb_error_handler(err_act) + return + + end subroutine base_lg2ls2 + + + subroutine base_lg2lv1(idx,idxmap,info,mask,owned) + use psb_error_mod + implicit none + class(psb_indx_map), intent(in) :: idxmap + integer(psb_lpk_), intent(inout) :: idx(:) + integer(psb_ipk_), intent(out) :: info + logical, intent(in), optional :: mask(:) + logical, intent(in), optional :: owned + integer(psb_ipk_) :: err_act + character(len=20) :: name='base_lg2l' + logical, parameter :: debug=.false. + + call psb_get_erraction(err_act) + ! This is the base version. If we get here + ! it means the derived class is incomplete, + ! so we throw an error. + call psb_errpush(psb_err_missing_override_method_,& + & name,a_err=idxmap%get_fmt()) + + call psb_error_handler(err_act) + return + + end subroutine base_lg2lv1 + + subroutine base_lg2lv2(idxin,idxout,idxmap,info,mask,owned) + use psb_error_mod + implicit none + class(psb_indx_map), intent(in) :: idxmap + integer(psb_lpk_), intent(in) :: idxin(:) + integer(psb_ipk_), intent(out) :: idxout(:) + integer(psb_ipk_), intent(out) :: info + logical, intent(in), optional :: mask(:) + logical, intent(in), optional :: owned + + integer(psb_ipk_) :: err_act + character(len=20) :: name='base_lg2l' + logical, parameter :: debug=.false. + + call psb_get_erraction(err_act) + ! This is the base version. If we get here + ! it means the derived class is incomplete, + ! so we throw an error. + call psb_errpush(psb_err_missing_override_method_,& + & name,a_err=idxmap%get_fmt()) + + call psb_error_handler(err_act) + return + + end subroutine base_lg2lv2 subroutine base_g2ls1_ins(idx,idxmap,info,mask, lidx) @@ -772,6 +988,108 @@ contains end subroutine base_g2lv2_ins + subroutine base_lg2ls1_ins(idx,idxmap,info,mask, lidx) + use psb_error_mod + implicit none + class(psb_indx_map), intent(inout) :: idxmap + integer(psb_lpk_), intent(inout) :: idx + integer(psb_ipk_), intent(out) :: info + logical, intent(in), optional :: mask + integer(psb_ipk_), intent(in), optional :: lidx + integer(psb_ipk_) :: err_act + character(len=20) :: name='base_lg2l_ins' + logical, parameter :: debug=.false. + + call psb_get_erraction(err_act) + ! This is the base version. If we get here + ! it means the derived class is incomplete, + ! so we throw an error. + call psb_errpush(psb_err_missing_override_method_,& + & name,a_err=idxmap%get_fmt()) + + call psb_error_handler(err_act) + return + + end subroutine base_lg2ls1_ins + + subroutine base_lg2ls2_ins(idxin,idxout,idxmap,info,mask, lidx) + use psb_error_mod + implicit none + class(psb_indx_map), intent(inout) :: idxmap + integer(psb_lpk_), intent(in) :: idxin + integer(psb_ipk_), intent(out) :: idxout + integer(psb_ipk_), intent(out) :: info + logical, intent(in), optional :: mask + integer(psb_ipk_), intent(in), optional :: lidx + + integer(psb_ipk_) :: err_act + character(len=20) :: name='base_lg2l_ins' + logical, parameter :: debug=.false. + + call psb_get_erraction(err_act) + ! This is the base version. If we get here + ! it means the derived class is incomplete, + ! so we throw an error. + call psb_errpush(psb_err_missing_override_method_,& + & name,a_err=idxmap%get_fmt()) + + call psb_error_handler(err_act) + return + + end subroutine base_lg2ls2_ins + + + subroutine base_lg2lv1_ins(idx,idxmap,info,mask, lidx) + use psb_error_mod + implicit none + class(psb_indx_map), intent(inout) :: idxmap + integer(psb_lpk_), intent(inout) :: idx(:) + integer(psb_ipk_), intent(out) :: info + logical, intent(in), optional :: mask(:) + integer(psb_ipk_), intent(in), optional :: lidx(:) + + integer(psb_ipk_) :: err_act + character(len=20) :: name='base_lg2l_ins' + logical, parameter :: debug=.false. + + call psb_get_erraction(err_act) + ! This is the base version. If we get here + ! it means the derived class is incomplete, + ! so we throw an error. + call psb_errpush(psb_err_missing_override_method_,& + & name,a_err=idxmap%get_fmt()) + + call psb_error_handler(err_act) + return + + end subroutine base_lg2lv1_ins + + subroutine base_lg2lv2_ins(idxin,idxout,idxmap,info,mask,lidx) + use psb_error_mod + implicit none + class(psb_indx_map), intent(inout) :: idxmap + integer(psb_lpk_), intent(in) :: idxin(:) + integer(psb_ipk_), intent(out) :: idxout(:) + integer(psb_ipk_), intent(out) :: info + logical, intent(in), optional :: mask(:) + integer(psb_ipk_), intent(in), optional :: lidx(:) + + integer(psb_ipk_) :: err_act + character(len=20) :: name='base_lg2l_ins' + logical, parameter :: debug=.false. + + call psb_get_erraction(err_act) + ! This is the base version. If we get here + ! it means the derived class is incomplete, + ! so we throw an error. + call psb_errpush(psb_err_missing_override_method_,& + & name,a_err=idxmap%get_fmt()) + + call psb_error_handler(err_act) + return + + end subroutine base_lg2lv2_ins + subroutine base_asb(idxmap,info) use psb_error_mod implicit none From f1b3a9f922860afc3c397b5a33910f6985b33149 Mon Sep 17 00:00:00 2001 From: Salvatore Filippone Date: Wed, 14 Feb 2018 17:54:42 +0000 Subject: [PATCH 13/35] Add global option for psb_cdprt --- base/tools/psb_cdprt.f90 | 43 ++++++++++++++++++++++++++++++++++++++-- 1 file changed, 41 insertions(+), 2 deletions(-) diff --git a/base/tools/psb_cdprt.f90 b/base/tools/psb_cdprt.f90 index 7185f520..3a040ad1 100644 --- a/base/tools/psb_cdprt.f90 +++ b/base/tools/psb_cdprt.f90 @@ -105,14 +105,14 @@ subroutine psb_cdprt(iout,desc_p,glob,short, verbosity) if (me==psb_root_) write(iout,*) 'Communication data for : comm_halo' do i=0, np-1 if (me == i) & - & call print_my_xchg(iout,desc_p,verbosity=verb_,data=psb_comm_halo_) + & call print_my_xchg(iout,desc_p,verbosity=verb_,data=psb_comm_halo_,glob=glob_) call psb_barrier(ictxt) end do if (me==psb_root_) write(iout,*) 'Communication data for : comm_ext' do i=0, np-1 if (me == i) & - & call print_my_xchg(iout,desc_p,verbosity=verb_,data=psb_comm_ext_) + & call print_my_xchg(iout,desc_p,verbosity=verb_,data=psb_comm_ext_,glob=glob_) call psb_barrier(ictxt) end do @@ -129,6 +129,7 @@ contains integer(psb_ipk_) :: ip, nerv, nesd, totxch,idxr,idxs integer(psb_ipk_) :: ictxt, me, np, data_, info, verb_ + integer(psb_ipk_), allocatable :: gidx(:) class(psb_i_base_vect_type), pointer :: vpnt ictxt = desc_p%get_ctxt() @@ -145,6 +146,9 @@ contains end if call psb_cd_v_get_list(data_,desc_p,vpnt,totxch,idxr,idxs,info) + if (glob) & + & call psb_realloc(max(idxr,idxs,1),gidx,info) + select case(verb_) case (1) write(iout,*) me,': Total exchanges :',totxch @@ -174,6 +178,41 @@ contains ip = ip+nerv+nesd+3 end do end associate + case (3) + write(iout,*) me,': Total exchanges :',totxch + write(iout,*) me,': Total sends :',idxs + write(iout,*) me,': Total receives :', idxr + if (totxch == 0) return + if (.not.associated(vpnt)) return + if (.not.allocated(vpnt%v)) return + associate(idx => vpnt%v) + ip = 1 + do + if (ip > size(idx)) then + write(psb_err_unit,*) ': Warning: out of size of input vector ' + exit + end if + if (idx(ip) == -1) exit + totxch = totxch+1 + nerv = idx(ip+psb_n_elem_recv_) + nesd = idx(ip+nerv+psb_n_elem_send_) + write(iout,*) ' ',me,': Exchanging with:',idx(ip),' Sends:',nesd,' Receives:', nerv + if (glob) then + call desc_p%l2g(idx(ip+nerv+psb_n_elem_send_+1:ip+nerv+psb_n_elem_send_+nesd),gidx,info) + write(iout,*) ' ',me,': sending to:',idx(ip),' :',gidx(1:nesd) + call desc_p%l2g(idx(ip+psb_n_elem_recv_+1:ip+psb_n_elem_recv_+nerv),gidx,info) + write(iout,*) ' ',me,': rcvng from:',idx(ip),' :',gidx(1:nerv) + else + write(iout,*) ' ',me,': sending to:',idx(ip),' :',& + & idx(ip+nerv+psb_n_elem_send_+1:ip+nerv+psb_n_elem_send_+nesd) + write(iout,*) ' ',me,': rcvng from:',idx(ip),' :',& + & idx(ip+psb_n_elem_recv_+1:ip+psb_n_elem_recv_+nerv) + end if + idxs = idxs + nesd + idxr = idxr + nerv + ip = ip+nerv+nesd+3 + end do + end associate case default ! Do nothing end select From e9f466bfa3e8d0c99f6e4500aea078abfdf9a4e8 Mon Sep 17 00:00:00 2001 From: Salvatore Filippone Date: Thu, 15 Feb 2018 07:58:14 +0000 Subject: [PATCH 14/35] Try idxijk --- test/pargen/Makefile | 3 ++ test/pargen/psb_d_pde3d.f90 | 79 +++++++++++++++++++++++++++++--- test/pargen/tryidxijk.f90 | 90 +++++++++++++++++++++++++++++++++++++ 3 files changed, 167 insertions(+), 5 deletions(-) create mode 100644 test/pargen/tryidxijk.f90 diff --git a/test/pargen/Makefile b/test/pargen/Makefile index fa50692c..2690aa09 100644 --- a/test/pargen/Makefile +++ b/test/pargen/Makefile @@ -18,6 +18,9 @@ EXEDIR=./runs all: psb_d_pde3d psb_s_pde3d psb_d_pde2d psb_s_pde2d +tryidxijk: tryidxijk.o + $(FLINK) tryidxijk.o -o tryidxijk $(PSBLAS_LIB) $(LDLIBS) + /bin/mv tryidxijk $(EXEDIR) psb_d_pde3d: psb_d_pde3d.o $(FLINK) psb_d_pde3d.o -o psb_d_pde3d $(PSBLAS_LIB) $(LDLIBS) diff --git a/test/pargen/psb_d_pde3d.f90 b/test/pargen/psb_d_pde3d.f90 index ebde0628..616aac89 100644 --- a/test/pargen/psb_d_pde3d.f90 +++ b/test/pargen/psb_d_pde3d.f90 @@ -50,10 +50,12 @@ ! ! Note that if b1=b2=b3=c=0., the PDE is the Laplace equation. ! -! In this sample program the index space of the discretized -! computational domain is first numbered sequentially in a standard way, -! then the corresponding vector is distributed according to a BLOCK -! data distribution. +! There are two choices available for data distribution: +! 1. A simple BLOCK distribution +! 2. A 3D distribution in which the unit cube is partitioned +! into subcubes, each one assigned to a process. +! +! ! module psb_d_pde3d_mod @@ -73,7 +75,9 @@ module psb_d_pde3d_mod interface psb_gen_pde3d module procedure psb_d_gen_pde3d end interface psb_gen_pde3d - + + integer, private :: dims(3),coords(3) + integer, private, allocatable :: rk2coo(:,:), coo2rk(:,:,:) contains @@ -86,6 +90,71 @@ contains end function d_null_func_3d + ! + ! Given a global index IDX and the domain size (NX,NY,NZ) + ! compute the point coordinates (I,J,K) + ! Optional argument: base 0 or 1, default 1 + ! + ! This mapping is equivalent to a loop nesting: + ! idx = base + ! do i=1,nx + ! do j=1,ny + ! do k=1,nz + ! ijk2idx(i,j,k) = idx + ! idx = idx + 1 + subroutine idx2ijk(i,j,k,idx,nx,ny,nz,base) + integer(psb_ipk_), intent(out) :: i,j,k + integer(psb_ipk_), intent(in) :: idx,nx,ny,nz + integer(psb_ipk_), intent(in), optional :: base + + integer(psb_ipk) :: base_, idx_ + if (present(base)) then + base_ = base + else + base_ = 1 + end if + + idx_ = idx - base_ + + i = idx/(nx*ny) + j = (idx - i*nx*ny)/ny + k = (idx - i*nx*ny -j*ny)/nz + + i = i + base_ + j = j + base_ + k = k + base_ + end subroutine idx2ijk + + ! + ! Given a triple (I,J,K) and the domain size (NX,NY,NZ) + ! compute the global index IDX + ! Optional argument: base 0 or 1, default 1 + ! + ! This mapping is equivalent to a loop nesting: + ! idx = base + ! do i=1,nx + ! do j=1,ny + ! do k=1,nz + ! ijk2idx(i,j,k) = idx + ! idx = idx + 1 + subroutine ijk2idx(idx,i,j,k,nx,ny,nz,base) + integer(psb_ipk_), intent(out) :: idx, + integer(psb_ipk_), intent(in) :: i,j,k,nx,ny,nz + integer(psb_ipk_), intent(in), optional :: base + + integer(psb_ipk) :: base_ + if (present(base)) then + base_ = base + else + base_ = 1 + end if + + + idx = ((i-base_)*nx*ny + (j-base_)*nx + k -base_) + base_ + + end subroutine ijk2idx + + ! ! subroutine to allocate and fill in the coefficient matrix and ! the rhs. diff --git a/test/pargen/tryidxijk.f90 b/test/pargen/tryidxijk.f90 new file mode 100644 index 00000000..6e00bfd4 --- /dev/null +++ b/test/pargen/tryidxijk.f90 @@ -0,0 +1,90 @@ +program tryyidxijk + use psb_base_mod, only : psb_ipk_ + implicit none + + integer(psb_ipk_) :: nx,ny,nz, base, i, j, k, idx + integer(psb_ipk_) :: ic, jc, kc, idxc + write(*,*) 'nx,ny,nz,base? ' + read(*,*) nx,ny,nz, base + + idx = base + do i=base,nx-(1-base) + do j=base,ny-(1-base) + do k=base,nz-(1-base) + call idx2ijk(ic,jc,kc,idx,nx,ny,nz,base) + call ijk2idx(idxc,i,j,k,nx,ny,nz,base) + write(*,*) i,j,k,idx,':',ic,jc,kc,idxc + idx = idx + 1 + end do + end do + end do + +contains + ! + ! Given a global index IDX and the domain size (NX,NY,NZ) + ! compute the point coordinates (I,J,K) + ! Optional argument: base 0 or 1, default 1 + ! + ! This mapping is equivalent to a loop nesting: + ! idx = base + ! do i=1,nx + ! do j=1,ny + ! do k=1,nz + ! ijk2idx(i,j,k) = idx + ! idx = idx + 1 + subroutine idx2ijk(i,j,k,idx,nx,ny,nz,base) + use psb_base_mod, only : psb_ipk_ + implicit none + integer(psb_ipk_), intent(out) :: i,j,k + integer(psb_ipk_), intent(in) :: idx,nx,ny,nz + integer(psb_ipk_), intent(in), optional :: base + + integer(psb_ipk_) :: base_, idx_ + if (present(base)) then + base_ = base + else + base_ = 1 + end if + + idx_ = idx - base_ + + i = idx_/(nx*ny) + j = (idx_ - i*nx*ny)/ny + k = (idx_ - i*nx*ny -j*ny) + + i = i + base_ + j = j + base_ + k = k + base_ + end subroutine idx2ijk + + ! + ! Given a triple (I,J,K) and the domain size (NX,NY,NZ) + ! compute the global index IDX + ! Optional argument: base 0 or 1, default 1 + ! + ! This mapping is equivalent to a loop nesting: + ! idx = base + ! do i=1,nx + ! do j=1,ny + ! do k=1,nz + ! ijk2idx(i,j,k) = idx + ! idx = idx + 1 + subroutine ijk2idx(idx,i,j,k,nx,ny,nz,base) + use psb_base_mod, only : psb_ipk_ + implicit none + integer(psb_ipk_), intent(out) :: idx + integer(psb_ipk_), intent(in) :: i,j,k,nx,ny,nz + integer(psb_ipk_), intent(in), optional :: base + + integer(psb_ipk_) :: base_ + if (present(base)) then + base_ = base + else + base_ = 1 + end if + + + idx = ((i-base_)*nx*ny + (j-base_)*nx + k -base_) + base_ + + end subroutine ijk2idx +end program tryyidxijk From d98dec4a4a39307343bffdee5f0d9611db66e87c Mon Sep 17 00:00:00 2001 From: Salvatore Filippone Date: Thu, 15 Feb 2018 08:02:05 +0000 Subject: [PATCH 15/35] Fixed name strings in Xdot --- base/psblas/psb_cdot.f90 | 2 +- base/psblas/psb_ddot.f90 | 2 +- base/psblas/psb_sdot.f90 | 2 +- base/psblas/psb_zdot.f90 | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/base/psblas/psb_cdot.f90 b/base/psblas/psb_cdot.f90 index 7e669761..cf7d5f01 100644 --- a/base/psblas/psb_cdot.f90 +++ b/base/psblas/psb_cdot.f90 @@ -67,7 +67,7 @@ function psb_cdot_vect(x, y, desc_a,info) result(res) & err_act, iix, jjx, ix, ijx, iy, ijy, iiy, jjy, i, m, nr character(len=20) :: name, ch_err - name='psb_sdot' + name='psb_cdot_vect' res = czero if (psb_errstatus_fatal()) return info=psb_success_ diff --git a/base/psblas/psb_ddot.f90 b/base/psblas/psb_ddot.f90 index 3d79266a..2a2b00f3 100644 --- a/base/psblas/psb_ddot.f90 +++ b/base/psblas/psb_ddot.f90 @@ -67,7 +67,7 @@ function psb_ddot_vect(x, y, desc_a,info) result(res) & err_act, iix, jjx, ix, ijx, iy, ijy, iiy, jjy, i, m, nr character(len=20) :: name, ch_err - name='psb_sdot' + name='psb_ddot_vect' res = dzero if (psb_errstatus_fatal()) return info=psb_success_ diff --git a/base/psblas/psb_sdot.f90 b/base/psblas/psb_sdot.f90 index e6da978a..86627f07 100644 --- a/base/psblas/psb_sdot.f90 +++ b/base/psblas/psb_sdot.f90 @@ -67,7 +67,7 @@ function psb_sdot_vect(x, y, desc_a,info) result(res) & err_act, iix, jjx, ix, ijx, iy, ijy, iiy, jjy, i, m, nr character(len=20) :: name, ch_err - name='psb_sdot' + name='psb_sdot_vect' res = szero if (psb_errstatus_fatal()) return info=psb_success_ diff --git a/base/psblas/psb_zdot.f90 b/base/psblas/psb_zdot.f90 index 1ff86719..a9cd1d98 100644 --- a/base/psblas/psb_zdot.f90 +++ b/base/psblas/psb_zdot.f90 @@ -67,7 +67,7 @@ function psb_zdot_vect(x, y, desc_a,info) result(res) & err_act, iix, jjx, ix, ijx, iy, ijy, iiy, jjy, i, m, nr character(len=20) :: name, ch_err - name='psb_sdot' + name='psb_zdot_vect' res = zzero if (psb_errstatus_fatal()) return info=psb_success_ From 96abc8e75b90ed85b326d3c82d76e875d4030841 Mon Sep 17 00:00:00 2001 From: Salvatore Filippone Date: Thu, 15 Feb 2018 15:55:49 +0000 Subject: [PATCH 16/35] Fixed idx2ijk, added dist1Didx --- test/pargen/tryidxijk.f90 | 78 ++++++++++++++++++++++++++++++++++----- 1 file changed, 68 insertions(+), 10 deletions(-) diff --git a/test/pargen/tryidxijk.f90 b/test/pargen/tryidxijk.f90 index 6e00bfd4..39839937 100644 --- a/test/pargen/tryidxijk.f90 +++ b/test/pargen/tryidxijk.f90 @@ -2,8 +2,9 @@ program tryyidxijk use psb_base_mod, only : psb_ipk_ implicit none - integer(psb_ipk_) :: nx,ny,nz, base, i, j, k, idx + integer(psb_ipk_) :: nx,ny,nz, base, i, j, k, idx,npx,npy,npz integer(psb_ipk_) :: ic, jc, kc, idxc + integer(psb_ipk_), allocatable :: v(:) write(*,*) 'nx,ny,nz,base? ' read(*,*) nx,ny,nz, base @@ -13,11 +14,32 @@ program tryyidxijk do k=base,nz-(1-base) call idx2ijk(ic,jc,kc,idx,nx,ny,nz,base) call ijk2idx(idxc,i,j,k,nx,ny,nz,base) - write(*,*) i,j,k,idx,':',ic,jc,kc,idxc + ! write(*,*) i,j,k,idx,':',ic,jc,kc,idxc + if ((i/=ic).or.& + & (j/=jc).or.& + & (k/=kc).or.& + & (idxc/=idx))then + write(*,*) 'Error:',i,j,k,idx,':',ic,jc,kc,idxc + stop + end if idx = idx + 1 end do end do end do + write(*,*) 'Ok ' + write(*,*) 'npx,npy,npz? ' + read(*,*) npx,npy,npz + + call dist1Didx(v,nx,npx) + write(*,*) ' X:',v + write(*,*) 'SZX:',v(2:npx+1)-v(1:npx) + call dist1Didx(v,ny,npy) + write(*,*) ' Y:',v + write(*,*) 'SZY:',v(2:npy+1)-v(1:npy) + call dist1Didx(v,nz,npz) + write(*,*) ' Z:',v + write(*,*) 'SZZ:',v(2:npz+1)-v(1:npz) + contains ! @@ -48,13 +70,10 @@ contains idx_ = idx - base_ - i = idx_/(nx*ny) - j = (idx_ - i*nx*ny)/ny - k = (idx_ - i*nx*ny -j*ny) + k = mod(idx_,nz) + base_ + j = mod(idx_/nz,ny) + base_ + i = mod(idx_/(ny*nz),nx) + base_ - i = i + base_ - j = j + base_ - k = k + base_ end subroutine idx2ijk ! @@ -83,8 +102,47 @@ contains base_ = 1 end if - - idx = ((i-base_)*nx*ny + (j-base_)*nx + k -base_) + base_ + idx = ((i-base_)*nz*ny + (j-base_)*nz + k - base_) + base_ end subroutine ijk2idx + + ! + ! dist1Didx + ! Given an index space [base : N-(1-base)] and + ! a set of NP processes, split the index base as + ! evenly as possible, then return the boundaries + ! in a vector such that + ! V(P) : first index owned by process P + ! V(P+1) : first index owned by process P+1 + ! + subroutine dist1Didx(v,n,np,base) + use psb_base_mod, only : psb_ipk_ + implicit none + integer(psb_ipk_), allocatable, intent(out) :: v(:) + integer(psb_ipk_), intent(in) :: n, np + integer(psb_ipk_), intent(in), optional :: base + ! + integer(psb_ipk_) :: base_, nb, i + + if (present(base)) then + base_ = base + else + base_ = 1 + end if + allocate(v(np+1)) + + nb = n/np + do i=1,mod(n,np) + v(i) = nb + 1 + end do + do i=mod(n,np)+1,np + v(i) = nb + end do + v(2:np+1) = v(1:np) + v(1) = base_ + do i=2,np+1 + v(i) = v(i) + v(i-1) + end do + end subroutine dist1Didx + end program tryyidxijk From 470c6658f924e1e5b5260d28ad6c1424e20caaea Mon Sep 17 00:00:00 2001 From: Salvatore Filippone Date: Fri, 16 Feb 2018 09:31:29 +0000 Subject: [PATCH 17/35] Added dist1Didx --- test/pargen/tryidxijk.f90 | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/test/pargen/tryidxijk.f90 b/test/pargen/tryidxijk.f90 index 39839937..f7c09465 100644 --- a/test/pargen/tryidxijk.f90 +++ b/test/pargen/tryidxijk.f90 @@ -29,16 +29,16 @@ program tryyidxijk write(*,*) 'Ok ' write(*,*) 'npx,npy,npz? ' read(*,*) npx,npy,npz - + allocate(v(0:max(npx,npy,npz))) call dist1Didx(v,nx,npx) - write(*,*) ' X:',v - write(*,*) 'SZX:',v(2:npx+1)-v(1:npx) + write(*,*) ' X:',v(0:npx) + write(*,*) 'SZX:',v(1:npx)-v(0:npx-1) call dist1Didx(v,ny,npy) - write(*,*) ' Y:',v - write(*,*) 'SZY:',v(2:npy+1)-v(1:npy) + write(*,*) ' Y:',v(0:npy) + write(*,*) 'SZY:',v(1:npy)-v(0:npy-1) call dist1Didx(v,nz,npz) - write(*,*) ' Z:',v - write(*,*) 'SZZ:',v(2:npz+1)-v(1:npz) + write(*,*) ' Z:',v(0:npz) + write(*,*) 'SZZ:',v(1:npz)-v(0:npz-1) contains @@ -110,15 +110,17 @@ contains ! dist1Didx ! Given an index space [base : N-(1-base)] and ! a set of NP processes, split the index base as - ! evenly as possible, then return the boundaries - ! in a vector such that + ! evenly as possible, i.e. difference in size + ! between any two processes is either 0 or 1, + ! then return the boundaries in a vector + ! such that ! V(P) : first index owned by process P ! V(P+1) : first index owned by process P+1 ! subroutine dist1Didx(v,n,np,base) use psb_base_mod, only : psb_ipk_ implicit none - integer(psb_ipk_), allocatable, intent(out) :: v(:) + integer(psb_ipk_), intent(out) :: v(:) integer(psb_ipk_), intent(in) :: n, np integer(psb_ipk_), intent(in), optional :: base ! @@ -129,7 +131,6 @@ contains else base_ = 1 end if - allocate(v(np+1)) nb = n/np do i=1,mod(n,np) From 32f4e7ad28c1b56634853a8d3e7f4617959da1e1 Mon Sep 17 00:00:00 2001 From: Salvatore Filippone Date: Sun, 18 Feb 2018 08:49:37 +0000 Subject: [PATCH 18/35] Revert "Merge branch 'MixedI8' into development" This reverts commit a4bb89df8ba56d46a2ee9d9e8b17cd530480f1e6, reversing changes made to 273fd7ac44e1fdddd51bc04acfa70d637186ef08. --- base/modules/desc/psb_indx_map_mod.f90 | 419 +++---------------------- base/modules/psb_const_mod.F90 | 5 - 2 files changed, 39 insertions(+), 385 deletions(-) diff --git a/base/modules/desc/psb_indx_map_mod.f90 b/base/modules/desc/psb_indx_map_mod.f90 index 17d970e1..fcfb666b 100644 --- a/base/modules/desc/psb_indx_map_mod.f90 +++ b/base/modules/desc/psb_indx_map_mod.f90 @@ -112,9 +112,9 @@ module psb_indx_map_mod !> MPI communicator integer(psb_mpik_) :: mpic = -1 !> Number of global rows - integer(psb_lpk_) :: global_rows = -1 + integer(psb_ipk_) :: global_rows = -1 !> Number of global columns - integer(psb_lpk_) :: global_cols = -1 + integer(psb_ipk_) :: global_cols = -1 !> Number of local rows integer(psb_ipk_) :: local_rows = -1 !> Number of local columns @@ -141,25 +141,19 @@ module psb_indx_map_mod procedure, pass(idxmap) :: get_gc => base_get_gc procedure, pass(idxmap) :: get_lr => base_get_lr procedure, pass(idxmap) :: get_lc => base_get_lc - - procedure, pass(idxmap) :: set_gri => base_set_gri - procedure, pass(idxmap) :: set_gci => base_set_gci - procedure, pass(idxmap) :: set_grl => base_set_grl - procedure, pass(idxmap) :: set_gcl => base_set_gcl - generic, public :: set_gr => set_gri, set_grl - generic, public :: set_gc => set_gci, set_gcl - - procedure, pass(idxmap) :: set_lr => base_set_lr - procedure, pass(idxmap) :: set_lc => base_set_lc - - procedure, pass(idxmap) :: set_ctxt => base_set_ctxt - procedure, pass(idxmap) :: set_mpic => base_set_mpic procedure, pass(idxmap) :: get_ctxt => base_get_ctxt procedure, pass(idxmap) :: get_mpic => base_get_mpic procedure, pass(idxmap) :: sizeof => base_sizeof procedure, pass(idxmap) :: set_null => base_set_null procedure, nopass :: row_extendable => base_row_extendable + procedure, pass(idxmap) :: set_gr => base_set_gr + procedure, pass(idxmap) :: set_gc => base_set_gc + procedure, pass(idxmap) :: set_lr => base_set_lr + procedure, pass(idxmap) :: set_lc => base_set_lc + procedure, pass(idxmap) :: set_ctxt => base_set_ctxt + procedure, pass(idxmap) :: set_mpic => base_set_mpic + procedure, nopass :: get_fmt => base_get_fmt procedure, pass(idxmap) :: asb => base_asb @@ -167,38 +161,26 @@ module psb_indx_map_mod procedure, pass(idxmap) :: clone => base_clone procedure, pass(idxmap) :: reinit => base_reinit - procedure, pass(idxmap) :: l2gs1 => base_l2gs1 - procedure, pass(idxmap) :: l2gs2 => base_l2gs2 - procedure, pass(idxmap) :: l2gv1 => base_l2gv1 - procedure, pass(idxmap) :: l2gv2 => base_l2gv2 - procedure, pass(idxmap) :: ll2gs1 => base_ll2gs1 - procedure, pass(idxmap) :: ll2gs2 => base_ll2gs2 - procedure, pass(idxmap) :: ll2gv1 => base_ll2gv1 - procedure, pass(idxmap) :: ll2gv2 => base_ll2gv2 - generic, public :: l2g => l2gs2, l2gv2, ll2gs2, ll2gv2 - generic, public :: l2gip => l2gs1, l2gv1, ll2gs1, ll2gv1 - - procedure, pass(idxmap) :: g2ls1 => base_g2ls1 - procedure, pass(idxmap) :: g2ls2 => base_g2ls2 - procedure, pass(idxmap) :: g2lv1 => base_g2lv1 - procedure, pass(idxmap) :: g2lv2 => base_g2lv2 - procedure, pass(idxmap) :: lg2ls1 => base_lg2ls1 - procedure, pass(idxmap) :: lg2ls2 => base_lg2ls2 - procedure, pass(idxmap) :: lg2lv1 => base_lg2lv1 - procedure, pass(idxmap) :: lg2lv2 => base_lg2lv2 - generic, public :: g2l => g2ls2, g2lv2, lg2ls2, lg2lv2 - generic, public :: g2lip => g2ls1, g2lv1, lg2ls1, lg2lv1 - - procedure, pass(idxmap) :: g2ls1_ins => base_g2ls1_ins - procedure, pass(idxmap) :: g2ls2_ins => base_g2ls2_ins - procedure, pass(idxmap) :: g2lv1_ins => base_g2lv1_ins - procedure, pass(idxmap) :: g2lv2_ins => base_g2lv2_ins - procedure, pass(idxmap) :: lg2ls1_ins => base_lg2ls1_ins - procedure, pass(idxmap) :: lg2ls2_ins => base_lg2ls2_ins - procedure, pass(idxmap) :: lg2lv1_ins => base_lg2lv1_ins - procedure, pass(idxmap) :: lg2lv2_ins => base_lg2lv2_ins - generic, public :: g2l_ins => g2ls2_ins, g2lv2_ins, lg2ls2_ins, lg2lv2_ins - generic, public :: g2lip_ins => g2ls1_ins, g2lv1_ins, lg2ls1_ins, lg2lv1_ins + procedure, pass(idxmap) :: l2gs1 => base_l2gs1 + procedure, pass(idxmap) :: l2gs2 => base_l2gs2 + procedure, pass(idxmap) :: l2gv1 => base_l2gv1 + procedure, pass(idxmap) :: l2gv2 => base_l2gv2 + generic, public :: l2g => l2gs2, l2gv2 + generic, public :: l2gip => l2gs1, l2gv1 + + procedure, pass(idxmap) :: g2ls1 => base_g2ls1 + procedure, pass(idxmap) :: g2ls2 => base_g2ls2 + procedure, pass(idxmap) :: g2lv1 => base_g2lv1 + procedure, pass(idxmap) :: g2lv2 => base_g2lv2 + generic, public :: g2l => g2ls2, g2lv2 + generic, public :: g2lip => g2ls1, g2lv1 + + procedure, pass(idxmap) :: g2ls1_ins => base_g2ls1_ins + procedure, pass(idxmap) :: g2ls2_ins => base_g2ls2_ins + procedure, pass(idxmap) :: g2lv1_ins => base_g2lv1_ins + procedure, pass(idxmap) :: g2lv2_ins => base_g2lv2_ins + generic, public :: g2l_ins => g2ls2_ins, g2lv2_ins + generic, public :: g2lip_ins => g2ls1_ins, g2lv1_ins procedure, pass(idxmap) :: fnd_owner => psb_indx_map_fnd_owner procedure, pass(idxmap) :: init_vl => base_init_vl @@ -209,17 +191,13 @@ module psb_indx_map_mod private :: base_get_state, base_set_state, base_is_repl, base_is_bld,& & base_is_upd, base_is_asb, base_is_valid, base_is_ovl,& & base_get_gr, base_get_gc, base_get_lr, base_get_lc, base_get_ctxt,& - & base_get_mpic, base_sizeof, base_set_null, & - & base_set_gri, base_set_gci, base_set_grl, base_set_gcl, & - & base_set_lr, base_set_lc, base_set_ctxt,& + & base_get_mpic, base_sizeof, base_set_null, base_set_gr,& + & base_set_gc, base_set_lr, base_set_lc, base_set_ctxt,& & base_set_mpic, base_get_fmt, base_asb, base_free,& & base_l2gs1, base_l2gs2, base_l2gv1, base_l2gv2,& & base_g2ls1, base_g2ls2, base_g2lv1, base_g2lv2,& - & base_g2ls1_ins, base_g2ls2_ins, base_g2lv1_ins, base_g2lv2_ins, & - & base_ll2gs1, base_ll2gs2, base_ll2gv1, base_ll2gv2,& - & base_lg2ls1, base_lg2ls2, base_lg2lv1, base_lg2lv2,& - & base_lg2ls1_ins, base_lg2ls2_ins, base_lg2lv1_ins,& - & base_lg2lv2_ins, base_init_vl, base_is_null,& + & base_g2ls1_ins, base_g2ls2_ins, base_g2lv1_ins,& + & base_g2lv2_ins, base_init_vl, base_is_null,& & base_row_extendable, base_clone, base_reinit !> Function: psb_indx_map_fnd_owner @@ -277,7 +255,7 @@ contains function base_get_gr(idxmap) result(val) implicit none class(psb_indx_map), intent(in) :: idxmap - integer(psb_lpk_) :: val + integer(psb_ipk_) :: val val = idxmap%global_rows @@ -287,7 +265,7 @@ contains function base_get_gc(idxmap) result(val) implicit none class(psb_indx_map), intent(in) :: idxmap - integer(psb_lpk_) :: val + integer(psb_ipk_) :: val val = idxmap%global_cols @@ -350,37 +328,21 @@ contains idxmap%ictxt = val end subroutine base_set_ctxt - subroutine base_set_gri(idxmap,val) + subroutine base_set_gr(idxmap,val) implicit none class(psb_indx_map), intent(inout) :: idxmap integer(psb_ipk_), intent(in) :: val idxmap%global_rows = val - end subroutine base_set_gri + end subroutine base_set_gr - subroutine base_set_gci(idxmap,val) + subroutine base_set_gc(idxmap,val) implicit none class(psb_indx_map), intent(inout) :: idxmap integer(psb_ipk_), intent(in) :: val idxmap%global_cols = val - end subroutine base_set_gci - - subroutine base_set_grl(idxmap,val) - implicit none - class(psb_indx_map), intent(inout) :: idxmap - integer(psb_lpk_), intent(in) :: val - - idxmap%global_rows = val - end subroutine base_set_grl - - subroutine base_set_gcl(idxmap,val) - implicit none - class(psb_indx_map), intent(inout) :: idxmap - integer(psb_lpk_), intent(in) :: val - - idxmap%global_cols = val - end subroutine base_set_gcl + end subroutine base_set_gc subroutine base_set_lr(idxmap,val) implicit none @@ -579,107 +541,6 @@ contains end subroutine base_l2gv2 - !> - !! \memberof psb_indx_map - !! \brief Local to global, scalar, in place - subroutine base_ll2gs1(idx,idxmap,info,mask,owned) - use psb_error_mod - implicit none - class(psb_indx_map), intent(in) :: idxmap - integer(psb_lpk_), intent(inout) :: idx - integer(psb_ipk_), intent(out) :: info - logical, intent(in), optional :: mask - logical, intent(in), optional :: owned - integer(psb_ipk_) :: err_act - character(len=20) :: name='base_ll2g' - logical, parameter :: debug=.false. - - call psb_get_erraction(err_act) - ! This is the base version. If we get here - ! it means the derived class is incomplete, - ! so we throw an error. - call psb_errpush(psb_err_missing_override_method_,& - & name,a_err=idxmap%get_fmt()) - - call psb_error_handler(err_act) - return - - end subroutine base_ll2gs1 - - subroutine base_ll2gs2(idxin,idxout,idxmap,info,mask,owned) - use psb_error_mod - implicit none - class(psb_indx_map), intent(in) :: idxmap - integer(psb_ipk_), intent(in) :: idxin - integer(psb_lpk_), intent(out) :: idxout - integer(psb_ipk_), intent(out) :: info - logical, intent(in), optional :: mask - logical, intent(in), optional :: owned - - integer(psb_ipk_) :: err_act - character(len=20) :: name='base_ll2g' - logical, parameter :: debug=.false. - - call psb_get_erraction(err_act) - ! This is the base version. If we get here - ! it means the derived class is incomplete, - ! so we throw an error. - call psb_errpush(psb_err_missing_override_method_,& - & name,a_err=idxmap%get_fmt()) - - call psb_error_handler(err_act) - - end subroutine base_ll2gs2 - - - subroutine base_ll2gv1(idx,idxmap,info,mask,owned) - use psb_error_mod - implicit none - class(psb_indx_map), intent(in) :: idxmap - integer(psb_lpk_), intent(inout) :: idx(:) - integer(psb_ipk_), intent(out) :: info - logical, intent(in), optional :: mask(:) - logical, intent(in), optional :: owned - integer(psb_ipk_) :: err_act - character(len=20) :: name='base_ll2g' - logical, parameter :: debug=.false. - - call psb_get_erraction(err_act) - ! This is the base version. If we get here - ! it means the derived class is incomplete, - ! so we throw an error. - call psb_errpush(psb_err_missing_override_method_,& - & name,a_err=idxmap%get_fmt()) - - call psb_error_handler(err_act) - return - end subroutine base_ll2gv1 - - subroutine base_ll2gv2(idxin,idxout,idxmap,info,mask,owned) - use psb_error_mod - implicit none - class(psb_indx_map), intent(in) :: idxmap - integer(psb_ipk_), intent(in) :: idxin(:) - integer(psb_lpk_), intent(out) :: idxout(:) - integer(psb_ipk_), intent(out) :: info - logical, intent(in), optional :: mask(:) - logical, intent(in), optional :: owned - integer(psb_ipk_) :: err_act - character(len=20) :: name='base_ll2g' - logical, parameter :: debug=.false. - - call psb_get_erraction(err_act) - ! This is the base version. If we get here - ! it means the derived class is incomplete, - ! so we throw an error. - call psb_errpush(psb_err_missing_override_method_,& - & name,a_err=idxmap%get_fmt()) - - call psb_error_handler(err_act) - return - - end subroutine base_ll2gv2 - subroutine base_g2ls1(idx,idxmap,info,mask,owned) use psb_error_mod @@ -783,106 +644,6 @@ contains end subroutine base_g2lv2 - subroutine base_lg2ls1(idx,idxmap,info,mask,owned) - use psb_error_mod - implicit none - class(psb_indx_map), intent(in) :: idxmap - integer(psb_lpk_), intent(inout) :: idx - integer(psb_ipk_), intent(out) :: info - logical, intent(in), optional :: mask - logical, intent(in), optional :: owned - integer(psb_ipk_) :: err_act - character(len=20) :: name='base_lg2l' - logical, parameter :: debug=.false. - - call psb_get_erraction(err_act) - ! This is the base version. If we get here - ! it means the derived class is incomplete, - ! so we throw an error. - call psb_errpush(psb_err_missing_override_method_,& - & name,a_err=idxmap%get_fmt()) - - call psb_error_handler(err_act) - return - - end subroutine base_lg2ls1 - - subroutine base_lg2ls2(idxin,idxout,idxmap,info,mask,owned) - use psb_error_mod - implicit none - class(psb_indx_map), intent(in) :: idxmap - integer(psb_lpk_), intent(in) :: idxin - integer(psb_ipk_), intent(out) :: idxout - integer(psb_ipk_), intent(out) :: info - logical, intent(in), optional :: mask - logical, intent(in), optional :: owned - - integer(psb_ipk_) :: err_act - character(len=20) :: name='base_lg2l' - logical, parameter :: debug=.false. - - call psb_get_erraction(err_act) - ! This is the base version. If we get here - ! it means the derived class is incomplete, - ! so we throw an error. - call psb_errpush(psb_err_missing_override_method_,& - & name,a_err=idxmap%get_fmt()) - - call psb_error_handler(err_act) - return - - end subroutine base_lg2ls2 - - - subroutine base_lg2lv1(idx,idxmap,info,mask,owned) - use psb_error_mod - implicit none - class(psb_indx_map), intent(in) :: idxmap - integer(psb_lpk_), intent(inout) :: idx(:) - integer(psb_ipk_), intent(out) :: info - logical, intent(in), optional :: mask(:) - logical, intent(in), optional :: owned - integer(psb_ipk_) :: err_act - character(len=20) :: name='base_lg2l' - logical, parameter :: debug=.false. - - call psb_get_erraction(err_act) - ! This is the base version. If we get here - ! it means the derived class is incomplete, - ! so we throw an error. - call psb_errpush(psb_err_missing_override_method_,& - & name,a_err=idxmap%get_fmt()) - - call psb_error_handler(err_act) - return - - end subroutine base_lg2lv1 - - subroutine base_lg2lv2(idxin,idxout,idxmap,info,mask,owned) - use psb_error_mod - implicit none - class(psb_indx_map), intent(in) :: idxmap - integer(psb_lpk_), intent(in) :: idxin(:) - integer(psb_ipk_), intent(out) :: idxout(:) - integer(psb_ipk_), intent(out) :: info - logical, intent(in), optional :: mask(:) - logical, intent(in), optional :: owned - - integer(psb_ipk_) :: err_act - character(len=20) :: name='base_lg2l' - logical, parameter :: debug=.false. - - call psb_get_erraction(err_act) - ! This is the base version. If we get here - ! it means the derived class is incomplete, - ! so we throw an error. - call psb_errpush(psb_err_missing_override_method_,& - & name,a_err=idxmap%get_fmt()) - - call psb_error_handler(err_act) - return - - end subroutine base_lg2lv2 subroutine base_g2ls1_ins(idx,idxmap,info,mask, lidx) @@ -988,108 +749,6 @@ contains end subroutine base_g2lv2_ins - subroutine base_lg2ls1_ins(idx,idxmap,info,mask, lidx) - use psb_error_mod - implicit none - class(psb_indx_map), intent(inout) :: idxmap - integer(psb_lpk_), intent(inout) :: idx - integer(psb_ipk_), intent(out) :: info - logical, intent(in), optional :: mask - integer(psb_ipk_), intent(in), optional :: lidx - integer(psb_ipk_) :: err_act - character(len=20) :: name='base_lg2l_ins' - logical, parameter :: debug=.false. - - call psb_get_erraction(err_act) - ! This is the base version. If we get here - ! it means the derived class is incomplete, - ! so we throw an error. - call psb_errpush(psb_err_missing_override_method_,& - & name,a_err=idxmap%get_fmt()) - - call psb_error_handler(err_act) - return - - end subroutine base_lg2ls1_ins - - subroutine base_lg2ls2_ins(idxin,idxout,idxmap,info,mask, lidx) - use psb_error_mod - implicit none - class(psb_indx_map), intent(inout) :: idxmap - integer(psb_lpk_), intent(in) :: idxin - integer(psb_ipk_), intent(out) :: idxout - integer(psb_ipk_), intent(out) :: info - logical, intent(in), optional :: mask - integer(psb_ipk_), intent(in), optional :: lidx - - integer(psb_ipk_) :: err_act - character(len=20) :: name='base_lg2l_ins' - logical, parameter :: debug=.false. - - call psb_get_erraction(err_act) - ! This is the base version. If we get here - ! it means the derived class is incomplete, - ! so we throw an error. - call psb_errpush(psb_err_missing_override_method_,& - & name,a_err=idxmap%get_fmt()) - - call psb_error_handler(err_act) - return - - end subroutine base_lg2ls2_ins - - - subroutine base_lg2lv1_ins(idx,idxmap,info,mask, lidx) - use psb_error_mod - implicit none - class(psb_indx_map), intent(inout) :: idxmap - integer(psb_lpk_), intent(inout) :: idx(:) - integer(psb_ipk_), intent(out) :: info - logical, intent(in), optional :: mask(:) - integer(psb_ipk_), intent(in), optional :: lidx(:) - - integer(psb_ipk_) :: err_act - character(len=20) :: name='base_lg2l_ins' - logical, parameter :: debug=.false. - - call psb_get_erraction(err_act) - ! This is the base version. If we get here - ! it means the derived class is incomplete, - ! so we throw an error. - call psb_errpush(psb_err_missing_override_method_,& - & name,a_err=idxmap%get_fmt()) - - call psb_error_handler(err_act) - return - - end subroutine base_lg2lv1_ins - - subroutine base_lg2lv2_ins(idxin,idxout,idxmap,info,mask,lidx) - use psb_error_mod - implicit none - class(psb_indx_map), intent(inout) :: idxmap - integer(psb_lpk_), intent(in) :: idxin(:) - integer(psb_ipk_), intent(out) :: idxout(:) - integer(psb_ipk_), intent(out) :: info - logical, intent(in), optional :: mask(:) - integer(psb_ipk_), intent(in), optional :: lidx(:) - - integer(psb_ipk_) :: err_act - character(len=20) :: name='base_lg2l_ins' - logical, parameter :: debug=.false. - - call psb_get_erraction(err_act) - ! This is the base version. If we get here - ! it means the derived class is incomplete, - ! so we throw an error. - call psb_errpush(psb_err_missing_override_method_,& - & name,a_err=idxmap%get_fmt()) - - call psb_error_handler(err_act) - return - - end subroutine base_lg2lv2_ins - subroutine base_asb(idxmap,info) use psb_error_mod implicit none diff --git a/base/modules/psb_const_mod.F90 b/base/modules/psb_const_mod.F90 index fa9a4cea..80b88ef4 100644 --- a/base/modules/psb_const_mod.F90 +++ b/base/modules/psb_const_mod.F90 @@ -41,7 +41,6 @@ module psb_const_mod #endif ! This is always an 8-byte integer. integer, parameter :: psb_long_int_k_ = int64 - integer, parameter :: psb_lpk_ = psb_long_int_k_ ! This is always a 4-byte integer, for MPI-related stuff integer, parameter :: psb_mpik_ = int32 ! @@ -61,7 +60,6 @@ module psb_const_mod ! This is always an 8-byte integer. integer, parameter :: longndig=12 integer, parameter :: psb_long_int_k_ = selected_int_kind(longndig) - integer, parameter :: psb_lpk_ = psb_long_int_k_ ! This is always a 4-byte integer, for MPI-related stuff integer, parameter :: psb_mpik_ = kind(1) ! @@ -76,9 +74,6 @@ module psb_const_mod integer(psb_mpik_), parameter :: psb_dpk_ = selected_real_kind(psb_dpk_p_,psb_dpk_r_) #endif - ! - ! These variables will be populated at initialization time. - ! integer(psb_ipk_), save :: psb_sizeof_dp, psb_sizeof_sp integer(psb_ipk_), save :: psb_sizeof_int, psb_sizeof_long_int ! From aaaf4c9f090dcd45feaf6dd568ef5d81ca768460 Mon Sep 17 00:00:00 2001 From: Salvatore Filippone Date: Sun, 18 Feb 2018 09:42:35 +0000 Subject: [PATCH 19/35] New psb_partidx_mod.F90. Merged into psb_util. Updated all test/pargen progs. --- base/modules/psb_const_mod.F90 | 2 + test/pargen/Makefile | 6 +- test/pargen/psb_d_pde2d.f90 | 142 ++++++++++++++---- test/pargen/psb_d_pde3d.f90 | 215 ++++++++++++++------------- test/pargen/psb_s_pde2d.f90 | 167 ++++++++++++++++----- test/pargen/psb_s_pde3d.f90 | 184 +++++++++++++++++------ test/pargen/tryidxijk.f90 | 107 +------------- util/Makefile | 2 +- util/psb_partidx_mod.F90 | 259 +++++++++++++++++++++++++++++++++ util/psb_util_mod.f90 | 3 +- 10 files changed, 769 insertions(+), 318 deletions(-) create mode 100644 util/psb_partidx_mod.F90 diff --git a/base/modules/psb_const_mod.F90 b/base/modules/psb_const_mod.F90 index 80b88ef4..3b3f07f4 100644 --- a/base/modules/psb_const_mod.F90 +++ b/base/modules/psb_const_mod.F90 @@ -41,6 +41,7 @@ module psb_const_mod #endif ! This is always an 8-byte integer. integer, parameter :: psb_long_int_k_ = int64 + integer, parameter :: psb_lpk_ = psb_long_int_k_ ! This is always a 4-byte integer, for MPI-related stuff integer, parameter :: psb_mpik_ = int32 ! @@ -60,6 +61,7 @@ module psb_const_mod ! This is always an 8-byte integer. integer, parameter :: longndig=12 integer, parameter :: psb_long_int_k_ = selected_int_kind(longndig) + integer, parameter :: psb_lpk_ = psb_long_int_k_ ! This is always a 4-byte integer, for MPI-related stuff integer, parameter :: psb_mpik_ = kind(1) ! diff --git a/test/pargen/Makefile b/test/pargen/Makefile index 2690aa09..f79a8551 100644 --- a/test/pargen/Makefile +++ b/test/pargen/Makefile @@ -18,8 +18,8 @@ EXEDIR=./runs all: psb_d_pde3d psb_s_pde3d psb_d_pde2d psb_s_pde2d -tryidxijk: tryidxijk.o - $(FLINK) tryidxijk.o -o tryidxijk $(PSBLAS_LIB) $(LDLIBS) +tryidxijk: tryidxijk.o + $(FLINK) tryidxijk.o -o tryidxijk $(PSBLAS_LIB) $(LDLIBS) /bin/mv tryidxijk $(EXEDIR) psb_d_pde3d: psb_d_pde3d.o @@ -42,7 +42,7 @@ psb_s_pde2d: psb_s_pde2d.o clean: - /bin/rm -f psb_d_pde3d.o psb_s_pde3d.o psb_d_pde2d.o psb_s_pde2d.o *$(.mod) \ + /bin/rm -f psb_d_pde3d.o psb_s_pde3d.o psb_d_pde2d.o psb_s_pde2d.o partidx.o *$(.mod) \ $(EXEDIR)/psb_d_pde3d $(EXEDIR)/psb_s_pde3d $(EXEDIR)/psb_d_pde2d $(EXEDIR)/psb_s_pde2d verycleanlib: (cd ../..; make veryclean) diff --git a/test/pargen/psb_d_pde2d.f90 b/test/pargen/psb_d_pde2d.f90 index 3921780e..175ea8b6 100644 --- a/test/pargen/psb_d_pde2d.f90 +++ b/test/pargen/psb_d_pde2d.f90 @@ -50,10 +50,12 @@ ! ! Note that if b1=b2=c=0., the PDE is the Laplace equation. ! -! In this sample program the index space of the discretized -! computational domain is first numbered sequentially in a standard way, -! then the corresponding vector is distributed according to a BLOCK -! data distribution. +! There are three choices available for data distribution: +! 1. A simple BLOCK distribution +! 2. A ditribution based on arbitrary assignment of indices to processes, +! typically from a graph partitioner +! 3. A 2D distribution in which the unit square is partitioned +! into rectangles, each one assigned to a process. ! module psb_d_pde2d_mod @@ -91,8 +93,9 @@ contains ! the rhs. ! subroutine psb_d_gen_pde2d(ictxt,idim,a,bv,xv,desc_a,afmt,& - & a1,a2,b1,b2,c,g,info,f,amold,vmold,imold,nrl,iv) + & a1,a2,b1,b2,c,g,info,f,amold,vmold,imold,partition,nrl,iv) use psb_base_mod + use psb_util_mod ! ! Discretizes the partial differential equation ! @@ -120,7 +123,7 @@ contains class(psb_d_base_sparse_mat), optional :: amold class(psb_d_base_vect_type), optional :: vmold class(psb_i_base_vect_type), optional :: imold - integer(psb_ipk_), optional :: nrl, iv(:) + integer(psb_ipk_), optional :: partition, nrl,iv(:) ! Local variables. @@ -129,9 +132,13 @@ contains type(psb_d_coo_sparse_mat) :: acoo type(psb_d_csr_sparse_mat) :: acsr real(psb_dpk_) :: zt(nb),x,y,z - integer(psb_ipk_) :: m,n,nnz,glob_row,nlr,i,ii,ib,k + integer(psb_ipk_) :: m,n,nnz,nr,nt,glob_row,nlr,i,j,ii,ib,k, partition_ integer(psb_ipk_) :: ix,iy,iz,ia,indx_owner - integer(psb_ipk_) :: np, iam, nr, nt + ! For 2D partition + integer(psb_ipk_) :: npx,npy,npdims(2),iamx,iamy,mynx,myny + integer(psb_ipk_), allocatable :: bndx(:),bndy(:) + ! Process grid + integer(psb_ipk_) :: np, iam integer(psb_ipk_) :: icoeff integer(psb_ipk_), allocatable :: irow(:),icol(:),myidx(:) real(psb_dpk_), allocatable :: val(:) @@ -161,6 +168,17 @@ contains sqdeltah = deltah*deltah deltah2 = 2.d0* deltah + if (present(partition)) then + if ((1<= partition).and.(partition <= 3)) then + partition_ = partition + else + write(*,*) 'Invalid partition choice ',partition,' defaulting to 3' + partition_ = 3 + end if + else + partition_ = 3 + end if + ! initialize array descriptor and sparse matrix storage. provide an ! estimate of the number of non zeroes @@ -169,7 +187,9 @@ contains nnz = ((n*7)/(np)) if(iam == psb_root_) write(psb_out_unit,'("Generating Matrix (size=",i0,")...")')n - if (.not.present(iv)) then + select case(partition_) + case(1) + ! A BLOCK partition if (present(nrl)) then nr = nrl else @@ -189,27 +209,99 @@ contains call psb_abort(ictxt) return end if - else - if (size(iv) /= m) then - write(psb_err_unit,*) iam, 'Initialization error IV',size(iv),m + + ! + ! First example of use of CDALL: specify for each process a number of + ! contiguous rows + ! + call psb_cdall(ictxt,desc_a,info,nl=nr) + myidx = desc_a%get_global_indices() + nlr = size(myidx) + + case(2) + ! A partition defined by the user through IV + + if (present(iv)) then + if (size(iv) /= m) then + write(psb_err_unit,*) iam, 'Initialization error: wrong IV size',size(iv),m + info = -1 + call psb_barrier(ictxt) + call psb_abort(ictxt) + return + end if + else + write(psb_err_unit,*) iam, 'Initialization error: IV not present' info = -1 call psb_barrier(ictxt) call psb_abort(ictxt) return end if - end if - call psb_barrier(ictxt) - t0 = psb_wtime() - if (present(iv)) then + ! + ! Second example of use of CDALL: specify for each row the + ! process that owns it + ! call psb_cdall(ictxt,desc_a,info,vg=iv) - else - call psb_cdall(ictxt,desc_a,info,nl=nr) - end if + myidx = desc_a%get_global_indices() + nlr = size(myidx) + + case(3) + ! A 2-dimensional partition + + ! A nifty MPI function will split the process list + npdims = 0 + call mpi_dims_create(np,2,npdims,info) + npx = npdims(1) + npy = npdims(2) + + allocate(bndx(0:npx),bndy(0:npy)) + ! We can reuse idx2ijk for process indices as well. + call idx2ijk(iamx,iamy,iam,npx,npy,base=0) + ! Now let's split the 2D square in rectangles + call dist1Didx(bndx,idim,npx) + mynx = bndx(iamx+1)-bndx(iamx) + call dist1Didx(bndy,idim,npy) + myny = bndy(iamy+1)-bndy(iamy) + + ! How many indices do I own? + nlr = mynx*myny + allocate(myidx(nlr)) + ! Now, let's generate the list of indices I own + nr = 0 + do i=bndx(iamx),bndx(iamx+1)-1 + do j=bndy(iamy),bndx(iamy+1)-1 + nr = nr + 1 + call ijk2idx(myidx(nr),i,j,idim,idim) + end do + end do + if (nr /= nlr) then + write(psb_err_unit,*) iam,iamx,iamy, 'Initialization error: NR vs NLR ',& + & nr,nlr,mynx,myny + info = -1 + call psb_barrier(ictxt) + call psb_abort(ictxt) + end if + + ! + ! Third example of use of CDALL: specify for each process + ! the set of global indices it owns. + ! + call psb_cdall(ictxt,desc_a,info,vl=myidx) + + case default + write(psb_err_unit,*) iam, 'Initialization error: should not get here' + info = -1 + call psb_barrier(ictxt) + call psb_abort(ictxt) + return + end select + + if (info == psb_success_) call psb_spall(a,desc_a,info,nnz=nnz) ! define rhs from boundary conditions; also build initial guess if (info == psb_success_) call psb_geall(xv,desc_a,info) if (info == psb_success_) call psb_geall(bv,desc_a,info) + call psb_barrier(ictxt) talc = psb_wtime()-t0 @@ -233,9 +325,6 @@ contains endif - myidx = desc_a%get_global_indices() - nlr = size(myidx) - ! loop over rows belonging to current process in a block ! distribution. @@ -249,13 +338,8 @@ contains ! local matrix pointer glob_row=myidx(i) ! compute gridpoint coordinates - if (mod(glob_row,(idim)) == 0) then - ix = glob_row/(idim) - else - ix = glob_row/(idim)+1 - endif - iy = (glob_row-(ix-1)*idim) - ! x, y + call idx2ijk(ix,iy,glob_row,idim,idim) + ! x, y coordinates x = (ix-1)*deltah y = (iy-1)*deltah diff --git a/test/pargen/psb_d_pde3d.f90 b/test/pargen/psb_d_pde3d.f90 index 616aac89..99df31ed 100644 --- a/test/pargen/psb_d_pde3d.f90 +++ b/test/pargen/psb_d_pde3d.f90 @@ -50,13 +50,14 @@ ! ! Note that if b1=b2=b3=c=0., the PDE is the Laplace equation. ! -! There are two choices available for data distribution: +! There are three choices available for data distribution: ! 1. A simple BLOCK distribution -! 2. A 3D distribution in which the unit cube is partitioned +! 2. A ditribution based on arbitrary assignment of indices to processes, +! typically from a graph partitioner +! 3. A 3D distribution in which the unit cube is partitioned ! into subcubes, each one assigned to a process. ! ! -! module psb_d_pde3d_mod @@ -76,9 +77,6 @@ module psb_d_pde3d_mod module procedure psb_d_gen_pde3d end interface psb_gen_pde3d - integer, private :: dims(3),coords(3) - integer, private, allocatable :: rk2coo(:,:), coo2rk(:,:,:) - contains function d_null_func_3d(x,y,z) result(val) @@ -90,78 +88,15 @@ contains end function d_null_func_3d - ! - ! Given a global index IDX and the domain size (NX,NY,NZ) - ! compute the point coordinates (I,J,K) - ! Optional argument: base 0 or 1, default 1 - ! - ! This mapping is equivalent to a loop nesting: - ! idx = base - ! do i=1,nx - ! do j=1,ny - ! do k=1,nz - ! ijk2idx(i,j,k) = idx - ! idx = idx + 1 - subroutine idx2ijk(i,j,k,idx,nx,ny,nz,base) - integer(psb_ipk_), intent(out) :: i,j,k - integer(psb_ipk_), intent(in) :: idx,nx,ny,nz - integer(psb_ipk_), intent(in), optional :: base - - integer(psb_ipk) :: base_, idx_ - if (present(base)) then - base_ = base - else - base_ = 1 - end if - - idx_ = idx - base_ - - i = idx/(nx*ny) - j = (idx - i*nx*ny)/ny - k = (idx - i*nx*ny -j*ny)/nz - - i = i + base_ - j = j + base_ - k = k + base_ - end subroutine idx2ijk - - ! - ! Given a triple (I,J,K) and the domain size (NX,NY,NZ) - ! compute the global index IDX - ! Optional argument: base 0 or 1, default 1 - ! - ! This mapping is equivalent to a loop nesting: - ! idx = base - ! do i=1,nx - ! do j=1,ny - ! do k=1,nz - ! ijk2idx(i,j,k) = idx - ! idx = idx + 1 - subroutine ijk2idx(idx,i,j,k,nx,ny,nz,base) - integer(psb_ipk_), intent(out) :: idx, - integer(psb_ipk_), intent(in) :: i,j,k,nx,ny,nz - integer(psb_ipk_), intent(in), optional :: base - - integer(psb_ipk) :: base_ - if (present(base)) then - base_ = base - else - base_ = 1 - end if - - - idx = ((i-base_)*nx*ny + (j-base_)*nx + k -base_) + base_ - - end subroutine ijk2idx - ! ! subroutine to allocate and fill in the coefficient matrix and ! the rhs. ! subroutine psb_d_gen_pde3d(ictxt,idim,a,bv,xv,desc_a,afmt,& - & a1,a2,a3,b1,b2,b3,c,g,info,f,amold,vmold,imold,nrl,iv) + & a1,a2,a3,b1,b2,b3,c,g,info,f,amold,vmold,imold,partition,nrl,iv) use psb_base_mod + use psb_util_mod ! ! Discretizes the partial differential equation ! @@ -189,7 +124,7 @@ contains class(psb_d_base_sparse_mat), optional :: amold class(psb_d_base_vect_type), optional :: vmold class(psb_i_base_vect_type), optional :: imold - integer(psb_ipk_), optional :: nrl,iv(:) + integer(psb_ipk_), optional :: partition, nrl,iv(:) ! Local variables. @@ -198,9 +133,13 @@ contains type(psb_d_coo_sparse_mat) :: acoo type(psb_d_csr_sparse_mat) :: acsr real(psb_dpk_) :: zt(nb),x,y,z - integer(psb_ipk_) :: m,n,nnz,glob_row,nlr,i,ii,ib,k + integer(psb_ipk_) :: m,n,nnz,nr,nt,glob_row,nlr,i,j,ii,ib,k, partition_ integer(psb_ipk_) :: ix,iy,iz,ia,indx_owner - integer(psb_ipk_) :: np, iam, nr, nt + ! For 3D partition + integer(psb_ipk_) :: npx,npy,npz, npdims(3),iamx,iamy,iamz,mynx,myny,mynz + integer(psb_ipk_), allocatable :: bndx(:),bndy(:),bndz(:) + ! Process grid + integer(psb_ipk_) :: np, iam integer(psb_ipk_) :: icoeff integer(psb_ipk_), allocatable :: irow(:),icol(:),myidx(:) real(psb_dpk_), allocatable :: val(:) @@ -230,15 +169,28 @@ contains sqdeltah = deltah*deltah deltah2 = 2.d0* deltah + if (present(partition)) then + if ((1<= partition).and.(partition <= 3)) then + partition_ = partition + else + write(*,*) 'Invalid partition choice ',partition,' defaulting to 3' + partition_ = 3 + end if + else + partition_ = 3 + end if + ! initialize array descriptor and sparse matrix storage. provide an ! estimate of the number of non zeroes - + m = idim*idim*idim n = m nnz = ((n*9)/(np)) if(iam == psb_root_) write(psb_out_unit,'("Generating Matrix (size=",i0,")...")')n - if (.not.present(iv)) then + select case(partition_) + case(1) + ! A BLOCK partition if (present(nrl)) then nr = nrl else @@ -258,24 +210,99 @@ contains call psb_abort(ictxt) return end if - else - if (size(iv) /= m) then - write(psb_err_unit,*) iam, 'Initialization error IV',size(iv),m + + ! + ! First example of use of CDALL: specify for each process a number of + ! contiguous rows + ! + call psb_cdall(ictxt,desc_a,info,nl=nr) + myidx = desc_a%get_global_indices() + nlr = size(myidx) + + case(2) + ! A partition defined by the user through IV + + if (present(iv)) then + if (size(iv) /= m) then + write(psb_err_unit,*) iam, 'Initialization error: wrong IV size',size(iv),m + info = -1 + call psb_barrier(ictxt) + call psb_abort(ictxt) + return + end if + else + write(psb_err_unit,*) iam, 'Initialization error: IV not present' info = -1 call psb_barrier(ictxt) call psb_abort(ictxt) return end if - end if - call psb_barrier(ictxt) - t0 = psb_wtime() - if (present(iv)) then + ! + ! Second example of use of CDALL: specify for each row the + ! process that owns it + ! call psb_cdall(ictxt,desc_a,info,vg=iv) - else - call psb_cdall(ictxt,desc_a,info,nl=nr) - end if + myidx = desc_a%get_global_indices() + nlr = size(myidx) + + case(3) + ! A 3-dimensional partition + + ! A nifty MPI function will split the process list + npdims = 0 + call mpi_dims_create(np,3,npdims,info) + npx = npdims(1) + npy = npdims(2) + npz = npdims(3) + + allocate(bndx(0:npx),bndy(0:npy),bndz(0:npz)) + ! We can reuse idx2ijk for process indices as well. + call idx2ijk(iamx,iamy,iamz,iam,npx,npy,npz,base=0) + ! Now let's split the 3D cube in hexahedra + call dist1Didx(bndx,idim,npx) + mynx = bndx(iamx+1)-bndx(iamx) + call dist1Didx(bndy,idim,npy) + myny = bndy(iamy+1)-bndy(iamy) + call dist1Didx(bndz,idim,npz) + mynz = bndz(iamz+1)-bndz(iamz) + + ! How many indices do I own? + nlr = mynx*myny*mynz + allocate(myidx(nlr)) + ! Now, let's generate the list of indices I own + nr = 0 + do i=bndx(iamx),bndx(iamx+1)-1 + do j=bndy(iamy),bndx(iamy+1)-1 + do k=bndz(iamz),bndz(iamz+1)-1 + nr = nr + 1 + call ijk2idx(myidx(nr),i,j,k,idim,idim,idim) + end do + end do + end do + if (nr /= nlr) then + write(psb_err_unit,*) iam,iamx,iamy,iamz, 'Initialization error: NR vs NLR ',& + & nr,nlr,mynx,myny,mynz + info = -1 + call psb_barrier(ictxt) + call psb_abort(ictxt) + end if + ! + ! Third example of use of CDALL: specify for each process + ! the set of global indices it owns. + ! + call psb_cdall(ictxt,desc_a,info,vl=myidx) + + case default + write(psb_err_unit,*) iam, 'Initialization error: should not get here' + info = -1 + call psb_barrier(ictxt) + call psb_abort(ictxt) + return + end select + + if (info == psb_success_) call psb_spall(a,desc_a,info,nnz=nnz) ! define rhs from boundary conditions; also build initial guess if (info == psb_success_) call psb_geall(xv,desc_a,info) @@ -303,8 +330,6 @@ contains goto 9999 endif - myidx = desc_a%get_global_indices() - nlr = size(myidx) ! loop over rows belonging to current process in a block ! distribution. @@ -319,18 +344,8 @@ contains ! local matrix pointer glob_row=myidx(i) ! compute gridpoint coordinates - if (mod(glob_row,(idim*idim)) == 0) then - ix = glob_row/(idim*idim) - else - ix = glob_row/(idim*idim)+1 - endif - if (mod((glob_row-(ix-1)*idim*idim),idim) == 0) then - iy = (glob_row-(ix-1)*idim*idim)/idim - else - iy = (glob_row-(ix-1)*idim*idim)/idim+1 - endif - iz = glob_row-(ix-1)*idim*idim-(iy-1)*idim - ! x, y, x coordinates + call idx2ijk(ix,iy,iz,glob_row,idim,idim,idim) + ! x, y, z coordinates x = (ix-1)*deltah y = (iy-1)*deltah z = (iz-1)*deltah diff --git a/test/pargen/psb_s_pde2d.f90 b/test/pargen/psb_s_pde2d.f90 index ae670c51..48b42799 100644 --- a/test/pargen/psb_s_pde2d.f90 +++ b/test/pargen/psb_s_pde2d.f90 @@ -50,10 +50,12 @@ ! ! Note that if b1=b2=c=0., the PDE is the Laplace equation. ! -! In this sample program the index space of the discretized -! computational domain is first numbered sequentially in a standard way, -! then the corresponding vector is distributed according to a BLOCK -! data distribution. +! There are three choices available for data distribution: +! 1. A simple BLOCK distribution +! 2. A ditribution based on arbitrary assignment of indices to processes, +! typically from a graph partitioner +! 3. A 2D distribution in which the unit square is partitioned +! into rectangles, each one assigned to a process. ! module psb_s_pde2d_mod @@ -91,8 +93,9 @@ contains ! the rhs. ! subroutine psb_s_gen_pde2d(ictxt,idim,a,bv,xv,desc_a,afmt,& - & a1,a2,b1,b2,c,g,info,f,amold,vmold,imold,nrl) + & a1,a2,b1,b2,c,g,info,f,amold,vmold,imold,partition,nrl,iv) use psb_base_mod + use psb_util_mod ! ! Discretizes the partial differential equation ! @@ -120,7 +123,7 @@ contains class(psb_s_base_sparse_mat), optional :: amold class(psb_s_base_vect_type), optional :: vmold class(psb_i_base_vect_type), optional :: imold - integer(psb_ipk_), optional :: nrl + integer(psb_ipk_), optional :: partition, nrl,iv(:) ! Local variables. @@ -129,9 +132,13 @@ contains type(psb_s_coo_sparse_mat) :: acoo type(psb_s_csr_sparse_mat) :: acsr real(psb_spk_) :: zt(nb),x,y,z - integer(psb_ipk_) :: m,n,nnz,glob_row,nlr,i,ii,ib,k + integer(psb_ipk_) :: m,n,nnz,nr,nt,glob_row,nlr,i,j,ii,ib,k, partition_ integer(psb_ipk_) :: ix,iy,iz,ia,indx_owner - integer(psb_ipk_) :: np, iam, nr, nt + ! For 2D partition + integer(psb_ipk_) :: npx,npy,npdims(2),iamx,iamy,mynx,myny + integer(psb_ipk_), allocatable :: bndx(:),bndy(:) + ! Process grid + integer(psb_ipk_) :: np, iam integer(psb_ipk_) :: icoeff integer(psb_ipk_), allocatable :: irow(:),icol(:),myidx(:) real(psb_spk_), allocatable :: val(:) @@ -161,6 +168,17 @@ contains sqdeltah = deltah*deltah deltah2 = 2.e0* deltah + if (present(partition)) then + if ((1<= partition).and.(partition <= 3)) then + partition_ = partition + else + write(*,*) 'Invalid partition choice ',partition,' defaulting to 3' + partition_ = 3 + end if + else + partition_ = 3 + end if + ! initialize array descriptor and sparse matrix storage. provide an ! estimate of the number of non zeroes @@ -169,32 +187,121 @@ contains nnz = ((n*7)/(np)) if(iam == psb_root_) write(psb_out_unit,'("Generating Matrix (size=",i0,")...")')n - if (present(nrl)) then - nr = nrl - else + select case(partition_) + case(1) + ! A BLOCK partition + if (present(nrl)) then + nr = nrl + else + ! + ! Using a simple BLOCK distribution. + ! + nt = (m+np-1)/np + nr = max(0,min(nt,m-(iam*nt))) + end if + + nt = nr + call psb_sum(ictxt,nt) + if (nt /= m) then + write(psb_err_unit,*) iam, 'Initialization error ',nr,nt,m + info = -1 + call psb_barrier(ictxt) + call psb_abort(ictxt) + return + end if + ! - ! Using a simple BLOCK distribution. + ! First example of use of CDALL: specify for each process a number of + ! contiguous rows + ! + call psb_cdall(ictxt,desc_a,info,nl=nr) + myidx = desc_a%get_global_indices() + nlr = size(myidx) + + case(2) + ! A partition defined by the user through IV + + if (present(iv)) then + if (size(iv) /= m) then + write(psb_err_unit,*) iam, 'Initialization error: wrong IV size',size(iv),m + info = -1 + call psb_barrier(ictxt) + call psb_abort(ictxt) + return + end if + else + write(psb_err_unit,*) iam, 'Initialization error: IV not present' + info = -1 + call psb_barrier(ictxt) + call psb_abort(ictxt) + return + end if + ! - nt = (m+np-1)/np - nr = max(0,min(nt,m-(iam*nt))) - end if + ! Second example of use of CDALL: specify for each row the + ! process that owns it + ! + call psb_cdall(ictxt,desc_a,info,vg=iv) + myidx = desc_a%get_global_indices() + nlr = size(myidx) + + case(3) + ! A 2-dimensional partition + + ! A nifty MPI function will split the process list + npdims = 0 + call mpi_dims_create(np,2,npdims,info) + npx = npdims(1) + npy = npdims(2) + + allocate(bndx(0:npx),bndy(0:npy)) + ! We can reuse idx2ijk for process indices as well. + call idx2ijk(iamx,iamy,iam,npx,npy,base=0) + ! Now let's split the 2D square in rectangles + call dist1Didx(bndx,idim,npx) + mynx = bndx(iamx+1)-bndx(iamx) + call dist1Didx(bndy,idim,npy) + myny = bndy(iamy+1)-bndy(iamy) + + ! How many indices do I own? + nlr = mynx*myny + allocate(myidx(nlr)) + ! Now, let's generate the list of indices I own + nr = 0 + do i=bndx(iamx),bndx(iamx+1)-1 + do j=bndy(iamy),bndx(iamy+1)-1 + nr = nr + 1 + call ijk2idx(myidx(nr),i,j,idim,idim) + end do + end do + if (nr /= nlr) then + write(psb_err_unit,*) iam,iamx,iamy, 'Initialization error: NR vs NLR ',& + & nr,nlr,mynx,myny + info = -1 + call psb_barrier(ictxt) + call psb_abort(ictxt) + end if - nt = nr - call psb_sum(ictxt,nt) - if (nt /= m) then - write(psb_err_unit,*) iam, 'Initialization error ',nr,nt,m + ! + ! Third example of use of CDALL: specify for each process + ! the set of global indices it owns. + ! + call psb_cdall(ictxt,desc_a,info,vl=myidx) + + case default + write(psb_err_unit,*) iam, 'Initialization error: should not get here' info = -1 call psb_barrier(ictxt) call psb_abort(ictxt) - return - end if - call psb_barrier(ictxt) - t0 = psb_wtime() - call psb_cdall(ictxt,desc_a,info,nl=nr) + return + end select + + if (info == psb_success_) call psb_spall(a,desc_a,info,nnz=nnz) ! define rhs from boundary conditions; also build initial guess if (info == psb_success_) call psb_geall(xv,desc_a,info) if (info == psb_success_) call psb_geall(bv,desc_a,info) + call psb_barrier(ictxt) talc = psb_wtime()-t0 @@ -218,9 +325,6 @@ contains endif - myidx = desc_a%get_global_indices() - nlr = size(myidx) - ! loop over rows belonging to current process in a block ! distribution. @@ -234,13 +338,8 @@ contains ! local matrix pointer glob_row=myidx(i) ! compute gridpoint coordinates - if (mod(glob_row,(idim)) == 0) then - ix = glob_row/(idim) - else - ix = glob_row/(idim)+1 - endif - iy = (glob_row-(ix-1)*idim) - ! x, y + call idx2ijk(ix,iy,glob_row,idim,idim) + ! x, y coordinates x = (ix-1)*deltah y = (iy-1)*deltah diff --git a/test/pargen/psb_s_pde3d.f90 b/test/pargen/psb_s_pde3d.f90 index e8055d7c..68e05806 100644 --- a/test/pargen/psb_s_pde3d.f90 +++ b/test/pargen/psb_s_pde3d.f90 @@ -50,10 +50,12 @@ ! ! Note that if b1=b2=b3=c=0., the PDE is the Laplace equation. ! -! In this sample program the index space of the discretized -! computational domain is first numbered sequentially in a standard way, -! then the corresponding vector is distributed according to a BLOCK -! data distribution. +! There are three choices available for data distribution: +! 1. A simple BLOCK distribution +! 2. A ditribution based on arbitrary assignment of indices to processes, +! typically from a graph partitioner +! 3. A 3D distribution in which the unit cube is partitioned +! into subcubes, each one assigned to a process. ! ! module psb_s_pde3d_mod @@ -85,14 +87,15 @@ contains end function s_null_func_3d -! -! -! subroutine to allocate and fill in the coefficient matrix and -! the rhs. -! + + ! + ! subroutine to allocate and fill in the coefficient matrix and + ! the rhs. + ! subroutine psb_s_gen_pde3d(ictxt,idim,a,bv,xv,desc_a,afmt,& - & a1,a2,a3,b1,b2,b3,c,g,info,f,amold,vmold,imold,nrl) + & a1,a2,a3,b1,b2,b3,c,g,info,f,amold,vmold,imold,partition,nrl,iv) use psb_base_mod + use psb_util_mod ! ! Discretizes the partial differential equation ! @@ -120,7 +123,7 @@ contains class(psb_s_base_sparse_mat), optional :: amold class(psb_s_base_vect_type), optional :: vmold class(psb_i_base_vect_type), optional :: imold - integer(psb_ipk_), optional :: nrl + integer(psb_ipk_), optional :: partition, nrl,iv(:) ! Local variables. @@ -129,9 +132,13 @@ contains type(psb_s_coo_sparse_mat) :: acoo type(psb_s_csr_sparse_mat) :: acsr real(psb_spk_) :: zt(nb),x,y,z - integer(psb_ipk_) :: m,n,nnz,glob_row,nlr,i,ii,ib,k + integer(psb_ipk_) :: m,n,nnz,nr,nt,glob_row,nlr,i,j,ii,ib,k, partition_ integer(psb_ipk_) :: ix,iy,iz,ia,indx_owner - integer(psb_ipk_) :: np, iam, nr, nt + ! For 3D partition + integer(psb_ipk_) :: npx,npy,npz, npdims(3),iamx,iamy,iamz,mynx,myny,mynz + integer(psb_ipk_), allocatable :: bndx(:),bndy(:),bndz(:) + ! Process grid + integer(psb_ipk_) :: np, iam integer(psb_ipk_) :: icoeff integer(psb_ipk_), allocatable :: irow(:),icol(:),myidx(:) real(psb_spk_), allocatable :: val(:) @@ -161,6 +168,17 @@ contains sqdeltah = deltah*deltah deltah2 = 2.e0* deltah + if (present(partition)) then + if ((1<= partition).and.(partition <= 3)) then + partition_ = partition + else + write(*,*) 'Invalid partition choice ',partition,' defaulting to 3' + partition_ = 3 + end if + else + partition_ = 3 + end if + ! initialize array descriptor and sparse matrix storage. provide an ! estimate of the number of non zeroes @@ -169,29 +187,121 @@ contains nnz = ((n*9)/(np)) if(iam == psb_root_) write(psb_out_unit,'("Generating Matrix (size=",i0,")...")')n - if (present(nrl)) then - nr = nrl - else + select case(partition_) + case(1) + ! A BLOCK partition + if (present(nrl)) then + nr = nrl + else + ! + ! Using a simple BLOCK distribution. + ! + nt = (m+np-1)/np + nr = max(0,min(nt,m-(iam*nt))) + end if + + nt = nr + call psb_sum(ictxt,nt) + if (nt /= m) then + write(psb_err_unit,*) iam, 'Initialization error ',nr,nt,m + info = -1 + call psb_barrier(ictxt) + call psb_abort(ictxt) + return + end if + ! - ! Using a simple BLOCK distribution. + ! First example of use of CDALL: specify for each process a number of + ! contiguous rows + ! + call psb_cdall(ictxt,desc_a,info,nl=nr) + myidx = desc_a%get_global_indices() + nlr = size(myidx) + + case(2) + ! A partition defined by the user through IV + + if (present(iv)) then + if (size(iv) /= m) then + write(psb_err_unit,*) iam, 'Initialization error: wrong IV size',size(iv),m + info = -1 + call psb_barrier(ictxt) + call psb_abort(ictxt) + return + end if + else + write(psb_err_unit,*) iam, 'Initialization error: IV not present' + info = -1 + call psb_barrier(ictxt) + call psb_abort(ictxt) + return + end if + ! - nt = (m+np-1)/np - nr = max(0,min(nt,m-(iam*nt))) - end if + ! Second example of use of CDALL: specify for each row the + ! process that owns it + ! + call psb_cdall(ictxt,desc_a,info,vg=iv) + myidx = desc_a%get_global_indices() + nlr = size(myidx) + + case(3) + ! A 3-dimensional partition + + ! A nifty MPI function will split the process list + npdims = 0 + call mpi_dims_create(np,3,npdims,info) + npx = npdims(1) + npy = npdims(2) + npz = npdims(3) + + allocate(bndx(0:npx),bndy(0:npy),bndz(0:npz)) + ! We can reuse idx2ijk for process indices as well. + call idx2ijk(iamx,iamy,iamz,iam,npx,npy,npz,base=0) + ! Now let's split the 3D cube in hexahedra + call dist1Didx(bndx,idim,npx) + mynx = bndx(iamx+1)-bndx(iamx) + call dist1Didx(bndy,idim,npy) + myny = bndy(iamy+1)-bndy(iamy) + call dist1Didx(bndz,idim,npz) + mynz = bndz(iamz+1)-bndz(iamz) + + ! How many indices do I own? + nlr = mynx*myny*mynz + allocate(myidx(nlr)) + ! Now, let's generate the list of indices I own + nr = 0 + do i=bndx(iamx),bndx(iamx+1)-1 + do j=bndy(iamy),bndx(iamy+1)-1 + do k=bndz(iamz),bndz(iamz+1)-1 + nr = nr + 1 + call ijk2idx(myidx(nr),i,j,k,idim,idim,idim) + end do + end do + end do + if (nr /= nlr) then + write(psb_err_unit,*) iam,iamx,iamy,iamz, 'Initialization error: NR vs NLR ',& + & nr,nlr,mynx,myny,mynz + info = -1 + call psb_barrier(ictxt) + call psb_abort(ictxt) + end if - nt = nr - call psb_sum(ictxt,nt) - if (nt /= m) then - write(psb_err_unit,*) iam, 'Initialization error ',nr,nt,m + ! + ! Third example of use of CDALL: specify for each process + ! the set of global indices it owns. + ! + call psb_cdall(ictxt,desc_a,info,vl=myidx) + + case default + write(psb_err_unit,*) iam, 'Initialization error: should not get here' info = -1 call psb_barrier(ictxt) call psb_abort(ictxt) - return - end if + return + end select - call psb_barrier(ictxt) - t0 = psb_wtime() - call psb_cdall(ictxt,desc_a,info,nl=nr) + if (info == psb_success_) call psb_spall(a,desc_a,info,nnz=nnz) ! define rhs from boundary conditions; also build initial guess if (info == psb_success_) call psb_geall(xv,desc_a,info) @@ -219,8 +329,6 @@ contains goto 9999 endif - myidx = desc_a%get_global_indices() - nlr = size(myidx) ! loop over rows belonging to current process in a block ! distribution. @@ -235,18 +343,8 @@ contains ! local matrix pointer glob_row=myidx(i) ! compute gridpoint coordinates - if (mod(glob_row,(idim*idim)) == 0) then - ix = glob_row/(idim*idim) - else - ix = glob_row/(idim*idim)+1 - endif - if (mod((glob_row-(ix-1)*idim*idim),idim) == 0) then - iy = (glob_row-(ix-1)*idim*idim)/idim - else - iy = (glob_row-(ix-1)*idim*idim)/idim+1 - endif - iz = glob_row-(ix-1)*idim*idim-(iy-1)*idim - ! x, y, x coordinates + call idx2ijk(ix,iy,iz,glob_row,idim,idim,idim) + ! x, y, z coordinates x = (ix-1)*deltah y = (iy-1)*deltah z = (iz-1)*deltah diff --git a/test/pargen/tryidxijk.f90 b/test/pargen/tryidxijk.f90 index f7c09465..68404ac4 100644 --- a/test/pargen/tryidxijk.f90 +++ b/test/pargen/tryidxijk.f90 @@ -1,5 +1,5 @@ program tryyidxijk - use psb_base_mod, only : psb_ipk_ + use psb_util_mod implicit none integer(psb_ipk_) :: nx,ny,nz, base, i, j, k, idx,npx,npy,npz @@ -41,109 +41,4 @@ program tryyidxijk write(*,*) 'SZZ:',v(1:npz)-v(0:npz-1) -contains - ! - ! Given a global index IDX and the domain size (NX,NY,NZ) - ! compute the point coordinates (I,J,K) - ! Optional argument: base 0 or 1, default 1 - ! - ! This mapping is equivalent to a loop nesting: - ! idx = base - ! do i=1,nx - ! do j=1,ny - ! do k=1,nz - ! ijk2idx(i,j,k) = idx - ! idx = idx + 1 - subroutine idx2ijk(i,j,k,idx,nx,ny,nz,base) - use psb_base_mod, only : psb_ipk_ - implicit none - integer(psb_ipk_), intent(out) :: i,j,k - integer(psb_ipk_), intent(in) :: idx,nx,ny,nz - integer(psb_ipk_), intent(in), optional :: base - - integer(psb_ipk_) :: base_, idx_ - if (present(base)) then - base_ = base - else - base_ = 1 - end if - - idx_ = idx - base_ - - k = mod(idx_,nz) + base_ - j = mod(idx_/nz,ny) + base_ - i = mod(idx_/(ny*nz),nx) + base_ - - end subroutine idx2ijk - - ! - ! Given a triple (I,J,K) and the domain size (NX,NY,NZ) - ! compute the global index IDX - ! Optional argument: base 0 or 1, default 1 - ! - ! This mapping is equivalent to a loop nesting: - ! idx = base - ! do i=1,nx - ! do j=1,ny - ! do k=1,nz - ! ijk2idx(i,j,k) = idx - ! idx = idx + 1 - subroutine ijk2idx(idx,i,j,k,nx,ny,nz,base) - use psb_base_mod, only : psb_ipk_ - implicit none - integer(psb_ipk_), intent(out) :: idx - integer(psb_ipk_), intent(in) :: i,j,k,nx,ny,nz - integer(psb_ipk_), intent(in), optional :: base - - integer(psb_ipk_) :: base_ - if (present(base)) then - base_ = base - else - base_ = 1 - end if - - idx = ((i-base_)*nz*ny + (j-base_)*nz + k - base_) + base_ - - end subroutine ijk2idx - - ! - ! dist1Didx - ! Given an index space [base : N-(1-base)] and - ! a set of NP processes, split the index base as - ! evenly as possible, i.e. difference in size - ! between any two processes is either 0 or 1, - ! then return the boundaries in a vector - ! such that - ! V(P) : first index owned by process P - ! V(P+1) : first index owned by process P+1 - ! - subroutine dist1Didx(v,n,np,base) - use psb_base_mod, only : psb_ipk_ - implicit none - integer(psb_ipk_), intent(out) :: v(:) - integer(psb_ipk_), intent(in) :: n, np - integer(psb_ipk_), intent(in), optional :: base - ! - integer(psb_ipk_) :: base_, nb, i - - if (present(base)) then - base_ = base - else - base_ = 1 - end if - - nb = n/np - do i=1,mod(n,np) - v(i) = nb + 1 - end do - do i=mod(n,np)+1,np - v(i) = nb - end do - v(2:np+1) = v(1:np) - v(1) = base_ - do i=2,np+1 - v(i) = v(i) + v(i-1) - end do - end subroutine dist1Didx - end program tryyidxijk diff --git a/util/Makefile b/util/Makefile index f66b79ab..1359a762 100644 --- a/util/Makefile +++ b/util/Makefile @@ -7,7 +7,7 @@ MODDIR=../modules HERE=. -BASEOBJS= psb_blockpart_mod.o psb_metispart_mod.o \ +BASEOBJS= psb_blockpart_mod.o psb_metispart_mod.o psb_partidx_mod.o \ psb_hbio_mod.o psb_mmio_mod.o psb_mat_dist_mod.o \ psb_s_mat_dist_mod.o psb_d_mat_dist_mod.o psb_c_mat_dist_mod.o psb_z_mat_dist_mod.o \ psb_renum_mod.o psb_gps_mod.o diff --git a/util/psb_partidx_mod.F90 b/util/psb_partidx_mod.F90 new file mode 100644 index 00000000..9b294e8f --- /dev/null +++ b/util/psb_partidx_mod.F90 @@ -0,0 +1,259 @@ +! +! Parallel Sparse BLAS version 3.5 +! (C) Copyright 2006-2018 +! Salvatore Filippone +! Alfredo Buttari +! +! Redistribution and use in source and binary forms, with or without +! modification, are permitted provided that the following conditions +! are met: +! 1. Redistributions of source code must retain the above copyright +! notice, this list of conditions and the following disclaimer. +! 2. Redistributions in binary form must reproduce the above copyright +! notice, this list of conditions, and the following disclaimer in the +! documentation and/or other materials provided with the distribution. +! 3. The name of the PSBLAS group or the names of its contributors may +! not be used to endorse or promote products derived from this +! software without specific written permission. +! +! THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +! ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED +! TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +! PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE PSBLAS GROUP OR ITS CONTRIBUTORS +! BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +! CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +! SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +! INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +! CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +! ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +! POSSIBILITY OF SUCH DAMAGE. +! +! +! +! Purpose: +! Proide functions to handle a distribution of a general +! rectangular 2/3/n-dimensional domain onto +! a rectangular 2/3/n-dimensional grid of processes +! +! See test/pargen/psb_X_pdeNd for examples of usage +! +module psb_partidx_mod + use psb_base_mod, only : psb_ipk_ + + interface idx2ijk + module procedure idx2ijk3d, idx2ijkv, idx2ijk2d + end interface idx2ijk + + interface ijk2idx + module procedure ijk2idx3d, ijk2idxv, ijk2idx2d + end interface ijk2idx + + +contains + ! + ! Given a global index IDX and the domain size (NX,NY,NZ) + ! compute the point coordinates (I,J,K) + ! Optional argument: base 0 or 1, default 1 + ! + ! This mapping is equivalent to a loop nesting: + ! idx = base + ! do i=1,nx + ! do j=1,ny + ! do k=1,nz + ! ijk2idx(i,j,k) = idx + ! idx = idx + 1 + subroutine idx2ijk3d(i,j,k,idx,nx,ny,nz,base) + use psb_base_mod, only : psb_ipk_ + implicit none + integer(psb_ipk_), intent(out) :: i,j,k + integer(psb_ipk_), intent(in) :: idx,nx,ny,nz + integer(psb_ipk_), intent(in), optional :: base + + integer(psb_ipk_) :: coords(3) + + call idx2ijk(coords,idx,[nx,ny,nz],base) + + k = coords(3) + j = coords(2) + i = coords(1) + + end subroutine idx2ijk3d + + subroutine idx2ijk2d(i,j,idx,nx,ny,base) + use psb_base_mod, only : psb_ipk_ + implicit none + integer(psb_ipk_), intent(out) :: i,j + integer(psb_ipk_), intent(in) :: idx,nx,ny + integer(psb_ipk_), intent(in), optional :: base + + integer(psb_ipk_) :: coords(2) + + call idx2ijk(coords,idx,[nx,ny],base) + + j = coords(2) + i = coords(1) + + end subroutine idx2ijk2d + + ! + ! Given a global index IDX and the domain size (NX,NY,NZ) + ! compute the point coordinates (I,J,K) + ! Optional argument: base 0 or 1, default 1 + ! + ! This mapping is equivalent to a loop nesting: + ! idx = base + ! do i=1,nx + ! do j=1,ny + ! do k=1,nz + ! ijk2idx(i,j,k) = idx + ! idx = idx + 1 + subroutine idx2ijkv(coords,idx,dims,base) + use psb_base_mod, only : psb_ipk_ + implicit none + integer(psb_ipk_), intent(out) :: coords(:) + integer(psb_ipk_), intent(in) :: idx,dims(:) + integer(psb_ipk_), intent(in), optional :: base + + integer(psb_ipk_) :: base_, idx_, i, sz + if (present(base)) then + base_ = base + else + base_ = 1 + end if + + idx_ = idx - base_ + + if (size(coords) < size(dims)) then + write(0,*) 'Error: size mismatch ',size(coords),size(dims) + coords = 0 + return + end if + + ! + ! This code is equivalent to (3D case) + ! k = mod(idx_,nz) + base_ + ! j = mod(idx_/nz,ny) + base_ + ! i = mod(idx_/(nx*ny),nx) + base_ + ! + do i=size(dims),1,-1 + coords(i) = mod(idx_,dims(i)) + base_ + idx_ = idx_ / dims(i) + end do + + end subroutine idx2ijkv + + ! + ! Given a triple (I,J,K) and the domain size (NX,NY,NZ) + ! compute the global index IDX + ! Optional argument: base 0 or 1, default 1 + ! + ! This mapping is equivalent to a loop nesting: + ! idx = base + ! do i=1,nx + ! do j=1,ny + ! do k=1,nz + ! ijk2idx(i,j,k) = idx + ! idx = idx + 1 + subroutine ijk2idxv(idx,coords,dims,base) + use psb_base_mod, only : psb_ipk_ + implicit none + integer(psb_ipk_), intent(in) :: coords(:),dims(:) + integer(psb_ipk_), intent(out) :: idx + integer(psb_ipk_), intent(in), optional :: base + + integer(psb_ipk_) :: base_, i, sz + if (present(base)) then + base_ = base + else + base_ = 1 + end if + sz = size(coords) + if (sz /= size(dims)) then + write(0,*) 'Error: size mismatch ',size(coords),size(dims) + idx = 0 + return + end if + + idx = coords(1) - base_ + do i=2, sz + idx = (idx * dims(i)) + coords(i) - base_ + end do + idx = idx + base_ + + end subroutine ijk2idxv + ! + ! Given a triple (I,J,K) and the domain size (NX,NY,NZ) + ! compute the global index IDX + ! Optional argument: base 0 or 1, default 1 + ! + ! This mapping is equivalent to a loop nesting: + ! idx = base + ! do i=1,nx + ! do j=1,ny + ! do k=1,nz + ! ijk2idx(i,j,k) = idx + ! idx = idx + 1 + subroutine ijk2idx3d(idx,i,j,k,nx,ny,nz,base) + use psb_base_mod, only : psb_ipk_ + implicit none + integer(psb_ipk_), intent(out) :: idx + integer(psb_ipk_), intent(in) :: i,j,k,nx,ny,nz + integer(psb_ipk_), intent(in), optional :: base + + ! idx = ((i-base_)*nz*ny + (j-base_)*nz + k - base_) + base_ + call ijk2idx(idx,[i,j,k],[nx,ny,nz],base) + end subroutine ijk2idx3d + + subroutine ijk2idx2d(idx,i,j,nx,ny,base) + use psb_base_mod, only : psb_ipk_ + implicit none + integer(psb_ipk_), intent(out) :: idx + integer(psb_ipk_), intent(in) :: i,j,nx,ny + integer(psb_ipk_), intent(in), optional :: base + + ! idx = ((i-base_)*ny + (j-base_) + base_ + call ijk2idx(idx,[i,j],[nx,ny],base) + end subroutine ijk2idx2d + + ! + ! dist1Didx + ! Given an index space [base : N-(1-base)] and + ! a set of NP processes, split the index base as + ! evenly as possible, i.e. difference in size + ! between any two processes is either 0 or 1, + ! then return the boundaries in a vector + ! such that + ! V(P) : first index owned by process P + ! V(P+1) : first index owned by process P+1 + ! + subroutine dist1Didx(v,n,np,base) + use psb_base_mod, only : psb_ipk_ + implicit none + integer(psb_ipk_), intent(out) :: v(:) + integer(psb_ipk_), intent(in) :: n, np + integer(psb_ipk_), intent(in), optional :: base + ! + integer(psb_ipk_) :: base_, nb, i + + if (present(base)) then + base_ = base + else + base_ = 1 + end if + + nb = n/np + do i=1,mod(n,np) + v(i) = nb + 1 + end do + do i=mod(n,np)+1,np + v(i) = nb + end do + v(2:np+1) = v(1:np) + v(1) = base_ + do i=2,np+1 + v(i) = v(i) + v(i-1) + end do + end subroutine dist1Didx + +end module psb_partidx_mod + diff --git a/util/psb_util_mod.f90 b/util/psb_util_mod.f90 index 42f536ee..6743a2d4 100644 --- a/util/psb_util_mod.f90 +++ b/util/psb_util_mod.f90 @@ -34,11 +34,10 @@ module psb_util_mod use psb_blockpart_mod use psb_metispart_mod + use psb_partidx_mod use psb_hbio_mod use psb_mmio_mod use psb_mat_dist_mod use psb_renum_mod -!!$ use psb_d_genpde_mod -!!$ use psb_s_genpde_mod end module psb_util_mod From 10df8946816881336fe5836879b9d156e9bbae38 Mon Sep 17 00:00:00 2001 From: Salvatore Filippone Date: Sun, 18 Feb 2018 09:46:48 +0000 Subject: [PATCH 20/35] Clean up tests for partidx --- test/pargen/Makefile | 6 +----- test/pargen/tryidxijk.f90 | 44 --------------------------------------- 2 files changed, 1 insertion(+), 49 deletions(-) delete mode 100644 test/pargen/tryidxijk.f90 diff --git a/test/pargen/Makefile b/test/pargen/Makefile index f79a8551..72a2a512 100644 --- a/test/pargen/Makefile +++ b/test/pargen/Makefile @@ -18,10 +18,6 @@ EXEDIR=./runs all: psb_d_pde3d psb_s_pde3d psb_d_pde2d psb_s_pde2d -tryidxijk: tryidxijk.o - $(FLINK) tryidxijk.o -o tryidxijk $(PSBLAS_LIB) $(LDLIBS) - /bin/mv tryidxijk $(EXEDIR) - psb_d_pde3d: psb_d_pde3d.o $(FLINK) psb_d_pde3d.o -o psb_d_pde3d $(PSBLAS_LIB) $(LDLIBS) /bin/mv psb_d_pde3d $(EXEDIR) @@ -42,7 +38,7 @@ psb_s_pde2d: psb_s_pde2d.o clean: - /bin/rm -f psb_d_pde3d.o psb_s_pde3d.o psb_d_pde2d.o psb_s_pde2d.o partidx.o *$(.mod) \ + /bin/rm -f psb_d_pde3d.o psb_s_pde3d.o psb_d_pde2d.o psb_s_pde2d.o *$(.mod) \ $(EXEDIR)/psb_d_pde3d $(EXEDIR)/psb_s_pde3d $(EXEDIR)/psb_d_pde2d $(EXEDIR)/psb_s_pde2d verycleanlib: (cd ../..; make veryclean) diff --git a/test/pargen/tryidxijk.f90 b/test/pargen/tryidxijk.f90 deleted file mode 100644 index 68404ac4..00000000 --- a/test/pargen/tryidxijk.f90 +++ /dev/null @@ -1,44 +0,0 @@ -program tryyidxijk - use psb_util_mod - implicit none - - integer(psb_ipk_) :: nx,ny,nz, base, i, j, k, idx,npx,npy,npz - integer(psb_ipk_) :: ic, jc, kc, idxc - integer(psb_ipk_), allocatable :: v(:) - write(*,*) 'nx,ny,nz,base? ' - read(*,*) nx,ny,nz, base - - idx = base - do i=base,nx-(1-base) - do j=base,ny-(1-base) - do k=base,nz-(1-base) - call idx2ijk(ic,jc,kc,idx,nx,ny,nz,base) - call ijk2idx(idxc,i,j,k,nx,ny,nz,base) - ! write(*,*) i,j,k,idx,':',ic,jc,kc,idxc - if ((i/=ic).or.& - & (j/=jc).or.& - & (k/=kc).or.& - & (idxc/=idx))then - write(*,*) 'Error:',i,j,k,idx,':',ic,jc,kc,idxc - stop - end if - idx = idx + 1 - end do - end do - end do - write(*,*) 'Ok ' - write(*,*) 'npx,npy,npz? ' - read(*,*) npx,npy,npz - allocate(v(0:max(npx,npy,npz))) - call dist1Didx(v,nx,npx) - write(*,*) ' X:',v(0:npx) - write(*,*) 'SZX:',v(1:npx)-v(0:npx-1) - call dist1Didx(v,ny,npy) - write(*,*) ' Y:',v(0:npy) - write(*,*) 'SZY:',v(1:npy)-v(0:npy-1) - call dist1Didx(v,nz,npz) - write(*,*) ' Z:',v(0:npz) - write(*,*) 'SZZ:',v(1:npz)-v(0:npz-1) - - -end program tryyidxijk From df94b86d931c32a902c48324a750c299d4a5424b Mon Sep 17 00:00:00 2001 From: Salvatore Filippone Date: Mon, 26 Feb 2018 18:01:17 +0000 Subject: [PATCH 21/35] partidx fixes. Fixed 2/3D bug in test/pargen. --- docs/src/util.tex | 2 +- test/pargen/psb_d_pde2d.f90 | 20 +++++++++---------- test/pargen/psb_d_pde3d.f90 | 28 +++++++++++++------------- test/pargen/psb_s_pde2d.f90 | 40 ++++++++++++++++++------------------- test/pargen/psb_s_pde3d.f90 | 36 +++++++++++++++++---------------- util/psb_partidx_mod.F90 | 2 +- 6 files changed, 65 insertions(+), 63 deletions(-) diff --git a/docs/src/util.tex b/docs/src/util.tex index 2957c652..4d1ba295 100644 --- a/docs/src/util.tex +++ b/docs/src/util.tex @@ -1,7 +1,7 @@ \section{Utilities} \label{sec:util} -We have some utitlities available for input and output of +We have some utilities available for input and output of sparse matrices; the interfaces to these routines are available in the module \verb|psb_util_mod|. diff --git a/test/pargen/psb_d_pde2d.f90 b/test/pargen/psb_d_pde2d.f90 index 175ea8b6..64ef9ba9 100644 --- a/test/pargen/psb_d_pde2d.f90 +++ b/test/pargen/psb_d_pde2d.f90 @@ -145,7 +145,7 @@ contains ! deltah dimension of each grid cell ! deltat discretization time real(psb_dpk_) :: deltah, sqdeltah, deltah2 - real(psb_dpk_), parameter :: rhs=0.d0,one=1.d0,zero=0.d0 + real(psb_dpk_), parameter :: rhs=dzero,one=done,zero=dzero real(psb_dpk_) :: t0, t1, t2, t3, tasb, talc, ttot, tgen, tcdasb integer(psb_ipk_) :: err_act procedure(d_func_2d), pointer :: f_ @@ -164,9 +164,9 @@ contains f_ => d_null_func_2d end if - deltah = 1.d0/(idim+2) + deltah = done/(idim+2) sqdeltah = deltah*deltah - deltah2 = 2.d0* deltah + deltah2 = (2*done)* deltah if (present(partition)) then if ((1<= partition).and.(partition <= 3)) then @@ -269,7 +269,7 @@ contains ! Now, let's generate the list of indices I own nr = 0 do i=bndx(iamx),bndx(iamx+1)-1 - do j=bndy(iamy),bndx(iamy+1)-1 + do j=bndy(iamy),bndy(iamy+1)-1 nr = nr + 1 call ijk2idx(myidx(nr),i,j,idim,idim) end do @@ -367,7 +367,7 @@ contains endif ! term depending on (x,y) - val(icoeff)=2.d0*(a1(x,y) + a2(x,y))/sqdeltah + c(x,y) + val(icoeff)=(2*done)*(a1(x,y) + a2(x,y))/sqdeltah + c(x,y) icol(icoeff) = (ix-1)*idim+iy irow(icoeff) = glob_row icoeff = icoeff+1 @@ -481,7 +481,7 @@ program psb_d_pde2d integer(psb_ipk_) :: idim ! miscellaneous - real(psb_dpk_), parameter :: one = 1.d0 + real(psb_dpk_), parameter :: one = done real(psb_dpk_) :: t1, t2, tprec ! sparse matrix and preconditioner @@ -749,13 +749,13 @@ contains use psb_base_mod, only : psb_dpk_ real(psb_dpk_) :: b1 real(psb_dpk_), intent(in) :: x,y - b1=1.d0/sqrt(2.d0) + b1=done/sqrt((2*done)) end function b1 function b2(x,y) use psb_base_mod, only : psb_dpk_ real(psb_dpk_) :: b2 real(psb_dpk_), intent(in) :: x,y - b2=1.d0/sqrt(2.d0) + b2=done/sqrt((2*done)) end function b2 function c(x,y) use psb_base_mod, only : psb_dpk_ @@ -767,13 +767,13 @@ contains use psb_base_mod, only : psb_dpk_ real(psb_dpk_) :: a1 real(psb_dpk_), intent(in) :: x,y - a1=1.d0/80 + a1=done/80 end function a1 function a2(x,y) use psb_base_mod, only : psb_dpk_ real(psb_dpk_) :: a2 real(psb_dpk_), intent(in) :: x,y - a2=1.d0/80 + a2=done/80 end function a2 function g(x,y) use psb_base_mod, only : psb_dpk_, done, dzero diff --git a/test/pargen/psb_d_pde3d.f90 b/test/pargen/psb_d_pde3d.f90 index 99df31ed..5816129a 100644 --- a/test/pargen/psb_d_pde3d.f90 +++ b/test/pargen/psb_d_pde3d.f90 @@ -146,7 +146,7 @@ contains ! deltah dimension of each grid cell ! deltat discretization time real(psb_dpk_) :: deltah, sqdeltah, deltah2 - real(psb_dpk_), parameter :: rhs=0.d0,one=1.d0,zero=0.d0 + real(psb_dpk_), parameter :: rhs=dzero,one=done,zero=dzero real(psb_dpk_) :: t0, t1, t2, t3, tasb, talc, ttot, tgen, tcdasb integer(psb_ipk_) :: err_act procedure(d_func_3d), pointer :: f_ @@ -165,9 +165,9 @@ contains f_ => d_null_func_3d end if - deltah = 1.d0/(idim+2) + deltah = done/(idim+2) sqdeltah = deltah*deltah - deltah2 = 2.d0* deltah + deltah2 = (2*done)* deltah if (present(partition)) then if ((1<= partition).and.(partition <= 3)) then @@ -273,7 +273,7 @@ contains ! Now, let's generate the list of indices I own nr = 0 do i=bndx(iamx),bndx(iamx+1)-1 - do j=bndy(iamy),bndx(iamy+1)-1 + do j=bndy(iamy),bndy(iamy+1)-1 do k=bndz(iamz),bndz(iamz+1)-1 nr = nr + 1 call ijk2idx(myidx(nr),i,j,k,idim,idim,idim) @@ -382,7 +382,7 @@ contains endif ! term depending on (x,y,z) - val(icoeff)=2.d0*(a1(x,y,z)+a2(x,y,z)+a3(x,y,z))/sqdeltah & + val(icoeff)=(2*done)*(a1(x,y,z)+a2(x,y,z)+a3(x,y,z))/sqdeltah & & + c(x,y,z) icol(icoeff) = (ix-1)*idim*idim+(iy-1)*idim+(iz) irow(icoeff) = glob_row @@ -420,7 +420,7 @@ contains if(info /= psb_success_) exit call psb_geins(ib,myidx(ii:ii+ib-1),zt(1:ib),bv,desc_a,info) if(info /= psb_success_) exit - zt(:)=0.d0 + zt(:)=dzero call psb_geins(ib,myidx(ii:ii+ib-1),zt(1:ib),xv,desc_a,info) if(info /= psb_success_) exit end do @@ -507,7 +507,7 @@ program psb_d_pde3d integer(psb_ipk_) :: idim ! miscellaneous - real(psb_dpk_), parameter :: one = 1.d0 + real(psb_dpk_), parameter :: one = done real(psb_dpk_) :: t1, t2, tprec ! sparse matrix and preconditioner @@ -780,43 +780,43 @@ contains use psb_base_mod, only : psb_dpk_ real(psb_dpk_) :: b1 real(psb_dpk_), intent(in) :: x,y,z - b1=1.d0/sqrt(3.d0) + b1=done/sqrt((3*done)) end function b1 function b2(x,y,z) use psb_base_mod, only : psb_dpk_ real(psb_dpk_) :: b2 real(psb_dpk_), intent(in) :: x,y,z - b2=1.d0/sqrt(3.d0) + b2=done/sqrt((3*done)) end function b2 function b3(x,y,z) use psb_base_mod, only : psb_dpk_ real(psb_dpk_) :: b3 real(psb_dpk_), intent(in) :: x,y,z - b3=1.d0/sqrt(3.d0) + b3=done/sqrt((3*done)) end function b3 function c(x,y,z) use psb_base_mod, only : psb_dpk_ real(psb_dpk_) :: c real(psb_dpk_), intent(in) :: x,y,z - c=0.d0 + c=dzero end function c function a1(x,y,z) use psb_base_mod, only : psb_dpk_ real(psb_dpk_) :: a1 real(psb_dpk_), intent(in) :: x,y,z - a1=1.d0/80 + a1=done/80 end function a1 function a2(x,y,z) use psb_base_mod, only : psb_dpk_ real(psb_dpk_) :: a2 real(psb_dpk_), intent(in) :: x,y,z - a2=1.d0/80 + a2=done/80 end function a2 function a3(x,y,z) use psb_base_mod, only : psb_dpk_ real(psb_dpk_) :: a3 real(psb_dpk_), intent(in) :: x,y,z - a3=1.d0/80 + a3=done/80 end function a3 function g(x,y,z) use psb_base_mod, only : psb_dpk_, done, dzero diff --git a/test/pargen/psb_s_pde2d.f90 b/test/pargen/psb_s_pde2d.f90 index 48b42799..885c011e 100644 --- a/test/pargen/psb_s_pde2d.f90 +++ b/test/pargen/psb_s_pde2d.f90 @@ -63,31 +63,31 @@ module psb_s_pde2d_mod & psb_sspmat_type, psb_s_vect_type, szero,& & psb_s_base_sparse_mat, psb_s_base_vect_type, psb_i_base_vect_type - interface function s_func_2d(x,y) result(val) import :: psb_spk_ real(psb_spk_), intent(in) :: x,y real(psb_spk_) :: val end function s_func_2d - end interface + end interface - interface psb_gen_pde2d - module procedure psb_s_gen_pde2d + interface psb_gen_pde2d + module procedure psb_s_gen_pde2d end interface psb_gen_pde2d - + contains - + function s_null_func_2d(x,y) result(val) real(psb_spk_), intent(in) :: x,y real(psb_spk_) :: val - + val = szero end function s_null_func_2d + ! ! subroutine to allocate and fill in the coefficient matrix and ! the rhs. @@ -145,7 +145,7 @@ contains ! deltah dimension of each grid cell ! deltat discretization time real(psb_spk_) :: deltah, sqdeltah, deltah2 - real(psb_spk_), parameter :: rhs=0.e0,one=1.e0,zero=0.e0 + real(psb_spk_), parameter :: rhs=szero,one=sone,zero=szero real(psb_dpk_) :: t0, t1, t2, t3, tasb, talc, ttot, tgen, tcdasb integer(psb_ipk_) :: err_act procedure(s_func_2d), pointer :: f_ @@ -164,9 +164,9 @@ contains f_ => s_null_func_2d end if - deltah = 1.e0/(idim+2) + deltah = sone/(idim+2) sqdeltah = deltah*deltah - deltah2 = 2.e0* deltah + deltah2 = (2*sone)* deltah if (present(partition)) then if ((1<= partition).and.(partition <= 3)) then @@ -269,7 +269,7 @@ contains ! Now, let's generate the list of indices I own nr = 0 do i=bndx(iamx),bndx(iamx+1)-1 - do j=bndy(iamy),bndx(iamy+1)-1 + do j=bndy(iamy),bndy(iamy+1)-1 nr = nr + 1 call ijk2idx(myidx(nr),i,j,idim,idim) end do @@ -367,7 +367,7 @@ contains endif ! term depending on (x,y) - val(icoeff)=2.e0*(a1(x,y) + a2(x,y))/sqdeltah + c(x,y) + val(icoeff)=(2*sone)*(a1(x,y) + a2(x,y))/sqdeltah + c(x,y) icol(icoeff) = (ix-1)*idim+iy irow(icoeff) = glob_row icoeff = icoeff+1 @@ -395,7 +395,7 @@ contains if(info /= psb_success_) exit call psb_geins(ib,myidx(ii:ii+ib-1),zt(1:ib),bv,desc_a,info) if(info /= psb_success_) exit - zt(:)=0.e0 + zt(:)=0.d0 call psb_geins(ib,myidx(ii:ii+ib-1),zt(1:ib),xv,desc_a,info) if(info /= psb_success_) exit end do @@ -481,7 +481,7 @@ program psb_s_pde2d integer(psb_ipk_) :: idim ! miscellaneous - real(psb_spk_), parameter :: one = 1.e0 + real(psb_spk_), parameter :: one = sone real(psb_dpk_) :: t1, t2, tprec ! sparse matrix and preconditioner @@ -741,6 +741,7 @@ contains write(iout,*)' >= 1 do tracing every itrace' write(iout,*)' iterations ' end subroutine pr_usage + ! ! functions parametrizing the differential equation ! @@ -748,31 +749,31 @@ contains use psb_base_mod, only : psb_spk_ real(psb_spk_) :: b1 real(psb_spk_), intent(in) :: x,y - b1=1.e0/sqrt(2.e0) + b1=sone/sqrt((2*sone)) end function b1 function b2(x,y) use psb_base_mod, only : psb_spk_ real(psb_spk_) :: b2 real(psb_spk_), intent(in) :: x,y - b2=1.e0/sqrt(2.e0) + b2=sone/sqrt((2*sone)) end function b2 function c(x,y) use psb_base_mod, only : psb_spk_ real(psb_spk_) :: c real(psb_spk_), intent(in) :: x,y - c=0.e0 + c=0.d0 end function c function a1(x,y) use psb_base_mod, only : psb_spk_ real(psb_spk_) :: a1 real(psb_spk_), intent(in) :: x,y - a1=1.e0/80 + a1=sone/80 end function a1 function a2(x,y) use psb_base_mod, only : psb_spk_ real(psb_spk_) :: a2 real(psb_spk_), intent(in) :: x,y - a2=1.e0/80 + a2=sone/80 end function a2 function g(x,y) use psb_base_mod, only : psb_spk_, sone, szero @@ -785,7 +786,6 @@ contains g = exp(-y**2) end if end function g - end program psb_s_pde2d diff --git a/test/pargen/psb_s_pde3d.f90 b/test/pargen/psb_s_pde3d.f90 index 68e05806..6ad9d141 100644 --- a/test/pargen/psb_s_pde3d.f90 +++ b/test/pargen/psb_s_pde3d.f90 @@ -59,6 +59,8 @@ ! ! module psb_s_pde3d_mod + + use psb_base_mod, only : psb_spk_, psb_ipk_, psb_desc_type,& & psb_sspmat_type, psb_s_vect_type, szero,& & psb_s_base_sparse_mat, psb_s_base_vect_type, psb_i_base_vect_type @@ -75,7 +77,6 @@ module psb_s_pde3d_mod module procedure psb_s_gen_pde3d end interface psb_gen_pde3d - contains function s_null_func_3d(x,y,z) result(val) @@ -121,7 +122,7 @@ contains character(len=*) :: afmt procedure(s_func_3d), optional :: f class(psb_s_base_sparse_mat), optional :: amold - class(psb_s_base_vect_type), optional :: vmold + class(psb_s_base_vect_type), optional :: vmold class(psb_i_base_vect_type), optional :: imold integer(psb_ipk_), optional :: partition, nrl,iv(:) @@ -145,7 +146,7 @@ contains ! deltah dimension of each grid cell ! deltat discretization time real(psb_spk_) :: deltah, sqdeltah, deltah2 - real(psb_spk_), parameter :: rhs=0.e0,one=1.e0,zero=0.e0 + real(psb_spk_), parameter :: rhs=szero,one=sone,zero=szero real(psb_dpk_) :: t0, t1, t2, t3, tasb, talc, ttot, tgen, tcdasb integer(psb_ipk_) :: err_act procedure(s_func_3d), pointer :: f_ @@ -164,9 +165,9 @@ contains f_ => s_null_func_3d end if - deltah = 1.e0/(idim+2) + deltah = sone/(idim+2) sqdeltah = deltah*deltah - deltah2 = 2.e0* deltah + deltah2 = (2*sone)* deltah if (present(partition)) then if ((1<= partition).and.(partition <= 3)) then @@ -181,7 +182,7 @@ contains ! initialize array descriptor and sparse matrix storage. provide an ! estimate of the number of non zeroes - + m = idim*idim*idim n = m nnz = ((n*9)/(np)) @@ -272,7 +273,7 @@ contains ! Now, let's generate the list of indices I own nr = 0 do i=bndx(iamx),bndx(iamx+1)-1 - do j=bndy(iamy),bndx(iamy+1)-1 + do j=bndy(iamy),bndy(iamy+1)-1 do k=bndz(iamz),bndz(iamz+1)-1 nr = nr + 1 call ijk2idx(myidx(nr),i,j,k,idim,idim,idim) @@ -381,7 +382,7 @@ contains endif ! term depending on (x,y,z) - val(icoeff)=2.e0*(a1(x,y,z)+a2(x,y,z)+a3(x,y,z))/sqdeltah & + val(icoeff)=(2*sone)*(a1(x,y,z)+a2(x,y,z)+a3(x,y,z))/sqdeltah & & + c(x,y,z) icol(icoeff) = (ix-1)*idim*idim+(iy-1)*idim+(iz) irow(icoeff) = glob_row @@ -419,7 +420,7 @@ contains if(info /= psb_success_) exit call psb_geins(ib,myidx(ii:ii+ib-1),zt(1:ib),bv,desc_a,info) if(info /= psb_success_) exit - zt(:)=0.e0 + zt(:)=szero call psb_geins(ib,myidx(ii:ii+ib-1),zt(1:ib),xv,desc_a,info) if(info /= psb_success_) exit end do @@ -506,7 +507,7 @@ program psb_s_pde3d integer(psb_ipk_) :: idim ! miscellaneous - real(psb_spk_), parameter :: one = 1.e0 + real(psb_spk_), parameter :: one = sone real(psb_dpk_) :: t1, t2, tprec ! sparse matrix and preconditioner @@ -543,6 +544,7 @@ program psb_s_pde3d if(psb_get_errstatus() /= 0) goto 9999 name='pde3d90' call psb_set_errverbosity(itwo) + call psb_cd_set_large_threshold(itwo) ! ! Hello world ! @@ -778,43 +780,43 @@ contains use psb_base_mod, only : psb_spk_ real(psb_spk_) :: b1 real(psb_spk_), intent(in) :: x,y,z - b1=1.e0/sqrt(3.e0) + b1=sone/sqrt((3*sone)) end function b1 function b2(x,y,z) use psb_base_mod, only : psb_spk_ real(psb_spk_) :: b2 real(psb_spk_), intent(in) :: x,y,z - b2=1.e0/sqrt(3.e0) + b2=sone/sqrt((3*sone)) end function b2 function b3(x,y,z) use psb_base_mod, only : psb_spk_ real(psb_spk_) :: b3 real(psb_spk_), intent(in) :: x,y,z - b3=1.e0/sqrt(3.e0) + b3=sone/sqrt((3*sone)) end function b3 function c(x,y,z) use psb_base_mod, only : psb_spk_ real(psb_spk_) :: c real(psb_spk_), intent(in) :: x,y,z - c=0.e0 + c=szero end function c function a1(x,y,z) use psb_base_mod, only : psb_spk_ real(psb_spk_) :: a1 real(psb_spk_), intent(in) :: x,y,z - a1=1.e0/80 + a1=sone/80 end function a1 function a2(x,y,z) use psb_base_mod, only : psb_spk_ real(psb_spk_) :: a2 real(psb_spk_), intent(in) :: x,y,z - a2=1.e0/80 + a2=sone/80 end function a2 function a3(x,y,z) use psb_base_mod, only : psb_spk_ real(psb_spk_) :: a3 real(psb_spk_), intent(in) :: x,y,z - a3=1.e0/80 + a3=sone/80 end function a3 function g(x,y,z) use psb_base_mod, only : psb_spk_, sone, szero diff --git a/util/psb_partidx_mod.F90 b/util/psb_partidx_mod.F90 index 9b294e8f..884581bb 100644 --- a/util/psb_partidx_mod.F90 +++ b/util/psb_partidx_mod.F90 @@ -31,7 +31,7 @@ ! ! ! Purpose: -! Proide functions to handle a distribution of a general +! Provide functions to handle a distribution of a general ! rectangular 2/3/n-dimensional domain onto ! a rectangular 2/3/n-dimensional grid of processes ! From d63202590daed023b766c04638ac78e413104ef9 Mon Sep 17 00:00:00 2001 From: Salvatore Filippone Date: Wed, 14 Mar 2018 11:55:55 +0000 Subject: [PATCH 22/35] Fixed silly bug in declaration of NRM2 and DOT. --- base/modules/serial/psb_c_base_vect_mod.f90 | 4 ++-- base/modules/serial/psb_d_base_vect_mod.f90 | 4 ++-- base/modules/serial/psb_s_base_vect_mod.f90 | 4 ++-- base/modules/serial/psb_z_base_vect_mod.f90 | 4 ++-- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/base/modules/serial/psb_c_base_vect_mod.f90 b/base/modules/serial/psb_c_base_vect_mod.f90 index c0722944..518b154a 100644 --- a/base/modules/serial/psb_c_base_vect_mod.f90 +++ b/base/modules/serial/psb_c_base_vect_mod.f90 @@ -2056,7 +2056,7 @@ contains complex(psb_spk_), intent(in) :: y(:,:) integer(psb_ipk_), intent(in) :: n complex(psb_spk_), allocatable :: res(:) - integer(psb_ipk_), external :: cdotc + complex(psb_spk_), external :: cdotc integer(psb_ipk_) :: j,nc if (x%is_dev()) call x%sync() @@ -2394,7 +2394,7 @@ contains class(psb_c_base_multivect_type), intent(inout) :: x integer(psb_ipk_), intent(in) :: n real(psb_spk_), allocatable :: res(:) - integer(psb_ipk_), external :: scnrm2 + real(psb_spk_), external :: scnrm2 integer(psb_ipk_) :: j, nc if (x%is_dev()) call x%sync() diff --git a/base/modules/serial/psb_d_base_vect_mod.f90 b/base/modules/serial/psb_d_base_vect_mod.f90 index 3fc046b2..96344633 100644 --- a/base/modules/serial/psb_d_base_vect_mod.f90 +++ b/base/modules/serial/psb_d_base_vect_mod.f90 @@ -2056,7 +2056,7 @@ contains real(psb_dpk_), intent(in) :: y(:,:) integer(psb_ipk_), intent(in) :: n real(psb_dpk_), allocatable :: res(:) - integer(psb_ipk_), external :: ddot + real(psb_dpk_), external :: ddot integer(psb_ipk_) :: j,nc if (x%is_dev()) call x%sync() @@ -2394,7 +2394,7 @@ contains class(psb_d_base_multivect_type), intent(inout) :: x integer(psb_ipk_), intent(in) :: n real(psb_dpk_), allocatable :: res(:) - integer(psb_ipk_), external :: dnrm2 + real(psb_dpk_), external :: dnrm2 integer(psb_ipk_) :: j, nc if (x%is_dev()) call x%sync() diff --git a/base/modules/serial/psb_s_base_vect_mod.f90 b/base/modules/serial/psb_s_base_vect_mod.f90 index 91890d93..62ba7c1e 100644 --- a/base/modules/serial/psb_s_base_vect_mod.f90 +++ b/base/modules/serial/psb_s_base_vect_mod.f90 @@ -2056,7 +2056,7 @@ contains real(psb_spk_), intent(in) :: y(:,:) integer(psb_ipk_), intent(in) :: n real(psb_spk_), allocatable :: res(:) - integer(psb_ipk_), external :: sdot + real(psb_spk_), external :: sdot integer(psb_ipk_) :: j,nc if (x%is_dev()) call x%sync() @@ -2394,7 +2394,7 @@ contains class(psb_s_base_multivect_type), intent(inout) :: x integer(psb_ipk_), intent(in) :: n real(psb_spk_), allocatable :: res(:) - integer(psb_ipk_), external :: snrm2 + real(psb_spk_), external :: snrm2 integer(psb_ipk_) :: j, nc if (x%is_dev()) call x%sync() diff --git a/base/modules/serial/psb_z_base_vect_mod.f90 b/base/modules/serial/psb_z_base_vect_mod.f90 index f80cb12e..ffccc9ab 100644 --- a/base/modules/serial/psb_z_base_vect_mod.f90 +++ b/base/modules/serial/psb_z_base_vect_mod.f90 @@ -2056,7 +2056,7 @@ contains complex(psb_dpk_), intent(in) :: y(:,:) integer(psb_ipk_), intent(in) :: n complex(psb_dpk_), allocatable :: res(:) - integer(psb_ipk_), external :: zdotc + complex(psb_dpk_), external :: zdotc integer(psb_ipk_) :: j,nc if (x%is_dev()) call x%sync() @@ -2394,7 +2394,7 @@ contains class(psb_z_base_multivect_type), intent(inout) :: x integer(psb_ipk_), intent(in) :: n real(psb_dpk_), allocatable :: res(:) - integer(psb_ipk_), external :: dznrm2 + real(psb_dpk_), external :: dznrm2 integer(psb_ipk_) :: j, nc if (x%is_dev()) call x%sync() From baf1c740f9c5482222fe9c75e7f20e0bcfbfa18f Mon Sep 17 00:00:00 2001 From: Salvatore Filippone Date: Wed, 14 Mar 2018 13:01:21 +0000 Subject: [PATCH 23/35] Fixed interface mismatch in multivect. --- base/tools/psb_callc.f90 | 2 +- base/tools/psb_dallc.f90 | 2 +- base/tools/psb_iallc.f90 | 2 +- base/tools/psb_sallc.f90 | 2 +- base/tools/psb_zallc.f90 | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/base/tools/psb_callc.f90 b/base/tools/psb_callc.f90 index a71c61b6..24d83cae 100644 --- a/base/tools/psb_callc.f90 +++ b/base/tools/psb_callc.f90 @@ -428,7 +428,7 @@ subroutine psb_calloc_multivect(x, desc_a,info,n) implicit none !....parameters... - type(psb_c_multivect_type), allocatable, intent(out) :: x + type(psb_c_multivect_type), intent(out) :: x type(psb_desc_type), intent(in) :: desc_a integer(psb_ipk_),intent(out) :: info integer(psb_ipk_), optional, intent(in) :: n diff --git a/base/tools/psb_dallc.f90 b/base/tools/psb_dallc.f90 index 6b6d2078..844af068 100644 --- a/base/tools/psb_dallc.f90 +++ b/base/tools/psb_dallc.f90 @@ -428,7 +428,7 @@ subroutine psb_dalloc_multivect(x, desc_a,info,n) implicit none !....parameters... - type(psb_d_multivect_type), allocatable, intent(out) :: x + type(psb_d_multivect_type), intent(out) :: x type(psb_desc_type), intent(in) :: desc_a integer(psb_ipk_),intent(out) :: info integer(psb_ipk_), optional, intent(in) :: n diff --git a/base/tools/psb_iallc.f90 b/base/tools/psb_iallc.f90 index d9edf8b1..7ec4e4bf 100644 --- a/base/tools/psb_iallc.f90 +++ b/base/tools/psb_iallc.f90 @@ -428,7 +428,7 @@ subroutine psb_ialloc_multivect(x, desc_a,info,n) implicit none !....parameters... - type(psb_i_multivect_type), allocatable, intent(out) :: x + type(psb_i_multivect_type), intent(out) :: x type(psb_desc_type), intent(in) :: desc_a integer(psb_ipk_),intent(out) :: info integer(psb_ipk_), optional, intent(in) :: n diff --git a/base/tools/psb_sallc.f90 b/base/tools/psb_sallc.f90 index 7777a449..3852e67e 100644 --- a/base/tools/psb_sallc.f90 +++ b/base/tools/psb_sallc.f90 @@ -428,7 +428,7 @@ subroutine psb_salloc_multivect(x, desc_a,info,n) implicit none !....parameters... - type(psb_s_multivect_type), allocatable, intent(out) :: x + type(psb_s_multivect_type), intent(out) :: x type(psb_desc_type), intent(in) :: desc_a integer(psb_ipk_),intent(out) :: info integer(psb_ipk_), optional, intent(in) :: n diff --git a/base/tools/psb_zallc.f90 b/base/tools/psb_zallc.f90 index dcc2b677..e5417dec 100644 --- a/base/tools/psb_zallc.f90 +++ b/base/tools/psb_zallc.f90 @@ -428,7 +428,7 @@ subroutine psb_zalloc_multivect(x, desc_a,info,n) implicit none !....parameters... - type(psb_z_multivect_type), allocatable, intent(out) :: x + type(psb_z_multivect_type), intent(out) :: x type(psb_desc_type), intent(in) :: desc_a integer(psb_ipk_),intent(out) :: info integer(psb_ipk_), optional, intent(in) :: n From 9ca93af83988d6baf867a34507a8cc810f095f3c Mon Sep 17 00:00:00 2001 From: Salvatore Filippone Date: Wed, 14 Mar 2018 14:09:04 +0000 Subject: [PATCH 24/35] Take out spurious target attribute. --- prec/impl/psb_cprecbld.f90 | 4 ++-- prec/impl/psb_dprecbld.f90 | 4 ++-- prec/impl/psb_sprecbld.f90 | 4 ++-- prec/impl/psb_zprecbld.f90 | 4 ++-- prec/psb_c_prec_type.f90 | 2 +- prec/psb_d_prec_type.f90 | 2 +- prec/psb_s_prec_type.f90 | 2 +- prec/psb_z_prec_type.f90 | 2 +- 8 files changed, 12 insertions(+), 12 deletions(-) diff --git a/prec/impl/psb_cprecbld.f90 b/prec/impl/psb_cprecbld.f90 index b2312468..46d12f5d 100644 --- a/prec/impl/psb_cprecbld.f90 +++ b/prec/impl/psb_cprecbld.f90 @@ -36,8 +36,8 @@ subroutine psb_cprecbld(a,desc_a,p,info,amold,vmold,imold) 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) :: p + type(psb_desc_type), intent(inout), target :: desc_a + class(psb_cprec_type),intent(inout) :: p 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 diff --git a/prec/impl/psb_dprecbld.f90 b/prec/impl/psb_dprecbld.f90 index 5f2ac056..8208b787 100644 --- a/prec/impl/psb_dprecbld.f90 +++ b/prec/impl/psb_dprecbld.f90 @@ -36,8 +36,8 @@ subroutine psb_dprecbld(a,desc_a,p,info,amold,vmold,imold) 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) :: p + type(psb_desc_type), intent(inout), target :: desc_a + class(psb_dprec_type),intent(inout) :: p 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 diff --git a/prec/impl/psb_sprecbld.f90 b/prec/impl/psb_sprecbld.f90 index a69480c9..80174b29 100644 --- a/prec/impl/psb_sprecbld.f90 +++ b/prec/impl/psb_sprecbld.f90 @@ -36,8 +36,8 @@ subroutine psb_sprecbld(a,desc_a,p,info,amold,vmold,imold) 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) :: p + type(psb_desc_type), intent(inout), target :: desc_a + class(psb_sprec_type),intent(inout) :: p 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 diff --git a/prec/impl/psb_zprecbld.f90 b/prec/impl/psb_zprecbld.f90 index 164d1808..ada29b35 100644 --- a/prec/impl/psb_zprecbld.f90 +++ b/prec/impl/psb_zprecbld.f90 @@ -36,8 +36,8 @@ subroutine psb_zprecbld(a,desc_a,p,info,amold,vmold,imold) 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) :: p + type(psb_desc_type), intent(inout), target :: desc_a + class(psb_zprec_type),intent(inout) :: p 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 diff --git a/prec/psb_c_prec_type.f90 b/prec/psb_c_prec_type.f90 index a7bc4031..32abaf79 100644 --- a/prec/psb_c_prec_type.f90 +++ b/prec/psb_c_prec_type.f90 @@ -77,7 +77,7 @@ module psb_c_prec_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 + class(psb_cprec_type), intent(inout) :: 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 diff --git a/prec/psb_d_prec_type.f90 b/prec/psb_d_prec_type.f90 index 814baa74..c822c230 100644 --- a/prec/psb_d_prec_type.f90 +++ b/prec/psb_d_prec_type.f90 @@ -77,7 +77,7 @@ module psb_d_prec_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 + class(psb_dprec_type), intent(inout) :: 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 diff --git a/prec/psb_s_prec_type.f90 b/prec/psb_s_prec_type.f90 index 5cbc1018..22f484ee 100644 --- a/prec/psb_s_prec_type.f90 +++ b/prec/psb_s_prec_type.f90 @@ -77,7 +77,7 @@ module psb_s_prec_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 + class(psb_sprec_type), intent(inout) :: 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 diff --git a/prec/psb_z_prec_type.f90 b/prec/psb_z_prec_type.f90 index 526628b9..47423fe7 100644 --- a/prec/psb_z_prec_type.f90 +++ b/prec/psb_z_prec_type.f90 @@ -77,7 +77,7 @@ module psb_z_prec_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 + class(psb_zprec_type), intent(inout) :: 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 From b06c612f9aae895b149dc39ef97e33a2a3c945dc Mon Sep 17 00:00:00 2001 From: Salvatore Filippone Date: Wed, 14 Mar 2018 20:18:18 +0000 Subject: [PATCH 25/35] Reworked all the sorting routines from templates. Also merged blsrch into gen_block_map_mod, where it belongs. --- base/modules/aux/psb_c_sort_mod.f90 | 9 + base/modules/aux/psb_d_sort_mod.f90 | 29 + base/modules/aux/psb_i_sort_mod.f90 | 47 +- base/modules/aux/psb_s_sort_mod.f90 | 29 + base/modules/aux/psb_z_sort_mod.f90 | 9 + base/modules/desc/psb_gen_block_map_mod.f90 | 97 +- base/modules/desc/psb_hash_map_mod.f90 | 9 +- base/serial/sort/psb_c_msort_impl.f90 | 35 + base/serial/sort/psb_d_msort_impl.f90 | 93 + base/serial/sort/psb_i_msort_impl.f90 | 143 +- base/serial/sort/psb_s_msort_impl.f90 | 93 + base/serial/sort/psb_z_msort_impl.f90 | 35 + configure | 9568 +++++++------------ configure.ac | 2 +- 14 files changed, 3844 insertions(+), 6354 deletions(-) diff --git a/base/modules/aux/psb_c_sort_mod.f90 b/base/modules/aux/psb_c_sort_mod.f90 index 53e98a84..e99adab2 100644 --- a/base/modules/aux/psb_c_sort_mod.f90 +++ b/base/modules/aux/psb_c_sort_mod.f90 @@ -44,6 +44,15 @@ module psb_c_sort_mod use psb_const_mod + interface psb_msort_unique + subroutine psb_cmsort_u(x,nout,dir) + import + complex(psb_spk_), intent(inout) :: x(:) + integer(psb_ipk_), intent(out) :: nout + integer(psb_ipk_), optional, intent(in) :: dir + end subroutine psb_cmsort_u + end interface psb_msort_unique + type psb_c_heap integer(psb_ipk_) :: last, dir complex(psb_spk_), allocatable :: keys(:) diff --git a/base/modules/aux/psb_d_sort_mod.f90 b/base/modules/aux/psb_d_sort_mod.f90 index 72a83355..4505bcd7 100644 --- a/base/modules/aux/psb_d_sort_mod.f90 +++ b/base/modules/aux/psb_d_sort_mod.f90 @@ -44,6 +44,15 @@ module psb_d_sort_mod use psb_const_mod + interface psb_msort_unique + subroutine psb_dmsort_u(x,nout,dir) + import + real(psb_dpk_), intent(inout) :: x(:) + integer(psb_ipk_), intent(out) :: nout + integer(psb_ipk_), optional, intent(in) :: dir + end subroutine psb_dmsort_u + end interface psb_msort_unique + type psb_d_heap integer(psb_ipk_) :: last, dir real(psb_dpk_), allocatable :: keys(:) @@ -79,6 +88,26 @@ module psb_d_sort_mod end subroutine psb_dmsort end interface psb_msort + + interface psb_bsrch + function psb_dbsrch(key,n,v) result(ipos) + import + integer(psb_ipk_) :: ipos, n + real(psb_dpk_) :: key + real(psb_dpk_) :: v(:) + end function psb_dbsrch + end interface psb_bsrch + + interface psb_ssrch + function psb_dssrch(key,n,v) result(ipos) + import + implicit none + integer(psb_ipk_) :: ipos, n + real(psb_dpk_) :: key + real(psb_dpk_) :: v(:) + end function psb_dssrch + end interface psb_ssrch + interface subroutine psi_d_msort_up(n,k,l,iret) import diff --git a/base/modules/aux/psb_i_sort_mod.f90 b/base/modules/aux/psb_i_sort_mod.f90 index 29c94c8f..bc3c3d2d 100644 --- a/base/modules/aux/psb_i_sort_mod.f90 +++ b/base/modules/aux/psb_i_sort_mod.f90 @@ -43,30 +43,6 @@ module psb_i_sort_mod use psb_const_mod - interface psb_iblsrch - function psb_iblsrch(key,n,v) result(ipos) - import :: psb_ipk_ - integer(psb_ipk_) :: ipos, key, n - integer(psb_ipk_) :: v(:) - end function psb_iblsrch - end interface psb_iblsrch - - interface psb_ibsrch - function psb_ibsrch(key,n,v) result(ipos) - import :: psb_ipk_ - integer(psb_ipk_) :: ipos, key, n - integer(psb_ipk_) :: v(:) - end function psb_ibsrch - end interface psb_ibsrch - - interface psb_issrch - function psb_issrch(key,n,v) result(ipos) - import :: psb_ipk_ - implicit none - integer(psb_ipk_) :: ipos, key, n - integer(psb_ipk_) :: v(:) - end function psb_issrch - end interface psb_issrch interface psb_isaperm logical function psb_isaperm(n,eip) @@ -76,9 +52,10 @@ module psb_i_sort_mod end function psb_isaperm end interface psb_isaperm + interface psb_msort_unique subroutine psb_imsort_u(x,nout,dir) - import :: psb_ipk_, psb_spk_, psb_dpk_ + import integer(psb_ipk_), intent(inout) :: x(:) integer(psb_ipk_), intent(out) :: nout integer(psb_ipk_), optional, intent(in) :: dir @@ -120,6 +97,26 @@ module psb_i_sort_mod end subroutine psb_imsort end interface psb_msort + + interface psb_bsrch + function psb_ibsrch(key,n,v) result(ipos) + import + integer(psb_ipk_) :: ipos, n + integer(psb_ipk_) :: key + integer(psb_ipk_) :: v(:) + end function psb_ibsrch + end interface psb_bsrch + + interface psb_ssrch + function psb_issrch(key,n,v) result(ipos) + import + implicit none + integer(psb_ipk_) :: ipos, n + integer(psb_ipk_) :: key + integer(psb_ipk_) :: v(:) + end function psb_issrch + end interface psb_ssrch + interface subroutine psi_i_msort_up(n,k,l,iret) import diff --git a/base/modules/aux/psb_s_sort_mod.f90 b/base/modules/aux/psb_s_sort_mod.f90 index 4272dfe9..6eeeb2e3 100644 --- a/base/modules/aux/psb_s_sort_mod.f90 +++ b/base/modules/aux/psb_s_sort_mod.f90 @@ -44,6 +44,15 @@ module psb_s_sort_mod use psb_const_mod + interface psb_msort_unique + subroutine psb_smsort_u(x,nout,dir) + import + real(psb_spk_), intent(inout) :: x(:) + integer(psb_ipk_), intent(out) :: nout + integer(psb_ipk_), optional, intent(in) :: dir + end subroutine psb_smsort_u + end interface psb_msort_unique + type psb_s_heap integer(psb_ipk_) :: last, dir real(psb_spk_), allocatable :: keys(:) @@ -79,6 +88,26 @@ module psb_s_sort_mod end subroutine psb_smsort end interface psb_msort + + interface psb_bsrch + function psb_sbsrch(key,n,v) result(ipos) + import + integer(psb_ipk_) :: ipos, n + real(psb_spk_) :: key + real(psb_spk_) :: v(:) + end function psb_sbsrch + end interface psb_bsrch + + interface psb_ssrch + function psb_sssrch(key,n,v) result(ipos) + import + implicit none + integer(psb_ipk_) :: ipos, n + real(psb_spk_) :: key + real(psb_spk_) :: v(:) + end function psb_sssrch + end interface psb_ssrch + interface subroutine psi_s_msort_up(n,k,l,iret) import diff --git a/base/modules/aux/psb_z_sort_mod.f90 b/base/modules/aux/psb_z_sort_mod.f90 index 15294b1c..18d50a71 100644 --- a/base/modules/aux/psb_z_sort_mod.f90 +++ b/base/modules/aux/psb_z_sort_mod.f90 @@ -44,6 +44,15 @@ module psb_z_sort_mod use psb_const_mod + interface psb_msort_unique + subroutine psb_zmsort_u(x,nout,dir) + import + complex(psb_dpk_), intent(inout) :: x(:) + integer(psb_ipk_), intent(out) :: nout + integer(psb_ipk_), optional, intent(in) :: dir + end subroutine psb_zmsort_u + end interface psb_msort_unique + type psb_z_heap integer(psb_ipk_) :: last, dir complex(psb_dpk_), allocatable :: keys(:) diff --git a/base/modules/desc/psb_gen_block_map_mod.f90 b/base/modules/desc/psb_gen_block_map_mod.f90 index 1b926b37..3366a2da 100644 --- a/base/modules/desc/psb_gen_block_map_mod.f90 +++ b/base/modules/desc/psb_gen_block_map_mod.f90 @@ -90,7 +90,8 @@ module psb_gen_block_map_mod & block_get_fmt, block_l2gs1, block_l2gs2, block_l2gv1,& & block_l2gv2, block_g2ls1, block_g2ls2, block_g2lv1,& & block_g2lv2, block_g2ls1_ins, block_g2ls2_ins,& - & block_g2lv1_ins, block_g2lv2_ins, block_clone, block_reinit + & block_g2lv1_ins, block_g2lv2_ins, block_clone, block_reinit,& + & gen_block_search integer(psb_ipk_), private :: laddsz=500 @@ -992,7 +993,6 @@ contains subroutine block_fnd_owner(idx,iprc,idxmap,info) use psb_penv_mod - use psb_sort_mod implicit none integer(psb_ipk_), intent(in) :: idx(:) integer(psb_ipk_), allocatable, intent(out) :: iprc(:) @@ -1009,7 +1009,7 @@ contains return end if do i=1, nv - ip = psb_iblsrch(idx(i)-1,np+1,idxmap%vnl) + ip = gen_block_search(idx(i)-1,np+1,idxmap%vnl) iprc(i) = ip - 1 end do @@ -1226,52 +1226,49 @@ contains return end subroutine block_reinit -!!$ -!!$ subroutine block_reinit(idxmap,info) -!!$ use psb_penv_mod -!!$ use psb_error_mod -!!$ use psb_realloc_mod -!!$ implicit none -!!$ class(psb_gen_block_map), intent(inout) :: idxmap -!!$ integer(psb_ipk_), intent(out) :: info -!!$ integer(psb_ipk_) :: err_act, nr,nc,k, nl, ictxt -!!$ integer(psb_ipk_), allocatable :: idx(:),lidx(:) -!!$ character(len=20) :: name='block_reinit' -!!$ logical, parameter :: debug=.false. -!!$ -!!$ info = psb_success_ -!!$ call psb_get_erraction(err_act) -!!$ ictxt = idxmap%get_ctxt() -!!$ nr = idxmap%get_lr() -!!$ nc = idxmap%get_lc() -!!$ if (nc>nr) then -!!$ lidx = (/(k,k=nr+1,nc)/) -!!$ idx = (/(k,k=nr+1,nc)/) -!!$ call idxmap%l2gip(idx,info) -!!$ end if -!!$ if (info /= 0) & -!!$ & write(0,*) 'From l2gip',info -!!$ -!!$ call idxmap%init(ictxt,nr,info) -!!$ if (nc>nr) then -!!$ call idxmap%g2lip_ins(idx,info,lidx=lidx) -!!$ end if -!!$ -!!$ -!!$ if (info /= psb_success_) then -!!$ info = psb_err_from_subroutine_ -!!$ call psb_errpush(info,name) -!!$ goto 9999 -!!$ end if -!!$ call psb_erractionrestore(err_act) -!!$ return -!!$ -!!$ -!!$9999 call psb_error_handler(err_act) -!!$ -!!$ return -!!$ end subroutine block_reinit -!!$ - + + ! + ! This is a purely internal version of "binary" search + ! specialized for gen_block usage. + ! + function gen_block_search(key,n,v) result(ipos) + implicit none + integer(psb_ipk_) :: ipos, key, n + integer(psb_ipk_) :: v(:) + + integer(psb_ipk_) :: lb, ub, m + + if (n < 5) then + ! don't bother with binary search for very + ! small vectors + ipos = 0 + do + if (ipos == n) return + if (key < v(ipos+1)) return + ipos = ipos + 1 + end do + else + lb = 1 + ub = n + ipos = -1 + + do while (lb <= ub) + m = (lb+ub)/2 + if (key==v(m)) then + ipos = m + return + else if (key < v(m)) then + ub = m-1 + else + lb = m + 1 + end if + enddo + if (v(ub) > key) then + ub = ub - 1 + end if + ipos = ub + endif + return + end function gen_block_search end module psb_gen_block_map_mod diff --git a/base/modules/desc/psb_hash_map_mod.f90 b/base/modules/desc/psb_hash_map_mod.f90 index 68a8faa6..ea33a503 100644 --- a/base/modules/desc/psb_hash_map_mod.f90 +++ b/base/modules/desc/psb_hash_map_mod.f90 @@ -134,6 +134,8 @@ contains & val = val + size(idxmap%hashv)*psb_sizeof_int if (allocated(idxmap%glb_lc)) & & val = val + size(idxmap%glb_lc)*psb_sizeof_int + if (allocated(idxmap%loc_to_glob)) & + & val = val + size(idxmap%loc_to_glob)*psb_sizeof_int val = val + psb_sizeof(idxmap%hash) end function hash_sizeof @@ -743,6 +745,9 @@ contains end subroutine hash_g2lv2_ins + ! + ! init from VL, with checks on input. + ! subroutine hash_init_vl(idxmap,ictxt,vl,info) use psb_penv_mod use psb_error_mod @@ -870,7 +875,9 @@ contains end subroutine hash_init_vg - + ! + ! init from VL, with no checks on input + ! subroutine hash_init_vlu(idxmap,ictxt,ntot,nl,vlu,info) use psb_penv_mod use psb_error_mod diff --git a/base/serial/sort/psb_c_msort_impl.f90 b/base/serial/sort/psb_c_msort_impl.f90 index db5cbdf9..c41cb9c8 100644 --- a/base/serial/sort/psb_c_msort_impl.f90 +++ b/base/serial/sort/psb_c_msort_impl.f90 @@ -41,6 +41,41 @@ ! Addison-Wesley ! + subroutine psb_cmsort_u(x,nout,dir) + use psb_c_sort_mod, psb_protect_name => psb_cmsort_u + use psb_error_mod + implicit none + complex(psb_spk_), intent(inout) :: x(:) + integer(psb_ipk_), intent(out) :: nout + integer(psb_ipk_), optional, intent(in) :: dir + + integer(psb_ipk_) :: n, k + integer(psb_ipk_) :: err_act + + integer(psb_ipk_) :: ierr(5) + character(len=20) :: name + + name='psb_msort_u' + call psb_erractionsave(err_act) + + n = size(x) + + call psb_msort(x,dir=dir) + nout = min(1,n) + do k=2,n + if (x(k) /= x(nout)) then + nout = nout + 1 + x(nout) = x(k) + endif + enddo + + return + +9999 call psb_error_handler(err_act) + + return + end subroutine psb_cmsort_u + diff --git a/base/serial/sort/psb_d_msort_impl.f90 b/base/serial/sort/psb_d_msort_impl.f90 index 5bda802d..b0d7f8b5 100644 --- a/base/serial/sort/psb_d_msort_impl.f90 +++ b/base/serial/sort/psb_d_msort_impl.f90 @@ -41,6 +41,99 @@ ! Addison-Wesley ! + subroutine psb_dmsort_u(x,nout,dir) + use psb_d_sort_mod, psb_protect_name => psb_dmsort_u + use psb_error_mod + implicit none + real(psb_dpk_), intent(inout) :: x(:) + integer(psb_ipk_), intent(out) :: nout + integer(psb_ipk_), optional, intent(in) :: dir + + integer(psb_ipk_) :: n, k + integer(psb_ipk_) :: err_act + + integer(psb_ipk_) :: ierr(5) + character(len=20) :: name + + name='psb_msort_u' + call psb_erractionsave(err_act) + + n = size(x) + + call psb_msort(x,dir=dir) + nout = min(1,n) + do k=2,n + if (x(k) /= x(nout)) then + nout = nout + 1 + x(nout) = x(k) + endif + enddo + + return + +9999 call psb_error_handler(err_act) + + return + end subroutine psb_dmsort_u + + + function psb_dbsrch(key,n,v) result(ipos) + use psb_d_sort_mod, psb_protect_name => psb_dbsrch + implicit none + integer(psb_ipk_) :: ipos, n + real(psb_dpk_) :: key + real(psb_dpk_) :: v(:) + + integer(psb_ipk_) :: lb, ub, m, i + + ipos = -1 + if (n<5) then + do i=1,n + if (key.eq.v(i)) then + ipos = i + return + end if + enddo + return + end if + + lb = 1 + ub = n + + do while (lb.le.ub) + m = (lb+ub)/2 + if (key.eq.v(m)) then + ipos = m + lb = ub + 1 + else if (key < v(m)) then + ub = m-1 + else + lb = m + 1 + end if + enddo + return + end function psb_dbsrch + + function psb_dssrch(key,n,v) result(ipos) + use psb_d_sort_mod, psb_protect_name => psb_dssrch + implicit none + integer(psb_ipk_) :: ipos, n + real(psb_dpk_) :: key + real(psb_dpk_) :: v(:) + + integer(psb_ipk_) :: i + + ipos = -1 + do i=1,n + if (key.eq.v(i)) then + ipos = i + return + end if + enddo + + return + end function psb_dssrch + subroutine psb_dmsort(x,ix,dir,flag) use psb_d_sort_mod, psb_protect_name => psb_dmsort use psb_error_mod diff --git a/base/serial/sort/psb_i_msort_impl.f90 b/base/serial/sort/psb_i_msort_impl.f90 index 934e2e4f..2e855718 100644 --- a/base/serial/sort/psb_i_msort_impl.f90 +++ b/base/serial/sort/psb_i_msort_impl.f90 @@ -95,59 +95,65 @@ return end function psb_isaperm - function psb_iblsrch(key,n,v) result(ipos) - use psb_i_sort_mod, psb_protect_name => psb_iblsrch - implicit none - integer(psb_ipk_) :: ipos, key, n - integer(psb_ipk_) :: v(:) - integer(psb_ipk_) :: lb, ub, m - - if (n < 5) then - ! don't bother with binary search for very - ! small vectors - ipos = 0 - do - if (ipos == n) return - if (key < v(ipos+1)) return - ipos = ipos + 1 - end do - else - lb = 1 - ub = n - ipos = -1 - - do while (lb <= ub) - m = (lb+ub)/2 - if (key==v(m)) then - ipos = m - return - else if (key < v(m)) then - ub = m-1 - else - lb = m + 1 - end if - enddo - if (v(ub) > key) then -!!$ write(0,*) 'Check: ',ub,v(ub),key - ub = ub - 1 - end if - ipos = ub - endif + subroutine psb_imsort_u(x,nout,dir) + use psb_i_sort_mod, psb_protect_name => psb_imsort_u + use psb_error_mod + implicit none + integer(psb_ipk_), intent(inout) :: x(:) + integer(psb_ipk_), intent(out) :: nout + integer(psb_ipk_), optional, intent(in) :: dir + + integer(psb_ipk_) :: n, k + integer(psb_ipk_) :: err_act + + integer(psb_ipk_) :: ierr(5) + character(len=20) :: name + + name='psb_msort_u' + call psb_erractionsave(err_act) + + n = size(x) + + call psb_msort(x,dir=dir) + nout = min(1,n) + do k=2,n + if (x(k) /= x(nout)) then + nout = nout + 1 + x(nout) = x(k) + endif + enddo + return - end function psb_iblsrch + +9999 call psb_error_handler(err_act) + + return + end subroutine psb_imsort_u + function psb_ibsrch(key,n,v) result(ipos) use psb_i_sort_mod, psb_protect_name => psb_ibsrch implicit none - integer(psb_ipk_) :: ipos, key, n + integer(psb_ipk_) :: ipos, n + integer(psb_ipk_) :: key integer(psb_ipk_) :: v(:) - integer(psb_ipk_) :: lb, ub, m + integer(psb_ipk_) :: lb, ub, m, i + ipos = -1 + if (n<5) then + do i=1,n + if (key.eq.v(i)) then + ipos = i + return + end if + enddo + return + end if + lb = 1 ub = n - ipos = -1 do while (lb.le.ub) m = (lb+ub)/2 @@ -166,7 +172,8 @@ function psb_issrch(key,n,v) result(ipos) use psb_i_sort_mod, psb_protect_name => psb_issrch implicit none - integer(psb_ipk_) :: ipos, key, n + integer(psb_ipk_) :: ipos, n + integer(psb_ipk_) :: key integer(psb_ipk_) :: v(:) integer(psb_ipk_) :: i @@ -182,56 +189,6 @@ return end function psb_issrch - - subroutine psb_imsort_u(x,nout,dir) - use psb_i_sort_mod, psb_protect_name => psb_imsort_u - use psb_error_mod - implicit none - integer(psb_ipk_), intent(inout) :: x(:) - integer(psb_ipk_), intent(out) :: nout - integer(psb_ipk_), optional, intent(in) :: dir - - integer(psb_ipk_) :: dir_, n, err_act, k - - integer(psb_ipk_) :: ierr(5) - character(len=20) :: name - - name='psb_msort_u' - call psb_erractionsave(err_act) - - if (present(dir)) then - dir_ = dir - else - dir_= psb_sort_up_ - end if - select case(dir_) - case( psb_sort_up_, psb_sort_down_, psb_asort_up_, psb_asort_down_) - ! OK keep going - case default - ierr(1) = 3; ierr(2) = dir_; - call psb_errpush(psb_err_input_value_invalid_i_,name,i_err=ierr) - goto 9999 - end select - - n = size(x) - - call psb_imsort(x,dir=dir_) - nout = min(1,n) - do k=2,n - if (x(k) /= x(nout)) then - nout = nout + 1 - x(nout) = x(k) - endif - enddo - - return - -9999 call psb_error_handler(err_act) - - return - end subroutine psb_imsort_u - - subroutine psb_imsort(x,ix,dir,flag) use psb_i_sort_mod, psb_protect_name => psb_imsort use psb_error_mod diff --git a/base/serial/sort/psb_s_msort_impl.f90 b/base/serial/sort/psb_s_msort_impl.f90 index 53b55712..3b373291 100644 --- a/base/serial/sort/psb_s_msort_impl.f90 +++ b/base/serial/sort/psb_s_msort_impl.f90 @@ -41,6 +41,99 @@ ! Addison-Wesley ! + subroutine psb_smsort_u(x,nout,dir) + use psb_s_sort_mod, psb_protect_name => psb_smsort_u + use psb_error_mod + implicit none + real(psb_spk_), intent(inout) :: x(:) + integer(psb_ipk_), intent(out) :: nout + integer(psb_ipk_), optional, intent(in) :: dir + + integer(psb_ipk_) :: n, k + integer(psb_ipk_) :: err_act + + integer(psb_ipk_) :: ierr(5) + character(len=20) :: name + + name='psb_msort_u' + call psb_erractionsave(err_act) + + n = size(x) + + call psb_msort(x,dir=dir) + nout = min(1,n) + do k=2,n + if (x(k) /= x(nout)) then + nout = nout + 1 + x(nout) = x(k) + endif + enddo + + return + +9999 call psb_error_handler(err_act) + + return + end subroutine psb_smsort_u + + + function psb_sbsrch(key,n,v) result(ipos) + use psb_s_sort_mod, psb_protect_name => psb_sbsrch + implicit none + integer(psb_ipk_) :: ipos, n + real(psb_spk_) :: key + real(psb_spk_) :: v(:) + + integer(psb_ipk_) :: lb, ub, m, i + + ipos = -1 + if (n<5) then + do i=1,n + if (key.eq.v(i)) then + ipos = i + return + end if + enddo + return + end if + + lb = 1 + ub = n + + do while (lb.le.ub) + m = (lb+ub)/2 + if (key.eq.v(m)) then + ipos = m + lb = ub + 1 + else if (key < v(m)) then + ub = m-1 + else + lb = m + 1 + end if + enddo + return + end function psb_sbsrch + + function psb_sssrch(key,n,v) result(ipos) + use psb_s_sort_mod, psb_protect_name => psb_sssrch + implicit none + integer(psb_ipk_) :: ipos, n + real(psb_spk_) :: key + real(psb_spk_) :: v(:) + + integer(psb_ipk_) :: i + + ipos = -1 + do i=1,n + if (key.eq.v(i)) then + ipos = i + return + end if + enddo + + return + end function psb_sssrch + subroutine psb_smsort(x,ix,dir,flag) use psb_s_sort_mod, psb_protect_name => psb_smsort use psb_error_mod diff --git a/base/serial/sort/psb_z_msort_impl.f90 b/base/serial/sort/psb_z_msort_impl.f90 index d0f3823b..201556f9 100644 --- a/base/serial/sort/psb_z_msort_impl.f90 +++ b/base/serial/sort/psb_z_msort_impl.f90 @@ -41,6 +41,41 @@ ! Addison-Wesley ! + subroutine psb_zmsort_u(x,nout,dir) + use psb_z_sort_mod, psb_protect_name => psb_zmsort_u + use psb_error_mod + implicit none + complex(psb_dpk_), intent(inout) :: x(:) + integer(psb_ipk_), intent(out) :: nout + integer(psb_ipk_), optional, intent(in) :: dir + + integer(psb_ipk_) :: n, k + integer(psb_ipk_) :: err_act + + integer(psb_ipk_) :: ierr(5) + character(len=20) :: name + + name='psb_msort_u' + call psb_erractionsave(err_act) + + n = size(x) + + call psb_msort(x,dir=dir) + nout = min(1,n) + do k=2,n + if (x(k) /= x(nout)) then + nout = nout + 1 + x(nout) = x(k) + endif + enddo + + return + +9999 call psb_error_handler(err_act) + + return + end subroutine psb_zmsort_u + diff --git a/configure b/configure index cb7e58ab..b32d4a37 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.5. +# Generated by GNU Autoconf 2.69 for PSBLAS 3.5. # # 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. +# +# Copyright (C) 1992-1996, 1998-2012 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: https://github.com/sfilippone/psblas3/issues about your +$0: system, 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.5' -PACKAGE_STRING='PSBLAS 3.5' -PACKAGE_BUGREPORT='https://github.com/sfilippone/psblas3/issues' +# Identity of this package. +PACKAGE_NAME='PSBLAS' +PACKAGE_TARNAME='psblas' +PACKAGE_VERSION='3.5' +PACKAGE_STRING='PSBLAS 3.5' +PACKAGE_BUGREPORT='https://github.com/sfilippone/psblas3/issues' +PACKAGE_URL='' ac_unique_file="base/modules/psb_base_mod.f90" # Factoring default headers for most tests. @@ -680,9 +665,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 @@ -756,6 +746,7 @@ bindir program_transform_name prefix exec_prefix +PACKAGE_URL PACKAGE_BUGREPORT PACKAGE_STRING PACKAGE_VERSION @@ -776,6 +767,7 @@ with_library_path with_include_path with_module_path enable_dependency_tracking +enable_silent_rules enable_long_integers with_blas with_blasdir @@ -865,8 +857,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. @@ -911,8 +904,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 @@ -938,8 +930,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 @@ -1143,8 +1134,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 @@ -1160,8 +1150,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 @@ -1191,17 +1180,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 ;; @@ -1210,7 +1199,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 @@ -1218,15 +1207,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 @@ -1249,8 +1236,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' @@ -1264,8 +1250,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 @@ -1280,11 +1264,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. @@ -1323,13 +1305,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 @@ -1369,7 +1349,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 @@ -1431,30 +1411,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 @@ -1484,7 +1468,7 @@ Some influential environment variables: LIBS libraries to pass to the linker, e.g. -l 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 @@ -1557,58 +1541,680 @@ test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF PSBLAS configure 3.5 -generated by GNU Autoconf 2.63 +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.5, which was -generated by GNU Autoconf 2.63. Invocation command line was - $ $0 $@ +## ------------------------ ## +## Autoconf initialization. ## +## ------------------------ ## -_ACEOF -exec 5>>config.log +# ac_fn_fc_try_compile LINENO +# --------------------------- +# Try to compile conftest.$ac_ext, and return whether this succeeded. +ac_fn_fc_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_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 -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_fc_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_compile LINENO +# -------------------------- +# Try to compile conftest.$ac_ext, and return whether this succeeded. +ac_fn_c_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_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 -_ASUNAME + ac_retval=1 +fi + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + as_fn_set_status $ac_retval + +} # ac_fn_c_try_compile + +# 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 + + 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 + +} # ac_fn_c_try_link + +# 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 + +/* 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 + +#undef $2 + +/* 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 + +} # ac_fn_c_check_func + +# 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 + + 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 + +} # ac_fn_fc_try_link + +# 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 + + 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 + +} # ac_fn_c_try_run + +# 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]; + + ; + 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]; + + ; + 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]; + + ; + 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]; + + ; + 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]; + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_hi=$ac_mid +else + as_fn_arith '(' $ac_mid ')' + 1 && ac_lo=$as_val +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 () +{ + + 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 + (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 https://github.com/sfilippone/psblas3/issues ## +## ----------------------------------------------------------- ##" + ) | 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 + $as_echo "PATH: $as_dir" + done IFS=$as_save_IFS } >&5 @@ -1645,9 +2251,9 @@ do ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; esac case $ac_pass in - 1) ac_configure_args0="$ac_configure_args0 '$ac_arg'" ;; + 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;; 2) - ac_configure_args1="$ac_configure_args1 '$ac_arg'" + 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 @@ -1663,13 +2269,13 @@ do -* ) ac_must_keep_next=true ;; esac fi - ac_configure_args="$ac_configure_args '$ac_arg'" + as_fn_append 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_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 @@ -1681,11 +2287,9 @@ trap 'exit_status=$? { echo - cat <<\_ASBOX -## ---------------- ## + $as_echo "## ---------------- ## ## Cache variables. ## -## ---------------- ## -_ASBOX +## ---------------- ##" echo # The following way of writing the cache mishandles newlines in values, ( @@ -1694,13 +2298,13 @@ _ASBOX 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 @@ -1719,11 +2323,9 @@ $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; ) echo - cat <<\_ASBOX -## ----------------- ## + $as_echo "## ----------------- ## ## Output variables. ## -## ----------------- ## -_ASBOX +## ----------------- ##" echo for ac_var in $ac_subst_vars do @@ -1736,11 +2338,9 @@ _ASBOX echo if test -n "$ac_subst_files"; then - cat <<\_ASBOX -## ------------------- ## + $as_echo "## ------------------- ## ## File substitutions. ## -## ------------------- ## -_ASBOX +## ------------------- ##" echo for ac_var in $ac_subst_files do @@ -1754,11 +2354,9 @@ _ASBOX fi if test -s confdefs.h; then - cat <<\_ASBOX -## ----------- ## + $as_echo "## ----------- ## ## confdefs.h. ## -## ----------- ## -_ASBOX +## ----------- ##" echo cat confdefs.h echo @@ -1772,37 +2370,39 @@ _ASBOX exit $exit_status ' 0 for ac_signal in 1 2 13 15; do - trap 'ac_signal='$ac_signal'; { (exit 1); exit 1; }' $ac_signal + 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_BUGREPORT "$PACKAGE_BUGREPORT" +#define PACKAGE_URL "$PACKAGE_URL" _ACEOF @@ -1811,7 +2411,12 @@ _ACEOF ac_site_file1=NONE ac_site_file2=NONE if test -n "$CONFIG_SITE"; then - ac_site_file1=$CONFIG_SITE + # 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 @@ -1822,19 +2427,23 @@ 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 + 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" + . "$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. - if test -f "$cache_file"; then - { $as_echo "$as_me:$LINENO: loading cache $cache_file" >&5 + # 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";; @@ -1842,7 +2451,7 @@ $as_echo "$as_me: loading cache $cache_file" >&6;} esac fi else - { $as_echo "$as_me:$LINENO: creating cache $cache_file" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5 $as_echo "$as_me: creating cache $cache_file" >&6;} >$cache_file fi @@ -1857,11 +2466,11 @@ for ac_var in $ac_precious_vars; do 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:${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:$LINENO: error: \`$ac_var' was not set in the previous run" >&5 + { $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=: ;; ,);; @@ -1871,17 +2480,17 @@ $as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} 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:${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:$LINENO: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5 + { $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:$LINENO: former value: \`$ac_old_val'" >&5 + { $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:$LINENO: current value: \`$ac_new_val'" >&5 + { $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 @@ -1893,43 +2502,20 @@ $as_echo "$as_me: current value: \`$ac_new_val'" >&2;} esac case " $ac_configure_args " in *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. - *) ac_configure_args="$ac_configure_args '$ac_arg'" ;; + *) as_fn_append 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:${as_lineno-$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:${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_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; }; } + 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' @@ -1948,7 +2534,7 @@ psblas_cv_version="3.5" # 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. @@ -2000,9 +2586,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, @@ -2028,10 +2612,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 @@ -2039,11 +2623,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. @@ -2051,7 +2635,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. @@ -2080,7 +2664,7 @@ case $as_dir/ in ;; esac -done + done IFS=$as_save_IFS rm -rf conftest.one conftest.two conftest.dir @@ -2096,7 +2680,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}. @@ -2108,7 +2692,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";; @@ -2131,7 +2715,7 @@ case $samplesdir in * ) eval "INSTALL_SAMPLESDIR=$INSTALL_DIR/samples";; esac INSTALL_MODULESDIR=$INSTALL_DIR/modules -{ $as_echo "$as_me:$LINENO: result: $INSTALL_DIR $INSTALL_INCLUDEDIR $INSTALL_MODULESDIR $INSTALL_LIBDIR $INSTALL_DOCSDIR $INSTALL_SAMPLESDIR" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL_DIR $INSTALL_INCLUDEDIR $INSTALL_MODULESDIR $INSTALL_LIBDIR $INSTALL_DOCSDIR $INSTALL_SAMPLESDIR" >&5 $as_echo "$INSTALL_DIR $INSTALL_INCLUDEDIR $INSTALL_MODULESDIR $INSTALL_LIBDIR $INSTALL_DOCSDIR $INSTALL_SAMPLESDIR" >&6; } save_FCFLAGS="$FCFLAGS"; @@ -2144,9 +2728,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 @@ -2157,24 +2741,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 @@ -2188,9 +2772,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 @@ -2201,24 +2785,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 @@ -2231,7 +2815,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 @@ -2241,45 +2825,32 @@ 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" -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" +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 -v >&5") 2>&5 +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=$? - $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); } + 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 -cat >conftest.$ac_ext <<_ACEOF +cat > conftest.$ac_ext <<_ACEOF program main end @@ -2289,8 +2860,8 @@ 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; } +{ $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[^ ]*//'` # The possible output files: @@ -2306,17 +2877,17 @@ do done rm -f $ac_rmfiles -if { (ac_try="$ac_link_default" +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_try_echo="\"\$as_me:${as_lineno-$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 + $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, @@ -2333,7 +2904,7 @@ do # certainly right. break;; *.* ) - if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no; + if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no; then :; else ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` fi @@ -2352,84 +2923,41 @@ 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 +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:$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: 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; }; }; } +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 -# 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 "$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" +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_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:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; then + $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 @@ -2444,44 +2972,93 @@ for ac_file in conftest.exe conftest conftest.*; do esac done 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: 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; }; }; } +as_fn_error $? "cannot compute suffix of executables: cannot compile and link +See \`config.log' for more details" "$LINENO" 5; } fi - -rm -f conftest$ac_cv_exeext -{ $as_echo "$as_me:$LINENO: result: $ac_cv_exeext" >&5 +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; } rm -f conftest.$ac_ext EXEEXT=$ac_cv_exeext ac_exeext=$EXEEXT -{ $as_echo "$as_me:$LINENO: checking for suffix of object files" >&5 +cat > conftest.$ac_ext <<_ACEOF + program main + open(unit=9,file='conftest.out') + close(unit=9) + + end +_ACEOF +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:${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; } + 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 test "${ac_cv_objext+set}" = set; then +if ${ac_cv_objext+:} false; then : $as_echo_n "(cached) " >&6 else - cat >conftest.$ac_ext <<_ACEOF + cat > conftest.$ac_ext <<_ACEOF program main end _ACEOF rm -f conftest.o conftest.obj -if { (ac_try="$ac_compile" +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_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:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; then + $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 @@ -2494,18 +3071,14 @@ 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 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; }; }; } +as_fn_error $? "cannot compute suffix of object files: cannot compile +See \`config.log' for more details" "$LINENO" 5; } fi - rm -f conftest.$ac_cv_objext conftest.$ac_ext fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_objext" >&5 +{ $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 @@ -2513,12 +3086,12 @@ ac_objext=$OBJEXT # 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 "$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 test "${ac_cv_fc_compiler_gnu+set}" = set; then +if ${ac_cv_fc_compiler_gnu+:} false; then : $as_echo_n "(cached) " >&6 else - cat >conftest.$ac_ext <<_ACEOF + cat > conftest.$ac_ext <<_ACEOF program main #ifndef __GNUC__ choke me @@ -2526,86 +3099,44 @@ else 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 : ac_compiler_gnu=yes else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_compiler_gnu=no + 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 "$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_FFLAGS=${FCFLAGS+set} -ac_save_FFLAGS=$FCFLAGS +ac_test_FCFLAGS=${FCFLAGS+set} +ac_save_FCFLAGS=$FCFLAGS FCFLAGS= -{ $as_echo "$as_me:$LINENO: checking whether $FC accepts -g" >&5 +{ $as_echo "$as_me:${as_lineno-$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 +if ${ac_cv_prog_fc_g+:} false; then : $as_echo_n "(cached) " >&6 else FCFLAGS=-g -cat >conftest.$ac_ext <<_ACEOF +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 +if ac_fn_fc_try_compile "$LINENO"; 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 + 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 "$as_me:${as_lineno-$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 +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" @@ -2620,6 +3151,11 @@ else fi fi +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' @@ -2638,9 +3174,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_CC+set}" = set; then +if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then @@ -2651,24 +3187,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_CC="$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 CC=$ac_cv_prog_CC if test -n "$CC"; then - { $as_echo "$as_me:$LINENO: result: $CC" >&5 + { $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 @@ -2682,9 +3218,9 @@ if test -z "$CC"; 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_CC+set}" = set; then +if ${ac_cv_prog_ac_ct_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then @@ -2695,24 +3231,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_CC="$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_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 "$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 @@ -2725,7 +3261,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 @@ -2734,62 +3270,42 @@ esac fi -test -z "$CC" && { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 +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_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; }; }; } +as_fn_error $? "no acceptable C compiler found in \$PATH +See \`config.log' for more details" "$LINENO" 5; } # Provide some information about the compiler. -$as_echo "$as_me:$LINENO: checking for C compiler version" >&5 +$as_echo "$as_me:${as_lineno-$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" +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 -V >&5") 2>&5 +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=$? - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $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 -{ $as_echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5 +{ $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 test "${ac_cv_c_compiler_gnu+set}" = set; then +if ${ac_cv_c_compiler_gnu+:} false; 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 + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int @@ -2803,37 +3319,16 @@ 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 +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_compiler_gnu=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 fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5 +{ $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 @@ -2842,20 +3337,16 @@ else fi ac_test_CFLAGS=${CFLAGS+set} ac_save_CFLAGS=$CFLAGS -{ $as_echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5 +{ $as_echo "$as_me:${as_lineno-$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 +if ${ac_cv_prog_cc_g+:} false; 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 + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int @@ -2866,35 +3357,11 @@ 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 +if ac_fn_c_try_compile "$LINENO"; 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 + CFLAGS="" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int @@ -2905,36 +3372,12 @@ 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 +if ac_fn_c_try_compile "$LINENO"; then : - ac_c_werror_flag=$ac_save_c_werror_flag +else + 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 + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int @@ -2945,42 +3388,17 @@ 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 +if ac_fn_c_try_compile "$LINENO"; 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 "$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 @@ -2997,23 +3415,18 @@ else CFLAGS= fi fi -{ $as_echo "$as_me:$LINENO: checking for $CC option to accept ISO C89" >&5 +{ $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 test "${ac_cv_prog_cc_c89+set}" = set; then +if ${ac_cv_prog_cc_c89+:} false; 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 +cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include -#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); @@ -3065,32 +3478,9 @@ 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 + if ac_fn_c_try_compile "$LINENO"; 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 @@ -3101,53 +3491,111 @@ fi # AC_CACHE_VAL case "x$ac_cv_prog_cc_c89" in x) - { $as_echo "$as_me:$LINENO: result: none needed" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 $as_echo "none needed" >&6; } ;; xno) - { $as_echo "$as_me:$LINENO: result: unsupported" >&5 + { $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:$LINENO: result: $ac_cv_prog_cc_c89" >&5 + { $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 + +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. */ +int +main () +{ + ; + return 0; +} +_ACEOF + # 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 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 + CFLAGS="$save_CFLAGS"; # 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; }; } + as_fn_error $? "Problem : No Fortran compiler specified nor found!" "$LINENO" 5 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; }; } + 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 + case $ac_cv_prog_cc_stdc in #( + no) : + ac_cv_prog_cc_c99=no; ac_cv_prog_cc_c89=no ;; #( + *) : + { $as_echo "$as_me:${as_lineno-$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 +if ${ac_cv_prog_cc_c99+:} false; 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 +cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include @@ -3286,35 +3734,12 @@ main () return 0; } _ACEOF -for ac_arg in '' -std=gnu99 -std=c99 -c99 -AC99 -xc99=all -qlanglvl=extc99 +for ac_arg in '' -std=gnu99 -std=c99 -c99 -AC99 -D_STDC_C99= -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_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 + if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_c99=$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_c99" != "xno" && break done @@ -3325,36 +3750,31 @@ fi # AC_CACHE_VAL case "x$ac_cv_prog_cc_c99" in x) - { $as_echo "$as_me:$LINENO: result: none needed" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 $as_echo "none needed" >&6; } ;; xno) - { $as_echo "$as_me:$LINENO: result: unsupported" >&5 + { $as_echo "$as_me:${as_lineno-$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 "$as_me:${as_lineno-$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 +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 "$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 test "${ac_cv_prog_cc_c89+set}" = set; then +if ${ac_cv_prog_cc_c89+:} false; 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 +cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include -#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); @@ -3406,32 +3826,9 @@ 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 + if ac_fn_c_try_compile "$LINENO"; 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 @@ -3442,47 +3839,45 @@ fi # AC_CACHE_VAL case "x$ac_cv_prog_cc_c89" in x) - { $as_echo "$as_me:$LINENO: result: none needed" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 $as_echo "none needed" >&6; } ;; xno) - { $as_echo "$as_me:$LINENO: result: unsupported" >&5 + { $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:$LINENO: result: $ac_cv_prog_cc_c89" >&5 + { $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 +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 - fi - ;; esac - { $as_echo "$as_me:$LINENO: checking for $CC option to accept ISO Standard C" >&5 + { $as_echo "$as_me:${as_lineno-$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 + if ${ac_cv_prog_cc_stdc+:} false; then : $as_echo_n "(cached) " >&6 fi - 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 + case $ac_cv_prog_cc_stdc in #( + no) : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 +$as_echo "unsupported" >&6; } ;; #( + '') : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 +$as_echo "none needed" >&6; } ;; #( + *) : + { $as_echo "$as_me:${as_lineno-$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; }; } + as_fn_error $? "Problem : Need a C99 compiler ! " "$LINENO" 5 else C99OPT="$ac_cv_prog_cc_stdc"; fi @@ -3495,10 +3890,10 @@ fi # 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 "$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 +if test "${enable_serial+set}" = set; then : enableval=$enable_serial; pac_cv_serial_mpi="yes"; @@ -3506,11 +3901,11 @@ pac_cv_serial_mpi="yes"; fi if test x"$pac_cv_serial_mpi" == 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_serial_mpi="no"; - { $as_echo "$as_me:$LINENO: result: no." >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no." >&5 $as_echo "no." >&6; } fi @@ -3534,9 +3929,9 @@ if test "X$MPICC" = "X" ; 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_MPICC+set}" = set; then +if ${ac_cv_prog_MPICC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$MPICC"; then @@ -3547,24 +3942,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_MPICC="$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 MPICC=$ac_cv_prog_MPICC if test -n "$MPICC"; then - { $as_echo "$as_me:$LINENO: result: $MPICC" >&5 + { $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 @@ -3583,9 +3978,9 @@ fi 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_MPICC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$MPICC"; then @@ -3596,24 +3991,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_MPICC="$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 MPICC=$ac_cv_prog_MPICC if test -n "$MPICC"; then - { $as_echo "$as_me:$LINENO: result: $MPICC" >&5 + { $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 @@ -3628,110 +4023,22 @@ test -n "$MPICC" || MPICC="$CC" 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 - -/* 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 - -#undef MPI_Init - -/* 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 - -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_func_MPI_Init=yes -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_func_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 -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 + ac_fn_c_check_func "$LINENO" "MPI_Init" "ac_cv_func_MPI_Init" +if test "x$ac_cv_func_MPI_Init" = xyes; then : MPILIBS=" " 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 -/* 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. @@ -3749,60 +4056,31 @@ 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 +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 >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. @@ -3820,56 +4098,27 @@ 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 +if ac_fn_c_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 mpi.h" >&5 + { $as_echo "$as_me:${as_lineno-$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 + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int @@ -3880,35 +4129,14 @@ 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 +if ac_fn_c_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 @@ -3918,33 +4146,27 @@ CC="$acx_mpi_save_CC" # 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; }; } + as_fn_error $? "Cannot find any suitable MPI implementation for C" "$LINENO" 5 : else -cat >>confdefs.h <<\_ACEOF -#define HAVE_MPI 1 -_ACEOF +$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 + case $ac_cv_prog_cc_stdc in #( + no) : + ac_cv_prog_cc_c99=no; ac_cv_prog_cc_c89=no ;; #( + *) : + { $as_echo "$as_me:${as_lineno-$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 +if ${ac_cv_prog_cc_c99+:} false; 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 +cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include @@ -4083,35 +4305,12 @@ main () return 0; } _ACEOF -for ac_arg in '' -std=gnu99 -std=c99 -c99 -AC99 -xc99=all -qlanglvl=extc99 +for ac_arg in '' -std=gnu99 -std=c99 -c99 -AC99 -D_STDC_C99= -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_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 + if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_c99=$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_c99" != "xno" && break done @@ -4122,36 +4321,31 @@ fi # AC_CACHE_VAL case "x$ac_cv_prog_cc_c99" in x) - { $as_echo "$as_me:$LINENO: result: none needed" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 $as_echo "none needed" >&6; } ;; xno) - { $as_echo "$as_me:$LINENO: result: unsupported" >&5 + { $as_echo "$as_me:${as_lineno-$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 "$as_me:${as_lineno-$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 +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 "$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 test "${ac_cv_prog_cc_c89+set}" = set; then +if ${ac_cv_prog_cc_c89+:} false; 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 +cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include -#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); @@ -4203,32 +4397,9 @@ 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 + if ac_fn_c_try_compile "$LINENO"; 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 @@ -4239,44 +4410,44 @@ fi # AC_CACHE_VAL case "x$ac_cv_prog_cc_c89" in x) - { $as_echo "$as_me:$LINENO: result: none needed" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 $as_echo "none needed" >&6; } ;; xno) - { $as_echo "$as_me:$LINENO: result: unsupported" >&5 + { $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:$LINENO: result: $ac_cv_prog_cc_c89" >&5 + { $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 +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 - fi - ;; esac - { $as_echo "$as_me:$LINENO: checking for $CC option to accept ISO Standard C" >&5 + { $as_echo "$as_me:${as_lineno-$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 + if ${ac_cv_prog_cc_stdc+:} false; then : $as_echo_n "(cached) " >&6 fi - 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 + case $ac_cv_prog_cc_stdc in #( + no) : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 +$as_echo "unsupported" >&6; } ;; #( + '') : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 +$as_echo "none needed" >&6; } ;; #( + *) : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_stdc" >&5 $as_echo "$ac_cv_prog_cc_stdc" >&6; } ;; esac - 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' @@ -4289,9 +4460,9 @@ if test "X$MPIFC" = "X" ; 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_MPIFC+set}" = set; then +if ${ac_cv_prog_MPIFC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$MPIFC"; then @@ -4302,24 +4473,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_MPIFC="$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 MPIFC=$ac_cv_prog_MPIFC if test -n "$MPIFC"; then - { $as_echo "$as_me:$LINENO: result: $MPIFC" >&5 + { $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 @@ -4339,9 +4510,9 @@ fi 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_MPIFC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$MPIFC"; then @@ -4352,24 +4523,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_MPIFC="$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 MPIFC=$ac_cv_prog_MPIFC if test -n "$MPIFC"; then - { $as_echo "$as_me:$LINENO: result: $MPIFC" >&5 + { $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 @@ -4384,305 +4555,159 @@ test -n "$MPIFC" || MPIFC="$FC" 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_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 : 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_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_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 -lmpichf90" >&5 + { $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 test "${ac_cv_lib_mpichf90_MPI_Init+set}" = set; then +if ${ac_cv_lib_mpichf90_MPI_Init+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lmpichf90 $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_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_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 + 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_mpichf90_MPI_Init" >&5 +{ $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" = x""yes; then +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_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_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_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_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_fc_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - { $as_echo "$as_me:$LINENO: result: yes" >&5 + end +_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 - - 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 @@ -4692,15 +4717,11 @@ 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" >&5 -$as_echo "$as_me: error: Cannot find any suitable MPI implementation for Fortran" >&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 @@ -4723,15 +4744,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 ############################################################################### @@ -4739,54 +4756,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 -{ $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 @@ -4794,36 +4811,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 @@ -4831,54 +4848,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 @@ -4893,9 +4910,9 @@ 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 @@ -4906,24 +4923,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 @@ -4933,9 +4950,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 @@ -4946,24 +4963,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 @@ -4972,7 +4989,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 @@ -4983,70 +5000,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. @@ -5057,9 +5079,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 *\ * | *\ *) @@ -5069,15 +5088,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'" ;; @@ -5086,17 +5105,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 @@ -5107,24 +5126,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 @@ -5134,9 +5153,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 @@ -5147,24 +5166,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 @@ -5173,7 +5192,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 @@ -5186,10 +5205,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 @@ -5197,9 +5216,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) '* | \ @@ -5209,11 +5228,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 @@ -5221,26 +5241,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 @@ -5251,24 +5264,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 @@ -5276,11 +5289,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 @@ -5288,7 +5301,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;; @@ -5298,11 +5311,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 @@ -5328,14 +5341,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 @@ -5356,18 +5369,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= @@ -5378,15 +5392,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 @@ -5405,646 +5456,265 @@ fi VERSION='3.5' -cat >>confdefs.h <<_ACEOF -#define PACKAGE "$PACKAGE" -_ACEOF - - -cat >>confdefs.h <<_ACEOF -#define VERSION "$VERSION" -_ACEOF - -# Some tools Automake needs. - -ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"} - - -AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"} - - -AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"} - - -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. - -AMTAR=${AMTAR-"${am_missing_run}tar"} - -am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -' - - - - -depcc="$CC" am_compiler_list= - -{ $as_echo "$as_me:$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 - $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'. - mkdir conftest.dir - # Copy depcomp to subdir because otherwise we won't find it if we're - # using a relative directory. - cp "$am_depcomp" conftest.dir - cd conftest.dir - # We will build objects and dependencies in a subdirectory because - # it helps to detect inapplicable dependency modes. For instance - # both Tru64's cc and ICC support -MD to output dependencies as a - # side effect of compilation, but ICC will put the dependencies in - # the current directory while Tru64 will put them in the object - # directory. - mkdir sub - - am_cv_CC_dependencies_compiler_type=none - if test "$am_compiler_list" = ""; then - am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` - fi - am__universal=false - case " $depcc " in #( - *\ -arch\ *\ -arch\ *) am__universal=true ;; - esac - - for depmode in $am_compiler_list; do - # Setup a source with many dependencies, because some compilers - # like to wrap large dependency lists on column 80 (with \), and - # we should not choose a depcomp mode which is confused by this. - # - # We need to recreate these files for each test, as the compiler may - # overwrite some of them when testing with obscure command lines. - # This happens at least with the AIX C compiler. - : > 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 - done - echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf - - # 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 - am__obj=sub/conftest.${OBJEXT-o} - am__minus_obj="-o $am__obj" - case $depmode in - gcc) - # This depmode causes a compiler race in universal mode. - test "$am__universal" = false || continue - ;; - nosideeffect) - # 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 - # 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} - am__minus_obj= - ;; - none) break ;; - esac - if depmode=$depmode \ - source=sub/conftest.c object=$am__obj \ - depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ - $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ - >/dev/null 2>conftest.err && - grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && - grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && - grep $am__obj sub/conftest.Po > /dev/null 2>&1 && - ${MAKE-make} -s -f confmf > /dev/null 2>&1; then - # icc doesn't choke on unknown options, it will just issue warnings - # or remarks (even with -Werror). So we grep stderr for any message - # that says an option was ignored or not supported. - # When given -MP, icc 7.0 and 7.1 complain thusly: - # icc: Command line warning: ignoring option '-M'; no argument required - # The diagnosis changed in icc 8.0: - # icc: Command line remark: option '-MP' not supported - if (grep 'ignoring option' conftest.err || - grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else - am_cv_CC_dependencies_compiler_type=$depmode - break - fi - fi - done - - cd .. - rm -rf conftest.dir -else - am_cv_CC_dependencies_compiler_type=none -fi - -fi -{ $as_echo "$as_me:$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 - - if - test "x$enable_dependency_tracking" != xno \ - && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then - am__fastdepCC_TRUE= - am__fastdepCC_FALSE='#' -else - am__fastdepCC_TRUE='#' - am__fastdepCC_FALSE= -fi - - - - - - -############################################################################### -# Compiler identification (sadly, it is necessary) -############################################################################### -psblas_cv_fc="" - - -{ $as_echo "$as_me:$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' -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_exeext='' - ac_ext='F90' - ac_fc=${MPIFC-$FC}; - cat >conftest.$ac_ext <<_ACEOF - - program main -#ifdef __GNUC__ - print *, "GCC!" -#else - this program will fail -#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 -$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 "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' -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 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' -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_exeext='' - ac_ext='F90' - ac_fc=${MPIFC-$FC}; - cat >conftest.$ac_ext <<_ACEOF - - program main -#ifdef _CRAYFTN - print *, "Cray FTN!" -#else - this program will fail -#endif - end +cat >>confdefs.h <<_ACEOF +#define PACKAGE "$PACKAGE" _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 -$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 "no" >&6; } - echo "configure: failed program was:" >&5 - cat conftest.$ac_ext >&5 -fi +cat >>confdefs.h <<_ACEOF +#define VERSION "$VERSION" +_ACEOF -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -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 +# Some tools Automake needs. +ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"} -if test x"$psblas_cv_fc" == "x" ; then - if eval "$MPIFC -qversion 2>&1 | grep XL 2>/dev/null" ; then - psblas_cv_fc="xlf" - # Some configurations of the XLF want "-WF," prepended to -D.. flags. - # TODO : discover the exact conditions when the usage of -WF is needed. - psblas_cv_define_prepend="-WF," - if eval "$MPIFC -qversion 2>&1 | grep -e\"Version: 10\.\" 2>/dev/null"; then - FDEFINES="$psblas_cv_define_prepend-DXLF_10 $FDEFINES" - fi +AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"} - # Note : there could be problems with old xlf compiler versions ( <10.1 ) - # since (as far as it is known to us) -WF, is not used in earlier versions. - # More problems could be undocumented yet. - elif eval "$MPIFC -V 2>&1 | grep Sun 2>/dev/null" ; then - # Sun compiler detection - psblas_cv_fc="sun" - elif eval "$MPIFC -V 2>&1 | grep Portland 2>/dev/null" ; then - # Portland group compiler detection +AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"} - psblas_cv_fc="pg" - elif eval "$MPIFC -V 2>&1 | grep Intel.*Fortran.*Compiler 2>/dev/null" ; then - # Intel compiler identification - psblas_cv_fc="ifc" - elif eval "$MPIFC -v 2>&1 | grep NAG 2>/dev/null" ; then - psblas_cv_fc="nag" - FC="$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: 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_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' -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 +AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"} - ac_exeext='' - ac_ext='F90' - ac_fc=${MPIFC-$FC}; - cat >conftest.$ac_ext <<_ACEOF - program main -#if ( __GNUC__ >= 4 && __GNUC_MINOR__ >= 8 ) || ( __GNUC__ > 4 ) - print *, "ok" -#else - this program will fail -#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 -$as_echo "yes" >&6; } - : -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 +MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"} - { $as_echo "$as_me:$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: 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; }; } +# For better backward compatibility. To be removed once Automake 1.9.x +# dies out for good. For more background, see: +# +# +mkdir_p='$(MKDIR_P)' -fi +# 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}' -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -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 +# We'll loop over all known methods to create a tar archive until one works. +_am_tools='gnutar pax cpio none' -fi +am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -' -############################################################################### -# Linking, symbol mangling, and misc tests -############################################################################### -# Note : This is functional to Make.inc rules and structure (see below). -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 -{ $as_echo "$as_me:$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 + +depcc="$CC" am_compiler_list= + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 +$as_echo_n "checking dependency style of $depcc... " >&6; } +if ${am_cv_CC_dependencies_compiler_type+:} false; then : $as_echo_n "(cached) " >&6 else - # Double quotes because CPP needs to be expanded - for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" - do - ac_preproc_ok=false -for ac_c_preproc_warn_flag in '' yes -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 -/* end confdefs.h. */ -#ifdef __STDC__ -# include -#else -# include -#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 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". + 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. + cp "$am_depcomp" conftest.dir + cd conftest.dir + # We will build objects and dependencies in a subdirectory because + # it helps to detect inapplicable dependency modes. For instance + # both Tru64's cc and ICC support -MD to output dependencies as a + # side effect of compilation, but ICC will put the dependencies in + # the current directory while Tru64 will put them in the object + # directory. + mkdir sub + + am_cv_CC_dependencies_compiler_type=none + if test "$am_compiler_list" = ""; then + am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` + fi + am__universal=false + case " $depcc " in #( + *\ -arch\ *\ -arch\ *) am__universal=true ;; + esac + + for depmode in $am_compiler_list; do + # Setup a source with many dependencies, because some compilers + # like to wrap large dependency lists on column 80 (with \), and + # we should not choose a depcomp mode which is confused by this. + # + # We need to recreate these files for each test, as the compiler may + # overwrite some of them when testing with obscure command lines. + # This happens at least with the AIX C compiler. + : > 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 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" + # 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. + am__obj=sub/conftest.${OBJEXT-o} + am__minus_obj="-o $am__obj" + case $depmode in + gcc) + # This depmode causes a compiler race in universal mode. + test "$am__universal" = false || continue + ;; + nosideeffect) + # 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 + ;; + 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} + am__minus_obj= + ;; + none) break ;; + esac + if depmode=$depmode \ + source=sub/conftest.c object=$am__obj \ + depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ + $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ + >/dev/null 2>conftest.err && + grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && + grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && + grep $am__obj sub/conftest.Po > /dev/null 2>&1 && + ${MAKE-make} -s -f confmf > /dev/null 2>&1; then + # icc doesn't choke on unknown options, it will just issue warnings + # or remarks (even with -Werror). So we grep stderr for any message + # that says an option was ignored or not supported. + # When given -MP, icc 7.0 and 7.1 complain thusly: + # icc: Command line warning: ignoring option '-M'; no argument required + # The diagnosis changed in icc 8.0: + # icc: Command line remark: option '-MP' not supported + if (grep 'ignoring option' conftest.err || + grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else + am_cv_CC_dependencies_compiler_type=$depmode + break + fi + fi + done - # Broken: fails on valid input. -continue + cd .. + rm -rf conftest.dir +else + am_cv_CC_dependencies_compiler_type=none fi -rm -f conftest.err conftest.$ac_ext +fi +{ $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 - # 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 -/* 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 - # Broken: success on invalid input. -continue + if + test "x$enable_dependency_tracking" != xno \ + && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then + am__fastdepCC_TRUE= + am__fastdepCC_FALSE='#' else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - # Passes both tests. -ac_preproc_ok=: -break + am__fastdepCC_TRUE='#' + am__fastdepCC_FALSE= fi -rm -f conftest.err 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 - break -fi - done - ac_cv_prog_CPP=$CPP +# 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! -fi - CPP=$ac_cv_prog_CPP -else - ac_cv_prog_CPP=$CPP -fi -{ $as_echo "$as_me:$LINENO: result: $CPP" >&5 -$as_echo "$CPP" >&6; } -ac_preproc_ok=false -for ac_c_preproc_warn_flag in '' yes -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 -/* end confdefs.h. */ -#ifdef __STDC__ -# include -#else -# include -#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 +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: - # Broken: fails on valid input. -continue -fi +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. -rm -f conftest.err conftest.$ac_ext +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. - # 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 -/* 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 - # Broken: success on invalid input. -continue -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 +You can download and install GNU coreutils to get an 'rm' implementation +that behaves properly: . - # Passes both tests. -ac_preproc_ok=: -break +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 -rm -f conftest.err 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 - : + + +############################################################################### +# Compiler identification (sadly, it is necessary) +############################################################################### +psblas_cv_fc="" + + +{ $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' +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_exeext='' + ac_ext='F90' + ac_fc=${MPIFC-$FC}; + cat > conftest.$ac_ext <<_ACEOF + + program main +#ifdef __GNUC__ + print *, "GCC!" +#else + this program will fail +#endif + end +_ACEOF +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:$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; }; }; } -fi + { $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' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' @@ -6052,741 +5722,560 @@ 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_n "checking for grep that handles long lines and -e... " >&6; } -if test "${ac_cv_path_GREP+set}" = set; then - $as_echo_n "(cached) " >&6 -else - if test -z "$GREP"; then - ac_path_GREP_found=false - # Loop through the user's path and test for each of PROGNAME-LIST - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -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_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 -# 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 -*GNU*) - ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;; -*) - ac_count=0 - $as_echo_n 0123456789 >"conftest.in" - while : - do - cat "conftest.in" "conftest.in" >"conftest.tmp" - mv "conftest.tmp" "conftest.in" - cp "conftest.in" "conftest.nl" - $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` - 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" - ac_path_GREP_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_GREP_found && break 3 - 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; }; } - fi -else - ac_cv_path_GREP=$GREP -fi - -fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_path_GREP" >&5 -$as_echo "$ac_cv_path_GREP" >&6; } - GREP="$ac_cv_path_GREP" +{ $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' +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 egrep" >&5 -$as_echo_n "checking for egrep... " >&6; } -if test "${ac_cv_path_EGREP+set}" = set; then - $as_echo_n "(cached) " >&6 -else - if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 - then ac_cv_path_EGREP="$GREP -E" - else - if test -z "$EGREP"; then - ac_path_EGREP_found=false - # Loop through the user's path and test for each of PROGNAME-LIST - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -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_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 -# 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 -*GNU*) - ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;; -*) - ac_count=0 - $as_echo_n 0123456789 >"conftest.in" - while : - do - cat "conftest.in" "conftest.in" >"conftest.tmp" - mv "conftest.tmp" "conftest.in" - cp "conftest.in" "conftest.nl" - $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` - 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_exeext='' + ac_ext='F90' + ac_fc=${MPIFC-$FC}; + cat > conftest.$ac_ext <<_ACEOF - $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 + program main +#ifdef _CRAYFTN + print *, "Cray FTN!" +#else + this program will fail +#endif + end +_ACEOF +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 - ac_cv_path_EGREP=$EGREP -fi + { $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 fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_path_EGREP" >&5 -$as_echo "$ac_cv_path_EGREP" >&6; } - EGREP="$ac_cv_path_EGREP" +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +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 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 () -{ +if test x"$psblas_cv_fc" == "x" ; then + if eval "$MPIFC -qversion 2>&1 | grep XL 2>/dev/null" ; then + psblas_cv_fc="xlf" + # Some configurations of the XLF want "-WF," prepended to -D.. flags. + # TODO : discover the exact conditions when the usage of -WF is needed. + psblas_cv_define_prepend="-WF," + if eval "$MPIFC -qversion 2>&1 | grep -e\"Version: 10\.\" 2>/dev/null"; then + FDEFINES="$psblas_cv_define_prepend-DXLF_10 $FDEFINES" + fi - ; - 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 + # Note : there could be problems with old xlf compiler versions ( <10.1 ) + # since (as far as it is known to us) -WF, is not used in earlier versions. + # More problems could be undocumented yet. + elif eval "$MPIFC -V 2>&1 | grep Sun 2>/dev/null" ; then + # Sun compiler detection - ac_cv_header_stdc=no -fi + psblas_cv_fc="sun" + elif eval "$MPIFC -V 2>&1 | grep Portland 2>/dev/null" ; then + # Portland group compiler detection -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + psblas_cv_fc="pg" + elif eval "$MPIFC -V 2>&1 | grep Intel.*Fortran.*Compiler 2>/dev/null" ; then + # Intel compiler identification -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 + psblas_cv_fc="ifc" + elif eval "$MPIFC -v 2>&1 | grep NAG 2>/dev/null" ; then + psblas_cv_fc="nag" + FC="$MPIFC" + else + psblas_cv_fc="" + # unsupported MPI Fortran compiler + { $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:${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' +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_exeext='' + ac_ext='F90' + ac_fc=${MPIFC-$FC}; + cat > conftest.$ac_ext <<_ACEOF + program main +#if ( __GNUC__ >= 4 && __GNUC_MINOR__ >= 8 ) || ( __GNUC__ > 4 ) + print *, "ok" +#else + this program will fail +#endif + end _ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "memchr" >/dev/null 2>&1; then - : +if ac_fn_fc_try_compile "$LINENO"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + : else - ac_cv_header_stdc=no -fi -rm -f conftest* + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + { $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_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' +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 $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 - : +############################################################################### +# Linking, symbol mangling, and misc tests +############################################################################### + +# Note : This is functional to Make.inc rules and structure (see below). +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 +{ $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 ${ac_cv_prog_CPP+:} false; 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 + # Double quotes because CPP needs to be expanded + for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" + do + ac_preproc_ok=false +for ac_c_preproc_warn_flag in '' yes +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 confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -#include -#include -#if ((' ' & 0x0FF) == 0x020) -# define ISLOWER(c) ('a' <= (c) && (c) <= 'z') -# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) +#ifdef __STDC__ +# include #else -# define ISLOWER(c) \ - (('a' <= (c) && (c) <= 'i') \ - || ('j' <= (c) && (c) <= 'r') \ - || ('s' <= (c) && (c) <= 'z')) -# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) +# include #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; -} + Syntax error _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 - : +if ac_fn_c_try_cpp "$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 + # Broken: fails on valid input. +continue +fi +rm -f conftest.err conftest.i conftest.$ac_ext -( exit $ac_status ) -ac_cv_header_stdc=no + # OK, works on sane cases. Now check whether nonexistent headers + # can be detected and how. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : + # Broken: success on invalid input. +continue +else + # Passes both tests. +ac_preproc_ok=: +break fi -rm -rf conftest.dSYM -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext 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.i conftest.err conftest.$ac_ext +if $ac_preproc_ok; then : + break fi + done + ac_cv_prog_CPP=$CPP + +fi + CPP=$ac_cv_prog_CPP +else + ac_cv_prog_CPP=$CPP +fi +{ $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 +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 confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#ifdef __STDC__ +# include +#else +# include +#endif + Syntax error +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : +else + # Broken: fails on valid input. +continue 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 +rm -f conftest.err conftest.i conftest.$ac_ext -cat >>confdefs.h <<\_ACEOF -#define STDC_HEADERS 1 + # OK, works on sane cases. Now check whether nonexistent headers + # can be detected and how. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include _ACEOF - +if ac_fn_c_try_cpp "$LINENO"; then : + # Broken: success on invalid input. +continue +else + # Passes both tests. +ac_preproc_ok=: +break fi +rm -f conftest.err conftest.i conftest.$ac_ext -# On IRIX 5.3, sys/types and inttypes.h are conflicting. - - - - - +done +# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. +rm -f conftest.i conftest.err conftest.$ac_ext +if $ac_preproc_ok; then : +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 $? "C preprocessor \"$CPP\" fails sanity check +See \`config.log' for more details" "$LINENO" 5; } +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 -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 "$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 ${ac_cv_path_GREP+:} false; 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;; + if test -z "$GREP"; then + ac_path_GREP_found=false + # Loop through the user's path and test for each of PROGNAME-LIST + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +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_exec_ext in '' $ac_executable_extensions; do + ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext" + 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 +*GNU*) + ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;; +*) + ac_count=0 + $as_echo_n 0123456789 >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + $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 + 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" + ac_path_GREP_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_GREP_found && break 3 + done + done + done +IFS=$as_save_IFS + if test -z "$ac_cv_path_GREP"; then + 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 -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 - -done +{ $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" -# 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 egrep" >&5 +$as_echo_n "checking for egrep... " >&6; } +if ${ac_cv_path_EGREP+:} 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 -/* 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;; + if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 + then ac_cv_path_EGREP="$GREP -E" + else + if test -z "$EGREP"; then + ac_path_EGREP_found=false + # Loop through the user's path and test for each of PROGNAME-LIST + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +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_exec_ext in '' $ac_executable_extensions; do + ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext" + 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 +*GNU*) + ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;; +*) + ac_count=0 + $as_echo_n 0123456789 >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + $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 + 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 -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 + $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 - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 + ac_cv_path_EGREP=$EGREP +fi - 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` + fi fi +{ $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" -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 +{ $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 + 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_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 -/* 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_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` +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_header_stdc=yes +else + 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 - ac_lo= ac_hi= +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. */ +#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* -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; } @@ -6805,12 +6294,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 -{ $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 @@ -6818,24 +6307,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 @@ -6850,11 +6322,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. @@ -6872,38 +6340,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} @@ -6931,11 +6372,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. @@ -6953,38 +6390,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' @@ -6993,16 +6403,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 @@ -7014,22 +6424,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 @@ -7047,7 +6450,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 @@ -7082,7 +6485,7 @@ 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; } ############################################################################### @@ -7147,7 +6550,7 @@ if test "X$FCOPT" == "X" ; then # other compilers .. FCOPT="-fast $FCOPT" elif test "X$psblas_cv_fc" == X"cray" ; then - FCOPT="-O3 -em $FCOPT" + FCOPT="-O3 -em -J. $FCOPT" elif test "X$psblas_cv_fc" == X"nag" ; then # NAG compiler .. FCOPT="-O2 " @@ -7201,9 +6604,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} @@ -7217,7 +6620,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 @@ -7227,24 +6630,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'` @@ -7254,12 +6640,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 @@ -7271,12 +6653,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} @@ -7291,7 +6673,7 @@ done mkdir tmpdir_$i cd tmpdir_$i ac_ext='f90'; -cat >conftest.$ac_ext <<_ACEOF +cat > conftest.$ac_ext <<_ACEOF module conftest_module contains @@ -7301,32 +6683,9 @@ 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 - : -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - +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" @@ -7334,7 +6693,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 @@ -7342,41 +6701,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' @@ -7386,7 +6720,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%% *}" @@ -7408,7 +6742,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' @@ -7418,46 +6752,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' @@ -7469,7 +6782,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' @@ -7479,44 +6792,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 + program test + use mpi + end program test +_ACEOF +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' @@ -7529,10 +6821,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"; @@ -7540,11 +6832,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 @@ -7562,7 +6854,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' @@ -7572,7 +6864,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 @@ -7624,43 +6916,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' @@ -7673,7 +6941,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' @@ -7683,7 +6951,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 @@ -7695,43 +6963,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' @@ -7741,7 +6985,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' @@ -7751,7 +6995,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 @@ -7782,43 +7026,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' @@ -7828,7 +7048,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' @@ -7838,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 xtt type foo @@ -7855,43 +7075,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' @@ -7901,7 +7097,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' @@ -7909,7 +7105,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)) @@ -7918,43 +7114,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' @@ -7964,7 +7136,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' @@ -7974,49 +7146,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' @@ -8030,7 +7178,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' @@ -8040,44 +7188,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' @@ -8087,7 +7214,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' @@ -8097,7 +7224,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 @@ -8113,39 +7240,18 @@ module conftest 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 +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' @@ -8155,7 +7261,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' @@ -8165,7 +7271,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 @@ -8175,38 +7281,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' @@ -8216,7 +7301,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' @@ -8226,44 +7311,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' @@ -8273,7 +7337,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' @@ -8283,7 +7347,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 @@ -8304,38 +7368,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' @@ -8345,7 +7388,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' @@ -8355,7 +7398,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 @@ -8372,38 +7415,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' @@ -8413,7 +7435,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' @@ -8423,7 +7445,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 @@ -8438,38 +7460,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' @@ -8479,7 +7480,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' @@ -8489,7 +7490,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 @@ -8506,38 +7507,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' @@ -8600,7 +7580,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 @@ -8612,7 +7592,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 @@ -8638,46 +7618,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 @@ -8692,18 +7647,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. @@ -8721,115 +7672,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. @@ -8847,43 +7744,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 @@ -8901,18 +7773,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. @@ -8930,115 +7798,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_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. @@ -9053,46 +7867,21 @@ main () { 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 + return 0; +} +_ACEOF +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 @@ -9111,153 +7900,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 @@ -9275,55 +7989,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 -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 @@ -9336,118 +8025,62 @@ if test $pac_blas_ok = no; then # 64 bit if test $host_cpu = x86_64; then as_ac_Lib=`$as_echo "ac_cv_lib_mkl_gf_lp64_$sgemm" | $as_tr_sh` -{ $as_echo "$as_me:$LINENO: checking for $sgemm in -lmkl_gf_lp64" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $sgemm in -lmkl_gf_lp64" >&5 $as_echo_n "checking for $sgemm in -lmkl_gf_lp64... " >&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="-lmkl_gf_lp64 -lmkl_gf_lp64 -lmkl_sequential -lmkl_core -lpthread $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="-lmkl_gf_lp64 -lmkl_sequential -lmkl_core -lpthread $BLAS_LIBDIR" fi # 32 bit elif test $host_cpu = i686; then as_ac_Lib=`$as_echo "ac_cv_lib_mkl_gf_$sgemm" | $as_tr_sh` -{ $as_echo "$as_me:$LINENO: checking for $sgemm in -lmkl_gf" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $sgemm in -lmkl_gf" >&5 $as_echo_n "checking for $sgemm in -lmkl_gf... " >&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="-lmkl_gf -lmkl_gf -lmkl_sequential -lmkl_core -lpthread $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="-lmkl_gf -lmkl_sequential -lmkl_core -lpthread $BLAS_LIBDIR" fi @@ -9457,118 +8090,62 @@ fi # 64-bit if test $host_cpu = x86_64; then as_ac_Lib=`$as_echo "ac_cv_lib_mkl_intel_lp64_$sgemm" | $as_tr_sh` -{ $as_echo "$as_me:$LINENO: checking for $sgemm in -lmkl_intel_lp64" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $sgemm in -lmkl_intel_lp64" >&5 $as_echo_n "checking for $sgemm in -lmkl_intel_lp64... " >&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="-lmkl_intel_lp64 -lmkl_intel_lp64 -lmkl_sequential -lmkl_core -lpthread $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="-lmkl_intel_lp64 -lmkl_sequential -lmkl_core -lpthread $BLAS_LIBDIR" fi # 32-bit elif test $host_cpu = i686; then as_ac_Lib=`$as_echo "ac_cv_lib_mkl_intel_$sgemm" | $as_tr_sh` -{ $as_echo "$as_me:$LINENO: checking for $sgemm in -lmkl_intel" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $sgemm in -lmkl_intel" >&5 $as_echo_n "checking for $sgemm in -lmkl_intel... " >&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="-lmkl_intel -lmkl_intel -lmkl_sequential -lmkl_core -lpthread $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="-lmkl_intel -lmkl_sequential -lmkl_core -lpthread $BLAS_LIBDIR" fi @@ -9578,59 +8155,31 @@ fi # Old versions of MKL if test $pac_blas_ok = no; then as_ac_Lib=`$as_echo "ac_cv_lib_mkl_$sgemm" | $as_tr_sh` -{ $as_echo "$as_me:$LINENO: checking for $sgemm in -lmkl" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $sgemm in -lmkl" >&5 $as_echo_n "checking for $sgemm in -lmkl... " >&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="-lmkl -lguide -lpthread $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="-lmkl -lguide -lpthread $BLAS_LIBDIR" fi @@ -9639,100 +8188,48 @@ fi # BLAS in Apple vecLib library? if test $pac_blas_ok = no; then save_LIBS="$LIBS"; LIBS="-framework vecLib $LIBS" - { $as_echo "$as_me:$LINENO: checking for $sgemm in -framework vecLib" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $sgemm in -framework vecLib" >&5 $as_echo_n "checking for $sgemm in -framework vecLib... " >&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;BLAS_LIBS="-framework vecLib $BLAS_LIBDIR" -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 - { $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 # 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 @@ -9740,55 +8237,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 @@ -9798,104 +8270,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 @@ -9908,55 +8330,30 @@ 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 "$as_me:${as_lineno-$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 +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 +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_scs_sgemm=yes else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_lib_scs_sgemm=no + ac_cv_lib_scs_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_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 @@ -9965,59 +8362,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 @@ -10026,108 +8395,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 @@ -10141,56 +8457,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 + call sgemm + end +_ACEOF +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 @@ -10205,43 +8495,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? @@ -10251,55 +8516,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 @@ -10311,16 +8551,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 @@ -10329,7 +8565,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 @@ -10351,7 +8587,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' @@ -10363,16 +8599,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 @@ -10393,7 +8629,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' @@ -10405,16 +8641,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 @@ -10439,59 +8675,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 @@ -10539,16 +8747,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 @@ -10568,7 +8776,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 @@ -10593,7 +8801,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' @@ -10601,7 +8809,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='' @@ -10609,7 +8817,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='' @@ -10617,7 +8825,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='' @@ -10647,152 +8855,13 @@ if test "x$psblas_cv_metislibdir" != "x"; then METIS_LIBDIR="-L$psblas_cv_metislibdir" fi -{ $as_echo "$as_me:$LINENO: metis dir $psblas_cv_metisdir" >&5 +{ $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` -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 https://github.com/sfilippone/psblas3/issues ## -## ----------------------------------------------------------- ## -_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 +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 @@ -10808,152 +8877,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 https://github.com/sfilippone/psblas3/issues ## -## ----------------------------------------------------------- ## -_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 @@ -10969,150 +8899,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 https://github.com/sfilippone/psblas3/issues ## -## ----------------------------------------------------------- ## -_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 @@ -11130,13 +8921,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 "$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. @@ -11149,57 +8936,28 @@ 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 +return METIS_PartGraphKway (); + ; + 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; 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; } 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. @@ -11217,52 +8975,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_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. @@ -11280,50 +9009,21 @@ 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 "$as_me:${as_lineno-$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 + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. @@ -11341,39 +9041,14 @@ return METIS_SetDefaultOptions (); 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. Unusable METIS version, sorry."; 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 @@ -11387,7 +9062,7 @@ fi # Check whether --with-amd was given. -if test "${with_amd+set}" = set; then +if test "${with_amd+set}" = set; then : withval=$with_amd; psblas_cv_amd=$withval else psblas_cv_amd='-lamd' @@ -11395,7 +9070,7 @@ fi # Check whether --with-amddir was given. -if test "${with_amddir+set}" = set; then +if test "${with_amddir+set}" = set; then : withval=$with_amddir; psblas_cv_amddir=$withval else psblas_cv_amddir='' @@ -11403,7 +9078,7 @@ fi # Check whether --with-amdincdir was given. -if test "${with_amdincdir+set}" = set; then +if test "${with_amdincdir+set}" = set; then : withval=$with_amdincdir; psblas_cv_amdincdir=$withval else psblas_cv_amdincdir='' @@ -11411,7 +9086,7 @@ fi # Check whether --with-amdlibdir was given. -if test "${with_amdlibdir+set}" = set; then +if test "${with_amdlibdir+set}" = set; then : withval=$with_amdlibdir; psblas_cv_amdlibdir=$withval else psblas_cv_amdlibdir='' @@ -11441,141 +9116,10 @@ if test "x$psblas_cv_amdlibdir" != "x"; then AMD_LIBDIR="-L$psblas_cv_amdlibdir" fi -{ $as_echo "$as_me:$LINENO: amd dir $psblas_cv_amddir" >&5 +{ $as_echo "$as_me:${as_lineno-$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 -/* 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 https://github.com/sfilippone/psblas3/issues ## -## ----------------------------------------------------------- ## -_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 +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="" @@ -11587,141 +9131,10 @@ if test "x$pac_amd_header_ok" == "xno" ; then 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 "$as_me:${as_lineno-$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 -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 -/* 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 https://github.com/sfilippone/psblas3/issues ## -## ----------------------------------------------------------- ## -_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 + 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="" @@ -11733,139 +9146,8 @@ 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 -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 -/* 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 https://github.com/sfilippone/psblas3/issues ## -## ----------------------------------------------------------- ## -_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 + 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="" @@ -11879,13 +9161,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. @@ -11903,52 +9181,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. @@ -11962,56 +9211,27 @@ int main () { 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 + ; + return 0; +} +_ACEOF +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. @@ -12029,39 +9249,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 @@ -12190,13 +9385,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 @@ -12204,8 +9399,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" @@ -12227,12 +9422,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 @@ -12282,33 +9488,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= @@ -12319,13 +9528,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. @@ -12335,17 +9545,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 @@ -12353,23 +9564,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 @@ -12377,7 +9580,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 @@ -12388,7 +9597,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\\(.*\\)"`;; @@ -12411,13 +9620,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 @@ -12427,15 +9629,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 ;; @@ -12447,12 +9650,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='> ' @@ -12464,7 +9671,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 @@ -12478,8 +9767,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\(//\)$' \| \ @@ -12499,76 +9792,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 @@ -12583,49 +9825,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'" @@ -12635,13 +9913,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.5, which was -generated by GNU Autoconf 2.63. Invocation command line was +generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES CONFIG_HEADERS = $CONFIG_HEADERS @@ -12669,13 +9953,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 @@ -12689,16 +9975,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.5 -configured by $0, generated by GNU Autoconf 2.63, - with options \\"`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\" +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." @@ -12716,11 +10003,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 @@ -12734,14 +10026,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 ;; @@ -12750,11 +10045,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 @@ -12771,7 +10065,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' @@ -12808,9 +10102,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 @@ -12832,26 +10124,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. @@ -12859,7 +10149,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' @@ -12867,7 +10163,7 @@ else ac_cs_awk_cr=$ac_cr fi -echo 'BEGIN {' >"$tmp/subs1.awk" && +echo 'BEGIN {' >"$ac_tmp/subs1.awk" && _ACEOF @@ -12876,24 +10172,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 @@ -12901,7 +10191,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 @@ -12915,7 +10205,7 @@ s/'"$ac_delim"'$// t delim :nl h -s/\(.\{148\}\).*/\1/ +s/\(.\{148\}\)..*/\1/ t more1 s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/ p @@ -12929,7 +10219,7 @@ s/.\{148\}// t nl :delim h -s/\(.\{148\}\).*/\1/ +s/\(.\{148\}\)..*/\1/ t more2 s/["\\]/\\&/g; s/^/"/; s/$/"/ p @@ -12949,7 +10239,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 = "" @@ -12981,23 +10271,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 @@ -13015,9 +10311,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 @@ -13036,7 +10330,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 `:'. @@ -13045,12 +10339,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 @@ -13061,7 +10353,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. @@ -13073,10 +10365,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 @@ -13104,47 +10394,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 @@ -13201,7 +10451,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 @@ -13211,12 +10460,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 @@ -13226,7 +10474,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 @@ -13254,31 +10502,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 @@ -13286,7 +10531,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 @@ -13299,7 +10544,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. @@ -13333,21 +10578,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" || @@ -13373,47 +10616,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 @@ -13425,15 +10628,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. @@ -13454,17 +10654,17 @@ 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: MPIFC : ${MPIFC} diff --git a/configure.ac b/configure.ac index ce7a73b9..238d4f8b 100755 --- a/configure.ac +++ b/configure.ac @@ -393,7 +393,7 @@ if test "X$FCOPT" == "X" ; then # other compilers .. FCOPT="-fast $FCOPT" elif test "X$psblas_cv_fc" == X"cray" ; then - FCOPT="-O3 -em $FCOPT" + FCOPT="-O3 -em -J. $FCOPT" elif test "X$psblas_cv_fc" == X"nag" ; then # NAG compiler .. FCOPT="-O2 " From b7a50f6e8b0dfd3b56cc7dfd6d6043d4e6ebe980 Mon Sep 17 00:00:00 2001 From: Salvatore Filippone Date: Wed, 14 Mar 2018 20:27:13 +0000 Subject: [PATCH 26/35] Reinstate target on precbld. --- prec/impl/psb_cprecbld.f90 | 8 ++++---- prec/impl/psb_dprecbld.f90 | 8 ++++---- prec/impl/psb_sprecbld.f90 | 8 ++++---- prec/impl/psb_zprecbld.f90 | 8 ++++---- prec/psb_c_prec_type.f90 | 2 +- prec/psb_d_prec_type.f90 | 2 +- prec/psb_s_prec_type.f90 | 2 +- prec/psb_z_prec_type.f90 | 2 +- 8 files changed, 20 insertions(+), 20 deletions(-) diff --git a/prec/impl/psb_cprecbld.f90 b/prec/impl/psb_cprecbld.f90 index 46d12f5d..4457a199 100644 --- a/prec/impl/psb_cprecbld.f90 +++ b/prec/impl/psb_cprecbld.f90 @@ -35,10 +35,10 @@ subroutine psb_cprecbld(a,desc_a,p,info,amold,vmold,imold) 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(inout), target :: desc_a - class(psb_cprec_type),intent(inout) :: p - integer(psb_ipk_), intent(out) :: info + type(psb_cspmat_type), intent(in), target :: a + type(psb_desc_type), intent(inout), target :: desc_a + class(psb_cprec_type),intent(inout), target :: p + 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 diff --git a/prec/impl/psb_dprecbld.f90 b/prec/impl/psb_dprecbld.f90 index 8208b787..8027c8da 100644 --- a/prec/impl/psb_dprecbld.f90 +++ b/prec/impl/psb_dprecbld.f90 @@ -35,10 +35,10 @@ subroutine psb_dprecbld(a,desc_a,p,info,amold,vmold,imold) 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(inout), target :: desc_a - class(psb_dprec_type),intent(inout) :: p - integer(psb_ipk_), intent(out) :: info + type(psb_dspmat_type), intent(in), target :: a + type(psb_desc_type), intent(inout), target :: desc_a + class(psb_dprec_type),intent(inout), target :: p + 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 diff --git a/prec/impl/psb_sprecbld.f90 b/prec/impl/psb_sprecbld.f90 index 80174b29..328d9f01 100644 --- a/prec/impl/psb_sprecbld.f90 +++ b/prec/impl/psb_sprecbld.f90 @@ -35,10 +35,10 @@ subroutine psb_sprecbld(a,desc_a,p,info,amold,vmold,imold) 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(inout), target :: desc_a - class(psb_sprec_type),intent(inout) :: p - integer(psb_ipk_), intent(out) :: info + type(psb_sspmat_type), intent(in), target :: a + type(psb_desc_type), intent(inout), target :: desc_a + class(psb_sprec_type),intent(inout), target :: p + 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 diff --git a/prec/impl/psb_zprecbld.f90 b/prec/impl/psb_zprecbld.f90 index ada29b35..4f6559cf 100644 --- a/prec/impl/psb_zprecbld.f90 +++ b/prec/impl/psb_zprecbld.f90 @@ -35,10 +35,10 @@ subroutine psb_zprecbld(a,desc_a,p,info,amold,vmold,imold) 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(inout), target :: desc_a - class(psb_zprec_type),intent(inout) :: p - integer(psb_ipk_), intent(out) :: info + type(psb_zspmat_type), intent(in), target :: a + type(psb_desc_type), intent(inout), target :: desc_a + class(psb_zprec_type),intent(inout), target :: p + 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 diff --git a/prec/psb_c_prec_type.f90 b/prec/psb_c_prec_type.f90 index 32abaf79..a7bc4031 100644 --- a/prec/psb_c_prec_type.f90 +++ b/prec/psb_c_prec_type.f90 @@ -77,7 +77,7 @@ module psb_c_prec_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) :: prec + 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 diff --git a/prec/psb_d_prec_type.f90 b/prec/psb_d_prec_type.f90 index c822c230..814baa74 100644 --- a/prec/psb_d_prec_type.f90 +++ b/prec/psb_d_prec_type.f90 @@ -77,7 +77,7 @@ module psb_d_prec_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) :: prec + 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 diff --git a/prec/psb_s_prec_type.f90 b/prec/psb_s_prec_type.f90 index 22f484ee..5cbc1018 100644 --- a/prec/psb_s_prec_type.f90 +++ b/prec/psb_s_prec_type.f90 @@ -77,7 +77,7 @@ module psb_s_prec_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) :: prec + 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 diff --git a/prec/psb_z_prec_type.f90 b/prec/psb_z_prec_type.f90 index 47423fe7..526628b9 100644 --- a/prec/psb_z_prec_type.f90 +++ b/prec/psb_z_prec_type.f90 @@ -77,7 +77,7 @@ module psb_z_prec_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) :: prec + 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 From a5f9a781f503248802258fe397d6c95c20e426d6 Mon Sep 17 00:00:00 2001 From: Salvatore Filippone Date: Wed, 14 Mar 2018 20:37:09 +0000 Subject: [PATCH 27/35] Fixed time measurements. --- test/pargen/psb_d_pde2d.f90 | 2 +- test/pargen/psb_d_pde3d.f90 | 2 +- test/pargen/psb_s_pde2d.f90 | 2 +- test/pargen/psb_s_pde3d.f90 | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/test/pargen/psb_d_pde2d.f90 b/test/pargen/psb_d_pde2d.f90 index 64ef9ba9..a1d82c2b 100644 --- a/test/pargen/psb_d_pde2d.f90 +++ b/test/pargen/psb_d_pde2d.f90 @@ -186,7 +186,7 @@ contains n = m nnz = ((n*7)/(np)) if(iam == psb_root_) write(psb_out_unit,'("Generating Matrix (size=",i0,")...")')n - + t0 = psb_wtime() select case(partition_) case(1) ! A BLOCK partition diff --git a/test/pargen/psb_d_pde3d.f90 b/test/pargen/psb_d_pde3d.f90 index 5816129a..9104277d 100644 --- a/test/pargen/psb_d_pde3d.f90 +++ b/test/pargen/psb_d_pde3d.f90 @@ -187,7 +187,7 @@ contains n = m nnz = ((n*9)/(np)) if(iam == psb_root_) write(psb_out_unit,'("Generating Matrix (size=",i0,")...")')n - + t0 = psb_wtime() select case(partition_) case(1) ! A BLOCK partition diff --git a/test/pargen/psb_s_pde2d.f90 b/test/pargen/psb_s_pde2d.f90 index 885c011e..76128d7c 100644 --- a/test/pargen/psb_s_pde2d.f90 +++ b/test/pargen/psb_s_pde2d.f90 @@ -186,7 +186,7 @@ contains n = m nnz = ((n*7)/(np)) if(iam == psb_root_) write(psb_out_unit,'("Generating Matrix (size=",i0,")...")')n - + t0 = psb_wtime() select case(partition_) case(1) ! A BLOCK partition diff --git a/test/pargen/psb_s_pde3d.f90 b/test/pargen/psb_s_pde3d.f90 index 6ad9d141..56ca4b01 100644 --- a/test/pargen/psb_s_pde3d.f90 +++ b/test/pargen/psb_s_pde3d.f90 @@ -187,7 +187,7 @@ contains n = m nnz = ((n*9)/(np)) if(iam == psb_root_) write(psb_out_unit,'("Generating Matrix (size=",i0,")...")')n - + t0 = psb_wtime() select case(partition_) case(1) ! A BLOCK partition From 5dd3392954854c76e41b6373abe880b8cced4ebc Mon Sep 17 00:00:00 2001 From: Salvatore Filippone Date: Thu, 15 Mar 2018 09:16:14 +0000 Subject: [PATCH 28/35] Do not assume a naming scheme for MODULE files in the Makefile, as they change across compilers. --- cbind/base/Makefile | 14 ++------------ cbind/krylov/Makefile | 9 ++------- cbind/prec/Makefile | 8 ++------ 3 files changed, 6 insertions(+), 25 deletions(-) diff --git a/cbind/base/Makefile b/cbind/base/Makefile index e4716c0a..391d77ac 100644 --- a/cbind/base/Makefile +++ b/cbind/base/Makefile @@ -24,23 +24,13 @@ CMOD=psb_base_cbind.h psb_c_base.h psb_c_sbase.h psb_c_dbase.h psb_c_cbase.h psb_c_scomm.h psb_c_dcomm.h psb_c_ccomm.h psb_c_zcomm.h OBJS=$(FOBJS) $(COBJS) -LIBMOD=psb_base_cbind_mod$(.mod) psb_cpenv_mod$(.mod) psb_objhandle_mod$(.mod)\ - psb_base_tools_cbind_mod$(.mod) psb_base_string_cbind_mod$(.mod) psb_base_psblas_cbind_mod$(.mod)\ - psb_s_tools_cbind_mod$(.mod) psb_s_serial_cbind_mod$(.mod) psb_s_psblas_cbind_mod$(.mod) \ - psb_d_tools_cbind_mod$(.mod) psb_d_serial_cbind_mod$(.mod) psb_d_psblas_cbind_mod$(.mod) \ - psb_c_tools_cbind_mod$(.mod) psb_c_serial_cbind_mod$(.mod) psb_c_psblas_cbind_mod$(.mod) \ - psb_z_tools_cbind_mod$(.mod) psb_z_serial_cbind_mod$(.mod) psb_z_psblas_cbind_mod$(.mod) \ - psb_s_comm_cbind_mod$(.mod) psb_d_comm_cbind_mod$(.mod) \ - psb_c_comm_cbind_mod$(.mod) psb_z_comm_cbind_mod$(.mod) - -LOCAL_MODS=$(LIBMOD) LIBNAME=$(CBINDLIBNAME) lib: $(OBJS) $(CMOD) $(AR) $(HERE)/$(LIBNAME) $(OBJS) $(RANLIB) $(HERE)/$(LIBNAME) - /bin/cp -p $(LIBMOD) $(CMOD) $(HERE) + /bin/cp -p *$(.mod) $(CMOD) $(HERE) $(COBJS): $(CMOD) @@ -71,6 +61,6 @@ veryclean: clean /bin/rm -f $(HERE)/$(LIBNAME) clean: - /bin/rm -f $(OBJS) $(LOCAL_MODS) + /bin/rm -f $(OBJS) *$(.mod) veryclean: clean diff --git a/cbind/krylov/Makefile b/cbind/krylov/Makefile index bc75c1a0..2706271a 100644 --- a/cbind/krylov/Makefile +++ b/cbind/krylov/Makefile @@ -13,11 +13,6 @@ psb_skrylov_cbind_mod.o psb_dkrylov_cbind_mod.o psb_ckrylov_cbind_mod.o psb_zkry CMOD=psb_krylov_cbind.h -LIBMOD=psb_base_krylov_cbind_mod$(.mod) \ -psb_skrylov_cbind_mod$(.mod) psb_dkrylov_cbind_mod$(.mod) \ -psb_ckrylov_cbind_mod$(.mod) psb_zkrylov_cbind_mod$(.mod) - -LOCAL_MODS=$(LIBMOD) LIBNAME=$(CKRYLOVLIBNAME) @@ -25,13 +20,13 @@ lib: $(OBJS) $(CMOD) $(AR) $(HERE)/$(LIBNAME) $(OBJS) $(RANLIB) $(HERE)/$(LIBNAME) /bin/cp -p $(HERE)/$(LIBNAME) $(LIBDIR) - /bin/cp -p $(LIBMOD) $(CMOD) $(HERE) + /bin/cp -p *$(.mod) $(CMOD) $(HERE) psb_skrylov_cbind_mod.o psb_dkrylov_cbind_mod.o psb_ckrylov_cbind_mod.o psb_zkrylov_cbind_mod.o: psb_base_krylov_cbind_mod.o veryclean: clean /bin/rm -f $(HERE)/$(LIBNAME) clean: - /bin/rm -f $(OBJS) $(LOCAL_MODS) + /bin/rm -f $(OBJS) *$(.mod) veryclean: clean diff --git a/cbind/prec/Makefile b/cbind/prec/Makefile index 0de654d9..8dee57e8 100644 --- a/cbind/prec/Makefile +++ b/cbind/prec/Makefile @@ -14,11 +14,7 @@ psb_c_sprec.o psb_c_dprec.o psb_c_cprec.o psb_c_zprec.o CMOD=psb_prec_cbind.h psb_c_sprec.h psb_c_dprec.h psb_c_cprec.h psb_c_zprec.h -LIBMOD=psb_prec_cbind_mod$(.mod) \ -psb_sprec_cbind_mod$(.mod) psb_dprec_cbind_mod$(.mod) \ -psb_cprec_cbind_mod$(.mod) psb_zprec_cbind_mod$(.mod) -LOCAL_MODS=$(LIBMOD) LIBNAME=$(CPRECLIBNAME) @@ -26,13 +22,13 @@ lib: $(OBJS) $(CMOD) $(AR) $(HERE)/$(LIBNAME) $(OBJS) $(RANLIB) $(HERE)/$(LIBNAME) /bin/cp -p $(HERE)/$(LIBNAME) $(LIBDIR) - /bin/cp -p $(LIBMOD) $(CMOD) $(HERE) + /bin/cp -p *$(.mod) $(CMOD) $(HERE) psb_prec_cbind_mod.o: psb_sprec_cbind_mod.o psb_dprec_cbind_mod.o psb_cprec_cbind_mod.o psb_zprec_cbind_mod.o veryclean: clean /bin/rm -f $(HERE)/$(LIBNAME) clean: - /bin/rm -f $(OBJS) $(LOCAL_MODS) + /bin/rm -f $(OBJS) *$(.mod) veryclean: clean From f930337309a6211c816a201e33e5c63bc8482ef4 Mon Sep 17 00:00:00 2001 From: Salvatore Filippone Date: Thu, 22 Mar 2018 11:47:00 +0000 Subject: [PATCH 29/35] Fix authors in user's guide. --- docs/html/index.html | 4 -- docs/html/node117.html | 2 +- docs/html/userhtml.html | 4 -- docs/psblas-3.5.pdf | 87 +++++++++++++++++++++-------------------- docs/src/userguide.tex | 1 - docs/src/userhtml.tex | 1 - 6 files changed, 45 insertions(+), 54 deletions(-) diff --git a/docs/html/index.html b/docs/html/index.html index 66f903c5..c99b1d18 100644 --- a/docs/html/index.html +++ b/docs/html/index.html @@ -52,10 +52,6 @@ User's and Reference
                Alfredo Buttari
                -University of Rome “Tor Vergata”, Italy -
                -
                -
                Software version: 3.5.0
                Sep 1st, 2017 diff --git a/docs/html/node117.html b/docs/html/node117.html index cb20cd97..6d648c85 100644 --- a/docs/html/node117.html +++ b/docs/html/node117.html @@ -55,7 +55,7 @@ Utilities

                -We have some utitlities available for input and output of +We have some utilities available for input and output of sparse matrices; the interfaces to these routines are available in the module psb_util_mod. diff --git a/docs/html/userhtml.html b/docs/html/userhtml.html index 66f903c5..c99b1d18 100644 --- a/docs/html/userhtml.html +++ b/docs/html/userhtml.html @@ -52,10 +52,6 @@ User's and Reference
                Alfredo Buttari
                -University of Rome “Tor Vergata”, Italy -
                -
                -
                Software version: 3.5.0
                Sep 1st, 2017 diff --git a/docs/psblas-3.5.pdf b/docs/psblas-3.5.pdf index b2d9cb51..2fa9e836 100644 --- a/docs/psblas-3.5.pdf +++ b/docs/psblas-3.5.pdf @@ -444,7 +444,7 @@ endstream endobj 551 0 obj << -/Length 682 +/Length 585 >> stream 0 g 0 G @@ -453,17 +453,17 @@ stream 0 g 0 G 0 g 0 G BT -/F16 24.7871 Tf 135.453 570.847 Td [(PSBLAS)-375(3.5.0)-375(User's)-375(guide)]TJ +/F16 24.7871 Tf 135.453 564.641 Td [(PSBLAS)-375(3.5.0)-375(User's)-375(guide)]TJ ET q -1 0 0 1 125.3 554.602 cm +1 0 0 1 125.3 548.396 cm 0 0 343.711 4.981 re f Q 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 +/F18 14.3462 Tf 132.314 526.714 Td [(A)-350(r)50(efer)50(enc)50(e)-350(guide)-350(for)-350(the)-350(Par)50(al)-50(lel)-350(Sp)50(arse)-350(BLAS)-350(libr)50(ary)]TJ 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.144 -24.824 Td [(Sep)-333(1st,)-334(2017)]TJ +/F27 9.9626 Tf 223.567 -133.983 Td [(b)32(y)-383(Salv)63(atore)-383(Filipp)-32(one)]TJ 12.889 -11.956 Td [(and)-383(Alfredo)-384(Buttari)]TJ/F8 9.9626 Tf 42.624 -11.955 Td [(Sep)-333(1st,)-334(2017)]TJ 0 g 0 G 0 g 0 G ET @@ -19896,13 +19896,13 @@ endstream endobj 1650 0 obj << -/Length 543 +/Length 538 >> stream 0 g 0 G 0 g 0 G BT -/F16 14.3462 Tf 150.705 706.129 Td [(9)-1125(Utilities)]TJ/F8 9.9626 Tf 0 -21.821 Td [(W)83(e)-381(ha)28(v)27(e)-381(some)-382(utitlities)-381(a)27(v)56(ailable)-382(for)-381(input)-381(and)-382(output)-381(of)-382(sparse)-381(ma)-1(t)1(rice)-1(s;)-405(the)]TJ 0 -11.955 Td [(in)28(terfaces)-334(to)-333(these)-333(routines)-334(are)-333(a)28(v)55(ailable)-333(in)-333(the)-334(mo)-27(dule)]TJ/F30 9.9626 Tf 241.843 0 Td [(psb_util_mod)]TJ/F8 9.9626 Tf 62.764 0 Td [(.)]TJ +/F16 14.3462 Tf 150.705 706.129 Td [(9)-1125(Utilities)]TJ/F8 9.9626 Tf 0 -21.821 Td [(W)83(e)-412(ha)27(v)28(e)-412(som)-1(e)-412(utilities)-413(a)28(v)55(ai)1(lable)-413(for)-413(input)-412(and)-413(output)-412(of)-413(sparse)-413(matrices;)-452(the)]TJ 0 -11.955 Td [(in)28(terfaces)-334(to)-333(these)-333(routines)-334(are)-333(a)28(v)55(ailable)-333(in)-333(the)-334(mo)-27(dule)]TJ/F30 9.9626 Tf 241.843 0 Td [(psb_util_mod)]TJ/F8 9.9626 Tf 62.764 0 Td [(.)]TJ 0 g 0 G -140.224 -581.915 Td [(122)]TJ 0 g 0 G @@ -27275,8 +27275,8 @@ endobj 1960 0 obj << /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$) /Author()/Title()/Subject()/Creator(LaTeX with hyperref package)/Producer(pdfTeX-1.40.17)/Keywords() -/CreationDate (D:20171214140205Z) -/ModDate (D:20171214140205Z) +/CreationDate (D:20180322114627Z) +/ModDate (D:20180322114627Z) /Trapped /False /PTEX.Fullbanner (This is pdfTeX, Version 3.14159265-2.6-1.40.17 (TeX Live 2016) kpathsea version 6.2.2) >> @@ -27655,7 +27655,7 @@ endobj /W [1 3 1] /Root 1959 0 R /Info 1960 0 R -/ID [ ] +/ID [ ] /Length 9810 >> stream @@ -27664,41 +27664,42 @@ stream c˹89 ËË?9ËËI9ËËZ9ËËó9Ë Ë ó9Ë Ë ó9Ë Ëó9ËËó'9ËËó29ËËó:3cËËóA3bËËóH3aËËóQ3`ËË\3_ËË\3^ËË \3]Ë!Ë"\53\Ë#Ë$\T3[Ë%Ë&\`3ZË'Ë(Ë 3YË)Ë*Ë 3XË+Ë,Ë!3WË-Ë.Ë.3VË/Ë0Ë53UË1Ë2Ë:3TË3Ë4Ë@3SË5Ë6ËK3RË7Ë8ËT3QË9Ë:<3PË;Ë<<3OË=Ë><3NË?Ë@<3MËAËB<%3LËCËD<13KËEËF<73JËGËH<;3IËIËJ<@3HËKËLË_Ë`©23=ËaËb©63<Ëc”k©<3;””©B3:””©I39””©M38””©Q37” ” -©U36” ” ©Y35” ”©]34””©a33”” 32”” 31”” 30”” 3/”” 3.”” 3-”” '3,””  I3+”!”" O3*”#”$ U3)”%”& [3(”'”( a3'”)”*{3&”+”,{ 3%”-”.{3$”/”0{3#”1”2{3"”3”4{#3!”5”6{)3 ”7”8{/3”9”:{83”;”<{C3”=”>{H3”?”@{L3”A”B{R3”C”D{V3”E”F{\3”G”H”I”M$ü”J”KåJåXåIåPå\”P”N'â”O”R”S”T”U”V”W”X”Y”Z”[”\”]”^”_”`”a”b”cgggggggggg g -g g g ggggggggggggggg g”Q(kggõg!g"g#g$g%g&g'g(g)g*g+g,g-g.g/g0g1g2g3g4g5g6g7g8g9g:g;g<g=g>g?g@gAgBgCgDgEgFgGgHgIgJgKgLgMgNgRgPgˆgOgSgTgUgVgWgXgYgZg[g\g]g^g_g`gagbgcÈÈÈÈÈÈÈÈÈÈ È -È È È ÈÈÈÈÈÈÈÈÈÈÈgQÙÈ:ÈÈ]#ÈÈÈÈ È!È"È#È$È%È&È'È)È]®åWå]ååå å ååååååÈ/È0È1•7È6È4È*0åLÈ3È+È,È-È.™íåÈ7È8È=È5¥È9åYåRåNåUåQÈ;åSÈ<åÈBÈCÝ€ÈGÈ>ÈbÈDÈEÈ?È@ÈAååÈIÈJÈLÈHä*ÈKÈZÈXÈMù¼ÈNåMÈPÈQÈRÈSÈTÈUÈVÈW;;ÈYËÈ[È\È]È^È_È`ÈaÈbÈc;;;;;;åZå^p%; ;;ký; -; ; ;;;;;;;‰j;;;;;;+;,;);ªž;; ;!;";#;$;%;&;';(;5;*Å…;-;.;/;0;1;2;7;8;=;6Úî;9;C;>ïJ;?å_;J;Dÿy;E;G;L;M;N;U;KW;O;R;S;Tå;[;V=|;W;b;\Mæ;];_;c]˜‚ “èå` -¥J ´?ÇR!Ú $)"ø>#+,/*é-åaJ1290„36å[7<:)Å;@=,÷>BCDEFGMKA-ÑHNOQLJÎPSTUVWX\RUiY[åb_]t„^abcóóóó`w1óóääó óÁ¾óó ó ó óó -ÄlóóóóóóóàYóóóóóó!óù<óó åcó#ó$ó%ó)ó"Íó&ó(ó,ó*0Áó+ó.ó/ó0ó4ó-3nó1ó3ó6ó7ó8ó<ó5N ó9ó;ó>ó?óCó=f<ó@óBóEóFóJóD{þóGåVóI3óLóMóNóOóXóVóK‘åóPóRóSóTóUóYóZó[ó\ó]ó^ó_óaóW®¦ó`óc\\óbÊ3\\/·\\\\ \ -\ \ \•\ \\\\4@\\\\FÃ\3\\\\(\"\Ix\\\\ \!rÁ\)\,\#eð\*\+\$\%\&\'\/\-ù\.åT\1\2\3\:\0Ž'\4\6\7\8\9\<Ö\=\>\C\;¯¨\?\@\A\B\M\F\DÆÕ\E3\N\GÔò\L\H\I\J\K\P\Q\R\Y\Oæ \S\U\V\W\X\\\Z -ö\[\^ËË\]æ\_\a\b\c WËËËË[;ËË ËkÍË3Ë ËË …“ËËËËËŸ¶ËËËËÇTËËËËËËËË"ËÑüË Ë$Ë)Ë#î=Ë%Ë&Ë'Ë(Ë+Ë,Ë0Ë*úÕË-Ë/3Ë2Ë3Ë6Ë1 –Ë4Ë8Ë;Ë7¡Ë9Ë=Ë>ËAË<#¡Ë?ËFËB:úËCËDËEËHËIËOËGAnËJËLËMËNËQËRËWËUËPTÅËS3ËbËVn&ËXËYËZË[Ë\Ë]Ë^Ë_Ë`Ëa<<<Ëc†)< Ç°< <Ê<<<< < -< < <<<<Ó‹<<<<<ßÖ<<<<< <ï›<3<"<#<&©F©@ -¡S©A©C©D©E©J©G -²“©H3 +3AËYËZ©3@Ë[Ë\©3?Ë]Ë^©"3>Ë_Ë`©23=ËaËb©63<Ëc”j¥©<3;””©B3:””©I39””©M38””©Q37” ” +©U36” ” ©Y35” ”©]34””©a33”” 32”” 31”” 30”” 3/”” 3.”” 3-”” '3,””  I3+”!”" O3*”#”$ U3)”%”& [3(”'”( a3'”)”*{3&”+”,{ 3%”-”.{3$”/”0{3#”1”2{3"”3”4{#3!”5”6{)3 ”7”8{/3”9”:{83”;”<{C3”=”>{H3”?”@{L3”A”B{R3”C”D{V3”E”F{\3”G”H”I”M$ü”J”KåJåXåIåPå\”P”N'”O”R”S”T”U”V”W”X”Y”Z”[”\”]”^”_”`”a”b”cgggggggggg g +g g g ggggggggggggggg g”Q( +gg”g!g"g#g$g%g&g'g(g)g*g+g,g-g.g/g0g1g2g3g4g5g6g7g8g9g:g;g<g=g>g?g@gAgBgCgDgEgFgGgHgIgJgKgLgMgNgRgPg‡ºgOgSgTgUgVgWgXgYgZg[g\g]g^g_g`gagbgcÈÈÈÈÈÈÈÈÈÈ È +È È È ÈÈÈÈÈÈÈÈÈÈÈgQضÈ9´ÈÈ\ÂÈÈÈÈ È!È"È#È$È%È&È'È)È]MåWå]ååå å ååååååÈ/È0È1”ÖÈ6È4È*~ÏåLÈ3È+È,È-È.™ŒåÈ7È8È=È5¥/È9åYåRåNåUåQÈ;åSÈ<åÈBÈCÝÈGÈ>ÈÈDÈEÈ?È@ÈAååÈIÈJÈLÈHãÉÈKÈZÈXÈMù[ÈNåMÈPÈQÈRÈSÈTÈUÈVÈW;;ÈYjÈ[È\È]È^È_È`ÈaÈbÈc;;;;;;åZå^oÄ; ;;kœ; +; ; ;;;;;;;‰ ;;;;;;+;,;);ª=;; ;!;";#;$;%;&;';(;5;*Å$;-;.;/;0;1;2;7;8;=;6Ú;9;C;>îé;?å_;J;Dÿ;E;G;L;M;N;U;Kö;O;R;S;Tå;[;V=;W;b;\M…;];_;c\·˜! “‡å` +¤é ³ÞÆñ!Ù¯ $)"÷Ý#+,/*ˆ-åaJ1290#36å[7<:)d;@=,–>BCDEFGMKA-pHNOQLJmPSTUVWX\RUY[åb_]t#^abcóóóó`vÐóóäƒó óÁ]óó ó ó óó +Ä óóóóóóóßøóóóóóó!óøÛóó åcó#ó$ó%ó)ó"ló&ó(ó,ó*0`ó+ó.ó/ó0ó4ó-3 ó1ó3ó6ó7ó8ó<ó5M¬ó9ó;ó>ó?óCó=eÛó@óBóEóFóJóD{óGåVóI3óLóMóNóOóXóVóK‘„óPóRóSóTóUóYóZó[ó\ó]ó^ó_óaóW®Eó`óc\\óbÉÒ\\/V\\\\ \ +\ \ \4\ \\\\3ß\\\\Fb\3\\\\(\"\I\\\\ \!r`\)\,\#e\*\+\$\%\&\'\/\-˜\.åT\1\2\3\:\0Æ\4\6\7\8\9\<Ö \=\>\C\;¯G\?\@\A\B\M\F\DÆt\E3\N\GÔ‘\L\H\I\J\K\P\Q\R\Y\Oå¬\S\U\V\W\X\\\Z +•\[\^ËË\]…\_\a\b\cŸöËËËËZÚËË ËklË3Ë ËË …2ËËËËËŸUËËËËÆóËËËËËËËË"ËÑ›Ë Ë$Ë)Ë#íÜË%Ë&Ë'Ë(Ë+Ë,Ë0Ë*útË-Ë/3Ë2Ë3Ë6Ë1 5Ë4Ë8Ë;Ë7@Ë9Ë=Ë>ËAË<#@Ë?ËFËB:™ËCËDËEËHËIËOËGA ËJËLËMËNËQËRËWËUËPTdËS3ËbËVmÅËXËYËZË[Ë\Ë]Ë^Ë_Ë`Ëa<<<Ëc…È< ÇO< <Ê<<<< < +< < <<<<Ó*<<<<<ßu<<<<< <ï:<3<"<#<&©F©@ + ò©A©C©D©E©J©G +²2©H3 ©N©K -»A©L©R©O -ÇO©P©V©S -Ì)©T©Z©W -Ò(©X©^©[ -×µ©\ ©_ -駩`©b©c3  Ä   #]      7Û  -    L@      a      u×   "  ‹   !3  $ % ( #  2 & D E F ) ¹v * + ,åK - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C L G Õç H J K R M ä¯ N P Q X S êb T V W ^ Y ðÿ Z \ ]3  b _ ùs `{{ c ûÏ{{{ +“{{ { 0ð{{ -{ {{{  E¤{{{{{ T.{{{{{ { bÛ{{{3{&{! sh{"{${%{*{' €É{({,{-{1{+ …Â{.{0{3{4{5{6{9{2 —›{7{<{: ¶{;{>{?{@{A{D{= º¥{B3{F{I{E ѹ{G{M{J Ýn{K{O{P{S{N áˆ{Q{W{T ìo{U{Y{Z{c{a{X ï{[{]{^{_{`åOåååå{b ªå3týååå UÒååå  gMå -å å ååå"å ‚ðåå!å#å$å%å&å'å(å)å*å+å,å-å.å/å0å1å2å3å4å5 aå6 ç¡å74¸å8\?å9få:»då;á×å<<å=fõå>†âå?¨½å@êfåA*,åBQ×åCoxåD¿;åEî²åF=åGMMåH33Å&33333î 9<9=9>9?9@9A9B9C9D9E9F9G9H9I9J9K9L9M9N9O9P9Q9R9S9T9U9V9W9X9Y9Z9[9\9]9^9_9`9a9b9cc&eccccccccc c -c c c ccccccccccccccccccc c!c"c#c$c%c&c'c(c)c*c+c,c-c.c/c0c1c2c3c4c5c6c7c8c9c:c;c<c=c>c?c@cAcBcCcD$0U +ºà©L©R©O +Æî©P©V©S +ËÈ©T©Z©W +ÑÇ©X©^©[ +×T©\ ©_ +éF©`©b©c3  ^   "ü      7z  +    Kß      `¹      uv   "  Š¬  !3  $ % ( # ŸÑ & D E F ) ¹ * + ,åK - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C L G Õ† H J K R M äN N P Q X S ê T V W ^ Y ðž Z \ ]3  b _ ù `{{ c ûi{{{ +-{{ { 0Š{{ +{ {{{  E>{{{{{ SÈ{{{{{ { bu{{{3{&{! s{"{${%{*{' €c{({,{-{1{+ …\{.{0{3{4{5{6{9{2 —5{7{<{: µ¹{;{>{?{@{A{D{= º?{B3{F{I{E ÑS{G{M{J Ý{K{O{P{S{N á"{Q{W{T ì {U{Y{Z{c{a{X îœ{[{]{^{_{`åOåååå{b Då3t—ååå Ulååå  fçå +å å ååå"å ‚Šåå!å#å$å%å&å'å(å)å*å+å,å-å.å/å0å1å2å3å4å5 Žûå6 ç;å74Rå8[Ùå9å:ºþå;áqå<Öå=få>†|å?¨Wå@êåA)ÆåBQqåCoåD¾ÕåEîLåF<²åGLçåH33ÄÀ33333í¦9<9=9>9?9@9A9B9C9D9E9F9G9H9I9J9K9L9M9N9O9P9Q9R9S9T9U9V9W9X9Y9Z9[9\9]9^9_9`9a9b9cc%ÿccccccccc c +c c c ccccccccccccccccccc c!c"c#c$c%c&c'c(c)c*c+c,c-c.c/c0c1c2c3c4c5c6c7c8c9c:c;c<c=c>c?c@cAcBcCcD#ÊT¨ endstream endobj startxref -1201422 +1201320 %%EOF diff --git a/docs/src/userguide.tex b/docs/src/userguide.tex index c9095496..170df8cb 100644 --- a/docs/src/userguide.tex +++ b/docs/src/userguide.tex @@ -110,7 +110,6 @@ {\bfseries by Salvatore Filippone\\ and Alfredo Buttari}\\ -University of Rome ``Tor Vergata''.\\[3ex] Sep 1st, 2017 \end{minipage}} diff --git a/docs/src/userhtml.tex b/docs/src/userhtml.tex index 43436311..da8b976a 100644 --- a/docs/src/userhtml.tex +++ b/docs/src/userhtml.tex @@ -91,7 +91,6 @@ \emph{\large A reference guide for the Parallel Sparse BLAS library}\\[3ex] {\bfseries Salvatore Filippone\\ Alfredo Buttari } \\ - University of Rome ``Tor Vergata'', Italy\\[2ex] %\\[10ex] %\today Software version: 3.5.0\\ From 63b84bfae9a722b4a0a99f9ffe8cf929b082f0f7 Mon Sep 17 00:00:00 2001 From: Salvatore Filippone Date: Fri, 23 Mar 2018 10:08:36 +0000 Subject: [PATCH 30/35] Fixed figures for psb_halo and psb_ovrl. --- docs/html/footnode.html | 4 +- docs/html/img57.png | Bin 97 -> 2637 bytes docs/html/img58.png | Bin 2637 -> 2518 bytes docs/html/img67.png | Bin 112 -> 4853 bytes docs/html/node116.html | 4 +- docs/html/node125.html | 2 +- docs/html/node132.html | 2 +- docs/html/node67.html | 15 +- docs/html/node68.html | 11 +- docs/html/node69.html | 2 +- docs/html/node70.html | 2 +- docs/psblas-3.5.pdf | 4921 +++++++++++++++++--------------- docs/src/commrout.tex | 4 +- docs/src/figures/try8x8.eps | 61 +- docs/src/figures/try8x8.fig | 48 +- docs/src/figures/try8x8.pdf | Bin 4649 -> 31604 bytes docs/src/figures/try8x8_ov.eps | 75 +- docs/src/figures/try8x8_ov.fig | 359 +++ docs/src/figures/try8x8_ov.pdf | Bin 4728 -> 31668 bytes 19 files changed, 3075 insertions(+), 2435 deletions(-) create mode 100644 docs/src/figures/try8x8_ov.fig diff --git a/docs/html/footnode.html b/docs/html/footnode.html index 3f38adb5..408c91fe 100644 --- a/docs/html/footnode.html +++ b/docs/html/footnode.html @@ -137,7 +137,7 @@ sample scatter/gather routines. . -

                ... follows... follows4
                The string is case-insensitive @@ -173,7 +173,7 @@ sample scatter/gather routines. .
                -
                ... method... method5
                Note: the implementation is for pAVLboT>|^2wNhKY{D$=xAtY(9_eSP$+mjzOu4XU0ppc zF3!%*j!vgTAP^Es?g&7m(Yd*~US3|=SK>_NYhb*G>u~^P`mKCZk$V(te18NhFfbCVXXIhy&uDi>L`*U!|<+qSID_KQqY=3muCy_d3@Y;Avbk>HteCNkSi zF3ACUFS@bJka`kv6Xz)%qlVVKmlDR~L^vJbs*JJGDKTA^Cwk?HCyb z528xjiwGrSM5$i=Gsi^R+Sb-+~L6qB?vt{y5Fp1>%q6l1kQ3hOqm*1QtFbQ8?x)yQ`^Xlf^hd9GufHioz}UDXN@-C z&35^IEqcLGx+l_RM-AKcN9kdrh5&>0iE|p$eN6Gpm6XBS?u-4;+a7CbKrZ)p?%7)I zz)>aWJxxEx0%q=0y)U`jo@x+BpuJP!U#_+{;F|hxcYV7ul478|>OoKRfMq>+M`4f8 zXtpFV@qYB?yQySN=G9qXu~)Tu`S$t>WV?qhKd9fd{05nds$^hK7}4A6J*QD8!|aG{ z&yqn(8{SQcFTe>8zn*GZSAT$xEdPLZ+GBNg>;9kimZ6~trI|v@$^1>cTe7|9C#Xe+ z@!pYpA>O-!Gc>-Lr~&q%porF1pBO>xR?c6i*q8F&Q?{^l%C!jeV)@nF2PMFqPSk8L zl{TScWiN&nsiTz}UN{qxUH6^c3?&qXk**goWrnt_&|&a{~hb`c?e=D zYV5r>uQ7P)#ZxkA<4J*KikVgt8XAk;m7SeTiq+Raz*N?W-rSD=PTE@{L;Y(puYmECMCPy?l)hl3`G1&;QT?rU2w(+Cp zp%~}C7k3W_2vJd1A#@{jIqZ<^wPf#xtE}{F9{Ttx5(`35p?M)eDwl%aZ~?dgx&(!B z|1aiv6R{1icee`A#U;BmTIB2r^Y?I$=)hD0Uf0%n3f0h%-;y$1)a(;40F_@D$DH=$ zW?VmL?7vVEf$fr{_oC254h6UsT0~dxT`FdxMt)03s5Z}@vpkU`ns{P@{3ym2SRQhV zpHci?z&`<~zvm4=kp)@y%e^h<#4WaadzQdjXIf#*|F^EcM*+qVoStmVz3UfNHN!G% zL>+%G?fW^*DpZRUWMB(~Z42_Ts%BgF}uI^hE!h>s?N3F!Xw#Hl^1MdM2p8j3j zJfoyLjFCxe`@HWG5alv$kXdw=ELDf?e6PV^xjqXb9Y&>2O%}`6<<^m3$}}0QL;QX| z>+vO{NBFe}$Ys#akySJ~<^$_G(P;u&jI(Sf@e&zs=srSxJ|IGWwtJc!d*ADXZ`cE_ zmT&0E$n1(SWrg7Z=g`Ibp@Im1jLDk{VHupuiYKqEi$Xzpp7YGP{`p^8E*ORWVJW|r z%btlWN$K7K?ne06>x$@Z7jx@0EOOl=p@1LywfL7$o;rHhePv}U(8Nq_%|9lR+D)4w zM~s&Co#D5h=#iC}K-@J+!2PJt8A0}(8euFN>T#gm zdSxch?BO<}%_CUG4>|`Nv z91ALj2AyZrlGV7Qbrr$j|Ai(0nLH-((R-_@;ska=q;DhjHw>NbmQXkk1~my3`CD~E z6@zZ}(ZMR{Ih(O2&P$)l&^aL|@l+J%byr}fRg>gHjV=|D2WQ$pef5o@le${ji1w^T z>G6T0t`*+o=&33w;%2IwUPX8PpuOBjBrTvk*qGNzSUf$5@+SQr^#4@EX$$e>YF&sd zvSDg$ocB@qtnCx=ba=BSeRK7LciO!!T1(;TTintOSOWJJ4C&I;33Ko83(^?t|xj(LGV zV83^VjXox0f<51$dPZJjX1R=Wauk`$(^Web7WRVTu=!>tU)XZ3`3SA z>u03DVDVq-H`hFxy+s=fIQQPXheof52SXuhDP&Fe7+bmQHG9A)SApj)kY2V|n#;e& zIbUyUunIFT1U^Fj*i8M{-FlT*RoLkqA-b^pi9!J*9e4!D(C|}4UV9P3l(>nGpH zJBKF*X#;Ga=fbuflSnR$S*KeyQ?nU!Bccv8W!)HcclhGr9g}6WmH-^-*Bd`{EM#5p zC9#lGZX%10bPBA;PqokNRMAEFjV`8h#%yn2rr)^zhwX=y71>)>rML65MtS^`n>tHP llllSe;pZ0&_qXJ30=`Xb2=q{5K;=Ci;3&=&`_REZ;~!VX|BV0u literal 97 zcmeAS@N?(olHy`uVBq!ia0vp^j6lr9$P6SG`>Uh?Ddqs55LY0*yvp_#kYX$e@(X5g pcy=QV$l>vHaSY*@nVgW20OYYSFfQg2eGFtVc)I$ztaD0e0suH~6Nvx- diff --git a/docs/html/img58.png b/docs/html/img58.png index a166a3f67c4a8249fc9b8060918415352cc37387..34a1d28977dbcb547609cfba150ac532205da7eb 100644 GIT binary patch literal 2518 zcmai0c{JPE9+xqrm5NqtDX|toMF%mlFQup^Rkf6iQbEFyP|F)tQQA^fOOdqoYwWeu zQl*BDQN%70NjtP6q1qzoRCVkcV$%2im~-a!y!XdF_uPBW_nz-(xu0{>-CUg^U?s4a zm>9(6E?VNpnZ;xm)bVGYO(rC1%rY0B+mYkf7Mx!e$D-{(LV`5@# zZEXPnkdl(Z<3)vH2m~T4D+`0cq^HH0h}NK3cUKQFJ3dErDCy~P;<)Ffg2h61xH9hW zz*LmSyFAlL1J$D`Pg+-f_I{h9T3-FerST6nb)lp@>XBoLe=oJ%ts%$3YSqWEq>sF) zulg)gqw5-_MeALcgLFh`g+WWTK(h^qzY<&&KSjsiu$szCO))(;5-cDNWG1?~H8>ZNCwyb3bE6H@H5Mk#l;d5czqhzHocq9DLf;&%$IaEQ+Ya z`Do=#^7BpnZoJG{H<(3WH*eraau@jUK>s9&Q5-P~_T=SKiQA(_ zJ(|kH5&P2qb*gSKjD7uN!lK`=L@U6F>BsZ(`9S{#uq*8!`VK_woT)&PG=VCGr!8)S zB#`~u;+@;OpvKupdYk;3$lX|QH$2iWIdXZ{fE-kiYT+Jx{LU#aOkb3g12VgiCLcsK z^az~}PWbsi^z~xTzK{F&ju#e}-$d_9)J@E5yi5gy?2dVa4zXr}bY>-sTJB50@Hxz=`6C+vpldQQ3$9q>25T$Il7c;2*xFi zxTn#2spr}8agx%fXf!?cA!iGdPd|z*o1{4S{ko(6izIYreE-kGn-^(aw+NgFnUeQO6FBV2J;kv zL*k@U&f?E8;7xil>Y2t(?s#C)(AfJ^LFVd&LQ7xDaPC~kUTQh0igS}~WKZo%3JMvF z$)tUOlBK#19)IB=gG?iO!gShvwVHx4EWmPN9Cm?zO~zPY5-__=(IV`*1ew3+7p_@D zH{KZlCMQV9Q6nN76dB&lF9t$h&-30;ZjWRX7Nx{4Win z^wOJcXzW_aitqvZ+*z}A;XDMp!Y;Svt(2?;KDr8^65(8&|3l@K{w(}#zGc5|lkp*- znYw{qeYLdNCaI0bS1^sK#(TPT5nm^u#bJ<;u8;54Qz2R3>UiaZyKEW|tkU75FpWCt zx4%Yl8qMHOC3`$p-b9UKl{tX~ag&`Yb;NoEjh=n*_l1(IK8?4n6Uh< zX7KDq7b>Yw{03w7C)!bOI-HsW!v!@@zYHh#nFKh-N+-tPxG6y0GTMVLaGfHE_ z7*A7%Wsp+jkSgthVu4N0>jdc$1Mb{fagVh(n$ruJadvr!!s-U6YZf+=Zg=Djlrid< zbrcNVgKu{j_dh|_Tw`{lu)?|AP^uQ0y!s=x3z;?m>vstKNu;Yzh#S;0bBUM%3DacC za?Qri+FPj1G>J6rW)h(8tDBr@{&Olr$G)#sOT<1iBQ1*I%< zzSDhI!hme!Svww<{S5b8gcr{VmA$`t6!U&lsz(*M%Pc2mhamS&CgCQK{*#VFfW3adx)y$Qwc^u##1+qp;M;Wf;E*i%J@Hb6-&n`A$<4REe z(kHvv;(K#Vf3iwQmYG#sB_i$}cu$}+=HG|K@v5+OOp!N<;!oNOHX-<9^;ldL@H-r~}_174TmRFHC+JYsL3E z@dQl&UX|8btv2!Q{D-OJm)T#imjA!h8prw;ZJD#J?T!x~^xNy3Ni5wEd-SgToPPWn z-qC;b?UfD)Hq!irj|cMvwybtR&y~PAFx*_4uaG3fhwOu!%kyJudqG~+fN4a5PxB_M zqyqmjKix}!x~e_UZM9arQ%}na!rCmiFUtBv@6OFpH!`=jQQJn72N4@`Z+*FUi-5fU zcme_AgNw+yMS>%)Vdn3CgvNhFjjFR3elscvl11j&x4r1`*RZ^-+YMui(mbOa#r=}z zd^749@pIB~Ep+cE0Vzxyh)=7Pwj>YaFK*F0#yy{n-i=zHnvjl2c%2rnnP7i_>tp_* z8U3(f3&TnFVmmKZCL1`3!nrc_WvQv5Px0Hd?Oslj+88}bDgAsjJ+2Y9aNl)vdOrSD?0dzo3k)Tz11w6&BHZ%S$*Su}`Lu6Xvta1O zgT|JGCRo~V6-YnLk~gD|F|_Ht-vIieEOsQE*qTo+B~7C}$+*wA5pAt<0#$fy0t+!F zIkn>tP_phgER0gr%xw2<=yh+kE{QL+&ly_xw*-#4!<0TPcgo`ThYg3_IaT3aE!`?~ zk_o)JJ#Qpj@75CjObd9q`wO0{ySgqBVR(i#mMrHFDfUtC^zWHE*4B}3KM=JQsxlz& zt2@f+z2NZHvF^rS^C8=5GmeD4qu*@pGkkt2-QH4Eq`CNmY=&XX^kaQljVG* literal 2637 zcmbVOeLNHD9^aZ)v{mO~d99t}Vv#d8d6!`;Wf+wu@)D+be~lb6oC*se)9POILO5x{ zk{G6lO;+Y4AxqeijLghS=I)$(Kc9R4xc7YSxqm#L=kxrY=l6Vm&+qsBexF}9!Sx7K zNka($06>pAVLboT>|^2wNhKY{D$=xAtY(9_eSP$+mjzOu4XU0ppc zF3!%*j!vgTAP^Es?g&7m(Yd*~US3|=SK>_NYhb*G>u~^P`mKCZk$V(te18NhFfbCVXXIhy&uDi>L`*U!|<+qSID_KQqY=3muCy_d3@Y;Avbk>HteCNkSi zF3ACUFS@bJka`kv6Xz)%qlVVKmlDR~L^vJbs*JJGDKTA^Cwk?HCyb z528xjiwGrSM5$i=Gsi^R+Sb-+~L6qB?vt{y5Fp1>%q6l1kQ3hOqm*1QtFbQ8?x)yQ`^Xlf^hd9GufHioz}UDXN@-C z&35^IEqcLGx+l_RM-AKcN9kdrh5&>0iE|p$eN6Gpm6XBS?u-4;+a7CbKrZ)p?%7)I zz)>aWJxxEx0%q=0y)U`jo@x+BpuJP!U#_+{;F|hxcYV7ul478|>OoKRfMq>+M`4f8 zXtpFV@qYB?yQySN=G9qXu~)Tu`S$t>WV?qhKd9fd{05nds$^hK7}4A6J*QD8!|aG{ z&yqn(8{SQcFTe>8zn*GZSAT$xEdPLZ+GBNg>;9kimZ6~trI|v@$^1>cTe7|9C#Xe+ z@!pYpA>O-!Gc>-Lr~&q%porF1pBO>xR?c6i*q8F&Q?{^l%C!jeV)@nF2PMFqPSk8L zl{TScWiN&nsiTz}UN{qxUH6^c3?&qXk**goWrnt_&|&a{~hb`c?e=D zYV5r>uQ7P)#ZxkA<4J*KikVgt8XAk;m7SeTiq+Raz*N?W-rSD=PTE@{L;Y(puYmECMCPy?l)hl3`G1&;QT?rU2w(+Cp zp%~}C7k3W_2vJd1A#@{jIqZ<^wPf#xtE}{F9{Ttx5(`35p?M)eDwl%aZ~?dgx&(!B z|1aiv6R{1icee`A#U;BmTIB2r^Y?I$=)hD0Uf0%n3f0h%-;y$1)a(;40F_@D$DH=$ zW?VmL?7vVEf$fr{_oC254h6UsT0~dxT`FdxMt)03s5Z}@vpkU`ns{P@{3ym2SRQhV zpHci?z&`<~zvm4=kp)@y%e^h<#4WaadzQdjXIf#*|F^EcM*+qVoStmVz3UfNHN!G% zL>+%G?fW^*DpZRUWMB(~Z42_Ts%BgF}uI^hE!h>s?N3F!Xw#Hl^1MdM2p8j3j zJfoyLjFCxe`@HWG5alv$kXdw=ELDf?e6PV^xjqXb9Y&>2O%}`6<<^m3$}}0QL;QX| z>+vO{NBFe}$Ys#akySJ~<^$_G(P;u&jI(Sf@e&zs=srSxJ|IGWwtJc!d*ADXZ`cE_ zmT&0E$n1(SWrg7Z=g`Ibp@Im1jLDk{VHupuiYKqEi$Xzpp7YGP{`p^8E*ORWVJW|r z%btlWN$K7K?ne06>x$@Z7jx@0EOOl=p@1LywfL7$o;rHhePv}U(8Nq_%|9lR+D)4w zM~s&Co#D5h=#iC}K-@J+!2PJt8A0}(8euFN>T#gm zdSxch?BO<}%_CUG4>|`Nv z91ALj2AyZrlGV7Qbrr$j|Ai(0nLH-((R-_@;ska=q;DhjHw>NbmQXkk1~my3`CD~E z6@zZ}(ZMR{Ih(O2&P$)l&^aL|@l+J%byr}fRg>gHjV=|D2WQ$pef5o@le${ji1w^T z>G6T0t`*+o=&33w;%2IwUPX8PpuOBjBrTvk*qGNzSUf$5@+SQr^#4@EX$$e>YF&sd zvSDg$ocB@qtnCx=ba=BSeRK7LciO!!T1(;TTintOSOWJJ4C&I;33Ko83(^?t|xj(LGV zV83^VjXox0f<51$dPZJjX1R=Wauk`$(^Web7WRVTu=!>tU)XZ3`3SA z>u03DVDVq-H`hFxy+s=fIQQPXheof52SXuhDP&Fe7+bmQHG9A)SApj)kY2V|n#;e& zIbUyUunIFT1U^Fj*i8M{-FlT*RoLkqA-b^pi9!J*9e4!D(C|}4UV9P3l(>nGpH zJBKF*X#;Ga=fbuflSnR$S*KeyQ?nU!Bccv8W!)HcclhGr9g}6WmH-^-*Bd`{EM#5p zC9#lGZX%10bPBA;PqokNRMAEFjV`8h#%yn2rr)^zhwX=y71>)>rML65MtS^`n>tHP llllSe;pZ0&_qXJ30=`Xb2=q{5K;=Ci;3&=&`_REZ;~!VX|BV0u diff --git a/docs/html/img67.png b/docs/html/img67.png index 987d5e9a60770ae4ad84185eebc68c34fb69121b..a9a08bc8be5a6aa40c7ecab970355e3db0bb7c27 100644 GIT binary patch literal 4853 zcmdT|c{G%5|EC_Mh={SLWDr9l%ZMh+6k;qxM#f$|m35{G4^bc zk*z5WvQ7v|WcR!EJkReu=lT8qd*5^3^WNt==RVhUf6skg=lXoUpYP|oB8(ANj~x{} z%EZKUOix$Gl!@s8h>3~0o%J9vB5I_71YY6B24?W4rlv(jMMb<~1@P2WSQc1HNJw-N z2#+5>9&vK|E+N76l<9HVV*>*N0)ZfrDnTF<-lnCETUrVT2pHrVtO*EUu~--khJB8G z7ag6JmNso*Adn=m$f9o6-2Z0Azg z%H_m9eBayiBdR2;G*e#<=E=DZ9R_ioEFMDsF7A;kC7Anq{N)|DdDti#@8pj<+g>oDK4*=(aQSKJv(NfWJB z-`rSzF@B>z>sm3_sL!Hp&rnBSMpGH)Eu>Y9y3$isKR;9*gY&xmm9_+W9$rOX_b92$ z^t~gutl$FOLkW{NnZOeqMXl$k93TfS_@|!Qjr5z`ZWOC6YK~H>`PG^JyV+g$mxl$tPNK zC%Ma-H9Q*_XjzM?r0uI(@SdXjCEUHh)NYXz#G}5Ns0+)wC+`=YgC2Z*w>BDfx)$ zqeFQ`=D*3ZhIKP~ioVpbW(d3SwjnDz;@ zCg$}0yNlOj5`%B693|$xBc)#C8#RV&45=n5o@7*QO$8N~2}{Ny8E&FSB@(?@$k|$H z6&;gN9Az6=wglm~NzLk|I(84T(8ksj%Jmb^DE?wl>uJuanU0SlHjbnksU}7`rMh(^ zDn6AWHJCBbUv#q3Ve~kIMW3wOb-QRowcw{BFNPKWEWa|_V?xEwn~IPU+qij!8krMm zJRIF}9yDdZU(8xCA|>poNe%fg7^FiSJl&TMVEFNo#_zYp`HZFJaWUm`v%*l`{e5Y& zzH~nfAM-sted;+@t+vWb*7**V7k`nMXNAq97|G@5lTJCe{R08~yLrF(`F~*G!g0>= z^n_h0`-~^}Km~x*-0(=HAkX4vM8#xcBJ4wX_eT*zgv0WxcF9=ng3;b?_X_XH!QgVa zqS;l0gV>DSpFe*5m@WHh6!6}2ePL%{fO9FO#^R~%d35jKA=(_07dNw(6#%#Gcml8P zbXanhE(MQ~$_FpEY( zj52%Uu1(v7pI6BG=6Dv72!lQ1PL{6|#5l2=hxEJg!~nb0VhopBxH8VqhLQNs4LWh* zd~tlSuRojpDBmR{uKe~Uy1VGhbJntlHJL?R2>3>@>@^_s-kg>BTjCLB(9L83eI=FJ zttl;iK^z%7d93U~j`Unndl7zFwR%L7&&+Q+#AYc04fEPEmd~k^>15&ULc>lvW4#4% z*}`vmLtn^nrS8Yk7E6b+J!nRF5n}#!bMhtU>Jce?GL`LfZN4`?`Fo~sG1}kvDIPyy zDu?bh>pF&l@rHJvdGlExs&r&61AkUqL=Sg*pK|~H&3tLJwbMW@+7sT(bib14a!KBp z#JS*X?}aV0b%%r%9A#KPX<<>h2|2DRMB;}eKFITkVu7-SMX?-kp3=Yhg)RG)P^crM zGfn>M2}k>=3QxCY6#pcEH;CN_9MlA81B4&Lt@+s-tVIp6&*Eou6qe)yJ_@k?M!f<# z#0IDao`h15uvwuFvnWHERjn2;&?h@`WputBj5-K4I)2N#|1n+W^-etR9!i&{86Af8 zziNP~HpRhr?dDH=Et@^v0SM101zOzFq#pR$MGjs6J~cdgU&R<|aXi#FP95a=ti9tC zW#)=k7Wz@4TYLqHlDMufE|*}~H!`Z^MUN(92RbHZ;>x3P9faH$r?iA|=1Ec3UR&9M z#2x;p*m)tcxJ;gQA7L`z69MI%on3Q-=FqmpX}#7iZ69-7#Nv1uoKLxN7>fq_n$MVT z=d9k;1u~@A!NlyKSB>{0d|umwYCm#4GNy+-N|$Gu={Fa_8H(UWHYU$lXD5dbxCTI_ zNSC4ag~Mg$A_z4ZItW1?-1OYNc~h!&99xh1Rop`E!)rv^UQW__Ldm_jd_6B;+Q=$0 zk&LAovG=UDi%D19#D=E?1lL+;xGjCSxYVXA{8nCIe4@JTNq38dG=r?-HA?HbYF2l!P3n*J1 zGF+Ge0R<2WkPBR+g~F%Z+}T{)poF;UIL!~?%2 zHBA6|G1TnJkhr?Cz0qQpIUmN-nz zY|36lDi~<=Vh%7`Dobc5!oGaX`pveu#?K1>M4`~AK#yfQXDS;#wZvpAm_tWvbkHb71Yii4EPuKNi7 zt-eIH1u;O%s*VY)j`qQT8W}owqU<~Yp*j&J{fmC6SVj9nv3>PwcWB142?-lP-~1H> zFl6JHG|2gDB2xNKeLE4x*#<=6Nmv|FKPA9s#ASCXB|Wa2P}1D$A2;Y8>vyufS4L-7 z%ZD%5qg{fl=wI_eL5t6=KOc%u&m4$-XDh9h}>qr5{Q8F?`;geQEfa!NxdjD z7>?wkDY7u`CBo?9&KU!JmGyU_?$L@?g)#XQBkG}je^QN^p&E+f^ss?{vV?lJsO+EK z zhHw6KYe3k_QN|H{sMQ|3WaRqOwRce2e`{Sj#2&EQH)mC`T3`Fq64k^%6kFl2KJVYS zH@!mHNs;ClgZW4KFE$>ry&ZL@Q{en|K_nczHMZ0zx&DrDnn%W3tI}RE}>!Y+nr9!^XhFASU%jIuI(LfrK#uqnTCS4#V9k2 zqTc=#L7QXHGhw~XB=1rVo?b_ERtum-Y`Ynq9nzqsn2zu)+lKlr-w;lyJz$>=caGh` z>M5Z2OFJQ^P4^#s{eMZk@`RqAplkOJFq985)RXB!-m#I#J-? zbvOOtX9=^C2N7c0s$fG{oia2N)3EtONY{-Up_c>m)0`d*x42Ol|A$xBpHM6Oj88^@ z`S)^tg^uk(*VGj&?#PX3%8qR4O!r_Dw(~S(atgsOLh-!Xy!%T1%R-oO z?dx!R5dO%2!C;L~tJbEr%|TTzT{--)={B2Sdwt-lfwrf#nt9;&iV~^$w6O7eiDM(D z!kd62-OGYra`2Sa9Do9zj74@hOrYsC7n8OBN?T*q)bU%8_HlX>8LO}L(GR0JWP$jy zdg;w7wwjX#*{f-t>UP$71#n|$Z*O9MOQ-)J;$umv4X#rcz&kuFNfl~!?GB!UBEk^io74VH18d!c0#}Wa^tB_EH+Vv& z!lzAxz;Ki2ip(_;lcC>satng@E`x!}^_%!?fP@QtSr4)PkW zdgf!=XGwJ7xQ&1oTrA8pC$F9SobUhBY1d{}Oz#%53bKD~01vM$SASA!T##c+&}#Jg oU1(ifh-3@N6u)&NdiH0)>8Sy1IJ#v8xHMwYgClfGwd{ia2awfIB>(^b literal 112 zcmeAS@N?(olHy`uVBq!ia0vp^K0wUG$P6S;aIYuEal|F*Er@{QlbCZ*RZ9|L^aC3kMjO8Cqv^^l%^Brvp^O;OXk; Jvd$@?2>>iWB7gt@ diff --git a/docs/html/node116.html b/docs/html/node116.html index 97df7ba4..722847c9 100644 --- a/docs/html/node116.html +++ b/docs/html/node116.html @@ -91,7 +91,7 @@ explicitly.

                -

                +
                Figure 9: The layout of a generic psb_foo @@ -121,7 +121,7 @@ called by psb_spasb ... by process 0 (i.e. the root process).

                -

                +
                Figure 10: A sample PSBLAS-2.0 error diff --git a/docs/html/node125.html b/docs/html/node125.html index bfe5f26c..ff0b640a 100644 --- a/docs/html/node125.html +++ b/docs/html/node125.html @@ -103,7 +103,7 @@ Legal inputs to this subroutine are interpreted depending on the WIDTH="41" HEIGHT="30" ALIGN="MIDDLE" BORDER="0" SRC="img154.png" ALT="$ptype$"> string as follows4: + HREF="footnode.html#foot7637">4:
                NONE
                No preconditioning, i.e. the preconditioner is just a copy diff --git a/docs/html/node132.html b/docs/html/node132.html index 6085fbf9..0da8f1c1 100644 --- a/docs/html/node132.html +++ b/docs/html/node132.html @@ -169,7 +169,7 @@ call psb_krylov(method,a,prec,b,x,eps,desc_a,info,&
                FCG:
                the Flexible Conjugate Gradient method5; + HREF="footnode.html#foot8086">5;

                diff --git a/docs/html/node67.html b/docs/html/node67.html index 179318d0..086ef163 100644 --- a/docs/html/node67.html +++ b/docs/html/node67.html @@ -84,7 +84,7 @@ where:


                -
                +
                @@ -230,7 +230,7 @@ An integer value that contains an error code. -
                +
                Table 14: Data types
                @@ -238,16 +238,13 @@ Sample discretization mesh.
                \includegraphics[scale=0.45]{figures/try8x8.eps} - \rotatebox{-90}{\includegraphics[scale=0.45]{figures/try8x8}} + WIDTH="358" HEIGHT="313" ALIGN="BOTTOM" BORDER="0" + SRC="img58.png" + ALT="\includegraphics[scale=0.45]{figures/try8x8}">
                Figure 7: Sample discretization mesh.
                diff --git a/docs/html/node68.html b/docs/html/node68.html index 3c67b932..02386b3b 100644 --- a/docs/html/node68.html +++ b/docs/html/node68.html @@ -99,7 +99,7 @@ operators

                -
                +
                @@ -290,7 +290,7 @@ their instances.

                -

                +
                Table 15: Data types
                @@ -301,13 +301,10 @@ Sample discretization mesh. SRC="img68.png" ALT="\includegraphics[scale=0.65]{figures/try8x8_ov.eps}"> -\rotatebox{-90}{\includegraphics[scale=0.65]{figures/try8x8_ov}} + ALT="\includegraphics[scale=0.65]{figures/try8x8_ov}">
                Figure 8: Sample discretization mesh.
                diff --git a/docs/html/node69.html b/docs/html/node69.html index cf25ea01..410ac3ae 100644 --- a/docs/html/node69.html +++ b/docs/html/node69.html @@ -107,7 +107,7 @@ process

                -
                +
                diff --git a/docs/html/node70.html b/docs/html/node70.html index 4d05f71d..ae0bfb6e 100644 --- a/docs/html/node70.html +++ b/docs/html/node70.html @@ -105,7 +105,7 @@ process

                -
                +
                Table 16: Data types
                diff --git a/docs/psblas-3.5.pdf b/docs/psblas-3.5.pdf index 2fa9e836..c734bf6e 100644 --- a/docs/psblas-3.5.pdf +++ b/docs/psblas-3.5.pdf @@ -11855,7 +11855,7 @@ endstream endobj 1155 0 obj << -/Length 3220 +/Length 3199 >> stream 0 g 0 G @@ -11880,9 +11880,7 @@ BT 0 g 0 G 0 g 0 G ET -1 0 0 1 160.152 534.827 cm -q -0 -1 1 0 0 0 cm +1 0 0 1 159.702 337.279 cm q .45 0 0 .45 0 0 cm q @@ -11890,20 +11888,19 @@ q /Im3 Do Q Q -Q 0 g 0 G -1 0 0 1 -160.152 -534.827 cm +1 0 0 1 -159.702 -337.279 cm BT -/F8 9.9626 Tf 189.268 310.789 Td [(Figure)-333(7:)-445(Sample)-333(discretization)-333(mes)-1(h)1(.)]TJ +/F8 9.9626 Tf 189.268 305.398 Td [(Figure)-333(7:)-445(Sample)-333(discretization)-333(mes)-1(h)1(.)]TJ 0 g 0 G 0 g 0 G -/F16 11.9552 Tf -89.373 -23.911 Td [(Usage)-381(Example)]TJ/F8 9.9626 Tf 93.981 0 Td [(Consider)-338(the)-339(discretization)-338(mesh)-339(depicted)-338(in)-338(\014g.)]TJ +/F16 11.9552 Tf -89.373 -23.91 Td [(Usage)-381(Example)]TJ/F8 9.9626 Tf 93.981 0 Td [(Consider)-338(the)-339(discretization)-338(mesh)-339(depicted)-338(in)-338(\014g.)]TJ 0 0 1 rg 0 0 1 RG [-339(7)]TJ 0 g 0 G - [(,)-339(parti-)]TJ -93.981 -11.955 Td [(tioned)-334(among)-334(t)27(w)28(o)-334(pro)-28(cesses)-334(as)-335(sho)28(wn)-334(b)28(y)-334(the)-335(dashed)-334(line;)-334(the)-335(data)-334(distribution)]TJ 0 -11.955 Td [(is)-422(suc)28(h)-422(that)-422(eac)28(h)-422(pro)-28(cess)-422(will)-421(o)27(wn)-422(32)-421(en)27(tries)-422(in)-421(the)-422(index)-422(space,)-444(with)-422(a)-422(halo)]TJ 0 -11.955 Td [(made)-340(of)-341(8)-340(en)28(tries)-341(placed)-340(at)-340(lo)-28(cal)-341(ind)1(ice)-1(s)-340(33)-340(through)-341(40.)-465(If)-340(pro)-28(cess)-341(0)-340(assigns)-340(an)]TJ 0 -11.955 Td [(initial)-423(v)55(alue)-423(of)-424(1)-423(to)-424(its)-423(en)28(tries)-424(in)-423(the)]TJ/F11 9.9626 Tf 169.006 0 Td [(x)]TJ/F8 9.9626 Tf 9.913 0 Td [(v)28(ector,)-446(and)-424(pr)1(o)-28(cess)-424(1)-423(assigns)-424(a)-423(v)55(alue)]TJ -178.919 -11.956 Td [(of)-349(2,)-353(then)-349(after)-349(a)-349(call)-349(to)]TJ/F30 9.9626 Tf 108.539 0 Td [(psb_halo)]TJ/F8 9.9626 Tf 45.32 0 Td [(the)-349(con)28(ten)27(ts)-349(of)-349(the)-349(lo)-27(c)-1(al)-349(v)28(ectors)-349(will)-349(b)-28(e)-349(the)]TJ -153.859 -11.955 Td [(follo)28(wing:)]TJ + [(,)-339(parti-)]TJ -93.981 -11.955 Td [(tioned)-334(among)-334(t)27(w)28(o)-334(pro)-28(cesses)-334(as)-335(sho)28(wn)-334(b)28(y)-334(the)-335(dashed)-334(line;)-334(the)-335(data)-334(distribution)]TJ 0 -11.955 Td [(is)-422(suc)28(h)-422(that)-422(eac)28(h)-422(pro)-28(cess)-422(will)-421(o)27(wn)-422(32)-421(en)27(tries)-422(in)-421(the)-422(index)-422(space,)-444(with)-422(a)-422(halo)]TJ 0 -11.956 Td [(made)-340(of)-341(8)-340(en)28(tries)-341(placed)-340(at)-340(lo)-28(cal)-341(ind)1(ice)-1(s)-340(33)-340(through)-341(40.)-465(If)-340(pro)-28(cess)-341(0)-340(assigns)-340(an)]TJ 0 -11.955 Td [(initial)-423(v)55(alue)-423(of)-424(1)-423(to)-424(its)-423(en)28(tries)-424(in)-423(the)]TJ/F11 9.9626 Tf 169.006 0 Td [(x)]TJ/F8 9.9626 Tf 9.913 0 Td [(v)28(ector,)-446(and)-424(pr)1(o)-28(cess)-424(1)-423(assigns)-424(a)-423(v)55(alue)]TJ -178.919 -11.955 Td [(of)-349(2,)-353(then)-349(after)-349(a)-349(call)-349(to)]TJ/F30 9.9626 Tf 108.539 0 Td [(psb_halo)]TJ/F8 9.9626 Tf 45.32 0 Td [(the)-349(con)28(ten)27(ts)-349(of)-349(the)-349(lo)-27(c)-1(al)-349(v)28(ectors)-349(will)-349(b)-28(e)-349(the)]TJ -153.859 -11.955 Td [(follo)28(wing:)]TJ 0 g 0 G - 166.875 -124.709 Td [(51)]TJ + 166.875 -119.319 Td [(51)]TJ 0 g 0 G ET @@ -11917,31 +11914,157 @@ endobj /PTEX.FileName (./figures/try8x8.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 1158 0 R -/BBox [0 0 436 496] +/BBox [0 0 498 439] /Resources << /ProcSet [ /PDF /Text ] /ExtGState << /R7 1159 0 R ->>/Font << /R8 1160 0 R/R9 1161 0 R>> +>>/Font << /R8 1160 0 R/R10 1161 0 R>> >> -/Length 3571 +/Length 3349 /Filter /FlateDecode >> stream -xœe›½®$¹ …ó~ŠÎ<L¯¤*•J©ÀáÀO¶Ø¨»¶á Öüú®"Ï9¤®1ÁõûµªxZ-r~{–W}–ûþ¾¿?~ø:ž¿þ籿úó¿úüÇÃÚŸ_ÿøØú¬Ï½ç÷Ç6»ÿõøÛc+]õ{úÖ+ëÛ9¢¾Î¡úmKõûÆú:fÔŸZ¶¶¼¬V5×^½çä]$êoHÖ¤×$ë õ7¤ê÷õÉúSˤ–Õª£æÚ«wí›(­,L¶Üœj1P´©Z •-7k´ì›ZŒV-goÄú£.õ׈V†­,d¶ÜÈj1d´²Z ™-7r´ì›Z Y-grÄú£.õ÷ˆ£ò]d´2[Ù[™-ŽŒCV˾©Å‘Ùr€# Öu©¿Fl5|ÌÊBfˬCF‹!«ÅÙr#G˾©ÅÕr€!@¬?êR8Âã¬ÈGøœZù¯S‹#áwѲojqä#¹ÚëºÔߊÒÂý¬RÖÂýÔâbÖÂýÔârÖÂý¢eßÔâŠÖ’û±¡-±þX–?.þqÚWq¯{ªo;ë·£D}EõåHõõ`}ë-êëÑX_ç™ê‹Ö­{Z·kÙ‰UÏ"Ê»(J«wJ+©?(­ž”Vï”V$åm€ÒŠ¤4£h]QÞFײ¤¬×“%¦•Åé-êå#ª·Õ[Öˤ5 ¸^&¯[%DlV1Ÿg0ßå`¶0[ùÈcÈl-b¶0[YÌ·Ef+‹Ù¬Á|[=ÈÜö/í]Ž·ÖZðÚZùÈcøâZ‹Þ\kÁ«ke½»·Å—×Êz{Í*AïïmõóLŽ6O›ÉÕæâk39Û\¼m&w›‹¿Íäpsñ¸™\n.>7Ãéfòº­‡ÛYYÌÞâÌ^>ò0{ ™½Å™½Lf³Àìe2»U‚@Ìfõ ó^­,foqf/y ˜½…ÌÞâÌ^&³Y`ö2™Ý*A f³z̤©}?^s÷Ç©å5ʦšëãÙß^«§}LßYe¼Úõ5ÄÑÛ1^¥ìOo/¿­Vï…š:ªýåhÙ67-®ÌÑ$ËÜïÇߥ‹ü$g_?É9×OBÛW“Ž&« [s$Ž¼ý[\+ùQdF`»d -{n ö}¢ÐdüµôÆIƒ‹û¹ô ûÜl;}è홚ñ.j%#ŠÌèØPMb_Nš±íˆ¤—?þÞ8:aqŒÑ{ïê¯ÛS¹éùYQ+ùQdF`ÏÕsKÍØvæ“×=R/Ò_}ŒÀæ꯳.ØgzNúéûös£°}Œ°çÿy)´Sؽ/Ø==:ý4ãpKlC0|{Û{Æö/Gîz~VÔJ>&©ÞGlÈ'±÷²¸ä^Ó£3Ãñ"Ç‚ák@ØsqI?Á{Æó›ù¹ÎÅ%F¼$ñµKq6“Ê]ËÕ=Ìû§|ÈúÜWY¿¾2$ë,‡¬³†ÂÍѲg–u,ÌÁ%ØÐsž{b§Vc -š>¿¬}rÒáÈüAÈYC©æhÙ3 9æ`‡* ûz¶çn–ß]øx]º@ºµaÞ_û‰ó*Ýjµ{™=I7f´û,äC@`I³ êâëýìúãyk±ÖrÞ_(8&¯b¯ÅL#yɱæB>Ä–TZ§Þ!P¿AÂÛÄk/È3—C½¿8¯ò¬Ö-= Ý’Až¹q%]¦Ï¹ÀºË•x"º·ƒ ËÓ¼¿Pæêi.®j=Ó³Ð5™ >ÄAçê_ëù¶h'¢‹GH°@½?Qx -^%X­{zº§„s!BqZ@×Cm8“©+Æ[Ù§õ⾈.Qxô]EW 3?‹Ïh¦G7Ù,©-~JPmoSjÛϬ¶v r[÷sÜßyŸÜu=:k¦dÔÇÈôÃ<‘½YĘD—=!Kd}Š0·¬²X^#o4ÝU„¼š)õô12}Æ0ÏE[¥,Èë „¿·…{áSÚÊÝ°26 -ýmuG!Uõz“Nô×52%󣿭+ž,©àƒ¤Z?¿Ñ>%©œ×ÊXýC÷S<ûýuÿM%ÅüèoëŠ'+)o†øpJI1¯—}=ö·wSwÒP¯ßb¿ã枊ùÑßÖOP¸Ô¼¨ÄþGD -JçAã˜Éy ƒVÆ~G̺ >ô7¾¹ºÌzcЃ¯ÇþG,ÂI>ô¿9âNAŠéõ{ìwDK(—˜ý¡. ßz;þáréãQÞ¤—XýoŽ¸?P:ßLû=Ós˜éùÌðà •äU ´ÎLê`«-«¤E>B%[i‹JN繨ämR1&Ì‘Uëq¤±ˆ1T’W·=!S1…L_ ̶¨ääyÑ‘¥u·IĘ0GVI¬Ç‘ÎRäõמªY×ññ–z3DÕ²JN”ªgõ­jRIÎceÌïý}]ñ$•$Ÿ«ž÷³ˆÆ+ öfp­e•œ:'‚ªçÏ~F…Ü ’œßûûºâI*©›Ù!>¥á•Q(ðÍ°`Ë*9u<ÄË Õ³ú-ö;‚…PIÎïý}]ñ$•¤¹ê¹•Øÿb¾ÐlY%§N…àƒêYýûaN¨$ù¼¿óÍÕeÖ×|=ö?¯o†b[VɩàóQõ¬~ýŽ-T’ó{ªË·ޮ†˜b¼—}^”[VÉ©3 øføÂÉM*I¾™žÏ ÿž¤’¸Ê¦JÞ¦tð8•¼ƒ­I%û‘UÒnŽ •4S:ècdúŒa‹JÞ,bL*‰ÀWOÈÒAŸ"̺¨¤/¯‘'? KënS:ècdúŒa‹JKYט¿·…è÷*‰Ý°26 -ý;Ï€ ¥êY½©!ú+XN•ÄüèoëŠ'«$ø ’ÖÏãöG¨$æµ2ÖCÿÎ3 ù zþìgôW”Ÿ*‰ùÑßÖOVIF¶†øqp„Jú¼^öõØ¿ó È—ªgõ[ìwä'P%1?úÛºâÉ* 7‚Jš•ØÿÈ› JÂyпó H>¨žÕŸ±ß‘YA•úß\]fXõàë±ÿ‘ñA•úwžÁGÕ³ú=ö;rB¨’˜ý¡. ß -ÿp5ôñ(×PI_ý;Ï€ä›á®†à›é9Ìô|føGð„J2ÈàSÛC·V²JZ~G¨ä5$«¤EÞ”XV·IĘ0—hÖÓȆßðV•dÚ@OÈÔAL!³.*,¯‘'? +2u›ÔAŒ s Ka=lø Ÿ× ¿Å¾-Ï^ññ‘|óf"NI*é{¨ƒAY½çä©$ç±2æGÿÆ_î™/g ‚dý,ïã•6ôf -QI*éÊ'ˆX“?ûý•X•äüèßøË=ñ­™C|ž1„WF Oo&?•¤’þn*w ‚JV¿Å~GJT’ó£ã/÷Ì—²2/*±ÿ‘ªõfÚVI*é39¢GVÆ~G2T’|èßøË=ñ­ÿ|=ö?’ÌÞL8+I%#r"Ldõ{ìw¤¡A%9?ú7þrO|kt?üÃÔã½\#,„õØ¿ð H¾þ¤¹"•$ßLÏg†ORɱDÌ”Ž% -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‡à +xœ]›½Ž$¹„ý~ŠötkìÿªXtÒj½ÃY}Ð-q’¡×WWfDFr±Æ$ɬªo›1d%ç÷gù¨ÏrÿÃÏ×o¿Ìç¯ÿ}Œãù¿‡=¿üù1Žùœs<³hÔñü÷ã×^Ù½ŽÔ}ì®c©¿õÅþVzê_=ú©þ>⩽¦ÇŽí'ž»!ïˆw È;\)ònÒBBZÃ!-$äݤ…5=ÖOÈztRZHLk€Óâ•/©ÇDµX=&¬·œÖcâZ ¼× b!r+“ÈÙ@¶xå €ì1‘­d‰ì-Gö˜ÈÖ²Ç5ÙGù¬|‡|7ˆ|Ç+_@d‹ùnÙâ@¶-ä»Ed‹k ²¹×И…D¶-^ù {LdkÙc"{Ë‘=&²µ€ìqÍ@ö‘@>Cqò)ÍY¼òD>³ì¬Eä3 Ï[@>³ô¬Eä3‹ÏiŠy´Ÿ…aeMò³xå èf-ËÏZô³–åç-8ZËò³=­eù9M€>åyÝœÅFê@l#mÄH?Ki³h¤œy¤ž1ÒŽ–FêÙb¤®+Ô‘ ¬ü|cîÇÌ3FŒ9FŒ™#7³Fê#Æ#ÆŒcÖH1ÇÈ!€•ŸïÌ¥‰ùŽÅì#ÎÌgƈ1ÇH=cÄ™9âÌ>âÌ1RDàÌ9°òó¹+˜-fŒsŒ3GnfÔ3FŒ9FŒ#Ƭ‘"cŽ‘C+?ߘëÁlq0cĘcĘ9r3k¤ž1bÌ1bÌ1fsŒXùùÎ<¤A‹Å<¤Áqæ! j¤ž1âÌ#k#Î<²922Á!€•ŸoÌ—$xe^à•õwI~WVß%ñ]Y{—¤weå]Þ•tw…ì®MuIt›æ’ä6Å%ÁmzKrÛԖĶi-I-+MBK½ð9 Ë1>úó(çÇ,Ým;V¥¯Ç(ó£ñ7P?#¿Óz_þq"ûýmó»ÜÁëw¿›`ùÁòz|ÛíÌÚÑìwM,¤…fÍ~F~§Ã:Z?kF³ßE±Öš5í©ž, Í]ËÌ`ÍŒf¿ cí/4kÞÈï4R •¹¡U|ö$´»é3Ðü.ßvsò°ohSaAB»›†æù~éhíèÍ~ëÇŽFhÖ´§z~° dáµ2š-Eb‡%4kÞÈï´EG«kmh…Ÿ}éÚÝt€E4ÜåÛn5öM¶|Š=aBëò;Ýhc“­¯bß(4k:@Èwù¶¹‹Eï/õ}3^<1sÁ„˜Ýatε©Û³>øµI`AÌ&GR€0wªÆIØ¿ÿüúOQu}ýçN5h=u÷ |ù§¨z|ù·õœÅîOïžó¶û××cdg¶ÌóôXñ½°ø³y‰ìÛ¶Ö +;ãÍï,_0 Ž 7k‚3ãŠM·à¼¿Dz,íÙ·qž<à¬åõ|Ád8¬Ðlåã…ëͺâM༿Dz¬áçpŸ?,pw SpeŸV.Å<î®cB`jgý%Òc±æp0©È>ðùÃÔxó»åõ|Á$8®¹,vŸÂõf_ñNFpÞ_"=Ve/,ÐÖWøù»­în`\òµmqeqÏ‚0‹÷H ®CHåàÆ&3°x×pÖ€‘œ-¯§,„[áú‰ù˜›&ÔÀd.¹œŒfÅì…e1,jÙ’µ¤07®Æ©Ø•@!Lqu aî\ƒFT7¡ fâJî–÷±ÃÝŽ+ÜM/»Þ·×üÀ"Îw·ÈZh!öùA¾™¿ÂóùÄý­ß˜?´Cœõá¾/¬ƒÏûAúÈ~—ö•ÒïüúÉi™Y“âˆì 1 ÃÄ<qVÖÆ¢4"›,YIsCk1#›0B3¡õ¤‹¹¡ð§ºÙ +U1š\o{¯Wµçlµ…ëé}ùëÑJ“ë­´\ZŽ!¶Ybþín¨جòþÖ_µ«Oâã;¼ª'®7wÓ›þàs×[i¸´"óØ]Œù·»©|Þ_µµOæÃûºªÝ'®7wS"øÜõVZ .-ÊÏÌW9p=òYÕþV<‰ï檶 ä뜸ùÌõVZ .­ËïŸÚÿŠ'óÁõ¦6¨¸Þ]/ÊœÁçý‡Ö†ªp.¾Êy ëÏú§¶ÀâI|t½©=*ù:ç…®>ë?´6T5|t1䜺îoýS»`ñ$>ºÞÔ6×»ëEi9ø¼ÿÐÚP•‹«+󕘸ø¬j#,žÌ7¤ºø:ç…®¾N}0ÿÐ qÖ‡»[”̓Ïû§öÂâI|—ä®ç×ONËÌê˜Gd±J³0|Ìó'aem,J#²gÙ\O…Ÿõ¹¡µ˜‘M¡‹™ÐzÒÅÜÐFøSÝl…ª˜ M®·Õ}›v¬½•p=Uí_^K¸žWƒ‘_´FCl³ÄüÛÝpÁf•÷·þ¦±x+¹M;V\﵇ª¢žçý%%ŠÖh»‹1ÿv7H>ïoÚ‹'ó¡jÛ´cÅõ^€¨ªLàyÞ_Re¢h†xf¾Êy€ë‘Ïú›vÄâI|¬Ð6íXÉ×9/p=òYI剢5šÇîbÌ?8p=Þßú›vÄâI|¬Æ6íXq½—"ªjxž÷—T£(Z£!^™¯Ä<¸ë‘Ïú›vÄâÉ|Cú`á|ó×#_§>˜_´FCœõa7ÁçýM;bñ$¾Kòˆúƒ_?9-3«cR‘]b•f!} ù‹“°²6¥Ùmd×Ëe×–ö¬ñÕ‹oÞöÅã÷n&´žt17´þT7[¡*fBK®—ÎÁx ›ªZèàÏ]-r½SkC”yñÔŒÏòÍÝN.xëŸÚ‹'ñÑõ¦v¬¸WU.ð<ôkm¨S1࣋!ßÜ-5Ÿ÷OíˆÅ“ùàzS;V\²«Šxúµ6Ô òÁÅÀW9t½©ò¦øÊ>¿t½©+ù:ç…®>ï×ÚP§]ÀGCþÁy ëMU0ü¹ÈŸ×îzéÜŠÇp±© +†¸úµ6ÔÉ–O¹¬ÌWbàzSE 0¬àË®—Ψxܳ>P…Uƒ|úˆò¬Öhˆ³>ÜÝâð^ðyÿÔŽX<‰ï’<ÂÇfÔ1â@aÐMŠC5Ú¢"mZ½!qVÖÆ¢4"{^›ëéŠÏúÜÐZÌÈ&ŒÐÅLh=ébnh#ü©n¶BUÌ„&×]Õ ÝÅFS5Cg_QUÍðӂȯZ£!ö²{U5'"ýÈCS5 žßÛæzÖæI¿®+®÷ó'MÕ <Ïû«Ö†:%>A©ªfè\dðy׎X<™§úºv¬¸Þ¡4U3ð<ï¯ZêD ùp¥ªš¡â³þ®±xOðuíXÉ×9/<ŠRUÍÀ‰¿|p+q¥ªš¡³¨Áçý];bñ$>žÖëÚ±âz?ŽÒTÍÀó¼¿jm¨“~/žú[™¯Ä<¸ë‘Ïú»vÄâÉ|Cú€‹‘¯s^x(¥ªšá]ú€[!ÎúðS)MÕ ÞPÌïms=k_’} ×ONËÌê˜Gd×X¥YgSjT3âÔr°-J#²{Ë®ç_ŤŒ¹¡µ˜‘M¡‹™ÐzÒÅÜÐFøSÝl…ª˜ M®÷Ó[ÎÏŸŸåùËãý¤†¿õ8šÇ÷‰<ÿÓ”ÿüúøýQ=Æ×oÏ?~}üøåzÖöüúχÿeK}ŽãýÜò±ž_{üôCýô¹Ï£üÐ>}¥”:~ü<ðóÄωŸ×§Ÿ¿þåíÝíýŸšÇóë/Îñé뿟ߟvñvÿ®Ý¾k×ïÚeoë»öõ]{Þí·¯??·~¢ûCÞŸ#²ÚaYïá÷…–aXŽí)Ãüã—÷'W¯û³êíãýŸ¼žkà®3Ô{οþõÝ*ŸþðøÓ×Çßßÿþ{Ü endstream endobj 1164 0 obj << +/Filter /FlateDecode +/Subtype /Type1C +/Length 13073 +>> +stream +xœºwxWö?laÏŒ˜ r‘G¶5h†ôB'ZBïL·1`pø˶$K–eK²%«Yr•-˽w Lï%„ ”$$$¤m²›Æî{½ûýÈ–ßû<ïûýãõ<~4£¹ºsçÜs>çs +ÏÇo”dz%!)&cÒ攤}ÉÞ뉚ç7Ê#ñ-VyRŸ/Å<ÌŸâ1¾ÅcüNŽc~G¿8ŽfüÇÑA>~<Þ¬5›íonݼý­ &.II•§'ÄÅKÇOŸ:mÆøhùøÝ¿4&#!.yüëÜIVÌ¡”Ô¤˜déú„¤èÌŒñ/ž<~sL\æ¡}éÿúøïDÿÿ¦æùsïæ³Ý§•À‹åý<*Åw¬ïjßM¾}~´_¤_¬_;ÆÃæbë±d,ëÆð`|<þ +¾—ãýø)üþ þÿ'‘G˜;?€Ì·ò«ø®ÑüÑ£•£¿'7ÇÉÈûà=°,Ù ¨­c|Æ?æ1³ÆèÆÜ;nìkcç]4vÍØð±ÛÆÆ-ûpì+ˆ¤ +ä‚|ApQð‘àgÁßÿôçû ü—û¯ößà¿Í¿Ø¿Ä¿É¿Ó¿×ÿI€0`I@x€2   0 $àTÀÕ€Û¾ ôd_ |#p]`Z`f 5°.ðbàõÀ? šô~Ðò ¸ Â ª Ú æ Ž ž þ ÓA烾 ú6è7¡¿P('|S8[ø¾p±p¥p¿0Gh– +Â&a‡°GxEø¡ð¡ð ! ö ‡³Á¯O^¼*8|=øqð“à?ÿüwʇR¯Ss¨ÔJjµ‹ÚO¤”TUBÕPõT'u’ºI=¦þLý&%"Eþ¢0ÑK¢·DSE³DóEËD«EE[D¢ƒ"¹¨HdÙEu¢ÑIÑ%Ñ ÑmÑ}ÑW¢ŸE#!£CD!lÈÄi!³C„, Y²1$2$>D’b ) q†4„´†t‡9r!äÇ!C~ù-…ú…Ž„ +Sðˆ—¢ÒÑ+F~*þŠÅhÃb8™øÂP©®œÃo€J)®ž«RÏ2ðÑd˜Ž·›¬ÖVÒ8äܪêéü&¼¾‚´Êð»úŠ\óþÈÆåàY“R)Ôz%-ÕV ±p;qFߦldz3÷Ön¤'-ÚµVZ›ÝØXç®·mF;k(5:ìâ–ÎúÃ'[’·2ë 4i½<o ?3[•pP à?žÏ¦P8‡^AQ“:§œÛÌ®½ôôÀ×4Ü ÇAFý%ùÉ–ËìGkgõN ãüŽ—'ö²çvuLB@¼Q½8©êÍt{Ð`‚;èã'Põ‹p¢'œÛÙ,\8.³0O­ 5 +«CÁ +»ªbcé}{ÉÙøCò}ÛÅó†Â¡ßFæÎ3û›bø¥¹¶¬tñª»O[w +v2R¼Åcõ¸pm­©¢ÊI—×jk¹‰”ýƒ4äýè÷Ï·Ü@¡wØ—/î:/>¤ïÚ±#²¸¦#±*­z#§ÈZ<{)2mbиï߀A0èÇgœv…Nù³¹)Ô—' £V.<Ûx8‹M9“sûcñŸŽ_»Ã€%dMù$ p‰`¼ßiÉ©ìÃnâØp}E}²ñÐ*ņÕêœ]E|%<à$vÙò*Œ'ùPNü°ç¢݇kV0­y»,!o»2LAXìp¦¤µT¹‹E&¸1/wg@žïó7j©KvYr7Š†%¡PØtîÔw⣹}imÌ`̬æÉ4j“á÷ +ÊòM‹É|ÍB_Ûk‰ù6u…ñ.î$.˜a>ºŠÁ™øH„ç ÕZî8 /í´3k_œŒÙ¯›`àƒB(Áòð½¾HGë4f[ëJmô{›·/ ïÜÿe{é Ö“]“qH¼'1eÇòøþ_¥LšZ‰—Ù­æ +èår½ÞÄ€¸¶ÊÑif¬eŦr¶uɈaÎh~F/Á´%-&ŒïäçO-äÖy¹–˜nÎ-7>àÃm|f]ýº¹þ´5 tyÆSŽÊs9ÝáP¬aÑ:bòðÖÏÏn>y„9r²öÚc1$bžìLÏÎN—•åÔg3-%%¿"£äÐAñÛ›–ÎKÉ(¯U3y®ÂÆa1Œ!Ú9³®b<ᵈžÿ|yzˆa¸KÇ#_Þ›†¨BþJ|¾¹Àbìå{’óÝÊʇV> p$xý KÀaš‡]ÃhÊc*IŸ—¥fTé©Yt|J÷QÖJ˜® õÃу|p¯z (E ÑgªÎ1ǣݨ.$¾v8Ošä$:@§èó³I˜U“ƒÇ*+ûŠX¸º0W"Ñ’8Ó% ß×£{žM½òNÜÂùì’eû'¼!Füþé0K?yÿ ýëÓ¾»wÙO>éÿî™øYì·‹î2÷Në{‰F?ŽQp œÈ[`8œˆ&¢-h3š„&£ o½ßys³òøÇ߈A¶d“Äl3›îJÀR@yëÈ{ØHðwäEÒ…äĽjU!wßš[a¼Ç÷8ÎœG¨SÔ#¿×ÁùØÈU\‡æcxäÕÕ@ÂÌ?7R„gækféù2àù.¥’Æ'¤"ŸB>*Ã=K=Åœ# D6Z€5ã5¿ô¶A‡iøȪ‘¿bJÏU¢.ÅÄ%ÊZ5 '¿ Š7Kµ 9#k½z·¤iÎ’?ý×JVP@ÂQ*éÎldžΟ:¶…5%P=íIqqÉÉ1ñÉm}½ím½,ðµ‹`®Ï6í³¨Ë}ap-Ç£ V½Eo) +sh,:½8?_§fdJ˜ìÄ÷XÕî;&Ám¡m-0úµTß0„9Ñ^1`,/ÌåÆæªr"˜g6Qh> NÎ߬ K*ÀrSe©©Œî.Í`G²㶢¢¥y|ð¤ì?¯S-vçVpýûv×3†Õ 5ŠRÂU™Ÿ›_˜¯Éc9 ~ K{Š›¾µ•ž²ð]5([áÂOÙòÍSùÓS _ÂòË eâªrG-Sê?fêVôï…£( +Cs±]’e tFÔÈñ<­Ía·Øí¥, €Ó0Á{¸ø©ËyÎʯEÛdD±\—#Ž]„F½ŠøLŒÂoW:/3.$“—+•ËX•E¼ +ù‹à¨>qM¹­Çë3¸ß+¬U^˜W“qzE…²"‡;”Õ™¡h5Ê[>#!-Â&‡%."ÁœWâ;í'®3P7`°$Wµ„@Í"A éYå¦à›«Œ—ÚhDM}Û]±».†­N­Tv§.FãCûð ?–ÓӠЋÙê“}lNcnÅ¡z~âªmkyÔ1½gÅÂiE{:“ÕI¥^R_üHüÉkwN¸yó&P¯áPˆrX_•ï +;žÓ¸‹FÄd4½…‚ïLûí“‹=wŽ°%1Žl§”¯(/Ï·Ó›Ùbg¿Äz ­¢À ¡÷'÷}¢`g¸(Ä ¦wÄ +GCvð‹Û” n¶JêH¯{Ÿ/°pÈ#'nÛ2¿#F‚BgEç*Òiu¾µJÆVeçYtb¦<5®Szúèáê¶6¶¾¾´²ó\í¡B>éï¼næ»P†œ8Y©•j‹‹óÓÙ‚L$B½ˆ ˜ª9¿¥R\ç*ëg*]8(îó|ÙÇûýWÎyjìãܳ® ×Ø.÷=ýIüMòÃðóÌG+¯IhÔ Ãif‰q±Z½Pχ›=7¨Ž2Ç‘¯nä$ 3·ÎD>bDFÏšÉ$ïؤžAïW—v²àeÌÕÒñùåÇYÏ BoŽÌIÈ[¥ãôßa+.¥ûJ5Ñ,šJtƤ–ï!Y ½Œ‚ïÍ€¾úÝ'ºÙ5„µ¾qC®PZ­Z“Çd+Ò4Éô¬­ŸrêwòÞýsÑÛXÐË"ŸXJ²±E<ØÑrübûÁi ŸŠØA[5š™ãÀëœj#[ W¨™ÍsößÀrk5eâ²J{ c¯F‘Üc…&㧈:¶8tÅK[f¨Õ1ú0™Ëskòˆì¼’ +‡Ùæîd?„¼[hV!/Qæ‹só´™L$n•÷óQn?§à\ü’ÑfXÆwA7-ÎJ 7ñÑ\h†“ðßÌéåÓkL¡ø66b”ãÀEfå¼M‚zYŸÝn2•0à0i+.6ß•Õ¼Ò2¥`íО«Cƒug®2 Ø wzh7ÏC<ŸF©q”7rdÿ¤<Í*gIiµj"NZÕ`·7–5±GžaP÷¿U´æ(ŲÜ8&G;\¹xTZÛ×qì0ÔÏ0ÿo(wÉvÎÒ;dÄ]™Æ´ˆþã€v™ +œ ‚‰€„ösÙdÜ´£$ÃÂÔêË:«Þ¦·…™óšR½5,¹ùP»Ñ¯Sd»t´žûËmÚßÇv¨Éj:X¨ Õi±ùoEoÊë,E%6³Éfe._:Ü÷ñU¾nõì¦ô–u1¹á^U±™0³ÓÉ¡eC©b/;âO,(JÏËf4:UŠVjìu +¶A®*Í¡¥rEfâ€ôüÐ᪦¶·³þÖ#1ðúó9®ŒDKJÕBZðݧr +0ñ6š{(Û¨ObáJâvµóÇÄ/Q¶–Z³›þÓ5§¯]?-+ÇRÏÑ$‰0à+¯fªkP–¢¯”ü!0LÖe¶€µš`r'$zqÝY{ÖÌpû'€ob.YÁdNmÞÐNÅä¨ÔRZ•]R*g3*0ḊŒŒ’LZ81E"×Q^íl„8YUØD_€A¸ŽZ³™žÎ!GºpH­ýø-ñæ¾BQè£7ž;Ý2Üͺ+Û\øè £n:ºûOѧÛcVYX #Éò³¸€&l©Äó澞7á= +%kÕ²}FnÄäPæ"ä&lŸY]{] “› (B°kíj¥Xž§KàF÷)Æ^k«)7fÖ§gdffhl +»Œqï°flÇ™”Ö}5|‡LfÓÐR…<-Å©l«(³”6²Îk¤gËÒ3Ü\ çv76f»¥,'®‹›/yBÁθ¸ÕJ¶ ÷"o‡»p-d%ðÊC_xÆRÓ Ç„8Â+WÀlÎMí´èKßñŸ¶Õš†9ò-Z­¸@«W3r˜ü‡·çvã8ÙÓØÐÝ™Y«Õ:Æ 7é]‰£«¥ç|? èrg¡ÖÉ6äa O¢×/Ý>•Ñµa½DÅgHÀšè̃\¤q{óO?ß¾ú»›‘Y°÷Ó#¢WÒ+wœºÕæ¨kè`UmÚº½¶¢Î-­ŒOÏÔçƱ€* ÷ªc8n·Þ8Gº$—蠟-\ŸT#oiuÖtX‹íÆÖXŽ•]憚£tcmÊÎÚsl‡¤bÃÚ™qàØÊd —,$#¬Û$î…Á’Ø­±¬@AÂK25Æ,–î*ñYYk|¼,e[®e¯9‡D?cŽ%TbZZbbsZgGssggZó!?RÝÙö6ºZ[/óÑßÏP¦Ø’Øò8¾‰“ŒQ,_›40|¥¥Žb>?G} òÞS¨æpáþk\¸oj·XZM|8îÿ;ÞXÇ áÛä2 Øÿ²`a„Ïÿ+^íÙå–­¦Õ3½xSDÂÃ.BjÂÀú=Êìýâ §£ïß?5xýXVëò“LêZêpjUö!ñA©4>:µýDWEC ö;vQI8Q”$p8AÀ©$Тä‹ðz<8`k¦…Ÿ'Àóhøµ–GâhªÅvÁ•Ónsž£K)Dã†+°!øµμ|»–.*4 +ÙW·b ]r‚$²Hà,kV:Ó‰£SS£åyÖêL¦J–gË£³•9Y‰íò³Ð÷óKàhGMC«øDdïúuRWÄ3Mrl¨Ã]ÙK÷ÔÉ’bÓ2—IYAÖ{$ðØŸ_šºYgÕš9Ÿ09R+y:bÇ•ú‹¤>³µ½¾¾­MZŸÌ +ŽŸmâ~Þ™>•‰yä‰&n¶¨Ú™el}4½+*}ã&|$™z#Â( +½‹fr1Åø.šwrÇl8 î€;¸«¹h+§¦(ÍE³Ñv´ÎD³¹Øb7à]¸FqCf¡(nH#ùÂ"ÏKn)¢ìƒáÀ¶†¹(¸ͨ5X¿èêøÒÆi{TÔÖð£{€'ŽZž Ñ/:dW…–Y1³½Ää Ûì¹›Yt÷ü‘}íõdžÅO\E~±)ºœh¦@ª)Ê£³4¥µEly¿Ây¸Â!øµ›÷ø¬{æ úȯŀø¸ºj R%ß ³ŸI5è…h2Ujdb@Í—€ç¡T½;UŸ¶ÉÌŽ¼CÌÒ¦eæiJZf(3·<ô†+ ™TÊJJe^äljm¥¦†®sV7ÝÙ2Á¦´]qlRt^¬n<%¯H†<¿æµB.Öžü憓Ȃ‰g?µ"!¯pQ÷†å k·p¶ºø=¯Ãñ°ÙeÕÁ , O)Ì÷æ1ŒÅµûY×e€j¿Ð{üÞÉh4#ÜFíZ¸$rso;#ÈV$drŽ&e;yf(± $A¡¤·JHPÉÙû/`äµ›ž¸‘¸U„ÀE,Êqâ. øJ˜è$¶Z5¥gÅžŸ8v•oЩuaà Ù~¿Žˆ»rk22reà°„ pR|}ÛÑ÷£ÔR)“%ÓÈrv7©B‡ëÁMÞ7¤'&Q#q€bþwâ‘@?’{0@‰=ŸöƒÊÒÊ7HçQgH¸·…Û®ó Ñw–Qk¡ñ:!ym•'η + Fì¬Á)[+nÉcÑ–G¨Ç>?ö)Øõ˜ÅNC–Èi +õ!:+ËVª`OL—Û£èÝß°ÛL@'LGÜ?wze;üHhG‰ˆÐFÜxûÅØpvˆ®¯(Hu±àÊì"œ(rÿÜé†3(OI.I§wïÎ8Â&íÕ(|‡f‘¦øœ|N¹Æ_CZüþ®¼ùO%R¼Ø +¼;ʪaêÖÆÂúá‰Nð{±Ûóí0–<ó…ïŠ8\â|”ÃÏQ_e®§¿¼°iæ»Û¶Ì“ ™X/Ä2£RÉ PQ¡ÆMyTPk?ôÝ9nÐüîWHóBÕ‚—Ƹ°ß®ÊÌ/L1†¡±ø“/±«à)Ïï%9áÎlim¨oÍ#SY çTLZÎ@òbŽ[N—,žÈEøÇ@wQuÑ`_ëvë+èúj¸_1pø}¡çàŽˆ¸ƒ;ØD€N่Ūq×ý–¦|¹|ÉÜ-áÛoßgRiJ2p‰VCq¯³ÝbÀB1|…ÄA9•Š»àÎv8ßͼ»_Àõ_ø‚nˆ{æCÎByCžw†8ÿ}ǃµˆý|ü³+͹yn@Á·Hè(øˆ,ª^Ï?¿'AQ4¦Å}Ö[5¸˜ +Âx±¼â’¹Áêg7Üzòú±÷â®g¹Ç„tƒ“0„Ì¡îÕyº®Úd=ÌáQº"Gª3éÌ:Öª^±ÉœWaºVA€¯AâÒÎë`Éé)h{aÉq±mÉà_鋂İíòO^8Û tf'1Ç’Wþ‰~€Z»ˆÇ=ö¦~öŽaó é|ùˆ/ü€ó¸c®ž\@y5|$ŽÁI5@ÉÝp­ }äÑ|ä Ð<3 Šk<Ó8‰]ò¹®¥¹ÐM?ô p .§<<o„Ç;*£߮×`½-à2v]w¯ø>?H;€üëY5߇„•LØ´Uó3Ù¯ @å1}$$sëŽ*Ž†Ž7êô™,uëõè/|Iô<âyÄ?"pð¾v®î…KZx@QîæT ^¿7Ýßò·x2–]½744´µHSXAC]{{zc+(5•Óàù«ÜdÃôcàCNgÆÌwgÍž3ušÐ'؇òù„ø„ú„ùˆ}}‚|€·ªäç³ÃçSÅ+æyF½2Êéëç»ß·• ´Å÷= ÷xðÛ'¾ž(¡rm±›ò´‘œÚàð=¸{úýÀý‡âŸç>xeËöÌý±Lb‚2Q±´NúçÃ=·9Û<ë½ÝSfMgÑr´ S{Ä„@Ë©Ô·W‚àÇbî?‚“àcêrƒ!¿½.í_.~7|Í¢”l{c,ãJVØ´T©ÊŠ?šyûþ£æÁaöÄ`Ó¥ÅgrŽ§t0Yõ²Š½µ|á—·N4õ¾öüä{‰qLRŠ2=kƒ³0ôÞác×é›C{×Ä)ãÓÓØ$îΊ >÷ZnøÆ Ïûî xìáüÂï=‡`õšgÓ}8² [»ÑE£÷dkcÖ²-pôƒ>pZ3E£ê«“KP u`ý²w¶þ§œv´ºlu]Gi-и=wïñ<[9O1‚ãÑ5ƒÖV^0…Á$íùû‡ñÏ_öJ£õ¹ 5èÂýe÷`ÊG[î À£‚úù\÷à-ñ㥗_çBœ•SW×&?›ÂŸ"Þì¬äåâ·®„8óàæo†ÑØoù«ÔÝíqáâÕQQ«ì¸ô䃺ÁËÃŒðÁÉÔôKqÇ/ˆ/¼~ëèžåëÓö¯ˆbZ¨9êñkåµç{9“‚~•çkoäÿ~ÿ*Òb8g*DLÑHpg.ô9¤zð,f!ßñhb^†Ï©ìÂü¼|Fš£Š£D|ÁÅê+uͬ»¦©¼þêØLô˽`óó f^ã°òG_h>›Ú²/'.–݃4ZŒFu!þ‰pfOßéŒKôé£5=½ì¥óýNJᾩð%Â¥Q_CŠA1{ÆÏœ¹çoðL8G=a½zø<€Ãª„'¾Á6'>_Q>ld9:P`F+§b*Â9Ðh/¥ëJ•‰ìÈN°V¡Z`ä TUžme0ª +ï'ƒ“Âç±Á+ÕdµÚ,k‰Õj3fÀê¶Y­î¢Ì:f,Oà5ó½>Gx8ï,ïþ¨M£®Žºé;Å7Ê7Ú·Ø÷¾ïcßïüÄ~‰~R?›ßE¿ë~ëÂNcÿÄq|4.Ä_Çâ…„¡& +‰ßùß¿0zúè„Ñé£?ýýè¿ÛÈDò6ù|Jþ Ð`&X*Á1pÜCY}#úE„DÿB†CÆ…¼òzÈ„ç^sGJþ@ïÌ6¿ÊG Ä +]Œ"‰‰H]sh!½tWã‰TVÞ©í».†wOJ>õ&šzeÄ£?Mè-úlœyŸôÜ`” †U„ùYyÕg¥|ð|[-eÑ”ÅßCfÏ¡Ù8:0¢^ƒ^WçDÂdpW-‘]ÑVa©²U²Çáh :ñÁ XEª=M%NWl322è Fr9² + ÈzÔŠ8›Z±7y ½yoÛÅdVÞ¯í4\ãëxÁš¶ôN~oÒîºíôÎHyB ºtŽ1wfBâOŸ\†>GôN¤–w÷]¥¯6¦Ì¨dÁƒ–V_ÏAO(50ŸÈRYìÙl¦+KK±¥Ñ“-²¶9æÃlZFV¶:¯¨0,+S—§g–çÉf–lO;+Þö`ÏŸr†éï¨éì_‹\deU‚m5g”V‹Ý]=-¦¨·Ö`¦û;[:Ø®VgÏ)q›¾AÕÉ íˆ˜Òv?Ô¦¿éÊÛ´à¦onj(ufmð{êrkÏñŽfER5S_µ_ž¿{]ô?2% „ó°u8ò¯ºq8ö7(xüäû|'ü…rü¡ÞQ`^ÀGï‰R£Yop ¼þ‡Öo‡N2'^o¹E_8%‹ëgÛ“«ÓšÖóð‡eâÙ:yn­É±Øå¬3*ÒEsaç+è ´÷­–…6²ËoþGÑ_Á€žžÃ,ÜC˜¯–W\´ò'ų È•xgu~N¡QW¤eßFmˆ€%˜®ª°ªLìrÚš'ŠVÍ…5yÄ‘1´"Õd´iø­;«c•âézÅ!&]™%SѺ|oÑÒ.—[sè ™,ý`GúÑ[ÇÏÃ×γp²gbegyY£% dJÞ&ïsÏv*fr\–.GMç+-6%[³k§#’ž3ûЖuì²u1SÐ(1Ú ÃÐ8GI¹ [ºxeÒlzm¸»/»åä¡o Ÿ®úžƒó×.žÉ:p˜éLt¦Ô®æ¢I_eÓ–zK°(´ )[0%á0aæŠ +SÝXš³‡EJ°(_³¢ˆò'¾¨%ŸªÅç˜UU†{PHš?©¬xláŒè”ŒøR_®1KŒ Ôy³¸Á¾ž—áTjYD\ÆfzÊÚO!ñûùÛŸõVjbÊØ’L,ÙáRÔÓÍuµ –˜µkGv\4»sOÊŠybD=š }®îèeZj[Û/óõa×±i$hùw@ò©¾Ray‰¾!F( C døѪ‚ÈÃìÈ:ÂðR®bŽž/ƒêZb¾UYgøïG›jøJsN•á2fGNµ–”ê5åŒÒY¡¯¤5­]Yî„})™Kv²ßqqlxfœ*\–CXªJMtÓ aXÃvnm\½âÍë¿+g%Ï|¹ˆ?RâM‰µH®‹=‘1’zgžw!MÉ­òI*õ„¢0Äà°ÞóæD?EˆÄ\¸ãã*ç5328ªy SzÆ`™£ æ9ñµ–¼2ã¾ç¢Ð¼#'6o©",§„0•W˜tg™*’I#Œ[Uªu…œ¦÷Ãôö>XÙËó¼üßç=. +¾4r5›øÀДŸ)Öåéòd‘\¯ÎÛ«ã+¢ÖH쳦•;Åõ —2­g1¸MÄ Ëµùkó†P™ÇN Á÷° |•*G~þüPšÕVÈê-E5b˜_#>6Ôf;Þç×ÁÜ,\;/[ù²|¡o0•ØÝôW8|­I5µ‚9Ò)ø¼ƒ¡;HJOOLnJoëhnlïHkNbÓé¬vV—•^¹ÙÞyûÓFç‡Þ‚_¡Œ8a,×g‹ãÞæ؇ ˜@|PíºhbÌ¥Å&ëBƒ3$pðÉÅ\U¥o`‹Dð9À_¿Cn¢×$´¨zQ)°gÔBN‡©ŽÔ;ëú®nÓ[ÍF]b±”TF_šÿg¶Èj,Ö•6uÕÔu ðÛz›WŠmz›^—-ÏR0Æ¢CIÉiZ]6¿xr¨6¼lsž7ÙëĽªÚ´T•,.ˤ« +g$$Ï_žNí—ŒÇz×DU®¢ÑVŽÅ½‚ö¬q®iÞɺ⫳ÄLDlèIüäc±×ŽçÞ¢á6.î} ü õ+ïQ¸£ûù{×PÝ«+ç‰Ñæ¹h4 +Ý]{b/“ÞC%ÜPŸÿZ Ã?‡†\”íb@q삵ÿ­ª=¡¼U3ÓB>Ú6{ÏcMü«|&ƒ}ÄÿZnÃáStB¯Ãl¼£Ì1ðÍÿ^eƒø:!ˆ!G"‰eFYɧ|¹­>DYqø.z«ÌµèµbÞÁä+`tÏΨlJcQÜçÀ—;ZZ*Ía5(\QAÔ•iÚB­Zâhögâ¿ÕDZ ÌS¼ "ÔÂF xîõø)2üŒ±¦ C¬)Tk” 'é,ô&LÇòªuMãÄp¥ÈQ˜!Δ&mÙÁ eh&÷¦OÊJ?+ᔬOF<З«Í‹ɼ¼÷½ÒéyÑœRn¼Ç‡ˆæº¿¾Œ=˜vy†X™«K62ú¼b£š•ÁKµÄv“ªlêOH-¡p3ÜxëƒjÇ-[X-rà# ·N"ÿ`’>•ÞÖv“m!¾¶;O™¼Uð”&2•Øg‘—Ë™¤Úœ‹ô@­ò 82íû«Ä“㤶–êíÆù0‚x}nÎÆ}v3ð"¡·Ä«Ó ¶ä„¥¾(â[ÍÅ%ôQGÁ^v$‘0,ÑlÖò•ð“Ød+(7p?×ǴצO6Å-cÑ.°4?o³žOx«xÃC°×Íûۯ𯾵"ØQ‹/,QWïða4¼€¶;HÏFb—mCà6îddY- ¶KRS^7`^5µ&=+5Ö™ì*¶D™kÍ£S¤™éI­™}=í•-Ílcƒ»¿ý!À»¡-wìeö2Sh›$W/WÅ0sQÒ,˜†ÉO­å⺊ò#ã¨A;¸ÓØ­/.>‡$a@FÎjß{ùdã™.&·;.ûÉÖ?‘@wpj«¥~˜½Ñ~øÊ-ña•·áHÚ”YQÓåt–9«ùBOskÍ‘~ñ…¸³;˜Æ½moÓ»÷Q–ºRSýÕíóæn˜¦P›léì?[c™ÉE Ÿýzcë;³Ömž–‘k¶'³‚ÿTf¼€øE9ÎÛ,€·`…Vk•²­&Ý[¼:í"RMGRz‹W+ø*ÔŸzÒÝ~ÖVn¼eñ:¢ÅX¥‘‹Uú\E +G¨P2Á}˜¬½ ¶Z\ï*ëcª\èœo0œÒ6dY^<6™ýNMZj–"á ù"\Ø«7ºžü$†[9·ÿ*ZÃPpÌc4–SíUó@þhôW6Aê˜ÓÜð"ÛÙÖPØI?îÙ’ÄzYÿ6IJœ7J|ûoãOP”ãCzk¾yAKáâ)œ ál)N•pß,ç¾ùÒî²zí+¡Ìßaà+€ÚcV;ŒÍ|ø#¡² r &%J›ª¬VºÄ¬ËdQa”j´û ü NxsÆg ÕÞœqªDJŽý)jˆJ ”âÿñ©Ï,~Vü îìÂn&Ú•mFA&>:(Ç_ýËðÏtåÞØrd?¥ÎJSéMZ¦G“SF§fJS÷ &]‚>WïÀ@ÖƒæOJ½ xÖœÀj< ¸å÷ÊšGvî‹×nÞ¼é ´( &i:=‚+AŸ|3Ÿ+m(‰‚z¾Ð¤.3ÞàÃi„Pv°·As„†à[è_ƒËž¾ ŒS"$_‹ÁŽ"¯A„“èœ7¹>…”‹h9ðL¡ã·:“—–³5xd1ô çfm&Î}ÅÆ©’¯ÄÀâ2WšKùÕ÷K¯´‰ëe.i†L.UTMs½Í€m6Wö Ýý™ƒ=œ°xÏàð3_xÞ¢à0ŠÃAƒ´µ­¡´H€ç\Š¿(6Ψõ6 ÌÄFŠ«IxÙEL“UÝ6²ÀT^ΩSc•*óPZz¢Vo²ªY›2ßœOgæäd¥5(:ï|p÷Ñ™”öZ¥ÑÂTR%ðÀ]‹œ‚ŽƒG»Îö1ÙÕX*0“ph"ÿ(*¥lÛ¿ðŽXG~ÌAyìgÒ³h ±ù@Á gPìçP‘uý=,ÙùåØI yÜ,ÞPäêŸÍ=‘G¢¹Þ´<œûǧÙ{ÍH¸‘ŒÄ!œŽïßA +à= +®B°ÓÛ]9â¥n¯·á6Yâm³1—ü§,PKÊ8ïKüËûþ;oŸõ76þOCáÓ¿ÀJÐ~…ÚÝ‘ÝÔ&nk¨ëê«ÏŒ=¤â8'?“ŽU¶\gA“»º£K|cKßä”\CA"£ËÖ +è\mI¹‘Uáè ViÔ[Œ)HuáÖܪóbøùâ'‹a«‰E5„q9ãÓ½%Ý•‘}£³[!÷ W~` d±Æwó½Ô ÜôêU-þmùÉéOŽïY#d'@5áåý˜£ÉâtŠ;ÔÕÒ,•<-×–Q’ÅO8Õyk½PÙß,nTÔdÄ+¢_Ñ1úyà¸oÕIóï’„À£*‚!žQ0„7À0™´Öÿ 8´JMáv(RÐ÷*÷s†³Á/žÏ¦vã&RpÄÅ!ÈHÜHÜͧ«FâɃ¿]Wž$Ÿ’‚Žòg]Qõïæ¡ yú½%N»©”Ô­®¡ÿ U…··OÀû›ÄëC’¿ð\uƒÏÏnÞ_~å¶ÏCðÀ ›*¤é%™4€Éó¾÷vÜýÉÜ¢%‰كœ‹l0^2”«›ÃFŒ~ 996®=¹¯§­½§/¹ ¼`ðÍ/üvà Ípć0µ´e4:GÕ*ð­Ùîó,ÕÈ-¥%¥|€ 4×TtÐuuúü$5¥”…Û‡+ëJ\Þf§o´Ë[q¼æÁ¯ñ€ˆC +ðÓE€Ï'Ãl>Ž„hà,@Ñ[hZßBÁAñ¾ÿ¸Mrïë òeJ}­×xsi@ŒB¿`Ð_ ðö‡„³À£‚)×y`mq»GÜÚÚúz’Û½bøáÙòMà‚æ| Ët„Zû€®ˆ)Њ ùÙŽ›èuµNÒÁŽc°©pÊM”SWáo3„©°r#€«½å] a×5ÄéÊÍ¿+Wy{ê?q*>;^›Z9ëÚÕ —ºyÞƇŒ¬pºˆ‹€'óÑ‚ó\©h"Õ²¿k¶px”’¦ÑتTŒÛÛRà)ú§°oǤ°„p!ÈUK¹ÍQìÿ,…KŸ +endstream +endobj +1165 0 obj +<< +/Filter /FlateDecode +/Subtype /Type1C +/Length 11578 +>> +stream +xœzwxTÕÚ/CØ…½’I™Ùf³÷F&X*ˆˆ€ô -dÒë¤L’I&½Ìd&½·I2“BHB „Б*Š"¢¢Ç‚¢~õ¨krV<÷® úï»Ï½ß÷™Ì“é{­w½ëWÞwI&M™qxâð«Ã˜t¶t‰t·t¿4Iš*Í‘vJû¤¤Ÿ9Nv”9.s\åxÄÑß1Â1ɱƱÉñ¼ãÇGŽß:N38-rZéôšÓ:§ÍN¾NÉNeN§>§!§»N÷œ8}éôÓÿržê,u~ÆYtžã¼Ðyµó^gogµs–ss›s¯ó€óMçÏsþ§ í¹¼ä²Þ個K˜‹Ê%Î%É%եĥÅeÈå¬Ë—.w\î¹|íò™Df/s–Í’-‘mùËÔ²Y¦¬Tf–õÉÎÊ®ÊnÊÞ—}"ûRöDö£ìWÙ?åùT¹TÎÉÈWÈ7Ê÷È˽åAòpy´<^ž"7È«ä-ò>ù¨ü–üùòoä?Ê“³–fØéìv1»†ÝÄîc°¾lÍjØ46‡5°El9[Ï6³Ýìö2ûûýšý‘ý……5c"{'·>’wKNYŸE«¬ŸR}Ј C7«#Âiš×¹­ •"̦ ¤ßÑb3|E&!Ò/M2Ð0‰ê©,…+ΡéÁ=Æ? µs€õ6¦Têh8Ž<¢©³¹p*NRÁÁêÔpîX’霿A»£©þŒb8•A…Ô’÷G£]5#W„­Ô@µ¹àV1 Æ6ZX¯Ô*è|@DÑÖ&<4¤?­|!%ùHútô²P» +bË›•ÅæÆ BucÉÎ×*+`±ú°ha49 «ÈŒV¤êÒÓUÂ&´=ÜA¨Ïåå•(ª+Š-ùB0£ühª)·(·(=_?´ æ´Gg¦%¸‡U!Ñ\zFI©!ÏhÈ …†ÂE[Œ)P¥<Úr¹³­¼±Ahh2õu= ¬ÏN«=UVÖžGîn»<Mvç”gÄ(´ZeèëBr@F¬6 u »>á3ãD™¢¦¬°'_0#m4Õ›cÐ×o1ä3ò36¡µÓ¢o|KÄdW—+jËŠ[ ð§TÑTsvAVË8œ™f&¡3¼ñ3ºA4‘ð%ëœêî’’–Âé~ ²pN,•”••­å²Ò…±<$¦ †{yËŽ[ú=~ò¨B~aQž=N'D W-dcyQQ)WX¢Ë)SÚFRÛ¸Ç7®ýžr`Þ)qS[„¥SÑÑjéiiNkÔå Õ^4€Ö0ÉÌB3Ðì'ÏÁiÐõ»_àLøìÂ_+BÙ+õûÑJô¢Ú}Ïnõ98®¯½.‚±]c+Y©"ßÉ®ÉW¨µ!QÞ²C;=LÊ-Ôu…Ó“›r**Õ%ý‚Å@XЗ*ªS×o +‚ÛÐçÓжPkKÓÊu÷hx°…‚¾è6}ÈñmÖØ¢‚êü"¡¬¨¦ÐÂ}Óí=k[’_Hœ•”¹VOƒZ"?ÍXù:’-ÝÁ^ñNñ¥9ÊMñÖa¯×w¶œU +‘ÝɉïÒá(¯l.*)©áJÊs3Åijݙƒœÿ÷Ï¡Ë}Ïû[OˆhÞûĪ¾XËÅõS=ïœ>ïRè ¬ 7m¥Á0ßÖu2ìx (5.âÁ¾¤7x`fƒ +´Õ= +«ÚM f”¤|ÒŸÌ Ï4:øøG%ã–îÿÎøåÄÑšêŒÔ"±0=/ÏGqÈPÛÃj6÷^ß|f š1ïYôáÿíÐÿœ  Å›;¯2{ÇñȃsÑsÐÿ8ÉÜsK„2Êø~yÅûx×^®¬ºU*XPˆŠz?Ó·A®Pègë:¨HSmÒÞ3âx8¥ß­ÑnÈ u%\ÊFaé š˜@è´ez:œ„ë<¢yœ¢2Ñ,¢™´|×\gê‘v|þ4•UFe|¶ðÆK8ãà"FQº“5­Ú„üÕT›¾&NçO£áèo¢" šà èc§¡HÊ ‰ÐÓjèx]wMCÛŸßjÕWÇéið +ÓK?ãÒúåkÇÍù?”m¶ÆYg±ç‘+%kÛÌÈz×ó²Ëך\Wô¥hdïù3²E! ˆgà]`U²Æ²¢.¢î3Caƒâ¸º1"2.6L›W'”(‹ƒ ÃiÐØh®hâºj#÷‰(›Ò+µšà\:¦P`yAj¹îm5SÐ1gÔ£ºÔAbü2ymd-£CЩ€7Sºµ©i+0~ƒXE¬6=P'dëµúd=~a Ó_Žs"DcêÓ‹Ö¯ÐÞhªC_oPÒãÅø’ q!z|É +|ŸÈÀÏaû#ÚB”&3ÓMj¤¤†C¦2JÜíõ͆EÓ¾ƒÂ­oÌu׋§›P¬º‚j7«U‰ñšq«á\"©-§¬TQ[[ajMè‚šÉm¸22 h±æ€2Ô—KSÃS<éSm©,ª®n¥«5Hôb@Rž vöÁ“=HÀ¹ðu¸ÔVÀ‹¬ÞlÊ«æ¾8_fÏ·µ_¸©¸|aw»`ò *Þ¡OÕ&r4·:Q·¦ ‹ø5üÔ²„·š§Luø«'š³RkÄ–ø]Šyþǧjò Aº‘ÀöŒà¨cŠ=÷ƒ  \ýÅèö ¼o×ð8¿räl3Õ|âDKK»(ÝÈxk™ ýƒcÈãÙµ9…¹tAn~V¶"--!5U@r$'¬ëÑ®hꄾ:Áà7±¾šøЉ•0SG‹sŠôÃ4$©&ówHAÔ©ŠR2)ÉYz!jÍTjv~EºˆÜ`Ãßm®»Q‚ÿ<Àî†ÏÚÙõÕ +SyE½PjB1j²#£8mIàTÔ=-ü Â?)9!™ËÌ.,‹)Ca^A>¦³Æð UÀ±“ÁÃÃ=7Íä­Äi +‹» xŸÃk\_¥OÌ +O‹äßÞu²í/ì1ðIµ`<¦²O`ÎO(‡'[[Ož ÇïÖߨ­6ôÑ°€ú›ÛÅWwyDìöÀ÷y]ÖtJ~€Ëa|Ó®ÊÞ%a(| +ÐC"tFI"º¢"od×'ŽÒãi”Wdì>ê¬Ù&SEq෺„÷ª7—+^P/ ñ<‚ŽÄlå<µ•§E@é®V×u2¹WjêÏézº«®'Gu5ñº=ôx#Š°6ú1¤t//5I¬³ ”=ê–àÃ)Ãk»Ôb|{fGÎæ‘YŸ$ ‡öÐÝ!ž¦ýrXù<šfü”><ÓþÍM•ÁÕ,dòk{Ïr­uI¡%bA|~”á D×^ãÕ¸€îÌ¡#m¡§ ó EB¯Uù¼á.œ—”îJµmˆÀÈÉY8>gØÁB«‹¦.›‡¸M槼ŀ®ó1§¹ó—›ºÅî~ÓÛwð™eÿHA¯ÄáHŒ,Ë"óƒ¶+Ðê„}Ž% ÿ +·Õ\Á¹ºÛZ:¤€_§RhåV"Ž*;^WXÂÕk#DE6$§nãÔ0‡·%á ¸Ào`îóÀzµ+€(cà‹ŸÝ€S¡üåwÑ«±9y¹‡E¿)ÆšÒ¼rîÑо¹‹}ÜÖû¥Tõ‹`´¼©Ôl¢eÖ‹ià”âbÈÙ=íB“·géznzšIÙ¯O†.Zâí¶A©­ê­mSêI™õog®\~ôÈÊœ´p&/è‰VÀÈSY¼q±ª!‚€N|K±|Ú²G᧊RjRŠLqBXsFAx>™®ÕÆ+‚{ãÞèÉa Ýá/îÕ¤—Vä +„rêxtc2Ful¿ÿµ«Ã]˜$ÃBƒý[Ã{ñy +GŠd€o ÓÛÞÞÓzÂ_Ag!%6ÁbêzöñÄ.ázØΓë87ÿ¤QVÚ >dÆœL. ¯6öÁs]ë›úÁÕzƒì‡D ™¾€Ï1š„25§V©Ëµmñ"œµ„°~þ6HãSüž »{GHôáx:%<8+‚Û²½k4\ ?ŸüÞO +è ~nè¸Ó\“¡ÍÑeåf +Y©ºŒL…¦4©"G^î~ŠàU^Úi“#UuH€ø%<W'1¶Y†4US–œª8]½ŽZuFùsK}~y».*ní8ýr´&7=\ÈÑfè29mVQ…˜ˆq®…´dæØÁ>ØÇ¢DÃRß1¦hÇ/K`v`Α¥}’_ óÏ`A€ß²QŠ¦Žmb½}<;‚;;ƒ:½Ei¿’!` ©ÛKQÆ}I‰ k˜ØmvÔ%zW +å{Xƒ‡!*XžÇ^1ÖÆŽ€É?1àÌØÔLÀÞ&ù8+°ˆÀÎ@Ù#(Ûx¨tý·ð6…U'”M(¬–Vï­â;(„Fæ¼®ú/4Ùi)Z9#€®”¾³¢¾¹6ë2 s¶ûäð°²ÃÌ붸´¦¢Rh45U4r£æ]è08ÝÊá¡žž! ¸pê€Gx¸'½Èr—;±—‚ÕP…ð?¼æŽ/ Q‡éèl5 0‘Q…)&CG³“ÛjÁ{ß›4(Žnñûùz€MQ¨)‡ +Ó4vE`éKå.ö™ú,bms±¹p„–FjMF¼æU]o[óÚ#hÖ—dF)ÐEÊ Ô&Ú€:x(•ž‡OúŸÆãVöàùœo9Û*ÔŸ(鹪îÑ^‘b\`Ʊe +€Ò|—òp ¼?2‰À5,æ)¾´šÍ­Oñ…Œ‰‰ŠhŠiiijji‰iŠAÑBºz ëéïïåqÒètw÷i`â¥?3¥%˜õ ê뛹J@þˆù'ඊ + iŽ:ÑÞÜÜ~BÕ,‚ŒÍè©)8ùÚà'@y‘ïí>ÑÞÓÚî'¶ÁÂ"›*p1Q®“V±ç‰ä¯ãkÙS-µB¤Ò–Ôè+4 °ÕS¹"H0“½ ÕÜ© (/-S3NÀiâáéúDò€ÚtQ]4œI4‹2&Ç®¾Vƒýƒ*/ÛöϱI@¬èúEé÷pë)8딜汣à Êa@ Ä6-ãEl½“%;º€!ARyyZ —_dÌ/‰ +Ç݈‰}˜Ð:±ÖkÀx ÌäÝ¢–γ\_S¨hîǃìŸ$èRÜ>uøp°Ïö¨BÛ|ñŒµÙ +(i|½Õ§zU“ ÀˆìŸIò1’m+(,,,((Î/.üÚÞ~ ®ØRb©(+-(¬°wxÚÙ7É<é;Él‰I2,¹+“gOž79rÅäÎÉßÚM±[n·Ù.ÒNm÷Ñ”W¦lšR5¥nÊ}b1L\ ®ïŸ?“!äWÔkTUHÕQŸÐ›èP:—®¢ÿ˜:yê SÓ§~Â,f¶01Œ†IgŒÌ s H€ LžÀ:À5pÓ^jÏÚO·çíØ/³ßn¿ßþ°½—}®}½}“ýÇö_8Lr f9¸9¨RÚ>vøÌá±Ãw¿;ŒK'IIéé*éZé^©Fš*Í•öJ‡¥W¥w¥Hÿp´wtr|ÅñUÇ×}3›O;žs¼êxÇñsÇ_œœ^rÚáäéádp:îÔã4êtÓé§Oþæô›Ó¿œ§9Ïs^îü†ófg/ç`çXçTçRç&çÎ=ÎÎÃÎç?tþÑ…p™á2Óe¹Ëz—Ý.‡]¼]]’]Š]Z]κÜuùÂåw-“ËfÈž“=/[#Û-ó”EÉ2dY™¬ZÖ ë•–Ý½#»'ûJö›œ”?#Vþ¼ü%ù+òuò=òCò ¹Zž&Ï’åeòZy£¼MÞ%‘ß’$$ÿ^>ÆNb¥ì3ìLv»}™]ƾÉîb²Al›Áæ²¥l-{œígÏ°çÙ«ìmö=öûû»ëdW©«Âu®ë‹®Ë]_wÝàºÕu·«›ëWo×`×XWk¶k‘k•«Åõ¤ë°ëˆëE×kc{þ,I?Ènˆ{s¢j9ß[<çuÎà”ñAUå'FŒ¼UÔݬr­ñM}A-h8ü¶—xæfÂûÜï6vˆ§{š?üVq“Ò\èÌ>–àÍù…×uʼn '2:rîÒ°Ìú,i8¤‡î 9jÚÇ!§óÑ\4÷Ó…Ð铳íOn‰˜ÜײÐ>¿®ï,7\„ìŒb¬ÈkêyH‰uí<4úâÛ<|óƒÞh>Þ€ž¢>˜…“o"䇎íÄ +œFÔ,¨¼`è Hé"°†ÝdÓÒˆÜÜ\}6—œYR+Â*êóµ£HŠˆµßð1G÷÷µš;«²+µ5BzYnQ‘¢¡¥æ¤þd‹ÐVy!·:-T¡ÍMÊIÐô=š¿"R;s+ÊæêÒÁ|Áh«vˆtKEõëLéåÑ] §!½ì­“ˆìZ]q©¢­¢t´@° au*«,½ö0 ÿqZ+ wZ£àÚñ(¢…„G­?Vö56tæOI¼‹c¹[Bò²»³Ù·óÙOË0Á]&‘#Ü@¼Dâl .‘pÊR+iaר«ôçik°Æ²rCWRœ›] –¦åé ÏÓÈ +Ë.ŠöUŸ ºÍAúÁïpÙ½äwbÛDSR|Y4çZÓ‘"¶¥çëJ2èÊäâ(¥bÏ[»½:ð u:¢783G¯ÏÁõÀ*{BF®àÁ#^_ÿ§ÈOnKx*òÇ\ š 'ƒ×¨CChÿcûÖp;m:kèDš~n›êÏ*êvn½ÆÊèÝ“S7dÐ*ë} +lÌ3Y]\>âe­'ÍÛyÙéÅŒìÁ«<ø¬ÂM8ÚŸJPbNÿÏ> Ñ”ùhÊÄ>Úbÿ )½öESƒ™%éï4Æ;#Ý+kÅ,3€­{·š¨üâò²2dðpÖ—è±³f©ÙÙKÞx]\¿Ñwá<¢{^y´VØpÿ«ÀŸ¸Ÿ¿ê~ÿ}ñþýžo~UüêÿxÝû‡o,î~–Cß»°p?\„oûá>¸-BûÑ^ôzíZ°æÄíMÂæ;¾Vxm!šÕ‡MbilA‚J‘Ñ?Œ¡Ò{ìÒÑ‘Ð IòëÜуe/ÐpëxºŽ¼ «NèáäÒ jk+yz*2Ùm؇¦h%附IWÈý2©N‰æÂâZú®œ:õq~qk"ŸaryEÙËðŒ™Ý™ŸZ©¿AÃ=Ôhë@GIi¦¦\ˆ¬¯No溛[{†‚:ŽRFm:*Êî~ŠöDS§²ËS&:6i©Þ™8põ 0`L +³Ø(Ò­Úô:Òê8F5ã T:F´’g xºÎÓU: ݆q—?ˆië +H¬/Á ö,"‰’¸‚”tETBª· R˦t2Ú˜Y¬éBeÖŸ¦EÈgütÜÖ°`?Ýt5Tšb©ÀÈzsi~eI£ØóñLg?CžZL‚»le<”˜p±Þ7©ÈCMa„.« Þ¾ZÑ0(~Ú{ññ +Hnú~f§Z–h\_˜`˜VNéÏÖÔàÌ4¡ûj39¢«MЦS)ŸÜÍ9‘™¾ñÓWø¸-™¯˜ñåOý„ØÓWR¯sðE«†ý9ëâkh¦‰û_›“% Ù®sŠö?„¢μôð§"Aú +?ÑæXË'¦Çƒe¼©ë/ð&/ËÜÀÈ6üUÐÑøÚ“-ÙÜÇ1¼6NglUh88 ÿ]ˆ.‚ÙÇ(…œ(6«à]ê*J£€—)«+"¡Š¬5” +å%õE­Ü{ç‚ßê[ܪÖ/W,R/ûïµi˜Œ´t¬Ìª ©…ÚjtÅ*wC·“–Jð–=¥¢fåF+4Ù¡¡ +Cá ¦ŒïWWß+xÊ#­Ó,ÊJ; t¹‰5^E¾+¶, +¬Á®¶QU¯Ž§_‹ôõ;¨8V—p3F,ú^E~–SfÜGÏ¢†ÇnÞîS?,x]Šç†Û†,BlU¶N¯ÏÈ™žÆ\ØÛ9uÉFwz<œÒ¹'§àU¶¾KõBo"’ Ý¢ŽŒ <Ý4opÛ*°CH£~ïS"²\l†ŸG‘ÉhŠ_À, ã©îŠÒ _žO‰hÚ#«Â*7ÓfxhÛ^ÐCÐÀÿÕçm +êZ;ÌüUÅ‘µ5{ç`A½Óí~Â.ö‹ÐL¤6ê ‹55¥-B RW9qm;áËèâ4ôŠ­ ®†_›Â¶ðù—h¸™‚ +ØÒs¿¼|¨hº íS›¨ •&+QƒÍº+üÂB®)Í(Õ}@Ãä ƒµô'íƒ×>R@zÑm´z¢]ÿNvU’q½­]¯ß‘ë™Cç¦ét©"Ô[?b›j+:ux¡IÛS”Q1‚::8sÆ–²K¶Dïß*®Ûî¿MQ`ƒ¤@3 <ˆüþpÇMáÖ¶5í³¹‚@ö÷kh&“ƒÛÐÔ™G=[‡"ÅÐ Éïþª€N¦†/ -µ}œJ©‹U'ëÊ3S²s³²Ò„ô¤œ´TÌ7kTäÎe¾ž[÷Ó‘£èµuÀ÷î¾ãŸö ªrB©Ö$Çq©µ}"¼`ë_)d\xûöAe¸VUs£{ÍÖ®š†Âbºç|us­¢8§ ###G›$èõ:]®y¡•Ór(ŒJ«°»§ïŒÜþ›âî±á]‡‚CÀÓ½­«VÛööÈðêpÝ–@>þjëYÄh²ótQ"$ +Ê Å±»ò + Œ­šãqä¤ÿ𙞓ÃglÕÀþú¦­¦{SëKÈÂ$»S­'ÄNúÀ#h!| ݧÀ #âÐkh-V`xÝÑóXÍÀNr t„ÄEéƶîÐQî››¿`©ê|ø›ÍÑ1!Áõq]Yb_¦A_©¥«‹#<s=·­÷¬í‰Z®V (ÎÄ´(£CyVh:bÛ7ÖÃG¤tÜàI?\cÿ¬¨š¨¨¹åÒ@§@ç`¤ƒið{ÛÒÐjæÌeqØBæàRï=¿ãH@øÆáG +mÙ_¨&òK + ùœyÂn߇ÎÔÄ’1àò"@ýÕ[Á€§E’bKÑ9Zúú¸{¡Yä±?jþ¦Á†âòÖ&Ü:h²¾ZÀ£¿f·%ñà SÀ5Áøê§Ý¡Ò‰îPéŸÝ¡¬¤t]&•cë}eMg‡ë•/¾˜päHBד'uÝgDàþ˜ÖçØ>&F¨çW0î¿´òQ2õÊzâõÕ=©ÿKWßL=íûK­snß¾mج´Ä­£ŽKåÜTW¡²-W¯t´G+«D`s21;ù¿Úä{¡œx@¡^(‹qƒþ«ˆ?ìHðC_j;‘“’¥Ïà|BºßOÑä:6# r{B˜›’Èy©GqèÅ.ö6û ºC”Æk‹Ë +ó‹‹Ê„²êlŽG™ƒýUª€ÝWŽ¶ZmL¤:`"Ò2 ?¯žì…5½.ð,ô_Ä2®’ý:dïzj²Ì¸<Þ,†‰V²›¿z»;mÇ\†Ò‹² Þôÿ›à+5@;L p6È3IÀ+L»©ÎâãáK| ÐùÃçy`3XôæC[—*Þê?zm¤ãĹ¡°ÞÙYyú,AŸ«ËÓq©¥}ý÷GEðSl(ãþž°ÛÃc¼x[3a_b)ÄÉq“ô!vSÆS’ÞPœP©?GÃD˜…)ÝÁDíÛÙ¥o)pÞØÈC¹Jô­#€•€ Ùõ¥¯ç8x³!¿¦¤AŒ?ÞœÞÊõ¶4o©ŠˆÎJÂÛs[BxLt]U Íùp6¯«|ëɧmyœ&`aÿ”6 t®¡ö¶­pø­Šz'פÁ„‚|Qô¥ €1oÚâ›Ybºž´ ZWD¶jcµŒ¿QÆe©aœ)“ü³r|š?n MÀ”±Ä†žh9Z†Qâ \ŽVÀCø¶®À{?[…ˆàd yµ[µ­K0y²¦­EGV+ß„CÝî×|3Hð4ÚÎî2jêuØ#?K=cÑžæ ñðp>œùÆdb  õHœº½nM«l%:Œ¡H°€Qûz¬æ!F\„D©Bþ,ŸhjÅ”5)Ï £h‡³Ë PvÜ¥>' [ +åìe@<˜åщP.‡î8”+ð͇r9|Lœh02à+Æêcb=È]s‰:€Ö·‘…ßœùãû”ƒ=¢þ{¢\ä{ÀÓÎx}sV='›Ñ„¤€n¶Îa;˜/?¯½Ždñ9q…Œøt]—QfÑ‹ C¨ +Š,x‹C;à N 2¾‡ák¸¾Æçܶj·PÒ£¼ídÖ±Cõ¡~Š M\THrÓÈ`AM}« e­s¶ŒXnS?¼=Ž¿t›G[G¼>¼wîÜ=0aKá6“änogm7³ÐÚ£¸x¤oë[îž»|ð°Þ=ŸÞþÁ㋆:îw ðþý€ûî≯¯Š²ŽñgCXUtrf4§Œ7ÛjèÚH2 )=-ŽKO.(‹Í{Ž”ÛúÂ(€B¯A"¾)³²Jaª©hÀŸýÀæþø ÜÅþ¿èy°†æõ4€/ÃÅp6¾¿Œ×îþë@S½ °;`õ¨«ØÒ#ÞÑ‘jn‹÷Íäˆ:0ª={ºaÓ™x“ P·]ú†¥Q ‡9­:Ó7gwÚü:@î‰×I„Áÿ<ˆ/›(ƒ‰Ë©-J»i€Vgó¶îkn5†'yCô9)"¸*×àû×ìÆüŽ¹â£‰ÖPœó;¾yë‘ð@ni—áºnøj¯D«Ô*›š-øäZ×pKBJ• Á¤ãÖD*Р 1¿Â¨¨b÷)ÓÛï`±¿fÁåX[!þnÿ3 ïwre`¦ +ØÎ}àÜ%àr€u=˜8«’€qtK~‡Î6‰jÆ[È…8Cžu;2vä#$ Ñ³”º ©4gÞ3Œí0#@¿ìÌÊ +ÒOWk'T²_Ž–Pài³ì¤®¦$1R¸(Ïlç?Àÿñå¼£ +endstream +endobj +1168 0 obj +<< /Length 3057 >> stream @@ -11960,7 +12083,7 @@ ET endstream endobj -1172 0 obj +1176 0 obj << /Length 8516 >> @@ -12229,7 +12352,7 @@ ET endstream endobj -1184 0 obj +1188 0 obj << /Length 5872 >> @@ -12283,7 +12406,7 @@ ET endstream endobj -1192 0 obj +1196 0 obj << /Length 3552 >> @@ -12303,9 +12426,9 @@ ET endstream endobj -1197 0 obj +1201 0 obj << -/Length 338 +/Length 318 >> stream 0 g 0 G @@ -12313,9 +12436,7 @@ stream 0 g 0 G 0 g 0 G 0 g 0 G -1 0 0 1 155.512 574.795 cm -q -0 -1 1 0 0 0 cm +1 0 0 1 154.862 292.444 cm q .65 0 0 .65 0 0 cm q @@ -12323,50 +12444,179 @@ q /Im4 Do Q Q -Q 0 g 0 G -1 0 0 1 -155.512 -574.795 cm +1 0 0 1 -154.862 -292.444 cm BT -/F8 9.9626 Tf 240.078 263.559 Td [(Figure)-333(8:)-445(Sample)-333(discretization)-333(mesh.)]TJ +/F8 9.9626 Tf 240.078 260.564 Td [(Figure)-333(8:)-445(Sample)-333(discretization)-333(mesh.)]TJ 0 g 0 G 0 g 0 G 0 g 0 G - 77.501 -173.121 Td [(56)]TJ + 77.501 -170.126 Td [(56)]TJ 0 g 0 G ET endstream endobj -1179 0 obj +1183 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (./figures/try8x8_ov.pdf) /PTEX.PageNumber 1 -/PTEX.InfoDict 1199 0 R -/BBox [0 0 436 514] +/PTEX.InfoDict 1203 0 R +/BBox [0 0 516 439] /Resources << /ProcSet [ /PDF /Text ] /ExtGState << -/R7 1200 0 R ->>/Font << /R8 1201 0 R/R9 1202 0 R>> +/R7 1204 0 R +>>/Font << /R8 1205 0 R/R10 1206 0 R>> +>> +/Length 3413 +/Filter /FlateDecode +>> +stream +xœ…›Aä¸ …ïõ+ê8s˜^Ë’-é SvÒ·Ážj‘éÃ&‡üýØä{|ÔI°‡¦(ÚõmÑ|%ZšßŸÛ[yn÷øûúxüôµ?û×£½Ï?lîùõO³ögïíùaV+íùÇ_Í.µÐ=äÝ¥Mù÷:éß·šü³†ÿèòןZKúضÅÇÖŸ[J'¥™Ä´8ÍžùºMTÕmÂúÈiÝ&®ÀëvÉ ö™@î%o3ï‘o{æ ˆlv ß#"›È6²Ù|ˆlvÉD¶"ï×Õ@6“È6²Ù3_d·‰l# »Md9²ÛD¶Ý.È>È}òmò= òmÏ|‘Íä{Dd³ÙF@6;ï‘Í.€È6CäZ£âÌ$² €löÌÙm"ÛÈnÙGŽì6‘md·K²Ïòˆò33‡ÊÏì™/ òÈåg#"\~>òÈåg#"\~N³ [‹ò3“È6²Ù3_d·‰l# »Md9²ÛD¶Ý.È>ßòãÐœqhÌtÌÔ3͇ÆL9óÌ.‡æL€CÚ ½·Ðf4f :f š37´fj‹ƒŽƒæL9óÌ.ƒŽ™.ƒÚ ]f h³33Í™Z3µÅŒAÇŒAs¦œyfAÇL€A Í › +ÑlA7bÌ8tS!j¦¶˜qè– ‘3åÌ3»º¥BäÄ– z¨G.á*¹‡jpäªÀ‘ p¨þF.¿¡ê©ø†jo,¥—*o)¼TwKÙ¥ª[Š.ÕÜRr©â–‚Kõ–Ë-U[rCïÌÜŽöVŸç8ßúV]¾c­úz£¿íü½?ZÄ”à+ÄÌ£¾õgD_œßå6^¸û=t‹–×ãûªjn–Œf¿9±¼š ñ…ÖÑêY2šý&Å +\h6´Oõø`Ih®]¦³g4û¡ŒŽ@h6¼!PN¶õ­à»7#¡ÝCèæwù¾*”›uA«H… íšÇMGÛšÑì×?ú¡ÙÐ>ÕãƒEhÐ!3ÇÌh¶$‰¾Kh6¼!P­Ì¹ müî·º ÝC˜DÃ]¾¯jcf]ÊÀ–QÑ)&´Š2@üAZ[ÊÀÖYÑM +͆e€»|_ôŬ롾oÆ‹;2Ñ—"è¨F:çš÷#}]Ëè‰/~.%0QŒ&Gª@_©v&a}þùøwQU=þ}¥j”ž²jþ.ªÿ²®3Ûõ©ìûu¹Ë–:Ù×ÕÉîý 2çË=ÄÇÒïÅe ¥†ñ·p¡?·TòþæwžÄÇ•šÛ%ñ™v©>÷ûÊ®ôÈm—)Æßê¥.=øÜoŸ‹øàÉ|X”Ù"È• +×›€éíAð¹ßÖCˆù\«ÈW˜hùÌï ]|Ûš_®¿Ü®™¯2/7ò™ß×k5ø Ln»`1þ` p¼¿ùís<‰K-³]³p½I™ÞØŸûm•ƒøX¦½¸d›™o‹<¸Ê‘ÏüÎ0ƒ/ÉܲÜ2»æú0=Ó«&ñUÖãcEF¾–ëÃMo£‚ÏýΠúHZ—×XfB¿p}gZz®ŽÎâˆh®ÃGCüdf®ÉÒˆh²äÒH•Ñ´=2²FÔEOh5ÕE_ÐZèSYd…UÑZR½Ôçº ë§T/^†]·=O©Þ©UŸ:á»bÏâMÝüŸg÷7¿3x|ð$>ªžÛ%ñ¹ºÅk¼àsÿ©¥Ÿš^ðQÅoê/ú‚Ïýö¹ˆžÌÕ³¦*æ×»ºÅ Èàsÿ©õŸú[òAÅÀW˜ªøÌï ]|Ûš_ªžÛ5óUæ…ª>óŸZª•U ñó@ÕÃýÍoŸ‹øàI|T=³¡b~½«[¼ô >÷ŸZ ªk}±ƒ™o‹<@õÀg~g˜Á—U/µŸn×\®nñ¶Z|•õÁøS+3ع>\Ýâ…vð¹ßTYõÔqºIóë;ÓÒsutGDŸ±@33tÌã'“0smL–FD“%—FªŒ¾ í‘‘¥0¢.zB«©.ú‚ÖBŸÊ"+¬ŠžÐ¤zË{¿ª^t¯[¨žÞ§¿û¾…êùÛ@Ä­Ñ`[–«v ,«¼¿ù«º]ñ$>¾È«jHq½©›v‚ÏýEkC½TŒñ·ºi¯ øÜ_ÕòŠ'óá]UWŠëMÝ´‡|î/Zê}ù\ÅÈW˜¨ùÌ_Õ÷Š'ññõ\UkJ¾Ê¼@õÈgþ¢µ¡^í*Æøƒy€êñþæ¯j~Å“øø&®ª?Åõ¦nÚ7 +>÷­ õïÅ7z3óm‘W=ò™¿ªOækª¨ù*óÕ#_e}0¾h;ׇ©›öÄ‚ÏýUm°xßPyPÇp}gZz®ŽÎâˆè«43©cˆŸLÂ̵1Y][V½üέ¦†5½xò–Ï]Oh5ÕE_ÐZèSYd…UÑZR½´â6Tl4©^lÉ]·íMª×µ6ÔNÉ‹»&ž%Ä›ºõ)ÕÃýÍ?Ô‹'ñQõ†:V\ïꛉÁ¿Ö†ÚU ñ¦n±Ý|îêˆÅ“ù zC+®wu‹mÐàƒ_kCí*¾Â\Ýb[=øÜ?Ô‹'ñ •Gè˜_ß™–ž«£³8"ºÇ*ÍÌÐ1ŸLÂ̵1Y=Æ¢zÚð¬÷mŒ,…uÑZMuÑ´úTYaUô„&Õ[ö…›:ÖZG¨žvõ_ºP=ß-Fü®5lËãouÃYË*ïoþ¦ŽX<‰½M+®7uÓy„àsÿ®µ¡6‰Ácü­n:±|îoêˆÅ“ù°§ÛÔ±âzS7¤>÷ïZj?˜|®bä+ÌT|æoêˆÅ“ø¸}ÛÔ±’¯2/P=ò™×ÚP[¿àƒŠ1þ` z¼¿ù›:bñ$>îÔ6u¬¸ÞÔM§W‚Ïý»Ö†Úå}qÇwf¾-òàªG>ó7uÄâÉ|Mõ#_e^ z䫬ÆïZ£ÁÎõaꦓ9Áçþ¦ŽX<‰o¨<¨c¸¾3-=WGgqDô«43©cˆŸLÂ̵1YÝö¬zy?¶¥ž5½xò–Ï]Oh5ÕE_ÐZèSYd…UÑZR½tNÆm¨ØÔn†]·ÚÍðÓ3ˆïZ£Áö, ífณguj7 ?ÏUõÒ‘Ø%ñ¹º ífàóÜßµ6Ô¡ðQņv3tè)øÜ?Õ‹'óAõ¦:V\ïê6´›Ïs×ÚPçcÈÚÍÐq-ñ™ª#Oâ£êMu¬ä«Ì Uoh7Ç_jðQõºÖnŒ?˜ªÞÔn†.â繪^:Óâ6Tlj7Cà‚Ïý]kCzyñÌÌ|[äª7µ›†|YõÒñ·k®W·¡Ý òUÖã»Öh°s}¸º ífðþõÁøy®ª§“*nRÇfìfÄàë,Žˆî±J33tlÄnFI ¶ÉÒˆèy.ª§Ó)žõ¾ í‘‘¥0¢.zB«©.ú‚ÖBŸÊ"+¬ŠžÐ¤zíÐn†Û®b­i7Cg _Vµ›á§ _µFƒmYbü­n81iYåýͨ#OâãAÀC+®7uÓ©ÈàsÕÚP‡Ácü­n:7|î?Ô‹'óáÌß¡Ž×›ºé®?Œ÷Æå‡ñ¶ŽùÃxü0î÷øúz~ÙëDõ¹žDí‡E]Ó×…aXŽí!Í>øïŸ×düoõ–‘¿Ö«\¯ç­ÜýÌ•çë»ýô—w-ÿ/Iÿõv×ï!o'ÈŸÿ`[G. +endstream +endobj +1209 0 obj +<< +/Filter /FlateDecode +/Subtype /Type1C +/Length 13073 >> -/Length 3652 +stream +xœºwxWö?laÏŒ˜ r‘G¶5h†ôB'ZBïL·1`pø˶$K–eK²%«Yr•-˽w Lï%„ ”$$$¤m²›Æî{½ûýÈ–ßû<ïûýãõ<~4£¹ºsçÜs>çs +ÏÇo”dz%!)&cÒ攤}ÉÞ뉚ç7Ê#ñ-VyRŸ/Å<ÌŸâ1¾ÅcüNŽc~G¿8ŽfüÇÑA>~<Þ¬5›íonݼý­ &.II•§'ÄÅKÇOŸ:mÆøhùøÝ¿4&#!.yüëÜIVÌ¡”Ô¤˜déú„¤èÌŒñ/ž<~sL\æ¡}éÿúøïDÿÿ¦æùsïæ³Ý§•À‹åý<*Åw¬ïjßM¾}~´_¤_¬_;ÆÃæbë±d,ëÆð`|<þ +¾—ãýø)üþ þÿ'‘G˜;?€Ì·ò«ø®ÑüÑ£•£¿'7ÇÉÈûà=°,Ù ¨­c|Æ?æ1³ÆèÆÜ;nìkcç]4vÍØð±ÛÆÆ-ûpì+ˆ¤ +ä‚|ApQð‘àgÁßÿôçû ü—û¯ößà¿Í¿Ø¿Ä¿É¿Ó¿×ÿI€0`I@x€2   0 $àTÀÕ€Û¾ ôd_ |#p]`Z`f 5°.ðbàõÀ? šô~Ðò ¸ Â ª Ú æ Ž ž þ ÓA烾 ú6è7¡¿P('|S8[ø¾p±p¥p¿0Gh– +Â&a‡°GxEø¡ð¡ð ! ö ‡³Á¯O^¼*8|=øqð“à?ÿüwʇR¯Ss¨ÔJjµ‹ÚO¤”TUBÕPõT'u’ºI=¦þLý&%"Eþ¢0ÑK¢·DSE³DóEËD«EE[D¢ƒ"¹¨HdÙEu¢ÑIÑ%Ñ ÑmÑ}ÑW¢ŸE#!£CD!lÈÄi!³C„, Y²1$2$>D’b ) q†4„´†t‡9r!äÇ!C~ù-…ú…Ž„ +Sðˆ—¢ÒÑ+F~*þŠÅhÃb8™øÂP©®œÃo€J)®ž«RÏ2ðÑd˜Ž·›¬ÖVÒ8äܪêéü&¼¾‚´Êð»úŠ\óþÈÆåàY“R)Ôz%-ÕV ±p;qFߦldz3÷Ön¤'-ÚµVZ›ÝØXç®·mF;k(5:ìâ–ÎúÃ'[’·2ë 4i½<o ?3[•pP à?žÏ¦P8‡^AQ“:§œÛÌ®½ôôÀ×4Ü ÇAFý%ùÉ–ËìGkgõN ãüŽ—'ö²çvuLB@¼Q½8©êÍt{Ð`‚;èã'Põ‹p¢'œÛÙ,\8.³0O­ 5 +«CÁ +»ªbcé}{ÉÙøCò}ÛÅó†Â¡ßFæÎ3û›bø¥¹¶¬tñª»O[w +v2R¼Åcõ¸pm­©¢ÊI—×jk¹‰”ýƒ4äýè÷Ï·Ü@¡wØ—/î:/>¤ïÚ±#²¸¦#±*­z#§ÈZ<{)2mbиï߀A0èÇgœv…Nù³¹)Ô—' £V.<Ûx8‹M9“sûcñŸŽ_»Ã€%dMù$ p‰`¼ßiÉ©ìÃnâØp}E}²ñÐ*ņÕêœ]E|%<à$vÙò*Œ'ùPNü°ç¢݇kV0­y»,!o»2LAXìp¦¤µT¹‹E&¸1/wg@žïó7j©KvYr7Š†%¡PØtîÔw⣹}imÌ`̬æÉ4j“á÷ +ÊòM‹É|ÍB_Ûk‰ù6u…ñ.î$.˜a>ºŠÁ™øH„ç ÕZî8 /í´3k_œŒÙ¯›`àƒB(Áòð½¾HGë4f[ëJmô{›·/ ïÜÿe{é Ö“]“qH¼'1eÇòøþ_¥LšZ‰—Ù­æ +èår½ÞÄ€¸¶ÊÑif¬eŦr¶uɈaÎh~F/Á´%-&ŒïäçO-äÖy¹–˜nÎ-7>àÃm|f]ýº¹þ´5 tyÆSŽÊs9ÝáP¬aÑ:bòðÖÏÏn>y„9r²öÚc1$bžìLÏÎN—•åÔg3-%%¿"£äÐAñÛ›–ÎKÉ(¯U3y®ÂÆa1Œ!Ú9³®b<ᵈžÿ|yzˆa¸KÇ#_Þ›†¨BþJ|¾¹Àbìå{’óÝÊʇV> p$xý KÀaš‡]ÃhÊc*IŸ—¥fTé©Yt|J÷QÖJ˜® õÃу|p¯z (E ÑgªÎ1ǣݨ.$¾v8Ošä$:@§èó³I˜U“ƒÇ*+ûŠX¸º0W"Ñ’8Ó% ß×£{žM½òNÜÂùì’eû'¼!Füþé0K?yÿ ýëÓ¾»wÙO>éÿî™øYì·‹î2÷Në{‰F?ŽQp œÈ[`8œˆ&¢-h3š„&£ o½ßys³òøÇ߈A¶d“Äl3›îJÀR@yëÈ{ØHðwäEÒ…äĽjU!wßš[a¼Ç÷8ÎœG¨SÔ#¿×ÁùØÈU\‡æcxäÕÕ@ÂÌ?7R„gækféù2àù.¥’Æ'¤"ŸB>*Ã=K=Åœ# D6Z€5ã5¿ô¶A‡iøȪ‘¿bJÏU¢.ÅÄ%ÊZ5 '¿ Š7Kµ 9#k½z·¤iÎ’?ý×JVP@ÂQ*éÎldžΟ:¶…5%P=íIqqÉÉ1ñÉm}½ím½,ðµ‹`®Ï6í³¨Ë}ap-Ç£ V½Eo) +sh,:½8?_§fdJ˜ìÄ÷XÕî;&Ám¡m-0úµTß0„9Ñ^1`,/ÌåÆæªr"˜g6Qh> NÎ߬ K*ÀrSe©©Œî.Í`G²㶢¢¥y|ð¤ì?¯S-vçVpýûv×3†Õ 5ŠRÂU™Ÿ›_˜¯Éc9 ~ K{Š›¾µ•ž²ð]5([áÂOÙòÍSùÓS _ÂòË eâªrG-Sê?fêVôï…£( +Cs±]’e tFÔÈñ<­Ía·Øí¥, €Ó0Á{¸ø©ËyÎʯEÛdD±\—#Ž]„F½ŠøLŒÂoW:/3.$“—+•ËX•E¼ +ù‹à¨>qM¹­Çë3¸ß+¬U^˜W“qzE…²"‡;”Õ™¡h5Ê[>#!-Â&‡%."ÁœWâ;í'®3P7`°$Wµ„@Í"A éYå¦à›«Œ—ÚhDM}Û]±».†­N­Tv§.FãCûð ?–ÓӠЋÙê“}lNcnÅ¡z~âªmkyÔ1½gÅÂiE{:“ÕI¥^R_üHüÉkwN¸yó&P¯áPˆrX_•ï +;žÓ¸‹FÄd4½…‚ïLûí“‹=wŽ°%1Žl§”¯(/Ï·Ó›Ùbg¿Äz ­¢À ¡÷'÷}¢`g¸(Ä ¦wÄ +GCvð‹Û” n¶JêH¯{Ÿ/°pÈ#'nÛ2¿#F‚BgEç*Òiu¾µJÆVeçYtb¦<5®Szúèáê¶6¶¾¾´²ó\í¡B>éï¼næ»P†œ8Y©•j‹‹óÓÙ‚L$B½ˆ ˜ª9¿¥R\ç*ëg*]8(îó|ÙÇûýWÎyjìãܳ® ×Ø.÷=ýIüMòÃðóÌG+¯IhÔ Ãif‰q±Z½Pχ›=7¨Ž2Ç‘¯nä$ 3·ÎD>bDFÏšÉ$ïؤžAïW—v²àeÌÕÒñùåÇYÏ BoŽÌIÈ[¥ãôßa+.¥ûJ5Ñ,šJtƤ–ï!Y ½Œ‚ïÍ€¾úÝ'ºÙ5„µ¾qC®PZ­Z“Çd+Ò4Éô¬­ŸrêwòÞýsÑÛXÐË"ŸXJ²±E<ØÑrübûÁi ŸŠØA[5š™ãÀëœj#[ W¨™ÍsößÀrk5eâ²J{ c¯F‘Üc…&㧈:¶8tÅK[f¨Õ1ú0™Ëskòˆì¼’ +‡Ùæîd?„¼[hV!/Qæ‹só´™L$n•÷óQn?§à\ü’ÑfXÆwA7-ÎJ 7ñÑ\h†“ðßÌéåÓkL¡ø66b”ãÀEfå¼M‚zYŸÝn2•0à0i+.6ß•Õ¼Ò2¥`íО«Cƒug®2 Ø wzh7ÏC<ŸF©q”7rdÿ¤<Í*gIiµj"NZÕ`·7–5±GžaP÷¿U´æ(ŲÜ8&G;\¹xTZÛ×qì0ÔÏ0ÿo(wÉvÎÒ;dÄ]™Æ´ˆþã€v™ +œ ‚‰€„ösÙdÜ´£$ÃÂÔêË:«Þ¦·…™óšR½5,¹ùP»Ñ¯Sd»t´žûËmÚßÇv¨Éj:X¨ Õi±ùoEoÊë,E%6³Éfe._:Ü÷ñU¾nõì¦ô–u1¹á^U±™0³ÓÉ¡eC©b/;âO,(JÏËf4:UŠVjìu +¶A®*Í¡¥rEfâ€ôüÐ᪦¶·³þÖ#1ðúó9®ŒDKJÕBZðݧr +0ñ6š{(Û¨ObáJâvµóÇÄ/Q¶–Z³›þÓ5§¯]?-+ÇRÏÑ$‰0à+¯fªkP–¢¯”ü!0LÖe¶€µš`r'$zqÝY{ÖÌpû'€ob.YÁdNmÞÐNÅä¨ÔRZ•]R*g3*0ḊŒŒ’LZ81E"×Q^íl„8YUØD_€A¸ŽZ³™žÎ!GºpH­ýø-ñæ¾BQè£7ž;Ý2Üͺ+Û\øè £n:ºûOѧÛcVYX #Éò³¸€&l©Äó澞7á= +%kÕ²}FnÄäPæ"ä&lŸY]{] “› (B°kíj¥Xž§KàF÷)Æ^k«)7fÖ§gdffhl +»Œqï°flÇ™”Ö}5|‡LfÓÐR…<-Å©l«(³”6²Îk¤gËÒ3Ü\ çv76f»¥,'®‹›/yBÁθ¸ÕJ¶ ÷"o‡»p-d%ðÊC_xÆRÓ Ç„8Â+WÀlÎMí´èKßñŸ¶Õš†9ò-Z­¸@«W3r˜ü‡·çvã8ÙÓØÐÝ™Y«Õ:Æ 7é]‰£«¥ç|? èrg¡ÖÉ6äa O¢×/Ý>•Ñµa½DÅgHÀšè̃\¤q{óO?ß¾ú»›‘Y°÷Ó#¢WÒ+wœºÕæ¨kè`UmÚº½¶¢Î-­ŒOÏÔçƱ€* ÷ªc8n·Þ8Gº$—蠟-\ŸT#oiuÖtX‹íÆÖXŽ•]憚£tcmÊÎÚsl‡¤bÃÚ™qàØÊd —,$#¬Û$î…Á’Ø­±¬@AÂK25Æ,–î*ñYYk|¼,e[®e¯9‡D?cŽ%TbZZbbsZgGssggZó!?RÝÙö6ºZ[/óÑßÏP¦Ø’Øò8¾‰“ŒQ,_›40|¥¥Žb>?G} òÞS¨æpáþk\¸oj·XZM|8îÿ;ÞXÇ áÛä2 Øÿ²`a„Ïÿ+^íÙå–­¦Õ3½xSDÂÃ.BjÂÀú=Êìýâ §£ïß?5xýXVëò“LêZêpjUö!ñA©4>:µýDWEC ö;vQI8Q”$p8AÀ©$Тä‹ðz<8`k¦…Ÿ'Àóhøµ–GâhªÅvÁ•Ónsž£K)Dã†+°!øµμ|»–.*4 +ÙW·b ]r‚$²Hà,kV:Ó‰£SS£åyÖêL¦J–gË£³•9Y‰íò³Ð÷óKàhGMC«øDdïúuRWÄ3Mrl¨Ã]ÙK÷ÔÉ’bÓ2—IYAÖ{$ðØŸ_šºYgÕš9Ÿ09R+y:bÇ•ú‹¤>³µ½¾¾­MZŸÌ +ŽŸmâ~Þ™>•‰yä‰&n¶¨Ú™el}4½+*}ã&|$™z#Â( +½‹fr1Åø.šwrÇl8 î€;¸«¹h+§¦(ÍE³Ñv´ÎD³¹Øb7à]¸FqCf¡(nH#ùÂ"ÏKn)¢ìƒáÀ¶†¹(¸ͨ5X¿èêøÒÆi{TÔÖð£{€'ŽZž Ñ/:dW…–Y1³½Ää Ûì¹›Yt÷ü‘}íõdžÅO\E~±)ºœh¦@ª)Ê£³4¥µEly¿Ây¸Â!øµ›÷ø¬{æ úȯŀø¸ºj R%ß ³ŸI5è…h2Ujdb@Í—€ç¡T½;UŸ¶ÉÌŽ¼CÌÒ¦eæiJZf(3·<ô†+ ™TÊJJe^äljm¥¦†®sV7ÝÙ2Á¦´]qlRt^¬n<%¯H†<¿æµB.Öžü憓Ȃ‰g?µ"!¯pQ÷†å k·p¶ºø=¯Ãñ°ÙeÕÁ , O)Ì÷æ1ŒÅµûY×e€j¿Ð{üÞÉh4#ÜFíZ¸$rso;#ÈV$drŽ&e;yf(± $A¡¤·JHPÉÙû/`äµ›ž¸‘¸U„ÀE,Êqâ. øJ˜è$¶Z5¥gÅžŸ8v•oЩuaà Ù~¿Žˆ»rk22reà°„ pR|}ÛÑ÷£ÔR)“%ÓÈrv7©B‡ëÁMÞ7¤'&Q#q€bþwâ‘@?’{0@‰=ŸöƒÊÒÊ7HçQgH¸·…Û®ó Ñw–Qk¡ñ:!ym•'η + Fì¬Á)[+nÉcÑ–G¨Ç>?ö)Øõ˜ÅNC–Èi +õ!:+ËVª`OL—Û£èÝß°ÛL@'LGÜ?wze;üHhG‰ˆÐFÜxûÅØpvˆ®¯(Hu±àÊì"œ(rÿÜé†3(OI.I§wïÎ8Â&íÕ(|‡f‘¦øœ|N¹Æ_CZüþ®¼ùO%R¼Ø +¼;ʪaêÖÆÂúá‰Nð{±Ûóí0–<ó…ïŠ8\â|”ÃÏQ_e®§¿¼°iæ»Û¶Ì“ ™X/Ä2£RÉ PQ¡ÆMyTPk?ôÝ9nÐüîWHóBÕ‚—Ƹ°ß®ÊÌ/L1†¡±ø“/±«à)Ïï%9áÎlim¨oÍ#SY çTLZÎ@òbŽ[N—,žÈEøÇ@wQuÑ`_ëvë+èúj¸_1pø}¡çàŽˆ¸ƒ;ØD€N่Ūq×ý–¦|¹|ÉÜ-áÛoßgRiJ2p‰VCq¯³ÝbÀB1|…ÄA9•Š»àÎv8ßͼ»_Àõ_ø‚nˆ{æCÎByCžw†8ÿ}ǃµˆý|ü³+͹yn@Á·Hè(øˆ,ª^Ï?¿'AQ4¦Å}Ö[5¸˜ +Âx±¼â’¹Áêg7Üzòú±÷â®g¹Ç„tƒ“0„Ì¡îÕyº®Úd=ÌáQº"Gª3éÌ:Öª^±ÉœWaºVA€¯AâÒÎë`Éé)h{aÉq±mÉà_鋂İíòO^8Û tf'1Ç’Wþ‰~€Z»ˆÇ=ö¦~öŽaó é|ùˆ/ü€ó¸c®ž\@y5|$ŽÁI5@ÉÝp­ }äÑ|ä Ð<3 Šk<Ó8‰]ò¹®¥¹ÐM?ô p .§<<o„Ç;*£߮×`½-à2v]w¯ø>?H;€üëY5߇„•LØ´Uó3Ù¯ @å1}$$sëŽ*Ž†Ž7êô™,uëõè/|Iô<âyÄ?"pð¾v®î…KZx@QîæT ^¿7Ýßò·x2–]½744´µHSXAC]{{zc+(5•Óàù«ÜdÃôcàCNgÆÌwgÍž3ušÐ'؇òù„ø„ú„ùˆ}}‚|€·ªäç³ÃçSÅ+æyF½2Êéëç»ß·• ´Å÷= ÷xðÛ'¾ž(¡rm±›ò´‘œÚàð=¸{úýÀý‡âŸç>xeËöÌý±Lb‚2Q±´NúçÃ=·9Û<ë½ÝSfMgÑr´ S{Ä„@Ë©Ô·W‚àÇbî?‚“àcêrƒ!¿½.í_.~7|Í¢”l{c,ãJVØ´T©ÊŠ?šyûþ£æÁaöÄ`Ó¥ÅgrŽ§t0Yõ²Š½µ|á—·N4õ¾öüä{‰qLRŠ2=kƒ³0ôÞác×é›C{×Ä)ãÓÓØ$îΊ >÷ZnøÆ Ïûî xìáüÂï=‡`õšgÓ}8² [»ÑE£÷dkcÖ²-pôƒ>pZ3E£ê«“KP u`ý²w¶þ§œv´ºlu]Gi-и=wïñ<[9O1‚ãÑ5ƒÖV^0…Á$íùû‡ñÏ_öJ£õ¹ 5èÂýe÷`ÊG[î À£‚úù\÷à-ñ㥗_çBœ•SW×&?›ÂŸ"Þì¬äåâ·®„8óàæo†ÑØoù«ÔÝíqáâÕQQ«ì¸ô䃺ÁËÃŒðÁÉÔôKqÇ/ˆ/¼~ëèžåëÓö¯ˆbZ¨9êñkåµç{9“‚~•çkoäÿ~ÿ*Òb8g*DLÑHpg.ô9¤zð,f!ßñhb^†Ï©ìÂü¼|Fš£Š£D|ÁÅê+uͬ»¦©¼þêØLô˽`óó f^ã°òG_h>›Ú²/'.–݃4ZŒFu!þ‰pfOßéŒKôé£5=½ì¥óýNJᾩð%Â¥Q_CŠA1{ÆÏœ¹çoðL8G=a½zø<€Ãª„'¾Á6'>_Q>ld9:P`F+§b*Â9Ðh/¥ëJ•‰ìÈN°V¡Z`ä TUžme0ª +ï'ƒ“Âç±Á+ÕdµÚ,k‰Õj3fÀê¶Y­î¢Ì:f,Oà5ó½>Gx8ï,ïþ¨M£®Žºé;Å7Ê7Ú·Ø÷¾ïcßïüÄ~‰~R?›ßE¿ë~ëÂNcÿÄq|4.Ä_Çâ…„¡& +‰ßùß¿0zúè„Ñé£?ýýè¿ÛÈDò6ù|Jþ Ð`&X*Á1pÜCY}#úE„DÿB†CÆ…¼òzÈ„ç^sGJþ@ïÌ6¿ÊG Ä +]Œ"‰‰H]sh!½tWã‰TVÞ©í».†wOJ>õ&šzeÄ£?Mè-úlœyŸôÜ`” †U„ùYyÕg¥|ð|[-eÑ”ÅßCfÏ¡Ù8:0¢^ƒ^WçDÂdpW-‘]ÑVa©²U²Çáh :ñÁ XEª=M%NWl322è Fr9² + ÈzÔŠ8›Z±7y ½yoÛÅdVÞ¯í4\ãëxÁš¶ôN~oÒîºíôÎHyB ºtŽ1wfBâOŸ\†>GôN¤–w÷]¥¯6¦Ì¨dÁƒ–V_ÏAO(50ŸÈRYìÙl¦+KK±¥Ñ“-²¶9æÃlZFV¶:¯¨0,+S—§g–çÉf–lO;+Þö`ÏŸr†éï¨éì_‹\deU‚m5g”V‹Ý]=-¦¨·Ö`¦û;[:Ø®VgÏ)q›¾AÕÉ íˆ˜Òv?Ô¦¿éÊÛ´à¦onj(ufmð{êrkÏñŽfER5S_µ_ž¿{]ô?2% „ó°u8ò¯ºq8ö7(xüäû|'ü…rü¡ÞQ`^ÀGï‰R£Yop ¼þ‡Öo‡N2'^o¹E_8%‹ëgÛ“«ÓšÖóð‡eâÙ:yn­É±Øå¬3*ÒEsaç+è ´÷­–…6²ËoþGÑ_Á€žžÃ,ÜC˜¯–W\´ò'ų È•xgu~N¡QW¤eßFmˆ€%˜®ª°ªLìrÚš'ŠVÍ…5yÄ‘1´"Õd´iø­;«c•âézÅ!&]™%SѺ|oÑÒ.—[sè ™,ý`GúÑ[ÇÏÃ×γp²gbegyY£% dJÞ&ïsÏv*fr\–.GMç+-6%[³k§#’ž3ûЖuì²u1SÐ(1Ú ÃÐ8GI¹ [ºxeÒlzm¸»/»åä¡o Ÿ®úžƒó×.žÉ:p˜éLt¦Ô®æ¢I_eÓ–zK°(´ )[0%á0aæŠ +SÝXš³‡EJ°(_³¢ˆò'¾¨%ŸªÅç˜UU†{PHš?©¬xláŒè”ŒøR_®1KŒ Ôy³¸Á¾ž—áTjYD\ÆfzÊÚO!ñûùÛŸõVjbÊØ’L,ÙáRÔÓÍuµ –˜µkGv\4»sOÊŠybD=š }®îèeZj[Û/óõa×±i$hùw@ò©¾Ray‰¾!F( C døѪ‚ÈÃìÈ:ÂðR®bŽž/ƒêZb¾UYgøïG›jøJsN•á2fGNµ–”ê5åŒÒY¡¯¤5­]Yî„})™Kv²ßqqlxfœ*\–CXªJMtÓ aXÃvnm\½âÍë¿+g%Ï|¹ˆ?RâM‰µH®‹=‘1’zgžw!MÉ­òI*õ„¢0Äà°ÞóæD?EˆÄ\¸ãã*ç5328ªy SzÆ`™£ æ9ñµ–¼2ã¾ç¢Ð¼#'6o©",§„0•W˜tg™*’I#Œ[Uªu…œ¦÷Ãôö>XÙËó¼üßç=. +¾4r5›øÀДŸ)Öåéòd‘\¯ÎÛ«ã+¢ÖH쳦•;Åõ —2­g1¸MÄ Ëµùkó†P™ÇN Á÷° |•*G~þüPšÕVÈê-E5b˜_#>6Ôf;Þç×ÁÜ,\;/[ù²|¡o0•ØÝôW8|­I5µ‚9Ò)ø¼ƒ¡;HJOOLnJoëhnlïHkNbÓé¬vV—•^¹ÙÞyûÓFç‡Þ‚_¡Œ8a,×g‹ãÞæ؇ ˜@|PíºhbÌ¥Å&ëBƒ3$pðÉÅ\U¥o`‹Dð9À_¿Cn¢×$´¨zQ)°gÔBN‡©ŽÔ;ëú®nÓ[ÍF]b±”TF_šÿg¶Èj,Ö•6uÕÔu ðÛz›WŠmz›^—-ÏR0Æ¢CIÉiZ]6¿xr¨6¼lsž7ÙëĽªÚ´T•,.ˤ« +g$$Ï_žNí—ŒÇz×DU®¢ÑVŽÅ½‚ö¬q®iÞɺ⫳ÄLDlèIüäc±×ŽçÞ¢á6.î} ü õ+ïQ¸£ûù{×PÝ«+ç‰Ñæ¹h4 +Ý]{b/“ÞC%ÜPŸÿZ Ã?‡†\”íb@q삵ÿ­ª=¡¼U3ÓB>Ú6{ÏcMü«|&ƒ}ÄÿZnÃáStB¯Ãl¼£Ì1ðÍÿ^eƒø:!ˆ!G"‰eFYɧ|¹­>DYqø.z«ÌµèµbÞÁä+`tÏΨlJcQÜçÀ—;ZZ*Ía5(\QAÔ•iÚB­Zâhögâ¿ÕDZ ÌS¼ "ÔÂF xîõø)2üŒ±¦ C¬)Tk” 'é,ô&LÇòªuMãÄp¥ÈQ˜!Δ&mÙÁ eh&÷¦OÊJ?+ᔬOF<З«Í‹ɼ¼÷½ÒéyÑœRn¼Ç‡ˆæº¿¾Œ=˜vy†X™«K62ú¼b£š•ÁKµÄv“ªlêOH-¡p3ÜxëƒjÇ-[X-rà# ·N"ÿ`’>•ÞÖv“m!¾¶;O™¼Uð”&2•Øg‘—Ë™¤Úœ‹ô@­ò 82íû«Ä“㤶–êíÆù0‚x}nÎÆ}v3ð"¡·Ä«Ó ¶ä„¥¾(â[ÍÅ%ôQGÁ^v$‘0,ÑlÖò•ð“Ød+(7p?×ǴצO6Å-cÑ.°4?o³žOx«xÃC°×Íûۯ𯾵"ØQ‹/,QWïða4¼€¶;HÏFb—mCà6îddY- ¶KRS^7`^5µ&=+5Ö™ì*¶D™kÍ£S¤™éI­™}=í•-Ílcƒ»¿ý!À»¡-wìeö2Sh›$W/WÅ0sQÒ,˜†ÉO­å⺊ò#ã¨A;¸ÓØ­/.>‡$a@FÎjß{ùdã™.&·;.ûÉÖ?‘@wpj«¥~˜½Ñ~øÊ-ña•·áHÚ”YQÓåt–9«ùBOskÍ‘~ñ…¸³;˜Æ½moÓ»÷Q–ºRSýÕíóæn˜¦P›léì?[c™ÉE Ÿýzcë;³Ömž–‘k¶'³‚ÿTf¼€øE9ÎÛ,€·`…Vk•²­&Ý[¼:í"RMGRz‹W+ø*ÔŸzÒÝ~ÖVn¼eñ:¢ÅX¥‘‹Uú\E +G¨P2Á}˜¬½ ¶Z\ï*ëcª\èœo0œÒ6dY^<6™ýNMZj–"á ù"\Ø«7ºžü$†[9·ÿ*ZÃPpÌc4–SíUó@þhôW6Aê˜ÓÜð"ÛÙÖPØI?îÙ’ÄzYÿ6IJœ7J|ûoãOP”ãCzk¾yAKáâ)œ ál)N•pß,ç¾ùÒî²zí+¡Ìßaà+€ÚcV;ŒÍ|ø#¡² r &%J›ª¬VºÄ¬ËdQa”j´û ü NxsÆg ÕÞœqªDJŽý)jˆJ ”âÿñ©Ï,~Vü îìÂn&Ú•mFA&>:(Ç_ýËðÏtåÞØrd?¥ÎJSéMZ¦G“SF§fJS÷ &]‚>WïÀ@ÖƒæOJ½ xÖœÀj< ¸å÷ÊšGvî‹×nÞ¼é ´( &i:=‚+AŸ|3Ÿ+m(‰‚z¾Ð¤.3ÞàÃi„Pv°·As„†à[è_ƒËž¾ ŒS"$_‹ÁŽ"¯A„“èœ7¹>…”‹h9ðL¡ã·:“—–³5xd1ô çfm&Î}ÅÆ©’¯ÄÀâ2WšKùÕ÷K¯´‰ëe.i†L.UTMs½Í€m6Wö Ýý™ƒ=œ°xÏàð3_xÞ¢à0ŠÃAƒ´µ­¡´H€ç\Š¿(6Ψõ6 ÌÄFŠ«IxÙEL“UÝ6²ÀT^ΩSc•*óPZz¢Vo²ªY›2ßœOgæäd¥5(:ï|p÷Ñ™”öZ¥ÑÂTR%ðÀ]‹œ‚ŽƒG»Îö1ÙÕX*0“ph"ÿ(*¥lÛ¿ðŽXG~ÌAyìgÒ³h ±ù@Á gPìçP‘uý=,ÙùåØI yÜ,ÞPäêŸÍ=‘G¢¹Þ´<œûǧÙ{ÍH¸‘ŒÄ!œŽïßA +à= +®B°ÓÛ]9â¥n¯·á6Yâm³1—ü§,PKÊ8ïKüËûþ;oŸõ76þOCáÓ¿ÀJÐ~…ÚÝ‘ÝÔ&nk¨ëê«ÏŒ=¤â8'?“ŽU¶\gA“»º£K|cKßä”\CA"£ËÖ +è\mI¹‘Uáè ViÔ[Œ)HuáÖܪóbøùâ'‹a«‰E5„q9ãÓ½%Ý•‘}£³[!÷ W~` d±Æwó½Ô ÜôêU-þmùÉéOŽïY#d'@5áåý˜£ÉâtŠ;ÔÕÒ,•<-×–Q’ÅO8Õyk½PÙß,nTÔdÄ+¢_Ñ1úyà¸oÕIóï’„À£*‚!žQ0„7À0™´Öÿ 8´JMáv(RÐ÷*÷s†³Á/žÏ¦vã&RpÄÅ!ÈHÜHÜͧ«FâɃ¿]Wž$Ÿ’‚Žòg]Qõïæ¡ yú½%N»©”Ô­®¡ÿ U…··OÀû›ÄëC’¿ð\uƒÏÏnÞ_~å¶ÏCðÀ ›*¤é%™4€Éó¾÷vÜýÉÜ¢%‰كœ‹l0^2”«›ÃFŒ~ 996®=¹¯§­½§/¹ ¼`ðÍ/üvà Ípć0µ´e4:GÕ*ð­Ùîó,ÕÈ-¥%¥|€ 4×TtÐuuúü$5¥”…Û‡+ëJ\Þf§o´Ë[q¼æÁ¯ñ€ˆC +ðÓE€Ï'Ãl>Ž„hà,@Ñ[hZßBÁAñ¾ÿ¸Mrïë òeJ}­×xsi@ŒB¿`Ð_ ðö‡„³À£‚)×y`mq»GÜÚÚúz’Û½bøáÙòMà‚æ| Ët„Zû€®ˆ)Њ ùÙŽ›èuµNÒÁŽc°©pÊM”SWáo3„©°r#€«½å] a×5ÄéÊÍ¿+Wy{ê?q*>;^›Z9ëÚÕ —ºyÞƇŒ¬pºˆ‹€'óÑ‚ó\©h"Õ²¿k¶px”’¦ÑتTŒÛÛRà)ú§°oǤ°„p!ÈUK¹ÍQìÿ,…KŸ +endstream +endobj +1210 0 obj +<< /Filter /FlateDecode +/Subtype /Type1C +/Length 11578 >> stream -xœ•[Á®$· ¼ÏWÌq}ØqwK=’®‚9ÅöÞ ŸÚˆÀ{prÈï§EV±¨g @°ÀŽ(’bÔ¬Q‹z¿?·×þÜæ?|^_ß~ßž¿üûQ_çó?ýù‡éŸßÿåQα?ߥ=¿>Ê8½ùÛã‡GÙÎ读úsgÿÑ›ú÷Ñ¢¿”Ô_ û÷6Ôß#ì~ä°µí¹÷¶Þ÷(­0©™8Cc@¡1¤¡1¨ÔL¬ÒÔCš.†W¿íKÿôh» ϶ Cc©qÈ®qÈÔ8dh rhj C¦¦ €CŠßö¥ÿö8Ž3 [; S3!‡Æ CcCc©™¥©%494] ²(~Û—þéц ϶ Cc©qÈ®qÈÔ8dh rhj C¦¦ €CŠßö¥ÿö(Egí€LÍ„ƒ AA¦fB–¦–ÐäÐt0È øm_ú§GWúY[»Ò/4¹+ýBã»ÒOšZBã{J?*Ž€â·}é¿=jUúY; S3!‡Æ CcCc©™¥©%494] ²(~[¿oüãm1îf-Gê¯ûKëê?zþ£¦þRÙ´Mý{ߢ§þ#âîï·EØ}CؾÌÙ ˜Öï0­Ù’=`Z?aZ¿Ã´&aN0­Ÿ0­ÿˆ¸s --ÂÌý^[â´vu#õvË>Àê‚u£õ6áš¼®!`×BMj н ôl ´iÚÚ-û´i´iÚÚzJmšmšCzJMôQ=¸³­'×4xt­Ý²^ÓÄÓk<¾ÖŽçwJ|€MO°i!Ð3<¥&=R¶%ÝFÊ·±$ÜH7–”)çÆ’t#eÝXÒn¤¼Kâ eÞÈ©WNåžµ´k´·[öh×´k´· Ú$€v A»æ‚mR€]7%¢µ´k´·[öh×´k´· Ú$€v A»æ‚mR=¶ï×ïù…öíÕ¶=÷´Ïw[È÷ïåõ töö:î}zŸµ½¶­>çØl_cßÍŠ=÷nÌ>éMÙÇ ‘éMd÷õø5è‘ߤŸë7écý&![4JÄBobcë›´sý&÷ÛòM(ûØ!!2½Ùöñ›€5ùUör£“½¿g`°xé¸ü:&Ó}b®çˆúû1ö—¾ýj‡'_R.¼¯0’ûŠŒ°7ö( l{mâ`|‡º|ÇÁÝ'€Íì^Øs¢§gĈÖd$÷ £Ãsö¶¿ò!ä+áå[(‡O<÷sÄôà—–aÛ¶*Q°·9Œ-rP´÷û9ŒÛÇ™ ø™ãÃÞâžDÌÄç ëvvÖÿ8*ºxläñ`o8b7\Œµ²Ã$1LJ½Å <‰cWÛŸŸᑉC®‹^öölÆÆ7H×û‹æ[Ç``\Ž{‹xÕ2œ3=‹6Í¿Žç.ÕyòÀÞpŒ”<ΔÞß5ß:Àµì ßXSfÝ«žÂwjþu°xñÑñÁ~âÐv6hÔû«æ[GàPŽ{°Ë‚oÝ–*?Œáïmm‹Gû‰C;×àKÇ7Ò|´#­ÏP~ObI¼ë¦<ØÞ KÎcÄÄ’ï÷Â’sËÇ ‰%§<è>!úˆß KN,1±$ÎÎ9xЇ¸/,éáÃsB‹£†Ä’S tŸ}D‰ï…% ˶@^Ï|U§„sÝ·X³amLìmã„A,iýƆ°c`²$Ƈ½Å <™%¬gv~"ýKb\k#ì G&ˆ%}í‡ìãüš,‰ñaoqOfIž -´À‡³ô·XÒÇõ¶Ç£½=›qn –´þ¢ùÖÉ;YãÃÞâžÌ’H#°žeѦùWE€,‰ä½á)yÀzÖß5ߪ%ö†o¬)³¾ëŸÂwjþUË Kì'ˆ%­¿j¾Uí Kb|؃]|ëk½òÃÙÐýÑÞÅ’ö‡^üÅ’†o¤ùiFZŸ¡ü±$QÀu&’²e–´Ê…Xò8¶Ì’vd‡³bIɃð‘xf–D¼ðœX£X’'¯g‚LÄ!z‰[fIƒµbIɃð‘xf–D¼ð4,Ûy=µU5Éë2ÒÅÓ–XÒç0Nhƒ%½ß«M[°$DZ6Ƈ½Å <‰%‰ÏYÏí¬¢ÿ(ˆ],Žm‰%GÆKbí‡ì£d–äø°·¸'±dœª¶Àçµ0<2QÊ»XÖÛKú³ç®Á’Þ_4ß*ö%9>ì-nàI,É4rÖó,Ú4ÿ*B^,Hn‰%ÇHÉã¬çý]ó­2%X’ø`oøÆš2ëYé)|§æ_åÓ‹¥Ô-±¤áÐij°¤÷WÍ· -¬`IŽ{°Ë‚o=U~ÂßÛ>.Ú[bIáƒÓ`IÇ7Ò|´#­ÏP~ObIB“ëzO´ØëÂ’³XšX²Õ…%v~ÖH,9ÅàA÷‘8–ôxáÙñoÄ’¨[ rð ¢X–lØùrp݃ÝGâXXÒã…gÇ;|‚¼Ö¯|U§älèþªd“%1Q°oÜ)YÏú½À]Å’ÇÚöoî_.UõÌÎØþQƒ'K"ì÷€ÄÖóµ²*=YãþóÍ=á[«R-ð9⑉ÛdIGûÆ= N°žõÍ·î%1>ì;ßÜ3¾T€"ëYmšÝ{ K"y`߸$>°žõwÍ·nF%öoî ßZk:…ïÔüëÆYø`߸>²žõWÍ·ît%1>ì;ßܾµ¬¤üp6toû¸h×Ì’{@âÊÜ@©bIài}†òCxÄ’,âëL$–Ò3KÚý ±d¹—)±¤•Ìâb€XÒDò |B,K• ñ³âÞbIVýÏ™<ˆ!$.…%„Ï;?@&×™H„Oˆe)'!^xV¼Ã'ÈkýßVÕ$\˜éÁ’œ kc¢`p¤`=ï· *°û5ïÚôÄ’7ð$–$>g=·ó«>=X’ãZñ`pH|ÎzXû!û¸tñ’PO,éqObɨê·À‡KJ=XãzÛãÑþ৳ž÷Í·®4]¼ÞÔKzÜÀ“X’iä¬çY´iþuÕ -,ÉäýÁ= ñ9ëy×|ë2ÖÅ‹Y=±¤ãkʬµúSøNÍ¿.‰%‰ö÷€ÀÖóþªùÖ5²‹WÊzbI²Ë‚o-Ë+?Œ á¶Ê9ˆGûƒ{@âÊ¿A|#­ÃHë3”“Xr,ÕƒÇR½±+a‰%ûR½±+q­*±dKÕøH\ª7ˆžïðÖH,9–ê‰Áƒc©Þ €Ä¥zcÐâŠUbÉ–ª7ð‘¸To/<Þáäõþ”¯ê`õþº¯G–ì¹zãs7¬Ä’ÕÚÇ•>²äÈÕx2KŽ\½q;cáê Çõv®Þ8Ž¸L%–l¬ÞÄÂcí‘«77ðd–ä­¨øœ ‡ª7í\½ñg3îM‰%«7´/Zo\½ñ¸'³äÈÕÏ¢Mó¯ÛdÉž«7Žc¤äë5Voˆ¯k¼=rõÆñ5eÖ»N§ðšÝK%Kö\½1º %–l¬Þоj¼=rõ†ì²à[¯5)?œ ‡ª7í\½1ºø$–l¬ÞßHë0Òú å‡ðˆ%ë¹ToL$ÖºToìªX²–¥zcW¶âRªXÒDò |B¬KõñÂóÄ;¼5Ä’€L®3‘<ˆ!$.Õ„Ï‚ “ëL$Â'ĺTo/+>O|¾ñÙðÙ¿ùéË_¥¯÷\ñûgê|~ùùñé]¿ùòÏÇç³ÞáL.äー·U>ǹ۔ëv>?¥Dñ ÷«ã4«[};Z‡»l7©øÏ_ßýa}ùÌøý€¼_Ç2㣿lñ}Îù§¿í -óá!Zäÿ/L)ÇÇ8ú:ß=þ êë¼® +xœzwxTÕÚ/CØ…½’I™Ùf³÷F&X*ˆˆ€ô -dÒë¤L’I&½Ìd&½·I2“BHB „Б*Š"¢¢Ç‚¢~õ¨krV<÷® úï»Ï½ß÷™Ì“é{­w½ëWÞwI&M™qxâð«Ã˜t¶t‰t·t¿4Iš*Í‘vJû¤¤Ÿ9Nv”9.s\åxÄÑß1Â1ɱƱÉñ¼ãÇGŽß:N38-rZéôšÓ:§ÍN¾NÉNeN§>§!§»N÷œ8}éôÓÿržê,u~ÆYtžã¼Ðyµó^gogµs–ss›s¯ó€óMçÏsþ§ í¹¼ä²Þ個K˜‹Ê%Î%É%եĥÅeÈå¬Ë—.w\î¹|íò™Df/s–Í’-‘mùËÔ²Y¦¬Tf–õÉÎÊ®ÊnÊÞ—}"ûRöDö£ìWÙ?åùT¹TÎÉÈWÈ7Ê÷È˽åAòpy´<^ž"7È«ä-ò>ù¨ü–üùòoä?Ê“³–fØéìv1»†ÝÄîc°¾lÍjØ46‡5°El9[Ï6³Ýìö2ûûýšý‘ý……5c"{'·>’wKNYŸE«¬ŸR}Ј C7«#Âiš×¹­ •"̦ ¤ßÑb3|E&!Ò/M2Ð0‰ê©,…+ΡéÁ=Æ? µs€õ6¦Têh8Ž<¢©³¹p*NRÁÁêÔpîX’霿A»£©þŒb8•A…Ô’÷G£]5#W„­Ô@µ¹àV1 Æ6ZX¯Ô*è|@DÑÖ&<4¤?­|!%ùHútô²P» +bË›•ÅæÆ BucÉÎ×*+`±ú°ha49 «ÈŒV¤êÒÓUÂ&´=ÜA¨Ïåå•(ª+Š-ùB0£ühª)·(·(=_?´ æ´Gg¦%¸‡U!Ñ\zFI©!ÏhÈ …†ÂE[Œ)P¥<Úr¹³­¼±Ahh2õu= ¬ÏN«=UVÖžGîn»<Mvç”gÄ(´ZeèëBr@F¬6 u »>á3ãD™¢¦¬°'_0#m4Õ›cÐ×o1ä3ò36¡µÓ¢o|KÄdW—+jËŠ[ ð§TÑTsvAVË8œ™f&¡3¼ñ3ºA4‘ð%ëœêî’’–Âé~ ²pN,•”••­å²Ò…±<$¦ †{yËŽ[ú=~ò¨B~aQž=N'D W-dcyQQ)WX¢Ë)SÚFRÛ¸Ç7®ýžr`Þ)qS[„¥SÑÑjéiiNkÔå Õ^4€Ö0ÉÌB3Ðì'ÏÁiÐõ»_àLøìÂ_+BÙ+õûÑJô¢Ú}Ïnõ98®¯½.‚±]c+Y©"ßÉ®ÉW¨µ!QÞ²C;=LÊ-Ôu…Ó“›r**Õ%ý‚Å@XЗ*ªS×o +‚ÛÐçÓжPkKÓÊu÷hx°…‚¾è6}ÈñmÖØ¢‚êü"¡¬¨¦ÐÂ}Óí=k[’_Hœ•”¹VOƒZ"?ÍXù:’-ÝÁ^ñNñ¥9ÊMñÖa¯×w¶œU +‘ÝɉïÒá(¯l.*)©áJÊs3Åijݙƒœÿ÷Ï¡Ë}Ïû[OˆhÞûĪ¾XËÅõS=ïœ>ïRè ¬ 7m¥Á0ßÖu2ìx (5.âÁ¾¤7x`fƒ +´Õ= +«ÚM f”¤|ÒŸÌ Ï4:øøG%ã–îÿÎøåÄÑšêŒÔ"±0=/ÏGqÈPÛÃj6÷^ß|f š1ïYôáÿíÐÿœ  Å›;¯2{ÇñȃsÑsÐÿ8ÉÜsK„2Êø~yÅûx×^®¬ºU*XPˆŠz?Ó·A®Pègë:¨HSmÒÞ3âx8¥ß­ÑnÈ u%\ÊFaé š˜@è´ez:œ„ë<¢yœ¢2Ñ,¢™´|×\gê‘v|þ4•UFe|¶ðÆK8ãà"FQº“5­Ú„üÕT›¾&NçO£áèo¢" šà èc§¡HÊ ‰ÐÓjèx]wMCÛŸßjÕWÇéið +ÓK?ãÒúåkÇÍù?”m¶ÆYg±ç‘+%kÛÌÈz×ó²Ëך\Wô¥hdïù3²E! ˆgà]`U²Æ²¢.¢î3Caƒâ¸º1"2.6L›W'”(‹ƒ ÃiÐØh®hâºj#÷‰(›Ò+µšà\:¦P`yAj¹îm5SÐ1gÔ£ºÔAbü2ymd-£CЩ€7Sºµ©i+0~ƒXE¬6=P'dëµúd=~a Ó_Žs"DcêÓ‹Ö¯ÐÞhªC_oPÒãÅø’ q!z|É +|ŸÈÀÏaû#ÚB”&3ÓMj¤¤†C¦2JÜíõ͆EÓ¾ƒÂ­oÌu׋§›P¬º‚j7«U‰ñšq«á\"©-§¬TQ[[ajMè‚šÉm¸22 h±æ€2Ô—KSÃS<éSm©,ª®n¥«5Hôb@Rž vöÁ“=HÀ¹ðu¸ÔVÀ‹¬ÞlÊ«æ¾8_fÏ·µ_¸©¸|aw»`ò *Þ¡OÕ&r4·:Q·¦ ‹ø5üÔ²„·š§Luø«'š³RkÄ–ø]Šyþǧjò Aº‘ÀöŒà¨cŠ=÷ƒ  \ýÅèö ¼o×ð8¿räl3Õ|âDKK»(ÝÈxk™ ýƒcÈãÙµ9…¹tAn~V¶"--!5U@r$'¬ëÑ®hꄾ:Áà7±¾šøЉ•0SG‹sŠôÃ4$©&ówHAÔ©ŠR2)ÉYz!jÍTjv~EºˆÜ`Ãßm®»Q‚ÿ<Àî†ÏÚÙõÕ +SyE½PjB1j²#£8mIàTÔ=-ü Â?)9!™ËÌ.,‹)Ca^A>¦³Æð UÀ±“ÁÃÃ=7Íä­Äi +‹» xŸÃk\_¥OÌ +O‹äßÞu²í/ì1ðIµ`<¦²O`ÎO(‡'[[Ož ÇïÖߨ­6ôÑ°€ú›ÛÅWwyDìöÀ÷y]ÖtJ~€Ëa|Ó®ÊÞ%a(| +ÐC"tFI"º¢"od×'ŽÒãi”Wdì>ê¬Ù&SEq෺„÷ª7—+^P/ ñ<‚ŽÄlå<µ•§E@é®V×u2¹WjêÏézº«®'Gu5ñº=ôx#Š°6ú1¤t//5I¬³ ”=ê–àÃ)Ãk»Ôb|{fGÎæ‘YŸ$ ‡öÐÝ!ž¦ýrXù<šfü”><ÓþÍM•ÁÕ,dòk{Ïr­uI¡%bA|~”á D×^ãÕ¸€îÌ¡#m¡§ ó EB¯Uù¼á.œ—”îJµmˆÀÈÉY8>gØÁB«‹¦.›‡¸M槼ŀ®ó1§¹ó—›ºÅî~ÓÛwð™eÿHA¯ÄáHŒ,Ë"óƒ¶+Ðê„}Ž% ÿ +·Õ\Á¹ºÛZ:¤€_§RhåV"Ž*;^WXÂÕk#DE6$§nãÔ0‡·%á ¸Ào`îóÀzµ+€(cà‹ŸÝ€S¡üåwÑ«±9y¹‡E¿)ÆšÒ¼rîÑо¹‹}ÜÖû¥Tõ‹`´¼©Ôl¢eÖ‹ià”âbÈÙ=íB“·géznzšIÙ¯O†.Zâí¶A©­ê­mSêI™õog®\~ôÈÊœ´p&/è‰VÀÈSY¼q±ª!‚€N|K±|Ú²G᧊RjRŠLqBXsFAx>™®ÕÆ+‚{ãÞèÉa Ýá/îÕ¤—Vä +„rêxtc2Ful¿ÿµ«Ã]˜$ÃBƒý[Ã{ñy +GŠd€o ÓÛÞÞÓzÂ_Ag!%6ÁbêzöñÄ.ázØΓë87ÿ¤QVÚ >dÆœL. ¯6öÁs]ë›úÁÕzƒì‡D ™¾€Ï1š„25§V©Ëµmñ"œµ„°~þ6HãSüž »{GHôáx:%<8+‚Û²½k4\ ?ŸüÞO +è ~nè¸Ó\“¡ÍÑeåf +Y©ºŒL…¦4©"G^î~ŠàU^Úi“#UuH€ø%<W'1¶Y†4US–œª8]½ŽZuFùsK}~y».*ní8ýr´&7=\ÈÑfè29mVQ…˜ˆq®…´dæØÁ>ØÇ¢DÃRß1¦hÇ/K`v`Α¥}’_ óÏ`A€ß²QŠ¦Žmb½}<;‚;;ƒ:½Ei¿’!` ©ÛKQÆ}I‰ k˜ØmvÔ%zW +å{Xƒ‡!*XžÇ^1ÖÆŽ€É?1àÌØÔLÀÞ&ù8+°ˆÀÎ@Ù#(Ûx¨tý·ð6…U'”M(¬–Vï­â;(„Fæ¼®ú/4Ùi)Z9#€®”¾³¢¾¹6ë2 s¶ûäð°²ÃÌ붸´¦¢Rh45U4r£æ]è08ÝÊá¡žž! ¸pê€Gx¸'½Èr—;±—‚ÕP…ð?¼æŽ/ Q‡éèl5 0‘Q…)&CG³“ÛjÁ{ß›4(Žnñûùz€MQ¨)‡ +Ó4vE`éKå.ö™ú,bms±¹p„–FjMF¼æU]o[óÚ#hÖ—dF)ÐEÊ Ô&Ú€:x(•ž‡OúŸÆãVöàùœo9Û*ÔŸ(鹪îÑ^‘b\`Ʊe +€Ò|—òp ¼?2‰À5,æ)¾´šÍ­Oñ…Œ‰‰ŠhŠiiijji‰iŠAÑBºz ëéïïåqÒètw÷i`â¥?3¥%˜õ ê뛹J@þˆù'ඊ + iŽ:ÑÞÜÜ~BÕ,‚ŒÍè©)8ùÚà'@y‘ïí>ÑÞÓÚî'¶ÁÂ"›*p1Q®“V±ç‰ä¯ãkÙS-µB¤Ò–Ôè+4 °ÕS¹"H0“½ ÕÜ© (/-S3NÀiâáéúDò€ÚtQ]4œI4‹2&Ç®¾Vƒýƒ*/ÛöϱI@¬èúEé÷pë)8딜汣à Êa@ Ä6-ãEl½“%;º€!ARyyZ —_dÌ/‰ +Ç݈‰}˜Ð:±ÖkÀx ÌäÝ¢–γ\_S¨hîǃìŸ$èRÜ>uøp°Ïö¨BÛ|ñŒµÙ +(i|½Õ§zU“ ÀˆìŸIò1’m+(,,,((Î/.üÚÞ~ ®ØRb©(+-(¬°wxÚÙ7É<é;Él‰I2,¹+“gOž79rÅäÎÉßÚM±[n·Ù.ÒNm÷Ñ”W¦lšR5¥nÊ}b1L\ ®ïŸ?“!äWÔkTUHÕQŸÐ›èP:—®¢ÿ˜:yê SÓ§~Â,f¶01Œ†IgŒÌ s H€ LžÀ:À5pÓ^jÏÚO·çíØ/³ßn¿ßþ°½—}®}½}“ýÇö_8Lr f9¸9¨RÚ>vøÌá±Ãw¿;ŒK'IIéé*éZé^©Fš*Í•öJ‡¥W¥w¥Hÿp´wtr|ÅñUÇ×}3›O;žs¼êxÇñsÇ_œœ^rÚáäéádp:îÔã4êtÓé§Oþæô›Ó¿œ§9Ïs^îü†ófg/ç`çXçTçRç&çÎ=ÎÎÃÎç?tþÑ…p™á2Óe¹Ëz—Ý.‡]¼]]’]Š]Z]κÜuùÂåw-“ËfÈž“=/[#Û-ó”EÉ2dY™¬ZÖ ë•–Ý½#»'ûJö›œ”?#Vþ¼ü%ù+òuò=òCò ¹Zž&Ï’åeòZy£¼MÞ%‘ß’$$ÿ^>ÆNb¥ì3ìLv»}™]ƾÉîb²Al›Áæ²¥l-{œígÏ°çÙ«ìmö=öûû»ëdW©«Âu®ë‹®Ë]_wÝàºÕu·«›ëWo×`×XWk¶k‘k•«Åõ¤ë°ëˆëE×kc{þ,I?Ènˆ{s¢j9ß[<çuÎà”ñAUå'FŒ¼UÔݬr­ñM}A-h8ü¶—xæfÂûÜï6vˆ§{š?üVq“Ò\èÌ>–àÍù…×uʼn '2:rîÒ°Ìú,i8¤‡î 9jÚÇ!§óÑ\4÷Ó…Ð铳íOn‰˜ÜײÐ>¿®ï,7\„ìŒb¬ÈkêyH‰uí<4úâÛ<|óƒÞh>Þ€ž¢>˜…“o"䇎íÄ +œFÔ,¨¼`è Hé"°†ÝdÓÒˆÜÜ\}6—œYR+Â*êóµ£HŠˆµßð1G÷÷µš;«²+µ5BzYnQ‘¢¡¥æ¤þd‹ÐVy!·:-T¡ÍMÊIÐô=š¿"R;s+ÊæêÒÁ|Áh«vˆtKEõëLéåÑ] §!½ì­“ˆìZ]q©¢­¢t´@° au*«,½ö0 ÿqZ+ wZ£àÚñ(¢…„G­?Vö56tæOI¼‹c¹[Bò²»³Ù·óÙOË0Á]&‘#Ü@¼Dâl .‘pÊR+iaר«ôçik°Æ²rCWRœ›] –¦åé ÏÓÈ +Ë.ŠöUŸ ºÍAúÁïpÙ½äwbÛDSR|Y4çZÓ‘"¶¥çëJ2èÊäâ(¥bÏ[»½:ð u:¢783G¯ÏÁõÀ*{BF®àÁ#^_ÿ§ÈOnKx*òÇ\ š 'ƒ×¨CChÿcûÖp;m:kèDš~n›êÏ*êvn½ÆÊèÝ“S7dÐ*ë} +lÌ3Y]\>âe­'ÍÛyÙéÅŒìÁ«<ø¬ÂM8ÚŸJPbNÿÏ> Ñ”ùhÊÄ>Úbÿ )½öESƒ™%éï4Æ;#Ý+kÅ,3€­{·š¨üâò²2dðpÖ—è±³f©ÙÙKÞx]\¿Ñwá<¢{^y´VØpÿ«ÀŸ¸Ÿ¿ê~ÿ}ñþýžo~UüêÿxÝû‡o,î~–Cß»°p?\„oûá>¸-BûÑ^ôzíZ°æÄíMÂæ;¾Vxm!šÕ‡MbilA‚J‘Ñ?Œ¡Ò{ìÒÑ‘Ð IòëÜуe/ÐpëxºŽ¼ «NèáäÒ jk+yz*2Ùm؇¦h%附IWÈý2©N‰æÂâZú®œ:õq~qk"ŸaryEÙËðŒ™Ý™ŸZ©¿AÃ=Ôhë@GIi¦¦\ˆ¬¯No溛[{†‚:ŽRFm:*Êî~ŠöDS§²ËS&:6i©Þ™8põ 0`L +³Ø(Ò­Úô:Òê8F5ã T:F´’g xºÎÓU: ݆q—?ˆië +H¬/Á ö,"‰’¸‚”tETBª· R˦t2Ú˜Y¬éBeÖŸ¦EÈgütÜÖ°`?Ýt5Tšb©ÀÈzsi~eI£ØóñLg?CžZL‚»le<”˜p±Þ7©ÈCMa„.« Þ¾ZÑ0(~Ú{ññ +Hnú~f§Z–h\_˜`˜VNéÏÖÔàÌ4¡ûj39¢«MЦS)ŸÜÍ9‘™¾ñÓWø¸-™¯˜ñåOý„ØÓWR¯sðE«†ý9ëâkh¦‰û_›“% Ù®sŠö?„¢μôð§"Aú +?ÑæXË'¦Çƒe¼©ë/ð&/ËÜÀÈ6üUÐÑøÚ“-ÙÜÇ1¼6NglUh88 ÿ]ˆ.‚ÙÇ(…œ(6«à]ê*J£€—)«+"¡Š¬5” +å%õE­Ü{ç‚ßê[ܪÖ/W,R/ûïµi˜Œ´t¬Ìª ©…ÚjtÅ*wC·“–Jð–=¥¢fåF+4Ù¡¡ +Cá ¦ŒïWWß+xÊ#­Ó,ÊJ; t¹‰5^E¾+¶, +¬Á®¶QU¯Ž§_‹ôõ;¨8V—p3F,ú^E~–SfÜGÏ¢†ÇnÞîS?,x]Šç†Û†,BlU¶N¯ÏÈ™žÆ\ØÛ9uÉFwz<œÒ¹'§àU¶¾KõBo"’ Ý¢ŽŒ <Ý4opÛ*°CH£~ïS"²\l†ŸG‘ÉhŠ_À, ã©îŠÒ _žO‰hÚ#«Â*7ÓfxhÛ^ÐCÐÀÿÕçm +êZ;ÌüUÅ‘µ5{ç`A½Óí~Â.ö‹ÐL¤6ê ‹55¥-B RW9qm;áËèâ4ôŠ­ ®†_›Â¶ðù—h¸™‚ +ØÒs¿¼|¨hº íS›¨ •&+QƒÍº+üÂB®)Í(Õ}@Ãä ƒµô'íƒ×>R@zÑm´z¢]ÿNvU’q½­]¯ß‘ë™Cç¦ét©"Ô[?b›j+:ux¡IÛS”Q1‚::8sÆ–²K¶Dïß*®Ûî¿MQ`ƒ¤@3 <ˆüþpÇMáÖ¶5í³¹‚@ö÷kh&“ƒÛÐÔ™G=[‡"ÅÐ Éïþª€N¦†/ -µ}œJ©‹U'ëÊ3S²s³²Ò„ô¤œ´TÌ7kTäÎe¾ž[÷Ó‘£èµuÀ÷î¾ãŸö ªrB©Ö$Çq©µ}"¼`ë_)d\xûöAe¸VUs£{ÍÖ®š†Âbºç|us­¢8§ ###G›$èõ:]®y¡•Ór(ŒJ«°»§ïŒÜþ›âî±á]‡‚CÀÓ½­«VÛööÈðêpÝ–@>þjëYÄh²ótQ"$ +Ê Å±»ò + Œ­šãqä¤ÿ𙞓ÃglÕÀþú¦­¦{SëKÈÂ$»S­'ÄNúÀ#h!| ݧÀ #âÐkh-V`xÝÑóXÍÀNr t„ÄEéƶîÐQî››¿`©ê|ø›ÍÑ1!Áõq]Yb_¦A_©¥«‹#<s=·­÷¬í‰Z®V (ÎÄ´(£CyVh:bÛ7ÖÃG¤tÜàI?\cÿ¬¨š¨¨¹åÒ@§@ç`¤ƒið{ÛÒÐjæÌeqØBæàRï=¿ãH@øÆáG +mÙ_¨&òK + ùœyÂn߇ÎÔÄ’1àò"@ýÕ[Á€§E’bKÑ9Zúú¸{¡Yä±?jþ¦Á†âòÖ&Ü:h²¾ZÀ£¿f·%ñà SÀ5Áøê§Ý¡Ò‰îPéŸÝ¡¬¤t]&•cë}eMg‡ë•/¾˜päHBד'uÝgDàþ˜ÖçØ>&F¨çW0î¿´òQ2õÊzâõÕ=©ÿKWßL=íûK­snß¾mج´Ä­£ŽKåÜTW¡²-W¯t´G+«D`s21;ù¿Úä{¡œx@¡^(‹qƒþ«ˆ?ìHðC_j;‘“’¥Ïà|BºßOÑä:6# r{B˜›’Èy©GqèÅ.ö6û ºC”Æk‹Ë +ó‹‹Ê„²êlŽG™ƒýUª€ÝWŽ¶ZmL¤:`"Ò2 ?¯žì…5½.ð,ô_Ä2®’ý:dïzj²Ì¸<Þ,†‰V²›¿z»;mÇ\†Ò‹² Þôÿ›à+5@;L p6È3IÀ+L»©ÎâãáK| ÐùÃçy`3XôæC[—*Þê?zm¤ãĹ¡°ÞÙYyú,AŸ«ËÓq©¥}ý÷GEðSl(ãþž°ÛÃc¼x[3a_b)ÄÉq“ô!vSÆS’ÞPœP©?GÃD˜…)ÝÁDíÛÙ¥o)pÞØÈC¹Jô­#€•€ Ùõ¥¯ç8x³!¿¦¤AŒ?ÞœÞÊõ¶4o©ŠˆÎJÂÛs[BxLt]U Íùp6¯«|ëɧmyœ&`aÿ”6 t®¡ö¶­pø­Šz'פÁ„‚|Qô¥ €1oÚâ›Ybºž´ ZWD¶jcµŒ¿QÆe©aœ)“ü³r|š?n MÀ”±Ä†žh9Z†Qâ \ŽVÀCø¶®À{?[…ˆàd yµ[µ­K0y²¦­EGV+ß„CÝî×|3Hð4ÚÎî2jêuØ#?K=cÑžæ ñðp>œùÆdb  õHœº½nM«l%:Œ¡H°€Qûz¬æ!F\„D©Bþ,ŸhjÅ”5)Ï £h‡³Ë PvÜ¥>' [ +åìe@<˜åщP.‡î8”+ð͇r9|Lœh02à+Æêcb=È]s‰:€Ö·‘…ßœùãû”ƒ=¢þ{¢\ä{ÀÓÎx}sV='›Ñ„¤€n¶Îa;˜/?¯½Ždñ9q…Œøt]—QfÑ‹ C¨ +Š,x‹C;à N 2¾‡ák¸¾Æçܶj·PÒ£¼ídÖ±Cõ¡~Š M\THrÓÈ`AM}« e­s¶ŒXnS?¼=Ž¿t›G[G¼>¼wîÜ=0aKá6“änogm7³ÐÚ£¸x¤oë[îž»|ð°Þ=ŸÞþÁ㋆:îw ðþý€ûî≯¯Š²ŽñgCXUtrf4§Œ7ÛjèÚH2 )=-ŽKO.(‹Í{Ž”ÛúÂ(€B¯A"¾)³²Jaª©hÀŸýÀæþø ÜÅþ¿èy°†æõ4€/ÃÅp6¾¿Œ×îþë@S½ °;`õ¨«ØÒ#ÞÑ‘jn‹÷Íäˆ:0ª={ºaÓ™x“ P·]ú†¥Q ‡9­:Ó7gwÚü:@î‰×I„Áÿ<ˆ/›(ƒ‰Ë©-J»i€Vgó¶îkn5†'yCô9)"¸*×àû×ìÆüŽ¹â£‰ÖPœó;¾yë‘ð@ni—áºnøj¯D«Ô*›š-øäZ×pKBJ• Á¤ãÖD*Р 1¿Â¨¨b÷)ÓÛï`±¿fÁåX[!þnÿ3 ïwre`¦ +ØÎ}àÜ%àr€u=˜8«’€qtK~‡Î6‰jÆ[È…8Cžu;2vä#$ Ñ³”º ©4gÞ3Œí0#@¿ìÌÊ +ÒOWk'T²_Ž–Pài³ì¤®¦$1R¸(Ïlç?Àÿñå¼£ endstream endobj -1208 0 obj +1216 0 obj << /Length 9388 >> @@ -12647,7 +12897,7 @@ ET endstream endobj -1216 0 obj +1224 0 obj << /Length 1459 >> @@ -12677,7 +12927,7 @@ ET endstream endobj -1222 0 obj +1230 0 obj << /Length 7828 >> @@ -12895,20 +13145,20 @@ endobj << /Type /ObjStm /N 100 -/First 983 -/Length 11047 +/First 998 +/Length 12490 >> stream 1114 0 260 59 1115 117 1111 176 1124 347 1110 540 1117 688 1118 832 1119 979 1120 1126 1121 1270 1122 1417 1126 1563 1123 1621 1130 1753 1127 1901 1128 2048 1132 2195 1129 2254 1135 2360 1133 2499 1137 2646 264 2704 1134 2761 1144 2841 1139 2998 1140 3142 1141 3289 1146 3435 268 3494 -1147 3552 1148 3611 1149 3670 1150 3729 1143 3788 1154 3920 1158 4068 1159 4183 1160 4226 1161 4296 -1142 4365 1152 4512 1156 4659 1157 4717 1153 4776 1163 4924 1165 5042 1162 5101 1171 5182 1167 5339 -1168 5483 1169 5630 1173 5777 272 5835 1174 5892 1175 5951 1176 6009 1177 6067 1170 6125 1183 6270 -1178 6427 1180 6574 1181 6719 1185 6866 1186 6925 1187 6984 1188 7043 1182 7101 1191 7233 1193 7351 -1190 7409 1196 7489 1199 7607 1200 7722 1201 7765 1202 7835 1198 7904 1189 7963 1195 8022 1207 8118 -1203 8275 1204 8419 1205 8566 1209 8713 276 8771 1210 8828 1211 8887 1212 8945 1213 9003 1206 9061 -1215 9218 1217 9336 1214 9395 1221 9488 1218 9627 1223 9774 280 9832 1224 9889 1225 9948 1226 10006 +1147 3552 1148 3611 1149 3670 1150 3729 1143 3788 1154 3920 1158 4068 1159 4195 1160 4238 1161 4445 +1162 4683 1163 4959 1142 5195 1152 5342 1156 5489 1157 5547 1153 5606 1167 5754 1169 5872 1166 5931 +1175 6012 1171 6169 1172 6313 1173 6460 1177 6607 272 6665 1178 6722 1179 6781 1180 6839 1181 6897 +1174 6955 1187 7100 1182 7257 1184 7404 1185 7549 1189 7696 1190 7755 1191 7814 1192 7873 1186 7931 +1195 8063 1197 8181 1194 8239 1200 8319 1203 8437 1204 8564 1205 8607 1206 8814 1207 9052 1208 9328 +1202 9564 1193 9623 1199 9682 1215 9778 1211 9935 1212 10079 1213 10226 1217 10373 276 10431 1218 10488 +1219 10547 1220 10605 1221 10663 1214 10721 1223 10878 1225 10996 1222 11055 1229 11148 1226 11287 1231 11434 % 1114 0 obj << /D [1112 0 R /XYZ 149.705 753.953 null] @@ -13137,9 +13387,9 @@ stream >> % 1158 0 obj << -/Producer (ESP Ghostscript 815.03) -/CreationDate (D:20070118112257) -/ModDate (D:20070118112257) +/Producer (GPL Ghostscript 9.22) +/CreationDate (D:20180323100645Z00'00') +/ModDate (D:20180323100645Z00'00') >> % 1159 0 obj << @@ -13148,16 +13398,56 @@ stream >> % 1160 0 obj << -/BaseFont /Times-Roman +/BaseFont /XYUGDR+Times-Roman +/FontDescriptor 1162 0 R /Type /Font +/FirstChar 48 +/LastChar 57 +/Widths [ 500 500 500 500 500 500 500 500 500 500] +/Encoding /WinAnsiEncoding /Subtype /Type1 >> % 1161 0 obj << -/BaseFont /Times-Bold +/BaseFont /XISTAL+Times-Bold +/FontDescriptor 1163 0 R /Type /Font +/FirstChar 48 +/LastChar 80 +/Widths [ 500 500 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 611] +/Encoding /WinAnsiEncoding /Subtype /Type1 >> +% 1162 0 obj +<< +/Type /FontDescriptor +/FontName /XYUGDR+Times-Roman +/FontBBox [ 0 -14 476 688] +/Flags 65568 +/Ascent 688 +/CapHeight 688 +/Descent -14 +/ItalicAngle 0 +/StemV 71 +/MissingWidth 250 +/CharSet (/eight/five/four/nine/one/seven/six/three/two/zero) +/FontFile3 1164 0 R +>> +% 1163 0 obj +<< +/Type /FontDescriptor +/FontName /XISTAL+Times-Bold +/FontBBox [ 0 -13 600 688] +/Flags 65568 +/Ascent 688 +/CapHeight 676 +/Descent -13 +/ItalicAngle 0 +/StemV 90 +/MissingWidth 250 +/CharSet (/P/one/zero) +/FontFile3 1165 0 R +>> % 1142 0 obj << /Type /Annot @@ -13171,7 +13461,7 @@ stream /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [407.097 283.557 414.071 296.177] +/Rect [407.097 278.167 414.071 290.786] /A << /S /GoTo /D (figure.7) >> >> % 1156 0 obj @@ -13180,7 +13470,7 @@ stream >> % 1157 0 obj << -/D [1154 0 R /XYZ 232.883 322.744 null] +/D [1154 0 R /XYZ 232.883 317.353 null] >> % 1153 0 obj << @@ -13188,33 +13478,33 @@ stream /XObject << /Im3 1151 0 R >> /ProcSet [ /PDF /Text ] >> -% 1163 0 obj +% 1167 0 obj << /Type /Page -/Contents 1164 0 R -/Resources 1162 0 R +/Contents 1168 0 R +/Resources 1166 0 R /MediaBox [0 0 595.276 841.89] /Parent 1138 0 R >> -% 1165 0 obj +% 1169 0 obj << -/D [1163 0 R /XYZ 149.705 753.953 null] +/D [1167 0 R /XYZ 149.705 753.953 null] >> -% 1162 0 obj +% 1166 0 obj << -/Font << /F46 1166 0 R /F8 557 0 R >> +/Font << /F46 1170 0 R /F8 557 0 R >> /ProcSet [ /PDF /Text ] >> -% 1171 0 obj +% 1175 0 obj << /Type /Page -/Contents 1172 0 R -/Resources 1170 0 R +/Contents 1176 0 R +/Resources 1174 0 R /MediaBox [0 0 595.276 841.89] /Parent 1138 0 R -/Annots [ 1167 0 R 1168 0 R 1169 0 R ] +/Annots [ 1171 0 R 1172 0 R 1173 0 R ] >> -% 1167 0 obj +% 1171 0 obj << /Type /Annot /Subtype /Link @@ -13222,7 +13512,7 @@ stream /Rect [368.549 343.981 444.603 355.106] /A << /S /GoTo /D (vdata) >> >> -% 1168 0 obj +% 1172 0 obj << /Type /Annot /Subtype /Link @@ -13230,7 +13520,7 @@ stream /Rect [325.411 332.303 337.366 343.151] /A << /S /GoTo /D (table.15) >> >> -% 1169 0 obj +% 1173 0 obj << /Type /Annot /Subtype /Link @@ -13238,45 +13528,45 @@ stream /Rect [294.721 264.991 361.779 276.116] /A << /S /GoTo /D (descdata) >> >> -% 1173 0 obj +% 1177 0 obj << -/D [1171 0 R /XYZ 98.895 753.953 null] +/D [1175 0 R /XYZ 98.895 753.953 null] >> % 272 0 obj << -/D [1171 0 R /XYZ 99.895 720.077 null] +/D [1175 0 R /XYZ 99.895 720.077 null] >> -% 1174 0 obj +% 1178 0 obj << -/D [1171 0 R /XYZ 270.132 511.222 null] +/D [1175 0 R /XYZ 270.132 511.222 null] >> -% 1175 0 obj +% 1179 0 obj << -/D [1171 0 R /XYZ 99.895 480.819 null] +/D [1175 0 R /XYZ 99.895 480.819 null] >> -% 1176 0 obj +% 1180 0 obj << -/D [1171 0 R /XYZ 99.895 482.756 null] +/D [1175 0 R /XYZ 99.895 482.756 null] >> -% 1177 0 obj +% 1181 0 obj << -/D [1171 0 R /XYZ 99.895 470.801 null] +/D [1175 0 R /XYZ 99.895 470.801 null] >> -% 1170 0 obj +% 1174 0 obj << /Font << /F16 554 0 R /F8 557 0 R /F11 750 0 R /F14 767 0 R /F10 766 0 R /F27 556 0 R /F30 764 0 R >> /ProcSet [ /PDF /Text ] >> -% 1183 0 obj +% 1187 0 obj << /Type /Page -/Contents 1184 0 R -/Resources 1182 0 R +/Contents 1188 0 R +/Resources 1186 0 R /MediaBox [0 0 595.276 841.89] /Parent 1138 0 R -/Annots [ 1178 0 R 1180 0 R 1181 0 R ] +/Annots [ 1182 0 R 1184 0 R 1185 0 R ] >> -% 1178 0 obj +% 1182 0 obj << /Type /Annot /Subtype /Link @@ -13284,7 +13574,7 @@ stream /Rect [253.818 555.748 265.774 566.597] /A << /S /GoTo /D (table.15) >> >> -% 1180 0 obj +% 1184 0 obj << /Type /Annot /Subtype /Link @@ -13292,7 +13582,7 @@ stream /Rect [457.829 326.22 464.803 338.84] /A << /S /GoTo /D (figure.8) >> >> -% 1181 0 obj +% 1185 0 obj << /Type /Annot /Subtype /Link @@ -13300,99 +13590,139 @@ stream /Rect [357.569 302.697 364.543 313.546] /A << /S /GoTo /D (figure.7) >> >> -% 1185 0 obj +% 1189 0 obj << -/D [1183 0 R /XYZ 149.705 753.953 null] +/D [1187 0 R /XYZ 149.705 753.953 null] >> -% 1186 0 obj +% 1190 0 obj << -/D [1183 0 R /XYZ 150.705 465.033 null] +/D [1187 0 R /XYZ 150.705 465.033 null] >> -% 1187 0 obj +% 1191 0 obj << -/D [1183 0 R /XYZ 150.705 431.215 null] +/D [1187 0 R /XYZ 150.705 431.215 null] >> -% 1188 0 obj +% 1192 0 obj << -/D [1183 0 R /XYZ 150.705 387.38 null] +/D [1187 0 R /XYZ 150.705 387.38 null] >> -% 1182 0 obj +% 1186 0 obj << /Font << /F27 556 0 R /F8 557 0 R /F11 750 0 R /F16 554 0 R /F10 766 0 R /F30 764 0 R >> /ProcSet [ /PDF /Text ] >> -% 1191 0 obj +% 1195 0 obj << /Type /Page -/Contents 1192 0 R -/Resources 1190 0 R +/Contents 1196 0 R +/Resources 1194 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1194 0 R +/Parent 1198 0 R >> -% 1193 0 obj +% 1197 0 obj << -/D [1191 0 R /XYZ 98.895 753.953 null] +/D [1195 0 R /XYZ 98.895 753.953 null] >> -% 1190 0 obj +% 1194 0 obj << /Font << /F31 770 0 R /F8 557 0 R >> /ProcSet [ /PDF /Text ] >> -% 1196 0 obj +% 1200 0 obj << /Type /Page -/Contents 1197 0 R -/Resources 1195 0 R +/Contents 1201 0 R +/Resources 1199 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1194 0 R +/Parent 1198 0 R >> -% 1199 0 obj +% 1203 0 obj << -/Producer (ESP Ghostscript 815.03) -/CreationDate (D:20070118114343) -/ModDate (D:20070118114343) +/Producer (GPL Ghostscript 9.22) +/CreationDate (D:20180323100658Z00'00') +/ModDate (D:20180323100658Z00'00') >> -% 1200 0 obj +% 1204 0 obj << /Type /ExtGState /OPM 1 >> -% 1201 0 obj +% 1205 0 obj << -/BaseFont /Times-Roman +/BaseFont /XYUGDR+Times-Roman +/FontDescriptor 1207 0 R /Type /Font +/FirstChar 48 +/LastChar 57 +/Widths [ 500 500 500 500 500 500 500 500 500 500] +/Encoding /WinAnsiEncoding /Subtype /Type1 >> -% 1202 0 obj +% 1206 0 obj << -/BaseFont /Times-Bold +/BaseFont /XISTAL+Times-Bold +/FontDescriptor 1208 0 R /Type /Font +/FirstChar 48 +/LastChar 80 +/Widths [ 500 500 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 611] +/Encoding /WinAnsiEncoding /Subtype /Type1 >> -% 1198 0 obj +% 1207 0 obj +<< +/Type /FontDescriptor +/FontName /XYUGDR+Times-Roman +/FontBBox [ 0 -14 476 688] +/Flags 65568 +/Ascent 688 +/CapHeight 688 +/Descent -14 +/ItalicAngle 0 +/StemV 71 +/MissingWidth 250 +/CharSet (/eight/five/four/nine/one/seven/six/three/two/zero) +/FontFile3 1209 0 R +>> +% 1208 0 obj << -/D [1196 0 R /XYZ 149.705 753.953 null] +/Type /FontDescriptor +/FontName /XISTAL+Times-Bold +/FontBBox [ 0 -13 600 688] +/Flags 65568 +/Ascent 688 +/CapHeight 676 +/Descent -13 +/ItalicAngle 0 +/StemV 90 +/MissingWidth 250 +/CharSet (/P/one/zero) +/FontFile3 1210 0 R >> -% 1189 0 obj +% 1202 0 obj << -/D [1196 0 R /XYZ 283.692 275.514 null] +/D [1200 0 R /XYZ 149.705 753.953 null] >> -% 1195 0 obj +% 1193 0 obj +<< +/D [1200 0 R /XYZ 283.692 272.519 null] +>> +% 1199 0 obj << /Font << /F8 557 0 R >> -/XObject << /Im4 1179 0 R >> +/XObject << /Im4 1183 0 R >> /ProcSet [ /PDF /Text ] >> -% 1207 0 obj +% 1215 0 obj << /Type /Page -/Contents 1208 0 R -/Resources 1206 0 R +/Contents 1216 0 R +/Resources 1214 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1194 0 R -/Annots [ 1203 0 R 1204 0 R 1205 0 R ] +/Parent 1198 0 R +/Annots [ 1211 0 R 1212 0 R 1213 0 R ] >> -% 1203 0 obj +% 1211 0 obj << /Type /Annot /Subtype /Link @@ -13400,7 +13730,7 @@ stream /Rect [368.549 295.182 444.603 306.307] /A << /S /GoTo /D (vdata) >> >> -% 1204 0 obj +% 1212 0 obj << /Type /Annot /Subtype /Link @@ -13408,7 +13738,7 @@ stream /Rect [205.998 285.441 217.953 294.352] /A << /S /GoTo /D (table.16) >> >> -% 1205 0 obj +% 1213 0 obj << /Type /Annot /Subtype /Link @@ -13416,62 +13746,62 @@ stream /Rect [294.721 215.901 361.779 227.026] /A << /S /GoTo /D (descdata) >> >> -% 1209 0 obj +% 1217 0 obj << -/D [1207 0 R /XYZ 98.895 753.953 null] +/D [1215 0 R /XYZ 98.895 753.953 null] >> % 276 0 obj << -/D [1207 0 R /XYZ 99.895 720.077 null] +/D [1215 0 R /XYZ 99.895 720.077 null] >> -% 1210 0 obj +% 1218 0 obj << -/D [1207 0 R /XYZ 270.132 466.542 null] +/D [1215 0 R /XYZ 270.132 466.542 null] >> -% 1211 0 obj +% 1219 0 obj << -/D [1207 0 R /XYZ 99.895 435.558 null] +/D [1215 0 R /XYZ 99.895 435.558 null] >> -% 1212 0 obj +% 1220 0 obj << -/D [1207 0 R /XYZ 99.895 435.558 null] +/D [1215 0 R /XYZ 99.895 435.558 null] >> -% 1213 0 obj +% 1221 0 obj << -/D [1207 0 R /XYZ 99.895 423.603 null] +/D [1215 0 R /XYZ 99.895 423.603 null] >> -% 1206 0 obj +% 1214 0 obj << /Font << /F16 554 0 R /F8 557 0 R /F11 750 0 R /F14 767 0 R /F10 766 0 R /F7 765 0 R /F27 556 0 R /F30 764 0 R >> /ProcSet [ /PDF /Text ] >> -% 1215 0 obj +% 1223 0 obj << /Type /Page -/Contents 1216 0 R -/Resources 1214 0 R +/Contents 1224 0 R +/Resources 1222 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1194 0 R +/Parent 1198 0 R >> -% 1217 0 obj +% 1225 0 obj << -/D [1215 0 R /XYZ 149.705 753.953 null] +/D [1223 0 R /XYZ 149.705 753.953 null] >> -% 1214 0 obj +% 1222 0 obj << /Font << /F27 556 0 R /F8 557 0 R /F30 764 0 R >> /ProcSet [ /PDF /Text ] >> -% 1221 0 obj +% 1229 0 obj << /Type /Page -/Contents 1222 0 R -/Resources 1220 0 R +/Contents 1230 0 R +/Resources 1228 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1194 0 R -/Annots [ 1218 0 R ] +/Parent 1198 0 R +/Annots [ 1226 0 R ] >> -% 1218 0 obj +% 1226 0 obj << /Type /Annot /Subtype /Link @@ -13479,30 +13809,14 @@ stream /Rect [294.721 210.686 361.779 221.811] /A << /S /GoTo /D (descdata) >> >> -% 1223 0 obj -<< -/D [1221 0 R /XYZ 98.895 753.953 null] ->> -% 280 0 obj -<< -/D [1221 0 R /XYZ 99.895 720.077 null] ->> -% 1224 0 obj -<< -/D [1221 0 R /XYZ 270.132 451.038 null] ->> -% 1225 0 obj -<< -/D [1221 0 R /XYZ 99.895 417.777 null] ->> -% 1226 0 obj +% 1231 0 obj << -/D [1221 0 R /XYZ 99.895 417.777 null] +/D [1229 0 R /XYZ 98.895 753.953 null] >> endstream endobj -1232 0 obj +1240 0 obj << /Length 4181 >> @@ -13635,7 +13949,7 @@ ET endstream endobj -1236 0 obj +1244 0 obj << /Length 6537 >> @@ -13692,7 +14006,7 @@ ET endstream endobj -1242 0 obj +1250 0 obj << /Length 6630 >> @@ -13770,7 +14084,7 @@ ET endstream endobj -1248 0 obj +1256 0 obj << /Length 10081 >> @@ -13841,7 +14155,7 @@ ET endstream endobj -1253 0 obj +1261 0 obj << /Length 2667 >> @@ -13876,7 +14190,7 @@ ET endstream endobj -1263 0 obj +1271 0 obj << /Length 7172 >> @@ -13961,7 +14275,7 @@ ET endstream endobj -1268 0 obj +1276 0 obj << /Length 3163 >> @@ -14004,7 +14318,7 @@ ET endstream endobj -1277 0 obj +1285 0 obj << /Length 4740 >> @@ -14138,7 +14452,7 @@ ET endstream endobj -1285 0 obj +1293 0 obj << /Length 3278 >> @@ -14236,7 +14550,7 @@ ET endstream endobj -1290 0 obj +1298 0 obj << /Length 2243 >> @@ -14305,7 +14619,7 @@ ET endstream endobj -1296 0 obj +1304 0 obj << /Length 5916 >> @@ -14415,7 +14729,7 @@ ET endstream endobj -1300 0 obj +1308 0 obj << /Length 1591 >> @@ -14438,7 +14752,7 @@ ET endstream endobj -1308 0 obj +1316 0 obj << /Length 4890 >> @@ -14545,7 +14859,7 @@ ET endstream endobj -1318 0 obj +1326 0 obj << /Length 6436 >> @@ -14652,7 +14966,7 @@ ET endstream endobj -1323 0 obj +1331 0 obj << /Length 6086 >> @@ -14736,174 +15050,55 @@ ET endstream endobj -1338 0 obj +1235 0 obj << -/Length 6641 +/Type /ObjStm +/N 100 +/First 977 +/Length 10542 >> 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 [(spasb)-375(|)-375(Sparse)-375(matrix)-375(assem)31(bly)-375(routine)]TJ -0 g 0 G -0 g 0 G -/F30 9.9626 Tf -25.091 -18.389 Td [(call)-525(psb_spasb\050a,)-525(desc_a,)-525(info,)-525(afmt,)-525(upd,)-525(dupl,)-525(mold\051)]TJ -0 g 0 G -/F27 9.9626 Tf 0 -21.202 Td [(T)32(yp)-32(e:)]TJ -0 g 0 G -/F8 9.9626 Tf 33.797 0 Td [(Sync)28(hronous.)]TJ -0 g 0 G -/F27 9.9626 Tf -33.797 -19.639 Td [(On)-383(En)32(try)]TJ -0 g 0 G -0 g 0 G - 0 -19.638 Td [(desc)]TJ -ET -q -1 0 0 1 121.81 627.46 cm -[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S -Q -BT -/F27 9.9626 Tf 125.247 627.261 Td [(a)]TJ -0 g 0 G -/F8 9.9626 Tf 10.551 0 Td [(the)-333(comm)27(unication)-333(descriptor.)]TJ -10.996 -11.956 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 27.951 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf 23.073 0 Td [(.)]TJ -51.024 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.183 0 Td [(required)]TJ/F8 9.9626 Tf 41.899 0 Td [(.)]TJ -67.082 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(structured)-333(data)-333(of)-334(t)28(yp)-28(e)]TJ -0 0 1 rg 0 0 1 RG -/F30 9.9626 Tf 170.915 0 Td [(psb)]TJ -ET -q -1 0 0 1 312.036 579.639 cm -[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S -Q -BT -/F30 9.9626 Tf 315.174 579.44 Td [(desc)]TJ -ET -q -1 0 0 1 336.723 579.639 cm -[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S -Q -BT -/F30 9.9626 Tf 339.861 579.44 Td [(type)]TJ -0 g 0 G -/F8 9.9626 Tf 20.921 0 Td [(.)]TJ -0 g 0 G -/F27 9.9626 Tf -260.887 -19.639 Td [(afm)32(t)]TJ -0 g 0 G -/F8 9.9626 Tf 27.737 0 Td [(the)-333(storage)-334(format)-333(for)-333(the)-334(sparse)-333(matrix.)]TJ -2.83 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf 23.073 0 Td [(.)]TJ -55.452 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(optional)]TJ/F8 9.9626 Tf 40.577 0 Td [(.)]TJ -70.188 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(arra)28(y)-333(of)-334(c)28(haracters.)-444(Defalt:)-445('CSR'.)]TJ -0 g 0 G -/F27 9.9626 Tf -24.907 -19.639 Td [(up)-32(d)]TJ -0 g 0 G -/F8 9.9626 Tf 24.395 0 Td [(Pro)28(vide)-333(for)-334(up)-27(dates)-334(to)-333(the)-333(matrix)-334(co)-28(e\016cien)28(ts.)]TJ 0.512 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(global)]TJ/F8 9.9626 Tf 29.756 0 Td [(.)]TJ -62.135 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(optional)]TJ/F8 9.9626 Tf 40.577 0 Td [(.)]TJ -70.188 -11.956 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(in)28(teger,)-333(p)-28(ossible)-333(v)55(alues:)]TJ/F30 9.9626 Tf 164.633 0 Td [(psb_upd_srch_)]TJ/F8 9.9626 Tf 67.994 0 Td [(,)]TJ/F30 9.9626 Tf 6.089 0 Td [(psb_upd_perm_)]TJ -0 g 0 G -/F27 9.9626 Tf -263.623 -19.639 Td [(dupl)]TJ -0 g 0 G -/F8 9.9626 Tf 27.259 0 Td [(Ho)28(w)-334(to)-333(handle)-333(duplicate)-333(co)-28(e\016cien)27(ts.)]TJ -2.352 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(global)]TJ/F8 9.9626 Tf 29.756 0 Td [(.)]TJ -62.135 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(optional)]TJ/F8 9.9626 Tf 40.577 0 Td [(.)]TJ -70.188 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-308(as:)-432(in)27(teger,)-313(p)-28(ossible)-309(v)56(alues:)]TJ/F30 9.9626 Tf 163.696 0 Td [(psb_dupl_ovwrt_)]TJ/F8 9.9626 Tf 78.456 0 Td [(,)]TJ/F30 9.9626 Tf 5.891 0 Td [(psb_dupl_add_)]TJ/F8 9.9626 Tf 67.994 0 Td [(,)]TJ/F30 9.9626 Tf -316.037 -11.955 Td [(psb_dupl_err_)]TJ/F8 9.9626 Tf 67.994 0 Td [(.)]TJ -0 g 0 G -/F27 9.9626 Tf -92.901 -19.639 Td [(mold)]TJ -0 g 0 G -/F8 9.9626 Tf 29.805 0 Td [(The)-333(desired)-334(dynamic)-333(t)28(yp)-28(e)-333(for)-334(the)-333(in)28(ternal)-333(matrix)-334(storage.)]TJ -4.898 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf 23.073 0 Td [(.)]TJ -55.452 -11.956 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(optional)]TJ/F8 9.9626 Tf 40.577 0 Td [(.)]TJ -70.188 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(ob)-55(ject)-334(of)-333(a)-333(class)-334(deriv)28(ed)-333(from)]TJ/F30 9.9626 Tf 203.349 0 Td [(psb)]TJ -ET -q -1 0 0 1 344.47 297.847 cm -[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S -Q -BT -/F30 9.9626 Tf 347.608 297.647 Td [(T)]TJ -ET -q -1 0 0 1 353.466 297.847 cm -[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S -Q -BT -/F30 9.9626 Tf 356.604 297.647 Td [(base)]TJ -ET -q -1 0 0 1 378.153 297.847 cm -[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S -Q -BT -/F30 9.9626 Tf 381.291 297.647 Td [(sparse)]TJ -ET -q -1 0 0 1 413.301 297.847 cm -[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S -Q -BT -/F30 9.9626 Tf 416.439 297.647 Td [(mat)]TJ/F8 9.9626 Tf 15.691 0 Td [(.)]TJ -0 g 0 G -/F27 9.9626 Tf -332.235 -21.201 Td [(On)-383(Return)]TJ -0 g 0 G -0 g 0 G - 0 -19.639 Td [(a)]TJ -0 g 0 G -/F8 9.9626 Tf 10.551 0 Td [(the)-333(matrix)-334(to)-333(b)-28(e)-333(assem)28(bled.)]TJ 14.356 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 27.951 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -27.951 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.183 0 Td [(required)]TJ/F8 9.9626 Tf -25.183 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(inout)]TJ/F8 9.9626 Tf 26.096 0 Td [(.)]TJ -59.582 -11.956 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(structured)-333(data)-333(of)-334(t)28(yp)-28(e)]TJ -0 0 1 rg 0 0 1 RG -/F30 9.9626 Tf 170.915 0 Td [(psb)]TJ -ET -q -1 0 0 1 312.036 209.186 cm -[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S -Q -BT -/F30 9.9626 Tf 315.174 208.986 Td [(Tspmat)]TJ -ET -q -1 0 0 1 347.183 209.186 cm -[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S -Q -BT -/F30 9.9626 Tf 350.322 208.986 Td [(type)]TJ -0 g 0 G -/F8 9.9626 Tf 20.921 0 Td [(.)]TJ -0 g 0 G -/F27 9.9626 Tf -271.348 -19.638 Td [(info)]TJ -0 g 0 G -/F8 9.9626 Tf 23.758 0 Td [(Error)-333(co)-28(de.)]TJ 1.149 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.956 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(out)]TJ/F8 9.9626 Tf 16.549 0 Td [(.)]TJ -50.035 -11.955 Td [(An)-333(in)28(tege)-1(r)-333(v)56(alue;)-334(0)-333(means)-333(no)-334(error)-333(has)-333(b)-28(een)-333(detecte)-1(d)1(.)]TJ/F16 11.9552 Tf -24.907 -21.201 Td [(Notes)]TJ -0 g 0 G -/F8 9.9626 Tf 166.875 -29.888 Td [(75)]TJ -0 g 0 G -ET - -endstream -endobj -1227 0 obj +280 0 1232 57 1233 116 1234 174 1228 232 1239 389 1227 546 1236 690 1237 834 1241 980 +1238 1039 1243 1145 1245 1263 284 1321 288 1378 1242 1435 1249 1567 1247 1706 1251 1852 1252 1911 +1248 1970 1255 2089 1253 2228 1257 2386 1258 2444 1254 2502 1260 2634 1262 2752 1263 2811 1264 2870 +1265 2929 1266 2988 1267 3047 1259 3104 1270 3184 1268 3323 1272 3469 292 3527 1269 3584 1275 3703 +1273 3842 1277 4000 1278 4059 1279 4118 1280 4177 1274 4236 1284 4342 1281 4490 1282 4636 1286 4783 +296 4841 1287 4898 1283 4956 1292 5062 1289 5210 1290 5355 1294 5501 300 5560 1291 5618 1297 5724 +1295 5863 1299 6009 304 6067 1296 6124 1303 6230 1300 6378 1301 6521 1305 6667 308 6726 1302 6784 +1307 6916 1309 7034 1310 7092 1311 7150 1306 7208 1315 7288 1312 7436 1313 7581 1317 7723 312 7782 +1318 7840 1319 7899 1320 7958 1314 8017 1325 8136 1321 8284 1322 8430 1327 8574 316 8632 1324 8689 +1330 8808 1323 8947 1332 9094 1333 9153 1334 9212 1335 9271 1336 9330 1337 9388 1338 9447 1339 9506 +% 280 0 obj << -/Type /ObjStm -/N 100 -/First 981 -/Length 10699 +/D [1229 0 R /XYZ 99.895 720.077 null] >> -stream -1220 0 1231 157 1219 314 1228 458 1229 602 1233 748 1230 807 1235 913 1237 1031 284 1089 -288 1146 1234 1203 1241 1335 1239 1474 1243 1620 1244 1679 1240 1738 1247 1857 1245 1996 1249 2154 -1250 2212 1246 2270 1252 2402 1254 2520 1255 2579 1256 2638 1257 2697 1258 2756 1259 2815 1251 2872 -1262 2952 1260 3091 1264 3237 292 3295 1261 3352 1267 3471 1265 3610 1269 3768 1270 3827 1271 3886 -1272 3945 1266 4004 1276 4110 1273 4258 1274 4404 1278 4551 296 4609 1279 4666 1275 4724 1284 4830 -1281 4978 1282 5123 1286 5269 300 5328 1283 5386 1289 5492 1287 5631 1291 5777 304 5835 1288 5892 -1295 5998 1292 6146 1293 6289 1297 6435 308 6494 1294 6552 1299 6684 1301 6802 1302 6860 1303 6918 -1298 6976 1307 7056 1304 7204 1305 7349 1309 7491 312 7550 1310 7608 1311 7667 1312 7726 1306 7785 -1317 7904 1313 8052 1314 8198 1319 8342 316 8400 1316 8457 1322 8576 1315 8715 1324 8862 1325 8921 -1326 8980 1327 9039 1328 9098 1329 9156 1330 9215 1331 9274 1332 9333 1333 9392 1321 9451 1337 9570 -% 1220 0 obj +% 1232 0 obj +<< +/D [1229 0 R /XYZ 270.132 451.038 null] +>> +% 1233 0 obj +<< +/D [1229 0 R /XYZ 99.895 417.777 null] +>> +% 1234 0 obj +<< +/D [1229 0 R /XYZ 99.895 417.777 null] +>> +% 1228 0 obj << /Font << /F16 554 0 R /F8 557 0 R /F11 750 0 R /F10 766 0 R /F14 767 0 R /F7 765 0 R /F27 556 0 R /F30 764 0 R >> /ProcSet [ /PDF /Text ] >> -% 1231 0 obj +% 1239 0 obj << /Type /Page -/Contents 1232 0 R -/Resources 1230 0 R +/Contents 1240 0 R +/Resources 1238 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1194 0 R -/Annots [ 1219 0 R 1228 0 R 1229 0 R ] +/Parent 1198 0 R +/Annots [ 1227 0 R 1236 0 R 1237 0 R ] >> -% 1219 0 obj +% 1227 0 obj << /Type /Annot /Subtype /Link @@ -14911,7 +15106,7 @@ stream /Rect [336.331 643.143 412.385 654.268] /A << /S /GoTo /D (vdata) >> >> -% 1228 0 obj +% 1236 0 obj << /Type /Annot /Subtype /Link @@ -14919,7 +15114,7 @@ stream /Rect [174.615 543.516 250.669 554.641] /A << /S /GoTo /D (vdata) >> >> -% 1229 0 obj +% 1237 0 obj << /Type /Annot /Subtype /Link @@ -14927,50 +15122,50 @@ stream /Rect [473.75 543.516 485.705 554.641] /A << /S /GoTo /D (table.17) >> >> -% 1233 0 obj +% 1241 0 obj << -/D [1231 0 R /XYZ 149.705 753.953 null] +/D [1239 0 R /XYZ 149.705 753.953 null] >> -% 1230 0 obj +% 1238 0 obj << /Font << /F27 556 0 R /F8 557 0 R /F30 764 0 R /F11 750 0 R >> /ProcSet [ /PDF /Text ] >> -% 1235 0 obj +% 1243 0 obj << /Type /Page -/Contents 1236 0 R -/Resources 1234 0 R +/Contents 1244 0 R +/Resources 1242 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1238 0 R +/Parent 1246 0 R >> -% 1237 0 obj +% 1245 0 obj << -/D [1235 0 R /XYZ 98.895 753.953 null] +/D [1243 0 R /XYZ 98.895 753.953 null] >> % 284 0 obj << -/D [1235 0 R /XYZ 99.895 716.092 null] +/D [1243 0 R /XYZ 99.895 716.092 null] >> % 288 0 obj << -/D [1235 0 R /XYZ 99.895 696.263 null] +/D [1243 0 R /XYZ 99.895 696.263 null] >> -% 1234 0 obj +% 1242 0 obj << /Font << /F16 554 0 R /F30 764 0 R /F8 557 0 R /F27 556 0 R /F11 750 0 R /F14 767 0 R >> /ProcSet [ /PDF /Text ] >> -% 1241 0 obj +% 1249 0 obj << /Type /Page -/Contents 1242 0 R -/Resources 1240 0 R +/Contents 1250 0 R +/Resources 1248 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1238 0 R -/Annots [ 1239 0 R ] +/Parent 1246 0 R +/Annots [ 1247 0 R ] >> -% 1239 0 obj +% 1247 0 obj << /Type /Annot /Subtype /Link @@ -14978,29 +15173,29 @@ stream /Rect [345.53 325.282 412.588 336.407] /A << /S /GoTo /D (descdata) >> >> -% 1243 0 obj +% 1251 0 obj << -/D [1241 0 R /XYZ 149.705 753.953 null] +/D [1249 0 R /XYZ 149.705 753.953 null] >> -% 1244 0 obj +% 1252 0 obj << -/D [1241 0 R /XYZ 150.705 234.372 null] +/D [1249 0 R /XYZ 150.705 234.372 null] >> -% 1240 0 obj +% 1248 0 obj << /Font << /F27 556 0 R /F8 557 0 R /F30 764 0 R /F11 750 0 R /F16 554 0 R >> /ProcSet [ /PDF /Text ] >> -% 1247 0 obj +% 1255 0 obj << /Type /Page -/Contents 1248 0 R -/Resources 1246 0 R +/Contents 1256 0 R +/Resources 1254 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1238 0 R -/Annots [ 1245 0 R ] +/Parent 1246 0 R +/Annots [ 1253 0 R ] >> -% 1245 0 obj +% 1253 0 obj << /Type /Annot /Subtype /Link @@ -15008,66 +15203,66 @@ stream /Rect [357.982 215.702 380.454 226.827] /A << /S /GoTo /D (subsubsection.2.3.1) >> >> -% 1249 0 obj +% 1257 0 obj << -/D [1247 0 R /XYZ 98.895 753.953 null] +/D [1255 0 R /XYZ 98.895 753.953 null] >> -% 1250 0 obj +% 1258 0 obj << -/D [1247 0 R /XYZ 99.895 134.155 null] +/D [1255 0 R /XYZ 99.895 134.155 null] >> -% 1246 0 obj +% 1254 0 obj << /Font << /F30 764 0 R /F8 557 0 R /F27 556 0 R /F14 767 0 R /F11 750 0 R /F10 766 0 R >> /ProcSet [ /PDF /Text ] >> -% 1252 0 obj +% 1260 0 obj << /Type /Page -/Contents 1253 0 R -/Resources 1251 0 R +/Contents 1261 0 R +/Resources 1259 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1238 0 R +/Parent 1246 0 R >> -% 1254 0 obj +% 1262 0 obj << -/D [1252 0 R /XYZ 149.705 753.953 null] +/D [1260 0 R /XYZ 149.705 753.953 null] >> -% 1255 0 obj +% 1263 0 obj << -/D [1252 0 R /XYZ 150.705 716.092 null] +/D [1260 0 R /XYZ 150.705 716.092 null] >> -% 1256 0 obj +% 1264 0 obj << -/D [1252 0 R /XYZ 150.705 688.251 null] +/D [1260 0 R /XYZ 150.705 688.251 null] >> -% 1257 0 obj +% 1265 0 obj << -/D [1252 0 R /XYZ 150.705 668.049 null] +/D [1260 0 R /XYZ 150.705 668.049 null] >> -% 1258 0 obj +% 1266 0 obj << -/D [1252 0 R /XYZ 150.705 626.428 null] +/D [1260 0 R /XYZ 150.705 626.428 null] >> -% 1259 0 obj +% 1267 0 obj << -/D [1252 0 R /XYZ 150.705 568.7 null] +/D [1260 0 R /XYZ 150.705 568.7 null] >> -% 1251 0 obj +% 1259 0 obj << /Font << /F8 557 0 R /F30 764 0 R >> /ProcSet [ /PDF /Text ] >> -% 1262 0 obj +% 1270 0 obj << /Type /Page -/Contents 1263 0 R -/Resources 1261 0 R +/Contents 1271 0 R +/Resources 1269 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1238 0 R -/Annots [ 1260 0 R ] +/Parent 1246 0 R +/Annots [ 1268 0 R ] >> -% 1260 0 obj +% 1268 0 obj << /Type /Annot /Subtype /Link @@ -15075,29 +15270,29 @@ stream /Rect [294.721 117.115 361.779 128.24] /A << /S /GoTo /D (descdata) >> >> -% 1264 0 obj +% 1272 0 obj << -/D [1262 0 R /XYZ 98.895 753.953 null] +/D [1270 0 R /XYZ 98.895 753.953 null] >> % 292 0 obj << -/D [1262 0 R /XYZ 99.895 720.077 null] +/D [1270 0 R /XYZ 99.895 720.077 null] >> -% 1261 0 obj +% 1269 0 obj << /Font << /F16 554 0 R /F30 764 0 R /F8 557 0 R /F11 750 0 R /F27 556 0 R >> /ProcSet [ /PDF /Text ] >> -% 1267 0 obj +% 1275 0 obj << /Type /Page -/Contents 1268 0 R -/Resources 1266 0 R +/Contents 1276 0 R +/Resources 1274 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1238 0 R -/Annots [ 1265 0 R ] +/Parent 1246 0 R +/Annots [ 1273 0 R ] >> -% 1265 0 obj +% 1273 0 obj << /Type /Annot /Subtype /Link @@ -15105,37 +15300,37 @@ stream /Rect [325.383 402.324 347.855 413.172] /A << /S /GoTo /D (subsubsection.2.3.1) >> >> -% 1269 0 obj +% 1277 0 obj << -/D [1267 0 R /XYZ 149.705 753.953 null] +/D [1275 0 R /XYZ 149.705 753.953 null] >> -% 1270 0 obj +% 1278 0 obj << -/D [1267 0 R /XYZ 150.705 496.913 null] +/D [1275 0 R /XYZ 150.705 496.913 null] >> -% 1271 0 obj +% 1279 0 obj << -/D [1267 0 R /XYZ 150.705 475.051 null] +/D [1275 0 R /XYZ 150.705 475.051 null] >> -% 1272 0 obj +% 1280 0 obj << -/D [1267 0 R /XYZ 150.705 431.215 null] +/D [1275 0 R /XYZ 150.705 431.215 null] >> -% 1266 0 obj +% 1274 0 obj << /Font << /F27 556 0 R /F8 557 0 R /F11 750 0 R /F16 554 0 R >> /ProcSet [ /PDF /Text ] >> -% 1276 0 obj +% 1284 0 obj << /Type /Page -/Contents 1277 0 R -/Resources 1275 0 R +/Contents 1285 0 R +/Resources 1283 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1280 0 R -/Annots [ 1273 0 R 1274 0 R ] +/Parent 1288 0 R +/Annots [ 1281 0 R 1282 0 R ] >> -% 1273 0 obj +% 1281 0 obj << /Type /Annot /Subtype /Link @@ -15143,7 +15338,7 @@ stream /Rect [294.721 574.94 361.779 586.065] /A << /S /GoTo /D (descdata) >> >> -% 1274 0 obj +% 1282 0 obj << /Type /Annot /Subtype /Link @@ -15151,33 +15346,33 @@ stream /Rect [294.721 417.531 361.779 428.656] /A << /S /GoTo /D (descdata) >> >> -% 1278 0 obj +% 1286 0 obj << -/D [1276 0 R /XYZ 98.895 753.953 null] +/D [1284 0 R /XYZ 98.895 753.953 null] >> % 296 0 obj << -/D [1276 0 R /XYZ 99.895 720.077 null] +/D [1284 0 R /XYZ 99.895 720.077 null] >> -% 1279 0 obj +% 1287 0 obj << -/D [1276 0 R /XYZ 99.895 327.092 null] +/D [1284 0 R /XYZ 99.895 327.092 null] >> -% 1275 0 obj +% 1283 0 obj << /Font << /F16 554 0 R /F30 764 0 R /F27 556 0 R /F8 557 0 R >> /ProcSet [ /PDF /Text ] >> -% 1284 0 obj +% 1292 0 obj << /Type /Page -/Contents 1285 0 R -/Resources 1283 0 R +/Contents 1293 0 R +/Resources 1291 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1280 0 R -/Annots [ 1281 0 R 1282 0 R ] +/Parent 1288 0 R +/Annots [ 1289 0 R 1290 0 R ] >> -% 1281 0 obj +% 1289 0 obj << /Type /Annot /Subtype /Link @@ -15185,7 +15380,7 @@ stream /Rect [345.53 574.94 412.588 586.065] /A << /S /GoTo /D (descdata) >> >> -% 1282 0 obj +% 1290 0 obj << /Type /Annot /Subtype /Link @@ -15193,29 +15388,29 @@ stream /Rect [345.53 485.277 412.588 496.401] /A << /S /GoTo /D (descdata) >> >> -% 1286 0 obj +% 1294 0 obj << -/D [1284 0 R /XYZ 149.705 753.953 null] +/D [1292 0 R /XYZ 149.705 753.953 null] >> % 300 0 obj << -/D [1284 0 R /XYZ 150.705 720.077 null] +/D [1292 0 R /XYZ 150.705 720.077 null] >> -% 1283 0 obj +% 1291 0 obj << /Font << /F16 554 0 R /F30 764 0 R /F27 556 0 R /F8 557 0 R >> /ProcSet [ /PDF /Text ] >> -% 1289 0 obj +% 1297 0 obj << /Type /Page -/Contents 1290 0 R -/Resources 1288 0 R +/Contents 1298 0 R +/Resources 1296 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1280 0 R -/Annots [ 1287 0 R ] +/Parent 1288 0 R +/Annots [ 1295 0 R ] >> -% 1287 0 obj +% 1295 0 obj << /Type /Annot /Subtype /Link @@ -15223,29 +15418,29 @@ stream /Rect [294.721 574.94 361.779 586.065] /A << /S /GoTo /D (descdata) >> >> -% 1291 0 obj +% 1299 0 obj << -/D [1289 0 R /XYZ 98.895 753.953 null] +/D [1297 0 R /XYZ 98.895 753.953 null] >> % 304 0 obj << -/D [1289 0 R /XYZ 99.895 720.077 null] +/D [1297 0 R /XYZ 99.895 720.077 null] >> -% 1288 0 obj +% 1296 0 obj << /Font << /F16 554 0 R /F30 764 0 R /F27 556 0 R /F8 557 0 R >> /ProcSet [ /PDF /Text ] >> -% 1295 0 obj +% 1303 0 obj << /Type /Page -/Contents 1296 0 R -/Resources 1294 0 R +/Contents 1304 0 R +/Resources 1302 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1280 0 R -/Annots [ 1292 0 R 1293 0 R ] +/Parent 1288 0 R +/Annots [ 1300 0 R 1301 0 R ] >> -% 1292 0 obj +% 1300 0 obj << /Type /Annot /Subtype /Link @@ -15253,7 +15448,7 @@ stream /Rect [345.53 453.24 423.049 464.364] /A << /S /GoTo /D (spdata) >> >> -% 1293 0 obj +% 1301 0 obj << /Type /Annot /Subtype /Link @@ -15261,54 +15456,54 @@ stream /Rect [345.53 209.896 412.588 221.021] /A << /S /GoTo /D (descdata) >> >> -% 1297 0 obj +% 1305 0 obj << -/D [1295 0 R /XYZ 149.705 753.953 null] +/D [1303 0 R /XYZ 149.705 753.953 null] >> % 308 0 obj << -/D [1295 0 R /XYZ 150.705 720.077 null] +/D [1303 0 R /XYZ 150.705 720.077 null] >> -% 1294 0 obj +% 1302 0 obj << /Font << /F16 554 0 R /F30 764 0 R /F8 557 0 R /F27 556 0 R /F11 750 0 R /F14 767 0 R >> /ProcSet [ /PDF /Text ] >> -% 1299 0 obj +% 1307 0 obj << /Type /Page -/Contents 1300 0 R -/Resources 1298 0 R +/Contents 1308 0 R +/Resources 1306 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1280 0 R +/Parent 1288 0 R >> -% 1301 0 obj +% 1309 0 obj << -/D [1299 0 R /XYZ 98.895 753.953 null] +/D [1307 0 R /XYZ 98.895 753.953 null] >> -% 1302 0 obj +% 1310 0 obj << -/D [1299 0 R /XYZ 99.895 716.092 null] +/D [1307 0 R /XYZ 99.895 716.092 null] >> -% 1303 0 obj +% 1311 0 obj << -/D [1299 0 R /XYZ 99.895 664.341 null] +/D [1307 0 R /XYZ 99.895 664.341 null] >> -% 1298 0 obj +% 1306 0 obj << /Font << /F8 557 0 R /F30 764 0 R >> /ProcSet [ /PDF /Text ] >> -% 1307 0 obj +% 1315 0 obj << /Type /Page -/Contents 1308 0 R -/Resources 1306 0 R +/Contents 1316 0 R +/Resources 1314 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1280 0 R -/Annots [ 1304 0 R 1305 0 R ] +/Parent 1288 0 R +/Annots [ 1312 0 R 1313 0 R ] >> -% 1304 0 obj +% 1312 0 obj << /Type /Annot /Subtype /Link @@ -15316,7 +15511,7 @@ stream /Rect [345.53 574.94 412.588 586.065] /A << /S /GoTo /D (descdata) >> >> -% 1305 0 obj +% 1313 0 obj << /Type /Annot /Subtype /Link @@ -15324,41 +15519,41 @@ stream /Rect [345.53 405.575 423.049 416.7] /A << /S /GoTo /D (spdata) >> >> -% 1309 0 obj +% 1317 0 obj << -/D [1307 0 R /XYZ 149.705 753.953 null] +/D [1315 0 R /XYZ 149.705 753.953 null] >> % 312 0 obj << -/D [1307 0 R /XYZ 150.705 720.077 null] +/D [1315 0 R /XYZ 150.705 720.077 null] >> -% 1310 0 obj +% 1318 0 obj << -/D [1307 0 R /XYZ 150.705 315.137 null] +/D [1315 0 R /XYZ 150.705 315.137 null] >> -% 1311 0 obj +% 1319 0 obj << -/D [1307 0 R /XYZ 150.705 293.274 null] +/D [1315 0 R /XYZ 150.705 293.274 null] >> -% 1312 0 obj +% 1320 0 obj << -/D [1307 0 R /XYZ 150.705 273.349 null] +/D [1315 0 R /XYZ 150.705 273.349 null] >> -% 1306 0 obj +% 1314 0 obj << /Font << /F16 554 0 R /F30 764 0 R /F27 556 0 R /F8 557 0 R /F11 750 0 R >> /ProcSet [ /PDF /Text ] >> -% 1317 0 obj +% 1325 0 obj << /Type /Page -/Contents 1318 0 R -/Resources 1316 0 R +/Contents 1326 0 R +/Resources 1324 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1320 0 R -/Annots [ 1313 0 R 1314 0 R ] +/Parent 1328 0 R +/Annots [ 1321 0 R 1322 0 R ] >> -% 1313 0 obj +% 1321 0 obj << /Type /Annot /Subtype /Link @@ -15366,7 +15561,7 @@ stream /Rect [261.152 288.004 328.21 299.129] /A << /S /GoTo /D (descdata) >> >> -% 1314 0 obj +% 1322 0 obj << /Type /Annot /Subtype /Link @@ -15374,29 +15569,29 @@ stream /Rect [294.721 117.115 372.239 128.24] /A << /S /GoTo /D (spdata) >> >> -% 1319 0 obj +% 1327 0 obj << -/D [1317 0 R /XYZ 98.895 753.953 null] +/D [1325 0 R /XYZ 98.895 753.953 null] >> % 316 0 obj << -/D [1317 0 R /XYZ 99.895 720.077 null] +/D [1325 0 R /XYZ 99.895 720.077 null] >> -% 1316 0 obj +% 1324 0 obj << /Font << /F16 554 0 R /F30 764 0 R /F27 556 0 R /F8 557 0 R /F11 750 0 R >> /ProcSet [ /PDF /Text ] >> -% 1322 0 obj +% 1330 0 obj << /Type /Page -/Contents 1323 0 R -/Resources 1321 0 R +/Contents 1331 0 R +/Resources 1329 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1320 0 R -/Annots [ 1315 0 R ] +/Parent 1328 0 R +/Annots [ 1323 0 R ] >> -% 1315 0 obj +% 1323 0 obj << /Type /Annot /Subtype /Link @@ -15404,87 +15599,200 @@ stream /Rect [311.962 655.098 379.019 666.223] /A << /S /GoTo /D (descdata) >> >> -% 1324 0 obj -<< -/D [1322 0 R /XYZ 149.705 753.953 null] ->> -% 1325 0 obj -<< -/D [1322 0 R /XYZ 150.705 552.704 null] ->> -% 1326 0 obj -<< -/D [1322 0 R /XYZ 150.705 520.824 null] ->> -% 1327 0 obj -<< -/D [1322 0 R /XYZ 150.705 487.006 null] ->> -% 1328 0 obj +% 1332 0 obj << -/D [1322 0 R /XYZ 150.705 419.26 null] +/D [1330 0 R /XYZ 149.705 753.953 null] >> -% 1329 0 obj +% 1333 0 obj << -/D [1322 0 R /XYZ 150.705 363.469 null] +/D [1330 0 R /XYZ 150.705 552.704 null] >> -% 1330 0 obj +% 1334 0 obj << -/D [1322 0 R /XYZ 150.705 319.634 null] +/D [1330 0 R /XYZ 150.705 520.824 null] >> -% 1331 0 obj +% 1335 0 obj << -/D [1322 0 R /XYZ 150.705 287.753 null] +/D [1330 0 R /XYZ 150.705 487.006 null] >> -% 1332 0 obj +% 1336 0 obj << -/D [1322 0 R /XYZ 150.705 255.873 null] +/D [1330 0 R /XYZ 150.705 419.26 null] >> -% 1333 0 obj +% 1337 0 obj << -/D [1322 0 R /XYZ 150.705 212.037 null] +/D [1330 0 R /XYZ 150.705 363.469 null] >> -% 1321 0 obj +% 1338 0 obj << -/Font << /F27 556 0 R /F8 557 0 R /F30 764 0 R /F16 554 0 R /F11 750 0 R >> -/ProcSet [ /PDF /Text ] +/D [1330 0 R /XYZ 150.705 319.634 null] >> -% 1337 0 obj +% 1339 0 obj << -/Type /Page -/Contents 1338 0 R -/Resources 1336 0 R -/MediaBox [0 0 595.276 841.89] -/Parent 1320 0 R -/Annots [ 1334 0 R 1335 0 R ] +/D [1330 0 R /XYZ 150.705 287.753 null] >> endstream endobj -1343 0 obj +1347 0 obj << -/Length 2255 +/Length 6641 >> stream 0 g 0 G 0 g 0 G -0 g 0 G BT -/F8 9.9626 Tf 162.881 706.129 Td [(1.)]TJ +/F16 11.9552 Tf 99.895 706.129 Td [(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 [(spasb)-375(|)-375(Sparse)-375(matrix)-375(assem)31(bly)-375(routine)]TJ 0 g 0 G - [-500(On)-406(en)28(try)-406(to)-406(this)-406(routine)-406(the)-406(descriptor)-406(m)28(ust)-406(b)-28(e)-406(in)-406(the)-406(assem)27(b)1(led)-406(s)-1(tate,)]TJ 12.73 -11.955 Td [(i.e.)]TJ/F30 9.9626 Tf 17.158 0 Td [(psb_cdasb)]TJ/F8 9.9626 Tf 50.394 0 Td [(m)28(ust)-334(already)-333(ha)28(v)28(e)-334(b)-27(een)-334(called.)]TJ 0 g 0 G - -80.282 -19.926 Td [(2.)]TJ +/F30 9.9626 Tf -25.091 -18.389 Td [(call)-525(psb_spasb\050a,)-525(desc_a,)-525(info,)-525(afmt,)-525(upd,)-525(dupl,)-525(mold\051)]TJ 0 g 0 G - [-500(The)-333(sparse)-334(matrix)-333(ma)28(y)-334(b)-27(e)-334(in)-333(either)-333(the)-334(build)-333(or)-333(up)-28(date)-333(state;)]TJ +/F27 9.9626 Tf 0 -21.202 Td [(T)32(yp)-32(e:)]TJ 0 g 0 G - 0 -19.925 Td [(3.)]TJ +/F8 9.9626 Tf 33.797 0 Td [(Sync)28(hronous.)]TJ 0 g 0 G - [-500(Duplicate)-250(en)28(tries)-250(are)-249(dete)-1(cted)-249(and)-250(handled)-250(in)-249(b)-28(oth)-250(build)-249(and)-250(up)-28(date)-249(state,)]TJ 12.73 -11.955 Td [(with)-282(the)-283(exception)-282(of)-282(the)-283(error)-282(action)-282(that)-283(is)-282(only)-282(tak)28(en)-283(in)-282(the)-282(build)-283(state,)]TJ 0 -11.955 Td [(i.e.)-444(on)-334(the)-333(\014rst)-333(asse)-1(m)28(bly;)]TJ +/F27 9.9626 Tf -33.797 -19.639 Td [(On)-383(En)32(try)]TJ 0 g 0 G - -12.73 -19.925 Td [(4.)]TJ 0 g 0 G - [-500(If)-224(the)-224(up)-28(date)-223(c)27(hoice)-224(is)]TJ/F30 9.9626 Tf 107.516 0 Td [(psb_upd_perm_)]TJ/F8 9.9626 Tf 67.994 0 Td [(,)-246(then)-224(subsequen)28(t)-224(calls)-224(to)]TJ/F30 9.9626 Tf 108.952 0 Td [(psb_spins)]TJ/F8 9.9626 Tf -271.732 -11.956 Td [(to)-246(up)-28(date)-246(the)-246(matrix)-246(m)28(ust)-246(b)-28(e)-246(arranged)-246(in)-246(suc)28(h)-246(a)-246(w)28(a)27(y)-246(as)-246(to)-246(pro)-27(duce)-246(exactly)]TJ 0 -11.955 Td [(the)-228(same)-229(sequence)-228(of)-228(co)-28(e\016cien)27(t)-228(v)56(alues)-229(as)-228(encoun)28(tered)-228(at)-229(the)-228(\014rst)-228(assem)27(b)1(ly;)]TJ + 0 -19.638 Td [(desc)]TJ +ET +q +1 0 0 1 121.81 627.46 cm +[]0 d 0 J 0.398 w 0 0 m 3.437 0 l S +Q +BT +/F27 9.9626 Tf 125.247 627.261 Td [(a)]TJ +0 g 0 G +/F8 9.9626 Tf 10.551 0 Td [(the)-333(comm)27(unication)-333(descriptor.)]TJ -10.996 -11.956 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 27.951 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf 23.073 0 Td [(.)]TJ -51.024 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.183 0 Td [(required)]TJ/F8 9.9626 Tf 41.899 0 Td [(.)]TJ -67.082 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(structured)-333(data)-333(of)-334(t)28(yp)-28(e)]TJ +0 0 1 rg 0 0 1 RG +/F30 9.9626 Tf 170.915 0 Td [(psb)]TJ +ET +q +1 0 0 1 312.036 579.639 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +Q +BT +/F30 9.9626 Tf 315.174 579.44 Td [(desc)]TJ +ET +q +1 0 0 1 336.723 579.639 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +Q +BT +/F30 9.9626 Tf 339.861 579.44 Td [(type)]TJ +0 g 0 G +/F8 9.9626 Tf 20.921 0 Td [(.)]TJ +0 g 0 G +/F27 9.9626 Tf -260.887 -19.639 Td [(afm)32(t)]TJ +0 g 0 G +/F8 9.9626 Tf 27.737 0 Td [(the)-333(storage)-334(format)-333(for)-333(the)-334(sparse)-333(matrix.)]TJ -2.83 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf 23.073 0 Td [(.)]TJ -55.452 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(optional)]TJ/F8 9.9626 Tf 40.577 0 Td [(.)]TJ -70.188 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(arra)28(y)-333(of)-334(c)28(haracters.)-444(Defalt:)-445('CSR'.)]TJ +0 g 0 G +/F27 9.9626 Tf -24.907 -19.639 Td [(up)-32(d)]TJ +0 g 0 G +/F8 9.9626 Tf 24.395 0 Td [(Pro)28(vide)-333(for)-334(up)-27(dates)-334(to)-333(the)-333(matrix)-334(co)-28(e\016cien)28(ts.)]TJ 0.512 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(global)]TJ/F8 9.9626 Tf 29.756 0 Td [(.)]TJ -62.135 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(optional)]TJ/F8 9.9626 Tf 40.577 0 Td [(.)]TJ -70.188 -11.956 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(in)28(teger,)-333(p)-28(ossible)-333(v)55(alues:)]TJ/F30 9.9626 Tf 164.633 0 Td [(psb_upd_srch_)]TJ/F8 9.9626 Tf 67.994 0 Td [(,)]TJ/F30 9.9626 Tf 6.089 0 Td [(psb_upd_perm_)]TJ +0 g 0 G +/F27 9.9626 Tf -263.623 -19.639 Td [(dupl)]TJ +0 g 0 G +/F8 9.9626 Tf 27.259 0 Td [(Ho)28(w)-334(to)-333(handle)-333(duplicate)-333(co)-28(e\016cien)27(ts.)]TJ -2.352 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(global)]TJ/F8 9.9626 Tf 29.756 0 Td [(.)]TJ -62.135 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(optional)]TJ/F8 9.9626 Tf 40.577 0 Td [(.)]TJ -70.188 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-308(as:)-432(in)27(teger,)-313(p)-28(ossible)-309(v)56(alues:)]TJ/F30 9.9626 Tf 163.696 0 Td [(psb_dupl_ovwrt_)]TJ/F8 9.9626 Tf 78.456 0 Td [(,)]TJ/F30 9.9626 Tf 5.891 0 Td [(psb_dupl_add_)]TJ/F8 9.9626 Tf 67.994 0 Td [(,)]TJ/F30 9.9626 Tf -316.037 -11.955 Td [(psb_dupl_err_)]TJ/F8 9.9626 Tf 67.994 0 Td [(.)]TJ +0 g 0 G +/F27 9.9626 Tf -92.901 -19.639 Td [(mold)]TJ +0 g 0 G +/F8 9.9626 Tf 29.805 0 Td [(The)-333(desired)-334(dynamic)-333(t)28(yp)-28(e)-333(for)-334(the)-333(in)28(ternal)-333(matrix)-334(storage.)]TJ -4.898 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf 23.073 0 Td [(.)]TJ -55.452 -11.956 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(optional)]TJ/F8 9.9626 Tf 40.577 0 Td [(.)]TJ -70.188 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(ob)-55(ject)-334(of)-333(a)-333(class)-334(deriv)28(ed)-333(from)]TJ/F30 9.9626 Tf 203.349 0 Td [(psb)]TJ +ET +q +1 0 0 1 344.47 297.847 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +Q +BT +/F30 9.9626 Tf 347.608 297.647 Td [(T)]TJ +ET +q +1 0 0 1 353.466 297.847 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +Q +BT +/F30 9.9626 Tf 356.604 297.647 Td [(base)]TJ +ET +q +1 0 0 1 378.153 297.847 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +Q +BT +/F30 9.9626 Tf 381.291 297.647 Td [(sparse)]TJ +ET +q +1 0 0 1 413.301 297.847 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +Q +BT +/F30 9.9626 Tf 416.439 297.647 Td [(mat)]TJ/F8 9.9626 Tf 15.691 0 Td [(.)]TJ +0 g 0 G +/F27 9.9626 Tf -332.235 -21.201 Td [(On)-383(Return)]TJ +0 g 0 G +0 g 0 G + 0 -19.639 Td [(a)]TJ +0 g 0 G +/F8 9.9626 Tf 10.551 0 Td [(the)-333(matrix)-334(to)-333(b)-28(e)-333(assem)28(bled.)]TJ 14.356 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 27.951 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -27.951 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.183 0 Td [(required)]TJ/F8 9.9626 Tf -25.183 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(inout)]TJ/F8 9.9626 Tf 26.096 0 Td [(.)]TJ -59.582 -11.956 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(structured)-333(data)-333(of)-334(t)28(yp)-28(e)]TJ +0 0 1 rg 0 0 1 RG +/F30 9.9626 Tf 170.915 0 Td [(psb)]TJ +ET +q +1 0 0 1 312.036 209.186 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +Q +BT +/F30 9.9626 Tf 315.174 208.986 Td [(Tspmat)]TJ +ET +q +1 0 0 1 347.183 209.186 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +Q +BT +/F30 9.9626 Tf 350.322 208.986 Td [(type)]TJ +0 g 0 G +/F8 9.9626 Tf 20.921 0 Td [(.)]TJ +0 g 0 G +/F27 9.9626 Tf -271.348 -19.638 Td [(info)]TJ +0 g 0 G +/F8 9.9626 Tf 23.758 0 Td [(Error)-333(co)-28(de.)]TJ 1.149 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.956 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(out)]TJ/F8 9.9626 Tf 16.549 0 Td [(.)]TJ -50.035 -11.955 Td [(An)-333(in)28(tege)-1(r)-333(v)56(alue;)-334(0)-333(means)-333(no)-334(error)-333(has)-333(b)-28(een)-333(detecte)-1(d)1(.)]TJ/F16 11.9552 Tf -24.907 -21.201 Td [(Notes)]TJ +0 g 0 G +/F8 9.9626 Tf 166.875 -29.888 Td [(75)]TJ +0 g 0 G +ET + +endstream +endobj +1351 0 obj +<< +/Length 2255 +>> +stream +0 g 0 G +0 g 0 G +0 g 0 G +BT +/F8 9.9626 Tf 162.881 706.129 Td [(1.)]TJ +0 g 0 G + [-500(On)-406(en)28(try)-406(to)-406(this)-406(routine)-406(the)-406(descriptor)-406(m)28(ust)-406(b)-28(e)-406(in)-406(the)-406(assem)27(b)1(led)-406(s)-1(tate,)]TJ 12.73 -11.955 Td [(i.e.)]TJ/F30 9.9626 Tf 17.158 0 Td [(psb_cdasb)]TJ/F8 9.9626 Tf 50.394 0 Td [(m)28(ust)-334(already)-333(ha)28(v)28(e)-334(b)-27(een)-334(called.)]TJ +0 g 0 G + -80.282 -19.926 Td [(2.)]TJ +0 g 0 G + [-500(The)-333(sparse)-334(matrix)-333(ma)28(y)-334(b)-27(e)-334(in)-333(either)-333(the)-334(build)-333(or)-333(up)-28(date)-333(state;)]TJ +0 g 0 G + 0 -19.925 Td [(3.)]TJ +0 g 0 G + [-500(Duplicate)-250(en)28(tries)-250(are)-249(dete)-1(cted)-249(and)-250(handled)-250(in)-249(b)-28(oth)-250(build)-249(and)-250(up)-28(date)-249(state,)]TJ 12.73 -11.955 Td [(with)-282(the)-283(exception)-282(of)-282(the)-283(error)-282(action)-282(that)-283(is)-282(only)-282(tak)28(en)-283(in)-282(the)-282(build)-283(state,)]TJ 0 -11.955 Td [(i.e.)-444(on)-334(the)-333(\014rst)-333(asse)-1(m)28(bly;)]TJ +0 g 0 G + -12.73 -19.925 Td [(4.)]TJ +0 g 0 G + [-500(If)-224(the)-224(up)-28(date)-223(c)27(hoice)-224(is)]TJ/F30 9.9626 Tf 107.516 0 Td [(psb_upd_perm_)]TJ/F8 9.9626 Tf 67.994 0 Td [(,)-246(then)-224(subsequen)28(t)-224(calls)-224(to)]TJ/F30 9.9626 Tf 108.952 0 Td [(psb_spins)]TJ/F8 9.9626 Tf -271.732 -11.956 Td [(to)-246(up)-28(date)-246(the)-246(matrix)-246(m)28(ust)-246(b)-28(e)-246(arranged)-246(in)-246(suc)28(h)-246(a)-246(w)28(a)27(y)-246(as)-246(to)-246(pro)-27(duce)-246(exactly)]TJ 0 -11.955 Td [(the)-228(same)-229(sequence)-228(of)-228(co)-28(e\016cien)27(t)-228(v)56(alues)-229(as)-228(encoun)28(tered)-228(at)-229(the)-228(\014rst)-228(assem)27(b)1(ly;)]TJ 0 g 0 G -12.73 -19.925 Td [(5.)]TJ 0 g 0 G @@ -15500,7 +15808,7 @@ ET endstream endobj -1355 0 obj +1363 0 obj << /Length 3086 >> @@ -15591,7 +15899,7 @@ ET endstream endobj -1361 0 obj +1369 0 obj << /Length 3976 >> @@ -15690,7 +15998,7 @@ ET endstream endobj -1368 0 obj +1376 0 obj << /Length 5107 >> @@ -15796,7 +16104,7 @@ ET endstream endobj -1375 0 obj +1383 0 obj << /Length 6841 >> @@ -15910,7 +16218,7 @@ ET endstream endobj -1379 0 obj +1387 0 obj << /Length 1111 >> @@ -15937,7 +16245,7 @@ ET endstream endobj -1388 0 obj +1396 0 obj << /Length 5215 >> @@ -16092,7 +16400,7 @@ ET endstream endobj -1394 0 obj +1402 0 obj << /Length 3378 >> @@ -16190,7 +16498,7 @@ ET endstream endobj -1398 0 obj +1406 0 obj << /Length 3438 >> @@ -16242,7 +16550,7 @@ ET endstream endobj -1403 0 obj +1411 0 obj << /Length 6540 >> @@ -16345,7 +16653,7 @@ ET endstream endobj -1408 0 obj +1416 0 obj << /Length 705 >> @@ -16368,7 +16676,7 @@ ET endstream endobj -1415 0 obj +1423 0 obj << /Length 5721 >> @@ -16467,7 +16775,7 @@ ET endstream endobj -1420 0 obj +1428 0 obj << /Length 3279 >> @@ -16551,7 +16859,7 @@ ET endstream endobj -1426 0 obj +1434 0 obj << /Length 4979 >> @@ -16643,7 +16951,7 @@ ET endstream endobj -1432 0 obj +1440 0 obj << /Length 3247 >> @@ -16727,7 +17035,7 @@ ET endstream endobj -1438 0 obj +1446 0 obj << /Length 4963 >> @@ -16819,25 +17127,47 @@ ET endstream endobj -1340 0 obj +1342 0 obj << /Type /ObjStm /N 100 -/First 971 -/Length 10784 +/First 974 +/Length 10880 >> stream -1334 0 1335 146 1339 291 320 349 1336 406 1342 512 1344 630 1345 689 1346 748 1347 807 -1348 866 1349 925 1350 984 1341 1042 1354 1122 1351 1270 1352 1414 1356 1561 324 1619 1353 1676 -1360 1782 1357 1930 1358 2074 1362 2220 328 2279 1363 2337 1359 2396 1367 2502 1364 2650 1365 2795 -1369 2939 332 2997 1366 3054 1374 3173 1371 3321 1372 3467 1376 3611 336 3670 1373 3728 1378 3847 -1380 3965 1381 4023 1382 4081 1377 4139 1387 4232 1383 4389 1384 4535 1385 4679 1389 4822 340 4881 -1386 4939 1393 5058 1390 5206 1391 5349 1395 5495 344 5553 1392 5610 1397 5716 1399 5834 348 5893 -1396 5951 1402 6083 1400 6222 1404 6368 352 6426 1401 6483 1407 6602 1409 6720 1410 6779 1411 6838 -1406 6897 1414 6977 1412 7116 1416 7263 356 7321 1413 7378 1419 7497 1417 7636 1421 7782 360 7841 -1422 7899 1418 7958 1425 8077 1423 8216 1427 8363 364 8421 1428 8478 1424 8536 1431 8655 1429 8794 -1433 8940 368 8999 1434 9057 1430 9116 1437 9235 1435 9374 1439 9521 372 9579 1440 9636 1436 9694 -% 1334 0 obj +1340 0 1341 59 1329 118 1346 237 1343 385 1344 531 1348 676 320 734 1345 791 1350 897 +1352 1015 1353 1074 1354 1133 1355 1192 1356 1251 1357 1310 1358 1369 1349 1427 1362 1507 1359 1655 +1360 1799 1364 1946 324 2004 1361 2061 1368 2167 1365 2315 1366 2459 1370 2605 328 2664 1371 2722 +1367 2781 1375 2887 1372 3035 1373 3180 1377 3324 332 3382 1374 3439 1382 3558 1379 3706 1380 3852 +1384 3996 336 4055 1381 4113 1386 4232 1388 4350 1389 4408 1390 4466 1385 4524 1395 4617 1391 4774 +1392 4920 1393 5064 1397 5207 340 5266 1394 5324 1401 5443 1398 5591 1399 5734 1403 5880 344 5938 +1400 5995 1405 6101 1407 6219 348 6278 1404 6336 1410 6468 1408 6607 1412 6753 352 6811 1409 6868 +1415 6987 1417 7105 1418 7164 1419 7223 1414 7282 1422 7362 1420 7501 1424 7648 356 7706 1421 7763 +1427 7882 1425 8021 1429 8167 360 8226 1430 8284 1426 8343 1433 8462 1431 8601 1435 8748 364 8806 +1436 8863 1432 8921 1439 9040 1437 9179 1441 9325 368 9384 1442 9442 1438 9501 1445 9620 1443 9759 +% 1340 0 obj +<< +/D [1330 0 R /XYZ 150.705 255.873 null] +>> +% 1341 0 obj +<< +/D [1330 0 R /XYZ 150.705 212.037 null] +>> +% 1329 0 obj +<< +/Font << /F27 556 0 R /F8 557 0 R /F30 764 0 R /F16 554 0 R /F11 750 0 R >> +/ProcSet [ /PDF /Text ] +>> +% 1346 0 obj +<< +/Type /Page +/Contents 1347 0 R +/Resources 1345 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1328 0 R +/Annots [ 1343 0 R 1344 0 R ] +>> +% 1343 0 obj << /Type /Annot /Subtype /Link @@ -16845,7 +17175,7 @@ stream /Rect [294.721 576.23 361.779 587.355] /A << /S /GoTo /D (descdata) >> >> -% 1335 0 obj +% 1344 0 obj << /Type /Annot /Subtype /Link @@ -16853,70 +17183,70 @@ stream /Rect [294.721 205.776 372.239 216.901] /A << /S /GoTo /D (spdata) >> >> -% 1339 0 obj +% 1348 0 obj << -/D [1337 0 R /XYZ 98.895 753.953 null] +/D [1346 0 R /XYZ 98.895 753.953 null] >> % 320 0 obj << -/D [1337 0 R /XYZ 99.895 720.077 null] +/D [1346 0 R /XYZ 99.895 720.077 null] >> -% 1336 0 obj +% 1345 0 obj << /Font << /F16 554 0 R /F30 764 0 R /F27 556 0 R /F8 557 0 R >> /ProcSet [ /PDF /Text ] >> -% 1342 0 obj +% 1350 0 obj << /Type /Page -/Contents 1343 0 R -/Resources 1341 0 R +/Contents 1351 0 R +/Resources 1349 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1320 0 R +/Parent 1328 0 R >> -% 1344 0 obj +% 1352 0 obj << -/D [1342 0 R /XYZ 149.705 753.953 null] +/D [1350 0 R /XYZ 149.705 753.953 null] >> -% 1345 0 obj +% 1353 0 obj << -/D [1342 0 R /XYZ 150.705 716.092 null] +/D [1350 0 R /XYZ 150.705 716.092 null] >> -% 1346 0 obj +% 1354 0 obj << -/D [1342 0 R /XYZ 150.705 687.975 null] +/D [1350 0 R /XYZ 150.705 687.975 null] >> -% 1347 0 obj +% 1355 0 obj << -/D [1342 0 R /XYZ 150.705 668.326 null] +/D [1350 0 R /XYZ 150.705 668.326 null] >> -% 1348 0 obj +% 1356 0 obj << -/D [1342 0 R /XYZ 150.705 624.491 null] +/D [1350 0 R /XYZ 150.705 624.491 null] >> -% 1349 0 obj +% 1357 0 obj << -/D [1342 0 R /XYZ 150.705 580.655 null] +/D [1350 0 R /XYZ 150.705 580.655 null] >> -% 1350 0 obj +% 1358 0 obj << -/D [1342 0 R /XYZ 150.705 560.73 null] +/D [1350 0 R /XYZ 150.705 560.73 null] >> -% 1341 0 obj +% 1349 0 obj << /Font << /F8 557 0 R /F30 764 0 R >> /ProcSet [ /PDF /Text ] >> -% 1354 0 obj +% 1362 0 obj << /Type /Page -/Contents 1355 0 R -/Resources 1353 0 R +/Contents 1363 0 R +/Resources 1361 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1320 0 R -/Annots [ 1351 0 R 1352 0 R ] +/Parent 1328 0 R +/Annots [ 1359 0 R 1360 0 R ] >> -% 1351 0 obj +% 1359 0 obj << /Type /Annot /Subtype /Link @@ -16924,7 +17254,7 @@ stream /Rect [294.721 574.94 372.239 586.065] /A << /S /GoTo /D (spdata) >> >> -% 1352 0 obj +% 1360 0 obj << /Type /Annot /Subtype /Link @@ -16932,29 +17262,29 @@ stream /Rect [294.721 507.194 361.779 518.319] /A << /S /GoTo /D (descdata) >> >> -% 1356 0 obj +% 1364 0 obj << -/D [1354 0 R /XYZ 98.895 753.953 null] +/D [1362 0 R /XYZ 98.895 753.953 null] >> % 324 0 obj << -/D [1354 0 R /XYZ 99.895 720.077 null] +/D [1362 0 R /XYZ 99.895 720.077 null] >> -% 1353 0 obj +% 1361 0 obj << /Font << /F16 554 0 R /F30 764 0 R /F27 556 0 R /F8 557 0 R >> /ProcSet [ /PDF /Text ] >> -% 1360 0 obj +% 1368 0 obj << /Type /Page -/Contents 1361 0 R -/Resources 1359 0 R +/Contents 1369 0 R +/Resources 1367 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1320 0 R -/Annots [ 1357 0 R 1358 0 R ] +/Parent 1328 0 R +/Annots [ 1365 0 R 1366 0 R ] >> -% 1357 0 obj +% 1365 0 obj << /Type /Annot /Subtype /Link @@ -16962,7 +17292,7 @@ stream /Rect [345.53 560.993 423.049 572.118] /A << /S /GoTo /D (spdata) >> >> -% 1358 0 obj +% 1366 0 obj << /Type /Annot /Subtype /Link @@ -16970,33 +17300,33 @@ stream /Rect [345.53 493.247 412.588 504.372] /A << /S /GoTo /D (descdata) >> >> -% 1362 0 obj +% 1370 0 obj << -/D [1360 0 R /XYZ 149.705 753.953 null] +/D [1368 0 R /XYZ 149.705 753.953 null] >> % 328 0 obj << -/D [1360 0 R /XYZ 150.705 720.077 null] +/D [1368 0 R /XYZ 150.705 720.077 null] >> -% 1363 0 obj +% 1371 0 obj << -/D [1360 0 R /XYZ 150.705 313.144 null] +/D [1368 0 R /XYZ 150.705 313.144 null] >> -% 1359 0 obj +% 1367 0 obj << /Font << /F16 554 0 R /F30 764 0 R /F27 556 0 R /F8 557 0 R >> /ProcSet [ /PDF /Text ] >> -% 1367 0 obj +% 1375 0 obj << /Type /Page -/Contents 1368 0 R -/Resources 1366 0 R +/Contents 1376 0 R +/Resources 1374 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1370 0 R -/Annots [ 1364 0 R 1365 0 R ] +/Parent 1378 0 R +/Annots [ 1372 0 R 1373 0 R ] >> -% 1364 0 obj +% 1372 0 obj << /Type /Annot /Subtype /Link @@ -17004,7 +17334,7 @@ stream /Rect [261.152 574.94 328.21 586.065] /A << /S /GoTo /D (descdata) >> >> -% 1365 0 obj +% 1373 0 obj << /Type /Annot /Subtype /Link @@ -17012,29 +17342,29 @@ stream /Rect [213.774 290.009 289.828 301.134] /A << /S /GoTo /D (vdata) >> >> -% 1369 0 obj +% 1377 0 obj << -/D [1367 0 R /XYZ 98.895 753.953 null] +/D [1375 0 R /XYZ 98.895 753.953 null] >> % 332 0 obj << -/D [1367 0 R /XYZ 99.895 720.077 null] +/D [1375 0 R /XYZ 99.895 720.077 null] >> -% 1366 0 obj +% 1374 0 obj << /Font << /F16 554 0 R /F30 764 0 R /F27 556 0 R /F8 557 0 R /F11 750 0 R >> /ProcSet [ /PDF /Text ] >> -% 1374 0 obj +% 1382 0 obj << /Type /Page -/Contents 1375 0 R -/Resources 1373 0 R +/Contents 1383 0 R +/Resources 1381 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1370 0 R -/Annots [ 1371 0 R 1372 0 R ] +/Parent 1378 0 R +/Annots [ 1379 0 R 1380 0 R ] >> -% 1371 0 obj +% 1379 0 obj << /Type /Annot /Subtype /Link @@ -17042,7 +17372,7 @@ stream /Rect [345.53 363.459 412.588 374.584] /A << /S /GoTo /D (descdata) >> >> -% 1372 0 obj +% 1380 0 obj << /Type /Annot /Subtype /Link @@ -17050,54 +17380,54 @@ stream /Rect [416.591 141.026 492.645 152.151] /A << /S /GoTo /D (vdata) >> >> -% 1376 0 obj +% 1384 0 obj << -/D [1374 0 R /XYZ 149.705 753.953 null] +/D [1382 0 R /XYZ 149.705 753.953 null] >> % 336 0 obj << -/D [1374 0 R /XYZ 150.705 720.077 null] +/D [1382 0 R /XYZ 150.705 720.077 null] >> -% 1373 0 obj +% 1381 0 obj << /Font << /F16 554 0 R /F30 764 0 R /F27 556 0 R /F8 557 0 R /F11 750 0 R >> /ProcSet [ /PDF /Text ] >> -% 1378 0 obj +% 1386 0 obj << /Type /Page -/Contents 1379 0 R -/Resources 1377 0 R +/Contents 1387 0 R +/Resources 1385 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1370 0 R +/Parent 1378 0 R >> -% 1380 0 obj +% 1388 0 obj << -/D [1378 0 R /XYZ 98.895 753.953 null] +/D [1386 0 R /XYZ 98.895 753.953 null] >> -% 1381 0 obj +% 1389 0 obj << -/D [1378 0 R /XYZ 99.895 632.405 null] +/D [1386 0 R /XYZ 99.895 632.405 null] >> -% 1382 0 obj +% 1390 0 obj << -/D [1378 0 R /XYZ 99.895 609.989 null] +/D [1386 0 R /XYZ 99.895 609.989 null] >> -% 1377 0 obj +% 1385 0 obj << /Font << /F27 556 0 R /F8 557 0 R /F16 554 0 R >> /ProcSet [ /PDF /Text ] >> -% 1387 0 obj +% 1395 0 obj << /Type /Page -/Contents 1388 0 R -/Resources 1386 0 R +/Contents 1396 0 R +/Resources 1394 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1370 0 R -/Annots [ 1383 0 R 1384 0 R 1385 0 R ] +/Parent 1378 0 R +/Annots [ 1391 0 R 1392 0 R 1393 0 R ] >> -% 1383 0 obj +% 1391 0 obj << /Type /Annot /Subtype /Link @@ -17105,7 +17435,7 @@ stream /Rect [311.962 574.94 379.019 586.065] /A << /S /GoTo /D (descdata) >> >> -% 1384 0 obj +% 1392 0 obj << /Type /Annot /Subtype /Link @@ -17113,7 +17443,7 @@ stream /Rect [320.727 483.284 396.781 494.409] /A << /S /GoTo /D (vdata) >> >> -% 1385 0 obj +% 1393 0 obj << /Type /Annot /Subtype /Link @@ -17121,29 +17451,29 @@ stream /Rect [238.542 381.665 314.596 392.79] /A << /S /GoTo /D (vdata) >> >> -% 1389 0 obj +% 1397 0 obj << -/D [1387 0 R /XYZ 149.705 753.953 null] +/D [1395 0 R /XYZ 149.705 753.953 null] >> % 340 0 obj << -/D [1387 0 R /XYZ 150.705 720.077 null] +/D [1395 0 R /XYZ 150.705 720.077 null] >> -% 1386 0 obj +% 1394 0 obj << /Font << /F16 554 0 R /F30 764 0 R /F27 556 0 R /F8 557 0 R /F11 750 0 R >> /ProcSet [ /PDF /Text ] >> -% 1393 0 obj +% 1401 0 obj << /Type /Page -/Contents 1394 0 R -/Resources 1392 0 R +/Contents 1402 0 R +/Resources 1400 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1370 0 R -/Annots [ 1390 0 R 1391 0 R ] +/Parent 1378 0 R +/Annots [ 1398 0 R 1399 0 R ] >> -% 1390 0 obj +% 1398 0 obj << /Type /Annot /Subtype /Link @@ -17151,7 +17481,7 @@ stream /Rect [187.733 562.985 263.787 574.11] /A << /S /GoTo /D (vdata) >> >> -% 1391 0 obj +% 1399 0 obj << /Type /Annot /Subtype /Link @@ -17159,50 +17489,50 @@ stream /Rect [261.152 483.284 328.21 494.409] /A << /S /GoTo /D (descdata) >> >> -% 1395 0 obj +% 1403 0 obj << -/D [1393 0 R /XYZ 98.895 753.953 null] +/D [1401 0 R /XYZ 98.895 753.953 null] >> % 344 0 obj << -/D [1393 0 R /XYZ 99.895 720.077 null] +/D [1401 0 R /XYZ 99.895 720.077 null] >> -% 1392 0 obj +% 1400 0 obj << /Font << /F16 554 0 R /F30 764 0 R /F27 556 0 R /F8 557 0 R >> /ProcSet [ /PDF /Text ] >> -% 1397 0 obj +% 1405 0 obj << /Type /Page -/Contents 1398 0 R -/Resources 1396 0 R +/Contents 1406 0 R +/Resources 1404 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1370 0 R +/Parent 1378 0 R >> -% 1399 0 obj +% 1407 0 obj << -/D [1397 0 R /XYZ 149.705 753.953 null] +/D [1405 0 R /XYZ 149.705 753.953 null] >> % 348 0 obj << -/D [1397 0 R /XYZ 150.705 720.077 null] +/D [1405 0 R /XYZ 150.705 720.077 null] >> -% 1396 0 obj +% 1404 0 obj << /Font << /F16 554 0 R /F30 764 0 R /F27 556 0 R /F8 557 0 R /F11 750 0 R /F10 766 0 R >> /ProcSet [ /PDF /Text ] >> -% 1402 0 obj +% 1410 0 obj << /Type /Page -/Contents 1403 0 R -/Resources 1401 0 R +/Contents 1411 0 R +/Resources 1409 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1405 0 R -/Annots [ 1400 0 R ] +/Parent 1413 0 R +/Annots [ 1408 0 R ] >> -% 1400 0 obj +% 1408 0 obj << /Type /Annot /Subtype /Link @@ -17210,54 +17540,54 @@ stream /Rect [294.721 484.86 361.779 495.985] /A << /S /GoTo /D (descdata) >> >> -% 1404 0 obj +% 1412 0 obj << -/D [1402 0 R /XYZ 98.895 753.953 null] +/D [1410 0 R /XYZ 98.895 753.953 null] >> % 352 0 obj << -/D [1402 0 R /XYZ 99.895 720.077 null] +/D [1410 0 R /XYZ 99.895 720.077 null] >> -% 1401 0 obj +% 1409 0 obj << /Font << /F16 554 0 R /F30 764 0 R /F27 556 0 R /F8 557 0 R /F11 750 0 R >> /ProcSet [ /PDF /Text ] >> -% 1407 0 obj +% 1415 0 obj << /Type /Page -/Contents 1408 0 R -/Resources 1406 0 R +/Contents 1416 0 R +/Resources 1414 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1405 0 R +/Parent 1413 0 R >> -% 1409 0 obj +% 1417 0 obj << -/D [1407 0 R /XYZ 149.705 753.953 null] +/D [1415 0 R /XYZ 149.705 753.953 null] >> -% 1410 0 obj +% 1418 0 obj << -/D [1407 0 R /XYZ 150.705 716.092 null] +/D [1415 0 R /XYZ 150.705 716.092 null] >> -% 1411 0 obj +% 1419 0 obj << -/D [1407 0 R /XYZ 150.705 688.251 null] +/D [1415 0 R /XYZ 150.705 688.251 null] >> -% 1406 0 obj +% 1414 0 obj << /Font << /F8 557 0 R /F30 764 0 R >> /ProcSet [ /PDF /Text ] >> -% 1414 0 obj +% 1422 0 obj << /Type /Page -/Contents 1415 0 R -/Resources 1413 0 R +/Contents 1423 0 R +/Resources 1421 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1405 0 R -/Annots [ 1412 0 R ] +/Parent 1413 0 R +/Annots [ 1420 0 R ] >> -% 1412 0 obj +% 1420 0 obj << /Type /Annot /Subtype /Link @@ -17265,29 +17595,29 @@ stream /Rect [294.721 483.284 361.779 494.409] /A << /S /GoTo /D (descdata) >> >> -% 1416 0 obj +% 1424 0 obj << -/D [1414 0 R /XYZ 98.895 753.953 null] +/D [1422 0 R /XYZ 98.895 753.953 null] >> % 356 0 obj << -/D [1414 0 R /XYZ 99.895 720.077 null] +/D [1422 0 R /XYZ 99.895 720.077 null] >> -% 1413 0 obj +% 1421 0 obj << /Font << /F16 554 0 R /F30 764 0 R /F27 556 0 R /F8 557 0 R /F11 750 0 R >> /ProcSet [ /PDF /Text ] >> -% 1419 0 obj +% 1427 0 obj << /Type /Page -/Contents 1420 0 R -/Resources 1418 0 R +/Contents 1428 0 R +/Resources 1426 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1405 0 R -/Annots [ 1417 0 R ] +/Parent 1413 0 R +/Annots [ 1425 0 R ] >> -% 1417 0 obj +% 1425 0 obj << /Type /Annot /Subtype /Link @@ -17295,33 +17625,33 @@ stream /Rect [345.53 495.239 412.588 506.364] /A << /S /GoTo /D (descdata) >> >> -% 1421 0 obj +% 1429 0 obj << -/D [1419 0 R /XYZ 149.705 753.953 null] +/D [1427 0 R /XYZ 149.705 753.953 null] >> % 360 0 obj << -/D [1419 0 R /XYZ 150.705 720.077 null] +/D [1427 0 R /XYZ 150.705 720.077 null] >> -% 1422 0 obj +% 1430 0 obj << -/D [1419 0 R /XYZ 150.705 382.883 null] +/D [1427 0 R /XYZ 150.705 382.883 null] >> -% 1418 0 obj +% 1426 0 obj << /Font << /F16 554 0 R /F30 764 0 R /F27 556 0 R /F8 557 0 R /F11 750 0 R >> /ProcSet [ /PDF /Text ] >> -% 1425 0 obj +% 1433 0 obj << /Type /Page -/Contents 1426 0 R -/Resources 1424 0 R +/Contents 1434 0 R +/Resources 1432 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1405 0 R -/Annots [ 1423 0 R ] +/Parent 1413 0 R +/Annots [ 1431 0 R ] >> -% 1423 0 obj +% 1431 0 obj << /Type /Annot /Subtype /Link @@ -17329,33 +17659,33 @@ stream /Rect [294.721 495.239 361.779 506.364] /A << /S /GoTo /D (descdata) >> >> -% 1427 0 obj +% 1435 0 obj << -/D [1425 0 R /XYZ 98.895 753.953 null] +/D [1433 0 R /XYZ 98.895 753.953 null] >> % 364 0 obj << -/D [1425 0 R /XYZ 99.895 720.077 null] +/D [1433 0 R /XYZ 99.895 720.077 null] >> -% 1428 0 obj +% 1436 0 obj << -/D [1425 0 R /XYZ 99.895 259.346 null] +/D [1433 0 R /XYZ 99.895 259.346 null] >> -% 1424 0 obj +% 1432 0 obj << /Font << /F16 554 0 R /F30 764 0 R /F27 556 0 R /F8 557 0 R /F11 750 0 R >> /ProcSet [ /PDF /Text ] >> -% 1431 0 obj +% 1439 0 obj << /Type /Page -/Contents 1432 0 R -/Resources 1430 0 R +/Contents 1440 0 R +/Resources 1438 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1405 0 R -/Annots [ 1429 0 R ] +/Parent 1413 0 R +/Annots [ 1437 0 R ] >> -% 1429 0 obj +% 1437 0 obj << /Type /Annot /Subtype /Link @@ -17363,33 +17693,33 @@ stream /Rect [345.53 495.239 412.588 506.364] /A << /S /GoTo /D (descdata) >> >> -% 1433 0 obj +% 1441 0 obj << -/D [1431 0 R /XYZ 149.705 753.953 null] +/D [1439 0 R /XYZ 149.705 753.953 null] >> % 368 0 obj << -/D [1431 0 R /XYZ 150.705 720.077 null] +/D [1439 0 R /XYZ 150.705 720.077 null] >> -% 1434 0 obj +% 1442 0 obj << -/D [1431 0 R /XYZ 150.705 382.883 null] +/D [1439 0 R /XYZ 150.705 382.883 null] >> -% 1430 0 obj +% 1438 0 obj << /Font << /F16 554 0 R /F30 764 0 R /F27 556 0 R /F8 557 0 R /F11 750 0 R >> /ProcSet [ /PDF /Text ] >> -% 1437 0 obj +% 1445 0 obj << /Type /Page -/Contents 1438 0 R -/Resources 1436 0 R +/Contents 1446 0 R +/Resources 1444 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1441 0 R -/Annots [ 1435 0 R ] +/Parent 1449 0 R +/Annots [ 1443 0 R ] >> -% 1435 0 obj +% 1443 0 obj << /Type /Annot /Subtype /Link @@ -17397,27 +17727,10 @@ stream /Rect [294.721 495.239 361.779 506.364] /A << /S /GoTo /D (descdata) >> >> -% 1439 0 obj -<< -/D [1437 0 R /XYZ 98.895 753.953 null] ->> -% 372 0 obj -<< -/D [1437 0 R /XYZ 99.895 720.077 null] ->> -% 1440 0 obj -<< -/D [1437 0 R /XYZ 99.895 259.346 null] ->> -% 1436 0 obj -<< -/Font << /F16 554 0 R /F30 764 0 R /F27 556 0 R /F8 557 0 R /F11 750 0 R >> -/ProcSet [ /PDF /Text ] ->> endstream endobj -1445 0 obj +1454 0 obj << /Length 3804 >> @@ -17498,7 +17811,7 @@ ET endstream endobj -1453 0 obj +1461 0 obj << /Length 3654 >> @@ -17579,7 +17892,7 @@ ET endstream endobj -1460 0 obj +1468 0 obj << /Length 5790 >> @@ -17668,7 +17981,7 @@ ET endstream endobj -1464 0 obj +1472 0 obj << /Length 3701 >> @@ -17707,7 +18020,7 @@ ET endstream endobj -1474 0 obj +1482 0 obj << /Length 4126 >> @@ -17820,7 +18133,7 @@ ET endstream endobj -1478 0 obj +1486 0 obj << /Length 5761 >> @@ -17902,7 +18215,7 @@ ET endstream endobj -1483 0 obj +1491 0 obj << /Length 6990 >> @@ -18010,7 +18323,7 @@ ET endstream endobj -1496 0 obj +1504 0 obj << /Length 181 >> @@ -18026,7 +18339,7 @@ ET endstream endobj -1500 0 obj +1508 0 obj << /Length 5574 >> @@ -18100,7 +18413,7 @@ ET endstream endobj -1506 0 obj +1514 0 obj << /Length 4647 >> @@ -18156,7 +18469,7 @@ ET endstream endobj -1512 0 obj +1520 0 obj << /Length 4355 >> @@ -18209,7 +18522,7 @@ ET endstream endobj -1519 0 obj +1527 0 obj << /Length 2161 >> @@ -18260,7 +18573,7 @@ ET endstream endobj -1524 0 obj +1532 0 obj << /Length 3025 >> @@ -18315,7 +18628,7 @@ ET endstream endobj -1528 0 obj +1536 0 obj << /Length 1181 >> @@ -18352,7 +18665,7 @@ ET endstream endobj -1532 0 obj +1540 0 obj << /Length 1474 >> @@ -18389,7 +18702,7 @@ ET endstream endobj -1536 0 obj +1544 0 obj << /Length 1360 >> @@ -18426,7 +18739,7 @@ ET endstream endobj -1540 0 obj +1548 0 obj << /Length 4533 >> @@ -18478,7 +18791,7 @@ ET endstream endobj -1544 0 obj +1552 0 obj << /Length 5146 >> @@ -18538,34 +18851,51 @@ ET endstream endobj -1449 0 obj +1450 0 obj << /Type /ObjStm /N 100 -/First 971 -/Length 9474 +/First 969 +/Length 9533 >> stream -1444 0 1442 139 1446 284 376 343 1447 401 1448 460 1443 519 1452 625 1450 764 1454 910 -380 968 1455 1025 1456 1083 1451 1141 1459 1247 1457 1386 1461 1530 384 1589 1458 1647 1463 1766 -1465 1884 1466 1942 1467 2000 1468 2058 1462 2116 1473 2235 1469 2392 1470 2536 1471 2682 1475 2827 -388 2886 1472 2944 1477 3063 1479 3181 392 3239 1476 3296 1482 3415 1484 3533 1485 3592 1486 3651 -1487 3710 1488 3769 1489 3828 1490 3887 1491 3945 1492 4004 1493 4063 1481 4122 1495 4240 1497 4358 -396 4416 1494 4473 1499 4553 1501 4671 400 4730 1502 4788 1503 4847 1498 4906 1505 5038 1507 5156 -405 5214 1508 5271 1509 5328 1504 5386 1511 5518 1513 5636 409 5695 1514 5753 1515 5812 1516 5871 -1510 5930 1518 6062 1520 6180 413 6238 1517 6295 1523 6401 1525 6519 417 6578 1522 6636 1527 6768 -1529 6886 421 6944 1526 7001 1531 7107 1533 7225 425 7284 1530 7342 1535 7448 1537 7566 429 7624 -1534 7681 1539 7787 1541 7905 433 7964 1538 8022 1543 8154 1545 8272 437 8330 1546 8387 1547 8445 +1447 0 372 58 1448 115 1444 173 1453 292 1451 431 1455 576 376 635 1456 693 1457 752 +1452 811 1460 917 1458 1056 1462 1202 380 1260 1463 1317 1464 1375 1459 1433 1467 1539 1465 1678 +1469 1822 384 1881 1466 1939 1471 2058 1473 2176 1474 2234 1475 2292 1476 2350 1470 2408 1481 2527 +1477 2684 1478 2828 1479 2974 1483 3119 388 3178 1480 3236 1485 3355 1487 3473 392 3531 1484 3588 +1490 3707 1492 3825 1493 3884 1494 3943 1495 4002 1496 4061 1497 4120 1498 4179 1499 4237 1500 4296 +1501 4355 1489 4414 1503 4532 1505 4650 396 4708 1502 4765 1507 4845 1509 4963 400 5022 1510 5080 +1511 5139 1506 5198 1513 5330 1515 5448 405 5506 1516 5563 1517 5620 1512 5678 1519 5810 1521 5928 +409 5987 1522 6045 1523 6104 1524 6163 1518 6222 1526 6354 1528 6472 413 6530 1525 6587 1531 6693 +1533 6811 417 6870 1530 6928 1535 7060 1537 7178 421 7236 1534 7293 1539 7399 1541 7517 425 7576 +1538 7634 1543 7740 1545 7858 429 7916 1542 7973 1547 8079 1549 8197 433 8256 1546 8314 1551 8446 +% 1447 0 obj +<< +/D [1445 0 R /XYZ 98.895 753.953 null] +>> +% 372 0 obj +<< +/D [1445 0 R /XYZ 99.895 720.077 null] +>> +% 1448 0 obj +<< +/D [1445 0 R /XYZ 99.895 259.346 null] +>> % 1444 0 obj << +/Font << /F16 554 0 R /F30 764 0 R /F27 556 0 R /F8 557 0 R /F11 750 0 R >> +/ProcSet [ /PDF /Text ] +>> +% 1453 0 obj +<< /Type /Page -/Contents 1445 0 R -/Resources 1443 0 R +/Contents 1454 0 R +/Resources 1452 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1441 0 R -/Annots [ 1442 0 R ] +/Parent 1449 0 R +/Annots [ 1451 0 R ] >> -% 1442 0 obj +% 1451 0 obj << /Type /Annot /Subtype /Link @@ -18573,37 +18903,37 @@ stream /Rect [345.53 574.94 412.588 586.065] /A << /S /GoTo /D (descdata) >> >> -% 1446 0 obj +% 1455 0 obj << -/D [1444 0 R /XYZ 149.705 753.953 null] +/D [1453 0 R /XYZ 149.705 753.953 null] >> % 376 0 obj << -/D [1444 0 R /XYZ 150.705 720.077 null] +/D [1453 0 R /XYZ 150.705 720.077 null] >> -% 1447 0 obj +% 1456 0 obj << -/D [1444 0 R /XYZ 150.705 370.928 null] +/D [1453 0 R /XYZ 150.705 370.928 null] >> -% 1448 0 obj +% 1457 0 obj << -/D [1444 0 R /XYZ 150.705 327.092 null] +/D [1453 0 R /XYZ 150.705 327.092 null] >> -% 1443 0 obj +% 1452 0 obj << /Font << /F16 554 0 R /F30 764 0 R /F27 556 0 R /F8 557 0 R >> /ProcSet [ /PDF /Text ] >> -% 1452 0 obj +% 1460 0 obj << /Type /Page -/Contents 1453 0 R -/Resources 1451 0 R +/Contents 1461 0 R +/Resources 1459 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1441 0 R -/Annots [ 1450 0 R ] +/Parent 1449 0 R +/Annots [ 1458 0 R ] >> -% 1450 0 obj +% 1458 0 obj << /Type /Annot /Subtype /Link @@ -18611,37 +18941,37 @@ stream /Rect [294.721 574.94 361.779 586.065] /A << /S /GoTo /D (descdata) >> >> -% 1454 0 obj +% 1462 0 obj << -/D [1452 0 R /XYZ 98.895 753.953 null] +/D [1460 0 R /XYZ 98.895 753.953 null] >> % 380 0 obj << -/D [1452 0 R /XYZ 99.895 720.077 null] +/D [1460 0 R /XYZ 99.895 720.077 null] >> -% 1455 0 obj +% 1463 0 obj << -/D [1452 0 R /XYZ 99.895 370.928 null] +/D [1460 0 R /XYZ 99.895 370.928 null] >> -% 1456 0 obj +% 1464 0 obj << -/D [1452 0 R /XYZ 99.895 339.047 null] +/D [1460 0 R /XYZ 99.895 339.047 null] >> -% 1451 0 obj +% 1459 0 obj << /Font << /F16 554 0 R /F30 764 0 R /F27 556 0 R /F8 557 0 R >> /ProcSet [ /PDF /Text ] >> -% 1459 0 obj +% 1467 0 obj << /Type /Page -/Contents 1460 0 R -/Resources 1458 0 R +/Contents 1468 0 R +/Resources 1466 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1441 0 R -/Annots [ 1457 0 R ] +/Parent 1449 0 R +/Annots [ 1465 0 R ] >> -% 1457 0 obj +% 1465 0 obj << /Type /Annot /Subtype /Link @@ -18649,58 +18979,58 @@ stream /Rect [345.53 492.904 423.049 504.029] /A << /S /GoTo /D (spdata) >> >> -% 1461 0 obj +% 1469 0 obj << -/D [1459 0 R /XYZ 149.705 753.953 null] +/D [1467 0 R /XYZ 149.705 753.953 null] >> % 384 0 obj << -/D [1459 0 R /XYZ 150.705 720.077 null] +/D [1467 0 R /XYZ 150.705 720.077 null] >> -% 1458 0 obj +% 1466 0 obj << /Font << /F16 554 0 R /F30 764 0 R /F27 556 0 R /F8 557 0 R /F11 750 0 R >> /ProcSet [ /PDF /Text ] >> -% 1463 0 obj +% 1471 0 obj << /Type /Page -/Contents 1464 0 R -/Resources 1462 0 R +/Contents 1472 0 R +/Resources 1470 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1441 0 R +/Parent 1449 0 R >> -% 1465 0 obj +% 1473 0 obj << -/D [1463 0 R /XYZ 98.895 753.953 null] +/D [1471 0 R /XYZ 98.895 753.953 null] >> -% 1466 0 obj +% 1474 0 obj << -/D [1463 0 R /XYZ 99.895 496.913 null] +/D [1471 0 R /XYZ 99.895 496.913 null] >> -% 1467 0 obj +% 1475 0 obj << -/D [1463 0 R /XYZ 99.895 439.185 null] +/D [1471 0 R /XYZ 99.895 439.185 null] >> -% 1468 0 obj +% 1476 0 obj << -/D [1463 0 R /XYZ 99.895 418.983 null] +/D [1471 0 R /XYZ 99.895 418.983 null] >> -% 1462 0 obj +% 1470 0 obj << /Font << /F27 556 0 R /F8 557 0 R /F30 764 0 R /F16 554 0 R /F11 750 0 R >> /ProcSet [ /PDF /Text ] >> -% 1473 0 obj +% 1481 0 obj << /Type /Page -/Contents 1474 0 R -/Resources 1472 0 R +/Contents 1482 0 R +/Resources 1480 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1441 0 R -/Annots [ 1469 0 R 1470 0 R 1471 0 R ] +/Parent 1449 0 R +/Annots [ 1477 0 R 1478 0 R 1479 0 R ] >> -% 1469 0 obj +% 1477 0 obj << /Type /Annot /Subtype /Link @@ -18708,7 +19038,7 @@ stream /Rect [345.53 529.112 423.049 540.237] /A << /S /GoTo /D (spdata) >> >> -% 1470 0 obj +% 1478 0 obj << /Type /Annot /Subtype /Link @@ -18716,7 +19046,7 @@ stream /Rect [345.53 461.366 412.588 472.491] /A << /S /GoTo /D (descdata) >> >> -% 1471 0 obj +% 1479 0 obj << /Type /Annot /Subtype /Link @@ -18724,265 +19054,223 @@ stream /Rect [372.153 405.575 439.211 416.7] /A << /S /GoTo /D (precdata) >> >> -% 1475 0 obj +% 1483 0 obj << -/D [1473 0 R /XYZ 149.705 753.953 null] +/D [1481 0 R /XYZ 149.705 753.953 null] >> % 388 0 obj << -/D [1473 0 R /XYZ 150.705 720.077 null] +/D [1481 0 R /XYZ 150.705 720.077 null] >> -% 1472 0 obj +% 1480 0 obj << /Font << /F16 554 0 R /F8 557 0 R /F30 764 0 R /F27 556 0 R /F11 750 0 R >> /ProcSet [ /PDF /Text ] >> -% 1477 0 obj +% 1485 0 obj << /Type /Page -/Contents 1478 0 R -/Resources 1476 0 R +/Contents 1486 0 R +/Resources 1484 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1480 0 R +/Parent 1488 0 R >> -% 1479 0 obj +% 1487 0 obj << -/D [1477 0 R /XYZ 98.895 753.953 null] +/D [1485 0 R /XYZ 98.895 753.953 null] >> % 392 0 obj << -/D [1477 0 R /XYZ 99.895 720.077 null] +/D [1485 0 R /XYZ 99.895 720.077 null] >> -% 1476 0 obj +% 1484 0 obj << /Font << /F16 554 0 R /F30 764 0 R /F8 557 0 R /F11 750 0 R /F27 556 0 R >> /ProcSet [ /PDF /Text ] >> -% 1482 0 obj +% 1490 0 obj << /Type /Page -/Contents 1483 0 R -/Resources 1481 0 R +/Contents 1491 0 R +/Resources 1489 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1480 0 R +/Parent 1488 0 R >> -% 1484 0 obj +% 1492 0 obj << -/D [1482 0 R /XYZ 149.705 753.953 null] +/D [1490 0 R /XYZ 149.705 753.953 null] >> -% 1485 0 obj +% 1493 0 obj << -/D [1482 0 R /XYZ 150.705 702.144 null] +/D [1490 0 R /XYZ 150.705 702.144 null] >> -% 1486 0 obj +% 1494 0 obj << -/D [1482 0 R /XYZ 150.705 668.326 null] +/D [1490 0 R /XYZ 150.705 668.326 null] >> -% 1487 0 obj +% 1495 0 obj << -/D [1482 0 R /XYZ 150.705 624.491 null] +/D [1490 0 R /XYZ 150.705 624.491 null] >> -% 1488 0 obj +% 1496 0 obj << -/D [1482 0 R /XYZ 150.705 556.745 null] +/D [1490 0 R /XYZ 150.705 556.745 null] >> -% 1489 0 obj +% 1497 0 obj << -/D [1482 0 R /XYZ 150.705 500.954 null] +/D [1490 0 R /XYZ 150.705 500.954 null] >> -% 1490 0 obj +% 1498 0 obj << -/D [1482 0 R /XYZ 150.705 468.52 null] +/D [1490 0 R /XYZ 150.705 468.52 null] >> -% 1491 0 obj +% 1499 0 obj << -/D [1482 0 R /XYZ 150.705 425.182 null] +/D [1490 0 R /XYZ 150.705 425.182 null] >> -% 1492 0 obj +% 1500 0 obj << -/D [1482 0 R /XYZ 150.705 383.395 null] +/D [1490 0 R /XYZ 150.705 383.395 null] >> -% 1493 0 obj +% 1501 0 obj << -/D [1482 0 R /XYZ 150.705 355.499 null] +/D [1490 0 R /XYZ 150.705 355.499 null] >> -% 1481 0 obj +% 1489 0 obj << /Font << /F16 554 0 R /F8 557 0 R /F11 750 0 R /F14 767 0 R /F7 765 0 R >> /ProcSet [ /PDF /Text ] >> -% 1495 0 obj +% 1503 0 obj << /Type /Page -/Contents 1496 0 R -/Resources 1494 0 R +/Contents 1504 0 R +/Resources 1502 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1480 0 R +/Parent 1488 0 R >> -% 1497 0 obj +% 1505 0 obj << -/D [1495 0 R /XYZ 98.895 753.953 null] +/D [1503 0 R /XYZ 98.895 753.953 null] >> % 396 0 obj << -/D [1495 0 R /XYZ 99.895 716.092 null] +/D [1503 0 R /XYZ 99.895 716.092 null] >> -% 1494 0 obj +% 1502 0 obj << /Font << /F16 554 0 R /F8 557 0 R >> /ProcSet [ /PDF /Text ] >> -% 1499 0 obj +% 1507 0 obj << /Type /Page -/Contents 1500 0 R -/Resources 1498 0 R +/Contents 1508 0 R +/Resources 1506 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1480 0 R +/Parent 1488 0 R >> -% 1501 0 obj +% 1509 0 obj << -/D [1499 0 R /XYZ 149.705 753.953 null] +/D [1507 0 R /XYZ 149.705 753.953 null] >> % 400 0 obj << -/D [1499 0 R /XYZ 150.705 720.077 null] +/D [1507 0 R /XYZ 150.705 720.077 null] >> -% 1502 0 obj +% 1510 0 obj << -/D [1499 0 R /XYZ 150.705 235.436 null] +/D [1507 0 R /XYZ 150.705 235.436 null] >> -% 1503 0 obj +% 1511 0 obj << -/D [1499 0 R /XYZ 150.705 213.573 null] +/D [1507 0 R /XYZ 150.705 213.573 null] >> -% 1498 0 obj +% 1506 0 obj << /Font << /F16 554 0 R /F30 764 0 R /F8 557 0 R /F27 556 0 R /F11 750 0 R /F14 767 0 R >> /ProcSet [ /PDF /Text ] >> -% 1505 0 obj +% 1513 0 obj << /Type /Page -/Contents 1506 0 R -/Resources 1504 0 R +/Contents 1514 0 R +/Resources 1512 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1480 0 R +/Parent 1488 0 R >> -% 1507 0 obj +% 1515 0 obj << -/D [1505 0 R /XYZ 98.895 753.953 null] +/D [1513 0 R /XYZ 98.895 753.953 null] >> % 405 0 obj << -/D [1505 0 R /XYZ 99.895 720.077 null] +/D [1513 0 R /XYZ 99.895 720.077 null] >> -% 1508 0 obj +% 1516 0 obj << -/D [1505 0 R /XYZ 99.895 349.01 null] +/D [1513 0 R /XYZ 99.895 349.01 null] >> -% 1509 0 obj +% 1517 0 obj << -/D [1505 0 R /XYZ 99.895 315.192 null] +/D [1513 0 R /XYZ 99.895 315.192 null] >> -% 1504 0 obj +% 1512 0 obj << /Font << /F16 554 0 R /F30 764 0 R /F8 557 0 R /F27 556 0 R /F14 767 0 R /F11 750 0 R >> /ProcSet [ /PDF /Text ] >> -% 1511 0 obj +% 1519 0 obj << /Type /Page -/Contents 1512 0 R -/Resources 1510 0 R +/Contents 1520 0 R +/Resources 1518 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1480 0 R +/Parent 1488 0 R >> -% 1513 0 obj +% 1521 0 obj << -/D [1511 0 R /XYZ 149.705 753.953 null] +/D [1519 0 R /XYZ 149.705 753.953 null] >> % 409 0 obj << -/D [1511 0 R /XYZ 150.705 720.077 null] +/D [1519 0 R /XYZ 150.705 720.077 null] >> -% 1514 0 obj +% 1522 0 obj << -/D [1511 0 R /XYZ 150.705 442.659 null] +/D [1519 0 R /XYZ 150.705 442.659 null] >> -% 1515 0 obj +% 1523 0 obj << -/D [1511 0 R /XYZ 150.705 396.886 null] +/D [1519 0 R /XYZ 150.705 396.886 null] >> -% 1516 0 obj +% 1524 0 obj << -/D [1511 0 R /XYZ 150.705 365.005 null] +/D [1519 0 R /XYZ 150.705 365.005 null] >> -% 1510 0 obj +% 1518 0 obj << /Font << /F16 554 0 R /F30 764 0 R /F8 557 0 R /F27 556 0 R /F11 750 0 R /F14 767 0 R >> /ProcSet [ /PDF /Text ] >> -% 1518 0 obj +% 1526 0 obj << /Type /Page -/Contents 1519 0 R -/Resources 1517 0 R +/Contents 1527 0 R +/Resources 1525 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1521 0 R +/Parent 1529 0 R >> -% 1520 0 obj +% 1528 0 obj << -/D [1518 0 R /XYZ 98.895 753.953 null] +/D [1526 0 R /XYZ 98.895 753.953 null] >> % 413 0 obj << -/D [1518 0 R /XYZ 99.895 720.077 null] ->> -% 1517 0 obj -<< -/Font << /F16 554 0 R /F30 764 0 R /F8 557 0 R /F27 556 0 R >> -/ProcSet [ /PDF /Text ] ->> -% 1523 0 obj -<< -/Type /Page -/Contents 1524 0 R -/Resources 1522 0 R -/MediaBox [0 0 595.276 841.89] -/Parent 1521 0 R +/D [1526 0 R /XYZ 99.895 720.077 null] >> % 1525 0 obj << -/D [1523 0 R /XYZ 149.705 753.953 null] ->> -% 417 0 obj -<< -/D [1523 0 R /XYZ 150.705 720.077 null] ->> -% 1522 0 obj -<< -/Font << /F16 554 0 R /F30 764 0 R /F8 557 0 R /F11 750 0 R /F27 556 0 R /F14 767 0 R >> -/ProcSet [ /PDF /Text ] ->> -% 1527 0 obj -<< -/Type /Page -/Contents 1528 0 R -/Resources 1526 0 R -/MediaBox [0 0 595.276 841.89] -/Parent 1521 0 R ->> -% 1529 0 obj -<< -/D [1527 0 R /XYZ 98.895 753.953 null] ->> -% 421 0 obj -<< -/D [1527 0 R /XYZ 99.895 720.077 null] ->> -% 1526 0 obj -<< /Font << /F16 554 0 R /F30 764 0 R /F8 557 0 R /F27 556 0 R >> /ProcSet [ /PDF /Text ] >> @@ -18992,19 +19280,19 @@ stream /Contents 1532 0 R /Resources 1530 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1521 0 R +/Parent 1529 0 R >> % 1533 0 obj << /D [1531 0 R /XYZ 149.705 753.953 null] >> -% 425 0 obj +% 417 0 obj << /D [1531 0 R /XYZ 150.705 720.077 null] >> % 1530 0 obj << -/Font << /F16 554 0 R /F30 764 0 R /F8 557 0 R /F27 556 0 R >> +/Font << /F16 554 0 R /F30 764 0 R /F8 557 0 R /F11 750 0 R /F27 556 0 R /F14 767 0 R >> /ProcSet [ /PDF /Text ] >> % 1535 0 obj @@ -19013,13 +19301,13 @@ stream /Contents 1536 0 R /Resources 1534 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1521 0 R +/Parent 1529 0 R >> % 1537 0 obj << /D [1535 0 R /XYZ 98.895 753.953 null] >> -% 429 0 obj +% 421 0 obj << /D [1535 0 R /XYZ 99.895 720.077 null] >> @@ -19034,19 +19322,19 @@ stream /Contents 1540 0 R /Resources 1538 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1521 0 R +/Parent 1529 0 R >> % 1541 0 obj << /D [1539 0 R /XYZ 149.705 753.953 null] >> -% 433 0 obj +% 425 0 obj << /D [1539 0 R /XYZ 150.705 720.077 null] >> % 1538 0 obj << -/Font << /F16 554 0 R /F30 764 0 R /F8 557 0 R /F27 556 0 R /F11 750 0 R /F14 767 0 R >> +/Font << /F16 554 0 R /F30 764 0 R /F8 557 0 R /F27 556 0 R >> /ProcSet [ /PDF /Text ] >> % 1543 0 obj @@ -19055,28 +19343,54 @@ stream /Contents 1544 0 R /Resources 1542 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1548 0 R +/Parent 1529 0 R >> % 1545 0 obj << /D [1543 0 R /XYZ 98.895 753.953 null] >> -% 437 0 obj +% 429 0 obj << /D [1543 0 R /XYZ 99.895 720.077 null] >> -% 1546 0 obj +% 1542 0 obj << -/D [1543 0 R /XYZ 99.895 247.391 null] +/Font << /F16 554 0 R /F30 764 0 R /F8 557 0 R /F27 556 0 R >> +/ProcSet [ /PDF /Text ] >> % 1547 0 obj << -/D [1543 0 R /XYZ 99.895 213.573 null] +/Type /Page +/Contents 1548 0 R +/Resources 1546 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1529 0 R +>> +% 1549 0 obj +<< +/D [1547 0 R /XYZ 149.705 753.953 null] +>> +% 433 0 obj +<< +/D [1547 0 R /XYZ 150.705 720.077 null] +>> +% 1546 0 obj +<< +/Font << /F16 554 0 R /F30 764 0 R /F8 557 0 R /F27 556 0 R /F11 750 0 R /F14 767 0 R >> +/ProcSet [ /PDF /Text ] +>> +% 1551 0 obj +<< +/Type /Page +/Contents 1552 0 R +/Resources 1550 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1556 0 R >> endstream endobj -1552 0 obj +1560 0 obj << /Length 5185 >> @@ -19136,7 +19450,7 @@ ET endstream endobj -1558 0 obj +1566 0 obj << /Length 5160 >> @@ -19196,7 +19510,7 @@ ET endstream endobj -1564 0 obj +1572 0 obj << /Length 5277 >> @@ -19256,7 +19570,7 @@ ET endstream endobj -1570 0 obj +1578 0 obj << /Length 5248 >> @@ -19316,7 +19630,7 @@ ET endstream endobj -1576 0 obj +1584 0 obj << /Length 5369 >> @@ -19373,7 +19687,7 @@ ET endstream endobj -1581 0 obj +1589 0 obj << /Length 5352 >> @@ -19429,7 +19743,7 @@ ET endstream endobj -1589 0 obj +1597 0 obj << /Length 6407 >> @@ -19453,7 +19767,7 @@ ET endstream endobj -1595 0 obj +1603 0 obj << /Length 7220 >> @@ -19604,7 +19918,7 @@ ET endstream endobj -1625 0 obj +1633 0 obj << /Length 3723 >> @@ -19717,7 +20031,7 @@ ET endstream endobj -1631 0 obj +1639 0 obj << /Length 1398 >> @@ -19762,7 +20076,7 @@ ET endstream endobj -1637 0 obj +1645 0 obj << /Length 1632 >> @@ -19821,7 +20135,7 @@ ET endstream endobj -1643 0 obj +1651 0 obj << /Length 2103 >> @@ -19894,7 +20208,7 @@ ET endstream endobj -1650 0 obj +1658 0 obj << /Length 538 >> @@ -19910,289 +20224,221 @@ ET endstream endobj -1655 0 obj +1557 0 obj << -/Length 4792 +/Type /ObjStm +/N 100 +/First 972 +/Length 8536 >> stream -0 g 0 G -0 g 0 G -BT -/F16 11.9552 Tf 103.166 706.129 Td [(h)31(b)]TJ -ET -q -1 0 0 1 118.544 706.328 cm -[]0 d 0 J 0.398 w 0 0 m 4.035 0 l S -Q -BT -/F16 11.9552 Tf 122.579 706.129 Td [(read)-274(|)-273(Read)-274(a)-273(sparse)-274(matrix)-274(from)-273(a)-274(\014le)-273(in)-274(the)-274(Harw)32(ell{)]TJ -22.684 -13.948 Td [(Bo)-31(eing)-375(format)]TJ/F27 9.9626 Tf 1.377 -24.367 Td [(c)-138(a)-138(l)-139(l)]TJ/F8 9.9626 Tf 29.554 0 Td [(h)-105(b)]TJ -ET -q -1 0 0 1 144.579 668.014 cm -[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S -Q -BT -/F8 9.9626 Tf 148.61 667.814 Td [(r)-105(e)-104(a)-105(d)-210(\050)-139(a)-228(,)-911(i)-149(r)-150(e)-149(t)-460(,)-896(i)-135(u)-135(n)-135(i)-135(t)-431(,)-877(f)-116(i)-116(l)-116(e)-117(n)-116(a)-116(m)-116(e)-393(,)-776(b)-191(,)-902(m)-142(t)-141(i)-141(t)-141(l)-142(e)-247(\051)]TJ -0 g 0 G -0 g 0 G -0 g 0 G -/F27 9.9626 Tf -48.715 -17.933 Td [(T)32(yp)-32(e:)]TJ -0 g 0 G -/F8 9.9626 Tf 33.797 0 Td [(Async)28(hronous.)]TJ -0 g 0 G -/F27 9.9626 Tf -33.797 -19.925 Td [(On)-383(En)32(try)]TJ -0 g 0 G -0 g 0 G - 0 -19.925 Td [(\014lename)]TJ -0 g 0 G -/F8 9.9626 Tf 46.513 0 Td [(The)-333(name)-334(of)-333(the)-333(\014le)-334(to)-333(b)-28(e)-333(read.)]TJ -21.606 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.183 0 Td [(optional)]TJ/F8 9.9626 Tf 40.577 0 Td [(.)]TJ -65.76 -11.955 Td [(Sp)-28(eci\014ed)-435(as:)-648(a)-435(c)27(h)1(arac)-1(ter)-435(v)56(ariable)-435(con)28(taining)-436(a)-435(v)56(alid)-435(\014le)-435(name,)-461(or)]TJ/F30 9.9626 Tf 297.915 0 Td [(-)]TJ/F8 9.9626 Tf 5.231 0 Td [(,)-461(in)]TJ -303.146 -11.956 Td [(whic)28(h)-302(cas)-1(e)-302(the)-302(default)-302(input)-302(unit)-302(5)-303(\050i.e.)-434(standard)-302(input)-302(in)-302(Unix)-302(jargon\051)-302(is)]TJ 0 -11.955 Td [(used.)-444(Default:)]TJ/F30 9.9626 Tf 66.058 0 Td [(-)]TJ/F8 9.9626 Tf 5.23 0 Td [(.)]TJ -0 g 0 G -/F27 9.9626 Tf -96.195 -19.925 Td [(iunit)]TJ -0 g 0 G -/F8 9.9626 Tf 28.532 0 Td [(The)-333(F)83(ortran)-333(\014le)-334(un)1(it)-334(n)28(um)28(b)-28(er.)]TJ -3.625 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.183 0 Td [(optional)]TJ/F8 9.9626 Tf 40.577 0 Td [(.)]TJ -65.76 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(in)28(teger)-333(v)55(alue.)-444(Only)-333(me)-1(ani)1(ngful)-334(if)-333(\014lename)-333(is)-334(not)]TJ/F30 9.9626 Tf 286.288 0 Td [(-)]TJ/F8 9.9626 Tf 5.23 0 Td [(.)]TJ -0 g 0 G -/F27 9.9626 Tf -316.425 -21.918 Td [(On)-383(Return)]TJ -0 g 0 G -0 g 0 G - 0 -19.925 Td [(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.899 0 Td [(.)]TJ -67.082 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(structured)-333(data)-333(of)-334(t)28(yp)-28(e)]TJ -0 0 1 rg 0 0 1 RG -/F30 9.9626 Tf 170.915 0 Td [(psb)]TJ -ET -q -1 0 0 1 312.036 452.82 cm -[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S -Q -BT -/F30 9.9626 Tf 315.174 452.621 Td [(Tspmat)]TJ -ET -q -1 0 0 1 347.183 452.82 cm -[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S -Q -BT -/F30 9.9626 Tf 350.322 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.348 -19.925 Td [(b)]TJ -0 g 0 G -/F8 9.9626 Tf 11.347 0 Td [(Rigth)-333(hand)-333(s)-1(i)1(de\050s)-1(\051.)]TJ 13.56 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(Optional)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(An)-282(ar)1(ra)27(y)-281(of)-282(t)28(yp)-28(e)-281(real)-282(or)-281(complex,)-292(rank)-282(2)-281(and)-282(ha)28(ving)-281(the)-282(ALLOCA)83(T)84(ABLE)]TJ 0 -11.956 Td [(attribute;)-409(will)-384(b)-28(e)-384(allo)-28(cated)-384(an)1(d)-384(\014lled)-384(in)-384(if)-384(the)-384(input)-384(\014le)-384(con)28(tains)-384(a)-384(righ)28(t)]TJ 0 -11.955 Td [(hand)-333(side,)-334(otherwise)-333(will)-333(b)-28(e)-333(left)-334(in)-333(the)-333(UNALLOCA)83(TED)-333(state.)]TJ -0 g 0 G -/F27 9.9626 Tf -24.907 -19.925 Td [(m)32(title)]TJ -0 g 0 G -/F8 9.9626 Tf 34.738 0 Td [(Matrix)-333(title.)]TJ -9.831 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(Optional)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(A)-405(c)28(harac)28(h)28(ter)-405(v)56(ariable)-405(of)-405(length)-404(72)-405(holding)-405(a)-404(cop)27(y)-404(of)-405(the)-405(matrix)-404(title)-405(as)]TJ 0 -11.956 Td [(sp)-28(eci\014ed)-333(b)28(y)-334(the)-333(Harw)28(ell-Bo)-28(eing)-333(format)-334(and)-333(con)28(tained)-333(in)-334(the)-333(input)-333(\014le.)]TJ -0 g 0 G -/F27 9.9626 Tf -24.907 -19.925 Td [(iret)]TJ -0 g 0 G -/F8 9.9626 Tf 22.589 0 Td [(Error)-333(co)-28(de.)]TJ 2.318 -11.955 Td [(T)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 -194.811 Td [(123)]TJ -0 g 0 G -ET - -endstream -endobj -1549 0 obj +1553 0 437 58 1554 115 1555 173 1550 231 1559 363 1561 481 441 540 1562 598 1563 657 +1558 716 1565 848 1567 966 445 1024 1568 1081 1569 1139 1564 1197 1571 1329 1573 1447 449 1506 +1574 1564 1575 1623 1570 1682 1577 1814 1579 1932 453 1990 1580 2047 1581 2105 1576 2163 1583 2295 +1585 2413 457 2472 1586 2530 1582 2588 1588 2720 1590 2838 461 2896 1591 2953 1587 3010 1596 3142 +1593 3290 1594 3435 1598 3582 465 3641 1595 3699 1602 3792 1604 3910 1605 3968 1606 4027 1608 4086 +1609 4145 1610 4204 1611 4263 1612 4322 1613 4380 1614 4439 1615 4498 1616 4557 1617 4616 1618 4675 +1619 4734 1620 4793 1621 4852 1622 4909 1623 4968 1624 5027 1625 5086 1626 5145 1627 5204 1628 5263 +1629 5322 1630 5381 1599 5439 1600 5498 1601 5557 1632 5665 1634 5783 469 5842 1635 5900 1636 5958 +1631 6016 1638 6109 1640 6227 473 6285 1641 6342 1642 6399 1637 6456 1644 6549 1646 6667 477 6726 +1647 6784 1648 6842 1643 6900 1650 6993 1652 7111 481 7169 1653 7226 1654 7283 1649 7340 1657 7446 +% 1553 0 obj << -/Type /ObjStm -/N 100 -/First 973 -/Length 8655 +/D [1551 0 R /XYZ 98.895 753.953 null] >> -stream -1542 0 1551 132 1553 250 441 309 1554 367 1555 426 1550 485 1557 617 1559 735 445 793 -1560 850 1561 908 1556 966 1563 1098 1565 1216 449 1275 1566 1333 1567 1392 1562 1451 1569 1583 -1571 1701 453 1759 1572 1816 1573 1874 1568 1932 1575 2064 1577 2182 457 2241 1578 2299 1574 2357 -1580 2489 1582 2607 461 2665 1583 2722 1579 2779 1588 2911 1585 3059 1586 3204 1590 3351 465 3410 -1587 3468 1594 3561 1596 3679 1597 3737 1598 3796 1600 3855 1601 3914 1602 3973 1603 4032 1604 4091 -1605 4149 1606 4208 1607 4267 1608 4326 1609 4385 1610 4444 1611 4503 1612 4562 1613 4621 1614 4678 -1615 4737 1616 4796 1617 4855 1618 4914 1619 4973 1620 5032 1621 5091 1622 5150 1591 5208 1592 5267 -1593 5326 1624 5434 1626 5552 469 5611 1627 5669 1628 5727 1623 5785 1630 5878 1632 5996 473 6054 -1633 6111 1634 6168 1629 6225 1636 6318 1638 6436 477 6495 1639 6553 1640 6611 1635 6669 1642 6762 -1644 6880 481 6938 1645 6995 1646 7052 1641 7109 1649 7215 1651 7333 485 7392 1648 7450 1654 7543 -% 1542 0 obj +% 437 0 obj +<< +/D [1551 0 R /XYZ 99.895 720.077 null] +>> +% 1554 0 obj +<< +/D [1551 0 R /XYZ 99.895 247.391 null] +>> +% 1555 0 obj +<< +/D [1551 0 R /XYZ 99.895 213.573 null] +>> +% 1550 0 obj << /Font << /F16 554 0 R /F30 764 0 R /F8 557 0 R /F27 556 0 R /F14 767 0 R /F11 750 0 R >> /ProcSet [ /PDF /Text ] >> -% 1551 0 obj +% 1559 0 obj << /Type /Page -/Contents 1552 0 R -/Resources 1550 0 R +/Contents 1560 0 R +/Resources 1558 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1548 0 R +/Parent 1556 0 R >> -% 1553 0 obj +% 1561 0 obj << -/D [1551 0 R /XYZ 149.705 753.953 null] +/D [1559 0 R /XYZ 149.705 753.953 null] >> % 441 0 obj << -/D [1551 0 R /XYZ 150.705 720.077 null] +/D [1559 0 R /XYZ 150.705 720.077 null] >> -% 1554 0 obj +% 1562 0 obj << -/D [1551 0 R /XYZ 150.705 247.391 null] +/D [1559 0 R /XYZ 150.705 247.391 null] >> -% 1555 0 obj +% 1563 0 obj << -/D [1551 0 R /XYZ 150.705 213.573 null] +/D [1559 0 R /XYZ 150.705 213.573 null] >> -% 1550 0 obj +% 1558 0 obj << /Font << /F16 554 0 R /F30 764 0 R /F8 557 0 R /F27 556 0 R /F14 767 0 R /F11 750 0 R >> /ProcSet [ /PDF /Text ] >> -% 1557 0 obj +% 1565 0 obj << /Type /Page -/Contents 1558 0 R -/Resources 1556 0 R +/Contents 1566 0 R +/Resources 1564 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1548 0 R +/Parent 1556 0 R >> -% 1559 0 obj +% 1567 0 obj << -/D [1557 0 R /XYZ 98.895 753.953 null] +/D [1565 0 R /XYZ 98.895 753.953 null] >> % 445 0 obj << -/D [1557 0 R /XYZ 99.895 720.077 null] +/D [1565 0 R /XYZ 99.895 720.077 null] >> -% 1560 0 obj +% 1568 0 obj << -/D [1557 0 R /XYZ 99.895 247.391 null] +/D [1565 0 R /XYZ 99.895 247.391 null] >> -% 1561 0 obj +% 1569 0 obj << -/D [1557 0 R /XYZ 99.895 213.573 null] +/D [1565 0 R /XYZ 99.895 213.573 null] >> -% 1556 0 obj +% 1564 0 obj << /Font << /F16 554 0 R /F30 764 0 R /F8 557 0 R /F27 556 0 R /F14 767 0 R /F11 750 0 R >> /ProcSet [ /PDF /Text ] >> -% 1563 0 obj +% 1571 0 obj << /Type /Page -/Contents 1564 0 R -/Resources 1562 0 R +/Contents 1572 0 R +/Resources 1570 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1548 0 R +/Parent 1556 0 R >> -% 1565 0 obj +% 1573 0 obj << -/D [1563 0 R /XYZ 149.705 753.953 null] +/D [1571 0 R /XYZ 149.705 753.953 null] >> % 449 0 obj << -/D [1563 0 R /XYZ 150.705 720.077 null] +/D [1571 0 R /XYZ 150.705 720.077 null] >> -% 1566 0 obj +% 1574 0 obj << -/D [1563 0 R /XYZ 150.705 235.436 null] +/D [1571 0 R /XYZ 150.705 235.436 null] >> -% 1567 0 obj +% 1575 0 obj << -/D [1563 0 R /XYZ 150.705 201.618 null] +/D [1571 0 R /XYZ 150.705 201.618 null] >> -% 1562 0 obj +% 1570 0 obj << /Font << /F16 554 0 R /F30 764 0 R /F8 557 0 R /F27 556 0 R /F14 767 0 R /F11 750 0 R >> /ProcSet [ /PDF /Text ] >> -% 1569 0 obj +% 1577 0 obj << /Type /Page -/Contents 1570 0 R -/Resources 1568 0 R +/Contents 1578 0 R +/Resources 1576 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1548 0 R +/Parent 1556 0 R >> -% 1571 0 obj +% 1579 0 obj << -/D [1569 0 R /XYZ 98.895 753.953 null] +/D [1577 0 R /XYZ 98.895 753.953 null] >> % 453 0 obj << -/D [1569 0 R /XYZ 99.895 720.077 null] +/D [1577 0 R /XYZ 99.895 720.077 null] >> -% 1572 0 obj +% 1580 0 obj << -/D [1569 0 R /XYZ 99.895 235.436 null] +/D [1577 0 R /XYZ 99.895 235.436 null] >> -% 1573 0 obj +% 1581 0 obj << -/D [1569 0 R /XYZ 99.895 201.618 null] +/D [1577 0 R /XYZ 99.895 201.618 null] >> -% 1568 0 obj +% 1576 0 obj << /Font << /F16 554 0 R /F30 764 0 R /F8 557 0 R /F27 556 0 R /F14 767 0 R /F11 750 0 R >> /ProcSet [ /PDF /Text ] >> -% 1575 0 obj +% 1583 0 obj << /Type /Page -/Contents 1576 0 R -/Resources 1574 0 R +/Contents 1584 0 R +/Resources 1582 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1548 0 R +/Parent 1556 0 R >> -% 1577 0 obj +% 1585 0 obj << -/D [1575 0 R /XYZ 149.705 753.953 null] +/D [1583 0 R /XYZ 149.705 753.953 null] >> % 457 0 obj << -/D [1575 0 R /XYZ 150.705 720.077 null] +/D [1583 0 R /XYZ 150.705 720.077 null] >> -% 1578 0 obj +% 1586 0 obj << -/D [1575 0 R /XYZ 150.705 223.48 null] +/D [1583 0 R /XYZ 150.705 223.48 null] >> -% 1574 0 obj +% 1582 0 obj << /Font << /F16 554 0 R /F30 764 0 R /F8 557 0 R /F27 556 0 R /F11 750 0 R /F14 767 0 R >> /ProcSet [ /PDF /Text ] >> -% 1580 0 obj +% 1588 0 obj << /Type /Page -/Contents 1581 0 R -/Resources 1579 0 R +/Contents 1589 0 R +/Resources 1587 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1584 0 R +/Parent 1592 0 R >> -% 1582 0 obj +% 1590 0 obj << -/D [1580 0 R /XYZ 98.895 753.953 null] +/D [1588 0 R /XYZ 98.895 753.953 null] >> % 461 0 obj << -/D [1580 0 R /XYZ 99.895 720.077 null] +/D [1588 0 R /XYZ 99.895 720.077 null] >> -% 1583 0 obj +% 1591 0 obj << -/D [1580 0 R /XYZ 99.895 223.48 null] +/D [1588 0 R /XYZ 99.895 223.48 null] >> -% 1579 0 obj +% 1587 0 obj << /Font << /F16 554 0 R /F30 764 0 R /F8 557 0 R /F27 556 0 R /F11 750 0 R /F14 767 0 R >> /ProcSet [ /PDF /Text ] >> -% 1588 0 obj +% 1596 0 obj << /Type /Page -/Contents 1589 0 R -/Resources 1587 0 R +/Contents 1597 0 R +/Resources 1595 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1584 0 R -/Annots [ 1585 0 R 1586 0 R ] +/Parent 1592 0 R +/Annots [ 1593 0 R 1594 0 R ] >> -% 1585 0 obj +% 1593 0 obj << /Type /Annot /Subtype /Link @@ -20200,7 +20446,7 @@ stream /Rect [196.286 501.77 203.26 512.895] /A << /S /GoTo /D (figure.9) >> >> -% 1586 0 obj +% 1594 0 obj << /Type /Annot /Subtype /Link @@ -20208,294 +20454,356 @@ stream /Rect [197.543 346.63 209.498 357.478] /A << /S /GoTo /D (figure.10) >> >> -% 1590 0 obj +% 1598 0 obj << -/D [1588 0 R /XYZ 149.705 753.953 null] +/D [1596 0 R /XYZ 149.705 753.953 null] >> % 465 0 obj << -/D [1588 0 R /XYZ 150.705 716.092 null] +/D [1596 0 R /XYZ 150.705 716.092 null] >> -% 1587 0 obj +% 1595 0 obj << /Font << /F16 554 0 R /F8 557 0 R /F30 764 0 R >> /ProcSet [ /PDF /Text ] >> -% 1594 0 obj +% 1602 0 obj << /Type /Page -/Contents 1595 0 R -/Resources 1593 0 R +/Contents 1603 0 R +/Resources 1601 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1584 0 R ->> -% 1596 0 obj -<< -/D [1594 0 R /XYZ 98.895 753.953 null] ->> -% 1597 0 obj -<< -/D [1594 0 R /XYZ 108.264 687.737 null] ->> -% 1598 0 obj -<< -/D [1594 0 R /XYZ 108.264 691.025 null] ->> -% 1600 0 obj -<< -/D [1594 0 R /XYZ 108.264 680.066 null] ->> -% 1601 0 obj -<< -/D [1594 0 R /XYZ 108.264 669.107 null] ->> -% 1602 0 obj -<< -/D [1594 0 R /XYZ 108.264 658.148 null] ->> -% 1603 0 obj -<< -/D [1594 0 R /XYZ 108.264 647.189 null] +/Parent 1592 0 R >> % 1604 0 obj << -/D [1594 0 R /XYZ 108.264 636.23 null] +/D [1602 0 R /XYZ 98.895 753.953 null] >> % 1605 0 obj << -/D [1594 0 R /XYZ 108.264 625.271 null] +/D [1602 0 R /XYZ 108.264 687.737 null] >> % 1606 0 obj << -/D [1594 0 R /XYZ 108.264 614.312 null] ->> -% 1607 0 obj -<< -/D [1594 0 R /XYZ 108.264 603.353 null] +/D [1602 0 R /XYZ 108.264 691.025 null] >> % 1608 0 obj << -/D [1594 0 R /XYZ 108.264 592.394 null] +/D [1602 0 R /XYZ 108.264 680.066 null] >> % 1609 0 obj << -/D [1594 0 R /XYZ 108.264 581.436 null] +/D [1602 0 R /XYZ 108.264 669.107 null] >> % 1610 0 obj << -/D [1594 0 R /XYZ 108.264 570.477 null] +/D [1602 0 R /XYZ 108.264 658.148 null] >> % 1611 0 obj << -/D [1594 0 R /XYZ 108.264 559.518 null] +/D [1602 0 R /XYZ 108.264 647.189 null] >> % 1612 0 obj << -/D [1594 0 R /XYZ 108.264 548.559 null] +/D [1602 0 R /XYZ 108.264 636.23 null] >> % 1613 0 obj << -/D [1594 0 R /XYZ 108.264 537.6 null] +/D [1602 0 R /XYZ 108.264 625.271 null] >> % 1614 0 obj << -/D [1594 0 R /XYZ 108.264 526.641 null] +/D [1602 0 R /XYZ 108.264 614.312 null] >> % 1615 0 obj << -/D [1594 0 R /XYZ 108.264 515.682 null] +/D [1602 0 R /XYZ 108.264 603.353 null] >> % 1616 0 obj << -/D [1594 0 R /XYZ 108.264 504.723 null] +/D [1602 0 R /XYZ 108.264 592.394 null] >> % 1617 0 obj << -/D [1594 0 R /XYZ 108.264 493.764 null] +/D [1602 0 R /XYZ 108.264 581.436 null] >> % 1618 0 obj << -/D [1594 0 R /XYZ 108.264 482.805 null] +/D [1602 0 R /XYZ 108.264 570.477 null] >> % 1619 0 obj << -/D [1594 0 R /XYZ 108.264 471.847 null] +/D [1602 0 R /XYZ 108.264 559.518 null] >> % 1620 0 obj << -/D [1594 0 R /XYZ 108.264 460.888 null] +/D [1602 0 R /XYZ 108.264 548.559 null] >> % 1621 0 obj << -/D [1594 0 R /XYZ 108.264 449.929 null] +/D [1602 0 R /XYZ 108.264 537.6 null] >> % 1622 0 obj << -/D [1594 0 R /XYZ 108.264 438.97 null] +/D [1602 0 R /XYZ 108.264 526.641 null] >> -% 1591 0 obj +% 1623 0 obj << -/D [1594 0 R /XYZ 143.452 394.492 null] +/D [1602 0 R /XYZ 108.264 515.682 null] >> -% 1592 0 obj +% 1624 0 obj << -/D [1594 0 R /XYZ 150.074 149.223 null] +/D [1602 0 R /XYZ 108.264 504.723 null] >> -% 1593 0 obj +% 1625 0 obj << -/Font << /F53 1599 0 R /F46 1166 0 R /F8 557 0 R /F30 764 0 R >> -/ProcSet [ /PDF /Text ] +/D [1602 0 R /XYZ 108.264 493.764 null] >> -% 1624 0 obj +% 1626 0 obj << -/Type /Page -/Contents 1625 0 R -/Resources 1623 0 R -/MediaBox [0 0 595.276 841.89] -/Parent 1584 0 R +/D [1602 0 R /XYZ 108.264 482.805 null] >> -% 1626 0 obj +% 1627 0 obj << -/D [1624 0 R /XYZ 149.705 753.953 null] +/D [1602 0 R /XYZ 108.264 471.847 null] >> -% 469 0 obj +% 1628 0 obj << -/D [1624 0 R /XYZ 150.705 724.062 null] +/D [1602 0 R /XYZ 108.264 460.888 null] >> -% 1627 0 obj +% 1629 0 obj << -/D [1624 0 R /XYZ 150.705 638.48 null] +/D [1602 0 R /XYZ 108.264 449.929 null] >> -% 1628 0 obj +% 1630 0 obj << -/D [1624 0 R /XYZ 150.705 638.48 null] +/D [1602 0 R /XYZ 108.264 438.97 null] >> -% 1623 0 obj +% 1599 0 obj << -/Font << /F16 554 0 R /F27 556 0 R /F8 557 0 R >> +/D [1602 0 R /XYZ 143.452 394.492 null] +>> +% 1600 0 obj +<< +/D [1602 0 R /XYZ 150.074 149.223 null] +>> +% 1601 0 obj +<< +/Font << /F53 1607 0 R /F46 1170 0 R /F8 557 0 R /F30 764 0 R >> /ProcSet [ /PDF /Text ] >> -% 1630 0 obj +% 1632 0 obj << /Type /Page -/Contents 1631 0 R -/Resources 1629 0 R +/Contents 1633 0 R +/Resources 1631 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1584 0 R +/Parent 1592 0 R >> -% 1632 0 obj +% 1634 0 obj << -/D [1630 0 R /XYZ 98.895 753.953 null] +/D [1632 0 R /XYZ 149.705 753.953 null] >> -% 473 0 obj +% 469 0 obj << -/D [1630 0 R /XYZ 99.895 724.062 null] +/D [1632 0 R /XYZ 150.705 724.062 null] >> -% 1633 0 obj +% 1635 0 obj << -/D [1630 0 R /XYZ 99.895 638.48 null] +/D [1632 0 R /XYZ 150.705 638.48 null] >> -% 1634 0 obj +% 1636 0 obj << -/D [1630 0 R /XYZ 99.895 638.48 null] +/D [1632 0 R /XYZ 150.705 638.48 null] >> -% 1629 0 obj +% 1631 0 obj << /Font << /F16 554 0 R /F27 556 0 R /F8 557 0 R >> /ProcSet [ /PDF /Text ] >> -% 1636 0 obj +% 1638 0 obj << /Type /Page -/Contents 1637 0 R -/Resources 1635 0 R +/Contents 1639 0 R +/Resources 1637 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1584 0 R +/Parent 1592 0 R >> -% 1638 0 obj +% 1640 0 obj << -/D [1636 0 R /XYZ 149.705 753.953 null] +/D [1638 0 R /XYZ 98.895 753.953 null] >> -% 477 0 obj +% 473 0 obj << -/D [1636 0 R /XYZ 150.705 724.062 null] +/D [1638 0 R /XYZ 99.895 724.062 null] >> -% 1639 0 obj +% 1641 0 obj << -/D [1636 0 R /XYZ 150.705 635.69 null] +/D [1638 0 R /XYZ 99.895 638.48 null] >> -% 1640 0 obj +% 1642 0 obj << -/D [1636 0 R /XYZ 150.705 638.48 null] +/D [1638 0 R /XYZ 99.895 638.48 null] >> -% 1635 0 obj +% 1637 0 obj << /Font << /F16 554 0 R /F27 556 0 R /F8 557 0 R >> /ProcSet [ /PDF /Text ] >> -% 1642 0 obj +% 1644 0 obj << /Type /Page -/Contents 1643 0 R -/Resources 1641 0 R +/Contents 1645 0 R +/Resources 1643 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1647 0 R +/Parent 1592 0 R >> -% 1644 0 obj +% 1646 0 obj << -/D [1642 0 R /XYZ 98.895 753.953 null] +/D [1644 0 R /XYZ 149.705 753.953 null] >> -% 481 0 obj +% 477 0 obj << -/D [1642 0 R /XYZ 99.895 724.062 null] +/D [1644 0 R /XYZ 150.705 724.062 null] >> -% 1645 0 obj +% 1647 0 obj << -/D [1642 0 R /XYZ 99.895 635.69 null] +/D [1644 0 R /XYZ 150.705 635.69 null] >> -% 1646 0 obj +% 1648 0 obj << -/D [1642 0 R /XYZ 99.895 638.48 null] +/D [1644 0 R /XYZ 150.705 638.48 null] >> -% 1641 0 obj +% 1643 0 obj << -/Font << /F16 554 0 R /F27 556 0 R /F8 557 0 R /F30 764 0 R >> +/Font << /F16 554 0 R /F27 556 0 R /F8 557 0 R >> /ProcSet [ /PDF /Text ] >> -% 1649 0 obj +% 1650 0 obj << /Type /Page -/Contents 1650 0 R -/Resources 1648 0 R +/Contents 1651 0 R +/Resources 1649 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1647 0 R +/Parent 1655 0 R >> -% 1651 0 obj +% 1652 0 obj << -/D [1649 0 R /XYZ 149.705 753.953 null] +/D [1650 0 R /XYZ 98.895 753.953 null] >> -% 485 0 obj +% 481 0 obj << -/D [1649 0 R /XYZ 150.705 716.092 null] +/D [1650 0 R /XYZ 99.895 724.062 null] >> -% 1648 0 obj +% 1653 0 obj << -/Font << /F16 554 0 R /F8 557 0 R /F30 764 0 R >> -/ProcSet [ /PDF /Text ] +/D [1650 0 R /XYZ 99.895 635.69 null] >> % 1654 0 obj << +/D [1650 0 R /XYZ 99.895 638.48 null] +>> +% 1649 0 obj +<< +/Font << /F16 554 0 R /F27 556 0 R /F8 557 0 R /F30 764 0 R >> +/ProcSet [ /PDF /Text ] +>> +% 1657 0 obj +<< /Type /Page -/Contents 1655 0 R -/Resources 1653 0 R +/Contents 1658 0 R +/Resources 1656 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1647 0 R -/Annots [ 1652 0 R ] +/Parent 1655 0 R >> endstream endobj -1663 0 obj +1664 0 obj +<< +/Length 4792 +>> +stream +0 g 0 G +0 g 0 G +BT +/F16 11.9552 Tf 103.166 706.129 Td [(h)31(b)]TJ +ET +q +1 0 0 1 118.544 706.328 cm +[]0 d 0 J 0.398 w 0 0 m 4.035 0 l S +Q +BT +/F16 11.9552 Tf 122.579 706.129 Td [(read)-274(|)-273(Read)-274(a)-273(sparse)-274(matrix)-274(from)-273(a)-274(\014le)-273(in)-274(the)-274(Harw)32(ell{)]TJ -22.684 -13.948 Td [(Bo)-31(eing)-375(format)]TJ/F27 9.9626 Tf 1.377 -24.367 Td [(c)-138(a)-138(l)-139(l)]TJ/F8 9.9626 Tf 29.554 0 Td [(h)-105(b)]TJ +ET +q +1 0 0 1 144.579 668.014 cm +[]0 d 0 J 0.398 w 0 0 m 2.989 0 l S +Q +BT +/F8 9.9626 Tf 148.61 667.814 Td [(r)-105(e)-104(a)-105(d)-210(\050)-139(a)-228(,)-911(i)-149(r)-150(e)-149(t)-460(,)-896(i)-135(u)-135(n)-135(i)-135(t)-431(,)-877(f)-116(i)-116(l)-116(e)-117(n)-116(a)-116(m)-116(e)-393(,)-776(b)-191(,)-902(m)-142(t)-141(i)-141(t)-141(l)-142(e)-247(\051)]TJ +0 g 0 G +0 g 0 G +0 g 0 G +/F27 9.9626 Tf -48.715 -17.933 Td [(T)32(yp)-32(e:)]TJ +0 g 0 G +/F8 9.9626 Tf 33.797 0 Td [(Async)28(hronous.)]TJ +0 g 0 G +/F27 9.9626 Tf -33.797 -19.925 Td [(On)-383(En)32(try)]TJ +0 g 0 G +0 g 0 G + 0 -19.925 Td [(\014lename)]TJ +0 g 0 G +/F8 9.9626 Tf 46.513 0 Td [(The)-333(name)-334(of)-333(the)-333(\014le)-334(to)-333(b)-28(e)-333(read.)]TJ -21.606 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.183 0 Td [(optional)]TJ/F8 9.9626 Tf 40.577 0 Td [(.)]TJ -65.76 -11.955 Td [(Sp)-28(eci\014ed)-435(as:)-648(a)-435(c)27(h)1(arac)-1(ter)-435(v)56(ariable)-435(con)28(taining)-436(a)-435(v)56(alid)-435(\014le)-435(name,)-461(or)]TJ/F30 9.9626 Tf 297.915 0 Td [(-)]TJ/F8 9.9626 Tf 5.231 0 Td [(,)-461(in)]TJ -303.146 -11.956 Td [(whic)28(h)-302(cas)-1(e)-302(the)-302(default)-302(input)-302(unit)-302(5)-303(\050i.e.)-434(standard)-302(input)-302(in)-302(Unix)-302(jargon\051)-302(is)]TJ 0 -11.955 Td [(used.)-444(Default:)]TJ/F30 9.9626 Tf 66.058 0 Td [(-)]TJ/F8 9.9626 Tf 5.23 0 Td [(.)]TJ +0 g 0 G +/F27 9.9626 Tf -96.195 -19.925 Td [(iunit)]TJ +0 g 0 G +/F8 9.9626 Tf 28.532 0 Td [(The)-333(F)83(ortran)-333(\014le)-334(un)1(it)-334(n)28(um)28(b)-28(er.)]TJ -3.625 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 25.183 0 Td [(optional)]TJ/F8 9.9626 Tf 40.577 0 Td [(.)]TJ -65.76 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(an)-333(in)28(teger)-333(v)55(alue.)-444(Only)-333(me)-1(ani)1(ngful)-334(if)-333(\014lename)-333(is)-334(not)]TJ/F30 9.9626 Tf 286.288 0 Td [(-)]TJ/F8 9.9626 Tf 5.23 0 Td [(.)]TJ +0 g 0 G +/F27 9.9626 Tf -316.425 -21.918 Td [(On)-383(Return)]TJ +0 g 0 G +0 g 0 G + 0 -19.925 Td [(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.899 0 Td [(.)]TJ -67.082 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(structured)-333(data)-333(of)-334(t)28(yp)-28(e)]TJ +0 0 1 rg 0 0 1 RG +/F30 9.9626 Tf 170.915 0 Td [(psb)]TJ +ET +q +1 0 0 1 312.036 452.82 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +Q +BT +/F30 9.9626 Tf 315.174 452.621 Td [(Tspmat)]TJ +ET +q +1 0 0 1 347.183 452.82 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +Q +BT +/F30 9.9626 Tf 350.322 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.348 -19.925 Td [(b)]TJ +0 g 0 G +/F8 9.9626 Tf 11.347 0 Td [(Rigth)-333(hand)-333(s)-1(i)1(de\050s)-1(\051.)]TJ 13.56 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(Optional)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(An)-282(ar)1(ra)27(y)-281(of)-282(t)28(yp)-28(e)-281(real)-282(or)-281(complex,)-292(rank)-282(2)-281(and)-282(ha)28(ving)-281(the)-282(ALLOCA)83(T)84(ABLE)]TJ 0 -11.956 Td [(attribute;)-409(will)-384(b)-28(e)-384(allo)-28(cated)-384(an)1(d)-384(\014lled)-384(in)-384(if)-384(the)-384(input)-384(\014le)-384(con)28(tains)-384(a)-384(righ)28(t)]TJ 0 -11.955 Td [(hand)-333(side,)-334(otherwise)-333(will)-333(b)-28(e)-333(left)-334(in)-333(the)-333(UNALLOCA)83(TED)-333(state.)]TJ +0 g 0 G +/F27 9.9626 Tf -24.907 -19.925 Td [(m)32(title)]TJ +0 g 0 G +/F8 9.9626 Tf 34.738 0 Td [(Matrix)-333(title.)]TJ -9.831 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(Optional)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(A)-405(c)28(harac)28(h)28(ter)-405(v)56(ariable)-405(of)-405(length)-404(72)-405(holding)-405(a)-404(cop)27(y)-404(of)-405(the)-405(matrix)-404(title)-405(as)]TJ 0 -11.956 Td [(sp)-28(eci\014ed)-333(b)28(y)-334(the)-333(Harw)28(ell-Bo)-28(eing)-333(format)-334(and)-333(con)28(tained)-333(in)-334(the)-333(input)-333(\014le.)]TJ +0 g 0 G +/F27 9.9626 Tf -24.907 -19.925 Td [(iret)]TJ +0 g 0 G +/F8 9.9626 Tf 22.589 0 Td [(Error)-333(co)-28(de.)]TJ 2.318 -11.955 Td [(T)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 -194.811 Td [(123)]TJ +0 g 0 G +ET + +endstream +endobj +1671 0 obj << /Length 5239 >> @@ -20583,7 +20891,7 @@ ET endstream endobj -1670 0 obj +1678 0 obj << /Length 3661 >> @@ -20673,7 +20981,7 @@ ET endstream endobj -1676 0 obj +1684 0 obj << /Length 3696 >> @@ -20745,7 +21053,7 @@ ET endstream endobj -1683 0 obj +1691 0 obj << /Length 4176 >> @@ -20839,7 +21147,7 @@ ET endstream endobj -1690 0 obj +1698 0 obj << /Length 3364 >> @@ -20911,7 +21219,7 @@ ET endstream endobj -1696 0 obj +1704 0 obj << /Length 1212 >> @@ -20935,7 +21243,7 @@ ET endstream endobj -1702 0 obj +1710 0 obj << /Length 4508 >> @@ -21019,7 +21327,7 @@ ET endstream endobj -1711 0 obj +1719 0 obj << /Length 7751 >> @@ -21237,7 +21545,7 @@ ET endstream endobj -1715 0 obj +1723 0 obj << /Length 1097 >> @@ -21256,7 +21564,7 @@ ET endstream endobj -1723 0 obj +1731 0 obj << /Length 5847 >> @@ -21406,7 +21714,7 @@ ET endstream endobj -1729 0 obj +1737 0 obj << /Length 2936 >> @@ -21462,7 +21770,7 @@ ET endstream endobj -1733 0 obj +1741 0 obj << /Length 989 >> @@ -21503,7 +21811,7 @@ ET endstream endobj -1739 0 obj +1747 0 obj << /Length 2730 >> @@ -21580,7 +21888,7 @@ ET endstream endobj -1743 0 obj +1751 0 obj << /Length 598 >> @@ -21596,7 +21904,7 @@ ET endstream endobj -1750 0 obj +1758 0 obj << /Length 8299 >> @@ -21746,169 +22054,47 @@ ET endstream endobj -1762 0 obj -<< -/Length 7084 ->> -stream -0 g 0 G -0 g 0 G -0 g 0 G -BT -/F27 9.9626 Tf 99.895 706.129 Td [(prec)]TJ -0 g 0 G -/F8 9.9626 Tf 26.408 0 Td [(The)-333(data)-334(structure)-333(con)28(taining)-333(the)-334(preconditioner.)]TJ -1.501 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.956 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(structured)-333(data)-333(of)-334(t)28(yp)-28(e)]TJ -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 658.507 cm -[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S -Q -BT -/F30 9.9626 Tf 315.174 658.308 Td [(prec)]TJ -ET -q -1 0 0 1 336.723 658.507 cm -[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S -Q -BT -/F30 9.9626 Tf 339.861 658.308 Td [(type)]TJ -0 g 0 G -/F8 9.9626 Tf 20.921 0 Td [(.)]TJ -0 g 0 G -/F27 9.9626 Tf -260.887 -19.427 Td [(b)]TJ -0 g 0 G -/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 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 367.754 591.06 Td [(T)]TJ -ET -q -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 376.751 591.06 Td [(vect)]TJ -ET -q -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 401.438 591.06 Td [(type)]TJ -0 g 0 G -/F8 9.9626 Tf 20.921 0 Td [(.)]TJ -0 g 0 G -/F27 9.9626 Tf -322.464 -19.427 Td [(x)]TJ -0 g 0 G -/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 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 367.754 523.813 Td [(T)]TJ -ET -q -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 376.751 523.813 Td [(vect)]TJ -ET -q -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 401.438 523.813 Td [(type)]TJ -0 g 0 G -/F8 9.9626 Tf 20.921 0 Td [(.)]TJ -0 g 0 G -/F27 9.9626 Tf -322.464 -19.428 Td [(eps)]TJ -0 g 0 G -/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.907 -19.427 Td [(desc)]TJ -ET -q -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 125.247 437.138 Td [(a)]TJ -0 g 0 G -/F8 9.9626 Tf 10.551 0 Td [(con)28(tains)-334(d)1(ata)-334(structures)-333(for)-333(com)-1(m)28(unications.)]TJ -10.996 -11.956 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(structured)-333(data)-333(of)-334(t)28(yp)-28(e)]TJ -0 0 1 rg 0 0 1 RG -/F30 9.9626 Tf 170.915 0 Td [(psb)]TJ -ET -q -1 0 0 1 312.036 389.516 cm -[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S -Q -BT -/F30 9.9626 Tf 315.174 389.317 Td [(desc)]TJ -ET -q -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 339.861 389.317 Td [(type)]TJ -0 g 0 G -/F8 9.9626 Tf 20.921 0 Td [(.)]TJ -0 g 0 G -/F27 9.9626 Tf -260.887 -19.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.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.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(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.907 -19.427 Td [(istop)]TJ -0 g 0 G -/F8 9.9626 Tf 29.232 0 Td [(An)-333(in)28(te)-1(ger)-333(sp)-28(ecifying)-333(the)-333(stopping)-334(crit)1(e)-1(ri)1(on.)]TJ -4.325 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(global)]TJ -0 g 0 G -/F8 9.9626 Tf 107.098 -29.888 Td [(139)]TJ -0 g 0 G -ET - -endstream -endobj -1659 0 obj +1660 0 obj << /Type /ObjStm /N 100 -/First 970 -/Length 10722 +/First 969 +/Length 10502 >> stream -1652 0 1656 145 489 203 1657 260 1658 318 1653 376 1662 482 1660 621 1664 764 493 823 -1665 881 1666 940 1661 999 1669 1105 1667 1244 1671 1389 497 1447 1672 1504 1673 1562 1668 1620 -1675 1726 1677 1844 501 1903 1678 1961 1679 2020 1674 2079 1682 2185 1680 2324 1684 2468 505 2526 -1685 2583 1686 2641 1681 2699 1689 2805 1691 2923 509 2982 1692 3040 1693 3099 1688 3158 1695 3264 -1697 3382 513 3440 1694 3497 1701 3603 1698 3751 1699 3898 1703 4048 517 4107 1704 4165 1700 4223 -1710 4380 1705 4546 1706 4689 1707 4834 1708 4981 1712 5128 521 5186 1709 5243 1714 5349 1716 5467 -1713 5526 1722 5619 1717 5785 1718 5931 1719 6074 1720 6221 1724 6365 525 6423 1721 6480 1728 6586 -1726 6725 1730 6871 529 6930 1727 6988 1732 7120 1734 7238 533 7296 1731 7353 1738 7459 1735 7607 -1736 7753 1740 7900 537 7959 1737 8017 1742 8123 1744 8241 541 8299 1741 8356 1749 8449 1745 8597 -1746 8746 1751 8890 545 8949 1752 9007 1753 9066 1754 9125 1755 9184 1748 9242 1761 9439 1747 9605 -% 1652 0 obj +1659 0 485 59 1656 117 1663 210 1661 349 1665 494 489 552 1666 609 1667 667 1662 725 +1670 831 1668 970 1672 1113 493 1172 1673 1230 1674 1289 1669 1348 1677 1454 1675 1593 1679 1738 +497 1796 1680 1853 1681 1911 1676 1969 1683 2075 1685 2193 501 2252 1686 2310 1687 2369 1682 2428 +1690 2534 1688 2673 1692 2817 505 2875 1693 2932 1694 2990 1689 3048 1697 3154 1699 3272 509 3331 +1700 3389 1701 3448 1696 3507 1703 3613 1705 3731 513 3789 1702 3846 1709 3952 1706 4100 1707 4247 +1711 4397 517 4456 1712 4514 1708 4572 1718 4729 1713 4895 1714 5038 1715 5183 1716 5330 1720 5477 +521 5535 1717 5592 1722 5698 1724 5816 1721 5875 1730 5968 1725 6134 1726 6280 1727 6423 1728 6570 +1732 6714 525 6772 1729 6829 1736 6935 1734 7074 1738 7220 529 7279 1735 7337 1740 7469 1742 7587 +533 7645 1739 7702 1746 7808 1743 7956 1744 8102 1748 8249 537 8308 1745 8366 1750 8472 1752 8590 +541 8648 1749 8705 1757 8798 1753 8946 1754 9095 1759 9239 545 9298 1760 9356 1761 9415 1762 9474 +% 1659 0 obj +<< +/D [1657 0 R /XYZ 149.705 753.953 null] +>> +% 485 0 obj +<< +/D [1657 0 R /XYZ 150.705 716.092 null] +>> +% 1656 0 obj +<< +/Font << /F16 554 0 R /F8 557 0 R /F30 764 0 R >> +/ProcSet [ /PDF /Text ] +>> +% 1663 0 obj +<< +/Type /Page +/Contents 1664 0 R +/Resources 1662 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1655 0 R +/Annots [ 1661 0 R ] +>> +% 1661 0 obj << /Type /Annot /Subtype /Link @@ -21916,37 +22102,37 @@ stream /Rect [294.721 449.411 372.239 460.536] /A << /S /GoTo /D (spdata) >> >> -% 1656 0 obj +% 1665 0 obj << -/D [1654 0 R /XYZ 98.895 753.953 null] +/D [1663 0 R /XYZ 98.895 753.953 null] >> % 489 0 obj << -/D [1654 0 R /XYZ 99.895 720.077 null] +/D [1663 0 R /XYZ 99.895 720.077 null] >> -% 1657 0 obj +% 1666 0 obj << -/D [1654 0 R /XYZ 99.895 677.445 null] +/D [1663 0 R /XYZ 99.895 677.445 null] >> -% 1658 0 obj +% 1667 0 obj << -/D [1654 0 R /XYZ 99.895 679.769 null] +/D [1663 0 R /XYZ 99.895 679.769 null] >> -% 1653 0 obj +% 1662 0 obj << /Font << /F16 554 0 R /F27 556 0 R /F8 557 0 R /F30 764 0 R >> /ProcSet [ /PDF /Text ] >> -% 1662 0 obj +% 1670 0 obj << /Type /Page -/Contents 1663 0 R -/Resources 1661 0 R +/Contents 1671 0 R +/Resources 1669 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1647 0 R -/Annots [ 1660 0 R ] +/Parent 1655 0 R +/Annots [ 1668 0 R ] >> -% 1660 0 obj +% 1668 0 obj << /Type /Annot /Subtype /Link @@ -21954,37 +22140,37 @@ stream /Rect [345.53 582.91 423.049 594.035] /A << /S /GoTo /D (spdata) >> >> -% 1664 0 obj +% 1672 0 obj << -/D [1662 0 R /XYZ 149.705 753.953 null] +/D [1670 0 R /XYZ 149.705 753.953 null] >> % 493 0 obj << -/D [1662 0 R /XYZ 150.705 720.077 null] +/D [1670 0 R /XYZ 150.705 720.077 null] >> -% 1665 0 obj +% 1673 0 obj << -/D [1662 0 R /XYZ 150.705 677.445 null] +/D [1670 0 R /XYZ 150.705 677.445 null] >> -% 1666 0 obj +% 1674 0 obj << -/D [1662 0 R /XYZ 150.705 679.769 null] +/D [1670 0 R /XYZ 150.705 679.769 null] >> -% 1661 0 obj +% 1669 0 obj << /Font << /F16 554 0 R /F27 556 0 R /F8 557 0 R /F30 764 0 R >> /ProcSet [ /PDF /Text ] >> -% 1669 0 obj +% 1677 0 obj << /Type /Page -/Contents 1670 0 R -/Resources 1668 0 R +/Contents 1678 0 R +/Resources 1676 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1647 0 R -/Annots [ 1667 0 R ] +/Parent 1655 0 R +/Annots [ 1675 0 R ] >> -% 1667 0 obj +% 1675 0 obj << /Type /Annot /Subtype /Link @@ -21992,66 +22178,66 @@ stream /Rect [294.721 449.411 372.239 460.536] /A << /S /GoTo /D (spdata) >> >> -% 1671 0 obj +% 1679 0 obj << -/D [1669 0 R /XYZ 98.895 753.953 null] +/D [1677 0 R /XYZ 98.895 753.953 null] >> % 497 0 obj << -/D [1669 0 R /XYZ 99.895 720.077 null] +/D [1677 0 R /XYZ 99.895 720.077 null] >> -% 1672 0 obj +% 1680 0 obj << -/D [1669 0 R /XYZ 99.895 679.769 null] +/D [1677 0 R /XYZ 99.895 679.769 null] >> -% 1673 0 obj +% 1681 0 obj << -/D [1669 0 R /XYZ 99.895 679.769 null] +/D [1677 0 R /XYZ 99.895 679.769 null] >> -% 1668 0 obj +% 1676 0 obj << /Font << /F16 554 0 R /F27 556 0 R /F8 557 0 R /F30 764 0 R >> /ProcSet [ /PDF /Text ] >> -% 1675 0 obj +% 1683 0 obj << /Type /Page -/Contents 1676 0 R -/Resources 1674 0 R +/Contents 1684 0 R +/Resources 1682 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1647 0 R +/Parent 1655 0 R >> -% 1677 0 obj +% 1685 0 obj << -/D [1675 0 R /XYZ 149.705 753.953 null] +/D [1683 0 R /XYZ 149.705 753.953 null] >> % 501 0 obj << -/D [1675 0 R /XYZ 150.705 720.077 null] +/D [1683 0 R /XYZ 150.705 720.077 null] >> -% 1678 0 obj +% 1686 0 obj << -/D [1675 0 R /XYZ 150.705 679.769 null] +/D [1683 0 R /XYZ 150.705 679.769 null] >> -% 1679 0 obj +% 1687 0 obj << -/D [1675 0 R /XYZ 150.705 679.769 null] +/D [1683 0 R /XYZ 150.705 679.769 null] >> -% 1674 0 obj +% 1682 0 obj << /Font << /F16 554 0 R /F27 556 0 R /F8 557 0 R /F30 764 0 R >> /ProcSet [ /PDF /Text ] >> -% 1682 0 obj +% 1690 0 obj << /Type /Page -/Contents 1683 0 R -/Resources 1681 0 R +/Contents 1691 0 R +/Resources 1689 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1687 0 R -/Annots [ 1680 0 R ] +/Parent 1695 0 R +/Annots [ 1688 0 R ] >> -% 1680 0 obj +% 1688 0 obj << /Type /Annot /Subtype /Link @@ -22059,87 +22245,87 @@ stream /Rect [294.721 582.91 372.239 594.035] /A << /S /GoTo /D (spdata) >> >> -% 1684 0 obj +% 1692 0 obj << -/D [1682 0 R /XYZ 98.895 753.953 null] +/D [1690 0 R /XYZ 98.895 753.953 null] >> % 505 0 obj << -/D [1682 0 R /XYZ 99.895 720.077 null] +/D [1690 0 R /XYZ 99.895 720.077 null] >> -% 1685 0 obj +% 1693 0 obj << -/D [1682 0 R /XYZ 99.895 679.769 null] +/D [1690 0 R /XYZ 99.895 679.769 null] >> -% 1686 0 obj +% 1694 0 obj << -/D [1682 0 R /XYZ 99.895 679.769 null] +/D [1690 0 R /XYZ 99.895 679.769 null] >> -% 1681 0 obj +% 1689 0 obj << /Font << /F16 554 0 R /F27 556 0 R /F8 557 0 R /F30 764 0 R >> /ProcSet [ /PDF /Text ] >> -% 1689 0 obj +% 1697 0 obj << /Type /Page -/Contents 1690 0 R -/Resources 1688 0 R +/Contents 1698 0 R +/Resources 1696 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1687 0 R +/Parent 1695 0 R >> -% 1691 0 obj +% 1699 0 obj << -/D [1689 0 R /XYZ 149.705 753.953 null] +/D [1697 0 R /XYZ 149.705 753.953 null] >> % 509 0 obj << -/D [1689 0 R /XYZ 150.705 720.077 null] +/D [1697 0 R /XYZ 150.705 720.077 null] >> -% 1692 0 obj +% 1700 0 obj << -/D [1689 0 R /XYZ 150.705 679.769 null] +/D [1697 0 R /XYZ 150.705 679.769 null] >> -% 1693 0 obj +% 1701 0 obj << -/D [1689 0 R /XYZ 150.705 679.769 null] +/D [1697 0 R /XYZ 150.705 679.769 null] >> -% 1688 0 obj +% 1696 0 obj << /Font << /F16 554 0 R /F27 556 0 R /F8 557 0 R /F30 764 0 R >> /ProcSet [ /PDF /Text ] >> -% 1695 0 obj +% 1703 0 obj << /Type /Page -/Contents 1696 0 R -/Resources 1694 0 R +/Contents 1704 0 R +/Resources 1702 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1687 0 R +/Parent 1695 0 R >> -% 1697 0 obj +% 1705 0 obj << -/D [1695 0 R /XYZ 98.895 753.953 null] +/D [1703 0 R /XYZ 98.895 753.953 null] >> % 513 0 obj << -/D [1695 0 R /XYZ 99.895 716.092 null] +/D [1703 0 R /XYZ 99.895 716.092 null] >> -% 1694 0 obj +% 1702 0 obj << /Font << /F16 554 0 R /F8 557 0 R /F14 767 0 R /F30 764 0 R >> /ProcSet [ /PDF /Text ] >> -% 1701 0 obj +% 1709 0 obj << /Type /Page -/Contents 1702 0 R -/Resources 1700 0 R +/Contents 1710 0 R +/Resources 1708 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1687 0 R -/Annots [ 1698 0 R 1699 0 R ] +/Parent 1695 0 R +/Annots [ 1706 0 R 1707 0 R ] >> -% 1698 0 obj +% 1706 0 obj << /Type /Annot /Subtype /Link @@ -22147,7 +22333,7 @@ stream /Rect [372.153 511.179 439.211 522.304] /A << /S /GoTo /D (precdata) >> >> -% 1699 0 obj +% 1707 0 obj << /Type /Annot /Subtype /Link @@ -22155,33 +22341,33 @@ stream /Rect [219.641 421.792 226.103 433.832] /A << /S /GoTo /D (Hfootnote.4) >> >> -% 1703 0 obj +% 1711 0 obj << -/D [1701 0 R /XYZ 149.705 753.953 null] +/D [1709 0 R /XYZ 149.705 753.953 null] >> % 517 0 obj << -/D [1701 0 R /XYZ 150.705 720.077 null] +/D [1709 0 R /XYZ 150.705 720.077 null] >> -% 1704 0 obj +% 1712 0 obj << -/D [1701 0 R /XYZ 165.948 129.79 null] +/D [1709 0 R /XYZ 165.948 129.79 null] >> -% 1700 0 obj +% 1708 0 obj << /Font << /F16 554 0 R /F30 764 0 R /F27 556 0 R /F8 557 0 R /F11 750 0 R /F7 765 0 R /F32 768 0 R /F31 770 0 R >> /ProcSet [ /PDF /Text ] >> -% 1710 0 obj +% 1718 0 obj << /Type /Page -/Contents 1711 0 R -/Resources 1709 0 R +/Contents 1719 0 R +/Resources 1717 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1687 0 R -/Annots [ 1705 0 R 1706 0 R 1707 0 R 1708 0 R ] +/Parent 1695 0 R +/Annots [ 1713 0 R 1714 0 R 1715 0 R 1716 0 R ] >> -% 1705 0 obj +% 1713 0 obj << /Type /Annot /Subtype /Link @@ -22189,7 +22375,7 @@ stream /Rect [317.856 577.4 395.375 588.524] /A << /S /GoTo /D (spdata) >> >> -% 1706 0 obj +% 1714 0 obj << /Type /Annot /Subtype /Link @@ -22197,7 +22383,7 @@ stream /Rect [396.921 506.7 463.979 517.825] /A << /S /GoTo /D (precdata) >> >> -% 1707 0 obj +% 1715 0 obj << /Type /Annot /Subtype /Link @@ -22205,7 +22391,7 @@ stream /Rect [371.488 436.001 438.546 447.126] /A << /S /GoTo /D (descdata) >> >> -% 1708 0 obj +% 1716 0 obj << /Type /Annot /Subtype /Link @@ -22213,46 +22399,46 @@ stream /Rect [318.576 129.071 385.634 140.196] /A << /S /GoTo /D (precdata) >> >> -% 1712 0 obj +% 1720 0 obj << -/D [1710 0 R /XYZ 98.895 753.953 null] +/D [1718 0 R /XYZ 98.895 753.953 null] >> % 521 0 obj << -/D [1710 0 R /XYZ 99.895 720.077 null] +/D [1718 0 R /XYZ 99.895 720.077 null] >> -% 1709 0 obj +% 1717 0 obj << /Font << /F16 554 0 R /F30 764 0 R /F27 556 0 R /F8 557 0 R >> /ProcSet [ /PDF /Text ] >> -% 1714 0 obj +% 1722 0 obj << /Type /Page -/Contents 1715 0 R -/Resources 1713 0 R +/Contents 1723 0 R +/Resources 1721 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1687 0 R +/Parent 1695 0 R >> -% 1716 0 obj +% 1724 0 obj << -/D [1714 0 R /XYZ 149.705 753.953 null] +/D [1722 0 R /XYZ 149.705 753.953 null] >> -% 1713 0 obj +% 1721 0 obj << /Font << /F27 556 0 R /F8 557 0 R /F30 764 0 R >> /ProcSet [ /PDF /Text ] >> -% 1722 0 obj +% 1730 0 obj << /Type /Page -/Contents 1723 0 R -/Resources 1721 0 R +/Contents 1731 0 R +/Resources 1729 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1725 0 R -/Annots [ 1717 0 R 1718 0 R 1719 0 R 1720 0 R ] +/Parent 1733 0 R +/Annots [ 1725 0 R 1726 0 R 1727 0 R 1728 0 R ] >> -% 1717 0 obj +% 1725 0 obj << /Type /Annot /Subtype /Link @@ -22260,7 +22446,7 @@ stream /Rect [321.343 574.94 388.401 586.065] /A << /S /GoTo /D (precdata) >> >> -% 1718 0 obj +% 1726 0 obj << /Type /Annot /Subtype /Link @@ -22268,7 +22454,7 @@ stream /Rect [347.301 519.15 423.355 530.274] /A << /S /GoTo /D (vdata) >> >> -% 1719 0 obj +% 1727 0 obj << /Type /Annot /Subtype /Link @@ -22276,7 +22462,7 @@ stream /Rect [324.885 463.359 391.943 474.484] /A << /S /GoTo /D (descdata) >> >> -% 1720 0 obj +% 1728 0 obj << /Type /Annot /Subtype /Link @@ -22284,29 +22470,29 @@ stream /Rect [347.301 274.069 423.355 285.194] /A << /S /GoTo /D (vdata) >> >> -% 1724 0 obj +% 1732 0 obj << -/D [1722 0 R /XYZ 98.895 753.953 null] +/D [1730 0 R /XYZ 98.895 753.953 null] >> % 525 0 obj << -/D [1722 0 R /XYZ 99.895 720.077 null] +/D [1730 0 R /XYZ 99.895 720.077 null] >> -% 1721 0 obj +% 1729 0 obj << /Font << /F16 554 0 R /F30 764 0 R /F27 556 0 R /F8 557 0 R >> /ProcSet [ /PDF /Text ] >> -% 1728 0 obj +% 1736 0 obj << /Type /Page -/Contents 1729 0 R -/Resources 1727 0 R +/Contents 1737 0 R +/Resources 1735 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1725 0 R -/Annots [ 1726 0 R ] +/Parent 1733 0 R +/Annots [ 1734 0 R ] >> -% 1726 0 obj +% 1734 0 obj << /Type /Annot /Subtype /Link @@ -22314,50 +22500,50 @@ stream /Rect [372.153 574.94 439.211 586.065] /A << /S /GoTo /D (precdata) >> >> -% 1730 0 obj +% 1738 0 obj << -/D [1728 0 R /XYZ 149.705 753.953 null] +/D [1736 0 R /XYZ 149.705 753.953 null] >> % 529 0 obj << -/D [1728 0 R /XYZ 150.705 720.077 null] +/D [1736 0 R /XYZ 150.705 720.077 null] >> -% 1727 0 obj +% 1735 0 obj << /Font << /F16 554 0 R /F30 764 0 R /F27 556 0 R /F8 557 0 R /F11 750 0 R /F14 767 0 R >> /ProcSet [ /PDF /Text ] >> -% 1732 0 obj +% 1740 0 obj << /Type /Page -/Contents 1733 0 R -/Resources 1731 0 R +/Contents 1741 0 R +/Resources 1739 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1725 0 R +/Parent 1733 0 R >> -% 1734 0 obj +% 1742 0 obj << -/D [1732 0 R /XYZ 98.895 753.953 null] +/D [1740 0 R /XYZ 98.895 753.953 null] >> % 533 0 obj << -/D [1732 0 R /XYZ 99.895 720.077 null] +/D [1740 0 R /XYZ 99.895 720.077 null] >> -% 1731 0 obj +% 1739 0 obj << /Font << /F16 554 0 R /F30 764 0 R /F27 556 0 R /F8 557 0 R >> /ProcSet [ /PDF /Text ] >> -% 1738 0 obj +% 1746 0 obj << /Type /Page -/Contents 1739 0 R -/Resources 1737 0 R +/Contents 1747 0 R +/Resources 1745 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1725 0 R -/Annots [ 1735 0 R 1736 0 R ] +/Parent 1733 0 R +/Annots [ 1743 0 R 1744 0 R ] >> -% 1735 0 obj +% 1743 0 obj << /Type /Annot /Subtype /Link @@ -22365,7 +22551,7 @@ stream /Rect [372.153 574.94 439.211 586.065] /A << /S /GoTo /D (precdata) >> >> -% 1736 0 obj +% 1744 0 obj << /Type /Annot /Subtype /Link @@ -22373,50 +22559,50 @@ stream /Rect [372.153 499.224 439.211 510.349] /A << /S /GoTo /D (precdata) >> >> -% 1740 0 obj +% 1748 0 obj << -/D [1738 0 R /XYZ 149.705 753.953 null] +/D [1746 0 R /XYZ 149.705 753.953 null] >> % 537 0 obj << -/D [1738 0 R /XYZ 150.705 720.077 null] +/D [1746 0 R /XYZ 150.705 720.077 null] >> -% 1737 0 obj +% 1745 0 obj << /Font << /F16 554 0 R /F30 764 0 R /F27 556 0 R /F8 557 0 R >> /ProcSet [ /PDF /Text ] >> -% 1742 0 obj +% 1750 0 obj << /Type /Page -/Contents 1743 0 R -/Resources 1741 0 R +/Contents 1751 0 R +/Resources 1749 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1725 0 R +/Parent 1733 0 R >> -% 1744 0 obj +% 1752 0 obj << -/D [1742 0 R /XYZ 98.895 753.953 null] +/D [1750 0 R /XYZ 98.895 753.953 null] >> % 541 0 obj << -/D [1742 0 R /XYZ 99.895 716.092 null] +/D [1750 0 R /XYZ 99.895 716.092 null] >> -% 1741 0 obj +% 1749 0 obj << /Font << /F16 554 0 R /F8 557 0 R /F30 764 0 R >> /ProcSet [ /PDF /Text ] >> -% 1749 0 obj +% 1757 0 obj << /Type /Page -/Contents 1750 0 R -/Resources 1748 0 R +/Contents 1758 0 R +/Resources 1756 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1725 0 R -/Annots [ 1745 0 R 1746 0 R ] +/Parent 1733 0 R +/Annots [ 1753 0 R 1754 0 R ] >> -% 1745 0 obj +% 1753 0 obj << /Type /Annot /Subtype /Link @@ -22424,7 +22610,7 @@ stream /Rect [384.578 276.229 391.04 288.268] /A << /S /GoTo /D (Hfootnote.5) >> >> -% 1746 0 obj +% 1754 0 obj << /Type /Annot /Subtype /Link @@ -22432,56 +22618,174 @@ stream /Rect [345.53 134.549 423.049 145.674] /A << /S /GoTo /D (spdata) >> >> -% 1751 0 obj +% 1759 0 obj << -/D [1749 0 R /XYZ 149.705 753.953 null] +/D [1757 0 R /XYZ 149.705 753.953 null] >> % 545 0 obj << -/D [1749 0 R /XYZ 150.705 720.077 null] ->> -% 1752 0 obj -<< -/D [1749 0 R /XYZ 150.705 446.608 null] ->> -% 1753 0 obj -<< -/D [1749 0 R /XYZ 150.705 446.608 null] ->> -% 1754 0 obj -<< -/D [1749 0 R /XYZ 150.705 434.653 null] +/D [1757 0 R /XYZ 150.705 720.077 null] >> -% 1755 0 obj +% 1760 0 obj << -/D [1749 0 R /XYZ 165.948 129.79 null] +/D [1757 0 R /XYZ 150.705 446.608 null] >> -% 1748 0 obj +% 1761 0 obj << -/Font << /F16 554 0 R /F8 557 0 R /F27 556 0 R /F11 750 0 R /F14 767 0 R /F10 766 0 R /F7 765 0 R /F30 764 0 R /F32 768 0 R /F31 770 0 R /F33 1756 0 R >> -/ProcSet [ /PDF /Text ] +/D [1757 0 R /XYZ 150.705 446.608 null] >> -% 1761 0 obj +% 1762 0 obj << -/Type /Page -/Contents 1762 0 R -/Resources 1760 0 R -/MediaBox [0 0 595.276 841.89] -/Parent 1764 0 R -/Annots [ 1747 0 R 1757 0 R 1758 0 R 1759 0 R ] +/D [1757 0 R /XYZ 150.705 434.653 null] >> -% 1747 0 obj + +endstream +endobj +1771 0 obj << -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [294.721 655.098 361.779 666.223] -/A << /S /GoTo /D (precdata) >> +/Length 7084 >> +stream +0 g 0 G +0 g 0 G +0 g 0 G +BT +/F27 9.9626 Tf 99.895 706.129 Td [(prec)]TJ +0 g 0 G +/F8 9.9626 Tf 26.408 0 Td [(The)-333(data)-334(structure)-333(con)28(taining)-333(the)-334(preconditioner.)]TJ -1.501 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.956 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(structured)-333(data)-333(of)-334(t)28(yp)-28(e)]TJ +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 658.507 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +Q +BT +/F30 9.9626 Tf 315.174 658.308 Td [(prec)]TJ +ET +q +1 0 0 1 336.723 658.507 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +Q +BT +/F30 9.9626 Tf 339.861 658.308 Td [(type)]TJ +0 g 0 G +/F8 9.9626 Tf 20.921 0 Td [(.)]TJ +0 g 0 G +/F27 9.9626 Tf -260.887 -19.427 Td [(b)]TJ +0 g 0 G +/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 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 367.754 591.06 Td [(T)]TJ +ET +q +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 376.751 591.06 Td [(vect)]TJ +ET +q +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 401.438 591.06 Td [(type)]TJ +0 g 0 G +/F8 9.9626 Tf 20.921 0 Td [(.)]TJ +0 g 0 G +/F27 9.9626 Tf -322.464 -19.427 Td [(x)]TJ +0 g 0 G +/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 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 367.754 523.813 Td [(T)]TJ +ET +q +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 376.751 523.813 Td [(vect)]TJ +ET +q +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 401.438 523.813 Td [(type)]TJ +0 g 0 G +/F8 9.9626 Tf 20.921 0 Td [(.)]TJ +0 g 0 G +/F27 9.9626 Tf -322.464 -19.428 Td [(eps)]TJ +0 g 0 G +/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.907 -19.427 Td [(desc)]TJ +ET +q +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 125.247 437.138 Td [(a)]TJ +0 g 0 G +/F8 9.9626 Tf 10.551 0 Td [(con)28(tains)-334(d)1(ata)-334(structures)-333(for)-333(com)-1(m)28(unications.)]TJ -10.996 -11.956 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(structured)-333(data)-333(of)-334(t)28(yp)-28(e)]TJ +0 0 1 rg 0 0 1 RG +/F30 9.9626 Tf 170.915 0 Td [(psb)]TJ +ET +q +1 0 0 1 312.036 389.516 cm +[]0 d 0 J 0.398 w 0 0 m 3.138 0 l S +Q +BT +/F30 9.9626 Tf 315.174 389.317 Td [(desc)]TJ +ET +q +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 339.861 389.317 Td [(type)]TJ +0 g 0 G +/F8 9.9626 Tf 20.921 0 Td [(.)]TJ +0 g 0 G +/F27 9.9626 Tf -260.887 -19.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.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.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(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.907 -19.427 Td [(istop)]TJ +0 g 0 G +/F8 9.9626 Tf 29.232 0 Td [(An)-333(in)28(te)-1(ger)-333(sp)-28(ecifying)-333(the)-333(stopping)-334(crit)1(e)-1(ri)1(on.)]TJ -4.325 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(global)]TJ +0 g 0 G +/F8 9.9626 Tf 107.098 -29.888 Td [(139)]TJ +0 g 0 G +ET endstream endobj -1769 0 obj +1777 0 obj << /Length 4414 >> @@ -22545,7 +22849,7 @@ ET endstream endobj -1773 0 obj +1781 0 obj << /Length 7014 >> @@ -22609,7 +22913,7 @@ ET endstream endobj -1781 0 obj +1789 0 obj << /Length 3124 >> @@ -22652,7 +22956,7 @@ ET endstream endobj -1803 0 obj +1811 0 obj << /Length1 2422 /Length2 20069 @@ -22832,7 +23136,7 @@ h ©ë–} ¸Œhj¬ÑÉ£f/›IV+\}3bGU ý5"©+IU(€oVžNo±íì⮂Øš¢b"Ñð±öÞ¢:’7cÂéx€ås¯t£! ‹@ïÇ%e)òûÀÒ\ /œCÿsoµ^“ªê- qhÏKä¡p Ú€ó&êØ /_Ïü endstream endobj -1805 0 obj +1813 0 obj << /Length1 2366 /Length2 17268 @@ -23011,7 +23315,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 -1807 0 obj +1815 0 obj << /Length1 1599 /Length2 8420 @@ -23103,7 +23407,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 -1813 0 obj +1821 0 obj << /Length1 1519 /Length2 8224 @@ -23413,7 +23717,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 -1815 0 obj +1823 0 obj << /Length1 1413 /Length2 6524 @@ -23487,7 +23791,7 @@ 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 -1817 0 obj +1825 0 obj << /Length1 2668 /Length2 23272 @@ -23710,7 +24014,7 @@ A ôiÃÁe~xž,”„¦ë 2¼ç÷«!`z@r endstream endobj -1819 0 obj +1827 0 obj << /Length1 1425 /Length2 6648 @@ -23789,7 +24093,7 @@ B !çðN6Ê@ |õ^ö(Ì®‡Pˆr@¸Í€ endstream endobj -1831 0 obj +1839 0 obj << /Length1 2199 /Length2 18119 @@ -24530,7 +24834,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 -1833 0 obj +1841 0 obj << /Length1 1699 /Length2 10351 @@ -24637,7 +24941,7 @@ qO' ÔX¦Ç ë¾A±©µ ÷•©SÞt²•äoC‹Kžr 0ìE·½õ1”O®&é ò™\e;HË lüqάa]Ÿ´þ_i0yÏ4Þ ^2’™Óè0‘ endstream endobj -1835 0 obj +1843 0 obj << /Length1 2477 /Length2 17492 @@ -24822,7 +25126,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 -1837 0 obj +1845 0 obj << /Length1 1494 /Length2 2555 @@ -24886,7 +25190,7 @@ currentfile eexec &Ì¡‰ç·Y5<1B îdlaà;À«9^¿'l„Hn,³ÛúºW˜÷ƒ{ÐÊY³µ¬Ô[œvñ endstream endobj -1839 0 obj +1847 0 obj << /Length1 1656 /Length2 8404 @@ -24998,23 +25302,49 @@ endstream endobj 1765 0 obj << -/Type /ObjStm -/N 100 -/First 997 -/Length 20428 +/Type /ObjStm +/N 100 +/First 998 +/Length 20534 +>> +stream +1763 0 1756 58 1770 255 1755 421 1766 568 1767 711 1768 855 1772 1002 1769 1060 1776 1179 +1774 1318 1778 1462 1775 1521 1780 1627 1782 1745 1783 1803 734 1861 1784 1918 785 1975 784 2032 +740 2089 741 2146 757 2203 737 2260 738 2317 1785 2374 733 2432 1786 2489 1779 2547 1788 2640 +1790 2758 898 2817 772 2875 739 2933 736 2991 732 3049 735 3107 1791 3165 1787 3224 1792 3317 +1793 3362 1794 3501 1795 3995 1796 4324 1797 4667 1798 4796 1799 4817 1800 5323 1801 5368 1802 6058 +1803 6386 1804 6467 1805 6842 1806 7479 1807 8138 1808 8761 1809 9405 1810 9690 1812 10338 1814 10768 +1816 11191 1818 11440 1820 11768 1822 11985 1824 12224 1826 12446 1828 12983 1830 13220 1832 13468 1834 13850 +1836 14216 1838 14555 1840 14786 1842 15159 1844 15422 1846 15906 1848 16138 556 16422 554 16563 1607 16704 +750 16845 797 16986 766 17127 1764 17267 557 17407 768 17547 765 17685 770 17823 1170 17962 767 18102 +1082 18242 730 18381 555 18522 764 18663 825 18804 957 18944 558 19084 731 19197 826 19310 882 19423 +% 1763 0 obj +<< +/D [1757 0 R /XYZ 165.948 129.79 null] +>> +% 1756 0 obj +<< +/Font << /F16 554 0 R /F8 557 0 R /F27 556 0 R /F11 750 0 R /F14 767 0 R /F10 766 0 R /F7 765 0 R /F30 764 0 R /F32 768 0 R /F31 770 0 R /F33 1764 0 R >> +/ProcSet [ /PDF /Text ] +>> +% 1770 0 obj +<< +/Type /Page +/Contents 1771 0 R +/Resources 1769 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1773 0 R +/Annots [ 1755 0 R 1766 0 R 1767 0 R 1768 0 R ] >> -stream -1757 0 1758 143 1759 287 1763 434 1760 492 1768 611 1766 750 1770 894 1767 953 1772 1059 -1774 1177 1775 1235 734 1293 1776 1350 785 1407 784 1464 740 1521 741 1578 757 1635 737 1692 -738 1749 1777 1806 733 1864 1778 1921 1771 1979 1780 2072 1782 2190 898 2249 772 2307 739 2365 -736 2423 732 2481 735 2539 1783 2597 1779 2656 1784 2749 1785 2794 1786 2933 1787 3427 1788 3756 -1789 4099 1790 4228 1791 4249 1792 4755 1793 4800 1794 5490 1795 5818 1796 5899 1797 6274 1798 6911 -1799 7570 1800 8193 1801 8837 1802 9122 1804 9770 1806 10200 1808 10623 1810 10872 1812 11200 1814 11417 -1816 11656 1818 11878 1820 12415 1822 12652 1824 12900 1826 13282 1828 13648 1830 13987 1832 14218 1834 14591 -1836 14854 1838 15338 1840 15570 556 15854 554 15995 1599 16136 750 16277 797 16418 766 16559 1756 16699 -557 16839 768 16979 765 17117 770 17255 1166 17394 767 17534 1082 17674 730 17813 555 17954 764 18095 -825 18236 957 18376 558 18516 731 18629 826 18742 882 18855 917 18968 948 19081 995 19194 1040 19311 -% 1757 0 obj +% 1755 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [294.721 655.098 361.779 666.223] +/A << /S /GoTo /D (precdata) >> +>> +% 1766 0 obj << /Type /Annot /Subtype /Link @@ -25022,7 +25352,7 @@ stream /Rect [347.301 587.85 423.355 598.975] /A << /S /GoTo /D (vdata) >> >> -% 1758 0 obj +% 1767 0 obj << /Type /Annot /Subtype /Link @@ -25030,7 +25360,7 @@ stream /Rect [347.301 520.602 423.355 531.727] /A << /S /GoTo /D (vdata) >> >> -% 1759 0 obj +% 1768 0 obj << /Type /Annot /Subtype /Link @@ -25038,25 +25368,25 @@ stream /Rect [294.721 386.107 361.779 397.232] /A << /S /GoTo /D (descdata) >> >> -% 1763 0 obj +% 1772 0 obj << -/D [1761 0 R /XYZ 98.895 753.953 null] +/D [1770 0 R /XYZ 98.895 753.953 null] >> -% 1760 0 obj +% 1769 0 obj << /Font << /F27 556 0 R /F8 557 0 R /F30 764 0 R /F11 750 0 R /F14 767 0 R >> /ProcSet [ /PDF /Text ] >> -% 1768 0 obj +% 1776 0 obj << /Type /Page -/Contents 1769 0 R -/Resources 1767 0 R +/Contents 1777 0 R +/Resources 1775 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1764 0 R -/Annots [ 1766 0 R ] +/Parent 1773 0 R +/Annots [ 1774 0 R ] >> -% 1766 0 obj +% 1774 0 obj << /Type /Annot /Subtype /Link @@ -25064,168 +25394,168 @@ stream /Rect [398.111 579.382 474.165 590.507] /A << /S /GoTo /D (vdata) >> >> -% 1770 0 obj +% 1778 0 obj << -/D [1768 0 R /XYZ 149.705 753.953 null] +/D [1776 0 R /XYZ 149.705 753.953 null] >> -% 1767 0 obj +% 1775 0 obj << /Font << /F8 557 0 R /F27 556 0 R /F30 764 0 R /F11 750 0 R >> /ProcSet [ /PDF /Text ] >> -% 1772 0 obj +% 1780 0 obj << /Type /Page -/Contents 1773 0 R -/Resources 1771 0 R +/Contents 1781 0 R +/Resources 1779 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1764 0 R +/Parent 1773 0 R >> -% 1774 0 obj +% 1782 0 obj << -/D [1772 0 R /XYZ 98.895 753.953 null] +/D [1780 0 R /XYZ 98.895 753.953 null] >> -% 1775 0 obj +% 1783 0 obj << -/D [1772 0 R /XYZ 99.895 724.062 null] +/D [1780 0 R /XYZ 99.895 724.062 null] >> % 734 0 obj << -/D [1772 0 R /XYZ 99.895 699.619 null] +/D [1780 0 R /XYZ 99.895 699.619 null] >> -% 1776 0 obj +% 1784 0 obj << -/D [1772 0 R /XYZ 99.895 643.15 null] +/D [1780 0 R /XYZ 99.895 643.15 null] >> % 785 0 obj << -/D [1772 0 R /XYZ 99.895 588.618 null] +/D [1780 0 R /XYZ 99.895 588.618 null] >> % 784 0 obj << -/D [1772 0 R /XYZ 99.895 534.087 null] +/D [1780 0 R /XYZ 99.895 534.087 null] >> % 740 0 obj << -/D [1772 0 R /XYZ 99.895 479.555 null] +/D [1780 0 R /XYZ 99.895 479.555 null] >> % 741 0 obj << -/D [1772 0 R /XYZ 99.895 436.978 null] +/D [1780 0 R /XYZ 99.895 436.978 null] >> % 757 0 obj << -/D [1772 0 R /XYZ 99.895 394.402 null] +/D [1780 0 R /XYZ 99.895 394.402 null] >> % 737 0 obj << -/D [1772 0 R /XYZ 99.895 351.272 null] +/D [1780 0 R /XYZ 99.895 351.272 null] >> % 738 0 obj << -/D [1772 0 R /XYZ 99.895 308.696 null] +/D [1780 0 R /XYZ 99.895 308.696 null] >> -% 1777 0 obj +% 1785 0 obj << -/D [1772 0 R /XYZ 99.895 266.119 null] +/D [1780 0 R /XYZ 99.895 266.119 null] >> % 733 0 obj << -/D [1772 0 R /XYZ 99.895 223.543 null] +/D [1780 0 R /XYZ 99.895 223.543 null] >> -% 1778 0 obj +% 1786 0 obj << -/D [1772 0 R /XYZ 99.895 180.966 null] +/D [1780 0 R /XYZ 99.895 180.966 null] >> -% 1771 0 obj +% 1779 0 obj << /Font << /F16 554 0 R /F8 557 0 R /F17 730 0 R >> /ProcSet [ /PDF /Text ] >> -% 1780 0 obj +% 1788 0 obj << /Type /Page -/Contents 1781 0 R -/Resources 1779 0 R +/Contents 1789 0 R +/Resources 1787 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1764 0 R +/Parent 1773 0 R >> -% 1782 0 obj +% 1790 0 obj << -/D [1780 0 R /XYZ 149.705 753.953 null] +/D [1788 0 R /XYZ 149.705 753.953 null] >> % 898 0 obj << -/D [1780 0 R /XYZ 150.705 716.092 null] +/D [1788 0 R /XYZ 150.705 716.092 null] >> % 772 0 obj << -/D [1780 0 R /XYZ 150.705 688.251 null] +/D [1788 0 R /XYZ 150.705 688.251 null] >> % 739 0 obj << -/D [1780 0 R /XYZ 150.705 632.184 null] +/D [1788 0 R /XYZ 150.705 632.184 null] >> % 736 0 obj << -/D [1780 0 R /XYZ 150.705 590.562 null] +/D [1788 0 R /XYZ 150.705 590.562 null] >> % 732 0 obj << -/D [1780 0 R /XYZ 150.705 544.789 null] +/D [1788 0 R /XYZ 150.705 544.789 null] >> % 735 0 obj << -/D [1780 0 R /XYZ 150.705 512.909 null] +/D [1788 0 R /XYZ 150.705 512.909 null] >> -% 1783 0 obj +% 1791 0 obj << -/D [1780 0 R /XYZ 150.705 480.475 null] +/D [1788 0 R /XYZ 150.705 480.475 null] >> -% 1779 0 obj +% 1787 0 obj << /Font << /F8 557 0 R /F17 730 0 R /F30 764 0 R >> /ProcSet [ /PDF /Text ] >> -% 1784 0 obj +% 1792 0 obj [757.3 871.7 778.7 672.4 827.9] -% 1785 0 obj +% 1793 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] -% 1786 0 obj +% 1794 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] -% 1787 0 obj +% 1795 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] -% 1788 0 obj +% 1796 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] -% 1789 0 obj +% 1797 0 obj [531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3] -% 1790 0 obj +% 1798 0 obj [533.6] -% 1791 0 obj +% 1799 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] -% 1792 0 obj +% 1800 0 obj [611.1 611.1 611.1 611.1 611.1] -% 1793 0 obj +% 1801 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] -% 1794 0 obj +% 1802 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] -% 1795 0 obj +% 1803 0 obj [569.5 569.5 569.5 569.5 569.5 569.5 569.5 569.5 569.5 569.5 323.4] -% 1796 0 obj +% 1804 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] -% 1797 0 obj +% 1805 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] -% 1798 0 obj +% 1806 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] -% 1799 0 obj +% 1807 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] -% 1800 0 obj +% 1808 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] -% 1801 0 obj +% 1809 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] -% 1802 0 obj +% 1810 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] -% 1804 0 obj +% 1812 0 obj << /Type /FontDescriptor /FontName /RAJOBS+CMBX10 @@ -25238,9 +25568,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 1803 0 R +/FontFile 1811 0 R >> -% 1806 0 obj +% 1814 0 obj << /Type /FontDescriptor /FontName /GBHFLB+CMBX12 @@ -25253,9 +25583,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 1805 0 R +/FontFile 1813 0 R >> -% 1808 0 obj +% 1816 0 obj << /Type /FontDescriptor /FontName /VUBHOM+CMBX9 @@ -25268,9 +25598,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 1807 0 R +/FontFile 1815 0 R >> -% 1810 0 obj +% 1818 0 obj << /Type /FontDescriptor /FontName /PUWBWT+CMMI10 @@ -25283,9 +25613,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 1809 0 R +/FontFile 1817 0 R >> -% 1812 0 obj +% 1820 0 obj << /Type /FontDescriptor /FontName /RVPZIX+CMMI5 @@ -25298,9 +25628,9 @@ stream /StemV 90 /XHeight 431 /CharSet (/i) -/FontFile 1811 0 R +/FontFile 1819 0 R >> -% 1814 0 obj +% 1822 0 obj << /Type /FontDescriptor /FontName /ZUYGVH+CMMI7 @@ -25313,9 +25643,9 @@ stream /StemV 81 /XHeight 431 /CharSet (/H/I/T/a/comma/i/j/k/m/n) -/FontFile 1813 0 R +/FontFile 1821 0 R >> -% 1816 0 obj +% 1824 0 obj << /Type /FontDescriptor /FontName /ZOAUSA+CMMI8 @@ -25328,9 +25658,9 @@ stream /StemV 78 /XHeight 431 /CharSet (/C/F/G) -/FontFile 1815 0 R +/FontFile 1823 0 R >> -% 1818 0 obj +% 1826 0 obj << /Type /FontDescriptor /FontName /SEWPRR+CMR10 @@ -25343,9 +25673,9 @@ stream /StemV 69 /XHeight 431 /CharSet (/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/R/S/T/U/V/W/X/a/ampersand/b/bracketleft/bracketright/c/colon/comma/d/e/eight/endash/equal/f/ff/ffi/fi/five/fl/four/g/h/hyphen/i/j/k/l/m/n/nine/o/one/p/parenleft/parenright/percent/period/plus/q/quotedblleft/quotedblright/quoteright/r/s/semicolon/seven/six/slash/t/three/two/u/v/w/x/y/z/zero) -/FontFile 1817 0 R +/FontFile 1825 0 R >> -% 1820 0 obj +% 1828 0 obj << /Type /FontDescriptor /FontName /UJRPBG+CMR6 @@ -25358,9 +25688,9 @@ stream /StemV 83 /XHeight 431 /CharSet (/five/four/one/three/two) -/FontFile 1819 0 R +/FontFile 1827 0 R >> -% 1822 0 obj +% 1830 0 obj << /Type /FontDescriptor /FontName /GIODUE+CMR7 @@ -25373,9 +25703,9 @@ stream /StemV 79 /XHeight 431 /CharSet (/colon/five/four/one/three/two/zero) -/FontFile 1821 0 R +/FontFile 1829 0 R >> -% 1824 0 obj +% 1832 0 obj << /Type /FontDescriptor /FontName /HFTEUS+CMR8 @@ -25388,9 +25718,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/k/l/m/n/nine/o/one/p/parenleft/parenright/period/q/r/s/seven/six/slash/t/three/two/u/v/w/x/y/zero) -/FontFile 1823 0 R +/FontFile 1831 0 R >> -% 1826 0 obj +% 1834 0 obj << /Type /FontDescriptor /FontName /KKURMF+CMR9 @@ -25403,9 +25733,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 1825 0 R +/FontFile 1833 0 R >> -% 1828 0 obj +% 1836 0 obj << /Type /FontDescriptor /FontName /IMOIOS+CMSY10 @@ -25418,9 +25748,9 @@ stream /StemV 40 /XHeight 431 /CharSet (/B/H/I/arrowleft/bar/bardbl/braceleft/braceright/bullet/element/greaterequal/lessequal/minus/negationslash/radical/section) -/FontFile 1827 0 R +/FontFile 1835 0 R >> -% 1830 0 obj +% 1838 0 obj << /Type /FontDescriptor /FontName /XNLILI+CMSY7 @@ -25433,9 +25763,9 @@ stream /StemV 49 /XHeight 431 /CharSet (/infinity/minus) -/FontFile 1829 0 R +/FontFile 1837 0 R >> -% 1832 0 obj +% 1840 0 obj << /Type /FontDescriptor /FontName /HBJLDT+CMTI10 @@ -25448,9 +25778,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 1831 0 R +/FontFile 1839 0 R >> -% 1834 0 obj +% 1842 0 obj << /Type /FontDescriptor /FontName /OZJPZO+CMTI12 @@ -25463,9 +25793,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 1833 0 R +/FontFile 1841 0 R >> -% 1836 0 obj +% 1844 0 obj << /Type /FontDescriptor /FontName /BGSLBR+CMTT10 @@ -25478,9 +25808,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 1835 0 R +/FontFile 1843 0 R >> -% 1838 0 obj +% 1846 0 obj << /Type /FontDescriptor /FontName /HZGQIC+CMTT8 @@ -25493,9 +25823,9 @@ stream /StemV 76 /XHeight 431 /CharSet (/b/c/e/i/l/n/p/r/s/t) -/FontFile 1837 0 R +/FontFile 1845 0 R >> -% 1840 0 obj +% 1848 0 obj << /Type /FontDescriptor /FontName /KMUHVJ+CMTT9 @@ -25508,436 +25838,436 @@ 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 1839 0 R +/FontFile 1847 0 R >> % 556 0 obj << /Type /Font /Subtype /Type1 /BaseFont /RAJOBS+CMBX10 -/FontDescriptor 1804 0 R +/FontDescriptor 1812 0 R /FirstChar 11 /LastChar 124 -/Widths 1800 0 R +/Widths 1808 0 R >> % 554 0 obj << /Type /Font /Subtype /Type1 /BaseFont /GBHFLB+CMBX12 -/FontDescriptor 1806 0 R +/FontDescriptor 1814 0 R /FirstChar 12 /LastChar 124 -/Widths 1802 0 R +/Widths 1810 0 R >> -% 1599 0 obj +% 1607 0 obj << /Type /Font /Subtype /Type1 /BaseFont /VUBHOM+CMBX9 -/FontDescriptor 1808 0 R +/FontDescriptor 1816 0 R /FirstChar 97 /LastChar 117 -/Widths 1785 0 R +/Widths 1793 0 R >> % 750 0 obj << /Type /Font /Subtype /Type1 /BaseFont /PUWBWT+CMMI10 -/FontDescriptor 1810 0 R +/FontDescriptor 1818 0 R /FirstChar 11 /LastChar 122 -/Widths 1797 0 R +/Widths 1805 0 R >> % 797 0 obj << /Type /Font /Subtype /Type1 /BaseFont /RVPZIX+CMMI5 -/FontDescriptor 1812 0 R +/FontDescriptor 1820 0 R /FirstChar 105 /LastChar 105 -/Widths 1790 0 R +/Widths 1798 0 R >> % 766 0 obj << /Type /Font /Subtype /Type1 /BaseFont /ZUYGVH+CMMI7 -/FontDescriptor 1814 0 R +/FontDescriptor 1822 0 R /FirstChar 59 /LastChar 110 -/Widths 1794 0 R +/Widths 1802 0 R >> -% 1756 0 obj +% 1764 0 obj << /Type /Font /Subtype /Type1 /BaseFont /ZOAUSA+CMMI8 -/FontDescriptor 1816 0 R +/FontDescriptor 1824 0 R /FirstChar 67 /LastChar 71 -/Widths 1784 0 R +/Widths 1792 0 R >> % 557 0 obj << /Type /Font /Subtype /Type1 /BaseFont /SEWPRR+CMR10 -/FontDescriptor 1818 0 R +/FontDescriptor 1826 0 R /FirstChar 11 /LastChar 123 -/Widths 1799 0 R +/Widths 1807 0 R >> % 768 0 obj << /Type /Font /Subtype /Type1 /BaseFont /UJRPBG+CMR6 -/FontDescriptor 1820 0 R +/FontDescriptor 1828 0 R /FirstChar 49 /LastChar 53 -/Widths 1792 0 R +/Widths 1800 0 R >> % 765 0 obj << /Type /Font /Subtype /Type1 /BaseFont /GIODUE+CMR7 -/FontDescriptor 1822 0 R +/FontDescriptor 1830 0 R /FirstChar 48 /LastChar 58 -/Widths 1795 0 R +/Widths 1803 0 R >> % 770 0 obj << /Type /Font /Subtype /Type1 /BaseFont /HFTEUS+CMR8 -/FontDescriptor 1824 0 R +/FontDescriptor 1832 0 R /FirstChar 40 /LastChar 121 -/Widths 1791 0 R +/Widths 1799 0 R >> -% 1166 0 obj +% 1170 0 obj << /Type /Font /Subtype /Type1 /BaseFont /KKURMF+CMR9 -/FontDescriptor 1826 0 R +/FontDescriptor 1834 0 R /FirstChar 39 /LastChar 122 -/Widths 1786 0 R +/Widths 1794 0 R >> % 767 0 obj << /Type /Font /Subtype /Type1 /BaseFont /IMOIOS+CMSY10 -/FontDescriptor 1828 0 R +/FontDescriptor 1836 0 R /FirstChar 0 /LastChar 120 -/Widths 1793 0 R +/Widths 1801 0 R >> % 1082 0 obj << /Type /Font /Subtype /Type1 /BaseFont /XNLILI+CMSY7 -/FontDescriptor 1830 0 R +/FontDescriptor 1838 0 R /FirstChar 0 /LastChar 49 -/Widths 1787 0 R +/Widths 1795 0 R >> % 730 0 obj << /Type /Font /Subtype /Type1 /BaseFont /HBJLDT+CMTI10 -/FontDescriptor 1832 0 R +/FontDescriptor 1840 0 R /FirstChar 11 /LastChar 121 -/Widths 1798 0 R +/Widths 1806 0 R >> % 555 0 obj << /Type /Font /Subtype /Type1 /BaseFont /OZJPZO+CMTI12 -/FontDescriptor 1834 0 R +/FontDescriptor 1842 0 R /FirstChar 65 /LastChar 121 -/Widths 1801 0 R +/Widths 1809 0 R >> % 764 0 obj << /Type /Font /Subtype /Type1 /BaseFont /BGSLBR+CMTT10 -/FontDescriptor 1836 0 R +/FontDescriptor 1844 0 R /FirstChar 37 /LastChar 126 -/Widths 1796 0 R +/Widths 1804 0 R >> % 825 0 obj << /Type /Font /Subtype /Type1 /BaseFont /HZGQIC+CMTT8 -/FontDescriptor 1838 0 R +/FontDescriptor 1846 0 R /FirstChar 98 /LastChar 116 -/Widths 1789 0 R +/Widths 1797 0 R >> % 957 0 obj << /Type /Font /Subtype /Type1 /BaseFont /KMUHVJ+CMTT9 -/FontDescriptor 1840 0 R +/FontDescriptor 1848 0 R /FirstChar 40 /LastChar 121 -/Widths 1788 0 R +/Widths 1796 0 R >> % 558 0 obj << /Type /Pages /Count 6 -/Parent 1841 0 R +/Parent 1849 0 R /Kids [549 0 R 560 0 R 611 0 R 664 0 R 709 0 R 714 0 R] >> % 731 0 obj << /Type /Pages /Count 6 -/Parent 1841 0 R +/Parent 1849 0 R /Kids [728 0 R 748 0 R 761 0 R 777 0 R 789 0 R 794 0 R] >> % 826 0 obj << /Type /Pages /Count 6 -/Parent 1841 0 R +/Parent 1849 0 R /Kids [808 0 R 830 0 R 841 0 R 851 0 R 864 0 R 875 0 R] >> % 882 0 obj << /Type /Pages /Count 6 -/Parent 1841 0 R +/Parent 1849 0 R /Kids [879 0 R 884 0 R 892 0 R 900 0 R 904 0 R 909 0 R] >> + +endstream +endobj +1850 0 obj +<< +/Type /ObjStm +/N 100 +/First 914 +/Length 10489 +>> +stream +917 0 948 113 995 226 1040 343 1084 463 1138 583 1198 703 1246 823 1288 943 1328 1063 +1378 1183 1413 1303 1449 1423 1488 1543 1529 1663 1556 1783 1592 1903 1655 2023 1695 2143 1733 2263 +1773 2383 1849 2485 1851 2600 1852 2720 1853 2841 1854 2962 1855 3037 1856 3133 546 3202 542 3262 +538 3373 534 3447 530 3535 526 3623 522 3711 518 3799 514 3873 510 3998 506 4072 502 4160 +498 4248 494 4336 490 4424 486 4498 482 4623 478 4697 474 4785 470 4873 466 4947 462 5072 +458 5146 454 5234 450 5322 446 5410 442 5498 438 5586 434 5674 430 5762 426 5850 422 5938 +418 6026 414 6114 410 6202 406 6290 401 6378 397 6452 393 6578 389 6652 385 6740 381 6828 +377 6916 373 7004 369 7092 365 7180 361 7268 357 7356 353 7444 349 7532 345 7620 341 7708 +337 7796 333 7884 329 7972 325 8060 321 8148 317 8236 313 8324 309 8412 305 8500 301 8588 +297 8676 293 8764 289 8852 285 8926 281 9052 277 9126 273 9214 269 9302 265 9376 261 9501 % 917 0 obj << /Type /Pages /Count 6 -/Parent 1841 0 R +/Parent 1849 0 R /Kids [914 0 R 919 0 R 923 0 R 927 0 R 933 0 R 939 0 R] >> % 948 0 obj << /Type /Pages /Count 6 -/Parent 1841 0 R +/Parent 1849 0 R /Kids [945 0 R 953 0 R 960 0 R 964 0 R 975 0 R 981 0 R] >> % 995 0 obj << /Type /Pages /Count 6 -/Parent 1842 0 R +/Parent 1851 0 R /Kids [991 0 R 997 0 R 1007 0 R 1013 0 R 1020 0 R 1028 0 R] >> % 1040 0 obj << /Type /Pages /Count 6 -/Parent 1842 0 R +/Parent 1851 0 R /Kids [1036 0 R 1045 0 R 1050 0 R 1057 0 R 1065 0 R 1072 0 R] >> - -endstream -endobj -1843 0 obj -<< -/Type /ObjStm -/N 100 -/First 913 -/Length 10377 ->> -stream -1084 0 1138 120 1194 240 1238 360 1280 480 1320 600 1370 720 1405 840 1441 960 1480 1080 -1521 1200 1548 1320 1584 1440 1647 1560 1687 1680 1725 1800 1764 1920 1841 2022 1842 2137 1844 2257 -1845 2378 1846 2499 1847 2574 1848 2670 546 2739 542 2799 538 2910 534 2984 530 3072 526 3160 -522 3248 518 3336 514 3410 510 3535 506 3609 502 3697 498 3785 494 3873 490 3961 486 4035 -482 4160 478 4234 474 4322 470 4410 466 4484 462 4609 458 4683 454 4771 450 4859 446 4947 -442 5035 438 5123 434 5211 430 5299 426 5387 422 5475 418 5563 414 5651 410 5739 406 5827 -401 5915 397 5989 393 6115 389 6189 385 6277 381 6365 377 6453 373 6541 369 6629 365 6717 -361 6805 357 6893 353 6981 349 7069 345 7157 341 7245 337 7333 333 7421 329 7509 325 7597 -321 7685 317 7773 313 7861 309 7949 305 8037 301 8125 297 8213 293 8301 289 8389 285 8463 -281 8589 277 8663 273 8751 269 8839 265 8913 261 9038 257 9112 253 9200 249 9288 245 9376 % 1084 0 obj << /Type /Pages /Count 6 -/Parent 1842 0 R +/Parent 1851 0 R /Kids [1079 0 R 1091 0 R 1106 0 R 1112 0 R 1124 0 R 1130 0 R] >> % 1138 0 obj << /Type /Pages /Count 6 -/Parent 1842 0 R -/Kids [1135 0 R 1144 0 R 1154 0 R 1163 0 R 1171 0 R 1183 0 R] +/Parent 1851 0 R +/Kids [1135 0 R 1144 0 R 1154 0 R 1167 0 R 1175 0 R 1187 0 R] >> -% 1194 0 obj +% 1198 0 obj << /Type /Pages /Count 6 -/Parent 1842 0 R -/Kids [1191 0 R 1196 0 R 1207 0 R 1215 0 R 1221 0 R 1231 0 R] +/Parent 1851 0 R +/Kids [1195 0 R 1200 0 R 1215 0 R 1223 0 R 1229 0 R 1239 0 R] >> -% 1238 0 obj +% 1246 0 obj << /Type /Pages /Count 6 -/Parent 1842 0 R -/Kids [1235 0 R 1241 0 R 1247 0 R 1252 0 R 1262 0 R 1267 0 R] +/Parent 1851 0 R +/Kids [1243 0 R 1249 0 R 1255 0 R 1260 0 R 1270 0 R 1275 0 R] >> -% 1280 0 obj +% 1288 0 obj << /Type /Pages /Count 6 -/Parent 1844 0 R -/Kids [1276 0 R 1284 0 R 1289 0 R 1295 0 R 1299 0 R 1307 0 R] +/Parent 1852 0 R +/Kids [1284 0 R 1292 0 R 1297 0 R 1303 0 R 1307 0 R 1315 0 R] >> -% 1320 0 obj +% 1328 0 obj << /Type /Pages /Count 6 -/Parent 1844 0 R -/Kids [1317 0 R 1322 0 R 1337 0 R 1342 0 R 1354 0 R 1360 0 R] +/Parent 1852 0 R +/Kids [1325 0 R 1330 0 R 1346 0 R 1350 0 R 1362 0 R 1368 0 R] >> -% 1370 0 obj +% 1378 0 obj << /Type /Pages /Count 6 -/Parent 1844 0 R -/Kids [1367 0 R 1374 0 R 1378 0 R 1387 0 R 1393 0 R 1397 0 R] +/Parent 1852 0 R +/Kids [1375 0 R 1382 0 R 1386 0 R 1395 0 R 1401 0 R 1405 0 R] >> -% 1405 0 obj +% 1413 0 obj << /Type /Pages /Count 6 -/Parent 1844 0 R -/Kids [1402 0 R 1407 0 R 1414 0 R 1419 0 R 1425 0 R 1431 0 R] +/Parent 1852 0 R +/Kids [1410 0 R 1415 0 R 1422 0 R 1427 0 R 1433 0 R 1439 0 R] >> -% 1441 0 obj +% 1449 0 obj << /Type /Pages /Count 6 -/Parent 1844 0 R -/Kids [1437 0 R 1444 0 R 1452 0 R 1459 0 R 1463 0 R 1473 0 R] +/Parent 1852 0 R +/Kids [1445 0 R 1453 0 R 1460 0 R 1467 0 R 1471 0 R 1481 0 R] >> -% 1480 0 obj +% 1488 0 obj << /Type /Pages /Count 6 -/Parent 1844 0 R -/Kids [1477 0 R 1482 0 R 1495 0 R 1499 0 R 1505 0 R 1511 0 R] +/Parent 1852 0 R +/Kids [1485 0 R 1490 0 R 1503 0 R 1507 0 R 1513 0 R 1519 0 R] >> -% 1521 0 obj +% 1529 0 obj << /Type /Pages /Count 6 -/Parent 1845 0 R -/Kids [1518 0 R 1523 0 R 1527 0 R 1531 0 R 1535 0 R 1539 0 R] +/Parent 1853 0 R +/Kids [1526 0 R 1531 0 R 1535 0 R 1539 0 R 1543 0 R 1547 0 R] >> -% 1548 0 obj +% 1556 0 obj << /Type /Pages /Count 6 -/Parent 1845 0 R -/Kids [1543 0 R 1551 0 R 1557 0 R 1563 0 R 1569 0 R 1575 0 R] +/Parent 1853 0 R +/Kids [1551 0 R 1559 0 R 1565 0 R 1571 0 R 1577 0 R 1583 0 R] >> -% 1584 0 obj +% 1592 0 obj << /Type /Pages /Count 6 -/Parent 1845 0 R -/Kids [1580 0 R 1588 0 R 1594 0 R 1624 0 R 1630 0 R 1636 0 R] +/Parent 1853 0 R +/Kids [1588 0 R 1596 0 R 1602 0 R 1632 0 R 1638 0 R 1644 0 R] >> -% 1647 0 obj +% 1655 0 obj << /Type /Pages /Count 6 -/Parent 1845 0 R -/Kids [1642 0 R 1649 0 R 1654 0 R 1662 0 R 1669 0 R 1675 0 R] +/Parent 1853 0 R +/Kids [1650 0 R 1657 0 R 1663 0 R 1670 0 R 1677 0 R 1683 0 R] >> -% 1687 0 obj +% 1695 0 obj << /Type /Pages /Count 6 -/Parent 1845 0 R -/Kids [1682 0 R 1689 0 R 1695 0 R 1701 0 R 1710 0 R 1714 0 R] +/Parent 1853 0 R +/Kids [1690 0 R 1697 0 R 1703 0 R 1709 0 R 1718 0 R 1722 0 R] >> -% 1725 0 obj +% 1733 0 obj << /Type /Pages /Count 6 -/Parent 1845 0 R -/Kids [1722 0 R 1728 0 R 1732 0 R 1738 0 R 1742 0 R 1749 0 R] +/Parent 1853 0 R +/Kids [1730 0 R 1736 0 R 1740 0 R 1746 0 R 1750 0 R 1757 0 R] >> -% 1764 0 obj +% 1773 0 obj << /Type /Pages /Count 4 -/Parent 1846 0 R -/Kids [1761 0 R 1768 0 R 1772 0 R 1780 0 R] +/Parent 1854 0 R +/Kids [1770 0 R 1776 0 R 1780 0 R 1788 0 R] >> -% 1841 0 obj +% 1849 0 obj << /Type /Pages /Count 36 -/Parent 1847 0 R +/Parent 1855 0 R /Kids [558 0 R 731 0 R 826 0 R 882 0 R 917 0 R 948 0 R] >> -% 1842 0 obj +% 1851 0 obj << /Type /Pages /Count 36 -/Parent 1847 0 R -/Kids [995 0 R 1040 0 R 1084 0 R 1138 0 R 1194 0 R 1238 0 R] +/Parent 1855 0 R +/Kids [995 0 R 1040 0 R 1084 0 R 1138 0 R 1198 0 R 1246 0 R] >> -% 1844 0 obj +% 1852 0 obj << /Type /Pages /Count 36 -/Parent 1847 0 R -/Kids [1280 0 R 1320 0 R 1370 0 R 1405 0 R 1441 0 R 1480 0 R] +/Parent 1855 0 R +/Kids [1288 0 R 1328 0 R 1378 0 R 1413 0 R 1449 0 R 1488 0 R] >> -% 1845 0 obj +% 1853 0 obj << /Type /Pages /Count 36 -/Parent 1847 0 R -/Kids [1521 0 R 1548 0 R 1584 0 R 1647 0 R 1687 0 R 1725 0 R] +/Parent 1855 0 R +/Kids [1529 0 R 1556 0 R 1592 0 R 1655 0 R 1695 0 R 1733 0 R] >> -% 1846 0 obj +% 1854 0 obj << /Type /Pages /Count 4 -/Parent 1847 0 R -/Kids [1764 0 R] +/Parent 1855 0 R +/Kids [1773 0 R] >> -% 1847 0 obj +% 1855 0 obj << /Type /Pages /Count 148 -/Kids [1841 0 R 1842 0 R 1844 0 R 1845 0 R 1846 0 R] +/Kids [1849 0 R 1851 0 R 1852 0 R 1853 0 R 1854 0 R] >> -% 1848 0 obj +% 1856 0 obj << /Type /Outlines /First 4 0 R @@ -26525,6 +26855,27 @@ stream /Parent 209 0 R /Prev 257 0 R >> + +endstream +endobj +1857 0 obj +<< +/Type /ObjStm +/N 100 +/First 906 +/Length 13388 +>> +stream +257 0 253 88 249 176 245 264 241 352 237 440 233 528 229 616 225 704 221 792 +217 880 213 968 209 1042 205 1167 200 1240 196 1327 192 1401 188 1489 184 1577 180 1665 +176 1739 172 1838 168 1963 164 2035 160 2108 156 2195 152 2282 148 2369 144 2456 140 2543 +136 2630 132 2717 128 2804 124 2891 120 2978 116 3065 112 3152 108 3239 104 3326 100 3413 +96 3485 92 3595 88 3716 84 3785 80 3854 76 3936 72 4018 68 4100 64 4182 60 4264 +56 4346 52 4428 48 4510 44 4579 40 4686 36 4792 32 4912 28 4981 24 5037 20 5156 +16 5238 12 5307 8 5424 4 5489 1858 5582 1859 5778 1860 5951 1861 6131 1862 6308 1863 6485 +1864 6651 1865 6816 1866 6982 1867 7146 1868 7310 1869 7480 1870 7650 1871 7822 1872 7992 1873 8164 +1874 8334 1875 8506 1876 8676 1877 8848 1878 9017 1879 9194 1880 9392 1881 9618 1882 9834 1883 10026 +1884 10201 1885 10410 1886 10635 1887 10855 1888 11088 1889 11321 1890 11552 1891 11788 1892 12023 1893 12254 % 257 0 obj << /Title 258 0 R @@ -26557,27 +26908,6 @@ stream /Prev 241 0 R /Next 249 0 R >> - -endstream -endobj -1849 0 obj -<< -/Type /ObjStm -/N 100 -/First 912 -/Length 13767 ->> -stream -241 0 237 88 233 176 229 264 225 352 221 440 217 528 213 616 209 690 205 815 -200 888 196 975 192 1049 188 1137 184 1225 180 1313 176 1387 172 1486 168 1611 164 1683 -160 1756 156 1843 152 1930 148 2017 144 2104 140 2191 136 2278 132 2365 128 2452 124 2539 -120 2626 116 2713 112 2800 108 2887 104 2974 100 3061 96 3133 92 3243 88 3364 84 3433 -80 3502 76 3584 72 3666 68 3748 64 3830 60 3912 56 3994 52 4076 48 4158 44 4227 -40 4334 36 4440 32 4560 28 4629 24 4685 20 4804 16 4886 12 4955 8 5072 4 5137 -1850 5230 1851 5426 1852 5599 1853 5779 1854 5956 1855 6133 1856 6299 1857 6464 1858 6630 1859 6794 -1860 6958 1861 7128 1862 7298 1863 7470 1864 7640 1865 7812 1866 7982 1867 8154 1868 8324 1869 8496 -1870 8665 1871 8842 1872 9040 1873 9266 1874 9482 1875 9674 1876 9849 1877 10058 1878 10283 1879 10503 -1880 10736 1881 10969 1882 11200 1883 11436 1884 11671 1885 11902 1886 12130 1887 12317 1888 12497 1889 12675 % 241 0 obj << /Title 242 0 R @@ -27064,642 +27394,641 @@ stream << /Title 5 0 R /A 1 0 R -/Parent 1848 0 R +/Parent 1856 0 R /First 8 0 R /Last 542 0 R /Count -11 >> -% 1850 0 obj +% 1858 0 obj << -/Names [(Doc-Start) 553 0 R (Hfootnote.1) 769 0 R (Hfootnote.2) 771 0 R (Hfootnote.3) 824 0 R (Hfootnote.4) 1704 0 R (Hfootnote.5) 1755 0 R] +/Names [(Doc-Start) 553 0 R (Hfootnote.1) 769 0 R (Hfootnote.2) 771 0 R (Hfootnote.3) 824 0 R (Hfootnote.4) 1712 0 R (Hfootnote.5) 1763 0 R] /Limits [(Doc-Start) (Hfootnote.5)] >> -% 1851 0 obj +% 1859 0 obj << -/Names [(Item.1) 798 0 R (Item.10) 812 0 R (Item.100) 1493 0 R (Item.101) 1502 0 R (Item.102) 1503 0 R (Item.103) 1508 0 R] +/Names [(Item.1) 798 0 R (Item.10) 812 0 R (Item.100) 1501 0 R (Item.101) 1510 0 R (Item.102) 1511 0 R (Item.103) 1516 0 R] /Limits [(Item.1) (Item.103)] >> -% 1852 0 obj +% 1860 0 obj << -/Names [(Item.104) 1509 0 R (Item.105) 1514 0 R (Item.106) 1515 0 R (Item.107) 1516 0 R (Item.108) 1546 0 R (Item.109) 1547 0 R] +/Names [(Item.104) 1517 0 R (Item.105) 1522 0 R (Item.106) 1523 0 R (Item.107) 1524 0 R (Item.108) 1554 0 R (Item.109) 1555 0 R] /Limits [(Item.104) (Item.109)] >> -% 1853 0 obj +% 1861 0 obj << -/Names [(Item.11) 813 0 R (Item.110) 1554 0 R (Item.111) 1555 0 R (Item.112) 1560 0 R (Item.113) 1561 0 R (Item.114) 1566 0 R] +/Names [(Item.11) 813 0 R (Item.110) 1562 0 R (Item.111) 1563 0 R (Item.112) 1568 0 R (Item.113) 1569 0 R (Item.114) 1574 0 R] /Limits [(Item.11) (Item.114)] >> -% 1854 0 obj +% 1862 0 obj << -/Names [(Item.115) 1567 0 R (Item.116) 1572 0 R (Item.117) 1573 0 R (Item.118) 1578 0 R (Item.119) 1583 0 R (Item.12) 814 0 R] +/Names [(Item.115) 1575 0 R (Item.116) 1580 0 R (Item.117) 1581 0 R (Item.118) 1586 0 R (Item.119) 1591 0 R (Item.12) 814 0 R] /Limits [(Item.115) (Item.12)] >> -% 1855 0 obj +% 1863 0 obj << /Names [(Item.13) 815 0 R (Item.14) 816 0 R (Item.15) 817 0 R (Item.16) 818 0 R (Item.17) 819 0 R (Item.18) 820 0 R] /Limits [(Item.13) (Item.18)] >> -% 1856 0 obj +% 1864 0 obj << /Names [(Item.19) 821 0 R (Item.2) 799 0 R (Item.20) 822 0 R (Item.21) 823 0 R (Item.22) 833 0 R (Item.23) 834 0 R] /Limits [(Item.19) (Item.23)] >> -% 1857 0 obj +% 1865 0 obj << /Names [(Item.24) 835 0 R (Item.25) 836 0 R (Item.26) 837 0 R (Item.27) 838 0 R (Item.28) 854 0 R (Item.29) 855 0 R] /Limits [(Item.24) (Item.29)] >> -% 1858 0 obj +% 1866 0 obj << /Names [(Item.3) 800 0 R (Item.30) 856 0 R (Item.31) 857 0 R (Item.32) 858 0 R (Item.33) 859 0 R (Item.34) 860 0 R] /Limits [(Item.3) (Item.34)] >> -% 1859 0 obj +% 1867 0 obj << /Names [(Item.35) 861 0 R (Item.36) 862 0 R (Item.37) 867 0 R (Item.38) 868 0 R (Item.39) 869 0 R (Item.4) 801 0 R] /Limits [(Item.35) (Item.4)] >> -% 1860 0 obj +% 1868 0 obj << -/Names [(Item.40) 870 0 R (Item.41) 907 0 R (Item.42) 1186 0 R (Item.43) 1187 0 R (Item.44) 1188 0 R (Item.45) 1244 0 R] +/Names [(Item.40) 870 0 R (Item.41) 907 0 R (Item.42) 1190 0 R (Item.43) 1191 0 R (Item.44) 1192 0 R (Item.45) 1252 0 R] /Limits [(Item.40) (Item.45)] >> -% 1861 0 obj +% 1869 0 obj << -/Names [(Item.46) 1250 0 R (Item.47) 1255 0 R (Item.48) 1256 0 R (Item.49) 1257 0 R (Item.5) 802 0 R (Item.50) 1258 0 R] +/Names [(Item.46) 1258 0 R (Item.47) 1263 0 R (Item.48) 1264 0 R (Item.49) 1265 0 R (Item.5) 802 0 R (Item.50) 1266 0 R] /Limits [(Item.46) (Item.50)] >> -% 1862 0 obj +% 1870 0 obj << -/Names [(Item.51) 1259 0 R (Item.52) 1270 0 R (Item.53) 1271 0 R (Item.54) 1272 0 R (Item.55) 1279 0 R (Item.56) 1302 0 R] +/Names [(Item.51) 1267 0 R (Item.52) 1278 0 R (Item.53) 1279 0 R (Item.54) 1280 0 R (Item.55) 1287 0 R (Item.56) 1310 0 R] /Limits [(Item.51) (Item.56)] >> -% 1863 0 obj +% 1871 0 obj << -/Names [(Item.57) 1303 0 R (Item.58) 1310 0 R (Item.59) 1311 0 R (Item.6) 803 0 R (Item.60) 1312 0 R (Item.61) 1325 0 R] +/Names [(Item.57) 1311 0 R (Item.58) 1318 0 R (Item.59) 1319 0 R (Item.6) 803 0 R (Item.60) 1320 0 R (Item.61) 1333 0 R] /Limits [(Item.57) (Item.61)] >> -% 1864 0 obj +% 1872 0 obj << -/Names [(Item.62) 1326 0 R (Item.63) 1327 0 R (Item.64) 1328 0 R (Item.65) 1329 0 R (Item.66) 1330 0 R (Item.67) 1331 0 R] +/Names [(Item.62) 1334 0 R (Item.63) 1335 0 R (Item.64) 1336 0 R (Item.65) 1337 0 R (Item.66) 1338 0 R (Item.67) 1339 0 R] /Limits [(Item.62) (Item.67)] >> -% 1865 0 obj +% 1873 0 obj << -/Names [(Item.68) 1332 0 R (Item.69) 1333 0 R (Item.7) 804 0 R (Item.70) 1345 0 R (Item.71) 1346 0 R (Item.72) 1347 0 R] +/Names [(Item.68) 1340 0 R (Item.69) 1341 0 R (Item.7) 804 0 R (Item.70) 1353 0 R (Item.71) 1354 0 R (Item.72) 1355 0 R] /Limits [(Item.68) (Item.72)] >> -% 1866 0 obj +% 1874 0 obj << -/Names [(Item.73) 1348 0 R (Item.74) 1349 0 R (Item.75) 1350 0 R (Item.76) 1363 0 R (Item.77) 1381 0 R (Item.78) 1382 0 R] +/Names [(Item.73) 1356 0 R (Item.74) 1357 0 R (Item.75) 1358 0 R (Item.76) 1371 0 R (Item.77) 1389 0 R (Item.78) 1390 0 R] /Limits [(Item.73) (Item.78)] >> -% 1867 0 obj +% 1875 0 obj << -/Names [(Item.79) 1410 0 R (Item.8) 805 0 R (Item.80) 1411 0 R (Item.81) 1422 0 R (Item.82) 1428 0 R (Item.83) 1434 0 R] +/Names [(Item.79) 1418 0 R (Item.8) 805 0 R (Item.80) 1419 0 R (Item.81) 1430 0 R (Item.82) 1436 0 R (Item.83) 1442 0 R] /Limits [(Item.79) (Item.83)] >> -% 1868 0 obj +% 1876 0 obj << -/Names [(Item.84) 1440 0 R (Item.85) 1447 0 R (Item.86) 1448 0 R (Item.87) 1455 0 R (Item.88) 1456 0 R (Item.89) 1466 0 R] +/Names [(Item.84) 1448 0 R (Item.85) 1456 0 R (Item.86) 1457 0 R (Item.87) 1463 0 R (Item.88) 1464 0 R (Item.89) 1474 0 R] /Limits [(Item.84) (Item.89)] >> -% 1869 0 obj +% 1877 0 obj << -/Names [(Item.9) 811 0 R (Item.90) 1467 0 R (Item.91) 1468 0 R (Item.92) 1485 0 R (Item.93) 1486 0 R (Item.94) 1487 0 R] +/Names [(Item.9) 811 0 R (Item.90) 1475 0 R (Item.91) 1476 0 R (Item.92) 1493 0 R (Item.93) 1494 0 R (Item.94) 1495 0 R] /Limits [(Item.9) (Item.94)] >> -% 1870 0 obj +% 1878 0 obj << -/Names [(Item.95) 1488 0 R (Item.96) 1489 0 R (Item.97) 1490 0 R (Item.98) 1491 0 R (Item.99) 1492 0 R (cite.2007c) 784 0 R] +/Names [(Item.95) 1496 0 R (Item.96) 1497 0 R (Item.97) 1498 0 R (Item.98) 1499 0 R (Item.99) 1500 0 R (cite.2007c) 784 0 R] /Limits [(Item.95) (cite.2007c)] >> -% 1871 0 obj +% 1879 0 obj << /Names [(cite.2007d) 785 0 R (cite.BLACS) 757 0 R (cite.BLAS1) 739 0 R (cite.BLAS2) 740 0 R (cite.BLAS3) 741 0 R (cite.DesPat:11) 734 0 R] /Limits [(cite.2007d) (cite.DesPat:11)] >> -% 1872 0 obj +% 1880 0 obj << -/Names [(cite.DesignPatterns) 898 0 R (cite.KIVA3PSBLAS) 1778 0 R (cite.METIS) 772 0 R (cite.MPI1) 1783 0 R (cite.PARA04FOREST) 1776 0 R (cite.PSBLAS) 1777 0 R] +/Names [(cite.DesignPatterns) 898 0 R (cite.KIVA3PSBLAS) 1786 0 R (cite.METIS) 772 0 R (cite.MPI1) 1791 0 R (cite.PARA04FOREST) 1784 0 R (cite.PSBLAS) 1785 0 R] /Limits [(cite.DesignPatterns) (cite.PSBLAS)] >> -% 1873 0 obj +% 1881 0 obj << /Names [(cite.RouXiaXu:11) 735 0 R (cite.Sparse03) 733 0 R (cite.machiels) 736 0 R (cite.metcalf) 732 0 R (cite.sblas02) 738 0 R (cite.sblas97) 737 0 R] /Limits [(cite.RouXiaXu:11) (cite.sblas97)] >> -% 1874 0 obj +% 1882 0 obj << -/Names [(descdata) 844 0 R (equation.4.1) 1094 0 R (equation.4.2) 1095 0 R (equation.4.3) 1096 0 R (figure.1) 751 0 R (figure.10) 1592 0 R] +/Names [(descdata) 844 0 R (equation.4.1) 1094 0 R (equation.4.2) 1095 0 R (equation.4.3) 1096 0 R (figure.1) 751 0 R (figure.10) 1600 0 R] /Limits [(descdata) (figure.10)] >> -% 1875 0 obj +% 1883 0 obj << /Names [(figure.2) 780 0 R (figure.3) 871 0 R (figure.4) 897 0 R (figure.5) 937 0 R (figure.6) 958 0 R (figure.7) 1157 0 R] /Limits [(figure.2) (figure.7)] >> -% 1876 0 obj +% 1884 0 obj << -/Names [(figure.8) 1189 0 R (figure.9) 1591 0 R (lstlisting.-1) 1148 0 R (lstlisting.-10) 1657 0 R (lstlisting.-11) 1665 0 R (lstlisting.-12) 1672 0 R] +/Names [(figure.8) 1193 0 R (figure.9) 1599 0 R (lstlisting.-1) 1148 0 R (lstlisting.-10) 1666 0 R (lstlisting.-11) 1673 0 R (lstlisting.-12) 1680 0 R] /Limits [(figure.8) (lstlisting.-12)] >> -% 1877 0 obj +% 1885 0 obj << -/Names [(lstlisting.-13) 1678 0 R (lstlisting.-14) 1685 0 R (lstlisting.-15) 1692 0 R (lstlisting.-16) 1752 0 R (lstlisting.-2) 1175 0 R (lstlisting.-3) 1211 0 R] +/Names [(lstlisting.-13) 1686 0 R (lstlisting.-14) 1693 0 R (lstlisting.-15) 1700 0 R (lstlisting.-16) 1760 0 R (lstlisting.-2) 1179 0 R (lstlisting.-3) 1219 0 R] /Limits [(lstlisting.-13) (lstlisting.-3)] >> -% 1878 0 obj +% 1886 0 obj << -/Names [(lstlisting.-4) 1225 0 R (lstlisting.-5) 1597 0 R (lstlisting.-6) 1627 0 R (lstlisting.-7) 1633 0 R (lstlisting.-8) 1639 0 R (lstlisting.-9) 1645 0 R] +/Names [(lstlisting.-4) 1233 0 R (lstlisting.-5) 1605 0 R (lstlisting.-6) 1635 0 R (lstlisting.-7) 1641 0 R (lstlisting.-8) 1647 0 R (lstlisting.-9) 1653 0 R] /Limits [(lstlisting.-4) (lstlisting.-9)] >> -% 1879 0 obj +% 1887 0 obj << -/Names [(lstnumber.-1.1) 1149 0 R (lstnumber.-1.2) 1150 0 R (lstnumber.-10.1) 1658 0 R (lstnumber.-11.1) 1666 0 R (lstnumber.-12.1) 1673 0 R (lstnumber.-13.1) 1679 0 R] +/Names [(lstnumber.-1.1) 1149 0 R (lstnumber.-1.2) 1150 0 R (lstnumber.-10.1) 1667 0 R (lstnumber.-11.1) 1674 0 R (lstnumber.-12.1) 1681 0 R (lstnumber.-13.1) 1687 0 R] /Limits [(lstnumber.-1.1) (lstnumber.-13.1)] >> -% 1880 0 obj +% 1888 0 obj << -/Names [(lstnumber.-14.1) 1686 0 R (lstnumber.-15.1) 1693 0 R (lstnumber.-16.1) 1753 0 R (lstnumber.-16.2) 1754 0 R (lstnumber.-2.1) 1176 0 R (lstnumber.-2.2) 1177 0 R] +/Names [(lstnumber.-14.1) 1694 0 R (lstnumber.-15.1) 1701 0 R (lstnumber.-16.1) 1761 0 R (lstnumber.-16.2) 1762 0 R (lstnumber.-2.1) 1180 0 R (lstnumber.-2.2) 1181 0 R] /Limits [(lstnumber.-14.1) (lstnumber.-2.2)] >> -% 1881 0 obj +% 1889 0 obj << -/Names [(lstnumber.-3.1) 1212 0 R (lstnumber.-3.2) 1213 0 R (lstnumber.-4.1) 1226 0 R (lstnumber.-5.1) 1598 0 R (lstnumber.-5.10) 1608 0 R (lstnumber.-5.11) 1609 0 R] +/Names [(lstnumber.-3.1) 1220 0 R (lstnumber.-3.2) 1221 0 R (lstnumber.-4.1) 1234 0 R (lstnumber.-5.1) 1606 0 R (lstnumber.-5.10) 1616 0 R (lstnumber.-5.11) 1617 0 R] /Limits [(lstnumber.-3.1) (lstnumber.-5.11)] >> -% 1882 0 obj +% 1890 0 obj << -/Names [(lstnumber.-5.12) 1610 0 R (lstnumber.-5.13) 1611 0 R (lstnumber.-5.14) 1612 0 R (lstnumber.-5.15) 1613 0 R (lstnumber.-5.16) 1614 0 R (lstnumber.-5.17) 1615 0 R] +/Names [(lstnumber.-5.12) 1618 0 R (lstnumber.-5.13) 1619 0 R (lstnumber.-5.14) 1620 0 R (lstnumber.-5.15) 1621 0 R (lstnumber.-5.16) 1622 0 R (lstnumber.-5.17) 1623 0 R] /Limits [(lstnumber.-5.12) (lstnumber.-5.17)] >> -% 1883 0 obj +% 1891 0 obj << -/Names [(lstnumber.-5.18) 1616 0 R (lstnumber.-5.19) 1617 0 R (lstnumber.-5.2) 1600 0 R (lstnumber.-5.20) 1618 0 R (lstnumber.-5.21) 1619 0 R (lstnumber.-5.22) 1620 0 R] +/Names [(lstnumber.-5.18) 1624 0 R (lstnumber.-5.19) 1625 0 R (lstnumber.-5.2) 1608 0 R (lstnumber.-5.20) 1626 0 R (lstnumber.-5.21) 1627 0 R (lstnumber.-5.22) 1628 0 R] /Limits [(lstnumber.-5.18) (lstnumber.-5.22)] >> -% 1884 0 obj +% 1892 0 obj << -/Names [(lstnumber.-5.23) 1621 0 R (lstnumber.-5.24) 1622 0 R (lstnumber.-5.3) 1601 0 R (lstnumber.-5.4) 1602 0 R (lstnumber.-5.5) 1603 0 R (lstnumber.-5.6) 1604 0 R] +/Names [(lstnumber.-5.23) 1629 0 R (lstnumber.-5.24) 1630 0 R (lstnumber.-5.3) 1609 0 R (lstnumber.-5.4) 1610 0 R (lstnumber.-5.5) 1611 0 R (lstnumber.-5.6) 1612 0 R] /Limits [(lstnumber.-5.23) (lstnumber.-5.6)] >> -% 1885 0 obj +% 1893 0 obj << -/Names [(lstnumber.-5.7) 1605 0 R (lstnumber.-5.8) 1606 0 R (lstnumber.-5.9) 1607 0 R (lstnumber.-6.1) 1628 0 R (lstnumber.-7.1) 1634 0 R (lstnumber.-8.1) 1640 0 R] +/Names [(lstnumber.-5.7) 1613 0 R (lstnumber.-5.8) 1614 0 R (lstnumber.-5.9) 1615 0 R (lstnumber.-6.1) 1636 0 R (lstnumber.-7.1) 1642 0 R (lstnumber.-8.1) 1648 0 R] /Limits [(lstnumber.-5.7) (lstnumber.-8.1)] >> -% 1886 0 obj -<< -/Names [(lstnumber.-9.1) 1646 0 R (page.1) 552 0 R (page.10) 853 0 R (page.100) 1501 0 R (page.101) 1507 0 R (page.102) 1513 0 R] -/Limits [(lstnumber.-9.1) (page.102)] ->> -% 1887 0 obj -<< -/Names [(page.103) 1520 0 R (page.104) 1525 0 R (page.105) 1529 0 R (page.106) 1533 0 R (page.107) 1537 0 R (page.108) 1541 0 R] -/Limits [(page.103) (page.108)] ->> -% 1888 0 obj -<< -/Names [(page.109) 1545 0 R (page.11) 866 0 R (page.110) 1553 0 R (page.111) 1559 0 R (page.112) 1565 0 R (page.113) 1571 0 R] -/Limits [(page.109) (page.113)] ->> -% 1889 0 obj -<< -/Names [(page.114) 1577 0 R (page.115) 1582 0 R (page.116) 1590 0 R (page.117) 1596 0 R (page.118) 1626 0 R (page.119) 1632 0 R] -/Limits [(page.114) (page.119)] ->> endstream endobj -1960 0 obj +1968 0 obj << /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$) /Author()/Title()/Subject()/Creator(LaTeX with hyperref package)/Producer(pdfTeX-1.40.17)/Keywords() -/CreationDate (D:20180322114627Z) -/ModDate (D:20180322114627Z) +/CreationDate (D:20180323100717Z) +/ModDate (D:20180323100717Z) /Trapped /False /PTEX.Fullbanner (This is pdfTeX, Version 3.14159265-2.6-1.40.17 (TeX Live 2016) kpathsea version 6.2.2) >> endobj -1891 0 obj +1895 0 obj << /Type /ObjStm -/N 69 -/First 692 -/Length 11853 +/N 73 +/First 738 +/Length 12624 >> stream -1890 0 1892 177 1893 354 1894 534 1895 712 1896 883 1897 1048 1898 1214 1899 1380 1900 1549 -1901 1721 1902 1891 1903 2063 1904 2233 1905 2405 1906 2575 1907 2747 1908 2917 1909 3089 1910 3258 -1911 3427 1912 3605 1913 3811 1914 4015 1915 4215 1916 4411 1917 4609 1918 4805 1919 5003 1920 5199 -1921 5397 1922 5592 1923 5787 1924 5985 1925 6181 1926 6379 1927 6575 1928 6773 1929 6969 1930 7167 -1931 7351 1932 7533 1933 7735 1934 7964 1935 8199 1936 8379 1937 8553 1938 8725 1939 8795 1940 8908 -1941 9019 1942 9130 1943 9246 1944 9366 1945 9492 1946 9610 1947 9722 1948 9833 1949 9943 1950 10058 -1951 10176 1952 10295 1953 10410 1954 10502 1955 10622 1956 10743 1957 10829 1958 10913 1959 10948 -% 1890 0 obj +1894 0 1896 187 1897 367 1898 545 1899 725 1900 902 1901 1079 1902 1259 1903 1437 1904 1608 +1905 1773 1906 1939 1907 2105 1908 2274 1909 2446 1910 2616 1911 2788 1912 2958 1913 3130 1914 3300 +1915 3472 1916 3642 1917 3814 1918 3983 1919 4152 1920 4330 1921 4536 1922 4740 1923 4940 1924 5136 +1925 5334 1926 5530 1927 5728 1928 5924 1929 6122 1930 6317 1931 6512 1932 6710 1933 6906 1934 7104 +1935 7300 1936 7498 1937 7694 1938 7892 1939 8076 1940 8258 1941 8460 1942 8689 1943 8924 1944 9104 +1945 9278 1946 9450 1947 9520 1948 9633 1949 9744 1950 9855 1951 9971 1952 10091 1953 10217 1954 10335 +1955 10447 1956 10558 1957 10668 1958 10783 1959 10901 1960 11020 1961 11135 1962 11227 1963 11347 1964 11468 +1965 11554 1966 11638 1967 11673 +% 1894 0 obj +<< +/Names [(lstnumber.-9.1) 1654 0 R (page.1) 552 0 R (page.10) 853 0 R (page.100) 1509 0 R (page.101) 1515 0 R (page.102) 1521 0 R] +/Limits [(lstnumber.-9.1) (page.102)] +>> +% 1896 0 obj +<< +/Names [(page.103) 1528 0 R (page.104) 1533 0 R (page.105) 1537 0 R (page.106) 1541 0 R (page.107) 1545 0 R (page.108) 1549 0 R] +/Limits [(page.103) (page.108)] +>> +% 1897 0 obj +<< +/Names [(page.109) 1553 0 R (page.11) 866 0 R (page.110) 1561 0 R (page.111) 1567 0 R (page.112) 1573 0 R (page.113) 1579 0 R] +/Limits [(page.109) (page.113)] +>> +% 1898 0 obj +<< +/Names [(page.114) 1585 0 R (page.115) 1590 0 R (page.116) 1598 0 R (page.117) 1604 0 R (page.118) 1634 0 R (page.119) 1640 0 R] +/Limits [(page.114) (page.119)] +>> +% 1899 0 obj << -/Names [(page.12) 877 0 R (page.120) 1638 0 R (page.121) 1644 0 R (page.122) 1651 0 R (page.123) 1656 0 R (page.124) 1664 0 R] +/Names [(page.12) 877 0 R (page.120) 1646 0 R (page.121) 1652 0 R (page.122) 1659 0 R (page.123) 1665 0 R (page.124) 1672 0 R] /Limits [(page.12) (page.124)] >> -% 1892 0 obj +% 1900 0 obj << -/Names [(page.125) 1671 0 R (page.126) 1677 0 R (page.127) 1684 0 R (page.128) 1691 0 R (page.129) 1697 0 R (page.13) 881 0 R] +/Names [(page.125) 1679 0 R (page.126) 1685 0 R (page.127) 1692 0 R (page.128) 1699 0 R (page.129) 1705 0 R (page.13) 881 0 R] /Limits [(page.125) (page.13)] >> -% 1893 0 obj +% 1901 0 obj << -/Names [(page.130) 1703 0 R (page.131) 1712 0 R (page.132) 1716 0 R (page.133) 1724 0 R (page.134) 1730 0 R (page.135) 1734 0 R] +/Names [(page.130) 1711 0 R (page.131) 1720 0 R (page.132) 1724 0 R (page.133) 1732 0 R (page.134) 1738 0 R (page.135) 1742 0 R] /Limits [(page.130) (page.135)] >> -% 1894 0 obj +% 1902 0 obj << -/Names [(page.136) 1740 0 R (page.137) 1744 0 R (page.138) 1751 0 R (page.139) 1763 0 R (page.14) 886 0 R (page.140) 1770 0 R] +/Names [(page.136) 1748 0 R (page.137) 1752 0 R (page.138) 1759 0 R (page.139) 1772 0 R (page.14) 886 0 R (page.140) 1778 0 R] /Limits [(page.136) (page.140)] >> -% 1895 0 obj +% 1903 0 obj << -/Names [(page.141) 1774 0 R (page.142) 1782 0 R (page.15) 894 0 R (page.16) 902 0 R (page.17) 906 0 R (page.18) 911 0 R] +/Names [(page.141) 1782 0 R (page.142) 1790 0 R (page.15) 894 0 R (page.16) 902 0 R (page.17) 906 0 R (page.18) 911 0 R] /Limits [(page.141) (page.18)] >> -% 1896 0 obj +% 1904 0 obj << /Names [(page.19) 916 0 R (page.2) 562 0 R (page.20) 921 0 R (page.21) 925 0 R (page.22) 929 0 R (page.23) 935 0 R] /Limits [(page.19) (page.23)] >> -% 1897 0 obj +% 1905 0 obj << /Names [(page.24) 941 0 R (page.25) 947 0 R (page.26) 955 0 R (page.27) 962 0 R (page.28) 966 0 R (page.29) 977 0 R] /Limits [(page.24) (page.29)] >> -% 1898 0 obj +% 1906 0 obj << /Names [(page.3) 763 0 R (page.30) 983 0 R (page.31) 993 0 R (page.32) 999 0 R (page.33) 1009 0 R (page.34) 1015 0 R] /Limits [(page.3) (page.34)] >> -% 1899 0 obj +% 1907 0 obj << /Names [(page.35) 1022 0 R (page.36) 1030 0 R (page.37) 1038 0 R (page.38) 1047 0 R (page.39) 1052 0 R (page.4) 779 0 R] /Limits [(page.35) (page.4)] >> -% 1900 0 obj +% 1908 0 obj << /Names [(page.40) 1059 0 R (page.41) 1067 0 R (page.42) 1074 0 R (page.43) 1081 0 R (page.44) 1093 0 R (page.45) 1108 0 R] /Limits [(page.40) (page.45)] >> -% 1901 0 obj +% 1909 0 obj << /Names [(page.46) 1114 0 R (page.47) 1126 0 R (page.48) 1132 0 R (page.49) 1137 0 R (page.5) 791 0 R (page.50) 1146 0 R] /Limits [(page.46) (page.50)] >> -% 1902 0 obj +% 1910 0 obj << -/Names [(page.51) 1156 0 R (page.52) 1165 0 R (page.53) 1173 0 R (page.54) 1185 0 R (page.55) 1193 0 R (page.56) 1198 0 R] +/Names [(page.51) 1156 0 R (page.52) 1169 0 R (page.53) 1177 0 R (page.54) 1189 0 R (page.55) 1197 0 R (page.56) 1202 0 R] /Limits [(page.51) (page.56)] >> -% 1903 0 obj +% 1911 0 obj << -/Names [(page.57) 1209 0 R (page.58) 1217 0 R (page.59) 1223 0 R (page.6) 796 0 R (page.60) 1233 0 R (page.61) 1237 0 R] +/Names [(page.57) 1217 0 R (page.58) 1225 0 R (page.59) 1231 0 R (page.6) 796 0 R (page.60) 1241 0 R (page.61) 1245 0 R] /Limits [(page.57) (page.61)] >> -% 1904 0 obj +% 1912 0 obj << -/Names [(page.62) 1243 0 R (page.63) 1249 0 R (page.64) 1254 0 R (page.65) 1264 0 R (page.66) 1269 0 R (page.67) 1278 0 R] +/Names [(page.62) 1251 0 R (page.63) 1257 0 R (page.64) 1262 0 R (page.65) 1272 0 R (page.66) 1277 0 R (page.67) 1286 0 R] /Limits [(page.62) (page.67)] >> -% 1905 0 obj +% 1913 0 obj << -/Names [(page.68) 1286 0 R (page.69) 1291 0 R (page.7) 810 0 R (page.70) 1297 0 R (page.71) 1301 0 R (page.72) 1309 0 R] +/Names [(page.68) 1294 0 R (page.69) 1299 0 R (page.7) 810 0 R (page.70) 1305 0 R (page.71) 1309 0 R (page.72) 1317 0 R] /Limits [(page.68) (page.72)] >> -% 1906 0 obj +% 1914 0 obj << -/Names [(page.73) 1319 0 R (page.74) 1324 0 R (page.75) 1339 0 R (page.76) 1344 0 R (page.77) 1356 0 R (page.78) 1362 0 R] +/Names [(page.73) 1327 0 R (page.74) 1332 0 R (page.75) 1348 0 R (page.76) 1352 0 R (page.77) 1364 0 R (page.78) 1370 0 R] /Limits [(page.73) (page.78)] >> -% 1907 0 obj +% 1915 0 obj << -/Names [(page.79) 1369 0 R (page.8) 832 0 R (page.80) 1376 0 R (page.81) 1380 0 R (page.82) 1389 0 R (page.83) 1395 0 R] +/Names [(page.79) 1377 0 R (page.8) 832 0 R (page.80) 1384 0 R (page.81) 1388 0 R (page.82) 1397 0 R (page.83) 1403 0 R] /Limits [(page.79) (page.83)] >> -% 1908 0 obj +% 1916 0 obj << -/Names [(page.84) 1399 0 R (page.85) 1404 0 R (page.86) 1409 0 R (page.87) 1416 0 R (page.88) 1421 0 R (page.89) 1427 0 R] +/Names [(page.84) 1407 0 R (page.85) 1412 0 R (page.86) 1417 0 R (page.87) 1424 0 R (page.88) 1429 0 R (page.89) 1435 0 R] /Limits [(page.84) (page.89)] >> -% 1909 0 obj +% 1917 0 obj << -/Names [(page.9) 843 0 R (page.90) 1433 0 R (page.91) 1439 0 R (page.92) 1446 0 R (page.93) 1454 0 R (page.94) 1461 0 R] +/Names [(page.9) 843 0 R (page.90) 1441 0 R (page.91) 1447 0 R (page.92) 1455 0 R (page.93) 1462 0 R (page.94) 1469 0 R] /Limits [(page.9) (page.94)] >> -% 1910 0 obj +% 1918 0 obj << -/Names [(page.95) 1465 0 R (page.96) 1475 0 R (page.97) 1479 0 R (page.98) 1484 0 R (page.99) 1497 0 R (page.i) 613 0 R] +/Names [(page.95) 1473 0 R (page.96) 1483 0 R (page.97) 1487 0 R (page.98) 1492 0 R (page.99) 1505 0 R (page.i) 613 0 R] /Limits [(page.95) (page.i)] >> -% 1911 0 obj +% 1919 0 obj << /Names [(page.ii) 666 0 R (page.iii) 711 0 R (page.iv) 716 0 R (precdata) 956 0 R (section*.1) 614 0 R (section*.10) 79 0 R] /Limits [(page.ii) (section*.10)] >> -% 1912 0 obj +% 1920 0 obj << /Names [(section*.100) 497 0 R (section*.101) 501 0 R (section*.102) 505 0 R (section*.103) 509 0 R (section*.104) 517 0 R (section*.105) 521 0 R] /Limits [(section*.100) (section*.105)] >> -% 1913 0 obj +% 1921 0 obj << /Names [(section*.106) 525 0 R (section*.107) 529 0 R (section*.108) 533 0 R (section*.109) 537 0 R (section*.11) 83 0 R (section*.110) 545 0 R] /Limits [(section*.106) (section*.110)] >> -% 1914 0 obj +% 1922 0 obj << -/Names [(section*.111) 1775 0 R (section*.12) 99 0 R (section*.13) 103 0 R (section*.14) 107 0 R (section*.15) 111 0 R (section*.16) 115 0 R] +/Names [(section*.111) 1783 0 R (section*.12) 99 0 R (section*.13) 103 0 R (section*.14) 107 0 R (section*.15) 111 0 R (section*.16) 115 0 R] /Limits [(section*.111) (section*.16)] >> -% 1915 0 obj +% 1923 0 obj << /Names [(section*.17) 119 0 R (section*.18) 123 0 R (section*.19) 127 0 R (section*.2) 47 0 R (section*.20) 131 0 R (section*.21) 135 0 R] /Limits [(section*.17) (section*.21)] >> -% 1916 0 obj +% 1924 0 obj << /Names [(section*.22) 139 0 R (section*.23) 143 0 R (section*.24) 147 0 R (section*.25) 151 0 R (section*.26) 155 0 R (section*.27) 159 0 R] /Limits [(section*.22) (section*.27)] >> -% 1917 0 obj +% 1925 0 obj << /Names [(section*.28) 163 0 R (section*.29) 179 0 R (section*.3) 51 0 R (section*.30) 183 0 R (section*.31) 187 0 R (section*.32) 191 0 R] /Limits [(section*.28) (section*.32)] >> -% 1918 0 obj +% 1926 0 obj << /Names [(section*.33) 195 0 R (section*.34) 212 0 R (section*.35) 216 0 R (section*.36) 220 0 R (section*.37) 224 0 R (section*.38) 228 0 R] /Limits [(section*.33) (section*.38)] >> -% 1919 0 obj +% 1927 0 obj << /Names [(section*.39) 232 0 R (section*.4) 55 0 R (section*.40) 236 0 R (section*.41) 240 0 R (section*.42) 244 0 R (section*.43) 248 0 R] /Limits [(section*.39) (section*.43)] >> -% 1920 0 obj +% 1928 0 obj << /Names [(section*.44) 252 0 R (section*.45) 256 0 R (section*.46) 260 0 R (section*.47) 268 0 R (section*.48) 272 0 R (section*.49) 276 0 R] /Limits [(section*.44) (section*.49)] >> -% 1921 0 obj +% 1929 0 obj << /Names [(section*.5) 59 0 R (section*.50) 280 0 R (section*.51) 288 0 R (section*.52) 292 0 R (section*.53) 296 0 R (section*.54) 300 0 R] /Limits [(section*.5) (section*.54)] >> -% 1922 0 obj +% 1930 0 obj << /Names [(section*.55) 304 0 R (section*.56) 308 0 R (section*.57) 312 0 R (section*.58) 316 0 R (section*.59) 320 0 R (section*.6) 63 0 R] /Limits [(section*.55) (section*.6)] >> -% 1923 0 obj +% 1931 0 obj << /Names [(section*.60) 324 0 R (section*.61) 328 0 R (section*.62) 332 0 R (section*.63) 336 0 R (section*.64) 340 0 R (section*.65) 344 0 R] /Limits [(section*.60) (section*.65)] >> -% 1924 0 obj +% 1932 0 obj << /Names [(section*.66) 348 0 R (section*.67) 352 0 R (section*.68) 356 0 R (section*.69) 360 0 R (section*.7) 67 0 R (section*.70) 364 0 R] /Limits [(section*.66) (section*.70)] >> -% 1925 0 obj +% 1933 0 obj << /Names [(section*.71) 368 0 R (section*.72) 372 0 R (section*.73) 376 0 R (section*.74) 380 0 R (section*.75) 384 0 R (section*.76) 388 0 R] /Limits [(section*.71) (section*.76)] >> -% 1926 0 obj +% 1934 0 obj << /Names [(section*.77) 392 0 R (section*.78) 400 0 R (section*.79) 405 0 R (section*.8) 71 0 R (section*.80) 409 0 R (section*.81) 413 0 R] /Limits [(section*.77) (section*.81)] >> -% 1927 0 obj +% 1935 0 obj << /Names [(section*.82) 417 0 R (section*.83) 421 0 R (section*.84) 425 0 R (section*.85) 429 0 R (section*.86) 433 0 R (section*.87) 437 0 R] /Limits [(section*.82) (section*.87)] >> -% 1928 0 obj +% 1936 0 obj << /Names [(section*.88) 441 0 R (section*.89) 445 0 R (section*.9) 75 0 R (section*.90) 449 0 R (section*.91) 453 0 R (section*.92) 457 0 R] /Limits [(section*.88) (section*.92)] >> -% 1929 0 obj +% 1937 0 obj << /Names [(section*.93) 461 0 R (section*.94) 469 0 R (section*.95) 473 0 R (section*.96) 477 0 R (section*.97) 481 0 R (section*.98) 489 0 R] /Limits [(section*.93) (section*.98)] >> -% 1930 0 obj +% 1938 0 obj << /Names [(section*.99) 493 0 R (section.1) 7 0 R (section.10) 513 0 R (section.11) 541 0 R (section.2) 11 0 R (section.3) 35 0 R] /Limits [(section*.99) (section.3)] >> -% 1931 0 obj +% 1939 0 obj << /Names [(section.4) 208 0 R (section.5) 264 0 R (section.6) 284 0 R (section.7) 396 0 R (section.8) 465 0 R (section.9) 485 0 R] /Limits [(section.4) (section.9)] >> -% 1932 0 obj +% 1940 0 obj << /Names [(spbasedata) 896 0 R (spdata) 895 0 R (subsection.2.1) 15 0 R (subsection.2.2) 19 0 R (subsection.2.3) 23 0 R (subsection.2.4) 31 0 R] /Limits [(spbasedata) (subsection.2.4)] >> -% 1933 0 obj +% 1941 0 obj << /Names [(subsection.3.1) 39 0 R (subsection.3.2) 91 0 R (subsection.3.3) 171 0 R (subsection.3.4) 199 0 R (subsection.3.5) 204 0 R (subsubsection.2.3.1) 27 0 R] /Limits [(subsection.3.1) (subsubsection.2.3.1)] >> -% 1934 0 obj +% 1942 0 obj << /Names [(subsubsection.3.1.1) 43 0 R (subsubsection.3.1.2) 87 0 R (subsubsection.3.2.1) 95 0 R (subsubsection.3.2.2) 167 0 R (subsubsection.3.3.1) 175 0 R (table.1) 949 0 R] /Limits [(subsubsection.3.1.1) (table.1)] >> -% 1935 0 obj +% 1943 0 obj << -/Names [(table.10) 1075 0 R (table.11) 1083 0 R (table.12) 1097 0 R (table.13) 1115 0 R (table.14) 1147 0 R (table.15) 1174 0 R] +/Names [(table.10) 1075 0 R (table.11) 1083 0 R (table.12) 1097 0 R (table.13) 1115 0 R (table.14) 1147 0 R (table.15) 1178 0 R] /Limits [(table.10) (table.15)] >> -% 1936 0 obj +% 1944 0 obj << -/Names [(table.16) 1210 0 R (table.17) 1224 0 R (table.2) 994 0 R (table.3) 1010 0 R (table.4) 1023 0 R (table.5) 1031 0 R] +/Names [(table.16) 1218 0 R (table.17) 1232 0 R (table.2) 994 0 R (table.3) 1010 0 R (table.4) 1023 0 R (table.5) 1031 0 R] /Limits [(table.16) (table.5)] >> -% 1937 0 obj +% 1945 0 obj << /Names [(table.6) 1039 0 R (table.7) 1048 0 R (table.8) 1060 0 R (table.9) 1068 0 R (title.0) 3 0 R (vbasedata) 887 0 R] /Limits [(table.6) (vbasedata)] >> -% 1938 0 obj +% 1946 0 obj << /Names [(vdata) 936 0 R] /Limits [(vdata) (vdata)] >> -% 1939 0 obj +% 1947 0 obj << -/Kids [1850 0 R 1851 0 R 1852 0 R 1853 0 R 1854 0 R 1855 0 R] +/Kids [1858 0 R 1859 0 R 1860 0 R 1861 0 R 1862 0 R 1863 0 R] /Limits [(Doc-Start) (Item.18)] >> -% 1940 0 obj +% 1948 0 obj << -/Kids [1856 0 R 1857 0 R 1858 0 R 1859 0 R 1860 0 R 1861 0 R] +/Kids [1864 0 R 1865 0 R 1866 0 R 1867 0 R 1868 0 R 1869 0 R] /Limits [(Item.19) (Item.50)] >> -% 1941 0 obj +% 1949 0 obj << -/Kids [1862 0 R 1863 0 R 1864 0 R 1865 0 R 1866 0 R 1867 0 R] +/Kids [1870 0 R 1871 0 R 1872 0 R 1873 0 R 1874 0 R 1875 0 R] /Limits [(Item.51) (Item.83)] >> -% 1942 0 obj +% 1950 0 obj << -/Kids [1868 0 R 1869 0 R 1870 0 R 1871 0 R 1872 0 R 1873 0 R] +/Kids [1876 0 R 1877 0 R 1878 0 R 1879 0 R 1880 0 R 1881 0 R] /Limits [(Item.84) (cite.sblas97)] >> -% 1943 0 obj +% 1951 0 obj << -/Kids [1874 0 R 1875 0 R 1876 0 R 1877 0 R 1878 0 R 1879 0 R] +/Kids [1882 0 R 1883 0 R 1884 0 R 1885 0 R 1886 0 R 1887 0 R] /Limits [(descdata) (lstnumber.-13.1)] >> -% 1944 0 obj +% 1952 0 obj << -/Kids [1880 0 R 1881 0 R 1882 0 R 1883 0 R 1884 0 R 1885 0 R] +/Kids [1888 0 R 1889 0 R 1890 0 R 1891 0 R 1892 0 R 1893 0 R] /Limits [(lstnumber.-14.1) (lstnumber.-8.1)] >> -% 1945 0 obj +% 1953 0 obj << -/Kids [1886 0 R 1887 0 R 1888 0 R 1889 0 R 1890 0 R 1892 0 R] +/Kids [1894 0 R 1896 0 R 1897 0 R 1898 0 R 1899 0 R 1900 0 R] /Limits [(lstnumber.-9.1) (page.13)] >> -% 1946 0 obj +% 1954 0 obj << -/Kids [1893 0 R 1894 0 R 1895 0 R 1896 0 R 1897 0 R 1898 0 R] +/Kids [1901 0 R 1902 0 R 1903 0 R 1904 0 R 1905 0 R 1906 0 R] /Limits [(page.130) (page.34)] >> -% 1947 0 obj +% 1955 0 obj << -/Kids [1899 0 R 1900 0 R 1901 0 R 1902 0 R 1903 0 R 1904 0 R] +/Kids [1907 0 R 1908 0 R 1909 0 R 1910 0 R 1911 0 R 1912 0 R] /Limits [(page.35) (page.67)] >> -% 1948 0 obj +% 1956 0 obj << -/Kids [1905 0 R 1906 0 R 1907 0 R 1908 0 R 1909 0 R 1910 0 R] +/Kids [1913 0 R 1914 0 R 1915 0 R 1916 0 R 1917 0 R 1918 0 R] /Limits [(page.68) (page.i)] >> -% 1949 0 obj +% 1957 0 obj << -/Kids [1911 0 R 1912 0 R 1913 0 R 1914 0 R 1915 0 R 1916 0 R] +/Kids [1919 0 R 1920 0 R 1921 0 R 1922 0 R 1923 0 R 1924 0 R] /Limits [(page.ii) (section*.27)] >> -% 1950 0 obj +% 1958 0 obj << -/Kids [1917 0 R 1918 0 R 1919 0 R 1920 0 R 1921 0 R 1922 0 R] +/Kids [1925 0 R 1926 0 R 1927 0 R 1928 0 R 1929 0 R 1930 0 R] /Limits [(section*.28) (section*.6)] >> -% 1951 0 obj +% 1959 0 obj << -/Kids [1923 0 R 1924 0 R 1925 0 R 1926 0 R 1927 0 R 1928 0 R] +/Kids [1931 0 R 1932 0 R 1933 0 R 1934 0 R 1935 0 R 1936 0 R] /Limits [(section*.60) (section*.92)] >> -% 1952 0 obj +% 1960 0 obj << -/Kids [1929 0 R 1930 0 R 1931 0 R 1932 0 R 1933 0 R 1934 0 R] +/Kids [1937 0 R 1938 0 R 1939 0 R 1940 0 R 1941 0 R 1942 0 R] /Limits [(section*.93) (table.1)] >> -% 1953 0 obj +% 1961 0 obj << -/Kids [1935 0 R 1936 0 R 1937 0 R 1938 0 R] +/Kids [1943 0 R 1944 0 R 1945 0 R 1946 0 R] /Limits [(table.10) (vdata)] >> -% 1954 0 obj +% 1962 0 obj << -/Kids [1939 0 R 1940 0 R 1941 0 R 1942 0 R 1943 0 R 1944 0 R] +/Kids [1947 0 R 1948 0 R 1949 0 R 1950 0 R 1951 0 R 1952 0 R] /Limits [(Doc-Start) (lstnumber.-8.1)] >> -% 1955 0 obj +% 1963 0 obj << -/Kids [1945 0 R 1946 0 R 1947 0 R 1948 0 R 1949 0 R 1950 0 R] +/Kids [1953 0 R 1954 0 R 1955 0 R 1956 0 R 1957 0 R 1958 0 R] /Limits [(lstnumber.-9.1) (section*.6)] >> -% 1956 0 obj +% 1964 0 obj << -/Kids [1951 0 R 1952 0 R 1953 0 R] +/Kids [1959 0 R 1960 0 R 1961 0 R] /Limits [(section*.60) (vdata)] >> -% 1957 0 obj +% 1965 0 obj << -/Kids [1954 0 R 1955 0 R 1956 0 R] +/Kids [1962 0 R 1963 0 R 1964 0 R] /Limits [(Doc-Start) (vdata)] >> -% 1958 0 obj +% 1966 0 obj << -/Dests 1957 0 R +/Dests 1965 0 R >> -% 1959 0 obj +% 1967 0 obj << /Type /Catalog -/Pages 1847 0 R -/Outlines 1848 0 R -/Names 1958 0 R +/Pages 1855 0 R +/Outlines 1856 0 R +/Names 1966 0 R /URI (http://ce.uniroma2.it/psblas) /PageMode/UseOutlines/PageLabels<>2<>6<>]>> /OpenAction 548 0 R >> endstream endobj -1961 0 obj +1969 0 obj << /Type /XRef -/Index [0 1962] -/Size 1962 +/Index [0 1970] +/Size 1970 /W [1 3 1] -/Root 1959 0 R -/Info 1960 0 R -/ID [ ] -/Length 9810 +/Root 1967 0 R +/Info 1968 0 R +/ID [ ] +/Length 9850 >> stream -ÿ”L9;È(9:È299È:98ÈF97  -ÈO96  ; 95 ;94;93;92;391;490;:9/;;9.;<9-;@9, ;A9+!";B9*#$;F9)%&;H9('(;I9')*;P9&+,;Q9%-.;X9$/0;Y9#12;Z9"34;^9!56;`9 78;a99:9;<9=>9?@9AB9CD 9EF 9GH9IJ9KL9MN9OP9QR9ST9UV%9WX&9YZ'9[\(9 ]^.9 _`49 ab59 -c˹89 ËË?9ËËI9ËËZ9ËËó9Ë Ë -ó9Ë Ë ó9Ë Ëó9ËËó'9ËËó29ËËó:3cËËóA3bËËóH3aËËóQ3`ËË\3_ËË\3^ËË \3]Ë!Ë"\53\Ë#Ë$\T3[Ë%Ë&\`3ZË'Ë(Ë 3YË)Ë*Ë -3XË+Ë,Ë!3WË-Ë.Ë.3VË/Ë0Ë53UË1Ë2Ë:3TË3Ë4Ë@3SË5Ë6ËK3RË7Ë8ËT3QË9Ë:<3PË;Ë<<3OË=Ë><3NË?Ë@<3MËAËB<%3LËCËD<13KËEËF<73JËGËH<;3IËIËJ<@3HËKËLË_Ë`©23=ËaËb©63<Ëc”j¥©<3;””©B3:””©I39””©M38””©Q37” ” -©U36” ” ©Y35” ”©]34””©a33”” 32”” 31”” 30”” 3/”” 3.”” 3-”” '3,””  I3+”!”" O3*”#”$ U3)”%”& [3(”'”( a3'”)”*{3&”+”,{ 3%”-”.{3$”/”0{3#”1”2{3"”3”4{#3!”5”6{)3 ”7”8{/3”9”:{83”;”<{C3”=”>{H3”?”@{L3”A”B{R3”C”D{V3”E”F{\3”G”H”I”M$ü”J”KåJåXåIåPå\”P”N'”O”R”S”T”U”V”W”X”Y”Z”[”\”]”^”_”`”a”b”cgggggggggg g +ÿ”LA?È(A>È2A=È:A<ÈFA;  +ÈOA:  ; A9 ;A8;A7;A6;3A5;4A4;:A3;;A2;<A1;@A0 ;AA/!";BA.#$;FA-%&;HA,'(;IA+)*;PA*+,;QA)-.;XA(/0;YA'12;ZA&34;^A%56;`A$78;aA#9:A";<A!=>A ?@AABACD AEF AGHAIJAKLAMNAOPAQRASTAUV%AWX&AYZ'A[\(A]^.A_`4Aab5Ac˹8A ËË?A ËËIA ËËZA +ËËóA Ë Ë +óAË Ë óAË ËóAËËó'AËËó2AËËó:AËËóAAËËóHAËËóQAËË\:cËË\:bËË \:aË!Ë"\7:`Ë#Ë$\X:_Ë%Ë&Ó:^Ë'Ë(Ó :]Ë)Ë*Ó:\Ë+Ë,Ó%:[Ë-Ë.Ó2:ZË/Ë0Ó9:YË1Ë2Ó>:XË3Ë4ÓD:WË5Ë6ÓO:VË7Ë8ÓX:UË9Ë:>:TË;Ë<>:SË=Ë>>:RË?Ë@>#:QËAËB>):PËCËD>5:OËEËF>;:NËGËH>?:MËIËJ>D:LËKËL>N:KËMËN>S:JËOËP>Y:IËQËR>_:HËSËTª:GËUËVª:FËWËXª:EËYËZª:DË[Ë\ª":CË]Ë^ª&:BË_Ë`ª6:AËaËbª::@Ëc”j¥ª@:?””ªF:>””ªM:=””ªQ:<””ªU:;” ” +ªY::” ” ª]:9” ”ªa:8””:7””:6”” :5””:4””:3””:2””$:1””+:0”” M:/”!”"S:.”#”$Y:-”%”&_:,”'”(|:+”)”*|:*”+”,| :)”-”.|:(”/”0|:'”1”2|!:&”3”4|':%”5”6|-:$”7”8|3:#”9”:|<:"”;”<|G:!”=”>|L: ”?”@|P:”A”B|V:”C”D|Z:”E”F|`:”G”H”I”M$ü”J”KåNå\åMåTå`”P”N'”O”R”S”T”U”V”W”X”Y”Z”[”\”]”^”_”`”a”b”cgggggggggg g g g g ggggggggggggggg g”Q( gg”g!g"g#g$g%g&g'g(g)g*g+g,g-g.g/g0g1g2g3g4g5g6g7g8g9g:g;g<g=g>g?g@gAgBgCgDgEgFgGgHgIgJgKgLgMgNgRgPg‡ºgOgSgTgUgVgWgXgYgZg[g\g]g^g_g`gagbgcÈÈÈÈÈÈÈÈÈÈ È -È È È ÈÈÈÈÈÈÈÈÈÈÈgQضÈ9´ÈÈ\ÂÈÈÈÈ È!È"È#È$È%È&È'È)È]MåWå]ååå å ååååååÈ/È0È1”ÖÈ6È4È*~ÏåLÈ3È+È,È-È.™ŒåÈ7È8È=È5¥/È9åYåRåNåUåQÈ;åSÈ<åÈBÈCÝÈGÈ>ÈÈDÈEÈ?È@ÈAååÈIÈJÈLÈHãÉÈKÈZÈXÈMù[ÈNåMÈPÈQÈRÈSÈTÈUÈVÈW;;ÈYjÈ[È\È]È^È_È`ÈaÈbÈc;;;;;;åZå^oÄ; ;;kœ; -; ; ;;;;;;;‰ ;;;;;;+;,;);ª=;; ;!;";#;$;%;&;';(;5;*Å$;-;.;/;0;1;2;7;8;=;6Ú;9;C;>îé;?å_;J;Dÿ;E;G;L;M;N;U;Kö;O;R;S;Tå;[;V=;W;b;\M…;];_;c\·˜! “‡å` -¤é ³ÞÆñ!Ù¯ $)"÷Ý#+,/*ˆ-åaJ1290#36å[7<:)d;@=,–>BCDEFGMKA-pHNOQLJmPSTUVWX\RUY[åb_]t#^abcóóóó`vÐóóäƒó óÁ]óó ó ó óó -Ä óóóóóóóßøóóóóóó!óøÛóó åcó#ó$ó%ó)ó"ló&ó(ó,ó*0`ó+ó.ó/ó0ó4ó-3 ó1ó3ó6ó7ó8ó<ó5M¬ó9ó;ó>ó?óCó=eÛó@óBóEóFóJóD{óGåVóI3óLóMóNóOóXóVóK‘„óPóRóSóTóUóYóZó[ó\ó]ó^ó_óaóW®Eó`óc\\óbÉÒ\\/V\\\\ \ -\ \ \4\ \\\\3ß\\\\Fb\3\\\\(\"\I\\\\ \!r`\)\,\#e\*\+\$\%\&\'\/\-˜\.åT\1\2\3\:\0Æ\4\6\7\8\9\<Ö \=\>\C\;¯G\?\@\A\B\M\F\DÆt\E3\N\GÔ‘\L\H\I\J\K\P\Q\R\Y\Oå¬\S\U\V\W\X\\\Z -•\[\^ËË\]…\_\a\b\cŸöËËËËZÚËË ËklË3Ë ËË …2ËËËËËŸUËËËËÆóËËËËËËËË"ËÑ›Ë Ë$Ë)Ë#íÜË%Ë&Ë'Ë(Ë+Ë,Ë0Ë*útË-Ë/3Ë2Ë3Ë6Ë1 5Ë4Ë8Ë;Ë7@Ë9Ë=Ë>ËAË<#@Ë?ËFËB:™ËCËDËEËHËIËOËGA ËJËLËMËNËQËRËWËUËPTdËS3ËbËVmÅËXËYËZË[Ë\Ë]Ë^Ë_Ë`Ëa<<<Ëc…È< ÇO< <Ê<<<< < -< < <<<<Ó*<<<<<ßu<<<<< <ï:<3<"<#<&©F©@ - ò©A©C©D©E©J©G -²2©H3 -©N©K -ºà©L©R©O -Æî©P©V©S -ËÈ©T©Z©W -ÑÇ©X©^©[ -×T©\ ©_ -éF©`©b©c3  ^   "ü      7z  -    Kß      `¹      uv   "  Š¬  !3  $ % ( # ŸÑ & D E F ) ¹ * + ,åK - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C L G Õ† H J K R M äN N P Q X S ê T V W ^ Y ðž Z \ ]3  b _ ù `{{ c ûi{{{ +-{{ { 0Š{{ -{ {{{  E>{{{{{ SÈ{{{{{ { bu{{{3{&{! s{"{${%{*{' €c{({,{-{1{+ …\{.{0{3{4{5{6{9{2 —5{7{<{: µ¹{;{>{?{@{A{D{= º?{B3{F{I{E ÑS{G{M{J Ý{K{O{P{S{N á"{Q{W{T ì {U{Y{Z{c{a{X îœ{[{]{^{_{`åOåååå{b Då3t—ååå Ulååå  fçå -å å ååå"å ‚Šåå!å#å$å%å&å'å(å)å*å+å,å-å.å/å0å1å2å3å4å5 Žûå6 ç;å74Rå8[Ùå9å:ºþå;áqå<Öå=få>†|å?¨Wå@êåA)ÆåBQqåCoåD¾ÕåEîLåF<²åGLçåH33ÄÀ33333í¦9<9=9>9?9@9A9B9C9D9E9F9G9H9I9J9K9L9M9N9O9P9Q9R9S9T9U9V9W9X9Y9Z9[9\9]9^9_9`9a9b9cc%ÿccccccccc c -c c c ccccccccccccccccccc c!c"c#c$c%c&c'c(c)c*c+c,c-c.c/c0c1c2c3c4c5c6c7c8c9c:c;c<c=c>c?c@cAcBcCcD#ÊT¨ +È È È ÈÈÈÈÈÈÈÈÈÈÈgQضÈ9´ÈÈ\ÂÈÈÈÈ È!È"È#È$È%È&È'È)È]Må[åaå#ååå$å"ååå!ååÈ/È0È1”ÖÈ6È4È*~ÏåPÈ3È+È,È-È.™ŒåÈ7È8È=È5¥/È9å]åVåRåYåUÈ;åWÈ<å ÈBÈCÝÈGÈ>ÈÈDÈEÈ?È@ÈAååÈIÈJÈLÈHãÉÈKÈZÈXÈMù[ÈNåQÈPÈQÈRÈSÈTÈUÈVÈW;;ÈYjÈ[È\È]È^È_È`ÈaÈbÈc;;;;;;å^åboÄ; ;;kœ; +; ; ;;;;;;;‰ ;;;;;;+;,;);ª=;; ;!;";#;$;%;&;';(;5;*Å$;-;.;/;0;1;2;7;8;=;6Ú;9;C;>îé;?åc;J;Dÿ;E;G;L;M;N;U;Kö;O;R;S;Tå;[;V=;W;b;\M…;];_;c\·˜! “‡: +¤é ³ÞÆñ!Ù¯ $)"÷Ý#+,/*ˆ-:J1290#36å_7<:)d;@=,–>BCDEFGMKA-pHNOQLJmPSTUVWX\RUY[:_]t#^abcóóóó`vÐóóäƒó óÁ]óó ó ó óó +Ä óóóóóóóßøóóóóóó!óøÛóó :ó#ó$ó%ó)ó"ló&ó(ó,ó*0`ó+ó.ó/ó0ó4ó-3 ó1ó3ó6ó7ó8ó<ó5M¬ó9ó;ó>ó?óCó=eÛó@óBóEóFóJóD{óGåZóI:óLóMóNóOóXóVóK‘„óPóRóSóTóUóYóZó[ó\ó]ó^ó_óaóW®Eó`óc\\óbÉÒ\\ïp\\\\ \ +\ \ \4\ \\\\3ß\\\\Fb\:\\\\*\"\I\\\\ \!rK\+\.\#e\,\-\$\%\&\'\(\)€¦´\1\/á­\0åX\3\4\5\<\2íÛ\6\8\9\:\;\>6!\?\@\E\=\\A\B\C\D\Q\H\F&‰\G:\R\I4¦\P\J\K\L\M\N\OD¿x.\T\U\V\]\S¥Æ\W\Y\Z\[\\\`\^ʯ\_\bÓÓ\aП\cÓÓÓ K…ÓÓÓ +Ó —Ó ÓÓ 1)Ó :ÓÓÓJïÓÓÓÓÓeÓÓÓ!ÓŒ°ÓÓÓÓÓÓ Ó#Ó&Ó"—XÓ$Ó(Ó-Ó'³™Ó)Ó*Ó+Ó,Ó/Ó0Ó4Ó.À1Ó1Ó3:Ó6Ó7Ó:Ó5ÒòÓ8Ó<Ó?Ó;ßýÓ=ÓAÓBÓEÓ@èýÓCÓJÓF VÓGÓHÓIÓLÓMÓSÓK ÊÓNÓPÓQÓRÓUÓVÓ[ÓYÓT !ÓW: >ÓZ 3‚Ó\Ó]Ó^Ó_Ó`ÓaÓbÓc>> +Œo>>>> u>>>  >> +> > > >>>>>>> ˜J>>>>> ¤•>>> >!>$> ´Z>": +>&>'>*>% ÈŠ>(>/>+ ã€>,>->.>1>2>3>6>0 è>4>8>9><>7 ü°>:>@>= + +>>>B>E>A +Ê>C: >J>F +1“>G>H>I>L>O>K +4‘>M>Q>U>P +K'>R>T>W>[>V +X3>X>Z>]>a>\ +kã>^>`>cª>b +xϪª:  êª +ª +·Lªªª ª ªª  +Æeª ªªªªª +Ô說ª +ëꪪªªªª ª#ª +úuª!ª'ª$ +Ъ%: ª3ª( !Žª)ª*ª+ª,ª-ª.ª/ª0ª1ª2ª7ª4 =ª5ª=ª8 > ª9ª;ª<ªCª> Tª?ªAªBªJªD frªEªGªHªIªNªK w²ªL:ªRªO €`ªPªVªS ŒnªTªZªW ‘HªXª^ª[ —Gª\ªbª_ œÔª`ªc ®Æ: Á$ + è·   ý5  š &t! ;1 &" Pg#%:(),' eŒ*HIJ- ~Ð./0åO123456789:;<=>?@ABCDEFGPK ›ALNOVQ ª RTU\W ¯¼XZ[b] ¶Y^`a:|c ¾Í| Ôˆ|| | âÙ|||| || + õÎ| ||||| +‚|||||  |||||$| '¹| |"|#:|*|% 8F|&|(|)|.|+ E§|,|0|1|5|/ J |2|4|7|8|9|:|=|6 \y|;|@|> zý|?|B|C|D|E|H|A ƒ|F:|J|M|I –—|K|Q|N ¢L|O|S|T|W|R ¦f|U|[|X ±M|Y|]|^åå|\ ³à|_|a|b|cååS8ÿååååå ýëå:å +å å Ôå åå +Oåååååå&åFòåå%å'å(å)å*å+å,å-å.å/å0å1å2å3å4å5å6å7å8å9Scå:«£å;øºå< Aå=ahå>få?¥Ùå@Å>åA*÷åBJäåCl¿åD®håEî.åFÙåG3zåHƒ=åI²´åJåKOåL:‰’::::::²èA@AAABACADAEAFAGAHAIAJAKALAMANAOAPAQARASATAUAVAWAXAYAZA[A\A]A^A_A`AaAbAcgéÆggggggggg g +g g g ggggggggggggggggggg g!g"g#g$g%g&g'g(g)g*g+g,g-g.g/g0g1g2g3g4g5g6g7g8g9g:g;g<g=g>g?g@gAgBgCgDgEgFgGgHç‘r endstream endobj startxref -1201320 +1252210 %%EOF diff --git a/docs/src/commrout.tex b/docs/src/commrout.tex index 3a3b1669..1c66b2fb 100644 --- a/docs/src/commrout.tex +++ b/docs/src/commrout.tex @@ -90,7 +90,7 @@ An integer value that contains an error code. \ifcase\pdfoutput \includegraphics[scale=0.45]{figures/try8x8.eps} \or -\rotatebox{-90}{\includegraphics[scale=0.45]{figures/try8x8}} +\includegraphics[scale=0.45]{figures/try8x8} \fi \end{center} \caption{Sample discretization mesh.\label{fig:try8x8}} @@ -269,7 +269,7 @@ their instances. \ifcase\pdfoutput \includegraphics[scale=0.65]{figures/try8x8_ov.eps} \or -\rotatebox{-90}{\includegraphics[scale=0.65]{figures/try8x8_ov}} +{\includegraphics[scale=0.65]{figures/try8x8_ov}} \fi \end{center} \caption{Sample discretization mesh.\label{fig:try8x8_ov}} diff --git a/docs/src/figures/try8x8.eps b/docs/src/figures/try8x8.eps index 7a75e81d..bd1db644 100644 --- a/docs/src/figures/try8x8.eps +++ b/docs/src/figures/try8x8.eps @@ -1,53 +1,19 @@ -%!PS-Adobe-2.0 EPSF-2.0 +%!PS-Adobe-3.0 EPSF-3.0 %%Title: try8x8.fig -%%Creator: fig2dev Version 3.2 Patchlevel 5 -%%CreationDate: Thu Jul 31 17:38:46 2008 -%%For: sfilippo@donald (Salvatore Filippone) -%%BoundingBox: 0 0 498 438 +%%Creator: fig2dev Version 3.2.6a +%%CreationDate: 2018-03-23 09:59:01 +%%BoundingBox: 0 0 498 439 %Magnification: 1.0000 %%EndComments +%%BeginProlog /$F2psDict 200 dict def $F2psDict begin $F2psDict /mtrx matrix put /col-1 {0 setgray} bind def /col0 {0.000 0.000 0.000 srgb} bind def -/col1 {0.000 0.000 1.000 srgb} bind def -/col2 {0.000 1.000 0.000 srgb} bind def -/col3 {0.000 1.000 1.000 srgb} bind def -/col4 {1.000 0.000 0.000 srgb} bind def -/col5 {1.000 0.000 1.000 srgb} bind def -/col6 {1.000 1.000 0.000 srgb} bind def /col7 {1.000 1.000 1.000 srgb} bind def -/col8 {0.000 0.000 0.560 srgb} bind def -/col9 {0.000 0.000 0.690 srgb} bind def -/col10 {0.000 0.000 0.820 srgb} bind def -/col11 {0.530 0.810 1.000 srgb} bind def -/col12 {0.000 0.560 0.000 srgb} bind def -/col13 {0.000 0.690 0.000 srgb} bind def -/col14 {0.000 0.820 0.000 srgb} bind def -/col15 {0.000 0.560 0.560 srgb} bind def -/col16 {0.000 0.690 0.690 srgb} bind def -/col17 {0.000 0.820 0.820 srgb} bind def -/col18 {0.560 0.000 0.000 srgb} bind def -/col19 {0.690 0.000 0.000 srgb} bind def -/col20 {0.820 0.000 0.000 srgb} bind def -/col21 {0.560 0.000 0.560 srgb} bind def -/col22 {0.690 0.000 0.690 srgb} bind def -/col23 {0.820 0.000 0.820 srgb} bind def -/col24 {0.500 0.190 0.000 srgb} bind def -/col25 {0.630 0.250 0.000 srgb} bind def -/col26 {0.750 0.380 0.000 srgb} bind def -/col27 {1.000 0.500 0.500 srgb} bind def -/col28 {1.000 0.630 0.630 srgb} bind def -/col29 {1.000 0.750 0.750 srgb} bind def -/col30 {1.000 0.880 0.880 srgb} bind def -/col31 {1.000 0.840 0.000 srgb} bind def end -save -newpath 0 438 moveto 0 0 lineto 498 0 lineto 498 438 lineto closepath clip newpath --35.3 455.4 translate -1 -1 scale /cp {closepath} bind def /ef {eofill} bind def @@ -96,10 +62,22 @@ newpath 0 438 moveto 0 0 lineto 498 0 lineto 498 438 lineto closepath clip newpa /$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def /$F2psEnd {$F2psEnteredState restore end} def +/pageheader { +save +newpath 0 439 moveto 0 0 lineto 498 0 lineto 498 439 lineto closepath clip newpath +-35.3 455.4 translate +1 -1 scale $F2psBegin 10 setmiterlimit 0 slj 0 slc 0.06000 0.06000 sc +} bind def +/pagefooter { +$F2psEnd +restore +} bind def +%%EndProlog +pageheader % % Fig objects follow % @@ -696,7 +674,7 @@ gs 1 -1 sc (32) dup sw pop 2 div neg 0 rm col0 sh gr gs 1 -1 sc (25) dup sw pop 2 div neg 0 rm col0 sh gr /Times-Roman ff 200.00 scf sf 975 3525 m -gs 1 -1 sc (27) dup sw pop 2 div neg 0 rm col0 sh gr +gs 1 -1 sc (33) dup sw pop 2 div neg 0 rm col0 sh gr /Times-Roman ff 200.00 scf sf 8100 3525 m gs 1 -1 sc (40) dup sw pop 2 div neg 0 rm col0 sh gr @@ -707,8 +685,7 @@ gs 1 -1 sc (P1) dup sw pop 2 div neg 0 rm col0 sh gr 8700 5850 m gs 1 -1 sc (P0) dup sw pop 2 div neg 0 rm col0 sh gr % here ends figure; -$F2psEnd -rs +pagefooter showpage %%Trailer %EOF diff --git a/docs/src/figures/try8x8.fig b/docs/src/figures/try8x8.fig index 57f5ff4d..cf652a9b 100644 --- a/docs/src/figures/try8x8.fig +++ b/docs/src/figures/try8x8.fig @@ -1,8 +1,8 @@ -#FIG 3.2 +#FIG 3.2 Produced by xfig version 3.2.6a Landscape Center Inches -Letter +Letter 100.00 Single -2 @@ -329,25 +329,25 @@ Single 1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 7650 7050 150 150 7650 7050 7650 7200 2 1 1 1 0 7 50 -1 -1 4.000 0 0 -1 0 0 2 600 3900 8175 3900 -4 0 0 50 -1 0 12 0.0000 4 135 90 1350 7575 1\001 -4 1 0 50 -1 0 12 0.0000 4 135 90 2250 7575 2\001 -4 1 0 50 -1 0 12 0.0000 4 135 90 3150 7575 3\001 -4 1 0 50 -1 0 12 0.0000 4 135 90 4050 7575 4\001 -4 1 0 50 -1 0 12 0.0000 4 135 90 4950 7575 5\001 -4 1 0 50 -1 0 12 0.0000 4 135 90 5850 7575 6\001 -4 1 0 50 -1 0 12 0.0000 4 135 90 6750 7575 7\001 -4 1 0 50 -1 0 12 0.0000 4 135 90 7650 7575 8\001 -4 1 0 50 -1 0 12 0.0000 4 135 180 7650 450 64\001 -4 1 0 50 -1 0 12 0.0000 4 135 180 6750 450 63\001 -4 1 0 50 -1 0 12 0.0000 4 135 180 5850 450 62\001 -4 1 0 50 -1 0 12 0.0000 4 135 180 4950 450 61\001 -4 1 0 50 -1 0 12 0.0000 4 135 180 4050 450 60\001 -4 1 0 50 -1 0 12 0.0000 4 135 180 3150 450 59\001 -4 1 0 50 -1 0 12 0.0000 4 135 180 2250 450 58\001 -4 1 0 50 -1 0 12 0.0000 4 135 180 1350 450 57\001 -4 1 0 50 -1 0 12 0.0000 4 135 180 8100 4425 32\001 -4 1 0 50 -1 0 12 0.0000 4 135 180 900 4425 25\001 -4 1 0 50 -1 0 12 0.0000 4 135 180 975 3525 27\001 -4 1 0 50 -1 0 12 0.0000 4 135 180 8100 3525 40\001 -4 1 0 50 -1 2 18 0.0000 4 195 300 8700 1950 P1\001 -4 1 0 50 -1 2 18 0.0000 4 195 300 8700 5850 P0\001 +4 0 0 50 -1 0 12 0.0000 4 150 105 1350 7575 1\001 +4 1 0 50 -1 0 12 0.0000 4 150 105 2250 7575 2\001 +4 1 0 50 -1 0 12 0.0000 4 150 105 3150 7575 3\001 +4 1 0 50 -1 0 12 0.0000 4 150 105 4050 7575 4\001 +4 1 0 50 -1 0 12 0.0000 4 150 105 4950 7575 5\001 +4 1 0 50 -1 0 12 0.0000 4 150 105 5850 7575 6\001 +4 1 0 50 -1 0 12 0.0000 4 150 105 6750 7575 7\001 +4 1 0 50 -1 0 12 0.0000 4 150 105 7650 7575 8\001 +4 1 0 50 -1 0 12 0.0000 4 150 210 7650 450 64\001 +4 1 0 50 -1 0 12 0.0000 4 150 210 6750 450 63\001 +4 1 0 50 -1 0 12 0.0000 4 150 210 5850 450 62\001 +4 1 0 50 -1 0 12 0.0000 4 150 210 4950 450 61\001 +4 1 0 50 -1 0 12 0.0000 4 150 210 4050 450 60\001 +4 1 0 50 -1 0 12 0.0000 4 150 210 3150 450 59\001 +4 1 0 50 -1 0 12 0.0000 4 150 210 2250 450 58\001 +4 1 0 50 -1 0 12 0.0000 4 150 210 1350 450 57\001 +4 1 0 50 -1 0 12 0.0000 4 150 210 8100 4425 32\001 +4 1 0 50 -1 0 12 0.0000 4 150 210 900 4425 25\001 +4 1 0 50 -1 0 12 0.0000 4 150 210 975 3525 33\001 +4 1 0 50 -1 0 12 0.0000 4 150 210 8100 3525 40\001 +4 1 0 50 -1 2 18 0.0000 4 195 315 8700 1950 P1\001 +4 1 0 50 -1 2 18 0.0000 4 195 315 8700 5850 P0\001 diff --git a/docs/src/figures/try8x8.pdf b/docs/src/figures/try8x8.pdf index 2a1cea1dc7c4f90509486294a6b495467f7bd7fd..2baa67cf58c53e105a4dbb360cc9beb6a1d0c91d 100644 GIT binary patch literal 31604 zcmbTc18`;Ewl5rXtd4Elwr!g`wvCRRbZlE4+ji1%$LQF0zI31eIrqNr)qVBqRrapE z)*NH}=HRM~F&C+Vh!`y+9V;~H@M&y5G%EoEft`^hG!GBG48YdR*_?pwb47_>%);6k z;7C9(W^L#U5CIt5nE?3spq-o@0fsiv?wPt7oiQY>h(T|@5%z;KfPoZi{CwQQ1jsv z6}$V?9U9Hs{rbch^OWht<5zD!fA#vXi;uRXx6&Ci?}K|#!mUGz8Ha{+Z42~MNJy)nkd|a`9jGvvl@~2;QGUeJ zSxHMm#>#(gCy5@YY*?fbO@o)LvN?0nct;DS18)fy$Oxa%kvd@n4QT~SpvnC=jQ=TP zd=;2UZ1^dy_y~he;rT`*;C9VFxtu zYsyK@j%zRxzWUQj(LH9EX>9?%`rAL3k<%6tKp-9saXG<;0NLyMPrVLJX~(CvZtIhO zAJB4WjbGQJ@m2wzIAsz2`F?w>XAX)T3s@7|3`p=xV_DRj7iM}CW;6bbNftX^F)FO4 zjzvM7kB5Q>u6*@2J|D)MK!acwi{ccEN+V{k7dyrz9>O6Wib6DAlt2t%93CO`Ps+KN zC<=dy89XJPnm{xg3S%6W;58mdcN)_a2J)|~-w z@YH+l>AiY3(Vsqh>LyE57;HM}E9P6$&!xq0C04&FTDypr&U#jsjZXtLsXIPlFd1dq zO<;UR&tkRlb>xCYDL1J#Pu2S#jijOd2#9&+m2T73>H3GAIj*vypip~8$o^B7?~(c0 zA?Bp-$#9IA`C>zfr|%C)I6RZ>My7OHQKL}Oe?c{fidR_KmFXZbMRdLBKrok3H4=Z$vE1?tZCxrR^zJk$78)m_~~lXA~g5ztd2-)VXj&2c8nll`DaMYD%hruqMt;*jBciz1w9F;THzjyJ1PbS-TWCQ-P zRc-?vprP8M=J3-*+q=O4Dcb{b)aV9z&M~Wvg$yi#&E80V8rSaIGn9?+T|V{CyWh0` z#UkOTZl!U}>AN%4zmgNP-_R%GRRhq|%q)VdKR&frA)ea;8-VFtH`+J=9Hzf9fJQz@ zKvfHWm5BX~zBNP!$^6583B`U9#Q#ftCT&d#O_28XbNEwg1`gSLj|p9CW|ZmRX)uBx zfRV;BUB2)>p%;r)|f7iL;_-_6s&Th%5e55GGSKHSu9`s2jNZ93g!ho5rXeI&X^@4?%>&K`vPe&Fy*7XseFQbx)VnDM2@#|)P|x5jmEQ;#|)LIdZeW;e6U zRg#adg%jSx#1bd{CFix~$BdDDyXxg^Yn-1w-l20#_uZ;fJU&l&tehER=2Q*4_?-0m z*3Ek!YL06${kf9*J~bl(1NR@O%B^wJl!sKbhe`xy*3M`&{Sv-Z{ss`?%)9L_H2TWG z>6a|Q=MmqO`y{lV7q8Ew7HOKe2|Hn@h%k&W{R2FH4oGT?L-{O388n($l9*1yR*b|M z3_|G4d3S}8t$ERxC2cFvs*K3#I(A+)>Wv51jlm~JK2ImJQVAzj4d6OjF@#N;M(<~~ zr69|d*YAt^jTNZ!JG~3=z?^{kw+7_5C4MaD~x=~Nf?PX|Ry*Kn58&T!= z`(N71*Z;67M-x4+-Kl9o(b0~5ou2sglRfXXrr*N5+NTRH_RE`c_f9g=TkxJHKAB+Y zs>XR-(T(4GJ^W9u{%kq=XG^b^avzF6Sh^H{u@LBJC%@KAs2ky}-Hn*NsdDRHnRF5Q z^bC%C`ur2#FSprehaSZJmDALc@B+Rd>yq+)rJc>`tHx#y7w&JUWNV|>u!QBU2vW9GDM)n58cNKQ+JStNm>FShY9K8O!DdlQ( z(&h)7SZ1B+3j7iN1~K8&`XFy7c6yTM%ANN`{>GLA{+B_wX|z+VIZp-jv%7u1NUWHs;w-m)cK6EjS-L zK4yL?Bt@cEU{K#Ar9!meJy!Zz64PW)uooh<;XVFE>XP$e_?W?hb65;**G`=LRI%i~ z?{l-1J;dsRC3(5=iQ`lhaTEMnsd@(Qi5qlsLx2s96mgx|ijI6Rc+OpGUSn#!EJj{r z+KlJV!L=E&N9A?v;PO-`+3My6pA6T^&Ln$Y)ieEAJ?WNg^}u-jPcK>554^6f+oScG zCOtI27vt7`RvvY$EVr7@MPq1r{+H~7H&Rs6h(&X}_DIGLSN1FkNWKfZUx<<9H+hz; z4aS3adj6&5GFu)S`bvO&^XL$F(@#(NpTti;XSfc0DqlIncBV1{DdIk2*HABE%IN zlcjOMQu2M}|1qbgdfj2sGs?9Nx2APzF&#UVt%S1@J+9`Xrjf2E*X2;@-2F~+{y5=k z_O95qvIP%SU6t;V=hn)mRGD$BAd+x%jTW92EayS~ENn30Y0Fdj)1k3-6%pv}c+ZV& z^H3Pqy@P)qQlEKr4Te$tIL6ogd5KH?PfA@Z{Zc5=?GZ;8{w%%R6IoS;*Vd7orE|}t zwTNN++A`=6_!cnyKS-m==<=*UY zSUum``p%`^=R#np3$Q%XFBOX+T%?eEc!Fi+riVHvpO1y5 zPtDR0N}k(3UAlpg$D+!7$#YSog?%hS@MI5PRGyxPoV8Q`Ui~*qls;ZD~`Q;7gzVto@(dYX8jB zKe^=}8DHb1=T7knu#Kbp?5|BY^?a#J`Kj!Np922Gg^d%hmHu}KAK3pY#U+g*O$;+- zOBLpwdB-2LpS9>UUVWfHSQzzxsKtjl?WyUUoZnC5yKjXd-FF=6!w=y+A9IPH|6n}6 zDe?}*F4;}<`}({-{`OqFe|??~{QyY&#O%JUUDsyo`+2?I3cua9P8Yn+@cG~sCE|1W z!oTud-V98K=PZ@vbie;TTR(ftNyi_)IiZimpSn6a>Bh_1%yGSP{it5=vRbi^Fmvice-a%5w$231e;P7qdL@99 zor|L}!0EG9Q*g91Rt7k0(|{&amx(4R~HsP%{CUtQoQ+NWLwe-(2gpqI8VaU#%${-d@Mv@XFXg3BMs z|0c@#AJKm#g$6I86pc(%-^}jLxq5Q)qWatF=<0E*wDoQ2H|9SK-C=w%H5 zxn^ajSGO>6Hh0p7W@TU?_`mr637qX`du?HB_9<#BXzOJ0pL=B&Bj-O^@@LymKm0pd ze=YjoOpsJo5tRAI1R*3=eTgW-QO;g1LZhd=25Vg29y&}@v1 z{|_eqarZwK{>SJ46^+08%Ng1L{-?kReOA+FG0`%z5U{Yb5wLM^=>C~xm^l%!v9hvp zK+_948UHD*Pr_$a7}`q!EX>URx&5=vAKIrdG`-|!E?XE2+L~Dd2pFL0m7M`LY6R?z z(DbqvPEMa8`x|TmCe}~dpIrE?NecSESoEeAt^j(|&x)nDwXg-y+kJkW0ImRAdM68a zdS`P-0D#`v&5qs^;Altr*PhRb3xJv6Q{(?7TmRnw`ifb3q#Pl^~IXgrv}>E@S8%)vNR6EqWw*^M&W)8Q*LAS~a%T3uXAKwQ3Lj6j8?xFsDqmx<_8qkv=@Jj=4o_FZ3 zuPM84kCd-C?@;ewKFH(6Qz5ze{qZN7uPYv_XJ2On3X%%C$=TzEM`K4`ws?Phr2$x!JkzxpRUCfnBiAY=`W5-3k;qNXaNq*SBqR0=jPWr^Gv`AZ(RFi{0qRcJxsPKDg%dz&P0 z@w?0$85Sv#=zBiHtaN^}h_YzC$c^Z@NQEf2sI~}Vejrh6se}pIil|FI-mK&-=`7r= z&8*L?dVY>5F=2tQ2%+`JK%50(y)ar34V)%&9U}=737-hocXT6IN;roQmY{|Z=TIDY zPBcftz5cjR!dPKn$S2w_!Oy`l@Tfu1%9mj&`9Ei=#eAvWBL>Z}zV;h&q&@a2lvQW; z+xbgTR%cfzO*382nxw`wXH+h#Vg2OT!(J;tK6)kVfb9Af-7t39{v4rmgY-T!^c!hQ z(=S1Za^91ac0moU)}GrzY_r(f#FP19(YBDB_E)2tR>u0W#zA#6mW>#<6$LBT=}z+0 zb3eKE_hzOOC>D!O9zQ!+erD|?dj;4n{_N>u1rDrGJwe3;u9D2viR#YV+nyzsHK<`h zG_g0*r_to`Q*kS^JGtE5*BJa1^8302R~H!}feyt^9xLvIoN9>_si&(e#cP|}a|(5F zoc7(vUj5vf$EC%bm`sBh_{>Uvc~JQwN~zcjCM(<_Wba4f^lE}?R8@1=i1>7g*$Nd8 z8Pj7z7bG8o+80O|{JbUA0Vv_5F_d0$ww=yxT(=kSa&4{D0`c0FpauJ}b#31^Dp+@0 zk0wQ_d~NMw)v%#oB2F6Ll%px z7VTBH_N*|NkLXK?k&`wEPDoo9^*P zYHg}?zADdZN0--j!-IBZQtH4RG`?%Gx2Y=2ACpX3Lb0@J4NrUv1OsK+^Lsmdm~LJZ z$a7mxp+CpwqUZA~y!cg1T-SnEOk7J<>17bAOa&i7%6#0{a-0P2nzWnu26e~4`SjZ}m zb{ayvb|x7?jZ^#L!bX+PaU)q@3nRUo86v(w_QegmWf_LFtEMA+Ls#W+Cn@jK&9sW59U8*5pTSRZ#qeRdF z)PmMI2P`Q4SyltHm40T_N)}p8hQU^#5Jm6xB}iwNg!l=IsW#q8oRkgbtye}fJ=De8 z2jGj>5y4`DZi0hE2RS2P`1+rWDcxS-IfPYKV*sO(VC19}F zu?fv(G|X_y+*gdg_iF>`Z)8*5x3<>z23A;S zk0IrlF(fC>^=*Yp!&xq)>&wOI=`345k04IRy8B=gRGB@h`-Th|qX>U-)>j(=@oYDSWq&|;dw7N!wqQsP6YFne zgp>-sOL=#-_86W1_WBNavpzN!s>YX#WKZIb8vO<*-D3!p9;(|9WjUQPWUi~-ZAG5%=;J)?QS-Dp@|@`bUGBsyT#P^Fi=sVD<_NB~0Y_#SSw5{f zb9xY20i0duriT+){dIrK@Mf4`lS#sWH8X0)xl|91l7PpTlMy5kc&{(Z5|?g!qCbPd z_XavGRSDfT)3psdh95Yl5HrO~mFJ1^x)GOppO!~dbwc-zquoLG78V5hCivNvg0Ri@ ztxS)en6{oU=!(7%krxu>2=P(%^Gfsj4Q3L!5a@$cq&k|i1{)5U z%8BJ_3T7o$;60Oca2OqByc)If={&RPq`7R2G^j?NW;?4d9gp@gw5J6gE`U?(6t$y- zb~2~o>g3?pFEKTdNn%4k4CKk<8LzuXZM zp6E-e8JnUxU#{HLW+kjNRgWX2GN7z1>YQ#e+CaPxa5Et9+aV#BX}6c6$+A5a&k$E$mdQ3-KKQ(CdYS*Ya34?lCo1Bf4rL5?ia2LL8$TB-R=6D1#Q&XQ$3Z&rC;>fSf{| zG_HY?B-#P}6uDK(=OEi!HGIO{vYAC)sj8Q%p5Wjq8eB&d%AL57mS@g7rp-r8NZW@& z7D`G-)SIckgT#G?N?y&Z@P*v~r0)lbdSehMh`=O~Ak2~GZ_Hx&tqeqjil~%dNaiB4 zKG@N#y0z_eAysl!Dy}7TV!OgGmk7E1$#ZkL7kPOzkt_Y>379_Ca>llUd7i#I;N><} z9`jg?Se<5reP1j@y|@w<)l&3hn! z@X0qYYoQp3jfRUYb{p`678iECj6_()N`$g)k~)^C@yen9VLw7lZi}(X6x$6!EcQ*v zO!R>2r-e&bqtuWZ;6M}A*{GO@wOZNp`EdKViLI%ttD)`&P3J66D3el8I>*v#rci*%J9pZI>MAkoF(GvF63H$ zHO$g70^I}eo8+tPb^qnfggEur8gxnXd4hg?3tTYMaEDs0PKD{v3|{uq7^dO)8rwY* zSZ0J~_$d)SBN4IbbnH=*i{-*>!3*^i*Sakvz{CP7`p>JU-@}^Ia6)!56Otp^MUcC< zn}*bMMK4mUvoz^a&O?RC7k-4Au$@ugE++lE(4W`I+g4bE8X>zJz=e^k6|}0f5{6Bv zf3l3;R#xRWVja6(Z@fA6$FFM4j1%QxYe+@c)r#^g&pN&uz4ThZ!G6t&z+V;w(Pm9g z+wD2Y1hXX8&Q(V*O`CMO-|TU;VvPpu)Jb{48P|x#uf-V$lkJv-aW!!`4@zsBmM$

                hn;qOhYnrYKR4kI>d-bvQ6r>R+>dm+X-Ja^03oqW0(!Vnv<2cX+0uFa zKAUB#G2|wgg~LueB?ZTRHLGJDl5n{>k#+QY&PpZ^>yeGkC~>z()bw|U>^D!%oON5K zB!(>p3u-#H%_J0@FAGTU9Y2|h49;eB5`4o6$BFX~x<_zYF?pY5wrHfeWm$bK2O`L&5Q?221DYRRQh3bSBQ z`(!6-H->sbBTC9vKWYk~)8|@yxKix`vb{SkzD;()WNh8mQ>{&7sGl3n0|=KH(R1&} z(@;oFkDIb^sRl%-S)RH;Hwji#P39Fjikj~D-@eXlmlvZoHP^o{5;I;t-vDz~$3=-C zNk>a92x-A1AYZPR;5$O2FkG>vdr_>G${TGfx-)n~lVMYAH8)adfl zQV%O(O@m;}l3<22#BEX6_?eblDJ18E*Cf6Y;xfoA0-F3A(_;-B$w@qc9o99y7ANdq z$o=h%=rnsFOyq1f@Mq)(_e$rLw32j{sLYtD7`9s?qN2XbXmK!#65%W<>YZ5!acHV8 zi|G3cBDKV5;h-bdr)8s05kiQAwAo9bRJ}dYVqNWb1qdk~7O-b$aj!G2O}1fCuj-&b z9-_b&*mAYK$j_Fn8mnn)U!zICS*WS2x0#~wmP#c(#S56-Vy_Tpd8Y(s-Q$>H(e|-Gch$aw}x(ya=7?m zYK=UcmbmD{>K!U$Iya*f%tJd^W?ey1pU74RI)!Bw3sz`0{*!r4C-=aWoz1kph=#m6 zGK1bj2)lQxrDZ{?3GRW&4k@(Vp4No)a!gp?9c)Nx4hnQQh@+2My~lb=_N?JhI(qXe zr|B!sLV5`2HLX@vi$H}svm;pQYiRR<>n_L2-15wNnkII|0#-EFP%b+f_7R9~ctJ(c zfj2+Qp`%&e;wammA%T4UmnHgjzNFbk!_F@vgJu%QJ?V!NfjWf_UN`dmn_bWC8S$Dw z9_EPi)qhgEWwtHsms%YfsAk#xf^X|=%AcaGijtq6KNza@ry>A*C^zP?ZARVT5Ql6- zAW69>ETN6n$x$J;vv65-)`&bCLR!>_N&2e0ACg|+Y-|%SHucNNI<(NJ|5us=#@6zf z2~utf4GD4ODhc9waPRl!s@h5c!9HMgU^HnaU{*-KA)4sqbE+#%O)KvX8h~~+poTLP zQ-t3*hE&B!OUuZ}Ny|*!$;r%2>xK{whhJ%ZrN4=-O-q~pW_EL0p?LZG@-;_SctVsS zjeZsedIk%FcTo{y46YF$zqk+F^@eikzWw&Ql}?MDWwVBstT)H`2lobqp9bPE)b{Eg z6Ee*5N1cIT(DVm2qTboc?_{8=;sxeTRChmRk-mO9A$gk=?iu>K}xU*p1i_Qyt#z z$#hgKSkNo#%|^Mpj^9Y?B(`WEt<<>Y5W)+Tl?#4*EFQ}gOC_6)7t|+lYKEU(*UvoM zNN<^o%L-RKikMtHyFe(Z4=~F*T9@|gu1G)3kA63rV@i?K6kPNoxm?ac(ob)L*ECy5 z=geUM#pYC^_TVxa22Og8Eaa7=Ie*(F2sCQ0)QAnv1p?u;~bWE_Nlq)P{La~!tjfI0W)ZmDQBr!Fa`0GSl6 zpLK1(pAxBWT{gmJ-_mV?5OWYV&7-iDAb#p2nwGW&p+w0CJ_Uvk-0o=#X{A5|Z2_Mw zW!30DJbwI%F=XMTGQW6P;N?#qqm`XIOV4GZ9-OSnSl>CYm%Dn}nxX0ZfcP2@9r5@JW@00|Jc%I z2@0h|x*11MAN?gq@(b%BYH+kUld7eOk-%h%|3RKgCnC3MPSfZ_Oo#Bq&tky7g;bW7 zDFt&g4$o}}b#9uL? zryF;_QHX9a`xSXVBw^%RI8uNaeg+=S^1Kpd0_og{qbqxvQ0Pgo z>;`)wIXsynv4elC(L1Ue$WHth0sik^3JZzH4r;wYWA>hPLD|;!msljbW!GMfslf`jLhxz#LDG`?MQU`(Mgp)x> zKrNu}2)U@o)yfUzWl~lP4%dM;f8egl2$0K&ukpKi0=U6n@g&T}!{Nhb#Ma!wUj~=$ zUBjwtC?s5Jx5h9}i2^bya2-F^jzX9*DC8ySBum^bra0pI$j%mUD7-@vOyfafiyyHv zy;0>_hd}j(wLo6qt2>_LN#T_`mZ3Yi9$ycKV>Q>=6quZG z_`CXhIEF7In7-JUHus(aU-g_`JJj_rLRy=bY;kwsfS_7(!T4!YWZ;@c^VdzSDco6J@hJm@M z`U*Cymkc^-x0n!IbpzaL9{KozASLj){a;TsfmyLPLxYmAWa5?^RBxD9AZp+Qelvdk z;zNQ%;&cKULlqMO6641naD0oBM&ojFcSsN9EqTkc<1xTbWPjP^3R!&~EUo1(pm@Ho z0;AXc^$Yv@<~3%sJ5#c5Cp$0;OGBdswz7txu&$Svr!f*W1#8mW)>FkAs7e2=@s_Zh zpV`oao7rSGvrBqx>@w zgZ9m4@Fb{)!3SQr2lvZW@~&(YiabY~+KlUl_{?AETbH~oC|=KRJ#V2qIR||1fbsi@ zw^|vaZ%m4{4RZL;2mQQR&78=qJSUy&%BHervyKf=%3cFO0^?=#&FbH_hGUJ+A^E>0 zY#ARr1`>7$bkdz6=+pVKdr#&kT6-DO>`JLEqc*6NjYaUMd%V0C?Drbp4;ai9Aq<*1 z#*{cSXx`ODbT)c#r!>p4++`vAb=|-2WqF~5JIE+SF!5Ri)-&90Y#V1S9c2i6Ee%la z&dn{8oKHo-@;zwTJ`TZ6znl}epKiZG^j+|V8o=MBo6X_j_;A!gX@j=U@(4YSgK}J` z<5YDB64JsqUW!L)d*>YN5aZph-3M3j{`Vtv`MjvDj z(Z*@z-tV1eyy_qhoSUtEI|QVV*=0M-r;7RYvuKCyodre33iQ*K+r7ZH-tqpZ%id9l z`CDm+Vfrw7TB-6Dc}asDZA!R#Wp0FpuNN|1cG~ya;VqVqRS;2tF5(T+ zJ9td(GFjPPT-Fi&e!MJmi#OhBaC4Jus<#{a<62zb+>bBgR~_Zz9OHs2`86=ff#j(5mg`Oj5&SLiBwYf>4;q454Aik zgFP4()odF8Lpk&XIeuV5-$89J9`%Ar<1ZRCtMCO&TnuK@p5rFXDzx+b2`*C_`7PF) zPCjvWjtiQL_fpw{>X^18?m_l3_Fv7*4_z0=n-{MGzTv(~{27~~-6y_~Cw+3p9|I2F zEOZ0WyG7TWA zUPgP&HC*9nO&-&;R9RycW9VUxAs&nyeq*2E@5X^c5ku#A*vw5nr}D;rh%#R%kS5S+ z5GxU_ky63b!4SaopF^KwAN)#gM%M8QKsVW3}X z^(6Ycfi8ks!!6@}#f?KUfTut>gyz7tXWsJdkq6H1VGPI%xB+p45Q8uU-~VC>3Kwt| z02QcIZBnl{+lx2mefZ z=rQvF`4&W!r}3C>U;cTxmvQOOAel-zfoK_o`gy>YVK3mW;x6Q_=C0{3{1|^3a~W{y zv|ZEN)$7gx2@eSmXZlSaE*q7H-d*={V+*ubvRAXWeCu`V=hm@-o4u30_@(`2$y7Xx%8H@NfxTCv(D1XZ7816}64B zv(LGno4gd?9a*|3V4#2>N%jyFg!b7QJ`=$s=XMRt04p{T&yOHPHRwsxW5KM*`_fyR z78Nj?IJhZnIt`Jx!okImuNSDNejtL;XJW5Tix{svt7ceMr&>3>Z4S$I)eEH|TFxs= zDyNQO&CJAfNFe6OSqBX@g6KIP0nCx1^|hAW1FqAtax9Y3bUc*#vajthy%7{r*5}Eittwu9{K?8fxW~lCNgT2e_lA z$=34R7}Oj02Gg-QJl1@UAx9UbN2loekvKXgfUm0GY*@__)gsq*d1>K`OPd!BieKQl zwYiq7)y$?T9WuHE7e)!r!cu>_^3P`#cOQ*KuQqG}^%dLMVp~$U;Nh9tTzVZlT1{WY zn2IW~Dr4*8HR|JJBXxV}-a_y*;gCWF-TZLjxJIjKbKtmVr*KC_e%*WVCV#~a#&LYj z+fX#n>k+>|3ddGLFVM8JC+K(&U9=08VM>5XE^VR$L zlF`WefVpH(=^t?v4Y`!s45Zr(hWioF%9!gK>Gh$aQhh%t^y~A(5U$C)N=b9d2M)aR zSsINkf0v01ZL|`1)nRFOk{^rkFcRTShxLiYtv){lXkl4uuhQQD z-x)5|T9BAOxd~jCbtxHogvWLfic!SE3d5K@&X#{0=|3Ie>bq2`Hj2rn4?NZ~>QdD- zdyKxo6bH(Hw9I;xa*|8hX2Lf`$`Y4rOinyz{T=mFGq0u)JBzhSSMxl`hcZptwQkeF z!P?z4lS&6KSy-c7N*2|54#rRevfnk!)&>t>r*miWq?;PpjC9%?yETkoX-77^QKCAM zH=gmkCo;HMT(%pb>}b`sB-LF|KEuG)kBu9&eGz_S(XauXmfc;d16F2yCXRAk4;W?7 zAtVFDv;u+v$bHVM#^esBU9heLi2RujVsbXSG9sFiAciFMR2*lsG^+2olEhKks^u=h znZ@9!5B;|R_k0>F<2N0z=$i-VymZiAERL)hk3BPqIh2d2zmKjlOfcecb!w(oD|UgX z^A{yf>x+}P2k+og!10-?%otlxWC!5J8=tIhP(u{bhUH*;AAZ1kBV#2|iTi@TgS;xF zFQ|J%X6Z5gnn{sa)EcLF@=y20(Kh*`qdgp=IF(fUo->P$XS4pxqe#7OA z{z>@=-w~L{{Y64bUS7sl%I?J6*7`!iO3o-??x@mLEhR~>b!EfjWlroMbmN?1iK0O=h!deeW)k~Lq|reg)gn~8ID<%$OFYgVFnE2O zZeiQ}C6WfeQcp$7A7=AHa-n50^V}!TNY%EGbJ~+)*t$lwi7I0H=^tiIBbGFaNo+0) z^Dc0gtDYI~>Jc`c8G0$S(@G3O`NEQ;7FxOiY~4Waj-_lJ){suw>?vLo)hBx#pX3_j3WD5;Y}9kGw`8h z+rO>s93WKFZ{1Na!FW0Op$7=WdgLMuBNQhJ2Z+UiX^xh}dbd{biD)`J(s`m+Of()g z8bxo!_3lv{I7g#RPnB9r87rc!!5{RbaBFE%flnH;Qs^iO&L>%*{t~Lv>dyx=N4huL z>0W@x5Yd8}Q0{;t>QC$wgL20^zk8%)dX1_rCJ?TqRIy5gB|oCMC6gJxE_cB}lHDD! zFB(xyC7enmvsvlQ1(=h8KOh#%k4f=UZzopDi}B2)R7`#zy?1mxbpAZ@n9WqO?HCTl z4%=_*?uz0~^>g(I(MYS1W@CEpFe*q->XmLBa7`$;K9-jNqs_BtUUNSQv>c|@)}VDn z+9HN(mcu9dF!;`wv=O)HnqWiN)x<5I)}eZtNXC@3Y!;s~o>urPAT#n-Ahzln7KVfA z3^D7aVjy9+uqpZYY$*1L;hQ^}kL}cu4<@!N^CeMU^FYNMOw(RaQ5VII_T(Vxt)h6Z zo-0W_1I;YD_2PBXWn99t2{i?~J^vEoaBRa8PO&`OAg%E%UEdEDe!Kc?Y-D-&3ip2D zA4`)jt2LK>HC>HF%ZicoG>YmN7ng=C9sW(+64PQvDPL@a(YM&nO-wXtp_-(Xl=V>9 z4fI$W$#|(*vlda)PN|wi(yS&6lnc|2B&*VVc+Zk(C#{VG+q>TgQF_|*Xx&Z$xc5xT z<{2dF^y-5QPKrNiQbR`NF{*y=v_)K_5$~1?a-+1&EmzUg@r9BY3W!ZvZhAeL`0b|A zku~FR(*eJXF7n303lfIt5s566*$?tb_drPk&-NqxRPh2IyK}Y z)qIZU&voBLBsJT<4!{*x{-8!te5C5LjwrNvsR9#HuTN@aXKs_0&IQ$pakgd`%p1Js!5SFK=?PT9(N~+XPQUU^)=X73^)yp`EZ%)Db( zC77%9Gu9TVM6Pdu99hNJbagtA6V<7b)h7Z+1WN{A-R?bhb^nOV5h3CW_@d4xc$_-7 z1__FBNwm7MsIV-_k8%EG<@uDn9xuCS+7mj@O;uAuZb;tpjd z!L~Ieuw0V;Ce13E{nS92 z-r$y{+kZ`40nk_H^YhDp^HVjp`z~NeDZ4&(mIz7L@{us<*^hLePnkccW&NXms_$9{ zH8coIl&t@3iMyt6G%bsp(-!-SWGx zjFwAqafq#RE0*U2i=9S0FDq5FY$R0}^VIG%@E|3L#Jgxd*(wLwTS)T`Okyz7*8W>K z=G({qqT78qhe`K6GkNX{z@9#Tyq>h_5Ex+@o z#AKYzM7Fx?%IEEt(L1}}E1tNTiJuu3v`0WUr9D% zf@FML6vO%`ZwTX;)6Ty)mK{y_5sRjzl#g&^wTi_Pl(WQ2Or?|`;K+2p@u^?*2rLF7 z@5@Vd!b7<)#%A_d^1!wHei%y^cRi0>vfb!7f@z?DBD3J){YEXA;|8FJU>6(V{69An> zhzy;oimX%Tq`wWD`aQw=TVEPZAaCXm_vx)mW_|as8~Ixd5&eRJ4UJWKzzq`E{s;Id zIuYFzY*VFoY`GHyVi6UR?kl1)399RCbv-J2Q)SA=NmMrqTAul8c6H^N8BCj*@@D&c zCPl0iTo>N<53^~B_gPv+vvK|3RFp`8FMIHHBQtTo#RQ6jw_{J;Gp;OXP%$LfC8NbV0o~;RBSq zFM>g?N$r=fLvA;n^H6KI$EvjNHcz9-u}AVT7n(fA+VfVy$3_Y1(T+$d;04P8n|=3pi@XKPI6A~|^McRd%)NNjgw5h8oR2@y zDNeo|W~ zD{1B<^6jI6G!3TQpZ9qZl#(91?`sdRtw!mn_E;6XHW2I(-dA%V=%Q7FQyo~?;mThf95mB1K~}1R1Z4q zbA78%tr2i!tBL7eBG5WMLV=>7Rp2=bH3W=xU{uD8zNLW%uPdx;4+6Cq2Qp3#7n37ypMZ(YSrF~!BMXgoVSR#%M6Zm{VPJrZkF@;Ky@0=<&_hIjr6rSxI1 zj=t#1NpY6Cas|~c_K*+*bsXQdr7oC1Pv8A6+(0dap<#wDR?s^IJ3Kj#7t79%BbzZU z8z0G2AMd*>HlRzIiuHKbRvnE?YXn@QuGj=l`9=fLx^?~3vq`?>eE$}6jb#R^t9W;@ zpN9(N@r>RHL@L)_mIyvyRh{=ipc>rVEZ_5zF>oUMz57zfB@lRe+IB;lzg)ynw|P29o=E(8v35h^Ka zk+(k_%aV%ojEl?jD;63FYf)nGYAE%I6t>QWDIRi(UBkGxL&tt^&6R(cFdRJf<(%mM z*V;KpN7ilqIyO4CJGO0i>~w4!9iw9#9UIlLZQFJ_PKO=yR=W`gS zb8)V@E46F?*5f|~NeKek2Wle_6J)VXCxkYmZGonRyd{FxBYf5Q-VF9Z>S5{@V1D z4`{`byR)TGlt@<=2)MztelGImU1(5UcR>L4l81qC*mn2N>@ zm_2I{pxOzK%)hK-Uzae~aEZPDcyywRR>Q;VM9`52RDf4614)bfbaeqfwbf&DFmxcH z9N(ceEYhFy*9>UDFCBmd=|XK6CbV^K%{e`{<#<>Yxt} zUm-|_)nr;GvXp*8y+hLl%jEnPQvF%0_lG#@ey226Ie@aS|FzzTlLLlY&4|*fTKg31z{>0o^I}{3#*Kx z%fTH9(rGIwW_9-xaTJH%PGb(I&H}g|Z3K6dmIx6dg^{EQumgBDk=yLDTUx z5v2L~Ljn1|gtw*EPU?L3m9S4)7j07=TSWJ1c4;8k=s?6mn^N(xmbJufm3- zM_8LtFt>I5x+eP{7jY6R+I6!RpZb=edTEvwM(di!>T+0Ej6J)?qAaI92J3V1&1IiA zEoafgO$H9mLLQ;-S{XH)9cG@wh9T4xg$%~WHT3k_T@Gr3()>DEoda2TsEEA}bY6(% zad1&^iV zH99x7nYgW;>$W|A>5})b8_lEUR*@*y$-L&sBZk-|-VrWDVej|qPwjUrOrj$l8>X?M z*%zwFT?dfO%XxBl1aC?cMijQlr3s^varlVJVWu za7J4OrPhRQ3>1rl)#^6B4CObyFnN!9rFhP|^S$f2!+l10#(!3N9=a1;eLrU!5I!O1 zYTv7#H!KS55^WaE3>@5P?t=`?KtjeBaCG0jEbIH`(&!TI(&W;`CY??*5&z}Wb0KnJ z4!8W5ByI+0oqhNInJwmC=8>AgnvtvaAK*ihFzNPT41PuD*kxU9x|)PkS`{(lfU=Z*Wd=j&{y)uKMNw zOYU$g%g_0(1pchIrG2kC)$f6;*H@P7FiWGWtmo6dQQ_t`aa znwS}*bIL>leY|ZPLEPimd@cIt;&N59l-rTX(aKS~(alsJ(r4v6vAcqw8Y_bPsE?{G zs*@vF!y3b!qxZweV;%d#*A5=_e0tfWoWo^%^w$E9r7tNj;E!0>_IrY(eu=Sls3~Ry z%f~+JY;FFCS3Xg5f|DE3e$s zb29I6u9h^~36wlHMl z&Mg~`QZGE2om1Ox*`eJsh@tkMp$1u74GSkc` z@>tuiSX+hJ;xEZhGf&PF5>k4PL44tfY8~Y1l9Q5?EB0$=ql0m4_&ydBhj@96#b9VZ z@%vt5UW7E1ilF-%DrMvG%ln~Fisfq1n;3g2DN$=^=8sXMsjNyUuQd;GR{FhWI~iae(>^U)e4aE$0WEypZOVmljX= z`plj2TWcriOJ!mwV<)w!D+FrA#*qplO=v#yB+wIVAob{7$-`U~#d43zT`d|`Ex8dj zW~#x(Z;TLxU(D`MRYlt{&`<+*K8-rF;tllIZKMU_XTIN0<&F7FJ!>n3S!_P{fA7>B z!x^|$;lIcfz_{>JK0+vm<+Ls8VcJ@BW%=ozOU2Hx+tXRd>26>a2v@(r4_Ah^N+gG9 zmQ;x6J&T<)jxfc>gZuCxNlx@5<@_CN@?pO}dM5oOYM!))iJx&w(s5W3Z>=xOisN2y z%i9b#o%!PP4L;1yJJcD*^gC200s-+r1~_jOix=|H)i4%8p!1CL^g9;U$hxyk5XPWS>upm=4tkdjw%zk|#Baof{rK zJ!f@?+gD=JN%Z zpsmsK!pKH1&@5OUA8bwNAqqsN0se%XDyP ztP0}_Lqv`|xk|@&gaj+w(IExU zmz1k2X=@vzSjim)q~nj+MmMwIfuXY?qF6xI9Qd=$r^=}GL8$N@6RFq&=)PClp%<0m zuuI(-2`Oj8e!1&OBs8ml{X#-v{Qx>%0ye#UkG!@L8ib;)d;q6!xl%ds&NaaYA}55P%un z;|sLgFI}Q=#dbOE*|4IapyJ|S;NvcM?~2LDv{7vgyMtM$A-)D05C2$c;0|ta5w`PH zZzQFsCt+6;a{5SFemYZWaT3(Y)3eQ4gW8$?Fdd%Eq#_yV9C6df_7Onw%S}pn9uT3- zf=)g18O4(X*J?u5>Wi;MGjG?E;*Nhj@pgl?by{ zEm;AVEr|5C>O4RF3u3PzH8)Ax*f;|nW+b(!p`Nfnaoyl$F1A{CO=3?U@WCt239!A2 zeoGj*$Tmdx=$t-l9sQzcg>g8A$Pb`+_=K2yTd13^wP%b!nJ=Xq4EV5$YZVM86{tc% zD7Cc}vJr+ZKo_@4D>!aus{Nlb)&?}(Jj8z9VRheo=q~!XeDd`lGsN+ps~pAHBsZk; zMuMBhA`~Tck&q^B%_p@tS)#;=nf+mzq+#+?0Q96Bd4)nn{Gua%yQwt@^Zq+$Dy^O( zBjOc0UqDR1%|2g4a*4Rmai#i_D@%)p)yWjzu_szA9bH~+q{vtmzm@w0q#Nk=bVp-p?A|8B-zEU_)eOSeCg3nvQM>GsR@|g=<0Ni}JN2ClovX~(wv{~+eprn1k zzw#GzNz1R)4CvN@bKki&H}uOi)Az4Z!d3k{Qc-jmW2CIcf_$K3$PwP*nih0$ zdsraGCWxO4kv*E9j_p9fB0T%>v%X;9w| zn77F{T||ns+)mmx8eZW)6G?0`KlZf4^6X8QUa3+DiDl5*J!=#ORGeT`*s7dJr`_6{ z$5!h2-VBds*7J#`Qw=QHKv;d}F8NdeUpS*tx2=)XSvEVbzTWB!8R8c}&6y{2G78P7j{l31C}eNH z&Xk@A2E;X(4gZ^Vma!IOV@W9{;YUVguTC~^~Cr>*H ztTgSn8kmombb*+C9$)-%uaU~Gwx{ueqoQHv z`%TSfKQ$GWiit}I+euq0`Km=Ls={<^f6Djom2HnGjZvT;8RX@q)!o>2wky$0Q_Ta! z3~b%Me>~tj5og(Tg}Wp5n4`LWPXb9B&v^#jJH%Q?ReFm$(Kb$^fy^MvFefp5|0e8TgTLGad3xq<4FTWRTRI$7 zJ`TaaPu|5P4}myPBnPMX18xD+$yQpV%VASSCzBUaGxaS{stK|a*wpTVm71JAg^c9F~o5D;d zB#$D|VGh6Q11g0aQxDWLHq)$!BU7`7pilK1fLVqMb=d1 z7Ud{G+W1k-36N_&nsIY;ua4&$Nk~~YkbiOTndPBI2YD$uS(fGJ=jOKyKk%;0b$3|s z0{qBuOp-8m{d7a@&QOvTbBRP9S zXD)-_`!?}@jr!CkHVICDP$=g>eFHmtL&M-V=7;wz$+B&$X1GevC&9J5_2izelTna4 zHNtACj|J)|_emtt-{SWfiDBgl240Keyxr@b?YcBiwDI-PB*ACti4y%`?S4X1>!{la z=P@%*X;R=uTwhoBMA*V0#tdj(x-TnUTs>84^+3onGzGZl+74G%s=4G?5T4kNg`HuZ z5TUs~2Sy?}OV!R87ig#qd+R{ggQY~^bYnBJocJekl*+VI6zY1GaiMjcVi5z zKzwd@^sD(!5`g3{?=4e<<4v@RQ!BYs5}|CR93kr{qUkIl>@Gl%R=F@p8{qY06Y6Nh z5Gr?Lhw*%&FjXCE4+9%6$mzu0#W;>d!qvvF>%F0@Pxsr$K9Rsz?LM!oI1f0<2oryM z__?*s%{esBUVR8*a}sin9-|Y_yQ_YN9na;-#8WQL_d*aqCG}NA0h7T@Sq9=NG>*F- zXI<1&s0^s5o(0dqpP`^)2x%yU5S{*0%;`Za>{u8j>VUBZ+bhz{hM>6KYTq{wsUIpY z*{FzZUXoHbJMKK>d|b2vYqcHLY&r;nIWL;&$`Wy7J?U#9SPYt+zFU`PE5*p2~*+Y8h5X_4p*n=_9 z{?Q|X%-iG3^GLGYc%YjUk6g6XVcnA;LMvoc;A`%sF0W0Opd7(!lu2?_yE0)w+DBNUU{VS6?>+(BW;y6H0S>T-;pZ6}SYq9#qaZhm?o9m17 zl`YuV)!3X04s?%jn7(ptjPB%RXOrYMqd1)SOS(5x!gLISIHmH|qy{V~244~gwjabW z;^!)b9v|7TBQV7)1yfUqLPw)Wq7l|5uAx}ogT2pim-a+wWb0hh;t-S~fng;l(S87-rfaYLYZZpfVlmZ3f_hqfGCS;Sm-QmX?-QR+izG5$M7*BCVdVr^go;`;N1IM=oyn zmIk{;f~-a4-)`YgPBU6Q3B83qQf@aAz(hyDAzH@p%xtc&`-&{!(*;0BO&kHJxgJ-y zDTO@ZFU|yJHs|nG&ndxT8{>L9uO*xqQ2FIJGH->pJ4(E zJB&pokZUlt)zR?soR5RaMVs?{s0TT^a)+yTL_BKZI;pRuGHo&9haCNcj!`tg9soOe zI0EnAC=@GLShJUfui{xxiukc7*xT1B5T!j)L3?_M<^(hDWq1wr#S%?TB^|bPTjGIN zeit@Q53w^glx?%b0STNiHtS8(C=ylPy=l6?ln{!IT5H!@+uf2238gwSVCy zShwZw&heAjwg0M%5`->WCZsf5BnuS9&{xpPPIa`v*FYM^HJH1p8fl^OqbKp>dxukM zuG1ul%!8T&s6KGmQBXr6*nSTBui!t#!EHJcLCASq{YiwCJv_8vQ}s>888N?x!wq3> zgoXQj1DnR-saXWE?sf-(9pBr?PnoRK(N`(Ovp63L{F#IO@kn_cM!@yKp?d1BRAkNj zDyo4`N)#Rj?NRt`B-@SK08YPGrY6uEqY^C8t-{jHu`shXMlu5=b4*6aPp=K*OF(R| zpcCjtcavsWKMhW5oWD)rTmPvE_Vv)1`GzcxVCi>XK_dH7yV~4MO)IKA>mEGsunFBk zzy3Ar|;^*bPB1+nQ?;3KKtvWw=7pbLu5640Cw2^X3rO@U=g zA)!@ZXj&yu$5-K8WFN9$h{1hiRnezeKqchps5HF7sWP27i~aZ48RQ=QEmTe&7=AF? z-6Hi8y8>G6dVeg>A9*>fNjE=mEr)sM#@^*8w;&Y1u#TiZSAA5D$O?0@36}<=SUL0c zxGI#6q~um`s=1{r=0oFWvSS=5_L7|?f8;eAR=Y%OOV^D;Z?VuGDsK8Teu-ftt5*~F zXpFa9q20bngeH17)LE_k)jKD*#ev7=6=^aw`|{|Q1Bp?v+u-ZU29EVCS@5N*oD+f@ z)f=1+aW4cM!}m7tyK+nDbjt0m!KDntgzhYd&MeoGG+i61Qjgr~P3b~Kl7tURs+PWv zzF*@RtZUFUoKmir3wF6=aMTCL$A<(~;HWIUI~Gd7Jk=5j5YW5Be&$GDGbh;6Qqj@T zQBh4YGQ6yA`sP+HD;oi*Xz8iStKHmJkyki@x2SnXfa7MNYoYy`Xs(dW$?fMfus1of zwJKMmZP&EIFe`6+Ka-?UY?H3cUSv1wV+6`9t3zCga`7PtMKFYQhZbbWr9_FfiDl^J2ic7NL{>9 zGL+KN$Ee3N$6CjF014nN>Eydlp+y=+Zbd{=?+*2DE>7M9S878`1U~qz_!$HWyxGp} zC+R2*iKyLj=@V5vfd7EGUmE6OSq?;_0C^Hewmpw z9vU2K9;zNHA5t8mP4Z8IPxeh7W(m5y%>+B7?Xb+5wv2hEZZL%Ew(ElFCg?`!YUxh4 zuDd?=?z`d8Cytp7XD9MAYLl(e|4I@cVKIUFoK~*2NPL={m9i1nLDok3{OK+uGf9xl zPyMa^h5V8B+Vz_MTJ)N@MJtM~5bq@hw=TFgm1UfwXxJ|qENN;)TQ^$ATPK$d+!mfzpN5@^FIgLVz0pYv4ghvXOs~tWI3O@z%Y^ZiHB6U>lq&# z^3(1bpZBl8O$&id|LlB$Z^4Q7q|kezF=zd7nG*9zbfxVEM~G5=0MhD^4U@Uqu=RBv zACA<_&&ssDG$+3r3Zx>!8lbl>nI-S<8`62pYH1tTMLa*-DaGgK6&)0Uyy2KcPOD>h zkTmhotL9C}jY?xqqu=nSLv)cU^E%Uxq92^h_IUSLlzj=qbdeFiJ(WG)pV5UcA%W_M z{#lV2_ESsO5s+Vz?@}*Rook5UN>fJHamR#!|L&+o3+tv;u)TUkl^+}=Ss|!?$Ijt$ zpa3o19tmmOg03w>cwO68hqKc33ui@PjHySLBA#qrs9kIq$A*|8-eJ`5gEFn9;Sxq^ z+0CJ)HJ>ThmZtMmrD#}_C)A_9cfgSAegC>qL{8M?$N#rwyIQ**;#;l^SaA~5dM zau8c5gr9mY99BB^+>F-5RFu6xvmFu<5PZ-gnu{lGEIK^>#Bwycw@X!I^mR(Rtpk;Z z5ayEDl_#H*i&e5}st5G8o5o8-qH?>3Ob<;T^SxwP!A{1V=6XmcHyx2OaH&)jT-4&- z_!)K4f!8*R$NESt-PbPTWQykGi(SXyhtZ>rL={exX_`|XIGb_S&$<^u-*g0Ec1@ux zC@0oDR*nave)g2{JrI@m%5mYWBIkTkL^6_ppArBeo=JMN7>(^0KwUL@N2KnEy%Sdn zOd~&rx?mgRCEK6{w;rHl#qh82Y643yec8RPWdSw0bXZJ*{pP zxb5&k=6mUR)T=K$yq9(7H0N}k_`dsGy}f4J`>MU1yt{8a_lDZjo%^PUZpF4$I|%9o z*+1_HG{ew~JkRLefO(>vX;mNepUL$e@Pfv6s)M-4+LA!0FNDe&S=tB(e2Sle5RA&3 z#e($uIXe?SjUat}x;_(V$~YbEaOxi28q=OzCV#Ypyf+JLWlie=td52SYQ=Urv>4Zd z{5UO0S_5MEl?4wMARm6vyQ}q7naOkO2=41>O`2oqj1?Up)~9sEW@cQJ-L*>)uK*Ij4rrgSZjmm?{`%iF*nT zCsoeaLwrX^8lKP`kmMq+D)PN4SGg~;*o9^F+voCQ5!1z-V)3|P^B0%(#cBh=4HtIR zbR$6bu&1-7uc>sw@-MtANLh11(QF7U*?=}1TvNWJZw@eMHMpCcfMHQ6xh%sVhO*qv zPOTXxD&JMFtE*TzDZ3|Mvyu;5DHb~V-weK~%O6iI&PQ*Lv*kTov2y2^$xRa!t5D~x zPjJVlbzaSBJT%j%Rekfj+E;iDTAtHTu5!KJ&t0i>j<^#H z$_JZlzqu?S6@G#foH@`Oqbwc@G;If9pE6!jFpjNv4|BYzP0u`_ttQg15UdX|w{w8Y zo7<>aaB(5vz3YZC1R$>rQ3YpGag=TAp7_yxD)3LGF3X}N&5I~!PeMnB+b6#juUPjw z4A?qB*Ixg=$f!Z5%=moKVEHX7y56OHy!Sf-Ab8cvWq>9N%1yK>F@@;UWeR^$KA{=L zz634X3Qk@g7@X)11VVAtg@(o!t@|jSo72_)2H`JHx9Beg72Y=u!K<1HngF6a=BRqj zZS_KmlLGiT6^zxrp9WcR6%%umku(`!nGL@l+PJNF#=Tzfv)H2*)vidu>tm>VOR11j zm|BFvLHok8n#(GNXp~iw#lhrs){$NdA9DQOQ)1x8JL;m&p;`Sp6mZia2DR#@IpI*5 z#g6V-XVHd1DKqn#&@-)mk5JUe_6=iIOQ9$K$`7UCBVC=ZT$H(CYNfQxR8hhFWgiNZ zX@c^_L0Bi)I6*L2v**)^q@Ra=b?_rT&&xtsecrS`Q>hKyPfz1-+`yZZji`h?Avjm> zGYR-!*=n(h6>8KqmMtTnsY!QdJYGh4#lDEko7UvF*4JxcGw0P=)%Gdo=n#RR4F#5* zMTSR*Z_lR{Re07&60MsbpxlU013qr)2g#Ea&RsVG{4iuKgigdptx>*eYB(($YEWl+joWoZ!p)N}bGC)DWLqt^u~X(&#GW(( zVIw~VCMp-4Z-dR=VGWI@T2!jQ_dvkJM>2lIB0|5L4jl0Z;5=d$UO!tQ+yZNr ztgM%YbI#1&0)I^pXBt}+XS(}+;m{WDM2mO)MGb!-zJcBA&>&j4V-E7nx0m4#GZKAT zwvgilJ`#hSy@*~U8a7K=BMzwiaJ1#!89Ul#yNRek#HtL@&**Kud`z`yP78oro^|eO z_b#<)g*{WrC`CiWO{Sn#3Y=)Aed!gcq@JK!@Db|ELf=Ekf(&f9p*#y*5>OWMoUyI< z%-4OF|Du-Q*ioTdwH1$lnkIT!eCz@so!1sL%CMs4A#`=mlU`FvQeqC^;o))yhaOC+ zm1z{a*rKUiJMTi5Q!)rF6k^SV<_pV;28n&ad~+C*+gWU6KdWmA5W2g!wm_vw3|yO@ zPm|==4kaC!h99|j`|dAa92>$2pGBY5;FF2|2@t6kO?f)Xs#5D*S34VYQmyhdQAJkI@=u>|&o} zq02fU?l!KpppG$g)_Zwr7EXF;Y0Lhs5Lk)Op`SrvpyegL*V^o~)xo%_A!1PJDB5F(IkQXHYz1r+Tb{}S;8 zBbga)t*57EJg>aZXnQq+R&S`W#XTXr*NYS=>pT{<7uzgA+o9rfJ(aJ#?{26&gz*plTxdzPtiw%h8ogz2ZYnLQp3GGZq$5%jEYxETq<9so(lqXD#7hC7aD;#Se5LF>pdxL=Wx zqd~PNU^d7xl4*gjYTx}gG-AFsYT3#b^57Vd&a&hRRzYX~3})|OxWu8m(eMAj0$rK# z%3}h4;c10lJKpTaw@DWgu3nqb%cM0 zD&0*h+XjG`-2JhG3MB&-4dRUhJN?*q=wZOBd2=ADol3KLBIs#b_@loiuNrN0<+H~V zop4Us*qkE(rwGF*>-Anz{1QpUhUy2%TQ*_!8fu?$ySp~4A*#L+b^nOthr}C_=r1aR zDhZp4nTh~G$v&}f!Kl<5Jz{52Yb!hqXaiIH%D(9*$C~U0mu+}+yiZ3;Y&|l+ zQWzM%CqZ$*yHw`gHC8x0R77}EE*16!1$ZlA-V`DD<1s_quM*(x;$?g`!u;BrT@MPY zMWi9th+}2k5Y?rGhBs&mFwCS*e5rHtP8YPxmFrHb=?_88w&2zZQQ9TeiBazseP~3j z><01rAgCRT6t)dzLhR9?-B2OJW&&-Li*SpIES1^XVJBB+L(UVGhb&d?uhiG(NmzbBBB4VV zBnA+9ql3(`h_yl*NMfg+fngNDaYN^K-G1J~^V)1^h}9QB`LbRFEOL=s8ys?d1ePs1vt0hHRz<6U#R3;E6GT5&y8Rb2yLxVpDwZ zRwm9P#1EoptfWBx{5Ke{d`O)=ukN`?cOPeUe#(rQAR_2Oe>*6G#z{loZ;a@IRUI)V zpjX_E(7{m;F1ol_sY+%uk-4I!a1nIwk)i~=+r;wlEXbWup*z;7&ETC-gNN&l7*v?=j;4ThB7-GiF%KxwuNE}B7uug{pJ%suU!uomRd4d=Y$Cn&{D=g@ z4guvkcO%Tbe1m@Ve?H$0ud0fujkz)x)l_qFGGi-=;#{*jT9slUrsk)Qkx^ivio}@k zib+~~>ZS4*sS+k4?WC@&{bcwZV1d$|^ZNU@8u;~rx2`zCBM-Fdkb_%3x$LkKHxH9K z+Uf@POdEQ_lvz+nr}nzNjIvkTdwEzc7Hu2xpY$JL)Senb1MtoA*I;m)1H1$C6oVq_ z#E_G5(^4`SMh7g(A!n9VQAn z7Jlb0L^pUobbpDSQ;Zreyx49($BnJO3f3#*!eHFL0Os0t^IInlLm!n_uWCTnw}}h@sMmTv9J~skx3_@K z_6&2(v7H3G1Tm9*vrS9e7pQ!Ggo0C5EsP6MZA91(>W#-k27#5$fi*xu!$LA}*K2~P zoqk*j7xefjWom>?Ub;HU|J=If*@d|P=%i3_^NBf|@3HqDLgouwfSk7ANCwD_$nC}q zu=`uv?zG)QK@wiVS-0R)N)&^GztTNg3v0MWPHV1cZjO9C%ZvYN7s1Yn{CX3sT_DJ5 zBbJgY!u|6MYhDB0N3hK7kumO~$VRy|H>Agiq}O&BsQJGf>E#K&AhX zXoyD64_=a;#>@A>rQA^N3Q#|uIS@QNPII@_ z7vSE(=iy7zK|Sw$VT>76f#G8?0QygDmj3GIzZ%c2?bt&ou{}h=Zn&vQn`yohENwq8 z{TzG&!HH?vEeKykQq26t+v#x{e@OreCS+%sy3=a+U{wVnR)#uHgP)O35B9L9wd5cp zlJzM$x2N#Oq8I_qG#(UsZZ30IZ)qv0(LMFt+J!+)7rt4~zNR+G8w#@BJ1gvko0F+Q zG2HT`&-Oa`wv#`WEB`mHvIKueXcrmZ&`FMPE9gP(;b1P&Y*zwamM?p;WFK>9>XKTC z0c@D&o2*f1Ok_e`kUz&q;bs*yz^y4&YxQIBQWUo>>wXqi7NdM*R&J)6g0MLh?0$#3 z+HWuTH&2}Z4G#mvx%`2+_!}YRA4~^LIoW>z9a!1^{unk859eTLY;Ed74BT+Q(vF|< zqOFUP*wTcbQiENNNzOsk)WTBA)5%oDQ(o2B)7qHZgi=rdj!)1Kh@~;5cL(k>Z1xA; z)0r5Ey5J`jRhE??{q5k+<8JF<3k0IrF&lQ~pte2YCM5%t%T6hl`6fKc%Le zBC(6Ty^Xb{3o#1=Hv=<0Gb+t_uy#mJO-_HUtpnshPKA;be9FQer<{<{;012=# zF>}!~vC^}!sxmY2Fmdp(v1!e>wT19OFOg`Zuxq!vxG{VAvS{ezg#QBmOTP|GkR-aft*FVg#$Q)|6*eTj^NKWW=;++ z;Ah>R{a86Uf#9frv2g)M`Y$#%c9wq~FEc0iZxYy_%Cc~?12Ip3x4AeO0%1x{K&Uk_ zql%>`5QxS}%&2T{4JtBCXs1|BFdWGjI5Ix-t2QCP9q2c13*HNttj`d$O80~S-Lft#loX7^w_b*2K6_h zo1CRyX9ZhMQ1nWN!c;FZqpIcUikBg0wSGkl-Ggoru5hL)_u4F26I&Ygt#^o!zlzwh>hq=5IE4JR1qNG9O;&xeaal{|E#oL)X zzT55r5O5obZX1adrI>pndgjelw7U3i;*MWrguoq=el&)Gr&=)c-C2Bdbe@QwL6lT( zU0gR&2F=CAwF5XQfiroiNmFvHW;Hucq7l9H$Xa4~XQ5e?jO5^r)?$LY&#+ASG4US0 zy;HFjZT)vYRtEK%|%4AeWevoyUNB5m8Ea`V|dM~fLcV@IJK#LbjSmN z?7dp)b^JzZ6yyEyb<*tXl&jv#IvO<-`0o|@zxG;LG5dy?b~@k1RDy(3=yfS{BYeqk zUvcm^SHjLP@f;rToL#j*z9OFBgNI56>`JCbY&je+v2s{|r+ksu1>;Ksd6-mM2+EFh zY_WkhqV_K9;S{^O-)>Lt^AJg+eqk$IWe-QKwzU^#_w1{&C;`fl%r~Ejc&L@LK60&F zT|=pW*(%%od8VQNS=5@Wt39d-*=c;X*W&)qA~DBvg-)ZI#-~n{SG7GbmhK(Rs-qyS zT}Id^ZrXj%Y@5!A+F1CR*)%^l6b;3DXT`SKz4?9ar#AH|1)axa8dj1MkrujcD9;Zdt%H_PXRRzHh)o(dVCPI)-1><*EXxyu~yGP&Sn zfAL|_^lfTV9BQLaQ_IokUTe_IWT7Zo{BUoqnMC=-vel(+VpcoJ@O{^RM(=luXq!Sm z+K1fxZFI7*M7hf~@Z!qE>H;bAMaaDuW19gdUz&B%pXV60(MqbDv;>W?pHQh!lJ=*BCZiEn0WYpnTd7;%nk&nmU01y764q~6ZoaXUD zr=x{+Mlu0S{6(W@b!vI}A6&M6-X~?k(5>#R^?)`alJv-QhNgJo_q+}zZJ{p-x@qNc z!ah7VA+}kp^4}_&DgM$GW#QoFPn8Ul(MdPu0(b3CB_Grz`BR?g)as5++D|Q)3S5gl zkr9PH|KbcCb;%!O2eHf#3KXe$ev6+ZC3)7z`b?*um*#z%LcLA*bIwrJZRJb;^S0+K zo*+A%_X^OOgaH=(m(W(QXJ?eaC zDZC!7x43V=+3D58>wcRTAa!fwgsHnH6iyOEBA2d!9%-9YQ}g0N${WOi~>z>{!ua(yV8d9y-LXI`VKyn-3% z{2{!sVFRtmUyae3XCQ|z>fW8;1bw}sZzz|PEV=$vS*Sno)ZUFj;spCrA2rD`cAXIO z8Wm@v)o-+_{fU%3vCRAyJ0M6IzOw6Oi_xS*u2L@boX%N@jawA<;xUP_^6X(RQvuj< zX8e`?Q$Ez9+pxH}W&*GXBYQBjG<$eBpf&!PUm50TZL$j59Fx}&-(o5<%-PYI zmSc6Sb9Q#$gFu9SdolLnQL)E~Ij)>z`R=Be7H1rDW85?Ij6b0tgj%FoP5NoGAYC^kqbhA zm+(sh)lC=VF;yvPtX-Qs)2Ior-(_L@vV6a3icl)U^D&Us_$wd1V-6h=qNti_jXS%n z+;cn@h3!*xGLpaZn}u=XN8NO3W<@p?S{Q%y1PW|8<^31f5ksrE&Yj7OpUWb~7x&5E z`JuW~tY5&-Cavf+sTBpwi|umdXmt=VlSYxWk+AZJM=bN5a8t}fg4|4=PeS` z_cwq z8dINOs{=j&xbr&MY3=Dn{qa`16n@DS@&2o}_-IScz*Ny@{Op$LMjG#1G*AZZg;T_{ z*$LaSJMtK`d0lOOR<6?oV;{Q?#6O%mC|M9WkUD{6&IjX{(BE!h;RhQB%zE`i%FK(g z)}iR^VKrGme|?FTaeU@K6qR)CP{*gn$o_BUJ1H(bXN()$bd97+lzHV93*&zVa;E_I zOKsD=CrA=BbkvUaT-u!;*SU+2QCFqJvYVZa51zwIU&P2y1Z7Kv@6@%Tj}0HB$&MAl zN70-0_P?h8BGY zh2a;W!1T`5SHn=2#xeq-H8xVTVaqTS9xKqWf9)-wus})z<;*cUa;*hJ8jCGN|YBIbEH0YJ@Xw_ZQ&-U*o4QdXU)LeQ^YC z-m-_Qlv>3Rl##Xv z^z5g<<%3TFMpfMFNbEyeViw?};+$+aUvKp;>}xsACZ;br;^olozUvx!S4s2rizdhd zQ%qsm{Iesi;w|hE3Hq#G-F-j@1%Z960~s=bH39it95Rt5PpK_QZ?&KJM94B78;>qj z0A4P@t7|!RkoI{W{cWXP0Wy$1lSQ<6mSD%#-OyqxW&kh&Uly9|m&PkBI`@-tR_j25 zdrY5ZgHa1RXN=~t zsg5c4svXu5!U)fq;@)ah@MBhBWe?rUCTKb>>z3Q5Q=ZqGtfe^|g~bS38|-Blb}}}3 zl@PxU;JjV7n?K-=+c0w5MD7)#rU3(O+f@H-CNBqE$3aaTU2)J0I2Sj^vjl&zjS4WV zickluBGqj{z#tLl?F&Y5+f5ME6h|WX5uI@)pb<485}eI&zBW*xRRu#YB$b0Jy_oTMs~Q3e^Li0Y(y-+tZqY0Mm9@+$nzaxBwdv7kDc$5*TXe z=0XD7fVg3sf^5M6gCCdjFRonn?e_SGr=Fv)qbI@j4~ier|2dV$-|>G&4T2h*TmZv# zbhcyKTEsT9sRoGaXZk12)~fy()dXpBN1>)j5c2OZu6-MI){%tcCIouf%?n3TG9`F9 zdT%XuD@`D%nV*v{wLeKydl@q5q}L zpNPYQRKPGeNacSASY1sGp$5i-w`~YbO+cL71MK~WO%iB{qzw7O06nfQym0>oHI56{TIfxj1m9< diff --git a/docs/src/figures/try8x8_ov.eps b/docs/src/figures/try8x8_ov.eps index 628103c0..df7fc844 100644 --- a/docs/src/figures/try8x8_ov.eps +++ b/docs/src/figures/try8x8_ov.eps @@ -1,53 +1,21 @@ -%!PS-Adobe-2.0 EPSF-2.0 +%!PS-Adobe-3.0 EPSF-3.0 %%Title: try8x8_ov.fig -%%Creator: fig2dev Version 3.2 Patchlevel 5 -%%CreationDate: Thu Jul 31 17:40:00 2008 -%%For: sfilippo@donald (Salvatore Filippone) -%%BoundingBox: 0 0 516 438 +%%Creator: fig2dev Version 3.2.6a +%%CreationDate: 2018-03-23 10:03:19 +%%BoundingBox: 0 0 516 439 %Magnification: 1.0000 %%EndComments +%%BeginProlog /$F2psDict 200 dict def $F2psDict begin $F2psDict /mtrx matrix put /col-1 {0 setgray} bind def /col0 {0.000 0.000 0.000 srgb} bind def -/col1 {0.000 0.000 1.000 srgb} bind def -/col2 {0.000 1.000 0.000 srgb} bind def -/col3 {0.000 1.000 1.000 srgb} bind def /col4 {1.000 0.000 0.000 srgb} bind def -/col5 {1.000 0.000 1.000 srgb} bind def -/col6 {1.000 1.000 0.000 srgb} bind def /col7 {1.000 1.000 1.000 srgb} bind def -/col8 {0.000 0.000 0.560 srgb} bind def -/col9 {0.000 0.000 0.690 srgb} bind def -/col10 {0.000 0.000 0.820 srgb} bind def -/col11 {0.530 0.810 1.000 srgb} bind def /col12 {0.000 0.560 0.000 srgb} bind def -/col13 {0.000 0.690 0.000 srgb} bind def -/col14 {0.000 0.820 0.000 srgb} bind def -/col15 {0.000 0.560 0.560 srgb} bind def -/col16 {0.000 0.690 0.690 srgb} bind def -/col17 {0.000 0.820 0.820 srgb} bind def -/col18 {0.560 0.000 0.000 srgb} bind def -/col19 {0.690 0.000 0.000 srgb} bind def -/col20 {0.820 0.000 0.000 srgb} bind def -/col21 {0.560 0.000 0.560 srgb} bind def -/col22 {0.690 0.000 0.690 srgb} bind def -/col23 {0.820 0.000 0.820 srgb} bind def -/col24 {0.500 0.190 0.000 srgb} bind def -/col25 {0.630 0.250 0.000 srgb} bind def -/col26 {0.750 0.380 0.000 srgb} bind def -/col27 {1.000 0.500 0.500 srgb} bind def -/col28 {1.000 0.630 0.630 srgb} bind def -/col29 {1.000 0.750 0.750 srgb} bind def -/col30 {1.000 0.880 0.880 srgb} bind def -/col31 {1.000 0.840 0.000 srgb} bind def end -save -newpath 0 438 moveto 0 0 lineto 516 0 lineto 516 438 lineto closepath clip newpath --17.3 455.4 translate -1 -1 scale /cp {closepath} bind def /ef {eofill} bind def @@ -96,10 +64,22 @@ newpath 0 438 moveto 0 0 lineto 516 0 lineto 516 438 lineto closepath clip newpa /$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def /$F2psEnd {$F2psEnteredState restore end} def +/pageheader { +save +newpath 0 439 moveto 0 0 lineto 516 0 lineto 516 439 lineto closepath clip newpath +-17.3 455.4 translate +1 -1 scale $F2psBegin 10 setmiterlimit 0 slj 0 slc 0.06000 0.06000 sc +} bind def +/pagefooter { +$F2psEnd +restore +} bind def +%%EndProlog +pageheader % % Fig objects follow % @@ -641,13 +621,15 @@ n 7650 7050 150 150 0 360 DrawEllipse gs col0 s gr n 600 3900 m 8175 3900 l gs col0 s gr [] 0 sd % Polyline - [60 30 15 30] 0 sd -n 450 3975 m 450 3000 l 8400 3000 l - 8400 3975 l gs col20 s gr [] 0 sd + [60] 0 sd +n 300 4350 m 300 3000 l 8550 3000 l + 8550 4425 l gs col4 s gr [] 0 sd +% Polyline +n 8546 4425 m 8554 4425 l gs col0 s gr % Polyline - [60 30 15 30] 0 sd -n 300 3600 m 300 4800 l 8550 4800 l - 8550 3600 l gs col12 s gr [] 0 sd + [60] 0 sd +n 450 3300 m 450 4875 l 8400 4875 l + 8400 3300 l gs col12 s gr [] 0 sd /Times-Roman ff 200.00 scf sf 1350 7575 m gs 1 -1 sc (1) col0 sh gr @@ -704,7 +686,7 @@ gs 1 -1 sc (32) dup sw pop 2 div neg 0 rm col0 sh gr gs 1 -1 sc (25) dup sw pop 2 div neg 0 rm col0 sh gr /Times-Roman ff 200.00 scf sf 975 3525 m -gs 1 -1 sc (27) dup sw pop 2 div neg 0 rm col0 sh gr +gs 1 -1 sc (33) dup sw pop 2 div neg 0 rm col0 sh gr /Times-Roman ff 200.00 scf sf 8100 3525 m gs 1 -1 sc (40) dup sw pop 2 div neg 0 rm col0 sh gr @@ -713,10 +695,9 @@ gs 1 -1 sc (40) dup sw pop 2 div neg 0 rm col0 sh gr gs 1 -1 sc (P1) dup sw pop 2 div neg 0 rm col12 sh gr /Times-Bold ff 300.00 scf sf 8700 5850 m -gs 1 -1 sc (P0) dup sw pop 2 div neg 0 rm col20 sh gr +gs 1 -1 sc (P0) dup sw pop 2 div neg 0 rm col4 sh gr % here ends figure; -$F2psEnd -rs +pagefooter showpage %%Trailer %EOF diff --git a/docs/src/figures/try8x8_ov.fig b/docs/src/figures/try8x8_ov.fig new file mode 100644 index 00000000..705cf027 --- /dev/null +++ b/docs/src/figures/try8x8_ov.fig @@ -0,0 +1,359 @@ +#FIG 3.2 Produced by xfig version 3.2.6a +Landscape +Center +Inches +Letter +100.00 +Single +-2 +1200 2 +6 1350 900 1425 6900 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 1350 6300 1350 6900 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 1350 5400 1350 6000 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 1350 4500 1350 5100 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 1350 3600 1350 4200 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 1350 2700 1350 3300 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 1350 1800 1350 2400 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 1350 900 1350 1500 +-6 +6 2250 900 2325 6900 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 2250 6300 2250 6900 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 2250 5400 2250 6000 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 2250 4500 2250 5100 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 2250 3600 2250 4200 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 2250 2700 2250 3300 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 2250 1800 2250 2400 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 2250 900 2250 1500 +-6 +6 3150 900 3225 6900 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 3150 6300 3150 6900 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 3150 5400 3150 6000 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 3150 4500 3150 5100 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 3150 3600 3150 4200 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 3150 2700 3150 3300 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 3150 1800 3150 2400 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 3150 900 3150 1500 +-6 +6 4050 900 4125 6900 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 4050 6300 4050 6900 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 4050 5400 4050 6000 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 4050 4500 4050 5100 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 4050 3600 4050 4200 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 4050 2700 4050 3300 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 4050 1800 4050 2400 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 4050 900 4050 1500 +-6 +6 4950 900 5025 6900 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 4950 6300 4950 6900 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 4950 5400 4950 6000 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 4950 4500 4950 5100 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 4950 3600 4950 4200 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 4950 2700 4950 3300 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 4950 1800 4950 2400 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 4950 900 4950 1500 +-6 +6 5850 900 5925 6900 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 5850 6300 5850 6900 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 5850 5400 5850 6000 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 5850 4500 5850 5100 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 5850 3600 5850 4200 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 5850 2700 5850 3300 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 5850 1800 5850 2400 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 5850 900 5850 1500 +-6 +6 6750 900 6825 6900 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 6750 6300 6750 6900 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 6750 5400 6750 6000 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 6750 4500 6750 5100 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 6750 3600 6750 4200 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 6750 2700 6750 3300 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 6750 1800 6750 2400 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 6750 900 6750 1500 +-6 +6 7650 900 7725 6900 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 7650 6300 7650 6900 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 7650 5400 7650 6000 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 7650 4500 7650 5100 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 7650 3600 7650 4200 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 7650 2700 7650 3300 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 7650 1800 7650 2400 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 7650 900 7650 1500 +-6 +6 1500 750 7500 750 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 6900 750 7500 750 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 6000 750 6600 750 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 5100 750 5700 750 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 4200 750 4800 750 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 3300 750 3900 750 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 2400 750 3000 750 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 1500 750 2100 750 +-6 +6 1500 1650 7500 1650 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 6900 1650 7500 1650 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 6000 1650 6600 1650 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 5100 1650 5700 1650 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 4200 1650 4800 1650 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 3300 1650 3900 1650 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 2400 1650 3000 1650 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 1500 1650 2100 1650 +-6 +6 1500 2550 7500 2550 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 6900 2550 7500 2550 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 6000 2550 6600 2550 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 5100 2550 5700 2550 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 4200 2550 4800 2550 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 3300 2550 3900 2550 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 2400 2550 3000 2550 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 1500 2550 2100 2550 +-6 +6 1500 3450 7500 3450 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 6900 3450 7500 3450 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 6000 3450 6600 3450 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 5100 3450 5700 3450 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 4200 3450 4800 3450 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 3300 3450 3900 3450 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 2400 3450 3000 3450 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 1500 3450 2100 3450 +-6 +6 1500 4350 7500 4350 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 6900 4350 7500 4350 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 6000 4350 6600 4350 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 5100 4350 5700 4350 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 4200 4350 4800 4350 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 3300 4350 3900 4350 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 2400 4350 3000 4350 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 1500 4350 2100 4350 +-6 +6 1500 5250 7500 5250 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 6900 5250 7500 5250 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 6000 5250 6600 5250 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 5100 5250 5700 5250 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 4200 5250 4800 5250 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 3300 5250 3900 5250 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 2400 5250 3000 5250 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 1500 5250 2100 5250 +-6 +6 1500 6150 7500 6150 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 6900 6150 7500 6150 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 6000 6150 6600 6150 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 5100 6150 5700 6150 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 4200 6150 4800 6150 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 3300 6150 3900 6150 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 2400 6150 3000 6150 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 1500 6150 2100 6150 +-6 +6 1500 7050 7500 7050 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 6900 7050 7500 7050 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 6000 7050 6600 7050 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 5100 7050 5700 7050 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 4200 7050 4800 7050 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 3300 7050 3900 7050 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 2400 7050 3000 7050 +2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 + 1500 7050 2100 7050 +-6 +1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 1350 750 150 150 1350 750 1350 900 +1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 1350 1650 150 150 1350 1650 1350 1800 +1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 1350 2550 150 150 1350 2550 1350 2700 +1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 1350 3450 150 150 1350 3450 1350 3600 +1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 1350 4350 150 150 1350 4350 1350 4500 +1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 1350 5250 150 150 1350 5250 1350 5400 +1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 1350 6150 150 150 1350 6150 1350 6300 +1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 1350 7050 150 150 1350 7050 1350 7200 +1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 2250 750 150 150 2250 750 2250 900 +1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 2250 1650 150 150 2250 1650 2250 1800 +1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 2250 2550 150 150 2250 2550 2250 2700 +1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 2250 3450 150 150 2250 3450 2250 3600 +1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 2250 4350 150 150 2250 4350 2250 4500 +1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 2250 5250 150 150 2250 5250 2250 5400 +1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 2250 6150 150 150 2250 6150 2250 6300 +1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 2250 7050 150 150 2250 7050 2250 7200 +1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 3150 750 150 150 3150 750 3150 900 +1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 3150 1650 150 150 3150 1650 3150 1800 +1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 3150 2550 150 150 3150 2550 3150 2700 +1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 3150 3450 150 150 3150 3450 3150 3600 +1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 3150 4350 150 150 3150 4350 3150 4500 +1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 3150 5250 150 150 3150 5250 3150 5400 +1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 3150 6150 150 150 3150 6150 3150 6300 +1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 3150 7050 150 150 3150 7050 3150 7200 +1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 4050 750 150 150 4050 750 4050 900 +1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 4050 1650 150 150 4050 1650 4050 1800 +1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 4050 2550 150 150 4050 2550 4050 2700 +1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 4050 3450 150 150 4050 3450 4050 3600 +1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 4050 4350 150 150 4050 4350 4050 4500 +1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 4050 5250 150 150 4050 5250 4050 5400 +1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 4050 6150 150 150 4050 6150 4050 6300 +1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 4050 7050 150 150 4050 7050 4050 7200 +1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 4950 750 150 150 4950 750 4950 900 +1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 4950 1650 150 150 4950 1650 4950 1800 +1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 4950 2550 150 150 4950 2550 4950 2700 +1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 4950 3450 150 150 4950 3450 4950 3600 +1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 4950 4350 150 150 4950 4350 4950 4500 +1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 4950 5250 150 150 4950 5250 4950 5400 +1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 4950 6150 150 150 4950 6150 4950 6300 +1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 4950 7050 150 150 4950 7050 4950 7200 +1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 5850 750 150 150 5850 750 5850 900 +1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 5850 1650 150 150 5850 1650 5850 1800 +1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 5850 2550 150 150 5850 2550 5850 2700 +1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 5850 3450 150 150 5850 3450 5850 3600 +1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 5850 4350 150 150 5850 4350 5850 4500 +1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 5850 5250 150 150 5850 5250 5850 5400 +1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 5850 6150 150 150 5850 6150 5850 6300 +1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 5850 7050 150 150 5850 7050 5850 7200 +1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 6750 750 150 150 6750 750 6750 900 +1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 6750 1650 150 150 6750 1650 6750 1800 +1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 6750 2550 150 150 6750 2550 6750 2700 +1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 6750 3450 150 150 6750 3450 6750 3600 +1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 6750 4350 150 150 6750 4350 6750 4500 +1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 6750 5250 150 150 6750 5250 6750 5400 +1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 6750 6150 150 150 6750 6150 6750 6300 +1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 6750 7050 150 150 6750 7050 6750 7200 +1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 7650 750 150 150 7650 750 7650 900 +1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 7650 1650 150 150 7650 1650 7650 1800 +1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 7650 2550 150 150 7650 2550 7650 2700 +1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 7650 3450 150 150 7650 3450 7650 3600 +1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 7650 4350 150 150 7650 4350 7650 4500 +1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 7650 5250 150 150 7650 5250 7650 5400 +1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 7650 6150 150 150 7650 6150 7650 6300 +1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 7650 7050 150 150 7650 7050 7650 7200 +2 1 1 1 0 7 50 -1 -1 4.000 0 0 -1 0 0 2 + 600 3900 8175 3900 +2 1 1 1 4 4 50 -1 -1 4.000 0 0 -1 0 0 4 + 300 4350 300 3000 8550 3000 8550 4425 +2 1 1 1 0 4 50 -1 -1 4.000 0 0 -1 0 0 1 + 8550 4425 +2 1 1 1 12 4 50 -1 -1 4.000 0 0 -1 0 0 4 + 450 3300 450 4875 8400 4875 8400 3300 +4 0 0 50 -1 0 12 0.0000 4 150 105 1350 7575 1\001 +4 1 0 50 -1 0 12 0.0000 4 150 105 2250 7575 2\001 +4 1 0 50 -1 0 12 0.0000 4 150 105 3150 7575 3\001 +4 1 0 50 -1 0 12 0.0000 4 150 105 4050 7575 4\001 +4 1 0 50 -1 0 12 0.0000 4 150 105 4950 7575 5\001 +4 1 0 50 -1 0 12 0.0000 4 150 105 5850 7575 6\001 +4 1 0 50 -1 0 12 0.0000 4 150 105 6750 7575 7\001 +4 1 0 50 -1 0 12 0.0000 4 150 105 7650 7575 8\001 +4 1 0 50 -1 0 12 0.0000 4 150 210 7650 450 64\001 +4 1 0 50 -1 0 12 0.0000 4 150 210 6750 450 63\001 +4 1 0 50 -1 0 12 0.0000 4 150 210 5850 450 62\001 +4 1 0 50 -1 0 12 0.0000 4 150 210 4950 450 61\001 +4 1 0 50 -1 0 12 0.0000 4 150 210 4050 450 60\001 +4 1 0 50 -1 0 12 0.0000 4 150 210 3150 450 59\001 +4 1 0 50 -1 0 12 0.0000 4 150 210 2250 450 58\001 +4 1 0 50 -1 0 12 0.0000 4 150 210 1350 450 57\001 +4 1 0 50 -1 0 12 0.0000 4 150 210 8100 4425 32\001 +4 1 0 50 -1 0 12 0.0000 4 150 210 900 4425 25\001 +4 1 0 50 -1 0 12 0.0000 4 150 210 975 3525 33\001 +4 1 0 50 -1 0 12 0.0000 4 150 210 8100 3525 40\001 +4 1 12 50 -1 2 18 0.0000 4 195 315 8700 1950 P1\001 +4 1 4 50 -1 2 18 0.0000 4 195 315 8700 5850 P0\001 diff --git a/docs/src/figures/try8x8_ov.pdf b/docs/src/figures/try8x8_ov.pdf index 64aebb1227d98bbbc00d184198e349b2e66b373c..7c52befb46e54953c3a73292608cf349f5644bda 100644 GIT binary patch literal 31668 zcmbTc1#leA(j_Wc%oZ~L-j21JF_>FzP`@`=0cVE1i zn3(R$s_e{@CvzgJnp{atf}WXy9hQ9fEWQwyorsCZ!Ppv>kB?E#%-+J)l86I1qQWR) zW$S9@OvET*YvgJsW@h4GY9=56>*DHcW@HEJnH`oT9KYX!5O#S_d&1?C{$>0d{V@&^ zbb_k;ujbxd>qLC;<9>>W*SF<;AK!Tp>7NlLRIB%Pv%cgynOk{lx?c8=0f3ih&)2&~ z!GM>gqE7tj072V}r+dZt`Ui{4^Cu$>+ViLQVS`DA#u@(jeFCVBV)>^>p5v|N%-8zx zkE5Fwe0;nT?kT-UaH~d65cGJF~iIa%?K4PZzU@HQ)i-&EYKT!Ejh1@mV1!GjMfS8wX>Ahhv0YO0vDoF@uDMf%=5uCiAmk zXKjT!(Tyj#Tvds!OPbQ1j#A+gS$|KkwnO8!6^rZ-q=LeGmmx|r^cT?JwL(W&JMN?4 zRrDmnIhMUkFmxB3;FbfztsUr!(`X#1JJdX6SBfiizcMVWt2meMrUuL2r;gLB>pF{G zPOQg0XyhGoZ9Qw~cbQZ@d*c;#pTBkr>I@JjZ_^G;6m{KOh#4SdZ~f-@65sN|?+Ox) zl)AL{QekbM8e`tgUE6_?i4c!*4HdRHd!o&f`9?7at7pm4pm+~3l(wwaFM+PNV0$Tu zi4(Hq=pg+@)_l9yi{`d`pssYWe*LZ*YZG(* zv7S`rS!#-guPj2Z!l2+fx???y+OzVoli`S;%>vtf4ekbioECIB3`O&@%%+hXm4QkS zCh#0)K9c(Bj~_)b`ZJI-DTBsPNLGNL3mKHVQyBTZKLI?H)%oB3imj7#>#QLO-We)z zkUr|FS=a8%&tBYG$5VM$mKH`Y-Vj(0$N2|_e_alm$~zKm6a6W)#3rBM%UofI?h1J)h#q5<2ZzFNsEBqJ%XOId-(=fYR5 zTZ^KR@eue=dX*!Z=}?xqPZO8$`o3$K2G!l`)fqJ`j0v1K8Cy#>?0|eZ`*uU-cS8aq z$Byo&a~EVnzNmOv`g;9($4=>t&1LYs7rT@YfL2Loi)mJdLo{E@SmN~S6jKP}=z85c zOZ&ky6aQQ##kKk()SijBL|5u*KbpKlQSkKJRQ|J+PTG=|xk$I8pM{Qhb==f$q-AwK zh$MvQt0{_kb?oS`NXxqYUs5Tvm<{|ab!Zav;)<5+3*rVdI!CJ7reW%{s5&a0^M`E+ z=%=M>j96lgFQf`DhL4o zMhd8k{Z{=TtO82lHctn^@w@B|zQ)g_y((z5X?**vRvM#p@=xywVxdS7GtwyMQ zKkw8gjemQ}JNL`Q%@spZEU#9GmDP1(k1~nL#ZE3&LM(|qO`;;EEB`z(v6!il!CR!V zoZ&fmQ6z7Sg!aeR+?ns*<38OLUtDW+%W^kMy9r*p!cLynga$CHW({>yu>vY_-C^h| zff253)4wJY=o+cCmU8MW&vO3+#6{djv=bbhP%Y-Vxy`DE2(WIjaPyV&b|*()UGwXy z{6<3rvhM|>4(^E`;gjCrA4ZiCJWUuZJbtCTzP{H}w~^@@>kzshv3M_REckLBghVq0 z2=NL$xqd&WvGyNK0sttgD+CAcOYB!UVFeyBs}SxnE(bZiS#RwUp)~n#GP*0kFcc4L zDv-*so@j1AEsz?R`7w1_#zOKgMU-bf3;=CZxBKadvZdsuH2j}rIzp*rV=Xs{%#-Vz zXk^yLLDtvR=zN{3DhX#N==8ivg^Hin|9>G=1JW*snk`%T7u!+&=5zUqrACfaceL~~vuP;gQT80% z`n4g(X)Yb!Oa8is+bIuppVMv5D-@VZ)r|!lK&a47UaRbRYCrp4IQ+%vXX)B}?XI^f zXU=zMfyYZ7Tx-E}-)iH1+6geVc;AD+lK?G#z)62lQUWp}U};rJw|hI}>z~q;?+qkw z7LPHIxEJ#rZa-Q!=jBT^fuv{$hUB-O)3Aqm7yZq4g`~hOr`y2psIUAzC_0csU-G^8 zD}NvjUFsC|PTd=wlq7NY9{$U2hcdo0la?-4dVWnw3n#HVg8zj{8xKFcy#$+zbN`P_ za#a|zD_fqo4@ZR5Z^mDpyqaT;{PVB}I)roc?Up19H)~EXcmly`_4{9mSj&G((;va@ z`WBFK1=zsa6zF&-LA*v|)=nu5vO%Lnh@G}EkT6`#R@%ScCIia;c)2Is^Cz!>#3~0C z>41e*r3mPM6N?ku_u?%{sZmoVh zkg1i}U9H)|tt7L$gu%?i$cPG-GA4h)f*PiuuuXxYSt7ay@GnrM(?OG4Fu==x+JNx4 z#`4Cr{9{|Yo#YEZQG55Pqu@-*Eo<1?0BNTox@)KU`qHra_`%(~XP7_Jfj$Ci_|3sO z&ZT|&U^&cJ`|kRRKIbKvV`?ETWar)M{`>g>fly*H`IGBVC~w&_x<l$;$*RLxv< z8G+3p5u=)!rz>!}xTmY6sw=SFBVuOx*AfW_;Bw}Ftp|30jH1AMphg#>KV72=EO6)_ zv;Iu^R~HG?2DFRluVF4kjIvgyE=0Ppf6P{a)h7aKaQmb3zbs|`kEQ>t6g6@+vURZd zw~BwPmp5}YG6hPAfZqN0XLJ5{1^?*=ETf{5JQ1^iz&}R*_3EEqSA`Sy&pMU=bm6a? z|CVyWa{ZAqsxULbGXDYfzfAli`DdPpk&D?Mj2N}F)g{GLXw|Ij%v|VI9PEtj8UKun znYoxaTRFNqI1_RI)%Q1MeOb|zpf z|L@;FfwKp;=T`O>z@_%W_AXZcaj)uT?D~f#e;y0O;os5v>(T$_g0!ldu-rc`h&b4q z{;wV||A~~!UtNDi|C0+`O#hn;e-Qj1KCu78_`m1FaxgRh|8VgS-2Zs^ADI7VH2&JJ zU}R_ZKLt(%m`%WBqGx6!V&mi>;^5-a|FaWf;X=g0&d$LF%P8z(@+Y-`0$^4cIZByX zSy=va`{yx#WWdF+jM6|ZTbT&kTiBWrF~Ksbx|-Q(5OFfYGRj-IxBx@;H`qih>_FKc zE&y|qit(>5Msq87Ge&b@#xmMl*_$ys0KYC~?q>FkE>@n5u9nVbW{j>L4vgMr&JNUn z{Q>USn6VN8E&gw8{d@lp693xM`LA0#K#Tq>MMVF-2gJ2S`8l1=QE;ddgGpLIko@#UJC4ITSi#+%4wQ_W=S$Sbv-Q|QM#J>VhbF3Ceb z6D5<8k$tzT%Nn{s_vw6jiycYbdf~f#dE2|^^Jgn+ZF4zXcM&*rft?<9NJfeu#;qqO zrlv6Yb&&ksZ*=oCiXih4n{$lxnqI?8C695CZvrcCm$_@uIf!)nUK}yWv^?JH4 ztuaxMJpVo2^!PdS`_V+qHDfNHzl)sSL4n`#$1~tk?Bk>4;K}9kpnjt?1+ypm_ZuJ0 zpvR9(>n-^%KmP`U?*=~%c!&BAj8AJ#>A+5hAg>I4`QBl>KBw)y0jOW`-eKOsKPVF= z)1i3<0|_UZZz=)Rv#+y3MJYwyl$;5}qwymz+x$O2(}ArJVWNRTm4Q~7_zr=`VhbL` zGS?3s4XtDI+Mn5&9LDOixlb-%)vgT<#nR)xIG&+`(ng|uhushM4H9-#zDnG-=-q<& zxI27-drf<(dDz^Tmy{<>w>vM zG6ge$@g;TCH`FmS&u9P1aAmxG-y;YG0S*Bb3zvy<=Rb3k-;&>#Uy;9>e~=%SpPT=l zKPP+`(gpv_al~2Btwe=K>8r}63+QsJbu4!5W|Fi-ONGtpqcDp2Dd{N=D7Y%Pf+L21 zK)?Wpf{1{q@2!DQg#PlmgNBRG)5lTGQO?oW(fTLDGWHp)J+uIhFF(NPDrs8~>I37| zV=MwirAF1I3}Rl!8nrQcRT2MtvKpwm$b!-Q+}sI+Q#4Y>q-PV2VT3GVzxzHuyuRz5vq9YNBd%bxZfJiJ4Nfm1FVJv=1xxA! zFrq1AXuXmgyPZ4u9xsp;x;p7alC>+L3yxzOy8dl6@SgTwP0BKby1FImktuC49ctz{ zGIARjzPQ@)<>;8RHT(bn^vzl53?hf_kGIO$Ms>)(VSwCTE=~$CfqE5%~`8Dik zWXNX?9W75hgmB)d@07wwn?swpX>@3`j-VR13i;@UtQOa-+NhkJC8?3 z57oV1cOjHRan56xS=m5N1s;8DCo8#Lt;DWTqZxt2kT0 z9r%ML_brZgRpo_a(rHU*);6tC$!{SLU~KyVZ%2>Q&Fex19?NNr7q~o(0s-GIS8GY@ zS_n!=YiX*yNlQmSbohLz(OB$08PBv_ZUqW69SvJ#yN4+}fkM=`QqN?++w5m470Gaf~wTK;5z$Ek8r=x8GfM^b^PQtGk||!5I7; zzHpMQFYZguw@v20azhhC`J|-q`tz`_a3ccEMuRCHy2`7aj@Y4{MNU}j%(3KqqgrdU zI7MFzGoyzEGNDlJpE|pwBv0AQbqP)rWbCl-e6pGuVJ_D{%)ot)i58RelbobFD4ETM zZvgKG#d3(5I#FpWRR^#*N57pRJA*a{0$ZBKX06PBm<^UVH(|JqMjB07`b#kOer_N~ zqo;_u+&@&L-(U1yqlzGe@6IvEh}|Oc9g0{ zoz<(lZ^(!_hIo~`zSKRb_XEn;%RADj1xt3A)L=6!yiDX>#<#1r$N22G&o}7X zjj^!^4S{?VM>0?J*f#{(9wU&<2>pHt%P|ug>AbXJbG74g2yItinMdVCne=M-`~KMw zU&k76NEj+{gjtJ2&p^kYO6ym#U3u(_{|bZLALz7JC-&IN)HUiDe&m`$ z&Xz1wohK#eMqcWDS{_l?i#RZe^#t2rSP<%)5ad(|#kDxFF+YA{*?z)eDE>A?`JE(B zM1ZEBUzR^$Fq;%Xj6)}oeUH8Su1UDBFTx5iQjyqgEHkZMh|DkuGC)42!wyH;9Sif7 zQx>F=h?~>~wbQ%#yA{aPH$1_&B^eDRp+0D3n&T;3h~e<5ym+3bFm`e!{&Q(3r_oX7 z>rp$u&U3p?x~s-$!)nxNj`RAm@mN12M|#lVA_R?2aR+Kx7fU*xPA)-%Qgc(8^s|9S zEyRTj-dKuWy8=6Urq9ofYFkX9+_PWMnGNX}Cw>ndR5)WJl7OdMa41^}2ZcuH7hTVxnP)#HI%G_-fJo>EcWuf%K3gKSffhseyHJyf%x_k@4ke`8orRv{#B(< zJtHs6AiZYPggf6KM%L$RR##(6ZrznWJC*KEpCbCo&7|tnoGJ_&v_ap^I2^v&ZiTZX zz3NF0h@kn2#@%IDQ9=L}tf)(^KGZie7}uar67wV1d{vW1&CBP-bnt<5OuarR1TBE_ zaj&Vd8u2w#vG`iOG}1WzP>Ig306C19J_k)6Mpg#0B-Aw8lyNPz6!8w&r|9i60Vny^ zs^L@CmaQDxAL?JyHItmY#lz}IB6yP*G72o&$8-fqiRt^WC?d!iNP4q1cTsrH(J8B0 zmB2X-KlS}2(`*a{`y@0;A`Ew|{TsUkaXSkcsWK*Q6~$6a-VZl+O~1CCA-qbVO3l5L zL1Itz8!6u)y1Y7qY_6#%msj8K=`?un*iy+=nM= zLAv;hiovVYYk!mtp$AAjq(Y0=Ed`QN%?^}Oq_dVm$|WpsF2P(&w8VfZ8%AeX@TJ_# zc~UgLN8C?x<~ZBZE=0%tQBL6Zu|jnn5x2_{DMcyN54Wtix#SZ_*jJa5|4oZ zSV>X$t7xP(oMagLCYckd8lODIpN=D>l=fI_Eb-k?q!Pg*7UG9AzpUK48fAtw%nr5D zU5!il*sE2&pO1D*B%bSh0pWbt#B#jy-0*4Xcp!LuSYBTk747>h|vXX1{M zT`qsm6~5F=bFbS*F`HOG$NY8u^m|x)8bQP%ZbEuQw-|cwZp(<4q4-6HeU>g$#&zg> z>SX}2HhgDH@a1G+7v}Q@W!nmSXd`r&6Qn3=wUSPiPSUU`?Ju^`yB}3~&NwF?H=A!R z{fTQ@Gvg$AxLPu?b+zJr%d^g}#xK2A2=Jftz7j4Af6`^o%-HKW&4#ch)y>z$EX$a5 zdD!Z4wqcJo+pUxFK`^P2NL)`a38UC6jpS+KavhY_H7{FWerC!*9uIP{xrsdM_y!xX za&TcP7}}w0iKao!sC*FZa@&w07xanDJ_Y3QR@ojzuykAR_1kQYxz><}a1I_P{gey> z=k=_fWq8un)QT}0vrGbhjH>=kGT2o4*6hj?Ys?pmK3IKCM#M7j;$0lJn#h+ z#ExGq#fIlIxs{?JZWh%n`O63%h~Ac*)1rKN66H?GoX(~n-}xqKz$~P#8m&nbbQTPo zIaAqdC3B6G;vc(X)d?C7s0Oj?*10GoA$j#$J=Jv9mYmL@p_t~UnLZq-2*Er?q1>l_ z@tO{R>1PZzL?XTK1-fUzW)lVDMd2j`hCU#9(utFE)Q_5* zF&OZyKVGYMf!N=lmE5JeVKcYxd{M8>V5*-REie-;H)iDBRivYmnI1Q1<53U#s$qTR z2HPZDO*2_g>@04+8+i9Rvr|!m(bQc3zDUY^^?VD;U7Zjkh9Vm)vml~_h=h8zQA+3x zi^g=#k?BLVR;FmYBeUz?cuO!mz^L4ms#Bl!J{QZ5T3VwoNKZSgf;0UIYnBWdRsVfx;*)aXNUI$n_by zm{Y`1lAqcfrO>M00Q5N52VFrT%11?JZ*g+efXp-7%CCm zpQtwH*2P-6rLx-+ppVo;Uu-I=Q8~>QOD#;z%`I(V+hd$Af12B(4re4U`my^)$eGX0 zsD$y+50=|jQq?DO)PYUm*u+D8w;2D$x~`Xh=+4Pu-d;>cSsk6l=p};NJJr&%Ak&2K zNaBDJ(e6lZN`5saYTyYmq%sEsHXO>;N2}RmJ0*YKa3mYMb)DDr8E+vooco4er>aG$ zQj^sgBK{b!mI-3fo=&NEBr{@ocY6EGAARa4Bxa^zJH@PIC+mOi8F29%3$Lr;(kvdqp zExKw&pAVrdYQ?2|);|c(EOIrm3mThRb+L{3Zrs0`;e@rlJZ6fLpGHSU`eTg@`68_M z+j3Ry4&AGF9{ z&R2e?f>f0(uy&$*2B?bl^)rZA_w_vUkDa~kB9s(6z)e~d86`i8QMUUgyH2;_S{+m zAR8f4C3h{6DhAzqQ|9agTyl$KF{#D&62fVJ5(97>aiOL7Z>ic;=9zid0pLetRvR$d$;XT8tOfr*LaWo!`{YJl@J~TT04{RszIKFQ46@ zR5S-z<(+NI`t?_2ALmEE8PBn#Noxx)`jA~M=b;#6wjpX;EM#)$F@fQ7tI&G!7!QM{ zJV$>QsBi4->Z+30$(w+U%d^|{57^8QNWqWt+K-~J$7m{B%^)zd^<(R#rSaRN!0;u@ z@D3vFqk`>>Hg{$oL%#>LZz!wf{toRtS0qiWsuf(-huHg#p$AIa$W8)qQjV_=PoO<)b#g zcva*RNExS-n?K9QW2zaJs?A*AIk2CDArm)zU`{Xv}&9VE+KVE%iK7GZ+YHX|o1{Q6b+-AgYfA&yxmc zKSB?SwPaDZHZ>NSOba|LQ0qkIRnKc0orvoYo%mH^c3>rwqhn6R+Kk6{7fzd>p*AKX zWAV}&K4x1>Se$yUYn%MW`3LO${usc^n-{DVdjhQ-`h)PwM( zk>DtlAPd1p65<+1Wt7M8-x%NPxo#QCXc)iT2YGKHP3%)la$w(=U zuDmcB?l)%Twj{QwhxUlmjX8bVWq<+5q#uzr>97}D4Cdx>xu-bHpq0BBZNseicgLYe zwmaLfusEYbnQi|Jg@SQZ@%3AqeJnzqSD{WKpBr&@=PVbAIPI0+RZVCSr3p@Wt)O)9%3vnyA;YP z)Mi*H1c|dBz0|t2koKbxASSb^l6Ymq0)h|JNXz%>gP;ncsbC{uR;pDCH#A1wFjYcp+a2q%0+)5F=+K);%F#2A3V(Bdcquq}*z^$FR>x zg0iXboj=x(!&$MY6r~xYOFb^9xDxs(&KK~gd?S#|6F(G^;UzzjrnKE1wI zcRVSQBdT;P!*=i{j8z~Soh%OZAwKU!DO~x~uHBw9A*J%&hFyN;(%bb-?w?jRFsm-@ z?)YhS(7x6*k@N{JLyHk?fTc)f6d7JgxnM}%OATAeM(_@LgWG=Q^+Hn$@>T?NAvld- zsO9HY_1FZX9CLUnAs!0ZTs^eZ^rj*Dyw;awIBRM>8f9IS9!dP^-q ziuL{6>N~nlAHRczxaP2B0ij|g!{Ue$eE1%TCym4%_Eh+p+ttwHNK=lLhCx_s!?$zS_s#_-c#R z;ZWC*B&JaCiGmBz1+TX1Ra5?n9pyF>$qLrv37*9Y@GqFPquH89ZCDz@fw;Ie!n?nw zP7P5_9d|1tGzCX4VYxy5mURWH20`dI^Jj2BGCVSuQ?NLixbRPL z0h~c6cW4=OZm0K0j3BWyZ(P zP%cN@AU}lyLZ3sQBK70mQ{c`rKXHF_8@oGV5ev~Z3qb!F1Nulw5B=)05F ztiX1kgBsBF@VcMlgBIl^r}CAB-zKD<>27n!BxmV3OVnp+fO>CkZkg<2>MOj!qmDgb z2x0o=g2?l1=M}2&l0U)_@jlaHjsVY(s}4pNtbLYG1TYT9b*YJ0)geqwkJxx68Kdi) zceqPRaJT*tR>_yA;t2J{gqfSp_G8YMH??YF$?O*uq$J<>-k5OXBHRFM@BFM2e!Fl0BH*aQN+@0gdQzDrt3-t3X82a;(ew^dn(f}umSgLt zFKLBDKZDW2?{Rs}r^~I#9K44+i^~oXLb#~$g(<9;4DTH0iQok!;(FTPL8j=wHJ|;c z@6GJda7g+N$+u+{(7%C&EQZZJ4IDQFAc z+wB7fB$V*kWe4o1%K44+Sf`!c1!d(*%(Ire{gAfa@&1^r-chLeJ6We;#z;nd+z$WK zquk%8a}PC<#^5?-+$YyIzZ(M%eYlf?{ZkHY9CG$Q{6Ali5+Qa8{DLZI1nVkF#%-=iGO6}OIKWbclP z*!erpif`W%kcPkRbd_I`qxGQ`D;wa6Vto~6_8FSaZas9k0+Hi_l;k(+^ak(+_E&^b zb|s+oa!?8wC=1w{a`Pw|O3;=X)AVuASTYu$%A`b{jVSc})F{v~+=o+B&$TmSs(`(u zBn(OFJFM*`pj|L+T&2UXiCVD6$6___Icd_a!ni1$;4!CD+-AS+6p-}fx}>{&FOx5- zj%z#S9poJ2Ty0){?7B4Bx_lk*kMdU$%-Ry~KJ|w_?Nc!M7;y4sV;C?PM%oPvMJk|x zjoNxb+v@9P0&aqY&K?&DV!yo|btkNih~02JCHTs`!^{{`Xo1l5GCN|g^O>Kg z%bTc~zz%B-@nPKxn)nTWGYJ{`I&?vR%i833rf3p?EcbZ=Wdf59`3JHsN;-rl1QLY7 zbHr2pW57m0;RoA?#~bNu{oBI3!iV>V`3LPg!AAgi3?eiP7Uq>sPja9K*dl~2!ZQA6 z`~(z3L@J~sST1}=)@}bDMbO+H=AeS0+fN=)5>V!l2jJFV2tnsTU_t#s7GR7J{+~U0 zuhN9D#2`BH*tjjlXM*wp`N>3PO3DfRWh7-BN1ih|`NP5ih|lClUNaxiZ=oawT7XQ) z3gF>h)>R;rbUO6}vUMmr@PIGNQOHxxQ^ZrlQ`=J%ka!h$6?EmYQ`6hk>&XO-2#ttf z9&CV+i_XXBseiS(4c05&tKD0%{kr{Y`^3=0(Zx~n%JHgkTe4RW`~!_oB(|WBD%CqB zQ))8*KsmZxecsy|4tVA#S*&6`Cem7_aKhyl)+Whc(pBVN=wFmSqKHOiELIa$5{(g= z8ok&_#U>fOD;6QflBi*dx)7-&=2vJ^SYJ3^h$KcBEr97q`YawQ_JJxA4lOzq)`528 zJra8O#YIvE`(5aAf}?v(5@7&VKZYbKN=o0wlDN}Vb1zCwW3&7mxUc7-C?jxBk?CzV zP$Y;Ve+2f4{@E5W8_6s0ZXL%ECq9`VfGAu&^hw)m!J^pr%2$^j-E1~_a7)yD8meH0 zi-)Q3OUM_^LouvAQ%6mDhY*wT*FZ^QD)j3lB!`aEv!hz&XhNzqJ6ev zTLMNaD_dJUn}kW9Q`f|O&>v!}Bcaj6Q&Yx7N2{7v`q?7&5P#G>)mD)gi+1zDa5_GZ z&sM-W{P?o$_zcq^8c)yE?6Z2X9lJ%cM)Zb0KRseeS@WV{$qOQ{F3)nchQ&0sQ&yMo z!YI*sWcn|6!TFq$?&Go8wT5kwz7hv}Tx%*f0s?cpE1wf*o9XK~b8!`RRa^stMgzQD zlx`pWJ19XGJaU-O+n;V+HyAZ-PFxS1RG#Rlulp~)l&`p9c+Rf{o63e?dL%DVqHt9( zi?kgai8|gR79AoKSSaJaIJAlzaFIu!TC62i&Sfs%;$D5iiZI(<;qkJ^s2Z(Z{{4fM z<`=TKi_szN5kkXbRcaU}N8Px?I~thetU+&JZf-x_x@dY$s-|AUO%UZ^eJtEail>E} zze0hs=6AC#3A@NZ^7QJ8pA~Xv&a3g6*py#2kSD{~y$~S=5}6xF7EBwg09Cw|CMmmk z$KHd)6#5zDsm!|3+>nx1TEWEUf$l*<8HYtKG zT?nV$X$Z}ok@Zp;By;2sY3Vu0b?a?PNx$W?zRaY$oz=N9tIkj{ufp}uaAAQ;N@KOc z>9%>A{j&A8YiSQ)Z2!Gq;E@JxU^bWPE&DTp zsv)0Rmx+9b$>`uKtSa_~R%U&KxJ=(qDuepMNTeIet}^nxiowHlb@gx`C8i2TZ85zebMLWLMdIt1r?tF$4Qu1E5Vp$?s{zPE{bDcy^O{9GvWQ>@vAS6%ye+9b=MegLGO*0YOTmDpFD(a z%DYsIyrSZ}h$X1v;YHz00kajsBmHM1JbhOx)y8qTj3FmF#$D>#7J%4GY)OzTXzLt+ zjEh3b4hx|%gWZ|m7_kvUP9zroh&L|=Zf z(uI7L&f6@FCyECtpiV_XSjil(P(}y!)Qiy_5)7lot_Zk$AP^1kx<%~^m&h6d%Dk1S ze_G6oC`6RU&GVi0HLqVGHe&%eito&{?tCpq4_%F#f#~)&hi#Y}z0o zSK+)bEoRtzNld-Ea8@I3urv7Khf}rH=4jh)WqtgBoS5yA^eghdN$pbH;b!3u2g8LQ z%td>_E73g~?WJ-{(aV$1lF~*cZGUOh>_Mv~8|(&}zK=0u(xxc+x>DYU4t&301W33Z zR`NN4v5*tt8CG!PM^yzsQbC70>zs(dDu>Us37Y(Cr7uN@-@u2CegBTCYmi7yzimg+ z1oPG8#}~5@8~_h-B(Wq(l$k^Vg!X7@yl-ojfS9%ufWaHHa-#95(KvQ9p?9Cw&@~og zdaBG;#zYxy9r3UyjaNs926EDfok~wxcs|7neO07Nr@s)w66L{Sw|fB*OH2oDLbU^i zq(8Y&0>+cz;vPWF@)}cHLL~ZwTFoXIp7NOPjzVturos&mMSgFsl!fvHE z-^`K%@)5a2aZE;#b|?9Vq6FVeTID40=)I%kvGdol*KD?meaCPFZsb8*cUKI5dVsrE zxK>7`EC$>M@i1jeNt`@yB$~GxXvjQQ>hv7GY zl+A=i_ar;wt|nf^j1KjyWD1s)WsAhL@r>`QLD|uFLh)5M@Nir#=g2uPl>W@)oCaBLzP#d(I+y z#u-hMScc7Hk?Qx1W9h04KmPL+`bk@pkoN93Vzi$20(y@#GyDe@Rm&_gO-9W@CKu&j zbm`%vida>@ciX<+V36*W3G<@0%q>?jG6+PF83{>DS#S9~nFj1-FicgccfO6wXv1we!He}S3Zd-y4Xx6`d^2&)Z_A|4|PJ> zIn1>`DyO!osG`61r<~s&*vF=qC}r6mpCJnBnq-WM!{xnso1F62FWTj%CfYPn)(3y6 zp_+FD0>rte*60G84Uxh$KHH?!RY6j0=yvd&lc>n!Nve29YtljkXy)_0e{J|LqG;In zb(mfA6b@xsikmMO8I^!la$=*(}@(YvHMHL1`$%EohG%KpV+N~nzo`Gt=o z1N==vUdK9>WQXX91VRsLxstOj_mwPMm%I6cMyDSONy%}-ge_I|T>bX5(7WXwpTh3= z_E$+qcrtC_jNU>Ej!79ADUGY!2A&)RJyRAf_zCR<(lvX-@9S_NQ*syR$z4aYzYZ8@ zoXuy{WjltSylb$3P{2>J51BvDuG9?`ouy1|R&owXs=bxlP0YMwS0!1h^)uHNt3_{Y zemb^Etm*1>q9mzPr>IW`{Te16c73-G=<5ENkS9hW5CpEtA$*cPw+;=4bw#qavZ%By zEr@jizVdCrTl<4US|*zlU&i;vVNX#hc~8{arppV55MNk!2YHt|n`p*?18UY++jZ9&4smeDpXTHvaQ25-zH@C~ejIwEH{3UZmOiXR$n13$)1m9dSIts7q8 zU*WM7JY9w?;1@Qtohrm+KE=IJTSv;kB=07CT$fK1((%PQX8h7Zo8IJ=XE=DxSTSR) zE)*103=U8?arh==L@mEDb)F2((DIQq>D`a=P)J=ksAK!HeyZnP4s##d+tZ{{?KZn|PIY@NQz-#@d?T*m_rD-I5vJJQF^o0i}C)8evDXQEp@^%V>D z${AffACynsEhNv4iVA-%{Xi>9xZK>I*SMP7+UCOId6S&lI2=;V%gy`RHzdiR%i=MP zIYao2gQMQ8|0I#09DsShCya#lJlT%$WC!^obS zlOg`oT>kv4m=wM7W$RrUen@`z&UQ;gYjY<8{u-}D7iWF;6sswA62cS$JXFI5Xm3d4 zSJSS)HpgO3h_d9}y_@g9S7%dxRE4P!AMkIuT(!7vr;g ztoaaHem{<7O1fV}FWGN)9K$tG!BAN7@CVZh=lO!N=0VfiQAGuNV|LAaXJFmj?zak6 za{t*Z>=GKjt$PGz5CS@$+l3ILNH5QdZ-ZOMHlS3t1W%#)Os zTF>r@Xv%yCcW7=0K{4ewh%!`;{HeP(EDqN01T}|Glb28A5 zL-T=XE*f%X^r{cNvb$p!7 zNPfuCDV|N}4^~ql2fgYc)Q`@_4~`3wglxy1dSG5z(4t{VawM=M`Jkc!Ew)|jzKYYr zk@TMs_BylpRc{FbQ~LytC)A5zp>%eLrIhG~{>D#-wel4Ids!MU-)o(2Q)wURByW;G zQL?agvw<)BWw><3XHu#qF=halI6LlgOBi;WAGR8J{5rR$kIlV{S8QL?9KXY%y=zy` zoc3BurzAVZbt(Hg{_@W2kar)ziN-}HGvgn&x{cpL}H`htNk%E`#7h6=XOZ*6<>5pWXZ(0lfdC23o za~@{>?nIsb-R@}=HU3yJ?oyl2M0egM?8G=JGu9a;4YFZO0^{}96VE>C4%ti+IAx0v z%2}G+L16um{3jX-P>XMY9?^FYS;t3M9zKX!-1(OPZTK9n@AHX=UrI?;*{_we3k}z} z9N^$@8#56$3CyXR-LoqC)+j&l*CV?~Vt7-w-#xzF;4O8xeaVz|=pQFE(^UK%LHJI| z-#YEfpCrD(HF4WuObQ2cRcML-RA~9eAgSolr@dZ_f3aPC;CWj6U0&M4Pb~POfjk4Q zB9Q-i5{#M=x9@WgsJ&L%sP0%5^s=k~DQJKxHYI@&`_AvT^rF#S*RQRb~o>;_Ug% zl!4Z;_<@WJ$JHPszvE7&@@eLg=Fug*zLydBO0WAKg^FX&0O%m`h}62&`Xpv)rNl0u z6DLey(K0u}+71Z(5W#0l5ZK~1!!td2_~9R`9hCM~ajUknCY|Q|oe1WRs{T(Sn4Tmb z+oHfTu95O*z~DK4$hP7>!5loYc`>FVI%=zKB7E_*1sBV&;H z9o$vY6jxH>j={IfXLHTG>;az%)g!e|qliZ-Ez~P5XmlT#RK^(j>gcXX3JW)Mxq{g#+~Li2vRHm`65Wh-)d-+W2Rw9FZo-x} zm3-k_UvoAos}XXKx#kc$6BrG_=++O=%q0WQ`xYE`gJS`vuY7-bP=F5O^^DmGLaxwW zo(wr(RbB8wq#oAXtl0CCHE=5Wt@}#PEd+FW+J4i(|98{0DAH9A999+-&G%#S47Nb5 z(c7-ikM8Slqw9s_eNihR+0nL4Us#eWW3&1tV*H7?xjCx&TWdL6{2p!N!1cYU;c`Yi8!c?x%9CgTTMwdCnyB@`plodW`9IAf5HboCGs zTHjL?Ough~Xy?=}xsJHH`t1E}tT9~%?f6Wg{Yb|$usi7~N_iH)Avwrx8TXTphjd!AR%i~HU0uJxYPYxU{sy-(Gt zUAwyb^!eA1dKxbR4gPTjgkYc}*~@bEejbff_l;ML1O(&9c{U4Tz*_1GK?9Y`q0cW4cZ^r!qa z0~+v42VgF?+_b1WVpH_s!iwt`|- zcP|k~p&3UL7UqA01WO-nGJ9Gmn;=cmF>XT9(Im~1C?X|-3kw@G9ZwTMnx8)uknc-) zTWam3&Uar4`;>LjHr263be}e!cIdPp{qOpe88Iuang|kcEee*!w`|g;*X37X_ynA$A1^ z{Rb5om%+uFHq z+w+$$c@MkMJZf$giDI41YmPi(h+X0x;X)Mley{%2ez(FTI?}OW8Y`N8p^Dsf0NK2p zCwE8irZiDra(##|m+P!*8$hzyQvoqEon?Wk!Qvz}3j9Z}toav~B3TS)v}I6gP3Xoz zu{c<*ZsW^Pe$xw+_o!Ej=d3&5yPiATXM|_`XQk(%JHgfWbEW~|6JoCRz3O?xqQEZE zX3@;R!JXzl$j}TVWPAZf_ub2~zHcs#F5xasE?sQW=`<7ZUp_q-A{XXx%YRAYW^mTo zckiFsV(w)gsTr&pxoZCbJ|r2l#e*WxnuWKu zf1gRn<#T)!J@@XEeM0BzJNVfp`$zk;8D+~mrcq!T((DlE$~?SlJWxnh;?nhCphYt7+Z&$Vn(oh{1g8Rb6dzp z|G9B&b*Bvs-h|aM8%HR6wYUwp_7q3m#!s9(mS?2rxYzX8_}AcIc4Ja6$|ivXHyQcQ zIpSsIIm$lMv0=oboMmKSy_SBl;OR>(6|l+Rq~pc8g(swdDETrqt4fVvh82bx%U<({6Cd53e&gyT$@ zF5$KUz+03NSF&*Md;-e7WPvU_nMP2>yih~SwmLK7AcvM_)jZ9Sw~*M(A_X5?A+BJB zHwpQp)RPOwO|4=ZoY7bYM)JVHAiRhx5vcLVIG4;mPcr zS}#StAOE^=>D2yyGSzq52>M5n=&wu#FBadao2Z(o`1J+ra}TiVCC!V;n^8hh)ktP^ zJSC(7BvTf{Sct(Py`78WeGuKZu&%ctba_|?=GvtuRC z?b`UTo=sW=4_6+J42_D$Evt zNq(Ana-NWo(t8Zz3r|$*AWxT^l$>0#UppHej9bI^v6wi-%VR7CL;H!}_Zsseq@h#< z-Pcel8;@V!4~0@JSA*Wf*h5K)T0=8`j2ca4RYG~Kd5E*p?={=WV3XQWMLVcSWoE|e z*wRuy+8P~qejj#0kIf%)kqL7IYg~kN`X}X7kLC1joBp=!!_Qv*545-6N*hR&Ho z(4!Z~Ujqh&G^bN(zN;+Z+rtH{O&`up^L@IPuv$Hl)q;Gt%TvcHNj^TGbKr%%@5xw@ zyWP*?!Zg;y!>IyzNiPA{Z&<93)WgidaCmp)wH&hzByjd8=5wkcX~@u?Pa4XPl?svA9Ooon?YpMjw1V2AdBKCgnP=D?~$3$GDDZ2R`0!}18#m2|Hb=_Em=+CtEo3Oa^vNo3>WB+ZBk4L zrPf6D=nAOSpqB;Jj7|#qLxqAJBJ3mkd{V@8s6N;u2;-7GsZs3Q@aX9|t0QCrcU?C* z(Y2f{s|AgrV{pq$xH-@`8Nna3Py5z!LpT$Uf=RZGgP+Z74&!Obt=GnfJ(qsfjxD9f zBI{_}6ye8OV3=Gyvet@|AcUE3>l&!l4%X%~7Tnvsaw`G4PN8>qz41J%Rw|oip4$WeE99wkncDfx|k7fh%WK7*`k~T8z%} z32XiA_QOPo_*`dTZ-xE1>r!M%hGKbZfE8z%S~$*CI<_MuSlNyaDS*DDTvbV1+YrS{ z?kFG~f5bMrnFS9Fodpra0c&V&IUDxN zT~8uEs#JH&rEBv%l6rS!`KHZi*+D0lz8MbYR8xa~GoTsG+t97e;2M!;vo}v+fx?Nc ziASj^mJqoZA@Tu&{be4#HmE7R1Y6eip^P%UPT9IY2(!fM8Ua_hH6E+` zE^52fID-E^Fc)6ub>Ju#`3`~48od!WY(J#1S6$r8T6BvO(qn-D%-|khpxu7y5``XFYVo+P+d z6RK8Ue8pSC)(!f${A?@RlmbxR@%g&XL#9wy(N=C3;8Z-sI~1)%n5}Bb3b<@Rq_utwEUg-#Jrh^%NNquh97dV)||N z`5KZ-#D$J4)t6jZS~RRqrtpqE(OSzYDJ5OmuUh$U+{q%UIi8pcT^JeJrOWGbllV`t zQnvf3`>fmMjl8|gBqs@Q58^-Pd_)Yro8BPFE`G&#(tPAgk2dpr0ZS6#n|qs(LrLyg zpfkC)_L_34aFxy@Hxl;tP1+&O68pM@9Sx%QV*$6>ANqVekIXi&1Rnkug1887l^WDz z`wjzGW-4gX`KJckul%#at8z@?F0UmznDu}ex+tW zw+@{9&aJtjU#6M9f0Yuh>fe!yqQe*?{T0|qJAD%5106$-@DA6spo81f(z+I>#Z&07 zU!rWWuTC06!>gyE*}H&lO(upePQdZ8#O}vDQz%#y`3^#Jx4psnuWrxihG<%UB4jG# z?Z})Bf0ewKeYcsi8g7r4Q1LG6!Sva7r}LTV&X!1@^~L8R)!Rse`gXv)O}^$~ zPc)rsV95r;>N|JIrwaJO8I8Jajik=9*?Ap*l+_>a?qsP-ed68_SkTLh-YOlzWi+z@ z1<~|W`q5JBNfyUioK(-JP7Bly>6LsC+ggqQnFUkkTAbva8F9z;NqJxBCi?ovvn1h8 z(3jy{#ZPC1={Vz%fKl9p{-pHvR$s^vzW{2^JeiYGXg+oPUyMW{d;4{!^h7WqwsM`& zZmxYrXF}IFE{$Hjd(LJLVEP#JA5)S`QXPW_247G!$H~&7#lARs+EHMoX}{ILe8i*+ z#O(9<;*WccRCcvJy{BQG&mH#e&{K8DYb6mfP%*DqRCLKhq2eAD4Kv?wYCij^sjyT` zTte7R+EU3^Em~0(reph4zJIT5dqioB0`;C=Y0pE!@ z%dRWj9jV70)%AN4NZNSLGw9wSPIK*Ulq!gL`>WU`IcuXGT?)ULonQRX`j_TwdL-vp z?|P6&LYk}6ThxiRaS{z=22qANiQ)S}u3z$x}(jpyigtl2ShE8&JO_i3=Yd8emQpc`1uhFw!MaAw11~B8yDxHJn zPOrAOn_qkTd2s-vHZStEX>fGYi`cD}4;a{9*#uQgZ|u=mAhK-=Go6q;ibRJw{HhPA z6mm>GP|w&*vmTC2%^re68Nlx!0p&X?dIztd`o2M;l2_|`Ag1kfKHy|tzp&8`x{gb! zOs9T{juI-&oE&?q9$z@3cUK4U4bQP|yA9g)rWP9L@7@VMC!~w4smd+NQG&GbqnHyQ z*LpPL=H^}<&oz>evTh*%;@~sOLyZpdQgX5^%g@ivZx?>xU6QvmVID^` z?*`;6tL%06lo>hMev)$vL}ZKdkf?0`NT6fXd)$5S_V8=HD3Q-A9O4J>+p?SvNyXaW z7c>LtCjP?5Gu4?$2n+VkR!2d8-|W@+-0Lu@a;D@1tdtaZjD<&X_K4102Eq4j;{6)+ zsZDGWoc^Ft&Vl*{cJ_vb!EekD?^%*%+g8nRm7Y(6Yj^9(JzXcGAaiPj)lwe|)KTt} zNTR>R?=up^$`cH{7R7nH*FD>HX`X1~>!V46&(aem`or4&grwF{w-e4|W}MQbz>T=R zuI`Djg+YuN(7JSAR=l`+s?_R%kY#8JaL=_JuB=pZ$*~|ju^$UN!#p8EbA1ksL~@p@ zoiQ%ZP#N~%lVT)n>?3&WHMJnW@fUD_q`+r93RmyO7*>J!-0tXC^PMCB z$zR@ErUu8GXcebca;GFh*-AM=)=@;$Swh%dfFP}MVURY!>&GV4(TE{b?#2$|`9fi; zI@TTrHe8U?iMxw&9E*gjjbGP$Ls_5hw~u`yfv?(qURQA*aFP)w{`T;5Ynz*MXr8_L z5W?mp=C5!<{ZrEYfI zdC2*=Xam-2JFMAs5Cn5xHWlEG;C=0mn&)&9^Co6Y_s!rw16reGgNxY!q>^!Z=e`kH z+iH5NmWgC)uCZ}a{tx7QFdCH1jh{mxAwlrih}2Y4GQV@_e&~qNa+P>=mhtiRXaixO zu{+~>b*iV} z6XJ^j^kjUIPlA5#uPJN;VgIdK2&IVP7+a$baBv?!-T-K5US25ZK%Ne9%dP|xECX1; znoKOT(x8uYc&_y~=w;h4^W>fyaQj}GfuSTcnqRYr^w1%g7eTNGW1#(`M+BL-$Cu}k zWV`V|Hz^*uXsg4zCqaZ($f&^A+)G_vn=U~)g4HOKT~^m(^^N16;xsnb7w0Qmu(7MLITak} z9^o*3<=PnC$;-|r$!$h)IPsTsZ>EIl7zS}l<*i8#SWpbUBoJ&rh+)LfRSG>mvSCMH zidPDzrVxdWMv+7#tV>)&vFh>K%3vd;im?L$-cIG|FQ-&W9SS$c_61Me;8+HGpW!a; ziO$H@xu(S-C`AIpN=~Bv076aIUi;T744K7Zs)+>kwD@T5JO$*cKM$lkRdRNy!cz{; z;17KDyY0tJd+s&hU-4AOE#E=TXY}HYbPNV-OyT@zy>a4TQm-9g+XZ0=S;D*7=?(eJH6t04!qr$@@EFvr|Ev>99!!0Awg=a)sJz-CeFD~{SXZ?;`-0m$6c8dgAi^#v- z!k?UGw0shJ3wxy8ZX|$-j(|h7jNzHtTwnJUS-__YfR36t0#I{3u5MEbdBk6w3CwKH z;jNxig2gt*_4JZv(11HID?wK#s>jwGh7;^n{jgq9p>IGFDV$B2KcZ!Wgh#4gP-!8R zVoK~lL|n*P2O#BAG1BuX5r0$U`x4s{yh1!6R2oHns|$B(e>FeD1QvD}i%KBZU}~$Q z;pI6W2a}67=lM_%a&+YmSMP{;)WmgCUrA-!V#E(Q`UxGQXn;KccJgop-oH^ORmI7cT+XeLghzK;>Y(6r_@}hNf4O_H3d+8 z;IN~hhC;CY9Q0qoe~5$IbR>e1^S1hv2rGMdXu+oHn~XDJehr5k!rTZ8_xT1kjl)y3 z2x8ss4gx#Aw~?PRS*N3~Qi^ABJ{0&f2m9lZ@;Z!w>w`n})Lp5_n)g*y1D}*AJPg{S z@Y_hX8@BbTpf^S(SfE>lrJG}6W^IgQ21w?ZjF6vR8^)J_*j_;=(2MRS&9Z(P zoYXjfo4~jJQxoj#p)vCfSscOA@4kXW_N8{Uxtp3+RC(4tc-~LqpswA%Il zSe`%fa#)jYe&AXT^UjUE%TI1WD1KobNq?^Ts2q_M=3)~r4MwqY=Ie1)C>=@3t>9F1 zOIOT?#?NHOI8f{*J4^n^Yc{NQiP)B|8-?Ctp*>XG^lAJO!$wxGCh*Z1Z@EIdeUS)F z^lqrLTKTJYPHu|>kIO64WN7x~(Ju!QqhPne*Od(%>shkkOI0~11UITTI340%2snoC zZQgg~meA>x+gpQ68HNenSq`09t|e)@Hd3V?xz(G}g^DBzACy!reI0$j#xq#gpldj# zTrU^wa>?MR50H-!39P_TS$cOYlz@4vB@!T@cZdDVk-lb5u%)G5!_ ztz1?%0#MP?Q z9w+cBb0xmLbY_iA%uylIz?E=_oe`z{5oE!$yTN$6*&XKetfp2KnhwvfmKp1|?7Ftz zsykABDt$V95?_bz^toi6i1E$1o4HHzQ3;d@R`CVCJdE$u^tmB*@kYr|N=qN39@89a z9qR!kfS06`?>>bVX%x8?5lOu})VsMjc@JEv4J{G);Iraq5Ge3wJGY;>4_!GA>1SqU z={c?L>>Z=;m^kp9&;MXMahW>?FHy*PJGjZ1>&h(Qo^sYZe+l_zX3ltMaHx5xdZ>Iz zafmj_KM6kBH+h&P=<+rb?2xv@GH2Q{=9#*|5USg*3#OZ(8=wM|MqCG38|Cw-yNt{vK{7w}xAqtEN7`%G zYyNA|YvLBIY>KG_ynWMaEsuhBxlMAS_^kxLkA5HD^#lgxjf#G<{*?WK)E4KHraRa< za&8n`D{OG#1v#w5D_!tK z-4P^lR_AD(PyjP!d*U&8$#ozcmXd|X>3p_2Zv2VPlB+QE9Ff~+{1yK8*jzXCTc z1UCJ%^98;IC)$%j?}f&k^}}UK%p=j2wi_HFO7#Iqt3x(S=4Qjz*L8e2QZqj*)ArJw z{AwtWiU@0f-nwL#yuWWq=Pj$HZD1Gi{A{NbpPyHBPzdsdV-h*7j^RPl#6z!|Hz7AF zjX8~e!=Db(MXJo}OgoBxa5CHD-D6SqB@EL=M*Q|v_IQ6r7rul9sw4VmMPk@bEnP=I zenq}Zy-;J?RfaFAq$p!yv17W4@&E{wv7EoJMyc0!;w;kI3(9bZ6k*?K$;$OGBdJMBUDRF6T zV*91wSyUZgp!A3c5LOS?I*FoaC}(Eq5~mdJA0tl94S$6ji)DzwxKqnPY@HB(>bY=O z>DY5KS`$-I_WsOvNJK#JL5pZEp0u&(@bnYQ(dgbTRguxxDeblnR31W@OJY}^d`>P_ z$*QRy(A#brFA<5#?H)2cG=0qXl3@iq8F!lNA)VZGM9RRWQc-YGi+AH^)I|qg+bkaI zBe8T}yNr`5nv*Yf9fKc6k2VrjI8CN$PJQ5P##uk>UIcy95rEk>g|48SSo2sp9*Fwc zQ^xl|RNgDcg|mvB^GOlONdA3F0EBoZ>Cs{|wqF2s)#x3Ox+C^ZTqQ7#{21zjZIG92 zgBIL+fQ}Wzzrw2tEWPw)_qvt^)a24(F%{ydrp_!Hu(Bcpw&|{`(>3F^!v~q~rRPzv zzU=T`)}7Ow({zVX}}YEO6WnD0-e4PDraPABOLH4eg;A?DsL7G((C8!O#C#0 z^!4fbOrR;_bhN{%dvt3|dv2Nh(GK$7EUc9^tq1UMG%Qdnw#%W#xEAEcX+hE&5W}x5 zc(?%h@Ppo6t*6RNo?Az7Uq@@w9787$2=SG%%c!)Cv>Yu!mvA5dyv3=Iq_kymu})Zd zmAw5yYlgO0NB~a^p|XT656vj>m%yEvN=faQ3Iz{`C15j+%i$J17n8|A7OrlYY8I_x z^&&Q@<%VbWgiGQB`wv7_d>)DV1oK??R)WbnHEbTljS$CF!7xkQQ*bz`a>gFwJ37+v zgyw)G7jadQ?@hVNeUZg3EUVu>mmiCmF6I=A#|@jmxU4T$8whT=u&bsU0lJ4hoh^M$ zr3;pS;ax$>nhT0%LukncwAtXA@+Ez9fI+Ll-Q)xei$cj|83r+w9@J(I*cxrJzdV8EL@7ao#JHJeBnxI&PI%j=?J3g)RYEI*! znLe%Ro8Q&G!fVj-oQ86h^QCxM$Se2huC+xmSopJkMk0CcN~LqeonTNt*kt?7WeKV9 z6P)18f#w)x@lc>?I{^EX@sfgZY`uG!<3(+H<^gRrk$#0>eTcc816e=2oZ7A1xh%`o;QXxUb9^76po zM0X$%ilZ(xG`48nNBP{GuJ$(we|fq^e<`T&zG(er!wn+`FkRX5EEhsrE=bk91AHVjIc zna_ltY4v-AqDHoF7^_+eJ^5FDC=DO!>U`y*%neg3rCp|q3g$2SP@qf`lrIj#I>E*X zg29?SpH3wGJoKxBAMtr!7Q*WDru~^pZQy=-8h_&kUZiY9CFBXgxq6>T!1u~li&d;p zqpq=R8Tm|2x;x|XGQunNMO@yrCcm}5UJIK!ugf|wHh$eUZNsAY1vSNI?HR^t|Jm|o_v|JEtDnOYO#%-GPff3qzMQc`7tn2x!`;o zZ1xUoXf)NLQU$&jDx|eKHX%8Z@go)y`rUNkh(7@55wr06*$UwnSgT}Zy)>M2X6_dF zYkD}-*rGVo-R}#Bws0p}yyGuw_yh3`>|Tck(ZU^bkY~QV40o83=+m-=94GLR80_pt z^dix)S;`u5K;?&{E$`0Q(JtFfLTd@vXJMDZM|o{?z{XKwFJkG z3f-!$c>L2e(Zk|n7XazJwxCgl6)g{;t9zdGno5!qa{vzymoqr@U`nk_qu9k3P378o z7rLC1L13W}Yc4cjSXMMh>A*Dn z$i>@tfBE9r5Jvbc`m6?@O!QBHNVRCn(@|EHTIagj*`S-k%zD*vPHWY@Nz=}3?fbd- zf+Nrd*Y5lCtj-@fckthxL;#B)ha6D=4L+pp2B#SM)FvQ0?$39^glHJ1&FX5-1?XNA zi!GO%M3Fqy2`zYx);MDq`y>lp)(LU9ais-y zjG?pM%S*Fx(o0KQ_Gg8_N`wym3`21duIQIiT+6^AK4yCK+HHkS&i5xkFmHnpfn1Z~2)!<#X!rP+h$k4y%y4TxJvHNb z<$Xrms}Zz%Lyax&3E90~q(E8cv8e6T>IN_9GK&LkA}6}qhE?fi@4sYX6*d-!C_BIWGRu-b;De2`|TU_;^8up0EI;9p#~b$ zc~||l63gwV=kABw1%5EVyNt$`EdSZFOog-ER;MlWa(R6}dc}u=7@6q(bybZ#{91aA zDwldm+A=W%TxXWA%)F?NU8{RYUU`}BLV0>rk&c0HWnqFpr7lJFt$5=T6N;v`y+vBL z6h6%C@o<_* zdfUiGXdewgjtHClgw(s{tS#a$i;3)_tA;r7=)h4`28H2$I#Ocmk@=Ov!05c&=g>pNuBso=j5F(XqPM3omA5wf|_l?treoQORN*4-Yxpjh+5eV;`KpLI~XZ! z8_I;(qd~i&LWaqswzxuEQk^z#D@b(Xe94cn-KOi+e^-*_hbfcWZ? z$Uz|UaS+V}+9(&{78O}4v$excuFQsP`h#8t=th8d560Fyocwt+0YQHFM#r8y$D=@5}rUCZvQ8WsSw{c znEjb>MTXFGt|Z#a34%~3Zf^|PObaHKZQ8*TV*(@oVO{5N9{88bmd(1reXPy~&WhP>Yx(FLnIVoX46V7JE1~%tWlf6JD~;-*BddcniOXX+RscNAs1^z zL2vVXBZ%d6RHdBeh7E+}e9DMTE1Vmnpf$nmR6qpV`D40VG9V-|v?bdG+TG6A`I!u5 zb~qCE>^|6=+j7=@g_>S1Xm&5OKh-|ZZu7oGkIkyyhedh7WS35Fd4%5&~Un0xsK z{p$aGz8hXu6;T^=WiG0z=Hg_=RuaXzW_7eG#X?NYPah+rz(5s=G2s=HwD#0XK_kT6;>jQ6HafC-6Xw@MHw|sKhVI^)JCUvyc4epsX^n@w1 zppZ`Ob$c0QueSH{uv{$KHsU|&Kfo8_;;;5G+%2j(dTMbwEQC*!82WQ=}2 zG%rXiqxY&hLt7%{W|rN2NDhOxf6*UAibLCgAR3B836qnNR8g^v3f*3%a!eChkb=A- z5L{>f1abtoG9xoB92B^u1f4ks(zvFqzcP9IIsetic=roMm?b()6ml&5&RvLZ@OfJm%QRfQ9gM?Q*o zT{RrQrR0TAPa;t?_VMSpP8^0lDz9GEfUIv5830hP^?W#Z6+mxq0iEp`=9ptU33v%& zCi!NYmbNcY`TPh4r>a^Q7oysTupQJJkB1BbE1LsrfP#jFWZ&Uf7q$R7ZNZTYkQCRV#Zkkd%kGu+QP9&D!M z9ig`bA#B^n!@!`h@j%7W?uB}7Fg*t}Ns{05B~;=51_6=Ui;sz~kEQTruvXrZck)*b z3;4&M{0?+GQD;$;`zXTcZUmhV9Nx#R5Q<+BG{u{G29!Q>y&oPUv{U#S9Uj=$&^*{)p+5?)8jTmR3kUN1&{~^&3jhr96Bs-03 z%e=b5{O2|i@l2d@bkA*A(al;YF-2A+tRY-S+Y&AnRqKAyU6Hidq1+Xqemrv^czB%VZmTcAwS&*Ym!yMw z-uc29GpGW?$6x^TpV}<_)y;o3o?F|ohfrdBh=Sd4QQ1=C0n-Qc$CN>bbQGgPJaUvz~oTZIU+>WV?4(*b6r&Q-fl-9Ib@FW| ze=Jx2Z(L;w{*KTtGQOdc9N|{bgWAKvT%y^o1iUO?_F~CC=FZe5wGso^FwHkvqt2Mf zgt{Pqj*r64DrkUPQ>xbL$Ka(XZd=y`N*u?Of>~zb12yT4t2HPUhp68IR6_S z28eU{199;;Ldrjw4w`bZ{{T9$vi~c(U4x*+OmQtQhrYfHDs>Yty#@r^9f&y@Sf`&jWjVZl5aGhbZKj@&Z*qKdGp) ztOV(A19u*GTL)VpsD;?w*2d16$DN<@4;LQb{_kQ&O5#6ET&(#iHRTkEUF_{`tSw!L zSs1t(nCY2W>4?pofKU!MdnapRW(MF|FmQZMCT2X!Kt|194hVe3Pif)e;=sem=;r3e z;Ks^e?_|!%%+1Zs$i%|P!a@(Upm+ALb1`(Mw{s=~*7rw4EH(e`X6MZCN1GUo?QIz? zH5r*1m>B<7(cb_emiBhUzbiI0vUhdir*w6-G~waoGBRajVKb)Z;NUi;XJ$5IrDpEEzKoF(3y>fQ5;fi=K&);J8L_8H#=bm2Ou%U z&;=NTzf|>y(_d})7=Op*Pd)PA?ju77Il2G2muzi+598lInnx6K(CT4rF2O^kWW?44{4f#ccmA3e+n9EX$we84wd zEM06&1^&o4VH=mf?ATcT&L18dLpyVRN_Tn_Q!_(X8y8Aor2eor`AalxECv3u^M@bf zKaTYuV)aK6FrR^8WBmJUApl4GU)uhA2l~ep36%QqQ@Z`00RK(&^P7_OSIy7ga+&Hs zr7|@T?(;i6fJ6Fsf>4R^{7x(;Ru)!fCMFJGPBAf20v|v#VD9~o7Jp}1xjUJf0ntg! zoN&Kqp}%au*+i`D#Ad{QEo0?m0kW!oZ^U+gEdy4_4#YV9QyCL0a7z2PGIr*F^#wXH z12sVZ;>*VUZ+5Jl+(2m8zu0jz{hKcvD+};5?4Rw}n7IG7EzF#p>_AA=Kijc#u>wIy z|60cJZ)I%k-2ZyM%$(dnq|-n9vT$>-{izNYCqp1i$q5L>CT3Kz^aKLYIEfjR?d^f& zvfp$iVn%5@GkfB{Leiwgh_(5|#925v#6;O8#6?(v&*H4&tlT0j;vyU(ETWv;EKCCb fZwuYuP&8*3LnoI%g3HRx%*h5vPA;w>0r!6Zx|}O0 literal 4728 zcma)Ac|4SB8x|c-gNXAJXNuR!*bZjK3`3bwme7zWH4NEiLSc#_*`>mfrKvNW7JR3a z%D(GZvrWoUvWv-5V#YGWV2r+Zq_6KRzu))GKkxhA&vjqV{anxWyz{$X*b%dX+DIJ~ z1jb;e+=J)=2!P^o8e(Jww4R}7AWq!Qykr%MP zpe|XR=8@EuW0x3OYh2#D{`P}$_(@kKW+XGcc8zD}I=o6KN-es9-aXv}8ISXVXmBd z?ry~6TLz|{`+rAf{*HXqWu4R6CG(>x^tO)Bl@mfg)K23+fAX#bI?4c3&(z1~p68u= z-eo}YmI&}Zy)DV~;Y0Cg)9pgPFqa;DUNT5V0mOa4QIv9Avj8nfxRv_gF$^tgh;|W@ zC=ybS9K5+c`TENLMW=4A;58j>-F9i$kFgR-2ev02czDW${*eAke*6`63*x!(zn1-6 zSFqT4nCyApa!9qbvdlrLV;_9Y;ycm>p ze^Gzr_SULAWw+j4Ceo=kr-gx6)#9Ig#Y=pI1_rcw(j`8^8@F3R4{i0kE#!CG^!u%$ zhirs|KiNrPD~fZ~deI@&+@T^VrIT+O-<5uTVx0RE31G z_GL-1p@T2V3sv4)Dq!e0pc)g+H0mDm5TVmQvkHnIl_U>8e|+Nb`}9(gk~6zX%85%` zynCfLZnq7nLVM18NGU3@?`Pr4rOVizDGFa};l8*CH z#Hi=o+4qb8qAo4%ol%Mi%_yxd%f(If`MRcfGTVN^a{XIzlQ#W~?c1(R+K?2ui_3Z+ zuQ4+-SeQvqzN#`2eW=ld;*sXbx>FL!SLLP*&fBQ-`jnM*t3~>kICrA;RveZB?q9F2 z^>Ql+nXFh7+pGE}!Xs}YepQ%<@y45-plf8jPD_-aJT)SaKAw`P-ZDDN};UwyLsjDpGV#k z)kWiMjktl0pWfZ1yAPIW8sT#?FbXXZ!sgB2_j$Ix_3J3$KcG8SHqo3=^W71`eT0P| zwm3VzN8@BXyb3B?#@ou~#A$sOCdyuLcFXXY9KFn+xACtFRuV4W@m*yXs-Y~264FC3 zrs&dmDm}dKp=(xsK}7qa8J|h#0-%R- zH^+T{x)o;Zzo627K9sXsqcp8(Y&1bR$WAr?s7lKp*;7c?x2T%COAx;AeYcW{I-qLq z883~EHWOD$mvv&(o8GF@eiNVu4pz;fwFZSR41FHZyfdyQH9NZ)P*+BD;5Z`f*8^yo_v&;EvsZvo&gNihg z5m((LX_OG-d16pFBSU87T7qd_qS#5fl%*x#=4Om#FE8-}k>Td%oGcZV2n~_x)=j#L z!Y1ms)h18qD0W|%uNyvl^@dUVjbWx9b8nqUsf-d^l1VsvYA8Fs{`~3npn?!i>TAxk z$kA89`rci<><>hXly^r!wt|-zDMNHktR*3HI?;H-l%U_9N+HQ*hrh@*3$xC?q-N5z_R3xKH`*D<7JrQ_`_N;$U>F& z?d@9)Lte$DR=~9;M;Zc667OGWq#cz|q-ID*m?g|!hDp9G+kdh{D%>IKQs7WIL8jQ< z&-w?p-}bRf2ef?n%~uLiJl%>^nm2U01&fi&@d}Roi7$uua6Yp~ku7PlOEn%AF&)Pq zTf425z;UOX6R|yIl@2MXi!1(APUvJTmND*EWAB{v2k0g1_f~pZ_BqOY*^O43<(`6c z^6Q5yC(NU@62@byN8~jw)P?qd(mhc~1?O72Ldnr6u3=>eq;q%);DwdgYTMI9<6*hA zr)wOh0lY_eU#yEjmhMb`QD>9P8#LHcsM~##D1Cgnpu8eRt&nv0Nm<=QDZ)tC?nNb`XHW*e zTC6aU_l!2|ie_pq#lQ@4Y;FH{R$49SfSv`d0rY20lapGO{vaR2vSlo1g731Bs|zF0 zmfa}J&9`+~j*}YUSsz^Aze#-1rCpdg^2+CQK_>S^TR9}h&1%zhSUHDCd1yUz5T`Rh z^ss99J@$>8)n84w%j7yM)V8FLRZlA>+$I!tUxq=0BYP~h44d8^;9fJ3qkjq+>E~>x zBsJ0=5!1E>%>7Gh$33xB!cMwx-^!MNvqL|`iVaze5(u4Rm%SMK!Y@|!{zX?b7`WzG=jxx&v&{kYg z`XVUY4D~CQY)xrS=Gs|(Y7~W6;oaLxOA6aR3Vk84!t9MYJh%57^A&oSx(HNGs ziWI#Qg&*Kc6q26a)F{mSwRO}Zn$T%B4}_a&;eXx6sV^SgJ^Z7G)p35u)>}sL$|^dS zVV9&jMD`i)SM9xJsd&jYo~)s!d@|&CRfF2|GkoUpZWZU>CZEynN}ln&=N5HV>ibML z>}wt4Eg)x7F$-#K01ymc+Qxb>Ob8 zKUwL~D@r`^BGkjG2z=vdzx>(ws^myY*$cyX3tsFO1#1t8hVRL3uwHGu}zcXEAc23|%`czWFvsll^!$5T7gHX>` zqrW(Kw9ubm=B`y7qe#Pz#D+&?#~0Ucj7iv^?|_iPsO2h&I`>DicM&&=^HEWP8D z`1~`wtFQr!&734Xa!=*qthqGMoOl?1$+;T2>kr9|8DG_$-T+-;7ri6q>uDH&n-9b+ zs|c!+W?HfkovRY>2!i$Aq?L$9CJCUisFuax5RhL?9W zOLn_i&6eM3Fz<#Yj|o;Uc#Wxmet4SZ>V16i%9vB-_*BwZ{L4qrXd9ke59er7^M*qN zR+3q+3tcBIJNPs=FcjyDRM`AYcaxnoDM_nS4Ai6Md3BEqZx z=D8OuO{@uU4+ZbLNO3`lq^BQTPmDaHHHryvb1{om;Gad1~`~P_OD}r*)R__9Gl}%Idnh|J7C;eTOFDlWj{32&8i+`tMu|nx$ZsgvX4^RCvAh@4#w&69L{<;3zmC2W`N)LADbDcRn zuc`3Jl@-pUOYO>h2V}#sRpp!r5c! zY+}Sdr?^T5U(92<@}fF2U<0s#jD$o^CSCFoxvaC>qfB`Cm?90+!{M*=9GN6Azo9PE7o z_%U(_6@;6IP%Vy9!R{773V6VjgA_0wiQISqn_ajm_zW@z0)i&l9s-6o%MwiSrD+D) zz`B5q!U6#}-iH(j5FvuH?IA7z$Pgr;{I662`)0rWCDYWM>h4SN`bzPo`fpQV{*3=t zH3V*Z#0Eg(aGN!4EMk+{9s?2N*?*(iSk>221BiiO6mD+_G5j-35Z^?ZxCfF2g20dY z_>lv(?J0il{u_(kkO=}m8stG0Y>8kMU=?4b5fJ_}g9*i#^nVcOej@<4jTGcb4p28g zdIYfWrUX(0Jp+8sQUL>`o(=+~0qzj^IfCj#@izmvQQd5>E&_o;Adv=0BpQVljN4F1 z|2*^`*+K%yryvLbsS82;=LhKP>7n$1Q@~~nWvCCzDfj{YUt?%pJ&YZ_iwpqq#Jthc16=@aPoaQ*6_^5mTlt@&0D|oRkA{^QKvZ|=bCVr%vZ%MFN)Qw5K2K@nv; WdLY$3fVv?pcsMZ-7|h)EAmrad+L{Oe From 3d347d31dc77223c7e62915d546fbe4e3df55e6c Mon Sep 17 00:00:00 2001 From: Salvatore Filippone Date: Thu, 5 Apr 2018 11:02:57 +0100 Subject: [PATCH 31/35] Ensure that the CNV method pick up the default storage format. Populate the defaults at psb_init time. --- base/modules/Makefile | 14 +++++----- base/modules/desc/psb_desc_const_mod.f90 | 3 +- base/modules/psi_penv_mod.F90 | 31 +++++++++++++++++++-- base/modules/serial/psb_c_vect_mod.F90 | 35 ++++++++++++++++-------- base/modules/serial/psb_d_vect_mod.F90 | 35 ++++++++++++++++-------- base/modules/serial/psb_i_vect_mod.F90 | 35 ++++++++++++++++-------- base/modules/serial/psb_s_vect_mod.F90 | 35 ++++++++++++++++-------- base/modules/serial/psb_z_vect_mod.F90 | 35 ++++++++++++++++-------- base/serial/impl/psb_c_mat_impl.F90 | 9 ++++-- base/serial/impl/psb_d_mat_impl.F90 | 9 ++++-- base/serial/impl/psb_s_mat_impl.F90 | 9 ++++-- base/serial/impl/psb_z_mat_impl.F90 | 9 ++++-- base/tools/psb_casb.f90 | 8 ++---- base/tools/psb_dasb.f90 | 8 ++---- base/tools/psb_iasb.f90 | 8 ++---- base/tools/psb_sasb.f90 | 8 ++---- base/tools/psb_zasb.f90 | 8 ++---- 17 files changed, 196 insertions(+), 103 deletions(-) diff --git a/base/modules/Makefile b/base/modules/Makefile index ec53f942..4c630baf 100644 --- a/base/modules/Makefile +++ b/base/modules/Makefile @@ -15,12 +15,6 @@ UTIL_MODS = aux/psb_string_mod.o desc/psb_desc_const_mod.o desc/psb_indx_map_mod comm/psb_s_linmap_mod.o comm/psb_d_linmap_mod.o comm/psb_c_linmap_mod.o comm/psb_z_linmap_mod.o \ comm/psb_comm_mod.o comm/psb_i_comm_mod.o comm/psb_s_comm_mod.o comm/psb_d_comm_mod.o\ comm/psb_c_comm_mod.o comm/psb_z_comm_mod.o \ - serial/psb_i_base_vect_mod.o serial/psb_i_vect_mod.o\ - serial/psb_d_base_vect_mod.o serial/psb_d_vect_mod.o\ - serial/psb_s_base_vect_mod.o serial/psb_s_vect_mod.o\ - serial/psb_c_base_vect_mod.o serial/psb_c_vect_mod.o\ - serial/psb_z_base_vect_mod.o serial/psb_z_vect_mod.o\ - serial/psb_vect_mod.o\ psblas/psb_s_psblas_mod.o psblas/psb_c_psblas_mod.o \ psblas/psb_d_psblas_mod.o psblas/psb_z_psblas_mod.o psblas/psb_psblas_mod.o \ aux/psi_serial_mod.o aux/psi_i_serial_mod.o \ @@ -30,6 +24,12 @@ UTIL_MODS = aux/psb_string_mod.o desc/psb_desc_const_mod.o desc/psb_indx_map_mod aux/psb_i_sort_mod.o aux/psb_s_sort_mod.o aux/psb_d_sort_mod.o \ aux/psb_c_sort_mod.o aux/psb_z_sort_mod.o \ psb_check_mod.o aux/psb_hash_mod.o\ + serial/psb_i_base_vect_mod.o serial/psb_i_vect_mod.o\ + serial/psb_d_base_vect_mod.o serial/psb_d_vect_mod.o\ + serial/psb_s_base_vect_mod.o serial/psb_s_vect_mod.o\ + serial/psb_c_base_vect_mod.o serial/psb_c_vect_mod.o\ + serial/psb_z_base_vect_mod.o serial/psb_z_vect_mod.o\ + serial/psb_vect_mod.o\ serial/psb_base_mat_mod.o serial/psb_mat_mod.o\ serial/psb_s_base_mat_mod.o serial/psb_s_csr_mat_mod.o serial/psb_s_csc_mat_mod.o serial/psb_s_mat_mod.o \ serial/psb_d_base_mat_mod.o serial/psb_d_csr_mat_mod.o serial/psb_d_csc_mat_mod.o serial/psb_d_mat_mod.o \ @@ -155,7 +155,7 @@ psblas/psb_s_psblas_mod.o psblas/psb_c_psblas_mod.o psblas/psb_d_psblas_mod.o ps psb_base_mod.o: $(MODULES) -psi_penv_mod.o: psi_penv_mod.F90 $(BASIC_MODS) +psi_penv_mod.o: psi_penv_mod.F90 $(BASIC_MODS) serial/psb_vect_mod.o serial/psb_mat_mod.o $(FC) $(FINCLUDES) $(FDEFINES) $(FCOPT) $(EXTRA_OPT) -c $< -o $@ psb_penv_mod.o: psb_penv_mod.F90 $(COMMINT) $(BASIC_MODS) diff --git a/base/modules/desc/psb_desc_const_mod.f90 b/base/modules/desc/psb_desc_const_mod.f90 index 801a49e9..26d633fb 100644 --- a/base/modules/desc/psb_desc_const_mod.f90 +++ b/base/modules/desc/psb_desc_const_mod.f90 @@ -122,7 +122,8 @@ module psb_desc_const_mod interface subroutine psb_parts(glob_index,nrow,np,pv,nv) import :: psb_ipk_ - integer(psb_ipk_), intent (in) :: glob_index,nrow, np + integer(psb_ipk_), intent (in) :: glob_index, nrow + integer(psb_ipk_), intent (in) :: np integer(psb_ipk_), intent (out) :: nv, pv(*) end subroutine psb_parts end interface diff --git a/base/modules/psi_penv_mod.F90 b/base/modules/psi_penv_mod.F90 index 0be037a1..dec0b44f 100644 --- a/base/modules/psi_penv_mod.F90 +++ b/base/modules/psi_penv_mod.F90 @@ -273,6 +273,8 @@ contains use psi_comm_buffers_mod use psb_const_mod use psb_error_mod + use psb_mat_mod + use psb_vect_mod ! !$ use psb_rsb_mod #ifdef MPI_MOD use mpi @@ -282,8 +284,7 @@ contains include 'mpif.h' #endif integer(psb_mpik_), intent(out) :: ictxt - integer(psb_mpik_), intent(in), optional :: np, basectxt, ids(:) - + integer(psb_mpik_), intent(in), optional :: np, basectxt, ids(:) integer(psb_mpik_) :: i, isnullcomm integer(psb_mpik_), allocatable :: iids(:) @@ -291,6 +292,21 @@ contains integer(psb_mpik_) :: np_, npavail, iam, info, basecomm, basegroup, newgroup character(len=20), parameter :: name='psb_init' integer(psb_ipk_) :: iinfo + ! + ! Defaults for vectors and matrices + ! + type(psb_s_csr_sparse_mat) :: smatdef + type(psb_d_csr_sparse_mat) :: dmatdef + type(psb_c_csr_sparse_mat) :: cmatdef + type(psb_z_csr_sparse_mat) :: zmatdef + + type(psb_i_base_vect_type) :: ivetdef + type(psb_s_base_vect_type) :: svetdef + type(psb_d_base_vect_type) :: dvetdef + type(psb_c_base_vect_type) :: cvetdef + type(psb_z_base_vect_type) :: zvetdef + + ! call psb_set_debug_unit(psb_err_unit) #if defined(SERIAL_MPI) @@ -381,6 +397,17 @@ contains if (ictxt == mpi_comm_null) return #endif + call psb_set_vect_default(ivetdef) + call psb_set_vect_default(svetdef) + call psb_set_vect_default(dvetdef) + call psb_set_vect_default(cvetdef) + call psb_set_vect_default(zvetdef) + + call psb_set_mat_default(smatdef) + call psb_set_mat_default(dmatdef) + call psb_set_mat_default(cmatdef) + call psb_set_mat_default(zmatdef) + ! !$ call psb_rsb_init(info) ! !$ if (info.ne.psb_rsb_const_success) then ! !$ if (info.eq.psb_rsb_const_not_available) then diff --git a/base/modules/serial/psb_c_vect_mod.F90 b/base/modules/serial/psb_c_vect_mod.F90 index c05f1dc7..fdd8060b 100644 --- a/base/modules/serial/psb_c_vect_mod.F90 +++ b/base/modules/serial/psb_c_vect_mod.F90 @@ -193,6 +193,7 @@ contains integer(psb_ipk_) :: info class(psb_c_base_vect_type), pointer :: mld + info = psb_success_ if (allocated(x%v)) & & call x%free(info) @@ -206,7 +207,7 @@ contains #ifdef HAVE_MOLD allocate(x%v,stat=info, mold=psb_c_get_base_vect_default()) #else - mld = psb_c_get_base_vect_default() + mld => psb_c_get_base_vect_default() call mld%mold(x%v,info) #endif endif @@ -223,7 +224,7 @@ contains integer(psb_ipk_) :: info class(psb_c_base_vect_type), pointer :: mld - + info = psb_success_ if (allocated(x%v)) & & call x%free(info) @@ -237,7 +238,7 @@ contains #ifdef HAVE_MOLD allocate(x%v,stat=info, mold=psb_c_get_base_vect_default()) #else - mld = psb_c_get_base_vect_default() + mld => psb_c_get_base_vect_default() call mld%mold(x%v,info) #endif endif @@ -480,21 +481,31 @@ contains class(psb_c_vect_type), intent(inout) :: x class(psb_c_base_vect_type), intent(in), optional :: mold class(psb_c_base_vect_type), allocatable :: tmp + class(psb_c_base_vect_type), pointer :: mld integer(psb_ipk_) :: info + info = psb_success_ if (present(mold)) then #ifdef HAVE_MOLD allocate(tmp,stat=info,mold=mold) #else call mold%mold(tmp,info) #endif - if (allocated(x%v)) then - call x%v%sync() - if (info == psb_success_) call tmp%bld(x%v%v) - call x%v%free(info) - end if - call move_alloc(tmp,x%v) + else +#ifdef HAVE_MOLD + allocate(tmp,stat=info,mold=psb_c_get_base_vect_default()) +#else + mld => psb_c_get_base_vect_default() + call mld%mold(tmp,info) +#endif + end if + if (allocated(x%v)) then + call x%v%sync() + if (info == psb_success_) call tmp%bld(x%v%v) + call x%v%free(info) end if + call move_alloc(tmp,x%v) + end subroutine c_vect_cnv @@ -936,6 +947,7 @@ contains integer(psb_ipk_) :: info class(psb_c_base_multivect_type), pointer :: mld + info = psb_success_ if (present(mold)) then #ifdef HAVE_MOLD allocate(x%v,stat=info,mold=mold) @@ -946,7 +958,7 @@ contains #ifdef HAVE_MOLD allocate(x%v,stat=info, mold=psb_c_get_base_multivect_default()) #else - mld = psb_c_get_base_multivect_default() + mld => psb_c_get_base_multivect_default() call mld%mold(x%v,info) #endif endif @@ -963,6 +975,7 @@ contains integer(psb_ipk_) :: info class(psb_c_base_multivect_type), pointer :: mld + info = psb_success_ if (present(mold)) then #ifdef HAVE_MOLD allocate(x%v,stat=info,mold=mold) @@ -973,7 +986,7 @@ contains #ifdef HAVE_MOLD allocate(x%v,stat=info, mold=psb_c_get_base_multivect_default()) #else - mld = psb_c_get_base_multivect_default() + mld => psb_c_get_base_multivect_default() call mld%mold(x%v,info) #endif endif diff --git a/base/modules/serial/psb_d_vect_mod.F90 b/base/modules/serial/psb_d_vect_mod.F90 index baa97495..197a3e37 100644 --- a/base/modules/serial/psb_d_vect_mod.F90 +++ b/base/modules/serial/psb_d_vect_mod.F90 @@ -193,6 +193,7 @@ contains integer(psb_ipk_) :: info class(psb_d_base_vect_type), pointer :: mld + info = psb_success_ if (allocated(x%v)) & & call x%free(info) @@ -206,7 +207,7 @@ contains #ifdef HAVE_MOLD allocate(x%v,stat=info, mold=psb_d_get_base_vect_default()) #else - mld = psb_d_get_base_vect_default() + mld => psb_d_get_base_vect_default() call mld%mold(x%v,info) #endif endif @@ -223,7 +224,7 @@ contains integer(psb_ipk_) :: info class(psb_d_base_vect_type), pointer :: mld - + info = psb_success_ if (allocated(x%v)) & & call x%free(info) @@ -237,7 +238,7 @@ contains #ifdef HAVE_MOLD allocate(x%v,stat=info, mold=psb_d_get_base_vect_default()) #else - mld = psb_d_get_base_vect_default() + mld => psb_d_get_base_vect_default() call mld%mold(x%v,info) #endif endif @@ -480,21 +481,31 @@ contains class(psb_d_vect_type), intent(inout) :: x class(psb_d_base_vect_type), intent(in), optional :: mold class(psb_d_base_vect_type), allocatable :: tmp + class(psb_d_base_vect_type), pointer :: mld integer(psb_ipk_) :: info + info = psb_success_ if (present(mold)) then #ifdef HAVE_MOLD allocate(tmp,stat=info,mold=mold) #else call mold%mold(tmp,info) #endif - if (allocated(x%v)) then - call x%v%sync() - if (info == psb_success_) call tmp%bld(x%v%v) - call x%v%free(info) - end if - call move_alloc(tmp,x%v) + else +#ifdef HAVE_MOLD + allocate(tmp,stat=info,mold=psb_d_get_base_vect_default()) +#else + mld => psb_d_get_base_vect_default() + call mld%mold(tmp,info) +#endif + end if + if (allocated(x%v)) then + call x%v%sync() + if (info == psb_success_) call tmp%bld(x%v%v) + call x%v%free(info) end if + call move_alloc(tmp,x%v) + end subroutine d_vect_cnv @@ -936,6 +947,7 @@ contains integer(psb_ipk_) :: info class(psb_d_base_multivect_type), pointer :: mld + info = psb_success_ if (present(mold)) then #ifdef HAVE_MOLD allocate(x%v,stat=info,mold=mold) @@ -946,7 +958,7 @@ contains #ifdef HAVE_MOLD allocate(x%v,stat=info, mold=psb_d_get_base_multivect_default()) #else - mld = psb_d_get_base_multivect_default() + mld => psb_d_get_base_multivect_default() call mld%mold(x%v,info) #endif endif @@ -963,6 +975,7 @@ contains integer(psb_ipk_) :: info class(psb_d_base_multivect_type), pointer :: mld + info = psb_success_ if (present(mold)) then #ifdef HAVE_MOLD allocate(x%v,stat=info,mold=mold) @@ -973,7 +986,7 @@ contains #ifdef HAVE_MOLD allocate(x%v,stat=info, mold=psb_d_get_base_multivect_default()) #else - mld = psb_d_get_base_multivect_default() + mld => psb_d_get_base_multivect_default() call mld%mold(x%v,info) #endif endif diff --git a/base/modules/serial/psb_i_vect_mod.F90 b/base/modules/serial/psb_i_vect_mod.F90 index 2d297058..1df4be14 100644 --- a/base/modules/serial/psb_i_vect_mod.F90 +++ b/base/modules/serial/psb_i_vect_mod.F90 @@ -166,6 +166,7 @@ contains integer(psb_ipk_) :: info class(psb_i_base_vect_type), pointer :: mld + info = psb_success_ if (allocated(x%v)) & & call x%free(info) @@ -179,7 +180,7 @@ contains #ifdef HAVE_MOLD allocate(x%v,stat=info, mold=psb_i_get_base_vect_default()) #else - mld = psb_i_get_base_vect_default() + mld => psb_i_get_base_vect_default() call mld%mold(x%v,info) #endif endif @@ -196,7 +197,7 @@ contains integer(psb_ipk_) :: info class(psb_i_base_vect_type), pointer :: mld - + info = psb_success_ if (allocated(x%v)) & & call x%free(info) @@ -210,7 +211,7 @@ contains #ifdef HAVE_MOLD allocate(x%v,stat=info, mold=psb_i_get_base_vect_default()) #else - mld = psb_i_get_base_vect_default() + mld => psb_i_get_base_vect_default() call mld%mold(x%v,info) #endif endif @@ -453,21 +454,31 @@ contains class(psb_i_vect_type), intent(inout) :: x class(psb_i_base_vect_type), intent(in), optional :: mold class(psb_i_base_vect_type), allocatable :: tmp + class(psb_i_base_vect_type), pointer :: mld integer(psb_ipk_) :: info + info = psb_success_ if (present(mold)) then #ifdef HAVE_MOLD allocate(tmp,stat=info,mold=mold) #else call mold%mold(tmp,info) #endif - if (allocated(x%v)) then - call x%v%sync() - if (info == psb_success_) call tmp%bld(x%v%v) - call x%v%free(info) - end if - call move_alloc(tmp,x%v) + else +#ifdef HAVE_MOLD + allocate(tmp,stat=info,mold=psb_i_get_base_vect_default()) +#else + mld => psb_i_get_base_vect_default() + call mld%mold(tmp,info) +#endif + end if + if (allocated(x%v)) then + call x%v%sync() + if (info == psb_success_) call tmp%bld(x%v%v) + call x%v%free(info) end if + call move_alloc(tmp,x%v) + end subroutine i_vect_cnv @@ -665,6 +676,7 @@ contains integer(psb_ipk_) :: info class(psb_i_base_multivect_type), pointer :: mld + info = psb_success_ if (present(mold)) then #ifdef HAVE_MOLD allocate(x%v,stat=info,mold=mold) @@ -675,7 +687,7 @@ contains #ifdef HAVE_MOLD allocate(x%v,stat=info, mold=psb_i_get_base_multivect_default()) #else - mld = psb_i_get_base_multivect_default() + mld => psb_i_get_base_multivect_default() call mld%mold(x%v,info) #endif endif @@ -692,6 +704,7 @@ contains integer(psb_ipk_) :: info class(psb_i_base_multivect_type), pointer :: mld + info = psb_success_ if (present(mold)) then #ifdef HAVE_MOLD allocate(x%v,stat=info,mold=mold) @@ -702,7 +715,7 @@ contains #ifdef HAVE_MOLD allocate(x%v,stat=info, mold=psb_i_get_base_multivect_default()) #else - mld = psb_i_get_base_multivect_default() + mld => psb_i_get_base_multivect_default() call mld%mold(x%v,info) #endif endif diff --git a/base/modules/serial/psb_s_vect_mod.F90 b/base/modules/serial/psb_s_vect_mod.F90 index b4ecd394..381ca3c8 100644 --- a/base/modules/serial/psb_s_vect_mod.F90 +++ b/base/modules/serial/psb_s_vect_mod.F90 @@ -193,6 +193,7 @@ contains integer(psb_ipk_) :: info class(psb_s_base_vect_type), pointer :: mld + info = psb_success_ if (allocated(x%v)) & & call x%free(info) @@ -206,7 +207,7 @@ contains #ifdef HAVE_MOLD allocate(x%v,stat=info, mold=psb_s_get_base_vect_default()) #else - mld = psb_s_get_base_vect_default() + mld => psb_s_get_base_vect_default() call mld%mold(x%v,info) #endif endif @@ -223,7 +224,7 @@ contains integer(psb_ipk_) :: info class(psb_s_base_vect_type), pointer :: mld - + info = psb_success_ if (allocated(x%v)) & & call x%free(info) @@ -237,7 +238,7 @@ contains #ifdef HAVE_MOLD allocate(x%v,stat=info, mold=psb_s_get_base_vect_default()) #else - mld = psb_s_get_base_vect_default() + mld => psb_s_get_base_vect_default() call mld%mold(x%v,info) #endif endif @@ -480,21 +481,31 @@ contains class(psb_s_vect_type), intent(inout) :: x class(psb_s_base_vect_type), intent(in), optional :: mold class(psb_s_base_vect_type), allocatable :: tmp + class(psb_s_base_vect_type), pointer :: mld integer(psb_ipk_) :: info + info = psb_success_ if (present(mold)) then #ifdef HAVE_MOLD allocate(tmp,stat=info,mold=mold) #else call mold%mold(tmp,info) #endif - if (allocated(x%v)) then - call x%v%sync() - if (info == psb_success_) call tmp%bld(x%v%v) - call x%v%free(info) - end if - call move_alloc(tmp,x%v) + else +#ifdef HAVE_MOLD + allocate(tmp,stat=info,mold=psb_s_get_base_vect_default()) +#else + mld => psb_s_get_base_vect_default() + call mld%mold(tmp,info) +#endif + end if + if (allocated(x%v)) then + call x%v%sync() + if (info == psb_success_) call tmp%bld(x%v%v) + call x%v%free(info) end if + call move_alloc(tmp,x%v) + end subroutine s_vect_cnv @@ -936,6 +947,7 @@ contains integer(psb_ipk_) :: info class(psb_s_base_multivect_type), pointer :: mld + info = psb_success_ if (present(mold)) then #ifdef HAVE_MOLD allocate(x%v,stat=info,mold=mold) @@ -946,7 +958,7 @@ contains #ifdef HAVE_MOLD allocate(x%v,stat=info, mold=psb_s_get_base_multivect_default()) #else - mld = psb_s_get_base_multivect_default() + mld => psb_s_get_base_multivect_default() call mld%mold(x%v,info) #endif endif @@ -963,6 +975,7 @@ contains integer(psb_ipk_) :: info class(psb_s_base_multivect_type), pointer :: mld + info = psb_success_ if (present(mold)) then #ifdef HAVE_MOLD allocate(x%v,stat=info,mold=mold) @@ -973,7 +986,7 @@ contains #ifdef HAVE_MOLD allocate(x%v,stat=info, mold=psb_s_get_base_multivect_default()) #else - mld = psb_s_get_base_multivect_default() + mld => psb_s_get_base_multivect_default() call mld%mold(x%v,info) #endif endif diff --git a/base/modules/serial/psb_z_vect_mod.F90 b/base/modules/serial/psb_z_vect_mod.F90 index 788d3ab1..823ccf0c 100644 --- a/base/modules/serial/psb_z_vect_mod.F90 +++ b/base/modules/serial/psb_z_vect_mod.F90 @@ -193,6 +193,7 @@ contains integer(psb_ipk_) :: info class(psb_z_base_vect_type), pointer :: mld + info = psb_success_ if (allocated(x%v)) & & call x%free(info) @@ -206,7 +207,7 @@ contains #ifdef HAVE_MOLD allocate(x%v,stat=info, mold=psb_z_get_base_vect_default()) #else - mld = psb_z_get_base_vect_default() + mld => psb_z_get_base_vect_default() call mld%mold(x%v,info) #endif endif @@ -223,7 +224,7 @@ contains integer(psb_ipk_) :: info class(psb_z_base_vect_type), pointer :: mld - + info = psb_success_ if (allocated(x%v)) & & call x%free(info) @@ -237,7 +238,7 @@ contains #ifdef HAVE_MOLD allocate(x%v,stat=info, mold=psb_z_get_base_vect_default()) #else - mld = psb_z_get_base_vect_default() + mld => psb_z_get_base_vect_default() call mld%mold(x%v,info) #endif endif @@ -480,21 +481,31 @@ contains class(psb_z_vect_type), intent(inout) :: x class(psb_z_base_vect_type), intent(in), optional :: mold class(psb_z_base_vect_type), allocatable :: tmp + class(psb_z_base_vect_type), pointer :: mld integer(psb_ipk_) :: info + info = psb_success_ if (present(mold)) then #ifdef HAVE_MOLD allocate(tmp,stat=info,mold=mold) #else call mold%mold(tmp,info) #endif - if (allocated(x%v)) then - call x%v%sync() - if (info == psb_success_) call tmp%bld(x%v%v) - call x%v%free(info) - end if - call move_alloc(tmp,x%v) + else +#ifdef HAVE_MOLD + allocate(tmp,stat=info,mold=psb_z_get_base_vect_default()) +#else + mld => psb_z_get_base_vect_default() + call mld%mold(tmp,info) +#endif + end if + if (allocated(x%v)) then + call x%v%sync() + if (info == psb_success_) call tmp%bld(x%v%v) + call x%v%free(info) end if + call move_alloc(tmp,x%v) + end subroutine z_vect_cnv @@ -936,6 +947,7 @@ contains integer(psb_ipk_) :: info class(psb_z_base_multivect_type), pointer :: mld + info = psb_success_ if (present(mold)) then #ifdef HAVE_MOLD allocate(x%v,stat=info,mold=mold) @@ -946,7 +958,7 @@ contains #ifdef HAVE_MOLD allocate(x%v,stat=info, mold=psb_z_get_base_multivect_default()) #else - mld = psb_z_get_base_multivect_default() + mld => psb_z_get_base_multivect_default() call mld%mold(x%v,info) #endif endif @@ -963,6 +975,7 @@ contains integer(psb_ipk_) :: info class(psb_z_base_multivect_type), pointer :: mld + info = psb_success_ if (present(mold)) then #ifdef HAVE_MOLD allocate(x%v,stat=info,mold=mold) @@ -973,7 +986,7 @@ contains #ifdef HAVE_MOLD allocate(x%v,stat=info, mold=psb_z_get_base_multivect_default()) #else - mld = psb_z_get_base_multivect_default() + mld => psb_z_get_base_multivect_default() call mld%mold(x%v,info) #endif endif diff --git a/base/serial/impl/psb_c_mat_impl.F90 b/base/serial/impl/psb_c_mat_impl.F90 index 766939a8..8b233647 100644 --- a/base/serial/impl/psb_c_mat_impl.F90 +++ b/base/serial/impl/psb_c_mat_impl.F90 @@ -1179,7 +1179,7 @@ subroutine psb_c_cscnv(a,b,info,type,mold,upd,dupl) #if defined(HAVE_MOLD) allocate(altmp, mold=psb_get_mat_default(a),stat=info) #else - mld = psb_get_mat_default(a) + mld => psb_get_mat_default(a) call mld%mold(altmp,info) #endif end if @@ -1290,7 +1290,7 @@ subroutine psb_c_cscnv_ip(a,info,type,mold,dupl) #if defined(HAVE_MOLD) allocate(altmp, mold=psb_get_mat_default(a),stat=info) #else - mld = psb_get_mat_default(a) + mld => psb_get_mat_default(a) call mld%mold(altmp,info) #endif end if @@ -1811,6 +1811,7 @@ subroutine psb_c_asb(a,mold) class(psb_cspmat_type), intent(inout) :: a class(psb_c_base_sparse_mat), optional, intent(in) :: mold class(psb_c_base_sparse_mat), allocatable :: tmp + class(psb_c_base_sparse_mat), pointer :: mld integer(psb_ipk_) :: err_act, info character(len=20) :: name='c_asb' @@ -1829,6 +1830,10 @@ subroutine psb_c_asb(a,mold) call a%a%free() call move_alloc(tmp,a%a) end if + else + mld => psb_c_get_base_mat_default() + if (.not.same_type_as(a%a,mld)) & + & call a%cscnv(info) end if diff --git a/base/serial/impl/psb_d_mat_impl.F90 b/base/serial/impl/psb_d_mat_impl.F90 index bd504cc7..7ae42421 100644 --- a/base/serial/impl/psb_d_mat_impl.F90 +++ b/base/serial/impl/psb_d_mat_impl.F90 @@ -1179,7 +1179,7 @@ subroutine psb_d_cscnv(a,b,info,type,mold,upd,dupl) #if defined(HAVE_MOLD) allocate(altmp, mold=psb_get_mat_default(a),stat=info) #else - mld = psb_get_mat_default(a) + mld => psb_get_mat_default(a) call mld%mold(altmp,info) #endif end if @@ -1290,7 +1290,7 @@ subroutine psb_d_cscnv_ip(a,info,type,mold,dupl) #if defined(HAVE_MOLD) allocate(altmp, mold=psb_get_mat_default(a),stat=info) #else - mld = psb_get_mat_default(a) + mld => psb_get_mat_default(a) call mld%mold(altmp,info) #endif end if @@ -1811,6 +1811,7 @@ subroutine psb_d_asb(a,mold) class(psb_dspmat_type), intent(inout) :: a class(psb_d_base_sparse_mat), optional, intent(in) :: mold class(psb_d_base_sparse_mat), allocatable :: tmp + class(psb_d_base_sparse_mat), pointer :: mld integer(psb_ipk_) :: err_act, info character(len=20) :: name='d_asb' @@ -1829,6 +1830,10 @@ subroutine psb_d_asb(a,mold) call a%a%free() call move_alloc(tmp,a%a) end if + else + mld => psb_d_get_base_mat_default() + if (.not.same_type_as(a%a,mld)) & + & call a%cscnv(info) end if diff --git a/base/serial/impl/psb_s_mat_impl.F90 b/base/serial/impl/psb_s_mat_impl.F90 index 50919f15..50d43b1e 100644 --- a/base/serial/impl/psb_s_mat_impl.F90 +++ b/base/serial/impl/psb_s_mat_impl.F90 @@ -1179,7 +1179,7 @@ subroutine psb_s_cscnv(a,b,info,type,mold,upd,dupl) #if defined(HAVE_MOLD) allocate(altmp, mold=psb_get_mat_default(a),stat=info) #else - mld = psb_get_mat_default(a) + mld => psb_get_mat_default(a) call mld%mold(altmp,info) #endif end if @@ -1290,7 +1290,7 @@ subroutine psb_s_cscnv_ip(a,info,type,mold,dupl) #if defined(HAVE_MOLD) allocate(altmp, mold=psb_get_mat_default(a),stat=info) #else - mld = psb_get_mat_default(a) + mld => psb_get_mat_default(a) call mld%mold(altmp,info) #endif end if @@ -1811,6 +1811,7 @@ subroutine psb_s_asb(a,mold) class(psb_sspmat_type), intent(inout) :: a class(psb_s_base_sparse_mat), optional, intent(in) :: mold class(psb_s_base_sparse_mat), allocatable :: tmp + class(psb_s_base_sparse_mat), pointer :: mld integer(psb_ipk_) :: err_act, info character(len=20) :: name='s_asb' @@ -1829,6 +1830,10 @@ subroutine psb_s_asb(a,mold) call a%a%free() call move_alloc(tmp,a%a) end if + else + mld => psb_s_get_base_mat_default() + if (.not.same_type_as(a%a,mld)) & + & call a%cscnv(info) end if diff --git a/base/serial/impl/psb_z_mat_impl.F90 b/base/serial/impl/psb_z_mat_impl.F90 index 9e88f19f..40b8e0dc 100644 --- a/base/serial/impl/psb_z_mat_impl.F90 +++ b/base/serial/impl/psb_z_mat_impl.F90 @@ -1179,7 +1179,7 @@ subroutine psb_z_cscnv(a,b,info,type,mold,upd,dupl) #if defined(HAVE_MOLD) allocate(altmp, mold=psb_get_mat_default(a),stat=info) #else - mld = psb_get_mat_default(a) + mld => psb_get_mat_default(a) call mld%mold(altmp,info) #endif end if @@ -1290,7 +1290,7 @@ subroutine psb_z_cscnv_ip(a,info,type,mold,dupl) #if defined(HAVE_MOLD) allocate(altmp, mold=psb_get_mat_default(a),stat=info) #else - mld = psb_get_mat_default(a) + mld => psb_get_mat_default(a) call mld%mold(altmp,info) #endif end if @@ -1811,6 +1811,7 @@ subroutine psb_z_asb(a,mold) class(psb_zspmat_type), intent(inout) :: a class(psb_z_base_sparse_mat), optional, intent(in) :: mold class(psb_z_base_sparse_mat), allocatable :: tmp + class(psb_z_base_sparse_mat), pointer :: mld integer(psb_ipk_) :: err_act, info character(len=20) :: name='z_asb' @@ -1829,6 +1830,10 @@ subroutine psb_z_asb(a,mold) call a%a%free() call move_alloc(tmp,a%a) end if + else + mld => psb_z_get_base_mat_default() + if (.not.same_type_as(a%a,mld)) & + & call a%cscnv(info) end if diff --git a/base/tools/psb_casb.f90 b/base/tools/psb_casb.f90 index bb43ea3b..463ec37d 100644 --- a/base/tools/psb_casb.f90 +++ b/base/tools/psb_casb.f90 @@ -313,9 +313,7 @@ subroutine psb_casb_vect(x, desc_a, info, mold, scratch) call psb_errpush(info,name,a_err='psb_halo') goto 9999 end if - if (present(mold)) then - call x%cnv(mold) - end if + call x%cnv(mold) end if if (debug_level >= psb_debug_ext_) & & write(debug_unit,*) me,' ',trim(name),': end' @@ -391,9 +389,7 @@ subroutine psb_casb_vect_r2(x, desc_a, info, mold, scratch) ! ..update halo elements.. call psb_halo(x(i),desc_a,info) if (info /= 0) exit - if (present(mold)) then - call x(i)%cnv(mold) - end if + call x(i)%cnv(mold) end do if(info /= psb_success_) then info=psb_err_from_subroutine_ diff --git a/base/tools/psb_dasb.f90 b/base/tools/psb_dasb.f90 index 4e673c16..93dc226e 100644 --- a/base/tools/psb_dasb.f90 +++ b/base/tools/psb_dasb.f90 @@ -313,9 +313,7 @@ subroutine psb_dasb_vect(x, desc_a, info, mold, scratch) call psb_errpush(info,name,a_err='psb_halo') goto 9999 end if - if (present(mold)) then - call x%cnv(mold) - end if + call x%cnv(mold) end if if (debug_level >= psb_debug_ext_) & & write(debug_unit,*) me,' ',trim(name),': end' @@ -391,9 +389,7 @@ subroutine psb_dasb_vect_r2(x, desc_a, info, mold, scratch) ! ..update halo elements.. call psb_halo(x(i),desc_a,info) if (info /= 0) exit - if (present(mold)) then - call x(i)%cnv(mold) - end if + call x(i)%cnv(mold) end do if(info /= psb_success_) then info=psb_err_from_subroutine_ diff --git a/base/tools/psb_iasb.f90 b/base/tools/psb_iasb.f90 index 148b011a..02d51425 100644 --- a/base/tools/psb_iasb.f90 +++ b/base/tools/psb_iasb.f90 @@ -313,9 +313,7 @@ subroutine psb_iasb_vect(x, desc_a, info, mold, scratch) call psb_errpush(info,name,a_err='psb_halo') goto 9999 end if - if (present(mold)) then - call x%cnv(mold) - end if + call x%cnv(mold) end if if (debug_level >= psb_debug_ext_) & & write(debug_unit,*) me,' ',trim(name),': end' @@ -391,9 +389,7 @@ subroutine psb_iasb_vect_r2(x, desc_a, info, mold, scratch) ! ..update halo elements.. call psb_halo(x(i),desc_a,info) if (info /= 0) exit - if (present(mold)) then - call x(i)%cnv(mold) - end if + call x(i)%cnv(mold) end do if(info /= psb_success_) then info=psb_err_from_subroutine_ diff --git a/base/tools/psb_sasb.f90 b/base/tools/psb_sasb.f90 index 496303cf..ebc675aa 100644 --- a/base/tools/psb_sasb.f90 +++ b/base/tools/psb_sasb.f90 @@ -313,9 +313,7 @@ subroutine psb_sasb_vect(x, desc_a, info, mold, scratch) call psb_errpush(info,name,a_err='psb_halo') goto 9999 end if - if (present(mold)) then - call x%cnv(mold) - end if + call x%cnv(mold) end if if (debug_level >= psb_debug_ext_) & & write(debug_unit,*) me,' ',trim(name),': end' @@ -391,9 +389,7 @@ subroutine psb_sasb_vect_r2(x, desc_a, info, mold, scratch) ! ..update halo elements.. call psb_halo(x(i),desc_a,info) if (info /= 0) exit - if (present(mold)) then - call x(i)%cnv(mold) - end if + call x(i)%cnv(mold) end do if(info /= psb_success_) then info=psb_err_from_subroutine_ diff --git a/base/tools/psb_zasb.f90 b/base/tools/psb_zasb.f90 index 5e027b78..1e640bdd 100644 --- a/base/tools/psb_zasb.f90 +++ b/base/tools/psb_zasb.f90 @@ -313,9 +313,7 @@ subroutine psb_zasb_vect(x, desc_a, info, mold, scratch) call psb_errpush(info,name,a_err='psb_halo') goto 9999 end if - if (present(mold)) then - call x%cnv(mold) - end if + call x%cnv(mold) end if if (debug_level >= psb_debug_ext_) & & write(debug_unit,*) me,' ',trim(name),': end' @@ -391,9 +389,7 @@ subroutine psb_zasb_vect_r2(x, desc_a, info, mold, scratch) ! ..update halo elements.. call psb_halo(x(i),desc_a,info) if (info /= 0) exit - if (present(mold)) then - call x(i)%cnv(mold) - end if + call x(i)%cnv(mold) end do if(info /= psb_success_) then info=psb_err_from_subroutine_ From e37b43d45ae289e0433af94653bc176d9c07eef9 Mon Sep 17 00:00:00 2001 From: Salvatore Filippone Date: Thu, 5 Apr 2018 12:30:28 +0100 Subject: [PATCH 32/35] Take out HAVE_MOLD. Make support for MOLD mandatory in compiler version. Define set_vect_defaults() and set_mat_defaults(), invoke them at _init() time. --- base/modules/psi_penv_mod.F90 | 52 ++--- base/modules/serial/psb_c_vect_mod.F90 | 76 +------- base/modules/serial/psb_d_vect_mod.F90 | 76 +------- base/modules/serial/psb_i_vect_mod.F90 | 76 +------- base/modules/serial/psb_mat_mod.f90 | 20 ++ base/modules/serial/psb_s_vect_mod.F90 | 76 +------- base/modules/serial/psb_vect_mod.f90 | 23 +++ base/modules/serial/psb_z_vect_mod.F90 | 76 +------- base/serial/impl/psb_c_base_mat_impl.F90 | 13 +- base/serial/impl/psb_c_mat_impl.F90 | 41 +--- base/serial/impl/psb_d_base_mat_impl.F90 | 13 +- base/serial/impl/psb_d_mat_impl.F90 | 41 +--- base/serial/impl/psb_s_base_mat_impl.F90 | 13 +- base/serial/impl/psb_s_mat_impl.F90 | 41 +--- base/serial/impl/psb_z_base_mat_impl.F90 | 13 +- base/serial/impl/psb_z_mat_impl.F90 | 41 +--- configure | 231 ++++++++++++----------- configure.ac | 29 +-- 18 files changed, 252 insertions(+), 699 deletions(-) diff --git a/base/modules/psi_penv_mod.F90 b/base/modules/psi_penv_mod.F90 index dec0b44f..5b4c53e7 100644 --- a/base/modules/psi_penv_mod.F90 +++ b/base/modules/psi_penv_mod.F90 @@ -292,20 +292,6 @@ contains integer(psb_mpik_) :: np_, npavail, iam, info, basecomm, basegroup, newgroup character(len=20), parameter :: name='psb_init' integer(psb_ipk_) :: iinfo - ! - ! Defaults for vectors and matrices - ! - type(psb_s_csr_sparse_mat) :: smatdef - type(psb_d_csr_sparse_mat) :: dmatdef - type(psb_c_csr_sparse_mat) :: cmatdef - type(psb_z_csr_sparse_mat) :: zmatdef - - type(psb_i_base_vect_type) :: ivetdef - type(psb_s_base_vect_type) :: svetdef - type(psb_d_base_vect_type) :: dvetdef - type(psb_c_base_vect_type) :: cvetdef - type(psb_z_base_vect_type) :: zvetdef - ! call psb_set_debug_unit(psb_err_unit) @@ -396,30 +382,20 @@ contains call psi_get_sizes() if (ictxt == mpi_comm_null) return #endif - - call psb_set_vect_default(ivetdef) - call psb_set_vect_default(svetdef) - call psb_set_vect_default(dvetdef) - call psb_set_vect_default(cvetdef) - call psb_set_vect_default(zvetdef) - - call psb_set_mat_default(smatdef) - call psb_set_mat_default(dmatdef) - call psb_set_mat_default(cmatdef) - call psb_set_mat_default(zmatdef) - -! !$ call psb_rsb_init(info) -! !$ if (info.ne.psb_rsb_const_success) then -! !$ if (info.eq.psb_rsb_const_not_available) then -! !$ info=psb_success_ ! rsb is not present -! !$ else -! !$ ! rsb failed to initialize, and we issue an internal error. -! !$ ! or shall we tolerate this ? -! !$ info=psb_err_internal_error_ -! !$ call psb_errpush(info,name) -! !$ call psb_error(ictxt) -! !$ endif -! !$ endif + call psb_init_vect_defaults() + call psb_init_mat_defaults() + ! !$ call psb_rsb_init(info) + ! !$ if (info.ne.psb_rsb_const_success) then + ! !$ if (info.eq.psb_rsb_const_not_available) then + ! !$ info=psb_success_ ! rsb is not present + ! !$ else + ! !$ ! rsb failed to initialize, and we issue an internal error. + ! !$ ! or shall we tolerate this ? + ! !$ info=psb_err_internal_error_ + ! !$ call psb_errpush(info,name) + ! !$ call psb_error(ictxt) + ! !$ endif + ! !$ endif end subroutine psb_init_mpik diff --git a/base/modules/serial/psb_c_vect_mod.F90 b/base/modules/serial/psb_c_vect_mod.F90 index fdd8060b..73d07ace 100644 --- a/base/modules/serial/psb_c_vect_mod.F90 +++ b/base/modules/serial/psb_c_vect_mod.F90 @@ -191,25 +191,15 @@ contains class(psb_c_vect_type), intent(inout) :: x class(psb_c_base_vect_type), intent(in), optional :: mold integer(psb_ipk_) :: info - class(psb_c_base_vect_type), pointer :: mld info = psb_success_ if (allocated(x%v)) & & call x%free(info) if (present(mold)) then -#ifdef HAVE_MOLD allocate(x%v,stat=info,mold=mold) -#else - call mold%mold(x%v,info) -#endif else -#ifdef HAVE_MOLD allocate(x%v,stat=info, mold=psb_c_get_base_vect_default()) -#else - mld => psb_c_get_base_vect_default() - call mld%mold(x%v,info) -#endif endif if (info == psb_success_) call x%v%bld(invect) @@ -229,18 +219,9 @@ contains & call x%free(info) if (present(mold)) then -#ifdef HAVE_MOLD allocate(x%v,stat=info,mold=mold) -#else - call mold%mold(x%v,info) -#endif else -#ifdef HAVE_MOLD allocate(x%v,stat=info, mold=psb_c_get_base_vect_default()) -#else - mld => psb_c_get_base_vect_default() - call mld%mold(x%v,info) -#endif endif if (info == psb_success_) call x%v%bld(n) @@ -321,6 +302,7 @@ contains res = 'NULL' if (allocated(x%v)) res = x%v%get_fmt() end function c_vect_get_fmt + subroutine c_vect_all(n, x, info, mold) implicit none @@ -333,11 +315,7 @@ contains & call x%free(info) if (present(mold)) then -#ifdef HAVE_MOLD allocate(x%v,stat=info,mold=mold) -#else - call mold%mold(x%v,info) -#endif else allocate(psb_c_base_vect_type :: x%v,stat=info) endif @@ -481,23 +459,14 @@ contains class(psb_c_vect_type), intent(inout) :: x class(psb_c_base_vect_type), intent(in), optional :: mold class(psb_c_base_vect_type), allocatable :: tmp - class(psb_c_base_vect_type), pointer :: mld + integer(psb_ipk_) :: info info = psb_success_ if (present(mold)) then -#ifdef HAVE_MOLD allocate(tmp,stat=info,mold=mold) -#else - call mold%mold(tmp,info) -#endif else -#ifdef HAVE_MOLD allocate(tmp,stat=info,mold=psb_c_get_base_vect_default()) -#else - mld => psb_c_get_base_vect_default() - call mld%mold(tmp,info) -#endif end if if (allocated(x%v)) then call x%v%sync() @@ -949,18 +918,9 @@ contains info = psb_success_ if (present(mold)) then -#ifdef HAVE_MOLD allocate(x%v,stat=info,mold=mold) -#else - call mold%mold(x%v,info) -#endif else -#ifdef HAVE_MOLD allocate(x%v,stat=info, mold=psb_c_get_base_multivect_default()) -#else - mld => psb_c_get_base_multivect_default() - call mld%mold(x%v,info) -#endif endif if (info == psb_success_) call x%v%bld(invect) @@ -973,22 +933,12 @@ contains class(psb_c_multivect_type), intent(out) :: x class(psb_c_base_multivect_type), intent(in), optional :: mold integer(psb_ipk_) :: info - class(psb_c_base_multivect_type), pointer :: mld info = psb_success_ if (present(mold)) then -#ifdef HAVE_MOLD allocate(x%v,stat=info,mold=mold) -#else - call mold%mold(x%v,info) -#endif else -#ifdef HAVE_MOLD allocate(x%v,stat=info, mold=psb_c_get_base_multivect_default()) -#else - mld => psb_c_get_base_multivect_default() - call mld%mold(x%v,info) -#endif endif if (info == psb_success_) call x%v%bld(m,n) @@ -1085,11 +1035,7 @@ contains integer(psb_ipk_), intent(out) :: info if (present(mold)) then -#ifdef HAVE_MOLD allocate(x%v,stat=info,mold=mold) -#else - call mold%mold(x%v,info) -#endif else allocate(psb_c_base_multivect_type :: x%v,stat=info) endif @@ -1248,18 +1194,16 @@ contains integer(psb_ipk_) :: info if (present(mold)) then -#ifdef HAVE_MOLD allocate(tmp,stat=info,mold=mold) -#else - call mold%mold(tmp,info) -#endif - if (allocated(x%v)) then - call x%v%sync() - if (info == psb_success_) call tmp%bld(x%v%v) - call x%v%free(info) - end if - call move_alloc(tmp,x%v) + else + allocate(tmp,stat=info, mold=psb_c_get_base_multivect_default()) + endif + if (allocated(x%v)) then + call x%v%sync() + if (info == psb_success_) call tmp%bld(x%v%v) + call x%v%free(info) end if + call move_alloc(tmp,x%v) end subroutine c_vect_cnv diff --git a/base/modules/serial/psb_d_vect_mod.F90 b/base/modules/serial/psb_d_vect_mod.F90 index 197a3e37..47870bbb 100644 --- a/base/modules/serial/psb_d_vect_mod.F90 +++ b/base/modules/serial/psb_d_vect_mod.F90 @@ -191,25 +191,15 @@ contains class(psb_d_vect_type), intent(inout) :: x class(psb_d_base_vect_type), intent(in), optional :: mold integer(psb_ipk_) :: info - class(psb_d_base_vect_type), pointer :: mld info = psb_success_ if (allocated(x%v)) & & call x%free(info) if (present(mold)) then -#ifdef HAVE_MOLD allocate(x%v,stat=info,mold=mold) -#else - call mold%mold(x%v,info) -#endif else -#ifdef HAVE_MOLD allocate(x%v,stat=info, mold=psb_d_get_base_vect_default()) -#else - mld => psb_d_get_base_vect_default() - call mld%mold(x%v,info) -#endif endif if (info == psb_success_) call x%v%bld(invect) @@ -229,18 +219,9 @@ contains & call x%free(info) if (present(mold)) then -#ifdef HAVE_MOLD allocate(x%v,stat=info,mold=mold) -#else - call mold%mold(x%v,info) -#endif else -#ifdef HAVE_MOLD allocate(x%v,stat=info, mold=psb_d_get_base_vect_default()) -#else - mld => psb_d_get_base_vect_default() - call mld%mold(x%v,info) -#endif endif if (info == psb_success_) call x%v%bld(n) @@ -321,6 +302,7 @@ contains res = 'NULL' if (allocated(x%v)) res = x%v%get_fmt() end function d_vect_get_fmt + subroutine d_vect_all(n, x, info, mold) implicit none @@ -333,11 +315,7 @@ contains & call x%free(info) if (present(mold)) then -#ifdef HAVE_MOLD allocate(x%v,stat=info,mold=mold) -#else - call mold%mold(x%v,info) -#endif else allocate(psb_d_base_vect_type :: x%v,stat=info) endif @@ -481,23 +459,14 @@ contains class(psb_d_vect_type), intent(inout) :: x class(psb_d_base_vect_type), intent(in), optional :: mold class(psb_d_base_vect_type), allocatable :: tmp - class(psb_d_base_vect_type), pointer :: mld + integer(psb_ipk_) :: info info = psb_success_ if (present(mold)) then -#ifdef HAVE_MOLD allocate(tmp,stat=info,mold=mold) -#else - call mold%mold(tmp,info) -#endif else -#ifdef HAVE_MOLD allocate(tmp,stat=info,mold=psb_d_get_base_vect_default()) -#else - mld => psb_d_get_base_vect_default() - call mld%mold(tmp,info) -#endif end if if (allocated(x%v)) then call x%v%sync() @@ -949,18 +918,9 @@ contains info = psb_success_ if (present(mold)) then -#ifdef HAVE_MOLD allocate(x%v,stat=info,mold=mold) -#else - call mold%mold(x%v,info) -#endif else -#ifdef HAVE_MOLD allocate(x%v,stat=info, mold=psb_d_get_base_multivect_default()) -#else - mld => psb_d_get_base_multivect_default() - call mld%mold(x%v,info) -#endif endif if (info == psb_success_) call x%v%bld(invect) @@ -973,22 +933,12 @@ contains class(psb_d_multivect_type), intent(out) :: x class(psb_d_base_multivect_type), intent(in), optional :: mold integer(psb_ipk_) :: info - class(psb_d_base_multivect_type), pointer :: mld info = psb_success_ if (present(mold)) then -#ifdef HAVE_MOLD allocate(x%v,stat=info,mold=mold) -#else - call mold%mold(x%v,info) -#endif else -#ifdef HAVE_MOLD allocate(x%v,stat=info, mold=psb_d_get_base_multivect_default()) -#else - mld => psb_d_get_base_multivect_default() - call mld%mold(x%v,info) -#endif endif if (info == psb_success_) call x%v%bld(m,n) @@ -1085,11 +1035,7 @@ contains integer(psb_ipk_), intent(out) :: info if (present(mold)) then -#ifdef HAVE_MOLD allocate(x%v,stat=info,mold=mold) -#else - call mold%mold(x%v,info) -#endif else allocate(psb_d_base_multivect_type :: x%v,stat=info) endif @@ -1248,18 +1194,16 @@ contains integer(psb_ipk_) :: info if (present(mold)) then -#ifdef HAVE_MOLD allocate(tmp,stat=info,mold=mold) -#else - call mold%mold(tmp,info) -#endif - if (allocated(x%v)) then - call x%v%sync() - if (info == psb_success_) call tmp%bld(x%v%v) - call x%v%free(info) - end if - call move_alloc(tmp,x%v) + else + allocate(tmp,stat=info, mold=psb_d_get_base_multivect_default()) + endif + if (allocated(x%v)) then + call x%v%sync() + if (info == psb_success_) call tmp%bld(x%v%v) + call x%v%free(info) end if + call move_alloc(tmp,x%v) end subroutine d_vect_cnv diff --git a/base/modules/serial/psb_i_vect_mod.F90 b/base/modules/serial/psb_i_vect_mod.F90 index 1df4be14..0671bc33 100644 --- a/base/modules/serial/psb_i_vect_mod.F90 +++ b/base/modules/serial/psb_i_vect_mod.F90 @@ -164,25 +164,15 @@ contains class(psb_i_vect_type), intent(inout) :: x class(psb_i_base_vect_type), intent(in), optional :: mold integer(psb_ipk_) :: info - class(psb_i_base_vect_type), pointer :: mld info = psb_success_ if (allocated(x%v)) & & call x%free(info) if (present(mold)) then -#ifdef HAVE_MOLD allocate(x%v,stat=info,mold=mold) -#else - call mold%mold(x%v,info) -#endif else -#ifdef HAVE_MOLD allocate(x%v,stat=info, mold=psb_i_get_base_vect_default()) -#else - mld => psb_i_get_base_vect_default() - call mld%mold(x%v,info) -#endif endif if (info == psb_success_) call x%v%bld(invect) @@ -202,18 +192,9 @@ contains & call x%free(info) if (present(mold)) then -#ifdef HAVE_MOLD allocate(x%v,stat=info,mold=mold) -#else - call mold%mold(x%v,info) -#endif else -#ifdef HAVE_MOLD allocate(x%v,stat=info, mold=psb_i_get_base_vect_default()) -#else - mld => psb_i_get_base_vect_default() - call mld%mold(x%v,info) -#endif endif if (info == psb_success_) call x%v%bld(n) @@ -294,6 +275,7 @@ contains res = 'NULL' if (allocated(x%v)) res = x%v%get_fmt() end function i_vect_get_fmt + subroutine i_vect_all(n, x, info, mold) implicit none @@ -306,11 +288,7 @@ contains & call x%free(info) if (present(mold)) then -#ifdef HAVE_MOLD allocate(x%v,stat=info,mold=mold) -#else - call mold%mold(x%v,info) -#endif else allocate(psb_i_base_vect_type :: x%v,stat=info) endif @@ -454,23 +432,14 @@ contains class(psb_i_vect_type), intent(inout) :: x class(psb_i_base_vect_type), intent(in), optional :: mold class(psb_i_base_vect_type), allocatable :: tmp - class(psb_i_base_vect_type), pointer :: mld + integer(psb_ipk_) :: info info = psb_success_ if (present(mold)) then -#ifdef HAVE_MOLD allocate(tmp,stat=info,mold=mold) -#else - call mold%mold(tmp,info) -#endif else -#ifdef HAVE_MOLD allocate(tmp,stat=info,mold=psb_i_get_base_vect_default()) -#else - mld => psb_i_get_base_vect_default() - call mld%mold(tmp,info) -#endif end if if (allocated(x%v)) then call x%v%sync() @@ -678,18 +647,9 @@ contains info = psb_success_ if (present(mold)) then -#ifdef HAVE_MOLD allocate(x%v,stat=info,mold=mold) -#else - call mold%mold(x%v,info) -#endif else -#ifdef HAVE_MOLD allocate(x%v,stat=info, mold=psb_i_get_base_multivect_default()) -#else - mld => psb_i_get_base_multivect_default() - call mld%mold(x%v,info) -#endif endif if (info == psb_success_) call x%v%bld(invect) @@ -702,22 +662,12 @@ contains class(psb_i_multivect_type), intent(out) :: x class(psb_i_base_multivect_type), intent(in), optional :: mold integer(psb_ipk_) :: info - class(psb_i_base_multivect_type), pointer :: mld info = psb_success_ if (present(mold)) then -#ifdef HAVE_MOLD allocate(x%v,stat=info,mold=mold) -#else - call mold%mold(x%v,info) -#endif else -#ifdef HAVE_MOLD allocate(x%v,stat=info, mold=psb_i_get_base_multivect_default()) -#else - mld => psb_i_get_base_multivect_default() - call mld%mold(x%v,info) -#endif endif if (info == psb_success_) call x%v%bld(m,n) @@ -814,11 +764,7 @@ contains integer(psb_ipk_), intent(out) :: info if (present(mold)) then -#ifdef HAVE_MOLD allocate(x%v,stat=info,mold=mold) -#else - call mold%mold(x%v,info) -#endif else allocate(psb_i_base_multivect_type :: x%v,stat=info) endif @@ -977,18 +923,16 @@ contains integer(psb_ipk_) :: info if (present(mold)) then -#ifdef HAVE_MOLD allocate(tmp,stat=info,mold=mold) -#else - call mold%mold(tmp,info) -#endif - if (allocated(x%v)) then - call x%v%sync() - if (info == psb_success_) call tmp%bld(x%v%v) - call x%v%free(info) - end if - call move_alloc(tmp,x%v) + else + allocate(tmp,stat=info, mold=psb_i_get_base_multivect_default()) + endif + if (allocated(x%v)) then + call x%v%sync() + if (info == psb_success_) call tmp%bld(x%v%v) + call x%v%free(info) end if + call move_alloc(tmp,x%v) end subroutine i_vect_cnv diff --git a/base/modules/serial/psb_mat_mod.f90 b/base/modules/serial/psb_mat_mod.f90 index 70c2e1aa..7e1d2a10 100644 --- a/base/modules/serial/psb_mat_mod.f90 +++ b/base/modules/serial/psb_mat_mod.f90 @@ -3,4 +3,24 @@ module psb_mat_mod use psb_d_mat_mod use psb_c_mat_mod use psb_z_mat_mod + +contains + + subroutine psb_init_mat_defaults() + implicit none + ! + ! Defaults for matrices + ! + type(psb_s_csr_sparse_mat) :: smatdef + type(psb_d_csr_sparse_mat) :: dmatdef + type(psb_c_csr_sparse_mat) :: cmatdef + type(psb_z_csr_sparse_mat) :: zmatdef + + call psb_set_mat_default(smatdef) + call psb_set_mat_default(dmatdef) + call psb_set_mat_default(cmatdef) + call psb_set_mat_default(zmatdef) + + end subroutine psb_init_mat_defaults + end module psb_mat_mod diff --git a/base/modules/serial/psb_s_vect_mod.F90 b/base/modules/serial/psb_s_vect_mod.F90 index 381ca3c8..30c51082 100644 --- a/base/modules/serial/psb_s_vect_mod.F90 +++ b/base/modules/serial/psb_s_vect_mod.F90 @@ -191,25 +191,15 @@ contains class(psb_s_vect_type), intent(inout) :: x class(psb_s_base_vect_type), intent(in), optional :: mold integer(psb_ipk_) :: info - class(psb_s_base_vect_type), pointer :: mld info = psb_success_ if (allocated(x%v)) & & call x%free(info) if (present(mold)) then -#ifdef HAVE_MOLD allocate(x%v,stat=info,mold=mold) -#else - call mold%mold(x%v,info) -#endif else -#ifdef HAVE_MOLD allocate(x%v,stat=info, mold=psb_s_get_base_vect_default()) -#else - mld => psb_s_get_base_vect_default() - call mld%mold(x%v,info) -#endif endif if (info == psb_success_) call x%v%bld(invect) @@ -229,18 +219,9 @@ contains & call x%free(info) if (present(mold)) then -#ifdef HAVE_MOLD allocate(x%v,stat=info,mold=mold) -#else - call mold%mold(x%v,info) -#endif else -#ifdef HAVE_MOLD allocate(x%v,stat=info, mold=psb_s_get_base_vect_default()) -#else - mld => psb_s_get_base_vect_default() - call mld%mold(x%v,info) -#endif endif if (info == psb_success_) call x%v%bld(n) @@ -321,6 +302,7 @@ contains res = 'NULL' if (allocated(x%v)) res = x%v%get_fmt() end function s_vect_get_fmt + subroutine s_vect_all(n, x, info, mold) implicit none @@ -333,11 +315,7 @@ contains & call x%free(info) if (present(mold)) then -#ifdef HAVE_MOLD allocate(x%v,stat=info,mold=mold) -#else - call mold%mold(x%v,info) -#endif else allocate(psb_s_base_vect_type :: x%v,stat=info) endif @@ -481,23 +459,14 @@ contains class(psb_s_vect_type), intent(inout) :: x class(psb_s_base_vect_type), intent(in), optional :: mold class(psb_s_base_vect_type), allocatable :: tmp - class(psb_s_base_vect_type), pointer :: mld + integer(psb_ipk_) :: info info = psb_success_ if (present(mold)) then -#ifdef HAVE_MOLD allocate(tmp,stat=info,mold=mold) -#else - call mold%mold(tmp,info) -#endif else -#ifdef HAVE_MOLD allocate(tmp,stat=info,mold=psb_s_get_base_vect_default()) -#else - mld => psb_s_get_base_vect_default() - call mld%mold(tmp,info) -#endif end if if (allocated(x%v)) then call x%v%sync() @@ -949,18 +918,9 @@ contains info = psb_success_ if (present(mold)) then -#ifdef HAVE_MOLD allocate(x%v,stat=info,mold=mold) -#else - call mold%mold(x%v,info) -#endif else -#ifdef HAVE_MOLD allocate(x%v,stat=info, mold=psb_s_get_base_multivect_default()) -#else - mld => psb_s_get_base_multivect_default() - call mld%mold(x%v,info) -#endif endif if (info == psb_success_) call x%v%bld(invect) @@ -973,22 +933,12 @@ contains class(psb_s_multivect_type), intent(out) :: x class(psb_s_base_multivect_type), intent(in), optional :: mold integer(psb_ipk_) :: info - class(psb_s_base_multivect_type), pointer :: mld info = psb_success_ if (present(mold)) then -#ifdef HAVE_MOLD allocate(x%v,stat=info,mold=mold) -#else - call mold%mold(x%v,info) -#endif else -#ifdef HAVE_MOLD allocate(x%v,stat=info, mold=psb_s_get_base_multivect_default()) -#else - mld => psb_s_get_base_multivect_default() - call mld%mold(x%v,info) -#endif endif if (info == psb_success_) call x%v%bld(m,n) @@ -1085,11 +1035,7 @@ contains integer(psb_ipk_), intent(out) :: info if (present(mold)) then -#ifdef HAVE_MOLD allocate(x%v,stat=info,mold=mold) -#else - call mold%mold(x%v,info) -#endif else allocate(psb_s_base_multivect_type :: x%v,stat=info) endif @@ -1248,18 +1194,16 @@ contains integer(psb_ipk_) :: info if (present(mold)) then -#ifdef HAVE_MOLD allocate(tmp,stat=info,mold=mold) -#else - call mold%mold(tmp,info) -#endif - if (allocated(x%v)) then - call x%v%sync() - if (info == psb_success_) call tmp%bld(x%v%v) - call x%v%free(info) - end if - call move_alloc(tmp,x%v) + else + allocate(tmp,stat=info, mold=psb_s_get_base_multivect_default()) + endif + if (allocated(x%v)) then + call x%v%sync() + if (info == psb_success_) call tmp%bld(x%v%v) + call x%v%free(info) end if + call move_alloc(tmp,x%v) end subroutine s_vect_cnv diff --git a/base/modules/serial/psb_vect_mod.f90 b/base/modules/serial/psb_vect_mod.f90 index 9d5bae6f..3c2b5a80 100644 --- a/base/modules/serial/psb_vect_mod.f90 +++ b/base/modules/serial/psb_vect_mod.f90 @@ -9,4 +9,27 @@ module psb_vect_mod use psb_d_multivect_mod use psb_c_multivect_mod use psb_z_multivect_mod + +contains + + subroutine psb_init_vect_defaults() + implicit none + ! + ! Defaults for vectors + ! + + type(psb_i_base_vect_type) :: ivetdef + type(psb_s_base_vect_type) :: svetdef + type(psb_d_base_vect_type) :: dvetdef + type(psb_c_base_vect_type) :: cvetdef + type(psb_z_base_vect_type) :: zvetdef + + call psb_set_vect_default(ivetdef) + call psb_set_vect_default(svetdef) + call psb_set_vect_default(dvetdef) + call psb_set_vect_default(cvetdef) + call psb_set_vect_default(zvetdef) + + end subroutine psb_init_vect_defaults + end module psb_vect_mod diff --git a/base/modules/serial/psb_z_vect_mod.F90 b/base/modules/serial/psb_z_vect_mod.F90 index 823ccf0c..e5b24540 100644 --- a/base/modules/serial/psb_z_vect_mod.F90 +++ b/base/modules/serial/psb_z_vect_mod.F90 @@ -191,25 +191,15 @@ contains class(psb_z_vect_type), intent(inout) :: x class(psb_z_base_vect_type), intent(in), optional :: mold integer(psb_ipk_) :: info - class(psb_z_base_vect_type), pointer :: mld info = psb_success_ if (allocated(x%v)) & & call x%free(info) if (present(mold)) then -#ifdef HAVE_MOLD allocate(x%v,stat=info,mold=mold) -#else - call mold%mold(x%v,info) -#endif else -#ifdef HAVE_MOLD allocate(x%v,stat=info, mold=psb_z_get_base_vect_default()) -#else - mld => psb_z_get_base_vect_default() - call mld%mold(x%v,info) -#endif endif if (info == psb_success_) call x%v%bld(invect) @@ -229,18 +219,9 @@ contains & call x%free(info) if (present(mold)) then -#ifdef HAVE_MOLD allocate(x%v,stat=info,mold=mold) -#else - call mold%mold(x%v,info) -#endif else -#ifdef HAVE_MOLD allocate(x%v,stat=info, mold=psb_z_get_base_vect_default()) -#else - mld => psb_z_get_base_vect_default() - call mld%mold(x%v,info) -#endif endif if (info == psb_success_) call x%v%bld(n) @@ -321,6 +302,7 @@ contains res = 'NULL' if (allocated(x%v)) res = x%v%get_fmt() end function z_vect_get_fmt + subroutine z_vect_all(n, x, info, mold) implicit none @@ -333,11 +315,7 @@ contains & call x%free(info) if (present(mold)) then -#ifdef HAVE_MOLD allocate(x%v,stat=info,mold=mold) -#else - call mold%mold(x%v,info) -#endif else allocate(psb_z_base_vect_type :: x%v,stat=info) endif @@ -481,23 +459,14 @@ contains class(psb_z_vect_type), intent(inout) :: x class(psb_z_base_vect_type), intent(in), optional :: mold class(psb_z_base_vect_type), allocatable :: tmp - class(psb_z_base_vect_type), pointer :: mld + integer(psb_ipk_) :: info info = psb_success_ if (present(mold)) then -#ifdef HAVE_MOLD allocate(tmp,stat=info,mold=mold) -#else - call mold%mold(tmp,info) -#endif else -#ifdef HAVE_MOLD allocate(tmp,stat=info,mold=psb_z_get_base_vect_default()) -#else - mld => psb_z_get_base_vect_default() - call mld%mold(tmp,info) -#endif end if if (allocated(x%v)) then call x%v%sync() @@ -949,18 +918,9 @@ contains info = psb_success_ if (present(mold)) then -#ifdef HAVE_MOLD allocate(x%v,stat=info,mold=mold) -#else - call mold%mold(x%v,info) -#endif else -#ifdef HAVE_MOLD allocate(x%v,stat=info, mold=psb_z_get_base_multivect_default()) -#else - mld => psb_z_get_base_multivect_default() - call mld%mold(x%v,info) -#endif endif if (info == psb_success_) call x%v%bld(invect) @@ -973,22 +933,12 @@ contains class(psb_z_multivect_type), intent(out) :: x class(psb_z_base_multivect_type), intent(in), optional :: mold integer(psb_ipk_) :: info - class(psb_z_base_multivect_type), pointer :: mld info = psb_success_ if (present(mold)) then -#ifdef HAVE_MOLD allocate(x%v,stat=info,mold=mold) -#else - call mold%mold(x%v,info) -#endif else -#ifdef HAVE_MOLD allocate(x%v,stat=info, mold=psb_z_get_base_multivect_default()) -#else - mld => psb_z_get_base_multivect_default() - call mld%mold(x%v,info) -#endif endif if (info == psb_success_) call x%v%bld(m,n) @@ -1085,11 +1035,7 @@ contains integer(psb_ipk_), intent(out) :: info if (present(mold)) then -#ifdef HAVE_MOLD allocate(x%v,stat=info,mold=mold) -#else - call mold%mold(x%v,info) -#endif else allocate(psb_z_base_multivect_type :: x%v,stat=info) endif @@ -1248,18 +1194,16 @@ contains integer(psb_ipk_) :: info if (present(mold)) then -#ifdef HAVE_MOLD allocate(tmp,stat=info,mold=mold) -#else - call mold%mold(tmp,info) -#endif - if (allocated(x%v)) then - call x%v%sync() - if (info == psb_success_) call tmp%bld(x%v%v) - call x%v%free(info) - end if - call move_alloc(tmp,x%v) + else + allocate(tmp,stat=info, mold=psb_z_get_base_multivect_default()) + endif + if (allocated(x%v)) then + call x%v%sync() + if (info == psb_success_) call tmp%bld(x%v%v) + call x%v%free(info) end if + call move_alloc(tmp,x%v) end subroutine z_vect_cnv diff --git a/base/serial/impl/psb_c_base_mat_impl.F90 b/base/serial/impl/psb_c_base_mat_impl.F90 index 31a0b509..954e2143 100644 --- a/base/serial/impl/psb_c_base_mat_impl.F90 +++ b/base/serial/impl/psb_c_base_mat_impl.F90 @@ -942,6 +942,7 @@ subroutine psb_c_base_clone(a,b,info) class(psb_c_base_sparse_mat), allocatable, intent(inout) :: b integer(psb_ipk_), intent(out) :: info + info = 0 if (allocated(b)) then call b%free() deallocate(b, stat=info) @@ -953,12 +954,8 @@ subroutine psb_c_base_clone(a,b,info) ! Do not use SOURCE allocation: this makes sure that ! memory allocated elsewhere is treated properly. -#if defined(HAVE_MOLD) allocate(b,mold=a,stat=info) if (info /= psb_success_) info = psb_err_alloc_dealloc_ -#else - call a%mold(b,info) -#endif if (info == psb_success_) call b%cp_from_fmt(a, info) end subroutine psb_c_base_clone @@ -1954,11 +1951,7 @@ subroutine psb_c_base_vect_cssv(alpha,a,x,beta,y,info,trans,scale,d) call psb_errpush(info,name,i_err=ierr) goto 9999 end if -#ifdef HAVE_MOLD allocate(tmpv, mold=y,stat=info) -#else - call y%mold(tmpv,info) -#endif if (info /= psb_success_) info = psb_err_alloc_dealloc_ if (info == psb_success_) call tmpv%mlt(cone,d%v(1:nac),x,czero,info) if (info == psb_success_)& @@ -1983,11 +1976,7 @@ subroutine psb_c_base_vect_cssv(alpha,a,x,beta,y,info,trans,scale,d) if (info == psb_success_) call y%mlt(d%v(1:nar),info) else -#ifdef HAVE_MOLD allocate(tmpv, mold=y,stat=info) -#else - call y%mold(tmpv,info) -#endif if (info /= psb_success_) info = psb_err_alloc_dealloc_ if (info == psb_success_)& & call a%inner_spsm(alpha,x,czero,tmpv,info,trans) diff --git a/base/serial/impl/psb_c_mat_impl.F90 b/base/serial/impl/psb_c_mat_impl.F90 index 8b233647..4fb59411 100644 --- a/base/serial/impl/psb_c_mat_impl.F90 +++ b/base/serial/impl/psb_c_mat_impl.F90 @@ -1133,7 +1133,6 @@ subroutine psb_c_cscnv(a,b,info,type,mold,upd,dupl) class(psb_c_base_sparse_mat), allocatable :: altmp - class(psb_c_base_sparse_mat), pointer :: mld integer(psb_ipk_) :: err_act character(len=20) :: name='cscnv' logical, parameter :: debug=.false. @@ -1155,11 +1154,7 @@ subroutine psb_c_cscnv(a,b,info,type,mold,upd,dupl) if (present(mold)) then -#if defined(HAVE_MOLD) allocate(altmp, mold=mold,stat=info) -#else - call mold%mold(altmp,info) -#endif else if (present(type)) then @@ -1176,12 +1171,7 @@ subroutine psb_c_cscnv(a,b,info,type,mold,upd,dupl) goto 9999 end select else -#if defined(HAVE_MOLD) allocate(altmp, mold=psb_get_mat_default(a),stat=info) -#else - mld => psb_get_mat_default(a) - call mld%mold(altmp,info) -#endif end if if (info /= psb_success_) then @@ -1238,7 +1228,6 @@ subroutine psb_c_cscnv_ip(a,info,type,mold,dupl) class(psb_c_base_sparse_mat), allocatable :: altmp - class(psb_c_base_sparse_mat), pointer :: mld integer(psb_ipk_) :: err_act character(len=20) :: name='cscnv_ip' logical, parameter :: debug=.false. @@ -1266,11 +1255,7 @@ subroutine psb_c_cscnv_ip(a,info,type,mold,dupl) if (present(mold)) then -#if defined(HAVE_MOLD) allocate(altmp, mold=mold,stat=info) -#else - call mold%mold(altmp,info) -#endif else if (present(type)) then @@ -1287,12 +1272,7 @@ subroutine psb_c_cscnv_ip(a,info,type,mold,dupl) goto 9999 end select else -#if defined(HAVE_MOLD) allocate(altmp, mold=psb_get_mat_default(a),stat=info) -#else - mld => psb_get_mat_default(a) - call mld%mold(altmp,info) -#endif end if if (info /= psb_success_) then @@ -1507,11 +1487,7 @@ subroutine psb_c_mv_from(a,b) integer(psb_ipk_) :: info call a%free() -#if defined(HAVE_MOLD) allocate(a%a,mold=b, stat=info) -#else - call b%mold(a%a,info) -#endif call a%a%mv_from_fmt(b,info) call b%free() @@ -1539,11 +1515,7 @@ subroutine psb_c_cp_from(a,b) ! however this would run the risk of messing up with data ! allocated externally (e.g. GPU-side data). ! -#if defined(HAVE_MOLD) allocate(a%a,mold=b,stat=info) -#else - call b%mold(a%a,info) -#endif if (info /= psb_success_) info = psb_err_alloc_dealloc_ if (info == psb_success_) call a%a%cp_from_fmt(b, info) if (info /= psb_success_) goto 9999 @@ -1592,11 +1564,8 @@ subroutine psb_c_mold(a,b) class(psb_cspmat_type), intent(inout) :: a class(psb_c_base_sparse_mat), allocatable, intent(out) :: b integer(psb_ipk_) :: info -#if defined(HAVE_MOLD) + allocate(b,mold=a%a, stat=info) -#else - call a%a%mold(b,info) -#endif end subroutine psb_c_mold @@ -1706,11 +1675,7 @@ subroutine psb_c_transp_2mat(a,b) goto 9999 endif call b%free() -#if defined(HAVE_MOLD) allocate(b%a,mold=a%a,stat=info) -#else - call a%a%mold(b%a,info) -#endif if (info /= psb_success_) then info = psb_err_alloc_dealloc_ goto 9999 @@ -1781,11 +1746,7 @@ subroutine psb_c_transc_2mat(a,b) goto 9999 endif call b%free() -#if defined(HAVE_MOLD) allocate(b%a,mold=a%a,stat=info) -#else - call a%a%mold(b%a,info) -#endif if (info /= psb_success_) then info = psb_err_alloc_dealloc_ goto 9999 diff --git a/base/serial/impl/psb_d_base_mat_impl.F90 b/base/serial/impl/psb_d_base_mat_impl.F90 index 271acb61..41270028 100644 --- a/base/serial/impl/psb_d_base_mat_impl.F90 +++ b/base/serial/impl/psb_d_base_mat_impl.F90 @@ -942,6 +942,7 @@ subroutine psb_d_base_clone(a,b,info) class(psb_d_base_sparse_mat), allocatable, intent(inout) :: b integer(psb_ipk_), intent(out) :: info + info = 0 if (allocated(b)) then call b%free() deallocate(b, stat=info) @@ -953,12 +954,8 @@ subroutine psb_d_base_clone(a,b,info) ! Do not use SOURCE allocation: this makes sure that ! memory allocated elsewhere is treated properly. -#if defined(HAVE_MOLD) allocate(b,mold=a,stat=info) if (info /= psb_success_) info = psb_err_alloc_dealloc_ -#else - call a%mold(b,info) -#endif if (info == psb_success_) call b%cp_from_fmt(a, info) end subroutine psb_d_base_clone @@ -1954,11 +1951,7 @@ subroutine psb_d_base_vect_cssv(alpha,a,x,beta,y,info,trans,scale,d) call psb_errpush(info,name,i_err=ierr) goto 9999 end if -#ifdef HAVE_MOLD allocate(tmpv, mold=y,stat=info) -#else - call y%mold(tmpv,info) -#endif if (info /= psb_success_) info = psb_err_alloc_dealloc_ if (info == psb_success_) call tmpv%mlt(done,d%v(1:nac),x,dzero,info) if (info == psb_success_)& @@ -1983,11 +1976,7 @@ subroutine psb_d_base_vect_cssv(alpha,a,x,beta,y,info,trans,scale,d) if (info == psb_success_) call y%mlt(d%v(1:nar),info) else -#ifdef HAVE_MOLD allocate(tmpv, mold=y,stat=info) -#else - call y%mold(tmpv,info) -#endif if (info /= psb_success_) info = psb_err_alloc_dealloc_ if (info == psb_success_)& & call a%inner_spsm(alpha,x,dzero,tmpv,info,trans) diff --git a/base/serial/impl/psb_d_mat_impl.F90 b/base/serial/impl/psb_d_mat_impl.F90 index 7ae42421..3628635e 100644 --- a/base/serial/impl/psb_d_mat_impl.F90 +++ b/base/serial/impl/psb_d_mat_impl.F90 @@ -1133,7 +1133,6 @@ subroutine psb_d_cscnv(a,b,info,type,mold,upd,dupl) class(psb_d_base_sparse_mat), allocatable :: altmp - class(psb_d_base_sparse_mat), pointer :: mld integer(psb_ipk_) :: err_act character(len=20) :: name='cscnv' logical, parameter :: debug=.false. @@ -1155,11 +1154,7 @@ subroutine psb_d_cscnv(a,b,info,type,mold,upd,dupl) if (present(mold)) then -#if defined(HAVE_MOLD) allocate(altmp, mold=mold,stat=info) -#else - call mold%mold(altmp,info) -#endif else if (present(type)) then @@ -1176,12 +1171,7 @@ subroutine psb_d_cscnv(a,b,info,type,mold,upd,dupl) goto 9999 end select else -#if defined(HAVE_MOLD) allocate(altmp, mold=psb_get_mat_default(a),stat=info) -#else - mld => psb_get_mat_default(a) - call mld%mold(altmp,info) -#endif end if if (info /= psb_success_) then @@ -1238,7 +1228,6 @@ subroutine psb_d_cscnv_ip(a,info,type,mold,dupl) class(psb_d_base_sparse_mat), allocatable :: altmp - class(psb_d_base_sparse_mat), pointer :: mld integer(psb_ipk_) :: err_act character(len=20) :: name='cscnv_ip' logical, parameter :: debug=.false. @@ -1266,11 +1255,7 @@ subroutine psb_d_cscnv_ip(a,info,type,mold,dupl) if (present(mold)) then -#if defined(HAVE_MOLD) allocate(altmp, mold=mold,stat=info) -#else - call mold%mold(altmp,info) -#endif else if (present(type)) then @@ -1287,12 +1272,7 @@ subroutine psb_d_cscnv_ip(a,info,type,mold,dupl) goto 9999 end select else -#if defined(HAVE_MOLD) allocate(altmp, mold=psb_get_mat_default(a),stat=info) -#else - mld => psb_get_mat_default(a) - call mld%mold(altmp,info) -#endif end if if (info /= psb_success_) then @@ -1507,11 +1487,7 @@ subroutine psb_d_mv_from(a,b) integer(psb_ipk_) :: info call a%free() -#if defined(HAVE_MOLD) allocate(a%a,mold=b, stat=info) -#else - call b%mold(a%a,info) -#endif call a%a%mv_from_fmt(b,info) call b%free() @@ -1539,11 +1515,7 @@ subroutine psb_d_cp_from(a,b) ! however this would run the risk of messing up with data ! allocated externally (e.g. GPU-side data). ! -#if defined(HAVE_MOLD) allocate(a%a,mold=b,stat=info) -#else - call b%mold(a%a,info) -#endif if (info /= psb_success_) info = psb_err_alloc_dealloc_ if (info == psb_success_) call a%a%cp_from_fmt(b, info) if (info /= psb_success_) goto 9999 @@ -1592,11 +1564,8 @@ subroutine psb_d_mold(a,b) class(psb_dspmat_type), intent(inout) :: a class(psb_d_base_sparse_mat), allocatable, intent(out) :: b integer(psb_ipk_) :: info -#if defined(HAVE_MOLD) + allocate(b,mold=a%a, stat=info) -#else - call a%a%mold(b,info) -#endif end subroutine psb_d_mold @@ -1706,11 +1675,7 @@ subroutine psb_d_transp_2mat(a,b) goto 9999 endif call b%free() -#if defined(HAVE_MOLD) allocate(b%a,mold=a%a,stat=info) -#else - call a%a%mold(b%a,info) -#endif if (info /= psb_success_) then info = psb_err_alloc_dealloc_ goto 9999 @@ -1781,11 +1746,7 @@ subroutine psb_d_transc_2mat(a,b) goto 9999 endif call b%free() -#if defined(HAVE_MOLD) allocate(b%a,mold=a%a,stat=info) -#else - call a%a%mold(b%a,info) -#endif if (info /= psb_success_) then info = psb_err_alloc_dealloc_ goto 9999 diff --git a/base/serial/impl/psb_s_base_mat_impl.F90 b/base/serial/impl/psb_s_base_mat_impl.F90 index 380d50f5..3bc62e0c 100644 --- a/base/serial/impl/psb_s_base_mat_impl.F90 +++ b/base/serial/impl/psb_s_base_mat_impl.F90 @@ -942,6 +942,7 @@ subroutine psb_s_base_clone(a,b,info) class(psb_s_base_sparse_mat), allocatable, intent(inout) :: b integer(psb_ipk_), intent(out) :: info + info = 0 if (allocated(b)) then call b%free() deallocate(b, stat=info) @@ -953,12 +954,8 @@ subroutine psb_s_base_clone(a,b,info) ! Do not use SOURCE allocation: this makes sure that ! memory allocated elsewhere is treated properly. -#if defined(HAVE_MOLD) allocate(b,mold=a,stat=info) if (info /= psb_success_) info = psb_err_alloc_dealloc_ -#else - call a%mold(b,info) -#endif if (info == psb_success_) call b%cp_from_fmt(a, info) end subroutine psb_s_base_clone @@ -1954,11 +1951,7 @@ subroutine psb_s_base_vect_cssv(alpha,a,x,beta,y,info,trans,scale,d) call psb_errpush(info,name,i_err=ierr) goto 9999 end if -#ifdef HAVE_MOLD allocate(tmpv, mold=y,stat=info) -#else - call y%mold(tmpv,info) -#endif if (info /= psb_success_) info = psb_err_alloc_dealloc_ if (info == psb_success_) call tmpv%mlt(sone,d%v(1:nac),x,szero,info) if (info == psb_success_)& @@ -1983,11 +1976,7 @@ subroutine psb_s_base_vect_cssv(alpha,a,x,beta,y,info,trans,scale,d) if (info == psb_success_) call y%mlt(d%v(1:nar),info) else -#ifdef HAVE_MOLD allocate(tmpv, mold=y,stat=info) -#else - call y%mold(tmpv,info) -#endif if (info /= psb_success_) info = psb_err_alloc_dealloc_ if (info == psb_success_)& & call a%inner_spsm(alpha,x,szero,tmpv,info,trans) diff --git a/base/serial/impl/psb_s_mat_impl.F90 b/base/serial/impl/psb_s_mat_impl.F90 index 50d43b1e..2f14018c 100644 --- a/base/serial/impl/psb_s_mat_impl.F90 +++ b/base/serial/impl/psb_s_mat_impl.F90 @@ -1133,7 +1133,6 @@ subroutine psb_s_cscnv(a,b,info,type,mold,upd,dupl) class(psb_s_base_sparse_mat), allocatable :: altmp - class(psb_s_base_sparse_mat), pointer :: mld integer(psb_ipk_) :: err_act character(len=20) :: name='cscnv' logical, parameter :: debug=.false. @@ -1155,11 +1154,7 @@ subroutine psb_s_cscnv(a,b,info,type,mold,upd,dupl) if (present(mold)) then -#if defined(HAVE_MOLD) allocate(altmp, mold=mold,stat=info) -#else - call mold%mold(altmp,info) -#endif else if (present(type)) then @@ -1176,12 +1171,7 @@ subroutine psb_s_cscnv(a,b,info,type,mold,upd,dupl) goto 9999 end select else -#if defined(HAVE_MOLD) allocate(altmp, mold=psb_get_mat_default(a),stat=info) -#else - mld => psb_get_mat_default(a) - call mld%mold(altmp,info) -#endif end if if (info /= psb_success_) then @@ -1238,7 +1228,6 @@ subroutine psb_s_cscnv_ip(a,info,type,mold,dupl) class(psb_s_base_sparse_mat), allocatable :: altmp - class(psb_s_base_sparse_mat), pointer :: mld integer(psb_ipk_) :: err_act character(len=20) :: name='cscnv_ip' logical, parameter :: debug=.false. @@ -1266,11 +1255,7 @@ subroutine psb_s_cscnv_ip(a,info,type,mold,dupl) if (present(mold)) then -#if defined(HAVE_MOLD) allocate(altmp, mold=mold,stat=info) -#else - call mold%mold(altmp,info) -#endif else if (present(type)) then @@ -1287,12 +1272,7 @@ subroutine psb_s_cscnv_ip(a,info,type,mold,dupl) goto 9999 end select else -#if defined(HAVE_MOLD) allocate(altmp, mold=psb_get_mat_default(a),stat=info) -#else - mld => psb_get_mat_default(a) - call mld%mold(altmp,info) -#endif end if if (info /= psb_success_) then @@ -1507,11 +1487,7 @@ subroutine psb_s_mv_from(a,b) integer(psb_ipk_) :: info call a%free() -#if defined(HAVE_MOLD) allocate(a%a,mold=b, stat=info) -#else - call b%mold(a%a,info) -#endif call a%a%mv_from_fmt(b,info) call b%free() @@ -1539,11 +1515,7 @@ subroutine psb_s_cp_from(a,b) ! however this would run the risk of messing up with data ! allocated externally (e.g. GPU-side data). ! -#if defined(HAVE_MOLD) allocate(a%a,mold=b,stat=info) -#else - call b%mold(a%a,info) -#endif if (info /= psb_success_) info = psb_err_alloc_dealloc_ if (info == psb_success_) call a%a%cp_from_fmt(b, info) if (info /= psb_success_) goto 9999 @@ -1592,11 +1564,8 @@ subroutine psb_s_mold(a,b) class(psb_sspmat_type), intent(inout) :: a class(psb_s_base_sparse_mat), allocatable, intent(out) :: b integer(psb_ipk_) :: info -#if defined(HAVE_MOLD) + allocate(b,mold=a%a, stat=info) -#else - call a%a%mold(b,info) -#endif end subroutine psb_s_mold @@ -1706,11 +1675,7 @@ subroutine psb_s_transp_2mat(a,b) goto 9999 endif call b%free() -#if defined(HAVE_MOLD) allocate(b%a,mold=a%a,stat=info) -#else - call a%a%mold(b%a,info) -#endif if (info /= psb_success_) then info = psb_err_alloc_dealloc_ goto 9999 @@ -1781,11 +1746,7 @@ subroutine psb_s_transc_2mat(a,b) goto 9999 endif call b%free() -#if defined(HAVE_MOLD) allocate(b%a,mold=a%a,stat=info) -#else - call a%a%mold(b%a,info) -#endif if (info /= psb_success_) then info = psb_err_alloc_dealloc_ goto 9999 diff --git a/base/serial/impl/psb_z_base_mat_impl.F90 b/base/serial/impl/psb_z_base_mat_impl.F90 index b79a2344..dfa39b8d 100644 --- a/base/serial/impl/psb_z_base_mat_impl.F90 +++ b/base/serial/impl/psb_z_base_mat_impl.F90 @@ -942,6 +942,7 @@ subroutine psb_z_base_clone(a,b,info) class(psb_z_base_sparse_mat), allocatable, intent(inout) :: b integer(psb_ipk_), intent(out) :: info + info = 0 if (allocated(b)) then call b%free() deallocate(b, stat=info) @@ -953,12 +954,8 @@ subroutine psb_z_base_clone(a,b,info) ! Do not use SOURCE allocation: this makes sure that ! memory allocated elsewhere is treated properly. -#if defined(HAVE_MOLD) allocate(b,mold=a,stat=info) if (info /= psb_success_) info = psb_err_alloc_dealloc_ -#else - call a%mold(b,info) -#endif if (info == psb_success_) call b%cp_from_fmt(a, info) end subroutine psb_z_base_clone @@ -1954,11 +1951,7 @@ subroutine psb_z_base_vect_cssv(alpha,a,x,beta,y,info,trans,scale,d) call psb_errpush(info,name,i_err=ierr) goto 9999 end if -#ifdef HAVE_MOLD allocate(tmpv, mold=y,stat=info) -#else - call y%mold(tmpv,info) -#endif if (info /= psb_success_) info = psb_err_alloc_dealloc_ if (info == psb_success_) call tmpv%mlt(zone,d%v(1:nac),x,zzero,info) if (info == psb_success_)& @@ -1983,11 +1976,7 @@ subroutine psb_z_base_vect_cssv(alpha,a,x,beta,y,info,trans,scale,d) if (info == psb_success_) call y%mlt(d%v(1:nar),info) else -#ifdef HAVE_MOLD allocate(tmpv, mold=y,stat=info) -#else - call y%mold(tmpv,info) -#endif if (info /= psb_success_) info = psb_err_alloc_dealloc_ if (info == psb_success_)& & call a%inner_spsm(alpha,x,zzero,tmpv,info,trans) diff --git a/base/serial/impl/psb_z_mat_impl.F90 b/base/serial/impl/psb_z_mat_impl.F90 index 40b8e0dc..15df2efa 100644 --- a/base/serial/impl/psb_z_mat_impl.F90 +++ b/base/serial/impl/psb_z_mat_impl.F90 @@ -1133,7 +1133,6 @@ subroutine psb_z_cscnv(a,b,info,type,mold,upd,dupl) class(psb_z_base_sparse_mat), allocatable :: altmp - class(psb_z_base_sparse_mat), pointer :: mld integer(psb_ipk_) :: err_act character(len=20) :: name='cscnv' logical, parameter :: debug=.false. @@ -1155,11 +1154,7 @@ subroutine psb_z_cscnv(a,b,info,type,mold,upd,dupl) if (present(mold)) then -#if defined(HAVE_MOLD) allocate(altmp, mold=mold,stat=info) -#else - call mold%mold(altmp,info) -#endif else if (present(type)) then @@ -1176,12 +1171,7 @@ subroutine psb_z_cscnv(a,b,info,type,mold,upd,dupl) goto 9999 end select else -#if defined(HAVE_MOLD) allocate(altmp, mold=psb_get_mat_default(a),stat=info) -#else - mld => psb_get_mat_default(a) - call mld%mold(altmp,info) -#endif end if if (info /= psb_success_) then @@ -1238,7 +1228,6 @@ subroutine psb_z_cscnv_ip(a,info,type,mold,dupl) class(psb_z_base_sparse_mat), allocatable :: altmp - class(psb_z_base_sparse_mat), pointer :: mld integer(psb_ipk_) :: err_act character(len=20) :: name='cscnv_ip' logical, parameter :: debug=.false. @@ -1266,11 +1255,7 @@ subroutine psb_z_cscnv_ip(a,info,type,mold,dupl) if (present(mold)) then -#if defined(HAVE_MOLD) allocate(altmp, mold=mold,stat=info) -#else - call mold%mold(altmp,info) -#endif else if (present(type)) then @@ -1287,12 +1272,7 @@ subroutine psb_z_cscnv_ip(a,info,type,mold,dupl) goto 9999 end select else -#if defined(HAVE_MOLD) allocate(altmp, mold=psb_get_mat_default(a),stat=info) -#else - mld => psb_get_mat_default(a) - call mld%mold(altmp,info) -#endif end if if (info /= psb_success_) then @@ -1507,11 +1487,7 @@ subroutine psb_z_mv_from(a,b) integer(psb_ipk_) :: info call a%free() -#if defined(HAVE_MOLD) allocate(a%a,mold=b, stat=info) -#else - call b%mold(a%a,info) -#endif call a%a%mv_from_fmt(b,info) call b%free() @@ -1539,11 +1515,7 @@ subroutine psb_z_cp_from(a,b) ! however this would run the risk of messing up with data ! allocated externally (e.g. GPU-side data). ! -#if defined(HAVE_MOLD) allocate(a%a,mold=b,stat=info) -#else - call b%mold(a%a,info) -#endif if (info /= psb_success_) info = psb_err_alloc_dealloc_ if (info == psb_success_) call a%a%cp_from_fmt(b, info) if (info /= psb_success_) goto 9999 @@ -1592,11 +1564,8 @@ subroutine psb_z_mold(a,b) class(psb_zspmat_type), intent(inout) :: a class(psb_z_base_sparse_mat), allocatable, intent(out) :: b integer(psb_ipk_) :: info -#if defined(HAVE_MOLD) + allocate(b,mold=a%a, stat=info) -#else - call a%a%mold(b,info) -#endif end subroutine psb_z_mold @@ -1706,11 +1675,7 @@ subroutine psb_z_transp_2mat(a,b) goto 9999 endif call b%free() -#if defined(HAVE_MOLD) allocate(b%a,mold=a%a,stat=info) -#else - call a%a%mold(b%a,info) -#endif if (info /= psb_success_) then info = psb_err_alloc_dealloc_ goto 9999 @@ -1781,11 +1746,7 @@ subroutine psb_z_transc_2mat(a,b) goto 9999 endif call b%free() -#if defined(HAVE_MOLD) allocate(b%a,mold=a%a,stat=info) -#else - call a%a%mold(b%a,info) -#endif if (info /= psb_success_) then info = psb_err_alloc_dealloc_ goto 9999 diff --git a/configure b/configure index b32d4a37..d199bd3d 100755 --- a/configure +++ b/configure @@ -7174,35 +7174,44 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu -# -# Optional features -# - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking support for Fortran VOLATILE" >&5 -$as_echo_n "checking support for Fortran VOLATILE... " >&6; } +{ $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' 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_exeext='' - ac_ext='F90' + ac_ext='f90' ac_fc=${MPIFC-$FC}; cat > conftest.$ac_ext <<_ACEOF -program conftest - integer, volatile :: i, j -end program conftest +program stt + type foo + integer :: i + end type foo + type, extends(foo) :: new_foo + integer :: j + end type new_foo + type(foo) :: foov + type(new_foo) :: nfv1, nfv2 + + + write(*,*) 'foov == nfv1? ', same_type_as(foov,nfv1) + write(*,*) 'nfv2 == nfv1? ', same_type_as(nfv2,nfv1) +end program stt _ACEOF 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:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } echo "configure: failed program was:" >&5 cat conftest.$ac_ext >&5 + as_fn_error $? "Sorry, cannot build PSBLAS without support for SAME_TYPE_AS. + 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 @@ -7214,31 +7223,30 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu -{ $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} +{ $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' 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_exeext='' - ac_ext='F90' + ac_ext='f90' ac_fc=${MPIFC-$FC}; 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 +program xtt + type foo + integer :: i + end type foo + type, extends(foo) :: new_foo + integer :: j + end type new_foo + type(foo) :: foov + type(new_foo) :: nfv1, nfv2 -end module conftest + write(*,*) 'nfv1 extends foov? ', extends_type_of(nfv1,foov) +end program xtt _ACEOF if ac_fn_fc_try_compile "$LINENO"; then : { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 @@ -7249,7 +7257,8 @@ else $as_echo "no" >&6; } echo "configure: failed program was:" >&5 cat conftest.$ac_ext >&5 - FDEFINES="$psblas_cv_define_prepend-DHAVE_BUGGY_GENERICS $FDEFINES" + as_fn_error $? "Sorry, cannot build PSBLAS without support for EXTENDS_TYPE_OF. + 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 @@ -7261,8 +7270,8 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking support for Fortran FLUSH statement" >&5 -$as_echo_n "checking support for Fortran FLUSH statement... " >&6; } +{ $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' ac_link='$FC -o conftest$ac_exeext $FCFLAGS $LDFLAGS $ac_fcflags_srcext conftest.$ac_ext $LIBS >&5' @@ -7273,23 +7282,32 @@ ac_compiler_gnu=$ac_cv_fc_compiler_gnu ac_fc=${MPIFC-$FC}; cat > conftest.$ac_ext <<_ACEOF -program conftest - integer :: iunit=10 - open(10) - write(10,*) 'Test ' - flush(10) - close(10) -end program conftest +program xtt + type foo + integer :: i + end type foo + type, extends(foo) :: new_foo + integer :: j + end type new_foo + class(foo), allocatable :: fooab + type(new_foo) :: nfv + integer :: info + + allocate(fooab, mold=nfv, stat=info) + +end program xtt _ACEOF 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:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } echo "configure: failed program was:" >&5 cat conftest.$ac_ext >&5 + as_fn_error $? "Sorry, cannot build PSBLAS without support for MOLD= 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 @@ -7301,26 +7319,30 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking support for ISO_FORTRAN_ENV" >&5 -$as_echo_n "checking support for ISO_FORTRAN_ENV... " >&6; } +# +# Optional features +# + +{ $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' 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_exeext='' - ac_ext='f90' + ac_ext='F90' ac_fc=${MPIFC-$FC}; cat > conftest.$ac_ext <<_ACEOF - program test - use iso_fortran_env - end program test +program conftest + integer, volatile :: i, j +end program conftest _ACEOF 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" + FDEFINES="$psblas_cv_define_prepend-DHAVE_VOLATILE $FDEFINES" else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } @@ -7337,46 +7359,42 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu -{ $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} +{ $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' 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_exeext='' - ac_ext='f90' + ac_ext='F90' ac_fc=${MPIFC-$FC}; cat > conftest.$ac_ext <<_ACEOF -module conftest_mod - type foo - integer :: i - contains - final :: destroy_foo - end type foo +module conftest - private destroy_foo -contains - subroutine destroy_foo(a) - type(foo) :: a - ! Just a test - end subroutine destroy_foo -end module conftest_mod -program conftest - use conftest_mod - type(foo) :: foovar -end program 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 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:${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 @@ -7388,8 +7406,8 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu -{ $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; } +{ $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' ac_link='$FC -o conftest$ac_exeext $FCFLAGS $LDFLAGS $ac_fcflags_srcext conftest.$ac_ext $LIBS >&5' @@ -7400,25 +7418,18 @@ ac_compiler_gnu=$ac_cv_fc_compiler_gnu ac_fc=${MPIFC-$FC}; cat > conftest.$ac_ext <<_ACEOF -program stt - type foo - integer :: i - end type foo - type, extends(foo) :: new_foo - integer :: j - end type new_foo - type(foo) :: foov - type(new_foo) :: nfv1, nfv2 - - - write(*,*) 'foov == nfv1? ', same_type_as(foov,nfv1) - write(*,*) 'nfv2 == nfv1? ', same_type_as(nfv2,nfv1) -end program stt +program conftest + integer :: iunit=10 + open(10) + write(10,*) 'Test ' + flush(10) + close(10) +end program conftest _ACEOF 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" + FDEFINES="$psblas_cv_define_prepend-DHAVE_FLUSH_STMT $FDEFINES" else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } @@ -7435,8 +7446,8 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu -{ $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; } +{ $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' ac_link='$FC -o conftest$ac_exeext $FCFLAGS $LDFLAGS $ac_fcflags_srcext conftest.$ac_ext $LIBS >&5' @@ -7447,23 +7458,14 @@ ac_compiler_gnu=$ac_cv_fc_compiler_gnu ac_fc=${MPIFC-$FC}; cat > conftest.$ac_ext <<_ACEOF -program xtt - type foo - integer :: i - end type foo - type, extends(foo) :: new_foo - integer :: j - end type new_foo - type(foo) :: foov - type(new_foo) :: nfv1, nfv2 - - write(*,*) 'nfv1 extends foov? ', extends_type_of(nfv1,foov) -end program xtt + program test + use iso_fortran_env + end program test _ACEOF 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" + FDEFINES="$psblas_cv_define_prepend-DHAVE_ISO_FORTRAN_ENV $FDEFINES" else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } @@ -7480,8 +7482,8 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking support for Fortran MOLD= allocation" >&5 -$as_echo_n "checking support for Fortran MOLD= allocation... " >&6; } +{ $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' ac_link='$FC -o conftest$ac_exeext $FCFLAGS $LDFLAGS $ac_fcflags_srcext conftest.$ac_ext $LIBS >&5' @@ -7492,25 +7494,29 @@ ac_compiler_gnu=$ac_cv_fc_compiler_gnu ac_fc=${MPIFC-$FC}; cat > conftest.$ac_ext <<_ACEOF -program xtt +module conftest_mod type foo integer :: i + contains + final :: destroy_foo end type foo - type, extends(foo) :: new_foo - integer :: j - end type new_foo - class(foo), allocatable :: fooab - type(new_foo) :: nfv - integer :: info - - allocate(fooab, mold=nfv, stat=info) -end program xtt + private destroy_foo +contains + subroutine destroy_foo(a) + type(foo) :: a + ! Just a test + end subroutine destroy_foo +end module conftest_mod +program conftest + use conftest_mod + type(foo) :: foovar +end program conftest _ACEOF 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" + FDEFINES="$psblas_cv_define_prepend-DHAVE_FINAL $FDEFINES" else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } @@ -7527,6 +7533,7 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu + ############################################################################### # Additional pathname stuff (yes, it is redundant and confusing...) ############################################################################### diff --git a/configure.ac b/configure.ac index 238d4f8b..aac56cea 100755 --- a/configure.ac +++ b/configure.ac @@ -529,6 +529,24 @@ PAC_FORTRAN_TEST_ISO_C_BIND( Please get a Fortran compiler that supports it, e.g. GNU Fortran 4.8.])] ) +PAC_FORTRAN_TEST_SAME_TYPE( + [], + [AC_MSG_ERROR([Sorry, cannot build PSBLAS without support for SAME_TYPE_AS. + Please get a Fortran compiler that supports it, e.g. GNU Fortran 4.8.])] +) + +PAC_FORTRAN_TEST_EXTENDS_TYPE( + [], + [AC_MSG_ERROR([Sorry, cannot build PSBLAS without support for EXTENDS_TYPE_OF. + Please get a Fortran compiler that supports it, e.g. GNU Fortran 4.8.])] +) + +PAC_FORTRAN_TEST_MOLD( + [], + [AC_MSG_ERROR([Sorry, cannot build PSBLAS without support for MOLD= allocation. + Please get a Fortran compiler that supports it, e.g. GNU Fortran 4.8.])] +) + # # Optional features # @@ -554,17 +572,6 @@ PAC_FORTRAN_TEST_FINAL( [FDEFINES="$psblas_cv_define_prepend-DHAVE_FINAL $FDEFINES"], ) -PAC_FORTRAN_TEST_SAME_TYPE( - [FDEFINES="$psblas_cv_define_prepend-DHAVE_SAME_TYPE_AS $FDEFINES"], -) - -PAC_FORTRAN_TEST_EXTENDS_TYPE( - [FDEFINES="$psblas_cv_define_prepend-DHAVE_EXTENDS_TYPE_OF $FDEFINES"], -) - -PAC_FORTRAN_TEST_MOLD( - [FDEFINES="$psblas_cv_define_prepend-DHAVE_MOLD $FDEFINES"], -) ############################################################################### # Additional pathname stuff (yes, it is redundant and confusing...) From 95009f7ad5fc171963d62c3c246a0e22177ca2a4 Mon Sep 17 00:00:00 2001 From: Salvatore Filippone Date: Fri, 6 Apr 2018 16:19:52 +0100 Subject: [PATCH 33/35] Lifted interface to symbmm into psb_serial_mod. Updated printouts in test programs. --- base/modules/serial/psb_serial_mod.f90 | 10 ++ base/serial/psb_csymbmm.f90 | 9 -- base/serial/psb_dsymbmm.f90 | 9 -- base/serial/psb_ssymbmm.f90 | 9 -- base/serial/psb_zsymbmm.f90 | 9 -- base/serial/psi_c_serial_impl.f90 | 202 ------------------------- base/serial/psi_d_serial_impl.f90 | 200 ------------------------ base/serial/psi_i_serial_impl.f90 | 200 ------------------------ base/serial/psi_s_serial_impl.f90 | 198 ------------------------ base/serial/psi_z_serial_impl.f90 | 202 ------------------------- test/fileread/psb_cf_sample.f90 | 4 +- test/fileread/psb_df_sample.f90 | 4 +- test/fileread/psb_sf_sample.f90 | 4 +- test/fileread/psb_zf_sample.f90 | 4 +- test/pargen/psb_d_pde2d.f90 | 7 +- test/pargen/psb_d_pde3d.f90 | 7 +- test/pargen/psb_s_pde2d.f90 | 7 +- test/pargen/psb_s_pde3d.f90 | 7 +- 18 files changed, 38 insertions(+), 1054 deletions(-) diff --git a/base/modules/serial/psb_serial_mod.f90 b/base/modules/serial/psb_serial_mod.f90 index 7cfd85e9..e46ee807 100644 --- a/base/modules/serial/psb_serial_mod.f90 +++ b/base/modules/serial/psb_serial_mod.f90 @@ -68,6 +68,16 @@ module psb_serial_mod end subroutine psb_d_nspaxpby end interface psb_nspaxpby + interface symbmm + subroutine symbmm (n, m, l, ia, ja, diaga, & + & ib, jb, diagb, ic, jc, diagc, index) + import :: psb_ipk_ + integer(psb_ipk_) :: n,m,l, ia(*), ja(*), diaga, ib(*), jb(*), diagb,& + & diagc, index(*) + integer(psb_ipk_), allocatable :: ic(:),jc(:) + end subroutine symbmm + end interface + contains diff --git a/base/serial/psb_csymbmm.f90 b/base/serial/psb_csymbmm.f90 index fa26c2d2..3343c61d 100644 --- a/base/serial/psb_csymbmm.f90 +++ b/base/serial/psb_csymbmm.f90 @@ -153,15 +153,6 @@ contains type(psb_c_csr_sparse_mat), intent(out) :: c integer(psb_ipk_) :: itemp(:) integer(psb_ipk_), intent(out) :: info - interface - subroutine symbmm (n, m, l, ia, ja, diaga, & - & ib, jb, diagb, ic, jc, diagc, index) - import :: psb_ipk_ - integer(psb_ipk_) :: n,m,l, ia(*), ja(*), diaga, ib(*), jb(*), diagb,& - & diagc, index(*) - integer(psb_ipk_), allocatable :: ic(:),jc(:) - end subroutine symbmm - end interface integer(psb_ipk_) :: nze, ma,na,mb,nb info = psb_success_ diff --git a/base/serial/psb_dsymbmm.f90 b/base/serial/psb_dsymbmm.f90 index 4bad9cc9..848a5cfd 100644 --- a/base/serial/psb_dsymbmm.f90 +++ b/base/serial/psb_dsymbmm.f90 @@ -153,15 +153,6 @@ contains type(psb_d_csr_sparse_mat), intent(out) :: c integer(psb_ipk_) :: itemp(:) integer(psb_ipk_), intent(out) :: info - interface - subroutine symbmm (n, m, l, ia, ja, diaga, & - & ib, jb, diagb, ic, jc, diagc, index) - import :: psb_ipk_ - integer(psb_ipk_) :: n,m,l, ia(*), ja(*), diaga, ib(*), jb(*), diagb,& - & diagc, index(*) - integer(psb_ipk_), allocatable :: ic(:),jc(:) - end subroutine symbmm - end interface integer(psb_ipk_) :: nze, ma,na,mb,nb info = psb_success_ diff --git a/base/serial/psb_ssymbmm.f90 b/base/serial/psb_ssymbmm.f90 index 44d406c8..e9d10c0b 100644 --- a/base/serial/psb_ssymbmm.f90 +++ b/base/serial/psb_ssymbmm.f90 @@ -153,15 +153,6 @@ contains type(psb_s_csr_sparse_mat), intent(out) :: c integer(psb_ipk_) :: itemp(:) integer(psb_ipk_), intent(out) :: info - interface - subroutine symbmm (n, m, l, ia, ja, diaga, & - & ib, jb, diagb, ic, jc, diagc, index) - import :: psb_ipk_ - integer(psb_ipk_) :: n,m,l, ia(*), ja(*), diaga, ib(*), jb(*), diagb,& - & diagc, index(*) - integer(psb_ipk_), allocatable :: ic(:),jc(:) - end subroutine symbmm - end interface integer(psb_ipk_) :: nze, ma,na,mb,nb info = psb_success_ diff --git a/base/serial/psb_zsymbmm.f90 b/base/serial/psb_zsymbmm.f90 index 2f721ae9..67094aaf 100644 --- a/base/serial/psb_zsymbmm.f90 +++ b/base/serial/psb_zsymbmm.f90 @@ -153,15 +153,6 @@ contains type(psb_z_csr_sparse_mat), intent(out) :: c integer(psb_ipk_) :: itemp(:) integer(psb_ipk_), intent(out) :: info - interface - subroutine symbmm (n, m, l, ia, ja, diaga, & - & ib, jb, diagb, ic, jc, diagc, index) - import :: psb_ipk_ - integer(psb_ipk_) :: n,m,l, ia(*), ja(*), diaga, ib(*), jb(*), diagb,& - & diagc, index(*) - integer(psb_ipk_), allocatable :: ic(:),jc(:) - end subroutine symbmm - end interface integer(psb_ipk_) :: nze, ma,na,mb,nb info = psb_success_ diff --git a/base/serial/psi_c_serial_impl.f90 b/base/serial/psi_c_serial_impl.f90 index 0324ed36..6faa5248 100644 --- a/base/serial/psi_c_serial_impl.f90 +++ b/base/serial/psi_c_serial_impl.f90 @@ -1,34 +1,3 @@ -! -! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006-2018 -! Salvatore Filippone -! Alfredo Buttari -! -! Redistribution and use in source and binary forms, with or without -! modification, are permitted provided that the following conditions -! are met: -! 1. Redistributions of source code must retain the above copyright -! notice, this list of conditions and the following disclaimer. -! 2. Redistributions in binary form must reproduce the above copyright -! notice, this list of conditions, and the following disclaimer in the -! documentation and/or other materials provided with the distribution. -! 3. The name of the PSBLAS group or the names of its contributors may -! not be used to endorse or promote products derived from this -! software without specific written permission. -! -! THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -! ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED -! TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -! PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE PSBLAS GROUP OR ITS CONTRIBUTORS -! BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -! CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -! SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -! INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -! CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -! ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -! POSSIBILITY OF SUCH DAMAGE. -! -! subroutine psi_caxpby(m,n,alpha, x, beta, y, info) use psb_const_mod @@ -425,174 +394,3 @@ 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 2764e970..87de71d4 100644 --- a/base/serial/psi_d_serial_impl.f90 +++ b/base/serial/psi_d_serial_impl.f90 @@ -1,34 +1,3 @@ -! -! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006-2018 -! Salvatore Filippone -! Alfredo Buttari -! -! Redistribution and use in source and binary forms, with or without -! modification, are permitted provided that the following conditions -! are met: -! 1. Redistributions of source code must retain the above copyright -! notice, this list of conditions and the following disclaimer. -! 2. Redistributions in binary form must reproduce the above copyright -! notice, this list of conditions, and the following disclaimer in the -! documentation and/or other materials provided with the distribution. -! 3. The name of the PSBLAS group or the names of its contributors may -! not be used to endorse or promote products derived from this -! software without specific written permission. -! -! THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -! ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED -! TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -! PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE PSBLAS GROUP OR ITS CONTRIBUTORS -! BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -! CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -! SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -! INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -! CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -! ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -! POSSIBILITY OF SUCH DAMAGE. -! -! subroutine psi_daxpby(m,n,alpha, x, beta, y, info) use psb_const_mod @@ -425,172 +394,3 @@ 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 9cb757e6..c5113eef 100644 --- a/base/serial/psi_i_serial_impl.f90 +++ b/base/serial/psi_i_serial_impl.f90 @@ -1,34 +1,3 @@ -! -! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006-2018 -! Salvatore Filippone -! Alfredo Buttari -! -! Redistribution and use in source and binary forms, with or without -! modification, are permitted provided that the following conditions -! are met: -! 1. Redistributions of source code must retain the above copyright -! notice, this list of conditions and the following disclaimer. -! 2. Redistributions in binary form must reproduce the above copyright -! notice, this list of conditions, and the following disclaimer in the -! documentation and/or other materials provided with the distribution. -! 3. The name of the PSBLAS group or the names of its contributors may -! not be used to endorse or promote products derived from this -! software without specific written permission. -! -! THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -! ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED -! TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -! PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE PSBLAS GROUP OR ITS CONTRIBUTORS -! BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -! CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -! SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -! INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -! CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -! ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -! POSSIBILITY OF SUCH DAMAGE. -! -! subroutine psi_iaxpby(m,n,alpha, x, beta, y, info) use psb_const_mod @@ -425,172 +394,3 @@ 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 a94675f9..1687405b 100644 --- a/base/serial/psi_s_serial_impl.f90 +++ b/base/serial/psi_s_serial_impl.f90 @@ -1,34 +1,3 @@ -! -! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006-2018 -! Salvatore Filippone -! Alfredo Buttari -! -! Redistribution and use in source and binary forms, with or without -! modification, are permitted provided that the following conditions -! are met: -! 1. Redistributions of source code must retain the above copyright -! notice, this list of conditions and the following disclaimer. -! 2. Redistributions in binary form must reproduce the above copyright -! notice, this list of conditions, and the following disclaimer in the -! documentation and/or other materials provided with the distribution. -! 3. The name of the PSBLAS group or the names of its contributors may -! not be used to endorse or promote products derived from this -! software without specific written permission. -! -! THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -! ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED -! TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -! PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE PSBLAS GROUP OR ITS CONTRIBUTORS -! BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -! CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -! SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -! INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -! CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -! ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -! POSSIBILITY OF SUCH DAMAGE. -! -! subroutine psi_saxpby(m,n,alpha, x, beta, y, info) use psb_const_mod @@ -425,170 +394,3 @@ 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 ae6989ed..791b4f05 100644 --- a/base/serial/psi_z_serial_impl.f90 +++ b/base/serial/psi_z_serial_impl.f90 @@ -1,34 +1,3 @@ -! -! Parallel Sparse BLAS version 3.5 -! (C) Copyright 2006-2018 -! Salvatore Filippone -! Alfredo Buttari -! -! Redistribution and use in source and binary forms, with or without -! modification, are permitted provided that the following conditions -! are met: -! 1. Redistributions of source code must retain the above copyright -! notice, this list of conditions and the following disclaimer. -! 2. Redistributions in binary form must reproduce the above copyright -! notice, this list of conditions, and the following disclaimer in the -! documentation and/or other materials provided with the distribution. -! 3. The name of the PSBLAS group or the names of its contributors may -! not be used to endorse or promote products derived from this -! software without specific written permission. -! -! THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -! ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED -! TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -! PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE PSBLAS GROUP OR ITS CONTRIBUTORS -! BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -! CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -! SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -! INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -! CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -! ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -! POSSIBILITY OF SUCH DAMAGE. -! -! subroutine psi_zaxpby(m,n,alpha, x, beta, y, info) use psb_const_mod @@ -425,174 +394,3 @@ 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/test/fileread/psb_cf_sample.f90 b/test/fileread/psb_cf_sample.f90 index 927553e3..79077feb 100644 --- a/test/fileread/psb_cf_sample.f90 +++ b/test/fileread/psb_cf_sample.f90 @@ -267,7 +267,9 @@ program psb_cf_sample write(psb_out_unit,'("Total memory occupation for A: ",i12)')amatsize write(psb_out_unit,'("Total memory occupation for PREC: ",i12)')precsize write(psb_out_unit,'("Total memory occupation for DESC_A: ",i12)')descsize - write(psb_out_unit,'("Storage type for DESC_A : ",a)')& + write(psb_out_unit,'("Storage format for A : ",a)')& + & a%get_fmt() + write(psb_out_unit,'("Storage format for DESC_A : ",a)')& & desc_a%get_fmt() end if diff --git a/test/fileread/psb_df_sample.f90 b/test/fileread/psb_df_sample.f90 index 6414b904..59356726 100644 --- a/test/fileread/psb_df_sample.f90 +++ b/test/fileread/psb_df_sample.f90 @@ -269,7 +269,9 @@ program psb_df_sample write(psb_out_unit,'("Total memory occupation for A: ",i12)')amatsize write(psb_out_unit,'("Total memory occupation for PREC: ",i12)')precsize write(psb_out_unit,'("Total memory occupation for DESC_A: ",i12)')descsize - write(psb_out_unit,'("Storage type for DESC_A : ",a)')& + write(psb_out_unit,'("Storage format for A : ",a)')& + & a%get_fmt() + write(psb_out_unit,'("Storage format for DESC_A : ",a)')& & desc_a%get_fmt() end if diff --git a/test/fileread/psb_sf_sample.f90 b/test/fileread/psb_sf_sample.f90 index 66746daa..fb8d5982 100644 --- a/test/fileread/psb_sf_sample.f90 +++ b/test/fileread/psb_sf_sample.f90 @@ -269,7 +269,9 @@ program psb_sf_sample write(psb_out_unit,'("Total memory occupation for A: ",i12)')amatsize write(psb_out_unit,'("Total memory occupation for PREC: ",i12)')precsize write(psb_out_unit,'("Total memory occupation for DESC_A: ",i12)')descsize - write(psb_out_unit,'("Storage type for DESC_A : ",a)')& + write(psb_out_unit,'("Storage format for A : ",a)')& + & a%get_fmt() + write(psb_out_unit,'("Storage format for DESC_A : ",a)')& & desc_a%get_fmt() end if diff --git a/test/fileread/psb_zf_sample.f90 b/test/fileread/psb_zf_sample.f90 index 39c11a1e..fef3be2f 100644 --- a/test/fileread/psb_zf_sample.f90 +++ b/test/fileread/psb_zf_sample.f90 @@ -267,7 +267,9 @@ program psb_zf_sample write(psb_out_unit,'("Total memory occupation for A: ",i12)')amatsize write(psb_out_unit,'("Total memory occupation for PREC: ",i12)')precsize write(psb_out_unit,'("Total memory occupation for DESC_A: ",i12)')descsize - write(psb_out_unit,'("Storage type for DESC_A : ",a)')& + write(psb_out_unit,'("Storage format for A : ",a)')& + & a%get_fmt() + write(psb_out_unit,'("Storage format for DESC_A : ",a)')& & desc_a%get_fmt() end if diff --git a/test/pargen/psb_d_pde2d.f90 b/test/pargen/psb_d_pde2d.f90 index a1d82c2b..4a080ed0 100644 --- a/test/pargen/psb_d_pde2d.f90 +++ b/test/pargen/psb_d_pde2d.f90 @@ -604,10 +604,11 @@ program psb_d_pde2d write(psb_out_unit,'("Number of iterations : ",i0)')iter write(psb_out_unit,'("Convergence indicator on exit : ",es12.5)')err write(psb_out_unit,'("Info on exit : ",i0)')info - write(psb_out_unit,'("Total memory occupation for A: ",i12)')amatsize - write(psb_out_unit,'("Total memory occupation for PREC: ",i12)')precsize + write(psb_out_unit,'("Total memory occupation for A: ",i12)')amatsize + write(psb_out_unit,'("Total memory occupation for PREC: ",i12)')precsize write(psb_out_unit,'("Total memory occupation for DESC_A: ",i12)')descsize - write(psb_out_unit,'("Storage type for DESC_A: ",a)') desc_a%get_fmt() + write(psb_out_unit,'("Storage format for A: ",a)') a%get_fmt() + write(psb_out_unit,'("Storage format for DESC_A: ",a)') desc_a%get_fmt() end if diff --git a/test/pargen/psb_d_pde3d.f90 b/test/pargen/psb_d_pde3d.f90 index 9104277d..84641c04 100644 --- a/test/pargen/psb_d_pde3d.f90 +++ b/test/pargen/psb_d_pde3d.f90 @@ -632,10 +632,11 @@ program psb_d_pde3d write(psb_out_unit,'("Number of iterations : ",i0)')iter write(psb_out_unit,'("Convergence indicator on exit : ",es12.5)')err write(psb_out_unit,'("Info on exit : ",i0)')info - write(psb_out_unit,'("Total memory occupation for A: ",i12)')amatsize - write(psb_out_unit,'("Total memory occupation for PREC: ",i12)')precsize + write(psb_out_unit,'("Total memory occupation for A: ",i12)')amatsize + write(psb_out_unit,'("Total memory occupation for PREC: ",i12)')precsize write(psb_out_unit,'("Total memory occupation for DESC_A: ",i12)')descsize - write(psb_out_unit,'("Storage type for DESC_A: ",a)') desc_a%get_fmt() + write(psb_out_unit,'("Storage format for A: ",a)') a%get_fmt() + write(psb_out_unit,'("Storage format for DESC_A: ",a)') desc_a%get_fmt() end if diff --git a/test/pargen/psb_s_pde2d.f90 b/test/pargen/psb_s_pde2d.f90 index 76128d7c..d06bba5e 100644 --- a/test/pargen/psb_s_pde2d.f90 +++ b/test/pargen/psb_s_pde2d.f90 @@ -604,10 +604,11 @@ program psb_s_pde2d write(psb_out_unit,'("Number of iterations : ",i0)')iter write(psb_out_unit,'("Convergence indicator on exit : ",es12.5)')err write(psb_out_unit,'("Info on exit : ",i0)')info - write(psb_out_unit,'("Total memory occupation for A: ",i12)')amatsize - write(psb_out_unit,'("Total memory occupation for PREC: ",i12)')precsize + write(psb_out_unit,'("Total memory occupation for A: ",i12)')amatsize + write(psb_out_unit,'("Total memory occupation for PREC: ",i12)')precsize write(psb_out_unit,'("Total memory occupation for DESC_A: ",i12)')descsize - write(psb_out_unit,'("Storage type for DESC_A: ",a)') desc_a%get_fmt() + write(psb_out_unit,'("Storage format for A: ",a)') a%get_fmt() + write(psb_out_unit,'("Storage format for DESC_A: ",a)') desc_a%get_fmt() end if diff --git a/test/pargen/psb_s_pde3d.f90 b/test/pargen/psb_s_pde3d.f90 index 56ca4b01..c8ed829b 100644 --- a/test/pargen/psb_s_pde3d.f90 +++ b/test/pargen/psb_s_pde3d.f90 @@ -632,10 +632,11 @@ program psb_s_pde3d write(psb_out_unit,'("Number of iterations : ",i0)')iter write(psb_out_unit,'("Convergence indicator on exit : ",es12.5)')err write(psb_out_unit,'("Info on exit : ",i0)')info - write(psb_out_unit,'("Total memory occupation for A: ",i12)')amatsize - write(psb_out_unit,'("Total memory occupation for PREC: ",i12)')precsize + write(psb_out_unit,'("Total memory occupation for A: ",i12)')amatsize + write(psb_out_unit,'("Total memory occupation for PREC: ",i12)')precsize write(psb_out_unit,'("Total memory occupation for DESC_A: ",i12)')descsize - write(psb_out_unit,'("Storage type for DESC_A: ",a)') desc_a%get_fmt() + write(psb_out_unit,'("Storage format for A: ",a)') a%get_fmt() + write(psb_out_unit,'("Storage format for DESC_A: ",a)') desc_a%get_fmt() end if From c573f38d348c863d1843cab089f46a8d51a44cb5 Mon Sep 17 00:00:00 2001 From: Salvatore Filippone Date: Fri, 6 Apr 2018 16:37:00 +0100 Subject: [PATCH 34/35] Fix psi_serial_impl missing AXPBY. --- base/serial/psi_c_serial_impl.f90 | 201 ++++++++++++++++++++++++++++++ base/serial/psi_d_serial_impl.f90 | 201 ++++++++++++++++++++++++++++++ base/serial/psi_i_serial_impl.f90 | 201 ++++++++++++++++++++++++++++++ base/serial/psi_s_serial_impl.f90 | 201 ++++++++++++++++++++++++++++++ base/serial/psi_z_serial_impl.f90 | 201 ++++++++++++++++++++++++++++++ 5 files changed, 1005 insertions(+) diff --git a/base/serial/psi_c_serial_impl.f90 b/base/serial/psi_c_serial_impl.f90 index 6faa5248..4794c38e 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-2018 +! Salvatore Filippone +! Alfredo Buttari +! +! Redistribution and use in source and binary forms, with or without +! modification, are permitted provided that the following conditions +! are met: +! 1. Redistributions of source code must retain the above copyright +! notice, this list of conditions and the following disclaimer. +! 2. Redistributions in binary form must reproduce the above copyright +! notice, this list of conditions, and the following disclaimer in the +! documentation and/or other materials provided with the distribution. +! 3. The name of the PSBLAS group or the names of its contributors may +! not be used to endorse or promote products derived from this +! software without specific written permission. +! +! THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +! ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED +! TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +! PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE PSBLAS GROUP OR ITS CONTRIBUTORS +! BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +! CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +! SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +! INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +! CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +! ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +! POSSIBILITY OF SUCH DAMAGE. +! +! subroutine psi_caxpby(m,n,alpha, x, beta, y, info) use psb_const_mod @@ -394,3 +425,173 @@ 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 + 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.czero) then + if (beta.eq.czero) then + do j=1, n + do i=1,m + y(i,j) = czero + enddo + enddo + else if (beta.eq.cone) then + ! + ! Do nothing! + ! + + else if (beta.eq.-cone) 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.cone) then + + if (beta.eq.czero) then + do j=1,n + do i=1,m + y(i,j) = x(i,j) + enddo + enddo + else if (beta.eq.cone) then + do j=1,n + do i=1,m + y(i,j) = x(i,j) + y(i,j) + enddo + enddo + + else if (beta.eq.-cone) 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.-cone) then + + if (beta.eq.czero) then + do j=1,n + do i=1,m + y(i,j) = -x(i,j) + enddo + enddo + else if (beta.eq.cone) then + do j=1,n + do i=1,m + y(i,j) = -x(i,j) + y(i,j) + enddo + enddo + + else if (beta.eq.-cone) 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.czero) then + do j=1,n + do i=1,m + y(i,j) = alpha*x(i,j) + enddo + enddo + else if (beta.eq.cone) 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.-cone) 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..71f62cd5 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-2018 +! Salvatore Filippone +! Alfredo Buttari +! +! Redistribution and use in source and binary forms, with or without +! modification, are permitted provided that the following conditions +! are met: +! 1. Redistributions of source code must retain the above copyright +! notice, this list of conditions and the following disclaimer. +! 2. Redistributions in binary form must reproduce the above copyright +! notice, this list of conditions, and the following disclaimer in the +! documentation and/or other materials provided with the distribution. +! 3. The name of the PSBLAS group or the names of its contributors may +! not be used to endorse or promote products derived from this +! software without specific written permission. +! +! THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +! ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED +! TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +! PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE PSBLAS GROUP OR ITS CONTRIBUTORS +! BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +! CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +! SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +! INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +! CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +! ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +! POSSIBILITY OF SUCH DAMAGE. +! +! subroutine psi_daxpby(m,n,alpha, x, beta, y, info) use psb_const_mod @@ -394,3 +425,173 @@ 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..90d2cdea 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-2018 +! Salvatore Filippone +! Alfredo Buttari +! +! Redistribution and use in source and binary forms, with or without +! modification, are permitted provided that the following conditions +! are met: +! 1. Redistributions of source code must retain the above copyright +! notice, this list of conditions and the following disclaimer. +! 2. Redistributions in binary form must reproduce the above copyright +! notice, this list of conditions, and the following disclaimer in the +! documentation and/or other materials provided with the distribution. +! 3. The name of the PSBLAS group or the names of its contributors may +! not be used to endorse or promote products derived from this +! software without specific written permission. +! +! THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +! ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED +! TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +! PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE PSBLAS GROUP OR ITS CONTRIBUTORS +! BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +! CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +! SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +! INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +! CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +! ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +! POSSIBILITY OF SUCH DAMAGE. +! +! subroutine psi_iaxpby(m,n,alpha, x, beta, y, info) use psb_const_mod @@ -394,3 +425,173 @@ 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(psb_ipk_) :: 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..cba56128 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-2018 +! Salvatore Filippone +! Alfredo Buttari +! +! Redistribution and use in source and binary forms, with or without +! modification, are permitted provided that the following conditions +! are met: +! 1. Redistributions of source code must retain the above copyright +! notice, this list of conditions and the following disclaimer. +! 2. Redistributions in binary form must reproduce the above copyright +! notice, this list of conditions, and the following disclaimer in the +! documentation and/or other materials provided with the distribution. +! 3. The name of the PSBLAS group or the names of its contributors may +! not be used to endorse or promote products derived from this +! software without specific written permission. +! +! THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +! ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED +! TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +! PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE PSBLAS GROUP OR ITS CONTRIBUTORS +! BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +! CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +! SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +! INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +! CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +! ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +! POSSIBILITY OF SUCH DAMAGE. +! +! subroutine psi_saxpby(m,n,alpha, x, beta, y, info) use psb_const_mod @@ -394,3 +425,173 @@ 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 + use psb_error_mod + implicit none + integer(psb_ipk_) :: 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..9444f6c5 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-2018 +! Salvatore Filippone +! Alfredo Buttari +! +! Redistribution and use in source and binary forms, with or without +! modification, are permitted provided that the following conditions +! are met: +! 1. Redistributions of source code must retain the above copyright +! notice, this list of conditions and the following disclaimer. +! 2. Redistributions in binary form must reproduce the above copyright +! notice, this list of conditions, and the following disclaimer in the +! documentation and/or other materials provided with the distribution. +! 3. The name of the PSBLAS group or the names of its contributors may +! not be used to endorse or promote products derived from this +! software without specific written permission. +! +! THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +! ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED +! TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +! PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE PSBLAS GROUP OR ITS CONTRIBUTORS +! BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +! CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +! SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +! INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +! CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +! ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +! POSSIBILITY OF SUCH DAMAGE. +! +! subroutine psi_zaxpby(m,n,alpha, x, beta, y, info) use psb_const_mod @@ -394,3 +425,173 @@ 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 + 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.zzero) then + if (beta.eq.zzero) then + do j=1, n + do i=1,m + y(i,j) = zzero + enddo + enddo + else if (beta.eq.zone) then + ! + ! Do nothing! + ! + + else if (beta.eq.-zone) 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.zone) then + + if (beta.eq.zzero) then + do j=1,n + do i=1,m + y(i,j) = x(i,j) + enddo + enddo + else if (beta.eq.zone) then + do j=1,n + do i=1,m + y(i,j) = x(i,j) + y(i,j) + enddo + enddo + + else if (beta.eq.-zone) 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.-zone) then + + if (beta.eq.zzero) then + do j=1,n + do i=1,m + y(i,j) = -x(i,j) + enddo + enddo + else if (beta.eq.zone) then + do j=1,n + do i=1,m + y(i,j) = -x(i,j) + y(i,j) + enddo + enddo + + else if (beta.eq.-zone) 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.zzero) then + do j=1,n + do i=1,m + y(i,j) = alpha*x(i,j) + enddo + enddo + else if (beta.eq.zone) 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.-zone) 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 From 9713225a8b804974a2ab99af43984cbe95cd7ccc Mon Sep 17 00:00:00 2001 From: Salvatore Filippone Date: Tue, 10 Apr 2018 12:33:52 +0100 Subject: [PATCH 35/35] Explanatory comments. --- test/kernel/pdgenspmv.f90 | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/test/kernel/pdgenspmv.f90 b/test/kernel/pdgenspmv.f90 index f08e5797..32ae8428 100644 --- a/test/kernel/pdgenspmv.f90 +++ b/test/kernel/pdgenspmv.f90 @@ -469,6 +469,9 @@ program pdgenspmv call psb_barrier(ictxt) t1 = psb_wtime() + ! + ! Perform Ax multiple times to compute average performance + ! do i=1,times call psb_spmm(done,a,xv,dzero,bv,desc_a,info,'n') end do @@ -479,6 +482,9 @@ program pdgenspmv ! FIXME: cache flush needed here call psb_barrier(ictxt) tt1 = psb_wtime() + ! + ! Perform A^Tx multiple times to compute average performance + ! do i=1,times call psb_spmm(done,a,xv,dzero,bv,desc_a,info,'t') end do

                Table 17: Data types