diff --git a/docs/html/footnode.html b/docs/html/footnode.html index 75ab4d28..771031e9 100644 --- a/docs/html/footnode.html +++ b/docs/html/footnode.html @@ -18,7 +18,7 @@ original version by: Nikos Drakos, CBLU, University of Leeds - + @@ -104,8 +104,8 @@ sample scatter/gather routines. . -
... follows3
+
... follows3
The string is case-insensitive
.
diff --git a/docs/html/img100.png b/docs/html/img100.png
index 985ac48f..503b1ab6 100644
Binary files a/docs/html/img100.png and b/docs/html/img100.png differ
diff --git a/docs/html/img101.png b/docs/html/img101.png
index 503b1ab6..2f53c222 100644
Binary files a/docs/html/img101.png and b/docs/html/img101.png differ
diff --git a/docs/html/img102.png b/docs/html/img102.png
index 2f53c222..b83a8d66 100644
Binary files a/docs/html/img102.png and b/docs/html/img102.png differ
diff --git a/docs/html/img103.png b/docs/html/img103.png
index b83a8d66..de35d7fa 100644
Binary files a/docs/html/img103.png and b/docs/html/img103.png differ
diff --git a/docs/html/img104.png b/docs/html/img104.png
index de35d7fa..d974a444 100644
Binary files a/docs/html/img104.png and b/docs/html/img104.png differ
diff --git a/docs/html/img105.png b/docs/html/img105.png
index d974a444..92823e6a 100644
Binary files a/docs/html/img105.png and b/docs/html/img105.png differ
diff --git a/docs/html/img106.png b/docs/html/img106.png
index 92823e6a..c352f896 100644
Binary files a/docs/html/img106.png and b/docs/html/img106.png differ
diff --git a/docs/html/img107.png b/docs/html/img107.png
index c352f896..f21abed1 100644
Binary files a/docs/html/img107.png and b/docs/html/img107.png differ
diff --git a/docs/html/img108.png b/docs/html/img108.png
index f21abed1..60d8dfe1 100644
Binary files a/docs/html/img108.png and b/docs/html/img108.png differ
diff --git a/docs/html/img109.png b/docs/html/img109.png
index 60d8dfe1..0f14d830 100644
Binary files a/docs/html/img109.png and b/docs/html/img109.png differ
diff --git a/docs/html/img110.png b/docs/html/img110.png
index 0f14d830..ffb003b8 100644
Binary files a/docs/html/img110.png and b/docs/html/img110.png differ
diff --git a/docs/html/img111.png b/docs/html/img111.png
index ffb003b8..04caf6e5 100644
Binary files a/docs/html/img111.png and b/docs/html/img111.png differ
diff --git a/docs/html/img112.png b/docs/html/img112.png
index 04caf6e5..47f71ed5 100644
Binary files a/docs/html/img112.png and b/docs/html/img112.png differ
diff --git a/docs/html/img113.png b/docs/html/img113.png
index 47f71ed5..5cfc2662 100644
Binary files a/docs/html/img113.png and b/docs/html/img113.png differ
diff --git a/docs/html/img114.png b/docs/html/img114.png
index 5cfc2662..988e80e2 100644
Binary files a/docs/html/img114.png and b/docs/html/img114.png differ
diff --git a/docs/html/img115.png b/docs/html/img115.png
index 988e80e2..34390973 100644
Binary files a/docs/html/img115.png and b/docs/html/img115.png differ
diff --git a/docs/html/img116.png b/docs/html/img116.png
index 34390973..be0d5a7d 100644
Binary files a/docs/html/img116.png and b/docs/html/img116.png differ
diff --git a/docs/html/img117.png b/docs/html/img117.png
index be0d5a7d..101ad4d6 100644
Binary files a/docs/html/img117.png and b/docs/html/img117.png differ
diff --git a/docs/html/img118.png b/docs/html/img118.png
index 101ad4d6..a8d143ed 100644
Binary files a/docs/html/img118.png and b/docs/html/img118.png differ
diff --git a/docs/html/img119.png b/docs/html/img119.png
index a8d143ed..faeee6e4 100644
Binary files a/docs/html/img119.png and b/docs/html/img119.png differ
diff --git a/docs/html/img120.png b/docs/html/img120.png
index faeee6e4..18112b72 100644
Binary files a/docs/html/img120.png and b/docs/html/img120.png differ
diff --git a/docs/html/img121.png b/docs/html/img121.png
index 18112b72..f51cb667 100644
Binary files a/docs/html/img121.png and b/docs/html/img121.png differ
diff --git a/docs/html/img122.png b/docs/html/img122.png
index f51cb667..83d7a517 100644
Binary files a/docs/html/img122.png and b/docs/html/img122.png differ
diff --git a/docs/html/img123.png b/docs/html/img123.png
index 83d7a517..4a97c54d 100644
Binary files a/docs/html/img123.png and b/docs/html/img123.png differ
diff --git a/docs/html/img124.png b/docs/html/img124.png
index 4a97c54d..51862530 100644
Binary files a/docs/html/img124.png and b/docs/html/img124.png differ
diff --git a/docs/html/img125.png b/docs/html/img125.png
index 51862530..d677cf77 100644
Binary files a/docs/html/img125.png and b/docs/html/img125.png differ
diff --git a/docs/html/img126.png b/docs/html/img126.png
index d677cf77..77dcbe5b 100644
Binary files a/docs/html/img126.png and b/docs/html/img126.png differ
diff --git a/docs/html/img127.png b/docs/html/img127.png
index 77dcbe5b..2dc97d67 100644
Binary files a/docs/html/img127.png and b/docs/html/img127.png differ
diff --git a/docs/html/img128.png b/docs/html/img128.png
index 2dc97d67..5976bb15 100644
Binary files a/docs/html/img128.png and b/docs/html/img128.png differ
diff --git a/docs/html/img129.png b/docs/html/img129.png
index 5976bb15..69a41dd7 100644
Binary files a/docs/html/img129.png and b/docs/html/img129.png differ
diff --git a/docs/html/img130.png b/docs/html/img130.png
index 69a41dd7..fad10afc 100644
Binary files a/docs/html/img130.png and b/docs/html/img130.png differ
diff --git a/docs/html/img131.png b/docs/html/img131.png
index fad10afc..865798ac 100644
Binary files a/docs/html/img131.png and b/docs/html/img131.png differ
diff --git a/docs/html/img132.png b/docs/html/img132.png
index 865798ac..0417d2c4 100644
Binary files a/docs/html/img132.png and b/docs/html/img132.png differ
diff --git a/docs/html/img133.png b/docs/html/img133.png
index 0417d2c4..f5338df3 100644
Binary files a/docs/html/img133.png and b/docs/html/img133.png differ
diff --git a/docs/html/img134.png b/docs/html/img134.png
index f5338df3..0401ba94 100644
Binary files a/docs/html/img134.png and b/docs/html/img134.png differ
diff --git a/docs/html/img135.png b/docs/html/img135.png
index 0401ba94..bb8f30e9 100644
Binary files a/docs/html/img135.png and b/docs/html/img135.png differ
diff --git a/docs/html/img136.png b/docs/html/img136.png
index bb8f30e9..ccc43d90 100644
Binary files a/docs/html/img136.png and b/docs/html/img136.png differ
diff --git a/docs/html/img137.png b/docs/html/img137.png
index ccc43d90..e69de29b 100644
Binary files a/docs/html/img137.png and b/docs/html/img137.png differ
diff --git a/docs/html/img139.png b/docs/html/img139.png
index e69de29b..12936326 100644
Binary files a/docs/html/img139.png and b/docs/html/img139.png differ
diff --git a/docs/html/img140.png b/docs/html/img140.png
index 12936326..38263b79 100644
Binary files a/docs/html/img140.png and b/docs/html/img140.png differ
diff --git a/docs/html/img141.png b/docs/html/img141.png
index 38263b79..98984bad 100644
Binary files a/docs/html/img141.png and b/docs/html/img141.png differ
diff --git a/docs/html/img142.png b/docs/html/img142.png
index 98984bad..8df7b687 100644
Binary files a/docs/html/img142.png and b/docs/html/img142.png differ
diff --git a/docs/html/img143.png b/docs/html/img143.png
index 8df7b687..d5054576 100644
Binary files a/docs/html/img143.png and b/docs/html/img143.png differ
diff --git a/docs/html/img144.png b/docs/html/img144.png
index d5054576..d57061cc 100644
Binary files a/docs/html/img144.png and b/docs/html/img144.png differ
diff --git a/docs/html/img145.png b/docs/html/img145.png
index d57061cc..0e2bf7fa 100644
Binary files a/docs/html/img145.png and b/docs/html/img145.png differ
diff --git a/docs/html/img146.png b/docs/html/img146.png
index 0e2bf7fa..09d1d796 100644
Binary files a/docs/html/img146.png and b/docs/html/img146.png differ
diff --git a/docs/html/img147.png b/docs/html/img147.png
index 09d1d796..41988bf5 100644
Binary files a/docs/html/img147.png and b/docs/html/img147.png differ
diff --git a/docs/html/img148.png b/docs/html/img148.png
index 41988bf5..159bf1eb 100644
Binary files a/docs/html/img148.png and b/docs/html/img148.png differ
diff --git a/docs/html/img149.png b/docs/html/img149.png
index 159bf1eb..51cfc1ee 100644
Binary files a/docs/html/img149.png and b/docs/html/img149.png differ
diff --git a/docs/html/img47.png b/docs/html/img47.png
index cca487c5..8d80e5be 100644
Binary files a/docs/html/img47.png and b/docs/html/img47.png differ
diff --git a/docs/html/img48.png b/docs/html/img48.png
index 223d0dd0..0913945f 100644
Binary files a/docs/html/img48.png and b/docs/html/img48.png differ
diff --git a/docs/html/img49.png b/docs/html/img49.png
index 0913945f..dcd7f108 100644
Binary files a/docs/html/img49.png and b/docs/html/img49.png differ
diff --git a/docs/html/img50.png b/docs/html/img50.png
index dcd7f108..3d693307 100644
Binary files a/docs/html/img50.png and b/docs/html/img50.png differ
diff --git a/docs/html/img51.png b/docs/html/img51.png
index 3d693307..418f2429 100644
Binary files a/docs/html/img51.png and b/docs/html/img51.png differ
diff --git a/docs/html/img52.png b/docs/html/img52.png
index 418f2429..15dbb2d1 100644
Binary files a/docs/html/img52.png and b/docs/html/img52.png differ
diff --git a/docs/html/img53.png b/docs/html/img53.png
index 15dbb2d1..9849391f 100644
Binary files a/docs/html/img53.png and b/docs/html/img53.png differ
diff --git a/docs/html/img54.png b/docs/html/img54.png
index 9849391f..be49db31 100644
Binary files a/docs/html/img54.png and b/docs/html/img54.png differ
diff --git a/docs/html/img55.png b/docs/html/img55.png
index be49db31..6ea93c9e 100644
Binary files a/docs/html/img55.png and b/docs/html/img55.png differ
diff --git a/docs/html/img56.png b/docs/html/img56.png
index 6ea93c9e..9a8263ac 100644
Binary files a/docs/html/img56.png and b/docs/html/img56.png differ
diff --git a/docs/html/img57.png b/docs/html/img57.png
index 9a8263ac..7ea61bee 100644
Binary files a/docs/html/img57.png and b/docs/html/img57.png differ
diff --git a/docs/html/img58.png b/docs/html/img58.png
index 7ea61bee..09e8cb6c 100644
Binary files a/docs/html/img58.png and b/docs/html/img58.png differ
diff --git a/docs/html/img59.png b/docs/html/img59.png
index 09e8cb6c..4e8a4e16 100644
Binary files a/docs/html/img59.png and b/docs/html/img59.png differ
diff --git a/docs/html/img60.png b/docs/html/img60.png
index 4e8a4e16..b5b74989 100644
Binary files a/docs/html/img60.png and b/docs/html/img60.png differ
diff --git a/docs/html/img61.png b/docs/html/img61.png
index b5b74989..e121e0d8 100644
Binary files a/docs/html/img61.png and b/docs/html/img61.png differ
diff --git a/docs/html/img62.png b/docs/html/img62.png
index e121e0d8..e6a5b6cd 100644
Binary files a/docs/html/img62.png and b/docs/html/img62.png differ
diff --git a/docs/html/img63.png b/docs/html/img63.png
index e6a5b6cd..6ce9093e 100644
Binary files a/docs/html/img63.png and b/docs/html/img63.png differ
diff --git a/docs/html/img64.png b/docs/html/img64.png
index 6ce9093e..7cb080ad 100644
Binary files a/docs/html/img64.png and b/docs/html/img64.png differ
diff --git a/docs/html/img65.png b/docs/html/img65.png
index 7cb080ad..9b5e36ea 100644
Binary files a/docs/html/img65.png and b/docs/html/img65.png differ
diff --git a/docs/html/img66.png b/docs/html/img66.png
index 9b5e36ea..5c11fa45 100644
Binary files a/docs/html/img66.png and b/docs/html/img66.png differ
diff --git a/docs/html/img67.png b/docs/html/img67.png
index 5c11fa45..d9049fe7 100644
Binary files a/docs/html/img67.png and b/docs/html/img67.png differ
diff --git a/docs/html/img68.png b/docs/html/img68.png
index d9049fe7..5060d61f 100644
Binary files a/docs/html/img68.png and b/docs/html/img68.png differ
diff --git a/docs/html/img69.png b/docs/html/img69.png
index 5060d61f..432763a5 100644
Binary files a/docs/html/img69.png and b/docs/html/img69.png differ
diff --git a/docs/html/img70.png b/docs/html/img70.png
index 432763a5..0f133fbf 100644
Binary files a/docs/html/img70.png and b/docs/html/img70.png differ
diff --git a/docs/html/img71.png b/docs/html/img71.png
index 0f133fbf..e344cde8 100644
Binary files a/docs/html/img71.png and b/docs/html/img71.png differ
diff --git a/docs/html/img72.png b/docs/html/img72.png
index e344cde8..18a82590 100644
Binary files a/docs/html/img72.png and b/docs/html/img72.png differ
diff --git a/docs/html/img73.png b/docs/html/img73.png
index 18a82590..b9c750c2 100644
Binary files a/docs/html/img73.png and b/docs/html/img73.png differ
diff --git a/docs/html/img74.png b/docs/html/img74.png
index b9c750c2..29f556d6 100644
Binary files a/docs/html/img74.png and b/docs/html/img74.png differ
diff --git a/docs/html/img75.png b/docs/html/img75.png
index 29f556d6..5fd95a8c 100644
Binary files a/docs/html/img75.png and b/docs/html/img75.png differ
diff --git a/docs/html/img76.png b/docs/html/img76.png
index 5fd95a8c..ab90c16d 100644
Binary files a/docs/html/img76.png and b/docs/html/img76.png differ
diff --git a/docs/html/img77.png b/docs/html/img77.png
index ab90c16d..c4b1412a 100644
Binary files a/docs/html/img77.png and b/docs/html/img77.png differ
diff --git a/docs/html/img78.png b/docs/html/img78.png
index c4b1412a..f30e3ea6 100644
Binary files a/docs/html/img78.png and b/docs/html/img78.png differ
diff --git a/docs/html/img79.png b/docs/html/img79.png
index f30e3ea6..b286bba5 100644
Binary files a/docs/html/img79.png and b/docs/html/img79.png differ
diff --git a/docs/html/img80.png b/docs/html/img80.png
index b286bba5..b10c809a 100644
Binary files a/docs/html/img80.png and b/docs/html/img80.png differ
diff --git a/docs/html/img81.png b/docs/html/img81.png
index b10c809a..0ee708a9 100644
Binary files a/docs/html/img81.png and b/docs/html/img81.png differ
diff --git a/docs/html/img82.png b/docs/html/img82.png
index 0ee708a9..ef89bdfb 100644
Binary files a/docs/html/img82.png and b/docs/html/img82.png differ
diff --git a/docs/html/img83.png b/docs/html/img83.png
index ef89bdfb..61790150 100644
Binary files a/docs/html/img83.png and b/docs/html/img83.png differ
diff --git a/docs/html/img84.png b/docs/html/img84.png
index 61790150..e0dd7dff 100644
Binary files a/docs/html/img84.png and b/docs/html/img84.png differ
diff --git a/docs/html/img85.png b/docs/html/img85.png
index e0dd7dff..3ffa14f5 100644
Binary files a/docs/html/img85.png and b/docs/html/img85.png differ
diff --git a/docs/html/img86.png b/docs/html/img86.png
index 3ffa14f5..a4793c56 100644
Binary files a/docs/html/img86.png and b/docs/html/img86.png differ
diff --git a/docs/html/img87.png b/docs/html/img87.png
index a4793c56..c1e8d746 100644
Binary files a/docs/html/img87.png and b/docs/html/img87.png differ
diff --git a/docs/html/img88.png b/docs/html/img88.png
index c1e8d746..37a6ec01 100644
Binary files a/docs/html/img88.png and b/docs/html/img88.png differ
diff --git a/docs/html/img89.png b/docs/html/img89.png
index 37a6ec01..da9d1a45 100644
Binary files a/docs/html/img89.png and b/docs/html/img89.png differ
diff --git a/docs/html/img90.png b/docs/html/img90.png
index da9d1a45..84ab80b6 100644
Binary files a/docs/html/img90.png and b/docs/html/img90.png differ
diff --git a/docs/html/img91.png b/docs/html/img91.png
index 84ab80b6..ae2c4cd8 100644
Binary files a/docs/html/img91.png and b/docs/html/img91.png differ
diff --git a/docs/html/img92.png b/docs/html/img92.png
index ae2c4cd8..2abf9ed6 100644
Binary files a/docs/html/img92.png and b/docs/html/img92.png differ
diff --git a/docs/html/img93.png b/docs/html/img93.png
index 2abf9ed6..80975054 100644
Binary files a/docs/html/img93.png and b/docs/html/img93.png differ
diff --git a/docs/html/img94.png b/docs/html/img94.png
index 80975054..4ffe5949 100644
Binary files a/docs/html/img94.png and b/docs/html/img94.png differ
diff --git a/docs/html/img95.png b/docs/html/img95.png
index 4ffe5949..f71e274b 100644
Binary files a/docs/html/img95.png and b/docs/html/img95.png differ
diff --git a/docs/html/img96.png b/docs/html/img96.png
index f71e274b..dc005ccf 100644
Binary files a/docs/html/img96.png and b/docs/html/img96.png differ
diff --git a/docs/html/img97.png b/docs/html/img97.png
index dc005ccf..71d5daf6 100644
Binary files a/docs/html/img97.png and b/docs/html/img97.png differ
diff --git a/docs/html/img98.png b/docs/html/img98.png
index 71d5daf6..99bf4164 100644
Binary files a/docs/html/img98.png and b/docs/html/img98.png differ
diff --git a/docs/html/img99.png b/docs/html/img99.png
index 99bf4164..985ac48f 100644
Binary files a/docs/html/img99.png and b/docs/html/img99.png differ
diff --git a/docs/html/index.html b/docs/html/index.html
index 4616d839..f2f604f8 100644
--- a/docs/html/index.html
+++ b/docs/html/index.html
@@ -153,195 +153,197 @@ psb_cd_get_context--Get communication context
 
  • psb_geasums -- Generalized 1-Norm of Vector
  • psb_genrm2s -- Generalized 1-Norm of Vector + HREF="node33.html">psb_genrm2 -- 2-Norm of Vector
  • psb_spnrmi -- Infinity Norm of Sparse Matrix + HREF="node34.html">psb_genrm2s -- Generalized 2-Norm of Vector
  • psb_spmm -- Sparse Matrix by Dense Matrix Product + HREF="node35.html">psb_spnrmi -- Infinity Norm of Sparse Matrix
  • psb_spsm -- Triangular System Solve + HREF="node36.html">psb_spmm -- Sparse Matrix by Dense Matrix Product +
  • psb_spsm -- Triangular System Solve
    -
  • Communication routines -
  • desc_a
    -
    the problem communication descriptor. +
    the problem communication descriptor. Scope: local
    Type: required
    -Intent: in. -
    -Specified as: a communication data structure descdatapsb_desc_type. -
    -
    trans
    -
    Scope: -
    -Type: optional -
    -Intent: in. -
    -Specified as: a character. -
    -
    work
    -
    an optional work space -Scope: local -
    -Type: optional +Intent: in, target.
    -Intent: inout. -
    -Specified as: a double precision array. +Specified as: a communication descriptor data structure descdatapsb_desc_type.
    @@ -125,16 +106,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 double precision array. -
    +Specified as: a precondtioner data structure precdatapsb_prec_type +
    info
    Error code.
    diff --git a/docs/html/node102.html b/docs/html/node102.html index d02eb580..a562ec8e 100644 --- a/docs/html/node102.html +++ b/docs/html/node102.html @@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds Jens Lippmann, Marek Rouchal, Martin Wilck and others --> -psb_precdescr -- Prints a description of current preconditioner - +psb_precaply -- Preconditioner application routine + @@ -18,53 +18,53 @@ original version by: Nikos Drakos, CBLU, University of Leeds + - + - next - + up - previous - contents
    - Next: Iterative Methods - Up: Preconditioner routines - Previous: psb_precaply Preconditioner -   Next: psb_precdescr Prints + Up: Preconditioner routines + Previous: psb_precbld Builds +   Contents

    -

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

    +psb_precaply -- Preconditioner application routine

    -call psb_precdescr(prec)
    -call psb_precdescr(prec, iout)
    +call psb_precaply(prec,x,y,desc_a,info,trans,work)
    +call psb_precaply(prec,x,desc_a,info,trans)
     

    Type:
    -
    Asynchronous. +
    Synchronous.
    On Entry
    @@ -79,15 +79,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 double precision array. +
    +
    desc_a
    +
    the problem communication descriptor. Scope: local
    -Type: optiona +Type: required
    Intent: in.
    -Specified as: an integer number. +Specified as: a communication data structure descdatapsb_desc_type. +
    +
    trans
    +
    Scope: +
    +Type: optional +
    +Intent: in. +
    +Specified as: a character. +
    +
    work
    +
    an optional work space +Scope: local +
    +Type: optional +
    +Intent: inout. +
    +Specified as: a double precision array. +
    +
    + +

    +

    +
    On Return
    +
    +
    +
    y
    +
    the destination vector. +Scope: local +
    +Type: required +
    +Intent: inout. +
    +Specified as: a double precision array. +
    +
    info
    +
    Error code. +
    +Scope: local +
    +Type: required +
    +Intent: out. +
    +An integer value; 0 means no error has been detected.
    diff --git a/docs/html/node103.html b/docs/html/node103.html index cb70feef..af95e6ca 100644 --- a/docs/html/node103.html +++ b/docs/html/node103.html @@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds Jens Lippmann, Marek Rouchal, Martin Wilck and others --> -Iterative Methods - +psb_precdescr -- Prints a description of current preconditioner + @@ -18,61 +18,80 @@ original version by: Nikos Drakos, CBLU, University of Leeds - - - + + - next - + up - previous - contents
    - Next: psb_krylov Krylov - Up: userhtml - Previous: psb_precdescr Prints -   Next: Iterative Methods + Up: Preconditioner routines + Previous: psb_precaply Preconditioner +   Contents

    -

    - -
    -Iterative Methods -

    +

    +psb_precdescr -- Prints a description of current + 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 psb_precdescr(prec)
    +call psb_precdescr(prec, iout)
    +

    -


    - -Subsections +
    +
    Type:
    +
    Asynchronous. +
    +
    On Entry
    +
    +
    +
    prec
    +
    the preconditioner. +Scope: local +
    +Type: required +
    +Intent: in. +
    +Specified as: a preconditioner data structure precdatapsb_prec_type. +
    +
    iout
    +
    output unit. +Scope: local +
    +Type: optiona +
    +Intent: in. +
    +Specified as: an integer number. +
    +
    - - +



    diff --git a/docs/html/node104.html b/docs/html/node104.html index 20518e2f..5c6bb845 100644 --- a/docs/html/node104.html +++ b/docs/html/node104.html @@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds Jens Lippmann, Marek Rouchal, Martin Wilck and others --> -psb_krylov -- Krylov Methods Driver Routine - +Iterative Methods + @@ -18,370 +18,62 @@ original version by: Nikos Drakos, CBLU, University of Leeds - - + + + - next - + up - previous - contents
    - Next: Bibliography - Up: Iterative Methods - Previous: Iterative Methods -   Next: psb_krylov Krylov + Up: userhtml + Previous: psb_precdescr Prints +   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 is the normwise backward error, in the infinity -norm, i.e. 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} -
    -
    -

    -or the 2-norm residual reduction -

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

    -according to the value passed through 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. - -

    -

    -call psb_krylov(method,a,prec,b,x,eps,desc_a,info,&
    -     & itmax,iter,err,itrace,irst,istop,cond)
    -
    +Iterative Methods +

    -

    -
    Type:
    -
    Synchronous. -
    -
    On Entry
    -
    -
    -
    method
    -
    a string that defines the iterative method to be - used. Supported values are: -
    -
    CG:
    -
    the Conjugate Gradient method; - -
    -
    CGS:
    -
    the Conjugate Gradient Stabilized method; +In this chapter we provide routines for preconditioners and iterative +methods. The interfaces for Krylov subspace methods are available in +the module psb_krylov_mod.

    -

    -
    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_spmat_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. -
    -
    x
    -
    The initial guess. -
    -Scope: local -
    -Type: required -
    -Intent: inout. -
    -Specified as: a rank one array. -
    -
    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. Default: 2. -
    -
    On Return
    -
    -
    -
    x
    -
    The computed solution. -
    -Scope: local -
    -Type: required -
    -Intent: inout. -
    -Specified as: a rank one array. -
    -
    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. -
    -Scope: global -
    -Type: optional -
    -Intent: out. -
    -Returned as: a real number. -
    -
    info
    -
    Error code. -
    -Scope: local -
    -Type: required -
    -Intent: out. -
    -An integer value; 0 means no error has been detected. -
    -
    - -

    - -

    - -

    -


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

    + +Subsections + + + +

    diff --git a/docs/html/node105.html b/docs/html/node105.html index a4aaa0a6..43fe42ab 100644 --- a/docs/html/node105.html +++ b/docs/html/node105.html @@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds Jens Lippmann, Marek Rouchal, Martin Wilck and others --> -Bibliography - +psb_krylov -- Krylov Methods Driver Routine + @@ -18,141 +18,370 @@ original version by: Nikos Drakos, CBLU, University of Leeds - - - + + - next - + up - previous - contents
    - Next: About this document ... - Up: userhtml - Previous: psb_krylov Krylov -   Next: Bibliography + Up: Iterative Methods + Previous: Iterative Methods +   Contents -

    +
    +
    - -

    -Bibliography -

    + +

    +
    +psb_krylov -- Krylov Methods Driver + Routine +

    +

    -

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

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

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

    -

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

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

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

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

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

    9 +The stopping criterion is the normwise backward error, in the infinity +norm, i.e. 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} +
    +
    +

    +or the 2-norm residual reduction +

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

    +according to the value passed through 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. + +

    +

    +call psb_krylov(method,a,prec,b,x,eps,desc_a,info,&
    +     & itmax,iter,err,itrace,irst,istop,cond)
    +
    + +

    +

    +
    Type:
    +
    Synchronous. +
    +
    On Entry
    -S. Filippone and M. Colajanni, -PSBLAS: A Library for Parallel Linear Algebra -Computation on Sparse Matrices, +
    +
    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; + +

    +

    +
    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$.
    -ACM Transactions on Mathematical Software, 26(4), pp. 527-550, 2000. -

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

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

    12 -
    -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. +Scope: local +
    +Type: required +
    +Intent: in. +
    +Specified as: a structured data of type spdatapsb_spmat_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. +
    +
    x
    +
    The initial guess. +
    +Scope: local +
    +Type: required +
    +Intent: inout. +
    +Specified as: a rank one array. +
    +
    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.

    -

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

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

    15 +
    +
    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. 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. +
    +
    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. +
    +Scope: global +
    +Type: optional +
    +Intent: out. +
    +Returned as: a real number. +
    +
    info
    +
    Error code. +
    +Scope: local +
    +Type: required +
    +Intent: out. +
    +An integer value; 0 means no error has been detected. +

    -


    + +

    + +

    +


    + + +next + +up + +previous + +contents +
    + Next: Bibliography + Up: Iterative Methods + Previous: Iterative Methods +   Contents + diff --git a/docs/html/node106.html b/docs/html/node106.html index b41c0584..154ca586 100644 --- a/docs/html/node106.html +++ b/docs/html/node106.html @@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds Jens Lippmann, Marek Rouchal, Martin Wilck and others --> -About this document ... - +Bibliography + @@ -18,52 +18,140 @@ original version by: Nikos Drakos, CBLU, University of Leeds - + + + -next - +next + up - previous - contents
    - Up: Next: About this document ... + Up: userhtml - Previous: Bibliography -   Previous: psb_krylov Krylov +   Contents -
    -
    +

    + +

    +Bibliography +

    +

    +

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

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

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

    -About this document ... -

    -

    -This document was generated using the -LaTeX2HTML translator Version 2008 (1.71)

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

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

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

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

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

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

    9 +
    +S. Filippone and M. Colajanni, +PSBLAS: A Library for Parallel Linear Algebra +Computation on Sparse Matrices,
    -Copyright © 1997, 1998, 1999, -Ross Moore, -Mathematics Department, Macquarie University, Sydney. +ACM Transactions on Mathematical Software, 26(4), pp. 527-550, 2000. +

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

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

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

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

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

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

    15 +
    +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 on 2010-05-27


    diff --git a/docs/html/node107.html b/docs/html/node107.html index 6337076a..a7848e86 100644 --- a/docs/html/node107.html +++ b/docs/html/node107.html @@ -1,143 +1,69 @@ - -psb_precinit -- Initialize a preconditioner - +About this document ... + - + - - - -next - + -up - + -previous - + -contents +contents
    - Next: psb_precbld Builds - Up: Up: userhtml - Previous: Preconditioner routines -   Previous: Bibliography +   Contents

    -

    -psb_precinit -- Initialize a preconditioner +

    +About this document ...

    - -

    -ifstarssyntaxsyntaxcall psb_precinitprec, ptype, info - +

    +This document was generated using the +LaTeX2HTML translator Version 2008 (1.71)

    -

    -
    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 +Copyright © 1993, 1994, 1995, 1996, +Nikos Drakos, +Computer Based Learning Unit, University of Leeds.
    -Intent: inout. -
    -Specified as: a preconditioner data structure precdatapsb_prec_type. -
    -
    info
    -
    Scope: global -
    -Type: required -
    -Intent: out. -
    -Error code: if no error, 0 is returned. -
    -
    -Notes -Legal inputs to this subroutine are interpreted depending on the -$ptype$ string as follows3: -
    -
    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. -
    -
    - +Copyright © 1997, 1998, 1999, +Ross Moore, +Mathematics Department, Macquarie University, Sydney. +

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

    +The translation was initiated by on 2010-06-22


    diff --git a/docs/html/node11.html b/docs/html/node11.html index ded00ea9..7d80675d 100644 --- a/docs/html/node11.html +++ b/docs/html/node11.html @@ -26,26 +26,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds - next - up - previous - contents
    - Next: Next: Named Constants - Up: Up: Data Structures - Previous: Previous: Named Constants -   Contents

    @@ -223,32 +223,32 @@ values: Subsections
    - next - up - previous - contents
    - Next: Next: Named Constants - Up: Up: Data Structures - Previous: Previous: Named Constants -   Contents diff --git a/docs/html/node12.html b/docs/html/node12.html index 1adee702..dccdb039 100644 --- a/docs/html/node12.html +++ b/docs/html/node12.html @@ -25,26 +25,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds - next - up - previous - contents
    - Next: Next: Preconditioner data structure - Up: Up: Sparse Matrix data structure - Previous: Previous: Sparse Matrix data structure -   Contents

    diff --git a/docs/html/node13.html b/docs/html/node13.html index bb1d56b8..f842b628 100644 --- a/docs/html/node13.html +++ b/docs/html/node13.html @@ -26,26 +26,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds - next - up - previous - contents
    - Next: Next: Data structure query routines - Up: Up: Data Structures - Previous: Previous: Named Constants -   Contents

    diff --git a/docs/html/node14.html b/docs/html/node14.html index d53a0be1..101909b1 100644 --- a/docs/html/node14.html +++ b/docs/html/node14.html @@ -26,26 +26,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds - next - up - previous - contents
    - Next: Next: psb_cd_get_local_rows Get - Up: Up: Data Structures - Previous: Previous: Preconditioner data structure -   Contents

    @@ -61,13 +61,13 @@ Data structure query routines Subsections diff --git a/docs/html/node15.html b/docs/html/node15.html index 84b84610..1d1ed4bc 100644 --- a/docs/html/node15.html +++ b/docs/html/node15.html @@ -26,26 +26,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds - next - up - previous - contents
    - Next: Next: psb_cd_get_local_cols Get - Up: Up: Data structure query routines - Previous: Previous: Data structure query routines -   Contents

    diff --git a/docs/html/node16.html b/docs/html/node16.html index 2deec276..c0d74830 100644 --- a/docs/html/node16.html +++ b/docs/html/node16.html @@ -26,26 +26,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds - next - up - previous - contents
    - Next: Next: psb_cd_get_global_rows Get - Up: Up: Data structure query routines - Previous: Previous: psb_cd_get_local_rows Get -   Contents

    diff --git a/docs/html/node17.html b/docs/html/node17.html index 7b0a9445..f9e2d937 100644 --- a/docs/html/node17.html +++ b/docs/html/node17.html @@ -26,26 +26,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds - next - up - previous - contents
    - Next: Next: psb_cd_get_global_cols Get - Up: Up: Data structure query routines - Previous: Previous: psb_cd_get_local_cols Get -   Contents

    diff --git a/docs/html/node18.html b/docs/html/node18.html index d5a3fee4..418c8d21 100644 --- a/docs/html/node18.html +++ b/docs/html/node18.html @@ -25,26 +25,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds - next - up - previous - contents
    - Next: Next: psb_cd_get_context Get communication context - Up: Up: Data structure query routines - Previous: Previous: psb_cd_get_global_rows Get -   Contents

    diff --git a/docs/html/node19.html b/docs/html/node19.html index 0e23472d..db1371f6 100644 --- a/docs/html/node19.html +++ b/docs/html/node19.html @@ -25,26 +25,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds - next - up - previous - contents
    - Next: Next: psb_cd_get_large_threshold Get - Up: Up: Data Structures - Previous: Previous: psb_cd_get_global_cols Get -   Contents

    @@ -96,19 +96,19 @@ Specified as: a structured data of type descdatapsb_desc_type. Subsections diff --git a/docs/html/node2.html b/docs/html/node2.html index baa47b32..6a19f426 100644 --- a/docs/html/node2.html +++ b/docs/html/node2.html @@ -26,26 +26,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds - next - up - previous - contents
    - Next: Next: General overview - Up: Up: userhtml - Previous: Previous: Contents -   Contents

    @@ -71,12 +71,12 @@ passing.

    The PSBLAS library is internally implemented in the Fortran 95 [14] programming language, with reuse and/or + HREF="node106.html#metcalf">14] programming language, with reuse and/or adaptation of some existing Fortran 77 software, and a handful of C routines. A similar approach has been advocated by a number of authors, e.g. [13]. Moreover, the Fortran 95 facilities for dynamic + HREF="node106.html#machiels">13]. 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 @@ -91,12 +91,12 @@ Fortran compiler from the Free Software Foundation (as of version 4.2). The presentation of the PSBLAS library follows the general structure of the proposal for serial Sparse BLAS [7,8], which in its turn is based on the + HREF="node106.html#sblas97">7,8], which in its turn is based on the proposal for BLAS on dense matrices [12,4,5]. + HREF="node106.html#BLAS1">12,4,5].

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


    - next - up - previous - contents
    - Next: Next: General overview - Up: Up: userhtml - Previous: Previous: Contents -   Contents diff --git a/docs/html/node20.html b/docs/html/node20.html index 66b382f1..a74d2ef9 100644 --- a/docs/html/node20.html +++ b/docs/html/node20.html @@ -26,26 +26,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds - next - up - previous - contents
    - Next: Next: psb_cd_set_large_threshold Set - Up: Up: psb_cd_get_context Get communication context - Previous: Previous: psb_cd_get_context Get communication context -   Contents

    diff --git a/docs/html/node21.html b/docs/html/node21.html index ae0f7a7e..7a6fd4f7 100644 --- a/docs/html/node21.html +++ b/docs/html/node21.html @@ -26,26 +26,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds - next - up - previous - contents
    - Next: Next: psb_sp_get_nrows Get - Up: Up: psb_cd_get_context Get communication context - Previous: Previous: psb_cd_get_large_threshold Get -   Contents

    diff --git a/docs/html/node22.html b/docs/html/node22.html index 6c53e8f2..1d252791 100644 --- a/docs/html/node22.html +++ b/docs/html/node22.html @@ -26,26 +26,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds - next - up - previous - contents
    - Next: Next: psb_sp_get_ncols Get - Up: Up: psb_cd_get_context Get communication context - Previous: Previous: psb_cd_set_large_threshold Set -   Contents

    diff --git a/docs/html/node23.html b/docs/html/node23.html index 98fbbec5..3720aaff 100644 --- a/docs/html/node23.html +++ b/docs/html/node23.html @@ -26,26 +26,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds - next - up - previous - contents
    - Next: Next: psb_sp_get_nnzeros Get - Up: Up: psb_cd_get_context Get communication context - Previous: Previous: psb_sp_get_nrows Get -   Contents

    diff --git a/docs/html/node24.html b/docs/html/node24.html index bf671eca..5d45ff82 100644 --- a/docs/html/node24.html +++ b/docs/html/node24.html @@ -25,26 +25,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds - next - up - previous - contents
    - Next: Next: Computational routines - Up: Up: psb_cd_get_context Get communication context - Previous: Previous: psb_sp_get_ncols Get -   Contents

    diff --git a/docs/html/node25.html b/docs/html/node25.html index 0a72eb37..ee7605f7 100644 --- a/docs/html/node25.html +++ b/docs/html/node25.html @@ -18,7 +18,7 @@ original version by: Nikos Drakos, CBLU, University of Leeds - + @@ -26,26 +26,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds - next - up - previous - contents
    - Next: Next: psb_geaxpby General - Up: Up: userhtml - Previous: Previous: psb_sp_get_nnzeros Get -   Contents

    @@ -61,28 +61,30 @@ Computational routines Subsections

    diff --git a/docs/html/node26.html b/docs/html/node26.html index 7b6e0f58..72ec51ae 100644 --- a/docs/html/node26.html +++ b/docs/html/node26.html @@ -26,26 +26,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds - next - up - previous - contents
    - Next: Next: psb_gedot Dot - Up: Up: Computational routines - Previous: Previous: Computational routines -   Contents

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


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

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


    - next - up - previous - contents
    - Next: Next: psb_gedots Generalized - Up: Up: Computational routines - Previous: Previous: psb_geaxpby General -   Contents diff --git a/docs/html/node28.html b/docs/html/node28.html index 605db5c1..5d7c0aa9 100644 --- a/docs/html/node28.html +++ b/docs/html/node28.html @@ -26,26 +26,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds - next - up - previous - contents
    - Next: Next: psb_geamax Infinity-Norm - Up: Up: Computational routines - Previous: Previous: psb_gedot Dot -   Contents

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


    - next - up - previous - contents
    - Next: Next: psb_geamax Infinity-Norm - Up: Up: Computational routines - Previous: Previous: psb_gedot Dot -   Contents diff --git a/docs/html/node29.html b/docs/html/node29.html index a21f2fd1..436f6988 100644 --- a/docs/html/node29.html +++ b/docs/html/node29.html @@ -26,26 +26,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds - next - up - previous - contents
    - Next: Next: psb_geamaxs Generalized - Up: Up: Computational routines - Previous: Previous: psb_gedots Generalized -   Contents

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


    - next - up - previous - contents
    - Next: Next: psb_geamaxs Generalized - Up: Up: Computational routines - Previous: Previous: psb_gedots Generalized -   Contents diff --git a/docs/html/node3.html b/docs/html/node3.html index 067d5ed1..d95200c0 100644 --- a/docs/html/node3.html +++ b/docs/html/node3.html @@ -26,26 +26,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds - next - up - previous - contents
    - Next: Next: Basic Nomenclature - Up: Up: userhtml - Previous: Previous: Introduction -   Contents

    @@ -77,7 +77,7 @@ The serial parts of the computation on each process are executed through calls to the serial sparse BLAS subroutines. In a similar way, the inter-process message exchanges are implemented through the Basic Linear Algebra Communication Subroutines (BLACS) library [6] + HREF="node106.html#BLACS">6] that guarantees a portable and efficient communication layer. The Message Passing Interface code is encapsulated within the BLACS layer. However, in some cases, MPI routines are directly used either @@ -86,7 +86,7 @@ the BLACS package doesn't provide any method.

    In any case we provide wrappers around the BLACS routines so that the -user does not need to delve into their details (see Sec. 7). +user does not need to delve into their details (see Sec. 7).

    @@ -141,7 +141,7 @@ 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 [11]. + HREF="node106.html#METIS">11]. Dense vectors conform to sparse matrices, that is, the entries of a vector follow the same distribution of the matrix rows. @@ -161,38 +161,38 @@ bottleneck would make this option unattractive in most cases. Subsections


    - next - up - previous - contents
    - Next: Next: Basic Nomenclature - Up: Up: userhtml - Previous: Previous: Introduction -   Contents diff --git a/docs/html/node30.html b/docs/html/node30.html index 27a411ae..abbc96c4 100644 --- a/docs/html/node30.html +++ b/docs/html/node30.html @@ -26,26 +26,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds - next - up - previous - contents
    - Next: Next: psb_geasum 1-Norm - Up: Up: Computational routines - Previous: Previous: psb_geamax Infinity-Norm -   Contents

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


    - next - up - previous - contents
    - Next: Next: psb_geasum 1-Norm - Up: Up: Computational routines - Previous: Previous: psb_geamax Infinity-Norm -   Contents diff --git a/docs/html/node31.html b/docs/html/node31.html index 5bf61024..691a20d9 100644 --- a/docs/html/node31.html +++ b/docs/html/node31.html @@ -26,26 +26,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds - next - up - previous - contents
    - Next: Next: psb_geasums Generalized - Up: Up: Computational routines - Previous: Previous: psb_geamaxs Generalized -   Contents

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


    - next - up - previous - contents
    - Next: Next: psb_geasums Generalized - Up: Up: Computational routines - Previous: Previous: psb_geamaxs Generalized -   Contents diff --git a/docs/html/node32.html b/docs/html/node32.html index 9e7b2c20..8c17a30d 100644 --- a/docs/html/node32.html +++ b/docs/html/node32.html @@ -26,26 +26,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds - next - up - previous - contents
    - Next: psb_genrm2s Generalized - Up: Next: psb_genrm2 2-Norm + Up: Computational routines - Previous: Previous: psb_geasum 1-Norm -   Contents

    @@ -236,191 +236,29 @@ An integer value; 0 means no error has been detected. -

    -ifstarsubroutinesubroutinepsb_genrm22-Norm of Vector - -

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

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

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

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

    - -

    -

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

    -
    - -

    -

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

    -

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

    -

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


    - next - up - previous - contents
    - Next: psb_genrm2s Generalized - Up: Next: psb_genrm2 2-Norm + Up: Computational routines - Previous: Previous: psb_geasum 1-Norm -   Contents diff --git a/docs/html/node33.html b/docs/html/node33.html index bc8cb6ce..938a8f44 100644 --- a/docs/html/node33.html +++ b/docs/html/node33.html @@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds Jens Lippmann, Marek Rouchal, Martin Wilck and others --> -psb_genrm2s -- Generalized 1-Norm of Vector - +psb_genrm2 -- 2-Norm of Vector + @@ -26,57 +26,37 @@ original version by: Nikos Drakos, CBLU, University of Leeds - next - up - previous - contents
    - Next: psb_spnrmi Infinity - Up: Next: psb_genrm2s Generalized + Up: Computational routines - Previous: Previous: psb_geasums Generalized -   Contents

    -psb_genrm2s -- Generalized 1-Norm of Vector +psb_genrm2 -- 2-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$. @@ -84,82 +64,77 @@ This function computes the 1-norm of a vector $x$ is a real vector -it computes 1-norm as: + ALT="$x$"> is a double precision real vector +it computes 2-norm as:

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

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

    \begin{displaymath}res(i) \leftarrow \sqrt{x^H x}\end{displaymath} + WIDTH="108" HEIGHT="24" BORDER="0" + SRC="img45.png" + ALT="\begin{displaymath}nrm2 \leftarrow \sqrt{x^H x}\end{displaymath}">

    -

    -

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


    -
    +
    -
    Table 9: +Table 8: Data types
    + WIDTH="43" HEIGHT="13" ALIGN="BOTTOM" BORDER="0" + SRC="img46.png" + ALT="$nrm2$"> - + - + - + - + - +
    $res$ $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
    @@ -168,6 +143,11 @@ Data types


    +

    +

    +psb_genrm2(x, desc_a, info)
    +
    +

    Type:
    @@ -181,8 +161,7 @@ Data types $x$. - + ALT="$x$">.
    Scope: local
    @@ -190,9 +169,9 @@ Type: required
    Intent: in.
    -Specified as: a rank one or two array +Specified as: a rank one or two array containing numbers of type specified in -Table 9. +Table 8.
    desc_a
    contains data structures for communications. @@ -210,17 +189,17 @@ Specified as: a structured data 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$.
    Scope: global
    -Intent: out. +Type: required
    -Specified as: a long precision real number. +Specified as: a long precision real number.
    info
    Error code. @@ -238,26 +217,26 @@ An integer value; 0 means no error has been detected.


    - next - up - previous - contents
    - Next: psb_spnrmi Infinity - Up: Next: psb_genrm2s Generalized + Up: Computational routines - Previous: Previous: psb_geasums Generalized -   Contents diff --git a/docs/html/node34.html b/docs/html/node34.html index 8fd0a8d3..086e94ce 100644 --- a/docs/html/node34.html +++ b/docs/html/node34.html @@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds Jens Lippmann, Marek Rouchal, Martin Wilck and others --> -psb_spnrmi -- Infinity Norm of Sparse Matrix - +psb_genrm2s -- Generalized 2-Norm of Vector + @@ -26,96 +26,96 @@ original version by: Nikos Drakos, CBLU, University of Leeds - next - up - previous - contents
    - Next: psb_spmm Sparse - Up: Next: psb_spnrmi Infinity + Up: Computational routines - Previous: psb_genrm2s Generalized -   Previous: psb_genrm2 2-Norm +   Contents

    -psb_spnrmi -- Infinity Norm of Sparse Matrix +psb_genrm2s -- Generalized 2-Norm of Vector

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

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

    \begin{displaymath}nrmi \leftarrow \Vert A\Vert _\infty \end{displaymath} + WIDTH="125" HEIGHT="28" BORDER="0" + SRC="img47.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
    - + WIDTH="26" HEIGHT="13" ALIGN="BOTTOM" BORDER="0" + SRC="img34.png" + ALT="$res$"> + + - + + - + + - - + + + - - + + +
    $A$Function$x$Subroutine
    Short Precision Realpsb_spnrmiShort Precision Realpsb_genrm2s
    Long Precision Realpsb_spnrmiLong Precision Realpsb_genrm2s
    Short Precision Complexpsb_spnrmi
    Short Precision RealShort Precision Complexpsb_genrm2s
    Long Precision Complexpsb_spnrmi
    Long Precision RealLong Precision Complexpsb_genrm2s
    @@ -124,11 +124,6 @@ Data types


    -

    -

    -psb_spnrmi(A, desc_a, info)
    -
    -

    Type:
    @@ -137,20 +132,23 @@ psb_spnrmi(A, desc_a, info)
    On Entry
    -
    a
    -
    the local portion of the global sparse matrix +
    x
    +
    the local portion of global dense matrix $A$. + WIDTH="13" HEIGHT="13" ALIGN="BOTTOM" BORDER="0" + SRC="img26.png" + ALT="$x$">. +
    Scope: local
    -Type: required +Type: required
    Intent: in.
    -Specified as: a structured data of type spdatapsb_spmat_type. +Specified as: a rank one or two array +containing numbers of type specified in +Table 9.
    desc_a
    contains data structures for communications. @@ -162,19 +160,23 @@ Type: required Intent: in.
    Specified as: a structured data of type descdatapsb_desc_type. + +

    On Return
    -
    Function value
    -
    is the infinity-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. @@ -192,26 +194,26 @@ An integer value; 0 means no error has been detected.


    - next - up - previous - contents
    - Next: psb_spmm Sparse - Up: Next: psb_spnrmi Infinity + Up: Computational routines - Previous: psb_genrm2s Generalized -   Previous: psb_genrm2 2-Norm +   Contents diff --git a/docs/html/node35.html b/docs/html/node35.html index 6f93c590..9d93b7f9 100644 --- a/docs/html/node35.html +++ b/docs/html/node35.html @@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds Jens Lippmann, Marek Rouchal, Martin Wilck and others --> -psb_spmm -- Sparse Matrix by Dense Matrix Product - +psb_spnrmi -- Infinity Norm of Sparse Matrix + @@ -26,140 +26,75 @@ original version by: Nikos Drakos, CBLU, University of Leeds - next - up - previous - contents
    - Next: psb_spsm Triangular - Up: Next: psb_spmm Sparse + Up: Computational routines - Previous: psb_spnrmi Infinity -   Previous: psb_genrm2s Generalized +   Contents

    -psb_spmm -- Sparse Matrix by Dense Matrix Product +psb_spnrmi -- Infinity Norm of Sparse Matrix

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

    -
    -

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

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

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

    +

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

    -

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

    +
    +

    where:
    -
    $x$
    -
    is the global dense submatrix $x_{:, :}$ -
    -
    $y$
    -
    is the global dense submatrix $y_{:, :}$ -
    $A$
    -
    is the global sparse submatrix represents the global matrix $A$
    -
    $P_r, P_c$
    -
    are the permutation matrices. -


    -
    +
    - - + ALT="$A$"> + - + - + - + - +
    Table 11: +Table 10: Data types
    @@ -167,32 +102,20 @@ Data types
    $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
    @@ -203,10 +126,8 @@ 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) +

    @@ -216,23 +137,8 @@ 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 11. -
    a
    -
    the local portion of the sparse matrix +
    the local portion of the global sparse matrix in.
    Specified as: a structured data of type spdatapsb_spmat_type.
    -
    x
    -
    the local portion of global dense matrix -$x$. - -
    -Scope: local -
    -Type: required -
    -Intent: in. -
    -Specified as: a rank one or two array -containing numbers of type specified in -Table 11. 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 11. -
    -
    y
    -
    the local portion of global dense matrix -$y$. - -
    -Scope: local -
    -Type: required -
    -Intent: inout. -
    -Specified as: a rank one or two array -containing numbers of type specified in -Table 11. The rank of $y$ must be the same of $x$. -
    desc_a
    contains data structures for communications.
    @@ -319,74 +163,18 @@ Intent: in.
    Specified as: a structured data of type descdatapsb_desc_type.
    -
    trans
    -
    indicate 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 submatrix $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 11. +Specified as: a long precision real number.
    info
    Error code. @@ -404,26 +192,26 @@ An integer value; 0 means no error has been detected.


    - next - up - previous - contents
    - Next: psb_spsm Triangular - Up: Next: psb_spmm Sparse + Up: Computational routines - Previous: psb_spnrmi Infinity -   Previous: psb_genrm2s Generalized +   Contents diff --git a/docs/html/node36.html b/docs/html/node36.html index a1bfb7b2..5f7281e1 100644 --- a/docs/html/node36.html +++ b/docs/html/node36.html @@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds Jens Lippmann, Marek Rouchal, Martin Wilck and others --> -psb_spsm -- Triangular System Solve - +psb_spmm -- Sparse Matrix by Dense Matrix Product + @@ -18,6 +18,7 @@ original version by: Nikos Drakos, CBLU, University of Leeds + @@ -25,64 +26,96 @@ original version by: Nikos Drakos, CBLU, University of Leeds - next - up - previous - contents
    - Next: Communication routines - Up: Next: psb_spsm Triangular + Up: Computational routines - Previous: psb_spmm Sparse -   Previous: psb_spnrmi 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 P_r T^{-1} P_c x + \beta y\\
-y &\leftar...
-...\beta y\\
-y &\leftarrow& \alpha P_r T^{-H} P_c D x + \beta y\\
-\end{eqnarray*}
    -

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

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

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

    where: @@ -93,7 +126,7 @@ where: ALT="$x$">

    is the global dense submatrix $x_{:, :}$
    $y$
    is the global dense submatrix $y_{:, :}$
    $T$
    -
    is the global sparse block triangular submatrix $T$ -
    -
    $D$
    -
    is the scaling diagonal matrix. + WIDTH="16" HEIGHT="14" ALIGN="BOTTOM" BORDER="0" + SRC="img1.png" + ALT="$A$"> +
    is the global sparse submatrix $A$
    $P_r, P_c$
    are the permutation matrices.
    -

    -

    -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 12: +Table 11: Data types
    - + - + - + - +
    $T$, $A$, $x$, $y$, $D$, $\alpha$, Subroutine
    Short Precision Realpsb_spsmpsb_spmm
    Long Precision Realpsb_spsmpsb_spmm
    Short Precision Complexpsb_spsmpsb_spmm
    Long Precision Complexpsb_spsmpsb_spmm
    @@ -184,6 +201,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:
    @@ -205,14 +229,14 @@ Type: required Intent: in.
    Specified as: a number of the data type indicated in -Table 12. +Table 11. -
    t
    -
    the global portion of the sparse matrix +
    a
    +
    the local portion of the sparse matrix $T$. + WIDTH="16" HEIGHT="14" ALIGN="BOTTOM" BORDER="0" + SRC="img1.png" + ALT="$A$">.
    Scope: local
    @@ -220,8 +244,7 @@ Type: required
    Intent: in.
    -Specified as: a structured data type specified in -§ 3. +Specified as: a structured data of type spdatapsb_spmat_type.
    x
    the local portion of global dense matrix @@ -237,9 +260,9 @@ Type: required
    Intent: in.
    -Specified as: a rank one or two array +Specified as: a rank one or two array containing numbers of type specified in -Table 12. The rank of 11. The rank of $x$ must be the same of required
    Intent: in.
    -Specified as: a number of the data type indicated in Table 12. +Specified as: a number of the data type indicated in Table 11.
    y
    the local portion of global dense matrix @@ -277,7 +300,7 @@ Intent: inout.
    Specified as: a rank one or two array containing numbers of type specified in -Table 12. The rank of 11. The rank of $y$ must be the same of in. Specified as: a structured data of type descdatapsb_desc_type.
    trans
    -
    specify with unitd the operation to perform. +
    indicate 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 @@ -317,86 +342,15 @@ 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 12. + +

    work
    -
    a work array. +
    work array.
    Scope: local
    @@ -407,8 +361,11 @@ 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.

    @@ -416,12 +373,10 @@ TARGET attribute.
    y
    -
    the local portion of global dense matrix -the local portion of result submatrix $y$. - + ALT="$y$">.
    Scope: local
    @@ -431,7 +386,7 @@ Intent: inout.
    Specified as: an array of rank one or two containing numbers of type specified in -Table 12. +Table 11.
    info
    Error code. @@ -449,26 +404,26 @@ An integer value; 0 means no error has been detected.


    - next - up - previous - contents
    - Next: Communication routines - Up: Next: psb_spsm Triangular + Up: Computational routines - Previous: psb_spmm Sparse -   Previous: psb_spnrmi Infinity +   Contents diff --git a/docs/html/node37.html b/docs/html/node37.html index 3841acf1..1184abfa 100644 --- a/docs/html/node37.html +++ b/docs/html/node37.html @@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds Jens Lippmann, Marek Rouchal, Martin Wilck and others --> -Communication routines - +psb_spsm -- Triangular System Solve + @@ -18,63 +18,459 @@ original version by: Nikos Drakos, CBLU, University of Leeds - - - + + - 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 P_r T^{-1} P_c x + \beta y\\
+y &\leftar...
+...\beta y\\
+y &\leftarrow& \alpha P_r T^{-H} P_c D x + \beta y\\
+\end{eqnarray*}
    +

    + +

    +where: +

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

    +

    +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 12: +Data types
    +
    + + + + + + + + + + + + + + + + +
    $T$, $x$, $y$, $D$, $\alpha$, $\beta$Subroutine
    Short Precision Realpsb_spsm
    Long Precision Realpsb_spsm
    Short Precision Complexpsb_spsm
    Long Precision Complexpsb_spsm
    +
    +
    +

    +
    + +

    +

    +
    Type:
    +
    Synchronous. +
    +
    On Entry
    +
    +
    +
    alpha
    +
    the scalar $\alpha$. +
    +Scope: global +
    +Type: required +
    +Intent: in. +
    +Specified as: a number of the data type indicated in +Table 12. +
    +
    t
    +
    the global portion of the sparse matrix +$T$. +
    +Scope: local +
    +Type: required +
    +Intent: in. +
    +Specified as: a structured data 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 +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 +containing numbers of type specified in +Table 12. The rank of $y$ must be the same of $x$. +
    +
    desc_a
    +
    contains data structures for communications. +
    +Scope: local +
    +Type: required +
    +Intent: in. +
    +Specified as: a structured data 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 12. +
    +
    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 12. +
    +
    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: Communication routines + Up: Computational routines + Previous: psb_spmm Sparse +   Contents + diff --git a/docs/html/node38.html b/docs/html/node38.html index 24e71341..80d44dc5 100644 --- a/docs/html/node38.html +++ b/docs/html/node38.html @@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds Jens Lippmann, Marek Rouchal, Martin Wilck and others --> -psb_halo -- Halo Data Communication - +Communication routines + @@ -18,636 +18,63 @@ original version by: Nikos Drakos, CBLU, University of Leeds - - - + + + - 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, and (optionally) scale the result: - -

    -

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

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

    -

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

    -
    +

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

    -

    -call psb_halo(x, desc_a, info)
    -call psb_halo(x, desc_a, info, alpha, work, data)
    -
    - -

    -

    -
    Type:
    -
    Synchronous. -
    -
    On Entry
    -
    -
    -
    x
    -
    global dense matrix $x$. -
    -Scope: local -
    -Type: required -
    -Intent: inout. -
    -Specified as: a rank one or two array with the TARGET attribute -containing numbers of type specified in -Table 13. -
    -
    desc_a
    -
    contains data structures for communications. -
    -Scope: local -
    -Type: required -
    -Intent: in. -
    -Specified as: a structured data of type descdatapsb_desc_type. -
    -
    alpha
    -
    the scalar $\alpha$. -
    -Scope: global -
    -Type: optional -
    -Intent: in. -
    -Default: $alpha = 1 $ -
    -Specified as: a number of the data type indicated in Table 13. -
    -
    work
    -
    the work array. -
    -Scope: local -
    -Type: optional -
    -Intent: inout. -
    -Specified as: a rank one array of the same type of $x$ with the -POINTER attribute. -
    -
    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 13. -
    -
    info
    -
    the local portion of result submatrix $y$. -
    -Scope: local -
    -Type: required -
    -Intent: out. -
    -An integer value that contains an error code. -
    -
    - -
    - - - -
    Figure 6: -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. 6, -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/node39.html b/docs/html/node39.html index e5af0087..1fc78113 100644 --- a/docs/html/node39.html +++ b/docs/html/node39.html @@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds Jens Lippmann, Marek Rouchal, Martin Wilck and others --> -psb_ovrl -- Overlap Update - +psb_halo -- Halo Data Communication + @@ -20,57 +20,58 @@ original version by: Nikos Drakos, CBLU, University of Leeds - + - 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, and (optionally) scale the result:


    \begin{displaymath}x \leftarrow Q x \end{displaymath} + WIDTH="53" HEIGHT="24" BORDER="0" + SRC="img61.png" + ALT="\begin{displaymath}x \leftarrow \alpha x \end{displaymath}">

    @@ -80,52 +81,42 @@ where: WIDTH="13" HEIGHT="13" ALIGN="BOTTOM" BORDER="0" SRC="img26.png" ALT="$x$"> -
    is the global dense submatrix $x$ -
    -
    $Q$
    -
    is the overlap operator; it is the composition of two -operators $ P_a$ and $ P^{T}$. +
    is a global dense submatrix.


    -
    +
    -


    - 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 diff --git a/docs/html/node4.html b/docs/html/node4.html index a2dec0bf..73c2497f 100644 --- a/docs/html/node4.html +++ b/docs/html/node4.html @@ -26,26 +26,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds - next - up - previous - contents
    - Next: Next: Library contents - Up: Up: General overview - Previous: Previous: General overview -   Contents

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

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


    - next - up - previous - contents
    - Next: Next: Library contents - Up: Up: General overview - Previous: Previous: General overview -   Contents diff --git a/docs/html/node40.html b/docs/html/node40.html index 7b7049a2..262ff5ed 100644 --- a/docs/html/node40.html +++ b/docs/html/node40.html @@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds Jens Lippmann, Marek Rouchal, Martin Wilck and others --> -psb_gather -- Gather Global Dense Matrix - +psb_ovrl -- Overlap Update + @@ -20,123 +20,112 @@ original version by: Nikos Drakos, CBLU, University of Leeds - + - 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="img65.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$. + WIDTH="13" HEIGHT="13" ALIGN="BOTTOM" BORDER="0" + SRC="img26.png" + ALT="$x$"> +
    is the global dense submatrix $x$
    $collect$
    -
    is the collect function. + WIDTH="17" HEIGHT="30" ALIGN="MIDDLE" BORDER="0" + SRC="img66.png" + ALT="$Q$"> +
    is the overlap operator; it is the composition of two +operators $ P_a$ and $ P^{T}$.


    -
    +
    Table 14: +Table 13: Data types
    + + + - + - + - + - +
    $\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
    @@ -136,9 +127,9 @@ Data types

    -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, alpha, work, data) +

    @@ -160,9 +151,9 @@ Type: required
    Intent: inout.
    -Specified as: a rank one or two array +Specified as: a rank one or two array with the TARGET attribute containing numbers of type specified in -Table 14. +Table 13.
    desc_a
    contains data structures for communications. @@ -175,40 +166,24 @@ 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$; -
    -
    +
    alpha
    +
    the scalar $\alpha$. +
    Scope: global
    -Intent: in. +Type: optional
    -Default: -$update\_type = psb\_avg\_ $ +Intent: in.
    -Scope: global +Default: $alpha = 1 $
    -Specified as: a integer variable. +Specified as: a number of the data type indicated in Table 13.
    work
    the work array. @@ -219,10 +194,22 @@ Type: optional
    Intent: inout.
    -Specified as: a one dimensional array of the same type of $x$. + ALT="$x$"> with the +POINTER attribute. +
    +
    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.

    @@ -241,12 +228,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 14. +Table 13.
    info
    -
    Error code. +
    the local portion of result submatrix $y$.
    Scope: local
    @@ -254,80 +244,46 @@ 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 7: +Figure 6: Sample discretization mesh.
    \includegraphics[scale=0.65]{figures/try8x8_ov.eps} + WIDTH="357" HEIGHT="313" ALIGN="BOTTOM" BORDER="0" + SRC="img64.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="img63.png" + ALT="\rotatebox{-90}{\includegraphics[scale=0.45]{figures/try8x8}}">
    -Example of use -Consider the discretization mesh depicted in fig. 7, -partitioned among two processes as shown by the dashed lines, with an -overlap of 1 extra layer with respect to the partition of -fig. 6; 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 +

    +Usage Example +Consider the discretization mesh depicted in fig. 6, +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) - -

    +call to psb_halo the contents of the local vectors will be the +following:

    @@ -350,7 +306,7 @@ Process 1 - + @@ -358,7 +314,7 @@ Process 1 - + @@ -366,7 +322,7 @@ Process 1 - + @@ -374,7 +330,7 @@ Process 1 - + @@ -382,7 +338,7 @@ Process 1 - + @@ -390,7 +346,7 @@ Process 1 - + @@ -398,7 +354,7 @@ Process 1 - + @@ -406,7 +362,7 @@ Process 1 - + @@ -505,7 +461,7 @@ Process 1 +21 @@ -513,7 +469,7 @@ Process 1 +22 @@ -521,7 +477,7 @@ Process 1 +23 @@ -529,7 +485,7 @@ Process 1 +24 @@ -537,195 +493,131 @@ Process 1 +25 - + +26 - + +27 - + +28 - + +29 - + +30 - + +31 - + +32 - + +33 - + - + +34 - + - + +35 - + - + +36 - + - + +37 - + - + +38 - + - + +39 - + - + +40 - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    1.0   1 33 1.5 2.0
    2 1.0   2 34 1.5 2.0
    3 1.0   3 35 1.5 2.0
    4 1.0   4 36 1.5 2.0
    5 1.0   5 37 1.5 2.0
    6 1.0   6 38 1.5 2.0
    7 1.0   7 39 1.5 2.0
    8 1.0   8 40 1.5 2.0
    9 2.0
    - 21 21 1.0   21 2.0
    - 22 22 1.0   22 2.0
    - 23 23 1.0   23 2.0
    - 24 24 1.0   24 2.0
    - 25 25 1.5 1.0   25 57 2.0
    - 26 26 1.5 1.0   26 58 2.0
    - 27 27 1.5 1.0   27 59 2.0
    - 28 28 1.5 1.0   28 60 2.0
    - 29 29 1.5 1.0   29 61 2.0
    - 30 30 1.5 1.0   30 62 2.0
    - 31 31 1.5 1.0   31 63 2.0
    - 32 32 1.5 1.0   32 64 2.0
    - 33 33 1.5 2.0   33 25 1.5 1.0
    - 34 34 1.5 2.0   34 26 1.5 1.0
    - 35 35 1.5 2.0   35 27 1.5 1.0
    - 36 36 1.5 2.0   36 28 1.5 1.0
    - 37 37 1.5 2.0   37 29 1.5 1.0
    - 38 38 1.5 2.0   38 30 1.5 1.0
    - 39 39 1.5 2.0   39 31 1.5 1.0
    - 40 40 1.5 2.0   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
    @@ -734,26 +626,26 @@ Process 1
    -
    Table 15: +Table 14: Data types
    + WIDTH="13" HEIGHT="13" ALIGN="BOTTOM" BORDER="0" + SRC="img26.png" + ALT="$x$"> - - - - + - + - + - +
    $x_i, y$ Subroutine
    Integerpsb_gather
    Short Precision Realpsb_gatherpsb_ovrl
    Long Precision Realpsb_gatherpsb_ovrl
    Short Precision Complexpsb_gatherpsb_ovrl
    Long Precision Complexpsb_gatherpsb_ovrl
    @@ -147,9 +136,9 @@ Data types

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

    @@ -159,21 +148,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 containing numbers of the type -indicated in Table 15. +Specified as: a rank one or two array +containing numbers of type specified in +Table 14.
    desc_a
    contains data structures for communications. @@ -186,43 +175,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
    -Type: optional -
    Intent: in.
    -Specified as: an integer variable $-1\le root\le np-1$, default $-1$. + WIDTH="166" HEIGHT="30" ALIGN="MIDDLE" BORDER="0" + SRC="img71.png" + ALT="$update\_type = psb\_avg\_ $"> +
    +Scope: global +
    +Specified as: a integer variable. +
    +
    work
    +
    the work array. +
    +Scope: local +
    +Type: optional +
    +Intent: inout. +
    +Specified as: a one dimensional array of the same type of $x$. + +

    On Return
    -
    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. +Specified as: an array of rank one or two +containing numbers of type specified in +Table 14.
    info
    Error code. @@ -237,29 +258,502 @@ 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 7: +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. 7, +partitioned among two processes as shown by the dashed lines, with an +overlap of 1 extra layer with respect to the partition of +fig. 6; 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
    +
    +


    - 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 diff --git a/docs/html/node41.html b/docs/html/node41.html index e7ad35e1..871f835c 100644 --- a/docs/html/node41.html +++ b/docs/html/node41.html @@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds Jens Lippmann, Marek Rouchal, Martin Wilck and others --> -psb_scatter -- Scatter Global Dense Matrix - +psb_gather -- Gather Global Dense Matrix + @@ -18,59 +18,61 @@ original version by: Nikos Drakos, CBLU, University of Leeds + - + - 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="img74.png" + ALT="\begin{displaymath}glob\_x \leftarrow collect(loc\_x_i) \end{displaymath}">

    @@ -78,19 +80,19 @@ 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. + WIDTH="49" HEIGHT="14" ALIGN="BOTTOM" BORDER="0" + SRC="img78.png" + ALT="$collect$"> +
    is the collect function.


    -
    +
    -
    Table 16: +Table 15: Data types
    - + - + - + - + - +
    $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
    @@ -145,8 +147,8 @@ Data types

    -call psb_scatter(glob_x, loc_x, desc_a, info, root)
    -call psb_scatter(glob_x, loc_x, desc_a, info, root)
    +call psb_gather(glob_x, loc_x, desc_a, info, root)
    +call psb_gather(glob_x, loc_x, desc_a, info, root)
     

    @@ -157,16 +159,21 @@ call psb_scatter(glob_x, loc_x, desc_a, info, root)

    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 containing numbers of the type +indicated in Table 15.
    desc_a
    contains data structures for communications. @@ -182,9 +189,9 @@ 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. + the processes will have a copy of the global vector.
    Scope: global
    @@ -197,30 +204,25 @@ Specified as: an integer variable $-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 array containing numbers of the type -indicated in Table 16. +Specified as: a rank one or two array.
    info
    Error code. @@ -238,26 +240,26 @@ An integer value; 0 means no error has been detected.


    - 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 diff --git a/docs/html/node42.html b/docs/html/node42.html index 135b8c15..859f6cac 100644 --- a/docs/html/node42.html +++ b/docs/html/node42.html @@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds Jens Lippmann, Marek Rouchal, Martin Wilck and others --> -Data management routines - +psb_scatter -- Scatter Global Dense Matrix + @@ -18,114 +18,248 @@ original version by: Nikos Drakos, CBLU, University of Leeds - - - + + - 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 16: +Data types
    +
    + + + + + + + + + + + + + + + + + + + +
    $x_i, y$Subroutine
    Integerpsb_scatter
    Short Precision Realpsb_scatter
    Long Precision Realpsb_scatter
    Short Precision Complexpsb_scatter
    Long Precision Complexpsb_scatter
    +
    +
    +


    -Data management routines -

    -


    - -Subsections +
    +call psb_scatter(glob_x, loc_x, desc_a, info, root)
    +call psb_scatter(glob_x, loc_x, desc_a, info, root)
    +
    - - -

    +

    +

    +
    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 $-1$. +
    +
    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 array containing numbers of the type +indicated in Table 16. +
    +
    info
    +
    Error code. +
    +Scope: local +
    +Type: required +
    +Intent: out. +
    +An integer value; 0 means no error has been detected. +
    +
    + +

    +


    + + +next + +up + +previous + +contents +
    + Next: Data management routines + Up: Communication routines + Previous: psb_gather Gather +   Contents + diff --git a/docs/html/node43.html b/docs/html/node43.html index 888a9dc6..b422926e 100644 --- a/docs/html/node43.html +++ b/docs/html/node43.html @@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds Jens Lippmann, Marek Rouchal, Martin Wilck and others --> -psb_cdall -- Allocates a communication descriptor - +Data management routines + @@ -18,407 +18,114 @@ original version by: Nikos Drakos, CBLU, University of Leeds - - - + + + - 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.])
    -call psb_cdall(icontxt, desc_a, info,nl=nl)
    -call psb_cdall(icontxt, desc_a, info,mg=mg,repl=.true.)
    -
    - -

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

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

    -

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

    -

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

    -
    +Data management routines +

    -Notes +


    + +Subsections -
      -
    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. -
      -
      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/node44.html b/docs/html/node44.html index 2fefbd64..6df59c29 100644 --- a/docs/html/node44.html +++ b/docs/html/node44.html @@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds Jens Lippmann, Marek Rouchal, Martin Wilck and others --> -psb_cdins -- Communication descriptor insert routine - +psb_cdall -- Allocates a communication descriptor + @@ -20,98 +20,189 @@ original version by: Nikos Drakos, CBLU, University of Leeds - + - 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)
    +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.])
    +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. - -

    +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. +
    +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: local. +Scope:global.
    -Type: required. +Type:optional.
    Intent: in.
    -Specified as: an integer array of length $nz$. +Specified as: the logical value .true.
    -
    ja
    -
    the indices of the end vertex of the edges being inserted. +
    globalcheck
    +
    Data allocation: do global checks on the local + index lists vl
    -Scope: local. +Scope:global.
    -Type: required. +Type:optional.
    Intent: in.
    -Specified as: an integer array of length $nz$. +Specified as: a logical value, default: .true.
    @@ -121,13 +212,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.
    @@ -143,41 +234,189 @@ Intent: out. An integer value; 0 means no error has been detected. + +

    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. +
      +
      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. 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. On exit from this routine the descriptor is in the build + state. +
    6. +
    7. Calling the routine with vg or parts implies that + every process will scan the entire index space to figure out the + local indices. +
    8. +
    9. Overlapped indices are possible with both parts and + vl invocations. +
    10. +
    11. 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. +
    12. +
    13. 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. +
    14. +
    15. Orphan and overlap indices are + impossible by construction when the subroutine is invoked with + nl (alone), or vg.


    - 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 diff --git a/docs/html/node45.html b/docs/html/node45.html index 992a2a25..abd75d73 100644 --- a/docs/html/node45.html +++ b/docs/html/node45.html @@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds Jens Lippmann, Marek Rouchal, Martin Wilck and others --> -psb_cdasb -- Communication descriptor assembly routine - +psb_cdins -- Communication descriptor insert routine + @@ -20,64 +20,98 @@ original version by: Nikos Drakos, CBLU, University of Leeds - + - 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 routine +

    +psb_cdins -- Communication descriptor insert routine

    -call psb_cdasb(desc_a, info)
    +call psb_cdins(nz, ia, ja, desc_a, info)
     
    +

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

    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$.
    @@ -87,7 +121,7 @@ Specified as: a structured data of type descdatapsb_desc_type.
    desc_a
    -
    the communication descriptor. +
    the updated communication descriptor.
    Scope:local.
    @@ -112,13 +146,40 @@ 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. 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.

    -


    +
    + + +next + +up + +previous + +contents +
    + Next: psb_cdasb Communication + Up: Data management routines + Previous: psb_cdall Allocates +   Contents + diff --git a/docs/html/node46.html b/docs/html/node46.html index bf6b5952..59665ae9 100644 --- a/docs/html/node46.html +++ b/docs/html/node46.html @@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds Jens Lippmann, Marek Rouchal, Martin Wilck and others --> -psb_cdcpy -- Copies a communication descriptor - +psb_cdasb -- Communication descriptor assembly routine + @@ -20,66 +20,64 @@ original version by: Nikos Drakos, CBLU, University of Leeds - + - 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)
     

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

    @@ -88,14 +86,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 +109,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/node47.html b/docs/html/node47.html index db4e6125..cb678694 100644 --- a/docs/html/node47.html +++ b/docs/html/node47.html @@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds Jens Lippmann, Marek Rouchal, Martin Wilck and others --> -psb_cdfree -- Frees a communication descriptor - +psb_cdcpy -- Copies a communication descriptor + @@ -20,64 +20,66 @@ original version by: Nikos Drakos, CBLU, University of Leeds - + - 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 +88,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/node48.html b/docs/html/node48.html index 387cffd2..c04df365 100644 --- a/docs/html/node48.html +++ b/docs/html/node48.html @@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds Jens Lippmann, Marek Rouchal, Martin Wilck and others --> -psb_cdbldext -- Build an extended communication descriptor - +psb_cdfree -- Frees a communication descriptor + @@ -20,51 +20,47 @@ original version by: Nikos Drakos, CBLU, University of Leeds - + - 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 +68,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_spmat_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 +86,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 +100,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/node49.html b/docs/html/node49.html index 9362c43b..047adc26 100644 --- a/docs/html/node49.html +++ b/docs/html/node49.html @@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds Jens Lippmann, Marek Rouchal, Martin Wilck and others --> -psb_spall -- Allocates a sparse matrix - +psb_cdbldext -- Build an extended communication descriptor + @@ -20,47 +20,51 @@ original version by: Nikos Drakos, CBLU, University of Leeds - + - 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 +72,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 +91,35 @@ Type:required.
    Intent: in.
    -Specified as: a structured data of type descdatapsb_desc_type. +Specified as: a structured data of type spdatapsb_spmat_type. +
    +
    nl
    +
    the number of additional layers desired. +
    +Scope:global. +
    +Type:required. +
    +Intent: in. +
    +Specified as: an integer value $nl\ge 0$.
    -
    nnz
    -
    An estimate of the number of nonzeroes in the local - part of the assembled matrix. +
    extype
    +
    the kind of estension required.
    -Scope: global. +Scope:global.
    -Type: optional. +Type:optional .
    Intent: in.
    -Specified as: an integer value. +Specified as: an integer value +psb_ovt_xhal_, psb_ovt_asov_, default: psb_ovt_xhal_ + +

    @@ -98,16 +128,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_spmat_type. +Specified as: a structured data of type descdatapsb_desc_type.
    info
    Error code. @@ -121,47 +151,48 @@ Intent: out. An integer value; 0 means no error has been detected.
    + +

    Notes

      -
    1. On exit from this routine the sparse matrix is in the build - state. -
    2. -
    3. The descriptor may be in either the build or assembled state. +
    4. 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.


    - 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 diff --git a/docs/html/node5.html b/docs/html/node5.html index 644f0180..108ea7f1 100644 --- a/docs/html/node5.html +++ b/docs/html/node5.html @@ -26,26 +26,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds - next - up - previous - contents
    - Next: Next: Application structure - Up: Up: General overview - Previous: Previous: Basic Nomenclature -   Contents

    @@ -128,7 +128,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 @@ -151,26 +151,26 @@ are classified as:


    - next - up - previous - contents
    - Next: Next: Application structure - Up: Up: General overview - Previous: Previous: Basic Nomenclature -   Contents diff --git a/docs/html/node50.html b/docs/html/node50.html index 20f00c01..51992ac5 100644 --- a/docs/html/node50.html +++ b/docs/html/node50.html @@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds Jens Lippmann, Marek Rouchal, Martin Wilck and others --> -psb_spins -- Insert a cloud of elements into a sparse matrix - +psb_spall -- Allocates a sparse matrix + @@ -20,68 +20,56 @@ original version by: Nikos Drakos, CBLU, University of Leeds - + - 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)
    +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. +
    desc_a
    +
    the communication descriptor.
    Scope:local.
    @@ -89,54 +77,20 @@ Type:required.
    Intent: in.
    -Specified as: an integer array of size $nz$. +Specified as: a structured data of type descdatapsb_desc_type.
    -
    ja
    -
    the column indices of 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 integer array of size $nz$. +Specified as: an integer value.
    -
    val
    -
    the elements to be inserted. -
    -Scope:local. -
    -Type:required. -
    -Intent: in. -
    -Specified as: an array of size $nz$. Must be of the same type and kind -of the aspk component 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. -

    @@ -145,27 +99,16 @@ Specified as: a variable of type descdatapsb_desc_type.

    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_spmat_type.
    -
    desc_a
    -
    The communication descriptor. -
    -Scope: local. -
    -Type: required. -
    -Intent: inout. -
    -Specified as: a variable of type descdatapsb_desc_type. -
    info
    Error code.
    @@ -178,59 +121,47 @@ Intent: out. An integer value; 0 means no error has been detected.
    - -

    Notes

      -
    1. On entry to this routine the descriptor may be in either the - build or assembled state. -
    2. -
    3. On entry to this routine the sparse matrix may be in either the - build or update state. -
    4. -
    5. If the descriptor is in the build state, then the sparse matrix - must also be in the build state; the action of the routine is to - (implicitly) call psb_cdins to add entries to the sparsity - pattern; each sparse matrix entry implicitly defines a graph edge, - that is passed to the descriptor routine for the appropriate - processing. +
    6. On exit from this routine the sparse matrix is in the build + state.
    7. -
    8. Any coefficients from matrix rows not assigned to the calling - process are silently ignored; +
    9. The descriptor may be in either the build or assembled state.
    10. -
    11. If the descriptor is in the assembled state, then any entries in - the sparse matrix that would generate additional communication - requirements will be ignored; -
    12. -
    13. If the matrix is in the update state, any entries in positions - that were not present in the original matrix will be ignored. +
    14. 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 -   Next: psb_spins Insert + Up: Data management routines + Previous: psb_cdbldext Build +   Contents diff --git a/docs/html/node51.html b/docs/html/node51.html index 6652f26e..b81ce0ae 100644 --- a/docs/html/node51.html +++ b/docs/html/node51.html @@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds Jens Lippmann, Marek Rouchal, Martin Wilck and others --> -psb_spasb -- Sparse matrix assembly routine - +psb_spins -- Insert a cloud of elements into a sparse matrix + @@ -20,56 +20,57 @@ original version by: Nikos Drakos, CBLU, University of Leeds - + - 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)
    +call psb_spins(nz, ia, ja, val, a, desc_a, info)
     

    Type:
    -
    Synchronous. +
    Asynchronous.
    On Entry
    -
    desc_a
    -
    the communication descriptor. +
    nz
    +
    the number of elements to be inserted.
    Scope:local.
    @@ -77,42 +78,65 @@ 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: global. +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 aspk component 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. +

    @@ -121,7 +145,7 @@ Specified as: integer, possible values: psb_dupl_ovwrt_,

    a
    -
    the matrix to be assembled. +
    the matrix into which elements will be inserted.
    Scope:local
    @@ -131,6 +155,17 @@ Intent: inout.
    Specified as: a structured data of type spdatapsb_spmat_type.
    +
    desc_a
    +
    The communication descriptor. +
    +Scope: local. +
    +Type: required. +
    +Intent: inout. +
    +Specified as: a variable of type descdatapsb_desc_type. +
    info
    Error code.
    @@ -148,48 +183,54 @@ 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. On entry to this routine the descriptor may be in either the + build or assembled state.
    3. -
    4. The sparse matrix may be in either the build or update state; +
    5. On entry to this routine the sparse matrix may be in either the + build or update state.
    6. -
    7. 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; +
    8. 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.
    9. -
    10. 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; +
    11. Any coefficients from matrix rows not assigned to the calling + process are silently ignored;
    12. -
    13. On exit from this routine the matrix is in the assembled state, - and thus is suitable for the computational routines. +
    14. If the descriptor is in the assembled state, then any entries in + the sparse matrix that would generate additional communication + requirements will be ignored; +
    15. +
    16. If the matrix is in the update state, any entries in positions + that were not present in the original matrix will be ignored.


    - 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 diff --git a/docs/html/node52.html b/docs/html/node52.html index 8503bc0c..80bcc9ba 100644 --- a/docs/html/node52.html +++ b/docs/html/node52.html @@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds Jens Lippmann, Marek Rouchal, Martin Wilck and others --> -psb_spfree -- Frees a sparse matrix - +psb_spasb -- Sparse matrix assembly routine + @@ -20,44 +20,44 @@ original version by: Nikos Drakos, CBLU, University of Leeds - + - 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)
     

    @@ -68,17 +68,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_spmat_type. -
    desc_a
    the communication descriptor.
    @@ -90,6 +79,40 @@ Intent: in.
    Specified as: a structured data of type descdatapsb_desc_type.
    +
    afmt
    +
    the storage format for the sparse matrix. +
    +Scope: global. +
    +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_. +

    @@ -97,6 +120,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_spmat_type. +
    info
    Error code.
    @@ -111,7 +145,53 @@ 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. On exit from this routine the matrix is in the assembled state, + and thus is suitable for the computational routines. +
    10. +
    + +

    +


    + + +next + +up + +previous + +contents +
    + Next: psb_spfree Frees + Up: Data management routines + Previous: psb_spins Insert +   Contents + diff --git a/docs/html/node53.html b/docs/html/node53.html index c3a77fe3..abaf4cf6 100644 --- a/docs/html/node53.html +++ b/docs/html/node53.html @@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds Jens Lippmann, Marek Rouchal, Martin Wilck and others --> -psb_sprn -- Reinit sparse matrix structure for psblas routines. - +psb_spfree -- Frees a sparse matrix + @@ -20,45 +20,44 @@ original version by: Nikos Drakos, CBLU, University of Leeds - + - 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 +69,7 @@ call psb_sprn(a, decsc_a, info, clear)

    a
    -
    the matrix to be reinitialized. +
    the matrix to be freed.
    Scope:local
    @@ -91,17 +90,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 +109,6 @@ 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/node54.html b/docs/html/node54.html index 503591e6..f8e0a936 100644 --- a/docs/html/node54.html +++ b/docs/html/node54.html @@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds Jens Lippmann, Marek Rouchal, Martin Wilck and others --> -psb_geall -- Allocates a dense matrix - +psb_sprn -- Reinit sparse matrix structure for psblas routines. + @@ -20,44 +20,45 @@ original version by: Nikos Drakos, CBLU, University of Leeds - + - 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 +69,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_spmat_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 +109,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, of type real, complex or integer. -
    info
    Error code.
    @@ -146,6 +121,13 @@ 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/node55.html b/docs/html/node55.html index cbbd4ba4..be78de6b 100644 --- a/docs/html/node55.html +++ b/docs/html/node55.html @@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds Jens Lippmann, Marek Rouchal, Martin Wilck and others --> -psb_geins -- Dense matrix insertion routine - +psb_geall -- Allocates a dense matrix + @@ -20,123 +20,100 @@ original version by: Nikos Drakos, CBLU, University of Leeds - + - 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)
    +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_. +Specified as: Integer scalar, default $1$. It is not a valid argument if $x$ is a +rank-1 array.
    @@ -146,13 +123,13 @@ Specified as: integer, possible values: psb_dupl_ovwrt_,
    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 with the ALLOCATABLE attribute, of type real, complex or integer. @@ -171,41 +148,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/node56.html b/docs/html/node56.html index 405a3474..828c4c7f 100644 --- a/docs/html/node56.html +++ b/docs/html/node56.html @@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds Jens Lippmann, Marek Rouchal, Martin Wilck and others --> -psb_geasb -- Assembly a dense matrix - +psb_geins -- Dense matrix insertion routine + @@ -20,65 +20,124 @@ original version by: Nikos Drakos, CBLU, University of Leeds - + - 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)
    +call psb_geins(m, irw, val, x, desc_a, info,dupl)
     

    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. -
    +Specified as: a structured data of type descdatapsb_desc_type. +
    +
    dupl
    +
    How to handle duplicate coefficients. +
    +Scope: global. +
    +Type: optional. +
    +Intent: in. +
    +Specified as: integer, possible values: psb_dupl_ovwrt_, +psb_dupl_add_. +

    @@ -87,7 +146,7 @@ Specified as: a variable of type descdatapsb_desc_type.

    x
    -
    The dense matrix to be assembled. +
    the output dense matrix.
    Scope: local
    @@ -110,7 +169,43 @@ 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. +
    + +

    +


    + + +next + +up + +previous + +contents +
    + Next: psb_geasb Assembly + Up: Data management routines + Previous: psb_geall Allocates +   Contents + diff --git a/docs/html/node57.html b/docs/html/node57.html index d5e8fb35..6a736b44 100644 --- a/docs/html/node57.html +++ b/docs/html/node57.html @@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds Jens Lippmann, Marek Rouchal, Martin Wilck and others --> -psb_gefree -- Frees a dense matrix - +psb_geasb -- Assembly a dense matrix + @@ -20,44 +20,44 @@ original version by: Nikos Drakos, CBLU, University of Leeds - + - 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)
     

    @@ -68,21 +68,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 -attribute, of type real, complex or integer. -
    -

    -

    desc_a
    The communication descriptor.
    @@ -101,6 +86,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 +attribute, of type real, complex or integer. +
    info
    Error code.
    @@ -113,8 +110,6 @@ Intent: out. An integer value; 0 means no error has been detected.
    - -



    diff --git a/docs/html/node58.html b/docs/html/node58.html index adeac532..09ab4c66 100644 --- a/docs/html/node58.html +++ b/docs/html/node58.html @@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds Jens Lippmann, Marek Rouchal, Martin Wilck and others --> -psb_gelp -- Applies a left permutation to a dense matrix - +psb_gefree -- Frees a dense matrix + @@ -20,99 +20,79 @@ original version by: Nikos Drakos, CBLU, University of Leeds - + - 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 +attribute, 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/node59.html b/docs/html/node59.html index a314e4f7..7b96b445 100644 --- a/docs/html/node59.html +++ b/docs/html/node59.html @@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds Jens Lippmann, Marek Rouchal, Martin Wilck and others --> -psb_glob_to_loc -- Global to local indices convertion - +psb_gelp -- Applies a left permutation to a dense matrix + @@ -20,46 +20,45 @@ original version by: Nikos Drakos, CBLU, University of Leeds - + - 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 +69,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 +121,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 +135,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/node6.html b/docs/html/node6.html index 7ca89b2d..36a83e02 100644 --- a/docs/html/node6.html +++ b/docs/html/node6.html @@ -26,26 +26,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds - next - up - previous - contents
    - Next: Next: Programming model - Up: Up: General overview - Previous: Previous: Library contents -   Contents

    @@ -244,26 +244,26 @@ from optimal.


    - next - up - previous - contents
    - Next: Next: Programming model - Up: Up: General overview - Previous: Previous: Library contents -   Contents diff --git a/docs/html/node60.html b/docs/html/node60.html index 2e81edab..f8fad60c 100644 --- a/docs/html/node60.html +++ b/docs/html/node60.html @@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds Jens Lippmann, Marek Rouchal, Martin Wilck and others --> -psb_loc_to_glob -- Local to global indices conversion - +psb_glob_to_loc -- Global to local indices convertion + @@ -20,46 +20,46 @@ original version by: Nikos Drakos, CBLU, University of Leeds - + - 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 +103,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. +

    @@ -131,7 +143,7 @@ Specified as: a rank one integer array.

    If $y$ is not present, + ALT="$y$"> is present, then +

    +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_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 diff --git a/docs/html/node61.html b/docs/html/node61.html index ec6fbfd0..1e4c242e 100644 --- a/docs/html/node61.html +++ b/docs/html/node61.html @@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds Jens Lippmann, Marek Rouchal, Martin Wilck and others --> -psb_is_owned - +psb_loc_to_glob -- Local to global indices conversion + @@ -20,44 +20,46 @@ original version by: Nikos Drakos, CBLU, University of Leeds - + - 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 +71,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 +92,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,32 +110,82 @@ 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. -
    - -

    -


    +
    + + +next + +up + +previous + +contents +
    + Next: psb_is_owned + Up: Data management routines + Previous: psb_glob_to_loc Global +   Contents + diff --git a/docs/html/node62.html b/docs/html/node62.html index 5f5f5240..d29986c5 100644 --- a/docs/html/node62.html +++ b/docs/html/node62.html @@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds Jens Lippmann, Marek Rouchal, Martin Wilck and others --> -psb_owned_index - +psb_is_owned + @@ -20,44 +20,44 @@ original version by: Nikos Drakos, CBLU, University of Leeds - + - 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 +69,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 +90,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 +97,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

      -
    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/node63.html b/docs/html/node63.html index 9308ef31..a587ccf0 100644 --- a/docs/html/node63.html +++ b/docs/html/node63.html @@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds Jens Lippmann, Marek Rouchal, Martin Wilck and others --> -psb_is_local - +psb_owned_index + @@ -20,44 +20,44 @@ original version by: Nikos Drakos, CBLU, University of Leeds - + - 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 +69,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 +90,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 +108,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

      -
    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/node64.html b/docs/html/node64.html index 2fb96dd0..12e29a4a 100644 --- a/docs/html/node64.html +++ b/docs/html/node64.html @@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds Jens Lippmann, Marek Rouchal, Martin Wilck and others --> -psb_local_index - +psb_is_local + @@ -20,44 +20,44 @@ original version by: Nikos Drakos, CBLU, University of Leeds - + - 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 +69,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 +90,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 +97,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

      -
    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/node65.html b/docs/html/node65.html index 72dd15af..00b8c7d9 100644 --- a/docs/html/node65.html +++ b/docs/html/node65.html @@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds Jens Lippmann, Marek Rouchal, Martin Wilck and others --> -psb_get_boundary -- Extract list of boundary elements - +psb_local_index + @@ -20,44 +20,44 @@ original version by: Nikos Drakos, CBLU, University of Leeds - + - 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)
     

    @@ -68,7 +68,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. @@ -79,6 +90,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. +

    @@ -86,19 +108,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.
    @@ -116,12 +139,9 @@ An integer value; 0 means no error has been detected. Notes
      -
    1. If there are no boundary elements (i.e., if the local part of - the connectivity graph is self-contained) the output vector is set - to the ``not allocated'' state. -
    2. -
    3. Otherwise the size of bndel will be exactly equal to the - number of boundary elements. +
    4. 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/node66.html b/docs/html/node66.html index 605cdf81..d5292eb1 100644 --- a/docs/html/node66.html +++ b/docs/html/node66.html @@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds Jens Lippmann, Marek Rouchal, Martin Wilck and others --> -psb_get_overlap -- Extract list of overlap elements - +psb_get_boundary -- Extract list of boundary elements + @@ -20,44 +20,44 @@ original version by: Nikos Drakos, CBLU, University of Leeds - + - 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 elements +

    +psb_get_boundary -- Extract list of boundary elements

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

    @@ -86,8 +86,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 @@ -116,11 +116,12 @@ An integer value; 0 means no error has been detected. Notes
      -
    1. If there are no overlap elements the output vector is set - to the ``not allocated'' state. +
    2. 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/node67.html b/docs/html/node67.html index ba0da8dc..77247f39 100644 --- a/docs/html/node67.html +++ b/docs/html/node67.html @@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds Jens Lippmann, Marek Rouchal, Martin Wilck and others --> -psb_sp_getrow -- Extract row(s) from a sparse matrix - +psb_get_overlap -- Extract list of overlap elements + @@ -20,45 +20,44 @@ original version by: Nikos Drakos, CBLU, University of Leeds - + - 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)
     

    @@ -69,75 +68,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 -
    -Type:required -
    -Intent: in. -
    -Specified as: a structured data of type spdatapsb_spmat_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. +
    desc
    +
    the communication descriptor.
    -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.

    @@ -146,50 +86,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.
    @@ -207,51 +116,16 @@ 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. If there are no overlap elements the output vector is set + to the ``not allocated'' state.
    3. -
    4. When append=.true. the output arrays are reallocated as - necessary; -
    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/node68.html b/docs/html/node68.html index e21f8847..da8b0153 100644 --- a/docs/html/node68.html +++ b/docs/html/node68.html @@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds Jens Lippmann, Marek Rouchal, Martin Wilck and others --> -psb_sizeof -- Memory occupation - +psb_sp_getrow -- Extract row(s) from a sparse matrix + @@ -20,49 +20,45 @@ original version by: Nikos Drakos, CBLU, University of Leeds - + - 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 +69,189 @@ 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_spmat_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. +
    + +

    +


    + + +next + +up + +previous + +contents +
    + Next: psb_sizeof Memory + Up: Data management routines + Previous: psb_get_overlap Extract +   Contents + diff --git a/docs/html/node69.html b/docs/html/node69.html index 81b1ebff..a8c6ba2c 100644 --- a/docs/html/node69.html +++ b/docs/html/node69.html @@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds Jens Lippmann, Marek Rouchal, Martin Wilck and others --> -Sorting utilities - +psb_sizeof -- Memory occupation + @@ -18,276 +18,111 @@ original version by: Nikos Drakos, CBLU, University of Leeds + - + - 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 +This function computes the memory occupation of a PSBLAS object.

    -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)
    +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_spmat_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 often 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/node7.html b/docs/html/node7.html index 6f91e4e6..388b2fbb 100644 --- a/docs/html/node7.html +++ b/docs/html/node7.html @@ -25,26 +25,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds - next - up - previous - contents
    - Next: Next: Data Structures - Up: Up: General overview - Previous: Previous: Application structure -   Contents

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


    - next - up - previous - contents
    - Next: Next: Data Structures - Up: Up: General overview - Previous: Previous: Application structure -   Contents diff --git a/docs/html/node70.html b/docs/html/node70.html index 7215ab78..770586ae 100644 --- a/docs/html/node70.html +++ b/docs/html/node70.html @@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds Jens Lippmann, Marek Rouchal, Martin Wilck and others --> -Parallel environment routines - +Sorting utilities + @@ -18,88 +18,276 @@ original version by: Nikos Drakos, CBLU, University of Leeds - - - + + - 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. +
    +Specified as: an integer, real or complex array of rank 1. +
    +
    ix
    +
    A vector of indices. +
    +Type:optional. +
    +Specified as: an integer array of (at least) the same size as $X$. +
    +
    dir
    +
    The desired ordering. +
    +Type:optional. +
    +Specified as: an integer value:
    +
    Integer and real data:
    +
    psb_sort_up_, +psb_sort_down_, psb_asort_up_, psb_asort_down_; +default psb_sort_up_. +
    +
    Complex data:
    +
    psb_lsort_up_, +psb_lsort_down_, psb_asort_up_, psb_asort_down_; +default psb_lsort_up_. +
    +
    +
    +
    flag
    +
    Whether to keep the original values in $IX$. +
    +Type:optional. +
    +Specified as: an integer value psb_sort_ovw_idx_ or +psb_sort_keep_idx_; default psb_sort_ovw_idx_. + +

    +

    +
    + +

    +

    +
    On Return
    +
    +
    +
    x
    +
    The sequence of values, in the chosen ordering.
    -Parallel environment routines - +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 often the preferred choice when a sorting is needed + by other routines in the library. +
      6. +
      +
    12. +

    -


    - -Subsections - - - -

    + +

    +


    + + +next + +up + +previous + +contents +
    + Next: Parallel environment routines + Up: Data management routines + Previous: psb_sizeof Memory +   Contents + diff --git a/docs/html/node71.html b/docs/html/node71.html index 64c91d6c..639f7537 100644 --- a/docs/html/node71.html +++ b/docs/html/node71.html @@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds Jens Lippmann, Marek Rouchal, Martin Wilck and others --> -psb_init -- Initializes PSBLAS parallel environment - +Parallel environment routines + @@ -18,161 +18,88 @@ original version by: Nikos Drakos, CBLU, University of Leeds - - - + + + - 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/node72.html b/docs/html/node72.html index b2e0154f..bb07470f 100644 --- a/docs/html/node72.html +++ b/docs/html/node72.html @@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds Jens Lippmann, Marek Rouchal, Martin Wilck and others --> -psb_info -- Return information about PSBLAS parallel environment - +psb_init -- Initializes PSBLAS parallel environment + @@ -20,68 +20,95 @@ original version by: Nikos Drakos, CBLU, University of Leeds - + - 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 - environment +

    +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 +117,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,56 +129,48 @@ Type: required.
    Intent: out.
    -Specified as: an integer variable.
    +Specified as: an integer variable. +

    Notes

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


    - 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 diff --git a/docs/html/node73.html b/docs/html/node73.html index 6ba12fe5..f327957b 100644 --- a/docs/html/node73.html +++ b/docs/html/node73.html @@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds Jens Lippmann, Marek Rouchal, Martin Wilck and others --> -psb_exit -- Exit from PSBLAS parallel environment - +psb_info -- Return information about PSBLAS parallel environment + @@ -20,52 +20,53 @@ original version by: Nikos Drakos, CBLU, University of Leeds - + - 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 environment +

    +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
    @@ -82,67 +83,88 @@ 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

      -
    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. For processes in the virtual parallel machine the identifier + will satisfy +$0 \le iam \le np-1$;
    3. -
    4. A call to this routine with close=.true. implies a call - to MPI_Finalize, after which no parallel routine may be called. -
    5. -
    6. 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. +
    7. 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.


    - 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 diff --git a/docs/html/node74.html b/docs/html/node74.html index 0ac3547a..cbb2e6b4 100644 --- a/docs/html/node74.html +++ b/docs/html/node74.html @@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds Jens Lippmann, Marek Rouchal, Martin Wilck and others --> -psb_get_mpicomm -- Get the MPI communicator - +psb_exit -- Exit from PSBLAS parallel environment + @@ -20,51 +20,52 @@ original version by: Nikos Drakos, CBLU, University of Leeds - + - 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 +82,69 @@ 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. +
    + +

    +


    + + +next + +up + +previous + +contents +
    + Next: psb_get_mpicomm Get + Up: Parallel environment routines + Previous: psb_info Return +   Contents + diff --git a/docs/html/node75.html b/docs/html/node75.html index 50d97fa9..ebec206f 100644 --- a/docs/html/node75.html +++ b/docs/html/node75.html @@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds Jens Lippmann, Marek Rouchal, Martin Wilck and others --> -psb_get_rank -- Get the MPI rank - +psb_get_mpicomm -- Get the MPI communicator + @@ -20,51 +20,48 @@ original version by: Nikos Drakos, CBLU, University of Leeds - + - 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 +81,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 +88,10 @@ Specified as: an integer value. -psb_wtime -- Wall clock timing - +psb_get_rank -- Get the MPI rank + @@ -20,61 +20,105 @@ original version by: Nikos Drakos, CBLU, University of Leeds - + - 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.
    -Returned as: a real(psb_dpk_) variable. +Type: required. +
    +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/node77.html b/docs/html/node77.html index 35ef3802..e84bdc2d 100644 --- a/docs/html/node77.html +++ b/docs/html/node77.html @@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds Jens Lippmann, Marek Rouchal, Martin Wilck and others --> -psb_barrier -- Sinchronization point parallel environment - +psb_wtime -- Wall clock timing + @@ -20,68 +20,60 @@ original version by: Nikos Drakos, CBLU, University of Leeds - + - 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/node78.html b/docs/html/node78.html index 6f69dc6b..642971c4 100644 --- a/docs/html/node78.html +++ b/docs/html/node78.html @@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds Jens Lippmann, Marek Rouchal, Martin Wilck and others --> -psb_abort -- Abort a computation - +psb_barrier -- Sinchronization point parallel environment + @@ -20,51 +20,53 @@ original version by: Nikos Drakos, CBLU, University of Leeds - + - 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/node79.html b/docs/html/node79.html index 34a233bc..2599ea59 100644 --- a/docs/html/node79.html +++ b/docs/html/node79.html @@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds Jens Lippmann, Marek Rouchal, Martin Wilck and others --> -psb_bcast -- Broadcast data - +psb_abort -- Abort a computation + @@ -20,52 +20,51 @@ original version by: Nikos Drakos, CBLU, University of Leeds - + - 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 +81,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/node8.html b/docs/html/node8.html index 1820479d..e6f32346 100644 --- a/docs/html/node8.html +++ b/docs/html/node8.html @@ -26,26 +26,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds - next - up - previous - contents
    - Next: Next: Descriptor data structure - Up: Up: userhtml - Previous: Previous: Programming model -   Contents

    @@ -91,54 +91,54 @@ it is only used for the psb_sizeof utility. Subsections diff --git a/docs/html/node80.html b/docs/html/node80.html index 3a0bc1ef..42001ee8 100644 --- a/docs/html/node80.html +++ b/docs/html/node80.html @@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds Jens Lippmann, Marek Rouchal, Martin Wilck and others --> -psb_sum -- Global sum - +psb_bcast -- Broadcast data + @@ -20,48 +20,48 @@ original version by: Nikos Drakos, CBLU, University of Leeds - + - 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 +83,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 +92,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 +105,12 @@ Type: optional. Intent: in.
    Specified as: an integer value $-1<= root <= np-1$, default -1.
    + WIDTH="153" HEIGHT="30" ALIGN="MIDDLE" BORDER="0" + SRC="img127.png" + ALT="$0<= root <= np-1$">, default 0

    @@ -122,7 +119,7 @@ Specified as: an integer value - 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 diff --git a/docs/html/node81.html b/docs/html/node81.html index b27fbfa8..e4f1cc8c 100644 --- a/docs/html/node81.html +++ b/docs/html/node81.html @@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds Jens Lippmann, Marek Rouchal, Martin Wilck and others --> -psb_max -- Global maximum - +psb_sum -- Global sum + @@ -20,49 +20,49 @@ original version by: Nikos Drakos, CBLU, University of Leeds - + - 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,21 +83,21 @@ 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 on all processes.
    @@ -112,9 +112,8 @@ Specified as: an integer value $-1<= root <= np-1$, default -1. -
    + SRC="img128.png" + ALT="$-1<= root <= np-1$">, default -1.

    @@ -123,16 +122,18 @@ Specified as: an integer value - 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 diff --git a/docs/html/node82.html b/docs/html/node82.html index 0a134222..cac0bc37 100644 --- a/docs/html/node82.html +++ b/docs/html/node82.html @@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds Jens Lippmann, Marek Rouchal, Martin Wilck and others --> -psb_min -- Global minimum - +psb_max -- Global maximum + @@ -20,48 +20,48 @@ original version by: Nikos Drakos, CBLU, University of Leeds - + - 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 +83,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,13 +91,13 @@ 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 on all processes.
    @@ -112,7 +112,7 @@ Specified as: an integer value $-1<= root <= np-1$, default -1.
    @@ -123,18 +123,16 @@ Specified as: an integer value - 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 diff --git a/docs/html/node83.html b/docs/html/node83.html index e86f419b..54b7e904 100644 --- a/docs/html/node83.html +++ b/docs/html/node83.html @@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds Jens Lippmann, Marek Rouchal, Martin Wilck and others --> -psb_amx -- Global maximum absolute value - +psb_min -- Global minimum + @@ -20,48 +20,48 @@ original version by: Nikos Drakos, CBLU, University of Leeds - + - 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 +83,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,13 +91,13 @@ 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 $-1$ to make it available on all processes.
    @@ -112,7 +112,7 @@ Specified as: an integer value $-1<= root <= np-1$, default -1.
    @@ -123,7 +123,7 @@ Specified as: an integer value - 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 diff --git a/docs/html/node84.html b/docs/html/node84.html index 4b682e50..64432425 100644 --- a/docs/html/node84.html +++ b/docs/html/node84.html @@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds Jens Lippmann, Marek Rouchal, Martin Wilck and others --> -psb_amn -- Global minimum absolute value - +psb_amx -- Global maximum absolute value + @@ -20,48 +20,48 @@ original version by: Nikos Drakos, CBLU, University of Leeds - + - 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 +83,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.
    @@ -97,7 +97,7 @@ scalar, or a rank 1 or 2 array. Type, kind, rank and size must agree on all pro
    root
    Process to hold the final value, or $-1$ to make it available on all processes.
    @@ -112,7 +112,7 @@ Specified as: an integer value $-1<= root <= np-1$, default -1.
    @@ -123,7 +123,7 @@ Specified as: an integer 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 diff --git a/docs/html/node85.html b/docs/html/node85.html index 3696d1ee..3cd5cf27 100644 --- a/docs/html/node85.html +++ b/docs/html/node85.html @@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds Jens Lippmann, Marek Rouchal, Martin Wilck and others --> -psb_snd -- Send data - +psb_amn -- Global minimum absolute value + @@ -20,51 +20,52 @@ original version by: Nikos Drakos, CBLU, University of Leeds - + - 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 +83,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$. + WIDTH="165" HEIGHT="30" ALIGN="MIDDLE" BORDER="0" + SRC="img128.png" + ALT="$-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,43 +122,57 @@ 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

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


    - 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 diff --git a/docs/html/node86.html b/docs/html/node86.html index 0450a2d4..da6322be 100644 --- a/docs/html/node86.html +++ b/docs/html/node86.html @@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds Jens Lippmann, Marek Rouchal, Martin Wilck and others --> -psb_rcv -- Receive data - +psb_snd -- Send data + @@ -18,52 +18,53 @@ original version by: Nikos Drakos, CBLU, University of Leeds + - + - 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 +81,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 +107,12 @@ Type: required. Intent: in.
    Specified as: an integer value $0<= src <= np-1$. + WIDTH="145" HEIGHT="30" ALIGN="MIDDLE" BORDER="0" + SRC="img130.png" + ALT="$0<= dst <= np-1$">.
    m
    Number of rows. @@ -111,16 +128,16 @@ 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.
    @@ -131,22 +148,6 @@ same value on sending and receiving processes.
    On Return
    -
    dat
    -
    The data to be received. -
    -Scope: local. -
    -Type: required. -
    -Intent: inout. -
    -Specified as: an integer, real or complex variable, which may be a -scalar, or a rank 1 or 2 array, or a character or logical scalar. Type, kind and rank must agree on sender and receiver process; if $m$ is -not specified, size must agree as well. -

    @@ -154,36 +155,36 @@ not specified, size must agree as well.

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


    - 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 diff --git a/docs/html/node87.html b/docs/html/node87.html index 0420db0d..d8ff3a78 100644 --- a/docs/html/node87.html +++ b/docs/html/node87.html @@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds Jens Lippmann, Marek Rouchal, Martin Wilck and others --> -Error handling - +psb_rcv -- Receive data + @@ -18,174 +18,172 @@ original version by: Nikos Drakos, CBLU, University of Leeds - - - + + - next - + up - previous - contents
    - Next: psb_errpush Pushes - Up: userhtml - Previous: psb_rcv Receive -   Next: Error handling + Up: Parallel environment routines + Previous: psb_snd Send +   Contents

    -

    -Error handling -

    +

    +psb_rcv -- Receive data +

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

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

    -Figure 8 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 8: -The layout of a generic psb_foo - routine with respect to PSBLAS-2.0 error handling policy.
    -
    - -
    - \fbox{\TheSbox} -
    -
    + WIDTH="147" HEIGHT="30" ALIGN="MIDDLE" BORDER="0" + SRC="img135.png" + ALT="$0<= src <= np-1$">. +
    +
    m
    +
    Number of rows. +
    +Scope: global. +
    +Type: Optional. +
    +Intent: in. +
    +Specified as: an integer value +$0<= m <= size(dat,1)$. +
    +When $dat$ is a rank 2 array, specifies the number of rows to be sent +independently of the leading dimension $size(dat,1)$; must have the +same value on sending and receiving processes. +
    +

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

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

    - - - -
    Figure 9: -A sample PSBLAS-2.0 error - message. Process 0 detected an error condition inside the psb_cest subroutine
    -
    - -
    - -\fbox{\TheSbox} -
    -
    +
      +
    1. This subroutine implies a synchronization, but only between the + calling process and the source process $src$. +
    2. +

    -


    - -Subsections - - -
    - next - + up - previous - contents
    - Next: psb_errpush Pushes - Up: userhtml - Previous: psb_rcv Receive -   Next: Error handling + Up: Parallel environment routines + Previous: psb_snd Send +   Contents diff --git a/docs/html/node88.html b/docs/html/node88.html index 6351283e..c7f0e539 100644 --- a/docs/html/node88.html +++ b/docs/html/node88.html @@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds Jens Lippmann, Marek Rouchal, Martin Wilck and others --> -psb_errpush -- Pushes an error code onto the error stack - +Error handling + @@ -18,101 +18,176 @@ original version by: Nikos Drakos, CBLU, University of Leeds - - - + + + - next - + up - previous - contents
    - Next: psb_error Prints - Up: Error handling - Previous: Error handling -   Next: psb_errpush Pushes + Up: userhtml + Previous: psb_rcv Receive +   Contents

    -

    -psb_errpush -- Pushes an error code onto the error - stack -

    +

    +Error handling +

    -

    -call psb_errpush(err_c, r_name, i_err, a_err)
    -
    +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.

    -

    -
    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. -
    -
    +Figure 8 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 8: +The layout of a generic psb_foo + routine with respect to PSBLAS-2.0 error handling policy.
    +
    + +
    + +\fbox{\TheSbox} +
    +
    + +

    +Figure 9 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 9: +A sample PSBLAS-2.0 error + message. Process 0 detected an error condition inside the psb_cest subroutine
    +
    + +
    + +\fbox{\TheSbox} +
    +



    + +Subsections + + + +
    + + +next + +up + +previous + +contents +
    + Next: psb_errpush Pushes + Up: userhtml + Previous: psb_rcv Receive +   Contents + diff --git a/docs/html/node89.html b/docs/html/node89.html index 1d5e0913..29500ffd 100644 --- a/docs/html/node89.html +++ b/docs/html/node89.html @@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds Jens Lippmann, Marek Rouchal, Martin Wilck and others --> -psb_error -- Prints the error stack content and aborts execution - +psb_errpush -- Pushes an error code onto the error stack + @@ -20,45 +20,45 @@ original version by: Nikos Drakos, CBLU, University of Leeds - + - next - + up - previous - contents
    - Next: psb_set_errverbosity Sets - Up: Error handling - Previous: psb_errpush Pushes -   Next: psb_error Prints + Up: Error handling + Previous: Error handling +   Contents

    -

    -psb_error -- Prints the error stack content and aborts - execution +

    +psb_errpush -- Pushes an error code onto the error + stack

    -call psb_error(icontxt)
    +call psb_errpush(err_c, r_name, i_err, a_err)
     

    @@ -69,17 +69,46 @@ call psb_error(icontxt)

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

    diff --git a/docs/html/node9.html b/docs/html/node9.html index 2821666d..d2434d6b 100644 --- a/docs/html/node9.html +++ b/docs/html/node9.html @@ -26,26 +26,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds - next - up - previous - contents
    - Next: Next: Named Constants - Up: Up: Data Structures - Previous: Previous: Data Structures -   Contents

    @@ -66,7 +66,7 @@ exchanged among processes.

    It is not necessary for the user to know the internal structure of psb_desc_type, it is set in a transparent mode by the tools -routines of Sec. 6, and its fields may be accessed +routines of Sec. 6, and its fields may be accessed if necessary via the routines of sec. 3.4; nevertheless we include a description for the curious reader: @@ -216,32 +216,32 @@ sec. 3.4. Subsections


    - next - up - previous - contents
    - Next: Next: Named Constants - Up: Up: Data Structures - Previous: Previous: Data Structures -   Contents diff --git a/docs/html/node90.html b/docs/html/node90.html index 034dde07..6ebbc76f 100644 --- a/docs/html/node90.html +++ b/docs/html/node90.html @@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds Jens Lippmann, Marek Rouchal, Martin Wilck and others --> -psb_set_errverbosity -- Sets the verbosity of error messages. - +psb_error -- Prints the error stack content and aborts execution + @@ -20,45 +20,45 @@ original version by: Nikos Drakos, CBLU, University of Leeds - + - next - + up - previous - contents
    - Next: psb_set_erraction Set - Up: Error handling - Previous: psb_error Prints -   Next: psb_set_errverbosity Sets + Up: Error handling + Previous: psb_errpush Pushes +   Contents

    -

    -psb_set_errverbosity -- Sets the verbosity of error - messages. +

    +psb_error -- Prints the error stack content and aborts + execution

    -call psb_set_errverbosity(v)
    +call psb_error(icontxt)
     

    @@ -69,12 +69,12 @@ call psb_set_errverbosity(v)

    On Entry
    -
    v
    -
    the verbosity level +
    icontxt
    +
    the communication context.
    -Scope: global +Scope: global
    -Type: required +Type: optional
    Intent: in.
    diff --git a/docs/html/node91.html b/docs/html/node91.html index 77d45de9..6f2325ae 100644 --- a/docs/html/node91.html +++ b/docs/html/node91.html @@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds Jens Lippmann, Marek Rouchal, Martin Wilck and others --> -psb_set_erraction -- Set the type of action to be taken upon error condition. - +psb_set_errverbosity -- Sets the verbosity of error messages. + @@ -18,46 +18,47 @@ original version by: Nikos Drakos, CBLU, University of Leeds + - + - next - + up - previous - contents
    - Next: Utilities - Up: Error handling - Previous: psb_set_errverbosity Sets -   Next: psb_set_erraction Set + Up: Error handling + Previous: psb_error Prints +   Contents

    -

    -psb_set_erraction -- Set the type of action to be - taken upon error condition. +

    +psb_set_errverbosity -- Sets the verbosity of error + messages.

    -call psb_set_erraction(err_act)
    +call psb_set_errverbosity(v)
     

    @@ -68,25 +69,19 @@ call psb_set_erraction(err_act)

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

    -

    -call psb_errcomm(icontxt, err)
    -
    -



    diff --git a/docs/html/node92.html b/docs/html/node92.html index 6e3c0a8f..3c322dc4 100644 --- a/docs/html/node92.html +++ b/docs/html/node92.html @@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds Jens Lippmann, Marek Rouchal, Martin Wilck and others --> -Utilities - +psb_set_erraction -- Set the type of action to be taken upon error condition. + @@ -18,73 +18,76 @@ original version by: Nikos Drakos, CBLU, University of Leeds - - - + + - next - + up - previous - contents
    - Next: hb_read Read - Up: userhtml - Previous: psb_set_erraction Set -   Next: Utilities + Up: Error handling + Previous: psb_set_errverbosity Sets +   Contents

    -

    - -
    -Utilities -

    +

    +psb_set_erraction -- Set the type of action to be + taken upon error condition. +

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

    +call psb_set_erraction(err_act)
    +

    -


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

    +

    +call psb_errcomm(icontxt, err)
    +
    + +



    diff --git a/docs/html/node93.html b/docs/html/node93.html index 0cfb6e89..7dca1508 100644 --- a/docs/html/node93.html +++ b/docs/html/node93.html @@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds Jens Lippmann, Marek Rouchal, Martin Wilck and others --> -hb_read -- Read a sparse matrix from a file in the Harwell-Boeing format - +Utilities + @@ -18,139 +18,74 @@ original version by: Nikos Drakos, CBLU, University of Leeds - - - + + + - next - + up - previous - contents
    - Next: hb_write Write - Up: Utilities - Previous: Utilities -   Next: hb_read Read + Up: userhtml + Previous: psb_set_erraction Set +   Contents

    -

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

    - -

    -

    -call hb_read(a, iret, iunit, filename, b, mtitle)
    -
    - -

    -

    -
    Type:
    -
    Asynchronous. -
    -
    On Entry
    -
    -
    -
    filename
    -
    The name of the file to be read. -
    -Type:optional. +

    +
    -Specified as: a character variable containing a valid file name, or --, in which case the default input unit 5 (i.e. standard input -in Unix jargon) is used. Default: -. -

    -
    iunit
    -
    The Fortran file unit number. -
    -Type:optional. -
    -Specified as: an integer value. Only meaningful if filename is not -. -
    -
    +Utilities +

    -

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

    -


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

    + +Subsections + + + +

    diff --git a/docs/html/node94.html b/docs/html/node94.html index f8da52ad..a2b113ef 100644 --- a/docs/html/node94.html +++ b/docs/html/node94.html @@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds Jens Lippmann, Marek Rouchal, Martin Wilck and others --> -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 + @@ -20,45 +20,45 @@ original version by: Nikos Drakos, CBLU, University of Leeds - + - 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

    -call hb_write(a, iret, iunit, filename, key, rhs, mtitle)
    +call hb_read(a, iret, iunit, filename, b, mtitle)
     

    @@ -69,29 +69,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_spmat_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
    @@ -101,30 +85,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_spmat_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. @@ -138,26 +129,26 @@ An integer value; 0 means no error has been detected.


    - next - + up - previous - contents
    - Next: mm_mat_read Read - Up: Utilities - Previous: hb_read Read -   Next: hb_write Write + Up: Utilities + Previous: Utilities +   Contents diff --git a/docs/html/node95.html b/docs/html/node95.html index eff77f9b..982c62e1 100644 --- a/docs/html/node95.html +++ b/docs/html/node95.html @@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds Jens Lippmann, Marek Rouchal, Martin Wilck and others --> -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 + @@ -20,45 +20,45 @@ original version by: Nikos Drakos, CBLU, University of Leeds - + - next - + up - previous - contents
    - Next: mm_vet_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

    -call mm_mat_read(a, iret, iunit, filename)
    +call hb_write(a, iret, iunit, filename, key, rhs, mtitle)
     

    @@ -69,13 +69,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_spmat_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
    @@ -85,6 +101,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. +

    @@ -92,13 +126,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_spmat_type. -
    iret
    Error code.
    @@ -109,7 +136,30 @@ An integer value; 0 means no error has been detected.

    -


    +
    + + +next + +up + +previous + +contents +
    + Next: mm_mat_read Read + Up: Utilities + Previous: hb_read Read +   Contents + diff --git a/docs/html/node96.html b/docs/html/node96.html index 42f2f7d2..6f5ee358 100644 --- a/docs/html/node96.html +++ b/docs/html/node96.html @@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds Jens Lippmann, Marek Rouchal, Martin Wilck and others --> -mm_vet_read -- Read a dense vector from a file in the MatrixMarket format - +mm_mat_read -- Read a sparse matrix from a file in the MatrixMarket format + @@ -20,44 +20,45 @@ original version by: Nikos Drakos, CBLU, University of Leeds - + - next - + up - previous - contents
    - Next: mm_mat_write Write - Up: Utilities - Previous: mm_mat_read Read -   Next: mm_vet_read Read + Up: Utilities + Previous: hb_write Write +   Contents

    -

    -mm_vet_read -- Read a dense vector from a +

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

    +

    -call mm_vet_read(b, iret, iunit, filename)
    +call mm_mat_read(a, iret, iunit, filename)
     

    @@ -91,14 +92,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 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_spmat_type.
    iret
    Error code. diff --git a/docs/html/node97.html b/docs/html/node97.html index 97ac0b44..1e61fc49 100644 --- a/docs/html/node97.html +++ b/docs/html/node97.html @@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds Jens Lippmann, Marek Rouchal, Martin Wilck and others --> -mm_mat_write -- Write a sparse matrix to a file in the MatrixMarket format - +mm_vet_read -- Read a dense vector from a file in the MatrixMarket format + @@ -18,46 +18,49 @@ original version by: Nikos Drakos, CBLU, University of Leeds + - + - next - + up - previous - contents
    - Next: Preconditioner routines - Up: Utilities - Previous: mm_vet_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_vet_read -- Read a dense vector from a file in the MatrixMarket format

    -call mm_mat_write(a, mtitle, iret, iunit, filename)
    +call mm_vet_read(b, iret, iunit, filename)
     
    + +

    Type:
    Asynchronous. @@ -65,28 +68,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_spmat_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
    @@ -103,6 +91,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 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/node98.html b/docs/html/node98.html index 4e972b8f..49f6b9c8 100644 --- a/docs/html/node98.html +++ b/docs/html/node98.html @@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds Jens Lippmann, Marek Rouchal, Martin Wilck and others --> -Preconditioner routines - +mm_mat_write -- Write a sparse matrix to a file in the MatrixMarket format + @@ -18,76 +18,102 @@ original version by: Nikos Drakos, CBLU, University of Leeds - - - + + - next - + up - previous - contents
    - Next: psb_precinit Initialize - Up: userhtml - Previous: mm_mat_write Write -   Next: Preconditioner routines + Up: Utilities + Previous: mm_vet_read Read +   Contents

    -

    - +

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

    + +
    +call mm_mat_write(a, mtitle, iret, iunit, filename)
    +
    +
    +
    Type:
    +
    Asynchronous. +
    +
    On Entry
    +
    +
    +
    a
    +
    the sparse matrix to be written. +
    +Type:required. +
    +Specified as: a structured data of type spdatapsb_spmat_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.
    -Preconditioner routines -

    +Type:optional. +
    +Specified as: a character variable containing a valid file name, or +-, in which case the default output unit 6 (i.e. standard output +in Unix jargon) is used. Default: -. +
    +
    iunit
    +
    The Fortran file unit number. +
    +Type:optional. +
    +Specified as: an integer value. Only meaningful if filename is not -. +
    +

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

      -
    • Diagonal Scaling -
    • -
    • Block Jacobi with ILU(0) factorization -
    • -
    -The supporting data type and subroutine interfaces are defined in the -module psb_prec_mod. +
    +
    On Return
    +
    +
    +
    iret
    +
    Error code. +
    +Type: required +
    +An integer value; 0 means no error has been detected. +
    +



    - -Subsections - - - -

    diff --git a/docs/html/node99.html b/docs/html/node99.html index 11d12da5..7ab60bd1 100644 --- a/docs/html/node99.html +++ b/docs/html/node99.html @@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds Jens Lippmann, Marek Rouchal, Martin Wilck and others --> -psb_precinit -- Initialize a preconditioner - +Preconditioner routines + @@ -18,125 +18,76 @@ original version by: Nikos Drakos, CBLU, University of Leeds - - - + + + - next - + up - previous - contents
    - Next: psb_precbld Builds - Up: Preconditioner routines - Previous: Preconditioner routines -   Next: psb_precinit Initialize + Up: userhtml + Previous: mm_mat_write Write +   Contents

    -

    -psb_precinit -- Initialize a preconditioner -

    +

    + +
    +Preconditioner routines +

    -

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

    -

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

    -

    -
    prec
    -
    Scope: local -
    -Type: required -
    -Intent: inout. -
    -Specified as: a preconditioner data structure precdatapsb_prec_type. -
    -
    info
    -
    Scope: global -
    -Type: required -
    -Intent: out. -
    -Error code: if no error, 0 is returned. -
    -
    -Notes -Legal inputs to this subroutine are interpreted depending on the -$ptype$ string as follows3: -
    -
    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.



    + +Subsections + + + +

    diff --git a/docs/html/userhtml.html b/docs/html/userhtml.html index 4616d839..f2f604f8 100644 --- a/docs/html/userhtml.html +++ b/docs/html/userhtml.html @@ -153,195 +153,197 @@ psb_cd_get_context--Get communication context
  • psb_geasums -- Generalized 1-Norm of Vector
  • psb_genrm2s -- Generalized 1-Norm of Vector + HREF="node33.html">psb_genrm2 -- 2-Norm of Vector
  • psb_spnrmi -- Infinity Norm of Sparse Matrix + HREF="node34.html">psb_genrm2s -- Generalized 2-Norm of Vector
  • psb_spmm -- Sparse Matrix by Dense Matrix Product + HREF="node35.html">psb_spnrmi -- Infinity Norm of Sparse Matrix
  • psb_spsm -- Triangular System Solve + HREF="node36.html">psb_spmm -- Sparse Matrix by Dense Matrix Product +
  • psb_spsm -- Triangular System Solve
    -
  • Communication routines -
    • psb_halo -- Halo Data Communication + HREF="node38.html">Communication routines +
      -
    • Data management routines -
      • psb_cdall -- Allocates a communication descriptor + HREF="node43.html">Data management routines +
        -
      • Parallel environment routines -
        • psb_init -- Initializes PSBLAS parallel environment + HREF="node71.html">Parallel environment routines +
          -
        • Error handling -
          • psb_errpush -- Pushes an error code onto the error - stack + HREF="node88.html">Error handling +
            -
          • Utilities -
            • hb_read -- Read a sparse matrix from a file in the - Harwell-Boeing format + HREF="node93.html">Utilities +
              -
            • Preconditioner routines -
              • psb_precinit -- Initialize a preconditioner + HREF="node99.html">Preconditioner routines +
                -
              • Iterative Methods -

                diff --git a/docs/psblas-3.0.pdf b/docs/psblas-3.0.pdf index 600d5ba9..f1cc19be 100644 --- a/docs/psblas-3.0.pdf +++ b/docs/psblas-3.0.pdf @@ -196,7 +196,7 @@ endobj << /S /GoTo /D (section*.19) >> endobj 136 0 obj -(psb\137genrm2) +(psb\137geasums) endobj 137 0 obj << /S /GoTo /D (section*.20) >> @@ -707,7 +707,7 @@ endobj /ProcSet [ /PDF /Text ] >> endobj 486 0 obj << -/Length 17639 +/Length 17640 >> stream 0 g 0 G @@ -1228,9 +1228,9 @@ q []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 133.425 247.877 Td [(genrm2)]TJ +/F8 9.9626 Tf 133.425 247.877 Td [(geasums)]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(.)-499(.)-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(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ 0 g 0 G [-1084(32)]TJ 0 g 0 G @@ -1584,7 +1584,7 @@ endobj 471 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [113.843 244.944 166.551 255.792] +/Rect [113.843 244.944 170.508 255.792] /Subtype /Link /A << /S /GoTo /D (section*.19) >> >> endobj @@ -7371,151 +7371,149 @@ endobj /ProcSet [ /PDF /Text ] >> endobj 835 0 obj << -/Length 6263 +/Length 6259 >> stream 0 g 0 G 0 g 0 G -0 g 0 G -0 g 0 G BT -/F16 14.3462 Tf 150.705 683.007 Td [(psb)]TJ +/F16 11.9552 Tf 150.705 706.129 Td [(psb)]TJ ET q -1 0 0 1 175.972 683.206 cm -[]0 d 0 J 0.398 w 0 0 m 4.842 0 l S +1 0 0 1 171.761 706.328 cm +[]0 d 0 J 0.398 w 0 0 m 4.035 0 l S Q BT -/F16 14.3462 Tf 180.814 683.007 Td [(genrm2|2-Norm)-375(of)-375(V)94(ector)]TJ/F8 9.9626 Tf -30.109 -27.01 Td [(This)-333(function)-334(computes)-333(the)-333(2-norm)-334(of)-333(a)-333(v)28(ec)-1(tor)]TJ/F11 9.9626 Tf 207.168 0 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(.)]TJ -212.862 -11.955 Td [(If)]TJ/F11 9.9626 Tf 9.963 0 Td [(x)]TJ/F8 9.9626 Tf 9.014 0 Td [(is)-333(a)-334(double)-333(precision)-333(real)-334(v)28(ector)-333(it)-334(computes)-333(2-norm)-333(as:)]TJ/F11 9.9626 Tf 119.907 -19.556 Td [(nr)-28(m)]TJ/F8 9.9626 Tf 19.498 0 Td [(2)]TJ/F14 9.9626 Tf 7.749 0 Td [(\040)]TJ 12.73 9.339 Td [(p)]TJ +/F16 11.9552 Tf 175.796 706.129 Td [(genrm2)-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(double)-333(precision)-333(real)-334(v)28(ector)-333(it)-334(computes)-333(2-norm)-333(as:)]TJ/F11 9.9626 Tf 119.907 -22.668 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 634.024 cm +1 0 0 1 337.868 662.655 cm []0 d 0 J 0.398 w 0 0 m 17.664 0 l S Q BT -/F11 9.9626 Tf 337.868 624.486 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 -18.442 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(double)-334(precision)-333(complex)-333(v)28(e)-1(ctor)-333(then)-333(it)-333(c)-1(ompu)1(te)-1(s)-333(2-norm)-333(as:)]TJ/F11 9.9626 Tf 101.222 -19.556 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 +/F11 9.9626 Tf 337.868 653.116 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 -21.553 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(double)-334(precision)-333(complex)-333(v)28(e)-1(ctor)-333(then)-333(it)-333(c)-1(ompu)1(te)-1(s)-333(2-norm)-333(as:)]TJ/F11 9.9626 Tf 101.222 -22.668 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 596.027 cm +1 0 0 1 337.228 618.433 cm []0 d 0 J 0.398 w 0 0 m 18.944 0 l S Q BT -/F11 9.9626 Tf 337.228 586.488 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 +/F11 9.9626 Tf 337.228 608.895 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 180.294 569.013 cm +1 0 0 1 180.294 587.063 cm []0 d 0 J 0.398 w 0 0 m 284.534 0 l S Q BT -/F11 9.9626 Tf 186.271 560.445 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 186.271 578.495 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 180.294 556.659 cm +1 0 0 1 180.294 574.709 cm []0 d 0 J 0.398 w 0 0 m 284.534 0 l S Q BT -/F8 9.9626 Tf 186.271 548.091 Td [(Short)-333(Precision)-334(Real)-1200(Shor)1(t)-334(Precision)-333(Real)-3103(psb)]TJ +/F8 9.9626 Tf 186.271 566.141 Td [(Short)-333(Precision)-334(Real)-1200(Shor)1(t)-334(Precision)-333(Real)-3103(psb)]TJ ET q -1 0 0 1 423.731 548.291 cm +1 0 0 1 423.731 566.34 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 426.72 548.091 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 426.72 566.141 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 423.731 536.335 cm +1 0 0 1 423.731 554.385 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 426.72 536.136 Td [(genrm2)]TJ -240.449 -11.955 Td [(Short)-333(Precision)-334(Real)-1200(Short)-333(Precision)-333(Complex)-1200(psb)]TJ +/F8 9.9626 Tf 426.72 554.186 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 423.731 524.38 cm +1 0 0 1 423.731 542.43 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 426.72 524.181 Td [(genrm2)]TJ -240.449 -11.955 Td [(Long)-333(Precision)-334(Real)-1411(Long)-333(Precision)-333(Complex)-1412(psb)]TJ +/F8 9.9626 Tf 426.72 542.231 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 423.731 512.425 cm +1 0 0 1 423.731 530.475 cm []0 d 0 J 0.398 w 0 0 m 2.989 0 l S Q BT -/F8 9.9626 Tf 426.72 512.226 Td [(genrm2)]TJ +/F8 9.9626 Tf 426.72 530.276 Td [(genrm2)]TJ ET q -1 0 0 1 180.294 508.44 cm +1 0 0 1 180.294 526.49 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 480.401 Td [(T)83(able)-333(8:)-444(Data)-334(t)28(yp)-28(es)]TJ +/F8 9.9626 Tf 278.877 498.45 Td [(T)83(able)-333(8:)-444(Data)-334(t)28(yp)-28(es)]TJ 0 g 0 G 0 g 0 G 0 g 0 G 0 g 0 G -/F30 9.9626 Tf -128.172 -30.719 Td [(psb_genrm2\050x,)-525(desc_a,)-525(info\051)]TJ +/F30 9.9626 Tf -128.172 -35.075 Td [(psb_genrm2\050x,)-525(desc_a,)-525(info\051)]TJ 0 g 0 G -/F27 9.9626 Tf 0 -18.441 Td [(T)32(yp)-32(e:)]TJ +/F27 9.9626 Tf 0 -21.554 Td [(T)32(yp)-32(e:)]TJ 0 g 0 G /F8 9.9626 Tf 33.797 0 Td [(Sync)28(hronous.)]TJ 0 g 0 G -/F27 9.9626 Tf -33.797 -18.535 Td [(On)-383(En)32(try)]TJ +/F27 9.9626 Tf -33.797 -19.779 Td [(On)-383(En)32(try)]TJ 0 g 0 G 0 g 0 G - 0 -18.535 Td [(x)]TJ + 0 -19.78 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)-289(as:)-423(a)-290(r)1(ank)-290(one)-290(or)-289(t)28(w)27(o)-289(arra)28(y)-290(con)28(taining)-290(n)28(um)28(b)-28(ers)-290(of)-289(t)28(yp)-28(e)-290(sp)-28(eci\014ed)]TJ 0 -11.955 Td [(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 [(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)-289(as:)-423(a)-290(r)1(ank)-290(one)-290(or)-289(t)28(w)27(o)-289(arra)28(y)-290(con)28(taining)-290(n)28(um)28(b)-28(ers)-290(of)-289(t)28(yp)-28(e)-290(sp)-28(eci\014ed)]TJ 0 -11.956 Td [(in)-333(T)83(able)]TJ 0 0 1 rg 0 0 1 RG [-333(8)]TJ 0 g 0 G [(.)]TJ 0 g 0 G -/F27 9.9626 Tf -24.907 -18.535 Td [(desc)]TJ +/F27 9.9626 Tf -24.907 -19.779 Td [(desc)]TJ ET q -1 0 0 1 172.619 316.06 cm +1 0 0 1 172.619 322.906 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 176.057 315.86 Td [(a)]TJ +/F27 9.9626 Tf 176.057 322.707 Td [(a)]TJ 0 g 0 G -/F8 9.9626 Tf 10.55 0 Td [(con)28(tains)-334(data)-333(structures)-333(for)-333(c)-1(omm)28(unications.)]TJ -10.996 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.612 0 Td [(required)]TJ/F8 9.9626 Tf -29.612 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.548 0 Td [(.)]TJ -43.034 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(structured)-333(data)-333(of)-334(t)28(yp)-28(e)]TJ +/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(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.239 cm +1 0 0 1 362.845 275.085 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.04 Td [(desc)]TJ +/F30 9.9626 Tf 365.983 274.886 Td [(desc)]TJ ET q -1 0 0 1 387.532 268.239 cm +1 0 0 1 387.532 275.085 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.04 Td [(type)]TJ +/F30 9.9626 Tf 390.67 274.886 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 -18.535 Td [(On)-383(Return)]TJ +/F27 9.9626 Tf -260.887 -19.779 Td [(On)-383(Return)]TJ 0 g 0 G 0 g 0 G - 0 -18.535 Td [(F)96(unction)-384(V)96(alue)]TJ + 0 -19.78 Td [(F)96(unction)-384(V)96(alue)]TJ 0 g 0 G -/F8 9.9626 Tf 80.683 0 Td [(is)-333(the)-334(2-norm)-333(of)-333(sub)27(v)28(ector)]TJ/F11 9.9626 Tf 117.504 0 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(.)]TJ -178.974 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.378 0 Td [(global)]TJ/F8 9.9626 Tf -32.378 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-444(a)-334(long)-333(precision)-333(real)-334(n)28(um)28(b)-28(er.)]TJ +/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.956 Td [(Sp)-28(eci\014ed)-333(as:)-444(a)-334(long)-333(precision)-333(real)-334(n)28(um)28(b)-28(er.)]TJ 0 g 0 G -/F27 9.9626 Tf -24.907 -18.535 Td [(info)]TJ +/F27 9.9626 Tf -24.907 -19.779 Td [(info)]TJ 0 g 0 G /F8 9.9626 Tf 23.758 0 Td [(Error)-333(co)-28(de.)]TJ 1.149 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.378 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.378 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.956 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.485 0 Td [(out)]TJ/F8 9.9626 Tf 16.549 0 Td [(.)]TJ -50.034 -11.955 Td [(An)-333(in)28(teger)-334(v)56(alue;)-334(0)-333(means)-333(no)-334(error)-333(has)-333(b)-28(een)-333(detected.)]TJ 0 g 0 G - 141.967 -38.311 Td [(32)]TJ + 141.967 -41.423 Td [(32)]TJ 0 g 0 G ET endstream @@ -7531,14 +7529,14 @@ endobj 831 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [213.636 333.399 220.609 342.31] +/Rect [213.636 341.49 220.609 350.401] /Subtype /Link /A << /S /GoTo /D (table.8) >> >> endobj 832 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [345.53 264.83 412.588 275.955] +/Rect [345.53 271.676 412.588 282.801] /Subtype /Link /A << /S /GoTo /D (descdata) >> >> endobj @@ -7546,17 +7544,17 @@ endobj /D [834 0 R /XYZ 150.705 740.998 null] >> endobj 134 0 obj << -/D [834 0 R /XYZ 150.705 665.163 null] +/D [834 0 R /XYZ 150.705 697.37 null] >> endobj 837 0 obj << -/D [834 0 R /XYZ 318.451 492.356 null] +/D [834 0 R /XYZ 318.451 510.406 null] >> endobj 833 0 obj << /Font << /F16 431 0 R /F8 434 0 R /F11 587 0 R /F14 604 0 R /F10 603 0 R /F27 433 0 R /F30 601 0 R >> /ProcSet [ /PDF /Text ] >> endobj 842 0 obj << -/Length 7099 +/Length 5648 >> stream 0 g 0 G @@ -7569,136 +7567,122 @@ 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 [(genrm2s)-375(|)-375(Generalized)-375(1-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(1-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 119.513 -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/F8 9.9626 Tf -215.738 -18.669 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 119.515 -18.494 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 12.73 9.34 Td [(p)]TJ -ET -q -1 0 0 1 287.449 624.25 cm -[]0 d 0 J 0.398 w 0 0 m 17.664 0 l S -Q -BT -/F11 9.9626 Tf 287.449 614.712 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.524 -17.38 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 100.832 -18.493 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 12.73 9.339 Td [(p)]TJ -ET -q -1 0 0 1 286.809 588.377 cm -[]0 d 0 J 0.398 w 0 0 m 18.944 0 l S -Q -BT -/F11 9.9626 Tf 286.809 578.839 Td [(x)]TJ/F10 6.9738 Tf 5.694 2.878 Td [(H)]TJ/F11 9.9626 Tf 7.557 -2.878 Td [(x)]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 0 g 0 G -/F30 9.9626 Tf -200.165 -17.379 Td [(call)-525(psb_genrm2s\050res,)-525(x,)-525(desc_a,)-525(info\051)]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 127.261 543.483 cm +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 133.239 534.915 Td [(r)-28(es)-8770(x)]TJ/F27 9.9626 Tf 221.863 0 Td [(Subroutine)]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 127.261 531.129 cm +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 133.239 522.561 Td [(Short)-333(Precision)-334(Real)-1200(Shor)1(t)-334(Precision)-333(Real)-3103(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 370.699 522.76 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 373.688 522.561 Td [(genrm2s)]TJ -240.449 -11.955 Td [(Long)-333(Precision)-334(Real)-1411(Long)-333(Precision)-333(Real)-3314(psb)]TJ +/F8 9.9626 Tf 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 370.699 510.805 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 373.688 510.606 Td [(genrm2s)]TJ -240.449 -11.955 Td [(Short)-333(Precision)-334(Real)-1200(Shor)1(t)-334(Precision)-333(Complex)-1200(psb)]TJ +/F8 9.9626 Tf 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 370.699 498.85 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 373.688 498.651 Td [(genrm2s)]TJ -240.449 -11.955 Td [(Long)-333(Precision)-334(Real)-1411(Long)-333(Precision)-333(Complex)-1412(psb)]TJ +/F8 9.9626 Tf 373.688 572.749 Td [(genrm2s)]TJ -240.449 -11.956 Td [(Long)-333(Precision)-334(Real)-1411(Long)-333(Precision)-333(Complex)-1412(psb)]TJ ET q -1 0 0 1 370.699 486.895 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 373.688 486.696 Td [(genrm2s)]TJ +/F8 9.9626 Tf 373.688 560.793 Td [(genrm2s)]TJ ET q -1 0 0 1 127.261 482.91 cm +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 228.067 454.871 Td [(T)83(able)-333(9:)-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 -/F27 9.9626 Tf -128.172 -27.243 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 -18.109 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 -18.11 Td [(x)]TJ + 0 -19.926 Td [(x)]TJ 0 g 0 G -/F8 9.9626 Tf 11.028 0 Td [(the)-333(lo)-28(cal)-333(p)-28(ortion)-333(of)-334(global)-333(dense)-333(matrix)]TJ/F11 9.9626 Tf 176.118 0 Td [(x)]TJ/F8 9.9626 Tf 5.694 0 Td [(.)]TJ -167.933 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.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)-289(as:)-423(a)-290(ran)1(k)-290(one)-290(or)-289(t)28(w)27(o)-289(arra)27(y)-289(con)28(taining)-290(n)28(um)28(b)-28(ers)-290(of)-289(t)28(yp)-28(e)-290(sp)-28(eci\014ed)]TJ 0 -11.955 Td [(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 [(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)-289(as:)-423(a)-290(ran)1(k)-290(one)-290(or)-289(t)28(w)27(o)-289(arra)27(y)-289(con)28(taining)-290(n)28(um)28(b)-28(ers)-290(of)-289(t)28(yp)-28(e)-290(sp)-28(eci\014ed)]TJ 0 -11.955 Td [(in)-333(T)83(able)]TJ 0 0 1 rg 0 0 1 RG [-333(9)]TJ 0 g 0 G [(.)]TJ 0 g 0 G -/F27 9.9626 Tf -24.907 -18.11 Td [(desc)]TJ +/F27 9.9626 Tf -24.907 -19.926 Td [(desc)]TJ ET q -1 0 0 1 121.81 313.722 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 313.523 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(a)-333(structured)-333(data)-333(of)-334(t)28(yp)-28(e)]TJ +/F8 9.9626 Tf 10.551 0 Td [(con)28(tains)-334(d)1(ata)-334(structures)-333(for)-333(com)-1(m)28(unications.)]TJ -10.996 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(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 265.902 cm +1 0 0 1 312.036 328.199 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 315.174 265.702 Td [(desc)]TJ +/F30 9.9626 Tf 315.174 328 Td [(desc)]TJ ET q -1 0 0 1 336.723 265.902 cm +1 0 0 1 336.723 328.199 cm []0 d 0 J 0.398 w 0 0 m 3.138 0 l S Q BT -/F30 9.9626 Tf 339.861 265.702 Td [(type)]TJ +/F30 9.9626 Tf 339.861 328 Td [(type)]TJ 0 g 0 G /F8 9.9626 Tf 20.921 0 Td [(.)]TJ 0 g 0 G -/F27 9.9626 Tf -260.887 -18.109 Td [(On)-383(Return)]TJ +/F27 9.9626 Tf -260.887 -19.926 Td [(On)-383(Return)]TJ 0 g 0 G 0 g 0 G - 0 -18.11 Td [(res)]TJ + 0 -19.925 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.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(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 -18.11 Td [(info)]TJ +/F27 9.9626 Tf -24.907 -19.926 Td [(info)]TJ 0 g 0 G /F8 9.9626 Tf 23.758 0 Td [(Error)-333(co)-28(de.)]TJ 1.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 -37.249 Td [(33)]TJ + 141.968 -94.1 Td [(33)]TJ 0 g 0 G ET endstream @@ -7714,14 +7698,14 @@ endobj 838 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [162.826 330.637 169.8 339.548] +/Rect [162.826 394.749 169.8 403.66] /Subtype /Link /A << /S /GoTo /D (table.9) >> >> endobj 839 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [294.721 262.492 361.779 273.617] +/Rect [294.721 324.789 361.779 335.914] /Subtype /Link /A << /S /GoTo /D (descdata) >> >> endobj @@ -7732,10 +7716,10 @@ endobj /D [841 0 R /XYZ 99.895 697.37 null] >> endobj 844 0 obj << -/D [841 0 R /XYZ 267.641 466.826 null] +/D [841 0 R /XYZ 267.641 540.923 null] >> endobj 840 0 obj << -/Font << /F16 431 0 R /F8 434 0 R /F11 587 0 R /F14 604 0 R /F10 603 0 R /F30 601 0 R /F27 433 0 R >> +/Font << /F16 431 0 R /F8 434 0 R /F11 587 0 R /F14 604 0 R /F7 602 0 R /F30 601 0 R /F27 433 0 R >> /ProcSet [ /PDF /Text ] >> endobj 849 0 obj << @@ -20307,8 +20291,8 @@ endobj >> endobj 1575 0 obj << /Title (Parallel Sparse BLAS V. 3.0-beta) /Subject (Parallel Sparse Basic Linear Algebra Subroutines) /Keywords (Computer Science Linear Algebra Fluid Dynamics Parallel Linux MPI PSBLAS Iterative Solvers Preconditioners) /Creator (pdfLaTeX) /Producer ($Id: userguide.tex 4222 2010-05-13 12:08:31Z sfilippo $) /Author()/Title()/Subject()/Creator(LaTeX with hyperref package)/Producer(pdfTeX-1.40.3)/Keywords() -/CreationDate (D:20100527115343+02'00') -/ModDate (D:20100527115343+02'00') +/CreationDate (D:20100622145615+02'00') +/ModDate (D:20100622145615+02'00') /Trapped /False /PTEX.Fullbanner (This is pdfTeX using libpoppler, Version 3.141592-1.40.3-2.2 (Web2C 7.5.6) kpathsea version 3.5.6) >> endobj @@ -20320,1581 +20304,1581 @@ xref 0000000004 00000 f 0000000000 00000 f 0000000015 00000 n -0000010142 00000 n -0000901363 00000 n +0000010143 00000 n +0000899908 00000 n 0000000058 00000 n 0000000105 00000 n -0000084073 00000 n -0000901291 00000 n +0000084075 00000 n +0000899836 00000 n 0000000150 00000 n 0000000183 00000 n -0000092006 00000 n -0000901168 00000 n +0000092008 00000 n +0000899713 00000 n 0000000229 00000 n 0000000266 00000 n -0000102236 00000 n -0000901094 00000 n +0000102238 00000 n +0000899639 00000 n 0000000317 00000 n 0000000358 00000 n -0000110483 00000 n -0000901007 00000 n +0000110485 00000 n +0000899552 00000 n 0000000409 00000 n 0000000448 00000 n -0000117735 00000 n -0000900920 00000 n +0000117737 00000 n +0000899465 00000 n 0000000499 00000 n 0000000543 00000 n -0000135981 00000 n -0000900846 00000 n +0000135983 00000 n +0000899391 00000 n 0000000594 00000 n 0000000634 00000 n -0000146723 00000 n -0000900722 00000 n +0000146725 00000 n +0000899267 00000 n 0000000680 00000 n 0000000716 00000 n -0000146783 00000 n -0000900611 00000 n +0000146785 00000 n +0000899156 00000 n 0000000767 00000 n 0000000815 00000 n -0000163185 00000 n -0000900550 00000 n +0000163187 00000 n +0000899095 00000 n 0000000871 00000 n 0000000911 00000 n -0000163245 00000 n -0000900426 00000 n +0000163247 00000 n +0000898971 00000 n 0000000962 00000 n 0000001013 00000 n -0000186935 00000 n -0000900365 00000 n +0000186937 00000 n +0000898910 00000 n 0000001069 00000 n 0000001109 00000 n -0000186996 00000 n -0000900278 00000 n +0000186998 00000 n +0000898823 00000 n 0000001160 00000 n 0000001212 00000 n -0000187118 00000 n -0000900166 00000 n +0000187120 00000 n +0000898711 00000 n 0000001263 00000 n 0000001315 00000 n -0000187179 00000 n -0000900092 00000 n +0000187181 00000 n +0000898637 00000 n 0000001362 00000 n 0000001415 00000 n -0000191860 00000 n -0000900005 00000 n +0000191862 00000 n +0000898550 00000 n 0000001462 00000 n 0000001515 00000 n -0000199123 00000 n -0000899918 00000 n +0000199125 00000 n +0000898463 00000 n 0000001562 00000 n 0000001616 00000 n -0000199184 00000 n -0000899831 00000 n +0000199186 00000 n +0000898376 00000 n 0000001663 00000 n 0000001717 00000 n -0000204794 00000 n -0000899744 00000 n +0000204796 00000 n +0000898289 00000 n 0000001764 00000 n 0000001810 00000 n -0000204854 00000 n -0000899657 00000 n +0000204856 00000 n +0000898202 00000 n 0000001857 00000 n 0000001914 00000 n -0000204914 00000 n -0000899570 00000 n +0000204916 00000 n +0000898115 00000 n 0000001961 00000 n 0000002018 00000 n -0000211815 00000 n -0000899483 00000 n +0000211817 00000 n +0000898028 00000 n 0000002065 00000 n 0000002110 00000 n -0000211876 00000 n -0000899396 00000 n +0000211878 00000 n +0000897941 00000 n 0000002158 00000 n 0000002202 00000 n -0000211937 00000 n -0000899321 00000 n +0000211939 00000 n +0000897866 00000 n 0000002250 00000 n 0000002297 00000 n -0000213508 00000 n -0000899191 00000 n +0000213510 00000 n +0000897736 00000 n 0000002344 00000 n 0000002388 00000 n -0000221662 00000 n -0000899112 00000 n +0000221664 00000 n +0000897657 00000 n 0000002437 00000 n 0000002471 00000 n -0000231714 00000 n -0000899019 00000 n +0000231716 00000 n +0000897564 00000 n 0000002520 00000 n 0000002552 00000 n -0000241289 00000 n -0000898926 00000 n +0000241291 00000 n +0000897471 00000 n 0000002601 00000 n 0000002634 00000 n -0000249604 00000 n -0000898833 00000 n +0000249606 00000 n +0000897378 00000 n 0000002683 00000 n 0000002716 00000 n -0000256253 00000 n -0000898740 00000 n +0000256255 00000 n +0000897285 00000 n 0000002765 00000 n 0000002799 00000 n -0000263266 00000 n -0000898647 00000 n +0000263268 00000 n +0000897192 00000 n 0000002848 00000 n 0000002881 00000 n -0000270977 00000 n -0000898554 00000 n +0000270979 00000 n +0000897099 00000 n 0000002930 00000 n 0000002964 00000 n -0000279038 00000 n -0000898461 00000 n +0000279037 00000 n +0000897006 00000 n 0000003013 00000 n -0000003046 00000 n -0000286976 00000 n -0000898368 00000 n -0000003095 00000 n -0000003129 00000 n -0000293290 00000 n -0000898275 00000 n -0000003178 00000 n -0000003211 00000 n -0000301813 00000 n -0000898182 00000 n -0000003260 00000 n -0000003291 00000 n -0000319047 00000 n -0000898103 00000 n -0000003340 00000 n -0000003371 00000 n -0000333703 00000 n -0000897973 00000 n -0000003418 00000 n -0000003462 00000 n -0000340599 00000 n -0000897894 00000 n -0000003511 00000 n -0000003542 00000 n -0000360921 00000 n -0000897801 00000 n -0000003591 00000 n -0000003622 00000 n -0000385263 00000 n -0000897708 00000 n -0000003671 00000 n -0000003704 00000 n -0000394846 00000 n -0000897629 00000 n -0000003753 00000 n -0000003787 00000 n -0000404125 00000 n -0000897498 00000 n -0000003834 00000 n -0000003880 00000 n -0000404187 00000 n -0000897419 00000 n -0000003929 00000 n -0000003961 00000 n -0000428917 00000 n -0000897326 00000 n -0000004010 00000 n -0000004042 00000 n -0000433302 00000 n -0000897233 00000 n -0000004091 00000 n -0000004123 00000 n -0000437393 00000 n -0000897140 00000 n -0000004172 00000 n -0000004204 00000 n -0000440227 00000 n -0000897047 00000 n -0000004253 00000 n -0000004286 00000 n -0000446890 00000 n -0000896954 00000 n -0000004335 00000 n -0000004370 00000 n -0000454598 00000 n -0000896861 00000 n -0000004419 00000 n -0000004451 00000 n -0000462385 00000 n -0000896768 00000 n -0000004500 00000 n -0000004532 00000 n -0000472889 00000 n -0000896675 00000 n -0000004581 00000 n -0000004613 00000 n -0000478894 00000 n -0000896582 00000 n -0000004662 00000 n -0000004695 00000 n -0000483618 00000 n -0000896489 00000 n -0000004744 00000 n -0000004775 00000 n -0000488876 00000 n -0000896396 00000 n -0000004824 00000 n -0000004856 00000 n -0000495656 00000 n -0000896303 00000 n -0000004905 00000 n -0000004937 00000 n -0000500149 00000 n -0000896210 00000 n -0000004986 00000 n -0000005018 00000 n -0000503621 00000 n -0000896117 00000 n -0000005067 00000 n -0000005100 00000 n -0000507478 00000 n -0000896024 00000 n -0000005149 00000 n -0000005180 00000 n -0000514635 00000 n -0000895931 00000 n -0000005229 00000 n -0000005273 00000 n -0000522125 00000 n -0000895838 00000 n -0000005322 00000 n -0000005366 00000 n -0000526001 00000 n -0000895745 00000 n -0000005415 00000 n -0000005453 00000 n -0000531642 00000 n -0000895652 00000 n -0000005502 00000 n -0000005543 00000 n -0000535549 00000 n -0000895559 00000 n -0000005592 00000 n -0000005630 00000 n -0000541174 00000 n -0000895466 00000 n -0000005679 00000 n -0000005720 00000 n -0000545644 00000 n -0000895373 00000 n -0000005769 00000 n -0000005811 00000 n -0000550017 00000 n -0000895280 00000 n -0000005860 00000 n -0000005901 00000 n -0000556522 00000 n -0000895187 00000 n -0000005950 00000 n -0000005989 00000 n -0000565830 00000 n -0000895094 00000 n -0000006038 00000 n -0000006071 00000 n -0000572016 00000 n -0000895015 00000 n -0000006120 00000 n -0000006157 00000 n -0000580594 00000 n -0000894884 00000 n -0000006204 00000 n -0000006255 00000 n -0000586561 00000 n -0000894805 00000 n -0000006304 00000 n -0000006335 00000 n -0000591780 00000 n -0000894712 00000 n -0000006384 00000 n -0000006415 00000 n -0000596705 00000 n -0000894619 00000 n -0000006464 00000 n -0000006495 00000 n -0000599502 00000 n -0000894526 00000 n -0000006544 00000 n -0000006585 00000 n -0000602945 00000 n -0000894433 00000 n -0000006634 00000 n -0000006672 00000 n -0000604570 00000 n -0000894340 00000 n -0000006721 00000 n -0000006753 00000 n -0000606462 00000 n -0000894247 00000 n -0000006802 00000 n -0000006836 00000 n -0000608240 00000 n -0000894154 00000 n -0000006885 00000 n -0000006917 00000 n -0000613191 00000 n -0000894061 00000 n -0000006966 00000 n -0000006998 00000 n -0000618782 00000 n -0000893968 00000 n -0000007047 00000 n -0000007077 00000 n -0000624538 00000 n -0000893875 00000 n -0000007126 00000 n -0000007156 00000 n -0000630271 00000 n -0000893782 00000 n -0000007205 00000 n -0000007235 00000 n -0000636119 00000 n -0000893689 00000 n -0000007284 00000 n -0000007314 00000 n -0000641940 00000 n -0000893596 00000 n -0000007363 00000 n -0000007393 00000 n -0000647880 00000 n -0000893503 00000 n -0000007442 00000 n -0000007472 00000 n -0000653740 00000 n -0000893424 00000 n -0000007521 00000 n -0000007551 00000 n -0000660984 00000 n -0000893294 00000 n -0000007598 00000 n -0000007634 00000 n -0000668681 00000 n -0000893215 00000 n -0000007683 00000 n -0000007717 00000 n -0000670251 00000 n -0000893122 00000 n -0000007766 00000 n -0000007798 00000 n -0000671920 00000 n -0000893029 00000 n -0000007847 00000 n -0000007893 00000 n -0000674050 00000 n -0000892950 00000 n -0000007942 00000 n -0000007985 00000 n -0000674996 00000 n -0000892820 00000 n -0000008032 00000 n -0000008063 00000 n -0000680016 00000 n -0000892716 00000 n -0000008112 00000 n -0000008142 00000 n -0000685474 00000 n -0000892637 00000 n -0000008191 00000 n -0000008222 00000 n -0000689299 00000 n -0000892544 00000 n -0000008271 00000 n -0000008308 00000 n -0000692982 00000 n -0000892451 00000 n -0000008357 00000 n -0000008395 00000 n -0000697283 00000 n -0000892372 00000 n -0000008444 00000 n -0000008482 00000 n -0000698615 00000 n -0000892242 00000 n -0000008530 00000 n -0000008576 00000 n -0000704014 00000 n -0000892163 00000 n -0000008625 00000 n -0000008660 00000 n -0000709920 00000 n -0000892070 00000 n -0000008709 00000 n -0000008743 00000 n -0000715673 00000 n -0000891977 00000 n -0000008792 00000 n -0000008827 00000 n -0000718261 00000 n -0000891898 00000 n -0000008876 00000 n -0000008912 00000 n -0000719279 00000 n -0000891782 00000 n -0000008960 00000 n -0000009000 00000 n -0000727227 00000 n -0000891717 00000 n -0000009049 00000 n -0000009075 00000 n -0000009901 00000 n -0000010201 00000 n -0000009127 00000 n -0000010020 00000 n -0000010081 00000 n -0000886124 00000 n -0000887860 00000 n -0000885978 00000 n -0000886707 00000 n -0000888297 00000 n -0000010628 00000 n -0000010447 00000 n -0000010311 00000 n -0000010566 00000 n -0000028856 00000 n -0000029007 00000 n -0000029158 00000 n -0000029315 00000 n -0000029472 00000 n -0000029629 00000 n -0000029786 00000 n -0000029936 00000 n -0000030093 00000 n -0000030255 00000 n -0000030412 00000 n -0000030574 00000 n -0000030731 00000 n -0000030888 00000 n -0000031041 00000 n -0000031194 00000 n -0000031347 00000 n -0000031500 00000 n -0000031652 00000 n -0000031805 00000 n -0000031958 00000 n -0000032111 00000 n -0000032265 00000 n -0000032419 00000 n -0000032570 00000 n -0000032724 00000 n -0000032878 00000 n -0000033032 00000 n -0000033186 00000 n -0000033340 00000 n -0000033493 00000 n -0000033647 00000 n -0000033801 00000 n -0000033955 00000 n -0000034109 00000 n -0000034262 00000 n -0000034416 00000 n -0000034567 00000 n -0000034721 00000 n -0000034874 00000 n -0000035028 00000 n -0000056872 00000 n -0000057023 00000 n -0000057176 00000 n -0000035303 00000 n -0000028397 00000 n -0000010699 00000 n -0000035181 00000 n -0000035242 00000 n -0000057330 00000 n -0000057484 00000 n -0000057638 00000 n -0000057792 00000 n -0000057946 00000 n -0000058100 00000 n -0000058254 00000 n -0000058407 00000 n -0000058560 00000 n -0000058714 00000 n -0000058868 00000 n -0000059021 00000 n -0000059174 00000 n -0000059327 00000 n -0000059481 00000 n -0000059635 00000 n -0000059789 00000 n -0000059943 00000 n -0000060097 00000 n -0000060251 00000 n -0000060405 00000 n -0000060558 00000 n -0000060710 00000 n -0000060864 00000 n -0000061018 00000 n -0000061172 00000 n -0000061324 00000 n -0000061478 00000 n -0000061632 00000 n -0000061786 00000 n -0000061940 00000 n -0000062094 00000 n -0000062248 00000 n -0000062402 00000 n -0000062556 00000 n -0000062710 00000 n -0000062864 00000 n -0000063018 00000 n -0000063172 00000 n -0000063326 00000 n -0000063480 00000 n -0000063633 00000 n -0000071384 00000 n -0000071535 00000 n -0000071688 00000 n -0000071842 00000 n -0000063848 00000 n -0000056381 00000 n -0000035400 00000 n -0000063786 00000 n -0000071995 00000 n -0000072149 00000 n -0000072300 00000 n -0000072453 00000 n -0000072607 00000 n -0000072760 00000 n -0000072914 00000 n -0000073068 00000 n -0000073218 00000 n -0000073372 00000 n -0000073526 00000 n -0000073680 00000 n -0000073834 00000 n -0000073985 00000 n -0000074199 00000 n -0000071109 00000 n -0000063932 00000 n -0000074138 00000 n -0000074602 00000 n -0000074421 00000 n -0000074283 00000 n -0000074540 00000 n -0000082999 00000 n -0000083154 00000 n -0000083310 00000 n -0000083464 00000 n -0000083619 00000 n -0000083769 00000 n -0000083921 00000 n -0000091550 00000 n -0000091701 00000 n -0000084133 00000 n -0000082812 00000 n -0000074673 00000 n -0000887714 00000 n -0000888415 00000 n -0000746323 00000 n -0000746260 00000 n -0000744124 00000 n -0000744186 00000 n -0000744436 00000 n -0000743939 00000 n -0000744001 00000 n -0000091854 00000 n -0000089890 00000 n -0000092129 00000 n -0000089735 00000 n -0000084230 00000 n -0000886270 00000 n -0000092067 00000 n -0000091288 00000 n -0000091407 00000 n -0000091454 00000 n -0000091528 00000 n -0000744062 00000 n -0000101715 00000 n -0000101868 00000 n -0000102022 00000 n -0000102420 00000 n -0000101560 00000 n -0000092254 00000 n -0000102175 00000 n -0000888006 00000 n -0000886995 00000 n -0000886562 00000 n -0000887426 00000 n -0000886852 00000 n -0000102296 00000 n -0000887138 00000 n -0000102358 00000 n -0000744374 00000 n -0000110053 00000 n -0000110206 00000 n -0000108082 00000 n -0000110544 00000 n -0000107935 00000 n -0000102620 00000 n -0000110359 00000 n -0000110421 00000 n -0000109791 00000 n -0000109910 00000 n -0000109957 00000 n -0000110031 00000 n -0000743877 00000 n -0000743816 00000 n -0000117370 00000 n -0000117522 00000 n -0000117794 00000 n -0000117223 00000 n -0000110708 00000 n -0000117674 00000 n -0000127321 00000 n -0000126522 00000 n -0000117930 00000 n -0000126641 00000 n -0000886416 00000 n -0000126703 00000 n -0000126763 00000 n -0000126825 00000 n -0000126887 00000 n -0000126949 00000 n -0000127011 00000 n -0000127073 00000 n -0000127135 00000 n -0000127197 00000 n -0000127259 00000 n -0000138065 00000 n -0000136041 00000 n -0000135131 00000 n -0000127443 00000 n -0000135250 00000 n -0000135311 00000 n -0000135372 00000 n -0000135433 00000 n -0000135494 00000 n -0000135555 00000 n -0000135616 00000 n -0000135677 00000 n -0000135737 00000 n -0000135798 00000 n -0000135859 00000 n -0000135920 00000 n -0000888533 00000 n -0000138284 00000 n -0000137926 00000 n -0000136151 00000 n -0000138222 00000 n -0000146354 00000 n -0000146505 00000 n -0000147210 00000 n -0000146207 00000 n -0000138368 00000 n -0000146662 00000 n -0000146843 00000 n -0000146905 00000 n -0000146966 00000 n -0000147027 00000 n -0000147088 00000 n -0000147149 00000 n -0000154286 00000 n -0000153548 00000 n -0000147320 00000 n -0000153667 00000 n -0000153729 00000 n -0000153791 00000 n -0000153852 00000 n -0000153914 00000 n -0000153976 00000 n -0000154038 00000 n -0000154100 00000 n -0000154162 00000 n -0000154224 00000 n -0000162968 00000 n -0000163367 00000 n -0000162829 00000 n -0000154396 00000 n -0000163124 00000 n -0000163305 00000 n -0000172416 00000 n -0000172877 00000 n -0000172277 00000 n -0000163477 00000 n -0000172567 00000 n -0000172629 00000 n -0000172691 00000 n -0000172753 00000 n -0000172815 00000 n -0000176884 00000 n -0000176946 00000 n -0000176704 00000 n -0000173000 00000 n -0000176823 00000 n -0000888651 00000 n -0000186421 00000 n -0000186572 00000 n -0000186721 00000 n -0000187240 00000 n -0000186266 00000 n -0000177043 00000 n -0000186873 00000 n -0000187056 00000 n -0000191798 00000 n -0000198462 00000 n -0000191920 00000 n -0000191618 00000 n -0000187376 00000 n -0000191737 00000 n -0000888152 00000 n -0000198612 00000 n -0000198761 00000 n -0000198911 00000 n -0000204582 00000 n -0000199245 00000 n -0000198299 00000 n -0000192030 00000 n -0000199061 00000 n -0000211310 00000 n -0000204974 00000 n -0000204443 00000 n -0000199368 00000 n -0000204733 00000 n -0000211458 00000 n -0000211605 00000 n -0000211998 00000 n -0000211155 00000 n -0000205084 00000 n -0000211753 00000 n -0000213026 00000 n -0000212785 00000 n -0000212095 00000 n -0000212904 00000 n -0000212965 00000 n -0000888769 00000 n -0000213570 00000 n -0000213327 00000 n -0000213110 00000 n -0000213446 00000 n -0000220854 00000 n -0000221004 00000 n -0000221151 00000 n -0000221301 00000 n -0000221451 00000 n -0000223613 00000 n -0000221784 00000 n -0000220683 00000 n -0000213654 00000 n -0000221601 00000 n -0000221722 00000 n -0000223825 00000 n -0000223474 00000 n -0000221920 00000 n -0000223763 00000 n -0000231053 00000 n -0000231203 00000 n -0000231353 00000 n -0000231504 00000 n -0000231836 00000 n -0000230890 00000 n -0000223922 00000 n -0000231653 00000 n -0000231774 00000 n -0000232850 00000 n -0000232669 00000 n -0000231985 00000 n -0000232788 00000 n -0000240629 00000 n -0000240779 00000 n -0000240929 00000 n -0000241079 00000 n -0000241410 00000 n -0000240466 00000 n -0000232934 00000 n -0000241228 00000 n -0000241349 00000 n -0000888887 00000 n -0000242424 00000 n -0000242243 00000 n -0000241559 00000 n -0000242362 00000 n -0000249246 00000 n -0000249392 00000 n -0000249726 00000 n -0000249099 00000 n -0000242508 00000 n -0000249543 00000 n -0000249664 00000 n -0000255893 00000 n -0000256042 00000 n -0000256376 00000 n -0000255746 00000 n -0000249875 00000 n -0000256191 00000 n -0000256314 00000 n -0000262906 00000 n -0000263054 00000 n -0000263388 00000 n -0000262759 00000 n -0000256525 00000 n -0000263205 00000 n -0000263326 00000 n -0000270617 00000 n -0000270766 00000 n -0000271101 00000 n -0000270470 00000 n -0000263549 00000 n -0000270915 00000 n -0000271039 00000 n -0000272125 00000 n -0000271945 00000 n -0000271262 00000 n -0000272064 00000 n -0000889005 00000 n -0000278678 00000 n -0000278827 00000 n -0000279162 00000 n -0000278531 00000 n -0000272209 00000 n -0000278976 00000 n -0000279100 00000 n -0000286616 00000 n -0000286764 00000 n -0000287098 00000 n -0000286469 00000 n -0000279311 00000 n -0000286915 00000 n -0000287036 00000 n -0000292930 00000 n -0000293078 00000 n -0000293413 00000 n -0000292783 00000 n -0000287247 00000 n -0000293228 00000 n -0000887571 00000 n -0000293351 00000 n -0000301302 00000 n -0000301453 00000 n -0000301602 00000 n -0000308997 00000 n -0000302121 00000 n -0000301147 00000 n -0000293562 00000 n -0000301752 00000 n -0000301873 00000 n -0000301935 00000 n -0000301997 00000 n -0000302059 00000 n -0000309148 00000 n -0000309298 00000 n -0000309448 00000 n -0000309600 00000 n -0000309753 00000 n -0000309906 00000 n -0000310119 00000 n -0000308810 00000 n -0000302282 00000 n -0000310057 00000 n -0000318836 00000 n -0000326346 00000 n -0000319169 00000 n -0000318697 00000 n -0000310229 00000 n -0000318986 00000 n -0000319107 00000 n -0000889123 00000 n -0000326498 00000 n -0000326649 00000 n -0000326800 00000 n -0000326950 00000 n -0000327162 00000 n -0000326175 00000 n -0000319343 00000 n -0000327100 00000 n -0000332167 00000 n -0000332318 00000 n -0000332530 00000 n -0000332020 00000 n -0000327298 00000 n -0000332469 00000 n -0000333489 00000 n -0000333765 00000 n -0000333350 00000 n -0000332640 00000 n -0000333641 00000 n -0000340086 00000 n -0000340237 00000 n -0000340388 00000 n -0000340721 00000 n -0000339931 00000 n -0000333849 00000 n -0000340538 00000 n -0000340659 00000 n -0000349411 00000 n -0000345182 00000 n -0000349561 00000 n -0000349835 00000 n -0000345035 00000 n -0000340857 00000 n -0000349711 00000 n -0000349773 00000 n -0000349076 00000 n -0000349195 00000 n -0000349242 00000 n -0000349316 00000 n -0000349389 00000 n -0000353275 00000 n -0000353095 00000 n -0000349986 00000 n -0000353214 00000 n -0000887282 00000 n -0000889241 00000 n -0000360558 00000 n -0000360709 00000 n -0000361044 00000 n -0000360411 00000 n -0000353359 00000 n -0000360859 00000 n -0000360982 00000 n -0000367273 00000 n -0000372571 00000 n -0000367424 00000 n -0000367573 00000 n -0000367967 00000 n -0000367118 00000 n -0000361193 00000 n -0000367724 00000 n -0000367785 00000 n -0000367846 00000 n -0000367907 00000 n -0000376945 00000 n -0000371962 00000 n -0000371781 00000 n -0000368103 00000 n -0000371900 00000 n -0000377007 00000 n -0000372452 00000 n -0000372046 00000 n -0000376884 00000 n -0000376549 00000 n -0000376668 00000 n -0000376715 00000 n -0000376789 00000 n -0000376862 00000 n -0000384900 00000 n -0000385051 00000 n -0000385386 00000 n -0000384753 00000 n -0000377106 00000 n -0000385201 00000 n -0000385324 00000 n -0000387141 00000 n -0000386961 00000 n -0000385547 00000 n -0000387080 00000 n -0000889359 00000 n -0000394634 00000 n -0000397047 00000 n -0000394970 00000 n -0000394495 00000 n -0000387225 00000 n -0000394784 00000 n -0000394908 00000 n -0000397259 00000 n -0000396908 00000 n -0000395131 00000 n -0000397198 00000 n -0000404249 00000 n -0000403944 00000 n -0000397356 00000 n -0000404063 00000 n -0000410923 00000 n -0000411196 00000 n -0000410784 00000 n -0000404385 00000 n -0000411074 00000 n -0000411135 00000 n -0000421886 00000 n -0000421392 00000 n -0000411306 00000 n -0000421511 00000 n -0000421573 00000 n -0000421635 00000 n -0000421697 00000 n -0000421760 00000 n -0000421823 00000 n -0000422838 00000 n -0000422589 00000 n -0000422022 00000 n -0000422712 00000 n -0000422775 00000 n -0000889477 00000 n -0000428702 00000 n -0000429105 00000 n -0000428558 00000 n -0000422923 00000 n -0000428853 00000 n -0000428979 00000 n -0000429043 00000 n -0000432936 00000 n -0000433087 00000 n -0000433426 00000 n -0000432783 00000 n -0000429229 00000 n -0000433239 00000 n -0000433363 00000 n -0000437028 00000 n -0000437178 00000 n -0000437455 00000 n -0000436875 00000 n -0000433537 00000 n -0000437329 00000 n -0000440013 00000 n -0000440288 00000 n -0000439869 00000 n -0000437566 00000 n -0000440164 00000 n -0000446527 00000 n -0000446675 00000 n -0000446953 00000 n -0000446374 00000 n -0000440399 00000 n -0000446826 00000 n -0000449053 00000 n -0000448741 00000 n -0000447090 00000 n -0000448864 00000 n -0000448927 00000 n -0000448990 00000 n -0000889602 00000 n -0000454237 00000 n -0000454387 00000 n -0000454852 00000 n -0000454084 00000 n -0000449138 00000 n -0000454534 00000 n -0000454660 00000 n -0000454724 00000 n -0000454788 00000 n -0000461870 00000 n -0000462021 00000 n -0000462171 00000 n -0000462446 00000 n -0000461708 00000 n -0000454976 00000 n -0000462322 00000 n -0000466215 00000 n -0000465644 00000 n -0000462570 00000 n -0000465767 00000 n -0000465831 00000 n -0000465895 00000 n -0000465959 00000 n -0000466023 00000 n -0000466087 00000 n -0000466151 00000 n -0000472524 00000 n -0000472676 00000 n -0000473077 00000 n -0000472371 00000 n -0000466326 00000 n -0000472826 00000 n -0000472951 00000 n -0000473014 00000 n -0000475147 00000 n -0000474768 00000 n -0000473188 00000 n -0000474891 00000 n -0000474955 00000 n -0000475019 00000 n -0000475083 00000 n -0000478530 00000 n -0000478679 00000 n -0000478955 00000 n -0000478377 00000 n -0000475232 00000 n -0000478831 00000 n -0000889727 00000 n -0000483254 00000 n -0000483403 00000 n -0000483745 00000 n -0000483101 00000 n -0000479066 00000 n -0000483554 00000 n -0000483681 00000 n -0000488663 00000 n -0000488937 00000 n -0000488519 00000 n -0000483856 00000 n -0000488813 00000 n -0000495441 00000 n -0000495718 00000 n -0000495297 00000 n -0000489061 00000 n -0000495592 00000 n -0000496768 00000 n -0000496456 00000 n -0000495842 00000 n -0000496579 00000 n -0000496642 00000 n -0000496705 00000 n -0000499934 00000 n -0000500211 00000 n -0000499790 00000 n -0000496853 00000 n -0000500085 00000 n -0000503407 00000 n -0000503682 00000 n -0000503263 00000 n -0000500322 00000 n -0000503558 00000 n -0000889852 00000 n -0000507540 00000 n -0000507291 00000 n -0000503793 00000 n -0000507414 00000 n -0000514421 00000 n -0000514696 00000 n -0000514277 00000 n -0000507677 00000 n -0000514572 00000 n -0000515900 00000 n -0000515585 00000 n -0000514820 00000 n -0000515708 00000 n -0000515772 00000 n -0000515836 00000 n -0000521910 00000 n -0000522186 00000 n -0000521766 00000 n -0000515985 00000 n -0000522062 00000 n -0000525786 00000 n -0000526127 00000 n -0000525642 00000 n -0000522310 00000 n -0000525937 00000 n -0000526063 00000 n -0000531427 00000 n -0000531766 00000 n -0000531283 00000 n -0000526251 00000 n -0000531579 00000 n -0000531703 00000 n -0000889977 00000 n -0000535334 00000 n -0000535675 00000 n -0000535190 00000 n -0000531890 00000 n -0000535485 00000 n -0000535611 00000 n -0000540959 00000 n -0000541298 00000 n -0000540815 00000 n -0000535799 00000 n -0000541111 00000 n -0000541235 00000 n -0000545430 00000 n -0000545834 00000 n -0000545286 00000 n -0000541422 00000 n -0000545580 00000 n -0000545706 00000 n -0000545770 00000 n -0000549803 00000 n -0000550204 00000 n -0000549659 00000 n -0000545945 00000 n -0000549954 00000 n -0000550078 00000 n -0000550141 00000 n -0000556309 00000 n -0000556585 00000 n -0000556165 00000 n -0000550315 00000 n -0000556458 00000 n -0000560845 00000 n -0000560470 00000 n -0000556709 00000 n -0000560593 00000 n -0000560656 00000 n -0000560719 00000 n -0000560782 00000 n -0000890102 00000 n -0000565316 00000 n -0000565465 00000 n -0000565616 00000 n -0000565892 00000 n -0000565154 00000 n -0000560969 00000 n -0000565766 00000 n -0000572078 00000 n -0000571830 00000 n -0000566016 00000 n -0000571953 00000 n -0000580044 00000 n -0000579282 00000 n -0000572202 00000 n -0000579405 00000 n -0000579469 00000 n -0000579533 00000 n -0000579597 00000 n -0000579661 00000 n -0000579725 00000 n -0000579789 00000 n -0000579852 00000 n -0000579916 00000 n -0000579980 00000 n -0000580656 00000 n -0000580408 00000 n -0000580167 00000 n -0000580531 00000 n -0000586751 00000 n -0000586374 00000 n -0000580741 00000 n -0000586497 00000 n -0000586623 00000 n -0000586687 00000 n -0000591967 00000 n -0000591594 00000 n -0000586888 00000 n -0000591717 00000 n -0000591842 00000 n -0000591904 00000 n -0000890227 00000 n -0000596959 00000 n -0000596518 00000 n -0000592104 00000 n -0000596641 00000 n -0000596767 00000 n -0000596831 00000 n -0000596895 00000 n -0000599563 00000 n -0000599316 00000 n -0000597096 00000 n -0000599439 00000 n -0000603007 00000 n -0000602758 00000 n -0000599674 00000 n -0000602881 00000 n -0000604631 00000 n -0000604384 00000 n -0000603144 00000 n -0000604507 00000 n -0000606524 00000 n -0000606275 00000 n -0000604742 00000 n -0000606398 00000 n -0000608301 00000 n -0000608054 00000 n -0000606635 00000 n -0000608177 00000 n -0000890352 00000 n -0000613253 00000 n -0000613004 00000 n -0000608412 00000 n -0000613127 00000 n -0000618969 00000 n -0000618596 00000 n -0000613390 00000 n -0000618719 00000 n -0000618843 00000 n -0000618906 00000 n -0000624728 00000 n -0000624351 00000 n -0000619106 00000 n -0000624474 00000 n -0000624600 00000 n -0000624664 00000 n -0000630458 00000 n -0000630085 00000 n -0000624865 00000 n -0000630208 00000 n -0000630332 00000 n -0000630395 00000 n -0000636309 00000 n -0000635932 00000 n -0000630595 00000 n -0000636055 00000 n -0000636181 00000 n -0000636245 00000 n -0000642127 00000 n -0000641754 00000 n -0000636446 00000 n -0000641877 00000 n -0000642001 00000 n -0000642064 00000 n -0000890477 00000 n -0000648005 00000 n -0000647693 00000 n -0000642264 00000 n -0000647816 00000 n -0000647942 00000 n -0000653863 00000 n -0000653554 00000 n -0000648142 00000 n -0000653677 00000 n -0000653801 00000 n -0000660619 00000 n -0000660769 00000 n -0000661047 00000 n -0000660466 00000 n -0000654000 00000 n -0000660920 00000 n -0000665250 00000 n -0000665314 00000 n -0000665378 00000 n -0000665064 00000 n -0000661145 00000 n -0000665187 00000 n -0000668743 00000 n -0000668494 00000 n -0000665476 00000 n -0000668617 00000 n -0000670313 00000 n -0000670065 00000 n -0000668854 00000 n -0000670188 00000 n -0000890602 00000 n -0000671983 00000 n -0000671733 00000 n -0000670424 00000 n -0000671856 00000 n -0000674112 00000 n -0000673864 00000 n -0000672094 00000 n -0000673987 00000 n -0000675059 00000 n -0000674809 00000 n -0000674223 00000 n -0000674932 00000 n -0000679803 00000 n -0000680078 00000 n -0000679659 00000 n -0000675157 00000 n -0000679953 00000 n -0000685261 00000 n -0000685537 00000 n -0000685117 00000 n -0000680189 00000 n -0000685410 00000 n -0000689086 00000 n -0000689361 00000 n -0000688942 00000 n -0000685648 00000 n -0000689236 00000 n -0000890727 00000 n -0000693045 00000 n -0000692795 00000 n -0000689472 00000 n -0000692918 00000 n -0000697070 00000 n -0000697345 00000 n -0000696926 00000 n -0000693156 00000 n -0000697220 00000 n -0000698678 00000 n -0000698428 00000 n -0000697456 00000 n -0000698551 00000 n -0000703644 00000 n -0000703796 00000 n -0000704138 00000 n -0000703491 00000 n -0000698789 00000 n -0000703951 00000 n -0000704075 00000 n -0000709254 00000 n -0000709403 00000 n -0000709553 00000 n -0000709705 00000 n -0000709982 00000 n -0000709083 00000 n -0000704300 00000 n -0000709856 00000 n -0000715307 00000 n -0000715458 00000 n -0000715734 00000 n -0000715154 00000 n -0000710093 00000 n -0000715610 00000 n -0000890852 00000 n -0000718045 00000 n -0000718324 00000 n -0000717901 00000 n -0000715845 00000 n -0000718197 00000 n -0000719341 00000 n -0000719093 00000 n -0000718435 00000 n -0000719216 00000 n -0000726864 00000 n -0000727013 00000 n -0000727289 00000 n -0000726711 00000 n -0000719439 00000 n -0000727163 00000 n -0000733344 00000 n -0000733559 00000 n -0000733200 00000 n -0000727451 00000 n -0000733496 00000 n -0000736414 00000 n -0000736227 00000 n -0000733683 00000 n -0000736350 00000 n -0000744498 00000 n -0000743504 00000 n -0000736512 00000 n -0000743627 00000 n -0000743690 00000 n -0000743753 00000 n -0000744248 00000 n -0000744311 00000 n -0000890977 00000 n -0000746450 00000 n -0000746073 00000 n -0000744609 00000 n -0000746196 00000 n -0000746386 00000 n -0000746535 00000 n -0000746988 00000 n -0000747322 00000 n -0000747678 00000 n -0000747704 00000 n -0000748215 00000 n -0000748253 00000 n +0000003047 00000 n +0000285522 00000 n +0000896913 00000 n +0000003096 00000 n +0000003130 00000 n +0000291835 00000 n +0000896820 00000 n +0000003179 00000 n +0000003212 00000 n +0000300358 00000 n +0000896727 00000 n +0000003261 00000 n +0000003292 00000 n +0000317592 00000 n +0000896648 00000 n +0000003341 00000 n +0000003372 00000 n +0000332248 00000 n +0000896518 00000 n +0000003419 00000 n +0000003463 00000 n +0000339144 00000 n +0000896439 00000 n +0000003512 00000 n +0000003543 00000 n +0000359466 00000 n +0000896346 00000 n +0000003592 00000 n +0000003623 00000 n +0000383808 00000 n +0000896253 00000 n +0000003672 00000 n +0000003705 00000 n +0000393391 00000 n +0000896174 00000 n +0000003754 00000 n +0000003788 00000 n +0000402670 00000 n +0000896043 00000 n +0000003835 00000 n +0000003881 00000 n +0000402732 00000 n +0000895964 00000 n +0000003930 00000 n +0000003962 00000 n +0000427462 00000 n +0000895871 00000 n +0000004011 00000 n +0000004043 00000 n +0000431847 00000 n +0000895778 00000 n +0000004092 00000 n +0000004124 00000 n +0000435938 00000 n +0000895685 00000 n +0000004173 00000 n +0000004205 00000 n +0000438772 00000 n +0000895592 00000 n +0000004254 00000 n +0000004287 00000 n +0000445435 00000 n +0000895499 00000 n +0000004336 00000 n +0000004371 00000 n +0000453143 00000 n +0000895406 00000 n +0000004420 00000 n +0000004452 00000 n +0000460930 00000 n +0000895313 00000 n +0000004501 00000 n +0000004533 00000 n +0000471434 00000 n +0000895220 00000 n +0000004582 00000 n +0000004614 00000 n +0000477439 00000 n +0000895127 00000 n +0000004663 00000 n +0000004696 00000 n +0000482163 00000 n +0000895034 00000 n +0000004745 00000 n +0000004776 00000 n +0000487421 00000 n +0000894941 00000 n +0000004825 00000 n +0000004857 00000 n +0000494201 00000 n +0000894848 00000 n +0000004906 00000 n +0000004938 00000 n +0000498694 00000 n +0000894755 00000 n +0000004987 00000 n +0000005019 00000 n +0000502166 00000 n +0000894662 00000 n +0000005068 00000 n +0000005101 00000 n +0000506023 00000 n +0000894569 00000 n +0000005150 00000 n +0000005181 00000 n +0000513180 00000 n +0000894476 00000 n +0000005230 00000 n +0000005274 00000 n +0000520670 00000 n +0000894383 00000 n +0000005323 00000 n +0000005367 00000 n +0000524546 00000 n +0000894290 00000 n +0000005416 00000 n +0000005454 00000 n +0000530187 00000 n +0000894197 00000 n +0000005503 00000 n +0000005544 00000 n +0000534094 00000 n +0000894104 00000 n +0000005593 00000 n +0000005631 00000 n +0000539719 00000 n +0000894011 00000 n +0000005680 00000 n +0000005721 00000 n +0000544189 00000 n +0000893918 00000 n +0000005770 00000 n +0000005812 00000 n +0000548562 00000 n +0000893825 00000 n +0000005861 00000 n +0000005902 00000 n +0000555067 00000 n +0000893732 00000 n +0000005951 00000 n +0000005990 00000 n +0000564375 00000 n +0000893639 00000 n +0000006039 00000 n +0000006072 00000 n +0000570561 00000 n +0000893560 00000 n +0000006121 00000 n +0000006158 00000 n +0000579139 00000 n +0000893429 00000 n +0000006205 00000 n +0000006256 00000 n +0000585106 00000 n +0000893350 00000 n +0000006305 00000 n +0000006336 00000 n +0000590325 00000 n +0000893257 00000 n +0000006385 00000 n +0000006416 00000 n +0000595250 00000 n +0000893164 00000 n +0000006465 00000 n +0000006496 00000 n +0000598047 00000 n +0000893071 00000 n +0000006545 00000 n +0000006586 00000 n +0000601490 00000 n +0000892978 00000 n +0000006635 00000 n +0000006673 00000 n +0000603115 00000 n +0000892885 00000 n +0000006722 00000 n +0000006754 00000 n +0000605007 00000 n +0000892792 00000 n +0000006803 00000 n +0000006837 00000 n +0000606785 00000 n +0000892699 00000 n +0000006886 00000 n +0000006918 00000 n +0000611736 00000 n +0000892606 00000 n +0000006967 00000 n +0000006999 00000 n +0000617327 00000 n +0000892513 00000 n +0000007048 00000 n +0000007078 00000 n +0000623083 00000 n +0000892420 00000 n +0000007127 00000 n +0000007157 00000 n +0000628816 00000 n +0000892327 00000 n +0000007206 00000 n +0000007236 00000 n +0000634664 00000 n +0000892234 00000 n +0000007285 00000 n +0000007315 00000 n +0000640485 00000 n +0000892141 00000 n +0000007364 00000 n +0000007394 00000 n +0000646425 00000 n +0000892048 00000 n +0000007443 00000 n +0000007473 00000 n +0000652285 00000 n +0000891969 00000 n +0000007522 00000 n +0000007552 00000 n +0000659529 00000 n +0000891839 00000 n +0000007599 00000 n +0000007635 00000 n +0000667226 00000 n +0000891760 00000 n +0000007684 00000 n +0000007718 00000 n +0000668796 00000 n +0000891667 00000 n +0000007767 00000 n +0000007799 00000 n +0000670465 00000 n +0000891574 00000 n +0000007848 00000 n +0000007894 00000 n +0000672595 00000 n +0000891495 00000 n +0000007943 00000 n +0000007986 00000 n +0000673541 00000 n +0000891365 00000 n +0000008033 00000 n +0000008064 00000 n +0000678561 00000 n +0000891261 00000 n +0000008113 00000 n +0000008143 00000 n +0000684019 00000 n +0000891182 00000 n +0000008192 00000 n +0000008223 00000 n +0000687844 00000 n +0000891089 00000 n +0000008272 00000 n +0000008309 00000 n +0000691527 00000 n +0000890996 00000 n +0000008358 00000 n +0000008396 00000 n +0000695828 00000 n +0000890917 00000 n +0000008445 00000 n +0000008483 00000 n +0000697160 00000 n +0000890787 00000 n +0000008531 00000 n +0000008577 00000 n +0000702559 00000 n +0000890708 00000 n +0000008626 00000 n +0000008661 00000 n +0000708465 00000 n +0000890615 00000 n +0000008710 00000 n +0000008744 00000 n +0000714218 00000 n +0000890522 00000 n +0000008793 00000 n +0000008828 00000 n +0000716806 00000 n +0000890443 00000 n +0000008877 00000 n +0000008913 00000 n +0000717824 00000 n +0000890327 00000 n +0000008961 00000 n +0000009001 00000 n +0000725772 00000 n +0000890262 00000 n +0000009050 00000 n +0000009076 00000 n +0000009902 00000 n +0000010202 00000 n +0000009128 00000 n +0000010021 00000 n +0000010082 00000 n +0000884669 00000 n +0000886405 00000 n +0000884523 00000 n +0000885252 00000 n +0000886842 00000 n +0000010629 00000 n +0000010448 00000 n +0000010312 00000 n +0000010567 00000 n +0000028858 00000 n +0000029009 00000 n +0000029160 00000 n +0000029317 00000 n +0000029474 00000 n +0000029631 00000 n +0000029788 00000 n +0000029938 00000 n +0000030095 00000 n +0000030257 00000 n +0000030414 00000 n +0000030576 00000 n +0000030733 00000 n +0000030890 00000 n +0000031043 00000 n +0000031196 00000 n +0000031349 00000 n +0000031502 00000 n +0000031654 00000 n +0000031807 00000 n +0000031960 00000 n +0000032113 00000 n +0000032267 00000 n +0000032421 00000 n +0000032572 00000 n +0000032726 00000 n +0000032880 00000 n +0000033034 00000 n +0000033188 00000 n +0000033342 00000 n +0000033495 00000 n +0000033649 00000 n +0000033803 00000 n +0000033957 00000 n +0000034111 00000 n +0000034264 00000 n +0000034418 00000 n +0000034569 00000 n +0000034723 00000 n +0000034876 00000 n +0000035030 00000 n +0000056874 00000 n +0000057025 00000 n +0000057178 00000 n +0000035305 00000 n +0000028399 00000 n +0000010700 00000 n +0000035183 00000 n +0000035244 00000 n +0000057332 00000 n +0000057486 00000 n +0000057640 00000 n +0000057794 00000 n +0000057948 00000 n +0000058102 00000 n +0000058256 00000 n +0000058409 00000 n +0000058562 00000 n +0000058716 00000 n +0000058870 00000 n +0000059023 00000 n +0000059176 00000 n +0000059329 00000 n +0000059483 00000 n +0000059637 00000 n +0000059791 00000 n +0000059945 00000 n +0000060099 00000 n +0000060253 00000 n +0000060407 00000 n +0000060560 00000 n +0000060712 00000 n +0000060866 00000 n +0000061020 00000 n +0000061174 00000 n +0000061326 00000 n +0000061480 00000 n +0000061634 00000 n +0000061788 00000 n +0000061942 00000 n +0000062096 00000 n +0000062250 00000 n +0000062404 00000 n +0000062558 00000 n +0000062712 00000 n +0000062866 00000 n +0000063020 00000 n +0000063174 00000 n +0000063328 00000 n +0000063482 00000 n +0000063635 00000 n +0000071386 00000 n +0000071537 00000 n +0000071690 00000 n +0000071844 00000 n +0000063850 00000 n +0000056383 00000 n +0000035402 00000 n +0000063788 00000 n +0000071997 00000 n +0000072151 00000 n +0000072302 00000 n +0000072455 00000 n +0000072609 00000 n +0000072762 00000 n +0000072916 00000 n +0000073070 00000 n +0000073220 00000 n +0000073374 00000 n +0000073528 00000 n +0000073682 00000 n +0000073836 00000 n +0000073987 00000 n +0000074201 00000 n +0000071111 00000 n +0000063934 00000 n +0000074140 00000 n +0000074604 00000 n +0000074423 00000 n +0000074285 00000 n +0000074542 00000 n +0000083001 00000 n +0000083156 00000 n +0000083312 00000 n +0000083466 00000 n +0000083621 00000 n +0000083771 00000 n +0000083923 00000 n +0000091552 00000 n +0000091703 00000 n +0000084135 00000 n +0000082814 00000 n +0000074675 00000 n +0000886259 00000 n +0000886960 00000 n +0000744868 00000 n +0000744805 00000 n +0000742669 00000 n +0000742731 00000 n +0000742981 00000 n +0000742484 00000 n +0000742546 00000 n +0000091856 00000 n +0000089892 00000 n +0000092131 00000 n +0000089737 00000 n +0000084232 00000 n +0000884815 00000 n +0000092069 00000 n +0000091290 00000 n +0000091409 00000 n +0000091456 00000 n +0000091530 00000 n +0000742607 00000 n +0000101717 00000 n +0000101870 00000 n +0000102024 00000 n +0000102422 00000 n +0000101562 00000 n +0000092256 00000 n +0000102177 00000 n +0000886551 00000 n +0000885540 00000 n +0000885107 00000 n +0000885971 00000 n +0000885397 00000 n +0000102298 00000 n +0000885683 00000 n +0000102360 00000 n +0000742919 00000 n +0000110055 00000 n +0000110208 00000 n +0000108084 00000 n +0000110546 00000 n +0000107937 00000 n +0000102622 00000 n +0000110361 00000 n +0000110423 00000 n +0000109793 00000 n +0000109912 00000 n +0000109959 00000 n +0000110033 00000 n +0000742422 00000 n +0000742361 00000 n +0000117372 00000 n +0000117524 00000 n +0000117796 00000 n +0000117225 00000 n +0000110710 00000 n +0000117676 00000 n +0000127323 00000 n +0000126524 00000 n +0000117932 00000 n +0000126643 00000 n +0000884961 00000 n +0000126705 00000 n +0000126765 00000 n +0000126827 00000 n +0000126889 00000 n +0000126951 00000 n +0000127013 00000 n +0000127075 00000 n +0000127137 00000 n +0000127199 00000 n +0000127261 00000 n +0000138067 00000 n +0000136043 00000 n +0000135133 00000 n +0000127445 00000 n +0000135252 00000 n +0000135313 00000 n +0000135374 00000 n +0000135435 00000 n +0000135496 00000 n +0000135557 00000 n +0000135618 00000 n +0000135679 00000 n +0000135739 00000 n +0000135800 00000 n +0000135861 00000 n +0000135922 00000 n +0000887078 00000 n +0000138286 00000 n +0000137928 00000 n +0000136153 00000 n +0000138224 00000 n +0000146356 00000 n +0000146507 00000 n +0000147212 00000 n +0000146209 00000 n +0000138370 00000 n +0000146664 00000 n +0000146845 00000 n +0000146907 00000 n +0000146968 00000 n +0000147029 00000 n +0000147090 00000 n +0000147151 00000 n +0000154288 00000 n +0000153550 00000 n +0000147322 00000 n +0000153669 00000 n +0000153731 00000 n +0000153793 00000 n +0000153854 00000 n +0000153916 00000 n +0000153978 00000 n +0000154040 00000 n +0000154102 00000 n +0000154164 00000 n +0000154226 00000 n +0000162970 00000 n +0000163369 00000 n +0000162831 00000 n +0000154398 00000 n +0000163126 00000 n +0000163307 00000 n +0000172418 00000 n +0000172879 00000 n +0000172279 00000 n +0000163479 00000 n +0000172569 00000 n +0000172631 00000 n +0000172693 00000 n +0000172755 00000 n +0000172817 00000 n +0000176886 00000 n +0000176948 00000 n +0000176706 00000 n +0000173002 00000 n +0000176825 00000 n +0000887196 00000 n +0000186423 00000 n +0000186574 00000 n +0000186723 00000 n +0000187242 00000 n +0000186268 00000 n +0000177045 00000 n +0000186875 00000 n +0000187058 00000 n +0000191800 00000 n +0000198464 00000 n +0000191922 00000 n +0000191620 00000 n +0000187378 00000 n +0000191739 00000 n +0000886697 00000 n +0000198614 00000 n +0000198763 00000 n +0000198913 00000 n +0000204584 00000 n +0000199247 00000 n +0000198301 00000 n +0000192032 00000 n +0000199063 00000 n +0000211312 00000 n +0000204976 00000 n +0000204445 00000 n +0000199370 00000 n +0000204735 00000 n +0000211460 00000 n +0000211607 00000 n +0000212000 00000 n +0000211157 00000 n +0000205086 00000 n +0000211755 00000 n +0000213028 00000 n +0000212787 00000 n +0000212097 00000 n +0000212906 00000 n +0000212967 00000 n +0000887314 00000 n +0000213572 00000 n +0000213329 00000 n +0000213112 00000 n +0000213448 00000 n +0000220856 00000 n +0000221006 00000 n +0000221153 00000 n +0000221303 00000 n +0000221453 00000 n +0000223615 00000 n +0000221786 00000 n +0000220685 00000 n +0000213656 00000 n +0000221603 00000 n +0000221724 00000 n +0000223827 00000 n +0000223476 00000 n +0000221922 00000 n +0000223765 00000 n +0000231055 00000 n +0000231205 00000 n +0000231355 00000 n +0000231506 00000 n +0000231838 00000 n +0000230892 00000 n +0000223924 00000 n +0000231655 00000 n +0000231776 00000 n +0000232852 00000 n +0000232671 00000 n +0000231987 00000 n +0000232790 00000 n +0000240631 00000 n +0000240781 00000 n +0000240931 00000 n +0000241081 00000 n +0000241412 00000 n +0000240468 00000 n +0000232936 00000 n +0000241230 00000 n +0000241351 00000 n +0000887432 00000 n +0000242426 00000 n +0000242245 00000 n +0000241561 00000 n +0000242364 00000 n +0000249248 00000 n +0000249394 00000 n +0000249728 00000 n +0000249101 00000 n +0000242510 00000 n +0000249545 00000 n +0000249666 00000 n +0000255895 00000 n +0000256044 00000 n +0000256378 00000 n +0000255748 00000 n +0000249877 00000 n +0000256193 00000 n +0000256316 00000 n +0000262908 00000 n +0000263056 00000 n +0000263390 00000 n +0000262761 00000 n +0000256527 00000 n +0000263207 00000 n +0000263328 00000 n +0000270619 00000 n +0000270768 00000 n +0000271103 00000 n +0000270472 00000 n +0000263551 00000 n +0000270917 00000 n +0000271041 00000 n +0000272127 00000 n +0000271947 00000 n +0000271264 00000 n +0000272066 00000 n +0000887550 00000 n +0000278676 00000 n +0000278825 00000 n +0000279160 00000 n +0000278529 00000 n +0000272211 00000 n +0000278975 00000 n +0000279098 00000 n +0000285163 00000 n +0000285310 00000 n +0000285644 00000 n +0000285016 00000 n +0000279309 00000 n +0000285461 00000 n +0000285582 00000 n +0000291475 00000 n +0000291623 00000 n +0000291958 00000 n +0000291328 00000 n +0000285792 00000 n +0000291773 00000 n +0000886116 00000 n +0000291896 00000 n +0000299847 00000 n +0000299998 00000 n +0000300147 00000 n +0000307542 00000 n +0000300666 00000 n +0000299692 00000 n +0000292107 00000 n +0000300297 00000 n +0000300418 00000 n +0000300480 00000 n +0000300542 00000 n +0000300604 00000 n +0000307693 00000 n +0000307843 00000 n +0000307993 00000 n +0000308145 00000 n +0000308298 00000 n +0000308451 00000 n +0000308664 00000 n +0000307355 00000 n +0000300827 00000 n +0000308602 00000 n +0000317381 00000 n +0000324891 00000 n +0000317714 00000 n +0000317242 00000 n +0000308774 00000 n +0000317531 00000 n +0000317652 00000 n +0000887668 00000 n +0000325043 00000 n +0000325194 00000 n +0000325345 00000 n +0000325495 00000 n +0000325707 00000 n +0000324720 00000 n +0000317888 00000 n +0000325645 00000 n +0000330712 00000 n +0000330863 00000 n +0000331075 00000 n +0000330565 00000 n +0000325843 00000 n +0000331014 00000 n +0000332034 00000 n +0000332310 00000 n +0000331895 00000 n +0000331185 00000 n +0000332186 00000 n +0000338631 00000 n +0000338782 00000 n +0000338933 00000 n +0000339266 00000 n +0000338476 00000 n +0000332394 00000 n +0000339083 00000 n +0000339204 00000 n +0000347956 00000 n +0000343727 00000 n +0000348106 00000 n +0000348380 00000 n +0000343580 00000 n +0000339402 00000 n +0000348256 00000 n +0000348318 00000 n +0000347621 00000 n +0000347740 00000 n +0000347787 00000 n +0000347861 00000 n +0000347934 00000 n +0000351820 00000 n +0000351640 00000 n +0000348531 00000 n +0000351759 00000 n +0000885827 00000 n +0000887786 00000 n +0000359103 00000 n +0000359254 00000 n +0000359589 00000 n +0000358956 00000 n +0000351904 00000 n +0000359404 00000 n +0000359527 00000 n +0000365818 00000 n +0000371116 00000 n +0000365969 00000 n +0000366118 00000 n +0000366512 00000 n +0000365663 00000 n +0000359738 00000 n +0000366269 00000 n +0000366330 00000 n +0000366391 00000 n +0000366452 00000 n +0000375490 00000 n +0000370507 00000 n +0000370326 00000 n +0000366648 00000 n +0000370445 00000 n +0000375552 00000 n +0000370997 00000 n +0000370591 00000 n +0000375429 00000 n +0000375094 00000 n +0000375213 00000 n +0000375260 00000 n +0000375334 00000 n +0000375407 00000 n +0000383445 00000 n +0000383596 00000 n +0000383931 00000 n +0000383298 00000 n +0000375651 00000 n +0000383746 00000 n +0000383869 00000 n +0000385686 00000 n +0000385506 00000 n +0000384092 00000 n +0000385625 00000 n +0000887904 00000 n +0000393179 00000 n +0000395592 00000 n +0000393515 00000 n +0000393040 00000 n +0000385770 00000 n +0000393329 00000 n +0000393453 00000 n +0000395804 00000 n +0000395453 00000 n +0000393676 00000 n +0000395743 00000 n +0000402794 00000 n +0000402489 00000 n +0000395901 00000 n +0000402608 00000 n +0000409468 00000 n +0000409741 00000 n +0000409329 00000 n +0000402930 00000 n +0000409619 00000 n +0000409680 00000 n +0000420431 00000 n +0000419937 00000 n +0000409851 00000 n +0000420056 00000 n +0000420118 00000 n +0000420180 00000 n +0000420242 00000 n +0000420305 00000 n +0000420368 00000 n +0000421383 00000 n +0000421134 00000 n +0000420567 00000 n +0000421257 00000 n +0000421320 00000 n +0000888022 00000 n +0000427247 00000 n +0000427650 00000 n +0000427103 00000 n +0000421468 00000 n +0000427398 00000 n +0000427524 00000 n +0000427588 00000 n +0000431481 00000 n +0000431632 00000 n +0000431971 00000 n +0000431328 00000 n +0000427774 00000 n +0000431784 00000 n +0000431908 00000 n +0000435573 00000 n +0000435723 00000 n +0000436000 00000 n +0000435420 00000 n +0000432082 00000 n +0000435874 00000 n +0000438558 00000 n +0000438833 00000 n +0000438414 00000 n +0000436111 00000 n +0000438709 00000 n +0000445072 00000 n +0000445220 00000 n +0000445498 00000 n +0000444919 00000 n +0000438944 00000 n +0000445371 00000 n +0000447598 00000 n +0000447286 00000 n +0000445635 00000 n +0000447409 00000 n +0000447472 00000 n +0000447535 00000 n +0000888147 00000 n +0000452782 00000 n +0000452932 00000 n +0000453397 00000 n +0000452629 00000 n +0000447683 00000 n +0000453079 00000 n +0000453205 00000 n +0000453269 00000 n +0000453333 00000 n +0000460415 00000 n +0000460566 00000 n +0000460716 00000 n +0000460991 00000 n +0000460253 00000 n +0000453521 00000 n +0000460867 00000 n +0000464760 00000 n +0000464189 00000 n +0000461115 00000 n +0000464312 00000 n +0000464376 00000 n +0000464440 00000 n +0000464504 00000 n +0000464568 00000 n +0000464632 00000 n +0000464696 00000 n +0000471069 00000 n +0000471221 00000 n +0000471622 00000 n +0000470916 00000 n +0000464871 00000 n +0000471371 00000 n +0000471496 00000 n +0000471559 00000 n +0000473692 00000 n +0000473313 00000 n +0000471733 00000 n +0000473436 00000 n +0000473500 00000 n +0000473564 00000 n +0000473628 00000 n +0000477075 00000 n +0000477224 00000 n +0000477500 00000 n +0000476922 00000 n +0000473777 00000 n +0000477376 00000 n +0000888272 00000 n +0000481799 00000 n +0000481948 00000 n +0000482290 00000 n +0000481646 00000 n +0000477611 00000 n +0000482099 00000 n +0000482226 00000 n +0000487208 00000 n +0000487482 00000 n +0000487064 00000 n +0000482401 00000 n +0000487358 00000 n +0000493986 00000 n +0000494263 00000 n +0000493842 00000 n +0000487606 00000 n +0000494137 00000 n +0000495313 00000 n +0000495001 00000 n +0000494387 00000 n +0000495124 00000 n +0000495187 00000 n +0000495250 00000 n +0000498479 00000 n +0000498756 00000 n +0000498335 00000 n +0000495398 00000 n +0000498630 00000 n +0000501952 00000 n +0000502227 00000 n +0000501808 00000 n +0000498867 00000 n +0000502103 00000 n +0000888397 00000 n +0000506085 00000 n +0000505836 00000 n +0000502338 00000 n +0000505959 00000 n +0000512966 00000 n +0000513241 00000 n +0000512822 00000 n +0000506222 00000 n +0000513117 00000 n +0000514445 00000 n +0000514130 00000 n +0000513365 00000 n +0000514253 00000 n +0000514317 00000 n +0000514381 00000 n +0000520455 00000 n +0000520731 00000 n +0000520311 00000 n +0000514530 00000 n +0000520607 00000 n +0000524331 00000 n +0000524672 00000 n +0000524187 00000 n +0000520855 00000 n +0000524482 00000 n +0000524608 00000 n +0000529972 00000 n +0000530311 00000 n +0000529828 00000 n +0000524796 00000 n +0000530124 00000 n +0000530248 00000 n +0000888522 00000 n +0000533879 00000 n +0000534220 00000 n +0000533735 00000 n +0000530435 00000 n +0000534030 00000 n +0000534156 00000 n +0000539504 00000 n +0000539843 00000 n +0000539360 00000 n +0000534344 00000 n +0000539656 00000 n +0000539780 00000 n +0000543975 00000 n +0000544379 00000 n +0000543831 00000 n +0000539967 00000 n +0000544125 00000 n +0000544251 00000 n +0000544315 00000 n +0000548348 00000 n +0000548749 00000 n +0000548204 00000 n +0000544490 00000 n +0000548499 00000 n +0000548623 00000 n +0000548686 00000 n +0000554854 00000 n +0000555130 00000 n +0000554710 00000 n +0000548860 00000 n +0000555003 00000 n +0000559390 00000 n +0000559015 00000 n +0000555254 00000 n +0000559138 00000 n +0000559201 00000 n +0000559264 00000 n +0000559327 00000 n +0000888647 00000 n +0000563861 00000 n +0000564010 00000 n +0000564161 00000 n +0000564437 00000 n +0000563699 00000 n +0000559514 00000 n +0000564311 00000 n +0000570623 00000 n +0000570375 00000 n +0000564561 00000 n +0000570498 00000 n +0000578589 00000 n +0000577827 00000 n +0000570747 00000 n +0000577950 00000 n +0000578014 00000 n +0000578078 00000 n +0000578142 00000 n +0000578206 00000 n +0000578270 00000 n +0000578334 00000 n +0000578397 00000 n +0000578461 00000 n +0000578525 00000 n +0000579201 00000 n +0000578953 00000 n +0000578712 00000 n +0000579076 00000 n +0000585296 00000 n +0000584919 00000 n +0000579286 00000 n +0000585042 00000 n +0000585168 00000 n +0000585232 00000 n +0000590512 00000 n +0000590139 00000 n +0000585433 00000 n +0000590262 00000 n +0000590387 00000 n +0000590449 00000 n +0000888772 00000 n +0000595504 00000 n +0000595063 00000 n +0000590649 00000 n +0000595186 00000 n +0000595312 00000 n +0000595376 00000 n +0000595440 00000 n +0000598108 00000 n +0000597861 00000 n +0000595641 00000 n +0000597984 00000 n +0000601552 00000 n +0000601303 00000 n +0000598219 00000 n +0000601426 00000 n +0000603176 00000 n +0000602929 00000 n +0000601689 00000 n +0000603052 00000 n +0000605069 00000 n +0000604820 00000 n +0000603287 00000 n +0000604943 00000 n +0000606846 00000 n +0000606599 00000 n +0000605180 00000 n +0000606722 00000 n +0000888897 00000 n +0000611798 00000 n +0000611549 00000 n +0000606957 00000 n +0000611672 00000 n +0000617514 00000 n +0000617141 00000 n +0000611935 00000 n +0000617264 00000 n +0000617388 00000 n +0000617451 00000 n +0000623273 00000 n +0000622896 00000 n +0000617651 00000 n +0000623019 00000 n +0000623145 00000 n +0000623209 00000 n +0000629003 00000 n +0000628630 00000 n +0000623410 00000 n +0000628753 00000 n +0000628877 00000 n +0000628940 00000 n +0000634854 00000 n +0000634477 00000 n +0000629140 00000 n +0000634600 00000 n +0000634726 00000 n +0000634790 00000 n +0000640672 00000 n +0000640299 00000 n +0000634991 00000 n +0000640422 00000 n +0000640546 00000 n +0000640609 00000 n +0000889022 00000 n +0000646550 00000 n +0000646238 00000 n +0000640809 00000 n +0000646361 00000 n +0000646487 00000 n +0000652408 00000 n +0000652099 00000 n +0000646687 00000 n +0000652222 00000 n +0000652346 00000 n +0000659164 00000 n +0000659314 00000 n +0000659592 00000 n +0000659011 00000 n +0000652545 00000 n +0000659465 00000 n +0000663795 00000 n +0000663859 00000 n +0000663923 00000 n +0000663609 00000 n +0000659690 00000 n +0000663732 00000 n +0000667288 00000 n +0000667039 00000 n +0000664021 00000 n +0000667162 00000 n +0000668858 00000 n +0000668610 00000 n +0000667399 00000 n +0000668733 00000 n +0000889147 00000 n +0000670528 00000 n +0000670278 00000 n +0000668969 00000 n +0000670401 00000 n +0000672657 00000 n +0000672409 00000 n +0000670639 00000 n +0000672532 00000 n +0000673604 00000 n +0000673354 00000 n +0000672768 00000 n +0000673477 00000 n +0000678348 00000 n +0000678623 00000 n +0000678204 00000 n +0000673702 00000 n +0000678498 00000 n +0000683806 00000 n +0000684082 00000 n +0000683662 00000 n +0000678734 00000 n +0000683955 00000 n +0000687631 00000 n +0000687906 00000 n +0000687487 00000 n +0000684193 00000 n +0000687781 00000 n +0000889272 00000 n +0000691590 00000 n +0000691340 00000 n +0000688017 00000 n +0000691463 00000 n +0000695615 00000 n +0000695890 00000 n +0000695471 00000 n +0000691701 00000 n +0000695765 00000 n +0000697223 00000 n +0000696973 00000 n +0000696001 00000 n +0000697096 00000 n +0000702189 00000 n +0000702341 00000 n +0000702683 00000 n +0000702036 00000 n +0000697334 00000 n +0000702496 00000 n +0000702620 00000 n +0000707799 00000 n +0000707948 00000 n +0000708098 00000 n +0000708250 00000 n +0000708527 00000 n +0000707628 00000 n +0000702845 00000 n +0000708401 00000 n +0000713852 00000 n +0000714003 00000 n +0000714279 00000 n +0000713699 00000 n +0000708638 00000 n +0000714155 00000 n +0000889397 00000 n +0000716590 00000 n +0000716869 00000 n +0000716446 00000 n +0000714390 00000 n +0000716742 00000 n +0000717886 00000 n +0000717638 00000 n +0000716980 00000 n +0000717761 00000 n +0000725409 00000 n +0000725558 00000 n +0000725834 00000 n +0000725256 00000 n +0000717984 00000 n +0000725708 00000 n +0000731889 00000 n +0000732104 00000 n +0000731745 00000 n +0000725996 00000 n +0000732041 00000 n +0000734959 00000 n +0000734772 00000 n +0000732228 00000 n +0000734895 00000 n +0000743043 00000 n +0000742049 00000 n +0000735057 00000 n +0000742172 00000 n +0000742235 00000 n +0000742298 00000 n +0000742793 00000 n +0000742856 00000 n +0000889522 00000 n +0000744995 00000 n +0000744618 00000 n +0000743154 00000 n +0000744741 00000 n +0000744931 00000 n +0000745080 00000 n +0000745533 00000 n +0000745867 00000 n +0000746223 00000 n +0000746249 00000 n +0000746760 00000 n +0000746798 00000 n +0000747493 00000 n +0000747850 00000 n +0000747930 00000 n +0000748306 00000 n 0000748948 00000 n -0000749305 00000 n -0000749385 00000 n -0000749761 00000 n -0000750403 00000 n -0000751067 00000 n -0000751695 00000 n -0000752338 00000 n -0000752628 00000 n -0000753281 00000 n -0000767418 00000 n -0000767865 00000 n -0000780264 00000 n -0000780692 00000 n -0000791799 00000 n -0000792134 00000 n -0000794220 00000 n -0000794442 00000 n -0000799001 00000 n -0000799248 00000 n -0000815987 00000 n -0000816520 00000 n -0000818796 00000 n -0000819028 00000 n -0000821411 00000 n -0000821649 00000 n -0000831331 00000 n -0000831708 00000 n -0000837698 00000 n -0000838018 00000 n -0000842068 00000 n -0000842412 00000 n -0000844035 00000 n -0000844271 00000 n -0000857781 00000 n -0000858157 00000 n -0000864430 00000 n -0000864698 00000 n -0000878158 00000 n -0000878644 00000 n -0000885632 00000 n -0000891066 00000 n -0000891186 00000 n -0000891308 00000 n -0000891434 00000 n -0000891551 00000 n -0000891643 00000 n -0000901462 00000 n -0000901649 00000 n -0000901834 00000 n -0000902017 00000 n -0000902193 00000 n -0000902363 00000 n -0000902534 00000 n -0000902704 00000 n -0000902875 00000 n -0000903045 00000 n -0000903219 00000 n -0000903394 00000 n -0000903571 00000 n -0000903745 00000 n -0000903919 00000 n -0000904096 00000 n -0000904271 00000 n -0000904448 00000 n -0000904623 00000 n -0000904800 00000 n -0000904988 00000 n -0000905205 00000 n -0000905408 00000 n -0000905595 00000 n -0000905776 00000 n -0000905954 00000 n -0000906139 00000 n -0000906321 00000 n -0000906503 00000 n -0000906688 00000 n -0000906866 00000 n -0000907036 00000 n -0000907207 00000 n -0000907377 00000 n -0000907548 00000 n -0000907718 00000 n -0000907889 00000 n -0000908059 00000 n -0000908235 00000 n -0000908409 00000 n -0000908583 00000 n -0000908760 00000 n -0000908935 00000 n -0000909112 00000 n -0000909287 00000 n -0000909464 00000 n -0000909637 00000 n -0000909831 00000 n -0000910034 00000 n -0000910234 00000 n -0000910434 00000 n -0000910637 00000 n -0000910838 00000 n -0000911041 00000 n -0000911242 00000 n -0000911445 00000 n -0000911646 00000 n -0000911849 00000 n -0000912050 00000 n -0000912253 00000 n -0000912453 00000 n -0000912645 00000 n -0000912831 00000 n -0000913036 00000 n -0000913272 00000 n -0000913449 00000 n -0000913623 00000 n -0000913774 00000 n -0000913892 00000 n -0000914008 00000 n -0000914123 00000 n -0000914240 00000 n -0000914355 00000 n -0000914471 00000 n -0000914587 00000 n -0000914707 00000 n -0000914830 00000 n -0000914954 00000 n -0000915074 00000 n -0000915145 00000 n -0000915263 00000 n -0000915379 00000 n -0000915461 00000 n -0000915501 00000 n -0000915738 00000 n +0000749612 00000 n +0000750240 00000 n +0000750883 00000 n +0000751173 00000 n +0000751826 00000 n +0000765963 00000 n +0000766410 00000 n +0000778809 00000 n +0000779237 00000 n +0000790344 00000 n +0000790679 00000 n +0000792765 00000 n +0000792987 00000 n +0000797546 00000 n +0000797793 00000 n +0000814532 00000 n +0000815065 00000 n +0000817341 00000 n +0000817573 00000 n +0000819956 00000 n +0000820194 00000 n +0000829876 00000 n +0000830253 00000 n +0000836243 00000 n +0000836563 00000 n +0000840613 00000 n +0000840957 00000 n +0000842580 00000 n +0000842816 00000 n +0000856326 00000 n +0000856702 00000 n +0000862975 00000 n +0000863243 00000 n +0000876703 00000 n +0000877189 00000 n +0000884177 00000 n +0000889611 00000 n +0000889731 00000 n +0000889853 00000 n +0000889979 00000 n +0000890096 00000 n +0000890188 00000 n +0000900007 00000 n +0000900194 00000 n +0000900379 00000 n +0000900562 00000 n +0000900738 00000 n +0000900908 00000 n +0000901079 00000 n +0000901249 00000 n +0000901420 00000 n +0000901590 00000 n +0000901764 00000 n +0000901939 00000 n +0000902116 00000 n +0000902290 00000 n +0000902464 00000 n +0000902641 00000 n +0000902816 00000 n +0000902993 00000 n +0000903168 00000 n +0000903345 00000 n +0000903533 00000 n +0000903750 00000 n +0000903953 00000 n +0000904140 00000 n +0000904321 00000 n +0000904499 00000 n +0000904684 00000 n +0000904866 00000 n +0000905048 00000 n +0000905233 00000 n +0000905411 00000 n +0000905581 00000 n +0000905752 00000 n +0000905922 00000 n +0000906093 00000 n +0000906263 00000 n +0000906434 00000 n +0000906604 00000 n +0000906780 00000 n +0000906954 00000 n +0000907128 00000 n +0000907305 00000 n +0000907480 00000 n +0000907657 00000 n +0000907832 00000 n +0000908009 00000 n +0000908182 00000 n +0000908376 00000 n +0000908579 00000 n +0000908779 00000 n +0000908979 00000 n +0000909182 00000 n +0000909383 00000 n +0000909586 00000 n +0000909787 00000 n +0000909990 00000 n +0000910191 00000 n +0000910394 00000 n +0000910595 00000 n +0000910798 00000 n +0000910998 00000 n +0000911190 00000 n +0000911376 00000 n +0000911581 00000 n +0000911817 00000 n +0000911994 00000 n +0000912168 00000 n +0000912319 00000 n +0000912437 00000 n +0000912553 00000 n +0000912668 00000 n +0000912785 00000 n +0000912900 00000 n +0000913016 00000 n +0000913132 00000 n +0000913252 00000 n +0000913375 00000 n +0000913499 00000 n +0000913619 00000 n +0000913690 00000 n +0000913808 00000 n +0000913924 00000 n +0000914006 00000 n +0000914046 00000 n +0000914283 00000 n trailer << /Size 1576 /Root 1574 0 R /Info 1575 0 R -/ID [<938D1C6ACA3715BB09EF671038B4C238> <938D1C6ACA3715BB09EF671038B4C238>] >> +/ID [ ] >> startxref -916380 +914925 %%EOF diff --git a/docs/src/psbrout.tex b/docs/src/psbrout.tex index 03c29c23..c8e39da2 100644 --- a/docs/src/psbrout.tex +++ b/docs/src/psbrout.tex @@ -556,7 +556,8 @@ An integer value; 0 means no error has been detected. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\subroutine {psb\_genrm2}{2-Norm of Vector} +\clearpage\subsection*{psb\_genrm2 --- 2-Norm of Vector} +\addcontentsline{toc}{subsection}{psb\_geasums} This function computes the 2-norm of a vector $x$.\\ If $x$ is a double precision real vector @@ -629,18 +630,12 @@ An integer value; 0 means no error has been detected. -\clearpage\subsection*{psb\_genrm2s --- Generalized 1-Norm of Vector} +\clearpage\subsection*{psb\_genrm2s --- Generalized 2-Norm of Vector} \addcontentsline{toc}{subsection}{psb\_genrm2s} -This subroutine computes a series of 1-norms on the columns of +This subroutine computes a series of 2-norms on the columns of a dense matrix $x$: -\[ res(i) \leftarrow \max_k |x(k,i)| \] -This function computes the 1-norm of a vector $x$.\\ -If $x$ is a real vector -it computes 1-norm as: -\[ res(i) \leftarrow \sqrt{x^T x}\] -else if $x$ is a complex vector then it computes 1-norm as: -\[ res(i) \leftarrow \sqrt{x^H x}\] +\[ res(i) \leftarrow \|x(:,i)\|_2 \] \begin{verbatim}